<?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>221260</bug_id>
          
          <creation_ts>2021-02-02 07:31:27 -0800</creation_ts>
          <short_desc>[JSC] Enable WasmLLInt on ARMv7</short_desc>
          <delta_ts>2022-06-10 02:37:47 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=237779</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>222543</dependson>
    
    <dependson>223432</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Xan Lopez">xan.lopez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glore</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joseph.j.griego</cc>
    
    <cc>justin_michaud</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mafm</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1724658</commentid>
    <comment_count>0</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2021-02-02 07:31:27 -0800</bug_when>
    <thetext>The first Wasm tier can now be compiled independently (see bug #220365), but it&apos;s still 64bit only. This bug will track the effort needed to make it also work on 32bit platforms (right now ARMv7 and MIPS).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727040</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-09 07:32:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/74141184&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852667</commentid>
    <comment_count>2</comment_count>
      <attachid>455082</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2022-03-18 03:27:23 -0700</bug_when>
    <thetext>Created attachment 455082
v1

Initial patch for review. All tests are passing on our side, but let&apos;s see what EWS says. See the ChangeLog for some high level comments about design decisions and (current) limitations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852669</commentid>
    <comment_count>3</comment_count>
      <attachid>455084</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2022-03-18 03:32:03 -0700</bug_when>
    <thetext>Created attachment 455084
v2

Fix style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852677</commentid>
    <comment_count>4</comment_count>
      <attachid>455084</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-03-18 04:57:44 -0700</bug_when>
    <thetext>Comment on attachment 455084
v2

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

&gt; Source/JavaScriptCore/ChangeLog:24
&gt; +        We have decided to use a pair of GPRs for every type of wasm
&gt; +        values, even if they are 32bit (i32/f32), with the odd numbered
&gt; +        GPR holding the most significant (or only) value. This makes the

Actually, 32-bit values are held in the even-numbered (lower numbered) GPR.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852678</commentid>
    <comment_count>5</comment_count>
      <attachid>455084</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-03-18 04:57:47 -0700</bug_when>
    <thetext>Comment on attachment 455084
v2

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

&gt; Source/JavaScriptCore/ChangeLog:24
&gt; +        We have decided to use a pair of GPRs for every type of wasm
&gt; +        values, even if they are 32bit (i32/f32), with the odd numbered
&gt; +        GPR holding the most significant (or only) value. This makes the

Actually, 32-bit values are held in the even-numbered (lower numbered) GPR.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856342</commentid>
    <comment_count>6</comment_count>
      <attachid>456107</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-03-30 02:55:50 -0700</bug_when>
    <thetext>Created attachment 456107
rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859203</commentid>
    <comment_count>7</comment_count>
      <attachid>456911</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2022-04-07 05:21:05 -0700</bug_when>
    <thetext>Created attachment 456911
v4

v4, rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859343</commentid>
    <comment_count>8</comment_count>
      <attachid>456911</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2022-04-07 11:30:11 -0700</bug_when>
    <thetext>Comment on attachment 456911
v4

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

&gt; Source/JavaScriptCore/interpreter/CalleeBits.h:47
&gt; +        : m_ptr { reinterpret_cast&lt;void*&gt;(static_cast&lt;uintptr_t&gt;(value &gt;&gt; (PayloadOffset * CHAR_BIT))) }
&gt; +        , m_tag { static_cast&lt;uint32_t&gt;(value &gt;&gt; (TagOffset * CHAR_BIT)) }

why not just decode the value and grab payload and tag?

&gt; Source/JavaScriptCore/runtime/JSCJSValue.h:604
&gt; +ALWAYS_INLINE JSValue jsUnboxedFloat(float f)

nit: Maybe &quot;wasmUnboxedFloat&quot;?

&gt; Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:928
&gt; +            if (type == B3::Int32 || type == B3::Float)

no need for &quot;type == B3::Float&quot; here since we&apos;re a GPR.

&gt; Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:932
&gt;              if (type == B3::Int32 || type == B3::Float)

no need for &quot;type == B3::Int32&quot; here since we&apos;re a FPR.

&gt; Source/JavaScriptCore/wasm/WasmCalleeGroup.cpp:171
&gt; +#if ENABLE(WEBASSEMBLY_SIGNALING_MEMORY)

Do we really need to compile out this enum value?

Maybe we can achieve the same perf by adding some helpers that take in a mode and check if it&apos;s signaling vs bounds checking, and when !WEBASSEMBLY_SIGNALING_MEMORY, we can always return true from &quot;isBoundsChecking&quot;

&gt; Source/JavaScriptCore/wasm/WasmCallingConvention.cpp:60
&gt; +        for (unsigned i = 0; i &lt; numberOfArgumentJSRs; ++i)

let&apos;s put braces here, since that&apos;s WK style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859693</commentid>
    <comment_count>9</comment_count>
      <attachid>457058</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-04-08 05:43:46 -0700</bug_when>
    <thetext>Created attachment 457058
v5 - fix review comment and rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859694</commentid>
    <comment_count>10</comment_count>
      <attachid>456911</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-04-08 05:47:28 -0700</bug_when>
    <thetext>Comment on attachment 456911
v4

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

Fixed all bar compiling out the Signaling enum value. Let me know if you prefer I changed that too.

&gt;&gt; Source/JavaScriptCore/interpreter/CalleeBits.h:47
&gt;&gt; +        , m_tag { static_cast&lt;uint32_t&gt;(value &gt;&gt; (TagOffset * CHAR_BIT)) }
&gt; 
&gt; why not just decode the value and grab payload and tag?

Not sure how that happened, but indeed can do that, so I did.

&gt;&gt; Source/JavaScriptCore/wasm/WasmCalleeGroup.cpp:171
&gt;&gt; +#if ENABLE(WEBASSEMBLY_SIGNALING_MEMORY)
&gt; 
&gt; Do we really need to compile out this enum value?
&gt; 
&gt; Maybe we can achieve the same perf by adding some helpers that take in a mode and check if it&apos;s signaling vs bounds checking, and when !WEBASSEMBLY_SIGNALING_MEMORY, we can always return true from &quot;isBoundsChecking&quot;

The purpose of compiling this out wasn&apos;t so much performance, but getting the compiler to tell me where I need to fix things up, I found it quite difficult without. Now that it&apos;s done we can add this back in, though could catch issues in future changes, I&apos;m happy either way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860658</commentid>
    <comment_count>11</comment_count>
      <attachid>457329</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-04-12 06:56:16 -0700</bug_when>
    <thetext>Created attachment 457329
v6 - tweak run-jsc-stress-tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863261</commentid>
    <comment_count>12</comment_count>
      <attachid>458052</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-04-21 04:02:51 -0700</bug_when>
    <thetext>Created attachment 458052
v7 - rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863265</commentid>
    <comment_count>13</comment_count>
      <attachid>458054</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-04-21 05:22:45 -0700</bug_when>
    <thetext>Created attachment 458054
v8 - rebase/2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864666</commentid>
    <comment_count>14</comment_count>
      <attachid>458054</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2022-04-26 16:29:57 -0700</bug_when>
    <thetext>Comment on attachment 458054
v8 - rebase/2

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

This is very exciting! I left a few drive-by questions/comments.

&gt; Source/JavaScriptCore/llint/WebAssembly.asm:34
&gt; +    const NumberOfWasmArgumentJSRs = 6

Maybe we can find a more neutral name for this?

&gt; Source/JavaScriptCore/llint/WebAssembly.asm:716
&gt; +    subi CalleeSaveSpaceAsVirtualRegisters + NumberOfWasmArguments, t2

I guess this is guaranteed by the spec?

&gt; Source/JavaScriptCore/llint/WebAssembly.asm:806
&gt; +        loadd -offset -  8 - CalleeSaveSpaceAsVirtualRegisters * 8[cfr], fpr

nit: spacing

&gt; Source/JavaScriptCore/runtime/JSCJSValue.h:165
&gt; +    static constexpr uint32_t WasmTag =         0xfffffffa;

Hmm. This seems confusing, since it would be a huge mistake for a value of this kind to be exposed to JS. I&apos;m not sure what would look better though

&gt; Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp:1804
&gt; +#if ENABLE(WEBASSEMBLY_SIGNALING_MEMORY)

Does this need a compile guard?

&gt; Source/JavaScriptCore/wasm/WasmIndexOrName.cpp:35
&gt; +    ASSERT(!(index &amp; allTags));

Should this be a release assert? I&apos;m not sure why this check is here, does it have something to do with dropping the name section? I couldn&apos;t find anything in the blame either. @msaboff might know

&gt; Source/JavaScriptCore/wasm/WasmIndexOrName.cpp:49
&gt; +#endif

Should we have a #else error?

&gt; Source/JavaScriptCore/wasm/WasmInstance.h:-110
&gt; -            m_cachedBoundsCheckingSize = memory()-&gt;boundsCheckingSize();

Why does boundsCheckingSize exist then?

&gt; Source/JavaScriptCore/wasm/WasmParser.h:211
&gt; +    memcpy(&amp;result, source() + m_offset, sizeof(uint32_t)); // src can be unaligned

Is this only an issue now because unaligned access doesn&apos;t work on ARMv7?

&gt; Source/JavaScriptCore/wasm/js/JSToWasm.cpp:-80
&gt; -                static_assert(std::is_same_v&lt;Wasm::Instance*, typename FunctionTraits&lt;decltype(operationAllocateResultsArray)&gt;::ArgumentType&lt;1&gt;&gt;);

Don&apos;t we still need this?

&gt; Source/JavaScriptCore/wasm/js/JSToWasm.cpp:219
&gt; +        if constexpr (maxFrameExtentForSlowPathCall)

How does this work? Is this because we might have leafs that don&apos;t emit stack overflow checks?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864670</commentid>
    <comment_count>15</comment_count>
      <attachid>458054</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2022-04-26 16:32:50 -0700</bug_when>
    <thetext>Comment on attachment 458054
v8 - rebase/2

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

&gt; Source/JavaScriptCore/wasm/WasmOperations.cpp:471
&gt; +JSC_DEFINE_JIT_OPERATION(operationConvertToI64, int64_t, (CallFrame* callFrame, EncodedJSValue v))

Why is this better as an EncodedJSValue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864779</commentid>
    <comment_count>16</comment_count>
      <attachid>458054</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-04-27 06:00:31 -0700</bug_when>
    <thetext>Comment on attachment 458054
v8 - rebase/2

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

Thanks for taking a look. Answers are inline.

&gt;&gt; Source/JavaScriptCore/llint/WebAssembly.asm:34
&gt;&gt; +    const NumberOfWasmArgumentJSRs = 6
&gt; 
&gt; Maybe we can find a more neutral name for this?

While I agree with you that the name is not ideal, JSR just matches the JITs/C++ use of a JSValueRegs to represent the same abstraction. The abstraction is &quot;a 64-bit value, which is either a single GPR on 64-bit platforms or a pair of GPRs on 32-bit platform&quot;. JSValueRegs is exactly this (and JSValueRegs is not really more than that). Ideally there would be a more explicit G64Reg or something without the JS-ness in the name, but at the same time I am not sure adding another abstraction that describes the same concept as a JSValueRegs would help with clarity right now. Personally I would just rename JSValueRegs as it&apos;s a pretty generic thing. I don&apos;t really have strong feelings about the name, so long as it&apos;s unambiguous, and I am open to suggestions.

&gt;&gt; Source/JavaScriptCore/llint/WebAssembly.asm:716
&gt;&gt; +    subi CalleeSaveSpaceAsVirtualRegisters + NumberOfWasmArguments, t2
&gt; 
&gt; I guess this is guaranteed by the spec?

Not sure what you mean by &apos;this&apos; here. t2 is loaded as an &apos;i&apos; (32-bit) one line above, and both CalleeSaveSpaceAsVirtualRegisters and NumberOfWasmArguments are small constants defined at the top of the file, all of which are specific to the implementation.

&gt;&gt; Source/JavaScriptCore/llint/WebAssembly.asm:806
&gt;&gt; +        loadd -offset -  8 - CalleeSaveSpaceAsVirtualRegisters * 8[cfr], fpr
&gt; 
&gt; nit: spacing

Will fix shortly

&gt;&gt; Source/JavaScriptCore/runtime/JSCJSValue.h:165
&gt;&gt; +    static constexpr uint32_t WasmTag =         0xfffffffa;
&gt; 
&gt; Hmm. This seems confusing, since it would be a huge mistake for a value of this kind to be exposed to JS. I&apos;m not sure what would look better though

Agreed, at the same time, the JSVALUE64 version nearby does pretty much the same thing I believe. We do need to be able to unambiguously differentiate these from JS values though.

&gt;&gt; Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp:1804
&gt;&gt; +#if ENABLE(WEBASSEMBLY_SIGNALING_MEMORY)
&gt; 
&gt; Does this need a compile guard?

The enum value MemoryMode::Signaling is currently compiled out under the same guard, so right now the guard is needed. See Saam&apos;s comments and my reply regarding the same a few comments ago. I&apos;m happy to add the enum value back, but signaling memory is unlikely to be ever supported on 32-bit platforms as it requires mprotecting 4G+ memory which is a non-starter, so on 32-bit platforms we will still want these UNREACHABLE_ON_PLATFORM, which would be at least as many compile guards I think.

&gt;&gt; Source/JavaScriptCore/wasm/WasmIndexOrName.cpp:35
&gt;&gt; +    ASSERT(!(index &amp; allTags));
&gt; 
&gt; Should this be a release assert? I&apos;m not sure why this check is here, does it have something to do with dropping the name section? I couldn&apos;t find anything in the blame either. @msaboff might know

The implementation relies on the top 2 bits of the 64-bit m_indexName.index as tags to denote which union representation is active, so the assert is there to make sure those bits don&apos;t alias the passed index. It&apos;s debug ASSERT as it&apos;s likely a pretty major dev bug if you pass an index that&apos;s &gt;= 1&lt;&lt;62, so this is just here to help you find the bug quicker (not I just added these two asserts to the 64-bit implementation, otherwise it should be identical to before.)

&gt;&gt; Source/JavaScriptCore/wasm/WasmIndexOrName.cpp:49
&gt;&gt; +#endif
&gt; 
&gt; Should we have a #else error?

In reality, there are only 2 ports JSVALUE64 and JSVALUE32_64, so people often don&apos;t bother with the #elif and use #else. I always add both just so I can grep through the platform differences if I need to (consider it my poor attempt at documentation).

&gt;&gt; Source/JavaScriptCore/wasm/WasmInstance.h:-110
&gt;&gt; -            m_cachedBoundsCheckingSize = memory()-&gt;boundsCheckingSize();
&gt; 
&gt; Why does boundsCheckingSize exist then?

memory()-&gt;boundsCheckingSize() is the size of the allocated backing store (it&apos;s a misnomer, there is a more aptly named mappedCapacity() in Wasm::MemoryHandle, which is exactly), while memory()-&gt;size() is the size of the memory as allocated in Wasm (which changes with memory.grow). In case of Signaling memory (64-bit platforms only), sometimes we allocate a larger Wasm memory backing store than the Wasm memory initial size, but mprotect the excess. For bounds checking Wasm loads/stores we need memory()-&gt;size(). As of why boundsCheckingSize(), I am not sure it needs to. It&apos;s only used to initialize the CagedPtr one line above, whether that is correct is another question (I&apos;m less familiar with CagedPtr as we don&apos;t have a Gigacage on 32-bit platforms), but probably should at least use mappedCapacity, so I will go and fix that.

&gt;&gt; Source/JavaScriptCore/wasm/WasmOperations.cpp:471
&gt;&gt; +JSC_DEFINE_JIT_OPERATION(operationConvertToI64, int64_t, (CallFrame* callFrame, EncodedJSValue v))
&gt; 
&gt; Why is this better as an EncodedJSValue?

On some ABIs, struct types are passed/returned via pointers, even if a primitive type with the same size would be passed by value via registers, or have other intricacies when it gets to calling convention (see https://godbolt.org/z/qdrxEv435, and https://godbolt.org/z/8szrrEjPa). EncodedJSValue is just int64_t, so a primitive type, which makes code generation at call sites simpler and consistent on all platforms. For this reason of portability, all functions that are called from JIT code should only receive and return primitive types.

&gt;&gt; Source/JavaScriptCore/wasm/WasmParser.h:211
&gt;&gt; +    memcpy(&amp;result, source() + m_offset, sizeof(uint32_t)); // src can be unaligned
&gt; 
&gt; Is this only an issue now because unaligned access doesn&apos;t work on ARMv7?

alignof(uint32_t) is 4 (or more generally, for primitive types alignof(type) == sizeof(type)), on most implementations (incl x86 and ARM64), so I think this was UB even before as &apos;souce() + m_offset&apos; could address any byte. As you suggest, on ARMv7, only a subset of load and store instructions support unaligned accesses on ARMv7, and this used to yield the wrong kind with the reinterpret_cast due to alignof(uing32_t) &gt; 1.

&gt;&gt; Source/JavaScriptCore/wasm/js/JSToWasm.cpp:-80
&gt;&gt; -                static_assert(std::is_same_v&lt;Wasm::Instance*, typename FunctionTraits&lt;decltype(operationAllocateResultsArray)&gt;::ArgumentType&lt;1&gt;&gt;);
&gt; 
&gt; Don&apos;t we still need this?

Maybe I again don&apos;t understand what &apos;this&apos; refers to, but isn&apos;t this static_assert there a few lines below on line 86?

&gt;&gt; Source/JavaScriptCore/wasm/js/JSToWasm.cpp:219
&gt;&gt; +        if constexpr (maxFrameExtentForSlowPathCall)
&gt; 
&gt; How does this work? Is this because we might have leafs that don&apos;t emit stack overflow checks?

On some ABIs (ARMv7 in particular this time), some arguments of operationAllocateResultsArray that we call below are passed on the stack due to lack of sufficient number of argument registers. The wrapper generated by createJSToWasmWrapper (and one place where marshallJSResult is used in JS-&gt;Wasm IC) did not allocate space for these, so we allocate it here (otherwise would thrash some stack values we need), if needed. maxFrameExtentForSlowPathCall is just enough bytes to pass stack arguments to any slow path call. Probably could allocate this excess in the wrapper/JS-&gt;Wasm IC that uses marshallJSResult, like we do in JITed functions that call slow path functions, but it&apos;s not always needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864786</commentid>
    <comment_count>17</comment_count>
      <attachid>458442</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-04-27 06:41:38 -0700</bug_when>
    <thetext>Created attachment 458442
v9 - review fixes and rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867648</commentid>
    <comment_count>18</comment_count>
      <attachid>459047</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-05-09 08:31:52 -0700</bug_when>
    <thetext>Created attachment 459047
v10 - rebase + fix 64-bit atomics</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869971</commentid>
    <comment_count>19</comment_count>
      <attachid>459536</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-05-18 05:47:37 -0700</bug_when>
    <thetext>Created attachment 459536
v11 - rebase, remove ChangeLog diffs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871715</commentid>
    <comment_count>20</comment_count>
      <attachid>459756</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-05-25 07:17:43 -0700</bug_when>
    <thetext>Created attachment 459756
v12 - rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871717</commentid>
    <comment_count>21</comment_count>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-05-25 07:20:27 -0700</bug_when>
    <thetext>I&apos;m ready to offer beer to the person who r+ this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871757</commentid>
    <comment_count>22</comment_count>
      <attachid>459756</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2022-05-25 10:14:21 -0700</bug_when>
    <thetext>Comment on attachment 459756
v12 - rebase

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871758</commentid>
    <comment_count>23</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2022-05-25 10:14:40 -0700</bug_when>
    <thetext>(In reply to Geza Lore from comment #21)
&gt; I&apos;m ready to offer beer to the person who r+ this patch.

🍻</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1872283</commentid>
    <comment_count>24</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-27 01:47:29 -0700</bug_when>
    <thetext>Committed r294934 (251045@main): &lt;https://commits.webkit.org/251045@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 459756.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1872458</commentid>
    <comment_count>25</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-05-27 16:05:45 -0700</bug_when>
    <thetext>This is being rolled out in https://github.com/WebKit/WebKit/pull/1127 because it breaks WASM on 64-bit platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1872460</commentid>
    <comment_count>26</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-05-27 16:11:15 -0700</bug_when>
    <thetext>Rolled out in:
Committed r294965 (251069@main): https://commits.webkit.org/251069@main
https://github.com/WebKit/WebKit/commit/188a9080510836a099273218f8f2cf5f304b7f61</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874492</commentid>
    <comment_count>27</comment_count>
      <attachid>460061</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-06-07 07:09:48 -0700</bug_when>
    <thetext>Created attachment 460061
v13 - ARM64E fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874493</commentid>
    <comment_count>28</comment_count>
      <attachid>460061</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-06-07 07:13:00 -0700</bug_when>
    <thetext>Comment on attachment 460061
v13 - ARM64E fix

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

&gt; Source/JavaScriptCore/wasm/WasmInstance.h:113
&gt;          if (m_memory != nullptr) {
&gt; -            m_cachedMemory = CagedPtr&lt;Gigacage::Primitive, void, tagCagedPtr&gt;(memory()-&gt;memory(), memory()-&gt;boundsCheckingSize());
&gt; -            m_cachedBoundsCheckingSize = memory()-&gt;boundsCheckingSize();
&gt; +            // This is used by the non-signaling based bound checking, so use the actual size of the memory.
&gt; +            m_cachedBoundsCheckingSize = memory()-&gt;size();
&gt; +            m_cachedMemory = CagedPtr&lt;Gigacage::Primitive, void, tagCagedPtr&gt;(memory()-&gt;memory(), m_cachedBoundsCheckingSize);
&gt;              ASSERT(memory()-&gt;memory() == cachedMemory());
&gt;          }

This is the only diff from the original reverted patch. (Now we tag m_cachedMemory with the same key as we use for untagging it)

&gt; Tools/Scripts/run-jsc-stress-tests:1772
&gt; +        if $isFTLPlatform

Also fixed this typo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874580</commentid>
    <comment_count>29</comment_count>
      <attachid>460061</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-06-07 14:50:30 -0700</bug_when>
    <thetext>Comment on attachment 460061
v13 - ARM64E fix

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

&gt;&gt; Source/JavaScriptCore/wasm/WasmInstance.h:113
&gt;&gt;          }
&gt; 
&gt; This is the only diff from the original reverted patch. (Now we tag m_cachedMemory with the same key as we use for untagging it)

OK, I&apos;ve looked into the issue.  The root cause of this issue is because you changed m_cachedBoundsCheckingSize to be set to memory()-&gt;size() previously, bit did not tag m_cachedMemory with the same.  Your current fix changes m_cachedMemory to be tagged with memory()-&gt;size() also.

However, looking through the code, I see that m_cachedBoundsCheckingSize is only used for this untagging m_cachedMemory.  Why did you change it to memory()-&gt;size() in the first place?  Can you not leave it as it was originally? 

In this patch, you also renamed boundsCheckingSize() to mappedCapacity(), and mappedCapacity() isn&apos;t used anywhere currently.  I can see how the name boundsCheckingSize() can be misleading if we don&apos;t use it for bounds checking in the non-signaling case.  However, I think it&apos;s appropriate to use mappedCapacity() as the tag value here instead of memory()-&gt;size().  mappedCapacity() never changes, but memory()-&gt;size() can change.  Let&apos;s stick with using mappedCapacity() because we want the tag to be &quot;constant&quot;-ish.  Can you change this code back to the way it was before and use mappedCapacity() as the tag value instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874605</commentid>
    <comment_count>30</comment_count>
      <attachid>460061</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-06-07 16:43:09 -0700</bug_when>
    <thetext>Comment on attachment 460061
v13 - ARM64E fix

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

r=me

&gt;&gt;&gt; Source/JavaScriptCore/wasm/WasmInstance.h:113
&gt;&gt;&gt;          }
&gt;&gt; 
&gt;&gt; This is the only diff from the original reverted patch. (Now we tag m_cachedMemory with the same key as we use for untagging it)
&gt; 
&gt; OK, I&apos;ve looked into the issue.  The root cause of this issue is because you changed m_cachedBoundsCheckingSize to be set to memory()-&gt;size() previously, bit did not tag m_cachedMemory with the same.  Your current fix changes m_cachedMemory to be tagged with memory()-&gt;size() also.
&gt; 
&gt; However, looking through the code, I see that m_cachedBoundsCheckingSize is only used for this untagging m_cachedMemory.  Why did you change it to memory()-&gt;size() in the first place?  Can you not leave it as it was originally? 
&gt; 
&gt; In this patch, you also renamed boundsCheckingSize() to mappedCapacity(), and mappedCapacity() isn&apos;t used anywhere currently.  I can see how the name boundsCheckingSize() can be misleading if we don&apos;t use it for bounds checking in the non-signaling case.  However, I think it&apos;s appropriate to use mappedCapacity() as the tag value here instead of memory()-&gt;size().  mappedCapacity() never changes, but memory()-&gt;size() can change.  Let&apos;s stick with using mappedCapacity() because we want the tag to be &quot;constant&quot;-ish.  Can you change this code back to the way it was before and use mappedCapacity() as the tag value instead?

I withdraw my comment.  m_cachedBoundsCheckingSize is used in bounds checks (I missed this previously).  And this necessitates that it be set to memory()-&gt;size().  

I&apos;ve verified that updateCachedMemory() is called after the 2 places where MemoryHandle::growToSize() is called.  So, I think this is sound.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874628</commentid>
    <comment_count>31</comment_count>
      <attachid>460061</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-06-07 18:05:27 -0700</bug_when>
    <thetext>Comment on attachment 460061
v13 - ARM64E fix

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

&gt;&gt;&gt;&gt; Source/JavaScriptCore/wasm/WasmInstance.h:113
&gt;&gt;&gt;&gt;          }
&gt;&gt;&gt; 
&gt;&gt;&gt; This is the only diff from the original reverted patch. (Now we tag m_cachedMemory with the same key as we use for untagging it)
&gt;&gt; 
&gt;&gt; OK, I&apos;ve looked into the issue.  The root cause of this issue is because you changed m_cachedBoundsCheckingSize to be set to memory()-&gt;size() previously, bit did not tag m_cachedMemory with the same.  Your current fix changes m_cachedMemory to be tagged with memory()-&gt;size() also.
&gt;&gt; 
&gt;&gt; However, looking through the code, I see that m_cachedBoundsCheckingSize is only used for this untagging m_cachedMemory.  Why did you change it to memory()-&gt;size() in the first place?  Can you not leave it as it was originally? 
&gt;&gt; 
&gt;&gt; In this patch, you also renamed boundsCheckingSize() to mappedCapacity(), and mappedCapacity() isn&apos;t used anywhere currently.  I can see how the name boundsCheckingSize() can be misleading if we don&apos;t use it for bounds checking in the non-signaling case.  However, I think it&apos;s appropriate to use mappedCapacity() as the tag value here instead of memory()-&gt;size().  mappedCapacity() never changes, but memory()-&gt;size() can change.  Let&apos;s stick with using mappedCapacity() because we want the tag to be &quot;constant&quot;-ish.  Can you change this code back to the way it was before and use mappedCapacity() as the tag value instead?
&gt; 
&gt; I withdraw my comment.  m_cachedBoundsCheckingSize is used in bounds checks (I missed this previously).  And this necessitates that it be set to memory()-&gt;size().  
&gt; 
&gt; I&apos;ve verified that updateCachedMemory() is called after the 2 places where MemoryHandle::growToSize() is called.  So, I think this is sound.

Wait, this is not correct.
For shared wasm memory, we are *intentionally* using mapped-capacity because of growing feature from concurrently running wasm threads. Please read the commit message in https://github.com/WebKit/WebKit/commit/80581efa4a373a74da13227ba20e254b4efaa357</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874959</commentid>
    <comment_count>32</comment_count>
      <attachid>460125</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-06-09 04:37:46 -0700</bug_when>
    <thetext>Created attachment 460125
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874960</commentid>
    <comment_count>33</comment_count>
      <attachid>460126</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-06-09 04:40:09 -0700</bug_when>
    <thetext>Created attachment 460126
v14 - fix wasm shared memory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874961</commentid>
    <comment_count>34</comment_count>
      <attachid>460127</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-06-09 04:45:35 -0700</bug_when>
    <thetext>Created attachment 460127
Diff from v13 to v14</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874965</commentid>
    <comment_count>35</comment_count>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-06-09 04:57:10 -0700</bug_when>
    <thetext>OK, I fixed the m_cachedBoundsCheckingSize

What I went with is the following:

1. On all platforms except CPU(ARM), m_cachedBoundsCheckingSize = memory()-&gt;mappedCapacity(), as we have done before, so no change on any of these platforms.

2. On ARMv7, as we don&apos;t have signal handlers yet, we cannot safely grow a shared memory in a multi-threaded environment (at least not as the code is right now), but I want to keep as many tests enabled as possible, so with CPU(ARM), we set m_cachedBoundsChackingSize = memory()-&gt;size(). This works for non-shared memories as for those mappedCapacity() and size() is always the same anyway. For shared memories, this makes them work with their initial size, and I added a release assert that fires when trying to grow a shared memory. With this, we only require disabling 3 tests on ARMv7, that try to do a grow operation on a shared memory.

In summary: on old platforms, everything is as it was. On ARMv7, wasm shared memories work with the limitation that they cannot be grown (i.e.: they are stuck at their initial capacity).

For convenience, I attached the diff between v13 (last reviewed) and v14 (with this change).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1875074</commentid>
    <comment_count>36</comment_count>
      <attachid>460126</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-06-09 12:43:35 -0700</bug_when>
    <thetext>Comment on attachment 460126
v14 - fix wasm shared memory

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

r=me with revert of unneeded change in LLIntOfflineAsmConfig.h.

&gt; Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h:151
&gt; +#if USE(JSVALUE32_64)
&gt; +#define OFFLINE_ASM_JSVALUE32_64 1
&gt; +#else
&gt; +#define OFFLINE_ASM_JSVALUE32_64 0
&gt; +#endif

Why is this needed?  Isn&apos;t this already inferred by the inverse of OFFLINE_ASM_JSVALUE64?  Your patch also doesn&apos;t use this.  Declaring a new OFFLINE_ASM_xxx can have a measurable impact on build times as it causes LLIntAssembly.h (or at least it used to the last time we measured this).  Let&apos;s not add a new one unless there&apos;s a good reason to.  Please remove this before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1875075</commentid>
    <comment_count>37</comment_count>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-06-09 12:50:40 -0700</bug_when>
    <thetext>&gt; Declaring a new OFFLINE_ASM_xxx can have a measurable impact on build times as it causes LLIntAssembly.h (or at least it used to the last time we measured this).

... to what?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1875077</commentid>
    <comment_count>38</comment_count>
      <attachid>460142</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-06-09 12:59:11 -0700</bug_when>
    <thetext>Created attachment 460142
v15 - revert unneded change in LLIntOfflineAsmConfig.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1875078</commentid>
    <comment_count>39</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-06-09 13:02:24 -0700</bug_when>
    <thetext>(In reply to Geza Lore from comment #37)
&gt; &gt; Declaring a new OFFLINE_ASM_xxx can have a measurable impact on build times as it causes LLIntAssembly.h (or at least it used to the last time we measured this).
&gt; 
&gt; ... to what?

Sorry.  I meant that it causes the permutations in LLIntAssembly.h to double.  We previously observed that this increased compilation time noticeably.

On second thought, I may be wrong about the additional declaration increasing the permutations.  If it&apos;s not used in the .asm files, then maybe it won&apos;t increase the permutations.  But every newly used OFFLINE_ASM configuration value like this will effectively double the permutations in LLIntAssembly.h.

Regardless, it&apos;s not good to have an unused configuration option and it is also already implied by JSVALUE64 (which is already defined).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1875079</commentid>
    <comment_count>40</comment_count>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-06-09 13:03:42 -0700</bug_when>
    <thetext>Thanks for the explanation. I do agree with the last sentence of course.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1875203</commentid>
    <comment_count>41</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-06-10 02:37:42 -0700</bug_when>
    <thetext>Committed r295449 (251455@main): &lt;https://commits.webkit.org/251455@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 460142.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455082</attachid>
            <date>2022-03-18 03:27:23 -0700</date>
            <delta_ts>2022-03-18 03:32:03 -0700</delta_ts>
            <desc>v1</desc>
            <filename>0001-JSC-Enable-WasmLLInt-on-ARMv7.patch</filename>
            <type>text/plain</type>
            <size>334496</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA2ZjFmMWU3ZDBjMjA1NjJjNWYwNDlkNWNlNzI5ZWFjYjdiOGI4MWZhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogV2VkLCAyMCBKYW4gMjAyMSAxNTo0MDo0MCArMDEwMApTdWJqZWN0OiBb
UEFUQ0hdIFtKU0NdIEVuYWJsZSBXYXNtTExJbnQgb24gQVJNdjcKIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEyNjAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1U
eXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6
IDhiaXQKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKSlNUZXN0czoKCiogc3RyZXNzL3Nh
bXBsaW5nLXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzOgoqIHN0cmVzcy9zYW1wbGluZy1w
cm9maWxlci13YXNtLmpzOgoqIHdhc20vcmVncmVzcy9sbGludC1jYWxsZWUtc2F2ZXMtd2l0aC1m
YXN0LW1lbW9yeS5qczoKClNvdXJjZS9KYXZhU2NyaXB0Q29yZToKClBhdGNoIGJ5IEdlemEgTG9y
ZSBhbmQgWGFuIEzDs3Blei4KCkltcGxlbWVudCB0aGUgTExJbnQgdGllciBvZiBXZWJBc3NlbWJs
eSBmb3IgQVJNdjcuIEEgbG90IG9mIHRoZQp3b3JrIHdpbGwgYmUgc2hhcmVkIGJ5IGFueSAzMmJp
dCBwb3J0LCBidXQgdGhlIG9mZmxpbmVhc3NlbWJsZXIKaGFzIG9ubHkgYmVlbiB1cGRhdGVkIGZv
ciBBUk12NyBzbyBmYXIuCgpNYWluIGhpZ2hsaWdodHM6CgpXZSBoYXZlIHNwbGl0IHRoZSBXZWJB
c3NlbWJseS5hc20gZmlsZSBpbnRvIHRocmVlIGNodW5rcywKZm9sbG93aW5nIHdoYXQgTG93TGV2
ZWxJbnRlcnByZXRlci5hc20gZG9lcy4gVGhlIGNvbW1vbiBjb2RlCnJlbWFpbnMgaW4gV2ViQXNz
ZW1ibHkuYXNtLCBhbmQgMzIgYW5kIDY0Yml0IHNwZWNpZmljIGNvZGUgKG1vc3RseQpvcGNvZGUg
aW1wbGVtZW50YXRpb25zKSBnb2VzIGludG8gV2ViQXNzZW1ibHkzMl82NC5hc20gYW5kCldlYkFz
c2VtYmx5NjQuYXNtLgoKV2UgaGF2ZSBkZWNpZGVkIHRvIHVzZSBhIHBhaXIgb2YgR1BScyBmb3Ig
ZXZlcnkgdHlwZSBvZiB3YXNtCnZhbHVlcywgZXZlbiBpZiB0aGV5IGFyZSAzMmJpdCAoaTMyL2Yz
MiksIHdpdGggdGhlIG9kZCBudW1iZXJlZApHUFIgaG9sZGluZyB0aGUgbW9zdCBzaWduaWZpY2Fu
dCAob3Igb25seSkgdmFsdWUuIFRoaXMgbWFrZXMgdGhlCmNvZGUgbXVjaCBzaW1wbGVyIGFuZCBh
bGxvd3MgdXMgdG8gc2hhcmUgbW9yZSBjb2RlIHdpdGggdGhlIDY0Yml0CnZhcmlhbnQuIFRoaXMg
aXMgbW9zdGx5IHJlbGV2YW50IGZvciBhcmd1bWVudCBwYXNzaW5nLCBhbmQgZ2l2ZW4KdGhhdCBl
dmVyeSB2YWx1ZSBlbmRzIHVwIGluIGEgc3RhY2sgYW55d2F5IHdlIGRvIG5vdCB0aGluayBpdCBp
cwpzaWduaWZpY2FudCBmcm9tIGEgcGVyZm9ybWFuY2UgUE9WLgoKV2UgYXJlIHJldXNpbmcgSlNW
YWx1ZVJlZ3MgdG8gaG9sZCBXYXNtIHZhbHVlcyB0b28uIE9idmlvdXNseSB0aGV5CmFyZSBub3Qg
cmVhbGx5IEpTVmFsdWVzLCBzbyBpdCBtaWdodCBtYWtlIHNlbnNlIHRvIGNyZWF0ZSBhIGJhc2UK
Y2xhc3MgdGhhdCBjYW4gYmUgdXNlZCBmb3IgYm90aCBKUyBhbmQgV2FzbSB2YWx1ZXMuCgpXZSBk
byBub3QgaGF2ZSBlbm91Z2ggcmVnaXN0ZXJzIHRvIGtlZXAgdGhpbmdzIGxpa2UgdGhlIG1lbW9y
eQpiYXNlIHBvaW50ZXIgYW5kIHNpemUgaW4gcGlubmVkIHJlZ2lzdGVycywgc28gd2UgYXJlIGZv
cmNlZCB0bwpsb2FkIHRoZW0gb24gZWFjaCB1c2UuCgpXZSBkaXNhYmxlIHRoZSAnU2lnbmFsaW5n
JyBtZW1vcnkgbW9kZSwgc2luY2UgdGhlIGN1cnJlbnQKaW1wbGVtZW50YXRpb24gcmVsaWVzIG9u
IGJlaW5nIGFibGUgdG8gbXByb3RlY3QgYSAyXjMyICsgcmVkem9uZQpyZWdpb24gb2YgbWVtb3J5
LiBUaGlzIGNhbiBiZSBjaGFuZ2VkIGluIHRoZSBmdXR1cmUgYnV0IGl0J3Mgbm90IGEKcHJpb3Jp
dHkgYXQgdGhlIG1vbWVudC4KCiogQ01ha2VMaXN0cy50eHQ6CiogYXNzZW1ibGVyL0FSTXY3QXNz
ZW1ibGVyLmg6CihKU0M6OkFSTXY3QXNzZW1ibGVyOjp2Y3Z0X3NpZ25lZFRvRmxvYXRpbmdQb2lu
dCk6CiogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaDoKKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk12Nzo6Y29udmVydEludDMyVG9GbG9hdCk6CihKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6
OnRocmVhZFNhZmVQYXRjaGFibGVOZWFyQ2FsbCk6CihKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6
OmNhbGxPcGVyYXRpb24pOgoqIGIzL0IzVmFsdWVSZXAuaDoKKEpTQzo6QjM6OlZhbHVlUmVwOjpW
YWx1ZVJlcCk6CiogYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwOgooSlNDOjpXYXNtOjpCeXRl
Y29kZUR1bXBlcjo6Zm9ybWF0Q29uc3RhbnQgY29uc3QpOgoqIGludGVycHJldGVyL0NhbGxGcmFt
ZS5oOiBhZGFwdCB0byBuZXcgY2FsbGVlIHRhZ2dpbmcgZm9ybWF0LgooSlNDOjpDYWxsRnJhbWU6
OmNhbGxlZSBjb25zdCk6CihKU0M6OkNhbGxGcmFtZTo6dW5zYWZlQ2FsbGVlIGNvbnN0KToKKiBp
bnRlcnByZXRlci9DYWxsZWVCaXRzLmg6IGFkZCB3YXNtIHRhZ2dpbmcgb2YgY2FsbGVlIHZhbHVl
cyBmb3IKMzJiaXQuCihKU0M6OkNhbGxlZUJpdHM6OkNhbGxlZUJpdHMpOgooSlNDOjpDYWxsZWVC
aXRzOjpvcGVyYXRvcj0pOgooSlNDOjpDYWxsZWVCaXRzOjpib3hXYXNtKToKKEpTQzo6Q2FsbGVl
Qml0czo6aXNXYXNtIGNvbnN0KToKKEpTQzo6Q2FsbGVlQml0czo6YXNXYXNtQ2FsbGVlIGNvbnN0
KToKKiBpbnRlcnByZXRlci9SZWdpc3Rlci5oOgooSlNDOjpSZWdpc3Rlcjo6dW5ib3hlZEZsb2F0
IGNvbnN0KToKKEpTQzo6UmVnaXN0ZXI6OmFzYW5VbnNhZmVVbmJveGVkRmxvYXQgY29uc3QpOgoq
IGppdC9Bc3NlbWJseUhlbHBlcnMuaDoKKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjp1bmJveERvdWJs
ZSk6Ciogaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmNwcDoKKEpTQzo6UmVnaXN0ZXJBdE9mZnNl
dExpc3Q6OlJlZ2lzdGVyQXRPZmZzZXRMaXN0KToKKiBqaXQvUmVnaXN0ZXJBdE9mZnNldExpc3Qu
aDoKKEpTQzo6UmVnaXN0ZXJBdE9mZnNldExpc3Q6OnNpemVPZkFyZWFJbkJ5dGVzIGNvbnN0KToK
KiBqaXQvUmVnaXN0ZXJTZXQuY3BwOgooSlNDOjpSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVn
aXN0ZXJzKToKKiBsbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaDoKKiBsbGludC9Mb3dMZXZl
bEludGVycHJldGVyMzJfNjQuYXNtOgoqIGxsaW50L1dlYkFzc2VtYmx5LmFzbToKKiBsbGludC9X
ZWJBc3NlbWJseTMyXzY0LmFzbTogQWRkZWQuCiogbGxpbnQvV2ViQXNzZW1ibHk2NC5hc206IEFk
ZGVkLgoqIG9mZmxpbmVhc20vYXJtLnJiOgoqIG9mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiOgoq
IG9mZmxpbmVhc20vcmVnaXN0ZXJzLnJiOgoqIG9mZmxpbmVhc20vcmlzYy5yYjoKKiBydW50aW1l
L0pTQ0pTVmFsdWUuaDoKKEpTQzo6anNVbmJveGVkRmxvYXQpOgoqIHJ1bnRpbWUvSlNDSlNWYWx1
ZUlubGluZXMuaDoKKEpTQzo6SlNWYWx1ZTo6SlNWYWx1ZSk6Ciogd2FzbS9XYXNtQWlySVJHZW5l
cmF0b3IuY3BwOgooSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6dXNlU2lnbmFsaW5nTWVtb3J5
IGNvbnN0KToKKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OkFpcklSR2VuZXJhdG9yKToKKEpT
Qzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKToKKEpT
Qzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmFkZENhbGwpOgoqIHdhc20vV2FzbUIzSVJHZW5lcmF0
b3IuY3BwOgooSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjp1c2VTaWduYWxpbmdNZW1vcnkgY29u
c3QpOgooSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjpCM0lSR2VuZXJhdG9yKToKKEpTQzo6V2Fz
bTo6QjNJUkdlbmVyYXRvcjo6YWRkQXJndW1lbnRzKToKKEpTQzo6V2FzbTo6QjNJUkdlbmVyYXRv
cjo6ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIpOgooSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9y
OjptZW1vcnlLaW5kKToKKEpTQzo6V2FzbTo6QjNJUkdlbmVyYXRvcjo6YWRkQ2FsbCk6Ciogd2Fz
bS9XYXNtQmluZGluZy5jcHA6CihKU0M6Oldhc206Ondhc21Ub1dhc20pOgoqIHdhc20vV2FzbUNh
bGxlZS5jcHA6CihKU0M6Oldhc206OkxMSW50Q2FsbGVlOjpjYWxsZWVTYXZlUmVnaXN0ZXJzKToK
KiB3YXNtL1dhc21DYWxsZWVHcm91cC5jcHA6CihKU0M6Oldhc206OkNhbGxlZUdyb3VwOjppc1Nh
ZmVUb1J1bik6Ciogd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwOgooSlNDOjpXYXNtOjpq
c0NhbGxpbmdDb252ZW50aW9uKToKKEpTQzo6V2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKToK
KiB3YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oOgooSlNDOjpXYXNtOjpDYWxsSW5mb3JtYXRp
b246OmNvbXB1dGVSZXN1bHRzT2Zmc2V0TGlzdCk6CihKU0M6Oldhc206Oldhc21DYWxsaW5nQ29u
dmVudGlvbjo6V2FzbUNhbGxpbmdDb252ZW50aW9uKToKKEpTQzo6V2FzbTo6V2FzbUNhbGxpbmdD
b252ZW50aW9uOjptYXJzaGFsbExvY2F0aW9uSW1wbCBjb25zdCk6CihKU0M6Oldhc206Oldhc21D
YWxsaW5nQ29udmVudGlvbjo6bWFyc2hhbGxMb2NhdGlvbiBjb25zdCk6CihKU0M6Oldhc206OkpT
Q2FsbGluZ0NvbnZlbnRpb246OkpTQ2FsbGluZ0NvbnZlbnRpb24pOgooSlNDOjpXYXNtOjpKU0Nh
bGxpbmdDb252ZW50aW9uOjptYXJzaGFsbExvY2F0aW9uSW1wbCBjb25zdCk6CihKU0M6Oldhc206
OkpTQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxsTG9jYXRpb24gY29uc3QpOgooSlNDOjpXYXNt
OjpKU0NhbGxpbmdDb252ZW50aW9uOjpjYWxsSW5mb3JtYXRpb25Gb3IgY29uc3QpOgoqIHdhc20v
V2FzbUZvcm1hdC5oOgoqIHdhc20vV2FzbUluZGV4T3JOYW1lLmNwcDoKKEpTQzo6V2FzbTo6SW5k
ZXhPck5hbWU6OkluZGV4T3JOYW1lKToKKEpTQzo6V2FzbTo6bWFrZVN0cmluZyk6Ciogd2FzbS9X
YXNtSW5kZXhPck5hbWUuaDoKKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OkluZGV4T3JOYW1lKToK
KEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OmlzRW1wdHkgY29uc3QpOgooSlNDOjpXYXNtOjpJbmRl
eE9yTmFtZTo6aXNJbmRleCBjb25zdCk6CihKU0M6Oldhc206OkluZGV4T3JOYW1lOjppc05hbWUg
Y29uc3QpOgooSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6aW5kZXggY29uc3QpOgooSlNDOjpXYXNt
OjpJbmRleE9yTmFtZTo6bmFtZSBjb25zdCk6CihKU0M6Oldhc206OkluZGV4T3JOYW1lOjpuYW1l
U2VjdGlvbiBjb25zdCk6Ciogd2FzbS9XYXNtSW5zdGFuY2UuaDoKKEpTQzo6V2FzbTo6SW5zdGFu
Y2U6OnVwZGF0ZUNhY2hlZE1lbW9yeSk6Ciogd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwOgoo
SlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6dmlydHVhbFJlZ2lzdGVyRm9yV2FzbUxvY2FsKToK
KEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvckNhbGxlcik6CihK
U0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZWUpOgooSlND
OjpXYXNtOjpMTEludEdlbmVyYXRvcjo6YWRkQXJndW1lbnRzKToKKEpTQzo6V2FzbTo6TExJbnRH
ZW5lcmF0b3I6OmFkZExvb3ApOgoqIHdhc20vV2FzbUxMSW50UGxhbi5jcHA6CihKU0M6Oldhc206
OkxMSW50UGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlvbik6Ciogd2FzbS9XYXNtTWVtb3J5LmNw
cDoKKEpTQzo6V2FzbTo6TWVtb3J5SGFuZGxlOjp+TWVtb3J5SGFuZGxlKToKKEpTQzo6V2FzbTo6
TWVtb3J5Ojp0cnlDcmVhdGUpOgooSlNDOjpXYXNtOjpNZW1vcnk6Omdyb3dTaGFyZWQpOgooSlND
OjpXYXNtOjpNZW1vcnk6Omdyb3cpOgooSlNDOjpXYXNtOjpNZW1vcnk6OmNvcHkpOgoqIHdhc20v
V2FzbU1lbW9yeS5oOgoqIHdhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmNwcDoKKEpTQzo6V2Fz
bTo6UGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQpOgoqIHdhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9u
Lmg6CihKU0M6Oldhc206OlBpbm5lZFJlZ2lzdGVySW5mbzo6dG9TYXZlIGNvbnN0KToKKiB3YXNt
L1dhc21NZW1vcnlNb2RlLmNwcDoKKEpTQzo6V2FzbTo6bWFrZVN0cmluZyk6Ciogd2FzbS9XYXNt
TWVtb3J5TW9kZS5oOgoqIHdhc20vV2FzbU9wY29kZU9yaWdpbi5jcHA6Ciogd2FzbS9XYXNtT3Bj
b2RlT3JpZ2luLmg6Ciogd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHA6CihKU0M6Oldhc206OkpTQ19E
RUZJTkVfSklUX09QRVJBVElPTik6Ciogd2FzbS9XYXNtT3BlcmF0aW9ucy5oOgoqIHdhc20vV2Fz
bVBhZ2VDb3VudC5oOgoqIHdhc20vV2FzbVBhcnNlci5oOgooSlNDOjpXYXNtOjpQYXJzZXI8U3Vj
Y2Vzc1R5cGU+OjpwYXJzZVVJbnQzMik6CihKU0M6Oldhc206OlBhcnNlcjxTdWNjZXNzVHlwZT46
OnBhcnNlVUludDY0KToKKiB3YXNtL1dhc21TbG93UGF0aHMuY3BwOgooSlNDOjpMTEludDo6V0FT
TV9TTE9XX1BBVEhfREVDTCk6CihKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9wb3Bjb3VudCk6
CihKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9wb3Bjb3VudGxsKToKKEpTQzo6TExJbnQ6OnNs
b3dfcGF0aF93YXNtX2kzMl9kaXZfcyk6CihKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pMzJf
ZGl2X3UpOgooSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTMyX3JlbV9zKToKKEpTQzo6TExJ
bnQ6OnNsb3dfcGF0aF93YXNtX2kzMl9yZW1fdSk6CihKU0M6OkxMSW50OjpzbG93X3BhdGhfd2Fz
bV9pNjRfZGl2X3MpOgooSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTY0X2Rpdl91KToKKEpT
Qzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2k2NF9yZW1fcyk6CihKU0M6OkxMSW50OjpzbG93X3Bh
dGhfd2FzbV9pNjRfcmVtX3UpOgoqIHdhc20vV2FzbVNsb3dQYXRocy5oOgoqIHdhc20vV2FzbVZh
bHVlTG9jYXRpb24uY3BwOgooSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjpkdW1wIGNvbnN0KToK
KFdURjo6cHJpbnRJbnRlcm5hbCk6Ciogd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5oOgooSlNDOjpX
YXNtOjpWYWx1ZUxvY2F0aW9uOjpWYWx1ZUxvY2F0aW9uKToKKEpTQzo6V2FzbTo6VmFsdWVMb2Nh
dGlvbjo6aXNHUFIgY29uc3QpOgooSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjppc0ZQUiBjb25z
dCk6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzU3RhY2sgY29uc3QpOgooSlNDOjpXYXNt
OjpWYWx1ZUxvY2F0aW9uOjppc1N0YWNrQXJndW1lbnQgY29uc3QpOgooSlNDOjpXYXNtOjpWYWx1
ZUxvY2F0aW9uOjpqc3IgY29uc3QpOgooSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjpmcHIgY29u
c3QpOgooSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjpyZWcpOiBEZWxldGVkLgooSlNDOjpXYXNt
OjpWYWx1ZUxvY2F0aW9uOjppc1JlZyBjb25zdCk6IERlbGV0ZWQuCihKU0M6Oldhc206OlZhbHVl
TG9jYXRpb246OnJlZyBjb25zdCk6IERlbGV0ZWQuCihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246
OmdwciBjb25zdCk6IERlbGV0ZWQuCiogd2FzbS9qcy9KU1RvV2FzbS5jcHA6CihKU0M6Oldhc206
Om1hcnNoYWxsSlNSZXN1bHQpOgooSlNDOjpXYXNtOjpjcmVhdGVKU1RvV2FzbVdyYXBwZXIpOgoq
IHdhc20vanMvV2FzbVRvSlMuY3BwOgooSlNDOjpXYXNtOjp3YXNtVG9KUyk6Ciogd2FzbS9qcy9X
ZWJBc3NlbWJseUZ1bmN0aW9uLmNwcDoKKEpTQzo6V2ViQXNzZW1ibHlGdW5jdGlvbjo6cHJldmlv
dXNJbnN0YW5jZU9mZnNldCBjb25zdCk6CihKU0M6OldlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2Fs
bEVudHJ5cG9pbnRTbG93KToKKiB3YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3Iu
Y3BwOgooSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgoqIHdhc20vanMvV2ViQXNzZW1i
bHlNb2R1bGVSZWNvcmQuY3BwOgooSlNDOjpXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6aW5pdGlh
bGl6ZUV4cG9ydHMpOgoKU291cmNlL1dURjoKCiogd3RmL1BsYXRmb3JtRW5hYmxlLmg6IGVuYWJs
ZSBXZWJBc3NlbWJseSBvbiBBUk12Ny4KClRvb2xzOgoKKiBTY3JpcHRzL3J1bi1qc2Mtc3RyZXNz
LXRlc3RzOiBhbGxvdyB0byBydW4gdGhlIHdhc20gdGVzdHMgb24KYXJtdjcgZXZlbiB3aXRob3V0
IGppdCBzdXBwb3J0IChmb3Igbm93KS4KLS0tCiBKU1Rlc3RzL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDExICsKIC4uLi9zYW1wbGluZy1wcm9maWxlci13YXNtLW5h
bWUtc2VjdGlvbi5qcyAgICB8ICAgIDYgKwogSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmls
ZXItd2FzbS5qcyAgICAgIHwgICAgMSArCiAuLi4vbGxpbnQtY2FsbGVlLXNhdmVzLXdpdGgtZmFz
dC1tZW1vcnkuanMgICAgfCAgICAxICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dCAgICAgICAgICB8ICAgIDIgKwogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgIHwgIDIwMyArKysKIC4uLi9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJN
djdBc3NlbWJsZXIuaCB8ICAgIDQgKy0KIC4uLi9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12
Ny5oICAgICAgICAgICB8ICAgMjQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVl
UmVwLmggICAgICAgICB8ICAgIDggKy0KIC4uLi9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAg
ICAgICAgICAgICAgICB8ICAgIDIgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9DYWxsRnJhbWUuaCB8ICAgIDQgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9D
YWxsZWVCaXRzLmggICB8ICAgMzUgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9SZWdpc3Rlci5oICB8ICAgMTYgKwogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJs
eUhlbHBlcnMuaCAgIHwgICAgNSArLQogLi4uL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5jcHAg
ICAgICAgICAgICAgIHwgICAzNCArLQogLi4uL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlckF0
T2Zmc2V0TGlzdC5oIHwgICAgMyArCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVy
U2V0LmNwcCAgICAgfCAgICAyICsKIC4uLi9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaCAg
ICAgICAgICAgICB8ICAgIDYgKwogLi4uL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5h
c20gICAgICAgIHwgICAxNiArCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1i
bHkuYXNtICAgfCAxNTc3ICsrKy0tLS0tLS0tLS0tLS0tCiAuLi4vSmF2YVNjcmlwdENvcmUvbGxp
bnQvV2ViQXNzZW1ibHkzMl82NC5hc20gfCAxMTI5ICsrKysrKysrKysrKwogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5NjQuYXNtIHwgMTI1OSArKysrKysrKysrKysrCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIgICAgICAgfCAgMjg3ICsrLQog
Li4uL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiIHwgICAxNyArLQog
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiIHwgICAgMyArLQog
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYiAgICAgIHwgICAgNiArLQog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oICAgIHwgICAxOCArLQog
Li4uL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaCAgICAgICAgICAgICAgIHwgICAgNyArCiAu
Li4vd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwICAgICAgICAgICAgICAgfCAgIDE1ICstCiAu
Li4vSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAgfCAgIDI3ICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQmluZGluZy5jcHAgICAgfCAgIDE4ICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcCAgICAgfCAgICA1ICstCiAu
Li4vSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlR3JvdXAuY3BwICAgfCAgICA0ICsKIC4u
Li93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5jcHAgICAgICAgICAgICB8ICAgMzkgKy0KIC4u
Li93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oICAgICAgICAgICAgICB8ICAgNDEgKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaCAgICAgICB8ICAgIDIgKwogLi4u
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcCAgIHwgICAyNyArLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmggIHwgICA3MCArLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmggICAgIHwgICAgMyArLQogLi4u
L3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcCAgICAgICAgICAgICAgIHwgICAxMCArLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5jcHAgIHwgICAgNyArLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5jcHAgICAgIHwgICA0MiArLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5oICAgICAgIHwgICAgMiArCiAuLi4v
d2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwICAgICAgICAgICAgfCAgICA3ICsKIC4uLi93
YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5oICAgICAgICAgICAgICB8ICAgIDUgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmNwcCB8ICAgIDIgKwogU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuaCAgIHwgICAgMiArCiAuLi4vSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcCAgfCAgICA0ICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmggfCAgICA0ICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAgfCAgIDUwICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oICAgfCAgIDE2ICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFnZUNvdW50LmggICAgfCAgICA3ICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmggICAgICAgfCAgICA0ICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmNwcCAgfCAgMjMwICsrLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5oICAgIHwgICAzNCArCiAuLi4vSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5jcHAgfCAgIDE0ICstCiAuLi4vSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5oICAgfCAgIDQ0ICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAgICAgfCAgMTkxICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAgICAgfCAgMTUzICstCiAuLi4vd2Fz
bS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcCAgICAgICAgICAgfCAgMTU3ICstCiAuLi4vd2Fz
bS9qcy9XZWJBc3NlbWJseUdsb2JhbENvbnN0cnVjdG9yLmNwcCAgfCAgICAyICstCiAuLi4vd2Fz
bS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAgICAgICAgfCAgICAyICstCiBTb3VyY2Uv
V1RGL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA5ICsKIFNvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtRW5hYmxlLmggICAgICAgICAgICAgICB8ICAgIDYgKy0KIFRvb2xzL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKwogVG9vbHMvU2Ny
aXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cyAgICAgICAgICAgIHwgICA1OSArLQogNjYgZmlsZXMg
Y2hhbmdlZCwgNDI5NyBpbnNlcnRpb25zKCspLCAxNzEzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseTMyXzY0LmFz
bQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3Nl
bWJseTY0LmFzbQoKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMTAxZmVhMGUxMDhkLi5kZTcyODM2NWRhOGMgMTAwNjQ0Ci0tLSBhL0pTVGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjItMDMtMTcgIFhhbiBMw7NwZXogIDx4YW5AaWdhbGlhLmNvbT4KKworICAgICAgICBbSlNDXSBF
bmFibGUgV2FzbUxMSW50IG9uIEFSTXY3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjEyNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5hbWUtc2Vj
dGlvbi5qczoKKyAgICAgICAgKiBzdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qczoKKyAg
ICAgICAgKiB3YXNtL3JlZ3Jlc3MvbGxpbnQtY2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnku
anM6CisKIDIwMjItMDMtMDggIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbW92ZSBpbnZhbGlkIEFTU0VSVCBpbiBMb2NhbGVJREJ1aWxkZXI6Om92ZXJyaWRlTGFu
Z3VhZ2VTY3JpcHRSZWdpb24oKS4KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5n
LXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmct
cHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24uanMKaW5kZXggNWMyMjBmZDc2Y2RjLi4wMDdhYjdh
YzU5YzEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20t
bmFtZS1zZWN0aW9uLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdh
c20tbmFtZS1zZWN0aW9uLmpzCkBAIC0xLDMgKzEsOSBAQAorLy8gVGhpcyB0ZXN0IGlzIHN0YXRp
c3RpY2FsLCBhbmQgd2l0aG91dCBvcHRpbWl6aW5nIFdhc20gdGllcnMgdGhlIGxpa2VsaWhvb2QK
Ky8vIG9mIGhpdHRpbmcgdGhlIGRlZXBlc3QgZXhwZWN0ZWQgc3RhY2sgdHJhY2UgaXMgdmVyeSBs
b3cuIFRvIGdpdmUgdXMgYSBiZXR0ZXIKKy8vIGNoYW5jZSwgZGlzYWJsZSBKUyBKSVRzIGFuZCBp
bmNyZWFzZSBzYW1wbGluZyByYXRlLgorLy8gRklYTUU6IHJlbW92ZSB3aGVuIDMyLWJpdCBwbGF0
Zm9ybXMgc3VwcG9ydCBvcHRpbWl6aW5nIFdhc20gdGllcnMKKy8vQCByZXF1aXJlT3B0aW9ucygi
LS1zYW1wbGVJbnRlcnZhbD0xMCIsICItLXVzZUJhc2VsaW5lSklUPWZhbHNlIiwgIi0tdXNlREZH
SklUPWZhbHNlIikgaWYgWyJhcm0iLCAibWlwcyJdLmluY2x1ZGU/KCRhcmNoaXRlY3R1cmUpCisv
LwogLy9AIHJ1bkRlZmF1bHQKIAogLyoKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBs
aW5nLXByb2ZpbGVyLXdhc20uanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13
YXNtLmpzCmluZGV4IDA2ZGYwMTI0OTU5Ni4uNzI0MGMwMGRlMjdlIDEwMDY0NAotLS0gYS9KU1Rl
c3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanMKQEAgLTEsMyArMSw0IEBACisvL0Agc2tpcCBpZiAk
YXJjaGl0ZWN0dXJlID09ICJhcm0iCiAvL0AgcnVuRGVmYXVsdAogCiBpZiAocGxhdGZvcm1TdXBw
b3J0c1NhbXBsaW5nUHJvZmlsZXIoKSAmJiAkdm0uaXNXYXNtU3VwcG9ydGVkKCkpIHsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvd2FzbS9yZWdyZXNzL2xsaW50LWNhbGxlZS1zYXZlcy13aXRoLWZhc3Qt
bWVtb3J5LmpzIGIvSlNUZXN0cy93YXNtL3JlZ3Jlc3MvbGxpbnQtY2FsbGVlLXNhdmVzLXdpdGgt
ZmFzdC1tZW1vcnkuanMKaW5kZXggZjlmMDljNDc1MTNhLi4xMWNmYjE2NGJiNjQgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvd2FzbS9yZWdyZXNzL2xsaW50LWNhbGxlZS1zYXZlcy13aXRoLWZhc3QtbWVt
b3J5LmpzCisrKyBiL0pTVGVzdHMvd2FzbS9yZWdyZXNzL2xsaW50LWNhbGxlZS1zYXZlcy13aXRo
LWZhc3QtbWVtb3J5LmpzCkBAIC0xLDMgKzEsNCBAQAorLy9AIHNraXAgaWYgJGFyY2hpdGVjdHVy
ZSA9PSAiYXJtIgogLy9AIHJlcXVpcmVPcHRpb25zKCItLXVzZVdlYkFzc2VtYmx5RmFzdE1lbW9y
eT10cnVlIikKIAogaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJy4uL2Fzc2VydC5qcyc7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNzRlMjNkZjU0ZGU2Li40NmVlNThhZmJk
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIwMCw2ICsyMDAsOCBA
QCBzZXQoTExJTlRfQVNNCiAgICAgbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQog
ICAgIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KICAgICBsbGludC9XZWJBc3NlbWJs
eS5hc20KKyAgICBsbGludC9XZWJBc3NlbWJseTMyXzY0LmFzbQorICAgIGxsaW50L1dlYkFzc2Vt
Ymx5NjQuYXNtCiApCiAKIHNldChPRkZMSU5FX0FTTQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5k
ZXggYTc0MzFiYmQ0YWZlLi5mZDZkZmQzYjg5NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwNiBAQAorMjAyMi0wMy0xNyAgWGFuIEzDs3BleiAgPHhhbkBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtKU0NdIEVuYWJsZSBXYXNtTExJbnQgb24gQVJNdjcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTI2MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhdGNoIGJ5IEdlemEgTG9yZSBh
bmQgWGFuIEzDs3Blei4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIExMSW50IHRpZXIgb2YgV2Vi
QXNzZW1ibHkgZm9yIEFSTXY3LiBBIGxvdCBvZiB0aGUKKyAgICAgICAgd29yayB3aWxsIGJlIHNo
YXJlZCBieSBhbnkgMzJiaXQgcG9ydCwgYnV0IHRoZSBvZmZsaW5lYXNzZW1ibGVyCisgICAgICAg
IGhhcyBvbmx5IGJlZW4gdXBkYXRlZCBmb3IgQVJNdjcgc28gZmFyLgorCisgICAgICAgIE1haW4g
aGlnaGxpZ2h0czoKKworICAgICAgICBXZSBoYXZlIHNwbGl0IHRoZSBXZWJBc3NlbWJseS5hc20g
ZmlsZSBpbnRvIHRocmVlIGNodW5rcywKKyAgICAgICAgZm9sbG93aW5nIHdoYXQgTG93TGV2ZWxJ
bnRlcnByZXRlci5hc20gZG9lcy4gVGhlIGNvbW1vbiBjb2RlCisgICAgICAgIHJlbWFpbnMgaW4g
V2ViQXNzZW1ibHkuYXNtLCBhbmQgMzIgYW5kIDY0Yml0IHNwZWNpZmljIGNvZGUgKG1vc3RseQor
ICAgICAgICBvcGNvZGUgaW1wbGVtZW50YXRpb25zKSBnb2VzIGludG8gV2ViQXNzZW1ibHkzMl82
NC5hc20gYW5kCisgICAgICAgIFdlYkFzc2VtYmx5NjQuYXNtLgorCisgICAgICAgIFdlIGhhdmUg
ZGVjaWRlZCB0byB1c2UgYSBwYWlyIG9mIEdQUnMgZm9yIGV2ZXJ5IHR5cGUgb2Ygd2FzbQorICAg
ICAgICB2YWx1ZXMsIGV2ZW4gaWYgdGhleSBhcmUgMzJiaXQgKGkzMi9mMzIpLCB3aXRoIHRoZSBv
ZGQgbnVtYmVyZWQKKyAgICAgICAgR1BSIGhvbGRpbmcgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgKG9y
IG9ubHkpIHZhbHVlLiBUaGlzIG1ha2VzIHRoZQorICAgICAgICBjb2RlIG11Y2ggc2ltcGxlciBh
bmQgYWxsb3dzIHVzIHRvIHNoYXJlIG1vcmUgY29kZSB3aXRoIHRoZSA2NGJpdAorICAgICAgICB2
YXJpYW50LiBUaGlzIGlzIG1vc3RseSByZWxldmFudCBmb3IgYXJndW1lbnQgcGFzc2luZywgYW5k
IGdpdmVuCisgICAgICAgIHRoYXQgZXZlcnkgdmFsdWUgZW5kcyB1cCBpbiBhIHN0YWNrIGFueXdh
eSB3ZSBkbyBub3QgdGhpbmsgaXQgaXMKKyAgICAgICAgc2lnbmlmaWNhbnQgZnJvbSBhIHBlcmZv
cm1hbmNlIFBPVi4KKworICAgICAgICBXZSBhcmUgcmV1c2luZyBKU1ZhbHVlUmVncyB0byBob2xk
IFdhc20gdmFsdWVzIHRvby4gT2J2aW91c2x5IHRoZXkKKyAgICAgICAgYXJlIG5vdCByZWFsbHkg
SlNWYWx1ZXMsIHNvIGl0IG1pZ2h0IG1ha2Ugc2Vuc2UgdG8gY3JlYXRlIGEgYmFzZQorICAgICAg
ICBjbGFzcyB0aGF0IGNhbiBiZSB1c2VkIGZvciBib3RoIEpTIGFuZCBXYXNtIHZhbHVlcy4KKwor
ICAgICAgICBXZSBkbyBub3QgaGF2ZSBlbm91Z2ggcmVnaXN0ZXJzIHRvIGtlZXAgdGhpbmdzIGxp
a2UgdGhlIG1lbW9yeQorICAgICAgICBiYXNlIHBvaW50ZXIgYW5kIHNpemUgaW4gcGlubmVkIHJl
Z2lzdGVycywgc28gd2UgYXJlIGZvcmNlZCB0bworICAgICAgICBsb2FkIHRoZW0gb24gZWFjaCB1
c2UuCisKKyAgICAgICAgV2UgZGlzYWJsZSB0aGUgJ1NpZ25hbGluZycgbWVtb3J5IG1vZGUsIHNp
bmNlIHRoZSBjdXJyZW50CisgICAgICAgIGltcGxlbWVudGF0aW9uIHJlbGllcyBvbiBiZWluZyBh
YmxlIHRvIG1wcm90ZWN0IGEgMl4zMiArIHJlZHpvbmUKKyAgICAgICAgcmVnaW9uIG9mIG1lbW9y
eS4gVGhpcyBjYW4gYmUgY2hhbmdlZCBpbiB0aGUgZnV0dXJlIGJ1dCBpdCdzIG5vdCBhCisgICAg
ICAgIHByaW9yaXR5IGF0IHRoZSBtb21lbnQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBhc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6QVJN
djdBc3NlbWJsZXI6OnZjdnRfc2lnbmVkVG9GbG9hdGluZ1BvaW50KToKKyAgICAgICAgKiBhc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
ckFSTXY3Ojpjb252ZXJ0SW50MzJUb0Zsb2F0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk12Nzo6dGhyZWFkU2FmZVBhdGNoYWJsZU5lYXJDYWxsKToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk12Nzo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogYjMvQjNWYWx1ZVJl
cC5oOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWVSZXA6OlZhbHVlUmVwKToKKyAgICAgICAgKiBi
eXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkJ5dGVjb2Rl
RHVtcGVyOjpmb3JtYXRDb25zdGFudCBjb25zdCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvQ2Fs
bEZyYW1lLmg6IGFkYXB0IHRvIG5ldyBjYWxsZWUgdGFnZ2luZyBmb3JtYXQuCisgICAgICAgIChK
U0M6OkNhbGxGcmFtZTo6Y2FsbGVlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6Q2FsbEZyYW1lOjp1
bnNhZmVDYWxsZWUgY29uc3QpOgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxlZUJpdHMuaDog
YWRkIHdhc20gdGFnZ2luZyBvZiBjYWxsZWUgdmFsdWVzIGZvcgorICAgICAgICAzMmJpdC4KKyAg
ICAgICAgKEpTQzo6Q2FsbGVlQml0czo6Q2FsbGVlQml0cyk6CisgICAgICAgIChKU0M6OkNhbGxl
ZUJpdHM6Om9wZXJhdG9yPSk6CisgICAgICAgIChKU0M6OkNhbGxlZUJpdHM6OmJveFdhc20pOgor
ICAgICAgICAoSlNDOjpDYWxsZWVCaXRzOjppc1dhc20gY29uc3QpOgorICAgICAgICAoSlNDOjpD
YWxsZWVCaXRzOjphc1dhc21DYWxsZWUgY29uc3QpOgorICAgICAgICAqIGludGVycHJldGVyL1Jl
Z2lzdGVyLmg6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyOjp1bmJveGVkRmxvYXQgY29uc3QpOgor
ICAgICAgICAoSlNDOjpSZWdpc3Rlcjo6YXNhblVuc2FmZVVuYm94ZWRGbG9hdCBjb25zdCk6Cisg
ICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhl
bHBlcnM6OnVuYm94RG91YmxlKToKKyAgICAgICAgKiBqaXQvUmVnaXN0ZXJBdE9mZnNldExpc3Qu
Y3BwOgorICAgICAgICAoSlNDOjpSZWdpc3RlckF0T2Zmc2V0TGlzdDo6UmVnaXN0ZXJBdE9mZnNl
dExpc3QpOgorICAgICAgICAqIGppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5oOgorICAgICAgICAo
SlNDOjpSZWdpc3RlckF0T2Zmc2V0TGlzdDo6c2l6ZU9mQXJlYUluQnl0ZXMgY29uc3QpOgorICAg
ICAgICAqIGppdC9SZWdpc3RlclNldC5jcHA6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyU2V0Ojpt
YWNyb1NjcmF0Y2hSZWdpc3RlcnMpOgorICAgICAgICAqIGxsaW50L0xMSW50T2ZmbGluZUFzbUNv
bmZpZy5oOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206Cisg
ICAgICAgICogbGxpbnQvV2ViQXNzZW1ibHkuYXNtOgorICAgICAgICAqIGxsaW50L1dlYkFzc2Vt
Ymx5MzJfNjQuYXNtOiBBZGRlZC4KKyAgICAgICAgKiBsbGludC9XZWJBc3NlbWJseTY0LmFzbTog
QWRkZWQuCisgICAgICAgICogb2ZmbGluZWFzbS9hcm0ucmI6CisgICAgICAgICogb2ZmbGluZWFz
bS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9yZWdpc3RlcnMucmI6Cisg
ICAgICAgICogb2ZmbGluZWFzbS9yaXNjLnJiOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1
ZS5oOgorICAgICAgICAoSlNDOjpqc1VuYm94ZWRGbG9hdCk6CisgICAgICAgICogcnVudGltZS9K
U0NKU1ZhbHVlSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjpKU1ZhbHVlKToKKyAg
ICAgICAgKiB3YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6Oldhc206
OkFpcklSR2VuZXJhdG9yOjp1c2VTaWduYWxpbmdNZW1vcnkgY29uc3QpOgorICAgICAgICAoSlND
OjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6QWlySVJHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpX
YXNtOjpBaXJJUkdlbmVyYXRvcjo6ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIpOgorICAgICAg
ICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6YWRkQ2FsbCk6CisgICAgICAgICogd2FzbS9X
YXNtQjNJUkdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6
OnVzZVNpZ25hbGluZ01lbW9yeSBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkIzSVJHZW5l
cmF0b3I6OkIzSVJHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9y
OjphZGRBcmd1bWVudHMpOgorICAgICAgICAoSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjplbWl0
Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcik6CisgICAgICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0
b3I6Om1lbW9yeUtpbmQpOgorICAgICAgICAoSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjphZGRD
YWxsKToKKyAgICAgICAgKiB3YXNtL1dhc21CaW5kaW5nLmNwcDoKKyAgICAgICAgKEpTQzo6V2Fz
bTo6d2FzbVRvV2FzbSk6CisgICAgICAgICogd2FzbS9XYXNtQ2FsbGVlLmNwcDoKKyAgICAgICAg
KEpTQzo6V2FzbTo6TExJbnRDYWxsZWU6OmNhbGxlZVNhdmVSZWdpc3RlcnMpOgorICAgICAgICAq
IHdhc20vV2FzbUNhbGxlZUdyb3VwLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6Q2FsbGVlR3Jv
dXA6OmlzU2FmZVRvUnVuKToKKyAgICAgICAgKiB3YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5j
cHA6CisgICAgICAgIChKU0M6Oldhc206OmpzQ2FsbGluZ0NvbnZlbnRpb24pOgorICAgICAgICAo
SlNDOjpXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24pOgorICAgICAgICAqIHdhc20vV2FzbUNh
bGxpbmdDb252ZW50aW9uLmg6CisgICAgICAgIChKU0M6Oldhc206OkNhbGxJbmZvcm1hdGlvbjo6
Y29tcHV0ZVJlc3VsdHNPZmZzZXRMaXN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6V2FzbUNhbGxp
bmdDb252ZW50aW9uOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb24pOgorICAgICAgICAoSlNDOjpXYXNt
OjpXYXNtQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxsTG9jYXRpb25JbXBsIGNvbnN0KToKKyAg
ICAgICAgKEpTQzo6V2FzbTo6V2FzbUNhbGxpbmdDb252ZW50aW9uOjptYXJzaGFsbExvY2F0aW9u
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6SlNDYWxsaW5nQ29udmVudGlvbjo6SlNDYWxs
aW5nQ29udmVudGlvbik6CisgICAgICAgIChKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246
Om1hcnNoYWxsTG9jYXRpb25JbXBsIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6SlNDYWxs
aW5nQ29udmVudGlvbjo6bWFyc2hhbGxMb2NhdGlvbiBjb25zdCk6CisgICAgICAgIChKU0M6Oldh
c206OkpTQ2FsbGluZ0NvbnZlbnRpb246OmNhbGxJbmZvcm1hdGlvbkZvciBjb25zdCk6CisgICAg
ICAgICogd2FzbS9XYXNtRm9ybWF0Lmg6CisgICAgICAgICogd2FzbS9XYXNtSW5kZXhPck5hbWUu
Y3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6SW5kZXhPck5hbWUpOgorICAg
ICAgICAoSlNDOjpXYXNtOjptYWtlU3RyaW5nKToKKyAgICAgICAgKiB3YXNtL1dhc21JbmRleE9y
TmFtZS5oOgorICAgICAgICAoSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6SW5kZXhPck5hbWUpOgor
ICAgICAgICAoSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6aXNFbXB0eSBjb25zdCk6CisgICAgICAg
IChKU0M6Oldhc206OkluZGV4T3JOYW1lOjppc0luZGV4IGNvbnN0KToKKyAgICAgICAgKEpTQzo6
V2FzbTo6SW5kZXhPck5hbWU6OmlzTmFtZSBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206Oklu
ZGV4T3JOYW1lOjppbmRleCBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1l
OjpuYW1lIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6Om5hbWVTZWN0
aW9uIGNvbnN0KToKKyAgICAgICAgKiB3YXNtL1dhc21JbnN0YW5jZS5oOgorICAgICAgICAoSlND
OjpXYXNtOjpJbnN0YW5jZTo6dXBkYXRlQ2FjaGVkTWVtb3J5KToKKyAgICAgICAgKiB3YXNtL1dh
c21MTEludEdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9y
Ojp2aXJ0dWFsUmVnaXN0ZXJGb3JXYXNtTG9jYWwpOgorICAgICAgICAoSlNDOjpXYXNtOjpMTElu
dEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVyKToKKyAgICAgICAgKEpTQzo6V2Fz
bTo6TExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvckNhbGxlZSk6CisgICAgICAgIChK
U0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjphZGRBcmd1bWVudHMpOgorICAgICAgICAoSlNDOjpX
YXNtOjpMTEludEdlbmVyYXRvcjo6YWRkTG9vcCk6CisgICAgICAgICogd2FzbS9XYXNtTExJbnRQ
bGFuLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRQbGFuOjpkaWRDb21wbGV0ZUNvbXBp
bGF0aW9uKToKKyAgICAgICAgKiB3YXNtL1dhc21NZW1vcnkuY3BwOgorICAgICAgICAoSlNDOjpX
YXNtOjpNZW1vcnlIYW5kbGU6On5NZW1vcnlIYW5kbGUpOgorICAgICAgICAoSlNDOjpXYXNtOjpN
ZW1vcnk6OnRyeUNyZWF0ZSk6CisgICAgICAgIChKU0M6Oldhc206Ok1lbW9yeTo6Z3Jvd1NoYXJl
ZCk6CisgICAgICAgIChKU0M6Oldhc206Ok1lbW9yeTo6Z3Jvdyk6CisgICAgICAgIChKU0M6Oldh
c206Ok1lbW9yeTo6Y29weSk6CisgICAgICAgICogd2FzbS9XYXNtTWVtb3J5Lmg6CisgICAgICAg
ICogd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpQ
aW5uZWRSZWdpc3RlckluZm86OmdldCk6CisgICAgICAgICogd2FzbS9XYXNtTWVtb3J5SW5mb3Jt
YXRpb24uaDoKKyAgICAgICAgKEpTQzo6V2FzbTo6UGlubmVkUmVnaXN0ZXJJbmZvOjp0b1NhdmUg
Y29uc3QpOgorICAgICAgICAqIHdhc20vV2FzbU1lbW9yeU1vZGUuY3BwOgorICAgICAgICAoSlND
OjpXYXNtOjptYWtlU3RyaW5nKToKKyAgICAgICAgKiB3YXNtL1dhc21NZW1vcnlNb2RlLmg6Cisg
ICAgICAgICogd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcDoKKyAgICAgICAgKiB3YXNtL1dhc21P
cGNvZGVPcmlnaW4uaDoKKyAgICAgICAgKiB3YXNtL1dhc21PcGVyYXRpb25zLmNwcDoKKyAgICAg
ICAgKEpTQzo6V2FzbTo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKToKKyAgICAgICAgKiB3YXNt
L1dhc21PcGVyYXRpb25zLmg6CisgICAgICAgICogd2FzbS9XYXNtUGFnZUNvdW50Lmg6CisgICAg
ICAgICogd2FzbS9XYXNtUGFyc2VyLmg6CisgICAgICAgIChKU0M6Oldhc206OlBhcnNlcjxTdWNj
ZXNzVHlwZT46OnBhcnNlVUludDMyKToKKyAgICAgICAgKEpTQzo6V2FzbTo6UGFyc2VyPFN1Y2Nl
c3NUeXBlPjo6cGFyc2VVSW50NjQpOgorICAgICAgICAqIHdhc20vV2FzbVNsb3dQYXRocy5jcHA6
CisgICAgICAgIChKU0M6OkxMSW50OjpXQVNNX1NMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKEpT
Qzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX3BvcGNvdW50KToKKyAgICAgICAgKEpTQzo6TExJbnQ6
OnNsb3dfcGF0aF93YXNtX3BvcGNvdW50bGwpOgorICAgICAgICAoSlNDOjpMTEludDo6c2xvd19w
YXRoX3dhc21faTMyX2Rpdl9zKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNt
X2kzMl9kaXZfdSk6CisgICAgICAgIChKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pMzJfcmVt
X3MpOgorICAgICAgICAoSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTMyX3JlbV91KToKKyAg
ICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2k2NF9kaXZfcyk6CisgICAgICAgIChK
U0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pNjRfZGl2X3UpOgorICAgICAgICAoSlNDOjpMTElu
dDo6c2xvd19wYXRoX3dhc21faTY0X3JlbV9zKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3df
cGF0aF93YXNtX2k2NF9yZW1fdSk6CisgICAgICAgICogd2FzbS9XYXNtU2xvd1BhdGhzLmg6Cisg
ICAgICAgICogd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5jcHA6CisgICAgICAgIChKU0M6Oldhc206
OlZhbHVlTG9jYXRpb246OmR1bXAgY29uc3QpOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFs
KToKKyAgICAgICAgKiB3YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmg6CisgICAgICAgIChKU0M6Oldh
c206OlZhbHVlTG9jYXRpb246OlZhbHVlTG9jYXRpb24pOgorICAgICAgICAoSlNDOjpXYXNtOjpW
YWx1ZUxvY2F0aW9uOjppc0dQUiBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9j
YXRpb246OmlzRlBSIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6
aXNTdGFjayBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzU3Rh
Y2tBcmd1bWVudCBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246Ompz
ciBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmZwciBjb25zdCk6
CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OnJlZyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzUmVnIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6cmVnIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6Z3ByIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiB3YXNtL2pzL0pTVG9XYXNtLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6bWFyc2hh
bGxKU1Jlc3VsdCk6CisgICAgICAgIChKU0M6Oldhc206OmNyZWF0ZUpTVG9XYXNtV3JhcHBlcik6
CisgICAgICAgICogd2FzbS9qcy9XYXNtVG9KUy5jcHA6CisgICAgICAgIChKU0M6Oldhc206Ondh
c21Ub0pTKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwOgorICAg
ICAgICAoSlNDOjpXZWJBc3NlbWJseUZ1bmN0aW9uOjpwcmV2aW91c0luc3RhbmNlT2Zmc2V0IGNv
bnN0KToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2lu
dFNsb3cpOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICog
d2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHA6CisgICAgICAgIChKU0M6OldlYkFz
c2VtYmx5TW9kdWxlUmVjb3JkOjppbml0aWFsaXplRXhwb3J0cyk6CisKIDIwMjItMDMtMTcgIEtl
aXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGNyYXNo
IGluIEJsZWFjaGVyIFJlcG9ydCBkdWUgdG8gYmFkIEpTT2JqZWN0UmVmIHBhc3NlZCB0byBBUEkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJs
ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaApp
bmRleCBhY2FkZGQyZDU2YTIuLjEyODcwODMyNTA3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaApAQCAtMTk2NywxMCArMTk2NywxMCBA
QCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLnZmcE9wKE9QX1ZDTVAsIE9QX1ZDTVBiLCB0
cnVlLCBWRlBPcGVyYW5kKDUpLCByZCwgVkZQT3BlcmFuZCgwKSk7CiAgICAgfQogCi0gICAgdm9p
ZCB2Y3Z0X3NpZ25lZFRvRmxvYXRpbmdQb2ludChGUERvdWJsZVJlZ2lzdGVySUQgcmQsIEZQU2lu
Z2xlUmVnaXN0ZXJJRCBybSkKKyAgICB2b2lkIHZjdnRfc2lnbmVkVG9GbG9hdGluZ1BvaW50KEZQ
RG91YmxlUmVnaXN0ZXJJRCByZCwgRlBTaW5nbGVSZWdpc3RlcklEIHJtLCBib29sIHRvRG91Ymxl
ID0gdHJ1ZSkKICAgICB7CiAgICAgICAgIC8vIGJvb2xlYW4gdmFsdWVzIGFyZSA2NGJpdCAodG9J
bnQsIHVuc2lnbmVkLCByb3VuZFplcm8pCi0gICAgICAgIG1fZm9ybWF0dGVyLnZmcE9wKE9QX1ZD
VlRfRlBJVkZQLCBPUF9WQ1ZUX0ZQSVZGUGIsIHRydWUsIHZjdnRPcChmYWxzZSwgZmFsc2UsIGZh
bHNlKSwgcmQsIHJtKTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudmZwT3AoT1BfVkNWVF9GUElWRlAs
IE9QX1ZDVlRfRlBJVkZQYiwgdG9Eb3VibGUsIHZjdnRPcChmYWxzZSwgZmFsc2UsIGZhbHNlKSwg
cmQsIHJtKTsKICAgICB9CiAKICAgICB2b2lkIHZjdnRfZmxvYXRpbmdQb2ludFRvU2lnbmVkKEZQ
U2luZ2xlUmVnaXN0ZXJJRCByZCwgRlBEb3VibGVSZWdpc3RlcklEIHJtKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRl
eCBmZTdmMmQ1YzRmM2YuLmNiZWU5YWU4MWNmZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKQEAgLTM4LDEwICszOCwx
MiBAQCBuYW1lc3BhY2UgSlNDIHsKIHVzaW5nIEFzc2VtYmxlciA9IFRBUkdFVF9BU1NFTUJMRVI7
CiAKIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNdjcgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2Vt
YmxlcjxBc3NlbWJsZXI+IHsKK3B1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIFJlZ2lzdGVy
SUQgZGF0YVRlbXBSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6aXA7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBSZWdpc3RlcklEIGFkZHJlc3NUZW1wUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnI2Owog
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBBUk1SZWdpc3RlcnM6OkZQRG91YmxlUmVnaXN0ZXJJRCBm
cFRlbXBSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6ZDc7Citwcml2YXRlOgorICAgIHN0YXRpYyBj
b25zdGV4cHIgQVJNUmVnaXN0ZXJzOjpGUERvdWJsZVJlZ2lzdGVySUQgZnBUZW1wUmVnaXN0ZXIg
PSBBUk1SZWdpc3RlcnM6OmQxNTsKICAgICBpbmxpbmUgQVJNUmVnaXN0ZXJzOjpGUFNpbmdsZVJl
Z2lzdGVySUQgZnBUZW1wUmVnaXN0ZXJBc1NpbmdsZSgpIHsgcmV0dXJuIEFSTVJlZ2lzdGVyczo6
YXNTaW5nbGUoZnBUZW1wUmVnaXN0ZXIpOyB9CiAKICAgICAvLyBJbiB0aGUgVGh1bWItMiBpbnN0
cnVjdGlvbiBzZXQsIGluc3RydWN0aW9ucyBvcGVyYXRpbmcgb25seSBvbiByZWdpc3RlcnMgcjAt
cjcgY2FuIG9mdGVuCkBAIC0xNDE2LDYgKzE0MTgsMTIgQEAgcHVibGljOgogICAgICAgICBDUkFT
SCgpOwogICAgIH0KIAorICAgIHZvaWQgY29udmVydEludDMyVG9GbG9hdChSZWdpc3RlcklEIHNy
YywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci52bW92KGZw
VGVtcFJlZ2lzdGVyLCBzcmMsIHNyYyk7CisgICAgICAgIG1fYXNzZW1ibGVyLnZjdnRfc2lnbmVk
VG9GbG9hdGluZ1BvaW50KGRlc3QsIGZwVGVtcFJlZ2lzdGVyQXNTaW5nbGUoKSwgLyogdG9Eb3Vi
bGU6ICovIGZhbHNlKTsKKyAgICB9CisKICAgICB2b2lkIGNvbnZlcnRJbnQzMlRvRG91YmxlKFJl
Z2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1i
bGVyLnZtb3YoZnBUZW1wUmVnaXN0ZXIsIHNyYywgc3JjKTsKQEAgLTIyNDksNiArMjI1NywxNCBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBDYWxsKG1fYXNzZW1ibGVyLmJ4KGRhdGFUZW1wUmVn
aXN0ZXIpLCBDYWxsOjpMaW5rYWJsZU5lYXJUYWlsKTsKICAgICB9CiAKKyAgICAvL0ZJWE1FOiB3
aHkgaXMgdGhpcyB0aGUgc2FtZSB0aGFuIG5lYXJDYWxsKCkgaW4gQVJNNjQ/IGlzIGl0IHJpZ2h0
PworICAgIEFMV0FZU19JTkxJTkUgQ2FsbCB0aHJlYWRTYWZlUGF0Y2hhYmxlTmVhckNhbGwoKQor
ICAgIHsKKyAgICAgICAgaW52YWxpZGF0ZUFsbFRlbXBSZWdpc3RlcnMoKTsKKyAgICAgICAgbW92
ZUZpeGVkV2lkdGhFbmNvZGluZyhUcnVzdGVkSW1tMzIoMCksIGRhdGFUZW1wUmVnaXN0ZXIpOwor
ICAgICAgICByZXR1cm4gQ2FsbChtX2Fzc2VtYmxlci5ibHgoZGF0YVRlbXBSZWdpc3RlciksIENh
bGw6OkxpbmthYmxlTmVhcik7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSBDYWxsIGNhbGwo
UHRyVGFnKQogICAgIHsKICAgICAgICAgbW92ZUZpeGVkV2lkdGhFbmNvZGluZyhUcnVzdGVkSW1t
MzIoMCksIGRhdGFUZW1wUmVnaXN0ZXIpOwpAQCAtMjI3Myw2ICsyMjg5LDEyIEBAIHB1YmxpYzoK
ICAgICBBTFdBWVNfSU5MSU5FIENhbGwgY2FsbChSZWdpc3RlcklEIHRhcmdldCwgUmVnaXN0ZXJJ
RCBjYWxsVGFnKSB7IHJldHVybiBVTlVTRURfUEFSQU0oY2FsbFRhZyksIGNhbGwodGFyZ2V0LCBO
b1B0clRhZyk7IH0KICAgICBBTFdBWVNfSU5MSU5FIENhbGwgY2FsbChBZGRyZXNzIGFkZHJlc3Ms
IFJlZ2lzdGVySUQgY2FsbFRhZykgeyByZXR1cm4gVU5VU0VEX1BBUkFNKGNhbGxUYWcpLCBjYWxs
KGFkZHJlc3MsIE5vUHRyVGFnKTsgfQogCisgICAgQUxXQVlTX0lOTElORSB2b2lkIGNhbGxPcGVy
YXRpb24oY29uc3QgRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPiBvcGVyYXRpb24pCisgICAg
eworICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIob3BlcmF0aW9uLmV4ZWN1dGFibGVBZGRyZXNz
KCkpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgY2FsbChhZGRyZXNzVGVtcFJlZ2lz
dGVyLCBPcGVyYXRpb25QdHJUYWcpOworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBy
ZXQoKQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuYngobGlua1JlZ2lzdGVyKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlUmVwLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oCmluZGV4IDE1N2JjODg2ODIzMS4uNzY5MzhjNmZl
Y2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlUmVwLmgKQEAgLTEyNiw5ICsxMjYs
MTMgQEAgcHVibGljOgogICAgIFZhbHVlUmVwKFdhc206OlZhbHVlTG9jYXRpb24gbG9jYXRpb24p
CiAgICAgewogICAgICAgICBzd2l0Y2ggKGxvY2F0aW9uLmtpbmQoKSkgewotICAgICAgICBjYXNl
IFdhc206OlZhbHVlTG9jYXRpb246OktpbmQ6OlJlZ2lzdGVyOgorICAgICAgICBjYXNlIFdhc206
OlZhbHVlTG9jYXRpb246OktpbmQ6OkdQUlJlZ2lzdGVyOgogICAgICAgICAgICAgbV9raW5kID0g
UmVnaXN0ZXI7Ci0gICAgICAgICAgICB1LnJlZyA9IGxvY2F0aW9uLnJlZygpOworICAgICAgICAg
ICAgdS5yZWcgPSBsb2NhdGlvbi5qc3IoKS5wYXlsb2FkR1BSKCk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBXYXNtOjpWYWx1ZUxvY2F0aW9uOjpLaW5kOjpGUFJSZWdpc3RlcjoK
KyAgICAgICAgICAgIG1fa2luZCA9IFJlZ2lzdGVyOworICAgICAgICAgICAgdS5yZWcgPSBsb2Nh
dGlvbi5mcHIoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdhc206OlZhbHVl
TG9jYXRpb246OktpbmQ6OlN0YWNrOgogICAgICAgICAgICAgbV9raW5kID0gU3RhY2s7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcAppbmRl
eCAwOGEyMzU4MDQ0ZmQuLjAwMDE0Nzk3MDQxMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCkBAIC00MTMsNyArNDEzLDcgQEAgQ1N0
cmluZyBCeXRlY29kZUR1bXBlcjo6Zm9ybWF0Q29uc3RhbnQoVHlwZSB0eXBlLCB1aW50NjRfdCBj
b25zdGFudCkgY29uc3QKICAgICAgICAgaWYgKGlzRnVuY3JlZih0eXBlKSB8fCBpc0V4dGVybnJl
Zih0eXBlKSkgewogICAgICAgICAgICAgaWYgKEpTVmFsdWU6OmRlY29kZShjb25zdGFudCkgPT0g
anNOdWxsKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuICJudWxsIjsKLSAgICAgICAgICAgIHJl
dHVybiB0b0NTdHJpbmcoUmF3UG9pbnRlcihiaXR3aXNlX2Nhc3Q8dm9pZCo+KGNvbnN0YW50KSkp
OworICAgICAgICAgICAgcmV0dXJuIHRvQ1N0cmluZyhSYXdQb2ludGVyKGJpdHdpc2VfY2FzdDx2
b2lkKj4oc3RhdGljX2Nhc3Q8dWludHB0cl90Pihjb25zdGFudCkpKSk7CiAgICAgICAgIH0KIAog
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCmluZGV4IDQxOWVmYjM2YTQwOS4uYWMzMzY0
Y2I0NzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2Fs
bEZyYW1lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFt
ZS5oCkBAIC0xMzEsOCArMTMxLDggQEAgbmFtZXNwYWNlIEpTQyAgewogICAgICAgICAvLyB0byBz
ZWUgaWYgaXQncyBhIGNlbGwsIGFuZCBpZiBpdCdzIG5vdCwgd2UgdGhyb3cgYW4gZXhjZXB0aW9u
LgogICAgICAgICBpbmxpbmUgSlNWYWx1ZSBndWFyYW50ZWVkSlNWYWx1ZUNhbGxlZSgpIGNvbnN0
OwogICAgICAgICBpbmxpbmUgSlNPYmplY3QqIGpzQ2FsbGVlKCkgY29uc3Q7Ci0gICAgICAgIENh
bGxlZUJpdHMgY2FsbGVlKCkgY29uc3QgeyByZXR1cm4gQ2FsbGVlQml0cyh0aGlzW3N0YXRpY19j
YXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0ucG9pbnRlcigpKTsgfQotICAgICAgICBT
VVBQUkVTU19BU0FOIENhbGxlZUJpdHMgdW5zYWZlQ2FsbGVlKCkgY29uc3QgeyByZXR1cm4gQ2Fs
bGVlQml0cyh0aGlzW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0uYXNh
blVuc2FmZVBvaW50ZXIoKSk7IH0KKyAgICAgICAgQ2FsbGVlQml0cyBjYWxsZWUoKSBjb25zdCB7
IHJldHVybiBDYWxsZWVCaXRzKHRoaXNbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90Ojpj
YWxsZWUpXS51bmJveGVkSW50NjQoKSk7IH0KKyAgICAgICAgU1VQUFJFU1NfQVNBTiBDYWxsZWVC
aXRzIHVuc2FmZUNhbGxlZSgpIGNvbnN0IHsgcmV0dXJuIENhbGxlZUJpdHModGhpc1tzdGF0aWNf
Y2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSldLmFzYW5VbnNhZmVVbmJveGVkSW50NjQo
KSk7IH0KICAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2soKSBjb25zdDsKICAgICAgICAgQ29k
ZUJsb2NrKiogYWRkcmVzc09mQ29kZUJsb2NrKCkgY29uc3QgeyByZXR1cm4gYml0d2lzZV9jYXN0
PENvZGVCbG9jayoqPih0aGlzICsgc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90Ojpjb2Rl
QmxvY2spKTsgfQogICAgICAgICBpbmxpbmUgU1VQUFJFU1NfQVNBTiBDb2RlQmxvY2sqIHVuc2Fm
ZUNvZGVCbG9jaygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyL0NhbGxlZUJpdHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9DYWxsZWVCaXRzLmgKaW5kZXggMThiYjdlZjdmYThjLi43OWMzNGUxZTY1YWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxlZUJpdHMuaApAQCAtMzksMTEg
KzM5LDIxIEBAIGNsYXNzIEpTQ2VsbDsKIGNsYXNzIENhbGxlZUJpdHMgewogcHVibGljOgogICAg
IENhbGxlZUJpdHMoKSA9IGRlZmF1bHQ7Ci0gICAgQ2FsbGVlQml0cyh2b2lkKiBwdHIpIDogbV9w
dHIocHRyKSB7IH0gCisgICAgQ2FsbGVlQml0cyhpbnQ2NF90IHZhbHVlKQorI2lmIFVTRShKU1ZB
TFVFNjQpCisgICAgICAgIDogbV9wdHJ7cmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odmFsdWUpfQor
I2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgOiBtX3B0cntyZWludGVycHJldF9jYXN0
PHZvaWQqPihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KHZhbHVlID4+IChQYXlsb2FkT2Zmc2V0ICog
Q0hBUl9CSVQpKSl9CisgICAgICAgICwgbV90YWd7c3RhdGljX2Nhc3Q8dWludDMyX3Q+KHZhbHVl
ID4+IChUYWdPZmZzZXQgKiBDSEFSX0JJVCkpfQorI2VuZGlmCisgICAgeyB9CiAKICAgICBDYWxs
ZWVCaXRzJiBvcGVyYXRvcj0oSlNDZWxsKiBjZWxsKQogICAgIHsKICAgICAgICAgbV9wdHIgPSBj
ZWxsOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIG1fdGFnID0gSlNWYWx1ZTo6Q2Vs
bFRhZzsKKyNlbmRpZgogICAgICAgICBBU1NFUlQoaXNDZWxsKCkpOwogICAgICAgICByZXR1cm4g
KnRoaXM7CiAgICAgfQpAQCAtNTEsMTggKzYxLDI0IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCiAgICAgc3RhdGljIHZvaWQqIGJveFdhc20oV2FzbTo6Q2FsbGVlKiBjYWxsZWUp
CiAgICAgewotICAgICAgICBDYWxsZWVCaXRzIHJlc3VsdChyZWludGVycHJldF9jYXN0PHZvaWQq
PihyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY2FsbGVlKSB8IEpTVmFsdWU6Oldhc21UYWcp
KTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBDYWxsZWVCaXRzIHJlc3VsdCB7IHJlaW50
ZXJwcmV0X2Nhc3Q8aW50NjRfdD4oY2FsbGVlKSB8IEpTVmFsdWU6Oldhc21UYWcgfTsKICAgICAg
ICAgQVNTRVJUKHJlc3VsdC5pc1dhc20oKSk7CiAgICAgICAgIHJldHVybiByZXN1bHQucmF3UHRy
KCk7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4gY2FsbGVlOyAvLyBU
aGUgcG9pbnRlciBpcyBhcyBpcywgYnV0IHRoZSBjb3JyZXNwb25kaW5nIHRhZyBmaWVsZCBuZWVk
cyB0byBiZSBzZXQgdG8gV2FzbVRhZyBzZXBhcmF0ZWx5LgorI2VuZGlmCiAgICAgfQogI2VuZGlm
CiAKICAgICBib29sIGlzV2FzbSgpIGNvbnN0CiAgICAgewotI2lmIEVOQUJMRShXRUJBU1NFTUJM
WSkKLSAgICAgICAgcmV0dXJuIChyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4obV9wdHIpICYg
SlNWYWx1ZTo6V2FzbU1hc2spID09IEpTVmFsdWU6Oldhc21UYWc7Ci0jZWxzZQorI2lmICFFTkFC
TEUoV0VCQVNTRU1CTFkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbGlmIFVTRShKU1ZBTFVF
NjQpCisgICAgICAgIHJldHVybiAocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG1fcHRyKSAm
IEpTVmFsdWU6Oldhc21NYXNrKSA9PSBKU1ZhbHVlOjpXYXNtVGFnOworI2VsaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAgICAgcmV0dXJuIG1fdGFnID09IEpTVmFsdWU6Oldhc21UYWc7CiAjZW5k
aWYKICAgICB9CiAgICAgYm9vbCBpc0NlbGwoKSBjb25zdCB7IHJldHVybiAhaXNXYXNtKCk7IH0K
QEAgLTc3LDE0ICs5MywyMSBAQCBwdWJsaWM6CiAgICAgV2FzbTo6Q2FsbGVlKiBhc1dhc21DYWxs
ZWUoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKGlzV2FzbSgpKTsKKyNpZiBVU0UoSlNW
QUxVRTY0KQogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXYXNtOjpDYWxsZWUqPihy
ZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4obV9wdHIpICYgfkpTVmFsdWU6Oldhc21UYWcpOwor
I2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
V2FzbTo6Q2FsbGVlKj4obV9wdHIpOworI2VuZGlmCiAgICAgfQogI2VuZGlmCiAKICAgICB2b2lk
KiByYXdQdHIoKSBjb25zdCB7IHJldHVybiBtX3B0cjsgfQotICAgIAorCiBwcml2YXRlOgogICAg
IHZvaWQqIG1fcHRyIHsgbnVsbHB0ciB9OworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgdWlu
dDMyX3QgbV90YWcgeyBKU1ZhbHVlOjpFbXB0eVZhbHVlVGFnIH07CisjZW5kaWYKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL1JlZ2lzdGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVn
aXN0ZXIuaAppbmRleCBkODc5YzkwYmUzMTEuLjQ2MTgxM2M0MWQzMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmgKQEAgLTcyLDYgKzcyLDEwIEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBpbnQ2NF90IHVuYm94ZWRJbnQ2NCgpIGNvbnN0OwogICAg
ICAgICBpbnQ2NF90IGFzYW5VbnNhZmVVbmJveGVkSW50NjQoKSBjb25zdDsKICAgICAgICAgYm9v
bCB1bmJveGVkQm9vbGVhbigpIGNvbnN0OworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgVVNF
KEpTVkFMVUUzMl82NCkKKyAgICAgICAgZmxvYXQgdW5ib3hlZEZsb2F0KCkgY29uc3Q7CisgICAg
ICAgIGZsb2F0IGFzYW5VbnNhZmVVbmJveGVkRmxvYXQoKSBjb25zdDsKKyNlbmRpZgogICAgICAg
ICBkb3VibGUgdW5ib3hlZERvdWJsZSgpIGNvbnN0OwogICAgICAgICBkb3VibGUgYXNhblVuc2Fm
ZVVuYm94ZWREb3VibGUoKSBjb25zdDsKICAgICAgICAgSlNDZWxsKiB1bmJveGVkQ2VsbCgpIGNv
bnN0OwpAQCAtMTg4LDYgKzE5MiwxOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgcmV0dXJu
ICEhcGF5bG9hZCgpOwogICAgIH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgVVNFKEpT
VkFMVUUzMl82NCkKKyAgICBBTFdBWVNfSU5MSU5FIGZsb2F0IFJlZ2lzdGVyOjp1bmJveGVkRmxv
YXQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxmbG9hdD4ocGF5
bG9hZCgpKTsKKyAgICB9CisKKyAgICBTVVBQUkVTU19BU0FOIEFMV0FZU19JTkxJTkUgZmxvYXQg
UmVnaXN0ZXI6OmFzYW5VbnNhZmVVbmJveGVkRmxvYXQoKSBjb25zdAorICAgIHsKKyAgICAgICAg
cmV0dXJuIGJpdHdpc2VfY2FzdDxmbG9hdD4ocGF5bG9hZCgpKTsKKyAgICB9CisjZW5kaWYKKwog
ICAgIEFMV0FZU19JTkxJTkUgZG91YmxlIFJlZ2lzdGVyOjp1bmJveGVkRG91YmxlKCkgY29uc3QK
ICAgICB7CiAgICAgICAgIHJldHVybiB1Lm51bWJlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IDI3ZGQ1OTc5MGI3MS4uZTI0NTJlZGNlZTZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTEzODks
NyArMTM4OSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIGppdEFzc2VydElzSlNEb3VibGUoZ3ByKTsK
ICAgICAgICAgcmV0dXJuIHVuYm94RG91YmxlV2l0aG91dEFzc2VydGlvbnMoZ3ByLCByZXN1bHRH
UFIsIGZwcik7CiAgICAgfQotICAgIAorICAgIHZvaWQgdW5ib3hEb3VibGUoSlNWYWx1ZVJlZ3Mg
cmVncywgRlBSUmVnIGZwcikKKyAgICB7CisgICAgICAgIHVuYm94RG91YmxlKHJlZ3MudGFnR1BS
KCksIHJlZ3MucGF5bG9hZEdQUigpLCBmcHIpOworICAgIH0KICAgICB2b2lkIGJveERvdWJsZShG
UFJSZWcgZnByLCBKU1ZhbHVlUmVncyByZWdzLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZl
VGFnUmVnaXN0ZXJzKQogICAgIHsKICAgICAgICAgYm94RG91YmxlKGZwciwgcmVncy5ncHIoKSwg
bW9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRP
ZmZzZXRMaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNl
dExpc3QuY3BwCmluZGV4IGVkODMwM2RlNDFiNS4uYmFkMjAyOWY3Y2Y5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmNwcApAQCAtMzks
MTggKzM5LDQyIEBAIFJlZ2lzdGVyQXRPZmZzZXRMaXN0OjpSZWdpc3RlckF0T2Zmc2V0TGlzdCgp
IHsgfQogUmVnaXN0ZXJBdE9mZnNldExpc3Q6OlJlZ2lzdGVyQXRPZmZzZXRMaXN0KFJlZ2lzdGVy
U2V0IHJlZ2lzdGVyU2V0LCBPZmZzZXRCYXNlVHlwZSBvZmZzZXRCYXNlVHlwZSkKICAgICA6IG1f
cmVnaXN0ZXJzKHJlZ2lzdGVyU2V0Lm51bWJlck9mU2V0UmVnaXN0ZXJzKCkpCiB7Ci0gICAgc2l6
ZV90IG51bWJlck9mUmVnaXN0ZXJzID0gcmVnaXN0ZXJTZXQubnVtYmVyT2ZTZXRSZWdpc3RlcnMo
KTsKLSAgICBwdHJkaWZmX3Qgb2Zmc2V0ID0gMDsKLSAgICAKKyAgICBjb25zdGV4cHIgc2l6ZV90
IFNpemVPZkdQUiA9IHNpemVvZihDUFVSZWdpc3Rlcik7CisgICAgY29uc3RleHByIHNpemVfdCBT
aXplT2ZGUFIgPSBzaXplb2YoZG91YmxlKTsKKworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgc3Rh
dGljX2Fzc2VydChTaXplT2ZHUFIgPT0gU2l6ZU9mRlBSKTsKKyAgICBzaXplX3QgbnVtYmVyT2ZS
ZWdzID0gcmVnaXN0ZXJTZXQubnVtYmVyT2ZTZXRSZWdpc3RlcnMoKTsKKyAgICBtX3NpemVPZkFy
ZWFJbkJ5dGVzID0gbnVtYmVyT2ZSZWdzICogU2l6ZU9mR1BSOworI2VsaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICBzdGF0aWNfYXNzZXJ0KDIgKiBTaXplT2ZHUFIgPT0gU2l6ZU9mRlBSKTsKKyAg
ICBzaXplX3QgbnVtYmVyT2ZHUFJzID0gcmVnaXN0ZXJTZXQubnVtYmVyT2ZTZXRHUFJzKCk7Cisg
ICAgc2l6ZV90IG51bWJlck9mRlBScyA9IHJlZ2lzdGVyU2V0Lm51bWJlck9mU2V0RlBScygpOwor
ICAgIGlmIChudW1iZXJPZkZQUnMpCisgICAgICAgIG51bWJlck9mR1BScyA9IFdURjo6cm91bmRV
cFRvTXVsdGlwbGVPZjwyPihudW1iZXJPZkdQUnMpOworICAgIG1fc2l6ZU9mQXJlYUluQnl0ZXMg
PSBudW1iZXJPZkdQUnMgKiBTaXplT2ZHUFIgKyBudW1iZXJPZkZQUnMgKiBTaXplT2ZGUFI7Cisj
ZW5kaWYKKworICAgIHB0cmRpZmZfdCBzdGFydE9mZnNldCA9IDA7CiAgICAgaWYgKG9mZnNldEJh
c2VUeXBlID09IEZyYW1lUG9pbnRlckJhc2VkKQotICAgICAgICBvZmZzZXQgPSAtKHN0YXRpY19j
YXN0PHB0cmRpZmZfdD4obnVtYmVyT2ZSZWdpc3RlcnMpICogc2l6ZW9mKENQVVJlZ2lzdGVyKSk7
CisgICAgICAgIHN0YXJ0T2Zmc2V0ID0gLXN0YXRpY19jYXN0PHB0cmRpZmZfdD4obV9zaXplT2ZB
cmVhSW5CeXRlcyk7CiAKKyAgICBwdHJkaWZmX3Qgb2Zmc2V0ID0gc3RhcnRPZmZzZXQ7CiAgICAg
dW5zaWduZWQgaW5kZXggPSAwOwogICAgIHJlZ2lzdGVyU2V0LmZvckVhY2goWyZdIChSZWcgcmVn
KSB7CisgICAgICAgIHNpemVfdCByZWdpc3RlclNpemUgPSBTaXplT2ZHUFI7CisjaWYgVVNFKEpT
VkFMVUUzMl82NCkKKyAgICAgICAgaWYgKHJlZy5pc0ZQUigpKSB7CisgICAgICAgICAgICByZWdp
c3RlclNpemUgPSBTaXplT2ZGUFI7CisgICAgICAgICAgICBvZmZzZXQgPSBXVEY6OnJvdW5kVXBU
b011bHRpcGxlT2Y8U2l6ZU9mRlBSPihvZmZzZXQpOworICAgICAgICB9CisjZW5kaWYKICAgICAg
ICAgbV9yZWdpc3RlcnNbaW5kZXhdID0gUmVnaXN0ZXJBdE9mZnNldChyZWcsIG9mZnNldCk7Ci0g
ICAgICAgIG9mZnNldCArPSBzaXplb2YoQ1BVUmVnaXN0ZXIpOworICAgICAgICBvZmZzZXQgKz0g
cmVnaXN0ZXJTaXplOwogICAgICAgICArK2luZGV4OwogICAgIH0pOworCisgICAgQVNTRVJUKHN0
YXRpY19jYXN0PHNpemVfdD4ob2Zmc2V0IC0gc3RhcnRPZmZzZXQpID09IG1fc2l6ZU9mQXJlYUlu
Qnl0ZXMpOwogfQogCiB2b2lkIFJlZ2lzdGVyQXRPZmZzZXRMaXN0OjpkdW1wKFByaW50U3RyZWFt
JiBvdXQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lz
dGVyQXRPZmZzZXRMaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRP
ZmZzZXRMaXN0LmgKaW5kZXggZDExN2NmNzVlMDk4Li4yYTBlOGI5ZDEyNTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3QuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmgKQEAgLTY1LDEx
ICs2NSwxNCBAQCBwdWJsaWM6CiAgICAgRml4ZWRWZWN0b3I8UmVnaXN0ZXJBdE9mZnNldD46OmNv
bnN0X2l0ZXJhdG9yIGJlZ2luKCkgY29uc3QgeyByZXR1cm4gbV9yZWdpc3RlcnMuYmVnaW4oKTsg
fQogICAgIEZpeGVkVmVjdG9yPFJlZ2lzdGVyQXRPZmZzZXQ+Ojpjb25zdF9pdGVyYXRvciBlbmQo
KSBjb25zdCB7IHJldHVybiBtX3JlZ2lzdGVycy5lbmQoKTsgfQogCisgICAgc2l6ZV90IHNpemVP
ZkFyZWFJbkJ5dGVzKCkgY29uc3QgeyByZXR1cm4gbV9zaXplT2ZBcmVhSW5CeXRlczsgfQorCiAg
ICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXRMaXN0JiBsbGludEJhc2VsaW5lQ2FsbGVl
U2F2ZVJlZ2lzdGVycygpOyAvLyBSZWdpc3RlcnMgYW5kIE9mZnNldHMgc2F2ZWQgYW5kIHVzZWQg
YnkgdGhlIExMSW50LgogICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlckF0T2Zmc2V0TGlzdCYgZGZn
Q2FsbGVlU2F2ZVJlZ2lzdGVycygpOyAvLyBSZWdpc3RlcnMgYW5kIE9mZnNldHMgc2F2ZWQgYW5k
IHVzZWQgYnkgREZHLgogCiBwcml2YXRlOgogICAgIEZpeGVkVmVjdG9yPFJlZ2lzdGVyQXRPZmZz
ZXQ+IG1fcmVnaXN0ZXJzOworICAgIHNpemVfdCBtX3NpemVPZkFyZWFJbkJ5dGVzOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1JlZ2lzdGVyU2V0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQu
Y3BwCmluZGV4IDM4YzY3OTQ5ZmRkZi4uODk2NjQyOWUyYjZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyU2V0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L1JlZ2lzdGVyU2V0LmNwcApAQCAtOTQsNiArOTQsOCBAQCBSZWdpc3RlclNldCBS
ZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKCkKICAgICByZXR1cm4gUmVnaXN0ZXJT
ZXQoTWFjcm9Bc3NlbWJsZXI6OnNfc2NyYXRjaFJlZ2lzdGVyKTsKICNlbGlmIENQVShBUk02NCkg
fHwgQ1BVKFJJU0NWNjQpCiAgICAgcmV0dXJuIFJlZ2lzdGVyU2V0KE1hY3JvQXNzZW1ibGVyOjpk
YXRhVGVtcFJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6bWVtb3J5VGVtcFJlZ2lzdGVyKTsKKyNl
bGlmIENQVShBUk0pCisgICAgcmV0dXJuIFJlZ2lzdGVyU2V0KE1hY3JvQXNzZW1ibGVyOjpkYXRh
VGVtcFJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6YWRkcmVzc1RlbXBSZWdpc3Rlcik7CiAjZWxp
ZiBDUFUoTUlQUykKICAgICBSZWdpc3RlclNldCByZXN1bHQ7CiAgICAgcmVzdWx0LnNldChNYWNy
b0Fzc2VtYmxlcjo6aW1tVGVtcFJlZ2lzdGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaAppbmRleCBlNzZkYWRhMGQzMzIuLmI0
NzAzMTE1YjNhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
T2ZmbGluZUFzbUNvbmZpZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dE9mZmxpbmVBc21Db25maWcuaApAQCAtMTQzLDYgKzE0MywxMiBAQAogI2RlZmluZSBPRkZMSU5F
X0FTTV9KU1ZBTFVFNjQgMAogI2VuZGlmCiAKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorI2RlZmlu
ZSBPRkZMSU5FX0FTTV9KU1ZBTFVFMzJfNjQgMQorI2Vsc2UKKyNkZWZpbmUgT0ZGTElORV9BU01f
SlNWQUxVRTMyXzY0IDAKKyNlbmRpZgorCiAjaWYgVVNFKEJJR0lOVDMyKQogI2RlZmluZSBPRkZM
SU5FX0FTTV9CSUdJTlQzMiAxCiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRleCBhY2U4NzExNjcy
ZTcuLmNjZWEwM2FiNDI2NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTM4LDE4ICszOCwzNCBAQCBt
YWNybyBnZXR1T3BlcmFuZFdpZGUxNkpTKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCiAg
ICAgbG9hZGggY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogMiAr
IE9wY29kZUlEV2lkZTE2U2l6ZUpTW1BCLCBQQywgMV0sIGRzdAogZW5kCiAKK21hY3JvIGdldHVP
cGVyYW5kV2lkZTE2V2FzbShvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQorICAgIGxvYWRo
IGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRleCAqIDIgKyBPcGNvZGVJ
RFdpZGUxNlNpemVXYXNtW1BCLCBQQywgMV0sIGRzdAorZW5kCisKIG1hY3JvIGdldE9wZXJhbmRX
aWRlMTZKUyhvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQogICAgIGxvYWRoc2kgY29uc3Rl
eHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogMiArIE9wY29kZUlEV2lkZTE2
U2l6ZUpTW1BCLCBQQywgMV0sIGRzdAogZW5kCiAKK21hY3JvIGdldE9wZXJhbmRXaWRlMTZXYXNt
KG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCisgICAgbG9hZGhzaSBjb25zdGV4cHIgJW9w
Y29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiAyICsgT3Bjb2RlSURXaWRlMTZTaXplV2Fz
bVtQQiwgUEMsIDFdLCBkc3QKK2VuZAorCiBtYWNybyBnZXR1T3BlcmFuZFdpZGUzMkpTKG9wY29k
ZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCiAgICAgbG9hZGkgY29uc3RleHByICVvcGNvZGVTdHJ1
Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogNCArIE9wY29kZUlEV2lkZTMyU2l6ZUpTW1BCLCBQQywg
MV0sIGRzdAogZW5kCiAKK21hY3JvIGdldHVPcGVyYW5kV2lkZTMyV2FzbShvcGNvZGVTdHJ1Y3Qs
IGZpZWxkTmFtZSwgZHN0KQorICAgIGxvYWRpIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmll
bGROYW1lJV9pbmRleCAqIDQgKyBPcGNvZGVJRFdpZGUzMlNpemVXYXNtW1BCLCBQQywgMV0sIGRz
dAorZW5kCisKIG1hY3JvIGdldE9wZXJhbmRXaWRlMzJKUyhvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFt
ZSwgZHN0KQogICAgIGxvYWRpcyBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFtZSVf
aW5kZXggKiA0ICsgT3Bjb2RlSURXaWRlMzJTaXplSlNbUEIsIFBDLCAxXSwgZHN0CiBlbmQKIAor
bWFjcm8gZ2V0T3BlcmFuZFdpZGUzMldhc20ob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkK
KyAgICBsb2FkaXMgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICog
NCArIE9wY29kZUlEV2lkZTMyU2l6ZVdhc21bUEIsIFBDLCAxXSwgZHN0CitlbmQKKwogbWFjcm8g
bWFrZVJldHVybihnZXQsIGRpc3BhdGNoLCBmbikKICAgICBmbihtYWNybyh0YWcsIHBheWxvYWQp
CiAgICAgICAgIG1vdmUgdGFnLCB0NQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L1dlYkFzc2VtYmx5LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJB
c3NlbWJseS5hc20KaW5kZXggNzEzNWY0ZjZmYzIwLi4zZmJmNzAwNGU4ZTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseS5hc20KKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5LmFzbQpAQCAtMzEsNTYgKzMxLDgwIEBA
IGlmIEhBVkVfRkFTVF9UTFMKIGVuZAogCiBpZiBYODZfNjQKLSAgICBjb25zdCBOdW1iZXJPZldh
c21Bcmd1bWVudEdQUnMgPSA2CisgICAgY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzID0g
NgogZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKLSAgICBjb25zdCBOdW1iZXJPZldh
c21Bcmd1bWVudEdQUnMgPSA4CisgICAgY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzID0g
OAorZWxzaWYgQVJNdjcKKyAgICBjb25zdCBOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgPSAyCiBl
bHNlCiAgICAgZXJyb3IKIGVuZAorCiBjb25zdCBOdW1iZXJPZldhc21Bcmd1bWVudEZQUnMgPSA4
Ci1jb25zdCBOdW1iZXJPZldhc21Bcmd1bWVudHMgPSBOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMg
KyBOdW1iZXJPZldhc21Bcmd1bWVudEZQUnMKKworY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1lbnRz
ID0gTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgTnVtYmVyT2ZXYXNtQXJndW1lbnRGUFJzCiAK
ICMgQWxsIGNhbGxlZSBzYXZlcyBtdXN0IG1hdGNoIHRoZSBkZWZpbml0aW9uIGluIFdhc21DYWxs
ZWUuY3BwCiAKICMgVGhlc2UgbXVzdCBtYXRjaCB0aGUgZGVmaW5pdGlvbiBpbiBXYXNtTWVtb3J5
SW5mb3JtYXRpb24uY3BwCi1jb25zdCB3YXNtSW5zdGFuY2UgPSBjc3IwCi1jb25zdCBtZW1vcnlC
YXNlID0gY3NyMwotY29uc3QgYm91bmRzQ2hlY2tpbmdTaXplID0gY3NyNAoraWYgWDg2XzY0IG9y
IEFSTTY0IG9yIEFSTTY0RQorICAgIGNvbnN0IHdhc21JbnN0YW5jZSA9IGNzcjAKKyAgICBjb25z
dCBtZW1vcnlCYXNlID0gY3NyMworICAgIGNvbnN0IGJvdW5kc0NoZWNraW5nU2l6ZSA9IGNzcjQK
K2Vsc2lmIEFSTXY3CisgICAgY29uc3Qgd2FzbUluc3RhbmNlID0gY3NyMAorICAgIGNvbnN0IG1l
bW9yeUJhc2UgPSBpbnZhbGlkR1BSCisgICAgY29uc3QgYm91bmRzQ2hlY2tpbmdTaXplID0gaW52
YWxpZEdQUgorZWxzZQorICAgIGVycm9yCitlbmQKIAogIyBUaGlzIG11c3QgbWF0Y2ggdGhlIGRl
ZmluaXRpb24gaW4gTG93TGV2ZWxJbnRlcnByZXRlci5hc20KIGlmIFg4Nl82NAogICAgIGNvbnN0
IFBCID0gY3NyMgogZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKICAgICBjb25zdCBQ
QiA9IGNzcjcKK2Vsc2lmIEFSTXY3CisgICAgY29uc3QgUEIgPSBjc3IxCiBlbHNlCiAgICAgZXJy
b3IKIGVuZAogCi1tYWNybyBmb3JFYWNoQXJndW1lbnRHUFIoZm4pCi0gICAgZm4oMCAqIDgsIHdh
MCkKLSAgICBmbigxICogOCwgd2ExKQotICAgIGZuKDIgKiA4LCB3YTIpCi0gICAgZm4oMyAqIDgs
IHdhMykKLSAgICBmbig0ICogOCwgd2E0KQotICAgIGZuKDUgKiA4LCB3YTUpCi0gICAgaWYgQVJN
NjQgb3IgQVJNNjRFCi0gICAgICAgIGZuKDYgKiA4LCB3YTYpCi0gICAgICAgIGZuKDcgKiA4LCB3
YTcpCisjIEhlbHBlciBtYWNyb3MKKworIyBPbiBKU1ZBTFVFNjQsIGVhY2ggNjQtYml0IGFyZ3Vt
ZW50IEdQUiBob2xkcyBvbmUgd2hvbGUgV2FzbSB2YWx1ZS4KKyMgT24gSlNWQUxVRTMyXzY0LCBh
IGNvbnNlY3V0aXZlIHBhaXIgb2YgZXZlbi9vZGQgbnVtYmVyZWQgR1BScyBob2xkIGEgc2luZ2xl
CisjIFdhc20gdmFsdWUgKGV2ZW4gaWYgdGhhdCB2YWx1ZSBpcyBpMzIvZjMyLCB0aGUgb2RkIG51
bWJlcmVkIEdQUiBob2xkcyB0aGUKKyMgbW9yZSBzaWduaWZpY2FudCB3b3JkKS4KK21hY3JvIGZv
ckVhY2hBcmd1bWVudEpTUihmbikKKyAgICBpZiBKU1ZBTFVFNjQKKyAgICAgICAgZm4oMCAqIDgs
IHdhMCkKKyAgICAgICAgZm4oMSAqIDgsIHdhMSkKKyAgICAgICAgZm4oMiAqIDgsIHdhMikKKyAg
ICAgICAgZm4oMyAqIDgsIHdhMykKKyAgICAgICAgZm4oNCAqIDgsIHdhNCkKKyAgICAgICAgZm4o
NSAqIDgsIHdhNSkKKyAgICAgICAgaWYgQVJNNjQgb3IgQVJNNjRFCisgICAgICAgICAgICBmbig2
ICogOCwgd2E2KQorICAgICAgICAgICAgZm4oNyAqIDgsIHdhNykKKyAgICAgICAgZW5kCisgICAg
ZWxzZQorICAgICAgICBmbigwICogOCwgd2ExLCB3YTApCisgICAgICAgIGZuKDEgKiA4LCB3YTMs
IHdhMikKICAgICBlbmQKIGVuZAogCiBtYWNybyBmb3JFYWNoQXJndW1lbnRGUFIoZm4pCi0gICAg
Zm4oKE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDApICogOCwgd2ZhMCkKLSAgICBmbigoTnVt
YmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgMSkgKiA4LCB3ZmExKQotICAgIGZuKChOdW1iZXJPZldh
c21Bcmd1bWVudEdQUnMgKyAyKSAqIDgsIHdmYTIpCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3Vt
ZW50R1BScyArIDMpICogOCwgd2ZhMykKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJz
ICsgNCkgKiA4LCB3ZmE0KQotICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyA1KSAq
IDgsIHdmYTUpCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDYpICogOCwgd2Zh
NikKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgNykgKiA4LCB3ZmE3KQorICAg
IGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyAwKSAqIDgsIHdmYTApCisgICAgZm4oKE51
bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIDEpICogOCwgd2ZhMSkKKyAgICBmbigoTnVtYmVyT2ZX
YXNtQXJndW1lbnRKU1JzICsgMikgKiA4LCB3ZmEyKQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1
bWVudEpTUnMgKyAzKSAqIDgsIHdmYTMpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNS
cyArIDQpICogOCwgd2ZhNCkKKyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgNSkg
KiA4LCB3ZmE1KQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyA2KSAqIDgsIHdm
YTYpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIDcpICogOCwgd2ZhNykKIGVu
ZAogCi0jIEhlbHBlciBtYWNyb3MKICMgRklYTUU6IEV2ZW50dWFsbHkgdGhpcyBzaG91bGQgYmUg
dW5pZmllZCB3aXRoIHRoZSBKUyB2ZXJzaW9ucwogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAzNjU2CiAKQEAgLTEzMCwxMCArMTU0LDE1IEBAIG1hY3JvIGNoZWNr
U3dpdGNoVG9KSVRGb3JQcm9sb2d1ZShjb2RlQmxvY2tSZWdpc3RlcikKICAgICAgICAgICAgIGJ0
cHogcjAsIC5yZWNvdmVyCiAgICAgICAgICAgICBtb3ZlIHIwLCB3czAKIAotICAgICAgICAgICAg
Zm9yRWFjaEFyZ3VtZW50R1BSKG1hY3JvIChvZmZzZXQsIGdwcikKK2lmIEpTVkFMVUU2NAorICAg
ICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwcikKICAgICAgICAg
ICAgICAgICBsb2FkcSAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lz
dGVycyAqIDhbY2ZyXSwgZ3ByCiAgICAgICAgICAgICBlbmQpCi0KK2Vsc2UKKyAgICAgICAgICAg
IGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHJNc3csIGdwTHN3KQorICAgICAg
ICAgICAgICAgIGxvYWQyaWEgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxS
ZWdpc3RlcnMgKiA4W2Nmcl0sIGdwTHN3LCBncHJNc3cKKyAgICAgICAgICAgIGVuZCkKK2VuZAog
ICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50RlBSKG1hY3JvIChvZmZzZXQsIGZwcikKICAgICAg
ICAgICAgICAgICBsb2FkZCAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJl
Z2lzdGVycyAqIDhbY2ZyXSwgZnByCiAgICAgICAgICAgICBlbmQpCkBAIC0yMDEsNiArMjMwLDkg
QEAgbWFjcm8gcHJlc2VydmVDYWxsZWVTYXZlc1VzZWRCeVdhc20oKQogICAgIGVsc2lmIFg4Nl82
NCBvciBSSVNDVjY0CiAgICAgICAgIHN0b3JlcCBQQiwgLTB4OFtjZnJdCiAgICAgICAgIHN0b3Jl
cCB3YXNtSW5zdGFuY2UsIC0weDEwW2Nmcl0KKyAgICBlbHNpZiBBUk12NworICAgICAgICBzdG9y
ZXAgUEIsIC00W2Nmcl0KKyAgICAgICAgc3RvcmVwIHdhc21JbnN0YW5jZSwgLThbY2ZyXQogICAg
IGVsc2UKICAgICAgICAgZXJyb3IKICAgICBlbmQKQEAgLTIxNSw2ICsyNDcsOSBAQCBtYWNybyBy
ZXN0b3JlQ2FsbGVlU2F2ZXNVc2VkQnlXYXNtKCkKICAgICBlbHNpZiBYODZfNjQgb3IgUklTQ1Y2
NAogICAgICAgICBsb2FkcCAtMHg4W2Nmcl0sIFBCCiAgICAgICAgIGxvYWRwIC0weDEwW2Nmcl0s
IHdhc21JbnN0YW5jZQorICAgIGVsc2lmIEFSTXY3CisgICAgICAgIGxvYWRwIC00W2Nmcl0sIFBC
CisgICAgICAgIGxvYWRwIC04W2Nmcl0sIHdhc21JbnN0YW5jZQogICAgIGVsc2UKICAgICAgICAg
ZXJyb3IKICAgICBlbmQKQEAgLTI0NSwxMCArMjgwLDEyIEBAIGVuZAogZW5kCiAKIG1hY3JvIHJl
bG9hZE1lbW9yeVJlZ2lzdGVyc0Zyb21JbnN0YW5jZShpbnN0YW5jZSwgc2NyYXRjaDEsIHNjcmF0
Y2gyKQoraWYgbm90IEFSTXY3CiAgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkTWVt
b3J5W2luc3RhbmNlXSwgbWVtb3J5QmFzZQogICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2Nh
Y2hlZEJvdW5kc0NoZWNraW5nU2l6ZVtpbnN0YW5jZV0sIGJvdW5kc0NoZWNraW5nU2l6ZQogICAg
IGNhZ2VkUHJpbWl0aXZlTWF5QmVOdWxsKG1lbW9yeUJhc2UsIGJvdW5kc0NoZWNraW5nU2l6ZSwg
c2NyYXRjaDEsIHNjcmF0Y2gyKSAjIElmIGJvdW5kc0NoZWNraW5nU2l6ZSBpcyAwLCBwb2ludGVy
IGNhbiBiZSBhIG51bGxwdHIuCiBlbmQKK2VuZAogCiBtYWNybyB0aHJvd0V4Y2VwdGlvbihleGNl
cHRpb24pCiAgICAgc3RvcmVpIGNvbnN0ZXhwciBXYXNtOjpFeGNlcHRpb25UeXBlOjolZXhjZXB0
aW9uJSwgQXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0KQEAg
LTI4MCw4ICszMTcsMTMgQEAgbWFjcm8gcmVzdG9yZVN0YWNrUG9pbnRlckFmdGVyQ2FsbCgpCiAg
ICAgbG9hZGkgV2FzbTo6TExJbnRDYWxsZWU6Om1fbnVtQ2FsbGVlTG9jYWxzW3dzMV0sIHdzMQog
ICAgIGxzaGlmdHAgMywgd3MxCiAgICAgYWRkcCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2Fs
bCwgd3MxCitpZiBBUk12NworICAgIHN1YnAgY2ZyLCB3czEsIHdzMQorICAgIG1vdmUgd3MxLCBz
cAorZWxzZQogICAgIHN1YnAgY2ZyLCB3czEsIHNwCiBlbmQKK2VuZAogCiBtYWNybyB3YXNtUHJv
bG9ndWUoY29kZUJsb2NrR2V0dGVyLCBjb2RlQmxvY2tTZXR0ZXIsIGxvYWRXYXNtSW5zdGFuY2Up
CiAgICAgIyBTZXQgdXAgdGhlIGNhbGwgZnJhbWUgYW5kIGNoZWNrIGlmIHdlIHNob3VsZCBPU1Iu
CkBAIC0yOTIsNiArMzM0LDkgQEAgbWFjcm8gd2FzbVByb2xvZ3VlKGNvZGVCbG9ja0dldHRlciwg
Y29kZUJsb2NrU2V0dGVyLCBsb2FkV2FzbUluc3RhbmNlKQogCiAgICAgbG9hZHAgV2FzbTo6SW5z
dGFuY2U6Om1fb3duZXJbd2FzbUluc3RhbmNlXSwgd3MwCiAgICAgc3RvcmVwIHdzMCwgVGhpc0Fy
Z3VtZW50T2Zmc2V0W2Nmcl0KK2lmIG5vdCBKU1ZBTFVFNjQKKyAgICBzdG9yZWkgQ2VsbFRhZywg
VGFnT2Zmc2V0ICsgVGhpc0FyZ3VtZW50T2Zmc2V0W2Nmcl0KK2VuZAogCiAgICAgY29kZUJsb2Nr
R2V0dGVyKHdzMCkKICAgICBjb2RlQmxvY2tTZXR0ZXIod3MwKQpAQCAtMzAyLDYgKzM0NywxMCBA
QCBtYWNybyB3YXNtUHJvbG9ndWUoY29kZUJsb2NrR2V0dGVyLCBjb2RlQmxvY2tTZXR0ZXIsIGxv
YWRXYXNtSW5zdGFuY2UpCiAgICAgYWRkcCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCwg
d3MxCiAgICAgc3VicCBjZnIsIHdzMSwgd3MxCiAKK2lmIG5vdCBKU1ZBTFVFNjQKKyAgICBzdWJw
IDgsIHdzMSAjIGFsaWduIHN0YWNrIHBvaW50ZXIKK2VuZAorCiAgICAgYnBhIHdzMSwgY2ZyLCAu
c3RhY2tPdmVyZmxvdwogICAgIGJwYmVxIFdhc206Okluc3RhbmNlOjptX2NhY2hlZFN0YWNrTGlt
aXRbd2FzbUluc3RhbmNlXSwgd3MxLCAuc3RhY2tIZWlnaHRPSwogCkBAIC0zMTEsMTAgKzM2MCwx
NSBAQCBtYWNybyB3YXNtUHJvbG9ndWUoY29kZUJsb2NrR2V0dGVyLCBjb2RlQmxvY2tTZXR0ZXIs
IGxvYWRXYXNtSW5zdGFuY2UpCiAuc3RhY2tIZWlnaHRPSzoKICAgICBtb3ZlIHdzMSwgc3AKIAot
ICAgIGZvckVhY2hBcmd1bWVudEdQUihtYWNybyAob2Zmc2V0LCBncHIpCitpZiBKU1ZBTFVFNjQK
KyAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByKQogICAgICAgICBzdG9y
ZXEgZ3ByLCAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAq
IDhbY2ZyXQogICAgIGVuZCkKLQorZWxzZQorICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAo
b2Zmc2V0LCBncHJNc3csIGdwTHN3KQorICAgICAgICBzdG9yZTJpYSBncExzdywgZ3ByTXN3LCAt
b2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXQor
ICAgIGVuZCkKK2VuZAogICAgIGZvckVhY2hBcmd1bWVudEZQUihtYWNybyAob2Zmc2V0LCBmcHIp
CiAgICAgICAgIHN0b3JlZCBmcHIsIC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0
dWFsUmVnaXN0ZXJzICogOFtjZnJdCiAgICAgZW5kKQpAQCAtMzI4LDE0ICszODIsMTYgQEAgbWFj
cm8gd2FzbVByb2xvZ3VlKGNvZGVCbG9ja0dldHRlciwgY29kZUJsb2NrU2V0dGVyLCBsb2FkV2Fz
bUluc3RhbmNlKQogICAgIGxvYWRpIFdhc206OkxMSW50Q2FsbGVlOjptX251bVZhcnNbd3MwXSwg
d3MxCiAgICAgc3ViaSBOdW1iZXJPZldhc21Bcmd1bWVudHMgKyBDYWxsZWVTYXZlU3BhY2VBc1Zp
cnR1YWxSZWdpc3RlcnMsIHdzMQogICAgIGJ0aXogd3MxLCAuemVyb0luaXRpYWxpemVMb2NhbHNE
b25lCisgICAgbHNoaWZ0aSAzLCB3czEKICAgICBuZWdpIHdzMQoraWYgSlNWQUxVRTY0CiAgICAg
c3hpMnEgd3MxLCB3czEKK2VuZAogICAgIGxlYXAgKE51bWJlck9mV2FzbUFyZ3VtZW50cyArIENh
bGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyArIDEpICogLThbY2ZyXSwgd3MwCiAuemVy
b0luaXRpYWxpemVMb2NhbHNMb29wOgotICAgIGFkZHEgMSwgd3MxCi0gICAgc3RvcmVxIDAsIFt3
czAsIHdzMSwgOF0KLSAgICBidHF6IHdzMSwgLnplcm9Jbml0aWFsaXplTG9jYWxzRG9uZQotICAg
IGptcCAuemVyb0luaXRpYWxpemVMb2NhbHNMb29wCisgICAgYWRkcCBQdHJTaXplLCB3czEKKyAg
ICBzdG9yZXAgMCwgW3dzMCwgd3MxXQorICAgIGJ0cG56IHdzMSwgLnplcm9Jbml0aWFsaXplTG9j
YWxzTG9vcAogLnplcm9Jbml0aWFsaXplTG9jYWxzRG9uZToKIGVuZAogCkBAIC0zNzQsNiArNDMw
LDI0IEBAIG1hY3JvIHNsb3dXYXNtT3Aob3Bjb2RlTmFtZSkKICAgICB1bnByZWZpeGVkU2xvd1dh
c21PcCh3YXNtXyVvcGNvZGVOYW1lJSkKIGVuZAogCisjIEZsb2F0IHRvIGZsb2F0IHJvdW5kaW5n
IG9wcworbWFjcm8gd2FzbVJvdW5kaW5nT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBmbikK
K2lmIEpTVkFMVUU2NCAjIEFsbCBjdXJyZW50IDY0LWJpdCBwbGF0Zm9ybXMgaGF2ZSBpbnN0cnVj
dGlvbnMgZm9yIHRoZXNlCisgICAgd2FzbU9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4p
CitlbHNlCisgICAgc2xvd1dhc21PcChvcGNvZGVOYW1lKQorZW5kCitlbmQKKworIyBpNjQgKHNp
Z25lZC91bnNpZ25lZCkgdG8gZjMyIG9yIGY2NAorbWFjcm8gd2FzbUk2NFRvRk9wKG9wY29kZU5h
bWUsIG9wY29kZVN0cnVjdCwgZm4pCitpZiBKU1ZBTFVFNjQgIyBBbGwgY3VycmVudCA2NC1iaXQg
cGxhdGZvcm1zIGhhdmUgaW5zdHJ1Y3Rpb25zIGZvciB0aGVzZQorICAgIHdhc21PcChvcGNvZGVO
YW1lLCBvcGNvZGVTdHJ1Y3QsIGZuKQorZWxzZQorICAgIHNsb3dXYXNtT3Aob3Bjb2RlTmFtZSkK
K2VuZAorZW5kCisKICMgTWFjcm8gdmVyc2lvbiBvZiBsb2FkIG9wZXJhdGlvbnM6IG1sb2FkW3N1
ZmZpeF0KICMgbG9hZHMgZmllbGQgZnJvbSB0aGUgaW5zdHJ1Y3Rpb24gc3RyZWFtIGFuZCBwZXJm
b3JtcyBsb2FkW3N1ZmZpeF0gdG8gZHN0CiBtYWNybyBmaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRl
eChjdHgsIGZuKQpAQCAtMzk2LDEyICs0NzAsMjEgQEAgbWFjcm8gbG9hZENvbnN0YW50T3JWYXJp
YWJsZShjdHgsIGluZGV4LCBsb2FkZXIpCiAgICAgZW5kKQogZW5kCiAKK2lmIEpTVkFMVUU2NAog
bWFjcm8gbWxvYWRxKGN0eCwgZmllbGQsIGRzdCkKICAgICB3Z2V0cyhjdHgsIGZpZWxkLCBkc3Qp
CiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShjdHgsIGRzdCwgbWFjcm8gKGZyb20pCiAgICAg
ICAgIGxvYWRxIGZyb20sIGRzdAogICAgIGVuZCkKIGVuZAorZWxzZQorbWFjcm8gbWxvYWQyaShj
dHgsIGZpZWxkLCBkc3RNc3csIGRzdExzdykKKyAgICB3Z2V0cyhjdHgsIGZpZWxkLCBkc3RMc3cp
CisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShjdHgsIGRzdExzdywgbWFjcm8gKGZyb20pCisg
ICAgICAgIGxvYWQyaWEgZnJvbSwgZHN0THN3LCBkc3RNc3cKKyAgICBlbmQpCitlbmQKK2VuZAog
CiBtYWNybyBtbG9hZGkoY3R4LCBmaWVsZCwgZHN0KQogICAgIHdnZXRzKGN0eCwgZmllbGQsIGRz
dCkKQEAgLTQzMywxMSArNTE2LDE5IEBAIGVuZAogCiAjIFR5cGVkIHJldHVybnMKIAoraWYgSlNW
QUxVRTY0CiBtYWNybyByZXR1cm5xKGN0eCwgdmFsdWUpCiAgICAgd2dldHMoY3R4LCBtX2RzdCwg
dDUpCiAgICAgc3RvcmVxIHZhbHVlLCBbY2ZyLCB0NSwgOF0KICAgICBkaXNwYXRjaChjdHgpCiBl
bmQKK2Vsc2UKK21hY3JvIHJldHVybjJpKGN0eCwgbXN3LCBsc3cpCisgICAgd2dldHMoY3R4LCBt
X2RzdCwgdDUpCisgICAgc3RvcmUyaWEgbHN3LCBtc3csIFtjZnIsIHQ1LCA4XQorICAgIGRpc3Bh
dGNoKGN0eCkKK2VuZAorZW5kCiAKIG1hY3JvIHJldHVybmkoY3R4LCB2YWx1ZSkKICAgICB3Z2V0
cyhjdHgsIG1fZHN0LCB0NSkKQEAgLTUxMCw3ICs2MDEsNyBAQCBtYWNybyB3YXNtQ29kZUJsb2Nr
R2V0dGVyKHRhcmdldFJlZ2lzdGVyKQogZW5kCiAKIG9wKHdhc21fZnVuY3Rpb25fcHJvbG9ndWUs
IG1hY3JvICgpCi0gICAgaWYgbm90IFdFQkFTU0VNQkxZIG9yIG5vdCBKU1ZBTFVFNjQgb3IgQ19M
T09QIG9yIENfTE9PUF9XSU4KKyAgICBpZiBub3QgV0VCQVNTRU1CTFkgb3IgQ19MT09QIG9yIENf
TE9PUF9XSU4KICAgICAgICAgZXJyb3IKICAgICBlbmQKIApAQCAtNTE5LDcgKzYxMCw3IEBAIG9w
KHdhc21fZnVuY3Rpb25fcHJvbG9ndWUsIG1hY3JvICgpCiBlbmQpCiAKIG9wKHdhc21fZnVuY3Rp
b25fcHJvbG9ndWVfbm9fdGxzLCBtYWNybyAoKQotICAgIGlmIG5vdCBXRUJBU1NFTUJMWSBvciBu
b3QgSlNWQUxVRTY0IG9yIENfTE9PUCBvciBDX0xPT1BfV0lOCisgICAgaWYgbm90IFdFQkFTU0VN
QkxZIG9yIENfTE9PUCBvciBDX0xPT1BfV0lOCiAgICAgICAgIGVycm9yCiAgICAgZW5kCiAKQEAg
LTYyMSwxNiArNzEyLDIzIEBAIF93YXNtX2VudGVyOgogICAgIGNoZWNrU3RhY2tQb2ludGVyQWxp
Z25tZW50KHQyLCAweGRlYWQwMGUxKQogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MiAgICAg
ICAgICAgICAgICAvLyB0MjxDb2RlQmxvY2s+ID0gY2ZyLkNvZGVCbG9jawogICAgIGxvYWRpIFdh
c206OkxMSW50Q2FsbGVlOjptX251bVZhcnNbdDJdLCB0MiAgICAgIC8vIHQyPHNpemVfdD4gPSB0
MjxDb2RlQmxvY2s+Lm1fbnVtVmFycwotICAgIHN1YnEgQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFs
UmVnaXN0ZXJzICsgTnVtYmVyT2ZXYXNtQXJndW1lbnRzLCB0MgorICAgIHN1YmkgQ2FsbGVlU2F2
ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICsgTnVtYmVyT2ZXYXNtQXJndW1lbnRzLCB0MgogICAg
IGJ0aXogdDIsIC5vcEVudGVyRG9uZQotICAgIG1vdmUgY2ZyLCB0MQotICAgIHN1YnEgQ2FsbGVl
U2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOCArIE51bWJlck9mV2FzbUFyZ3VtZW50cyAq
IDgsIHQxCisgICAgc3VicCBjZnIsIChDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMg
KyBOdW1iZXJPZldhc21Bcmd1bWVudHMpICogU2xvdFNpemUsIHQxCisgICAgbHNoaWZ0aSAzLCB0
MgogICAgIG5lZ2kgdDIKK2lmIEpTVkFMVUU2NAogICAgIHN4aTJxIHQyLCB0MgorZW5kCisgICAg
bW92ZSAwLCB0NgogLm9wRW50ZXJMb29wOgotICAgIHN0b3JlcSAwLCBbdDEsIHQyLCA4XQotICAg
IGFkZHEgMSwgdDIKLSAgICBidHFueiB0MiwgLm9wRW50ZXJMb29wCitpZiBKU1ZBTFVFNjQKKyAg
ICBzdG9yZXEgdDYsIFt0MSwgdDJdCitlbHNlCisgICAgc3RvcmUyaWEgdDYsIHQ2LCBbdDEsIHQy
XQorZW5kCisgICAgYWRkcCA4LCB0MgorICAgIGJ0cG56IHQyLCAub3BFbnRlckxvb3AKIC5vcEVu
dGVyRG9uZToKICAgICB3YXNtRGlzcGF0Y2hJbmRpcmVjdCgxKQogCkBAIC02NDMsMTEgKzc0MSw2
IEBAIHdhc21PcChsb29wX2hpbnQsIFdhc21Mb29wSGludCwgbWFjcm8oY3R4KQogICAgIGRpc3Bh
dGNoKGN0eCkKIGVuZCkKIAotd2FzbU9wKG1vdiwgV2FzbU1vdiwgbWFjcm8oY3R4KQotICAgIG1s
b2FkcShjdHgsIG1fc3JjLCB0MCkKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KIHdhc21P
cChqdHJ1ZSwgV2FzbUp0cnVlLCBtYWNybyhjdHgpCiAgICAgbWxvYWRpKGN0eCwgbV9jb25kaXRp
b24sIHQwKQogICAgIGJ0aXogdDAsIC5jb250aW51ZQpAQCAtNjk5LDExICs3OTIsMTcgQEAgZW5k
KQogCiB1bnByZWZpeGVkV2FzbU9wKHdhc21fcmV0LCBXYXNtUmV0LCBtYWNybyhjdHgpCiAgICAg
Y2hlY2tTd2l0Y2hUb0pJVEZvckVwaWxvZ3VlKCkKLSAgICBmb3JFYWNoQXJndW1lbnRHUFIobWFj
cm8gKG9mZnNldCwgZ3ByKQoraWYgSlNWQUxVRTY0CisgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1h
Y3JvIChvZmZzZXQsIGdwcikKICAgICAgICAgbG9hZHEgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZl
U3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0sIGdwcgogICAgIGVuZCkKK2Vsc2UKKyAg
ICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3LCBncExzdykKKyAgICAg
ICAgbG9hZDJpYSAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVy
cyAqIDhbY2ZyXSwgZ3BMc3csIGdwck1zdworICAgIGVuZCkKK2VuZAogICAgIGZvckVhY2hBcmd1
bWVudEZQUihtYWNybyAob2Zmc2V0LCBmcHIpCi0gICAgICAgIGxvYWRkIC1vZmZzZXQgLSA4IC0g
Q2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBmcHIKKyAgICAgICAg
bG9hZGQgLW9mZnNldCAtICA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICog
OFtjZnJdLCBmcHIKICAgICBlbmQpCiAgICAgZG9SZXR1cm4oKQogZW5kKQpAQCAtNzE5LDQ0ICs4
MTgsNiBAQCB3YXNtT3AocmV0X3ZvaWQsIFdhc21SZXRWb2lkLCBtYWNybyhjdHgpCiAgICAgZG9S
ZXR1cm4oKQogZW5kKQogCi13YXNtT3AocmVmX2lzX251bGwsIFdhc21SZWZJc051bGwsIG1hY3Jv
KGN0eCkKLSAgICBtbG9hZHAoY3R4LCBtX3JlZiwgdDApCi0gICAgY3FlcSB0MCwgVmFsdWVOdWxs
LCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGdldF9nbG9iYWwsIFdh
c21HZXRHbG9iYWwsIG1hY3JvKGN0eCkKLSAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9i
YWxzW3dhc21JbnN0YW5jZV0sIHQwCi0gICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkK
LSAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0K
LXdhc21PcChzZXRfZ2xvYmFsLCBXYXNtU2V0R2xvYmFsLCBtYWNybyhjdHgpCi0gICAgbG9hZHAg
V2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAotICAgIHdnZXR1KGN0
eCwgbV9nbG9iYWxJbmRleCwgdDEpCi0gICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAg
c3RvcmVxIHQyLCBbdDAsIHQxLCA4XQotICAgIGRpc3BhdGNoKGN0eCkKLWVuZCkKLQotd2FzbU9w
KGdldF9nbG9iYWxfcG9ydGFibGVfYmluZGluZywgV2FzbUdldEdsb2JhbFBvcnRhYmxlQmluZGlu
ZywgbWFjcm8oY3R4KQotICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUlu
c3RhbmNlXSwgdDAKLSAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQotICAgIGxvYWRx
IFt0MCwgdDEsIDhdLCB0MAotICAgIGxvYWRxIFt0MF0sIHQwCi0gICAgcmV0dXJucShjdHgsIHQw
KQotZW5kKQotCi13YXNtT3Aoc2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNtU2V0R2xv
YmFsUG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCi0gICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6
Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAotICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRl
eCwgdDEpCi0gICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAgbG9hZHEgW3QwLCB0MSwg
OF0sIHQwCi0gICAgc3RvcmVxIHQyLCBbdDBdCi0gICAgZGlzcGF0Y2goY3R4KQotZW5kKQotCiBt
YWNybyBzbG93UGF0aEZvcldhc21DYWxsKGN0eCwgc2xvd1BhdGgsIHN0b3JlV2FzbUluc3RhbmNl
KQogICAgIGNhbGxXYXNtQ2FsbFNsb3dQYXRoKAogICAgICAgICBzbG93UGF0aCwKQEAgLTc3MSw3
ICs4MzIsMTIgQEAgbWFjcm8gc2xvd1BhdGhGb3JXYXNtQ2FsbChjdHgsIHNsb3dQYXRoLCBzdG9y
ZVdhc21JbnN0YW5jZSkKIAogICAgICAgICAgICAgd2dldHUoY3R4LCBtX3N0YWNrT2Zmc2V0LCB3
czEpCiAgICAgICAgICAgICBsc2hpZnRpIDMsIHdzMQoraWYgQVJNdjcKKyAgICAgICAgICAgIHN1
YnAgY2ZyLCB3czEsIHdzMQorICAgICAgICAgICAgbW92ZSB3czEsIHNwCitlbHNlCiAgICAgICAg
ICAgICBzdWJwIGNmciwgd3MxLCBzcAorZW5kCiAKICAgICAgICAgICAgIHdnZXR1KGN0eCwgbV9u
dW1iZXJPZlN0YWNrQXJncywgd3MxKQogCkBAIC03ODIsMTAgKzg0OCwxNSBAQCBtYWNybyBzbG93
UGF0aEZvcldhc21DYWxsKGN0eCwgc2xvd1BhdGgsIHN0b3JlV2FzbUluc3RhbmNlKQogICAgICAg
ICAgICAgcmVsb2FkTWVtb3J5UmVnaXN0ZXJzRnJvbUluc3RhbmNlKHRhcmdldFdhc21JbnN0YW5j
ZSwgd2EwLCB3YTEpCiAKICAgICAgICAgICAgICMgTG9hZCByZWdpc3RlcnMgZnJvbSBzdGFjawot
ICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50R1BSKG1hY3JvIChvZmZzZXQsIGdwcikKK2lmIEpT
VkFMVUU2NAorICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdw
cikKICAgICAgICAgICAgICAgICBsb2FkcSBDYWxsRnJhbWVIZWFkZXJTaXplICsgOCArIG9mZnNl
dFtzcCwgd3MxLCA4XSwgZ3ByCiAgICAgICAgICAgICBlbmQpCi0KK2Vsc2UKKyAgICAgICAgICAg
IGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHJNc3csIGdwTHN3KQorICAgICAg
ICAgICAgICAgIGxvYWQyaWEgQ2FsbEZyYW1lSGVhZGVyU2l6ZSArIDggKyBvZmZzZXRbc3AsIHdz
MSwgOF0sIGdwTHN3LCBncHJNc3cKKyAgICAgICAgICAgIGVuZCkKK2VuZAogICAgICAgICAgICAg
Zm9yRWFjaEFyZ3VtZW50RlBSKG1hY3JvIChvZmZzZXQsIGZwcikKICAgICAgICAgICAgICAgICBs
b2FkZCBDYWxsRnJhbWVIZWFkZXJTaXplICsgOCArIG9mZnNldFtzcCwgd3MxLCA4XSwgZnByCiAg
ICAgICAgICAgICBlbmQpCkBAIC04MjgsNyArODk5LDExIEBAIG1hY3JvIHNsb3dQYXRoRm9yV2Fz
bUNhbGwoY3R4LCBzbG93UGF0aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAKICAgICAgICAgICAgICMg
V2UgbmVlZCB0byBzZXQgUEMgdG8gbG9hZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBpbnN0cnVjdGlv
biBzdHJlYW0sIGJ1dCB3ZQogICAgICAgICAgICAgIyBuZWVkIHRvIHByZXNlcnZlIGl0cyBjdXJy
ZW50IHZhbHVlIHNpbmNlIGl0IG1pZ2h0IGNvbnRhaW4gYSByZXR1cm4gdmFsdWUKK2lmIEFSTXY3
CisgICAgICAgICAgICBwdXNoIFBDCitlbHNlCiAgICAgICAgICAgICBtb3ZlIFBDLCBtZW1vcnlC
YXNlCitlbmQKICAgICAgICAgICAgIG1vdmUgUEIsIHdhc21JbnN0YW5jZQogICAgICAgICAgICAg
bG9hZGkgQXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKICAg
ICAgICAgICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCBQQgpAQCAtODM3LDE3ICs5MTIsMjggQEAg
bWFjcm8gc2xvd1BhdGhGb3JXYXNtQ2FsbChjdHgsIHNsb3dQYXRoLCBzdG9yZVdhc21JbnN0YW5j
ZSkKICAgICAgICAgICAgIHdnZXR1KGN0eCwgbV9zdGFja09mZnNldCwgd3MxKQogICAgICAgICAg
ICAgbHNoaWZ0aSAzLCB3czEKICAgICAgICAgICAgIG5lZ2kgd3MxCitpZiBKU1ZBTFVFNjQKICAg
ICAgICAgICAgIHN4aTJxIHdzMSwgd3MxCitlbmQKICAgICAgICAgICAgIGFkZHAgY2ZyLCB3czEK
IAogICAgICAgICAgICAgIyBBcmd1bWVudCByZWdpc3RlcnMgYXJlIGFsc28gcmV0dXJuIHJlZ2lz
dGVycywgc28gdGhleSBtdXN0IGJlIHN0b3JlZCB0byB0aGUgc3RhY2sKICAgICAgICAgICAgICMg
aW4gY2FzZSB0aGV5IGNvbnRhaW4gcmV0dXJuIHZhbHVlcy4KICAgICAgICAgICAgIHdnZXR1KGN0
eCwgbV9udW1iZXJPZlN0YWNrQXJncywgd3MwKQoraWYgQVJNdjcKKyAgICAgICAgICAgIHBvcCBQ
QworZWxzZQogICAgICAgICAgICAgbW92ZSBtZW1vcnlCYXNlLCBQQwotICAgICAgICAgICAgZm9y
RWFjaEFyZ3VtZW50R1BSKG1hY3JvIChvZmZzZXQsIGdwcikKK2VuZAoraWYgSlNWQUxVRTY0Cisg
ICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByKQogICAgICAg
ICAgICAgICAgIHN0b3JlcSBncHIsIENhbGxGcmFtZUhlYWRlclNpemUgKyA4ICsgb2Zmc2V0W3dz
MSwgd3MwLCA4XQogICAgICAgICAgICAgZW5kKQotCitlbHNlCisgICAgICAgICAgICBmb3JFYWNo
QXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3LCBncExzdykKKyAgICAgICAgICAgICAg
ICBzdG9yZTJpYSBncExzdywgZ3ByTXN3LCBDYWxsRnJhbWVIZWFkZXJTaXplICsgOCArIG9mZnNl
dFt3czEsIHdzMCwgOF0KKyAgICAgICAgICAgIGVuZCkKK2VuZAogICAgICAgICAgICAgZm9yRWFj
aEFyZ3VtZW50RlBSKG1hY3JvIChvZmZzZXQsIGZwcikKICAgICAgICAgICAgICAgICBzdG9yZWQg
ZnByLCBDYWxsRnJhbWVIZWFkZXJTaXplICsgOCArIG9mZnNldFt3czEsIHdzMCwgOF0KICAgICAg
ICAgICAgIGVuZCkKQEAgLTg5OCwxOTkgKzk4NCwzNiBAQCB3YXNtT3AoY3VycmVudF9tZW1vcnks
IFdhc21DdXJyZW50TWVtb3J5LCBtYWNybyhjdHgpCiAgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6
Om1fbWVtb3J5W3dhc21JbnN0YW5jZV0sIHQwCiAgICAgbG9hZHAgV2FzbTo6TWVtb3J5OjptX2hh
bmRsZVt0MF0sIHQwCiAgICAgbG9hZHAgV2FzbTo6TWVtb3J5SGFuZGxlOjptX3NpemVbdDBdLCB0
MAotICAgIHVyc2hpZnRxIDE2LCB0MAorICAgIHVyc2hpZnRwIDE2LCB0MAoraWYgSlNWQUxVRTY0
CiAgICAgcmV0dXJucShjdHgsIHQwKQorZWxzZQorICAgIHJldHVybjJpKGN0eCwgMCwgdDApCitl
bmQKIGVuZCkKIAogd2FzbU9wKHNlbGVjdCwgV2FzbVNlbGVjdCwgbWFjcm8oY3R4KQogICAgIG1s
b2FkaShjdHgsIG1fY29uZGl0aW9uLCB0MCkKICAgICBidGl6IHQwLCAuaXNaZXJvCitpZiBKU1ZB
TFVFNjQKICAgICBtbG9hZHEoY3R4LCBtX25vblplcm8sIHQwKQogICAgIHJldHVybnEoY3R4LCB0
MCkKIC5pc1plcm86CiAgICAgbWxvYWRxKGN0eCwgbV96ZXJvLCB0MCkKICAgICByZXR1cm5xKGN0
eCwgdDApCi1lbmQpCi0KLSMgdXNlcyBvZmZzZXQgYXMgc2NyYXRjaCBhbmQgcmV0dXJucyByZXN1
bHQgb24gcG9pbnRlcgotbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4LCBwb2lu
dGVyLCBvZmZzZXQsIHNpemUpCi0gICAgbGVhcCBzaXplIC0gMVtwb2ludGVyLCBvZmZzZXRdLCB0
NQotICAgIGJwYiB0NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29udGludWF0aW9uCi0gICAgdGhy
b3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCi0uY29udGludWF0aW9uOgotICAg
IGFkZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgotZW5kCi0KLW1hY3JvIGVtaXRDaGVja0FuZFByZXBh
cmVQb2ludGVyQWRkaW5nT2Zmc2V0KGN0eCwgcG9pbnRlciwgb2Zmc2V0LCBzaXplKQotICAgIGxl
YXAgc2l6ZSAtIDFbcG9pbnRlciwgb2Zmc2V0XSwgdDUKLSAgICBicGIgdDUsIGJvdW5kc0NoZWNr
aW5nU2l6ZSwgLmNvbnRpbnVhdGlvbgotLnRocm93OgotICAgIHRocm93RXhjZXB0aW9uKE91dE9m
Qm91bmRzTWVtb3J5QWNjZXNzKQotLmNvbnRpbnVhdGlvbjoKLSAgICBhZGRwIG1lbW9yeUJhc2Us
IHBvaW50ZXIKLSAgICBhZGRwIG9mZnNldCwgcG9pbnRlcgotZW5kCi0KLW1hY3JvIGVtaXRDaGVj
a0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgcG9p
bnRlciwgb2Zmc2V0LCBzaXplKQotICAgIGxlYXAgc2l6ZSAtIDFbcG9pbnRlciwgb2Zmc2V0XSwg
dDUKLSAgICBicGIgdDUsIGJvdW5kc0NoZWNraW5nU2l6ZSwgLmNvbnRpbnVhdGlvbgotLnRocm93
OgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNjZXNzKQotLmNvbnRpbnVh
dGlvbjoKLSAgICBhZGRwIG1lbW9yeUJhc2UsIHBvaW50ZXIKLSAgICBhZGRwIG9mZnNldCwgcG9p
bnRlcgotICAgIGJ0cG56IHBvaW50ZXIsIChzaXplIC0gMSksIC50aHJvdwotZW5kCi0KLW1hY3Jv
IHdhc21Mb2FkT3AobmFtZSwgc3RydWN0LCBzaXplLCBmbikKLSAgICB3YXNtT3AobmFtZSwgc3Ry
dWN0LCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDApCi0gICAg
ICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJl
UG9pbnRlcihjdHgsIHQwLCB0MSwgc2l6ZSkKLSAgICAgICAgZm4oW3QwLCB0MV0sIHQyKQotICAg
ICAgICByZXR1cm5xKGN0eCwgdDIpCi0gICAgZW5kKQotZW5kCi0KLXdhc21Mb2FkT3AobG9hZDhf
dSwgV2FzbUxvYWQ4VSwgMSwgbWFjcm8obWVtLCBkc3QpIGxvYWRiIG1lbSwgZHN0IGVuZCkKLXdh
c21Mb2FkT3AobG9hZDE2X3UsIFdhc21Mb2FkMTZVLCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGgg
bWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChsb2FkMzJfdSwgV2FzbUxvYWQzMlUsIDQsIG1hY3Jv
KG1lbSwgZHN0KSBsb2FkaSBtZW0sIGRzdCBlbmQpCi13YXNtTG9hZE9wKGxvYWQ2NF91LCBXYXNt
TG9hZDY0VSwgOCwgbWFjcm8obWVtLCBkc3QpIGxvYWRxIG1lbSwgZHN0IGVuZCkKLQotd2FzbUxv
YWRPcChpMzJfbG9hZDhfcywgV2FzbUkzMkxvYWQ4UywgMSwgbWFjcm8obWVtLCBkc3QpIGxvYWRi
c2kgbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChpNjRfbG9hZDhfcywgV2FzbUk2NExvYWQ4Uywg
MSwgbWFjcm8obWVtLCBkc3QpIGxvYWRic3EgbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChpMzJf
bG9hZDE2X3MsIFdhc21JMzJMb2FkMTZTLCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGhzaSBtZW0s
IGRzdCBlbmQpCi13YXNtTG9hZE9wKGk2NF9sb2FkMTZfcywgV2FzbUk2NExvYWQxNlMsIDIsIG1h
Y3JvKG1lbSwgZHN0KSBsb2FkaHNxIG1lbSwgZHN0IGVuZCkKLXdhc21Mb2FkT3AoaTY0X2xvYWQz
Ml9zLCBXYXNtSTY0TG9hZDMyUywgNCwgbWFjcm8obWVtLCBkc3QpIGxvYWRpcyBtZW0sIGRzdCBl
bmQpCi0KLW1hY3JvIHdhc21TdG9yZU9wKG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4pCi0gICAgd2Fz
bU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50
ZXIsIHQwKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgZW1pdENo
ZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4LCB0MCwgdDEsIHNpemUpCi0gICAgICAgIG1sb2FkcShj
dHgsIG1fdmFsdWUsIHQyKQotICAgICAgICBmbih0MiwgW3QwLCB0MV0pCi0gICAgICAgIGRpc3Bh
dGNoKGN0eCkKLSAgICBlbmQpCitlbHNlCisgICAgbWxvYWQyaShjdHgsIG1fbm9uWmVybywgdDEs
IHQwKQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorLmlzWmVybzoKKyAgICBtbG9hZDJpKGN0
eCwgbV96ZXJvLCB0MSwgdDApCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCiBlbmQKLQotd2Fz
bVN0b3JlT3Aoc3RvcmU4LCBXYXNtU3RvcmU4LCAxLCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZWIg
dmFsdWUsIG1lbSBlbmQpCi13YXNtU3RvcmVPcChzdG9yZTE2LCBXYXNtU3RvcmUxNiwgMiwgbWFj
cm8odmFsdWUsIG1lbSkgc3RvcmVoIHZhbHVlLCBtZW0gZW5kKQotd2FzbVN0b3JlT3Aoc3RvcmUz
MiwgV2FzbVN0b3JlMzIsIDQsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlaSB2YWx1ZSwgbWVtIGVu
ZCkKLXdhc21TdG9yZU9wKHN0b3JlNjQsIFdhc21TdG9yZTY0LCA4LCBtYWNybyh2YWx1ZSwgbWVt
KSBzdG9yZXEgdmFsdWUsIG1lbSBlbmQpCi0KLSMgT3Bjb2RlcyB0aGF0IGRvbid0IGhhdmUgdGhl
IGBiM29wYCBlbnRyeSBpbiB3YXNtLmpzb24uIFRoaXMgc2hvdWxkIGJlIGtlcHQgaW4gc3luYwot
Ci13YXNtT3AoaTMyX2Rpdl9zLCBXYXNtSTMyRGl2UywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGko
Y3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRpeiB0
MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAgIGJpbmVxIHQxLCAtMSwgLnNhZmUKLSAgICBi
aWVxIHQwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAudGhyb3dJbnRlZ2VyT3ZlcmZsb3cKLQotLnNh
ZmU6Ci0gICAgaWYgWDg2XzY0Ci0gICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBzdGF0aWNf
YXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAotICAgICAgICAjIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKLSAgICAgICAgY2RxaQotICAgICAg
ICBpZGl2aSB0MQotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgICAg
IGRpdmlzIHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1
cm5pKGN0eCwgdDApCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9u
KERpdmlzaW9uQnlaZXJvKQotCi0udGhyb3dJbnRlZ2VyT3ZlcmZsb3c6Ci0gICAgdGhyb3dFeGNl
cHRpb24oSW50ZWdlck92ZXJmbG93KQotZW5kKQotCi13YXNtT3AoaTMyX2Rpdl91LCBXYXNtSTMy
RGl2VSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRp
KGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQot
ICAgIGlmIFg4Nl82NAotICAgICAgICB4b3JpIHQyLCB0MgotICAgICAgICB1ZGl2aSB0MQotICAg
IGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgICAgIGRpdmkgdDEsIHQwCi0g
ICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVuZAotICAgIHJldHVybmkoY3R4LCB0MCkKLQot
LnRocm93RGl2aXNpb25CeVplcm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8p
Ci1lbmQpCi0KLXdhc21PcChpMzJfcmVtX3MsIFdhc21JMzJSZW1TLCBtYWNybyAoY3R4KQotICAg
IG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCi0KLSAg
ICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwotCi0gICAgYmluZXEgdDEsIC0xLCAuc2Fm
ZQotICAgIGJpbmVxIHQwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAuc2FmZQotCi0gICAgbW92ZSAw
LCB0MgotICAgIGptcCAucmV0dXJuCi0KLS5zYWZlOgotICAgIGlmIFg4Nl82NAotICAgICAgICAj
IEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0MiBp
cyByZHgKLSAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAzNjkyCi0gICAgICAgIGNkcWkKLSAgICAgICAgaWRpdmkgdDEKLSAgICBlbHNpZiBBUk02NCBv
ciBBUk02NEUKLSAgICAgICAgZGl2aXMgdDEsIHQwLCB0MgotICAgICAgICBtdWxpIHQxLCB0Mgot
ICAgICAgICBzdWJpIHQwLCB0MiwgdDIKLSAgICBlbHNpZiBSSVNDVjY0Ci0gICAgICAgIHJlbWlz
IHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLQotLnJldHVybjoKLSAg
ICByZXR1cm5pKGN0eCwgdDIpCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhj
ZXB0aW9uKERpdmlzaW9uQnlaZXJvKQogZW5kKQogCi13YXNtT3AoaTMyX3JlbV91LCBXYXNtSTMy
UmVtVSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRp
KGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQot
ICAgIGlmIFg4Nl82NAotICAgICAgICB4b3JpIHQyLCB0MgotICAgICAgICB1ZGl2aSB0MQotICAg
IGVsc2lmIEFSTTY0IG9yIEFSTTY0RQotICAgICAgICBkaXZpIHQxLCB0MCwgdDIKLSAgICAgICAg
bXVsaSB0MSwgdDIKLSAgICAgICAgc3ViaSB0MCwgdDIsIHQyCi0gICAgZWxzaWYgUklTQ1Y2NAot
ICAgICAgICByZW1pIHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLSAg
ICByZXR1cm5pKGN0eCwgdDIpCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhj
ZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotZW5kKQorIyBPcGNvZGVzIHRoYXQgZG9uJ3QgaGF2ZSB0
aGUgYGIzb3BgIGVudHJ5IGluIHdhc20uanNvbi4gVGhpcyBzaG91bGQgYmUga2VwdCBpbiBzeW5j
CiAKIHdhc21PcChpMzJfY3R6LCBXYXNtSTMyQ3R6LCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShj
dHgsIG1fb3BlcmFuZCwgdDApCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICB0
emNudGkgdDAsIHQwCiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQpAQCAtMTEwNCwxNDggKzEw
MjcsMjUgQEAgd2FzbU9wKGkzMl9wb3BjbnQsIFdhc21JMzJQb3BjbnQsIG1hY3JvIChjdHgpCiAg
ICAgcmV0dXJuaShjdHgsIHIxKQogZW5kKQogCi13YXNtT3AoaTY0X2Rpdl9zLCBXYXNtSTY0RGl2
UywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0
eCwgbV9yaHMsIHQxKQotCi0gICAgYnRxeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAg
IGJxbmVxIHQxLCAtMSwgLnNhZmUKLSAgICBicWVxIHQwLCBjb25zdGV4cHIgSU5UNjRfTUlOLCAu
dGhyb3dJbnRlZ2VyT3ZlcmZsb3cKLQotLnNhZmU6Ci0gICAgaWYgWDg2XzY0Ci0gICAgICAgICMg
RklYTUU6IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlz
IHJkeAotICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDM2OTIKLSAgICAgICAgY3FvcQotICAgICAgICBpZGl2cSB0MQotICAgIGVsc2lmIEFSTTY0IG9y
IEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgICAgIGRpdnFzIHQxLCB0MAotICAgIGVsc2UKLSAgICAg
ICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS50aHJvd0RpdmlzaW9u
QnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotCi0udGhyb3dJbnRl
Z2VyT3ZlcmZsb3c6Ci0gICAgdGhyb3dFeGNlcHRpb24oSW50ZWdlck92ZXJmbG93KQotZW5kKQot
Ci13YXNtT3AoaTY0X2Rpdl91LCBXYXNtSTY0RGl2VSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEo
Y3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRxeiB0
MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAgIGlmIFg4Nl82NAotICAgICAgICB4b3JxIHQy
LCB0MgotICAgICAgICB1ZGl2cSB0MQotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVND
VjY0Ci0gICAgICAgIGRpdnEgdDEsIHQwCi0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVu
ZAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLnRocm93RGl2aXNpb25CeVplcm86Ci0gICAgdGhy
b3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCi1lbmQpCi0KLXdhc21PcChpNjRfcmVtX3MsIFdh
c21JNjRSZW1TLCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBt
bG9hZHEoY3R4LCBtX3JocywgdDEpCi0KLSAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVy
bwotCi0gICAgYnFuZXEgdDEsIC0xLCAuc2FmZQotICAgIGJxbmVxIHQwLCBjb25zdGV4cHIgSU5U
NjRfTUlOLCAuc2FmZQotCi0gICAgbW92ZSAwLCB0MgotICAgIGptcCAucmV0dXJuCi0KLS5zYWZl
OgotICAgIGlmIFg4Nl82NAotICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fz
c2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0MiBpcyByZHgKLSAgICAgICAgIyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCi0gICAgICAgIGNxb3EKLSAgICAgICAg
aWRpdnEgdDEKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUKLSAgICAgICAgZGl2cXMgdDEsIHQw
LCB0MgotICAgICAgICBtdWxxIHQxLCB0MgotICAgICAgICBzdWJxIHQwLCB0MiwgdDIKLSAgICBl
bHNpZiBSSVNDVjY0Ci0gICAgICAgIHJlbXFzIHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJy
b3IKLSAgICBlbmQKLQotLnJldHVybjoKLSAgICByZXR1cm5xKGN0eCwgdDIpICMgcmR4IGhhcyB0
aGUgcmVtYWluZGVyCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9u
KERpdmlzaW9uQnlaZXJvKQotZW5kKQotCi13YXNtT3AoaTY0X3JlbV91LCBXYXNtSTY0UmVtVSwg
bWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwg
bV9yaHMsIHQxKQotCi0gICAgYnRxeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAgIGlm
IFg4Nl82NAotICAgICAgICB4b3JxIHQyLCB0MgotICAgICAgICB1ZGl2cSB0MQotICAgIGVsc2lm
IEFSTTY0IG9yIEFSTTY0RQotICAgICAgICBkaXZxIHQxLCB0MCwgdDIKLSAgICAgICAgbXVscSB0
MSwgdDIKLSAgICAgICAgc3VicSB0MCwgdDIsIHQyCi0gICAgZWxzaWYgUklTQ1Y2NAotICAgICAg
ICByZW1xIHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1
cm5xKGN0eCwgdDIpCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9u
KERpdmlzaW9uQnlaZXJvKQotZW5kKQotCi13YXNtT3AoaTY0X2N0eiwgV2FzbUk2NEN0eiwgbWFj
cm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIHR6Y250cSB0MCwg
dDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfcG9wY250LCBXYXNt
STY0UG9wY250LCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgYTEpCi0g
ICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQotICAgIG1vdmUgUEMsIGEwCi0gICAgY0NhbGwyKF9z
bG93X3BhdGhfd2FzbV9wb3Bjb3VudGxsKQotICAgIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQot
ICAgIHJldHVybnEoY3R4LCByMSkKLWVuZCkKLQotd2FzbU9wKGYzMl90cnVuYywgV2FzbUYzMlRy
dW5jLCBtYWNybyAoY3R4KQord2FzbVJvdW5kaW5nT3AoZjMyX3RydW5jLCBXYXNtRjMyVHJ1bmMs
IG1hY3JvIChjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgdHJ1bmNh
dGVmIGZ0MCwgZnQwCiAgICAgcmV0dXJuZihjdHgsIGZ0MCkKIGVuZCkKIAotd2FzbU9wKGYzMl9u
ZWFyZXN0LCBXYXNtRjMyTmVhcmVzdCwgbWFjcm8gKGN0eCkKK3dhc21Sb3VuZGluZ09wKGYzMl9u
ZWFyZXN0LCBXYXNtRjMyTmVhcmVzdCwgbWFjcm8gKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29w
ZXJhbmQsIGZ0MCkKICAgICByb3VuZGYgZnQwLCBmdDAKICAgICByZXR1cm5mKGN0eCwgZnQwKQog
ZW5kKQogCi13YXNtT3AoZjY0X3RydW5jLCBXYXNtRjY0VHJ1bmMsIG1hY3JvIChjdHgpCit3YXNt
Um91bmRpbmdPcChmNjRfdHJ1bmMsIFdhc21GNjRUcnVuYywgbWFjcm8gKGN0eCkKICAgICBtbG9h
ZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICB0cnVuY2F0ZWQgZnQwLCBmdDAKICAgICByZXR1
cm5kKGN0eCwgZnQwKQogZW5kKQogCi13YXNtT3AoZjY0X25lYXJlc3QsIFdhc21GNjROZWFyZXN0
LCBtYWNybyAoY3R4KQord2FzbVJvdW5kaW5nT3AoZjY0X25lYXJlc3QsIFdhc21GNjROZWFyZXN0
LCBtYWNybyAoY3R4KQogICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIHJvdW5k
ZCBmdDAsIGZ0MAogICAgIHJldHVybmQoY3R4LCBmdDApCkBAIC0xMjY5LDI0ICsxMDY5LDYgQEAg
d2FzbU9wKGkzMl90cnVuY19zX2YzMiwgV2FzbUkzMlRydW5jU0YzMiwgbWFjcm8gKGN0eCkKICAg
ICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQogZW5kKQogCi13YXNtT3AoaTMyX3Ry
dW5jX3NfZjY0LCBXYXNtSTMyVHJ1bmNTRjY0LCBtYWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgs
IG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGMxZTAwMDAwMDAyMDAwMDAsIHQwICMgSU5U
MzJfTUlOIC0gMS4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5v
dXRPZkJvdW5kc1RydW5jCi0KLSAgICBtb3ZlIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5U
MzJfTUlOCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJv
dW5kc1RydW5jCi0KLSAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAotICAgIHJldHVybmkoY3R4LCB0
MCkKLQotLm91dE9mQm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNU
cnVuYykKLWVuZCkKLQogd2FzbU9wKGkzMl90cnVuY191X2YzMiwgV2FzbUkzMlRydW5jVUYzMiwg
bWFjcm8gKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKIApAQCAtMTMwNSwx
NjUgKzEwODcsNDcgQEAgd2FzbU9wKGkzMl90cnVuY191X2YzMiwgV2FzbUkzMlRydW5jVUYzMiwg
bWFjcm8gKGN0eCkKICAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQogZW5kKQog
Ci13YXNtT3AoaTMyX3RydW5jX3VfZjY0LCBXYXNtSTMyVHJ1bmNVRjY0LCBtYWNybyAoY3R4KQot
ICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQord2FzbU9wKGkzMl90cnVuY19zYXRfZjMy
X3MsIFdhc21JMzJUcnVuY1NhdEYzMlMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRmKGN0eCwgbV9v
cGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4Y2YwMDAwMDAsIHQwICMgSU5UMzJfTUlOIChOb3Rl
IHRoYXQgSU5UMzJfTUlOIC0gMS4wIGluIGZsb2F0IGlzIHRoZSBzYW1lIGFzIElOVDMyX01JTiBp
biBmbG9hdCkuCisgICAgZmkyZiB0MCwgZnQxCisgICAgYmZsdHVuIGZ0MCwgZnQxLCAub3V0T2ZC
b3VuZHNUcnVuY1NhdE1pbk9yTmFOCisKKyAgICBtb3ZlIDB4NGYwMDAwMDAsIHQwICMgLUlOVDMy
X01JTgorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3Vu
ZHNUcnVuY1NhdE1heAogCi0gICAgbW92ZSAweGJmZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAot
ICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVu
YworICAgIHRydW5jYXRlZjJpcyBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQogCi0gICAg
bW92ZSAweDQxZjAwMDAwMDAwMDAwMDAsIHQwICMgSU5UMzJfTUlOICogLTIuMAotICAgIGZxMmQg
dDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworLm91dE9m
Qm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKKyAgICBiZmVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNU
cnVuY1NhdE1pbgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCiAKLSAgICB0
cnVuY2F0ZWQyaSBmdDAsIHQwCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChj
b25zdGV4cHIgSU5UMzJfTUFYKSwgdDAKICAgICByZXR1cm5pKGN0eCwgdDApCiAKLS5vdXRPZkJv
dW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCisub3V0T2ZC
b3VuZHNUcnVuY1NhdE1pbjoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UMzJfTUlOKSwgdDAKKyAg
ICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCiAKLXdhc21PcChpNjRfdHJ1bmNfc19mMzIsIFdhc21J
NjRUcnVuY1NGMzIsIG1hY3JvIChjdHgpCit3YXNtT3AoaTMyX3RydW5jX3NhdF9mMzJfdSwgV2Fz
bUkzMlRydW5jU2F0RjMyVSwgbWFjcm8gKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQs
IGZ0MCkKIAotICAgIG1vdmUgMHhkZjAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4KKyAgICBtb3ZlIDB4
YmY4MDAwMDAsIHQwICMgLTEuMAogICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmbHR1biBmdDAsIGZ0
MSwgLm91dE9mQm91bmRzVHJ1bmMKKyAgICBiZmx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmNTYXRNaW4KIAotICAgIG1vdmUgMHg1ZjAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCisgICAg
bW92ZSAweDRmODAwMDAwLCB0MCAjIElOVDMyX01JTiAqIC0yLjAKICAgICBmaTJmIHQwLCBmdDEK
LSAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKyAgICBiZmd0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKIAotICAgIHRydW5jYXRlZjJxcyBmdDAs
IHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJv
d0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3Nf
ZjY0LCBXYXNtSTY0VHJ1bmNTRjY0LCBtYWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3Bl
cmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGMzZTAwMDAwMDAwMDAwMDAsIHQwICMgSU5UNjRfTUlO
Ci0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVu
YwotCi0gICAgbW92ZSAweDQzZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDY0X01JTgotICAgIGZx
MmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0g
ICAgdHJ1bmNhdGVkMnFzIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJv
dW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCi1lbmQpCi0K
LXdhc21PcChpNjRfdHJ1bmNfdV9mMzIsIFdhc21JNjRUcnVuY1VGMzIsIG1hY3JvIChjdHgpCi0g
ICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YmY4MDAwMDAsIHQw
ICMgLTEuMAotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZC
b3VuZHNUcnVuYwotCi0gICAgbW92ZSAweDVmODAwMDAwLCB0MCAjIElOVDY0X01JTiAqIC0yLjAK
LSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1
bmMKLQotICAgIHRydW5jYXRlZjJxIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5v
dXRPZkJvdW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCi1l
bmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfdV9mNjQsIFdhc21JNjRUcnVuY1VGNjQsIG1hY3JvIChj
dHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YmZmMDAw
MDAwMDAwMDAwMCwgdDAgIyAtMS4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICBtb3ZlIDB4NDNmMDAwMDAwMDAwMDAwMCwg
dDAgIyBJTlQ2NF9NSU4gKiAtMi4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICB0cnVuY2F0ZWQycSBmdDAsIHQwCi0gICAg
cmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJvd0V4Y2VwdGlv
bihPdXRPZkJvdW5kc1RydW5jKQotZW5kKQotCi13YXNtT3AoaTMyX3RydW5jX3NhdF9mMzJfcywg
V2FzbUkzMlRydW5jU2F0RjMyUywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGYoY3R4LCBtX29wZXJh
bmQsIGZ0MCkKLQotICAgIG1vdmUgMHhjZjAwMDAwMCwgdDAgIyBJTlQzMl9NSU4gKE5vdGUgdGhh
dCBJTlQzMl9NSU4gLSAxLjAgaW4gZmxvYXQgaXMgdGhlIHNhbWUgYXMgSU5UMzJfTUlOIGluIGZs
b2F0KS4KLSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5k
c1RydW5jU2F0TWluT3JOYU4KLQotICAgIG1vdmUgMHg0ZjAwMDAwMCwgdDAgIyAtSU5UMzJfTUlO
Ci0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1Ry
dW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWYyaXMgZnQwLCB0MAotICAgIHJldHVybmkoY3R4LCB0
MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKLSAgICBiZmVxIGZ0MCwgZnQwLCAu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotICAgIG1vdmUgMCwgdDAKLSAgICByZXR1cm5pKGN0eCwg
dDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQz
Ml9NQVgpLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRN
aW46Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDMyX01JTiksIHQwCi0gICAgcmV0dXJuaShjdHgs
IHQwKQotZW5kKQotCi13YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfcywgV2FzbUkzMlRydW5jU2F0
RjY0UywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAg
IG1vdmUgMHhjMWUwMDAwMDAwMjAwMDAwLCB0MCAjIElOVDMyX01JTiAtIDEuMAotICAgIGZxMmQg
dDAsIGZ0MQotICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9y
TmFOCi0KLSAgICBtb3ZlIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UMzJfTUlOCi0gICAg
ZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0
TWF4Ci0KLSAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQot
Lm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKLSAgICBiZGVxIGZ0MCwgZnQwLCAub3V0T2ZC
b3VuZHNUcnVuY1NhdE1pbgotICAgIG1vdmUgMCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0K
LS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQzMl9NQVgp
LCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46Ci0g
ICAgbW92ZSAoY29uc3RleHByIElOVDMyX01JTiksIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQot
ZW5kKQotCi13YXNtT3AoaTMyX3RydW5jX3NhdF9mMzJfdSwgV2FzbUkzMlRydW5jU2F0RjMyVSwg
bWFjcm8gKGN0eCkKLSAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUg
MHhiZjgwMDAwMCwgdDAgIyAtMS4wCi0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZsdGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCi0KLSAgICBtb3ZlIDB4NGY4MDAwMDAsIHQw
ICMgSU5UMzJfTUlOICogLTIuMAotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmZ3RlcXVuIGZ0MCwg
ZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVmMmkgZnQwLCB0MAot
ICAgIHJldHVybmkoY3R4LCB0MCkKKyAgICB0cnVuY2F0ZWYyaSBmdDAsIHQwCisgICAgcmV0dXJu
aShjdHgsIHQwKQogCiAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKICAgICBtb3ZlIDAsIHQwCkBA
IC0xNDc0LDE1MiArMTEzOCwyMiBAQCB3YXNtT3AoaTMyX3RydW5jX3NhdF9mMzJfdSwgV2FzbUkz
MlRydW5jU2F0RjMyVSwgbWFjcm8gKGN0eCkKICAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCiAK
LXdhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF91LCBXYXNtSTMyVHJ1bmNTYXRGNjRVLCBtYWNybyAo
Y3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGJmZjAw
MDAwMDAwMDAwMDAsIHQwICMgLTEuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVuIGZ0
MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotCi0gICAgbW92ZSAweDQxZjAwMDAwMDAw
MDAwMDAsIHQwICMgSU5UMzJfTUlOICogLTIuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3Rl
cXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVkMmkg
ZnQwLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46
Ci0gICAgbW92ZSAwLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1
bmNTYXRNYXg6Ci0gICAgbW92ZSAoY29uc3RleHByIFVJTlQzMl9NQVgpLCB0MAotICAgIHJldHVy
bmkoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3MsIFdhc21JNjRU
cnVuY1NhdEYzMlMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDAp
Ci0KLSAgICBtb3ZlIDB4ZGYwMDAwMDAsIHQwICMgSU5UNjRfTUlOCi0gICAgZmkyZiB0MCwgZnQx
Ci0gICAgYmZsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOCi0KLSAg
ICBtb3ZlIDB4NWYwMDAwMDAsIHQwICMgLUlOVDY0X01JTgotICAgIGZpMmYgdDAsIGZ0MQotICAg
IGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNh
dGVmMnFzIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5j
U2F0TWluT3JOYU46Ci0gICAgYmZlcSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4K
LSAgICBtb3ZlIDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1heDoKLSAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUFYKSwgdDAKLSAgICByZXR1cm5x
KGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgotICAgIG1vdmUgKGNvbnN0ZXhw
ciBJTlQ2NF9NSU4pLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2
NF90cnVuY19zYXRfZjY0X3MsIFdhc21JNjRUcnVuY1NhdEY2NFMsIG1hY3JvIChjdHgpCi0gICAg
bWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YzNlMDAwMDAwMDAwMDAw
MCwgdDAgIyBJTlQ2NF9NSU4KLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0dW4gZnQwLCBmdDEs
IC5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU4KLQotICAgIG1vdmUgMHg0M2UwMDAwMDAwMDAw
MDAwLCB0MCAjIC1JTlQ2NF9NSU4KLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAs
IGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQotICAgIHRydW5jYXRlZDJxcyBmdDAsIHQw
Ci0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgot
ICAgIGJkZXEgZnQwLCBmdDAsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCi0gICAgbW92ZSAwLCB0
MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6Ci0gICAg
bW92ZSAoY29uc3RleHByIElOVDY0X01BWCksIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0u
b3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKLSAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUlOKSwg
dDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfc2F0X2Yz
Ml91LCBXYXNtSTY0VHJ1bmNTYXRGMzJVLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZihjdHgsIG1f
b3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGJmODAwMDAwLCB0MCAjIC0xLjAKLSAgICBmaTJm
IHQwLCBmdDEKLSAgICBiZmx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4K
LQotICAgIG1vdmUgMHg1ZjgwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCi0gICAgZmkyZiB0
MCwgZnQxCi0gICAgYmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4Ci0K
LSAgICB0cnVuY2F0ZWYycSBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZC
b3VuZHNUcnVuY1NhdE1pbjoKLSAgICBtb3ZlIDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQot
Ci0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKLSAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDY0X01B
WCksIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3Nh
dF9mNjRfdSwgV2FzbUk2NFRydW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4
LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAjIC0x
LjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmNTYXRNaW4KLQotICAgIG1vdmUgMHg0M2YwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDY0X01J
TiAqIC0yLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9m
Qm91bmRzVHJ1bmNTYXRNYXgKLQotICAgIHRydW5jYXRlZDJxIGZ0MCwgdDAKLSAgICByZXR1cm5x
KGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgotICAgIG1vdmUgMCwgdDAKLSAg
ICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1vdmUg
KGNvbnN0ZXhwciBVSU5UNjRfTUFYKSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0K
LQotd2FzbU9wKGYzMl9jb252ZXJ0X3VfaTY0LCBXYXNtRjMyQ29udmVydFVJNjQsIG1hY3JvIChj
dHgpCit3YXNtSTY0VG9GT3AoZjMyX2NvbnZlcnRfdV9pNjQsIFdhc21GMzJDb252ZXJ0VUk2NCwg
bWFjcm8gKGN0eCkKICAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQogICAgIGlmIFg4Nl82
NAogICAgICAgICBjcTJmIHQwLCB0MSwgZnQwCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9y
IFJJU0NWNjQKLSAgICAgICAgY3EyZiB0MCwgZnQwCiAgICAgZWxzZQotICAgICAgICBlcnJvcgor
ICAgICAgICBjcTJmIHQwLCBmdDAKICAgICBlbmQKICAgICByZXR1cm5mKGN0eCwgZnQwKQogZW5k
KQogCi13YXNtT3AoZjY0X2NvbnZlcnRfdV9pNjQsIFdhc21GNjRDb252ZXJ0VUk2NCwgbWFjcm8g
KGN0eCkKK3dhc21JNjRUb0ZPcChmNjRfY29udmVydF91X2k2NCwgV2FzbUY2NENvbnZlcnRVSTY0
LCBtYWNybyAoY3R4KQogICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAgaWYgWDg2
XzY0CiAgICAgICAgIGNxMmQgdDAsIHQxLCBmdDAKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUg
b3IgUklTQ1Y2NAotICAgICAgICBjcTJkIHQwLCBmdDAKICAgICBlbHNlCi0gICAgICAgIGVycm9y
CisgICAgICAgIGNxMmQgdDAsIGZ0MAogICAgIGVuZAogICAgIHJldHVybmQoY3R4LCBmdDApCiBl
bmQpCkBAIC0xNjMwLDQ3ICsxMTY0LDYgQEAgd2FzbU9wKGkzMl9lcXosIFdhc21JMzJFcXosIG1h
Y3JvKGN0eCkKICAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCiAKLXdhc21PcChpNjRfc2hsLCBX
YXNtSTY0U2hsLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1s
b2FkaShjdHgsIG1fcmhzLCB0MSkKLSAgICBsc2hpZnRxIHQxLCB0MAotICAgIHJldHVybnEoY3R4
LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9zaHJfdSwgV2FzbUk2NFNoclUsIG1hY3JvKGN0eCkK
LSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQot
ICAgIHVyc2hpZnRxIHQxLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9w
KGk2NF9zaHJfcywgV2FzbUk2NFNoclMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xo
cywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotICAgIHJzaGlmdHEgdDEsIHQwCi0g
ICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3JvdHIsIFdhc21JNjRSb3Ry
LCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgs
IG1fcmhzLCB0MSkKLSAgICBycm90YXRlcSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1l
bmQpCi0KLXdhc21PcChpNjRfcm90bCwgV2FzbUk2NFJvdGwsIG1hY3JvKGN0eCkKLSAgICBtbG9h
ZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotICAgIGxyb3Rh
dGVxIHQxLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9lcXos
IFdhc21JNjRFcXosIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQot
ICAgIGNxZXEgdDAsIDAsIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotZW5kKQotCiB3YXNtT3Ao
ZjMyX21pbiwgV2FzbUYzMk1pbiwgbWFjcm8oY3R4KQogICAgIG1sb2FkZihjdHgsIG1fbGhzLCBm
dDApCiAgICAgbWxvYWRmKGN0eCwgbV9yaHMsIGZ0MSkKQEAgLTE3ODAsMjMgKzEyNzMsNiBAQCB3
YXNtT3AoZjY0X21heCwgV2FzbUY2NE1heCwgbWFjcm8oY3R4KQogICAgIHJldHVybmQoY3R4LCBm
dDEpCiBlbmQpCiAKLXdhc21PcChmNjRfY29weXNpZ24sIFdhc21GNjRDb3B5c2lnbiwgbWFjcm8o
Y3R4KQotICAgIG1sb2FkZChjdHgsIG1fbGhzLCBmdDApCi0gICAgbWxvYWRkKGN0eCwgbV9yaHMs
IGZ0MSkKLQotICAgIGZkMnEgZnQxLCB0MQotICAgIG1vdmUgMHg4MDAwMDAwMDAwMDAwMDAwLCB0
MgotICAgIGFuZHEgdDIsIHQxCi0KLSAgICBmZDJxIGZ0MCwgdDAKLSAgICBtb3ZlIDB4N2ZmZmZm
ZmZmZmZmZmZmZiwgdDIKLSAgICBhbmRxIHQyLCB0MAotCi0gICAgb3JxIHQxLCB0MAotICAgIGZx
MmQgdDAsIGZ0MAotICAgIHJldHVybmQoY3R4LCBmdDApCi1lbmQpCi0KIHdhc21PcChmMzJfY29u
dmVydF91X2kzMiwgV2FzbUYzMkNvbnZlcnRVSTMyLCBtYWNybyhjdHgpCiAgICAgbWxvYWRpKGN0
eCwgbV9vcGVyYW5kLCB0MCkKICAgICBjaTJmIHQwLCBmdDAKQEAgLTE5NzIsMTM0ICsxNDQ4LDYg
QEAgd2FzbU9wKGkzMl9jbHosIFdhc21JMzJDbHosIG1hY3JvKGN0eCkKICAgICByZXR1cm5pKGN0
eCwgdDEpCiBlbmQpCiAKLXdhc21PcChpNjRfYWRkLCBXYXNtSTY0QWRkLCBtYWNybyhjdHgpCi0g
ICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAg
ICBhZGRxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9z
dWIsIFdhc21JNjRTdWIsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0g
ICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIHN1YnEgdDEsIHQwCi0gICAgcmV0dXJucShj
dHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X211bCwgV2FzbUk2NE11bCwgbWFjcm8oY3R4KQot
ICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0g
ICAgbXVscSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRf
YW5kLCBXYXNtSTY0QW5kLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQot
ICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBhbmRxIHQwLCB0MQotICAgIHJldHVybnEo
Y3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9vciwgV2FzbUk2NE9yLCBtYWNybyhjdHgpCi0g
ICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAg
ICBvcnEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X3hv
ciwgV2FzbUk2NFhvciwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAg
ICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgeG9ycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0
eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfZXEsIFdhc21JNjRFcSwgbWFjcm8oY3R4KQotICAg
IG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAg
Y3FlcSB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVu
ZCkKLQotd2FzbU9wKGk2NF9uZSwgV2FzbUk2NE5lLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0
eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcW5lcSB0MCwg
dDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2Fz
bU9wKGk2NF9sdF9zLCBXYXNtSTY0THRTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9s
aHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWx0IHQwLCB0MSwgdDIK
LSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0
X2xlX3MsIFdhc21JNjRMZVMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDAp
Ci0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxbHRlcSB0MCwgdDEsIHQyCi0gICAg
YW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9sdF91
LCBXYXNtSTY0THRVLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAg
IG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWIgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwg
dDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfbGVfdSwgV2FzbUk2
NExlVSwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEo
Y3R4LCBtX3JocywgdDEpCi0gICAgY3FiZXEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAg
ICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfZ3RfcywgV2FzbUk2NEd0Uywg
bWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBt
X3JocywgdDEpCi0gICAgY3FndCB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVy
bmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9nZV9zLCBXYXNtSTY0R2VTLCBtYWNybyhj
dHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0
MSkKLSAgICBjcWd0ZXEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0
eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfZ3RfdSwgV2FzbUk2NEd0VSwgbWFjcm8oY3R4KQot
ICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0g
ICAgY3FhIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQot
ZW5kKQotCi13YXNtT3AoaTY0X2dlX3UsIFdhc21JNjRHZVUsIG1hY3JvKGN0eCkKLSAgICBtbG9h
ZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxYWVx
IHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQot
Ci13YXNtT3AoaTY0X2NseiwgV2FzbUk2NENseiwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgs
IG1fb3BlcmFuZCwgdDApCi0gICAgbHpjbnRxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkK
LWVuZCkKLQogd2FzbU9wKGYzMl9hZGQsIFdhc21GMzJBZGQsIG1hY3JvKGN0eCkKICAgICBtbG9h
ZGYoY3R4LCBtX2xocywgZnQwKQogICAgIG1sb2FkZihjdHgsIG1fcmhzLCBmdDEpCkBAIC0yMTQw
LDEzICsxNDg4LDEzIEBAIHdhc21PcChmMzJfbmVnLCBXYXNtRjMyTmVnLCBtYWNybyhjdHgpCiAg
ICAgcmV0dXJuZihjdHgsIGZ0MSkKIGVuZCkKIAotd2FzbU9wKGYzMl9jZWlsLCBXYXNtRjMyQ2Vp
bCwgbWFjcm8oY3R4KQord2FzbVJvdW5kaW5nT3AoZjMyX2NlaWwsIFdhc21GMzJDZWlsLCBtYWNy
byhjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgY2VpbGYgZnQwLCBm
dDEKICAgICByZXR1cm5mKGN0eCwgZnQxKQogZW5kKQogCi13YXNtT3AoZjMyX2Zsb29yLCBXYXNt
RjMyRmxvb3IsIG1hY3JvKGN0eCkKK3dhc21Sb3VuZGluZ09wKGYzMl9mbG9vciwgV2FzbUYzMkZs
b29yLCBtYWNybyhjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgZmxv
b3JmIGZ0MCwgZnQxCiAgICAgcmV0dXJuZihjdHgsIGZ0MSkKQEAgLTIyNDAsMTMgKzE1ODgsMTMg
QEAgd2FzbU9wKGY2NF9uZWcsIFdhc21GNjROZWcsIG1hY3JvKGN0eCkKICAgICByZXR1cm5kKGN0
eCwgZnQxKQogZW5kKQogCi13YXNtT3AoZjY0X2NlaWwsIFdhc21GNjRDZWlsLCBtYWNybyhjdHgp
Cit3YXNtUm91bmRpbmdPcChmNjRfY2VpbCwgV2FzbUY2NENlaWwsIG1hY3JvKGN0eCkKICAgICBt
bG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICBjZWlsZCBmdDAsIGZ0MQogICAgIHJldHVy
bmQoY3R4LCBmdDEpCiBlbmQpCiAKLXdhc21PcChmNjRfZmxvb3IsIFdhc21GNjRGbG9vciwgbWFj
cm8oY3R4KQord2FzbVJvdW5kaW5nT3AoZjY0X2Zsb29yLCBXYXNtRjY0Rmxvb3IsIG1hY3JvKGN0
eCkKICAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICBmbG9vcmQgZnQwLCBmdDEK
ICAgICByZXR1cm5kKGN0eCwgZnQxKQpAQCAtMjMwMSw1MCArMTY0OSwyMCBAQCB3YXNtT3AoZjY0
X2dlLCBXYXNtRjY0R2UsIG1hY3JvKGN0eCkKIGVuZCkKIAogd2FzbU9wKGkzMl93cmFwX2k2NCwg
V2FzbUkzMldyYXBJNjQsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQw
KQotICAgIHJldHVybmkoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9leHRlbmRfc19pMzIs
IFdhc21JNjRFeHRlbmRTSTMyLCBtYWNybyhjdHgpCi0gICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5k
LCB0MCkKLSAgICBzeGkycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdh
c21PcChpNjRfZXh0ZW5kX3VfaTMyLCBXYXNtSTY0RXh0ZW5kVUkzMiwgbWFjcm8oY3R4KQogICAg
IG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgenhpMnEgdDAsIHQxCi0gICAgcmV0dXJu
cShjdHgsIHQxKQorICAgIHJldHVybmkoY3R4LCB0MCkKIGVuZCkKIAogd2FzbU9wKGkzMl9leHRl
bmQ4X3MsIFdhc21JMzJFeHRlbmQ4UywgbWFjcm8oY3R4KQogICAgIG1sb2FkaShjdHgsIG1fb3Bl
cmFuZCwgdDApCiAgICAgc3hiMmkgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQorICAgIHJl
dHVybmkoY3R4LCB0MSkKIGVuZCkKIAogd2FzbU9wKGkzMl9leHRlbmQxNl9zLCBXYXNtSTMyRXh0
ZW5kMTZTLCBtYWNybyhjdHgpCiAgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICBz
eGgyaSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfZXh0
ZW5kOF9zLCBXYXNtSTY0RXh0ZW5kOFMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29w
ZXJhbmQsIHQwKQotICAgIHN4YjJxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkK
LQotd2FzbU9wKGk2NF9leHRlbmQxNl9zLCBXYXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhjdHgpCi0g
ICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBzeGgycSB0MCwgdDEKLSAgICByZXR1
cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfZXh0ZW5kMzJfcywgV2FzbUk2NEV4dGVu
ZDE2UywgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgc3hp
MnEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQorICAgIHJldHVybmkoY3R4LCB0MSkKIGVu
ZCkKIAogd2FzbU9wKGYzMl9jb252ZXJ0X3NfaTMyLCBXYXNtRjMyQ29udmVydFNJMzIsIG1hY3Jv
KGN0eCkKQEAgLTIzNTMsNyArMTY3MSw3IEBAIHdhc21PcChmMzJfY29udmVydF9zX2kzMiwgV2Fz
bUYzMkNvbnZlcnRTSTMyLCBtYWNybyhjdHgpCiAgICAgcmV0dXJuZihjdHgsIGZ0MCkKIGVuZCkK
IAotd2FzbU9wKGYzMl9jb252ZXJ0X3NfaTY0LCBXYXNtRjMyQ29udmVydFNJNjQsIG1hY3JvKGN0
eCkKK3dhc21JNjRUb0ZPcChmMzJfY29udmVydF9zX2k2NCwgV2FzbUYzMkNvbnZlcnRTSTY0LCBt
YWNybyhjdHgpCiAgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICBjcTJmcyB0MCwg
ZnQwCiAgICAgcmV0dXJuZihjdHgsIGZ0MCkKQEAgLTIzNzcsNyArMTY5NSw3IEBAIHdhc21PcChm
NjRfY29udmVydF9zX2kzMiwgV2FzbUY2NENvbnZlcnRTSTMyLCBtYWNybyhjdHgpCiAgICAgcmV0
dXJuZChjdHgsIGZ0MCkKIGVuZCkKIAotd2FzbU9wKGY2NF9jb252ZXJ0X3NfaTY0LCBXYXNtRjY0
Q29udmVydFNJNjQsIG1hY3JvKGN0eCkKK3dhc21JNjRUb0ZPcChmNjRfY29udmVydF9zX2k2NCwg
V2FzbUY2NENvbnZlcnRTSTY0LCBtYWNybyhjdHgpCiAgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5k
LCB0MCkKICAgICBjcTJkcyB0MCwgZnQwCiAgICAgcmV0dXJuZChjdHgsIGZ0MCkKQEAgLTIzODks
MzQgKzE3MDcsMjkgQEAgd2FzbU9wKGY2NF9wcm9tb3RlX2YzMiwgV2FzbUY2NFByb21vdGVGMzIs
IG1hY3JvKGN0eCkKICAgICByZXR1cm5kKGN0eCwgZnQxKQogZW5kKQogCi13YXNtT3AoZjY0X3Jl
aW50ZXJwcmV0X2k2NCwgV2FzbUY2NFJlaW50ZXJwcmV0STY0LCBtYWNybyhjdHgpCi0gICAgbWxv
YWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBmcTJkIHQwLCBmdDAKLSAgICByZXR1cm5kKGN0
eCwgZnQwKQotZW5kKQotCiB3YXNtT3AoaTMyX3JlaW50ZXJwcmV0X2YzMiwgV2FzbUkzMlJlaW50
ZXJwcmV0RjMyLCBtYWNybyhjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAg
ICAgZmYyaSBmdDAsIHQwCiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQogCi13YXNtT3AoaTY0
X3JlaW50ZXJwcmV0X2Y2NCwgV2FzbUk2NFJlaW50ZXJwcmV0RjY0LCBtYWNybyhjdHgpCi0gICAg
bWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0gICAgZmQycSBmdDAsIHQwCi0gICAgcmV0dXJu
cShjdHgsIHQwKQotZW5kKQotCiBtYWNybyBkcm9wS2VlcChzdGFydE9mZnNldCwgZHJvcCwga2Vl
cCkKICAgICBsc2hpZnRpIDMsIHN0YXJ0T2Zmc2V0CiAgICAgc3VicCBjZnIsIHN0YXJ0T2Zmc2V0
LCBzdGFydE9mZnNldAogICAgIG5lZ2kgZHJvcAoraWYgSlNWQUxVRTY0CiAgICAgc3hpMnEgZHJv
cCwgZHJvcAorZW5kCiAKIC5jb3B5TG9vcDoKICAgICBidGl6IGtlZXAsIC5kb25lCitpZiBKU1ZB
TFVFNjQKICAgICBsb2FkcSBbc3RhcnRPZmZzZXQsIGRyb3AsIDhdLCB0NgogICAgIHN0b3JlcSB0
NiwgW3N0YXJ0T2Zmc2V0XQorZWxzZQorICAgIGxvYWQyaWEgW3N0YXJ0T2Zmc2V0LCBkcm9wLCA4
XSwgdDUsIHQ2CisgICAgc3RvcmUyaWEgdDUsIHQ2LCBbc3RhcnRPZmZzZXRdCitlbmQKICAgICBz
dWJpIDEsIGtlZXAKICAgICBzdWJwIDgsIHN0YXJ0T2Zmc2V0CiAgICAgam1wIC5jb3B5TG9vcApA
QCAtMjQzNCwzODkgKzE3NDcsNiBAQCB3YXNtT3AoZHJvcF9rZWVwLCBXYXNtRHJvcEtlZXAsIG1h
Y3JvKGN0eCkKICAgICBkaXNwYXRjaChjdHgpCiBlbmQpCiAKLW1hY3JvIHdhc21BdG9taWNCaW5h
cnlSTVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmks
IGZucSkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2Fz
bUk2NEF0b21pY1JtdzgldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxv
YWRpKGN0eCwgbV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEp
Ci0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQwKQotICAgICAgICBlbWl0Q2hlY2tBbmRQ
cmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgsIHQzLCB0MSwgMSkKLSAgICAgICAgZm5iKHQw
LCBbdDNdLCB0MiwgdDUsIHQxKQotICAgICAgICBhbmRxIDB4ZmYsIHQwICMgRklYTUU6IFplcm9F
eHRlbmQ4VG82NAotICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmLCAub2sg
ZW5kKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdhc21PcChpNjRf
YXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzE2JXVwcGVy
Q2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwg
dDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEoY3R4
LCBtX3ZhbHVlLCB0MCkKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdP
ZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDIpCi0gICAgICAgIGZuaCh0MCwg
W3QzXSwgdDIsIHQ1LCB0MSkKLSAgICAgICAgYW5kcSAweGZmZmYsIHQwICMgRklYTUU6IFplcm9F
eHRlbmQxNlRvNjQKLSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZmZmLCAu
b2sgZW5kKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdhc21PcChp
NjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzMyJXVw
cGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRl
ciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEo
Y3R4LCBtX3ZhbHVlLCB0MCkKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRp
bmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDQpCi0gICAgICAgIGZuaSh0
MCwgW3QzXSwgdDIsIHQ1LCB0MSkKLSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwg
MHhmZmZmZmZmZiwgLm9rIGVuZCkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkK
LSAgICB3YXNtT3AoaTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0b21p
Y1JtdyV1cHBlckNhc2VPcGNvZGUlLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1f
cG9pbnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBt
bG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50
ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDgpCi0gICAgICAg
IGZucSh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAg
IGVuZCkKLWVuZAotCi1tYWNybyB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMobG93
ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuaSwgZm5xKQotICAgIHdhc21BdG9taWNC
aW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsCi0gICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBpZiBYODZf
NjQKLSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgotICAgICAgICAgICAgICAgIGxv
YWRiIG1lbSwgdDBHUFIKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIG1vdmUg
dDBHUFIsIHQyR1BSCi0gICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKLSAgICAgICAg
ICAgICAgICBiYXRvbWljd2Vha2Nhc2IgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCi0gICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBsb2FkbGlua2Fj
cWIgbWVtLCB0MUdQUgotICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BSKQot
ICAgICAgICAgICAgICAgIHN0b3JlY29uZHJlbGIgdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAg
ICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKLSAgICAgICAgICAgICAgICBtb3ZlIHQxR1BS
LCB0MEdQUgotICAgICAgICAgICAgZW5kCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBH
UFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIGlmIFg4Nl82NAotICAg
ICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCi0gICAgICAgICAgICAgICAgbG9hZGggbWVt
LCB0MEdQUgotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwg
dDJHUFIKLSAgICAgICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgICAg
IGJhdG9taWN3ZWFrY2FzaCB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKLSAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxaCBtZW0s
IHQxR1BSCi0gICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAg
ICAgICAgICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgICAg
IGJpbmVxIHQ1R1BSLCAwLCAubG9vcAotICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BS
Ci0gICAgICAgICAgICBlbmQKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgaWYgWDg2XzY0Ci0gICAgICAgICAg
ICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKLSAgICAgICAgICAgICAgICBsb2FkaSBtZW0sIHQwR1BS
Ci0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgot
ICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAgICAgYmF0b21p
Y3dlYWtjYXNpIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAotICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbG9hZGxpbmthY3FpIG1lbSwgdDFHUFIK
LSAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgICAg
ICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICAgICAgYmluZXEg
dDVHUFIsIDAsIC5sb29wCi0gICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAgICAg
ICAgICAgIGVuZAotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BS
LCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBpZiBYODZfNjQKLSAgICAgICAgICAgICAgICBt
b3ZlIHQwR1BSLCB0NUdQUgotICAgICAgICAgICAgICAgIGxvYWRxIG1lbSwgdDBHUFIKLSAgICAg
ICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCi0gICAgICAg
ICAgICAgICAgZm5xKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgICAgICBiYXRvbWljd2Vha2Nh
c3EgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAubG9vcDoKLSAgICAgICAgICAgICAgICBsb2FkbGlua2FjcXEgbWVtLCB0MUdQUgotICAgICAg
ICAgICAgICAgIGZucSh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgICAgIHN0b3Jl
Y29uZHJlbHEgdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwg
MCwgLmxvb3AKLSAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAgICAgICAgICAg
ZW5kCi0gICAgICAgIGVuZCkKLWVuZAotCi1pZiBYODZfNjQKLSAgICB3YXNtQXRvbWljQmluYXJ5
Uk1XT3BzKF9hZGQsIEFkZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikgYXRvbWljeGNoZ2FkZGIgdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQw
R1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRoIHQwR1BSLCBtZW0g
ZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9t
aWN4Y2hnYWRkaSB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJH
UFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZHEgdDBHUFIsIG1lbSBlbmQpCi0gICAgd2Fz
bUF0b21pY0JpbmFyeVJNV09wcyhfc3ViLCBTdWIsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJiIHQwR1BSLCBtZW0gZW5kLAotICAg
ICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3Vi
aCB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikgYXRvbWljeGNoZ3N1YmkgdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQw
R1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJxIHQwR1BSLCBtZW0g
ZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hjaGcsIFhjaGcsCi0gICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdiIHQwR1BSLCBt
ZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBh
dG9taWN4Y2hnaCB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJH
UFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2kgdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdxIHQwR1BSLCBt
ZW0gZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYW5kLCBBbmQs
Ci0gICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgIGFuZGkgdDVHUFIsIHQy
R1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAgICAg
ICAgYW5kcSB0NUdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlS
TVdPcHNXaXRoV2Vha0NBUyhfb3IsIE9yLAotICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCi0g
ICAgICAgICAgICBvcmkgdDVHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8o
dDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgb3JxIHQ1R1BSLCB0MkdQUgotICAgICAgICBlbmQp
Ci0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwKLSAgICAg
ICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgeG9yaSB0NUdQUiwgdDJHUFIKLSAg
ICAgICAgZW5kLAotICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICB4b3Jx
IHQ1R1BSLCB0MkdQUgotICAgICAgICBlbmQpCi1lbHNpZiBBUk02NEUKLSAgICB3YXNtQXRvbWlj
QmluYXJ5Uk1XT3BzKF9hZGQsIEFkZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGIgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAg
ICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRk
aCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BS
LCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAg
ICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2Fk
ZHEgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3N1
YiwgU3ViLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQot
ICAgICAgICAgICAgbmVncSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGIgdDBHUFIs
IG1lbSwgdDBHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQ
UiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgbmVncSB0MEdQUgotICAgICAgICAgICAgYXRv
bWljeGNoZ2FkZGggdDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNy
byh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgbmVncSB0MEdQ
UgotICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAg
ZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAg
ICAgICAgICAgbmVncSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2FkZHEgdDBHUFIsIG1l
bSwgdDBHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX2FuZCwg
QW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAg
ICAgICAgICAgbm90cSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFyYiB0MEdQUiwg
bWVtLCB0MEdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BS
LCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBub3RxIHQwR1BSCi0gICAgICAgICAgICBhdG9t
aWN4Y2hnY2xlYXJoIHQwR1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFj
cm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIG5vdHEgdDBH
UFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcmkgdDBHUFIsIG1lbSwgdDBHUFIKLSAgICAg
ICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQot
ICAgICAgICAgICAgbm90cSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFycSB0MEdQ
UiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhf
b3IsIE9yLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBh
dG9taWN4Y2hnb3JiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIs
IG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29yaCB0MEdQUiwgbWVtLCB0MEdQ
UiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0
b21pY3hjaGdvcmkgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnb3JxIHQwR1BSLCBtZW0sIHQwR1BS
IGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94b3IsIFhvciwKLSAgICAgICAgbWFj
cm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmIgdDBHUFIs
IG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIs
IHQxR1BSKSBhdG9taWN4Y2hneG9yaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JpIHQwR1BS
LCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikgYXRvbWljeGNoZ3hvcnEgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQotICAgIHdhc21B
dG9taWNCaW5hcnlSTVdPcHMoX3hjaGcsIFhjaGcsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwK
LSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNo
Z2ggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQ
UiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdxIHQw
R1BSLCBtZW0sIHQwR1BSIGVuZCkKLWVsc2UKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0
aFdlYWtDQVMoX2FkZCwgQWRkLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQot
ICAgICAgICAgICAgYWRkaSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAg
ICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIGFkZHEgdDBHUFIsIHQx
R1BSLCB0MkdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhX
ZWFrQ0FTKF9zdWIsIFN1YiwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAg
ICAgICAgICAgIHN1YmkgdDFHUFIsIHQwR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAg
IG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBzdWJxIHQxR1BSLCB0MEdQ
UiwgdDJHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vh
a0NBUyhfeGNoZywgWGNoZywKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAg
ICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8o
dDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCi0gICAg
ICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FuZCwgQW5k
LAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgYW5kaSB0
MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQx
R1BSLCB0MkdQUikKLSAgICAgICAgICAgIGFuZHEgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAg
ICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9vciwgT3IsCi0g
ICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBvcmkgdDBHUFIs
IHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwg
dDJHUFIpCi0gICAgICAgICAgICBvcnEgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQp
Ci0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwKLSAgICAg
ICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIHhvcmkgdDBHUFIsIHQx
R1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJH
UFIpCi0gICAgICAgICAgICB4b3JxIHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQot
ZW5kCi0KLW1hY3JvIHdhc21BdG9taWNDb21wYXJlRXhjaGFuZ2VPcHMobG93ZXJDYXNlT3Bjb2Rl
LCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmksIGZucSkKLSAgICB3YXNtT3AoaTY0X2F0
b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzgldXBwZXJDYXNl
T3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykK
LSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShjdHgsIG1f
ZXhwZWN0ZWQsIHQwKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICAgICAg
ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQoY3R4LCB0MywgdDEsIDEpCi0g
ICAgICAgIGZuYih0MCwgdDIsIFt0M10sIHQ1LCB0MSkKLSAgICAgICAgYW5kcSAweGZmLCB0MCAj
IEZJWE1FOiBaZXJvRXh0ZW5kOFRvNjQKLSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0
MCwgMHhmZiwgLm9rIGVuZCkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAg
ICB3YXNtT3AoaTY0X2F0b21pY19ybXcxNiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9t
aWNSbXcxNiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4
LCBtX3BvaW50ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAg
ICAgbWxvYWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCi0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFs
dWUsIHQyKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdp
dGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgMikKLSAgICAgICAgZm5oKHQwLCB0MiwgW3Qz
XSwgdDUsIHQxKQotICAgICAgICBhbmRxIDB4ZmZmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDE2
VG82NAotICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmZmYsIC5vayBlbmQp
Ci0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi0gICAgd2FzbU9wKGk2NF9hdG9t
aWNfcm13MzIlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MzIldXBwZXJDYXNl
T3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykK
LSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShjdHgsIG1f
ZXhwZWN0ZWQsIHQwKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICAgICAg
ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2so
Y3R4LCB0MywgdDEsIDQpCi0gICAgICAgIGZuaSh0MCwgdDIsIFt0M10sIHQ1LCB0MSkKLSAgICAg
ICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZmZmZmZmZiwgLm9rIGVuZCkKLSAgICAg
ICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcl
bG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0b21pY1JtdyV1cHBlckNhc2VPcGNvZGUlLCBtYWNy
byhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdnZXR1
KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkK
LSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAgICAgIGVtaXRDaGVja0FuZFBy
ZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA4
KQotICAgICAgICBmbnEodDAsIHQyLCBbdDNdLCB0NSwgdDEpCi0gICAgICAgIHJldHVybnEoY3R4
LCB0MCkKLSAgICBlbmQpCi1lbmQKLQotIyB0MEdQUiA9PiBleHBlY3RlZCwgdDJHUFIgPT4gdmFs
dWUsIG1lbSA9PiBtZW1vcnkgcmVmZXJlbmNlCi13YXNtQXRvbWljQ29tcGFyZUV4Y2hhbmdlT3Bz
KF9jbXB4Y2hnLCBDbXB4Y2hnLAotICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwg
dDFHUFIpCi0gICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKLSAgICAgICAgICAgIGJxYSB0MEdQ
UiAsIDB4ZmYsIC5mYWlsCi0gICAgICAgICAgICBhdG9taWN3ZWFrY2FzYiB0MEdQUiwgdDJHUFIs
IG1lbQotICAgICAgICAgICAgam1wIC5kb25lCi0gICAgICAgIC5mYWlsOgotICAgICAgICAgICAg
YXRvbWljbG9hZGIgbWVtLCB0MEdQUgotICAgICAgICAuZG9uZToKLSAgICAgICAgZWxzZQotICAg
ICAgICAubG9vcDoKLSAgICAgICAgICAgIGxvYWRsaW5rYWNxYiBtZW0sIHQxR1BSCi0gICAgICAg
ICAgICBicW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCi0gICAgICAgICAgICBzdG9yZWNvbmRyZWxi
IHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAg
ICAgICAgICAgam1wIC5sb29wCi0gICAgICAgIC5mYWlsOgotICAgICAgICAgICAgc3RvcmVjb25k
cmVsYiB0NUdQUiwgdDFHUFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUK
LSAgICAgICAgICAgIGptcCAubG9vcAotICAgICAgICAuZG9uZToKLSAgICAgICAgICAgIG1vdmUg
dDFHUFIsIHQwR1BSCi0gICAgICAgIGVuZAotICAgIGVuZCwKLSAgICBtYWNybyh0MEdQUiwgdDJH
UFIsIG1lbSwgdDVHUFIsIHQxR1BSKQotICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRFCi0gICAg
ICAgICAgICBicWEgdDBHUFIsIDB4ZmZmZiwgLmZhaWwKLSAgICAgICAgICAgIGF0b21pY3dlYWtj
YXNoIHQwR1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICBqbXAgLmRvbmUKLSAgICAgICAgLmZh
aWw6Ci0gICAgICAgICAgICBhdG9taWNsb2FkaCBtZW0sIHQwR1BSCi0gICAgICAgIC5kb25lOgot
ICAgICAgICBlbHNlCi0gICAgICAgIC5sb29wOgotICAgICAgICAgICAgbG9hZGxpbmthY3FoIG1l
bSwgdDFHUFIKLSAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKLSAgICAgICAg
ICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVH
UFIsIDAsIC5kb25lCi0gICAgICAgICAgICBqbXAgLmxvb3AKLSAgICAgICAgLmZhaWw6Ci0gICAg
ICAgICAgICBzdG9yZWNvbmRyZWxoIHQ1R1BSLCB0MUdQUiwgbWVtCi0gICAgICAgICAgICBiaWVx
IHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAgICAgIC5kb25lOgot
ICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAgICAgICAgZW5kCi0gICAgZW5kLAotICAg
IG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgIGlmIFg4Nl82
NCBvciBBUk02NEUKLSAgICAgICAgICAgIGJxYSB0MEdQUiwgMHhmZmZmZmZmZiwgLmZhaWwKLSAg
ICAgICAgICAgIGF0b21pY3dlYWtjYXNpIHQwR1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICBq
bXAgLmRvbmUKLSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAgICBhdG9taWNsb2FkaSBtZW0sIHQw
R1BSCi0gICAgICAgIC5kb25lOgotICAgICAgICBlbHNlCi0gICAgICAgIC5sb29wOgotICAgICAg
ICAgICAgbG9hZGxpbmthY3FpIG1lbSwgdDFHUFIKLSAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0
MUdQUiwgLmZhaWwKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbGkgdDVHUFIsIHQyR1BSLCBtZW0K
LSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBqbXAgLmxvb3AK
LSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0MUdQUiwg
bWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5s
b29wCi0gICAgICAgIC5kb25lOgotICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAgICAg
ICAgZW5kCi0gICAgZW5kLAotICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFH
UFIpCi0gICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKLSAgICAgICAgICAgIGF0b21pY3dlYWtj
YXNxIHQwR1BSLCB0MkdQUiwgbWVtCi0gICAgICAgIGVsc2UKLSAgICAgICAgLmxvb3A6Ci0gICAg
ICAgICAgICBsb2FkbGlua2FjcXEgbWVtLCB0MUdQUgotICAgICAgICAgICAgYnFuZXEgdDBHUFIs
IHQxR1BSLCAuZmFpbAotICAgICAgICAgICAgc3RvcmVjb25kcmVscSB0NUdQUiwgdDJHUFIsIG1l
bQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGptcCAubG9v
cAotICAgICAgICAuZmFpbDoKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbHEgdDVHUFIsIHQxR1BS
LCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBqbXAg
Lmxvb3AKLSAgICAgICAgLmRvbmU6Ci0gICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAg
ICAgICBlbmQKLSAgICBlbmQpCi0KIHdhc21PcChhdG9taWNfZmVuY2UsIFdhc21Ecm9wS2VlcCwg
bWFjcm8oY3R4KQogICAgIGZlbmNlCiAgICAgZGlzcGF0Y2goY3R4KQpAQCAtMjg0NSw5ICsxNzc1
LDE0IEBAIG1hY3JvIGNvbW1vbkNhdGNoSW1wbChjdHgsIHN0b3JlV2FzbUluc3RhbmNlKQogICAg
IGNvbnZlcnRDYWxsZWVUb1ZNKHQzKQogICAgIHJlc3RvcmVDYWxsZWVTYXZlc0Zyb21WTUVudHJ5
RnJhbWVDYWxsZWVTYXZlc0J1ZmZlcih0MywgdDApCiAKLSAgICBsb2FkcCBWTTo6Y2FsbGVlRm9y
V2FzbUNhdGNoW3QzXSwgd3MxCi0gICAgc3RvcmVwIDAsIFZNOjpjYWxsZWVGb3JXYXNtQ2F0Y2hb
dDNdCi0gICAgc3RvcmVwIHdzMSwgQ2FsbGVlW2Nmcl0KKyAgICBsb2FkcCBWTTo6Y2FsbGVlRm9y
V2FzbUNhdGNoICsgUGF5bG9hZE9mZnNldFt0M10sIHdzMQorICAgIHN0b3JlcCAwLCBWTTo6Y2Fs
bGVlRm9yV2FzbUNhdGNoICsgUGF5bG9hZE9mZnNldFt0M10KKyAgICBzdG9yZXAgd3MxLCBDYWxs
ZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0KK2lmIG5vdCBKU1ZBTFVFNjQKKyAgICBsb2FkaSBWTTo6
Y2FsbGVlRm9yV2FzbUNhdGNoICsgVGFnT2Zmc2V0W3QzXSwgd3MxCisgICAgc3RvcmVpIEVtcHR5
VmFsdWVUYWcsIFZNOjpjYWxsZWVGb3JXYXNtQ2F0Y2ggKyBUYWdPZmZzZXRbdDNdCisgICAgc3Rv
cmVpIHdzMSwgQ2FsbGVlICsgVGFnT2Zmc2V0W2Nmcl0KK2VuZAogCiAgICAgbG9hZHAgVk06OmNh
bGxGcmFtZUZvckNhdGNoW3QzXSwgY2ZyCiAgICAgc3RvcmVwIDAsIFZNOjpjYWxsRnJhbWVGb3JD
YXRjaFt0M10KQEAgLTI4ODYsOCArMTgyMSwxMyBAQCBtYWNybyBjYXRjaEltcGwoY3R4LCBzdG9y
ZVdhc21JbnN0YW5jZSkKIAogLmNvcHlMb29wOgogICAgIGJ0aXogdDMsIC5kb25lCitpZiBKU1ZB
TFVFNjQKICAgICBsb2FkcSBbdDFdLCB0NgogICAgIHN0b3JlcSB0NiwgW3QyXQorZWxzZQorICAg
IGxvYWQyaWEgW3QxXSwgdDUsIHQ2CisgICAgc3RvcmUyaWEgdDUsIHQ2LCBbdDJdCitlbmQKICAg
ICBzdWJpIDEsIHQzCiAgICAgIyBGSVhNRTogVXNlIGFybSBzdG9yZS1hZGQvc3ViIGluc3RydWN0
aW9ucyBpbiB3YXNtIExMSW50IGNhdGNoCiAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxMjEwCkBAIC0yOTE1LDMgKzE4NTUsMTAgQEAgZW5kKQogY29tbW9u
V2FzbU9wKHdhc21fY2F0Y2hfYWxsX25vX3RscywgV2FzbUNhdGNoQWxsLCBtYWNybygpIGVuZCwg
bWFjcm8oY3R4KQogICAgIGNhdGNoQWxsSW1wbChjdHgsIG1hY3JvKGluc3RhbmNlKSBlbmQpCiBl
bmQpCisKKyMgVmFsdWUtcmVwcmVzZW50YXRpb24tc3BlY2lmaWMgY29kZS4KK2lmIEpTVkFMVUU2
NAorICAgIGluY2x1ZGUgV2ViQXNzZW1ibHk2NAorZWxzZQorICAgIGluY2x1ZGUgV2ViQXNzZW1i
bHkzMl82NAorZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2Vi
QXNzZW1ibHkzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1i
bHkzMl82NC5hc20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xNTgz
MDRlOWZhMTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
V2ViQXNzZW1ibHkzMl82NC5hc20KQEAgLTAsMCArMSwxMTI5IEBACisjIENvcHlyaWdodCAoQykg
MjAxMS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChD
KSAyMDIxIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisj
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIENvbnN0YW50cworCitjb25zdCBNc3dPZmZzZXQg
PSA0Citjb25zdCBMc3dPZmZzZXQgPSAwCisKKyMgT3Bjb2RlcyB0aGF0IHNob3VsZCBldmVudHVh
bGx5IGJlIHNoYXJlZCB3aXRoIEpTIGxsaW50CisKK3dhc21PcChtb3YsIFdhc21Nb3YsIG1hY3Jv
KGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9zcmMsIHQxLCB0MCkKKyAgICByZXR1cm4yaShjdHgs
IHQxLCB0MCkKK2VuZCkKKworIyBXYXNtIHNwZWNpZmljIGJ5dGVjb2RlcworCittYWNybyBlbWl0
Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChwb2ludGVyLCBvZmZzZXQsIHNpemUp
CisgICAgIyBUaGlzIG1hY3JvIHVwZGF0ZXMgJ3BvaW50ZXInIHRvIHRhcmdldCBhZGRyZXNzLCBh
bmQgbWF5IHRocmFzaCAnb2Zmc2V0JworaWYgQVJNdjcKKyAgICAjIE5vdCBlbm91Z2ggcmVnaXN0
ZXJzIG9uIGFybSB0byBrZWVwIHRoZSBtZW1vcnkgYmFzZSBhbmQgc2l6ZSBpbiBwaW5uZWQKKyAg
ICAjIHJlZ2lzdGVycywgc28gbG9hZCB0aGVtIG9uIGVhY2ggYWNjZXNzIGluc3RlYWQuIEZJWE1F
OiBpbXByb3ZlIHRoaXMuCisgICAgYWRkcHMgb2Zmc2V0LCBwb2ludGVyCisgICAgYmNzIC50aHJv
dworICAgIGFkZHBzIHNpemUgLSAxLCBwb2ludGVyLCBvZmZzZXQgIyBVc2Ugb2Zmc2V0IGFzIHNj
cmF0Y2ggcmVnaXN0ZXIKKyAgICBiY3MgLnRocm93CisgICAgYnBiIG9mZnNldCwgV2FzbTo6SW5z
dGFuY2U6Om1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplW3dhc21JbnN0YW5jZV0sIC5jb250aW51
YXRpb24KKy50aHJvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2Vz
cykKKy5jb250aW51YXRpb246CisgICAgYWRkcCBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRNZW1v
cnlbd2FzbUluc3RhbmNlXSwgcG9pbnRlcgorZWxzZQorICAgIGNyYXNoKCkKK2VuZAorZW5kCisK
K21hY3JvIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVu
dENoZWNrKHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKKyAgICAjIFRoaXMgbWFjcm8gdXBkYXRlcyAn
cG9pbnRlcicgdG8gdGFyZ2V0IGFkZHJlc3MsIGFuZCBtYXkgdGhyYXNoICdvZmZzZXQnCitpZiBB
Uk12NworICAgICMgTm90IGVub3VnaCByZWdpc3RlcnMgb24gYXJtIHRvIGtlZXAgdGhlIG1lbW9y
eSBiYXNlIGFuZCBzaXplIGluIHBpbm5lZAorICAgICMgcmVnaXN0ZXJzLCBzbyBsb2FkIHRoZW0g
b24gZWFjaCBhY2Nlc3MgaW5zdGVhZC4gRklYTUU6IGltcHJvdmUgdGhpcy4KKyAgICBhZGRwcyBv
ZmZzZXQsIHBvaW50ZXIKKyAgICBiY3MgLnRocm93CisgICAgYWRkcHMgc2l6ZSAtIDEsIHBvaW50
ZXIsIG9mZnNldCAjIFVzZSBvZmZzZXQgYXMgc2NyYXRjaCByZWdpc3RlcgorICAgIGJjcyAudGhy
b3cKKyAgICBicGIgb2Zmc2V0LCBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRCb3VuZHNDaGVja2lu
Z1NpemVbd2FzbUluc3RhbmNlXSwgLmNvbnRpbnVhdGlvbgorLnRocm93OgorICAgIHRocm93RXhj
ZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNjZXNzKQorLmNvbnRpbnVhdGlvbjoKKyAgICBhZGRw
IFdhc206Okluc3RhbmNlOjptX2NhY2hlZE1lbW9yeVt3YXNtSW5zdGFuY2VdLCBwb2ludGVyCisg
ICAgYnRwbnogcG9pbnRlciwgKHNpemUgLSAxKSwgLnRocm93CitlbHNlCisgICAgY3Jhc2goKQor
ZW5kCitlbmQKKworbWFjcm8gd2FzbUxvYWRPcChuYW1lLCBzdHJ1Y3QsIHNpemUsIGZuKQorICAg
IHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9w
b2ludGVyLCB0MCkKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIGVt
aXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KHQwLCB0MSwgc2l6ZSkKKyAgICAg
ICAgZm4odDAsIHQzLCB0MikKKyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MywgdDIpCisgICAgZW5k
KQorZW5kCisKK3dhc21Mb2FkT3AobG9hZDhfdSwgV2FzbUxvYWQ4VSwgMSwgbWFjcm8oYWRkciwg
ZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGIgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICBt
b3ZlIDAsIGRzdE1zdworZW5kKQord2FzbUxvYWRPcChsb2FkMTZfdSwgV2FzbUxvYWQxNlUsIDIs
IG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRoIExzd09mZnNldFthZGRyXSwg
ZHN0THN3CisgICAgbW92ZSAwLCBkc3RNc3cKK2VuZCkKK3dhc21Mb2FkT3AobG9hZDMyX3UsIFdh
c21Mb2FkMzJVLCA0LCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkaSBMc3dP
ZmZzZXRbYWRkcl0sIGRzdExzdworICAgIG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9w
KGxvYWQ2NF91LCBXYXNtTG9hZDY0VSwgOCwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisg
ICAgIyBNaWdodCBiZSB1bmFsaWduZWQsIHNvIGNhbid0IHVzZSBsb2FkMmlhCisgICAgbG9hZGkg
THN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICBsb2FkaSBNc3dPZmZzZXRbYWRkcl0sIGRzdE1z
dworZW5kKQorCit3YXNtTG9hZE9wKGkzMl9sb2FkOF9zLCBXYXNtSTMyTG9hZDhTLCAxLCBtYWNy
byhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkYnNpIExzd09mZnNldFthZGRyXSwgZHN0
THN3CisgICAgbW92ZSAwLCBkc3RNc3cKK2VuZCkKK3dhc21Mb2FkT3AoaTMyX2xvYWQxNl9zLCBX
YXNtSTMyTG9hZDE2UywgMiwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGhz
aSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAgIG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNt
TG9hZE9wKGk2NF9sb2FkOF9zLCBXYXNtSTY0TG9hZDhTLCAxLCBtYWNybyhhZGRyLCBkc3RNc3cs
IGRzdExzdykKKyAgICBsb2FkYnNpIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAgcnNoaWZ0
aSBkc3RMc3csIDMxLCBkc3RNc3cKK2VuZCkKK3dhc21Mb2FkT3AoaTY0X2xvYWQxNl9zLCBXYXNt
STY0TG9hZDE2UywgMiwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGhzaSBM
c3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAgIHJzaGlmdGkgZHN0THN3LCAzMSwgZHN0TXN3Citl
bmQpCit3YXNtTG9hZE9wKGk2NF9sb2FkMzJfcywgV2FzbUk2NExvYWQzMlMsIDQsIG1hY3JvKGFk
ZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRpIExzd09mZnNldFthZGRyXSwgZHN0THN3Cisg
ICAgcnNoaWZ0aSBkc3RMc3csIDMxLCBkc3RNc3cKK2VuZCkKKworbWFjcm8gd2FzbVN0b3JlT3Ao
bmFtZSwgc3RydWN0LCBzaXplLCBmbikKKyAgICB3YXNtT3AobmFtZSwgc3RydWN0LCBtYWNybyhj
dHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDApCisgICAgICAgIHdnZXR1KGN0
eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGlu
Z09mZnNldCh0MCwgdDEsIHNpemUpCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVlLCB0Mywg
dDIpCisgICAgICAgIGZuKHQzLCB0MiwgdDApCisgICAgICAgIGRpc3BhdGNoKGN0eCkKKyAgICBl
bmQpCitlbmQKKword2FzbVN0b3JlT3Aoc3RvcmU4LCBXYXNtU3RvcmU4LCAxLCBtYWNybyhzcmNN
c3csIHNyY0xzdywgYWRkcikKKyAgICBzdG9yZWIgc3JjTHN3LCBMc3dPZmZzZXRbYWRkcl0KK2Vu
ZCkKK3dhc21TdG9yZU9wKHN0b3JlMTYsIFdhc21TdG9yZTE2LCAyLCBtYWNybyhzcmNNc3csIHNy
Y0xzdywgYWRkcikKKyAgICBzdG9yZWggc3JjTHN3LCBMc3dPZmZzZXRbYWRkcl0KK2VuZCkKK3dh
c21TdG9yZU9wKHN0b3JlMzIsIFdhc21TdG9yZTMyLCA0LCBtYWNybyhzcmNNc3csIHNyY0xzdywg
YWRkcikKKyAgICBzdG9yZWkgc3JjTHN3LCBMc3dPZmZzZXRbYWRkcl0KK2VuZCkKK3dhc21TdG9y
ZU9wKHN0b3JlNjQsIFdhc21TdG9yZTY0LCA4LCBtYWNybyhzcmNNc3csIHNyY0xzdywgYWRkcikK
KyAgICAjIE1pZ2h0IGJlIHVuYWxpZ25lZCwgc28gY2FuJ3QgdXNlIHN0b3JlMmlhCisgICAgc3Rv
cmVpIHNyY0xzdywgTHN3T2Zmc2V0W2FkZHJdCisgICAgc3RvcmVpIHNyY01zdywgTXN3T2Zmc2V0
W2FkZHJdCitlbmQpCisKK3dhc21PcChyZWZfaXNfbnVsbCwgV2FzbVJlZklzTnVsbCwgbWFjcm8o
Y3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX3JlZiwgdDEsIHQwKSAjIHQwIGlzIHVudXNlZAorICAg
IGNpZXEgdDEsIE51bGxUYWcsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorZW5kKQorCit3YXNt
T3AoZ2V0X2dsb2JhbCwgV2FzbUdldEdsb2JhbCwgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206
Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1f
Z2xvYmFsSW5kZXgsIHQxKQorICAgIGxvYWQyaWEgW3QwLCB0MSwgOF0sIHQwLCB0MQorICAgIHJl
dHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3Aoc2V0X2dsb2JhbCwgV2FzbVNldEds
b2JhbCwgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2Fz
bUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQorICAgIG1s
b2FkMmkoY3R4LCBtX3ZhbHVlLCB0MywgdDIpCisgICAgc3RvcmUyaWEgdDIsIHQzLCBbdDAsIHQx
LCA4XQorICAgIGRpc3BhdGNoKGN0eCkKK2VuZCkKKword2FzbU9wKGdldF9nbG9iYWxfcG9ydGFi
bGVfYmluZGluZywgV2FzbUdldEdsb2JhbFBvcnRhYmxlQmluZGluZywgbWFjcm8oY3R4KQorICAg
IGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3
Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQorICAgIGxvYWRwIFt0MCwgdDEsIDhdLCB0MAor
ICAgIGxvYWQyaWEgW3QwXSwgdDAsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQp
CisKK3dhc21PcChzZXRfZ2xvYmFsX3BvcnRhYmxlX2JpbmRpbmcsIFdhc21TZXRHbG9iYWxQb3J0
YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9i
YWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkK
KyAgICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwgdDMsIHQyKQorICAgIGxvYWRwIFt0MCwgdDEsIDhd
LCB0MAorICAgIHN0b3JlMmlhIHQyLCB0MywgW3QwXQorICAgIGRpc3BhdGNoKGN0eCkKK2VuZCkK
KworIyBPcGNvZGVzIHRoYXQgZG9uJ3QgaGF2ZSB0aGUgYGIzb3BgIGVudHJ5IGluIHdhc20uanNv
bi4gVGhpcyBzaG91bGQgYmUga2VwdCBpbiBzeW5jCisKK21hY3JvIGNhbGxEaXZSZW0oZm4pCitp
ZiBBUk12NworICAgIHN1YnAgU3RhY2tBbGlnbm1lbnQsIHNwCisgICAgc3RvcmVwIFBDLCBbc3Bd
CisgICAgY0NhbGw0KGZuKQorICAgIGxvYWRwIFtzcF0sIFBDCisgICAgYWRkcCBTdGFja0FsaWdu
bWVudCwgc3AKK2Vsc2UKKyAgICBlcnJvcgorZW5kCitlbmQKKworIyBpMzIgYmluYXJ5IG9wcwor
Cit3YXNtT3AoaTMyX2Rpdl9zLCBXYXNtSTMyRGl2UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGko
Y3R4LCBtX2xocywgYTApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIGExKQorCisgICAgYnRpeiBh
MSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGJpbmVxIGExLCAtMSwgLnNhZmUKKyAgICBi
aWVxIGEwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAudGhyb3dJbnRlZ2VyT3ZlcmZsb3cKKworLnNh
ZmU6CisgICAgY2FsbERpdlJlbShfc2xvd19wYXRoX3dhc21faTMyX2Rpdl9zKQorICAgIHJldHVy
bmkoY3R4LCByMCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24o
RGl2aXNpb25CeVplcm8pCisKKy50aHJvd0ludGVnZXJPdmVyZmxvdzoKKyAgICB0aHJvd0V4Y2Vw
dGlvbihJbnRlZ2VyT3ZlcmZsb3cpCitlbmQpCisKK3dhc21PcChpMzJfZGl2X3UsIFdhc21JMzJE
aXZVLCBtYWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCBhMCkKKyAgICBtbG9hZGko
Y3R4LCBtX3JocywgYTEpCisKKyAgICBidGl6IGExLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisg
ICAgY2FsbERpdlJlbShfc2xvd19wYXRoX3dhc21faTMyX2Rpdl91KQorICAgIHJldHVybmkoY3R4
LCByMCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNp
b25CeVplcm8pCitlbmQpCisKK3dhc21PcChpMzJfcmVtX3MsIFdhc21JMzJSZW1TLCBtYWNybyAo
Y3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCBhMCkKKyAgICBtbG9hZGkoY3R4LCBtX3Jocywg
YTEpCisKKyAgICBidGl6IGExLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgYmluZXEgYTEs
IC0xLCAuc2FmZQorICAgIGJpbmVxIGEwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAuc2FmZQorCisg
ICAgbW92ZSAwLCByMAorICAgIGptcCAucmV0dXJuCisKKy5zYWZlOgorICAgIGNhbGxEaXZSZW0o
X3Nsb3dfcGF0aF93YXNtX2kzMl9yZW1fcykKKworLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwg
cjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9u
QnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTMyX3JlbV91LCBXYXNtSTMyUmVtVSwgbWFjcm8gKGN0
eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgYTApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIGEx
KQorCisgICAgYnRpeiBhMSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGNhbGxEaXZSZW0o
X3Nsb3dfcGF0aF93YXNtX2kzMl9yZW1fdSkKKyAgICByZXR1cm5pKGN0eCwgcjApCisKKy50aHJv
d0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5k
KQorCisjIGk2NCBiaW5hcnkgb3BzCisKK3dhc21PcChpNjRfYWRkLCBXYXNtSTY0QWRkLCBtYWNy
byhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgs
IG1fcmhzLCB0MywgdDIpCisgICAgYWRkaXMgdDIsIHQwCisgICAgYWRjaSAgdDMsIHQxCisgICAg
cmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfc3ViLCBXYXNtSTY0U3Vi
LCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQy
aShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgc3ViaXMgdDIsIHQwCisgICAgc2JjaSAgdDMsIHQx
CisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfbXVsLCBXYXNt
STY0TXVsLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAg
bWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbXVsaSB0MiwgdDEKKyAgICBtdWxpIHQw
LCB0MworICAgIHVtdWxsaSB0MCwgdDIsIHQwLCB0MgorICAgIGFkZGkgdDEsIHQyCisgICAgYWRk
aSB0MywgdDIKKyAgICByZXR1cm4yaShjdHgsIHQyLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9k
aXZfcywgV2FzbUk2NERpdlMsIG1hY3JvIChjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCBh
MSwgYTApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCBhMywgYTIpCisKKyAgICBidGlueiBhMywg
Lm5vblplcm9EaXZpc29yCisgICAgYnRpeiBhMiwgLnRocm93RGl2aXNpb25CeVplcm8KKworLm5v
blplcm9EaXZpc29yOgorICAgIGJpbmVxIGEzLCAtMSwgLnNhZmUKKyAgICBiaW5lcSBhMiwgLTEs
IC5zYWZlCisgICAgYmluZXEgYTEsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC5zYWZlCisgICAgYnRp
eiBhMCwgLnRocm93SW50ZWdlck92ZXJmbG93CisKKy5zYWZlOgorICAgIGNhbGxEaXZSZW0oX3Ns
b3dfcGF0aF93YXNtX2k2NF9kaXZfcykKKyAgICByZXR1cm4yaShjdHgsIHIxLCByMCkKKworLnRo
cm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCisK
Ky50aHJvd0ludGVnZXJPdmVyZmxvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihJbnRlZ2VyT3ZlcmZs
b3cpCitlbmQpCisKK3dhc21PcChpNjRfZGl2X3UsIFdhc21JNjREaXZVLCBtYWNybyAoY3R4KQor
ICAgIG1sb2FkMmkoY3R4LCBtX2xocywgYTEsIGEwKQorICAgIG1sb2FkMmkoY3R4LCBtX3Jocywg
YTMsIGEyKQorCisgICAgYnRpbnogYTMsIC5ub25aZXJvRGl2aXNvcgorICAgIGJ0aXogYTIsIC50
aHJvd0RpdmlzaW9uQnlaZXJvCisKKy5ub25aZXJvRGl2aXNvcjoKKyAgICBjYWxsRGl2UmVtKF9z
bG93X3BhdGhfd2FzbV9pNjRfZGl2X3UpCisgICAgcmV0dXJuMmkoY3R4LCByMSwgcjApCisKKy50
aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQor
ZW5kKQorCit3YXNtT3AoaTY0X3JlbV9zLCBXYXNtSTY0UmVtUywgbWFjcm8gKGN0eCkKKyAgICBt
bG9hZDJpKGN0eCwgbV9saHMsIGExLCBhMCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIGEzLCBh
MikKKworICAgIGJ0aW56IGEzLCAubm9uWmVyb0Rpdmlzb3IKKyAgICBidGl6IGEyLCAudGhyb3dE
aXZpc2lvbkJ5WmVybworCisubm9uWmVyb0Rpdmlzb3I6CisgICAgYmluZXEgYTMsIC0xLCAuc2Fm
ZQorICAgIGJpbmVxIGEyLCAtMSwgLnNhZmUKKyAgICBiaW5lcSBhMSwgY29uc3RleHByIElOVDMy
X01JTiwgLnNhZmUKKyAgICBidGlueiBhMCwgLnNhZmUKKworICAgIG1vdmUgMCwgcjEKKyAgICBt
b3ZlIDAsIHIwCisgICAgam1wIC5yZXR1cm4KKworLnNhZmU6CisgICAgY2FsbERpdlJlbShfc2xv
d19wYXRoX3dhc21faTY0X3JlbV9zKQorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgcjEs
IHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lv
bkJ5WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9yZW1fdSwgV2FzbUk2NFJlbVUsIG1hY3JvIChj
dHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCBhMSwgYTApCisgICAgbWxvYWQyaShjdHgsIG1f
cmhzLCBhMywgYTIpCisKKyAgICBidGlueiBhMywgLm5vblplcm9EaXZpc29yCisgICAgYnRpeiBh
MiwgLnRocm93RGl2aXNpb25CeVplcm8KKworLm5vblplcm9EaXZpc29yOgorICAgIGNhbGxEaXZS
ZW0oX3Nsb3dfcGF0aF93YXNtX2k2NF9yZW1fdSkKKyAgICByZXR1cm4yaShjdHgsIHIxLCByMCkK
KworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVpl
cm8pCitlbmQpCisKK3dhc21PcChpNjRfYW5kLCBXYXNtSTY0QW5kLCBtYWNybyhjdHgpCisgICAg
bWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0Mywg
dDIpCisgICAgYW5kaSB0MiwgdDAKKyAgICBhbmRpIHQzLCB0MQorICAgIHJldHVybjJpKGN0eCwg
dDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X29yLCBXYXNtSTY0T3IsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQz
LCB0MikKKyAgICBvcmkgdDIsIHQwCisgICAgb3JpIHQzLCB0MQorICAgIHJldHVybjJpKGN0eCwg
dDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3hvciwgV2FzbUk2NFhvciwgbWFjcm8oY3R4KQor
ICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3Jocywg
dDMsIHQyKQorICAgIHhvcmkgdDIsIHQwCisgICAgeG9yaSB0MywgdDEKKyAgICByZXR1cm4yaShj
dHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9zaGwsIFdhc21JNjRTaGwsIG1hY3JvKGN0
eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3Jo
cywgdDIpCisKKyAgICBhbmRpIDB4M2YsIHQyCisgICAgYnRpeiB0MiwgLnJldHVybgorICAgIGJp
YiB0MiwgMzIsIC5sZXNzVGhhbjMyCisKKyAgICBzdWJpIDMyLCB0MgorICAgIGxzaGlmdGkgdDAs
IHQyLCB0MQorICAgIG1vdmUgMCwgdDAKKyAgICBqbXAgLnJldHVybgorCisubGVzc1RoYW4zMjoK
KyAgICBsc2hpZnRpIHQyLCB0MQorICAgIG1vdmUgMzIsIHQzCisgICAgc3ViaSB0MiwgdDMKKyAg
ICB1cnNoaWZ0aSB0MCwgdDMsIHQzCisgICAgb3JpIHQzLCB0MQorICAgIGxzaGlmdGkgdDIsIHQw
CisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChp
NjRfc2hyX3UsIFdhc21JNjRTaHJVLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhz
LCB0MSwgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQyKQorCisgICAgYW5kaSAweDNmLCB0
MgorICAgIGJ0aXogdDIsIC5yZXR1cm4KKyAgICBiaWIgdDIsIDMyLCAubGVzc1RoYW4zMgorCisg
ICAgc3ViaSAzMiwgdDIKKyAgICB1cnNoaWZ0aSB0MSwgdDIsIHQwCisgICAgbW92ZSAwLCB0MQor
ICAgIGptcCAucmV0dXJuCisKKy5sZXNzVGhhbjMyOgorICAgIHVyc2hpZnRpIHQyLCB0MAorICAg
IG1vdmUgMzIsIHQzCisgICAgc3ViaSB0MiwgdDMKKyAgICBsc2hpZnRpIHQxLCB0MywgdDMKKyAg
ICBvcmkgdDMsIHQwCisgICAgdXJzaGlmdGkgdDIsIHQxCisKKy5yZXR1cm46CisgICAgcmV0dXJu
MmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfc2hyX3MsIFdhc21JNjRTaHJTLCBt
YWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWRpKGN0
eCwgbV9yaHMsIHQyKQorCisgICAgYW5kaSAweDNmLCB0MgorICAgIGJ0aXogdDIsIC5yZXR1cm4K
KyAgICBiaWIgdDIsIDMyLCAubGVzc1RoYW4zMgorCisgICAgc3ViaSAzMiwgdDIKKyAgICByc2hp
ZnRpIHQxLCB0MiwgdDAKKyAgICByc2hpZnRpIDMxLCB0MQorICAgIGptcCAucmV0dXJuCisKKy5s
ZXNzVGhhbjMyOgorICAgIHVyc2hpZnRpIHQyLCB0MAorICAgIG1vdmUgMzIsIHQzCisgICAgc3Vi
aSB0MiwgdDMKKyAgICBsc2hpZnRpIHQxLCB0MywgdDMKKyAgICBvcmkgdDMsIHQwCisgICAgcnNo
aWZ0aSB0MiwgdDEKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkK
Kword2FzbU9wKGk2NF9yb3RyLCBXYXNtSTY0Um90ciwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmko
Y3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MikKKworICAgIGFu
ZGkgdDIsIDB4MjAsIHQzCisgICAgYnRpeiB0MywgLm5vU3dhcAorCisgICAgbW92ZSB0MCwgdDMK
KyAgICBtb3ZlIHQxLCB0MAorICAgIG1vdmUgdDMsIHQxCisKKy5ub1N3YXA6CisgICAgYW5kaSAw
eDFmLCB0MgorICAgIGJ0aXogdDIsIC5yZXR1cm4KKworICAgIG1vdmUgMzIsIHQ1CisgICAgc3Vi
aSB0MiwgdDUKKyAgICBsc2hpZnRpIHQwLCB0NSwgdDMKKyAgICBsc2hpZnRpIHQxLCB0NSwgdDUK
KyAgICB1cnNoaWZ0aSB0MiwgdDAKKyAgICB1cnNoaWZ0aSB0MiwgdDEKKyAgICBvcmkgdDUsIHQw
CisgICAgb3JpIHQzLCB0MQorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQor
ZW5kKQorCit3YXNtT3AoaTY0X3JvdGwsIFdhc21JNjRSb3RsLCBtYWNybyhjdHgpCisgICAgbWxv
YWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQyKQorCisg
ICAgYW5kaSB0MiwgMHgyMCwgdDMKKyAgICBidGl6IHQzLCAubm9Td2FwCisKKyAgICBtb3ZlIHQw
LCB0MworICAgIG1vdmUgdDEsIHQwCisgICAgbW92ZSB0MywgdDEKKworLm5vU3dhcDoKKyAgICBh
bmRpIDB4MWYsIHQyCisgICAgYnRpeiB0MiwgLnJldHVybgorCisgICAgbW92ZSAzMiwgdDUKKyAg
ICBzdWJpIHQyLCB0NQorICAgIHVyc2hpZnRpIHQwLCB0NSwgdDMKKyAgICB1cnNoaWZ0aSB0MSwg
dDUsIHQ1CisgICAgbHNoaWZ0aSB0MiwgdDAKKyAgICBsc2hpZnRpIHQyLCB0MQorICAgIG9yaSB0
NSwgdDAKKyAgICBvcmkgdDMsIHQxCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCB0MSwg
dDApCitlbmQpCisKK3dhc21PcChpNjRfZXEsIFdhc21JNjRFcSwgbWFjcm8oY3R4KQorICAgIG1s
b2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQy
KQorICAgIG1vdmUgMCwgdDYKKyAgICBiaW5lcSB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWVxIHQw
LCB0MiwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3Ao
aTY0X25lLCBXYXNtSTY0TmUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQx
LCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2Cisg
ICAgYmluZXEgdDEsIHQzLCAucmV0dXJuCisgICAgY2luZXEgdDAsIHQyLCB0NgorLnJldHVybjoK
KyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRfbHRfcywgV2FzbUk2NEx0
UywgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2Fk
MmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYKKyAgICBiaWx0IHQxLCB0Mywg
LnJldHVybgorICAgIG1vdmUgMCwgdDYKKyAgICBiaWd0IHQxLCB0MywgLnJldHVybgorICAgIGNp
YiB0MCwgdDIsIHQ2CisgICAgYW5kaSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwg
dDYpCitlbmQpCisKK3dhc21PcChpNjRfbGVfcywgV2FzbUk2NExlUywgbWFjcm8oY3R4KQorICAg
IG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMs
IHQyKQorICAgIG1vdmUgMSwgdDYKKyAgICBiaWx0IHQxLCB0MywgLnJldHVybgorICAgIG1vdmUg
MCwgdDYKKyAgICBiaWd0IHQxLCB0MywgLnJldHVybgorICAgIGNpYmVxIHQwLCB0MiwgdDYKKyAg
ICBhbmRpIDEsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2Fz
bU9wKGk2NF9sdF91LCBXYXNtSTY0THRVLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1f
bGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAx
LCB0NgorICAgIGJpYiB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAgYmlhIHQx
LCB0MywgLnJldHVybgorICAgIGNpYiB0MCwgdDIsIHQ2CisgICAgYW5kaSAxLCB0NgorLnJldHVy
bjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRfbGVfdSwgV2FzbUk2
NExlVSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1s
b2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYKKyAgICBiaWIgdDEsIHQz
LCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpYSB0MSwgdDMsIC5yZXR1cm4KKyAgICBj
aWJlcSB0MCwgdDIsIHQ2CisgICAgYW5kaSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0
eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRfZ3RfcywgV2FzbUk2NEd0UywgbWFjcm8oY3R4KQor
ICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3Jocywg
dDMsIHQyKQorICAgIG1vdmUgMSwgdDYKKyAgICBiaWd0IHQxLCB0MywgLnJldHVybgorICAgIG1v
dmUgMCwgdDYKKyAgICBiaWx0IHQxLCB0MywgLnJldHVybgorICAgIGNpYSB0MCwgdDIsIHQ2Cisg
ICAgYW5kaSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dh
c21PcChpNjRfZ2VfcywgV2FzbUk2NEdlUywgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBt
X2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUg
MSwgdDYKKyAgICBiaWd0IHQxLCB0MywgLnJldHVybgorICAgIG1vdmUgMCwgdDYKKyAgICBiaWx0
IHQxLCB0MywgLnJldHVybgorICAgIGNpYWVxIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2Cisu
cmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9ndF91LCBX
YXNtSTY0R3RVLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisg
ICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAgIGJpYSB0
MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAgYmliIHQxLCB0MywgLnJldHVybgor
ICAgIGNpYSB0MCwgdDIsIHQ2CisgICAgYW5kaSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5p
KGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRfZ2VfdSwgV2FzbUk2NEdlVSwgbWFjcm8oY3R4
KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3Jo
cywgdDMsIHQyKQorICAgIG1vdmUgMCwgdDYKKyAgICBiaWIgdDEsIHQzLCAucmV0dXJuCisgICAg
bW92ZSAxLCB0NgorICAgIGJpYSB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWFlcSB0MCwgdDIsIHQ2
CisgICAgYW5kaSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisK
KyMgaTY0IHVuYXJ5IG9wcworCit3YXNtT3AoaTY0X2N0eiwgV2FzbUk2NEN0eiwgbWFjcm8gKGN0
eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9vcGVyYW5kLCB0MSwgdDApCisgICAgYnRpeiB0MCwgLnRv
cAorCisgICAgdHpjbnRpIHQwLCB0MAorICAgIGptcCAucmV0dXJuCisKKy50b3A6CisgICAgdHpj
bnRpIHQxLCB0MAorICAgIGFkZGkgMzIsIHQwCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4
LCAwLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9jbHosIFdhc21JNjRDbHosIG1hY3JvKGN0eCkK
KyAgICBtbG9hZDJpKGN0eCwgbV9vcGVyYW5kLCB0MSwgdDApCisgICAgYnRpeiB0MSwgLmJvdHRv
bQorCisgICAgbHpjbnRpIHQxLCB0MAorICAgIGptcCAucmV0dXJuCisKKy5ib3R0b206CisgICAg
bHpjbnRpIHQwLCB0MAorICAgIGFkZGkgMzIsIHQwCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmko
Y3R4LCAwLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9wb3BjbnQsIFdhc21JNjRQb3BjbnQsIG1h
Y3JvIChjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fb3BlcmFuZCwgYTMsIGEyKQorICAgIHByZXBh
cmVTdGF0ZUZvckNDYWxsKCkKKyAgICBtb3ZlIFBDLCBhMAorICAgIGNDYWxsMihfc2xvd19wYXRo
X3dhc21fcG9wY291bnRsbCkKKyAgICByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkKKyAgICByZXR1
cm4yaShjdHgsIDAsIHIxKQorZW5kKQorCit3YXNtT3AoaTY0X2VxeiwgV2FzbUk2NEVxeiwgbWFj
cm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIHQxLCB0MCkKKyAgICBtb3ZlIDAs
IHQyCisgICAgYnRpbnogdDEsIC5yZXR1cm4KKyAgICBjaWVxIHQwLCAwLCB0MgorLnJldHVybjoK
KyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKKyMgZjY0IGJpbmFyeSBvcHMKKword2FzbU9w
KGY2NF9jb3B5c2lnbiwgV2FzbUY2NENvcHlzaWduLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShj
dHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpICMgdDIg
dW51c2VkCisKKyAgICBhbmRpIDB4N2ZmZmZmZmYsIHQxCisgICAgYW5kaSAweDgwMDAwMDAwLCB0
MworICAgIG9yaSB0MywgdDEKKworICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCisj
IFR5cGUgY29udmVyc2lvbiBvcHMKKword2FzbU9wKGk2NF9leHRlbmRfc19pMzIsIFdhc21JNjRF
eHRlbmRTSTMyLCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAg
ICByc2hpZnRpIHQwLCAzMSwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKwor
d2FzbU9wKGk2NF9leHRlbmRfdV9pMzIsIFdhc21JNjRFeHRlbmRVSTMyLCBtYWNybyhjdHgpCisg
ICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICByZXR1cm4yaShjdHgsIDAsIHQwKQor
ZW5kKQorCit3YXNtT3AoZjY0X3JlaW50ZXJwcmV0X2k2NCwgV2FzbUY2NFJlaW50ZXJwcmV0STY0
LCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fb3BlcmFuZCwgdDEsIHQwKQorICAgIGZp
aTJkIHQwLCB0MSwgZnQwCisgICAgcmV0dXJuZChjdHgsIGZ0MCkKK2VuZCkKKword2FzbU9wKGk2
NF9yZWludGVycHJldF9mNjQsIFdhc21JNjRSZWludGVycHJldEY2NCwgbWFjcm8oY3R4KQorICAg
IG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorICAgIGZkMmlpIGZ0MCwgdDAsIHQxCisgICAg
cmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc19mNjQsIFdh
c21JMzJUcnVuY1NGNjQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBm
dDApCisKKyAgICBtb3ZlaWkgMHhjMWUwMDAwMDAwMjAwMDAwLCB0MSwgdDAgIyBJTlQzMl9NSU4g
LSAxLjAKKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0
T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZWlpIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDEsIHQwICMg
LUlOVDMyX01JTgorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEs
IC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAorICAgIHJldHVy
bmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0
T2ZCb3VuZHNUcnVuYykKK2VuZCkKKword2FzbU9wKGkzMl90cnVuY191X2Y2NCwgV2FzbUkzMlRy
dW5jVUY2NCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKwor
ICAgIG1vdmVpaSAweGJmZjAwMDAwMDAwMDAwMDAsIHQxLCB0MCAjIC0xLjAKKyAgICBmaWkyZCB0
MCwgdDEsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisg
ICAgbW92ZWlpIDB4NDFmMDAwMDAwMDAwMDAwMCwgdDEsIHQwICMgSU5UMzJfTUlOICogLTIuMAor
ICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5k
c1RydW5jCisKKyAgICB0cnVuY2F0ZWQyaSBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQor
Cisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5j
KQorZW5kKQorCitzbG93V2FzbU9wKGk2NF90cnVuY19zX2YzMikKK3Nsb3dXYXNtT3AoaTY0X3Ry
dW5jX3VfZjMyKQorc2xvd1dhc21PcChpNjRfdHJ1bmNfc19mNjQpCitzbG93V2FzbU9wKGk2NF90
cnVuY191X2Y2NCkKKword2FzbU9wKGkzMl90cnVuY19zYXRfZjY0X3MsIFdhc21JMzJUcnVuY1Nh
dEY2NFMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAg
ICBtb3ZlaWkgMHhjMWUwMDAwMDAwMjAwMDAwLCB0MSwgdDAgIyBJTlQzMl9NSU4gLSAxLjAKKyAg
ICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNU
cnVuY1NhdE1pbk9yTmFOCisKKyAgICBtb3ZlaWkgMHg0MWUwMDAwMDAwMDAwMDAwLCB0MSwgdDAg
IyAtSU5UMzJfTUlOCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0
MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZDJpcyBmdDAsIHQwCisg
ICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgorICAg
IGJkZXEgZnQwLCBmdDAsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCisgICAgbW92ZSAwLCB0MAor
ICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92
ZSAoY29uc3RleHByIElOVDMyX01BWCksIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0
T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UMzJfTUlOKSwgdDAK
KyAgICByZXR1cm5pKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF91
LCBXYXNtSTMyVHJ1bmNTYXRGNjRVLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3Bl
cmFuZCwgZnQwKQorCisgICAgbW92ZWlpIDB4YmZmMDAwMDAwMDAwMDAwMCwgdDEsIHQwICMgLTEu
MAorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJv
dW5kc1RydW5jU2F0TWluCisKKyAgICBtb3ZlaWkgMHg0MWYwMDAwMDAwMDAwMDAwLCB0MSwgdDAg
IyBJTlQzMl9NSU4gKiAtMi4wCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGd0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZDJpIGZ0MCwg
dDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAg
IG1vdmUgMCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0
TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UMzJfTUFYKSwgdDAKKyAgICByZXR1cm5pKGN0
eCwgdDApCitlbmQpCisKK3Nsb3dXYXNtT3AoaTY0X3RydW5jX3NhdF9mMzJfcykKK3Nsb3dXYXNt
T3AoaTY0X3RydW5jX3NhdF9mMzJfdSkKK3Nsb3dXYXNtT3AoaTY0X3RydW5jX3NhdF9mNjRfcykK
K3Nsb3dXYXNtT3AoaTY0X3RydW5jX3NhdF9mNjRfdSkKKworIyBFeHRlbmQgb3BzCisKK3dhc21P
cChpNjRfZXh0ZW5kOF9zLCBXYXNtSTY0RXh0ZW5kOFMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGko
Y3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHN4YjJpIHQwLCB0MAorICAgIHJzaGlmdGkgdDAsIDMx
LCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X2V4dGVu
ZDE2X3MsIFdhc21JNjRFeHRlbmQxNlMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX29w
ZXJhbmQsIHQwKQorICAgIHN4aDJpIHQwLCB0MAorICAgIHJzaGlmdGkgdDAsIDMxLCB0MQorICAg
IHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X2V4dGVuZDMyX3MsIFdh
c21JNjRFeHRlbmQxNlMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQw
KQorICAgIHJzaGlmdGkgdDAsIDMxLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5k
KQorCisjIEF0b21pY3MKKworbWFjcm8gd2FzbUF0b21pY0JpbmFyeVJNV09wcyhsb3dlckNhc2VP
cGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5iLCBmbmgsIGZuaSwgZm4yaSkKKyAgICB3YXNtT3Ao
aTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzgldXBw
ZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVy
LCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkaShj
dHgsIG1fdmFsdWUsIHQwKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGlu
Z09mZnNldCh0MywgdDUsIDEpCisgICAgICAgIGZuYih0MCwgW3QzXSwgdDIsIHQ1LCB0NikKKyAg
ICAgICAgYW5kaSAweGZmLCB0NiAjIEZJWE1FOiBaZXJvRXh0ZW5kOFRvNjQKKyAgICAgICAgYXNz
ZXJ0KG1hY3JvKG9rKSBiaWJlcSB0NiwgMHhmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJuMmko
Y3R4LCAwLCB0NikKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MTYlbG93ZXJD
YXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MTYldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3Jv
KGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUo
Y3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkaShjdHgsIG1fdmFsdWUsIHQwKQorICAg
ICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRD
aGVjayh0MywgdDUsIDIpCisgICAgICAgIGZuaCh0MCwgW3QzXSwgdDIsIHQ1LCB0NikKKyAgICAg
ICAgYW5kaSAweGZmZmYsIHQ2ICMgRklYTUU6IFplcm9FeHRlbmQxNlRvNjQKKyAgICAgICAgYXNz
ZXJ0KG1hY3JvKG9rKSBiaWJlcSB0NiwgMHhmZmZmLCAub2sgZW5kKQorICAgICAgICByZXR1cm4y
aShjdHgsIDAsIHQ2KQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXczMiVsb3dl
ckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXczMiV1cHBlckNhc2VPcGNvZGUlVSwgbWFj
cm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0
dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV92YWx1ZSwgdDApCisg
ICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVu
dENoZWNrKHQzLCB0NSwgNCkKKyAgICAgICAgZm5pKHQwLCBbdDNdLCB0MiwgdDUsIHQ2KQorICAg
ICAgICByZXR1cm4yaShjdHgsIDAsIHQ2KQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21p
Y19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0b21pY1JtdyV1cHBlckNhc2VPcGNvZGUl
LCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAg
IHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwg
dDEsIHQwKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdp
dGhBbGlnbm1lbnRDaGVjayh0MywgdDUsIDgpCisgICAgICAgIHB1c2ggdDQgIyBUaGlzIGlzIHRo
ZSBQQiwgc28gbmVlZCB0byBiZSBzYXZlZCBhbmQgcmVzdG9yZWQKKyAgICAgICAgZm4yaSh0MSwg
dDAsIFt0M10sIHQ0LCB0MiwgdDUsIHQ3LCB0NikKKyAgICAgICAgcG9wIHQ0CisgICAgICAgIHJl
dHVybjJpKGN0eCwgdDcsIHQ2KQorICAgIGVuZCkKK2VuZAorCittYWNybyB3YXNtQXRvbWljQmlu
YXJ5Uk1XT3BzV2l0aFdlYWtDQVMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZu
aSwgZm4yaSkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBw
ZXJDYXNlT3Bjb2RlLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQ2
R1BSKQorICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAg
ICAgICAgICBsb2FkbGlua2IgbWVtLCB0NkdQUgorICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwg
dDZHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29uZGIgdDVHUFIsIHQyR1BSLCBt
ZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAg
ICBmZW5jZQorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDZHUFIpCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIC5sb29wOgor
ICAgICAgICAgICAgICAgIGxvYWRsaW5raCBtZW0sIHQ2R1BSCisgICAgICAgICAgICAgICAgZm5p
KHQwR1BSLCB0NkdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgc3RvcmVjb25kaCB0NUdQUiwg
dDJHUFIsIG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAorICAgICAg
ICAgICAgICAgIGZlbmNlCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwg
dDJHUFIsIHQ1R1BSLCB0NkdQUikKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAg
Lmxvb3A6CisgICAgICAgICAgICAgICAgbG9hZGxpbmtpIG1lbSwgdDZHUFIKKyAgICAgICAgICAg
ICAgICBmbmkodDBHUFIsIHQ2R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmRp
IHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29w
CisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MUdQ
UiwgdDBHUFIsIG1lbSwgdDRHUFIsIHQyR1BSLCB0NUdQUiwgdDdHUFIsIHQ2R1BSKQorICAgICAg
ICAgICAgICAgIGZlbmNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2Fk
bGluazJpIG1lbSwgdDZHUFIsIHQ3R1BSCisgICAgICAgICAgICAgICAgZm4yaSh0MUdQUiwgdDBH
UFIsIHQ3R1BSLCB0NkdQUiwgdDRHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29u
ZDJpIHQ1R1BSLCB0MkdQUiwgdDRHUFIsIG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BS
LCAwLCAubG9vcAorICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgIGVuZCkKK2VuZAorCitp
ZiBBUk12NworICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYWRkLCBBZGQs
CisgICAgICAgIG1hY3JvKHNyYzAsIHNyYzEsIGRzdCkKKyAgICAgICAgICAgIGFkZGkgc3JjMCwg
c3JjMSwgZHN0CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8oc3JjME1zdywgc3JjMExzdywg
c3JjMU1zdywgc3JjMUxzdywgZHN0TXN3LCBkc3RMc3cpCisgICAgICAgICAgICBhZGRpcyBzcmMw
THN3LCBzcmMxTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIGFkY2kgIHNyYzBNc3csIHNyYzFNc3cs
IGRzdE1zdworICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFr
Q0FTKF9zdWIsIFN1YiwKKyAgICAgICAgbWFjcm8oc3JjMCwgc3JjMSwgZHN0KQorICAgICAgICAg
ICAgc3ViaSBzcmMxLCBzcmMwLCBkc3QKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyhzcmMw
TXN3LCBzcmMwTHN3LCBzcmMxTXN3LCBzcmMxTHN3LCBkc3RNc3csIGRzdExzdykKKyAgICAgICAg
ICAgIHN1YmlzIHNyYzFMc3csIHNyYzBMc3csIGRzdExzdworICAgICAgICAgICAgc2JjaSAgc3Jj
MU1zdywgc3JjME1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5
Uk1XT3BzV2l0aFdlYWtDQVMoX3hjaGcsIFhjaGcsCisgICAgICAgIG1hY3JvKHNyYzAsIHNyYzEs
IGRzdCkKKyAgICAgICAgICAgIG1vdmUgc3JjMCwgZHN0CisgICAgICAgIGVuZCwKKyAgICAgICAg
bWFjcm8oc3JjME1zdywgc3JjMExzdywgc3JjMU1zdywgc3JjMUxzdywgZHN0TXN3LCBkc3RMc3cp
CisgICAgICAgICAgICBtb3ZlIHNyYzBMc3csIGRzdExzdworICAgICAgICAgICAgbW92ZSBzcmMw
TXN3LCBkc3RNc3cKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRo
V2Vha0NBUyhfYW5kLCBBbmQsCisgICAgICAgIG1hY3JvKHNyYzAsIHNyYzEsIGRzdCkKKyAgICAg
ICAgICAgIGFuZGkgc3JjMCwgc3JjMSwgZHN0CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8o
c3JjME1zdywgc3JjMExzdywgc3JjMU1zdywgc3JjMUxzdywgZHN0TXN3LCBkc3RMc3cpCisgICAg
ICAgICAgICBhbmRpIHNyYzBMc3csIHNyYzFMc3csIGRzdExzdworICAgICAgICAgICAgYW5kaSBz
cmMwTXN3LCBzcmMxTXN3LCBkc3RNc3cKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5h
cnlSTVdPcHNXaXRoV2Vha0NBUyhfb3IsIE9yLAorICAgICAgICBtYWNybyhzcmMwLCBzcmMxLCBk
c3QpCisgICAgICAgICAgICBvcmkgc3JjMCwgc3JjMSwgZHN0CisgICAgICAgIGVuZCwKKyAgICAg
ICAgbWFjcm8oc3JjME1zdywgc3JjMExzdywgc3JjMU1zdywgc3JjMUxzdywgZHN0TXN3LCBkc3RM
c3cpCisgICAgICAgICAgICBvcmkgc3JjMExzdywgc3JjMUxzdywgZHN0THN3CisgICAgICAgICAg
ICBvcmkgc3JjME1zdywgc3JjMU1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRv
bWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3hvciwgWG9yLAorICAgICAgICBtYWNybyhzcmMw
LCBzcmMxLCBkc3QpCisgICAgICAgICAgICB4b3JpIHNyYzAsIHNyYzEsIGRzdAorICAgICAgICBl
bmQsCisgICAgICAgIG1hY3JvKHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRz
dE1zdywgZHN0THN3KQorICAgICAgICAgICAgeG9yaSBzcmMwTHN3LCBzcmMxTHN3LCBkc3RMc3cK
KyAgICAgICAgICAgIHhvcmkgc3JjME1zdywgc3JjMU1zdywgZHN0TXN3CisgICAgICAgIGVuZCkK
K2VuZAorCittYWNybyB3YXNtQXRvbWljQ29tcGFyZUV4Y2hhbmdlT3BzKGxvd2VyQ2FzZU9wY29k
ZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIsIGZuaCwgZm5pLCBmbjJpKQorICAgIHdhc21PcChpNjRf
YXRvbWljX3JtdzglbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13OCV1cHBlckNh
c2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQz
KQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWQyaShjdHgs
IG1fZXhwZWN0ZWQsIHQxLCB0MCkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQ3LCB0
MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQodDMsIHQ1
LCAxKQorICAgICAgICBmbmIodDEsIHQwLCB0NywgdDIsIFt0M10sIHQ2LCB0NSkKKyAgICAgICAg
YW5kaSAweGZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kOFRvNjQKKyAgICAgICAgYXNzZXJ0KG1h
Y3JvKG9rKSBiaWJlcSB0MCwgMHhmZiwgLm9rIGVuZCkKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9r
KSBiaWVxIHQxLCAwLCAub2sgZW5kKQorICAgICAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKKyAg
ICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MTYlbG93ZXJDYXNlT3Bjb2RlJV91LCBX
YXNtSTY0QXRvbWljUm13MTYldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAg
bWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwg
dDUpCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX2V4cGVjdGVkLCB0MSwgdDApCisgICAgICAgIG1s
b2FkMmkoY3R4LCBtX3ZhbHVlLCB0NywgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQ
b2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKHQzLCB0NSwgMikKKyAgICAgICAg
Zm5oKHQxLCB0MCwgdDcsIHQyLCBbdDNdLCB0NiwgdDUpCisgICAgICAgIGFuZGkgMHhmZmZmLCB0
MCAjIEZJWE1FOiBaZXJvRXh0ZW5kMTZUbzY0CisgICAgICAgIGFzc2VydChtYWNybyhvaykgYmli
ZXEgdDAsIDB4ZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBiaWVxIHQx
LCAwLCAub2sgZW5kKQorICAgICAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKKyAgICBlbmQpCisg
ICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MzIlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRv
bWljUm13MzIldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0
eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAg
ICAgIG1sb2FkMmkoY3R4LCBtX2V4cGVjdGVkLCB0MSwgdDApCisgICAgICAgIG1sb2FkMmkoY3R4
LCBtX3ZhbHVlLCB0NywgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRk
aW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKHQzLCB0NSwgOCkKKyAgICAgICAgZm5pKHQxLCB0
MCwgdDcsIHQyLCBbdDNdLCB0NiwgdDUpCisgICAgICAgIGFzc2VydChtYWNybyhvaykgYmllcSB0
MSwgMCwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCisgICAgZW5kKQor
ICAgIHdhc21PcChpNjRfYXRvbWljX3JtdyVsb3dlckNhc2VPcGNvZGUlLCBXYXNtSTY0QXRvbWlj
Um13JXVwcGVyQ2FzZU9wY29kZSUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9w
b2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1s
b2FkMmkoY3R4LCBtX2V4cGVjdGVkLCB0MSwgdDApCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX3Zh
bHVlLCB0NywgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zm
c2V0V2l0aEFsaWdubWVudENoZWNrKHQzLCB0NSwgOCkKKyAgICAgICAgcHVzaCB0NCAjIFRoaXMg
aXMgdGhlIFBCLCBzbyBuZWVkIHRvIGJlIHNhdmVkIGFuZCByZXN0b3JlZAorICAgICAgICBmbjJp
KHQxLCB0MCwgdDcsIHQyLCBbdDNdLCB0NCwgdDYsIHQ1KQorICAgICAgICBwb3AgdDQKKyAgICAg
ICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCisgICAgZW5kKQorZW5kCisKK2lmIEFSTXY3CisvLyBl
eHA6ICJleHBlY3RlZCIsIHZhbDogInZhbHVlIiwgcmVzOiAicmVzdWx0Igord2FzbUF0b21pY0Nv
bXBhcmVFeGNoYW5nZU9wcyhfY21weGNoZywgQ21weGNoZywKKyAgICBtYWNybyhleHBNc3csIGV4
cExzdywgdmFsTXN3LCB2YWxMc3csIG1lbSwgc2NyYXRjaCwgcmVzTHN3KQorICAgICAgICAgICAg
ZmVuY2UKKyAgICAgICAgLmxvb3A6CisgICAgICAgICAgICBsb2FkbGlua2IgbWVtLCByZXNMc3cK
KyAgICAgICAgICAgIGJpbmVxIGV4cExzdywgcmVzTHN3LCAuZmFpbAorICAgICAgICAgICAgYmlu
ZXEgZXhwTXN3LCAwLCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kYiBzY3JhdGNoLCB2YWxM
c3csIG1lbQorICAgICAgICAgICAgYmllcSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAg
am1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgc3RvcmVjb25kYiBzY3JhdGNo
LCByZXNMc3csIG1lbQorICAgICAgICAgICAgYmllcSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAg
ICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAgICAgICAgZmVuY2UKKyAgICAg
ICAgICAgIG1vdmUgcmVzTHN3LCBleHBMc3cKKyAgICAgICAgICAgIG1vdmUgMCwgZXhwTXN3Cisg
ICAgZW5kLAorICAgIG1hY3JvKGV4cE1zdywgZXhwTHN3LCB2YWxNc3csIHZhbExzdywgbWVtLCBz
Y3JhdGNoLCByZXNMc3cpCisgICAgICAgICAgICBmZW5jZQorICAgICAgICAubG9vcDoKKyAgICAg
ICAgICAgIGxvYWRsaW5raCBtZW0sIHJlc0xzdworICAgICAgICAgICAgYmluZXEgZXhwTHN3LCBy
ZXNMc3csIC5mYWlsCisgICAgICAgICAgICBiaW5lcSBleHBNc3csIDAsIC5mYWlsCisgICAgICAg
ICAgICBzdG9yZWNvbmRoIHNjcmF0Y2gsIHZhbExzdywgbWVtCisgICAgICAgICAgICBiaWVxIHNj
cmF0Y2gsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6Cisg
ICAgICAgICAgICBzdG9yZWNvbmRoIHNjcmF0Y2gsIHJlc0xzdywgbWVtCisgICAgICAgICAgICBi
aWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRv
bmU6CisgICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAgbW92ZSByZXNMc3csIGV4cExzdwor
ICAgICAgICAgICAgbW92ZSAwLCBleHBNc3cKKyAgICBlbmQsCisgICAgbWFjcm8oZXhwTXN3LCBl
eHBMc3csIHZhbE1zdywgdmFsTHN3LCBtZW0sIHNjcmF0Y2gsIHJlc0xzdykKKyAgICAgICAgICAg
IGZlbmNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmtpIG1lbSwgcmVzTHN3
CisgICAgICAgICAgICBiaW5lcSBleHBMc3csIHJlc0xzdywgLmZhaWwKKyAgICAgICAgICAgIGJp
bmVxIGV4cE1zdywgMCwgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZGkgc2NyYXRjaCwgdmFs
THN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAgICAg
IGptcCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZGkgc2NyYXRj
aCwgcmVzTHN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAg
ICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIGZlbmNlCisgICAg
ICAgICAgICBtb3ZlIHJlc0xzdywgZXhwTHN3CisgICAgICAgICAgICBtb3ZlIDAsIGV4cE1zdwor
ICAgIGVuZCwKKyAgICBtYWNybyhleHBNc3csIGV4cExzdywgdmFsTXN3LCB2YWxMc3csIG1lbSwg
c2NyYXRjaCwgcmVzTXN3LCByZXNMc3cpCisgICAgICAgICAgICBmZW5jZQorICAgICAgICAubG9v
cDoKKyAgICAgICAgICAgIGxvYWRsaW5rMmkgbWVtLCByZXNMc3csIHJlc01zdworICAgICAgICAg
ICAgYmluZXEgZXhwTHN3LCByZXNMc3csIC5mYWlsCisgICAgICAgICAgICBiaW5lcSBleHBNc3cs
IHJlc01zdywgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZDJpIHNjcmF0Y2gsIHZhbExzdywg
dmFsTXN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAg
ICAgIGptcCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZDJpIHNj
cmF0Y2gsIHJlc0xzdywgcmVzTXN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwg
LmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAg
IGZlbmNlCisgICAgICAgICAgICBtb3ZlIHJlc0xzdywgZXhwTHN3CisgICAgICAgICAgICBtb3Zl
IHJlc01zdywgZXhwTXN3CisgICAgZW5kKQorZW5kCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseTY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9XZWJBc3NlbWJseTY0LmFzbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLjQ2ZTllYTQ4ODUyNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9XZWJBc3NlbWJseTY0LmFzbQpAQCAtMCwwICsxLDEyNTkgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDExLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBD
b3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
IyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgT3Bjb2RlcyB0aGF0IHNob3Vs
ZCBldmVudHVhbGx5IGJlIHNoYXJlZCB3aXRoIEpTIGxsaW50CisKK3dhc21PcChtb3YsIFdhc21N
b3YsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX3NyYywgdDApCisgICAgcmV0dXJucShj
dHgsIHQwKQorZW5kKQorCisjIFdhc20gc3BlY2lmaWMgYnl0ZWNvZGVzCisKK21hY3JvIGVtaXRD
aGVja0FuZFByZXBhcmVQb2ludGVyKGN0eCwgcG9pbnRlciwgb2Zmc2V0LCBzaXplKQorICAgIGxl
YXAgc2l6ZSAtIDFbcG9pbnRlciwgb2Zmc2V0XSwgdDUKKyAgICBicGIgdDUsIGJvdW5kc0NoZWNr
aW5nU2l6ZSwgLmNvbnRpbnVhdGlvbgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVt
b3J5QWNjZXNzKQorLmNvbnRpbnVhdGlvbjoKKyAgICBhZGRwIG1lbW9yeUJhc2UsIHBvaW50ZXIK
K2VuZAorCittYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgs
IHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKKyAgICBsZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNl
dF0sIHQ1CisgICAgYnBiIHQ1LCBib3VuZHNDaGVja2luZ1NpemUsIC5jb250aW51YXRpb24KKy50
aHJvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKKy5jb250
aW51YXRpb246CisgICAgYWRkcCBtZW1vcnlCYXNlLCBwb2ludGVyCisgICAgYWRkcCBvZmZzZXQs
IHBvaW50ZXIKK2VuZAorCittYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09m
ZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKKyAgICBs
ZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNldF0sIHQ1CisgICAgYnBiIHQ1LCBib3VuZHNDaGVj
a2luZ1NpemUsIC5jb250aW51YXRpb24KKy50aHJvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRP
ZkJvdW5kc01lbW9yeUFjY2VzcykKKy5jb250aW51YXRpb246CisgICAgYWRkcCBtZW1vcnlCYXNl
LCBwb2ludGVyCisgICAgYWRkcCBvZmZzZXQsIHBvaW50ZXIKKyAgICBidHBueiBwb2ludGVyLCAo
c2l6ZSAtIDEpLCAudGhyb3cKK2VuZAorCisKK21hY3JvIHdhc21Mb2FkT3AobmFtZSwgc3RydWN0
LCBzaXplLCBmbikKKyAgICB3YXNtT3AobmFtZSwgc3RydWN0LCBtYWNybyhjdHgpCisgICAgICAg
IG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDApCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQs
IHQxKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihjdHgsIHQwLCB0MSwgc2l6
ZSkKKyAgICAgICAgZm4oW3QwLCB0MV0sIHQyKQorICAgICAgICByZXR1cm5xKGN0eCwgdDIpCisg
ICAgZW5kKQorZW5kCisKK3dhc21Mb2FkT3AobG9hZDhfdSwgV2FzbUxvYWQ4VSwgMSwgbWFjcm8o
bWVtLCBkc3QpIGxvYWRiIG1lbSwgZHN0IGVuZCkKK3dhc21Mb2FkT3AobG9hZDE2X3UsIFdhc21M
b2FkMTZVLCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGggbWVtLCBkc3QgZW5kKQord2FzbUxvYWRP
cChsb2FkMzJfdSwgV2FzbUxvYWQzMlUsIDQsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaSBtZW0sIGRz
dCBlbmQpCit3YXNtTG9hZE9wKGxvYWQ2NF91LCBXYXNtTG9hZDY0VSwgOCwgbWFjcm8obWVtLCBk
c3QpIGxvYWRxIG1lbSwgZHN0IGVuZCkKKword2FzbUxvYWRPcChpMzJfbG9hZDhfcywgV2FzbUkz
MkxvYWQ4UywgMSwgbWFjcm8obWVtLCBkc3QpIGxvYWRic2kgbWVtLCBkc3QgZW5kKQord2FzbUxv
YWRPcChpNjRfbG9hZDhfcywgV2FzbUk2NExvYWQ4UywgMSwgbWFjcm8obWVtLCBkc3QpIGxvYWRi
c3EgbWVtLCBkc3QgZW5kKQord2FzbUxvYWRPcChpMzJfbG9hZDE2X3MsIFdhc21JMzJMb2FkMTZT
LCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGhzaSBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGk2
NF9sb2FkMTZfcywgV2FzbUk2NExvYWQxNlMsIDIsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaHNxIG1l
bSwgZHN0IGVuZCkKK3dhc21Mb2FkT3AoaTY0X2xvYWQzMl9zLCBXYXNtSTY0TG9hZDMyUywgNCwg
bWFjcm8obWVtLCBkc3QpIGxvYWRpcyBtZW0sIGRzdCBlbmQpCisKK21hY3JvIHdhc21TdG9yZU9w
KG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4pCisgICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8o
Y3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQorICAgICAgICB3Z2V0dShj
dHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4
LCB0MCwgdDEsIHNpemUpCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQorICAgICAg
ICBmbih0MiwgW3QwLCB0MV0pCisgICAgICAgIGRpc3BhdGNoKGN0eCkKKyAgICBlbmQpCitlbmQK
Kword2FzbVN0b3JlT3Aoc3RvcmU4LCBXYXNtU3RvcmU4LCAxLCBtYWNybyh2YWx1ZSwgbWVtKSBz
dG9yZWIgdmFsdWUsIG1lbSBlbmQpCit3YXNtU3RvcmVPcChzdG9yZTE2LCBXYXNtU3RvcmUxNiwg
MiwgbWFjcm8odmFsdWUsIG1lbSkgc3RvcmVoIHZhbHVlLCBtZW0gZW5kKQord2FzbVN0b3JlT3Ao
c3RvcmUzMiwgV2FzbVN0b3JlMzIsIDQsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlaSB2YWx1ZSwg
bWVtIGVuZCkKK3dhc21TdG9yZU9wKHN0b3JlNjQsIFdhc21TdG9yZTY0LCA4LCBtYWNybyh2YWx1
ZSwgbWVtKSBzdG9yZXEgdmFsdWUsIG1lbSBlbmQpCisKK3dhc21PcChyZWZfaXNfbnVsbCwgV2Fz
bVJlZklzTnVsbCwgbWFjcm8oY3R4KQorICAgIG1sb2FkcChjdHgsIG1fcmVmLCB0MCkKKyAgICBj
cWVxIHQwLCBWYWx1ZU51bGwsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorZW5kKQorCit3YXNt
T3AoZ2V0X2dsb2JhbCwgV2FzbUdldEdsb2JhbCwgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206
Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1f
Z2xvYmFsSW5kZXgsIHQxKQorICAgIGxvYWRxIFt0MCwgdDEsIDhdLCB0MAorICAgIHJldHVybnEo
Y3R4LCB0MCkKK2VuZCkKKword2FzbU9wKHNldF9nbG9iYWwsIFdhc21TZXRHbG9iYWwsIG1hY3Jv
KGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0s
IHQwCisgICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBtbG9hZHEoY3R4LCBt
X3ZhbHVlLCB0MikKKyAgICBzdG9yZXEgdDIsIFt0MCwgdDEsIDhdCisgICAgZGlzcGF0Y2goY3R4
KQorZW5kKQorCit3YXNtT3AoZ2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNtR2V0R2xv
YmFsUG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6
Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRl
eCwgdDEpCisgICAgbG9hZHEgW3QwLCB0MSwgOF0sIHQwCisgICAgbG9hZHEgW3QwXSwgdDAKKyAg
ICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChzZXRfZ2xvYmFsX3BvcnRhYmxlX2Jp
bmRpbmcsIFdhc21TZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkKKyAgICBsb2Fk
cCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUo
Y3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAg
ICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKKyAgICBzdG9yZXEgdDIsIFt0MF0KKyAgICBkaXNwYXRj
aChjdHgpCitlbmQpCisKKyMgT3Bjb2RlcyB0aGF0IGRvbid0IGhhdmUgdGhlIGBiM29wYCBlbnRy
eSBpbiB3YXNtLmpzb24uIFRoaXMgc2hvdWxkIGJlIGtlcHQgaW4gc3luYworCisjIGkzMiBiaW5h
cnkgb3BzCisKK3dhc21PcChpMzJfZGl2X3MsIFdhc21JMzJEaXZTLCBtYWNybyAoY3R4KQorICAg
IG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisKKyAg
ICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgYmluZXEgdDEsIC0xLCAuc2Fm
ZQorICAgIGJpZXEgdDAsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC50aHJvd0ludGVnZXJPdmVyZmxv
dworCisuc2FmZToKKyAgICBpZiBYODZfNjQKKyAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRv
IHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4CisgICAgICAgICMgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgorICAgICAgICBjZHFp
CisgICAgICAgIGlkaXZpIHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQK
KyAgICAgICAgZGl2aXMgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAor
ICAgIHJldHVybmkoY3R4LCB0MCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dF
eGNlcHRpb24oRGl2aXNpb25CeVplcm8pCisKKy50aHJvd0ludGVnZXJPdmVyZmxvdzoKKyAgICB0
aHJvd0V4Y2VwdGlvbihJbnRlZ2VyT3ZlcmZsb3cpCitlbmQpCisKK3dhc21PcChpMzJfZGl2X3Us
IFdhc21JMzJEaXZVLCBtYWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKKyAg
ICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisKKyAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5
WmVybworCisgICAgaWYgWDg2XzY0CisgICAgICAgIHhvcmkgdDIsIHQyCisgICAgICAgIHVkaXZp
IHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKKyAgICAgICAgZGl2aSB0
MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCisgICAgcmV0dXJuaShjdHgs
IHQwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lv
bkJ5WmVybykKK2VuZCkKKword2FzbU9wKGkzMl9yZW1fcywgV2FzbUkzMlJlbVMsIG1hY3JvIChj
dHgpCisgICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0
MSkKKworICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBiaW5lcSB0MSwg
LTEsIC5zYWZlCisgICAgYmluZXEgdDAsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC5zYWZlCisKKyAg
ICBtb3ZlIDAsIHQyCisgICAgam1wIC5yZXR1cm4KKworLnNhZmU6CisgICAgaWYgWDg2XzY0Cisg
ICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXgg
YW5kIHQyIGlzIHJkeAorICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDM2OTIKKyAgICAgICAgY2RxaQorICAgICAgICBpZGl2aSB0MQorICAgIGVsc2lm
IEFSTTY0IG9yIEFSTTY0RQorICAgICAgICBkaXZpcyB0MSwgdDAsIHQyCisgICAgICAgIG11bGkg
dDEsIHQyCisgICAgICAgIHN1YmkgdDAsIHQyLCB0MgorICAgIGVsc2lmIFJJU0NWNjQKKyAgICAg
ICAgcmVtaXMgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorCisucmV0
dXJuOgorICAgIHJldHVybmkoY3R4LCB0MikKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAg
dGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpMzJfcmVtX3Us
IFdhc21JMzJSZW1VLCBtYWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKKyAg
ICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisKKyAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5
WmVybworCisgICAgaWYgWDg2XzY0CisgICAgICAgIHhvcmkgdDIsIHQyCisgICAgICAgIHVkaXZp
IHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCisgICAgICAgIGRpdmkgdDEsIHQwLCB0Mgor
ICAgICAgICBtdWxpIHQxLCB0MgorICAgICAgICBzdWJpIHQwLCB0MiwgdDIKKyAgICBlbHNpZiBS
SVNDVjY0CisgICAgICAgIHJlbWkgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAg
IGVuZAorICAgIHJldHVybmkoY3R4LCB0MikKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAg
dGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKKyMgaTY0IGJpbmFyeSBvcHMK
Kword2FzbU9wKGk2NF9hZGQsIFdhc21JNjRBZGQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4
LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGFkZHEgdDAsIHQx
CisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X3N1YiwgV2FzbUk2NFN1
YiwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4
LCBtX3JocywgdDEpCisgICAgc3VicSB0MSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQp
CisKK3dhc21PcChpNjRfbXVsLCBXYXNtSTY0TXVsLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0
eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBtdWxxIHQwLCB0
MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9kaXZfcywgV2FzbUk2
NERpdlMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2Fk
cShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisK
KyAgICBicW5lcSB0MSwgLTEsIC5zYWZlCisgICAgYnFlcSB0MCwgY29uc3RleHByIElOVDY0X01J
TiwgLnRocm93SW50ZWdlck92ZXJmbG93CisKKy5zYWZlOgorICAgIGlmIFg4Nl82NAorICAgICAg
ICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0
MiBpcyByZHgKKyAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAzNjkyCisgICAgICAgIGNxb3EKKyAgICAgICAgaWRpdnEgdDEKKyAgICBlbHNpZiBBUk02
NCBvciBBUk02NEUgb3IgUklTQ1Y2NAorICAgICAgICBkaXZxcyB0MSwgdDAKKyAgICBlbHNlCisg
ICAgICAgIGVycm9yCisgICAgZW5kCisgICAgcmV0dXJucShjdHgsIHQwKQorCisudGhyb3dEaXZp
c2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKKworLnRocm93
SW50ZWdlck92ZXJmbG93OgorICAgIHRocm93RXhjZXB0aW9uKEludGVnZXJPdmVyZmxvdykKK2Vu
ZCkKKword2FzbU9wKGk2NF9kaXZfdSwgV2FzbUk2NERpdlUsIG1hY3JvIChjdHgpCisgICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0
cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBpZiBYODZfNjQKKyAgICAgICAgeG9y
cSB0MiwgdDIKKyAgICAgICAgdWRpdnEgdDEKKyAgICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3Ig
UklTQ1Y2NAorICAgICAgICBkaXZxIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAg
ICBlbmQKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAg
IHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTY0X3JlbV9z
LCBXYXNtSTY0UmVtUywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisg
ICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRxeiB0MSwgLnRocm93RGl2aXNpb25C
eVplcm8KKworICAgIGJxbmVxIHQxLCAtMSwgLnNhZmUKKyAgICBicW5lcSB0MCwgY29uc3RleHBy
IElOVDY0X01JTiwgLnNhZmUKKworICAgIG1vdmUgMCwgdDIKKyAgICBqbXAgLnJldHVybgorCisu
c2FmZToKKyAgICBpZiBYODZfNjQKKyAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRp
Y19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4CisgICAgICAgICMgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgorICAgICAgICBjcW9xCisgICAg
ICAgIGlkaXZxIHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCisgICAgICAgIGRpdnFzIHQx
LCB0MCwgdDIKKyAgICAgICAgbXVscSB0MSwgdDIKKyAgICAgICAgc3VicSB0MCwgdDIsIHQyCisg
ICAgZWxzaWYgUklTQ1Y2NAorICAgICAgICByZW1xcyB0MSwgdDAKKyAgICBlbHNlCisgICAgICAg
IGVycm9yCisgICAgZW5kCisKKy5yZXR1cm46CisgICAgcmV0dXJucShjdHgsIHQyKSAjIHJkeCBo
YXMgdGhlIHJlbWFpbmRlcgorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2Vw
dGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9yZW1fdSwgV2FzbUk2NFJl
bVUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShj
dHgsIG1fcmhzLCB0MSkKKworICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAg
ICBpZiBYODZfNjQKKyAgICAgICAgeG9ycSB0MiwgdDIKKyAgICAgICAgdWRpdnEgdDEKKyAgICBl
bHNpZiBBUk02NCBvciBBUk02NEUKKyAgICAgICAgZGl2cSB0MSwgdDAsIHQyCisgICAgICAgIG11
bHEgdDEsIHQyCisgICAgICAgIHN1YnEgdDAsIHQyLCB0MgorICAgIGVsc2lmIFJJU0NWNjQKKyAg
ICAgICAgcmVtcSB0MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCisgICAg
cmV0dXJucShjdHgsIHQyKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2Vw
dGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9hbmQsIFdhc21JNjRBbmQs
IG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwg
bV9yaHMsIHQxKQorICAgIGFuZHEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQor
Cit3YXNtT3AoaTY0X29yLCBXYXNtSTY0T3IsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBt
X2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIG9ycSB0MCwgdDEKKyAg
ICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfeG9yLCBXYXNtSTY0WG9yLCBt
YWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1f
cmhzLCB0MSkKKyAgICB4b3JxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKwor
d2FzbU9wKGk2NF9zaGwsIFdhc21JNjRTaGwsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBt
X2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorICAgIGxzaGlmdHEgdDEsIHQw
CisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3Nocl91LCBXYXNtSTY0
U2hyVSwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGko
Y3R4LCBtX3JocywgdDEpCisgICAgdXJzaGlmdHEgdDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQw
KQorZW5kKQorCit3YXNtT3AoaTY0X3Nocl9zLCBXYXNtSTY0U2hyUywgbWFjcm8oY3R4KQorICAg
IG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisgICAg
cnNoaWZ0cSB0MSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRf
cm90ciwgV2FzbUk2NFJvdHIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDAp
CisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorICAgIHJyb3RhdGVxIHQxLCB0MAorICAgIHJl
dHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9yb3RsLCBXYXNtSTY0Um90bCwgbWFj
cm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3Jo
cywgdDEpCisgICAgbHJvdGF0ZXEgdDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQor
Cit3YXNtT3AoaTY0X2VxLCBXYXNtSTY0RXEsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBt
X2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxZXEgdDAsIHQxLCB0
MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChp
NjRfbmUsIFdhc21JNjROZSwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkK
KyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FuZXEgdDAsIHQxLCB0MgorICAgIGFu
ZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfbHRfcywg
V2FzbUk2NEx0UywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBt
bG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FsdCB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0
MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9sZV9zLCBXYXNtSTY0
TGVTLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShj
dHgsIG1fcmhzLCB0MSkKKyAgICBjcWx0ZXEgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAg
ICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfbHRfdSwgV2FzbUk2NEx0VSwg
bWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBt
X3JocywgdDEpCisgICAgY3FiIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJu
aShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2xlX3UsIFdhc21JNjRMZVUsIG1hY3JvKGN0
eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQx
KQorICAgIGNxYmVxIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgs
IHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2d0X3MsIFdhc21JNjRHdFMsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAg
IGNxZ3QgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitl
bmQpCisKK3dhc21PcChpNjRfZ2VfcywgV2FzbUk2NEdlUywgbWFjcm8oY3R4KQorICAgIG1sb2Fk
cShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FndGVx
IHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQor
Cit3YXNtT3AoaTY0X2d0X3UsIFdhc21JNjRHdFUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4
LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxYSB0MCwgdDEs
IHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9w
KGk2NF9nZV91LCBXYXNtSTY0R2VVLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMs
IHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWFlcSB0MCwgdDEsIHQyCisg
ICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKworIyBpNjQgdW5hcnkg
b3BzCisKK3dhc21PcChpNjRfY3R6LCBXYXNtSTY0Q3R6LCBtYWNybyAoY3R4KQorICAgIG1sb2Fk
cShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgdHpjbnRxIHQwLCB0MAorICAgIHJldHVybnEoY3R4
LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9jbHosIFdhc21JNjRDbHosIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIGx6Y250cSB0MCwgdDEKKyAgICByZXR1
cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfcG9wY250LCBXYXNtSTY0UG9wY250LCBt
YWNybyAoY3R4KQorICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgYTEpCisgICAgcHJlcGFyZVN0
YXRlRm9yQ0NhbGwoKQorICAgIG1vdmUgUEMsIGEwCisgICAgY0NhbGwyKF9zbG93X3BhdGhfd2Fz
bV9wb3Bjb3VudGxsKQorICAgIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQorICAgIHJldHVybnEo
Y3R4LCByMSkKK2VuZCkKKword2FzbU9wKGk2NF9lcXosIFdhc21JNjRFcXosIG1hY3JvKGN0eCkK
KyAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIGNxZXEgdDAsIDAsIHQwCisgICAg
cmV0dXJuaShjdHgsIHQwKQorZW5kKQorCisjIGY2NCBiaW5hcnkgb3BzCisKK3dhc21PcChmNjRf
Y29weXNpZ24sIFdhc21GNjRDb3B5c2lnbiwgbWFjcm8oY3R4KQorICAgIG1sb2FkZChjdHgsIG1f
bGhzLCBmdDApCisgICAgbWxvYWRkKGN0eCwgbV9yaHMsIGZ0MSkKKworICAgIGZkMnEgZnQxLCB0
MQorICAgIG1vdmUgMHg4MDAwMDAwMDAwMDAwMDAwLCB0MgorICAgIGFuZHEgdDIsIHQxCisKKyAg
ICBmZDJxIGZ0MCwgdDAKKyAgICBtb3ZlIDB4N2ZmZmZmZmZmZmZmZmZmZiwgdDIKKyAgICBhbmRx
IHQyLCB0MAorCisgICAgb3JxIHQxLCB0MAorICAgIGZxMmQgdDAsIGZ0MAorICAgIHJldHVybmQo
Y3R4LCBmdDApCitlbmQpCisKKyMgVHlwZSBjb252ZXJzaW9uIG9wcworCit3YXNtT3AoaTY0X2V4
dGVuZF9zX2kzMiwgV2FzbUk2NEV4dGVuZFNJMzIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGkoY3R4
LCBtX29wZXJhbmQsIHQwKQorICAgIHN4aTJxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkK
K2VuZCkKKword2FzbU9wKGk2NF9leHRlbmRfdV9pMzIsIFdhc21JNjRFeHRlbmRVSTMyLCBtYWNy
byhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICB6eGkycSB0MCwgdDEK
KyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChmNjRfcmVpbnRlcnByZXRfaTY0
LCBXYXNtRjY0UmVpbnRlcnByZXRJNjQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29w
ZXJhbmQsIHQwKQorICAgIGZxMmQgdDAsIGZ0MAorICAgIHJldHVybmQoY3R4LCBmdDApCitlbmQp
CisKK3dhc21PcChpNjRfcmVpbnRlcnByZXRfZjY0LCBXYXNtSTY0UmVpbnRlcnByZXRGNjQsIG1h
Y3JvKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKyAgICBmZDJxIGZ0MCwg
dDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc19mNjQs
IFdhc21JMzJUcnVuY1NGNjQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5k
LCBmdDApCisKKyAgICBtb3ZlIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDAgIyBJTlQzMl9NSU4gLSAx
LjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmMKKworICAgIG1vdmUgMHg0MWUwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQzMl9NSU4KKyAg
ICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMK
KworICAgIHRydW5jYXRlZDJpcyBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0
T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5k
KQorCit3YXNtT3AoaTMyX3RydW5jX3VfZjY0LCBXYXNtSTMyVHJ1bmNVRjY0LCBtYWNybyAoY3R4
KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGJmZjAwMDAw
MDAwMDAwMDAsIHQwICMgLTEuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwg
ZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZSAweDQxZjAwMDAwMDAwMDAwMDAsIHQw
ICMgSU5UMzJfTUlOICogLTIuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwg
ZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAorICAgIHJl
dHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24o
T3V0T2ZCb3VuZHNUcnVuYykKK2VuZCkKKword2FzbU9wKGk2NF90cnVuY19zX2YzMiwgV2FzbUk2
NFRydW5jU0YzMiwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkK
KworICAgIG1vdmUgMHhkZjAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4KKyAgICBmaTJmIHQwLCBmdDEK
KyAgICBiZmx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlIDB4NWYw
MDAwMDAsIHQwICMgLUlOVDY0X01JTgorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmZ3RlcXVuIGZ0
MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVmMnFzIGZ0MCwgdDAKKyAg
ICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0
aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfdV9mMzIsIFdh
c21JNjRUcnVuY1VGMzIsIG1hY3JvIChjdHgpCisgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBm
dDApCisKKyAgICBtb3ZlIDB4YmY4MDAwMDAsIHQwICMgLTEuMAorICAgIGZpMmYgdDAsIGZ0MQor
ICAgIGJmbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZSAweDVm
ODAwMDAwLCB0MCAjIElOVDY0X01JTiAqIC0yLjAKKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmd0
ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZjJxIGZ0MCwg
dDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93
RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc19m
NjQsIFdhc21JNjRUcnVuY1NGNjQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVy
YW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YzNlMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4K
KyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5j
CisKKyAgICBtb3ZlIDB4NDNlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCisgICAgZnEy
ZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAg
ICB0cnVuY2F0ZWQycXMgZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91
bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKK2VuZCkKKwor
d2FzbU9wKGk2NF90cnVuY191X2Y2NCwgV2FzbUk2NFRydW5jVUY2NCwgbWFjcm8gKGN0eCkKKyAg
ICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAw
MDAwLCB0MCAjIC0xLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwg
Lm91dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmUgMHg0M2YwMDAwMDAwMDAwMDAwLCB0MCAjIElO
VDY0X01JTiAqIC0yLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwg
Lm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZDJxIGZ0MCwgdDAKKyAgICByZXR1cm5x
KGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91dE9m
Qm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTMy
VHJ1bmNTYXRGNjRTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQw
KQorCisgICAgbW92ZSAweGMxZTAwMDAwMDAyMDAwMDAsIHQwICMgSU5UMzJfTUlOIC0gMS4wCisg
ICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5j
U2F0TWluT3JOYU4KKworICAgIG1vdmUgMHg0MWUwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQzMl9N
SU4KKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZDJpcyBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgs
IHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgorICAgIGJkZXEgZnQwLCBmdDAs
IC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybmkoY3R4
LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIElO
VDMyX01BWCksIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1pbjoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UMzJfTUlOKSwgdDAKKyAgICByZXR1cm5pKGN0
eCwgdDApCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF91LCBXYXNtSTMyVHJ1bmNT
YXRGNjRVLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisg
ICAgbW92ZSAweGJmZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAorICAgIGZxMmQgdDAsIGZ0MQor
ICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorCisgICAgbW92
ZSAweDQxZjAwMDAwMDAwMDAwMDAsIHQwICMgSU5UMzJfTUlOICogLTIuMAorICAgIGZxMmQgdDAs
IGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisg
ICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91
bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKwor
Lm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIFVJTlQzMl9NQVgp
LCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF90cnVuY19zYXRf
ZjMyX3MsIFdhc21JNjRUcnVuY1NhdEYzMlMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRmKGN0eCwg
bV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4ZGYwMDAwMDAsIHQwICMgSU5UNjRfTUlOCisg
ICAgZmkyZiB0MCwgZnQxCisgICAgYmZsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1pbk9yTmFOCisKKyAgICBtb3ZlIDB4NWYwMDAwMDAsIHQwICMgLUlOVDY0X01JTgorICAgIGZp
MmYgdDAsIGZ0MQorICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1h
eAorCisgICAgdHJ1bmNhdGVmMnFzIGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5v
dXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU46CisgICAgYmZlcSBmdDAsIGZ0MCwgLm91dE9mQm91
bmRzVHJ1bmNTYXRNaW4KKyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUFYKSwg
dDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAg
IG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9NSU4pLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2Vu
ZCkKKword2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3UsIFdhc21JNjRUcnVuY1NhdEYzMlUsIG1h
Y3JvIChjdHgpCisgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4
YmY4MDAwMDAsIHQwICMgLTEuMAorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmbHRlcXVuIGZ0MCwg
ZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorCisgICAgbW92ZSAweDVmODAwMDAwLCB0MCAj
IElOVDY0X01JTiAqIC0yLjAKKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmd0ZXF1biBmdDAsIGZ0
MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZjJxIGZ0MCwgdDAKKyAg
ICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUg
MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4Ogor
ICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UNjRfTUFYKSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDAp
CitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTY0VHJ1bmNTYXRGNjRT
LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92
ZSAweGMzZTAwMDAwMDAwMDAwMDAsIHQwICMgSU5UNjRfTUlOCisgICAgZnEyZCB0MCwgZnQxCisg
ICAgYmRsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOCisKKyAgICBt
b3ZlIDB4NDNlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCisgICAgZnEyZCB0MCwgZnQx
CisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0
cnVuY2F0ZWQycXMgZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRz
VHJ1bmNTYXRNaW5Pck5hTjoKKyAgICBiZGVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1pbgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5k
c1RydW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9NQVgpLCB0MAorICAgIHJl
dHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAoY29u
c3RleHByIElOVDY0X01JTiksIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNt
T3AoaTY0X3RydW5jX3NhdF9mNjRfdSwgV2FzbUk2NFRydW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkK
KyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZmYwMDAwMDAw
MDAwMDAwLCB0MCAjIC0xLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0
MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKworICAgIG1vdmUgMHg0M2YwMDAwMDAwMDAwMDAw
LCB0MCAjIElOVDY0X01JTiAqIC0yLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZDJxIGZ0MCwg
dDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAg
IG1vdmUgMCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0
TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UNjRfTUFYKSwgdDAKKyAgICByZXR1cm5xKGN0
eCwgdDApCitlbmQpCisKKyMgRXh0ZW5kIG9wcworCit3YXNtT3AoaTY0X2V4dGVuZDhfcywgV2Fz
bUk2NEV4dGVuZDhTLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkK
KyAgICBzeGIycSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChp
NjRfZXh0ZW5kMTZfcywgV2FzbUk2NEV4dGVuZDE2UywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShj
dHgsIG1fb3BlcmFuZCwgdDApCisgICAgc3hoMnEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQx
KQorZW5kKQorCit3YXNtT3AoaTY0X2V4dGVuZDMyX3MsIFdhc21JNjRFeHRlbmQxNlMsIG1hY3Jv
KGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHN4aTJxIHQwLCB0MQor
ICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKworIyBBdG9taWNzCisKK21hY3JvIHdhc21BdG9t
aWNCaW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5o
LCBmbmksIGZucSkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVf
dSwgV2FzbUk2NEF0b21pY1JtdzgldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAg
ICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNl
dCwgdDEpCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQwKQorICAgICAgICBlbWl0Q2hl
Y2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgsIHQzLCB0MSwgMSkKKyAgICAgICAg
Zm5iKHQwLCBbdDNdLCB0MiwgdDUsIHQxKQorICAgICAgICBhbmRxIDB4ZmYsIHQwICMgRklYTUU6
IFplcm9FeHRlbmQ4VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZm
LCAub2sgZW5kKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorICAgIHdhc21P
cChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzE2
JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9p
bnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBtbG9h
ZHEoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJB
ZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDIpCisgICAgICAgIGZu
aCh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKKyAgICAgICAgYW5kcSAweGZmZmYsIHQwICMgRklYTUU6
IFplcm9FeHRlbmQxNlRvNjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhm
ZmZmLCAub2sgZW5kKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorICAgIHdh
c21PcChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1Jt
dzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1f
cG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBt
bG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50
ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDQpCisgICAgICAg
IGZuaSh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJl
cSB0MCwgMHhmZmZmZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAg
IGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2
NEF0b21pY1JtdyV1cHBlckNhc2VPcGNvZGUlLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShj
dHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAg
ICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFy
ZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDgpCisg
ICAgICAgIGZucSh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKKyAgICAgICAgcmV0dXJucShjdHgsIHQw
KQorICAgIGVuZCkKK2VuZAorCittYWNybyB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtD
QVMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuaSwgZm5xKQorICAgIHdhc21B
dG9taWNCaW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBp
ZiBYODZfNjQKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgorICAgICAgICAgICAg
ICAgIGxvYWRiIG1lbSwgdDBHUFIKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAg
IG1vdmUgdDBHUFIsIHQyR1BSCisgICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKKyAg
ICAgICAgICAgICAgICBiYXRvbWljd2Vha2Nhc2IgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2Fk
bGlua2FjcWIgbWVtLCB0MUdQUgorICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQy
R1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29uZHJlbGIgdDVHUFIsIHQyR1BSLCBtZW0KKyAg
ICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBtb3Zl
IHQxR1BSLCB0MEdQUgorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFj
cm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIGlmIFg4Nl82
NAorICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCisgICAgICAgICAgICAgICAgbG9h
ZGggbWVtLCB0MEdQUgorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbW92ZSB0
MEdQUiwgdDJHUFIKKyAgICAgICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQorICAgICAgICAg
ICAgICAgIGJhdG9taWN3ZWFrY2FzaCB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNx
aCBtZW0sIHQxR1BSCisgICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisg
ICAgICAgICAgICAgICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAg
ICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAorICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIs
IHQwR1BSCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgaWYgWDg2XzY0CisgICAg
ICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKKyAgICAgICAgICAgICAgICBsb2FkaSBtZW0s
IHQwR1BSCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0
MkdQUgorICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAg
YmF0b21pY3dlYWtjYXNpIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAorICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9hZGxpbmthY3FpIG1lbSwg
dDFHUFIKKyAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAg
ICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICAgICAg
YmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIK
KyAgICAgICAgICAgIGVuZAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBpZiBYODZfNjQKKyAgICAgICAgICAg
ICAgICBtb3ZlIHQwR1BSLCB0NUdQUgorICAgICAgICAgICAgICAgIGxvYWRxIG1lbSwgdDBHUFIK
KyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCisg
ICAgICAgICAgICAgICAgZm5xKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBiYXRvbWlj
d2Vha2Nhc3EgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2FkbGlua2FjcXEgbWVtLCB0MUdQUgor
ICAgICAgICAgICAgICAgIGZucSh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAg
IHN0b3JlY29uZHJlbHEgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0
NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgorICAgICAg
ICAgICAgZW5kCisgICAgICAgIGVuZCkKK2VuZAorCitpZiBYODZfNjQKKyAgICB3YXNtQXRvbWlj
QmluYXJ5Uk1XT3BzKF9hZGQsIEFkZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGIgdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRoIHQwR1BS
LCBtZW0gZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KSBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZHEgdDBHUFIsIG1lbSBlbmQpCisg
ICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfc3ViLCBTdWIsCisgICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJiIHQwR1BSLCBtZW0gZW5k
LAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4
Y2hnc3ViaCB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1YmkgdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJxIHQwR1BS
LCBtZW0gZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hjaGcsIFhjaGcsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdiIHQw
R1BSLCBtZW0gZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKSBhdG9taWN4Y2hnaCB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2kgdDBHUFIsIG1lbSBlbmQsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdxIHQw
R1BSLCBtZW0gZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYW5k
LCBBbmQsCisgICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgIGFuZGkgdDVH
UFIsIHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQorICAg
ICAgICAgICAgYW5kcSB0NUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNC
aW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfb3IsIE9yLAorICAgICAgICBtYWNybyh0NUdQUiwgdDJH
UFIpCisgICAgICAgICAgICBvcmkgdDVHUFIsIHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAg
bWFjcm8odDVHUFIsIHQyR1BSKQorICAgICAgICAgICAgb3JxIHQ1R1BSLCB0MkdQUgorICAgICAg
ICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwK
KyAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQorICAgICAgICAgICAgeG9yaSB0NUdQUiwgdDJH
UFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCisgICAgICAgICAg
ICB4b3JxIHQ1R1BSLCB0MkdQUgorICAgICAgICBlbmQpCitlbHNpZiBBUk02NEUKKyAgICB3YXNt
QXRvbWljQmluYXJ5Uk1XT3BzKF9hZGQsIEFkZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwg
dDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGIgdDBHUFIsIG1lbSwgdDBHUFIgZW5k
LAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4
Y2hnYWRkaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0sIHQwR1BSIGVu
ZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWlj
eGNoZ2FkZHEgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdP
cHMoX3N1YiwgU3ViLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKQorICAgICAgICAgICAgbmVncSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGIg
dDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgbmVncSB0MEdQUgorICAgICAgICAg
ICAgYXRvbWljeGNoZ2FkZGggdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kLAorICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgbmVn
cSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1lbSwgdDBHUFIKKyAg
ICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KQorICAgICAgICAgICAgbmVncSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2FkZHEgdDBH
UFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMo
X2FuZCwgQW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KQorICAgICAgICAgICAgbm90cSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFyYiB0
MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBub3RxIHQwR1BSCisgICAgICAgICAg
ICBhdG9taWN4Y2hnY2xlYXJoIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCwKKyAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5v
dHEgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcmkgdDBHUFIsIG1lbSwgdDBHUFIK
KyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKQorICAgICAgICAgICAgbm90cSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFy
cSB0MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJN
V09wcyhfb3IsIE9yLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKSBhdG9taWN4Y2hnb3JiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29yaCB0MEdQUiwgbWVt
LCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFH
UFIpIGF0b21pY3hjaGdvcmkgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnb3JxIHQwR1BSLCBtZW0s
IHQwR1BSIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94b3IsIFhvciwKKyAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmIg
dDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwg
dDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9yaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3Jp
IHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcnEgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQorICAg
IHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hjaGcsIFhjaGcsCisgICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdiIHQwR1BSLCBtZW0sIHQwR1BS
IGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRv
bWljeGNoZ2ggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQs
CisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hj
aGdxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKK2Vsc2lmIEFSTTY0IG9yIFJJU0NWNjQKKyAgICB3
YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FkZCwgQWRkLAorICAgICAgICBtYWNy
byh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgYWRkaSB0MEdQUiwgdDFHUFIsIHQy
R1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAg
ICAgICAgICAgIGFkZHEgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQpCisgICAgd2Fz
bUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9zdWIsIFN1YiwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIHN1YmkgdDFHUFIsIHQwR1BSLCB0MkdQ
UgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAg
ICAgICAgICBzdWJxIHQxR1BSLCB0MEdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21B
dG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeGNoZywgWGNoZywKKyAgICAgICAgbWFjcm8o
dDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCisgICAg
ICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAg
IG1vdmUgdDBHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1X
T3BzV2l0aFdlYWtDQVMoX2FuZCwgQW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQy
R1BSKQorICAgICAgICAgICAgYW5kaSB0MEdQUiwgdDFHUFIsIHQyR1BSCisgICAgICAgIGVuZCwK
KyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIGFuZHEgdDBH
UFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09w
c1dpdGhXZWFrQ0FTKF9vciwgT3IsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIp
CisgICAgICAgICAgICBvcmkgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBvcnEgdDBHUFIsIHQx
R1BSLCB0MkdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhX
ZWFrQ0FTKF94b3IsIFhvciwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAg
ICAgICAgICAgIHhvcmkgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAg
IG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICB4b3JxIHQwR1BSLCB0MUdQ
UiwgdDJHUFIKKyAgICAgICAgZW5kKQorZW5kCisKK21hY3JvIHdhc21BdG9taWNDb21wYXJlRXhj
aGFuZ2VPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmks
IGZucSkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2Fz
bUk2NEF0b21pY1JtdzgldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxv
YWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEp
CisgICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQorICAgICAgICBtbG9hZHEoY3R4
LCBtX3ZhbHVlLCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdP
ZmZzZXQoY3R4LCB0MywgdDEsIDEpCisgICAgICAgIGZuYih0MCwgdDIsIFt0M10sIHQ1LCB0MSkK
KyAgICAgICAgYW5kcSAweGZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kOFRvNjQKKyAgICAgICAg
YXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJu
cShjdHgsIHQwKQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcxNiVsb3dlckNh
c2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXcxNiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8o
Y3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShj
dHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCisg
ICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVw
YXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgMikK
KyAgICAgICAgZm5oKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQorICAgICAgICBhbmRxIDB4ZmZmZiwg
dDAgIyBGSVhNRTogWmVyb0V4dGVuZDE2VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJx
YmVxIHQwLCAweGZmZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBl
bmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MzIlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNt
STY0QXRvbWljUm13MzIldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxv
YWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEp
CisgICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQorICAgICAgICBtbG9hZHEoY3R4
LCBtX3ZhbHVlLCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdP
ZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDQpCisgICAgICAgIGZuaSh0MCwg
dDIsIFt0M10sIHQ1LCB0MSkKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhm
ZmZmZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKKyAg
ICB3YXNtT3AoaTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0b21pY1Jt
dyV1cHBlckNhc2VPcGNvZGUlLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9p
bnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBtbG9h
ZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIp
CisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdu
bWVudENoZWNrKGN0eCwgdDMsIHQxLCA4KQorICAgICAgICBmbnEodDAsIHQyLCBbdDNdLCB0NSwg
dDEpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBlbmQpCitlbmQKKworaWYgWDg2XzY0
IG9yIEFSTTY0RSBvciBBUk02NCBvciBSSVNDVjY0CisjIHQwR1BSID0+IGV4cGVjdGVkLCB0MkdQ
UiA9PiB2YWx1ZSwgbWVtID0+IG1lbW9yeSByZWZlcmVuY2UKK3dhc21BdG9taWNDb21wYXJlRXhj
aGFuZ2VPcHMoX2NtcHhjaGcsIENtcHhjaGcsCisgICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0s
IHQ1R1BSLCB0MUdQUikKKyAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQorICAgICAgICAgICAg
YnFhIHQwR1BSICwgMHhmZiwgLmZhaWwKKyAgICAgICAgICAgIGF0b21pY3dlYWtjYXNiIHQwR1BS
LCB0MkdQUiwgbWVtCisgICAgICAgICAgICBqbXAgLmRvbmUKKyAgICAgICAgLmZhaWw6CisgICAg
ICAgICAgICBhdG9taWNsb2FkYiBtZW0sIHQwR1BSCisgICAgICAgIC5kb25lOgorICAgICAgICBl
bHNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmthY3FiIG1lbSwgdDFHUFIK
KyAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKKyAgICAgICAgICAgIHN0b3Jl
Y29uZHJlbGIgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5k
b25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBz
dG9yZWNvbmRyZWxiIHQ1R1BSLCB0MUdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAw
LCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAgICAg
ICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgZW5kCisgICAgZW5kLAorICAgIG1hY3JvKHQw
R1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCisgICAgICAgIGlmIFg4Nl82NCBvciBBUk02
NEUKKyAgICAgICAgICAgIGJxYSB0MEdQUiwgMHhmZmZmLCAuZmFpbAorICAgICAgICAgICAgYXRv
bWljd2Vha2Nhc2ggdDBHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGptcCAuZG9uZQorICAg
ICAgICAuZmFpbDoKKyAgICAgICAgICAgIGF0b21pY2xvYWRoIG1lbSwgdDBHUFIKKyAgICAgICAg
LmRvbmU6CisgICAgICAgIGVsc2UKKyAgICAgICAgLmxvb3A6CisgICAgICAgICAgICBsb2FkbGlu
a2FjcWggbWVtLCB0MUdQUgorICAgICAgICAgICAgYnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAor
ICAgICAgICAgICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAg
YmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZmFp
bDoKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQxR1BSLCBtZW0KKyAgICAgICAg
ICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAg
LmRvbmU6CisgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgorICAgICAgICBlbmQKKyAgICBl
bmQsCisgICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BSLCB0MUdQUikKKyAgICAgICAg
aWYgWDg2XzY0IG9yIEFSTTY0RQorICAgICAgICAgICAgYnFhIHQwR1BSLCAweGZmZmZmZmZmLCAu
ZmFpbAorICAgICAgICAgICAgYXRvbWljd2Vha2Nhc2kgdDBHUFIsIHQyR1BSLCBtZW0KKyAgICAg
ICAgICAgIGptcCAuZG9uZQorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIGF0b21pY2xvYWRp
IG1lbSwgdDBHUFIKKyAgICAgICAgLmRvbmU6CisgICAgICAgIGVsc2UKKyAgICAgICAgLmxvb3A6
CisgICAgICAgICAgICBsb2FkbGlua2FjcWkgbWVtLCB0MUdQUgorICAgICAgICAgICAgYnFuZXEg
dDBHUFIsIHQxR1BSLCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwgdDJH
UFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGpt
cCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGkgdDVHUFIs
IHQxR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAg
ICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQ
UgorICAgICAgICBlbmQKKyAgICBlbmQsCisgICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1
R1BSLCB0MUdQUikKKyAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQorICAgICAgICAgICAgYXRv
bWljd2Vha2Nhc3EgdDBHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgZWxzZQorICAgICAgICAubG9v
cDoKKyAgICAgICAgICAgIGxvYWRsaW5rYWNxcSBtZW0sIHQxR1BSCisgICAgICAgICAgICBicW5l
cSB0MEdQUiwgdDFHUFIsIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmRyZWxxIHQ1R1BSLCB0
MkdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAgICAgICAg
am1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgc3RvcmVjb25kcmVscSB0NUdQ
UiwgdDFHUFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAg
ICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQw
R1BSCisgICAgICAgIGVuZAorICAgIGVuZCkKK2VuZAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9hcm0ucmIKaW5kZXggOWM1NDhhM2MyZThlLi40ODQ3NmJkZjhkODIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybS5yYgorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIKQEAgLTYxLDYgKzYxLDExIEBAIGNsYXNz
IE5vZGUKICAgICAgICAgcmFpc2UgIkJvZ3VzIHJlZ2lzdGVyIG5hbWUgI3tkb3VibGVPcGVyYW5k
fSIgdW5sZXNzIGRvdWJsZU9wZXJhbmQgPX4gL15kLwogICAgICAgICAicyIgKyAoJH4ucG9zdF9t
YXRjaC50b19pICogMikudG9fcwogICAgIGVuZAorICAgIGRlZiBhcm1TaW5nbGVIaQorICAgICAg
ICBkb3VibGVPcGVyYW5kID0gYXJtT3BlcmFuZAorICAgICAgICByYWlzZSAiQm9ndXMgcmVnaXN0
ZXIgbmFtZSAje2RvdWJsZU9wZXJhbmR9IiB1bmxlc3MgZG91YmxlT3BlcmFuZCA9fiAvXmQvCisg
ICAgICAgICJzIiArICgkfi5wb3N0X21hdGNoLnRvX2kgKiAyICsgMSkudG9fcworICAgIGVuZAog
ZW5kCiAKIGNsYXNzIFNwZWNpYWxSZWdpc3RlcgpAQCAtOTMsMjAgKzk4LDIyIEBAIGVuZAogY2xh
c3MgUmVnaXN0ZXJJRAogICAgIGRlZiBhcm1PcGVyYW5kCiAgICAgICAgIGNhc2UgbmFtZQotICAg
ICAgICB3aGVuICJ0MCIsICJhMCIsICJyMCIKKyAgICAgICAgd2hlbiAidDAiLCAiYTAiLCAicjAi
LCAid2EwIgogICAgICAgICAgICAgInIwIgotICAgICAgICB3aGVuICJ0MSIsICJhMSIsICJyMSIK
KyAgICAgICAgd2hlbiAidDEiLCAiYTEiLCAicjEiLCAid2ExIgogICAgICAgICAgICAgInIxIgot
ICAgICAgICB3aGVuICJ0MiIsICJhMiIKKyAgICAgICAgd2hlbiAidDIiLCAiYTIiLCAid2EyIgog
ICAgICAgICAgICAgInIyIgotICAgICAgICB3aGVuICJhMyIKLSAgICAgICAgICAgICJyMyIKLSAg
ICAgICAgd2hlbiAidDMiCisgICAgICAgIHdoZW4gInQzIiwgImEzIiwgIndhMyIKICAgICAgICAg
ICAgICJyMyIKLSAgICAgICAgd2hlbiAidDQiCisgICAgICAgIHdoZW4gInQ0IiAjIExMSW50IFBD
CiAgICAgICAgICAgICAicjgiCi0gICAgICAgIHdoZW4gInQ1IgorICAgICAgICB3aGVuICJ0NSIs
ICJ3czAiICMgd3MwIG11c3QgYmUgYSBub24tYXJndW1lbnQvbm9uLXJldHVybiBHUFIKICAgICAg
ICAgICAgICJyOSIKKyAgICAgICAgd2hlbiAidDYiLCAid3MxIiAjIHdzMSBtdXN0IGJlIGEgbm9u
LWFyZ3VtZW50L25vbi1yZXR1cm4gR1BSCisgICAgICAgICAgICAicjUiCisgICAgICAgIHdoZW4g
InQ3IgorICAgICAgICAgICAgInI0IgogICAgICAgICB3aGVuICJjZnIiCiAgICAgICAgICAgICAi
cjciCiAgICAgICAgIHdoZW4gImNzcjAiCkBAIC0xMjgsMTggKzEzNSwyMiBAQCBlbmQKIGNsYXNz
IEZQUmVnaXN0ZXJJRAogICAgIGRlZiBhcm1PcGVyYW5kCiAgICAgICAgIGNhc2UgbmFtZQotICAg
ICAgICB3aGVuICJmdDAiLCAiZnIiLCAiZmEwIgorICAgICAgICB3aGVuICJmdDAiLCAiZnIiLCAi
ZmEwIiwgIndmYTAiCiAgICAgICAgICAgICAiZDAiCi0gICAgICAgIHdoZW4gImZ0MSIsICJmYTEi
CisgICAgICAgIHdoZW4gImZ0MSIsICJmYTEiLCAid2ZhMSIKICAgICAgICAgICAgICJkMSIKLSAg
ICAgICAgd2hlbiAiZnQyIgorICAgICAgICB3aGVuICJmdDIiLCAid2ZhMiIKICAgICAgICAgICAg
ICJkMiIKLSAgICAgICAgd2hlbiAiZnQzIgorICAgICAgICB3aGVuICJmdDMiLCAid2ZhMyIKICAg
ICAgICAgICAgICJkMyIKLSAgICAgICAgd2hlbiAiZnQ0IgorICAgICAgICB3aGVuICJmdDQiLCAi
d2ZhNCIKICAgICAgICAgICAgICJkNCIKLSAgICAgICAgd2hlbiAiZnQ1IgorICAgICAgICB3aGVu
ICJmdDUiLCAid2ZhNSIKICAgICAgICAgICAgICJkNSIKKyAgICAgICAgd2hlbiAiZnQ2IiwgIndm
YTYiCisgICAgICAgICAgICAiZDYiCisgICAgICAgIHdoZW4gImZ0NyIsICJ3ZmE3IgorICAgICAg
ICAgICAgImQ3IgogICAgICAgICBlbHNlCiAgICAgICAgICAgICByYWlzZSAiQmFkIHJlZ2lzdGVy
ICN7bmFtZX0gZm9yIEFSTSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgogICAgICAgICBlbmQKQEAg
LTE1Niw3ICsxNjcsMTEgQEAgZW5kCiBjbGFzcyBBZGRyZXNzCiAgICAgZGVmIGFybU9wZXJhbmQK
ICAgICAgICAgcmFpc2UgIkJhZCBvZmZzZXQgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgaWYgb2Zm
c2V0LnZhbHVlIDwgLTB4ZmYgb3Igb2Zmc2V0LnZhbHVlID4gMHhmZmYKLSAgICAgICAgIlsje2Jh
c2UuYXJtT3BlcmFuZH0sIFwjI3tvZmZzZXQudmFsdWV9XSIKKyAgICAgICAgaWYgb2Zmc2V0LnZh
bHVlID09IDAKKyAgICAgICAgICAiWyN7YmFzZS5hcm1PcGVyYW5kfV0iCisgICAgICAgIGVsc2UK
KyAgICAgICAgICAiWyN7YmFzZS5hcm1PcGVyYW5kfSwgXCMje29mZnNldC52YWx1ZX1dIgorICAg
ICAgICBlbmQKICAgICBlbmQKIGVuZAogCkBAIC0yOTksMTYgKzMxNCwyNSBAQCBjbGFzcyBTZXF1
ZW5jZQogICAgICAgICByZXN1bHQgPSBhcm1Mb3dlckxhYmVsUmVmZXJlbmNlcyhyZXN1bHQpCiAg
ICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3NlcyhyZXN1bHQpIHsKICAg
ICAgICAgICAgIHwgbm9kZSwgYWRkcmVzcyB8Ci0gICAgICAgICAgICBpZiBhZGRyZXNzLmlzX2E/
IEJhc2VJbmRleAotICAgICAgICAgICAgICAgIGFkZHJlc3Mub2Zmc2V0LnZhbHVlID09IDAKLSAg
ICAgICAgICAgIGVsc2lmIGFkZHJlc3MuaXNfYT8gQWRkcmVzcwotICAgICAgICAgICAgICAgICgt
MHhmZi4uMHhmZmYpLmluY2x1ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVlCisgICAgICAgICAgICBj
YXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVuICJsb2FkMmlhIiwgInN0b3JlMmlhIgor
ICAgICAgICAgICAgICAgIGlmIGFkZHJlc3MuaXNfYT8gQWRkcmVzcworICAgICAgICAgICAgICAg
ICAgICAoYWRkcmVzcy5vZmZzZXQudmFsdWUgJSA0ID09IDApICYmICgoLTEwMjMuLjEwMjMpLmlu
Y2x1ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVlKQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgZmFsc2UKKyAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICBmYWxzZQorICAgICAgICAgICAgICAgIGlmIGFkZHJlc3MuaXNf
YT8gQmFzZUluZGV4CisgICAgICAgICAgICAgICAgICAgIGFkZHJlc3Mub2Zmc2V0LnZhbHVlID09
IDAgJiYgbm9kZS5vcGNvZGUKKyAgICAgICAgICAgICAgICBlbHNpZiBhZGRyZXNzLmlzX2E/IEFk
ZHJlc3MKKyAgICAgICAgICAgICAgICAgICAgKC0weGZmLi4weGZmZikuaW5jbHVkZT8gYWRkcmVz
cy5vZmZzZXQudmFsdWUKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAg
IGZhbHNlCisgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICBlbmQKICAgICAgICAgfQog
ICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXNEb3VibGUocmVzdWx0
KQotICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKHJlc3VsdCwg
WyJzdG9yZWIiLCAic3RvcmVoIiwgInN0b3JlaSIsICJzdG9yZXAiLCAic3RvcmVxIl0pCisgICAg
ICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMocmVzdWx0LCBbInN0b3Jl
YiIsICJzdG9yZWgiLCAic3RvcmVpIiwgInN0b3JlcCIsICJzdG9yZXEiLCAic3RvcmUyaWEiXSkK
ICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRlcyhyZXN1bHQsIDAu
LjB4ZmYsIDAuLjB4MGZmKQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRBZGRy
ZXNzZXMocmVzdWx0KQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJSZWdpc3RlclJldXNlKHJl
c3VsdCkKQEAgLTMyNyw2ICszNTEsMTAgQEAgZGVmIGFybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5k
cykKICAgICBhcm1PcGVyYW5kcyhbb3BlcmFuZHNbLTFdXSArIG9wZXJhbmRzWzAuLi0yXSkKIGVu
ZAogCitkZWYgYXJtRmxpcHBlZE9wZXJhbmRzUGFpcihvcGVyYW5kcykKKyAgICBhcm1PcGVyYW5k
cyhbb3BlcmFuZHNbLTJdLCBvcGVyYW5kc1stMV1dICsgb3BlcmFuZHNbMC4uLTNdKQorZW5kCisK
IGRlZiBlbWl0QXJtQ29tcGFjdChvcGNvZGUyLCBvcGNvZGUzLCBvcGVyYW5kcykKICAgICBpZiBv
cGVyYW5kcy5zaXplID09IDMKICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZTN9ICN7YXJtRmxp
cHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCkBAIC0zNTYsNiArMzg0LDEyIEBAIGRlZiBlbWl0QXJt
RG91YmxlQnJhbmNoKGJyYW5jaE9wY29kZSwgb3BlcmFuZHMpCiAgICAgJGFzbS5wdXRzICIje2Jy
YW5jaE9wY29kZX0gI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCiBlbmQKIAorZGVmIGVtaXRBcm1T
aW5nbGVCcmFuY2goYnJhbmNoT3Bjb2RlLCBvcGVyYW5kcykKKyAgICAkYXNtLnB1dHMgInZjbXBl
LmYzMiAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIK
KyAgICAkYXNtLnB1dHMgInZtcnMgYXBzcl9uemN2LCBmcHNjciIKKyAgICAkYXNtLnB1dHMgIiN7
YnJhbmNoT3Bjb2RlfSAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKK2VuZAorCiBkZWYgZW1pdEFy
bVRlc3Qob3BlcmFuZHMpCiAgICAgdmFsdWUgPSBvcGVyYW5kc1swXQogICAgIGNhc2Ugb3BlcmFu
ZHMuc2l6ZQpAQCAtMzc2LDcgKzQxMCwxNSBAQCBlbmQKIAogZGVmIGVtaXRBcm1Eb3VibGVDb21w
YXJlKG9wZXJhbmRzLCBjb2RlKQogICAgICRhc20ucHV0cyAibW92ICN7b3BlcmFuZHNbMl0uYXJt
T3BlcmFuZH0sIFwjMCIKLSAgICAkYXNtLnB1dHMgInZjbXBlLmY2NCAje2FybU9wZXJhbmRzKG9w
ZXJhbmRzWzAuLjFdKX0iCisgICAgJGFzbS5wdXRzICJ2Y21wLmY2NCAje2FybU9wZXJhbmRzKG9w
ZXJhbmRzWzAuLjFdKX0iCisgICAgJGFzbS5wdXRzICJ2bXJzIEFQU1JfbnpjdiwgRlBTQ1IiCisg
ICAgJGFzbS5wdXRzICJpdCAje2NvZGV9IgorICAgICRhc20ucHV0cyAibW92I3tjb2RlfSAje29w
ZXJhbmRzWzJdLmFybU9wZXJhbmR9LCBcIzEiCitlbmQKKworZGVmIGVtaXRBcm1GbG9hdENvbXBh
cmUob3BlcmFuZHMsIGNvZGUpCisgICAgJGFzbS5wdXRzICJtb3YgI3tvcGVyYW5kc1syXS5hcm1P
cGVyYW5kfSwgXCMwIgorICAgICRhc20ucHV0cyAidmNtcC5mMzIgI3tvcGVyYW5kc1swXS5hcm1T
aW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iCiAgICAgJGFzbS5wdXRzICJ2bXJzIEFQ
U1JfbnpjdiwgRlBTQ1IiCiAgICAgJGFzbS5wdXRzICJpdCAje2NvZGV9IgogICAgICRhc20ucHV0
cyAibW92I3tjb2RlfSAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCBcIzEiCkBAIC0zOTYsNiAr
NDM4LDE5IEBAIGRlZiBlbWl0QXJtVGVzdFNldChvcGVyYW5kcywgY29kZSkKICAgICAkYXNtLnB1
dHMgIm1vdiN7Y29kZX0gI3tvcGVyYW5kc1stMV0uYXJtT3BlcmFuZH0sIFwjMSIKIGVuZAogCitk
ZWYgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgdGV4dCkKKyAgICByZXR1cm4gSW5zdHJ1Y3Rp
b24ubmV3KGNvZGVPcmlnaW4sICJlbWl0IiwgW1N0cmluZ0xpdGVyYWwubmV3KGNvZGVPcmlnaW4s
ICJcIiN7dGV4dH1cIiIpXSkKK2VuZAorCitkZWYgZW1pdEFybVRydW5jYXRlRmxvYXQoY29kZU9y
aWdpbiwgdG8sIGZyb20sIG9wZXJhbmRzKQorICAgIHRtcCA9IEFSTV9FWFRSQV9GUFJTWy0xXQor
ICAgIHNyYyA9IGZyb20gPT0gImYzMiIgPyBvcGVyYW5kc1swXS5hcm1TaW5nbGUgOiBvcGVyYW5k
c1swXS5hcm1PcGVyYW5kCisgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAg
cmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgInZjdnQuI3t0b30uI3tmcm9tfSAje3RtcC5hcm1T
aW5nbGV9LCAje3NyY30iKSwKKyAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgInZt
b3YgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3t0bXAuYXJtU2luZ2xlfSIpCisgICAgXSku
bG93ZXIoJGFjdGl2ZUJhY2tlbmQpCitlbmQKKwogY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICBkZWYg
bG93ZXJBUk12NwogICAgICAgICByYWlzZSB1bmxlc3MgJGFjdGl2ZUJhY2tlbmQgPT0gIkFSTXY3
IgpAQCAtNDMzLDYgKzQ4OCwxMCBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgICAg
ICAgICAkYXNtLnB1dHMgImFkZCN7c3VmZml4fSAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5k
cyl9IgogICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4g
ImFkY2kiCisgICAgICAgICAgICBlbWl0QXJtKCJhZGMiLCBvcGVyYW5kcykKKyAgICAgICAgd2hl
biAiYWJzZCIKKyAgICAgICAgICAkYXNtLnB1dHMgInZhYnMuZjY0ICN7YXJtRmxpcHBlZE9wZXJh
bmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gImFuZGkiLCAiYW5kcCIKICAgICAgICAgICAg
IGVtaXRBcm1Db21wYWN0KCJhbmRzIiwgImFuZCIsIG9wZXJhbmRzKQogICAgICAgICB3aGVuICJv
cmkiLCAib3JwIiwgIm9yaCIKQEAgLTQ1MSwxNCArNTEwLDM0IEBAIGNsYXNzIEluc3RydWN0aW9u
CiAgICAgICAgICAgICBlbWl0QXJtKCJtdWwiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAic3Vi
aSIsICJzdWJwIiwgInN1YmlzIgogICAgICAgICAgICAgZW1pdEFybUNvbXBhY3QoInN1YnMiLCAi
c3VicyIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJzYmNpIgorICAgICAgICAgICAgZW1pdEFy
bSgic2JjIiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gIm5lZ2kiLCAibmVncCIKICAgICAgICAg
ICAgICRhc20ucHV0cyAicnNicyAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJhbmRz
WzBdLmFybU9wZXJhbmR9LCBcIzAiCiAgICAgICAgIHdoZW4gIm5vdGkiCiAgICAgICAgICAgICAk
YXNtLnB1dHMgIm12bnMgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5h
cm1PcGVyYW5kfSIKKyAgICAgICAgd2hlbiAibHJvdGF0ZWkiCisgICAgICAgICAgICB0bXAgPSBU
bXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICBTZXF1ZW5jZS5uZXcoY29kZU9y
aWdpbiwgWworICAgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAibW92
ZSIsIFtvcGVyYW5kc1swXSwgdG1wXSksCisgICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3
KGNvZGVPcmlnaW4sICJuZWdpIiwgW3RtcF0pLAorICAgICAgICAgICAgICAgIEluc3RydWN0aW9u
Lm5ldyhjb2RlT3JpZ2luLCAicnJvdGF0ZWkiLCBbdG1wLCBvcGVyYW5kc1sxXV0pLAorICAgICAg
ICAgICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCisgICAgICAgIHdoZW4gInJyb3RhdGVpIgor
ICAgICAgICAgICAgJGFzbS5wdXRzICJyb3IgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMp
fSIKKyAgICAgICAgd2hlbiAidHpjbnRpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJyYml0ICN7
YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImNs
eiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9Igor
ICAgICAgICB3aGVuICJsemNudGkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImNseiAje2FybUZs
aXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJsb2FkaSIsICJsb2FkaXMi
LCAibG9hZHAiCiAgICAgICAgICAgICAkYXNtLnB1dHMgImxkciAje2FybUZsaXBwZWRPcGVyYW5k
cyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJzdG9yZWkiLCAic3RvcmVwIgogICAgICAgICAg
ICAgJGFzbS5wdXRzICJzdHIgI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVu
ICJsb2FkMmlhIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsZHJkICN7YXJtRmxpcHBlZE9wZXJh
bmRzUGFpcihvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9yZTJpYSIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAic3RyZCAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4g
ImxvYWRiIgogICAgICAgICAgICAgJGFzbS5wdXRzICJsZHJiICN7YXJtRmxpcHBlZE9wZXJhbmRz
KG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gImxvYWRic2kiCkBAIC00NzEsMjAgKzU1MCwxMTAg
QEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgICRhc20ucHV0cyAibGRyc2gudyAje2Fy
bUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJzdG9yZWgiCiAgICAg
ICAgICAgICAkYXNtLnB1dHMgInN0cmggI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAg
ICB3aGVuICJsb2FkbGlua2IiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmV4YiAje2FybUZs
aXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkbGlua2giCisgICAg
ICAgICAgICAkYXNtLnB1dHMgImxkcmV4aCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9
IgorICAgICAgICB3aGVuICJsb2FkbGlua2kiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmV4
ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRsaW5r
MmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmV4ZCAje2FybUZsaXBwZWRPcGVyYW5kc1Bh
aXIob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVjb25kYiIKKyAgICAgICAgICAgICRh
c20ucHV0cyAic3RyZXhiICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAi
c3RvcmVjb25kaCIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RyZXhoICN7YXJtT3BlcmFuZHMo
b3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVjb25kaSIKKyAgICAgICAgICAgICRhc20u
cHV0cyAic3RyZXggI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9y
ZWNvbmQyaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RyZXhkICN7YXJtT3BlcmFuZHMob3Bl
cmFuZHMpfSIKICAgICAgICAgd2hlbiAibG9hZGQiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZs
ZHIuNjQgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAic3Rv
cmVkIgogICAgICAgICAgICAgJGFzbS5wdXRzICJ2c3RyLjY0ICN7YXJtT3BlcmFuZHMob3BlcmFu
ZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGYiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZsZHIu
MzIgI3tvcGVyYW5kc1stMV0uYXJtU2luZ2xlfSwgI3thcm1PcGVyYW5kcyhvcGVyYW5kc1swLi4t
Ml0pfSIKKyAgICAgICAgd2hlbiAic3RvcmVmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2c3Ry
LjMyICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSwgI3thcm1PcGVyYW5kcyhvcGVyYW5kc1sxLi4t
MV0pfSIKKyAgICAgICAgd2hlbiAiYWRkZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmFkZC5m
MzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7
b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAic3ViZiIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAidnN1Yi5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRz
WzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAi
bXVsZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm11bC5mMzIgI3tvcGVyYW5kc1sxXS5hcm1T
aW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xl
fSIKKyAgICAgICAgd2hlbiAiZGl2ZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmRpdi5mMzIg
I3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3Bl
cmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAic3FydGYiCisgICAgICAgICAgICAk
YXNtLnB1dHMgInZzcXJ0LmYzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNb
MF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAiYWJzZiIKKyAgICAgICAgICAgICRhc20ucHV0
cyAidmFicy5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybVNp
bmdsZX0iCisgICAgICAgIHdoZW4gIm5lZ2YiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZuZWcu
ZjMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9Igor
ICAgICAgICB3aGVuICJiZmx0IgorICAgICAgICAgICAgZW1pdEFybVNpbmdsZUJyYW5jaCgiYm1p
Iiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJmbHR1biIKKyAgICAgICAgICAgIGVtaXRBcm1T
aW5nbGVCcmFuY2goImJsdCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZmx0ZXF1biIKKyAg
ICAgICAgICAgIGVtaXRBcm1TaW5nbGVCcmFuY2goImJsZSIsIG9wZXJhbmRzKQorICAgICAgICB3
aGVuICJiZmVxIgorICAgICAgICAgICAgZW1pdEFybVNpbmdsZUJyYW5jaCgiYmVxIiwgb3BlcmFu
ZHMpCisgICAgICAgIHdoZW4gImJmZ3QiCisgICAgICAgICAgICBlbWl0QXJtU2luZ2xlQnJhbmNo
KCJiZ3QiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmZndGVxdW4iCisgICAgICAgICAgICBl
bWl0QXJtU2luZ2xlQnJhbmNoKCJicGwiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRsdHVu
IgorICAgICAgICAgICAgZW1pdEFybURvdWJsZUJyYW5jaCgiYmx0Iiwgb3BlcmFuZHMpCiAgICAg
ICAgIHdoZW4gImFkZGQiCiAgICAgICAgICAgICBlbWl0QXJtKCJ2YWRkLmY2NCIsIG9wZXJhbmRz
KQotICAgICAgICB3aGVuICJkaXZkIgotICAgICAgICAgICAgZW1pdEFybSgidmRpdi5mNjQiLCBv
cGVyYW5kcykKICAgICAgICAgd2hlbiAic3ViZCIKICAgICAgICAgICAgIGVtaXRBcm0oInZzdWIu
ZjY0Iiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gIm11bGQiCiAgICAgICAgICAgICBlbWl0QXJt
KCJ2bXVsLmY2NCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJkaXZkIgorICAgICAgICAgICAg
ZW1pdEFybSgidmRpdi5mNjQiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAic3FydGQiCiAgICAg
ICAgICAgICAkYXNtLnB1dHMgInZzcXJ0LmY2NCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5k
cyl9IgorICAgICAgICB3aGVuICJuZWdkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bmVnLmY2
NCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJvcmYiCisg
ICAgICAgICAgICAodG1wTGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0xXQorICAg
ICAgICAgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAgcmF3SW5z
dHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJh
bmRzWzBdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9y
aWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmds
ZX0iKSwKKyAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJvcmkiLCBb
dG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdp
biwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3t0bXBSaHMuYXJtT3BlcmFuZH0i
KQorICAgICAgICAgICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCisgICAgICAgIHdoZW4gImFu
ZGYiCisgICAgICAgICAgICAodG1wTGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0x
XQorICAgICAgICAgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAg
cmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAj
e29wZXJhbmRzWzBdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24o
Y29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFy
bVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJh
bmRpIiwgW3RtcExocywgdG1wUmhzXSksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNv
ZGVPcmlnaW4sICAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7dG1wUmhzLmFybU9w
ZXJhbmR9IikKKyAgICAgICAgICAgIF0pLmxvd2VyKCRhY3RpdmVCYWNrZW5kKQorICAgICAgICB3
aGVuICJvcmQiCisgICAgICAgICAgICAodG1wTGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNb
LTIuLi0xXQorICAgICAgICAgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAg
ICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJh
bmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1
Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRz
WzFdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmln
aW4sICJvcmkiLCBbdG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rp
b24oY29kZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3t0bXBSaHMu
YXJtT3BlcmFuZH0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwg
ICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZUhpfSIp
LAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBS
aHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlSGl9IiksCisgICAgICAgICAg
ICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAib3JpIiwgW3RtcExocywgdG1wUmhzXSks
CisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje29wZXJh
bmRzWzFdLmFybVNpbmdsZUhpfSwgI3t0bXBSaHMuYXJtT3BlcmFuZH0iKQorICAgICAgICAgICAg
XSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCisgICAgICAgIHdoZW4gImFuZGQiCisgICAgICAgICAg
ICAodG1wTGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0xXQorICAgICAgICAgICAg
U2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24o
Y29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFy
bVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2
bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iKSwKKyAg
ICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJhbmRpIiwgW3RtcExocywg
dG1wUmhzXSksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1v
diAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7dG1wUmhzLmFybU9wZXJhbmR9IiksCisgICAg
ICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcExocy5hcm1P
cGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGVIaX0iKSwKKyAgICAgICAgICAgICAgcmF3
SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29w
ZXJhbmRzWzFdLmFybVNpbmdsZUhpfSIpLAorICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXco
Y29kZU9yaWdpbiwgImFuZGkiLCBbdG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3
SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlSGl9
LCAje3RtcFJocy5hcm1PcGVyYW5kfSIpCisgICAgICAgICAgICBdKS5sb3dlcigkYWN0aXZlQmFj
a2VuZCkKICAgICAgICAgd2hlbiAiY2kyZHMiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3Yg
I3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9IgogICAg
ICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmY2NC5zMzIgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5k
fSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IgpAQCAtNTM3LDYgKzcwNiw4IEBAIGNsYXNzIElu
c3RydWN0aW9uCiAgICAgICAgIHdoZW4gIm1vdmR6IgogICAgICAgICAgICAgIyBGSVhNRTogZWl0
aGVyIHN1cHBvcnQgdGhpcyBvciByZW1vdmUgaXQuCiAgICAgICAgICAgICByYWlzZSAiQVJNIGRv
ZXMgbm90IHN1cHBvcnQgdGhpcyBvcGNvZGUgeWV0LCAje2NvZGVPcmlnaW59IgorICAgICAgICB3
aGVuICJtb3ZlZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdi5mNjQgI3thcm1GbGlwcGVk
T3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAicG9wIgogICAgICAgICAgICAgb3Bl
cmFuZHMuZWFjaCB7CiAgICAgICAgICAgICAgICAgfCBvcCB8CkBAIC01NTMsOSArNzI0LDE3IEBA
IGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgJGFz
bS5wdXRzICJtb3YgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgICAg
IGVuZAorICAgICAgICB3aGVuICJtb3ZlaWkiCisgICAgICAgICAgICByYWlzZSAiRmlyc3Qgb3Bl
cmFuZCBvZiBtb3ZlaWkgbXVzdCBiZSBhbiBpbW1lZGlhdGUiIHVubGVzcyBvcGVyYW5kc1swXS5p
bW1lZGlhdGU/CisgICAgICAgICAgICBhcm1Nb3ZlSW1tZWRpYXRlKG9wZXJhbmRzWzBdLnZhbHVl
ID4+IDMyLCBvcGVyYW5kc1sxXSkKKyAgICAgICAgICAgIGFybU1vdmVJbW1lZGlhdGUob3BlcmFu
ZHNbMF0udmFsdWUgJiAweGZmZmZmZmZmLCBvcGVyYW5kc1syXSkKICAgICAgICAgd2hlbiAibXZs
YmwiCiAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3Z3ICN7b3BlcmFuZHNbMV0uYXJtT3Bl
cmFuZH0sIFwjOmxvd2VyMTY6I3tvcGVyYW5kc1swXS52YWx1ZX0iCiAgICAgICAgICAgICAgICAg
JGFzbS5wdXRzICJtb3Z0ICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sIFwjOnVwcGVyMTY6I3tv
cGVyYW5kc1swXS52YWx1ZX0iCisgICAgICAgIHdoZW4gInN4YjJpIgorICAgICAgICAgICAgJGFz
bS5wdXRzICJzeHRiICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdo
ZW4gInN4aDJpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzeHRoICN7YXJtRmxpcHBlZE9wZXJh
bmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gIm5vcCIKICAgICAgICAgICAgICRhc20ucHV0
cyAibm9wIgogICAgICAgICB3aGVuICJiaWVxIiwgImJwZXEiLCAiYmJlcSIKQEAgLTY0OSwxNCAr
ODI4LDQ2IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBlbWl0QXJtQ29tcGFyZShv
cGVyYW5kcywgImx0IikKICAgICAgICAgd2hlbiAiY2lsdGVxIiwgImNwbHRlcSIsICJjYmx0ZXEi
CiAgICAgICAgICAgICBlbWl0QXJtQ29tcGFyZShvcGVyYW5kcywgImxlIikKLSAgICAgICAgd2hl
biAiY2RndCIKLSAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAiZ3Qi
KQotICAgICAgICB3aGVuICJjZGd0ZXEiCi0gICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFy
ZShvcGVyYW5kcywgImdlIikKKyAgICAgICAgd2hlbiAiY2ZlcSIKKyAgICAgICAgICAgIGVtaXRB
cm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJlcSIpCisgICAgICAgIHdoZW4gImNmbmVxdW4iCisg
ICAgICAgICAgICBlbWl0QXJtRmxvYXRDb21wYXJlKG9wZXJhbmRzLCAibmUiKQorICAgICAgICB3
aGVuICJjZmx0IgorICAgICAgICAgICAgZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywgIm1p
IikKKyAgICAgICAgd2hlbiAiY2ZsdGVxIgorICAgICAgICAgICAgZW1pdEFybUZsb2F0Q29tcGFy
ZShvcGVyYW5kcywgImxzIikKKyAgICAgICAgd2hlbiAiY2ZndCIKKyAgICAgICAgICAgIGVtaXRB
cm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJndCIpCisgICAgICAgIHdoZW4gImNmZ3RlcSIKKyAg
ICAgICAgICAgIGVtaXRBcm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJnZSIpCisgICAgICAgIHdo
ZW4gImNkZXEiCisgICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywgImVx
IikKKyAgICAgICAgd2hlbiAiY2RuZXF1biIKKyAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21w
YXJlKG9wZXJhbmRzLCAibmUiKQogICAgICAgICB3aGVuICJjZGx0IgogICAgICAgICAgICAgZW1p
dEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMsICJtaSIpCiAgICAgICAgIHdoZW4gImNkbHRlcSIK
ICAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAibHMiKQorICAgICAg
ICB3aGVuICJjZGd0IgorICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMs
ICJndCIpCisgICAgICAgIHdoZW4gImNkZ3RlcSIKKyAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVD
b21wYXJlKG9wZXJhbmRzLCAiZ2UiKQorICAgICAgICB3aGVuICJjZjJkIgorICAgICAgICAgICAg
JGFzbS5wdXRzICJ2Y3Z0LmY2NC5mMzIgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVy
YW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJjZDJmIgorICAgICAgICAgICAgJGFz
bS5wdXRzICJ2Y3Z0LmYzMi5mNjQgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRz
WzBdLmFybU9wZXJhbmR9IgorICAgICAgICB3aGVuICJjaTJmIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVy
YW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmN2dC5mMzIudTMyICN7b3BlcmFuZHNbMV0u
YXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJjaTJm
cyIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0s
ICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInZjdnQu
ZjMyLnMzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xl
fSIKKyAgICAgICAgd2hlbiAiY2kyZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29w
ZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAg
ICAgICAkYXNtLnB1dHMgInZjdnQuZjY0LnUzMiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAj
e29wZXJhbmRzWzFdLmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gImNpMmRzIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sw
XS5hcm1PcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmN2dC5mNjQuczMyICN7b3Bl
cmFuZHNbMV0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKICAgICAgICAg
d2hlbiAidGlzIiwgInRicyIsICJ0cHMiCiAgICAgICAgICAgICBlbWl0QXJtVGVzdFNldChvcGVy
YW5kcywgIm1pIikKICAgICAgICAgd2hlbiAidGl6IiwgInRieiIsICJ0cHoiCkBAIC02NjcsMTAg
Kzg3OCwyMiBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgJGFzbS5wdXRzICJsZHIg
I3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgW3NwLCBcIyN7b3BlcmFuZHNbMF0udmFsdWUgKiA0
fV0iCiAgICAgICAgIHdoZW4gInBva2UiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInN0ciAje29w
ZXJhbmRzWzFdLmFybU9wZXJhbmR9LCBbc3AsIFwjI3tvcGVyYW5kc1swXS52YWx1ZSAqIDR9XSIK
KyAgICAgICAgd2hlbiAiZmkyZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJh
bmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAgIHdo
ZW4gImZmMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1P
cGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IgogICAgICAgICB3aGVuICJmaWkyZCIK
ICAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCAj
e29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9IgogICAg
ICAgICB3aGVuICJmZDJpaSIKICAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRz
WzFdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBd
LmFybU9wZXJhbmR9IgorICAgICAgICB3aGVuICJ0cnVuY2F0ZWYyaSIKKyAgICAgICAgICAgIGVt
aXRBcm1UcnVuY2F0ZUZsb2F0KGNvZGVPcmlnaW4sICJ1MzIiLCAiZjMyIiwgb3BlcmFuZHMpCisg
ICAgICAgIHdoZW4gInRydW5jYXRlZjJpcyIKKyAgICAgICAgICAgIGVtaXRBcm1UcnVuY2F0ZUZs
b2F0KGNvZGVPcmlnaW4sICJzMzIiLCAiZjMyIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInRy
dW5jYXRlZDJpIgorICAgICAgICAgICAgZW1pdEFybVRydW5jYXRlRmxvYXQoY29kZU9yaWdpbiwg
InUzMiIsICJmNjQiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAidHJ1bmNhdGVkMmlzIgorICAg
ICAgICAgICAgZW1pdEFybVRydW5jYXRlRmxvYXQoY29kZU9yaWdpbiwgInMzMiIsICJmNjQiLCBv
cGVyYW5kcykKICAgICAgICAgd2hlbiAiYm8iCiAgICAgICAgICAgICAkYXNtLnB1dHMgImJ2cyAj
e29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKICAgICAgICAgd2hlbiAiYnMiCkBAIC02NzksMTMgKzkw
MiwxNyBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgJGFzbS5wdXRzICJiZXEgI3tv
cGVyYW5kc1swXS5hc21MYWJlbH0iCiAgICAgICAgIHdoZW4gImJueiIKICAgICAgICAgICAgICRh
c20ucHV0cyAiYm5lICN7b3BlcmFuZHNbMF0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJiY3Mi
CisgICAgICAgICAgICAkYXNtLnB1dHMgImJjcyAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKICAg
ICAgICAgd2hlbiAibGVhaSIsICJsZWFwIgogICAgICAgICAgICAgb3BlcmFuZHNbMF0uYXJtRW1p
dExlYShvcGVyYW5kc1sxXSkKLSAgICAgICAgd2hlbiAic211bGxpIgorICAgICAgICB3aGVuICJz
bXVsbGkiLCAidW11bGxpIgogICAgICAgICAgICAgcmFpc2UgIldyb25nIG51bWJlciBvZiBhcmd1
bWVudHMgdG8gc211bGwgaW4gI3tzZWxmLmluc3BlY3R9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30i
IHVubGVzcyBvcGVyYW5kcy5sZW5ndGggPT0gNAotICAgICAgICAgICAgJGFzbS5wdXRzICJzbXVs
bCAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzNdLmFybU9wZXJhbmR9LCAj
e29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9IgorICAg
ICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZVswLi4tMl19ICN7b3BlcmFuZHNbMl0uYXJtT3Bl
cmFuZH0sICN7b3BlcmFuZHNbM10uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCiAgICAgICAgIHdoZW4gIm1lbWZlbmNlIgog
ICAgICAgICAgICAgJGFzbS5wdXRzICJkbWIgc3kiCisgICAgICAgIHdoZW4gImZlbmNlIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJkbWIgaXNoIgogICAgICAgICB3aGVuICJjbHJicCIKICAgICAg
ICAgICAgICRhc20ucHV0cyAiYmljICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFu
ZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCiAgICAgICAgIHdo
ZW4gImdsb2JhbGFkZHIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9pbnN0cnVjdGlvbnMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9p
bnN0cnVjdGlvbnMucmIKaW5kZXggNTRiMDI3ZjNkYTAxLi43ZTI4MGI3Zjc4YjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKQEAgLTU5
LDYgKzU5LDcgQEAgTUFDUk9fSU5TVFJVQ1RJT05TID0KICAgICAgInJyb3RhdGVxIiwKICAgICAg
InN1YmkiLAogICAgICAieG9yaSIsCisgICAgICJsb2FkMmlhIiwKICAgICAgImxvYWRpIiwKICAg
ICAgImxvYWRpcyIsCiAgICAgICJsb2FkYiIsCkBAIC02Nyw2ICs2OCw3IEBAIE1BQ1JPX0lOU1RS
VUNUSU9OUyA9CiAgICAgICJsb2FkaCIsCiAgICAgICJsb2FkaHNpIiwKICAgICAgImxvYWRoc3Ei
LAorICAgICAic3RvcmUyaWEiLAogICAgICAic3RvcmVpIiwKICAgICAgInN0b3JlaCIsCiAgICAg
ICJzdG9yZWIiLApAQCAtMzc3LDkgKzM3OSwyMSBAQCBYODZfSU5TVFJVQ1RJT05TID0KIAogQVJN
X0lOU1RSVUNUSU9OUyA9CiAgICAgWworICAgICAiYWRjaSIsCisgICAgICJiY3MiLAogICAgICAi
Y2xyYnAiLAogICAgICAibXZsYmwiLAotICAgICAiZ2xvYmFsYWRkciIKKyAgICAgImdsb2JhbGFk
ZHIiLAorICAgICAic2JjaSIsCisgICAgICJtb3ZlaWkiLAorICAgICAibG9hZGxpbmtiIiwKKyAg
ICAgImxvYWRsaW5raCIsCisgICAgICJsb2FkbGlua2kiLAorICAgICAibG9hZGxpbmsyaSIsCisg
ICAgICJzdG9yZWNvbmRiIiwKKyAgICAgInN0b3JlY29uZGgiLAorICAgICAic3RvcmVjb25kaSIs
CisgICAgICJzdG9yZWNvbmQyaSIsCiAgICAgXQogCiBBUk02NF9JTlNUUlVDVElPTlMgPQpAQCAt
NDMxLDYgKzQ0NSw3IEBAIEFSTTY0X0lOU1RSVUNUSU9OUyA9CiBSSVNDX0lOU1RSVUNUSU9OUyA9
CiAgICAgWwogICAgICAic211bGxpIiwgICMgTXVsdGlwbHkgdHdvIDMyLWJpdCB3b3JkcyBhbmQg
cHJvZHVjZSBhIDY0LWJpdCB3b3JkCisgICAgICJ1bXVsbGkiLCAgIyBNdWx0aXBseSB0d28gMzIt
Yml0IHdvcmRzIGFuZCBwcm9kdWNlIGEgNjQtYml0IHdvcmQKICAgICAgImFkZGlzIiwgICAjIEFk
ZCBpbnRlZ2VycyBhbmQgc2V0IGEgZmxhZy4KICAgICAgInN1YmlzIiwgICAjIFNhbWUsIGJ1dCBm
b3Igc3VidHJhY3Rpb24uCiAgICAgICJvcmlzIiwgICAgIyBTYW1lLCBidXQgZm9yIGJpdHdpc2Ug
b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3Rl
cnMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIKaW5k
ZXggMGRjNDRjMjNkZmIyLi42N2Y1MjcxYTUzNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIKQEAgLTU4LDcgKzU4LDggQEAgR1BSUyA9CiAgICAg
ICJjc3I3IiwKICAgICAgImNzcjgiLAogICAgICAiY3NyOSIsCi0gICAgICJjc3IxMCIKKyAgICAg
ImNzcjEwIiwKKyAgICAgImludmFsaWRHUFIiCiAgICAgXQogCiBGUFJTID0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiCmluZGV4IDBmMDcyZTlmZDExZS4uMzQ2NDU5NjJm
NzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJi
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIKQEAgLTI1OSw4
ICsyNTksMTIgQEAgZGVmIHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc0RvdWJsZShsaXN0KQog
ICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQogICAgICAgICAgICAgd2hlbiAibG9hZGQiCiAg
ICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2lu
LCAibG9hZGQiLCBbbm9kZS5vcGVyYW5kc1swXS5yaXNjRG91YmxlQWRkcmVzcyhuZXdMaXN0KSwg
bm9kZS5vcGVyYW5kc1sxXV0sIG5vZGUuYW5ub3RhdGlvbikKKyAgICAgICAgICAgIHdoZW4gImxv
YWRmIgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29k
ZU9yaWdpbiwgImxvYWRmIiwgW25vZGUub3BlcmFuZHNbMF0ucmlzY0RvdWJsZUFkZHJlc3MobmV3
TGlzdCksIG5vZGUub3BlcmFuZHNbMV1dLCBub2RlLmFubm90YXRpb24pCiAgICAgICAgICAgICB3
aGVuICJzdG9yZWQiCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
bm9kZS5jb2RlT3JpZ2luLCAic3RvcmVkIiwgW25vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFu
ZHNbMV0ucmlzY0RvdWJsZUFkZHJlc3MobmV3TGlzdCldLCBub2RlLmFubm90YXRpb24pCisgICAg
ICAgICAgICB3aGVuICJzdG9yZWYiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVj
dGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic3RvcmVmIiwgW25vZGUub3BlcmFuZHNbMF0sIG5v
ZGUub3BlcmFuZHNbMV0ucmlzY0RvdWJsZUFkZHJlc3MobmV3TGlzdCldLCBub2RlLmFubm90YXRp
b24pCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCiAg
ICAgICAgICAgICBlbmQKQEAgLTM2OSw3ICszNzMsNyBAQCBkZWYgcmlzY0xvd2VyTWFsZm9ybWVk
SW1tZWRpYXRlcyhsaXN0LCB2YWxpZEltbWVkaWF0ZXMsIHZhbGlkTG9naWNhbEltbWVkaWF0ZXMp
CiAgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGFubm90YXRp
b24gPSBub2RlLmFubm90YXRpb24KICAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKLSAgICAg
ICAgICAgIHdoZW4gIm1vdmUiCisgICAgICAgICAgICB3aGVuICJtb3ZlIiwgIm1vdmVpaSIKICAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKICAgICAgICAgICAgIHdoZW4gImFkZGkiLCAi
YWRkcCIsICJhZGRxIiwgImFkZGlzIiwgInN1YmkiLCAic3VicCIsICJzdWJxIiwgInN1YmlzIgog
ICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlIGFuZApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCmluZGV4IDI5NDlkMDky
NWZjMC4uMTU4NDJhNjA2MGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NKU1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
SlNWYWx1ZS5oCkBAIC0xNjIsOCArMTYyLDkgQEAgcHVibGljOgogICAgIGVudW0geyBOdWxsVGFn
ID0gICAgICAgICAweGZmZmZmZmZkIH07CiAgICAgZW51bSB7IFVuZGVmaW5lZFRhZyA9ICAgIDB4
ZmZmZmZmZmMgfTsKICAgICBlbnVtIHsgQ2VsbFRhZyA9ICAgICAgICAgMHhmZmZmZmZmYiB9Owot
ICAgIGVudW0geyBFbXB0eVZhbHVlVGFnID0gICAweGZmZmZmZmZhIH07Ci0gICAgZW51bSB7IERl
bGV0ZWRWYWx1ZVRhZyA9IDB4ZmZmZmZmZjkgfTsKKyAgICBlbnVtIHsgV2FzbVRhZyA9ICAgICAg
ICAgMHhmZmZmZmZmYSB9OworICAgIGVudW0geyBFbXB0eVZhbHVlVGFnID0gICAweGZmZmZmZmY5
IH07CisgICAgZW51bSB7IERlbGV0ZWRWYWx1ZVRhZyA9IDB4ZmZmZmZmZjggfTsKIAogICAgIGVu
dW0geyBMb3dlc3RUYWcgPSAgRGVsZXRlZFZhbHVlVGFnIH07CiAKQEAgLTE4MSw2ICsxODIsOSBA
QCBwdWJsaWM6CiAgICAgZW51bSBFbmNvZGVBc0JpZ0ludDMyVGFnIHsgRW5jb2RlQXNCaWdJbnQz
MiB9OwogI2VuZGlmCiAgICAgZW51bSBFbmNvZGVBc0RvdWJsZVRhZyB7IEVuY29kZUFzRG91Ymxl
IH07CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGVu
dW0gRW5jb2RlQXNVbmJveGVkRmxvYXRUYWcgeyBFbmNvZGVBc1VuYm94ZWRGbG9hdCB9OworI2Vu
ZGlmCiAKICAgICBKU1ZhbHVlKCk7CiAgICAgSlNWYWx1ZShKU051bGxUYWcpOwpAQCAtMTkyLDYg
KzE5Niw5IEBAIHB1YmxpYzoKICNpZiBVU0UoQklHSU5UMzIpCiAgICAgSlNWYWx1ZShFbmNvZGVB
c0JpZ0ludDMyVGFnLCBpbnQzMl90KTsKICNlbmRpZgorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkg
JiYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBKU1ZhbHVlKEVuY29kZUFzVW5ib3hlZEZsb2F0VGFn
LCBmbG9hdCk7CisjZW5kaWYKIAogICAgIC8vIE51bWJlcnMKICAgICBKU1ZhbHVlKEVuY29kZUFz
RG91YmxlVGFnLCBkb3VibGUpOwpAQCAtNTkzLDYgKzYwMCwxMyBAQCBBTFdBWVNfSU5MSU5FIEpT
VmFsdWUganNCaWdJbnQzMihpbnQzMl90IGludFZhbHVlKQogfQogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVFMzJfNjQpCitBTFdBWVNfSU5MSU5FIEpTVmFs
dWUganNVbmJveGVkRmxvYXQoZmxvYXQgZikKK3sKKyAgICByZXR1cm4gSlNWYWx1ZShKU1ZhbHVl
OjpFbmNvZGVBc1VuYm94ZWRGbG9hdCwgZik7Cit9CisjZW5kaWYKKwogQUxXQVlTX0lOTElORSBK
U1ZhbHVlIGpzRG91YmxlTnVtYmVyKGRvdWJsZSBkKQogewogICAgIEFTU0VSVChKU1ZhbHVlKEpT
VmFsdWU6OkVuY29kZUFzRG91YmxlLCBkKS5pc051bWJlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCmluZGV4IDc5MjY3NjNjZDU2
NS4uOWM1MmRjOTk1MmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NKU1ZhbHVlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ0pTVmFsdWVJbmxpbmVzLmgKQEAgLTYxOSw2ICs2MTksMTMgQEAgaW5saW5lIEpTVmFsdWU6
OkpTVmFsdWUoRW5jb2RlQXNCaWdJbnQzMlRhZywgaW50MzJfdCB2YWx1ZSkKIH0KICNlbmRpZiAv
LyBVU0UoQklHSU5UMzIpCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVF
MzJfNjQpCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShFbmNvZGVBc1VuYm94ZWRGbG9hdFRhZywg
ZmxvYXQgdmFsdWUpCit7CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IGJpdHdpc2VfY2FzdDxpbnQz
Ml90Pih2YWx1ZSk7Cit9CisjZW5kaWYKKwogaW5saW5lIGludDY0X3QgdHJ5Q29udmVydFRvSW50
NTIoZG91YmxlIG51bWJlcikKIHsKICAgICBpZiAobnVtYmVyICE9IG51bWJlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCmluZGV4IDk4
ZWRiMWVkYmVmYi4uZmZhZGZlOWJiZDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAKQEAgLTg0MCw2ICs4NDAsMTUgQEAgcHJpdmF0
ZToKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuY3Rpb24+CiAgICAgdm9pZCBmb3JFYWNoTGl2
ZVZhbHVlKEZ1bmN0aW9uKTsKIAorICAgIGJvb2wgdXNlU2lnbmFsaW5nTWVtb3J5KCkgY29uc3QK
KyAgICB7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCisgICAgICAg
IHJldHVybiBtX21vZGUgPT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nOworI2Vsc2UKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworI2VuZGlmCisgICAgfQorCiAgICAgRnVuY3Rpb25QYXJzZXI8QWlySVJH
ZW5lcmF0b3I+KiBtX3BhcnNlciB7IG51bGxwdHIgfTsKICAgICBjb25zdCBNb2R1bGVJbmZvcm1h
dGlvbiYgbV9pbmZvOwogICAgIGNvbnN0IE1lbW9yeU1vZGUgbV9tb2RlIHsgTWVtb3J5TW9kZTo6
Qm91bmRzQ2hlY2tpbmcgfTsKQEAgLTk1Nyw3ICs5NjYsNyBAQCBBaXJJUkdlbmVyYXRvcjo6QWly
SVJHZW5lcmF0b3IoY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mIGluZm8sIEIzOjpQcm9jZWR1cmUm
IHBybwogICAgIGlmICghQ29udGV4dDo6dXNlRmFzdFRMUygpKQogICAgICAgICBtX2NvZGUucGlu
UmVnaXN0ZXIobV93YXNtQ29udGV4dEluc3RhbmNlR1BSKTsKIAotICAgIGlmIChtb2RlICE9IE1l
bW9yeU1vZGU6OlNpZ25hbGluZykgeworICAgIGlmIChtb2RlID09IE1lbW9yeU1vZGU6OkJvdW5k
c0NoZWNraW5nKSB7CiAgICAgICAgIG1fYm91bmRzQ2hlY2tpbmdTaXplR1BSID0gcGlubmVkUmVn
cy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlcjsKICAgICAgICAgbV9jb2RlLnBpblJlZ2lzdGVy
KG1fYm91bmRzQ2hlY2tpbmdTaXplR1BSKTsKICAgICB9CkBAIC0xNzkyLDYgKzE4MDEsNyBAQCBp
bmxpbmUgQWlySVJHZW5lcmF0b3I6OkV4cHJlc3Npb25UeXBlIEFpcklSR2VuZXJhdG9yOjplbWl0
Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcgogICAgICAgICBicmVhazsKICAgICB9CiAKKyNpZiBFTkFC
TEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBjYXNlIE1lbW9yeU1vZGU6OlNp
Z25hbGluZzogewogICAgICAgICAvLyBXZSd2ZSB2aXJ0dWFsbHkgbWFwcGVkIDRHaUIrcmVkem9u
ZSBmb3IgdGhpcyBtZW1vcnkuIE9ubHkgdGhlIHVzZXItYWxsb2NhdGVkIHBhZ2VzIGFyZSBhZGRy
ZXNzYWJsZSwgY29udGlndW91c2x5IGluIHJhbmdlIFswLCBjdXJyZW50XSwKICAgICAgICAgLy8g
YW5kIGV2ZXJ5dGhpbmcgYWJvdmUgaXMgbWFwcGVkIFBST1RfTk9ORS4gV2UgZG9uJ3QgbmVlZCB0
byBwZXJmb3JtIGFueSBleHBsaWNpdCBib3VuZHMgY2hlY2sgaW4gdGhlIDRHaUIgcmFuZ2UgYmVj
YXVzZSBXZWJBc3NlbWJseSByZWdpc3RlcgpAQCAtMTgxOCw2ICsxODI4LDcgQEAgaW5saW5lIEFp
cklSR2VuZXJhdG9yOjpFeHByZXNzaW9uVHlwZSBBaXJJUkdlbmVyYXRvcjo6ZW1pdENoZWNrQW5k
UHJlcGFyZVBvaW50ZXIKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9CisjZW5kaWYK
ICAgICB9CiAKICAgICBhcHBlbmQoQWRkNjQsIFRtcChtX21lbW9yeUJhc2VHUFIpLCByZXN1bHQp
OwpAQCAtMzY5Myw3ICszNzA0LDcgQEAgYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRkQ2FsbCh1aW50
MzJfdCBmdW5jdGlvbkluZGV4LCBjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSwKICAgICAgICAg
YXV0byogcGF0Y2hwb2ludCA9IHBhaXIuZmlyc3Q7CiAgICAgICAgIGF1dG8gZXhjZXB0aW9uSGFu
ZGxlID0gcGFpci5zZWNvbmQ7CiAgICAgICAgIC8vIFdlIG5lZWQgdG8gY2xvYmJlciB0aGUgc2l6
ZSByZWdpc3RlciBzaW5jZSB0aGUgTExJbnQgYWx3YXlzIGJvdW5kcyBjaGVja3MKLSAgICAgICAg
aWYgKG1fbW9kZSA9PSBNZW1vcnlNb2RlOjpTaWduYWxpbmcgfHwgbV9pbmZvLm1lbW9yeS5pc1No
YXJlZCgpKQorICAgICAgICBpZiAodXNlU2lnbmFsaW5nTWVtb3J5KCkgfHwgbV9pbmZvLm1lbW9y
eS5pc1NoYXJlZCgpKQogICAgICAgICAgICAgcGF0Y2hwb2ludC0+Y2xvYmJlckxhdGUoUmVnaXN0
ZXJTZXQgeyBQaW5uZWRSZWdpc3RlckluZm86OmdldCgpLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lz
dGVyIH0pOwogICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoWz0sIHRoaXNdIChDQ2Fs
bEhlbHBlcnMmIGppdCwgY29uc3QgQjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1z
KSB7CiAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3Jh
dGNoKGppdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJ
UkdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVy
YXRvci5jcHAKaW5kZXggNTcwZGYzNmZiMjQ5Li5iZWE3N2RmMTRkZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKQEAgLTUyMyw2ICs1
MjMsMTUgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHNldChkc3QsIGdldChzcmMpKTsKICAg
ICB9CiAKKyAgICBib29sIHVzZVNpZ25hbGluZ01lbW9yeSgpIGNvbnN0CisgICAgeworI2lmIEVO
QUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQorICAgICAgICByZXR1cm4gbV9tb2Rl
ID09IE1lbW9yeU1vZGU6OlNpZ25hbGluZzsKKyNlbHNlCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyNlbmRpZgorICAgIH0KKwogICAgIEZ1bmN0aW9uUGFyc2VyPEIzSVJHZW5lcmF0b3I+KiBtX3Bh
cnNlciB7IG51bGxwdHIgfTsKICAgICBjb25zdCBNb2R1bGVJbmZvcm1hdGlvbiYgbV9pbmZvOwog
ICAgIGNvbnN0IE1lbW9yeU1vZGUgbV9tb2RlIHsgTWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcg
fTsKQEAgLTYzNiw3ICs2NDUsNyBAQCBCM0lSR2VuZXJhdG9yOjpCM0lSR2VuZXJhdG9yKGNvbnN0
IE1vZHVsZUluZm9ybWF0aW9uJiBpbmZvLCBQcm9jZWR1cmUmIHByb2NlZHVyZQogICAgIGlmICgh
Q29udGV4dDo6dXNlRmFzdFRMUygpKQogICAgICAgICBtX3Byb2MucGluUmVnaXN0ZXIobV93YXNt
Q29udGV4dEluc3RhbmNlR1BSKTsKIAotICAgIGlmIChtb2RlICE9IE1lbW9yeU1vZGU6OlNpZ25h
bGluZykgeworICAgIGlmIChtb2RlID09IE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nKSB7CiAg
ICAgICAgIG1fYm91bmRzQ2hlY2tpbmdTaXplR1BSID0gcGlubmVkUmVncy5ib3VuZHNDaGVja2lu
Z1NpemVSZWdpc3RlcjsKICAgICAgICAgbV9wcm9jLnBpblJlZ2lzdGVyKG1fYm91bmRzQ2hlY2tp
bmdTaXplR1BSKTsKICAgICB9CkBAIC02NDgsOSArNjU3LDExIEBAIEIzSVJHZW5lcmF0b3I6OkIz
SVJHZW5lcmF0b3IoY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mIGluZm8sIFByb2NlZHVyZSYgcHJv
Y2VkdXJlCiAgICAgICAgICAgICBjYXNlIE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nOgogICAg
ICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQocGlubmVkR1BSLCBtX2JvdW5kc0NoZWNraW5nU2l6
ZUdQUiA9PSBwaW5uZWRHUFIpOwogICAgICAgICAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShX
RUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgICAgICAgICAgY2FzZSBNZW1vcnlNb2Rl
OjpTaWduYWxpbmc6CiAgICAgICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChwaW5uZWRHUFIsIElu
dmFsaWRHUFJSZWcgPT0gcGlubmVkR1BSKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyNlbmRp
ZgogICAgICAgICAgICAgfQogICAgICAgICAgICAgdGhpcy0+ZW1pdEV4Y2VwdGlvbkNoZWNrKGpp
dCwgRXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpOwogICAgICAgICB9KTsK
QEAgLTkxMiw4ICs5MjMsMTIgQEAgYXV0byBCM0lSR2VuZXJhdG9yOjphZGRBcmd1bWVudHMoY29u
c3QgU2lnbmF0dXJlJiBzaWduYXR1cmUpIC0+IFBhcnRpYWxSZXN1bHQKICAgICAgICAgQjM6OlR5
cGUgdHlwZSA9IHRvQjNUeXBlKHNpZ25hdHVyZS5hcmd1bWVudChpKSk7CiAgICAgICAgIEIzOjpW
YWx1ZSogYXJndW1lbnQ7CiAgICAgICAgIGF1dG8gcmVwID0gd2FzbUNhbGxJbmZvLnBhcmFtc1tp
XTsKLSAgICAgICAgaWYgKHJlcC5pc1JlZygpKSB7Ci0gICAgICAgICAgICBhcmd1bWVudCA9IG1f
Y3VycmVudEJsb2NrLT5hcHBlbmROZXc8QjM6OkFyZ3VtZW50UmVnVmFsdWU+KG1fcHJvYywgT3Jp
Z2luKCksIHJlcC5yZWcoKSk7CisgICAgICAgIGlmIChyZXAuaXNHUFIoKSkgeworICAgICAgICAg
ICAgYXJndW1lbnQgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PEIzOjpBcmd1bWVudFJlZ1Zh
bHVlPihtX3Byb2MsIE9yaWdpbigpLCByZXAuanNyKCkucGF5bG9hZEdQUigpKTsKKyAgICAgICAg
ICAgIGlmICh0eXBlID09IEIzOjpJbnQzMiB8fCB0eXBlID09IEIzOjpGbG9hdCkKKyAgICAgICAg
ICAgICAgICBhcmd1bWVudCA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8QjM6OlZhbHVlPiht
X3Byb2MsIEIzOjpUcnVuYywgT3JpZ2luKCksIGFyZ3VtZW50KTsKKyAgICAgICAgfSBlbHNlIGlm
IChyZXAuaXNGUFIoKSkgeworICAgICAgICAgICAgYXJndW1lbnQgPSBtX2N1cnJlbnRCbG9jay0+
YXBwZW5kTmV3PEIzOjpBcmd1bWVudFJlZ1ZhbHVlPihtX3Byb2MsIE9yaWdpbigpLCByZXAuZnBy
KCkpOwogICAgICAgICAgICAgaWYgKHR5cGUgPT0gQjM6OkludDMyIHx8IHR5cGUgPT0gQjM6OkZs
b2F0KQogICAgICAgICAgICAgICAgIGFyZ3VtZW50ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5l
dzxCMzo6VmFsdWU+KG1fcHJvYywgQjM6OlRydW5jLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAg
ICAgICB9IGVsc2UgewpAQCAtMTQ0Myw2ICsxNDU4LDcgQEAgaW5saW5lIFZhbHVlKiBCM0lSR2Vu
ZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihWYWx1ZSogcG9pbnRlciwgdWludDMy
X3QKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05B
TElOR19NRU1PUlkpCiAgICAgY2FzZSBNZW1vcnlNb2RlOjpTaWduYWxpbmc6IHsKICAgICAgICAg
Ly8gV2UndmUgdmlydHVhbGx5IG1hcHBlZCA0R2lCK3JlZHpvbmUgZm9yIHRoaXMgbWVtb3J5LiBP
bmx5IHRoZSB1c2VyLWFsbG9jYXRlZCBwYWdlcyBhcmUgYWRkcmVzc2FibGUsIGNvbnRpZ3VvdXNs
eSBpbiByYW5nZSBbMCwgY3VycmVudF0sCiAgICAgICAgIC8vIGFuZCBldmVyeXRoaW5nIGFib3Zl
IGlzIG1hcHBlZCBQUk9UX05PTkUuIFdlIGRvbid0IG5lZWQgdG8gcGVyZm9ybSBhbnkgZXhwbGlj
aXQgYm91bmRzIGNoZWNrIGluIHRoZSA0R2lCIHJhbmdlIGJlY2F1c2UgV2ViQXNzZW1ibHkgcmVn
aXN0ZXIKQEAgLTE0NjAsNiArMTQ3Niw3IEBAIGlubGluZSBWYWx1ZSogQjNJUkdlbmVyYXRvcjo6
ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoVmFsdWUqIHBvaW50ZXIsIHVpbnQzMl90CiAgICAg
ICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAgcG9pbnRl
ciA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgWkV4dDMyLCBvcmln
aW4oKSwgcG9pbnRlcik7CkBAIC0xNDkzLDcgKzE1MTAsNyBAQCBpbmxpbmUgdWludDMyX3Qgc2l6
ZU9mTG9hZE9wKExvYWRPcFR5cGUgb3ApCiAKIGlubGluZSBCMzo6S2luZCBCM0lSR2VuZXJhdG9y
OjptZW1vcnlLaW5kKEIzOjpPcGNvZGUgbWVtb3J5T3ApCiB7Ci0gICAgaWYgKG1fbW9kZSA9PSBN
ZW1vcnlNb2RlOjpTaWduYWxpbmcgfHwgbV9pbmZvLm1lbW9yeS5pc1NoYXJlZCgpKQorICAgIGlm
ICh1c2VTaWduYWxpbmdNZW1vcnkoKSB8fCBtX2luZm8ubWVtb3J5LmlzU2hhcmVkKCkpCiAgICAg
ICAgIHJldHVybiB0cmFwcGluZyhtZW1vcnlPcCk7CiAgICAgcmV0dXJuIG1lbW9yeU9wOwogfQpA
QCAtMjk3Nyw3ICsyOTk0LDcgQEAgYXV0byBCM0lSR2VuZXJhdG9yOjphZGRDYWxsKHVpbnQzMl90
IGZ1bmN0aW9uSW5kZXgsIGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlLAogICAgICAgICAgICAg
ICAgIHBhdGNocG9pbnQtPmVmZmVjdHMucmVhZHNQaW5uZWQgPSB0cnVlOwogCiAgICAgICAgICAg
ICAgICAgLy8gV2UgbmVlZCB0byBjbG9iYmVyIHRoZSBzaXplIHJlZ2lzdGVyIHNpbmNlIHRoZSBM
TEludCBhbHdheXMgYm91bmRzIGNoZWNrcwotICAgICAgICAgICAgICAgIGlmIChtX21vZGUgPT0g
TWVtb3J5TW9kZTo6U2lnbmFsaW5nIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQoKSkKKyAgICAg
ICAgICAgICAgICBpZiAodXNlU2lnbmFsaW5nTWVtb3J5KCkgfHwgbV9pbmZvLm1lbW9yeS5pc1No
YXJlZCgpKQogICAgICAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyTGF0ZShSZWdp
c3RlclNldCB7IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCkuYm91bmRzQ2hlY2tpbmdTaXplUmVn
aXN0ZXIgfSk7CiAgICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKFt0aGlz
LCBoYW5kbGUsIHVubGlua2VkV2FzbVRvV2FzbUNhbGxzLCBmdW5jdGlvbkluZGV4XSAoQ0NhbGxI
ZWxwZXJzJiBqaXQsIGNvbnN0IEIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykg
ewogICAgICAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxs
b3dTY3JhdGNoKGppdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtQmluZGluZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQmluZGluZy5j
cHAKaW5kZXggZWRjNzBiZWEwOGFmLi4zMjcyODk5NDlhZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5kaW5nLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtQmluZGluZy5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUo
V0VCQVNTRU1CTFkpCiAKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlICJEaXNh
bGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgi
CiAjaW5jbHVkZSAiV2FzbUNhbGxpbmdDb252ZW50aW9uLmgiCiAjaW5jbHVkZSAiV2FzbUluc3Rh
bmNlLmgiCkBAIC00MSwxOCArNDIsMjEgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVm
PFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9XYXNtKHVuc2kKIHsKICAg
ICAvLyBGSVhNRTogQ29uc2lkZXIgdW5pcXVpZnkgdGhlIHN0dWJzIGJhc2VkIG9uIHNpZ25hdHVy
ZSArIGluZGV4IHRvIHNlZSBpZiB0aGlzIHNhdmVzIG1lbW9yeS4KICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MTU3Ci0KLSAgICBjb25zdCBQaW5uZWRS
ZWdpc3RlckluZm8mIHBpbm5lZFJlZ3MgPSBQaW5uZWRSZWdpc3RlckluZm86OmdldCgpOwogICAg
IEpJVCBqaXQ7CiAKICAgICBHUFJSZWcgc2NyYXRjaCA9IHdhc21DYWxsaW5nQ29udmVudGlvbigp
LnByb2xvZ3VlU2NyYXRjaEdQUnNbMF07CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBHUFJS
ZWcgYmFzZU1lbW9yeSA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQ
UnNbMV07CisgICAgR1BSUmVnIHNpemVSZWdBc1NjcmF0Y2ggPSB3YXNtQ2FsbGluZ0NvbnZlbnRp
b24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzJdOworI2Vsc2UKKyAgICBjb25zdCBQaW5uZWRSZWdp
c3RlckluZm8mIHBpbm5lZFJlZ3MgPSBQaW5uZWRSZWdpc3RlckluZm86OmdldCgpOwogICAgIEdQ
UlJlZyBiYXNlTWVtb3J5ID0gcGlubmVkUmVncy5iYXNlTWVtb3J5UG9pbnRlcjsKLSAgICBBU1NF
UlQoYmFzZU1lbW9yeSAhPSBHUFJSZWc6OkludmFsaWRHUFJSZWcpOwotICAgIEFTU0VSVChiYXNl
TWVtb3J5ICE9IHNjcmF0Y2gpOwotICAgIEFTU0VSVChwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5n
U2l6ZVJlZ2lzdGVyICE9IGJhc2VNZW1vcnkpOwotICAgIEFTU0VSVChwaW5uZWRSZWdzLmJvdW5k
c0NoZWNraW5nU2l6ZVJlZ2lzdGVyICE9IHNjcmF0Y2gpOwogICAgIEdQUlJlZyBzaXplUmVnQXNT
Y3JhdGNoID0gcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlcjsKKyNlbmRpZgor
ICAgIEFTU0VSVChiYXNlTWVtb3J5ICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7CiAgICAgQVNT
RVJUKHNpemVSZWdBc1NjcmF0Y2ggIT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsKKyAgICBBU1NF
UlQoc2NyYXRjaCAhPSBHUFJSZWc6OkludmFsaWRHUFJSZWcpOworICAgIEFTU0VSVChub092ZXJs
YXAoc2NyYXRjaCwgYmFzZU1lbW9yeSwgc2l6ZVJlZ0FzU2NyYXRjaCkpOwogCiAgICAgLy8gQjMn
cyBjYWxsIGNvZGVnZW4gZW5zdXJlcyB0aGF0IHRoZSBKU0NlbGwgaXMgYSBXZWJBc3NlbWJseUZ1
bmN0aW9uLgogICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZShzaXplUmVnQXNTY3JhdGNo
KTsgLy8gT2xkIEluc3RhbmNlKgpAQCAtNjUsNiArNjksNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2Vt
YmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub1dhc20o
dW5zaQogICAgIGppdC5sb2FkUHRyKEpJVDo6QWRkcmVzcyhzaXplUmVnQXNTY3JhdGNoLCBJbnN0
YW5jZTo6b2Zmc2V0T2ZDYWNoZWRTdGFja0xpbWl0KCkpLCBzaXplUmVnQXNTY3JhdGNoKTsKICAg
ICBqaXQuc3RvcmVQdHIoc2l6ZVJlZ0FzU2NyYXRjaCwgSklUOjpBZGRyZXNzKGJhc2VNZW1vcnks
IEluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZFN0YWNrTGltaXQoKSkpOwogCisjaWYgIUNQVShBUk0p
IC8vIEFSTSBoYXMgbm8gcGlubmVkIHJlZ2lzdGVycyBmb3IgV2FzbSBNZW1vcnksIHNvIG5vIG5l
ZWQgdG8gc2V0IHRoZW0gdXAKICAgICAvLyBGSVhNRSB0aGUgZm9sbG93aW5nIGNvZGUgYXNzdW1l
cyB0aGF0IGFsbCBXYXNtOjpJbnN0YW5jZSBoYXZlIHRoZSBzYW1lIHBpbm5lZCByZWdpc3RlcnMu
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI5NTIKICAgICAvLyBT
ZXQgdXAgdGhlIGNhbGxlZSdzIGJhc2VNZW1vcnkgcmVnaXN0ZXIgYXMgd2VsbCBhcyB0aGUgbWVt
b3J5IHNpemUgcmVnaXN0ZXJzLgogICAgIHsKQEAgLTcyLDYgKzc3LDcgQEAgRXhwZWN0ZWQ8TWFj
cm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNt
VG9XYXNtKHVuc2kKICAgICAgICAgaml0LmxvYWRQdHIoSklUOjpBZGRyZXNzKGJhc2VNZW1vcnks
IFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7IC8v
IFdhc206Ok1lbW9yeTo6VGFnZ2VkQXJyYXlTdG9yYWdlUHRyPHZvaWQ+ICh2b2lkKikuCiAgICAg
ICAgIGppdC5jYWdlQ29uZGl0aW9uYWxseUFuZFVudGFnKEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJh
c2VNZW1vcnksIHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIsIHdhc21DYWxs
aW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMV0pOwogICAgIH0KKyNlbmRpZgog
CiAgICAgLy8gVGFpbCBjYWxsIGludG8gdGhlIGNhbGxlZSBXZWJBc3NlbWJseSBmdW5jdGlvbi4K
ICAgICBqaXQubG9hZFB0cihKSVQ6OkFkZHJlc3Moc2NyYXRjaCksIHNjcmF0Y2gpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcAppbmRleCBhMzIxYzUyZjE1ZWMuLjMy
MDJmNTQ4MGNhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNh
bGxlZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5jcHAK
QEAgLTEzMSw2ICsxMzEsOCBAQCBSZWdpc3RlckF0T2Zmc2V0TGlzdCogTExJbnRDYWxsZWU6OmNh
bGxlZVNhdmVSZWdpc3RlcnMoKQogICAgICAgICByZWdpc3RlcnMuc2V0KEdQUkluZm86OnJlZ0NT
Mik7IC8vIFBCCiAjZWxpZiBDUFUoQVJNNjQpIHx8IENQVShSSVNDVjY0KQogICAgICAgICByZWdp
c3RlcnMuc2V0KEdQUkluZm86OnJlZ0NTNyk7IC8vIFBCCisjZWxpZiBDUFUoQVJNKQorICAgICAg
ICByZWdpc3RlcnMuc2V0KEdQUkluZm86OnJlZ0NTMSk7IC8vIFBCCiAjZWxzZQogI2Vycm9yIFVu
c3VwcG9ydGVkIGFyY2hpdGVjdHVyZS4KICNlbmRpZgpAQCAtMTU4LDYgKzE2MCw3IEBAIGNvbnN0
IFdhc21JbnN0cnVjdGlvbiogTExJbnRDYWxsZWU6Om91dE9mTGluZUp1bXBUYXJnZXQoY29uc3Qg
V2FzbUluc3RydWN0aW9uKiBwCiAgICAgcmV0dXJuIG1faW5zdHJ1Y3Rpb25zLT5hdChvZmZzZXQg
KyB0YXJnZXQpLnB0cigpOwogfQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQogdm9p
ZCBPcHRpbWl6aW5nSklUQ2FsbGVlOjpsaW5rRXhjZXB0aW9uSGFuZGxlcnMoVmVjdG9yPFVubGlu
a2VkSGFuZGxlckluZm8+IHVubGlua2VkRXhjZXB0aW9uSGFuZGxlcnMsIFZlY3RvcjxDb2RlTG9j
YXRpb25MYWJlbDxFeGNlcHRpb25IYW5kbGVyUHRyVGFnPj4gZXhjZXB0aW9uSGFuZGxlckxvY2F0
aW9ucykKIHsKICAgICBzaXplX3QgY291bnQgPSB1bmxpbmtlZEV4Y2VwdGlvbkhhbmRsZXJzLnNp
emUoKTsKQEAgLTE4NCw3ICsxODcsNyBAQCBjb25zdCBTdGFja01hcCYgT3B0aW1pemluZ0pJVENh
bGxlZTo6c3RhY2ttYXAoQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZUluZGV4KSBjb25zdAogICAgIFJF
TEVBU0VfQVNTRVJUKGl0ZXIgIT0gbV9zdGFja21hcHMuZW5kKCkpOwogICAgIHJldHVybiBpdGVy
LT52YWx1ZTsKIH0KLQorI2VuZGlmCiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWVHcm91cC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlR3JvdXAuY3BwCmluZGV4IDFl
YTQ1Y2E0YTZlOS4uNTE5ZDIwOTZhZDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQ2FsbGVlR3JvdXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21DYWxsZWVHcm91cC5jcHAKQEAgLTE2MCwxNyArMTYwLDIxIEBAIHZvaWQgQ2FsbGVl
R3JvdXA6OmNvbXBpbGVBc3luYyhDb250ZXh0KiBjb250ZXh0LCBBc3luY0NvbXBpbGF0aW9uQ2Fs
bGJhY2smJiB0YXNrCiAKIGJvb2wgQ2FsbGVlR3JvdXA6OmlzU2FmZVRvUnVuKE1lbW9yeU1vZGUg
bWVtb3J5TW9kZSkKIHsKKyAgICBVTlVTRURfUEFSQU0obWVtb3J5TW9kZSk7CisKICAgICBpZiAo
IXJ1bm5hYmxlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHN3aXRjaCAobV9tb2Rl
KSB7CiAgICAgY2FzZSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZzoKICAgICAgICAg
cmV0dXJuIHRydWU7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAg
ICAgY2FzZSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmc6CiAgICAgICAgIC8vIENvZGUgYmVp
bmcgaW4gU2lnbmFsaW5nIG1vZGUgbWVhbnMgdGhhdCBpdCBwZXJmb3JtcyBubyBib3VuZHMgY2hl
Y2tzLgogICAgICAgICAvLyBJdHMgbWVtb3J5LCBldmVuIGlmIGVtcHR5LCBhYnNvbHV0ZWx5IG11
c3QgYWxzbyBiZSBpbiBTaWduYWxpbmcgbW9kZQogICAgICAgICAvLyBiZWNhdXNlIHRoZSBwYWdl
IHByb3RlY3Rpb24gZGV0ZWN0cyBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLgogICAgICAgICByZXR1
cm4gbWVtb3J5TW9kZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmc7CisjZW5kaWYKICAg
ICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gZmFsc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZl
bnRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50
aW9uLmNwcAppbmRleCAyMDNjODQzYWU4ZTYuLjQ3MjYyMjBmYTcxMCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwCkBAIC00
MCw3ICs0MCw3IEBAIGNvbnN0IEpTQ2FsbGluZ0NvbnZlbnRpb24mIGpzQ2FsbGluZ0NvbnZlbnRp
b24oKQogICAgICAgICBSZWdpc3RlclNldCBjYWxsZXJTYXZlUmVnaXN0ZXJzID0gUmVnaXN0ZXJT
ZXQ6OmFsbFJlZ2lzdGVycygpOwogICAgICAgICBjYWxsZXJTYXZlUmVnaXN0ZXJzLmV4Y2x1ZGUo
UmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKSk7CiAKLSAgICAgICAgc3RhdGljSlND
YWxsaW5nQ29udmVudGlvbi5jb25zdHJ1Y3QoVmVjdG9yPFJlZz4oKSwgVmVjdG9yPFJlZz4oKSwg
UmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKSwgV1RGTW92ZShjYWxsZXJTYXZlUmVn
aXN0ZXJzKSk7CisgICAgICAgIHN0YXRpY0pTQ2FsbGluZ0NvbnZlbnRpb24uY29uc3RydWN0KFZl
Y3RvcjxKU1ZhbHVlUmVncz4oKSwgVmVjdG9yPEZQUlJlZz4oKSwgUmVnaXN0ZXJTZXQ6OmNhbGxl
ZVNhdmVSZWdpc3RlcnMoKSwgV1RGTW92ZShjYWxsZXJTYXZlUmVnaXN0ZXJzKSk7CiAgICAgfSk7
CiAKICAgICByZXR1cm4gc3RhdGljSlNDYWxsaW5nQ29udmVudGlvbjsKQEAgLTUxLDMxICs1MSw1
MCBAQCBjb25zdCBXYXNtQ2FsbGluZ0NvbnZlbnRpb24mIHdhc21DYWxsaW5nQ29udmVudGlvbigp
CiAgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxXYXNtQ2FsbGluZ0NvbnZlbnRpb24+IHN0
YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbjsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgc3Rh
dGljV2FzbUNhbGxpbmdDb252ZW50aW9uRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShzdGF0aWNX
YXNtQ2FsbGluZ0NvbnZlbnRpb25GbGFnLCBbXSAoKSB7Ci0gICAgICAgIFZlY3RvcjxSZWc+IGdw
ckFyZ3VtZW50UmVnaXN0ZXJzKEdQUkluZm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMpOwot
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgR1BSSW5mbzo6bnVtYmVyT2ZBcmd1bWVu
dFJlZ2lzdGVyczsgKytpKQotICAgICAgICAgICAgZ3ByQXJndW1lbnRSZWdpc3RlcnNbaV0gPSBH
UFJJbmZvOjp0b0FyZ3VtZW50UmVnaXN0ZXIoaSk7Ci0KLSAgICAgICAgVmVjdG9yPFJlZz4gZnBy
QXJndW1lbnRSZWdpc3RlcnMoRlBSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyk7Cisj
aWYgVVNFKEpTVkFMVUU2NCkgLy8gT25lIHZhbHVlIHBlciBHUFIKKyAgICAgICAgY29uc3RleHBy
IHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRKU1JzID0gR1BSSW5mbzo6bnVtYmVyT2ZBcmd1bWVu
dFJlZ2lzdGVyczsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpIC8vIE9uZSB2YWx1ZSBwZXIgY29u
c2VjdXRpdmUgR1BSIHBhaXIKKyAgICAgICAgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mQXJn
dW1lbnRKU1JzID0gR1BSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyAvIDI7CisjZW5k
aWYKKyAgICAgICAgVmVjdG9yPEpTVmFsdWVSZWdzPiBqc3JBcmd1bWVudFJlZ2lzdGVycyhudW1i
ZXJPZkFyZ3VtZW50SlNScyk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1i
ZXJPZkFyZ3VtZW50SlNSczsgKytpKQorI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgICAgICBq
c3JBcmd1bWVudFJlZ2lzdGVyc1tpXSA9IEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6dG9Bcmd1bWVu
dFJlZ2lzdGVyKGkpIH07CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAganNy
QXJndW1lbnRSZWdpc3RlcnNbaV0gPSBKU1ZhbHVlUmVncyB7IEdQUkluZm86OnRvQXJndW1lbnRS
ZWdpc3RlcigyICogaSArIDEpLCBHUFJJbmZvOjp0b0FyZ3VtZW50UmVnaXN0ZXIoMiAqIGkpIH07
CisjZW5kaWYKKworICAgICAgICBWZWN0b3I8RlBSUmVnPiBmcHJBcmd1bWVudFJlZ2lzdGVycyhG
UFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzKTsKICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IEZQUkluZm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnM7ICsraSkKICAg
ICAgICAgICAgIGZwckFyZ3VtZW50UmVnaXN0ZXJzW2ldID0gRlBSSW5mbzo6dG9Bcmd1bWVudFJl
Z2lzdGVyKGkpOwogCiAgICAgICAgIFJlZ2lzdGVyU2V0IHNjcmF0Y2ggPSBSZWdpc3RlclNldDo6
YWxsR1BScygpOwotICAgICAgICBzY3JhdGNoLmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6OmNhbGxlZVNh
dmVSZWdpc3RlcnMoKSk7CisgICAgICAgIHNjcmF0Y2guZXhjbHVkZShSZWdpc3RlclNldDo6dm1D
YWxsZWVTYXZlUmVnaXN0ZXJzKCkpOwogICAgICAgICBzY3JhdGNoLmV4Y2x1ZGUoUmVnaXN0ZXJT
ZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycygpKTsKICAgICAgICAgc2NyYXRjaC5leGNsdWRlKFJl
Z2lzdGVyU2V0OjpyZXNlcnZlZEhhcmR3YXJlUmVnaXN0ZXJzKCkpOwogICAgICAgICBzY3JhdGNo
LmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6OnN0YWNrUmVnaXN0ZXJzKCkpOwotICAgICAgICBmb3IgKFJl
ZyByZWcgOiBncHJBcmd1bWVudFJlZ2lzdGVycykKLSAgICAgICAgICAgIHNjcmF0Y2guY2xlYXIo
cmVnKTsKKyAgICAgICAgZm9yIChKU1ZhbHVlUmVncyBqc3IgOiBqc3JBcmd1bWVudFJlZ2lzdGVy
cykgeworICAgICAgICAgICAgc2NyYXRjaC5jbGVhcihqc3IucGF5bG9hZEdQUigpKTsKKyNpZiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgc2NyYXRjaC5jbGVhcihqc3IudGFnR1BSKCkp
OworI2VuZGlmCisgICAgICAgIH0KIAogICAgICAgICBWZWN0b3I8R1BSUmVnPiBzY3JhdGNoR1BS
czsKICAgICAgICAgZm9yIChSZWcgcmVnIDogc2NyYXRjaCkKICAgICAgICAgICAgIHNjcmF0Y2hH
UFJzLmFwcGVuZChyZWcuZ3ByKCkpOworCisgICAgICAgIC8vIE5lZWQgYXQgbGVhc3Qgb25lIEpT
VmFsdWUgYW5kIGFuIGFkZGl0aW9uYWwgR1BSCisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAg
UkVMRUFTRV9BU1NFUlQoc2NyYXRjaEdQUnMuc2l6ZSgpID49IDIpOworI2VsaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoc2NyYXRjaEdQUnMuc2l6ZSgpID49IDMp
OworI2VuZGlmCiAKICAgICAgICAgUmVnaXN0ZXJTZXQgY2FsbGVyU2F2ZVJlZ2lzdGVycyA9IFJl
Z2lzdGVyU2V0OjphbGxSZWdpc3RlcnMoKTsKICAgICAgICAgY2FsbGVyU2F2ZVJlZ2lzdGVycy5l
eGNsdWRlKFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCkpOwogCi0gICAgICAgIHN0
YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbi5jb25zdHJ1Y3QoV1RGTW92ZShncHJBcmd1bWVudFJl
Z2lzdGVycyksIFdURk1vdmUoZnByQXJndW1lbnRSZWdpc3RlcnMpLCBXVEZNb3ZlKHNjcmF0Y2hH
UFJzKSwgUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKSwgV1RGTW92ZShjYWxsZXJT
YXZlUmVnaXN0ZXJzKSk7CisgICAgICAgIHN0YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbi5jb25z
dHJ1Y3QoV1RGTW92ZShqc3JBcmd1bWVudFJlZ2lzdGVycyksIFdURk1vdmUoZnByQXJndW1lbnRS
ZWdpc3RlcnMpLCBXVEZNb3ZlKHNjcmF0Y2hHUFJzKSwgUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVS
ZWdpc3RlcnMoKSwgV1RGTW92ZShjYWxsZXJTYXZlUmVnaXN0ZXJzKSk7CiAgICAgfSk7CiAKICAg
ICByZXR1cm4gc3RhdGljV2FzbUNhbGxpbmdDb252ZW50aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uaAppbmRleCA1OTFlZWIyN2Iw
MTYuLjE5Y2YwMmFhMzMwMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUNhbGxpbmdDb252ZW50aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUNhbGxpbmdDb252ZW50aW9uLmgKQEAgLTU3LDggKzU3LDEzIEBAIHN0cnVjdCBDYWxsSW5m
b3JtYXRpb24gewogICAgIHsKICAgICAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlc3VsdFJlZ2lzdGVy
czsKICAgICAgICAgZm9yIChWYWx1ZUxvY2F0aW9uIGxvYyA6IHJlc3VsdHMpIHsKLSAgICAgICAg
ICAgIGlmIChsb2MuaXNSZWcoKSkKLSAgICAgICAgICAgICAgICB1c2VkUmVzdWx0UmVnaXN0ZXJz
LnNldChsb2MucmVnKCkpOworICAgICAgICAgICAgaWYgKGxvYy5pc0dQUigpKSB7CisgICAgICAg
ICAgICAgICAgdXNlZFJlc3VsdFJlZ2lzdGVycy5zZXQobG9jLmpzcigpLnBheWxvYWRHUFIoKSk7
CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICB1c2VkUmVzdWx0UmVnaXN0
ZXJzLnNldChsb2MuanNyKCkudGFnR1BSKCkpOworI2VuZGlmCisgICAgICAgICAgICB9IGVsc2Ug
aWYgKGxvYy5pc0ZQUigpKQorICAgICAgICAgICAgICAgIHVzZWRSZXN1bHRSZWdpc3RlcnMuc2V0
KGxvYy5mcHIoKSk7CiAgICAgICAgIH0KIAogICAgICAgICBSZWdpc3RlckF0T2Zmc2V0TGlzdCBz
YXZlZFJlZ3ModXNlZFJlc3VsdFJlZ2lzdGVycywgUmVnaXN0ZXJBdE9mZnNldExpc3Q6Olplcm9C
YXNlZCk7CkBAIC03Nyw4ICs4Miw4IEBAIGNsYXNzIFdhc21DYWxsaW5nQ29udmVudGlvbiB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBoZWFkZXJTaXplSW5CeXRlcyA9
IENhbGxGcmFtZTo6aGVhZGVyU2l6ZUluUmVnaXN0ZXJzICogc2l6ZW9mKFJlZ2lzdGVyKTsKIAot
ICAgIFdhc21DYWxsaW5nQ29udmVudGlvbihWZWN0b3I8UmVnPiYmIGdwcnMsIFZlY3RvcjxSZWc+
JiYgZnBycywgVmVjdG9yPEdQUlJlZz4mJiBzY3JhdGNoZXMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVl
U2F2ZXMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVyU2F2ZXMpCi0gICAgICAgIDogZ3ByQXJncyhXVEZN
b3ZlKGdwcnMpKQorICAgIFdhc21DYWxsaW5nQ29udmVudGlvbihWZWN0b3I8SlNWYWx1ZVJlZ3M+
JiYganNycywgVmVjdG9yPEZQUlJlZz4mJiBmcHJzLCBWZWN0b3I8R1BSUmVnPiYmIHNjcmF0Y2hl
cywgUmVnaXN0ZXJTZXQmJiBjYWxsZWVTYXZlcywgUmVnaXN0ZXJTZXQmJiBjYWxsZXJTYXZlcykK
KyAgICAgICAgOiBqc3JBcmdzKFdURk1vdmUoanNycykpCiAgICAgICAgICwgZnByQXJncyhXVEZN
b3ZlKGZwcnMpKQogICAgICAgICAsIHByb2xvZ3VlU2NyYXRjaEdQUnMoV1RGTW92ZShzY3JhdGNo
ZXMpKQogICAgICAgICAsIGNhbGxlZVNhdmVSZWdpc3RlcnMoV1RGTW92ZShjYWxsZWVTYXZlcykp
CkBAIC04OCwxMCArOTMsMTEgQEAgcHVibGljOgogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdh
c21DYWxsaW5nQ29udmVudGlvbik7CiAKIHByaXZhdGU6Ci0gICAgQXJndW1lbnRMb2NhdGlvbiBt
YXJzaGFsbExvY2F0aW9uSW1wbChDYWxsUm9sZSByb2xlLCBjb25zdCBWZWN0b3I8UmVnPiYgcmVn
QXJncywgc2l6ZV90JiBjb3VudCwgc2l6ZV90JiBzdGFja09mZnNldCkgY29uc3QKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBSZWdUeXBlPgorICAgIEFyZ3VtZW50TG9jYXRpb24gbWFyc2hhbGxMb2Nh
dGlvbkltcGwoQ2FsbFJvbGUgcm9sZSwgY29uc3QgVmVjdG9yPFJlZ1R5cGU+JiByZWdBcmdzLCBz
aXplX3QmIGNvdW50LCBzaXplX3QmIHN0YWNrT2Zmc2V0KSBjb25zdAogICAgIHsKICAgICAgICAg
aWYgKGNvdW50IDwgcmVnQXJncy5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm4gQXJndW1lbnRM
b2NhdGlvbjo6cmVnKHJlZ0FyZ3NbY291bnQrK10pOworICAgICAgICAgICAgcmV0dXJuIEFyZ3Vt
ZW50TG9jYXRpb24geyByZWdBcmdzW2NvdW50KytdIH07CiAKICAgICAgICAgY291bnQrKzsKICAg
ICAgICAgQXJndW1lbnRMb2NhdGlvbiByZXN1bHQgPSByb2xlID09IENhbGxSb2xlOjpDYWxsZXIg
PyBBcmd1bWVudExvY2F0aW9uOjpzdGFja0FyZ3VtZW50KHN0YWNrT2Zmc2V0KSA6IEFyZ3VtZW50
TG9jYXRpb246OnN0YWNrKHN0YWNrT2Zmc2V0KTsKQEAgLTEwOSw3ICsxMTUsNyBAQCBwcml2YXRl
OgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgIGNhc2UgVHlwZUtp
bmQ6OlJlZjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKLSAgICAgICAgICAgIHJl
dHVybiBtYXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBncHJBcmdzLCBncEFyZ3VtZW50Q291bnQs
IHN0YWNrT2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9uSW1wbChy
b2xlLCBqc3JBcmdzLCBncEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KTsKICAgICAgICAgY2Fz
ZSBUeXBlS2luZDo6RjMyOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6CiAgICAgICAgICAg
ICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwgZnByQXJncywgZnBBcmd1bWVudENv
dW50LCBzdGFja09mZnNldCk7CkBAIC0xNTMsOCArMTU5LDggQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIGNvbnN0IFZlY3RvcjxSZWc+IGdwckFyZ3M7Ci0g
ICAgY29uc3QgVmVjdG9yPFJlZz4gZnByQXJnczsKKyAgICBjb25zdCBWZWN0b3I8SlNWYWx1ZVJl
Z3M+IGpzckFyZ3M7CisgICAgY29uc3QgVmVjdG9yPEZQUlJlZz4gZnByQXJnczsKICAgICBjb25z
dCBWZWN0b3I8R1BSUmVnPiBwcm9sb2d1ZVNjcmF0Y2hHUFJzOwogICAgIGNvbnN0IFJlZ2lzdGVy
U2V0IGNhbGxlZVNhdmVSZWdpc3RlcnM7CiAgICAgY29uc3QgUmVnaXN0ZXJTZXQgY2FsbGVyU2F2
ZVJlZ2lzdGVyczsKQEAgLTE2OSw4ICsxNzUsOCBAQCBwdWJsaWM6CiAgICAgLy8gV2FzbTo6Q29u
dGV4dConcyBpbnN0YW5jZS4KICAgICBzdGF0aWMgY29uc3RleHByIHB0cmRpZmZfdCBpbnN0YW5j
ZVN0YWNrT2Zmc2V0ID0gQ2FsbEZyYW1lU2xvdDo6dGhpc0FyZ3VtZW50ICogc2l6ZW9mKEVuY29k
ZWRKU1ZhbHVlKTsKIAotICAgIEpTQ2FsbGluZ0NvbnZlbnRpb24oVmVjdG9yPFJlZz4mJiBncHJz
LCBWZWN0b3I8UmVnPiYmIGZwcnMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVlU2F2ZXMsIFJlZ2lzdGVy
U2V0JiYgY2FsbGVyU2F2ZXMpCi0gICAgICAgIDogZ3ByQXJncyhXVEZNb3ZlKGdwcnMpKQorICAg
IEpTQ2FsbGluZ0NvbnZlbnRpb24oVmVjdG9yPEpTVmFsdWVSZWdzPiYmIGdwcnMsIFZlY3RvcjxG
UFJSZWc+JiYgZnBycywgUmVnaXN0ZXJTZXQmJiBjYWxsZWVTYXZlcywgUmVnaXN0ZXJTZXQmJiBj
YWxsZXJTYXZlcykKKyAgICAgICAgOiBqc3JBcmdzKFdURk1vdmUoZ3BycykpCiAgICAgICAgICwg
ZnByQXJncyhXVEZNb3ZlKGZwcnMpKQogICAgICAgICAsIGNhbGxlZVNhdmVSZWdpc3RlcnMoV1RG
TW92ZShjYWxsZWVTYXZlcykpCiAgICAgICAgICwgY2FsbGVyU2F2ZVJlZ2lzdGVycyhXVEZNb3Zl
KGNhbGxlclNhdmVzKSkKQEAgLTE3OCwxMCArMTg0LDExIEBAIHB1YmxpYzoKIAogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKEpTQ2FsbGluZ0NvbnZlbnRpb24pOwogcHJpdmF0ZToKLSAgICBBcmd1
bWVudExvY2F0aW9uIG1hcnNoYWxsTG9jYXRpb25JbXBsKENhbGxSb2xlIHJvbGUsIGNvbnN0IFZl
Y3RvcjxSZWc+JiByZWdBcmdzLCBzaXplX3QmIGNvdW50LCBzaXplX3QmIHN0YWNrT2Zmc2V0KSBj
b25zdAorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBSZWdUeXBlPgorICAgIEFyZ3VtZW50TG9jYXRp
b24gbWFyc2hhbGxMb2NhdGlvbkltcGwoQ2FsbFJvbGUgcm9sZSwgY29uc3QgVmVjdG9yPFJlZ1R5
cGU+JiByZWdBcmdzLCBzaXplX3QmIGNvdW50LCBzaXplX3QmIHN0YWNrT2Zmc2V0KSBjb25zdAog
ICAgIHsKICAgICAgICAgaWYgKGNvdW50IDwgcmVnQXJncy5zaXplKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gQXJndW1lbnRMb2NhdGlvbjo6cmVnKHJlZ0FyZ3NbY291bnQrK10pOworICAgICAgICAg
ICAgcmV0dXJuIEFyZ3VtZW50TG9jYXRpb24geyByZWdBcmdzW2NvdW50KytdIH07CiAKICAgICAg
ICAgY291bnQrKzsKICAgICAgICAgQXJndW1lbnRMb2NhdGlvbiByZXN1bHQgPSByb2xlID09IENh
bGxSb2xlOjpDYWxsZXIgPyBBcmd1bWVudExvY2F0aW9uOjpzdGFja0FyZ3VtZW50KHN0YWNrT2Zm
c2V0KSA6IEFyZ3VtZW50TG9jYXRpb246OnN0YWNrKHN0YWNrT2Zmc2V0KTsKQEAgLTE5OSw3ICsy
MDYsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoK
LSAgICAgICAgICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBncHJBcmdzLCBn
cEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybiBtYXJzaGFs
bExvY2F0aW9uSW1wbChyb2xlLCBqc3JBcmdzLCBncEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0
KTsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpG
NjQ6CiAgICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwgZnByQXJn
cywgZnBBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CkBAIC0yMjIsMTIgKzIyOSwxMiBAQCBw
dWJsaWM6CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2lnbmF0dXJlLmFyZ3VtZW50
Q291bnQoKTsgKytpKQogICAgICAgICAgICAgcGFyYW1zLmFwcGVuZChtYXJzaGFsbExvY2F0aW9u
KHJvbGUsIHNpZ25hdHVyZS5hcmd1bWVudChpKSwgZ3BBcmd1bWVudENvdW50LCBmcEFyZ3VtZW50
Q291bnQsIHN0YWNrT2Zmc2V0KSk7CiAKLSAgICAgICAgVmVjdG9yPEFyZ3VtZW50TG9jYXRpb24s
IDE+IHJlc3VsdHMgeyBBcmd1bWVudExvY2F0aW9uOjpyZWcoR1BSSW5mbzo6cmV0dXJuVmFsdWVH
UFIpIH07CisgICAgICAgIFZlY3RvcjxBcmd1bWVudExvY2F0aW9uLCAxPiByZXN1bHRzIHsgQXJn
dW1lbnRMb2NhdGlvbiB7IEpTUkluZm86OnJldHVyblZhbHVlSlNSIH0gfTsKICAgICAgICAgcmV0
dXJuIENhbGxJbmZvcm1hdGlvbihXVEZNb3ZlKHBhcmFtcyksIFdURk1vdmUocmVzdWx0cyksIHN0
YWNrT2Zmc2V0KTsKICAgICB9CiAKLSAgICBjb25zdCBWZWN0b3I8UmVnPiBncHJBcmdzOwotICAg
IGNvbnN0IFZlY3RvcjxSZWc+IGZwckFyZ3M7CisgICAgY29uc3QgVmVjdG9yPEpTVmFsdWVSZWdz
PiBqc3JBcmdzOworICAgIGNvbnN0IFZlY3RvcjxGUFJSZWc+IGZwckFyZ3M7CiAgICAgY29uc3Qg
UmVnaXN0ZXJTZXQgY2FsbGVlU2F2ZVJlZ2lzdGVyczsKICAgICBjb25zdCBSZWdpc3RlclNldCBj
YWxsZXJTYXZlUmVnaXN0ZXJzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21Gb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3Jt
YXQuaAppbmRleCBjNzllMzM3YzdhN2EuLjllZDdjOGMzNjcyNyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21Gb3JtYXQuaApAQCAtNDQ0LDcgKzQ0NCw5IEBAIHN0cnVjdCBFbnRyeXBv
aW50IHsKIHN0cnVjdCBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICBXVEZfTUFLRV9TVFJVQ1RfRkFT
VF9BTExPQ0FURUQ7CiAgICAgVmVjdG9yPENvZGVMb2NhdGlvbkRhdGFMYWJlbFB0cjxXYXNtRW50
cnlQdHJUYWc+PiBjYWxsZWVNb3ZlTG9jYXRpb25zOworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9C
M0pJVCkKICAgICBTdGFja01hcHMgc3RhY2ttYXBzOworI2VuZGlmCiAgICAgVmVjdG9yPFVubGlu
a2VkSGFuZGxlckluZm8+IGV4Y2VwdGlvbkhhbmRsZXJzOwogICAgIEVudHJ5cG9pbnQgZW50cnlw
b2ludDsKICAgICB1bnNpZ25lZCBvc3JFbnRyeVNjcmF0Y2hCdWZmZXJTaXplIHsgMCB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5jcHAKaW5kZXggNDEy
MGFlNmE5NDk0Li5mYjIxYzkyYmY4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21JbmRleE9yTmFtZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUluZGV4T3JOYW1lLmNwcApAQCAtMzAsMTYgKzMwLDIzIEBAIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgV2FzbSB7CiAKIEluZGV4T3JOYW1lOjpJbmRleE9yTmFtZShJbmRleCBpbmRl
eCwgc3RkOjpwYWlyPGNvbnN0IE5hbWUqLCBSZWZQdHI8TmFtZVNlY3Rpb24+PiYmIG5hbWUpCiB7
CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihtX2luZGV4TmFt
ZS5pbmRleCkgPT0gc2l6ZW9mKG1faW5kZXhOYW1lLm5hbWUpLCAiYml0LXRhZ2dpbmcgZGVwZW5k
cyBvbiBzaXplcyBiZWluZyBlcXVhbCIpOwotCi0gICAgaWYgKChpbmRleCAmIGFsbFRhZ3MpIHx8
IChiaXR3aXNlX2Nhc3Q8SW5kZXg+KG5hbWUuZmlyc3QpICYgYWxsVGFncykpCi0gICAgICAgICp0
aGlzID0gSW5kZXhPck5hbWUoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgaWYgKG5hbWUuZmlyc3Qp
Ci0gICAgICAgICAgICBtX2luZGV4TmFtZS5uYW1lID0gbmFtZS5maXJzdDsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgbV9pbmRleE5hbWUuaW5kZXggPSBpbmRleFRhZyB8IGluZGV4OworICAg
IEFTU0VSVCghKGluZGV4ICYgYWxsVGFncykpOworICAgIEFTU0VSVCghKGJpdHdpc2VfY2FzdDxJ
bmRleD4obmFtZS5maXJzdCkgJiBhbGxUYWdzKSk7CisgICAgaWYgKG5hbWUuZmlyc3QpCisgICAg
ICAgIG1faW5kZXhOYW1lLm5hbWUgPSBuYW1lLmZpcnN0OworICAgIGVsc2UKKyAgICAgICAgbV9p
bmRleE5hbWUuaW5kZXggPSBpbmRleFRhZyB8IGluZGV4OworI2VsaWYgVVNFKEpTVkFMVUUzMl82
NCkKKyAgICBpZiAobmFtZS5maXJzdCkgeworICAgICAgICBtX2luZGV4TmFtZS5uYW1lID0gbmFt
ZS5maXJzdDsKKyAgICAgICAgbV9raW5kID0gS2luZDo6TmFtZTsKKyAgICB9IGVsc2UgeworICAg
ICAgICBtX2luZGV4TmFtZS5pbmRleCA9IGluZGV4OworICAgICAgICBtX2tpbmQgPSBLaW5kOjpJ
bmRleDsKICAgICB9CisjZW5kaWYKICAgICBtX25hbWVTZWN0aW9uID0gV1RGTW92ZShuYW1lLnNl
Y29uZCk7CiB9CiAKQEAgLTQ5LDggKzU2LDggQEAgU3RyaW5nIG1ha2VTdHJpbmcoY29uc3QgSW5k
ZXhPck5hbWUmIGlvbikKICAgICAgICAgcmV0dXJuICJ3YXNtLXN0dWIiX3M7CiAgICAgY29uc3Qg
U3RyaW5nIG1vZHVsZU5hbWUgPSBpb24ubmFtZVNlY3Rpb24oKS0+bW9kdWxlTmFtZS5zaXplKCkg
PyBTdHJpbmcoaW9uLm5hbWVTZWN0aW9uKCktPm1vZHVsZU5hbWUuZGF0YSgpLCBpb24ubmFtZVNl
Y3Rpb24oKS0+bW9kdWxlTmFtZS5zaXplKCkpIDogU3RyaW5nKGlvbi5uYW1lU2VjdGlvbigpLT5t
b2R1bGVIYXNoLmRhdGEoKSwgaW9uLm5hbWVTZWN0aW9uKCktPm1vZHVsZUhhc2guc2l6ZSgpKTsK
ICAgICBpZiAoaW9uLmlzSW5kZXgoKSkKLSAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcobW9kdWxl
TmFtZSwgIi53YXNtLWZ1bmN0aW9uWyIsIFN0cmluZzo6bnVtYmVyKGlvbi5tX2luZGV4TmFtZS5p
bmRleCAmIH5JbmRleE9yTmFtZTo6aW5kZXhUYWcpLCAnXScpOwotICAgIHJldHVybiBtYWtlU3Ry
aW5nKG1vZHVsZU5hbWUsICIud2FzbS1mdW5jdGlvblsiLCBTdHJpbmcoaW9uLm1faW5kZXhOYW1l
Lm5hbWUtPmRhdGEoKSwgaW9uLm1faW5kZXhOYW1lLm5hbWUtPnNpemUoKSksICddJyk7CisgICAg
ICAgIHJldHVybiBtYWtlU3RyaW5nKG1vZHVsZU5hbWUsICIud2FzbS1mdW5jdGlvblsiLCBTdHJp
bmc6Om51bWJlcihpb24uaW5kZXgoKSksICddJyk7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcobW9k
dWxlTmFtZSwgIi53YXNtLWZ1bmN0aW9uWyIsIFN0cmluZyhpb24ubmFtZSgpLT5kYXRhKCksIGlv
bi5uYW1lKCktPnNpemUoKSksICddJyk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNt
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5oCmluZGV4IDVl
ZWVmYzg4YWY3Ni4uMmQ5MDMwMTE4ZjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtSW5kZXhPck5hbWUuaApAQCAtNDAsMTQgKzQwLDY3IEBAIHN0cnVjdCBOYW1lU2VjdGlv
bjsKIHN0cnVjdCBJbmRleE9yTmFtZSB7CiAgICAgdHlwZWRlZiBzaXplX3QgSW5kZXg7CiAKLSAg
ICBJbmRleE9yTmFtZSgpIHsgbV9pbmRleE5hbWUuaW5kZXggPSBlbXB0eVRhZzsgfQorcHJpdmF0
ZToKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGVudW0gY2xhc3MgS2luZCA6IHVpbnQ4X3Qg
eworICAgICAgICBFbXB0eSwKKyAgICAgICAgSW5kZXgsCisgICAgICAgIE5hbWUKKyAgICB9Owor
I2VuZGlmCitwdWJsaWM6CisKKyAgICBJbmRleE9yTmFtZSgpCisgICAgeworI2lmIFVTRShKU1ZB
TFVFNjQpCisgICAgICAgIG1faW5kZXhOYW1lLmluZGV4ID0gZW1wdHlUYWc7CisjZWxpZiBVU0Uo
SlNWQUxVRTMyXzY0KQorICAgICAgICBtX2tpbmQgPSBLaW5kOjpFbXB0eTsKKyNlbmRpZgorICAg
IH0KKwogICAgIEluZGV4T3JOYW1lKEluZGV4LCBzdGQ6OnBhaXI8Y29uc3QgTmFtZSosIFJlZlB0
cjxOYW1lU2VjdGlvbj4+JiYpOwotICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIGJp
dHdpc2VfY2FzdDxJbmRleD4obV9pbmRleE5hbWUpICYgZW1wdHlUYWc7IH0KLSAgICBib29sIGlz
SW5kZXgoKSBjb25zdCB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8SW5kZXg+KG1faW5kZXhOYW1lKSAm
IGluZGV4VGFnOyB9Ci0gICAgYm9vbCBpc05hbWUoKSBjb25zdCB7IHJldHVybiAhKGlzRW1wdHko
KSB8fCBpc05hbWUoKSk7IH0KLSAgICBOYW1lU2VjdGlvbiogbmFtZVNlY3Rpb24oKSBjb25zdCB7
IHJldHVybiBtX25hbWVTZWN0aW9uLmdldCgpOyB9CiAKLSAgICBmcmllbmQgU3RyaW5nIG1ha2VT
dHJpbmcoY29uc3QgSW5kZXhPck5hbWUmKTsKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdAorICAg
IHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PEluZGV4
PihtX2luZGV4TmFtZSkgJiBlbXB0eVRhZzsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
ICAgIHJldHVybiBtX2tpbmQgPT0gS2luZDo6RW1wdHk7CisjZW5kaWYKKyAgICB9CisKKyAgICBi
b29sIGlzSW5kZXgoKSBjb25zdAorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBy
ZXR1cm4gYml0d2lzZV9jYXN0PEluZGV4PihtX2luZGV4TmFtZSkgJiBpbmRleFRhZzsKKyNlbGlm
IFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJldHVybiBtX2tpbmQgPT0gS2luZDo6SW5kZXg7
CisjZW5kaWYKKyAgICB9CisKKyAgICBib29sIGlzTmFtZSgpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gIShpc0VtcHR5KCkgfHwgaXNJbmRleCgpKTsKKyAgICB9CisKKyAgICBJbmRleCBp
bmRleCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNJbmRleCgpKTsKKyNpZiBVU0Uo
SlNWQUxVRTY0KQorICAgICAgICByZXR1cm4gbV9pbmRleE5hbWUuaW5kZXggJiB+aW5kZXhUYWc7
CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4gbV9pbmRleE5hbWUuaW5k
ZXg7CisjZW5kaWYKKyAgICB9CisKKyAgICBjb25zdCBOYW1lKiBuYW1lKCkgY29uc3QKKyAgICB7
CisgICAgICAgIEFTU0VSVChpc05hbWUoKSk7CisgICAgICAgIHJldHVybiBtX2luZGV4TmFtZS5u
YW1lOworICAgIH0KKworICAgIE5hbWVTZWN0aW9uKiBuYW1lU2VjdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fbmFtZVNlY3Rpb24uZ2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICB1bmlvbiB7CkBAIC01
NiwxMCArMTA5LDE1IEBAIHByaXZhdGU6CiAgICAgfSBtX2luZGV4TmFtZTsKICAgICBSZWZQdHI8
TmFtZVNlY3Rpb24+IG1fbmFtZVNlY3Rpb247CiAKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgIC8v
IFVzZSB0aGUgdG9wIGJpdHMgYXMgdGFncy4gTmVpdGhlciBwb2ludGVycyBub3IgdGhlIGZ1bmN0
aW9uIGluZGV4IHNwYWNlIHNob3VsZCB1c2UgdGhlbS4KICAgICBzdGF0aWMgY29uc3RleHByIElu
ZGV4IGluZGV4VGFnID0gMXVsbCA8PCAoQ0hBUl9CSVQgKiBzaXplb2YoSW5kZXgpIC0gMSk7CiAg
ICAgc3RhdGljIGNvbnN0ZXhwciBJbmRleCBlbXB0eVRhZyA9IDF1bGwgPDwgKENIQVJfQklUICog
c2l6ZW9mKEluZGV4KSAtIDIpOwogICAgIHN0YXRpYyBjb25zdGV4cHIgSW5kZXggYWxsVGFncyA9
IGluZGV4VGFnIHwgZW1wdHlUYWc7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIC8vIFVz
ZSBhbiBleHBsaWNpdCB0YWcgYXMgcG9pbnRlcnMgbWlnaHQgaGF2ZSBoaWdoIGJpdHMgc2V0Cisg
ICAgS2luZCBtX2tpbmQ7CisjZW5kaWYKIH07CiAKIFN0cmluZyBtYWtlU3RyaW5nKGNvbnN0IElu
ZGV4T3JOYW1lJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
SW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5oCmlu
ZGV4IDcxMGI4NzZlMjI0NS4uZGE2MGQ1NjY1ODE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtSW5zdGFuY2UuaApAQCAtMTA3LDcgKzEwNyw4IEBAIHB1YmxpYzoKICAgICB7CiAg
ICAgICAgIGlmIChtX21lbW9yeSAhPSBudWxscHRyKSB7CiAgICAgICAgICAgICBtX2NhY2hlZE1l
bW9yeSA9IENhZ2VkUHRyPEdpZ2FjYWdlOjpQcmltaXRpdmUsIHZvaWQsIHRhZ0NhZ2VkUHRyPiht
ZW1vcnkoKS0+bWVtb3J5KCksIG1lbW9yeSgpLT5ib3VuZHNDaGVja2luZ1NpemUoKSk7Ci0gICAg
ICAgICAgICBtX2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSA9IG1lbW9yeSgpLT5ib3VuZHNDaGVj
a2luZ1NpemUoKTsKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgdXNlZCBieSB0aGUgbm9uLXNpZ25h
bGluZyBiYXNlZCBib3VuZCBjaGVja2luZywgc28gdXNlIHRoZSBhY3R1YWwgc2l6ZSBvZiB0aGUg
bWVtb3J5LgorICAgICAgICAgICAgbV9jYWNoZWRCb3VuZHNDaGVja2luZ1NpemUgPSBtZW1vcnko
KS0+c2l6ZSgpOwogICAgICAgICAgICAgQVNTRVJUKG1lbW9yeSgpLT5tZW1vcnkoKSA9PSBjYWNo
ZWRNZW1vcnkoKSk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcAppbmRleCAxMzU2OTBkYTJkNjAuLmI2YjRh
NDY4YWE2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50
R2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRH
ZW5lcmF0b3IuY3BwCkBAIC0zMzgsNyArMzM4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJl
dHVybiBtX25vcm1hbGl6ZWRBcmd1bWVudHNbaW5kZXhdOwogCiAgICAgICAgIGNvbnN0IGF1dG8m
IGNhbGxpbmdDb252ZW50aW9uID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCk7Ci0gICAgICAgIGNv
bnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZ3ByQXJncy5zaXplKCk7
CisgICAgICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uanNy
QXJncy5zaXplKCk7CiAgICAgICAgIGNvbnN0IHVpbnQzMl90IGZwckNvdW50ID0gY2FsbGluZ0Nv
bnZlbnRpb24uZnByQXJncy5zaXplKCk7CiAgICAgICAgIHJldHVybiB2aXJ0dWFsUmVnaXN0ZXJG
b3JMb2NhbChpbmRleCAtIG1fY29kZUJsb2NrLT5tX251bUFyZ3VtZW50cyArIGdwckNvdW50ICsg
ZnByQ291bnQgKyBudW1iZXJPZkxMSW50Q2FsbGVlU2F2ZVJlZ2lzdGVycyk7CiAgICAgfQpAQCAt
NTkyLDcgKzU5Miw3IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvckNh
bGxlcihjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSkgLT4gTExJCiAgICAgY29uc3QgYXV0byBp
bml0aWFsU3RhY2tTaXplID0gbV9zdGFja1NpemU7CiAKICAgICBjb25zdCBhdXRvJiBjYWxsaW5n
Q29udmVudGlvbiA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpOwotICAgIGNvbnN0IHVpbnQzMl90
IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZ3ByQXJncy5zaXplKCk7CisgICAgY29uc3Qg
dWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5qc3JBcmdzLnNpemUoKTsKICAg
ICBjb25zdCB1aW50MzJfdCBmcHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmZwckFyZ3Muc2l6
ZSgpOwogCiAgICAgdWludDMyX3Qgc3RhY2tDb3VudCA9IDA7CkBAIC03MzQsNyArNzM0LDcgQEAg
YXV0byBMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVlKGNvbnN0IFNpZ25h
dHVyZSYgc2lnbmF0dXJlKSAtPiBWZWMKICAgICBtX3Jlc3VsdHMucmVzZXJ2ZUluaXRpYWxDYXBh
Y2l0eShzaWduYXR1cmUucmV0dXJuQ291bnQoKSk7CiAKICAgICBjb25zdCBhdXRvJiBjYWxsaW5n
Q29udmVudGlvbiA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpOwotICAgIGNvbnN0IHVpbnQzMl90
IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZ3ByQXJncy5zaXplKCk7CisgICAgY29uc3Qg
dWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5qc3JBcmdzLnNpemUoKTsKICAg
ICBjb25zdCB1aW50MzJfdCBmcHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmZwckFyZ3Muc2l6
ZSgpOwogCiAgICAgdWludDMyX3QgZ3BySW5kZXggPSAwOwpAQCAtNzgwLDcgKzc4MCw3IEBAIGF1
dG8gTExJbnRHZW5lcmF0b3I6OmFkZEFyZ3VtZW50cyhjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVy
ZSkgLT4gUGFydGlhbFJlc3VsdAogICAgIG1fbm9ybWFsaXplZEFyZ3VtZW50cy5yZXNpemUobV9j
b2RlQmxvY2stPm1fbnVtQXJndW1lbnRzKTsKIAogICAgIGNvbnN0IGF1dG8mIGNhbGxpbmdDb252
ZW50aW9uID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCk7Ci0gICAgY29uc3QgdWludDMyX3QgZ3By
Q291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5ncHJBcmdzLnNpemUoKTsKKyAgICBjb25zdCB1aW50
MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmpzckFyZ3Muc2l6ZSgpOwogICAgIGNv
bnN0IHVpbnQzMl90IGZwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZnByQXJncy5zaXplKCk7
CiAgICAgY29uc3QgdWludDMyX3QgbWF4R1BSSW5kZXggPSBncHJDb3VudDsKICAgICBjb25zdCB1
aW50MzJfdCBtYXhGUFJJbmRleCA9IGdwckNvdW50ICsgZnByQ291bnQ7CkBAIC05NjEsNyArOTYx
LDcgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6YWRkTG9vcChCbG9ja1NpZ25hdHVyZSBzaWduYXR1
cmUsIFN0YWNrJiBlbmNsb3NpbmdTdGFjaywgQ28KICAgICAgICAgb3NyRW50cnlEYXRhLmFwcGVu
ZChtX25vcm1hbGl6ZWRBcmd1bWVudHNbaV0pOwogCiAgICAgY29uc3QgYXV0byYgY2FsbGluZ0Nv
bnZlbnRpb24gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKTsKLSAgICBjb25zdCB1aW50MzJfdCBn
cHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgIGNvbnN0IHVp
bnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uanNyQXJncy5zaXplKCk7CiAgICAg
Y29uc3QgdWludDMyX3QgZnByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5mcHJBcmdzLnNpemUo
KTsKICAgICBmb3IgKHVpbnQzMl90IGkgPSBncHJDb3VudCArIGZwckNvdW50ICsgbnVtYmVyT2ZM
TEludENhbGxlZVNhdmVSZWdpc3RlcnM7IGkgPCBtX2NvZGVCbG9jay0+bV9udW1WYXJzOyBpKysp
CiAgICAgICAgIG9zckVudHJ5RGF0YS5hcHBlbmQodmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoaSkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcAppbmRleCBh
ZTE1ZjhkZWRmYmUuLjgyYzJhNWUyNjg3MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUxMSW50UGxhbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUxMSW50UGxhbi5jcHAKQEAgLTExOSwxMiArMTE5LDE1IEBAIHZvaWQgTExJbnRQbGFu
OjpkaWRDb21wbGV0ZUNvbXBpbGF0aW9uKCkKICAgICAgICAgICAgIGVudHJ5cG9pbnRzW2ldID0g
aml0LmxhYmVsKCk7CiAjaWYgQ1BVKFg4Nl82NCkKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6
QWRkcmVzcyBjYWxsZWVTbG90KENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIENh
bGxGcmFtZVNsb3Q6OmNhbGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkg
LSBzaXplb2YoQ1BVUmVnaXN0ZXIpKTsKLSNlbGlmIENQVShBUk02NCkgfHwgQ1BVKFJJU0NWNjQp
CisjZWxpZiBDUFUoQVJNNjQpIHx8IENQVShSSVNDVjY0KSB8fCBDUFUoQVJNKQogICAgICAgICAg
ICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGNhbGxlZVNsb3QoQ0NhbGxIZWxwZXJzOjpzdGFja1Bv
aW50ZXJSZWdpc3RlciwgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlICogc3RhdGljX2Nhc3Q8aW50Pihz
aXplb2YoUmVnaXN0ZXIpKSAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSk7CiAjZWxzZQogI2Vy
cm9yIFVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZS4KICNlbmRpZgotICAgICAgICAgICAgaml0LnN0
b3JlUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihDYWxsZWVCaXRzOjpib3hXYXNtKG1f
Y2FsbGVlc1ZlY3RvcltpXS5wdHIoKSkpLCBjYWxsZWVTbG90KTsKKyAgICAgICAgICAgIGppdC5z
dG9yZVB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoQ2FsbGVlQml0czo6Ym94V2FzbSht
X2NhbGxlZXNWZWN0b3JbaV0ucHRyKCkpKSwgY2FsbGVlU2xvdC53aXRoT2Zmc2V0KFBheWxvYWRP
ZmZzZXQpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgaml0LnN0b3JlMzIo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6V2FzbVRhZyksIGNhbGxlZVNsb3Qu
d2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgogICAgICAgICAgICAganVtcHNbaV0gPSBq
aXQuanVtcCgpOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21NZW1vcnkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1l
bW9yeS5jcHAKaW5kZXggNDQwNzU5NTJmMDA3Li5iZjVjMWVjNDYyYmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3BwCkBAIC05OCwxMSArOTgsOSBAQCBjbGFzcyBN
ZW1vcnlNYW5hZ2VyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShNZW1vcnlNYW5hZ2VyKTsKIHB1YmxpYzoKLSAgICBNZW1vcnlNYW5hZ2Vy
KCkKLSAgICAgICAgOiBtX21heEZhc3RNZW1vcnlDb3VudChPcHRpb25zOjptYXhOdW1XZWJBc3Nl
bWJseUZhc3RNZW1vcmllcygpKQotICAgIHsKLSAgICB9Ci0gICAgCisgICAgTWVtb3J5TWFuYWdl
cigpID0gZGVmYXVsdDsKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZ
KQogICAgIE1lbW9yeVJlc3VsdCB0cnlBbGxvY2F0ZUZhc3RNZW1vcnkoKQogICAgIHsKICAgICAg
ICAgTWVtb3J5UmVzdWx0IHJlc3VsdCA9IFsmXSB7CkBAIC0xMjUsNyArMTIzLDcgQEAgcHVibGlj
OgogICAgICAgICAKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9Ci0gICAgCisKICAgICB2
b2lkIGZyZWVGYXN0TWVtb3J5KHZvaWQqIGJhc2VQdHIpCiAgICAgewogICAgICAgICB7CkBAIC0x
MzYsNiArMTM0LDcgQEAgcHVibGljOgogICAgICAgICAKICAgICAgICAgZGF0YUxvZ0xuSWYoT3B0
aW9uczo6bG9nV2ViQXNzZW1ibHlNZW1vcnkoKSwgIkZyZWVkIHZpcnR1YWw7IHN0YXRlOiAiLCAq
dGhpcyk7CiAgICAgfQorI2VuZGlmCiAKICAgICBNZW1vcnlSZXN1bHQgdHJ5QWxsb2NhdGVHcm93
YWJsZUJvdW5kc0NoZWNraW5nTWVtb3J5KHNpemVfdCBtYXBwZWRDYXBhY2l0eSkKICAgICB7CkBA
IC0xNzAsMTEgKzE2OSwxMyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICAvLyBOT1RFOiBUaGlz
IGNhbiBiZSBjYWxsZWQgZnJvbSBhIHNpZ25hbCBoYW5kbGVyLCBidXQgb25seSBhZnRlciB3ZSBw
cm92ZWQgdGhhdCB3ZSdyZSBpbiBKSVQgY29kZSBvciBXYXNtTExJbnQgY29kZS4KICAgICAgICAg
TG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJ
TkdfTUVNT1JZKQogICAgICAgICBmb3IgKHZvaWQqIG1lbW9yeSA6IG1fZmFzdE1lbW9yaWVzKSB7
CiAgICAgICAgICAgICBjaGFyKiBzdGFydCA9IHN0YXRpY19jYXN0PGNoYXIqPihtZW1vcnkpOwog
ICAgICAgICAgICAgaWYgKHN0YXJ0IDw9IGFkZHJlc3MgJiYgYWRkcmVzcyA8PSBzdGFydCArIE1l
bW9yeTo6ZmFzdE1hcHBlZEJ5dGVzKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0KKyNlbmRpZgogICAgICAgICB1aW50cHRyX3QgYWRkcmVzc1ZhbHVlID0gYml0d2lz
ZV9jYXN0PHVpbnRwdHJfdD4oYWRkcmVzcyk7CiAgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBzdGQ6
OnVwcGVyX2JvdW5kKG1fZ3Jvd2FibGVCb3VuZHNDaGVja2luZ01lbW9yaWVzLmJlZ2luKCksIG1f
Z3Jvd2FibGVCb3VuZHNDaGVja2luZ01lbW9yaWVzLmVuZCgpLCBzdGQ6Om1ha2VfcGFpcihhZGRy
ZXNzVmFsdWUsIDApLAogICAgICAgICAgICAgW10oc3RkOjpwYWlyPHVpbnRwdHJfdCwgc2l6ZV90
PiBhLCBzdGQ6OnBhaXI8dWludHB0cl90LCBzaXplX3Q+IGIpIHsKQEAgLTIyNywxMyArMjI4LDE5
IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QK
ICAgICB7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgICAg
IG91dC5wcmludCgiZmFzdCBtZW1vcmllcyA9ICAiLCBtX2Zhc3RNZW1vcmllcy5zaXplKCksICIv
IiwgbV9tYXhGYXN0TWVtb3J5Q291bnQsICIsIGJ5dGVzID0gIiwgbV9waHlzaWNhbEJ5dGVzLCAi
LyIsIG1lbW9yeUxpbWl0KCkpOworI2Vsc2UKKyAgICAgICAgb3V0LnByaW50KCJmYXN0IG1lbW9y
aWVzID0gTi5BLiwgYnl0ZXMgPSAiLCBtX3BoeXNpY2FsQnl0ZXMsICIvIiwgbWVtb3J5TGltaXQo
KSk7CisjZW5kaWYKICAgICB9CiAgICAgCiBwcml2YXRlOgogICAgIExvY2sgbV9sb2NrOwotICAg
IHVuc2lnbmVkIG1fbWF4RmFzdE1lbW9yeUNvdW50IHsgMCB9OworI2lmIEVOQUJMRShXRUJBU1NF
TUJMWV9TSUdOQUxJTkdfTUVNT1JZKQorICAgIHVuc2lnbmVkIG1fbWF4RmFzdE1lbW9yeUNvdW50
IHsgT3B0aW9uczo6bWF4TnVtV2ViQXNzZW1ibHlGYXN0TWVtb3JpZXMoKSB9OwogICAgIFZlY3Rv
cjx2b2lkKj4gbV9mYXN0TWVtb3JpZXM7CisjZW5kaWYKICAgICBTdGRTZXQ8c3RkOjpwYWlyPHVp
bnRwdHJfdCwgc2l6ZV90Pj4gbV9ncm93YWJsZUJvdW5kc0NoZWNraW5nTWVtb3JpZXM7CiAgICAg
c2l6ZV90IG1fcGh5c2ljYWxCeXRlcyB7IDAgfTsKIH07CkBAIC0zMDAsNiArMzA3LDcgQEAgTWVt
b3J5SGFuZGxlOjp+TWVtb3J5SGFuZGxlKCkKICAgICAgICAgdm9pZCogbWVtb3J5ID0gdGhpcy0+
bWVtb3J5KCk7CiAgICAgICAgIG1lbW9yeU1hbmFnZXIoKS5mcmVlUGh5c2ljYWxCeXRlcyhtX3Np
emUpOwogICAgICAgICBzd2l0Y2ggKG1fbW9kZSkgeworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9T
SUdOQUxJTkdfTUVNT1JZKQogICAgICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzoKICAg
ICAgICAgICAgIGlmIChtcHJvdGVjdChtZW1vcnksIE1lbW9yeTo6ZmFzdE1hcHBlZEJ5dGVzKCks
IFBST1RfUkVBRCB8IFBST1RfV1JJVEUpKSB7CiAgICAgICAgICAgICAgICAgZGF0YUxvZygibXBy
b3RlY3QgZmFpbGVkOiAiLCBzYWZlU3RyZXJyb3IoZXJybm8pLmRhdGEoKSwgIlxuIik7CkBAIC0z
MDcsNiArMzE1LDcgQEAgTWVtb3J5SGFuZGxlOjp+TWVtb3J5SGFuZGxlKCkKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIG1lbW9yeU1hbmFnZXIoKS5mcmVlRmFzdE1lbW9yeShtZW1vcnkpOwog
ICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICAgICAgY2FzZSBNZW1vcnlNb2RlOjpCb3Vu
ZHNDaGVja2luZzogewogICAgICAgICAgICAgc3dpdGNoIChtX3NoYXJpbmdNb2RlKSB7CiAgICAg
ICAgICAgICBjYXNlIE1lbW9yeVNoYXJpbmdNb2RlOjpEZWZhdWx0OgpAQCAtMzk1LDYgKzQwNCw3
IEBAIFJlZlB0cjxNZW1vcnk+IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBpbml0aWFsLCBQ
YWdlQ291bnQgbWF4aW11bSwgTWVtb3J5U2hhCiAgICAgaWYgKCFkb25lKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICAgICAgCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19N
RU1PUlkpCiAgICAgY2hhciogZmFzdE1lbW9yeSA9IG51bGxwdHI7CiAgICAgaWYgKE9wdGlvbnM6
OnVzZVdlYkFzc2VtYmx5RmFzdE1lbW9yeSgpKSB7CiAgICAgICAgIHRyeUFsbG9jYXRlKApAQCAt
NDEzLDcgKzQyMyw4IEBAIFJlZlB0cjxNZW1vcnk+IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3Vu
dCBpbml0aWFsLCBQYWdlQ291bnQgbWF4aW11bSwgTWVtb3J5U2hhCiAKICAgICAgICAgcmV0dXJu
IE1lbW9yeTo6Y3JlYXRlKGFkb3B0UmVmKCpuZXcgTWVtb3J5SGFuZGxlKGZhc3RNZW1vcnksIGlu
aXRpYWxCeXRlcywgTWVtb3J5OjpmYXN0TWFwcGVkQnl0ZXMoKSwgaW5pdGlhbCwgbWF4aW11bSwg
c2hhcmluZ01vZGUsIE1lbW9yeU1vZGU6OlNpZ25hbGluZykpLCBXVEZNb3ZlKG5vdGlmeU1lbW9y
eVByZXNzdXJlKSwgV1RGTW92ZShzeW5jVHJ5VG9SZWNsYWltTWVtb3J5KSwgV1RGTW92ZShncm93
U3VjY2Vzc0NhbGxiYWNrKSk7CiAgICAgfQotICAgIAorI2VuZGlmCisKICAgICBpZiAoVU5MSUtF
TFkoT3B0aW9uczo6Y3Jhc2hJZldlYkFzc2VtYmx5Q2FudEZhc3RNZW1vcnkoKSkpCiAgICAgICAg
IHdlYkFzc2VtYmx5Q291bGRudEdldEZhc3RNZW1vcnkoKTsKIApAQCAtNDU2LDYgKzQ2Nyw3IEBA
IFJlZlB0cjxNZW1vcnk+IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBpbml0aWFsLCBQYWdl
Q291bnQgbWF4aW11bSwgTWVtb3J5U2hhCiAKIE1lbW9yeTo6fk1lbW9yeSgpID0gZGVmYXVsdDsK
IAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogc2l6ZV90IE1lbW9y
eTo6ZmFzdE1hcHBlZFJlZHpvbmVCeXRlcygpCiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHNp
emVfdD4oUGFnZUNvdW50OjpwYWdlU2l6ZSkgKiBPcHRpb25zOjp3ZWJBc3NlbWJseUZhc3RNZW1v
cnlSZWR6b25lUGFnZXMoKTsKQEAgLTQ2Niw2ICs0NzgsNyBAQCBzaXplX3QgTWVtb3J5OjpmYXN0
TWFwcGVkQnl0ZXMoKQogICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKHVpbnQ2NF90KSA9PSBzaXpl
b2Yoc2l6ZV90KSwgIldlIHJlbHkgb24gYWxsb3dpbmcgdGhlIG1heGltdW0gc2l6ZSBvZiBNZW1v
cnkgd2UgbWFwIHRvIGJlIDJeMzIgKyByZWR6b25lIHdoaWNoIGlzIGxhcmdlciB0aGFuIGZpdHMg
aW4gYSAzMi1iaXQgaW50ZWdlciB0aGF0IHdlJ2QgcGFzcyB0byBtcHJvdGVjdCBpZiB0aGlzIGRp
ZG4ndCBob2xkLiIpOwogICAgIHJldHVybiAoc3RhdGljX2Nhc3Q8c2l6ZV90PigxKSA8PCAzMikg
KyBmYXN0TWFwcGVkUmVkem9uZUJ5dGVzKCk7CiB9CisjZW5kaWYKIAogYm9vbCBNZW1vcnk6OmFk
ZHJlc3NJc0luR3Jvd2FibGVPckZhc3RNZW1vcnkodm9pZCogYWRkcmVzcykKIHsKQEAgLTUyNCw4
ICs1MzcsMTQgQEAgRXhwZWN0ZWQ8UGFnZUNvdW50LCBNZW1vcnk6Okdyb3dGYWlsUmVhc29uPiBN
ZW1vcnk6Omdyb3dTaGFyZWQoUGFnZUNvdW50IGRlbHRhKQogICAgICAgICBtX2hhbmRsZS0+Z3Jv
d1RvU2l6ZShkZXNpcmVkU2l6ZSk7CiAgICAgICAgIHJldHVybiBvbGRQYWdlQ291bnQ7CiAgICAg
fSgpKTsKLSAgICBpZiAocmVzdWx0KQorICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgbV9ncm93
U3VjY2Vzc0NhbGxiYWNrKEdyb3dTdWNjZXNzVGFnLCBvbGRQYWdlQ291bnQsIG5ld1BhZ2VDb3Vu
dCk7CisgICAgICAgIC8vIFVwZGF0ZSBjYWNoZSBmb3IgaW5zdGFuY2UKKyAgICAgICAgZm9yIChh
dXRvJiBpbnN0YW5jZSA6IG1faW5zdGFuY2VzKSB7CisgICAgICAgICAgICBpZiAoaW5zdGFuY2Uu
Z2V0KCkgIT0gbnVsbHB0cikKKyAgICAgICAgICAgICAgICBpbnN0YW5jZS5nZXQoKS0+dXBkYXRl
Q2FjaGVkTWVtb3J5KCk7CisgICAgICAgIH0KKyAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IApAQCAtNTg4LDYgKzYwNyw3IEBAIEV4cGVjdGVkPFBhZ2VDb3VudCwgTWVtb3J5OjpHcm93RmFp
bFJlYXNvbj4gTWVtb3J5Ojpncm93KFBhZ2VDb3VudCBkZWx0YSkKICAgICAgICAgQVNTRVJUKG1l
bW9yeSgpID09IG5ld01lbW9yeSk7CiAgICAgICAgIHJldHVybiBzdWNjZXNzKCk7CiAgICAgfQor
I2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIGNhc2UgTWVtb3J5
TW9kZTo6U2lnbmFsaW5nOiB7CiAgICAgICAgIHNpemVfdCBleHRyYUJ5dGVzID0gZGVzaXJlZFNp
emUgLSBzaXplKCk7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGV4dHJhQnl0ZXMpOwpAQCAtNjEz
LDYgKzYzMyw3IEBAIEV4cGVjdGVkPFBhZ2VDb3VudCwgTWVtb3J5OjpHcm93RmFpbFJlYXNvbj4g
TWVtb3J5Ojpncm93KFBhZ2VDb3VudCBkZWx0YSkKICAgICAgICAgbV9oYW5kbGUtPmdyb3dUb1Np
emUoZGVzaXJlZFNpemUpOwogICAgICAgICByZXR1cm4gc3VjY2VzcygpOwogICAgIH0KKyNlbmRp
ZgogICAgIH0KIAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC02NDYsNyAr
NjY3LDggQEAgYm9vbCBNZW1vcnk6OmNvcHkodWludDMyX3QgZHN0QWRkcmVzcywgdWludDMyX3Qg
c3JjQWRkcmVzcywgdWludDMyX3QgY291bnQpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAg
dWludDhfdCogYmFzZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KG1lbW9yeSgpKTsKLSAg
ICBtZW1jcHkoYmFzZSArIGRzdEFkZHJlc3MsIGJhc2UgKyBzcmNBZGRyZXNzLCBjb3VudCk7Cisg
ICAgLy8gU291cmNlIGFuZCBkZXN0aW5hdGlvbiBhcmVhcyBtaWdodCBvdmVybGFwLCBzbyB1c2lu
ZyBtZW1tb3ZlLgorICAgIG1lbW1vdmUoYmFzZSArIGRzdEFkZHJlc3MsIGJhc2UgKyBzcmNBZGRy
ZXNzLCBjb3VudCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21NZW1vcnkuaAppbmRleCBmNWM1OGZjZjk2ZjIuLjQ5Yzg1NTY2MWU0NCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaApAQCAtMTA2LDggKzEwNiwxMCBAQCBw
dWJsaWM6CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB+TWVtb3J5KCk7CiAKKyNpZiBFTkFCTEUo
V0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBzdGF0aWMgc2l6ZV90IGZhc3RNYXBw
ZWRSZWR6b25lQnl0ZXMoKTsKICAgICBzdGF0aWMgc2l6ZV90IGZhc3RNYXBwZWRCeXRlcygpOyAv
LyBJbmNsdWRlcyByZWR6b25lLgorI2VuZGlmCiAgICAgc3RhdGljIGJvb2wgYWRkcmVzc0lzSW5H
cm93YWJsZU9yRmFzdE1lbW9yeSh2b2lkKik7CiAKICAgICB2b2lkKiBtZW1vcnkoKSBjb25zdCB7
IHJldHVybiBtX2hhbmRsZS0+bWVtb3J5KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwCmluZGV4IDI2NTJkZTcyZWQ1Ni4u
NjBmYWQ2M2VmMGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
TWVtb3J5SW5mb3JtYXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21NZW1vcnlJbmZvcm1hdGlvbi5jcHAKQEAgLTQxLDggKzQxLDE1IEBAIGNvbnN0IFBpbm5lZFJl
Z2lzdGVySW5mbyYgUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKQogICAgICAgICB1bnNpZ25lZCBu
dW1iZXJPZlBpbm5lZFJlZ2lzdGVycyA9IDI7CiAgICAgICAgIGlmICghQ29udGV4dDo6dXNlRmFz
dFRMUygpKQogICAgICAgICAgICAgKytudW1iZXJPZlBpbm5lZFJlZ2lzdGVyczsKKyNpZiBDUFUo
WDg2XzY0KSB8fCBDUFUoQVJNNjQpCiAgICAgICAgIEdQUlJlZyBiYXNlTWVtb3J5UG9pbnRlciA9
IEdQUkluZm86OnJlZ0NTMzsKICAgICAgICAgR1BSUmVnIGJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lz
dGVyID0gR1BSSW5mbzo6cmVnQ1M0OworI2VsaWYgQ1BVKEFSTSkKKyAgICAgICAgLy8gTm90IGVu
b3VnaCByZWdpc3RlcnMuIHJlZ0NTMCBpcyB0aGUgd2FzbSBpbnN0YW5jZSwgcmVnQ1MxIGlzIExM
SW50IFBCCisgICAgICAgIG51bWJlck9mUGlubmVkUmVnaXN0ZXJzIC09IDI7CisgICAgICAgIEdQ
UlJlZyBiYXNlTWVtb3J5UG9pbnRlciA9IEludmFsaWRHUFJSZWc7CisgICAgICAgIEdQUlJlZyBi
b3VuZHNDaGVja2luZ1NpemVSZWdpc3RlciA9IEludmFsaWRHUFJSZWc7CisjZW5kaWYKICAgICAg
ICAgR1BSUmVnIHdhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyID0gSW52YWxpZEdQUlJlZzsKICAg
ICAgICAgaWYgKCFDb250ZXh0Ojp1c2VGYXN0VExTKCkpCiAgICAgICAgICAgICB3YXNtQ29udGV4
dEluc3RhbmNlUG9pbnRlciA9IEdQUkluZm86OnJlZ0NTMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmgKaW5kZXggODU0ZmJhNTRlMzM3
Li4yOWZjYmRiNmQ0NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21NZW1vcnlJbmZvcm1hdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21NZW1vcnlJbmZvcm1hdGlvbi5oCkBAIC01MiwxMCArNTIsMTEgQEAgcHVibGljOgogICAgIFJl
Z2lzdGVyU2V0IHRvU2F2ZShNZW1vcnlNb2RlIG1vZGUpIGNvbnN0CiAgICAgewogICAgICAgICBS
ZWdpc3RlclNldCByZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC5zZXQoYmFzZU1lbW9yeVBvaW50ZXIp
OworICAgICAgICBpZiAoYmFzZU1lbW9yeVBvaW50ZXIgIT0gSW52YWxpZEdQUlJlZykKKyAgICAg
ICAgICAgIHJlc3VsdC5zZXQoYmFzZU1lbW9yeVBvaW50ZXIpOwogICAgICAgICBpZiAod2FzbUNv
bnRleHRJbnN0YW5jZVBvaW50ZXIgIT0gSW52YWxpZEdQUlJlZykKICAgICAgICAgICAgIHJlc3Vs
dC5zZXQod2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXIpOwotICAgICAgICBpZiAobW9kZSAhPSBN
ZW1vcnlNb2RlOjpTaWduYWxpbmcpCisgICAgICAgIGlmIChtb2RlID09IE1lbW9yeU1vZGU6OkJv
dW5kc0NoZWNraW5nICYmIGJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyICE9IEludmFsaWRHUFJS
ZWcpCiAgICAgICAgICAgICByZXN1bHQuc2V0KGJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyKTsK
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtTWVtb3J5TW9kZS5jcHAKaW5kZXggOWJlMDRkNzdiMDZiLi5mMzNiMDUyNTE5ODMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5jcHAKQEAg
LTM3LDcgKzM3LDkgQEAgY29uc3QgY2hhciogbWFrZVN0cmluZyhNZW1vcnlNb2RlIG1vZGUpCiB7
CiAgICAgc3dpdGNoIChtb2RlKSB7CiAgICAgY2FzZSBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2lu
ZzogcmV0dXJuICJCb3VuZHNDaGVja2luZyI7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05B
TElOR19NRU1PUlkpCiAgICAgY2FzZSBNZW1vcnlNb2RlOjpTaWduYWxpbmc6IHJldHVybiAiU2ln
bmFsaW5nIjsKKyNlbmRpZgogICAgIH0KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIHJldHVybiAiIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21NZW1vcnlNb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5
TW9kZS5oCmluZGV4IDAyY2ZjZmU0OWY0Ny4uZDcxMWFmYWYzMDMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmgKQEAgLTM0LDcgKzM0LDkgQEAgbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIC8vIEZJWE1FOiBXZSBzaG91bGQgc3VwcG9ydCBv
dGhlciBtb2Rlcy4gc2VlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTYyNjkzCiBlbnVtIGNsYXNzIE1lbW9yeU1vZGUgOiB1aW50OF90IHsKICAgICBCb3VuZHNDaGVj
a2luZywKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBTaWdu
YWxpbmcKKyNlbmRpZgogfTsKIAogc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgTnVtYmVyT2ZNZW1v
cnlNb2RlcyA9IDI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
T3Bjb2RlT3JpZ2luLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVP
cmlnaW4uY3BwCmluZGV4IGI2YzVjMjc1NTMxMS4uOWZjOTFiOWQ5YzU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcApAQCAtMjYsNyArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldhc21PcGNvZGVPcmlnaW4uaCIK
IAotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQp
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKQEAgLTM3LDQgKzM3LDQgQEAg
dm9pZCBPcGNvZGVPcmlnaW46OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIAogfSB9IC8v
IG5hbWVzcGFjZSBKU0M6Oldhc20KIAotI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmgKaW5kZXggYTBkOGRmM2FlZjE5Li41YzRiNjc2ZDVj
NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmln
aW4uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmgK
QEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoV0VCQVNTRU1C
TFkpCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQogCiAjaW5jbHVkZSAiQjNPcmlnaW4u
aCIKICNpbmNsdWRlICJXYXNtRm9ybWF0LmgiCkBAIC02MCw0ICs2MCw0IEBAIHByaXZhdGU6CiAK
IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCiAKLSNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1C
TFkpCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCmluZGV4IDEwODA0NDlkYTYzOC4uM2Zj
ODcxZGJiNzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bl
cmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlv
bnMuY3BwCkBAIC00NjgsNDMgKzQ2OCw0MyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uV2FzbVVud2luZCwgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lKSkKICAgICBBU1NF
UlQoISF2bS5jYWxsRnJhbWVGb3JDYXRjaCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Db252ZXJ0VG9JNjQsIGludDY0X3QsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
SlNWYWx1ZSB2KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9J
NjQsIGludDY0X3QsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUgdikpCiB7
CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBp
bnN0ZWFkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDMyMDYKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAgIE5hdGl2
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgcmV0dXJuIHYudG9C
aWdJbnQ2NChjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKTsKKyAgICByZXR1cm4g
SlNWYWx1ZTo6ZGVjb2RlKHYpLnRvQmlnSW50NjQoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KHZtKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0
VG9GNjQsIGRvdWJsZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0Y2NCwgZG91YmxlLCAoQ2FsbEZy
YW1lKiBjYWxsRnJhbWUsIEVuY29kZWRKU1ZhbHVlIHYpKQogewogICAgIC8vIEZJWE1FOiBDb25z
aWRlciBwYXNzaW5nIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGVhZC4KICAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjA2CiAgICAgVk0mIHZtID0g
Y2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIHJldHVybiB2LnRvTnVtYmVyKGNhbGxGcmFtZS0+bGV4
aWNhbEdsb2JhbE9iamVjdCh2bSkpOworICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUodikudG9O
dW1iZXIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSk7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIGludDMyX3QsIChDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db252ZXJ0VG9JMzIsIGludDMyX3QsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRW5jb2Rl
ZEpTVmFsdWUgdikpCiB7CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3Nl
bWJseUluc3RhbmNlKiBpbnN0ZWFkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDMyMDYKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRW
TSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0g
ICAgcmV0dXJuIHYudG9JbnQzMihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKHYpLnRvSW50MzIoY2FsbEZyYW1lLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KHZtKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db252ZXJ0VG9GMzIsIGZsb2F0LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdikp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjMyLCBmbG9hdCwg
KENhbGxGcmFtZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSB2KSkKIHsKICAgICAvLyBGSVhN
RTogQ29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RlYWQuCiAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIwNgogICAgIFZN
JiB2bSA9IGNhbGxGcmFtZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+
KHYudG9OdW1iZXIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSkpOworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxmbG9hdD4oSlNWYWx1ZTo6ZGVjb2RlKHYpLnRvTnVtYmVyKGNhbGxG
cmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBpbnQ2NF90IHZhbHVlKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRKU1Zh
bHVlLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwgRW5jb2RlZFdh
c21WYWx1ZSB2YWx1ZSkpCiB7CiAgICAgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBqc0luc3RhbmNl
ID0gaW5zdGFuY2UtPm93bmVyPEpTV2ViQXNzZW1ibHlJbnN0YW5jZT4oKTsKICAgICBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNJbnN0YW5jZS0+Z2xvYmFsT2JqZWN0KCk7CkBAIC01
MTQsNyArNTE0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRU
b0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqIGMKIH0KIAogLy8gaHR0cHM6Ly93
ZWJhc3NlbWJseS5naXRodWIuaW8vbXVsdGktdmFsdWUvanMtYXBpL2luZGV4Lmh0bWwjcnVuLWEt
aG9zdC1mdW5jdGlvbgotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVS
ZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwg
Y29uc3QgU2lnbmF0dXJlKiBzaWduYXR1cmUsIEpTVmFsdWUgcmVzdWx0LCB1aW50NjRfdCogcmVn
aXN0ZXJSZXN1bHRzLCB1aW50NjRfdCogY2FsbGVlRnJhbWVQb2ludGVyKSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSog
Y2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2UsIGNvbnN0IFNpZ25hdHVyZSogc2lnbmF0dXJl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNSZXN1bHQsIHVpbnQ2NF90KiByZWdpc3RlclJlc3VsdHMsIHVp
bnQ2NF90KiBjYWxsZWVGcmFtZVBvaW50ZXIpKQogewogICAgIC8vIEZJWE1FOiBDb25zaWRlciBw
YXNzaW5nIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGVhZC4KICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjA2CkBAIC01MjksNiArNTI5LDcgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAo
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIEkKIAogICAgIHVuc2lnbmVkIGl0ZXJhdGlvbkNvdW50ID0g
MDsKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBidWZmZXI7CisgICAgSlNWYWx1ZSByZXN1bHQg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jUmVzdWx0KTsKICAgICBmb3JFYWNoSW5JdGVyYWJsZShnbG9i
YWxPYmplY3QsIHJlc3VsdCwgWyZdIChWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSB2YWx1
ZSkgLT4gdm9pZCB7CiAgICAgICAgIGlmIChidWZmZXIuc2l6ZSgpIDwgc2lnbmF0dXJlLT5yZXR1
cm5Db3VudCgpKQogICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCh2YWx1ZSk7CkBAIC01NzgsOCAr
NTc5LDEwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0
cywgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJCiAgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHZvaWQoKSk7CiAKICAgICAgICAgYXV0byByZXAgPSB3YXNtQ2FsbEluZm8u
cmVzdWx0c1tpbmRleF07Ci0gICAgICAgIGlmIChyZXAuaXNSZWcoKSkKLSAgICAgICAgICAgIHJl
Z2lzdGVyUmVzdWx0c1tyZWdpc3RlclJlc3VsdE9mZnNldHMuZmluZChyZXAucmVnKCkpLT5vZmZz
ZXQoKSAvIHNpemVvZih1aW50NjRfdCldID0gdW5ib3hlZFZhbHVlOworICAgICAgICBpZiAocmVw
LmlzR1BSKCkpCisgICAgICAgICAgICByZWdpc3RlclJlc3VsdHNbcmVnaXN0ZXJSZXN1bHRPZmZz
ZXRzLmZpbmQocmVwLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpIC8gc2l6ZW9mKHVpbnQ2
NF90KV0gPSB1bmJveGVkVmFsdWU7CisgICAgICAgIGVsc2UgaWYgKHJlcC5pc0ZQUigpKQorICAg
ICAgICAgICAgcmVnaXN0ZXJSZXN1bHRzW3JlZ2lzdGVyUmVzdWx0T2Zmc2V0cy5maW5kKHJlcC5m
cHIoKSktPm9mZnNldCgpIC8gc2l6ZW9mKHVpbnQ2NF90KV0gPSB1bmJveGVkVmFsdWU7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIGNhbGxlZUZyYW1lUG9pbnRlcltyZXAub2Zmc2V0RnJvbUZQ
KCkgLyBzaXplb2YodWludDY0X3QpXSA9IHVuYm94ZWRWYWx1ZTsKICAgICB9CkBAIC02MDQsMTIg
KzYwNywxNiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVSZXN1
bHRzQXJyYXksIEpTQXJyYXkqLCAoQ2FsbEZyYW1lKiBjYQogICAgIGF1dG8gd2FzbUNhbGxJbmZv
ID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkuY2FsbEluZm9ybWF0aW9uRm9yKCpzaWduYXR1cmUp
OwogICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IHJlZ2lzdGVyUmVzdWx0cyA9IHdhc21DYWxsSW5m
by5jb21wdXRlUmVzdWx0c09mZnNldExpc3QoKTsKIAotICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9m
KEpTVmFsdWUpID09IHNpemVvZihDUFVSZWdpc3RlciksICJUaGUgY29kZSBiZWxvdyByZWxpZXMg
b24gdGhpcy4iKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2lnbmF0dXJlLT5yZXR1
cm5Db3VudCgpOyArK2kpIHsKICAgICAgICAgVmFsdWVMb2NhdGlvbiBsb2MgPSB3YXNtQ2FsbElu
Zm8ucmVzdWx0c1tpXTsKICAgICAgICAgSlNWYWx1ZSB2YWx1ZTsKLSAgICAgICAgaWYgKGxvYy5p
c1JlZygpKQotICAgICAgICAgICAgdmFsdWUgPSBzdGFja1BvaW50ZXJGcm9tQ2FsbGVlWyhyZWdp
c3RlclJlc3VsdHMuZmluZChsb2MucmVnKCkpLT5vZmZzZXQoKSArIHdhc21DYWxsSW5mby5oZWFk
ZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpIC8gc2l6ZW9mKEpTVmFsdWUpXTsKKyAgICAg
ICAgaWYgKGxvYy5pc0dQUigpKSB7CisjaWYgVVNFKEpTVkFMRTMyXzY0KQorICAgICAgICAgICAg
QVNTRVJUKHJlZ2lzdGVyUmVzdWx0cy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZz
ZXQoKSArIDQgPT0gcmVnaXN0ZXJSZXN1bHRzLmZpbmQobG9jLmpzcigpLnRhZ0dQUigpKS0+b2Zm
c2V0KCkpOworI2VuZGlmCisgICAgICAgICAgICB2YWx1ZSA9IHN0YWNrUG9pbnRlckZyb21DYWxs
ZWVbKHJlZ2lzdGVyUmVzdWx0cy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQo
KSArIHdhc21DYWxsSW5mby5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpIC8gc2l6
ZW9mKEpTVmFsdWUpXTsKKyAgICAgICAgfSBlbHNlIGlmIChsb2MuaXNGUFIoKSkKKyAgICAgICAg
ICAgIHZhbHVlID0gc3RhY2tQb2ludGVyRnJvbUNhbGxlZVsocmVnaXN0ZXJSZXN1bHRzLmZpbmQo
bG9jLmZwcigpKS0+b2Zmc2V0KCkgKyB3YXNtQ2FsbEluZm8uaGVhZGVyQW5kQXJndW1lbnRTdGFj
a1NpemVJbkJ5dGVzKSAvIHNpemVvZihKU1ZhbHVlKV07CiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIHZhbHVlID0gc3RhY2tQb2ludGVyRnJvbUNhbGxlZVtsb2Mub2Zmc2V0RnJvbVNQKCkgLyBz
aXplb2YoSlNWYWx1ZSldOwogICAgICAgICByZXN1bHQtPmluaXRpYWxpemVJbmRleChpbml0aWFs
aXphdGlvblNjb3BlLCBpLCB2YWx1ZSk7CkBAIC05NDQsNyArOTUxLDggQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UaHJvdywgdm9pZCosIChJbnN0YW5jZSogaW5zdGFu
Y2UsIENhbGxGcmEKICAgICAvLyB0byB0aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElmIHdlIGRpZCB0
aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNrLgogICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAKICAgICB2bS5jYWxsZWVGb3JX
YXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgpOwotICAgIGJpdHdpc2VfY2FzdDx1aW50NjRf
dCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXSA9
IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOworICAgIFJlZ2lz
dGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJlZ2lzdGVyKj4oY2FsbEZyYW1lKSArIHN0
YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAgICAqY2FsbGVlU2xvdCA9
IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CiAgICAgcmV0dXJu
IHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRocm93OwogfQogCkBAIC05NzAsNyArOTc4LDggQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZXRocm93LCB2b2lkKiwgKEluc3Rh
bmNlKiBpbnN0YW5jZSwgQ2FsbEYKICAgICAvLyB0byB0aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElm
IHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNrLgogICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAKICAgICB2bS5j
YWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgpOwotICAgIGJpdHdpc2VfY2Fz
dDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90Ojpj
YWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOwor
ICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJlZ2lzdGVyKj4oY2FsbEZy
YW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAgICAqY2Fs
bGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CiAg
ICAgcmV0dXJuIHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRocm93OwogfQogCkBAIC0xMDA1LDcgKzEw
MTQsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRvSlNFeGNlcHRp
b24sIHZvaWQqLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbQogICAgIC8vIHRvIHRoZSBleGNlcHRpb24g
aGFuZGxlci4gSWYgd2UgZGlkIHRoaXMsIHdlIGNvdWxkIHJlbW92ZSB0aGlzIHRlcnJpYmxlIGhh
Y2suCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDQ0
MAogICAgIHZtLmNhbGxlZUZvcldhc21DYXRjaCA9IGNhbGxGcmFtZS0+Y2FsbGVlKCk7Ci0gICAg
Yml0d2lzZV9jYXN0PHVpbnQ2NF90Kj4oY2FsbEZyYW1lKVtzdGF0aWNfY2FzdDxpbnQ+KENhbGxG
cmFtZVNsb3Q6OmNhbGxlZSldID0gYml0d2lzZV9jYXN0PHVpbnQ2NF90PihpbnN0YW5jZS0+bW9k
dWxlKCkpOworICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJlZ2lzdGVy
Kj4oY2FsbEZyYW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsK
KyAgICAqY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihpbnN0YW5jZS0+bW9kdWxl
KCkpOwogICAgIHJldHVybiB2bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKIH0KIApAQCAtMTAy
OSw3ICsxMDM5LDExIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtUmV0
cmlldmVBbmRDbGVhckV4Y2VwdGlvbklmQ2F0Y2hhYmxlLCBQb2luCiAgICAgdm9pZCogcGF5bG9h
ZCA9IG51bGxwdHI7CiAgICAgaWYgKEpTV2ViQXNzZW1ibHlFeGNlcHRpb24qIHdhc21FeGNlcHRp
b24gPSBqc0R5bmFtaWNDYXN0PEpTV2ViQXNzZW1ibHlFeGNlcHRpb24qPih2bSwgdGhyb3duVmFs
dWUpKQogICAgICAgICBwYXlsb2FkID0gYml0d2lzZV9jYXN0PHZvaWQqPih3YXNtRXhjZXB0aW9u
LT5wYXlsb2FkKCkuZGF0YSgpKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgIHJldHVybiBQb2lu
dGVyUGFpciB7IGJpdHdpc2VfY2FzdDx2b2lkKj4oSlNWYWx1ZTo6ZW5jb2RlKHRocm93blZhbHVl
KSksIHBheWxvYWQgfTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgcmV0dXJuIFBvaW50
ZXJQYWlyIHsgYml0d2lzZV9jYXN0PHZvaWQqPih0aHJvd25WYWx1ZS5wYXlsb2FkKCkpLCBwYXls
b2FkIH07CisjZW5kaWYKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oCmluZGV4IGNmN2MwZDVmZWY0ZC4u
YjMyMDAwZDgzMmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
T3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRp
b25zLmgKQEAgLTQ2LDIzICs0NiwyMyBAQCBuYW1lc3BhY2UgV2FzbSB7CiAKIGNsYXNzIEluc3Rh
bmNlOwogY2xhc3MgU2lnbmF0dXJlOwotCi12b2lkIGxvYWRWYWx1ZXNJbnRvQnVmZmVyKFByb2Jl
OjpDb250ZXh0JiwgY29uc3QgU3RhY2tNYXAmLCB1aW50NjRfdCogYnVmZmVyKTsKK3R5cGVkZWYg
aW50NjRfdCBFbmNvZGVkV2FzbVZhbHVlOwogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklU
KQordm9pZCBsb2FkVmFsdWVzSW50b0J1ZmZlcihQcm9iZTo6Q29udGV4dCYsIGNvbnN0IFN0YWNr
TWFwJiwgdWludDY0X3QqIGJ1ZmZlcik7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbldhc21UcmlnZ2VyT1NSRW50cnlOb3csIHZvaWQsIChQcm9iZTo6Q29udGV4dCYpKTsKIEpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJUaWVyVXBOb3csIHZv
aWQsIChJbnN0YW5jZSosIHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgpKTsKICNlbmRpZgogSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVW53aW5kLCB2b2lkLCAoQ2FsbEZyYW1l
KikpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCwg
aW50NjRfdCwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29udmVydFRvRjY0LCBkb3VibGUsIChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7
Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0kzMiwgaW50MzJf
dCwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29udmVydFRvRjMyLCBmbG9hdCwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTY0LCBpbnQ2NF90LCAoQ2Fs
bEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29udmVydFRvRjY0LCBkb3VibGUsIChDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIGludDMy
X3QsIChDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Db252ZXJ0VG9GMzIsIGZsb2F0LCAoQ2FsbEZyYW1lKiwgRW5jb2RlZEpT
VmFsdWUpKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9C
aWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoQ2FsbEZyYW1lKiwgSW5zdGFuY2UqLCBpbnQ2NF90KSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCwgRW5j
b2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqLCBJbnN0YW5jZSosIEVuY29kZWRXYXNtVmFsdWUpKTsK
IAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0cywgdm9p
ZCwgKENhbGxGcmFtZSosIEluc3RhbmNlKiwgY29uc3QgU2lnbmF0dXJlKiwgSlNWYWx1ZSwgdWlu
dDY0X3QqLCB1aW50NjRfdCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
SXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqLCBJbnN0YW5jZSosIGNvbnN0IFNpZ25h
dHVyZSosIEVuY29kZWRKU1ZhbHVlLCB1aW50NjRfdCosIHVpbnQ2NF90KikpOwogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSwgSlNBcnJheSos
IChDYWxsRnJhbWUqLCBXYXNtOjpJbnN0YW5jZSosIGNvbnN0IFNpZ25hdHVyZSosIEluZGV4aW5n
VHlwZSwgSlNWYWx1ZSopKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtV3JpdGVCYXJyaWVyU2xvd1BhdGgsIHZvaWQsIChKU0NlbGwqLCBWTSopKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYWdlQ291bnQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYWdlQ291bnQuaAppbmRleCBiN2Q4YzlmY2Y3MmIuLjNj
NzU1MTJmNDRhOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBh
Z2VDb3VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYWdlQ291bnQu
aApAQCAtOTgsNyArOTgsMTIgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50
MzJfdCBwYWdlU2l6ZSA9IDY0ICogS0I7CiBwcml2YXRlOgotICAgIHN0YXRpYyBjb25zdGV4cHIg
dWludDMyX3QgbWF4UGFnZUNvdW50ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE1BWF9BUlJBWV9C
VUZGRVJfU0laRSAvIHN0YXRpY19jYXN0PHVpbnQ2NF90PihwYWdlU2l6ZSkpOworICAgIC8vIFRo
ZSBzcGVjIHJlcXVpcmVzIHdlIGFyZSBhYmxlIHRvIGluc3RhbnRpYXRlIGEgbWVtb3J5IHdpdGgg
YSAqbWF4aW11bSogc2l6ZSBvZiA2NEsgcGFnZXMuCisgICAgLy8gVGhpcyBkb2VzIG5vdCBtZWFu
IHRoZSBtZW1vcnkgY2FuIG5lY2Vzc2FyaWx5IGdyb3cgdGhhdCBiaWcsIGFuZCB3aGVyZSB0aGUK
KyAgICAvLyBNQVhfQVJSQVlfQlVGRkVSX1NJWkUgaXMgc21hbGxlciAoZS5nLjogb24gMzItYml0
IHBsYXRmb3JtcyksIHRyeWluZyB0byBncm93IHRoZSBtZW1vcnkKKyAgICAvLyB0aGF0IGxhcmdl
IHdpbGwgZmFpbCwgd2hpY2ggaXMgYWNjZXB0YWJsZSBhY2NvcmRpbmcgdG8gdGhlIHNwZWMuIE5l
dmVydGhlbGVzcywgd2Ugc2hvdWxkCisgICAgLy8gYmUgYWJsZSB0byBwYXJzZSBzdWNoIGEgbWVt
b3J5IGFuZCBpbnN0YW50aWF0ZSBpdCB3aXRoIGEgc21hbGxlciBpbml0aWFsIHNpemUuCisgICAg
c3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXhQYWdlQ291bnQgPSBzdGQ6Om1heDx1aW50MzJf
dD4oNjQqMTAyNCwgTUFYX0FSUkFZX0JVRkZFUl9TSVpFIC8gc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KHBhZ2VTaXplKSk7CiAKICAgICB1aW50MzJfdCBtX3BhZ2VDb3VudDsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmgKaW5kZXggZWQwMGQ5YTBhNDJiLi5kNDQxYmNhZDk0
YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmgKQEAgLTIwOCw3ICsy
MDgsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgUGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VVSW50
MzIodWludDMyX3QmIHJlc3VsdCkKIHsKICAgICBpZiAobGVuZ3RoKCkgPCA0IHx8IG1fb2Zmc2V0
ID4gbGVuZ3RoKCkgLSA0KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmVzdWx0ID0gKnJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDMyX3QqPihzb3VyY2UoKSArIG1fb2Zmc2V0KTsKKyAg
ICBtZW1jcHkoJnJlc3VsdCwgc291cmNlKCkgKyBtX29mZnNldCwgc2l6ZW9mKHVpbnQzMl90KSk7
IC8vIHNyYyBjYW4gYmUgdW5hbGlnbmVkCiAgICAgbV9vZmZzZXQgKz0gNDsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KQEAgLTIxOCw3ICsyMTgsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgUGFyc2VyPFN1
Y2Nlc3NUeXBlPjo6cGFyc2VVSW50NjQodWludDY0X3QmIHJlc3VsdCkKIHsKICAgICBpZiAobGVu
Z3RoKCkgPCA4IHx8IG1fb2Zmc2V0ID4gbGVuZ3RoKCkgLSA4KQogICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgcmVzdWx0ID0gKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDY0X3QqPihzb3Vy
Y2UoKSArIG1fb2Zmc2V0KTsKKyAgICBtZW1jcHkoJnJlc3VsdCwgc291cmNlKCkgKyBtX29mZnNl
dCwgc2l6ZW9mKHVpbnQ2NF90KSk7IC8vIHNyYyBjYW4gYmUgdW5hbGlnbmVkCiAgICAgbV9vZmZz
ZXQgKz0gODsKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbVNsb3dQYXRocy5jcHAKaW5kZXggMmE4NjdkNmM3M2ZkLi5hYjVhOTk3NTFkMzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3BwCkBAIC02NDIs
NyArNjQyLDggQEAgV0FTTV9TTE9XX1BBVEhfREVDTCh0aHJvdykKICAgICAvLyB0byB0aGUgZXhj
ZXB0aW9uIGhhbmRsZXIuIElmIHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJy
aWJsZSBoYWNrLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzA0NDAKICAgICB2bS5jYWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgp
OwotICAgIGJpdHdpc2VfY2FzdDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50
PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oanNJbnN0
YW5jZS0+bW9kdWxlKCkpOworICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0
PFJlZ2lzdGVyKj4oY2FsbEZyYW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6
Y2FsbGVlKTsKKyAgICAqY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihqc0luc3Rh
bmNlLT5tb2R1bGUoKSk7CiAgICAgV0FTTV9SRVRVUk5fVFdPKHZtLnRhcmdldE1hY2hpbmVQQ0Zv
clRocm93LCBudWxscHRyKTsKIH0KIApAQCAtNjcwLDcgKzY3MSw4IEBAIFdBU01fU0xPV19QQVRI
X0RFQ0wocmV0aHJvdykKICAgICAvLyB0byB0aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElmIHdlIGRp
ZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNrLgogICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAKICAgICB2bS5jYWxsZWVG
b3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgpOwotICAgIGJpdHdpc2VfY2FzdDx1aW50
NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUp
XSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOworICAgIFJl
Z2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJlZ2lzdGVyKj4oY2FsbEZyYW1lKSAr
IHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAgICAqY2FsbGVlU2xv
dCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CiAgICAgV0FT
TV9SRVRVUk5fVFdPKHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRocm93LCBudWxscHRyKTsKIH0KIApA
QCAtNzE3LDYgKzcxOSwyMTQgQEAgV0FTTV9TTE9XX1BBVEhfREVDTChyZXRyaWV2ZV9hbmRfY2xl
YXJfZXhjZXB0aW9uKQogICAgIFdBU01fUkVUVVJOX1RXTyhwYywgcGF5bG9hZCk7CiB9CiAKKyNp
ZiBVU0UoSlNWQUxVRTMyXzY0KQorV0FTTV9TTE9XX1BBVEhfREVDTChmMzJfY2VpbCkKK3sKKyAg
ICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8
V2FzbUYzMkNlaWw+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9v
cGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUo
anNVbmJveGVkRmxvYXQoc3RkOjpjZWlsKG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFU
SF9ERUNMKGYzMl9mbG9vcikKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1
dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUYzMkZsb29yPigpOworICAgIGZsb2F0IG9wZXJh
bmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgV0FT
TV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpzVW5ib3hlZEZsb2F0KHN0ZDo6Zmxvb3Iob3BlcmFu
ZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjMyX3RydW5jKQoreworICAgIFVOVVNF
RF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjMy
VHJ1bmM+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5k
KS51bmJveGVkRmxvYXQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUoanNVbmJv
eGVkRmxvYXQoc3RkOjp0cnVuYyhvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVD
TChmMzJfbmVhcmVzdCkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8
ZmxvYXQ+Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOworICAgIFVOVVNF
RF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjMy
TmVhcmVzdD4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJh
bmQpLnVuYm94ZWRGbG9hdCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc1Vu
Ym94ZWRGbG9hdChzdGQ6Om5lYXJieWludChvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BB
VEhfREVDTChmNjRfY2VpbCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1
dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NENlaWw+KCk7CisgICAgZG91YmxlIG9wZXJh
bmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgpOworICAgIFdB
U01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGQ6OmNlaWwob3BlcmFu
ZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjY0X2Zsb29yKQoreworICAgIFVOVVNF
RF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjY0
Rmxvb3I+KCk7CisgICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFu
ZCkudW5ib3hlZERvdWJsZSgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0Rv
dWJsZU51bWJlcihzdGQ6OmZsb29yKG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9E
RUNMKGY2NF90cnVuYykKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8g
aW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NFRydW5jPigpOworICAgIGRvdWJsZSBvcGVyYW5k
ID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUoKTsKKyAgICBXQVNN
X1JFVFVSTihKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoc3RkOjp0cnVuYyhvcGVyYW5k
KSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmNjRfbmVhcmVzdCkKK3sKKyAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6
OnJvdW5kX3RvX25lYXJlc3QpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0
byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjY0TmVhcmVzdD4oKTsKKyAgICBkb3VibGUgb3Bl
cmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAg
V0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHN0ZDo6bmVhcmJ5aW50
KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGYzMl9jb252ZXJ0X3VfaTY0
KQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnJvdW5k
X3N0eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7CisgICAgVU5VU0VEX1BBUkFNKGluc3Rh
bmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GMzJDb252ZXJ0VUk2ND4o
KTsKKyAgICB1aW50NjRfdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVu
Ym94ZWRJbnQ2NCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc1VuYm94ZWRG
bG9hdChzdGF0aWNfY2FzdDxmbG9hdD4ob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRI
X0RFQ0woZjMyX2NvbnZlcnRfc19pNjQpCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVy
aWNfbGltaXRzPGZsb2F0Pjo6cm91bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90b19uZWFyZXN0KTsK
KyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+
YXM8V2FzbUYzMkNvbnZlcnRTSTY0PigpOworICAgIGludDY0X3Qgb3BlcmFuZCA9IFJFQUQoaW5z
dHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkSW50NjQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1Zh
bHVlOjplbmNvZGUoanNVbmJveGVkRmxvYXQoc3RhdGljX2Nhc3Q8ZmxvYXQ+KG9wZXJhbmQpKSkp
OworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGY2NF9jb252ZXJ0X3VfaTY0KQoreworICAgIHN0
YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnJvdW5kX3N0eWxlID09IHN0
ZDo6cm91bmRfdG9fbmVhcmVzdCk7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBh
dXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GNjRDb252ZXJ0VUk2ND4oKTsKKyAgICB1aW50
NjRfdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRJbnQ2NCgp
OworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGF0aWNf
Y2FzdDxkb3VibGU+KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGY2NF9j
b252ZXJ0X3NfaTY0KQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxm
bG9hdD46OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7CisgICAgVU5VU0VE
X1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GNjRD
b252ZXJ0U0k2ND4oKTsKKyAgICBpbnQ2NF90IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1f
b3BlcmFuZCkudW5ib3hlZEludDY0KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2Rl
KGpzRG91YmxlTnVtYmVyKHN0YXRpY19jYXN0PGRvdWJsZT4ob3BlcmFuZCkpKSk7Cit9CisKK1dB
U01fU0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3VfZjMyKQoreworICAgIFVOVVNFRF9QQVJBTShp
bnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1bmNVRjMy
PigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5i
b3hlZEZsb2F0KCk7CisgICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8PSAt
MS4wZiB8fCBvcGVyYW5kID49IC0yLjBmICogc3RhdGljX2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikp
CisgICAgICAgIFdBU01fVEhST1coV2FzbTo6RXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNUcnVu
Yyk7CisgICAgV0FTTV9SRVRVUk4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG9wZXJhbmQpKTsKK30K
KworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc19mMzIpCit7CisgICAgVU5VU0VEX1BB
UkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVu
Y1NGMzI+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5k
KS51bmJveGVkRmxvYXQoKTsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5kKSB8fCBvcGVyYW5k
IDwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikgfHwgb3BlcmFuZCA+PSAtc3RhdGljX2Nh
c3Q8ZmxvYXQ+KElOVDY0X01JTikpCisgICAgICAgIFdBU01fVEhST1coV2FzbTo6RXhjZXB0aW9u
VHlwZTo6T3V0T2ZCb3VuZHNUcnVuYyk7CisgICAgV0FTTV9SRVRVUk4oc3RhdGljX2Nhc3Q8aW50
NjRfdD4ob3BlcmFuZCkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY191X2Y2
NCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24g
PSBwYy0+YXM8V2FzbUk2NFRydW5jVUY2ND4oKTsKKyAgICBkb3VibGUgb3BlcmFuZCA9IFJFQUQo
aW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAgaWYgKHN0ZDo6aXNu
YW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8PSAtMS4wIHx8IG9wZXJhbmQgPj0gLTIuMCAqIHN0YXRp
Y19jYXN0PGRvdWJsZT4oSU5UNjRfTUlOKSkKKyAgICAgICAgV0FTTV9USFJPVyhXYXNtOjpFeGNl
cHRpb25UeXBlOjpPdXRPZkJvdW5kc1RydW5jKTsKKyAgICBXQVNNX1JFVFVSTihzdGF0aWNfY2Fz
dDx1aW50NjRfdD4ob3BlcmFuZCkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVu
Y19zX2Y2NCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1
Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jU0Y2ND4oKTsKKyAgICBkb3VibGUgb3BlcmFuZCA9
IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAgaWYgKHN0
ZDo6aXNuYW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8IHN0YXRpY19jYXN0PGRvdWJsZT4oSU5UNjRf
TUlOKSB8fCBvcGVyYW5kID49IC1zdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0X01JTikpCisgICAg
ICAgIFdBU01fVEhST1coV2FzbTo6RXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNUcnVuYyk7Cisg
ICAgV0FTTV9SRVRVUk4oc3RhdGljX2Nhc3Q8aW50NjRfdD4ob3BlcmFuZCkpOworfQorCitXQVNN
X1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY19zYXRfZjMyX3UpCit7CisgICAgVU5VU0VEX1BBUkFN
KGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1Nh
dEYzMlU+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5k
KS51bmJveGVkRmxvYXQoKTsKKyAgICB1aW50NjRfdCByZXN1bHQ7CisgICAgaWYgKHN0ZDo6aXNu
YW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8PSAtMS4wZikKKyAgICAgICAgcmVzdWx0ID0gMDsKKyAg
ICBlbHNlIGlmIChvcGVyYW5kID49IC0yLjBmICogc3RhdGljX2Nhc3Q8ZmxvYXQ+KElOVDY0X01J
TikpCisgICAgICAgIHJlc3VsdCA9IFVJTlQ2NF9NQVg7CisgICAgZWxzZQorICAgICAgICByZXN1
bHQgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4ob3BlcmFuZCk7CisgICAgV0FTTV9SRVRVUk4ocmVz
dWx0KTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc2F0X2YzMl9zKQorewor
ICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5h
czxXYXNtSTY0VHJ1bmNTYXRGMzJTPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3Ry
dWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgaW50NjRfdCByZXN1bHQ7Cisg
ICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkpCisgICAgICAgIHJlc3VsdCA9IDA7CisgICAgZWxz
ZSBpZiAob3BlcmFuZCA8IHN0YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4pKQorICAgICAgICBy
ZXN1bHQgPSBJTlQ2NF9NSU47CisgICAgZWxzZSBpZiAob3BlcmFuZCA+PSAtc3RhdGljX2Nhc3Q8
ZmxvYXQ+KElOVDY0X01JTikpCisgICAgICAgIHJlc3VsdCA9IElOVDY0X01BWDsKKyAgICBlbHNl
CisgICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PGludDY0X3Q+KG9wZXJhbmQpOworICAgIFdB
U01fUkVUVVJOKHJlc3VsdCk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3Nh
dF9mNjRfdSkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1
Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jU2F0RjY0VT4oKTsKKyAgICBkb3VibGUgb3BlcmFu
ZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAgdWlu
dDY0X3QgcmVzdWx0OworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9wZXJhbmQgPD0g
LTEuMCkKKyAgICAgICAgcmVzdWx0ID0gMDsKKyAgICBlbHNlIGlmIChvcGVyYW5kID49IC0yLjAg
KiBzdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0X01JTikpCisgICAgICAgIHJlc3VsdCA9IFVJTlQ2
NF9NQVg7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4o
b3BlcmFuZCk7CisgICAgV0FTTV9SRVRVUk4ocmVzdWx0KTsKK30KKworV0FTTV9TTE9XX1BBVEhf
REVDTChpNjRfdHJ1bmNfc2F0X2Y2NF9zKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7
CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1bmNTYXRGNjRTPigpOwor
ICAgIGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRE
b3VibGUoKTsKKyAgICBpbnQ2NF90IHJlc3VsdDsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5k
KSkKKyAgICAgICAgcmVzdWx0ID0gMDsKKyAgICBlbHNlIGlmIChvcGVyYW5kIDwgc3RhdGljX2Nh
c3Q8ZG91YmxlPihJTlQ2NF9NSU4pKQorICAgICAgICByZXN1bHQgPSBJTlQ2NF9NSU47CisgICAg
ZWxzZSBpZiAob3BlcmFuZCA+PSAtc3RhdGljX2Nhc3Q8ZG91YmxlPihJTlQ2NF9NSU4pKQorICAg
ICAgICByZXN1bHQgPSBJTlQ2NF9NQVg7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBzdGF0
aWNfY2FzdDxpbnQ2NF90PihvcGVyYW5kKTsKKyAgICBXQVNNX1JFVFVSTihyZXN1bHQpOworfQor
I2VuZGlmCisKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3Ro
cm93X2V4Y2VwdGlvbihDYWxsRnJhbWUqIGNhbGxGcmFtZSwgY29uc3QgV2FzbUluc3RydWN0aW9u
KiBwYywgV2FzbTo6SW5zdGFuY2UqIGluc3RhbmNlLCBXYXNtOjpFeGNlcHRpb25UeXBlIGV4Y2Vw
dGlvblR5cGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHBjKTsKQEAgLTcyNSwxNiArOTM1LDI4IEBA
IGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3Rocm93X2V4Y2Vw
dGlvbihDYWxsRnJhbWUqIGNhbGxGcmFtCiAKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBl
IHNsb3dfcGF0aF93YXNtX3BvcGNvdW50KGNvbnN0IFdhc21JbnN0cnVjdGlvbiogcGMsIHVpbnQz
Ml90IHgpCiB7Ci0gICAgdm9pZCogcmVzdWx0ID0gYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNf
Y2FzdDx1aW50NjRfdD4oX19idWlsdGluX3BvcGNvdW50KHgpKSk7CisgICAgdm9pZCogcmVzdWx0
ID0gYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDxzaXplX3Q+KF9fYnVpbHRpbl9wb3Bj
b3VudCh4KSkpOwogICAgIFdBU01fUkVUVVJOX1RXTyhwYywgcmVzdWx0KTsKIH0KIAogZXh0ZXJu
ICJDIiBTbG93UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fcG9wY291bnRsbChjb25zdCBX
YXNtSW5zdHJ1Y3Rpb24qIHBjLCB1aW50NjRfdCB4KQogewotICAgIHZvaWQqIHJlc3VsdCA9IGJp
dHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KF9fYnVpbHRpbl9wb3Bjb3Vu
dGxsKHgpKSk7CisgICAgdm9pZCogcmVzdWx0ID0gYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNf
Y2FzdDxzaXplX3Q+KF9fYnVpbHRpbl9wb3Bjb3VudGxsKHgpKSk7CiAgICAgV0FTTV9SRVRVUk5f
VFdPKHBjLCByZXN1bHQpOwogfQogCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKy8vIE5vdGU6IEFs
bCB0aGVzZSBkaXYgYW5kIHJlbSBvcHMgcGVyZm9ybSBleGNlcHRpb24gY2hlY2tzIGluIGFzbQor
ZXh0ZXJuICJDIiBpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9kaXZfcyhpbnQzMl90IGEsIGlu
dDMyX3QgYikgeyByZXR1cm4gYSAvIGI7IH0KK2V4dGVybiAiQyIgdWludDMyX3Qgc2xvd19wYXRo
X3dhc21faTMyX2Rpdl91KHVpbnQzMl90IGEsIHVpbnQzMl90IGIpIHsgcmV0dXJuIGEgLyBiOyB9
CitleHRlcm4gIkMiIGludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX3JlbV9zKGludDMyX3QgYSwg
aW50MzJfdCBiKSB7IHJldHVybiBhICUgYjsgfQorZXh0ZXJuICJDIiB1aW50MzJfdCBzbG93X3Bh
dGhfd2FzbV9pMzJfcmVtX3UodWludDMyX3QgYSwgdWludDMyX3QgYikgeyByZXR1cm4gYSAlIGI7
IH0KK2V4dGVybiAiQyIgaW50NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRfZGl2X3MoaW50NjRfdCBh
LCBpbnQ2NF90IGIpIHsgcmV0dXJuIGEgLyBiOyB9CitleHRlcm4gIkMiIHVpbnQ2NF90IHNsb3df
cGF0aF93YXNtX2k2NF9kaXZfdSh1aW50NjRfdCBhLCB1aW50NjRfdCBiKSB7IHJldHVybiBhIC8g
YjsgfQorZXh0ZXJuICJDIiBpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9yZW1fcyhpbnQ2NF90
IGEsIGludDY0X3QgYikgeyByZXR1cm4gYSAlIGI7IH0KK2V4dGVybiAiQyIgdWludDY0X3Qgc2xv
d19wYXRoX3dhc21faTY0X3JlbV91KHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIpIHsgcmV0dXJuIGEg
JSBiOyB9CisjZW5kaWYKKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50CiAKICNlbmRpZiAv
LyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtU2xvd1BhdGhzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xv
d1BhdGhzLmgKaW5kZXggNDYwOWUzNmIwMzkyLi44OWY2ZTM5NGQ4NmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmgKQEAgLTk0LDYgKzk0LDQwIEBAIGV4dGVy
biAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3Rocm93X2V4Y2VwdGlvbihD
YWxsRnJhbWUqLCBjb25zdCBXCiBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBzbG93X3Bh
dGhfd2FzbV9wb3Bjb3VudChjb25zdCBXYXNtSW5zdHJ1Y3Rpb24qIHBjLCB1aW50MzJfdCkgUkVG
RVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CiBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJu
VHlwZSBzbG93X3BhdGhfd2FzbV9wb3Bjb3VudGxsKGNvbnN0IFdhc21JbnN0cnVjdGlvbiogcGMs
IHVpbnQ2NF90KSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKIAorI2lmIFVTRShK
U1ZBTFVFMzJfNjQpCitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmMzJfY2VpbCk7CitXQVNN
X1NMT1dfUEFUSF9ISURERU5fREVDTChmMzJfZmxvb3IpOworV0FTTV9TTE9XX1BBVEhfSElEREVO
X0RFQ0woZjMyX3RydW5jKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGYzMl9uZWFyZXN0
KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGY2NF9jZWlsKTsKK1dBU01fU0xPV19QQVRI
X0hJRERFTl9ERUNMKGY2NF9mbG9vcik7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRf
dHJ1bmMpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjY0X25lYXJlc3QpOworV0FTTV9T
TE9XX1BBVEhfSElEREVOX0RFQ0woZjMyX2NvbnZlcnRfdV9pNjQpOworV0FTTV9TTE9XX1BBVEhf
SElEREVOX0RFQ0woZjMyX2NvbnZlcnRfc19pNjQpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RF
Q0woZjY0X2NvbnZlcnRfdV9pNjQpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjY0X2Nv
bnZlcnRfc19pNjQpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3VfZjMy
KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGk2NF90cnVuY19zX2YzMik7CitXQVNNX1NM
T1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNfdV9mNjQpOworV0FTTV9TTE9XX1BBVEhfSElE
REVOX0RFQ0woaTY0X3RydW5jX3NfZjY0KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGk2
NF90cnVuY19zYXRfZjMyX3UpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5j
X3NhdF9mMzJfcyk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNfc2F0X2Y2
NF91KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGk2NF90cnVuY19zYXRfZjY0X3MpOwor
I2VuZGlmCisKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorZXh0ZXJuICJDIiBpbnQzMl90IHNsb3df
cGF0aF93YXNtX2kzMl9kaXZfcyhpbnQzMl90IGEsIGludDMyX3QgYikgUkVGRVJFTkNFRF9GUk9N
X0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMiIHVpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kz
Ml9kaXZfdSh1aW50MzJfdCBhLCB1aW50MzJfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9J
TlRFUk5BTDsKK2V4dGVybiAiQyIgaW50MzJfdCBzbG93X3BhdGhfd2FzbV9pMzJfcmVtX3MoaW50
MzJfdCBhLCBpbnQzMl90IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOworZXh0
ZXJuICJDIiB1aW50MzJfdCBzbG93X3BhdGhfd2FzbV9pMzJfcmVtX3UodWludDMyX3QgYSwgdWlu
dDMyX3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMiIGlu
dDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X2Rpdl9zKGludDY0X3QgYSwgaW50NjRfdCBiKSBSRUZF
UkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgdWludDY0X3Qgc2xvd19w
YXRoX3dhc21faTY0X2Rpdl91KHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIpIFJFRkVSRU5DRURfRlJP
TV9BU00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJDIiBpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2
NF9yZW1fcyhpbnQ2NF90IGEsIGludDY0X3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5U
RVJOQUw7CitleHRlcm4gIkMiIHVpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9yZW1fdSh1aW50
NjRfdCBhLCB1aW50NjRfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKKyNl
bmRpZgorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6TExJbnQKIAogI2VuZGlmIC8vIEVOQUJMRShX
RUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21W
YWx1ZUxvY2F0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxv
Y2F0aW9uLmNwcAppbmRleCA1MjIzZjNhYjRlNDAuLjY4Yzc4ODg5MDZkYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmNwcApAQCAtMzUsOCAr
MzUsMTEgQEAgdm9pZCBWYWx1ZUxvY2F0aW9uOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0
CiB7CiAgICAgb3V0LnByaW50KG1fa2luZCk7CiAgICAgc3dpdGNoIChtX2tpbmQpIHsKLSAgICBj
YXNlIFJlZ2lzdGVyOgotICAgICAgICBvdXQucHJpbnQoIigiLCByZWcoKSwgIikiKTsKKyAgICBj
YXNlIEdQUlJlZ2lzdGVyOgorICAgICAgICBvdXQucHJpbnQoIigiLCBqc3IoKSwgIikiKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIGNhc2UgRlBSUmVnaXN0ZXI6CisgICAgICAgIG91dC5wcmludCgi
KCIsIGZwcigpLCAiKSIpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTdGFjazoKICAgICAg
ICAgb3V0LnByaW50KCIoIiwgb2Zmc2V0RnJvbUZQKCksICIpIik7CkBAIC01Nyw4ICs2MCwxMSBA
QCB1c2luZyBuYW1lc3BhY2UgSlNDOjpXYXNtOwogdm9pZCBwcmludEludGVybmFsKFByaW50U3Ry
ZWFtJiBvdXQsIFZhbHVlTG9jYXRpb246OktpbmQga2luZCkKIHsKICAgICBzd2l0Y2ggKGtpbmQp
IHsKLSAgICBjYXNlIFZhbHVlTG9jYXRpb246OlJlZ2lzdGVyOgotICAgICAgICBvdXQucHJpbnQo
IlJlZ2lzdGVyIik7CisgICAgY2FzZSBWYWx1ZUxvY2F0aW9uOjpHUFJSZWdpc3RlcjoKKyAgICAg
ICAgb3V0LnByaW50KCJHUFJSZWdpc3RlciIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBW
YWx1ZUxvY2F0aW9uOjpGUFJSZWdpc3RlcjoKKyAgICAgICAgb3V0LnByaW50KCJGUFJSZWdpc3Rl
ciIpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBWYWx1ZUxvY2F0aW9uOjpTdGFjazoKICAg
ICAgICAgb3V0LnByaW50KCJTdGFjayIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21WYWx1ZUxvY2F0aW9uLmgKaW5kZXggYTYxZmJhOGJkMDFjLi41Y2I1MTBkYmJkMGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uaApAQCAt
NDEsMjUgKzQxLDI3IEBAIGNsYXNzIFZhbHVlTG9jYXRpb24gewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgogICAgIGVudW0gS2luZCA6IHVpbnQ4X3QgewotICAgICAgICBS
ZWdpc3RlciwKKyAgICAgICAgR1BSUmVnaXN0ZXIsCisgICAgICAgIEZQUlJlZ2lzdGVyLAogICAg
ICAgICBTdGFjaywKICAgICAgICAgU3RhY2tBcmd1bWVudCwKICAgICB9OwogCiAgICAgVmFsdWVM
b2NhdGlvbigpCi0gICAgICAgIDogbV9raW5kKFJlZ2lzdGVyKQorICAgICAgICA6IG1fa2luZChH
UFJSZWdpc3RlcikKICAgICB7CiAgICAgfQogCi0gICAgZXhwbGljaXQgVmFsdWVMb2NhdGlvbihS
ZWcgcmVnKQotICAgICAgICA6IG1fa2luZChSZWdpc3RlcikKKyAgICBleHBsaWNpdCBWYWx1ZUxv
Y2F0aW9uKEpTVmFsdWVSZWdzIHJlZ3MpCisgICAgICAgIDogbV9raW5kKEdQUlJlZ2lzdGVyKQog
ICAgIHsKLSAgICAgICAgdS5yZWcgPSByZWc7CisgICAgICAgIHUuanNyID0gcmVnczsKICAgICB9
CiAKLSAgICBzdGF0aWMgVmFsdWVMb2NhdGlvbiByZWcoUmVnIHJlZykKKyAgICBleHBsaWNpdCBW
YWx1ZUxvY2F0aW9uKEZQUlJlZyByZWcpCisgICAgICAgIDogbV9raW5kKEZQUlJlZ2lzdGVyKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIFZhbHVlTG9jYXRpb24ocmVnKTsKKyAgICAgICAgdS5mcHIg
PSByZWc7CiAgICAgfQogCiAgICAgc3RhdGljIFZhbHVlTG9jYXRpb24gc3RhY2soaW50cHRyX3Qg
b2Zmc2V0RnJvbUZQKQpAQCAtODAsMjEgKzgyLDIyIEBAIHB1YmxpYzoKIAogICAgIEtpbmQga2lu
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fa2luZDsgfQogCi0gICAgYm9vbCBpc1JlZygpIGNvbnN0IHsg
cmV0dXJuIGtpbmQoKSA9PSBSZWdpc3RlcjsgfQorICAgIGJvb2wgaXNHUFIoKSBjb25zdCB7IHJl
dHVybiBraW5kKCkgPT0gR1BSUmVnaXN0ZXI7IH0KKyAgICBib29sIGlzRlBSKCkgY29uc3QgeyBy
ZXR1cm4ga2luZCgpID09IEZQUlJlZ2lzdGVyOyB9CisgICAgYm9vbCBpc1N0YWNrKCkgY29uc3Qg
eyByZXR1cm4ga2luZCgpID09IFN0YWNrOyB9CisgICAgYm9vbCBpc1N0YWNrQXJndW1lbnQoKSBj
b25zdCB7IHJldHVybiBraW5kKCkgPT0gU3RhY2tBcmd1bWVudDsgfQogCi0gICAgUmVnIHJlZygp
IGNvbnN0CisgICAgSlNWYWx1ZVJlZ3MganNyKCkgY29uc3QKICAgICB7Ci0gICAgICAgIEFTU0VS
VChpc1JlZygpKTsKLSAgICAgICAgcmV0dXJuIHUucmVnOworICAgICAgICBBU1NFUlQoaXNHUFIo
KSk7CisgICAgICAgIHJldHVybiB1LmpzcjsKICAgICB9CiAKLSAgICBib29sIGlzR1BSKCkgY29u
c3QgeyByZXR1cm4gaXNSZWcoKSAmJiByZWcoKS5pc0dQUigpOyB9Ci0gICAgYm9vbCBpc0ZQUigp
IGNvbnN0IHsgcmV0dXJuIGlzUmVnKCkgJiYgcmVnKCkuaXNGUFIoKTsgfQotCi0gICAgR1BSUmVn
IGdwcigpIGNvbnN0IHsgcmV0dXJuIHJlZygpLmdwcigpOyB9Ci0gICAgRlBSUmVnIGZwcigpIGNv
bnN0IHsgcmV0dXJuIHJlZygpLmZwcigpOyB9Ci0KLSAgICBib29sIGlzU3RhY2soKSBjb25zdCB7
IHJldHVybiBraW5kKCkgPT0gU3RhY2s7IH0KKyAgICBGUFJSZWcgZnByKCkgY29uc3QKKyAgICB7
CisgICAgICAgIEFTU0VSVChpc0ZQUigpKTsKKyAgICAgICAgcmV0dXJuIHUuZnByOworICAgIH0K
IAogICAgIGludHB0cl90IG9mZnNldEZyb21GUCgpIGNvbnN0CiAgICAgewpAQCAtMTAyLDggKzEw
NSw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHUub2Zmc2V0RnJvbUZQOwogICAgIH0KIAot
ICAgIGJvb2wgaXNTdGFja0FyZ3VtZW50KCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IFN0YWNr
QXJndW1lbnQ7IH0KLQogICAgIGludHB0cl90IG9mZnNldEZyb21TUCgpIGNvbnN0CiAgICAgewog
ICAgICAgICBBU1NFUlQoaXNTdGFja0FyZ3VtZW50KCkpOwpAQCAtMTE0LDcgKzExNSw4IEBAIHB1
YmxpYzoKIAogcHJpdmF0ZToKICAgICB1bmlvbiBVIHsKLSAgICAgICAgUmVnIHJlZzsKKyAgICAg
ICAgSlNWYWx1ZVJlZ3MganNyOworICAgICAgICBGUFJSZWcgZnByOwogICAgICAgICBpbnRwdHJf
dCBvZmZzZXRGcm9tRlA7CiAgICAgICAgIGludHB0cl90IG9mZnNldEZyb21TUDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3BwCmluZGV4IDFmNDY0ZmU5OGJhZC4u
ZDZhNzUxZTJlZmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9K
U1RvV2FzbS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNUb1dhc20u
Y3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVk
ZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5SW5zdGFuY2Uu
aCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUg
Ildhc21DYWxsaW5nQ29udmVudGlvbi5oIgogI2luY2x1ZGUgIldhc21Db250ZXh0SW5saW5lcy5o
IgogI2luY2x1ZGUgIldhc21PcGVyYXRpb25zLmgiCkBAIC00MCwxMyArNDEsMTMgQEAgbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIAogdm9pZCBtYXJzaGFsbEpTUmVzdWx0KENDYWxs
SGVscGVycyYgaml0LCBjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSwgY29uc3QgQ2FsbEluZm9y
bWF0aW9uJiB3YXNtRnJhbWVDb252ZW50aW9uLCBjb25zdCBSZWdpc3RlckF0T2Zmc2V0TGlzdCYg
c2F2ZWRSZXN1bHRSZWdpc3RlcnMpCiB7Ci0gICAgYXV0byBib3hXYXNtUmVzdWx0ID0gW10oQ0Nh
bGxIZWxwZXJzJiBqaXQsIFR5cGUgdHlwZSwgUmVnIHNyYywgSlNWYWx1ZVJlZ3MgZHN0KSB7Cisg
ICAgYXV0byBib3hXYXNtUmVzdWx0ID0gW10oQ0NhbGxIZWxwZXJzJiBqaXQsIFR5cGUgdHlwZSwg
VmFsdWVMb2NhdGlvbiBzcmMsIEpTVmFsdWVSZWdzIGRzdCkgewogICAgICAgICBzd2l0Y2ggKHR5
cGUua2luZCkgewogICAgICAgICBjYXNlIFR5cGVLaW5kOjpWb2lkOgogICAgICAgICAgICAgaml0
Lm1vdmVUcnVzdGVkVmFsdWUoanNVbmRlZmluZWQoKSwgZHN0KTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJMzI6Ci0gICAgICAgICAgICBqaXQuemVyb0V4dGVu
ZDMyVG9Xb3JkKHNyYy5ncHIoKSwgZHN0LnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICBqaXQu
emVyb0V4dGVuZDMyVG9Xb3JkKHNyYy5qc3IoKS5wYXlsb2FkR1BSKCksIGRzdC5wYXlsb2FkR1BS
KCkpOwogICAgICAgICAgICAgaml0LmJveEludDMyKGRzdC5wYXlsb2FkR1BSKCksIGRzdCwgRG9O
b3RIYXZlVGFnUmVnaXN0ZXJzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFR5
cGVLaW5kOjpGMzI6CkBAIC01NSwxMyArNTYsMTcgQEAgdm9pZCBtYXJzaGFsbEpTUmVzdWx0KEND
YWxsSGVscGVycyYgaml0LCBjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSwgY29uc3QgQ2FsbEkK
ICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OiB7CiAgICAgICAgICAgICBqaXQubW92ZVRydXN0
ZWRWYWx1ZShqc051bWJlcihwdXJlTmFOKCkpLCBkc3QpOwogICAgICAgICAgICAgYXV0byBpc05h
TiA9IGppdC5icmFuY2hJZk5hTihzcmMuZnByKCkpOworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAg
ICAgICAgICBqaXQuYm94RG91YmxlKHNyYy5mcHIoKSwgZHN0LCBEb05vdEhhdmVUYWdSZWdpc3Rl
cnMpOworI2Vsc2UKKyAgICAgICAgICAgIGppdC5ib3hEb3VibGUoc3JjLmZwcigpLCBkc3QpOwor
I2VuZGlmCiAgICAgICAgICAgICBpc05hTi5saW5rKCZqaXQpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDogewogICAgICAgICAgICAgaWYgKGlzRnVuY3Jl
Zih0eXBlKSB8fCBpc0V4dGVybnJlZih0eXBlKSkKLSAgICAgICAgICAgICAgICBqaXQubW92ZShz
cmMuZ3ByKCksIGRzdC5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgICAgIGppdC5tb3ZlVmFs
dWVSZWdzKHNyYy5qc3IoKSwgZHN0KTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICBqaXQuYnJlYWtwb2ludCgpOwogICAgICAgICB9CkBAIC02OSw0NCArNzQsODggQEAgdm9pZCBt
YXJzaGFsbEpTUmVzdWx0KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTaWduYXR1cmUmIHNpZ25h
dHVyZSwgY29uc3QgQ2FsbEkKICAgICB9OwogCiAgICAgaWYgKHNpZ25hdHVyZS5yZXR1cm5zVm9p
ZCgpKQotICAgICAgICBqaXQubW92ZVRydXN0ZWRWYWx1ZShqc1VuZGVmaW5lZCgpLCBKU1ZhbHVl
UmVncyB7IEdQUkluZm86OnJldHVyblZhbHVlR1BSIH0pOworICAgICAgICBqaXQubW92ZVRydXN0
ZWRWYWx1ZShqc1VuZGVmaW5lZCgpLCBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUik7CiAgICAgZWxz
ZSBpZiAoc2lnbmF0dXJlLnJldHVybkNvdW50KCkgPT0gMSkgewogICAgICAgICBpZiAoc2lnbmF0
dXJlLnJldHVyblR5cGUoMCkuaXNJNjQoKSkgewotICAgICAgICAgICAgR1BSUmVnIGlucHV0R1BS
ID0gd2FzbUZyYW1lQ29udmVudGlvbi5yZXN1bHRzWzBdLnJlZygpLmdwcigpOworICAgICAgICAg
ICAgSlNWYWx1ZVJlZ3MgaW5wdXRKU1IgPSB3YXNtRnJhbWVDb252ZW50aW9uLnJlc3VsdHNbMF0u
anNyKCk7CiAgICAgICAgICAgICBHUFJSZWcgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IFBpbm5l
ZFJlZ2lzdGVySW5mbzo6Z2V0KCkud2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXI7CiAgICAgICAg
ICAgICBpZiAoQ29udGV4dDo6dXNlRmFzdFRMUygpKSB7Ci0gICAgICAgICAgICAgICAgd2FzbUNv
bnRleHRJbnN0YW5jZUdQUiA9IGlucHV0R1BSID09IEdQUkluZm86OmFyZ3VtZW50R1BSMSA/IEdQ
UkluZm86OmFyZ3VtZW50R1BSMCA6IEdQUkluZm86OmFyZ3VtZW50R1BSMTsKLSAgICAgICAgICAg
ICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZV92PFdhc206Okluc3RhbmNlKiwgdHlwZW5h
bWUgRnVuY3Rpb25UcmFpdHM8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXkp
Pjo6QXJndW1lbnRUeXBlPDE+Pik7CisgICAgICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5j
ZUdQUiA9IGlucHV0SlNSLnBheWxvYWRHUFIoKSA9PSBHUFJJbmZvOjphcmd1bWVudEdQUjEgPyBH
UFJJbmZvOjphcmd1bWVudEdQUjAgOiBHUFJJbmZvOjphcmd1bWVudEdQUjE7CisgICAgICAgICAg
ICAgICAgQVNTRVJUKCFpbnB1dEpTUi51c2VzKHdhc21Db250ZXh0SW5zdGFuY2VHUFIpKTsKKyAg
ICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZV92PFdhc206Okluc3RhbmNl
KiwgdHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmln
SW50KT46OkFyZ3VtZW50VHlwZTwxPj4pOwogICAgICAgICAgICAgICAgIGppdC5sb2FkV2FzbUNv
bnRleHRJbnN0YW5jZSh3YXNtQ29udGV4dEluc3RhbmNlR1BSKTsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9C
aWdJbnQpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCBpbnB1dEdQUik7CisgICAgICAgICAgICBq
aXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KT4od2Fz
bUNvbnRleHRJbnN0YW5jZUdQUiwgaW5wdXRKU1IpOwogICAgICAgICAgICAgaml0LmNhbGxPcGVy
YXRpb24oRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25Db252ZXJ0VG9CaWdJ
bnQpKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBib3hXYXNtUmVzdWx0KGppdCwgc2ln
bmF0dXJlLnJldHVyblR5cGUoMCksIHdhc21GcmFtZUNvbnZlbnRpb24ucmVzdWx0c1swXS5yZWco
KSwgSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiB9KTsKKyAgICAgICAgfQor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBib3hXYXNtUmVzdWx0KGppdCwgc2lnbmF0dXJlLnJl
dHVyblR5cGUoMCksIHdhc21GcmFtZUNvbnZlbnRpb24ucmVzdWx0c1swXSwgSlNSSW5mbzo6cmV0
dXJuVmFsdWVKU1IpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEluZGV4aW5nVHlwZSBpbmRleGlu
Z1R5cGUgPSBBcnJheVdpdGhVbmRlY2lkZWQ7Ci0gICAgICAgIEpTVmFsdWVSZWdzIHNjcmF0Y2gg
PSBKU1ZhbHVlUmVncyB7IHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQ
UnNbMV0gfTsKKyAgICAgICAgSlNWYWx1ZVJlZ3Mgc2NyYXRjaEpTUiA9IEpTVmFsdWVSZWdzIHsK
KyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgd2FzbUNhbGxpbmdDb252ZW50aW9u
KCkucHJvbG9ndWVTY3JhdGNoR1BSc1syXSwKKyNlbmRpZgorICAgICAgICAgICAgd2FzbUNhbGxp
bmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1sxXQorICAgICAgICB9OworCisgICAg
ICAgIEFTU0VSVChzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSAhPSBHUFJSZWc6OkludmFsaWRHUFJS
ZWcpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIEFTU0VSVChzY3JhdGNoSlNSLnRh
Z0dQUigpICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7CisgICAgICAgIEFTU0VSVChzY3JhdGNo
SlNSLnBheWxvYWRHUFIoKSAhPSBzY3JhdGNoSlNSLnRhZ0dQUigpKTsKKyNlbmRpZgorCiAgICAg
ICAgIC8vIFdlIGNhbiB1c2UgdGhlIGZpcnN0IGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVyIGFzIGEg
c2NyYXRjaCBzaW5jZSBpdCB3aWxsIGFsd2F5cyBiZSBtb3ZlZCBvbnRvIHRoZSBzdGFjayBiZWZv
cmUgb3RoZXIgdmFsdWVzLgotICAgICAgICBGUFJSZWcgZnByU2NyYXRjaCA9IHdhc21DYWxsaW5n
Q29udmVudGlvbigpLmZwckFyZ3NbMF0uZnByKCk7CisgICAgICAgIEZQUlJlZyBmcHJTY3JhdGNo
ID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkuZnByQXJnc1swXTsKICAgICAgICAgYm9vbCBoYXNJ
NjQgPSBmYWxzZTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpZ25hdHVyZS5y
ZXR1cm5Db3VudCgpOyArK2kpIHsKICAgICAgICAgICAgIFZhbHVlTG9jYXRpb24gbG9jID0gd2Fz
bUZyYW1lQ29udmVudGlvbi5yZXN1bHRzW2ldOwogICAgICAgICAgICAgVHlwZSB0eXBlID0gc2ln
bmF0dXJlLnJldHVyblR5cGUoaSk7CiAKICAgICAgICAgICAgIGhhc0k2NCB8PSB0eXBlLmlzSTY0
KCk7Ci0gICAgICAgICAgICBpZiAobG9jLmlzUmVnKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAo
IXR5cGUuaXNJNjQoKSkgewotICAgICAgICAgICAgICAgICAgICBib3hXYXNtUmVzdWx0KGppdCwg
c2lnbmF0dXJlLnJldHVyblR5cGUoaSksIGxvYy5yZWcoKSwgc2NyYXRjaCk7Ci0gICAgICAgICAg
ICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2gsIENDYWxsSGVscGVyczo6QWRkcmVzcyhD
Q2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5m
aW5kKGxvYy5yZWcoKSktPm9mZnNldCgpICsgd2FzbUZyYW1lQ29udmVudGlvbi5oZWFkZXJBbmRB
cmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAg
ICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoSlNWYWx1ZVJlZ3MgeyBsb2MucmVnKCkuZ3By
KCkgfSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVn
aXN0ZXIsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLnJlZygpKS0+b2Zmc2V0KCkgKyB3
YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcykpOwor
ICAgICAgICAgICAgaWYgKGxvYy5pc0dQUigpIHx8IGxvYy5pc0ZQUigpKSB7CisjaWYgVVNFKEpT
VkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICBBU1NFUlQoIWxvYy5pc0dQUigpIHx8IHNhdmVk
UmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpICsg
NCA9PSBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS50YWdHUFIoKSktPm9mZnNl
dCgpKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIGF1dG8gYWRkcmVzcyA9IENDYWxsSGVscGVy
czo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCB3YXNtRnJhbWVD
b252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcyk7CisgICAgICAgICAg
ICAgICAgc3dpdGNoICh0eXBlLmtpbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBUeXBl
S2luZDo6RjMyOgorICAgICAgICAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6CisgICAg
ICAgICAgICAgICAgICAgICAgICBib3hXYXNtUmVzdWx0KGppdCwgdHlwZSwgbG9jLCBzY3JhdGNo
SlNSKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2hKU1Is
IGFkZHJlc3Mud2l0aE9mZnNldChzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5mcHIoKSkt
Pm9mZnNldCgpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OgorICAgICAgICAgICAgICAgICAgICAgICAgaml0
LnN0b3JlVmFsdWUobG9jLmpzcigpLCBhZGRyZXNzLndpdGhPZmZzZXQoc2F2ZWRSZXN1bHRSZWdp
c3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgICAgICAgICAgICAgYm94V2FzbVJlc3VsdChqaXQsIHR5cGUsIGxvYywgc2NyYXRj
aEpTUik7CisgICAgICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNoSlNS
LCBhZGRyZXNzLndpdGhPZmZzZXQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCku
cGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg
ICAgaWYgKCF0eXBlLmlzSTY0KCkpIHsKICAgICAgICAgICAgICAgICAgICAgYXV0byBsb2NhdGlv
biA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lz
dGVyLCBsb2Mub2Zmc2V0RnJvbVNQKCkpOwotICAgICAgICAgICAgICAgICAgICBSZWcgdG1wID0g
KHR5cGUuaXNGMzIoKSB8fCB0eXBlLmlzRjY0KCkpID8gUmVnKGZwclNjcmF0Y2gpIDogUmVnKHNj
cmF0Y2guZ3ByKCkpOwotICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDY0VG9SZWcobG9jYXRp
b24sIHRtcCk7Ci0gICAgICAgICAgICAgICAgICAgIGJveFdhc21SZXN1bHQoaml0LCBzaWduYXR1
cmUucmV0dXJuVHlwZShpKSwgdG1wLCBzY3JhdGNoKTsKLSAgICAgICAgICAgICAgICAgICAgaml0
LnN0b3JlVmFsdWUoc2NyYXRjaCwgbG9jYXRpb24pOworICAgICAgICAgICAgICAgICAgICBWYWx1
ZUxvY2F0aW9uIHRtcDsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlLmtpbmQpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0bXAgPSBWYWx1ZUxvY2F0aW9uIHsgZnByU2NyYXRjaCB9OworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkRmxvYXQobG9jYXRpb24sIGZwclNjcmF0
Y2gpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
ICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRtcCA9IFZhbHVlTG9jYXRpb24geyBmcHJTY3JhdGNoIH07CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaml0LmxvYWREb3VibGUobG9jYXRpb24sIGZwclNjcmF0Y2gpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBU
eXBlS2luZDo6STMyOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFZhbHVlTG9j
YXRpb24geyBzY3JhdGNoSlNSIH07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaml0Lmxv
YWQzMihsb2NhdGlvbiwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBWYWx1ZUxvY2F0aW9uIHsgc2NyYXRjaEpT
UiB9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUobG9jYXRpb24s
IHNjcmF0Y2hKU1IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJveFdhc21SZXN1bHQoaml0LCB0
eXBlLCB0bXAsIHNjcmF0Y2hKU1IpOworICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1
ZShzY3JhdGNoSlNSLCBsb2NhdGlvbik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fQogCkBAIC0xMzUsMzcgKzE4NCw0NyBAQCB2b2lkIG1hcnNoYWxsSlNSZXN1bHQoQ0NhbGxIZWxw
ZXJzJiBqaXQsIGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlLCBjb25zdCBDYWxsSQogCiAgICAg
ICAgICAgICAgICAgR1BSUmVnIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBQaW5uZWRSZWdpc3Rl
ckluZm86OmdldCgpLndhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyOwogICAgICAgICAgICAgICAg
IGlmIChDb250ZXh0Ojp1c2VGYXN0VExTKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgd2FzbUNv
bnRleHRJbnN0YW5jZUdQUiA9IEdQUkluZm86OmFyZ3VtZW50R1BSMTsKLSAgICAgICAgICAgICAg
ICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWVfdjxXYXNtOjpJbnN0YW5jZSosIHR5cGVu
YW1lIEZ1bmN0aW9uVHJhaXRzPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5
KT46OkFyZ3VtZW50VHlwZTwxPj4pOworICAgICAgICAgICAgICAgICAgICB3YXNtQ29udGV4dElu
c3RhbmNlR1BSID0gcHJlZmVycmVkQXJndW1lbnRHUFI8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVy
dFRvQmlnSW50KSwgMT4oKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6
OmlzX3NhbWVfdjxXYXNtOjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPGRlY2x0
eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+OjpBcmd1bWVudFR5cGU8MT4+KTsKICAgICAg
ICAgICAgICAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHdhc21Db250ZXh0SW5z
dGFuY2VHUFIpOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGlmIChsb2Mu
aXNSZWcoKSkKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NChDQ2FsbEhlbHBlcnM6OkFk
ZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRSZWdp
c3RlcnMuZmluZChsb2MucmVnKCkpLT5vZmZzZXQoKSArIHdhc21GcmFtZUNvbnZlbnRpb24uaGVh
ZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
LSAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBsb2NhdGlv
biA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lz
dGVyLCBsb2Mub2Zmc2V0RnJvbVNQKCkpOwotICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDY0
VG9SZWcobG9jYXRpb24sIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25D
b252ZXJ0VG9CaWdJbnQpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApOworICAgICAgICAgICAgICAgIGNvbnN0ZXhwciBKU1ZhbHVlUmVncyB2YWx1ZUpTUiA9
IHByZWZlcnJlZEFyZ3VtZW50SlNSPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCks
IDI+KCk7CisKKyAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgYWRkcmVzcyB7
IENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIgfTsKKyAgICAgICAgICAgICAgICBp
ZiAobG9jLmlzR1BSKCkgfHwgbG9jLmlzRlBSKCkpIHsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQor
ICAgICAgICAgICAgICAgICAgICBBU1NFUlQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2Mu
anNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkgKyA0ID09IHNhdmVkUmVzdWx0UmVnaXN0ZXJz
LmZpbmQobG9jLmpzcigpLnRhZ0dQUigpKS0+b2Zmc2V0KCkpOworI2VuZGlmCisgICAgICAgICAg
ICAgICAgICAgIGFkZHJlc3MgPSBhZGRyZXNzLndpdGhPZmZzZXQoc2F2ZWRSZXN1bHRSZWdpc3Rl
cnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkgKyB3YXNtRnJhbWVDb252
ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcyk7CisgICAgICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSBhZGRyZXNzLndpdGhPZmZz
ZXQobG9jLm9mZnNldEZyb21TUCgpKTsKKworICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUo
YWRkcmVzcywgdmFsdWVKU1IpOworICAgICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxk
ZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPih3YXNtQ29udGV4dEluc3RhbmNlR1BS
LCB2YWx1ZUpTUik7CiAgICAgICAgICAgICAgICAgaml0LmNhbGxPcGVyYXRpb24oRnVuY3Rpb25Q
dHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpKTsKLSAgICAgICAg
ICAgICAgICBpZiAobG9jLmlzUmVnKCkpCi0gICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZh
bHVlKEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIgfSwgQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0
UmVnaXN0ZXJzLmZpbmQobG9jLnJlZygpKS0+b2Zmc2V0KCkgKyB3YXNtRnJhbWVDb252ZW50aW9u
LmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcykpOwotICAgICAgICAgICAgICAgIGVs
c2UgewotICAgICAgICAgICAgICAgICAgICBhdXRvIGxvY2F0aW9uID0gQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIGxvYy5vZmZzZXRGcm9t
U1AoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTVmFsdWVSZWdzIHsg
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIgfSwgbG9jYXRpb24pOwotICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwg
YWRkcmVzcyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBHUFJSZWcgd2Fz
bUNvbnRleHRJbnN0YW5jZUdQUiA9IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCkud2FzbUNvbnRl
eHRJbnN0YW5jZVBvaW50ZXI7CiAgICAgICAgIGlmIChDb250ZXh0Ojp1c2VGYXN0VExTKCkpIHsK
LSAgICAgICAgICAgIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBHUFJJbmZvOjphcmd1bWVudEdQ
UjE7CisgICAgICAgICAgICB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gcHJlZmVycmVkQXJndW1l
bnRHUFI8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXkpLCAxPigpOwogICAg
ICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWVfdjxXYXNtOjpJbnN0YW5jZSosIHR5
cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0Fy
cmF5KT46OkFyZ3VtZW50VHlwZTwxPj4pOwogICAgICAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4
dEluc3RhbmNlKHdhc21Db250ZXh0SW5zdGFuY2VHUFIpOwogICAgICAgICB9CiAKLSAgICAgICAg
aml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5
KT4od2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZz
aWduYXR1cmUpLCBpbmRleGluZ1R5cGUsIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0
ZXIpOworICAgICAgICBjb25zdGV4cHIgR1BSUmVnIHNhdmVkUmVzdWx0c0dQUiA9IHByZWZlcnJl
ZEFyZ3VtZW50R1BSPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KSwgND4o
KTsKKyAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwg
c2F2ZWRSZXN1bHRzR1BSKTsKKyAgICAgICAgaWYgY29uc3RleHByIChtYXhGcmFtZUV4dGVudEZv
clNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGppdC5zdWJQdHIoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBDQ2FsbEhlbHBlcnM6OnN0
YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgQVNTRVJUKHdhc21Db250ZXh0SW5zdGFuY2VH
UFIgIT0gc2F2ZWRSZXN1bHRzR1BSKTsKKyAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0
eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KT4od2FzbUNvbnRleHRJbnN0YW5jZUdQ
UiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZzaWduYXR1cmUpLCBpbmRleGluZ1R5cGUs
IHNhdmVkUmVzdWx0c0dQUik7CiAgICAgICAgIGppdC5jYWxsT3BlcmF0aW9uKEZ1bmN0aW9uUHRy
PE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXkpKTsKKyAgICAg
ICAgaWYgY29uc3RleHByIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAg
ICAgIGppdC5hZGRQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRG
b3JTbG93UGF0aENhbGwpLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKwor
ICAgICAgICBqaXQuYm94Q2VsbChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgSlNSSW5mbzo6cmV0
dXJuVmFsdWVKU1IpOwogICAgIH0KIH0KIApAQCAtMTc3LDcgKzIzNiwxMSBAQCBzdGQ6OnVuaXF1
ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4gY3JlYXRlSlNUb1dhc21XcmFwcGVyKENDYWxsSGVscGVy
cyYgaml0LCBjb25zdAogICAgIC8vIEZJWE1FIFN0b3AgdXNpbmcgMCBhcyBjb2RlQmxvY2tzLiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1MzIxCiAgICAgaml0LmVt
aXRaZXJvVG9DYWxsRnJhbWVIZWFkZXIoQ2FsbEZyYW1lU2xvdDo6Y29kZUJsb2NrKTsKICAgICBN
YWNyb0Fzc2VtYmxlcjo6RGF0YUxhYmVsUHRyIGNhbGxlZU1vdmVMb2NhdGlvbiA9IGppdC5tb3Zl
V2l0aFBhdGNoKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG51bGxwdHIpLCBHUFJJbmZv
Ojpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIpOwotICAgIGppdC5lbWl0UHV0VG9DYWxsRnJhbWVI
ZWFkZXIoR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSLCBDYWxsRnJhbWVTbG90Ojpj
YWxsZWUpOworICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBjYWxsZWVTbG90IHsgR1BSSW5mbzo6
Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAqIHNpemVvZihSZWdpc3Rl
cikgfTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BS
LCBjYWxsZWVTbG90LndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOworI2lmIFVTRShKU1ZBTFVF
MzJfNjQpCisgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1
ZTo6V2FzbVRhZyksIGNhbGxlZVNsb3Qud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgog
ICAgIFZlY3RvcjxDb2RlTG9jYXRpb25EYXRhTGFiZWxQdHI8V2FzbUVudHJ5UHRyVGFnPj4qIGxp
bmtlZENhbGxlZU1vdmUgPSAmcmVzdWx0LT5jYWxsZWVNb3ZlTG9jYXRpb25zOwogICAgIGppdC5h
ZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKICAgICAgICAgbGlua2Vk
Q2FsbGVlTW92ZS0+YXBwZW5kKGxpbmtCdWZmZXIubG9jYXRpb25PZjxXYXNtRW50cnlQdHJUYWc+
KGNhbGxlZU1vdmVMb2NhdGlvbikpOwpAQCAtMTk2LDExICsyNTksMTEgQEAgc3RkOjp1bmlxdWVf
cHRyPEludGVybmFsRnVuY3Rpb24+IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMm
IGppdCwgY29uc3QKICAgICBSZWdpc3RlckF0T2Zmc2V0TGlzdCByZWdpc3RlcnNUb1NwaWxsKHRv
U2F2ZSwgUmVnaXN0ZXJBdE9mZnNldExpc3Q6Ok9mZnNldEJhc2VUeXBlOjpGcmFtZVBvaW50ZXJC
YXNlZCk7CiAgICAgcmVzdWx0LT5lbnRyeXBvaW50LmNhbGxlZVNhdmVSZWdpc3RlcnMgPSByZWdp
c3RlcnNUb1NwaWxsOwogCi0gICAgc2l6ZV90IHRvdGFsRnJhbWVTaXplID0gcmVnaXN0ZXJzVG9T
cGlsbC5zaXplKCkgKiBzaXplb2YoQ1BVUmVnaXN0ZXIpOworICAgIHNpemVfdCB0b3RhbEZyYW1l
U2l6ZSA9IHJlZ2lzdGVyc1RvU3BpbGwuc2l6ZU9mQXJlYUluQnl0ZXMoKTsKICAgICBDYWxsSW5m
b3JtYXRpb24gd2FzbUZyYW1lQ29udmVudGlvbiA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpLmNh
bGxJbmZvcm1hdGlvbkZvcihzaWduYXR1cmUpOwogICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IHNh
dmVkUmVzdWx0UmVnaXN0ZXJzID0gd2FzbUZyYW1lQ29udmVudGlvbi5jb21wdXRlUmVzdWx0c09m
ZnNldExpc3QoKTsKICAgICB0b3RhbEZyYW1lU2l6ZSArPSB3YXNtRnJhbWVDb252ZW50aW9uLmhl
YWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlczsKLSAgICB0b3RhbEZyYW1lU2l6ZSArPSBz
YXZlZFJlc3VsdFJlZ2lzdGVycy5zaXplKCkgKiBzaXplb2YoQ1BVUmVnaXN0ZXIpOworICAgIHRv
dGFsRnJhbWVTaXplICs9IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLnNpemVPZkFyZWFJbkJ5dGVzKCk7
CiAKICAgICB0b3RhbEZyYW1lU2l6ZSA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0Fs
aWdubWVudEJ5dGVzKCksIHRvdGFsRnJhbWVTaXplKTsKICAgICBqaXQuc3ViUHRyKE1hY3JvQXNz
ZW1ibGVyOjpUcnVzdGVkSW1tMzIodG90YWxGcmFtZVNpemUpLCBNYWNyb0Fzc2VtYmxlcjo6c3Rh
Y2tQb2ludGVyUmVnaXN0ZXIpOwpAQCAtMjIyLDkgKzI4NSwxMiBAQCBzdGQ6OnVuaXF1ZV9wdHI8
SW50ZXJuYWxGdW5jdGlvbj4gY3JlYXRlSlNUb1dhc21XcmFwcGVyKENDYWxsSGVscGVycyYgaml0
LCBjb25zdAogCiAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBjYWxsZWVGcmFtZSA9IEND
YWxsSGVscGVyczo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIs
IDApOwogCi0gICAgICAgIC8vIFdlJ3JlIGdvaW5nIHRvIHNldCB0aGUgcGlubmVkIHJlZ2lzdGVy
cyBhZnRlciB0aGlzLiBTbwotICAgICAgICAvLyB3ZSBjYW4gdXNlIHRoaXMgYXMgYSBzY3JhdGNo
IGZvciBub3cgc2luY2Ugd2Ugc2F2ZWQgaXQgYWJvdmUuCi0gICAgICAgIEdQUlJlZyBzY3JhdGNo
UmVnID0gcGlubmVkUmVncy5iYXNlTWVtb3J5UG9pbnRlcjsKKyAgICAgICAgSlNWYWx1ZVJlZ3Mg
c2NyYXRjaEpTUiB7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIHdhc21DYWxs
aW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMl0sCisjZW5kaWYKKyAgICAgICAg
ICAgIHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMV0KKyAgICAg
ICAgfTsKIAogICAgICAgICBpZiAoIUNvbnRleHQ6OnVzZUZhc3RUTFMoKSkgewogICAgICAgICAg
ICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJl
Z2lzdGVyLCBKU0NhbGxpbmdDb252ZW50aW9uOjppbnN0YW5jZVN0YWNrT2Zmc2V0KSwgd2FzbUNv
bnRleHRJbnN0YW5jZUdQUik7CkBAIC0yMzcsMjIgKzMwMywzNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8
SW50ZXJuYWxGdW5jdGlvbj4gY3JlYXRlSlNUb1dhc21XcmFwcGVyKENDYWxsSGVscGVycyYgaml0
LCBjb25zdAogICAgICAgICAgICAgVHlwZSB0eXBlID0gc2lnbmF0dXJlLmFyZ3VtZW50KGkpOwog
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGpzUGFyYW0oR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIGpzRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5vZmZzZXRGcm9tRlAoKSk7
CiAgICAgICAgICAgICBpZiAod2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0uaXNTdGFja0Fy
Z3VtZW50KCkpIHsKKyAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgYWRkciB7
IGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0ub2Zm
c2V0RnJvbVNQKCkpIH07CiAgICAgICAgICAgICAgICAgaWYgKHR5cGUuaXNJMzIoKSB8fCB0eXBl
LmlzRjMyKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQzMihqc1BhcmFtLCBzY3Jh
dGNoUmVnKTsKLSAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlMzIoc2NyYXRjaFJlZywgY2Fs
bGVlRnJhbWUud2l0aE9mZnNldCh3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5vZmZzZXRG
cm9tU1AoKSkpOworICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDMyKGpzUGFyYW0sIHNjcmF0
Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlMzIoc2Ny
YXRjaEpTUi5wYXlsb2FkR1BSKCksIGFkZHIud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSk7Cisj
aWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlMzIoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMCksIGFkZHIud2l0aE9mZnNldChUYWdPZmZzZXQpKTsK
KyNlbmRpZgogICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGpp
dC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaFJlZyk7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5z
dG9yZTY0KHNjcmF0Y2hSZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUZyYW1lQ29udmVu
dGlvbi5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgaml0
LmxvYWRWYWx1ZShqc1BhcmFtLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAgICAgICAgICAgaml0
LnN0b3JlVmFsdWUoc2NyYXRjaEpTUiwgYWRkcik7CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAodHlwZS5pc0kzMigpIHx8IHR5cGUu
aXNGMzIoKSkKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQzMlRvUmVnKGpzUGFyYW0sIHdh
c21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLnJlZygpKTsKLSAgICAgICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjRUb1JlZyhqc1BhcmFtLCB3YXNtRnJhbWVD
b252ZW50aW9uLnBhcmFtc1tpXS5yZWcoKSk7CisgICAgICAgICAgICAgICAgaWYgKHR5cGUuaXNG
MzIoKSkKKyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRGbG9hdChqc1BhcmFtLCB3YXNtRnJh
bWVDb252ZW50aW9uLnBhcmFtc1tpXS5mcHIoKSk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAo
dHlwZS5pc0Y2NCgpKQorICAgICAgICAgICAgICAgICAgICBqaXQubG9hZERvdWJsZShqc1BhcmFt
LCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5mcHIoKSk7CisgICAgICAgICAgICAgICAg
ZWxzZSBpZiAodHlwZS5pc0kzMigpKSB7CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkMzIo
anNQYXJhbSwgd2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0uanNyKCkucGF5bG9hZEdQUigp
KTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgICAgICBqaXQubW92ZShD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSwgd2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNb
aV0uanNyKCkudGFnR1BSKCkpOworI2VuZGlmCisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQYXJhbSwgd2FzbUZyYW1lQ29udmVudGlv
bi5wYXJhbXNbaV0uanNyKCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCisj
aWYgIUNQVShBUk0pIC8vIEFSTSBoYXMgbm8gcGlubmVkIHJlZ2lzdGVycyBmb3IgV2FzbSBNZW1v
cnksIHNvIG5vIG5lZWQgdG8gc2V0IHRoZW0gdXAKICAgICBpZiAoISFpbmZvLm1lbW9yeSkgewog
ICAgICAgICBHUFJSZWcgYmFzZU1lbW9yeSA9IHBpbm5lZFJlZ3MuYmFzZU1lbW9yeVBvaW50ZXI7
CiAgICAgICAgIEdQUlJlZyBzaXplID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVT
Y3JhdGNoR1BSc1swXTsKQEAgLTI2MywxNyArMzQxLDE4IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRl
cm5hbEZ1bmN0aW9uPiBjcmVhdGVKU1RvV2FzbVdyYXBwZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNv
bnN0CiAKICAgICAgICAgR1BSUmVnIGN1cnJlbnRJbnN0YW5jZUdQUiA9IENvbnRleHQ6OnVzZUZh
c3RUTFMoKSA/IGJhc2VNZW1vcnkgOiB3YXNtQ29udGV4dEluc3RhbmNlR1BSOwogICAgICAgICBp
ZiAoaXNBUk02NEUoKSkgewotICAgICAgICAgICAgaWYgKG1vZGUgIT0gV2FzbTo6TWVtb3J5TW9k
ZTo6U2lnbmFsaW5nKQorICAgICAgICAgICAgaWYgKG1vZGUgPT0gV2FzbTo6TWVtb3J5TW9kZTo6
Qm91bmRzQ2hlY2tpbmcpCiAgICAgICAgICAgICAgICAgc2l6ZSA9IHBpbm5lZFJlZ3MuYm91bmRz
Q2hlY2tpbmdTaXplUmVnaXN0ZXI7CiAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoY3VycmVudEluc3RhbmNlR1BSLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZD
YWNoZWRCb3VuZHNDaGVja2luZ1NpemUoKSksIHNpemUpOwogICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgaWYgKG1vZGUgIT0gV2FzbTo6TWVtb3J5TW9kZTo6U2lnbmFsaW5nKQorICAgICAg
ICAgICAgaWYgKG1vZGUgPT0gV2FzbTo6TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcpCiAgICAg
ICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGN1cnJlbnRJbnN0
YW5jZUdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdTaXpl
KCkpLCBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyKTsKICAgICAgICAgfQog
CiAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhjdXJyZW50SW5zdGFu
Y2VHUFIsIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9y
eSk7CiAgICAgICAgIGppdC5jYWdlQ29uZGl0aW9uYWxseUFuZFVudGFnKEdpZ2FjYWdlOjpQcmlt
aXRpdmUsIGJhc2VNZW1vcnksIHNpemUsIHNjcmF0Y2gpOwogICAgIH0KKyNlbmRpZgogCiAgICAg
Q0NhbGxIZWxwZXJzOjpDYWxsIGNhbGwgPSBqaXQudGhyZWFkU2FmZVBhdGNoYWJsZU5lYXJDYWxs
KCk7CiAgICAgdW5zaWduZWQgZnVuY3Rpb25JbmRleFNwYWNlID0gZnVuY3Rpb25JbmRleCArIGlu
Zm8uaW1wb3J0RnVuY3Rpb25Db3VudCgpOwpAQCAtMjg2LDcgKzM2NSw3IEBAIHN0ZDo6dW5pcXVl
X3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVhdGVKU1RvV2FzbVdyYXBwZXIoQ0NhbGxIZWxwZXJz
JiBqaXQsIGNvbnN0CiAKICAgICBmb3IgKGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXQmIHJlZ0F0T2Zm
c2V0IDogcmVnaXN0ZXJzVG9TcGlsbCkgewogICAgICAgICBHUFJSZWcgcmVnID0gcmVnQXRPZmZz
ZXQucmVnKCkuZ3ByKCk7Ci0gICAgICAgIEFTU0VSVChyZWcgIT0gR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIpOworICAgICAgICBBU1NFUlQoIUpTUkluZm86OnJldHVyblZhbHVlSlNSLnVzZXMocmVn
KSk7CiAgICAgICAgIHB0cmRpZmZfdCBvZmZzZXQgPSByZWdBdE9mZnNldC5vZmZzZXQoKTsKICAg
ICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFt
ZVJlZ2lzdGVyLCBvZmZzZXQpLCByZWcpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dhc21Ub0pTLmNwcAppbmRleCAwOGZlMWE3ODcxMzIuLjc3YTZlYWU1ZDQ5OCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2FzbVRvSlMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcApAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlJ
bnN0YW5jZS5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4
dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9ycy5oIgogI2lu
Y2x1ZGUgIldhc21DYWxsaW5nQ29udmVudGlvbi5oIgogI2luY2x1ZGUgIldhc21Db250ZXh0SW5s
aW5lcy5oIgpAQCAtNjgsNyArNjksNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8
V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgIC8v
IElmIHdlIGV2ZXIgY2hhbmdlIHRoaXMsIHdlIHdpbGwgYWxzbyBuZWVkIHRvIGNoYW5nZSBXYXNt
QjNJUkdlbmVyYXRvci4KIAogICAgIC8vIEJlbG93LCB3ZSBhc3N1bWUgdGhhdCB0aGUgSlMgY2Fs
bGluZyBjb252ZW50aW9uIGlzIGFsd2F5cyBvbiB0aGUgc3RhY2suCi0gICAgQVNTRVJUKCFqc0ND
LmdwckFyZ3Muc2l6ZSgpKTsKKyAgICBBU1NFUlQoIWpzQ0MuanNyQXJncy5zaXplKCkpOwogICAg
IEFTU0VSVCghanNDQy5mcHJBcmdzLnNpemUoKSk7CiAKICAgICBqaXQuZW1pdEZ1bmN0aW9uUHJv
bG9ndWUoKTsKQEAgLTg1LDE0ICs4NiwyMiBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVS
ZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAg
IC8vIGZvciB1cyBoZXJlLgogCiAgICAgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZQYXJhbWV0ZXJz
ID0gYXJnQ291bnQgKyAxOyAvLyBUaGVyZSBpcyBhICJ0aGlzIiBhcmd1bWVudC4KLSAgICBjb25z
dCB1bnNpZ25lZCBudW1iZXJPZlJlZ3NGb3JDYWxsID0gQ2FsbEZyYW1lOjpoZWFkZXJTaXplSW5S
ZWdpc3RlcnMgKyBudW1iZXJPZlBhcmFtZXRlcnM7CisgICAgY29uc3QgdW5zaWduZWQgbnVtYmVy
T2ZSZWdzRm9yQ2FsbCA9IENhbGxGcmFtZTo6aGVhZGVyU2l6ZUluUmVnaXN0ZXJzICsgcm91bmRB
cmd1bWVudENvdW50VG9BbGlnbkZyYW1lKG51bWJlck9mUGFyYW1ldGVycyk7CisgICAgQVNTRVJU
KCEobnVtYmVyT2ZSZWdzRm9yQ2FsbCAlIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkpKTsKICAg
ICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkJ5dGVzRm9yQ2FsbCA9IG51bWJlck9mUmVnc0ZvckNh
bGwgKiBzaXplb2YoUmVnaXN0ZXIpIC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpOwotICAgIGNv
bnN0IHVuc2lnbmVkIHN0YWNrT2Zmc2V0ID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNr
QWxpZ25tZW50Qnl0ZXMoKSwgc3RkOjptYXg8dW5zaWduZWQ+KG51bWJlck9mQnl0ZXNGb3JDYWxs
LCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5zaXplKCkgKiBzaXplb2YoQ1BVUmVnaXN0ZXIpKSk7Cisg
ICAgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZCeXRlc0ZvclNhdmVkUmVzdWx0cyA9IHNhdmVkUmVz
dWx0UmVnaXN0ZXJzLnNpemVPZkFyZWFJbkJ5dGVzKCk7CisgICAgY29uc3QgdW5zaWduZWQgc3Rh
Y2tPZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRCeXRlcygp
LCBzdGQ6Om1heChudW1iZXJPZkJ5dGVzRm9yQ2FsbCwgbnVtYmVyT2ZCeXRlc0ZvclNhdmVkUmVz
dWx0cykpOwogICAgIGppdC5zdWJQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihzdGFj
a09mZnNldCksIE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgSklU
OjpBZGRyZXNzIGNhbGxlZUZyYW1lID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1i
bGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgLXN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9m
KENhbGxlckZyYW1lQW5kUEMpKSk7CiAKICAgICAvLyBGSVhNRSBtYWtlIHRoZXNlIGxvb3BzIHdo
aWNoIHN3aXRjaCBvbiBTaWduYXR1cmUgaWYgdGhlcmUgYXJlIG1hbnkgYXJndW1lbnRzIG9uIHRo
ZSBzdGFjay4gSXQnbGwgb3RoZXJ3aXNlIGJlIGh1Z2UgZm9yIGh1Z2Ugc2lnbmF0dXJlcy4gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTU0NwogCisjaWYgVVNFKEpT
VkFMVUU2NCkKKyAgICBjb25zdGV4cHIgSlNWYWx1ZVJlZ3MganNBcmcxMCB7IEdQUkluZm86OmFy
Z3VtZW50R1BSMCB9OworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBjb25zdGV4cHIgSlNW
YWx1ZVJlZ3MganNBcmcxMCB7IEdQUkluZm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwIH07CisjZW5kaWYKKwogICAgIC8vIEZpcnN0IGdvIHRocm91Z2ggdGhlIGludGVnZXIg
cGFyYW1ldGVycywgZnJlZWluZyB1cCB0aGVpciByZWdpc3RlciBmb3IgdXNlIGFmdGVyd2FyZHMu
CiAgICAgewogICAgICAgICB1bnNpZ25lZCBtYXJzaGFsbGVkR1BScyA9IDA7CkBAIC0xMTEsMjEg
KzEyMCwyMSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFn
PiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgY2FzZSBUeXBl
S2luZDo6RnVuY3JlZjoKICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkkzMjoKICAgICAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDogewotICAgICAgICAgICAgICAgIEdQUlJlZyBncHJSZWc7
Ci0gICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRHUFJzIDwgd2FzbUNDLmdwckFyZ3Muc2l6
ZSgpKQotICAgICAgICAgICAgICAgICAgICBncHJSZWcgPSB3YXNtQ0MuZ3ByQXJnc1ttYXJzaGFs
bGVkR1BSc10uZ3ByKCk7CisgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgYXJnUmVnOworICAg
ICAgICAgICAgICAgIGlmIChtYXJzaGFsbGVkR1BScyA8IHdhc21DQy5qc3JBcmdzLnNpemUoKSkK
KyAgICAgICAgICAgICAgICAgICAgYXJnUmVnID0gd2FzbUNDLmpzckFyZ3NbbWFyc2hhbGxlZEdQ
UnNdOwogICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAvLyBXZSd2
ZSBhbHJlYWR5IHNwaWxsZWQgYWxsIGFyZ3VtZW50cywgdGhlc2UgcmVnaXN0ZXJzIGFyZSBhdmFp
bGFibGUgYXMgc2NyYXRjaC4KLSAgICAgICAgICAgICAgICAgICAgZ3ByUmVnID0gR1BSSW5mbzo6
YXJndW1lbnRHUFIwOwotICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDY0KEpJVDo6QWRkcmVz
cyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgZnJPZmZzZXQpLCBncHJSZWcpOworICAgICAg
ICAgICAgICAgICAgICBhcmdSZWcgPSBqc0FyZzEwOworICAgICAgICAgICAgICAgICAgICBqaXQu
bG9hZFZhbHVlKEpJVDo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgZnJPZmZz
ZXQpLCBhcmdSZWcpOwogICAgICAgICAgICAgICAgICAgICBmck9mZnNldCArPSBzaXplb2YoUmVn
aXN0ZXIpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICArK21hcnNoYWxsZWRH
UFJzOwogICAgICAgICAgICAgICAgIGlmIChhcmdUeXBlLmlzSTMyKCkpIHsKLSAgICAgICAgICAg
ICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChncHJSZWcsIGdwclJlZyk7IC8vIENsZWFy
IG5vbi1pbnQzMiBhbmQgbm9uLXRhZyBiaXRzLgotICAgICAgICAgICAgICAgICAgICBqaXQuYm94
SW50MzIoZ3ByUmVnLCBKU1ZhbHVlUmVncyhncHJSZWcpLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMp
OworICAgICAgICAgICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKGFyZ1JlZy5wYXls
b2FkR1BSKCksIGFyZ1JlZy5wYXlsb2FkR1BSKCkpOyAvLyBDbGVhciBub24taW50MzIgYW5kIG5v
bi10YWcgYml0cy4KKyAgICAgICAgICAgICAgICAgICAgaml0LmJveEludDMyKGFyZ1JlZy5wYXls
b2FkR1BSKCksIGFyZ1JlZywgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgaml0LnN0b3JlNjQoZ3ByUmVnLCBjYWxsZWVGcmFtZS53aXRo
T2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFs
dWUoYXJnUmVnLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSk7CiAg
ICAgICAgICAgICAgICAgY2FsbGVlRnJhbWVPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTE0Miw2ICsxNTEsNyBAQCBF
eHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0Zh
aWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgIH0KICAgICAKICAgICB7CisjaWYgVVNFKEpTVkFM
VUU2NCkKICAgICAgICAgLy8gSW50ZWdlciByZWdpc3RlcnMgaGF2ZSBhbHJlYWR5IGJlZW4gc3Bp
bGxlZCwgdGhlc2UgYXJlIG5vdyBhdmFpbGFibGUuCiAgICAgICAgIEdQUlJlZyBkb3VibGVFbmNv
ZGVPZmZzZXRHUFJSZWcgPSBHUFJJbmZvOjphcmd1bWVudEdQUjA7CiAgICAgICAgIEdQUlJlZyBz
Y3JhdGNoID0gR1BSSW5mbzo6YXJndW1lbnRHUFIxOwpAQCAtMTU3LDYgKzE2Nyw3IEBAIEV4cGVj
dGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVy
ZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgICAgICAgICAgaGFzTWF0ZXJpYWxpemVkRG91Ymxl
RW5jb2RlT2Zmc2V0ID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfTsKKyNlbmRpZgog
CiAgICAgICAgIHVuc2lnbmVkIG1hcnNoYWxsZWRHUFJzID0gMDsKICAgICAgICAgdW5zaWduZWQg
bWFyc2hhbGxlZEZQUnMgPSAwOwpAQCAtMTY1LDEwICsxNzYsMTQgQEAgRXhwZWN0ZWQ8TWFjcm9B
c3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9K
UyhWTSYgdm0KIAogICAgICAgICBhdXRvIG1hcnNoYWxsRlBSID0gWyZdIChGUFJSZWcgZnByUmVn
KSB7CiAgICAgICAgICAgICBqaXQucHVyaWZ5TmFOKGZwclJlZyk7CisjaWYgVVNFKEpTVkFMVUU2
NCkKICAgICAgICAgICAgIGppdC5tb3ZlRG91YmxlVG82NChmcHJSZWcsIHNjcmF0Y2gpOwogICAg
ICAgICAgICAgbWF0ZXJpYWxpemVEb3VibGVFbmNvZGVPZmZzZXQoZG91YmxlRW5jb2RlT2Zmc2V0
R1BSUmVnKTsKICAgICAgICAgICAgIGppdC5hZGQ2NChkb3VibGVFbmNvZGVPZmZzZXRHUFJSZWcs
IHNjcmF0Y2gpOwogICAgICAgICAgICAgaml0LnN0b3JlNjQoc2NyYXRjaCwgY2FsbGVlRnJhbWUu
d2l0aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCkpOworI2Vsc2UKKyAgICAgICAgICAgIGppdC5z
dG9yZURvdWJsZShmcHJSZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZz
ZXQpKTsKKyNlbmRpZgogICAgICAgICAgICAgY2FsbGVlRnJhbWVPZmZzZXQgKz0gc2l6ZW9mKFJl
Z2lzdGVyKTsKICAgICAgICAgICAgICsrbWFyc2hhbGxlZEZQUnM7CiAgICAgICAgIH07CkBAIC0x
ODYsNyArMjAxLDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0
clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIGNhc2Ug
VHlwZUtpbmQ6OkkzMjoKICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDogewogICAgICAg
ICAgICAgICAgIC8vIFNraXBwZWQ6IGhhbmRsZWQgYWJvdmUuCi0gICAgICAgICAgICAgICAgaWYg
KG1hcnNoYWxsZWRHUFJzID49IHdhc21DQy5ncHJBcmdzLnNpemUoKSkKKyAgICAgICAgICAgICAg
ICBpZiAobWFyc2hhbGxlZEdQUnMgPj0gd2FzbUNDLmpzckFyZ3Muc2l6ZSgpKQogICAgICAgICAg
ICAgICAgICAgICBmck9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOwogICAgICAgICAgICAgICAg
ICsrbWFyc2hhbGxlZEdQUnM7CiAgICAgICAgICAgICAgICAgY2FsbGVlRnJhbWVPZmZzZXQgKz0g
c2l6ZW9mKFJlZ2lzdGVyKTsKQEAgLTE5NSw3ICsyMTAsNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2Vt
YmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZN
JiB2bQogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOiB7CiAgICAgICAgICAgICAgICAg
RlBSUmVnIGZwclJlZzsKICAgICAgICAgICAgICAgICBpZiAobWFyc2hhbGxlZEZQUnMgPCB3YXNt
Q0MuZnByQXJncy5zaXplKCkpCi0gICAgICAgICAgICAgICAgICAgIGZwclJlZyA9IHdhc21DQy5m
cHJBcmdzW21hcnNoYWxsZWRGUFJzXS5mcHIoKTsKKyAgICAgICAgICAgICAgICAgICAgZnByUmVn
ID0gd2FzbUNDLmZwckFyZ3NbbWFyc2hhbGxlZEZQUnNdOwogICAgICAgICAgICAgICAgIGVsc2Ug
ewogICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBhbHJlYWR5IHNwaWxsZWQgYWxsIGFyZ3Vt
ZW50cywgdGhlc2UgcmVnaXN0ZXJzIGFyZSBhdmFpbGFibGUgYXMgc2NyYXRjaC4KICAgICAgICAg
ICAgICAgICAgICAgZnByUmVnID0gRlBSSW5mbzo6YXJndW1lbnRGUFIwOwpAQCAtMjA5LDcgKzIy
NCw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBC
aW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5k
OjpGNjQ6IHsKICAgICAgICAgICAgICAgICBGUFJSZWcgZnByUmVnOwogICAgICAgICAgICAgICAg
IGlmIChtYXJzaGFsbGVkRlBScyA8IHdhc21DQy5mcHJBcmdzLnNpemUoKSkKLSAgICAgICAgICAg
ICAgICAgICAgZnByUmVnID0gd2FzbUNDLmZwckFyZ3NbbWFyc2hhbGxlZEZQUnNdLmZwcigpOwor
ICAgICAgICAgICAgICAgICAgICBmcHJSZWcgPSB3YXNtQ0MuZnByQXJnc1ttYXJzaGFsbGVkRlBS
c107CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3Zl
IGFscmVhZHkgc3BpbGxlZCBhbGwgYXJndW1lbnRzLCB0aGVzZSByZWdpc3RlcnMgYXJlIGF2YWls
YWJsZSBhcyBzY3JhdGNoLgogICAgICAgICAgICAgICAgICAgICBmcHJSZWcgPSBGUFJJbmZvOjph
cmd1bWVudEZQUjA7CkBAIC0yMzEsMTIgKzI0NiwxNSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxl
ckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2
bQogICAgICAgICB1bnNpZ25lZCBjYWxsZWVGcmFtZU9mZnNldCA9IENhbGxGcmFtZVNsb3Q6OmZp
cnN0QXJndW1lbnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpOwogICAgICAg
ICBmb3IgKHVuc2lnbmVkIGFyZ051bSA9IDA7IGFyZ051bSA8IGFyZ0NvdW50OyArK2FyZ051bSkg
ewogICAgICAgICAgICAgaWYgKHNpZ25hdHVyZS5hcmd1bWVudChhcmdOdW0pLmlzSTY0KCkpIHsK
LSAgICAgICAgICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2UoR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKLSAgICAgICAgICAgICAgICBqaXQubG9hZDY0KGNhbGxlZUZyYW1lLndpdGhP
ZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAgICAg
ICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9C
aWdJbnQpPihHUFJJbmZvOjphcmd1bWVudEdQUjAsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Cisg
ICAgICAgICAgICAgICAgdXNpbmcgT3BlcmF0aW9uID0gZGVjbHR5cGUob3BlcmF0aW9uQ29udmVy
dFRvQmlnSW50KTsKKyAgICAgICAgICAgICAgICBjb25zdGV4cHIgR1BSUmVnIHdhc21JbnN0YW5j
ZUdQUiA9IHByZWZlcnJlZEFyZ3VtZW50R1BSPE9wZXJhdGlvbiwgMT4oKTsKKyAgICAgICAgICAg
ICAgICBjb25zdGV4cHIgSlNWYWx1ZVJlZ3MgdmFsdWVKU1IgPSBwcmVmZXJyZWRBcmd1bWVudEpT
UjxPcGVyYXRpb24sIDI+KCk7CisgICAgICAgICAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4dElu
c3RhbmNlKHdhc21JbnN0YW5jZUdQUik7CisgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShj
YWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSwgdmFsdWVKU1IpOworICAg
ICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxPcGVyYXRpb24+KHdhc21JbnN0YW5jZUdQ
UiwgdmFsdWVKU1IpOwogICAgICAgICAgICAgICAgIGF1dG8gY2FsbCA9IGppdC5jYWxsKE9wZXJh
dGlvblB0clRhZyk7CiAgICAgICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQu
ZW1pdEp1bXBJZkV4Y2VwdGlvbih2bSkpOwotICAgICAgICAgICAgICAgIGppdC5zdG9yZTY0KEdQ
UkluZm86OnJldHVyblZhbHVlR1BSLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1l
T2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoSlNSSW5mbzo6cmV0dXJu
VmFsdWVKU1IsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsKICAg
ICAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVy
KSB7CiAgICAgICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubGluayhjYWxsLCBGdW5jdGlvblB0
cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCkpOwogICAgICAgICAg
ICAgICAgIH0pOwpAQCAtMjQ4LDE2ICsyNjYsMjIgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJD
b2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0K
ICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2UoR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
ICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6YXJndW1lbnRH
UFIwLCBJbnN0YW5jZTo6b2Zmc2V0T2ZPd25lcigpKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
ICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6YXJndW1lbnRH
UFIwLCBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6Om9mZnNldE9mTW9kdWxlKCkpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApOwotICAgIGppdC5lbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIoR1BSSW5mbzo6
YXJndW1lbnRHUFIwLCBDYWxsRnJhbWVTbG90OjpjYWxsZWUpOwotCi0gICAgR1BSUmVnIGltcG9y
dEpTQ2VsbEdQUlJlZyA9IEdQUkluZm86OnJlZ1QwOyAvLyBDYWxsZWUgbmVlZHMgdG8gYmUgaW4g
cmVnVDAgZm9yIHNsb3cgcGF0aCBiZWxvdy4KKyAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgY2Fs
bGVlU2xvdCB7IEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWVTbG90OjpjYWxs
ZWUgICogc2l6ZW9mKFJlZ2lzdGVyKSB9OworICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjphcmd1
bWVudEdQUjAsIGNhbGxlZVNsb3QpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgaml0LnN0
b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIGNhbGxl
ZVNsb3Qud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgogCisgICAgLy8ganNBcmcxMCBt
aWdodCBvdmVybGFwIHdpdGggcmVnVDAsIHNvIHN0b3JlICd0aGlzJyBhcmd1bWVudCBmaXJzdAor
ICAgIGppdC5zdG9yZVZhbHVlKGpzVW5kZWZpbmVkKCksIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQo
Q2FsbEZyYW1lU2xvdDo6dGhpc0FyZ3VtZW50ICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVn
aXN0ZXIpKSksIGpzQXJnMTApOworICAgIGNvbnN0ZXhwciBHUFJSZWcgaW1wb3J0SlNDZWxsR1BS
UmVnID0gR1BSSW5mbzo6cmVnVDA7IC8vIENhbGxlZSBuZWVkcyB0byBiZSBpbiByZWdUMCBmb3Ig
c2xvdyBwYXRoIGJlbG93LgogICAgIEFTU0VSVCghd2FzbUNDLmNhbGxlZVNhdmVSZWdpc3RlcnMu
Z2V0KGltcG9ydEpTQ2VsbEdQUlJlZykpOwogICAgIG1hdGVyaWFsaXplSW1wb3J0SlNDZWxsKGpp
dCwgaW1wb3J0SW5kZXgsIGltcG9ydEpTQ2VsbEdQUlJlZyk7Ci0KLSAgICBqaXQuc3RvcmU2NChp
bXBvcnRKU0NlbGxHUFJSZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoQ2FsbEZyYW1lU2xvdDo6
Y2FsbGVlICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOworICAgIGppdC5z
dG9yZVB0cihpbXBvcnRKU0NlbGxHUFJSZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoQ2FsbEZy
YW1lU2xvdDo6Y2FsbGVlICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOwor
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoQ2FsbEZy
YW1lU2xvdDo6Y2FsbGVlICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSArIFRh
Z09mZnNldCkpOworI2VuZGlmCiAgICAgaml0LnN0b3JlMzIoSklUOjpUcnVzdGVkSW1tMzIobnVt
YmVyT2ZQYXJhbWV0ZXJzKSwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90Ojph
cmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lz
dGVyKSkgKyBQYXlsb2FkT2Zmc2V0KSk7Ci0gICAgaml0LnN0b3JlNjQoSklUOjpUcnVzdGVkSW1t
NjQoSlNWYWx1ZTo6VmFsdWVVbmRlZmluZWQpLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxG
cmFtZVNsb3Q6OnRoaXNBcmd1bWVudCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVy
KSkpKTsKIAogICAgIC8vIEZJWE1FIFRhaWwgY2FsbCBpZiB0aGUgd2FzbSByZXR1cm4gdHlwZSBp
cyB2b2lkIGFuZCBubyByZWdpc3RlcnMgd2VyZSBzcGlsbGVkLiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1NDg4CiAKQEAgLTI4MiwxMSArMzA2LDExIEBAIEV4cGVj
dGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVy
ZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDogewogICAgICAg
ICAgICAgLy8gRklYTUU6IE9wdGltaXplIEk2NCBleHRyYWN0aW9uIGZyb20gQmlnSW50LgogICAg
ICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDA1
MwotICAgICAgICAgICAgR1BSUmVnIGRlc3QgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5ncHIo
KTsKLSAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252
ZXJ0VG9JNjQpPihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgICAgICBKU1ZhbHVl
UmVncyBkZXN0ID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uanNyKCk7CisgICAgICAgICAgICBq
aXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvSTY0KT4oSlNSSW5m
bzo6cmV0dXJuVmFsdWVKU1IpOwogICAgICAgICAgICAgYXV0byBjYWxsID0gaml0LmNhbGwoT3Bl
cmF0aW9uUHRyVGFnKTsKICAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVt
aXRKdW1wSWZFeGNlcHRpb24odm0pKTsKLSAgICAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OnJl
dHVyblZhbHVlR1BSLCBkZXN0KTsKKyAgICAgICAgICAgIGppdC5tb3ZlVmFsdWVSZWdzKEpTUklu
Zm86OnJldHVyblZhbHVlSlNSLCBkZXN0KTsKIAogICAgICAgICAgICAgaml0LmFkZExpbmtUYXNr
KFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewogICAgICAgICAgICAgICAgIGxpbmtCdWZm
ZXIubGluayhjYWxsLCBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkNvbnZl
cnRUb0k2NCkpOwpAQCAtMjk2LDE4ICszMjAsMjEgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJD
b2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0K
ICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOiB7CiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6
Okp1bXBMaXN0IGRvbmU7CiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IHNsb3dQ
YXRoOwotICAgICAgICAgICAgR1BSUmVnIGRlc3QgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5n
cHIoKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIGRlc3RKU1IgPSB3YXNtQ2FsbEluZm8ucmVz
dWx0c1swXS5qc3IoKTsKIAotICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJ
Zk5vdE51bWJlcihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJz
KSk7Ci0gICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIoSlNW
YWx1ZVJlZ3MoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMp
KTsKLSAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIsIGRlc3QpOworICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5v
dE51bWJlcihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgaml0LnNjcmF0Y2hSZWdpc3RlcigpLCBE
b05vdEhhdmVUYWdSZWdpc3RlcnMpKTsKKyAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQu
YnJhbmNoSWZOb3RJbnQzMihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgRG9Ob3RIYXZlVGFnUmVn
aXN0ZXJzKSk7CisgICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKEpTUkluZm86OnJl
dHVyblZhbHVlSlNSLnBheWxvYWRHUFIoKSwgZGVzdEpTUi5wYXlsb2FkR1BSKCkpOwogICAgICAg
ICAgICAgZG9uZS5hcHBlbmQoaml0Lmp1bXAoKSk7CiAKICAgICAgICAgICAgIHNsb3dQYXRoLmxp
bmsoJmppdCk7Ci0gICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0
aW9uQ29udmVydFRvSTMyKT4oR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICAgICAg
aml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0kzMik+KEpTUklu
Zm86OnJldHVyblZhbHVlSlNSKTsKICAgICAgICAgICAgIGF1dG8gY2FsbCA9IGppdC5jYWxsKE9w
ZXJhdGlvblB0clRhZyk7CiAgICAgICAgICAgICBleGNlcHRpb25DaGVja3MuYXBwZW5kKGppdC5l
bWl0SnVtcElmRXhjZXB0aW9uKHZtKSk7Ci0gICAgICAgICAgICBqaXQubW92ZShHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CisgICAgICAgICAgICBqaXQubW92ZShKU1JJbmZvOjpyZXR1
cm5WYWx1ZUpTUi5wYXlsb2FkR1BSKCksIGRlc3RKU1IucGF5bG9hZEdQUigpKTsKKyNpZiBVU0Uo
SlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tMzIoMCksIGRlc3RKU1IudGFnR1BSKCkpOworI2VuZGlmCiAKICAgICAgICAgICAgIGppdC5h
ZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKICAgICAgICAgICAgICAg
ICBsaW5rQnVmZmVyLmxpbmsoY2FsbCwgRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVy
YXRpb25Db252ZXJ0VG9JMzIpKTsKQEAgLTMxNywyNSArMzQ0LDI5IEBAIEV4cGVjdGVkPE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRv
SlMoVk0mIHZtCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFR5
cGVLaW5kOjpGMzI6IHsKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZG9uZTsK
ICAgICAgICAgICAgIEZQUlJlZyBkZXN0ID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uZnByKCk7
CiAKLSAgICAgICAgICAgIGF1dG8gbm90QU51bWJlciA9IGppdC5icmFuY2hJZk5vdE51bWJlcihH
UFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKLSAgICAgICAg
ICAgIGF1dG8gaXNEb3VibGUgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihKU1ZhbHVlUmVncyhHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUiksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAg
ICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CisKKyAgICAgICAgICAgIGF1dG8gbm90QU51
bWJlciA9IGppdC5icmFuY2hJZk5vdE51bWJlcihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgaml0
LnNjcmF0Y2hSZWdpc3RlcigpLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworICAgICAgICAgICAg
YXV0byBpc0RvdWJsZSA9IGppdC5icmFuY2hJZk5vdEludDMyKEpTUkluZm86OnJldHVyblZhbHVl
SlNSLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwogICAgICAgICAgICAgLy8gV2UncmUgYW4gaW50
MzIKLSAgICAgICAgICAgIGppdC5zaWduRXh0ZW5kMzJUb1B0cihHUFJJbmZvOjpyZXR1cm5WYWx1
ZUdQUiwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwotICAgICAgICAgICAgaml0LmNvbnZlcnRJ
bnQ2NFRvRmxvYXQoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOworICAgICAgICAgICAg
aml0LmNvbnZlcnRJbnQzMlRvRmxvYXQoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOwog
ICAgICAgICAgICAgZG9uZS5hcHBlbmQoaml0Lmp1bXAoKSk7CiAKICAgICAgICAgICAgIGlzRG91
YmxlLmxpbmsoJmppdCk7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgICAgIGppdC5tb3Zl
KEpJVDo6VHJ1c3RlZEltbTY0KEpTVmFsdWU6Ok51bWJlclRhZyksIEdQUkluZm86OnJldHVyblZh
bHVlR1BSMik7CiAgICAgICAgICAgICBqaXQuYWRkNjQoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIy
LCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CiAgICAgICAgICAgICBqaXQubW92ZTY0VG9Eb3Vi
bGUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOworI2Vsc2UKKyAgICAgICAgICAgIGpp
dC51bmJveERvdWJsZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgZGVzdCk7CisjZW5kaWYKICAg
ICAgICAgICAgIGppdC5jb252ZXJ0RG91YmxlVG9GbG9hdChkZXN0LCBkZXN0KTsKICAgICAgICAg
ICAgIGRvbmUuYXBwZW5kKGppdC5qdW1wKCkpOwotCiAgICAgICAgICAgICBub3RBTnVtYmVyLmxp
bmsoJmppdCk7Ci0gICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0
aW9uQ29udmVydFRvRjMyKT4oR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworCisgICAgICAgICAg
ICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvRjMyKT4oSlNS
SW5mbzo6cmV0dXJuVmFsdWVKU1IpOwogICAgICAgICAgICAgYXV0byBjYWxsID0gaml0LmNhbGwo
T3BlcmF0aW9uUHRyVGFnKTsKICAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0
LmVtaXRKdW1wSWZFeGNlcHRpb24odm0pKTsKICAgICAgICAgICAgIGppdC5tb3ZlKEZQUkluZm86
OnJldHVyblZhbHVlRlBSICwgZGVzdCk7CkBAIC0zNDgsMjQgKzM3OSwyNyBAQCBFeHBlY3RlZDxN
YWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdh
c21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2Fz
ZSBUeXBlS2luZDo6RjY0OiB7Ci0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRv
bmU7CiAgICAgICAgICAgICBGUFJSZWcgZGVzdCA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmZw
cigpOworICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBkb25lOwogCi0gICAgICAg
ICAgICBhdXRvIG5vdEFOdW1iZXIgPSBqaXQuYnJhbmNoSWZOb3ROdW1iZXIoR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7Ci0gICAgICAgICAgICBhdXRvIGlz
RG91YmxlID0gaml0LmJyYW5jaElmTm90SW50MzIoSlNWYWx1ZVJlZ3MoR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIpLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworICAgICAgICAgICAgYXV0byBub3RB
TnVtYmVyID0gaml0LmJyYW5jaElmTm90TnVtYmVyKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBq
aXQuc2NyYXRjaFJlZ2lzdGVyKCksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAg
ICBhdXRvIGlzRG91YmxlID0gaml0LmJyYW5jaElmTm90SW50MzIoSlNSSW5mbzo6cmV0dXJuVmFs
dWVKU1IsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CiAgICAgICAgICAgICAvLyBXZSdyZSBhbiBp
bnQzMgotICAgICAgICAgICAgaml0LnNpZ25FeHRlbmQzMlRvUHRyKEdQUkluZm86OnJldHVyblZh
bHVlR1BSLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7Ci0gICAgICAgICAgICBqaXQuY29udmVy
dEludDY0VG9Eb3VibGUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOworICAgICAgICAg
ICAgaml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBkZXN0
KTsKICAgICAgICAgICAgIGRvbmUuYXBwZW5kKGppdC5qdW1wKCkpOwogCiAgICAgICAgICAgICBp
c0RvdWJsZS5saW5rKCZqaXQpOworICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgaml0
Lm1vdmUoSklUOjpUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6TnVtYmVyVGFnKSwgR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIyKTsKICAgICAgICAgICAgIGppdC5hZGQ2NChHUFJJbmZvOjpyZXR1cm5WYWx1
ZUdQUjIsIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKICAgICAgICAgICAgIGppdC5tb3ZlNjRU
b0RvdWJsZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CisgI2Vsc2UKKyAgICAgICAg
ICAgIGppdC51bmJveERvdWJsZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgZGVzdCk7CisgI2Vu
ZGlmCiAgICAgICAgICAgICBkb25lLmFwcGVuZChqaXQuanVtcCgpKTsKLQogICAgICAgICAgICAg
bm90QU51bWJlci5saW5rKCZqaXQpOwotICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRl
Y2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0Y2NCk+KEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsK
KworICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZl
cnRUb0Y2NCk+KEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsKICAgICAgICAgICAgIGF1dG8gY2Fs
bCA9IGppdC5jYWxsKE9wZXJhdGlvblB0clRhZyk7CiAgICAgICAgICAgICBleGNlcHRpb25DaGVj
a3MuYXBwZW5kKGppdC5lbWl0SnVtcElmRXhjZXB0aW9uKHZtKSk7CiAgICAgICAgICAgICBqaXQu
bW92ZShGUFJJbmZvOjpyZXR1cm5WYWx1ZUZQUiwgZGVzdCk7CkBAIC0zNzksNyArNDEzLDcgQEAg
RXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdG
YWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OiAgewog
ICAgICAgICAgICAgaWYgKFdhc206OmlzRnVuY3JlZihyZXR1cm5UeXBlKSB8fCBXYXNtOjppc0V4
dGVybnJlZihyZXR1cm5UeXBlKSkKLSAgICAgICAgICAgICAgICBqaXQubW92ZShHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUiwgd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uZ3ByKCkpOworICAgICAgICAg
ICAgICAgIGppdC5tb3ZlVmFsdWVSZWdzKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCB3YXNtQ2Fs
bEluZm8ucmVzdWx0c1swXS5qc3IoKSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg
ICAgLy8gRm9yIHRoZSBKYXZhU2NyaXB0IGVtYmVkZGluZywgaW1wb3J0cyB3aXRoIHRoZXNlIHR5
cGVzIGluIHRoZWlyIHNpZ25hdHVyZSByZXR1cm4gYXJlIGEgV2ViQXNzZW1ibHkuTW9kdWxlIHZh
bGlkYXRpb24gZXJyb3IuCiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKQEAgLTM5MywxMiArNDI3LDI5IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAg
ICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uod2FzbUNvbnRleHRJbnN0YW5jZUdQ
Uik7CiAgICAgICAgIH0KIAotICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3Bl
cmF0aW9uSXRlcmF0ZVJlc3VsdHMpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCAmc2lnbmF0dXJl
LCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdp
c3RlciwgQ0NhbGxIZWxwZXJzOjpmcmFtZVBvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIGNvbnN0
ZXhwciBHUFJSZWcgc2F2ZWRSZXN1bHRzR1BSID0gcHJlZmVycmVkQXJndW1lbnRHUFI8ZGVjbHR5
cGUob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMpLCA0PigpOworICAgICAgICBqaXQubW92ZShDQ2Fs
bEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJlc3VsdHNHUFIpOworICAgICAg
ICBpZiBjb25zdGV4cHIgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICAg
ICAgaml0LnN1YlB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZv
clNsb3dQYXRoQ2FsbCksIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAg
ICAgICBzdGF0aWNfYXNzZXJ0KG5vT3ZlcmxhcChzYXZlZFJlc3VsdHNHUFIsIEpTUkluZm86OnJl
dHVyblZhbHVlSlNSKSk7CisgICAgICAgIEFTU0VSVCh3YXNtQ29udGV4dEluc3RhbmNlR1BSICE9
IHNhdmVkUmVzdWx0c0dQUik7CisgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShv
cGVyYXRpb25JdGVyYXRlUmVzdWx0cyk+KHdhc21Db250ZXh0SW5zdGFuY2VHUFIsIENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbVB0cigmc2lnbmF0dXJlKSwgSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1Is
IHNhdmVkUmVzdWx0c0dQUiwgQ0NhbGxIZWxwZXJzOjpmcmFtZVBvaW50ZXJSZWdpc3Rlcik7CiAg
ICAgICAgIGppdC5jYWxsT3BlcmF0aW9uKEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3Bl
cmF0aW9uSXRlcmF0ZVJlc3VsdHMpKTsKKyAgICAgICAgaWYgY29uc3RleHByIChtYXhGcmFtZUV4
dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGppdC5hZGRQdHIoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBDQ2FsbEhlbHBl
cnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKwogICAgICAgICBleGNlcHRpb25DaGVja3MuYXBw
ZW5kKGppdC5lbWl0SnVtcElmRXhjZXB0aW9uKHZtKSk7CiAKLSAgICAgICAgZm9yIChSZWdpc3Rl
ckF0T2Zmc2V0IGxvY2F0aW9uIDogc2F2ZWRSZXN1bHRSZWdpc3RlcnMpCi0gICAgICAgICAgICBq
aXQubG9hZDY0VG9SZWcoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQ
b2ludGVyUmVnaXN0ZXIsIGxvY2F0aW9uLm9mZnNldCgpKSwgbG9jYXRpb24ucmVnKCkpOworICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2lnbmF0dXJlLnJldHVybkNvdW50KCk7ICsr
aSkgeworICAgICAgICAgICAgVmFsdWVMb2NhdGlvbiBsb2MgPSB3YXNtQ2FsbEluZm8ucmVzdWx0
c1tpXTsKKyAgICAgICAgICAgIGlmIChsb2MuaXNHUFIoKSkgeworI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgICAgICAgICAgICAgQVNTRVJUKHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9j
LmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpICsgNCA9PSBzYXZlZFJlc3VsdFJlZ2lzdGVy
cy5maW5kKGxvYy5qc3IoKS50YWdHUFIoKSktPm9mZnNldCgpKTsKKyNlbmRpZgorICAgICAgICAg
ICAgICAgIGppdC5sb2FkVmFsdWUoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigp
LnBheWxvYWRHUFIoKSktPm9mZnNldCgpKSwgbG9jLmpzcigpKTsKKyAgICAgICAgICAgIH0gZWxz
ZSBpZiAobG9jLmlzRlBSKCkpCisgICAgICAgICAgICAgICAgaml0LmxvYWREb3VibGUoQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVk
UmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmZwcigpKS0+b2Zmc2V0KCkpLCBsb2MuZnByKCkpOwor
ICAgICAgICB9CiAgICAgfQogCiAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9u
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24u
Y3BwCmluZGV4IGM3ODczNzNmN2M5Mi4uMDU3OTM3NjMzMjY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcApAQCAtMTU3
LDYgKzE1Nyw5IEBAIHB0cmRpZmZfdCBXZWJBc3NlbWJseUZ1bmN0aW9uOjpwcmV2aW91c0luc3Rh
bmNlT2Zmc2V0KCkgY29uc3QKIHsKICAgICBwdHJkaWZmX3QgcmVzdWx0ID0gY2FsbGVlU2F2ZXMo
KS5udW1iZXJPZlNldFJlZ2lzdGVycygpICogc2l6ZW9mKENQVVJlZ2lzdGVyKTsKICAgICByZXN1
bHQgPSAtcmVzdWx0IC0gc2l6ZW9mKENQVVJlZ2lzdGVyKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0
KQorICAgIEFTU0VSVChjYWxsZWVTYXZlcygpLm51bWJlck9mU2V0RlBScygpID09IDApOyAvLyBC
ZWNhdXNlIEZQUnMgYXJlIHdpZGVyIHRoYW4gc2l6ZW9mKENQVVJlZ2lzdGVyKQorI2VuZGlmCiAj
aWYgQVNTRVJUX0VOQUJMRUQKICAgICBwdHJkaWZmX3QgbWluT2Zmc2V0ID0gMTsKICAgICBmb3Ig
KGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXQmIHJlZ0F0T2Zmc2V0IDogdXNlZENhbGxlZVNhdmVSZWdp
c3RlcnMoKSkgewpAQCAtMTg1LDE3ICsxODgsMTUgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpT
RW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkK
ICAgICBjb25zdCBhdXRvJiBwaW5uZWRSZWdzID0gV2FzbTo6UGlubmVkUmVnaXN0ZXJJbmZvOjpn
ZXQoKTsKICAgICBSZWdpc3RlckF0T2Zmc2V0TGlzdCByZWdpc3RlcnNUb1NwaWxsID0gdXNlZENh
bGxlZVNhdmVSZWdpc3RlcnMoKTsKIAotICAgIGF1dG8mIG1vZHVsZUluZm9ybWF0aW9uID0gaW5z
dGFuY2UoKS0+aW5zdGFuY2UoKS5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpOwotCiAgICAg
Y29uc3QgV2FzbTo6V2FzbUNhbGxpbmdDb252ZW50aW9uJiB3YXNtQ0MgPSBXYXNtOjp3YXNtQ2Fs
bGluZ0NvbnZlbnRpb24oKTsKICAgICBXYXNtOjpDYWxsSW5mb3JtYXRpb24gd2FzbUNhbGxJbmZv
ID0gd2FzbUNDLmNhbGxJbmZvcm1hdGlvbkZvcihzaWduYXR1cmUpOwogICAgIFdhc206OkNhbGxJ
bmZvcm1hdGlvbiBqc0NhbGxJbmZvID0gV2FzbTo6anNDYWxsaW5nQ29udmVudGlvbigpLmNhbGxJ
bmZvcm1hdGlvbkZvcihzaWduYXR1cmUsIFdhc206OkNhbGxSb2xlOjpDYWxsZWUpOwogICAgIFJl
Z2lzdGVyQXRPZmZzZXRMaXN0IHNhdmVkUmVzdWx0UmVnaXN0ZXJzID0gd2FzbUNhbGxJbmZvLmNv
bXB1dGVSZXN1bHRzT2Zmc2V0TGlzdCgpOwogCi0gICAgdW5zaWduZWQgdG90YWxGcmFtZVNpemUg
PSByZWdpc3RlcnNUb1NwaWxsLnNpemUoKSAqIHNpemVvZihDUFVSZWdpc3Rlcik7CisgICAgdW5z
aWduZWQgdG90YWxGcmFtZVNpemUgPSByZWdpc3RlcnNUb1NwaWxsLnNpemVPZkFyZWFJbkJ5dGVz
KCk7CiAgICAgdG90YWxGcmFtZVNpemUgKz0gc2l6ZW9mKENQVVJlZ2lzdGVyKTsgLy8gU2xvdCBm
b3IgdGhlIFZNJ3MgcHJldmlvdXMgd2FzbSBpbnN0YW5jZS4KICAgICB0b3RhbEZyYW1lU2l6ZSAr
PSB3YXNtQ2FsbEluZm8uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzOwotICAgIHRv
dGFsRnJhbWVTaXplICs9IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLnNpemUoKSAqIHNpemVvZihDUFVS
ZWdpc3Rlcik7CisgICAgdG90YWxGcmFtZVNpemUgKz0gc2F2ZWRSZXN1bHRSZWdpc3RlcnMuc2l6
ZU9mQXJlYUluQnl0ZXMoKTsKIAogICAgIC8vIEZJWE1FOiBPcHRpbWl6ZSBXYXNtIGZ1bmN0aW9u
IGNhbGwgZXZlbiBpZiBhcmd1bWVudHMgaW5jbHVkZSBJNjQuCiAgICAgLy8gVGhpcyByZXF1aXJl
cyBJNjQgZXh0cmFjdGlvbiBmcm9tIEJpZ0ludC4KQEAgLTIxNSw5ICsyMTYsMTQgQEAgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2Fs
bEVudHJ5cG9pbnRTbG93KCkKICAgICAgICAgaml0LnN0b3JlUHRyKHJlZywgQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBvZmZzZXQpKTsKICAgICB9CiAK
LSAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IFdhc206Ondhc21DYWxsaW5nQ29udmVudGlvbigpLnBy
b2xvZ3VlU2NyYXRjaEdQUnNbMV07Ci0gICAgYm9vbCBzdGFja0xpbWl0R1BSSXNDbG9iYmVyZWQg
PSBmYWxzZTsKKyAgICBKU1ZhbHVlUmVncyBzY3JhdGNoSlNSIHsKKyNpZiBVU0UoSlNWQUxVRTMy
XzY0KQorICAgICAgICBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0
Y2hHUFJzWzJdLAorI2VuZGlmCisgICAgICAgIFdhc206Ondhc21DYWxsaW5nQ29udmVudGlvbigp
LnByb2xvZ3VlU2NyYXRjaEdQUnNbMV0KKyAgICB9OwogICAgIEdQUlJlZyBzdGFja0xpbWl0R1BS
ID0gV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1swXTsK
KyAgICBib29sIHN0YWNrTGltaXRHUFJJc0Nsb2JiZXJlZCA9IGZhbHNlOwogICAgIGppdC5sb2Fk
UHRyKHZtLmFkZHJlc3NPZlNvZnRTdGFja0xpbWl0KCksIHN0YWNrTGltaXRHUFIpOwogCiAgICAg
Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBzbG93UGF0aDsKQEAgLTIzNiw3ICsyNDIsNyBAQCBNYWNy
b0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anND
YWxsRW50cnlwb2ludFNsb3coKQogICAgICAgICBqaXQuZW1pdE1hdGVyaWFsaXplVGFnQ2hlY2tS
ZWdpc3RlcnMoKTsKIAogICAgIC8vIExvb3AgYmFja3dhcmRzIHNvIHdlIGNhbiB1c2UgdGhlIGZp
cnN0IGZsb2F0aW5nIHBvaW50IGFyZ3VtZW50IGFzIGEgc2NyYXRjaC4KLSAgICBGUFJSZWcgc2Ny
YXRjaEZQUiA9IFdhc206Ondhc21DYWxsaW5nQ29udmVudGlvbigpLmZwckFyZ3NbMF0uZnByKCk7
CisgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5m
cHJBcmdzWzBdOwogICAgIGZvciAodW5zaWduZWQgaSA9IHNpZ25hdHVyZS5hcmd1bWVudENvdW50
KCk7IGktLTspIHsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGNhbGxlZUZyYW1lID0g
Q0NhbGxIZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rl
ciwgMCk7CiAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBqc1BhcmFtKEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyLCBqc0NhbGxJbmZvLnBhcmFtc1tpXS5vZmZzZXRGcm9tRlAoKSk7CkBA
IC0yNDUsMTIgKzI1MSwyMCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4g
V2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgICAgICBhdXRv
IHR5cGUgPSBzaWduYXR1cmUuYXJndW1lbnQoaSk7CiAgICAgICAgIHN3aXRjaCAodHlwZS5raW5k
KSB7CiAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkkzMjogewotICAgICAgICAgICAgaml0
LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVu
ZChqaXQuYnJhbmNoSWZOb3RJbnQzMihzY3JhdGNoR1BSKSk7Ci0gICAgICAgICAgICBpZiAoaXNT
dGFjaykKLSAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihzY3JhdGNoR1BSLCBjYWxsZWVGcmFt
ZS53aXRoT2Zmc2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKLSAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKHNj
cmF0Y2hHUFIsIHdhc21DYWxsSW5mby5wYXJhbXNbaV0uZ3ByKCkpOworICAgICAgICAgICAgaml0
LmxvYWRWYWx1ZShqc1BhcmFtLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAgIHNsb3dQYXRoLmFw
cGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMihzY3JhdGNoSlNSKSk7CisgICAgICAgICAgICBpZiAo
aXNTdGFjaykgeworICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBhZGRyIHsg
Y2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21T
UCgpKSB9OworICAgICAgICAgICAgICAgIGppdC5zdG9yZTMyKHNjcmF0Y2hKU1IucGF5bG9hZEdQ
UigpLCBhZGRyLndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOworI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgICAgICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
MzIoMCksIGFkZHIud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgorICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKHNjcmF0Y2hK
U1IucGF5bG9hZEdQUigpLCB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmpzcigpLnBheWxvYWRHUFIo
KSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSwgd2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5qc3IoKS50
YWdHUFIoKSk7CisjZW5kaWYKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OlJlZjoKQEAgLTI1OSwyNyArMjcz
LDI3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1
bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtp
bmQ6OkV4dGVybnJlZjogewogICAgICAgICAgICAgaWYgKCFXYXNtOjppc0V4dGVybnJlZih0eXBl
KSkgewogICAgICAgICAgICAgICAgIC8vIEVuc3VyZSB3ZSBoYXZlIGEgV0FTTSBleHBvcnRlZCBm
dW5jdGlvbi4KLSAgICAgICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIp
OwotICAgICAgICAgICAgICAgIGF1dG8gaXNOdWxsID0gaml0LmJyYW5jaElmTnVsbChzY3JhdGNo
R1BSKTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpzUGFyYW0sIHNjcmF0Y2hKU1Ip
OworICAgICAgICAgICAgICAgIGF1dG8gaXNOdWxsID0gaml0LmJyYW5jaElmTnVsbChzY3JhdGNo
SlNSKTsKICAgICAgICAgICAgICAgICBpZiAoIXR5cGUuaXNOdWxsYWJsZSgpKQogICAgICAgICAg
ICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaXNOdWxsKTsKLSAgICAgICAgICAgICAgICBzbG93
UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90Q2VsbChzY3JhdGNoR1BSKSk7CisgICAgICAgICAg
ICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdENlbGwoc2NyYXRjaEpTUikpOwog
CiAgICAgICAgICAgICAgICAgc3RhY2tMaW1pdEdQUklzQ2xvYmJlcmVkID0gdHJ1ZTsKLSAgICAg
ICAgICAgICAgICBqaXQuZW1pdExvYWRTdHJ1Y3R1cmUodm0sIHNjcmF0Y2hHUFIsIHNjcmF0Y2hH
UFIpOwotICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhz
Y3JhdGNoR1BSLCBTdHJ1Y3R1cmU6OmNsYXNzSW5mb09mZnNldCgpKSwgc2NyYXRjaEdQUik7Cisg
ICAgICAgICAgICAgICAgaml0LmVtaXRMb2FkU3RydWN0dXJlKHZtLCBzY3JhdGNoSlNSLnBheWxv
YWRHUFIoKSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgICAgIGppdC5s
b2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgU3Ry
dWN0dXJlOjpjbGFzc0luZm9PZmZzZXQoKSksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKIAog
ICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxXZWJBc3NlbWJseUZ1
bmN0aW9uPjo6dmFsdWUsICJXZSBkbyBub3QgY2hlY2sgZm9yIHN1YnR5cGVzIGJlbG93Iik7CiAg
ICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPFdlYkFzc2VtYmx5V3Jh
cHBlckZ1bmN0aW9uPjo6dmFsdWUsICJXZSBkbyBub3QgY2hlY2sgZm9yIHN1YnR5cGVzIGJlbG93
Iik7CiAKLSAgICAgICAgICAgICAgICBhdXRvIGlzV2FzbUZ1bmN0aW9uID0gaml0LmJyYW5jaFB0
cihDQ2FsbEhlbHBlcnM6OkVxdWFsLCBzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW1QdHIoV2ViQXNzZW1ibHlGdW5jdGlvbjo6aW5mbygpKSk7Ci0gICAgICAgICAgICAgICAgc2xv
d1BhdGguYXBwZW5kKGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRj
aEdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0
aW9uOjppbmZvKCkpKSk7CisgICAgICAgICAgICAgICAgYXV0byBpc1dhc21GdW5jdGlvbiA9IGpp
dC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCks
IENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihXZWJBc3NlbWJseUZ1bmN0aW9uOjppbmZvKCkp
KTsKKyAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaFB0cihDQ2FsbEhl
bHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tUHRyKFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uOjppbmZvKCkpKSk7CiAKICAg
ICAgICAgICAgICAgICBpc1dhc21GdW5jdGlvbi5saW5rKCZqaXQpOwogICAgICAgICAgICAgICAg
IGlmIChXYXNtOjppc1JlZldpdGhUeXBlSW5kZXgodHlwZSkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAgICAgICAg
aml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFdlYkFzc2VtYmx5
RnVuY3Rpb25CYXNlOjpvZmZzZXRPZlNpZ25hdHVyZUluZGV4KCkpLCBzY3JhdGNoR1BSKTsKLSAg
ICAgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hQdHIoQ0NhbGxIZWxw
ZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHR5
cGUuaW5kZXgpKSk7CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKGpzUGFyYW0sIHNj
cmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRQdHIo
Q0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBXZWJBc3NlbWJs
eUZ1bmN0aW9uQmFzZTo6b2Zmc2V0T2ZTaWduYXR1cmVJbmRleCgpKSwgc2NyYXRjaEpTUi5wYXls
b2FkR1BSKCkpOworICAgICAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5j
aFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHR5cGUuaW5kZXgpKSk7CiAgICAgICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICAgICAgaWYgKHR5cGUuaXNOdWxsYWJsZSgpKQpAQCAtMjg3LDE1ICsz
MDEsMTUgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5
RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgaWYgKGlzU3RhY2spIHsKLSAgICAgICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0s
IHNjcmF0Y2hHUFIpOworICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQYXJhbSwgc2Ny
YXRjaEpTUik7CiAgICAgICAgICAgICAgICAgaWYgKCF0eXBlLmlzTnVsbGFibGUoKSkKLSAgICAg
ICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk51bGwoc2NyYXRjaEdQ
UikpOwotICAgICAgICAgICAgICAgIGppdC5zdG9yZTY0KHNjcmF0Y2hHUFIsIGNhbGxlZUZyYW1l
LndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkpOworICAg
ICAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTnVsbChzY3JhdGNo
SlNSKSk7CisgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoc2NyYXRjaEpTUiwgY2FsbGVl
RnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSk7
CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGF1dG8gZXh0ZXJuR1BSID0g
d2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5ncHIoKTsKLSAgICAgICAgICAgICAgICBqaXQubG9hZDY0
KGpzUGFyYW0sIGV4dGVybkdQUik7CisgICAgICAgICAgICAgICAgYXV0byBleHRlcm5KU1IgPSB3
YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmpzcigpOworICAgICAgICAgICAgICAgIGppdC5sb2FkVmFs
dWUoanNQYXJhbSwgZXh0ZXJuSlNSKTsKICAgICAgICAgICAgICAgICBpZiAoIXR5cGUuaXNOdWxs
YWJsZSgpKQotICAgICAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElm
TnVsbChleHRlcm5HUFIpKTsKKyAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGpp
dC5icmFuY2hJZk51bGwoZXh0ZXJuSlNSKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQpAQCAtMzAzLDM1ICszMTcsNDIgQEAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRT
bG93KCkKICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RjY0OiB7CiAgICAgICAgICAgICBp
ZiAoIWlzU3RhY2spCiAgICAgICAgICAgICAgICAgc2NyYXRjaEZQUiA9IHdhc21DYWxsSW5mby5w
YXJhbXNbaV0uZnByKCk7Ci0gICAgICAgICAgICBhdXRvIG1vdmVUb0Rlc3RpbmF0aW9uID0gWyZd
ICgpIHsKLSAgICAgICAgICAgICAgICBpZiAoaXNTdGFjaykgewotICAgICAgICAgICAgICAgICAg
ICBpZiAoc2lnbmF0dXJlLmFyZ3VtZW50KGkpLmlzRjMyKCkpCi0gICAgICAgICAgICAgICAgICAg
ICAgICBqaXQuc3RvcmVGbG9hdChzY3JhdGNoRlBSLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdh
c21DYWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKLSAgICAgICAgICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlRG91YmxlKHNjcmF0Y2hG
UFIsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5vZmZzZXRG
cm9tU1AoKSkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH07Ci0KLSAgICAgICAg
ICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAgICBzbG93UGF0
aC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKHNjcmF0Y2hHUFIpKTsKLSAgICAgICAgICAg
IGF1dG8gaXNJbnQzMiA9IGppdC5icmFuY2hJZkludDMyKHNjcmF0Y2hHUFIpOworICAgICAgICAg
ICAgaml0LmxvYWRWYWx1ZShqc1BhcmFtLCBzY3JhdGNoSlNSKTsKKyNpZiBVU0UoSlNWQUxVRTY0
KQorICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihzY3Jh
dGNoSlNSLCBJbnZhbGlkR1BSUmVnKSk7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAg
ICAgICAgc3RhY2tMaW1pdEdQUklzQ2xvYmJlcmVkID0gdHJ1ZTsKKyAgICAgICAgICAgIHNsb3dQ
YXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIoc2NyYXRjaEpTUiwgc3RhY2tMaW1pdEdQ
UikpOworI2VuZGlmCisgICAgICAgICAgICBhdXRvIGlzSW50MzIgPSBqaXQuYnJhbmNoSWZJbnQz
MihzY3JhdGNoSlNSKTsKIAotICAgICAgICAgICAgaml0LnVuYm94RG91YmxlKHNjcmF0Y2hHUFIs
IHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgICAg
ICBqaXQudW5ib3hEb3VibGUoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hKU1IucGF5
bG9hZEdQUigpLCBzY3JhdGNoRlBSKTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAg
ICAgICBqaXQudW5ib3hEb3VibGUoc2NyYXRjaEpTUiwgc2NyYXRjaEZQUik7CisjZW5kaWYKICAg
ICAgICAgICAgIGlmIChzaWduYXR1cmUuYXJndW1lbnQoaSkuaXNGMzIoKSkKICAgICAgICAgICAg
ICAgICBqaXQuY29udmVydERvdWJsZVRvRmxvYXQoc2NyYXRjaEZQUiwgc2NyYXRjaEZQUik7Ci0g
ICAgICAgICAgICBtb3ZlVG9EZXN0aW5hdGlvbigpOwogICAgICAgICAgICAgYXV0byBkb25lID0g
aml0Lmp1bXAoKTsKIAogICAgICAgICAgICAgaXNJbnQzMi5saW5rKCZqaXQpOwogICAgICAgICAg
ICAgaWYgKHNpZ25hdHVyZS5hcmd1bWVudChpKS5pc0YzMigpKSB7Ci0gICAgICAgICAgICAgICAg
aml0LmNvbnZlcnRJbnQzMlRvRmxvYXQoc2NyYXRjaEdQUiwgc2NyYXRjaEZQUik7Ci0gICAgICAg
ICAgICAgICAgbW92ZVRvRGVzdGluYXRpb24oKTsKKyAgICAgICAgICAgICAgICBqaXQuY29udmVy
dEludDMyVG9GbG9hdChzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgc2NyYXRjaEZQUik7CiAgICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0RvdWJs
ZShzY3JhdGNoR1BSLCBzY3JhdGNoRlBSKTsKLSAgICAgICAgICAgICAgICBtb3ZlVG9EZXN0aW5h
dGlvbigpOworICAgICAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShzY3JhdGNo
SlNSLnBheWxvYWRHUFIoKSwgc2NyYXRjaEZQUik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBkb25lLmxpbmsoJmppdCk7CiAKKyAgICAgICAgICAgIGRvbmUubGluaygmaml0KTsKKyAgICAg
ICAgICAgIGlmIChpc1N0YWNrKSB7CisgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzIGFkZHIgeyBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0u
b2Zmc2V0RnJvbVNQKCkpIH07CisgICAgICAgICAgICAgICAgaWYgKHNpZ25hdHVyZS5hcmd1bWVu
dChpKS5pc0YzMigpKSB7CisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZUZsb2F0KHNjcmF0
Y2hGUFIsIGFkZHIud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSk7CisjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoMCksIGFkZHIud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgorICAgICAg
ICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVEb3VibGUoc2Ny
YXRjaEZQUiwgYWRkcik7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBkZWZhdWx0OgpAQCAtMzQyLDQyICszNjMsNDQgQEAgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5
cG9pbnRTbG93KCkKICAgICAvLyBBdCB0aGlzIHBvaW50LCB3ZSdyZSBjb21taXR0ZWQgdG8gZG9p
bmcgYSBmYXN0IGNhbGwuCiAKICAgICBpZiAoV2FzbTo6Q29udGV4dDo6dXNlRmFzdFRMUygpKSAK
LSAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHNjcmF0Y2hHUFIpOworICAgICAg
ICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOwog
ICAgIGVsc2UKLSAgICAgICAgaml0LmxvYWRQdHIodm0ud2FzbUNvbnRleHQucG9pbnRlclRvSW5z
dGFuY2UoKSwgc2NyYXRjaEdQUik7CisgICAgICAgIGppdC5sb2FkUHRyKHZtLndhc21Db250ZXh0
LnBvaW50ZXJUb0luc3RhbmNlKCksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKICAgICBwdHJk
aWZmX3QgcHJldmlvdXNJbnN0YW5jZU9mZnNldCA9IHRoaXMtPnByZXZpb3VzSW5zdGFuY2VPZmZz
ZXQoKTsKLSAgICBqaXQuc3RvcmVQdHIoc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBwcmV2aW91c0luc3RhbmNlT2Zmc2V0KSk7Cisg
ICAgaml0LnN0b3JlUHRyKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OkFk
ZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHByZXZpb3VzSW5zdGFuY2VPZmZzZXQp
KTsKIAotICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigmaW5zdGFuY2Uo
KS0+aW5zdGFuY2UoKSksIHNjcmF0Y2hHUFIpOworICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbVB0cigmaW5zdGFuY2UoKS0+aW5zdGFuY2UoKSksIHNjcmF0Y2hKU1IucGF5bG9h
ZEdQUigpKTsKICAgICBpZiAoV2FzbTo6Q29udGV4dDo6dXNlRmFzdFRMUygpKSAKLSAgICAgICAg
aml0LnN0b3JlV2FzbUNvbnRleHRJbnN0YW5jZShzY3JhdGNoR1BSKTsKKyAgICAgICAgaml0LnN0
b3JlV2FzbUNvbnRleHRJbnN0YW5jZShzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAgICAgZWxz
ZSB7Ci0gICAgICAgIGppdC5tb3ZlKHNjcmF0Y2hHUFIsIHBpbm5lZFJlZ3Mud2FzbUNvbnRleHRJ
bnN0YW5jZVBvaW50ZXIpOwotICAgICAgICBqaXQuc3RvcmVQdHIoc2NyYXRjaEdQUiwgdm0ud2Fz
bUNvbnRleHQucG9pbnRlclRvSW5zdGFuY2UoKSk7CisgICAgICAgIGppdC5tb3ZlKHNjcmF0Y2hK
U1IucGF5bG9hZEdQUigpLCBwaW5uZWRSZWdzLndhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyKTsK
KyAgICAgICAgaml0LnN0b3JlUHRyKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCB2bS53YXNtQ29u
dGV4dC5wb2ludGVyVG9JbnN0YW5jZSgpKTsKICAgICB9CiAgICAgaWYgKHN0YWNrTGltaXRHUFJJ
c0Nsb2JiZXJlZCkKICAgICAgICAgaml0LmxvYWRQdHIodm0uYWRkcmVzc09mU29mdFN0YWNrTGlt
aXQoKSwgc3RhY2tMaW1pdEdQUik7Ci0gICAgaml0LnN0b3JlUHRyKHN0YWNrTGltaXRHUFIsIEND
YWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZD
YWNoZWRTdGFja0xpbWl0KCkpKTsKKyAgICBqaXQuc3RvcmVQdHIoc3RhY2tMaW1pdEdQUiwgQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBXYXNtOjpJbnN0YW5j
ZTo6b2Zmc2V0T2ZDYWNoZWRTdGFja0xpbWl0KCkpKTsKIAotICAgIGlmICghIW1vZHVsZUluZm9y
bWF0aW9uLm1lbW9yeSkgeworI2lmICFDUFUoQVJNKSAvLyBBUk0gaGFzIG5vIHBpbm5lZCByZWdp
c3RlcnMgZm9yIFdhc20gTWVtb3J5LCBzbyBubyBuZWVkIHRvIHNldCB0aGVtIHVwCisgICAgaWYg
KCEhaW5zdGFuY2UoKS0+aW5zdGFuY2UoKS5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpLm1l
bW9yeSkgewogICAgICAgICBHUFJSZWcgYmFzZU1lbW9yeSA9IHBpbm5lZFJlZ3MuYmFzZU1lbW9y
eVBvaW50ZXI7CiAgICAgICAgIEdQUlJlZyBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUgPSBJ
bnZhbGlkR1BSUmVnOwogICAgICAgICBhdXRvIG1vZGUgPSBpbnN0YW5jZSgpLT5tZW1vcnlNb2Rl
KCk7CiAKICAgICAgICAgaWYgKGlzQVJNNjRFKCkpIHsKLSAgICAgICAgICAgIGlmIChtb2RlICE9
IFdhc206Ok1lbW9yeU1vZGU6OlNpZ25hbGluZykKKyAgICAgICAgICAgIGlmIChtb2RlID09IFdh
c206Ok1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nKQogICAgICAgICAgICAgICAgIHNjcmF0Y2hP
ckJvdW5kc0NoZWNraW5nU2l6ZSA9IHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0
ZXI7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgc2NyYXRjaE9yQm91bmRzQ2hl
Y2tpbmdTaXplID0gc3RhY2tMaW1pdEdQUjsKLSAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxs
SGVscGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNo
ZWRCb3VuZHNDaGVja2luZ1NpemUoKSksIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSk7Cisg
ICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5w
YXlsb2FkR1BSKCksIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZEJvdW5kc0NoZWNraW5n
U2l6ZSgpKSwgc2NyYXRjaE9yQm91bmRzQ2hlY2tpbmdTaXplKTsKICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgIGlmIChtb2RlICE9IFdhc206Ok1lbW9yeU1vZGU6OlNpZ25hbGluZykKLSAg
ICAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQ
UiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKCkpLCBw
aW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGlmICht
b2RlID09IFdhc206Ok1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nKQorICAgICAgICAgICAgICAg
IGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoSlNSLnBheWxvYWRHUFIo
KSwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKCkpLCBw
aW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyKTsKICAgICAgICAgfQogCi0gICAg
ICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBXYXNtOjpJ
bnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnkoKSksIGJhc2VNZW1vcnkpOwotICAgICAgICBq
aXQuY2FnZUNvbmRpdGlvbmFsbHlBbmRVbnRhZyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVt
b3J5LCBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUsIHNjcmF0Y2hHUFIpOworICAgICAgICBq
aXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCks
IFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7Cisg
ICAgICAgIGppdC5jYWdlQ29uZGl0aW9uYWxseUFuZFVudGFnKEdpZ2FjYWdlOjpQcmltaXRpdmUs
IGJhc2VNZW1vcnksIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSwgc2NyYXRjaEpTUi5wYXls
b2FkR1BSKCkpOwogICAgIH0KKyNlbmRpZgogCiAgICAgLy8gV2UgdXNlIHRoaXMgY2FsbGVlIHRv
IGluZGljYXRlIGhvdyB0byB1bndpbmQgcGFzdCB0aGVzZSB0eXBlcyBvZiBmcmFtZXM6CiAgICAg
Ly8gMS4gV2UgbmVlZCB0byBrbm93IHdoZXJlIHRvIGdldCBjYWxsZWUgc2F2ZXMuCkBAIC0zODks
OCArNDEyLDggQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2Vt
Ymx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAvLyBGSVhNRTogQ3VycmVu
dGx5IHdlIGp1c3QgZG8gYW4gaW5kaXJlY3QganVtcC4gQnV0IHdlIHNob3VsZCB0ZWFjaCB0aGUg
TW9kdWxlCiAgICAgLy8gaG93IHRvIHJlcGF0Y2ggdXM6CiAgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjU3MAotICAgIGppdC5sb2FkUHRyKGVudHJ5cG9p
bnRMb2FkTG9jYXRpb24oKSwgc2NyYXRjaEdQUik7Ci0gICAgaml0LmNhbGwoc2NyYXRjaEdQUiwg
V2FzbUVudHJ5UHRyVGFnKTsKKyAgICBqaXQubG9hZFB0cihlbnRyeXBvaW50TG9hZExvY2F0aW9u
KCksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICBqaXQuY2FsbChzY3JhdGNoSlNSLnBh
eWxvYWRHUFIoKSwgV2FzbUVudHJ5UHRyVGFnKTsKIAogICAgIG1hcnNoYWxsSlNSZXN1bHQoaml0
LCBzaWduYXR1cmUsIHdhc21DYWxsSW5mbywgc2F2ZWRSZXN1bHRSZWdpc3RlcnMpOwogCkBAIC00
MjAsNyArNDQzLDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFz
c2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICBqaXQubW92ZShDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIodGhpcyksIEdQUkluZm86OnJlZ1QwKTsKICAgICBqaXQu
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICNpZiBDUFUoQVJNNjRFKQotICAgIGppdC51bnRhZ1Jl
dHVybkFkZHJlc3Moc2NyYXRjaEdQUik7CisgICAgaml0LnVudGFnUmV0dXJuQWRkcmVzcyhzY3Jh
dGNoSlNSLnBheWxvYWRHUFIoKSk7CiAjZW5kaWYKICAgICBhdXRvIGp1bXBUb0hvc3RDYWxsVGh1
bmsgPSBqaXQuanVtcCgpOwogCkBAIC00MjgsNyArNDUxLDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRT
bG93KCkKICAgICBpZiAoVU5MSUtFTFkobGlua0J1ZmZlci5kaWRGYWlsVG9BbGxvY2F0ZSgpKSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBsaW5rQnVmZmVyLmxpbmsoanVtcFRvSG9z
dENhbGxUaHVuaywgQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4oZXhlY3V0YWJsZSgp
LT5lbnRyeXBvaW50Rm9yKENvZGVGb3JDYWxsLCBNdXN0Q2hlY2tBcml0eSkuZXhlY3V0YWJsZUFk
ZHJlc3MoKSkpOworICAgIGxpbmtCdWZmZXIubGluayhqdW1wVG9Ib3N0Q2FsbFRodW5rLCBDb2Rl
TG9jYXRpb25MYWJlbDxKU0VudHJ5UHRyVGFnPihleGVjdXRhYmxlKCktPmVudHJ5cG9pbnRGb3Io
Q29kZUZvckNhbGwsIE11c3RDaGVja0FyaXR5KSkpOwogICAgIG1fanNDYWxsRW50cnlwb2ludCA9
IEZJTkFMSVpFX1dBU01fQ09ERShsaW5rQnVmZmVyLCBXYXNtRW50cnlQdHJUYWcsICJKUy0+V2Fz
bSBJQyIpOwogICAgIHJldHVybiBtX2pzQ2FsbEVudHJ5cG9pbnQuY29kZSgpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25z
dHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUds
b2JhbENvbnN0cnVjdG9yLmNwcAppbmRleCAwYjk2MzFlYTU0NjUuLjU2NTczMjA2NWEzYyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAKQEAgLTE1OCw3ICsxNTgsNyBAQCBKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJseUdsb2JhbCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYgogICAgIFJlZjxXYXNtOjpHbG9iYWw+IHdhc21HbG9iYWwgPSBXYXNtOjpH
bG9iYWw6OmNyZWF0ZSh0eXBlLCBtdXRhYmlsaXR5LCBpbml0aWFsVmFsdWUpOwogICAgIEpTV2Vi
QXNzZW1ibHlHbG9iYWwqIGpzV2ViQXNzZW1ibHlHbG9iYWwgPSBKU1dlYkFzc2VtYmx5R2xvYmFs
Ojp0cnlDcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgd2ViQXNzZW1ibHlHbG9iYWxTdHJ1Y3R1cmUs
IFdURk1vdmUod2FzbUdsb2JhbCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29w
ZSwgeyB9KTsKLSAgICBlbnN1cmVTdGlsbEFsaXZlSGVyZShiaXR3aXNlX2Nhc3Q8dm9pZCo+KGlu
aXRpYWxWYWx1ZSkpOyAvLyBFbnN1cmUgdGhpcyBpcyBrZXB0IGFsaXZlIHdoaWxlIGNyZWF0aW5n
IEpTV2ViQXNzZW1ibHlHbG9iYWwuCisgICAgZW5zdXJlU3RpbGxBbGl2ZUhlcmUoaW5pdGlhbFZh
bHVlKTsgLy8gRW5zdXJlIHRoaXMgaXMga2VwdCBhbGl2ZSB3aGlsZSBjcmVhdGluZyBKU1dlYkFz
c2VtYmx5R2xvYmFsLgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNXZWJBc3NlbWJseUds
b2JhbCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAppbmRleCA3ZmE4MWU3OTczMmIuLjk5MWU3Mzgx
ZTQwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlNb2R1bGVSZWNvcmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcApAQCAtNTU0LDcgKzU1NCw3IEBAIHZvaWQgV2ViQXNz
ZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVFeHBvcnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCiAgICAgICAgICAgICAgICAgSlNXZWJBc3NlbWJseUdsb2JhbCogZ2xvYmFsVmFs
dWUgPSBKU1dlYkFzc2VtYmx5R2xvYmFsOjp0cnlDcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xv
YmFsT2JqZWN0LT53ZWJBc3NlbWJseUdsb2JhbFN0cnVjdHVyZSgpLCBXVEZNb3ZlKGdsb2JhbFJl
ZikpOwogICAgICAgICAgICAgICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7CiAgICAgICAg
ICAgICAgICAgbV9pbnN0YW5jZS0+bGlua0dsb2JhbCh2bSwgZ2xvYmFsSW5kZXgsIGdsb2JhbFZh
bHVlKTsKLSAgICAgICAgICAgICAgICBlbnN1cmVTdGlsbEFsaXZlSGVyZShiaXR3aXNlX2Nhc3Q8
dm9pZCo+KGluaXRpYWxCaXRzKSk7IC8vIEVuc3VyZSB0aGlzIGlzIGtlcHQgYWxpdmUgd2hpbGUg
Y3JlYXRpbmcgSlNXZWJBc3NlbWJseUdsb2JhbC4KKyAgICAgICAgICAgICAgICBlbnN1cmVTdGls
bEFsaXZlSGVyZShpbml0aWFsQml0cyk7IC8vIEVuc3VyZSB0aGlzIGlzIGtlcHQgYWxpdmUgd2hp
bGUgY3JlYXRpbmcgSlNXZWJBc3NlbWJseUdsb2JhbC4KICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYTQ0OThmNzIxMTZlLi5kYmFhOTRm
MDBjY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDMtMTcgIFhhbiBMw7NwZXogIDx4YW5A
aWdhbGlhLmNvbT4KKworICAgICAgICBbSlNDXSBFbmFibGUgV2FzbUxMSW50IG9uIEFSTXY3Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEyNjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0
Zm9ybUVuYWJsZS5oOiBlbmFibGUgV2ViQXNzZW1ibHkgb24gQVJNdjcuCisKIDIwMjItMDMtMTgg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFk
ZCBhIHB1YmxpYyBidWlsZCBvcHRpb24gZm9yIFBERi5qcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1FbmFibGUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgK
aW5kZXggNDExMzU0ZjZjMTFmLi5iMTQ3MGQ2ZDgyOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtRW5hYmxlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUu
aApAQCAtNTg1LDEyICs1ODUsMTIgQEAKICNlbmRpZgogCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkK
LS8qIERpc2FibGUgV2ViQXNzZW1ibHkgb24gYWxsIDMyYml0IHBsYXRmb3Jtcy4gSXRzIExMSW50
IHRpZXIgY291bGQKLSAqIHdvcmsgb24gdGhlbSwgYnV0IHN0aWxsIG5lZWRzIHNvbWUgZmluYWwg
dG91Y2hlcy4gKi8KKyNpZiAhQ1BVKEFSTSkKICN1bmRlZiBFTkFCTEVfV0VCQVNTRU1CTFkKICNk
ZWZpbmUgRU5BQkxFX1dFQkFTU0VNQkxZIDAKICN1bmRlZiBFTkFCTEVfV0VCQVNTRU1CTFlfQjNK
SVQKICNkZWZpbmUgRU5BQkxFX1dFQkFTU0VNQkxZX0IzSklUIDAKKyNlbmRpZgogI2lmIChDUFUo
QVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpKSAmJiBPUyhMSU5VWCkKIC8qIE9uIEFSTXY3IGFuZCBN
SVBTIG9uIExpbnV4IHRoZSBKSVQgaXMgZW5hYmxlZCB1bmxlc3MgZXhwbGljaXRseSBkaXNhYmxl
ZC4gKi8KICNpZiAhZGVmaW5lZChFTkFCTEVfSklUKQpAQCAtNzA2LDcgKzcwNiw3IEBACiAjZGVm
aW5lIEVOQUJMRV9TQU1QTElOR19QUk9GSUxFUiAxCiAjZW5kaWYKIAotI2lmIEVOQUJMRShXRUJB
U1NFTUJMWSkgJiYgSEFWRShNQUNISU5FX0NPTlRFWFQpCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
KSAmJiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkgJiYgQ1BVKEFERFJFU1M2NCkKICNkZWZpbmUgRU5B
QkxFX1dFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkgMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiMmIyMmViZTAwZGMuLmMz
MGUwNzFiNjc2MyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAzLTE3ICBYYW4gTMOzcGV6ICA8eGFuQGlnYWxp
YS5jb20+CisKKyAgICAgICAgW0pTQ10gRW5hYmxlIFdhc21MTEludCBvbiBBUk12NworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMjYwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi1q
c2Mtc3RyZXNzLXRlc3RzOiBhbGxvdyB0byBydW4gdGhlIHdhc20gdGVzdHMgb24KKyAgICAgICAg
YXJtdjcgZXZlbiB3aXRob3V0IGppdCBzdXBwb3J0IChmb3Igbm93KS4KKwogMjAyMi0wMy0xOCAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0FU
U1BJXSBhY2Nlc3NpYmlsaXR5L2Ryb3Bkb3duLXZhbHVlLmh0bWwgaXMgdGltaW5nIG91dCBzaW5j
ZSBhZGRlZCBpbiAyNDgxNDVAbWFpbgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9ydW4tanNj
LXN0cmVzcy10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKaW5kZXgg
ZGQ3MTI4ZWU0MTQ0Li5jZTM0MzVjODg1ZDQgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVu
LWpzYy1zdHJlc3MtdGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0
cwpAQCAtNTgyLDkgKzU4MiwxNSBAQCBkZWYgZGV0ZXJtaW5lT1MKICAgICBlbmQKIGVuZAogCitk
ZWYgaXNGVExFbmFibGVkCisgICAgJGppdFRlc3RzICYmICRpc0ZUTFBsYXRmb3JtCitlbmQKKwog
JGhvc3RPUyA9IGRldGVybWluZU9TIHVubGVzcyAkaG9zdE9TCiAkYXJjaGl0ZWN0dXJlID0gZGV0
ZXJtaW5lQXJjaGl0ZWN0dXJlIHVubGVzcyAkYXJjaGl0ZWN0dXJlCiAkaXNGVExQbGF0Zm9ybSA9
ICEoJGFyY2hpdGVjdHVyZSA9PSAieDg2IiB8fCAkYXJjaGl0ZWN0dXJlID09ICJhcm0iIHx8ICRh
cmNoaXRlY3R1cmUgPT0gIm1pcHMiIHx8ICRhcmNoaXRlY3R1cmUgPT0gInJpc2N2NjQiIHx8ICRo
b3N0T1MgPT0gIndpbmRvd3MiIHx8ICRob3N0T1MgPT0gInBsYXlzdGF0aW9uIikKKyMgU3BlY2lh
bCBjYXNlIGFybXY3LCB3ZSB3YW50IHRvIHJ1biB0aGUgd2FzbSB0ZXN0cyB0ZW1wb3JhcmlseSB3
aXRob3V0IEIzL0FpciBzdXBwb3J0CiskaXNXYXNtUGxhdGZvcm0gPSBpc0ZUTEVuYWJsZWQgfHwg
JGFyY2hpdGVjdHVyZSA9PSAiYXJtIgogCiBpZiAkYXJjaGl0ZWN0dXJlID09ICJ4ODYiCiAgICAg
IyBUaGUgSklUIGlzIHRlbXBvcmFyaWx5IGRpc2FibGVkIG9uIHRoaXMgcGxhdGZvcm0gc2luY2UK
QEAgLTU5MiwxMCArNTk4LDYgQEAgaWYgJGFyY2hpdGVjdHVyZSA9PSAieDg2IgogICAgICRqaXRU
ZXN0cyA9IGZhbHNlCiBlbmQKIAotZGVmIGlzRlRMRW5hYmxlZAotICAgICRqaXRUZXN0cyAmJiAk
aXNGVExQbGF0Zm9ybQotZW5kCi0KIGlmICEkdGVzdFJ1bm5lclR5cGUKICAgICBpZiAkcmVtb3Rl
IGFuZCAkaG9zdE9TID09ICJkYXJ3aW4iCiAgICAgICAgICR0ZXN0UnVubmVyVHlwZSA9IDpzaGVs
bApAQCAtMTcyNyw4ICsxNzI5LDcgQEAgZGVmIG5vTm9MTEludFJ1bk1vZHVsZXMKIGVuZAogCiBk
ZWYgcnVuV2ViQXNzZW1ibHkKLSAgICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVybiBp
ZiAhJGlzRlRMUGxhdGZvcm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQogICAgIHJ1
bigiZGVmYXVsdC13YXNtIiwgIi1tIiwgKkZUTF9PUFRJT05TKQogICAgIGlmICRtb2RlICE9ICJx
dWljayIKICAgICAgICAgcnVuKCJ3YXNtLW5vLWNqaXQteWVzLXRscy1jb250ZXh0IiwgIi1tIiwg
Ii0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PXRydWUiLCAqKEZUTF9PUFRJT05TICsgTk9fQ0pJ
VF9PUFRJT05TKSkKQEAgLTE3MzYsMTUgKzE3MzcsMTYgQEAgZGVmIHJ1bldlYkFzc2VtYmx5CiAg
ICAgICAgIHJ1bigid2FzbS1lYWdlci1qZXR0aXNvbiIsICItbSIsICItLWZvcmNlQ29kZUJsb2Nr
VG9KZXR0aXNvbkR1ZVRvT2xkQWdlPXRydWUiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJ
c2xhbmRBbGxvY2F0aW9uPXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKkZUTF9PUFRJT05TKQog
ICAgICAgICBydW4oIndhc20tbm8tdGxzLWNvbnRleHQiLCAiLW0iLCAiLS11c2VGYXN0VExTRm9y
V2FzbUNvbnRleHQ9ZmFsc2UiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1zbG93
LW1lbW9yeSIsICItbSIsICItLXVzZVdlYkFzc2VtYmx5RmFzdE1lbW9yeT1mYWxzZSIsICpGVExf
T1BUSU9OUykKKyAgICAgICAgcnVuKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5IiwgIi1tIiwg
Ii0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BU
SU9OUykgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8KKyAgICBlbmQKKyAgICBpZiAkaXNG
VExQbGF0Zm9ybQogICAgICAgICBydW4oIndhc20tYjMiLCAiLW0iLCAiLS11c2VXYXNtTExJbnQ9
ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICpGVExfT1BUSU9OUykKICAgICAgICAg
cnVuKCJ3YXNtLWFpciIsICItbSIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRv
bWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICpGVExfT1BUSU9OUykKLSAg
ICAgICAgcnVuKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5IiwgIi1tIiwgIi0tY29sbGVjdENv
bnRpbnVvdXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykgaWYgc2hv
dWxkQ29sbGVjdENvbnRpbnVvdXNseT8KICAgICBlbmQKIGVuZAogCiBkZWYgcnVuV2ViQXNzZW1i
bHlKZXRTdHJlYW0yCi0gICAgcmV0dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRp
c0ZUTFBsYXRmb3JtCisgICAgcmV0dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KIAogICAgIGlmICRt
ZW1vcnlMaW1pdGVkCiAgICAgICAgIHNraXAKQEAgLTE3NjMsMTUgKzE3NjUsMTYgQEAgZGVmIHJ1
bldlYkFzc2VtYmx5SmV0U3RyZWFtMgogICAgICAgICBydW4oIndhc20tZWFnZXItamV0dGlzb24i
LCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09sZEFnZT10cnVlIiwgIi0tdmVyaWZ5
R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLW5vLXRscy1jb250ZXh0
IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PWZhbHNlIiwgKkZUTF9PUFRJT05TKQogICAg
ICAgICBydW4oIndhc20tc2xvdy1tZW1vcnkiLCAiLS11c2VXZWJBc3NlbWJseUZhc3RNZW1vcnk9
ZmFsc2UiLCAqRlRMX09QVElPTlMpCisgICAgICAgIHJ1bigid2FzbS1jb2xsZWN0LWNvbnRpbnVv
dXNseSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAq
RlRMX09QVElPTlMpIGlmIHNob3VsZENvbGxlY3RDb250aW51b3VzbHk/CisgICAgZW5kCisgICAg
aWYgJEZUTFBsYXRmb3JtCiAgICAgICAgIHJ1bigid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1m
YWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKkZUTF9PUFRJT05TKQogICAgICAgICBy
dW4oIndhc20tYWlyIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdF
eGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgKkZUTF9PUFRJT05TKQotICAgICAgICBy
dW4oIndhc20tY29sbGVjdC1jb250aW51b3VzbHkiLCAiLS1jb2xsZWN0Q29udGludW91c2x5PXRy
dWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKkZUTF9PUFRJT05TKSBpZiBzaG91bGRDb2xsZWN0Q29u
dGludW91c2x5PwogICAgIGVuZAogZW5kCiAKIGRlZiBydW5XZWJBc3NlbWJseVN1aXRlKCpvcHRp
b25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCi0gICAgcmV0dXJuIGlmICEkaml0VGVzdHMKLSAgICBy
ZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0K
ICAgICBtb2R1bGVzID0gRGlyW1dBU01URVNUU19QQVRIICsgIiouanMiXS5tYXAgeyB8ZnwgRmls
ZS5iYXNlbmFtZShmKSB9CiAgICAgcHJlcGFyZUV4dHJhQWJzb2x1dGVGaWxlcyhXQVNNVEVTVFNf
UEFUSCwgWyJ3YXNtLmpzb24iXSkKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZpbGVzKG1vZHVs
ZXMubWFwIHsgfGZ8ICIuLi8iICsgZiB9LCAkY29sbGVjdGlvbikKQEAgLTE3ODcsOSArMTc5MCwx
MSBAQCBkZWYgcnVuV2ViQXNzZW1ibHlTdWl0ZSgqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25z
KQogICAgICAgICBydW4oIndhc20tZWFnZXItamV0dGlzb24iLCAiLS1mb3JjZUNvZGVCbG9ja1Rv
SmV0dGlzb25EdWVUb09sZEFnZT10cnVlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNs
YW5kQWxsb2NhdGlvbj10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBv
cHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgICBydW4oIndhc20tbm8tdGxzLWNv
bnRleHQiLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9ZmFsc2UiLCAqKEZUTF9PUFRJT05T
ICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuKCJ3YXNtLXNsb3ct
bWVtb3J5IiwgIi0tdXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5PWZhbHNlIiwgKihGVExfT1BUSU9O
UyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCisgICAgICAgIHJ1bigid2FzbS1jb2xs
ZWN0LWNvbnRpbnVvdXNseSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlm
eUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkg
aWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8KKyAgICBlbmQKKyAgICBpZiAkaXNGVExQbGF0
Zm9ybQogICAgICAgICBydW4oIndhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13
YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZp
Y09wdGlvbnMpKQogICAgICAgICBydW4oIndhc20tYWlyIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNl
IiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgKihG
VExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCi0gICAgICAgIHJ1bigi
d2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNseSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIs
ICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNP
cHRpb25zKSkgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8KICAgICBlbmQKIGVuZAogCkBA
IC0xODA0LDggKzE4MDksOSBAQCBlbmQKIAogZGVmIHJ1bldlYkFzc2VtYmx5V2l0aEhhcm5lc3Mo
Km9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKICAgICByYWlzZSB1bmxlc3MgJGJlbmNobWFy
ay50b19zID1+IC9oYXJuZXNzXC5tP2pzLwotICAgIHJldHVybiBpZiAhJGppdFRlc3RzCi0gICAg
cmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2FzbVBsYXRmb3Jt
CisgICAgIyBTa2lwIHRoaXMgY29tcGxldGVseSBvbiBhcm12NyBmb3Igbm93LCBzaW5jZSBtb3N0
IG9mIHRoZSB0ZXN0cyBhcmUgcmVsYXRlZCB0byBPU1IgYW5kIGl0J3MgYSBiaXQgaGFpcnkgdG8g
c2tpcCB0aGVtIG1hbnVhbGx5CisgICAgcmV0dXJuIGlmICRhcmNoaXRlY3R1cmUgPT0gImFybSIK
IAogICAgIHdhc21GaWxlcyA9IGFsbFdhc21GaWxlcygkY29sbGVjdGlvbikKICAgICBwcmVwYXJl
RXh0cmFSZWxhdGl2ZUZpbGVzKHdhc21GaWxlcy5tYXAgeyB8ZnwgZi5iYXNlbmFtZSB9LCAkY29s
bGVjdGlvbikKQEAgLTE4MTcsOSArMTgyMywxMSBAQCBkZWYgcnVuV2ViQXNzZW1ibHlXaXRoSGFy
bmVzcygqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQogICAgICAgICBydW5IYXJuZXNzVGVz
dCgid2FzbS1lYWdlci1qZXR0aXNvbiIsICItLWZvcmNlQ29kZUJsb2NrVG9KZXR0aXNvbkR1ZVRv
T2xkQWdlPXRydWUiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9u
PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNw
ZWNpZmljT3B0aW9ucykpCiAgICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLW5vLXRscy1jb250
ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PWZhbHNlIiwgKihGVExfT1BUSU9OUyAr
IG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCiAgICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3
YXNtLXNsb3ctbWVtb3J5IiwgIi0tdXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5PWZhbHNlIiwgKihG
VExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCisgICAgICAgIHJ1bkhh
cm5lc3NUZXN0KCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5IiwgIi0tY29sbGVjdENvbnRpbnVv
dXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRl
c3RTcGVjaWZpY09wdGlvbnMpKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5PworICAgIGVu
ZAorICAgIGlmICRpc0ZUTFBsYXRmb3JtCiAgICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLWIz
IiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqKEZU
TF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuSGFy
bmVzc1Rlc3QoIndhc20tbm8tYWlyIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFu
ZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgKihGVExfT1BUSU9OUyAr
IG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCi0gICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3
YXNtLWNvbGxlY3QtY29udGludW91c2x5IiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwg
Ii0tdmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09w
dGlvbnMpKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5PwogICAgIGVuZAogZW5kCiAKQEAg
LTE4MjgsOCArMTgzNiw3IEBAIGRlZiBydW5XZWJBc3NlbWJseUVtc2NyaXB0ZW4obW9kZSkKICAg
ICB3aGVuIDpza2lwCiAgICAgICAgIHJldHVybgogICAgIGVuZAotICAgIHJldHVybiBpZiAhJGpp
dFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlz
V2FzbVBsYXRmb3JtCiAgICAgd2FzbSA9ICRiZW5jaG1hcmsudG9fcy5zdWIhICcuanMnLCAnLndh
c20nCiAgICAgcHJlcGFyZUV4dHJhUmVsYXRpdmVGaWxlcyhbUGF0aG5hbWUoJy4uJykgKyB3YXNt
XSwgJGNvbGxlY3Rpb24pCiAgICAgcnVuKCJkZWZhdWx0LXdhc20iLCAqRlRMX09QVElPTlMpCkBA
IC0xODM3LDkgKzE4NDQsMTEgQEAgZGVmIHJ1bldlYkFzc2VtYmx5RW1zY3JpcHRlbihtb2RlKQog
ICAgICAgICBydW4oIndhc20tbm8tY2ppdC15ZXMtdGxzLWNvbnRleHQiLCAiLS11c2VGYXN0VExT
Rm9yV2FzbUNvbnRleHQ9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBOT19DSklUX09QVElPTlMpKQog
ICAgICAgICBydW4oIndhc20tZWFnZXItamV0dGlzb24iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0
dGlzb25EdWVUb09sZEFnZT10cnVlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5k
QWxsb2NhdGlvbj10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAg
ICAgcnVuKCJ3YXNtLW5vLXRscy1jb250ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0
PWZhbHNlIiwgKkZUTF9PUFRJT05TKQorICAgICAgICBydW4oIndhc20tY29sbGVjdC1jb250aW51
b3VzbHkiLCAiLS1jb2xsZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwg
KkZUTF9PUFRJT05TKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5PworICAgIGVuZAorICAg
IGlmICRpc0ZUTFBsYXRmb3JtCiAgICAgICAgIHJ1bigid2FzbS1iMyIsICItLXVzZVdhc21MTElu
dD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKkZUTF9PUFRJT05TKQogICAgICAg
ICBydW4oIndhc20tYWlyIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXpp
bmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgKkZUTF9PUFRJT05TKQotICAgICAg
ICBydW4oIndhc20tY29sbGVjdC1jb250aW51b3VzbHkiLCAiLS1jb2xsZWN0Q29udGludW91c2x5
PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKkZUTF9PUFRJT05TKSBpZiBzaG91bGRDb2xsZWN0
Q29udGludW91c2x5PwogICAgIGVuZAogZW5kCiAKQEAgLTE4NDgsOCArMTg1Nyw3IEBAIGRlZiBy
dW5XZWJBc3NlbWJseVNwZWNUZXN0QmFzZShtb2RlLCBzcGVjSGFybmVzc1BhdGgsICpvcHRpb25h
bFRlc3RTcGVjaWZpY09wdGlvCiAgICAgd2hlbiA6c2tpcAogICAgICAgICByZXR1cm4KICAgICBl
bmQKLSAgICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRMUGxhdGZv
cm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQogICAgIHByZXBhcmVFeHRyYUFic29s
dXRlRmlsZXMoV0FTTVRFU1RTX1BBVEgsIFsid2FzbS5qc29uIl0pCiAKICAgICBtb2R1bGVzID0g
RGlyW1dBU01URVNUU19QQVRIICsgIiouanMiXS5tYXAgeyB8ZnwgRmlsZS5iYXNlbmFtZShmKSB9
CkBAIC0xODY0LDEwICsxODcyLDEyIEBAIGRlZiBydW5XZWJBc3NlbWJseVNwZWNUZXN0QmFzZSht
b2RlLCBzcGVjSGFybmVzc1BhdGgsICpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvCiAgICAgICBy
dW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1uby1jaml0LXllcy10bHMtY29udGV4dCIsIG5vaXN5
T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICAiLS11c2VGYXN0VExTRm9yV2FzbUNv
bnRleHQ9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBOT19DSklUX09QVElPTlMgKyBvcHRpb25hbFRl
c3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20tZWFn
ZXItamV0dGlzb24iLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAiLS1m
b3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09sZEFnZT10cnVlIiwgIi0tdXNlUmFuZG9taXpp
bmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICoo
RlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgcnVuV2l0
aE91dHB1dEhhbmRsZXIoIndhc20tbm8tdGxzLWNvbnRleHQiLCBub2lzeU91dHB1dEhhbmRsZXIs
IHNwZWNIYXJuZXNzSnNQYXRoLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9ZmFsc2UiLCAq
KEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKLSAgICAgIHJ1bldp
dGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWIzIiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVz
c0pzUGF0aCwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2Ui
LCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKLSAgICAgIHJ1
bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWFpciIsIG5vaXN5T3V0cHV0SGFuZGxlciwgc3BlY0hh
cm5lc3NKc1BhdGgsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhl
Y3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRl
c3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20tY29s
bGVjdC1jb250aW51b3VzbHkiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRo
LCAiLS1jb2xsZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKihGVExf
T1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpIGlmIHNob3VsZENvbGxlY3RD
b250aW51b3VzbHk/CiAgICAgZW5kCisgICAgaWYgJGlzRlRMUGxhdGZvcm0KKyAgICAgICAgcnVu
V2l0aE91dHB1dEhhbmRsZXIoIndhc20tYjMiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJu
ZXNzSnNQYXRoLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxz
ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQorICAgICAg
ICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1haXIiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNw
ZWNIYXJuZXNzSnNQYXRoLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemlu
Z0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9u
YWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKKyAgICBlbmQKIGVuZAogCiBkZWYgcnVuV2ViQXNzZW1i
bHlTcGVjVGVzdChtb2RlKQpAQCAtMTg4Myw4ICsxODkzLDcgQEAgZGVmIHJ1bldlYkFzc2VtYmx5
RnVuY3Rpb25SZWZlcmVuY2VTcGVjVGVzdChtb2RlKQogZW5kCiAKIGRlZiBydW5XZWJBc3NlbWJs
eUxvd0V4ZWN1dGFibGVNZW1vcnkoKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKLSAgICBy
ZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRMUGxhdGZvcm0KKyAgICBy
ZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQogICAgIG1vZHVsZXMgPSBEaXJbV0FTTVRFU1RTX1BB
VEggKyAiKi5qcyJdLm1hcCB7IHxmfCBGaWxlLmJhc2VuYW1lKGYpIH0KICAgICBwcmVwYXJlRXh0
cmFBYnNvbHV0ZUZpbGVzKFdBU01URVNUU19QQVRILCBbIndhc20uanNvbiJdKQogICAgIHByZXBh
cmVFeHRyYVJlbGF0aXZlRmlsZXMobW9kdWxlcy5tYXAgeyB8ZnwgIi4uLyIgKyBmIH0sICRjb2xs
ZWN0aW9uKQotLSAKMi4zNS4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455084</attachid>
            <date>2022-03-18 03:32:03 -0700</date>
            <delta_ts>2022-03-30 02:58:28 -0700</delta_ts>
            <desc>v2</desc>
            <filename>0001-JSC-Enable-WasmLLInt-on-ARMv7.patch</filename>
            <type>text/plain</type>
            <size>334362</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA1M2JhMWIwNDM2YzEyMDkxN2NjMTc5MjQ0OWVkY2I5NzIxZmQyYTUyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogV2VkLCAyMCBKYW4gMjAyMSAxNTo0MDo0MCArMDEwMApTdWJqZWN0OiBb
UEFUQ0hdIFtKU0NdIEVuYWJsZSBXYXNtTExJbnQgb24gQVJNdjcKIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEyNjAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1U
eXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6
IDhiaXQKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKSlNUZXN0czoKCiogc3RyZXNzL3Nh
bXBsaW5nLXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzOgoqIHN0cmVzcy9zYW1wbGluZy1w
cm9maWxlci13YXNtLmpzOgoqIHdhc20vcmVncmVzcy9sbGludC1jYWxsZWUtc2F2ZXMtd2l0aC1m
YXN0LW1lbW9yeS5qczoKClNvdXJjZS9KYXZhU2NyaXB0Q29yZToKClBhdGNoIGJ5IEdlemEgTG9y
ZSBhbmQgWGFuIEzDs3Blei4KCkltcGxlbWVudCB0aGUgTExJbnQgdGllciBvZiBXZWJBc3NlbWJs
eSBmb3IgQVJNdjcuIEEgbG90IG9mIHRoZQp3b3JrIHdpbGwgYmUgc2hhcmVkIGJ5IGFueSAzMmJp
dCBwb3J0LCBidXQgdGhlIG9mZmxpbmVhc3NlbWJsZXIKaGFzIG9ubHkgYmVlbiB1cGRhdGVkIGZv
ciBBUk12NyBzbyBmYXIuCgpNYWluIGhpZ2hsaWdodHM6CgpXZSBoYXZlIHNwbGl0IHRoZSBXZWJB
c3NlbWJseS5hc20gZmlsZSBpbnRvIHRocmVlIGNodW5rcywKZm9sbG93aW5nIHdoYXQgTG93TGV2
ZWxJbnRlcnByZXRlci5hc20gZG9lcy4gVGhlIGNvbW1vbiBjb2RlCnJlbWFpbnMgaW4gV2ViQXNz
ZW1ibHkuYXNtLCBhbmQgMzIgYW5kIDY0Yml0IHNwZWNpZmljIGNvZGUgKG1vc3RseQpvcGNvZGUg
aW1wbGVtZW50YXRpb25zKSBnb2VzIGludG8gV2ViQXNzZW1ibHkzMl82NC5hc20gYW5kCldlYkFz
c2VtYmx5NjQuYXNtLgoKV2UgaGF2ZSBkZWNpZGVkIHRvIHVzZSBhIHBhaXIgb2YgR1BScyBmb3Ig
ZXZlcnkgdHlwZSBvZiB3YXNtCnZhbHVlcywgZXZlbiBpZiB0aGV5IGFyZSAzMmJpdCAoaTMyL2Yz
MiksIHdpdGggdGhlIG9kZCBudW1iZXJlZApHUFIgaG9sZGluZyB0aGUgbW9zdCBzaWduaWZpY2Fu
dCAob3Igb25seSkgdmFsdWUuIFRoaXMgbWFrZXMgdGhlCmNvZGUgbXVjaCBzaW1wbGVyIGFuZCBh
bGxvd3MgdXMgdG8gc2hhcmUgbW9yZSBjb2RlIHdpdGggdGhlIDY0Yml0CnZhcmlhbnQuIFRoaXMg
aXMgbW9zdGx5IHJlbGV2YW50IGZvciBhcmd1bWVudCBwYXNzaW5nLCBhbmQgZ2l2ZW4KdGhhdCBl
dmVyeSB2YWx1ZSBlbmRzIHVwIGluIGEgc3RhY2sgYW55d2F5IHdlIGRvIG5vdCB0aGluayBpdCBp
cwpzaWduaWZpY2FudCBmcm9tIGEgcGVyZm9ybWFuY2UgUE9WLgoKV2UgYXJlIHJldXNpbmcgSlNW
YWx1ZVJlZ3MgdG8gaG9sZCBXYXNtIHZhbHVlcyB0b28uIE9idmlvdXNseSB0aGV5CmFyZSBub3Qg
cmVhbGx5IEpTVmFsdWVzLCBzbyBpdCBtaWdodCBtYWtlIHNlbnNlIHRvIGNyZWF0ZSBhIGJhc2UK
Y2xhc3MgdGhhdCBjYW4gYmUgdXNlZCBmb3IgYm90aCBKUyBhbmQgV2FzbSB2YWx1ZXMuCgpXZSBk
byBub3QgaGF2ZSBlbm91Z2ggcmVnaXN0ZXJzIHRvIGtlZXAgdGhpbmdzIGxpa2UgdGhlIG1lbW9y
eQpiYXNlIHBvaW50ZXIgYW5kIHNpemUgaW4gcGlubmVkIHJlZ2lzdGVycywgc28gd2UgYXJlIGZv
cmNlZCB0bwpsb2FkIHRoZW0gb24gZWFjaCB1c2UuCgpXZSBkaXNhYmxlIHRoZSAnU2lnbmFsaW5n
JyBtZW1vcnkgbW9kZSwgc2luY2UgdGhlIGN1cnJlbnQKaW1wbGVtZW50YXRpb24gcmVsaWVzIG9u
IGJlaW5nIGFibGUgdG8gbXByb3RlY3QgYSAyXjMyICsgcmVkem9uZQpyZWdpb24gb2YgbWVtb3J5
LiBUaGlzIGNhbiBiZSBjaGFuZ2VkIGluIHRoZSBmdXR1cmUgYnV0IGl0J3Mgbm90IGEKcHJpb3Jp
dHkgYXQgdGhlIG1vbWVudC4KCiogQ01ha2VMaXN0cy50eHQ6CiogYXNzZW1ibGVyL0FSTXY3QXNz
ZW1ibGVyLmg6CihKU0M6OkFSTXY3QXNzZW1ibGVyOjp2Y3Z0X3NpZ25lZFRvRmxvYXRpbmdQb2lu
dCk6CiogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaDoKKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk12Nzo6Y29udmVydEludDMyVG9GbG9hdCk6CihKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6
OnRocmVhZFNhZmVQYXRjaGFibGVOZWFyQ2FsbCk6CihKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6
OmNhbGxPcGVyYXRpb24pOgoqIGIzL0IzVmFsdWVSZXAuaDoKKEpTQzo6QjM6OlZhbHVlUmVwOjpW
YWx1ZVJlcCk6CiogYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwOgooSlNDOjpXYXNtOjpCeXRl
Y29kZUR1bXBlcjo6Zm9ybWF0Q29uc3RhbnQgY29uc3QpOgoqIGludGVycHJldGVyL0NhbGxGcmFt
ZS5oOiBhZGFwdCB0byBuZXcgY2FsbGVlIHRhZ2dpbmcgZm9ybWF0LgooSlNDOjpDYWxsRnJhbWU6
OmNhbGxlZSBjb25zdCk6CihKU0M6OkNhbGxGcmFtZTo6dW5zYWZlQ2FsbGVlIGNvbnN0KToKKiBp
bnRlcnByZXRlci9DYWxsZWVCaXRzLmg6IGFkZCB3YXNtIHRhZ2dpbmcgb2YgY2FsbGVlIHZhbHVl
cyBmb3IKMzJiaXQuCihKU0M6OkNhbGxlZUJpdHM6OkNhbGxlZUJpdHMpOgooSlNDOjpDYWxsZWVC
aXRzOjpvcGVyYXRvcj0pOgooSlNDOjpDYWxsZWVCaXRzOjpib3hXYXNtKToKKEpTQzo6Q2FsbGVl
Qml0czo6aXNXYXNtIGNvbnN0KToKKEpTQzo6Q2FsbGVlQml0czo6YXNXYXNtQ2FsbGVlIGNvbnN0
KToKKiBpbnRlcnByZXRlci9SZWdpc3Rlci5oOgooSlNDOjpSZWdpc3Rlcjo6dW5ib3hlZEZsb2F0
IGNvbnN0KToKKEpTQzo6UmVnaXN0ZXI6OmFzYW5VbnNhZmVVbmJveGVkRmxvYXQgY29uc3QpOgoq
IGppdC9Bc3NlbWJseUhlbHBlcnMuaDoKKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjp1bmJveERvdWJs
ZSk6Ciogaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmNwcDoKKEpTQzo6UmVnaXN0ZXJBdE9mZnNl
dExpc3Q6OlJlZ2lzdGVyQXRPZmZzZXRMaXN0KToKKiBqaXQvUmVnaXN0ZXJBdE9mZnNldExpc3Qu
aDoKKEpTQzo6UmVnaXN0ZXJBdE9mZnNldExpc3Q6OnNpemVPZkFyZWFJbkJ5dGVzIGNvbnN0KToK
KiBqaXQvUmVnaXN0ZXJTZXQuY3BwOgooSlNDOjpSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVn
aXN0ZXJzKToKKiBsbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaDoKKiBsbGludC9Mb3dMZXZl
bEludGVycHJldGVyMzJfNjQuYXNtOgoqIGxsaW50L1dlYkFzc2VtYmx5LmFzbToKKiBsbGludC9X
ZWJBc3NlbWJseTMyXzY0LmFzbTogQWRkZWQuCiogbGxpbnQvV2ViQXNzZW1ibHk2NC5hc206IEFk
ZGVkLgoqIG9mZmxpbmVhc20vYXJtLnJiOgoqIG9mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiOgoq
IG9mZmxpbmVhc20vcmVnaXN0ZXJzLnJiOgoqIG9mZmxpbmVhc20vcmlzYy5yYjoKKiBydW50aW1l
L0pTQ0pTVmFsdWUuaDoKKEpTQzo6anNVbmJveGVkRmxvYXQpOgoqIHJ1bnRpbWUvSlNDSlNWYWx1
ZUlubGluZXMuaDoKKEpTQzo6SlNWYWx1ZTo6SlNWYWx1ZSk6Ciogd2FzbS9XYXNtQWlySVJHZW5l
cmF0b3IuY3BwOgooSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6dXNlU2lnbmFsaW5nTWVtb3J5
IGNvbnN0KToKKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OkFpcklSR2VuZXJhdG9yKToKKEpT
Qzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKToKKEpT
Qzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmFkZENhbGwpOgoqIHdhc20vV2FzbUIzSVJHZW5lcmF0
b3IuY3BwOgooSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjp1c2VTaWduYWxpbmdNZW1vcnkgY29u
c3QpOgooSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjpCM0lSR2VuZXJhdG9yKToKKEpTQzo6V2Fz
bTo6QjNJUkdlbmVyYXRvcjo6YWRkQXJndW1lbnRzKToKKEpTQzo6V2FzbTo6QjNJUkdlbmVyYXRv
cjo6ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIpOgooSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9y
OjptZW1vcnlLaW5kKToKKEpTQzo6V2FzbTo6QjNJUkdlbmVyYXRvcjo6YWRkQ2FsbCk6Ciogd2Fz
bS9XYXNtQmluZGluZy5jcHA6CihKU0M6Oldhc206Ondhc21Ub1dhc20pOgoqIHdhc20vV2FzbUNh
bGxlZS5jcHA6CihKU0M6Oldhc206OkxMSW50Q2FsbGVlOjpjYWxsZWVTYXZlUmVnaXN0ZXJzKToK
KiB3YXNtL1dhc21DYWxsZWVHcm91cC5jcHA6CihKU0M6Oldhc206OkNhbGxlZUdyb3VwOjppc1Nh
ZmVUb1J1bik6Ciogd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwOgooSlNDOjpXYXNtOjpq
c0NhbGxpbmdDb252ZW50aW9uKToKKEpTQzo6V2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKToK
KiB3YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oOgooSlNDOjpXYXNtOjpDYWxsSW5mb3JtYXRp
b246OmNvbXB1dGVSZXN1bHRzT2Zmc2V0TGlzdCk6CihKU0M6Oldhc206Oldhc21DYWxsaW5nQ29u
dmVudGlvbjo6V2FzbUNhbGxpbmdDb252ZW50aW9uKToKKEpTQzo6V2FzbTo6V2FzbUNhbGxpbmdD
b252ZW50aW9uOjptYXJzaGFsbExvY2F0aW9uSW1wbCBjb25zdCk6CihKU0M6Oldhc206Oldhc21D
YWxsaW5nQ29udmVudGlvbjo6bWFyc2hhbGxMb2NhdGlvbiBjb25zdCk6CihKU0M6Oldhc206OkpT
Q2FsbGluZ0NvbnZlbnRpb246OkpTQ2FsbGluZ0NvbnZlbnRpb24pOgooSlNDOjpXYXNtOjpKU0Nh
bGxpbmdDb252ZW50aW9uOjptYXJzaGFsbExvY2F0aW9uSW1wbCBjb25zdCk6CihKU0M6Oldhc206
OkpTQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxsTG9jYXRpb24gY29uc3QpOgooSlNDOjpXYXNt
OjpKU0NhbGxpbmdDb252ZW50aW9uOjpjYWxsSW5mb3JtYXRpb25Gb3IgY29uc3QpOgoqIHdhc20v
V2FzbUZvcm1hdC5oOgoqIHdhc20vV2FzbUluZGV4T3JOYW1lLmNwcDoKKEpTQzo6V2FzbTo6SW5k
ZXhPck5hbWU6OkluZGV4T3JOYW1lKToKKEpTQzo6V2FzbTo6bWFrZVN0cmluZyk6Ciogd2FzbS9X
YXNtSW5kZXhPck5hbWUuaDoKKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OkluZGV4T3JOYW1lKToK
KEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OmlzRW1wdHkgY29uc3QpOgooSlNDOjpXYXNtOjpJbmRl
eE9yTmFtZTo6aXNJbmRleCBjb25zdCk6CihKU0M6Oldhc206OkluZGV4T3JOYW1lOjppc05hbWUg
Y29uc3QpOgooSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6aW5kZXggY29uc3QpOgooSlNDOjpXYXNt
OjpJbmRleE9yTmFtZTo6bmFtZSBjb25zdCk6CihKU0M6Oldhc206OkluZGV4T3JOYW1lOjpuYW1l
U2VjdGlvbiBjb25zdCk6Ciogd2FzbS9XYXNtSW5zdGFuY2UuaDoKKEpTQzo6V2FzbTo6SW5zdGFu
Y2U6OnVwZGF0ZUNhY2hlZE1lbW9yeSk6Ciogd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwOgoo
SlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6dmlydHVhbFJlZ2lzdGVyRm9yV2FzbUxvY2FsKToK
KEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvckNhbGxlcik6CihK
U0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZWUpOgooSlND
OjpXYXNtOjpMTEludEdlbmVyYXRvcjo6YWRkQXJndW1lbnRzKToKKEpTQzo6V2FzbTo6TExJbnRH
ZW5lcmF0b3I6OmFkZExvb3ApOgoqIHdhc20vV2FzbUxMSW50UGxhbi5jcHA6CihKU0M6Oldhc206
OkxMSW50UGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlvbik6Ciogd2FzbS9XYXNtTWVtb3J5LmNw
cDoKKEpTQzo6V2FzbTo6TWVtb3J5SGFuZGxlOjp+TWVtb3J5SGFuZGxlKToKKEpTQzo6V2FzbTo6
TWVtb3J5Ojp0cnlDcmVhdGUpOgooSlNDOjpXYXNtOjpNZW1vcnk6Omdyb3dTaGFyZWQpOgooSlND
OjpXYXNtOjpNZW1vcnk6Omdyb3cpOgooSlNDOjpXYXNtOjpNZW1vcnk6OmNvcHkpOgoqIHdhc20v
V2FzbU1lbW9yeS5oOgoqIHdhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmNwcDoKKEpTQzo6V2Fz
bTo6UGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQpOgoqIHdhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9u
Lmg6CihKU0M6Oldhc206OlBpbm5lZFJlZ2lzdGVySW5mbzo6dG9TYXZlIGNvbnN0KToKKiB3YXNt
L1dhc21NZW1vcnlNb2RlLmNwcDoKKEpTQzo6V2FzbTo6bWFrZVN0cmluZyk6Ciogd2FzbS9XYXNt
TWVtb3J5TW9kZS5oOgoqIHdhc20vV2FzbU9wY29kZU9yaWdpbi5jcHA6Ciogd2FzbS9XYXNtT3Bj
b2RlT3JpZ2luLmg6Ciogd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHA6CihKU0M6Oldhc206OkpTQ19E
RUZJTkVfSklUX09QRVJBVElPTik6Ciogd2FzbS9XYXNtT3BlcmF0aW9ucy5oOgoqIHdhc20vV2Fz
bVBhZ2VDb3VudC5oOgoqIHdhc20vV2FzbVBhcnNlci5oOgooSlNDOjpXYXNtOjpQYXJzZXI8U3Vj
Y2Vzc1R5cGU+OjpwYXJzZVVJbnQzMik6CihKU0M6Oldhc206OlBhcnNlcjxTdWNjZXNzVHlwZT46
OnBhcnNlVUludDY0KToKKiB3YXNtL1dhc21TbG93UGF0aHMuY3BwOgooSlNDOjpMTEludDo6V0FT
TV9TTE9XX1BBVEhfREVDTCk6CihKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9wb3Bjb3VudCk6
CihKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9wb3Bjb3VudGxsKToKKEpTQzo6TExJbnQ6OnNs
b3dfcGF0aF93YXNtX2kzMl9kaXZfcyk6CihKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pMzJf
ZGl2X3UpOgooSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTMyX3JlbV9zKToKKEpTQzo6TExJ
bnQ6OnNsb3dfcGF0aF93YXNtX2kzMl9yZW1fdSk6CihKU0M6OkxMSW50OjpzbG93X3BhdGhfd2Fz
bV9pNjRfZGl2X3MpOgooSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTY0X2Rpdl91KToKKEpT
Qzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2k2NF9yZW1fcyk6CihKU0M6OkxMSW50OjpzbG93X3Bh
dGhfd2FzbV9pNjRfcmVtX3UpOgoqIHdhc20vV2FzbVNsb3dQYXRocy5oOgoqIHdhc20vV2FzbVZh
bHVlTG9jYXRpb24uY3BwOgooSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjpkdW1wIGNvbnN0KToK
KFdURjo6cHJpbnRJbnRlcm5hbCk6Ciogd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5oOgooSlNDOjpX
YXNtOjpWYWx1ZUxvY2F0aW9uOjpWYWx1ZUxvY2F0aW9uKToKKEpTQzo6V2FzbTo6VmFsdWVMb2Nh
dGlvbjo6aXNHUFIgY29uc3QpOgooSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjppc0ZQUiBjb25z
dCk6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzU3RhY2sgY29uc3QpOgooSlNDOjpXYXNt
OjpWYWx1ZUxvY2F0aW9uOjppc1N0YWNrQXJndW1lbnQgY29uc3QpOgooSlNDOjpXYXNtOjpWYWx1
ZUxvY2F0aW9uOjpqc3IgY29uc3QpOgooSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjpmcHIgY29u
c3QpOgooSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjpyZWcpOiBEZWxldGVkLgooSlNDOjpXYXNt
OjpWYWx1ZUxvY2F0aW9uOjppc1JlZyBjb25zdCk6IERlbGV0ZWQuCihKU0M6Oldhc206OlZhbHVl
TG9jYXRpb246OnJlZyBjb25zdCk6IERlbGV0ZWQuCihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246
OmdwciBjb25zdCk6IERlbGV0ZWQuCiogd2FzbS9qcy9KU1RvV2FzbS5jcHA6CihKU0M6Oldhc206
Om1hcnNoYWxsSlNSZXN1bHQpOgooSlNDOjpXYXNtOjpjcmVhdGVKU1RvV2FzbVdyYXBwZXIpOgoq
IHdhc20vanMvV2FzbVRvSlMuY3BwOgooSlNDOjpXYXNtOjp3YXNtVG9KUyk6Ciogd2FzbS9qcy9X
ZWJBc3NlbWJseUZ1bmN0aW9uLmNwcDoKKEpTQzo6V2ViQXNzZW1ibHlGdW5jdGlvbjo6cHJldmlv
dXNJbnN0YW5jZU9mZnNldCBjb25zdCk6CihKU0M6OldlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2Fs
bEVudHJ5cG9pbnRTbG93KToKKiB3YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3Iu
Y3BwOgooSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgoqIHdhc20vanMvV2ViQXNzZW1i
bHlNb2R1bGVSZWNvcmQuY3BwOgooSlNDOjpXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6aW5pdGlh
bGl6ZUV4cG9ydHMpOgoKU291cmNlL1dURjoKCiogd3RmL1BsYXRmb3JtRW5hYmxlLmg6IGVuYWJs
ZSBXZWJBc3NlbWJseSBvbiBBUk12Ny4KClRvb2xzOgoKKiBTY3JpcHRzL3J1bi1qc2Mtc3RyZXNz
LXRlc3RzOiBhbGxvdyB0byBydW4gdGhlIHdhc20gdGVzdHMgb24KYXJtdjcgZXZlbiB3aXRob3V0
IGppdCBzdXBwb3J0IChmb3Igbm93KS4KLS0tCiBKU1Rlc3RzL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDExICsKIC4uLi9zYW1wbGluZy1wcm9maWxlci13YXNtLW5h
bWUtc2VjdGlvbi5qcyAgICB8ICAgIDYgKwogSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmls
ZXItd2FzbS5qcyAgICAgIHwgICAgMSArCiAuLi4vbGxpbnQtY2FsbGVlLXNhdmVzLXdpdGgtZmFz
dC1tZW1vcnkuanMgICAgfCAgICAxICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dCAgICAgICAgICB8ICAgIDIgKwogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgIHwgIDIwMyArKysKIC4uLi9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJN
djdBc3NlbWJsZXIuaCB8ICAgIDQgKy0KIC4uLi9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12
Ny5oICAgICAgICAgICB8ICAgMjQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVl
UmVwLmggICAgICAgICB8ICAgIDggKy0KIC4uLi9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAg
ICAgICAgICAgICAgICB8ICAgIDIgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9DYWxsRnJhbWUuaCB8ICAgIDQgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9D
YWxsZWVCaXRzLmggICB8ICAgMzUgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9SZWdpc3Rlci5oICB8ICAgMTYgKwogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJs
eUhlbHBlcnMuaCAgIHwgICAgNSArLQogLi4uL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5jcHAg
ICAgICAgICAgICAgIHwgICAzNCArLQogLi4uL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlckF0
T2Zmc2V0TGlzdC5oIHwgICAgMyArCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVy
U2V0LmNwcCAgICAgfCAgICAyICsKIC4uLi9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaCAg
ICAgICAgICAgICB8ICAgIDYgKwogLi4uL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5h
c20gICAgICAgIHwgICAxNiArCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1i
bHkuYXNtICAgfCAxNTc3ICsrKy0tLS0tLS0tLS0tLS0tCiAuLi4vSmF2YVNjcmlwdENvcmUvbGxp
bnQvV2ViQXNzZW1ibHkzMl82NC5hc20gfCAxMTI5ICsrKysrKysrKysrKwogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5NjQuYXNtIHwgMTI1OSArKysrKysrKysrKysrCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIgICAgICAgfCAgMjg3ICsrLQog
Li4uL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiIHwgICAxNyArLQog
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiIHwgICAgMyArLQog
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYiAgICAgIHwgICAgNiArLQog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oICAgIHwgICAxOCArLQog
Li4uL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaCAgICAgICAgICAgICAgIHwgICAgNyArCiAu
Li4vd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwICAgICAgICAgICAgICAgfCAgIDE1ICstCiAu
Li4vSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAgfCAgIDI3ICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQmluZGluZy5jcHAgICAgfCAgIDE4ICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcCAgICAgfCAgICA1ICstCiAu
Li4vSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlR3JvdXAuY3BwICAgfCAgICA0ICsKIC4u
Li93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5jcHAgICAgICAgICAgICB8ICAgMzkgKy0KIC4u
Li93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oICAgICAgICAgICAgICB8ICAgNDEgKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaCAgICAgICB8ICAgIDIgKwogLi4u
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcCAgIHwgICAyNyArLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmggIHwgICA3MCArLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmggICAgIHwgICAgMyArLQogLi4u
L3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcCAgICAgICAgICAgICAgIHwgICAxMCArLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5jcHAgIHwgICAgNyArLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5jcHAgICAgIHwgICA0MiArLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5oICAgICAgIHwgICAgMiArCiAuLi4v
d2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwICAgICAgICAgICAgfCAgICA3ICsKIC4uLi93
YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5oICAgICAgICAgICAgICB8ICAgIDUgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmNwcCB8ICAgIDIgKwogU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuaCAgIHwgICAgMiArCiAuLi4vSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcCAgfCAgICA0ICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmggfCAgICA0ICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAgfCAgIDUwICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oICAgfCAgIDE2ICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFnZUNvdW50LmggICAgfCAgICA3ICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmggICAgICAgfCAgICA0ICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmNwcCAgfCAgMjMwICsrLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5oICAgIHwgICAzNCArCiAuLi4vSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5jcHAgfCAgIDE0ICstCiAuLi4vSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5oICAgfCAgIDQ0ICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAgICAgfCAgMTg4ICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAgICAgfCAgMTUzICstCiAuLi4vd2Fz
bS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcCAgICAgICAgICAgfCAgMTU3ICstCiAuLi4vd2Fz
bS9qcy9XZWJBc3NlbWJseUdsb2JhbENvbnN0cnVjdG9yLmNwcCAgfCAgICAyICstCiAuLi4vd2Fz
bS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAgICAgICAgfCAgICAyICstCiBTb3VyY2Uv
V1RGL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA5ICsKIFNvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtRW5hYmxlLmggICAgICAgICAgICAgICB8ICAgIDYgKy0KIFRvb2xzL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKwogVG9vbHMvU2Ny
aXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cyAgICAgICAgICAgIHwgICA1OSArLQogNjYgZmlsZXMg
Y2hhbmdlZCwgNDI5NSBpbnNlcnRpb25zKCspLCAxNzEyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseTMyXzY0LmFz
bQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3Nl
bWJseTY0LmFzbQoKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMTAxZmVhMGUxMDhkLi5kZTcyODM2NWRhOGMgMTAwNjQ0Ci0tLSBhL0pTVGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjItMDMtMTcgIFhhbiBMw7NwZXogIDx4YW5AaWdhbGlhLmNvbT4KKworICAgICAgICBbSlNDXSBF
bmFibGUgV2FzbUxMSW50IG9uIEFSTXY3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjEyNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5hbWUtc2Vj
dGlvbi5qczoKKyAgICAgICAgKiBzdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qczoKKyAg
ICAgICAgKiB3YXNtL3JlZ3Jlc3MvbGxpbnQtY2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnku
anM6CisKIDIwMjItMDMtMDggIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbW92ZSBpbnZhbGlkIEFTU0VSVCBpbiBMb2NhbGVJREJ1aWxkZXI6Om92ZXJyaWRlTGFu
Z3VhZ2VTY3JpcHRSZWdpb24oKS4KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5n
LXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmct
cHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24uanMKaW5kZXggNWMyMjBmZDc2Y2RjLi4wMDdhYjdh
YzU5YzEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20t
bmFtZS1zZWN0aW9uLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdh
c20tbmFtZS1zZWN0aW9uLmpzCkBAIC0xLDMgKzEsOSBAQAorLy8gVGhpcyB0ZXN0IGlzIHN0YXRp
c3RpY2FsLCBhbmQgd2l0aG91dCBvcHRpbWl6aW5nIFdhc20gdGllcnMgdGhlIGxpa2VsaWhvb2QK
Ky8vIG9mIGhpdHRpbmcgdGhlIGRlZXBlc3QgZXhwZWN0ZWQgc3RhY2sgdHJhY2UgaXMgdmVyeSBs
b3cuIFRvIGdpdmUgdXMgYSBiZXR0ZXIKKy8vIGNoYW5jZSwgZGlzYWJsZSBKUyBKSVRzIGFuZCBp
bmNyZWFzZSBzYW1wbGluZyByYXRlLgorLy8gRklYTUU6IHJlbW92ZSB3aGVuIDMyLWJpdCBwbGF0
Zm9ybXMgc3VwcG9ydCBvcHRpbWl6aW5nIFdhc20gdGllcnMKKy8vQCByZXF1aXJlT3B0aW9ucygi
LS1zYW1wbGVJbnRlcnZhbD0xMCIsICItLXVzZUJhc2VsaW5lSklUPWZhbHNlIiwgIi0tdXNlREZH
SklUPWZhbHNlIikgaWYgWyJhcm0iLCAibWlwcyJdLmluY2x1ZGU/KCRhcmNoaXRlY3R1cmUpCisv
LwogLy9AIHJ1bkRlZmF1bHQKIAogLyoKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBs
aW5nLXByb2ZpbGVyLXdhc20uanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13
YXNtLmpzCmluZGV4IDA2ZGYwMTI0OTU5Ni4uNzI0MGMwMGRlMjdlIDEwMDY0NAotLS0gYS9KU1Rl
c3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanMKQEAgLTEsMyArMSw0IEBACisvL0Agc2tpcCBpZiAk
YXJjaGl0ZWN0dXJlID09ICJhcm0iCiAvL0AgcnVuRGVmYXVsdAogCiBpZiAocGxhdGZvcm1TdXBw
b3J0c1NhbXBsaW5nUHJvZmlsZXIoKSAmJiAkdm0uaXNXYXNtU3VwcG9ydGVkKCkpIHsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvd2FzbS9yZWdyZXNzL2xsaW50LWNhbGxlZS1zYXZlcy13aXRoLWZhc3Qt
bWVtb3J5LmpzIGIvSlNUZXN0cy93YXNtL3JlZ3Jlc3MvbGxpbnQtY2FsbGVlLXNhdmVzLXdpdGgt
ZmFzdC1tZW1vcnkuanMKaW5kZXggZjlmMDljNDc1MTNhLi4xMWNmYjE2NGJiNjQgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvd2FzbS9yZWdyZXNzL2xsaW50LWNhbGxlZS1zYXZlcy13aXRoLWZhc3QtbWVt
b3J5LmpzCisrKyBiL0pTVGVzdHMvd2FzbS9yZWdyZXNzL2xsaW50LWNhbGxlZS1zYXZlcy13aXRo
LWZhc3QtbWVtb3J5LmpzCkBAIC0xLDMgKzEsNCBAQAorLy9AIHNraXAgaWYgJGFyY2hpdGVjdHVy
ZSA9PSAiYXJtIgogLy9AIHJlcXVpcmVPcHRpb25zKCItLXVzZVdlYkFzc2VtYmx5RmFzdE1lbW9y
eT10cnVlIikKIAogaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJy4uL2Fzc2VydC5qcyc7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNzRlMjNkZjU0ZGU2Li40NmVlNThhZmJk
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIwMCw2ICsyMDAsOCBA
QCBzZXQoTExJTlRfQVNNCiAgICAgbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQog
ICAgIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KICAgICBsbGludC9XZWJBc3NlbWJs
eS5hc20KKyAgICBsbGludC9XZWJBc3NlbWJseTMyXzY0LmFzbQorICAgIGxsaW50L1dlYkFzc2Vt
Ymx5NjQuYXNtCiApCiAKIHNldChPRkZMSU5FX0FTTQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5k
ZXggYTc0MzFiYmQ0YWZlLi5mZDZkZmQzYjg5NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwNiBAQAorMjAyMi0wMy0xNyAgWGFuIEzDs3BleiAgPHhhbkBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtKU0NdIEVuYWJsZSBXYXNtTExJbnQgb24gQVJNdjcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTI2MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhdGNoIGJ5IEdlemEgTG9yZSBh
bmQgWGFuIEzDs3Blei4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIExMSW50IHRpZXIgb2YgV2Vi
QXNzZW1ibHkgZm9yIEFSTXY3LiBBIGxvdCBvZiB0aGUKKyAgICAgICAgd29yayB3aWxsIGJlIHNo
YXJlZCBieSBhbnkgMzJiaXQgcG9ydCwgYnV0IHRoZSBvZmZsaW5lYXNzZW1ibGVyCisgICAgICAg
IGhhcyBvbmx5IGJlZW4gdXBkYXRlZCBmb3IgQVJNdjcgc28gZmFyLgorCisgICAgICAgIE1haW4g
aGlnaGxpZ2h0czoKKworICAgICAgICBXZSBoYXZlIHNwbGl0IHRoZSBXZWJBc3NlbWJseS5hc20g
ZmlsZSBpbnRvIHRocmVlIGNodW5rcywKKyAgICAgICAgZm9sbG93aW5nIHdoYXQgTG93TGV2ZWxJ
bnRlcnByZXRlci5hc20gZG9lcy4gVGhlIGNvbW1vbiBjb2RlCisgICAgICAgIHJlbWFpbnMgaW4g
V2ViQXNzZW1ibHkuYXNtLCBhbmQgMzIgYW5kIDY0Yml0IHNwZWNpZmljIGNvZGUgKG1vc3RseQor
ICAgICAgICBvcGNvZGUgaW1wbGVtZW50YXRpb25zKSBnb2VzIGludG8gV2ViQXNzZW1ibHkzMl82
NC5hc20gYW5kCisgICAgICAgIFdlYkFzc2VtYmx5NjQuYXNtLgorCisgICAgICAgIFdlIGhhdmUg
ZGVjaWRlZCB0byB1c2UgYSBwYWlyIG9mIEdQUnMgZm9yIGV2ZXJ5IHR5cGUgb2Ygd2FzbQorICAg
ICAgICB2YWx1ZXMsIGV2ZW4gaWYgdGhleSBhcmUgMzJiaXQgKGkzMi9mMzIpLCB3aXRoIHRoZSBv
ZGQgbnVtYmVyZWQKKyAgICAgICAgR1BSIGhvbGRpbmcgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgKG9y
IG9ubHkpIHZhbHVlLiBUaGlzIG1ha2VzIHRoZQorICAgICAgICBjb2RlIG11Y2ggc2ltcGxlciBh
bmQgYWxsb3dzIHVzIHRvIHNoYXJlIG1vcmUgY29kZSB3aXRoIHRoZSA2NGJpdAorICAgICAgICB2
YXJpYW50LiBUaGlzIGlzIG1vc3RseSByZWxldmFudCBmb3IgYXJndW1lbnQgcGFzc2luZywgYW5k
IGdpdmVuCisgICAgICAgIHRoYXQgZXZlcnkgdmFsdWUgZW5kcyB1cCBpbiBhIHN0YWNrIGFueXdh
eSB3ZSBkbyBub3QgdGhpbmsgaXQgaXMKKyAgICAgICAgc2lnbmlmaWNhbnQgZnJvbSBhIHBlcmZv
cm1hbmNlIFBPVi4KKworICAgICAgICBXZSBhcmUgcmV1c2luZyBKU1ZhbHVlUmVncyB0byBob2xk
IFdhc20gdmFsdWVzIHRvby4gT2J2aW91c2x5IHRoZXkKKyAgICAgICAgYXJlIG5vdCByZWFsbHkg
SlNWYWx1ZXMsIHNvIGl0IG1pZ2h0IG1ha2Ugc2Vuc2UgdG8gY3JlYXRlIGEgYmFzZQorICAgICAg
ICBjbGFzcyB0aGF0IGNhbiBiZSB1c2VkIGZvciBib3RoIEpTIGFuZCBXYXNtIHZhbHVlcy4KKwor
ICAgICAgICBXZSBkbyBub3QgaGF2ZSBlbm91Z2ggcmVnaXN0ZXJzIHRvIGtlZXAgdGhpbmdzIGxp
a2UgdGhlIG1lbW9yeQorICAgICAgICBiYXNlIHBvaW50ZXIgYW5kIHNpemUgaW4gcGlubmVkIHJl
Z2lzdGVycywgc28gd2UgYXJlIGZvcmNlZCB0bworICAgICAgICBsb2FkIHRoZW0gb24gZWFjaCB1
c2UuCisKKyAgICAgICAgV2UgZGlzYWJsZSB0aGUgJ1NpZ25hbGluZycgbWVtb3J5IG1vZGUsIHNp
bmNlIHRoZSBjdXJyZW50CisgICAgICAgIGltcGxlbWVudGF0aW9uIHJlbGllcyBvbiBiZWluZyBh
YmxlIHRvIG1wcm90ZWN0IGEgMl4zMiArIHJlZHpvbmUKKyAgICAgICAgcmVnaW9uIG9mIG1lbW9y
eS4gVGhpcyBjYW4gYmUgY2hhbmdlZCBpbiB0aGUgZnV0dXJlIGJ1dCBpdCdzIG5vdCBhCisgICAg
ICAgIHByaW9yaXR5IGF0IHRoZSBtb21lbnQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBhc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6QVJN
djdBc3NlbWJsZXI6OnZjdnRfc2lnbmVkVG9GbG9hdGluZ1BvaW50KToKKyAgICAgICAgKiBhc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
ckFSTXY3Ojpjb252ZXJ0SW50MzJUb0Zsb2F0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk12Nzo6dGhyZWFkU2FmZVBhdGNoYWJsZU5lYXJDYWxsKToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk12Nzo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogYjMvQjNWYWx1ZVJl
cC5oOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWVSZXA6OlZhbHVlUmVwKToKKyAgICAgICAgKiBi
eXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkJ5dGVjb2Rl
RHVtcGVyOjpmb3JtYXRDb25zdGFudCBjb25zdCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvQ2Fs
bEZyYW1lLmg6IGFkYXB0IHRvIG5ldyBjYWxsZWUgdGFnZ2luZyBmb3JtYXQuCisgICAgICAgIChK
U0M6OkNhbGxGcmFtZTo6Y2FsbGVlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6Q2FsbEZyYW1lOjp1
bnNhZmVDYWxsZWUgY29uc3QpOgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxlZUJpdHMuaDog
YWRkIHdhc20gdGFnZ2luZyBvZiBjYWxsZWUgdmFsdWVzIGZvcgorICAgICAgICAzMmJpdC4KKyAg
ICAgICAgKEpTQzo6Q2FsbGVlQml0czo6Q2FsbGVlQml0cyk6CisgICAgICAgIChKU0M6OkNhbGxl
ZUJpdHM6Om9wZXJhdG9yPSk6CisgICAgICAgIChKU0M6OkNhbGxlZUJpdHM6OmJveFdhc20pOgor
ICAgICAgICAoSlNDOjpDYWxsZWVCaXRzOjppc1dhc20gY29uc3QpOgorICAgICAgICAoSlNDOjpD
YWxsZWVCaXRzOjphc1dhc21DYWxsZWUgY29uc3QpOgorICAgICAgICAqIGludGVycHJldGVyL1Jl
Z2lzdGVyLmg6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyOjp1bmJveGVkRmxvYXQgY29uc3QpOgor
ICAgICAgICAoSlNDOjpSZWdpc3Rlcjo6YXNhblVuc2FmZVVuYm94ZWRGbG9hdCBjb25zdCk6Cisg
ICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhl
bHBlcnM6OnVuYm94RG91YmxlKToKKyAgICAgICAgKiBqaXQvUmVnaXN0ZXJBdE9mZnNldExpc3Qu
Y3BwOgorICAgICAgICAoSlNDOjpSZWdpc3RlckF0T2Zmc2V0TGlzdDo6UmVnaXN0ZXJBdE9mZnNl
dExpc3QpOgorICAgICAgICAqIGppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5oOgorICAgICAgICAo
SlNDOjpSZWdpc3RlckF0T2Zmc2V0TGlzdDo6c2l6ZU9mQXJlYUluQnl0ZXMgY29uc3QpOgorICAg
ICAgICAqIGppdC9SZWdpc3RlclNldC5jcHA6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyU2V0Ojpt
YWNyb1NjcmF0Y2hSZWdpc3RlcnMpOgorICAgICAgICAqIGxsaW50L0xMSW50T2ZmbGluZUFzbUNv
bmZpZy5oOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206Cisg
ICAgICAgICogbGxpbnQvV2ViQXNzZW1ibHkuYXNtOgorICAgICAgICAqIGxsaW50L1dlYkFzc2Vt
Ymx5MzJfNjQuYXNtOiBBZGRlZC4KKyAgICAgICAgKiBsbGludC9XZWJBc3NlbWJseTY0LmFzbTog
QWRkZWQuCisgICAgICAgICogb2ZmbGluZWFzbS9hcm0ucmI6CisgICAgICAgICogb2ZmbGluZWFz
bS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9yZWdpc3RlcnMucmI6Cisg
ICAgICAgICogb2ZmbGluZWFzbS9yaXNjLnJiOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1
ZS5oOgorICAgICAgICAoSlNDOjpqc1VuYm94ZWRGbG9hdCk6CisgICAgICAgICogcnVudGltZS9K
U0NKU1ZhbHVlSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjpKU1ZhbHVlKToKKyAg
ICAgICAgKiB3YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6Oldhc206
OkFpcklSR2VuZXJhdG9yOjp1c2VTaWduYWxpbmdNZW1vcnkgY29uc3QpOgorICAgICAgICAoSlND
OjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6QWlySVJHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpX
YXNtOjpBaXJJUkdlbmVyYXRvcjo6ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIpOgorICAgICAg
ICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6YWRkQ2FsbCk6CisgICAgICAgICogd2FzbS9X
YXNtQjNJUkdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6
OnVzZVNpZ25hbGluZ01lbW9yeSBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkIzSVJHZW5l
cmF0b3I6OkIzSVJHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9y
OjphZGRBcmd1bWVudHMpOgorICAgICAgICAoSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjplbWl0
Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcik6CisgICAgICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0
b3I6Om1lbW9yeUtpbmQpOgorICAgICAgICAoSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjphZGRD
YWxsKToKKyAgICAgICAgKiB3YXNtL1dhc21CaW5kaW5nLmNwcDoKKyAgICAgICAgKEpTQzo6V2Fz
bTo6d2FzbVRvV2FzbSk6CisgICAgICAgICogd2FzbS9XYXNtQ2FsbGVlLmNwcDoKKyAgICAgICAg
KEpTQzo6V2FzbTo6TExJbnRDYWxsZWU6OmNhbGxlZVNhdmVSZWdpc3RlcnMpOgorICAgICAgICAq
IHdhc20vV2FzbUNhbGxlZUdyb3VwLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6Q2FsbGVlR3Jv
dXA6OmlzU2FmZVRvUnVuKToKKyAgICAgICAgKiB3YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5j
cHA6CisgICAgICAgIChKU0M6Oldhc206OmpzQ2FsbGluZ0NvbnZlbnRpb24pOgorICAgICAgICAo
SlNDOjpXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24pOgorICAgICAgICAqIHdhc20vV2FzbUNh
bGxpbmdDb252ZW50aW9uLmg6CisgICAgICAgIChKU0M6Oldhc206OkNhbGxJbmZvcm1hdGlvbjo6
Y29tcHV0ZVJlc3VsdHNPZmZzZXRMaXN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6V2FzbUNhbGxp
bmdDb252ZW50aW9uOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb24pOgorICAgICAgICAoSlNDOjpXYXNt
OjpXYXNtQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxsTG9jYXRpb25JbXBsIGNvbnN0KToKKyAg
ICAgICAgKEpTQzo6V2FzbTo6V2FzbUNhbGxpbmdDb252ZW50aW9uOjptYXJzaGFsbExvY2F0aW9u
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6SlNDYWxsaW5nQ29udmVudGlvbjo6SlNDYWxs
aW5nQ29udmVudGlvbik6CisgICAgICAgIChKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246
Om1hcnNoYWxsTG9jYXRpb25JbXBsIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6SlNDYWxs
aW5nQ29udmVudGlvbjo6bWFyc2hhbGxMb2NhdGlvbiBjb25zdCk6CisgICAgICAgIChKU0M6Oldh
c206OkpTQ2FsbGluZ0NvbnZlbnRpb246OmNhbGxJbmZvcm1hdGlvbkZvciBjb25zdCk6CisgICAg
ICAgICogd2FzbS9XYXNtRm9ybWF0Lmg6CisgICAgICAgICogd2FzbS9XYXNtSW5kZXhPck5hbWUu
Y3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6SW5kZXhPck5hbWUpOgorICAg
ICAgICAoSlNDOjpXYXNtOjptYWtlU3RyaW5nKToKKyAgICAgICAgKiB3YXNtL1dhc21JbmRleE9y
TmFtZS5oOgorICAgICAgICAoSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6SW5kZXhPck5hbWUpOgor
ICAgICAgICAoSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6aXNFbXB0eSBjb25zdCk6CisgICAgICAg
IChKU0M6Oldhc206OkluZGV4T3JOYW1lOjppc0luZGV4IGNvbnN0KToKKyAgICAgICAgKEpTQzo6
V2FzbTo6SW5kZXhPck5hbWU6OmlzTmFtZSBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206Oklu
ZGV4T3JOYW1lOjppbmRleCBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1l
OjpuYW1lIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6Om5hbWVTZWN0
aW9uIGNvbnN0KToKKyAgICAgICAgKiB3YXNtL1dhc21JbnN0YW5jZS5oOgorICAgICAgICAoSlND
OjpXYXNtOjpJbnN0YW5jZTo6dXBkYXRlQ2FjaGVkTWVtb3J5KToKKyAgICAgICAgKiB3YXNtL1dh
c21MTEludEdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9y
Ojp2aXJ0dWFsUmVnaXN0ZXJGb3JXYXNtTG9jYWwpOgorICAgICAgICAoSlNDOjpXYXNtOjpMTElu
dEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVyKToKKyAgICAgICAgKEpTQzo6V2Fz
bTo6TExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvckNhbGxlZSk6CisgICAgICAgIChK
U0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjphZGRBcmd1bWVudHMpOgorICAgICAgICAoSlNDOjpX
YXNtOjpMTEludEdlbmVyYXRvcjo6YWRkTG9vcCk6CisgICAgICAgICogd2FzbS9XYXNtTExJbnRQ
bGFuLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRQbGFuOjpkaWRDb21wbGV0ZUNvbXBp
bGF0aW9uKToKKyAgICAgICAgKiB3YXNtL1dhc21NZW1vcnkuY3BwOgorICAgICAgICAoSlNDOjpX
YXNtOjpNZW1vcnlIYW5kbGU6On5NZW1vcnlIYW5kbGUpOgorICAgICAgICAoSlNDOjpXYXNtOjpN
ZW1vcnk6OnRyeUNyZWF0ZSk6CisgICAgICAgIChKU0M6Oldhc206Ok1lbW9yeTo6Z3Jvd1NoYXJl
ZCk6CisgICAgICAgIChKU0M6Oldhc206Ok1lbW9yeTo6Z3Jvdyk6CisgICAgICAgIChKU0M6Oldh
c206Ok1lbW9yeTo6Y29weSk6CisgICAgICAgICogd2FzbS9XYXNtTWVtb3J5Lmg6CisgICAgICAg
ICogd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpQ
aW5uZWRSZWdpc3RlckluZm86OmdldCk6CisgICAgICAgICogd2FzbS9XYXNtTWVtb3J5SW5mb3Jt
YXRpb24uaDoKKyAgICAgICAgKEpTQzo6V2FzbTo6UGlubmVkUmVnaXN0ZXJJbmZvOjp0b1NhdmUg
Y29uc3QpOgorICAgICAgICAqIHdhc20vV2FzbU1lbW9yeU1vZGUuY3BwOgorICAgICAgICAoSlND
OjpXYXNtOjptYWtlU3RyaW5nKToKKyAgICAgICAgKiB3YXNtL1dhc21NZW1vcnlNb2RlLmg6Cisg
ICAgICAgICogd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcDoKKyAgICAgICAgKiB3YXNtL1dhc21P
cGNvZGVPcmlnaW4uaDoKKyAgICAgICAgKiB3YXNtL1dhc21PcGVyYXRpb25zLmNwcDoKKyAgICAg
ICAgKEpTQzo6V2FzbTo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKToKKyAgICAgICAgKiB3YXNt
L1dhc21PcGVyYXRpb25zLmg6CisgICAgICAgICogd2FzbS9XYXNtUGFnZUNvdW50Lmg6CisgICAg
ICAgICogd2FzbS9XYXNtUGFyc2VyLmg6CisgICAgICAgIChKU0M6Oldhc206OlBhcnNlcjxTdWNj
ZXNzVHlwZT46OnBhcnNlVUludDMyKToKKyAgICAgICAgKEpTQzo6V2FzbTo6UGFyc2VyPFN1Y2Nl
c3NUeXBlPjo6cGFyc2VVSW50NjQpOgorICAgICAgICAqIHdhc20vV2FzbVNsb3dQYXRocy5jcHA6
CisgICAgICAgIChKU0M6OkxMSW50OjpXQVNNX1NMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKEpT
Qzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX3BvcGNvdW50KToKKyAgICAgICAgKEpTQzo6TExJbnQ6
OnNsb3dfcGF0aF93YXNtX3BvcGNvdW50bGwpOgorICAgICAgICAoSlNDOjpMTEludDo6c2xvd19w
YXRoX3dhc21faTMyX2Rpdl9zKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNt
X2kzMl9kaXZfdSk6CisgICAgICAgIChKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pMzJfcmVt
X3MpOgorICAgICAgICAoSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTMyX3JlbV91KToKKyAg
ICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2k2NF9kaXZfcyk6CisgICAgICAgIChK
U0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pNjRfZGl2X3UpOgorICAgICAgICAoSlNDOjpMTElu
dDo6c2xvd19wYXRoX3dhc21faTY0X3JlbV9zKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3df
cGF0aF93YXNtX2k2NF9yZW1fdSk6CisgICAgICAgICogd2FzbS9XYXNtU2xvd1BhdGhzLmg6Cisg
ICAgICAgICogd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5jcHA6CisgICAgICAgIChKU0M6Oldhc206
OlZhbHVlTG9jYXRpb246OmR1bXAgY29uc3QpOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFs
KToKKyAgICAgICAgKiB3YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmg6CisgICAgICAgIChKU0M6Oldh
c206OlZhbHVlTG9jYXRpb246OlZhbHVlTG9jYXRpb24pOgorICAgICAgICAoSlNDOjpXYXNtOjpW
YWx1ZUxvY2F0aW9uOjppc0dQUiBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9j
YXRpb246OmlzRlBSIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6
aXNTdGFjayBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzU3Rh
Y2tBcmd1bWVudCBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246Ompz
ciBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmZwciBjb25zdCk6
CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OnJlZyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzUmVnIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6cmVnIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6Z3ByIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiB3YXNtL2pzL0pTVG9XYXNtLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6bWFyc2hh
bGxKU1Jlc3VsdCk6CisgICAgICAgIChKU0M6Oldhc206OmNyZWF0ZUpTVG9XYXNtV3JhcHBlcik6
CisgICAgICAgICogd2FzbS9qcy9XYXNtVG9KUy5jcHA6CisgICAgICAgIChKU0M6Oldhc206Ondh
c21Ub0pTKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwOgorICAg
ICAgICAoSlNDOjpXZWJBc3NlbWJseUZ1bmN0aW9uOjpwcmV2aW91c0luc3RhbmNlT2Zmc2V0IGNv
bnN0KToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2lu
dFNsb3cpOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICog
d2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHA6CisgICAgICAgIChKU0M6OldlYkFz
c2VtYmx5TW9kdWxlUmVjb3JkOjppbml0aWFsaXplRXhwb3J0cyk6CisKIDIwMjItMDMtMTcgIEtl
aXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGNyYXNo
IGluIEJsZWFjaGVyIFJlcG9ydCBkdWUgdG8gYmFkIEpTT2JqZWN0UmVmIHBhc3NlZCB0byBBUEkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJs
ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaApp
bmRleCBhY2FkZGQyZDU2YTIuLjEyODcwODMyNTA3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaApAQCAtMTk2NywxMCArMTk2NywxMCBA
QCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLnZmcE9wKE9QX1ZDTVAsIE9QX1ZDTVBiLCB0
cnVlLCBWRlBPcGVyYW5kKDUpLCByZCwgVkZQT3BlcmFuZCgwKSk7CiAgICAgfQogCi0gICAgdm9p
ZCB2Y3Z0X3NpZ25lZFRvRmxvYXRpbmdQb2ludChGUERvdWJsZVJlZ2lzdGVySUQgcmQsIEZQU2lu
Z2xlUmVnaXN0ZXJJRCBybSkKKyAgICB2b2lkIHZjdnRfc2lnbmVkVG9GbG9hdGluZ1BvaW50KEZQ
RG91YmxlUmVnaXN0ZXJJRCByZCwgRlBTaW5nbGVSZWdpc3RlcklEIHJtLCBib29sIHRvRG91Ymxl
ID0gdHJ1ZSkKICAgICB7CiAgICAgICAgIC8vIGJvb2xlYW4gdmFsdWVzIGFyZSA2NGJpdCAodG9J
bnQsIHVuc2lnbmVkLCByb3VuZFplcm8pCi0gICAgICAgIG1fZm9ybWF0dGVyLnZmcE9wKE9QX1ZD
VlRfRlBJVkZQLCBPUF9WQ1ZUX0ZQSVZGUGIsIHRydWUsIHZjdnRPcChmYWxzZSwgZmFsc2UsIGZh
bHNlKSwgcmQsIHJtKTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudmZwT3AoT1BfVkNWVF9GUElWRlAs
IE9QX1ZDVlRfRlBJVkZQYiwgdG9Eb3VibGUsIHZjdnRPcChmYWxzZSwgZmFsc2UsIGZhbHNlKSwg
cmQsIHJtKTsKICAgICB9CiAKICAgICB2b2lkIHZjdnRfZmxvYXRpbmdQb2ludFRvU2lnbmVkKEZQ
U2luZ2xlUmVnaXN0ZXJJRCByZCwgRlBEb3VibGVSZWdpc3RlcklEIHJtKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRl
eCBmZTdmMmQ1YzRmM2YuLmJiYzFmNzU0OWU3NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKQEAgLTM4LDEwICszOCwx
MiBAQCBuYW1lc3BhY2UgSlNDIHsKIHVzaW5nIEFzc2VtYmxlciA9IFRBUkdFVF9BU1NFTUJMRVI7
CiAKIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNdjcgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2Vt
YmxlcjxBc3NlbWJsZXI+IHsKK3B1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIFJlZ2lzdGVy
SUQgZGF0YVRlbXBSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6aXA7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBSZWdpc3RlcklEIGFkZHJlc3NUZW1wUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnI2Owog
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBBUk1SZWdpc3RlcnM6OkZQRG91YmxlUmVnaXN0ZXJJRCBm
cFRlbXBSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6ZDc7Citwcml2YXRlOgorICAgIHN0YXRpYyBj
b25zdGV4cHIgQVJNUmVnaXN0ZXJzOjpGUERvdWJsZVJlZ2lzdGVySUQgZnBUZW1wUmVnaXN0ZXIg
PSBBUk1SZWdpc3RlcnM6OmQxNTsKICAgICBpbmxpbmUgQVJNUmVnaXN0ZXJzOjpGUFNpbmdsZVJl
Z2lzdGVySUQgZnBUZW1wUmVnaXN0ZXJBc1NpbmdsZSgpIHsgcmV0dXJuIEFSTVJlZ2lzdGVyczo6
YXNTaW5nbGUoZnBUZW1wUmVnaXN0ZXIpOyB9CiAKICAgICAvLyBJbiB0aGUgVGh1bWItMiBpbnN0
cnVjdGlvbiBzZXQsIGluc3RydWN0aW9ucyBvcGVyYXRpbmcgb25seSBvbiByZWdpc3RlcnMgcjAt
cjcgY2FuIG9mdGVuCkBAIC0xNDE2LDYgKzE0MTgsMTIgQEAgcHVibGljOgogICAgICAgICBDUkFT
SCgpOwogICAgIH0KIAorICAgIHZvaWQgY29udmVydEludDMyVG9GbG9hdChSZWdpc3RlcklEIHNy
YywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci52bW92KGZw
VGVtcFJlZ2lzdGVyLCBzcmMsIHNyYyk7CisgICAgICAgIG1fYXNzZW1ibGVyLnZjdnRfc2lnbmVk
VG9GbG9hdGluZ1BvaW50KGRlc3QsIGZwVGVtcFJlZ2lzdGVyQXNTaW5nbGUoKSwgLyogdG9Eb3Vi
bGU6ICovIGZhbHNlKTsKKyAgICB9CisKICAgICB2b2lkIGNvbnZlcnRJbnQzMlRvRG91YmxlKFJl
Z2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1i
bGVyLnZtb3YoZnBUZW1wUmVnaXN0ZXIsIHNyYywgc3JjKTsKQEAgLTIyNDksNiArMjI1NywxNCBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBDYWxsKG1fYXNzZW1ibGVyLmJ4KGRhdGFUZW1wUmVn
aXN0ZXIpLCBDYWxsOjpMaW5rYWJsZU5lYXJUYWlsKTsKICAgICB9CiAKKyAgICAvLyBGSVhNRTog
d2h5IGlzIHRoaXMgdGhlIHNhbWUgdGhhbiBuZWFyQ2FsbCgpIGluIEFSTTY0PyBpcyBpdCByaWdo
dD8KKyAgICBBTFdBWVNfSU5MSU5FIENhbGwgdGhyZWFkU2FmZVBhdGNoYWJsZU5lYXJDYWxsKCkK
KyAgICB7CisgICAgICAgIGludmFsaWRhdGVBbGxUZW1wUmVnaXN0ZXJzKCk7CisgICAgICAgIG1v
dmVGaXhlZFdpZHRoRW5jb2RpbmcoVHJ1c3RlZEltbTMyKDApLCBkYXRhVGVtcFJlZ2lzdGVyKTsK
KyAgICAgICAgcmV0dXJuIENhbGwobV9hc3NlbWJsZXIuYmx4KGRhdGFUZW1wUmVnaXN0ZXIpLCBD
YWxsOjpMaW5rYWJsZU5lYXIpOworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUgQ2FsbCBjYWxs
KFB0clRhZykKICAgICB7CiAgICAgICAgIG1vdmVGaXhlZFdpZHRoRW5jb2RpbmcoVHJ1c3RlZElt
bTMyKDApLCBkYXRhVGVtcFJlZ2lzdGVyKTsKQEAgLTIyNzMsNiArMjI4OSwxMiBAQCBwdWJsaWM6
CiAgICAgQUxXQVlTX0lOTElORSBDYWxsIGNhbGwoUmVnaXN0ZXJJRCB0YXJnZXQsIFJlZ2lzdGVy
SUQgY2FsbFRhZykgeyByZXR1cm4gVU5VU0VEX1BBUkFNKGNhbGxUYWcpLCBjYWxsKHRhcmdldCwg
Tm9QdHJUYWcpOyB9CiAgICAgQUxXQVlTX0lOTElORSBDYWxsIGNhbGwoQWRkcmVzcyBhZGRyZXNz
LCBSZWdpc3RlcklEIGNhbGxUYWcpIHsgcmV0dXJuIFVOVVNFRF9QQVJBTShjYWxsVGFnKSwgY2Fs
bChhZGRyZXNzLCBOb1B0clRhZyk7IH0KIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBjYWxsT3Bl
cmF0aW9uKGNvbnN0IEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4gb3BlcmF0aW9uKQorICAg
IHsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKG9wZXJhdGlvbi5leGVjdXRhYmxlQWRkcmVz
cygpKSwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7CisgICAgICAgIGNhbGwoYWRkcmVzc1RlbXBSZWdp
c3RlciwgT3BlcmF0aW9uUHRyVGFnKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQg
cmV0KCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmJ4KGxpbmtSZWdpc3Rlcik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAuaAppbmRleCAxNTdiYzg4NjgyMzEuLjc2OTM4YzZm
ZWNhYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oCkBAIC0xMjYsOSArMTI2
LDEzIEBAIHB1YmxpYzoKICAgICBWYWx1ZVJlcChXYXNtOjpWYWx1ZUxvY2F0aW9uIGxvY2F0aW9u
KQogICAgIHsKICAgICAgICAgc3dpdGNoIChsb2NhdGlvbi5raW5kKCkpIHsKLSAgICAgICAgY2Fz
ZSBXYXNtOjpWYWx1ZUxvY2F0aW9uOjpLaW5kOjpSZWdpc3RlcjoKKyAgICAgICAgY2FzZSBXYXNt
OjpWYWx1ZUxvY2F0aW9uOjpLaW5kOjpHUFJSZWdpc3RlcjoKICAgICAgICAgICAgIG1fa2luZCA9
IFJlZ2lzdGVyOwotICAgICAgICAgICAgdS5yZWcgPSBsb2NhdGlvbi5yZWcoKTsKKyAgICAgICAg
ICAgIHUucmVnID0gbG9jYXRpb24uanNyKCkucGF5bG9hZEdQUigpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgV2FzbTo6VmFsdWVMb2NhdGlvbjo6S2luZDo6RlBSUmVnaXN0ZXI6
CisgICAgICAgICAgICBtX2tpbmQgPSBSZWdpc3RlcjsKKyAgICAgICAgICAgIHUucmVnID0gbG9j
YXRpb24uZnByKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXYXNtOjpWYWx1
ZUxvY2F0aW9uOjpLaW5kOjpTdGFjazoKICAgICAgICAgICAgIG1fa2luZCA9IFN0YWNrOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKaW5k
ZXggMDhhMjM1ODA0NGZkLi4wMDAxNDc5NzA0MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcApAQCAtNDEzLDcgKzQxMyw3IEBAIENT
dHJpbmcgQnl0ZWNvZGVEdW1wZXI6OmZvcm1hdENvbnN0YW50KFR5cGUgdHlwZSwgdWludDY0X3Qg
Y29uc3RhbnQpIGNvbnN0CiAgICAgICAgIGlmIChpc0Z1bmNyZWYodHlwZSkgfHwgaXNFeHRlcm5y
ZWYodHlwZSkpIHsKICAgICAgICAgICAgIGlmIChKU1ZhbHVlOjpkZWNvZGUoY29uc3RhbnQpID09
IGpzTnVsbCgpKQogICAgICAgICAgICAgICAgIHJldHVybiAibnVsbCI7Ci0gICAgICAgICAgICBy
ZXR1cm4gdG9DU3RyaW5nKFJhd1BvaW50ZXIoYml0d2lzZV9jYXN0PHZvaWQqPihjb25zdGFudCkp
KTsKKyAgICAgICAgICAgIHJldHVybiB0b0NTdHJpbmcoUmF3UG9pbnRlcihiaXR3aXNlX2Nhc3Q8
dm9pZCo+KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oY29uc3RhbnQpKSkpOwogICAgICAgICB9CiAK
ICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAppbmRleCA0MTllZmIzNmE0MDkuLmFjMzM2
NGNiNDc3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0Nh
bGxGcmFtZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJh
bWUuaApAQCAtMTMxLDggKzEzMSw4IEBAIG5hbWVzcGFjZSBKU0MgIHsKICAgICAgICAgLy8gdG8g
c2VlIGlmIGl0J3MgYSBjZWxsLCBhbmQgaWYgaXQncyBub3QsIHdlIHRocm93IGFuIGV4Y2VwdGlv
bi4KICAgICAgICAgaW5saW5lIEpTVmFsdWUgZ3VhcmFudGVlZEpTVmFsdWVDYWxsZWUoKSBjb25z
dDsKICAgICAgICAgaW5saW5lIEpTT2JqZWN0KiBqc0NhbGxlZSgpIGNvbnN0OwotICAgICAgICBD
YWxsZWVCaXRzIGNhbGxlZSgpIGNvbnN0IHsgcmV0dXJuIENhbGxlZUJpdHModGhpc1tzdGF0aWNf
Y2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSldLnBvaW50ZXIoKSk7IH0KLSAgICAgICAg
U1VQUFJFU1NfQVNBTiBDYWxsZWVCaXRzIHVuc2FmZUNhbGxlZSgpIGNvbnN0IHsgcmV0dXJuIENh
bGxlZUJpdHModGhpc1tzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSldLmFz
YW5VbnNhZmVQb2ludGVyKCkpOyB9CisgICAgICAgIENhbGxlZUJpdHMgY2FsbGVlKCkgY29uc3Qg
eyByZXR1cm4gQ2FsbGVlQml0cyh0aGlzW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6
Y2FsbGVlKV0udW5ib3hlZEludDY0KCkpOyB9CisgICAgICAgIFNVUFBSRVNTX0FTQU4gQ2FsbGVl
Qml0cyB1bnNhZmVDYWxsZWUoKSBjb25zdCB7IHJldHVybiBDYWxsZWVCaXRzKHRoaXNbc3RhdGlj
X2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXS5hc2FuVW5zYWZlVW5ib3hlZEludDY0
KCkpOyB9CiAgICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrKCkgY29uc3Q7CiAgICAgICAgIENv
ZGVCbG9jayoqIGFkZHJlc3NPZkNvZGVCbG9jaygpIGNvbnN0IHsgcmV0dXJuIGJpdHdpc2VfY2Fz
dDxDb2RlQmxvY2sqKj4odGhpcyArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y29k
ZUJsb2NrKSk7IH0KICAgICAgICAgaW5saW5lIFNVUFBSRVNTX0FTQU4gQ29kZUJsb2NrKiB1bnNh
ZmVDb2RlQmxvY2soKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9DYWxsZWVCaXRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvQ2FsbGVlQml0cy5oCmluZGV4IDE4YmI3ZWY3ZmE4Yy4uM2NlYmQ5MTg2MDdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbGVlQml0cy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmgKQEAgLTM5LDEx
ICszOSwyMSBAQCBjbGFzcyBKU0NlbGw7CiBjbGFzcyBDYWxsZWVCaXRzIHsKIHB1YmxpYzoKICAg
ICBDYWxsZWVCaXRzKCkgPSBkZWZhdWx0OwotICAgIENhbGxlZUJpdHModm9pZCogcHRyKSA6IG1f
cHRyKHB0cikgeyB9IAorICAgIENhbGxlZUJpdHMoaW50NjRfdCB2YWx1ZSkKKyNpZiBVU0UoSlNW
QUxVRTY0KQorICAgICAgICA6IG1fcHRyIHsgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odmFsdWUp
IH0KKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIDogbV9wdHIgeyByZWludGVycHJl
dF9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KHZhbHVlID4+IChQYXlsb2FkT2Zm
c2V0ICogQ0hBUl9CSVQpKSkgfQorICAgICAgICAsIG1fdGFnIHsgc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KHZhbHVlID4+IChUYWdPZmZzZXQgKiBDSEFSX0JJVCkpIH0KKyNlbmRpZgorICAgIHsgfQog
CiAgICAgQ2FsbGVlQml0cyYgb3BlcmF0b3I9KEpTQ2VsbCogY2VsbCkKICAgICB7CiAgICAgICAg
IG1fcHRyID0gY2VsbDsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBtX3RhZyA9IEpT
VmFsdWU6OkNlbGxUYWc7CisjZW5kaWYKICAgICAgICAgQVNTRVJUKGlzQ2VsbCgpKTsKICAgICAg
ICAgcmV0dXJuICp0aGlzOwogICAgIH0KQEAgLTUxLDE4ICs2MSwyNCBAQCBwdWJsaWM6CiAjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKQogICAgIHN0YXRpYyB2b2lkKiBib3hXYXNtKFdhc206OkNhbGxl
ZSogY2FsbGVlKQogICAgIHsKLSAgICAgICAgQ2FsbGVlQml0cyByZXN1bHQocmVpbnRlcnByZXRf
Y2FzdDx2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNhbGxlZSkgfCBKU1ZhbHVl
OjpXYXNtVGFnKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgQ2FsbGVlQml0cyByZXN1
bHQgeyByZWludGVycHJldF9jYXN0PGludDY0X3Q+KGNhbGxlZSkgfCBKU1ZhbHVlOjpXYXNtVGFn
IH07CiAgICAgICAgIEFTU0VSVChyZXN1bHQuaXNXYXNtKCkpOwogICAgICAgICByZXR1cm4gcmVz
dWx0LnJhd1B0cigpOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgcmV0dXJuIGNh
bGxlZTsgLy8gVGhlIHBvaW50ZXIgaXMgYXMgaXMsIGJ1dCB0aGUgY29ycmVzcG9uZGluZyB0YWcg
ZmllbGQgbmVlZHMgdG8gYmUgc2V0IHRvIFdhc21UYWcgc2VwYXJhdGVseS4KKyNlbmRpZgogICAg
IH0KICNlbmRpZgogCiAgICAgYm9vbCBpc1dhc20oKSBjb25zdAogICAgIHsKLSNpZiBFTkFCTEUo
V0VCQVNTRU1CTFkpCi0gICAgICAgIHJldHVybiAocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+
KG1fcHRyKSAmIEpTVmFsdWU6Oldhc21NYXNrKSA9PSBKU1ZhbHVlOjpXYXNtVGFnOwotI2Vsc2UK
KyNpZiAhRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICAgICByZXR1cm4gZmFsc2U7CisjZWxpZiBV
U0UoSlNWQUxVRTY0KQorICAgICAgICByZXR1cm4gKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90
PihtX3B0cikgJiBKU1ZhbHVlOjpXYXNtTWFzaykgPT0gSlNWYWx1ZTo6V2FzbVRhZzsKKyNlbGlm
IFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJldHVybiBtX3RhZyA9PSBKU1ZhbHVlOjpXYXNt
VGFnOwogI2VuZGlmCiAgICAgfQogICAgIGJvb2wgaXNDZWxsKCkgY29uc3QgeyByZXR1cm4gIWlz
V2FzbSgpOyB9CkBAIC03NywxNCArOTMsMjEgQEAgcHVibGljOgogICAgIFdhc206OkNhbGxlZSog
YXNXYXNtQ2FsbGVlKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChpc1dhc20oKSk7Cisj
aWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2FzbTo6
Q2FsbGVlKj4ocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG1fcHRyKSAmIH5KU1ZhbHVlOjpX
YXNtVGFnKTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PFdhc206OkNhbGxlZSo+KG1fcHRyKTsKKyNlbmRpZgogICAgIH0KICNlbmRpZgog
CiAgICAgdm9pZCogcmF3UHRyKCkgY29uc3QgeyByZXR1cm4gbV9wdHI7IH0KLSAgICAKKwogcHJp
dmF0ZToKICAgICB2b2lkKiBtX3B0ciB7IG51bGxwdHIgfTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0
KQorICAgIHVpbnQzMl90IG1fdGFnIHsgSlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZyB9OworI2VuZGlm
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL1JlZ2lzdGVyLmgKaW5kZXggZDg3OWM5MGJlMzExLi40NjE4MTNjNDFkMzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oCkBAIC03Miw2ICs3
MiwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgaW50NjRfdCB1bmJveGVkSW50NjQoKSBj
b25zdDsKICAgICAgICAgaW50NjRfdCBhc2FuVW5zYWZlVW5ib3hlZEludDY0KCkgY29uc3Q7CiAg
ICAgICAgIGJvb2wgdW5ib3hlZEJvb2xlYW4oKSBjb25zdDsKKyNpZiBFTkFCTEUoV0VCQVNTRU1C
TFkpICYmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIGZsb2F0IHVuYm94ZWRGbG9hdCgpIGNv
bnN0OworICAgICAgICBmbG9hdCBhc2FuVW5zYWZlVW5ib3hlZEZsb2F0KCkgY29uc3Q7CisjZW5k
aWYKICAgICAgICAgZG91YmxlIHVuYm94ZWREb3VibGUoKSBjb25zdDsKICAgICAgICAgZG91Ymxl
IGFzYW5VbnNhZmVVbmJveGVkRG91YmxlKCkgY29uc3Q7CiAgICAgICAgIEpTQ2VsbCogdW5ib3hl
ZENlbGwoKSBjb25zdDsKQEAgLTE4OCw2ICsxOTIsMTggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIHJldHVybiAhIXBheWxvYWQoKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkp
ICYmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgQUxXQVlTX0lOTElORSBmbG9hdCBSZWdpc3Rlcjo6
dW5ib3hlZEZsb2F0KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8
ZmxvYXQ+KHBheWxvYWQoKSk7CisgICAgfQorCisgICAgU1VQUFJFU1NfQVNBTiBBTFdBWVNfSU5M
SU5FIGZsb2F0IFJlZ2lzdGVyOjphc2FuVW5zYWZlVW5ib3hlZEZsb2F0KCkgY29uc3QKKyAgICB7
CisgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8ZmxvYXQ+KHBheWxvYWQoKSk7CisgICAgfQor
I2VuZGlmCisKICAgICBBTFdBWVNfSU5MSU5FIGRvdWJsZSBSZWdpc3Rlcjo6dW5ib3hlZERvdWJs
ZSgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gdS5udW1iZXI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAppbmRleCAyN2RkNTk3OTBiNzEuLmUyNDUy
ZWRjZWU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhl
bHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5o
CkBAIC0xMzg5LDcgKzEzODksMTAgQEAgcHVibGljOgogICAgICAgICBqaXRBc3NlcnRJc0pTRG91
YmxlKGdwcik7CiAgICAgICAgIHJldHVybiB1bmJveERvdWJsZVdpdGhvdXRBc3NlcnRpb25zKGdw
ciwgcmVzdWx0R1BSLCBmcHIpOwogICAgIH0KLSAgICAKKyAgICB2b2lkIHVuYm94RG91YmxlKEpT
VmFsdWVSZWdzIHJlZ3MsIEZQUlJlZyBmcHIpCisgICAgeworICAgICAgICB1bmJveERvdWJsZShy
ZWdzLnRhZ0dQUigpLCByZWdzLnBheWxvYWRHUFIoKSwgZnByKTsKKyAgICB9CiAgICAgdm9pZCBi
b3hEb3VibGUoRlBSUmVnIGZwciwgSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJzTW9kZSBt
b2RlID0gSGF2ZVRhZ1JlZ2lzdGVycykKICAgICB7CiAgICAgICAgIGJveERvdWJsZShmcHIsIHJl
Z3MuZ3ByKCksIG1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9S
ZWdpc3RlckF0T2Zmc2V0TGlzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lz
dGVyQXRPZmZzZXRMaXN0LmNwcAppbmRleCBlZDgzMDNkZTQxYjUuLmJhZDIwMjlmN2NmOSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5j
cHAKQEAgLTM5LDE4ICszOSw0MiBAQCBSZWdpc3RlckF0T2Zmc2V0TGlzdDo6UmVnaXN0ZXJBdE9m
ZnNldExpc3QoKSB7IH0KIFJlZ2lzdGVyQXRPZmZzZXRMaXN0OjpSZWdpc3RlckF0T2Zmc2V0TGlz
dChSZWdpc3RlclNldCByZWdpc3RlclNldCwgT2Zmc2V0QmFzZVR5cGUgb2Zmc2V0QmFzZVR5cGUp
CiAgICAgOiBtX3JlZ2lzdGVycyhyZWdpc3RlclNldC5udW1iZXJPZlNldFJlZ2lzdGVycygpKQog
ewotICAgIHNpemVfdCBudW1iZXJPZlJlZ2lzdGVycyA9IHJlZ2lzdGVyU2V0Lm51bWJlck9mU2V0
UmVnaXN0ZXJzKCk7Ci0gICAgcHRyZGlmZl90IG9mZnNldCA9IDA7Ci0gICAgCisgICAgY29uc3Rl
eHByIHNpemVfdCBTaXplT2ZHUFIgPSBzaXplb2YoQ1BVUmVnaXN0ZXIpOworICAgIGNvbnN0ZXhw
ciBzaXplX3QgU2l6ZU9mRlBSID0gc2l6ZW9mKGRvdWJsZSk7CisKKyNpZiBVU0UoSlNWQUxVRTY0
KQorICAgIHN0YXRpY19hc3NlcnQoU2l6ZU9mR1BSID09IFNpemVPZkZQUik7CisgICAgc2l6ZV90
IG51bWJlck9mUmVncyA9IHJlZ2lzdGVyU2V0Lm51bWJlck9mU2V0UmVnaXN0ZXJzKCk7CisgICAg
bV9zaXplT2ZBcmVhSW5CeXRlcyA9IG51bWJlck9mUmVncyAqIFNpemVPZkdQUjsKKyNlbGlmIFVT
RShKU1ZBTFVFMzJfNjQpCisgICAgc3RhdGljX2Fzc2VydCgyICogU2l6ZU9mR1BSID09IFNpemVP
ZkZQUik7CisgICAgc2l6ZV90IG51bWJlck9mR1BScyA9IHJlZ2lzdGVyU2V0Lm51bWJlck9mU2V0
R1BScygpOworICAgIHNpemVfdCBudW1iZXJPZkZQUnMgPSByZWdpc3RlclNldC5udW1iZXJPZlNl
dEZQUnMoKTsKKyAgICBpZiAobnVtYmVyT2ZGUFJzKQorICAgICAgICBudW1iZXJPZkdQUnMgPSBX
VEY6OnJvdW5kVXBUb011bHRpcGxlT2Y8Mj4obnVtYmVyT2ZHUFJzKTsKKyAgICBtX3NpemVPZkFy
ZWFJbkJ5dGVzID0gbnVtYmVyT2ZHUFJzICogU2l6ZU9mR1BSICsgbnVtYmVyT2ZGUFJzICogU2l6
ZU9mRlBSOworI2VuZGlmCisKKyAgICBwdHJkaWZmX3Qgc3RhcnRPZmZzZXQgPSAwOwogICAgIGlm
IChvZmZzZXRCYXNlVHlwZSA9PSBGcmFtZVBvaW50ZXJCYXNlZCkKLSAgICAgICAgb2Zmc2V0ID0g
LShzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KG51bWJlck9mUmVnaXN0ZXJzKSAqIHNpemVvZihDUFVS
ZWdpc3RlcikpOworICAgICAgICBzdGFydE9mZnNldCA9IC1zdGF0aWNfY2FzdDxwdHJkaWZmX3Q+
KG1fc2l6ZU9mQXJlYUluQnl0ZXMpOwogCisgICAgcHRyZGlmZl90IG9mZnNldCA9IHN0YXJ0T2Zm
c2V0OwogICAgIHVuc2lnbmVkIGluZGV4ID0gMDsKICAgICByZWdpc3RlclNldC5mb3JFYWNoKFsm
XSAoUmVnIHJlZykgeworICAgICAgICBzaXplX3QgcmVnaXN0ZXJTaXplID0gU2l6ZU9mR1BSOwor
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIGlmIChyZWcuaXNGUFIoKSkgeworICAgICAg
ICAgICAgcmVnaXN0ZXJTaXplID0gU2l6ZU9mRlBSOworICAgICAgICAgICAgb2Zmc2V0ID0gV1RG
Ojpyb3VuZFVwVG9NdWx0aXBsZU9mPFNpemVPZkZQUj4ob2Zmc2V0KTsKKyAgICAgICAgfQorI2Vu
ZGlmCiAgICAgICAgIG1fcmVnaXN0ZXJzW2luZGV4XSA9IFJlZ2lzdGVyQXRPZmZzZXQocmVnLCBv
ZmZzZXQpOwotICAgICAgICBvZmZzZXQgKz0gc2l6ZW9mKENQVVJlZ2lzdGVyKTsKKyAgICAgICAg
b2Zmc2V0ICs9IHJlZ2lzdGVyU2l6ZTsKICAgICAgICAgKytpbmRleDsKICAgICB9KTsKKworICAg
IEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KG9mZnNldCAtIHN0YXJ0T2Zmc2V0KSA9PSBtX3Np
emVPZkFyZWFJbkJ5dGVzKTsKIH0KIAogdm9pZCBSZWdpc3RlckF0T2Zmc2V0TGlzdDo6ZHVtcChQ
cmludFN0cmVhbSYgb3V0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9S
ZWdpc3RlckF0T2Zmc2V0TGlzdC5oCmluZGV4IGQxMTdjZjc1ZTA5OC4uMmEwZThiOWQxMjU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5o
CkBAIC02NSwxMSArNjUsMTQgQEAgcHVibGljOgogICAgIEZpeGVkVmVjdG9yPFJlZ2lzdGVyQXRP
ZmZzZXQ+Ojpjb25zdF9pdGVyYXRvciBiZWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaXN0ZXJz
LmJlZ2luKCk7IH0KICAgICBGaXhlZFZlY3RvcjxSZWdpc3RlckF0T2Zmc2V0Pjo6Y29uc3RfaXRl
cmF0b3IgZW5kKCkgY29uc3QgeyByZXR1cm4gbV9yZWdpc3RlcnMuZW5kKCk7IH0KIAorICAgIHNp
emVfdCBzaXplT2ZBcmVhSW5CeXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZU9mQXJlYUluQnl0
ZXM7IH0KKwogICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlckF0T2Zmc2V0TGlzdCYgbGxpbnRCYXNl
bGluZUNhbGxlZVNhdmVSZWdpc3RlcnMoKTsgLy8gUmVnaXN0ZXJzIGFuZCBPZmZzZXRzIHNhdmVk
IGFuZCB1c2VkIGJ5IHRoZSBMTEludC4KICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJBdE9mZnNl
dExpc3QmIGRmZ0NhbGxlZVNhdmVSZWdpc3RlcnMoKTsgLy8gUmVnaXN0ZXJzIGFuZCBPZmZzZXRz
IHNhdmVkIGFuZCB1c2VkIGJ5IERGRy4KIAogcHJpdmF0ZToKICAgICBGaXhlZFZlY3RvcjxSZWdp
c3RlckF0T2Zmc2V0PiBtX3JlZ2lzdGVyczsKKyAgICBzaXplX3QgbV9zaXplT2ZBcmVhSW5CeXRl
czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9SZWdpc3RlclNldC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Jl
Z2lzdGVyU2V0LmNwcAppbmRleCAzOGM2Nzk0OWZkZGYuLjg5NjY0MjllMmI2ZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5jcHAKQEAgLTk0LDYgKzk0LDggQEAgUmVn
aXN0ZXJTZXQgUmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycygpCiAgICAgcmV0dXJu
IFJlZ2lzdGVyU2V0KE1hY3JvQXNzZW1ibGVyOjpzX3NjcmF0Y2hSZWdpc3Rlcik7CiAjZWxpZiBD
UFUoQVJNNjQpIHx8IENQVShSSVNDVjY0KQogICAgIHJldHVybiBSZWdpc3RlclNldChNYWNyb0Fz
c2VtYmxlcjo6ZGF0YVRlbXBSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6Om1lbW9yeVRlbXBSZWdp
c3Rlcik7CisjZWxpZiBDUFUoQVJNKQorICAgIHJldHVybiBSZWdpc3RlclNldChNYWNyb0Fzc2Vt
Ymxlcjo6ZGF0YVRlbXBSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6OmFkZHJlc3NUZW1wUmVnaXN0
ZXIpOwogI2VsaWYgQ1BVKE1JUFMpCiAgICAgUmVnaXN0ZXJTZXQgcmVzdWx0OwogICAgIHJlc3Vs
dC5zZXQoTWFjcm9Bc3NlbWJsZXI6OmltbVRlbXBSZWdpc3Rlcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKaW5kZXggZTc2ZGFk
YTBkMzMyLi5iNDcwMzExNWIzYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9MTEludE9mZmxpbmVBc21Db25maWcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKQEAgLTE0Myw2ICsxNDMsMTIgQEAKICNkZWZp
bmUgT0ZGTElORV9BU01fSlNWQUxVRTY0IDAKICNlbmRpZgogCisjaWYgVVNFKEpTVkFMVUUzMl82
NCkKKyNkZWZpbmUgT0ZGTElORV9BU01fSlNWQUxVRTMyXzY0IDEKKyNlbHNlCisjZGVmaW5lIE9G
RkxJTkVfQVNNX0pTVkFMVUUzMl82NCAwCisjZW5kaWYKKwogI2lmIFVTRShCSUdJTlQzMikKICNk
ZWZpbmUgT0ZGTElORV9BU01fQklHSU5UMzIgMQogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXgg
YWNlODcxMTY3MmU3Li5jY2VhMDNhYjQyNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCkBAIC0zOCwxOCAr
MzgsMzQgQEAgbWFjcm8gZ2V0dU9wZXJhbmRXaWRlMTZKUyhvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFt
ZSwgZHN0KQogICAgIGxvYWRoIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9p
bmRleCAqIDIgKyBPcGNvZGVJRFdpZGUxNlNpemVKU1tQQiwgUEMsIDFdLCBkc3QKIGVuZAogCitt
YWNybyBnZXR1T3BlcmFuZFdpZGUxNldhc20ob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkK
KyAgICBsb2FkaCBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiAy
ICsgT3Bjb2RlSURXaWRlMTZTaXplV2FzbVtQQiwgUEMsIDFdLCBkc3QKK2VuZAorCiBtYWNybyBn
ZXRPcGVyYW5kV2lkZTE2SlMob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkKICAgICBsb2Fk
aHNpIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRleCAqIDIgKyBPcGNv
ZGVJRFdpZGUxNlNpemVKU1tQQiwgUEMsIDFdLCBkc3QKIGVuZAogCittYWNybyBnZXRPcGVyYW5k
V2lkZTE2V2FzbShvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQorICAgIGxvYWRoc2kgY29u
c3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogMiArIE9wY29kZUlEV2lk
ZTE2U2l6ZVdhc21bUEIsIFBDLCAxXSwgZHN0CitlbmQKKwogbWFjcm8gZ2V0dU9wZXJhbmRXaWRl
MzJKUyhvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQogICAgIGxvYWRpIGNvbnN0ZXhwciAl
b3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRleCAqIDQgKyBPcGNvZGVJRFdpZGUzMlNpemVK
U1tQQiwgUEMsIDFdLCBkc3QKIGVuZAogCittYWNybyBnZXR1T3BlcmFuZFdpZGUzMldhc20ob3Bj
b2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkKKyAgICBsb2FkaSBjb25zdGV4cHIgJW9wY29kZVN0
cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiA0ICsgT3Bjb2RlSURXaWRlMzJTaXplV2FzbVtQQiwg
UEMsIDFdLCBkc3QKK2VuZAorCiBtYWNybyBnZXRPcGVyYW5kV2lkZTMySlMob3Bjb2RlU3RydWN0
LCBmaWVsZE5hbWUsIGRzdCkKICAgICBsb2FkaXMgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVm
aWVsZE5hbWUlX2luZGV4ICogNCArIE9wY29kZUlEV2lkZTMyU2l6ZUpTW1BCLCBQQywgMV0sIGRz
dAogZW5kCiAKK21hY3JvIGdldE9wZXJhbmRXaWRlMzJXYXNtKG9wY29kZVN0cnVjdCwgZmllbGRO
YW1lLCBkc3QpCisgICAgbG9hZGlzIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1l
JV9pbmRleCAqIDQgKyBPcGNvZGVJRFdpZGUzMlNpemVXYXNtW1BCLCBQQywgMV0sIGRzdAorZW5k
CisKIG1hY3JvIG1ha2VSZXR1cm4oZ2V0LCBkaXNwYXRjaCwgZm4pCiAgICAgZm4obWFjcm8odGFn
LCBwYXlsb2FkKQogICAgICAgICBtb3ZlIHRhZywgdDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseS5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvV2ViQXNzZW1ibHkuYXNtCmluZGV4IDcxMzVmNGY2ZmMyMC4uM2ZiZjcwMDRlOGUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHkuYXNtCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseS5hc20KQEAgLTMxLDU2
ICszMSw4MCBAQCBpZiBIQVZFX0ZBU1RfVExTCiBlbmQKIAogaWYgWDg2XzY0Ci0gICAgY29uc3Qg
TnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzID0gNgorICAgIGNvbnN0IE51bWJlck9mV2FzbUFyZ3Vt
ZW50SlNScyA9IDYKIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgY29uc3Qg
TnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzID0gOAorICAgIGNvbnN0IE51bWJlck9mV2FzbUFyZ3Vt
ZW50SlNScyA9IDgKK2Vsc2lmIEFSTXY3CisgICAgY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1lbnRK
U1JzID0gMgogZWxzZQogICAgIGVycm9yCiBlbmQKKwogY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1l
bnRGUFJzID0gOAotY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1lbnRzID0gTnVtYmVyT2ZXYXNtQXJn
dW1lbnRHUFJzICsgTnVtYmVyT2ZXYXNtQXJndW1lbnRGUFJzCisKK2NvbnN0IE51bWJlck9mV2Fz
bUFyZ3VtZW50cyA9IE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIE51bWJlck9mV2FzbUFyZ3Vt
ZW50RlBScwogCiAjIEFsbCBjYWxsZWUgc2F2ZXMgbXVzdCBtYXRjaCB0aGUgZGVmaW5pdGlvbiBp
biBXYXNtQ2FsbGVlLmNwcAogCiAjIFRoZXNlIG11c3QgbWF0Y2ggdGhlIGRlZmluaXRpb24gaW4g
V2FzbU1lbW9yeUluZm9ybWF0aW9uLmNwcAotY29uc3Qgd2FzbUluc3RhbmNlID0gY3NyMAotY29u
c3QgbWVtb3J5QmFzZSA9IGNzcjMKLWNvbnN0IGJvdW5kc0NoZWNraW5nU2l6ZSA9IGNzcjQKK2lm
IFg4Nl82NCBvciBBUk02NCBvciBBUk02NEUKKyAgICBjb25zdCB3YXNtSW5zdGFuY2UgPSBjc3Iw
CisgICAgY29uc3QgbWVtb3J5QmFzZSA9IGNzcjMKKyAgICBjb25zdCBib3VuZHNDaGVja2luZ1Np
emUgPSBjc3I0CitlbHNpZiBBUk12NworICAgIGNvbnN0IHdhc21JbnN0YW5jZSA9IGNzcjAKKyAg
ICBjb25zdCBtZW1vcnlCYXNlID0gaW52YWxpZEdQUgorICAgIGNvbnN0IGJvdW5kc0NoZWNraW5n
U2l6ZSA9IGludmFsaWRHUFIKK2Vsc2UKKyAgICBlcnJvcgorZW5kCiAKICMgVGhpcyBtdXN0IG1h
dGNoIHRoZSBkZWZpbml0aW9uIGluIExvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCiBpZiBYODZfNjQK
ICAgICBjb25zdCBQQiA9IGNzcjIKIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0CiAg
ICAgY29uc3QgUEIgPSBjc3I3CitlbHNpZiBBUk12NworICAgIGNvbnN0IFBCID0gY3NyMQogZWxz
ZQogICAgIGVycm9yCiBlbmQKIAotbWFjcm8gZm9yRWFjaEFyZ3VtZW50R1BSKGZuKQotICAgIGZu
KDAgKiA4LCB3YTApCi0gICAgZm4oMSAqIDgsIHdhMSkKLSAgICBmbigyICogOCwgd2EyKQotICAg
IGZuKDMgKiA4LCB3YTMpCi0gICAgZm4oNCAqIDgsIHdhNCkKLSAgICBmbig1ICogOCwgd2E1KQot
ICAgIGlmIEFSTTY0IG9yIEFSTTY0RQotICAgICAgICBmbig2ICogOCwgd2E2KQotICAgICAgICBm
big3ICogOCwgd2E3KQorIyBIZWxwZXIgbWFjcm9zCisKKyMgT24gSlNWQUxVRTY0LCBlYWNoIDY0
LWJpdCBhcmd1bWVudCBHUFIgaG9sZHMgb25lIHdob2xlIFdhc20gdmFsdWUuCisjIE9uIEpTVkFM
VUUzMl82NCwgYSBjb25zZWN1dGl2ZSBwYWlyIG9mIGV2ZW4vb2RkIG51bWJlcmVkIEdQUnMgaG9s
ZCBhIHNpbmdsZQorIyBXYXNtIHZhbHVlIChldmVuIGlmIHRoYXQgdmFsdWUgaXMgaTMyL2YzMiwg
dGhlIG9kZCBudW1iZXJlZCBHUFIgaG9sZHMgdGhlCisjIG1vcmUgc2lnbmlmaWNhbnQgd29yZCku
CittYWNybyBmb3JFYWNoQXJndW1lbnRKU1IoZm4pCisgICAgaWYgSlNWQUxVRTY0CisgICAgICAg
IGZuKDAgKiA4LCB3YTApCisgICAgICAgIGZuKDEgKiA4LCB3YTEpCisgICAgICAgIGZuKDIgKiA4
LCB3YTIpCisgICAgICAgIGZuKDMgKiA4LCB3YTMpCisgICAgICAgIGZuKDQgKiA4LCB3YTQpCisg
ICAgICAgIGZuKDUgKiA4LCB3YTUpCisgICAgICAgIGlmIEFSTTY0IG9yIEFSTTY0RQorICAgICAg
ICAgICAgZm4oNiAqIDgsIHdhNikKKyAgICAgICAgICAgIGZuKDcgKiA4LCB3YTcpCisgICAgICAg
IGVuZAorICAgIGVsc2UKKyAgICAgICAgZm4oMCAqIDgsIHdhMSwgd2EwKQorICAgICAgICBmbigx
ICogOCwgd2EzLCB3YTIpCiAgICAgZW5kCiBlbmQKIAogbWFjcm8gZm9yRWFjaEFyZ3VtZW50RlBS
KGZuKQotICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyAwKSAqIDgsIHdmYTApCi0g
ICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDEpICogOCwgd2ZhMSkKLSAgICBmbigo
TnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgMikgKiA4LCB3ZmEyKQotICAgIGZuKChOdW1iZXJP
Zldhc21Bcmd1bWVudEdQUnMgKyAzKSAqIDgsIHdmYTMpCi0gICAgZm4oKE51bWJlck9mV2FzbUFy
Z3VtZW50R1BScyArIDQpICogOCwgd2ZhNCkKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRH
UFJzICsgNSkgKiA4LCB3ZmE1KQotICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyA2
KSAqIDgsIHdmYTYpCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDcpICogOCwg
d2ZhNykKKyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgMCkgKiA4LCB3ZmEwKQor
ICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyAxKSAqIDgsIHdmYTEpCisgICAgZm4o
KE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIDIpICogOCwgd2ZhMikKKyAgICBmbigoTnVtYmVy
T2ZXYXNtQXJndW1lbnRKU1JzICsgMykgKiA4LCB3ZmEzKQorICAgIGZuKChOdW1iZXJPZldhc21B
cmd1bWVudEpTUnMgKyA0KSAqIDgsIHdmYTQpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50
SlNScyArIDUpICogOCwgd2ZhNSkKKyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsg
NikgKiA4LCB3ZmE2KQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyA3KSAqIDgs
IHdmYTcpCiBlbmQKIAotIyBIZWxwZXIgbWFjcm9zCiAjIEZJWE1FOiBFdmVudHVhbGx5IHRoaXMg
c2hvdWxkIGJlIHVuaWZpZWQgd2l0aCB0aGUgSlMgdmVyc2lvbnMKICMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY1NgogCkBAIC0xMzAsMTAgKzE1NCwxNSBAQCBt
YWNybyBjaGVja1N3aXRjaFRvSklURm9yUHJvbG9ndWUoY29kZUJsb2NrUmVnaXN0ZXIpCiAgICAg
ICAgICAgICBidHB6IHIwLCAucmVjb3ZlcgogICAgICAgICAgICAgbW92ZSByMCwgd3MwCiAKLSAg
ICAgICAgICAgIGZvckVhY2hBcmd1bWVudEdQUihtYWNybyAob2Zmc2V0LCBncHIpCitpZiBKU1ZB
TFVFNjQKKyAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHIp
CiAgICAgICAgICAgICAgICAgbG9hZHEgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1Zp
cnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0sIGdwcgogICAgICAgICAgICAgZW5kKQotCitlbHNlCisg
ICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3LCBncExz
dykKKyAgICAgICAgICAgICAgICBsb2FkMmlhIC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNl
QXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBncExzdywgZ3ByTXN3CisgICAgICAgICAgICBl
bmQpCitlbmQKICAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEZQUihtYWNybyAob2Zmc2V0LCBm
cHIpCiAgICAgICAgICAgICAgICAgbG9hZGQgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VB
c1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0sIGZwcgogICAgICAgICAgICAgZW5kKQpAQCAtMjAx
LDYgKzIzMCw5IEBAIG1hY3JvIHByZXNlcnZlQ2FsbGVlU2F2ZXNVc2VkQnlXYXNtKCkKICAgICBl
bHNpZiBYODZfNjQgb3IgUklTQ1Y2NAogICAgICAgICBzdG9yZXAgUEIsIC0weDhbY2ZyXQogICAg
ICAgICBzdG9yZXAgd2FzbUluc3RhbmNlLCAtMHgxMFtjZnJdCisgICAgZWxzaWYgQVJNdjcKKyAg
ICAgICAgc3RvcmVwIFBCLCAtNFtjZnJdCisgICAgICAgIHN0b3JlcCB3YXNtSW5zdGFuY2UsIC04
W2Nmcl0KICAgICBlbHNlCiAgICAgICAgIGVycm9yCiAgICAgZW5kCkBAIC0yMTUsNiArMjQ3LDkg
QEAgbWFjcm8gcmVzdG9yZUNhbGxlZVNhdmVzVXNlZEJ5V2FzbSgpCiAgICAgZWxzaWYgWDg2XzY0
IG9yIFJJU0NWNjQKICAgICAgICAgbG9hZHAgLTB4OFtjZnJdLCBQQgogICAgICAgICBsb2FkcCAt
MHgxMFtjZnJdLCB3YXNtSW5zdGFuY2UKKyAgICBlbHNpZiBBUk12NworICAgICAgICBsb2FkcCAt
NFtjZnJdLCBQQgorICAgICAgICBsb2FkcCAtOFtjZnJdLCB3YXNtSW5zdGFuY2UKICAgICBlbHNl
CiAgICAgICAgIGVycm9yCiAgICAgZW5kCkBAIC0yNDUsMTAgKzI4MCwxMiBAQCBlbmQKIGVuZAog
CiBtYWNybyByZWxvYWRNZW1vcnlSZWdpc3RlcnNGcm9tSW5zdGFuY2UoaW5zdGFuY2UsIHNjcmF0
Y2gxLCBzY3JhdGNoMikKK2lmIG5vdCBBUk12NwogICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjpt
X2NhY2hlZE1lbW9yeVtpbnN0YW5jZV0sIG1lbW9yeUJhc2UKICAgICBsb2FkcCBXYXNtOjpJbnN0
YW5jZTo6bV9jYWNoZWRCb3VuZHNDaGVja2luZ1NpemVbaW5zdGFuY2VdLCBib3VuZHNDaGVja2lu
Z1NpemUKICAgICBjYWdlZFByaW1pdGl2ZU1heUJlTnVsbChtZW1vcnlCYXNlLCBib3VuZHNDaGVj
a2luZ1NpemUsIHNjcmF0Y2gxLCBzY3JhdGNoMikgIyBJZiBib3VuZHNDaGVja2luZ1NpemUgaXMg
MCwgcG9pbnRlciBjYW4gYmUgYSBudWxscHRyLgogZW5kCitlbmQKIAogbWFjcm8gdGhyb3dFeGNl
cHRpb24oZXhjZXB0aW9uKQogICAgIHN0b3JlaSBjb25zdGV4cHIgV2FzbTo6RXhjZXB0aW9uVHlw
ZTo6JWV4Y2VwdGlvbiUsIEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzICsgUGF5bG9hZE9mZnNl
dFtjZnJdCkBAIC0yODAsOCArMzE3LDEzIEBAIG1hY3JvIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRl
ckNhbGwoKQogICAgIGxvYWRpIFdhc206OkxMSW50Q2FsbGVlOjptX251bUNhbGxlZUxvY2Fsc1t3
czFdLCB3czEKICAgICBsc2hpZnRwIDMsIHdzMQogICAgIGFkZHAgbWF4RnJhbWVFeHRlbnRGb3JT
bG93UGF0aENhbGwsIHdzMQoraWYgQVJNdjcKKyAgICBzdWJwIGNmciwgd3MxLCB3czEKKyAgICBt
b3ZlIHdzMSwgc3AKK2Vsc2UKICAgICBzdWJwIGNmciwgd3MxLCBzcAogZW5kCitlbmQKIAogbWFj
cm8gd2FzbVByb2xvZ3VlKGNvZGVCbG9ja0dldHRlciwgY29kZUJsb2NrU2V0dGVyLCBsb2FkV2Fz
bUluc3RhbmNlKQogICAgICMgU2V0IHVwIHRoZSBjYWxsIGZyYW1lIGFuZCBjaGVjayBpZiB3ZSBz
aG91bGQgT1NSLgpAQCAtMjkyLDYgKzMzNCw5IEBAIG1hY3JvIHdhc21Qcm9sb2d1ZShjb2RlQmxv
Y2tHZXR0ZXIsIGNvZGVCbG9ja1NldHRlciwgbG9hZFdhc21JbnN0YW5jZSkKIAogICAgIGxvYWRw
IFdhc206Okluc3RhbmNlOjptX293bmVyW3dhc21JbnN0YW5jZV0sIHdzMAogICAgIHN0b3JlcCB3
czAsIFRoaXNBcmd1bWVudE9mZnNldFtjZnJdCitpZiBub3QgSlNWQUxVRTY0CisgICAgc3RvcmVp
IENlbGxUYWcsIFRhZ09mZnNldCArIFRoaXNBcmd1bWVudE9mZnNldFtjZnJdCitlbmQKIAogICAg
IGNvZGVCbG9ja0dldHRlcih3czApCiAgICAgY29kZUJsb2NrU2V0dGVyKHdzMCkKQEAgLTMwMiw2
ICszNDcsMTAgQEAgbWFjcm8gd2FzbVByb2xvZ3VlKGNvZGVCbG9ja0dldHRlciwgY29kZUJsb2Nr
U2V0dGVyLCBsb2FkV2FzbUluc3RhbmNlKQogICAgIGFkZHAgbWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwsIHdzMQogICAgIHN1YnAgY2ZyLCB3czEsIHdzMQogCitpZiBub3QgSlNWQUxVRTY0
CisgICAgc3VicCA4LCB3czEgIyBhbGlnbiBzdGFjayBwb2ludGVyCitlbmQKKwogICAgIGJwYSB3
czEsIGNmciwgLnN0YWNrT3ZlcmZsb3cKICAgICBicGJlcSBXYXNtOjpJbnN0YW5jZTo6bV9jYWNo
ZWRTdGFja0xpbWl0W3dhc21JbnN0YW5jZV0sIHdzMSwgLnN0YWNrSGVpZ2h0T0sKIApAQCAtMzEx
LDEwICszNjAsMTUgQEAgbWFjcm8gd2FzbVByb2xvZ3VlKGNvZGVCbG9ja0dldHRlciwgY29kZUJs
b2NrU2V0dGVyLCBsb2FkV2FzbUluc3RhbmNlKQogLnN0YWNrSGVpZ2h0T0s6CiAgICAgbW92ZSB3
czEsIHNwCiAKLSAgICBmb3JFYWNoQXJndW1lbnRHUFIobWFjcm8gKG9mZnNldCwgZ3ByKQoraWYg
SlNWQUxVRTY0CisgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwcikKICAg
ICAgICAgc3RvcmVxIGdwciwgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxS
ZWdpc3RlcnMgKiA4W2Nmcl0KICAgICBlbmQpCi0KK2Vsc2UKKyAgICBmb3JFYWNoQXJndW1lbnRK
U1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3LCBncExzdykKKyAgICAgICAgc3RvcmUyaWEgZ3BMc3cs
IGdwck1zdywgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMg
KiA4W2Nmcl0KKyAgICBlbmQpCitlbmQKICAgICBmb3JFYWNoQXJndW1lbnRGUFIobWFjcm8gKG9m
ZnNldCwgZnByKQogICAgICAgICBzdG9yZWQgZnByLCAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVT
cGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXQogICAgIGVuZCkKQEAgLTMyOCwxNCArMzgy
LDE2IEBAIG1hY3JvIHdhc21Qcm9sb2d1ZShjb2RlQmxvY2tHZXR0ZXIsIGNvZGVCbG9ja1NldHRl
ciwgbG9hZFdhc21JbnN0YW5jZSkKICAgICBsb2FkaSBXYXNtOjpMTEludENhbGxlZTo6bV9udW1W
YXJzW3dzMF0sIHdzMQogICAgIHN1YmkgTnVtYmVyT2ZXYXNtQXJndW1lbnRzICsgQ2FsbGVlU2F2
ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzLCB3czEKICAgICBidGl6IHdzMSwgLnplcm9Jbml0aWFs
aXplTG9jYWxzRG9uZQorICAgIGxzaGlmdGkgMywgd3MxCiAgICAgbmVnaSB3czEKK2lmIEpTVkFM
VUU2NAogICAgIHN4aTJxIHdzMSwgd3MxCitlbmQKICAgICBsZWFwIChOdW1iZXJPZldhc21Bcmd1
bWVudHMgKyBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKyAxKSAqIC04W2Nmcl0s
IHdzMAogLnplcm9Jbml0aWFsaXplTG9jYWxzTG9vcDoKLSAgICBhZGRxIDEsIHdzMQotICAgIHN0
b3JlcSAwLCBbd3MwLCB3czEsIDhdCi0gICAgYnRxeiB3czEsIC56ZXJvSW5pdGlhbGl6ZUxvY2Fs
c0RvbmUKLSAgICBqbXAgLnplcm9Jbml0aWFsaXplTG9jYWxzTG9vcAorICAgIGFkZHAgUHRyU2l6
ZSwgd3MxCisgICAgc3RvcmVwIDAsIFt3czAsIHdzMV0KKyAgICBidHBueiB3czEsIC56ZXJvSW5p
dGlhbGl6ZUxvY2Fsc0xvb3AKIC56ZXJvSW5pdGlhbGl6ZUxvY2Fsc0RvbmU6CiBlbmQKIApAQCAt
Mzc0LDYgKzQzMCwyNCBAQCBtYWNybyBzbG93V2FzbU9wKG9wY29kZU5hbWUpCiAgICAgdW5wcmVm
aXhlZFNsb3dXYXNtT3Aod2FzbV8lb3Bjb2RlTmFtZSUpCiBlbmQKIAorIyBGbG9hdCB0byBmbG9h
dCByb3VuZGluZyBvcHMKK21hY3JvIHdhc21Sb3VuZGluZ09wKG9wY29kZU5hbWUsIG9wY29kZVN0
cnVjdCwgZm4pCitpZiBKU1ZBTFVFNjQgIyBBbGwgY3VycmVudCA2NC1iaXQgcGxhdGZvcm1zIGhh
dmUgaW5zdHJ1Y3Rpb25zIGZvciB0aGVzZQorICAgIHdhc21PcChvcGNvZGVOYW1lLCBvcGNvZGVT
dHJ1Y3QsIGZuKQorZWxzZQorICAgIHNsb3dXYXNtT3Aob3Bjb2RlTmFtZSkKK2VuZAorZW5kCisK
KyMgaTY0IChzaWduZWQvdW5zaWduZWQpIHRvIGYzMiBvciBmNjQKK21hY3JvIHdhc21JNjRUb0ZP
cChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGZuKQoraWYgSlNWQUxVRTY0ICMgQWxsIGN1cnJl
bnQgNjQtYml0IHBsYXRmb3JtcyBoYXZlIGluc3RydWN0aW9ucyBmb3IgdGhlc2UKKyAgICB3YXNt
T3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBmbikKK2Vsc2UKKyAgICBzbG93V2FzbU9wKG9w
Y29kZU5hbWUpCitlbmQKK2VuZAorCiAjIE1hY3JvIHZlcnNpb24gb2YgbG9hZCBvcGVyYXRpb25z
OiBtbG9hZFtzdWZmaXhdCiAjIGxvYWRzIGZpZWxkIGZyb20gdGhlIGluc3RydWN0aW9uIHN0cmVh
bSBhbmQgcGVyZm9ybXMgbG9hZFtzdWZmaXhdIHRvIGRzdAogbWFjcm8gZmlyc3RDb25zdGFudFJl
Z2lzdGVySW5kZXgoY3R4LCBmbikKQEAgLTM5NiwxMiArNDcwLDIxIEBAIG1hY3JvIGxvYWRDb25z
dGFudE9yVmFyaWFibGUoY3R4LCBpbmRleCwgbG9hZGVyKQogICAgIGVuZCkKIGVuZAogCitpZiBK
U1ZBTFVFNjQKIG1hY3JvIG1sb2FkcShjdHgsIGZpZWxkLCBkc3QpCiAgICAgd2dldHMoY3R4LCBm
aWVsZCwgZHN0KQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoY3R4LCBkc3QsIG1hY3JvIChm
cm9tKQogICAgICAgICBsb2FkcSBmcm9tLCBkc3QKICAgICBlbmQpCiBlbmQKK2Vsc2UKK21hY3Jv
IG1sb2FkMmkoY3R4LCBmaWVsZCwgZHN0TXN3LCBkc3RMc3cpCisgICAgd2dldHMoY3R4LCBmaWVs
ZCwgZHN0THN3KQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoY3R4LCBkc3RMc3csIG1hY3Jv
IChmcm9tKQorICAgICAgICBsb2FkMmlhIGZyb20sIGRzdExzdywgZHN0TXN3CisgICAgZW5kKQor
ZW5kCitlbmQKIAogbWFjcm8gbWxvYWRpKGN0eCwgZmllbGQsIGRzdCkKICAgICB3Z2V0cyhjdHgs
IGZpZWxkLCBkc3QpCkBAIC00MzMsMTEgKzUxNiwxOSBAQCBlbmQKIAogIyBUeXBlZCByZXR1cm5z
CiAKK2lmIEpTVkFMVUU2NAogbWFjcm8gcmV0dXJucShjdHgsIHZhbHVlKQogICAgIHdnZXRzKGN0
eCwgbV9kc3QsIHQ1KQogICAgIHN0b3JlcSB2YWx1ZSwgW2NmciwgdDUsIDhdCiAgICAgZGlzcGF0
Y2goY3R4KQogZW5kCitlbHNlCittYWNybyByZXR1cm4yaShjdHgsIG1zdywgbHN3KQorICAgIHdn
ZXRzKGN0eCwgbV9kc3QsIHQ1KQorICAgIHN0b3JlMmlhIGxzdywgbXN3LCBbY2ZyLCB0NSwgOF0K
KyAgICBkaXNwYXRjaChjdHgpCitlbmQKK2VuZAogCiBtYWNybyByZXR1cm5pKGN0eCwgdmFsdWUp
CiAgICAgd2dldHMoY3R4LCBtX2RzdCwgdDUpCkBAIC01MTAsNyArNjAxLDcgQEAgbWFjcm8gd2Fz
bUNvZGVCbG9ja0dldHRlcih0YXJnZXRSZWdpc3RlcikKIGVuZAogCiBvcCh3YXNtX2Z1bmN0aW9u
X3Byb2xvZ3VlLCBtYWNybyAoKQotICAgIGlmIG5vdCBXRUJBU1NFTUJMWSBvciBub3QgSlNWQUxV
RTY0IG9yIENfTE9PUCBvciBDX0xPT1BfV0lOCisgICAgaWYgbm90IFdFQkFTU0VNQkxZIG9yIENf
TE9PUCBvciBDX0xPT1BfV0lOCiAgICAgICAgIGVycm9yCiAgICAgZW5kCiAKQEAgLTUxOSw3ICs2
MTAsNyBAQCBvcCh3YXNtX2Z1bmN0aW9uX3Byb2xvZ3VlLCBtYWNybyAoKQogZW5kKQogCiBvcCh3
YXNtX2Z1bmN0aW9uX3Byb2xvZ3VlX25vX3RscywgbWFjcm8gKCkKLSAgICBpZiBub3QgV0VCQVNT
RU1CTFkgb3Igbm90IEpTVkFMVUU2NCBvciBDX0xPT1Agb3IgQ19MT09QX1dJTgorICAgIGlmIG5v
dCBXRUJBU1NFTUJMWSBvciBDX0xPT1Agb3IgQ19MT09QX1dJTgogICAgICAgICBlcnJvcgogICAg
IGVuZAogCkBAIC02MjEsMTYgKzcxMiwyMyBAQCBfd2FzbV9lbnRlcjoKICAgICBjaGVja1N0YWNr
UG9pbnRlckFsaWdubWVudCh0MiwgMHhkZWFkMDBlMSkKICAgICBsb2FkcCBDb2RlQmxvY2tbY2Zy
XSwgdDIgICAgICAgICAgICAgICAgLy8gdDI8Q29kZUJsb2NrPiA9IGNmci5Db2RlQmxvY2sKICAg
ICBsb2FkaSBXYXNtOjpMTEludENhbGxlZTo6bV9udW1WYXJzW3QyXSwgdDIgICAgICAvLyB0Mjxz
aXplX3Q+ID0gdDI8Q29kZUJsb2NrPi5tX251bVZhcnMKLSAgICBzdWJxIENhbGxlZVNhdmVTcGFj
ZUFzVmlydHVhbFJlZ2lzdGVycyArIE51bWJlck9mV2FzbUFyZ3VtZW50cywgdDIKKyAgICBzdWJp
IENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyArIE51bWJlck9mV2FzbUFyZ3VtZW50
cywgdDIKICAgICBidGl6IHQyLCAub3BFbnRlckRvbmUKLSAgICBtb3ZlIGNmciwgdDEKLSAgICBz
dWJxIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDggKyBOdW1iZXJPZldhc21B
cmd1bWVudHMgKiA4LCB0MQorICAgIHN1YnAgY2ZyLCAoQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFs
UmVnaXN0ZXJzICsgTnVtYmVyT2ZXYXNtQXJndW1lbnRzKSAqIFNsb3RTaXplLCB0MQorICAgIGxz
aGlmdGkgMywgdDIKICAgICBuZWdpIHQyCitpZiBKU1ZBTFVFNjQKICAgICBzeGkycSB0MiwgdDIK
K2VuZAorICAgIG1vdmUgMCwgdDYKIC5vcEVudGVyTG9vcDoKLSAgICBzdG9yZXEgMCwgW3QxLCB0
MiwgOF0KLSAgICBhZGRxIDEsIHQyCi0gICAgYnRxbnogdDIsIC5vcEVudGVyTG9vcAoraWYgSlNW
QUxVRTY0CisgICAgc3RvcmVxIHQ2LCBbdDEsIHQyXQorZWxzZQorICAgIHN0b3JlMmlhIHQ2LCB0
NiwgW3QxLCB0Ml0KK2VuZAorICAgIGFkZHAgOCwgdDIKKyAgICBidHBueiB0MiwgLm9wRW50ZXJM
b29wCiAub3BFbnRlckRvbmU6CiAgICAgd2FzbURpc3BhdGNoSW5kaXJlY3QoMSkKIApAQCAtNjQz
LDExICs3NDEsNiBAQCB3YXNtT3AobG9vcF9oaW50LCBXYXNtTG9vcEhpbnQsIG1hY3JvKGN0eCkK
ICAgICBkaXNwYXRjaChjdHgpCiBlbmQpCiAKLXdhc21PcChtb3YsIFdhc21Nb3YsIG1hY3JvKGN0
eCkKLSAgICBtbG9hZHEoY3R4LCBtX3NyYywgdDApCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5k
KQotCiB3YXNtT3AoanRydWUsIFdhc21KdHJ1ZSwgbWFjcm8oY3R4KQogICAgIG1sb2FkaShjdHgs
IG1fY29uZGl0aW9uLCB0MCkKICAgICBidGl6IHQwLCAuY29udGludWUKQEAgLTY5OSwxMSArNzky
LDE3IEBAIGVuZCkKIAogdW5wcmVmaXhlZFdhc21PcCh3YXNtX3JldCwgV2FzbVJldCwgbWFjcm8o
Y3R4KQogICAgIGNoZWNrU3dpdGNoVG9KSVRGb3JFcGlsb2d1ZSgpCi0gICAgZm9yRWFjaEFyZ3Vt
ZW50R1BSKG1hY3JvIChvZmZzZXQsIGdwcikKK2lmIEpTVkFMVUU2NAorICAgIGZvckVhY2hBcmd1
bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHIpCiAgICAgICAgIGxvYWRxIC1vZmZzZXQgLSA4IC0g
Q2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBncHIKICAgICBlbmQp
CitlbHNlCisgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwck1zdywgZ3BM
c3cpCisgICAgICAgIGxvYWQyaWEgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1
YWxSZWdpc3RlcnMgKiA4W2Nmcl0sIGdwTHN3LCBncHJNc3cKKyAgICBlbmQpCitlbmQKICAgICBm
b3JFYWNoQXJndW1lbnRGUFIobWFjcm8gKG9mZnNldCwgZnByKQotICAgICAgICBsb2FkZCAtb2Zm
c2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXSwgZnBy
CisgICAgICAgIGxvYWRkIC1vZmZzZXQgLSAgOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJl
Z2lzdGVycyAqIDhbY2ZyXSwgZnByCiAgICAgZW5kKQogICAgIGRvUmV0dXJuKCkKIGVuZCkKQEAg
LTcxOSw0NCArODE4LDYgQEAgd2FzbU9wKHJldF92b2lkLCBXYXNtUmV0Vm9pZCwgbWFjcm8oY3R4
KQogICAgIGRvUmV0dXJuKCkKIGVuZCkKIAotd2FzbU9wKHJlZl9pc19udWxsLCBXYXNtUmVmSXNO
dWxsLCBtYWNybyhjdHgpCi0gICAgbWxvYWRwKGN0eCwgbV9yZWYsIHQwKQotICAgIGNxZXEgdDAs
IFZhbHVlTnVsbCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChnZXRf
Z2xvYmFsLCBXYXNtR2V0R2xvYmFsLCBtYWNybyhjdHgpCi0gICAgbG9hZHAgV2FzbTo6SW5zdGFu
Y2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAotICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJ
bmRleCwgdDEpCi0gICAgbG9hZHEgW3QwLCB0MSwgOF0sIHQwCi0gICAgcmV0dXJucShjdHgsIHQw
KQotZW5kKQotCi13YXNtT3Aoc2V0X2dsb2JhbCwgV2FzbVNldEdsb2JhbCwgbWFjcm8oY3R4KQot
ICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKLSAg
ICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQotICAgIG1sb2FkcShjdHgsIG1fdmFsdWUs
IHQyKQotICAgIHN0b3JlcSB0MiwgW3QwLCB0MSwgOF0KLSAgICBkaXNwYXRjaChjdHgpCi1lbmQp
Ci0KLXdhc21PcChnZXRfZ2xvYmFsX3BvcnRhYmxlX2JpbmRpbmcsIFdhc21HZXRHbG9iYWxQb3J0
YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkKLSAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9i
YWxzW3dhc21JbnN0YW5jZV0sIHQwCi0gICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkK
LSAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKLSAgICBsb2FkcSBbdDBdLCB0MAotICAgIHJldHVy
bnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKHNldF9nbG9iYWxfcG9ydGFibGVfYmluZGluZywg
V2FzbVNldEdsb2JhbFBvcnRhYmxlQmluZGluZywgbWFjcm8oY3R4KQotICAgIGxvYWRwIFdhc206
Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKLSAgICB3Z2V0dShjdHgsIG1f
Z2xvYmFsSW5kZXgsIHQxKQotICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQotICAgIGxvYWRx
IFt0MCwgdDEsIDhdLCB0MAotICAgIHN0b3JlcSB0MiwgW3QwXQotICAgIGRpc3BhdGNoKGN0eCkK
LWVuZCkKLQogbWFjcm8gc2xvd1BhdGhGb3JXYXNtQ2FsbChjdHgsIHNsb3dQYXRoLCBzdG9yZVdh
c21JbnN0YW5jZSkKICAgICBjYWxsV2FzbUNhbGxTbG93UGF0aCgKICAgICAgICAgc2xvd1BhdGgs
CkBAIC03NzEsNyArODMyLDEyIEBAIG1hY3JvIHNsb3dQYXRoRm9yV2FzbUNhbGwoY3R4LCBzbG93
UGF0aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAKICAgICAgICAgICAgIHdnZXR1KGN0eCwgbV9zdGFj
a09mZnNldCwgd3MxKQogICAgICAgICAgICAgbHNoaWZ0aSAzLCB3czEKK2lmIEFSTXY3CisgICAg
ICAgICAgICBzdWJwIGNmciwgd3MxLCB3czEKKyAgICAgICAgICAgIG1vdmUgd3MxLCBzcAorZWxz
ZQogICAgICAgICAgICAgc3VicCBjZnIsIHdzMSwgc3AKK2VuZAogCiAgICAgICAgICAgICB3Z2V0
dShjdHgsIG1fbnVtYmVyT2ZTdGFja0FyZ3MsIHdzMSkKIApAQCAtNzgyLDEwICs4NDgsMTUgQEAg
bWFjcm8gc2xvd1BhdGhGb3JXYXNtQ2FsbChjdHgsIHNsb3dQYXRoLCBzdG9yZVdhc21JbnN0YW5j
ZSkKICAgICAgICAgICAgIHJlbG9hZE1lbW9yeVJlZ2lzdGVyc0Zyb21JbnN0YW5jZSh0YXJnZXRX
YXNtSW5zdGFuY2UsIHdhMCwgd2ExKQogCiAgICAgICAgICAgICAjIExvYWQgcmVnaXN0ZXJzIGZy
b20gc3RhY2sKLSAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEdQUihtYWNybyAob2Zmc2V0LCBn
cHIpCitpZiBKU1ZBTFVFNjQKKyAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAo
b2Zmc2V0LCBncHIpCiAgICAgICAgICAgICAgICAgbG9hZHEgQ2FsbEZyYW1lSGVhZGVyU2l6ZSAr
IDggKyBvZmZzZXRbc3AsIHdzMSwgOF0sIGdwcgogICAgICAgICAgICAgZW5kKQotCitlbHNlCisg
ICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3LCBncExz
dykKKyAgICAgICAgICAgICAgICBsb2FkMmlhIENhbGxGcmFtZUhlYWRlclNpemUgKyA4ICsgb2Zm
c2V0W3NwLCB3czEsIDhdLCBncExzdywgZ3ByTXN3CisgICAgICAgICAgICBlbmQpCitlbmQKICAg
ICAgICAgICAgIGZvckVhY2hBcmd1bWVudEZQUihtYWNybyAob2Zmc2V0LCBmcHIpCiAgICAgICAg
ICAgICAgICAgbG9hZGQgQ2FsbEZyYW1lSGVhZGVyU2l6ZSArIDggKyBvZmZzZXRbc3AsIHdzMSwg
OF0sIGZwcgogICAgICAgICAgICAgZW5kKQpAQCAtODI4LDcgKzg5OSwxMSBAQCBtYWNybyBzbG93
UGF0aEZvcldhc21DYWxsKGN0eCwgc2xvd1BhdGgsIHN0b3JlV2FzbUluc3RhbmNlKQogCiAgICAg
ICAgICAgICAjIFdlIG5lZWQgdG8gc2V0IFBDIHRvIGxvYWQgaW5mb3JtYXRpb24gZnJvbSB0aGUg
aW5zdHJ1Y3Rpb24gc3RyZWFtLCBidXQgd2UKICAgICAgICAgICAgICMgbmVlZCB0byBwcmVzZXJ2
ZSBpdHMgY3VycmVudCB2YWx1ZSBzaW5jZSBpdCBtaWdodCBjb250YWluIGEgcmV0dXJuIHZhbHVl
CitpZiBBUk12NworICAgICAgICAgICAgcHVzaCBQQworZWxzZQogICAgICAgICAgICAgbW92ZSBQ
QywgbWVtb3J5QmFzZQorZW5kCiAgICAgICAgICAgICBtb3ZlIFBCLCB3YXNtSW5zdGFuY2UKICAg
ICAgICAgICAgIGxvYWRpIEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzICsgVGFnT2Zmc2V0W2Nm
cl0sIFBDCiAgICAgICAgICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgUEIKQEAgLTgzNywxNyAr
OTEyLDI4IEBAIG1hY3JvIHNsb3dQYXRoRm9yV2FzbUNhbGwoY3R4LCBzbG93UGF0aCwgc3RvcmVX
YXNtSW5zdGFuY2UpCiAgICAgICAgICAgICB3Z2V0dShjdHgsIG1fc3RhY2tPZmZzZXQsIHdzMSkK
ICAgICAgICAgICAgIGxzaGlmdGkgMywgd3MxCiAgICAgICAgICAgICBuZWdpIHdzMQoraWYgSlNW
QUxVRTY0CiAgICAgICAgICAgICBzeGkycSB3czEsIHdzMQorZW5kCiAgICAgICAgICAgICBhZGRw
IGNmciwgd3MxCiAKICAgICAgICAgICAgICMgQXJndW1lbnQgcmVnaXN0ZXJzIGFyZSBhbHNvIHJl
dHVybiByZWdpc3RlcnMsIHNvIHRoZXkgbXVzdCBiZSBzdG9yZWQgdG8gdGhlIHN0YWNrCiAgICAg
ICAgICAgICAjIGluIGNhc2UgdGhleSBjb250YWluIHJldHVybiB2YWx1ZXMuCiAgICAgICAgICAg
ICB3Z2V0dShjdHgsIG1fbnVtYmVyT2ZTdGFja0FyZ3MsIHdzMCkKK2lmIEFSTXY3CisgICAgICAg
ICAgICBwb3AgUEMKK2Vsc2UKICAgICAgICAgICAgIG1vdmUgbWVtb3J5QmFzZSwgUEMKLSAgICAg
ICAgICAgIGZvckVhY2hBcmd1bWVudEdQUihtYWNybyAob2Zmc2V0LCBncHIpCitlbmQKK2lmIEpT
VkFMVUU2NAorICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdw
cikKICAgICAgICAgICAgICAgICBzdG9yZXEgZ3ByLCBDYWxsRnJhbWVIZWFkZXJTaXplICsgOCAr
IG9mZnNldFt3czEsIHdzMCwgOF0KICAgICAgICAgICAgIGVuZCkKLQorZWxzZQorICAgICAgICAg
ICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwck1zdywgZ3BMc3cpCisgICAg
ICAgICAgICAgICAgc3RvcmUyaWEgZ3BMc3csIGdwck1zdywgQ2FsbEZyYW1lSGVhZGVyU2l6ZSAr
IDggKyBvZmZzZXRbd3MxLCB3czAsIDhdCisgICAgICAgICAgICBlbmQpCitlbmQKICAgICAgICAg
ICAgIGZvckVhY2hBcmd1bWVudEZQUihtYWNybyAob2Zmc2V0LCBmcHIpCiAgICAgICAgICAgICAg
ICAgc3RvcmVkIGZwciwgQ2FsbEZyYW1lSGVhZGVyU2l6ZSArIDggKyBvZmZzZXRbd3MxLCB3czAs
IDhdCiAgICAgICAgICAgICBlbmQpCkBAIC04OTgsMTk5ICs5ODQsMzYgQEAgd2FzbU9wKGN1cnJl
bnRfbWVtb3J5LCBXYXNtQ3VycmVudE1lbW9yeSwgbWFjcm8oY3R4KQogICAgIGxvYWRwIFdhc206
Okluc3RhbmNlOjptX21lbW9yeVt3YXNtSW5zdGFuY2VdLCB0MAogICAgIGxvYWRwIFdhc206Ok1l
bW9yeTo6bV9oYW5kbGVbdDBdLCB0MAogICAgIGxvYWRwIFdhc206Ok1lbW9yeUhhbmRsZTo6bV9z
aXplW3QwXSwgdDAKLSAgICB1cnNoaWZ0cSAxNiwgdDAKKyAgICB1cnNoaWZ0cCAxNiwgdDAKK2lm
IEpTVkFMVUU2NAogICAgIHJldHVybnEoY3R4LCB0MCkKK2Vsc2UKKyAgICByZXR1cm4yaShjdHgs
IDAsIHQwKQorZW5kCiBlbmQpCiAKIHdhc21PcChzZWxlY3QsIFdhc21TZWxlY3QsIG1hY3JvKGN0
eCkKICAgICBtbG9hZGkoY3R4LCBtX2NvbmRpdGlvbiwgdDApCiAgICAgYnRpeiB0MCwgLmlzWmVy
bworaWYgSlNWQUxVRTY0CiAgICAgbWxvYWRxKGN0eCwgbV9ub25aZXJvLCB0MCkKICAgICByZXR1
cm5xKGN0eCwgdDApCiAuaXNaZXJvOgogICAgIG1sb2FkcShjdHgsIG1femVybywgdDApCiAgICAg
cmV0dXJucShjdHgsIHQwKQotZW5kKQotCi0jIHVzZXMgb2Zmc2V0IGFzIHNjcmF0Y2ggYW5kIHJl
dHVybnMgcmVzdWx0IG9uIHBvaW50ZXIKLW1hY3JvIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVy
KGN0eCwgcG9pbnRlciwgb2Zmc2V0LCBzaXplKQotICAgIGxlYXAgc2l6ZSAtIDFbcG9pbnRlciwg
b2Zmc2V0XSwgdDUKLSAgICBicGIgdDUsIGJvdW5kc0NoZWNraW5nU2l6ZSwgLmNvbnRpbnVhdGlv
bgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNjZXNzKQotLmNvbnRpbnVh
dGlvbjoKLSAgICBhZGRwIG1lbW9yeUJhc2UsIHBvaW50ZXIKLWVuZAotCi1tYWNybyBlbWl0Q2hl
Y2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6
ZSkKLSAgICBsZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNldF0sIHQ1Ci0gICAgYnBiIHQ1LCBi
b3VuZHNDaGVja2luZ1NpemUsIC5jb250aW51YXRpb24KLS50aHJvdzoKLSAgICB0aHJvd0V4Y2Vw
dGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKLS5jb250aW51YXRpb246Ci0gICAgYWRkcCBt
ZW1vcnlCYXNlLCBwb2ludGVyCi0gICAgYWRkcCBvZmZzZXQsIHBvaW50ZXIKLWVuZAotCi1tYWNy
byBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVj
ayhjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKLSAgICBsZWFwIHNpemUgLSAxW3BvaW50ZXIs
IG9mZnNldF0sIHQ1Ci0gICAgYnBiIHQ1LCBib3VuZHNDaGVja2luZ1NpemUsIC5jb250aW51YXRp
b24KLS50aHJvdzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykK
LS5jb250aW51YXRpb246Ci0gICAgYWRkcCBtZW1vcnlCYXNlLCBwb2ludGVyCi0gICAgYWRkcCBv
ZmZzZXQsIHBvaW50ZXIKLSAgICBidHBueiBwb2ludGVyLCAoc2l6ZSAtIDEpLCAudGhyb3cKLWVu
ZAotCi1tYWNybyB3YXNtTG9hZE9wKG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4pCi0gICAgd2FzbU9w
KG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIs
IHQwKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgZW1pdENoZWNr
QW5kUHJlcGFyZVBvaW50ZXIoY3R4LCB0MCwgdDEsIHNpemUpCi0gICAgICAgIGZuKFt0MCwgdDFd
LCB0MikKLSAgICAgICAgcmV0dXJucShjdHgsIHQyKQotICAgIGVuZCkKLWVuZAotCi13YXNtTG9h
ZE9wKGxvYWQ4X3UsIFdhc21Mb2FkOFUsIDEsIG1hY3JvKG1lbSwgZHN0KSBsb2FkYiBtZW0sIGRz
dCBlbmQpCi13YXNtTG9hZE9wKGxvYWQxNl91LCBXYXNtTG9hZDE2VSwgMiwgbWFjcm8obWVtLCBk
c3QpIGxvYWRoIG1lbSwgZHN0IGVuZCkKLXdhc21Mb2FkT3AobG9hZDMyX3UsIFdhc21Mb2FkMzJV
LCA0LCBtYWNybyhtZW0sIGRzdCkgbG9hZGkgbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChsb2Fk
NjRfdSwgV2FzbUxvYWQ2NFUsIDgsIG1hY3JvKG1lbSwgZHN0KSBsb2FkcSBtZW0sIGRzdCBlbmQp
Ci0KLXdhc21Mb2FkT3AoaTMyX2xvYWQ4X3MsIFdhc21JMzJMb2FkOFMsIDEsIG1hY3JvKG1lbSwg
ZHN0KSBsb2FkYnNpIG1lbSwgZHN0IGVuZCkKLXdhc21Mb2FkT3AoaTY0X2xvYWQ4X3MsIFdhc21J
NjRMb2FkOFMsIDEsIG1hY3JvKG1lbSwgZHN0KSBsb2FkYnNxIG1lbSwgZHN0IGVuZCkKLXdhc21M
b2FkT3AoaTMyX2xvYWQxNl9zLCBXYXNtSTMyTG9hZDE2UywgMiwgbWFjcm8obWVtLCBkc3QpIGxv
YWRoc2kgbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChpNjRfbG9hZDE2X3MsIFdhc21JNjRMb2Fk
MTZTLCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGhzcSBtZW0sIGRzdCBlbmQpCi13YXNtTG9hZE9w
KGk2NF9sb2FkMzJfcywgV2FzbUk2NExvYWQzMlMsIDQsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaXMg
bWVtLCBkc3QgZW5kKQotCi1tYWNybyB3YXNtU3RvcmVPcChuYW1lLCBzdHJ1Y3QsIHNpemUsIGZu
KQotICAgIHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0
eCwgbV9wb2ludGVyLCB0MCkKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAg
ICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKGN0eCwgdDAsIHQxLCBzaXplKQotICAgICAg
ICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICAgICAgZm4odDIsIFt0MCwgdDFdKQotICAg
ICAgICBkaXNwYXRjaChjdHgpCi0gICAgZW5kKQorZWxzZQorICAgIG1sb2FkMmkoY3R4LCBtX25v
blplcm8sIHQxLCB0MCkKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKKy5pc1plcm86CisgICAg
bWxvYWQyaShjdHgsIG1femVybywgdDEsIHQwKQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQog
ZW5kCi0KLXdhc21TdG9yZU9wKHN0b3JlOCwgV2FzbVN0b3JlOCwgMSwgbWFjcm8odmFsdWUsIG1l
bSkgc3RvcmViIHZhbHVlLCBtZW0gZW5kKQotd2FzbVN0b3JlT3Aoc3RvcmUxNiwgV2FzbVN0b3Jl
MTYsIDIsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlaCB2YWx1ZSwgbWVtIGVuZCkKLXdhc21TdG9y
ZU9wKHN0b3JlMzIsIFdhc21TdG9yZTMyLCA0LCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZWkgdmFs
dWUsIG1lbSBlbmQpCi13YXNtU3RvcmVPcChzdG9yZTY0LCBXYXNtU3RvcmU2NCwgOCwgbWFjcm8o
dmFsdWUsIG1lbSkgc3RvcmVxIHZhbHVlLCBtZW0gZW5kKQotCi0jIE9wY29kZXMgdGhhdCBkb24n
dCBoYXZlIHRoZSBgYjNvcGAgZW50cnkgaW4gd2FzbS5qc29uLiBUaGlzIHNob3VsZCBiZSBrZXB0
IGluIHN5bmMKLQotd2FzbU9wKGkzMl9kaXZfcywgV2FzbUkzMkRpdlMsIG1hY3JvIChjdHgpCi0g
ICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLQot
ICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBiaW5lcSB0MSwgLTEsIC5z
YWZlCi0gICAgYmllcSB0MCwgY29uc3RleHByIElOVDMyX01JTiwgLnRocm93SW50ZWdlck92ZXJm
bG93Ci0KLS5zYWZlOgotICAgIGlmIFg4Nl82NAotICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkg
dG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0MiBpcyByZHgKLSAgICAgICAgIyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCi0gICAgICAgIGNk
cWkKLSAgICAgICAgaWRpdmkgdDEKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2
NAotICAgICAgICBkaXZpcyB0MSwgdDAKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5k
Ci0gICAgcmV0dXJuaShjdHgsIHQwKQotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJv
d0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLQotLnRocm93SW50ZWdlck92ZXJmbG93OgotICAg
IHRocm93RXhjZXB0aW9uKEludGVnZXJPdmVyZmxvdykKLWVuZCkKLQotd2FzbU9wKGkzMl9kaXZf
dSwgV2FzbUkzMkRpdlUsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQot
ICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9u
QnlaZXJvCi0KLSAgICBpZiBYODZfNjQKLSAgICAgICAgeG9yaSB0MiwgdDIKLSAgICAgICAgdWRp
dmkgdDEKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAotICAgICAgICBkaXZp
IHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1cm5pKGN0
eCwgdDApCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlz
aW9uQnlaZXJvKQotZW5kKQotCi13YXNtT3AoaTMyX3JlbV9zLCBXYXNtSTMyUmVtUywgbWFjcm8g
KGN0eCkKLSAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMs
IHQxKQotCi0gICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAgIGJpbmVxIHQx
LCAtMSwgLnNhZmUKLSAgICBiaW5lcSB0MCwgY29uc3RleHByIElOVDMyX01JTiwgLnNhZmUKLQot
ICAgIG1vdmUgMCwgdDIKLSAgICBqbXAgLnJldHVybgotCi0uc2FmZToKLSAgICBpZiBYODZfNjQK
LSAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJh
eCBhbmQgdDIgaXMgcmR4Ci0gICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMzY5MgotICAgICAgICBjZHFpCi0gICAgICAgIGlkaXZpIHQxCi0gICAgZWxz
aWYgQVJNNjQgb3IgQVJNNjRFCi0gICAgICAgIGRpdmlzIHQxLCB0MCwgdDIKLSAgICAgICAgbXVs
aSB0MSwgdDIKLSAgICAgICAgc3ViaSB0MCwgdDIsIHQyCi0gICAgZWxzaWYgUklTQ1Y2NAotICAg
ICAgICByZW1pcyB0MSwgdDAKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0KLS5y
ZXR1cm46Ci0gICAgcmV0dXJuaShjdHgsIHQyKQotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAg
ICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKIGVuZCkKIAotd2FzbU9wKGkzMl9yZW1f
dSwgV2FzbUkzMlJlbVUsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQot
ICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9u
QnlaZXJvCi0KLSAgICBpZiBYODZfNjQKLSAgICAgICAgeG9yaSB0MiwgdDIKLSAgICAgICAgdWRp
dmkgdDEKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUKLSAgICAgICAgZGl2aSB0MSwgdDAsIHQy
Ci0gICAgICAgIG11bGkgdDEsIHQyCi0gICAgICAgIHN1YmkgdDAsIHQyLCB0MgotICAgIGVsc2lm
IFJJU0NWNjQKLSAgICAgICAgcmVtaSB0MSwgdDAKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0g
ICAgZW5kCi0gICAgcmV0dXJuaShjdHgsIHQyKQotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAg
ICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLWVuZCkKKyMgT3Bjb2RlcyB0aGF0IGRv
bid0IGhhdmUgdGhlIGBiM29wYCBlbnRyeSBpbiB3YXNtLmpzb24uIFRoaXMgc2hvdWxkIGJlIGtl
cHQgaW4gc3luYwogCiB3YXNtT3AoaTMyX2N0eiwgV2FzbUkzMkN0eiwgbWFjcm8gKGN0eCkKLSAg
ICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwg
dDApCiAgICAgdHpjbnRpIHQwLCB0MAogICAgIHJldHVybmkoY3R4LCB0MCkKIGVuZCkKQEAgLTEx
MDQsMTQ4ICsxMDI3LDI1IEBAIHdhc21PcChpMzJfcG9wY250LCBXYXNtSTMyUG9wY250LCBtYWNy
byAoY3R4KQogICAgIHJldHVybmkoY3R4LCByMSkKIGVuZCkKIAotd2FzbU9wKGk2NF9kaXZfcywg
V2FzbUk2NERpdlMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAg
IG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnla
ZXJvCi0KLSAgICBicW5lcSB0MSwgLTEsIC5zYWZlCi0gICAgYnFlcSB0MCwgY29uc3RleHByIElO
VDY0X01JTiwgLnRocm93SW50ZWdlck92ZXJmbG93Ci0KLS5zYWZlOgotICAgIGlmIFg4Nl82NAot
ICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4
IGFuZCB0MiBpcyByZHgKLSAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAzNjkyCi0gICAgICAgIGNxb3EKLSAgICAgICAgaWRpdnEgdDEKLSAgICBlbHNp
ZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAotICAgICAgICBkaXZxcyB0MSwgdDAKLSAgICBl
bHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0udGhy
b3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLQot
LnRocm93SW50ZWdlck92ZXJmbG93OgotICAgIHRocm93RXhjZXB0aW9uKEludGVnZXJPdmVyZmxv
dykKLWVuZCkKLQotd2FzbU9wKGk2NF9kaXZfdSwgV2FzbUk2NERpdlUsIG1hY3JvIChjdHgpCi0g
ICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLQot
ICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBpZiBYODZfNjQKLSAgICAg
ICAgeG9ycSB0MiwgdDIKLSAgICAgICAgdWRpdnEgdDEKLSAgICBlbHNpZiBBUk02NCBvciBBUk02
NEUgb3IgUklTQ1Y2NAotICAgICAgICBkaXZxIHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJy
b3IKLSAgICBlbmQKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJv
OgotICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotZW5kKQotCi13YXNtT3AoaTY0
X3JlbV9zLCBXYXNtSTY0UmVtUywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywg
dDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRxeiB0MSwgLnRocm93RGl2
aXNpb25CeVplcm8KLQotICAgIGJxbmVxIHQxLCAtMSwgLnNhZmUKLSAgICBicW5lcSB0MCwgY29u
c3RleHByIElOVDY0X01JTiwgLnNhZmUKLQotICAgIG1vdmUgMCwgdDIKLSAgICBqbXAgLnJldHVy
bgotCi0uc2FmZToKLSAgICBpZiBYODZfNjQKLSAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRv
IHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4Ci0gICAgICAgICMgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgotICAgICAgICBjcW9x
Ci0gICAgICAgIGlkaXZxIHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCi0gICAgICAgIGRp
dnFzIHQxLCB0MCwgdDIKLSAgICAgICAgbXVscSB0MSwgdDIKLSAgICAgICAgc3VicSB0MCwgdDIs
IHQyCi0gICAgZWxzaWYgUklTQ1Y2NAotICAgICAgICByZW1xcyB0MSwgdDAKLSAgICBlbHNlCi0g
ICAgICAgIGVycm9yCi0gICAgZW5kCi0KLS5yZXR1cm46Ci0gICAgcmV0dXJucShjdHgsIHQyKSAj
IHJkeCBoYXMgdGhlIHJlbWFpbmRlcgotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJv
d0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLWVuZCkKLQotd2FzbU9wKGk2NF9yZW1fdSwgV2Fz
bUk2NFJlbVUsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1s
b2FkcShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJv
Ci0KLSAgICBpZiBYODZfNjQKLSAgICAgICAgeG9ycSB0MiwgdDIKLSAgICAgICAgdWRpdnEgdDEK
LSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUKLSAgICAgICAgZGl2cSB0MSwgdDAsIHQyCi0gICAg
ICAgIG11bHEgdDEsIHQyCi0gICAgICAgIHN1YnEgdDAsIHQyLCB0MgotICAgIGVsc2lmIFJJU0NW
NjQKLSAgICAgICAgcmVtcSB0MSwgdDAKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5k
Ci0gICAgcmV0dXJucShjdHgsIHQyKQotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJv
d0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLWVuZCkKLQotd2FzbU9wKGk2NF9jdHosIFdhc21J
NjRDdHosIG1hY3JvIChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICB0
emNudHEgdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3Bv
cGNudCwgV2FzbUk2NFBvcGNudCwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJh
bmQsIGExKQotICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKLSAgICBtb3ZlIFBDLCBhMAotICAg
IGNDYWxsMihfc2xvd19wYXRoX3dhc21fcG9wY291bnRsbCkKLSAgICByZXN0b3JlU3RhdGVBZnRl
ckNDYWxsKCkKLSAgICByZXR1cm5xKGN0eCwgcjEpCi1lbmQpCi0KLXdhc21PcChmMzJfdHJ1bmMs
IFdhc21GMzJUcnVuYywgbWFjcm8gKGN0eCkKK3dhc21Sb3VuZGluZ09wKGYzMl90cnVuYywgV2Fz
bUYzMlRydW5jLCBtYWNybyAoY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQog
ICAgIHRydW5jYXRlZiBmdDAsIGZ0MAogICAgIHJldHVybmYoY3R4LCBmdDApCiBlbmQpCiAKLXdh
c21PcChmMzJfbmVhcmVzdCwgV2FzbUYzMk5lYXJlc3QsIG1hY3JvIChjdHgpCit3YXNtUm91bmRp
bmdPcChmMzJfbmVhcmVzdCwgV2FzbUYzMk5lYXJlc3QsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRm
KGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgcm91bmRmIGZ0MCwgZnQwCiAgICAgcmV0dXJuZihj
dHgsIGZ0MCkKIGVuZCkKIAotd2FzbU9wKGY2NF90cnVuYywgV2FzbUY2NFRydW5jLCBtYWNybyAo
Y3R4KQord2FzbVJvdW5kaW5nT3AoZjY0X3RydW5jLCBXYXNtRjY0VHJ1bmMsIG1hY3JvIChjdHgp
CiAgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgdHJ1bmNhdGVkIGZ0MCwgZnQw
CiAgICAgcmV0dXJuZChjdHgsIGZ0MCkKIGVuZCkKIAotd2FzbU9wKGY2NF9uZWFyZXN0LCBXYXNt
RjY0TmVhcmVzdCwgbWFjcm8gKGN0eCkKK3dhc21Sb3VuZGluZ09wKGY2NF9uZWFyZXN0LCBXYXNt
RjY0TmVhcmVzdCwgbWFjcm8gKGN0eCkKICAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkK
ICAgICByb3VuZGQgZnQwLCBmdDAKICAgICByZXR1cm5kKGN0eCwgZnQwKQpAQCAtMTI2OSwyNCAr
MTA2OSw2IEBAIHdhc21PcChpMzJfdHJ1bmNfc19mMzIsIFdhc21JMzJUcnVuY1NGMzIsIG1hY3Jv
IChjdHgpCiAgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKIGVuZCkKIAotd2Fz
bU9wKGkzMl90cnVuY19zX2Y2NCwgV2FzbUkzMlRydW5jU0Y2NCwgbWFjcm8gKGN0eCkKLSAgICBt
bG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhjMWUwMDAwMDAwMjAwMDAw
LCB0MCAjIElOVDMyX01JTiAtIDEuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVuIGZ0
MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgbW92ZSAweDQxZTAwMDAwMDAwMDAwMDAs
IHQwICMgLUlOVDMyX01JTgotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQx
LCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgdHJ1bmNhdGVkMmlzIGZ0MCwgdDAKLSAgICByZXR1
cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0aW9uKE91
dE9mQm91bmRzVHJ1bmMpCi1lbmQpCi0KIHdhc21PcChpMzJfdHJ1bmNfdV9mMzIsIFdhc21JMzJU
cnVuY1VGMzIsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAK
QEAgLTEzMDUsMTY1ICsxMDg3LDQ3IEBAIHdhc21PcChpMzJfdHJ1bmNfdV9mMzIsIFdhc21JMzJU
cnVuY1VGMzIsIG1hY3JvIChjdHgpCiAgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVu
YykKIGVuZCkKIAotd2FzbU9wKGkzMl90cnVuY191X2Y2NCwgV2FzbUkzMlRydW5jVUY2NCwgbWFj
cm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKK3dhc21PcChpMzJfdHJ1
bmNfc2F0X2YzMl9zLCBXYXNtSTMyVHJ1bmNTYXRGMzJTLCBtYWNybyAoY3R4KQorICAgIG1sb2Fk
ZihjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGNmMDAwMDAwLCB0MCAjIElOVDMy
X01JTiAoTm90ZSB0aGF0IElOVDMyX01JTiAtIDEuMCBpbiBmbG9hdCBpcyB0aGUgc2FtZSBhcyBJ
TlQzMl9NSU4gaW4gZmxvYXQpLgorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmbHR1biBmdDAsIGZ0
MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTgorCisgICAgbW92ZSAweDRmMDAwMDAwLCB0
MCAjIC1JTlQzMl9NSU4KKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmd0ZXF1biBmdDAsIGZ0MSwg
Lm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKIAotICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0
MCAjIC0xLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9m
Qm91bmRzVHJ1bmMKKyAgICB0cnVuY2F0ZWYyaXMgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0
MCkKIAotICAgIG1vdmUgMHg0MWYwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDMyX01JTiAqIC0yLjAK
LSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1
bmMKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU46CisgICAgYmZlcSBmdDAsIGZ0MCwgLm91
dE9mQm91bmRzVHJ1bmNTYXRNaW4KKyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQw
KQogCi0gICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAorLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6Cisg
ICAgbW92ZSAoY29uc3RleHByIElOVDMyX01BWCksIHQwCiAgICAgcmV0dXJuaShjdHgsIHQwKQog
Ci0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5j
KQorLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAoY29uc3RleHByIElOVDMyX01J
TiksIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQogCi13YXNtT3AoaTY0X3RydW5jX3Nf
ZjMyLCBXYXNtSTY0VHJ1bmNTRjMyLCBtYWNybyAoY3R4KQord2FzbU9wKGkzMl90cnVuY19zYXRf
ZjMyX3UsIFdhc21JMzJUcnVuY1NhdEYzMlUsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRmKGN0eCwg
bV9vcGVyYW5kLCBmdDApCiAKLSAgICBtb3ZlIDB4ZGYwMDAwMDAsIHQwICMgSU5UNjRfTUlOCisg
ICAgbW92ZSAweGJmODAwMDAwLCB0MCAjIC0xLjAKICAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmx0
dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisgICAgYmZsdGVxdW4gZnQwLCBmdDEsIC5v
dXRPZkJvdW5kc1RydW5jU2F0TWluCiAKLSAgICBtb3ZlIDB4NWYwMDAwMDAsIHQwICMgLUlOVDY0
X01JTgorICAgIG1vdmUgMHg0ZjgwMDAwMCwgdDAgIyBJTlQzMl9NSU4gKiAtMi4wCiAgICAgZmky
ZiB0MCwgZnQxCi0gICAgYmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisgICAg
YmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CiAKLSAgICB0cnVuY2F0
ZWYycXMgZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmM6
Ci0gICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKLWVuZCkKLQotd2FzbU9wKGk2
NF90cnVuY19zX2Y2NCwgV2FzbUk2NFRydW5jU0Y2NCwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQo
Y3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhjM2UwMDAwMDAwMDAwMDAwLCB0MCAj
IElOVDY0X01JTgotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHR1biBmdDAsIGZ0MSwgLm91dE9m
Qm91bmRzVHJ1bmMKLQotICAgIG1vdmUgMHg0M2UwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQ2NF9N
SU4KLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmMKLQotICAgIHRydW5jYXRlZDJxcyBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQot
Ci0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5j
KQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3VfZjMyLCBXYXNtSTY0VHJ1bmNVRjMyLCBtYWNy
byAoY3R4KQotICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGJm
ODAwMDAwLCB0MCAjIC0xLjAKLSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmx0ZXF1biBmdDAsIGZ0
MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIG1vdmUgMHg1ZjgwMDAwMCwgdDAgIyBJTlQ2NF9N
SU4gKiAtMi4wCi0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZndGVxdW4gZnQwLCBmdDEsIC5vdXRP
ZkJvdW5kc1RydW5jCi0KLSAgICB0cnVuY2F0ZWYycSBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgs
IHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5k
c1RydW5jKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3VfZjY0LCBXYXNtSTY0VHJ1bmNVRjY0
LCBtYWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92
ZSAweGJmZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJk
bHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgbW92ZSAweDQzZjAwMDAw
MDAwMDAwMDAsIHQwICMgSU5UNjRfTUlOICogLTIuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJk
Z3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgdHJ1bmNhdGVkMnEgZnQw
LCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmM6Ci0gICAgdGhy
b3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKLWVuZCkKLQotd2FzbU9wKGkzMl90cnVuY19z
YXRfZjMyX3MsIFdhc21JMzJUcnVuY1NhdEYzMlMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRmKGN0
eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4Y2YwMDAwMDAsIHQwICMgSU5UMzJfTUlO
IChOb3RlIHRoYXQgSU5UMzJfTUlOIC0gMS4wIGluIGZsb2F0IGlzIHRoZSBzYW1lIGFzIElOVDMy
X01JTiBpbiBmbG9hdCkuCi0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZsdHVuIGZ0MCwgZnQxLCAu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOCi0KLSAgICBtb3ZlIDB4NGYwMDAwMDAsIHQwICMg
LUlOVDMyX01JTgotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0
T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVmMmlzIGZ0MCwgdDAKLSAgICByZXR1
cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU46Ci0gICAgYmZlcSBm
dDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KLSAgICBtb3ZlIDAsIHQwCi0gICAgcmV0
dXJuaShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKLSAgICBtb3ZlIChjb25z
dGV4cHIgSU5UMzJfTUFYKSwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5k
c1RydW5jU2F0TWluOgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQzMl9NSU4pLCB0MAotICAgIHJl
dHVybmkoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGkzMl90cnVuY19zYXRfZjY0X3MsIFdhc21J
MzJUcnVuY1NhdEY2NFMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBm
dDApCi0KLSAgICBtb3ZlIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDAgIyBJTlQzMl9NSU4gLSAxLjAK
LSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1
bmNTYXRNaW5Pck5hTgotCi0gICAgbW92ZSAweDQxZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDMy
X01JTgotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3Vu
ZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVkMmlzIGZ0MCwgdDAKLSAgICByZXR1cm5pKGN0
eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU46Ci0gICAgYmRlcSBmdDAsIGZ0
MCwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KLSAgICBtb3ZlIDAsIHQwCi0gICAgcmV0dXJuaShj
dHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKLSAgICBtb3ZlIChjb25zdGV4cHIg
SU5UMzJfTUFYKSwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5j
U2F0TWluOgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQzMl9NSU4pLCB0MAotICAgIHJldHVybmko
Y3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGkzMl90cnVuY19zYXRfZjMyX3UsIFdhc21JMzJUcnVu
Y1NhdEYzMlUsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0K
LSAgICBtb3ZlIDB4YmY4MDAwMDAsIHQwICMgLTEuMAotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJm
bHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotCi0gICAgbW92ZSAweDRm
ODAwMDAwLCB0MCAjIElOVDMyX01JTiAqIC0yLjAKLSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmd0
ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQotICAgIHRydW5jYXRlZjJp
IGZ0MCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCisgICAgdHJ1bmNhdGVmMmkgZnQwLCB0MAor
ICAgIHJldHVybmkoY3R4LCB0MCkKIAogLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46CiAgICAgbW92
ZSAwLCB0MApAQCAtMTQ3NCwxNTIgKzExMzgsMjIgQEAgd2FzbU9wKGkzMl90cnVuY19zYXRfZjMy
X3UsIFdhc21JMzJUcnVuY1NhdEYzMlUsIG1hY3JvIChjdHgpCiAgICAgcmV0dXJuaShjdHgsIHQw
KQogZW5kKQogCi13YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfdSwgV2FzbUkzMlRydW5jU2F0RjY0
VSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1v
dmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBi
ZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KLQotICAgIG1vdmUgMHg0
MWYwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDMyX01JTiAqIC0yLjAKLSAgICBmcTJkIHQwLCBmdDEK
LSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQotICAgIHRy
dW5jYXRlZDJpIGZ0MCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1Ry
dW5jU2F0TWluOgotICAgIG1vdmUgMCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS5vdXRP
ZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UMzJfTUFYKSwgdDAK
LSAgICByZXR1cm5pKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl9z
LCBXYXNtSTY0VHJ1bmNTYXRGMzJTLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZihjdHgsIG1fb3Bl
cmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGRmMDAwMDAwLCB0MCAjIElOVDY0X01JTgotICAgIGZp
MmYgdDAsIGZ0MQotICAgIGJmbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5P
ck5hTgotCi0gICAgbW92ZSAweDVmMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KLSAgICBmaTJmIHQw
LCBmdDEKLSAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQot
ICAgIHRydW5jYXRlZjJxcyBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZC
b3VuZHNUcnVuY1NhdE1pbk9yTmFOOgotICAgIGJmZXEgZnQwLCBmdDAsIC5vdXRPZkJvdW5kc1Ry
dW5jU2F0TWluCi0gICAgbW92ZSAwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9m
Qm91bmRzVHJ1bmNTYXRNYXg6Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDY0X01BWCksIHQwCi0g
ICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKLSAgICBtb3Zl
IChjb25zdGV4cHIgSU5UNjRfTUlOKSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0K
LXdhc21PcChpNjRfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTY0VHJ1bmNTYXRGNjRTLCBtYWNybyAo
Y3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGMzZTAw
MDAwMDAwMDAwMDAsIHQwICMgSU5UNjRfTUlOCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdHVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOCi0KLSAgICBtb3ZlIDB4NDNl
MDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRn
dGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWQy
cXMgZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRN
aW5Pck5hTjoKLSAgICBiZGVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotICAg
IG1vdmUgMCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0
TWF4OgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9NQVgpLCB0MAotICAgIHJldHVybnEoY3R4
LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46Ci0gICAgbW92ZSAoY29uc3RleHByIElO
VDY0X01JTiksIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3Ry
dW5jX3NhdF9mMzJfdSwgV2FzbUk2NFRydW5jU2F0RjMyVSwgbWFjcm8gKGN0eCkKLSAgICBtbG9h
ZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhiZjgwMDAwMCwgdDAgIyAtMS4w
Ci0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1Ry
dW5jU2F0TWluCi0KLSAgICBtb3ZlIDB4NWY4MDAwMDAsIHQwICMgSU5UNjRfTUlOICogLTIuMAot
ICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1heAotCi0gICAgdHJ1bmNhdGVmMnEgZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkK
LQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46Ci0gICAgbW92ZSAwLCB0MAotICAgIHJldHVybnEo
Y3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6Ci0gICAgbW92ZSAoY29uc3RleHBy
IFVJTlQ2NF9NQVgpLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2
NF90cnVuY19zYXRfZjY0X3UsIFdhc21JNjRUcnVuY1NhdEY2NFUsIG1hY3JvIChjdHgpCi0gICAg
bWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YmZmMDAwMDAwMDAwMDAw
MCwgdDAgIyAtMS4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5v
dXRPZkJvdW5kc1RydW5jU2F0TWluCi0KLSAgICBtb3ZlIDB4NDNmMDAwMDAwMDAwMDAwMCwgdDAg
IyBJTlQ2NF9NSU4gKiAtMi4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBm
dDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWQycSBmdDAsIHQwCi0g
ICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKLSAgICBtb3Zl
IDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoK
LSAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDY0X01BWCksIHQwCi0gICAgcmV0dXJucShjdHgsIHQw
KQotZW5kKQotCi0KLXdhc21PcChmMzJfY29udmVydF91X2k2NCwgV2FzbUYzMkNvbnZlcnRVSTY0
LCBtYWNybyAoY3R4KQord2FzbUk2NFRvRk9wKGYzMl9jb252ZXJ0X3VfaTY0LCBXYXNtRjMyQ29u
dmVydFVJNjQsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAg
ICBpZiBYODZfNjQKICAgICAgICAgY3EyZiB0MCwgdDEsIGZ0MAotICAgIGVsc2lmIEFSTTY0IG9y
IEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgICAgIGNxMmYgdDAsIGZ0MAogICAgIGVsc2UKLSAgICAg
ICAgZXJyb3IKKyAgICAgICAgY3EyZiB0MCwgZnQwCiAgICAgZW5kCiAgICAgcmV0dXJuZihjdHgs
IGZ0MCkKIGVuZCkKIAotd2FzbU9wKGY2NF9jb252ZXJ0X3VfaTY0LCBXYXNtRjY0Q29udmVydFVJ
NjQsIG1hY3JvIChjdHgpCit3YXNtSTY0VG9GT3AoZjY0X2NvbnZlcnRfdV9pNjQsIFdhc21GNjRD
b252ZXJ0VUk2NCwgbWFjcm8gKGN0eCkKICAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQog
ICAgIGlmIFg4Nl82NAogICAgICAgICBjcTJkIHQwLCB0MSwgZnQwCi0gICAgZWxzaWYgQVJNNjQg
b3IgQVJNNjRFIG9yIFJJU0NWNjQKLSAgICAgICAgY3EyZCB0MCwgZnQwCiAgICAgZWxzZQotICAg
ICAgICBlcnJvcgorICAgICAgICBjcTJkIHQwLCBmdDAKICAgICBlbmQKICAgICByZXR1cm5kKGN0
eCwgZnQwKQogZW5kKQpAQCAtMTYzMCw0NyArMTE2NCw2IEBAIHdhc21PcChpMzJfZXF6LCBXYXNt
STMyRXF6LCBtYWNybyhjdHgpCiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQogCi13YXNtT3Ao
aTY0X3NobCwgV2FzbUk2NFNobCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0
MCkKLSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCi0gICAgbHNoaWZ0cSB0MSwgdDAKLSAgICBy
ZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfc2hyX3UsIFdhc21JNjRTaHJVLCBt
YWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1f
cmhzLCB0MSkKLSAgICB1cnNoaWZ0cSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQp
Ci0KLXdhc21PcChpNjRfc2hyX3MsIFdhc21JNjRTaHJTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRx
KGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLSAgICByc2hpZnRx
IHQxLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9yb3RyLCBX
YXNtSTY0Um90ciwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBt
bG9hZGkoY3R4LCBtX3JocywgdDEpCi0gICAgcnJvdGF0ZXEgdDEsIHQwCi0gICAgcmV0dXJucShj
dHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3JvdGwsIFdhc21JNjRSb3RsLCBtYWNybyhjdHgp
Ci0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkK
LSAgICBscm90YXRlcSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21P
cChpNjRfZXF6LCBXYXNtSTY0RXF6LCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVy
YW5kLCB0MCkKLSAgICBjcWVxIHQwLCAwLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLWVuZCkK
LQogd2FzbU9wKGYzMl9taW4sIFdhc21GMzJNaW4sIG1hY3JvKGN0eCkKICAgICBtbG9hZGYoY3R4
LCBtX2xocywgZnQwKQogICAgIG1sb2FkZihjdHgsIG1fcmhzLCBmdDEpCkBAIC0xNzgwLDIzICsx
MjczLDYgQEAgd2FzbU9wKGY2NF9tYXgsIFdhc21GNjRNYXgsIG1hY3JvKGN0eCkKICAgICByZXR1
cm5kKGN0eCwgZnQxKQogZW5kKQogCi13YXNtT3AoZjY0X2NvcHlzaWduLCBXYXNtRjY0Q29weXNp
Z24sIG1hY3JvKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX2xocywgZnQwKQotICAgIG1sb2FkZChj
dHgsIG1fcmhzLCBmdDEpCi0KLSAgICBmZDJxIGZ0MSwgdDEKLSAgICBtb3ZlIDB4ODAwMDAwMDAw
MDAwMDAwMCwgdDIKLSAgICBhbmRxIHQyLCB0MQotCi0gICAgZmQycSBmdDAsIHQwCi0gICAgbW92
ZSAweDdmZmZmZmZmZmZmZmZmZmYsIHQyCi0gICAgYW5kcSB0MiwgdDAKLQotICAgIG9ycSB0MSwg
dDAKLSAgICBmcTJkIHQwLCBmdDAKLSAgICByZXR1cm5kKGN0eCwgZnQwKQotZW5kKQotCiB3YXNt
T3AoZjMyX2NvbnZlcnRfdV9pMzIsIFdhc21GMzJDb252ZXJ0VUkzMiwgbWFjcm8oY3R4KQogICAg
IG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAgY2kyZiB0MCwgZnQwCkBAIC0xOTcyLDEz
NCArMTQ0OCw2IEBAIHdhc21PcChpMzJfY2x6LCBXYXNtSTMyQ2x6LCBtYWNybyhjdHgpCiAgICAg
cmV0dXJuaShjdHgsIHQxKQogZW5kKQogCi13YXNtT3AoaTY0X2FkZCwgV2FzbUk2NEFkZCwgbWFj
cm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3Jo
cywgdDEpCi0gICAgYWRkcSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdh
c21PcChpNjRfc3ViLCBXYXNtSTY0U3ViLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9s
aHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBzdWJxIHQxLCB0MAotICAg
IHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9tdWwsIFdhc21JNjRNdWwsIG1h
Y3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9y
aHMsIHQxKQotICAgIG11bHEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13
YXNtT3AoaTY0X2FuZCwgV2FzbUk2NEFuZCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1f
bGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgYW5kcSB0MCwgdDEKLSAg
ICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfb3IsIFdhc21JNjRPciwgbWFj
cm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3Jo
cywgdDEpCi0gICAgb3JxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2Fz
bU9wKGk2NF94b3IsIFdhc21JNjRYb3IsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xo
cywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIHhvcnEgdDAsIHQxCi0gICAg
cmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X2VxLCBXYXNtSTY0RXEsIG1hY3Jv
KGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMs
IHQxKQotICAgIGNxZXEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0
eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfbmUsIFdhc21JNjROZSwgbWFjcm8oY3R4KQotICAg
IG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAg
Y3FuZXEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1l
bmQpCi0KLXdhc21PcChpNjRfbHRfcywgV2FzbUk2NEx0UywgbWFjcm8oY3R4KQotICAgIG1sb2Fk
cShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FsdCB0
MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQot
d2FzbU9wKGk2NF9sZV9zLCBXYXNtSTY0TGVTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwg
bV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWx0ZXEgdDAsIHQx
LCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21P
cChpNjRfbHRfdSwgV2FzbUk2NEx0VSwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhz
LCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FiIHQwLCB0MSwgdDIKLSAg
ICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2xl
X3UsIFdhc21JNjRMZVUsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0g
ICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxYmVxIHQwLCB0MSwgdDIKLSAgICBhbmRp
IDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2d0X3MsIFdh
c21JNjRHdFMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxv
YWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxZ3QgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIK
LSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfZ2VfcywgV2FzbUk2NEdl
UywgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4
LCBtX3JocywgdDEpCi0gICAgY3FndGVxIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAg
cmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2d0X3UsIFdhc21JNjRHdFUsIG1h
Y3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9y
aHMsIHQxKQotICAgIGNxYSB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmko
Y3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9nZV91LCBXYXNtSTY0R2VVLCBtYWNybyhjdHgp
Ci0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkK
LSAgICBjcWFlcSB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0
MikKLWVuZCkKLQotd2FzbU9wKGk2NF9jbHosIFdhc21JNjRDbHosIG1hY3JvKGN0eCkKLSAgICBt
bG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIGx6Y250cSB0MCwgdDEKLSAgICByZXR1cm5x
KGN0eCwgdDEpCi1lbmQpCi0KIHdhc21PcChmMzJfYWRkLCBXYXNtRjMyQWRkLCBtYWNybyhjdHgp
CiAgICAgbWxvYWRmKGN0eCwgbV9saHMsIGZ0MCkKICAgICBtbG9hZGYoY3R4LCBtX3JocywgZnQx
KQpAQCAtMjE0MCwxMyArMTQ4OCwxMyBAQCB3YXNtT3AoZjMyX25lZywgV2FzbUYzMk5lZywgbWFj
cm8oY3R4KQogICAgIHJldHVybmYoY3R4LCBmdDEpCiBlbmQpCiAKLXdhc21PcChmMzJfY2VpbCwg
V2FzbUYzMkNlaWwsIG1hY3JvKGN0eCkKK3dhc21Sb3VuZGluZ09wKGYzMl9jZWlsLCBXYXNtRjMy
Q2VpbCwgbWFjcm8oY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIGNl
aWxmIGZ0MCwgZnQxCiAgICAgcmV0dXJuZihjdHgsIGZ0MSkKIGVuZCkKIAotd2FzbU9wKGYzMl9m
bG9vciwgV2FzbUYzMkZsb29yLCBtYWNybyhjdHgpCit3YXNtUm91bmRpbmdPcChmMzJfZmxvb3Is
IFdhc21GMzJGbG9vciwgbWFjcm8oY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQw
KQogICAgIGZsb29yZiBmdDAsIGZ0MQogICAgIHJldHVybmYoY3R4LCBmdDEpCkBAIC0yMjQwLDEz
ICsxNTg4LDEzIEBAIHdhc21PcChmNjRfbmVnLCBXYXNtRjY0TmVnLCBtYWNybyhjdHgpCiAgICAg
cmV0dXJuZChjdHgsIGZ0MSkKIGVuZCkKIAotd2FzbU9wKGY2NF9jZWlsLCBXYXNtRjY0Q2VpbCwg
bWFjcm8oY3R4KQord2FzbVJvdW5kaW5nT3AoZjY0X2NlaWwsIFdhc21GNjRDZWlsLCBtYWNybyhj
dHgpCiAgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgY2VpbGQgZnQwLCBmdDEK
ICAgICByZXR1cm5kKGN0eCwgZnQxKQogZW5kKQogCi13YXNtT3AoZjY0X2Zsb29yLCBXYXNtRjY0
Rmxvb3IsIG1hY3JvKGN0eCkKK3dhc21Sb3VuZGluZ09wKGY2NF9mbG9vciwgV2FzbUY2NEZsb29y
LCBtYWNybyhjdHgpCiAgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgZmxvb3Jk
IGZ0MCwgZnQxCiAgICAgcmV0dXJuZChjdHgsIGZ0MSkKQEAgLTIzMDEsNTAgKzE2NDksMjAgQEAg
d2FzbU9wKGY2NF9nZSwgV2FzbUY2NEdlLCBtYWNybyhjdHgpCiBlbmQpCiAKIHdhc21PcChpMzJf
d3JhcF9pNjQsIFdhc21JMzJXcmFwSTY0LCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9v
cGVyYW5kLCB0MCkKLSAgICByZXR1cm5pKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfZXh0
ZW5kX3NfaTMyLCBXYXNtSTY0RXh0ZW5kU0kzMiwgbWFjcm8oY3R4KQotICAgIG1sb2FkaShjdHgs
IG1fb3BlcmFuZCwgdDApCi0gICAgc3hpMnEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQot
ZW5kKQotCi13YXNtT3AoaTY0X2V4dGVuZF91X2kzMiwgV2FzbUk2NEV4dGVuZFVJMzIsIG1hY3Jv
KGN0eCkKICAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIHp4aTJxIHQwLCB0MQot
ICAgIHJldHVybnEoY3R4LCB0MSkKKyAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCiAKIHdhc21P
cChpMzJfZXh0ZW5kOF9zLCBXYXNtSTMyRXh0ZW5kOFMsIG1hY3JvKGN0eCkKICAgICBtbG9hZGko
Y3R4LCBtX29wZXJhbmQsIHQwKQogICAgIHN4YjJpIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0
MSkKKyAgICByZXR1cm5pKGN0eCwgdDEpCiBlbmQpCiAKIHdhc21PcChpMzJfZXh0ZW5kMTZfcywg
V2FzbUkzMkV4dGVuZDE2UywgbWFjcm8oY3R4KQogICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwg
dDApCiAgICAgc3hoMmkgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNt
T3AoaTY0X2V4dGVuZDhfcywgV2FzbUk2NEV4dGVuZDhTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRx
KGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBzeGIycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwg
dDEpCi1lbmQpCi0KLXdhc21PcChpNjRfZXh0ZW5kMTZfcywgV2FzbUk2NEV4dGVuZDE2UywgbWFj
cm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgc3hoMnEgdDAsIHQx
Ci0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X2V4dGVuZDMyX3MsIFdh
c21JNjRFeHRlbmQxNlMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQw
KQotICAgIHN4aTJxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKKyAgICByZXR1cm5pKGN0
eCwgdDEpCiBlbmQpCiAKIHdhc21PcChmMzJfY29udmVydF9zX2kzMiwgV2FzbUYzMkNvbnZlcnRT
STMyLCBtYWNybyhjdHgpCkBAIC0yMzUzLDcgKzE2NzEsNyBAQCB3YXNtT3AoZjMyX2NvbnZlcnRf
c19pMzIsIFdhc21GMzJDb252ZXJ0U0kzMiwgbWFjcm8oY3R4KQogICAgIHJldHVybmYoY3R4LCBm
dDApCiBlbmQpCiAKLXdhc21PcChmMzJfY29udmVydF9zX2k2NCwgV2FzbUYzMkNvbnZlcnRTSTY0
LCBtYWNybyhjdHgpCit3YXNtSTY0VG9GT3AoZjMyX2NvbnZlcnRfc19pNjQsIFdhc21GMzJDb252
ZXJ0U0k2NCwgbWFjcm8oY3R4KQogICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAg
Y3EyZnMgdDAsIGZ0MAogICAgIHJldHVybmYoY3R4LCBmdDApCkBAIC0yMzc3LDcgKzE2OTUsNyBA
QCB3YXNtT3AoZjY0X2NvbnZlcnRfc19pMzIsIFdhc21GNjRDb252ZXJ0U0kzMiwgbWFjcm8oY3R4
KQogICAgIHJldHVybmQoY3R4LCBmdDApCiBlbmQpCiAKLXdhc21PcChmNjRfY29udmVydF9zX2k2
NCwgV2FzbUY2NENvbnZlcnRTSTY0LCBtYWNybyhjdHgpCit3YXNtSTY0VG9GT3AoZjY0X2NvbnZl
cnRfc19pNjQsIFdhc21GNjRDb252ZXJ0U0k2NCwgbWFjcm8oY3R4KQogICAgIG1sb2FkcShjdHgs
IG1fb3BlcmFuZCwgdDApCiAgICAgY3EyZHMgdDAsIGZ0MAogICAgIHJldHVybmQoY3R4LCBmdDAp
CkBAIC0yMzg5LDM0ICsxNzA3LDI5IEBAIHdhc21PcChmNjRfcHJvbW90ZV9mMzIsIFdhc21GNjRQ
cm9tb3RlRjMyLCBtYWNybyhjdHgpCiAgICAgcmV0dXJuZChjdHgsIGZ0MSkKIGVuZCkKIAotd2Fz
bU9wKGY2NF9yZWludGVycHJldF9pNjQsIFdhc21GNjRSZWludGVycHJldEk2NCwgbWFjcm8oY3R4
KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgZnEyZCB0MCwgZnQwCi0gICAg
cmV0dXJuZChjdHgsIGZ0MCkKLWVuZCkKLQogd2FzbU9wKGkzMl9yZWludGVycHJldF9mMzIsIFdh
c21JMzJSZWludGVycHJldEYzMiwgbWFjcm8oY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFu
ZCwgZnQwKQogICAgIGZmMmkgZnQwLCB0MAogICAgIHJldHVybmkoY3R4LCB0MCkKIGVuZCkKIAot
d2FzbU9wKGk2NF9yZWludGVycHJldF9mNjQsIFdhc21JNjRSZWludGVycHJldEY2NCwgbWFjcm8o
Y3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotICAgIGZkMnEgZnQwLCB0MAot
ICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQogbWFjcm8gZHJvcEtlZXAoc3RhcnRPZmZzZXQs
IGRyb3AsIGtlZXApCiAgICAgbHNoaWZ0aSAzLCBzdGFydE9mZnNldAogICAgIHN1YnAgY2ZyLCBz
dGFydE9mZnNldCwgc3RhcnRPZmZzZXQKICAgICBuZWdpIGRyb3AKK2lmIEpTVkFMVUU2NAogICAg
IHN4aTJxIGRyb3AsIGRyb3AKK2VuZAogCiAuY29weUxvb3A6CiAgICAgYnRpeiBrZWVwLCAuZG9u
ZQoraWYgSlNWQUxVRTY0CiAgICAgbG9hZHEgW3N0YXJ0T2Zmc2V0LCBkcm9wLCA4XSwgdDYKICAg
ICBzdG9yZXEgdDYsIFtzdGFydE9mZnNldF0KK2Vsc2UKKyAgICBsb2FkMmlhIFtzdGFydE9mZnNl
dCwgZHJvcCwgOF0sIHQ1LCB0NgorICAgIHN0b3JlMmlhIHQ1LCB0NiwgW3N0YXJ0T2Zmc2V0XQor
ZW5kCiAgICAgc3ViaSAxLCBrZWVwCiAgICAgc3VicCA4LCBzdGFydE9mZnNldAogICAgIGptcCAu
Y29weUxvb3AKQEAgLTI0MzQsMzg5ICsxNzQ3LDYgQEAgd2FzbU9wKGRyb3Bfa2VlcCwgV2FzbURy
b3BLZWVwLCBtYWNybyhjdHgpCiAgICAgZGlzcGF0Y2goY3R4KQogZW5kKQogCi1tYWNybyB3YXNt
QXRvbWljQmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIs
IGZuaCwgZm5pLCBmbnEpCi0gICAgd2FzbU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNv
ZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0g
ICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9v
ZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKLSAgICAgICAgZW1p
dENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQoY3R4LCB0MywgdDEsIDEpCi0gICAg
ICAgIGZuYih0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKLSAgICAgICAgYW5kcSAweGZmLCB0MCAjIEZJ
WE1FOiBaZXJvRXh0ZW5kOFRvNjQKLSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwg
MHhmZiwgLm9rIGVuZCkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAgICB3
YXNtT3AoaTY0X2F0b21pY19ybXcxNiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNS
bXcxNiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBt
X3BvaW50ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAg
bWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2lu
dGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCAyKQotICAgICAg
ICBmbmgodDAsIFt0M10sIHQyLCB0NSwgdDEpCi0gICAgICAgIGFuZHEgMHhmZmZmLCB0MCAjIEZJ
WE1FOiBaZXJvRXh0ZW5kMTZUbzY0Ci0gICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAs
IDB4ZmZmZiwgLm9rIGVuZCkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAg
ICB3YXNtT3AoaTY0X2F0b21pY19ybXczMiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9t
aWNSbXczMiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4
LCBtX3BvaW50ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAg
ICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQ
b2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA0KQotICAg
ICAgICBmbmkodDAsIFt0M10sIHQyLCB0NSwgdDEpCi0gICAgICAgIGFzc2VydChtYWNybyhvaykg
YnFiZXEgdDAsIDB4ZmZmZmZmZmYsIC5vayBlbmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkK
LSAgICBlbmQpCi0gICAgd2FzbU9wKGk2NF9hdG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdh
c21JNjRBdG9taWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9h
ZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkK
LSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCi0gICAgICAgIGVtaXRDaGVja0FuZFBy
ZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA4
KQotICAgICAgICBmbnEodDAsIFt0M10sIHQyLCB0NSwgdDEpCi0gICAgICAgIHJldHVybnEoY3R4
LCB0MCkKLSAgICBlbmQpCi1lbmQKLQotbWFjcm8gd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhX
ZWFrQ0FTKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmksIGZucSkKLSAgICB3
YXNtQXRvbWljQmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLAot
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAg
ICAgaWYgWDg2XzY0Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKLSAgICAgICAg
ICAgICAgICBsb2FkYiBtZW0sIHQwR1BSCi0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAg
ICAgICBtb3ZlIHQwR1BSLCB0MkdQUgotICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIp
Ci0gICAgICAgICAgICAgICAgYmF0b21pY3dlYWtjYXNiIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9v
cAotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAg
bG9hZGxpbmthY3FiIG1lbSwgdDFHUFIKLSAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BS
LCB0MkdQUikKLSAgICAgICAgICAgICAgICBzdG9yZWNvbmRyZWxiIHQ1R1BSLCB0MkdQUiwgbWVt
Ci0gICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCi0gICAgICAgICAgICAgICAg
bW92ZSB0MUdQUiwgdDBHUFIKLSAgICAgICAgICAgIGVuZAotICAgICAgICBlbmQsCi0gICAgICAg
IG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBpZiBY
ODZfNjQKLSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgotICAgICAgICAgICAgICAg
IGxvYWRoIG1lbSwgdDBHUFIKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIG1v
dmUgdDBHUFIsIHQyR1BSCi0gICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKLSAgICAg
ICAgICAgICAgICBiYXRvbWljd2Vha2Nhc2ggdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCi0gICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBsb2FkbGlu
a2FjcWggbWVtLCB0MUdQUgotICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BS
KQotICAgICAgICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAg
ICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKLSAgICAgICAgICAgICAgICBtb3ZlIHQx
R1BSLCB0MEdQUgotICAgICAgICAgICAgZW5kCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIGlmIFg4Nl82NAot
ICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCi0gICAgICAgICAgICAgICAgbG9hZGkg
bWVtLCB0MEdQUgotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQ
UiwgdDJHUFIKLSAgICAgICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQotICAgICAgICAgICAg
ICAgIGJhdG9taWN3ZWFrY2FzaSB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKLSAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxaSBt
ZW0sIHQxR1BSCi0gICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAg
ICAgICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAg
ICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAotICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQw
R1BSCi0gICAgICAgICAgICBlbmQKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgaWYgWDg2XzY0Ci0gICAgICAg
ICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKLSAgICAgICAgICAgICAgICBsb2FkcSBtZW0sIHQw
R1BSCi0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQ
UgotICAgICAgICAgICAgICAgIGZucSh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAgICAgYmF0
b21pY3dlYWtjYXNxIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAotICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbG9hZGxpbmthY3FxIG1lbSwgdDFH
UFIKLSAgICAgICAgICAgICAgICBmbnEodDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAg
ICAgICBzdG9yZWNvbmRyZWxxIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICAgICAgYmlu
ZXEgdDVHUFIsIDAsIC5sb29wCi0gICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAg
ICAgICAgICAgIGVuZAotICAgICAgICBlbmQpCi1lbmQKLQotaWYgWDg2XzY0Ci0gICAgd2FzbUF0
b21pY0JpbmFyeVJNV09wcyhfYWRkLCBBZGQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0gZW5kLAotICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaCB0
MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
MUdQUikgYXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRxIHQwR1BSLCBtZW0gZW5k
KQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3N1YiwgU3ViLAotICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3ViYiB0MEdQUiwgbWVt
IGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRv
bWljeGNoZ3N1YmggdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJpIHQwR1BSLCBtZW0gZW5kLAotICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3VicSB0
MEdQUiwgbWVtIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94Y2hnLCBYY2hnLAot
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
YiB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikgYXRvbWljeGNoZ2ggdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdpIHQwR1BSLCBtZW0gZW5kLAot
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
cSB0MEdQUiwgbWVtIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMo
X2FuZCwgQW5kLAotICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBhbmRp
IHQ1R1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikK
LSAgICAgICAgICAgIGFuZHEgdDVHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRv
bWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX29yLCBPciwKLSAgICAgICAgbWFjcm8odDVHUFIs
IHQyR1BSKQotICAgICAgICAgICAgb3JpIHQ1R1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAg
ICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgIG9ycSB0NUdQUiwgdDJHUFIKLSAg
ICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeG9yLCBY
b3IsCi0gICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgIHhvcmkgdDVHUFIs
IHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAg
ICAgICAgeG9ycSB0NUdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQotZWxzaWYgQVJNNjRFCi0gICAg
d2FzbUF0b21pY0JpbmFyeVJNV09wcyhfYWRkLCBBZGQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0sIHQwR1BS
IGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRv
bWljeGNoZ2FkZGggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtLCB0MEdQ
UiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0
b21pY3hjaGdhZGRxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5
Uk1XT3BzKF9zdWIsIFN1YiwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikKLSAgICAgICAgICAgIG5lZ3EgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdh
ZGRiIHQwR1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIs
IG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIG5lZ3EgdDBHUFIKLSAgICAg
ICAgICAgIGF0b21pY3hjaGdhZGRoIHQwR1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCwKLSAg
ICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAg
IG5lZ3EgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0sIHQwR1BS
Ci0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
MUdQUikKLSAgICAgICAgICAgIG5lZ3EgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdhZGRx
IHQwR1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1X
T3BzKF9hbmQsIEFuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
MUdQUikKLSAgICAgICAgICAgIG5vdHEgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdjbGVh
cmIgdDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgbm90cSB0MEdQUgotICAgICAg
ICAgICAgYXRvbWljeGNoZ2NsZWFyaCB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQsCi0g
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAg
ICBub3RxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnY2xlYXJpIHQwR1BSLCBtZW0sIHQw
R1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikKLSAgICAgICAgICAgIG5vdHEgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdj
bGVhcnEgdDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5h
cnlSTVdPcHMoX29yLCBPciwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikgYXRvbWljeGNoZ29yYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcmggdDBHUFIs
IG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIs
IHQxR1BSKSBhdG9taWN4Y2hnb3JpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFj
cm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29ycSB0MEdQUiwg
bWVtLCB0MEdQUiBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfeG9yLCBYb3IsCi0g
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4
b3JiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJH
UFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAot
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
eG9yaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkK
LSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94Y2hnLCBYY2hnLAotICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYiB0MEdQUiwgbWVtLCB0
MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIp
IGF0b21pY3hjaGdoIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIs
IG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2kgdDBHUFIsIG1lbSwgdDBHUFIg
ZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9t
aWN4Y2hncSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQpCi1lbHNlCi0gICAgd2FzbUF0b21pY0JpbmFy
eVJNV09wc1dpdGhXZWFrQ0FTKF9hZGQsIEFkZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BS
LCB0MkdQUikKLSAgICAgICAgICAgIGFkZGkgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBl
bmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBhZGRx
IHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlS
TVdPcHNXaXRoV2Vha0NBUyhfc3ViLCBTdWIsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwg
dDJHUFIpCi0gICAgICAgICAgICBzdWJpIHQxR1BSLCB0MEdQUiwgdDJHUFIKLSAgICAgICAgZW5k
LAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgc3VicSB0
MUdQUiwgdDBHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1X
T3BzV2l0aFdlYWtDQVMoX3hjaGcsIFhjaGcsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwg
dDJHUFIpCi0gICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAg
ICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBtb3ZlIHQwR1BSLCB0
MkdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FT
KF9hbmQsIEFuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAg
ICAgIGFuZGkgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3Jv
KHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBhbmRxIHQwR1BSLCB0MUdQUiwgdDJH
UFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhf
b3IsIE9yLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAg
b3JpIHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQ
UiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgb3JxIHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAg
ICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeG9yLCBY
b3IsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICB4b3Jp
IHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwg
dDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgeG9ycSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAg
ICAgIGVuZCkKLWVuZAotCi1tYWNybyB3YXNtQXRvbWljQ29tcGFyZUV4Y2hhbmdlT3BzKGxvd2Vy
Q2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIsIGZuaCwgZm5pLCBmbnEpCi0gICAgd2Fz
bU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4
JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9p
bnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9h
ZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIp
Ci0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KGN0eCwgdDMs
IHQxLCAxKQotICAgICAgICBmbmIodDAsIHQyLCBbdDNdLCB0NSwgdDEpCi0gICAgICAgIGFuZHEg
MHhmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0Ci0gICAgICAgIGFzc2VydChtYWNybyhv
aykgYnFiZXEgdDAsIDB4ZmYsIC5vayBlbmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAg
ICBlbmQpCi0gICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MTYlbG93ZXJDYXNlT3Bjb2RlJV91LCBX
YXNtSTY0QXRvbWljUm13MTYldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAg
bWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwg
dDEpCi0gICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQotICAgICAgICBtbG9hZHEo
Y3R4LCBtX3ZhbHVlLCB0MikKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRp
bmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDIpCi0gICAgICAgIGZuaCh0
MCwgdDIsIFt0M10sIHQ1LCB0MSkKLSAgICAgICAgYW5kcSAweGZmZmYsIHQwICMgRklYTUU6IFpl
cm9FeHRlbmQxNlRvNjQKLSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZmZm
LCAub2sgZW5kKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdhc21P
cChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzMy
JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9p
bnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9h
ZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIp
Ci0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdu
bWVudENoZWNrKGN0eCwgdDMsIHQxLCA0KQotICAgICAgICBmbmkodDAsIHQyLCBbdDNdLCB0NSwg
dDEpCi0gICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmZmZmZmZmYsIC5vayBl
bmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi0gICAgd2FzbU9wKGk2NF9h
dG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21JNjRBdG9taWNSbXcldXBwZXJDYXNlT3Bj
b2RlJSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQotICAg
ICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBl
Y3RlZCwgdDApCi0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQotICAgICAgICBlbWl0
Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgs
IHQzLCB0MSwgOCkKLSAgICAgICAgZm5xKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQotICAgICAgICBy
ZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQotZW5kCi0KLSMgdDBHUFIgPT4gZXhwZWN0ZWQsIHQy
R1BSID0+IHZhbHVlLCBtZW0gPT4gbWVtb3J5IHJlZmVyZW5jZQotd2FzbUF0b21pY0NvbXBhcmVF
eGNoYW5nZU9wcyhfY21weGNoZywgQ21weGNoZywKLSAgICBtYWNybyh0MEdQUiwgdDJHUFIsIG1l
bSwgdDVHUFIsIHQxR1BSKQotICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRFCi0gICAgICAgICAg
ICBicWEgdDBHUFIgLCAweGZmLCAuZmFpbAotICAgICAgICAgICAgYXRvbWljd2Vha2Nhc2IgdDBH
UFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgIGptcCAuZG9uZQotICAgICAgICAuZmFpbDoKLSAg
ICAgICAgICAgIGF0b21pY2xvYWRiIG1lbSwgdDBHUFIKLSAgICAgICAgLmRvbmU6Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICBsb2FkbGlua2FjcWIgbWVtLCB0MUdQ
UgotICAgICAgICAgICAgYnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAotICAgICAgICAgICAgc3Rv
cmVjb25kcmVsYiB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwg
LmRvbmUKLSAgICAgICAgICAgIGptcCAubG9vcAotICAgICAgICAuZmFpbDoKLSAgICAgICAgICAg
IHN0b3JlY29uZHJlbGIgdDVHUFIsIHQxR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIs
IDAsIC5kb25lCi0gICAgICAgICAgICBqbXAgLmxvb3AKLSAgICAgICAgLmRvbmU6Ci0gICAgICAg
ICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAgICAgICBlbmQKLSAgICBlbmQsCi0gICAgbWFjcm8o
dDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgaWYgWDg2XzY0IG9yIEFS
TTY0RQotICAgICAgICAgICAgYnFhIHQwR1BSLCAweGZmZmYsIC5mYWlsCi0gICAgICAgICAgICBh
dG9taWN3ZWFrY2FzaCB0MEdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgam1wIC5kb25lCi0g
ICAgICAgIC5mYWlsOgotICAgICAgICAgICAgYXRvbWljbG9hZGggbWVtLCB0MEdQUgotICAgICAg
ICAuZG9uZToKLSAgICAgICAgZWxzZQotICAgICAgICAubG9vcDoKLSAgICAgICAgICAgIGxvYWRs
aW5rYWNxaCBtZW0sIHQxR1BSCi0gICAgICAgICAgICBicW5lcSB0MEdQUiwgdDFHUFIsIC5mYWls
Ci0gICAgICAgICAgICBzdG9yZWNvbmRyZWxoIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAg
ICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAgICAgIC5m
YWlsOgotICAgICAgICAgICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDFHUFIsIG1lbQotICAgICAg
ICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGptcCAubG9vcAotICAgICAg
ICAuZG9uZToKLSAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0gICAgICAgIGVuZAotICAg
IGVuZCwKLSAgICBtYWNybyh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BSKQotICAgICAg
ICBpZiBYODZfNjQgb3IgQVJNNjRFCi0gICAgICAgICAgICBicWEgdDBHUFIsIDB4ZmZmZmZmZmYs
IC5mYWlsCi0gICAgICAgICAgICBhdG9taWN3ZWFrY2FzaSB0MEdQUiwgdDJHUFIsIG1lbQotICAg
ICAgICAgICAgam1wIC5kb25lCi0gICAgICAgIC5mYWlsOgotICAgICAgICAgICAgYXRvbWljbG9h
ZGkgbWVtLCB0MEdQUgotICAgICAgICAuZG9uZToKLSAgICAgICAgZWxzZQotICAgICAgICAubG9v
cDoKLSAgICAgICAgICAgIGxvYWRsaW5rYWNxaSBtZW0sIHQxR1BSCi0gICAgICAgICAgICBicW5l
cSB0MEdQUiwgdDFHUFIsIC5mYWlsCi0gICAgICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0
MkdQUiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAg
am1wIC5sb29wCi0gICAgICAgIC5mYWlsOgotICAgICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQ
UiwgdDFHUFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAg
ICAgIGptcCAubG9vcAotICAgICAgICAuZG9uZToKLSAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQw
R1BSCi0gICAgICAgIGVuZAotICAgIGVuZCwKLSAgICBtYWNybyh0MEdQUiwgdDJHUFIsIG1lbSwg
dDVHUFIsIHQxR1BSKQotICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRFCi0gICAgICAgICAgICBh
dG9taWN3ZWFrY2FzcSB0MEdQUiwgdDJHUFIsIG1lbQotICAgICAgICBlbHNlCi0gICAgICAgIC5s
b29wOgotICAgICAgICAgICAgbG9hZGxpbmthY3FxIG1lbSwgdDFHUFIKLSAgICAgICAgICAgIGJx
bmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbHEgdDVHUFIs
IHQyR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAg
ICBqbXAgLmxvb3AKLSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAgICBzdG9yZWNvbmRyZWxxIHQ1
R1BSLCB0MUdQUiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAg
ICAgICAgam1wIC5sb29wCi0gICAgICAgIC5kb25lOgotICAgICAgICAgICAgbW92ZSB0MUdQUiwg
dDBHUFIKLSAgICAgICAgZW5kCi0gICAgZW5kKQotCiB3YXNtT3AoYXRvbWljX2ZlbmNlLCBXYXNt
RHJvcEtlZXAsIG1hY3JvKGN0eCkKICAgICBmZW5jZQogICAgIGRpc3BhdGNoKGN0eCkKQEAgLTI4
NDUsOSArMTc3NSwxNCBAQCBtYWNybyBjb21tb25DYXRjaEltcGwoY3R4LCBzdG9yZVdhc21JbnN0
YW5jZSkKICAgICBjb252ZXJ0Q2FsbGVlVG9WTSh0MykKICAgICByZXN0b3JlQ2FsbGVlU2F2ZXNG
cm9tVk1FbnRyeUZyYW1lQ2FsbGVlU2F2ZXNCdWZmZXIodDMsIHQwKQogCi0gICAgbG9hZHAgVk06
OmNhbGxlZUZvcldhc21DYXRjaFt0M10sIHdzMQotICAgIHN0b3JlcCAwLCBWTTo6Y2FsbGVlRm9y
V2FzbUNhdGNoW3QzXQotICAgIHN0b3JlcCB3czEsIENhbGxlZVtjZnJdCisgICAgbG9hZHAgVk06
OmNhbGxlZUZvcldhc21DYXRjaCArIFBheWxvYWRPZmZzZXRbdDNdLCB3czEKKyAgICBzdG9yZXAg
MCwgVk06OmNhbGxlZUZvcldhc21DYXRjaCArIFBheWxvYWRPZmZzZXRbdDNdCisgICAgc3RvcmVw
IHdzMSwgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdCitpZiBub3QgSlNWQUxVRTY0CisgICAg
bG9hZGkgVk06OmNhbGxlZUZvcldhc21DYXRjaCArIFRhZ09mZnNldFt0M10sIHdzMQorICAgIHN0
b3JlaSBFbXB0eVZhbHVlVGFnLCBWTTo6Y2FsbGVlRm9yV2FzbUNhdGNoICsgVGFnT2Zmc2V0W3Qz
XQorICAgIHN0b3JlaSB3czEsIENhbGxlZSArIFRhZ09mZnNldFtjZnJdCitlbmQKIAogICAgIGxv
YWRwIFZNOjpjYWxsRnJhbWVGb3JDYXRjaFt0M10sIGNmcgogICAgIHN0b3JlcCAwLCBWTTo6Y2Fs
bEZyYW1lRm9yQ2F0Y2hbdDNdCkBAIC0yODg2LDggKzE4MjEsMTMgQEAgbWFjcm8gY2F0Y2hJbXBs
KGN0eCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAKIC5jb3B5TG9vcDoKICAgICBidGl6IHQzLCAuZG9u
ZQoraWYgSlNWQUxVRTY0CiAgICAgbG9hZHEgW3QxXSwgdDYKICAgICBzdG9yZXEgdDYsIFt0Ml0K
K2Vsc2UKKyAgICBsb2FkMmlhIFt0MV0sIHQ1LCB0NgorICAgIHN0b3JlMmlhIHQ1LCB0NiwgW3Qy
XQorZW5kCiAgICAgc3ViaSAxLCB0MwogICAgICMgRklYTUU6IFVzZSBhcm0gc3RvcmUtYWRkL3N1
YiBpbnN0cnVjdGlvbnMgaW4gd2FzbSBMTEludCBjYXRjaAogICAgICMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTIxMApAQCAtMjkxNSwzICsxODU1LDEwIEBAIGVu
ZCkKIGNvbW1vbldhc21PcCh3YXNtX2NhdGNoX2FsbF9ub190bHMsIFdhc21DYXRjaEFsbCwgbWFj
cm8oKSBlbmQsIG1hY3JvKGN0eCkKICAgICBjYXRjaEFsbEltcGwoY3R4LCBtYWNybyhpbnN0YW5j
ZSkgZW5kKQogZW5kKQorCisjIFZhbHVlLXJlcHJlc2VudGF0aW9uLXNwZWNpZmljIGNvZGUuCitp
ZiBKU1ZBTFVFNjQKKyAgICBpbmNsdWRlIFdlYkFzc2VtYmx5NjQKK2Vsc2UKKyAgICBpbmNsdWRl
IFdlYkFzc2VtYmx5MzJfNjQKK2VuZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L1dlYkFzc2VtYmx5MzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L1dlYkFzc2VtYmx5MzJfNjQuYXNtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMC4uMTU4MzA0ZTlmYTExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L1dlYkFzc2VtYmx5MzJfNjQuYXNtCkBAIC0wLDAgKzEsMTEyOSBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMTEtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENv
cHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisj
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBDb25zdGFudHMKKworY29uc3Qg
TXN3T2Zmc2V0ID0gNAorY29uc3QgTHN3T2Zmc2V0ID0gMAorCisjIE9wY29kZXMgdGhhdCBzaG91
bGQgZXZlbnR1YWxseSBiZSBzaGFyZWQgd2l0aCBKUyBsbGludAorCit3YXNtT3AobW92LCBXYXNt
TW92LCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fc3JjLCB0MSwgdDApCisgICAgcmV0
dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKKyMgV2FzbSBzcGVjaWZpYyBieXRlY29kZXMKKwor
bWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQocG9pbnRlciwgb2Zm
c2V0LCBzaXplKQorICAgICMgVGhpcyBtYWNybyB1cGRhdGVzICdwb2ludGVyJyB0byB0YXJnZXQg
YWRkcmVzcywgYW5kIG1heSB0aHJhc2ggJ29mZnNldCcKK2lmIEFSTXY3CisgICAgIyBOb3QgZW5v
dWdoIHJlZ2lzdGVycyBvbiBhcm0gdG8ga2VlcCB0aGUgbWVtb3J5IGJhc2UgYW5kIHNpemUgaW4g
cGlubmVkCisgICAgIyByZWdpc3RlcnMsIHNvIGxvYWQgdGhlbSBvbiBlYWNoIGFjY2VzcyBpbnN0
ZWFkLiBGSVhNRTogaW1wcm92ZSB0aGlzLgorICAgIGFkZHBzIG9mZnNldCwgcG9pbnRlcgorICAg
IGJjcyAudGhyb3cKKyAgICBhZGRwcyBzaXplIC0gMSwgcG9pbnRlciwgb2Zmc2V0ICMgVXNlIG9m
ZnNldCBhcyBzY3JhdGNoIHJlZ2lzdGVyCisgICAgYmNzIC50aHJvdworICAgIGJwYiBvZmZzZXQs
IFdhc206Okluc3RhbmNlOjptX2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZVt3YXNtSW5zdGFuY2Vd
LCAuY29udGludWF0aW9uCisudGhyb3c6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNN
ZW1vcnlBY2Nlc3MpCisuY29udGludWF0aW9uOgorICAgIGFkZHAgV2FzbTo6SW5zdGFuY2U6Om1f
Y2FjaGVkTWVtb3J5W3dhc21JbnN0YW5jZV0sIHBvaW50ZXIKK2Vsc2UKKyAgICBjcmFzaCgpCitl
bmQKK2VuZAorCittYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdp
dGhBbGlnbm1lbnRDaGVjayhwb2ludGVyLCBvZmZzZXQsIHNpemUpCisgICAgIyBUaGlzIG1hY3Jv
IHVwZGF0ZXMgJ3BvaW50ZXInIHRvIHRhcmdldCBhZGRyZXNzLCBhbmQgbWF5IHRocmFzaCAnb2Zm
c2V0JworaWYgQVJNdjcKKyAgICAjIE5vdCBlbm91Z2ggcmVnaXN0ZXJzIG9uIGFybSB0byBrZWVw
IHRoZSBtZW1vcnkgYmFzZSBhbmQgc2l6ZSBpbiBwaW5uZWQKKyAgICAjIHJlZ2lzdGVycywgc28g
bG9hZCB0aGVtIG9uIGVhY2ggYWNjZXNzIGluc3RlYWQuIEZJWE1FOiBpbXByb3ZlIHRoaXMuCisg
ICAgYWRkcHMgb2Zmc2V0LCBwb2ludGVyCisgICAgYmNzIC50aHJvdworICAgIGFkZHBzIHNpemUg
LSAxLCBwb2ludGVyLCBvZmZzZXQgIyBVc2Ugb2Zmc2V0IGFzIHNjcmF0Y2ggcmVnaXN0ZXIKKyAg
ICBiY3MgLnRocm93CisgICAgYnBiIG9mZnNldCwgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkQm91
bmRzQ2hlY2tpbmdTaXplW3dhc21JbnN0YW5jZV0sIC5jb250aW51YXRpb24KKy50aHJvdzoKKyAg
ICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKKy5jb250aW51YXRpb246
CisgICAgYWRkcCBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRNZW1vcnlbd2FzbUluc3RhbmNlXSwg
cG9pbnRlcgorICAgIGJ0cG56IHBvaW50ZXIsIChzaXplIC0gMSksIC50aHJvdworZWxzZQorICAg
IGNyYXNoKCkKK2VuZAorZW5kCisKK21hY3JvIHdhc21Mb2FkT3AobmFtZSwgc3RydWN0LCBzaXpl
LCBmbikKKyAgICB3YXNtT3AobmFtZSwgc3RydWN0LCBtYWNybyhjdHgpCisgICAgICAgIG1sb2Fk
aShjdHgsIG1fcG9pbnRlciwgdDApCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQor
ICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldCh0MCwgdDEsIHNp
emUpCisgICAgICAgIGZuKHQwLCB0MywgdDIpCisgICAgICAgIHJldHVybjJpKGN0eCwgdDMsIHQy
KQorICAgIGVuZCkKK2VuZAorCit3YXNtTG9hZE9wKGxvYWQ4X3UsIFdhc21Mb2FkOFUsIDEsIG1h
Y3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRiIExzd09mZnNldFthZGRyXSwgZHN0
THN3CisgICAgbW92ZSAwLCBkc3RNc3cKK2VuZCkKK3dhc21Mb2FkT3AobG9hZDE2X3UsIFdhc21M
b2FkMTZVLCAyLCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkaCBMc3dPZmZz
ZXRbYWRkcl0sIGRzdExzdworICAgIG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGxv
YWQzMl91LCBXYXNtTG9hZDMyVSwgNCwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAg
bG9hZGkgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdworZW5kKQor
d2FzbUxvYWRPcChsb2FkNjRfdSwgV2FzbUxvYWQ2NFUsIDgsIG1hY3JvKGFkZHIsIGRzdE1zdywg
ZHN0THN3KQorICAgICMgTWlnaHQgYmUgdW5hbGlnbmVkLCBzbyBjYW4ndCB1c2UgbG9hZDJpYQor
ICAgIGxvYWRpIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAgbG9hZGkgTXN3T2Zmc2V0W2Fk
ZHJdLCBkc3RNc3cKK2VuZCkKKword2FzbUxvYWRPcChpMzJfbG9hZDhfcywgV2FzbUkzMkxvYWQ4
UywgMSwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGJzaSBMc3dPZmZzZXRb
YWRkcl0sIGRzdExzdworICAgIG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGkzMl9s
b2FkMTZfcywgV2FzbUkzMkxvYWQxNlMsIDIsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQor
ICAgIGxvYWRoc2kgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdwor
ZW5kKQord2FzbUxvYWRPcChpNjRfbG9hZDhfcywgV2FzbUk2NExvYWQ4UywgMSwgbWFjcm8oYWRk
ciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGJzaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdwor
ICAgIHJzaGlmdGkgZHN0THN3LCAzMSwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGk2NF9sb2Fk
MTZfcywgV2FzbUk2NExvYWQxNlMsIDIsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAg
IGxvYWRoc2kgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICByc2hpZnRpIGRzdExzdywgMzEs
IGRzdE1zdworZW5kKQord2FzbUxvYWRPcChpNjRfbG9hZDMyX3MsIFdhc21JNjRMb2FkMzJTLCA0
LCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkaSBMc3dPZmZzZXRbYWRkcl0s
IGRzdExzdworICAgIHJzaGlmdGkgZHN0THN3LCAzMSwgZHN0TXN3CitlbmQpCisKK21hY3JvIHdh
c21TdG9yZU9wKG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4pCisgICAgd2FzbU9wKG5hbWUsIHN0cnVj
dCwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQorICAgICAg
ICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBv
aW50ZXJBZGRpbmdPZmZzZXQodDAsIHQxLCBzaXplKQorICAgICAgICBtbG9hZDJpKGN0eCwgbV92
YWx1ZSwgdDMsIHQyKQorICAgICAgICBmbih0MywgdDIsIHQwKQorICAgICAgICBkaXNwYXRjaChj
dHgpCisgICAgZW5kKQorZW5kCisKK3dhc21TdG9yZU9wKHN0b3JlOCwgV2FzbVN0b3JlOCwgMSwg
bWFjcm8oc3JjTXN3LCBzcmNMc3csIGFkZHIpCisgICAgc3RvcmViIHNyY0xzdywgTHN3T2Zmc2V0
W2FkZHJdCitlbmQpCit3YXNtU3RvcmVPcChzdG9yZTE2LCBXYXNtU3RvcmUxNiwgMiwgbWFjcm8o
c3JjTXN3LCBzcmNMc3csIGFkZHIpCisgICAgc3RvcmVoIHNyY0xzdywgTHN3T2Zmc2V0W2FkZHJd
CitlbmQpCit3YXNtU3RvcmVPcChzdG9yZTMyLCBXYXNtU3RvcmUzMiwgNCwgbWFjcm8oc3JjTXN3
LCBzcmNMc3csIGFkZHIpCisgICAgc3RvcmVpIHNyY0xzdywgTHN3T2Zmc2V0W2FkZHJdCitlbmQp
Cit3YXNtU3RvcmVPcChzdG9yZTY0LCBXYXNtU3RvcmU2NCwgOCwgbWFjcm8oc3JjTXN3LCBzcmNM
c3csIGFkZHIpCisgICAgIyBNaWdodCBiZSB1bmFsaWduZWQsIHNvIGNhbid0IHVzZSBzdG9yZTJp
YQorICAgIHN0b3JlaSBzcmNMc3csIExzd09mZnNldFthZGRyXQorICAgIHN0b3JlaSBzcmNNc3cs
IE1zd09mZnNldFthZGRyXQorZW5kKQorCit3YXNtT3AocmVmX2lzX251bGwsIFdhc21SZWZJc051
bGwsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yZWYsIHQxLCB0MCkgIyB0MCBpcyB1
bnVzZWQKKyAgICBjaWVxIHQxLCBOdWxsVGFnLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2Vu
ZCkKKword2FzbU9wKGdldF9nbG9iYWwsIFdhc21HZXRHbG9iYWwsIG1hY3JvKGN0eCkKKyAgICBs
b2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dl
dHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBsb2FkMmlhIFt0MCwgdDEsIDhdLCB0MCwg
dDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKHNldF9nbG9iYWws
IFdhc21TZXRHbG9iYWwsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9n
bG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0
MSkKKyAgICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwgdDMsIHQyKQorICAgIHN0b3JlMmlhIHQyLCB0
MywgW3QwLCB0MSwgOF0KKyAgICBkaXNwYXRjaChjdHgpCitlbmQpCisKK3dhc21PcChnZXRfZ2xv
YmFsX3BvcnRhYmxlX2JpbmRpbmcsIFdhc21HZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcsIG1hY3Jv
KGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0s
IHQwCisgICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBsb2FkcCBbdDAsIHQx
LCA4XSwgdDAKKyAgICBsb2FkMmlhIFt0MF0sIHQwLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEs
IHQwKQorZW5kKQorCit3YXNtT3Aoc2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNtU2V0
R2xvYmFsUG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFu
Y2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJ
bmRleCwgdDEpCisgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQzLCB0MikKKyAgICBsb2FkcCBb
dDAsIHQxLCA4XSwgdDAKKyAgICBzdG9yZTJpYSB0MiwgdDMsIFt0MF0KKyAgICBkaXNwYXRjaChj
dHgpCitlbmQpCisKKyMgT3Bjb2RlcyB0aGF0IGRvbid0IGhhdmUgdGhlIGBiM29wYCBlbnRyeSBp
biB3YXNtLmpzb24uIFRoaXMgc2hvdWxkIGJlIGtlcHQgaW4gc3luYworCittYWNybyBjYWxsRGl2
UmVtKGZuKQoraWYgQVJNdjcKKyAgICBzdWJwIFN0YWNrQWxpZ25tZW50LCBzcAorICAgIHN0b3Jl
cCBQQywgW3NwXQorICAgIGNDYWxsNChmbikKKyAgICBsb2FkcCBbc3BdLCBQQworICAgIGFkZHAg
U3RhY2tBbGlnbm1lbnQsIHNwCitlbHNlCisgICAgZXJyb3IKK2VuZAorZW5kCisKKyMgaTMyIGJp
bmFyeSBvcHMKKword2FzbU9wKGkzMl9kaXZfcywgV2FzbUkzMkRpdlMsIG1hY3JvIChjdHgpCisg
ICAgbWxvYWRpKGN0eCwgbV9saHMsIGEwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCBhMSkKKwor
ICAgIGJ0aXogYTEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBiaW5lcSBhMSwgLTEsIC5z
YWZlCisgICAgYmllcSBhMCwgY29uc3RleHByIElOVDMyX01JTiwgLnRocm93SW50ZWdlck92ZXJm
bG93CisKKy5zYWZlOgorICAgIGNhbGxEaXZSZW0oX3Nsb3dfcGF0aF93YXNtX2kzMl9kaXZfcykK
KyAgICByZXR1cm5pKGN0eCwgcjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93
RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorCisudGhyb3dJbnRlZ2VyT3ZlcmZsb3c6CisgICAg
dGhyb3dFeGNlcHRpb24oSW50ZWdlck92ZXJmbG93KQorZW5kKQorCit3YXNtT3AoaTMyX2Rpdl91
LCBXYXNtSTMyRGl2VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgYTApCisg
ICAgbWxvYWRpKGN0eCwgbV9yaHMsIGExKQorCisgICAgYnRpeiBhMSwgLnRocm93RGl2aXNpb25C
eVplcm8KKworICAgIGNhbGxEaXZSZW0oX3Nsb3dfcGF0aF93YXNtX2kzMl9kaXZfdSkKKyAgICBy
ZXR1cm5pKGN0eCwgcjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0
aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTMyX3JlbV9zLCBXYXNtSTMyUmVt
UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgYTApCisgICAgbWxvYWRpKGN0
eCwgbV9yaHMsIGExKQorCisgICAgYnRpeiBhMSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAg
IGJpbmVxIGExLCAtMSwgLnNhZmUKKyAgICBiaW5lcSBhMCwgY29uc3RleHByIElOVDMyX01JTiwg
LnNhZmUKKworICAgIG1vdmUgMCwgcjAKKyAgICBqbXAgLnJldHVybgorCisuc2FmZToKKyAgICBj
YWxsRGl2UmVtKF9zbG93X3BhdGhfd2FzbV9pMzJfcmVtX3MpCisKKy5yZXR1cm46CisgICAgcmV0
dXJuaShjdHgsIHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlv
bihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGkzMl9yZW1fdSwgV2FzbUkzMlJlbVUs
IG1hY3JvIChjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9saHMsIGEwKQorICAgIG1sb2FkaShjdHgs
IG1fcmhzLCBhMSkKKworICAgIGJ0aXogYTEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBj
YWxsRGl2UmVtKF9zbG93X3BhdGhfd2FzbV9pMzJfcmVtX3UpCisgICAgcmV0dXJuaShjdHgsIHIw
KQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5
WmVybykKK2VuZCkKKworIyBpNjQgYmluYXJ5IG9wcworCit3YXNtT3AoaTY0X2FkZCwgV2FzbUk2
NEFkZCwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1s
b2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIGFkZGlzIHQyLCB0MAorICAgIGFkY2kgIHQz
LCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3N1Yiwg
V2FzbUk2NFN1YiwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQor
ICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIHN1YmlzIHQyLCB0MAorICAgIHNi
Y2kgIHQzLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0
X211bCwgV2FzbUk2NE11bCwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEs
IHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG11bGkgdDIsIHQxCisg
ICAgbXVsaSB0MCwgdDMKKyAgICB1bXVsbGkgdDAsIHQyLCB0MCwgdDIKKyAgICBhZGRpIHQxLCB0
MgorICAgIGFkZGkgdDMsIHQyCisgICAgcmV0dXJuMmkoY3R4LCB0MiwgdDApCitlbmQpCisKK3dh
c21PcChpNjRfZGl2X3MsIFdhc21JNjREaXZTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkMmkoY3R4
LCBtX2xocywgYTEsIGEwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgYTMsIGEyKQorCisgICAg
YnRpbnogYTMsIC5ub25aZXJvRGl2aXNvcgorICAgIGJ0aXogYTIsIC50aHJvd0RpdmlzaW9uQnla
ZXJvCisKKy5ub25aZXJvRGl2aXNvcjoKKyAgICBiaW5lcSBhMywgLTEsIC5zYWZlCisgICAgYmlu
ZXEgYTIsIC0xLCAuc2FmZQorICAgIGJpbmVxIGExLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAuc2Fm
ZQorICAgIGJ0aXogYTAsIC50aHJvd0ludGVnZXJPdmVyZmxvdworCisuc2FmZToKKyAgICBjYWxs
RGl2UmVtKF9zbG93X3BhdGhfd2FzbV9pNjRfZGl2X3MpCisgICAgcmV0dXJuMmkoY3R4LCByMSwg
cjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9u
QnlaZXJvKQorCisudGhyb3dJbnRlZ2VyT3ZlcmZsb3c6CisgICAgdGhyb3dFeGNlcHRpb24oSW50
ZWdlck92ZXJmbG93KQorZW5kKQorCit3YXNtT3AoaTY0X2Rpdl91LCBXYXNtSTY0RGl2VSwgbWFj
cm8gKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIGExLCBhMCkKKyAgICBtbG9hZDJpKGN0
eCwgbV9yaHMsIGEzLCBhMikKKworICAgIGJ0aW56IGEzLCAubm9uWmVyb0Rpdmlzb3IKKyAgICBi
dGl6IGEyLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisubm9uWmVyb0Rpdmlzb3I6CisgICAgY2Fs
bERpdlJlbShfc2xvd19wYXRoX3dhc21faTY0X2Rpdl91KQorICAgIHJldHVybjJpKGN0eCwgcjEs
IHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lv
bkJ5WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9yZW1fcywgV2FzbUk2NFJlbVMsIG1hY3JvIChj
dHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCBhMSwgYTApCisgICAgbWxvYWQyaShjdHgsIG1f
cmhzLCBhMywgYTIpCisKKyAgICBidGlueiBhMywgLm5vblplcm9EaXZpc29yCisgICAgYnRpeiBh
MiwgLnRocm93RGl2aXNpb25CeVplcm8KKworLm5vblplcm9EaXZpc29yOgorICAgIGJpbmVxIGEz
LCAtMSwgLnNhZmUKKyAgICBiaW5lcSBhMiwgLTEsIC5zYWZlCisgICAgYmluZXEgYTEsIGNvbnN0
ZXhwciBJTlQzMl9NSU4sIC5zYWZlCisgICAgYnRpbnogYTAsIC5zYWZlCisKKyAgICBtb3ZlIDAs
IHIxCisgICAgbW92ZSAwLCByMAorICAgIGptcCAucmV0dXJuCisKKy5zYWZlOgorICAgIGNhbGxE
aXZSZW0oX3Nsb3dfcGF0aF93YXNtX2k2NF9yZW1fcykKKworLnJldHVybjoKKyAgICByZXR1cm4y
aShjdHgsIHIxLCByMCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRp
b24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpNjRfcmVtX3UsIFdhc21JNjRSZW1V
LCBtYWNybyAoY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgYTEsIGEwKQorICAgIG1sb2Fk
MmkoY3R4LCBtX3JocywgYTMsIGEyKQorCisgICAgYnRpbnogYTMsIC5ub25aZXJvRGl2aXNvcgor
ICAgIGJ0aXogYTIsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKy5ub25aZXJvRGl2aXNvcjoKKyAg
ICBjYWxsRGl2UmVtKF9zbG93X3BhdGhfd2FzbV9pNjRfcmVtX3UpCisgICAgcmV0dXJuMmkoY3R4
LCByMSwgcjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERp
dmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTY0X2FuZCwgV2FzbUk2NEFuZCwgbWFjcm8o
Y3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBt
X3JocywgdDMsIHQyKQorICAgIGFuZGkgdDIsIHQwCisgICAgYW5kaSB0MywgdDEKKyAgICByZXR1
cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9vciwgV2FzbUk2NE9yLCBtYWNy
byhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgs
IG1fcmhzLCB0MywgdDIpCisgICAgb3JpIHQyLCB0MAorICAgIG9yaSB0MywgdDEKKyAgICByZXR1
cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF94b3IsIFdhc21JNjRYb3IsIG1h
Y3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0
eCwgbV9yaHMsIHQzLCB0MikKKyAgICB4b3JpIHQyLCB0MAorICAgIHhvcmkgdDMsIHQxCisgICAg
cmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfc2hsLCBXYXNtSTY0U2hs
LCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWRp
KGN0eCwgbV9yaHMsIHQyKQorCisgICAgYW5kaSAweDNmLCB0MgorICAgIGJ0aXogdDIsIC5yZXR1
cm4KKyAgICBiaWIgdDIsIDMyLCAubGVzc1RoYW4zMgorCisgICAgc3ViaSAzMiwgdDIKKyAgICBs
c2hpZnRpIHQwLCB0MiwgdDEKKyAgICBtb3ZlIDAsIHQwCisgICAgam1wIC5yZXR1cm4KKworLmxl
c3NUaGFuMzI6CisgICAgbHNoaWZ0aSB0MiwgdDEKKyAgICBtb3ZlIDMyLCB0MworICAgIHN1Ymkg
dDIsIHQzCisgICAgdXJzaGlmdGkgdDAsIHQzLCB0MworICAgIG9yaSB0MywgdDEKKyAgICBsc2hp
ZnRpIHQyLCB0MAorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQor
Cit3YXNtT3AoaTY0X3Nocl91LCBXYXNtSTY0U2hyVSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmko
Y3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MikKKworICAgIGFu
ZGkgMHgzZiwgdDIKKyAgICBidGl6IHQyLCAucmV0dXJuCisgICAgYmliIHQyLCAzMiwgLmxlc3NU
aGFuMzIKKworICAgIHN1YmkgMzIsIHQyCisgICAgdXJzaGlmdGkgdDEsIHQyLCB0MAorICAgIG1v
dmUgMCwgdDEKKyAgICBqbXAgLnJldHVybgorCisubGVzc1RoYW4zMjoKKyAgICB1cnNoaWZ0aSB0
MiwgdDAKKyAgICBtb3ZlIDMyLCB0MworICAgIHN1YmkgdDIsIHQzCisgICAgbHNoaWZ0aSB0MSwg
dDMsIHQzCisgICAgb3JpIHQzLCB0MAorICAgIHVyc2hpZnRpIHQyLCB0MQorCisucmV0dXJuOgor
ICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3Nocl9zLCBXYXNt
STY0U2hyUywgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAg
IG1sb2FkaShjdHgsIG1fcmhzLCB0MikKKworICAgIGFuZGkgMHgzZiwgdDIKKyAgICBidGl6IHQy
LCAucmV0dXJuCisgICAgYmliIHQyLCAzMiwgLmxlc3NUaGFuMzIKKworICAgIHN1YmkgMzIsIHQy
CisgICAgcnNoaWZ0aSB0MSwgdDIsIHQwCisgICAgcnNoaWZ0aSAzMSwgdDEKKyAgICBqbXAgLnJl
dHVybgorCisubGVzc1RoYW4zMjoKKyAgICB1cnNoaWZ0aSB0MiwgdDAKKyAgICBtb3ZlIDMyLCB0
MworICAgIHN1YmkgdDIsIHQzCisgICAgbHNoaWZ0aSB0MSwgdDMsIHQzCisgICAgb3JpIHQzLCB0
MAorICAgIHJzaGlmdGkgdDIsIHQxCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCB0MSwg
dDApCitlbmQpCisKK3dhc21PcChpNjRfcm90ciwgV2FzbUk2NFJvdHIsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDIp
CisKKyAgICBhbmRpIHQyLCAweDIwLCB0MworICAgIGJ0aXogdDMsIC5ub1N3YXAKKworICAgIG1v
dmUgdDAsIHQzCisgICAgbW92ZSB0MSwgdDAKKyAgICBtb3ZlIHQzLCB0MQorCisubm9Td2FwOgor
ICAgIGFuZGkgMHgxZiwgdDIKKyAgICBidGl6IHQyLCAucmV0dXJuCisKKyAgICBtb3ZlIDMyLCB0
NQorICAgIHN1YmkgdDIsIHQ1CisgICAgbHNoaWZ0aSB0MCwgdDUsIHQzCisgICAgbHNoaWZ0aSB0
MSwgdDUsIHQ1CisgICAgdXJzaGlmdGkgdDIsIHQwCisgICAgdXJzaGlmdGkgdDIsIHQxCisgICAg
b3JpIHQ1LCB0MAorICAgIG9yaSB0MywgdDEKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgs
IHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9yb3RsLCBXYXNtSTY0Um90bCwgbWFjcm8oY3R4
KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhz
LCB0MikKKworICAgIGFuZGkgdDIsIDB4MjAsIHQzCisgICAgYnRpeiB0MywgLm5vU3dhcAorCisg
ICAgbW92ZSB0MCwgdDMKKyAgICBtb3ZlIHQxLCB0MAorICAgIG1vdmUgdDMsIHQxCisKKy5ub1N3
YXA6CisgICAgYW5kaSAweDFmLCB0MgorICAgIGJ0aXogdDIsIC5yZXR1cm4KKworICAgIG1vdmUg
MzIsIHQ1CisgICAgc3ViaSB0MiwgdDUKKyAgICB1cnNoaWZ0aSB0MCwgdDUsIHQzCisgICAgdXJz
aGlmdGkgdDEsIHQ1LCB0NQorICAgIGxzaGlmdGkgdDIsIHQwCisgICAgbHNoaWZ0aSB0MiwgdDEK
KyAgICBvcmkgdDUsIHQwCisgICAgb3JpIHQzLCB0MQorCisucmV0dXJuOgorICAgIHJldHVybjJp
KGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X2VxLCBXYXNtSTY0RXEsIG1hY3JvKGN0
eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9y
aHMsIHQzLCB0MikKKyAgICBtb3ZlIDAsIHQ2CisgICAgYmluZXEgdDEsIHQzLCAucmV0dXJuCisg
ICAgY2llcSB0MCwgdDIsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkK
Kword2FzbU9wKGk2NF9uZSwgV2FzbUk2NE5lLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgs
IG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92
ZSAxLCB0NgorICAgIGJpbmVxIHQxLCB0MywgLnJldHVybgorICAgIGNpbmVxIHQwLCB0MiwgdDYK
Ky5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2x0X3Ms
IFdhc21JNjRMdFMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkK
KyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmls
dCB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1
cm4KKyAgICBjaWIgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0
dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2xlX3MsIFdhc21JNjRMZVMsIG1hY3Jv
KGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwg
bV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlsdCB0MSwgdDMsIC5yZXR1cm4K
KyAgICBtb3ZlIDAsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWJlcSB0MCwg
dDIsIHQ2CisgICAgYW5kaSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitl
bmQpCisKK3dhc21PcChpNjRfbHRfdSwgV2FzbUk2NEx0VSwgbWFjcm8oY3R4KQorICAgIG1sb2Fk
MmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQor
ICAgIG1vdmUgMSwgdDYKKyAgICBiaWIgdDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0Ngor
ICAgIGJpYSB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWIgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwg
dDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2xl
X3UsIFdhc21JNjRMZVUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0
MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAg
YmliIHQxLCB0MywgLnJldHVybgorICAgIG1vdmUgMCwgdDYKKyAgICBiaWEgdDEsIHQzLCAucmV0
dXJuCisgICAgY2liZXEgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAg
cmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2d0X3MsIFdhc21JNjRHdFMsIG1h
Y3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0
eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1
cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAgYmlsdCB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWEgdDAs
IHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQor
ZW5kKQorCit3YXNtT3AoaTY0X2dlX3MsIFdhc21JNjRHZVMsIG1hY3JvKGN0eCkKKyAgICBtbG9h
ZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikK
KyAgICBtb3ZlIDEsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2
CisgICAgYmlsdCB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWFlcSB0MCwgdDIsIHQ2CisgICAgYW5k
aSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChp
NjRfZ3RfdSwgV2FzbUk2NEd0VSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywg
dDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYK
KyAgICBiaWEgdDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpYiB0MSwgdDMs
IC5yZXR1cm4KKyAgICBjaWEgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46Cisg
ICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2dlX3UsIFdhc21JNjRHZVUs
IG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJp
KGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDAsIHQ2CisgICAgYmliIHQxLCB0MywgLnJl
dHVybgorICAgIG1vdmUgMSwgdDYKKyAgICBiaWEgdDEsIHQzLCAucmV0dXJuCisgICAgY2lhZXEg
dDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2
KQorZW5kKQorCisjIGk2NCB1bmFyeSBvcHMKKword2FzbU9wKGk2NF9jdHosIFdhc21JNjRDdHos
IG1hY3JvIChjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fb3BlcmFuZCwgdDEsIHQwKQorICAgIGJ0
aXogdDAsIC50b3AKKworICAgIHR6Y250aSB0MCwgdDAKKyAgICBqbXAgLnJldHVybgorCisudG9w
OgorICAgIHR6Y250aSB0MSwgdDAKKyAgICBhZGRpIDMyLCB0MAorCisucmV0dXJuOgorICAgIHJl
dHVybjJpKGN0eCwgMCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfY2x6LCBXYXNtSTY0Q2x6LCBt
YWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fb3BlcmFuZCwgdDEsIHQwKQorICAgIGJ0aXog
dDEsIC5ib3R0b20KKworICAgIGx6Y250aSB0MSwgdDAKKyAgICBqbXAgLnJldHVybgorCisuYm90
dG9tOgorICAgIGx6Y250aSB0MCwgdDAKKyAgICBhZGRpIDMyLCB0MAorCisucmV0dXJuOgorICAg
IHJldHVybjJpKGN0eCwgMCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfcG9wY250LCBXYXNtSTY0
UG9wY250LCBtYWNybyAoY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIGEzLCBhMikK
KyAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCisgICAgbW92ZSBQQywgYTAKKyAgICBjQ2FsbDIo
X3Nsb3dfcGF0aF93YXNtX3BvcGNvdW50bGwpCisgICAgcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgp
CisgICAgcmV0dXJuMmkoY3R4LCAwLCByMSkKK2VuZCkKKword2FzbU9wKGk2NF9lcXosIFdhc21J
NjRFcXosIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9vcGVyYW5kLCB0MSwgdDApCisg
ICAgbW92ZSAwLCB0MgorICAgIGJ0aW56IHQxLCAucmV0dXJuCisgICAgY2llcSB0MCwgMCwgdDIK
Ky5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCisjIGY2NCBiaW5hcnkgb3Bz
CisKK3dhc21PcChmNjRfY29weXNpZ24sIFdhc21GNjRDb3B5c2lnbiwgbWFjcm8oY3R4KQorICAg
IG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMs
IHQyKSAjIHQyIHVudXNlZAorCisgICAgYW5kaSAweDdmZmZmZmZmLCB0MQorICAgIGFuZGkgMHg4
MDAwMDAwMCwgdDMKKyAgICBvcmkgdDMsIHQxCisKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkK
K2VuZCkKKworIyBUeXBlIGNvbnZlcnNpb24gb3BzCisKK3dhc21PcChpNjRfZXh0ZW5kX3NfaTMy
LCBXYXNtSTY0RXh0ZW5kU0kzMiwgbWFjcm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFu
ZCwgdDApCisgICAgcnNoaWZ0aSB0MCwgMzEsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDAp
CitlbmQpCisKK3dhc21PcChpNjRfZXh0ZW5kX3VfaTMyLCBXYXNtSTY0RXh0ZW5kVUkzMiwgbWFj
cm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgcmV0dXJuMmkoY3R4
LCAwLCB0MCkKK2VuZCkKKword2FzbU9wKGY2NF9yZWludGVycHJldF9pNjQsIFdhc21GNjRSZWlu
dGVycHJldEk2NCwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIHQxLCB0
MCkKKyAgICBmaWkyZCB0MCwgdDEsIGZ0MAorICAgIHJldHVybmQoY3R4LCBmdDApCitlbmQpCisK
K3dhc21PcChpNjRfcmVpbnRlcnByZXRfZjY0LCBXYXNtSTY0UmVpbnRlcnByZXRGNjQsIG1hY3Jv
KGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKyAgICBmZDJpaSBmdDAsIHQw
LCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5j
X3NfZjY0LCBXYXNtSTMyVHJ1bmNTRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1f
b3BlcmFuZCwgZnQwKQorCisgICAgbW92ZWlpIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDEsIHQwICMg
SU5UMzJfTUlOIC0gMS4wCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAs
IGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmVpaSAweDQxZTAwMDAwMDAwMDAwMDAs
IHQxLCB0MCAjIC1JTlQzMl9NSU4KKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkZ3RlcXVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVkMmlzIGZ0MCwgdDAK
KyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhj
ZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfdV9mNjQs
IFdhc21JMzJUcnVuY1VGNjQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5k
LCBmdDApCisKKyAgICBtb3ZlaWkgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MSwgdDAgIyAtMS4wCisg
ICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmMKKworICAgIG1vdmVpaSAweDQxZjAwMDAwMDAwMDAwMDAsIHQxLCB0MCAjIElOVDMyX01J
TiAqIC0yLjAKKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAu
b3V0T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAorICAgIHJldHVybmko
Y3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZC
b3VuZHNUcnVuYykKK2VuZCkKKworc2xvd1dhc21PcChpNjRfdHJ1bmNfc19mMzIpCitzbG93V2Fz
bU9wKGk2NF90cnVuY191X2YzMikKK3Nsb3dXYXNtT3AoaTY0X3RydW5jX3NfZjY0KQorc2xvd1dh
c21PcChpNjRfdHJ1bmNfdV9mNjQpCisKK3dhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNt
STMyVHJ1bmNTYXRGNjRTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwg
ZnQwKQorCisgICAgbW92ZWlpIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDEsIHQwICMgSU5UMzJfTUlO
IC0gMS4wCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91
dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTgorCisgICAgbW92ZWlpIDB4NDFlMDAwMDAwMDAwMDAw
MCwgdDEsIHQwICMgLUlOVDMyX01JTgorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRndGVx
dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQyaXMg
ZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5P
ck5hTjoKKyAgICBiZGVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorICAgIG1v
dmUgMCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4
OgorICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQzMl9NQVgpLCB0MAorICAgIHJldHVybmkoY3R4LCB0
MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAoY29uc3RleHByIElOVDMy
X01JTiksIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5j
X3NhdF9mNjRfdSwgV2FzbUkzMlRydW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQo
Y3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmVpaSAweGJmZjAwMDAwMDAwMDAwMDAsIHQx
LCB0MCAjIC0xLjAKKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQx
LCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorCisgICAgbW92ZWlpIDB4NDFmMDAwMDAwMDAwMDAw
MCwgdDEsIHQwICMgSU5UMzJfTUlOICogLTIuMAorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAg
YmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0
ZWQyaSBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1pbjoKKyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3Vu
ZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDMyX01BWCksIHQwCisgICAg
cmV0dXJuaShjdHgsIHQwKQorZW5kKQorCitzbG93V2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3Mp
CitzbG93V2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3UpCitzbG93V2FzbU9wKGk2NF90cnVuY19z
YXRfZjY0X3MpCitzbG93V2FzbU9wKGk2NF90cnVuY19zYXRfZjY0X3UpCisKKyMgRXh0ZW5kIG9w
cworCit3YXNtT3AoaTY0X2V4dGVuZDhfcywgV2FzbUk2NEV4dGVuZDhTLCBtYWNybyhjdHgpCisg
ICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBzeGIyaSB0MCwgdDAKKyAgICByc2hp
ZnRpIHQwLCAzMSwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9w
KGk2NF9leHRlbmQxNl9zLCBXYXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhjdHgpCisgICAgbWxvYWRp
KGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBzeGgyaSB0MCwgdDAKKyAgICByc2hpZnRpIHQwLCAz
MSwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9leHRl
bmQzMl9zLCBXYXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9v
cGVyYW5kLCB0MCkKKyAgICByc2hpZnRpIHQwLCAzMSwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQx
LCB0MCkKK2VuZCkKKworIyBBdG9taWNzCisKK21hY3JvIHdhc21BdG9taWNCaW5hcnlSTVdPcHMo
bG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmksIGZuMmkpCisg
ICAgd2FzbU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9t
aWNSbXc4JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgs
IG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAg
ICBtbG9hZGkoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBv
aW50ZXJBZGRpbmdPZmZzZXQodDMsIHQ1LCAxKQorICAgICAgICBmbmIodDAsIFt0M10sIHQyLCB0
NSwgdDYpCisgICAgICAgIGFuZGkgMHhmZiwgdDYgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0Cisg
ICAgICAgIGFzc2VydChtYWNybyhvaykgYmliZXEgdDYsIDB4ZmYsIC5vayBlbmQpCisgICAgICAg
IHJldHVybjJpKGN0eCwgMCwgdDYpCisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3Jt
dzE2JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzE2JXVwcGVyQ2FzZU9wY29k
ZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAg
ICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3ZhbHVl
LCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRo
QWxpZ25tZW50Q2hlY2sodDMsIHQ1LCAyKQorICAgICAgICBmbmgodDAsIFt0M10sIHQyLCB0NSwg
dDYpCisgICAgICAgIGFuZGkgMHhmZmZmLCB0NiAjIEZJWE1FOiBaZXJvRXh0ZW5kMTZUbzY0Cisg
ICAgICAgIGFzc2VydChtYWNybyhvaykgYmliZXEgdDYsIDB4ZmZmZiwgLm9rIGVuZCkKKyAgICAg
ICAgcmV0dXJuMmkoY3R4LCAwLCB0NikKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNf
cm13MzIlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MzIldXBwZXJDYXNlT3Bj
b2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAg
ICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkaShjdHgsIG1fdmFs
dWUsIHQwKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdp
dGhBbGlnbm1lbnRDaGVjayh0MywgdDUsIDQpCisgICAgICAgIGZuaSh0MCwgW3QzXSwgdDIsIHQ1
LCB0NikKKyAgICAgICAgcmV0dXJuMmkoY3R4LCAwLCB0NikKKyAgICBlbmQpCisgICAgd2FzbU9w
KGk2NF9hdG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21JNjRBdG9taWNSbXcldXBwZXJD
YXNlT3Bjb2RlJSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQz
KQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWQyaShjdHgs
IG1fdmFsdWUsIHQxLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRp
bmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2sodDMsIHQ1LCA4KQorICAgICAgICBwdXNoIHQ0ICMg
VGhpcyBpcyB0aGUgUEIsIHNvIG5lZWQgdG8gYmUgc2F2ZWQgYW5kIHJlc3RvcmVkCisgICAgICAg
IGZuMmkodDEsIHQwLCBbdDNdLCB0NCwgdDIsIHQ1LCB0NywgdDYpCisgICAgICAgIHBvcCB0NAor
ICAgICAgICByZXR1cm4yaShjdHgsIHQ3LCB0NikKKyAgICBlbmQpCitlbmQKKworbWFjcm8gd2Fz
bUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNl
T3Bjb2RlLCBmbmksIGZuMmkpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhsb3dlckNhc2VP
cGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0NkdQUikKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAgLmxvb3A6
CisgICAgICAgICAgICAgICAgbG9hZGxpbmtiIG1lbSwgdDZHUFIKKyAgICAgICAgICAgICAgICBm
bmkodDBHUFIsIHQ2R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmRiIHQ1R1BS
LCB0MkdQUiwgbWVtCisgICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAg
ICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQ2R1BSKQorICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgICAg
ICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2FkbGlua2ggbWVtLCB0NkdQUgorICAgICAgICAg
ICAgICAgIGZuaSh0MEdQUiwgdDZHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29u
ZGggdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxv
b3AKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQw
R1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDZHUFIpCisgICAgICAgICAgICAgICAgZmVuY2UKKyAg
ICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5raSBtZW0sIHQ2R1BSCisg
ICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0NkdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAg
c3RvcmVjb25kaSB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BS
LCAwLCAubG9vcAorICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgIGVuZCwKKyAgICAgICAg
bWFjcm8odDFHUFIsIHQwR1BSLCBtZW0sIHQ0R1BSLCB0MkdQUiwgdDVHUFIsIHQ3R1BSLCB0NkdQ
UikKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAg
ICAgICAgbG9hZGxpbmsyaSBtZW0sIHQ2R1BSLCB0N0dQUgorICAgICAgICAgICAgICAgIGZuMmko
dDFHUFIsIHQwR1BSLCB0N0dQUiwgdDZHUFIsIHQ0R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAg
ICBzdG9yZWNvbmQyaSB0NUdQUiwgdDJHUFIsIHQ0R1BSLCBtZW0KKyAgICAgICAgICAgICAgICBi
aW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAgICBlbmQp
CitlbmQKKworaWYgQVJNdjcKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMo
X2FkZCwgQWRkLAorICAgICAgICBtYWNybyhzcmMwLCBzcmMxLCBkc3QpCisgICAgICAgICAgICBh
ZGRpIHNyYzAsIHNyYzEsIGRzdAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHNyYzBNc3cs
IHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0THN3KQorICAgICAgICAgICAg
YWRkaXMgc3JjMExzdywgc3JjMUxzdywgZHN0THN3CisgICAgICAgICAgICBhZGNpICBzcmMwTXN3
LCBzcmMxTXN3LCBkc3RNc3cKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdP
cHNXaXRoV2Vha0NBUyhfc3ViLCBTdWIsCisgICAgICAgIG1hY3JvKHNyYzAsIHNyYzEsIGRzdCkK
KyAgICAgICAgICAgIHN1Ymkgc3JjMSwgc3JjMCwgZHN0CisgICAgICAgIGVuZCwKKyAgICAgICAg
bWFjcm8oc3JjME1zdywgc3JjMExzdywgc3JjMU1zdywgc3JjMUxzdywgZHN0TXN3LCBkc3RMc3cp
CisgICAgICAgICAgICBzdWJpcyBzcmMxTHN3LCBzcmMwTHN3LCBkc3RMc3cKKyAgICAgICAgICAg
IHNiY2kgIHNyYzFNc3csIHNyYzBNc3csIGRzdE1zdworICAgICAgICBlbmQpCisgICAgd2FzbUF0
b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94Y2hnLCBYY2hnLAorICAgICAgICBtYWNybyhz
cmMwLCBzcmMxLCBkc3QpCisgICAgICAgICAgICBtb3ZlIHNyYzAsIGRzdAorICAgICAgICBlbmQs
CisgICAgICAgIG1hY3JvKHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1z
dywgZHN0THN3KQorICAgICAgICAgICAgbW92ZSBzcmMwTHN3LCBkc3RMc3cKKyAgICAgICAgICAg
IG1vdmUgc3JjME1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5
Uk1XT3BzV2l0aFdlYWtDQVMoX2FuZCwgQW5kLAorICAgICAgICBtYWNybyhzcmMwLCBzcmMxLCBk
c3QpCisgICAgICAgICAgICBhbmRpIHNyYzAsIHNyYzEsIGRzdAorICAgICAgICBlbmQsCisgICAg
ICAgIG1hY3JvKHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0
THN3KQorICAgICAgICAgICAgYW5kaSBzcmMwTHN3LCBzcmMxTHN3LCBkc3RMc3cKKyAgICAgICAg
ICAgIGFuZGkgc3JjME1zdywgc3JjMU1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3YXNt
QXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX29yLCBPciwKKyAgICAgICAgbWFjcm8oc3Jj
MCwgc3JjMSwgZHN0KQorICAgICAgICAgICAgb3JpIHNyYzAsIHNyYzEsIGRzdAorICAgICAgICBl
bmQsCisgICAgICAgIG1hY3JvKHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRz
dE1zdywgZHN0THN3KQorICAgICAgICAgICAgb3JpIHNyYzBMc3csIHNyYzFMc3csIGRzdExzdwor
ICAgICAgICAgICAgb3JpIHNyYzBNc3csIHNyYzFNc3csIGRzdE1zdworICAgICAgICBlbmQpCisg
ICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwKKyAgICAgICAg
bWFjcm8oc3JjMCwgc3JjMSwgZHN0KQorICAgICAgICAgICAgeG9yaSBzcmMwLCBzcmMxLCBkc3QK
KyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3LCBzcmMxTXN3LCBz
cmMxTHN3LCBkc3RNc3csIGRzdExzdykKKyAgICAgICAgICAgIHhvcmkgc3JjMExzdywgc3JjMUxz
dywgZHN0THN3CisgICAgICAgICAgICB4b3JpIHNyYzBNc3csIHNyYzFNc3csIGRzdE1zdworICAg
ICAgICBlbmQpCitlbmQKKworbWFjcm8gd2FzbUF0b21pY0NvbXBhcmVFeGNoYW5nZU9wcyhsb3dl
ckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5iLCBmbmgsIGZuaSwgZm4yaSkKKyAgICB3
YXNtT3AoaTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1Jt
dzgldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9w
b2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1s
b2FkMmkoY3R4LCBtX2V4cGVjdGVkLCB0MSwgdDApCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX3Zh
bHVlLCB0NywgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zm
c2V0KHQzLCB0NSwgMSkKKyAgICAgICAgZm5iKHQxLCB0MCwgdDcsIHQyLCBbdDNdLCB0NiwgdDUp
CisgICAgICAgIGFuZGkgMHhmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0CisgICAgICAg
IGFzc2VydChtYWNybyhvaykgYmliZXEgdDAsIDB4ZmYsIC5vayBlbmQpCisgICAgICAgIGFzc2Vy
dChtYWNybyhvaykgYmllcSB0MSwgMCwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJuMmkoY3R4LCB0
MSwgdDApCisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9w
Y29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgp
CisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwg
bV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZDJpKGN0eCwgbV9leHBlY3RlZCwgdDEsIHQwKQor
ICAgICAgICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwgdDcsIHQyKQorICAgICAgICBlbWl0Q2hlY2tB
bmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0MywgdDUsIDIp
CisgICAgICAgIGZuaCh0MSwgdDAsIHQ3LCB0MiwgW3QzXSwgdDYsIHQ1KQorICAgICAgICBhbmRp
IDB4ZmZmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDE2VG82NAorICAgICAgICBhc3NlcnQobWFj
cm8ob2spIGJpYmVxIHQwLCAweGZmZmYsIC5vayBlbmQpCisgICAgICAgIGFzc2VydChtYWNybyhv
aykgYmllcSB0MSwgMCwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCisg
ICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwg
V2FzbUk2NEF0b21pY1JtdzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAg
IG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQs
IHQ1KQorICAgICAgICBtbG9hZDJpKGN0eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAgICBt
bG9hZDJpKGN0eCwgbV92YWx1ZSwgdDcsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJl
UG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0MywgdDUsIDgpCisgICAgICAg
IGZuaSh0MSwgdDAsIHQ3LCB0MiwgW3QzXSwgdDYsIHQ1KQorICAgICAgICBhc3NlcnQobWFjcm8o
b2spIGJpZXEgdDEsIDAsIC5vayBlbmQpCisgICAgICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQor
ICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2Fz
bUk2NEF0b21pY1JtdyV1cHBlckNhc2VPcGNvZGUlLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2Fk
aShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQor
ICAgICAgICBtbG9hZDJpKGN0eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAgICBtbG9hZDJp
KGN0eCwgbV92YWx1ZSwgdDcsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRl
ckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0MywgdDUsIDgpCisgICAgICAgIHB1c2gg
dDQgIyBUaGlzIGlzIHRoZSBQQiwgc28gbmVlZCB0byBiZSBzYXZlZCBhbmQgcmVzdG9yZWQKKyAg
ICAgICAgZm4yaSh0MSwgdDAsIHQ3LCB0MiwgW3QzXSwgdDQsIHQ2LCB0NSkKKyAgICAgICAgcG9w
IHQ0CisgICAgICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorICAgIGVuZCkKK2VuZAorCitpZiBB
Uk12NworLy8gZXhwOiAiZXhwZWN0ZWQiLCB2YWw6ICJ2YWx1ZSIsIHJlczogInJlc3VsdCIKK3dh
c21BdG9taWNDb21wYXJlRXhjaGFuZ2VPcHMoX2NtcHhjaGcsIENtcHhjaGcsCisgICAgbWFjcm8o
ZXhwTXN3LCBleHBMc3csIHZhbE1zdywgdmFsTHN3LCBtZW0sIHNjcmF0Y2gsIHJlc0xzdykKKyAg
ICAgICAgICAgIGZlbmNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmtiIG1l
bSwgcmVzTHN3CisgICAgICAgICAgICBiaW5lcSBleHBMc3csIHJlc0xzdywgLmZhaWwKKyAgICAg
ICAgICAgIGJpbmVxIGV4cE1zdywgMCwgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZGIgc2Ny
YXRjaCwgdmFsTHN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAg
ICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29u
ZGIgc2NyYXRjaCwgcmVzTHN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRv
bmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIGZl
bmNlCisgICAgICAgICAgICBtb3ZlIHJlc0xzdywgZXhwTHN3CisgICAgICAgICAgICBtb3ZlIDAs
IGV4cE1zdworICAgIGVuZCwKKyAgICBtYWNybyhleHBNc3csIGV4cExzdywgdmFsTXN3LCB2YWxM
c3csIG1lbSwgc2NyYXRjaCwgcmVzTHN3KQorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgLmxv
b3A6CisgICAgICAgICAgICBsb2FkbGlua2ggbWVtLCByZXNMc3cKKyAgICAgICAgICAgIGJpbmVx
IGV4cExzdywgcmVzTHN3LCAuZmFpbAorICAgICAgICAgICAgYmluZXEgZXhwTXN3LCAwLCAuZmFp
bAorICAgICAgICAgICAgc3RvcmVjb25kaCBzY3JhdGNoLCB2YWxMc3csIG1lbQorICAgICAgICAg
ICAgYmllcSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAg
IC5mYWlsOgorICAgICAgICAgICAgc3RvcmVjb25kaCBzY3JhdGNoLCByZXNMc3csIG1lbQorICAg
ICAgICAgICAgYmllcSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisg
ICAgICAgIC5kb25lOgorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIG1vdmUgcmVzTHN3
LCBleHBMc3cKKyAgICAgICAgICAgIG1vdmUgMCwgZXhwTXN3CisgICAgZW5kLAorICAgIG1hY3Jv
KGV4cE1zdywgZXhwTHN3LCB2YWxNc3csIHZhbExzdywgbWVtLCBzY3JhdGNoLCByZXNMc3cpCisg
ICAgICAgICAgICBmZW5jZQorICAgICAgICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5raSBt
ZW0sIHJlc0xzdworICAgICAgICAgICAgYmluZXEgZXhwTHN3LCByZXNMc3csIC5mYWlsCisgICAg
ICAgICAgICBiaW5lcSBleHBNc3csIDAsIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmRpIHNj
cmF0Y2gsIHZhbExzdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisg
ICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNv
bmRpIHNjcmF0Y2gsIHJlc0xzdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5k
b25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBm
ZW5jZQorICAgICAgICAgICAgbW92ZSByZXNMc3csIGV4cExzdworICAgICAgICAgICAgbW92ZSAw
LCBleHBNc3cKKyAgICBlbmQsCisgICAgbWFjcm8oZXhwTXN3LCBleHBMc3csIHZhbE1zdywgdmFs
THN3LCBtZW0sIHNjcmF0Y2gsIHJlc01zdywgcmVzTHN3KQorICAgICAgICAgICAgZmVuY2UKKyAg
ICAgICAgLmxvb3A6CisgICAgICAgICAgICBsb2FkbGluazJpIG1lbSwgcmVzTHN3LCByZXNNc3cK
KyAgICAgICAgICAgIGJpbmVxIGV4cExzdywgcmVzTHN3LCAuZmFpbAorICAgICAgICAgICAgYmlu
ZXEgZXhwTXN3LCByZXNNc3csIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmQyaSBzY3JhdGNo
LCB2YWxMc3csIHZhbE1zdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25l
CisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9y
ZWNvbmQyaSBzY3JhdGNoLCByZXNMc3csIHJlc01zdywgbWVtCisgICAgICAgICAgICBiaWVxIHNj
cmF0Y2gsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6Cisg
ICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAgbW92ZSByZXNMc3csIGV4cExzdworICAgICAg
ICAgICAgbW92ZSByZXNNc3csIGV4cE1zdworICAgIGVuZCkKK2VuZAorCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHk2NC5hc20gYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHk2NC5hc20KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi40NmU5ZWE0ODg1MjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHk2NC5hc20KQEAgLTAsMCArMSwxMjU5
IEBACisjIENvcHlyaWdodCAoQykgMjAxMS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIE9wY29kZXMg
dGhhdCBzaG91bGQgZXZlbnR1YWxseSBiZSBzaGFyZWQgd2l0aCBKUyBsbGludAorCit3YXNtT3Ao
bW92LCBXYXNtTW92LCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9zcmMsIHQwKQorICAg
IHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKworIyBXYXNtIHNwZWNpZmljIGJ5dGVjb2RlcworCitt
YWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6
ZSkKKyAgICBsZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNldF0sIHQ1CisgICAgYnBiIHQ1LCBi
b3VuZHNDaGVja2luZ1NpemUsIC5jb250aW51YXRpb24KKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRP
ZkJvdW5kc01lbW9yeUFjY2VzcykKKy5jb250aW51YXRpb246CisgICAgYWRkcCBtZW1vcnlCYXNl
LCBwb2ludGVyCitlbmQKKworbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdP
ZmZzZXQoY3R4LCBwb2ludGVyLCBvZmZzZXQsIHNpemUpCisgICAgbGVhcCBzaXplIC0gMVtwb2lu
dGVyLCBvZmZzZXRdLCB0NQorICAgIGJwYiB0NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29udGlu
dWF0aW9uCisudGhyb3c6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nl
c3MpCisuY29udGludWF0aW9uOgorICAgIGFkZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgorICAgIGFk
ZHAgb2Zmc2V0LCBwb2ludGVyCitlbmQKKworbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50
ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCBwb2ludGVyLCBvZmZzZXQsIHNp
emUpCisgICAgbGVhcCBzaXplIC0gMVtwb2ludGVyLCBvZmZzZXRdLCB0NQorICAgIGJwYiB0NSwg
Ym91bmRzQ2hlY2tpbmdTaXplLCAuY29udGludWF0aW9uCisudGhyb3c6CisgICAgdGhyb3dFeGNl
cHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCisuY29udGludWF0aW9uOgorICAgIGFkZHAg
bWVtb3J5QmFzZSwgcG9pbnRlcgorICAgIGFkZHAgb2Zmc2V0LCBwb2ludGVyCisgICAgYnRwbnog
cG9pbnRlciwgKHNpemUgLSAxKSwgLnRocm93CitlbmQKKworCittYWNybyB3YXNtTG9hZE9wKG5h
bWUsIHN0cnVjdCwgc2l6ZSwgZm4pCisgICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4
KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQorICAgICAgICB3Z2V0dShjdHgs
IG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4LCB0
MCwgdDEsIHNpemUpCisgICAgICAgIGZuKFt0MCwgdDFdLCB0MikKKyAgICAgICAgcmV0dXJucShj
dHgsIHQyKQorICAgIGVuZCkKK2VuZAorCit3YXNtTG9hZE9wKGxvYWQ4X3UsIFdhc21Mb2FkOFUs
IDEsIG1hY3JvKG1lbSwgZHN0KSBsb2FkYiBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGxvYWQx
Nl91LCBXYXNtTG9hZDE2VSwgMiwgbWFjcm8obWVtLCBkc3QpIGxvYWRoIG1lbSwgZHN0IGVuZCkK
K3dhc21Mb2FkT3AobG9hZDMyX3UsIFdhc21Mb2FkMzJVLCA0LCBtYWNybyhtZW0sIGRzdCkgbG9h
ZGkgbWVtLCBkc3QgZW5kKQord2FzbUxvYWRPcChsb2FkNjRfdSwgV2FzbUxvYWQ2NFUsIDgsIG1h
Y3JvKG1lbSwgZHN0KSBsb2FkcSBtZW0sIGRzdCBlbmQpCisKK3dhc21Mb2FkT3AoaTMyX2xvYWQ4
X3MsIFdhc21JMzJMb2FkOFMsIDEsIG1hY3JvKG1lbSwgZHN0KSBsb2FkYnNpIG1lbSwgZHN0IGVu
ZCkKK3dhc21Mb2FkT3AoaTY0X2xvYWQ4X3MsIFdhc21JNjRMb2FkOFMsIDEsIG1hY3JvKG1lbSwg
ZHN0KSBsb2FkYnNxIG1lbSwgZHN0IGVuZCkKK3dhc21Mb2FkT3AoaTMyX2xvYWQxNl9zLCBXYXNt
STMyTG9hZDE2UywgMiwgbWFjcm8obWVtLCBkc3QpIGxvYWRoc2kgbWVtLCBkc3QgZW5kKQord2Fz
bUxvYWRPcChpNjRfbG9hZDE2X3MsIFdhc21JNjRMb2FkMTZTLCAyLCBtYWNybyhtZW0sIGRzdCkg
bG9hZGhzcSBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGk2NF9sb2FkMzJfcywgV2FzbUk2NExv
YWQzMlMsIDQsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaXMgbWVtLCBkc3QgZW5kKQorCittYWNybyB3
YXNtU3RvcmVPcChuYW1lLCBzdHJ1Y3QsIHNpemUsIGZuKQorICAgIHdhc21PcChuYW1lLCBzdHJ1
Y3QsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MCkKKyAgICAg
ICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQ
b2ludGVyKGN0eCwgdDAsIHQxLCBzaXplKQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0
MikKKyAgICAgICAgZm4odDIsIFt0MCwgdDFdKQorICAgICAgICBkaXNwYXRjaChjdHgpCisgICAg
ZW5kKQorZW5kCisKK3dhc21TdG9yZU9wKHN0b3JlOCwgV2FzbVN0b3JlOCwgMSwgbWFjcm8odmFs
dWUsIG1lbSkgc3RvcmViIHZhbHVlLCBtZW0gZW5kKQord2FzbVN0b3JlT3Aoc3RvcmUxNiwgV2Fz
bVN0b3JlMTYsIDIsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlaCB2YWx1ZSwgbWVtIGVuZCkKK3dh
c21TdG9yZU9wKHN0b3JlMzIsIFdhc21TdG9yZTMyLCA0LCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9y
ZWkgdmFsdWUsIG1lbSBlbmQpCit3YXNtU3RvcmVPcChzdG9yZTY0LCBXYXNtU3RvcmU2NCwgOCwg
bWFjcm8odmFsdWUsIG1lbSkgc3RvcmVxIHZhbHVlLCBtZW0gZW5kKQorCit3YXNtT3AocmVmX2lz
X251bGwsIFdhc21SZWZJc051bGwsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHAoY3R4LCBtX3JlZiwg
dDApCisgICAgY3FlcSB0MCwgVmFsdWVOdWxsLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2Vu
ZCkKKword2FzbU9wKGdldF9nbG9iYWwsIFdhc21HZXRHbG9iYWwsIG1hY3JvKGN0eCkKKyAgICBs
b2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dl
dHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKKyAg
ICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChzZXRfZ2xvYmFsLCBXYXNtU2V0R2xv
YmFsLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNt
SW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbWxv
YWRxKGN0eCwgbV92YWx1ZSwgdDIpCisgICAgc3RvcmVxIHQyLCBbdDAsIHQxLCA4XQorICAgIGRp
c3BhdGNoKGN0eCkKK2VuZCkKKword2FzbU9wKGdldF9nbG9iYWxfcG9ydGFibGVfYmluZGluZywg
V2FzbUdldEdsb2JhbFBvcnRhYmxlQmluZGluZywgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206
Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1f
Z2xvYmFsSW5kZXgsIHQxKQorICAgIGxvYWRxIFt0MCwgdDEsIDhdLCB0MAorICAgIGxvYWRxIFt0
MF0sIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3Aoc2V0X2dsb2JhbF9w
b3J0YWJsZV9iaW5kaW5nLCBXYXNtU2V0R2xvYmFsUG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgp
CisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAor
ICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbWxvYWRxKGN0eCwgbV92YWx1
ZSwgdDIpCisgICAgbG9hZHEgW3QwLCB0MSwgOF0sIHQwCisgICAgc3RvcmVxIHQyLCBbdDBdCisg
ICAgZGlzcGF0Y2goY3R4KQorZW5kKQorCisjIE9wY29kZXMgdGhhdCBkb24ndCBoYXZlIHRoZSBg
YjNvcGAgZW50cnkgaW4gd2FzbS5qc29uLiBUaGlzIHNob3VsZCBiZSBrZXB0IGluIHN5bmMKKwor
IyBpMzIgYmluYXJ5IG9wcworCit3YXNtT3AoaTMyX2Rpdl9zLCBXYXNtSTMyRGl2UywgbWFjcm8g
KGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMs
IHQxKQorCisgICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGJpbmVxIHQx
LCAtMSwgLnNhZmUKKyAgICBiaWVxIHQwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAudGhyb3dJbnRl
Z2VyT3ZlcmZsb3cKKworLnNhZmU6CisgICAgaWYgWDg2XzY0CisgICAgICAgICMgRklYTUU6IEFk
ZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAorICAg
ICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKKyAg
ICAgICAgY2RxaQorICAgICAgICBpZGl2aSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBv
ciBSSVNDVjY0CisgICAgICAgIGRpdmlzIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IK
KyAgICBlbmQKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgor
ICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorCisudGhyb3dJbnRlZ2VyT3ZlcmZs
b3c6CisgICAgdGhyb3dFeGNlcHRpb24oSW50ZWdlck92ZXJmbG93KQorZW5kKQorCit3YXNtT3Ao
aTMyX2Rpdl91LCBXYXNtSTMyRGl2VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xo
cywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRpeiB0MSwgLnRocm93
RGl2aXNpb25CeVplcm8KKworICAgIGlmIFg4Nl82NAorICAgICAgICB4b3JpIHQyLCB0MgorICAg
ICAgICB1ZGl2aSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0CisgICAg
ICAgIGRpdmkgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorICAgIHJl
dHVybmkoY3R4LCB0MCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRp
b24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpMzJfcmVtX3MsIFdhc21JMzJSZW1T
LCBtYWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4
LCBtX3JocywgdDEpCisKKyAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAg
YmluZXEgdDEsIC0xLCAuc2FmZQorICAgIGJpbmVxIHQwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAu
c2FmZQorCisgICAgbW92ZSAwLCB0MgorICAgIGptcCAucmV0dXJuCisKKy5zYWZlOgorICAgIGlm
IFg4Nl82NAorICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQg
dDAgaXMgcmF4IGFuZCB0MiBpcyByZHgKKyAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCisgICAgICAgIGNkcWkKKyAgICAgICAgaWRpdmkgdDEK
KyAgICBlbHNpZiBBUk02NCBvciBBUk02NEUKKyAgICAgICAgZGl2aXMgdDEsIHQwLCB0MgorICAg
ICAgICBtdWxpIHQxLCB0MgorICAgICAgICBzdWJpIHQwLCB0MiwgdDIKKyAgICBlbHNpZiBSSVND
VjY0CisgICAgICAgIHJlbWlzIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBl
bmQKKworLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDIpCisKKy50aHJvd0RpdmlzaW9uQnla
ZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3Ao
aTMyX3JlbV91LCBXYXNtSTMyUmVtVSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xo
cywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRpeiB0MSwgLnRocm93
RGl2aXNpb25CeVplcm8KKworICAgIGlmIFg4Nl82NAorICAgICAgICB4b3JpIHQyLCB0MgorICAg
ICAgICB1ZGl2aSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQorICAgICAgICBkaXZpIHQx
LCB0MCwgdDIKKyAgICAgICAgbXVsaSB0MSwgdDIKKyAgICAgICAgc3ViaSB0MCwgdDIsIHQyCisg
ICAgZWxzaWYgUklTQ1Y2NAorICAgICAgICByZW1pIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAg
ZXJyb3IKKyAgICBlbmQKKyAgICByZXR1cm5pKGN0eCwgdDIpCisKKy50aHJvd0RpdmlzaW9uQnla
ZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCisjIGk2NCBi
aW5hcnkgb3BzCisKK3dhc21PcChpNjRfYWRkLCBXYXNtSTY0QWRkLCBtYWNybyhjdHgpCisgICAg
bWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBh
ZGRxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9zdWIs
IFdhc21JNjRTdWIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAg
bWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIHN1YnEgdDEsIHQwCisgICAgcmV0dXJucShjdHgs
IHQwKQorZW5kKQorCit3YXNtT3AoaTY0X211bCwgV2FzbUk2NE11bCwgbWFjcm8oY3R4KQorICAg
IG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAg
bXVscSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfZGl2
X3MsIFdhc21JNjREaXZTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkK
KyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisKKyAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lv
bkJ5WmVybworCisgICAgYnFuZXEgdDEsIC0xLCAuc2FmZQorICAgIGJxZXEgdDAsIGNvbnN0ZXhw
ciBJTlQ2NF9NSU4sIC50aHJvd0ludGVnZXJPdmVyZmxvdworCisuc2FmZToKKyAgICBpZiBYODZf
NjQKKyAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlz
IHJheCBhbmQgdDIgaXMgcmR4CisgICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMzY5MgorICAgICAgICBjcW9xCisgICAgICAgIGlkaXZxIHQxCisgICAg
ZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKKyAgICAgICAgZGl2cXMgdDEsIHQwCisg
ICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorICAgIHJldHVybnEoY3R4LCB0MCkKKwor
LnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8p
CisKKy50aHJvd0ludGVnZXJPdmVyZmxvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihJbnRlZ2VyT3Zl
cmZsb3cpCitlbmQpCisKK3dhc21PcChpNjRfZGl2X3UsIFdhc21JNjREaXZVLCBtYWNybyAoY3R4
KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEp
CisKKyAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgaWYgWDg2XzY0Cisg
ICAgICAgIHhvcnEgdDIsIHQyCisgICAgICAgIHVkaXZxIHQxCisgICAgZWxzaWYgQVJNNjQgb3Ig
QVJNNjRFIG9yIFJJU0NWNjQKKyAgICAgICAgZGl2cSB0MSwgdDAKKyAgICBlbHNlCisgICAgICAg
IGVycm9yCisgICAgZW5kCisgICAgcmV0dXJucShjdHgsIHQwKQorCisudGhyb3dEaXZpc2lvbkJ5
WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9w
KGk2NF9yZW1fcywgV2FzbUk2NFJlbVMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9s
aHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0cXogdDEsIC50aHJv
d0RpdmlzaW9uQnlaZXJvCisKKyAgICBicW5lcSB0MSwgLTEsIC5zYWZlCisgICAgYnFuZXEgdDAs
IGNvbnN0ZXhwciBJTlQ2NF9NSU4sIC5zYWZlCisKKyAgICBtb3ZlIDAsIHQyCisgICAgam1wIC5y
ZXR1cm4KKworLnNhZmU6CisgICAgaWYgWDg2XzY0CisgICAgICAgICMgRklYTUU6IEFkZCBhIHdh
eSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAorICAgICAgICAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKKyAgICAgICAg
Y3FvcQorICAgICAgICBpZGl2cSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQorICAgICAg
ICBkaXZxcyB0MSwgdDAsIHQyCisgICAgICAgIG11bHEgdDEsIHQyCisgICAgICAgIHN1YnEgdDAs
IHQyLCB0MgorICAgIGVsc2lmIFJJU0NWNjQKKyAgICAgICAgcmVtcXMgdDEsIHQwCisgICAgZWxz
ZQorICAgICAgICBlcnJvcgorICAgIGVuZAorCisucmV0dXJuOgorICAgIHJldHVybnEoY3R4LCB0
MikgIyByZHggaGFzIHRoZSByZW1haW5kZXIKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAg
dGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpNjRfcmVtX3Us
IFdhc21JNjRSZW1VLCBtYWNybyAoY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAg
ICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisKKyAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5
WmVybworCisgICAgaWYgWDg2XzY0CisgICAgICAgIHhvcnEgdDIsIHQyCisgICAgICAgIHVkaXZx
IHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCisgICAgICAgIGRpdnEgdDEsIHQwLCB0Mgor
ICAgICAgICBtdWxxIHQxLCB0MgorICAgICAgICBzdWJxIHQwLCB0MiwgdDIKKyAgICBlbHNpZiBS
SVNDVjY0CisgICAgICAgIHJlbXEgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAg
IGVuZAorICAgIHJldHVybnEoY3R4LCB0MikKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAg
dGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpNjRfYW5kLCBX
YXNtSTY0QW5kLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1s
b2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBhbmRxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0
MSkKK2VuZCkKKword2FzbU9wKGk2NF9vciwgV2FzbUk2NE9yLCBtYWNybyhjdHgpCisgICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBvcnEg
dDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X3hvciwgV2Fz
bUk2NFhvciwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9h
ZHEoY3R4LCBtX3JocywgdDEpCisgICAgeG9ycSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEp
CitlbmQpCisKK3dhc21PcChpNjRfc2hsLCBXYXNtSTY0U2hsLCBtYWNybyhjdHgpCisgICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKyAgICBsc2hp
ZnRxIHQxLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9zaHJf
dSwgV2FzbUk2NFNoclUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisg
ICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorICAgIHVyc2hpZnRxIHQxLCB0MAorICAgIHJldHVy
bnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9zaHJfcywgV2FzbUk2NFNoclMsIG1hY3Jv
KGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMs
IHQxKQorICAgIHJzaGlmdHEgdDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3
YXNtT3AoaTY0X3JvdHIsIFdhc21JNjRSb3RyLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwg
bV9saHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKyAgICBycm90YXRlcSB0MSwg
dDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfcm90bCwgV2FzbUk2
NFJvdGwsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRp
KGN0eCwgbV9yaHMsIHQxKQorICAgIGxyb3RhdGVxIHQxLCB0MAorICAgIHJldHVybnEoY3R4LCB0
MCkKK2VuZCkKKword2FzbU9wKGk2NF9lcSwgV2FzbUk2NEVxLCBtYWNybyhjdHgpCisgICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWVx
IHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQor
Cit3YXNtT3AoaTY0X25lLCBXYXNtSTY0TmUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBt
X2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxbmVxIHQwLCB0MSwg
dDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3Ao
aTY0X2x0X3MsIFdhc21JNjRMdFMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywg
dDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxbHQgdDAsIHQxLCB0MgorICAg
IGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfbGVf
cywgV2FzbUk2NExlUywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAg
ICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FsdGVxIHQwLCB0MSwgdDIKKyAgICBhbmRp
IDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2x0X3UsIFdh
c21JNjRMdFUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxv
YWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxYiB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0Mgor
ICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9sZV91LCBXYXNtSTY0TGVV
LCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgs
IG1fcmhzLCB0MSkKKyAgICBjcWJlcSB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJl
dHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9ndF9zLCBXYXNtSTY0R3RTLCBtYWNy
byhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhz
LCB0MSkKKyAgICBjcWd0IHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShj
dHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2dlX3MsIFdhc21JNjRHZVMsIG1hY3JvKGN0eCkK
KyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQor
ICAgIGNxZ3RlcSB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0
MikKK2VuZCkKKword2FzbU9wKGk2NF9ndF91LCBXYXNtSTY0R3RVLCBtYWNybyhjdHgpCisgICAg
bWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBj
cWEgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQp
CisKK3dhc21PcChpNjRfZ2VfdSwgV2FzbUk2NEdlVSwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShj
dHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FhZXEgdDAs
IHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKKyMg
aTY0IHVuYXJ5IG9wcworCit3YXNtT3AoaTY0X2N0eiwgV2FzbUk2NEN0eiwgbWFjcm8gKGN0eCkK
KyAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHR6Y250cSB0MCwgdDAKKyAgICBy
ZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfY2x6LCBXYXNtSTY0Q2x6LCBtYWNy
byhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBsemNudHEgdDAsIHQx
CisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X3BvcGNudCwgV2FzbUk2
NFBvcGNudCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIGExKQorICAg
IHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBtb3ZlIFBDLCBhMAorICAgIGNDYWxsMihfc2xv
d19wYXRoX3dhc21fcG9wY291bnRsbCkKKyAgICByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkKKyAg
ICByZXR1cm5xKGN0eCwgcjEpCitlbmQpCisKK3dhc21PcChpNjRfZXF6LCBXYXNtSTY0RXF6LCBt
YWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBjcWVxIHQwLCAw
LCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKworIyBmNjQgYmluYXJ5IG9wcworCit3
YXNtT3AoZjY0X2NvcHlzaWduLCBXYXNtRjY0Q29weXNpZ24sIG1hY3JvKGN0eCkKKyAgICBtbG9h
ZGQoY3R4LCBtX2xocywgZnQwKQorICAgIG1sb2FkZChjdHgsIG1fcmhzLCBmdDEpCisKKyAgICBm
ZDJxIGZ0MSwgdDEKKyAgICBtb3ZlIDB4ODAwMDAwMDAwMDAwMDAwMCwgdDIKKyAgICBhbmRxIHQy
LCB0MQorCisgICAgZmQycSBmdDAsIHQwCisgICAgbW92ZSAweDdmZmZmZmZmZmZmZmZmZmYsIHQy
CisgICAgYW5kcSB0MiwgdDAKKworICAgIG9ycSB0MSwgdDAKKyAgICBmcTJkIHQwLCBmdDAKKyAg
ICByZXR1cm5kKGN0eCwgZnQwKQorZW5kKQorCisjIFR5cGUgY29udmVyc2lvbiBvcHMKKword2Fz
bU9wKGk2NF9leHRlbmRfc19pMzIsIFdhc21JNjRFeHRlbmRTSTMyLCBtYWNybyhjdHgpCisgICAg
bWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBzeGkycSB0MCwgdDEKKyAgICByZXR1cm5x
KGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfZXh0ZW5kX3VfaTMyLCBXYXNtSTY0RXh0ZW5k
VUkzMiwgbWFjcm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgenhp
MnEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoZjY0X3JlaW50
ZXJwcmV0X2k2NCwgV2FzbUY2NFJlaW50ZXJwcmV0STY0LCBtYWNybyhjdHgpCisgICAgbWxvYWRx
KGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBmcTJkIHQwLCBmdDAKKyAgICByZXR1cm5kKGN0eCwg
ZnQwKQorZW5kKQorCit3YXNtT3AoaTY0X3JlaW50ZXJwcmV0X2Y2NCwgV2FzbUk2NFJlaW50ZXJw
cmV0RjY0LCBtYWNybyhjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisgICAg
ZmQycSBmdDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3Ry
dW5jX3NfZjY0LCBXYXNtSTMyVHJ1bmNTRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgs
IG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGMxZTAwMDAwMDAyMDAwMDAsIHQwICMgSU5U
MzJfTUlOIC0gMS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5v
dXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5U
MzJfTUlOCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJv
dW5kc1RydW5jCisKKyAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0
MCkKKworLm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNU
cnVuYykKK2VuZCkKKword2FzbU9wKGkzMl90cnVuY191X2Y2NCwgV2FzbUkzMlRydW5jVUY2NCwg
bWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUg
MHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0
ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmUgMHg0MWYwMDAwMDAw
MDAwMDAwLCB0MCAjIElOVDMyX01JTiAqIC0yLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0
ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZDJpIGZ0MCwg
dDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93
RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc19m
MzIsIFdhc21JNjRUcnVuY1NGMzIsIG1hY3JvIChjdHgpCisgICAgbWxvYWRmKGN0eCwgbV9vcGVy
YW5kLCBmdDApCisKKyAgICBtb3ZlIDB4ZGYwMDAwMDAsIHQwICMgSU5UNjRfTUlOCisgICAgZmky
ZiB0MCwgZnQxCisgICAgYmZsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAg
bW92ZSAweDVmMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KKyAgICBmaTJmIHQwLCBmdDEKKyAgICBi
Zmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZjJxcyBm
dDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0
aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5j
X3VfZjMyLCBXYXNtSTY0VHJ1bmNVRjMyLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZihjdHgsIG1f
b3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGJmODAwMDAwLCB0MCAjIC0xLjAKKyAgICBmaTJm
IHQwLCBmdDEKKyAgICBiZmx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAg
IG1vdmUgMHg1ZjgwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCisgICAgZmkyZiB0MCwgZnQx
CisgICAgYmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0
ZWYycSBmdDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoK
KyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTY0
X3RydW5jX3NfZjY0LCBXYXNtSTY0VHJ1bmNTRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChj
dHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGMzZTAwMDAwMDAwMDAwMDAsIHQwICMg
SU5UNjRfTUlOCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdHVuIGZ0MCwgZnQxLCAub3V0T2ZC
b3VuZHNUcnVuYworCisgICAgbW92ZSAweDQzZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDY0X01J
TgorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNU
cnVuYworCisgICAgdHJ1bmNhdGVkMnFzIGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisK
Ky5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMp
CitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfdV9mNjQsIFdhc21JNjRUcnVuY1VGNjQsIG1hY3Jv
IChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YmZm
MDAwMDAwMDAwMDAwMCwgdDAgIyAtMS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVxdW4g
ZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlIDB4NDNmMDAwMDAwMDAwMDAw
MCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4g
ZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0ZWQycSBmdDAsIHQwCisg
ICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2Vw
dGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRf
cywgV2FzbUkzMlRydW5jU2F0RjY0UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29w
ZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhjMWUwMDAwMDAwMjAwMDAwLCB0MCAjIElOVDMyX01J
TiAtIDEuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZC
b3VuZHNUcnVuY1NhdE1pbk9yTmFOCisKKyAgICBtb3ZlIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDAg
IyAtSU5UMzJfTUlOCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5v
dXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAorICAgIHJl
dHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKKyAgICBiZGVx
IGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorICAgIG1vdmUgMCwgdDAKKyAgICBy
ZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAgIG1vdmUgKGNv
bnN0ZXhwciBJTlQzMl9NQVgpLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91
bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAoY29uc3RleHByIElOVDMyX01JTiksIHQwCisgICAg
cmV0dXJuaShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfdSwgV2Fz
bUkzMlRydW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQs
IGZ0MCkKKworICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKKyAgICBmcTJk
IHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4K
KworICAgIG1vdmUgMHg0MWYwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDMyX01JTiAqIC0yLjAKKyAg
ICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNT
YXRNYXgKKworICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisK
Ky5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5pKGN0
eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBV
SU5UMzJfTUFYKSwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRf
dHJ1bmNfc2F0X2YzMl9zLCBXYXNtSTY0VHJ1bmNTYXRGMzJTLCBtYWNybyAoY3R4KQorICAgIG1s
b2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGRmMDAwMDAwLCB0MCAjIElO
VDY0X01JTgorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91
bmRzVHJ1bmNTYXRNaW5Pck5hTgorCisgICAgbW92ZSAweDVmMDAwMDAwLCB0MCAjIC1JTlQ2NF9N
SU4KKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZjJxcyBmdDAsIHQwCisgICAgcmV0dXJucShjdHgs
IHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgorICAgIGJmZXEgZnQwLCBmdDAs
IC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybnEoY3R4
LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIElO
VDY0X01BWCksIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1pbjoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUlOKSwgdDAKKyAgICByZXR1cm5xKGN0
eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl91LCBXYXNtSTY0VHJ1bmNT
YXRGMzJVLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisg
ICAgbW92ZSAweGJmODAwMDAwLCB0MCAjIC0xLjAKKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmx0
ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKworICAgIG1vdmUgMHg1Zjgw
MDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCisgICAgZmkyZiB0MCwgZnQxCisgICAgYmZndGVx
dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWYycSBm
dDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoK
KyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDY0X01BWCksIHQwCisgICAgcmV0dXJu
cShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5jX3NhdF9mNjRfcywgV2FzbUk2NFRy
dW5jU2F0RjY0UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkK
KworICAgIG1vdmUgMHhjM2UwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDY0X01JTgorICAgIGZxMmQg
dDAsIGZ0MQorICAgIGJkbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5h
TgorCisgICAgbW92ZSAweDQzZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDY0X01JTgorICAgIGZx
MmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1h
eAorCisgICAgdHJ1bmNhdGVkMnFzIGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5v
dXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU46CisgICAgYmRlcSBmdDAsIGZ0MCwgLm91dE9mQm91
bmRzVHJ1bmNTYXRNaW4KKyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUFYKSwg
dDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAg
IG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9NSU4pLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2Vu
ZCkKKword2FzbU9wKGk2NF90cnVuY19zYXRfZjY0X3UsIFdhc21JNjRUcnVuY1NhdEY2NFUsIG1h
Y3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4
YmZmMDAwMDAwMDAwMDAwMCwgdDAgIyAtMS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVx
dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCisKKyAgICBtb3ZlIDB4NDNmMDAw
MDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCisgICAgZnEyZCB0MCwgZnQxCisgICAg
YmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0
ZWQycSBmdDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1pbjoKKyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3Vu
ZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDY0X01BWCksIHQwCisgICAg
cmV0dXJucShjdHgsIHQwKQorZW5kKQorCisjIEV4dGVuZCBvcHMKKword2FzbU9wKGk2NF9leHRl
bmQ4X3MsIFdhc21JNjRFeHRlbmQ4UywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fb3Bl
cmFuZCwgdDApCisgICAgc3hiMnEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQor
Cit3YXNtT3AoaTY0X2V4dGVuZDE2X3MsIFdhc21JNjRFeHRlbmQxNlMsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHN4aDJxIHQwLCB0MQorICAgIHJldHVy
bnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9leHRlbmQzMl9zLCBXYXNtSTY0RXh0ZW5k
MTZTLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBzeGky
cSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKKyMgQXRvbWljcworCittYWNy
byB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2Rl
LCBmbmIsIGZuaCwgZm5pLCBmbnEpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNh
c2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhj
dHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0
eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAg
ICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQoY3R4LCB0MywgdDEsIDEp
CisgICAgICAgIGZuYih0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKKyAgICAgICAgYW5kcSAweGZmLCB0
MCAjIEZJWE1FOiBaZXJvRXh0ZW5kOFRvNjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJl
cSB0MCwgMHhmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkK
KyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcxNiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRB
dG9taWNSbXcxNiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGko
Y3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAg
ICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBh
cmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCAyKQor
ICAgICAgICBmbmgodDAsIFt0M10sIHQyLCB0NSwgdDEpCisgICAgICAgIGFuZHEgMHhmZmZmLCB0
MCAjIEZJWE1FOiBaZXJvRXh0ZW5kMTZUbzY0CisgICAgICAgIGFzc2VydChtYWNybyhvaykgYnFi
ZXEgdDAsIDB4ZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVu
ZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXczMiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21J
NjRBdG9taWNSbXczMiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9h
ZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkK
KyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFBy
ZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA0
KQorICAgICAgICBmbmkodDAsIFt0M10sIHQyLCB0NSwgdDEpCisgICAgICAgIGFzc2VydChtYWNy
byhvaykgYnFiZXEgdDAsIDB4ZmZmZmZmZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybnEoY3R4
LCB0MCkKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13JWxvd2VyQ2FzZU9wY29k
ZSUsIFdhc21JNjRBdG9taWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8oY3R4KQorICAgICAg
ICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0
LCB0MSkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVj
a0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMs
IHQxLCA4KQorICAgICAgICBmbnEodDAsIFt0M10sIHQyLCB0NSwgdDEpCisgICAgICAgIHJldHVy
bnEoY3R4LCB0MCkKKyAgICBlbmQpCitlbmQKKworbWFjcm8gd2FzbUF0b21pY0JpbmFyeVJNV09w
c1dpdGhXZWFrQ0FTKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmksIGZucSkK
KyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bj
b2RlLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAg
ICAgICAgICAgaWYgWDg2XzY0CisgICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKKyAg
ICAgICAgICAgICAgICBsb2FkYiBtZW0sIHQwR1BSCisgICAgICAgICAgICAubG9vcDoKKyAgICAg
ICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgorICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwg
dDJHUFIpCisgICAgICAgICAgICAgICAgYmF0b21pY3dlYWtjYXNiIHQwR1BSLCB0MkdQUiwgbWVt
LCAubG9vcAorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAg
ICAgICAgbG9hZGxpbmthY3FiIG1lbSwgdDFHUFIKKyAgICAgICAgICAgICAgICBmbmkodDBHUFIs
IHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmRyZWxiIHQ1R1BSLCB0MkdQ
UiwgbWVtCisgICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAg
ICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbmQsCisg
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAg
ICBpZiBYODZfNjQKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgorICAgICAgICAg
ICAgICAgIGxvYWRoIG1lbSwgdDBHUFIKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAg
ICAgIG1vdmUgdDBHUFIsIHQyR1BSCisgICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikK
KyAgICAgICAgICAgICAgICBiYXRvbWljd2Vha2Nhc2ggdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29w
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBs
b2FkbGlua2FjcWggbWVtLCB0MUdQUgorICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIs
IHQyR1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQyR1BSLCBtZW0K
KyAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBt
b3ZlIHQxR1BSLCB0MEdQUgorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZCwKKyAgICAgICAg
bWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIGlmIFg4
Nl82NAorICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCisgICAgICAgICAgICAgICAg
bG9hZGkgbWVtLCB0MEdQUgorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbW92
ZSB0MEdQUiwgdDJHUFIKKyAgICAgICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQorICAgICAg
ICAgICAgICAgIGJhdG9taWN3ZWFrY2FzaSB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5r
YWNxaSBtZW0sIHQxR1BSCisgICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIp
CisgICAgICAgICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAg
ICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAorICAgICAgICAgICAgICAgIG1vdmUgdDFH
UFIsIHQwR1BSCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgaWYgWDg2XzY0Cisg
ICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKKyAgICAgICAgICAgICAgICBsb2FkcSBt
ZW0sIHQwR1BSCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BS
LCB0MkdQUgorICAgICAgICAgICAgICAgIGZucSh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICAg
ICAgYmF0b21pY3dlYWtjYXNxIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAorICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9hZGxpbmthY3FxIG1l
bSwgdDFHUFIKKyAgICAgICAgICAgICAgICBmbnEodDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAg
ICAgICAgICAgICBzdG9yZWNvbmRyZWxxIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICAg
ICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBH
UFIKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbmQpCitlbmQKKworaWYgWDg2XzY0CisgICAg
d2FzbUF0b21pY0JpbmFyeVJNV09wcyhfYWRkLCBBZGQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0gZW5kLAor
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
YWRkaCB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1
R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRxIHQwR1BSLCBt
ZW0gZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3N1YiwgU3ViLAorICAgICAgICBt
YWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3ViYiB0MEdQ
UiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikgYXRvbWljeGNoZ3N1YmggdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJpIHQwR1BSLCBtZW0gZW5kLAor
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
c3VicSB0MEdQUiwgbWVtIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94Y2hnLCBY
Y2hnLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9t
aWN4Y2hnYiB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2ggdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdpIHQwR1BSLCBtZW0g
ZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9t
aWN4Y2hncSB0MEdQUiwgbWVtIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdl
YWtDQVMoX2FuZCwgQW5kLAorICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCisgICAgICAgICAg
ICBhbmRpIHQ1R1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQ1R1BSLCB0
MkdQUikKKyAgICAgICAgICAgIGFuZHEgdDVHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3
YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX29yLCBPciwKKyAgICAgICAgbWFjcm8o
dDVHUFIsIHQyR1BSKQorICAgICAgICAgICAgb3JpIHQ1R1BSLCB0MkdQUgorICAgICAgICBlbmQs
CisgICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgIG9ycSB0NUdQUiwgdDJH
UFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhf
eG9yLCBYb3IsCisgICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgIHhvcmkg
dDVHUFIsIHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQor
ICAgICAgICAgICAgeG9ycSB0NUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorZWxzaWYgQVJNNjRF
CisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfYWRkLCBBZGQsCisgICAgICAgIG1hY3JvKHQw
R1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0s
IHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikgYXRvbWljeGNoZ2FkZGggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVt
LCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFH
UFIpIGF0b21pY3hjaGdhZGRxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKKyAgICB3YXNtQXRvbWlj
QmluYXJ5Uk1XT3BzKF9zdWIsIFN1YiwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5lZ3EgdDBHUFIKKyAgICAgICAgICAgIGF0b21p
Y3hjaGdhZGRiIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5lZ3EgdDBHUFIK
KyAgICAgICAgICAgIGF0b21pY3hjaGdhZGRoIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVu
ZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAg
ICAgICAgIG5lZ3EgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0s
IHQwR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1
R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5lZ3EgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hj
aGdhZGRxIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmlu
YXJ5Uk1XT3BzKF9hbmQsIEFuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1
R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5vdHEgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hj
aGdjbGVhcmIgdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgbm90cSB0MEdQUgor
ICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFyaCB0MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBl
bmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAg
ICAgICAgICBub3RxIHQwR1BSCisgICAgICAgICAgICBhdG9taWN4Y2hnY2xlYXJpIHQwR1BSLCBt
ZW0sIHQwR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5vdHEgdDBHUFIKKyAgICAgICAgICAgIGF0b21p
Y3hjaGdjbGVhcnEgdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9t
aWNCaW5hcnlSTVdPcHMoX29yLCBPciwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29yYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcmgg
dDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwg
dDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnb3JpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29ycSB0
MEdQUiwgbWVtLCB0MEdQUiBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfeG9yLCBY
b3IsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21p
Y3hjaGd4b3JiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmggdDBHUFIsIG1lbSwgdDBHUFIg
ZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9t
aWN4Y2hneG9yaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JxIHQwR1BSLCBtZW0sIHQwR1BS
IGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94Y2hnLCBYY2hnLAorICAgICAgICBt
YWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYiB0MEdQUiwg
bWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwg
dDFHUFIpIGF0b21pY3hjaGdoIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2kgdDBHUFIsIG1lbSwg
dDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KSBhdG9taWN4Y2hncSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQpCitlbHNpZiBBUk02NCBvciBSSVND
VjY0CisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9hZGQsIEFkZCwKKyAg
ICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIGFkZGkgdDBHUFIs
IHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwg
dDJHUFIpCisgICAgICAgICAgICBhZGRxIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5k
KQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfc3ViLCBTdWIsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBzdWJpIHQxR1BSLCB0
MEdQUiwgdDJHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQy
R1BSKQorICAgICAgICAgICAgc3VicSB0MUdQUiwgdDBHUFIsIHQyR1BSCisgICAgICAgIGVuZCkK
KyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3hjaGcsIFhjaGcsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0
MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisg
ICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21p
Y0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9hbmQsIEFuZCwKKyAgICAgICAgbWFjcm8odDBHUFIs
IHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIGFuZGkgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAg
ICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAg
ICBhbmRxIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNC
aW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfb3IsIE9yLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFH
UFIsIHQyR1BSKQorICAgICAgICAgICAgb3JpIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAg
ZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgb3Jx
IHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlS
TVdPcHNXaXRoV2Vha0NBUyhfeG9yLCBYb3IsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwg
dDJHUFIpCisgICAgICAgICAgICB4b3JpIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5k
LAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgeG9ycSB0
MEdQUiwgdDFHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKK2VuZAorCittYWNybyB3YXNtQXRvbWlj
Q29tcGFyZUV4Y2hhbmdlT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIs
IGZuaCwgZm5pLCBmbnEpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNv
ZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisg
ICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9v
ZmZzZXQsIHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKKyAgICAgICAg
bWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2lu
dGVyQWRkaW5nT2Zmc2V0KGN0eCwgdDMsIHQxLCAxKQorICAgICAgICBmbmIodDAsIHQyLCBbdDNd
LCB0NSwgdDEpCisgICAgICAgIGFuZHEgMHhmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0
CisgICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmYsIC5vayBlbmQpCisgICAg
ICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13
MTYlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MTYldXBwZXJDYXNlT3Bjb2Rl
JVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAg
ICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0
ZWQsIHQwKQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAgICAgICAgZW1pdENo
ZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0
MywgdDEsIDIpCisgICAgICAgIGZuaCh0MCwgdDIsIFt0M10sIHQ1LCB0MSkKKyAgICAgICAgYW5k
cSAweGZmZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQxNlRvNjQKKyAgICAgICAgYXNzZXJ0KG1h
Y3JvKG9rKSBicWJlcSB0MCwgMHhmZmZmLCAub2sgZW5kKQorICAgICAgICByZXR1cm5xKGN0eCwg
dDApCisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29k
ZSVfdSwgV2FzbUk2NEF0b21pY1JtdzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisg
ICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9v
ZmZzZXQsIHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKKyAgICAgICAg
bWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2lu
dGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA0KQorICAgICAg
ICBmbmkodDAsIHQyLCBbdDNdLCB0NSwgdDEpCisgICAgICAgIGFzc2VydChtYWNybyhvaykgYnFi
ZXEgdDAsIDB4ZmZmZmZmZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAg
ICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21J
NjRBdG9taWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGko
Y3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAg
ICAgICAgbWxvYWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCisgICAgICAgIG1sb2FkcShjdHgsIG1f
dmFsdWUsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNl
dFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgOCkKKyAgICAgICAgZm5xKHQwLCB0Miwg
W3QzXSwgdDUsIHQxKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorZW5kCisK
K2lmIFg4Nl82NCBvciBBUk02NEUgb3IgQVJNNjQgb3IgUklTQ1Y2NAorIyB0MEdQUiA9PiBleHBl
Y3RlZCwgdDJHUFIgPT4gdmFsdWUsIG1lbSA9PiBtZW1vcnkgcmVmZXJlbmNlCit3YXNtQXRvbWlj
Q29tcGFyZUV4Y2hhbmdlT3BzKF9jbXB4Y2hnLCBDbXB4Y2hnLAorICAgIG1hY3JvKHQwR1BSLCB0
MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCisgICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKKyAg
ICAgICAgICAgIGJxYSB0MEdQUiAsIDB4ZmYsIC5mYWlsCisgICAgICAgICAgICBhdG9taWN3ZWFr
Y2FzYiB0MEdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgam1wIC5kb25lCisgICAgICAgIC5m
YWlsOgorICAgICAgICAgICAgYXRvbWljbG9hZGIgbWVtLCB0MEdQUgorICAgICAgICAuZG9uZToK
KyAgICAgICAgZWxzZQorICAgICAgICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5rYWNxYiBt
ZW0sIHQxR1BSCisgICAgICAgICAgICBicW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCisgICAgICAg
ICAgICBzdG9yZWNvbmRyZWxiIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1
R1BSLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAg
ICAgICAgICAgc3RvcmVjb25kcmVsYiB0NUdQUiwgdDFHUFIsIG1lbQorICAgICAgICAgICAgYmll
cSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToK
KyAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCisgICAgICAgIGVuZAorICAgIGVuZCwKKyAg
ICBtYWNybyh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BSKQorICAgICAgICBpZiBYODZf
NjQgb3IgQVJNNjRFCisgICAgICAgICAgICBicWEgdDBHUFIsIDB4ZmZmZiwgLmZhaWwKKyAgICAg
ICAgICAgIGF0b21pY3dlYWtjYXNoIHQwR1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICBqbXAg
LmRvbmUKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBhdG9taWNsb2FkaCBtZW0sIHQwR1BS
CisgICAgICAgIC5kb25lOgorICAgICAgICBlbHNlCisgICAgICAgIC5sb29wOgorICAgICAgICAg
ICAgbG9hZGxpbmthY3FoIG1lbSwgdDFHUFIKKyAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQ
UiwgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQyR1BSLCBtZW0KKyAg
ICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAg
ICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRyZWxoIHQ1R1BSLCB0MUdQUiwgbWVt
CisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29w
CisgICAgICAgIC5kb25lOgorICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAg
ZW5kCisgICAgZW5kLAorICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIp
CisgICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKKyAgICAgICAgICAgIGJxYSB0MEdQUiwgMHhm
ZmZmZmZmZiwgLmZhaWwKKyAgICAgICAgICAgIGF0b21pY3dlYWtjYXNpIHQwR1BSLCB0MkdQUiwg
bWVtCisgICAgICAgICAgICBqbXAgLmRvbmUKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBh
dG9taWNsb2FkaSBtZW0sIHQwR1BSCisgICAgICAgIC5kb25lOgorICAgICAgICBlbHNlCisgICAg
ICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmthY3FpIG1lbSwgdDFHUFIKKyAgICAgICAg
ICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGkg
dDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAg
ICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRy
ZWxpIHQ1R1BSLCB0MUdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQor
ICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAgICAgICAgbW92ZSB0
MUdQUiwgdDBHUFIKKyAgICAgICAgZW5kCisgICAgZW5kLAorICAgIG1hY3JvKHQwR1BSLCB0MkdQ
UiwgbWVtLCB0NUdQUiwgdDFHUFIpCisgICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKKyAgICAg
ICAgICAgIGF0b21pY3dlYWtjYXNxIHQwR1BSLCB0MkdQUiwgbWVtCisgICAgICAgIGVsc2UKKyAg
ICAgICAgLmxvb3A6CisgICAgICAgICAgICBsb2FkbGlua2FjcXEgbWVtLCB0MUdQUgorICAgICAg
ICAgICAgYnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kcmVs
cSB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAg
ICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29u
ZHJlbHEgdDVHUFIsIHQxR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25l
CisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBtb3Zl
IHQxR1BSLCB0MEdQUgorICAgICAgICBlbmQKKyAgICBlbmQpCitlbmQKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL29mZmxpbmVhc20vYXJtLnJiCmluZGV4IDljNTQ4YTNjMmU4ZS4uNDg0NzZiZGY4ZDgy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiCkBAIC02MSw2ICs2MSwx
MSBAQCBjbGFzcyBOb2RlCiAgICAgICAgIHJhaXNlICJCb2d1cyByZWdpc3RlciBuYW1lICN7ZG91
YmxlT3BlcmFuZH0iIHVubGVzcyBkb3VibGVPcGVyYW5kID1+IC9eZC8KICAgICAgICAgInMiICsg
KCR+LnBvc3RfbWF0Y2gudG9faSAqIDIpLnRvX3MKICAgICBlbmQKKyAgICBkZWYgYXJtU2luZ2xl
SGkKKyAgICAgICAgZG91YmxlT3BlcmFuZCA9IGFybU9wZXJhbmQKKyAgICAgICAgcmFpc2UgIkJv
Z3VzIHJlZ2lzdGVyIG5hbWUgI3tkb3VibGVPcGVyYW5kfSIgdW5sZXNzIGRvdWJsZU9wZXJhbmQg
PX4gL15kLworICAgICAgICAicyIgKyAoJH4ucG9zdF9tYXRjaC50b19pICogMiArIDEpLnRvX3MK
KyAgICBlbmQKIGVuZAogCiBjbGFzcyBTcGVjaWFsUmVnaXN0ZXIKQEAgLTkzLDIwICs5OCwyMiBA
QCBlbmQKIGNsYXNzIFJlZ2lzdGVySUQKICAgICBkZWYgYXJtT3BlcmFuZAogICAgICAgICBjYXNl
IG5hbWUKLSAgICAgICAgd2hlbiAidDAiLCAiYTAiLCAicjAiCisgICAgICAgIHdoZW4gInQwIiwg
ImEwIiwgInIwIiwgIndhMCIKICAgICAgICAgICAgICJyMCIKLSAgICAgICAgd2hlbiAidDEiLCAi
YTEiLCAicjEiCisgICAgICAgIHdoZW4gInQxIiwgImExIiwgInIxIiwgIndhMSIKICAgICAgICAg
ICAgICJyMSIKLSAgICAgICAgd2hlbiAidDIiLCAiYTIiCisgICAgICAgIHdoZW4gInQyIiwgImEy
IiwgIndhMiIKICAgICAgICAgICAgICJyMiIKLSAgICAgICAgd2hlbiAiYTMiCi0gICAgICAgICAg
ICAicjMiCi0gICAgICAgIHdoZW4gInQzIgorICAgICAgICB3aGVuICJ0MyIsICJhMyIsICJ3YTMi
CiAgICAgICAgICAgICAicjMiCi0gICAgICAgIHdoZW4gInQ0IgorICAgICAgICB3aGVuICJ0NCIg
IyBMTEludCBQQwogICAgICAgICAgICAgInI4IgotICAgICAgICB3aGVuICJ0NSIKKyAgICAgICAg
d2hlbiAidDUiLCAid3MwIiAjIHdzMCBtdXN0IGJlIGEgbm9uLWFyZ3VtZW50L25vbi1yZXR1cm4g
R1BSCiAgICAgICAgICAgICAicjkiCisgICAgICAgIHdoZW4gInQ2IiwgIndzMSIgIyB3czEgbXVz
dCBiZSBhIG5vbi1hcmd1bWVudC9ub24tcmV0dXJuIEdQUgorICAgICAgICAgICAgInI1IgorICAg
ICAgICB3aGVuICJ0NyIKKyAgICAgICAgICAgICJyNCIKICAgICAgICAgd2hlbiAiY2ZyIgogICAg
ICAgICAgICAgInI3IgogICAgICAgICB3aGVuICJjc3IwIgpAQCAtMTI4LDE4ICsxMzUsMjIgQEAg
ZW5kCiBjbGFzcyBGUFJlZ2lzdGVySUQKICAgICBkZWYgYXJtT3BlcmFuZAogICAgICAgICBjYXNl
IG5hbWUKLSAgICAgICAgd2hlbiAiZnQwIiwgImZyIiwgImZhMCIKKyAgICAgICAgd2hlbiAiZnQw
IiwgImZyIiwgImZhMCIsICJ3ZmEwIgogICAgICAgICAgICAgImQwIgotICAgICAgICB3aGVuICJm
dDEiLCAiZmExIgorICAgICAgICB3aGVuICJmdDEiLCAiZmExIiwgIndmYTEiCiAgICAgICAgICAg
ICAiZDEiCi0gICAgICAgIHdoZW4gImZ0MiIKKyAgICAgICAgd2hlbiAiZnQyIiwgIndmYTIiCiAg
ICAgICAgICAgICAiZDIiCi0gICAgICAgIHdoZW4gImZ0MyIKKyAgICAgICAgd2hlbiAiZnQzIiwg
IndmYTMiCiAgICAgICAgICAgICAiZDMiCi0gICAgICAgIHdoZW4gImZ0NCIKKyAgICAgICAgd2hl
biAiZnQ0IiwgIndmYTQiCiAgICAgICAgICAgICAiZDQiCi0gICAgICAgIHdoZW4gImZ0NSIKKyAg
ICAgICAgd2hlbiAiZnQ1IiwgIndmYTUiCiAgICAgICAgICAgICAiZDUiCisgICAgICAgIHdoZW4g
ImZ0NiIsICJ3ZmE2IgorICAgICAgICAgICAgImQ2IgorICAgICAgICB3aGVuICJmdDciLCAid2Zh
NyIKKyAgICAgICAgICAgICJkNyIKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmFpc2UgIkJh
ZCByZWdpc3RlciAje25hbWV9IGZvciBBUk0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKICAgICAg
ICAgZW5kCkBAIC0xNTYsNyArMTY3LDExIEBAIGVuZAogY2xhc3MgQWRkcmVzcwogICAgIGRlZiBh
cm1PcGVyYW5kCiAgICAgICAgIHJhaXNlICJCYWQgb2Zmc2V0IGF0ICN7Y29kZU9yaWdpblN0cmlu
Z30iIGlmIG9mZnNldC52YWx1ZSA8IC0weGZmIG9yIG9mZnNldC52YWx1ZSA+IDB4ZmZmCi0gICAg
ICAgICJbI3tiYXNlLmFybU9wZXJhbmR9LCBcIyN7b2Zmc2V0LnZhbHVlfV0iCisgICAgICAgIGlm
IG9mZnNldC52YWx1ZSA9PSAwCisgICAgICAgICAgIlsje2Jhc2UuYXJtT3BlcmFuZH1dIgorICAg
ICAgICBlbHNlCisgICAgICAgICAgIlsje2Jhc2UuYXJtT3BlcmFuZH0sIFwjI3tvZmZzZXQudmFs
dWV9XSIKKyAgICAgICAgZW5kCiAgICAgZW5kCiBlbmQKIApAQCAtMjk5LDE2ICszMTQsMjUgQEAg
Y2xhc3MgU2VxdWVuY2UKICAgICAgICAgcmVzdWx0ID0gYXJtTG93ZXJMYWJlbFJlZmVyZW5jZXMo
cmVzdWx0KQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXMocmVz
dWx0KSB7CiAgICAgICAgICAgICB8IG5vZGUsIGFkZHJlc3MgfAotICAgICAgICAgICAgaWYgYWRk
cmVzcy5pc19hPyBCYXNlSW5kZXgKLSAgICAgICAgICAgICAgICBhZGRyZXNzLm9mZnNldC52YWx1
ZSA9PSAwCi0gICAgICAgICAgICBlbHNpZiBhZGRyZXNzLmlzX2E/IEFkZHJlc3MKLSAgICAgICAg
ICAgICAgICAoLTB4ZmYuLjB4ZmZmKS5pbmNsdWRlPyBhZGRyZXNzLm9mZnNldC52YWx1ZQorICAg
ICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAibG9hZDJpYSIsICJz
dG9yZTJpYSIKKyAgICAgICAgICAgICAgICBpZiBhZGRyZXNzLmlzX2E/IEFkZHJlc3MKKyAgICAg
ICAgICAgICAgICAgICAgKGFkZHJlc3Mub2Zmc2V0LnZhbHVlICUgNCA9PSAwKSAmJiAoKC0xMDIz
Li4xMDIzKS5pbmNsdWRlPyBhZGRyZXNzLm9mZnNldC52YWx1ZSkKKyAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgIGZhbHNlCisgICAgICAgICAgICAgICAgZW5kCiAgICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZmFsc2UKKyAgICAgICAgICAgICAgICBpZiBh
ZGRyZXNzLmlzX2E/IEJhc2VJbmRleAorICAgICAgICAgICAgICAgICAgICBhZGRyZXNzLm9mZnNl
dC52YWx1ZSA9PSAwICYmIG5vZGUub3Bjb2RlCisgICAgICAgICAgICAgICAgZWxzaWYgYWRkcmVz
cy5pc19hPyBBZGRyZXNzCisgICAgICAgICAgICAgICAgICAgICgtMHhmZi4uMHhmZmYpLmluY2x1
ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVlCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICBmYWxzZQorICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgZW5kCiAg
ICAgICAgIH0KICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzRG91
YmxlKHJlc3VsdCkKLSAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkSW1tZWRpYXRl
cyhyZXN1bHQsIFsic3RvcmViIiwgInN0b3JlaCIsICJzdG9yZWkiLCAic3RvcmVwIiwgInN0b3Jl
cSJdKQorICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKHJlc3Vs
dCwgWyJzdG9yZWIiLCAic3RvcmVoIiwgInN0b3JlaSIsICJzdG9yZXAiLCAic3RvcmVxIiwgInN0
b3JlMmlhIl0pCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEltbWVkaWF0ZXMo
cmVzdWx0LCAwLi4weGZmLCAwLi4weDBmZikKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlz
cGxhY2VkQWRkcmVzc2VzKHJlc3VsdCkKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyUmVnaXN0
ZXJSZXVzZShyZXN1bHQpCkBAIC0zMjcsNiArMzUxLDEwIEBAIGRlZiBhcm1GbGlwcGVkT3BlcmFu
ZHMob3BlcmFuZHMpCiAgICAgYXJtT3BlcmFuZHMoW29wZXJhbmRzWy0xXV0gKyBvcGVyYW5kc1sw
Li4tMl0pCiBlbmQKIAorZGVmIGFybUZsaXBwZWRPcGVyYW5kc1BhaXIob3BlcmFuZHMpCisgICAg
YXJtT3BlcmFuZHMoW29wZXJhbmRzWy0yXSwgb3BlcmFuZHNbLTFdXSArIG9wZXJhbmRzWzAuLi0z
XSkKK2VuZAorCiBkZWYgZW1pdEFybUNvbXBhY3Qob3Bjb2RlMiwgb3Bjb2RlMywgb3BlcmFuZHMp
CiAgICAgaWYgb3BlcmFuZHMuc2l6ZSA9PSAzCiAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGUz
fSAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgpAQCAtMzU2LDYgKzM4NCwxMiBAQCBk
ZWYgZW1pdEFybURvdWJsZUJyYW5jaChicmFuY2hPcGNvZGUsIG9wZXJhbmRzKQogICAgICRhc20u
cHV0cyAiI3ticmFuY2hPcGNvZGV9ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgogZW5kCiAKK2Rl
ZiBlbWl0QXJtU2luZ2xlQnJhbmNoKGJyYW5jaE9wY29kZSwgb3BlcmFuZHMpCisgICAgJGFzbS5w
dXRzICJ2Y21wZS5mMzIgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFy
bVNpbmdsZX0iCisgICAgJGFzbS5wdXRzICJ2bXJzIGFwc3JfbnpjdiwgZnBzY3IiCisgICAgJGFz
bS5wdXRzICIje2JyYW5jaE9wY29kZX0gI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCitlbmQKKwog
ZGVmIGVtaXRBcm1UZXN0KG9wZXJhbmRzKQogICAgIHZhbHVlID0gb3BlcmFuZHNbMF0KICAgICBj
YXNlIG9wZXJhbmRzLnNpemUKQEAgLTM3Niw3ICs0MTAsMTUgQEAgZW5kCiAKIGRlZiBlbWl0QXJt
RG91YmxlQ29tcGFyZShvcGVyYW5kcywgY29kZSkKICAgICAkYXNtLnB1dHMgIm1vdiAje29wZXJh
bmRzWzJdLmFybU9wZXJhbmR9LCBcIzAiCi0gICAgJGFzbS5wdXRzICJ2Y21wZS5mNjQgI3thcm1P
cGVyYW5kcyhvcGVyYW5kc1swLi4xXSl9IgorICAgICRhc20ucHV0cyAidmNtcC5mNjQgI3thcm1P
cGVyYW5kcyhvcGVyYW5kc1swLi4xXSl9IgorICAgICRhc20ucHV0cyAidm1ycyBBUFNSX256Y3Ys
IEZQU0NSIgorICAgICRhc20ucHV0cyAiaXQgI3tjb2RlfSIKKyAgICAkYXNtLnB1dHMgIm1vdiN7
Y29kZX0gI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgXCMxIgorZW5kCisKK2RlZiBlbWl0QXJt
RmxvYXRDb21wYXJlKG9wZXJhbmRzLCBjb2RlKQorICAgICRhc20ucHV0cyAibW92ICN7b3BlcmFu
ZHNbMl0uYXJtT3BlcmFuZH0sIFwjMCIKKyAgICAkYXNtLnB1dHMgInZjbXAuZjMyICN7b3BlcmFu
ZHNbMF0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IgogICAgICRhc20ucHV0
cyAidm1ycyBBUFNSX256Y3YsIEZQU0NSIgogICAgICRhc20ucHV0cyAiaXQgI3tjb2RlfSIKICAg
ICAkYXNtLnB1dHMgIm1vdiN7Y29kZX0gI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgXCMxIgpA
QCAtMzk2LDYgKzQzOCwxOSBAQCBkZWYgZW1pdEFybVRlc3RTZXQob3BlcmFuZHMsIGNvZGUpCiAg
ICAgJGFzbS5wdXRzICJtb3Yje2NvZGV9ICN7b3BlcmFuZHNbLTFdLmFybU9wZXJhbmR9LCBcIzEi
CiBlbmQKIAorZGVmIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sIHRleHQpCisgICAgcmV0dXJu
IEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAiZW1pdCIsIFtTdHJpbmdMaXRlcmFsLm5ldyhj
b2RlT3JpZ2luLCAiXCIje3RleHR9XCIiKV0pCitlbmQKKworZGVmIGVtaXRBcm1UcnVuY2F0ZUZs
b2F0KGNvZGVPcmlnaW4sIHRvLCBmcm9tLCBvcGVyYW5kcykKKyAgICB0bXAgPSBBUk1fRVhUUkFf
RlBSU1stMV0KKyAgICBzcmMgPSBmcm9tID09ICJmMzIiID8gb3BlcmFuZHNbMF0uYXJtU2luZ2xl
IDogb3BlcmFuZHNbMF0uYXJtT3BlcmFuZAorICAgIFNlcXVlbmNlLm5ldyhjb2RlT3JpZ2luLCBb
CisgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICJ2Y3Z0LiN7dG99LiN7ZnJvbX0g
I3t0bXAuYXJtU2luZ2xlfSwgI3tzcmN9IiksCisgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVP
cmlnaW4sICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sICN7dG1wLmFybVNpbmdsZX0i
KQorICAgIF0pLmxvd2VyKCRhY3RpdmVCYWNrZW5kKQorZW5kCisKIGNsYXNzIEluc3RydWN0aW9u
CiAgICAgZGVmIGxvd2VyQVJNdjcKICAgICAgICAgcmFpc2UgdW5sZXNzICRhY3RpdmVCYWNrZW5k
ID09ICJBUk12NyIKQEAgLTQzMyw2ICs0ODgsMTAgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAg
ICAgICAgICAgICAgICAgJGFzbS5wdXRzICJhZGQje3N1ZmZpeH0gI3thcm1GbGlwcGVkT3BlcmFu
ZHMob3BlcmFuZHMpfSIKICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGVuZAorICAg
ICAgICB3aGVuICJhZGNpIgorICAgICAgICAgICAgZW1pdEFybSgiYWRjIiwgb3BlcmFuZHMpCisg
ICAgICAgIHdoZW4gImFic2QiCisgICAgICAgICAgJGFzbS5wdXRzICJ2YWJzLmY2NCAje2FybUZs
aXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJhbmRpIiwgImFuZHAiCiAg
ICAgICAgICAgICBlbWl0QXJtQ29tcGFjdCgiYW5kcyIsICJhbmQiLCBvcGVyYW5kcykKICAgICAg
ICAgd2hlbiAib3JpIiwgIm9ycCIsICJvcmgiCkBAIC00NTEsMTQgKzUxMCwzNCBAQCBjbGFzcyBJ
bnN0cnVjdGlvbgogICAgICAgICAgICAgZW1pdEFybSgibXVsIiwgb3BlcmFuZHMpCiAgICAgICAg
IHdoZW4gInN1YmkiLCAic3VicCIsICJzdWJpcyIKICAgICAgICAgICAgIGVtaXRBcm1Db21wYWN0
KCJzdWJzIiwgInN1YnMiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAic2JjaSIKKyAgICAgICAg
ICAgIGVtaXRBcm0oInNiYyIsIG9wZXJhbmRzKQogICAgICAgICB3aGVuICJuZWdpIiwgIm5lZ3Ai
CiAgICAgICAgICAgICAkYXNtLnB1dHMgInJzYnMgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSwg
I3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSwgXCMwIgogICAgICAgICB3aGVuICJub3RpIgogICAg
ICAgICAgICAgJGFzbS5wdXRzICJtdm5zICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7b3Bl
cmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAgIHdoZW4gImxyb3RhdGVpIgorICAgICAgICAg
ICAgdG1wID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgU2VxdWVuY2Uu
bmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9y
aWdpbiwgIm1vdmUiLCBbb3BlcmFuZHNbMF0sIHRtcF0pLAorICAgICAgICAgICAgICAgIEluc3Ry
dWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAibmVnaSIsIFt0bXBdKSwKKyAgICAgICAgICAgICAgICBJ
bnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgInJyb3RhdGVpIiwgW3RtcCwgb3BlcmFuZHNbMV1d
KSwKKyAgICAgICAgICAgIF0pLmxvd2VyKCRhY3RpdmVCYWNrZW5kKQorICAgICAgICB3aGVuICJy
cm90YXRlaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAicm9yICN7YXJtRmxpcHBlZE9wZXJhbmRz
KG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInR6Y250aSIKKyAgICAgICAgICAgICRhc20ucHV0
cyAicmJpdCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICAgICAgJGFz
bS5wdXRzICJjbHogI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1P
cGVyYW5kfSIKKyAgICAgICAgd2hlbiAibHpjbnRpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJj
bHogI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAibG9hZGki
LCAibG9hZGlzIiwgImxvYWRwIgogICAgICAgICAgICAgJGFzbS5wdXRzICJsZHIgI3thcm1GbGlw
cGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAic3RvcmVpIiwgInN0b3JlcCIK
ICAgICAgICAgICAgICRhc20ucHV0cyAic3RyICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAg
ICAgICAgd2hlbiAibG9hZDJpYSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRyZCAje2FybUZs
aXBwZWRPcGVyYW5kc1BhaXIob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmUyaWEiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgInN0cmQgI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgogICAg
ICAgICB3aGVuICJsb2FkYiIKICAgICAgICAgICAgICRhc20ucHV0cyAibGRyYiAje2FybUZsaXBw
ZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJsb2FkYnNpIgpAQCAtNDcxLDIw
ICs1NTAsMTEwIEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICAkYXNtLnB1dHMgImxk
cnNoLncgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAic3Rv
cmVoIgogICAgICAgICAgICAgJGFzbS5wdXRzICJzdHJoICN7YXJtT3BlcmFuZHMob3BlcmFuZHMp
fSIKKyAgICAgICAgd2hlbiAibG9hZGxpbmtiIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsZHJl
eGIgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGxp
bmtoIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsZHJleGggI3thcm1GbGlwcGVkT3BlcmFuZHMo
b3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGxpbmtpIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJsZHJleCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVu
ICJsb2FkbGluazJpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsZHJleGQgI3thcm1GbGlwcGVk
T3BlcmFuZHNQYWlyKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN0b3JlY29uZGIiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgInN0cmV4YiAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAg
ICAgIHdoZW4gInN0b3JlY29uZGgiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN0cmV4aCAje2Fy
bU9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN0b3JlY29uZGkiCisgICAgICAg
ICAgICAkYXNtLnB1dHMgInN0cmV4ICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAg
d2hlbiAic3RvcmVjb25kMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN0cmV4ZCAje2FybU9w
ZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gImxvYWRkIgogICAgICAgICAgICAgJGFz
bS5wdXRzICJ2bGRyLjY0ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAg
IHdoZW4gInN0b3JlZCIKICAgICAgICAgICAgICRhc20ucHV0cyAidnN0ci42NCAje2FybU9wZXJh
bmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRmIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJ2bGRyLjMyICN7b3BlcmFuZHNbLTFdLmFybVNpbmdsZX0sICN7YXJtT3BlcmFuZHMob3Bl
cmFuZHNbMC4uLTJdKX0iCisgICAgICAgIHdoZW4gInN0b3JlZiIKKyAgICAgICAgICAgICRhc20u
cHV0cyAidnN0ci4zMiAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0sICN7YXJtT3BlcmFuZHMob3Bl
cmFuZHNbMS4uLTFdKX0iCisgICAgICAgIHdoZW4gImFkZGYiCisgICAgICAgICAgICAkYXNtLnB1
dHMgInZhZGQuZjMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5hcm1T
aW5nbGV9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gInN1YmYiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgInZzdWIuZjMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwg
I3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCisgICAg
ICAgIHdoZW4gIm11bGYiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZtdWwuZjMyICN7b3BlcmFu
ZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBd
LmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gImRpdmYiCisgICAgICAgICAgICAkYXNtLnB1dHMg
InZkaXYuZjMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5n
bGV9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gInNxcnRmIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJ2c3FydC5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAj
e29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gImFic2YiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgInZhYnMuZjMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5k
c1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJuZWdmIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJ2bmVnLmYzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJt
U2luZ2xlfSIKKyAgICAgICAgd2hlbiAiYmZsdCIKKyAgICAgICAgICAgIGVtaXRBcm1TaW5nbGVC
cmFuY2goImJtaSIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZmx0dW4iCisgICAgICAgICAg
ICBlbWl0QXJtU2luZ2xlQnJhbmNoKCJibHQiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmZs
dGVxdW4iCisgICAgICAgICAgICBlbWl0QXJtU2luZ2xlQnJhbmNoKCJibGUiLCBvcGVyYW5kcykK
KyAgICAgICAgd2hlbiAiYmZlcSIKKyAgICAgICAgICAgIGVtaXRBcm1TaW5nbGVCcmFuY2goImJl
cSIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZmd0IgorICAgICAgICAgICAgZW1pdEFybVNp
bmdsZUJyYW5jaCgiYmd0Iiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJmZ3RlcXVuIgorICAg
ICAgICAgICAgZW1pdEFybVNpbmdsZUJyYW5jaCgiYnBsIiwgb3BlcmFuZHMpCisgICAgICAgIHdo
ZW4gImJkbHR1biIKKyAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVCcmFuY2goImJsdCIsIG9wZXJh
bmRzKQogICAgICAgICB3aGVuICJhZGRkIgogICAgICAgICAgICAgZW1pdEFybSgidmFkZC5mNjQi
LCBvcGVyYW5kcykKLSAgICAgICAgd2hlbiAiZGl2ZCIKLSAgICAgICAgICAgIGVtaXRBcm0oInZk
aXYuZjY0Iiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gInN1YmQiCiAgICAgICAgICAgICBlbWl0
QXJtKCJ2c3ViLmY2NCIsIG9wZXJhbmRzKQogICAgICAgICB3aGVuICJtdWxkIgogICAgICAgICAg
ICAgZW1pdEFybSgidm11bC5mNjQiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiZGl2ZCIKKyAg
ICAgICAgICAgIGVtaXRBcm0oInZkaXYuZjY0Iiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gInNx
cnRkIgogICAgICAgICAgICAgJGFzbS5wdXRzICJ2c3FydC5mNjQgI3thcm1GbGlwcGVkT3BlcmFu
ZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibmVnZCIKKyAgICAgICAgICAgICRhc20ucHV0
cyAidm5lZy5mNjQgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hl
biAib3JmIgorICAgICAgICAgICAgKHRtcExocywgdG1wUmhzKSA9IEFSTV9FWFRSQV9HUFJTWy0y
Li4tMV0KKyAgICAgICAgICAgIFNlcXVlbmNlLm5ldyhjb2RlT3JpZ2luLCBbCisgICAgICAgICAg
ICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcExocy5hcm1PcGVyYW5k
fSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IiksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0
aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcFJocy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sx
XS5hcm1TaW5nbGV9IiksCisgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2lu
LCAib3JpIiwgW3RtcExocywgdG1wUmhzXSksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9u
KGNvZGVPcmlnaW4sICAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7dG1wUmhzLmFy
bU9wZXJhbmR9IikKKyAgICAgICAgICAgIF0pLmxvd2VyKCRhY3RpdmVCYWNrZW5kKQorICAgICAg
ICB3aGVuICJhbmRmIgorICAgICAgICAgICAgKHRtcExocywgdG1wUmhzKSA9IEFSTV9FWFRSQV9H
UFJTWy0yLi4tMV0KKyAgICAgICAgICAgIFNlcXVlbmNlLm5ldyhjb2RlT3JpZ2luLCBbCisgICAg
ICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcExocy5hcm1P
cGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IiksCisgICAgICAgICAgICAgIHJhd0lu
c3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcFJocy5hcm1PcGVyYW5kfSwgI3tvcGVy
YW5kc1sxXS5hcm1TaW5nbGV9IiksCisgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2Rl
T3JpZ2luLCAiYW5kaSIsIFt0bXBMaHMsIHRtcFJoc10pLAorICAgICAgICAgICAgICByYXdJbnN0
cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje3Rt
cFJocy5hcm1PcGVyYW5kfSIpCisgICAgICAgICAgICBdKS5sb3dlcigkYWN0aXZlQmFja2VuZCkK
KyAgICAgICAgd2hlbiAib3JkIgorICAgICAgICAgICAgKHRtcExocywgdG1wUmhzKSA9IEFSTV9F
WFRSQV9HUFJTWy0yLi4tMV0KKyAgICAgICAgICAgIFNlcXVlbmNlLm5ldyhjb2RlT3JpZ2luLCBb
CisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcExo
cy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IiksCisgICAgICAgICAgICAg
IHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcFJocy5hcm1PcGVyYW5kfSwg
I3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IiksCisgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5l
dyhjb2RlT3JpZ2luLCAib3JpIiwgW3RtcExocywgdG1wUmhzXSksCisgICAgICAgICAgICAgIHJh
d0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0s
ICN7dG1wUmhzLmFybU9wZXJhbmR9IiksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNv
ZGVPcmlnaW4sICAidm1vdiAje3RtcExocy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1T
aW5nbGVIaX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2
bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZUhpfSIpLAor
ICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgIm9yaSIsIFt0bXBMaHMs
IHRtcFJoc10pLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZt
b3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGVIaX0sICN7dG1wUmhzLmFybU9wZXJhbmR9IikKKyAg
ICAgICAgICAgIF0pLmxvd2VyKCRhY3RpdmVCYWNrZW5kKQorICAgICAgICB3aGVuICJhbmRkIgor
ICAgICAgICAgICAgKHRtcExocywgdG1wUmhzKSA9IEFSTV9FWFRSQV9HUFJTWy0yLi4tMV0KKyAg
ICAgICAgICAgIFNlcXVlbmNlLm5ldyhjb2RlT3JpZ2luLCBbCisgICAgICAgICAgICAgIHJhd0lu
c3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcExocy5hcm1PcGVyYW5kfSwgI3tvcGVy
YW5kc1swXS5hcm1TaW5nbGV9IiksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVP
cmlnaW4sICAidm1vdiAje3RtcFJocy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5n
bGV9IiksCisgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAiYW5kaSIs
IFt0bXBMaHMsIHRtcFJoc10pLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3Jp
Z2luLCAgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje3RtcFJocy5hcm1PcGVyYW5k
fSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0
bXBMaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlSGl9IiksCisgICAgICAg
ICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcFJocy5hcm1PcGVy
YW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGVIaX0iKSwKKyAgICAgICAgICAgICAgSW5zdHJ1
Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJhbmRpIiwgW3RtcExocywgdG1wUmhzXSksCisgICAgICAg
ICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje29wZXJhbmRzWzFdLmFy
bVNpbmdsZUhpfSwgI3t0bXBSaHMuYXJtT3BlcmFuZH0iKQorICAgICAgICAgICAgXSkubG93ZXIo
JGFjdGl2ZUJhY2tlbmQpCiAgICAgICAgIHdoZW4gImNpMmRzIgogICAgICAgICAgICAgJGFzbS5w
dXRzICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVy
YW5kfSIKICAgICAgICAgICAgICRhc20ucHV0cyAidmN2dC5mNjQuczMyICN7b3BlcmFuZHNbMV0u
YXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKQEAgLTUzNyw2ICs3MDYsOCBA
QCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICB3aGVuICJtb3ZkeiIKICAgICAgICAgICAgICMg
RklYTUU6IGVpdGhlciBzdXBwb3J0IHRoaXMgb3IgcmVtb3ZlIGl0LgogICAgICAgICAgICAgcmFp
c2UgIkFSTSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgb3Bjb2RlIHlldCwgI3tjb2RlT3JpZ2lufSIK
KyAgICAgICAgd2hlbiAibW92ZWQiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3YuZjY0ICN7
YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gInBvcCIKICAgICAg
ICAgICAgIG9wZXJhbmRzLmVhY2ggewogICAgICAgICAgICAgICAgIHwgb3AgfApAQCAtNTUzLDkg
KzcyNCwxNyBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgICAgICRhc20ucHV0cyAibW92ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAg
ICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAibW92ZWlpIgorICAgICAgICAgICAgcmFpc2Ug
IkZpcnN0IG9wZXJhbmQgb2YgbW92ZWlpIG11c3QgYmUgYW4gaW1tZWRpYXRlIiB1bmxlc3Mgb3Bl
cmFuZHNbMF0uaW1tZWRpYXRlPworICAgICAgICAgICAgYXJtTW92ZUltbWVkaWF0ZShvcGVyYW5k
c1swXS52YWx1ZSA+PiAzMiwgb3BlcmFuZHNbMV0pCisgICAgICAgICAgICBhcm1Nb3ZlSW1tZWRp
YXRlKG9wZXJhbmRzWzBdLnZhbHVlICYgMHhmZmZmZmZmZiwgb3BlcmFuZHNbMl0pCiAgICAgICAg
IHdoZW4gIm12bGJsIgogICAgICAgICAgICAgICAgICRhc20ucHV0cyAibW92dyAje29wZXJhbmRz
WzFdLmFybU9wZXJhbmR9LCBcIzpsb3dlcjE2OiN7b3BlcmFuZHNbMF0udmFsdWV9IgogICAgICAg
ICAgICAgICAgICRhc20ucHV0cyAibW92dCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCBcIzp1
cHBlcjE2OiN7b3BlcmFuZHNbMF0udmFsdWV9IgorICAgICAgICB3aGVuICJzeGIyaSIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAic3h0YiAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9Igor
ICAgICAgICB3aGVuICJzeGgyaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3h0aCAje2FybUZs
aXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJub3AiCiAgICAgICAgICAg
ICAkYXNtLnB1dHMgIm5vcCIKICAgICAgICAgd2hlbiAiYmllcSIsICJicGVxIiwgImJiZXEiCkBA
IC02NDksMTQgKzgyOCw0NiBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgZW1pdEFy
bUNvbXBhcmUob3BlcmFuZHMsICJsdCIpCiAgICAgICAgIHdoZW4gImNpbHRlcSIsICJjcGx0ZXEi
LCAiY2JsdGVxIgogICAgICAgICAgICAgZW1pdEFybUNvbXBhcmUob3BlcmFuZHMsICJsZSIpCi0g
ICAgICAgIHdoZW4gImNkZ3QiCi0gICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVy
YW5kcywgImd0IikKLSAgICAgICAgd2hlbiAiY2RndGVxIgotICAgICAgICAgICAgZW1pdEFybURv
dWJsZUNvbXBhcmUob3BlcmFuZHMsICJnZSIpCisgICAgICAgIHdoZW4gImNmZXEiCisgICAgICAg
ICAgICBlbWl0QXJtRmxvYXRDb21wYXJlKG9wZXJhbmRzLCAiZXEiKQorICAgICAgICB3aGVuICJj
Zm5lcXVuIgorICAgICAgICAgICAgZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywgIm5lIikK
KyAgICAgICAgd2hlbiAiY2ZsdCIKKyAgICAgICAgICAgIGVtaXRBcm1GbG9hdENvbXBhcmUob3Bl
cmFuZHMsICJtaSIpCisgICAgICAgIHdoZW4gImNmbHRlcSIKKyAgICAgICAgICAgIGVtaXRBcm1G
bG9hdENvbXBhcmUob3BlcmFuZHMsICJscyIpCisgICAgICAgIHdoZW4gImNmZ3QiCisgICAgICAg
ICAgICBlbWl0QXJtRmxvYXRDb21wYXJlKG9wZXJhbmRzLCAiZ3QiKQorICAgICAgICB3aGVuICJj
Zmd0ZXEiCisgICAgICAgICAgICBlbWl0QXJtRmxvYXRDb21wYXJlKG9wZXJhbmRzLCAiZ2UiKQor
ICAgICAgICB3aGVuICJjZGVxIgorICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3Bl
cmFuZHMsICJlcSIpCisgICAgICAgIHdoZW4gImNkbmVxdW4iCisgICAgICAgICAgICBlbWl0QXJt
RG91YmxlQ29tcGFyZShvcGVyYW5kcywgIm5lIikKICAgICAgICAgd2hlbiAiY2RsdCIKICAgICAg
ICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAibWkiKQogICAgICAgICB3aGVu
ICJjZGx0ZXEiCiAgICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywgImxz
IikKKyAgICAgICAgd2hlbiAiY2RndCIKKyAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJl
KG9wZXJhbmRzLCAiZ3QiKQorICAgICAgICB3aGVuICJjZGd0ZXEiCisgICAgICAgICAgICBlbWl0
QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywgImdlIikKKyAgICAgICAgd2hlbiAiY2YyZCIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAidmN2dC5mNjQuZjMyICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAiY2QyZiIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAidmN2dC5mMzIuZjY0ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwg
I3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgd2hlbiAiY2kyZiIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNb
MF0uYXJtT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInZjdnQuZjMyLnUzMiAje29w
ZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKKyAgICAgICAg
d2hlbiAiY2kyZnMiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5h
cm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5w
dXRzICJ2Y3Z0LmYzMi5zMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFd
LmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gImNpMmQiCisgICAgICAgICAgICAkYXNtLnB1dHMg
InZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmY2NC51MzIgI3tvcGVyYW5kc1sxXS5hcm1P
cGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJjaTJkcyIK
KyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7
b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInZjdnQuZjY0
LnMzMiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0i
CiAgICAgICAgIHdoZW4gInRpcyIsICJ0YnMiLCAidHBzIgogICAgICAgICAgICAgZW1pdEFybVRl
c3RTZXQob3BlcmFuZHMsICJtaSIpCiAgICAgICAgIHdoZW4gInRpeiIsICJ0YnoiLCAidHB6IgpA
QCAtNjY3LDEwICs4NzgsMjIgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgICRhc20u
cHV0cyAibGRyICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sIFtzcCwgXCMje29wZXJhbmRzWzBd
LnZhbHVlICogNH1dIgogICAgICAgICB3aGVuICJwb2tlIgogICAgICAgICAgICAgJGFzbS5wdXRz
ICJzdHIgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgW3NwLCBcIyN7b3BlcmFuZHNbMF0udmFs
dWUgKiA0fV0iCisgICAgICAgIHdoZW4gImZpMmYiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZt
b3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9Igor
ICAgICAgICB3aGVuICJmZjJpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFu
ZHNbMV0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKICAgICAgICAgd2hl
biAiZmlpMmQiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1syXS5hcm1P
cGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVy
YW5kfSIKICAgICAgICAgd2hlbiAiZmQyaWkiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3Yg
I3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgI3tv
cGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgd2hlbiAidHJ1bmNhdGVmMmkiCisgICAg
ICAgICAgICBlbWl0QXJtVHJ1bmNhdGVGbG9hdChjb2RlT3JpZ2luLCAidTMyIiwgImYzMiIsIG9w
ZXJhbmRzKQorICAgICAgICB3aGVuICJ0cnVuY2F0ZWYyaXMiCisgICAgICAgICAgICBlbWl0QXJt
VHJ1bmNhdGVGbG9hdChjb2RlT3JpZ2luLCAiczMyIiwgImYzMiIsIG9wZXJhbmRzKQorICAgICAg
ICB3aGVuICJ0cnVuY2F0ZWQyaSIKKyAgICAgICAgICAgIGVtaXRBcm1UcnVuY2F0ZUZsb2F0KGNv
ZGVPcmlnaW4sICJ1MzIiLCAiZjY0Iiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInRydW5jYXRl
ZDJpcyIKKyAgICAgICAgICAgIGVtaXRBcm1UcnVuY2F0ZUZsb2F0KGNvZGVPcmlnaW4sICJzMzIi
LCAiZjY0Iiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gImJvIgogICAgICAgICAgICAgJGFzbS5w
dXRzICJidnMgI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCiAgICAgICAgIHdoZW4gImJzIgpAQCAt
Njc5LDEzICs5MDIsMTcgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgICRhc20ucHV0
cyAiYmVxICN7b3BlcmFuZHNbMF0uYXNtTGFiZWx9IgogICAgICAgICB3aGVuICJibnoiCiAgICAg
ICAgICAgICAkYXNtLnB1dHMgImJuZSAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKKyAgICAgICAg
d2hlbiAiYmNzIgorICAgICAgICAgICAgJGFzbS5wdXRzICJiY3MgI3tvcGVyYW5kc1swXS5hc21M
YWJlbH0iCiAgICAgICAgIHdoZW4gImxlYWkiLCAibGVhcCIKICAgICAgICAgICAgIG9wZXJhbmRz
WzBdLmFybUVtaXRMZWEob3BlcmFuZHNbMV0pCi0gICAgICAgIHdoZW4gInNtdWxsaSIKKyAgICAg
ICAgd2hlbiAic211bGxpIiwgInVtdWxsaSIKICAgICAgICAgICAgIHJhaXNlICJXcm9uZyBudW1i
ZXIgb2YgYXJndW1lbnRzIHRvIHNtdWxsIGluICN7c2VsZi5pbnNwZWN0fSBhdCAje2NvZGVPcmln
aW5TdHJpbmd9IiB1bmxlc3Mgb3BlcmFuZHMubGVuZ3RoID09IDQKLSAgICAgICAgICAgICRhc20u
cHV0cyAic211bGwgI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1szXS5hcm1P
cGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVy
YW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGVbMC4uLTJdfSAje29wZXJhbmRz
WzJdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzNdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBd
LmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9IgogICAgICAgICB3aGVuICJt
ZW1mZW5jZSIKICAgICAgICAgICAgICRhc20ucHV0cyAiZG1iIHN5IgorICAgICAgICB3aGVuICJm
ZW5jZSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiZG1iIGlzaCIKICAgICAgICAgd2hlbiAiY2xy
YnAiCiAgICAgICAgICAgICAkYXNtLnB1dHMgImJpYyAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9
LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9Igog
ICAgICAgICB3aGVuICJnbG9iYWxhZGRyIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCmluZGV4IDU0YjAyN2YzZGEwMS4uN2UyODBiN2Y3OGI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlv
bnMucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25z
LnJiCkBAIC01OSw2ICs1OSw3IEBAIE1BQ1JPX0lOU1RSVUNUSU9OUyA9CiAgICAgICJycm90YXRl
cSIsCiAgICAgICJzdWJpIiwKICAgICAgInhvcmkiLAorICAgICAibG9hZDJpYSIsCiAgICAgICJs
b2FkaSIsCiAgICAgICJsb2FkaXMiLAogICAgICAibG9hZGIiLApAQCAtNjcsNiArNjgsNyBAQCBN
QUNST19JTlNUUlVDVElPTlMgPQogICAgICAibG9hZGgiLAogICAgICAibG9hZGhzaSIsCiAgICAg
ICJsb2FkaHNxIiwKKyAgICAgInN0b3JlMmlhIiwKICAgICAgInN0b3JlaSIsCiAgICAgICJzdG9y
ZWgiLAogICAgICAic3RvcmViIiwKQEAgLTM3Nyw5ICszNzksMjEgQEAgWDg2X0lOU1RSVUNUSU9O
UyA9CiAKIEFSTV9JTlNUUlVDVElPTlMgPQogICAgIFsKKyAgICAgImFkY2kiLAorICAgICAiYmNz
IiwKICAgICAgImNscmJwIiwKICAgICAgIm12bGJsIiwKLSAgICAgImdsb2JhbGFkZHIiCisgICAg
ICJnbG9iYWxhZGRyIiwKKyAgICAgInNiY2kiLAorICAgICAibW92ZWlpIiwKKyAgICAgImxvYWRs
aW5rYiIsCisgICAgICJsb2FkbGlua2giLAorICAgICAibG9hZGxpbmtpIiwKKyAgICAgImxvYWRs
aW5rMmkiLAorICAgICAic3RvcmVjb25kYiIsCisgICAgICJzdG9yZWNvbmRoIiwKKyAgICAgInN0
b3JlY29uZGkiLAorICAgICAic3RvcmVjb25kMmkiLAogICAgIF0KIAogQVJNNjRfSU5TVFJVQ1RJ
T05TID0KQEAgLTQzMSw2ICs0NDUsNyBAQCBBUk02NF9JTlNUUlVDVElPTlMgPQogUklTQ19JTlNU
UlVDVElPTlMgPQogICAgIFsKICAgICAgInNtdWxsaSIsICAjIE11bHRpcGx5IHR3byAzMi1iaXQg
d29yZHMgYW5kIHByb2R1Y2UgYSA2NC1iaXQgd29yZAorICAgICAidW11bGxpIiwgICMgTXVsdGlw
bHkgdHdvIDMyLWJpdCB3b3JkcyBhbmQgcHJvZHVjZSBhIDY0LWJpdCB3b3JkCiAgICAgICJhZGRp
cyIsICAgIyBBZGQgaW50ZWdlcnMgYW5kIHNldCBhIGZsYWcuCiAgICAgICJzdWJpcyIsICAgIyBT
YW1lLCBidXQgZm9yIHN1YnRyYWN0aW9uLgogICAgICAib3JpcyIsICAgICMgU2FtZSwgYnV0IGZv
ciBiaXR3aXNlIG9yLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20vcmVnaXN0ZXJzLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0
ZXJzLnJiCmluZGV4IDBkYzQ0YzIzZGZiMi4uNjdmNTI3MWE1Mzc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiCkBAIC01OCw3ICs1OCw4IEBAIEdQ
UlMgPQogICAgICAiY3NyNyIsCiAgICAgICJjc3I4IiwKICAgICAgImNzcjkiLAotICAgICAiY3Ny
MTAiCisgICAgICJjc3IxMCIsCisgICAgICJpbnZhbGlkR1BSIgogICAgIF0KIAogRlBSUyA9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYgppbmRleCAwZjA3MmU5ZmQxMWUu
LjM0NjQ1OTYyZjc0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20vcmlzYy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJi
CkBAIC0yNTksOCArMjU5LDEyIEBAIGRlZiByaXNjTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXNEb3Vi
bGUobGlzdCkKICAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKICAgICAgICAgICAgIHdoZW4g
ImxvYWRkIgogICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUu
Y29kZU9yaWdpbiwgImxvYWRkIiwgW25vZGUub3BlcmFuZHNbMF0ucmlzY0RvdWJsZUFkZHJlc3Mo
bmV3TGlzdCksIG5vZGUub3BlcmFuZHNbMV1dLCBub2RlLmFubm90YXRpb24pCisgICAgICAgICAg
ICB3aGVuICJsb2FkZiIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5l
dyhub2RlLmNvZGVPcmlnaW4sICJsb2FkZiIsIFtub2RlLm9wZXJhbmRzWzBdLnJpc2NEb3VibGVB
ZGRyZXNzKG5ld0xpc3QpLCBub2RlLm9wZXJhbmRzWzFdXSwgbm9kZS5hbm5vdGF0aW9uKQogICAg
ICAgICAgICAgd2hlbiAic3RvcmVkIgogICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInN0b3JlZCIsIFtub2RlLm9wZXJhbmRzWzBdLCBu
b2RlLm9wZXJhbmRzWzFdLnJpc2NEb3VibGVBZGRyZXNzKG5ld0xpc3QpXSwgbm9kZS5hbm5vdGF0
aW9uKQorICAgICAgICAgICAgd2hlbiAic3RvcmVmIgorICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInN0b3JlZiIsIFtub2RlLm9wZXJh
bmRzWzBdLCBub2RlLm9wZXJhbmRzWzFdLnJpc2NEb3VibGVBZGRyZXNzKG5ld0xpc3QpXSwgbm9k
ZS5hbm5vdGF0aW9uKQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgbm9kZQogICAgICAgICAgICAgZW5kCkBAIC0zNjksNyArMzczLDcgQEAgZGVmIHJpc2NMb3dl
ck1hbGZvcm1lZEltbWVkaWF0ZXMobGlzdCwgdmFsaWRJbW1lZGlhdGVzLCB2YWxpZExvZ2ljYWxJ
bW1lZGlhdGVzKQogICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCiAgICAgICAgICAg
ICBhbm5vdGF0aW9uID0gbm9kZS5hbm5vdGF0aW9uCiAgICAgICAgICAgICBjYXNlIG5vZGUub3Bj
b2RlCi0gICAgICAgICAgICB3aGVuICJtb3ZlIgorICAgICAgICAgICAgd2hlbiAibW92ZSIsICJt
b3ZlaWkiCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCiAgICAgICAgICAgICB3aGVu
ICJhZGRpIiwgImFkZHAiLCAiYWRkcSIsICJhZGRpcyIsICJzdWJpIiwgInN1YnAiLCAic3VicSIs
ICJzdWJpcyIKICAgICAgICAgICAgICAgICBpZiBub2RlLm9wZXJhbmRzWzBdLmlzX2E/IEltbWVk
aWF0ZSBhbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pT
VmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAppbmRl
eCAyOTQ5ZDA5MjVmYzAuLjE1ODQyYTYwNjBhMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ0pTVmFsdWUuaApAQCAtMTYyLDggKzE2Miw5IEBAIHB1YmxpYzoKICAgICBlbnVt
IHsgTnVsbFRhZyA9ICAgICAgICAgMHhmZmZmZmZmZCB9OwogICAgIGVudW0geyBVbmRlZmluZWRU
YWcgPSAgICAweGZmZmZmZmZjIH07CiAgICAgZW51bSB7IENlbGxUYWcgPSAgICAgICAgIDB4ZmZm
ZmZmZmIgfTsKLSAgICBlbnVtIHsgRW1wdHlWYWx1ZVRhZyA9ICAgMHhmZmZmZmZmYSB9OwotICAg
IGVudW0geyBEZWxldGVkVmFsdWVUYWcgPSAweGZmZmZmZmY5IH07CisgICAgZW51bSB7IFdhc21U
YWcgPSAgICAgICAgIDB4ZmZmZmZmZmEgfTsKKyAgICBlbnVtIHsgRW1wdHlWYWx1ZVRhZyA9ICAg
MHhmZmZmZmZmOSB9OworICAgIGVudW0geyBEZWxldGVkVmFsdWVUYWcgPSAweGZmZmZmZmY4IH07
CiAKICAgICBlbnVtIHsgTG93ZXN0VGFnID0gIERlbGV0ZWRWYWx1ZVRhZyB9OwogCkBAIC0xODEs
NiArMTgyLDkgQEAgcHVibGljOgogICAgIGVudW0gRW5jb2RlQXNCaWdJbnQzMlRhZyB7IEVuY29k
ZUFzQmlnSW50MzIgfTsKICNlbmRpZgogICAgIGVudW0gRW5jb2RlQXNEb3VibGVUYWcgeyBFbmNv
ZGVBc0RvdWJsZSB9OworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgVVNFKEpTVkFMVUUzMl82
NCkKKyAgICBlbnVtIEVuY29kZUFzVW5ib3hlZEZsb2F0VGFnIHsgRW5jb2RlQXNVbmJveGVkRmxv
YXQgfTsKKyNlbmRpZgogCiAgICAgSlNWYWx1ZSgpOwogICAgIEpTVmFsdWUoSlNOdWxsVGFnKTsK
QEAgLTE5Miw2ICsxOTYsOSBAQCBwdWJsaWM6CiAjaWYgVVNFKEJJR0lOVDMyKQogICAgIEpTVmFs
dWUoRW5jb2RlQXNCaWdJbnQzMlRhZywgaW50MzJfdCk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpICYmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgSlNWYWx1ZShFbmNvZGVBc1VuYm94
ZWRGbG9hdFRhZywgZmxvYXQpOworI2VuZGlmCiAKICAgICAvLyBOdW1iZXJzCiAgICAgSlNWYWx1
ZShFbmNvZGVBc0RvdWJsZVRhZywgZG91YmxlKTsKQEAgLTU5Myw2ICs2MDAsMTMgQEAgQUxXQVlT
X0lOTElORSBKU1ZhbHVlIGpzQmlnSW50MzIoaW50MzJfdCBpbnRWYWx1ZSkKIH0KICNlbmRpZgog
CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBVU0UoSlNWQUxVRTMyXzY0KQorQUxXQVlTX0lO
TElORSBKU1ZhbHVlIGpzVW5ib3hlZEZsb2F0KGZsb2F0IGYpCit7CisgICAgcmV0dXJuIEpTVmFs
dWUoSlNWYWx1ZTo6RW5jb2RlQXNVbmJveGVkRmxvYXQsIGYpOworfQorI2VuZGlmCisKIEFMV0FZ
U19JTkxJTkUgSlNWYWx1ZSBqc0RvdWJsZU51bWJlcihkb3VibGUgZCkKIHsKICAgICBBU1NFUlQo
SlNWYWx1ZShKU1ZhbHVlOjpFbmNvZGVBc0RvdWJsZSwgZCkuaXNOdW1iZXIoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAppbmRleCA3
OTI2NzYzY2Q1NjUuLjljNTJkYzk5NTJjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCkBAIC02MTksNiArNjE5LDEzIEBAIGlubGlu
ZSBKU1ZhbHVlOjpKU1ZhbHVlKEVuY29kZUFzQmlnSW50MzJUYWcsIGludDMyX3QgdmFsdWUpCiB9
CiAjZW5kaWYgLy8gVVNFKEJJR0lOVDMyKQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBV
U0UoSlNWQUxVRTMyXzY0KQoraW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoRW5jb2RlQXNVbmJveGVk
RmxvYXRUYWcsIGZsb2F0IHZhbHVlKQoreworICAgIHUuYXNCaXRzLnBheWxvYWQgPSBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4odmFsdWUpOworfQorI2VuZGlmCisKIGlubGluZSBpbnQ2NF90IHRyeUNv
bnZlcnRUb0ludDUyKGRvdWJsZSBudW1iZXIpCiB7CiAgICAgaWYgKG51bWJlciAhPSBudW1iZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNw
cAppbmRleCA5OGVkYjFlZGJlZmIuLmZmYWRmZTliYmQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCkBAIC04NDAsNiArODQwLDE1
IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0aW9uPgogICAgIHZvaWQg
Zm9yRWFjaExpdmVWYWx1ZShGdW5jdGlvbik7CiAKKyAgICBib29sIHVzZVNpZ25hbGluZ01lbW9y
eSgpIGNvbnN0CisgICAgeworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZ
KQorICAgICAgICByZXR1cm4gbV9tb2RlID09IE1lbW9yeU1vZGU6OlNpZ25hbGluZzsKKyNlbHNl
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgIH0KKwogICAgIEZ1bmN0aW9uUGFy
c2VyPEFpcklSR2VuZXJhdG9yPiogbV9wYXJzZXIgeyBudWxscHRyIH07CiAgICAgY29uc3QgTW9k
dWxlSW5mb3JtYXRpb24mIG1faW5mbzsKICAgICBjb25zdCBNZW1vcnlNb2RlIG1fbW9kZSB7IE1l
bW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nIH07CkBAIC05NTcsNyArOTY2LDcgQEAgQWlySVJHZW5l
cmF0b3I6OkFpcklSR2VuZXJhdG9yKGNvbnN0IE1vZHVsZUluZm9ybWF0aW9uJiBpbmZvLCBCMzo6
UHJvY2VkdXJlJiBwcm8KICAgICBpZiAoIUNvbnRleHQ6OnVzZUZhc3RUTFMoKSkKICAgICAgICAg
bV9jb2RlLnBpblJlZ2lzdGVyKG1fd2FzbUNvbnRleHRJbnN0YW5jZUdQUik7CiAKLSAgICBpZiAo
bW9kZSAhPSBNZW1vcnlNb2RlOjpTaWduYWxpbmcpIHsKKyAgICBpZiAobW9kZSA9PSBNZW1vcnlN
b2RlOjpCb3VuZHNDaGVja2luZykgewogICAgICAgICBtX2JvdW5kc0NoZWNraW5nU2l6ZUdQUiA9
IHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXI7CiAgICAgICAgIG1fY29kZS5w
aW5SZWdpc3RlcihtX2JvdW5kc0NoZWNraW5nU2l6ZUdQUik7CiAgICAgfQpAQCAtMTc5Miw2ICsx
ODAxLDcgQEAgaW5saW5lIEFpcklSR2VuZXJhdG9yOjpFeHByZXNzaW9uVHlwZSBBaXJJUkdlbmVy
YXRvcjo6ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIKICAgICAgICAgYnJlYWs7CiAgICAgfQog
CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgY2FzZSBNZW1v
cnlNb2RlOjpTaWduYWxpbmc6IHsKICAgICAgICAgLy8gV2UndmUgdmlydHVhbGx5IG1hcHBlZCA0
R2lCK3JlZHpvbmUgZm9yIHRoaXMgbWVtb3J5LiBPbmx5IHRoZSB1c2VyLWFsbG9jYXRlZCBwYWdl
cyBhcmUgYWRkcmVzc2FibGUsIGNvbnRpZ3VvdXNseSBpbiByYW5nZSBbMCwgY3VycmVudF0sCiAg
ICAgICAgIC8vIGFuZCBldmVyeXRoaW5nIGFib3ZlIGlzIG1hcHBlZCBQUk9UX05PTkUuIFdlIGRv
bid0IG5lZWQgdG8gcGVyZm9ybSBhbnkgZXhwbGljaXQgYm91bmRzIGNoZWNrIGluIHRoZSA0R2lC
IHJhbmdlIGJlY2F1c2UgV2ViQXNzZW1ibHkgcmVnaXN0ZXIKQEAgLTE4MTgsNiArMTgyOCw3IEBA
IGlubGluZSBBaXJJUkdlbmVyYXRvcjo6RXhwcmVzc2lvblR5cGUgQWlySVJHZW5lcmF0b3I6OmVt
aXRDaGVja0FuZFByZXBhcmVQb2ludGVyCiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAg
fQorI2VuZGlmCiAgICAgfQogCiAgICAgYXBwZW5kKEFkZDY0LCBUbXAobV9tZW1vcnlCYXNlR1BS
KSwgcmVzdWx0KTsKQEAgLTM2OTMsNyArMzcwNCw3IEBAIGF1dG8gQWlySVJHZW5lcmF0b3I6OmFk
ZENhbGwodWludDMyX3QgZnVuY3Rpb25JbmRleCwgY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUs
CiAgICAgICAgIGF1dG8qIHBhdGNocG9pbnQgPSBwYWlyLmZpcnN0OwogICAgICAgICBhdXRvIGV4
Y2VwdGlvbkhhbmRsZSA9IHBhaXIuc2Vjb25kOwogICAgICAgICAvLyBXZSBuZWVkIHRvIGNsb2Ji
ZXIgdGhlIHNpemUgcmVnaXN0ZXIgc2luY2UgdGhlIExMSW50IGFsd2F5cyBib3VuZHMgY2hlY2tz
Ci0gICAgICAgIGlmIChtX21vZGUgPT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nIHx8IG1faW5mby5t
ZW1vcnkuaXNTaGFyZWQoKSkKKyAgICAgICAgaWYgKHVzZVNpZ25hbGluZ01lbW9yeSgpIHx8IG1f
aW5mby5tZW1vcnkuaXNTaGFyZWQoKSkKICAgICAgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXJM
YXRlKFJlZ2lzdGVyU2V0IHsgUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKS5ib3VuZHNDaGVja2lu
Z1NpemVSZWdpc3RlciB9KTsKICAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKFs9LCB0
aGlzXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IEIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJh
bXMmIHBhcmFtcykgewogICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdl
IGFsbG93U2NyYXRjaChqaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUIzSVJHZW5lcmF0b3IuY3BwCmluZGV4IDU3MGRmMzZmYjI0OS4uYmVhNzdkZjE0ZGU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCkBA
IC01MjMsNiArNTIzLDE1IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBzZXQoZHN0LCBnZXQo
c3JjKSk7CiAgICAgfQogCisgICAgYm9vbCB1c2VTaWduYWxpbmdNZW1vcnkoKSBjb25zdAorICAg
IHsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKKyAgICAgICAgcmV0
dXJuIG1fbW9kZSA9PSBNZW1vcnlNb2RlOjpTaWduYWxpbmc7CisjZWxzZQorICAgICAgICByZXR1
cm4gZmFsc2U7CisjZW5kaWYKKyAgICB9CisKICAgICBGdW5jdGlvblBhcnNlcjxCM0lSR2VuZXJh
dG9yPiogbV9wYXJzZXIgeyBudWxscHRyIH07CiAgICAgY29uc3QgTW9kdWxlSW5mb3JtYXRpb24m
IG1faW5mbzsKICAgICBjb25zdCBNZW1vcnlNb2RlIG1fbW9kZSB7IE1lbW9yeU1vZGU6OkJvdW5k
c0NoZWNraW5nIH07CkBAIC02MzYsNyArNjQ1LDcgQEAgQjNJUkdlbmVyYXRvcjo6QjNJUkdlbmVy
YXRvcihjb25zdCBNb2R1bGVJbmZvcm1hdGlvbiYgaW5mbywgUHJvY2VkdXJlJiBwcm9jZWR1cmUK
ICAgICBpZiAoIUNvbnRleHQ6OnVzZUZhc3RUTFMoKSkKICAgICAgICAgbV9wcm9jLnBpblJlZ2lz
dGVyKG1fd2FzbUNvbnRleHRJbnN0YW5jZUdQUik7CiAKLSAgICBpZiAobW9kZSAhPSBNZW1vcnlN
b2RlOjpTaWduYWxpbmcpIHsKKyAgICBpZiAobW9kZSA9PSBNZW1vcnlNb2RlOjpCb3VuZHNDaGVj
a2luZykgewogICAgICAgICBtX2JvdW5kc0NoZWNraW5nU2l6ZUdQUiA9IHBpbm5lZFJlZ3MuYm91
bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXI7CiAgICAgICAgIG1fcHJvYy5waW5SZWdpc3RlcihtX2Jv
dW5kc0NoZWNraW5nU2l6ZUdQUik7CiAgICAgfQpAQCAtNjQ4LDkgKzY1NywxMSBAQCBCM0lSR2Vu
ZXJhdG9yOjpCM0lSR2VuZXJhdG9yKGNvbnN0IE1vZHVsZUluZm9ybWF0aW9uJiBpbmZvLCBQcm9j
ZWR1cmUmIHByb2NlZHVyZQogICAgICAgICAgICAgY2FzZSBNZW1vcnlNb2RlOjpCb3VuZHNDaGVj
a2luZzoKICAgICAgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKHBpbm5lZEdQUiwgbV9ib3VuZHND
aGVja2luZ1NpemVHUFIgPT0gcGlubmVkR1BSKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICAgICAgICAgIGNhc2Ug
TWVtb3J5TW9kZTo6U2lnbmFsaW5nOgogICAgICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQocGlu
bmVkR1BSLCBJbnZhbGlkR1BSUmVnID09IHBpbm5lZEdQUik7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CisjZW5kaWYKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHRoaXMtPmVtaXRFeGNlcHRp
b25DaGVjayhqaXQsIEV4Y2VwdGlvblR5cGU6Ok91dE9mQm91bmRzTWVtb3J5QWNjZXNzKTsKICAg
ICAgICAgfSk7CkBAIC05MTIsOCArOTIzLDEyIEBAIGF1dG8gQjNJUkdlbmVyYXRvcjo6YWRkQXJn
dW1lbnRzKGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAtPiBQYXJ0aWFsUmVzdWx0CiAgICAg
ICAgIEIzOjpUeXBlIHR5cGUgPSB0b0IzVHlwZShzaWduYXR1cmUuYXJndW1lbnQoaSkpOwogICAg
ICAgICBCMzo6VmFsdWUqIGFyZ3VtZW50OwogICAgICAgICBhdXRvIHJlcCA9IHdhc21DYWxsSW5m
by5wYXJhbXNbaV07Ci0gICAgICAgIGlmIChyZXAuaXNSZWcoKSkgewotICAgICAgICAgICAgYXJn
dW1lbnQgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PEIzOjpBcmd1bWVudFJlZ1ZhbHVlPiht
X3Byb2MsIE9yaWdpbigpLCByZXAucmVnKCkpOworICAgICAgICBpZiAocmVwLmlzR1BSKCkpIHsK
KyAgICAgICAgICAgIGFyZ3VtZW50ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6QXJn
dW1lbnRSZWdWYWx1ZT4obV9wcm9jLCBPcmlnaW4oKSwgcmVwLmpzcigpLnBheWxvYWRHUFIoKSk7
CisgICAgICAgICAgICBpZiAodHlwZSA9PSBCMzo6SW50MzIgfHwgdHlwZSA9PSBCMzo6RmxvYXQp
CisgICAgICAgICAgICAgICAgYXJndW1lbnQgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PEIz
OjpWYWx1ZT4obV9wcm9jLCBCMzo6VHJ1bmMsIE9yaWdpbigpLCBhcmd1bWVudCk7CisgICAgICAg
IH0gZWxzZSBpZiAocmVwLmlzRlBSKCkpIHsKKyAgICAgICAgICAgIGFyZ3VtZW50ID0gbV9jdXJy
ZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6QXJndW1lbnRSZWdWYWx1ZT4obV9wcm9jLCBPcmlnaW4o
KSwgcmVwLmZwcigpKTsKICAgICAgICAgICAgIGlmICh0eXBlID09IEIzOjpJbnQzMiB8fCB0eXBl
ID09IEIzOjpGbG9hdCkKICAgICAgICAgICAgICAgICBhcmd1bWVudCA9IG1fY3VycmVudEJsb2Nr
LT5hcHBlbmROZXc8QjM6OlZhbHVlPihtX3Byb2MsIEIzOjpUcnVuYywgT3JpZ2luKCksIGFyZ3Vt
ZW50KTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTE0NDMsNiArMTQ1OCw3IEBAIGlubGluZSBWYWx1
ZSogQjNJUkdlbmVyYXRvcjo6ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoVmFsdWUqIHBvaW50
ZXIsIHVpbnQzMl90CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorI2lmIEVOQUJMRShXRUJBU1NF
TUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIGNhc2UgTWVtb3J5TW9kZTo6U2lnbmFsaW5nOiB7
CiAgICAgICAgIC8vIFdlJ3ZlIHZpcnR1YWxseSBtYXBwZWQgNEdpQityZWR6b25lIGZvciB0aGlz
IG1lbW9yeS4gT25seSB0aGUgdXNlci1hbGxvY2F0ZWQgcGFnZXMgYXJlIGFkZHJlc3NhYmxlLCBj
b250aWd1b3VzbHkgaW4gcmFuZ2UgWzAsIGN1cnJlbnRdLAogICAgICAgICAvLyBhbmQgZXZlcnl0
aGluZyBhYm92ZSBpcyBtYXBwZWQgUFJPVF9OT05FLiBXZSBkb24ndCBuZWVkIHRvIHBlcmZvcm0g
YW55IGV4cGxpY2l0IGJvdW5kcyBjaGVjayBpbiB0aGUgNEdpQiByYW5nZSBiZWNhdXNlIFdlYkFz
c2VtYmx5IHJlZ2lzdGVyCkBAIC0xNDYwLDYgKzE0NzYsNyBAQCBpbmxpbmUgVmFsdWUqIEIzSVJH
ZW5lcmF0b3I6OmVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKFZhbHVlKiBwb2ludGVyLCB1aW50
MzJfdAogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyNlbmRpZgogICAgIH0KIAog
ICAgIHBvaW50ZXIgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIFpF
eHQzMiwgb3JpZ2luKCksIHBvaW50ZXIpOwpAQCAtMTQ5Myw3ICsxNTEwLDcgQEAgaW5saW5lIHVp
bnQzMl90IHNpemVPZkxvYWRPcChMb2FkT3BUeXBlIG9wKQogCiBpbmxpbmUgQjM6OktpbmQgQjNJ
UkdlbmVyYXRvcjo6bWVtb3J5S2luZChCMzo6T3Bjb2RlIG1lbW9yeU9wKQogewotICAgIGlmICht
X21vZGUgPT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQo
KSkKKyAgICBpZiAodXNlU2lnbmFsaW5nTWVtb3J5KCkgfHwgbV9pbmZvLm1lbW9yeS5pc1NoYXJl
ZCgpKQogICAgICAgICByZXR1cm4gdHJhcHBpbmcobWVtb3J5T3ApOwogICAgIHJldHVybiBtZW1v
cnlPcDsKIH0KQEAgLTI5NzcsNyArMjk5NCw3IEBAIGF1dG8gQjNJUkdlbmVyYXRvcjo6YWRkQ2Fs
bCh1aW50MzJfdCBmdW5jdGlvbkluZGV4LCBjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSwKICAg
ICAgICAgICAgICAgICBwYXRjaHBvaW50LT5lZmZlY3RzLnJlYWRzUGlubmVkID0gdHJ1ZTsKIAog
ICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gY2xvYmJlciB0aGUgc2l6ZSByZWdpc3RlciBz
aW5jZSB0aGUgTExJbnQgYWx3YXlzIGJvdW5kcyBjaGVja3MKLSAgICAgICAgICAgICAgICBpZiAo
bV9tb2RlID09IE1lbW9yeU1vZGU6OlNpZ25hbGluZyB8fCBtX2luZm8ubWVtb3J5LmlzU2hhcmVk
KCkpCisgICAgICAgICAgICAgICAgaWYgKHVzZVNpZ25hbGluZ01lbW9yeSgpIHx8IG1faW5mby5t
ZW1vcnkuaXNTaGFyZWQoKSkKICAgICAgICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+Y2xvYmJl
ckxhdGUoUmVnaXN0ZXJTZXQgeyBQaW5uZWRSZWdpc3RlckluZm86OmdldCgpLmJvdW5kc0NoZWNr
aW5nU2l6ZVJlZ2lzdGVyIH0pOwogICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPnNldEdlbmVy
YXRvcihbdGhpcywgaGFuZGxlLCB1bmxpbmtlZFdhc21Ub1dhc21DYWxscywgZnVuY3Rpb25JbmRl
eF0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBCMzo6U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
JiBwYXJhbXMpIHsKICAgICAgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3Rl
clVzYWdlIGFsbG93U2NyYXRjaChqaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUJpbmRpbmcuY3BwCmluZGV4IGVkYzcwYmVhMDhhZi4uMzI3Mjg5OTQ5YWRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQmluZGluZy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAj
aWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5j
bHVkZSAiRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlLmgiCiAjaW5jbHVkZSAiTGlu
a0J1ZmZlci5oIgogI2luY2x1ZGUgIldhc21DYWxsaW5nQ29udmVudGlvbi5oIgogI2luY2x1ZGUg
Ildhc21JbnN0YW5jZS5oIgpAQCAtNDEsMTggKzQyLDIxIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1i
bGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvV2FzbSh1
bnNpCiB7CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHVuaXF1aWZ5IHRoZSBzdHVicyBiYXNlZCBv
biBzaWduYXR1cmUgKyBpbmRleCB0byBzZWUgaWYgdGhpcyBzYXZlcyBtZW1vcnkuCiAgICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDE1NwotCi0gICAgY29u
c3QgUGlubmVkUmVnaXN0ZXJJbmZvJiBwaW5uZWRSZWdzID0gUGlubmVkUmVnaXN0ZXJJbmZvOjpn
ZXQoKTsKICAgICBKSVQgaml0OwogCiAgICAgR1BSUmVnIHNjcmF0Y2ggPSB3YXNtQ2FsbGluZ0Nv
bnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzBdOworI2lmIFVTRShKU1ZBTFVFMzJfNjQp
CisgICAgR1BSUmVnIGJhc2VNZW1vcnkgPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1
ZVNjcmF0Y2hHUFJzWzFdOworICAgIEdQUlJlZyBzaXplUmVnQXNTY3JhdGNoID0gd2FzbUNhbGxp
bmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1syXTsKKyNlbHNlCisgICAgY29uc3Qg
UGlubmVkUmVnaXN0ZXJJbmZvJiBwaW5uZWRSZWdzID0gUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQo
KTsKICAgICBHUFJSZWcgYmFzZU1lbW9yeSA9IHBpbm5lZFJlZ3MuYmFzZU1lbW9yeVBvaW50ZXI7
Ci0gICAgQVNTRVJUKGJhc2VNZW1vcnkgIT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsKLSAgICBB
U1NFUlQoYmFzZU1lbW9yeSAhPSBzY3JhdGNoKTsKLSAgICBBU1NFUlQocGlubmVkUmVncy5ib3Vu
ZHNDaGVja2luZ1NpemVSZWdpc3RlciAhPSBiYXNlTWVtb3J5KTsKLSAgICBBU1NFUlQocGlubmVk
UmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlciAhPSBzY3JhdGNoKTsKICAgICBHUFJSZWcg
c2l6ZVJlZ0FzU2NyYXRjaCA9IHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXI7
CisjZW5kaWYKKyAgICBBU1NFUlQoYmFzZU1lbW9yeSAhPSBHUFJSZWc6OkludmFsaWRHUFJSZWcp
OwogICAgIEFTU0VSVChzaXplUmVnQXNTY3JhdGNoICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7
CisgICAgQVNTRVJUKHNjcmF0Y2ggIT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsKKyAgICBBU1NF
UlQobm9PdmVybGFwKHNjcmF0Y2gsIGJhc2VNZW1vcnksIHNpemVSZWdBc1NjcmF0Y2gpKTsKIAog
ICAgIC8vIEIzJ3MgY2FsbCBjb2RlZ2VuIGVuc3VyZXMgdGhhdCB0aGUgSlNDZWxsIGlzIGEgV2Vi
QXNzZW1ibHlGdW5jdGlvbi4KICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uoc2l6ZVJl
Z0FzU2NyYXRjaCk7IC8vIE9sZCBJbnN0YW5jZSoKQEAgLTY1LDYgKzY5LDcgQEAgRXhwZWN0ZWQ8
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3
YXNtVG9XYXNtKHVuc2kKICAgICBqaXQubG9hZFB0cihKSVQ6OkFkZHJlc3Moc2l6ZVJlZ0FzU2Ny
YXRjaCwgSW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkU3RhY2tMaW1pdCgpKSwgc2l6ZVJlZ0FzU2Ny
YXRjaCk7CiAgICAgaml0LnN0b3JlUHRyKHNpemVSZWdBc1NjcmF0Y2gsIEpJVDo6QWRkcmVzcyhi
YXNlTWVtb3J5LCBJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRTdGFja0xpbWl0KCkpKTsKIAorI2lm
ICFDUFUoQVJNKSAvLyBBUk0gaGFzIG5vIHBpbm5lZCByZWdpc3RlcnMgZm9yIFdhc20gTWVtb3J5
LCBzbyBubyBuZWVkIHRvIHNldCB0aGVtIHVwCiAgICAgLy8gRklYTUUgdGhlIGZvbGxvd2luZyBj
b2RlIGFzc3VtZXMgdGhhdCBhbGwgV2FzbTo6SW5zdGFuY2UgaGF2ZSB0aGUgc2FtZSBwaW5uZWQg
cmVnaXN0ZXJzLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyOTUy
CiAgICAgLy8gU2V0IHVwIHRoZSBjYWxsZWUncyBiYXNlTWVtb3J5IHJlZ2lzdGVyIGFzIHdlbGwg
YXMgdGhlIG1lbW9yeSBzaXplIHJlZ2lzdGVycy4KICAgICB7CkBAIC03Miw2ICs3Nyw3IEBAIEV4
cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFp
bHVyZT4gd2FzbVRvV2FzbSh1bnNpCiAgICAgICAgIGppdC5sb2FkUHRyKEpJVDo6QWRkcmVzcyhi
YXNlTWVtb3J5LCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnkoKSksIGJhc2VN
ZW1vcnkpOyAvLyBXYXNtOjpNZW1vcnk6OlRhZ2dlZEFycmF5U3RvcmFnZVB0cjx2b2lkPiAodm9p
ZCopLgogICAgICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHlBbmRVbnRhZyhHaWdhY2FnZTo6UHJp
bWl0aXZlLCBiYXNlTWVtb3J5LCBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVy
LCB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdKTsKICAgICB9
CisjZW5kaWYKIAogICAgIC8vIFRhaWwgY2FsbCBpbnRvIHRoZSBjYWxsZWUgV2ViQXNzZW1ibHkg
ZnVuY3Rpb24uCiAgICAgaml0LmxvYWRQdHIoSklUOjpBZGRyZXNzKHNjcmF0Y2gpLCBzY3JhdGNo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5jcHAKaW5kZXggYTMyMWM1
MmYxNWVjLi4zMjAyZjU0ODBjYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21DYWxsZWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21D
YWxsZWUuY3BwCkBAIC0xMzEsNiArMTMxLDggQEAgUmVnaXN0ZXJBdE9mZnNldExpc3QqIExMSW50
Q2FsbGVlOjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCkKICAgICAgICAgcmVnaXN0ZXJzLnNldChHUFJJ
bmZvOjpyZWdDUzIpOyAvLyBQQgogI2VsaWYgQ1BVKEFSTTY0KSB8fCBDUFUoUklTQ1Y2NCkKICAg
ICAgICAgcmVnaXN0ZXJzLnNldChHUFJJbmZvOjpyZWdDUzcpOyAvLyBQQgorI2VsaWYgQ1BVKEFS
TSkKKyAgICAgICAgcmVnaXN0ZXJzLnNldChHUFJJbmZvOjpyZWdDUzEpOyAvLyBQQgogI2Vsc2UK
ICNlcnJvciBVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUuCiAjZW5kaWYKQEAgLTE1OCw2ICsxNjAs
NyBAQCBjb25zdCBXYXNtSW5zdHJ1Y3Rpb24qIExMSW50Q2FsbGVlOjpvdXRPZkxpbmVKdW1wVGFy
Z2V0KGNvbnN0IFdhc21JbnN0cnVjdGlvbiogcAogICAgIHJldHVybiBtX2luc3RydWN0aW9ucy0+
YXQob2Zmc2V0ICsgdGFyZ2V0KS5wdHIoKTsKIH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9C
M0pJVCkKIHZvaWQgT3B0aW1pemluZ0pJVENhbGxlZTo6bGlua0V4Y2VwdGlvbkhhbmRsZXJzKFZl
Y3RvcjxVbmxpbmtlZEhhbmRsZXJJbmZvPiB1bmxpbmtlZEV4Y2VwdGlvbkhhbmRsZXJzLCBWZWN0
b3I8Q29kZUxvY2F0aW9uTGFiZWw8RXhjZXB0aW9uSGFuZGxlclB0clRhZz4+IGV4Y2VwdGlvbkhh
bmRsZXJMb2NhdGlvbnMpCiB7CiAgICAgc2l6ZV90IGNvdW50ID0gdW5saW5rZWRFeGNlcHRpb25I
YW5kbGVycy5zaXplKCk7CkBAIC0xODQsNyArMTg3LDcgQEAgY29uc3QgU3RhY2tNYXAmIE9wdGlt
aXppbmdKSVRDYWxsZWU6OnN0YWNrbWFwKENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleCkgY29u
c3QKICAgICBSRUxFQVNFX0FTU0VSVChpdGVyICE9IG1fc3RhY2ttYXBzLmVuZCgpKTsKICAgICBy
ZXR1cm4gaXRlci0+dmFsdWU7CiB9Ci0KKyNlbmRpZgogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
V2FzbQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVl
R3JvdXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZUdyb3VwLmNw
cAppbmRleCAxZWE0NWNhNGE2ZTkuLjUxOWQyMDk2YWQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlR3JvdXAuY3BwCkBAIC0xNjAsMTcgKzE2MCwyMSBAQCB2
b2lkIENhbGxlZUdyb3VwOjpjb21waWxlQXN5bmMoQ29udGV4dCogY29udGV4dCwgQXN5bmNDb21w
aWxhdGlvbkNhbGxiYWNrJiYgdGFzawogCiBib29sIENhbGxlZUdyb3VwOjppc1NhZmVUb1J1bihN
ZW1vcnlNb2RlIG1lbW9yeU1vZGUpCiB7CisgICAgVU5VU0VEX1BBUkFNKG1lbW9yeU1vZGUpOwor
CiAgICAgaWYgKCFydW5uYWJsZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzd2l0
Y2ggKG1fbW9kZSkgewogICAgIGNhc2UgV2FzbTo6TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmc6
CiAgICAgICAgIHJldHVybiB0cnVlOworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdf
TUVNT1JZKQogICAgIGNhc2UgV2FzbTo6TWVtb3J5TW9kZTo6U2lnbmFsaW5nOgogICAgICAgICAv
LyBDb2RlIGJlaW5nIGluIFNpZ25hbGluZyBtb2RlIG1lYW5zIHRoYXQgaXQgcGVyZm9ybXMgbm8g
Ym91bmRzIGNoZWNrcy4KICAgICAgICAgLy8gSXRzIG1lbW9yeSwgZXZlbiBpZiBlbXB0eSwgYWJz
b2x1dGVseSBtdXN0IGFsc28gYmUgaW4gU2lnbmFsaW5nIG1vZGUKICAgICAgICAgLy8gYmVjYXVz
ZSB0aGUgcGFnZSBwcm90ZWN0aW9uIGRldGVjdHMgb3V0LW9mLWJvdW5kcyBhY2Nlc3Nlcy4KICAg
ICAgICAgcmV0dXJuIG1lbW9yeU1vZGUgPT0gV2FzbTo6TWVtb3J5TW9kZTo6U2lnbmFsaW5nOwor
I2VuZGlmCiAgICAgfQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNh
bGxpbmdDb252ZW50aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxs
aW5nQ29udmVudGlvbi5jcHAKaW5kZXggMjAzYzg0M2FlOGU2Li40NzI2MjIwZmE3MTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9u
LmNwcApAQCAtNDAsNyArNDAsNyBAQCBjb25zdCBKU0NhbGxpbmdDb252ZW50aW9uJiBqc0NhbGxp
bmdDb252ZW50aW9uKCkKICAgICAgICAgUmVnaXN0ZXJTZXQgY2FsbGVyU2F2ZVJlZ2lzdGVycyA9
IFJlZ2lzdGVyU2V0OjphbGxSZWdpc3RlcnMoKTsKICAgICAgICAgY2FsbGVyU2F2ZVJlZ2lzdGVy
cy5leGNsdWRlKFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCkpOwogCi0gICAgICAg
IHN0YXRpY0pTQ2FsbGluZ0NvbnZlbnRpb24uY29uc3RydWN0KFZlY3RvcjxSZWc+KCksIFZlY3Rv
cjxSZWc+KCksIFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCksIFdURk1vdmUoY2Fs
bGVyU2F2ZVJlZ2lzdGVycykpOworICAgICAgICBzdGF0aWNKU0NhbGxpbmdDb252ZW50aW9uLmNv
bnN0cnVjdChWZWN0b3I8SlNWYWx1ZVJlZ3M+KCksIFZlY3RvcjxGUFJSZWc+KCksIFJlZ2lzdGVy
U2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCksIFdURk1vdmUoY2FsbGVyU2F2ZVJlZ2lzdGVycykp
OwogICAgIH0pOwogCiAgICAgcmV0dXJuIHN0YXRpY0pTQ2FsbGluZ0NvbnZlbnRpb247CkBAIC01
MSwzMSArNTEsNTAgQEAgY29uc3QgV2FzbUNhbGxpbmdDb252ZW50aW9uJiB3YXNtQ2FsbGluZ0Nv
bnZlbnRpb24oKQogICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8V2FzbUNhbGxpbmdDb252
ZW50aW9uPiBzdGF0aWNXYXNtQ2FsbGluZ0NvbnZlbnRpb247CiAgICAgc3RhdGljIHN0ZDo6b25j
ZV9mbGFnIHN0YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbkZsYWc7CiAgICAgc3RkOjpjYWxsX29u
Y2Uoc3RhdGljV2FzbUNhbGxpbmdDb252ZW50aW9uRmxhZywgW10gKCkgewotICAgICAgICBWZWN0
b3I8UmVnPiBncHJBcmd1bWVudFJlZ2lzdGVycyhHUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVn
aXN0ZXJzKTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEdQUkluZm86Om51bWJl
ck9mQXJndW1lbnRSZWdpc3RlcnM7ICsraSkKLSAgICAgICAgICAgIGdwckFyZ3VtZW50UmVnaXN0
ZXJzW2ldID0gR1BSSW5mbzo6dG9Bcmd1bWVudFJlZ2lzdGVyKGkpOwotCi0gICAgICAgIFZlY3Rv
cjxSZWc+IGZwckFyZ3VtZW50UmVnaXN0ZXJzKEZQUkluZm86Om51bWJlck9mQXJndW1lbnRSZWdp
c3RlcnMpOworI2lmIFVTRShKU1ZBTFVFNjQpIC8vIE9uZSB2YWx1ZSBwZXIgR1BSCisgICAgICAg
IGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50SlNScyA9IEdQUkluZm86Om51bWJl
ck9mQXJndW1lbnRSZWdpc3RlcnM7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KSAvLyBPbmUgdmFs
dWUgcGVyIGNvbnNlY3V0aXZlIEdQUiBwYWlyCisgICAgICAgIGNvbnN0ZXhwciB1bnNpZ25lZCBu
dW1iZXJPZkFyZ3VtZW50SlNScyA9IEdQUkluZm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMg
LyAyOworI2VuZGlmCisgICAgICAgIFZlY3RvcjxKU1ZhbHVlUmVncz4ganNyQXJndW1lbnRSZWdp
c3RlcnMobnVtYmVyT2ZBcmd1bWVudEpTUnMpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgbnVtYmVyT2ZBcmd1bWVudEpTUnM7ICsraSkKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAg
ICAgICAgICAganNyQXJndW1lbnRSZWdpc3RlcnNbaV0gPSBKU1ZhbHVlUmVncyB7IEdQUkluZm86
OnRvQXJndW1lbnRSZWdpc3RlcihpKSB9OworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAg
ICAgICAgIGpzckFyZ3VtZW50UmVnaXN0ZXJzW2ldID0gSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjp0
b0FyZ3VtZW50UmVnaXN0ZXIoMiAqIGkgKyAxKSwgR1BSSW5mbzo6dG9Bcmd1bWVudFJlZ2lzdGVy
KDIgKiBpKSB9OworI2VuZGlmCisKKyAgICAgICAgVmVjdG9yPEZQUlJlZz4gZnByQXJndW1lbnRS
ZWdpc3RlcnMoRlBSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyk7CiAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBGUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJz
OyArK2kpCiAgICAgICAgICAgICBmcHJBcmd1bWVudFJlZ2lzdGVyc1tpXSA9IEZQUkluZm86OnRv
QXJndW1lbnRSZWdpc3RlcihpKTsKIAogICAgICAgICBSZWdpc3RlclNldCBzY3JhdGNoID0gUmVn
aXN0ZXJTZXQ6OmFsbEdQUnMoKTsKLSAgICAgICAgc2NyYXRjaC5leGNsdWRlKFJlZ2lzdGVyU2V0
OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCkpOworICAgICAgICBzY3JhdGNoLmV4Y2x1ZGUoUmVnaXN0
ZXJTZXQ6OnZtQ2FsbGVlU2F2ZVJlZ2lzdGVycygpKTsKICAgICAgICAgc2NyYXRjaC5leGNsdWRl
KFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7CiAgICAgICAgIHNjcmF0Y2gu
ZXhjbHVkZShSZWdpc3RlclNldDo6cmVzZXJ2ZWRIYXJkd2FyZVJlZ2lzdGVycygpKTsKICAgICAg
ICAgc2NyYXRjaC5leGNsdWRlKFJlZ2lzdGVyU2V0OjpzdGFja1JlZ2lzdGVycygpKTsKLSAgICAg
ICAgZm9yIChSZWcgcmVnIDogZ3ByQXJndW1lbnRSZWdpc3RlcnMpCi0gICAgICAgICAgICBzY3Jh
dGNoLmNsZWFyKHJlZyk7CisgICAgICAgIGZvciAoSlNWYWx1ZVJlZ3MganNyIDoganNyQXJndW1l
bnRSZWdpc3RlcnMpIHsKKyAgICAgICAgICAgIHNjcmF0Y2guY2xlYXIoanNyLnBheWxvYWRHUFIo
KSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIHNjcmF0Y2guY2xlYXIoanNy
LnRhZ0dQUigpKTsKKyNlbmRpZgorICAgICAgICB9CiAKICAgICAgICAgVmVjdG9yPEdQUlJlZz4g
c2NyYXRjaEdQUnM7CiAgICAgICAgIGZvciAoUmVnIHJlZyA6IHNjcmF0Y2gpCiAgICAgICAgICAg
ICBzY3JhdGNoR1BScy5hcHBlbmQocmVnLmdwcigpKTsKKworICAgICAgICAvLyBOZWVkIGF0IGxl
YXN0IG9uZSBKU1ZhbHVlIGFuZCBhbiBhZGRpdGlvbmFsIEdQUgorI2lmIFVTRShKU1ZBTFVFNjQp
CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHNjcmF0Y2hHUFJzLnNpemUoKSA+PSAyKTsKKyNlbGlm
IFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKHNjcmF0Y2hHUFJzLnNp
emUoKSA+PSAzKTsKKyNlbmRpZgogCiAgICAgICAgIFJlZ2lzdGVyU2V0IGNhbGxlclNhdmVSZWdp
c3RlcnMgPSBSZWdpc3RlclNldDo6YWxsUmVnaXN0ZXJzKCk7CiAgICAgICAgIGNhbGxlclNhdmVS
ZWdpc3RlcnMuZXhjbHVkZShSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpKTsKIAot
ICAgICAgICBzdGF0aWNXYXNtQ2FsbGluZ0NvbnZlbnRpb24uY29uc3RydWN0KFdURk1vdmUoZ3By
QXJndW1lbnRSZWdpc3RlcnMpLCBXVEZNb3ZlKGZwckFyZ3VtZW50UmVnaXN0ZXJzKSwgV1RGTW92
ZShzY3JhdGNoR1BScyksIFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCksIFdURk1v
dmUoY2FsbGVyU2F2ZVJlZ2lzdGVycykpOworICAgICAgICBzdGF0aWNXYXNtQ2FsbGluZ0NvbnZl
bnRpb24uY29uc3RydWN0KFdURk1vdmUoanNyQXJndW1lbnRSZWdpc3RlcnMpLCBXVEZNb3ZlKGZw
ckFyZ3VtZW50UmVnaXN0ZXJzKSwgV1RGTW92ZShzY3JhdGNoR1BScyksIFJlZ2lzdGVyU2V0Ojpj
YWxsZWVTYXZlUmVnaXN0ZXJzKCksIFdURk1vdmUoY2FsbGVyU2F2ZVJlZ2lzdGVycykpOwogICAg
IH0pOwogCiAgICAgcmV0dXJuIHN0YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKaW5kZXgg
NTkxZWViMjdiMDE2Li4xOWNmMDJhYTMzMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oCkBAIC01Nyw4ICs1NywxMyBAQCBzdHJ1
Y3QgQ2FsbEluZm9ybWF0aW9uIHsKICAgICB7CiAgICAgICAgIFJlZ2lzdGVyU2V0IHVzZWRSZXN1
bHRSZWdpc3RlcnM7CiAgICAgICAgIGZvciAoVmFsdWVMb2NhdGlvbiBsb2MgOiByZXN1bHRzKSB7
Ci0gICAgICAgICAgICBpZiAobG9jLmlzUmVnKCkpCi0gICAgICAgICAgICAgICAgdXNlZFJlc3Vs
dFJlZ2lzdGVycy5zZXQobG9jLnJlZygpKTsKKyAgICAgICAgICAgIGlmIChsb2MuaXNHUFIoKSkg
eworICAgICAgICAgICAgICAgIHVzZWRSZXN1bHRSZWdpc3RlcnMuc2V0KGxvYy5qc3IoKS5wYXls
b2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgdXNlZFJl
c3VsdFJlZ2lzdGVycy5zZXQobG9jLmpzcigpLnRhZ0dQUigpKTsKKyNlbmRpZgorICAgICAgICAg
ICAgfSBlbHNlIGlmIChsb2MuaXNGUFIoKSkKKyAgICAgICAgICAgICAgICB1c2VkUmVzdWx0UmVn
aXN0ZXJzLnNldChsb2MuZnByKCkpOwogICAgICAgICB9CiAKICAgICAgICAgUmVnaXN0ZXJBdE9m
ZnNldExpc3Qgc2F2ZWRSZWdzKHVzZWRSZXN1bHRSZWdpc3RlcnMsIFJlZ2lzdGVyQXRPZmZzZXRM
aXN0OjpaZXJvQmFzZWQpOwpAQCAtNzcsOCArODIsOCBAQCBjbGFzcyBXYXNtQ2FsbGluZ0NvbnZl
bnRpb24gewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgaGVhZGVyU2l6
ZUluQnl0ZXMgPSBDYWxsRnJhbWU6OmhlYWRlclNpemVJblJlZ2lzdGVycyAqIHNpemVvZihSZWdp
c3Rlcik7CiAKLSAgICBXYXNtQ2FsbGluZ0NvbnZlbnRpb24oVmVjdG9yPFJlZz4mJiBncHJzLCBW
ZWN0b3I8UmVnPiYmIGZwcnMsIFZlY3RvcjxHUFJSZWc+JiYgc2NyYXRjaGVzLCBSZWdpc3RlclNl
dCYmIGNhbGxlZVNhdmVzLCBSZWdpc3RlclNldCYmIGNhbGxlclNhdmVzKQotICAgICAgICA6IGdw
ckFyZ3MoV1RGTW92ZShncHJzKSkKKyAgICBXYXNtQ2FsbGluZ0NvbnZlbnRpb24oVmVjdG9yPEpT
VmFsdWVSZWdzPiYmIGpzcnMsIFZlY3RvcjxGUFJSZWc+JiYgZnBycywgVmVjdG9yPEdQUlJlZz4m
JiBzY3JhdGNoZXMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVlU2F2ZXMsIFJlZ2lzdGVyU2V0JiYgY2Fs
bGVyU2F2ZXMpCisgICAgICAgIDoganNyQXJncyhXVEZNb3ZlKGpzcnMpKQogICAgICAgICAsIGZw
ckFyZ3MoV1RGTW92ZShmcHJzKSkKICAgICAgICAgLCBwcm9sb2d1ZVNjcmF0Y2hHUFJzKFdURk1v
dmUoc2NyYXRjaGVzKSkKICAgICAgICAgLCBjYWxsZWVTYXZlUmVnaXN0ZXJzKFdURk1vdmUoY2Fs
bGVlU2F2ZXMpKQpAQCAtODgsMTAgKzkzLDExIEBAIHB1YmxpYzoKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShXYXNtQ2FsbGluZ0NvbnZlbnRpb24pOwogCiBwcml2YXRlOgotICAgIEFyZ3VtZW50
TG9jYXRpb24gbWFyc2hhbGxMb2NhdGlvbkltcGwoQ2FsbFJvbGUgcm9sZSwgY29uc3QgVmVjdG9y
PFJlZz4mIHJlZ0FyZ3MsIHNpemVfdCYgY291bnQsIHNpemVfdCYgc3RhY2tPZmZzZXQpIGNvbnN0
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUmVnVHlwZT4KKyAgICBBcmd1bWVudExvY2F0aW9uIG1h
cnNoYWxsTG9jYXRpb25JbXBsKENhbGxSb2xlIHJvbGUsIGNvbnN0IFZlY3RvcjxSZWdUeXBlPiYg
cmVnQXJncywgc2l6ZV90JiBjb3VudCwgc2l6ZV90JiBzdGFja09mZnNldCkgY29uc3QKICAgICB7
CiAgICAgICAgIGlmIChjb3VudCA8IHJlZ0FyZ3Muc2l6ZSgpKQotICAgICAgICAgICAgcmV0dXJu
IEFyZ3VtZW50TG9jYXRpb246OnJlZyhyZWdBcmdzW2NvdW50KytdKTsKKyAgICAgICAgICAgIHJl
dHVybiBBcmd1bWVudExvY2F0aW9uIHsgcmVnQXJnc1tjb3VudCsrXSB9OwogCiAgICAgICAgIGNv
dW50Kys7CiAgICAgICAgIEFyZ3VtZW50TG9jYXRpb24gcmVzdWx0ID0gcm9sZSA9PSBDYWxsUm9s
ZTo6Q2FsbGVyID8gQXJndW1lbnRMb2NhdGlvbjo6c3RhY2tBcmd1bWVudChzdGFja09mZnNldCkg
OiBBcmd1bWVudExvY2F0aW9uOjpzdGFjayhzdGFja09mZnNldCk7CkBAIC0xMDksNyArMTE1LDcg
QEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpSZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6Ci0gICAg
ICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwgZ3ByQXJncywgZ3BBcmd1
bWVudENvdW50LCBzdGFja09mZnNldCk7CisgICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2Nh
dGlvbkltcGwocm9sZSwganNyQXJncywgZ3BBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CiAg
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0Ogog
ICAgICAgICAgICAgcmV0dXJuIG1hcnNoYWxsTG9jYXRpb25JbXBsKHJvbGUsIGZwckFyZ3MsIGZw
QXJndW1lbnRDb3VudCwgc3RhY2tPZmZzZXQpOwpAQCAtMTUzLDggKzE1OSw4IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICBjb25zdCBWZWN0b3I8UmVnPiBn
cHJBcmdzOwotICAgIGNvbnN0IFZlY3RvcjxSZWc+IGZwckFyZ3M7CisgICAgY29uc3QgVmVjdG9y
PEpTVmFsdWVSZWdzPiBqc3JBcmdzOworICAgIGNvbnN0IFZlY3RvcjxGUFJSZWc+IGZwckFyZ3M7
CiAgICAgY29uc3QgVmVjdG9yPEdQUlJlZz4gcHJvbG9ndWVTY3JhdGNoR1BSczsKICAgICBjb25z
dCBSZWdpc3RlclNldCBjYWxsZWVTYXZlUmVnaXN0ZXJzOwogICAgIGNvbnN0IFJlZ2lzdGVyU2V0
IGNhbGxlclNhdmVSZWdpc3RlcnM7CkBAIC0xNjksOCArMTc1LDggQEAgcHVibGljOgogICAgIC8v
IFdhc206OkNvbnRleHQqJ3MgaW5zdGFuY2UuCiAgICAgc3RhdGljIGNvbnN0ZXhwciBwdHJkaWZm
X3QgaW5zdGFuY2VTdGFja09mZnNldCA9IENhbGxGcmFtZVNsb3Q6OnRoaXNBcmd1bWVudCAqIHNp
emVvZihFbmNvZGVkSlNWYWx1ZSk7CiAKLSAgICBKU0NhbGxpbmdDb252ZW50aW9uKFZlY3RvcjxS
ZWc+JiYgZ3BycywgVmVjdG9yPFJlZz4mJiBmcHJzLCBSZWdpc3RlclNldCYmIGNhbGxlZVNhdmVz
LCBSZWdpc3RlclNldCYmIGNhbGxlclNhdmVzKQotICAgICAgICA6IGdwckFyZ3MoV1RGTW92ZShn
cHJzKSkKKyAgICBKU0NhbGxpbmdDb252ZW50aW9uKFZlY3RvcjxKU1ZhbHVlUmVncz4mJiBncHJz
LCBWZWN0b3I8RlBSUmVnPiYmIGZwcnMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVlU2F2ZXMsIFJlZ2lz
dGVyU2V0JiYgY2FsbGVyU2F2ZXMpCisgICAgICAgIDoganNyQXJncyhXVEZNb3ZlKGdwcnMpKQog
ICAgICAgICAsIGZwckFyZ3MoV1RGTW92ZShmcHJzKSkKICAgICAgICAgLCBjYWxsZWVTYXZlUmVn
aXN0ZXJzKFdURk1vdmUoY2FsbGVlU2F2ZXMpKQogICAgICAgICAsIGNhbGxlclNhdmVSZWdpc3Rl
cnMoV1RGTW92ZShjYWxsZXJTYXZlcykpCkBAIC0xNzgsMTAgKzE4NCwxMSBAQCBwdWJsaWM6CiAK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShKU0NhbGxpbmdDb252ZW50aW9uKTsKIHByaXZhdGU6
Ci0gICAgQXJndW1lbnRMb2NhdGlvbiBtYXJzaGFsbExvY2F0aW9uSW1wbChDYWxsUm9sZSByb2xl
LCBjb25zdCBWZWN0b3I8UmVnPiYgcmVnQXJncywgc2l6ZV90JiBjb3VudCwgc2l6ZV90JiBzdGFj
a09mZnNldCkgY29uc3QKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgUmVnVHlwZT4KKyAgICBBcmd1
bWVudExvY2F0aW9uIG1hcnNoYWxsTG9jYXRpb25JbXBsKENhbGxSb2xlIHJvbGUsIGNvbnN0IFZl
Y3RvcjxSZWdUeXBlPiYgcmVnQXJncywgc2l6ZV90JiBjb3VudCwgc2l6ZV90JiBzdGFja09mZnNl
dCkgY29uc3QKICAgICB7CiAgICAgICAgIGlmIChjb3VudCA8IHJlZ0FyZ3Muc2l6ZSgpKQotICAg
ICAgICAgICAgcmV0dXJuIEFyZ3VtZW50TG9jYXRpb246OnJlZyhyZWdBcmdzW2NvdW50KytdKTsK
KyAgICAgICAgICAgIHJldHVybiBBcmd1bWVudExvY2F0aW9uIHsgcmVnQXJnc1tjb3VudCsrXSB9
OwogCiAgICAgICAgIGNvdW50Kys7CiAgICAgICAgIEFyZ3VtZW50TG9jYXRpb24gcmVzdWx0ID0g
cm9sZSA9PSBDYWxsUm9sZTo6Q2FsbGVyID8gQXJndW1lbnRMb2NhdGlvbjo6c3RhY2tBcmd1bWVu
dChzdGFja09mZnNldCkgOiBBcmd1bWVudExvY2F0aW9uOjpzdGFjayhzdGFja09mZnNldCk7CkBA
IC0xOTksNyArMjA2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJu
cmVmOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6
OlJlZk51bGw6Ci0gICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwg
Z3ByQXJncywgZ3BBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CisgICAgICAgICAgICByZXR1
cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwganNyQXJncywgZ3BBcmd1bWVudENvdW50LCBz
dGFja09mZnNldCk7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKICAgICAgICAgY2FzZSBU
eXBlS2luZDo6RjY0OgogICAgICAgICAgICAgcmV0dXJuIG1hcnNoYWxsTG9jYXRpb25JbXBsKHJv
bGUsIGZwckFyZ3MsIGZwQXJndW1lbnRDb3VudCwgc3RhY2tPZmZzZXQpOwpAQCAtMjIyLDEyICsy
MjksMTIgQEAgcHVibGljOgogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpZ25hdHVy
ZS5hcmd1bWVudENvdW50KCk7ICsraSkKICAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQobWFyc2hh
bGxMb2NhdGlvbihyb2xlLCBzaWduYXR1cmUuYXJndW1lbnQoaSksIGdwQXJndW1lbnRDb3VudCwg
ZnBBcmd1bWVudENvdW50LCBzdGFja09mZnNldCkpOwogCi0gICAgICAgIFZlY3RvcjxBcmd1bWVu
dExvY2F0aW9uLCAxPiByZXN1bHRzIHsgQXJndW1lbnRMb2NhdGlvbjo6cmVnKEdQUkluZm86OnJl
dHVyblZhbHVlR1BSKSB9OworICAgICAgICBWZWN0b3I8QXJndW1lbnRMb2NhdGlvbiwgMT4gcmVz
dWx0cyB7IEFyZ3VtZW50TG9jYXRpb24geyBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiB9IH07CiAg
ICAgICAgIHJldHVybiBDYWxsSW5mb3JtYXRpb24oV1RGTW92ZShwYXJhbXMpLCBXVEZNb3ZlKHJl
c3VsdHMpLCBzdGFja09mZnNldCk7CiAgICAgfQogCi0gICAgY29uc3QgVmVjdG9yPFJlZz4gZ3By
QXJnczsKLSAgICBjb25zdCBWZWN0b3I8UmVnPiBmcHJBcmdzOworICAgIGNvbnN0IFZlY3RvcjxK
U1ZhbHVlUmVncz4ganNyQXJnczsKKyAgICBjb25zdCBWZWN0b3I8RlBSUmVnPiBmcHJBcmdzOwog
ICAgIGNvbnN0IFJlZ2lzdGVyU2V0IGNhbGxlZVNhdmVSZWdpc3RlcnM7CiAgICAgY29uc3QgUmVn
aXN0ZXJTZXQgY2FsbGVyU2F2ZVJlZ2lzdGVyczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtRm9ybWF0LmgKaW5kZXggYzc5ZTMzN2M3YTdhLi45ZWQ3YzhjMzY3MjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKQEAgLTQ0NCw3ICs0NDQsOSBAQCBzdHJ1
Y3QgRW50cnlwb2ludCB7CiBzdHJ1Y3QgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgV1RGX01BS0Vf
U1RSVUNUX0ZBU1RfQUxMT0NBVEVEOwogICAgIFZlY3RvcjxDb2RlTG9jYXRpb25EYXRhTGFiZWxQ
dHI8V2FzbUVudHJ5UHRyVGFnPj4gY2FsbGVlTW92ZUxvY2F0aW9uczsKKyNpZiBFTkFCTEUoV0VC
QVNTRU1CTFlfQjNKSVQpCiAgICAgU3RhY2tNYXBzIHN0YWNrbWFwczsKKyNlbmRpZgogICAgIFZl
Y3RvcjxVbmxpbmtlZEhhbmRsZXJJbmZvPiBleGNlcHRpb25IYW5kbGVyczsKICAgICBFbnRyeXBv
aW50IGVudHJ5cG9pbnQ7CiAgICAgdW5zaWduZWQgb3NyRW50cnlTY3JhdGNoQnVmZmVyU2l6ZSB7
IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9y
TmFtZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3Bw
CmluZGV4IDQxMjBhZTZhOTQ5NC4uZmIyMWM5MmJmODFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5jcHAKQEAgLTMwLDE2ICszMCwyMyBAQCBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCiBJbmRleE9yTmFtZTo6SW5kZXhPck5hbWUo
SW5kZXggaW5kZXgsIHN0ZDo6cGFpcjxjb25zdCBOYW1lKiwgUmVmUHRyPE5hbWVTZWN0aW9uPj4m
JiBuYW1lKQogeworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgc3RhdGljX2Fzc2VydChzaXplb2Yo
bV9pbmRleE5hbWUuaW5kZXgpID09IHNpemVvZihtX2luZGV4TmFtZS5uYW1lKSwgImJpdC10YWdn
aW5nIGRlcGVuZHMgb24gc2l6ZXMgYmVpbmcgZXF1YWwiKTsKLQotICAgIGlmICgoaW5kZXggJiBh
bGxUYWdzKSB8fCAoYml0d2lzZV9jYXN0PEluZGV4PihuYW1lLmZpcnN0KSAmIGFsbFRhZ3MpKQot
ICAgICAgICAqdGhpcyA9IEluZGV4T3JOYW1lKCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGlmIChu
YW1lLmZpcnN0KQotICAgICAgICAgICAgbV9pbmRleE5hbWUubmFtZSA9IG5hbWUuZmlyc3Q7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1faW5kZXhOYW1lLmluZGV4ID0gaW5kZXhUYWcgfCBp
bmRleDsKKyAgICBBU1NFUlQoIShpbmRleCAmIGFsbFRhZ3MpKTsKKyAgICBBU1NFUlQoIShiaXR3
aXNlX2Nhc3Q8SW5kZXg+KG5hbWUuZmlyc3QpICYgYWxsVGFncykpOworICAgIGlmIChuYW1lLmZp
cnN0KQorICAgICAgICBtX2luZGV4TmFtZS5uYW1lID0gbmFtZS5maXJzdDsKKyAgICBlbHNlCisg
ICAgICAgIG1faW5kZXhOYW1lLmluZGV4ID0gaW5kZXhUYWcgfCBpbmRleDsKKyNlbGlmIFVTRShK
U1ZBTFVFMzJfNjQpCisgICAgaWYgKG5hbWUuZmlyc3QpIHsKKyAgICAgICAgbV9pbmRleE5hbWUu
bmFtZSA9IG5hbWUuZmlyc3Q7CisgICAgICAgIG1fa2luZCA9IEtpbmQ6Ok5hbWU7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgbV9pbmRleE5hbWUuaW5kZXggPSBpbmRleDsKKyAgICAgICAgbV9raW5k
ID0gS2luZDo6SW5kZXg7CiAgICAgfQorI2VuZGlmCiAgICAgbV9uYW1lU2VjdGlvbiA9IFdURk1v
dmUobmFtZS5zZWNvbmQpOwogfQogCkBAIC00OSw4ICs1Niw4IEBAIFN0cmluZyBtYWtlU3RyaW5n
KGNvbnN0IEluZGV4T3JOYW1lJiBpb24pCiAgICAgICAgIHJldHVybiAid2FzbS1zdHViIl9zOwog
ICAgIGNvbnN0IFN0cmluZyBtb2R1bGVOYW1lID0gaW9uLm5hbWVTZWN0aW9uKCktPm1vZHVsZU5h
bWUuc2l6ZSgpID8gU3RyaW5nKGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1bGVOYW1lLmRhdGEoKSwg
aW9uLm5hbWVTZWN0aW9uKCktPm1vZHVsZU5hbWUuc2l6ZSgpKSA6IFN0cmluZyhpb24ubmFtZVNl
Y3Rpb24oKS0+bW9kdWxlSGFzaC5kYXRhKCksIGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1bGVIYXNo
LnNpemUoKSk7CiAgICAgaWYgKGlvbi5pc0luZGV4KCkpCi0gICAgICAgIHJldHVybiBtYWtlU3Ry
aW5nKG1vZHVsZU5hbWUsICIud2FzbS1mdW5jdGlvblsiLCBTdHJpbmc6Om51bWJlcihpb24ubV9p
bmRleE5hbWUuaW5kZXggJiB+SW5kZXhPck5hbWU6OmluZGV4VGFnKSwgJ10nKTsKLSAgICByZXR1
cm4gbWFrZVN0cmluZyhtb2R1bGVOYW1lLCAiLndhc20tZnVuY3Rpb25bIiwgU3RyaW5nKGlvbi5t
X2luZGV4TmFtZS5uYW1lLT5kYXRhKCksIGlvbi5tX2luZGV4TmFtZS5uYW1lLT5zaXplKCkpLCAn
XScpOworICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhtb2R1bGVOYW1lLCAiLndhc20tZnVuY3Rp
b25bIiwgU3RyaW5nOjpudW1iZXIoaW9uLmluZGV4KCkpLCAnXScpOworICAgIHJldHVybiBtYWtl
U3RyaW5nKG1vZHVsZU5hbWUsICIud2FzbS1mdW5jdGlvblsiLCBTdHJpbmcoaW9uLm5hbWUoKS0+
ZGF0YSgpLCBpb24ubmFtZSgpLT5zaXplKCkpLCAnXScpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUlu
ZGV4T3JOYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUu
aAppbmRleCA1ZWVlZmM4OGFmNzYuLjJkOTAzMDExOGY4YyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmgKQEAgLTQwLDE0ICs0MCw2NyBAQCBzdHJ1Y3Qg
TmFtZVNlY3Rpb247CiBzdHJ1Y3QgSW5kZXhPck5hbWUgewogICAgIHR5cGVkZWYgc2l6ZV90IElu
ZGV4OwogCi0gICAgSW5kZXhPck5hbWUoKSB7IG1faW5kZXhOYW1lLmluZGV4ID0gZW1wdHlUYWc7
IH0KK3ByaXZhdGU6CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBlbnVtIGNsYXNzIEtpbmQg
OiB1aW50OF90IHsKKyAgICAgICAgRW1wdHksCisgICAgICAgIEluZGV4LAorICAgICAgICBOYW1l
CisgICAgfTsKKyNlbmRpZgorcHVibGljOgorCisgICAgSW5kZXhPck5hbWUoKQorICAgIHsKKyNp
ZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBtX2luZGV4TmFtZS5pbmRleCA9IGVtcHR5VGFnOwor
I2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgbV9raW5kID0gS2luZDo6RW1wdHk7Cisj
ZW5kaWYKKyAgICB9CisKICAgICBJbmRleE9yTmFtZShJbmRleCwgc3RkOjpwYWlyPGNvbnN0IE5h
bWUqLCBSZWZQdHI8TmFtZVNlY3Rpb24+PiYmKTsKLSAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7
IHJldHVybiBiaXR3aXNlX2Nhc3Q8SW5kZXg+KG1faW5kZXhOYW1lKSAmIGVtcHR5VGFnOyB9Ci0g
ICAgYm9vbCBpc0luZGV4KCkgY29uc3QgeyByZXR1cm4gYml0d2lzZV9jYXN0PEluZGV4PihtX2lu
ZGV4TmFtZSkgJiBpbmRleFRhZzsgfQotICAgIGJvb2wgaXNOYW1lKCkgY29uc3QgeyByZXR1cm4g
IShpc0VtcHR5KCkgfHwgaXNOYW1lKCkpOyB9Ci0gICAgTmFtZVNlY3Rpb24qIG5hbWVTZWN0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9uYW1lU2VjdGlvbi5nZXQoKTsgfQogCi0gICAgZnJpZW5kIFN0
cmluZyBtYWtlU3RyaW5nKGNvbnN0IEluZGV4T3JOYW1lJik7CisgICAgYm9vbCBpc0VtcHR5KCkg
Y29uc3QKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgcmV0dXJuIGJpdHdpc2Vf
Y2FzdDxJbmRleD4obV9pbmRleE5hbWUpICYgZW1wdHlUYWc7CisjZWxpZiBVU0UoSlNWQUxVRTMy
XzY0KQorICAgICAgICByZXR1cm4gbV9raW5kID09IEtpbmQ6OkVtcHR5OworI2VuZGlmCisgICAg
fQorCisgICAgYm9vbCBpc0luZGV4KCkgY29uc3QKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkK
KyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxJbmRleD4obV9pbmRleE5hbWUpICYgaW5kZXhU
YWc7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4gbV9raW5kID09IEtp
bmQ6OkluZGV4OworI2VuZGlmCisgICAgfQorCisgICAgYm9vbCBpc05hbWUoKSBjb25zdAorICAg
IHsKKyAgICAgICAgcmV0dXJuICEoaXNFbXB0eSgpIHx8IGlzSW5kZXgoKSk7CisgICAgfQorCisg
ICAgSW5kZXggaW5kZXgoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzSW5kZXgoKSk7
CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgcmV0dXJuIG1faW5kZXhOYW1lLmluZGV4ICYg
fmluZGV4VGFnOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgcmV0dXJuIG1faW5k
ZXhOYW1lLmluZGV4OworI2VuZGlmCisgICAgfQorCisgICAgY29uc3QgTmFtZSogbmFtZSgpIGNv
bnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNOYW1lKCkpOworICAgICAgICByZXR1cm4gbV9p
bmRleE5hbWUubmFtZTsKKyAgICB9CisKKyAgICBOYW1lU2VjdGlvbiogbmFtZVNlY3Rpb24oKSBj
b25zdCB7IHJldHVybiBtX25hbWVTZWN0aW9uLmdldCgpOyB9CiAKIHByaXZhdGU6CiAgICAgdW5p
b24gewpAQCAtNTYsMTAgKzEwOSwxNSBAQCBwcml2YXRlOgogICAgIH0gbV9pbmRleE5hbWU7CiAg
ICAgUmVmUHRyPE5hbWVTZWN0aW9uPiBtX25hbWVTZWN0aW9uOwogCisjaWYgVVNFKEpTVkFMVUU2
NCkKICAgICAvLyBVc2UgdGhlIHRvcCBiaXRzIGFzIHRhZ3MuIE5laXRoZXIgcG9pbnRlcnMgbm9y
IHRoZSBmdW5jdGlvbiBpbmRleCBzcGFjZSBzaG91bGQgdXNlIHRoZW0uCiAgICAgc3RhdGljIGNv
bnN0ZXhwciBJbmRleCBpbmRleFRhZyA9IDF1bGwgPDwgKENIQVJfQklUICogc2l6ZW9mKEluZGV4
KSAtIDEpOwogICAgIHN0YXRpYyBjb25zdGV4cHIgSW5kZXggZW1wdHlUYWcgPSAxdWxsIDw8IChD
SEFSX0JJVCAqIHNpemVvZihJbmRleCkgLSAyKTsKICAgICBzdGF0aWMgY29uc3RleHByIEluZGV4
IGFsbFRhZ3MgPSBpbmRleFRhZyB8IGVtcHR5VGFnOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkK
KyAgICAvLyBVc2UgYW4gZXhwbGljaXQgdGFnIGFzIHBvaW50ZXJzIG1pZ2h0IGhhdmUgaGlnaCBi
aXRzIHNldAorICAgIEtpbmQgbV9raW5kOworI2VuZGlmCiB9OwogCiBTdHJpbmcgbWFrZVN0cmlu
Zyhjb25zdCBJbmRleE9yTmFtZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5z
dGFuY2UuaAppbmRleCA3MTBiODc2ZTIyNDUuLmRhNjBkNTY2NTgxNiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmgKQEAgLTEwNyw3ICsxMDcsOCBAQCBwdWJsaWM6
CiAgICAgewogICAgICAgICBpZiAobV9tZW1vcnkgIT0gbnVsbHB0cikgewogICAgICAgICAgICAg
bV9jYWNoZWRNZW1vcnkgPSBDYWdlZFB0cjxHaWdhY2FnZTo6UHJpbWl0aXZlLCB2b2lkLCB0YWdD
YWdlZFB0cj4obWVtb3J5KCktPm1lbW9yeSgpLCBtZW1vcnkoKS0+Ym91bmRzQ2hlY2tpbmdTaXpl
KCkpOwotICAgICAgICAgICAgbV9jYWNoZWRCb3VuZHNDaGVja2luZ1NpemUgPSBtZW1vcnkoKS0+
Ym91bmRzQ2hlY2tpbmdTaXplKCk7CisgICAgICAgICAgICAvLyBUaGlzIGlzIHVzZWQgYnkgdGhl
IG5vbi1zaWduYWxpbmcgYmFzZWQgYm91bmQgY2hlY2tpbmcsIHNvIHVzZSB0aGUgYWN0dWFsIHNp
emUgb2YgdGhlIG1lbW9yeS4KKyAgICAgICAgICAgIG1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXpl
ID0gbWVtb3J5KCktPnNpemUoKTsKICAgICAgICAgICAgIEFTU0VSVChtZW1vcnkoKS0+bWVtb3J5
KCkgPT0gY2FjaGVkTWVtb3J5KCkpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKaW5kZXggMTM1NjkwZGEy
ZDYwLi5iNmI0YTQ2OGFhNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21MTEludEdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUxMSW50R2VuZXJhdG9yLmNwcApAQCAtMzM4LDcgKzMzOCw3IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICByZXR1cm4gbV9ub3JtYWxpemVkQXJndW1lbnRzW2luZGV4XTsKIAogICAgICAgICBj
b25zdCBhdXRvJiBjYWxsaW5nQ29udmVudGlvbiA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpOwot
ICAgICAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmdwckFy
Z3Muc2l6ZSgpOworICAgICAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252
ZW50aW9uLmpzckFyZ3Muc2l6ZSgpOwogICAgICAgICBjb25zdCB1aW50MzJfdCBmcHJDb3VudCA9
IGNhbGxpbmdDb252ZW50aW9uLmZwckFyZ3Muc2l6ZSgpOwogICAgICAgICByZXR1cm4gdmlydHVh
bFJlZ2lzdGVyRm9yTG9jYWwoaW5kZXggLSBtX2NvZGVCbG9jay0+bV9udW1Bcmd1bWVudHMgKyBn
cHJDb3VudCArIGZwckNvdW50ICsgbnVtYmVyT2ZMTEludENhbGxlZVNhdmVSZWdpc3RlcnMpOwog
ICAgIH0KQEAgLTU5Miw3ICs1OTIsNyBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3Jt
YXRpb25Gb3JDYWxsZXIoY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUpIC0+IExMSQogICAgIGNv
bnN0IGF1dG8gaW5pdGlhbFN0YWNrU2l6ZSA9IG1fc3RhY2tTaXplOwogCiAgICAgY29uc3QgYXV0
byYgY2FsbGluZ0NvbnZlbnRpb24gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKTsKLSAgICBjb25z
dCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOwor
ICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uanNyQXJncy5z
aXplKCk7CiAgICAgY29uc3QgdWludDMyX3QgZnByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5m
cHJBcmdzLnNpemUoKTsKIAogICAgIHVpbnQzMl90IHN0YWNrQ291bnQgPSAwOwpAQCAtNzM0LDcg
KzczNCw3IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvckNhbGxlZShj
b25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSkgLT4gVmVjCiAgICAgbV9yZXN1bHRzLnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkoc2lnbmF0dXJlLnJldHVybkNvdW50KCkpOwogCiAgICAgY29uc3QgYXV0
byYgY2FsbGluZ0NvbnZlbnRpb24gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKTsKLSAgICBjb25z
dCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOwor
ICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uanNyQXJncy5z
aXplKCk7CiAgICAgY29uc3QgdWludDMyX3QgZnByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5m
cHJBcmdzLnNpemUoKTsKIAogICAgIHVpbnQzMl90IGdwckluZGV4ID0gMDsKQEAgLTc4MCw3ICs3
ODAsNyBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjphZGRBcmd1bWVudHMoY29uc3QgU2lnbmF0dXJl
JiBzaWduYXR1cmUpIC0+IFBhcnRpYWxSZXN1bHQKICAgICBtX25vcm1hbGl6ZWRBcmd1bWVudHMu
cmVzaXplKG1fY29kZUJsb2NrLT5tX251bUFyZ3VtZW50cyk7CiAKICAgICBjb25zdCBhdXRvJiBj
YWxsaW5nQ29udmVudGlvbiA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpOwotICAgIGNvbnN0IHVp
bnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZ3ByQXJncy5zaXplKCk7CisgICAg
Y29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5qc3JBcmdzLnNpemUo
KTsKICAgICBjb25zdCB1aW50MzJfdCBmcHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmZwckFy
Z3Muc2l6ZSgpOwogICAgIGNvbnN0IHVpbnQzMl90IG1heEdQUkluZGV4ID0gZ3ByQ291bnQ7CiAg
ICAgY29uc3QgdWludDMyX3QgbWF4RlBSSW5kZXggPSBncHJDb3VudCArIGZwckNvdW50OwpAQCAt
OTYxLDcgKzk2MSw3IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmFkZExvb3AoQmxvY2tTaWduYXR1
cmUgc2lnbmF0dXJlLCBTdGFjayYgZW5jbG9zaW5nU3RhY2ssIENvCiAgICAgICAgIG9zckVudHJ5
RGF0YS5hcHBlbmQobV9ub3JtYWxpemVkQXJndW1lbnRzW2ldKTsKIAogICAgIGNvbnN0IGF1dG8m
IGNhbGxpbmdDb252ZW50aW9uID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCk7Ci0gICAgY29uc3Qg
dWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5ncHJBcmdzLnNpemUoKTsKKyAg
ICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmpzckFyZ3Muc2l6
ZSgpOwogICAgIGNvbnN0IHVpbnQzMl90IGZwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZnBy
QXJncy5zaXplKCk7CiAgICAgZm9yICh1aW50MzJfdCBpID0gZ3ByQ291bnQgKyBmcHJDb3VudCAr
IG51bWJlck9mTExJbnRDYWxsZWVTYXZlUmVnaXN0ZXJzOyBpIDwgbV9jb2RlQmxvY2stPm1fbnVt
VmFyczsgaSsrKQogICAgICAgICBvc3JFbnRyeURhdGEuYXBwZW5kKHZpcnR1YWxSZWdpc3RlckZv
ckxvY2FsKGkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21M
TEludFBsYW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5j
cHAKaW5kZXggYWUxNWY4ZGVkZmJlLi44MmMyYTVlMjY4NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3BwCkBAIC0xMTksMTIgKzExOSwxNSBAQCB2b2lk
IExMSW50UGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlvbigpCiAgICAgICAgICAgICBlbnRyeXBv
aW50c1tpXSA9IGppdC5sYWJlbCgpOwogI2lmIENQVShYODZfNjQpCiAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MgY2FsbGVlU2xvdChDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJl
Z2lzdGVyLCBDYWxsRnJhbWVTbG90OjpjYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihS
ZWdpc3RlcikpIC0gc2l6ZW9mKENQVVJlZ2lzdGVyKSk7Ci0jZWxpZiBDUFUoQVJNNjQpIHx8IENQ
VShSSVNDVjY0KQorI2VsaWYgQ1BVKEFSTTY0KSB8fCBDUFUoUklTQ1Y2NCkgfHwgQ1BVKEFSTSkK
ICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBjYWxsZWVTbG90KENDYWxsSGVscGVy
czo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAqIHN0YXRpY19j
YXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpOwog
I2Vsc2UKICNlcnJvciBVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUuCiAjZW5kaWYKLSAgICAgICAg
ICAgIGppdC5zdG9yZVB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoQ2FsbGVlQml0czo6
Ym94V2FzbShtX2NhbGxlZXNWZWN0b3JbaV0ucHRyKCkpKSwgY2FsbGVlU2xvdCk7CisgICAgICAg
ICAgICBqaXQuc3RvcmVQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKENhbGxlZUJpdHM6
OmJveFdhc20obV9jYWxsZWVzVmVjdG9yW2ldLnB0cigpKSksIGNhbGxlZVNsb3Qud2l0aE9mZnNl
dChQYXlsb2FkT2Zmc2V0KSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIGpp
dC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6Oldhc21UYWcpLCBj
YWxsZWVTbG90LndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7CisjZW5kaWYKICAgICAgICAgICAgIGp1
bXBzW2ldID0gaml0Lmp1bXAoKTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21NZW1vcnkuY3BwCmluZGV4IDQ0MDc1OTUyZjAwNy4uYmY1YzFlYzQ2MmJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcApAQCAtOTgsMTEgKzk4LDkg
QEAgY2xhc3MgTWVtb3J5TWFuYWdlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWVtb3J5TWFuYWdlcik7CiBwdWJsaWM6Ci0gICAgTWVt
b3J5TWFuYWdlcigpCi0gICAgICAgIDogbV9tYXhGYXN0TWVtb3J5Q291bnQoT3B0aW9uczo6bWF4
TnVtV2ViQXNzZW1ibHlGYXN0TWVtb3JpZXMoKSkKLSAgICB7Ci0gICAgfQotICAgIAorICAgIE1l
bW9yeU1hbmFnZXIoKSA9IGRlZmF1bHQ7CisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFM
SU5HX01FTU9SWSkKICAgICBNZW1vcnlSZXN1bHQgdHJ5QWxsb2NhdGVGYXN0TWVtb3J5KCkKICAg
ICB7CiAgICAgICAgIE1lbW9yeVJlc3VsdCByZXN1bHQgPSBbJl0gewpAQCAtMTI1LDcgKzEyMyw3
IEBAIHB1YmxpYzoKICAgICAgICAgCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQotICAg
IAorCiAgICAgdm9pZCBmcmVlRmFzdE1lbW9yeSh2b2lkKiBiYXNlUHRyKQogICAgIHsKICAgICAg
ICAgewpAQCAtMTM2LDYgKzEzNCw3IEBAIHB1YmxpYzoKICAgICAgICAgCiAgICAgICAgIGRhdGFM
b2dMbklmKE9wdGlvbnM6OmxvZ1dlYkFzc2VtYmx5TWVtb3J5KCksICJGcmVlZCB2aXJ0dWFsOyBz
dGF0ZTogIiwgKnRoaXMpOwogICAgIH0KKyNlbmRpZgogCiAgICAgTWVtb3J5UmVzdWx0IHRyeUFs
bG9jYXRlR3Jvd2FibGVCb3VuZHNDaGVja2luZ01lbW9yeShzaXplX3QgbWFwcGVkQ2FwYWNpdHkp
CiAgICAgewpAQCAtMTcwLDExICsxNjksMTMgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgLy8g
Tk9URTogVGhpcyBjYW4gYmUgY2FsbGVkIGZyb20gYSBzaWduYWwgaGFuZGxlciwgYnV0IG9ubHkg
YWZ0ZXIgd2UgcHJvdmVkIHRoYXQgd2UncmUgaW4gSklUIGNvZGUgb3IgV2FzbUxMSW50IGNvZGUu
CiAgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1C
TFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICAgICAgZm9yICh2b2lkKiBtZW1vcnkgOiBtX2Zhc3RN
ZW1vcmllcykgewogICAgICAgICAgICAgY2hhciogc3RhcnQgPSBzdGF0aWNfY2FzdDxjaGFyKj4o
bWVtb3J5KTsKICAgICAgICAgICAgIGlmIChzdGFydCA8PSBhZGRyZXNzICYmIGFkZHJlc3MgPD0g
c3RhcnQgKyBNZW1vcnk6OmZhc3RNYXBwZWRCeXRlcygpKQogICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CisjZW5kaWYKICAgICAgICAgdWludHB0cl90IGFkZHJlc3NWYWx1
ZSA9IGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGFkZHJlc3MpOwogICAgICAgICBhdXRvIGl0ZXJh
dG9yID0gc3RkOjp1cHBlcl9ib3VuZChtX2dyb3dhYmxlQm91bmRzQ2hlY2tpbmdNZW1vcmllcy5i
ZWdpbigpLCBtX2dyb3dhYmxlQm91bmRzQ2hlY2tpbmdNZW1vcmllcy5lbmQoKSwgc3RkOjptYWtl
X3BhaXIoYWRkcmVzc1ZhbHVlLCAwKSwKICAgICAgICAgICAgIFtdKHN0ZDo6cGFpcjx1aW50cHRy
X3QsIHNpemVfdD4gYSwgc3RkOjpwYWlyPHVpbnRwdHJfdCwgc2l6ZV90PiBiKSB7CkBAIC0yMjcs
MTMgKzIyOCwxOSBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBv
dXQpIGNvbnN0CiAgICAgeworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZ
KQogICAgICAgICBvdXQucHJpbnQoImZhc3QgbWVtb3JpZXMgPSAgIiwgbV9mYXN0TWVtb3JpZXMu
c2l6ZSgpLCAiLyIsIG1fbWF4RmFzdE1lbW9yeUNvdW50LCAiLCBieXRlcyA9ICIsIG1fcGh5c2lj
YWxCeXRlcywgIi8iLCBtZW1vcnlMaW1pdCgpKTsKKyNlbHNlCisgICAgICAgIG91dC5wcmludCgi
ZmFzdCBtZW1vcmllcyA9IE4uQS4sIGJ5dGVzID0gIiwgbV9waHlzaWNhbEJ5dGVzLCAiLyIsIG1l
bW9yeUxpbWl0KCkpOworI2VuZGlmCiAgICAgfQogICAgIAogcHJpdmF0ZToKICAgICBMb2NrIG1f
bG9jazsKLSAgICB1bnNpZ25lZCBtX21heEZhc3RNZW1vcnlDb3VudCB7IDAgfTsKKyNpZiBFTkFC
TEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKKyAgICB1bnNpZ25lZCBtX21heEZhc3RN
ZW1vcnlDb3VudCB7IE9wdGlvbnM6Om1heE51bVdlYkFzc2VtYmx5RmFzdE1lbW9yaWVzKCkgfTsK
ICAgICBWZWN0b3I8dm9pZCo+IG1fZmFzdE1lbW9yaWVzOworI2VuZGlmCiAgICAgU3RkU2V0PHN0
ZDo6cGFpcjx1aW50cHRyX3QsIHNpemVfdD4+IG1fZ3Jvd2FibGVCb3VuZHNDaGVja2luZ01lbW9y
aWVzOwogICAgIHNpemVfdCBtX3BoeXNpY2FsQnl0ZXMgeyAwIH07CiB9OwpAQCAtMzAwLDYgKzMw
Nyw3IEBAIE1lbW9yeUhhbmRsZTo6fk1lbW9yeUhhbmRsZSgpCiAgICAgICAgIHZvaWQqIG1lbW9y
eSA9IHRoaXMtPm1lbW9yeSgpOwogICAgICAgICBtZW1vcnlNYW5hZ2VyKCkuZnJlZVBoeXNpY2Fs
Qnl0ZXMobV9zaXplKTsKICAgICAgICAgc3dpdGNoIChtX21vZGUpIHsKKyNpZiBFTkFCTEUoV0VC
QVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICAgICAgY2FzZSBNZW1vcnlNb2RlOjpTaWdu
YWxpbmc6CiAgICAgICAgICAgICBpZiAobXByb3RlY3QobWVtb3J5LCBNZW1vcnk6OmZhc3RNYXBw
ZWRCeXRlcygpLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFKSkgewogICAgICAgICAgICAgICAgIGRh
dGFMb2coIm1wcm90ZWN0IGZhaWxlZDogIiwgc2FmZVN0cmVycm9yKGVycm5vKS5kYXRhKCksICJc
biIpOwpAQCAtMzA3LDYgKzMxNSw3IEBAIE1lbW9yeUhhbmRsZTo6fk1lbW9yeUhhbmRsZSgpCiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBtZW1vcnlNYW5hZ2VyKCkuZnJlZUZhc3RNZW1vcnko
bWVtb3J5KTsKICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgICAgIGNhc2UgTWVtb3J5
TW9kZTo6Qm91bmRzQ2hlY2tpbmc6IHsKICAgICAgICAgICAgIHN3aXRjaCAobV9zaGFyaW5nTW9k
ZSkgewogICAgICAgICAgICAgY2FzZSBNZW1vcnlTaGFyaW5nTW9kZTo6RGVmYXVsdDoKQEAgLTM5
NSw2ICs0MDQsNyBAQCBSZWZQdHI8TWVtb3J5PiBNZW1vcnk6OnRyeUNyZWF0ZShQYWdlQ291bnQg
aW5pdGlhbCwgUGFnZUNvdW50IG1heGltdW0sIE1lbW9yeVNoYQogICAgIGlmICghZG9uZSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9T
SUdOQUxJTkdfTUVNT1JZKQogICAgIGNoYXIqIGZhc3RNZW1vcnkgPSBudWxscHRyOwogICAgIGlm
IChPcHRpb25zOjp1c2VXZWJBc3NlbWJseUZhc3RNZW1vcnkoKSkgewogICAgICAgICB0cnlBbGxv
Y2F0ZSgKQEAgLTQxMyw3ICs0MjMsOCBAQCBSZWZQdHI8TWVtb3J5PiBNZW1vcnk6OnRyeUNyZWF0
ZShQYWdlQ291bnQgaW5pdGlhbCwgUGFnZUNvdW50IG1heGltdW0sIE1lbW9yeVNoYQogCiAgICAg
ICAgIHJldHVybiBNZW1vcnk6OmNyZWF0ZShhZG9wdFJlZigqbmV3IE1lbW9yeUhhbmRsZShmYXN0
TWVtb3J5LCBpbml0aWFsQnl0ZXMsIE1lbW9yeTo6ZmFzdE1hcHBlZEJ5dGVzKCksIGluaXRpYWws
IG1heGltdW0sIHNoYXJpbmdNb2RlLCBNZW1vcnlNb2RlOjpTaWduYWxpbmcpKSwgV1RGTW92ZShu
b3RpZnlNZW1vcnlQcmVzc3VyZSksIFdURk1vdmUoc3luY1RyeVRvUmVjbGFpbU1lbW9yeSksIFdU
Rk1vdmUoZ3Jvd1N1Y2Nlc3NDYWxsYmFjaykpOwogICAgIH0KLSAgICAKKyNlbmRpZgorCiAgICAg
aWYgKFVOTElLRUxZKE9wdGlvbnM6OmNyYXNoSWZXZWJBc3NlbWJseUNhbnRGYXN0TWVtb3J5KCkp
KQogICAgICAgICB3ZWJBc3NlbWJseUNvdWxkbnRHZXRGYXN0TWVtb3J5KCk7CiAKQEAgLTQ1Niw2
ICs0NjcsNyBAQCBSZWZQdHI8TWVtb3J5PiBNZW1vcnk6OnRyeUNyZWF0ZShQYWdlQ291bnQgaW5p
dGlhbCwgUGFnZUNvdW50IG1heGltdW0sIE1lbW9yeVNoYQogCiBNZW1vcnk6On5NZW1vcnkoKSA9
IGRlZmF1bHQ7CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKIHNp
emVfdCBNZW1vcnk6OmZhc3RNYXBwZWRSZWR6b25lQnl0ZXMoKQogewogICAgIHJldHVybiBzdGF0
aWNfY2FzdDxzaXplX3Q+KFBhZ2VDb3VudDo6cGFnZVNpemUpICogT3B0aW9uczo6d2ViQXNzZW1i
bHlGYXN0TWVtb3J5UmVkem9uZVBhZ2VzKCk7CkBAIC00NjYsNiArNDc4LDcgQEAgc2l6ZV90IE1l
bW9yeTo6ZmFzdE1hcHBlZEJ5dGVzKCkKICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZih1aW50NjRf
dCkgPT0gc2l6ZW9mKHNpemVfdCksICJXZSByZWx5IG9uIGFsbG93aW5nIHRoZSBtYXhpbXVtIHNp
emUgb2YgTWVtb3J5IHdlIG1hcCB0byBiZSAyXjMyICsgcmVkem9uZSB3aGljaCBpcyBsYXJnZXIg
dGhhbiBmaXRzIGluIGEgMzItYml0IGludGVnZXIgdGhhdCB3ZSdkIHBhc3MgdG8gbXByb3RlY3Qg
aWYgdGhpcyBkaWRuJ3QgaG9sZC4iKTsKICAgICByZXR1cm4gKHN0YXRpY19jYXN0PHNpemVfdD4o
MSkgPDwgMzIpICsgZmFzdE1hcHBlZFJlZHpvbmVCeXRlcygpOwogfQorI2VuZGlmCiAKIGJvb2wg
TWVtb3J5OjphZGRyZXNzSXNJbkdyb3dhYmxlT3JGYXN0TWVtb3J5KHZvaWQqIGFkZHJlc3MpCiB7
CkBAIC01MjQsOCArNTM3LDE0IEBAIEV4cGVjdGVkPFBhZ2VDb3VudCwgTWVtb3J5OjpHcm93RmFp
bFJlYXNvbj4gTWVtb3J5Ojpncm93U2hhcmVkKFBhZ2VDb3VudCBkZWx0YSkKICAgICAgICAgbV9o
YW5kbGUtPmdyb3dUb1NpemUoZGVzaXJlZFNpemUpOwogICAgICAgICByZXR1cm4gb2xkUGFnZUNv
dW50OwogICAgIH0oKSk7Ci0gICAgaWYgKHJlc3VsdCkKKyAgICBpZiAocmVzdWx0KSB7CiAgICAg
ICAgIG1fZ3Jvd1N1Y2Nlc3NDYWxsYmFjayhHcm93U3VjY2Vzc1RhZywgb2xkUGFnZUNvdW50LCBu
ZXdQYWdlQ291bnQpOworICAgICAgICAvLyBVcGRhdGUgY2FjaGUgZm9yIGluc3RhbmNlCisgICAg
ICAgIGZvciAoYXV0byYgaW5zdGFuY2UgOiBtX2luc3RhbmNlcykgeworICAgICAgICAgICAgaWYg
KGluc3RhbmNlLmdldCgpICE9IG51bGxwdHIpCisgICAgICAgICAgICAgICAgaW5zdGFuY2UuZ2V0
KCktPnVwZGF0ZUNhY2hlZE1lbW9yeSgpOworICAgICAgICB9CisgICAgfQogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKQEAgLTU4OCw2ICs2MDcsNyBAQCBFeHBlY3RlZDxQYWdlQ291bnQsIE1lbW9y
eTo6R3Jvd0ZhaWxSZWFzb24+IE1lbW9yeTo6Z3JvdyhQYWdlQ291bnQgZGVsdGEpCiAgICAgICAg
IEFTU0VSVChtZW1vcnkoKSA9PSBuZXdNZW1vcnkpOwogICAgICAgICByZXR1cm4gc3VjY2Vzcygp
OwogICAgIH0KKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBj
YXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzogewogICAgICAgICBzaXplX3QgZXh0cmFCeXRlcyA9
IGRlc2lyZWRTaXplIC0gc2l6ZSgpOwogICAgICAgICBSRUxFQVNFX0FTU0VSVChleHRyYUJ5dGVz
KTsKQEAgLTYxMyw2ICs2MzMsNyBAQCBFeHBlY3RlZDxQYWdlQ291bnQsIE1lbW9yeTo6R3Jvd0Zh
aWxSZWFzb24+IE1lbW9yeTo6Z3JvdyhQYWdlQ291bnQgZGVsdGEpCiAgICAgICAgIG1faGFuZGxl
LT5ncm93VG9TaXplKGRlc2lyZWRTaXplKTsKICAgICAgICAgcmV0dXJuIHN1Y2Nlc3MoKTsKICAg
ICB9CisjZW5kaWYKICAgICB9CiAKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpA
QCAtNjQ2LDcgKzY2Nyw4IEBAIGJvb2wgTWVtb3J5Ojpjb3B5KHVpbnQzMl90IGRzdEFkZHJlc3Ms
IHVpbnQzMl90IHNyY0FkZHJlc3MsIHVpbnQzMl90IGNvdW50KQogICAgICAgICByZXR1cm4gdHJ1
ZTsKIAogICAgIHVpbnQ4X3QqIGJhc2UgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihtZW1v
cnkoKSk7Ci0gICAgbWVtY3B5KGJhc2UgKyBkc3RBZGRyZXNzLCBiYXNlICsgc3JjQWRkcmVzcywg
Y291bnQpOworICAgIC8vIFNvdXJjZSBhbmQgZGVzdGluYXRpb24gYXJlYXMgbWlnaHQgb3Zlcmxh
cCwgc28gdXNpbmcgbWVtbW92ZS4KKyAgICBtZW1tb3ZlKGJhc2UgKyBkc3RBZGRyZXNzLCBiYXNl
ICsgc3JjQWRkcmVzcywgY291bnQpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmgKaW5kZXggZjVjNThmY2Y5NmYyLi40OWM4NTU2NjFl
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmgKQEAgLTEwNiw4ICsx
MDYsMTAgQEAgcHVibGljOgogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgfk1lbW9yeSgpOwogCisj
aWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgc3RhdGljIHNpemVf
dCBmYXN0TWFwcGVkUmVkem9uZUJ5dGVzKCk7CiAgICAgc3RhdGljIHNpemVfdCBmYXN0TWFwcGVk
Qnl0ZXMoKTsgLy8gSW5jbHVkZXMgcmVkem9uZS4KKyNlbmRpZgogICAgIHN0YXRpYyBib29sIGFk
ZHJlc3NJc0luR3Jvd2FibGVPckZhc3RNZW1vcnkodm9pZCopOwogCiAgICAgdm9pZCogbWVtb3J5
KCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGUtPm1lbW9yeSgpOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmNwcAppbmRleCAyNjUy
ZGU3MmVkNTYuLjYwZmFkNjNlZjBlMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwCkBAIC00MSw4ICs0MSwxNSBAQCBjb25z
dCBQaW5uZWRSZWdpc3RlckluZm8mIFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCkKICAgICAgICAg
dW5zaWduZWQgbnVtYmVyT2ZQaW5uZWRSZWdpc3RlcnMgPSAyOwogICAgICAgICBpZiAoIUNvbnRl
eHQ6OnVzZUZhc3RUTFMoKSkKICAgICAgICAgICAgICsrbnVtYmVyT2ZQaW5uZWRSZWdpc3RlcnM7
CisjaWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQogICAgICAgICBHUFJSZWcgYmFzZU1lbW9y
eVBvaW50ZXIgPSBHUFJJbmZvOjpyZWdDUzM7CiAgICAgICAgIEdQUlJlZyBib3VuZHNDaGVja2lu
Z1NpemVSZWdpc3RlciA9IEdQUkluZm86OnJlZ0NTNDsKKyNlbGlmIENQVShBUk0pCisgICAgICAg
IC8vIE5vdCBlbm91Z2ggcmVnaXN0ZXJzLiByZWdDUzAgaXMgdGhlIHdhc20gaW5zdGFuY2UsIHJl
Z0NTMSBpcyBMTEludCBQQgorICAgICAgICBudW1iZXJPZlBpbm5lZFJlZ2lzdGVycyAtPSAyOwor
ICAgICAgICBHUFJSZWcgYmFzZU1lbW9yeVBvaW50ZXIgPSBJbnZhbGlkR1BSUmVnOworICAgICAg
ICBHUFJSZWcgYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIgPSBJbnZhbGlkR1BSUmVnOworI2Vu
ZGlmCiAgICAgICAgIEdQUlJlZyB3YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlciA9IEludmFsaWRH
UFJSZWc7CiAgICAgICAgIGlmICghQ29udGV4dDo6dXNlRmFzdFRMUygpKQogICAgICAgICAgICAg
d2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXIgPSBHUFJJbmZvOjpyZWdDUzA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5oCmluZGV4IDg1
NGZiYTU0ZTMzNy4uMjlmY2JkYjZkNDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uaApAQCAtNTIsMTAgKzUyLDExIEBAIHB1Ymxp
YzoKICAgICBSZWdpc3RlclNldCB0b1NhdmUoTWVtb3J5TW9kZSBtb2RlKSBjb25zdAogICAgIHsK
ICAgICAgICAgUmVnaXN0ZXJTZXQgcmVzdWx0OwotICAgICAgICByZXN1bHQuc2V0KGJhc2VNZW1v
cnlQb2ludGVyKTsKKyAgICAgICAgaWYgKGJhc2VNZW1vcnlQb2ludGVyICE9IEludmFsaWRHUFJS
ZWcpCisgICAgICAgICAgICByZXN1bHQuc2V0KGJhc2VNZW1vcnlQb2ludGVyKTsKICAgICAgICAg
aWYgKHdhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyICE9IEludmFsaWRHUFJSZWcpCiAgICAgICAg
ICAgICByZXN1bHQuc2V0KHdhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyKTsKLSAgICAgICAgaWYg
KG1vZGUgIT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nKQorICAgICAgICBpZiAobW9kZSA9PSBNZW1v
cnlNb2RlOjpCb3VuZHNDaGVja2luZyAmJiBib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlciAhPSBJ
bnZhbGlkR1BSUmVnKQogICAgICAgICAgICAgcmVzdWx0LnNldChib3VuZHNDaGVja2luZ1NpemVS
ZWdpc3Rlcik7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuY3BwCmluZGV4IDliZTA0ZDc3YjA2Yi4uZjMz
YjA1MjUxOTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVt
b3J5TW9kZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1v
ZGUuY3BwCkBAIC0zNyw3ICszNyw5IEBAIGNvbnN0IGNoYXIqIG1ha2VTdHJpbmcoTWVtb3J5TW9k
ZSBtb2RlKQogewogICAgIHN3aXRjaCAobW9kZSkgewogICAgIGNhc2UgTWVtb3J5TW9kZTo6Qm91
bmRzQ2hlY2tpbmc6IHJldHVybiAiQm91bmRzQ2hlY2tpbmciOworI2lmIEVOQUJMRShXRUJBU1NF
TUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIGNhc2UgTWVtb3J5TW9kZTo6U2lnbmFsaW5nOiBy
ZXR1cm4gIlNpZ25hbGluZyI7CisjZW5kaWYKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICByZXR1cm4gIiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU1lbW9yeU1vZGUuaAppbmRleCAwMmNmY2ZlNDlmNDcuLmQ3MTFhZmFmMzAzMyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5oCkBAIC0zNCw3ICszNCw5
IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAvLyBGSVhNRTogV2Ugc2hvdWxk
IHN1cHBvcnQgb3RoZXIgbW9kZXMuIHNlZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2MjY5MwogZW51bSBjbGFzcyBNZW1vcnlNb2RlIDogdWludDhfdCB7CiAgICAg
Qm91bmRzQ2hlY2tpbmcsCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkp
CiAgICAgU2lnbmFsaW5nCisjZW5kaWYKIH07CiAKIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IE51
bWJlck9mTWVtb3J5TW9kZXMgPSAyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU9wY29kZU9yaWdpbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtT3Bjb2RlT3JpZ2luLmNwcAppbmRleCBiNmM1YzI3NTUzMTEuLjlmYzkxYjlkOWM1NCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5jcHAKQEAg
LTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXYXNtT3Bjb2Rl
T3JpZ2luLmgiCiAKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisjaWYgRU5BQkxFKFdFQkFTU0VN
QkxZX0IzSklUKQogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCkBAIC0zNyw0
ICszNyw0IEBAIHZvaWQgT3Bjb2RlT3JpZ2luOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0
CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCiAKLSNlbmRpZiAvLyBFTkFCTEUoV0VCQVNT
RU1CTFkpCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5oCmluZGV4IGEwZDhkZjNhZWYxOS4u
NWM0YjY3NmQ1YzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
T3Bjb2RlT3JpZ2luLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29k
ZU9yaWdpbi5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9CM0pJVCkKIAogI2luY2x1ZGUg
IkIzT3JpZ2luLmgiCiAjaW5jbHVkZSAiV2FzbUZvcm1hdC5oIgpAQCAtNjAsNCArNjAsNCBAQCBw
cml2YXRlOgogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQogCi0jZW5kaWYgLy8gRU5BQkxF
KFdFQkFTU0VNQkxZKQorI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWV9CM0pJVCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcAppbmRleCAxMDgwNDQ5
ZGE2MzguLjNmYzg3MWRiYjc0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbU9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21PcGVyYXRpb25zLmNwcApAQCAtNDY4LDQzICs0NjgsNDMgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbldhc21VbndpbmQsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiAgICAgQVNTRVJUKCEhdm0uY2FsbEZyYW1lRm9yQ2F0Y2gpOwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTY0LCBpbnQ2NF90LCAoQ2FsbEZyYW1lKiBj
YWxsRnJhbWUsIEpTVmFsdWUgdikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29udmVydFRvSTY0LCBpbnQ2NF90LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVuY29kZWRKU1Zh
bHVlIHYpKQogewogICAgIC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5nIEpTV2ViQXNzZW1ibHlJ
bnN0YW5jZSogaW5zdGVhZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAzMjA2CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsK
ICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIHJl
dHVybiB2LnRvQmlnSW50NjQoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh2KS50b0JpZ0ludDY0KGNhbGxGcmFtZS0+bGV4aWNh
bEdsb2JhbE9iamVjdCh2bSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29udmVydFRvRjY0LCBkb3VibGUsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9GNjQsIGRvdWJs
ZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSB2KSkKIHsKICAgICAvLyBG
SVhNRTogQ29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RlYWQuCiAg
ICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIwNgogICAg
IFZNJiB2bSA9IGNhbGxGcmFtZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICByZXR1cm4gdi50b051bWJlcihjYWxs
RnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZGVj
b2RlKHYpLnRvTnVtYmVyKGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpOwogfQog
Ci1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTMyLCBpbnQzMl90
LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdikpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTMyLCBpbnQzMl90LCAoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUsIEVuY29kZWRKU1ZhbHVlIHYpKQogewogICAgIC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5n
IEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGVhZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjA2CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5k
ZXByZWNhdGVkVk0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
RnJhbWUpOwotICAgIHJldHVybiB2LnRvSW50MzIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KHZtKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh2KS50b0ludDMyKGNhbGxGcmFt
ZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29udmVydFRvRjMyLCBmbG9hdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBK
U1ZhbHVlIHYpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0Yz
MiwgZmxvYXQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUgdikpCiB7CiAg
ICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0
ZWFkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMy
MDYKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAgIE5hdGl2ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PGZsb2F0Pih2LnRvTnVtYmVyKGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkp
KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KEpTVmFsdWU6OmRlY29kZSh2KS50b051
bWJlcihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKSk7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRKU1ZhbHVl
LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwgaW50NjRfdCB2YWx1
ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50LCBF
bmNvZGVkSlNWYWx1ZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2Us
IEVuY29kZWRXYXNtVmFsdWUgdmFsdWUpKQogewogICAgIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSog
anNJbnN0YW5jZSA9IGluc3RhbmNlLT5vd25lcjxKU1dlYkFzc2VtYmx5SW5zdGFuY2U+KCk7CiAg
ICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGpzSW5zdGFuY2UtPmdsb2JhbE9iamVj
dCgpOwpAQCAtNTE0LDcgKzUxNCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoQ2FsbEZyYW1lKiBjCiB9CiAKIC8v
IGh0dHBzOi8vd2ViYXNzZW1ibHkuZ2l0aHViLmlvL211bHRpLXZhbHVlL2pzLWFwaS9pbmRleC5o
dG1sI3J1bi1hLWhvc3QtZnVuY3Rpb24KLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25JdGVyYXRlUmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJbnN0YW5jZSog
aW5zdGFuY2UsIGNvbnN0IFNpZ25hdHVyZSogc2lnbmF0dXJlLCBKU1ZhbHVlIHJlc3VsdCwgdWlu
dDY0X3QqIHJlZ2lzdGVyUmVzdWx0cywgdWludDY0X3QqIGNhbGxlZUZyYW1lUG9pbnRlcikpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBjb25zdCBTaWduYXR1cmUq
IHNpZ25hdHVyZSwgRW5jb2RlZEpTVmFsdWUgZW5jUmVzdWx0LCB1aW50NjRfdCogcmVnaXN0ZXJS
ZXN1bHRzLCB1aW50NjRfdCogY2FsbGVlRnJhbWVQb2ludGVyKSkKIHsKICAgICAvLyBGSVhNRTog
Q29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RlYWQuCiAgICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIwNgpAQCAtNTI5LDYg
KzUyOSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0
cywgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJCiAKICAgICB1bnNpZ25lZCBpdGVyYXRp
b25Db3VudCA9IDA7CiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYnVmZmVyOworICAgIEpTVmFs
dWUgcmVzdWx0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY1Jlc3VsdCk7CiAgICAgZm9yRWFjaEluSXRl
cmFibGUoZ2xvYmFsT2JqZWN0LCByZXN1bHQsIFsmXSAoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpT
VmFsdWUgdmFsdWUpIC0+IHZvaWQgewogICAgICAgICBpZiAoYnVmZmVyLnNpemUoKSA8IHNpZ25h
dHVyZS0+cmV0dXJuQ291bnQoKSkKICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQodmFsdWUpOwpA
QCAtNTc4LDggKzU3OSwxMCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRl
cmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSQogICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogCiAgICAgICAgIGF1dG8gcmVwID0gd2Fz
bUNhbGxJbmZvLnJlc3VsdHNbaW5kZXhdOwotICAgICAgICBpZiAocmVwLmlzUmVnKCkpCi0gICAg
ICAgICAgICByZWdpc3RlclJlc3VsdHNbcmVnaXN0ZXJSZXN1bHRPZmZzZXRzLmZpbmQocmVwLnJl
ZygpKS0+b2Zmc2V0KCkgLyBzaXplb2YodWludDY0X3QpXSA9IHVuYm94ZWRWYWx1ZTsKKyAgICAg
ICAgaWYgKHJlcC5pc0dQUigpKQorICAgICAgICAgICAgcmVnaXN0ZXJSZXN1bHRzW3JlZ2lzdGVy
UmVzdWx0T2Zmc2V0cy5maW5kKHJlcC5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSAvIHNp
emVvZih1aW50NjRfdCldID0gdW5ib3hlZFZhbHVlOworICAgICAgICBlbHNlIGlmIChyZXAuaXNG
UFIoKSkKKyAgICAgICAgICAgIHJlZ2lzdGVyUmVzdWx0c1tyZWdpc3RlclJlc3VsdE9mZnNldHMu
ZmluZChyZXAuZnByKCkpLT5vZmZzZXQoKSAvIHNpemVvZih1aW50NjRfdCldID0gdW5ib3hlZFZh
bHVlOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjYWxsZWVGcmFtZVBvaW50ZXJbcmVwLm9m
ZnNldEZyb21GUCgpIC8gc2l6ZW9mKHVpbnQ2NF90KV0gPSB1bmJveGVkVmFsdWU7CiAgICAgfQpA
QCAtNjA0LDEyICs2MDcsMTYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFs
bG9jYXRlUmVzdWx0c0FycmF5LCBKU0FycmF5KiwgKENhbGxGcmFtZSogY2EKICAgICBhdXRvIHdh
c21DYWxsSW5mbyA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpLmNhbGxJbmZvcm1hdGlvbkZvcigq
c2lnbmF0dXJlKTsKICAgICBSZWdpc3RlckF0T2Zmc2V0TGlzdCByZWdpc3RlclJlc3VsdHMgPSB3
YXNtQ2FsbEluZm8uY29tcHV0ZVJlc3VsdHNPZmZzZXRMaXN0KCk7CiAKLSAgICBzdGF0aWNfYXNz
ZXJ0KHNpemVvZihKU1ZhbHVlKSA9PSBzaXplb2YoQ1BVUmVnaXN0ZXIpLCAiVGhlIGNvZGUgYmVs
b3cgcmVsaWVzIG9uIHRoaXMuIik7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpZ25h
dHVyZS0+cmV0dXJuQ291bnQoKTsgKytpKSB7CiAgICAgICAgIFZhbHVlTG9jYXRpb24gbG9jID0g
d2FzbUNhbGxJbmZvLnJlc3VsdHNbaV07CiAgICAgICAgIEpTVmFsdWUgdmFsdWU7Ci0gICAgICAg
IGlmIChsb2MuaXNSZWcoKSkKLSAgICAgICAgICAgIHZhbHVlID0gc3RhY2tQb2ludGVyRnJvbUNh
bGxlZVsocmVnaXN0ZXJSZXN1bHRzLmZpbmQobG9jLnJlZygpKS0+b2Zmc2V0KCkgKyB3YXNtQ2Fs
bEluZm8uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSAvIHNpemVvZihKU1ZhbHVl
KV07CisgICAgICAgIGlmIChsb2MuaXNHUFIoKSkgeworI2lmIFVTRShKU1ZBTEUzMl82NCkKKyAg
ICAgICAgICAgIEFTU0VSVChyZWdpc3RlclJlc3VsdHMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQ
UigpKS0+b2Zmc2V0KCkgKyA0ID09IHJlZ2lzdGVyUmVzdWx0cy5maW5kKGxvYy5qc3IoKS50YWdH
UFIoKSktPm9mZnNldCgpKTsKKyNlbmRpZgorICAgICAgICAgICAgdmFsdWUgPSBzdGFja1BvaW50
ZXJGcm9tQ2FsbGVlWyhyZWdpc3RlclJlc3VsdHMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigp
KS0+b2Zmc2V0KCkgKyB3YXNtQ2FsbEluZm8uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5
dGVzKSAvIHNpemVvZihKU1ZhbHVlKV07CisgICAgICAgIH0gZWxzZSBpZiAobG9jLmlzRlBSKCkp
CisgICAgICAgICAgICB2YWx1ZSA9IHN0YWNrUG9pbnRlckZyb21DYWxsZWVbKHJlZ2lzdGVyUmVz
dWx0cy5maW5kKGxvYy5mcHIoKSktPm9mZnNldCgpICsgd2FzbUNhbGxJbmZvLmhlYWRlckFuZEFy
Z3VtZW50U3RhY2tTaXplSW5CeXRlcykgLyBzaXplb2YoSlNWYWx1ZSldOwogICAgICAgICBlbHNl
CiAgICAgICAgICAgICB2YWx1ZSA9IHN0YWNrUG9pbnRlckZyb21DYWxsZWVbbG9jLm9mZnNldEZy
b21TUCgpIC8gc2l6ZW9mKEpTVmFsdWUpXTsKICAgICAgICAgcmVzdWx0LT5pbml0aWFsaXplSW5k
ZXgoaW5pdGlhbGl6YXRpb25TY29wZSwgaSwgdmFsdWUpOwpAQCAtOTQ0LDcgKzk1MSw4IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGhyb3csIHZvaWQqLCAoSW5zdGFu
Y2UqIGluc3RhbmNlLCBDYWxsRnJhCiAgICAgLy8gdG8gdGhlIGV4Y2VwdGlvbiBoYW5kbGVyLiBJ
ZiB3ZSBkaWQgdGhpcywgd2UgY291bGQgcmVtb3ZlIHRoaXMgdGVycmlibGUgaGFjay4KICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDQwCiAgICAgdm0u
Y2FsbGVlRm9yV2FzbUNhdGNoID0gY2FsbEZyYW1lLT5jYWxsZWUoKTsKLSAgICBiaXR3aXNlX2Nh
c3Q8dWludDY0X3QqPihjYWxsRnJhbWUpW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6
Y2FsbGVlKV0gPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsK
KyAgICBSZWdpc3RlciogY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxSZWdpc3Rlcio+KGNhbGxG
cmFtZSkgKyBzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7CisgICAgKmNh
bGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8SlNDZWxsKj4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOwog
ICAgIHJldHVybiB2bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKIH0KIApAQCAtOTcwLDcgKzk3
OCw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtUmV0aHJvdywgdm9p
ZCosIChJbnN0YW5jZSogaW5zdGFuY2UsIENhbGxGCiAgICAgLy8gdG8gdGhlIGV4Y2VwdGlvbiBo
YW5kbGVyLiBJZiB3ZSBkaWQgdGhpcywgd2UgY291bGQgcmVtb3ZlIHRoaXMgdGVycmlibGUgaGFj
ay4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDQw
CiAgICAgdm0uY2FsbGVlRm9yV2FzbUNhdGNoID0gY2FsbEZyYW1lLT5jYWxsZWUoKTsKLSAgICBi
aXR3aXNlX2Nhc3Q8dWludDY0X3QqPihjYWxsRnJhbWUpW3N0YXRpY19jYXN0PGludD4oQ2FsbEZy
YW1lU2xvdDo6Y2FsbGVlKV0gPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KGpzSW5zdGFuY2UtPm1v
ZHVsZSgpKTsKKyAgICBSZWdpc3RlciogY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxSZWdpc3Rl
cio+KGNhbGxGcmFtZSkgKyBzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7
CisgICAgKmNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8SlNDZWxsKj4oanNJbnN0YW5jZS0+bW9k
dWxlKCkpOwogICAgIHJldHVybiB2bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKIH0KIApAQCAt
MTAwNSw3ICsxMDE0LDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21U
b0pTRXhjZXB0aW9uLCB2b2lkKiwgKENhbGxGcmFtZSogY2FsbEZyYW0KICAgICAvLyB0byB0aGUg
ZXhjZXB0aW9uIGhhbmRsZXIuIElmIHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0
ZXJyaWJsZSBoYWNrLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzA0NDAKICAgICB2bS5jYWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxl
ZSgpOwotICAgIGJpdHdpc2VfY2FzdDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8
aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oaW5z
dGFuY2UtPm1vZHVsZSgpKTsKKyAgICBSZWdpc3RlciogY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2Fz
dDxSZWdpc3Rlcio+KGNhbGxGcmFtZSkgKyBzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6
OmNhbGxlZSk7CisgICAgKmNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8SlNDZWxsKj4oaW5zdGFu
Y2UtPm1vZHVsZSgpKTsKICAgICByZXR1cm4gdm0udGFyZ2V0TWFjaGluZVBDRm9yVGhyb3c7CiB9
CiAKQEAgLTEwMjksNyArMTAzOSwxMSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uV2FzbVJldHJpZXZlQW5kQ2xlYXJFeGNlcHRpb25JZkNhdGNoYWJsZSwgUG9pbgogICAgIHZv
aWQqIHBheWxvYWQgPSBudWxscHRyOwogICAgIGlmIChKU1dlYkFzc2VtYmx5RXhjZXB0aW9uKiB3
YXNtRXhjZXB0aW9uID0ganNEeW5hbWljQ2FzdDxKU1dlYkFzc2VtYmx5RXhjZXB0aW9uKj4odm0s
IHRocm93blZhbHVlKSkKICAgICAgICAgcGF5bG9hZCA9IGJpdHdpc2VfY2FzdDx2b2lkKj4od2Fz
bUV4Y2VwdGlvbi0+cGF5bG9hZCgpLmRhdGEoKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICBy
ZXR1cm4gUG9pbnRlclBhaXIgeyBiaXR3aXNlX2Nhc3Q8dm9pZCo+KEpTVmFsdWU6OmVuY29kZSh0
aHJvd25WYWx1ZSkpLCBwYXlsb2FkIH07CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIHJl
dHVybiBQb2ludGVyUGFpciB7IGJpdHdpc2VfY2FzdDx2b2lkKj4odGhyb3duVmFsdWUucGF5bG9h
ZCgpKSwgcGF5bG9hZCB9OworI2VuZGlmCiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNt
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaAppbmRleCBjZjdj
MGQ1ZmVmNGQuLmIzMjAwMGQ4MzJjYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtT3BlcmF0aW9ucy5oCkBAIC00NiwyMyArNDYsMjMgQEAgbmFtZXNwYWNlIFdhc20gewogCiBj
bGFzcyBJbnN0YW5jZTsKIGNsYXNzIFNpZ25hdHVyZTsKLQotdm9pZCBsb2FkVmFsdWVzSW50b0J1
ZmZlcihQcm9iZTo6Q29udGV4dCYsIGNvbnN0IFN0YWNrTWFwJiwgdWludDY0X3QqIGJ1ZmZlcik7
Cit0eXBlZGVmIGludDY0X3QgRW5jb2RlZFdhc21WYWx1ZTsKIAogI2lmIEVOQUJMRShXRUJBU1NF
TUJMWV9CM0pJVCkKK3ZvaWQgbG9hZFZhbHVlc0ludG9CdWZmZXIoUHJvYmU6OkNvbnRleHQmLCBj
b25zdCBTdGFja01hcCYsIHVpbnQ2NF90KiBidWZmZXIpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25XYXNtVHJpZ2dlck9TUkVudHJ5Tm93LCB2b2lkLCAoUHJvYmU6OkNvbnRl
eHQmKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2VyVGll
clVwTm93LCB2b2lkLCAoSW5zdGFuY2UqLCB1aW50MzJfdCBmdW5jdGlvbkluZGV4KSk7CiAjZW5k
aWYKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVVud2luZCwgdm9pZCwg
KENhbGxGcmFtZSopKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252
ZXJ0VG9JNjQsIGludDY0X3QsIChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0Y2NCwgZG91YmxlLCAoQ2FsbEZyYW1lKiwg
SlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9J
MzIsIGludDMyX3QsIChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0YzMiwgZmxvYXQsIChDYWxsRnJhbWUqLCBKU1ZhbHVl
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCwgaW50
NjRfdCwgKENhbGxGcmFtZSosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0Y2NCwgZG91YmxlLCAoQ2FsbEZyYW1lKiwgRW5jb2Rl
ZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRv
STMyLCBpbnQzMl90LCAoQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjMyLCBmbG9hdCwgKENhbGxGcmFtZSos
IEVuY29kZWRKU1ZhbHVlKSk7CiAKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29udmVydFRvQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKENhbGxGcmFtZSosIEluc3RhbmNlKiwg
aW50NjRfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9C
aWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoQ2FsbEZyYW1lKiwgSW5zdGFuY2UqLCBFbmNvZGVkV2Fz
bVZhbHVlKSk7CiAKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJl
c3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqLCBJbnN0YW5jZSosIGNvbnN0IFNpZ25hdHVyZSosIEpT
VmFsdWUsIHVpbnQ2NF90KiwgdWludDY0X3QqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1lKiwgSW5zdGFuY2UqLCBj
b25zdCBTaWduYXR1cmUqLCBFbmNvZGVkSlNWYWx1ZSwgdWludDY0X3QqLCB1aW50NjRfdCopKTsK
IEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXks
IEpTQXJyYXkqLCAoQ2FsbEZyYW1lKiwgV2FzbTo6SW5zdGFuY2UqLCBjb25zdCBTaWduYXR1cmUq
LCBJbmRleGluZ1R5cGUsIEpTVmFsdWUqKSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uV2FzbVdyaXRlQmFycmllclNsb3dQYXRoLCB2b2lkLCAoSlNDZWxsKiwgVk0qKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFnZUNvdW50Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFnZUNvdW50LmgKaW5kZXggYjdkOGM5
ZmNmNzJiLi4zYzc1NTEyZjQ0YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21QYWdlQ291bnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
UGFnZUNvdW50LmgKQEAgLTk4LDcgKzk4LDEyIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25z
dGV4cHIgdWludDMyX3QgcGFnZVNpemUgPSA2NCAqIEtCOwogcHJpdmF0ZToKLSAgICBzdGF0aWMg
Y29uc3RleHByIHVpbnQzMl90IG1heFBhZ2VDb3VudCA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihN
QVhfQVJSQVlfQlVGRkVSX1NJWkUgLyBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocGFnZVNpemUpKTsK
KyAgICAvLyBUaGUgc3BlYyByZXF1aXJlcyB3ZSBhcmUgYWJsZSB0byBpbnN0YW50aWF0ZSBhIG1l
bW9yeSB3aXRoIGEgKm1heGltdW0qIHNpemUgb2YgNjRLIHBhZ2VzLgorICAgIC8vIFRoaXMgZG9l
cyBub3QgbWVhbiB0aGUgbWVtb3J5IGNhbiBuZWNlc3NhcmlseSBncm93IHRoYXQgYmlnLCBhbmQg
d2hlcmUgdGhlCisgICAgLy8gTUFYX0FSUkFZX0JVRkZFUl9TSVpFIGlzIHNtYWxsZXIgKGUuZy46
IG9uIDMyLWJpdCBwbGF0Zm9ybXMpLCB0cnlpbmcgdG8gZ3JvdyB0aGUgbWVtb3J5CisgICAgLy8g
dGhhdCBsYXJnZSB3aWxsIGZhaWwsIHdoaWNoIGlzIGFjY2VwdGFibGUgYWNjb3JkaW5nIHRvIHRo
ZSBzcGVjLiBOZXZlcnRoZWxlc3MsIHdlIHNob3VsZAorICAgIC8vIGJlIGFibGUgdG8gcGFyc2Ug
c3VjaCBhIG1lbW9yeSBhbmQgaW5zdGFudGlhdGUgaXQgd2l0aCBhIHNtYWxsZXIgaW5pdGlhbCBz
aXplLgorICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWF4UGFnZUNvdW50ID0gc3RkOjpt
YXg8dWludDMyX3Q+KDY0KjEwMjQsIE1BWF9BUlJBWV9CVUZGRVJfU0laRSAvIHN0YXRpY19jYXN0
PHVpbnQ2NF90PihwYWdlU2l6ZSkpOwogCiAgICAgdWludDMyX3QgbV9wYWdlQ291bnQ7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5oCmluZGV4IGVkMDBkOWEwYTQyYi4u
ZDQ0MWJjYWQ5NGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
UGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5oCkBA
IC0yMDgsNyArMjA4LDcgQEAgQUxXQVlTX0lOTElORSBib29sIFBhcnNlcjxTdWNjZXNzVHlwZT46
OnBhcnNlVUludDMyKHVpbnQzMl90JiByZXN1bHQpCiB7CiAgICAgaWYgKGxlbmd0aCgpIDwgNCB8
fCBtX29mZnNldCA+IGxlbmd0aCgpIC0gNCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJl
c3VsdCA9ICpyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oc291cmNlKCkgKyBtX29m
ZnNldCk7CisgICAgbWVtY3B5KCZyZXN1bHQsIHNvdXJjZSgpICsgbV9vZmZzZXQsIHNpemVvZih1
aW50MzJfdCkpOyAvLyBzcmMgY2FuIGJlIHVuYWxpZ25lZAogICAgIG1fb2Zmc2V0ICs9IDQ7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CkBAIC0yMTgsNyArMjE4LDcgQEAgQUxXQVlTX0lOTElORSBib29s
IFBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVUludDY0KHVpbnQ2NF90JiByZXN1bHQpCiB7CiAg
ICAgaWYgKGxlbmd0aCgpIDwgOCB8fCBtX29mZnNldCA+IGxlbmd0aCgpIC0gOCkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIHJlc3VsdCA9ICpyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ2
NF90Kj4oc291cmNlKCkgKyBtX29mZnNldCk7CisgICAgbWVtY3B5KCZyZXN1bHQsIHNvdXJjZSgp
ICsgbV9vZmZzZXQsIHNpemVvZih1aW50NjRfdCkpOyAvLyBzcmMgY2FuIGJlIHVuYWxpZ25lZAog
ICAgIG1fb2Zmc2V0ICs9IDg7CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3BwCmluZGV4IDJhODY3ZDZjNzNmZC4uYWI1YTk5
NzUxZDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1Bh
dGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmNw
cApAQCAtNjQyLDcgKzY0Miw4IEBAIFdBU01fU0xPV19QQVRIX0RFQ0wodGhyb3cpCiAgICAgLy8g
dG8gdGhlIGV4Y2VwdGlvbiBoYW5kbGVyLiBJZiB3ZSBkaWQgdGhpcywgd2UgY291bGQgcmVtb3Zl
IHRoaXMgdGVycmlibGUgaGFjay4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTcwNDQwCiAgICAgdm0uY2FsbGVlRm9yV2FzbUNhdGNoID0gY2FsbEZyYW1l
LT5jYWxsZWUoKTsKLSAgICBiaXR3aXNlX2Nhc3Q8dWludDY0X3QqPihjYWxsRnJhbWUpW3N0YXRp
Y19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0gPSBiaXR3aXNlX2Nhc3Q8dWludDY0
X3Q+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsKKyAgICBSZWdpc3RlciogY2FsbGVlU2xvdCA9IGJp
dHdpc2VfY2FzdDxSZWdpc3Rlcio+KGNhbGxGcmFtZSkgKyBzdGF0aWNfY2FzdDxpbnQ+KENhbGxG
cmFtZVNsb3Q6OmNhbGxlZSk7CisgICAgKmNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8SlNDZWxs
Kj4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOwogICAgIFdBU01fUkVUVVJOX1RXTyh2bS50YXJnZXRN
YWNoaW5lUENGb3JUaHJvdywgbnVsbHB0cik7CiB9CiAKQEAgLTY3MCw3ICs2NzEsOCBAQCBXQVNN
X1NMT1dfUEFUSF9ERUNMKHJldGhyb3cpCiAgICAgLy8gdG8gdGhlIGV4Y2VwdGlvbiBoYW5kbGVy
LiBJZiB3ZSBkaWQgdGhpcywgd2UgY291bGQgcmVtb3ZlIHRoaXMgdGVycmlibGUgaGFjay4KICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDQwCiAgICAg
dm0uY2FsbGVlRm9yV2FzbUNhdGNoID0gY2FsbEZyYW1lLT5jYWxsZWUoKTsKLSAgICBiaXR3aXNl
X2Nhc3Q8dWludDY0X3QqPihjYWxsRnJhbWUpW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xv
dDo6Y2FsbGVlKV0gPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KGpzSW5zdGFuY2UtPm1vZHVsZSgp
KTsKKyAgICBSZWdpc3RlciogY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxSZWdpc3Rlcio+KGNh
bGxGcmFtZSkgKyBzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7CisgICAg
KmNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8SlNDZWxsKj4oanNJbnN0YW5jZS0+bW9kdWxlKCkp
OwogICAgIFdBU01fUkVUVVJOX1RXTyh2bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdywgbnVsbHB0
cik7CiB9CiAKQEAgLTcxNyw2ICs3MTksMjE0IEBAIFdBU01fU0xPV19QQVRIX0RFQ0wocmV0cmll
dmVfYW5kX2NsZWFyX2V4Y2VwdGlvbikKICAgICBXQVNNX1JFVFVSTl9UV08ocGMsIHBheWxvYWQp
OwogfQogCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKK1dBU01fU0xPV19QQVRIX0RFQ0woZjMyX2Nl
aWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9u
ID0gcGMtPmFzPFdhc21GMzJDZWlsPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3Ry
dWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5ib3hlZEZsb2F0KHN0ZDo6Y2VpbChvcGVyYW5kKSkpKTsKK30KKworV0FT
TV9TTE9XX1BBVEhfREVDTChmMzJfZmxvb3IpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNl
KTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GMzJGbG9vcj4oKTsKKyAgICBm
bG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRGbG9hdCgp
OworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc1VuYm94ZWRGbG9hdChzdGQ6OmZs
b29yKG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGYzMl90cnVuYykKK3sK
KyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+
YXM8V2FzbUYzMlRydW5jPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9u
Lm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5ib3hlZEZsb2F0KHN0ZDo6dHJ1bmMob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xP
V19QQVRIX0RFQ0woZjMyX25lYXJlc3QpCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVy
aWNfbGltaXRzPGZsb2F0Pjo6cm91bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90b19uZWFyZXN0KTsK
KyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+
YXM8V2FzbUYzMk5lYXJlc3Q+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rp
b24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjpl
bmNvZGUoanNVbmJveGVkRmxvYXQoc3RkOjpuZWFyYnlpbnQob3BlcmFuZCkpKSk7Cit9CisKK1dB
U01fU0xPV19QQVRIX0RFQ0woZjY0X2NlaWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNl
KTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GNjRDZWlsPigpOworICAgIGRv
dWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUo
KTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoc3RkOjpj
ZWlsKG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGY2NF9mbG9vcikKK3sK
KyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+
YXM8V2FzbUY2NEZsb29yPigpOworICAgIGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlv
bi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjpl
bmNvZGUoanNEb3VibGVOdW1iZXIoc3RkOjpmbG9vcihvcGVyYW5kKSkpKTsKK30KKworV0FTTV9T
TE9XX1BBVEhfREVDTChmNjRfdHJ1bmMpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsK
KyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GNjRUcnVuYz4oKTsKKyAgICBkb3Vi
bGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7
CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHN0ZDo6dHJ1
bmMob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjY0X25lYXJlc3QpCit7
CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cm91bmRfc3R5
bGUgPT0gc3RkOjpyb3VuZF90b19uZWFyZXN0KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2Up
OworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NE5lYXJlc3Q+KCk7CisgICAg
ZG91YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJs
ZSgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGQ6
Om5lYXJieWludChvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmMzJfY29u
dmVydF91X2k2NCkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8Zmxv
YXQ+Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOworICAgIFVOVVNFRF9Q
QVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjMyQ29u
dmVydFVJNjQ+KCk7CisgICAgdWludDY0X3Qgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9v
cGVyYW5kKS51bmJveGVkSW50NjQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUo
anNVbmJveGVkRmxvYXQoc3RhdGljX2Nhc3Q8ZmxvYXQ+KG9wZXJhbmQpKSkpOworfQorCitXQVNN
X1NMT1dfUEFUSF9ERUNMKGYzMl9jb252ZXJ0X3NfaTY0KQoreworICAgIHN0YXRpY19hc3NlcnQo
c3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91bmRfdG9f
bmVhcmVzdCk7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0
aW9uID0gcGMtPmFzPFdhc21GMzJDb252ZXJ0U0k2ND4oKTsKKyAgICBpbnQ2NF90IG9wZXJhbmQg
PSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEludDY0KCk7CisgICAgV0FTTV9S
RVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpzVW5ib3hlZEZsb2F0KHN0YXRpY19jYXN0PGZsb2F0Pihv
cGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmNjRfY29udmVydF91X2k2NCkK
K3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpyb3VuZF9z
dHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5j
ZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjY0Q29udmVydFVJNjQ+KCk7
CisgICAgdWludDY0X3Qgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJv
eGVkSW50NjQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1i
ZXIoc3RhdGljX2Nhc3Q8ZG91YmxlPihvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhf
REVDTChmNjRfY29udmVydF9zX2k2NCkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJp
Y19saW1pdHM8ZmxvYXQ+Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOwor
ICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5h
czxXYXNtRjY0Q29udmVydFNJNjQ+KCk7CisgICAgaW50NjRfdCBvcGVyYW5kID0gUkVBRChpbnN0
cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRJbnQ2NCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFs
dWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGF0aWNfY2FzdDxkb3VibGU+KG9wZXJhbmQpKSkp
OworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY191X2YzMikKK3sKKyAgICBVTlVT
RURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2
NFRydW5jVUYzMj4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29w
ZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9w
ZXJhbmQgPD0gLTEuMGYgfHwgb3BlcmFuZCA+PSAtMi4wZiAqIHN0YXRpY19jYXN0PGZsb2F0PihJ
TlQ2NF9NSU4pKQorICAgICAgICBXQVNNX1RIUk9XKFdhc206OkV4Y2VwdGlvblR5cGU6Ok91dE9m
Qm91bmRzVHJ1bmMpOworICAgIFdBU01fUkVUVVJOKHN0YXRpY19jYXN0PHVpbnQ2NF90PihvcGVy
YW5kKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3NfZjMyKQoreworICAg
IFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxX
YXNtSTY0VHJ1bmNTRjMyPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9u
Lm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkg
fHwgb3BlcmFuZCA8IHN0YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4pIHx8IG9wZXJhbmQgPj0g
LXN0YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4pKQorICAgICAgICBXQVNNX1RIUk9XKFdhc206
OkV4Y2VwdGlvblR5cGU6Ok91dE9mQm91bmRzVHJ1bmMpOworICAgIFdBU01fUkVUVVJOKHN0YXRp
Y19jYXN0PGludDY0X3Q+KG9wZXJhbmQpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRf
dHJ1bmNfdV9mNjQpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGlu
c3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1VGNjQ+KCk7CisgICAgZG91YmxlIG9wZXJh
bmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgpOworICAgIGlm
IChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9wZXJhbmQgPD0gLTEuMCB8fCBvcGVyYW5kID49IC0y
LjAgKiBzdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0X01JTikpCisgICAgICAgIFdBU01fVEhST1co
V2FzbTo6RXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNUcnVuYyk7CisgICAgV0FTTV9SRVRVUk4o
c3RhdGljX2Nhc3Q8dWludDY0X3Q+KG9wZXJhbmQpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVD
TChpNjRfdHJ1bmNfc19mNjQpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBh
dXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1NGNjQ+KCk7CisgICAgZG91Ymxl
IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgpOwor
ICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9wZXJhbmQgPCBzdGF0aWNfY2FzdDxkb3Vi
bGU+KElOVDY0X01JTikgfHwgb3BlcmFuZCA+PSAtc3RhdGljX2Nhc3Q8ZG91YmxlPihJTlQ2NF9N
SU4pKQorICAgICAgICBXQVNNX1RIUk9XKFdhc206OkV4Y2VwdGlvblR5cGU6Ok91dE9mQm91bmRz
VHJ1bmMpOworICAgIFdBU01fUkVUVVJOKHN0YXRpY19jYXN0PGludDY0X3Q+KG9wZXJhbmQpKTsK
K30KKworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc2F0X2YzMl91KQoreworICAgIFVO
VVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNt
STY0VHJ1bmNTYXRGMzJVPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9u
Lm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgdWludDY0X3QgcmVzdWx0OworICAgIGlm
IChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9wZXJhbmQgPD0gLTEuMGYpCisgICAgICAgIHJlc3Vs
dCA9IDA7CisgICAgZWxzZSBpZiAob3BlcmFuZCA+PSAtMi4wZiAqIHN0YXRpY19jYXN0PGZsb2F0
PihJTlQ2NF9NSU4pKQorICAgICAgICByZXN1bHQgPSBVSU5UNjRfTUFYOworICAgIGVsc2UKKyAg
ICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG9wZXJhbmQpOworICAgIFdBU01f
UkVUVVJOKHJlc3VsdCk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3NhdF9m
MzJfcykKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rp
b24gPSBwYy0+YXM8V2FzbUk2NFRydW5jU2F0RjMyUz4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0g
UkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIGludDY0X3Qg
cmVzdWx0OworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpKQorICAgICAgICByZXN1bHQgPSAw
OworICAgIGVsc2UgaWYgKG9wZXJhbmQgPCBzdGF0aWNfY2FzdDxmbG9hdD4oSU5UNjRfTUlOKSkK
KyAgICAgICAgcmVzdWx0ID0gSU5UNjRfTUlOOworICAgIGVsc2UgaWYgKG9wZXJhbmQgPj0gLXN0
YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4pKQorICAgICAgICByZXN1bHQgPSBJTlQ2NF9NQVg7
CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxpbnQ2NF90PihvcGVyYW5k
KTsKKyAgICBXQVNNX1JFVFVSTihyZXN1bHQpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2
NF90cnVuY19zYXRfZjY0X3UpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBh
dXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1NhdEY2NFU+KCk7CisgICAgZG91
YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgp
OworICAgIHVpbnQ2NF90IHJlc3VsdDsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5kKSB8fCBv
cGVyYW5kIDw9IC0xLjApCisgICAgICAgIHJlc3VsdCA9IDA7CisgICAgZWxzZSBpZiAob3BlcmFu
ZCA+PSAtMi4wICogc3RhdGljX2Nhc3Q8ZG91YmxlPihJTlQ2NF9NSU4pKQorICAgICAgICByZXN1
bHQgPSBVSU5UNjRfTUFYOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KG9wZXJhbmQpOworICAgIFdBU01fUkVUVVJOKHJlc3VsdCk7Cit9CisKK1dBU01f
U0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3NhdF9mNjRfcykKK3sKKyAgICBVTlVTRURfUEFSQU0o
aW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jU2F0
RjY0Uz4oKTsKKyAgICBkb3VibGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5k
KS51bmJveGVkRG91YmxlKCk7CisgICAgaW50NjRfdCByZXN1bHQ7CisgICAgaWYgKHN0ZDo6aXNu
YW4ob3BlcmFuZCkpCisgICAgICAgIHJlc3VsdCA9IDA7CisgICAgZWxzZSBpZiAob3BlcmFuZCA8
IHN0YXRpY19jYXN0PGRvdWJsZT4oSU5UNjRfTUlOKSkKKyAgICAgICAgcmVzdWx0ID0gSU5UNjRf
TUlOOworICAgIGVsc2UgaWYgKG9wZXJhbmQgPj0gLXN0YXRpY19jYXN0PGRvdWJsZT4oSU5UNjRf
TUlOKSkKKyAgICAgICAgcmVzdWx0ID0gSU5UNjRfTUFYOworICAgIGVsc2UKKyAgICAgICAgcmVz
dWx0ID0gc3RhdGljX2Nhc3Q8aW50NjRfdD4ob3BlcmFuZCk7CisgICAgV0FTTV9SRVRVUk4ocmVz
dWx0KTsKK30KKyNlbmRpZgorCiBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBzbG93X3Bh
dGhfd2FzbV90aHJvd19leGNlcHRpb24oQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IFdhc21J
bnN0cnVjdGlvbiogcGMsIFdhc206Okluc3RhbmNlKiBpbnN0YW5jZSwgV2FzbTo6RXhjZXB0aW9u
VHlwZSBleGNlcHRpb25UeXBlKQogewogICAgIFVOVVNFRF9QQVJBTShwYyk7CkBAIC03MjUsMTYg
KzkzNSwyOCBAQCBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBzbG93X3BhdGhfd2FzbV90
aHJvd19leGNlcHRpb24oQ2FsbEZyYW1lKiBjYWxsRnJhbQogCiBleHRlcm4gIkMiIFNsb3dQYXRo
UmV0dXJuVHlwZSBzbG93X3BhdGhfd2FzbV9wb3Bjb3VudChjb25zdCBXYXNtSW5zdHJ1Y3Rpb24q
IHBjLCB1aW50MzJfdCB4KQogewotICAgIHZvaWQqIHJlc3VsdCA9IGJpdHdpc2VfY2FzdDx2b2lk
Kj4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KF9fYnVpbHRpbl9wb3Bjb3VudCh4KSkpOworICAgIHZv
aWQqIHJlc3VsdCA9IGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8c2l6ZV90PihfX2J1
aWx0aW5fcG9wY291bnQoeCkpKTsKICAgICBXQVNNX1JFVFVSTl9UV08ocGMsIHJlc3VsdCk7CiB9
CiAKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3BvcGNvdW50
bGwoY29uc3QgV2FzbUluc3RydWN0aW9uKiBwYywgdWludDY0X3QgeCkKIHsKLSAgICB2b2lkKiBy
ZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PHVpbnQ2NF90PihfX2J1aWx0
aW5fcG9wY291bnRsbCh4KSkpOworICAgIHZvaWQqIHJlc3VsdCA9IGJpdHdpc2VfY2FzdDx2b2lk
Kj4oc3RhdGljX2Nhc3Q8c2l6ZV90PihfX2J1aWx0aW5fcG9wY291bnRsbCh4KSkpOwogICAgIFdB
U01fUkVUVVJOX1RXTyhwYywgcmVzdWx0KTsKIH0KIAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisv
LyBOb3RlOiBBbGwgdGhlc2UgZGl2IGFuZCByZW0gb3BzIHBlcmZvcm0gZXhjZXB0aW9uIGNoZWNr
cyBpbiBhc20KK2V4dGVybiAiQyIgaW50MzJfdCBzbG93X3BhdGhfd2FzbV9pMzJfZGl2X3MoaW50
MzJfdCBhLCBpbnQzMl90IGIpIHsgcmV0dXJuIGEgLyBiOyB9CitleHRlcm4gIkMiIHVpbnQzMl90
IHNsb3dfcGF0aF93YXNtX2kzMl9kaXZfdSh1aW50MzJfdCBhLCB1aW50MzJfdCBiKSB7IHJldHVy
biBhIC8gYjsgfQorZXh0ZXJuICJDIiBpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9yZW1fcyhp
bnQzMl90IGEsIGludDMyX3QgYikgeyByZXR1cm4gYSAlIGI7IH0KK2V4dGVybiAiQyIgdWludDMy
X3Qgc2xvd19wYXRoX3dhc21faTMyX3JlbV91KHVpbnQzMl90IGEsIHVpbnQzMl90IGIpIHsgcmV0
dXJuIGEgJSBiOyB9CitleHRlcm4gIkMiIGludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X2Rpdl9z
KGludDY0X3QgYSwgaW50NjRfdCBiKSB7IHJldHVybiBhIC8gYjsgfQorZXh0ZXJuICJDIiB1aW50
NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRfZGl2X3UodWludDY0X3QgYSwgdWludDY0X3QgYikgeyBy
ZXR1cm4gYSAvIGI7IH0KK2V4dGVybiAiQyIgaW50NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRfcmVt
X3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpIHsgcmV0dXJuIGEgJSBiOyB9CitleHRlcm4gIkMiIHVp
bnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9yZW1fdSh1aW50NjRfdCBhLCB1aW50NjRfdCBiKSB7
IHJldHVybiBhICUgYjsgfQorI2VuZGlmCisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpMTEludAog
CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbVNsb3dQYXRocy5oCmluZGV4IDQ2MDllMzZiMDM5Mi4uODlmNmUzOTRkODZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5oCkBAIC05NCw2ICs5NCw0
MCBAQCBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBzbG93X3BhdGhfd2FzbV90aHJvd19l
eGNlcHRpb24oQ2FsbEZyYW1lKiwgY29uc3QgVwogZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5
cGUgc2xvd19wYXRoX3dhc21fcG9wY291bnQoY29uc3QgV2FzbUluc3RydWN0aW9uKiBwYywgdWlu
dDMyX3QpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOwogZXh0ZXJuICJDIiBTbG93
UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fcG9wY291bnRsbChjb25zdCBXYXNtSW5zdHJ1
Y3Rpb24qIHBjLCB1aW50NjRfdCkgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CiAK
KyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjMyX2Nl
aWwpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjMyX2Zsb29yKTsKK1dBU01fU0xPV19Q
QVRIX0hJRERFTl9ERUNMKGYzMl90cnVuYyk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChm
MzJfbmVhcmVzdCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfY2VpbCk7CitXQVNN
X1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfZmxvb3IpOworV0FTTV9TTE9XX1BBVEhfSElEREVO
X0RFQ0woZjY0X3RydW5jKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGY2NF9uZWFyZXN0
KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGYzMl9jb252ZXJ0X3VfaTY0KTsKK1dBU01f
U0xPV19QQVRIX0hJRERFTl9ERUNMKGYzMl9jb252ZXJ0X3NfaTY0KTsKK1dBU01fU0xPV19QQVRI
X0hJRERFTl9ERUNMKGY2NF9jb252ZXJ0X3VfaTY0KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9E
RUNMKGY2NF9jb252ZXJ0X3NfaTY0KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGk2NF90
cnVuY191X2YzMik7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNfc19mMzIp
OworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3VfZjY0KTsKK1dBU01fU0xP
V19QQVRIX0hJRERFTl9ERUNMKGk2NF90cnVuY19zX2Y2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURE
RU5fREVDTChpNjRfdHJ1bmNfc2F0X2YzMl91KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNM
KGk2NF90cnVuY19zYXRfZjMyX3MpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3Ry
dW5jX3NhdF9mNjRfdSk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNfc2F0
X2Y2NF9zKTsKKyNlbmRpZgorCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKK2V4dGVybiAiQyIgaW50
MzJfdCBzbG93X3BhdGhfd2FzbV9pMzJfZGl2X3MoaW50MzJfdCBhLCBpbnQzMl90IGIpIFJFRkVS
RU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJDIiB1aW50MzJfdCBzbG93X3Bh
dGhfd2FzbV9pMzJfZGl2X3UodWludDMyX3QgYSwgdWludDMyX3QgYikgUkVGRVJFTkNFRF9GUk9N
X0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMiIGludDMyX3Qgc2xvd19wYXRoX3dhc21faTMy
X3JlbV9zKGludDMyX3QgYSwgaW50MzJfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRF
Uk5BTDsKK2V4dGVybiAiQyIgdWludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX3JlbV91KHVpbnQz
Ml90IGEsIHVpbnQzMl90IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOworZXh0
ZXJuICJDIiBpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9kaXZfcyhpbnQ2NF90IGEsIGludDY0
X3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMiIHVpbnQ2
NF90IHNsb3dfcGF0aF93YXNtX2k2NF9kaXZfdSh1aW50NjRfdCBhLCB1aW50NjRfdCBiKSBSRUZF
UkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgaW50NjRfdCBzbG93X3Bh
dGhfd2FzbV9pNjRfcmVtX3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpIFJFRkVSRU5DRURfRlJPTV9B
U00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJDIiB1aW50NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRf
cmVtX3UodWludDY0X3QgYSwgdWludDY0X3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5U
RVJOQUw7CisjZW5kaWYKKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50CiAKICNlbmRpZiAv
LyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtVmFsdWVMb2NhdGlvbi5jcHAKaW5kZXggNTIyM2YzYWI0ZTQwLi42OGM3ODg4OTA2ZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5jcHAK
QEAgLTM1LDggKzM1LDExIEBAIHZvaWQgVmFsdWVMb2NhdGlvbjo6ZHVtcChQcmludFN0cmVhbSYg
b3V0KSBjb25zdAogewogICAgIG91dC5wcmludChtX2tpbmQpOwogICAgIHN3aXRjaCAobV9raW5k
KSB7Ci0gICAgY2FzZSBSZWdpc3RlcjoKLSAgICAgICAgb3V0LnByaW50KCIoIiwgcmVnKCksICIp
Iik7CisgICAgY2FzZSBHUFJSZWdpc3RlcjoKKyAgICAgICAgb3V0LnByaW50KCIoIiwganNyKCks
ICIpIik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEZQUlJlZ2lzdGVyOgorICAgICAgICBv
dXQucHJpbnQoIigiLCBmcHIoKSwgIikiKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgU3Rh
Y2s6CiAgICAgICAgIG91dC5wcmludCgiKCIsIG9mZnNldEZyb21GUCgpLCAiKSIpOwpAQCAtNTcs
OCArNjAsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzo6V2FzbTsKIHZvaWQgcHJpbnRJbnRlcm5h
bChQcmludFN0cmVhbSYgb3V0LCBWYWx1ZUxvY2F0aW9uOjpLaW5kIGtpbmQpCiB7CiAgICAgc3dp
dGNoIChraW5kKSB7Ci0gICAgY2FzZSBWYWx1ZUxvY2F0aW9uOjpSZWdpc3RlcjoKLSAgICAgICAg
b3V0LnByaW50KCJSZWdpc3RlciIpOworICAgIGNhc2UgVmFsdWVMb2NhdGlvbjo6R1BSUmVnaXN0
ZXI6CisgICAgICAgIG91dC5wcmludCgiR1BSUmVnaXN0ZXIiKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIGNhc2UgVmFsdWVMb2NhdGlvbjo6RlBSUmVnaXN0ZXI6CisgICAgICAgIG91dC5wcmludCgi
RlBSUmVnaXN0ZXIiKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgVmFsdWVMb2NhdGlvbjo6
U3RhY2s6CiAgICAgICAgIG91dC5wcmludCgiU3RhY2siKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5oCmluZGV4IGE2MWZiYThiZDAxYy4uNWNiNTEw
ZGJiZDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVM
b2NhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0
aW9uLmgKQEAgLTQxLDI1ICs0MSwyNyBAQCBjbGFzcyBWYWx1ZUxvY2F0aW9uIHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBlbnVtIEtpbmQgOiB1aW50OF90IHsK
LSAgICAgICAgUmVnaXN0ZXIsCisgICAgICAgIEdQUlJlZ2lzdGVyLAorICAgICAgICBGUFJSZWdp
c3RlciwKICAgICAgICAgU3RhY2ssCiAgICAgICAgIFN0YWNrQXJndW1lbnQsCiAgICAgfTsKIAog
ICAgIFZhbHVlTG9jYXRpb24oKQotICAgICAgICA6IG1fa2luZChSZWdpc3RlcikKKyAgICAgICAg
OiBtX2tpbmQoR1BSUmVnaXN0ZXIpCiAgICAgewogICAgIH0KIAotICAgIGV4cGxpY2l0IFZhbHVl
TG9jYXRpb24oUmVnIHJlZykKLSAgICAgICAgOiBtX2tpbmQoUmVnaXN0ZXIpCisgICAgZXhwbGlj
aXQgVmFsdWVMb2NhdGlvbihKU1ZhbHVlUmVncyByZWdzKQorICAgICAgICA6IG1fa2luZChHUFJS
ZWdpc3RlcikKICAgICB7Ci0gICAgICAgIHUucmVnID0gcmVnOworICAgICAgICB1LmpzciA9IHJl
Z3M7CiAgICAgfQogCi0gICAgc3RhdGljIFZhbHVlTG9jYXRpb24gcmVnKFJlZyByZWcpCisgICAg
ZXhwbGljaXQgVmFsdWVMb2NhdGlvbihGUFJSZWcgcmVnKQorICAgICAgICA6IG1fa2luZChGUFJS
ZWdpc3RlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBWYWx1ZUxvY2F0aW9uKHJlZyk7CisgICAg
ICAgIHUuZnByID0gcmVnOwogICAgIH0KIAogICAgIHN0YXRpYyBWYWx1ZUxvY2F0aW9uIHN0YWNr
KGludHB0cl90IG9mZnNldEZyb21GUCkKQEAgLTgwLDIxICs4MiwyMiBAQCBwdWJsaWM6CiAKICAg
ICBLaW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBtX2tpbmQ7IH0KIAotICAgIGJvb2wgaXNSZWco
KSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gUmVnaXN0ZXI7IH0KKyAgICBib29sIGlzR1BSKCkg
Y29uc3QgeyByZXR1cm4ga2luZCgpID09IEdQUlJlZ2lzdGVyOyB9CisgICAgYm9vbCBpc0ZQUigp
IGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBGUFJSZWdpc3RlcjsgfQorICAgIGJvb2wgaXNTdGFj
aygpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBTdGFjazsgfQorICAgIGJvb2wgaXNTdGFja0Fy
Z3VtZW50KCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IFN0YWNrQXJndW1lbnQ7IH0KIAotICAg
IFJlZyByZWcoKSBjb25zdAorICAgIEpTVmFsdWVSZWdzIGpzcigpIGNvbnN0CiAgICAgewotICAg
ICAgICBBU1NFUlQoaXNSZWcoKSk7Ci0gICAgICAgIHJldHVybiB1LnJlZzsKKyAgICAgICAgQVNT
RVJUKGlzR1BSKCkpOworICAgICAgICByZXR1cm4gdS5qc3I7CiAgICAgfQogCi0gICAgYm9vbCBp
c0dQUigpIGNvbnN0IHsgcmV0dXJuIGlzUmVnKCkgJiYgcmVnKCkuaXNHUFIoKTsgfQotICAgIGJv
b2wgaXNGUFIoKSBjb25zdCB7IHJldHVybiBpc1JlZygpICYmIHJlZygpLmlzRlBSKCk7IH0KLQot
ICAgIEdQUlJlZyBncHIoKSBjb25zdCB7IHJldHVybiByZWcoKS5ncHIoKTsgfQotICAgIEZQUlJl
ZyBmcHIoKSBjb25zdCB7IHJldHVybiByZWcoKS5mcHIoKTsgfQotCi0gICAgYm9vbCBpc1N0YWNr
KCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IFN0YWNrOyB9CisgICAgRlBSUmVnIGZwcigpIGNv
bnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNGUFIoKSk7CisgICAgICAgIHJldHVybiB1LmZw
cjsKKyAgICB9CiAKICAgICBpbnRwdHJfdCBvZmZzZXRGcm9tRlAoKSBjb25zdAogICAgIHsKQEAg
LTEwMiw4ICsxMDUsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB1Lm9mZnNldEZyb21GUDsK
ICAgICB9CiAKLSAgICBib29sIGlzU3RhY2tBcmd1bWVudCgpIGNvbnN0IHsgcmV0dXJuIGtpbmQo
KSA9PSBTdGFja0FyZ3VtZW50OyB9Ci0KICAgICBpbnRwdHJfdCBvZmZzZXRGcm9tU1AoKSBjb25z
dAogICAgIHsKICAgICAgICAgQVNTRVJUKGlzU3RhY2tBcmd1bWVudCgpKTsKQEAgLTExNCw3ICsx
MTUsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdW5pb24gVSB7Ci0gICAgICAgIFJlZyBy
ZWc7CisgICAgICAgIEpTVmFsdWVSZWdzIGpzcjsKKyAgICAgICAgRlBSUmVnIGZwcjsKICAgICAg
ICAgaW50cHRyX3Qgb2Zmc2V0RnJvbUZQOwogICAgICAgICBpbnRwdHJfdCBvZmZzZXRGcm9tU1A7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNwcAppbmRleCAxZjQ2
NGZlOThiYWQuLjk0MTlkZDA1Y2FhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvSlNUb1dhc20uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTVG9XYXNtLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5o
IgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNXZWJBc3NlbWJs
eUluc3RhbmNlLmgiCisjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIK
ICNpbmNsdWRlICJXYXNtQ2FsbGluZ0NvbnZlbnRpb24uaCIKICNpbmNsdWRlICJXYXNtQ29udGV4
dElubGluZXMuaCIKICNpbmNsdWRlICJXYXNtT3BlcmF0aW9ucy5oIgpAQCAtNDAsMTMgKzQxLDEz
IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKIHZvaWQgbWFyc2hhbGxKU1Jl
c3VsdChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUsIGNvbnN0
IENhbGxJbmZvcm1hdGlvbiYgd2FzbUZyYW1lQ29udmVudGlvbiwgY29uc3QgUmVnaXN0ZXJBdE9m
ZnNldExpc3QmIHNhdmVkUmVzdWx0UmVnaXN0ZXJzKQogewotICAgIGF1dG8gYm94V2FzbVJlc3Vs
dCA9IFtdKENDYWxsSGVscGVycyYgaml0LCBUeXBlIHR5cGUsIFJlZyBzcmMsIEpTVmFsdWVSZWdz
IGRzdCkgeworICAgIGF1dG8gYm94V2FzbVJlc3VsdCA9IFtdKENDYWxsSGVscGVycyYgaml0LCBU
eXBlIHR5cGUsIFZhbHVlTG9jYXRpb24gc3JjLCBKU1ZhbHVlUmVncyBkc3QpIHsKICAgICAgICAg
c3dpdGNoICh0eXBlLmtpbmQpIHsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6Vm9pZDoKICAgICAg
ICAgICAgIGppdC5tb3ZlVHJ1c3RlZFZhbHVlKGpzVW5kZWZpbmVkKCksIGRzdCk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgotICAgICAgICAgICAgaml0
Lnplcm9FeHRlbmQzMlRvV29yZChzcmMuZ3ByKCksIGRzdC5wYXlsb2FkR1BSKCkpOworICAgICAg
ICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChzcmMuanNyKCkucGF5bG9hZEdQUigpLCBkc3Qu
cGF5bG9hZEdQUigpKTsKICAgICAgICAgICAgIGppdC5ib3hJbnQzMihkc3QucGF5bG9hZEdQUigp
LCBkc3QsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBUeXBlS2luZDo6RjMyOgpAQCAtNTUsMTMgKzU2LDE3IEBAIHZvaWQgbWFyc2hhbGxK
U1Jlc3VsdChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUsIGNv
bnN0IENhbGxJCiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2NDogewogICAgICAgICAgICAgaml0
Lm1vdmVUcnVzdGVkVmFsdWUoanNOdW1iZXIocHVyZU5hTigpKSwgZHN0KTsKICAgICAgICAgICAg
IGF1dG8gaXNOYU4gPSBqaXQuYnJhbmNoSWZOYU4oc3JjLmZwcigpKTsKKyNpZiBVU0UoSlNWQUxV
RTY0KQogICAgICAgICAgICAgaml0LmJveERvdWJsZShzcmMuZnByKCksIGRzdCwgRG9Ob3RIYXZl
VGFnUmVnaXN0ZXJzKTsKKyNlbHNlCisgICAgICAgICAgICBqaXQuYm94RG91YmxlKHNyYy5mcHIo
KSwgZHN0KTsKKyNlbmRpZgogICAgICAgICAgICAgaXNOYU4ubGluaygmaml0KTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6IHsKICAgICAgICAgICAgIGlm
IChpc0Z1bmNyZWYodHlwZSkgfHwgaXNFeHRlcm5yZWYodHlwZSkpCi0gICAgICAgICAgICAgICAg
aml0Lm1vdmUoc3JjLmdwcigpLCBkc3QucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAgICBq
aXQubW92ZVZhbHVlUmVncyhzcmMuanNyKCksIGRzdCk7CiAgICAgICAgICAgICBlbHNlCiAgICAg
ICAgICAgICAgICAgaml0LmJyZWFrcG9pbnQoKTsKICAgICAgICAgfQpAQCAtNjksNDQgKzc0LDg3
IEBAIHZvaWQgbWFyc2hhbGxKU1Jlc3VsdChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU2lnbmF0
dXJlJiBzaWduYXR1cmUsIGNvbnN0IENhbGxJCiAgICAgfTsKIAogICAgIGlmIChzaWduYXR1cmUu
cmV0dXJuc1ZvaWQoKSkKLSAgICAgICAgaml0Lm1vdmVUcnVzdGVkVmFsdWUoanNVbmRlZmluZWQo
KSwgSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiB9KTsKKyAgICAgICAgaml0
Lm1vdmVUcnVzdGVkVmFsdWUoanNVbmRlZmluZWQoKSwgSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1Ip
OwogICAgIGVsc2UgaWYgKHNpZ25hdHVyZS5yZXR1cm5Db3VudCgpID09IDEpIHsKICAgICAgICAg
aWYgKHNpZ25hdHVyZS5yZXR1cm5UeXBlKDApLmlzSTY0KCkpIHsKLSAgICAgICAgICAgIEdQUlJl
ZyBpbnB1dEdQUiA9IHdhc21GcmFtZUNvbnZlbnRpb24ucmVzdWx0c1swXS5yZWcoKS5ncHIoKTsK
KyAgICAgICAgICAgIEpTVmFsdWVSZWdzIGlucHV0SlNSID0gd2FzbUZyYW1lQ29udmVudGlvbi5y
ZXN1bHRzWzBdLmpzcigpOwogICAgICAgICAgICAgR1BSUmVnIHdhc21Db250ZXh0SW5zdGFuY2VH
UFIgPSBQaW5uZWRSZWdpc3RlckluZm86OmdldCgpLndhc21Db250ZXh0SW5zdGFuY2VQb2ludGVy
OwogICAgICAgICAgICAgaWYgKENvbnRleHQ6OnVzZUZhc3RUTFMoKSkgewotICAgICAgICAgICAg
ICAgIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBpbnB1dEdQUiA9PSBHUFJJbmZvOjphcmd1bWVu
dEdQUjEgPyBHUFJJbmZvOjphcmd1bWVudEdQUjAgOiBHUFJJbmZvOjphcmd1bWVudEdQUjE7Ci0g
ICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWVfdjxXYXNtOjpJbnN0YW5j
ZSosIHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVz
dWx0c0FycmF5KT46OkFyZ3VtZW50VHlwZTwxPj4pOworICAgICAgICAgICAgICAgIHdhc21Db250
ZXh0SW5zdGFuY2VHUFIgPSBpbnB1dEpTUi5wYXlsb2FkR1BSKCkgPT0gR1BSSW5mbzo6YXJndW1l
bnRHUFIxID8gR1BSSW5mbzo6YXJndW1lbnRHUFIwIDogR1BSSW5mbzo6YXJndW1lbnRHUFIxOwor
ICAgICAgICAgICAgICAgIEFTU0VSVCghaW5wdXRKU1IudXNlcyh3YXNtQ29udGV4dEluc3RhbmNl
R1BSKSk7CisgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWVfdjxXYXNt
OjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPGRlY2x0eXBlKG9wZXJhdGlvbkNv
bnZlcnRUb0JpZ0ludCk+OjpBcmd1bWVudFR5cGU8MT4+KTsKICAgICAgICAgICAgICAgICBqaXQu
bG9hZFdhc21Db250ZXh0SW5zdGFuY2Uod2FzbUNvbnRleHRJbnN0YW5jZUdQUik7CiAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9u
Q29udmVydFRvQmlnSW50KT4od2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgaW5wdXRHUFIpOworICAg
ICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0Jp
Z0ludCk+KHdhc21Db250ZXh0SW5zdGFuY2VHUFIsIGlucHV0SlNSKTsKICAgICAgICAgICAgIGpp
dC5jYWxsT3BlcmF0aW9uKEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQ29u
dmVydFRvQmlnSW50KSk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgYm94V2FzbVJlc3Vs
dChqaXQsIHNpZ25hdHVyZS5yZXR1cm5UeXBlKDApLCB3YXNtRnJhbWVDb252ZW50aW9uLnJlc3Vs
dHNbMF0ucmVnKCksIEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIgfSk7Cisg
ICAgICAgICAgICBib3hXYXNtUmVzdWx0KGppdCwgc2lnbmF0dXJlLnJldHVyblR5cGUoMCksIHdh
c21GcmFtZUNvbnZlbnRpb24ucmVzdWx0c1swXSwgSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpOwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIEluZGV4aW5nVHlwZSBpbmRleGluZ1R5cGUgPSBBcnJheVdp
dGhVbmRlY2lkZWQ7Ci0gICAgICAgIEpTVmFsdWVSZWdzIHNjcmF0Y2ggPSBKU1ZhbHVlUmVncyB7
IHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMV0gfTsKKyAgICAg
ICAgSlNWYWx1ZVJlZ3Mgc2NyYXRjaEpTUiA9IEpTVmFsdWVSZWdzIHsKKyNpZiBVU0UoSlNWQUxV
RTMyXzY0KQorICAgICAgICAgICAgd2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3Jh
dGNoR1BSc1syXSwKKyNlbmRpZgorICAgICAgICAgICAgd2FzbUNhbGxpbmdDb252ZW50aW9uKCku
cHJvbG9ndWVTY3JhdGNoR1BSc1sxXQorICAgICAgICB9OworCisgICAgICAgIEFTU0VSVChzY3Jh
dGNoSlNSLnBheWxvYWRHUFIoKSAhPSBHUFJSZWc6OkludmFsaWRHUFJSZWcpOworI2lmIFVTRShK
U1ZBTFVFMzJfNjQpCisgICAgICAgIEFTU0VSVChzY3JhdGNoSlNSLnRhZ0dQUigpICE9IEdQUlJl
Zzo6SW52YWxpZEdQUlJlZyk7CisgICAgICAgIEFTU0VSVChzY3JhdGNoSlNSLnBheWxvYWRHUFIo
KSAhPSBzY3JhdGNoSlNSLnRhZ0dQUigpKTsKKyNlbmRpZgorCiAgICAgICAgIC8vIFdlIGNhbiB1
c2UgdGhlIGZpcnN0IGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVyIGFzIGEgc2NyYXRjaCBzaW5jZSBp
dCB3aWxsIGFsd2F5cyBiZSBtb3ZlZCBvbnRvIHRoZSBzdGFjayBiZWZvcmUgb3RoZXIgdmFsdWVz
LgotICAgICAgICBGUFJSZWcgZnByU2NyYXRjaCA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpLmZw
ckFyZ3NbMF0uZnByKCk7CisgICAgICAgIEZQUlJlZyBmcHJTY3JhdGNoID0gd2FzbUNhbGxpbmdD
b252ZW50aW9uKCkuZnByQXJnc1swXTsKICAgICAgICAgYm9vbCBoYXNJNjQgPSBmYWxzZTsKICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpZ25hdHVyZS5yZXR1cm5Db3VudCgpOyAr
K2kpIHsKICAgICAgICAgICAgIFZhbHVlTG9jYXRpb24gbG9jID0gd2FzbUZyYW1lQ29udmVudGlv
bi5yZXN1bHRzW2ldOwogICAgICAgICAgICAgVHlwZSB0eXBlID0gc2lnbmF0dXJlLnJldHVyblR5
cGUoaSk7CiAKICAgICAgICAgICAgIGhhc0k2NCB8PSB0eXBlLmlzSTY0KCk7Ci0gICAgICAgICAg
ICBpZiAobG9jLmlzUmVnKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXR5cGUuaXNJNjQoKSkg
ewotICAgICAgICAgICAgICAgICAgICBib3hXYXNtUmVzdWx0KGppdCwgc2lnbmF0dXJlLnJldHVy
blR5cGUoaSksIGxvYy5yZWcoKSwgc2NyYXRjaCk7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5z
dG9yZVZhbHVlKHNjcmF0Y2gsIENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0
YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5yZWcoKSkt
Pm9mZnNldCgpICsgd2FzbUZyYW1lQ29udmVudGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6
ZUluQnl0ZXMpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAg
aml0LnN0b3JlVmFsdWUoSlNWYWx1ZVJlZ3MgeyBsb2MucmVnKCkuZ3ByKCkgfSwgQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVz
dWx0UmVnaXN0ZXJzLmZpbmQobG9jLnJlZygpKS0+b2Zmc2V0KCkgKyB3YXNtRnJhbWVDb252ZW50
aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcykpOworICAgICAgICAgICAgaWYg
KGxvYy5pc0dQUigpIHx8IGxvYy5pc0ZQUigpKSB7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAg
ICAgICAgICAgICAgICBBU1NFUlQoIWxvYy5pc0dQUigpIHx8IHNhdmVkUmVzdWx0UmVnaXN0ZXJz
LmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpICsgNCA9PSBzYXZlZFJlc3Vs
dFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS50YWdHUFIoKSktPm9mZnNldCgpKTsKKyNlbmRpZgor
ICAgICAgICAgICAgICAgIGF1dG8gYWRkcmVzcyA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2Fs
bEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRl
ckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcyk7CisgICAgICAgICAgICAgICAgc3dpdGNoICh0
eXBlLmtpbmQpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6CisgICAgICAg
ICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OgorICAgICAgICAgICAgICAgICAgICBib3hXYXNt
UmVzdWx0KGppdCwgdHlwZSwgbG9jLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAgICAgICAgICAg
aml0LnN0b3JlVmFsdWUoc2NyYXRjaEpTUiwgYWRkcmVzcy53aXRoT2Zmc2V0KHNhdmVkUmVzdWx0
UmVnaXN0ZXJzLmZpbmQobG9jLmZwcigpKS0+b2Zmc2V0KCkpKTsKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OgorICAgICAgICAg
ICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShsb2MuanNyKCksIGFkZHJlc3Mud2l0aE9mZnNldChz
YXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQo
KSkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgICAgICAgICBib3hXYXNtUmVzdWx0KGppdCwgdHlwZSwgbG9jLCBzY3Jh
dGNoSlNSKTsKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoc2NyYXRjaEpTUiwg
YWRkcmVzcy53aXRoT2Zmc2V0KHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnBh
eWxvYWRHUFIoKSktPm9mZnNldCgpKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgaWYg
KCF0eXBlLmlzSTY0KCkpIHsKICAgICAgICAgICAgICAgICAgICAgYXV0byBsb2NhdGlvbiA9IEND
YWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBs
b2Mub2Zmc2V0RnJvbVNQKCkpOwotICAgICAgICAgICAgICAgICAgICBSZWcgdG1wID0gKHR5cGUu
aXNGMzIoKSB8fCB0eXBlLmlzRjY0KCkpID8gUmVnKGZwclNjcmF0Y2gpIDogUmVnKHNjcmF0Y2gu
Z3ByKCkpOwotICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDY0VG9SZWcobG9jYXRpb24sIHRt
cCk7Ci0gICAgICAgICAgICAgICAgICAgIGJveFdhc21SZXN1bHQoaml0LCBzaWduYXR1cmUucmV0
dXJuVHlwZShpKSwgdG1wLCBzY3JhdGNoKTsKLSAgICAgICAgICAgICAgICAgICAgaml0LnN0b3Jl
VmFsdWUoc2NyYXRjaCwgbG9jYXRpb24pOworICAgICAgICAgICAgICAgICAgICBWYWx1ZUxvY2F0
aW9uIHRtcDsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlLmtpbmQpIHsKKyAgICAg
ICAgICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgorICAgICAgICAgICAgICAgICAgICAg
ICAgdG1wID0gVmFsdWVMb2NhdGlvbiB7IGZwclNjcmF0Y2ggfTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGppdC5sb2FkRmxvYXQobG9jYXRpb24sIGZwclNjcmF0Y2gpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2
NDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFZhbHVlTG9jYXRpb24geyBmcHJTY3Jh
dGNoIH07CisgICAgICAgICAgICAgICAgICAgICAgICBqaXQubG9hZERvdWJsZShsb2NhdGlvbiwg
ZnByU2NyYXRjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgorICAgICAgICAgICAgICAgICAgICAgICAgdG1w
ID0gVmFsdWVMb2NhdGlvbiB7IHNjcmF0Y2hKU1IgfTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGppdC5sb2FkMzIobG9jYXRpb24sIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgICAgICAgICAgICAgdG1wID0gVmFsdWVMb2NhdGlvbiB7IHNjcmF0Y2hKU1IgfTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUobG9jYXRpb24sIHNjcmF0Y2hK
U1IpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgYm94V2FzbVJlc3VsdChqaXQsIHR5cGUsIHRtcCwgc2Ny
YXRjaEpTUik7CisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2hKU1Is
IGxvY2F0aW9uKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKQEAgLTEzNSwz
NyArMTgzLDQ3IEBAIHZvaWQgbWFyc2hhbGxKU1Jlc3VsdChDQ2FsbEhlbHBlcnMmIGppdCwgY29u
c3QgU2lnbmF0dXJlJiBzaWduYXR1cmUsIGNvbnN0IENhbGxJCiAKICAgICAgICAgICAgICAgICBH
UFJSZWcgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCku
d2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXI7CiAgICAgICAgICAgICAgICAgaWYgKENvbnRleHQ6
OnVzZUZhc3RUTFMoKSkgewotICAgICAgICAgICAgICAgICAgICB3YXNtQ29udGV4dEluc3RhbmNl
R1BSID0gR1BSSW5mbzo6YXJndW1lbnRHUFIxOwotICAgICAgICAgICAgICAgICAgICBzdGF0aWNf
YXNzZXJ0KHN0ZDo6aXNfc2FtZV92PFdhc206Okluc3RhbmNlKiwgdHlwZW5hbWUgRnVuY3Rpb25U
cmFpdHM8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXkpPjo6QXJndW1lbnRU
eXBlPDE+Pik7CisgICAgICAgICAgICAgICAgICAgIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBw
cmVmZXJyZWRBcmd1bWVudEdQUjxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpLCAx
PigpOworICAgICAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZV92PFdh
c206Okluc3RhbmNlKiwgdHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8ZGVjbHR5cGUob3BlcmF0aW9u
Q29udmVydFRvQmlnSW50KT46OkFyZ3VtZW50VHlwZTwxPj4pOwogICAgICAgICAgICAgICAgICAg
ICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uod2FzbUNvbnRleHRJbnN0YW5jZUdQUik7CiAg
ICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgaWYgKGxvYy5pc1JlZygpKQotICAg
ICAgICAgICAgICAgICAgICBqaXQubG9hZDY0KENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhl
bHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxv
Yy5yZWcoKSktPm9mZnNldCgpICsgd2FzbUZyYW1lQ29udmVudGlvbi5oZWFkZXJBbmRBcmd1bWVu
dFN0YWNrU2l6ZUluQnl0ZXMpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgICAgICAgICAg
ICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICBhdXRvIGxvY2F0aW9uID0gQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIGxvYy5vZmZz
ZXRGcm9tU1AoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjRUb1JlZyhsb2NhdGlv
biwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0lu
dCk+KHdhc21Db250ZXh0SW5zdGFuY2VHUFIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAg
ICAgICAgICAgICAgY29uc3RleHByIEpTVmFsdWVSZWdzIHZhbHVlSlNSID0gcHJlZmVycmVkQXJn
dW1lbnRKU1I8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KSwgMj4oKTsKKworICAg
ICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBhZGRyZXNzIHsgQ0NhbGxIZWxwZXJz
OjpzdGFja1BvaW50ZXJSZWdpc3RlciB9OworICAgICAgICAgICAgICAgIGlmIChsb2MuaXNHUFIo
KSB8fCBsb2MuaXNGUFIoKSkgeworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAg
ICAgICAgIEFTU0VSVChzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS5wYXlsb2Fk
R1BSKCkpLT5vZmZzZXQoKSArIDQgPT0gc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNy
KCkudGFnR1BSKCkpLT5vZmZzZXQoKSk7CisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgYWRk
cmVzcyA9IGFkZHJlc3Mud2l0aE9mZnNldChzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5q
c3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSArIHdhc21GcmFtZUNvbnZlbnRpb24uaGVhZGVy
QW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9IGFkZHJlc3Mud2l0aE9mZnNldChsb2Mub2Zmc2V0
RnJvbVNQKCkpOworCisgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShhZGRyZXNzLCB2YWx1
ZUpTUik7CisgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJh
dGlvbkNvbnZlcnRUb0JpZ0ludCk+KHdhc21Db250ZXh0SW5zdGFuY2VHUFIsIHZhbHVlSlNSKTsK
ICAgICAgICAgICAgICAgICBqaXQuY2FsbE9wZXJhdGlvbihGdW5jdGlvblB0cjxPcGVyYXRpb25Q
dHJUYWc+KG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCkpOwotICAgICAgICAgICAgICAgIGlmIChs
b2MuaXNSZWcoKSkKLSAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoSlNWYWx1ZVJl
Z3MgeyBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiB9LCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0Nh
bGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmlu
ZChsb2MucmVnKCkpLT5vZmZzZXQoKSArIHdhc21GcmFtZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJn
dW1lbnRTdGFja1NpemVJbkJ5dGVzKSk7Ci0gICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGF1dG8gbG9jYXRpb24gPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxI
ZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgbG9jLm9mZnNldEZyb21TUCgpKTsKLSAgICAg
ICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjpyZXR1
cm5WYWx1ZUdQUiB9LCBsb2NhdGlvbik7Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIGppdC5zdG9yZVZhbHVlKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBhZGRyZXNzKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIEdQUlJlZyB3YXNtQ29udGV4dEluc3Rh
bmNlR1BSID0gUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKS53YXNtQ29udGV4dEluc3RhbmNlUG9p
bnRlcjsKICAgICAgICAgaWYgKENvbnRleHQ6OnVzZUZhc3RUTFMoKSkgewotICAgICAgICAgICAg
d2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IEdQUkluZm86OmFyZ3VtZW50R1BSMTsKKyAgICAgICAg
ICAgIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBwcmVmZXJyZWRBcmd1bWVudEdQUjxkZWNsdHlw
ZShvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSksIDE+KCk7CiAgICAgICAgICAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZV92PFdhc206Okluc3RhbmNlKiwgdHlwZW5hbWUgRnVuY3Rp
b25UcmFpdHM8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXkpPjo6QXJndW1l
bnRUeXBlPDE+Pik7CiAgICAgICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uod2Fz
bUNvbnRleHRJbnN0YW5jZUdQUik7CiAgICAgICAgIH0KIAotICAgICAgICBqaXQuc2V0dXBBcmd1
bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXkpPih3YXNtQ29udGV4
dEluc3RhbmNlR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoJnNpZ25hdHVyZSksIGlu
ZGV4aW5nVHlwZSwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAg
IGNvbnN0ZXhwciBHUFJSZWcgc2F2ZWRSZXN1bHRzR1BSID0gcHJlZmVycmVkQXJndW1lbnRHUFI8
ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXkpLCA0PigpOworICAgICAgICBq
aXQubW92ZShDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJlc3VsdHNH
UFIpOworICAgICAgICBpZiBjb25zdGV4cHIgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxs
KQorICAgICAgICAgICAgaml0LnN1YlB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihtYXhG
cmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVn
aXN0ZXIpOworICAgICAgICBBU1NFUlQod2FzbUNvbnRleHRJbnN0YW5jZUdQUiAhPSBzYXZlZFJl
c3VsdHNHUFIpOworICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9u
QWxsb2NhdGVSZXN1bHRzQXJyYXkpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCBDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW1QdHIoJnNpZ25hdHVyZSksIGluZGV4aW5nVHlwZSwgc2F2ZWRSZXN1bHRz
R1BSKTsKICAgICAgICAgaml0LmNhbGxPcGVyYXRpb24oRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRy
VGFnPihvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSkpOworICAgICAgICBpZiBjb25zdGV4
cHIgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICAgICAgaml0LmFkZFB0
cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2Fs
bCksIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworCisgICAgICAgIGppdC5i
b3hDZWxsKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUik7
CiAgICAgfQogfQogCkBAIC0xNzcsNyArMjM1LDExIEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5h
bEZ1bmN0aW9uPiBjcmVhdGVKU1RvV2FzbVdyYXBwZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0
CiAgICAgLy8gRklYTUUgU3RvcCB1c2luZyAwIGFzIGNvZGVCbG9ja3MuIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjUzMjEKICAgICBqaXQuZW1pdFplcm9Ub0NhbGxG
cmFtZUhlYWRlcihDYWxsRnJhbWVTbG90Ojpjb2RlQmxvY2spOwogICAgIE1hY3JvQXNzZW1ibGVy
OjpEYXRhTGFiZWxQdHIgY2FsbGVlTW92ZUxvY2F0aW9uID0gaml0Lm1vdmVXaXRoUGF0Y2goTWFj
cm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIobnVsbHB0ciksIEdQUkluZm86Om5vblByZXNlcnZl
ZE5vblJldHVybkdQUik7Ci0gICAgaml0LmVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihHUFJJbmZv
Ojpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIsIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7CisgICAg
Q0NhbGxIZWxwZXJzOjpBZGRyZXNzIGNhbGxlZVNsb3QgeyBHUFJJbmZvOjpjYWxsRnJhbWVSZWdp
c3RlciwgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlICogc2l6ZW9mKFJlZ2lzdGVyKSB9OworICAgIGpp
dC5zdG9yZVB0cihHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIsIGNhbGxlZVNsb3Qu
d2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBq
aXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpXYXNtVGFnKSwg
Y2FsbGVlU2xvdC53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworI2VuZGlmCiAgICAgVmVjdG9yPENv
ZGVMb2NhdGlvbkRhdGFMYWJlbFB0cjxXYXNtRW50cnlQdHJUYWc+PiogbGlua2VkQ2FsbGVlTW92
ZSA9ICZyZXN1bHQtPmNhbGxlZU1vdmVMb2NhdGlvbnM7CiAgICAgaml0LmFkZExpbmtUYXNrKFs9
XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewogICAgICAgICBsaW5rZWRDYWxsZWVNb3ZlLT5h
cHBlbmQobGlua0J1ZmZlci5sb2NhdGlvbk9mPFdhc21FbnRyeVB0clRhZz4oY2FsbGVlTW92ZUxv
Y2F0aW9uKSk7CkBAIC0xOTYsMTEgKzI1OCwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxG
dW5jdGlvbj4gY3JlYXRlSlNUb1dhc21XcmFwcGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAog
ICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IHJlZ2lzdGVyc1RvU3BpbGwodG9TYXZlLCBSZWdpc3Rl
ckF0T2Zmc2V0TGlzdDo6T2Zmc2V0QmFzZVR5cGU6OkZyYW1lUG9pbnRlckJhc2VkKTsKICAgICBy
ZXN1bHQtPmVudHJ5cG9pbnQuY2FsbGVlU2F2ZVJlZ2lzdGVycyA9IHJlZ2lzdGVyc1RvU3BpbGw7
CiAKLSAgICBzaXplX3QgdG90YWxGcmFtZVNpemUgPSByZWdpc3RlcnNUb1NwaWxsLnNpemUoKSAq
IHNpemVvZihDUFVSZWdpc3Rlcik7CisgICAgc2l6ZV90IHRvdGFsRnJhbWVTaXplID0gcmVnaXN0
ZXJzVG9TcGlsbC5zaXplT2ZBcmVhSW5CeXRlcygpOwogICAgIENhbGxJbmZvcm1hdGlvbiB3YXNt
RnJhbWVDb252ZW50aW9uID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkuY2FsbEluZm9ybWF0aW9u
Rm9yKHNpZ25hdHVyZSk7CiAgICAgUmVnaXN0ZXJBdE9mZnNldExpc3Qgc2F2ZWRSZXN1bHRSZWdp
c3RlcnMgPSB3YXNtRnJhbWVDb252ZW50aW9uLmNvbXB1dGVSZXN1bHRzT2Zmc2V0TGlzdCgpOwog
ICAgIHRvdGFsRnJhbWVTaXplICs9IHdhc21GcmFtZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1l
bnRTdGFja1NpemVJbkJ5dGVzOwotICAgIHRvdGFsRnJhbWVTaXplICs9IHNhdmVkUmVzdWx0UmVn
aXN0ZXJzLnNpemUoKSAqIHNpemVvZihDUFVSZWdpc3Rlcik7CisgICAgdG90YWxGcmFtZVNpemUg
Kz0gc2F2ZWRSZXN1bHRSZWdpc3RlcnMuc2l6ZU9mQXJlYUluQnl0ZXMoKTsKIAogICAgIHRvdGFs
RnJhbWVTaXplID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50Qnl0ZXMo
KSwgdG90YWxGcmFtZVNpemUpOwogICAgIGppdC5zdWJQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW0zMih0b3RhbEZyYW1lU2l6ZSksIE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdp
c3Rlcik7CkBAIC0yMjIsOSArMjg0LDEyIEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0
aW9uPiBjcmVhdGVKU1RvV2FzbVdyYXBwZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAKICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGNhbGxlZUZyYW1lID0gQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgMCk7CiAKLSAgICAg
ICAgLy8gV2UncmUgZ29pbmcgdG8gc2V0IHRoZSBwaW5uZWQgcmVnaXN0ZXJzIGFmdGVyIHRoaXMu
IFNvCi0gICAgICAgIC8vIHdlIGNhbiB1c2UgdGhpcyBhcyBhIHNjcmF0Y2ggZm9yIG5vdyBzaW5j
ZSB3ZSBzYXZlZCBpdCBhYm92ZS4KLSAgICAgICAgR1BSUmVnIHNjcmF0Y2hSZWcgPSBwaW5uZWRS
ZWdzLmJhc2VNZW1vcnlQb2ludGVyOworICAgICAgICBKU1ZhbHVlUmVncyBzY3JhdGNoSlNSIHsK
KyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgd2FzbUNhbGxpbmdDb252ZW50aW9u
KCkucHJvbG9ndWVTY3JhdGNoR1BSc1syXSwKKyNlbmRpZgorICAgICAgICAgICAgd2FzbUNhbGxp
bmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1sxXQorICAgICAgICB9OwogCiAgICAg
ICAgIGlmICghQ29udGV4dDo6dXNlRmFzdFRMUygpKSB7CiAgICAgICAgICAgICBqaXQubG9hZFB0
cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTQ2Fs
bGluZ0NvbnZlbnRpb246Omluc3RhbmNlU3RhY2tPZmZzZXQpLCB3YXNtQ29udGV4dEluc3RhbmNl
R1BSKTsKQEAgLTIzNywyMiArMzAyLDM0IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0
aW9uPiBjcmVhdGVKU1RvV2FzbVdyYXBwZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAgICAg
ICAgICAgICBUeXBlIHR5cGUgPSBzaWduYXR1cmUuYXJndW1lbnQoaSk7CiAgICAgICAgICAgICBD
Q2FsbEhlbHBlcnM6OkFkZHJlc3MganNQYXJhbShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwg
anNGcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLm9mZnNldEZyb21GUCgpKTsKICAgICAgICAgICAg
IGlmICh3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5pc1N0YWNrQXJndW1lbnQoKSkgewor
ICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBhZGRyIHsgY2FsbGVlRnJhbWUu
d2l0aE9mZnNldCh3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkg
fTsKICAgICAgICAgICAgICAgICBpZiAodHlwZS5pc0kzMigpIHx8IHR5cGUuaXNGMzIoKSkgewot
ICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDMyKGpzUGFyYW0sIHNjcmF0Y2hSZWcpOwotICAg
ICAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihzY3JhdGNoUmVnLCBjYWxsZWVGcmFtZS53aXRo
T2Zmc2V0KHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSk7Cisg
ICAgICAgICAgICAgICAgICAgIGppdC5sb2FkMzIoanNQYXJhbSwgc2NyYXRjaEpTUi5wYXlsb2Fk
R1BSKCkpOworICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihzY3JhdGNoSlNSLnBheWxv
YWRHUFIoKSwgYWRkci53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyNpZiBVU0UoSlNWQUxV
RTMyXzY0KQorICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMigwKSwgYWRkci53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworI2VuZGlmCiAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NChqc1Bh
cmFtLCBzY3JhdGNoUmVnKTsKLSAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlNjQoc2NyYXRj
aFJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tp
XS5vZmZzZXRGcm9tU1AoKSkpOworICAgICAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpz
UGFyYW0sIHNjcmF0Y2hKU1IpOworICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShz
Y3JhdGNoSlNSLCBhZGRyKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgIGlmICh0eXBlLmlzSTMyKCkgfHwgdHlwZS5pc0YzMigpKQotICAg
ICAgICAgICAgICAgICAgICBqaXQubG9hZDMyVG9SZWcoanNQYXJhbSwgd2FzbUZyYW1lQ29udmVu
dGlvbi5wYXJhbXNbaV0ucmVnKCkpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICAgICAgaml0LmxvYWQ2NFRvUmVnKGpzUGFyYW0sIHdhc21GcmFtZUNvbnZlbnRpb24ucGFy
YW1zW2ldLnJlZygpKTsKKyAgICAgICAgICAgICAgICBpZiAodHlwZS5pc0YzMigpKQorICAgICAg
ICAgICAgICAgICAgICBqaXQubG9hZEZsb2F0KGpzUGFyYW0sIHdhc21GcmFtZUNvbnZlbnRpb24u
cGFyYW1zW2ldLmZwcigpKTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlLmlzRjY0KCkp
CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkRG91YmxlKGpzUGFyYW0sIHdhc21GcmFtZUNv
bnZlbnRpb24ucGFyYW1zW2ldLmZwcigpKTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBl
LmlzSTMyKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQzMihqc1BhcmFtLCB3YXNt
RnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5qc3IoKS5wYXlsb2FkR1BSKCkpOworI2lmIFVTRShK
U1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbTMyKDApLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5qc3IoKS50YWdH
UFIoKSk7CisjZW5kaWYKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgaml0LmxvYWRWYWx1ZShqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5q
c3IoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKKyNpZiAhQ1BVKEFSTSkg
Ly8gQVJNIGhhcyBubyBwaW5uZWQgcmVnaXN0ZXJzIGZvciBXYXNtIE1lbW9yeSwgc28gbm8gbmVl
ZCB0byBzZXQgdGhlbSB1cAogICAgIGlmICghIWluZm8ubWVtb3J5KSB7CiAgICAgICAgIEdQUlJl
ZyBiYXNlTWVtb3J5ID0gcGlubmVkUmVncy5iYXNlTWVtb3J5UG9pbnRlcjsKICAgICAgICAgR1BS
UmVnIHNpemUgPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzBd
OwpAQCAtMjYzLDE3ICszNDAsMTggQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+
IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QKIAogICAgICAg
ICBHUFJSZWcgY3VycmVudEluc3RhbmNlR1BSID0gQ29udGV4dDo6dXNlRmFzdFRMUygpID8gYmFz
ZU1lbW9yeSA6IHdhc21Db250ZXh0SW5zdGFuY2VHUFI7CiAgICAgICAgIGlmIChpc0FSTTY0RSgp
KSB7Ci0gICAgICAgICAgICBpZiAobW9kZSAhPSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmcp
CisgICAgICAgICAgICBpZiAobW9kZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2lu
ZykKICAgICAgICAgICAgICAgICBzaXplID0gcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVS
ZWdpc3RlcjsKICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhj
dXJyZW50SW5zdGFuY2VHUFIsIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZEJvdW5kc0No
ZWNraW5nU2l6ZSgpKSwgc2l6ZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAo
bW9kZSAhPSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmcpCisgICAgICAgICAgICBpZiAobW9k
ZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykKICAgICAgICAgICAgICAgICBq
aXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoY3VycmVudEluc3RhbmNlR1BSLCBXYXNt
OjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHNDaGVja2luZ1NpemUoKSksIHBpbm5lZFJl
Z3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIpOwogICAgICAgICB9CiAKICAgICAgICAgaml0
LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGN1cnJlbnRJbnN0YW5jZUdQUiwgV2FzbTo6
SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNlTWVtb3J5KTsKICAgICAgICAg
aml0LmNhZ2VDb25kaXRpb25hbGx5QW5kVW50YWcoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgYmFzZU1l
bW9yeSwgc2l6ZSwgc2NyYXRjaCk7CiAgICAgfQorI2VuZGlmCiAKICAgICBDQ2FsbEhlbHBlcnM6
OkNhbGwgY2FsbCA9IGppdC50aHJlYWRTYWZlUGF0Y2hhYmxlTmVhckNhbGwoKTsKICAgICB1bnNp
Z25lZCBmdW5jdGlvbkluZGV4U3BhY2UgPSBmdW5jdGlvbkluZGV4ICsgaW5mby5pbXBvcnRGdW5j
dGlvbkNvdW50KCk7CkBAIC0yODYsNyArMzY0LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFs
RnVuY3Rpb24+IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QK
IAogICAgIGZvciAoY29uc3QgUmVnaXN0ZXJBdE9mZnNldCYgcmVnQXRPZmZzZXQgOiByZWdpc3Rl
cnNUb1NwaWxsKSB7CiAgICAgICAgIEdQUlJlZyByZWcgPSByZWdBdE9mZnNldC5yZWcoKS5ncHIo
KTsKLSAgICAgICAgQVNTRVJUKHJlZyAhPSBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAg
ICAgIEFTU0VSVCghSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IudXNlcyhyZWcpKTsKICAgICAgICAg
cHRyZGlmZl90IG9mZnNldCA9IHJlZ0F0T2Zmc2V0Lm9mZnNldCgpOwogICAgICAgICBqaXQubG9h
ZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIG9m
ZnNldCksIHJlZyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2FzbVRvSlMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2FzbVRv
SlMuY3BwCmluZGV4IDA4ZmUxYTc4NzEzMi4uMjNiZmZmYjE3NDIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2FzbVRvSlMuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVk
ZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiSlNXZWJBc3NlbWJseUluc3RhbmNlLmgiCiAj
aW5jbHVkZSAiTGlua0J1ZmZlci5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsLmgiCiAjaW5jbHVkZSAiVGh1bmtHZW5lcmF0b3JzLmgiCiAjaW5jbHVkZSAiV2FzbUNh
bGxpbmdDb252ZW50aW9uLmgiCiAjaW5jbHVkZSAiV2FzbUNvbnRleHRJbmxpbmVzLmgiCkBAIC02
OCw3ICs2OSw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJU
YWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgLy8gSWYgd2UgZXZlciBj
aGFuZ2UgdGhpcywgd2Ugd2lsbCBhbHNvIG5lZWQgdG8gY2hhbmdlIFdhc21CM0lSR2VuZXJhdG9y
LgogCiAgICAgLy8gQmVsb3csIHdlIGFzc3VtZSB0aGF0IHRoZSBKUyBjYWxsaW5nIGNvbnZlbnRp
b24gaXMgYWx3YXlzIG9uIHRoZSBzdGFjay4KLSAgICBBU1NFUlQoIWpzQ0MuZ3ByQXJncy5zaXpl
KCkpOworICAgIEFTU0VSVCghanNDQy5qc3JBcmdzLnNpemUoKSk7CiAgICAgQVNTRVJUKCFqc0ND
LmZwckFyZ3Muc2l6ZSgpKTsKIAogICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwpAQCAt
ODUsMTQgKzg2LDIyIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQ
dHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgLy8gZm9yIHVzIGhl
cmUuCiAKICAgICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlBhcmFtZXRlcnMgPSBhcmdDb3VudCAr
IDE7IC8vIFRoZXJlIGlzIGEgInRoaXMiIGFyZ3VtZW50LgotICAgIGNvbnN0IHVuc2lnbmVkIG51
bWJlck9mUmVnc0ZvckNhbGwgPSBDYWxsRnJhbWU6OmhlYWRlclNpemVJblJlZ2lzdGVycyArIG51
bWJlck9mUGFyYW1ldGVyczsKKyAgICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlJlZ3NGb3JDYWxs
ID0gQ2FsbEZyYW1lOjpoZWFkZXJTaXplSW5SZWdpc3RlcnMgKyByb3VuZEFyZ3VtZW50Q291bnRU
b0FsaWduRnJhbWUobnVtYmVyT2ZQYXJhbWV0ZXJzKTsKKyAgICBBU1NFUlQoIShudW1iZXJPZlJl
Z3NGb3JDYWxsICUgc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSkpOwogICAgIGNvbnN0IHVuc2ln
bmVkIG51bWJlck9mQnl0ZXNGb3JDYWxsID0gbnVtYmVyT2ZSZWdzRm9yQ2FsbCAqIHNpemVvZihS
ZWdpc3RlcikgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQyk7Ci0gICAgY29uc3QgdW5zaWduZWQg
c3RhY2tPZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRCeXRl
cygpLCBzdGQ6Om1heDx1bnNpZ25lZD4obnVtYmVyT2ZCeXRlc0ZvckNhbGwsIHNhdmVkUmVzdWx0
UmVnaXN0ZXJzLnNpemUoKSAqIHNpemVvZihDUFVSZWdpc3RlcikpKTsKKyAgICBjb25zdCB1bnNp
Z25lZCBudW1iZXJPZkJ5dGVzRm9yU2F2ZWRSZXN1bHRzID0gc2F2ZWRSZXN1bHRSZWdpc3RlcnMu
c2l6ZU9mQXJlYUluQnl0ZXMoKTsKKyAgICBjb25zdCB1bnNpZ25lZCBzdGFja09mZnNldCA9IFdU
Rjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudEJ5dGVzKCksIHN0ZDo6bWF4KG51
bWJlck9mQnl0ZXNGb3JDYWxsLCBudW1iZXJPZkJ5dGVzRm9yU2F2ZWRSZXN1bHRzKSk7CiAgICAg
aml0LnN1YlB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHN0YWNrT2Zmc2V0KSwgTWFj
cm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICBKSVQ6OkFkZHJlc3MgY2Fs
bGVlRnJhbWUgPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyLCAtc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoQ2FsbGVyRnJhbWVB
bmRQQykpKTsKIAogICAgIC8vIEZJWE1FIG1ha2UgdGhlc2UgbG9vcHMgd2hpY2ggc3dpdGNoIG9u
IFNpZ25hdHVyZSBpZiB0aGVyZSBhcmUgbWFueSBhcmd1bWVudHMgb24gdGhlIHN0YWNrLiBJdCds
bCBvdGhlcndpc2UgYmUgaHVnZSBmb3IgaHVnZSBzaWduYXR1cmVzLiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1NTQ3CiAKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAg
IGNvbnN0ZXhwciBKU1ZhbHVlUmVncyBqc0FyZzEwIHsgR1BSSW5mbzo6YXJndW1lbnRHUFIwIH07
CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGNvbnN0ZXhwciBKU1ZhbHVlUmVncyBqc0Fy
ZzEwIHsgR1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjphcmd1bWVudEdQUjAgfTsKKyNl
bmRpZgorCiAgICAgLy8gRmlyc3QgZ28gdGhyb3VnaCB0aGUgaW50ZWdlciBwYXJhbWV0ZXJzLCBm
cmVlaW5nIHVwIHRoZWlyIHJlZ2lzdGVyIGZvciB1c2UgYWZ0ZXJ3YXJkcy4KICAgICB7CiAgICAg
ICAgIHVuc2lnbmVkIG1hcnNoYWxsZWRHUFJzID0gMDsKQEAgLTExMSwyMSArMTIwLDIxIEBAIEV4
cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFp
bHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVm
OgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgogICAgICAgICAgICAgY2FzZSBUeXBl
S2luZDo6STY0OiB7Ci0gICAgICAgICAgICAgICAgR1BSUmVnIGdwclJlZzsKLSAgICAgICAgICAg
ICAgICBpZiAobWFyc2hhbGxlZEdQUnMgPCB3YXNtQ0MuZ3ByQXJncy5zaXplKCkpCi0gICAgICAg
ICAgICAgICAgICAgIGdwclJlZyA9IHdhc21DQy5ncHJBcmdzW21hcnNoYWxsZWRHUFJzXS5ncHIo
KTsKKyAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyBhcmdSZWc7CisgICAgICAgICAgICAgICAg
aWYgKG1hcnNoYWxsZWRHUFJzIDwgd2FzbUNDLmpzckFyZ3Muc2l6ZSgpKQorICAgICAgICAgICAg
ICAgICAgICBhcmdSZWcgPSB3YXNtQ0MuanNyQXJnc1ttYXJzaGFsbGVkR1BSc107CiAgICAgICAg
ICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgc3Bp
bGxlZCBhbGwgYXJndW1lbnRzLCB0aGVzZSByZWdpc3RlcnMgYXJlIGF2YWlsYWJsZSBhcyBzY3Jh
dGNoLgotICAgICAgICAgICAgICAgICAgICBncHJSZWcgPSBHUFJJbmZvOjphcmd1bWVudEdQUjA7
Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoSklUOjpBZGRyZXNzKEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyLCBmck9mZnNldCksIGdwclJlZyk7CisgICAgICAgICAgICAgICAgICAg
IGFyZ1JlZyA9IGpzQXJnMTA7CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoSklU
OjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBmck9mZnNldCksIGFyZ1JlZyk7
CiAgICAgICAgICAgICAgICAgICAgIGZyT2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICsrbWFyc2hhbGxlZEdQUnM7CiAgICAgICAg
ICAgICAgICAgaWYgKGFyZ1R5cGUuaXNJMzIoKSkgewotICAgICAgICAgICAgICAgICAgICBqaXQu
emVyb0V4dGVuZDMyVG9Xb3JkKGdwclJlZywgZ3ByUmVnKTsgLy8gQ2xlYXIgbm9uLWludDMyIGFu
ZCBub24tdGFnIGJpdHMuCi0gICAgICAgICAgICAgICAgICAgIGppdC5ib3hJbnQzMihncHJSZWcs
IEpTVmFsdWVSZWdzKGdwclJlZyksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAg
ICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoYXJnUmVnLnBheWxvYWRHUFIoKSwgYXJn
UmVnLnBheWxvYWRHUFIoKSk7IC8vIENsZWFyIG5vbi1pbnQzMiBhbmQgbm9uLXRhZyBiaXRzLgor
ICAgICAgICAgICAgICAgICAgICBqaXQuYm94SW50MzIoYXJnUmVnLnBheWxvYWRHUFIoKSwgYXJn
UmVnLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBqaXQuc3RvcmU2NChncHJSZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVl
RnJhbWVPZmZzZXQpKTsKKyAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShhcmdSZWcsIGNh
bGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsKICAgICAgICAgICAgICAg
ICBjYWxsZWVGcmFtZU9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOwogICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMTQyLDYgKzE1MSw3IEBAIEV4cGVjdGVkPE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRv
SlMoVk0mIHZtCiAgICAgfQogICAgIAogICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAg
ICAvLyBJbnRlZ2VyIHJlZ2lzdGVycyBoYXZlIGFscmVhZHkgYmVlbiBzcGlsbGVkLCB0aGVzZSBh
cmUgbm93IGF2YWlsYWJsZS4KICAgICAgICAgR1BSUmVnIGRvdWJsZUVuY29kZU9mZnNldEdQUlJl
ZyA9IEdQUkluZm86OmFyZ3VtZW50R1BSMDsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2ggPSBHUFJJ
bmZvOjphcmd1bWVudEdQUjE7CkBAIC0xNTcsNiArMTY3LDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhW
TSYgdm0KICAgICAgICAgICAgICAgICBoYXNNYXRlcmlhbGl6ZWREb3VibGVFbmNvZGVPZmZzZXQg
PSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9OworI2VuZGlmCiAKICAgICAgICAgdW5z
aWduZWQgbWFyc2hhbGxlZEdQUnMgPSAwOwogICAgICAgICB1bnNpZ25lZCBtYXJzaGFsbGVkRlBS
cyA9IDA7CkBAIC0xNjUsMTAgKzE3NiwxNCBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVS
ZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogCiAg
ICAgICAgIGF1dG8gbWFyc2hhbGxGUFIgPSBbJl0gKEZQUlJlZyBmcHJSZWcpIHsKICAgICAgICAg
ICAgIGppdC5wdXJpZnlOYU4oZnByUmVnKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAg
ICAgaml0Lm1vdmVEb3VibGVUbzY0KGZwclJlZywgc2NyYXRjaCk7CiAgICAgICAgICAgICBtYXRl
cmlhbGl6ZURvdWJsZUVuY29kZU9mZnNldChkb3VibGVFbmNvZGVPZmZzZXRHUFJSZWcpOwogICAg
ICAgICAgICAgaml0LmFkZDY0KGRvdWJsZUVuY29kZU9mZnNldEdQUlJlZywgc2NyYXRjaCk7CiAg
ICAgICAgICAgICBqaXQuc3RvcmU2NChzY3JhdGNoLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNh
bGxlZUZyYW1lT2Zmc2V0KSk7CisjZWxzZQorICAgICAgICAgICAgaml0LnN0b3JlRG91YmxlKGZw
clJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCkpOworI2VuZGlm
CiAgICAgICAgICAgICBjYWxsZWVGcmFtZU9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOwogICAg
ICAgICAgICAgKyttYXJzaGFsbGVkRlBSczsKICAgICAgICAgfTsKQEAgLTE4Niw3ICsyMDEsNyBA
QCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGlu
Z0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMy
OgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OiB7CiAgICAgICAgICAgICAgICAgLy8g
U2tpcHBlZDogaGFuZGxlZCBhYm92ZS4KLSAgICAgICAgICAgICAgICBpZiAobWFyc2hhbGxlZEdQ
UnMgPj0gd2FzbUNDLmdwckFyZ3Muc2l6ZSgpKQorICAgICAgICAgICAgICAgIGlmIChtYXJzaGFs
bGVkR1BScyA+PSB3YXNtQ0MuanNyQXJncy5zaXplKCkpCiAgICAgICAgICAgICAgICAgICAgIGZy
T2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CiAgICAgICAgICAgICAgICAgKyttYXJzaGFsbGVk
R1BSczsKICAgICAgICAgICAgICAgICBjYWxsZWVGcmFtZU9mZnNldCArPSBzaXplb2YoUmVnaXN0
ZXIpOwpAQCAtMTk1LDcgKzIxMCw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxX
YXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6IHsKICAgICAgICAgICAgICAgICBGUFJSZWcgZnByUmVn
OwogICAgICAgICAgICAgICAgIGlmIChtYXJzaGFsbGVkRlBScyA8IHdhc21DQy5mcHJBcmdzLnNp
emUoKSkKLSAgICAgICAgICAgICAgICAgICAgZnByUmVnID0gd2FzbUNDLmZwckFyZ3NbbWFyc2hh
bGxlZEZQUnNdLmZwcigpOworICAgICAgICAgICAgICAgICAgICBmcHJSZWcgPSB3YXNtQ0MuZnBy
QXJnc1ttYXJzaGFsbGVkRlBSc107CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAg
ICAgICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgc3BpbGxlZCBhbGwgYXJndW1lbnRzLCB0aGVzZSBy
ZWdpc3RlcnMgYXJlIGF2YWlsYWJsZSBhcyBzY3JhdGNoLgogICAgICAgICAgICAgICAgICAgICBm
cHJSZWcgPSBGUFJJbmZvOjphcmd1bWVudEZQUjA7CkBAIC0yMDksNyArMjI0LDcgQEAgRXhwZWN0
ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJl
PiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2NDogewogICAg
ICAgICAgICAgICAgIEZQUlJlZyBmcHJSZWc7CiAgICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxs
ZWRGUFJzIDwgd2FzbUNDLmZwckFyZ3Muc2l6ZSgpKQotICAgICAgICAgICAgICAgICAgICBmcHJS
ZWcgPSB3YXNtQ0MuZnByQXJnc1ttYXJzaGFsbGVkRlBSc10uZnByKCk7CisgICAgICAgICAgICAg
ICAgICAgIGZwclJlZyA9IHdhc21DQy5mcHJBcmdzW21hcnNoYWxsZWRGUFJzXTsKICAgICAgICAg
ICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgLy8gV2UndmUgYWxyZWFkeSBzcGls
bGVkIGFsbCBhcmd1bWVudHMsIHRoZXNlIHJlZ2lzdGVycyBhcmUgYXZhaWxhYmxlIGFzIHNjcmF0
Y2guCiAgICAgICAgICAgICAgICAgICAgIGZwclJlZyA9IEZQUkluZm86OmFyZ3VtZW50RlBSMDsK
QEAgLTIzMSwxMiArMjQ2LDE1IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNt
RW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgIHVu
c2lnbmVkIGNhbGxlZUZyYW1lT2Zmc2V0ID0gQ2FsbEZyYW1lU2xvdDo6Zmlyc3RBcmd1bWVudCAq
IHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSk7CiAgICAgICAgIGZvciAodW5zaWdu
ZWQgYXJnTnVtID0gMDsgYXJnTnVtIDwgYXJnQ291bnQ7ICsrYXJnTnVtKSB7CiAgICAgICAgICAg
ICBpZiAoc2lnbmF0dXJlLmFyZ3VtZW50KGFyZ051bSkuaXNJNjQoKSkgewotICAgICAgICAgICAg
ICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZShHUFJJbmZvOjphcmd1bWVudEdQUjApOwot
ICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVG
cmFtZU9mZnNldCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Ci0gICAgICAgICAgICAgICAgaml0
LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+KEdQUklu
Zm86OmFyZ3VtZW50R1BSMCwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgICAgICAg
ICB1c2luZyBPcGVyYXRpb24gPSBkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpOwor
ICAgICAgICAgICAgICAgIGNvbnN0ZXhwciBHUFJSZWcgd2FzbUluc3RhbmNlR1BSID0gcHJlZmVy
cmVkQXJndW1lbnRHUFI8T3BlcmF0aW9uLCAxPigpOworICAgICAgICAgICAgICAgIGNvbnN0ZXhw
ciBKU1ZhbHVlUmVncyB2YWx1ZUpTUiA9IHByZWZlcnJlZEFyZ3VtZW50SlNSPE9wZXJhdGlvbiwg
Mj4oKTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uod2FzbUlu
c3RhbmNlR1BSKTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGNhbGxlZUZyYW1lLndp
dGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpLCB2YWx1ZUpTUik7CisgICAgICAgICAgICAgICAg
aml0LnNldHVwQXJndW1lbnRzPE9wZXJhdGlvbj4od2FzbUluc3RhbmNlR1BSLCB2YWx1ZUpTUik7
CiAgICAgICAgICAgICAgICAgYXV0byBjYWxsID0gaml0LmNhbGwoT3BlcmF0aW9uUHRyVGFnKTsK
ICAgICAgICAgICAgICAgICBleGNlcHRpb25DaGVja3MuYXBwZW5kKGppdC5lbWl0SnVtcElmRXhj
ZXB0aW9uKHZtKSk7Ci0gICAgICAgICAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsKKyAg
ICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgY2Fs
bGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCkpOwogICAgICAgICAgICAgICAg
IGppdC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKICAgICAgICAg
ICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKGNhbGwsIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0
clRhZz4ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KSk7CiAgICAgICAgICAgICAgICAgfSk7CkBA
IC0yNDgsMTYgKzI2NiwyMiBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVu
dHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgIGppdC5sb2Fk
V2FzbUNvbnRleHRJbnN0YW5jZShHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIGppdC5sb2Fk
UHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjphcmd1bWVudEdQUjAsIEluc3RhbmNl
OjpvZmZzZXRPZk93bmVyKCkpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIGppdC5sb2Fk
UHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjphcmd1bWVudEdQUjAsIEpTV2ViQXNz
ZW1ibHlJbnN0YW5jZTo6b2Zmc2V0T2ZNb2R1bGUoKSksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
Ci0gICAgaml0LmVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihHUFJJbmZvOjphcmd1bWVudEdQUjAs
IENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7Ci0KLSAgICBHUFJSZWcgaW1wb3J0SlNDZWxsR1BSUmVn
ID0gR1BSSW5mbzo6cmVnVDA7IC8vIENhbGxlZSBuZWVkcyB0byBiZSBpbiByZWdUMCBmb3Igc2xv
dyBwYXRoIGJlbG93LgorICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBjYWxsZWVTbG90IHsgR1BS
SW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAgKiBzaXplb2Yo
UmVnaXN0ZXIpIH07CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgY2Fs
bGVlU2xvdCk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBqaXQuc3RvcmUzMihDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgY2FsbGVlU2xvdC53aXRoT2Zm
c2V0KFRhZ09mZnNldCkpOworI2VuZGlmCiAKKyAgICAvLyBqc0FyZzEwIG1pZ2h0IG92ZXJsYXAg
d2l0aCByZWdUMCwgc28gc3RvcmUgJ3RoaXMnIGFyZ3VtZW50IGZpcnN0CisgICAgaml0LnN0b3Jl
VmFsdWUoanNVbmRlZmluZWQoKSwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90
Ojp0aGlzQXJndW1lbnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSwganNB
cmcxMCk7CisgICAgY29uc3RleHByIEdQUlJlZyBpbXBvcnRKU0NlbGxHUFJSZWcgPSBHUFJJbmZv
OjpyZWdUMDsgLy8gQ2FsbGVlIG5lZWRzIHRvIGJlIGluIHJlZ1QwIGZvciBzbG93IHBhdGggYmVs
b3cuCiAgICAgQVNTRVJUKCF3YXNtQ0MuY2FsbGVlU2F2ZVJlZ2lzdGVycy5nZXQoaW1wb3J0SlND
ZWxsR1BSUmVnKSk7CiAgICAgbWF0ZXJpYWxpemVJbXBvcnRKU0NlbGwoaml0LCBpbXBvcnRJbmRl
eCwgaW1wb3J0SlNDZWxsR1BSUmVnKTsKLQotICAgIGppdC5zdG9yZTY0KGltcG9ydEpTQ2VsbEdQ
UlJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90OjpjYWxsZWUgKiBzdGF0
aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CisgICAgaml0LnN0b3JlUHRyKGltcG9y
dEpTQ2VsbEdQUlJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90OjpjYWxs
ZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CisjaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1Zh
bHVlOjpDZWxsVGFnKSwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90OjpjYWxs
ZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgVGFnT2Zmc2V0KSk7Cisj
ZW5kaWYKICAgICBqaXQuc3RvcmUzMihKSVQ6OlRydXN0ZWRJbW0zMihudW1iZXJPZlBhcmFtZXRl
cnMpLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnRJ
bmNsdWRpbmdUaGlzICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSArIFBheWxv
YWRPZmZzZXQpKTsKLSAgICBqaXQuc3RvcmU2NChKSVQ6OlRydXN0ZWRJbW02NChKU1ZhbHVlOjpW
YWx1ZVVuZGVmaW5lZCksIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoQ2FsbEZyYW1lU2xvdDo6dGhp
c0FyZ3VtZW50ICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOwogCiAgICAg
Ly8gRklYTUUgVGFpbCBjYWxsIGlmIHRoZSB3YXNtIHJldHVybiB0eXBlIGlzIHZvaWQgYW5kIG5v
IHJlZ2lzdGVycyB3ZXJlIHNwaWxsZWQuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjU0ODgKIApAQCAtMjgyLDExICszMDYsMTEgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhW
TSYgdm0KICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OiB7CiAgICAgICAgICAgICAvLyBGSVhN
RTogT3B0aW1pemUgSTY0IGV4dHJhY3Rpb24gZnJvbSBCaWdJbnQuCiAgICAgICAgICAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMDUzCi0gICAgICAgICAg
ICBHUFJSZWcgZGVzdCA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmdwcigpOwotICAgICAgICAg
ICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCk+KEdQ
UkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIGRlc3QgPSB3
YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5qc3IoKTsKKyAgICAgICAgICAgIGppdC5zZXR1cEFyZ3Vt
ZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9JNjQpPihKU1JJbmZvOjpyZXR1cm5WYWx1
ZUpTUik7CiAgICAgICAgICAgICBhdXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25QdHJUYWcp
OwogICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1bXBJZkV4Y2Vw
dGlvbih2bSkpOwotICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIs
IGRlc3QpOworICAgICAgICAgICAgaml0Lm1vdmVWYWx1ZVJlZ3MoSlNSSW5mbzo6cmV0dXJuVmFs
dWVKU1IsIGRlc3QpOwogCiAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soWz1dIChMaW5rQnVm
ZmVyJiBsaW5rQnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKGNhbGws
IEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQ29udmVydFRvSTY0KSk7CkBA
IC0yOTYsMTggKzMyMCwyMSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVu
dHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICBjYXNl
IFR5cGVLaW5kOjpJMzI6IHsKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZG9u
ZTsKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3Qgc2xvd1BhdGg7Ci0gICAgICAg
ICAgICBHUFJSZWcgZGVzdCA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmdwcigpOworICAgICAg
ICAgICAgSlNWYWx1ZVJlZ3MgZGVzdEpTUiA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmpzcigp
OwogCi0gICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKEdQ
UkluZm86OnJldHVyblZhbHVlR1BSLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpKTsKLSAgICAgICAg
ICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMihKU1ZhbHVlUmVncyhHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUiksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycykpOwotICAgICAgICAg
ICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7
CisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKEpTUklu
Zm86OnJldHVyblZhbHVlSlNSLCBqaXQuc2NyYXRjaFJlZ2lzdGVyKCksIERvTm90SGF2ZVRhZ1Jl
Z2lzdGVycykpOworICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdElu
dDMyKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpKTsKKyAg
ICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1Iu
cGF5bG9hZEdQUigpLCBkZXN0SlNSLnBheWxvYWRHUFIoKSk7CiAgICAgICAgICAgICBkb25lLmFw
cGVuZChqaXQuanVtcCgpKTsKIAogICAgICAgICAgICAgc2xvd1BhdGgubGluaygmaml0KTsKLSAg
ICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9J
MzIpPihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgICAgICBqaXQuc2V0dXBBcmd1
bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvSTMyKT4oSlNSSW5mbzo6cmV0dXJuVmFs
dWVKU1IpOwogICAgICAgICAgICAgYXV0byBjYWxsID0gaml0LmNhbGwoT3BlcmF0aW9uUHRyVGFn
KTsKICAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRKdW1wSWZFeGNl
cHRpb24odm0pKTsKLSAgICAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BS
LCBkZXN0KTsKKyAgICAgICAgICAgIGppdC5tb3ZlKEpTUkluZm86OnJldHVyblZhbHVlSlNSLnBh
eWxvYWRHUFIoKSwgZGVzdEpTUi5wYXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQp
CisgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSwgZGVz
dEpTUi50YWdHUFIoKSk7CisjZW5kaWYKIAogICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKFs9
XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewogICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIu
bGluayhjYWxsLCBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkNvbnZlcnRU
b0kzMikpOwpAQCAtMzE3LDI1ICszNDQsMjkgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjog
ewotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBkb25lOwogICAgICAgICAgICAg
RlBSUmVnIGRlc3QgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5mcHIoKTsKIAotICAgICAgICAg
ICAgYXV0byBub3RBTnVtYmVyID0gaml0LmJyYW5jaElmTm90TnVtYmVyKEdQUkluZm86OnJldHVy
blZhbHVlR1BSLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwotICAgICAgICAgICAgYXV0byBpc0Rv
dWJsZSA9IGppdC5icmFuY2hJZk5vdEludDMyKEpTVmFsdWVSZWdzKEdQUkluZm86OnJldHVyblZh
bHVlR1BSKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgICAgIENDYWxsSGVscGVy
czo6SnVtcExpc3QgZG9uZTsKKworICAgICAgICAgICAgYXV0byBub3RBTnVtYmVyID0gaml0LmJy
YW5jaElmTm90TnVtYmVyKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBqaXQuc2NyYXRjaFJlZ2lz
dGVyKCksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAgICBhdXRvIGlzRG91Ymxl
ID0gaml0LmJyYW5jaElmTm90SW50MzIoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIERvTm90SGF2
ZVRhZ1JlZ2lzdGVycyk7CiAgICAgICAgICAgICAvLyBXZSdyZSBhbiBpbnQzMgotICAgICAgICAg
ICAgaml0LnNpZ25FeHRlbmQzMlRvUHRyKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZv
OjpyZXR1cm5WYWx1ZUdQUik7Ci0gICAgICAgICAgICBqaXQuY29udmVydEludDY0VG9GbG9hdChH
UFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CisgICAgICAgICAgICBqaXQuY29udmVydElu
dDMyVG9GbG9hdChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CiAgICAgICAgICAgICBk
b25lLmFwcGVuZChqaXQuanVtcCgpKTsKIAogICAgICAgICAgICAgaXNEb3VibGUubGluaygmaml0
KTsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgaml0Lm1vdmUoSklUOjpUcnVzdGVk
SW1tNjQoSlNWYWx1ZTo6TnVtYmVyVGFnKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIyKTsKICAg
ICAgICAgICAgIGppdC5hZGQ2NChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUjIsIEdQUkluZm86OnJl
dHVyblZhbHVlR1BSKTsKICAgICAgICAgICAgIGppdC5tb3ZlNjRUb0RvdWJsZShHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CisjZWxzZQorICAgICAgICAgICAgaml0LnVuYm94RG91Ymxl
KEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBkZXN0KTsKKyNlbmRpZgogICAgICAgICAgICAgaml0
LmNvbnZlcnREb3VibGVUb0Zsb2F0KGRlc3QsIGRlc3QpOwogICAgICAgICAgICAgZG9uZS5hcHBl
bmQoaml0Lmp1bXAoKSk7Ci0KICAgICAgICAgICAgIG5vdEFOdW1iZXIubGluaygmaml0KTsKLSAg
ICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9G
MzIpPihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisKKyAgICAgICAgICAgIGppdC5zZXR1cEFy
Z3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9GMzIpPihKU1JJbmZvOjpyZXR1cm5W
YWx1ZUpTUik7CiAgICAgICAgICAgICBhdXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25QdHJU
YWcpOwogICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1bXBJZkV4
Y2VwdGlvbih2bSkpOwogICAgICAgICAgICAgaml0Lm1vdmUoRlBSSW5mbzo6cmV0dXJuVmFsdWVG
UFIgLCBkZXN0KTsKQEAgLTM0OCwyNCArMzc5LDI3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVy
Q29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZt
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFR5cGVLaW5kOjpG
NjQ6IHsKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZG9uZTsKICAgICAgICAg
ICAgIEZQUlJlZyBkZXN0ID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uZnByKCk7CisgICAgICAg
ICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CiAKLSAgICAgICAgICAgIGF1dG8gbm90
QU51bWJlciA9IGppdC5icmFuY2hJZk5vdE51bWJlcihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwg
RG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKLSAgICAgICAgICAgIGF1dG8gaXNEb3VibGUgPSBqaXQu
YnJhbmNoSWZOb3RJbnQzMihKU1ZhbHVlUmVncyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiksIERv
Tm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAgICBhdXRvIG5vdEFOdW1iZXIgPSBqaXQu
YnJhbmNoSWZOb3ROdW1iZXIoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIGppdC5zY3JhdGNoUmVn
aXN0ZXIoKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgICAgIGF1dG8gaXNEb3Vi
bGUgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgRG9Ob3RI
YXZlVGFnUmVnaXN0ZXJzKTsKICAgICAgICAgICAgIC8vIFdlJ3JlIGFuIGludDMyCi0gICAgICAg
ICAgICBqaXQuc2lnbkV4dGVuZDMyVG9QdHIoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUklu
Zm86OnJldHVyblZhbHVlR1BSKTsKLSAgICAgICAgICAgIGppdC5jb252ZXJ0SW50NjRUb0RvdWJs
ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CisgICAgICAgICAgICBqaXQuY29udmVy
dEludDMyVG9Eb3VibGUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOwogICAgICAgICAg
ICAgZG9uZS5hcHBlbmQoaml0Lmp1bXAoKSk7CiAKICAgICAgICAgICAgIGlzRG91YmxlLmxpbmso
JmppdCk7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgICAgIGppdC5tb3ZlKEpJVDo6VHJ1
c3RlZEltbTY0KEpTVmFsdWU6Ok51bWJlclRhZyksIEdQUkluZm86OnJldHVyblZhbHVlR1BSMik7
CiAgICAgICAgICAgICBqaXQuYWRkNjQoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIyLCBHUFJJbmZv
OjpyZXR1cm5WYWx1ZUdQUik7CiAgICAgICAgICAgICBqaXQubW92ZTY0VG9Eb3VibGUoR1BSSW5m
bzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOworI2Vsc2UKKyAgICAgICAgICAgIGppdC51bmJveERv
dWJsZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgZGVzdCk7CisjZW5kaWYKICAgICAgICAgICAg
IGRvbmUuYXBwZW5kKGppdC5qdW1wKCkpOwotCiAgICAgICAgICAgICBub3RBTnVtYmVyLmxpbmso
JmppdCk7Ci0gICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9u
Q29udmVydFRvRjY0KT4oR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworCisgICAgICAgICAgICBq
aXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvRjY0KT4oSlNSSW5m
bzo6cmV0dXJuVmFsdWVKU1IpOwogICAgICAgICAgICAgYXV0byBjYWxsID0gaml0LmNhbGwoT3Bl
cmF0aW9uUHRyVGFnKTsKICAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVt
aXRKdW1wSWZFeGNlcHRpb24odm0pKTsKICAgICAgICAgICAgIGppdC5tb3ZlKEZQUkluZm86OnJl
dHVyblZhbHVlRlBSLCBkZXN0KTsKQEAgLTM3OSw3ICs0MTMsNyBAQCBFeHBlY3RlZDxNYWNyb0Fz
c2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pT
KFZNJiB2bQogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6ICB7CiAgICAgICAgICAgICBpZiAo
V2FzbTo6aXNGdW5jcmVmKHJldHVyblR5cGUpIHx8IFdhc206OmlzRXh0ZXJucmVmKHJldHVyblR5
cGUpKQotICAgICAgICAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCB3
YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5ncHIoKSk7CisgICAgICAgICAgICAgICAgaml0Lm1vdmVW
YWx1ZVJlZ3MoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIHdhc21DYWxsSW5mby5yZXN1bHRzWzBd
LmpzcigpKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAvLyBGb3IgdGhlIEph
dmFTY3JpcHQgZW1iZWRkaW5nLCBpbXBvcnRzIHdpdGggdGhlc2UgdHlwZXMgaW4gdGhlaXIgc2ln
bmF0dXJlIHJldHVybiBhcmUgYSBXZWJBc3NlbWJseS5Nb2R1bGUgdmFsaWRhdGlvbiBlcnJvci4K
ICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzkzLDEy
ICs0MjcsMjkgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRh
Zz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIGppdC5sb2Fk
V2FzbUNvbnRleHRJbnN0YW5jZSh3YXNtQ29udGV4dEluc3RhbmNlR1BSKTsKICAgICAgICAgfQog
Ci0gICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25JdGVyYXRlUmVz
dWx0cyk+KHdhc21Db250ZXh0SW5zdGFuY2VHUFIsICZzaWduYXR1cmUsIEdQUkluZm86OnJldHVy
blZhbHVlR1BSLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBDQ2FsbEhlbHBl
cnM6OmZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgY29uc3RleHByIEdQUlJlZyBzYXZl
ZFJlc3VsdHNHUFIgPSBwcmVmZXJyZWRBcmd1bWVudEdQUjxkZWNsdHlwZShvcGVyYXRpb25JdGVy
YXRlUmVzdWx0cyksIDQ+KCk7CisgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6c3RhY2tQ
b2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0c0dQUik7CisgICAgICAgIGlmIGNvbnN0ZXhwciAo
bWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAgICBqaXQuc3ViUHRyKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwg
Q0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIHN0YXRpY19hc3Nl
cnQobm9PdmVybGFwKHNhdmVkUmVzdWx0c0dQUiwgSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpKTsK
KyAgICAgICAgQVNTRVJUKHdhc21Db250ZXh0SW5zdGFuY2VHUFIgIT0gc2F2ZWRSZXN1bHRzR1BS
KTsKKyAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkl0ZXJhdGVS
ZXN1bHRzKT4od2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
UHRyKCZzaWduYXR1cmUpLCBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgc2F2ZWRSZXN1bHRzR1BS
LCBDQ2FsbEhlbHBlcnM6OmZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKICAgICAgICAgaml0LmNhbGxP
cGVyYXRpb24oRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25JdGVyYXRlUmVz
dWx0cykpOworICAgICAgICBpZiBjb25zdGV4cHIgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhD
YWxsKQorICAgICAgICAgICAgaml0LmFkZFB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMiht
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVy
UmVnaXN0ZXIpOworCiAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRKdW1w
SWZFeGNlcHRpb24odm0pKTsKIAotICAgICAgICBmb3IgKFJlZ2lzdGVyQXRPZmZzZXQgbG9jYXRp
b24gOiBzYXZlZFJlc3VsdFJlZ2lzdGVycykKLSAgICAgICAgICAgIGppdC5sb2FkNjRUb1JlZyhD
Q2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwg
bG9jYXRpb24ub2Zmc2V0KCkpLCBsb2NhdGlvbi5yZWcoKSk7CisgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBzaWduYXR1cmUucmV0dXJuQ291bnQoKTsgKytpKSB7CisgICAgICAgICAg
ICBWYWx1ZUxvY2F0aW9uIGxvYyA9IHdhc21DYWxsSW5mby5yZXN1bHRzW2ldOworICAgICAgICAg
ICAgaWYgKGxvYy5pc0dQUigpKSB7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAg
ICAgICBBU1NFUlQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQ
UigpKS0+b2Zmc2V0KCkgKyA0ID09IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigp
LnRhZ0dQUigpKS0+b2Zmc2V0KCkpOworI2VuZGlmCisgICAgICAgICAgICAgICAgaml0LmxvYWRW
YWx1ZShDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdp
c3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+
b2Zmc2V0KCkpLCBsb2MuanNyKCkpOworICAgICAgICAgICAgfSBlbHNlIGlmIChsb2MuaXNGUFIo
KSkKKyAgICAgICAgICAgICAgICBqaXQubG9hZERvdWJsZShDQ2FsbEhlbHBlcnM6OkFkZHJlc3Mo
Q0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMu
ZmluZChsb2MuZnByKCkpLT5vZmZzZXQoKSksIGxvYy5mcHIoKSk7CisgICAgICAgIH0KICAgICB9
CiAKICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKaW5kZXggYzc4NzM3
M2Y3YzkyLi5kYTlkYzA4NTFiMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCkBAIC0xNTcsNiArMTU3LDkgQEAgcHRy
ZGlmZl90IFdlYkFzc2VtYmx5RnVuY3Rpb246OnByZXZpb3VzSW5zdGFuY2VPZmZzZXQoKSBjb25z
dAogewogICAgIHB0cmRpZmZfdCByZXN1bHQgPSBjYWxsZWVTYXZlcygpLm51bWJlck9mU2V0UmVn
aXN0ZXJzKCkgKiBzaXplb2YoQ1BVUmVnaXN0ZXIpOwogICAgIHJlc3VsdCA9IC1yZXN1bHQgLSBz
aXplb2YoQ1BVUmVnaXN0ZXIpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgQVNTRVJUKCFj
YWxsZWVTYXZlcygpLm51bWJlck9mU2V0RlBScygpKTsgLy8gQmVjYXVzZSBGUFJzIGFyZSB3aWRl
ciB0aGFuIHNpemVvZihDUFVSZWdpc3RlcikKKyNlbmRpZgogI2lmIEFTU0VSVF9FTkFCTEVECiAg
ICAgcHRyZGlmZl90IG1pbk9mZnNldCA9IDE7CiAgICAgZm9yIChjb25zdCBSZWdpc3RlckF0T2Zm
c2V0JiByZWdBdE9mZnNldCA6IHVzZWRDYWxsZWVTYXZlUmVnaXN0ZXJzKCkpIHsKQEAgLTE4NSwx
NyArMTg4LDE1IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3Nl
bWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgY29uc3QgYXV0byYgcGlu
bmVkUmVncyA9IFdhc206OlBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCk7CiAgICAgUmVnaXN0ZXJB
dE9mZnNldExpc3QgcmVnaXN0ZXJzVG9TcGlsbCA9IHVzZWRDYWxsZWVTYXZlUmVnaXN0ZXJzKCk7
CiAKLSAgICBhdXRvJiBtb2R1bGVJbmZvcm1hdGlvbiA9IGluc3RhbmNlKCktPmluc3RhbmNlKCku
bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKTsKLQogICAgIGNvbnN0IFdhc206Oldhc21DYWxs
aW5nQ29udmVudGlvbiYgd2FzbUNDID0gV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKCk7CiAg
ICAgV2FzbTo6Q2FsbEluZm9ybWF0aW9uIHdhc21DYWxsSW5mbyA9IHdhc21DQy5jYWxsSW5mb3Jt
YXRpb25Gb3Ioc2lnbmF0dXJlKTsKICAgICBXYXNtOjpDYWxsSW5mb3JtYXRpb24ganNDYWxsSW5m
byA9IFdhc206OmpzQ2FsbGluZ0NvbnZlbnRpb24oKS5jYWxsSW5mb3JtYXRpb25Gb3Ioc2lnbmF0
dXJlLCBXYXNtOjpDYWxsUm9sZTo6Q2FsbGVlKTsKICAgICBSZWdpc3RlckF0T2Zmc2V0TGlzdCBz
YXZlZFJlc3VsdFJlZ2lzdGVycyA9IHdhc21DYWxsSW5mby5jb21wdXRlUmVzdWx0c09mZnNldExp
c3QoKTsKIAotICAgIHVuc2lnbmVkIHRvdGFsRnJhbWVTaXplID0gcmVnaXN0ZXJzVG9TcGlsbC5z
aXplKCkgKiBzaXplb2YoQ1BVUmVnaXN0ZXIpOworICAgIHVuc2lnbmVkIHRvdGFsRnJhbWVTaXpl
ID0gcmVnaXN0ZXJzVG9TcGlsbC5zaXplT2ZBcmVhSW5CeXRlcygpOwogICAgIHRvdGFsRnJhbWVT
aXplICs9IHNpemVvZihDUFVSZWdpc3Rlcik7IC8vIFNsb3QgZm9yIHRoZSBWTSdzIHByZXZpb3Vz
IHdhc20gaW5zdGFuY2UuCiAgICAgdG90YWxGcmFtZVNpemUgKz0gd2FzbUNhbGxJbmZvLmhlYWRl
ckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlczsKLSAgICB0b3RhbEZyYW1lU2l6ZSArPSBzYXZl
ZFJlc3VsdFJlZ2lzdGVycy5zaXplKCkgKiBzaXplb2YoQ1BVUmVnaXN0ZXIpOworICAgIHRvdGFs
RnJhbWVTaXplICs9IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLnNpemVPZkFyZWFJbkJ5dGVzKCk7CiAK
ICAgICAvLyBGSVhNRTogT3B0aW1pemUgV2FzbSBmdW5jdGlvbiBjYWxsIGV2ZW4gaWYgYXJndW1l
bnRzIGluY2x1ZGUgSTY0LgogICAgIC8vIFRoaXMgcmVxdWlyZXMgSTY0IGV4dHJhY3Rpb24gZnJv
bSBCaWdJbnQuCkBAIC0yMTUsOSArMjE2LDE0IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0Vu
dHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAg
ICAgICAgIGppdC5zdG9yZVB0cihyZWcsIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3Rlciwgb2Zmc2V0KSk7CiAgICAgfQogCi0gICAgR1BSUmVnIHNjcmF0Y2hH
UFIgPSBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFd
OwotICAgIGJvb2wgc3RhY2tMaW1pdEdQUklzQ2xvYmJlcmVkID0gZmFsc2U7CisgICAgSlNWYWx1
ZVJlZ3Mgc2NyYXRjaEpTUiB7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgV2FzbTo6
d2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1syXSwKKyNlbmRpZgor
ICAgICAgICBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJz
WzFdCisgICAgfTsKICAgICBHUFJSZWcgc3RhY2tMaW1pdEdQUiA9IFdhc206Ondhc21DYWxsaW5n
Q29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMF07CisgICAgYm9vbCBzdGFja0xpbWl0
R1BSSXNDbG9iYmVyZWQgPSBmYWxzZTsKICAgICBqaXQubG9hZFB0cih2bS5hZGRyZXNzT2ZTb2Z0
U3RhY2tMaW1pdCgpLCBzdGFja0xpbWl0R1BSKTsKIAogICAgIENDYWxsSGVscGVyczo6SnVtcExp
c3Qgc2xvd1BhdGg7CkBAIC0yMzYsNyArMjQyLDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpT
RW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkK
ICAgICAgICAgaml0LmVtaXRNYXRlcmlhbGl6ZVRhZ0NoZWNrUmVnaXN0ZXJzKCk7CiAKICAgICAv
LyBMb29wIGJhY2t3YXJkcyBzbyB3ZSBjYW4gdXNlIHRoZSBmaXJzdCBmbG9hdGluZyBwb2ludCBh
cmd1bWVudCBhcyBhIHNjcmF0Y2guCi0gICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBXYXNtOjp3YXNt
Q2FsbGluZ0NvbnZlbnRpb24oKS5mcHJBcmdzWzBdLmZwcigpOworICAgIEZQUlJlZyBzY3JhdGNo
RlBSID0gV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKCkuZnByQXJnc1swXTsKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSBzaWduYXR1cmUuYXJndW1lbnRDb3VudCgpOyBpLS07KSB7CiAgICAgICAg
IENDYWxsSGVscGVyczo6QWRkcmVzcyBjYWxsZWVGcmFtZSA9IENDYWxsSGVscGVyczo6QWRkcmVz
cyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIDApOwogICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MganNQYXJhbShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwganND
YWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbUZQKCkpOwpAQCAtMjQ1LDEyICsyNTEsMjAgQEAg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246
OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAgICAgYXV0byB0eXBlID0gc2lnbmF0dXJlLmFy
Z3VtZW50KGkpOwogICAgICAgICBzd2l0Y2ggKHR5cGUua2luZCkgewogICAgICAgICBjYXNlIFdh
c206OlR5cGVLaW5kOjpJMzI6IHsKLSAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2Ny
YXRjaEdQUik7Ci0gICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50
MzIoc2NyYXRjaEdQUikpOwotICAgICAgICAgICAgaWYgKGlzU3RhY2spCi0gICAgICAgICAgICAg
ICAgaml0LnN0b3JlMzIoc2NyYXRjaEdQUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2Fs
bEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChzY3JhdGNoR1BSLCB3YXNtQ2FsbElu
Zm8ucGFyYW1zW2ldLmdwcigpKTsKKyAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQYXJhbSwg
c2NyYXRjaEpTUik7CisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90
SW50MzIoc2NyYXRjaEpTUikpOworICAgICAgICAgICAgaWYgKGlzU3RhY2spIHsKKyAgICAgICAg
ICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgYWRkciB7IGNhbGxlZUZyYW1lLndpdGhPZmZz
ZXQod2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkgfTsKKyAgICAgICAgICAg
ICAgICBqaXQuc3RvcmUzMihzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgYWRkci53aXRoT2Zmc2V0
KFBheWxvYWRPZmZzZXQpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAg
IGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCBhZGRyLndpdGhPZmZz
ZXQoVGFnT2Zmc2V0KSk7CisjZW5kaWYKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgd2Fz
bUNhbGxJbmZvLnBhcmFtc1tpXS5qc3IoKS5wYXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVF
MzJfNjQpCisgICAgICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
MzIoMCksIHdhc21DYWxsSW5mby5wYXJhbXNbaV0uanNyKCkudGFnR1BSKCkpOworI2VuZGlmCisg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNl
IFdhc206OlR5cGVLaW5kOjpSZWY6CkBAIC0yNTksMjcgKzI3MywyNyBAQCBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlw
b2ludFNsb3coKQogICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpFeHRlcm5yZWY6IHsKICAg
ICAgICAgICAgIGlmICghV2FzbTo6aXNFeHRlcm5yZWYodHlwZSkpIHsKICAgICAgICAgICAgICAg
ICAvLyBFbnN1cmUgd2UgaGF2ZSBhIFdBU00gZXhwb3J0ZWQgZnVuY3Rpb24uCi0gICAgICAgICAg
ICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAgICBh
dXRvIGlzTnVsbCA9IGppdC5icmFuY2hJZk51bGwoc2NyYXRjaEdQUik7CisgICAgICAgICAgICAg
ICAgaml0LmxvYWRWYWx1ZShqc1BhcmFtLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAgICAgICBh
dXRvIGlzTnVsbCA9IGppdC5icmFuY2hJZk51bGwoc2NyYXRjaEpTUik7CiAgICAgICAgICAgICAg
ICAgaWYgKCF0eXBlLmlzTnVsbGFibGUoKSkKICAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGgu
YXBwZW5kKGlzTnVsbCk7Ci0gICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFu
Y2hJZk5vdENlbGwoc2NyYXRjaEdQUikpOworICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVu
ZChqaXQuYnJhbmNoSWZOb3RDZWxsKHNjcmF0Y2hKU1IpKTsKIAogICAgICAgICAgICAgICAgIHN0
YWNrTGltaXRHUFJJc0Nsb2JiZXJlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgaml0LmVtaXRM
b2FkU3RydWN0dXJlKHZtLCBzY3JhdGNoR1BSLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAg
ICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgU3RydWN0dXJl
OjpjbGFzc0luZm9PZmZzZXQoKSksIHNjcmF0Y2hHUFIpOworICAgICAgICAgICAgICAgIGppdC5l
bWl0TG9hZFN0cnVjdHVyZSh2bSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hKU1Iu
cGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6
OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zm
c2V0KCkpLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAKICAgICAgICAgICAgICAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8V2ViQXNzZW1ibHlGdW5jdGlvbj46OnZhbHVlLCAiV2Ug
ZG8gbm90IGNoZWNrIGZvciBzdWJ0eXBlcyBiZWxvdyIpOwogICAgICAgICAgICAgICAgIHN0YXRp
Y19hc3NlcnQoc3RkOjppc19maW5hbDxXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbj46OnZhbHVl
LCAiV2UgZG8gbm90IGNoZWNrIGZvciBzdWJ0eXBlcyBiZWxvdyIpOwogCi0gICAgICAgICAgICAg
ICAgYXV0byBpc1dhc21GdW5jdGlvbiA9IGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpFcXVh
bCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKFdlYkFzc2VtYmx5RnVu
Y3Rpb246OmluZm8oKSkpOwotICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJh
bmNoUHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbVB0cihXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6aW5mbygpKSkpOworICAg
ICAgICAgICAgICAgIGF1dG8gaXNXYXNtRnVuY3Rpb24gPSBqaXQuYnJhbmNoUHRyKENDYWxsSGVs
cGVyczo6RXF1YWwsIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW1QdHIoV2ViQXNzZW1ibHlGdW5jdGlvbjo6aW5mbygpKSk7CisgICAgICAgICAgICAgICAg
c2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2Ny
YXRjaEpTUi5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihXZWJBc3Nl
bWJseVdyYXBwZXJGdW5jdGlvbjo6aW5mbygpKSkpOwogCiAgICAgICAgICAgICAgICAgaXNXYXNt
RnVuY3Rpb24ubGluaygmaml0KTsKICAgICAgICAgICAgICAgICBpZiAoV2FzbTo6aXNSZWZXaXRo
VHlwZUluZGV4KHR5cGUpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJh
bSwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVs
cGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZTo6b2Zmc2V0
T2ZTaWduYXR1cmVJbmRleCgpKSwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAgICAgICAgICAgIHNs
b3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoUHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0
Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih0eXBlLmluZGV4KSkpOworICAgICAg
ICAgICAgICAgICAgICBqaXQubG9hZFB0cihqc1BhcmFtLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIo
KSk7CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVz
cyhzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2U6Om9mZnNl
dE9mU2lnbmF0dXJlSW5kZXgoKSksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICAgICAg
ICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpO
b3RFcXVhbCwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bVB0cih0eXBlLmluZGV4KSkpOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAg
IGlmICh0eXBlLmlzTnVsbGFibGUoKSkKQEAgLTI4NywxNSArMzAxLDE1IEBAIE1hY3JvQXNzZW1i
bGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRy
eXBvaW50U2xvdygpCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChpc1N0YWNrKSB7
Ci0gICAgICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKKyAgICAg
ICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpzUGFyYW0sIHNjcmF0Y2hKU1IpOwogICAgICAgICAg
ICAgICAgIGlmICghdHlwZS5pc051bGxhYmxlKCkpCi0gICAgICAgICAgICAgICAgICAgIHNsb3dQ
YXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOdWxsKHNjcmF0Y2hHUFIpKTsKLSAgICAgICAgICAgICAg
ICBqaXQuc3RvcmU2NChzY3JhdGNoR1BSLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21DYWxs
SW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgc2xv
d1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk51bGwoc2NyYXRjaEpTUikpOworICAgICAgICAgICAg
ICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2hKU1IsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2Fz
bUNhbGxJbmZvLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkpOwogICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICBhdXRvIGV4dGVybkdQUiA9IHdhc21DYWxsSW5mby5wYXJhbXNb
aV0uZ3ByKCk7Ci0gICAgICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBleHRlcm5HUFIp
OworICAgICAgICAgICAgICAgIGF1dG8gZXh0ZXJuSlNSID0gd2FzbUNhbGxJbmZvLnBhcmFtc1tp
XS5qc3IoKTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpzUGFyYW0sIGV4dGVybkpT
Uik7CiAgICAgICAgICAgICAgICAgaWYgKCF0eXBlLmlzTnVsbGFibGUoKSkKLSAgICAgICAgICAg
ICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk51bGwoZXh0ZXJuR1BSKSk7Cisg
ICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOdWxsKGV4dGVy
bkpTUikpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAg
LTMwMywzNSArMzE3LDQyIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBX
ZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgIGNhc2Ug
V2FzbTo6VHlwZUtpbmQ6OkY2NDogewogICAgICAgICAgICAgaWYgKCFpc1N0YWNrKQogICAgICAg
ICAgICAgICAgIHNjcmF0Y2hGUFIgPSB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmZwcigpOwotICAg
ICAgICAgICAgYXV0byBtb3ZlVG9EZXN0aW5hdGlvbiA9IFsmXSAoKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKGlzU3RhY2spIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHNpZ25hdHVyZS5hcmd1
bWVudChpKS5pc0YzMigpKQotICAgICAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlRmxvYXQo
c2NyYXRjaEZQUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ld
Lm9mZnNldEZyb21TUCgpKSk7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGppdC5zdG9yZURvdWJsZShzY3JhdGNoRlBSLCBjYWxsZWVGcmFtZS53aXRo
T2Zmc2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9OwotCi0gICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFy
YW0sIHNjcmF0Y2hHUFIpOwotICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJ
Zk5vdE51bWJlcihzY3JhdGNoR1BSKSk7Ci0gICAgICAgICAgICBhdXRvIGlzSW50MzIgPSBqaXQu
YnJhbmNoSWZJbnQzMihzY3JhdGNoR1BSKTsKKyAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQ
YXJhbSwgc2NyYXRjaEpTUik7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgICAgIHNsb3dQ
YXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIoc2NyYXRjaEpTUiwgSW52YWxpZEdQUlJl
ZykpOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIHN0YWNrTGltaXRHUFJJ
c0Nsb2JiZXJlZCA9IHRydWU7CisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5j
aElmTm90TnVtYmVyKHNjcmF0Y2hKU1IsIHN0YWNrTGltaXRHUFIpKTsKKyNlbmRpZgorICAgICAg
ICAgICAgYXV0byBpc0ludDMyID0gaml0LmJyYW5jaElmSW50MzIoc2NyYXRjaEpTUik7CiAKLSAg
ICAgICAgICAgIGppdC51bmJveERvdWJsZShzY3JhdGNoR1BSLCBzY3JhdGNoR1BSLCBzY3JhdGNo
RlBSKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgaml0LnVuYm94RG91YmxlKHNj
cmF0Y2hKU1IucGF5bG9hZEdQUigpLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgc2NyYXRjaEZQ
Uik7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgaml0LnVuYm94RG91Ymxl
KHNjcmF0Y2hKU1IsIHNjcmF0Y2hGUFIpOworI2VuZGlmCiAgICAgICAgICAgICBpZiAoc2lnbmF0
dXJlLmFyZ3VtZW50KGkpLmlzRjMyKCkpCiAgICAgICAgICAgICAgICAgaml0LmNvbnZlcnREb3Vi
bGVUb0Zsb2F0KHNjcmF0Y2hGUFIsIHNjcmF0Y2hGUFIpOwotICAgICAgICAgICAgbW92ZVRvRGVz
dGluYXRpb24oKTsKICAgICAgICAgICAgIGF1dG8gZG9uZSA9IGppdC5qdW1wKCk7CiAKICAgICAg
ICAgICAgIGlzSW50MzIubGluaygmaml0KTsKICAgICAgICAgICAgIGlmIChzaWduYXR1cmUuYXJn
dW1lbnQoaSkuaXNGMzIoKSkgewotICAgICAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0Zs
b2F0KHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOwotICAgICAgICAgICAgICAgIG1vdmVUb0Rlc3Rp
bmF0aW9uKCk7CisgICAgICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRmxvYXQoc2NyYXRj
aEpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hGUFIpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9Eb3VibGUoc2NyYXRjaEdQUiwgc2NyYXRj
aEZQUik7Ci0gICAgICAgICAgICAgICAgbW92ZVRvRGVzdGluYXRpb24oKTsKKyAgICAgICAgICAg
ICAgICBqaXQuY29udmVydEludDMyVG9Eb3VibGUoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHNj
cmF0Y2hGUFIpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZG9uZS5saW5rKCZqaXQpOwog
CisgICAgICAgICAgICBkb25lLmxpbmsoJmppdCk7CisgICAgICAgICAgICBpZiAoaXNTdGFjaykg
eworICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBhZGRyIHsgY2FsbGVlRnJh
bWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSB9Owor
ICAgICAgICAgICAgICAgIGlmIChzaWduYXR1cmUuYXJndW1lbnQoaSkuaXNGMzIoKSkgeworICAg
ICAgICAgICAgICAgICAgICBqaXQuc3RvcmVGbG9hdChzY3JhdGNoRlBSLCBhZGRyLndpdGhPZmZz
ZXQoUGF5bG9hZE9mZnNldCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAg
ICAgICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCBhZGRyLndp
dGhPZmZzZXQoVGFnT2Zmc2V0KSk7CisjZW5kaWYKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgaml0LnN0b3JlRG91YmxlKHNjcmF0Y2hGUFIsIGFkZHIpOworICAg
ICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVs
dDoKQEAgLTM0Miw0MiArMzYzLDQ0IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRy
VGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgLy8g
QXQgdGhpcyBwb2ludCwgd2UncmUgY29tbWl0dGVkIHRvIGRvaW5nIGEgZmFzdCBjYWxsLgogCiAg
ICAgaWYgKFdhc206OkNvbnRleHQ6OnVzZUZhc3RUTFMoKSkgCi0gICAgICAgIGppdC5sb2FkV2Fz
bUNvbnRleHRJbnN0YW5jZShzY3JhdGNoR1BSKTsKKyAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4
dEluc3RhbmNlKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKICAgICBlbHNlCi0gICAgICAgIGpp
dC5sb2FkUHRyKHZtLndhc21Db250ZXh0LnBvaW50ZXJUb0luc3RhbmNlKCksIHNjcmF0Y2hHUFIp
OworICAgICAgICBqaXQubG9hZFB0cih2bS53YXNtQ29udGV4dC5wb2ludGVyVG9JbnN0YW5jZSgp
LCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAgICAgcHRyZGlmZl90IHByZXZpb3VzSW5zdGFu
Y2VPZmZzZXQgPSB0aGlzLT5wcmV2aW91c0luc3RhbmNlT2Zmc2V0KCk7Ci0gICAgaml0LnN0b3Jl
UHRyKHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3RlciwgcHJldmlvdXNJbnN0YW5jZU9mZnNldCkpOworICAgIGppdC5zdG9yZVB0cihzY3Jh
dGNoSlNSLnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyLCBwcmV2aW91c0luc3RhbmNlT2Zmc2V0KSk7CiAKLSAgICBqaXQubW92ZShD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoJmluc3RhbmNlKCktPmluc3RhbmNlKCkpLCBzY3Jh
dGNoR1BSKTsKKyAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoJmluc3Rh
bmNlKCktPmluc3RhbmNlKCkpLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAgICAgaWYgKFdh
c206OkNvbnRleHQ6OnVzZUZhc3RUTFMoKSkgCi0gICAgICAgIGppdC5zdG9yZVdhc21Db250ZXh0
SW5zdGFuY2Uoc2NyYXRjaEdQUik7CisgICAgICAgIGppdC5zdG9yZVdhc21Db250ZXh0SW5zdGFu
Y2Uoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOwogICAgIGVsc2UgewotICAgICAgICBqaXQubW92
ZShzY3JhdGNoR1BSLCBwaW5uZWRSZWdzLndhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyKTsKLSAg
ICAgICAgaml0LnN0b3JlUHRyKHNjcmF0Y2hHUFIsIHZtLndhc21Db250ZXh0LnBvaW50ZXJUb0lu
c3RhbmNlKCkpOworICAgICAgICBqaXQubW92ZShzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgcGlu
bmVkUmVncy53YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlcik7CisgICAgICAgIGppdC5zdG9yZVB0
cihzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgdm0ud2FzbUNvbnRleHQucG9pbnRlclRvSW5zdGFu
Y2UoKSk7CiAgICAgfQogICAgIGlmIChzdGFja0xpbWl0R1BSSXNDbG9iYmVyZWQpCiAgICAgICAg
IGppdC5sb2FkUHRyKHZtLmFkZHJlc3NPZlNvZnRTdGFja0xpbWl0KCksIHN0YWNrTGltaXRHUFIp
OwotICAgIGppdC5zdG9yZVB0cihzdGFja0xpbWl0R1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Mo
c2NyYXRjaEdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkU3RhY2tMaW1pdCgpKSk7
CisgICAgaml0LnN0b3JlUHRyKHN0YWNrTGltaXRHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhz
Y3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkU3Rh
Y2tMaW1pdCgpKSk7CiAKLSAgICBpZiAoISFtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkpIHsKKyNp
ZiAhQ1BVKEFSTSkgLy8gQVJNIGhhcyBubyBwaW5uZWQgcmVnaXN0ZXJzIGZvciBXYXNtIE1lbW9y
eSwgc28gbm8gbmVlZCB0byBzZXQgdGhlbSB1cAorICAgIGlmICghIWluc3RhbmNlKCktPmluc3Rh
bmNlKCkubW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKS5tZW1vcnkpIHsKICAgICAgICAgR1BS
UmVnIGJhc2VNZW1vcnkgPSBwaW5uZWRSZWdzLmJhc2VNZW1vcnlQb2ludGVyOwogICAgICAgICBH
UFJSZWcgc2NyYXRjaE9yQm91bmRzQ2hlY2tpbmdTaXplID0gSW52YWxpZEdQUlJlZzsKICAgICAg
ICAgYXV0byBtb2RlID0gaW5zdGFuY2UoKS0+bWVtb3J5TW9kZSgpOwogCiAgICAgICAgIGlmIChp
c0FSTTY0RSgpKSB7Ci0gICAgICAgICAgICBpZiAobW9kZSAhPSBXYXNtOjpNZW1vcnlNb2RlOjpT
aWduYWxpbmcpCisgICAgICAgICAgICBpZiAobW9kZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpCb3Vu
ZHNDaGVja2luZykKICAgICAgICAgICAgICAgICBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUg
PSBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyOwogICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSA9IHN0YWNrTGlt
aXRHUFI7Ci0gICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2Ny
YXRjaEdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdTaXpl
KCkpLCBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUpOworICAgICAgICAgICAgaml0LmxvYWRQ
dHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBXYXNtOjpJ
bnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHNDaGVja2luZ1NpemUoKSksIHNjcmF0Y2hPckJv
dW5kc0NoZWNraW5nU2l6ZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAobW9k
ZSAhPSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmcpCi0gICAgICAgICAgICAgICAgaml0Lmxv
YWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFdhc206Okluc3RhbmNlOjpv
ZmZzZXRPZkNhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSgpKSwgcGlubmVkUmVncy5ib3VuZHNDaGVj
a2luZ1NpemVSZWdpc3Rlcik7CisgICAgICAgICAgICBpZiAobW9kZSA9PSBXYXNtOjpNZW1vcnlN
b2RlOjpCb3VuZHNDaGVja2luZykKKyAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhl
bHBlcnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIFdhc206Okluc3RhbmNlOjpv
ZmZzZXRPZkNhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSgpKSwgcGlubmVkUmVncy5ib3VuZHNDaGVj
a2luZ1NpemVSZWdpc3Rlcik7CiAgICAgICAgIH0KIAotICAgICAgICBqaXQubG9hZFB0cihDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2Fj
aGVkTWVtb3J5KCkpLCBiYXNlTWVtb3J5KTsKLSAgICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5
QW5kVW50YWcoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwgc2NyYXRjaE9yQm91bmRz
Q2hlY2tpbmdTaXplLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBXYXNtOjpJbnN0YW5jZTo6b2Zm
c2V0T2ZDYWNoZWRNZW1vcnkoKSksIGJhc2VNZW1vcnkpOworICAgICAgICBqaXQuY2FnZUNvbmRp
dGlvbmFsbHlBbmRVbnRhZyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5LCBzY3JhdGNo
T3JCb3VuZHNDaGVja2luZ1NpemUsIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKICAgICB9Cisj
ZW5kaWYKIAogICAgIC8vIFdlIHVzZSB0aGlzIGNhbGxlZSB0byBpbmRpY2F0ZSBob3cgdG8gdW53
aW5kIHBhc3QgdGhlc2UgdHlwZXMgb2YgZnJhbWVzOgogICAgIC8vIDEuIFdlIG5lZWQgdG8ga25v
dyB3aGVyZSB0byBnZXQgY2FsbGVlIHNhdmVzLgpAQCAtMzg5LDggKzQxMiw4IEBAIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxF
bnRyeXBvaW50U2xvdygpCiAgICAgLy8gRklYTUU6IEN1cnJlbnRseSB3ZSBqdXN0IGRvIGFuIGlu
ZGlyZWN0IGp1bXAuIEJ1dCB3ZSBzaG91bGQgdGVhY2ggdGhlIE1vZHVsZQogICAgIC8vIGhvdyB0
byByZXBhdGNoIHVzOgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTY1NzAKLSAgICBqaXQubG9hZFB0cihlbnRyeXBvaW50TG9hZExvY2F0aW9uKCksIHNj
cmF0Y2hHUFIpOwotICAgIGppdC5jYWxsKHNjcmF0Y2hHUFIsIFdhc21FbnRyeVB0clRhZyk7Cisg
ICAgaml0LmxvYWRQdHIoZW50cnlwb2ludExvYWRMb2NhdGlvbigpLCBzY3JhdGNoSlNSLnBheWxv
YWRHUFIoKSk7CisgICAgaml0LmNhbGwoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIFdhc21FbnRy
eVB0clRhZyk7CiAKICAgICBtYXJzaGFsbEpTUmVzdWx0KGppdCwgc2lnbmF0dXJlLCB3YXNtQ2Fs
bEluZm8sIHNhdmVkUmVzdWx0UmVnaXN0ZXJzKTsKIApAQCAtNDIwLDcgKzQ0Myw3IEBAIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0Nh
bGxFbnRyeXBvaW50U2xvdygpCiAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
UHRyKHRoaXMpLCBHUFJJbmZvOjpyZWdUMCk7CiAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3Vl
KCk7CiAjaWYgQ1BVKEFSTTY0RSkKLSAgICBqaXQudW50YWdSZXR1cm5BZGRyZXNzKHNjcmF0Y2hH
UFIpOworICAgIGppdC51bnRhZ1JldHVybkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkp
OwogI2VuZGlmCiAgICAgYXV0byBqdW1wVG9Ib3N0Q2FsbFRodW5rID0gaml0Lmp1bXAoKTsKIApA
QCAtNDI4LDcgKzQ1MSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBX
ZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgaWYgKFVOTElL
RUxZKGxpbmtCdWZmZXIuZGlkRmFpbFRvQWxsb2NhdGUoKSkpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0gICAgbGlua0J1ZmZlci5saW5rKGp1bXBUb0hvc3RDYWxsVGh1bmssIENvZGVMb2Nh
dGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+KGV4ZWN1dGFibGUoKS0+ZW50cnlwb2ludEZvcihDb2Rl
Rm9yQ2FsbCwgTXVzdENoZWNrQXJpdHkpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyAgICBsaW5r
QnVmZmVyLmxpbmsoanVtcFRvSG9zdENhbGxUaHVuaywgQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRy
eVB0clRhZz4oZXhlY3V0YWJsZSgpLT5lbnRyeXBvaW50Rm9yKENvZGVGb3JDYWxsLCBNdXN0Q2hl
Y2tBcml0eSkpKTsKICAgICBtX2pzQ2FsbEVudHJ5cG9pbnQgPSBGSU5BTElaRV9XQVNNX0NPREUo
bGlua0J1ZmZlciwgV2FzbUVudHJ5UHRyVGFnLCAiSlMtPldhc20gSUMiKTsKICAgICByZXR1cm4g
bV9qc0NhbGxFbnRyeXBvaW50LmNvZGUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAK
aW5kZXggMGI5NjMxZWE1NDY1Li41NjU3MzIwNjVhM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0
b3IuY3BwCkBAIC0xNTgsNyArMTU4LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0
cnVjdEpTV2ViQXNzZW1ibHlHbG9iYWwsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICBS
ZWY8V2FzbTo6R2xvYmFsPiB3YXNtR2xvYmFsID0gV2FzbTo6R2xvYmFsOjpjcmVhdGUodHlwZSwg
bXV0YWJpbGl0eSwgaW5pdGlhbFZhbHVlKTsKICAgICBKU1dlYkFzc2VtYmx5R2xvYmFsKiBqc1dl
YkFzc2VtYmx5R2xvYmFsID0gSlNXZWJBc3NlbWJseUdsb2JhbDo6dHJ5Q3JlYXRlKGdsb2JhbE9i
amVjdCwgdm0sIHdlYkFzc2VtYmx5R2xvYmFsU3RydWN0dXJlLCBXVEZNb3ZlKHdhc21HbG9iYWwp
KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7Ci0gICAgZW5zdXJl
U3RpbGxBbGl2ZUhlcmUoYml0d2lzZV9jYXN0PHZvaWQqPihpbml0aWFsVmFsdWUpKTsgLy8gRW5z
dXJlIHRoaXMgaXMga2VwdCBhbGl2ZSB3aGlsZSBjcmVhdGluZyBKU1dlYkFzc2VtYmx5R2xvYmFs
LgorICAgIGVuc3VyZVN0aWxsQWxpdmVIZXJlKGluaXRpYWxWYWx1ZSk7IC8vIEVuc3VyZSB0aGlz
IGlzIGtlcHQgYWxpdmUgd2hpbGUgY3JlYXRpbmcgSlNXZWJBc3NlbWJseUdsb2JhbC4KICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzV2ViQXNzZW1ibHlHbG9iYWwpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29y
ZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJl
Y29yZC5jcHAKaW5kZXggN2ZhODFlNzk3MzJiLi45OTFlNzM4MWU0MGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29y
ZC5jcHAKQEAgLTU1NCw3ICs1NTQsNyBAQCB2b2lkIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjpp
bml0aWFsaXplRXhwb3J0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgICAgICAg
ICAgICAgIEpTV2ViQXNzZW1ibHlHbG9iYWwqIGdsb2JhbFZhbHVlID0gSlNXZWJBc3NlbWJseUds
b2JhbDo6dHJ5Q3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGdsb2JhbE9iamVjdC0+d2ViQXNzZW1i
bHlHbG9iYWxTdHJ1Y3R1cmUoKSwgV1RGTW92ZShnbG9iYWxSZWYpKTsKICAgICAgICAgICAgICAg
ICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogICAgICAgICAgICAgICAgIG1faW5zdGFuY2Ut
PmxpbmtHbG9iYWwodm0sIGdsb2JhbEluZGV4LCBnbG9iYWxWYWx1ZSk7Ci0gICAgICAgICAgICAg
ICAgZW5zdXJlU3RpbGxBbGl2ZUhlcmUoYml0d2lzZV9jYXN0PHZvaWQqPihpbml0aWFsQml0cykp
OyAvLyBFbnN1cmUgdGhpcyBpcyBrZXB0IGFsaXZlIHdoaWxlIGNyZWF0aW5nIEpTV2ViQXNzZW1i
bHlHbG9iYWwuCisgICAgICAgICAgICAgICAgZW5zdXJlU3RpbGxBbGl2ZUhlcmUoaW5pdGlhbEJp
dHMpOyAvLyBFbnN1cmUgdGhpcyBpcyBrZXB0IGFsaXZlIHdoaWxlIGNyZWF0aW5nIEpTV2ViQXNz
ZW1ibHlHbG9iYWwuCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCmluZGV4IGE0NDk4ZjcyMTE2ZS4uZGJhYTk0ZjAwY2NmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEyIEBACisyMDIyLTAzLTE3ICBYYW4gTMOzcGV6ICA8eGFuQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0pTQ10gRW5hYmxlIFdhc21MTEludCBvbiBBUk12NworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMjYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGUuaDogZW5hYmxl
IFdlYkFzc2VtYmx5IG9uIEFSTXY3LgorCiAyMDIyLTAzLTE4ICBDYXJsb3MgR2FyY2lhIENhbXBv
cyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBBZGQgYSBwdWJsaWMgYnVpbGQgb3B0
aW9uIGZvciBQREYuanMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxl
LmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCmluZGV4IDQxMTM1NGY2YzExZi4u
YjE0NzBkNmQ4MjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKQEAgLTU4NSwxMiArNTg1LDEy
IEBACiAjZW5kaWYKIAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0vKiBEaXNhYmxlIFdlYkFzc2Vt
Ymx5IG9uIGFsbCAzMmJpdCBwbGF0Zm9ybXMuIEl0cyBMTEludCB0aWVyIGNvdWxkCi0gKiB3b3Jr
IG9uIHRoZW0sIGJ1dCBzdGlsbCBuZWVkcyBzb21lIGZpbmFsIHRvdWNoZXMuICovCisjaWYgIUNQ
VShBUk0pCiAjdW5kZWYgRU5BQkxFX1dFQkFTU0VNQkxZCiAjZGVmaW5lIEVOQUJMRV9XRUJBU1NF
TUJMWSAwCiAjdW5kZWYgRU5BQkxFX1dFQkFTU0VNQkxZX0IzSklUCiAjZGVmaW5lIEVOQUJMRV9X
RUJBU1NFTUJMWV9CM0pJVCAwCisjZW5kaWYKICNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShN
SVBTKSkgJiYgT1MoTElOVVgpCiAvKiBPbiBBUk12NyBhbmQgTUlQUyBvbiBMaW51eCB0aGUgSklU
IGlzIGVuYWJsZWQgdW5sZXNzIGV4cGxpY2l0bHkgZGlzYWJsZWQuICovCiAjaWYgIWRlZmluZWQo
RU5BQkxFX0pJVCkKQEAgLTcwNiw3ICs3MDYsNyBAQAogI2RlZmluZSBFTkFCTEVfU0FNUExJTkdf
UFJPRklMRVIgMQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIEhBVkUoTUFD
SElORV9DT05URVhUKQorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgSEFWRShNQUNISU5FX0NP
TlRFWFQpICYmIENQVShBRERSRVNTNjQpCiAjZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWV9TSUdO
QUxJTkdfTUVNT1JZIDEKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggYjJiMjJlYmUwMGRjLi5jMzBlMDcxYjY3NjMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAyMi0wMy0xNyAgWGFuIEzDs3BleiAgPHhhbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtK
U0NdIEVuYWJsZSBXYXNtTExJbnQgb24gQVJNdjcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTI2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0czogYWxs
b3cgdG8gcnVuIHRoZSB3YXNtIHRlc3RzIG9uCisgICAgICAgIGFybXY3IGV2ZW4gd2l0aG91dCBq
aXQgc3VwcG9ydCAoZm9yIG5vdykuCisKIDIwMjItMDMtMTggIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtBVFNQSV0gYWNjZXNzaWJpbGl0eS9k
cm9wZG93bi12YWx1ZS5odG1sIGlzIHRpbWluZyBvdXQgc2luY2UgYWRkZWQgaW4gMjQ4MTQ1QG1h
aW4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgYi9Ub29s
cy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCmluZGV4IGRkNzEyOGVlNDE0NC4uY2UzNDM1
Yzg4NWQ0IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCisr
KyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKQEAgLTU4Miw5ICs1ODIsMTUg
QEAgZGVmIGRldGVybWluZU9TCiAgICAgZW5kCiBlbmQKIAorZGVmIGlzRlRMRW5hYmxlZAorICAg
ICRqaXRUZXN0cyAmJiAkaXNGVExQbGF0Zm9ybQorZW5kCisKICRob3N0T1MgPSBkZXRlcm1pbmVP
UyB1bmxlc3MgJGhvc3RPUwogJGFyY2hpdGVjdHVyZSA9IGRldGVybWluZUFyY2hpdGVjdHVyZSB1
bmxlc3MgJGFyY2hpdGVjdHVyZQogJGlzRlRMUGxhdGZvcm0gPSAhKCRhcmNoaXRlY3R1cmUgPT0g
Ing4NiIgfHwgJGFyY2hpdGVjdHVyZSA9PSAiYXJtIiB8fCAkYXJjaGl0ZWN0dXJlID09ICJtaXBz
IiB8fCAkYXJjaGl0ZWN0dXJlID09ICJyaXNjdjY0IiB8fCAkaG9zdE9TID09ICJ3aW5kb3dzIiB8
fCAkaG9zdE9TID09ICJwbGF5c3RhdGlvbiIpCisjIFNwZWNpYWwgY2FzZSBhcm12Nywgd2Ugd2Fu
dCB0byBydW4gdGhlIHdhc20gdGVzdHMgdGVtcG9yYXJpbHkgd2l0aG91dCBCMy9BaXIgc3VwcG9y
dAorJGlzV2FzbVBsYXRmb3JtID0gaXNGVExFbmFibGVkIHx8ICRhcmNoaXRlY3R1cmUgPT0gImFy
bSIKIAogaWYgJGFyY2hpdGVjdHVyZSA9PSAieDg2IgogICAgICMgVGhlIEpJVCBpcyB0ZW1wb3Jh
cmlseSBkaXNhYmxlZCBvbiB0aGlzIHBsYXRmb3JtIHNpbmNlCkBAIC01OTIsMTAgKzU5OCw2IEBA
IGlmICRhcmNoaXRlY3R1cmUgPT0gIng4NiIKICAgICAkaml0VGVzdHMgPSBmYWxzZQogZW5kCiAK
LWRlZiBpc0ZUTEVuYWJsZWQKLSAgICAkaml0VGVzdHMgJiYgJGlzRlRMUGxhdGZvcm0KLWVuZAot
CiBpZiAhJHRlc3RSdW5uZXJUeXBlCiAgICAgaWYgJHJlbW90ZSBhbmQgJGhvc3RPUyA9PSAiZGFy
d2luIgogICAgICAgICAkdGVzdFJ1bm5lclR5cGUgPSA6c2hlbGwKQEAgLTE3MjcsOCArMTcyOSw3
IEBAIGRlZiBub05vTExJbnRSdW5Nb2R1bGVzCiBlbmQKIAogZGVmIHJ1bldlYkFzc2VtYmx5Ci0g
ICAgcmV0dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisg
ICAgcmV0dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KICAgICBydW4oImRlZmF1bHQtd2FzbSIsICIt
bSIsICpGVExfT1BUSU9OUykKICAgICBpZiAkbW9kZSAhPSAicXVpY2siCiAgICAgICAgIHJ1bigi
d2FzbS1uby1jaml0LXllcy10bHMtY29udGV4dCIsICItbSIsICItLXVzZUZhc3RUTFNGb3JXYXNt
Q29udGV4dD10cnVlIiwgKihGVExfT1BUSU9OUyArIE5PX0NKSVRfT1BUSU9OUykpCkBAIC0xNzM2
LDE1ICsxNzM3LDE2IEBAIGRlZiBydW5XZWJBc3NlbWJseQogICAgICAgICBydW4oIndhc20tZWFn
ZXItamV0dGlzb24iLCAiLW0iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09sZEFn
ZT10cnVlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVl
IiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLW5v
LXRscy1jb250ZXh0IiwgIi1tIiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PWZhbHNlIiwg
KkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tc2xvdy1tZW1vcnkiLCAiLW0iLCAiLS11
c2VXZWJBc3NlbWJseUZhc3RNZW1vcnk9ZmFsc2UiLCAqRlRMX09QVElPTlMpCisgICAgICAgIHJ1
bigid2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNseSIsICItbSIsICItLWNvbGxlY3RDb250aW51b3Vz
bHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqRlRMX09QVElPTlMpIGlmIHNob3VsZENvbGxl
Y3RDb250aW51b3VzbHk/CisgICAgZW5kCisgICAgaWYgJGlzRlRMUGxhdGZvcm0KICAgICAgICAg
cnVuKCJ3YXNtLWIzIiwgIi1tIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVz
ZXNBaXI9ZmFsc2UiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1haXIiLCAiLW0i
LCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xh
bmRBbGxvY2F0aW9uPXRydWUiLCAqRlRMX09QVElPTlMpCi0gICAgICAgIHJ1bigid2FzbS1jb2xs
ZWN0LWNvbnRpbnVvdXNseSIsICItbSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIsICIt
LXZlcmlmeUdDPXRydWUiLCAqRlRMX09QVElPTlMpIGlmIHNob3VsZENvbGxlY3RDb250aW51b3Vz
bHk/CiAgICAgZW5kCiBlbmQKIAogZGVmIHJ1bldlYkFzc2VtYmx5SmV0U3RyZWFtMgotICAgIHJl
dHVybiBpZiAhJGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAgIHJl
dHVybiBpZiAhJGlzV2FzbVBsYXRmb3JtCiAKICAgICBpZiAkbWVtb3J5TGltaXRlZAogICAgICAg
ICBza2lwCkBAIC0xNzYzLDE1ICsxNzY1LDE2IEBAIGRlZiBydW5XZWJBc3NlbWJseUpldFN0cmVh
bTIKICAgICAgICAgcnVuKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgIi0tZm9yY2VDb2RlQmxvY2tU
b0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqRlRMX09QVElP
TlMpCiAgICAgICAgIHJ1bigid2FzbS1uby10bHMtY29udGV4dCIsICItLXVzZUZhc3RUTFNGb3JX
YXNtQ29udGV4dD1mYWxzZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLXNsb3ct
bWVtb3J5IiwgIi0tdXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5PWZhbHNlIiwgKkZUTF9PUFRJT05T
KQorICAgICAgICBydW4oIndhc20tY29sbGVjdC1jb250aW51b3VzbHkiLCAiLS1jb2xsZWN0Q29u
dGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKkZUTF9PUFRJT05TKSBpZiBzaG91
bGRDb2xsZWN0Q29udGludW91c2x5PworICAgIGVuZAorICAgIGlmICRGVExQbGF0Zm9ybQogICAg
ICAgICBydW4oIndhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNl
c0Fpcj1mYWxzZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLWFpciIsICItLXVz
ZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9j
YXRpb249dHJ1ZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVuKCJ3YXNtLWNvbGxlY3QtY29u
dGludW91c2x5IiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1
ZSIsICpGVExfT1BUSU9OUykgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8KICAgICBlbmQK
IGVuZAogCiBkZWYgcnVuV2ViQXNzZW1ibHlTdWl0ZSgqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRp
b25zKQotICAgIHJldHVybiBpZiAhJGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0
Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2FzbVBsYXRmb3JtCiAgICAgbW9kdWxlcyA9IERpcltX
QVNNVEVTVFNfUEFUSCArICIqLmpzIl0ubWFwIHsgfGZ8IEZpbGUuYmFzZW5hbWUoZikgfQogICAg
IHByZXBhcmVFeHRyYUFic29sdXRlRmlsZXMoV0FTTVRFU1RTX1BBVEgsIFsid2FzbS5qc29uIl0p
CiAgICAgcHJlcGFyZUV4dHJhUmVsYXRpdmVGaWxlcyhtb2R1bGVzLm1hcCB7IHxmfCAiLi4vIiAr
IGYgfSwgJGNvbGxlY3Rpb24pCkBAIC0xNzg3LDkgKzE3OTAsMTEgQEAgZGVmIHJ1bldlYkFzc2Vt
Ymx5U3VpdGUoKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKICAgICAgICAgcnVuKCJ3YXNt
LWVhZ2VyLWpldHRpc29uIiwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9
dHJ1ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIs
ICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNP
cHRpb25zKSkKICAgICAgICAgcnVuKCJ3YXNtLW5vLXRscy1jb250ZXh0IiwgIi0tdXNlRmFzdFRM
U0Zvcldhc21Db250ZXh0PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNp
ZmljT3B0aW9ucykpCiAgICAgICAgIHJ1bigid2FzbS1zbG93LW1lbW9yeSIsICItLXVzZVdlYkFz
c2VtYmx5RmFzdE1lbW9yeT1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVj
aWZpY09wdGlvbnMpKQorICAgICAgICBydW4oIndhc20tY29sbGVjdC1jb250aW51b3VzbHkiLCAi
LS1jb2xsZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKihGVExfT1BU
SU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpIGlmIHNob3VsZENvbGxlY3RDb250
aW51b3VzbHk/CisgICAgZW5kCisgICAgaWYgJGlzRlRMUGxhdGZvcm0KICAgICAgICAgcnVuKCJ3
YXNtLWIzIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2Ui
LCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgICAg
cnVuKCJ3YXNtLWFpciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5n
RXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25h
bFRlc3RTcGVjaWZpY09wdGlvbnMpKQotICAgICAgICBydW4oIndhc20tY29sbGVjdC1jb250aW51
b3VzbHkiLCAiLS1jb2xsZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwg
KihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpIGlmIHNob3VsZENv
bGxlY3RDb250aW51b3VzbHk/CiAgICAgZW5kCiBlbmQKIApAQCAtMTgwNCw4ICsxODA5LDkgQEAg
ZW5kCiAKIGRlZiBydW5XZWJBc3NlbWJseVdpdGhIYXJuZXNzKCpvcHRpb25hbFRlc3RTcGVjaWZp
Y09wdGlvbnMpCiAgICAgcmFpc2UgdW5sZXNzICRiZW5jaG1hcmsudG9fcyA9fiAvaGFybmVzc1wu
bT9qcy8KLSAgICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRMUGxh
dGZvcm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQorICAgICMgU2tpcCB0aGlzIGNv
bXBsZXRlbHkgb24gYXJtdjcgZm9yIG5vdywgc2luY2UgbW9zdCBvZiB0aGUgdGVzdHMgYXJlIHJl
bGF0ZWQgdG8gT1NSIGFuZCBpdCdzIGEgYml0IGhhaXJ5IHRvIHNraXAgdGhlbSBtYW51YWxseQor
ICAgIHJldHVybiBpZiAkYXJjaGl0ZWN0dXJlID09ICJhcm0iCiAKICAgICB3YXNtRmlsZXMgPSBh
bGxXYXNtRmlsZXMoJGNvbGxlY3Rpb24pCiAgICAgcHJlcGFyZUV4dHJhUmVsYXRpdmVGaWxlcyh3
YXNtRmlsZXMubWFwIHsgfGZ8IGYuYmFzZW5hbWUgfSwgJGNvbGxlY3Rpb24pCkBAIC0xODE3LDkg
KzE4MjMsMTEgQEAgZGVmIHJ1bldlYkFzc2VtYmx5V2l0aEhhcm5lc3MoKm9wdGlvbmFsVGVzdFNw
ZWNpZmljT3B0aW9ucykKICAgICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tZWFnZXItamV0dGlz
b24iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09sZEFnZT10cnVlIiwgIi0tdXNl
UmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgIi0tdmVyaWZ5R0M9
dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAg
ICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1uby10bHMtY29udGV4dCIsICItLXVzZUZhc3RUTFNG
b3JXYXNtQ29udGV4dD1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZp
Y09wdGlvbnMpKQogICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1zbG93LW1lbW9yeSIsICIt
LXVzZVdlYkFzc2VtYmx5RmFzdE1lbW9yeT1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25h
bFRlc3RTcGVjaWZpY09wdGlvbnMpKQorICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1jb2xs
ZWN0LWNvbnRpbnVvdXNseSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlm
eUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkg
aWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8KKyAgICBlbmQKKyAgICBpZiAkaXNGVExQbGF0
Zm9ybQogICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1m
YWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFs
VGVzdFNwZWNpZmljT3B0aW9ucykpCiAgICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLW5vLWFp
ciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlz
bGFuZEFsbG9jYXRpb249dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZp
Y09wdGlvbnMpKQotICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1jb2xsZWN0LWNvbnRpbnVv
dXNseSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAq
KEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkgaWYgc2hvdWxkQ29s
bGVjdENvbnRpbnVvdXNseT8KICAgICBlbmQKIGVuZAogCkBAIC0xODI4LDggKzE4MzYsNyBAQCBk
ZWYgcnVuV2ViQXNzZW1ibHlFbXNjcmlwdGVuKG1vZGUpCiAgICAgd2hlbiA6c2tpcAogICAgICAg
ICByZXR1cm4KICAgICBlbmQKLSAgICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVybiBp
ZiAhJGlzRlRMUGxhdGZvcm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQogICAgIHdh
c20gPSAkYmVuY2htYXJrLnRvX3Muc3ViISAnLmpzJywgJy53YXNtJwogICAgIHByZXBhcmVFeHRy
YVJlbGF0aXZlRmlsZXMoW1BhdGhuYW1lKCcuLicpICsgd2FzbV0sICRjb2xsZWN0aW9uKQogICAg
IHJ1bigiZGVmYXVsdC13YXNtIiwgKkZUTF9PUFRJT05TKQpAQCAtMTgzNyw5ICsxODQ0LDExIEBA
IGRlZiBydW5XZWJBc3NlbWJseUVtc2NyaXB0ZW4obW9kZSkKICAgICAgICAgcnVuKCJ3YXNtLW5v
LWNqaXQteWVzLXRscy1jb250ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PXRydWUi
LCAqKEZUTF9PUFRJT05TICsgTk9fQ0pJVF9PUFRJT05TKSkKICAgICAgICAgcnVuKCJ3YXNtLWVh
Z2VyLWpldHRpc29uIiwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1
ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICIt
LXZlcmlmeUdDPXRydWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1uby10bHMt
Y29udGV4dCIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICpGVExfT1BUSU9O
UykKKyAgICAgICAgcnVuKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5IiwgIi0tY29sbGVjdENv
bnRpbnVvdXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykgaWYgc2hv
dWxkQ29sbGVjdENvbnRpbnVvdXNseT8KKyAgICBlbmQKKyAgICBpZiAkaXNGVExQbGF0Zm9ybQog
ICAgICAgICBydW4oIndhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJR
VXNlc0Fpcj1mYWxzZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLWFpciIsICIt
LXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFs
bG9jYXRpb249dHJ1ZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVuKCJ3YXNtLWNvbGxlY3Qt
Y29udGludW91c2x5IiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9
dHJ1ZSIsICpGVExfT1BUSU9OUykgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8KICAgICBl
bmQKIGVuZAogCkBAIC0xODQ4LDggKzE4NTcsNyBAQCBkZWYgcnVuV2ViQXNzZW1ibHlTcGVjVGVz
dEJhc2UobW9kZSwgc3BlY0hhcm5lc3NQYXRoLCAqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpbwog
ICAgIHdoZW4gOnNraXAKICAgICAgICAgcmV0dXJuCiAgICAgZW5kCi0gICAgcmV0dXJuIGlmICEk
aml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0dXJuIGlmICEk
aXNXYXNtUGxhdGZvcm0KICAgICBwcmVwYXJlRXh0cmFBYnNvbHV0ZUZpbGVzKFdBU01URVNUU19Q
QVRILCBbIndhc20uanNvbiJdKQogCiAgICAgbW9kdWxlcyA9IERpcltXQVNNVEVTVFNfUEFUSCAr
ICIqLmpzIl0ubWFwIHsgfGZ8IEZpbGUuYmFzZW5hbWUoZikgfQpAQCAtMTg2NCwxMCArMTg3Miwx
MiBAQCBkZWYgcnVuV2ViQXNzZW1ibHlTcGVjVGVzdEJhc2UobW9kZSwgc3BlY0hhcm5lc3NQYXRo
LCAqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpbwogICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIo
Indhc20tbm8tY2ppdC15ZXMtdGxzLWNvbnRleHQiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNI
YXJuZXNzSnNQYXRoLCAgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PXRydWUiLCAqKEZUTF9P
UFRJT05TICsgTk9fQ0pJVF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkK
ICAgICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgbm9pc3lP
dXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRp
c29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFs
bG9jYXRpb249dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9u
YWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNt
LW5vLXRscy1jb250ZXh0Iiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwg
Ii0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlv
bmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCi0gICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2Fz
bS1iMyIsIG5vaXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICItLXVzZVdhc21M
TEludD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9w
dGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCi0gICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigi
d2FzbS1haXIiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAiLS11c2VX
YXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0
aW9uPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkK
ICAgICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5Iiwg
bm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tY29sbGVjdENvbnRpbnVv
dXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRl
c3RTcGVjaWZpY09wdGlvbnMpKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5PwogICAgIGVu
ZAorICAgIGlmICRpc0ZUTFBsYXRmb3JtCisgICAgICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3
YXNtLWIzIiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tdXNlV2Fz
bUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsg
b3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKKyAgICAgICAgcnVuV2l0aE91dHB1dEhhbmRs
ZXIoIndhc20tYWlyIiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0t
dXNlV2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxs
b2NhdGlvbj10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9u
cykpCisgICAgZW5kCiBlbmQKIAogZGVmIHJ1bldlYkFzc2VtYmx5U3BlY1Rlc3QobW9kZSkKQEAg
LTE4ODMsOCArMTg5Myw3IEBAIGRlZiBydW5XZWJBc3NlbWJseUZ1bmN0aW9uUmVmZXJlbmNlU3Bl
Y1Rlc3QobW9kZSkKIGVuZAogCiBkZWYgcnVuV2ViQXNzZW1ibHlMb3dFeGVjdXRhYmxlTWVtb3J5
KCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCi0gICAgcmV0dXJuIGlmICEkaml0VGVzdHMK
LSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0dXJuIGlmICEkaXNXYXNtUGxh
dGZvcm0KICAgICBtb2R1bGVzID0gRGlyW1dBU01URVNUU19QQVRIICsgIiouanMiXS5tYXAgeyB8
ZnwgRmlsZS5iYXNlbmFtZShmKSB9CiAgICAgcHJlcGFyZUV4dHJhQWJzb2x1dGVGaWxlcyhXQVNN
VEVTVFNfUEFUSCwgWyJ3YXNtLmpzb24iXSkKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZpbGVz
KG1vZHVsZXMubWFwIHsgfGZ8ICIuLi8iICsgZiB9LCAkY29sbGVjdGlvbikKLS0gCjIuMzUuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456107</attachid>
            <date>2022-03-30 02:55:50 -0700</date>
            <delta_ts>2022-04-07 05:21:05 -0700</delta_ts>
            <desc>rebase</desc>
            <filename>bug-221260-20220330105548.patch</filename>
            <type>text/plain</type>
            <size>324181</size>
            <attacher name="Geza Lore">glore</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MzRkYWQ3MzVjYTJhYjQwNjE0ZDgwNmRlODhlNGJkOTlhNWZkYjdmLi45MWRkMjdkYmZlNWMzMGRi
NmEwZmY0NjQ4ZGE1ZTk5MTNiZGI1NjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMDYgQEAKKzIwMjItMDMtMzAgIFhhbiBMw7NwZXogIDx4YW5AaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbSlNDXSBFbmFibGUgV2FzbUxMSW50IG9uIEFSTXY3CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEyNjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBieSBHZXphIExvcmUgYW5kIFhh
biBMw7NwZXouCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBMTEludCB0aWVyIG9mIFdlYkFzc2Vt
Ymx5IGZvciBBUk12Ny4gQSBsb3Qgb2YgdGhlCisgICAgICAgIHdvcmsgd2lsbCBiZSBzaGFyZWQg
YnkgYW55IDMyYml0IHBvcnQsIGJ1dCB0aGUgb2ZmbGluZWFzc2VtYmxlcgorICAgICAgICBoYXMg
b25seSBiZWVuIHVwZGF0ZWQgZm9yIEFSTXY3IHNvIGZhci4KKworICAgICAgICBNYWluIGhpZ2hs
aWdodHM6CisKKyAgICAgICAgV2UgaGF2ZSBzcGxpdCB0aGUgV2ViQXNzZW1ibHkuYXNtIGZpbGUg
aW50byB0aHJlZSBjaHVua3MsCisgICAgICAgIGZvbGxvd2luZyB3aGF0IExvd0xldmVsSW50ZXJw
cmV0ZXIuYXNtIGRvZXMuIFRoZSBjb21tb24gY29kZQorICAgICAgICByZW1haW5zIGluIFdlYkFz
c2VtYmx5LmFzbSwgYW5kIDMyIGFuZCA2NGJpdCBzcGVjaWZpYyBjb2RlIChtb3N0bHkKKyAgICAg
ICAgb3Bjb2RlIGltcGxlbWVudGF0aW9ucykgZ29lcyBpbnRvIFdlYkFzc2VtYmx5MzJfNjQuYXNt
IGFuZAorICAgICAgICBXZWJBc3NlbWJseTY0LmFzbS4KKworICAgICAgICBXZSBoYXZlIGRlY2lk
ZWQgdG8gdXNlIGEgcGFpciBvZiBHUFJzIGZvciBldmVyeSB0eXBlIG9mIHdhc20KKyAgICAgICAg
dmFsdWVzLCBldmVuIGlmIHRoZXkgYXJlIDMyYml0IChpMzIvZjMyKSwgd2l0aCB0aGUgb2RkIG51
bWJlcmVkCisgICAgICAgIEdQUiBob2xkaW5nIHRoZSBtb3N0IHNpZ25pZmljYW50IChvciBvbmx5
KSB2YWx1ZS4gVGhpcyBtYWtlcyB0aGUKKyAgICAgICAgY29kZSBtdWNoIHNpbXBsZXIgYW5kIGFs
bG93cyB1cyB0byBzaGFyZSBtb3JlIGNvZGUgd2l0aCB0aGUgNjRiaXQKKyAgICAgICAgdmFyaWFu
dC4gVGhpcyBpcyBtb3N0bHkgcmVsZXZhbnQgZm9yIGFyZ3VtZW50IHBhc3NpbmcsIGFuZCBnaXZl
bgorICAgICAgICB0aGF0IGV2ZXJ5IHZhbHVlIGVuZHMgdXAgaW4gYSBzdGFjayBhbnl3YXkgd2Ug
ZG8gbm90IHRoaW5rIGl0IGlzCisgICAgICAgIHNpZ25pZmljYW50IGZyb20gYSBwZXJmb3JtYW5j
ZSBQT1YuCisKKyAgICAgICAgV2UgYXJlIHJldXNpbmcgSlNWYWx1ZVJlZ3MgdG8gaG9sZCBXYXNt
IHZhbHVlcyB0b28uIE9idmlvdXNseSB0aGV5CisgICAgICAgIGFyZSBub3QgcmVhbGx5IEpTVmFs
dWVzLCBzbyBpdCBtaWdodCBtYWtlIHNlbnNlIHRvIGNyZWF0ZSBhIGJhc2UKKyAgICAgICAgY2xh
c3MgdGhhdCBjYW4gYmUgdXNlZCBmb3IgYm90aCBKUyBhbmQgV2FzbSB2YWx1ZXMuCisKKyAgICAg
ICAgV2UgZG8gbm90IGhhdmUgZW5vdWdoIHJlZ2lzdGVycyB0byBrZWVwIHRoaW5ncyBsaWtlIHRo
ZSBtZW1vcnkKKyAgICAgICAgYmFzZSBwb2ludGVyIGFuZCBzaXplIGluIHBpbm5lZCByZWdpc3Rl
cnMsIHNvIHdlIGFyZSBmb3JjZWQgdG8KKyAgICAgICAgbG9hZCB0aGVtIG9uIGVhY2ggdXNlLgor
CisgICAgICAgIFdlIGRpc2FibGUgdGhlICdTaWduYWxpbmcnIG1lbW9yeSBtb2RlLCBzaW5jZSB0
aGUgY3VycmVudAorICAgICAgICBpbXBsZW1lbnRhdGlvbiByZWxpZXMgb24gYmVpbmcgYWJsZSB0
byBtcHJvdGVjdCBhIDJeMzIgKyByZWR6b25lCisgICAgICAgIHJlZ2lvbiBvZiBtZW1vcnkuIFRo
aXMgY2FuIGJlIGNoYW5nZWQgaW4gdGhlIGZ1dHVyZSBidXQgaXQncyBub3QgYQorICAgICAgICBw
cmlvcml0eSBhdCB0aGUgbW9tZW50LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6OkFSTXY3QXNz
ZW1ibGVyOjp2Y3Z0X3NpZ25lZFRvRmxvYXRpbmdQb2ludCk6CisgICAgICAgICogYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNdjcuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12
Nzo6Y29udmVydEludDMyVG9GbG9hdCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJN
djc6OnRocmVhZFNhZmVQYXRjaGFibGVOZWFyQ2FsbCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyQVJNdjc6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAqIGIzL0IzVmFsdWVSZXAuaDoK
KyAgICAgICAgKEpTQzo6QjM6OlZhbHVlUmVwOjpWYWx1ZVJlcCk6CisgICAgICAgICogYnl0ZWNv
ZGUvQnl0ZWNvZGVEdW1wZXIuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpCeXRlY29kZUR1bXBl
cjo6Zm9ybWF0Q29uc3RhbnQgY29uc3QpOgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFt
ZS5oOiBhZGFwdCB0byBuZXcgY2FsbGVlIHRhZ2dpbmcgZm9ybWF0LgorICAgICAgICAoSlNDOjpD
YWxsRnJhbWU6OmNhbGxlZSBjb25zdCk6CisgICAgICAgIChKU0M6OkNhbGxGcmFtZTo6dW5zYWZl
Q2FsbGVlIGNvbnN0KToKKyAgICAgICAgKiBpbnRlcnByZXRlci9DYWxsZWVCaXRzLmg6IGFkZCB3
YXNtIHRhZ2dpbmcgb2YgY2FsbGVlIHZhbHVlcyBmb3IKKyAgICAgICAgMzJiaXQuCisgICAgICAg
IChKU0M6OkNhbGxlZUJpdHM6OkNhbGxlZUJpdHMpOgorICAgICAgICAoSlNDOjpDYWxsZWVCaXRz
OjpvcGVyYXRvcj0pOgorICAgICAgICAoSlNDOjpDYWxsZWVCaXRzOjpib3hXYXNtKToKKyAgICAg
ICAgKEpTQzo6Q2FsbGVlQml0czo6aXNXYXNtIGNvbnN0KToKKyAgICAgICAgKEpTQzo6Q2FsbGVl
Qml0czo6YXNXYXNtQ2FsbGVlIGNvbnN0KToKKyAgICAgICAgKiBpbnRlcnByZXRlci9SZWdpc3Rl
ci5oOgorICAgICAgICAoSlNDOjpSZWdpc3Rlcjo6dW5ib3hlZEZsb2F0IGNvbnN0KToKKyAgICAg
ICAgKEpTQzo6UmVnaXN0ZXI6OmFzYW5VbnNhZmVVbmJveGVkRmxvYXQgY29uc3QpOgorICAgICAg
ICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJz
Ojp1bmJveERvdWJsZSk6CisgICAgICAgICogaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmNwcDoK
KyAgICAgICAgKEpTQzo6UmVnaXN0ZXJBdE9mZnNldExpc3Q6OlJlZ2lzdGVyQXRPZmZzZXRMaXN0
KToKKyAgICAgICAgKiBqaXQvUmVnaXN0ZXJBdE9mZnNldExpc3QuaDoKKyAgICAgICAgKEpTQzo6
UmVnaXN0ZXJBdE9mZnNldExpc3Q6OnNpemVPZkFyZWFJbkJ5dGVzIGNvbnN0KToKKyAgICAgICAg
KiBqaXQvUmVnaXN0ZXJTZXQuY3BwOgorICAgICAgICAoSlNDOjpSZWdpc3RlclNldDo6bWFjcm9T
Y3JhdGNoUmVnaXN0ZXJzKToKKyAgICAgICAgKiBsbGludC9MTEludE9mZmxpbmVBc21Db25maWcu
aDoKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgorICAgICAg
ICAqIGxsaW50L1dlYkFzc2VtYmx5LmFzbToKKyAgICAgICAgKiBsbGludC9XZWJBc3NlbWJseTMy
XzY0LmFzbTogQWRkZWQuCisgICAgICAgICogbGxpbnQvV2ViQXNzZW1ibHk2NC5hc206IEFkZGVk
LgorICAgICAgICAqIG9mZmxpbmVhc20vYXJtLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vaW5z
dHJ1Y3Rpb25zLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vcmVnaXN0ZXJzLnJiOgorICAgICAg
ICAqIG9mZmxpbmVhc20vcmlzYy5yYjoKKyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoK
KyAgICAgICAgKEpTQzo6anNVbmJveGVkRmxvYXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNW
YWx1ZUlubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6SlNWYWx1ZSk6CisgICAgICAg
ICogd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJ
UkdlbmVyYXRvcjo6dXNlU2lnbmFsaW5nTWVtb3J5IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2Fz
bTo6QWlySVJHZW5lcmF0b3I6OkFpcklSR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6V2FzbTo6
QWlySVJHZW5lcmF0b3I6OmVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKToKKyAgICAgICAgKEpT
Qzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmFkZENhbGwpOgorICAgICAgICAqIHdhc20vV2FzbUIz
SVJHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjp1c2VT
aWduYWxpbmdNZW1vcnkgY29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9y
OjpCM0lSR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QjNJUkdlbmVyYXRvcjo6YWRk
QXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QjNJUkdlbmVyYXRvcjo6ZW1pdENoZWNr
QW5kUHJlcGFyZVBvaW50ZXIpOgorICAgICAgICAoSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjpt
ZW1vcnlLaW5kKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QjNJUkdlbmVyYXRvcjo6YWRkQ2FsbCk6
CisgICAgICAgICogd2FzbS9XYXNtQmluZGluZy5jcHA6CisgICAgICAgIChKU0M6Oldhc206Ondh
c21Ub1dhc20pOgorICAgICAgICAqIHdhc20vV2FzbUNhbGxlZS5jcHA6CisgICAgICAgIChKU0M6
Oldhc206OkxMSW50Q2FsbGVlOjpjYWxsZWVTYXZlUmVnaXN0ZXJzKToKKyAgICAgICAgKiB3YXNt
L1dhc21DYWxsZWVHcm91cC5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkNhbGxlZUdyb3VwOjpp
c1NhZmVUb1J1bik6CisgICAgICAgICogd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwOgor
ICAgICAgICAoSlNDOjpXYXNtOjpqc0NhbGxpbmdDb252ZW50aW9uKToKKyAgICAgICAgKEpTQzo6
V2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKToKKyAgICAgICAgKiB3YXNtL1dhc21DYWxsaW5n
Q29udmVudGlvbi5oOgorICAgICAgICAoSlNDOjpXYXNtOjpDYWxsSW5mb3JtYXRpb246OmNvbXB1
dGVSZXN1bHRzT2Zmc2V0TGlzdCk6CisgICAgICAgIChKU0M6Oldhc206Oldhc21DYWxsaW5nQ29u
dmVudGlvbjo6V2FzbUNhbGxpbmdDb252ZW50aW9uKToKKyAgICAgICAgKEpTQzo6V2FzbTo6V2Fz
bUNhbGxpbmdDb252ZW50aW9uOjptYXJzaGFsbExvY2F0aW9uSW1wbCBjb25zdCk6CisgICAgICAg
IChKU0M6Oldhc206Oldhc21DYWxsaW5nQ29udmVudGlvbjo6bWFyc2hhbGxMb2NhdGlvbiBjb25z
dCk6CisgICAgICAgIChKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246OkpTQ2FsbGluZ0Nv
bnZlbnRpb24pOgorICAgICAgICAoSlNDOjpXYXNtOjpKU0NhbGxpbmdDb252ZW50aW9uOjptYXJz
aGFsbExvY2F0aW9uSW1wbCBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkpTQ2FsbGluZ0Nv
bnZlbnRpb246Om1hcnNoYWxsTG9jYXRpb24gY29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpK
U0NhbGxpbmdDb252ZW50aW9uOjpjYWxsSW5mb3JtYXRpb25Gb3IgY29uc3QpOgorICAgICAgICAq
IHdhc20vV2FzbUZvcm1hdC5oOgorICAgICAgICAqIHdhc20vV2FzbUluZGV4T3JOYW1lLmNwcDoK
KyAgICAgICAgKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OkluZGV4T3JOYW1lKToKKyAgICAgICAg
KEpTQzo6V2FzbTo6bWFrZVN0cmluZyk6CisgICAgICAgICogd2FzbS9XYXNtSW5kZXhPck5hbWUu
aDoKKyAgICAgICAgKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OkluZGV4T3JOYW1lKToKKyAgICAg
ICAgKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OmlzRW1wdHkgY29uc3QpOgorICAgICAgICAoSlND
OjpXYXNtOjpJbmRleE9yTmFtZTo6aXNJbmRleCBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206
OkluZGV4T3JOYW1lOjppc05hbWUgY29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpJbmRleE9y
TmFtZTo6aW5kZXggY29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6bmFt
ZSBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1lOjpuYW1lU2VjdGlvbiBj
b25zdCk6CisgICAgICAgICogd2FzbS9XYXNtSW5zdGFuY2UuaDoKKyAgICAgICAgKEpTQzo6V2Fz
bTo6SW5zdGFuY2U6OnVwZGF0ZUNhY2hlZE1lbW9yeSk6CisgICAgICAgICogd2FzbS9XYXNtTExJ
bnRHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6dmly
dHVhbFJlZ2lzdGVyRm9yV2FzbUxvY2FsKToKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRHZW5l
cmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvckNhbGxlcik6CisgICAgICAgIChKU0M6Oldhc206OkxM
SW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZWUpOgorICAgICAgICAoSlNDOjpX
YXNtOjpMTEludEdlbmVyYXRvcjo6YWRkQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6V2FzbTo6
TExJbnRHZW5lcmF0b3I6OmFkZExvb3ApOgorICAgICAgICAqIHdhc20vV2FzbUxMSW50UGxhbi5j
cHA6CisgICAgICAgIChKU0M6Oldhc206OkxMSW50UGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlv
bik6CisgICAgICAgICogd2FzbS9XYXNtTWVtb3J5LmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6
TWVtb3J5SGFuZGxlOjp+TWVtb3J5SGFuZGxlKToKKyAgICAgICAgKEpTQzo6V2FzbTo6TWVtb3J5
Ojp0cnlDcmVhdGUpOgorICAgICAgICAoSlNDOjpXYXNtOjpNZW1vcnk6Omdyb3dTaGFyZWQpOgor
ICAgICAgICAoSlNDOjpXYXNtOjpNZW1vcnk6Omdyb3cpOgorICAgICAgICAoSlNDOjpXYXNtOjpN
ZW1vcnk6OmNvcHkpOgorICAgICAgICAqIHdhc20vV2FzbU1lbW9yeS5oOgorICAgICAgICAqIHdh
c20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6UGlubmVk
UmVnaXN0ZXJJbmZvOjpnZXQpOgorICAgICAgICAqIHdhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9u
Lmg6CisgICAgICAgIChKU0M6Oldhc206OlBpbm5lZFJlZ2lzdGVySW5mbzo6dG9TYXZlIGNvbnN0
KToKKyAgICAgICAgKiB3YXNtL1dhc21NZW1vcnlNb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6V2Fz
bTo6bWFrZVN0cmluZyk6CisgICAgICAgICogd2FzbS9XYXNtTWVtb3J5TW9kZS5oOgorICAgICAg
ICAqIHdhc20vV2FzbU9wY29kZU9yaWdpbi5jcHA6CisgICAgICAgICogd2FzbS9XYXNtT3Bjb2Rl
T3JpZ2luLmg6CisgICAgICAgICogd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChK
U0M6Oldhc206OkpTQ19ERUZJTkVfSklUX09QRVJBVElPTik6CisgICAgICAgICogd2FzbS9XYXNt
T3BlcmF0aW9ucy5oOgorICAgICAgICAqIHdhc20vV2FzbVBhZ2VDb3VudC5oOgorICAgICAgICAq
IHdhc20vV2FzbVBhcnNlci5oOgorICAgICAgICAoSlNDOjpXYXNtOjpQYXJzZXI8U3VjY2Vzc1R5
cGU+OjpwYXJzZVVJbnQzMik6CisgICAgICAgIChKU0M6Oldhc206OlBhcnNlcjxTdWNjZXNzVHlw
ZT46OnBhcnNlVUludDY0KToKKyAgICAgICAgKiB3YXNtL1dhc21TbG93UGF0aHMuY3BwOgorICAg
ICAgICAoSlNDOjpMTEludDo6V0FTTV9TTE9XX1BBVEhfREVDTCk6CisgICAgICAgIChKU0M6OkxM
SW50OjpzbG93X3BhdGhfd2FzbV9wb3Bjb3VudCk6CisgICAgICAgIChKU0M6OkxMSW50OjpzbG93
X3BhdGhfd2FzbV9wb3Bjb3VudGxsKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93
YXNtX2kzMl9kaXZfcyk6CisgICAgICAgIChKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pMzJf
ZGl2X3UpOgorICAgICAgICAoSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTMyX3JlbV9zKToK
KyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2kzMl9yZW1fdSk6CisgICAgICAg
IChKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pNjRfZGl2X3MpOgorICAgICAgICAoSlNDOjpM
TEludDo6c2xvd19wYXRoX3dhc21faTY0X2Rpdl91KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNs
b3dfcGF0aF93YXNtX2k2NF9yZW1fcyk6CisgICAgICAgIChKU0M6OkxMSW50OjpzbG93X3BhdGhf
d2FzbV9pNjRfcmVtX3UpOgorICAgICAgICAqIHdhc20vV2FzbVNsb3dQYXRocy5oOgorICAgICAg
ICAqIHdhc20vV2FzbVZhbHVlTG9jYXRpb24uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWx1
ZUxvY2F0aW9uOjpkdW1wIGNvbnN0KToKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6Cisg
ICAgICAgICogd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5oOgorICAgICAgICAoSlNDOjpXYXNtOjpW
YWx1ZUxvY2F0aW9uOjpWYWx1ZUxvY2F0aW9uKToKKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsdWVM
b2NhdGlvbjo6aXNHUFIgY29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9u
Ojppc0ZQUiBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzU3Rh
Y2sgY29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjppc1N0YWNrQXJn
dW1lbnQgY29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjpqc3IgY29u
c3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjpmcHIgY29uc3QpOgorICAg
ICAgICAoSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjpyZWcpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjppc1JlZyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OnJlZyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmdwciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogd2FzbS9qcy9KU1RvV2FzbS5jcHA6CisgICAgICAgIChKU0M6Oldhc206Om1hcnNoYWxsSlNS
ZXN1bHQpOgorICAgICAgICAoSlNDOjpXYXNtOjpjcmVhdGVKU1RvV2FzbVdyYXBwZXIpOgorICAg
ICAgICAqIHdhc20vanMvV2FzbVRvSlMuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjp3YXNtVG9K
Uyk6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcDoKKyAgICAgICAg
KEpTQzo6V2ViQXNzZW1ibHlGdW5jdGlvbjo6cHJldmlvdXNJbnN0YW5jZU9mZnNldCBjb25zdCk6
CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93
KToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHdhc20v
anMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJs
eU1vZHVsZVJlY29yZDo6aW5pdGlhbGl6ZUV4cG9ydHMpOgorCiAyMDIyLTAzLTMwICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgb2Jzb2xldGUgLS11c2VQ
cm9iZU9TUkV4aXQgb3B0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBlNGVlZmI2MmY3YjlhNGM0ZWE0ZjdjZTdhMGQyYmI1
ZmQ0M2M4ODQ0Li5kYjA0MWQ4ZTY3N2I3YTFhNzcyYjEyZmZiOTA0YjZmNmFjOTVkMDZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEyIEBACisyMDIyLTAzLTMwICBYYW4gTMOzcGV6ICA8eGFuQGlnYWxpYS5jb20+
CisKKyAgICAgICAgW0pTQ10gRW5hYmxlIFdhc21MTEludCBvbiBBUk12NworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMjYwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGUu
aDogZW5hYmxlIFdlYkFzc2VtYmx5IG9uIEFSTXY3LgorCiAyMDIyLTAzLTI4ICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIERpc2FibGUgY3VzdG9tIHN0b3JhZ2Ug
cGF0aHMgZm9yIEluZGV4ZWREQiBhbmQgTG9jYWxTdG9yYWdlIGJ5IGRlZmF1bHQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAwMThhZmVkNzE2MjljZTA3MTYzNmQ5ZmZhNGNk
ZTdhYmZjYTk0YWZkLi4zY2ZmNWViYTM1Yzk5NjE1NThkNDdmY2U0MGMxMmMzNDUxY2QyZTJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMDAsNiArMjAwLDggQEAgc2V0
KExMSU5UX0FTTQogICAgIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KICAgICBs
bGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCiAgICAgbGxpbnQvV2ViQXNzZW1ibHkuYXNt
CisgICAgbGxpbnQvV2ViQXNzZW1ibHkzMl82NC5hc20KKyAgICBsbGludC9XZWJBc3NlbWJseTY0
LmFzbQogKQogCiBzZXQoT0ZGTElORV9BU00KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAppbmRleCA2ZDE4YmU4ZDY2MGY4OGY5NzM0N2UyOWM2
OTViMTJmYzg4Y2Q2ODhkLi4xZDU1OWM0MWExNDc2ZmM0N2ZiOTE0ZmQ1NTYxMTI3MTAxZDE2Yjli
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1i
bGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxl
ci5oCkBAIC0xOTY3LDEwICsxOTY3LDEwIEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIu
dmZwT3AoT1BfVkNNUCwgT1BfVkNNUGIsIHRydWUsIFZGUE9wZXJhbmQoNSksIHJkLCBWRlBPcGVy
YW5kKDApKTsKICAgICB9CiAKLSAgICB2b2lkIHZjdnRfc2lnbmVkVG9GbG9hdGluZ1BvaW50KEZQ
RG91YmxlUmVnaXN0ZXJJRCByZCwgRlBTaW5nbGVSZWdpc3RlcklEIHJtKQorICAgIHZvaWQgdmN2
dF9zaWduZWRUb0Zsb2F0aW5nUG9pbnQoRlBEb3VibGVSZWdpc3RlcklEIHJkLCBGUFNpbmdsZVJl
Z2lzdGVySUQgcm0sIGJvb2wgdG9Eb3VibGUgPSB0cnVlKQogICAgIHsKICAgICAgICAgLy8gYm9v
bGVhbiB2YWx1ZXMgYXJlIDY0Yml0ICh0b0ludCwgdW5zaWduZWQsIHJvdW5kWmVybykKLSAgICAg
ICAgbV9mb3JtYXR0ZXIudmZwT3AoT1BfVkNWVF9GUElWRlAsIE9QX1ZDVlRfRlBJVkZQYiwgdHJ1
ZSwgdmN2dE9wKGZhbHNlLCBmYWxzZSwgZmFsc2UpLCByZCwgcm0pOworICAgICAgICBtX2Zvcm1h
dHRlci52ZnBPcChPUF9WQ1ZUX0ZQSVZGUCwgT1BfVkNWVF9GUElWRlBiLCB0b0RvdWJsZSwgdmN2
dE9wKGZhbHNlLCBmYWxzZSwgZmFsc2UpLCByZCwgcm0pOwogICAgIH0KIAogICAgIHZvaWQgdmN2
dF9mbG9hdGluZ1BvaW50VG9TaWduZWQoRlBTaW5nbGVSZWdpc3RlcklEIHJkLCBGUERvdWJsZVJl
Z2lzdGVySUQgcm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk12Ny5oCmluZGV4IGZlN2YyZDVjNGYzZmI0MWMxZDM1NWVlOTQ0ZGRk
NWE1YWUxNDAwOGIuLmJiYzFmNzU0OWU3NGU0ZDFmNmE1YjY0YTA3ZmU5ZTc3Y2EyMDgyMjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJB
Uk12Ny5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk12Ny5oCkBAIC0zOCwxMCArMzgsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiB1c2luZyBBc3Nl
bWJsZXIgPSBUQVJHRVRfQVNTRU1CTEVSOwogCiBjbGFzcyBNYWNyb0Fzc2VtYmxlckFSTXY3IDog
cHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8QXNzZW1ibGVyPiB7CitwdWJsaWM6CiAgICAg
c3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklEIGRhdGFUZW1wUmVnaXN0ZXIgPSBBUk1SZWdpc3Rl
cnM6OmlwOwogICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCBhZGRyZXNzVGVtcFJlZ2lz
dGVyID0gQVJNUmVnaXN0ZXJzOjpyNjsKIAotICAgIHN0YXRpYyBjb25zdGV4cHIgQVJNUmVnaXN0
ZXJzOjpGUERvdWJsZVJlZ2lzdGVySUQgZnBUZW1wUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OmQ3
OworcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3RleHByIEFSTVJlZ2lzdGVyczo6RlBEb3VibGVS
ZWdpc3RlcklEIGZwVGVtcFJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpkMTU7CiAgICAgaW5saW5l
IEFSTVJlZ2lzdGVyczo6RlBTaW5nbGVSZWdpc3RlcklEIGZwVGVtcFJlZ2lzdGVyQXNTaW5nbGUo
KSB7IHJldHVybiBBUk1SZWdpc3RlcnM6OmFzU2luZ2xlKGZwVGVtcFJlZ2lzdGVyKTsgfQogCiAg
ICAgLy8gSW4gdGhlIFRodW1iLTIgaW5zdHJ1Y3Rpb24gc2V0LCBpbnN0cnVjdGlvbnMgb3BlcmF0
aW5nIG9ubHkgb24gcmVnaXN0ZXJzIHIwLXI3IGNhbiBvZnRlbgpAQCAtMTQxNiw2ICsxNDE4LDEy
IEBAIHB1YmxpYzoKICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKKyAgICB2b2lkIGNvbnZlcnRJ
bnQzMlRvRmxvYXQoUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAg
ICAgICAgbV9hc3NlbWJsZXIudm1vdihmcFRlbXBSZWdpc3Rlciwgc3JjLCBzcmMpOworICAgICAg
ICBtX2Fzc2VtYmxlci52Y3Z0X3NpZ25lZFRvRmxvYXRpbmdQb2ludChkZXN0LCBmcFRlbXBSZWdp
c3RlckFzU2luZ2xlKCksIC8qIHRvRG91YmxlOiAqLyBmYWxzZSk7CisgICAgfQorCiAgICAgdm9p
ZCBjb252ZXJ0SW50MzJUb0RvdWJsZShSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRlc3Qp
CiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci52bW92KGZwVGVtcFJlZ2lzdGVyLCBzcmMsIHNy
Yyk7CkBAIC0yMjQ5LDYgKzIyNTcsMTQgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gQ2FsbCht
X2Fzc2VtYmxlci5ieChkYXRhVGVtcFJlZ2lzdGVyKSwgQ2FsbDo6TGlua2FibGVOZWFyVGFpbCk7
CiAgICAgfQogCisgICAgLy8gRklYTUU6IHdoeSBpcyB0aGlzIHRoZSBzYW1lIHRoYW4gbmVhckNh
bGwoKSBpbiBBUk02ND8gaXMgaXQgcmlnaHQ/CisgICAgQUxXQVlTX0lOTElORSBDYWxsIHRocmVh
ZFNhZmVQYXRjaGFibGVOZWFyQ2FsbCgpCisgICAgeworICAgICAgICBpbnZhbGlkYXRlQWxsVGVt
cFJlZ2lzdGVycygpOworICAgICAgICBtb3ZlRml4ZWRXaWR0aEVuY29kaW5nKFRydXN0ZWRJbW0z
MigwKSwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgIHJldHVybiBDYWxsKG1fYXNzZW1ibGVy
LmJseChkYXRhVGVtcFJlZ2lzdGVyKSwgQ2FsbDo6TGlua2FibGVOZWFyKTsKKyAgICB9CisKICAg
ICBBTFdBWVNfSU5MSU5FIENhbGwgY2FsbChQdHJUYWcpCiAgICAgewogICAgICAgICBtb3ZlRml4
ZWRXaWR0aEVuY29kaW5nKFRydXN0ZWRJbW0zMigwKSwgZGF0YVRlbXBSZWdpc3Rlcik7CkBAIC0y
MjczLDYgKzIyODksMTIgQEAgcHVibGljOgogICAgIEFMV0FZU19JTkxJTkUgQ2FsbCBjYWxsKFJl
Z2lzdGVySUQgdGFyZ2V0LCBSZWdpc3RlcklEIGNhbGxUYWcpIHsgcmV0dXJuIFVOVVNFRF9QQVJB
TShjYWxsVGFnKSwgY2FsbCh0YXJnZXQsIE5vUHRyVGFnKTsgfQogICAgIEFMV0FZU19JTkxJTkUg
Q2FsbCBjYWxsKEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBjYWxsVGFnKSB7IHJldHVybiBV
TlVTRURfUEFSQU0oY2FsbFRhZyksIGNhbGwoYWRkcmVzcywgTm9QdHJUYWcpOyB9CiAKKyAgICBB
TFdBWVNfSU5MSU5FIHZvaWQgY2FsbE9wZXJhdGlvbihjb25zdCBGdW5jdGlvblB0cjxPcGVyYXRp
b25QdHJUYWc+IG9wZXJhdGlvbikKKyAgICB7CisgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihv
cGVyYXRpb24uZXhlY3V0YWJsZUFkZHJlc3MoKSksIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOworICAg
ICAgICBjYWxsKGFkZHJlc3NUZW1wUmVnaXN0ZXIsIE9wZXJhdGlvblB0clRhZyk7CisgICAgfQor
CiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHJldCgpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxl
ci5ieChsaW5rUmVnaXN0ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzVmFsdWVSZXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlUmVwLmgKaW5k
ZXggMTU3YmM4ODY4MjMxMmIxYTFlOWRhNzM5YzA4MmMwZDZjNDc3ZDMyNi4uNzY5MzhjNmZlY2Fi
ZmQyNzEyNzdhYmVlMzlmZWE5M2E5MmY3YjY2MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzVmFsdWVSZXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNW
YWx1ZVJlcC5oCkBAIC0xMjYsOSArMTI2LDEzIEBAIHB1YmxpYzoKICAgICBWYWx1ZVJlcChXYXNt
OjpWYWx1ZUxvY2F0aW9uIGxvY2F0aW9uKQogICAgIHsKICAgICAgICAgc3dpdGNoIChsb2NhdGlv
bi5raW5kKCkpIHsKLSAgICAgICAgY2FzZSBXYXNtOjpWYWx1ZUxvY2F0aW9uOjpLaW5kOjpSZWdp
c3RlcjoKKyAgICAgICAgY2FzZSBXYXNtOjpWYWx1ZUxvY2F0aW9uOjpLaW5kOjpHUFJSZWdpc3Rl
cjoKICAgICAgICAgICAgIG1fa2luZCA9IFJlZ2lzdGVyOwotICAgICAgICAgICAgdS5yZWcgPSBs
b2NhdGlvbi5yZWcoKTsKKyAgICAgICAgICAgIHUucmVnID0gbG9jYXRpb24uanNyKCkucGF5bG9h
ZEdQUigpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2FzbTo6VmFsdWVMb2Nh
dGlvbjo6S2luZDo6RlBSUmVnaXN0ZXI6CisgICAgICAgICAgICBtX2tpbmQgPSBSZWdpc3RlcjsK
KyAgICAgICAgICAgIHUucmVnID0gbG9jYXRpb24uZnByKCk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBXYXNtOjpWYWx1ZUxvY2F0aW9uOjpLaW5kOjpTdGFjazoKICAgICAgICAg
ICAgIG1fa2luZCA9IFN0YWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9CeXRlY29kZUR1bXBlci5jcHAKaW5kZXggMDhhMjM1ODA0NGZkNjM1OTcwMzIzYjAxMmM5Yzg3
ZTM5NWUzZTY5OC4uMDAwMTQ3OTcwNDEyNmRhMDJkOGFjMmYzNTE3OTQzNDM0M2JkNTlmYyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3Bw
CkBAIC00MTMsNyArNDEzLDcgQEAgQ1N0cmluZyBCeXRlY29kZUR1bXBlcjo6Zm9ybWF0Q29uc3Rh
bnQoVHlwZSB0eXBlLCB1aW50NjRfdCBjb25zdGFudCkgY29uc3QKICAgICAgICAgaWYgKGlzRnVu
Y3JlZih0eXBlKSB8fCBpc0V4dGVybnJlZih0eXBlKSkgewogICAgICAgICAgICAgaWYgKEpTVmFs
dWU6OmRlY29kZShjb25zdGFudCkgPT0ganNOdWxsKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
ICJudWxsIjsKLSAgICAgICAgICAgIHJldHVybiB0b0NTdHJpbmcoUmF3UG9pbnRlcihiaXR3aXNl
X2Nhc3Q8dm9pZCo+KGNvbnN0YW50KSkpOworICAgICAgICAgICAgcmV0dXJuIHRvQ1N0cmluZyhS
YXdQb2ludGVyKGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludHB0cl90Pihjb25z
dGFudCkpKSk7CiAgICAgICAgIH0KIAogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxG
cmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCmlu
ZGV4IDQxOWVmYjM2YTQwOTVkYmUxYzhhMjA0NjEyNWU4YzVjNzgyZjMzMGQuLmFjMzM2NGNiNDc3
MDJiZTdmOTA4NDMwMmNiMjA0ZjIxMGYxMzczNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKQEAgLTEzMSw4ICsxMzEsOCBAQCBuYW1lc3BhY2Ug
SlNDICB7CiAgICAgICAgIC8vIHRvIHNlZSBpZiBpdCdzIGEgY2VsbCwgYW5kIGlmIGl0J3Mgbm90
LCB3ZSB0aHJvdyBhbiBleGNlcHRpb24uCiAgICAgICAgIGlubGluZSBKU1ZhbHVlIGd1YXJhbnRl
ZWRKU1ZhbHVlQ2FsbGVlKCkgY29uc3Q7CiAgICAgICAgIGlubGluZSBKU09iamVjdCoganNDYWxs
ZWUoKSBjb25zdDsKLSAgICAgICAgQ2FsbGVlQml0cyBjYWxsZWUoKSBjb25zdCB7IHJldHVybiBD
YWxsZWVCaXRzKHRoaXNbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXS5w
b2ludGVyKCkpOyB9Ci0gICAgICAgIFNVUFBSRVNTX0FTQU4gQ2FsbGVlQml0cyB1bnNhZmVDYWxs
ZWUoKSBjb25zdCB7IHJldHVybiBDYWxsZWVCaXRzKHRoaXNbc3RhdGljX2Nhc3Q8aW50PihDYWxs
RnJhbWVTbG90OjpjYWxsZWUpXS5hc2FuVW5zYWZlUG9pbnRlcigpKTsgfQorICAgICAgICBDYWxs
ZWVCaXRzIGNhbGxlZSgpIGNvbnN0IHsgcmV0dXJuIENhbGxlZUJpdHModGhpc1tzdGF0aWNfY2Fz
dDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSldLnVuYm94ZWRJbnQ2NCgpKTsgfQorICAgICAg
ICBTVVBQUkVTU19BU0FOIENhbGxlZUJpdHMgdW5zYWZlQ2FsbGVlKCkgY29uc3QgeyByZXR1cm4g
Q2FsbGVlQml0cyh0aGlzW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0u
YXNhblVuc2FmZVVuYm94ZWRJbnQ2NCgpKTsgfQogICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9j
aygpIGNvbnN0OwogICAgICAgICBDb2RlQmxvY2sqKiBhZGRyZXNzT2ZDb2RlQmxvY2soKSBjb25z
dCB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8Q29kZUJsb2NrKio+KHRoaXMgKyBzdGF0aWNfY2FzdDxp
bnQ+KENhbGxGcmFtZVNsb3Q6OmNvZGVCbG9jaykpOyB9CiAgICAgICAgIGlubGluZSBTVVBQUkVT
U19BU0FOIENvZGVCbG9jayogdW5zYWZlQ29kZUJsb2NrKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbGVlQml0cy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxlZUJpdHMuaAppbmRleCAxOGJiN2VmN2ZhOGM3
YzM5ZjNkNzFiYTk5NjYyMmIxZDZkNzkxZjU4Li4zY2ViZDkxODYwN2ExM2ExOGFiMDQxNDljZGIw
MzllYzdlYTU2OGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvQ2FsbGVlQml0cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9D
YWxsZWVCaXRzLmgKQEAgLTM5LDExICszOSwyMSBAQCBjbGFzcyBKU0NlbGw7CiBjbGFzcyBDYWxs
ZWVCaXRzIHsKIHB1YmxpYzoKICAgICBDYWxsZWVCaXRzKCkgPSBkZWZhdWx0OwotICAgIENhbGxl
ZUJpdHModm9pZCogcHRyKSA6IG1fcHRyKHB0cikgeyB9IAorICAgIENhbGxlZUJpdHMoaW50NjRf
dCB2YWx1ZSkKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICA6IG1fcHRyIHsgcmVpbnRlcnBy
ZXRfY2FzdDx2b2lkKj4odmFsdWUpIH0KKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAg
IDogbV9wdHIgeyByZWludGVycHJldF9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+
KHZhbHVlID4+IChQYXlsb2FkT2Zmc2V0ICogQ0hBUl9CSVQpKSkgfQorICAgICAgICAsIG1fdGFn
IHsgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHZhbHVlID4+IChUYWdPZmZzZXQgKiBDSEFSX0JJVCkp
IH0KKyNlbmRpZgorICAgIHsgfQogCiAgICAgQ2FsbGVlQml0cyYgb3BlcmF0b3I9KEpTQ2VsbCog
Y2VsbCkKICAgICB7CiAgICAgICAgIG1fcHRyID0gY2VsbDsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0
KQorICAgICAgICBtX3RhZyA9IEpTVmFsdWU6OkNlbGxUYWc7CisjZW5kaWYKICAgICAgICAgQVNT
RVJUKGlzQ2VsbCgpKTsKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KQEAgLTUxLDE4ICs2
MSwyNCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgIHN0YXRpYyB2b2lk
KiBib3hXYXNtKFdhc206OkNhbGxlZSogY2FsbGVlKQogICAgIHsKLSAgICAgICAgQ2FsbGVlQml0
cyByZXN1bHQocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDx1aW50cHRy
X3Q+KGNhbGxlZSkgfCBKU1ZhbHVlOjpXYXNtVGFnKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAg
ICAgICAgQ2FsbGVlQml0cyByZXN1bHQgeyByZWludGVycHJldF9jYXN0PGludDY0X3Q+KGNhbGxl
ZSkgfCBKU1ZhbHVlOjpXYXNtVGFnIH07CiAgICAgICAgIEFTU0VSVChyZXN1bHQuaXNXYXNtKCkp
OwogICAgICAgICByZXR1cm4gcmVzdWx0LnJhd1B0cigpOworI2VsaWYgVVNFKEpTVkFMVUUzMl82
NCkKKyAgICAgICAgcmV0dXJuIGNhbGxlZTsgLy8gVGhlIHBvaW50ZXIgaXMgYXMgaXMsIGJ1dCB0
aGUgY29ycmVzcG9uZGluZyB0YWcgZmllbGQgbmVlZHMgdG8gYmUgc2V0IHRvIFdhc21UYWcgc2Vw
YXJhdGVseS4KKyNlbmRpZgogICAgIH0KICNlbmRpZgogCiAgICAgYm9vbCBpc1dhc20oKSBjb25z
dAogICAgIHsKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgICAgIHJldHVybiAocmVpbnRl
cnByZXRfY2FzdDx1aW50cHRyX3Q+KG1fcHRyKSAmIEpTVmFsdWU6Oldhc21NYXNrKSA9PSBKU1Zh
bHVlOjpXYXNtVGFnOwotI2Vsc2UKKyNpZiAhRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CisjZWxpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICByZXR1cm4gKHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtX3B0cikgJiBKU1ZhbHVlOjpXYXNtTWFzaykgPT0gSlNW
YWx1ZTo6V2FzbVRhZzsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJldHVybiBt
X3RhZyA9PSBKU1ZhbHVlOjpXYXNtVGFnOwogI2VuZGlmCiAgICAgfQogICAgIGJvb2wgaXNDZWxs
KCkgY29uc3QgeyByZXR1cm4gIWlzV2FzbSgpOyB9CkBAIC03NywxNCArOTMsMjEgQEAgcHVibGlj
OgogICAgIFdhc206OkNhbGxlZSogYXNXYXNtQ2FsbGVlKCkgY29uc3QKICAgICB7CiAgICAgICAg
IEFTU0VSVChpc1dhc20oKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8V2FzbTo6Q2FsbGVlKj4ocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+
KG1fcHRyKSAmIH5KU1ZhbHVlOjpXYXNtVGFnKTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisg
ICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFdhc206OkNhbGxlZSo+KG1fcHRyKTsKKyNl
bmRpZgogICAgIH0KICNlbmRpZgogCiAgICAgdm9pZCogcmF3UHRyKCkgY29uc3QgeyByZXR1cm4g
bV9wdHI7IH0KLSAgICAKKwogcHJpdmF0ZToKICAgICB2b2lkKiBtX3B0ciB7IG51bGxwdHIgfTsK
KyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIHVpbnQzMl90IG1fdGFnIHsgSlNWYWx1ZTo6RW1w
dHlWYWx1ZVRhZyB9OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmgKaW5kZXggZDg3OWM5MGJlMzEx
Nzg2MjMzZjUyNmIxODNlZGYxY2IzYzdiYjM4YS4uNDYxODEzYzQxZDMzNzJkZmQ0YjE4MTIzMjkx
NTE5NDEyMWJlMmFkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL1JlZ2lzdGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1Jl
Z2lzdGVyLmgKQEAgLTcyLDYgKzcyLDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBpbnQ2
NF90IHVuYm94ZWRJbnQ2NCgpIGNvbnN0OwogICAgICAgICBpbnQ2NF90IGFzYW5VbnNhZmVVbmJv
eGVkSW50NjQoKSBjb25zdDsKICAgICAgICAgYm9vbCB1bmJveGVkQm9vbGVhbigpIGNvbnN0Owor
I2lmIEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgZmxv
YXQgdW5ib3hlZEZsb2F0KCkgY29uc3Q7CisgICAgICAgIGZsb2F0IGFzYW5VbnNhZmVVbmJveGVk
RmxvYXQoKSBjb25zdDsKKyNlbmRpZgogICAgICAgICBkb3VibGUgdW5ib3hlZERvdWJsZSgpIGNv
bnN0OwogICAgICAgICBkb3VibGUgYXNhblVuc2FmZVVuYm94ZWREb3VibGUoKSBjb25zdDsKICAg
ICAgICAgSlNDZWxsKiB1bmJveGVkQ2VsbCgpIGNvbnN0OwpAQCAtMTg4LDYgKzE5MiwxOCBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgcmV0dXJuICEhcGF5bG9hZCgpOwogICAgIH0KIAorI2lm
IEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBBTFdBWVNfSU5M
SU5FIGZsb2F0IFJlZ2lzdGVyOjp1bmJveGVkRmxvYXQoKSBjb25zdAorICAgIHsKKyAgICAgICAg
cmV0dXJuIGJpdHdpc2VfY2FzdDxmbG9hdD4ocGF5bG9hZCgpKTsKKyAgICB9CisKKyAgICBTVVBQ
UkVTU19BU0FOIEFMV0FZU19JTkxJTkUgZmxvYXQgUmVnaXN0ZXI6OmFzYW5VbnNhZmVVbmJveGVk
RmxvYXQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxmbG9hdD4o
cGF5bG9hZCgpKTsKKyAgICB9CisjZW5kaWYKKwogICAgIEFMV0FZU19JTkxJTkUgZG91YmxlIFJl
Z2lzdGVyOjp1bmJveGVkRG91YmxlKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiB1Lm51
bWJlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxw
ZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4
IDI3ZGQ1OTc5MGI3MWY5OGEyMTdiMTI1ODc3Njc3MTY1YWM2OGVlMGMuLmUyNDUyZWRjZWU2ZTRi
MDg0Njg4ZWE0MTI3OGQ3NDY0ZDUyNTczODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9Bc3NlbWJseUhlbHBlcnMuaApAQCAtMTM4OSw3ICsxMzg5LDEwIEBAIHB1YmxpYzoKICAgICAg
ICAgaml0QXNzZXJ0SXNKU0RvdWJsZShncHIpOwogICAgICAgICByZXR1cm4gdW5ib3hEb3VibGVX
aXRob3V0QXNzZXJ0aW9ucyhncHIsIHJlc3VsdEdQUiwgZnByKTsKICAgICB9Ci0gICAgCisgICAg
dm9pZCB1bmJveERvdWJsZShKU1ZhbHVlUmVncyByZWdzLCBGUFJSZWcgZnByKQorICAgIHsKKyAg
ICAgICAgdW5ib3hEb3VibGUocmVncy50YWdHUFIoKSwgcmVncy5wYXlsb2FkR1BSKCksIGZwcik7
CisgICAgfQogICAgIHZvaWQgYm94RG91YmxlKEZQUlJlZyBmcHIsIEpTVmFsdWVSZWdzIHJlZ3Ms
IFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCiAgICAgewogICAgICAg
ICBib3hEb3VibGUoZnByLCByZWdzLmdwcigpLCBtb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3QuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5jcHAKaW5kZXggZWQ4MzAzZGU0MWI1
NzRhZmNlOTI4OTdjZjBhOWQ1YWRlZjQwODExNS4uYmFkMjAyOWY3Y2Y5MGU1MWY1MDNlYzZlNjll
Yzk1ODI5YzM2OTYzYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdp
c3RlckF0T2Zmc2V0TGlzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdp
c3RlckF0T2Zmc2V0TGlzdC5jcHAKQEAgLTM5LDE4ICszOSw0MiBAQCBSZWdpc3RlckF0T2Zmc2V0
TGlzdDo6UmVnaXN0ZXJBdE9mZnNldExpc3QoKSB7IH0KIFJlZ2lzdGVyQXRPZmZzZXRMaXN0OjpS
ZWdpc3RlckF0T2Zmc2V0TGlzdChSZWdpc3RlclNldCByZWdpc3RlclNldCwgT2Zmc2V0QmFzZVR5
cGUgb2Zmc2V0QmFzZVR5cGUpCiAgICAgOiBtX3JlZ2lzdGVycyhyZWdpc3RlclNldC5udW1iZXJP
ZlNldFJlZ2lzdGVycygpKQogewotICAgIHNpemVfdCBudW1iZXJPZlJlZ2lzdGVycyA9IHJlZ2lz
dGVyU2V0Lm51bWJlck9mU2V0UmVnaXN0ZXJzKCk7Ci0gICAgcHRyZGlmZl90IG9mZnNldCA9IDA7
Ci0gICAgCi0gICAgaWYgKG9mZnNldEJhc2VUeXBlID09IEZyYW1lUG9pbnRlckJhc2VkKQotICAg
ICAgICBvZmZzZXQgPSAtKHN0YXRpY19jYXN0PHB0cmRpZmZfdD4obnVtYmVyT2ZSZWdpc3RlcnMp
ICogc2l6ZW9mKENQVVJlZ2lzdGVyKSk7CisgICAgY29uc3RleHByIHNpemVfdCBTaXplT2ZHUFIg
PSBzaXplb2YoQ1BVUmVnaXN0ZXIpOworICAgIGNvbnN0ZXhwciBzaXplX3QgU2l6ZU9mRlBSID0g
c2l6ZW9mKGRvdWJsZSk7CiAKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIHN0YXRpY19hc3NlcnQo
U2l6ZU9mR1BSID09IFNpemVPZkZQUik7CisgICAgc2l6ZV90IG51bWJlck9mUmVncyA9IHJlZ2lz
dGVyU2V0Lm51bWJlck9mU2V0UmVnaXN0ZXJzKCk7CisgICAgbV9zaXplT2ZBcmVhSW5CeXRlcyA9
IG51bWJlck9mUmVncyAqIFNpemVPZkdQUjsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
c3RhdGljX2Fzc2VydCgyICogU2l6ZU9mR1BSID09IFNpemVPZkZQUik7CisgICAgc2l6ZV90IG51
bWJlck9mR1BScyA9IHJlZ2lzdGVyU2V0Lm51bWJlck9mU2V0R1BScygpOworICAgIHNpemVfdCBu
dW1iZXJPZkZQUnMgPSByZWdpc3RlclNldC5udW1iZXJPZlNldEZQUnMoKTsKKyAgICBpZiAobnVt
YmVyT2ZGUFJzKQorICAgICAgICBudW1iZXJPZkdQUnMgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxl
T2Y8Mj4obnVtYmVyT2ZHUFJzKTsKKyAgICBtX3NpemVPZkFyZWFJbkJ5dGVzID0gbnVtYmVyT2ZH
UFJzICogU2l6ZU9mR1BSICsgbnVtYmVyT2ZGUFJzICogU2l6ZU9mRlBSOworI2VuZGlmCisKKyAg
ICBwdHJkaWZmX3Qgc3RhcnRPZmZzZXQgPSAwOworICAgIGlmIChvZmZzZXRCYXNlVHlwZSA9PSBG
cmFtZVBvaW50ZXJCYXNlZCkKKyAgICAgICAgc3RhcnRPZmZzZXQgPSAtc3RhdGljX2Nhc3Q8cHRy
ZGlmZl90PihtX3NpemVPZkFyZWFJbkJ5dGVzKTsKKworICAgIHB0cmRpZmZfdCBvZmZzZXQgPSBz
dGFydE9mZnNldDsKICAgICB1bnNpZ25lZCBpbmRleCA9IDA7CiAgICAgcmVnaXN0ZXJTZXQuZm9y
RWFjaChbJl0gKFJlZyByZWcpIHsKKyAgICAgICAgc2l6ZV90IHJlZ2lzdGVyU2l6ZSA9IFNpemVP
ZkdQUjsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBpZiAocmVnLmlzRlBSKCkpIHsK
KyAgICAgICAgICAgIHJlZ2lzdGVyU2l6ZSA9IFNpemVPZkZQUjsKKyAgICAgICAgICAgIG9mZnNl
dCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZjxTaXplT2ZGUFI+KG9mZnNldCk7CisgICAgICAg
IH0KKyNlbmRpZgogICAgICAgICBtX3JlZ2lzdGVyc1tpbmRleF0gPSBSZWdpc3RlckF0T2Zmc2V0
KHJlZywgb2Zmc2V0KTsKLSAgICAgICAgb2Zmc2V0ICs9IHNpemVvZihDUFVSZWdpc3Rlcik7Cisg
ICAgICAgIG9mZnNldCArPSByZWdpc3RlclNpemU7CiAgICAgICAgICsraW5kZXg7CiAgICAgfSk7
CisKKyAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihvZmZzZXQgLSBzdGFydE9mZnNldCkg
PT0gbV9zaXplT2ZBcmVhSW5CeXRlcyk7CiB9CiAKIHZvaWQgUmVnaXN0ZXJBdE9mZnNldExpc3Q6
OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3QuaAppbmRleCBkMTE3Y2Y3NWUwOTg4ODQ4M2U3NjVl
NTJhM2VjNzZmMjIyYTcxMzgzLi4yYTBlOGI5ZDEyNTU0NWI0MDQyMTc3ZGU2NDI2NDI4ZDJlZDhk
MjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRPZmZz
ZXRMaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0
TGlzdC5oCkBAIC02NSwxMSArNjUsMTQgQEAgcHVibGljOgogICAgIEZpeGVkVmVjdG9yPFJlZ2lz
dGVyQXRPZmZzZXQ+Ojpjb25zdF9pdGVyYXRvciBiZWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVn
aXN0ZXJzLmJlZ2luKCk7IH0KICAgICBGaXhlZFZlY3RvcjxSZWdpc3RlckF0T2Zmc2V0Pjo6Y29u
c3RfaXRlcmF0b3IgZW5kKCkgY29uc3QgeyByZXR1cm4gbV9yZWdpc3RlcnMuZW5kKCk7IH0KIAor
ICAgIHNpemVfdCBzaXplT2ZBcmVhSW5CeXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZU9mQXJl
YUluQnl0ZXM7IH0KKwogICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlckF0T2Zmc2V0TGlzdCYgbGxp
bnRCYXNlbGluZUNhbGxlZVNhdmVSZWdpc3RlcnMoKTsgLy8gUmVnaXN0ZXJzIGFuZCBPZmZzZXRz
IHNhdmVkIGFuZCB1c2VkIGJ5IHRoZSBMTEludC4KICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJB
dE9mZnNldExpc3QmIGRmZ0NhbGxlZVNhdmVSZWdpc3RlcnMoKTsgLy8gUmVnaXN0ZXJzIGFuZCBP
ZmZzZXRzIHNhdmVkIGFuZCB1c2VkIGJ5IERGRy4KIAogcHJpdmF0ZToKICAgICBGaXhlZFZlY3Rv
cjxSZWdpc3RlckF0T2Zmc2V0PiBtX3JlZ2lzdGVyczsKKyAgICBzaXplX3QgbV9zaXplT2ZBcmVh
SW5CeXRlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L1JlZ2lzdGVyU2V0LmNwcAppbmRleCBiMmVmZjY1MjRjNGIyNmVjNjk4NWIyOTVkZGY0MWE1
YjQ3NTIxNDQyLi43NTZjOWU1NzBmNDI4MWU1YWRkMzZjZDAxMWI2ODhmOTYxNDc3MzBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyU2V0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyU2V0LmNwcApAQCAtOTQsNiArOTQsOCBA
QCBSZWdpc3RlclNldCBSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKCkKICAgICBy
ZXR1cm4gUmVnaXN0ZXJTZXQoTWFjcm9Bc3NlbWJsZXI6OnNfc2NyYXRjaFJlZ2lzdGVyKTsKICNl
bGlmIENQVShBUk02NCkgfHwgQ1BVKFJJU0NWNjQpCiAgICAgcmV0dXJuIFJlZ2lzdGVyU2V0KE1h
Y3JvQXNzZW1ibGVyOjpkYXRhVGVtcFJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6bWVtb3J5VGVt
cFJlZ2lzdGVyKTsKKyNlbGlmIENQVShBUk0pCisgICAgcmV0dXJuIFJlZ2lzdGVyU2V0KE1hY3Jv
QXNzZW1ibGVyOjpkYXRhVGVtcFJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6YWRkcmVzc1RlbXBS
ZWdpc3Rlcik7CiAjZWxpZiBDUFUoTUlQUykKICAgICBSZWdpc3RlclNldCByZXN1bHQ7CiAgICAg
cmVzdWx0LnNldChNYWNyb0Fzc2VtYmxlcjo6aW1tVGVtcFJlZ2lzdGVyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaAppbmRleCBl
NzZkYWRhMGQzMzI5YzBkMjViZmM5M2MxNWU4ODdiMzM4ZTk3ZTM1Li5iNDcwMzExNWIzYTZhNjAz
ODc0YTIwNWE2MzNjNGRmMDkwNTUyNWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCkBAIC0xNDMsNiArMTQzLDEyIEBACiAj
ZGVmaW5lIE9GRkxJTkVfQVNNX0pTVkFMVUU2NCAwCiAjZW5kaWYKIAorI2lmIFVTRShKU1ZBTFVF
MzJfNjQpCisjZGVmaW5lIE9GRkxJTkVfQVNNX0pTVkFMVUUzMl82NCAxCisjZWxzZQorI2RlZmlu
ZSBPRkZMSU5FX0FTTV9KU1ZBTFVFMzJfNjQgMAorI2VuZGlmCisKICNpZiBVU0UoQklHSU5UMzIp
CiAjZGVmaW5lIE9GRkxJTkVfQVNNX0JJR0lOVDMyIDEKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbSBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCmlu
ZGV4IGFjZTg3MTE2NzJlNzAyMTZkMzlhNDhkZjE1ZmQ2NmQ2YjU3YzQxMWUuLmNjZWEwM2FiNDI2
N2UwY2VmMTM1MWY3Zjk5YjgzNWY2YmQwNDUzOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCkBAIC0zOCwx
OCArMzgsMzQgQEAgbWFjcm8gZ2V0dU9wZXJhbmRXaWRlMTZKUyhvcGNvZGVTdHJ1Y3QsIGZpZWxk
TmFtZSwgZHN0KQogICAgIGxvYWRoIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1l
JV9pbmRleCAqIDIgKyBPcGNvZGVJRFdpZGUxNlNpemVKU1tQQiwgUEMsIDFdLCBkc3QKIGVuZAog
CittYWNybyBnZXR1T3BlcmFuZFdpZGUxNldhc20ob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRz
dCkKKyAgICBsb2FkaCBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXgg
KiAyICsgT3Bjb2RlSURXaWRlMTZTaXplV2FzbVtQQiwgUEMsIDFdLCBkc3QKK2VuZAorCiBtYWNy
byBnZXRPcGVyYW5kV2lkZTE2SlMob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkKICAgICBs
b2FkaHNpIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRleCAqIDIgKyBP
cGNvZGVJRFdpZGUxNlNpemVKU1tQQiwgUEMsIDFdLCBkc3QKIGVuZAogCittYWNybyBnZXRPcGVy
YW5kV2lkZTE2V2FzbShvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQorICAgIGxvYWRoc2kg
Y29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogMiArIE9wY29kZUlE
V2lkZTE2U2l6ZVdhc21bUEIsIFBDLCAxXSwgZHN0CitlbmQKKwogbWFjcm8gZ2V0dU9wZXJhbmRX
aWRlMzJKUyhvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQogICAgIGxvYWRpIGNvbnN0ZXhw
ciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRleCAqIDQgKyBPcGNvZGVJRFdpZGUzMlNp
emVKU1tQQiwgUEMsIDFdLCBkc3QKIGVuZAogCittYWNybyBnZXR1T3BlcmFuZFdpZGUzMldhc20o
b3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkKKyAgICBsb2FkaSBjb25zdGV4cHIgJW9wY29k
ZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiA0ICsgT3Bjb2RlSURXaWRlMzJTaXplV2FzbVtQ
QiwgUEMsIDFdLCBkc3QKK2VuZAorCiBtYWNybyBnZXRPcGVyYW5kV2lkZTMySlMob3Bjb2RlU3Ry
dWN0LCBmaWVsZE5hbWUsIGRzdCkKICAgICBsb2FkaXMgY29uc3RleHByICVvcGNvZGVTdHJ1Y3Ql
XyVmaWVsZE5hbWUlX2luZGV4ICogNCArIE9wY29kZUlEV2lkZTMyU2l6ZUpTW1BCLCBQQywgMV0s
IGRzdAogZW5kCiAKK21hY3JvIGdldE9wZXJhbmRXaWRlMzJXYXNtKG9wY29kZVN0cnVjdCwgZmll
bGROYW1lLCBkc3QpCisgICAgbG9hZGlzIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGRO
YW1lJV9pbmRleCAqIDQgKyBPcGNvZGVJRFdpZGUzMlNpemVXYXNtW1BCLCBQQywgMV0sIGRzdAor
ZW5kCisKIG1hY3JvIG1ha2VSZXR1cm4oZ2V0LCBkaXNwYXRjaCwgZm4pCiAgICAgZm4obWFjcm8o
dGFnLCBwYXlsb2FkKQogICAgICAgICBtb3ZlIHRhZywgdDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseS5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvV2ViQXNzZW1ibHkuYXNtCmluZGV4IDcxMzVmNGY2ZmMyMGNiMzllODViYWJjMWQx
Y2YxZWFiNThiNjJiZDYuLjNmYmY3MDA0ZThlMmY0NmUxNGI2OWEwYzJhNDFhZDE5ZTMyZTg3YWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseS5hc20K
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5LmFzbQpAQCAtMzEs
NTYgKzMxLDgwIEBAIGlmIEhBVkVfRkFTVF9UTFMKIGVuZAogCiBpZiBYODZfNjQKLSAgICBjb25z
dCBOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgPSA2CisgICAgY29uc3QgTnVtYmVyT2ZXYXNtQXJn
dW1lbnRKU1JzID0gNgogZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKLSAgICBjb25z
dCBOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgPSA4CisgICAgY29uc3QgTnVtYmVyT2ZXYXNtQXJn
dW1lbnRKU1JzID0gOAorZWxzaWYgQVJNdjcKKyAgICBjb25zdCBOdW1iZXJPZldhc21Bcmd1bWVu
dEpTUnMgPSAyCiBlbHNlCiAgICAgZXJyb3IKIGVuZAorCiBjb25zdCBOdW1iZXJPZldhc21Bcmd1
bWVudEZQUnMgPSA4Ci1jb25zdCBOdW1iZXJPZldhc21Bcmd1bWVudHMgPSBOdW1iZXJPZldhc21B
cmd1bWVudEdQUnMgKyBOdW1iZXJPZldhc21Bcmd1bWVudEZQUnMKKworY29uc3QgTnVtYmVyT2ZX
YXNtQXJndW1lbnRzID0gTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgTnVtYmVyT2ZXYXNtQXJn
dW1lbnRGUFJzCiAKICMgQWxsIGNhbGxlZSBzYXZlcyBtdXN0IG1hdGNoIHRoZSBkZWZpbml0aW9u
IGluIFdhc21DYWxsZWUuY3BwCiAKICMgVGhlc2UgbXVzdCBtYXRjaCB0aGUgZGVmaW5pdGlvbiBp
biBXYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwCi1jb25zdCB3YXNtSW5zdGFuY2UgPSBjc3IwCi1j
b25zdCBtZW1vcnlCYXNlID0gY3NyMwotY29uc3QgYm91bmRzQ2hlY2tpbmdTaXplID0gY3NyNAor
aWYgWDg2XzY0IG9yIEFSTTY0IG9yIEFSTTY0RQorICAgIGNvbnN0IHdhc21JbnN0YW5jZSA9IGNz
cjAKKyAgICBjb25zdCBtZW1vcnlCYXNlID0gY3NyMworICAgIGNvbnN0IGJvdW5kc0NoZWNraW5n
U2l6ZSA9IGNzcjQKK2Vsc2lmIEFSTXY3CisgICAgY29uc3Qgd2FzbUluc3RhbmNlID0gY3NyMAor
ICAgIGNvbnN0IG1lbW9yeUJhc2UgPSBpbnZhbGlkR1BSCisgICAgY29uc3QgYm91bmRzQ2hlY2tp
bmdTaXplID0gaW52YWxpZEdQUgorZWxzZQorICAgIGVycm9yCitlbmQKIAogIyBUaGlzIG11c3Qg
bWF0Y2ggdGhlIGRlZmluaXRpb24gaW4gTG93TGV2ZWxJbnRlcnByZXRlci5hc20KIGlmIFg4Nl82
NAogICAgIGNvbnN0IFBCID0gY3NyMgogZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQK
ICAgICBjb25zdCBQQiA9IGNzcjcKK2Vsc2lmIEFSTXY3CisgICAgY29uc3QgUEIgPSBjc3IxCiBl
bHNlCiAgICAgZXJyb3IKIGVuZAogCi1tYWNybyBmb3JFYWNoQXJndW1lbnRHUFIoZm4pCi0gICAg
Zm4oMCAqIDgsIHdhMCkKLSAgICBmbigxICogOCwgd2ExKQotICAgIGZuKDIgKiA4LCB3YTIpCi0g
ICAgZm4oMyAqIDgsIHdhMykKLSAgICBmbig0ICogOCwgd2E0KQotICAgIGZuKDUgKiA4LCB3YTUp
Ci0gICAgaWYgQVJNNjQgb3IgQVJNNjRFCi0gICAgICAgIGZuKDYgKiA4LCB3YTYpCi0gICAgICAg
IGZuKDcgKiA4LCB3YTcpCisjIEhlbHBlciBtYWNyb3MKKworIyBPbiBKU1ZBTFVFNjQsIGVhY2gg
NjQtYml0IGFyZ3VtZW50IEdQUiBob2xkcyBvbmUgd2hvbGUgV2FzbSB2YWx1ZS4KKyMgT24gSlNW
QUxVRTMyXzY0LCBhIGNvbnNlY3V0aXZlIHBhaXIgb2YgZXZlbi9vZGQgbnVtYmVyZWQgR1BScyBo
b2xkIGEgc2luZ2xlCisjIFdhc20gdmFsdWUgKGV2ZW4gaWYgdGhhdCB2YWx1ZSBpcyBpMzIvZjMy
LCB0aGUgb2RkIG51bWJlcmVkIEdQUiBob2xkcyB0aGUKKyMgbW9yZSBzaWduaWZpY2FudCB3b3Jk
KS4KK21hY3JvIGZvckVhY2hBcmd1bWVudEpTUihmbikKKyAgICBpZiBKU1ZBTFVFNjQKKyAgICAg
ICAgZm4oMCAqIDgsIHdhMCkKKyAgICAgICAgZm4oMSAqIDgsIHdhMSkKKyAgICAgICAgZm4oMiAq
IDgsIHdhMikKKyAgICAgICAgZm4oMyAqIDgsIHdhMykKKyAgICAgICAgZm4oNCAqIDgsIHdhNCkK
KyAgICAgICAgZm4oNSAqIDgsIHdhNSkKKyAgICAgICAgaWYgQVJNNjQgb3IgQVJNNjRFCisgICAg
ICAgICAgICBmbig2ICogOCwgd2E2KQorICAgICAgICAgICAgZm4oNyAqIDgsIHdhNykKKyAgICAg
ICAgZW5kCisgICAgZWxzZQorICAgICAgICBmbigwICogOCwgd2ExLCB3YTApCisgICAgICAgIGZu
KDEgKiA4LCB3YTMsIHdhMikKICAgICBlbmQKIGVuZAogCiBtYWNybyBmb3JFYWNoQXJndW1lbnRG
UFIoZm4pCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDApICogOCwgd2ZhMCkK
LSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgMSkgKiA4LCB3ZmExKQotICAgIGZu
KChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyAyKSAqIDgsIHdmYTIpCi0gICAgZm4oKE51bWJl
ck9mV2FzbUFyZ3VtZW50R1BScyArIDMpICogOCwgd2ZhMykKLSAgICBmbigoTnVtYmVyT2ZXYXNt
QXJndW1lbnRHUFJzICsgNCkgKiA4LCB3ZmE0KQotICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVu
dEdQUnMgKyA1KSAqIDgsIHdmYTUpCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyAr
IDYpICogOCwgd2ZhNikKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgNykgKiA4
LCB3ZmE3KQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyAwKSAqIDgsIHdmYTAp
CisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIDEpICogOCwgd2ZhMSkKKyAgICBm
bigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgMikgKiA4LCB3ZmEyKQorICAgIGZuKChOdW1i
ZXJPZldhc21Bcmd1bWVudEpTUnMgKyAzKSAqIDgsIHdmYTMpCisgICAgZm4oKE51bWJlck9mV2Fz
bUFyZ3VtZW50SlNScyArIDQpICogOCwgd2ZhNCkKKyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1l
bnRKU1JzICsgNSkgKiA4LCB3ZmE1KQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMg
KyA2KSAqIDgsIHdmYTYpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIDcpICog
OCwgd2ZhNykKIGVuZAogCi0jIEhlbHBlciBtYWNyb3MKICMgRklYTUU6IEV2ZW50dWFsbHkgdGhp
cyBzaG91bGQgYmUgdW5pZmllZCB3aXRoIHRoZSBKUyB2ZXJzaW9ucwogIyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjU2CiAKQEAgLTEzMCwxMCArMTU0LDE1IEBA
IG1hY3JvIGNoZWNrU3dpdGNoVG9KSVRGb3JQcm9sb2d1ZShjb2RlQmxvY2tSZWdpc3RlcikKICAg
ICAgICAgICAgIGJ0cHogcjAsIC5yZWNvdmVyCiAgICAgICAgICAgICBtb3ZlIHIwLCB3czAKIAot
ICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50R1BSKG1hY3JvIChvZmZzZXQsIGdwcikKK2lmIEpT
VkFMVUU2NAorICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdw
cikKICAgICAgICAgICAgICAgICBsb2FkcSAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFz
VmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXSwgZ3ByCiAgICAgICAgICAgICBlbmQpCi0KK2Vsc2UK
KyAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHJNc3csIGdw
THN3KQorICAgICAgICAgICAgICAgIGxvYWQyaWEgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3Bh
Y2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0sIGdwTHN3LCBncHJNc3cKKyAgICAgICAgICAg
IGVuZCkKK2VuZAogICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50RlBSKG1hY3JvIChvZmZzZXQs
IGZwcikKICAgICAgICAgICAgICAgICBsb2FkZCAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFj
ZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXSwgZnByCiAgICAgICAgICAgICBlbmQpCkBAIC0y
MDEsNiArMjMwLDkgQEAgbWFjcm8gcHJlc2VydmVDYWxsZWVTYXZlc1VzZWRCeVdhc20oKQogICAg
IGVsc2lmIFg4Nl82NCBvciBSSVNDVjY0CiAgICAgICAgIHN0b3JlcCBQQiwgLTB4OFtjZnJdCiAg
ICAgICAgIHN0b3JlcCB3YXNtSW5zdGFuY2UsIC0weDEwW2Nmcl0KKyAgICBlbHNpZiBBUk12Nwor
ICAgICAgICBzdG9yZXAgUEIsIC00W2Nmcl0KKyAgICAgICAgc3RvcmVwIHdhc21JbnN0YW5jZSwg
LThbY2ZyXQogICAgIGVsc2UKICAgICAgICAgZXJyb3IKICAgICBlbmQKQEAgLTIxNSw2ICsyNDcs
OSBAQCBtYWNybyByZXN0b3JlQ2FsbGVlU2F2ZXNVc2VkQnlXYXNtKCkKICAgICBlbHNpZiBYODZf
NjQgb3IgUklTQ1Y2NAogICAgICAgICBsb2FkcCAtMHg4W2Nmcl0sIFBCCiAgICAgICAgIGxvYWRw
IC0weDEwW2Nmcl0sIHdhc21JbnN0YW5jZQorICAgIGVsc2lmIEFSTXY3CisgICAgICAgIGxvYWRw
IC00W2Nmcl0sIFBCCisgICAgICAgIGxvYWRwIC04W2Nmcl0sIHdhc21JbnN0YW5jZQogICAgIGVs
c2UKICAgICAgICAgZXJyb3IKICAgICBlbmQKQEAgLTI0NSwxMCArMjgwLDEyIEBAIGVuZAogZW5k
CiAKIG1hY3JvIHJlbG9hZE1lbW9yeVJlZ2lzdGVyc0Zyb21JbnN0YW5jZShpbnN0YW5jZSwgc2Ny
YXRjaDEsIHNjcmF0Y2gyKQoraWYgbm90IEFSTXY3CiAgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6
Om1fY2FjaGVkTWVtb3J5W2luc3RhbmNlXSwgbWVtb3J5QmFzZQogICAgIGxvYWRwIFdhc206Oklu
c3RhbmNlOjptX2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZVtpbnN0YW5jZV0sIGJvdW5kc0NoZWNr
aW5nU2l6ZQogICAgIGNhZ2VkUHJpbWl0aXZlTWF5QmVOdWxsKG1lbW9yeUJhc2UsIGJvdW5kc0No
ZWNraW5nU2l6ZSwgc2NyYXRjaDEsIHNjcmF0Y2gyKSAjIElmIGJvdW5kc0NoZWNraW5nU2l6ZSBp
cyAwLCBwb2ludGVyIGNhbiBiZSBhIG51bGxwdHIuCiBlbmQKK2VuZAogCiBtYWNybyB0aHJvd0V4
Y2VwdGlvbihleGNlcHRpb24pCiAgICAgc3RvcmVpIGNvbnN0ZXhwciBXYXNtOjpFeGNlcHRpb25U
eXBlOjolZXhjZXB0aW9uJSwgQXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgKyBQYXlsb2FkT2Zm
c2V0W2Nmcl0KQEAgLTI4MCw4ICszMTcsMTMgQEAgbWFjcm8gcmVzdG9yZVN0YWNrUG9pbnRlckFm
dGVyQ2FsbCgpCiAgICAgbG9hZGkgV2FzbTo6TExJbnRDYWxsZWU6Om1fbnVtQ2FsbGVlTG9jYWxz
W3dzMV0sIHdzMQogICAgIGxzaGlmdHAgMywgd3MxCiAgICAgYWRkcCBtYXhGcmFtZUV4dGVudEZv
clNsb3dQYXRoQ2FsbCwgd3MxCitpZiBBUk12NworICAgIHN1YnAgY2ZyLCB3czEsIHdzMQorICAg
IG1vdmUgd3MxLCBzcAorZWxzZQogICAgIHN1YnAgY2ZyLCB3czEsIHNwCiBlbmQKK2VuZAogCiBt
YWNybyB3YXNtUHJvbG9ndWUoY29kZUJsb2NrR2V0dGVyLCBjb2RlQmxvY2tTZXR0ZXIsIGxvYWRX
YXNtSW5zdGFuY2UpCiAgICAgIyBTZXQgdXAgdGhlIGNhbGwgZnJhbWUgYW5kIGNoZWNrIGlmIHdl
IHNob3VsZCBPU1IuCkBAIC0yOTIsNiArMzM0LDkgQEAgbWFjcm8gd2FzbVByb2xvZ3VlKGNvZGVC
bG9ja0dldHRlciwgY29kZUJsb2NrU2V0dGVyLCBsb2FkV2FzbUluc3RhbmNlKQogCiAgICAgbG9h
ZHAgV2FzbTo6SW5zdGFuY2U6Om1fb3duZXJbd2FzbUluc3RhbmNlXSwgd3MwCiAgICAgc3RvcmVw
IHdzMCwgVGhpc0FyZ3VtZW50T2Zmc2V0W2Nmcl0KK2lmIG5vdCBKU1ZBTFVFNjQKKyAgICBzdG9y
ZWkgQ2VsbFRhZywgVGFnT2Zmc2V0ICsgVGhpc0FyZ3VtZW50T2Zmc2V0W2Nmcl0KK2VuZAogCiAg
ICAgY29kZUJsb2NrR2V0dGVyKHdzMCkKICAgICBjb2RlQmxvY2tTZXR0ZXIod3MwKQpAQCAtMzAy
LDYgKzM0NywxMCBAQCBtYWNybyB3YXNtUHJvbG9ndWUoY29kZUJsb2NrR2V0dGVyLCBjb2RlQmxv
Y2tTZXR0ZXIsIGxvYWRXYXNtSW5zdGFuY2UpCiAgICAgYWRkcCBtYXhGcmFtZUV4dGVudEZvclNs
b3dQYXRoQ2FsbCwgd3MxCiAgICAgc3VicCBjZnIsIHdzMSwgd3MxCiAKK2lmIG5vdCBKU1ZBTFVF
NjQKKyAgICBzdWJwIDgsIHdzMSAjIGFsaWduIHN0YWNrIHBvaW50ZXIKK2VuZAorCiAgICAgYnBh
IHdzMSwgY2ZyLCAuc3RhY2tPdmVyZmxvdwogICAgIGJwYmVxIFdhc206Okluc3RhbmNlOjptX2Nh
Y2hlZFN0YWNrTGltaXRbd2FzbUluc3RhbmNlXSwgd3MxLCAuc3RhY2tIZWlnaHRPSwogCkBAIC0z
MTEsMTAgKzM2MCwxNSBAQCBtYWNybyB3YXNtUHJvbG9ndWUoY29kZUJsb2NrR2V0dGVyLCBjb2Rl
QmxvY2tTZXR0ZXIsIGxvYWRXYXNtSW5zdGFuY2UpCiAuc3RhY2tIZWlnaHRPSzoKICAgICBtb3Zl
IHdzMSwgc3AKIAotICAgIGZvckVhY2hBcmd1bWVudEdQUihtYWNybyAob2Zmc2V0LCBncHIpCitp
ZiBKU1ZBTFVFNjQKKyAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByKQog
ICAgICAgICBzdG9yZXEgZ3ByLCAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVh
bFJlZ2lzdGVycyAqIDhbY2ZyXQogICAgIGVuZCkKLQorZWxzZQorICAgIGZvckVhY2hBcmd1bWVu
dEpTUihtYWNybyAob2Zmc2V0LCBncHJNc3csIGdwTHN3KQorICAgICAgICBzdG9yZTJpYSBncExz
dywgZ3ByTXN3LCAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVy
cyAqIDhbY2ZyXQorICAgIGVuZCkKK2VuZAogICAgIGZvckVhY2hBcmd1bWVudEZQUihtYWNybyAo
b2Zmc2V0LCBmcHIpCiAgICAgICAgIHN0b3JlZCBmcHIsIC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2
ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdCiAgICAgZW5kKQpAQCAtMzI4LDE0ICsz
ODIsMTYgQEAgbWFjcm8gd2FzbVByb2xvZ3VlKGNvZGVCbG9ja0dldHRlciwgY29kZUJsb2NrU2V0
dGVyLCBsb2FkV2FzbUluc3RhbmNlKQogICAgIGxvYWRpIFdhc206OkxMSW50Q2FsbGVlOjptX251
bVZhcnNbd3MwXSwgd3MxCiAgICAgc3ViaSBOdW1iZXJPZldhc21Bcmd1bWVudHMgKyBDYWxsZWVT
YXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMsIHdzMQogICAgIGJ0aXogd3MxLCAuemVyb0luaXRp
YWxpemVMb2NhbHNEb25lCisgICAgbHNoaWZ0aSAzLCB3czEKICAgICBuZWdpIHdzMQoraWYgSlNW
QUxVRTY0CiAgICAgc3hpMnEgd3MxLCB3czEKK2VuZAogICAgIGxlYXAgKE51bWJlck9mV2FzbUFy
Z3VtZW50cyArIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyArIDEpICogLThbY2Zy
XSwgd3MwCiAuemVyb0luaXRpYWxpemVMb2NhbHNMb29wOgotICAgIGFkZHEgMSwgd3MxCi0gICAg
c3RvcmVxIDAsIFt3czAsIHdzMSwgOF0KLSAgICBidHF6IHdzMSwgLnplcm9Jbml0aWFsaXplTG9j
YWxzRG9uZQotICAgIGptcCAuemVyb0luaXRpYWxpemVMb2NhbHNMb29wCisgICAgYWRkcCBQdHJT
aXplLCB3czEKKyAgICBzdG9yZXAgMCwgW3dzMCwgd3MxXQorICAgIGJ0cG56IHdzMSwgLnplcm9J
bml0aWFsaXplTG9jYWxzTG9vcAogLnplcm9Jbml0aWFsaXplTG9jYWxzRG9uZToKIGVuZAogCkBA
IC0zNzQsNiArNDMwLDI0IEBAIG1hY3JvIHNsb3dXYXNtT3Aob3Bjb2RlTmFtZSkKICAgICB1bnBy
ZWZpeGVkU2xvd1dhc21PcCh3YXNtXyVvcGNvZGVOYW1lJSkKIGVuZAogCisjIEZsb2F0IHRvIGZs
b2F0IHJvdW5kaW5nIG9wcworbWFjcm8gd2FzbVJvdW5kaW5nT3Aob3Bjb2RlTmFtZSwgb3Bjb2Rl
U3RydWN0LCBmbikKK2lmIEpTVkFMVUU2NCAjIEFsbCBjdXJyZW50IDY0LWJpdCBwbGF0Zm9ybXMg
aGF2ZSBpbnN0cnVjdGlvbnMgZm9yIHRoZXNlCisgICAgd2FzbU9wKG9wY29kZU5hbWUsIG9wY29k
ZVN0cnVjdCwgZm4pCitlbHNlCisgICAgc2xvd1dhc21PcChvcGNvZGVOYW1lKQorZW5kCitlbmQK
KworIyBpNjQgKHNpZ25lZC91bnNpZ25lZCkgdG8gZjMyIG9yIGY2NAorbWFjcm8gd2FzbUk2NFRv
Rk9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCitpZiBKU1ZBTFVFNjQgIyBBbGwgY3Vy
cmVudCA2NC1iaXQgcGxhdGZvcm1zIGhhdmUgaW5zdHJ1Y3Rpb25zIGZvciB0aGVzZQorICAgIHdh
c21PcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGZuKQorZWxzZQorICAgIHNsb3dXYXNtT3Ao
b3Bjb2RlTmFtZSkKK2VuZAorZW5kCisKICMgTWFjcm8gdmVyc2lvbiBvZiBsb2FkIG9wZXJhdGlv
bnM6IG1sb2FkW3N1ZmZpeF0KICMgbG9hZHMgZmllbGQgZnJvbSB0aGUgaW5zdHJ1Y3Rpb24gc3Ry
ZWFtIGFuZCBwZXJmb3JtcyBsb2FkW3N1ZmZpeF0gdG8gZHN0CiBtYWNybyBmaXJzdENvbnN0YW50
UmVnaXN0ZXJJbmRleChjdHgsIGZuKQpAQCAtMzk2LDEyICs0NzAsMjEgQEAgbWFjcm8gbG9hZENv
bnN0YW50T3JWYXJpYWJsZShjdHgsIGluZGV4LCBsb2FkZXIpCiAgICAgZW5kKQogZW5kCiAKK2lm
IEpTVkFMVUU2NAogbWFjcm8gbWxvYWRxKGN0eCwgZmllbGQsIGRzdCkKICAgICB3Z2V0cyhjdHgs
IGZpZWxkLCBkc3QpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShjdHgsIGRzdCwgbWFjcm8g
KGZyb20pCiAgICAgICAgIGxvYWRxIGZyb20sIGRzdAogICAgIGVuZCkKIGVuZAorZWxzZQorbWFj
cm8gbWxvYWQyaShjdHgsIGZpZWxkLCBkc3RNc3csIGRzdExzdykKKyAgICB3Z2V0cyhjdHgsIGZp
ZWxkLCBkc3RMc3cpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShjdHgsIGRzdExzdywgbWFj
cm8gKGZyb20pCisgICAgICAgIGxvYWQyaWEgZnJvbSwgZHN0THN3LCBkc3RNc3cKKyAgICBlbmQp
CitlbmQKK2VuZAogCiBtYWNybyBtbG9hZGkoY3R4LCBmaWVsZCwgZHN0KQogICAgIHdnZXRzKGN0
eCwgZmllbGQsIGRzdCkKQEAgLTQzMywxMSArNTE2LDE5IEBAIGVuZAogCiAjIFR5cGVkIHJldHVy
bnMKIAoraWYgSlNWQUxVRTY0CiBtYWNybyByZXR1cm5xKGN0eCwgdmFsdWUpCiAgICAgd2dldHMo
Y3R4LCBtX2RzdCwgdDUpCiAgICAgc3RvcmVxIHZhbHVlLCBbY2ZyLCB0NSwgOF0KICAgICBkaXNw
YXRjaChjdHgpCiBlbmQKK2Vsc2UKK21hY3JvIHJldHVybjJpKGN0eCwgbXN3LCBsc3cpCisgICAg
d2dldHMoY3R4LCBtX2RzdCwgdDUpCisgICAgc3RvcmUyaWEgbHN3LCBtc3csIFtjZnIsIHQ1LCA4
XQorICAgIGRpc3BhdGNoKGN0eCkKK2VuZAorZW5kCiAKIG1hY3JvIHJldHVybmkoY3R4LCB2YWx1
ZSkKICAgICB3Z2V0cyhjdHgsIG1fZHN0LCB0NSkKQEAgLTUxMCw3ICs2MDEsNyBAQCBtYWNybyB3
YXNtQ29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVyKQogZW5kCiAKIG9wKHdhc21fZnVuY3Rp
b25fcHJvbG9ndWUsIG1hY3JvICgpCi0gICAgaWYgbm90IFdFQkFTU0VNQkxZIG9yIG5vdCBKU1ZB
TFVFNjQgb3IgQ19MT09QIG9yIENfTE9PUF9XSU4KKyAgICBpZiBub3QgV0VCQVNTRU1CTFkgb3Ig
Q19MT09QIG9yIENfTE9PUF9XSU4KICAgICAgICAgZXJyb3IKICAgICBlbmQKIApAQCAtNTE5LDcg
KzYxMCw3IEBAIG9wKHdhc21fZnVuY3Rpb25fcHJvbG9ndWUsIG1hY3JvICgpCiBlbmQpCiAKIG9w
KHdhc21fZnVuY3Rpb25fcHJvbG9ndWVfbm9fdGxzLCBtYWNybyAoKQotICAgIGlmIG5vdCBXRUJB
U1NFTUJMWSBvciBub3QgSlNWQUxVRTY0IG9yIENfTE9PUCBvciBDX0xPT1BfV0lOCisgICAgaWYg
bm90IFdFQkFTU0VNQkxZIG9yIENfTE9PUCBvciBDX0xPT1BfV0lOCiAgICAgICAgIGVycm9yCiAg
ICAgZW5kCiAKQEAgLTYyMSwxNiArNzEyLDIzIEBAIF93YXNtX2VudGVyOgogICAgIGNoZWNrU3Rh
Y2tQb2ludGVyQWxpZ25tZW50KHQyLCAweGRlYWQwMGUxKQogICAgIGxvYWRwIENvZGVCbG9ja1tj
ZnJdLCB0MiAgICAgICAgICAgICAgICAvLyB0MjxDb2RlQmxvY2s+ID0gY2ZyLkNvZGVCbG9jawog
ICAgIGxvYWRpIFdhc206OkxMSW50Q2FsbGVlOjptX251bVZhcnNbdDJdLCB0MiAgICAgIC8vIHQy
PHNpemVfdD4gPSB0MjxDb2RlQmxvY2s+Lm1fbnVtVmFycwotICAgIHN1YnEgQ2FsbGVlU2F2ZVNw
YWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICsgTnVtYmVyT2ZXYXNtQXJndW1lbnRzLCB0MgorICAgIHN1
YmkgQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICsgTnVtYmVyT2ZXYXNtQXJndW1l
bnRzLCB0MgogICAgIGJ0aXogdDIsIC5vcEVudGVyRG9uZQotICAgIG1vdmUgY2ZyLCB0MQotICAg
IHN1YnEgQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOCArIE51bWJlck9mV2Fz
bUFyZ3VtZW50cyAqIDgsIHQxCisgICAgc3VicCBjZnIsIChDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1
YWxSZWdpc3RlcnMgKyBOdW1iZXJPZldhc21Bcmd1bWVudHMpICogU2xvdFNpemUsIHQxCisgICAg
bHNoaWZ0aSAzLCB0MgogICAgIG5lZ2kgdDIKK2lmIEpTVkFMVUU2NAogICAgIHN4aTJxIHQyLCB0
MgorZW5kCisgICAgbW92ZSAwLCB0NgogLm9wRW50ZXJMb29wOgotICAgIHN0b3JlcSAwLCBbdDEs
IHQyLCA4XQotICAgIGFkZHEgMSwgdDIKLSAgICBidHFueiB0MiwgLm9wRW50ZXJMb29wCitpZiBK
U1ZBTFVFNjQKKyAgICBzdG9yZXEgdDYsIFt0MSwgdDJdCitlbHNlCisgICAgc3RvcmUyaWEgdDYs
IHQ2LCBbdDEsIHQyXQorZW5kCisgICAgYWRkcCA4LCB0MgorICAgIGJ0cG56IHQyLCAub3BFbnRl
ckxvb3AKIC5vcEVudGVyRG9uZToKICAgICB3YXNtRGlzcGF0Y2hJbmRpcmVjdCgxKQogCkBAIC02
NDMsMTEgKzc0MSw2IEBAIHdhc21PcChsb29wX2hpbnQsIFdhc21Mb29wSGludCwgbWFjcm8oY3R4
KQogICAgIGRpc3BhdGNoKGN0eCkKIGVuZCkKIAotd2FzbU9wKG1vdiwgV2FzbU1vdiwgbWFjcm8o
Y3R4KQotICAgIG1sb2FkcShjdHgsIG1fc3JjLCB0MCkKLSAgICByZXR1cm5xKGN0eCwgdDApCi1l
bmQpCi0KIHdhc21PcChqdHJ1ZSwgV2FzbUp0cnVlLCBtYWNybyhjdHgpCiAgICAgbWxvYWRpKGN0
eCwgbV9jb25kaXRpb24sIHQwKQogICAgIGJ0aXogdDAsIC5jb250aW51ZQpAQCAtNjk5LDExICs3
OTIsMTcgQEAgZW5kKQogCiB1bnByZWZpeGVkV2FzbU9wKHdhc21fcmV0LCBXYXNtUmV0LCBtYWNy
byhjdHgpCiAgICAgY2hlY2tTd2l0Y2hUb0pJVEZvckVwaWxvZ3VlKCkKLSAgICBmb3JFYWNoQXJn
dW1lbnRHUFIobWFjcm8gKG9mZnNldCwgZ3ByKQoraWYgSlNWQUxVRTY0CisgICAgZm9yRWFjaEFy
Z3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwcikKICAgICAgICAgbG9hZHEgLW9mZnNldCAtIDgg
LSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0sIGdwcgogICAgIGVu
ZCkKK2Vsc2UKKyAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3LCBn
cExzdykKKyAgICAgICAgbG9hZDJpYSAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmly
dHVhbFJlZ2lzdGVycyAqIDhbY2ZyXSwgZ3BMc3csIGdwck1zdworICAgIGVuZCkKK2VuZAogICAg
IGZvckVhY2hBcmd1bWVudEZQUihtYWNybyAob2Zmc2V0LCBmcHIpCi0gICAgICAgIGxvYWRkIC1v
ZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBm
cHIKKyAgICAgICAgbG9hZGQgLW9mZnNldCAtICA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFs
UmVnaXN0ZXJzICogOFtjZnJdLCBmcHIKICAgICBlbmQpCiAgICAgZG9SZXR1cm4oKQogZW5kKQpA
QCAtNzE5LDQ0ICs4MTgsNiBAQCB3YXNtT3AocmV0X3ZvaWQsIFdhc21SZXRWb2lkLCBtYWNybyhj
dHgpCiAgICAgZG9SZXR1cm4oKQogZW5kKQogCi13YXNtT3AocmVmX2lzX251bGwsIFdhc21SZWZJ
c051bGwsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHAoY3R4LCBtX3JlZiwgdDApCi0gICAgY3FlcSB0
MCwgVmFsdWVOdWxsLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGdl
dF9nbG9iYWwsIFdhc21HZXRHbG9iYWwsIG1hY3JvKGN0eCkKLSAgICBsb2FkcCBXYXNtOjpJbnN0
YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCi0gICAgd2dldHUoY3R4LCBtX2dsb2Jh
bEluZGV4LCB0MSkKLSAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKLSAgICByZXR1cm5xKGN0eCwg
dDApCi1lbmQpCi0KLXdhc21PcChzZXRfZ2xvYmFsLCBXYXNtU2V0R2xvYmFsLCBtYWNybyhjdHgp
Ci0gICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAot
ICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCi0gICAgbWxvYWRxKGN0eCwgbV92YWx1
ZSwgdDIpCi0gICAgc3RvcmVxIHQyLCBbdDAsIHQxLCA4XQotICAgIGRpc3BhdGNoKGN0eCkKLWVu
ZCkKLQotd2FzbU9wKGdldF9nbG9iYWxfcG9ydGFibGVfYmluZGluZywgV2FzbUdldEdsb2JhbFBv
cnRhYmxlQmluZGluZywgbWFjcm8oY3R4KQotICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2ds
b2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKLSAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQx
KQotICAgIGxvYWRxIFt0MCwgdDEsIDhdLCB0MAotICAgIGxvYWRxIFt0MF0sIHQwCi0gICAgcmV0
dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3Aoc2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5n
LCBXYXNtU2V0R2xvYmFsUG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCi0gICAgbG9hZHAgV2Fz
bTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAotICAgIHdnZXR1KGN0eCwg
bV9nbG9iYWxJbmRleCwgdDEpCi0gICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAgbG9h
ZHEgW3QwLCB0MSwgOF0sIHQwCi0gICAgc3RvcmVxIHQyLCBbdDBdCi0gICAgZGlzcGF0Y2goY3R4
KQotZW5kKQotCiBtYWNybyBzbG93UGF0aEZvcldhc21DYWxsKGN0eCwgc2xvd1BhdGgsIHN0b3Jl
V2FzbUluc3RhbmNlKQogICAgIGNhbGxXYXNtQ2FsbFNsb3dQYXRoKAogICAgICAgICBzbG93UGF0
aCwKQEAgLTc3MSw3ICs4MzIsMTIgQEAgbWFjcm8gc2xvd1BhdGhGb3JXYXNtQ2FsbChjdHgsIHNs
b3dQYXRoLCBzdG9yZVdhc21JbnN0YW5jZSkKIAogICAgICAgICAgICAgd2dldHUoY3R4LCBtX3N0
YWNrT2Zmc2V0LCB3czEpCiAgICAgICAgICAgICBsc2hpZnRpIDMsIHdzMQoraWYgQVJNdjcKKyAg
ICAgICAgICAgIHN1YnAgY2ZyLCB3czEsIHdzMQorICAgICAgICAgICAgbW92ZSB3czEsIHNwCitl
bHNlCiAgICAgICAgICAgICBzdWJwIGNmciwgd3MxLCBzcAorZW5kCiAKICAgICAgICAgICAgIHdn
ZXR1KGN0eCwgbV9udW1iZXJPZlN0YWNrQXJncywgd3MxKQogCkBAIC03ODIsMTAgKzg0OCwxNSBA
QCBtYWNybyBzbG93UGF0aEZvcldhc21DYWxsKGN0eCwgc2xvd1BhdGgsIHN0b3JlV2FzbUluc3Rh
bmNlKQogICAgICAgICAgICAgcmVsb2FkTWVtb3J5UmVnaXN0ZXJzRnJvbUluc3RhbmNlKHRhcmdl
dFdhc21JbnN0YW5jZSwgd2EwLCB3YTEpCiAKICAgICAgICAgICAgICMgTG9hZCByZWdpc3RlcnMg
ZnJvbSBzdGFjawotICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50R1BSKG1hY3JvIChvZmZzZXQs
IGdwcikKK2lmIEpTVkFMVUU2NAorICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3Jv
IChvZmZzZXQsIGdwcikKICAgICAgICAgICAgICAgICBsb2FkcSBDYWxsRnJhbWVIZWFkZXJTaXpl
ICsgOCArIG9mZnNldFtzcCwgd3MxLCA4XSwgZ3ByCiAgICAgICAgICAgICBlbmQpCi0KK2Vsc2UK
KyAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHJNc3csIGdw
THN3KQorICAgICAgICAgICAgICAgIGxvYWQyaWEgQ2FsbEZyYW1lSGVhZGVyU2l6ZSArIDggKyBv
ZmZzZXRbc3AsIHdzMSwgOF0sIGdwTHN3LCBncHJNc3cKKyAgICAgICAgICAgIGVuZCkKK2VuZAog
ICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50RlBSKG1hY3JvIChvZmZzZXQsIGZwcikKICAgICAg
ICAgICAgICAgICBsb2FkZCBDYWxsRnJhbWVIZWFkZXJTaXplICsgOCArIG9mZnNldFtzcCwgd3Mx
LCA4XSwgZnByCiAgICAgICAgICAgICBlbmQpCkBAIC04MjgsNyArODk5LDExIEBAIG1hY3JvIHNs
b3dQYXRoRm9yV2FzbUNhbGwoY3R4LCBzbG93UGF0aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAKICAg
ICAgICAgICAgICMgV2UgbmVlZCB0byBzZXQgUEMgdG8gbG9hZCBpbmZvcm1hdGlvbiBmcm9tIHRo
ZSBpbnN0cnVjdGlvbiBzdHJlYW0sIGJ1dCB3ZQogICAgICAgICAgICAgIyBuZWVkIHRvIHByZXNl
cnZlIGl0cyBjdXJyZW50IHZhbHVlIHNpbmNlIGl0IG1pZ2h0IGNvbnRhaW4gYSByZXR1cm4gdmFs
dWUKK2lmIEFSTXY3CisgICAgICAgICAgICBwdXNoIFBDCitlbHNlCiAgICAgICAgICAgICBtb3Zl
IFBDLCBtZW1vcnlCYXNlCitlbmQKICAgICAgICAgICAgIG1vdmUgUEIsIHdhc21JbnN0YW5jZQog
ICAgICAgICAgICAgbG9hZGkgQXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgKyBUYWdPZmZzZXRb
Y2ZyXSwgUEMKICAgICAgICAgICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCBQQgpAQCAtODM3LDE3
ICs5MTIsMjggQEAgbWFjcm8gc2xvd1BhdGhGb3JXYXNtQ2FsbChjdHgsIHNsb3dQYXRoLCBzdG9y
ZVdhc21JbnN0YW5jZSkKICAgICAgICAgICAgIHdnZXR1KGN0eCwgbV9zdGFja09mZnNldCwgd3Mx
KQogICAgICAgICAgICAgbHNoaWZ0aSAzLCB3czEKICAgICAgICAgICAgIG5lZ2kgd3MxCitpZiBK
U1ZBTFVFNjQKICAgICAgICAgICAgIHN4aTJxIHdzMSwgd3MxCitlbmQKICAgICAgICAgICAgIGFk
ZHAgY2ZyLCB3czEKIAogICAgICAgICAgICAgIyBBcmd1bWVudCByZWdpc3RlcnMgYXJlIGFsc28g
cmV0dXJuIHJlZ2lzdGVycywgc28gdGhleSBtdXN0IGJlIHN0b3JlZCB0byB0aGUgc3RhY2sKICAg
ICAgICAgICAgICMgaW4gY2FzZSB0aGV5IGNvbnRhaW4gcmV0dXJuIHZhbHVlcy4KICAgICAgICAg
ICAgIHdnZXR1KGN0eCwgbV9udW1iZXJPZlN0YWNrQXJncywgd3MwKQoraWYgQVJNdjcKKyAgICAg
ICAgICAgIHBvcCBQQworZWxzZQogICAgICAgICAgICAgbW92ZSBtZW1vcnlCYXNlLCBQQwotICAg
ICAgICAgICAgZm9yRWFjaEFyZ3VtZW50R1BSKG1hY3JvIChvZmZzZXQsIGdwcikKK2VuZAoraWYg
SlNWQUxVRTY0CisgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwg
Z3ByKQogICAgICAgICAgICAgICAgIHN0b3JlcSBncHIsIENhbGxGcmFtZUhlYWRlclNpemUgKyA4
ICsgb2Zmc2V0W3dzMSwgd3MwLCA4XQogICAgICAgICAgICAgZW5kKQotCitlbHNlCisgICAgICAg
ICAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3LCBncExzdykKKyAg
ICAgICAgICAgICAgICBzdG9yZTJpYSBncExzdywgZ3ByTXN3LCBDYWxsRnJhbWVIZWFkZXJTaXpl
ICsgOCArIG9mZnNldFt3czEsIHdzMCwgOF0KKyAgICAgICAgICAgIGVuZCkKK2VuZAogICAgICAg
ICAgICAgZm9yRWFjaEFyZ3VtZW50RlBSKG1hY3JvIChvZmZzZXQsIGZwcikKICAgICAgICAgICAg
ICAgICBzdG9yZWQgZnByLCBDYWxsRnJhbWVIZWFkZXJTaXplICsgOCArIG9mZnNldFt3czEsIHdz
MCwgOF0KICAgICAgICAgICAgIGVuZCkKQEAgLTg5OCwxOTkgKzk4NCwzNiBAQCB3YXNtT3AoY3Vy
cmVudF9tZW1vcnksIFdhc21DdXJyZW50TWVtb3J5LCBtYWNybyhjdHgpCiAgICAgbG9hZHAgV2Fz
bTo6SW5zdGFuY2U6Om1fbWVtb3J5W3dhc21JbnN0YW5jZV0sIHQwCiAgICAgbG9hZHAgV2FzbTo6
TWVtb3J5OjptX2hhbmRsZVt0MF0sIHQwCiAgICAgbG9hZHAgV2FzbTo6TWVtb3J5SGFuZGxlOjpt
X3NpemVbdDBdLCB0MAotICAgIHVyc2hpZnRxIDE2LCB0MAorICAgIHVyc2hpZnRwIDE2LCB0MAor
aWYgSlNWQUxVRTY0CiAgICAgcmV0dXJucShjdHgsIHQwKQorZWxzZQorICAgIHJldHVybjJpKGN0
eCwgMCwgdDApCitlbmQKIGVuZCkKIAogd2FzbU9wKHNlbGVjdCwgV2FzbVNlbGVjdCwgbWFjcm8o
Y3R4KQogICAgIG1sb2FkaShjdHgsIG1fY29uZGl0aW9uLCB0MCkKICAgICBidGl6IHQwLCAuaXNa
ZXJvCitpZiBKU1ZBTFVFNjQKICAgICBtbG9hZHEoY3R4LCBtX25vblplcm8sIHQwKQogICAgIHJl
dHVybnEoY3R4LCB0MCkKIC5pc1plcm86CiAgICAgbWxvYWRxKGN0eCwgbV96ZXJvLCB0MCkKICAg
ICByZXR1cm5xKGN0eCwgdDApCitlbHNlCisgICAgbWxvYWQyaShjdHgsIG1fbm9uWmVybywgdDEs
IHQwKQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorLmlzWmVybzoKKyAgICBtbG9hZDJpKGN0
eCwgbV96ZXJvLCB0MSwgdDApCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQKIGVuZCkK
IAotIyB1c2VzIG9mZnNldCBhcyBzY3JhdGNoIGFuZCByZXR1cm5zIHJlc3VsdCBvbiBwb2ludGVy
Ci1tYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihjdHgsIHBvaW50ZXIsIG9mZnNldCwg
c2l6ZSkKLSAgICBsZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNldF0sIHQ1Ci0gICAgYnBiIHQ1
LCBib3VuZHNDaGVja2luZ1NpemUsIC5jb250aW51YXRpb24KLSAgICB0aHJvd0V4Y2VwdGlvbihP
dXRPZkJvdW5kc01lbW9yeUFjY2VzcykKLS5jb250aW51YXRpb246Ci0gICAgYWRkcCBtZW1vcnlC
YXNlLCBwb2ludGVyCi1lbmQKLQotbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRp
bmdPZmZzZXQoY3R4LCBwb2ludGVyLCBvZmZzZXQsIHNpemUpCi0gICAgbGVhcCBzaXplIC0gMVtw
b2ludGVyLCBvZmZzZXRdLCB0NQotICAgIGJwYiB0NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29u
dGludWF0aW9uCi0udGhyb3c6Ci0gICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlB
Y2Nlc3MpCi0uY29udGludWF0aW9uOgotICAgIGFkZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgotICAg
IGFkZHAgb2Zmc2V0LCBwb2ludGVyCi1lbmQKLQotbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBv
aW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCBwb2ludGVyLCBvZmZzZXQs
IHNpemUpCi0gICAgbGVhcCBzaXplIC0gMVtwb2ludGVyLCBvZmZzZXRdLCB0NQotICAgIGJwYiB0
NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29udGludWF0aW9uCi0udGhyb3c6Ci0gICAgdGhyb3dF
eGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCi0uY29udGludWF0aW9uOgotICAgIGFk
ZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgotICAgIGFkZHAgb2Zmc2V0LCBwb2ludGVyCi0gICAgYnRw
bnogcG9pbnRlciwgKHNpemUgLSAxKSwgLnRocm93Ci1lbmQKLQotbWFjcm8gd2FzbUxvYWRPcChu
YW1lLCBzdHJ1Y3QsIHNpemUsIGZuKQotICAgIHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1hY3JvKGN0
eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MCkKLSAgICAgICAgd2dldHUoY3R4
LCBtX29mZnNldCwgdDEpCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKGN0eCwg
dDAsIHQxLCBzaXplKQotICAgICAgICBmbihbdDAsIHQxXSwgdDIpCi0gICAgICAgIHJldHVybnEo
Y3R4LCB0MikKLSAgICBlbmQpCi1lbmQKLQotd2FzbUxvYWRPcChsb2FkOF91LCBXYXNtTG9hZDhV
LCAxLCBtYWNybyhtZW0sIGRzdCkgbG9hZGIgbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChsb2Fk
MTZfdSwgV2FzbUxvYWQxNlUsIDIsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaCBtZW0sIGRzdCBlbmQp
Ci13YXNtTG9hZE9wKGxvYWQzMl91LCBXYXNtTG9hZDMyVSwgNCwgbWFjcm8obWVtLCBkc3QpIGxv
YWRpIG1lbSwgZHN0IGVuZCkKLXdhc21Mb2FkT3AobG9hZDY0X3UsIFdhc21Mb2FkNjRVLCA4LCBt
YWNybyhtZW0sIGRzdCkgbG9hZHEgbWVtLCBkc3QgZW5kKQotCi13YXNtTG9hZE9wKGkzMl9sb2Fk
OF9zLCBXYXNtSTMyTG9hZDhTLCAxLCBtYWNybyhtZW0sIGRzdCkgbG9hZGJzaSBtZW0sIGRzdCBl
bmQpCi13YXNtTG9hZE9wKGk2NF9sb2FkOF9zLCBXYXNtSTY0TG9hZDhTLCAxLCBtYWNybyhtZW0s
IGRzdCkgbG9hZGJzcSBtZW0sIGRzdCBlbmQpCi13YXNtTG9hZE9wKGkzMl9sb2FkMTZfcywgV2Fz
bUkzMkxvYWQxNlMsIDIsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaHNpIG1lbSwgZHN0IGVuZCkKLXdh
c21Mb2FkT3AoaTY0X2xvYWQxNl9zLCBXYXNtSTY0TG9hZDE2UywgMiwgbWFjcm8obWVtLCBkc3Qp
IGxvYWRoc3EgbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChpNjRfbG9hZDMyX3MsIFdhc21JNjRM
b2FkMzJTLCA0LCBtYWNybyhtZW0sIGRzdCkgbG9hZGlzIG1lbSwgZHN0IGVuZCkKLQotbWFjcm8g
d2FzbVN0b3JlT3AobmFtZSwgc3RydWN0LCBzaXplLCBmbikKLSAgICB3YXNtT3AobmFtZSwgc3Ry
dWN0LCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDApCi0gICAg
ICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJl
UG9pbnRlcihjdHgsIHQwLCB0MSwgc2l6ZSkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwg
dDIpCi0gICAgICAgIGZuKHQyLCBbdDAsIHQxXSkKLSAgICAgICAgZGlzcGF0Y2goY3R4KQotICAg
IGVuZCkKLWVuZAotCi13YXNtU3RvcmVPcChzdG9yZTgsIFdhc21TdG9yZTgsIDEsIG1hY3JvKHZh
bHVlLCBtZW0pIHN0b3JlYiB2YWx1ZSwgbWVtIGVuZCkKLXdhc21TdG9yZU9wKHN0b3JlMTYsIFdh
c21TdG9yZTE2LCAyLCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZWggdmFsdWUsIG1lbSBlbmQpCi13
YXNtU3RvcmVPcChzdG9yZTMyLCBXYXNtU3RvcmUzMiwgNCwgbWFjcm8odmFsdWUsIG1lbSkgc3Rv
cmVpIHZhbHVlLCBtZW0gZW5kKQotd2FzbVN0b3JlT3Aoc3RvcmU2NCwgV2FzbVN0b3JlNjQsIDgs
IG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlcSB2YWx1ZSwgbWVtIGVuZCkKLQogIyBPcGNvZGVzIHRo
YXQgZG9uJ3QgaGF2ZSB0aGUgYGIzb3BgIGVudHJ5IGluIHdhc20uanNvbi4gVGhpcyBzaG91bGQg
YmUga2VwdCBpbiBzeW5jCiAKLXdhc21PcChpMzJfZGl2X3MsIFdhc21JMzJEaXZTLCBtYWNybyAo
Y3R4KQotICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3Jocywg
dDEpCi0KLSAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwotCi0gICAgYmluZXEgdDEs
IC0xLCAuc2FmZQotICAgIGJpZXEgdDAsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC50aHJvd0ludGVn
ZXJPdmVyZmxvdwotCi0uc2FmZToKLSAgICBpZiBYODZfNjQKLSAgICAgICAgIyBGSVhNRTogQWRk
IGEgd2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4Ci0gICAg
ICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgotICAg
ICAgICBjZHFpCi0gICAgICAgIGlkaXZpIHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9y
IFJJU0NWNjQKLSAgICAgICAgZGl2aXMgdDEsIHQwCi0gICAgZWxzZQotICAgICAgICBlcnJvcgot
ICAgIGVuZAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLnRocm93RGl2aXNpb25CeVplcm86Ci0g
ICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCi0KLS50aHJvd0ludGVnZXJPdmVyZmxv
dzoKLSAgICB0aHJvd0V4Y2VwdGlvbihJbnRlZ2VyT3ZlcmZsb3cpCi1lbmQpCi0KLXdhc21PcChp
MzJfZGl2X3UsIFdhc21JMzJEaXZVLCBtYWNybyAoY3R4KQotICAgIG1sb2FkaShjdHgsIG1fbGhz
LCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCi0KLSAgICBidGl6IHQxLCAudGhyb3dE
aXZpc2lvbkJ5WmVybwotCi0gICAgaWYgWDg2XzY0Ci0gICAgICAgIHhvcmkgdDIsIHQyCi0gICAg
ICAgIHVkaXZpIHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKLSAgICAg
ICAgZGl2aSB0MSwgdDAKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0gICAgcmV0
dXJuaShjdHgsIHQwKQotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlv
bihEaXZpc2lvbkJ5WmVybykKLWVuZCkKLQotd2FzbU9wKGkzMl9yZW1fcywgV2FzbUkzMlJlbVMs
IG1hY3JvIChjdHgpCi0gICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgs
IG1fcmhzLCB0MSkKLQotICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBi
aW5lcSB0MSwgLTEsIC5zYWZlCi0gICAgYmluZXEgdDAsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC5z
YWZlCi0KLSAgICBtb3ZlIDAsIHQyCi0gICAgam1wIC5yZXR1cm4KLQotLnNhZmU6Ci0gICAgaWYg
WDg2XzY0Ci0gICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0
MCBpcyByYXggYW5kIHQyIGlzIHJkeAotICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKLSAgICAgICAgY2RxaQotICAgICAgICBpZGl2aSB0MQot
ICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQotICAgICAgICBkaXZpcyB0MSwgdDAsIHQyCi0gICAg
ICAgIG11bGkgdDEsIHQyCi0gICAgICAgIHN1YmkgdDAsIHQyLCB0MgotICAgIGVsc2lmIFJJU0NW
NjQKLSAgICAgICAgcmVtaXMgdDEsIHQwCi0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVu
ZAotCi0ucmV0dXJuOgotICAgIHJldHVybmkoY3R4LCB0MikKLQotLnRocm93RGl2aXNpb25CeVpl
cm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCi1lbmQpCi0KLXdhc21PcChp
MzJfcmVtX3UsIFdhc21JMzJSZW1VLCBtYWNybyAoY3R4KQotICAgIG1sb2FkaShjdHgsIG1fbGhz
LCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCi0KLSAgICBidGl6IHQxLCAudGhyb3dE
aXZpc2lvbkJ5WmVybwotCi0gICAgaWYgWDg2XzY0Ci0gICAgICAgIHhvcmkgdDIsIHQyCi0gICAg
ICAgIHVkaXZpIHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCi0gICAgICAgIGRpdmkgdDEs
IHQwLCB0MgotICAgICAgICBtdWxpIHQxLCB0MgotICAgICAgICBzdWJpIHQwLCB0MiwgdDIKLSAg
ICBlbHNpZiBSSVNDVjY0Ci0gICAgICAgIHJlbWkgdDEsIHQwCi0gICAgZWxzZQotICAgICAgICBl
cnJvcgotICAgIGVuZAotICAgIHJldHVybmkoY3R4LCB0MikKLQotLnRocm93RGl2aXNpb25CeVpl
cm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCi1lbmQpCi0KIHdhc21PcChp
MzJfY3R6LCBXYXNtSTMyQ3R6LCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFu
ZCwgdDApCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICB0emNudGkgdDAsIHQw
CiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQpAQCAtMTEwNCwxNDggKzEwMjcsMjUgQEAgd2Fz
bU9wKGkzMl9wb3BjbnQsIFdhc21JMzJQb3BjbnQsIG1hY3JvIChjdHgpCiAgICAgcmV0dXJuaShj
dHgsIHIxKQogZW5kKQogCi13YXNtT3AoaTY0X2Rpdl9zLCBXYXNtSTY0RGl2UywgbWFjcm8gKGN0
eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQx
KQotCi0gICAgYnRxeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAgIGJxbmVxIHQxLCAt
MSwgLnNhZmUKLSAgICBicWVxIHQwLCBjb25zdGV4cHIgSU5UNjRfTUlOLCAudGhyb3dJbnRlZ2Vy
T3ZlcmZsb3cKLQotLnNhZmU6Ci0gICAgaWYgWDg2XzY0Ci0gICAgICAgICMgRklYTUU6IEFkZCBh
IHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAotICAgICAg
ICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKLSAgICAg
ICAgY3FvcQotICAgICAgICBpZGl2cSB0MQotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBS
SVNDVjY0Ci0gICAgICAgIGRpdnFzIHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAg
ICBlbmQKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAg
IHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotCi0udGhyb3dJbnRlZ2VyT3ZlcmZsb3c6
Ci0gICAgdGhyb3dFeGNlcHRpb24oSW50ZWdlck92ZXJmbG93KQotZW5kKQotCi13YXNtT3AoaTY0
X2Rpdl91LCBXYXNtSTY0RGl2VSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywg
dDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRxeiB0MSwgLnRocm93RGl2
aXNpb25CeVplcm8KLQotICAgIGlmIFg4Nl82NAotICAgICAgICB4b3JxIHQyLCB0MgotICAgICAg
ICB1ZGl2cSB0MQotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgICAg
IGRpdnEgdDEsIHQwCi0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVuZAotICAgIHJldHVy
bnEoY3R4LCB0MCkKLQotLnRocm93RGl2aXNpb25CeVplcm86Ci0gICAgdGhyb3dFeGNlcHRpb24o
RGl2aXNpb25CeVplcm8pCi1lbmQpCi0KLXdhc21PcChpNjRfcmVtX3MsIFdhc21JNjRSZW1TLCBt
YWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBt
X3JocywgdDEpCi0KLSAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwotCi0gICAgYnFu
ZXEgdDEsIC0xLCAuc2FmZQotICAgIGJxbmVxIHQwLCBjb25zdGV4cHIgSU5UNjRfTUlOLCAuc2Fm
ZQotCi0gICAgbW92ZSAwLCB0MgotICAgIGptcCAucmV0dXJuCi0KLS5zYWZlOgotICAgIGlmIFg4
Nl82NAotICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAg
aXMgcmF4IGFuZCB0MiBpcyByZHgKLSAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCi0gICAgICAgIGNxb3EKLSAgICAgICAgaWRpdnEgdDEKLSAg
ICBlbHNpZiBBUk02NCBvciBBUk02NEUKLSAgICAgICAgZGl2cXMgdDEsIHQwLCB0MgotICAgICAg
ICBtdWxxIHQxLCB0MgotICAgICAgICBzdWJxIHQwLCB0MiwgdDIKLSAgICBlbHNpZiBSSVNDVjY0
Ci0gICAgICAgIHJlbXFzIHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQK
LQotLnJldHVybjoKLSAgICByZXR1cm5xKGN0eCwgdDIpICMgcmR4IGhhcyB0aGUgcmVtYWluZGVy
Ci0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnla
ZXJvKQotZW5kKQotCi13YXNtT3AoaTY0X3JlbV91LCBXYXNtSTY0UmVtVSwgbWFjcm8gKGN0eCkK
LSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQot
Ci0gICAgYnRxeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAgIGlmIFg4Nl82NAotICAg
ICAgICB4b3JxIHQyLCB0MgotICAgICAgICB1ZGl2cSB0MQotICAgIGVsc2lmIEFSTTY0IG9yIEFS
TTY0RQotICAgICAgICBkaXZxIHQxLCB0MCwgdDIKLSAgICAgICAgbXVscSB0MSwgdDIKLSAgICAg
ICAgc3VicSB0MCwgdDIsIHQyCi0gICAgZWxzaWYgUklTQ1Y2NAotICAgICAgICByZW1xIHQxLCB0
MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1cm5xKGN0eCwgdDIp
Ci0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnla
ZXJvKQotZW5kKQotCi13YXNtT3AoaTY0X2N0eiwgV2FzbUk2NEN0eiwgbWFjcm8gKGN0eCkKLSAg
ICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIHR6Y250cSB0MCwgdDAKLSAgICByZXR1
cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfcG9wY250LCBXYXNtSTY0UG9wY250LCBt
YWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgYTEpCi0gICAgcHJlcGFyZVN0
YXRlRm9yQ0NhbGwoKQotICAgIG1vdmUgUEMsIGEwCi0gICAgY0NhbGwyKF9zbG93X3BhdGhfd2Fz
bV9wb3Bjb3VudGxsKQotICAgIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQotICAgIHJldHVybnEo
Y3R4LCByMSkKLWVuZCkKLQotd2FzbU9wKGYzMl90cnVuYywgV2FzbUYzMlRydW5jLCBtYWNybyAo
Y3R4KQord2FzbVJvdW5kaW5nT3AoZjMyX3RydW5jLCBXYXNtRjMyVHJ1bmMsIG1hY3JvIChjdHgp
CiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgdHJ1bmNhdGVmIGZ0MCwgZnQw
CiAgICAgcmV0dXJuZihjdHgsIGZ0MCkKIGVuZCkKIAotd2FzbU9wKGYzMl9uZWFyZXN0LCBXYXNt
RjMyTmVhcmVzdCwgbWFjcm8gKGN0eCkKK3dhc21Sb3VuZGluZ09wKGYzMl9uZWFyZXN0LCBXYXNt
RjMyTmVhcmVzdCwgbWFjcm8gKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkK
ICAgICByb3VuZGYgZnQwLCBmdDAKICAgICByZXR1cm5mKGN0eCwgZnQwKQogZW5kKQogCi13YXNt
T3AoZjY0X3RydW5jLCBXYXNtRjY0VHJ1bmMsIG1hY3JvIChjdHgpCit3YXNtUm91bmRpbmdPcChm
NjRfdHJ1bmMsIFdhc21GNjRUcnVuYywgbWFjcm8gKGN0eCkKICAgICBtbG9hZGQoY3R4LCBtX29w
ZXJhbmQsIGZ0MCkKICAgICB0cnVuY2F0ZWQgZnQwLCBmdDAKICAgICByZXR1cm5kKGN0eCwgZnQw
KQogZW5kKQogCi13YXNtT3AoZjY0X25lYXJlc3QsIFdhc21GNjROZWFyZXN0LCBtYWNybyAoY3R4
KQord2FzbVJvdW5kaW5nT3AoZjY0X25lYXJlc3QsIFdhc21GNjROZWFyZXN0LCBtYWNybyAoY3R4
KQogICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIHJvdW5kZCBmdDAsIGZ0MAog
ICAgIHJldHVybmQoY3R4LCBmdDApCkBAIC0xMjY5LDI0ICsxMDY5LDYgQEAgd2FzbU9wKGkzMl90
cnVuY19zX2YzMiwgV2FzbUkzMlRydW5jU0YzMiwgbWFjcm8gKGN0eCkKICAgICB0aHJvd0V4Y2Vw
dGlvbihPdXRPZkJvdW5kc1RydW5jKQogZW5kKQogCi13YXNtT3AoaTMyX3RydW5jX3NfZjY0LCBX
YXNtSTMyVHJ1bmNTRjY0LCBtYWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwg
ZnQwKQotCi0gICAgbW92ZSAweGMxZTAwMDAwMDAyMDAwMDAsIHQwICMgSU5UMzJfTUlOIC0gMS4w
Ci0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1Ry
dW5jCi0KLSAgICBtb3ZlIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UMzJfTUlOCi0gICAg
ZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0K
LSAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9m
Qm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKLWVuZCkK
LQogd2FzbU9wKGkzMl90cnVuY191X2YzMiwgV2FzbUkzMlRydW5jVUYzMiwgbWFjcm8gKGN0eCkK
ICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKIApAQCAtMTMwNSw5NiArMTA4Nyw2IEBA
IHdhc21PcChpMzJfdHJ1bmNfdV9mMzIsIFdhc21JMzJUcnVuY1VGMzIsIG1hY3JvIChjdHgpCiAg
ICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKIGVuZCkKIAotd2FzbU9wKGkzMl90
cnVuY191X2Y2NCwgV2FzbUkzMlRydW5jVUY2NCwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4
LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAjIC0x
LjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmMKLQotICAgIG1vdmUgMHg0MWYwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDMyX01JTiAqIC0y
LjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmMKLQotICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0K
LS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMp
Ci1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfc19mMzIsIFdhc21JNjRUcnVuY1NGMzIsIG1hY3Jv
IChjdHgpCi0gICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4ZGYw
MDAwMDAsIHQwICMgSU5UNjRfTUlOCi0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZsdHVuIGZ0MCwg
ZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgbW92ZSAweDVmMDAwMDAwLCB0MCAjIC1JTlQ2
NF9NSU4KLSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91
bmRzVHJ1bmMKLQotICAgIHRydW5jYXRlZjJxcyBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQw
KQotCi0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1Ry
dW5jKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3NfZjY0LCBXYXNtSTY0VHJ1bmNTRjY0LCBt
YWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAw
eGMzZTAwMDAwMDAwMDAwMDAsIHQwICMgSU5UNjRfTUlOCi0gICAgZnEyZCB0MCwgZnQxCi0gICAg
YmRsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgbW92ZSAweDQzZTAwMDAw
MDAwMDAwMDAsIHQwICMgLUlOVDY0X01JTgotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgdHJ1bmNhdGVkMnFzIGZ0MCwgdDAK
LSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRocm93RXhj
ZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfdV9mMzIs
IFdhc21JNjRUcnVuY1VGMzIsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5k
LCBmdDApCi0KLSAgICBtb3ZlIDB4YmY4MDAwMDAsIHQwICMgLTEuMAotICAgIGZpMmYgdDAsIGZ0
MQotICAgIGJmbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgbW92ZSAw
eDVmODAwMDAwLCB0MCAjIElOVDY0X01JTiAqIC0yLjAKLSAgICBmaTJmIHQwLCBmdDEKLSAgICBi
Zmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIHRydW5jYXRlZjJxIGZ0
MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRo
cm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNf
dV9mNjQsIFdhc21JNjRUcnVuY1VGNjQsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9v
cGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YmZmMDAwMDAwMDAwMDAwMCwgdDAgIyAtMS4wCi0g
ICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5j
Ci0KLSAgICBtb3ZlIDB4NDNmMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCi0g
ICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5j
Ci0KLSAgICB0cnVuY2F0ZWQycSBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0
T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQotZW5k
KQotCiB3YXNtT3AoaTMyX3RydW5jX3NhdF9mMzJfcywgV2FzbUkzMlRydW5jU2F0RjMyUywgbWFj
cm8gKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKIApAQCAtMTQyMywzNCAr
MTExNSw2IEBAIHdhc21PcChpMzJfdHJ1bmNfc2F0X2YzMl9zLCBXYXNtSTMyVHJ1bmNTYXRGMzJT
LCBtYWNybyAoY3R4KQogICAgIHJldHVybmkoY3R4LCB0MCkKIGVuZCkKIAotd2FzbU9wKGkzMl90
cnVuY19zYXRfZjY0X3MsIFdhc21JMzJUcnVuY1NhdEY2NFMsIG1hY3JvIChjdHgpCi0gICAgbWxv
YWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YzFlMDAwMDAwMDIwMDAwMCwg
dDAgIyBJTlQzMl9NSU4gLSAxLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1biBmdDAs
IGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTgotCi0gICAgbW92ZSAweDQxZTAwMDAw
MDAwMDAwMDAsIHQwICMgLUlOVDMyX01JTgotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVkMmlzIGZ0
MCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JO
YU46Ci0gICAgYmRlcSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KLSAgICBtb3Zl
IDAsIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoK
LSAgICBtb3ZlIChjb25zdGV4cHIgSU5UMzJfTUFYKSwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDAp
Ci0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQzMl9N
SU4pLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLWVuZCkKLQogd2FzbU9wKGkzMl90cnVuY19z
YXRfZjMyX3UsIFdhc21JMzJUcnVuY1NhdEYzMlUsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRmKGN0
eCwgbV9vcGVyYW5kLCBmdDApCiAKQEAgLTE0NzQsMTUyICsxMTM4LDIyIEBAIHdhc21PcChpMzJf
dHJ1bmNfc2F0X2YzMl91LCBXYXNtSTMyVHJ1bmNTYXRGMzJVLCBtYWNybyAoY3R4KQogICAgIHJl
dHVybmkoY3R4LCB0MCkKIGVuZCkKIAotd2FzbU9wKGkzMl90cnVuY19zYXRfZjY0X3UsIFdhc21J
MzJUcnVuY1NhdEY2NFUsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBm
dDApCi0KLSAgICBtb3ZlIDB4YmZmMDAwMDAwMDAwMDAwMCwgdDAgIyAtMS4wCi0gICAgZnEyZCB0
MCwgZnQxCi0gICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCi0K
LSAgICBtb3ZlIDB4NDFmMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQzMl9NSU4gKiAtMi4wCi0gICAg
ZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0
TWF4Ci0KLSAgICB0cnVuY2F0ZWQyaSBmdDAsIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotCi0u
b3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKLSAgICBtb3ZlIDAsIHQwCi0gICAgcmV0dXJuaShjdHgs
IHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKLSAgICBtb3ZlIChjb25zdGV4cHIgVUlO
VDMyX01BWCksIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3Ry
dW5jX3NhdF9mMzJfcywgV2FzbUk2NFRydW5jU2F0RjMyUywgbWFjcm8gKGN0eCkKLSAgICBtbG9h
ZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhkZjAwMDAwMCwgdDAgIyBJTlQ2
NF9NSU4KLSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5k
c1RydW5jU2F0TWluT3JOYU4KLQotICAgIG1vdmUgMHg1ZjAwMDAwMCwgdDAgIyAtSU5UNjRfTUlO
Ci0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1Ry
dW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWYycXMgZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0
MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKLSAgICBiZmVxIGZ0MCwgZnQwLCAu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotICAgIG1vdmUgMCwgdDAKLSAgICByZXR1cm5xKGN0eCwg
dDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQ2
NF9NQVgpLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRN
aW46Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDY0X01JTiksIHQwCi0gICAgcmV0dXJucShjdHgs
IHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3NhdF9mNjRfcywgV2FzbUk2NFRydW5jU2F0
RjY0UywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAg
IG1vdmUgMHhjM2UwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDY0X01JTgotICAgIGZxMmQgdDAsIGZ0
MQotICAgIGJkbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTgotCi0g
ICAgbW92ZSAweDQzZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDY0X01JTgotICAgIGZxMmQgdDAs
IGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0g
ICAgdHJ1bmNhdGVkMnFzIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJv
dW5kc1RydW5jU2F0TWluT3JOYU46Ci0gICAgYmRlcSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1
bmNTYXRNaW4KLSAgICBtb3ZlIDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZC
b3VuZHNUcnVuY1NhdE1heDoKLSAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUFYKSwgdDAKLSAg
ICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgotICAgIG1vdmUg
KGNvbnN0ZXhwciBJTlQ2NF9NSU4pLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQot
d2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3UsIFdhc21JNjRUcnVuY1NhdEYzMlUsIG1hY3JvIChj
dHgpCi0gICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YmY4MDAw
MDAsIHQwICMgLTEuMAotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmbHRlcXVuIGZ0MCwgZnQxLCAu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotCi0gICAgbW92ZSAweDVmODAwMDAwLCB0MCAjIElOVDY0
X01JTiAqIC0yLjAKLSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91
dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQotICAgIHRydW5jYXRlZjJxIGZ0MCwgdDAKLSAgICByZXR1
cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgotICAgIG1vdmUgMCwgdDAK
LSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1v
dmUgKGNvbnN0ZXhwciBVSU5UNjRfTUFYKSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQp
Ci0KLXdhc21PcChpNjRfdHJ1bmNfc2F0X2Y2NF91LCBXYXNtSTY0VHJ1bmNTYXRGNjRVLCBtYWNy
byAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGJm
ZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotCi0gICAgbW92ZSAweDQzZjAwMDAw
MDAwMDAwMDAsIHQwICMgSU5UNjRfTUlOICogLTIuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJk
Z3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVk
MnEgZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRN
aW46Ci0gICAgbW92ZSAwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRz
VHJ1bmNTYXRNYXg6Ci0gICAgbW92ZSAoY29uc3RleHByIFVJTlQ2NF9NQVgpLCB0MAotICAgIHJl
dHVybnEoY3R4LCB0MCkKLWVuZCkKLQotCi13YXNtT3AoZjMyX2NvbnZlcnRfdV9pNjQsIFdhc21G
MzJDb252ZXJ0VUk2NCwgbWFjcm8gKGN0eCkKK3dhc21JNjRUb0ZPcChmMzJfY29udmVydF91X2k2
NCwgV2FzbUYzMkNvbnZlcnRVSTY0LCBtYWNybyAoY3R4KQogICAgIG1sb2FkcShjdHgsIG1fb3Bl
cmFuZCwgdDApCiAgICAgaWYgWDg2XzY0CiAgICAgICAgIGNxMmYgdDAsIHQxLCBmdDAKLSAgICBl
bHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAotICAgICAgICBjcTJmIHQwLCBmdDAKICAg
ICBlbHNlCi0gICAgICAgIGVycm9yCisgICAgICAgIGNxMmYgdDAsIGZ0MAogICAgIGVuZAogICAg
IHJldHVybmYoY3R4LCBmdDApCiBlbmQpCiAKLXdhc21PcChmNjRfY29udmVydF91X2k2NCwgV2Fz
bUY2NENvbnZlcnRVSTY0LCBtYWNybyAoY3R4KQord2FzbUk2NFRvRk9wKGY2NF9jb252ZXJ0X3Vf
aTY0LCBXYXNtRjY0Q29udmVydFVJNjQsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRxKGN0eCwgbV9v
cGVyYW5kLCB0MCkKICAgICBpZiBYODZfNjQKICAgICAgICAgY3EyZCB0MCwgdDEsIGZ0MAotICAg
IGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgICAgIGNxMmQgdDAsIGZ0MAog
ICAgIGVsc2UKLSAgICAgICAgZXJyb3IKKyAgICAgICAgY3EyZCB0MCwgZnQwCiAgICAgZW5kCiAg
ICAgcmV0dXJuZChjdHgsIGZ0MCkKIGVuZCkKQEAgLTE2MzAsNDcgKzExNjQsNiBAQCB3YXNtT3Ao
aTMyX2VxeiwgV2FzbUkzMkVxeiwgbWFjcm8oY3R4KQogICAgIHJldHVybmkoY3R4LCB0MCkKIGVu
ZCkKIAotd2FzbU9wKGk2NF9zaGwsIFdhc21JNjRTaGwsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEo
Y3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotICAgIGxzaGlmdHEg
dDEsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3Nocl91LCBX
YXNtSTY0U2hyVSwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBt
bG9hZGkoY3R4LCBtX3JocywgdDEpCi0gICAgdXJzaGlmdHEgdDEsIHQwCi0gICAgcmV0dXJucShj
dHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3Nocl9zLCBXYXNtSTY0U2hyUywgbWFjcm8oY3R4
KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEp
Ci0gICAgcnNoaWZ0cSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21P
cChpNjRfcm90ciwgV2FzbUk2NFJvdHIsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xo
cywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotICAgIHJyb3RhdGVxIHQxLCB0MAot
ICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9yb3RsLCBXYXNtSTY0Um90
bCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4
LCBtX3JocywgdDEpCi0gICAgbHJvdGF0ZXEgdDEsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQot
ZW5kKQotCi13YXNtT3AoaTY0X2VxeiwgV2FzbUk2NEVxeiwgbWFjcm8oY3R4KQotICAgIG1sb2Fk
cShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgY3FlcSB0MCwgMCwgdDAKLSAgICByZXR1cm5pKGN0
eCwgdDApCi1lbmQpCi0KIHdhc21PcChmMzJfbWluLCBXYXNtRjMyTWluLCBtYWNybyhjdHgpCiAg
ICAgbWxvYWRmKGN0eCwgbV9saHMsIGZ0MCkKICAgICBtbG9hZGYoY3R4LCBtX3JocywgZnQxKQpA
QCAtMTc4MCwyMyArMTI3Myw2IEBAIHdhc21PcChmNjRfbWF4LCBXYXNtRjY0TWF4LCBtYWNybyhj
dHgpCiAgICAgcmV0dXJuZChjdHgsIGZ0MSkKIGVuZCkKIAotd2FzbU9wKGY2NF9jb3B5c2lnbiwg
V2FzbUY2NENvcHlzaWduLCBtYWNybyhjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9saHMsIGZ0MCkK
LSAgICBtbG9hZGQoY3R4LCBtX3JocywgZnQxKQotCi0gICAgZmQycSBmdDEsIHQxCi0gICAgbW92
ZSAweDgwMDAwMDAwMDAwMDAwMDAsIHQyCi0gICAgYW5kcSB0MiwgdDEKLQotICAgIGZkMnEgZnQw
LCB0MAotICAgIG1vdmUgMHg3ZmZmZmZmZmZmZmZmZmZmLCB0MgotICAgIGFuZHEgdDIsIHQwCi0K
LSAgICBvcnEgdDEsIHQwCi0gICAgZnEyZCB0MCwgZnQwCi0gICAgcmV0dXJuZChjdHgsIGZ0MCkK
LWVuZCkKLQogd2FzbU9wKGYzMl9jb252ZXJ0X3VfaTMyLCBXYXNtRjMyQ29udmVydFVJMzIsIG1h
Y3JvKGN0eCkKICAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQogICAgIGNpMmYgdDAsIGZ0
MApAQCAtMTk3MiwxMzQgKzE0NDgsNiBAQCB3YXNtT3AoaTMyX2NseiwgV2FzbUkzMkNseiwgbWFj
cm8oY3R4KQogICAgIHJldHVybmkoY3R4LCB0MSkKIGVuZCkKIAotd2FzbU9wKGk2NF9hZGQsIFdh
c21JNjRBZGQsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxv
YWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGFkZHEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQx
KQotZW5kKQotCi13YXNtT3AoaTY0X3N1YiwgV2FzbUk2NFN1YiwgbWFjcm8oY3R4KQotICAgIG1s
b2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgc3Vi
cSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfbXVsLCBX
YXNtSTY0TXVsLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1s
b2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBtdWxxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0
MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9hbmQsIFdhc21JNjRBbmQsIG1hY3JvKGN0eCkKLSAgICBt
bG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGFu
ZHEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X29yLCBX
YXNtSTY0T3IsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxv
YWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIG9ycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEp
Ci1lbmQpCi0KLXdhc21PcChpNjRfeG9yLCBXYXNtSTY0WG9yLCBtYWNybyhjdHgpCi0gICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICB4b3Jx
IHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9lcSwgV2Fz
bUk2NEVxLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2Fk
cShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWVxIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0g
ICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X25lLCBXYXNtSTY0TmUsIG1h
Y3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9y
aHMsIHQxKQotICAgIGNxbmVxIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJu
aShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2x0X3MsIFdhc21JNjRMdFMsIG1hY3JvKGN0
eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQx
KQotICAgIGNxbHQgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwg
dDIpCi1lbmQpCi0KLXdhc21PcChpNjRfbGVfcywgV2FzbUk2NExlUywgbWFjcm8oY3R4KQotICAg
IG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAg
Y3FsdGVxIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQot
ZW5kKQotCi13YXNtT3AoaTY0X2x0X3UsIFdhc21JNjRMdFUsIG1hY3JvKGN0eCkKLSAgICBtbG9h
ZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxYiB0
MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQot
d2FzbU9wKGk2NF9sZV91LCBXYXNtSTY0TGVVLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwg
bV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWJlcSB0MCwgdDEs
IHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9w
KGk2NF9ndF9zLCBXYXNtSTY0R3RTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMs
IHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWd0IHQwLCB0MSwgdDIKLSAg
ICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2dl
X3MsIFdhc21JNjRHZVMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0g
ICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxZ3RlcSB0MCwgdDEsIHQyCi0gICAgYW5k
aSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9ndF91LCBX
YXNtSTY0R3RVLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1s
b2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIK
LSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfZ2VfdSwgV2FzbUk2NEdl
VSwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4
LCBtX3JocywgdDEpCi0gICAgY3FhZXEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICBy
ZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfY2x6LCBXYXNtSTY0Q2x6LCBtYWNy
byhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBsemNudHEgdDAsIHQx
Ci0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCiB3YXNtT3AoZjMyX2FkZCwgV2FzbUYzMkFk
ZCwgbWFjcm8oY3R4KQogICAgIG1sb2FkZihjdHgsIG1fbGhzLCBmdDApCiAgICAgbWxvYWRmKGN0
eCwgbV9yaHMsIGZ0MSkKQEAgLTIxNDAsMTMgKzE0ODgsMTMgQEAgd2FzbU9wKGYzMl9uZWcsIFdh
c21GMzJOZWcsIG1hY3JvKGN0eCkKICAgICByZXR1cm5mKGN0eCwgZnQxKQogZW5kKQogCi13YXNt
T3AoZjMyX2NlaWwsIFdhc21GMzJDZWlsLCBtYWNybyhjdHgpCit3YXNtUm91bmRpbmdPcChmMzJf
Y2VpbCwgV2FzbUYzMkNlaWwsIG1hY3JvKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQs
IGZ0MCkKICAgICBjZWlsZiBmdDAsIGZ0MQogICAgIHJldHVybmYoY3R4LCBmdDEpCiBlbmQpCiAK
LXdhc21PcChmMzJfZmxvb3IsIFdhc21GMzJGbG9vciwgbWFjcm8oY3R4KQord2FzbVJvdW5kaW5n
T3AoZjMyX2Zsb29yLCBXYXNtRjMyRmxvb3IsIG1hY3JvKGN0eCkKICAgICBtbG9hZGYoY3R4LCBt
X29wZXJhbmQsIGZ0MCkKICAgICBmbG9vcmYgZnQwLCBmdDEKICAgICByZXR1cm5mKGN0eCwgZnQx
KQpAQCAtMjI0MCwxMyArMTU4OCwxMyBAQCB3YXNtT3AoZjY0X25lZywgV2FzbUY2NE5lZywgbWFj
cm8oY3R4KQogICAgIHJldHVybmQoY3R4LCBmdDEpCiBlbmQpCiAKLXdhc21PcChmNjRfY2VpbCwg
V2FzbUY2NENlaWwsIG1hY3JvKGN0eCkKK3dhc21Sb3VuZGluZ09wKGY2NF9jZWlsLCBXYXNtRjY0
Q2VpbCwgbWFjcm8oY3R4KQogICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIGNl
aWxkIGZ0MCwgZnQxCiAgICAgcmV0dXJuZChjdHgsIGZ0MSkKIGVuZCkKIAotd2FzbU9wKGY2NF9m
bG9vciwgV2FzbUY2NEZsb29yLCBtYWNybyhjdHgpCit3YXNtUm91bmRpbmdPcChmNjRfZmxvb3Is
IFdhc21GNjRGbG9vciwgbWFjcm8oY3R4KQogICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQw
KQogICAgIGZsb29yZCBmdDAsIGZ0MQogICAgIHJldHVybmQoY3R4LCBmdDEpCkBAIC0yMzAxLDUw
ICsxNjQ5LDIwIEBAIHdhc21PcChmNjRfZ2UsIFdhc21GNjRHZSwgbWFjcm8oY3R4KQogZW5kKQog
CiB3YXNtT3AoaTMyX3dyYXBfaTY0LCBXYXNtSTMyV3JhcEk2NCwgbWFjcm8oY3R4KQotICAgIG1s
b2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkK
ICAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCiAKLXdhc21PcChpNjRfZXh0ZW5kX3NfaTMyLCBX
YXNtSTY0RXh0ZW5kU0kzMiwgbWFjcm8oY3R4KQotICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwg
dDApCi0gICAgc3hpMnEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNt
T3AoaTY0X2V4dGVuZF91X2kzMiwgV2FzbUk2NEV4dGVuZFVJMzIsIG1hY3JvKGN0eCkKLSAgICBt
bG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIHp4aTJxIHQwLCB0MQotICAgIHJldHVybnEo
Y3R4LCB0MSkKLWVuZCkKLQogd2FzbU9wKGkzMl9leHRlbmQ4X3MsIFdhc21JMzJFeHRlbmQ4Uywg
bWFjcm8oY3R4KQogICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAgc3hiMmkgdDAs
IHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQorICAgIHJldHVybmkoY3R4LCB0MSkKIGVuZCkKIAog
d2FzbU9wKGkzMl9leHRlbmQxNl9zLCBXYXNtSTMyRXh0ZW5kMTZTLCBtYWNybyhjdHgpCiAgICAg
bWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICBzeGgyaSB0MCwgdDEKLSAgICByZXR1cm5x
KGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfZXh0ZW5kOF9zLCBXYXNtSTY0RXh0ZW5kOFMs
IG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIHN4YjJxIHQw
LCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9leHRlbmQxNl9z
LCBXYXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5k
LCB0MCkKLSAgICBzeGgycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdh
c21PcChpNjRfZXh0ZW5kMzJfcywgV2FzbUk2NEV4dGVuZDE2UywgbWFjcm8oY3R4KQotICAgIG1s
b2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgc3hpMnEgdDAsIHQxCi0gICAgcmV0dXJucShj
dHgsIHQxKQorICAgIHJldHVybmkoY3R4LCB0MSkKIGVuZCkKIAogd2FzbU9wKGYzMl9jb252ZXJ0
X3NfaTMyLCBXYXNtRjMyQ29udmVydFNJMzIsIG1hY3JvKGN0eCkKQEAgLTIzNTMsNyArMTY3MSw3
IEBAIHdhc21PcChmMzJfY29udmVydF9zX2kzMiwgV2FzbUYzMkNvbnZlcnRTSTMyLCBtYWNybyhj
dHgpCiAgICAgcmV0dXJuZihjdHgsIGZ0MCkKIGVuZCkKIAotd2FzbU9wKGYzMl9jb252ZXJ0X3Nf
aTY0LCBXYXNtRjMyQ29udmVydFNJNjQsIG1hY3JvKGN0eCkKK3dhc21JNjRUb0ZPcChmMzJfY29u
dmVydF9zX2k2NCwgV2FzbUYzMkNvbnZlcnRTSTY0LCBtYWNybyhjdHgpCiAgICAgbWxvYWRxKGN0
eCwgbV9vcGVyYW5kLCB0MCkKICAgICBjcTJmcyB0MCwgZnQwCiAgICAgcmV0dXJuZihjdHgsIGZ0
MCkKQEAgLTIzNzcsNyArMTY5NSw3IEBAIHdhc21PcChmNjRfY29udmVydF9zX2kzMiwgV2FzbUY2
NENvbnZlcnRTSTMyLCBtYWNybyhjdHgpCiAgICAgcmV0dXJuZChjdHgsIGZ0MCkKIGVuZCkKIAot
d2FzbU9wKGY2NF9jb252ZXJ0X3NfaTY0LCBXYXNtRjY0Q29udmVydFNJNjQsIG1hY3JvKGN0eCkK
K3dhc21JNjRUb0ZPcChmNjRfY29udmVydF9zX2k2NCwgV2FzbUY2NENvbnZlcnRTSTY0LCBtYWNy
byhjdHgpCiAgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICBjcTJkcyB0MCwgZnQw
CiAgICAgcmV0dXJuZChjdHgsIGZ0MCkKQEAgLTIzODksMzQgKzE3MDcsMjkgQEAgd2FzbU9wKGY2
NF9wcm9tb3RlX2YzMiwgV2FzbUY2NFByb21vdGVGMzIsIG1hY3JvKGN0eCkKICAgICByZXR1cm5k
KGN0eCwgZnQxKQogZW5kKQogCi13YXNtT3AoZjY0X3JlaW50ZXJwcmV0X2k2NCwgV2FzbUY2NFJl
aW50ZXJwcmV0STY0LCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkK
LSAgICBmcTJkIHQwLCBmdDAKLSAgICByZXR1cm5kKGN0eCwgZnQwKQotZW5kKQotCiB3YXNtT3Ao
aTMyX3JlaW50ZXJwcmV0X2YzMiwgV2FzbUkzMlJlaW50ZXJwcmV0RjMyLCBtYWNybyhjdHgpCiAg
ICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgZmYyaSBmdDAsIHQwCiAgICAgcmV0
dXJuaShjdHgsIHQwKQogZW5kKQogCi13YXNtT3AoaTY0X3JlaW50ZXJwcmV0X2Y2NCwgV2FzbUk2
NFJlaW50ZXJwcmV0RjY0LCBtYWNybyhjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBm
dDApCi0gICAgZmQycSBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCiBtYWNy
byBkcm9wS2VlcChzdGFydE9mZnNldCwgZHJvcCwga2VlcCkKICAgICBsc2hpZnRpIDMsIHN0YXJ0
T2Zmc2V0CiAgICAgc3VicCBjZnIsIHN0YXJ0T2Zmc2V0LCBzdGFydE9mZnNldAogICAgIG5lZ2kg
ZHJvcAoraWYgSlNWQUxVRTY0CiAgICAgc3hpMnEgZHJvcCwgZHJvcAorZW5kCiAKIC5jb3B5TG9v
cDoKICAgICBidGl6IGtlZXAsIC5kb25lCitpZiBKU1ZBTFVFNjQKICAgICBsb2FkcSBbc3RhcnRP
ZmZzZXQsIGRyb3AsIDhdLCB0NgogICAgIHN0b3JlcSB0NiwgW3N0YXJ0T2Zmc2V0XQorZWxzZQor
ICAgIGxvYWQyaWEgW3N0YXJ0T2Zmc2V0LCBkcm9wLCA4XSwgdDUsIHQ2CisgICAgc3RvcmUyaWEg
dDUsIHQ2LCBbc3RhcnRPZmZzZXRdCitlbmQKICAgICBzdWJpIDEsIGtlZXAKICAgICBzdWJwIDgs
IHN0YXJ0T2Zmc2V0CiAgICAgam1wIC5jb3B5TG9vcApAQCAtMjQzNCwzODkgKzE3NDcsNiBAQCB3
YXNtT3AoZHJvcF9rZWVwLCBXYXNtRHJvcEtlZXAsIG1hY3JvKGN0eCkKICAgICBkaXNwYXRjaChj
dHgpCiBlbmQpCiAKLW1hY3JvIHdhc21BdG9taWNCaW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bjb2Rl
LCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmksIGZucSkKLSAgICB3YXNtT3AoaTY0X2F0
b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzgldXBwZXJDYXNl
T3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykK
LSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShjdHgsIG1f
dmFsdWUsIHQwKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNl
dChjdHgsIHQzLCB0MSwgMSkKLSAgICAgICAgZm5iKHQwLCBbdDNdLCB0MiwgdDUsIHQxKQotICAg
ICAgICBhbmRxIDB4ZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQ4VG82NAotICAgICAgICBhc3Nl
cnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmLCAub2sgZW5kKQotICAgICAgICByZXR1cm5xKGN0
eCwgdDApCi0gICAgZW5kKQotICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9w
Y29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgp
Ci0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwg
bV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKLSAgICAgICAg
ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2so
Y3R4LCB0MywgdDEsIDIpCi0gICAgICAgIGZuaCh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKLSAgICAg
ICAgYW5kcSAweGZmZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQxNlRvNjQKLSAgICAgICAgYXNz
ZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZmZmLCAub2sgZW5kKQotICAgICAgICByZXR1cm5x
KGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2Fz
ZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhj
dHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0
eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKLSAgICAg
ICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hl
Y2soY3R4LCB0MywgdDEsIDQpCi0gICAgICAgIGZuaSh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKLSAg
ICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZmZmZmZmZiwgLm9rIGVuZCkKLSAg
ICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19y
bXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0b21pY1JtdyV1cHBlckNhc2VPcGNvZGUlLCBt
YWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdn
ZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkK
LSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25t
ZW50Q2hlY2soY3R4LCB0MywgdDEsIDgpCi0gICAgICAgIGZucSh0MCwgW3QzXSwgdDIsIHQ1LCB0
MSkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLWVuZAotCi1tYWNybyB3YXNt
QXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VP
cGNvZGUsIGZuaSwgZm5xKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bj
b2RlLCB1cHBlckNhc2VPcGNvZGUsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBpZiBYODZfNjQKLSAgICAgICAgICAgICAgICBtb3Zl
IHQwR1BSLCB0NUdQUgotICAgICAgICAgICAgICAgIGxvYWRiIG1lbSwgdDBHUFIKLSAgICAgICAg
ICAgIC5sb29wOgotICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCi0gICAgICAgICAg
ICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgICAgICBiYXRvbWljd2Vha2Nhc2Ig
dDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAu
bG9vcDoKLSAgICAgICAgICAgICAgICBsb2FkbGlua2FjcWIgbWVtLCB0MUdQUgotICAgICAgICAg
ICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgICAgIHN0b3JlY29u
ZHJlbGIgdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwg
Lmxvb3AKLSAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAgICAgICAgICAgZW5k
Ci0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
MUdQUikKLSAgICAgICAgICAgIGlmIFg4Nl82NAotICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIs
IHQ1R1BSCi0gICAgICAgICAgICAgICAgbG9hZGggbWVtLCB0MEdQUgotICAgICAgICAgICAgLmxv
b3A6Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKLSAgICAgICAgICAgICAgICBm
bmkodDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgICAgIGJhdG9taWN3ZWFrY2FzaCB0MEdQUiwg
dDJHUFIsIG1lbSwgLmxvb3AKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIC5sb29wOgot
ICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxaCBtZW0sIHQxR1BSCi0gICAgICAgICAgICAgICAg
Zm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAgICAgc3RvcmVjb25kcmVsaCB0
NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAot
ICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0gICAgICAgICAgICBlbmQKLSAgICAg
ICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQot
ICAgICAgICAgICAgaWYgWDg2XzY0Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIK
LSAgICAgICAgICAgICAgICBsb2FkaSBtZW0sIHQwR1BSCi0gICAgICAgICAgICAubG9vcDoKLSAg
ICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgotICAgICAgICAgICAgICAgIGZuaSh0NUdQ
UiwgdDJHUFIpCi0gICAgICAgICAgICAgICAgYmF0b21pY3dlYWtjYXNpIHQwR1BSLCB0MkdQUiwg
bWVtLCAubG9vcAotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAg
ICAgICAgICAgbG9hZGxpbmthY3FpIG1lbSwgdDFHUFIKLSAgICAgICAgICAgICAgICBmbmkodDBH
UFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0
MkdQUiwgbWVtCi0gICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCi0gICAgICAg
ICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAgICAgICAgICAgIGVuZAotICAgICAgICBlbmQs
Ci0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAg
ICAgICBpZiBYODZfNjQKLSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgotICAgICAg
ICAgICAgICAgIGxvYWRxIG1lbSwgdDBHUFIKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAg
ICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCi0gICAgICAgICAgICAgICAgZm5xKHQ1R1BSLCB0MkdQ
UikKLSAgICAgICAgICAgICAgICBiYXRvbWljd2Vha2Nhc3EgdDBHUFIsIHQyR1BSLCBtZW0sIC5s
b29wCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAg
ICBsb2FkbGlua2FjcXEgbWVtLCB0MUdQUgotICAgICAgICAgICAgICAgIGZucSh0MEdQUiwgdDFH
UFIsIHQyR1BSKQotICAgICAgICAgICAgICAgIHN0b3JlY29uZHJlbHEgdDVHUFIsIHQyR1BSLCBt
ZW0KLSAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKLSAgICAgICAgICAgICAg
ICBtb3ZlIHQxR1BSLCB0MEdQUgotICAgICAgICAgICAgZW5kCi0gICAgICAgIGVuZCkKLWVuZAot
Ci1pZiBYODZfNjQKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9hZGQsIEFkZCwKLSAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGIg
dDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwg
dDFHUFIpIGF0b21pY3hjaGdhZGRoIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtIGVu
ZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWlj
eGNoZ2FkZHEgdDBHUFIsIG1lbSBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfc3Vi
LCBTdWIsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0
b21pY3hjaGdzdWJiIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3ViaCB0MEdQUiwgbWVtIGVuZCwKLSAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1Ymkg
dDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwg
dDFHUFIpIGF0b21pY3hjaGdzdWJxIHQwR1BSLCBtZW0gZW5kKQotICAgIHdhc21BdG9taWNCaW5h
cnlSTVdPcHMoX3hjaGcsIFhjaGcsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdiIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnaCB0MEdQUiwgbWVtIGVu
ZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWlj
eGNoZ2kgdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdxIHQwR1BSLCBtZW0gZW5kKQotICAgIHdhc21BdG9taWNC
aW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYW5kLCBBbmQsCi0gICAgICAgIG1hY3JvKHQ1R1BSLCB0
MkdQUikKLSAgICAgICAgICAgIGFuZGkgdDVHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAg
ICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgYW5kcSB0NUdQUiwgdDJHUFIKLSAg
ICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfb3IsIE9y
LAotICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBvcmkgdDVHUFIsIHQy
R1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAgICAg
ICAgb3JxIHQ1R1BSLCB0MkdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJN
V09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwKLSAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQot
ICAgICAgICAgICAgeG9yaSB0NUdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNy
byh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICB4b3JxIHQ1R1BSLCB0MkdQUgotICAgICAgICBl
bmQpCi1lbHNpZiBBUk02NEUKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9hZGQsIEFkZCwK
LSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNo
Z2FkZGIgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQs
Ci0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hj
aGdhZGRpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwg
dDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZHEgdDBHUFIsIG1lbSwgdDBHUFIgZW5k
KQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3N1YiwgU3ViLAotICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgbmVncSB0MEdQUgot
ICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGIgdDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5k
LAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAg
ICAgICAgbmVncSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGggdDBHUFIsIG1lbSwg
dDBHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVH
UFIsIHQxR1BSKQotICAgICAgICAgICAgbmVncSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNo
Z2FkZGkgdDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgbmVncSB0MEdQUgotICAg
ICAgICAgICAgYXRvbWljeGNoZ2FkZHEgdDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kKQot
ICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX2FuZCwgQW5kLAotICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgbm90cSB0MEdQUgotICAg
ICAgICAgICAgYXRvbWljeGNoZ2NsZWFyYiB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQs
Ci0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAg
ICAgICBub3RxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnY2xlYXJoIHQwR1BSLCBtZW0s
IHQwR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1
R1BSLCB0MUdQUikKLSAgICAgICAgICAgIG5vdHEgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hj
aGdjbGVhcmkgdDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgbm90cSB0MEdQUgot
ICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFycSB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBl
bmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfb3IsIE9yLAotICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnb3JiIHQwR1BSLCBtZW0s
IHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikgYXRvbWljeGNoZ29yaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQw
R1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcmkgdDBHUFIsIG1lbSwg
dDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KSBhdG9taWN4Y2hnb3JxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKLSAgICB3YXNtQXRvbWljQmlu
YXJ5Uk1XT3BzKF94b3IsIFhvciwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1
R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmIgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9yaCB0
MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcnEg
dDBHUFIsIG1lbSwgdDBHUFIgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hjaGcs
IFhjaGcsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0
b21pY3hjaGdiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2ggdDBHUFIsIG1lbSwgdDBHUFIgZW5k
LAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4
Y2hnaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKLWVs
c2UKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FkZCwgQWRkLAotICAg
ICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgYWRkaSB0MEdQUiwg
dDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0
MkdQUikKLSAgICAgICAgICAgIGFkZHEgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQp
Ci0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9zdWIsIFN1YiwKLSAgICAg
ICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIHN1YmkgdDFHUFIsIHQw
R1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJH
UFIpCi0gICAgICAgICAgICBzdWJxIHQxR1BSLCB0MEdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQot
ICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeGNoZywgWGNoZywKLSAgICAg
ICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQy
R1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAg
ICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWlj
QmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FuZCwgQW5kLAotICAgICAgICBtYWNybyh0MEdQUiwg
dDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgYW5kaSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAg
ICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAg
IGFuZHEgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0Jp
bmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9vciwgT3IsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQ
UiwgdDJHUFIpCi0gICAgICAgICAgICBvcmkgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBl
bmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBvcnEg
dDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJN
V09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0
MkdQUikKLSAgICAgICAgICAgIHhvcmkgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQs
Ci0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICB4b3JxIHQw
R1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQotZW5kCi0KLW1hY3JvIHdhc21BdG9taWND
b21wYXJlRXhjaGFuZ2VPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwg
Zm5oLCBmbmksIGZucSkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29k
ZSVfdSwgV2FzbUk2NEF0b21pY1JtdzgldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAg
ICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29m
ZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQotICAgICAgICBt
bG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50
ZXJBZGRpbmdPZmZzZXQoY3R4LCB0MywgdDEsIDEpCi0gICAgICAgIGZuYih0MCwgdDIsIFt0M10s
IHQ1LCB0MSkKLSAgICAgICAgYW5kcSAweGZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kOFRvNjQK
LSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZiwgLm9rIGVuZCkKLSAgICAg
ICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcx
NiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXcxNiV1cHBlckNhc2VPcGNvZGUl
VSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQotICAgICAg
ICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBlY3Rl
ZCwgdDApCi0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQotICAgICAgICBlbWl0Q2hl
Y2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQz
LCB0MSwgMikKLSAgICAgICAgZm5oKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQotICAgICAgICBhbmRx
IDB4ZmZmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDE2VG82NAotICAgICAgICBhc3NlcnQobWFj
cm8ob2spIGJxYmVxIHQwLCAweGZmZmYsIC5vayBlbmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0
MCkKLSAgICBlbmQpCi0gICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MzIlbG93ZXJDYXNlT3Bjb2Rl
JV91LCBXYXNtSTY0QXRvbWljUm13MzIldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAg
ICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29m
ZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQotICAgICAgICBt
bG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50
ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDQpCi0gICAgICAg
IGZuaSh0MCwgdDIsIFt0M10sIHQ1LCB0MSkKLSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJl
cSB0MCwgMHhmZmZmZmZmZiwgLm9rIGVuZCkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAg
IGVuZCkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2
NEF0b21pY1JtdyV1cHBlckNhc2VPcGNvZGUlLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShj
dHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAg
ICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92
YWx1ZSwgdDIpCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0
V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA4KQotICAgICAgICBmbnEodDAsIHQyLCBb
dDNdLCB0NSwgdDEpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi1lbmQKLQot
IyB0MEdQUiA9PiBleHBlY3RlZCwgdDJHUFIgPT4gdmFsdWUsIG1lbSA9PiBtZW1vcnkgcmVmZXJl
bmNlCi13YXNtQXRvbWljQ29tcGFyZUV4Y2hhbmdlT3BzKF9jbXB4Y2hnLCBDbXB4Y2hnLAotICAg
IG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgIGlmIFg4Nl82
NCBvciBBUk02NEUKLSAgICAgICAgICAgIGJxYSB0MEdQUiAsIDB4ZmYsIC5mYWlsCi0gICAgICAg
ICAgICBhdG9taWN3ZWFrY2FzYiB0MEdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgam1wIC5k
b25lCi0gICAgICAgIC5mYWlsOgotICAgICAgICAgICAgYXRvbWljbG9hZGIgbWVtLCB0MEdQUgot
ICAgICAgICAuZG9uZToKLSAgICAgICAgZWxzZQotICAgICAgICAubG9vcDoKLSAgICAgICAgICAg
IGxvYWRsaW5rYWNxYiBtZW0sIHQxR1BSCi0gICAgICAgICAgICBicW5lcSB0MEdQUiwgdDFHUFIs
IC5mYWlsCi0gICAgICAgICAgICBzdG9yZWNvbmRyZWxiIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAg
ICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAg
ICAgIC5mYWlsOgotICAgICAgICAgICAgc3RvcmVjb25kcmVsYiB0NUdQUiwgdDFHUFIsIG1lbQot
ICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGptcCAubG9vcAot
ICAgICAgICAuZG9uZToKLSAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0gICAgICAgIGVu
ZAotICAgIGVuZCwKLSAgICBtYWNybyh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BSKQot
ICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRFCi0gICAgICAgICAgICBicWEgdDBHUFIsIDB4ZmZm
ZiwgLmZhaWwKLSAgICAgICAgICAgIGF0b21pY3dlYWtjYXNoIHQwR1BSLCB0MkdQUiwgbWVtCi0g
ICAgICAgICAgICBqbXAgLmRvbmUKLSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAgICBhdG9taWNs
b2FkaCBtZW0sIHQwR1BSCi0gICAgICAgIC5kb25lOgotICAgICAgICBlbHNlCi0gICAgICAgIC5s
b29wOgotICAgICAgICAgICAgbG9hZGxpbmthY3FoIG1lbSwgdDFHUFIKLSAgICAgICAgICAgIGJx
bmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIs
IHQyR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAg
ICBqbXAgLmxvb3AKLSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAgICBzdG9yZWNvbmRyZWxoIHQ1
R1BSLCB0MUdQUiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAg
ICAgICAgam1wIC5sb29wCi0gICAgICAgIC5kb25lOgotICAgICAgICAgICAgbW92ZSB0MUdQUiwg
dDBHUFIKLSAgICAgICAgZW5kCi0gICAgZW5kLAotICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVt
LCB0NUdQUiwgdDFHUFIpCi0gICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKLSAgICAgICAgICAg
IGJxYSB0MEdQUiwgMHhmZmZmZmZmZiwgLmZhaWwKLSAgICAgICAgICAgIGF0b21pY3dlYWtjYXNp
IHQwR1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICBqbXAgLmRvbmUKLSAgICAgICAgLmZhaWw6
Ci0gICAgICAgICAgICBhdG9taWNsb2FkaSBtZW0sIHQwR1BSCi0gICAgICAgIC5kb25lOgotICAg
ICAgICBlbHNlCi0gICAgICAgIC5sb29wOgotICAgICAgICAgICAgbG9hZGxpbmthY3FpIG1lbSwg
dDFHUFIKLSAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKLSAgICAgICAgICAg
IHN0b3JlY29uZHJlbGkgdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIs
IDAsIC5kb25lCi0gICAgICAgICAgICBqbXAgLmxvb3AKLSAgICAgICAgLmZhaWw6Ci0gICAgICAg
ICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0MUdQUiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1
R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAgICAgIC5kb25lOgotICAg
ICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAgICAgICAgZW5kCi0gICAgZW5kLAotICAgIG1h
Y3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgIGlmIFg4Nl82NCBv
ciBBUk02NEUKLSAgICAgICAgICAgIGF0b21pY3dlYWtjYXNxIHQwR1BSLCB0MkdQUiwgbWVtCi0g
ICAgICAgIGVsc2UKLSAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICBsb2FkbGlua2FjcXEgbWVt
LCB0MUdQUgotICAgICAgICAgICAgYnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAotICAgICAgICAg
ICAgc3RvcmVjb25kcmVscSB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQ
UiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGptcCAubG9vcAotICAgICAgICAuZmFpbDoKLSAgICAg
ICAgICAgIHN0b3JlY29uZHJlbHEgdDVHUFIsIHQxR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEg
dDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBqbXAgLmxvb3AKLSAgICAgICAgLmRvbmU6Ci0g
ICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAgICAgICBlbmQKLSAgICBlbmQpCi0KIHdh
c21PcChhdG9taWNfZmVuY2UsIFdhc21Ecm9wS2VlcCwgbWFjcm8oY3R4KQogICAgIGZlbmNlCiAg
ICAgZGlzcGF0Y2goY3R4KQpAQCAtMjg0NSw5ICsxNzc1LDE0IEBAIG1hY3JvIGNvbW1vbkNhdGNo
SW1wbChjdHgsIHN0b3JlV2FzbUluc3RhbmNlKQogICAgIGNvbnZlcnRDYWxsZWVUb1ZNKHQzKQog
ICAgIHJlc3RvcmVDYWxsZWVTYXZlc0Zyb21WTUVudHJ5RnJhbWVDYWxsZWVTYXZlc0J1ZmZlcih0
MywgdDApCiAKLSAgICBsb2FkcCBWTTo6Y2FsbGVlRm9yV2FzbUNhdGNoW3QzXSwgd3MxCi0gICAg
c3RvcmVwIDAsIFZNOjpjYWxsZWVGb3JXYXNtQ2F0Y2hbdDNdCi0gICAgc3RvcmVwIHdzMSwgQ2Fs
bGVlW2Nmcl0KKyAgICBsb2FkcCBWTTo6Y2FsbGVlRm9yV2FzbUNhdGNoICsgUGF5bG9hZE9mZnNl
dFt0M10sIHdzMQorICAgIHN0b3JlcCAwLCBWTTo6Y2FsbGVlRm9yV2FzbUNhdGNoICsgUGF5bG9h
ZE9mZnNldFt0M10KKyAgICBzdG9yZXAgd3MxLCBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0K
K2lmIG5vdCBKU1ZBTFVFNjQKKyAgICBsb2FkaSBWTTo6Y2FsbGVlRm9yV2FzbUNhdGNoICsgVGFn
T2Zmc2V0W3QzXSwgd3MxCisgICAgc3RvcmVpIEVtcHR5VmFsdWVUYWcsIFZNOjpjYWxsZWVGb3JX
YXNtQ2F0Y2ggKyBUYWdPZmZzZXRbdDNdCisgICAgc3RvcmVpIHdzMSwgQ2FsbGVlICsgVGFnT2Zm
c2V0W2Nmcl0KK2VuZAogCiAgICAgbG9hZHAgVk06OmNhbGxGcmFtZUZvckNhdGNoW3QzXSwgY2Zy
CiAgICAgc3RvcmVwIDAsIFZNOjpjYWxsRnJhbWVGb3JDYXRjaFt0M10KQEAgLTI4ODYsOCArMTgy
MSwxMyBAQCBtYWNybyBjYXRjaEltcGwoY3R4LCBzdG9yZVdhc21JbnN0YW5jZSkKIAogLmNvcHlM
b29wOgogICAgIGJ0aXogdDMsIC5kb25lCitpZiBKU1ZBTFVFNjQKICAgICBsb2FkcSBbdDFdLCB0
NgogICAgIHN0b3JlcSB0NiwgW3QyXQorZWxzZQorICAgIGxvYWQyaWEgW3QxXSwgdDUsIHQ2Cisg
ICAgc3RvcmUyaWEgdDUsIHQ2LCBbdDJdCitlbmQKICAgICBzdWJpIDEsIHQzCiAgICAgIyBGSVhN
RTogVXNlIGFybSBzdG9yZS1hZGQvc3ViIGluc3RydWN0aW9ucyBpbiB3YXNtIExMSW50IGNhdGNo
CiAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjEwCkBA
IC0yOTE1LDMgKzE4NTUsMTAgQEAgZW5kKQogY29tbW9uV2FzbU9wKHdhc21fY2F0Y2hfYWxsX25v
X3RscywgV2FzbUNhdGNoQWxsLCBtYWNybygpIGVuZCwgbWFjcm8oY3R4KQogICAgIGNhdGNoQWxs
SW1wbChjdHgsIG1hY3JvKGluc3RhbmNlKSBlbmQpCiBlbmQpCisKKyMgVmFsdWUtcmVwcmVzZW50
YXRpb24tc3BlY2lmaWMgY29kZS4KK2lmIEpTVkFMVUU2NAorICAgIGluY2x1ZGUgV2ViQXNzZW1i
bHk2NAorZWxzZQorICAgIGluY2x1ZGUgV2ViQXNzZW1ibHkzMl82NAorZW5kCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHkzMl82NC5hc20gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHkzMl82NC5hc20KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTU4MzA0ZTlmYTExMDZjZDFjNjA5NzgwOGFlNjZlNGMxZjE0NjFkMAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseTMyXzY0LmFzbQpAQCAt
MCwwICsxLDExMjkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDExLTIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0Ogor
IyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
KyMgQ29uc3RhbnRzCisKK2NvbnN0IE1zd09mZnNldCA9IDQKK2NvbnN0IExzd09mZnNldCA9IDAK
KworIyBPcGNvZGVzIHRoYXQgc2hvdWxkIGV2ZW50dWFsbHkgYmUgc2hhcmVkIHdpdGggSlMgbGxp
bnQKKword2FzbU9wKG1vdiwgV2FzbU1vdiwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBt
X3NyYywgdDEsIHQwKQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCisjIFdhc20g
c3BlY2lmaWMgYnl0ZWNvZGVzCisKK21hY3JvIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRk
aW5nT2Zmc2V0KHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKKyAgICAjIFRoaXMgbWFjcm8gdXBkYXRl
cyAncG9pbnRlcicgdG8gdGFyZ2V0IGFkZHJlc3MsIGFuZCBtYXkgdGhyYXNoICdvZmZzZXQnCitp
ZiBBUk12NworICAgICMgTm90IGVub3VnaCByZWdpc3RlcnMgb24gYXJtIHRvIGtlZXAgdGhlIG1l
bW9yeSBiYXNlIGFuZCBzaXplIGluIHBpbm5lZAorICAgICMgcmVnaXN0ZXJzLCBzbyBsb2FkIHRo
ZW0gb24gZWFjaCBhY2Nlc3MgaW5zdGVhZC4gRklYTUU6IGltcHJvdmUgdGhpcy4KKyAgICBhZGRw
cyBvZmZzZXQsIHBvaW50ZXIKKyAgICBiY3MgLnRocm93CisgICAgYWRkcHMgc2l6ZSAtIDEsIHBv
aW50ZXIsIG9mZnNldCAjIFVzZSBvZmZzZXQgYXMgc2NyYXRjaCByZWdpc3RlcgorICAgIGJjcyAu
dGhyb3cKKyAgICBicGIgb2Zmc2V0LCBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRCb3VuZHNDaGVj
a2luZ1NpemVbd2FzbUluc3RhbmNlXSwgLmNvbnRpbnVhdGlvbgorLnRocm93OgorICAgIHRocm93
RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNjZXNzKQorLmNvbnRpbnVhdGlvbjoKKyAgICBh
ZGRwIFdhc206Okluc3RhbmNlOjptX2NhY2hlZE1lbW9yeVt3YXNtSW5zdGFuY2VdLCBwb2ludGVy
CitlbHNlCisgICAgY3Jhc2goKQorZW5kCitlbmQKKworbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFy
ZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2socG9pbnRlciwgb2Zmc2V0LCBz
aXplKQorICAgICMgVGhpcyBtYWNybyB1cGRhdGVzICdwb2ludGVyJyB0byB0YXJnZXQgYWRkcmVz
cywgYW5kIG1heSB0aHJhc2ggJ29mZnNldCcKK2lmIEFSTXY3CisgICAgIyBOb3QgZW5vdWdoIHJl
Z2lzdGVycyBvbiBhcm0gdG8ga2VlcCB0aGUgbWVtb3J5IGJhc2UgYW5kIHNpemUgaW4gcGlubmVk
CisgICAgIyByZWdpc3RlcnMsIHNvIGxvYWQgdGhlbSBvbiBlYWNoIGFjY2VzcyBpbnN0ZWFkLiBG
SVhNRTogaW1wcm92ZSB0aGlzLgorICAgIGFkZHBzIG9mZnNldCwgcG9pbnRlcgorICAgIGJjcyAu
dGhyb3cKKyAgICBhZGRwcyBzaXplIC0gMSwgcG9pbnRlciwgb2Zmc2V0ICMgVXNlIG9mZnNldCBh
cyBzY3JhdGNoIHJlZ2lzdGVyCisgICAgYmNzIC50aHJvdworICAgIGJwYiBvZmZzZXQsIFdhc206
Okluc3RhbmNlOjptX2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZVt3YXNtSW5zdGFuY2VdLCAuY29u
dGludWF0aW9uCisudGhyb3c6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlB
Y2Nlc3MpCisuY29udGludWF0aW9uOgorICAgIGFkZHAgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVk
TWVtb3J5W3dhc21JbnN0YW5jZV0sIHBvaW50ZXIKKyAgICBidHBueiBwb2ludGVyLCAoc2l6ZSAt
IDEpLCAudGhyb3cKK2Vsc2UKKyAgICBjcmFzaCgpCitlbmQKK2VuZAorCittYWNybyB3YXNtTG9h
ZE9wKG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4pCisgICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFj
cm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQorICAgICAgICB3Z2V0
dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJB
ZGRpbmdPZmZzZXQodDAsIHQxLCBzaXplKQorICAgICAgICBmbih0MCwgdDMsIHQyKQorICAgICAg
ICByZXR1cm4yaShjdHgsIHQzLCB0MikKKyAgICBlbmQpCitlbmQKKword2FzbUxvYWRPcChsb2Fk
OF91LCBXYXNtTG9hZDhVLCAxLCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2Fk
YiBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAgIG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNt
TG9hZE9wKGxvYWQxNl91LCBXYXNtTG9hZDE2VSwgMiwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RM
c3cpCisgICAgbG9hZGggTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1z
dworZW5kKQord2FzbUxvYWRPcChsb2FkMzJfdSwgV2FzbUxvYWQzMlUsIDQsIG1hY3JvKGFkZHIs
IGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRpIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAg
bW92ZSAwLCBkc3RNc3cKK2VuZCkKK3dhc21Mb2FkT3AobG9hZDY0X3UsIFdhc21Mb2FkNjRVLCA4
LCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICAjIE1pZ2h0IGJlIHVuYWxpZ25lZCwg
c28gY2FuJ3QgdXNlIGxvYWQyaWEKKyAgICBsb2FkaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdwor
ICAgIGxvYWRpIE1zd09mZnNldFthZGRyXSwgZHN0TXN3CitlbmQpCisKK3dhc21Mb2FkT3AoaTMy
X2xvYWQ4X3MsIFdhc21JMzJMb2FkOFMsIDEsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQor
ICAgIGxvYWRic2kgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdwor
ZW5kKQord2FzbUxvYWRPcChpMzJfbG9hZDE2X3MsIFdhc21JMzJMb2FkMTZTLCAyLCBtYWNybyhh
ZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkaHNpIExzd09mZnNldFthZGRyXSwgZHN0THN3
CisgICAgbW92ZSAwLCBkc3RNc3cKK2VuZCkKK3dhc21Mb2FkT3AoaTY0X2xvYWQ4X3MsIFdhc21J
NjRMb2FkOFMsIDEsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRic2kgTHN3
T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICByc2hpZnRpIGRzdExzdywgMzEsIGRzdE1zdworZW5k
KQord2FzbUxvYWRPcChpNjRfbG9hZDE2X3MsIFdhc21JNjRMb2FkMTZTLCAyLCBtYWNybyhhZGRy
LCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkaHNpIExzd09mZnNldFthZGRyXSwgZHN0THN3Cisg
ICAgcnNoaWZ0aSBkc3RMc3csIDMxLCBkc3RNc3cKK2VuZCkKK3dhc21Mb2FkT3AoaTY0X2xvYWQz
Ml9zLCBXYXNtSTY0TG9hZDMyUywgNCwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAg
bG9hZGkgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICByc2hpZnRpIGRzdExzdywgMzEsIGRz
dE1zdworZW5kKQorCittYWNybyB3YXNtU3RvcmVPcChuYW1lLCBzdHJ1Y3QsIHNpemUsIGZuKQor
ICAgIHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwg
bV9wb2ludGVyLCB0MCkKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAg
IGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KHQwLCB0MSwgc2l6ZSkKKyAg
ICAgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQzLCB0MikKKyAgICAgICAgZm4odDMsIHQyLCB0
MCkKKyAgICAgICAgZGlzcGF0Y2goY3R4KQorICAgIGVuZCkKK2VuZAorCit3YXNtU3RvcmVPcChz
dG9yZTgsIFdhc21TdG9yZTgsIDEsIG1hY3JvKHNyY01zdywgc3JjTHN3LCBhZGRyKQorICAgIHN0
b3JlYiBzcmNMc3csIExzd09mZnNldFthZGRyXQorZW5kKQord2FzbVN0b3JlT3Aoc3RvcmUxNiwg
V2FzbVN0b3JlMTYsIDIsIG1hY3JvKHNyY01zdywgc3JjTHN3LCBhZGRyKQorICAgIHN0b3JlaCBz
cmNMc3csIExzd09mZnNldFthZGRyXQorZW5kKQord2FzbVN0b3JlT3Aoc3RvcmUzMiwgV2FzbVN0
b3JlMzIsIDQsIG1hY3JvKHNyY01zdywgc3JjTHN3LCBhZGRyKQorICAgIHN0b3JlaSBzcmNMc3cs
IExzd09mZnNldFthZGRyXQorZW5kKQord2FzbVN0b3JlT3Aoc3RvcmU2NCwgV2FzbVN0b3JlNjQs
IDgsIG1hY3JvKHNyY01zdywgc3JjTHN3LCBhZGRyKQorICAgICMgTWlnaHQgYmUgdW5hbGlnbmVk
LCBzbyBjYW4ndCB1c2Ugc3RvcmUyaWEKKyAgICBzdG9yZWkgc3JjTHN3LCBMc3dPZmZzZXRbYWRk
cl0KKyAgICBzdG9yZWkgc3JjTXN3LCBNc3dPZmZzZXRbYWRkcl0KK2VuZCkKKword2FzbU9wKHJl
Zl9pc19udWxsLCBXYXNtUmVmSXNOdWxsLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1f
cmVmLCB0MSwgdDApICMgdDAgaXMgdW51c2VkCisgICAgY2llcSB0MSwgTnVsbFRhZywgdDAKKyAg
ICByZXR1cm5pKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChnZXRfZ2xvYmFsLCBXYXNtR2V0R2xv
YmFsLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNt
SW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbG9h
ZDJpYSBbdDAsIHQxLCA4XSwgdDAsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQp
CisKK3dhc21PcChzZXRfZ2xvYmFsLCBXYXNtU2V0R2xvYmFsLCBtYWNybyhjdHgpCisgICAgbG9h
ZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1
KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQzLCB0
MikKKyAgICBzdG9yZTJpYSB0MiwgdDMsIFt0MCwgdDEsIDhdCisgICAgZGlzcGF0Y2goY3R4KQor
ZW5kKQorCit3YXNtT3AoZ2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNtR2V0R2xvYmFs
UG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1f
Z2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwg
dDEpCisgICAgbG9hZHAgW3QwLCB0MSwgOF0sIHQwCisgICAgbG9hZDJpYSBbdDBdLCB0MCwgdDEK
KyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKHNldF9nbG9iYWxfcG9y
dGFibGVfYmluZGluZywgV2FzbVNldEdsb2JhbFBvcnRhYmxlQmluZGluZywgbWFjcm8oY3R4KQor
ICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAg
ICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQorICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVl
LCB0MywgdDIpCisgICAgbG9hZHAgW3QwLCB0MSwgOF0sIHQwCisgICAgc3RvcmUyaWEgdDIsIHQz
LCBbdDBdCisgICAgZGlzcGF0Y2goY3R4KQorZW5kKQorCisjIE9wY29kZXMgdGhhdCBkb24ndCBo
YXZlIHRoZSBgYjNvcGAgZW50cnkgaW4gd2FzbS5qc29uLiBUaGlzIHNob3VsZCBiZSBrZXB0IGlu
IHN5bmMKKworbWFjcm8gY2FsbERpdlJlbShmbikKK2lmIEFSTXY3CisgICAgc3VicCBTdGFja0Fs
aWdubWVudCwgc3AKKyAgICBzdG9yZXAgUEMsIFtzcF0KKyAgICBjQ2FsbDQoZm4pCisgICAgbG9h
ZHAgW3NwXSwgUEMKKyAgICBhZGRwIFN0YWNrQWxpZ25tZW50LCBzcAorZWxzZQorICAgIGVycm9y
CitlbmQKK2VuZAorCisjIGkzMiBiaW5hcnkgb3BzCisKK3dhc21PcChpMzJfZGl2X3MsIFdhc21J
MzJEaXZTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCBhMCkKKyAgICBtbG9h
ZGkoY3R4LCBtX3JocywgYTEpCisKKyAgICBidGl6IGExLCAudGhyb3dEaXZpc2lvbkJ5WmVybwor
CisgICAgYmluZXEgYTEsIC0xLCAuc2FmZQorICAgIGJpZXEgYTAsIGNvbnN0ZXhwciBJTlQzMl9N
SU4sIC50aHJvd0ludGVnZXJPdmVyZmxvdworCisuc2FmZToKKyAgICBjYWxsRGl2UmVtKF9zbG93
X3BhdGhfd2FzbV9pMzJfZGl2X3MpCisgICAgcmV0dXJuaShjdHgsIHIwKQorCisudGhyb3dEaXZp
c2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKKworLnRocm93
SW50ZWdlck92ZXJmbG93OgorICAgIHRocm93RXhjZXB0aW9uKEludGVnZXJPdmVyZmxvdykKK2Vu
ZCkKKword2FzbU9wKGkzMl9kaXZfdSwgV2FzbUkzMkRpdlUsIG1hY3JvIChjdHgpCisgICAgbWxv
YWRpKGN0eCwgbV9saHMsIGEwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCBhMSkKKworICAgIGJ0
aXogYTEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBjYWxsRGl2UmVtKF9zbG93X3BhdGhf
d2FzbV9pMzJfZGl2X3UpCisgICAgcmV0dXJuaShjdHgsIHIwKQorCisudGhyb3dEaXZpc2lvbkJ5
WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9w
KGkzMl9yZW1fcywgV2FzbUkzMlJlbVMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9s
aHMsIGEwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCBhMSkKKworICAgIGJ0aXogYTEsIC50aHJv
d0RpdmlzaW9uQnlaZXJvCisKKyAgICBiaW5lcSBhMSwgLTEsIC5zYWZlCisgICAgYmluZXEgYTAs
IGNvbnN0ZXhwciBJTlQzMl9NSU4sIC5zYWZlCisKKyAgICBtb3ZlIDAsIHIwCisgICAgam1wIC5y
ZXR1cm4KKworLnNhZmU6CisgICAgY2FsbERpdlJlbShfc2xvd19wYXRoX3dhc21faTMyX3JlbV9z
KQorCisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCByMCkKKworLnRocm93RGl2aXNpb25CeVpl
cm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChp
MzJfcmVtX3UsIFdhc21JMzJSZW1VLCBtYWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhz
LCBhMCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgYTEpCisKKyAgICBidGl6IGExLCAudGhyb3dE
aXZpc2lvbkJ5WmVybworCisgICAgY2FsbERpdlJlbShfc2xvd19wYXRoX3dhc21faTMyX3JlbV91
KQorICAgIHJldHVybmkoY3R4LCByMCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhy
b3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKKyMgaTY0IGJpbmFyeSBvcHMKKwor
d2FzbU9wKGk2NF9hZGQsIFdhc21JNjRBZGQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwg
bV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBhZGRp
cyB0MiwgdDAKKyAgICBhZGNpICB0MywgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2Vu
ZCkKKword2FzbU9wKGk2NF9zdWIsIFdhc21JNjRTdWIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJp
KGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAg
ICBzdWJpcyB0MiwgdDAKKyAgICBzYmNpICB0MywgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0
MCkKK2VuZCkKKword2FzbU9wKGk2NF9tdWwsIFdhc21JNjRNdWwsIG1hY3JvKGN0eCkKKyAgICBt
bG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0
MikKKyAgICBtdWxpIHQyLCB0MQorICAgIG11bGkgdDAsIHQzCisgICAgdW11bGxpIHQwLCB0Miwg
dDAsIHQyCisgICAgYWRkaSB0MSwgdDIKKyAgICBhZGRpIHQzLCB0MgorICAgIHJldHVybjJpKGN0
eCwgdDIsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X2Rpdl9zLCBXYXNtSTY0RGl2UywgbWFjcm8g
KGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIGExLCBhMCkKKyAgICBtbG9hZDJpKGN0eCwg
bV9yaHMsIGEzLCBhMikKKworICAgIGJ0aW56IGEzLCAubm9uWmVyb0Rpdmlzb3IKKyAgICBidGl6
IGEyLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisubm9uWmVyb0Rpdmlzb3I6CisgICAgYmluZXEg
YTMsIC0xLCAuc2FmZQorICAgIGJpbmVxIGEyLCAtMSwgLnNhZmUKKyAgICBiaW5lcSBhMSwgY29u
c3RleHByIElOVDMyX01JTiwgLnNhZmUKKyAgICBidGl6IGEwLCAudGhyb3dJbnRlZ2VyT3ZlcmZs
b3cKKworLnNhZmU6CisgICAgY2FsbERpdlJlbShfc2xvd19wYXRoX3dhc21faTY0X2Rpdl9zKQor
ICAgIHJldHVybjJpKGN0eCwgcjEsIHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0
aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKKworLnRocm93SW50ZWdlck92ZXJmbG93Ogor
ICAgIHRocm93RXhjZXB0aW9uKEludGVnZXJPdmVyZmxvdykKK2VuZCkKKword2FzbU9wKGk2NF9k
aXZfdSwgV2FzbUk2NERpdlUsIG1hY3JvIChjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCBh
MSwgYTApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCBhMywgYTIpCisKKyAgICBidGlueiBhMywg
Lm5vblplcm9EaXZpc29yCisgICAgYnRpeiBhMiwgLnRocm93RGl2aXNpb25CeVplcm8KKworLm5v
blplcm9EaXZpc29yOgorICAgIGNhbGxEaXZSZW0oX3Nsb3dfcGF0aF93YXNtX2k2NF9kaXZfdSkK
KyAgICByZXR1cm4yaShjdHgsIHIxLCByMCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAg
dGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpNjRfcmVtX3Ms
IFdhc21JNjRSZW1TLCBtYWNybyAoY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgYTEsIGEw
KQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgYTMsIGEyKQorCisgICAgYnRpbnogYTMsIC5ub25a
ZXJvRGl2aXNvcgorICAgIGJ0aXogYTIsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKy5ub25aZXJv
RGl2aXNvcjoKKyAgICBiaW5lcSBhMywgLTEsIC5zYWZlCisgICAgYmluZXEgYTIsIC0xLCAuc2Fm
ZQorICAgIGJpbmVxIGExLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAuc2FmZQorICAgIGJ0aW56IGEw
LCAuc2FmZQorCisgICAgbW92ZSAwLCByMQorICAgIG1vdmUgMCwgcjAKKyAgICBqbXAgLnJldHVy
bgorCisuc2FmZToKKyAgICBjYWxsRGl2UmVtKF9zbG93X3BhdGhfd2FzbV9pNjRfcmVtX3MpCisK
Ky5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCByMSwgcjApCisKKy50aHJvd0RpdmlzaW9uQnla
ZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3Ao
aTY0X3JlbV91LCBXYXNtSTY0UmVtVSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9s
aHMsIGExLCBhMCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIGEzLCBhMikKKworICAgIGJ0aW56
IGEzLCAubm9uWmVyb0Rpdmlzb3IKKyAgICBidGl6IGEyLCAudGhyb3dEaXZpc2lvbkJ5WmVybwor
Cisubm9uWmVyb0Rpdmlzb3I6CisgICAgY2FsbERpdlJlbShfc2xvd19wYXRoX3dhc21faTY0X3Jl
bV91KQorICAgIHJldHVybjJpKGN0eCwgcjEsIHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoK
KyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9h
bmQsIFdhc21JNjRBbmQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0
MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBhbmRpIHQyLCB0MAorICAg
IGFuZGkgdDMsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChp
NjRfb3IsIFdhc21JNjRPciwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEs
IHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG9yaSB0MiwgdDAKKyAg
ICBvcmkgdDMsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChp
NjRfeG9yLCBXYXNtSTY0WG9yLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0
MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgeG9yaSB0MiwgdDAK
KyAgICB4b3JpIHQzLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNt
T3AoaTY0X3NobCwgV2FzbUk2NFNobCwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xo
cywgdDEsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MikKKworICAgIGFuZGkgMHgzZiwg
dDIKKyAgICBidGl6IHQyLCAucmV0dXJuCisgICAgYmliIHQyLCAzMiwgLmxlc3NUaGFuMzIKKwor
ICAgIHN1YmkgMzIsIHQyCisgICAgbHNoaWZ0aSB0MCwgdDIsIHQxCisgICAgbW92ZSAwLCB0MAor
ICAgIGptcCAucmV0dXJuCisKKy5sZXNzVGhhbjMyOgorICAgIGxzaGlmdGkgdDIsIHQxCisgICAg
bW92ZSAzMiwgdDMKKyAgICBzdWJpIHQyLCB0MworICAgIHVyc2hpZnRpIHQwLCB0MywgdDMKKyAg
ICBvcmkgdDMsIHQxCisgICAgbHNoaWZ0aSB0MiwgdDAKKworLnJldHVybjoKKyAgICByZXR1cm4y
aShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9zaHJfdSwgV2FzbUk2NFNoclUsIG1h
Y3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZGkoY3R4
LCBtX3JocywgdDIpCisKKyAgICBhbmRpIDB4M2YsIHQyCisgICAgYnRpeiB0MiwgLnJldHVybgor
ICAgIGJpYiB0MiwgMzIsIC5sZXNzVGhhbjMyCisKKyAgICBzdWJpIDMyLCB0MgorICAgIHVyc2hp
ZnRpIHQxLCB0MiwgdDAKKyAgICBtb3ZlIDAsIHQxCisgICAgam1wIC5yZXR1cm4KKworLmxlc3NU
aGFuMzI6CisgICAgdXJzaGlmdGkgdDIsIHQwCisgICAgbW92ZSAzMiwgdDMKKyAgICBzdWJpIHQy
LCB0MworICAgIGxzaGlmdGkgdDEsIHQzLCB0MworICAgIG9yaSB0MywgdDAKKyAgICB1cnNoaWZ0
aSB0MiwgdDEKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKwor
d2FzbU9wKGk2NF9zaHJfcywgV2FzbUk2NFNoclMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0
eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDIpCisKKyAgICBhbmRp
IDB4M2YsIHQyCisgICAgYnRpeiB0MiwgLnJldHVybgorICAgIGJpYiB0MiwgMzIsIC5sZXNzVGhh
bjMyCisKKyAgICBzdWJpIDMyLCB0MgorICAgIHJzaGlmdGkgdDEsIHQyLCB0MAorICAgIHJzaGlm
dGkgMzEsIHQxCisgICAgam1wIC5yZXR1cm4KKworLmxlc3NUaGFuMzI6CisgICAgdXJzaGlmdGkg
dDIsIHQwCisgICAgbW92ZSAzMiwgdDMKKyAgICBzdWJpIHQyLCB0MworICAgIGxzaGlmdGkgdDEs
IHQzLCB0MworICAgIG9yaSB0MywgdDAKKyAgICByc2hpZnRpIHQyLCB0MQorCisucmV0dXJuOgor
ICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3JvdHIsIFdhc21J
NjRSb3RyLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAg
bWxvYWRpKGN0eCwgbV9yaHMsIHQyKQorCisgICAgYW5kaSB0MiwgMHgyMCwgdDMKKyAgICBidGl6
IHQzLCAubm9Td2FwCisKKyAgICBtb3ZlIHQwLCB0MworICAgIG1vdmUgdDEsIHQwCisgICAgbW92
ZSB0MywgdDEKKworLm5vU3dhcDoKKyAgICBhbmRpIDB4MWYsIHQyCisgICAgYnRpeiB0MiwgLnJl
dHVybgorCisgICAgbW92ZSAzMiwgdDUKKyAgICBzdWJpIHQyLCB0NQorICAgIGxzaGlmdGkgdDAs
IHQ1LCB0MworICAgIGxzaGlmdGkgdDEsIHQ1LCB0NQorICAgIHVyc2hpZnRpIHQyLCB0MAorICAg
IHVyc2hpZnRpIHQyLCB0MQorICAgIG9yaSB0NSwgdDAKKyAgICBvcmkgdDMsIHQxCisKKy5yZXR1
cm46CisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfcm90bCwg
V2FzbUk2NFJvdGwsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkK
KyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDIpCisKKyAgICBhbmRpIHQyLCAweDIwLCB0MworICAg
IGJ0aXogdDMsIC5ub1N3YXAKKworICAgIG1vdmUgdDAsIHQzCisgICAgbW92ZSB0MSwgdDAKKyAg
ICBtb3ZlIHQzLCB0MQorCisubm9Td2FwOgorICAgIGFuZGkgMHgxZiwgdDIKKyAgICBidGl6IHQy
LCAucmV0dXJuCisKKyAgICBtb3ZlIDMyLCB0NQorICAgIHN1YmkgdDIsIHQ1CisgICAgdXJzaGlm
dGkgdDAsIHQ1LCB0MworICAgIHVyc2hpZnRpIHQxLCB0NSwgdDUKKyAgICBsc2hpZnRpIHQyLCB0
MAorICAgIGxzaGlmdGkgdDIsIHQxCisgICAgb3JpIHQ1LCB0MAorICAgIG9yaSB0MywgdDEKKwor
LnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9l
cSwgV2FzbUk2NEVxLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDAp
CisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAwLCB0NgorICAgIGJp
bmVxIHQxLCB0MywgLnJldHVybgorICAgIGNpZXEgdDAsIHQyLCB0NgorLnJldHVybjoKKyAgICBy
ZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRfbmUsIFdhc21JNjROZSwgbWFjcm8o
Y3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBt
X3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYKKyAgICBiaW5lcSB0MSwgdDMsIC5yZXR1cm4K
KyAgICBjaW5lcSB0MCwgdDIsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2Vu
ZCkKKword2FzbU9wKGk2NF9sdF9zLCBXYXNtSTY0THRTLCBtYWNybyhjdHgpCisgICAgbWxvYWQy
aShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisg
ICAgbW92ZSAxLCB0NgorICAgIGJpbHQgdDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0Ngor
ICAgIGJpZ3QgdDEsIHQzLCAucmV0dXJuCisgICAgY2liIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEs
IHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9s
ZV9zLCBXYXNtSTY0TGVTLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwg
dDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAg
IGJpbHQgdDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpZ3QgdDEsIHQzLCAu
cmV0dXJuCisgICAgY2liZXEgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46Cisg
ICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2x0X3UsIFdhc21JNjRMdFUs
IG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJp
KGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmliIHQxLCB0MywgLnJl
dHVybgorICAgIG1vdmUgMCwgdDYKKyAgICBiaWEgdDEsIHQzLCAucmV0dXJuCisgICAgY2liIHQw
LCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikK
K2VuZCkKKword2FzbU9wKGk2NF9sZV91LCBXYXNtSTY0TGVVLCBtYWNybyhjdHgpCisgICAgbWxv
YWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIp
CisgICAgbW92ZSAxLCB0NgorICAgIGJpYiB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2
CisgICAgYmlhIHQxLCB0MywgLnJldHVybgorICAgIGNpYmVxIHQwLCB0MiwgdDYKKyAgICBhbmRp
IDEsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2
NF9ndF9zLCBXYXNtSTY0R3RTLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0
MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0Ngor
ICAgIGJpZ3QgdDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpbHQgdDEsIHQz
LCAucmV0dXJuCisgICAgY2lhIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgor
ICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9nZV9zLCBXYXNtSTY0R2VT
LCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQy
aShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAgIGJpZ3QgdDEsIHQzLCAu
cmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpbHQgdDEsIHQzLCAucmV0dXJuCisgICAgY2lh
ZXEgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgs
IHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2d0X3UsIFdhc21JNjRHdFUsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQz
LCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlhIHQxLCB0MywgLnJldHVybgorICAgIG1vdmUg
MCwgdDYKKyAgICBiaWIgdDEsIHQzLCAucmV0dXJuCisgICAgY2lhIHQwLCB0MiwgdDYKKyAgICBh
bmRpIDEsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9w
KGk2NF9nZV91LCBXYXNtSTY0R2VVLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhz
LCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAwLCB0
NgorICAgIGJpYiB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlhIHQxLCB0
MywgLnJldHVybgorICAgIGNpYWVxIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJu
OgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKworIyBpNjQgdW5hcnkgb3BzCisKK3dhc21P
cChpNjRfY3R6LCBXYXNtSTY0Q3R6LCBtYWNybyAoY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX29w
ZXJhbmQsIHQxLCB0MCkKKyAgICBidGl6IHQwLCAudG9wCisKKyAgICB0emNudGkgdDAsIHQwCisg
ICAgam1wIC5yZXR1cm4KKworLnRvcDoKKyAgICB0emNudGkgdDEsIHQwCisgICAgYWRkaSAzMiwg
dDAKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIDAsIHQwKQorZW5kKQorCit3YXNtT3Ao
aTY0X2NseiwgV2FzbUk2NENseiwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJh
bmQsIHQxLCB0MCkKKyAgICBidGl6IHQxLCAuYm90dG9tCisKKyAgICBsemNudGkgdDEsIHQwCisg
ICAgam1wIC5yZXR1cm4KKworLmJvdHRvbToKKyAgICBsemNudGkgdDAsIHQwCisgICAgYWRkaSAz
MiwgdDAKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIDAsIHQwKQorZW5kKQorCit3YXNt
T3AoaTY0X3BvcGNudCwgV2FzbUk2NFBvcGNudCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZDJpKGN0
eCwgbV9vcGVyYW5kLCBhMywgYTIpCisgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIG1v
dmUgUEMsIGEwCisgICAgY0NhbGwyKF9zbG93X3BhdGhfd2FzbV9wb3Bjb3VudGxsKQorICAgIHJl
c3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQorICAgIHJldHVybjJpKGN0eCwgMCwgcjEpCitlbmQpCisK
K3dhc21PcChpNjRfZXF6LCBXYXNtSTY0RXF6LCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgs
IG1fb3BlcmFuZCwgdDEsIHQwKQorICAgIG1vdmUgMCwgdDIKKyAgICBidGlueiB0MSwgLnJldHVy
bgorICAgIGNpZXEgdDAsIDAsIHQyCisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0MikKK2Vu
ZCkKKworIyBmNjQgYmluYXJ5IG9wcworCit3YXNtT3AoZjY0X2NvcHlzaWduLCBXYXNtRjY0Q29w
eXNpZ24sIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBt
bG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikgIyB0MiB1bnVzZWQKKworICAgIGFuZGkgMHg3ZmZm
ZmZmZiwgdDEKKyAgICBhbmRpIDB4ODAwMDAwMDAsIHQzCisgICAgb3JpIHQzLCB0MQorCisgICAg
cmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKKyMgVHlwZSBjb252ZXJzaW9uIG9wcworCit3
YXNtT3AoaTY0X2V4dGVuZF9zX2kzMiwgV2FzbUk2NEV4dGVuZFNJMzIsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHJzaGlmdGkgdDAsIDMxLCB0MQorICAg
IHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X2V4dGVuZF91X2kzMiwg
V2FzbUk2NEV4dGVuZFVJMzIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQs
IHQwKQorICAgIHJldHVybjJpKGN0eCwgMCwgdDApCitlbmQpCisKK3dhc21PcChmNjRfcmVpbnRl
cnByZXRfaTY0LCBXYXNtRjY0UmVpbnRlcnByZXRJNjQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJp
KGN0eCwgbV9vcGVyYW5kLCB0MSwgdDApCisgICAgZmlpMmQgdDAsIHQxLCBmdDAKKyAgICByZXR1
cm5kKGN0eCwgZnQwKQorZW5kKQorCit3YXNtT3AoaTY0X3JlaW50ZXJwcmV0X2Y2NCwgV2FzbUk2
NFJlaW50ZXJwcmV0RjY0LCBtYWNybyhjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBm
dDApCisgICAgZmQyaWkgZnQwLCB0MCwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2Vu
ZCkKKword2FzbU9wKGkzMl90cnVuY19zX2Y2NCwgV2FzbUkzMlRydW5jU0Y2NCwgbWFjcm8gKGN0
eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmVpaSAweGMxZTAw
MDAwMDAyMDAwMDAsIHQxLCB0MCAjIElOVDMyX01JTiAtIDEuMAorICAgIGZpaTJkIHQwLCB0MSwg
ZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3Zl
aWkgMHg0MWUwMDAwMDAwMDAwMDAwLCB0MSwgdDAgIyAtSU5UMzJfTUlOCisgICAgZmlpMmQgdDAs
IHQxLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAg
IHRydW5jYXRlZDJpcyBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3Vu
ZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3
YXNtT3AoaTMyX3RydW5jX3VfZjY0LCBXYXNtSTMyVHJ1bmNVRjY0LCBtYWNybyAoY3R4KQorICAg
IG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZWlpIDB4YmZmMDAwMDAwMDAw
MDAwMCwgdDEsIHQwICMgLTEuMAorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRsdGVxdW4g
ZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlaWkgMHg0MWYwMDAwMDAwMDAw
MDAwLCB0MSwgdDAgIyBJTlQzMl9NSU4gKiAtMi4wCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAg
ICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZDJp
IGZ0MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAg
IHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3Nsb3dXYXNtT3AoaTY0
X3RydW5jX3NfZjMyKQorc2xvd1dhc21PcChpNjRfdHJ1bmNfdV9mMzIpCitzbG93V2FzbU9wKGk2
NF90cnVuY19zX2Y2NCkKK3Nsb3dXYXNtT3AoaTY0X3RydW5jX3VfZjY0KQorCit3YXNtT3AoaTMy
X3RydW5jX3NhdF9mNjRfcywgV2FzbUkzMlRydW5jU2F0RjY0UywgbWFjcm8gKGN0eCkKKyAgICBt
bG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmVpaSAweGMxZTAwMDAwMDAyMDAw
MDAsIHQxLCB0MCAjIElOVDMyX01JTiAtIDEuMAorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAg
YmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU4KKworICAgIG1v
dmVpaSAweDQxZTAwMDAwMDAwMDAwMDAsIHQxLCB0MCAjIC1JTlQzMl9NSU4KKyAgICBmaWkyZCB0
MCwgdDEsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1h
eAorCisgICAgdHJ1bmNhdGVkMmlzIGZ0MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5v
dXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU46CisgICAgYmRlcSBmdDAsIGZ0MCwgLm91dE9mQm91
bmRzVHJ1bmNTYXRNaW4KKyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UMzJfTUFYKSwg
dDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAg
IG1vdmUgKGNvbnN0ZXhwciBJTlQzMl9NSU4pLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2Vu
ZCkKKword2FzbU9wKGkzMl90cnVuY19zYXRfZjY0X3UsIFdhc21JMzJUcnVuY1NhdEY2NFUsIG1h
Y3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlaWkg
MHhiZmYwMDAwMDAwMDAwMDAwLCB0MSwgdDAgIyAtMS4wCisgICAgZmlpMmQgdDAsIHQxLCBmdDEK
KyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKworICAgIG1v
dmVpaSAweDQxZjAwMDAwMDAwMDAwMDAsIHQxLCB0MCAjIElOVDMyX01JTiAqIC0yLjAKKyAgICBm
aWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1heAorCisgICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkK
KworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybmko
Y3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHBy
IFVJTlQzMl9NQVgpLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKworc2xvd1dhc21P
cChpNjRfdHJ1bmNfc2F0X2YzMl9zKQorc2xvd1dhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl91KQor
c2xvd1dhc21PcChpNjRfdHJ1bmNfc2F0X2Y2NF9zKQorc2xvd1dhc21PcChpNjRfdHJ1bmNfc2F0
X2Y2NF91KQorCisjIEV4dGVuZCBvcHMKKword2FzbU9wKGk2NF9leHRlbmQ4X3MsIFdhc21JNjRF
eHRlbmQ4UywgbWFjcm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAg
c3hiMmkgdDAsIHQwCisgICAgcnNoaWZ0aSB0MCwgMzEsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0
MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfZXh0ZW5kMTZfcywgV2FzbUk2NEV4dGVuZDE2Uywg
bWFjcm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgc3hoMmkgdDAs
IHQwCisgICAgcnNoaWZ0aSB0MCwgMzEsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitl
bmQpCisKK3dhc21PcChpNjRfZXh0ZW5kMzJfcywgV2FzbUk2NEV4dGVuZDE2UywgbWFjcm8oY3R4
KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgcnNoaWZ0aSB0MCwgMzEsIHQx
CisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKKyMgQXRvbWljcworCittYWNybyB3
YXNtQXRvbWljQmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBm
bmIsIGZuaCwgZm5pLCBmbjJpKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzglbG93ZXJDYXNl
T3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13OCV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4
KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgs
IG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAg
IGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KHQzLCB0NSwgMSkKKyAgICAg
ICAgZm5iKHQwLCBbdDNdLCB0MiwgdDUsIHQ2KQorICAgICAgICBhbmRpIDB4ZmYsIHQ2ICMgRklY
TUU6IFplcm9FeHRlbmQ4VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJpYmVxIHQ2LCAw
eGZmLCAub2sgZW5kKQorICAgICAgICByZXR1cm4yaShjdHgsIDAsIHQ2KQorICAgIGVuZCkKKyAg
ICB3YXNtT3AoaTY0X2F0b21pY19ybXcxNiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9t
aWNSbXcxNiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4
LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAg
ICAgbWxvYWRpKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQ
b2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKHQzLCB0NSwgMikKKyAgICAgICAg
Zm5oKHQwLCBbdDNdLCB0MiwgdDUsIHQ2KQorICAgICAgICBhbmRpIDB4ZmZmZiwgdDYgIyBGSVhN
RTogWmVyb0V4dGVuZDE2VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJpYmVxIHQ2LCAw
eGZmZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybjJpKGN0eCwgMCwgdDYpCisgICAgZW5kKQor
ICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0
b21pY1JtdzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShj
dHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAg
ICAgICBtbG9hZGkoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFy
ZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2sodDMsIHQ1LCA0KQorICAgICAg
ICBmbmkodDAsIFt0M10sIHQyLCB0NSwgdDYpCisgICAgICAgIHJldHVybjJpKGN0eCwgMCwgdDYp
CisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdyVsb3dlckNhc2VPcGNvZGUlLCBX
YXNtSTY0QXRvbWljUm13JXVwcGVyQ2FzZU9wY29kZSUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxv
YWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUp
CisgICAgICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVlLCB0MSwgdDApCisgICAgICAgIGVtaXRDaGVj
a0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKHQzLCB0NSwg
OCkKKyAgICAgICAgcHVzaCB0NCAjIFRoaXMgaXMgdGhlIFBCLCBzbyBuZWVkIHRvIGJlIHNhdmVk
IGFuZCByZXN0b3JlZAorICAgICAgICBmbjJpKHQxLCB0MCwgW3QzXSwgdDQsIHQyLCB0NSwgdDcs
IHQ2KQorICAgICAgICBwb3AgdDQKKyAgICAgICAgcmV0dXJuMmkoY3R4LCB0NywgdDYpCisgICAg
ZW5kKQorZW5kCisKK21hY3JvIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhsb3dl
ckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5pLCBmbjJpKQorICAgIHdhc21BdG9taWNC
aW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsCisgICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDZHUFIpCisgICAgICAgICAgICAgICAgZmVu
Y2UKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5rYiBtZW0sIHQ2
R1BSCisgICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0NkdQUiwgdDJHUFIpCisgICAgICAgICAg
ICAgICAgc3RvcmVjb25kYiB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgICAgIGJpbmVx
IHQ1R1BSLCAwLCAubG9vcAorICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgIGVuZCwKKyAg
ICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0NkdQUikKKyAgICAgICAgICAg
ICAgICBmZW5jZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9hZGxpbmto
IG1lbSwgdDZHUFIKKyAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQ2R1BSLCB0MkdQUikKKyAg
ICAgICAgICAgICAgICBzdG9yZWNvbmRoIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICAg
ICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAg
ZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQ2R1BSKQorICAg
ICAgICAgICAgICAgIGZlbmNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBs
b2FkbGlua2kgbWVtLCB0NkdQUgorICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDZHUFIsIHQy
R1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29uZGkgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAg
ICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBmZW5jZQor
ICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQxR1BSLCB0MEdQUiwgbWVtLCB0NEdQUiwgdDJH
UFIsIHQ1R1BSLCB0N0dQUiwgdDZHUFIpCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAg
ICAgIC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5rMmkgbWVtLCB0NkdQUiwgdDdHUFIK
KyAgICAgICAgICAgICAgICBmbjJpKHQxR1BSLCB0MEdQUiwgdDdHUFIsIHQ2R1BSLCB0NEdQUiwg
dDJHUFIpCisgICAgICAgICAgICAgICAgc3RvcmVjb25kMmkgdDVHUFIsIHQyR1BSLCB0NEdQUiwg
bWVtCisgICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAg
ICAgZmVuY2UKKyAgICAgICAgZW5kKQorZW5kCisKK2lmIEFSTXY3CisgICAgd2FzbUF0b21pY0Jp
bmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9hZGQsIEFkZCwKKyAgICAgICAgbWFjcm8oc3JjMCwgc3Jj
MSwgZHN0KQorICAgICAgICAgICAgYWRkaSBzcmMwLCBzcmMxLCBkc3QKKyAgICAgICAgZW5kLAor
ICAgICAgICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3LCBzcmMxTXN3LCBzcmMxTHN3LCBkc3RNc3cs
IGRzdExzdykKKyAgICAgICAgICAgIGFkZGlzIHNyYzBMc3csIHNyYzFMc3csIGRzdExzdworICAg
ICAgICAgICAgYWRjaSAgc3JjME1zdywgc3JjMU1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAg
ICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3N1YiwgU3ViLAorICAgICAgICBt
YWNybyhzcmMwLCBzcmMxLCBkc3QpCisgICAgICAgICAgICBzdWJpIHNyYzEsIHNyYzAsIGRzdAor
ICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNy
YzFMc3csIGRzdE1zdywgZHN0THN3KQorICAgICAgICAgICAgc3ViaXMgc3JjMUxzdywgc3JjMExz
dywgZHN0THN3CisgICAgICAgICAgICBzYmNpICBzcmMxTXN3LCBzcmMwTXN3LCBkc3RNc3cKKyAg
ICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeGNoZywg
WGNoZywKKyAgICAgICAgbWFjcm8oc3JjMCwgc3JjMSwgZHN0KQorICAgICAgICAgICAgbW92ZSBz
cmMwLCBkc3QKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3LCBz
cmMxTXN3LCBzcmMxTHN3LCBkc3RNc3csIGRzdExzdykKKyAgICAgICAgICAgIG1vdmUgc3JjMExz
dywgZHN0THN3CisgICAgICAgICAgICBtb3ZlIHNyYzBNc3csIGRzdE1zdworICAgICAgICBlbmQp
CisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9hbmQsIEFuZCwKKyAgICAg
ICAgbWFjcm8oc3JjMCwgc3JjMSwgZHN0KQorICAgICAgICAgICAgYW5kaSBzcmMwLCBzcmMxLCBk
c3QKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3LCBzcmMxTXN3
LCBzcmMxTHN3LCBkc3RNc3csIGRzdExzdykKKyAgICAgICAgICAgIGFuZGkgc3JjMExzdywgc3Jj
MUxzdywgZHN0THN3CisgICAgICAgICAgICBhbmRpIHNyYzBNc3csIHNyYzFNc3csIGRzdE1zdwor
ICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9vciwg
T3IsCisgICAgICAgIG1hY3JvKHNyYzAsIHNyYzEsIGRzdCkKKyAgICAgICAgICAgIG9yaSBzcmMw
LCBzcmMxLCBkc3QKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3
LCBzcmMxTXN3LCBzcmMxTHN3LCBkc3RNc3csIGRzdExzdykKKyAgICAgICAgICAgIG9yaSBzcmMw
THN3LCBzcmMxTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIG9yaSBzcmMwTXN3LCBzcmMxTXN3LCBk
c3RNc3cKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NB
UyhfeG9yLCBYb3IsCisgICAgICAgIG1hY3JvKHNyYzAsIHNyYzEsIGRzdCkKKyAgICAgICAgICAg
IHhvcmkgc3JjMCwgc3JjMSwgZHN0CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8oc3JjME1z
dywgc3JjMExzdywgc3JjMU1zdywgc3JjMUxzdywgZHN0TXN3LCBkc3RMc3cpCisgICAgICAgICAg
ICB4b3JpIHNyYzBMc3csIHNyYzFMc3csIGRzdExzdworICAgICAgICAgICAgeG9yaSBzcmMwTXN3
LCBzcmMxTXN3LCBkc3RNc3cKKyAgICAgICAgZW5kKQorZW5kCisKK21hY3JvIHdhc21BdG9taWND
b21wYXJlRXhjaGFuZ2VPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwg
Zm5oLCBmbmksIGZuMmkpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNv
ZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisg
ICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9v
ZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZDJpKGN0eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAg
ICAgICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwgdDcsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQ
cmVwYXJlUG9pbnRlckFkZGluZ09mZnNldCh0MywgdDUsIDEpCisgICAgICAgIGZuYih0MSwgdDAs
IHQ3LCB0MiwgW3QzXSwgdDYsIHQ1KQorICAgICAgICBhbmRpIDB4ZmYsIHQwICMgRklYTUU6IFpl
cm9FeHRlbmQ4VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJpYmVxIHQwLCAweGZmLCAu
b2sgZW5kKQorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJpZXEgdDEsIDAsIC5vayBlbmQpCisg
ICAgICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0
b21pY19ybXcxNiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXcxNiV1cHBlckNh
c2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQz
KQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWQyaShjdHgs
IG1fZXhwZWN0ZWQsIHQxLCB0MCkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQ3LCB0
MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxp
Z25tZW50Q2hlY2sodDMsIHQ1LCAyKQorICAgICAgICBmbmgodDEsIHQwLCB0NywgdDIsIFt0M10s
IHQ2LCB0NSkKKyAgICAgICAgYW5kaSAweGZmZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQxNlRv
NjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBiaWJlcSB0MCwgMHhmZmZmLCAub2sgZW5kKQor
ICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJpZXEgdDEsIDAsIC5vayBlbmQpCisgICAgICAgIHJl
dHVybjJpKGN0eCwgdDEsIHQwKQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcz
MiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXczMiV1cHBlckNhc2VPcGNvZGUl
VSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAg
ICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fZXhwZWN0
ZWQsIHQxLCB0MCkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQ3LCB0MikKKyAgICAg
ICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hl
Y2sodDMsIHQ1LCA4KQorICAgICAgICBmbmkodDEsIHQwLCB0NywgdDIsIFt0M10sIHQ2LCB0NSkK
KyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBiaWVxIHQxLCAwLCAub2sgZW5kKQorICAgICAgICBy
ZXR1cm4yaShjdHgsIHQxLCB0MCkKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13
JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21JNjRBdG9taWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFj
cm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0
dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fZXhwZWN0ZWQsIHQx
LCB0MCkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQ3LCB0MikKKyAgICAgICAgZW1p
dENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2sodDMs
IHQ1LCA4KQorICAgICAgICBwdXNoIHQ0ICMgVGhpcyBpcyB0aGUgUEIsIHNvIG5lZWQgdG8gYmUg
c2F2ZWQgYW5kIHJlc3RvcmVkCisgICAgICAgIGZuMmkodDEsIHQwLCB0NywgdDIsIFt0M10sIHQ0
LCB0NiwgdDUpCisgICAgICAgIHBvcCB0NAorICAgICAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkK
KyAgICBlbmQpCitlbmQKKworaWYgQVJNdjcKKy8vIGV4cDogImV4cGVjdGVkIiwgdmFsOiAidmFs
dWUiLCByZXM6ICJyZXN1bHQiCit3YXNtQXRvbWljQ29tcGFyZUV4Y2hhbmdlT3BzKF9jbXB4Y2hn
LCBDbXB4Y2hnLAorICAgIG1hY3JvKGV4cE1zdywgZXhwTHN3LCB2YWxNc3csIHZhbExzdywgbWVt
LCBzY3JhdGNoLCByZXNMc3cpCisgICAgICAgICAgICBmZW5jZQorICAgICAgICAubG9vcDoKKyAg
ICAgICAgICAgIGxvYWRsaW5rYiBtZW0sIHJlc0xzdworICAgICAgICAgICAgYmluZXEgZXhwTHN3
LCByZXNMc3csIC5mYWlsCisgICAgICAgICAgICBiaW5lcSBleHBNc3csIDAsIC5mYWlsCisgICAg
ICAgICAgICBzdG9yZWNvbmRiIHNjcmF0Y2gsIHZhbExzdywgbWVtCisgICAgICAgICAgICBiaWVx
IHNjcmF0Y2gsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6
CisgICAgICAgICAgICBzdG9yZWNvbmRiIHNjcmF0Y2gsIHJlc0xzdywgbWVtCisgICAgICAgICAg
ICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAg
LmRvbmU6CisgICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAgbW92ZSByZXNMc3csIGV4cExz
dworICAgICAgICAgICAgbW92ZSAwLCBleHBNc3cKKyAgICBlbmQsCisgICAgbWFjcm8oZXhwTXN3
LCBleHBMc3csIHZhbE1zdywgdmFsTHN3LCBtZW0sIHNjcmF0Y2gsIHJlc0xzdykKKyAgICAgICAg
ICAgIGZlbmNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmtoIG1lbSwgcmVz
THN3CisgICAgICAgICAgICBiaW5lcSBleHBMc3csIHJlc0xzdywgLmZhaWwKKyAgICAgICAgICAg
IGJpbmVxIGV4cE1zdywgMCwgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZGggc2NyYXRjaCwg
dmFsTHN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAg
ICAgIGptcCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZGggc2Ny
YXRjaCwgcmVzTHN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAg
ICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIGZlbmNlCisg
ICAgICAgICAgICBtb3ZlIHJlc0xzdywgZXhwTHN3CisgICAgICAgICAgICBtb3ZlIDAsIGV4cE1z
dworICAgIGVuZCwKKyAgICBtYWNybyhleHBNc3csIGV4cExzdywgdmFsTXN3LCB2YWxMc3csIG1l
bSwgc2NyYXRjaCwgcmVzTHN3KQorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgLmxvb3A6Cisg
ICAgICAgICAgICBsb2FkbGlua2kgbWVtLCByZXNMc3cKKyAgICAgICAgICAgIGJpbmVxIGV4cExz
dywgcmVzTHN3LCAuZmFpbAorICAgICAgICAgICAgYmluZXEgZXhwTXN3LCAwLCAuZmFpbAorICAg
ICAgICAgICAgc3RvcmVjb25kaSBzY3JhdGNoLCB2YWxMc3csIG1lbQorICAgICAgICAgICAgYmll
cSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWls
OgorICAgICAgICAgICAgc3RvcmVjb25kaSBzY3JhdGNoLCByZXNMc3csIG1lbQorICAgICAgICAg
ICAgYmllcSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAg
IC5kb25lOgorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIG1vdmUgcmVzTHN3LCBleHBM
c3cKKyAgICAgICAgICAgIG1vdmUgMCwgZXhwTXN3CisgICAgZW5kLAorICAgIG1hY3JvKGV4cE1z
dywgZXhwTHN3LCB2YWxNc3csIHZhbExzdywgbWVtLCBzY3JhdGNoLCByZXNNc3csIHJlc0xzdykK
KyAgICAgICAgICAgIGZlbmNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmsy
aSBtZW0sIHJlc0xzdywgcmVzTXN3CisgICAgICAgICAgICBiaW5lcSBleHBMc3csIHJlc0xzdywg
LmZhaWwKKyAgICAgICAgICAgIGJpbmVxIGV4cE1zdywgcmVzTXN3LCAuZmFpbAorICAgICAgICAg
ICAgc3RvcmVjb25kMmkgc2NyYXRjaCwgdmFsTHN3LCB2YWxNc3csIG1lbQorICAgICAgICAgICAg
YmllcSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5m
YWlsOgorICAgICAgICAgICAgc3RvcmVjb25kMmkgc2NyYXRjaCwgcmVzTHN3LCByZXNNc3csIG1l
bQorICAgICAgICAgICAgYmllcSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5s
b29wCisgICAgICAgIC5kb25lOgorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIG1vdmUg
cmVzTHN3LCBleHBMc3cKKyAgICAgICAgICAgIG1vdmUgcmVzTXN3LCBleHBNc3cKKyAgICBlbmQp
CitlbmQKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2Vt
Ymx5NjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5NjQuYXNt
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ2ZTllYTQ4ODUyNDI2MGEzZTQ0N2ZmNTAwOTE5NGU4MDBlZWUxNzAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHk2
NC5hc20KQEAgLTAsMCArMSwxMjU5IEBACisjIENvcHlyaWdodCAoQykgMjAxMS0yMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMg
YXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCisjIE9wY29kZXMgdGhhdCBzaG91bGQgZXZlbnR1YWxseSBiZSBzaGFyZWQgd2l0
aCBKUyBsbGludAorCit3YXNtT3AobW92LCBXYXNtTW92LCBtYWNybyhjdHgpCisgICAgbWxvYWRx
KGN0eCwgbV9zcmMsIHQwKQorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKworIyBXYXNtIHNw
ZWNpZmljIGJ5dGVjb2RlcworCittYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihjdHgs
IHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKKyAgICBsZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNl
dF0sIHQ1CisgICAgYnBiIHQ1LCBib3VuZHNDaGVja2luZ1NpemUsIC5jb250aW51YXRpb24KKyAg
ICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKKy5jb250aW51YXRpb246
CisgICAgYWRkcCBtZW1vcnlCYXNlLCBwb2ludGVyCitlbmQKKworbWFjcm8gZW1pdENoZWNrQW5k
UHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQoY3R4LCBwb2ludGVyLCBvZmZzZXQsIHNpemUpCisg
ICAgbGVhcCBzaXplIC0gMVtwb2ludGVyLCBvZmZzZXRdLCB0NQorICAgIGJwYiB0NSwgYm91bmRz
Q2hlY2tpbmdTaXplLCAuY29udGludWF0aW9uCisudGhyb3c6CisgICAgdGhyb3dFeGNlcHRpb24o
T3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCisuY29udGludWF0aW9uOgorICAgIGFkZHAgbWVtb3J5
QmFzZSwgcG9pbnRlcgorICAgIGFkZHAgb2Zmc2V0LCBwb2ludGVyCitlbmQKKworbWFjcm8gZW1p
dENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4
LCBwb2ludGVyLCBvZmZzZXQsIHNpemUpCisgICAgbGVhcCBzaXplIC0gMVtwb2ludGVyLCBvZmZz
ZXRdLCB0NQorICAgIGJwYiB0NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29udGludWF0aW9uCisu
dGhyb3c6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCisuY29u
dGludWF0aW9uOgorICAgIGFkZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgorICAgIGFkZHAgb2Zmc2V0
LCBwb2ludGVyCisgICAgYnRwbnogcG9pbnRlciwgKHNpemUgLSAxKSwgLnRocm93CitlbmQKKwor
CittYWNybyB3YXNtTG9hZE9wKG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4pCisgICAgd2FzbU9wKG5h
bWUsIHN0cnVjdCwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQw
KQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgZW1pdENoZWNrQW5k
UHJlcGFyZVBvaW50ZXIoY3R4LCB0MCwgdDEsIHNpemUpCisgICAgICAgIGZuKFt0MCwgdDFdLCB0
MikKKyAgICAgICAgcmV0dXJucShjdHgsIHQyKQorICAgIGVuZCkKK2VuZAorCit3YXNtTG9hZE9w
KGxvYWQ4X3UsIFdhc21Mb2FkOFUsIDEsIG1hY3JvKG1lbSwgZHN0KSBsb2FkYiBtZW0sIGRzdCBl
bmQpCit3YXNtTG9hZE9wKGxvYWQxNl91LCBXYXNtTG9hZDE2VSwgMiwgbWFjcm8obWVtLCBkc3Qp
IGxvYWRoIG1lbSwgZHN0IGVuZCkKK3dhc21Mb2FkT3AobG9hZDMyX3UsIFdhc21Mb2FkMzJVLCA0
LCBtYWNybyhtZW0sIGRzdCkgbG9hZGkgbWVtLCBkc3QgZW5kKQord2FzbUxvYWRPcChsb2FkNjRf
dSwgV2FzbUxvYWQ2NFUsIDgsIG1hY3JvKG1lbSwgZHN0KSBsb2FkcSBtZW0sIGRzdCBlbmQpCisK
K3dhc21Mb2FkT3AoaTMyX2xvYWQ4X3MsIFdhc21JMzJMb2FkOFMsIDEsIG1hY3JvKG1lbSwgZHN0
KSBsb2FkYnNpIG1lbSwgZHN0IGVuZCkKK3dhc21Mb2FkT3AoaTY0X2xvYWQ4X3MsIFdhc21JNjRM
b2FkOFMsIDEsIG1hY3JvKG1lbSwgZHN0KSBsb2FkYnNxIG1lbSwgZHN0IGVuZCkKK3dhc21Mb2Fk
T3AoaTMyX2xvYWQxNl9zLCBXYXNtSTMyTG9hZDE2UywgMiwgbWFjcm8obWVtLCBkc3QpIGxvYWRo
c2kgbWVtLCBkc3QgZW5kKQord2FzbUxvYWRPcChpNjRfbG9hZDE2X3MsIFdhc21JNjRMb2FkMTZT
LCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGhzcSBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGk2
NF9sb2FkMzJfcywgV2FzbUk2NExvYWQzMlMsIDQsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaXMgbWVt
LCBkc3QgZW5kKQorCittYWNybyB3YXNtU3RvcmVPcChuYW1lLCBzdHJ1Y3QsIHNpemUsIGZuKQor
ICAgIHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwg
bV9wb2ludGVyLCB0MCkKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAg
IGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKGN0eCwgdDAsIHQxLCBzaXplKQorICAgICAgICBt
bG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAgICAgICAgZm4odDIsIFt0MCwgdDFdKQorICAgICAg
ICBkaXNwYXRjaChjdHgpCisgICAgZW5kKQorZW5kCisKK3dhc21TdG9yZU9wKHN0b3JlOCwgV2Fz
bVN0b3JlOCwgMSwgbWFjcm8odmFsdWUsIG1lbSkgc3RvcmViIHZhbHVlLCBtZW0gZW5kKQord2Fz
bVN0b3JlT3Aoc3RvcmUxNiwgV2FzbVN0b3JlMTYsIDIsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3Jl
aCB2YWx1ZSwgbWVtIGVuZCkKK3dhc21TdG9yZU9wKHN0b3JlMzIsIFdhc21TdG9yZTMyLCA0LCBt
YWNybyh2YWx1ZSwgbWVtKSBzdG9yZWkgdmFsdWUsIG1lbSBlbmQpCit3YXNtU3RvcmVPcChzdG9y
ZTY0LCBXYXNtU3RvcmU2NCwgOCwgbWFjcm8odmFsdWUsIG1lbSkgc3RvcmVxIHZhbHVlLCBtZW0g
ZW5kKQorCit3YXNtT3AocmVmX2lzX251bGwsIFdhc21SZWZJc051bGwsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZHAoY3R4LCBtX3JlZiwgdDApCisgICAgY3FlcSB0MCwgVmFsdWVOdWxsLCB0MAorICAg
IHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGdldF9nbG9iYWwsIFdhc21HZXRHbG9i
YWwsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21J
bnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBsb2Fk
cSBbdDAsIHQxLCA4XSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChz
ZXRfZ2xvYmFsLCBXYXNtU2V0R2xvYmFsLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5z
dGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9i
YWxJbmRleCwgdDEpCisgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCisgICAgc3RvcmVxIHQy
LCBbdDAsIHQxLCA4XQorICAgIGRpc3BhdGNoKGN0eCkKK2VuZCkKKword2FzbU9wKGdldF9nbG9i
YWxfcG9ydGFibGVfYmluZGluZywgV2FzbUdldEdsb2JhbFBvcnRhYmxlQmluZGluZywgbWFjcm8o
Y3R4KQorICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwg
dDAKKyAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQorICAgIGxvYWRxIFt0MCwgdDEs
IDhdLCB0MAorICAgIGxvYWRxIFt0MF0sIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQor
Cit3YXNtT3Aoc2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNtU2V0R2xvYmFsUG9ydGFi
bGVCaW5kaW5nLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFs
c1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisg
ICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCisgICAgbG9hZHEgW3QwLCB0MSwgOF0sIHQwCisg
ICAgc3RvcmVxIHQyLCBbdDBdCisgICAgZGlzcGF0Y2goY3R4KQorZW5kKQorCisjIE9wY29kZXMg
dGhhdCBkb24ndCBoYXZlIHRoZSBgYjNvcGAgZW50cnkgaW4gd2FzbS5qc29uLiBUaGlzIHNob3Vs
ZCBiZSBrZXB0IGluIHN5bmMKKworIyBpMzIgYmluYXJ5IG9wcworCit3YXNtT3AoaTMyX2Rpdl9z
LCBXYXNtSTMyRGl2UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCisg
ICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25C
eVplcm8KKworICAgIGJpbmVxIHQxLCAtMSwgLnNhZmUKKyAgICBiaWVxIHQwLCBjb25zdGV4cHIg
SU5UMzJfTUlOLCAudGhyb3dJbnRlZ2VyT3ZlcmZsb3cKKworLnNhZmU6CisgICAgaWYgWDg2XzY0
CisgICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyBy
YXggYW5kIHQyIGlzIHJkeAorICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDM2OTIKKyAgICAgICAgY2RxaQorICAgICAgICBpZGl2aSB0MQorICAgIGVs
c2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0CisgICAgICAgIGRpdmlzIHQxLCB0MAorICAg
IGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy50
aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQor
CisudGhyb3dJbnRlZ2VyT3ZlcmZsb3c6CisgICAgdGhyb3dFeGNlcHRpb24oSW50ZWdlck92ZXJm
bG93KQorZW5kKQorCit3YXNtT3AoaTMyX2Rpdl91LCBXYXNtSTMyRGl2VSwgbWFjcm8gKGN0eCkK
KyAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQor
CisgICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGlmIFg4Nl82NAorICAg
ICAgICB4b3JpIHQyLCB0MgorICAgICAgICB1ZGl2aSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFS
TTY0RSBvciBSSVNDVjY0CisgICAgICAgIGRpdmkgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBl
cnJvcgorICAgIGVuZAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLnRocm93RGl2aXNpb25CeVpl
cm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChp
MzJfcmVtX3MsIFdhc21JMzJSZW1TLCBtYWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhz
LCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisKKyAgICBidGl6IHQxLCAudGhyb3dE
aXZpc2lvbkJ5WmVybworCisgICAgYmluZXEgdDEsIC0xLCAuc2FmZQorICAgIGJpbmVxIHQwLCBj
b25zdGV4cHIgSU5UMzJfTUlOLCAuc2FmZQorCisgICAgbW92ZSAwLCB0MgorICAgIGptcCAucmV0
dXJuCisKKy5zYWZlOgorICAgIGlmIFg4Nl82NAorICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkg
dG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0MiBpcyByZHgKKyAgICAgICAgIyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCisgICAgICAgIGNk
cWkKKyAgICAgICAgaWRpdmkgdDEKKyAgICBlbHNpZiBBUk02NCBvciBBUk02NEUKKyAgICAgICAg
ZGl2aXMgdDEsIHQwLCB0MgorICAgICAgICBtdWxpIHQxLCB0MgorICAgICAgICBzdWJpIHQwLCB0
MiwgdDIKKyAgICBlbHNpZiBSSVNDVjY0CisgICAgICAgIHJlbWlzIHQxLCB0MAorICAgIGVsc2UK
KyAgICAgICAgZXJyb3IKKyAgICBlbmQKKworLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDIp
CisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnla
ZXJvKQorZW5kKQorCit3YXNtT3AoaTMyX3JlbV91LCBXYXNtSTMyUmVtVSwgbWFjcm8gKGN0eCkK
KyAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQor
CisgICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGlmIFg4Nl82NAorICAg
ICAgICB4b3JpIHQyLCB0MgorICAgICAgICB1ZGl2aSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFS
TTY0RQorICAgICAgICBkaXZpIHQxLCB0MCwgdDIKKyAgICAgICAgbXVsaSB0MSwgdDIKKyAgICAg
ICAgc3ViaSB0MCwgdDIsIHQyCisgICAgZWxzaWYgUklTQ1Y2NAorICAgICAgICByZW1pIHQxLCB0
MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKKyAgICByZXR1cm5pKGN0eCwgdDIp
CisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnla
ZXJvKQorZW5kKQorCisjIGk2NCBiaW5hcnkgb3BzCisKK3dhc21PcChpNjRfYWRkLCBXYXNtSTY0
QWRkLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShj
dHgsIG1fcmhzLCB0MSkKKyAgICBhZGRxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2Vu
ZCkKKword2FzbU9wKGk2NF9zdWIsIFdhc21JNjRTdWIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEo
Y3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIHN1YnEgdDEs
IHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X211bCwgV2FzbUk2
NE11bCwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEo
Y3R4LCBtX3JocywgdDEpCisgICAgbXVscSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitl
bmQpCisKK3dhc21PcChpNjRfZGl2X3MsIFdhc21JNjREaXZTLCBtYWNybyAoY3R4KQorICAgIG1s
b2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisKKyAgICBi
dHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgYnFuZXEgdDEsIC0xLCAuc2FmZQor
ICAgIGJxZXEgdDAsIGNvbnN0ZXhwciBJTlQ2NF9NSU4sIC50aHJvd0ludGVnZXJPdmVyZmxvdwor
Cisuc2FmZToKKyAgICBpZiBYODZfNjQKKyAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0
YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4CisgICAgICAgICMgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgorICAgICAgICBjcW9xCisg
ICAgICAgIGlkaXZxIHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKKyAg
ICAgICAgZGl2cXMgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorICAg
IHJldHVybnEoY3R4LCB0MCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNl
cHRpb24oRGl2aXNpb25CeVplcm8pCisKKy50aHJvd0ludGVnZXJPdmVyZmxvdzoKKyAgICB0aHJv
d0V4Y2VwdGlvbihJbnRlZ2VyT3ZlcmZsb3cpCitlbmQpCisKK3dhc21PcChpNjRfZGl2X3UsIFdh
c21JNjREaXZVLCBtYWNybyAoY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBt
bG9hZHEoY3R4LCBtX3JocywgdDEpCisKKyAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVy
bworCisgICAgaWYgWDg2XzY0CisgICAgICAgIHhvcnEgdDIsIHQyCisgICAgICAgIHVkaXZxIHQx
CisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKKyAgICAgICAgZGl2cSB0MSwg
dDAKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCisgICAgcmV0dXJucShjdHgsIHQw
KQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5
WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9yZW1fcywgV2FzbUk2NFJlbVMsIG1hY3JvIChjdHgp
CisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkK
KworICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBicW5lcSB0MSwgLTEs
IC5zYWZlCisgICAgYnFuZXEgdDAsIGNvbnN0ZXhwciBJTlQ2NF9NSU4sIC5zYWZlCisKKyAgICBt
b3ZlIDAsIHQyCisgICAgam1wIC5yZXR1cm4KKworLnNhZmU6CisgICAgaWYgWDg2XzY0CisgICAg
ICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5k
IHQyIGlzIHJkeAorICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDM2OTIKKyAgICAgICAgY3FvcQorICAgICAgICBpZGl2cSB0MQorICAgIGVsc2lmIEFS
TTY0IG9yIEFSTTY0RQorICAgICAgICBkaXZxcyB0MSwgdDAsIHQyCisgICAgICAgIG11bHEgdDEs
IHQyCisgICAgICAgIHN1YnEgdDAsIHQyLCB0MgorICAgIGVsc2lmIFJJU0NWNjQKKyAgICAgICAg
cmVtcXMgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorCisucmV0dXJu
OgorICAgIHJldHVybnEoY3R4LCB0MikgIyByZHggaGFzIHRoZSByZW1haW5kZXIKKworLnRocm93
RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQp
CisKK3dhc21PcChpNjRfcmVtX3UsIFdhc21JNjRSZW1VLCBtYWNybyAoY3R4KQorICAgIG1sb2Fk
cShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisKKyAgICBidHF6
IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgaWYgWDg2XzY0CisgICAgICAgIHhvcnEg
dDIsIHQyCisgICAgICAgIHVkaXZxIHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCisgICAg
ICAgIGRpdnEgdDEsIHQwLCB0MgorICAgICAgICBtdWxxIHQxLCB0MgorICAgICAgICBzdWJxIHQw
LCB0MiwgdDIKKyAgICBlbHNpZiBSSVNDVjY0CisgICAgICAgIHJlbXEgdDEsIHQwCisgICAgZWxz
ZQorICAgICAgICBlcnJvcgorICAgIGVuZAorICAgIHJldHVybnEoY3R4LCB0MikKKworLnRocm93
RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQp
CisKK3dhc21PcChpNjRfYW5kLCBXYXNtSTY0QW5kLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0
eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBhbmRxIHQwLCB0
MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9vciwgV2FzbUk2NE9y
LCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgs
IG1fcmhzLCB0MSkKKyAgICBvcnEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQor
Cit3YXNtT3AoaTY0X3hvciwgV2FzbUk2NFhvciwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgs
IG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgeG9ycSB0MCwgdDEK
KyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfc2hsLCBXYXNtSTY0U2hs
LCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkaShjdHgs
IG1fcmhzLCB0MSkKKyAgICBsc2hpZnRxIHQxLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2Vu
ZCkKKword2FzbU9wKGk2NF9zaHJfdSwgV2FzbUk2NFNoclUsIG1hY3JvKGN0eCkKKyAgICBtbG9h
ZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorICAgIHVyc2hp
ZnRxIHQxLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9zaHJf
cywgV2FzbUk2NFNoclMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisg
ICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorICAgIHJzaGlmdHEgdDEsIHQwCisgICAgcmV0dXJu
cShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3JvdHIsIFdhc21JNjRSb3RyLCBtYWNybyhj
dHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0
MSkKKyAgICBycm90YXRlcSB0MSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dh
c21PcChpNjRfcm90bCwgV2FzbUk2NFJvdGwsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBt
X2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorICAgIGxyb3RhdGVxIHQxLCB0
MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9lcSwgV2FzbUk2NEVx
LCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgs
IG1fcmhzLCB0MSkKKyAgICBjcWVxIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0
dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X25lLCBXYXNtSTY0TmUsIG1hY3JvKGN0
eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQx
KQorICAgIGNxbmVxIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgs
IHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2x0X3MsIFdhc21JNjRMdFMsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAg
IGNxbHQgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitl
bmQpCisKK3dhc21PcChpNjRfbGVfcywgV2FzbUk2NExlUywgbWFjcm8oY3R4KQorICAgIG1sb2Fk
cShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FsdGVx
IHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQor
Cit3YXNtT3AoaTY0X2x0X3UsIFdhc21JNjRMdFUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4
LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxYiB0MCwgdDEs
IHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9w
KGk2NF9sZV91LCBXYXNtSTY0TGVVLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMs
IHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWJlcSB0MCwgdDEsIHQyCisg
ICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9n
dF9zLCBXYXNtSTY0R3RTLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQor
ICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWd0IHQwLCB0MSwgdDIKKyAgICBhbmRp
IDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2dlX3MsIFdh
c21JNjRHZVMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxv
YWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxZ3RlcSB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0
MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9ndF91LCBXYXNtSTY0
R3RVLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShj
dHgsIG1fcmhzLCB0MSkKKyAgICBjcWEgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICBy
ZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfZ2VfdSwgV2FzbUk2NEdlVSwgbWFj
cm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3Jo
cywgdDEpCisgICAgY3FhZXEgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5p
KGN0eCwgdDIpCitlbmQpCisKKyMgaTY0IHVuYXJ5IG9wcworCit3YXNtT3AoaTY0X2N0eiwgV2Fz
bUk2NEN0eiwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAg
IHR6Y250cSB0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRf
Y2x6LCBXYXNtSTY0Q2x6LCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0
MCkKKyAgICBsemNudHEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNt
T3AoaTY0X3BvcGNudCwgV2FzbUk2NFBvcGNudCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZHEoY3R4
LCBtX29wZXJhbmQsIGExKQorICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBtb3ZlIFBD
LCBhMAorICAgIGNDYWxsMihfc2xvd19wYXRoX3dhc21fcG9wY291bnRsbCkKKyAgICByZXN0b3Jl
U3RhdGVBZnRlckNDYWxsKCkKKyAgICByZXR1cm5xKGN0eCwgcjEpCitlbmQpCisKK3dhc21PcChp
NjRfZXF6LCBXYXNtSTY0RXF6LCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5k
LCB0MCkKKyAgICBjcWVxIHQwLCAwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKwor
IyBmNjQgYmluYXJ5IG9wcworCit3YXNtT3AoZjY0X2NvcHlzaWduLCBXYXNtRjY0Q29weXNpZ24s
IG1hY3JvKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX2xocywgZnQwKQorICAgIG1sb2FkZChjdHgs
IG1fcmhzLCBmdDEpCisKKyAgICBmZDJxIGZ0MSwgdDEKKyAgICBtb3ZlIDB4ODAwMDAwMDAwMDAw
MDAwMCwgdDIKKyAgICBhbmRxIHQyLCB0MQorCisgICAgZmQycSBmdDAsIHQwCisgICAgbW92ZSAw
eDdmZmZmZmZmZmZmZmZmZmYsIHQyCisgICAgYW5kcSB0MiwgdDAKKworICAgIG9ycSB0MSwgdDAK
KyAgICBmcTJkIHQwLCBmdDAKKyAgICByZXR1cm5kKGN0eCwgZnQwKQorZW5kKQorCisjIFR5cGUg
Y29udmVyc2lvbiBvcHMKKword2FzbU9wKGk2NF9leHRlbmRfc19pMzIsIFdhc21JNjRFeHRlbmRT
STMyLCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBzeGky
cSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfZXh0ZW5k
X3VfaTMyLCBXYXNtSTY0RXh0ZW5kVUkzMiwgbWFjcm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1f
b3BlcmFuZCwgdDApCisgICAgenhpMnEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5k
KQorCit3YXNtT3AoZjY0X3JlaW50ZXJwcmV0X2k2NCwgV2FzbUY2NFJlaW50ZXJwcmV0STY0LCBt
YWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBmcTJkIHQwLCBm
dDAKKyAgICByZXR1cm5kKGN0eCwgZnQwKQorZW5kKQorCit3YXNtT3AoaTY0X3JlaW50ZXJwcmV0
X2Y2NCwgV2FzbUk2NFJlaW50ZXJwcmV0RjY0LCBtYWNybyhjdHgpCisgICAgbWxvYWRkKGN0eCwg
bV9vcGVyYW5kLCBmdDApCisgICAgZmQycSBmdDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQor
ZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NfZjY0LCBXYXNtSTMyVHJ1bmNTRjY0LCBtYWNybyAo
Y3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGMxZTAw
MDAwMDAyMDAwMDAsIHQwICMgSU5UMzJfTUlOIC0gMS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAg
YmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlIDB4NDFlMDAw
MDAwMDAwMDAwMCwgdDAgIyAtSU5UMzJfTUlOCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVx
dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0
MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dF
eGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKK2VuZCkKKword2FzbU9wKGkzMl90cnVuY191X2Y2
NCwgV2FzbUkzMlRydW5jVUY2NCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJh
bmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKKyAgICBm
cTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKwor
ICAgIG1vdmUgMHg0MWYwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDMyX01JTiAqIC0yLjAKKyAgICBm
cTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKwor
ICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJv
dW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisK
K3dhc21PcChpNjRfdHJ1bmNfc19mMzIsIFdhc21JNjRUcnVuY1NGMzIsIG1hY3JvIChjdHgpCisg
ICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4ZGYwMDAwMDAsIHQw
ICMgSU5UNjRfTUlOCisgICAgZmkyZiB0MCwgZnQxCisgICAgYmZsdHVuIGZ0MCwgZnQxLCAub3V0
T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZSAweDVmMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KKyAg
ICBmaTJmIHQwLCBmdDEKKyAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMK
KworICAgIHRydW5jYXRlZjJxcyBmdDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0
T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5k
KQorCit3YXNtT3AoaTY0X3RydW5jX3VfZjMyLCBXYXNtSTY0VHJ1bmNVRjMyLCBtYWNybyAoY3R4
KQorICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGJmODAwMDAw
LCB0MCAjIC0xLjAKKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmx0ZXF1biBmdDAsIGZ0MSwgLm91
dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmUgMHg1ZjgwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAt
Mi4wCisgICAgZmkyZiB0MCwgZnQxCisgICAgYmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5k
c1RydW5jCisKKyAgICB0cnVuY2F0ZWYycSBmdDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQor
Cisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5j
KQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5jX3NfZjY0LCBXYXNtSTY0VHJ1bmNTRjY0LCBtYWNy
byAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGMz
ZTAwMDAwMDAwMDAwMDAsIHQwICMgSU5UNjRfTUlOCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRs
dHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZSAweDQzZTAwMDAwMDAw
MDAwMDAsIHQwICMgLUlOVDY0X01JTgorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0
MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVkMnFzIGZ0MCwgdDAKKyAg
ICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0
aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfdV9mNjQsIFdh
c21JNjRUcnVuY1VGNjQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBm
dDApCisKKyAgICBtb3ZlIDB4YmZmMDAwMDAwMDAwMDAwMCwgdDAgIyAtMS4wCisgICAgZnEyZCB0
MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBt
b3ZlIDB4NDNmMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCisgICAgZnEyZCB0
MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICB0
cnVuY2F0ZWQycSBmdDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNU
cnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNt
T3AoaTMyX3RydW5jX3NhdF9mNjRfcywgV2FzbUkzMlRydW5jU2F0RjY0UywgbWFjcm8gKGN0eCkK
KyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhjMWUwMDAwMDAw
MjAwMDAwLCB0MCAjIElOVDMyX01JTiAtIDEuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkbHRl
cXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOCisKKyAgICBtb3ZlIDB4
NDFlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UMzJfTUlOCisgICAgZnEyZCB0MCwgZnQxCisgICAg
YmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0
ZWQyaXMgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNT
YXRNaW5Pck5hTjoKKyAgICBiZGVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgor
ICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5j
U2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQzMl9NQVgpLCB0MAorICAgIHJldHVybmko
Y3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAoY29uc3RleHBy
IElOVDMyX01JTiksIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTMy
X3RydW5jX3NhdF9mNjRfdSwgV2FzbUkzMlRydW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkKKyAgICBt
bG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAw
LCB0MCAjIC0xLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91
dE9mQm91bmRzVHJ1bmNTYXRNaW4KKworICAgIG1vdmUgMHg0MWYwMDAwMDAwMDAwMDAwLCB0MCAj
IElOVDMyX01JTiAqIC0yLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0
MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAKKyAg
ICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUg
MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4Ogor
ICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UMzJfTUFYKSwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDAp
CitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl9zLCBXYXNtSTY0VHJ1bmNTYXRGMzJT
LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92
ZSAweGRmMDAwMDAwLCB0MCAjIElOVDY0X01JTgorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmbHR1
biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTgorCisgICAgbW92ZSAweDVm
MDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmd0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZjJxcyBmdDAs
IHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFO
OgorICAgIGJmZXEgZnQwLCBmdDAsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCisgICAgbW92ZSAw
LCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6Cisg
ICAgbW92ZSAoY29uc3RleHByIElOVDY0X01BWCksIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQor
Cisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUlO
KSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc2F0
X2YzMl91LCBXYXNtSTY0VHJ1bmNTYXRGMzJVLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZihjdHgs
IG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGJmODAwMDAwLCB0MCAjIC0xLjAKKyAgICBm
aTJmIHQwLCBmdDEKKyAgICBiZmx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRN
aW4KKworICAgIG1vdmUgMHg1ZjgwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCisgICAgZmky
ZiB0MCwgZnQxCisgICAgYmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4
CisKKyAgICB0cnVuY2F0ZWYycSBmdDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0
T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQw
KQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDY0
X01BWCksIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5j
X3NhdF9mNjRfcywgV2FzbUk2NFRydW5jU2F0RjY0UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQo
Y3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhjM2UwMDAwMDAwMDAwMDAwLCB0MCAj
IElOVDY0X01JTgorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkbHR1biBmdDAsIGZ0MSwgLm91dE9m
Qm91bmRzVHJ1bmNTYXRNaW5Pck5hTgorCisgICAgbW92ZSAweDQzZTAwMDAwMDAwMDAwMDAsIHQw
ICMgLUlOVDY0X01JTgorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisgICAgdHJ1bmNhdGVkMnFzIGZ0MCwgdDAKKyAgICBy
ZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU46CisgICAgYmRl
cSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKyAgICBtb3ZlIDAsIHQwCisgICAg
cmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChj
b25zdGV4cHIgSU5UNjRfTUFYKSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJv
dW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9NSU4pLCB0MAorICAg
IHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF90cnVuY19zYXRfZjY0X3UsIFdh
c21JNjRUcnVuY1NhdEY2NFUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5k
LCBmdDApCisKKyAgICBtb3ZlIDB4YmZmMDAwMDAwMDAwMDAwMCwgdDAgIyAtMS4wCisgICAgZnEy
ZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWlu
CisKKyAgICBtb3ZlIDB4NDNmMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCisg
ICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5j
U2F0TWF4CisKKyAgICB0cnVuY2F0ZWQycSBmdDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQor
Cisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJucShj
dHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIg
VUlOVDY0X01BWCksIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCisjIEV4dGVuZCBv
cHMKKword2FzbU9wKGk2NF9leHRlbmQ4X3MsIFdhc21JNjRFeHRlbmQ4UywgbWFjcm8oY3R4KQor
ICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgc3hiMnEgdDAsIHQxCisgICAgcmV0
dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X2V4dGVuZDE2X3MsIFdhc21JNjRFeHRl
bmQxNlMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHN4
aDJxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9leHRl
bmQzMl9zLCBXYXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9v
cGVyYW5kLCB0MCkKKyAgICBzeGkycSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQp
CisKKyMgQXRvbWljcworCittYWNybyB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9w
Y29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIsIGZuaCwgZm5pLCBmbnEpCisgICAgd2FzbU9wKGk2
NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4JXVwcGVy
Q2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwg
dDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBtbG9hZHEoY3R4
LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdP
ZmZzZXQoY3R4LCB0MywgdDEsIDEpCisgICAgICAgIGZuYih0MCwgW3QzXSwgdDIsIHQ1LCB0MSkK
KyAgICAgICAgYW5kcSAweGZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kOFRvNjQKKyAgICAgICAg
YXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJu
cShjdHgsIHQwKQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcxNiVsb3dlckNh
c2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXcxNiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8o
Y3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShj
dHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCisgICAg
ICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENo
ZWNrKGN0eCwgdDMsIHQxLCAyKQorICAgICAgICBmbmgodDAsIFt0M10sIHQyLCB0NSwgdDEpCisg
ICAgICAgIGFuZHEgMHhmZmZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kMTZUbzY0CisgICAgICAg
IGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0
dXJucShjdHgsIHQwKQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXczMiVsb3dl
ckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXczMiV1cHBlckNhc2VPcGNvZGUlVSwgbWFj
cm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0
dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCisg
ICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVu
dENoZWNrKGN0eCwgdDMsIHQxLCA0KQorICAgICAgICBmbmkodDAsIFt0M10sIHQyLCB0NSwgdDEp
CisgICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmZmZmZmZmYsIC5vayBlbmQp
CisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9t
aWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21JNjRBdG9taWNSbXcldXBwZXJDYXNlT3Bjb2Rl
JSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAg
ICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwg
dDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFs
aWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA4KQorICAgICAgICBmbnEodDAsIFt0M10sIHQyLCB0
NSwgdDEpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBlbmQpCitlbmQKKworbWFjcm8g
d2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJD
YXNlT3Bjb2RlLCBmbmksIGZucSkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKGxvd2VyQ2Fz
ZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQ
UiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgaWYgWDg2XzY0CisgICAgICAgICAgICAgICAg
bW92ZSB0MEdQUiwgdDVHUFIKKyAgICAgICAgICAgICAgICBsb2FkYiBtZW0sIHQwR1BSCisgICAg
ICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgorICAgICAg
ICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgYmF0b21pY3dlYWtj
YXNiIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAorICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9hZGxpbmthY3FiIG1lbSwgdDFHUFIKKyAgICAg
ICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9y
ZWNvbmRyZWxiIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICAgICAgYmluZXEgdDVHUFIs
IDAsIC5sb29wCisgICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgICAg
IGVuZAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQ
UiwgdDFHUFIpCisgICAgICAgICAgICBpZiBYODZfNjQKKyAgICAgICAgICAgICAgICBtb3ZlIHQw
R1BSLCB0NUdQUgorICAgICAgICAgICAgICAgIGxvYWRoIG1lbSwgdDBHUFIKKyAgICAgICAgICAg
IC5sb29wOgorICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCisgICAgICAgICAgICAg
ICAgZm5pKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBiYXRvbWljd2Vha2Nhc2ggdDBH
UFIsIHQyR1BSLCBtZW0sIC5sb29wCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAubG9v
cDoKKyAgICAgICAgICAgICAgICBsb2FkbGlua2FjcWggbWVtLCB0MUdQUgorICAgICAgICAgICAg
ICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29uZHJl
bGggdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxv
b3AKKyAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgorICAgICAgICAgICAgZW5kCisg
ICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikKKyAgICAgICAgICAgIGlmIFg4Nl82NAorICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1
R1BSCisgICAgICAgICAgICAgICAgbG9hZGkgbWVtLCB0MEdQUgorICAgICAgICAgICAgLmxvb3A6
CisgICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKKyAgICAgICAgICAgICAgICBmbmko
dDVHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIGJhdG9taWN3ZWFrY2FzaSB0MEdQUiwgdDJH
UFIsIG1lbSwgLmxvb3AKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIC5sb29wOgorICAg
ICAgICAgICAgICAgIGxvYWRsaW5rYWNxaSBtZW0sIHQxR1BSCisgICAgICAgICAgICAgICAgZm5p
KHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQ
UiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAorICAg
ICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCisgICAgICAgICAgICBlbmQKKyAgICAgICAg
ZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAg
ICAgICAgICAgaWYgWDg2XzY0CisgICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKKyAg
ICAgICAgICAgICAgICBsb2FkcSBtZW0sIHQwR1BSCisgICAgICAgICAgICAubG9vcDoKKyAgICAg
ICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgorICAgICAgICAgICAgICAgIGZucSh0NUdQUiwg
dDJHUFIpCisgICAgICAgICAgICAgICAgYmF0b21pY3dlYWtjYXNxIHQwR1BSLCB0MkdQUiwgbWVt
LCAubG9vcAorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAg
ICAgICAgbG9hZGxpbmthY3FxIG1lbSwgdDFHUFIKKyAgICAgICAgICAgICAgICBmbnEodDBHUFIs
IHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmRyZWxxIHQ1R1BSLCB0MkdQ
UiwgbWVtCisgICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAg
ICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbmQpCitl
bmQKKworaWYgWDg2XzY0CisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfYWRkLCBBZGQsCisg
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdh
ZGRiIHQwR1BSLCBtZW0gZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVH
UFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaCB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1l
bSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0
b21pY3hjaGdhZGRxIHQwR1BSLCBtZW0gZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMo
X3N1YiwgU3ViLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KSBhdG9taWN4Y2hnc3ViYiB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1YmggdDBHUFIsIG1lbSBlbmQsCisg
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdz
dWJpIHQwR1BSLCBtZW0gZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVH
UFIsIHQxR1BSKSBhdG9taWN4Y2hnc3VicSB0MEdQUiwgbWVtIGVuZCkKKyAgICB3YXNtQXRvbWlj
QmluYXJ5Uk1XT3BzKF94Y2hnLCBYY2hnLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQ
UiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYiB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFj
cm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2ggdDBHUFIsIG1l
bSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0
b21pY3hjaGdpIHQwR1BSLCBtZW0gZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQ
UiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hncSB0MEdQUiwgbWVtIGVuZCkKKyAgICB3YXNtQXRv
bWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FuZCwgQW5kLAorICAgICAgICBtYWNybyh0NUdQ
UiwgdDJHUFIpCisgICAgICAgICAgICBhbmRpIHQ1R1BSLCB0MkdQUgorICAgICAgICBlbmQsCisg
ICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgIGFuZHEgdDVHUFIsIHQyR1BS
CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX29y
LCBPciwKKyAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQorICAgICAgICAgICAgb3JpIHQ1R1BS
LCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKKyAgICAg
ICAgICAgIG9ycSB0NUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5h
cnlSTVdPcHNXaXRoV2Vha0NBUyhfeG9yLCBYb3IsCisgICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQ
UikKKyAgICAgICAgICAgIHhvcmkgdDVHUFIsIHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAg
bWFjcm8odDVHUFIsIHQyR1BSKQorICAgICAgICAgICAgeG9ycSB0NUdQUiwgdDJHUFIKKyAgICAg
ICAgZW5kKQorZWxzaWYgQVJNNjRFCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfYWRkLCBB
ZGQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21p
Y3hjaGdhZGRiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGggdDBHUFIsIG1lbSwgdDBHUFIg
ZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9t
aWN4Y2hnYWRkaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRxIHQwR1BSLCBtZW0sIHQwR1BS
IGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9zdWIsIFN1YiwKKyAgICAgICAgbWFj
cm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5lZ3EgdDBH
UFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAg
IGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAg
ICAgICAgICAgIG5lZ3EgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdhZGRoIHQwR1BSLCBt
ZW0sIHQwR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5lZ3EgdDBHUFIKKyAgICAgICAgICAgIGF0b21p
Y3hjaGdhZGRpIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5lZ3EgdDBHUFIK
KyAgICAgICAgICAgIGF0b21pY3hjaGdhZGRxIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVu
ZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9hbmQsIEFuZCwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5vdHEgdDBHUFIK
KyAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcmIgdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAg
ZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAg
ICAgICAgICAgbm90cSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFyaCB0MEdQUiwg
bWVtLCB0MEdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BS
LCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBub3RxIHQwR1BSCisgICAgICAgICAgICBhdG9t
aWN4Y2hnY2xlYXJpIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFj
cm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5vdHEgdDBH
UFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcnEgdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAg
ICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX29yLCBPciwKKyAgICAgICAgbWFj
cm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29yYiB0MEdQUiwg
bWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwg
dDFHUFIpIGF0b21pY3hjaGdvcmggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNy
byh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnb3JpIHQwR1BSLCBt
ZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
MUdQUikgYXRvbWljeGNoZ29ycSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQpCisgICAgd2FzbUF0b21p
Y0JpbmFyeVJNV09wcyhfeG9yLCBYb3IsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BS
LCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAg
ICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hv
cmggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQ
UiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9yaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisg
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4
b3JxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94
Y2hnLCBYY2hnLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KSBhdG9taWN4Y2hnYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdoIHQwR1BSLCBtZW0sIHQwR1BS
IGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRv
bWljeGNoZ2kgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hncSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQp
CitlbHNpZiBBUk02NCBvciBSSVNDVjY0CisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhX
ZWFrQ0FTKF9hZGQsIEFkZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAg
ICAgICAgICAgIGFkZGkgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAg
IG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBhZGRxIHQwR1BSLCB0MUdQ
UiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vh
a0NBUyhfc3ViLCBTdWIsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAg
ICAgICAgICBzdWJpIHQxR1BSLCB0MEdQUiwgdDJHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBt
YWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgc3VicSB0MUdQUiwgdDBHUFIs
IHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtD
QVMoX3hjaGcsIFhjaGcsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAg
ICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQw
R1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgorICAgICAg
ICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9hbmQsIEFuZCwK
KyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIGFuZGkgdDBH
UFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQ
UiwgdDJHUFIpCisgICAgICAgICAgICBhbmRxIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAg
ZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfb3IsIE9yLAorICAg
ICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgb3JpIHQwR1BSLCB0
MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQy
R1BSKQorICAgICAgICAgICAgb3JxIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQor
ICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeG9yLCBYb3IsCisgICAgICAg
IG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICB4b3JpIHQwR1BSLCB0MUdQ
UiwgdDJHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BS
KQorICAgICAgICAgICAgeG9ycSB0MEdQUiwgdDFHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKK2Vu
ZAorCittYWNybyB3YXNtQXRvbWljQ29tcGFyZUV4Y2hhbmdlT3BzKGxvd2VyQ2FzZU9wY29kZSwg
dXBwZXJDYXNlT3Bjb2RlLCBmbmIsIGZuaCwgZm5pLCBmbnEpCisgICAgd2FzbU9wKGk2NF9hdG9t
aWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4JXVwcGVyQ2FzZU9w
Y29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisg
ICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBtX2V4
cGVjdGVkLCB0MCkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCisgICAgICAgIGVt
aXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KGN0eCwgdDMsIHQxLCAxKQorICAg
ICAgICBmbmIodDAsIHQyLCBbdDNdLCB0NSwgdDEpCisgICAgICAgIGFuZHEgMHhmZiwgdDAgIyBG
SVhNRTogWmVyb0V4dGVuZDhUbzY0CisgICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAs
IDB4ZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBlbmQpCisgICAg
d2FzbU9wKGk2NF9hdG9taWNfcm13MTYlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWlj
Um13MTYldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwg
bV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAg
IG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVl
LCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRo
QWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDIpCisgICAgICAgIGZuaCh0MCwgdDIsIFt0M10s
IHQ1LCB0MSkKKyAgICAgICAgYW5kcSAweGZmZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQxNlRv
NjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZmZmLCAub2sgZW5kKQor
ICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWlj
X3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzMyJXVwcGVyQ2FzZU9w
Y29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisg
ICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBtX2V4
cGVjdGVkLCB0MCkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCisgICAgICAgIGVt
aXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0
eCwgdDMsIHQxLCA0KQorICAgICAgICBmbmkodDAsIHQyLCBbdDNdLCB0NSwgdDEpCisgICAgICAg
IGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmZmZmZmZmYsIC5vayBlbmQpCisgICAgICAg
IHJldHVybnEoY3R4LCB0MCkKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13JWxv
d2VyQ2FzZU9wY29kZSUsIFdhc21JNjRBdG9taWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8o
Y3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShj
dHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCisg
ICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVw
YXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgOCkK
KyAgICAgICAgZm5xKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQorICAgICAgICByZXR1cm5xKGN0eCwg
dDApCisgICAgZW5kKQorZW5kCisKK2lmIFg4Nl82NCBvciBBUk02NEUgb3IgQVJNNjQgb3IgUklT
Q1Y2NAorIyB0MEdQUiA9PiBleHBlY3RlZCwgdDJHUFIgPT4gdmFsdWUsIG1lbSA9PiBtZW1vcnkg
cmVmZXJlbmNlCit3YXNtQXRvbWljQ29tcGFyZUV4Y2hhbmdlT3BzKF9jbXB4Y2hnLCBDbXB4Y2hn
LAorICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCisgICAgICAgIGlm
IFg4Nl82NCBvciBBUk02NEUKKyAgICAgICAgICAgIGJxYSB0MEdQUiAsIDB4ZmYsIC5mYWlsCisg
ICAgICAgICAgICBhdG9taWN3ZWFrY2FzYiB0MEdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAg
am1wIC5kb25lCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgYXRvbWljbG9hZGIgbWVtLCB0
MEdQUgorICAgICAgICAuZG9uZToKKyAgICAgICAgZWxzZQorICAgICAgICAubG9vcDoKKyAgICAg
ICAgICAgIGxvYWRsaW5rYWNxYiBtZW0sIHQxR1BSCisgICAgICAgICAgICBicW5lcSB0MEdQUiwg
dDFHUFIsIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmRyZWxiIHQ1R1BSLCB0MkdQUiwgbWVt
CisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29w
CisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgc3RvcmVjb25kcmVsYiB0NUdQUiwgdDFHUFIs
IG1lbQorICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAu
bG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCisgICAg
ICAgIGVuZAorICAgIGVuZCwKKyAgICBtYWNybyh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQx
R1BSKQorICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRFCisgICAgICAgICAgICBicWEgdDBHUFIs
IDB4ZmZmZiwgLmZhaWwKKyAgICAgICAgICAgIGF0b21pY3dlYWtjYXNoIHQwR1BSLCB0MkdQUiwg
bWVtCisgICAgICAgICAgICBqbXAgLmRvbmUKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBh
dG9taWNsb2FkaCBtZW0sIHQwR1BSCisgICAgICAgIC5kb25lOgorICAgICAgICBlbHNlCisgICAg
ICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmthY3FoIG1lbSwgdDFHUFIKKyAgICAgICAg
ICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGgg
dDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAg
ICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRy
ZWxoIHQ1R1BSLCB0MUdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQor
ICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAgICAgICAgbW92ZSB0
MUdQUiwgdDBHUFIKKyAgICAgICAgZW5kCisgICAgZW5kLAorICAgIG1hY3JvKHQwR1BSLCB0MkdQ
UiwgbWVtLCB0NUdQUiwgdDFHUFIpCisgICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKKyAgICAg
ICAgICAgIGJxYSB0MEdQUiwgMHhmZmZmZmZmZiwgLmZhaWwKKyAgICAgICAgICAgIGF0b21pY3dl
YWtjYXNpIHQwR1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICBqbXAgLmRvbmUKKyAgICAgICAg
LmZhaWw6CisgICAgICAgICAgICBhdG9taWNsb2FkaSBtZW0sIHQwR1BSCisgICAgICAgIC5kb25l
OgorICAgICAgICBlbHNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmthY3Fp
IG1lbSwgdDFHUFIKKyAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKKyAgICAg
ICAgICAgIHN0b3JlY29uZHJlbGkgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEg
dDVHUFIsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6Cisg
ICAgICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0MUdQUiwgbWVtCisgICAgICAgICAgICBi
aWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25l
OgorICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgZW5kCisgICAgZW5kLAor
ICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCisgICAgICAgIGlmIFg4
Nl82NCBvciBBUk02NEUKKyAgICAgICAgICAgIGF0b21pY3dlYWtjYXNxIHQwR1BSLCB0MkdQUiwg
bWVtCisgICAgICAgIGVsc2UKKyAgICAgICAgLmxvb3A6CisgICAgICAgICAgICBsb2FkbGlua2Fj
cXEgbWVtLCB0MUdQUgorICAgICAgICAgICAgYnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAorICAg
ICAgICAgICAgc3RvcmVjb25kcmVscSB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgYmll
cSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZmFpbDoK
KyAgICAgICAgICAgIHN0b3JlY29uZHJlbHEgdDVHUFIsIHQxR1BSLCBtZW0KKyAgICAgICAgICAg
IGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRv
bmU6CisgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgorICAgICAgICBlbmQKKyAgICBlbmQp
CitlbmQKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJt
LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiCmluZGV4IDk1Yzg1
YzExMzQxYmU5NDk1ZjExZTc3ODhhNGIzNzBhNmQ5MWJiYTkuLjdkZDUzNTA4OThiMjY0NzJjMDNm
ZTcwNjIyZjdmMjAwYmE4ZTJkZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL2FybS5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9h
cm0ucmIKQEAgLTYzLDYgKzYzLDExIEBAIGNsYXNzIE5vZGUKICAgICAgICAgcmFpc2UgIkJvZ3Vz
IHJlZ2lzdGVyIG5hbWUgI3tkb3VibGVPcGVyYW5kfSIgdW5sZXNzIGRvdWJsZU9wZXJhbmQgPX4g
L15kLwogICAgICAgICAicyIgKyAoJH4ucG9zdF9tYXRjaC50b19pICogMikudG9fcwogICAgIGVu
ZAorICAgIGRlZiBhcm1TaW5nbGVIaQorICAgICAgICBkb3VibGVPcGVyYW5kID0gYXJtT3BlcmFu
ZAorICAgICAgICByYWlzZSAiQm9ndXMgcmVnaXN0ZXIgbmFtZSAje2RvdWJsZU9wZXJhbmR9IiB1
bmxlc3MgZG91YmxlT3BlcmFuZCA9fiAvXmQvCisgICAgICAgICJzIiArICgkfi5wb3N0X21hdGNo
LnRvX2kgKiAyICsgMSkudG9fcworICAgIGVuZAogZW5kCiAKIGNsYXNzIFNwZWNpYWxSZWdpc3Rl
cgpAQCAtOTgsMjEgKzEwMywyMSBAQCBlbmQKIGNsYXNzIFJlZ2lzdGVySUQKICAgICBkZWYgYXJt
T3BlcmFuZAogICAgICAgICBjYXNlIG5hbWUKLSAgICAgICAgd2hlbiAidDAiLCAiYTAiLCAicjAi
CisgICAgICAgIHdoZW4gInQwIiwgImEwIiwgIndhMCIsICJyMCIKICAgICAgICAgICAgICJyMCIK
LSAgICAgICAgd2hlbiAidDEiLCAiYTEiLCAicjEiCisgICAgICAgIHdoZW4gInQxIiwgImExIiwg
IndhMSIsICJyMSIKICAgICAgICAgICAgICJyMSIKLSAgICAgICAgd2hlbiAidDIiLCAiYTIiCisg
ICAgICAgIHdoZW4gInQyIiwgImEyIiwgIndhMiIKICAgICAgICAgICAgICJyMiIKLSAgICAgICAg
d2hlbiAidDMiLCAiYTMiCisgICAgICAgIHdoZW4gInQzIiwgImEzIiwgIndhMyIKICAgICAgICAg
ICAgICJyMyIKICAgICAgICAgd2hlbiAidDQiICMgTExJbnQgUEMKICAgICAgICAgICAgICJyNCIK
LSAgICAgICAgd2hlbiAidDUiCisgICAgICAgIHdoZW4gInQ1IiwgIndzMCIgIyB3czAgbXVzdCBi
ZSBhIG5vbi1hcmd1bWVudC9ub24tcmV0dXJuIEdQUgogICAgICAgICAgICAgInI1IgogICAgICAg
ICB3aGVuICJjZnIiCiAgICAgICAgICAgICAicjciCi0gICAgICAgIHdoZW4gInQ2IgorICAgICAg
ICB3aGVuICJ0NiIsICJ3czEiICMgd3MxIG11c3QgYmUgYSBub24tYXJndW1lbnQvbm9uLXJldHVy
biBHUFIKICAgICAgICAgICAgICJyOCIKICAgICAgICAgd2hlbiAidDciCiAgICAgICAgICAgICAi
cjkiICMgcjkgaXMgYWxzbyBhIHNjcmF0Y2ggcmVnaXN0ZXIsIHNvIHVzZSBjYXJlZnVsbHkhCkBA
IC0xMzUsMTggKzE0MCwyMiBAQCBlbmQKIGNsYXNzIEZQUmVnaXN0ZXJJRAogICAgIGRlZiBhcm1P
cGVyYW5kCiAgICAgICAgIGNhc2UgbmFtZQotICAgICAgICB3aGVuICJmdDAiLCAiZnIiLCAiZmEw
IgorICAgICAgICB3aGVuICJmdDAiLCAiZnIiLCAiZmEwIiwgIndmYTAiCiAgICAgICAgICAgICAi
ZDAiCi0gICAgICAgIHdoZW4gImZ0MSIsICJmYTEiCisgICAgICAgIHdoZW4gImZ0MSIsICJmYTEi
LCAid2ZhMSIKICAgICAgICAgICAgICJkMSIKLSAgICAgICAgd2hlbiAiZnQyIgorICAgICAgICB3
aGVuICJmdDIiLCAid2ZhMiIKICAgICAgICAgICAgICJkMiIKLSAgICAgICAgd2hlbiAiZnQzIgor
ICAgICAgICB3aGVuICJmdDMiLCAid2ZhMyIKICAgICAgICAgICAgICJkMyIKLSAgICAgICAgd2hl
biAiZnQ0IgorICAgICAgICB3aGVuICJmdDQiLCAid2ZhNCIKICAgICAgICAgICAgICJkNCIKLSAg
ICAgICAgd2hlbiAiZnQ1IgorICAgICAgICB3aGVuICJmdDUiLCAid2ZhNSIKICAgICAgICAgICAg
ICJkNSIKKyAgICAgICAgd2hlbiAiZnQ2IiwgIndmYTYiCisgICAgICAgICAgICAiZDYiCisgICAg
ICAgIHdoZW4gImZ0NyIsICJ3ZmE3IgorICAgICAgICAgICAgImQ3IgogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICByYWlzZSAiQmFkIHJlZ2lzdGVyICN7bmFtZX0gZm9yIEFSTSBhdCAje2NvZGVP
cmlnaW5TdHJpbmd9IgogICAgICAgICBlbmQKQEAgLTE2Myw3ICsxNzIsMTEgQEAgZW5kCiBjbGFz
cyBBZGRyZXNzCiAgICAgZGVmIGFybU9wZXJhbmQKICAgICAgICAgcmFpc2UgIkJhZCBvZmZzZXQg
YXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgaWYgb2Zmc2V0LnZhbHVlIDwgLTB4ZmYgb3Igb2Zmc2V0
LnZhbHVlID4gMHhmZmYKLSAgICAgICAgIlsje2Jhc2UuYXJtT3BlcmFuZH0sIFwjI3tvZmZzZXQu
dmFsdWV9XSIKKyAgICAgICAgaWYgb2Zmc2V0LnZhbHVlID09IDAKKyAgICAgICAgICAiWyN7YmFz
ZS5hcm1PcGVyYW5kfV0iCisgICAgICAgIGVsc2UKKyAgICAgICAgICAiWyN7YmFzZS5hcm1PcGVy
YW5kfSwgXCMje29mZnNldC52YWx1ZX1dIgorICAgICAgICBlbmQKICAgICBlbmQKIGVuZAogCkBA
IC0zMDYsMTYgKzMxOSwyNSBAQCBjbGFzcyBTZXF1ZW5jZQogICAgICAgICByZXN1bHQgPSBhcm1M
b3dlckxhYmVsUmVmZXJlbmNlcyhyZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1h
bGZvcm1lZEFkZHJlc3NlcyhyZXN1bHQpIHsKICAgICAgICAgICAgIHwgbm9kZSwgYWRkcmVzcyB8
Ci0gICAgICAgICAgICBpZiBhZGRyZXNzLmlzX2E/IEJhc2VJbmRleAotICAgICAgICAgICAgICAg
IGFkZHJlc3Mub2Zmc2V0LnZhbHVlID09IDAKLSAgICAgICAgICAgIGVsc2lmIGFkZHJlc3MuaXNf
YT8gQWRkcmVzcwotICAgICAgICAgICAgICAgICgtMHhmZi4uMHhmZmYpLmluY2x1ZGU/IGFkZHJl
c3Mub2Zmc2V0LnZhbHVlCisgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAg
ICB3aGVuICJsb2FkMmlhIiwgInN0b3JlMmlhIgorICAgICAgICAgICAgICAgIGlmIGFkZHJlc3Mu
aXNfYT8gQWRkcmVzcworICAgICAgICAgICAgICAgICAgICAoYWRkcmVzcy5vZmZzZXQudmFsdWUg
JSA0ID09IDApICYmICgoLTEwMjMuLjEwMjMpLmluY2x1ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVl
KQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZmFsc2UKKyAgICAg
ICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBmYWxzZQor
ICAgICAgICAgICAgICAgIGlmIGFkZHJlc3MuaXNfYT8gQmFzZUluZGV4CisgICAgICAgICAgICAg
ICAgICAgIGFkZHJlc3Mub2Zmc2V0LnZhbHVlID09IDAgJiYgbm9kZS5vcGNvZGUKKyAgICAgICAg
ICAgICAgICBlbHNpZiBhZGRyZXNzLmlzX2E/IEFkZHJlc3MKKyAgICAgICAgICAgICAgICAgICAg
KC0weGZmLi4weGZmZikuaW5jbHVkZT8gYWRkcmVzcy5vZmZzZXQudmFsdWUKKyAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGZhbHNlCisgICAgICAgICAgICAgICAgZW5k
CiAgICAgICAgICAgICBlbmQKICAgICAgICAgfQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJN
YWxmb3JtZWRBZGRyZXNzZXNEb3VibGUocmVzdWx0KQotICAgICAgICByZXN1bHQgPSByaXNjTG93
ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKHJlc3VsdCwgWyJzdG9yZWIiLCAic3RvcmVoIiwgInN0b3Jl
aSIsICJzdG9yZXAiLCAic3RvcmVxIl0pCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3Bs
YWNlZEltbWVkaWF0ZXMocmVzdWx0LCBbInN0b3JlYiIsICJzdG9yZWgiLCAic3RvcmVpIiwgInN0
b3JlcCIsICJzdG9yZXEiLCAic3RvcmUyaWEiXSkKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2Vy
TWFsZm9ybWVkSW1tZWRpYXRlcyhyZXN1bHQsIDAuLjB4ZmYsIDAuLjB4MGZmKQogICAgICAgICBy
ZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXMocmVzdWx0KQogICAgICAgICByZXN1
bHQgPSByaXNjTG93ZXJSZWdpc3RlclJldXNlKHJlc3VsdCkKQEAgLTMzNCw2ICszNTYsMTAgQEAg
ZGVmIGFybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcykKICAgICBhcm1PcGVyYW5kcyhbb3BlcmFu
ZHNbLTFdXSArIG9wZXJhbmRzWzAuLi0yXSkKIGVuZAogCitkZWYgYXJtRmxpcHBlZE9wZXJhbmRz
UGFpcihvcGVyYW5kcykKKyAgICBhcm1PcGVyYW5kcyhbb3BlcmFuZHNbLTJdLCBvcGVyYW5kc1st
MV1dICsgb3BlcmFuZHNbMC4uLTNdKQorZW5kCisKIGRlZiBlbWl0QXJtQ29tcGFjdChvcGNvZGUy
LCBvcGNvZGUzLCBvcGVyYW5kcykKICAgICBpZiBvcGVyYW5kcy5zaXplID09IDMKICAgICAgICAg
JGFzbS5wdXRzICIje29wY29kZTN9ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCkBA
IC0zNjMsNiArMzg5LDEyIEBAIGRlZiBlbWl0QXJtRG91YmxlQnJhbmNoKGJyYW5jaE9wY29kZSwg
b3BlcmFuZHMpCiAgICAgJGFzbS5wdXRzICIje2JyYW5jaE9wY29kZX0gI3tvcGVyYW5kc1syXS5h
c21MYWJlbH0iCiBlbmQKIAorZGVmIGVtaXRBcm1TaW5nbGVCcmFuY2goYnJhbmNoT3Bjb2RlLCBv
cGVyYW5kcykKKyAgICAkYXNtLnB1dHMgInZjbXBlLmYzMiAje29wZXJhbmRzWzBdLmFybVNpbmds
ZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKKyAgICAkYXNtLnB1dHMgInZtcnMgYXBzcl9u
emN2LCBmcHNjciIKKyAgICAkYXNtLnB1dHMgIiN7YnJhbmNoT3Bjb2RlfSAje29wZXJhbmRzWzJd
LmFzbUxhYmVsfSIKK2VuZAorCiBkZWYgZW1pdEFybVRlc3Qob3BlcmFuZHMpCiAgICAgdmFsdWUg
PSBvcGVyYW5kc1swXQogICAgIGNhc2Ugb3BlcmFuZHMuc2l6ZQpAQCAtMzgzLDcgKzQxNSwxNSBA
QCBlbmQKIAogZGVmIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCBjb2RlKQogICAgICRh
c20ucHV0cyAibW92ICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sIFwjMCIKLSAgICAkYXNtLnB1
dHMgInZjbXBlLmY2NCAje2FybU9wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0iCisgICAgJGFzbS5w
dXRzICJ2Y21wLmY2NCAje2FybU9wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0iCisgICAgJGFzbS5w
dXRzICJ2bXJzIEFQU1JfbnpjdiwgRlBTQ1IiCisgICAgJGFzbS5wdXRzICJpdCAje2NvZGV9Igor
ICAgICRhc20ucHV0cyAibW92I3tjb2RlfSAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCBcIzEi
CitlbmQKKworZGVmIGVtaXRBcm1GbG9hdENvbXBhcmUob3BlcmFuZHMsIGNvZGUpCisgICAgJGFz
bS5wdXRzICJtb3YgI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgXCMwIgorICAgICRhc20ucHV0
cyAidmNtcC5mMzIgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNp
bmdsZX0iCiAgICAgJGFzbS5wdXRzICJ2bXJzIEFQU1JfbnpjdiwgRlBTQ1IiCiAgICAgJGFzbS5w
dXRzICJpdCAje2NvZGV9IgogICAgICRhc20ucHV0cyAibW92I3tjb2RlfSAje29wZXJhbmRzWzJd
LmFybU9wZXJhbmR9LCBcIzEiCkBAIC00MDMsNiArNDQzLDE5IEBAIGRlZiBlbWl0QXJtVGVzdFNl
dChvcGVyYW5kcywgY29kZSkKICAgICAkYXNtLnB1dHMgIm1vdiN7Y29kZX0gI3tvcGVyYW5kc1st
MV0uYXJtT3BlcmFuZH0sIFwjMSIKIGVuZAogCitkZWYgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdp
biwgdGV4dCkKKyAgICByZXR1cm4gSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJlbWl0Iiwg
W1N0cmluZ0xpdGVyYWwubmV3KGNvZGVPcmlnaW4sICJcIiN7dGV4dH1cIiIpXSkKK2VuZAorCitk
ZWYgZW1pdEFybVRydW5jYXRlRmxvYXQoY29kZU9yaWdpbiwgdG8sIGZyb20sIG9wZXJhbmRzKQor
ICAgIHRtcCA9IEFSTV9FWFRSQV9GUFJTWy0xXQorICAgIHNyYyA9IGZyb20gPT0gImYzMiIgPyBv
cGVyYW5kc1swXS5hcm1TaW5nbGUgOiBvcGVyYW5kc1swXS5hcm1PcGVyYW5kCisgICAgU2VxdWVu
Y2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwg
InZjdnQuI3t0b30uI3tmcm9tfSAje3RtcC5hcm1TaW5nbGV9LCAje3NyY30iKSwKKyAgICAgICAg
cmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5k
fSwgI3t0bXAuYXJtU2luZ2xlfSIpCisgICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCitlbmQK
KwogY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICBkZWYgbG93ZXJBUk12NwogICAgICAgICByYWlzZSB1
bmxlc3MgJGFjdGl2ZUJhY2tlbmQgPT0gIkFSTXY3IgpAQCAtNDQwLDYgKzQ5MywxMCBAQCBjbGFz
cyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImFkZCN7c3VmZml4
fSAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICAgICAgICAgIGVuZAog
ICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImFkY2kiCisgICAgICAgICAgICBlbWl0QXJt
KCJhZGMiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYWJzZCIKKyAgICAgICAgICAkYXNtLnB1
dHMgInZhYnMuZjY0ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdo
ZW4gImFuZGkiLCAiYW5kcCIKICAgICAgICAgICAgIGVtaXRBcm1Db21wYWN0KCJhbmRzIiwgImFu
ZCIsIG9wZXJhbmRzKQogICAgICAgICB3aGVuICJvcmkiLCAib3JwIiwgIm9yaCIKQEAgLTQ1OCwx
NCArNTE1LDM0IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBlbWl0QXJtKCJtdWwi
LCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAic3ViaSIsICJzdWJwIiwgInN1YmlzIgogICAgICAg
ICAgICAgZW1pdEFybUNvbXBhY3QoInN1YnMiLCAic3VicyIsIG9wZXJhbmRzKQorICAgICAgICB3
aGVuICJzYmNpIgorICAgICAgICAgICAgZW1pdEFybSgic2JjIiwgb3BlcmFuZHMpCiAgICAgICAg
IHdoZW4gIm5lZ2kiLCAibmVncCIKICAgICAgICAgICAgICRhc20ucHV0cyAicnNicyAje29wZXJh
bmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCBcIzAiCiAgICAg
ICAgIHdoZW4gIm5vdGkiCiAgICAgICAgICAgICAkYXNtLnB1dHMgIm12bnMgI3tvcGVyYW5kc1sw
XS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgd2hlbiAi
bHJvdGF0ZWkiCisgICAgICAgICAgICB0bXAgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisg
ICAgICAgICAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAgICAgICAgICAgICAgIElu
c3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAibW92ZSIsIFtvcGVyYW5kc1swXSwgdG1wXSksCisg
ICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJuZWdpIiwgW3RtcF0p
LAorICAgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAicnJvdGF0ZWki
LCBbdG1wLCBvcGVyYW5kc1sxXV0pLAorICAgICAgICAgICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tl
bmQpCisgICAgICAgIHdoZW4gInJyb3RhdGVpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJyb3Ig
I3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAidHpjbnRpIgor
ICAgICAgICAgICAgJGFzbS5wdXRzICJyYml0ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRz
KX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImNseiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9
LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9IgorICAgICAgICB3aGVuICJsemNudGkiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgImNseiAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9Igog
ICAgICAgICB3aGVuICJsb2FkaSIsICJsb2FkaXMiLCAibG9hZHAiCiAgICAgICAgICAgICAkYXNt
LnB1dHMgImxkciAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVu
ICJzdG9yZWkiLCAic3RvcmVwIgogICAgICAgICAgICAgJGFzbS5wdXRzICJzdHIgI3thcm1PcGVy
YW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkMmlhIgorICAgICAgICAgICAgJGFz
bS5wdXRzICJsZHJkICN7YXJtRmxpcHBlZE9wZXJhbmRzUGFpcihvcGVyYW5kcyl9IgorICAgICAg
ICB3aGVuICJzdG9yZTJpYSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RyZCAje2FybU9wZXJh
bmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gImxvYWRiIgogICAgICAgICAgICAgJGFzbS5w
dXRzICJsZHJiICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4g
ImxvYWRic2kiCkBAIC00NzgsMjAgKzU1NSwxMTAgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAg
ICAgICAgICRhc20ucHV0cyAibGRyc2gudyAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9
IgogICAgICAgICB3aGVuICJzdG9yZWgiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInN0cmggI3th
cm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkbGlua2IiCisgICAgICAg
ICAgICAkYXNtLnB1dHMgImxkcmV4YiAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9Igor
ICAgICAgICB3aGVuICJsb2FkbGlua2giCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmV4aCAj
e2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkbGlua2ki
CisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmV4ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJh
bmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRsaW5rMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMg
ImxkcmV4ZCAje2FybUZsaXBwZWRPcGVyYW5kc1BhaXIob3BlcmFuZHMpfSIKKyAgICAgICAgd2hl
biAic3RvcmVjb25kYiIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RyZXhiICN7YXJtT3BlcmFu
ZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVjb25kaCIKKyAgICAgICAgICAgICRh
c20ucHV0cyAic3RyZXhoICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAi
c3RvcmVjb25kaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RyZXggI3thcm1PcGVyYW5kcyhv
cGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9yZWNvbmQyaSIKKyAgICAgICAgICAgICRhc20u
cHV0cyAic3RyZXhkICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAibG9h
ZGQiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZsZHIuNjQgI3thcm1GbGlwcGVkT3BlcmFuZHMo
b3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAic3RvcmVkIgogICAgICAgICAgICAgJGFzbS5wdXRz
ICJ2c3RyLjY0ICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGYi
CisgICAgICAgICAgICAkYXNtLnB1dHMgInZsZHIuMzIgI3tvcGVyYW5kc1stMV0uYXJtU2luZ2xl
fSwgI3thcm1PcGVyYW5kcyhvcGVyYW5kc1swLi4tMl0pfSIKKyAgICAgICAgd2hlbiAic3RvcmVm
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2c3RyLjMyICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xl
fSwgI3thcm1PcGVyYW5kcyhvcGVyYW5kc1sxLi4tMV0pfSIKKyAgICAgICAgd2hlbiAiYWRkZiIK
KyAgICAgICAgICAgICRhc20ucHV0cyAidmFkZC5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9
LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAg
ICAgICAgd2hlbiAic3ViZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidnN1Yi5mMzIgI3tvcGVy
YW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNb
MF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAibXVsZiIKKyAgICAgICAgICAgICRhc20ucHV0
cyAidm11bC5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNp
bmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAiZGl2ZiIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAidmRpdi5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAj
e29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAg
ICAgd2hlbiAic3FydGYiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZzcXJ0LmYzMiAje29wZXJh
bmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hl
biAiYWJzZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmFicy5mMzIgI3tvcGVyYW5kc1sxXS5h
cm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gIm5lZ2Yi
CisgICAgICAgICAgICAkYXNtLnB1dHMgInZuZWcuZjMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xl
fSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJiZmx0IgorICAgICAg
ICAgICAgZW1pdEFybVNpbmdsZUJyYW5jaCgiYm1pIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4g
ImJmbHR1biIKKyAgICAgICAgICAgIGVtaXRBcm1TaW5nbGVCcmFuY2goImJsdCIsIG9wZXJhbmRz
KQorICAgICAgICB3aGVuICJiZmx0ZXF1biIKKyAgICAgICAgICAgIGVtaXRBcm1TaW5nbGVCcmFu
Y2goImJsZSIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZmVxIgorICAgICAgICAgICAgZW1p
dEFybVNpbmdsZUJyYW5jaCgiYmVxIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJmZ3QiCisg
ICAgICAgICAgICBlbWl0QXJtU2luZ2xlQnJhbmNoKCJiZ3QiLCBvcGVyYW5kcykKKyAgICAgICAg
d2hlbiAiYmZndGVxdW4iCisgICAgICAgICAgICBlbWl0QXJtU2luZ2xlQnJhbmNoKCJicGwiLCBv
cGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRsdHVuIgorICAgICAgICAgICAgZW1pdEFybURvdWJs
ZUJyYW5jaCgiYmx0Iiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gImFkZGQiCiAgICAgICAgICAg
ICBlbWl0QXJtKCJ2YWRkLmY2NCIsIG9wZXJhbmRzKQotICAgICAgICB3aGVuICJkaXZkIgotICAg
ICAgICAgICAgZW1pdEFybSgidmRpdi5mNjQiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAic3Vi
ZCIKICAgICAgICAgICAgIGVtaXRBcm0oInZzdWIuZjY0Iiwgb3BlcmFuZHMpCiAgICAgICAgIHdo
ZW4gIm11bGQiCiAgICAgICAgICAgICBlbWl0QXJtKCJ2bXVsLmY2NCIsIG9wZXJhbmRzKQorICAg
ICAgICB3aGVuICJkaXZkIgorICAgICAgICAgICAgZW1pdEFybSgidmRpdi5mNjQiLCBvcGVyYW5k
cykKICAgICAgICAgd2hlbiAic3FydGQiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZzcXJ0LmY2
NCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJuZWdkIgor
ICAgICAgICAgICAgJGFzbS5wdXRzICJ2bmVnLmY2NCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVy
YW5kcyl9IgorICAgICAgICB3aGVuICJvcmYiCisgICAgICAgICAgICAodG1wTGhzLCB0bXBSaHMp
ID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0xXQorICAgICAgICAgICAgU2VxdWVuY2UubmV3KGNvZGVP
cmlnaW4sIFsKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92
ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iKSwKKyAgICAg
ICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9w
ZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgSW5zdHJ1
Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJvcmkiLCBbdG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAg
ICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJt
U2luZ2xlfSwgI3t0bXBSaHMuYXJtT3BlcmFuZH0iKQorICAgICAgICAgICAgXSkubG93ZXIoJGFj
dGl2ZUJhY2tlbmQpCisgICAgICAgIHdoZW4gImFuZGYiCisgICAgICAgICAgICAodG1wTGhzLCB0
bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0xXQorICAgICAgICAgICAgU2VxdWVuY2UubmV3
KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwg
ICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iKSwK
KyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhz
LmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAg
SW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJhbmRpIiwgW3RtcExocywgdG1wUmhzXSksCisg
ICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje29wZXJhbmRz
WzFdLmFybVNpbmdsZX0sICN7dG1wUmhzLmFybU9wZXJhbmR9IikKKyAgICAgICAgICAgIF0pLmxv
d2VyKCRhY3RpdmVCYWNrZW5kKQorICAgICAgICB3aGVuICJvcmQiCisgICAgICAgICAgICAodG1w
TGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0xXQorICAgICAgICAgICAgU2VxdWVu
Y2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9y
aWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmds
ZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7
dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iKSwKKyAgICAgICAg
ICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJvcmkiLCBbdG1wTGhzLCB0bXBSaHNd
KSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7b3Bl
cmFuZHNbMV0uYXJtU2luZ2xlfSwgI3t0bXBSaHMuYXJtT3BlcmFuZH0iKSwKKyAgICAgICAgICAg
ICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9
LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZUhpfSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVj
dGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNb
MV0uYXJtU2luZ2xlSGl9IiksCisgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3Jp
Z2luLCAib3JpIiwgW3RtcExocywgdG1wUmhzXSksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0
aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZUhpfSwgI3t0bXBS
aHMuYXJtT3BlcmFuZH0iKQorICAgICAgICAgICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCisg
ICAgICAgIHdoZW4gImFuZGQiCisgICAgICAgICAgICAodG1wTGhzLCB0bXBSaHMpID0gQVJNX0VY
VFJBX0dQUlNbLTIuLi0xXQorICAgICAgICAgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsK
KyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhz
LmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAg
cmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAj
e29wZXJhbmRzWzFdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3
KGNvZGVPcmlnaW4sICJhbmRpIiwgW3RtcExocywgdG1wUmhzXSksCisgICAgICAgICAgICAgIHJh
d0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0s
ICN7dG1wUmhzLmFybU9wZXJhbmR9IiksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNv
ZGVPcmlnaW4sICAidm1vdiAje3RtcExocy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1T
aW5nbGVIaX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2
bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZUhpfSIpLAor
ICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImFuZGkiLCBbdG1wTGhz
LCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2
bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlSGl9LCAje3RtcFJocy5hcm1PcGVyYW5kfSIpCisg
ICAgICAgICAgICBdKS5sb3dlcigkYWN0aXZlQmFja2VuZCkKICAgICAgICAgd2hlbiAiY2kyZHMi
CiAgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAj
e29wZXJhbmRzWzBdLmFybU9wZXJhbmR9IgogICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmY2
NC5zMzIgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9
IgpAQCAtNTQ0LDYgKzcxMSw4IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgIHdoZW4gIm1v
dmR6IgogICAgICAgICAgICAgIyBGSVhNRTogZWl0aGVyIHN1cHBvcnQgdGhpcyBvciByZW1vdmUg
aXQuCiAgICAgICAgICAgICByYWlzZSAiQVJNIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcGNvZGUg
eWV0LCAje2NvZGVPcmlnaW59IgorICAgICAgICB3aGVuICJtb3ZlZCIKKyAgICAgICAgICAgICRh
c20ucHV0cyAidm1vdi5mNjQgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAg
ICAgd2hlbiAicG9wIgogICAgICAgICAgICAgb3BlcmFuZHMuZWFjaCB7CiAgICAgICAgICAgICAg
ICAgfCBvcCB8CkBAIC01NjAsOSArNzI5LDE3IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3YgI3thcm1GbGlwcGVkT3Bl
cmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJtb3ZlaWki
CisgICAgICAgICAgICByYWlzZSAiRmlyc3Qgb3BlcmFuZCBvZiBtb3ZlaWkgbXVzdCBiZSBhbiBp
bW1lZGlhdGUiIHVubGVzcyBvcGVyYW5kc1swXS5pbW1lZGlhdGU/CisgICAgICAgICAgICBhcm1N
b3ZlSW1tZWRpYXRlKG9wZXJhbmRzWzBdLnZhbHVlID4+IDMyLCBvcGVyYW5kc1sxXSkKKyAgICAg
ICAgICAgIGFybU1vdmVJbW1lZGlhdGUob3BlcmFuZHNbMF0udmFsdWUgJiAweGZmZmZmZmZmLCBv
cGVyYW5kc1syXSkKICAgICAgICAgd2hlbiAibXZsYmwiCiAgICAgICAgICAgICAgICAgJGFzbS5w
dXRzICJtb3Z3ICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sIFwjOmxvd2VyMTY6I3tvcGVyYW5k
c1swXS52YWx1ZX0iCiAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3Z0ICN7b3BlcmFuZHNb
MV0uYXJtT3BlcmFuZH0sIFwjOnVwcGVyMTY6I3tvcGVyYW5kc1swXS52YWx1ZX0iCisgICAgICAg
IHdoZW4gInN4YjJpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzeHRiICN7YXJtRmxpcHBlZE9w
ZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN4aDJpIgorICAgICAgICAgICAgJGFz
bS5wdXRzICJzeHRoICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdo
ZW4gIm5vcCIKICAgICAgICAgICAgICRhc20ucHV0cyAibm9wIgogICAgICAgICB3aGVuICJiaWVx
IiwgImJwZXEiLCAiYmJlcSIKQEAgLTY1NiwxNCArODMzLDQ2IEBAIGNsYXNzIEluc3RydWN0aW9u
CiAgICAgICAgICAgICBlbWl0QXJtQ29tcGFyZShvcGVyYW5kcywgImx0IikKICAgICAgICAgd2hl
biAiY2lsdGVxIiwgImNwbHRlcSIsICJjYmx0ZXEiCiAgICAgICAgICAgICBlbWl0QXJtQ29tcGFy
ZShvcGVyYW5kcywgImxlIikKLSAgICAgICAgd2hlbiAiY2RndCIKLSAgICAgICAgICAgIGVtaXRB
cm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAiZ3QiKQotICAgICAgICB3aGVuICJjZGd0ZXEiCi0g
ICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywgImdlIikKKyAgICAgICAg
d2hlbiAiY2ZlcSIKKyAgICAgICAgICAgIGVtaXRBcm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJl
cSIpCisgICAgICAgIHdoZW4gImNmbmVxdW4iCisgICAgICAgICAgICBlbWl0QXJtRmxvYXRDb21w
YXJlKG9wZXJhbmRzLCAibmUiKQorICAgICAgICB3aGVuICJjZmx0IgorICAgICAgICAgICAgZW1p
dEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywgIm1pIikKKyAgICAgICAgd2hlbiAiY2ZsdGVxIgor
ICAgICAgICAgICAgZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywgImxzIikKKyAgICAgICAg
d2hlbiAiY2ZndCIKKyAgICAgICAgICAgIGVtaXRBcm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJn
dCIpCisgICAgICAgIHdoZW4gImNmZ3RlcSIKKyAgICAgICAgICAgIGVtaXRBcm1GbG9hdENvbXBh
cmUob3BlcmFuZHMsICJnZSIpCisgICAgICAgIHdoZW4gImNkZXEiCisgICAgICAgICAgICBlbWl0
QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywgImVxIikKKyAgICAgICAgd2hlbiAiY2RuZXF1biIK
KyAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAibmUiKQogICAgICAg
ICB3aGVuICJjZGx0IgogICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMs
ICJtaSIpCiAgICAgICAgIHdoZW4gImNkbHRlcSIKICAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVD
b21wYXJlKG9wZXJhbmRzLCAibHMiKQorICAgICAgICB3aGVuICJjZGd0IgorICAgICAgICAgICAg
ZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMsICJndCIpCisgICAgICAgIHdoZW4gImNkZ3Rl
cSIKKyAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAiZ2UiKQorICAg
ICAgICB3aGVuICJjZjJkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmY2NC5mMzIgI3tv
cGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAg
ICB3aGVuICJjZDJmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmYzMi5mNjQgI3tvcGVy
YW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9IgorICAgICAgICB3
aGVuICJjaTJmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJt
U2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0
cyAidmN2dC5mMzIudTMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5h
cm1TaW5nbGV9IgorICAgICAgICB3aGVuICJjaTJmcyIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
dm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0i
CisgICAgICAgICAgICAkYXNtLnB1dHMgInZjdnQuZjMyLnMzMiAje29wZXJhbmRzWzFdLmFybVNp
bmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAiY2kyZCIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3Bl
cmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInZjdnQuZjY0LnUz
MiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iCisg
ICAgICAgIHdoZW4gImNpMmRzIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFu
ZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAidmN2dC5mNjQuczMyICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sICN7b3Bl
cmFuZHNbMV0uYXJtU2luZ2xlfSIKICAgICAgICAgd2hlbiAidGlzIiwgInRicyIsICJ0cHMiCiAg
ICAgICAgICAgICBlbWl0QXJtVGVzdFNldChvcGVyYW5kcywgIm1pIikKICAgICAgICAgd2hlbiAi
dGl6IiwgInRieiIsICJ0cHoiCkBAIC02NzQsMTAgKzg4MywyMiBAQCBjbGFzcyBJbnN0cnVjdGlv
bgogICAgICAgICAgICAgJGFzbS5wdXRzICJsZHIgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwg
W3NwLCBcIyN7b3BlcmFuZHNbMF0udmFsdWUgKiA0fV0iCiAgICAgICAgIHdoZW4gInBva2UiCiAg
ICAgICAgICAgICAkYXNtLnB1dHMgInN0ciAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCBbc3As
IFwjI3tvcGVyYW5kc1swXS52YWx1ZSAqIDR9XSIKKyAgICAgICAgd2hlbiAiZmkyZiIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFu
ZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAgIHdoZW4gImZmMmkiCisgICAgICAgICAgICAkYXNt
LnB1dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1T
aW5nbGV9IgogICAgICAgICB3aGVuICJmaWkyZCIKICAgICAgICAgICAgICRhc20ucHV0cyAidm1v
diAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAj
e29wZXJhbmRzWzFdLmFybU9wZXJhbmR9IgogICAgICAgICB3aGVuICJmZDJpaSIKICAgICAgICAg
ICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje29wZXJhbmRz
WzJdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9IgorICAgICAgICB3aGVu
ICJ0cnVuY2F0ZWYyaSIKKyAgICAgICAgICAgIGVtaXRBcm1UcnVuY2F0ZUZsb2F0KGNvZGVPcmln
aW4sICJ1MzIiLCAiZjMyIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInRydW5jYXRlZjJpcyIK
KyAgICAgICAgICAgIGVtaXRBcm1UcnVuY2F0ZUZsb2F0KGNvZGVPcmlnaW4sICJzMzIiLCAiZjMy
Iiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInRydW5jYXRlZDJpIgorICAgICAgICAgICAgZW1p
dEFybVRydW5jYXRlRmxvYXQoY29kZU9yaWdpbiwgInUzMiIsICJmNjQiLCBvcGVyYW5kcykKKyAg
ICAgICAgd2hlbiAidHJ1bmNhdGVkMmlzIgorICAgICAgICAgICAgZW1pdEFybVRydW5jYXRlRmxv
YXQoY29kZU9yaWdpbiwgInMzMiIsICJmNjQiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAiYm8i
CiAgICAgICAgICAgICAkYXNtLnB1dHMgImJ2cyAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKICAg
ICAgICAgd2hlbiAiYnMiCkBAIC02ODYsMTMgKzkwNywxNyBAQCBjbGFzcyBJbnN0cnVjdGlvbgog
ICAgICAgICAgICAgJGFzbS5wdXRzICJiZXEgI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCiAgICAg
ICAgIHdoZW4gImJueiIKICAgICAgICAgICAgICRhc20ucHV0cyAiYm5lICN7b3BlcmFuZHNbMF0u
YXNtTGFiZWx9IgorICAgICAgICB3aGVuICJiY3MiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJj
cyAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKICAgICAgICAgd2hlbiAibGVhaSIsICJsZWFwIgog
ICAgICAgICAgICAgb3BlcmFuZHNbMF0uYXJtRW1pdExlYShvcGVyYW5kc1sxXSkKLSAgICAgICAg
d2hlbiAic211bGxpIgorICAgICAgICB3aGVuICJzbXVsbGkiLCAidW11bGxpIgogICAgICAgICAg
ICAgcmFpc2UgIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgdG8gc211bGwgaW4gI3tzZWxmLmlu
c3BlY3R9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBvcGVyYW5kcy5sZW5ndGggPT0g
NAotICAgICAgICAgICAgJGFzbS5wdXRzICJzbXVsbCAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9
LCAje29wZXJhbmRzWzNdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAj
e29wZXJhbmRzWzFdLmFybU9wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29k
ZVswLi4tMl19ICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbM10uYXJtT3Bl
cmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFu
ZH0iCiAgICAgICAgIHdoZW4gIm1lbWZlbmNlIgogICAgICAgICAgICAgJGFzbS5wdXRzICJkbWIg
c3kiCisgICAgICAgIHdoZW4gImZlbmNlIgorICAgICAgICAgICAgJGFzbS5wdXRzICJkbWIgaXNo
IgogICAgICAgICB3aGVuICJjbHJicCIKICAgICAgICAgICAgICRhc20ucHV0cyAiYmljICN7b3Bl
cmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFu
ZHNbMV0uYXJtT3BlcmFuZH0iCiAgICAgICAgIHdoZW4gImdsb2JhbGFkZHIiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKaW5kZXggNTRiMDI3
ZjNkYTAxNzczODM0NWU5ZDJiNjE4Zjc0ODBmMDg0ZWQ0NC4uN2UyODBiN2Y3OGI0NmRmNDY4NDE2
ZmE1YTQ1MWI2OWIzMWJkZmE4MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL2luc3RydWN0aW9ucy5yYgpAQCAtNTksNiArNTksNyBAQCBNQUNST19JTlNUUlVDVElP
TlMgPQogICAgICAicnJvdGF0ZXEiLAogICAgICAic3ViaSIsCiAgICAgICJ4b3JpIiwKKyAgICAg
ImxvYWQyaWEiLAogICAgICAibG9hZGkiLAogICAgICAibG9hZGlzIiwKICAgICAgImxvYWRiIiwK
QEAgLTY3LDYgKzY4LDcgQEAgTUFDUk9fSU5TVFJVQ1RJT05TID0KICAgICAgImxvYWRoIiwKICAg
ICAgImxvYWRoc2kiLAogICAgICAibG9hZGhzcSIsCisgICAgICJzdG9yZTJpYSIsCiAgICAgICJz
dG9yZWkiLAogICAgICAic3RvcmVoIiwKICAgICAgInN0b3JlYiIsCkBAIC0zNzcsOSArMzc5LDIx
IEBAIFg4Nl9JTlNUUlVDVElPTlMgPQogCiBBUk1fSU5TVFJVQ1RJT05TID0KICAgICBbCisgICAg
ICJhZGNpIiwKKyAgICAgImJjcyIsCiAgICAgICJjbHJicCIsCiAgICAgICJtdmxibCIsCi0gICAg
ICJnbG9iYWxhZGRyIgorICAgICAiZ2xvYmFsYWRkciIsCisgICAgICJzYmNpIiwKKyAgICAgIm1v
dmVpaSIsCisgICAgICJsb2FkbGlua2IiLAorICAgICAibG9hZGxpbmtoIiwKKyAgICAgImxvYWRs
aW5raSIsCisgICAgICJsb2FkbGluazJpIiwKKyAgICAgInN0b3JlY29uZGIiLAorICAgICAic3Rv
cmVjb25kaCIsCisgICAgICJzdG9yZWNvbmRpIiwKKyAgICAgInN0b3JlY29uZDJpIiwKICAgICBd
CiAKIEFSTTY0X0lOU1RSVUNUSU9OUyA9CkBAIC00MzEsNiArNDQ1LDcgQEAgQVJNNjRfSU5TVFJV
Q1RJT05TID0KIFJJU0NfSU5TVFJVQ1RJT05TID0KICAgICBbCiAgICAgICJzbXVsbGkiLCAgIyBN
dWx0aXBseSB0d28gMzItYml0IHdvcmRzIGFuZCBwcm9kdWNlIGEgNjQtYml0IHdvcmQKKyAgICAg
InVtdWxsaSIsICAjIE11bHRpcGx5IHR3byAzMi1iaXQgd29yZHMgYW5kIHByb2R1Y2UgYSA2NC1i
aXQgd29yZAogICAgICAiYWRkaXMiLCAgICMgQWRkIGludGVnZXJzIGFuZCBzZXQgYSBmbGFnLgog
ICAgICAic3ViaXMiLCAgICMgU2FtZSwgYnV0IGZvciBzdWJ0cmFjdGlvbi4KICAgICAgIm9yaXMi
LCAgICAjIFNhbWUsIGJ1dCBmb3IgYml0d2lzZSBvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5yYgppbmRleCAwZGM0NGMyM2RmYjJiYWQzNjVhMGZlYjU3
MTAzYWQyZmQzM2ZlYWU0Li42N2Y1MjcxYTUzNzVhYzFmMTM0NGI4NjkzNzViNzgwYTg3YWNiOTk0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMu
cmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiCkBA
IC01OCw3ICs1OCw4IEBAIEdQUlMgPQogICAgICAiY3NyNyIsCiAgICAgICJjc3I4IiwKICAgICAg
ImNzcjkiLAotICAgICAiY3NyMTAiCisgICAgICJjc3IxMCIsCisgICAgICJpbnZhbGlkR1BSIgog
ICAgIF0KIAogRlBSUyA9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9yaXNjLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYgpp
bmRleCAwZjA3MmU5ZmQxMWUxNTg1YWFmM2RkOGViMDUwZmZkOTQ2MjM5ZGYyLi4zNDY0NTk2MmY3
NDMwNWYzNmQ1OGM5ZjI3ZDRlNDRlYmRiNTM0ZmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL3Jpc2MucmIKQEAgLTI1OSw4ICsyNTksMTIgQEAgZGVmIHJpc2NMb3dlck1hbGZv
cm1lZEFkZHJlc3Nlc0RvdWJsZShsaXN0KQogICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQog
ICAgICAgICAgICAgd2hlbiAibG9hZGQiCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0
cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibG9hZGQiLCBbbm9kZS5vcGVyYW5kc1swXS5y
aXNjRG91YmxlQWRkcmVzcyhuZXdMaXN0KSwgbm9kZS5vcGVyYW5kc1sxXV0sIG5vZGUuYW5ub3Rh
dGlvbikKKyAgICAgICAgICAgIHdoZW4gImxvYWRmIgorICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImxvYWRmIiwgW25vZGUub3BlcmFu
ZHNbMF0ucmlzY0RvdWJsZUFkZHJlc3MobmV3TGlzdCksIG5vZGUub3BlcmFuZHNbMV1dLCBub2Rl
LmFubm90YXRpb24pCiAgICAgICAgICAgICB3aGVuICJzdG9yZWQiCiAgICAgICAgICAgICAgICAg
bmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic3RvcmVkIiwgW25v
ZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV0ucmlzY0RvdWJsZUFkZHJlc3MobmV3TGlz
dCldLCBub2RlLmFubm90YXRpb24pCisgICAgICAgICAgICB3aGVuICJzdG9yZWYiCisgICAgICAg
ICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic3Rv
cmVmIiwgW25vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV0ucmlzY0RvdWJsZUFkZHJl
c3MobmV3TGlzdCldLCBub2RlLmFubm90YXRpb24pCiAgICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICAgbmV3TGlzdCA8PCBub2RlCiAgICAgICAgICAgICBlbmQKQEAgLTM2OSw3ICszNzMs
NyBAQCBkZWYgcmlzY0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRlcyhsaXN0LCB2YWxpZEltbWVkaWF0
ZXMsIHZhbGlkTG9naWNhbEltbWVkaWF0ZXMpCiAgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1
Y3Rpb24KICAgICAgICAgICAgIGFubm90YXRpb24gPSBub2RlLmFubm90YXRpb24KICAgICAgICAg
ICAgIGNhc2Ugbm9kZS5vcGNvZGUKLSAgICAgICAgICAgIHdoZW4gIm1vdmUiCisgICAgICAgICAg
ICB3aGVuICJtb3ZlIiwgIm1vdmVpaSIKICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUK
ICAgICAgICAgICAgIHdoZW4gImFkZGkiLCAiYWRkcCIsICJhZGRxIiwgImFkZGlzIiwgInN1Ymki
LCAic3VicCIsICJzdWJxIiwgInN1YmlzIgogICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFu
ZHNbMF0uaXNfYT8gSW1tZWRpYXRlIGFuZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDSlNWYWx1ZS5oCmluZGV4IDI5NDlkMDkyNWZjMDQ0NzRhNmRkMjgwNzc1ZTRhMzU4ZjRjMGFl
YjUuLjE1ODQyYTYwNjBhMmZkNjZiMmQ3Zjc3MzNjZDlmMTQ0ODhjM2YwZDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKQEAgLTE2Miw4ICsxNjIsOSBAQCBw
dWJsaWM6CiAgICAgZW51bSB7IE51bGxUYWcgPSAgICAgICAgIDB4ZmZmZmZmZmQgfTsKICAgICBl
bnVtIHsgVW5kZWZpbmVkVGFnID0gICAgMHhmZmZmZmZmYyB9OwogICAgIGVudW0geyBDZWxsVGFn
ID0gICAgICAgICAweGZmZmZmZmZiIH07Ci0gICAgZW51bSB7IEVtcHR5VmFsdWVUYWcgPSAgIDB4
ZmZmZmZmZmEgfTsKLSAgICBlbnVtIHsgRGVsZXRlZFZhbHVlVGFnID0gMHhmZmZmZmZmOSB9Owor
ICAgIGVudW0geyBXYXNtVGFnID0gICAgICAgICAweGZmZmZmZmZhIH07CisgICAgZW51bSB7IEVt
cHR5VmFsdWVUYWcgPSAgIDB4ZmZmZmZmZjkgfTsKKyAgICBlbnVtIHsgRGVsZXRlZFZhbHVlVGFn
ID0gMHhmZmZmZmZmOCB9OwogCiAgICAgZW51bSB7IExvd2VzdFRhZyA9ICBEZWxldGVkVmFsdWVU
YWcgfTsKIApAQCAtMTgxLDYgKzE4Miw5IEBAIHB1YmxpYzoKICAgICBlbnVtIEVuY29kZUFzQmln
SW50MzJUYWcgeyBFbmNvZGVBc0JpZ0ludDMyIH07CiAjZW5kaWYKICAgICBlbnVtIEVuY29kZUFz
RG91YmxlVGFnIHsgRW5jb2RlQXNEb3VibGUgfTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYm
IFVTRShKU1ZBTFVFMzJfNjQpCisgICAgZW51bSBFbmNvZGVBc1VuYm94ZWRGbG9hdFRhZyB7IEVu
Y29kZUFzVW5ib3hlZEZsb2F0IH07CisjZW5kaWYKIAogICAgIEpTVmFsdWUoKTsKICAgICBKU1Zh
bHVlKEpTTnVsbFRhZyk7CkBAIC0xOTIsNiArMTk2LDkgQEAgcHVibGljOgogI2lmIFVTRShCSUdJ
TlQzMikKICAgICBKU1ZhbHVlKEVuY29kZUFzQmlnSW50MzJUYWcsIGludDMyX3QpOwogI2VuZGlm
CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIEpTVmFs
dWUoRW5jb2RlQXNVbmJveGVkRmxvYXRUYWcsIGZsb2F0KTsKKyNlbmRpZgogCiAgICAgLy8gTnVt
YmVycwogICAgIEpTVmFsdWUoRW5jb2RlQXNEb3VibGVUYWcsIGRvdWJsZSk7CkBAIC01OTMsNiAr
NjAwLDEzIEBAIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc0JpZ0ludDMyKGludDMyX3QgaW50VmFs
dWUpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgVVNFKEpTVkFMVUUz
Ml82NCkKK0FMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc1VuYm94ZWRGbG9hdChmbG9hdCBmKQorewor
ICAgIHJldHVybiBKU1ZhbHVlKEpTVmFsdWU6OkVuY29kZUFzVW5ib3hlZEZsb2F0LCBmKTsKK30K
KyNlbmRpZgorCiBBTFdBWVNfSU5MSU5FIEpTVmFsdWUganNEb3VibGVOdW1iZXIoZG91YmxlIGQp
CiB7CiAgICAgQVNTRVJUKEpTVmFsdWUoSlNWYWx1ZTo6RW5jb2RlQXNEb3VibGUsIGQpLmlzTnVt
YmVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNW
YWx1ZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJ
bmxpbmVzLmgKaW5kZXggNzkyNjc2M2NkNTY1ZGViYjFhMGIxYzljZjE3ZmQzMDkyMTQ0ODY2YS4u
OWM1MmRjOTk1MmNhNjcwY2I4Mzg3YzJjZTBhMzJmZjRkMDEzYzgyOSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCkBAIC02MTksNiAr
NjE5LDEzIEBAIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEVuY29kZUFzQmlnSW50MzJUYWcsIGlu
dDMyX3QgdmFsdWUpCiB9CiAjZW5kaWYgLy8gVVNFKEJJR0lOVDMyKQogCisjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZKSAmJiBVU0UoSlNWQUxVRTMyXzY0KQoraW5saW5lIEpTVmFsdWU6OkpTVmFsdWUo
RW5jb2RlQXNVbmJveGVkRmxvYXRUYWcsIGZsb2F0IHZhbHVlKQoreworICAgIHUuYXNCaXRzLnBh
eWxvYWQgPSBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFsdWUpOworfQorI2VuZGlmCisKIGlubGlu
ZSBpbnQ2NF90IHRyeUNvbnZlcnRUb0ludDUyKGRvdWJsZSBudW1iZXIpCiB7CiAgICAgaWYgKG51
bWJlciAhPSBudW1iZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtQWlySVJHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFp
cklSR2VuZXJhdG9yLmNwcAppbmRleCAyZDcyOWFlMjVlZDMyNGE1NzJjN2VkM2RkNGYwZmI0MmJh
YTUzMmIzLi5mMTE2MTMxNmQyZTZhNDE4MjVhYTU1ZDFkOTY0NWE2YmI0MjNjYWM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAKQEAg
LTg0MCw2ICs4NDAsMTUgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuY3Rp
b24+CiAgICAgdm9pZCBmb3JFYWNoTGl2ZVZhbHVlKEZ1bmN0aW9uKTsKIAorICAgIGJvb2wgdXNl
U2lnbmFsaW5nTWVtb3J5KCkgY29uc3QKKyAgICB7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJ
R05BTElOR19NRU1PUlkpCisgICAgICAgIHJldHVybiBtX21vZGUgPT0gTWVtb3J5TW9kZTo6U2ln
bmFsaW5nOworI2Vsc2UKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisgICAgfQorCiAg
ICAgRnVuY3Rpb25QYXJzZXI8QWlySVJHZW5lcmF0b3I+KiBtX3BhcnNlciB7IG51bGxwdHIgfTsK
ICAgICBjb25zdCBNb2R1bGVJbmZvcm1hdGlvbiYgbV9pbmZvOwogICAgIGNvbnN0IE1lbW9yeU1v
ZGUgbV9tb2RlIHsgTWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcgfTsKQEAgLTk1Nyw3ICs5NjYs
NyBAQCBBaXJJUkdlbmVyYXRvcjo6QWlySVJHZW5lcmF0b3IoY29uc3QgTW9kdWxlSW5mb3JtYXRp
b24mIGluZm8sIEIzOjpQcm9jZWR1cmUmIHBybwogICAgIGlmICghQ29udGV4dDo6dXNlRmFzdFRM
UygpKQogICAgICAgICBtX2NvZGUucGluUmVnaXN0ZXIobV93YXNtQ29udGV4dEluc3RhbmNlR1BS
KTsKIAotICAgIGlmIChtb2RlICE9IE1lbW9yeU1vZGU6OlNpZ25hbGluZykgeworICAgIGlmICht
b2RlID09IE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nKSB7CiAgICAgICAgIG1fYm91bmRzQ2hl
Y2tpbmdTaXplR1BSID0gcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlcjsKICAg
ICAgICAgbV9jb2RlLnBpblJlZ2lzdGVyKG1fYm91bmRzQ2hlY2tpbmdTaXplR1BSKTsKICAgICB9
CkBAIC0xNzkyLDYgKzE4MDEsNyBAQCBpbmxpbmUgQWlySVJHZW5lcmF0b3I6OkV4cHJlc3Npb25U
eXBlIEFpcklSR2VuZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcgogICAgICAgICBi
cmVhazsKICAgICB9CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkK
ICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzogewogICAgICAgICAvLyBXZSd2ZSB2aXJ0
dWFsbHkgbWFwcGVkIDRHaUIrcmVkem9uZSBmb3IgdGhpcyBtZW1vcnkuIE9ubHkgdGhlIHVzZXIt
YWxsb2NhdGVkIHBhZ2VzIGFyZSBhZGRyZXNzYWJsZSwgY29udGlndW91c2x5IGluIHJhbmdlIFsw
LCBjdXJyZW50XSwKICAgICAgICAgLy8gYW5kIGV2ZXJ5dGhpbmcgYWJvdmUgaXMgbWFwcGVkIFBS
T1RfTk9ORS4gV2UgZG9uJ3QgbmVlZCB0byBwZXJmb3JtIGFueSBleHBsaWNpdCBib3VuZHMgY2hl
Y2sgaW4gdGhlIDRHaUIgcmFuZ2UgYmVjYXVzZSBXZWJBc3NlbWJseSByZWdpc3RlcgpAQCAtMTgx
OCw2ICsxODI4LDcgQEAgaW5saW5lIEFpcklSR2VuZXJhdG9yOjpFeHByZXNzaW9uVHlwZSBBaXJJ
UkdlbmVyYXRvcjo6ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIKICAgICAgICAgfQogICAgICAg
ICBicmVhazsKICAgICB9CisjZW5kaWYKICAgICB9CiAKICAgICBhcHBlbmQoQWRkNjQsIFRtcCht
X21lbW9yeUJhc2VHUFIpLCByZXN1bHQpOwpAQCAtMzY5Myw3ICszNzA0LDcgQEAgYXV0byBBaXJJ
UkdlbmVyYXRvcjo6YWRkQ2FsbCh1aW50MzJfdCBmdW5jdGlvbkluZGV4LCBjb25zdCBTaWduYXR1
cmUmIHNpZ25hdHVyZSwKICAgICAgICAgYXV0byogcGF0Y2hwb2ludCA9IHBhaXIuZmlyc3Q7CiAg
ICAgICAgIGF1dG8gZXhjZXB0aW9uSGFuZGxlID0gcGFpci5zZWNvbmQ7CiAgICAgICAgIC8vIFdl
IG5lZWQgdG8gY2xvYmJlciB0aGUgc2l6ZSByZWdpc3RlciBzaW5jZSB0aGUgTExJbnQgYWx3YXlz
IGJvdW5kcyBjaGVja3MKLSAgICAgICAgaWYgKG1fbW9kZSA9PSBNZW1vcnlNb2RlOjpTaWduYWxp
bmcgfHwgbV9pbmZvLm1lbW9yeS5pc1NoYXJlZCgpKQorICAgICAgICBpZiAodXNlU2lnbmFsaW5n
TWVtb3J5KCkgfHwgbV9pbmZvLm1lbW9yeS5pc1NoYXJlZCgpKQogICAgICAgICAgICAgcGF0Y2hw
b2ludC0+Y2xvYmJlckxhdGUoUmVnaXN0ZXJTZXQgeyBQaW5uZWRSZWdpc3RlckluZm86OmdldCgp
LmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyIH0pOwogICAgICAgICBwYXRjaHBvaW50LT5zZXRH
ZW5lcmF0b3IoWz0sIHRoaXNdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgQjM6OlN0YWNrbWFw
R2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7CiAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRj
aFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKaW5kZXggNTcwZGYzNmZiMjQ5YWY5M2Vl
MDllNDU1ZWRjZWQwMTA1MDM5ZmY5Yi4uYmVhNzdkZjE0ZGU2ZmNkNTczOWJhMDNhNGUxM2RiZjIy
YTU5YzBmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJH
ZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2Vu
ZXJhdG9yLmNwcApAQCAtNTIzLDYgKzUyMywxNSBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4g
c2V0KGRzdCwgZ2V0KHNyYykpOwogICAgIH0KIAorICAgIGJvb2wgdXNlU2lnbmFsaW5nTWVtb3J5
KCkgY29uc3QKKyAgICB7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkp
CisgICAgICAgIHJldHVybiBtX21vZGUgPT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nOworI2Vsc2UK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisgICAgfQorCiAgICAgRnVuY3Rpb25QYXJz
ZXI8QjNJUkdlbmVyYXRvcj4qIG1fcGFyc2VyIHsgbnVsbHB0ciB9OwogICAgIGNvbnN0IE1vZHVs
ZUluZm9ybWF0aW9uJiBtX2luZm87CiAgICAgY29uc3QgTWVtb3J5TW9kZSBtX21vZGUgeyBNZW1v
cnlNb2RlOjpCb3VuZHNDaGVja2luZyB9OwpAQCAtNjM2LDcgKzY0NSw3IEBAIEIzSVJHZW5lcmF0
b3I6OkIzSVJHZW5lcmF0b3IoY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mIGluZm8sIFByb2NlZHVy
ZSYgcHJvY2VkdXJlCiAgICAgaWYgKCFDb250ZXh0Ojp1c2VGYXN0VExTKCkpCiAgICAgICAgIG1f
cHJvYy5waW5SZWdpc3RlcihtX3dhc21Db250ZXh0SW5zdGFuY2VHUFIpOwogCi0gICAgaWYgKG1v
ZGUgIT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nKSB7CisgICAgaWYgKG1vZGUgPT0gTWVtb3J5TW9k
ZTo6Qm91bmRzQ2hlY2tpbmcpIHsKICAgICAgICAgbV9ib3VuZHNDaGVja2luZ1NpemVHUFIgPSBw
aW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyOwogICAgICAgICBtX3Byb2MucGlu
UmVnaXN0ZXIobV9ib3VuZHNDaGVja2luZ1NpemVHUFIpOwogICAgIH0KQEAgLTY0OCw5ICs2NTcs
MTEgQEAgQjNJUkdlbmVyYXRvcjo6QjNJUkdlbmVyYXRvcihjb25zdCBNb2R1bGVJbmZvcm1hdGlv
biYgaW5mbywgUHJvY2VkdXJlJiBwcm9jZWR1cmUKICAgICAgICAgICAgIGNhc2UgTWVtb3J5TW9k
ZTo6Qm91bmRzQ2hlY2tpbmc6CiAgICAgICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChwaW5uZWRH
UFIsIG1fYm91bmRzQ2hlY2tpbmdTaXplR1BSID09IHBpbm5lZEdQUik7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAg
ICAgICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzoKICAgICAgICAgICAgICAgICBBU1NF
UlRfVU5VU0VEKHBpbm5lZEdQUiwgSW52YWxpZEdQUlJlZyA9PSBwaW5uZWRHUFIpOwogICAgICAg
ICAgICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB0aGlz
LT5lbWl0RXhjZXB0aW9uQ2hlY2soaml0LCBFeGNlcHRpb25UeXBlOjpPdXRPZkJvdW5kc01lbW9y
eUFjY2Vzcyk7CiAgICAgICAgIH0pOwpAQCAtOTEyLDggKzkyMywxMiBAQCBhdXRvIEIzSVJHZW5l
cmF0b3I6OmFkZEFyZ3VtZW50cyhjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSkgLT4gUGFydGlh
bFJlc3VsdAogICAgICAgICBCMzo6VHlwZSB0eXBlID0gdG9CM1R5cGUoc2lnbmF0dXJlLmFyZ3Vt
ZW50KGkpKTsKICAgICAgICAgQjM6OlZhbHVlKiBhcmd1bWVudDsKICAgICAgICAgYXV0byByZXAg
PSB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldOwotICAgICAgICBpZiAocmVwLmlzUmVnKCkpIHsKLSAg
ICAgICAgICAgIGFyZ3VtZW50ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6QXJndW1l
bnRSZWdWYWx1ZT4obV9wcm9jLCBPcmlnaW4oKSwgcmVwLnJlZygpKTsKKyAgICAgICAgaWYgKHJl
cC5pc0dQUigpKSB7CisgICAgICAgICAgICBhcmd1bWVudCA9IG1fY3VycmVudEJsb2NrLT5hcHBl
bmROZXc8QjM6OkFyZ3VtZW50UmVnVmFsdWU+KG1fcHJvYywgT3JpZ2luKCksIHJlcC5qc3IoKS5w
YXlsb2FkR1BSKCkpOworICAgICAgICAgICAgaWYgKHR5cGUgPT0gQjM6OkludDMyIHx8IHR5cGUg
PT0gQjM6OkZsb2F0KQorICAgICAgICAgICAgICAgIGFyZ3VtZW50ID0gbV9jdXJyZW50QmxvY2st
PmFwcGVuZE5ldzxCMzo6VmFsdWU+KG1fcHJvYywgQjM6OlRydW5jLCBPcmlnaW4oKSwgYXJndW1l
bnQpOworICAgICAgICB9IGVsc2UgaWYgKHJlcC5pc0ZQUigpKSB7CisgICAgICAgICAgICBhcmd1
bWVudCA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8QjM6OkFyZ3VtZW50UmVnVmFsdWU+KG1f
cHJvYywgT3JpZ2luKCksIHJlcC5mcHIoKSk7CiAgICAgICAgICAgICBpZiAodHlwZSA9PSBCMzo6
SW50MzIgfHwgdHlwZSA9PSBCMzo6RmxvYXQpCiAgICAgICAgICAgICAgICAgYXJndW1lbnQgPSBt
X2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6VHJ1bmMsIE9y
aWdpbigpLCBhcmd1bWVudCk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0xNDQzLDYgKzE0NTgsNyBA
QCBpbmxpbmUgVmFsdWUqIEIzSVJHZW5lcmF0b3I6OmVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVy
KFZhbHVlKiBwb2ludGVyLCB1aW50MzJfdAogICAgICAgICBicmVhazsKICAgICB9CiAKKyNpZiBF
TkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBjYXNlIE1lbW9yeU1vZGU6
OlNpZ25hbGluZzogewogICAgICAgICAvLyBXZSd2ZSB2aXJ0dWFsbHkgbWFwcGVkIDRHaUIrcmVk
em9uZSBmb3IgdGhpcyBtZW1vcnkuIE9ubHkgdGhlIHVzZXItYWxsb2NhdGVkIHBhZ2VzIGFyZSBh
ZGRyZXNzYWJsZSwgY29udGlndW91c2x5IGluIHJhbmdlIFswLCBjdXJyZW50XSwKICAgICAgICAg
Ly8gYW5kIGV2ZXJ5dGhpbmcgYWJvdmUgaXMgbWFwcGVkIFBST1RfTk9ORS4gV2UgZG9uJ3QgbmVl
ZCB0byBwZXJmb3JtIGFueSBleHBsaWNpdCBib3VuZHMgY2hlY2sgaW4gdGhlIDRHaUIgcmFuZ2Ug
YmVjYXVzZSBXZWJBc3NlbWJseSByZWdpc3RlcgpAQCAtMTQ2MCw2ICsxNDc2LDcgQEAgaW5saW5l
IFZhbHVlKiBCM0lSR2VuZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihWYWx1ZSog
cG9pbnRlciwgdWludDMyX3QKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9CisjZW5k
aWYKICAgICB9CiAKICAgICBwb2ludGVyID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxWYWx1
ZT4obV9wcm9jLCBaRXh0MzIsIG9yaWdpbigpLCBwb2ludGVyKTsKQEAgLTE0OTMsNyArMTUxMCw3
IEBAIGlubGluZSB1aW50MzJfdCBzaXplT2ZMb2FkT3AoTG9hZE9wVHlwZSBvcCkKIAogaW5saW5l
IEIzOjpLaW5kIEIzSVJHZW5lcmF0b3I6Om1lbW9yeUtpbmQoQjM6Ok9wY29kZSBtZW1vcnlPcCkK
IHsKLSAgICBpZiAobV9tb2RlID09IE1lbW9yeU1vZGU6OlNpZ25hbGluZyB8fCBtX2luZm8ubWVt
b3J5LmlzU2hhcmVkKCkpCisgICAgaWYgKHVzZVNpZ25hbGluZ01lbW9yeSgpIHx8IG1faW5mby5t
ZW1vcnkuaXNTaGFyZWQoKSkKICAgICAgICAgcmV0dXJuIHRyYXBwaW5nKG1lbW9yeU9wKTsKICAg
ICByZXR1cm4gbWVtb3J5T3A7CiB9CkBAIC0yOTc3LDcgKzI5OTQsNyBAQCBhdXRvIEIzSVJHZW5l
cmF0b3I6OmFkZENhbGwodWludDMyX3QgZnVuY3Rpb25JbmRleCwgY29uc3QgU2lnbmF0dXJlJiBz
aWduYXR1cmUsCiAgICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cy5yZWFkc1Bpbm5l
ZCA9IHRydWU7CiAKICAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGNsb2JiZXIgdGhlIHNp
emUgcmVnaXN0ZXIgc2luY2UgdGhlIExMSW50IGFsd2F5cyBib3VuZHMgY2hlY2tzCi0gICAgICAg
ICAgICAgICAgaWYgKG1fbW9kZSA9PSBNZW1vcnlNb2RlOjpTaWduYWxpbmcgfHwgbV9pbmZvLm1l
bW9yeS5pc1NoYXJlZCgpKQorICAgICAgICAgICAgICAgIGlmICh1c2VTaWduYWxpbmdNZW1vcnko
KSB8fCBtX2luZm8ubWVtb3J5LmlzU2hhcmVkKCkpCiAgICAgICAgICAgICAgICAgICAgIHBhdGNo
cG9pbnQtPmNsb2JiZXJMYXRlKFJlZ2lzdGVyU2V0IHsgUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQo
KS5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlciB9KTsKICAgICAgICAgICAgICAgICBwYXRjaHBv
aW50LT5zZXRHZW5lcmF0b3IoW3RoaXMsIGhhbmRsZSwgdW5saW5rZWRXYXNtVG9XYXNtQ2FsbHMs
IGZ1bmN0aW9uSW5kZXhdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgQjM6OlN0YWNrbWFwR2Vu
ZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7CiAgICAgICAgICAgICAgICAgICAgIEFsbG93TWFjcm9T
Y3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5kaW5nLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21CaW5kaW5nLmNwcAppbmRleCBlZGM3MGJlYTA4YWYyYjgzMmMyZjE5ZWFl
YjQ0NmViMmM0NThkZjNlLi4zMjcyODk5NDlhZGQ4NDQxMzFkMGQyZDYyNmZmNTg1MzBiZDEyMWRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQmluZGluZy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwCkBAIC0yOSw2
ICsyOSw3IEBACiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCiAjaW5jbHVkZSAiQ0NhbGxIZWxw
ZXJzLmgiCisjaW5jbHVkZSAiRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlLmgiCiAj
aW5jbHVkZSAiTGlua0J1ZmZlci5oIgogI2luY2x1ZGUgIldhc21DYWxsaW5nQ29udmVudGlvbi5o
IgogI2luY2x1ZGUgIldhc21JbnN0YW5jZS5oIgpAQCAtNDEsMTggKzQyLDIxIEBAIEV4cGVjdGVk
PE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4g
d2FzbVRvV2FzbSh1bnNpCiB7CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHVuaXF1aWZ5IHRoZSBz
dHVicyBiYXNlZCBvbiBzaWduYXR1cmUgKyBpbmRleCB0byBzZWUgaWYgdGhpcyBzYXZlcyBtZW1v
cnkuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDE1
NwotCi0gICAgY29uc3QgUGlubmVkUmVnaXN0ZXJJbmZvJiBwaW5uZWRSZWdzID0gUGlubmVkUmVn
aXN0ZXJJbmZvOjpnZXQoKTsKICAgICBKSVQgaml0OwogCiAgICAgR1BSUmVnIHNjcmF0Y2ggPSB3
YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzBdOworI2lmIFVTRShK
U1ZBTFVFMzJfNjQpCisgICAgR1BSUmVnIGJhc2VNZW1vcnkgPSB3YXNtQ2FsbGluZ0NvbnZlbnRp
b24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdOworICAgIEdQUlJlZyBzaXplUmVnQXNTY3JhdGNo
ID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1syXTsKKyNlbHNl
CisgICAgY29uc3QgUGlubmVkUmVnaXN0ZXJJbmZvJiBwaW5uZWRSZWdzID0gUGlubmVkUmVnaXN0
ZXJJbmZvOjpnZXQoKTsKICAgICBHUFJSZWcgYmFzZU1lbW9yeSA9IHBpbm5lZFJlZ3MuYmFzZU1l
bW9yeVBvaW50ZXI7Ci0gICAgQVNTRVJUKGJhc2VNZW1vcnkgIT0gR1BSUmVnOjpJbnZhbGlkR1BS
UmVnKTsKLSAgICBBU1NFUlQoYmFzZU1lbW9yeSAhPSBzY3JhdGNoKTsKLSAgICBBU1NFUlQocGlu
bmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlciAhPSBiYXNlTWVtb3J5KTsKLSAgICBB
U1NFUlQocGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlciAhPSBzY3JhdGNoKTsK
ICAgICBHUFJSZWcgc2l6ZVJlZ0FzU2NyYXRjaCA9IHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdT
aXplUmVnaXN0ZXI7CisjZW5kaWYKKyAgICBBU1NFUlQoYmFzZU1lbW9yeSAhPSBHUFJSZWc6Oklu
dmFsaWRHUFJSZWcpOwogICAgIEFTU0VSVChzaXplUmVnQXNTY3JhdGNoICE9IEdQUlJlZzo6SW52
YWxpZEdQUlJlZyk7CisgICAgQVNTRVJUKHNjcmF0Y2ggIT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVn
KTsKKyAgICBBU1NFUlQobm9PdmVybGFwKHNjcmF0Y2gsIGJhc2VNZW1vcnksIHNpemVSZWdBc1Nj
cmF0Y2gpKTsKIAogICAgIC8vIEIzJ3MgY2FsbCBjb2RlZ2VuIGVuc3VyZXMgdGhhdCB0aGUgSlND
ZWxsIGlzIGEgV2ViQXNzZW1ibHlGdW5jdGlvbi4KICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5z
dGFuY2Uoc2l6ZVJlZ0FzU2NyYXRjaCk7IC8vIE9sZCBJbnN0YW5jZSoKQEAgLTY1LDYgKzY5LDcg
QEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRp
bmdGYWlsdXJlPiB3YXNtVG9XYXNtKHVuc2kKICAgICBqaXQubG9hZFB0cihKSVQ6OkFkZHJlc3Mo
c2l6ZVJlZ0FzU2NyYXRjaCwgSW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkU3RhY2tMaW1pdCgpKSwg
c2l6ZVJlZ0FzU2NyYXRjaCk7CiAgICAgaml0LnN0b3JlUHRyKHNpemVSZWdBc1NjcmF0Y2gsIEpJ
VDo6QWRkcmVzcyhiYXNlTWVtb3J5LCBJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRTdGFja0xpbWl0
KCkpKTsKIAorI2lmICFDUFUoQVJNKSAvLyBBUk0gaGFzIG5vIHBpbm5lZCByZWdpc3RlcnMgZm9y
IFdhc20gTWVtb3J5LCBzbyBubyBuZWVkIHRvIHNldCB0aGVtIHVwCiAgICAgLy8gRklYTUUgdGhl
IGZvbGxvd2luZyBjb2RlIGFzc3VtZXMgdGhhdCBhbGwgV2FzbTo6SW5zdGFuY2UgaGF2ZSB0aGUg
c2FtZSBwaW5uZWQgcmVnaXN0ZXJzLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTYyOTUyCiAgICAgLy8gU2V0IHVwIHRoZSBjYWxsZWUncyBiYXNlTWVtb3J5IHJlZ2lz
dGVyIGFzIHdlbGwgYXMgdGhlIG1lbW9yeSBzaXplIHJlZ2lzdGVycy4KICAgICB7CkBAIC03Miw2
ICs3Nyw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+
LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvV2FzbSh1bnNpCiAgICAgICAgIGppdC5sb2FkUHRyKEpJ
VDo6QWRkcmVzcyhiYXNlTWVtb3J5LCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1v
cnkoKSksIGJhc2VNZW1vcnkpOyAvLyBXYXNtOjpNZW1vcnk6OlRhZ2dlZEFycmF5U3RvcmFnZVB0
cjx2b2lkPiAodm9pZCopLgogICAgICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHlBbmRVbnRhZyhH
aWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5LCBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5n
U2l6ZVJlZ2lzdGVyLCB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJz
WzFdKTsKICAgICB9CisjZW5kaWYKIAogICAgIC8vIFRhaWwgY2FsbCBpbnRvIHRoZSBjYWxsZWUg
V2ViQXNzZW1ibHkgZnVuY3Rpb24uCiAgICAgaml0LmxvYWRQdHIoSklUOjpBZGRyZXNzKHNjcmF0
Y2gpLCBzY3JhdGNoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21DYWxsZWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5jcHAK
aW5kZXggYTMyMWM1MmYxNWVjYTUyMjEzZWNkNmVlOTIxNzI3MTk4MTFiMzI1YS4uMzIwMmY1NDgw
Y2E0MTJmMjcyOTQ5ZTE1NGIyYjIyNmVlNjkwMGNhZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUNhbGxlZS5jcHAKQEAgLTEzMSw2ICsxMzEsOCBAQCBSZWdpc3RlckF0T2Zmc2V0
TGlzdCogTExJbnRDYWxsZWU6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKQogICAgICAgICByZWdpc3Rl
cnMuc2V0KEdQUkluZm86OnJlZ0NTMik7IC8vIFBCCiAjZWxpZiBDUFUoQVJNNjQpIHx8IENQVShS
SVNDVjY0KQogICAgICAgICByZWdpc3RlcnMuc2V0KEdQUkluZm86OnJlZ0NTNyk7IC8vIFBCCisj
ZWxpZiBDUFUoQVJNKQorICAgICAgICByZWdpc3RlcnMuc2V0KEdQUkluZm86OnJlZ0NTMSk7IC8v
IFBCCiAjZWxzZQogI2Vycm9yIFVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZS4KICNlbmRpZgpAQCAt
MTU4LDYgKzE2MCw3IEBAIGNvbnN0IFdhc21JbnN0cnVjdGlvbiogTExJbnRDYWxsZWU6Om91dE9m
TGluZUp1bXBUYXJnZXQoY29uc3QgV2FzbUluc3RydWN0aW9uKiBwCiAgICAgcmV0dXJuIG1faW5z
dHJ1Y3Rpb25zLT5hdChvZmZzZXQgKyB0YXJnZXQpLnB0cigpOwogfQogCisjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZX0IzSklUKQogdm9pZCBPcHRpbWl6aW5nSklUQ2FsbGVlOjpsaW5rRXhjZXB0aW9u
SGFuZGxlcnMoVmVjdG9yPFVubGlua2VkSGFuZGxlckluZm8+IHVubGlua2VkRXhjZXB0aW9uSGFu
ZGxlcnMsIFZlY3RvcjxDb2RlTG9jYXRpb25MYWJlbDxFeGNlcHRpb25IYW5kbGVyUHRyVGFnPj4g
ZXhjZXB0aW9uSGFuZGxlckxvY2F0aW9ucykKIHsKICAgICBzaXplX3QgY291bnQgPSB1bmxpbmtl
ZEV4Y2VwdGlvbkhhbmRsZXJzLnNpemUoKTsKQEAgLTE4NCw3ICsxODcsNyBAQCBjb25zdCBTdGFj
a01hcCYgT3B0aW1pemluZ0pJVENhbGxlZTo6c3RhY2ttYXAoQ2FsbFNpdGVJbmRleCBjYWxsU2l0
ZUluZGV4KSBjb25zdAogICAgIFJFTEVBU0VfQVNTRVJUKGl0ZXIgIT0gbV9zdGFja21hcHMuZW5k
KCkpOwogICAgIHJldHVybiBpdGVyLT52YWx1ZTsKIH0KLQorI2VuZGlmCiAKIH0gfSAvLyBuYW1l
c3BhY2UgSlNDOjpXYXNtCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21DYWxsZWVHcm91cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2Fs
bGVlR3JvdXAuY3BwCmluZGV4IDFlYTQ1Y2E0YTZlOTFkMDNhOTcwZWJiNWQ1ZmQyYjJjZjlkZmNm
MGEuLjUxOWQyMDk2YWQ2MjdjYmIzYmU4ODM5ZDdlNDgyYjgxOTg4ZmJhMjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWVHcm91cC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZUdyb3VwLmNwcApAQCAtMTYwLDE3ICsx
NjAsMjEgQEAgdm9pZCBDYWxsZWVHcm91cDo6Y29tcGlsZUFzeW5jKENvbnRleHQqIGNvbnRleHQs
IEFzeW5jQ29tcGlsYXRpb25DYWxsYmFjayYmIHRhc2sKIAogYm9vbCBDYWxsZWVHcm91cDo6aXNT
YWZlVG9SdW4oTWVtb3J5TW9kZSBtZW1vcnlNb2RlKQogeworICAgIFVOVVNFRF9QQVJBTShtZW1v
cnlNb2RlKTsKKwogICAgIGlmICghcnVubmFibGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgc3dpdGNoIChtX21vZGUpIHsKICAgICBjYXNlIFdhc206Ok1lbW9yeU1vZGU6OkJvdW5k
c0NoZWNraW5nOgogICAgICAgICByZXR1cm4gdHJ1ZTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlf
U0lHTkFMSU5HX01FTU9SWSkKICAgICBjYXNlIFdhc206Ok1lbW9yeU1vZGU6OlNpZ25hbGluZzoK
ICAgICAgICAgLy8gQ29kZSBiZWluZyBpbiBTaWduYWxpbmcgbW9kZSBtZWFucyB0aGF0IGl0IHBl
cmZvcm1zIG5vIGJvdW5kcyBjaGVja3MuCiAgICAgICAgIC8vIEl0cyBtZW1vcnksIGV2ZW4gaWYg
ZW1wdHksIGFic29sdXRlbHkgbXVzdCBhbHNvIGJlIGluIFNpZ25hbGluZyBtb2RlCiAgICAgICAg
IC8vIGJlY2F1c2UgdGhlIHBhZ2UgcHJvdGVjdGlvbiBkZXRlY3RzIG91dC1vZi1ib3VuZHMgYWNj
ZXNzZXMuCiAgICAgICAgIHJldHVybiBtZW1vcnlNb2RlID09IFdhc206Ok1lbW9yeU1vZGU6OlNp
Z25hbGluZzsKKyNlbmRpZgogICAgIH0KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwCmluZGV4IDIwM2M4NDNhZThlNjNlY2RmYjQ4OWE0
YWQ2NjUzZWVmZTExZGQ0YmMuLjQ3MjYyMjBmYTcxMDRmZTVmM2FhZmY5YzFmYTQzNWUxZjFkZGRi
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29u
dmVudGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdD
b252ZW50aW9uLmNwcApAQCAtNDAsNyArNDAsNyBAQCBjb25zdCBKU0NhbGxpbmdDb252ZW50aW9u
JiBqc0NhbGxpbmdDb252ZW50aW9uKCkKICAgICAgICAgUmVnaXN0ZXJTZXQgY2FsbGVyU2F2ZVJl
Z2lzdGVycyA9IFJlZ2lzdGVyU2V0OjphbGxSZWdpc3RlcnMoKTsKICAgICAgICAgY2FsbGVyU2F2
ZVJlZ2lzdGVycy5leGNsdWRlKFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCkpOwog
Ci0gICAgICAgIHN0YXRpY0pTQ2FsbGluZ0NvbnZlbnRpb24uY29uc3RydWN0KFZlY3RvcjxSZWc+
KCksIFZlY3RvcjxSZWc+KCksIFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCksIFdU
Rk1vdmUoY2FsbGVyU2F2ZVJlZ2lzdGVycykpOworICAgICAgICBzdGF0aWNKU0NhbGxpbmdDb252
ZW50aW9uLmNvbnN0cnVjdChWZWN0b3I8SlNWYWx1ZVJlZ3M+KCksIFZlY3RvcjxGUFJSZWc+KCks
IFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCksIFdURk1vdmUoY2FsbGVyU2F2ZVJl
Z2lzdGVycykpOwogICAgIH0pOwogCiAgICAgcmV0dXJuIHN0YXRpY0pTQ2FsbGluZ0NvbnZlbnRp
b247CkBAIC01MSwzMSArNTEsNTAgQEAgY29uc3QgV2FzbUNhbGxpbmdDb252ZW50aW9uJiB3YXNt
Q2FsbGluZ0NvbnZlbnRpb24oKQogICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8V2FzbUNh
bGxpbmdDb252ZW50aW9uPiBzdGF0aWNXYXNtQ2FsbGluZ0NvbnZlbnRpb247CiAgICAgc3RhdGlj
IHN0ZDo6b25jZV9mbGFnIHN0YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbkZsYWc7CiAgICAgc3Rk
OjpjYWxsX29uY2Uoc3RhdGljV2FzbUNhbGxpbmdDb252ZW50aW9uRmxhZywgW10gKCkgewotICAg
ICAgICBWZWN0b3I8UmVnPiBncHJBcmd1bWVudFJlZ2lzdGVycyhHUFJJbmZvOjpudW1iZXJPZkFy
Z3VtZW50UmVnaXN0ZXJzKTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEdQUklu
Zm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnM7ICsraSkKLSAgICAgICAgICAgIGdwckFyZ3Vt
ZW50UmVnaXN0ZXJzW2ldID0gR1BSSW5mbzo6dG9Bcmd1bWVudFJlZ2lzdGVyKGkpOworI2lmIFVT
RShKU1ZBTFVFNjQpIC8vIE9uZSB2YWx1ZSBwZXIgR1BSCisgICAgICAgIGNvbnN0ZXhwciB1bnNp
Z25lZCBudW1iZXJPZkFyZ3VtZW50SlNScyA9IEdQUkluZm86Om51bWJlck9mQXJndW1lbnRSZWdp
c3RlcnM7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KSAvLyBPbmUgdmFsdWUgcGVyIGNvbnNlY3V0
aXZlIEdQUiBwYWlyCisgICAgICAgIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50
SlNScyA9IEdQUkluZm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgLyAyOworI2VuZGlmCisg
ICAgICAgIFZlY3RvcjxKU1ZhbHVlUmVncz4ganNyQXJndW1lbnRSZWdpc3RlcnMobnVtYmVyT2ZB
cmd1bWVudEpTUnMpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZB
cmd1bWVudEpTUnM7ICsraSkKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAganNyQXJn
dW1lbnRSZWdpc3RlcnNbaV0gPSBKU1ZhbHVlUmVncyB7IEdQUkluZm86OnRvQXJndW1lbnRSZWdp
c3RlcihpKSB9OworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIGpzckFyZ3Vt
ZW50UmVnaXN0ZXJzW2ldID0gSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjp0b0FyZ3VtZW50UmVnaXN0
ZXIoMiAqIGkgKyAxKSwgR1BSSW5mbzo6dG9Bcmd1bWVudFJlZ2lzdGVyKDIgKiBpKSB9OworI2Vu
ZGlmCiAKLSAgICAgICAgVmVjdG9yPFJlZz4gZnByQXJndW1lbnRSZWdpc3RlcnMoRlBSSW5mbzo6
bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyk7CisgICAgICAgIFZlY3RvcjxGUFJSZWc+IGZwckFy
Z3VtZW50UmVnaXN0ZXJzKEZQUkluZm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMpOwogICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgRlBSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJl
Z2lzdGVyczsgKytpKQogICAgICAgICAgICAgZnByQXJndW1lbnRSZWdpc3RlcnNbaV0gPSBGUFJJ
bmZvOjp0b0FyZ3VtZW50UmVnaXN0ZXIoaSk7CiAKICAgICAgICAgUmVnaXN0ZXJTZXQgc2NyYXRj
aCA9IFJlZ2lzdGVyU2V0OjphbGxHUFJzKCk7Ci0gICAgICAgIHNjcmF0Y2guZXhjbHVkZShSZWdp
c3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpKTsKKyAgICAgICAgc2NyYXRjaC5leGNsdWRl
KFJlZ2lzdGVyU2V0Ojp2bUNhbGxlZVNhdmVSZWdpc3RlcnMoKSk7CiAgICAgICAgIHNjcmF0Y2gu
ZXhjbHVkZShSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKCkpOwogICAgICAgICBz
Y3JhdGNoLmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6OnJlc2VydmVkSGFyZHdhcmVSZWdpc3RlcnMoKSk7
CiAgICAgICAgIHNjcmF0Y2guZXhjbHVkZShSZWdpc3RlclNldDo6c3RhY2tSZWdpc3RlcnMoKSk7
Ci0gICAgICAgIGZvciAoUmVnIHJlZyA6IGdwckFyZ3VtZW50UmVnaXN0ZXJzKQotICAgICAgICAg
ICAgc2NyYXRjaC5jbGVhcihyZWcpOworICAgICAgICBmb3IgKEpTVmFsdWVSZWdzIGpzciA6IGpz
ckFyZ3VtZW50UmVnaXN0ZXJzKSB7CisgICAgICAgICAgICBzY3JhdGNoLmNsZWFyKGpzci5wYXls
b2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICBzY3JhdGNoLmNs
ZWFyKGpzci50YWdHUFIoKSk7CisjZW5kaWYKKyAgICAgICAgfQogCiAgICAgICAgIFZlY3RvcjxH
UFJSZWc+IHNjcmF0Y2hHUFJzOwogICAgICAgICBmb3IgKFJlZyByZWcgOiBzY3JhdGNoKQogICAg
ICAgICAgICAgc2NyYXRjaEdQUnMuYXBwZW5kKHJlZy5ncHIoKSk7CisKKyAgICAgICAgLy8gTmVl
ZCBhdCBsZWFzdCBvbmUgSlNWYWx1ZSBhbmQgYW4gYWRkaXRpb25hbCBHUFIKKyNpZiBVU0UoSlNW
QUxVRTY0KQogICAgICAgICBSRUxFQVNFX0FTU0VSVChzY3JhdGNoR1BScy5zaXplKCkgPj0gMik7
CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBSRUxFQVNFX0FTU0VSVChzY3JhdGNo
R1BScy5zaXplKCkgPj0gMyk7CisjZW5kaWYKIAogICAgICAgICBSZWdpc3RlclNldCBjYWxsZXJT
YXZlUmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQ6OmFsbFJlZ2lzdGVycygpOwogICAgICAgICBjYWxs
ZXJTYXZlUmVnaXN0ZXJzLmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdpc3RlcnMo
KSk7CiAKLSAgICAgICAgc3RhdGljV2FzbUNhbGxpbmdDb252ZW50aW9uLmNvbnN0cnVjdChXVEZN
b3ZlKGdwckFyZ3VtZW50UmVnaXN0ZXJzKSwgV1RGTW92ZShmcHJBcmd1bWVudFJlZ2lzdGVycyks
IFdURk1vdmUoc2NyYXRjaEdQUnMpLCBSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygp
LCBXVEZNb3ZlKGNhbGxlclNhdmVSZWdpc3RlcnMpKTsKKyAgICAgICAgc3RhdGljV2FzbUNhbGxp
bmdDb252ZW50aW9uLmNvbnN0cnVjdChXVEZNb3ZlKGpzckFyZ3VtZW50UmVnaXN0ZXJzKSwgV1RG
TW92ZShmcHJBcmd1bWVudFJlZ2lzdGVycyksIFdURk1vdmUoc2NyYXRjaEdQUnMpLCBSZWdpc3Rl
clNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpLCBXVEZNb3ZlKGNhbGxlclNhdmVSZWdpc3RlcnMp
KTsKICAgICB9KTsKIAogICAgIHJldHVybiBzdGF0aWNXYXNtQ2FsbGluZ0NvbnZlbnRpb247CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRp
b24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5o
CmluZGV4IDU5MWVlYjI3YjAxNjkwMDdhZmExODNkNDMyNzI5ZmEwY2E1NmFkODEuLjE5Y2YwMmFh
MzMwMmU1NGI0YzQwYjFmYjhmOGVkNTU0MTcwY2IzMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oCkBAIC01Nyw4ICs1NywxMyBA
QCBzdHJ1Y3QgQ2FsbEluZm9ybWF0aW9uIHsKICAgICB7CiAgICAgICAgIFJlZ2lzdGVyU2V0IHVz
ZWRSZXN1bHRSZWdpc3RlcnM7CiAgICAgICAgIGZvciAoVmFsdWVMb2NhdGlvbiBsb2MgOiByZXN1
bHRzKSB7Ci0gICAgICAgICAgICBpZiAobG9jLmlzUmVnKCkpCi0gICAgICAgICAgICAgICAgdXNl
ZFJlc3VsdFJlZ2lzdGVycy5zZXQobG9jLnJlZygpKTsKKyAgICAgICAgICAgIGlmIChsb2MuaXNH
UFIoKSkgeworICAgICAgICAgICAgICAgIHVzZWRSZXN1bHRSZWdpc3RlcnMuc2V0KGxvYy5qc3Io
KS5wYXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAg
dXNlZFJlc3VsdFJlZ2lzdGVycy5zZXQobG9jLmpzcigpLnRhZ0dQUigpKTsKKyNlbmRpZgorICAg
ICAgICAgICAgfSBlbHNlIGlmIChsb2MuaXNGUFIoKSkKKyAgICAgICAgICAgICAgICB1c2VkUmVz
dWx0UmVnaXN0ZXJzLnNldChsb2MuZnByKCkpOwogICAgICAgICB9CiAKICAgICAgICAgUmVnaXN0
ZXJBdE9mZnNldExpc3Qgc2F2ZWRSZWdzKHVzZWRSZXN1bHRSZWdpc3RlcnMsIFJlZ2lzdGVyQXRP
ZmZzZXRMaXN0OjpaZXJvQmFzZWQpOwpAQCAtNzcsOCArODIsOCBAQCBjbGFzcyBXYXNtQ2FsbGlu
Z0NvbnZlbnRpb24gewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgaGVh
ZGVyU2l6ZUluQnl0ZXMgPSBDYWxsRnJhbWU6OmhlYWRlclNpemVJblJlZ2lzdGVycyAqIHNpemVv
ZihSZWdpc3Rlcik7CiAKLSAgICBXYXNtQ2FsbGluZ0NvbnZlbnRpb24oVmVjdG9yPFJlZz4mJiBn
cHJzLCBWZWN0b3I8UmVnPiYmIGZwcnMsIFZlY3RvcjxHUFJSZWc+JiYgc2NyYXRjaGVzLCBSZWdp
c3RlclNldCYmIGNhbGxlZVNhdmVzLCBSZWdpc3RlclNldCYmIGNhbGxlclNhdmVzKQotICAgICAg
ICA6IGdwckFyZ3MoV1RGTW92ZShncHJzKSkKKyAgICBXYXNtQ2FsbGluZ0NvbnZlbnRpb24oVmVj
dG9yPEpTVmFsdWVSZWdzPiYmIGpzcnMsIFZlY3RvcjxGUFJSZWc+JiYgZnBycywgVmVjdG9yPEdQ
UlJlZz4mJiBzY3JhdGNoZXMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVlU2F2ZXMsIFJlZ2lzdGVyU2V0
JiYgY2FsbGVyU2F2ZXMpCisgICAgICAgIDoganNyQXJncyhXVEZNb3ZlKGpzcnMpKQogICAgICAg
ICAsIGZwckFyZ3MoV1RGTW92ZShmcHJzKSkKICAgICAgICAgLCBwcm9sb2d1ZVNjcmF0Y2hHUFJz
KFdURk1vdmUoc2NyYXRjaGVzKSkKICAgICAgICAgLCBjYWxsZWVTYXZlUmVnaXN0ZXJzKFdURk1v
dmUoY2FsbGVlU2F2ZXMpKQpAQCAtODgsMTAgKzkzLDExIEBAIHB1YmxpYzoKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShXYXNtQ2FsbGluZ0NvbnZlbnRpb24pOwogCiBwcml2YXRlOgotICAgIEFy
Z3VtZW50TG9jYXRpb24gbWFyc2hhbGxMb2NhdGlvbkltcGwoQ2FsbFJvbGUgcm9sZSwgY29uc3Qg
VmVjdG9yPFJlZz4mIHJlZ0FyZ3MsIHNpemVfdCYgY291bnQsIHNpemVfdCYgc3RhY2tPZmZzZXQp
IGNvbnN0CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUmVnVHlwZT4KKyAgICBBcmd1bWVudExvY2F0
aW9uIG1hcnNoYWxsTG9jYXRpb25JbXBsKENhbGxSb2xlIHJvbGUsIGNvbnN0IFZlY3RvcjxSZWdU
eXBlPiYgcmVnQXJncywgc2l6ZV90JiBjb3VudCwgc2l6ZV90JiBzdGFja09mZnNldCkgY29uc3QK
ICAgICB7CiAgICAgICAgIGlmIChjb3VudCA8IHJlZ0FyZ3Muc2l6ZSgpKQotICAgICAgICAgICAg
cmV0dXJuIEFyZ3VtZW50TG9jYXRpb246OnJlZyhyZWdBcmdzW2NvdW50KytdKTsKKyAgICAgICAg
ICAgIHJldHVybiBBcmd1bWVudExvY2F0aW9uIHsgcmVnQXJnc1tjb3VudCsrXSB9OwogCiAgICAg
ICAgIGNvdW50Kys7CiAgICAgICAgIEFyZ3VtZW50TG9jYXRpb24gcmVzdWx0ID0gcm9sZSA9PSBD
YWxsUm9sZTo6Q2FsbGVyID8gQXJndW1lbnRMb2NhdGlvbjo6c3RhY2tBcmd1bWVudChzdGFja09m
ZnNldCkgOiBBcmd1bWVudExvY2F0aW9uOjpzdGFjayhzdGFja09mZnNldCk7CkBAIC0xMDksNyAr
MTE1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6
Ci0gICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwgZ3ByQXJncywg
Z3BBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CisgICAgICAgICAgICByZXR1cm4gbWFyc2hh
bGxMb2NhdGlvbkltcGwocm9sZSwganNyQXJncywgZ3BBcmd1bWVudENvdW50LCBzdGFja09mZnNl
dCk7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6
RjY0OgogICAgICAgICAgICAgcmV0dXJuIG1hcnNoYWxsTG9jYXRpb25JbXBsKHJvbGUsIGZwckFy
Z3MsIGZwQXJndW1lbnRDb3VudCwgc3RhY2tPZmZzZXQpOwpAQCAtMTUzLDggKzE1OSw4IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICBjb25zdCBWZWN0b3I8
UmVnPiBncHJBcmdzOwotICAgIGNvbnN0IFZlY3RvcjxSZWc+IGZwckFyZ3M7CisgICAgY29uc3Qg
VmVjdG9yPEpTVmFsdWVSZWdzPiBqc3JBcmdzOworICAgIGNvbnN0IFZlY3RvcjxGUFJSZWc+IGZw
ckFyZ3M7CiAgICAgY29uc3QgVmVjdG9yPEdQUlJlZz4gcHJvbG9ndWVTY3JhdGNoR1BSczsKICAg
ICBjb25zdCBSZWdpc3RlclNldCBjYWxsZWVTYXZlUmVnaXN0ZXJzOwogICAgIGNvbnN0IFJlZ2lz
dGVyU2V0IGNhbGxlclNhdmVSZWdpc3RlcnM7CkBAIC0xNjksOCArMTc1LDggQEAgcHVibGljOgog
ICAgIC8vIFdhc206OkNvbnRleHQqJ3MgaW5zdGFuY2UuCiAgICAgc3RhdGljIGNvbnN0ZXhwciBw
dHJkaWZmX3QgaW5zdGFuY2VTdGFja09mZnNldCA9IENhbGxGcmFtZVNsb3Q6OnRoaXNBcmd1bWVu
dCAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7CiAKLSAgICBKU0NhbGxpbmdDb252ZW50aW9uKFZl
Y3RvcjxSZWc+JiYgZ3BycywgVmVjdG9yPFJlZz4mJiBmcHJzLCBSZWdpc3RlclNldCYmIGNhbGxl
ZVNhdmVzLCBSZWdpc3RlclNldCYmIGNhbGxlclNhdmVzKQotICAgICAgICA6IGdwckFyZ3MoV1RG
TW92ZShncHJzKSkKKyAgICBKU0NhbGxpbmdDb252ZW50aW9uKFZlY3RvcjxKU1ZhbHVlUmVncz4m
JiBncHJzLCBWZWN0b3I8RlBSUmVnPiYmIGZwcnMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVlU2F2ZXMs
IFJlZ2lzdGVyU2V0JiYgY2FsbGVyU2F2ZXMpCisgICAgICAgIDoganNyQXJncyhXVEZNb3ZlKGdw
cnMpKQogICAgICAgICAsIGZwckFyZ3MoV1RGTW92ZShmcHJzKSkKICAgICAgICAgLCBjYWxsZWVT
YXZlUmVnaXN0ZXJzKFdURk1vdmUoY2FsbGVlU2F2ZXMpKQogICAgICAgICAsIGNhbGxlclNhdmVS
ZWdpc3RlcnMoV1RGTW92ZShjYWxsZXJTYXZlcykpCkBAIC0xNzgsMTAgKzE4NCwxMSBAQCBwdWJs
aWM6CiAKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShKU0NhbGxpbmdDb252ZW50aW9uKTsKIHBy
aXZhdGU6Ci0gICAgQXJndW1lbnRMb2NhdGlvbiBtYXJzaGFsbExvY2F0aW9uSW1wbChDYWxsUm9s
ZSByb2xlLCBjb25zdCBWZWN0b3I8UmVnPiYgcmVnQXJncywgc2l6ZV90JiBjb3VudCwgc2l6ZV90
JiBzdGFja09mZnNldCkgY29uc3QKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgUmVnVHlwZT4KKyAg
ICBBcmd1bWVudExvY2F0aW9uIG1hcnNoYWxsTG9jYXRpb25JbXBsKENhbGxSb2xlIHJvbGUsIGNv
bnN0IFZlY3RvcjxSZWdUeXBlPiYgcmVnQXJncywgc2l6ZV90JiBjb3VudCwgc2l6ZV90JiBzdGFj
a09mZnNldCkgY29uc3QKICAgICB7CiAgICAgICAgIGlmIChjb3VudCA8IHJlZ0FyZ3Muc2l6ZSgp
KQotICAgICAgICAgICAgcmV0dXJuIEFyZ3VtZW50TG9jYXRpb246OnJlZyhyZWdBcmdzW2NvdW50
KytdKTsKKyAgICAgICAgICAgIHJldHVybiBBcmd1bWVudExvY2F0aW9uIHsgcmVnQXJnc1tjb3Vu
dCsrXSB9OwogCiAgICAgICAgIGNvdW50Kys7CiAgICAgICAgIEFyZ3VtZW50TG9jYXRpb24gcmVz
dWx0ID0gcm9sZSA9PSBDYWxsUm9sZTo6Q2FsbGVyID8gQXJndW1lbnRMb2NhdGlvbjo6c3RhY2tB
cmd1bWVudChzdGFja09mZnNldCkgOiBBcmd1bWVudExvY2F0aW9uOjpzdGFjayhzdGFja09mZnNl
dCk7CkBAIC0xOTksNyArMjA2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBUeXBlS2luZDo6
RXh0ZXJucmVmOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CiAgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OlJlZk51bGw6Ci0gICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwo
cm9sZSwgZ3ByQXJncywgZ3BBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CisgICAgICAgICAg
ICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwganNyQXJncywgZ3BBcmd1bWVudENv
dW50LCBzdGFja09mZnNldCk7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKICAgICAgICAg
Y2FzZSBUeXBlS2luZDo6RjY0OgogICAgICAgICAgICAgcmV0dXJuIG1hcnNoYWxsTG9jYXRpb25J
bXBsKHJvbGUsIGZwckFyZ3MsIGZwQXJndW1lbnRDb3VudCwgc3RhY2tPZmZzZXQpOwpAQCAtMjIy
LDEyICsyMjksMTIgQEAgcHVibGljOgogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNp
Z25hdHVyZS5hcmd1bWVudENvdW50KCk7ICsraSkKICAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQo
bWFyc2hhbGxMb2NhdGlvbihyb2xlLCBzaWduYXR1cmUuYXJndW1lbnQoaSksIGdwQXJndW1lbnRD
b3VudCwgZnBBcmd1bWVudENvdW50LCBzdGFja09mZnNldCkpOwogCi0gICAgICAgIFZlY3RvcjxB
cmd1bWVudExvY2F0aW9uLCAxPiByZXN1bHRzIHsgQXJndW1lbnRMb2NhdGlvbjo6cmVnKEdQUklu
Zm86OnJldHVyblZhbHVlR1BSKSB9OworICAgICAgICBWZWN0b3I8QXJndW1lbnRMb2NhdGlvbiwg
MT4gcmVzdWx0cyB7IEFyZ3VtZW50TG9jYXRpb24geyBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiB9
IH07CiAgICAgICAgIHJldHVybiBDYWxsSW5mb3JtYXRpb24oV1RGTW92ZShwYXJhbXMpLCBXVEZN
b3ZlKHJlc3VsdHMpLCBzdGFja09mZnNldCk7CiAgICAgfQogCi0gICAgY29uc3QgVmVjdG9yPFJl
Zz4gZ3ByQXJnczsKLSAgICBjb25zdCBWZWN0b3I8UmVnPiBmcHJBcmdzOworICAgIGNvbnN0IFZl
Y3RvcjxKU1ZhbHVlUmVncz4ganNyQXJnczsKKyAgICBjb25zdCBWZWN0b3I8RlBSUmVnPiBmcHJB
cmdzOwogICAgIGNvbnN0IFJlZ2lzdGVyU2V0IGNhbGxlZVNhdmVSZWdpc3RlcnM7CiAgICAgY29u
c3QgUmVnaXN0ZXJTZXQgY2FsbGVyU2F2ZVJlZ2lzdGVyczsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtRm9ybWF0LmgKaW5kZXggOTcwNjNhYWI5ZTZiN2Y1NjBmZTI4ZDU0MjA2MGM1
MmI4ODQ2ZTVkOS4uY2RlOWEzY2E1NjliZDg4NjAzY2E5ZmY3Mzg2OTM4NThiNTBjZTcyZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaApAQCAtNDQ0LDcgKzQ0NCw5IEBA
IHN0cnVjdCBFbnRyeXBvaW50IHsKIHN0cnVjdCBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICBXVEZf
TUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CiAgICAgVmVjdG9yPENvZGVMb2NhdGlvbkRhdGFM
YWJlbFB0cjxXYXNtRW50cnlQdHJUYWc+PiBjYWxsZWVNb3ZlTG9jYXRpb25zOworI2lmIEVOQUJM
RShXRUJBU1NFTUJMWV9CM0pJVCkKICAgICBTdGFja01hcHMgc3RhY2ttYXBzOworI2VuZGlmCiAg
ICAgVmVjdG9yPFVubGlua2VkSGFuZGxlckluZm8+IGV4Y2VwdGlvbkhhbmRsZXJzOwogICAgIEVu
dHJ5cG9pbnQgZW50cnlwb2ludDsKICAgICB1bnNpZ25lZCBvc3JFbnRyeVNjcmF0Y2hCdWZmZXJT
aXplIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUlu
ZGV4T3JOYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFt
ZS5jcHAKaW5kZXggNDEyMGFlNmE5NDk0ZmQ0NDY5Zjk3YjhmNDA4OGQ3ZmNhYzMxOGE4OC4uZmIy
MWM5MmJmODFmNjE3OWVlM2RmNTlkOGM5MWI5NTUwMWU4YmI4MCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwCkBAIC0zMCwxNiArMzAsMjMgQEAg
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIAogSW5kZXhPck5hbWU6OkluZGV4T3JO
YW1lKEluZGV4IGluZGV4LCBzdGQ6OnBhaXI8Y29uc3QgTmFtZSosIFJlZlB0cjxOYW1lU2VjdGlv
bj4+JiYgbmFtZSkKIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgIHN0YXRpY19hc3NlcnQoc2l6
ZW9mKG1faW5kZXhOYW1lLmluZGV4KSA9PSBzaXplb2YobV9pbmRleE5hbWUubmFtZSksICJiaXQt
dGFnZ2luZyBkZXBlbmRzIG9uIHNpemVzIGJlaW5nIGVxdWFsIik7Ci0KLSAgICBpZiAoKGluZGV4
ICYgYWxsVGFncykgfHwgKGJpdHdpc2VfY2FzdDxJbmRleD4obmFtZS5maXJzdCkgJiBhbGxUYWdz
KSkKLSAgICAgICAgKnRoaXMgPSBJbmRleE9yTmFtZSgpOwotICAgIGVsc2UgewotICAgICAgICBp
ZiAobmFtZS5maXJzdCkKLSAgICAgICAgICAgIG1faW5kZXhOYW1lLm5hbWUgPSBuYW1lLmZpcnN0
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2luZGV4TmFtZS5pbmRleCA9IGluZGV4VGFn
IHwgaW5kZXg7CisgICAgQVNTRVJUKCEoaW5kZXggJiBhbGxUYWdzKSk7CisgICAgQVNTRVJUKCEo
Yml0d2lzZV9jYXN0PEluZGV4PihuYW1lLmZpcnN0KSAmIGFsbFRhZ3MpKTsKKyAgICBpZiAobmFt
ZS5maXJzdCkKKyAgICAgICAgbV9pbmRleE5hbWUubmFtZSA9IG5hbWUuZmlyc3Q7CisgICAgZWxz
ZQorICAgICAgICBtX2luZGV4TmFtZS5pbmRleCA9IGluZGV4VGFnIHwgaW5kZXg7CisjZWxpZiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgIGlmIChuYW1lLmZpcnN0KSB7CisgICAgICAgIG1faW5kZXhO
YW1lLm5hbWUgPSBuYW1lLmZpcnN0OworICAgICAgICBtX2tpbmQgPSBLaW5kOjpOYW1lOworICAg
IH0gZWxzZSB7CisgICAgICAgIG1faW5kZXhOYW1lLmluZGV4ID0gaW5kZXg7CisgICAgICAgIG1f
a2luZCA9IEtpbmQ6OkluZGV4OwogICAgIH0KKyNlbmRpZgogICAgIG1fbmFtZVNlY3Rpb24gPSBX
VEZNb3ZlKG5hbWUuc2Vjb25kKTsKIH0KIApAQCAtNDksOCArNTYsOCBAQCBTdHJpbmcgbWFrZVN0
cmluZyhjb25zdCBJbmRleE9yTmFtZSYgaW9uKQogICAgICAgICByZXR1cm4gIndhc20tc3R1YiJf
czsKICAgICBjb25zdCBTdHJpbmcgbW9kdWxlTmFtZSA9IGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1
bGVOYW1lLnNpemUoKSA/IFN0cmluZyhpb24ubmFtZVNlY3Rpb24oKS0+bW9kdWxlTmFtZS5kYXRh
KCksIGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1bGVOYW1lLnNpemUoKSkgOiBTdHJpbmcoaW9uLm5h
bWVTZWN0aW9uKCktPm1vZHVsZUhhc2guZGF0YSgpLCBpb24ubmFtZVNlY3Rpb24oKS0+bW9kdWxl
SGFzaC5zaXplKCkpOwogICAgIGlmIChpb24uaXNJbmRleCgpKQotICAgICAgICByZXR1cm4gbWFr
ZVN0cmluZyhtb2R1bGVOYW1lLCAiLndhc20tZnVuY3Rpb25bIiwgU3RyaW5nOjpudW1iZXIoaW9u
Lm1faW5kZXhOYW1lLmluZGV4ICYgfkluZGV4T3JOYW1lOjppbmRleFRhZyksICddJyk7Ci0gICAg
cmV0dXJuIG1ha2VTdHJpbmcobW9kdWxlTmFtZSwgIi53YXNtLWZ1bmN0aW9uWyIsIFN0cmluZyhp
b24ubV9pbmRleE5hbWUubmFtZS0+ZGF0YSgpLCBpb24ubV9pbmRleE5hbWUubmFtZS0+c2l6ZSgp
KSwgJ10nKTsKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcobW9kdWxlTmFtZSwgIi53YXNtLWZ1
bmN0aW9uWyIsIFN0cmluZzo6bnVtYmVyKGlvbi5pbmRleCgpKSwgJ10nKTsKKyAgICByZXR1cm4g
bWFrZVN0cmluZyhtb2R1bGVOYW1lLCAiLndhc20tZnVuY3Rpb25bIiwgU3RyaW5nKGlvbi5uYW1l
KCktPmRhdGEoKSwgaW9uLm5hbWUoKS0+c2l6ZSgpKSwgJ10nKTsKIH0KIAogfSB9IC8vIG5hbWVz
cGFjZSBKU0M6Oldhc20KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21JbmRleE9yTmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JO
YW1lLmgKaW5kZXggNWVlZWZjODhhZjc2ZDRjNGMzMzZhMTcyMDA3YTZjZmU2MWVhZWU2MS4uMmQ5
MDMwMTE4ZjhjMWQyOThhOGNiMzM5ZDliMzkwNDJkM2UxMTg3YyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmgKQEAgLTQwLDE0ICs0MCw2NyBAQCBzdHJ1
Y3QgTmFtZVNlY3Rpb247CiBzdHJ1Y3QgSW5kZXhPck5hbWUgewogICAgIHR5cGVkZWYgc2l6ZV90
IEluZGV4OwogCi0gICAgSW5kZXhPck5hbWUoKSB7IG1faW5kZXhOYW1lLmluZGV4ID0gZW1wdHlU
YWc7IH0KLSAgICBJbmRleE9yTmFtZShJbmRleCwgc3RkOjpwYWlyPGNvbnN0IE5hbWUqLCBSZWZQ
dHI8TmFtZVNlY3Rpb24+PiYmKTsKLSAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBi
aXR3aXNlX2Nhc3Q8SW5kZXg+KG1faW5kZXhOYW1lKSAmIGVtcHR5VGFnOyB9Ci0gICAgYm9vbCBp
c0luZGV4KCkgY29uc3QgeyByZXR1cm4gYml0d2lzZV9jYXN0PEluZGV4PihtX2luZGV4TmFtZSkg
JiBpbmRleFRhZzsgfQotICAgIGJvb2wgaXNOYW1lKCkgY29uc3QgeyByZXR1cm4gIShpc0VtcHR5
KCkgfHwgaXNOYW1lKCkpOyB9Ci0gICAgTmFtZVNlY3Rpb24qIG5hbWVTZWN0aW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9uYW1lU2VjdGlvbi5nZXQoKTsgfQorcHJpdmF0ZToKKyNpZiBVU0UoSlNWQUxV
RTMyXzY0KQorICAgIGVudW0gY2xhc3MgS2luZCA6IHVpbnQ4X3QgeworICAgICAgICBFbXB0eSwK
KyAgICAgICAgSW5kZXgsCisgICAgICAgIE5hbWUKKyAgICB9OworI2VuZGlmCitwdWJsaWM6CiAK
LSAgICBmcmllbmQgU3RyaW5nIG1ha2VTdHJpbmcoY29uc3QgSW5kZXhPck5hbWUmKTsKKyAgICBJ
bmRleE9yTmFtZSgpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIG1faW5kZXhO
YW1lLmluZGV4ID0gZW1wdHlUYWc7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBt
X2tpbmQgPSBLaW5kOjpFbXB0eTsKKyNlbmRpZgorICAgIH0KKworICAgIEluZGV4T3JOYW1lKElu
ZGV4LCBzdGQ6OnBhaXI8Y29uc3QgTmFtZSosIFJlZlB0cjxOYW1lU2VjdGlvbj4+JiYpOworCisg
ICAgYm9vbCBpc0VtcHR5KCkgY29uc3QKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAg
ICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxJbmRleD4obV9pbmRleE5hbWUpICYgZW1wdHlUYWc7Cisj
ZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4gbV9raW5kID09IEtpbmQ6OkVt
cHR5OworI2VuZGlmCisgICAgfQorCisgICAgYm9vbCBpc0luZGV4KCkgY29uc3QKKyAgICB7Cisj
aWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxJbmRleD4obV9p
bmRleE5hbWUpICYgaW5kZXhUYWc7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBy
ZXR1cm4gbV9raW5kID09IEtpbmQ6OkluZGV4OworI2VuZGlmCisgICAgfQorCisgICAgYm9vbCBp
c05hbWUoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuICEoaXNFbXB0eSgpIHx8IGlzSW5k
ZXgoKSk7CisgICAgfQorCisgICAgSW5kZXggaW5kZXgoKSBjb25zdAorICAgIHsKKyAgICAgICAg
QVNTRVJUKGlzSW5kZXgoKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgcmV0dXJuIG1f
aW5kZXhOYW1lLmluZGV4ICYgfmluZGV4VGFnOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAg
ICAgICAgcmV0dXJuIG1faW5kZXhOYW1lLmluZGV4OworI2VuZGlmCisgICAgfQorCisgICAgY29u
c3QgTmFtZSogbmFtZSgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNOYW1lKCkpOwor
ICAgICAgICByZXR1cm4gbV9pbmRleE5hbWUubmFtZTsKKyAgICB9CisKKyAgICBOYW1lU2VjdGlv
biogbmFtZVNlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX25hbWVTZWN0aW9uLmdldCgpOyB9CiAK
IHByaXZhdGU6CiAgICAgdW5pb24gewpAQCAtNTYsMTAgKzEwOSwxNSBAQCBwcml2YXRlOgogICAg
IH0gbV9pbmRleE5hbWU7CiAgICAgUmVmUHRyPE5hbWVTZWN0aW9uPiBtX25hbWVTZWN0aW9uOwog
CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAvLyBVc2UgdGhlIHRvcCBiaXRzIGFzIHRhZ3MuIE5l
aXRoZXIgcG9pbnRlcnMgbm9yIHRoZSBmdW5jdGlvbiBpbmRleCBzcGFjZSBzaG91bGQgdXNlIHRo
ZW0uCiAgICAgc3RhdGljIGNvbnN0ZXhwciBJbmRleCBpbmRleFRhZyA9IDF1bGwgPDwgKENIQVJf
QklUICogc2l6ZW9mKEluZGV4KSAtIDEpOwogICAgIHN0YXRpYyBjb25zdGV4cHIgSW5kZXggZW1w
dHlUYWcgPSAxdWxsIDw8IChDSEFSX0JJVCAqIHNpemVvZihJbmRleCkgLSAyKTsKICAgICBzdGF0
aWMgY29uc3RleHByIEluZGV4IGFsbFRhZ3MgPSBpbmRleFRhZyB8IGVtcHR5VGFnOworI2VsaWYg
VVNFKEpTVkFMVUUzMl82NCkKKyAgICAvLyBVc2UgYW4gZXhwbGljaXQgdGFnIGFzIHBvaW50ZXJz
IG1pZ2h0IGhhdmUgaGlnaCBiaXRzIHNldAorICAgIEtpbmQgbV9raW5kOworI2VuZGlmCiB9Owog
CiBTdHJpbmcgbWFrZVN0cmluZyhjb25zdCBJbmRleE9yTmFtZSYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaAppbmRleCA3MTBiODc2ZTIyNDVlM2ZjMWZmZWRjYmVl
ODhjNDg0MTEwNzFkNTBiLi5kYTYwZDU2NjU4MTY1MDYwZDI0Y2UwYmI4OTljNDAxMjAyODAzYjlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaApAQCAtMTA3LDcg
KzEwNyw4IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGlmIChtX21lbW9yeSAhPSBudWxscHRy
KSB7CiAgICAgICAgICAgICBtX2NhY2hlZE1lbW9yeSA9IENhZ2VkUHRyPEdpZ2FjYWdlOjpQcmlt
aXRpdmUsIHZvaWQsIHRhZ0NhZ2VkUHRyPihtZW1vcnkoKS0+bWVtb3J5KCksIG1lbW9yeSgpLT5i
b3VuZHNDaGVja2luZ1NpemUoKSk7Ci0gICAgICAgICAgICBtX2NhY2hlZEJvdW5kc0NoZWNraW5n
U2l6ZSA9IG1lbW9yeSgpLT5ib3VuZHNDaGVja2luZ1NpemUoKTsKKyAgICAgICAgICAgIC8vIFRo
aXMgaXMgdXNlZCBieSB0aGUgbm9uLXNpZ25hbGluZyBiYXNlZCBib3VuZCBjaGVja2luZywgc28g
dXNlIHRoZSBhY3R1YWwgc2l6ZSBvZiB0aGUgbWVtb3J5LgorICAgICAgICAgICAgbV9jYWNoZWRC
b3VuZHNDaGVja2luZ1NpemUgPSBtZW1vcnkoKS0+c2l6ZSgpOwogICAgICAgICAgICAgQVNTRVJU
KG1lbW9yeSgpLT5tZW1vcnkoKSA9PSBjYWNoZWRNZW1vcnkoKSk7CiAgICAgICAgIH0KICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNw
cAppbmRleCAxMzU2OTBkYTJkNjBiN2NiYzY5OWJhMjU2MzRkYjI1ZTQ3YzBkZDAxLi5iNmI0YTQ2
OGFhNjVhN2I2OWM0MjhkNmZiZDZkM2M3MzdiNTk4M2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKQEAgLTMzOCw3ICszMzgsNyBA
QCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIG1fbm9ybWFsaXplZEFyZ3VtZW50c1tpbmRl
eF07CiAKICAgICAgICAgY29uc3QgYXV0byYgY2FsbGluZ0NvbnZlbnRpb24gPSB3YXNtQ2FsbGlu
Z0NvbnZlbnRpb24oKTsKLSAgICAgICAgY29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5n
Q29udmVudGlvbi5ncHJBcmdzLnNpemUoKTsKKyAgICAgICAgY29uc3QgdWludDMyX3QgZ3ByQ291
bnQgPSBjYWxsaW5nQ29udmVudGlvbi5qc3JBcmdzLnNpemUoKTsKICAgICAgICAgY29uc3QgdWlu
dDMyX3QgZnByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5mcHJBcmdzLnNpemUoKTsKICAgICAg
ICAgcmV0dXJuIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGluZGV4IC0gbV9jb2RlQmxvY2stPm1f
bnVtQXJndW1lbnRzICsgZ3ByQ291bnQgKyBmcHJDb3VudCArIG51bWJlck9mTExJbnRDYWxsZWVT
YXZlUmVnaXN0ZXJzKTsKICAgICB9CkBAIC01OTIsNyArNTkyLDcgQEAgYXV0byBMTEludEdlbmVy
YXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVyKGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJl
KSAtPiBMTEkKICAgICBjb25zdCBhdXRvIGluaXRpYWxTdGFja1NpemUgPSBtX3N0YWNrU2l6ZTsK
IAogICAgIGNvbnN0IGF1dG8mIGNhbGxpbmdDb252ZW50aW9uID0gd2FzbUNhbGxpbmdDb252ZW50
aW9uKCk7Ci0gICAgY29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5n
cHJBcmdzLnNpemUoKTsKKyAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252
ZW50aW9uLmpzckFyZ3Muc2l6ZSgpOwogICAgIGNvbnN0IHVpbnQzMl90IGZwckNvdW50ID0gY2Fs
bGluZ0NvbnZlbnRpb24uZnByQXJncy5zaXplKCk7CiAKICAgICB1aW50MzJfdCBzdGFja0NvdW50
ID0gMDsKQEAgLTczNCw3ICs3MzQsNyBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3Jt
YXRpb25Gb3JDYWxsZWUoY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUpIC0+IFZlYwogICAgIG1f
cmVzdWx0cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHNpZ25hdHVyZS5yZXR1cm5Db3VudCgpKTsK
IAogICAgIGNvbnN0IGF1dG8mIGNhbGxpbmdDb252ZW50aW9uID0gd2FzbUNhbGxpbmdDb252ZW50
aW9uKCk7Ci0gICAgY29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5n
cHJBcmdzLnNpemUoKTsKKyAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252
ZW50aW9uLmpzckFyZ3Muc2l6ZSgpOwogICAgIGNvbnN0IHVpbnQzMl90IGZwckNvdW50ID0gY2Fs
bGluZ0NvbnZlbnRpb24uZnByQXJncy5zaXplKCk7CiAKICAgICB1aW50MzJfdCBncHJJbmRleCA9
IDA7CkBAIC03ODAsNyArNzgwLDcgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6YWRkQXJndW1lbnRz
KGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAtPiBQYXJ0aWFsUmVzdWx0CiAgICAgbV9ub3Jt
YWxpemVkQXJndW1lbnRzLnJlc2l6ZShtX2NvZGVCbG9jay0+bV9udW1Bcmd1bWVudHMpOwogCiAg
ICAgY29uc3QgYXV0byYgY2FsbGluZ0NvbnZlbnRpb24gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24o
KTsKLSAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmdwckFy
Z3Muc2l6ZSgpOworICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRp
b24uanNyQXJncy5zaXplKCk7CiAgICAgY29uc3QgdWludDMyX3QgZnByQ291bnQgPSBjYWxsaW5n
Q29udmVudGlvbi5mcHJBcmdzLnNpemUoKTsKICAgICBjb25zdCB1aW50MzJfdCBtYXhHUFJJbmRl
eCA9IGdwckNvdW50OwogICAgIGNvbnN0IHVpbnQzMl90IG1heEZQUkluZGV4ID0gZ3ByQ291bnQg
KyBmcHJDb3VudDsKQEAgLTk2MSw3ICs5NjEsNyBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjphZGRM
b29wKEJsb2NrU2lnbmF0dXJlIHNpZ25hdHVyZSwgU3RhY2smIGVuY2xvc2luZ1N0YWNrLCBDbwog
ICAgICAgICBvc3JFbnRyeURhdGEuYXBwZW5kKG1fbm9ybWFsaXplZEFyZ3VtZW50c1tpXSk7CiAK
ICAgICBjb25zdCBhdXRvJiBjYWxsaW5nQ29udmVudGlvbiA9IHdhc21DYWxsaW5nQ29udmVudGlv
bigpOwotICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZ3By
QXJncy5zaXplKCk7CisgICAgY29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVu
dGlvbi5qc3JBcmdzLnNpemUoKTsKICAgICBjb25zdCB1aW50MzJfdCBmcHJDb3VudCA9IGNhbGxp
bmdDb252ZW50aW9uLmZwckFyZ3Muc2l6ZSgpOwogICAgIGZvciAodWludDMyX3QgaSA9IGdwckNv
dW50ICsgZnByQ291bnQgKyBudW1iZXJPZkxMSW50Q2FsbGVlU2F2ZVJlZ2lzdGVyczsgaSA8IG1f
Y29kZUJsb2NrLT5tX251bVZhcnM7IGkrKykKICAgICAgICAgb3NyRW50cnlEYXRhLmFwcGVuZCh2
aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21MTEludFBsYW4uY3BwCmluZGV4IGMyNDlmOTJjZjA1YmIwYzhjMzQ0ZWE1YWI3MWIzOTZm
MWFkYjk0YzEuLjc1ZjczNmQ2YmE5ZDdmMGJhMGM0ODIxZjJkNTZjMDlmODZkZDE5OWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3BwCkBAIC0xMTksMTIg
KzExOSwxNSBAQCB2b2lkIExMSW50UGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlvbigpCiAgICAg
ICAgICAgICBlbnRyeXBvaW50c1tpXSA9IGppdC5sYWJlbCgpOwogI2lmIENQVShYODZfNjQpCiAg
ICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgY2FsbGVlU2xvdChDQ2FsbEhlbHBlcnM6
OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBDYWxsRnJhbWVTbG90OjpjYWxsZWUgKiBzdGF0aWNfY2Fz
dDxpbnQ+KHNpemVvZihSZWdpc3RlcikpIC0gc2l6ZW9mKENQVVJlZ2lzdGVyKSk7Ci0jZWxpZiBD
UFUoQVJNNjQpIHx8IENQVShSSVNDVjY0KQorI2VsaWYgQ1BVKEFSTTY0KSB8fCBDUFUoUklTQ1Y2
NCkgfHwgQ1BVKEFSTSkKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBjYWxsZWVT
bG90KENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIENhbGxGcmFtZVNsb3Q6OmNh
bGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgLSBzaXplb2YoQ2FsbGVy
RnJhbWVBbmRQQykpOwogI2Vsc2UKICNlcnJvciBVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUuCiAj
ZW5kaWYKLSAgICAgICAgICAgIGppdC5zdG9yZVB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1Q
dHIoQ2FsbGVlQml0czo6Ym94V2FzbShtX2NhbGxlZXNWZWN0b3JbaV0ucHRyKCkpKSwgY2FsbGVl
U2xvdCk7CisgICAgICAgICAgICBqaXQuc3RvcmVQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
UHRyKENhbGxlZUJpdHM6OmJveFdhc20obV9jYWxsZWVzVmVjdG9yW2ldLnB0cigpKSksIGNhbGxl
ZVNsb3Qud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkK
KyAgICAgICAgICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFs
dWU6Oldhc21UYWcpLCBjYWxsZWVTbG90LndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7CisjZW5kaWYK
ICAgICAgICAgICAgIGp1bXBzW2ldID0gaml0Lmp1bXAoKTsKICAgICAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3BwCmluZGV4IDQ0MDc1OTUyZjAwNzY5ZGIy
YjkwMTYwMGIxMDFiZjJiZGU0YjZlNWYuLmJmNWMxZWM0NjJiZDE2ZjI0ZGY1NzRlM2IzN2I0MmVm
NGZiNTFiODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1v
cnkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3BwCkBA
IC05OCwxMSArOTgsOSBAQCBjbGFzcyBNZW1vcnlNYW5hZ2VyIHsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNZW1vcnlNYW5hZ2VyKTsKIHB1
YmxpYzoKLSAgICBNZW1vcnlNYW5hZ2VyKCkKLSAgICAgICAgOiBtX21heEZhc3RNZW1vcnlDb3Vu
dChPcHRpb25zOjptYXhOdW1XZWJBc3NlbWJseUZhc3RNZW1vcmllcygpKQotICAgIHsKLSAgICB9
Ci0gICAgCisgICAgTWVtb3J5TWFuYWdlcigpID0gZGVmYXVsdDsKKworI2lmIEVOQUJMRShXRUJB
U1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIE1lbW9yeVJlc3VsdCB0cnlBbGxvY2F0ZUZh
c3RNZW1vcnkoKQogICAgIHsKICAgICAgICAgTWVtb3J5UmVzdWx0IHJlc3VsdCA9IFsmXSB7CkBA
IC0xMjUsNyArMTIzLDcgQEAgcHVibGljOgogICAgICAgICAKICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICB9Ci0gICAgCisKICAgICB2b2lkIGZyZWVGYXN0TWVtb3J5KHZvaWQqIGJhc2VQdHIp
CiAgICAgewogICAgICAgICB7CkBAIC0xMzYsNiArMTM0LDcgQEAgcHVibGljOgogICAgICAgICAK
ICAgICAgICAgZGF0YUxvZ0xuSWYoT3B0aW9uczo6bG9nV2ViQXNzZW1ibHlNZW1vcnkoKSwgIkZy
ZWVkIHZpcnR1YWw7IHN0YXRlOiAiLCAqdGhpcyk7CiAgICAgfQorI2VuZGlmCiAKICAgICBNZW1v
cnlSZXN1bHQgdHJ5QWxsb2NhdGVHcm93YWJsZUJvdW5kc0NoZWNraW5nTWVtb3J5KHNpemVfdCBt
YXBwZWRDYXBhY2l0eSkKICAgICB7CkBAIC0xNzAsMTEgKzE2OSwxMyBAQCBwdWJsaWM6CiAgICAg
ewogICAgICAgICAvLyBOT1RFOiBUaGlzIGNhbiBiZSBjYWxsZWQgZnJvbSBhIHNpZ25hbCBoYW5k
bGVyLCBidXQgb25seSBhZnRlciB3ZSBwcm92ZWQgdGhhdCB3ZSdyZSBpbiBKSVQgY29kZSBvciBX
YXNtTExJbnQgY29kZS4KICAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OworI2lmIEVO
QUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgICAgICBmb3IgKHZvaWQqIG1l
bW9yeSA6IG1fZmFzdE1lbW9yaWVzKSB7CiAgICAgICAgICAgICBjaGFyKiBzdGFydCA9IHN0YXRp
Y19jYXN0PGNoYXIqPihtZW1vcnkpOwogICAgICAgICAgICAgaWYgKHN0YXJ0IDw9IGFkZHJlc3Mg
JiYgYWRkcmVzcyA8PSBzdGFydCArIE1lbW9yeTo6ZmFzdE1hcHBlZEJ5dGVzKCkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICB1aW50cHRy
X3QgYWRkcmVzc1ZhbHVlID0gYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oYWRkcmVzcyk7CiAgICAg
ICAgIGF1dG8gaXRlcmF0b3IgPSBzdGQ6OnVwcGVyX2JvdW5kKG1fZ3Jvd2FibGVCb3VuZHNDaGVj
a2luZ01lbW9yaWVzLmJlZ2luKCksIG1fZ3Jvd2FibGVCb3VuZHNDaGVja2luZ01lbW9yaWVzLmVu
ZCgpLCBzdGQ6Om1ha2VfcGFpcihhZGRyZXNzVmFsdWUsIDApLAogICAgICAgICAgICAgW10oc3Rk
OjpwYWlyPHVpbnRwdHJfdCwgc2l6ZV90PiBhLCBzdGQ6OnBhaXI8dWludHB0cl90LCBzaXplX3Q+
IGIpIHsKQEAgLTIyNywxMyArMjI4LDE5IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIGR1bXAo
UHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICB7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJ
R05BTElOR19NRU1PUlkpCiAgICAgICAgIG91dC5wcmludCgiZmFzdCBtZW1vcmllcyA9ICAiLCBt
X2Zhc3RNZW1vcmllcy5zaXplKCksICIvIiwgbV9tYXhGYXN0TWVtb3J5Q291bnQsICIsIGJ5dGVz
ID0gIiwgbV9waHlzaWNhbEJ5dGVzLCAiLyIsIG1lbW9yeUxpbWl0KCkpOworI2Vsc2UKKyAgICAg
ICAgb3V0LnByaW50KCJmYXN0IG1lbW9yaWVzID0gTi5BLiwgYnl0ZXMgPSAiLCBtX3BoeXNpY2Fs
Qnl0ZXMsICIvIiwgbWVtb3J5TGltaXQoKSk7CisjZW5kaWYKICAgICB9CiAgICAgCiBwcml2YXRl
OgogICAgIExvY2sgbV9sb2NrOwotICAgIHVuc2lnbmVkIG1fbWF4RmFzdE1lbW9yeUNvdW50IHsg
MCB9OworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQorICAgIHVuc2ln
bmVkIG1fbWF4RmFzdE1lbW9yeUNvdW50IHsgT3B0aW9uczo6bWF4TnVtV2ViQXNzZW1ibHlGYXN0
TWVtb3JpZXMoKSB9OwogICAgIFZlY3Rvcjx2b2lkKj4gbV9mYXN0TWVtb3JpZXM7CisjZW5kaWYK
ICAgICBTdGRTZXQ8c3RkOjpwYWlyPHVpbnRwdHJfdCwgc2l6ZV90Pj4gbV9ncm93YWJsZUJvdW5k
c0NoZWNraW5nTWVtb3JpZXM7CiAgICAgc2l6ZV90IG1fcGh5c2ljYWxCeXRlcyB7IDAgfTsKIH07
CkBAIC0zMDAsNiArMzA3LDcgQEAgTWVtb3J5SGFuZGxlOjp+TWVtb3J5SGFuZGxlKCkKICAgICAg
ICAgdm9pZCogbWVtb3J5ID0gdGhpcy0+bWVtb3J5KCk7CiAgICAgICAgIG1lbW9yeU1hbmFnZXIo
KS5mcmVlUGh5c2ljYWxCeXRlcyhtX3NpemUpOwogICAgICAgICBzd2l0Y2ggKG1fbW9kZSkgewor
I2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgICAgICBjYXNlIE1l
bW9yeU1vZGU6OlNpZ25hbGluZzoKICAgICAgICAgICAgIGlmIChtcHJvdGVjdChtZW1vcnksIE1l
bW9yeTo6ZmFzdE1hcHBlZEJ5dGVzKCksIFBST1RfUkVBRCB8IFBST1RfV1JJVEUpKSB7CiAgICAg
ICAgICAgICAgICAgZGF0YUxvZygibXByb3RlY3QgZmFpbGVkOiAiLCBzYWZlU3RyZXJyb3IoZXJy
bm8pLmRhdGEoKSwgIlxuIik7CkBAIC0zMDcsNiArMzE1LDcgQEAgTWVtb3J5SGFuZGxlOjp+TWVt
b3J5SGFuZGxlKCkKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIG1lbW9yeU1hbmFnZXIoKS5m
cmVlRmFzdE1lbW9yeShtZW1vcnkpOwogICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICAg
ICAgY2FzZSBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZzogewogICAgICAgICAgICAgc3dpdGNo
IChtX3NoYXJpbmdNb2RlKSB7CiAgICAgICAgICAgICBjYXNlIE1lbW9yeVNoYXJpbmdNb2RlOjpE
ZWZhdWx0OgpAQCAtMzk1LDYgKzQwNCw3IEBAIFJlZlB0cjxNZW1vcnk+IE1lbW9yeTo6dHJ5Q3Jl
YXRlKFBhZ2VDb3VudCBpbml0aWFsLCBQYWdlQ291bnQgbWF4aW11bSwgTWVtb3J5U2hhCiAgICAg
aWYgKCFkb25lKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgCisjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgY2hhciogZmFzdE1lbW9yeSA9IG51
bGxwdHI7CiAgICAgaWYgKE9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5RmFzdE1lbW9yeSgpKSB7CiAg
ICAgICAgIHRyeUFsbG9jYXRlKApAQCAtNDEzLDcgKzQyMyw4IEBAIFJlZlB0cjxNZW1vcnk+IE1l
bW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBpbml0aWFsLCBQYWdlQ291bnQgbWF4aW11bSwgTWVt
b3J5U2hhCiAKICAgICAgICAgcmV0dXJuIE1lbW9yeTo6Y3JlYXRlKGFkb3B0UmVmKCpuZXcgTWVt
b3J5SGFuZGxlKGZhc3RNZW1vcnksIGluaXRpYWxCeXRlcywgTWVtb3J5OjpmYXN0TWFwcGVkQnl0
ZXMoKSwgaW5pdGlhbCwgbWF4aW11bSwgc2hhcmluZ01vZGUsIE1lbW9yeU1vZGU6OlNpZ25hbGlu
ZykpLCBXVEZNb3ZlKG5vdGlmeU1lbW9yeVByZXNzdXJlKSwgV1RGTW92ZShzeW5jVHJ5VG9SZWNs
YWltTWVtb3J5KSwgV1RGTW92ZShncm93U3VjY2Vzc0NhbGxiYWNrKSk7CiAgICAgfQotICAgIAor
I2VuZGlmCisKICAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6Y3Jhc2hJZldlYkFzc2VtYmx5Q2Fu
dEZhc3RNZW1vcnkoKSkpCiAgICAgICAgIHdlYkFzc2VtYmx5Q291bGRudEdldEZhc3RNZW1vcnko
KTsKIApAQCAtNDU2LDYgKzQ2Nyw3IEBAIFJlZlB0cjxNZW1vcnk+IE1lbW9yeTo6dHJ5Q3JlYXRl
KFBhZ2VDb3VudCBpbml0aWFsLCBQYWdlQ291bnQgbWF4aW11bSwgTWVtb3J5U2hhCiAKIE1lbW9y
eTo6fk1lbW9yeSgpID0gZGVmYXVsdDsKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJ
TkdfTUVNT1JZKQogc2l6ZV90IE1lbW9yeTo6ZmFzdE1hcHBlZFJlZHpvbmVCeXRlcygpCiB7CiAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PHNpemVfdD4oUGFnZUNvdW50OjpwYWdlU2l6ZSkgKiBPcHRp
b25zOjp3ZWJBc3NlbWJseUZhc3RNZW1vcnlSZWR6b25lUGFnZXMoKTsKQEAgLTQ2Niw2ICs0Nzgs
NyBAQCBzaXplX3QgTWVtb3J5OjpmYXN0TWFwcGVkQnl0ZXMoKQogICAgIHN0YXRpY19hc3NlcnQo
c2l6ZW9mKHVpbnQ2NF90KSA9PSBzaXplb2Yoc2l6ZV90KSwgIldlIHJlbHkgb24gYWxsb3dpbmcg
dGhlIG1heGltdW0gc2l6ZSBvZiBNZW1vcnkgd2UgbWFwIHRvIGJlIDJeMzIgKyByZWR6b25lIHdo
aWNoIGlzIGxhcmdlciB0aGFuIGZpdHMgaW4gYSAzMi1iaXQgaW50ZWdlciB0aGF0IHdlJ2QgcGFz
cyB0byBtcHJvdGVjdCBpZiB0aGlzIGRpZG4ndCBob2xkLiIpOwogICAgIHJldHVybiAoc3RhdGlj
X2Nhc3Q8c2l6ZV90PigxKSA8PCAzMikgKyBmYXN0TWFwcGVkUmVkem9uZUJ5dGVzKCk7CiB9Cisj
ZW5kaWYKIAogYm9vbCBNZW1vcnk6OmFkZHJlc3NJc0luR3Jvd2FibGVPckZhc3RNZW1vcnkodm9p
ZCogYWRkcmVzcykKIHsKQEAgLTUyNCw4ICs1MzcsMTQgQEAgRXhwZWN0ZWQ8UGFnZUNvdW50LCBN
ZW1vcnk6Okdyb3dGYWlsUmVhc29uPiBNZW1vcnk6Omdyb3dTaGFyZWQoUGFnZUNvdW50IGRlbHRh
KQogICAgICAgICBtX2hhbmRsZS0+Z3Jvd1RvU2l6ZShkZXNpcmVkU2l6ZSk7CiAgICAgICAgIHJl
dHVybiBvbGRQYWdlQ291bnQ7CiAgICAgfSgpKTsKLSAgICBpZiAocmVzdWx0KQorICAgIGlmIChy
ZXN1bHQpIHsKICAgICAgICAgbV9ncm93U3VjY2Vzc0NhbGxiYWNrKEdyb3dTdWNjZXNzVGFnLCBv
bGRQYWdlQ291bnQsIG5ld1BhZ2VDb3VudCk7CisgICAgICAgIC8vIFVwZGF0ZSBjYWNoZSBmb3Ig
aW5zdGFuY2UKKyAgICAgICAgZm9yIChhdXRvJiBpbnN0YW5jZSA6IG1faW5zdGFuY2VzKSB7Cisg
ICAgICAgICAgICBpZiAoaW5zdGFuY2UuZ2V0KCkgIT0gbnVsbHB0cikKKyAgICAgICAgICAgICAg
ICBpbnN0YW5jZS5nZXQoKS0+dXBkYXRlQ2FjaGVkTWVtb3J5KCk7CisgICAgICAgIH0KKyAgICB9
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtNTg4LDYgKzYwNyw3IEBAIEV4cGVjdGVkPFBh
Z2VDb3VudCwgTWVtb3J5OjpHcm93RmFpbFJlYXNvbj4gTWVtb3J5Ojpncm93KFBhZ2VDb3VudCBk
ZWx0YSkKICAgICAgICAgQVNTRVJUKG1lbW9yeSgpID09IG5ld01lbW9yeSk7CiAgICAgICAgIHJl
dHVybiBzdWNjZXNzKCk7CiAgICAgfQorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdf
TUVNT1JZKQogICAgIGNhc2UgTWVtb3J5TW9kZTo6U2lnbmFsaW5nOiB7CiAgICAgICAgIHNpemVf
dCBleHRyYUJ5dGVzID0gZGVzaXJlZFNpemUgLSBzaXplKCk7CiAgICAgICAgIFJFTEVBU0VfQVNT
RVJUKGV4dHJhQnl0ZXMpOwpAQCAtNjEzLDYgKzYzMyw3IEBAIEV4cGVjdGVkPFBhZ2VDb3VudCwg
TWVtb3J5OjpHcm93RmFpbFJlYXNvbj4gTWVtb3J5Ojpncm93KFBhZ2VDb3VudCBkZWx0YSkKICAg
ICAgICAgbV9oYW5kbGUtPmdyb3dUb1NpemUoZGVzaXJlZFNpemUpOwogICAgICAgICByZXR1cm4g
c3VjY2VzcygpOwogICAgIH0KKyNlbmRpZgogICAgIH0KIAogICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC02NDYsNyArNjY3LDggQEAgYm9vbCBNZW1vcnk6OmNvcHkodWludDMy
X3QgZHN0QWRkcmVzcywgdWludDMyX3Qgc3JjQWRkcmVzcywgdWludDMyX3QgY291bnQpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCiAgICAgdWludDhfdCogYmFzZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8
dWludDhfdCo+KG1lbW9yeSgpKTsKLSAgICBtZW1jcHkoYmFzZSArIGRzdEFkZHJlc3MsIGJhc2Ug
KyBzcmNBZGRyZXNzLCBjb3VudCk7CisgICAgLy8gU291cmNlIGFuZCBkZXN0aW5hdGlvbiBhcmVh
cyBtaWdodCBvdmVybGFwLCBzbyB1c2luZyBtZW1tb3ZlLgorICAgIG1lbW1vdmUoYmFzZSArIGRz
dEFkZHJlc3MsIGJhc2UgKyBzcmNBZGRyZXNzLCBjb3VudCk7CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaAppbmRleCBmNWM1OGZjZjk2
ZjJkODZiMDc1Y2U1NzhkNTY2OTdhZTc0YTU2MjQzLi40OWM4NTU2NjFlNDRhMmMwN2FlZGI4YWVh
ZTQzNzQ2MDBkZTE2NTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtTWVtb3J5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5o
CkBAIC0xMDYsOCArMTA2LDEwIEBAIHB1YmxpYzoKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIH5N
ZW1vcnkoKTsKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAg
IHN0YXRpYyBzaXplX3QgZmFzdE1hcHBlZFJlZHpvbmVCeXRlcygpOwogICAgIHN0YXRpYyBzaXpl
X3QgZmFzdE1hcHBlZEJ5dGVzKCk7IC8vIEluY2x1ZGVzIHJlZHpvbmUuCisjZW5kaWYKICAgICBz
dGF0aWMgYm9vbCBhZGRyZXNzSXNJbkdyb3dhYmxlT3JGYXN0TWVtb3J5KHZvaWQqKTsKIAogICAg
IHZvaWQqIG1lbW9yeSgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxlLT5tZW1vcnkoKTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9u
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5j
cHAKaW5kZXggMjY1MmRlNzJlZDU2NThiNzdjZWUyOTkxMmE1MjllZjdmMmJmYjQwZC4uNjBmYWQ2
M2VmMGUwYjc5Y2UyYzI2ZTI2Mzc5N2Q0YzQxMzMxYTM1MiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwCkBAIC00MSw4ICs0
MSwxNSBAQCBjb25zdCBQaW5uZWRSZWdpc3RlckluZm8mIFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0
KCkKICAgICAgICAgdW5zaWduZWQgbnVtYmVyT2ZQaW5uZWRSZWdpc3RlcnMgPSAyOwogICAgICAg
ICBpZiAoIUNvbnRleHQ6OnVzZUZhc3RUTFMoKSkKICAgICAgICAgICAgICsrbnVtYmVyT2ZQaW5u
ZWRSZWdpc3RlcnM7CisjaWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQogICAgICAgICBHUFJS
ZWcgYmFzZU1lbW9yeVBvaW50ZXIgPSBHUFJJbmZvOjpyZWdDUzM7CiAgICAgICAgIEdQUlJlZyBi
b3VuZHNDaGVja2luZ1NpemVSZWdpc3RlciA9IEdQUkluZm86OnJlZ0NTNDsKKyNlbGlmIENQVShB
Uk0pCisgICAgICAgIC8vIE5vdCBlbm91Z2ggcmVnaXN0ZXJzLiByZWdDUzAgaXMgdGhlIHdhc20g
aW5zdGFuY2UsIHJlZ0NTMSBpcyBMTEludCBQQgorICAgICAgICBudW1iZXJPZlBpbm5lZFJlZ2lz
dGVycyAtPSAyOworICAgICAgICBHUFJSZWcgYmFzZU1lbW9yeVBvaW50ZXIgPSBJbnZhbGlkR1BS
UmVnOworICAgICAgICBHUFJSZWcgYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIgPSBJbnZhbGlk
R1BSUmVnOworI2VuZGlmCiAgICAgICAgIEdQUlJlZyB3YXNtQ29udGV4dEluc3RhbmNlUG9pbnRl
ciA9IEludmFsaWRHUFJSZWc7CiAgICAgICAgIGlmICghQ29udGV4dDo6dXNlRmFzdFRMUygpKQog
ICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXIgPSBHUFJJbmZvOjpyZWdDUzA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3Jt
YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlv
bi5oCmluZGV4IDg1NGZiYTU0ZTMzN2YwZjAyNDhlMzM5Mzc4NDQzYjM0MWUwZjczMDkuLjI5ZmNi
ZGI2ZDQ2MzBlOTQ0ZTFmNTBiOWY4Mjg2MTY4ODVlOWQyNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5oCkBAIC01MiwxMCArNTIs
MTEgQEAgcHVibGljOgogICAgIFJlZ2lzdGVyU2V0IHRvU2F2ZShNZW1vcnlNb2RlIG1vZGUpIGNv
bnN0CiAgICAgewogICAgICAgICBSZWdpc3RlclNldCByZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC5z
ZXQoYmFzZU1lbW9yeVBvaW50ZXIpOworICAgICAgICBpZiAoYmFzZU1lbW9yeVBvaW50ZXIgIT0g
SW52YWxpZEdQUlJlZykKKyAgICAgICAgICAgIHJlc3VsdC5zZXQoYmFzZU1lbW9yeVBvaW50ZXIp
OwogICAgICAgICBpZiAod2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXIgIT0gSW52YWxpZEdQUlJl
ZykKICAgICAgICAgICAgIHJlc3VsdC5zZXQod2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXIpOwot
ICAgICAgICBpZiAobW9kZSAhPSBNZW1vcnlNb2RlOjpTaWduYWxpbmcpCisgICAgICAgIGlmICht
b2RlID09IE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nICYmIGJvdW5kc0NoZWNraW5nU2l6ZVJl
Z2lzdGVyICE9IEludmFsaWRHUFJSZWcpCiAgICAgICAgICAgICByZXN1bHQuc2V0KGJvdW5kc0No
ZWNraW5nU2l6ZVJlZ2lzdGVyKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5jcHAKaW5kZXggOWJlMDRk
NzdiMDZiOGNhNzIyN2ExYzY2YTZjNjMzOGIzNzk4OGU1Yi4uZjMzYjA1MjUxOTgzMGM0NGMwMTZj
MmJmN2ViYzhhNzJkZTdmYTg2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbU1lbW9yeU1vZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21NZW1vcnlNb2RlLmNwcApAQCAtMzcsNyArMzcsOSBAQCBjb25zdCBjaGFyKiBtYWtlU3RyaW5n
KE1lbW9yeU1vZGUgbW9kZSkKIHsKICAgICBzd2l0Y2ggKG1vZGUpIHsKICAgICBjYXNlIE1lbW9y
eU1vZGU6OkJvdW5kc0NoZWNraW5nOiByZXR1cm4gIkJvdW5kc0NoZWNraW5nIjsKKyNpZiBFTkFC
TEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBjYXNlIE1lbW9yeU1vZGU6OlNp
Z25hbGluZzogcmV0dXJuICJTaWduYWxpbmciOworI2VuZGlmCiAgICAgfQogICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuICIiOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmgKaW5kZXggMDJjZmNmZTQ5ZjQ3MTU0YjMxNTNjMDlh
YmQ4Y2NmYzdjZmMyMTA2OC4uZDcxMWFmYWYzMDMzMWY4Y2M3M2QyNjhhYzBjNGU3NTFjMGIyZmI0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5oCkBAIC0z
NCw3ICszNCw5IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAvLyBGSVhNRTog
V2Ugc2hvdWxkIHN1cHBvcnQgb3RoZXIgbW9kZXMuIHNlZTogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2MjY5MwogZW51bSBjbGFzcyBNZW1vcnlNb2RlIDogdWludDhf
dCB7CiAgICAgQm91bmRzQ2hlY2tpbmcsCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElO
R19NRU1PUlkpCiAgICAgU2lnbmFsaW5nCisjZW5kaWYKIH07CiAKIHN0YXRpYyBjb25zdGV4cHIg
c2l6ZV90IE51bWJlck9mTWVtb3J5TW9kZXMgPSAyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcAppbmRleCBiNmM1YzI3NTUzMTFiM2RlMzQwMzUz
ZTc1OTQzZDYxM2RmZjZkMmQ4Li45ZmM5MWI5ZDljNTQ4MjY5MmExZDM3YzkwMTljOGM1Y2JjMTJk
ZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3Jp
Z2luLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2lu
LmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldh
c21PcGNvZGVPcmlnaW4uaCIKIAotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyNpZiBFTkFCTEUo
V0VCQVNTRU1CTFlfQjNKSVQpCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAK
QEAgLTM3LDQgKzM3LDQgQEAgdm9pZCBPcGNvZGVPcmlnaW46OmR1bXAoUHJpbnRTdHJlYW0mIG91
dCkgY29uc3QKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KIAotI2VuZGlmIC8vIEVOQUJM
RShXRUJBU1NFTUJMWSkKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmgKaW5kZXggYTBkOGRm
M2FlZjE5YWVmNmIxNzA3OTQ3OWE2MzQ4MTI4ODBjODczNi4uNWM0YjY3NmQ1YzZlYjBmNTlhOTdk
NDliYjNkNTVhNDE3YmVjMWMyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbU9wY29kZU9yaWdpbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21PcGNvZGVPcmlnaW4uaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lm
IEVOQUJMRShXRUJBU1NFTUJMWSkKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCiAKICNp
bmNsdWRlICJCM09yaWdpbi5oIgogI2luY2x1ZGUgIldhc21Gb3JtYXQuaCIKQEAgLTYwLDQgKzYw
LDQgQEAgcHJpdmF0ZToKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KIAotI2VuZGlmIC8v
IEVOQUJMRShXRUJBU1NFTUJMWSkKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAKaW5kZXgg
YmI0NmY4YTgxMzJkMWVkNTVlMWMzNGFmNmEwMGYwZDI0OWZmMGZjMy4uNDUzNDRmNDQxYWMxMGNk
OTVhMzk3YThkZTQ1ZDE4MTJhMWZkYzg1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21PcGVyYXRpb25zLmNwcApAQCAtNDY4LDQzICs0NjgsNDMgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21VbndpbmQsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiAgICAgQVNTRVJUKCEhdm0uY2FsbEZyYW1lRm9yQ2F0Y2gpOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTY0LCBpbnQ2NF90LCAoQ2FsbEZy
YW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29udmVydFRvSTY0LCBpbnQ2NF90LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVuY29k
ZWRKU1ZhbHVlIHYpKQogewogICAgIC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5nIEpTV2ViQXNz
ZW1ibHlJbnN0YW5jZSogaW5zdGVhZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAzMjA2CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVk
Vk0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwot
ICAgIHJldHVybiB2LnRvQmlnSW50NjQoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZt
KSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh2KS50b0JpZ0ludDY0KGNhbGxGcmFtZS0+
bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ29udmVydFRvRjY0LCBkb3VibGUsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNW
YWx1ZSB2KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9GNjQs
IGRvdWJsZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSB2KSkKIHsKICAg
ICAvLyBGSVhNRTogQ29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3Rl
YWQuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIw
NgogICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAgTmF0aXZlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICByZXR1cm4gdi50b051bWJl
cihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKTsKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZGVjb2RlKHYpLnRvTnVtYmVyKGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkp
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTMyLCBp
bnQzMl90LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdikpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTMyLCBpbnQzMl90LCAoQ2FsbEZyYW1lKiBj
YWxsRnJhbWUsIEVuY29kZWRKU1ZhbHVlIHYpKQogewogICAgIC8vIEZJWE1FOiBDb25zaWRlciBw
YXNzaW5nIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGVhZC4KICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjA2CiAgICAgVk0mIHZtID0gY2FsbEZy
YW1lLT5kZXByZWNhdGVkVk0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZt
LCBjYWxsRnJhbWUpOwotICAgIHJldHVybiB2LnRvSW50MzIoY2FsbEZyYW1lLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KHZtKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh2KS50b0ludDMyKGNh
bGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjMyLCBmbG9hdCwgKENhbGxGcmFtZSogY2FsbEZy
YW1lLCBKU1ZhbHVlIHYpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZl
cnRUb0YzMiwgZmxvYXQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUgdikp
CiB7CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3RhbmNl
KiBpbnN0ZWFkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDMyMDYKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAgIE5h
dGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgcmV0dXJuIHN0
YXRpY19jYXN0PGZsb2F0Pih2LnRvTnVtYmVyKGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVj
dCh2bSkpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KEpTVmFsdWU6OmRlY29kZSh2
KS50b051bWJlcihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKSk7CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRK
U1ZhbHVlLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwgaW50NjRf
dCB2YWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvQmln
SW50LCBFbmNvZGVkSlNWYWx1ZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJbnN0YW5jZSogaW5z
dGFuY2UsIEVuY29kZWRXYXNtVmFsdWUgdmFsdWUpKQogewogICAgIEpTV2ViQXNzZW1ibHlJbnN0
YW5jZSoganNJbnN0YW5jZSA9IGluc3RhbmNlLT5vd25lcjxKU1dlYkFzc2VtYmx5SW5zdGFuY2U+
KCk7CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGpzSW5zdGFuY2UtPmdsb2Jh
bE9iamVjdCgpOwpAQCAtNTE0LDcgKzUxNCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoQ2FsbEZyYW1lKiBjCiB9
CiAKIC8vIGh0dHBzOi8vd2ViYXNzZW1ibHkuZ2l0aHViLmlvL211bHRpLXZhbHVlL2pzLWFwaS9p
bmRleC5odG1sI3J1bi1hLWhvc3QtZnVuY3Rpb24KLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25JdGVyYXRlUmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJbnN0
YW5jZSogaW5zdGFuY2UsIGNvbnN0IFNpZ25hdHVyZSogc2lnbmF0dXJlLCBKU1ZhbHVlIHJlc3Vs
dCwgdWludDY0X3QqIHJlZ2lzdGVyUmVzdWx0cywgdWludDY0X3QqIGNhbGxlZUZyYW1lUG9pbnRl
cikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZv
aWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBjb25zdCBTaWdu
YXR1cmUqIHNpZ25hdHVyZSwgRW5jb2RlZEpTVmFsdWUgZW5jUmVzdWx0LCB1aW50NjRfdCogcmVn
aXN0ZXJSZXN1bHRzLCB1aW50NjRfdCogY2FsbGVlRnJhbWVQb2ludGVyKSkKIHsKICAgICAvLyBG
SVhNRTogQ29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RlYWQuCiAg
ICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIwNgpAQCAt
NTI5LDYgKzUyOSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRl
UmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJCiAKICAgICB1bnNpZ25lZCBp
dGVyYXRpb25Db3VudCA9IDA7CiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYnVmZmVyOworICAg
IEpTVmFsdWUgcmVzdWx0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY1Jlc3VsdCk7CiAgICAgZm9yRWFj
aEluSXRlcmFibGUoZ2xvYmFsT2JqZWN0LCByZXN1bHQsIFsmXSAoVk0mLCBKU0dsb2JhbE9iamVj
dCosIEpTVmFsdWUgdmFsdWUpIC0+IHZvaWQgewogICAgICAgICBpZiAoYnVmZmVyLnNpemUoKSA8
IHNpZ25hdHVyZS0+cmV0dXJuQ291bnQoKSkKICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQodmFs
dWUpOwpAQCAtNTc4LDggKzU3OSwxMCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSQogICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogCiAgICAgICAgIGF1dG8gcmVw
ID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbaW5kZXhdOwotICAgICAgICBpZiAocmVwLmlzUmVnKCkp
Ci0gICAgICAgICAgICByZWdpc3RlclJlc3VsdHNbcmVnaXN0ZXJSZXN1bHRPZmZzZXRzLmZpbmQo
cmVwLnJlZygpKS0+b2Zmc2V0KCkgLyBzaXplb2YodWludDY0X3QpXSA9IHVuYm94ZWRWYWx1ZTsK
KyAgICAgICAgaWYgKHJlcC5pc0dQUigpKQorICAgICAgICAgICAgcmVnaXN0ZXJSZXN1bHRzW3Jl
Z2lzdGVyUmVzdWx0T2Zmc2V0cy5maW5kKHJlcC5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQo
KSAvIHNpemVvZih1aW50NjRfdCldID0gdW5ib3hlZFZhbHVlOworICAgICAgICBlbHNlIGlmIChy
ZXAuaXNGUFIoKSkKKyAgICAgICAgICAgIHJlZ2lzdGVyUmVzdWx0c1tyZWdpc3RlclJlc3VsdE9m
ZnNldHMuZmluZChyZXAuZnByKCkpLT5vZmZzZXQoKSAvIHNpemVvZih1aW50NjRfdCldID0gdW5i
b3hlZFZhbHVlOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjYWxsZWVGcmFtZVBvaW50ZXJb
cmVwLm9mZnNldEZyb21GUCgpIC8gc2l6ZW9mKHVpbnQ2NF90KV0gPSB1bmJveGVkVmFsdWU7CiAg
ICAgfQpAQCAtNjA0LDEyICs2MDcsMTYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5LCBKU0FycmF5KiwgKENhbGxGcmFtZSogY2EKICAgICBh
dXRvIHdhc21DYWxsSW5mbyA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpLmNhbGxJbmZvcm1hdGlv
bkZvcigqc2lnbmF0dXJlKTsKICAgICBSZWdpc3RlckF0T2Zmc2V0TGlzdCByZWdpc3RlclJlc3Vs
dHMgPSB3YXNtQ2FsbEluZm8uY29tcHV0ZVJlc3VsdHNPZmZzZXRMaXN0KCk7CiAKLSAgICBzdGF0
aWNfYXNzZXJ0KHNpemVvZihKU1ZhbHVlKSA9PSBzaXplb2YoQ1BVUmVnaXN0ZXIpLCAiVGhlIGNv
ZGUgYmVsb3cgcmVsaWVzIG9uIHRoaXMuIik7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHNpZ25hdHVyZS0+cmV0dXJuQ291bnQoKTsgKytpKSB7CiAgICAgICAgIFZhbHVlTG9jYXRpb24g
bG9jID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbaV07CiAgICAgICAgIEpTVmFsdWUgdmFsdWU7Ci0g
ICAgICAgIGlmIChsb2MuaXNSZWcoKSkKLSAgICAgICAgICAgIHZhbHVlID0gc3RhY2tQb2ludGVy
RnJvbUNhbGxlZVsocmVnaXN0ZXJSZXN1bHRzLmZpbmQobG9jLnJlZygpKS0+b2Zmc2V0KCkgKyB3
YXNtQ2FsbEluZm8uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSAvIHNpemVvZihK
U1ZhbHVlKV07CisgICAgICAgIGlmIChsb2MuaXNHUFIoKSkgeworI2lmIFVTRShKU1ZBTEUzMl82
NCkKKyAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlclJlc3VsdHMuZmluZChsb2MuanNyKCkucGF5
bG9hZEdQUigpKS0+b2Zmc2V0KCkgKyA0ID09IHJlZ2lzdGVyUmVzdWx0cy5maW5kKGxvYy5qc3Io
KS50YWdHUFIoKSktPm9mZnNldCgpKTsKKyNlbmRpZgorICAgICAgICAgICAgdmFsdWUgPSBzdGFj
a1BvaW50ZXJGcm9tQ2FsbGVlWyhyZWdpc3RlclJlc3VsdHMuZmluZChsb2MuanNyKCkucGF5bG9h
ZEdQUigpKS0+b2Zmc2V0KCkgKyB3YXNtQ2FsbEluZm8uaGVhZGVyQW5kQXJndW1lbnRTdGFja1Np
emVJbkJ5dGVzKSAvIHNpemVvZihKU1ZhbHVlKV07CisgICAgICAgIH0gZWxzZSBpZiAobG9jLmlz
RlBSKCkpCisgICAgICAgICAgICB2YWx1ZSA9IHN0YWNrUG9pbnRlckZyb21DYWxsZWVbKHJlZ2lz
dGVyUmVzdWx0cy5maW5kKGxvYy5mcHIoKSktPm9mZnNldCgpICsgd2FzbUNhbGxJbmZvLmhlYWRl
ckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcykgLyBzaXplb2YoSlNWYWx1ZSldOwogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICB2YWx1ZSA9IHN0YWNrUG9pbnRlckZyb21DYWxsZWVbbG9jLm9m
ZnNldEZyb21TUCgpIC8gc2l6ZW9mKEpTVmFsdWUpXTsKICAgICAgICAgcmVzdWx0LT5pbml0aWFs
aXplSW5kZXgoaW5pdGlhbGl6YXRpb25TY29wZSwgaSwgdmFsdWUpOwpAQCAtOTQ0LDcgKzk1MSw4
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGhyb3csIHZvaWQqLCAo
SW5zdGFuY2UqIGluc3RhbmNlLCBDYWxsRnJhCiAgICAgLy8gdG8gdGhlIGV4Y2VwdGlvbiBoYW5k
bGVyLiBJZiB3ZSBkaWQgdGhpcywgd2UgY291bGQgcmVtb3ZlIHRoaXMgdGVycmlibGUgaGFjay4K
ICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDQwCiAg
ICAgdm0uY2FsbGVlRm9yV2FzbUNhdGNoID0gY2FsbEZyYW1lLT5jYWxsZWUoKTsKLSAgICBiaXR3
aXNlX2Nhc3Q8dWludDY0X3QqPihjYWxsRnJhbWUpW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1l
U2xvdDo6Y2FsbGVlKV0gPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KGpzSW5zdGFuY2UtPm1vZHVs
ZSgpKTsKKyAgICBSZWdpc3RlciogY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxSZWdpc3Rlcio+
KGNhbGxGcmFtZSkgKyBzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7Cisg
ICAgKmNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8SlNDZWxsKj4oanNJbnN0YW5jZS0+bW9kdWxl
KCkpOwogICAgIHJldHVybiB2bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKIH0KIApAQCAtOTcw
LDcgKzk3OCw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtUmV0aHJv
dywgdm9pZCosIChJbnN0YW5jZSogaW5zdGFuY2UsIENhbGxGCiAgICAgLy8gdG8gdGhlIGV4Y2Vw
dGlvbiBoYW5kbGVyLiBJZiB3ZSBkaWQgdGhpcywgd2UgY291bGQgcmVtb3ZlIHRoaXMgdGVycmli
bGUgaGFjay4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcwNDQwCiAgICAgdm0uY2FsbGVlRm9yV2FzbUNhdGNoID0gY2FsbEZyYW1lLT5jYWxsZWUoKTsK
LSAgICBiaXR3aXNlX2Nhc3Q8dWludDY0X3QqPihjYWxsRnJhbWUpW3N0YXRpY19jYXN0PGludD4o
Q2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0gPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KGpzSW5zdGFu
Y2UtPm1vZHVsZSgpKTsKKyAgICBSZWdpc3RlciogY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxS
ZWdpc3Rlcio+KGNhbGxGcmFtZSkgKyBzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNh
bGxlZSk7CisgICAgKmNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8SlNDZWxsKj4oanNJbnN0YW5j
ZS0+bW9kdWxlKCkpOwogICAgIHJldHVybiB2bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKIH0K
IApAQCAtMTAwNSw3ICsxMDE0LDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bldhc21Ub0pTRXhjZXB0aW9uLCB2b2lkKiwgKENhbGxGcmFtZSogY2FsbEZyYW0KICAgICAvLyB0
byB0aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElmIHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUg
dGhpcyB0ZXJyaWJsZSBoYWNrLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzA0NDAKICAgICB2bS5jYWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUt
PmNhbGxlZSgpOwotICAgIGJpdHdpc2VfY2FzdDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGlj
X2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRf
dD4oaW5zdGFuY2UtPm1vZHVsZSgpKTsKKyAgICBSZWdpc3RlciogY2FsbGVlU2xvdCA9IGJpdHdp
c2VfY2FzdDxSZWdpc3Rlcio+KGNhbGxGcmFtZSkgKyBzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFt
ZVNsb3Q6OmNhbGxlZSk7CisgICAgKmNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8SlNDZWxsKj4o
aW5zdGFuY2UtPm1vZHVsZSgpKTsKICAgICByZXR1cm4gdm0udGFyZ2V0TWFjaGluZVBDRm9yVGhy
b3c7CiB9CiAKQEAgLTEwMjksNyArMTAzOSwxMSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uV2FzbVJldHJpZXZlQW5kQ2xlYXJFeGNlcHRpb25JZkNhdGNoYWJsZSwgUG9pbgog
ICAgIHZvaWQqIHBheWxvYWQgPSBudWxscHRyOwogICAgIGlmIChKU1dlYkFzc2VtYmx5RXhjZXB0
aW9uKiB3YXNtRXhjZXB0aW9uID0ganNEeW5hbWljQ2FzdDxKU1dlYkFzc2VtYmx5RXhjZXB0aW9u
Kj4odm0sIHRocm93blZhbHVlKSkKICAgICAgICAgcGF5bG9hZCA9IGJpdHdpc2VfY2FzdDx2b2lk
Kj4od2FzbUV4Y2VwdGlvbi0+cGF5bG9hZCgpLmRhdGEoKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkK
ICAgICByZXR1cm4gUG9pbnRlclBhaXIgeyBiaXR3aXNlX2Nhc3Q8dm9pZCo+KEpTVmFsdWU6OmVu
Y29kZSh0aHJvd25WYWx1ZSkpLCBwYXlsb2FkIH07CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQor
ICAgIHJldHVybiBQb2ludGVyUGFpciB7IGJpdHdpc2VfY2FzdDx2b2lkKj4odGhyb3duVmFsdWUu
cGF5bG9hZCgpKSwgcGF5bG9hZCB9OworI2VuZGlmCiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlND
OjpXYXNtCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0
aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaAppbmRl
eCBjZjdjMGQ1ZmVmNGRmZDM1YzdjY2EzMzQ3OTNlYjI0NGVjYmFkZDE1Li5iMzIwMDBkODMyY2Jl
MGE2NmM1NTUxZjQ1M2QyZjA1NjNlOTNkY2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21PcGVyYXRpb25zLmgKQEAgLTQ2LDIzICs0NiwyMyBAQCBuYW1lc3BhY2UgV2FzbSB7
CiAKIGNsYXNzIEluc3RhbmNlOwogY2xhc3MgU2lnbmF0dXJlOwotCi12b2lkIGxvYWRWYWx1ZXNJ
bnRvQnVmZmVyKFByb2JlOjpDb250ZXh0JiwgY29uc3QgU3RhY2tNYXAmLCB1aW50NjRfdCogYnVm
ZmVyKTsKK3R5cGVkZWYgaW50NjRfdCBFbmNvZGVkV2FzbVZhbHVlOwogCiAjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZX0IzSklUKQordm9pZCBsb2FkVmFsdWVzSW50b0J1ZmZlcihQcm9iZTo6Q29udGV4
dCYsIGNvbnN0IFN0YWNrTWFwJiwgdWludDY0X3QqIGJ1ZmZlcik7CiBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2VyT1NSRW50cnlOb3csIHZvaWQsIChQcm9iZTo6
Q29udGV4dCYpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdn
ZXJUaWVyVXBOb3csIHZvaWQsIChJbnN0YW5jZSosIHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgpKTsK
ICNlbmRpZgogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVW53aW5kLCB2
b2lkLCAoQ2FsbEZyYW1lKikpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbnZlcnRUb0k2NCwgaW50NjRfdCwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKLUpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjY0LCBkb3VibGUsIChDYWxsRnJh
bWUqLCBKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZl
cnRUb0kzMiwgaW50MzJfdCwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjMyLCBmbG9hdCwgKENhbGxGcmFtZSosIEpT
VmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTY0
LCBpbnQ2NF90LCAoQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjY0LCBkb3VibGUsIChDYWxsRnJhbWUqLCBF
bmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252
ZXJ0VG9JMzIsIGludDMyX3QsIChDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9GMzIsIGZsb2F0LCAoQ2FsbEZy
YW1lKiwgRW5jb2RlZEpTVmFsdWUpKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoQ2FsbEZyYW1lKiwgSW5zdGFu
Y2UqLCBpbnQ2NF90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZl
cnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqLCBJbnN0YW5jZSosIEVuY29k
ZWRXYXNtVmFsdWUpKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVy
YXRlUmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSosIEluc3RhbmNlKiwgY29uc3QgU2lnbmF0dXJl
KiwgSlNWYWx1ZSwgdWludDY0X3QqLCB1aW50NjRfdCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqLCBJbnN0YW5j
ZSosIGNvbnN0IFNpZ25hdHVyZSosIEVuY29kZWRKU1ZhbHVlLCB1aW50NjRfdCosIHVpbnQ2NF90
KikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNB
cnJheSwgSlNBcnJheSosIChDYWxsRnJhbWUqLCBXYXNtOjpJbnN0YW5jZSosIGNvbnN0IFNpZ25h
dHVyZSosIEluZGV4aW5nVHlwZSwgSlNWYWx1ZSopKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25XYXNtV3JpdGVCYXJyaWVyU2xvd1BhdGgsIHZvaWQsIChKU0NlbGwqLCBW
TSopKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYWdlQ291
bnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYWdlQ291bnQuaAppbmRleCBi
N2Q4YzlmY2Y3MmIxNDc5YzNhM2YxMjNiZmEyYjRkMmQyNDdjY2UyLi4zYzc1NTEyZjQ0YTlhODk0
YjFkMTY2YWM0NzY2NzAwM2Q0ODI3NDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtUGFnZUNvdW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbVBhZ2VDb3VudC5oCkBAIC05OCw3ICs5OCwxMiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
Y29uc3RleHByIHVpbnQzMl90IHBhZ2VTaXplID0gNjQgKiBLQjsKIHByaXZhdGU6Ci0gICAgc3Rh
dGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXhQYWdlQ291bnQgPSBzdGF0aWNfY2FzdDx1aW50MzJf
dD4oTUFYX0FSUkFZX0JVRkZFUl9TSVpFIC8gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHBhZ2VTaXpl
KSk7CisgICAgLy8gVGhlIHNwZWMgcmVxdWlyZXMgd2UgYXJlIGFibGUgdG8gaW5zdGFudGlhdGUg
YSBtZW1vcnkgd2l0aCBhICptYXhpbXVtKiBzaXplIG9mIDY0SyBwYWdlcy4KKyAgICAvLyBUaGlz
IGRvZXMgbm90IG1lYW4gdGhlIG1lbW9yeSBjYW4gbmVjZXNzYXJpbHkgZ3JvdyB0aGF0IGJpZywg
YW5kIHdoZXJlIHRoZQorICAgIC8vIE1BWF9BUlJBWV9CVUZGRVJfU0laRSBpcyBzbWFsbGVyIChl
LmcuOiBvbiAzMi1iaXQgcGxhdGZvcm1zKSwgdHJ5aW5nIHRvIGdyb3cgdGhlIG1lbW9yeQorICAg
IC8vIHRoYXQgbGFyZ2Ugd2lsbCBmYWlsLCB3aGljaCBpcyBhY2NlcHRhYmxlIGFjY29yZGluZyB0
byB0aGUgc3BlYy4gTmV2ZXJ0aGVsZXNzLCB3ZSBzaG91bGQKKyAgICAvLyBiZSBhYmxlIHRvIHBh
cnNlIHN1Y2ggYSBtZW1vcnkgYW5kIGluc3RhbnRpYXRlIGl0IHdpdGggYSBzbWFsbGVyIGluaXRp
YWwgc2l6ZS4KKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG1heFBhZ2VDb3VudCA9IHN0
ZDo6bWF4PHVpbnQzMl90Pig2NCoxMDI0LCBNQVhfQVJSQVlfQlVGRkVSX1NJWkUgLyBzdGF0aWNf
Y2FzdDx1aW50NjRfdD4ocGFnZVNpemUpKTsKIAogICAgIHVpbnQzMl90IG1fcGFnZUNvdW50Owog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaAppbmRleCBlZDAwZDlhMGE0
MmI3OWFkYzFmM2M4YWIwZjM0NmZjNGY2ZGE4OWFlLi5kNDQxYmNhZDk0YzlkZTk5YzBjYTVlYjM5
YTFhYmZjZTU2MmNkZmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5o
CkBAIC0yMDgsNyArMjA4LDcgQEAgQUxXQVlTX0lOTElORSBib29sIFBhcnNlcjxTdWNjZXNzVHlw
ZT46OnBhcnNlVUludDMyKHVpbnQzMl90JiByZXN1bHQpCiB7CiAgICAgaWYgKGxlbmd0aCgpIDwg
NCB8fCBtX29mZnNldCA+IGxlbmd0aCgpIC0gNCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IHJlc3VsdCA9ICpyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oc291cmNlKCkgKyBt
X29mZnNldCk7CisgICAgbWVtY3B5KCZyZXN1bHQsIHNvdXJjZSgpICsgbV9vZmZzZXQsIHNpemVv
Zih1aW50MzJfdCkpOyAvLyBzcmMgY2FuIGJlIHVuYWxpZ25lZAogICAgIG1fb2Zmc2V0ICs9IDQ7
CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0yMTgsNyArMjE4LDcgQEAgQUxXQVlTX0lOTElORSBi
b29sIFBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVUludDY0KHVpbnQ2NF90JiByZXN1bHQpCiB7
CiAgICAgaWYgKGxlbmd0aCgpIDwgOCB8fCBtX29mZnNldCA+IGxlbmd0aCgpIC0gOCkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIHJlc3VsdCA9ICpyZWludGVycHJldF9jYXN0PGNvbnN0IHVp
bnQ2NF90Kj4oc291cmNlKCkgKyBtX29mZnNldCk7CisgICAgbWVtY3B5KCZyZXN1bHQsIHNvdXJj
ZSgpICsgbV9vZmZzZXQsIHNpemVvZih1aW50NjRfdCkpOyAvLyBzcmMgY2FuIGJlIHVuYWxpZ25l
ZAogICAgIG1fb2Zmc2V0ICs9IDg7CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3BwCmluZGV4IDJhODY3ZDZjNzNmZGVmM2U5
MTg3MDZhM2YwNzJjMGQ1ODI5OTNjZDcuLmFiNWE5OTc1MWQzODEyNzA3MDY1NDk4NWE5ZTAzNjVm
YjQ5YWExMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93
UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMu
Y3BwCkBAIC02NDIsNyArNjQyLDggQEAgV0FTTV9TTE9XX1BBVEhfREVDTCh0aHJvdykKICAgICAv
LyB0byB0aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElmIHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1v
dmUgdGhpcyB0ZXJyaWJsZSBoYWNrLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzA0NDAKICAgICB2bS5jYWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJh
bWUtPmNhbGxlZSgpOwotICAgIGJpdHdpc2VfY2FzdDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3Rh
dGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50
NjRfdD4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOworICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0g
Yml0d2lzZV9jYXN0PFJlZ2lzdGVyKj4oY2FsbEZyYW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2Fs
bEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAgICAqY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0Nl
bGwqPihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CiAgICAgV0FTTV9SRVRVUk5fVFdPKHZtLnRhcmdl
dE1hY2hpbmVQQ0ZvclRocm93LCBudWxscHRyKTsKIH0KIApAQCAtNjcwLDcgKzY3MSw4IEBAIFdB
U01fU0xPV19QQVRIX0RFQ0wocmV0aHJvdykKICAgICAvLyB0byB0aGUgZXhjZXB0aW9uIGhhbmRs
ZXIuIElmIHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNrLgog
ICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAKICAg
ICB2bS5jYWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgpOwotICAgIGJpdHdp
c2VfY2FzdDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVT
bG90OjpjYWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oanNJbnN0YW5jZS0+bW9kdWxl
KCkpOworICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJlZ2lzdGVyKj4o
Y2FsbEZyYW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAg
ICAqY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihqc0luc3RhbmNlLT5tb2R1bGUo
KSk7CiAgICAgV0FTTV9SRVRVUk5fVFdPKHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRocm93LCBudWxs
cHRyKTsKIH0KIApAQCAtNzE3LDYgKzcxOSwyMTQgQEAgV0FTTV9TTE9XX1BBVEhfREVDTChyZXRy
aWV2ZV9hbmRfY2xlYXJfZXhjZXB0aW9uKQogICAgIFdBU01fUkVUVVJOX1RXTyhwYywgcGF5bG9h
ZCk7CiB9CiAKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorV0FTTV9TTE9XX1BBVEhfREVDTChmMzJf
Y2VpbCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rp
b24gPSBwYy0+YXM8V2FzbUYzMkNlaWw+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5z
dHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1Zh
bHVlOjplbmNvZGUoanNVbmJveGVkRmxvYXQoc3RkOjpjZWlsKG9wZXJhbmQpKSkpOworfQorCitX
QVNNX1NMT1dfUEFUSF9ERUNMKGYzMl9mbG9vcikKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFu
Y2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUYzMkZsb29yPigpOworICAg
IGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0
KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpzVW5ib3hlZEZsb2F0KHN0ZDo6
Zmxvb3Iob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjMyX3RydW5jKQor
eworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBj
LT5hczxXYXNtRjMyVHJ1bmM+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rp
b24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjpl
bmNvZGUoanNVbmJveGVkRmxvYXQoc3RkOjp0cnVuYyhvcGVyYW5kKSkpKTsKK30KKworV0FTTV9T
TE9XX1BBVEhfREVDTChmMzJfbmVhcmVzdCkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVt
ZXJpY19saW1pdHM8ZmxvYXQ+Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3Qp
OworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBj
LT5hczxXYXNtRjMyTmVhcmVzdD4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVj
dGlvbi5tX29wZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6
OmVuY29kZShqc1VuYm94ZWRGbG9hdChzdGQ6Om5lYXJieWludChvcGVyYW5kKSkpKTsKK30KKwor
V0FTTV9TTE9XX1BBVEhfREVDTChmNjRfY2VpbCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFu
Y2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NENlaWw+KCk7CisgICAg
ZG91YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJs
ZSgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGQ6
OmNlaWwob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjY0X2Zsb29yKQor
eworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBj
LT5hczxXYXNtRjY0Rmxvb3I+KCk7CisgICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0
aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6
OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGQ6OmZsb29yKG9wZXJhbmQpKSkpOworfQorCitXQVNN
X1NMT1dfUEFUSF9ERUNMKGY2NF90cnVuYykKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2Up
OworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NFRydW5jPigpOworICAgIGRv
dWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUo
KTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoc3RkOjp0
cnVuYyhvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmNjRfbmVhcmVzdCkK
K3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpyb3VuZF9z
dHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5j
ZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjY0TmVhcmVzdD4oKTsKKyAg
ICBkb3VibGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91
YmxlKCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHN0
ZDo6bmVhcmJ5aW50KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGYzMl9j
b252ZXJ0X3VfaTY0KQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxm
bG9hdD46OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7CisgICAgVU5VU0VE
X1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GMzJD
b252ZXJ0VUk2ND4oKTsKKyAgICB1aW50NjRfdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5t
X29wZXJhbmQpLnVuYm94ZWRJbnQ2NCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29k
ZShqc1VuYm94ZWRGbG9hdChzdGF0aWNfY2FzdDxmbG9hdD4ob3BlcmFuZCkpKSk7Cit9CisKK1dB
U01fU0xPV19QQVRIX0RFQ0woZjMyX2NvbnZlcnRfc19pNjQpCit7CisgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cm91bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90
b19uZWFyZXN0KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1
Y3Rpb24gPSBwYy0+YXM8V2FzbUYzMkNvbnZlcnRTSTY0PigpOworICAgIGludDY0X3Qgb3BlcmFu
ZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkSW50NjQoKTsKKyAgICBXQVNN
X1JFVFVSTihKU1ZhbHVlOjplbmNvZGUoanNVbmJveGVkRmxvYXQoc3RhdGljX2Nhc3Q8ZmxvYXQ+
KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGY2NF9jb252ZXJ0X3VfaTY0
KQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnJvdW5k
X3N0eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7CisgICAgVU5VU0VEX1BBUkFNKGluc3Rh
bmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GNjRDb252ZXJ0VUk2ND4o
KTsKKyAgICB1aW50NjRfdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVu
Ym94ZWRJbnQ2NCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51
bWJlcihzdGF0aWNfY2FzdDxkb3VibGU+KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFU
SF9ERUNMKGY2NF9jb252ZXJ0X3NfaTY0KQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1l
cmljX2xpbWl0czxmbG9hdD46OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7
CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMt
PmFzPFdhc21GNjRDb252ZXJ0U0k2ND4oKTsKKyAgICBpbnQ2NF90IG9wZXJhbmQgPSBSRUFEKGlu
c3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEludDY0KCk7CisgICAgV0FTTV9SRVRVUk4oSlNW
YWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHN0YXRpY19jYXN0PGRvdWJsZT4ob3BlcmFuZCkp
KSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3VfZjMyKQoreworICAgIFVO
VVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNt
STY0VHJ1bmNVRjMyPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1f
b3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkgfHwg
b3BlcmFuZCA8PSAtMS4wZiB8fCBvcGVyYW5kID49IC0yLjBmICogc3RhdGljX2Nhc3Q8ZmxvYXQ+
KElOVDY0X01JTikpCisgICAgICAgIFdBU01fVEhST1coV2FzbTo6RXhjZXB0aW9uVHlwZTo6T3V0
T2ZCb3VuZHNUcnVuYyk7CisgICAgV0FTTV9SRVRVUk4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG9w
ZXJhbmQpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc19mMzIpCit7Cisg
ICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFz
PFdhc21JNjRUcnVuY1NGMzI+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rp
b24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5k
KSB8fCBvcGVyYW5kIDwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikgfHwgb3BlcmFuZCA+
PSAtc3RhdGljX2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikpCisgICAgICAgIFdBU01fVEhST1coV2Fz
bTo6RXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNUcnVuYyk7CisgICAgV0FTTV9SRVRVUk4oc3Rh
dGljX2Nhc3Q8aW50NjRfdD4ob3BlcmFuZCkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2
NF90cnVuY191X2Y2NCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8g
aW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jVUY2ND4oKTsKKyAgICBkb3VibGUgb3Bl
cmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAg
aWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8PSAtMS4wIHx8IG9wZXJhbmQgPj0g
LTIuMCAqIHN0YXRpY19jYXN0PGRvdWJsZT4oSU5UNjRfTUlOKSkKKyAgICAgICAgV0FTTV9USFJP
VyhXYXNtOjpFeGNlcHRpb25UeXBlOjpPdXRPZkJvdW5kc1RydW5jKTsKKyAgICBXQVNNX1JFVFVS
TihzdGF0aWNfY2FzdDx1aW50NjRfdD4ob3BlcmFuZCkpOworfQorCitXQVNNX1NMT1dfUEFUSF9E
RUNMKGk2NF90cnVuY19zX2Y2NCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAg
IGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jU0Y2ND4oKTsKKyAgICBkb3Vi
bGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7
CisgICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8IHN0YXRpY19jYXN0PGRv
dWJsZT4oSU5UNjRfTUlOKSB8fCBvcGVyYW5kID49IC1zdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0
X01JTikpCisgICAgICAgIFdBU01fVEhST1coV2FzbTo6RXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3Vu
ZHNUcnVuYyk7CisgICAgV0FTTV9SRVRVUk4oc3RhdGljX2Nhc3Q8aW50NjRfdD4ob3BlcmFuZCkp
OworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY19zYXRfZjMyX3UpCit7CisgICAg
VU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdh
c21JNjRUcnVuY1NhdEYzMlU+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rp
b24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICB1aW50NjRfdCByZXN1bHQ7CisgICAg
aWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8PSAtMS4wZikKKyAgICAgICAgcmVz
dWx0ID0gMDsKKyAgICBlbHNlIGlmIChvcGVyYW5kID49IC0yLjBmICogc3RhdGljX2Nhc3Q8Zmxv
YXQ+KElOVDY0X01JTikpCisgICAgICAgIHJlc3VsdCA9IFVJTlQ2NF9NQVg7CisgICAgZWxzZQor
ICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4ob3BlcmFuZCk7CisgICAgV0FT
TV9SRVRVUk4ocmVzdWx0KTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc2F0
X2YzMl9zKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVj
dGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1bmNTYXRGMzJTPigpOworICAgIGZsb2F0IG9wZXJhbmQg
PSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgaW50NjRf
dCByZXN1bHQ7CisgICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkpCisgICAgICAgIHJlc3VsdCA9
IDA7CisgICAgZWxzZSBpZiAob3BlcmFuZCA8IHN0YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4p
KQorICAgICAgICByZXN1bHQgPSBJTlQ2NF9NSU47CisgICAgZWxzZSBpZiAob3BlcmFuZCA+PSAt
c3RhdGljX2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikpCisgICAgICAgIHJlc3VsdCA9IElOVDY0X01B
WDsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PGludDY0X3Q+KG9wZXJh
bmQpOworICAgIFdBU01fUkVUVVJOKHJlc3VsdCk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0wo
aTY0X3RydW5jX3NhdF9mNjRfdSkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAg
IGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jU2F0RjY0VT4oKTsKKyAgICBk
b3VibGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91Ymxl
KCk7CisgICAgdWludDY0X3QgcmVzdWx0OworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8
IG9wZXJhbmQgPD0gLTEuMCkKKyAgICAgICAgcmVzdWx0ID0gMDsKKyAgICBlbHNlIGlmIChvcGVy
YW5kID49IC0yLjAgKiBzdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0X01JTikpCisgICAgICAgIHJl
c3VsdCA9IFVJTlQ2NF9NQVg7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2Fz
dDx1aW50NjRfdD4ob3BlcmFuZCk7CisgICAgV0FTTV9SRVRVUk4ocmVzdWx0KTsKK30KKworV0FT
TV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc2F0X2Y2NF9zKQoreworICAgIFVOVVNFRF9QQVJB
TShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1bmNT
YXRGNjRTPigpOworICAgIGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJh
bmQpLnVuYm94ZWREb3VibGUoKTsKKyAgICBpbnQ2NF90IHJlc3VsdDsKKyAgICBpZiAoc3RkOjpp
c25hbihvcGVyYW5kKSkKKyAgICAgICAgcmVzdWx0ID0gMDsKKyAgICBlbHNlIGlmIChvcGVyYW5k
IDwgc3RhdGljX2Nhc3Q8ZG91YmxlPihJTlQ2NF9NSU4pKQorICAgICAgICByZXN1bHQgPSBJTlQ2
NF9NSU47CisgICAgZWxzZSBpZiAob3BlcmFuZCA+PSAtc3RhdGljX2Nhc3Q8ZG91YmxlPihJTlQ2
NF9NSU4pKQorICAgICAgICByZXN1bHQgPSBJTlQ2NF9NQVg7CisgICAgZWxzZQorICAgICAgICBy
ZXN1bHQgPSBzdGF0aWNfY2FzdDxpbnQ2NF90PihvcGVyYW5kKTsKKyAgICBXQVNNX1JFVFVSTihy
ZXN1bHQpOworfQorI2VuZGlmCisKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3df
cGF0aF93YXNtX3Rocm93X2V4Y2VwdGlvbihDYWxsRnJhbWUqIGNhbGxGcmFtZSwgY29uc3QgV2Fz
bUluc3RydWN0aW9uKiBwYywgV2FzbTo6SW5zdGFuY2UqIGluc3RhbmNlLCBXYXNtOjpFeGNlcHRp
b25UeXBlIGV4Y2VwdGlvblR5cGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHBjKTsKQEAgLTcyNSwx
NiArOTM1LDI4IEBAIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNt
X3Rocm93X2V4Y2VwdGlvbihDYWxsRnJhbWUqIGNhbGxGcmFtCiAKIGV4dGVybiAiQyIgU2xvd1Bh
dGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3BvcGNvdW50KGNvbnN0IFdhc21JbnN0cnVjdGlv
biogcGMsIHVpbnQzMl90IHgpCiB7Ci0gICAgdm9pZCogcmVzdWx0ID0gYml0d2lzZV9jYXN0PHZv
aWQqPihzdGF0aWNfY2FzdDx1aW50NjRfdD4oX19idWlsdGluX3BvcGNvdW50KHgpKSk7CisgICAg
dm9pZCogcmVzdWx0ID0gYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDxzaXplX3Q+KF9f
YnVpbHRpbl9wb3Bjb3VudCh4KSkpOwogICAgIFdBU01fUkVUVVJOX1RXTyhwYywgcmVzdWx0KTsK
IH0KIAogZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fcG9wY291
bnRsbChjb25zdCBXYXNtSW5zdHJ1Y3Rpb24qIHBjLCB1aW50NjRfdCB4KQogewotICAgIHZvaWQq
IHJlc3VsdCA9IGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KF9fYnVp
bHRpbl9wb3Bjb3VudGxsKHgpKSk7CisgICAgdm9pZCogcmVzdWx0ID0gYml0d2lzZV9jYXN0PHZv
aWQqPihzdGF0aWNfY2FzdDxzaXplX3Q+KF9fYnVpbHRpbl9wb3Bjb3VudGxsKHgpKSk7CiAgICAg
V0FTTV9SRVRVUk5fVFdPKHBjLCByZXN1bHQpOwogfQogCisjaWYgVVNFKEpTVkFMVUUzMl82NCkK
Ky8vIE5vdGU6IEFsbCB0aGVzZSBkaXYgYW5kIHJlbSBvcHMgcGVyZm9ybSBleGNlcHRpb24gY2hl
Y2tzIGluIGFzbQorZXh0ZXJuICJDIiBpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9kaXZfcyhp
bnQzMl90IGEsIGludDMyX3QgYikgeyByZXR1cm4gYSAvIGI7IH0KK2V4dGVybiAiQyIgdWludDMy
X3Qgc2xvd19wYXRoX3dhc21faTMyX2Rpdl91KHVpbnQzMl90IGEsIHVpbnQzMl90IGIpIHsgcmV0
dXJuIGEgLyBiOyB9CitleHRlcm4gIkMiIGludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX3JlbV9z
KGludDMyX3QgYSwgaW50MzJfdCBiKSB7IHJldHVybiBhICUgYjsgfQorZXh0ZXJuICJDIiB1aW50
MzJfdCBzbG93X3BhdGhfd2FzbV9pMzJfcmVtX3UodWludDMyX3QgYSwgdWludDMyX3QgYikgeyBy
ZXR1cm4gYSAlIGI7IH0KK2V4dGVybiAiQyIgaW50NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRfZGl2
X3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpIHsgcmV0dXJuIGEgLyBiOyB9CitleHRlcm4gIkMiIHVp
bnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9kaXZfdSh1aW50NjRfdCBhLCB1aW50NjRfdCBiKSB7
IHJldHVybiBhIC8gYjsgfQorZXh0ZXJuICJDIiBpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9y
ZW1fcyhpbnQ2NF90IGEsIGludDY0X3QgYikgeyByZXR1cm4gYSAlIGI7IH0KK2V4dGVybiAiQyIg
dWludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X3JlbV91KHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIp
IHsgcmV0dXJuIGEgJSBiOyB9CisjZW5kaWYKKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50
CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtU2xvd1BhdGhzLmgKaW5kZXggNDYwOWUzNmIwMzkyNGQxMGVhMDI3NDU2MTBmMGYy
ZmU0ZTgzMWYyMi4uODlmNmUzOTRkODZjMjY3NzljODFhYTJlMzhjMDMxMDFhNDhhZDU0MCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuaApAQCAtOTQsNiArOTQs
NDAgQEAgZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fdGhyb3df
ZXhjZXB0aW9uKENhbGxGcmFtZSosIGNvbnN0IFcKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5U
eXBlIHNsb3dfcGF0aF93YXNtX3BvcGNvdW50KGNvbnN0IFdhc21JbnN0cnVjdGlvbiogcGMsIHVp
bnQzMl90KSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKIGV4dGVybiAiQyIgU2xv
d1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3BvcGNvdW50bGwoY29uc3QgV2FzbUluc3Ry
dWN0aW9uKiBwYywgdWludDY0X3QpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOwog
CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGYzMl9j
ZWlsKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGYzMl9mbG9vcik7CitXQVNNX1NMT1df
UEFUSF9ISURERU5fREVDTChmMzJfdHJ1bmMpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0wo
ZjMyX25lYXJlc3QpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjY0X2NlaWwpOworV0FT
TV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjY0X2Zsb29yKTsKK1dBU01fU0xPV19QQVRIX0hJRERF
Tl9ERUNMKGY2NF90cnVuYyk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfbmVhcmVz
dCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmMzJfY29udmVydF91X2k2NCk7CitXQVNN
X1NMT1dfUEFUSF9ISURERU5fREVDTChmMzJfY29udmVydF9zX2k2NCk7CitXQVNNX1NMT1dfUEFU
SF9ISURERU5fREVDTChmNjRfY29udmVydF91X2k2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5f
REVDTChmNjRfY29udmVydF9zX2k2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRf
dHJ1bmNfdV9mMzIpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3NfZjMy
KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGk2NF90cnVuY191X2Y2NCk7CitXQVNNX1NM
T1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNfc19mNjQpOworV0FTTV9TTE9XX1BBVEhfSElE
REVOX0RFQ0woaTY0X3RydW5jX3NhdF9mMzJfdSk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVD
TChpNjRfdHJ1bmNfc2F0X2YzMl9zKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGk2NF90
cnVuY19zYXRfZjY0X3UpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3Nh
dF9mNjRfcyk7CisjZW5kaWYKKworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCitleHRlcm4gIkMiIGlu
dDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX2Rpdl9zKGludDMyX3QgYSwgaW50MzJfdCBiKSBSRUZF
UkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgdWludDMyX3Qgc2xvd19w
YXRoX3dhc21faTMyX2Rpdl91KHVpbnQzMl90IGEsIHVpbnQzMl90IGIpIFJFRkVSRU5DRURfRlJP
TV9BU00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJDIiBpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kz
Ml9yZW1fcyhpbnQzMl90IGEsIGludDMyX3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5U
RVJOQUw7CitleHRlcm4gIkMiIHVpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9yZW1fdSh1aW50
MzJfdCBhLCB1aW50MzJfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK2V4
dGVybiAiQyIgaW50NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRfZGl2X3MoaW50NjRfdCBhLCBpbnQ2
NF90IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJDIiB1aW50
NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRfZGl2X3UodWludDY0X3QgYSwgdWludDY0X3QgYikgUkVG
RVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMiIGludDY0X3Qgc2xvd19w
YXRoX3dhc21faTY0X3JlbV9zKGludDY0X3QgYSwgaW50NjRfdCBiKSBSRUZFUkVOQ0VEX0ZST01f
QVNNIFdURl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgdWludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0
X3JlbV91KHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lO
VEVSTkFMOworI2VuZGlmCisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpMTEludAogCiAjZW5kaWYg
Ly8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbVZhbHVlTG9jYXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbVZhbHVlTG9jYXRpb24uY3BwCmluZGV4IDUyMjNmM2FiNGU0MGZiNDk4NDdlMGU5NmE2YzM5
NzE4ZWY0MTA5YjUuLjY4Yzc4ODg5MDZkYjhiNTFjOTUwNGJlOWVjZTljYmJmY2VkMmZkMjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5jcHAK
QEAgLTM1LDggKzM1LDExIEBAIHZvaWQgVmFsdWVMb2NhdGlvbjo6ZHVtcChQcmludFN0cmVhbSYg
b3V0KSBjb25zdAogewogICAgIG91dC5wcmludChtX2tpbmQpOwogICAgIHN3aXRjaCAobV9raW5k
KSB7Ci0gICAgY2FzZSBSZWdpc3RlcjoKLSAgICAgICAgb3V0LnByaW50KCIoIiwgcmVnKCksICIp
Iik7CisgICAgY2FzZSBHUFJSZWdpc3RlcjoKKyAgICAgICAgb3V0LnByaW50KCIoIiwganNyKCks
ICIpIik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEZQUlJlZ2lzdGVyOgorICAgICAgICBv
dXQucHJpbnQoIigiLCBmcHIoKSwgIikiKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgU3Rh
Y2s6CiAgICAgICAgIG91dC5wcmludCgiKCIsIG9mZnNldEZyb21GUCgpLCAiKSIpOwpAQCAtNTcs
OCArNjAsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzo6V2FzbTsKIHZvaWQgcHJpbnRJbnRlcm5h
bChQcmludFN0cmVhbSYgb3V0LCBWYWx1ZUxvY2F0aW9uOjpLaW5kIGtpbmQpCiB7CiAgICAgc3dp
dGNoIChraW5kKSB7Ci0gICAgY2FzZSBWYWx1ZUxvY2F0aW9uOjpSZWdpc3RlcjoKLSAgICAgICAg
b3V0LnByaW50KCJSZWdpc3RlciIpOworICAgIGNhc2UgVmFsdWVMb2NhdGlvbjo6R1BSUmVnaXN0
ZXI6CisgICAgICAgIG91dC5wcmludCgiR1BSUmVnaXN0ZXIiKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIGNhc2UgVmFsdWVMb2NhdGlvbjo6RlBSUmVnaXN0ZXI6CisgICAgICAgIG91dC5wcmludCgi
RlBSUmVnaXN0ZXIiKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgVmFsdWVMb2NhdGlvbjo6
U3RhY2s6CiAgICAgICAgIG91dC5wcmludCgiU3RhY2siKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5oCmluZGV4IGE2MWZiYThiZDAxY2I0YWMwY2E2
YjZjYTdlZTQ0ZDdiNzcwZDQ4YTMuLjVjYjUxMGRiYmQwYjFiMDQ3ZjVjOTI2MTc5ZTFhM2ZiOWNi
YWIxY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxv
Y2F0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRp
b24uaApAQCAtNDEsMjUgKzQxLDI3IEBAIGNsYXNzIFZhbHVlTG9jYXRpb24gewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGVudW0gS2luZCA6IHVpbnQ4X3Qgewot
ICAgICAgICBSZWdpc3RlciwKKyAgICAgICAgR1BSUmVnaXN0ZXIsCisgICAgICAgIEZQUlJlZ2lz
dGVyLAogICAgICAgICBTdGFjaywKICAgICAgICAgU3RhY2tBcmd1bWVudCwKICAgICB9OwogCiAg
ICAgVmFsdWVMb2NhdGlvbigpCi0gICAgICAgIDogbV9raW5kKFJlZ2lzdGVyKQorICAgICAgICA6
IG1fa2luZChHUFJSZWdpc3RlcikKICAgICB7CiAgICAgfQogCi0gICAgZXhwbGljaXQgVmFsdWVM
b2NhdGlvbihSZWcgcmVnKQotICAgICAgICA6IG1fa2luZChSZWdpc3RlcikKKyAgICBleHBsaWNp
dCBWYWx1ZUxvY2F0aW9uKEpTVmFsdWVSZWdzIHJlZ3MpCisgICAgICAgIDogbV9raW5kKEdQUlJl
Z2lzdGVyKQogICAgIHsKLSAgICAgICAgdS5yZWcgPSByZWc7CisgICAgICAgIHUuanNyID0gcmVn
czsKICAgICB9CiAKLSAgICBzdGF0aWMgVmFsdWVMb2NhdGlvbiByZWcoUmVnIHJlZykKKyAgICBl
eHBsaWNpdCBWYWx1ZUxvY2F0aW9uKEZQUlJlZyByZWcpCisgICAgICAgIDogbV9raW5kKEZQUlJl
Z2lzdGVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFZhbHVlTG9jYXRpb24ocmVnKTsKKyAgICAg
ICAgdS5mcHIgPSByZWc7CiAgICAgfQogCiAgICAgc3RhdGljIFZhbHVlTG9jYXRpb24gc3RhY2so
aW50cHRyX3Qgb2Zmc2V0RnJvbUZQKQpAQCAtODAsMjEgKzgyLDIyIEBAIHB1YmxpYzoKIAogICAg
IEtpbmQga2luZCgpIGNvbnN0IHsgcmV0dXJuIG1fa2luZDsgfQogCi0gICAgYm9vbCBpc1JlZygp
IGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBSZWdpc3RlcjsgfQorICAgIGJvb2wgaXNHUFIoKSBj
b25zdCB7IHJldHVybiBraW5kKCkgPT0gR1BSUmVnaXN0ZXI7IH0KKyAgICBib29sIGlzRlBSKCkg
Y29uc3QgeyByZXR1cm4ga2luZCgpID09IEZQUlJlZ2lzdGVyOyB9CisgICAgYm9vbCBpc1N0YWNr
KCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IFN0YWNrOyB9CisgICAgYm9vbCBpc1N0YWNrQXJn
dW1lbnQoKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gU3RhY2tBcmd1bWVudDsgfQogCi0gICAg
UmVnIHJlZygpIGNvbnN0CisgICAgSlNWYWx1ZVJlZ3MganNyKCkgY29uc3QKICAgICB7Ci0gICAg
ICAgIEFTU0VSVChpc1JlZygpKTsKLSAgICAgICAgcmV0dXJuIHUucmVnOworICAgICAgICBBU1NF
UlQoaXNHUFIoKSk7CisgICAgICAgIHJldHVybiB1LmpzcjsKICAgICB9CiAKLSAgICBib29sIGlz
R1BSKCkgY29uc3QgeyByZXR1cm4gaXNSZWcoKSAmJiByZWcoKS5pc0dQUigpOyB9Ci0gICAgYm9v
bCBpc0ZQUigpIGNvbnN0IHsgcmV0dXJuIGlzUmVnKCkgJiYgcmVnKCkuaXNGUFIoKTsgfQotCi0g
ICAgR1BSUmVnIGdwcigpIGNvbnN0IHsgcmV0dXJuIHJlZygpLmdwcigpOyB9Ci0gICAgRlBSUmVn
IGZwcigpIGNvbnN0IHsgcmV0dXJuIHJlZygpLmZwcigpOyB9Ci0KLSAgICBib29sIGlzU3RhY2so
KSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gU3RhY2s7IH0KKyAgICBGUFJSZWcgZnByKCkgY29u
c3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpc0ZQUigpKTsKKyAgICAgICAgcmV0dXJuIHUuZnBy
OworICAgIH0KIAogICAgIGludHB0cl90IG9mZnNldEZyb21GUCgpIGNvbnN0CiAgICAgewpAQCAt
MTAyLDggKzEwNSw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHUub2Zmc2V0RnJvbUZQOwog
ICAgIH0KIAotICAgIGJvb2wgaXNTdGFja0FyZ3VtZW50KCkgY29uc3QgeyByZXR1cm4ga2luZCgp
ID09IFN0YWNrQXJndW1lbnQ7IH0KLQogICAgIGludHB0cl90IG9mZnNldEZyb21TUCgpIGNvbnN0
CiAgICAgewogICAgICAgICBBU1NFUlQoaXNTdGFja0FyZ3VtZW50KCkpOwpAQCAtMTE0LDcgKzEx
NSw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB1bmlvbiBVIHsKLSAgICAgICAgUmVnIHJl
ZzsKKyAgICAgICAgSlNWYWx1ZVJlZ3MganNyOworICAgICAgICBGUFJSZWcgZnByOwogICAgICAg
ICBpbnRwdHJfdCBvZmZzZXRGcm9tRlA7CiAgICAgICAgIGludHB0cl90IG9mZnNldEZyb21TUDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3BwCmluZGV4IDFmNDY0
ZmU5OGJhZDgzNDQwNGQxMTAxODlkZGNmOGYyNTQ0M2JkM2EuLjk0MTlkZDA1Y2FhODU3MjBmOGRj
MzM1YThlYTczYTQ1NTQ3ZjljZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL0pTVG9XYXNtLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9K
U1RvV2FzbS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIK
ICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlJ
bnN0YW5jZS5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAj
aW5jbHVkZSAiV2FzbUNhbGxpbmdDb252ZW50aW9uLmgiCiAjaW5jbHVkZSAiV2FzbUNvbnRleHRJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiV2FzbU9wZXJhdGlvbnMuaCIKQEAgLTQwLDEzICs0MSwxMyBA
QCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCiB2b2lkIG1hcnNoYWxsSlNSZXN1
bHQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlLCBjb25zdCBD
YWxsSW5mb3JtYXRpb24mIHdhc21GcmFtZUNvbnZlbnRpb24sIGNvbnN0IFJlZ2lzdGVyQXRPZmZz
ZXRMaXN0JiBzYXZlZFJlc3VsdFJlZ2lzdGVycykKIHsKLSAgICBhdXRvIGJveFdhc21SZXN1bHQg
PSBbXShDQ2FsbEhlbHBlcnMmIGppdCwgVHlwZSB0eXBlLCBSZWcgc3JjLCBKU1ZhbHVlUmVncyBk
c3QpIHsKKyAgICBhdXRvIGJveFdhc21SZXN1bHQgPSBbXShDQ2FsbEhlbHBlcnMmIGppdCwgVHlw
ZSB0eXBlLCBWYWx1ZUxvY2F0aW9uIHNyYywgSlNWYWx1ZVJlZ3MgZHN0KSB7CiAgICAgICAgIHN3
aXRjaCAodHlwZS5raW5kKSB7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlZvaWQ6CiAgICAgICAg
ICAgICBqaXQubW92ZVRydXN0ZWRWYWx1ZShqc1VuZGVmaW5lZCgpLCBkc3QpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkkzMjoKLSAgICAgICAgICAgIGppdC56
ZXJvRXh0ZW5kMzJUb1dvcmQoc3JjLmdwcigpLCBkc3QucGF5bG9hZEdQUigpKTsKKyAgICAgICAg
ICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoc3JjLmpzcigpLnBheWxvYWRHUFIoKSwgZHN0LnBh
eWxvYWRHUFIoKSk7CiAgICAgICAgICAgICBqaXQuYm94SW50MzIoZHN0LnBheWxvYWRHUFIoKSwg
ZHN0LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgVHlwZUtpbmQ6OkYzMjoKQEAgLTU1LDEzICs1NiwxNyBAQCB2b2lkIG1hcnNoYWxsSlNS
ZXN1bHQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlLCBjb25z
dCBDYWxsSQogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6IHsKICAgICAgICAgICAgIGppdC5t
b3ZlVHJ1c3RlZFZhbHVlKGpzTnVtYmVyKHB1cmVOYU4oKSksIGRzdCk7CiAgICAgICAgICAgICBh
dXRvIGlzTmFOID0gaml0LmJyYW5jaElmTmFOKHNyYy5mcHIoKSk7CisjaWYgVVNFKEpTVkFMVUU2
NCkKICAgICAgICAgICAgIGppdC5ib3hEb3VibGUoc3JjLmZwcigpLCBkc3QsIERvTm90SGF2ZVRh
Z1JlZ2lzdGVycyk7CisjZWxzZQorICAgICAgICAgICAgaml0LmJveERvdWJsZShzcmMuZnByKCks
IGRzdCk7CisjZW5kaWYKICAgICAgICAgICAgIGlzTmFOLmxpbmsoJmppdCk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OiB7CiAgICAgICAgICAgICBpZiAo
aXNGdW5jcmVmKHR5cGUpIHx8IGlzRXh0ZXJucmVmKHR5cGUpKQotICAgICAgICAgICAgICAgIGpp
dC5tb3ZlKHNyYy5ncHIoKSwgZHN0LnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICAgICAgaml0
Lm1vdmVWYWx1ZVJlZ3Moc3JjLmpzcigpLCBkc3QpOwogICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgIGppdC5icmVha3BvaW50KCk7CiAgICAgICAgIH0KQEAgLTY5LDQ0ICs3NCw4NyBA
QCB2b2lkIG1hcnNoYWxsSlNSZXN1bHQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFNpZ25hdHVy
ZSYgc2lnbmF0dXJlLCBjb25zdCBDYWxsSQogICAgIH07CiAKICAgICBpZiAoc2lnbmF0dXJlLnJl
dHVybnNWb2lkKCkpCi0gICAgICAgIGppdC5tb3ZlVHJ1c3RlZFZhbHVlKGpzVW5kZWZpbmVkKCks
IEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIgfSk7CisgICAgICAgIGppdC5t
b3ZlVHJ1c3RlZFZhbHVlKGpzVW5kZWZpbmVkKCksIEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsK
ICAgICBlbHNlIGlmIChzaWduYXR1cmUucmV0dXJuQ291bnQoKSA9PSAxKSB7CiAgICAgICAgIGlm
IChzaWduYXR1cmUucmV0dXJuVHlwZSgwKS5pc0k2NCgpKSB7Ci0gICAgICAgICAgICBHUFJSZWcg
aW5wdXRHUFIgPSB3YXNtRnJhbWVDb252ZW50aW9uLnJlc3VsdHNbMF0ucmVnKCkuZ3ByKCk7Cisg
ICAgICAgICAgICBKU1ZhbHVlUmVncyBpbnB1dEpTUiA9IHdhc21GcmFtZUNvbnZlbnRpb24ucmVz
dWx0c1swXS5qc3IoKTsKICAgICAgICAgICAgIEdQUlJlZyB3YXNtQ29udGV4dEluc3RhbmNlR1BS
ID0gUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKS53YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlcjsK
ICAgICAgICAgICAgIGlmIChDb250ZXh0Ojp1c2VGYXN0VExTKCkpIHsKLSAgICAgICAgICAgICAg
ICB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gaW5wdXRHUFIgPT0gR1BSSW5mbzo6YXJndW1lbnRH
UFIxID8gR1BSSW5mbzo6YXJndW1lbnRHUFIwIDogR1BSSW5mbzo6YXJndW1lbnRHUFIxOwotICAg
ICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lX3Y8V2FzbTo6SW5zdGFuY2Uq
LCB0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxkZWNsdHlwZShvcGVyYXRpb25BbGxvY2F0ZVJlc3Vs
dHNBcnJheSk+OjpBcmd1bWVudFR5cGU8MT4+KTsKKyAgICAgICAgICAgICAgICB3YXNtQ29udGV4
dEluc3RhbmNlR1BSID0gaW5wdXRKU1IucGF5bG9hZEdQUigpID09IEdQUkluZm86OmFyZ3VtZW50
R1BSMSA/IEdQUkluZm86OmFyZ3VtZW50R1BSMCA6IEdQUkluZm86OmFyZ3VtZW50R1BSMTsKKyAg
ICAgICAgICAgICAgICBBU1NFUlQoIWlucHV0SlNSLnVzZXMod2FzbUNvbnRleHRJbnN0YW5jZUdQ
UikpOworICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lX3Y8V2FzbTo6
SW5zdGFuY2UqLCB0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxkZWNsdHlwZShvcGVyYXRpb25Db252
ZXJ0VG9CaWdJbnQpPjo6QXJndW1lbnRUeXBlPDE+Pik7CiAgICAgICAgICAgICAgICAgaml0Lmxv
YWRXYXNtQ29udGV4dEluc3RhbmNlKHdhc21Db250ZXh0SW5zdGFuY2VHUFIpOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNv
bnZlcnRUb0JpZ0ludCk+KHdhc21Db250ZXh0SW5zdGFuY2VHUFIsIGlucHV0R1BSKTsKKyAgICAg
ICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJ
bnQpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCBpbnB1dEpTUik7CiAgICAgICAgICAgICBqaXQu
Y2FsbE9wZXJhdGlvbihGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkNvbnZl
cnRUb0JpZ0ludCkpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGJveFdhc21SZXN1bHQo
aml0LCBzaWduYXR1cmUucmV0dXJuVHlwZSgwKSwgd2FzbUZyYW1lQ29udmVudGlvbi5yZXN1bHRz
WzBdLnJlZygpLCBKU1ZhbHVlUmVncyB7IEdQUkluZm86OnJldHVyblZhbHVlR1BSIH0pOworICAg
ICAgICAgICAgYm94V2FzbVJlc3VsdChqaXQsIHNpZ25hdHVyZS5yZXR1cm5UeXBlKDApLCB3YXNt
RnJhbWVDb252ZW50aW9uLnJlc3VsdHNbMF0sIEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsKICAg
ICB9IGVsc2UgewogICAgICAgICBJbmRleGluZ1R5cGUgaW5kZXhpbmdUeXBlID0gQXJyYXlXaXRo
VW5kZWNpZGVkOwotICAgICAgICBKU1ZhbHVlUmVncyBzY3JhdGNoID0gSlNWYWx1ZVJlZ3MgeyB3
YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdIH07CisgICAgICAg
IEpTVmFsdWVSZWdzIHNjcmF0Y2hKU1IgPSBKU1ZhbHVlUmVncyB7CisjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICAgICAgICAgIHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRj
aEdQUnNbMl0sCisjZW5kaWYKKyAgICAgICAgICAgIHdhc21DYWxsaW5nQ29udmVudGlvbigpLnBy
b2xvZ3VlU2NyYXRjaEdQUnNbMV0KKyAgICAgICAgfTsKKworICAgICAgICBBU1NFUlQoc2NyYXRj
aEpTUi5wYXlsb2FkR1BSKCkgIT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsKKyNpZiBVU0UoSlNW
QUxVRTMyXzY0KQorICAgICAgICBBU1NFUlQoc2NyYXRjaEpTUi50YWdHUFIoKSAhPSBHUFJSZWc6
OkludmFsaWRHUFJSZWcpOworICAgICAgICBBU1NFUlQoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkg
IT0gc2NyYXRjaEpTUi50YWdHUFIoKSk7CisjZW5kaWYKKwogICAgICAgICAvLyBXZSBjYW4gdXNl
IHRoZSBmaXJzdCBmbG9hdGluZyBwb2ludCByZWdpc3RlciBhcyBhIHNjcmF0Y2ggc2luY2UgaXQg
d2lsbCBhbHdheXMgYmUgbW92ZWQgb250byB0aGUgc3RhY2sgYmVmb3JlIG90aGVyIHZhbHVlcy4K
LSAgICAgICAgRlBSUmVnIGZwclNjcmF0Y2ggPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5mcHJB
cmdzWzBdLmZwcigpOworICAgICAgICBGUFJSZWcgZnByU2NyYXRjaCA9IHdhc21DYWxsaW5nQ29u
dmVudGlvbigpLmZwckFyZ3NbMF07CiAgICAgICAgIGJvb2wgaGFzSTY0ID0gZmFsc2U7CiAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaWduYXR1cmUucmV0dXJuQ291bnQoKTsgKytp
KSB7CiAgICAgICAgICAgICBWYWx1ZUxvY2F0aW9uIGxvYyA9IHdhc21GcmFtZUNvbnZlbnRpb24u
cmVzdWx0c1tpXTsKICAgICAgICAgICAgIFR5cGUgdHlwZSA9IHNpZ25hdHVyZS5yZXR1cm5UeXBl
KGkpOwogCiAgICAgICAgICAgICBoYXNJNjQgfD0gdHlwZS5pc0k2NCgpOwotICAgICAgICAgICAg
aWYgKGxvYy5pc1JlZygpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCF0eXBlLmlzSTY0KCkpIHsK
LSAgICAgICAgICAgICAgICAgICAgYm94V2FzbVJlc3VsdChqaXQsIHNpZ25hdHVyZS5yZXR1cm5U
eXBlKGkpLCBsb2MucmVnKCksIHNjcmF0Y2gpOwotICAgICAgICAgICAgICAgICAgICBqaXQuc3Rv
cmVWYWx1ZShzY3JhdGNoLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFj
a1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MucmVnKCkpLT5v
ZmZzZXQoKSArIHdhc21GcmFtZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJ
bkJ5dGVzKSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGpp
dC5zdG9yZVZhbHVlKEpTVmFsdWVSZWdzIHsgbG9jLnJlZygpLmdwcigpIH0sIENDYWxsSGVscGVy
czo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJlc3Vs
dFJlZ2lzdGVycy5maW5kKGxvYy5yZWcoKSktPm9mZnNldCgpICsgd2FzbUZyYW1lQ29udmVudGlv
bi5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpKTsKKyAgICAgICAgICAgIGlmIChs
b2MuaXNHUFIoKSB8fCBsb2MuaXNGUFIoKSkgeworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
ICAgICAgICAgICAgQVNTRVJUKCFsb2MuaXNHUFIoKSB8fCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5m
aW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSArIDQgPT0gc2F2ZWRSZXN1bHRS
ZWdpc3RlcnMuZmluZChsb2MuanNyKCkudGFnR1BSKCkpLT5vZmZzZXQoKSk7CisjZW5kaWYKKyAg
ICAgICAgICAgICAgICBhdXRvIGFkZHJlc3MgPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxI
ZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgd2FzbUZyYW1lQ29udmVudGlvbi5oZWFkZXJB
bmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpOworICAgICAgICAgICAgICAgIHN3aXRjaCAodHlw
ZS5raW5kKSB7CisgICAgICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgorICAgICAgICAg
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2NDoKKyAgICAgICAgICAgICAgICAgICAgYm94V2FzbVJl
c3VsdChqaXQsIHR5cGUsIGxvYywgc2NyYXRjaEpTUik7CisgICAgICAgICAgICAgICAgICAgIGpp
dC5zdG9yZVZhbHVlKHNjcmF0Y2hKU1IsIGFkZHJlc3Mud2l0aE9mZnNldChzYXZlZFJlc3VsdFJl
Z2lzdGVycy5maW5kKGxvYy5mcHIoKSktPm9mZnNldCgpKSk7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDoKKyAgICAgICAgICAg
ICAgICAgICAgaml0LnN0b3JlVmFsdWUobG9jLmpzcigpLCBhZGRyZXNzLndpdGhPZmZzZXQoc2F2
ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkp
KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgICAgICAgICAgYm94V2FzbVJlc3VsdChqaXQsIHR5cGUsIGxvYywgc2NyYXRj
aEpTUik7CisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2hKU1IsIGFk
ZHJlc3Mud2l0aE9mZnNldChzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS5wYXls
b2FkR1BSKCkpLT5vZmZzZXQoKSkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGlmICgh
dHlwZS5pc0k2NCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gbG9jYXRpb24gPSBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgbG9j
Lm9mZnNldEZyb21TUCgpKTsKLSAgICAgICAgICAgICAgICAgICAgUmVnIHRtcCA9ICh0eXBlLmlz
RjMyKCkgfHwgdHlwZS5pc0Y2NCgpKSA/IFJlZyhmcHJTY3JhdGNoKSA6IFJlZyhzY3JhdGNoLmdw
cigpKTsKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NFRvUmVnKGxvY2F0aW9uLCB0bXAp
OwotICAgICAgICAgICAgICAgICAgICBib3hXYXNtUmVzdWx0KGppdCwgc2lnbmF0dXJlLnJldHVy
blR5cGUoaSksIHRtcCwgc2NyYXRjaCk7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZh
bHVlKHNjcmF0Y2gsIGxvY2F0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgVmFsdWVMb2NhdGlv
biB0bXA7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZS5raW5kKSB7CisgICAgICAg
ICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRtcCA9IFZhbHVlTG9jYXRpb24geyBmcHJTY3JhdGNoIH07CisgICAgICAgICAgICAgICAgICAg
ICAgICBqaXQubG9hZEZsb2F0KGxvY2F0aW9uLCBmcHJTY3JhdGNoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6
CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBWYWx1ZUxvY2F0aW9uIHsgZnByU2NyYXRj
aCB9OworICAgICAgICAgICAgICAgICAgICAgICAgaml0LmxvYWREb3VibGUobG9jYXRpb24sIGZw
clNjcmF0Y2gpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OkkzMjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9
IFZhbHVlTG9jYXRpb24geyBzY3JhdGNoSlNSIH07CisgICAgICAgICAgICAgICAgICAgICAgICBq
aXQubG9hZDMyKGxvY2F0aW9uLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHRtcCA9IFZhbHVlTG9jYXRpb24geyBzY3JhdGNoSlNSIH07Cisg
ICAgICAgICAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGxvY2F0aW9uLCBzY3JhdGNoSlNS
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIGJveFdhc21SZXN1bHQoaml0LCB0eXBlLCB0bXAsIHNjcmF0
Y2hKU1IpOworICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNoSlNSLCBs
b2NhdGlvbik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCkBAIC0xMzUsMzcg
KzE4Myw0NyBAQCB2b2lkIG1hcnNoYWxsSlNSZXN1bHQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0
IFNpZ25hdHVyZSYgc2lnbmF0dXJlLCBjb25zdCBDYWxsSQogCiAgICAgICAgICAgICAgICAgR1BS
UmVnIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBQaW5uZWRSZWdpc3RlckluZm86OmdldCgpLndh
c21Db250ZXh0SW5zdGFuY2VQb2ludGVyOwogICAgICAgICAgICAgICAgIGlmIChDb250ZXh0Ojp1
c2VGYXN0VExTKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5jZUdQ
UiA9IEdQUkluZm86OmFyZ3VtZW50R1BSMTsKLSAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Fz
c2VydChzdGQ6OmlzX3NhbWVfdjxXYXNtOjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0aW9uVHJh
aXRzPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KT46OkFyZ3VtZW50VHlw
ZTwxPj4pOworICAgICAgICAgICAgICAgICAgICB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gcHJl
ZmVycmVkQXJndW1lbnRHUFI8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KSwgMT4o
KTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWVfdjxXYXNt
OjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPGRlY2x0eXBlKG9wZXJhdGlvbkNv
bnZlcnRUb0JpZ0ludCk+OjpBcmd1bWVudFR5cGU8MT4+KTsKICAgICAgICAgICAgICAgICAgICAg
aml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHdhc21Db250ZXh0SW5zdGFuY2VHUFIpOwogICAg
ICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGlmIChsb2MuaXNSZWcoKSkKLSAgICAg
ICAgICAgICAgICAgICAgaml0LmxvYWQ2NChDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxw
ZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2Mu
cmVnKCkpLT5vZmZzZXQoKSArIHdhc21GcmFtZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1lbnRT
dGFja1NpemVJbkJ5dGVzKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgICAgICAg
ICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBsb2NhdGlvbiA9IENDYWxsSGVscGVy
czo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBsb2Mub2Zmc2V0
RnJvbVNQKCkpOwotICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDY0VG9SZWcobG9jYXRpb24s
IEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQp
Pih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAg
ICAgICAgICAgIGNvbnN0ZXhwciBKU1ZhbHVlUmVncyB2YWx1ZUpTUiA9IHByZWZlcnJlZEFyZ3Vt
ZW50SlNSPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCksIDI+KCk7CisKKyAgICAg
ICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgYWRkcmVzcyB7IENDYWxsSGVscGVyczo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIgfTsKKyAgICAgICAgICAgICAgICBpZiAobG9jLmlzR1BSKCkg
fHwgbG9jLmlzRlBSKCkpIHsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAg
ICAgICBBU1NFUlQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQ
UigpKS0+b2Zmc2V0KCkgKyA0ID09IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigp
LnRhZ0dQUigpKS0+b2Zmc2V0KCkpOworI2VuZGlmCisgICAgICAgICAgICAgICAgICAgIGFkZHJl
c3MgPSBhZGRyZXNzLndpdGhPZmZzZXQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNy
KCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkgKyB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFu
ZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcyk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgICAgIGFkZHJlc3MgPSBhZGRyZXNzLndpdGhPZmZzZXQobG9jLm9mZnNldEZy
b21TUCgpKTsKKworICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoYWRkcmVzcywgdmFsdWVK
U1IpOworICAgICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRp
b25Db252ZXJ0VG9CaWdJbnQpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCB2YWx1ZUpTUik7CiAg
ICAgICAgICAgICAgICAgaml0LmNhbGxPcGVyYXRpb24oRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRy
VGFnPihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpKTsKLSAgICAgICAgICAgICAgICBpZiAobG9j
LmlzUmVnKCkpCi0gICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTVmFsdWVSZWdz
IHsgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIgfSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxs
SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQo
bG9jLnJlZygpKS0+b2Zmc2V0KCkgKyB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3Vt
ZW50U3RhY2tTaXplSW5CeXRlcykpOwotICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAg
ICAgICAgICAgICBhdXRvIGxvY2F0aW9uID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVs
cGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIGxvYy5vZmZzZXRGcm9tU1AoKSk7Ci0gICAgICAg
ICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIgfSwgbG9jYXRpb24pOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICBqaXQuc3RvcmVWYWx1ZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgYWRkcmVzcyk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBHUFJSZWcgd2FzbUNvbnRleHRJbnN0YW5j
ZUdQUiA9IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCkud2FzbUNvbnRleHRJbnN0YW5jZVBvaW50
ZXI7CiAgICAgICAgIGlmIChDb250ZXh0Ojp1c2VGYXN0VExTKCkpIHsKLSAgICAgICAgICAgIHdh
c21Db250ZXh0SW5zdGFuY2VHUFIgPSBHUFJJbmZvOjphcmd1bWVudEdQUjE7CisgICAgICAgICAg
ICB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gcHJlZmVycmVkQXJndW1lbnRHUFI8ZGVjbHR5cGUo
b3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXkpLCAxPigpOwogICAgICAgICAgICAgc3RhdGlj
X2Fzc2VydChzdGQ6OmlzX3NhbWVfdjxXYXNtOjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0aW9u
VHJhaXRzPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KT46OkFyZ3VtZW50
VHlwZTwxPj4pOwogICAgICAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHdhc21D
b250ZXh0SW5zdGFuY2VHUFIpOwogICAgICAgICB9CiAKLSAgICAgICAgaml0LnNldHVwQXJndW1l
bnRzPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KT4od2FzbUNvbnRleHRJ
bnN0YW5jZUdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZzaWduYXR1cmUpLCBpbmRl
eGluZ1R5cGUsIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBj
b25zdGV4cHIgR1BSUmVnIHNhdmVkUmVzdWx0c0dQUiA9IHByZWZlcnJlZEFyZ3VtZW50R1BSPGRl
Y2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KSwgND4oKTsKKyAgICAgICAgaml0
Lm1vdmUoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRzR1BS
KTsKKyAgICAgICAgaWYgY29uc3RleHByIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkK
KyAgICAgICAgICAgIGppdC5zdWJQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIobWF4RnJh
bWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lz
dGVyKTsKKyAgICAgICAgQVNTRVJUKHdhc21Db250ZXh0SW5zdGFuY2VHUFIgIT0gc2F2ZWRSZXN1
bHRzR1BSKTsKKyAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkFs
bG9jYXRlUmVzdWx0c0FycmF5KT4od2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tUHRyKCZzaWduYXR1cmUpLCBpbmRleGluZ1R5cGUsIHNhdmVkUmVzdWx0c0dQ
Uik7CiAgICAgICAgIGppdC5jYWxsT3BlcmF0aW9uKEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRh
Zz4ob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXkpKTsKKyAgICAgICAgaWYgY29uc3RleHBy
IChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGppdC5hZGRQdHIo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwp
LCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKworICAgICAgICBqaXQuYm94
Q2VsbChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpOwog
ICAgIH0KIH0KIApAQCAtMTc3LDcgKzIzNSwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxG
dW5jdGlvbj4gY3JlYXRlSlNUb1dhc21XcmFwcGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAog
ICAgIC8vIEZJWE1FIFN0b3AgdXNpbmcgMCBhcyBjb2RlQmxvY2tzLiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1MzIxCiAgICAgaml0LmVtaXRaZXJvVG9DYWxsRnJh
bWVIZWFkZXIoQ2FsbEZyYW1lU2xvdDo6Y29kZUJsb2NrKTsKICAgICBNYWNyb0Fzc2VtYmxlcjo6
RGF0YUxhYmVsUHRyIGNhbGxlZU1vdmVMb2NhdGlvbiA9IGppdC5tb3ZlV2l0aFBhdGNoKE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG51bGxwdHIpLCBHUFJJbmZvOjpub25QcmVzZXJ2ZWRO
b25SZXR1cm5HUFIpOwotICAgIGppdC5lbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIoR1BSSW5mbzo6
bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSLCBDYWxsRnJhbWVTbG90OjpjYWxsZWUpOworICAgIEND
YWxsSGVscGVyczo6QWRkcmVzcyBjYWxsZWVTbG90IHsgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAqIHNpemVvZihSZWdpc3RlcikgfTsKKyAgICBqaXQu
c3RvcmVQdHIoR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSLCBjYWxsZWVTbG90Lndp
dGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgaml0
LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6V2FzbVRhZyksIGNh
bGxlZVNsb3Qud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgogICAgIFZlY3RvcjxDb2Rl
TG9jYXRpb25EYXRhTGFiZWxQdHI8V2FzbUVudHJ5UHRyVGFnPj4qIGxpbmtlZENhbGxlZU1vdmUg
PSAmcmVzdWx0LT5jYWxsZWVNb3ZlTG9jYXRpb25zOwogICAgIGppdC5hZGRMaW5rVGFzayhbPV0g
KExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKICAgICAgICAgbGlua2VkQ2FsbGVlTW92ZS0+YXBw
ZW5kKGxpbmtCdWZmZXIubG9jYXRpb25PZjxXYXNtRW50cnlQdHJUYWc+KGNhbGxlZU1vdmVMb2Nh
dGlvbikpOwpAQCAtMTk2LDExICsyNTgsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVu
Y3Rpb24+IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QKICAg
ICBSZWdpc3RlckF0T2Zmc2V0TGlzdCByZWdpc3RlcnNUb1NwaWxsKHRvU2F2ZSwgUmVnaXN0ZXJB
dE9mZnNldExpc3Q6Ok9mZnNldEJhc2VUeXBlOjpGcmFtZVBvaW50ZXJCYXNlZCk7CiAgICAgcmVz
dWx0LT5lbnRyeXBvaW50LmNhbGxlZVNhdmVSZWdpc3RlcnMgPSByZWdpc3RlcnNUb1NwaWxsOwog
Ci0gICAgc2l6ZV90IHRvdGFsRnJhbWVTaXplID0gcmVnaXN0ZXJzVG9TcGlsbC5zaXplKCkgKiBz
aXplb2YoQ1BVUmVnaXN0ZXIpOworICAgIHNpemVfdCB0b3RhbEZyYW1lU2l6ZSA9IHJlZ2lzdGVy
c1RvU3BpbGwuc2l6ZU9mQXJlYUluQnl0ZXMoKTsKICAgICBDYWxsSW5mb3JtYXRpb24gd2FzbUZy
YW1lQ29udmVudGlvbiA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpLmNhbGxJbmZvcm1hdGlvbkZv
cihzaWduYXR1cmUpOwogICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IHNhdmVkUmVzdWx0UmVnaXN0
ZXJzID0gd2FzbUZyYW1lQ29udmVudGlvbi5jb21wdXRlUmVzdWx0c09mZnNldExpc3QoKTsKICAg
ICB0b3RhbEZyYW1lU2l6ZSArPSB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50
U3RhY2tTaXplSW5CeXRlczsKLSAgICB0b3RhbEZyYW1lU2l6ZSArPSBzYXZlZFJlc3VsdFJlZ2lz
dGVycy5zaXplKCkgKiBzaXplb2YoQ1BVUmVnaXN0ZXIpOworICAgIHRvdGFsRnJhbWVTaXplICs9
IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLnNpemVPZkFyZWFJbkJ5dGVzKCk7CiAKICAgICB0b3RhbEZy
YW1lU2l6ZSA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudEJ5dGVzKCks
IHRvdGFsRnJhbWVTaXplKTsKICAgICBqaXQuc3ViUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tMzIodG90YWxGcmFtZVNpemUpLCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0
ZXIpOwpAQCAtMjIyLDkgKzI4NCwxMiBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlv
bj4gY3JlYXRlSlNUb1dhc21XcmFwcGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogCiAgICAg
ICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBjYWxsZWVGcmFtZSA9IENDYWxsSGVscGVyczo6QWRk
cmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIDApOwogCi0gICAgICAg
IC8vIFdlJ3JlIGdvaW5nIHRvIHNldCB0aGUgcGlubmVkIHJlZ2lzdGVycyBhZnRlciB0aGlzLiBT
bwotICAgICAgICAvLyB3ZSBjYW4gdXNlIHRoaXMgYXMgYSBzY3JhdGNoIGZvciBub3cgc2luY2Ug
d2Ugc2F2ZWQgaXQgYWJvdmUuCi0gICAgICAgIEdQUlJlZyBzY3JhdGNoUmVnID0gcGlubmVkUmVn
cy5iYXNlTWVtb3J5UG9pbnRlcjsKKyAgICAgICAgSlNWYWx1ZVJlZ3Mgc2NyYXRjaEpTUiB7Cisj
aWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIHdhc21DYWxsaW5nQ29udmVudGlvbigp
LnByb2xvZ3VlU2NyYXRjaEdQUnNbMl0sCisjZW5kaWYKKyAgICAgICAgICAgIHdhc21DYWxsaW5n
Q29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMV0KKyAgICAgICAgfTsKIAogICAgICAg
ICBpZiAoIUNvbnRleHQ6OnVzZUZhc3RUTFMoKSkgewogICAgICAgICAgICAgaml0LmxvYWRQdHIo
Q0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU0NhbGxp
bmdDb252ZW50aW9uOjppbnN0YW5jZVN0YWNrT2Zmc2V0KSwgd2FzbUNvbnRleHRJbnN0YW5jZUdQ
Uik7CkBAIC0yMzcsMjIgKzMwMiwzNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlv
bj4gY3JlYXRlSlNUb1dhc21XcmFwcGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogICAgICAg
ICAgICAgVHlwZSB0eXBlID0gc2lnbmF0dXJlLmFyZ3VtZW50KGkpOwogICAgICAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzIGpzUGFyYW0oR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGpz
RnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5vZmZzZXRGcm9tRlAoKSk7CiAgICAgICAgICAgICBp
ZiAod2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0uaXNTdGFja0FyZ3VtZW50KCkpIHsKKyAg
ICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgYWRkciB7IGNhbGxlZUZyYW1lLndp
dGhPZmZzZXQod2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpIH07
CiAgICAgICAgICAgICAgICAgaWYgKHR5cGUuaXNJMzIoKSB8fCB0eXBlLmlzRjMyKCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgaml0LmxvYWQzMihqc1BhcmFtLCBzY3JhdGNoUmVnKTsKLSAgICAg
ICAgICAgICAgICAgICAgaml0LnN0b3JlMzIoc2NyYXRjaFJlZywgY2FsbGVlRnJhbWUud2l0aE9m
ZnNldCh3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkpOworICAg
ICAgICAgICAgICAgICAgICBqaXQubG9hZDMyKGpzUGFyYW0sIHNjcmF0Y2hKU1IucGF5bG9hZEdQ
UigpKTsKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlMzIoc2NyYXRjaEpTUi5wYXlsb2Fk
R1BSKCksIGFkZHIud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSk7CisjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoMCksIGFkZHIud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgogICAgICAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJh
bSwgc2NyYXRjaFJlZyk7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZTY0KHNjcmF0Y2hS
ZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0u
b2Zmc2V0RnJvbVNQKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShqc1Bh
cmFtLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoc2Ny
YXRjaEpTUiwgYWRkcik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICBpZiAodHlwZS5pc0kzMigpIHx8IHR5cGUuaXNGMzIoKSkKLSAgICAg
ICAgICAgICAgICAgICAgaml0LmxvYWQzMlRvUmVnKGpzUGFyYW0sIHdhc21GcmFtZUNvbnZlbnRp
b24ucGFyYW1zW2ldLnJlZygpKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgICAgIGppdC5sb2FkNjRUb1JlZyhqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFt
c1tpXS5yZWcoKSk7CisgICAgICAgICAgICAgICAgaWYgKHR5cGUuaXNGMzIoKSkKKyAgICAgICAg
ICAgICAgICAgICAgaml0LmxvYWRGbG9hdChqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBh
cmFtc1tpXS5mcHIoKSk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZS5pc0Y2NCgpKQor
ICAgICAgICAgICAgICAgICAgICBqaXQubG9hZERvdWJsZShqc1BhcmFtLCB3YXNtRnJhbWVDb252
ZW50aW9uLnBhcmFtc1tpXS5mcHIoKSk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZS5p
c0kzMigpKSB7CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkMzIoanNQYXJhbSwgd2FzbUZy
YW1lQ29udmVudGlvbi5wYXJhbXNbaV0uanNyKCkucGF5bG9hZEdQUigpKTsKKyNpZiBVU0UoSlNW
QUxVRTMyXzY0KQorICAgICAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMigwKSwgd2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0uanNyKCkudGFnR1BS
KCkpOworI2VuZGlmCisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAg
IGppdC5sb2FkVmFsdWUoanNQYXJhbSwgd2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0uanNy
KCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCisjaWYgIUNQVShBUk0pIC8v
IEFSTSBoYXMgbm8gcGlubmVkIHJlZ2lzdGVycyBmb3IgV2FzbSBNZW1vcnksIHNvIG5vIG5lZWQg
dG8gc2V0IHRoZW0gdXAKICAgICBpZiAoISFpbmZvLm1lbW9yeSkgewogICAgICAgICBHUFJSZWcg
YmFzZU1lbW9yeSA9IHBpbm5lZFJlZ3MuYmFzZU1lbW9yeVBvaW50ZXI7CiAgICAgICAgIEdQUlJl
ZyBzaXplID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1swXTsK
QEAgLTI2MywxNyArMzQwLDE4IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBj
cmVhdGVKU1RvV2FzbVdyYXBwZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAKICAgICAgICAg
R1BSUmVnIGN1cnJlbnRJbnN0YW5jZUdQUiA9IENvbnRleHQ6OnVzZUZhc3RUTFMoKSA/IGJhc2VN
ZW1vcnkgOiB3YXNtQ29udGV4dEluc3RhbmNlR1BSOwogICAgICAgICBpZiAoaXNBUk02NEUoKSkg
ewotICAgICAgICAgICAgaWYgKG1vZGUgIT0gV2FzbTo6TWVtb3J5TW9kZTo6U2lnbmFsaW5nKQor
ICAgICAgICAgICAgaWYgKG1vZGUgPT0gV2FzbTo6TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcp
CiAgICAgICAgICAgICAgICAgc2l6ZSA9IHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVn
aXN0ZXI7CiAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoY3Vy
cmVudEluc3RhbmNlR1BSLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHNDaGVj
a2luZ1NpemUoKSksIHNpemUpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG1v
ZGUgIT0gV2FzbTo6TWVtb3J5TW9kZTo6U2lnbmFsaW5nKQorICAgICAgICAgICAgaWYgKG1vZGUg
PT0gV2FzbTo6TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcpCiAgICAgICAgICAgICAgICAgaml0
LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGN1cnJlbnRJbnN0YW5jZUdQUiwgV2FzbTo6
SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKCkpLCBwaW5uZWRSZWdz
LmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyKTsKICAgICAgICAgfQogCiAgICAgICAgIGppdC5s
b2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhjdXJyZW50SW5zdGFuY2VHUFIsIFdhc206Oklu
c3RhbmNlOjpvZmZzZXRPZkNhY2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7CiAgICAgICAgIGpp
dC5jYWdlQ29uZGl0aW9uYWxseUFuZFVudGFnKEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJhc2VNZW1v
cnksIHNpemUsIHNjcmF0Y2gpOwogICAgIH0KKyNlbmRpZgogCiAgICAgQ0NhbGxIZWxwZXJzOjpD
YWxsIGNhbGwgPSBqaXQudGhyZWFkU2FmZVBhdGNoYWJsZU5lYXJDYWxsKCk7CiAgICAgdW5zaWdu
ZWQgZnVuY3Rpb25JbmRleFNwYWNlID0gZnVuY3Rpb25JbmRleCArIGluZm8uaW1wb3J0RnVuY3Rp
b25Db3VudCgpOwpAQCAtMjg2LDcgKzM2NCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1
bmN0aW9uPiBjcmVhdGVKU1RvV2FzbVdyYXBwZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAK
ICAgICBmb3IgKGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXQmIHJlZ0F0T2Zmc2V0IDogcmVnaXN0ZXJz
VG9TcGlsbCkgewogICAgICAgICBHUFJSZWcgcmVnID0gcmVnQXRPZmZzZXQucmVnKCkuZ3ByKCk7
Ci0gICAgICAgIEFTU0VSVChyZWcgIT0gR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAg
ICBBU1NFUlQoIUpTUkluZm86OnJldHVyblZhbHVlSlNSLnVzZXMocmVnKSk7CiAgICAgICAgIHB0
cmRpZmZfdCBvZmZzZXQgPSByZWdBdE9mZnNldC5vZmZzZXQoKTsKICAgICAgICAgaml0LmxvYWRQ
dHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBvZmZz
ZXQpLCByZWcpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dhc21Ub0pTLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pT
LmNwcAppbmRleCA3YjAxNDhiOTFkYzU4NDA3OTllMGJlNTVkZWUxYjNhYTc5Mjc1NGNmLi4yYThl
ODc1YjU3YjBmNzkyNjU4NTYxYzlmMzdiMDhkYjlhZjQ4OTczIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2FzbVRvSlMuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAi
Q0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiSlNXZWJBc3NlbWJseUluc3RhbmNlLmgiCiAjaW5j
bHVkZSAiTGlua0J1ZmZlci5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhD
YWxsLmgiCiAjaW5jbHVkZSAiVGh1bmtHZW5lcmF0b3JzLmgiCiAjaW5jbHVkZSAiV2FzbUNhbGxp
bmdDb252ZW50aW9uLmgiCiAjaW5jbHVkZSAiV2FzbUNvbnRleHRJbmxpbmVzLmgiCkBAIC02OCw3
ICs2OSw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+
LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgLy8gSWYgd2UgZXZlciBjaGFu
Z2UgdGhpcywgd2Ugd2lsbCBhbHNvIG5lZWQgdG8gY2hhbmdlIFdhc21CM0lSR2VuZXJhdG9yLgog
CiAgICAgLy8gQmVsb3csIHdlIGFzc3VtZSB0aGF0IHRoZSBKUyBjYWxsaW5nIGNvbnZlbnRpb24g
aXMgYWx3YXlzIG9uIHRoZSBzdGFjay4KLSAgICBBU1NFUlQoIWpzQ0MuZ3ByQXJncy5zaXplKCkp
OworICAgIEFTU0VSVCghanNDQy5qc3JBcmdzLnNpemUoKSk7CiAgICAgQVNTRVJUKCFqc0NDLmZw
ckFyZ3Muc2l6ZSgpKTsKIAogICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwpAQCAtODUs
MTQgKzg2LDIyIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJU
YWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgLy8gZm9yIHVzIGhlcmUu
CiAKICAgICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlBhcmFtZXRlcnMgPSBhcmdDb3VudCArIDE7
IC8vIFRoZXJlIGlzIGEgInRoaXMiIGFyZ3VtZW50LgotICAgIGNvbnN0IHVuc2lnbmVkIG51bWJl
ck9mUmVnc0ZvckNhbGwgPSBDYWxsRnJhbWU6OmhlYWRlclNpemVJblJlZ2lzdGVycyArIG51bWJl
ck9mUGFyYW1ldGVyczsKKyAgICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlJlZ3NGb3JDYWxsID0g
Q2FsbEZyYW1lOjpoZWFkZXJTaXplSW5SZWdpc3RlcnMgKyByb3VuZEFyZ3VtZW50Q291bnRUb0Fs
aWduRnJhbWUobnVtYmVyT2ZQYXJhbWV0ZXJzKTsKKyAgICBBU1NFUlQoIShudW1iZXJPZlJlZ3NG
b3JDYWxsICUgc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSkpOwogICAgIGNvbnN0IHVuc2lnbmVk
IG51bWJlck9mQnl0ZXNGb3JDYWxsID0gbnVtYmVyT2ZSZWdzRm9yQ2FsbCAqIHNpemVvZihSZWdp
c3RlcikgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQyk7Ci0gICAgY29uc3QgdW5zaWduZWQgc3Rh
Y2tPZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRCeXRlcygp
LCBzdGQ6Om1heDx1bnNpZ25lZD4obnVtYmVyT2ZCeXRlc0ZvckNhbGwsIHNhdmVkUmVzdWx0UmVn
aXN0ZXJzLnNpemUoKSAqIHNpemVvZihDUFVSZWdpc3RlcikpKTsKKyAgICBjb25zdCB1bnNpZ25l
ZCBudW1iZXJPZkJ5dGVzRm9yU2F2ZWRSZXN1bHRzID0gc2F2ZWRSZXN1bHRSZWdpc3RlcnMuc2l6
ZU9mQXJlYUluQnl0ZXMoKTsKKyAgICBjb25zdCB1bnNpZ25lZCBzdGFja09mZnNldCA9IFdURjo6
cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudEJ5dGVzKCksIHN0ZDo6bWF4KG51bWJl
ck9mQnl0ZXNGb3JDYWxsLCBudW1iZXJPZkJ5dGVzRm9yU2F2ZWRSZXN1bHRzKSk7CiAgICAgaml0
LnN1YlB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHN0YWNrT2Zmc2V0KSwgTWFjcm9B
c3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICBKSVQ6OkFkZHJlc3MgY2FsbGVl
RnJhbWUgPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRl
clJlZ2lzdGVyLCAtc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoQ2FsbGVyRnJhbWVBbmRQ
QykpKTsKIAogICAgIC8vIEZJWE1FIG1ha2UgdGhlc2UgbG9vcHMgd2hpY2ggc3dpdGNoIG9uIFNp
Z25hdHVyZSBpZiB0aGVyZSBhcmUgbWFueSBhcmd1bWVudHMgb24gdGhlIHN0YWNrLiBJdCdsbCBv
dGhlcndpc2UgYmUgaHVnZSBmb3IgaHVnZSBzaWduYXR1cmVzLiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1NTQ3CiAKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIGNv
bnN0ZXhwciBKU1ZhbHVlUmVncyBqc0FyZzEwIHsgR1BSSW5mbzo6YXJndW1lbnRHUFIwIH07Cisj
ZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGNvbnN0ZXhwciBKU1ZhbHVlUmVncyBqc0FyZzEw
IHsgR1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjphcmd1bWVudEdQUjAgfTsKKyNlbmRp
ZgorCiAgICAgLy8gRmlyc3QgZ28gdGhyb3VnaCB0aGUgaW50ZWdlciBwYXJhbWV0ZXJzLCBmcmVl
aW5nIHVwIHRoZWlyIHJlZ2lzdGVyIGZvciB1c2UgYWZ0ZXJ3YXJkcy4KICAgICB7CiAgICAgICAg
IHVuc2lnbmVkIG1hcnNoYWxsZWRHUFJzID0gMDsKQEAgLTExMSwyMSArMTIwLDIxIEBAIEV4cGVj
dGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVy
ZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOgog
ICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgogICAgICAgICAgICAgY2FzZSBUeXBlS2lu
ZDo6STY0OiB7Ci0gICAgICAgICAgICAgICAgR1BSUmVnIGdwclJlZzsKLSAgICAgICAgICAgICAg
ICBpZiAobWFyc2hhbGxlZEdQUnMgPCB3YXNtQ0MuZ3ByQXJncy5zaXplKCkpCi0gICAgICAgICAg
ICAgICAgICAgIGdwclJlZyA9IHdhc21DQy5ncHJBcmdzW21hcnNoYWxsZWRHUFJzXS5ncHIoKTsK
KyAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyBhcmdSZWc7CisgICAgICAgICAgICAgICAgaWYg
KG1hcnNoYWxsZWRHUFJzIDwgd2FzbUNDLmpzckFyZ3Muc2l6ZSgpKQorICAgICAgICAgICAgICAg
ICAgICBhcmdSZWcgPSB3YXNtQ0MuanNyQXJnc1ttYXJzaGFsbGVkR1BSc107CiAgICAgICAgICAg
ICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgc3BpbGxl
ZCBhbGwgYXJndW1lbnRzLCB0aGVzZSByZWdpc3RlcnMgYXJlIGF2YWlsYWJsZSBhcyBzY3JhdGNo
LgotICAgICAgICAgICAgICAgICAgICBncHJSZWcgPSBHUFJJbmZvOjphcmd1bWVudEdQUjA7Ci0g
ICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoSklUOjpBZGRyZXNzKEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyLCBmck9mZnNldCksIGdwclJlZyk7CisgICAgICAgICAgICAgICAgICAgIGFy
Z1JlZyA9IGpzQXJnMTA7CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoSklUOjpB
ZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBmck9mZnNldCksIGFyZ1JlZyk7CiAg
ICAgICAgICAgICAgICAgICAgIGZyT2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICsrbWFyc2hhbGxlZEdQUnM7CiAgICAgICAgICAg
ICAgICAgaWYgKGFyZ1R5cGUuaXNJMzIoKSkgewotICAgICAgICAgICAgICAgICAgICBqaXQuemVy
b0V4dGVuZDMyVG9Xb3JkKGdwclJlZywgZ3ByUmVnKTsgLy8gQ2xlYXIgbm9uLWludDMyIGFuZCBu
b24tdGFnIGJpdHMuCi0gICAgICAgICAgICAgICAgICAgIGppdC5ib3hJbnQzMihncHJSZWcsIEpT
VmFsdWVSZWdzKGdwclJlZyksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAgICAg
ICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoYXJnUmVnLnBheWxvYWRHUFIoKSwgYXJnUmVn
LnBheWxvYWRHUFIoKSk7IC8vIENsZWFyIG5vbi1pbnQzMiBhbmQgbm9uLXRhZyBiaXRzLgorICAg
ICAgICAgICAgICAgICAgICBqaXQuYm94SW50MzIoYXJnUmVnLnBheWxvYWRHUFIoKSwgYXJnUmVn
LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBqaXQuc3RvcmU2NChncHJSZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJh
bWVPZmZzZXQpKTsKKyAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShhcmdSZWcsIGNhbGxl
ZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsKICAgICAgICAgICAgICAgICBj
YWxsZWVGcmFtZU9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgfQpAQCAtMTQyLDYgKzE1MSw3IEBAIEV4cGVjdGVkPE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMo
Vk0mIHZtCiAgICAgfQogICAgIAogICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAv
LyBJbnRlZ2VyIHJlZ2lzdGVycyBoYXZlIGFscmVhZHkgYmVlbiBzcGlsbGVkLCB0aGVzZSBhcmUg
bm93IGF2YWlsYWJsZS4KICAgICAgICAgR1BSUmVnIGRvdWJsZUVuY29kZU9mZnNldEdQUlJlZyA9
IEdQUkluZm86OmFyZ3VtZW50R1BSMDsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2ggPSBHUFJJbmZv
Ojphcmd1bWVudEdQUjE7CkBAIC0xNTcsNiArMTY3LDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYg
dm0KICAgICAgICAgICAgICAgICBoYXNNYXRlcmlhbGl6ZWREb3VibGVFbmNvZGVPZmZzZXQgPSB0
cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9OworI2VuZGlmCiAKICAgICAgICAgdW5zaWdu
ZWQgbWFyc2hhbGxlZEdQUnMgPSAwOwogICAgICAgICB1bnNpZ25lZCBtYXJzaGFsbGVkRlBScyA9
IDA7CkBAIC0xNjUsMTAgKzE3NiwxNCBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8
V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogCiAgICAg
ICAgIGF1dG8gbWFyc2hhbGxGUFIgPSBbJl0gKEZQUlJlZyBmcHJSZWcpIHsKICAgICAgICAgICAg
IGppdC5wdXJpZnlOYU4oZnByUmVnKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAg
aml0Lm1vdmVEb3VibGVUbzY0KGZwclJlZywgc2NyYXRjaCk7CiAgICAgICAgICAgICBtYXRlcmlh
bGl6ZURvdWJsZUVuY29kZU9mZnNldChkb3VibGVFbmNvZGVPZmZzZXRHUFJSZWcpOwogICAgICAg
ICAgICAgaml0LmFkZDY0KGRvdWJsZUVuY29kZU9mZnNldEdQUlJlZywgc2NyYXRjaCk7CiAgICAg
ICAgICAgICBqaXQuc3RvcmU2NChzY3JhdGNoLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxl
ZUZyYW1lT2Zmc2V0KSk7CisjZWxzZQorICAgICAgICAgICAgaml0LnN0b3JlRG91YmxlKGZwclJl
ZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCkpOworI2VuZGlmCiAg
ICAgICAgICAgICBjYWxsZWVGcmFtZU9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOwogICAgICAg
ICAgICAgKyttYXJzaGFsbGVkRlBSczsKICAgICAgICAgfTsKQEAgLTE4Niw3ICsyMDEsNyBAQCBF
eHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0Zh
aWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgog
ICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OiB7CiAgICAgICAgICAgICAgICAgLy8gU2tp
cHBlZDogaGFuZGxlZCBhYm92ZS4KLSAgICAgICAgICAgICAgICBpZiAobWFyc2hhbGxlZEdQUnMg
Pj0gd2FzbUNDLmdwckFyZ3Muc2l6ZSgpKQorICAgICAgICAgICAgICAgIGlmIChtYXJzaGFsbGVk
R1BScyA+PSB3YXNtQ0MuanNyQXJncy5zaXplKCkpCiAgICAgICAgICAgICAgICAgICAgIGZyT2Zm
c2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CiAgICAgICAgICAgICAgICAgKyttYXJzaGFsbGVkR1BS
czsKICAgICAgICAgICAgICAgICBjYWxsZWVGcmFtZU9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIp
OwpAQCAtMTk1LDcgKzIxMCw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNt
RW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgICAg
ICBjYXNlIFR5cGVLaW5kOjpGMzI6IHsKICAgICAgICAgICAgICAgICBGUFJSZWcgZnByUmVnOwog
ICAgICAgICAgICAgICAgIGlmIChtYXJzaGFsbGVkRlBScyA8IHdhc21DQy5mcHJBcmdzLnNpemUo
KSkKLSAgICAgICAgICAgICAgICAgICAgZnByUmVnID0gd2FzbUNDLmZwckFyZ3NbbWFyc2hhbGxl
ZEZQUnNdLmZwcigpOworICAgICAgICAgICAgICAgICAgICBmcHJSZWcgPSB3YXNtQ0MuZnByQXJn
c1ttYXJzaGFsbGVkRlBSc107CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAg
ICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgc3BpbGxlZCBhbGwgYXJndW1lbnRzLCB0aGVzZSByZWdp
c3RlcnMgYXJlIGF2YWlsYWJsZSBhcyBzY3JhdGNoLgogICAgICAgICAgICAgICAgICAgICBmcHJS
ZWcgPSBGUFJJbmZvOjphcmd1bWVudEZQUjA7CkBAIC0yMDksNyArMjI0LDcgQEAgRXhwZWN0ZWQ8
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3
YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2NDogewogICAgICAg
ICAgICAgICAgIEZQUlJlZyBmcHJSZWc7CiAgICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRG
UFJzIDwgd2FzbUNDLmZwckFyZ3Muc2l6ZSgpKQotICAgICAgICAgICAgICAgICAgICBmcHJSZWcg
PSB3YXNtQ0MuZnByQXJnc1ttYXJzaGFsbGVkRlBSc10uZnByKCk7CisgICAgICAgICAgICAgICAg
ICAgIGZwclJlZyA9IHdhc21DQy5mcHJBcmdzW21hcnNoYWxsZWRGUFJzXTsKICAgICAgICAgICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgLy8gV2UndmUgYWxyZWFkeSBzcGlsbGVk
IGFsbCBhcmd1bWVudHMsIHRoZXNlIHJlZ2lzdGVycyBhcmUgYXZhaWxhYmxlIGFzIHNjcmF0Y2gu
CiAgICAgICAgICAgICAgICAgICAgIGZwclJlZyA9IEZQUkluZm86OmFyZ3VtZW50RlBSMDsKQEAg
LTIzMSwxMiArMjQ2LDE1IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50
cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgIHVuc2ln
bmVkIGNhbGxlZUZyYW1lT2Zmc2V0ID0gQ2FsbEZyYW1lU2xvdDo6Zmlyc3RBcmd1bWVudCAqIHN0
YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSk7CiAgICAgICAgIGZvciAodW5zaWduZWQg
YXJnTnVtID0gMDsgYXJnTnVtIDwgYXJnQ291bnQ7ICsrYXJnTnVtKSB7CiAgICAgICAgICAgICBp
ZiAoc2lnbmF0dXJlLmFyZ3VtZW50KGFyZ051bSkuaXNJNjQoKSkgewotICAgICAgICAgICAgICAg
IGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZShHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAg
ICAgICAgICAgICAgIGppdC5sb2FkNjQoY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFt
ZU9mZnNldCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Ci0gICAgICAgICAgICAgICAgaml0LnNl
dHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+KEdQUkluZm86
OmFyZ3VtZW50R1BSMCwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgICAgICAgICB1
c2luZyBPcGVyYXRpb24gPSBkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpOworICAg
ICAgICAgICAgICAgIGNvbnN0ZXhwciBHUFJSZWcgd2FzbUluc3RhbmNlR1BSID0gcHJlZmVycmVk
QXJndW1lbnRHUFI8T3BlcmF0aW9uLCAxPigpOworICAgICAgICAgICAgICAgIGNvbnN0ZXhwciBK
U1ZhbHVlUmVncyB2YWx1ZUpTUiA9IHByZWZlcnJlZEFyZ3VtZW50SlNSPE9wZXJhdGlvbiwgMj4o
KTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uod2FzbUluc3Rh
bmNlR1BSKTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGNhbGxlZUZyYW1lLndpdGhP
ZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpLCB2YWx1ZUpTUik7CisgICAgICAgICAgICAgICAgaml0
LnNldHVwQXJndW1lbnRzPE9wZXJhdGlvbj4od2FzbUluc3RhbmNlR1BSLCB2YWx1ZUpTUik7CiAg
ICAgICAgICAgICAgICAgYXV0byBjYWxsID0gaml0LmNhbGwoT3BlcmF0aW9uUHRyVGFnKTsKICAg
ICAgICAgICAgICAgICBleGNlcHRpb25DaGVja3MuYXBwZW5kKGppdC5lbWl0SnVtcElmRXhjZXB0
aW9uKHZtKSk7Ci0gICAgICAgICAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsKKyAgICAg
ICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgY2FsbGVl
RnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCkpOwogICAgICAgICAgICAgICAgIGpp
dC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKICAgICAgICAgICAg
ICAgICAgICAgbGlua0J1ZmZlci5saW5rKGNhbGwsIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRh
Zz4ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KSk7CiAgICAgICAgICAgICAgICAgfSk7CkBAIC0y
NDgsMTYgKzI2NiwyMiBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5
UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgIGppdC5sb2FkV2Fz
bUNvbnRleHRJbnN0YW5jZShHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIGppdC5sb2FkUHRy
KENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjphcmd1bWVudEdQUjAsIEluc3RhbmNlOjpv
ZmZzZXRPZk93bmVyKCkpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIGppdC5sb2FkUHRy
KENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjphcmd1bWVudEdQUjAsIEpTV2ViQXNzZW1i
bHlJbnN0YW5jZTo6b2Zmc2V0T2ZNb2R1bGUoKSksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0g
ICAgaml0LmVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihHUFJJbmZvOjphcmd1bWVudEdQUjAsIENh
bGxGcmFtZVNsb3Q6OmNhbGxlZSk7Ci0KLSAgICBHUFJSZWcgaW1wb3J0SlNDZWxsR1BSUmVnID0g
R1BSSW5mbzo6cmVnVDA7IC8vIENhbGxlZSBuZWVkcyB0byBiZSBpbiByZWdUMCBmb3Igc2xvdyBw
YXRoIGJlbG93LgorICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBjYWxsZWVTbG90IHsgR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAgKiBzaXplb2YoUmVn
aXN0ZXIpIH07CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgY2FsbGVl
U2xvdCk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgY2FsbGVlU2xvdC53aXRoT2Zmc2V0
KFRhZ09mZnNldCkpOworI2VuZGlmCiAKKyAgICAvLyBqc0FyZzEwIG1pZ2h0IG92ZXJsYXAgd2l0
aCByZWdUMCwgc28gc3RvcmUgJ3RoaXMnIGFyZ3VtZW50IGZpcnN0CisgICAgaml0LnN0b3JlVmFs
dWUoanNVbmRlZmluZWQoKSwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90Ojp0
aGlzQXJndW1lbnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSwganNBcmcx
MCk7CisgICAgY29uc3RleHByIEdQUlJlZyBpbXBvcnRKU0NlbGxHUFJSZWcgPSBHUFJJbmZvOjpy
ZWdUMDsgLy8gQ2FsbGVlIG5lZWRzIHRvIGJlIGluIHJlZ1QwIGZvciBzbG93IHBhdGggYmVsb3cu
CiAgICAgQVNTRVJUKCF3YXNtQ0MuY2FsbGVlU2F2ZVJlZ2lzdGVycy5nZXQoaW1wb3J0SlNDZWxs
R1BSUmVnKSk7CiAgICAgbWF0ZXJpYWxpemVJbXBvcnRKU0NlbGwoaml0LCBpbXBvcnRJbmRleCwg
aW1wb3J0SlNDZWxsR1BSUmVnKTsKLQotICAgIGppdC5zdG9yZTY0KGltcG9ydEpTQ2VsbEdQUlJl
ZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90OjpjYWxsZWUgKiBzdGF0aWNf
Y2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CisgICAgaml0LnN0b3JlUHRyKGltcG9ydEpT
Q2VsbEdQUlJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90OjpjYWxsZWUg
KiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CisjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVl
OjpDZWxsVGFnKSwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90OjpjYWxsZWUg
KiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgVGFnT2Zmc2V0KSk7CisjZW5k
aWYKICAgICBqaXQuc3RvcmUzMihKSVQ6OlRydXN0ZWRJbW0zMihudW1iZXJPZlBhcmFtZXRlcnMp
LCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnRJbmNs
dWRpbmdUaGlzICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSArIFBheWxvYWRP
ZmZzZXQpKTsKLSAgICBqaXQuc3RvcmU2NChKSVQ6OlRydXN0ZWRJbW02NChKU1ZhbHVlOjpWYWx1
ZVVuZGVmaW5lZCksIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoQ2FsbEZyYW1lU2xvdDo6dGhpc0Fy
Z3VtZW50ICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOwogCiAgICAgLy8g
RklYTUUgVGFpbCBjYWxsIGlmIHRoZSB3YXNtIHJldHVybiB0eXBlIGlzIHZvaWQgYW5kIG5vIHJl
Z2lzdGVycyB3ZXJlIHNwaWxsZWQuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjU0ODgKIApAQCAtMjgyLDExICszMDYsMTEgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYg
dm0KICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OiB7CiAgICAgICAgICAgICAvLyBGSVhNRTog
T3B0aW1pemUgSTY0IGV4dHJhY3Rpb24gZnJvbSBCaWdJbnQuCiAgICAgICAgICAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMDUzCi0gICAgICAgICAgICBH
UFJSZWcgZGVzdCA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmdwcigpOwotICAgICAgICAgICAg
aml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCk+KEdQUklu
Zm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIGRlc3QgPSB3YXNt
Q2FsbEluZm8ucmVzdWx0c1swXS5qc3IoKTsKKyAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50
czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9JNjQpPihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpT
Uik7CiAgICAgICAgICAgICBhdXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25QdHJUYWcpOwog
ICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1bXBJZkV4Y2VwdGlv
bih2bSkpOwotICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRl
c3QpOworICAgICAgICAgICAgaml0Lm1vdmVWYWx1ZVJlZ3MoSlNSSW5mbzo6cmV0dXJuVmFsdWVK
U1IsIGRlc3QpOwogCiAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soWz1dIChMaW5rQnVmZmVy
JiBsaW5rQnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKGNhbGwsIEZ1
bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQ29udmVydFRvSTY0KSk7CkBAIC0y
OTYsMTggKzMyMCwyMSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5
UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICBjYXNlIFR5
cGVLaW5kOjpJMzI6IHsKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZG9uZTsK
ICAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3Qgc2xvd1BhdGg7Ci0gICAgICAgICAg
ICBHUFJSZWcgZGVzdCA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmdwcigpOworICAgICAgICAg
ICAgSlNWYWx1ZVJlZ3MgZGVzdEpTUiA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmpzcigpOwog
Ci0gICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKEdQUklu
Zm86OnJldHVyblZhbHVlR1BSLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpKTsKLSAgICAgICAgICAg
IHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMihKU1ZhbHVlUmVncyhHUFJJbmZv
OjpyZXR1cm5WYWx1ZUdQUiksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycykpOwotICAgICAgICAgICAg
aml0Lnplcm9FeHRlbmQzMlRvV29yZChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7Cisg
ICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKEpTUkluZm86
OnJldHVyblZhbHVlSlNSLCBqaXQuc2NyYXRjaFJlZ2lzdGVyKCksIERvTm90SGF2ZVRhZ1JlZ2lz
dGVycykpOworICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdEludDMy
KEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpKTsKKyAgICAg
ICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IucGF5
bG9hZEdQUigpLCBkZXN0SlNSLnBheWxvYWRHUFIoKSk7CiAgICAgICAgICAgICBkb25lLmFwcGVu
ZChqaXQuanVtcCgpKTsKIAogICAgICAgICAgICAgc2xvd1BhdGgubGluaygmaml0KTsKLSAgICAg
ICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9JMzIp
PihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVu
dHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvSTMyKT4oSlNSSW5mbzo6cmV0dXJuVmFsdWVK
U1IpOwogICAgICAgICAgICAgYXV0byBjYWxsID0gaml0LmNhbGwoT3BlcmF0aW9uUHRyVGFnKTsK
ICAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRKdW1wSWZFeGNlcHRp
b24odm0pKTsKLSAgICAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBk
ZXN0KTsKKyAgICAgICAgICAgIGppdC5tb3ZlKEpTUkluZm86OnJldHVyblZhbHVlSlNSLnBheWxv
YWRHUFIoKSwgZGVzdEpTUi5wYXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisg
ICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSwgZGVzdEpT
Ui50YWdHUFIoKSk7CisjZW5kaWYKIAogICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKFs9XSAo
TGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewogICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubGlu
ayhjYWxsLCBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkNvbnZlcnRUb0kz
MikpOwpAQCAtMzE3LDI1ICszNDQsMjkgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVm
PFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjogewot
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBkb25lOwogICAgICAgICAgICAgRlBS
UmVnIGRlc3QgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5mcHIoKTsKIAotICAgICAgICAgICAg
YXV0byBub3RBTnVtYmVyID0gaml0LmJyYW5jaElmTm90TnVtYmVyKEdQUkluZm86OnJldHVyblZh
bHVlR1BSLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwotICAgICAgICAgICAgYXV0byBpc0RvdWJs
ZSA9IGppdC5icmFuY2hJZk5vdEludDMyKEpTVmFsdWVSZWdzKEdQUkluZm86OnJldHVyblZhbHVl
R1BSKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6
SnVtcExpc3QgZG9uZTsKKworICAgICAgICAgICAgYXV0byBub3RBTnVtYmVyID0gaml0LmJyYW5j
aElmTm90TnVtYmVyKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBqaXQuc2NyYXRjaFJlZ2lzdGVy
KCksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAgICBhdXRvIGlzRG91YmxlID0g
aml0LmJyYW5jaElmTm90SW50MzIoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIERvTm90SGF2ZVRh
Z1JlZ2lzdGVycyk7CiAgICAgICAgICAgICAvLyBXZSdyZSBhbiBpbnQzMgotICAgICAgICAgICAg
aml0LnNpZ25FeHRlbmQzMlRvUHRyKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUik7Ci0gICAgICAgICAgICBqaXQuY29udmVydEludDY0VG9GbG9hdChHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CisgICAgICAgICAgICBqaXQuY29udmVydEludDMy
VG9GbG9hdChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CiAgICAgICAgICAgICBkb25l
LmFwcGVuZChqaXQuanVtcCgpKTsKIAogICAgICAgICAgICAgaXNEb3VibGUubGluaygmaml0KTsK
KyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgaml0Lm1vdmUoSklUOjpUcnVzdGVkSW1t
NjQoSlNWYWx1ZTo6TnVtYmVyVGFnKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIyKTsKICAgICAg
ICAgICAgIGppdC5hZGQ2NChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUjIsIEdQUkluZm86OnJldHVy
blZhbHVlR1BSKTsKICAgICAgICAgICAgIGppdC5tb3ZlNjRUb0RvdWJsZShHUFJJbmZvOjpyZXR1
cm5WYWx1ZUdQUiwgZGVzdCk7CisjZWxzZQorICAgICAgICAgICAgaml0LnVuYm94RG91YmxlKEpT
UkluZm86OnJldHVyblZhbHVlSlNSLCBkZXN0KTsKKyNlbmRpZgogICAgICAgICAgICAgaml0LmNv
bnZlcnREb3VibGVUb0Zsb2F0KGRlc3QsIGRlc3QpOwogICAgICAgICAgICAgZG9uZS5hcHBlbmQo
aml0Lmp1bXAoKSk7Ci0KICAgICAgICAgICAgIG5vdEFOdW1iZXIubGluaygmaml0KTsKLSAgICAg
ICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9GMzIp
PihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisKKyAgICAgICAgICAgIGppdC5zZXR1cEFyZ3Vt
ZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9GMzIpPihKU1JJbmZvOjpyZXR1cm5WYWx1
ZUpTUik7CiAgICAgICAgICAgICBhdXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25QdHJUYWcp
OwogICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1bXBJZkV4Y2Vw
dGlvbih2bSkpOwogICAgICAgICAgICAgaml0Lm1vdmUoRlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIg
LCBkZXN0KTsKQEAgLTM0OCwyNCArMzc5LDI3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6
IHsKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZG9uZTsKICAgICAgICAgICAg
IEZQUlJlZyBkZXN0ID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uZnByKCk7CisgICAgICAgICAg
ICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CiAKLSAgICAgICAgICAgIGF1dG8gbm90QU51
bWJlciA9IGppdC5icmFuY2hJZk5vdE51bWJlcihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgRG9O
b3RIYXZlVGFnUmVnaXN0ZXJzKTsKLSAgICAgICAgICAgIGF1dG8gaXNEb3VibGUgPSBqaXQuYnJh
bmNoSWZOb3RJbnQzMihKU1ZhbHVlUmVncyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiksIERvTm90
SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAgICBhdXRvIG5vdEFOdW1iZXIgPSBqaXQuYnJh
bmNoSWZOb3ROdW1iZXIoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIGppdC5zY3JhdGNoUmVnaXN0
ZXIoKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgICAgIGF1dG8gaXNEb3VibGUg
PSBqaXQuYnJhbmNoSWZOb3RJbnQzMihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgRG9Ob3RIYXZl
VGFnUmVnaXN0ZXJzKTsKICAgICAgICAgICAgIC8vIFdlJ3JlIGFuIGludDMyCi0gICAgICAgICAg
ICBqaXQuc2lnbkV4dGVuZDMyVG9QdHIoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86
OnJldHVyblZhbHVlR1BSKTsKLSAgICAgICAgICAgIGppdC5jb252ZXJ0SW50NjRUb0RvdWJsZShH
UFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CisgICAgICAgICAgICBqaXQuY29udmVydElu
dDMyVG9Eb3VibGUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOwogICAgICAgICAgICAg
ZG9uZS5hcHBlbmQoaml0Lmp1bXAoKSk7CiAKICAgICAgICAgICAgIGlzRG91YmxlLmxpbmsoJmpp
dCk7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgICAgIGppdC5tb3ZlKEpJVDo6VHJ1c3Rl
ZEltbTY0KEpTVmFsdWU6Ok51bWJlclRhZyksIEdQUkluZm86OnJldHVyblZhbHVlR1BSMik7CiAg
ICAgICAgICAgICBqaXQuYWRkNjQoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIyLCBHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUik7CiAgICAgICAgICAgICBqaXQubW92ZTY0VG9Eb3VibGUoR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIsIGRlc3QpOworI2Vsc2UKKyAgICAgICAgICAgIGppdC51bmJveERvdWJs
ZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgZGVzdCk7CisjZW5kaWYKICAgICAgICAgICAgIGRv
bmUuYXBwZW5kKGppdC5qdW1wKCkpOwotCiAgICAgICAgICAgICBub3RBTnVtYmVyLmxpbmsoJmpp
dCk7Ci0gICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29u
dmVydFRvRjY0KT4oR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworCisgICAgICAgICAgICBqaXQu
c2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvRjY0KT4oSlNSSW5mbzo6
cmV0dXJuVmFsdWVKU1IpOwogICAgICAgICAgICAgYXV0byBjYWxsID0gaml0LmNhbGwoT3BlcmF0
aW9uUHRyVGFnKTsKICAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRK
dW1wSWZFeGNlcHRpb24odm0pKTsKICAgICAgICAgICAgIGppdC5tb3ZlKEZQUkluZm86OnJldHVy
blZhbHVlRlBSLCBkZXN0KTsKQEAgLTM3OSw3ICs0MTMsNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2Vt
YmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZN
JiB2bQogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6ICB7CiAgICAgICAgICAgICBpZiAoV2Fz
bTo6aXNGdW5jcmVmKHJldHVyblR5cGUpIHx8IFdhc206OmlzRXh0ZXJucmVmKHJldHVyblR5cGUp
KQotICAgICAgICAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCB3YXNt
Q2FsbEluZm8ucmVzdWx0c1swXS5ncHIoKSk7CisgICAgICAgICAgICAgICAgaml0Lm1vdmVWYWx1
ZVJlZ3MoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmpz
cigpKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAvLyBGb3IgdGhlIEphdmFT
Y3JpcHQgZW1iZWRkaW5nLCBpbXBvcnRzIHdpdGggdGhlc2UgdHlwZXMgaW4gdGhlaXIgc2lnbmF0
dXJlIHJldHVybiBhcmUgYSBXZWJBc3NlbWJseS5Nb2R1bGUgdmFsaWRhdGlvbiBlcnJvci4KICAg
ICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzkzLDEyICs0
MjcsMjkgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4s
IEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIGppdC5sb2FkV2Fz
bUNvbnRleHRJbnN0YW5jZSh3YXNtQ29udGV4dEluc3RhbmNlR1BSKTsKICAgICAgICAgfQogCi0g
ICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25JdGVyYXRlUmVzdWx0
cyk+KHdhc21Db250ZXh0SW5zdGFuY2VHUFIsICZzaWduYXR1cmUsIEdQUkluZm86OnJldHVyblZh
bHVlR1BSLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBDQ2FsbEhlbHBlcnM6
OmZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgY29uc3RleHByIEdQUlJlZyBzYXZlZFJl
c3VsdHNHUFIgPSBwcmVmZXJyZWRBcmd1bWVudEdQUjxkZWNsdHlwZShvcGVyYXRpb25JdGVyYXRl
UmVzdWx0cyksIDQ+KCk7CisgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0c0dQUik7CisgICAgICAgIGlmIGNvbnN0ZXhwciAobWF4
RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAgICBqaXQuc3ViUHRyKENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgQ0Nh
bGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIHN0YXRpY19hc3NlcnQo
bm9PdmVybGFwKHNhdmVkUmVzdWx0c0dQUiwgSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpKTsKKyAg
ICAgICAgQVNTRVJUKHdhc21Db250ZXh0SW5zdGFuY2VHUFIgIT0gc2F2ZWRSZXN1bHRzR1BSKTsK
KyAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkl0ZXJhdGVSZXN1
bHRzKT4od2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRy
KCZzaWduYXR1cmUpLCBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgc2F2ZWRSZXN1bHRzR1BSLCBD
Q2FsbEhlbHBlcnM6OmZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKICAgICAgICAgaml0LmNhbGxPcGVy
YXRpb24oRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25JdGVyYXRlUmVzdWx0
cykpOworICAgICAgICBpZiBjb25zdGV4cHIgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxs
KQorICAgICAgICAgICAgaml0LmFkZFB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihtYXhG
cmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVn
aXN0ZXIpOworCiAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRKdW1wSWZF
eGNlcHRpb24odm0pKTsKIAotICAgICAgICBmb3IgKFJlZ2lzdGVyQXRPZmZzZXQgbG9jYXRpb24g
OiBzYXZlZFJlc3VsdFJlZ2lzdGVycykKLSAgICAgICAgICAgIGppdC5sb2FkNjRUb1JlZyhDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgbG9j
YXRpb24ub2Zmc2V0KCkpLCBsb2NhdGlvbi5yZWcoKSk7CisgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBzaWduYXR1cmUucmV0dXJuQ291bnQoKTsgKytpKSB7CisgICAgICAgICAgICBW
YWx1ZUxvY2F0aW9uIGxvYyA9IHdhc21DYWxsSW5mby5yZXN1bHRzW2ldOworICAgICAgICAgICAg
aWYgKGxvYy5pc0dQUigpKSB7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAg
ICBBU1NFUlQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigp
KS0+b2Zmc2V0KCkgKyA0ID09IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnRh
Z0dQUigpKS0+b2Zmc2V0KCkpOworI2VuZGlmCisgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1
ZShDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rl
ciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zm
c2V0KCkpLCBsb2MuanNyKCkpOworICAgICAgICAgICAgfSBlbHNlIGlmIChsb2MuaXNGUFIoKSkK
KyAgICAgICAgICAgICAgICBqaXQubG9hZERvdWJsZShDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0Nh
bGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmlu
ZChsb2MuZnByKCkpLT5vZmZzZXQoKSksIGxvYy5mcHIoKSk7CisgICAgICAgIH0KICAgICB9CiAK
ICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKaW5kZXggODg5MTIwN2Rj
MTIwM2I1MTkxMzY0MTVmZDQwMzhjNWY3M2I5MGM5My4uZWViNjgzNGZkOGFkMzI2ZmYwMjNiMDFl
OWZiZTkwYWFjYmY4NmE4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKQEAgLTE1Nyw2ICsxNTcsOSBAQCBwdHJkaWZm
X3QgV2ViQXNzZW1ibHlGdW5jdGlvbjo6cHJldmlvdXNJbnN0YW5jZU9mZnNldCgpIGNvbnN0CiB7
CiAgICAgcHRyZGlmZl90IHJlc3VsdCA9IGNhbGxlZVNhdmVzKCkubnVtYmVyT2ZTZXRSZWdpc3Rl
cnMoKSAqIHNpemVvZihDUFVSZWdpc3Rlcik7CiAgICAgcmVzdWx0ID0gLXJlc3VsdCAtIHNpemVv
ZihDUFVSZWdpc3Rlcik7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBBU1NFUlQoIWNhbGxl
ZVNhdmVzKCkubnVtYmVyT2ZTZXRGUFJzKCkpOyAvLyBCZWNhdXNlIEZQUnMgYXJlIHdpZGVyIHRo
YW4gc2l6ZW9mKENQVVJlZ2lzdGVyKQorI2VuZGlmCiAjaWYgQVNTRVJUX0VOQUJMRUQKICAgICBw
dHJkaWZmX3QgbWluT2Zmc2V0ID0gMTsKICAgICBmb3IgKGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXQm
IHJlZ0F0T2Zmc2V0IDogdXNlZENhbGxlZVNhdmVSZWdpc3RlcnMoKSkgewpAQCAtMTg1LDE3ICsx
ODgsMTUgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5
RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICBjb25zdCBhdXRvJiBwaW5uZWRS
ZWdzID0gV2FzbTo6UGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKTsKICAgICBSZWdpc3RlckF0T2Zm
c2V0TGlzdCByZWdpc3RlcnNUb1NwaWxsID0gdXNlZENhbGxlZVNhdmVSZWdpc3RlcnMoKTsKIAot
ICAgIGF1dG8mIG1vZHVsZUluZm9ybWF0aW9uID0gaW5zdGFuY2UoKS0+aW5zdGFuY2UoKS5tb2R1
bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpOwotCiAgICAgY29uc3QgV2FzbTo6V2FzbUNhbGxpbmdD
b252ZW50aW9uJiB3YXNtQ0MgPSBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKTsKICAgICBX
YXNtOjpDYWxsSW5mb3JtYXRpb24gd2FzbUNhbGxJbmZvID0gd2FzbUNDLmNhbGxJbmZvcm1hdGlv
bkZvcihzaWduYXR1cmUpOwogICAgIFdhc206OkNhbGxJbmZvcm1hdGlvbiBqc0NhbGxJbmZvID0g
V2FzbTo6anNDYWxsaW5nQ29udmVudGlvbigpLmNhbGxJbmZvcm1hdGlvbkZvcihzaWduYXR1cmUs
IFdhc206OkNhbGxSb2xlOjpDYWxsZWUpOwogICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IHNhdmVk
UmVzdWx0UmVnaXN0ZXJzID0gd2FzbUNhbGxJbmZvLmNvbXB1dGVSZXN1bHRzT2Zmc2V0TGlzdCgp
OwogCi0gICAgdW5zaWduZWQgdG90YWxGcmFtZVNpemUgPSByZWdpc3RlcnNUb1NwaWxsLnNpemUo
KSAqIHNpemVvZihDUFVSZWdpc3Rlcik7CisgICAgdW5zaWduZWQgdG90YWxGcmFtZVNpemUgPSBy
ZWdpc3RlcnNUb1NwaWxsLnNpemVPZkFyZWFJbkJ5dGVzKCk7CiAgICAgdG90YWxGcmFtZVNpemUg
Kz0gc2l6ZW9mKENQVVJlZ2lzdGVyKTsgLy8gU2xvdCBmb3IgdGhlIFZNJ3MgcHJldmlvdXMgd2Fz
bSBpbnN0YW5jZS4KICAgICB0b3RhbEZyYW1lU2l6ZSArPSB3YXNtQ2FsbEluZm8uaGVhZGVyQW5k
QXJndW1lbnRTdGFja1NpemVJbkJ5dGVzOwotICAgIHRvdGFsRnJhbWVTaXplICs9IHNhdmVkUmVz
dWx0UmVnaXN0ZXJzLnNpemUoKSAqIHNpemVvZihDUFVSZWdpc3Rlcik7CisgICAgdG90YWxGcmFt
ZVNpemUgKz0gc2F2ZWRSZXN1bHRSZWdpc3RlcnMuc2l6ZU9mQXJlYUluQnl0ZXMoKTsKIAogICAg
IC8vIEZJWE1FOiBPcHRpbWl6ZSBXYXNtIGZ1bmN0aW9uIGNhbGwgZXZlbiBpZiBhcmd1bWVudHMg
aW5jbHVkZSBJNjQuCiAgICAgLy8gVGhpcyByZXF1aXJlcyBJNjQgZXh0cmFjdGlvbiBmcm9tIEJp
Z0ludC4KQEAgLTIxNSw5ICsyMTYsMTQgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQ
dHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAg
ICAgaml0LnN0b3JlUHRyKHJlZywgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyLCBvZmZzZXQpKTsKICAgICB9CiAKLSAgICBHUFJSZWcgc2NyYXRjaEdQUiA9
IFdhc206Ondhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMV07Ci0g
ICAgYm9vbCBzdGFja0xpbWl0R1BSSXNDbG9iYmVyZWQgPSBmYWxzZTsKKyAgICBKU1ZhbHVlUmVn
cyBzY3JhdGNoSlNSIHsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBXYXNtOjp3YXNt
Q2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzJdLAorI2VuZGlmCisgICAg
ICAgIFdhc206Ondhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMV0K
KyAgICB9OwogICAgIEdQUlJlZyBzdGFja0xpbWl0R1BSID0gV2FzbTo6d2FzbUNhbGxpbmdDb252
ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1swXTsKKyAgICBib29sIHN0YWNrTGltaXRHUFJJ
c0Nsb2JiZXJlZCA9IGZhbHNlOwogICAgIGppdC5sb2FkUHRyKHZtLmFkZHJlc3NPZlNvZnRTdGFj
a0xpbWl0KCksIHN0YWNrTGltaXRHUFIpOwogCiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBz
bG93UGF0aDsKQEAgLTIzNiw3ICsyNDIsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRy
eVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAg
ICAgICBqaXQuZW1pdE1hdGVyaWFsaXplVGFnQ2hlY2tSZWdpc3RlcnMoKTsKIAogICAgIC8vIExv
b3AgYmFja3dhcmRzIHNvIHdlIGNhbiB1c2UgdGhlIGZpcnN0IGZsb2F0aW5nIHBvaW50IGFyZ3Vt
ZW50IGFzIGEgc2NyYXRjaC4KLSAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IFdhc206Ondhc21DYWxs
aW5nQ29udmVudGlvbigpLmZwckFyZ3NbMF0uZnByKCk7CisgICAgRlBSUmVnIHNjcmF0Y2hGUFIg
PSBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5mcHJBcmdzWzBdOwogICAgIGZvciAodW5z
aWduZWQgaSA9IHNpZ25hdHVyZS5hcmd1bWVudENvdW50KCk7IGktLTspIHsKICAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzIGNhbGxlZUZyYW1lID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKE1h
Y3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgMCk7CiAgICAgICAgIENDYWxsSGVs
cGVyczo6QWRkcmVzcyBqc1BhcmFtKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBqc0NhbGxJ
bmZvLnBhcmFtc1tpXS5vZmZzZXRGcm9tRlAoKSk7CkBAIC0yNDUsMTIgKzI1MSwyMCBAQCBNYWNy
b0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anND
YWxsRW50cnlwb2ludFNsb3coKQogICAgICAgICBhdXRvIHR5cGUgPSBzaWduYXR1cmUuYXJndW1l
bnQoaSk7CiAgICAgICAgIHN3aXRjaCAodHlwZS5raW5kKSB7CiAgICAgICAgIGNhc2UgV2FzbTo6
VHlwZUtpbmQ6OkkzMjogewotICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNo
R1BSKTsKLSAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMihz
Y3JhdGNoR1BSKSk7Ci0gICAgICAgICAgICBpZiAoaXNTdGFjaykKLSAgICAgICAgICAgICAgICBq
aXQuc3RvcmUzMihzY3JhdGNoR1BSLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21DYWxsSW5m
by5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKHNjcmF0Y2hHUFIsIHdhc21DYWxsSW5mby5w
YXJhbXNbaV0uZ3ByKCkpOworICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShqc1BhcmFtLCBzY3Jh
dGNoSlNSKTsKKyAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQz
MihzY3JhdGNoSlNSKSk7CisgICAgICAgICAgICBpZiAoaXNTdGFjaykgeworICAgICAgICAgICAg
ICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBhZGRyIHsgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3
YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSB9OworICAgICAgICAgICAgICAg
IGppdC5zdG9yZTMyKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBhZGRyLndpdGhPZmZzZXQoUGF5
bG9hZE9mZnNldCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgaml0
LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMCksIGFkZHIud2l0aE9mZnNldChU
YWdPZmZzZXQpKTsKKyNlbmRpZgorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCB3YXNtQ2Fs
bEluZm8ucGFyYW1zW2ldLmpzcigpLnBheWxvYWRHUFIoKSk7CisjaWYgVVNFKEpTVkFMVUUzMl82
NCkKKyAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigw
KSwgd2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5qc3IoKS50YWdHUFIoKSk7CisjZW5kaWYKKyAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgV2Fz
bTo6VHlwZUtpbmQ6OlJlZjoKQEAgLTI1OSwyNyArMjczLDI3IEBAIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50
U2xvdygpCiAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkV4dGVybnJlZjogewogICAgICAg
ICAgICAgaWYgKCFXYXNtOjppc0V4dGVybnJlZih0eXBlKSkgewogICAgICAgICAgICAgICAgIC8v
IEVuc3VyZSB3ZSBoYXZlIGEgV0FTTSBleHBvcnRlZCBmdW5jdGlvbi4KLSAgICAgICAgICAgICAg
ICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOwotICAgICAgICAgICAgICAgIGF1dG8g
aXNOdWxsID0gaml0LmJyYW5jaElmTnVsbChzY3JhdGNoR1BSKTsKKyAgICAgICAgICAgICAgICBq
aXQubG9hZFZhbHVlKGpzUGFyYW0sIHNjcmF0Y2hKU1IpOworICAgICAgICAgICAgICAgIGF1dG8g
aXNOdWxsID0gaml0LmJyYW5jaElmTnVsbChzY3JhdGNoSlNSKTsKICAgICAgICAgICAgICAgICBp
ZiAoIXR5cGUuaXNOdWxsYWJsZSgpKQogICAgICAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBl
bmQoaXNOdWxsKTsKLSAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElm
Tm90Q2VsbChzY3JhdGNoR1BSKSk7CisgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGpp
dC5icmFuY2hJZk5vdENlbGwoc2NyYXRjaEpTUikpOwogCiAgICAgICAgICAgICAgICAgc3RhY2tM
aW1pdEdQUklzQ2xvYmJlcmVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBqaXQuZW1pdExvYWRT
dHJ1Y3R1cmUodm0sIHNjcmF0Y2hHUFIsIHNjcmF0Y2hHUFIpOwotICAgICAgICAgICAgICAgIGpp
dC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBTdHJ1Y3R1cmU6OmNs
YXNzSW5mb09mZnNldCgpKSwgc2NyYXRjaEdQUik7CisgICAgICAgICAgICAgICAgaml0LmVtaXRM
b2FkU3RydWN0dXJlKHZtLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgc2NyYXRjaEpTUi5wYXls
b2FkR1BSKCkpOworICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRk
cmVzcyhzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgU3RydWN0dXJlOjpjbGFzc0luZm9PZmZzZXQo
KSksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKIAogICAgICAgICAgICAgICAgIHN0YXRpY19h
c3NlcnQoc3RkOjppc19maW5hbDxXZWJBc3NlbWJseUZ1bmN0aW9uPjo6dmFsdWUsICJXZSBkbyBu
b3QgY2hlY2sgZm9yIHN1YnR5cGVzIGJlbG93Iik7CiAgICAgICAgICAgICAgICAgc3RhdGljX2Fz
c2VydChzdGQ6OmlzX2ZpbmFsPFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uPjo6dmFsdWUsICJX
ZSBkbyBub3QgY2hlY2sgZm9yIHN1YnR5cGVzIGJlbG93Iik7CiAKLSAgICAgICAgICAgICAgICBh
dXRvIGlzV2FzbUZ1bmN0aW9uID0gaml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6OkVxdWFsLCBz
Y3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoV2ViQXNzZW1ibHlGdW5jdGlv
bjo6aW5mbygpKSk7Ci0gICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hQ
dHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tUHRyKFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uOjppbmZvKCkpKSk7CisgICAgICAg
ICAgICAgICAgYXV0byBpc1dhc21GdW5jdGlvbiA9IGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJz
OjpFcXVhbCwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bVB0cihXZWJBc3NlbWJseUZ1bmN0aW9uOjppbmZvKCkpKTsKKyAgICAgICAgICAgICAgICBzbG93
UGF0aC5hcHBlbmQoaml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNo
SlNSLnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKFdlYkFzc2VtYmx5
V3JhcHBlckZ1bmN0aW9uOjppbmZvKCkpKSk7CiAKICAgICAgICAgICAgICAgICBpc1dhc21GdW5j
dGlvbi5saW5rKCZqaXQpOwogICAgICAgICAgICAgICAgIGlmIChXYXNtOjppc1JlZldpdGhUeXBl
SW5kZXgodHlwZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBz
Y3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFdlYkFzc2VtYmx5RnVuY3Rpb25CYXNlOjpvZmZzZXRPZlNp
Z25hdHVyZUluZGV4KCkpLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAgICAgICAgc2xvd1Bh
dGguYXBwZW5kKGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEdQ
UiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHR5cGUuaW5kZXgpKSk7CisgICAgICAgICAg
ICAgICAgICAgIGppdC5sb2FkUHRyKGpzUGFyYW0sIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsK
KyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNj
cmF0Y2hKU1IucGF5bG9hZEdQUigpLCBXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZTo6b2Zmc2V0T2ZT
aWduYXR1cmVJbmRleCgpKSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAg
ICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVx
dWFsLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRy
KHR5cGUuaW5kZXgpKSk7CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgaWYg
KHR5cGUuaXNOdWxsYWJsZSgpKQpAQCAtMjg3LDE1ICszMDEsMTUgQEAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9p
bnRTbG93KCkKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKGlzU3RhY2spIHsKLSAg
ICAgICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOworICAgICAgICAg
ICAgICAgIGppdC5sb2FkVmFsdWUoanNQYXJhbSwgc2NyYXRjaEpTUik7CiAgICAgICAgICAgICAg
ICAgaWYgKCF0eXBlLmlzTnVsbGFibGUoKSkKLSAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGgu
YXBwZW5kKGppdC5icmFuY2hJZk51bGwoc2NyYXRjaEdQUikpOwotICAgICAgICAgICAgICAgIGpp
dC5zdG9yZTY0KHNjcmF0Y2hHUFIsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZv
LnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkpOworICAgICAgICAgICAgICAgICAgICBzbG93UGF0
aC5hcHBlbmQoaml0LmJyYW5jaElmTnVsbChzY3JhdGNoSlNSKSk7CisgICAgICAgICAgICAgICAg
aml0LnN0b3JlVmFsdWUoc2NyYXRjaEpTUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2Fs
bEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSk7CiAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgIGF1dG8gZXh0ZXJuR1BSID0gd2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5n
cHIoKTsKLSAgICAgICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIGV4dGVybkdQUik7Cisg
ICAgICAgICAgICAgICAgYXV0byBleHRlcm5KU1IgPSB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmpz
cigpOworICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQYXJhbSwgZXh0ZXJuSlNSKTsK
ICAgICAgICAgICAgICAgICBpZiAoIXR5cGUuaXNOdWxsYWJsZSgpKQotICAgICAgICAgICAgICAg
ICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTnVsbChleHRlcm5HUFIpKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk51bGwoZXh0ZXJuSlNS
KSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMzAz
LDM1ICszMTcsNDIgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFz
c2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAgICAgY2FzZSBXYXNt
OjpUeXBlS2luZDo6RjY0OiB7CiAgICAgICAgICAgICBpZiAoIWlzU3RhY2spCiAgICAgICAgICAg
ICAgICAgc2NyYXRjaEZQUiA9IHdhc21DYWxsSW5mby5wYXJhbXNbaV0uZnByKCk7Ci0gICAgICAg
ICAgICBhdXRvIG1vdmVUb0Rlc3RpbmF0aW9uID0gWyZdICgpIHsKLSAgICAgICAgICAgICAgICBp
ZiAoaXNTdGFjaykgewotICAgICAgICAgICAgICAgICAgICBpZiAoc2lnbmF0dXJlLmFyZ3VtZW50
KGkpLmlzRjMyKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVGbG9hdChzY3Jh
dGNoRlBSLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0ub2Zm
c2V0RnJvbVNQKCkpKTsKLSAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
ICAgICAgICAgaml0LnN0b3JlRG91YmxlKHNjcmF0Y2hGUFIsIGNhbGxlZUZyYW1lLndpdGhPZmZz
ZXQod2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkpOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH07CisgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpzUGFyYW0s
IHNjcmF0Y2hKU1IpOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgICAgICBzbG93UGF0aC5h
cHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKHNjcmF0Y2hKU1IsIEludmFsaWRHUFJSZWcpKTsK
KyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICBzdGFja0xpbWl0R1BSSXNDbG9i
YmVyZWQgPSB0cnVlOworICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5v
dE51bWJlcihzY3JhdGNoSlNSLCBzdGFja0xpbWl0R1BSKSk7CisjZW5kaWYKKyAgICAgICAgICAg
IGF1dG8gaXNJbnQzMiA9IGppdC5icmFuY2hJZkludDMyKHNjcmF0Y2hKU1IpOwogCi0gICAgICAg
ICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOwotICAgICAgICAgICAgc2xvd1Bh
dGguYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihzY3JhdGNoR1BSKSk7Ci0gICAgICAgICAg
ICBhdXRvIGlzSW50MzIgPSBqaXQuYnJhbmNoSWZJbnQzMihzY3JhdGNoR1BSKTsKLQotICAgICAg
ICAgICAgaml0LnVuYm94RG91YmxlKHNjcmF0Y2hHUFIsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIp
OworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgICAgICBqaXQudW5ib3hEb3VibGUoc2NyYXRj
aEpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBzY3JhdGNoRlBSKTsK
KyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICBqaXQudW5ib3hEb3VibGUoc2Ny
YXRjaEpTUiwgc2NyYXRjaEZQUik7CisjZW5kaWYKICAgICAgICAgICAgIGlmIChzaWduYXR1cmUu
YXJndW1lbnQoaSkuaXNGMzIoKSkKICAgICAgICAgICAgICAgICBqaXQuY29udmVydERvdWJsZVRv
RmxvYXQoc2NyYXRjaEZQUiwgc2NyYXRjaEZQUik7Ci0gICAgICAgICAgICBtb3ZlVG9EZXN0aW5h
dGlvbigpOwogICAgICAgICAgICAgYXV0byBkb25lID0gaml0Lmp1bXAoKTsKIAogICAgICAgICAg
ICAgaXNJbnQzMi5saW5rKCZqaXQpOwogICAgICAgICAgICAgaWYgKHNpZ25hdHVyZS5hcmd1bWVu
dChpKS5pc0YzMigpKSB7Ci0gICAgICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRmxvYXQo
c2NyYXRjaEdQUiwgc2NyYXRjaEZQUik7Ci0gICAgICAgICAgICAgICAgbW92ZVRvRGVzdGluYXRp
b24oKTsKKyAgICAgICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9GbG9hdChzY3JhdGNoSlNS
LnBheWxvYWRHUFIoKSwgc2NyYXRjaEZQUik7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShzY3JhdGNoR1BSLCBzY3JhdGNoRlBS
KTsKLSAgICAgICAgICAgICAgICBtb3ZlVG9EZXN0aW5hdGlvbigpOworICAgICAgICAgICAgICAg
IGppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgc2NyYXRj
aEZQUik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBkb25lLmxpbmsoJmppdCk7CiAKKyAg
ICAgICAgICAgIGRvbmUubGluaygmaml0KTsKKyAgICAgICAgICAgIGlmIChpc1N0YWNrKSB7Cisg
ICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGFkZHIgeyBjYWxsZWVGcmFtZS53
aXRoT2Zmc2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpIH07CisgICAg
ICAgICAgICAgICAgaWYgKHNpZ25hdHVyZS5hcmd1bWVudChpKS5pc0YzMigpKSB7CisgICAgICAg
ICAgICAgICAgICAgIGppdC5zdG9yZUZsb2F0KHNjcmF0Y2hGUFIsIGFkZHIud2l0aE9mZnNldChQ
YXlsb2FkT2Zmc2V0KSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICAg
ICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMCksIGFkZHIud2l0aE9m
ZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgICAgICAgICBqaXQuc3RvcmVEb3VibGUoc2NyYXRjaEZQUiwgYWRkcik7CisgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgpA
QCAtMzQyLDQyICszNjMsNDQgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+
IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAvLyBBdCB0
aGlzIHBvaW50LCB3ZSdyZSBjb21taXR0ZWQgdG8gZG9pbmcgYSBmYXN0IGNhbGwuCiAKICAgICBp
ZiAoV2FzbTo6Q29udGV4dDo6dXNlRmFzdFRMUygpKSAKLSAgICAgICAgaml0LmxvYWRXYXNtQ29u
dGV4dEluc3RhbmNlKHNjcmF0Y2hHUFIpOworICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5z
dGFuY2Uoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOwogICAgIGVsc2UKLSAgICAgICAgaml0Lmxv
YWRQdHIodm0ud2FzbUNvbnRleHQucG9pbnRlclRvSW5zdGFuY2UoKSwgc2NyYXRjaEdQUik7Cisg
ICAgICAgIGppdC5sb2FkUHRyKHZtLndhc21Db250ZXh0LnBvaW50ZXJUb0luc3RhbmNlKCksIHNj
cmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKICAgICBwdHJkaWZmX3QgcHJldmlvdXNJbnN0YW5jZU9m
ZnNldCA9IHRoaXMtPnByZXZpb3VzSW5zdGFuY2VPZmZzZXQoKTsKLSAgICBqaXQuc3RvcmVQdHIo
c2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lz
dGVyLCBwcmV2aW91c0luc3RhbmNlT2Zmc2V0KSk7CisgICAgaml0LnN0b3JlUHRyKHNjcmF0Y2hK
U1IucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1l
UmVnaXN0ZXIsIHByZXZpb3VzSW5zdGFuY2VPZmZzZXQpKTsKIAotICAgIGppdC5tb3ZlKENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbVB0cigmaW5zdGFuY2UoKS0+aW5zdGFuY2UoKSksIHNjcmF0Y2hH
UFIpOworICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigmaW5zdGFuY2Uo
KS0+aW5zdGFuY2UoKSksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKICAgICBpZiAoV2FzbTo6
Q29udGV4dDo6dXNlRmFzdFRMUygpKSAKLSAgICAgICAgaml0LnN0b3JlV2FzbUNvbnRleHRJbnN0
YW5jZShzY3JhdGNoR1BSKTsKKyAgICAgICAgaml0LnN0b3JlV2FzbUNvbnRleHRJbnN0YW5jZShz
Y3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGppdC5tb3ZlKHNj
cmF0Y2hHUFIsIHBpbm5lZFJlZ3Mud2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXIpOwotICAgICAg
ICBqaXQuc3RvcmVQdHIoc2NyYXRjaEdQUiwgdm0ud2FzbUNvbnRleHQucG9pbnRlclRvSW5zdGFu
Y2UoKSk7CisgICAgICAgIGppdC5tb3ZlKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBwaW5uZWRS
ZWdzLndhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyKTsKKyAgICAgICAgaml0LnN0b3JlUHRyKHNj
cmF0Y2hKU1IucGF5bG9hZEdQUigpLCB2bS53YXNtQ29udGV4dC5wb2ludGVyVG9JbnN0YW5jZSgp
KTsKICAgICB9CiAgICAgaWYgKHN0YWNrTGltaXRHUFJJc0Nsb2JiZXJlZCkKICAgICAgICAgaml0
LmxvYWRQdHIodm0uYWRkcmVzc09mU29mdFN0YWNrTGltaXQoKSwgc3RhY2tMaW1pdEdQUik7Ci0g
ICAgaml0LnN0b3JlUHRyKHN0YWNrTGltaXRHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3Jh
dGNoR1BSLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRTdGFja0xpbWl0KCkpKTsKKyAg
ICBqaXQuc3RvcmVQdHIoc3RhY2tMaW1pdEdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0
Y2hKU1IucGF5bG9hZEdQUigpLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRTdGFja0xp
bWl0KCkpKTsKIAotICAgIGlmICghIW1vZHVsZUluZm9ybWF0aW9uLm1lbW9yeSkgeworI2lmICFD
UFUoQVJNKSAvLyBBUk0gaGFzIG5vIHBpbm5lZCByZWdpc3RlcnMgZm9yIFdhc20gTWVtb3J5LCBz
byBubyBuZWVkIHRvIHNldCB0aGVtIHVwCisgICAgaWYgKCEhaW5zdGFuY2UoKS0+aW5zdGFuY2Uo
KS5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpLm1lbW9yeSkgewogICAgICAgICBHUFJSZWcg
YmFzZU1lbW9yeSA9IHBpbm5lZFJlZ3MuYmFzZU1lbW9yeVBvaW50ZXI7CiAgICAgICAgIEdQUlJl
ZyBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUgPSBJbnZhbGlkR1BSUmVnOwogICAgICAgICBh
dXRvIG1vZGUgPSBpbnN0YW5jZSgpLT5tZW1vcnlNb2RlKCk7CiAKICAgICAgICAgaWYgKGlzQVJN
NjRFKCkpIHsKLSAgICAgICAgICAgIGlmIChtb2RlICE9IFdhc206Ok1lbW9yeU1vZGU6OlNpZ25h
bGluZykKKyAgICAgICAgICAgIGlmIChtb2RlID09IFdhc206Ok1lbW9yeU1vZGU6OkJvdW5kc0No
ZWNraW5nKQogICAgICAgICAgICAgICAgIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSA9IHBp
bm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXI7CiAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgc2NyYXRjaE9yQm91bmRzQ2hlY2tpbmdTaXplID0gc3RhY2tMaW1pdEdQ
UjsKLSAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNo
R1BSLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHNDaGVja2luZ1NpemUoKSks
IHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSk7CisgICAgICAgICAgICBqaXQubG9hZFB0cihD
Q2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIFdhc206Okluc3Rh
bmNlOjpvZmZzZXRPZkNhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSgpKSwgc2NyYXRjaE9yQm91bmRz
Q2hlY2tpbmdTaXplKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChtb2RlICE9
IFdhc206Ok1lbW9yeU1vZGU6OlNpZ25hbGluZykKLSAgICAgICAgICAgICAgICBqaXQubG9hZFB0
cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNl
dE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKCkpLCBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5n
U2l6ZVJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGlmIChtb2RlID09IFdhc206Ok1lbW9yeU1vZGU6
OkJvdW5kc0NoZWNraW5nKQorICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVy
czo6QWRkcmVzcyhzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgV2FzbTo6SW5zdGFuY2U6Om9mZnNl
dE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKCkpLCBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5n
U2l6ZVJlZ2lzdGVyKTsKICAgICAgICAgfQogCi0gICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVs
cGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRN
ZW1vcnkoKSksIGJhc2VNZW1vcnkpOwotICAgICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHlBbmRV
bnRhZyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5LCBzY3JhdGNoT3JCb3VuZHNDaGVj
a2luZ1NpemUsIHNjcmF0Y2hHUFIpOworICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6
OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIFdhc206Okluc3RhbmNlOjpvZmZzZXRP
ZkNhY2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7CisgICAgICAgIGppdC5jYWdlQ29uZGl0aW9u
YWxseUFuZFVudGFnKEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJhc2VNZW1vcnksIHNjcmF0Y2hPckJv
dW5kc0NoZWNraW5nU2l6ZSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOwogICAgIH0KKyNlbmRp
ZgogCiAgICAgLy8gV2UgdXNlIHRoaXMgY2FsbGVlIHRvIGluZGljYXRlIGhvdyB0byB1bndpbmQg
cGFzdCB0aGVzZSB0eXBlcyBvZiBmcmFtZXM6CiAgICAgLy8gMS4gV2UgbmVlZCB0byBrbm93IHdo
ZXJlIHRvIGdldCBjYWxsZWUgc2F2ZXMuCkBAIC0zODksOCArNDEyLDggQEAgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5
cG9pbnRTbG93KCkKICAgICAvLyBGSVhNRTogQ3VycmVudGx5IHdlIGp1c3QgZG8gYW4gaW5kaXJl
Y3QganVtcC4gQnV0IHdlIHNob3VsZCB0ZWFjaCB0aGUgTW9kdWxlCiAgICAgLy8gaG93IHRvIHJl
cGF0Y2ggdXM6CiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5NjU3MAotICAgIGppdC5sb2FkUHRyKGVudHJ5cG9pbnRMb2FkTG9jYXRpb24oKSwgc2NyYXRj
aEdQUik7Ci0gICAgaml0LmNhbGwoc2NyYXRjaEdQUiwgV2FzbUVudHJ5UHRyVGFnKTsKKyAgICBq
aXQubG9hZFB0cihlbnRyeXBvaW50TG9hZExvY2F0aW9uKCksIHNjcmF0Y2hKU1IucGF5bG9hZEdQ
UigpKTsKKyAgICBqaXQuY2FsbChzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgV2FzbUVudHJ5UHRy
VGFnKTsKIAogICAgIG1hcnNoYWxsSlNSZXN1bHQoaml0LCBzaWduYXR1cmUsIHdhc21DYWxsSW5m
bywgc2F2ZWRSZXN1bHRSZWdpc3RlcnMpOwogCkBAIC00MjAsNyArNDQzLDcgQEAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVu
dHJ5cG9pbnRTbG93KCkKICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIo
dGhpcyksIEdQUkluZm86OnJlZ1QwKTsKICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsK
ICNpZiBDUFUoQVJNNjRFKQotICAgIGppdC51bnRhZ1JldHVybkFkZHJlc3Moc2NyYXRjaEdQUik7
CisgICAgaml0LnVudGFnUmV0dXJuQWRkcmVzcyhzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAj
ZW5kaWYKICAgICBhdXRvIGp1bXBUb0hvc3RDYWxsVGh1bmsgPSBqaXQuanVtcCgpOwogCkBAIC00
MjgsNyArNDUxLDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFz
c2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICBpZiAoVU5MSUtFTFko
bGlua0J1ZmZlci5kaWRGYWlsVG9BbGxvY2F0ZSgpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKLSAgICBsaW5rQnVmZmVyLmxpbmsoanVtcFRvSG9zdENhbGxUaHVuaywgQ29kZUxvY2F0aW9u
TGFiZWw8SlNFbnRyeVB0clRhZz4oZXhlY3V0YWJsZSgpLT5lbnRyeXBvaW50Rm9yKENvZGVGb3JD
YWxsLCBNdXN0Q2hlY2tBcml0eSkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOworICAgIGxpbmtCdWZm
ZXIubGluayhqdW1wVG9Ib3N0Q2FsbFRodW5rLCBDb2RlTG9jYXRpb25MYWJlbDxKU0VudHJ5UHRy
VGFnPihleGVjdXRhYmxlKCktPmVudHJ5cG9pbnRGb3IoQ29kZUZvckNhbGwsIE11c3RDaGVja0Fy
aXR5KSkpOwogICAgIG1fanNDYWxsRW50cnlwb2ludCA9IEZJTkFMSVpFX1dBU01fQ09ERShsaW5r
QnVmZmVyLCBXYXNtRW50cnlQdHJUYWcsICJKUy0+V2FzbSBJQyIpOwogICAgIHJldHVybiBtX2pz
Q2FsbEVudHJ5cG9pbnQuY29kZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbENvbnN0cnVjdG9yLmNwcAppbmRl
eCA0OWVlOGI0NjEwNzA3M2I4YWMzZWQ4ZTYwY2FjNTJmNmFhMWVlM2ZiLi45YWQ1OTQ4ZjIwZTBm
M2FiNjYzMjRiMTU2MDFjN2I2NmYxYzc3NDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbENvbnN0cnVjdG9yLmNw
cApAQCAtMTU4LDcgKzE1OCw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RK
U1dlYkFzc2VtYmx5R2xvYmFsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgUmVmPFdh
c206Okdsb2JhbD4gd2FzbUdsb2JhbCA9IFdhc206Okdsb2JhbDo6Y3JlYXRlKHR5cGUsIG11dGFi
aWxpdHksIGluaXRpYWxWYWx1ZSk7CiAgICAgSlNXZWJBc3NlbWJseUdsb2JhbCoganNXZWJBc3Nl
bWJseUdsb2JhbCA9IEpTV2ViQXNzZW1ibHlHbG9iYWw6OnRyeUNyZWF0ZShnbG9iYWxPYmplY3Qs
IHZtLCB3ZWJBc3NlbWJseUdsb2JhbFN0cnVjdHVyZSwgV1RGTW92ZSh3YXNtR2xvYmFsKSk7CiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOwotICAgIGVuc3VyZVN0aWxs
QWxpdmVIZXJlKGJpdHdpc2VfY2FzdDx2b2lkKj4oaW5pdGlhbFZhbHVlKSk7IC8vIEVuc3VyZSB0
aGlzIGlzIGtlcHQgYWxpdmUgd2hpbGUgY3JlYXRpbmcgSlNXZWJBc3NlbWJseUdsb2JhbC4KKyAg
ICBlbnN1cmVTdGlsbEFsaXZlSGVyZShpbml0aWFsVmFsdWUpOyAvLyBFbnN1cmUgdGhpcyBpcyBr
ZXB0IGFsaXZlIHdoaWxlIGNyZWF0aW5nIEpTV2ViQXNzZW1ibHlHbG9iYWwuCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1dlYkFzc2VtYmx5R2xvYmFsKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQu
Y3BwCmluZGV4IDI1ZTA4OWZhMjA3MWIzZjQ3ZjQ1OWVjNjM2ODE4ZWJkYjExM2E5OWMuLmUyOTBh
MzMwMTY1MjQzODEyYzk0ZDE3MmEyMzI4YmY1OGUzOTU4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAK
QEAgLTU1NCw3ICs1NTQsNyBAQCB2b2lkIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjppbml0aWFs
aXplRXhwb3J0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgICAgICAgICAgICAg
IEpTV2ViQXNzZW1ibHlHbG9iYWwqIGdsb2JhbFZhbHVlID0gSlNXZWJBc3NlbWJseUdsb2JhbDo6
dHJ5Q3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlHbG9i
YWxTdHJ1Y3R1cmUoKSwgV1RGTW92ZShnbG9iYWxSZWYpKTsKICAgICAgICAgICAgICAgICBzY29w
ZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogICAgICAgICAgICAgICAgIG1faW5zdGFuY2UtPmxpbmtH
bG9iYWwodm0sIGdsb2JhbEluZGV4LCBnbG9iYWxWYWx1ZSk7Ci0gICAgICAgICAgICAgICAgZW5z
dXJlU3RpbGxBbGl2ZUhlcmUoYml0d2lzZV9jYXN0PHZvaWQqPihpbml0aWFsQml0cykpOyAvLyBF
bnN1cmUgdGhpcyBpcyBrZXB0IGFsaXZlIHdoaWxlIGNyZWF0aW5nIEpTV2ViQXNzZW1ibHlHbG9i
YWwuCisgICAgICAgICAgICAgICAgZW5zdXJlU3RpbGxBbGl2ZUhlcmUoaW5pdGlhbEJpdHMpOyAv
LyBFbnN1cmUgdGhpcyBpcyBrZXB0IGFsaXZlIHdoaWxlIGNyZWF0aW5nIEpTV2ViQXNzZW1ibHlH
bG9iYWwuCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAppbmRleCA0MTEzNTRmNmMxMWY5NDFkNzNkMzVjNjJh
YWRkMGRhNzNlYzRhNWQzLi5iMTQ3MGQ2ZDgyOTM1N2I5MjdmNzdlM2U5OTBhOWFlMTA5MmQyNWE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKQEAgLTU4NSwxMiArNTg1LDEyIEBACiAjZW5kaWYK
IAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0vKiBEaXNhYmxlIFdlYkFzc2VtYmx5IG9uIGFsbCAz
MmJpdCBwbGF0Zm9ybXMuIEl0cyBMTEludCB0aWVyIGNvdWxkCi0gKiB3b3JrIG9uIHRoZW0sIGJ1
dCBzdGlsbCBuZWVkcyBzb21lIGZpbmFsIHRvdWNoZXMuICovCisjaWYgIUNQVShBUk0pCiAjdW5k
ZWYgRU5BQkxFX1dFQkFTU0VNQkxZCiAjZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWSAwCiAjdW5k
ZWYgRU5BQkxFX1dFQkFTU0VNQkxZX0IzSklUCiAjZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWV9C
M0pJVCAwCisjZW5kaWYKICNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShNSVBTKSkgJiYgT1Mo
TElOVVgpCiAvKiBPbiBBUk12NyBhbmQgTUlQUyBvbiBMaW51eCB0aGUgSklUIGlzIGVuYWJsZWQg
dW5sZXNzIGV4cGxpY2l0bHkgZGlzYWJsZWQuICovCiAjaWYgIWRlZmluZWQoRU5BQkxFX0pJVCkK
QEAgLTcwNiw3ICs3MDYsNyBAQAogI2RlZmluZSBFTkFCTEVfU0FNUExJTkdfUFJPRklMRVIgMQog
I2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIEhBVkUoTUFDSElORV9DT05URVhU
KQorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgSEFWRShNQUNISU5FX0NPTlRFWFQpICYmIENQ
VShBRERSRVNTNjQpCiAjZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZ
IDEKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggNzE3OWU5MzdjM2QwYTE5MGRlNmIwMGIzOWI1OGY2NDI4MDljMTAyYi4uNTg2YjFi
ZmJkNDM0MDMzYzEzZjI3MDQ0Njg1MWE4YjA0MzNkYWRlOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAzLTMw
ICBYYW4gTMOzcGV6ICA8eGFuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0pTQ10gRW5hYmxlIFdh
c21MTEludCBvbiBBUk12NworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjIxMjYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBTY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzOiBhbGxvdyB0byBydW4gdGhl
IHdhc20gdGVzdHMgb24KKyAgICAgICAgYXJtdjcgZXZlbiB3aXRob3V0IGppdCBzdXBwb3J0IChm
b3Igbm93KS4KKwogMjAyMi0wMy0yOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIERvbid0IGNyZWF0ZSBkaXJlY3RvcmllcyBvbiBpT1MgaWYg
d2UgYXJlIG9ubHkgdXNpbmcgZXBoZW1lcmFsIHN0b3JhZ2VzCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVz
cy10ZXN0cwppbmRleCA5MTY2NThiMWEyNWE2OTEwMGY5NWU4MmRhOTY1ZmJlZGQwYmFjYjU4Li4y
NmMyMTJjZjVjYjFmYjQ2NGY2YmM0YzJjNDZhY2M5Yzc5NTkxNmI1IDEwMDc1NQotLS0gYS9Ub29s
cy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWpz
Yy1zdHJlc3MtdGVzdHMKQEAgLTU4Miw5ICs1ODIsMTUgQEAgZGVmIGRldGVybWluZU9TCiAgICAg
ZW5kCiBlbmQKIAorZGVmIGlzRlRMRW5hYmxlZAorICAgICRqaXRUZXN0cyAmJiAkaXNGVExQbGF0
Zm9ybQorZW5kCisKICRob3N0T1MgPSBkZXRlcm1pbmVPUyB1bmxlc3MgJGhvc3RPUwogJGFyY2hp
dGVjdHVyZSA9IGRldGVybWluZUFyY2hpdGVjdHVyZSB1bmxlc3MgJGFyY2hpdGVjdHVyZQogJGlz
RlRMUGxhdGZvcm0gPSAhKCRhcmNoaXRlY3R1cmUgPT0gIng4NiIgfHwgJGFyY2hpdGVjdHVyZSA9
PSAiYXJtIiB8fCAkYXJjaGl0ZWN0dXJlID09ICJtaXBzIiB8fCAkYXJjaGl0ZWN0dXJlID09ICJy
aXNjdjY0IiB8fCAkaG9zdE9TID09ICJ3aW5kb3dzIiB8fCAkaG9zdE9TID09ICJwbGF5c3RhdGlv
biIpCisjIFNwZWNpYWwgY2FzZSBhcm12Nywgd2Ugd2FudCB0byBydW4gdGhlIHdhc20gdGVzdHMg
dGVtcG9yYXJpbHkgd2l0aG91dCBCMy9BaXIgc3VwcG9ydAorJGlzV2FzbVBsYXRmb3JtID0gaXNG
VExFbmFibGVkIHx8ICRhcmNoaXRlY3R1cmUgPT0gImFybSIKIAogaWYgJGFyY2hpdGVjdHVyZSA9
PSAieDg2IgogICAgICMgVGhlIEpJVCBpcyB0ZW1wb3JhcmlseSBkaXNhYmxlZCBvbiB0aGlzIHBs
YXRmb3JtIHNpbmNlCkBAIC01OTIsMTAgKzU5OCw2IEBAIGlmICRhcmNoaXRlY3R1cmUgPT0gIng4
NiIKICAgICAkaml0VGVzdHMgPSBmYWxzZQogZW5kCiAKLWRlZiBpc0ZUTEVuYWJsZWQKLSAgICAk
aml0VGVzdHMgJiYgJGlzRlRMUGxhdGZvcm0KLWVuZAotCiBpZiAhJHRlc3RSdW5uZXJUeXBlCiAg
ICAgaWYgJHJlbW90ZSBhbmQgJGhvc3RPUyA9PSAiZGFyd2luIgogICAgICAgICAkdGVzdFJ1bm5l
clR5cGUgPSA6c2hlbGwKQEAgLTE3MjcsOCArMTcyOSw3IEBAIGRlZiBub05vTExJbnRSdW5Nb2R1
bGVzCiBlbmQKIAogZGVmIHJ1bldlYkFzc2VtYmx5Ci0gICAgcmV0dXJuIGlmICEkaml0VGVzdHMK
LSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0dXJuIGlmICEkaXNXYXNtUGxh
dGZvcm0KICAgICBydW4oImRlZmF1bHQtd2FzbSIsICItbSIsICpGVExfT1BUSU9OUykKICAgICBp
ZiAkbW9kZSAhPSAicXVpY2siCiAgICAgICAgIHJ1bigid2FzbS1uby1jaml0LXllcy10bHMtY29u
dGV4dCIsICItbSIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD10cnVlIiwgKihGVExfT1BU
SU9OUyArIE5PX0NKSVRfT1BUSU9OUykpCkBAIC0xNzM2LDE1ICsxNzM3LDE2IEBAIGRlZiBydW5X
ZWJBc3NlbWJseQogICAgICAgICBydW4oIndhc20tZWFnZXItamV0dGlzb24iLCAiLW0iLCAiLS1m
b3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09sZEFnZT10cnVlIiwgIi0tdXNlUmFuZG9taXpp
bmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpG
VExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLW5vLXRscy1jb250ZXh0IiwgIi1tIiwgIi0t
dXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PWZhbHNlIiwgKkZUTF9PUFRJT05TKQogICAgICAgICBy
dW4oIndhc20tc2xvdy1tZW1vcnkiLCAiLW0iLCAiLS11c2VXZWJBc3NlbWJseUZhc3RNZW1vcnk9
ZmFsc2UiLCAqRlRMX09QVElPTlMpCisgICAgICAgIHJ1bigid2FzbS1jb2xsZWN0LWNvbnRpbnVv
dXNseSIsICItbSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRy
dWUiLCAqRlRMX09QVElPTlMpIGlmIHNob3VsZENvbGxlY3RDb250aW51b3VzbHk/CisgICAgZW5k
CisgICAgaWYgJGlzRlRMUGxhdGZvcm0KICAgICAgICAgcnVuKCJ3YXNtLWIzIiwgIi1tIiwgIi0t
dXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqRlRMX09QVElP
TlMpCiAgICAgICAgIHJ1bigid2FzbS1haXIiLCAiLW0iLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2Ui
LCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqRlRM
X09QVElPTlMpCi0gICAgICAgIHJ1bigid2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNseSIsICItbSIs
ICItLWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqRlRMX09Q
VElPTlMpIGlmIHNob3VsZENvbGxlY3RDb250aW51b3VzbHk/CiAgICAgZW5kCiBlbmQKIAogZGVm
IHJ1bldlYkFzc2VtYmx5SmV0U3RyZWFtMgotICAgIHJldHVybiBpZiAhJGppdFRlc3RzCi0gICAg
cmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2FzbVBsYXRmb3Jt
CiAKICAgICBpZiAkbWVtb3J5TGltaXRlZAogICAgICAgICBza2lwCkBAIC0xNzYzLDE1ICsxNzY1
LDE2IEBAIGRlZiBydW5XZWJBc3NlbWJseUpldFN0cmVhbTIKICAgICAgICAgcnVuKCJ3YXNtLWVh
Z2VyLWpldHRpc29uIiwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1
ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1u
by10bHMtY29udGV4dCIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICpGVExf
T1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLXNsb3ctbWVtb3J5IiwgIi0tdXNlV2ViQXNzZW1i
bHlGYXN0TWVtb3J5PWZhbHNlIiwgKkZUTF9PUFRJT05TKQorICAgICAgICBydW4oIndhc20tY29s
bGVjdC1jb250aW51b3VzbHkiLCAiLS1jb2xsZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJp
ZnlHQz10cnVlIiwgKkZUTF9PUFRJT05TKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5Pwor
ICAgIGVuZAorICAgIGlmICRGVExQbGF0Zm9ybQogICAgICAgICBydW4oIndhc20tYjMiLCAiLS11
c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICpGVExfT1BUSU9O
UykKICAgICAgICAgcnVuKCJ3YXNtLWFpciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVz
ZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICpGVExfT1BUSU9O
UykKLSAgICAgICAgcnVuKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5IiwgIi0tY29sbGVjdENv
bnRpbnVvdXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykgaWYgc2hv
dWxkQ29sbGVjdENvbnRpbnVvdXNseT8KICAgICBlbmQKIGVuZAogCiBkZWYgcnVuV2ViQXNzZW1i
bHlTdWl0ZSgqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQotICAgIHJldHVybiBpZiAhJGpp
dFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlz
V2FzbVBsYXRmb3JtCiAgICAgbW9kdWxlcyA9IERpcltXQVNNVEVTVFNfUEFUSCArICIqLmpzIl0u
bWFwIHsgfGZ8IEZpbGUuYmFzZW5hbWUoZikgfQogICAgIHByZXBhcmVFeHRyYUFic29sdXRlRmls
ZXMoV0FTTVRFU1RTX1BBVEgsIFsid2FzbS5qc29uIl0pCiAgICAgcHJlcGFyZUV4dHJhUmVsYXRp
dmVGaWxlcyhtb2R1bGVzLm1hcCB7IHxmfCAiLi4vIiArIGYgfSwgJGNvbGxlY3Rpb24pCkBAIC0x
Nzg3LDkgKzE3OTAsMTEgQEAgZGVmIHJ1bldlYkFzc2VtYmx5U3VpdGUoKm9wdGlvbmFsVGVzdFNw
ZWNpZmljT3B0aW9ucykKICAgICAgICAgcnVuKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgIi0tZm9y
Y2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRvbWl6aW5n
RXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZU
TF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuKCJ3
YXNtLW5vLXRscy1jb250ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PWZhbHNlIiwg
KihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCiAgICAgICAgIHJ1
bigid2FzbS1zbG93LW1lbW9yeSIsICItLXVzZVdlYkFzc2VtYmx5RmFzdE1lbW9yeT1mYWxzZSIs
ICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQorICAgICAgICBy
dW4oIndhc20tY29sbGVjdC1jb250aW51b3VzbHkiLCAiLS1jb2xsZWN0Q29udGludW91c2x5PXRy
dWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNp
ZmljT3B0aW9ucykpIGlmIHNob3VsZENvbGxlY3RDb250aW51b3VzbHk/CisgICAgZW5kCisgICAg
aWYgJGlzRlRMUGxhdGZvcm0KICAgICAgICAgcnVuKCJ3YXNtLWIzIiwgIi0tdXNlV2FzbUxMSW50
PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9u
YWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuKCJ3YXNtLWFpciIsICItLXVzZVdh
c21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRp
b249dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQot
ICAgICAgICBydW4oIndhc20tY29sbGVjdC1jb250aW51b3VzbHkiLCAiLS1jb2xsZWN0Q29udGlu
dW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFs
VGVzdFNwZWNpZmljT3B0aW9ucykpIGlmIHNob3VsZENvbGxlY3RDb250aW51b3VzbHk/CiAgICAg
ZW5kCiBlbmQKIApAQCAtMTgwNCw4ICsxODA5LDkgQEAgZW5kCiAKIGRlZiBydW5XZWJBc3NlbWJs
eVdpdGhIYXJuZXNzKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiAgICAgcmFpc2UgdW5s
ZXNzICRiZW5jaG1hcmsudG9fcyA9fiAvaGFybmVzc1wubT9qcy8KLSAgICByZXR1cm4gaWYgISRq
aXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRMUGxhdGZvcm0KKyAgICByZXR1cm4gaWYgISRp
c1dhc21QbGF0Zm9ybQorICAgICMgU2tpcCB0aGlzIGNvbXBsZXRlbHkgb24gYXJtdjcgZm9yIG5v
dywgc2luY2UgbW9zdCBvZiB0aGUgdGVzdHMgYXJlIHJlbGF0ZWQgdG8gT1NSIGFuZCBpdCdzIGEg
Yml0IGhhaXJ5IHRvIHNraXAgdGhlbSBtYW51YWxseQorICAgIHJldHVybiBpZiAkYXJjaGl0ZWN0
dXJlID09ICJhcm0iCiAKICAgICB3YXNtRmlsZXMgPSBhbGxXYXNtRmlsZXMoJGNvbGxlY3Rpb24p
CiAgICAgcHJlcGFyZUV4dHJhUmVsYXRpdmVGaWxlcyh3YXNtRmlsZXMubWFwIHsgfGZ8IGYuYmFz
ZW5hbWUgfSwgJGNvbGxlY3Rpb24pCkBAIC0xODE3LDkgKzE4MjMsMTEgQEAgZGVmIHJ1bldlYkFz
c2VtYmx5V2l0aEhhcm5lc3MoKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKICAgICAgICAg
cnVuSGFybmVzc1Rlc3QoIndhc20tZWFnZXItamV0dGlzb24iLCAiLS1mb3JjZUNvZGVCbG9ja1Rv
SmV0dGlzb25EdWVUb09sZEFnZT10cnVlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNs
YW5kQWxsb2NhdGlvbj10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBv
cHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgICBydW5IYXJuZXNzVGVzdCgid2Fz
bS1uby10bHMtY29udGV4dCIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICoo
RlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgICBydW5I
YXJuZXNzVGVzdCgid2FzbS1zbG93LW1lbW9yeSIsICItLXVzZVdlYkFzc2VtYmx5RmFzdE1lbW9y
eT1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQor
ICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNseSIsICItLWNv
bGxlY3RDb250aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJT05T
ICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVv
dXNseT8KKyAgICBlbmQKKyAgICBpZiAkaXNGVExQbGF0Zm9ybQogICAgICAgICBydW5IYXJuZXNz
VGVzdCgid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWly
PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCiAg
ICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLW5vLWFpciIsICItLXVzZVdhc21MTEludD1mYWxz
ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICoo
RlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQotICAgICAgICBydW5I
YXJuZXNzVGVzdCgid2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNseSIsICItLWNvbGxlY3RDb250aW51
b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxU
ZXN0U3BlY2lmaWNPcHRpb25zKSkgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8KICAgICBl
bmQKIGVuZAogCkBAIC0xODI4LDggKzE4MzYsNyBAQCBkZWYgcnVuV2ViQXNzZW1ibHlFbXNjcmlw
dGVuKG1vZGUpCiAgICAgd2hlbiA6c2tpcAogICAgICAgICByZXR1cm4KICAgICBlbmQKLSAgICBy
ZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRMUGxhdGZvcm0KKyAgICBy
ZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQogICAgIHdhc20gPSAkYmVuY2htYXJrLnRvX3Muc3Vi
ISAnLmpzJywgJy53YXNtJwogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMoW1BhdGhuYW1l
KCcuLicpICsgd2FzbV0sICRjb2xsZWN0aW9uKQogICAgIHJ1bigiZGVmYXVsdC13YXNtIiwgKkZU
TF9PUFRJT05TKQpAQCAtMTgzNyw5ICsxODQ0LDExIEBAIGRlZiBydW5XZWJBc3NlbWJseUVtc2Ny
aXB0ZW4obW9kZSkKICAgICAgICAgcnVuKCJ3YXNtLW5vLWNqaXQteWVzLXRscy1jb250ZXh0Iiwg
Ii0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PXRydWUiLCAqKEZUTF9PUFRJT05TICsgTk9fQ0pJ
VF9PUFRJT05TKSkKICAgICAgICAgcnVuKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgIi0tZm9yY2VD
b2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhl
Y3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqRlRMX09Q
VElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1uby10bHMtY29udGV4dCIsICItLXVzZUZhc3RUTFNG
b3JXYXNtQ29udGV4dD1mYWxzZSIsICpGVExfT1BUSU9OUykKKyAgICAgICAgcnVuKCJ3YXNtLWNv
bGxlY3QtY29udGludW91c2x5IiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0tdmVy
aWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8K
KyAgICBlbmQKKyAgICBpZiAkaXNGVExQbGF0Zm9ybQogICAgICAgICBydW4oIndhc20tYjMiLCAi
LS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICpGVExfT1BU
SU9OUykKICAgICAgICAgcnVuKCJ3YXNtLWFpciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICIt
LXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICpGVExfT1BU
SU9OUykKLSAgICAgICAgcnVuKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5IiwgIi0tY29sbGVj
dENvbnRpbnVvdXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykgaWYg
c2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8KICAgICBlbmQKIGVuZAogCkBAIC0xODQ4LDggKzE4
NTcsNyBAQCBkZWYgcnVuV2ViQXNzZW1ibHlTcGVjVGVzdEJhc2UobW9kZSwgc3BlY0hhcm5lc3NQ
YXRoLCAqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpbwogICAgIHdoZW4gOnNraXAKICAgICAgICAg
cmV0dXJuCiAgICAgZW5kCi0gICAgcmV0dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYg
ISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KICAgICBwcmVw
YXJlRXh0cmFBYnNvbHV0ZUZpbGVzKFdBU01URVNUU19QQVRILCBbIndhc20uanNvbiJdKQogCiAg
ICAgbW9kdWxlcyA9IERpcltXQVNNVEVTVFNfUEFUSCArICIqLmpzIl0ubWFwIHsgfGZ8IEZpbGUu
YmFzZW5hbWUoZikgfQpAQCAtMTg2NCwxMCArMTg3MiwxMiBAQCBkZWYgcnVuV2ViQXNzZW1ibHlT
cGVjVGVzdEJhc2UobW9kZSwgc3BlY0hhcm5lc3NQYXRoLCAqb3B0aW9uYWxUZXN0U3BlY2lmaWNP
cHRpbwogICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20tbm8tY2ppdC15ZXMtdGxzLWNv
bnRleHQiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAgIi0tdXNlRmFz
dFRMU0Zvcldhc21Db250ZXh0PXRydWUiLCAqKEZUTF9PUFRJT05TICsgTk9fQ0pJVF9PUFRJT05T
ICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgIHJ1bldpdGhPdXRwdXRIYW5k
bGVyKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVz
c0pzUGF0aCwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICIt
LXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICItLXZlcmlm
eUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkK
ICAgICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLW5vLXRscy1jb250ZXh0Iiwgbm9pc3lP
dXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250
ZXh0PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykp
Ci0gICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1iMyIsIG5vaXN5T3V0cHV0SGFuZGxl
ciwgc3BlY0hhcm5lc3NKc1BhdGgsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFV
c2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9u
cykpCi0gICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1haXIiLCBub2lzeU91dHB1dEhh
bmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VS
YW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqKEZUTF9PUFRJT05T
ICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgIHJ1bldpdGhPdXRwdXRIYW5k
bGVyKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5Iiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVj
SGFybmVzc0pzUGF0aCwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9
dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKSBpZiBz
aG91bGRDb2xsZWN0Q29udGludW91c2x5PwogICAgIGVuZAorICAgIGlmICRpc0ZUTFBsYXRmb3Jt
CisgICAgICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWIzIiwgbm9pc3lPdXRwdXRIYW5k
bGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJC
UVVzZXNBaXI9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRp
b25zKSkKKyAgICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20tYWlyIiwgbm9pc3lPdXRw
dXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0t
dXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgKihGVExfT1BU
SU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCisgICAgZW5kCiBlbmQKIAogZGVm
IHJ1bldlYkFzc2VtYmx5U3BlY1Rlc3QobW9kZSkKQEAgLTE4ODMsOCArMTg5Myw3IEBAIGRlZiBy
dW5XZWJBc3NlbWJseUZ1bmN0aW9uUmVmZXJlbmNlU3BlY1Rlc3QobW9kZSkKIGVuZAogCiBkZWYg
cnVuV2ViQXNzZW1ibHlMb3dFeGVjdXRhYmxlTWVtb3J5KCpvcHRpb25hbFRlc3RTcGVjaWZpY09w
dGlvbnMpCi0gICAgcmV0dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBs
YXRmb3JtCisgICAgcmV0dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KICAgICBtb2R1bGVzID0gRGly
W1dBU01URVNUU19QQVRIICsgIiouanMiXS5tYXAgeyB8ZnwgRmlsZS5iYXNlbmFtZShmKSB9CiAg
ICAgcHJlcGFyZUV4dHJhQWJzb2x1dGVGaWxlcyhXQVNNVEVTVFNfUEFUSCwgWyJ3YXNtLmpzb24i
XSkKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZpbGVzKG1vZHVsZXMubWFwIHsgfGZ8ICIuLi8i
ICsgZiB9LCAkY29sbGVjdGlvbikKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDE3ZWRhMGRiNzgwYmExZjBhOTFmY2M3MTc5MDk3ZGQyOGE5
NThmMy4uYjAxZmFjOThiMDU0NDk5NmY4Njc2NjhlMGUzODJjZGVhNGU5ZDMwMyAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAyMi0wMy0zMCAgWGFuIEzDs3BleiAgPHhhbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IFtKU0NdIEVuYWJsZSBXYXNtTExJbnQgb24gQVJNdjcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTI2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20t
bmFtZS1zZWN0aW9uLmpzOgorICAgICAgICAqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNt
LmpzOgorICAgICAgICAqIHdhc20vcmVncmVzcy9sbGludC1jYWxsZWUtc2F2ZXMtd2l0aC1mYXN0
LW1lbW9yeS5qczoKKwogMjAyMi0wMy0yNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCBhZGRpdGlvbmFsIHJlcG9ydGVkIHJlZ3Jlc3Npb24gdGVzdHMg
dG8gZW5zdXJlIG11bHRpbGluZSB0b2tlbidzIGNvbHVtbiBvZmZzZXQgaXMgcmVzZXQKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9u
LmpzIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24u
anMKaW5kZXggNWMyMjBmZDc2Y2RjNWM0MGU1OWNjNjZlNTczNDJjNzJkOGM3ZjNhYS4uMDA3YWI3
YWM1OWMxNzQ1OGE5OGI3OWZiZTE3NzM2YWI1NDI3NmY2OSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9z
dHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24uanMKKysrIGIvSlNUZXN0
cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24uanMKQEAgLTEsMyAr
MSw5IEBACisvLyBUaGlzIHRlc3QgaXMgc3RhdGlzdGljYWwsIGFuZCB3aXRob3V0IG9wdGltaXpp
bmcgV2FzbSB0aWVycyB0aGUgbGlrZWxpaG9vZAorLy8gb2YgaGl0dGluZyB0aGUgZGVlcGVzdCBl
eHBlY3RlZCBzdGFjayB0cmFjZSBpcyB2ZXJ5IGxvdy4gVG8gZ2l2ZSB1cyBhIGJldHRlcgorLy8g
Y2hhbmNlLCBkaXNhYmxlIEpTIEpJVHMgYW5kIGluY3JlYXNlIHNhbXBsaW5nIHJhdGUuCisvLyBG
SVhNRTogcmVtb3ZlIHdoZW4gMzItYml0IHBsYXRmb3JtcyBzdXBwb3J0IG9wdGltaXppbmcgV2Fz
bSB0aWVycworLy9AIHJlcXVpcmVPcHRpb25zKCItLXNhbXBsZUludGVydmFsPTEwIiwgIi0tdXNl
QmFzZWxpbmVKSVQ9ZmFsc2UiLCAiLS11c2VERkdKSVQ9ZmFsc2UiKSBpZiBbImFybSIsICJtaXBz
Il0uaW5jbHVkZT8oJGFyY2hpdGVjdHVyZSkKKy8vCiAvL0AgcnVuRGVmYXVsdAogCiAvKgpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qcyBiL0pTVGVz
dHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanMKaW5kZXggMDZkZjAxMjQ5NTk2OWUy
ODQyMTg3Nzg2OTAxMzViZjA5MDEwZWM2ZC4uNzI0MGMwMGRlMjdlM2JmZDNmOTU1NzUyMzAwY2Ew
ZGUyZjU5NGVlYyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXIt
d2FzbS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzCkBA
IC0xLDMgKzEsNCBAQAorLy9AIHNraXAgaWYgJGFyY2hpdGVjdHVyZSA9PSAiYXJtIgogLy9AIHJ1
bkRlZmF1bHQKIAogaWYgKHBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKCkgJiYgJHZt
LmlzV2FzbVN1cHBvcnRlZCgpKSB7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vcmVncmVzcy9s
bGludC1jYWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5qcyBiL0pTVGVzdHMvd2FzbS9yZWdy
ZXNzL2xsaW50LWNhbGxlZS1zYXZlcy13aXRoLWZhc3QtbWVtb3J5LmpzCmluZGV4IGY5ZjA5YzQ3
NTEzYTZjOGQ5MzI1MzRmNzI3ZGJmZTc3ZmQyNTFkNDQuLjExY2ZiMTY0YmI2NDFlZjM0ZTIxZGIw
NTY5MjdkY2EzNjdjMzdlNmQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS9yZWdyZXNzL2xsaW50
LWNhbGxlZS1zYXZlcy13aXRoLWZhc3QtbWVtb3J5LmpzCisrKyBiL0pTVGVzdHMvd2FzbS9yZWdy
ZXNzL2xsaW50LWNhbGxlZS1zYXZlcy13aXRoLWZhc3QtbWVtb3J5LmpzCkBAIC0xLDMgKzEsNCBA
QAorLy9AIHNraXAgaWYgJGFyY2hpdGVjdHVyZSA9PSAiYXJtIgogLy9AIHJlcXVpcmVPcHRpb25z
KCItLXVzZVdlYkFzc2VtYmx5RmFzdE1lbW9yeT10cnVlIikKIAogaW1wb3J0ICogYXMgYXNzZXJ0
IGZyb20gJy4uL2Fzc2VydC5qcyc7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456911</attachid>
            <date>2022-04-07 05:21:05 -0700</date>
            <delta_ts>2022-04-11 23:00:49 -0700</delta_ts>
            <desc>v4</desc>
            <filename>0001-JSC-Enable-WasmLLInt-on-ARMv7.patch</filename>
            <type>text/plain</type>
            <size>334068</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSBmOWM5YzlhY2VlMTA4ZjNhZDBhNTVhMDllY2NmZWZiMDhiYzU4MzJmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogVGh1LCA3IEFwciAyMDIyIDEyOjEwOjI5ICswMjAwClN1YmplY3Q6IFtQ
QVRDSF0gW0pTQ10gRW5hYmxlIFdhc21MTEludCBvbiBBUk12NwogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTI2MApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5
cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzog
OGJpdAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpKU1Rlc3RzOgoKKiBzdHJlc3Mvc2Ft
cGxpbmctcHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24uanM6Ciogc3RyZXNzL3NhbXBsaW5nLXBy
b2ZpbGVyLXdhc20uanM6Ciogd2FzbS9yZWdyZXNzL2xsaW50LWNhbGxlZS1zYXZlcy13aXRoLWZh
c3QtbWVtb3J5LmpzOgoKU291cmNlL0phdmFTY3JpcHRDb3JlOgoKUGF0Y2ggYnkgR2V6YSBMb3Jl
IGFuZCBYYW4gTMOzcGV6LgoKSW1wbGVtZW50IHRoZSBMTEludCB0aWVyIG9mIFdlYkFzc2VtYmx5
IGZvciBBUk12Ny4gQSBsb3Qgb2YgdGhlCndvcmsgd2lsbCBiZSBzaGFyZWQgYnkgYW55IDMyYml0
IHBvcnQsIGJ1dCB0aGUgb2ZmbGluZWFzc2VtYmxlcgpoYXMgb25seSBiZWVuIHVwZGF0ZWQgZm9y
IEFSTXY3IHNvIGZhci4KCk1haW4gaGlnaGxpZ2h0czoKCldlIGhhdmUgc3BsaXQgdGhlIFdlYkFz
c2VtYmx5LmFzbSBmaWxlIGludG8gdGhyZWUgY2h1bmtzLApmb2xsb3dpbmcgd2hhdCBMb3dMZXZl
bEludGVycHJldGVyLmFzbSBkb2VzLiBUaGUgY29tbW9uIGNvZGUKcmVtYWlucyBpbiBXZWJBc3Nl
bWJseS5hc20sIGFuZCAzMiBhbmQgNjRiaXQgc3BlY2lmaWMgY29kZSAobW9zdGx5Cm9wY29kZSBp
bXBsZW1lbnRhdGlvbnMpIGdvZXMgaW50byBXZWJBc3NlbWJseTMyXzY0LmFzbSBhbmQKV2ViQXNz
ZW1ibHk2NC5hc20uCgpXZSBoYXZlIGRlY2lkZWQgdG8gdXNlIGEgcGFpciBvZiBHUFJzIGZvciBl
dmVyeSB0eXBlIG9mIHdhc20KdmFsdWVzLCBldmVuIGlmIHRoZXkgYXJlIDMyYml0IChpMzIvZjMy
KSwgd2l0aCB0aGUgb2RkIG51bWJlcmVkCkdQUiBob2xkaW5nIHRoZSBtb3N0IHNpZ25pZmljYW50
IChvciBvbmx5KSB2YWx1ZS4gVGhpcyBtYWtlcyB0aGUKY29kZSBtdWNoIHNpbXBsZXIgYW5kIGFs
bG93cyB1cyB0byBzaGFyZSBtb3JlIGNvZGUgd2l0aCB0aGUgNjRiaXQKdmFyaWFudC4gVGhpcyBp
cyBtb3N0bHkgcmVsZXZhbnQgZm9yIGFyZ3VtZW50IHBhc3NpbmcsIGFuZCBnaXZlbgp0aGF0IGV2
ZXJ5IHZhbHVlIGVuZHMgdXAgaW4gYSBzdGFjayBhbnl3YXkgd2UgZG8gbm90IHRoaW5rIGl0IGlz
CnNpZ25pZmljYW50IGZyb20gYSBwZXJmb3JtYW5jZSBQT1YuCgpXZSBhcmUgcmV1c2luZyBKU1Zh
bHVlUmVncyB0byBob2xkIFdhc20gdmFsdWVzIHRvby4gT2J2aW91c2x5IHRoZXkKYXJlIG5vdCBy
ZWFsbHkgSlNWYWx1ZXMsIHNvIGl0IG1pZ2h0IG1ha2Ugc2Vuc2UgdG8gY3JlYXRlIGEgYmFzZQpj
bGFzcyB0aGF0IGNhbiBiZSB1c2VkIGZvciBib3RoIEpTIGFuZCBXYXNtIHZhbHVlcy4KCldlIGRv
IG5vdCBoYXZlIGVub3VnaCByZWdpc3RlcnMgdG8ga2VlcCB0aGluZ3MgbGlrZSB0aGUgbWVtb3J5
CmJhc2UgcG9pbnRlciBhbmQgc2l6ZSBpbiBwaW5uZWQgcmVnaXN0ZXJzLCBzbyB3ZSBhcmUgZm9y
Y2VkIHRvCmxvYWQgdGhlbSBvbiBlYWNoIHVzZS4KCldlIGRpc2FibGUgdGhlICdTaWduYWxpbmcn
IG1lbW9yeSBtb2RlLCBzaW5jZSB0aGUgY3VycmVudAppbXBsZW1lbnRhdGlvbiByZWxpZXMgb24g
YmVpbmcgYWJsZSB0byBtcHJvdGVjdCBhIDJeMzIgKyByZWR6b25lCnJlZ2lvbiBvZiBtZW1vcnku
IFRoaXMgY2FuIGJlIGNoYW5nZWQgaW4gdGhlIGZ1dHVyZSBidXQgaXQncyBub3QgYQpwcmlvcml0
eSBhdCB0aGUgbW9tZW50LgoKKiBDTWFrZUxpc3RzLnR4dDoKKiBhc3NlbWJsZXIvQVJNdjdBc3Nl
bWJsZXIuaDoKKEpTQzo6QVJNdjdBc3NlbWJsZXI6OnZjdnRfc2lnbmVkVG9GbG9hdGluZ1BvaW50
KToKKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgooSlNDOjpNYWNyb0Fzc2VtYmxl
ckFSTXY3Ojpjb252ZXJ0SW50MzJUb0Zsb2F0KToKKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6
dGhyZWFkU2FmZVBhdGNoYWJsZU5lYXJDYWxsKToKKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6
Y2FsbE9wZXJhdGlvbik6CiogYjMvQjNWYWx1ZVJlcC5oOgooSlNDOjpCMzo6VmFsdWVSZXA6OlZh
bHVlUmVwKToKKiBieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHA6CihKU0M6Oldhc206OkJ5dGVj
b2RlRHVtcGVyOjpmb3JtYXRDb25zdGFudCBjb25zdCk6CiogaW50ZXJwcmV0ZXIvQ2FsbEZyYW1l
Lmg6IGFkYXB0IHRvIG5ldyBjYWxsZWUgdGFnZ2luZyBmb3JtYXQuCihKU0M6OkNhbGxGcmFtZTo6
Y2FsbGVlIGNvbnN0KToKKEpTQzo6Q2FsbEZyYW1lOjp1bnNhZmVDYWxsZWUgY29uc3QpOgoqIGlu
dGVycHJldGVyL0NhbGxlZUJpdHMuaDogYWRkIHdhc20gdGFnZ2luZyBvZiBjYWxsZWUgdmFsdWVz
IGZvcgozMmJpdC4KKEpTQzo6Q2FsbGVlQml0czo6Q2FsbGVlQml0cyk6CihKU0M6OkNhbGxlZUJp
dHM6Om9wZXJhdG9yPSk6CihKU0M6OkNhbGxlZUJpdHM6OmJveFdhc20pOgooSlNDOjpDYWxsZWVC
aXRzOjppc1dhc20gY29uc3QpOgooSlNDOjpDYWxsZWVCaXRzOjphc1dhc21DYWxsZWUgY29uc3Qp
OgoqIGludGVycHJldGVyL1JlZ2lzdGVyLmg6CihKU0M6OlJlZ2lzdGVyOjp1bmJveGVkRmxvYXQg
Y29uc3QpOgooSlNDOjpSZWdpc3Rlcjo6YXNhblVuc2FmZVVuYm94ZWRGbG9hdCBjb25zdCk6Ciog
aml0L0Fzc2VtYmx5SGVscGVycy5oOgooSlNDOjpBc3NlbWJseUhlbHBlcnM6OnVuYm94RG91Ymxl
KToKKiBqaXQvUmVnaXN0ZXJBdE9mZnNldExpc3QuY3BwOgooSlNDOjpSZWdpc3RlckF0T2Zmc2V0
TGlzdDo6UmVnaXN0ZXJBdE9mZnNldExpc3QpOgoqIGppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5o
OgooSlNDOjpSZWdpc3RlckF0T2Zmc2V0TGlzdDo6c2l6ZU9mQXJlYUluQnl0ZXMgY29uc3QpOgoq
IGppdC9SZWdpc3RlclNldC5jcHA6CihKU0M6OlJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdp
c3RlcnMpOgoqIGxsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oOgoqIGxsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIzMl82NC5hc206CiogbGxpbnQvV2ViQXNzZW1ibHkuYXNtOgoqIGxsaW50L1dl
YkFzc2VtYmx5MzJfNjQuYXNtOiBBZGRlZC4KKiBsbGludC9XZWJBc3NlbWJseTY0LmFzbTogQWRk
ZWQuCiogb2ZmbGluZWFzbS9hcm0ucmI6Ciogb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmI6Ciog
b2ZmbGluZWFzbS9yZWdpc3RlcnMucmI6Ciogb2ZmbGluZWFzbS9yaXNjLnJiOgoqIHJ1bnRpbWUv
SlNDSlNWYWx1ZS5oOgooSlNDOjpqc1VuYm94ZWRGbG9hdCk6CiogcnVudGltZS9KU0NKU1ZhbHVl
SW5saW5lcy5oOgooSlNDOjpKU1ZhbHVlOjpKU1ZhbHVlKToKKiB3YXNtL1dhc21BaXJJUkdlbmVy
YXRvci5jcHA6CihKU0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjp1c2VTaWduYWxpbmdNZW1vcnkg
Y29uc3QpOgooSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6QWlySVJHZW5lcmF0b3IpOgooSlND
OjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIpOgooSlND
OjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6YWRkQ2FsbCk6Ciogd2FzbS9XYXNtQjNJUkdlbmVyYXRv
ci5jcHA6CihKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OnVzZVNpZ25hbGluZ01lbW9yeSBjb25z
dCk6CihKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OkIzSVJHZW5lcmF0b3IpOgooSlNDOjpXYXNt
OjpCM0lSR2VuZXJhdG9yOjphZGRBcmd1bWVudHMpOgooSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9y
OjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcik6CihKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6
Om1lbW9yeUtpbmQpOgooSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjphZGRDYWxsKToKKiB3YXNt
L1dhc21CaW5kaW5nLmNwcDoKKEpTQzo6V2FzbTo6d2FzbVRvV2FzbSk6Ciogd2FzbS9XYXNtQ2Fs
bGVlLmNwcDoKKEpTQzo6V2FzbTo6TExJbnRDYWxsZWU6OmNhbGxlZVNhdmVSZWdpc3RlcnMpOgoq
IHdhc20vV2FzbUNhbGxlZUdyb3VwLmNwcDoKKEpTQzo6V2FzbTo6Q2FsbGVlR3JvdXA6OmlzU2Fm
ZVRvUnVuKToKKiB3YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5jcHA6CihKU0M6Oldhc206Ompz
Q2FsbGluZ0NvbnZlbnRpb24pOgooSlNDOjpXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24pOgoq
IHdhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmg6CihKU0M6Oldhc206OkNhbGxJbmZvcm1hdGlv
bjo6Y29tcHV0ZVJlc3VsdHNPZmZzZXRMaXN0KToKKEpTQzo6V2FzbTo6V2FzbUNhbGxpbmdDb252
ZW50aW9uOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb24pOgooSlNDOjpXYXNtOjpXYXNtQ2FsbGluZ0Nv
bnZlbnRpb246Om1hcnNoYWxsTG9jYXRpb25JbXBsIGNvbnN0KToKKEpTQzo6V2FzbTo6V2FzbUNh
bGxpbmdDb252ZW50aW9uOjptYXJzaGFsbExvY2F0aW9uIGNvbnN0KToKKEpTQzo6V2FzbTo6SlND
YWxsaW5nQ29udmVudGlvbjo6SlNDYWxsaW5nQ29udmVudGlvbik6CihKU0M6Oldhc206OkpTQ2Fs
bGluZ0NvbnZlbnRpb246Om1hcnNoYWxsTG9jYXRpb25JbXBsIGNvbnN0KToKKEpTQzo6V2FzbTo6
SlNDYWxsaW5nQ29udmVudGlvbjo6bWFyc2hhbGxMb2NhdGlvbiBjb25zdCk6CihKU0M6Oldhc206
OkpTQ2FsbGluZ0NvbnZlbnRpb246OmNhbGxJbmZvcm1hdGlvbkZvciBjb25zdCk6Ciogd2FzbS9X
YXNtRm9ybWF0Lmg6Ciogd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwOgooSlNDOjpXYXNtOjpJbmRl
eE9yTmFtZTo6SW5kZXhPck5hbWUpOgooSlNDOjpXYXNtOjptYWtlU3RyaW5nKToKKiB3YXNtL1dh
c21JbmRleE9yTmFtZS5oOgooSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6SW5kZXhPck5hbWUpOgoo
SlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6aXNFbXB0eSBjb25zdCk6CihKU0M6Oldhc206OkluZGV4
T3JOYW1lOjppc0luZGV4IGNvbnN0KToKKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OmlzTmFtZSBj
b25zdCk6CihKU0M6Oldhc206OkluZGV4T3JOYW1lOjppbmRleCBjb25zdCk6CihKU0M6Oldhc206
OkluZGV4T3JOYW1lOjpuYW1lIGNvbnN0KToKKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6Om5hbWVT
ZWN0aW9uIGNvbnN0KToKKiB3YXNtL1dhc21JbnN0YW5jZS5oOgooSlNDOjpXYXNtOjpJbnN0YW5j
ZTo6dXBkYXRlQ2FjaGVkTWVtb3J5KToKKiB3YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHA6CihK
U0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjp2aXJ0dWFsUmVnaXN0ZXJGb3JXYXNtTG9jYWwpOgoo
SlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVyKToKKEpT
Qzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvckNhbGxlZSk6CihKU0M6
Oldhc206OkxMSW50R2VuZXJhdG9yOjphZGRBcmd1bWVudHMpOgooSlNDOjpXYXNtOjpMTEludEdl
bmVyYXRvcjo6YWRkTG9vcCk6Ciogd2FzbS9XYXNtTExJbnRQbGFuLmNwcDoKKEpTQzo6V2FzbTo6
TExJbnRQbGFuOjpkaWRDb21wbGV0ZUNvbXBpbGF0aW9uKToKKiB3YXNtL1dhc21NZW1vcnkuY3Bw
OgooSlNDOjpXYXNtOjpNZW1vcnlIYW5kbGU6On5NZW1vcnlIYW5kbGUpOgooSlNDOjpXYXNtOjpN
ZW1vcnk6OnRyeUNyZWF0ZSk6CihKU0M6Oldhc206Ok1lbW9yeTo6Z3Jvd1NoYXJlZCk6CihKU0M6
Oldhc206Ok1lbW9yeTo6Z3Jvdyk6CihKU0M6Oldhc206Ok1lbW9yeTo6Y29weSk6Ciogd2FzbS9X
YXNtTWVtb3J5Lmg6Ciogd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwOgooSlNDOjpXYXNt
OjpQaW5uZWRSZWdpc3RlckluZm86OmdldCk6Ciogd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24u
aDoKKEpTQzo6V2FzbTo6UGlubmVkUmVnaXN0ZXJJbmZvOjp0b1NhdmUgY29uc3QpOgoqIHdhc20v
V2FzbU1lbW9yeU1vZGUuY3BwOgooSlNDOjpXYXNtOjptYWtlU3RyaW5nKToKKiB3YXNtL1dhc21N
ZW1vcnlNb2RlLmg6Ciogd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcDoKKiB3YXNtL1dhc21PcGNv
ZGVPcmlnaW4uaDoKKiB3YXNtL1dhc21PcGVyYXRpb25zLmNwcDoKKEpTQzo6V2FzbTo6SlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKToKKiB3YXNtL1dhc21PcGVyYXRpb25zLmg6Ciogd2FzbS9XYXNt
UGFnZUNvdW50Lmg6Ciogd2FzbS9XYXNtUGFyc2VyLmg6CihKU0M6Oldhc206OlBhcnNlcjxTdWNj
ZXNzVHlwZT46OnBhcnNlVUludDMyKToKKEpTQzo6V2FzbTo6UGFyc2VyPFN1Y2Nlc3NUeXBlPjo6
cGFyc2VVSW50NjQpOgoqIHdhc20vV2FzbVNsb3dQYXRocy5jcHA6CihKU0M6OkxMSW50OjpXQVNN
X1NMT1dfUEFUSF9ERUNMKToKKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX3BvcGNvdW50KToK
KEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX3BvcGNvdW50bGwpOgooSlNDOjpMTEludDo6c2xv
d19wYXRoX3dhc21faTMyX2Rpdl9zKToKKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2kzMl9k
aXZfdSk6CihKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pMzJfcmVtX3MpOgooSlNDOjpMTElu
dDo6c2xvd19wYXRoX3dhc21faTMyX3JlbV91KToKKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNt
X2k2NF9kaXZfcyk6CihKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pNjRfZGl2X3UpOgooSlND
OjpMTEludDo6c2xvd19wYXRoX3dhc21faTY0X3JlbV9zKToKKEpTQzo6TExJbnQ6OnNsb3dfcGF0
aF93YXNtX2k2NF9yZW1fdSk6Ciogd2FzbS9XYXNtU2xvd1BhdGhzLmg6Ciogd2FzbS9XYXNtVmFs
dWVMb2NhdGlvbi5jcHA6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmR1bXAgY29uc3QpOgoo
V1RGOjpwcmludEludGVybmFsKToKKiB3YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmg6CihKU0M6Oldh
c206OlZhbHVlTG9jYXRpb246OlZhbHVlTG9jYXRpb24pOgooSlNDOjpXYXNtOjpWYWx1ZUxvY2F0
aW9uOjppc0dQUiBjb25zdCk6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzRlBSIGNvbnN0
KToKKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6aXNTdGFjayBjb25zdCk6CihKU0M6Oldhc206
OlZhbHVlTG9jYXRpb246OmlzU3RhY2tBcmd1bWVudCBjb25zdCk6CihKU0M6Oldhc206OlZhbHVl
TG9jYXRpb246OmpzciBjb25zdCk6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmZwciBjb25z
dCk6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OnJlZyk6IERlbGV0ZWQuCihKU0M6Oldhc206
OlZhbHVlTG9jYXRpb246OmlzUmVnIGNvbnN0KTogRGVsZXRlZC4KKEpTQzo6V2FzbTo6VmFsdWVM
b2NhdGlvbjo6cmVnIGNvbnN0KTogRGVsZXRlZC4KKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6
Z3ByIGNvbnN0KTogRGVsZXRlZC4KKiB3YXNtL2pzL0pTVG9XYXNtLmNwcDoKKEpTQzo6V2FzbTo6
bWFyc2hhbGxKU1Jlc3VsdCk6CihKU0M6Oldhc206OmNyZWF0ZUpTVG9XYXNtV3JhcHBlcik6Ciog
d2FzbS9qcy9XYXNtVG9KUy5jcHA6CihKU0M6Oldhc206Ondhc21Ub0pTKToKKiB3YXNtL2pzL1dl
YkFzc2VtYmx5RnVuY3Rpb24uY3BwOgooSlNDOjpXZWJBc3NlbWJseUZ1bmN0aW9uOjpwcmV2aW91
c0luc3RhbmNlT2Zmc2V0IGNvbnN0KToKKEpTQzo6V2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxs
RW50cnlwb2ludFNsb3cpOgoqIHdhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5j
cHA6CihKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6Ciogd2FzbS9qcy9XZWJBc3NlbWJs
eU1vZHVsZVJlY29yZC5jcHA6CihKU0M6OldlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjppbml0aWFs
aXplRXhwb3J0cyk6CgpTb3VyY2UvV1RGOgoKKiB3dGYvUGxhdGZvcm1FbmFibGUuaDogZW5hYmxl
IFdlYkFzc2VtYmx5IG9uIEFSTXY3LgoKVG9vbHM6CgoqIFNjcmlwdHMvcnVuLWpzYy1zdHJlc3Mt
dGVzdHM6IGFsbG93IHRvIHJ1biB0aGUgd2FzbSB0ZXN0cyBvbgphcm12NyBldmVuIHdpdGhvdXQg
aml0IHN1cHBvcnQgKGZvciBub3cpLgotLS0KIEpTVGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMTEgKwogLi4uL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20tbmFt
ZS1zZWN0aW9uLmpzICAgIHwgICAgNiArCiBKU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxl
ci13YXNtLmpzICAgICAgfCAgICAxICsKIC4uLi9sbGludC1jYWxsZWUtc2F2ZXMtd2l0aC1mYXN0
LW1lbW9yeS5qcyAgICB8ICAgIDEgKwogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMu
dHh0ICAgICAgICAgIHwgICAgMiArCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgfCAgMjAzICsrKwogLi4uL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12
N0Fzc2VtYmxlci5oIHwgICAgNCArLQogLi4uL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3
LmggICAgICAgICAgIHwgICAyNCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVS
ZXAuaCAgICAgICAgIHwgICAgOCArLQogLi4uL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcCAg
ICAgICAgICAgICAgIHwgICAgMiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0NhbGxGcmFtZS5oIHwgICAgNCArLQogLi4uL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0Nh
bGxlZUJpdHMuaCAgIHwgICAzNSArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L1JlZ2lzdGVyLmggIHwgICAxNiArCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5
SGVscGVycy5oICAgfCAgICA1ICstCiAuLi4vaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmNwcCAg
ICAgICAgICAgICAgfCAgIDM0ICstCiAuLi4vSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRP
ZmZzZXRMaXN0LmggfCAgICAzICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJT
ZXQuY3BwICAgICB8ICAgIDIgKwogLi4uL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oICAg
ICAgICAgICAgIHwgICAgNiArCiAuLi4vbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFz
bSAgICAgICAgfCAgIDE2ICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJs
eS5hc20gICB8IDE1NzcgKysrLS0tLS0tLS0tLS0tLS0KIC4uLi9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9XZWJBc3NlbWJseTMyXzY0LmFzbSB8IDExMjkgKysrKysrKysrKysrCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHk2NC5hc20gfCAxMjU5ICsrKysrKysrKysrKysKIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybS5yYiAgICAgICB8ICAyODEgKystCiAu
Li4vSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIgfCAgIDE3ICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIgfCAgICAzICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiICAgICAgfCAgICA2ICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmggICAgfCAgIDE4ICstCiAu
Li4vcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oICAgICAgICAgICAgICAgfCAgICA3ICsKIC4u
Li93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAgICAgICAgICAgICAgICB8ICAgMTUgKy0KIC4u
Li9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcCB8ICAgMjcgKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5kaW5nLmNwcCAgICB8ICAgMTggKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuY3BwICAgICB8ICAgIDUgKy0KIC4u
Li9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWVHcm91cC5jcHAgICB8ICAgIDQgKwogLi4u
L3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmNwcCAgICAgICAgICAgIHwgICAzOSArLQogLi4u
L3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmggICAgICAgICAgICAgIHwgICA0MSArLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oICAgICAgIHwgICAgMiArCiAuLi4v
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwICAgfCAgIDI3ICstCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaCAgfCAgIDcwICstCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaCAgICAgfCAgICAzICstCiAuLi4v
d2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwICAgICAgICAgICAgICAgfCAgIDEwICstCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcCAgfCAgICA3ICstCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcCAgICAgfCAgIDQyICstCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmggICAgICAgfCAgICAyICsKIC4uLi93
YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5jcHAgICAgICAgICAgICB8ICAgIDcgKwogLi4uL3dh
c20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmggICAgICAgICAgICAgIHwgICAgNSArLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuY3BwIHwgICAgMiArCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5oICAgfCAgICAyICsKIC4uLi9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uY3BwICB8ICAgIDQgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uaCB8ICAgIDQgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcCB8ICAgNTAgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmggICB8ICAgMTYgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYWdlQ291bnQuaCAgICB8ICAgIDcgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaCAgICAgICB8ICAgIDQgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3BwICB8ICAyMzAgKystCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmggICAgfCAgIDM0ICsKIC4uLi9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmNwcCB8ICAgMTQgKy0KIC4uLi9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmggICB8ICAgNDQgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNwcCAgICB8ICAxODggKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcCAgICB8ICAxNDggKy0KIC4uLi93YXNt
L2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwICAgICAgICAgICB8ICAxNTcgKy0KIC4uLi93YXNt
L2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwICB8ICAgIDIgKy0KIC4uLi93YXNt
L2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcCAgICAgICB8ICAgIDIgKy0KIFNvdXJjZS9X
VEYvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDkgKwogU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1FbmFibGUuaCAgICAgICAgICAgICAgIHwgICAgNiArLQogVG9vbHMvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArCiBUb29scy9TY3Jp
cHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzICAgICAgICAgICAgfCAgIDU5ICstCiA2NiBmaWxlcyBj
aGFuZ2VkLCA0Mjg4IGluc2VydGlvbnMoKyksIDE3MDggZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5MzJfNjQuYXNt
CiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2Vt
Ymx5NjQuYXNtCgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5n
ZUxvZwppbmRleCBhNmQ1ZDI2YTQ3YzYuLjZlNTUyMDUxMGU3MCAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAy
Mi0wNC0wNyAgWGFuIEzDs3BleiAgPHhhbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtKU0NdIEVu
YWJsZSBXYXNtTExJbnQgb24gQVJNdjcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMTI2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0
aW9uLmpzOgorICAgICAgICAqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzOgorICAg
ICAgICAqIHdhc20vcmVncmVzcy9sbGludC1jYWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5q
czoKKwogMjAyMi0wNC0wNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtKU0NdIFN1YnN0cmluZyByZXNvbHZpbmcgc2hvdWxkIGNoZWNrIDhiaXQgLyAxNmJp
dCBhZ2FpbgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2Fz
bS1uYW1lLXNlY3Rpb24uanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNt
LW5hbWUtc2VjdGlvbi5qcwppbmRleCA1YzIyMGZkNzZjZGMuLjAwN2FiN2FjNTljMSAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24u
anMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rp
b24uanMKQEAgLTEsMyArMSw5IEBACisvLyBUaGlzIHRlc3QgaXMgc3RhdGlzdGljYWwsIGFuZCB3
aXRob3V0IG9wdGltaXppbmcgV2FzbSB0aWVycyB0aGUgbGlrZWxpaG9vZAorLy8gb2YgaGl0dGlu
ZyB0aGUgZGVlcGVzdCBleHBlY3RlZCBzdGFjayB0cmFjZSBpcyB2ZXJ5IGxvdy4gVG8gZ2l2ZSB1
cyBhIGJldHRlcgorLy8gY2hhbmNlLCBkaXNhYmxlIEpTIEpJVHMgYW5kIGluY3JlYXNlIHNhbXBs
aW5nIHJhdGUuCisvLyBGSVhNRTogcmVtb3ZlIHdoZW4gMzItYml0IHBsYXRmb3JtcyBzdXBwb3J0
IG9wdGltaXppbmcgV2FzbSB0aWVycworLy9AIHJlcXVpcmVPcHRpb25zKCItLXNhbXBsZUludGVy
dmFsPTEwIiwgIi0tdXNlQmFzZWxpbmVKSVQ9ZmFsc2UiLCAiLS11c2VERkdKSVQ9ZmFsc2UiKSBp
ZiBbImFybSIsICJtaXBzIl0uaW5jbHVkZT8oJGFyY2hpdGVjdHVyZSkKKy8vCiAvL0AgcnVuRGVm
YXVsdAogCiAvKgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXIt
d2FzbS5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanMKaW5kZXgg
MDZkZjAxMjQ5NTk2Li43MjQwYzAwZGUyN2UgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3Nh
bXBsaW5nLXByb2ZpbGVyLXdhc20uanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJv
ZmlsZXItd2FzbS5qcwpAQCAtMSwzICsxLDQgQEAKKy8vQCBza2lwIGlmICRhcmNoaXRlY3R1cmUg
PT0gImFybSIKIC8vQCBydW5EZWZhdWx0CiAKIGlmIChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQ
cm9maWxlcigpICYmICR2bS5pc1dhc21TdXBwb3J0ZWQoKSkgewpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy93YXNtL3JlZ3Jlc3MvbGxpbnQtY2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnkuanMgYi9K
U1Rlc3RzL3dhc20vcmVncmVzcy9sbGludC1jYWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5q
cwppbmRleCBmOWYwOWM0NzUxM2EuLjExY2ZiMTY0YmI2NCAxMDA2NDQKLS0tIGEvSlNUZXN0cy93
YXNtL3JlZ3Jlc3MvbGxpbnQtY2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnkuanMKKysrIGIv
SlNUZXN0cy93YXNtL3JlZ3Jlc3MvbGxpbnQtY2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnku
anMKQEAgLTEsMyArMSw0IEBACisvL0Agc2tpcCBpZiAkYXJjaGl0ZWN0dXJlID09ICJhcm0iCiAv
L0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5PXRydWUiKQogCiBp
bXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnLi4vYXNzZXJ0LmpzJzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCAyOWE3YWY5YTJkZTYuLmM5ZGFiYjU2NDc3NSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjAwLDYgKzIwMCw4IEBAIHNldChMTElOVF9B
U00KICAgICBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCiAgICAgbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQogICAgIGxsaW50L1dlYkFzc2VtYmx5LmFzbQorICAgIGxs
aW50L1dlYkFzc2VtYmx5MzJfNjQuYXNtCisgICAgbGxpbnQvV2ViQXNzZW1ibHk2NC5hc20KICkK
IAogc2V0KE9GRkxJTkVfQVNNCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAxZDRjODVjZjJi
ZTAuLmQ2NmMwZmQ2MjdkNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjA2
IEBACisyMDIyLTA0LTA3ICBYYW4gTMOzcGV6ICA8eGFuQGlnYWxpYS5jb20+CisKKyAgICAgICAg
W0pTQ10gRW5hYmxlIFdhc21MTEludCBvbiBBUk12NworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMjYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUGF0Y2ggYnkgR2V6YSBMb3JlIGFuZCBYYW4gTMOzcGV6
LgorCisgICAgICAgIEltcGxlbWVudCB0aGUgTExJbnQgdGllciBvZiBXZWJBc3NlbWJseSBmb3Ig
QVJNdjcuIEEgbG90IG9mIHRoZQorICAgICAgICB3b3JrIHdpbGwgYmUgc2hhcmVkIGJ5IGFueSAz
MmJpdCBwb3J0LCBidXQgdGhlIG9mZmxpbmVhc3NlbWJsZXIKKyAgICAgICAgaGFzIG9ubHkgYmVl
biB1cGRhdGVkIGZvciBBUk12NyBzbyBmYXIuCisKKyAgICAgICAgTWFpbiBoaWdobGlnaHRzOgor
CisgICAgICAgIFdlIGhhdmUgc3BsaXQgdGhlIFdlYkFzc2VtYmx5LmFzbSBmaWxlIGludG8gdGhy
ZWUgY2h1bmtzLAorICAgICAgICBmb2xsb3dpbmcgd2hhdCBMb3dMZXZlbEludGVycHJldGVyLmFz
bSBkb2VzLiBUaGUgY29tbW9uIGNvZGUKKyAgICAgICAgcmVtYWlucyBpbiBXZWJBc3NlbWJseS5h
c20sIGFuZCAzMiBhbmQgNjRiaXQgc3BlY2lmaWMgY29kZSAobW9zdGx5CisgICAgICAgIG9wY29k
ZSBpbXBsZW1lbnRhdGlvbnMpIGdvZXMgaW50byBXZWJBc3NlbWJseTMyXzY0LmFzbSBhbmQKKyAg
ICAgICAgV2ViQXNzZW1ibHk2NC5hc20uCisKKyAgICAgICAgV2UgaGF2ZSBkZWNpZGVkIHRvIHVz
ZSBhIHBhaXIgb2YgR1BScyBmb3IgZXZlcnkgdHlwZSBvZiB3YXNtCisgICAgICAgIHZhbHVlcywg
ZXZlbiBpZiB0aGV5IGFyZSAzMmJpdCAoaTMyL2YzMiksIHdpdGggdGhlIG9kZCBudW1iZXJlZAor
ICAgICAgICBHUFIgaG9sZGluZyB0aGUgbW9zdCBzaWduaWZpY2FudCAob3Igb25seSkgdmFsdWUu
IFRoaXMgbWFrZXMgdGhlCisgICAgICAgIGNvZGUgbXVjaCBzaW1wbGVyIGFuZCBhbGxvd3MgdXMg
dG8gc2hhcmUgbW9yZSBjb2RlIHdpdGggdGhlIDY0Yml0CisgICAgICAgIHZhcmlhbnQuIFRoaXMg
aXMgbW9zdGx5IHJlbGV2YW50IGZvciBhcmd1bWVudCBwYXNzaW5nLCBhbmQgZ2l2ZW4KKyAgICAg
ICAgdGhhdCBldmVyeSB2YWx1ZSBlbmRzIHVwIGluIGEgc3RhY2sgYW55d2F5IHdlIGRvIG5vdCB0
aGluayBpdCBpcworICAgICAgICBzaWduaWZpY2FudCBmcm9tIGEgcGVyZm9ybWFuY2UgUE9WLgor
CisgICAgICAgIFdlIGFyZSByZXVzaW5nIEpTVmFsdWVSZWdzIHRvIGhvbGQgV2FzbSB2YWx1ZXMg
dG9vLiBPYnZpb3VzbHkgdGhleQorICAgICAgICBhcmUgbm90IHJlYWxseSBKU1ZhbHVlcywgc28g
aXQgbWlnaHQgbWFrZSBzZW5zZSB0byBjcmVhdGUgYSBiYXNlCisgICAgICAgIGNsYXNzIHRoYXQg
Y2FuIGJlIHVzZWQgZm9yIGJvdGggSlMgYW5kIFdhc20gdmFsdWVzLgorCisgICAgICAgIFdlIGRv
IG5vdCBoYXZlIGVub3VnaCByZWdpc3RlcnMgdG8ga2VlcCB0aGluZ3MgbGlrZSB0aGUgbWVtb3J5
CisgICAgICAgIGJhc2UgcG9pbnRlciBhbmQgc2l6ZSBpbiBwaW5uZWQgcmVnaXN0ZXJzLCBzbyB3
ZSBhcmUgZm9yY2VkIHRvCisgICAgICAgIGxvYWQgdGhlbSBvbiBlYWNoIHVzZS4KKworICAgICAg
ICBXZSBkaXNhYmxlIHRoZSAnU2lnbmFsaW5nJyBtZW1vcnkgbW9kZSwgc2luY2UgdGhlIGN1cnJl
bnQKKyAgICAgICAgaW1wbGVtZW50YXRpb24gcmVsaWVzIG9uIGJlaW5nIGFibGUgdG8gbXByb3Rl
Y3QgYSAyXjMyICsgcmVkem9uZQorICAgICAgICByZWdpb24gb2YgbWVtb3J5LiBUaGlzIGNhbiBi
ZSBjaGFuZ2VkIGluIHRoZSBmdXR1cmUgYnV0IGl0J3Mgbm90IGEKKyAgICAgICAgcHJpb3JpdHkg
YXQgdGhlIG1vbWVudC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIGFz
c2VtYmxlci9BUk12N0Fzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6
dmN2dF9zaWduZWRUb0Zsb2F0aW5nUG9pbnQpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTXY3Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmNvbnZl
cnRJbnQzMlRvRmxvYXQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojp0aHJl
YWRTYWZlUGF0Y2hhYmxlTmVhckNhbGwpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFS
TXY3OjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKiBiMy9CM1ZhbHVlUmVwLmg6CisgICAgICAg
IChKU0M6OkIzOjpWYWx1ZVJlcDo6VmFsdWVSZXApOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVj
b2RlRHVtcGVyLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6Qnl0ZWNvZGVEdW1wZXI6OmZvcm1h
dENvbnN0YW50IGNvbnN0KToKKyAgICAgICAgKiBpbnRlcnByZXRlci9DYWxsRnJhbWUuaDogYWRh
cHQgdG8gbmV3IGNhbGxlZSB0YWdnaW5nIGZvcm1hdC4KKyAgICAgICAgKEpTQzo6Q2FsbEZyYW1l
OjpjYWxsZWUgY29uc3QpOgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OnVuc2FmZUNhbGxlZSBj
b25zdCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvQ2FsbGVlQml0cy5oOiBhZGQgd2FzbSB0YWdn
aW5nIG9mIGNhbGxlZSB2YWx1ZXMgZm9yCisgICAgICAgIDMyYml0LgorICAgICAgICAoSlNDOjpD
YWxsZWVCaXRzOjpDYWxsZWVCaXRzKToKKyAgICAgICAgKEpTQzo6Q2FsbGVlQml0czo6b3BlcmF0
b3I9KToKKyAgICAgICAgKEpTQzo6Q2FsbGVlQml0czo6Ym94V2FzbSk6CisgICAgICAgIChKU0M6
OkNhbGxlZUJpdHM6OmlzV2FzbSBjb25zdCk6CisgICAgICAgIChKU0M6OkNhbGxlZUJpdHM6OmFz
V2FzbUNhbGxlZSBjb25zdCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaDoKKyAg
ICAgICAgKEpTQzo6UmVnaXN0ZXI6OnVuYm94ZWRGbG9hdCBjb25zdCk6CisgICAgICAgIChKU0M6
OlJlZ2lzdGVyOjphc2FuVW5zYWZlVW5ib3hlZEZsb2F0IGNvbnN0KToKKyAgICAgICAgKiBqaXQv
QXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6dW5ib3hE
b3VibGUpOgorICAgICAgICAqIGppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5jcHA6CisgICAgICAg
IChKU0M6OlJlZ2lzdGVyQXRPZmZzZXRMaXN0OjpSZWdpc3RlckF0T2Zmc2V0TGlzdCk6CisgICAg
ICAgICogaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0Lmg6CisgICAgICAgIChKU0M6OlJlZ2lzdGVy
QXRPZmZzZXRMaXN0OjpzaXplT2ZBcmVhSW5CeXRlcyBjb25zdCk6CisgICAgICAgICogaml0L1Jl
Z2lzdGVyU2V0LmNwcDoKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJl
Z2lzdGVycyk6CisgICAgICAgICogbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmg6CisgICAg
ICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBsbGlu
dC9XZWJBc3NlbWJseS5hc206CisgICAgICAgICogbGxpbnQvV2ViQXNzZW1ibHkzMl82NC5hc206
IEFkZGVkLgorICAgICAgICAqIGxsaW50L1dlYkFzc2VtYmx5NjQuYXNtOiBBZGRlZC4KKyAgICAg
ICAgKiBvZmZsaW5lYXNtL2FybS5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL2luc3RydWN0aW9u
cy5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL3JlZ2lzdGVycy5yYjoKKyAgICAgICAgKiBvZmZs
aW5lYXNtL3Jpc2MucmI6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlLmg6CisgICAgICAg
IChKU0M6OmpzVW5ib3hlZEZsb2F0KToKKyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWVJbmxp
bmVzLmg6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OkpTVmFsdWUpOgorICAgICAgICAqIHdhc20v
V2FzbUFpcklSR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0
b3I6OnVzZVNpZ25hbGluZ01lbW9yeSBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkFpcklS
R2VuZXJhdG9yOjpBaXJJUkdlbmVyYXRvcik6CisgICAgICAgIChKU0M6Oldhc206OkFpcklSR2Vu
ZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcik6CisgICAgICAgIChKU0M6Oldhc206
OkFpcklSR2VuZXJhdG9yOjphZGRDYWxsKToKKyAgICAgICAgKiB3YXNtL1dhc21CM0lSR2VuZXJh
dG9yLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6QjNJUkdlbmVyYXRvcjo6dXNlU2lnbmFsaW5n
TWVtb3J5IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6QjNJUkdlbmVyYXRvcjo6QjNJUkdl
bmVyYXRvcik6CisgICAgICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OmFkZEFyZ3VtZW50
cyk6CisgICAgICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OmVtaXRDaGVja0FuZFByZXBh
cmVQb2ludGVyKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QjNJUkdlbmVyYXRvcjo6bWVtb3J5S2lu
ZCk6CisgICAgICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OmFkZENhbGwpOgorICAgICAg
ICAqIHdhc20vV2FzbUJpbmRpbmcuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjp3YXNtVG9XYXNt
KToKKyAgICAgICAgKiB3YXNtL1dhc21DYWxsZWUuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpM
TEludENhbGxlZTo6Y2FsbGVlU2F2ZVJlZ2lzdGVycyk6CisgICAgICAgICogd2FzbS9XYXNtQ2Fs
bGVlR3JvdXAuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpDYWxsZWVHcm91cDo6aXNTYWZlVG9S
dW4pOgorICAgICAgICAqIHdhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmNwcDoKKyAgICAgICAg
KEpTQzo6V2FzbTo6anNDYWxsaW5nQ29udmVudGlvbik6CisgICAgICAgIChKU0M6Oldhc206Ondh
c21DYWxsaW5nQ29udmVudGlvbik6CisgICAgICAgICogd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRp
b24uaDoKKyAgICAgICAgKEpTQzo6V2FzbTo6Q2FsbEluZm9ybWF0aW9uOjpjb21wdXRlUmVzdWx0
c09mZnNldExpc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb246
Oldhc21DYWxsaW5nQ29udmVudGlvbik6CisgICAgICAgIChKU0M6Oldhc206Oldhc21DYWxsaW5n
Q29udmVudGlvbjo6bWFyc2hhbGxMb2NhdGlvbkltcGwgY29uc3QpOgorICAgICAgICAoSlNDOjpX
YXNtOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxsTG9jYXRpb24gY29uc3QpOgorICAg
ICAgICAoSlNDOjpXYXNtOjpKU0NhbGxpbmdDb252ZW50aW9uOjpKU0NhbGxpbmdDb252ZW50aW9u
KToKKyAgICAgICAgKEpTQzo6V2FzbTo6SlNDYWxsaW5nQ29udmVudGlvbjo6bWFyc2hhbGxMb2Nh
dGlvbkltcGwgY29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpKU0NhbGxpbmdDb252ZW50aW9u
OjptYXJzaGFsbExvY2F0aW9uIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6SlNDYWxsaW5n
Q29udmVudGlvbjo6Y2FsbEluZm9ybWF0aW9uRm9yIGNvbnN0KToKKyAgICAgICAgKiB3YXNtL1dh
c21Gb3JtYXQuaDoKKyAgICAgICAgKiB3YXNtL1dhc21JbmRleE9yTmFtZS5jcHA6CisgICAgICAg
IChKU0M6Oldhc206OkluZGV4T3JOYW1lOjpJbmRleE9yTmFtZSk6CisgICAgICAgIChKU0M6Oldh
c206Om1ha2VTdHJpbmcpOgorICAgICAgICAqIHdhc20vV2FzbUluZGV4T3JOYW1lLmg6CisgICAg
ICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1lOjpJbmRleE9yTmFtZSk6CisgICAgICAgIChKU0M6
Oldhc206OkluZGV4T3JOYW1lOjppc0VtcHR5IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6
SW5kZXhPck5hbWU6OmlzSW5kZXggY29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpJbmRleE9y
TmFtZTo6aXNOYW1lIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6Omlu
ZGV4IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6Om5hbWUgY29uc3Qp
OgorICAgICAgICAoSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6bmFtZVNlY3Rpb24gY29uc3QpOgor
ICAgICAgICAqIHdhc20vV2FzbUluc3RhbmNlLmg6CisgICAgICAgIChKU0M6Oldhc206Okluc3Rh
bmNlOjp1cGRhdGVDYWNoZWRNZW1vcnkpOgorICAgICAgICAqIHdhc20vV2FzbUxMSW50R2VuZXJh
dG9yLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OnZpcnR1YWxSZWdp
c3RlckZvcldhc21Mb2NhbCk6CisgICAgICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjpj
YWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIpOgorICAgICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVy
YXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVlKToKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJ
bnRHZW5lcmF0b3I6OmFkZEFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6Oldhc206OkxMSW50R2Vu
ZXJhdG9yOjphZGRMb29wKToKKyAgICAgICAgKiB3YXNtL1dhc21MTEludFBsYW4uY3BwOgorICAg
ICAgICAoSlNDOjpXYXNtOjpMTEludFBsYW46OmRpZENvbXBsZXRlQ29tcGlsYXRpb24pOgorICAg
ICAgICAqIHdhc20vV2FzbU1lbW9yeS5jcHA6CisgICAgICAgIChKU0M6Oldhc206Ok1lbW9yeUhh
bmRsZTo6fk1lbW9yeUhhbmRsZSk6CisgICAgICAgIChKU0M6Oldhc206Ok1lbW9yeTo6dHJ5Q3Jl
YXRlKToKKyAgICAgICAgKEpTQzo6V2FzbTo6TWVtb3J5Ojpncm93U2hhcmVkKToKKyAgICAgICAg
KEpTQzo6V2FzbTo6TWVtb3J5Ojpncm93KToKKyAgICAgICAgKEpTQzo6V2FzbTo6TWVtb3J5Ojpj
b3B5KToKKyAgICAgICAgKiB3YXNtL1dhc21NZW1vcnkuaDoKKyAgICAgICAgKiB3YXNtL1dhc21N
ZW1vcnlJbmZvcm1hdGlvbi5jcHA6CisgICAgICAgIChKU0M6Oldhc206OlBpbm5lZFJlZ2lzdGVy
SW5mbzo6Z2V0KToKKyAgICAgICAgKiB3YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5oOgorICAg
ICAgICAoSlNDOjpXYXNtOjpQaW5uZWRSZWdpc3RlckluZm86OnRvU2F2ZSBjb25zdCk6CisgICAg
ICAgICogd2FzbS9XYXNtTWVtb3J5TW9kZS5jcHA6CisgICAgICAgIChKU0M6Oldhc206Om1ha2VT
dHJpbmcpOgorICAgICAgICAqIHdhc20vV2FzbU1lbW9yeU1vZGUuaDoKKyAgICAgICAgKiB3YXNt
L1dhc21PcGNvZGVPcmlnaW4uY3BwOgorICAgICAgICAqIHdhc20vV2FzbU9wY29kZU9yaWdpbi5o
OgorICAgICAgICAqIHdhc20vV2FzbU9wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpXYXNt
OjpKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04pOgorICAgICAgICAqIHdhc20vV2FzbU9wZXJhdGlv
bnMuaDoKKyAgICAgICAgKiB3YXNtL1dhc21QYWdlQ291bnQuaDoKKyAgICAgICAgKiB3YXNtL1dh
c21QYXJzZXIuaDoKKyAgICAgICAgKEpTQzo6V2FzbTo6UGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFy
c2VVSW50MzIpOgorICAgICAgICAoSlNDOjpXYXNtOjpQYXJzZXI8U3VjY2Vzc1R5cGU+OjpwYXJz
ZVVJbnQ2NCk6CisgICAgICAgICogd2FzbS9XYXNtU2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpT
Qzo6TExJbnQ6OldBU01fU0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAoSlNDOjpMTEludDo6c2xv
d19wYXRoX3dhc21fcG9wY291bnQpOgorICAgICAgICAoSlNDOjpMTEludDo6c2xvd19wYXRoX3dh
c21fcG9wY291bnRsbCk6CisgICAgICAgIChKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pMzJf
ZGl2X3MpOgorICAgICAgICAoSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTMyX2Rpdl91KToK
KyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2kzMl9yZW1fcyk6CisgICAgICAg
IChKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pMzJfcmVtX3UpOgorICAgICAgICAoSlNDOjpM
TEludDo6c2xvd19wYXRoX3dhc21faTY0X2Rpdl9zKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNs
b3dfcGF0aF93YXNtX2k2NF9kaXZfdSk6CisgICAgICAgIChKU0M6OkxMSW50OjpzbG93X3BhdGhf
d2FzbV9pNjRfcmVtX3MpOgorICAgICAgICAoSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTY0
X3JlbV91KToKKyAgICAgICAgKiB3YXNtL1dhc21TbG93UGF0aHMuaDoKKyAgICAgICAgKiB3YXNt
L1dhc21WYWx1ZUxvY2F0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlv
bjo6ZHVtcCBjb25zdCk6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAq
IHdhc20vV2FzbVZhbHVlTG9jYXRpb24uaDoKKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2Nh
dGlvbjo6VmFsdWVMb2NhdGlvbik6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246
OmlzR1BSIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6aXNGUFIg
Y29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjppc1N0YWNrIGNvbnN0
KToKKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6aXNTdGFja0FyZ3VtZW50IGNv
bnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6anNyIGNvbnN0KToKKyAg
ICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6ZnByIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6cmVnKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2Fz
bTo6VmFsdWVMb2NhdGlvbjo6aXNSZWcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpX
YXNtOjpWYWx1ZUxvY2F0aW9uOjpyZWcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpX
YXNtOjpWYWx1ZUxvY2F0aW9uOjpncHIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20v
anMvSlNUb1dhc20uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjptYXJzaGFsbEpTUmVzdWx0KToK
KyAgICAgICAgKEpTQzo6V2FzbTo6Y3JlYXRlSlNUb1dhc21XcmFwcGVyKToKKyAgICAgICAgKiB3
YXNtL2pzL1dhc21Ub0pTLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6d2FzbVRvSlMpOgorICAg
ICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6Oldl
YkFzc2VtYmx5RnVuY3Rpb246OnByZXZpb3VzSW5zdGFuY2VPZmZzZXQgY29uc3QpOgorICAgICAg
ICAoSlNDOjpXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdyk6CisgICAg
ICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFz
c2VtYmx5TW9kdWxlUmVjb3JkLmNwcDoKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlNb2R1bGVS
ZWNvcmQ6OmluaXRpYWxpemVFeHBvcnRzKToKKwogMjAyMi0wNC0wNiAgU2FhbSBCYXJhdGkgIDxz
YmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBDYWxsIFN0cnVjdHVyZTo6Z2V0IGluc3RlYWQg
b2YgU3RydWN0dXJlOjpnZXRDb25jdXJyZW50bHkgb24gdGhlIG11dGF0b3IgdGhyZWFkCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKaW5kZXgg
NmQxOGJlOGQ2NjBmLi4xZDU1OWM0MWExNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKQEAgLTE5NjcsMTAgKzE5NjcsMTAgQEAgcHVi
bGljOgogICAgICAgICBtX2Zvcm1hdHRlci52ZnBPcChPUF9WQ01QLCBPUF9WQ01QYiwgdHJ1ZSwg
VkZQT3BlcmFuZCg1KSwgcmQsIFZGUE9wZXJhbmQoMCkpOwogICAgIH0KIAotICAgIHZvaWQgdmN2
dF9zaWduZWRUb0Zsb2F0aW5nUG9pbnQoRlBEb3VibGVSZWdpc3RlcklEIHJkLCBGUFNpbmdsZVJl
Z2lzdGVySUQgcm0pCisgICAgdm9pZCB2Y3Z0X3NpZ25lZFRvRmxvYXRpbmdQb2ludChGUERvdWJs
ZVJlZ2lzdGVySUQgcmQsIEZQU2luZ2xlUmVnaXN0ZXJJRCBybSwgYm9vbCB0b0RvdWJsZSA9IHRy
dWUpCiAgICAgewogICAgICAgICAvLyBib29sZWFuIHZhbHVlcyBhcmUgNjRiaXQgKHRvSW50LCB1
bnNpZ25lZCwgcm91bmRaZXJvKQotICAgICAgICBtX2Zvcm1hdHRlci52ZnBPcChPUF9WQ1ZUX0ZQ
SVZGUCwgT1BfVkNWVF9GUElWRlBiLCB0cnVlLCB2Y3Z0T3AoZmFsc2UsIGZhbHNlLCBmYWxzZSks
IHJkLCBybSk7CisgICAgICAgIG1fZm9ybWF0dGVyLnZmcE9wKE9QX1ZDVlRfRlBJVkZQLCBPUF9W
Q1ZUX0ZQSVZGUGIsIHRvRG91YmxlLCB2Y3Z0T3AoZmFsc2UsIGZhbHNlLCBmYWxzZSksIHJkLCBy
bSk7CiAgICAgfQogCiAgICAgdm9pZCB2Y3Z0X2Zsb2F0aW5nUG9pbnRUb1NpZ25lZChGUFNpbmds
ZVJlZ2lzdGVySUQgcmQsIEZQRG91YmxlUmVnaXN0ZXJJRCBybSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKaW5kZXggZmU3
ZjJkNWM0ZjNmLi5iYmMxZjc1NDllNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCkBAIC0zOCwxMCArMzgsMTIgQEAg
bmFtZXNwYWNlIEpTQyB7CiB1c2luZyBBc3NlbWJsZXIgPSBUQVJHRVRfQVNTRU1CTEVSOwogCiBj
bGFzcyBNYWNyb0Fzc2VtYmxlckFSTXY3IDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8
QXNzZW1ibGVyPiB7CitwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklEIGRh
dGFUZW1wUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OmlwOwogICAgIHN0YXRpYyBjb25zdGV4cHIg
UmVnaXN0ZXJJRCBhZGRyZXNzVGVtcFJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpyNjsKIAotICAg
IHN0YXRpYyBjb25zdGV4cHIgQVJNUmVnaXN0ZXJzOjpGUERvdWJsZVJlZ2lzdGVySUQgZnBUZW1w
UmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OmQ3OworcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3Rl
eHByIEFSTVJlZ2lzdGVyczo6RlBEb3VibGVSZWdpc3RlcklEIGZwVGVtcFJlZ2lzdGVyID0gQVJN
UmVnaXN0ZXJzOjpkMTU7CiAgICAgaW5saW5lIEFSTVJlZ2lzdGVyczo6RlBTaW5nbGVSZWdpc3Rl
cklEIGZwVGVtcFJlZ2lzdGVyQXNTaW5nbGUoKSB7IHJldHVybiBBUk1SZWdpc3RlcnM6OmFzU2lu
Z2xlKGZwVGVtcFJlZ2lzdGVyKTsgfQogCiAgICAgLy8gSW4gdGhlIFRodW1iLTIgaW5zdHJ1Y3Rp
b24gc2V0LCBpbnN0cnVjdGlvbnMgb3BlcmF0aW5nIG9ubHkgb24gcmVnaXN0ZXJzIHIwLXI3IGNh
biBvZnRlbgpAQCAtMTQxNiw2ICsxNDE4LDEyIEBAIHB1YmxpYzoKICAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiAKKyAgICB2b2lkIGNvbnZlcnRJbnQzMlRvRmxvYXQoUmVnaXN0ZXJJRCBzcmMsIEZQ
UmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIudm1vdihmcFRlbXBS
ZWdpc3Rlciwgc3JjLCBzcmMpOworICAgICAgICBtX2Fzc2VtYmxlci52Y3Z0X3NpZ25lZFRvRmxv
YXRpbmdQb2ludChkZXN0LCBmcFRlbXBSZWdpc3RlckFzU2luZ2xlKCksIC8qIHRvRG91YmxlOiAq
LyBmYWxzZSk7CisgICAgfQorCiAgICAgdm9pZCBjb252ZXJ0SW50MzJUb0RvdWJsZShSZWdpc3Rl
cklEIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci52
bW92KGZwVGVtcFJlZ2lzdGVyLCBzcmMsIHNyYyk7CkBAIC0yMjQ5LDYgKzIyNTcsMTQgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gQ2FsbChtX2Fzc2VtYmxlci5ieChkYXRhVGVtcFJlZ2lzdGVy
KSwgQ2FsbDo6TGlua2FibGVOZWFyVGFpbCk7CiAgICAgfQogCisgICAgLy8gRklYTUU6IHdoeSBp
cyB0aGlzIHRoZSBzYW1lIHRoYW4gbmVhckNhbGwoKSBpbiBBUk02ND8gaXMgaXQgcmlnaHQ/Cisg
ICAgQUxXQVlTX0lOTElORSBDYWxsIHRocmVhZFNhZmVQYXRjaGFibGVOZWFyQ2FsbCgpCisgICAg
eworICAgICAgICBpbnZhbGlkYXRlQWxsVGVtcFJlZ2lzdGVycygpOworICAgICAgICBtb3ZlRml4
ZWRXaWR0aEVuY29kaW5nKFRydXN0ZWRJbW0zMigwKSwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAg
ICAgIHJldHVybiBDYWxsKG1fYXNzZW1ibGVyLmJseChkYXRhVGVtcFJlZ2lzdGVyKSwgQ2FsbDo6
TGlua2FibGVOZWFyKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIENhbGwgY2FsbChQdHJU
YWcpCiAgICAgewogICAgICAgICBtb3ZlRml4ZWRXaWR0aEVuY29kaW5nKFRydXN0ZWRJbW0zMigw
KSwgZGF0YVRlbXBSZWdpc3Rlcik7CkBAIC0yMjczLDYgKzIyODksMTIgQEAgcHVibGljOgogICAg
IEFMV0FZU19JTkxJTkUgQ2FsbCBjYWxsKFJlZ2lzdGVySUQgdGFyZ2V0LCBSZWdpc3RlcklEIGNh
bGxUYWcpIHsgcmV0dXJuIFVOVVNFRF9QQVJBTShjYWxsVGFnKSwgY2FsbCh0YXJnZXQsIE5vUHRy
VGFnKTsgfQogICAgIEFMV0FZU19JTkxJTkUgQ2FsbCBjYWxsKEFkZHJlc3MgYWRkcmVzcywgUmVn
aXN0ZXJJRCBjYWxsVGFnKSB7IHJldHVybiBVTlVTRURfUEFSQU0oY2FsbFRhZyksIGNhbGwoYWRk
cmVzcywgTm9QdHJUYWcpOyB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgY2FsbE9wZXJhdGlv
bihjb25zdCBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+IG9wZXJhdGlvbikKKyAgICB7Cisg
ICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihvcGVyYXRpb24uZXhlY3V0YWJsZUFkZHJlc3MoKSks
IGFkZHJlc3NUZW1wUmVnaXN0ZXIpOworICAgICAgICBjYWxsKGFkZHJlc3NUZW1wUmVnaXN0ZXIs
IE9wZXJhdGlvblB0clRhZyk7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHJldCgp
CiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5ieChsaW5rUmVnaXN0ZXIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1ZhbHVlUmVwLmgKaW5kZXggMTU3YmM4ODY4MjMxLi43NjkzOGM2ZmVjYWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlUmVwLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAuaApAQCAtMTI2LDkgKzEyNiwxMyBA
QCBwdWJsaWM6CiAgICAgVmFsdWVSZXAoV2FzbTo6VmFsdWVMb2NhdGlvbiBsb2NhdGlvbikKICAg
ICB7CiAgICAgICAgIHN3aXRjaCAobG9jYXRpb24ua2luZCgpKSB7Ci0gICAgICAgIGNhc2UgV2Fz
bTo6VmFsdWVMb2NhdGlvbjo6S2luZDo6UmVnaXN0ZXI6CisgICAgICAgIGNhc2UgV2FzbTo6VmFs
dWVMb2NhdGlvbjo6S2luZDo6R1BSUmVnaXN0ZXI6CiAgICAgICAgICAgICBtX2tpbmQgPSBSZWdp
c3RlcjsKLSAgICAgICAgICAgIHUucmVnID0gbG9jYXRpb24ucmVnKCk7CisgICAgICAgICAgICB1
LnJlZyA9IGxvY2F0aW9uLmpzcigpLnBheWxvYWRHUFIoKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIFdhc206OlZhbHVlTG9jYXRpb246OktpbmQ6OkZQUlJlZ2lzdGVyOgorICAg
ICAgICAgICAgbV9raW5kID0gUmVnaXN0ZXI7CisgICAgICAgICAgICB1LnJlZyA9IGxvY2F0aW9u
LmZwcigpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2FzbTo6VmFsdWVMb2Nh
dGlvbjo6S2luZDo6U3RhY2s6CiAgICAgICAgICAgICBtX2tpbmQgPSBTdGFjazsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCmluZGV4IDA4
YTIzNTgwNDRmZC4uMDAwMTQ3OTcwNDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKQEAgLTQxMyw3ICs0MTMsNyBAQCBDU3RyaW5n
IEJ5dGVjb2RlRHVtcGVyOjpmb3JtYXRDb25zdGFudChUeXBlIHR5cGUsIHVpbnQ2NF90IGNvbnN0
YW50KSBjb25zdAogICAgICAgICBpZiAoaXNGdW5jcmVmKHR5cGUpIHx8IGlzRXh0ZXJucmVmKHR5
cGUpKSB7CiAgICAgICAgICAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKGNvbnN0YW50KSA9PSBqc051
bGwoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gIm51bGwiOwotICAgICAgICAgICAgcmV0dXJu
IHRvQ1N0cmluZyhSYXdQb2ludGVyKGJpdHdpc2VfY2FzdDx2b2lkKj4oY29uc3RhbnQpKSk7Cisg
ICAgICAgICAgICByZXR1cm4gdG9DU3RyaW5nKFJhd1BvaW50ZXIoYml0d2lzZV9jYXN0PHZvaWQq
PihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KGNvbnN0YW50KSkpKTsKICAgICAgICAgfQogCiAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKaW5kZXggYjRmY2JhY2ZjMGUyLi41ZTJmYzliNGNj
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJh
bWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgK
QEAgLTE2Nyw4ICsxNjcsOCBAQCBuYW1lc3BhY2UgSlNDICB7CiAgICAgICAgIC8vIHRvIHNlZSBp
ZiBpdCdzIGEgY2VsbCwgYW5kIGlmIGl0J3Mgbm90LCB3ZSB0aHJvdyBhbiBleGNlcHRpb24uCiAg
ICAgICAgIGlubGluZSBKU1ZhbHVlIGd1YXJhbnRlZWRKU1ZhbHVlQ2FsbGVlKCkgY29uc3Q7CiAg
ICAgICAgIGlubGluZSBKU09iamVjdCoganNDYWxsZWUoKSBjb25zdDsKLSAgICAgICAgQ2FsbGVl
Qml0cyBjYWxsZWUoKSBjb25zdCB7IHJldHVybiBDYWxsZWVCaXRzKHRoaXNbc3RhdGljX2Nhc3Q8
aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXS5wb2ludGVyKCkpOyB9Ci0gICAgICAgIFNVUFBS
RVNTX0FTQU4gQ2FsbGVlQml0cyB1bnNhZmVDYWxsZWUoKSBjb25zdCB7IHJldHVybiBDYWxsZWVC
aXRzKHRoaXNbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXS5hc2FuVW5z
YWZlUG9pbnRlcigpKTsgfQorICAgICAgICBDYWxsZWVCaXRzIGNhbGxlZSgpIGNvbnN0IHsgcmV0
dXJuIENhbGxlZUJpdHModGhpc1tzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxl
ZSldLnVuYm94ZWRJbnQ2NCgpKTsgfQorICAgICAgICBTVVBQUkVTU19BU0FOIENhbGxlZUJpdHMg
dW5zYWZlQ2FsbGVlKCkgY29uc3QgeyByZXR1cm4gQ2FsbGVlQml0cyh0aGlzW3N0YXRpY19jYXN0
PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0uYXNhblVuc2FmZVVuYm94ZWRJbnQ2NCgpKTsg
fQogICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaygpIGNvbnN0OwogICAgICAgICBDb2RlQmxv
Y2sqKiBhZGRyZXNzT2ZDb2RlQmxvY2soKSBjb25zdCB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8Q29k
ZUJsb2NrKio+KHRoaXMgKyBzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNvZGVCbG9j
aykpOyB9CiAgICAgICAgIGlubGluZSBTVVBQUkVTU19BU0FOIENvZGVCbG9jayogdW5zYWZlQ29k
ZUJsb2NrKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvQ2FsbGVlQml0cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0Nh
bGxlZUJpdHMuaAppbmRleCAxOGJiN2VmN2ZhOGMuLjNjZWJkOTE4NjA3YSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxlZUJpdHMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbGVlQml0cy5oCkBAIC0zOSwxMSArMzks
MjEgQEAgY2xhc3MgSlNDZWxsOwogY2xhc3MgQ2FsbGVlQml0cyB7CiBwdWJsaWM6CiAgICAgQ2Fs
bGVlQml0cygpID0gZGVmYXVsdDsKLSAgICBDYWxsZWVCaXRzKHZvaWQqIHB0cikgOiBtX3B0cihw
dHIpIHsgfSAKKyAgICBDYWxsZWVCaXRzKGludDY0X3QgdmFsdWUpCisjaWYgVVNFKEpTVkFMVUU2
NCkKKyAgICAgICAgOiBtX3B0ciB7IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHZhbHVlKSB9Cisj
ZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICA6IG1fcHRyIHsgcmVpbnRlcnByZXRfY2Fz
dDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludHB0cl90Pih2YWx1ZSA+PiAoUGF5bG9hZE9mZnNldCAq
IENIQVJfQklUKSkpIH0KKyAgICAgICAgLCBtX3RhZyB7IHN0YXRpY19jYXN0PHVpbnQzMl90Pih2
YWx1ZSA+PiAoVGFnT2Zmc2V0ICogQ0hBUl9CSVQpKSB9CisjZW5kaWYKKyAgICB7IH0KIAogICAg
IENhbGxlZUJpdHMmIG9wZXJhdG9yPShKU0NlbGwqIGNlbGwpCiAgICAgewogICAgICAgICBtX3B0
ciA9IGNlbGw7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgbV90YWcgPSBKU1ZhbHVl
OjpDZWxsVGFnOworI2VuZGlmCiAgICAgICAgIEFTU0VSVChpc0NlbGwoKSk7CiAgICAgICAgIHJl
dHVybiAqdGhpczsKICAgICB9CkBAIC01MSwxOCArNjEsMjQgQEAgcHVibGljOgogI2lmIEVOQUJM
RShXRUJBU1NFTUJMWSkKICAgICBzdGF0aWMgdm9pZCogYm94V2FzbShXYXNtOjpDYWxsZWUqIGNh
bGxlZSkKICAgICB7Ci0gICAgICAgIENhbGxlZUJpdHMgcmVzdWx0KHJlaW50ZXJwcmV0X2Nhc3Q8
dm9pZCo+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihjYWxsZWUpIHwgSlNWYWx1ZTo6V2Fz
bVRhZykpOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIENhbGxlZUJpdHMgcmVzdWx0IHsg
cmVpbnRlcnByZXRfY2FzdDxpbnQ2NF90PihjYWxsZWUpIHwgSlNWYWx1ZTo6V2FzbVRhZyB9Owog
ICAgICAgICBBU1NFUlQocmVzdWx0LmlzV2FzbSgpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdC5y
YXdQdHIoKTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJldHVybiBjYWxsZWU7
IC8vIFRoZSBwb2ludGVyIGlzIGFzIGlzLCBidXQgdGhlIGNvcnJlc3BvbmRpbmcgdGFnIGZpZWxk
IG5lZWRzIHRvIGJlIHNldCB0byBXYXNtVGFnIHNlcGFyYXRlbHkuCisjZW5kaWYKICAgICB9CiAj
ZW5kaWYKIAogICAgIGJvb2wgaXNXYXNtKCkgY29uc3QKICAgICB7Ci0jaWYgRU5BQkxFKFdFQkFT
U0VNQkxZKQotICAgICAgICByZXR1cm4gKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtX3B0
cikgJiBKU1ZhbHVlOjpXYXNtTWFzaykgPT0gSlNWYWx1ZTo6V2FzbVRhZzsKLSNlbHNlCisjaWYg
IUVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworI2VsaWYgVVNFKEpT
VkFMVUU2NCkKKyAgICAgICAgcmV0dXJuIChyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4obV9w
dHIpICYgSlNWYWx1ZTo6V2FzbU1hc2spID09IEpTVmFsdWU6Oldhc21UYWc7CisjZWxpZiBVU0Uo
SlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4gbV90YWcgPT0gSlNWYWx1ZTo6V2FzbVRhZzsK
ICNlbmRpZgogICAgIH0KICAgICBib29sIGlzQ2VsbCgpIGNvbnN0IHsgcmV0dXJuICFpc1dhc20o
KTsgfQpAQCAtNzcsMTQgKzkzLDIxIEBAIHB1YmxpYzoKICAgICBXYXNtOjpDYWxsZWUqIGFzV2Fz
bUNhbGxlZSgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQoaXNXYXNtKCkpOworI2lmIFVT
RShKU1ZBTFVFNjQpCiAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFdhc206OkNhbGxl
ZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtX3B0cikgJiB+SlNWYWx1ZTo6V2FzbVRh
Zyk7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxXYXNtOjpDYWxsZWUqPihtX3B0cik7CisjZW5kaWYKICAgICB9CiAjZW5kaWYKIAogICAg
IHZvaWQqIHJhd1B0cigpIGNvbnN0IHsgcmV0dXJuIG1fcHRyOyB9Ci0gICAgCisKIHByaXZhdGU6
CiAgICAgdm9pZCogbV9wdHIgeyBudWxscHRyIH07CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAg
ICB1aW50MzJfdCBtX3RhZyB7IEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcgfTsKKyNlbmRpZgogfTsK
IAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9SZWdpc3Rlci5oCmluZGV4IGQ4NzljOTBiZTMxMS4uNDYxODEzYzQxZDMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaApAQCAtNzIsNiArNzIsMTAg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGludDY0X3QgdW5ib3hlZEludDY0KCkgY29uc3Q7
CiAgICAgICAgIGludDY0X3QgYXNhblVuc2FmZVVuYm94ZWRJbnQ2NCgpIGNvbnN0OwogICAgICAg
ICBib29sIHVuYm94ZWRCb29sZWFuKCkgY29uc3Q7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAm
JiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBmbG9hdCB1bmJveGVkRmxvYXQoKSBjb25zdDsK
KyAgICAgICAgZmxvYXQgYXNhblVuc2FmZVVuYm94ZWRGbG9hdCgpIGNvbnN0OworI2VuZGlmCiAg
ICAgICAgIGRvdWJsZSB1bmJveGVkRG91YmxlKCkgY29uc3Q7CiAgICAgICAgIGRvdWJsZSBhc2Fu
VW5zYWZlVW5ib3hlZERvdWJsZSgpIGNvbnN0OwogICAgICAgICBKU0NlbGwqIHVuYm94ZWRDZWxs
KCkgY29uc3Q7CkBAIC0xODgsNiArMTkyLDE4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBy
ZXR1cm4gISFwYXlsb2FkKCk7CiAgICAgfQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgIEFMV0FZU19JTkxJTkUgZmxvYXQgUmVnaXN0ZXI6OnVuYm94
ZWRGbG9hdCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGZsb2F0
PihwYXlsb2FkKCkpOworICAgIH0KKworICAgIFNVUFBSRVNTX0FTQU4gQUxXQVlTX0lOTElORSBm
bG9hdCBSZWdpc3Rlcjo6YXNhblVuc2FmZVVuYm94ZWRGbG9hdCgpIGNvbnN0CisgICAgeworICAg
ICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGZsb2F0PihwYXlsb2FkKCkpOworICAgIH0KKyNlbmRp
ZgorCiAgICAgQUxXQVlTX0lOTElORSBkb3VibGUgUmVnaXN0ZXI6OnVuYm94ZWREb3VibGUoKSBj
b25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHUubnVtYmVyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXggMWI5MDI4OTkyMDVmLi5lOTk0ZGUzMjIz
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAt
MTM4NCw3ICsxMzg0LDEwIEBAIHB1YmxpYzoKICAgICAgICAgaml0QXNzZXJ0SXNKU0RvdWJsZShn
cHIpOwogICAgICAgICByZXR1cm4gdW5ib3hEb3VibGVXaXRob3V0QXNzZXJ0aW9ucyhncHIsIHJl
c3VsdEdQUiwgZnByLCBtb2RlKTsKICAgICB9Ci0gICAgCisgICAgdm9pZCB1bmJveERvdWJsZShK
U1ZhbHVlUmVncyByZWdzLCBGUFJSZWcgZnByKQorICAgIHsKKyAgICAgICAgdW5ib3hEb3VibGUo
cmVncy50YWdHUFIoKSwgcmVncy5wYXlsb2FkR1BSKCksIGZwcik7CisgICAgfQogICAgIHZvaWQg
Ym94RG91YmxlKEZQUlJlZyBmcHIsIEpTVmFsdWVSZWdzIHJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUg
bW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCiAgICAgewogICAgICAgICBib3hEb3VibGUoZnByLCBy
ZWdzLmdwcigpLCBtb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
UmVnaXN0ZXJBdE9mZnNldExpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdp
c3RlckF0T2Zmc2V0TGlzdC5jcHAKaW5kZXggZWQ4MzAzZGU0MWI1Li5iYWQyMDI5ZjdjZjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3Qu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3Qu
Y3BwCkBAIC0zOSwxOCArMzksNDIgQEAgUmVnaXN0ZXJBdE9mZnNldExpc3Q6OlJlZ2lzdGVyQXRP
ZmZzZXRMaXN0KCkgeyB9CiBSZWdpc3RlckF0T2Zmc2V0TGlzdDo6UmVnaXN0ZXJBdE9mZnNldExp
c3QoUmVnaXN0ZXJTZXQgcmVnaXN0ZXJTZXQsIE9mZnNldEJhc2VUeXBlIG9mZnNldEJhc2VUeXBl
KQogICAgIDogbV9yZWdpc3RlcnMocmVnaXN0ZXJTZXQubnVtYmVyT2ZTZXRSZWdpc3RlcnMoKSkK
IHsKLSAgICBzaXplX3QgbnVtYmVyT2ZSZWdpc3RlcnMgPSByZWdpc3RlclNldC5udW1iZXJPZlNl
dFJlZ2lzdGVycygpOwotICAgIHB0cmRpZmZfdCBvZmZzZXQgPSAwOwotICAgIAorICAgIGNvbnN0
ZXhwciBzaXplX3QgU2l6ZU9mR1BSID0gc2l6ZW9mKENQVVJlZ2lzdGVyKTsKKyAgICBjb25zdGV4
cHIgc2l6ZV90IFNpemVPZkZQUiA9IHNpemVvZihkb3VibGUpOworCisjaWYgVVNFKEpTVkFMVUU2
NCkKKyAgICBzdGF0aWNfYXNzZXJ0KFNpemVPZkdQUiA9PSBTaXplT2ZGUFIpOworICAgIHNpemVf
dCBudW1iZXJPZlJlZ3MgPSByZWdpc3RlclNldC5udW1iZXJPZlNldFJlZ2lzdGVycygpOworICAg
IG1fc2l6ZU9mQXJlYUluQnl0ZXMgPSBudW1iZXJPZlJlZ3MgKiBTaXplT2ZHUFI7CisjZWxpZiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgIHN0YXRpY19hc3NlcnQoMiAqIFNpemVPZkdQUiA9PSBTaXpl
T2ZGUFIpOworICAgIHNpemVfdCBudW1iZXJPZkdQUnMgPSByZWdpc3RlclNldC5udW1iZXJPZlNl
dEdQUnMoKTsKKyAgICBzaXplX3QgbnVtYmVyT2ZGUFJzID0gcmVnaXN0ZXJTZXQubnVtYmVyT2ZT
ZXRGUFJzKCk7CisgICAgaWYgKG51bWJlck9mRlBScykKKyAgICAgICAgbnVtYmVyT2ZHUFJzID0g
V1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mPDI+KG51bWJlck9mR1BScyk7CisgICAgbV9zaXplT2ZB
cmVhSW5CeXRlcyA9IG51bWJlck9mR1BScyAqIFNpemVPZkdQUiArIG51bWJlck9mRlBScyAqIFNp
emVPZkZQUjsKKyNlbmRpZgorCisgICAgcHRyZGlmZl90IHN0YXJ0T2Zmc2V0ID0gMDsKICAgICBp
ZiAob2Zmc2V0QmFzZVR5cGUgPT0gRnJhbWVQb2ludGVyQmFzZWQpCi0gICAgICAgIG9mZnNldCA9
IC0oc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihudW1iZXJPZlJlZ2lzdGVycykgKiBzaXplb2YoQ1BV
UmVnaXN0ZXIpKTsKKyAgICAgICAgc3RhcnRPZmZzZXQgPSAtc3RhdGljX2Nhc3Q8cHRyZGlmZl90
PihtX3NpemVPZkFyZWFJbkJ5dGVzKTsKIAorICAgIHB0cmRpZmZfdCBvZmZzZXQgPSBzdGFydE9m
ZnNldDsKICAgICB1bnNpZ25lZCBpbmRleCA9IDA7CiAgICAgcmVnaXN0ZXJTZXQuZm9yRWFjaChb
Jl0gKFJlZyByZWcpIHsKKyAgICAgICAgc2l6ZV90IHJlZ2lzdGVyU2l6ZSA9IFNpemVPZkdQUjsK
KyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBpZiAocmVnLmlzRlBSKCkpIHsKKyAgICAg
ICAgICAgIHJlZ2lzdGVyU2l6ZSA9IFNpemVPZkZQUjsKKyAgICAgICAgICAgIG9mZnNldCA9IFdU
Rjo6cm91bmRVcFRvTXVsdGlwbGVPZjxTaXplT2ZGUFI+KG9mZnNldCk7CisgICAgICAgIH0KKyNl
bmRpZgogICAgICAgICBtX3JlZ2lzdGVyc1tpbmRleF0gPSBSZWdpc3RlckF0T2Zmc2V0KHJlZywg
b2Zmc2V0KTsKLSAgICAgICAgb2Zmc2V0ICs9IHNpemVvZihDUFVSZWdpc3Rlcik7CisgICAgICAg
IG9mZnNldCArPSByZWdpc3RlclNpemU7CiAgICAgICAgICsraW5kZXg7CiAgICAgfSk7CisKKyAg
ICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihvZmZzZXQgLSBzdGFydE9mZnNldCkgPT0gbV9z
aXplT2ZBcmVhSW5CeXRlcyk7CiB9CiAKIHZvaWQgUmVnaXN0ZXJBdE9mZnNldExpc3Q6OmR1bXAo
UHJpbnRTdHJlYW0mIG91dCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
UmVnaXN0ZXJBdE9mZnNldExpc3QuaAppbmRleCBkMTE3Y2Y3NWUwOTguLjJhMGU4YjlkMTI1NSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlz
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3Qu
aApAQCAtNjUsMTEgKzY1LDE0IEBAIHB1YmxpYzoKICAgICBGaXhlZFZlY3RvcjxSZWdpc3RlckF0
T2Zmc2V0Pjo6Y29uc3RfaXRlcmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVybiBtX3JlZ2lzdGVy
cy5iZWdpbigpOyB9CiAgICAgRml4ZWRWZWN0b3I8UmVnaXN0ZXJBdE9mZnNldD46OmNvbnN0X2l0
ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaXN0ZXJzLmVuZCgpOyB9CiAKKyAgICBz
aXplX3Qgc2l6ZU9mQXJlYUluQnl0ZXMoKSBjb25zdCB7IHJldHVybiBtX3NpemVPZkFyZWFJbkJ5
dGVzOyB9CisKICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJBdE9mZnNldExpc3QmIGxsaW50QmFz
ZWxpbmVDYWxsZWVTYXZlUmVnaXN0ZXJzKCk7IC8vIFJlZ2lzdGVycyBhbmQgT2Zmc2V0cyBzYXZl
ZCBhbmQgdXNlZCBieSB0aGUgTExJbnQuCiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVyQXRPZmZz
ZXRMaXN0JiBkZmdDYWxsZWVTYXZlUmVnaXN0ZXJzKCk7IC8vIFJlZ2lzdGVycyBhbmQgT2Zmc2V0
cyBzYXZlZCBhbmQgdXNlZCBieSBERkcuCiAKIHByaXZhdGU6CiAgICAgRml4ZWRWZWN0b3I8UmVn
aXN0ZXJBdE9mZnNldD4gbV9yZWdpc3RlcnM7CisgICAgc2l6ZV90IG1fc2l6ZU9mQXJlYUluQnl0
ZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9S
ZWdpc3RlclNldC5jcHAKaW5kZXggYjJlZmY2NTI0YzRiLi43NTZjOWU1NzBmNDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuY3BwCkBAIC05NCw2ICs5NCw4IEBAIFJl
Z2lzdGVyU2V0IFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKQogICAgIHJldHVy
biBSZWdpc3RlclNldChNYWNyb0Fzc2VtYmxlcjo6c19zY3JhdGNoUmVnaXN0ZXIpOwogI2VsaWYg
Q1BVKEFSTTY0KSB8fCBDUFUoUklTQ1Y2NCkKICAgICByZXR1cm4gUmVnaXN0ZXJTZXQoTWFjcm9B
c3NlbWJsZXI6OmRhdGFUZW1wUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjptZW1vcnlUZW1wUmVn
aXN0ZXIpOworI2VsaWYgQ1BVKEFSTSkKKyAgICByZXR1cm4gUmVnaXN0ZXJTZXQoTWFjcm9Bc3Nl
bWJsZXI6OmRhdGFUZW1wUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjphZGRyZXNzVGVtcFJlZ2lz
dGVyKTsKICNlbGlmIENQVShNSVBTKQogICAgIFJlZ2lzdGVyU2V0IHJlc3VsdDsKICAgICByZXN1
bHQuc2V0KE1hY3JvQXNzZW1ibGVyOjppbW1UZW1wUmVnaXN0ZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCmluZGV4IGU3NmRh
ZGEwZDMzMi4uYjQ3MDMxMTViM2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCkBAIC0xNDMsNiArMTQzLDEyIEBACiAjZGVm
aW5lIE9GRkxJTkVfQVNNX0pTVkFMVUU2NCAwCiAjZW5kaWYKIAorI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCisjZGVmaW5lIE9GRkxJTkVfQVNNX0pTVkFMVUUzMl82NCAxCisjZWxzZQorI2RlZmluZSBP
RkZMSU5FX0FTTV9KU1ZBTFVFMzJfNjQgMAorI2VuZGlmCisKICNpZiBVU0UoQklHSU5UMzIpCiAj
ZGVmaW5lIE9GRkxJTkVfQVNNX0JJR0lOVDMyIDEKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbSBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCmluZGV4
IGFkMjUwMTdlZjBiNC4uNzA0MDFlNDViZTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtMzgsMTgg
KzM4LDM0IEBAIG1hY3JvIGdldHVPcGVyYW5kV2lkZTE2SlMob3Bjb2RlU3RydWN0LCBmaWVsZE5h
bWUsIGRzdCkKICAgICBsb2FkaCBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFtZSVf
aW5kZXggKiAyICsgT3Bjb2RlSURXaWRlMTZTaXplSlNbUEIsIFBDLCAxXSwgZHN0CiBlbmQKIAor
bWFjcm8gZ2V0dU9wZXJhbmRXaWRlMTZXYXNtKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3Qp
CisgICAgbG9hZGggY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICog
MiArIE9wY29kZUlEV2lkZTE2U2l6ZVdhc21bUEIsIFBDLCAxXSwgZHN0CitlbmQKKwogbWFjcm8g
Z2V0T3BlcmFuZFdpZGUxNkpTKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCiAgICAgbG9h
ZGhzaSBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiAyICsgT3Bj
b2RlSURXaWRlMTZTaXplSlNbUEIsIFBDLCAxXSwgZHN0CiBlbmQKIAorbWFjcm8gZ2V0T3BlcmFu
ZFdpZGUxNldhc20ob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkKKyAgICBsb2FkaHNpIGNv
bnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRleCAqIDIgKyBPcGNvZGVJRFdp
ZGUxNlNpemVXYXNtW1BCLCBQQywgMV0sIGRzdAorZW5kCisKIG1hY3JvIGdldHVPcGVyYW5kV2lk
ZTMySlMob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkKICAgICBsb2FkaSBjb25zdGV4cHIg
JW9wY29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiA0ICsgT3Bjb2RlSURXaWRlMzJTaXpl
SlNbUEIsIFBDLCAxXSwgZHN0CiBlbmQKIAorbWFjcm8gZ2V0dU9wZXJhbmRXaWRlMzJXYXNtKG9w
Y29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCisgICAgbG9hZGkgY29uc3RleHByICVvcGNvZGVT
dHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogNCArIE9wY29kZUlEV2lkZTMyU2l6ZVdhc21bUEIs
IFBDLCAxXSwgZHN0CitlbmQKKwogbWFjcm8gZ2V0T3BlcmFuZFdpZGUzMkpTKG9wY29kZVN0cnVj
dCwgZmllbGROYW1lLCBkc3QpCiAgICAgbG9hZGlzIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8l
ZmllbGROYW1lJV9pbmRleCAqIDQgKyBPcGNvZGVJRFdpZGUzMlNpemVKU1tQQiwgUEMsIDFdLCBk
c3QKIGVuZAogCittYWNybyBnZXRPcGVyYW5kV2lkZTMyV2FzbShvcGNvZGVTdHJ1Y3QsIGZpZWxk
TmFtZSwgZHN0KQorICAgIGxvYWRpcyBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFt
ZSVfaW5kZXggKiA0ICsgT3Bjb2RlSURXaWRlMzJTaXplV2FzbVtQQiwgUEMsIDFdLCBkc3QKK2Vu
ZAorCiBtYWNybyBtYWtlUmV0dXJuKGdldCwgZGlzcGF0Y2gsIGZuKQogICAgIGZuKG1hY3JvKHRh
ZywgcGF5bG9hZCkKICAgICAgICAgbW92ZSB0YWcsIHQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHkuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L1dlYkFzc2VtYmx5LmFzbQppbmRleCAyNGMxNGIzZjhmNmIuLmE3NGU4YzkwMjlkZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5LmFzbQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHkuYXNtCkBAIC0zMSw1
NiArMzEsODAgQEAgaWYgSEFWRV9GQVNUX1RMUwogZW5kCiAKIGlmIFg4Nl82NAotICAgIGNvbnN0
IE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyA9IDYKKyAgICBjb25zdCBOdW1iZXJPZldhc21Bcmd1
bWVudEpTUnMgPSA2CiBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAotICAgIGNvbnN0
IE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyA9IDgKKyAgICBjb25zdCBOdW1iZXJPZldhc21Bcmd1
bWVudEpTUnMgPSA4CitlbHNpZiBBUk12NworICAgIGNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50
SlNScyA9IDIKIGVsc2UKICAgICBlcnJvcgogZW5kCisKIGNvbnN0IE51bWJlck9mV2FzbUFyZ3Vt
ZW50RlBScyA9IDgKLWNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50cyA9IE51bWJlck9mV2FzbUFy
Z3VtZW50R1BScyArIE51bWJlck9mV2FzbUFyZ3VtZW50RlBScworCitjb25zdCBOdW1iZXJPZldh
c21Bcmd1bWVudHMgPSBOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyBOdW1iZXJPZldhc21Bcmd1
bWVudEZQUnMKIAogIyBBbGwgY2FsbGVlIHNhdmVzIG11c3QgbWF0Y2ggdGhlIGRlZmluaXRpb24g
aW4gV2FzbUNhbGxlZS5jcHAKIAogIyBUaGVzZSBtdXN0IG1hdGNoIHRoZSBkZWZpbml0aW9uIGlu
IFdhc21NZW1vcnlJbmZvcm1hdGlvbi5jcHAKLWNvbnN0IHdhc21JbnN0YW5jZSA9IGNzcjAKLWNv
bnN0IG1lbW9yeUJhc2UgPSBjc3IzCi1jb25zdCBib3VuZHNDaGVja2luZ1NpemUgPSBjc3I0Citp
ZiBYODZfNjQgb3IgQVJNNjQgb3IgQVJNNjRFCisgICAgY29uc3Qgd2FzbUluc3RhbmNlID0gY3Ny
MAorICAgIGNvbnN0IG1lbW9yeUJhc2UgPSBjc3IzCisgICAgY29uc3QgYm91bmRzQ2hlY2tpbmdT
aXplID0gY3NyNAorZWxzaWYgQVJNdjcKKyAgICBjb25zdCB3YXNtSW5zdGFuY2UgPSBjc3IwCisg
ICAgY29uc3QgbWVtb3J5QmFzZSA9IGludmFsaWRHUFIKKyAgICBjb25zdCBib3VuZHNDaGVja2lu
Z1NpemUgPSBpbnZhbGlkR1BSCitlbHNlCisgICAgZXJyb3IKK2VuZAogCiAjIFRoaXMgbXVzdCBt
YXRjaCB0aGUgZGVmaW5pdGlvbiBpbiBMb3dMZXZlbEludGVycHJldGVyLmFzbQogaWYgWDg2XzY0
CiAgICAgY29uc3QgUEIgPSBjc3IyCiBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAog
ICAgIGNvbnN0IFBCID0gY3NyNworZWxzaWYgQVJNdjcKKyAgICBjb25zdCBQQiA9IGNzcjEKIGVs
c2UKICAgICBlcnJvcgogZW5kCiAKLW1hY3JvIGZvckVhY2hBcmd1bWVudEdQUihmbikKLSAgICBm
bigwICogOCwgd2EwKQotICAgIGZuKDEgKiA4LCB3YTEpCi0gICAgZm4oMiAqIDgsIHdhMikKLSAg
ICBmbigzICogOCwgd2EzKQotICAgIGZuKDQgKiA4LCB3YTQpCi0gICAgZm4oNSAqIDgsIHdhNSkK
LSAgICBpZiBBUk02NCBvciBBUk02NEUKLSAgICAgICAgZm4oNiAqIDgsIHdhNikKLSAgICAgICAg
Zm4oNyAqIDgsIHdhNykKKyMgSGVscGVyIG1hY3JvcworCisjIE9uIEpTVkFMVUU2NCwgZWFjaCA2
NC1iaXQgYXJndW1lbnQgR1BSIGhvbGRzIG9uZSB3aG9sZSBXYXNtIHZhbHVlLgorIyBPbiBKU1ZB
TFVFMzJfNjQsIGEgY29uc2VjdXRpdmUgcGFpciBvZiBldmVuL29kZCBudW1iZXJlZCBHUFJzIGhv
bGQgYSBzaW5nbGUKKyMgV2FzbSB2YWx1ZSAoZXZlbiBpZiB0aGF0IHZhbHVlIGlzIGkzMi9mMzIs
IHRoZSBvZGQgbnVtYmVyZWQgR1BSIGhvbGRzIHRoZQorIyBtb3JlIHNpZ25pZmljYW50IHdvcmQp
LgorbWFjcm8gZm9yRWFjaEFyZ3VtZW50SlNSKGZuKQorICAgIGlmIEpTVkFMVUU2NAorICAgICAg
ICBmbigwICogOCwgd2EwKQorICAgICAgICBmbigxICogOCwgd2ExKQorICAgICAgICBmbigyICog
OCwgd2EyKQorICAgICAgICBmbigzICogOCwgd2EzKQorICAgICAgICBmbig0ICogOCwgd2E0KQor
ICAgICAgICBmbig1ICogOCwgd2E1KQorICAgICAgICBpZiBBUk02NCBvciBBUk02NEUKKyAgICAg
ICAgICAgIGZuKDYgKiA4LCB3YTYpCisgICAgICAgICAgICBmbig3ICogOCwgd2E3KQorICAgICAg
ICBlbmQKKyAgICBlbHNlCisgICAgICAgIGZuKDAgKiA4LCB3YTEsIHdhMCkKKyAgICAgICAgZm4o
MSAqIDgsIHdhMywgd2EyKQogICAgIGVuZAogZW5kCiAKIG1hY3JvIGZvckVhY2hBcmd1bWVudEZQ
UihmbikKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgMCkgKiA4LCB3ZmEwKQot
ICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyAxKSAqIDgsIHdmYTEpCi0gICAgZm4o
KE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDIpICogOCwgd2ZhMikKLSAgICBmbigoTnVtYmVy
T2ZXYXNtQXJndW1lbnRHUFJzICsgMykgKiA4LCB3ZmEzKQotICAgIGZuKChOdW1iZXJPZldhc21B
cmd1bWVudEdQUnMgKyA0KSAqIDgsIHdmYTQpCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50
R1BScyArIDUpICogOCwgd2ZhNSkKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsg
NikgKiA4LCB3ZmE2KQotICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyA3KSAqIDgs
IHdmYTcpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIDApICogOCwgd2ZhMCkK
KyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgMSkgKiA4LCB3ZmExKQorICAgIGZu
KChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyAyKSAqIDgsIHdmYTIpCisgICAgZm4oKE51bWJl
ck9mV2FzbUFyZ3VtZW50SlNScyArIDMpICogOCwgd2ZhMykKKyAgICBmbigoTnVtYmVyT2ZXYXNt
QXJndW1lbnRKU1JzICsgNCkgKiA4LCB3ZmE0KQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVu
dEpTUnMgKyA1KSAqIDgsIHdmYTUpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyAr
IDYpICogOCwgd2ZhNikKKyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgNykgKiA4
LCB3ZmE3KQogZW5kCiAKLSMgSGVscGVyIG1hY3JvcwogIyBGSVhNRTogRXZlbnR1YWxseSB0aGlz
IHNob3VsZCBiZSB1bmlmaWVkIHdpdGggdGhlIEpTIHZlcnNpb25zCiAjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2NTYKIApAQCAtMTMwLDEwICsxNTQsMTUgQEAg
bWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvclByb2xvZ3VlKGNvZGVCbG9ja1JlZ2lzdGVyKQogICAg
ICAgICAgICAgYnRweiByMCwgLnJlY292ZXIKICAgICAgICAgICAgIG1vdmUgcjAsIHdzMAogCi0g
ICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRHUFIobWFjcm8gKG9mZnNldCwgZ3ByKQoraWYgSlNW
QUxVRTY0CisgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3By
KQogICAgICAgICAgICAgICAgIGxvYWRxIC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNW
aXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBncHIKICAgICAgICAgICAgIGVuZCkKLQorZWxzZQor
ICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwck1zdywgZ3BM
c3cpCisgICAgICAgICAgICAgICAgbG9hZDJpYSAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFj
ZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXSwgZ3BMc3csIGdwck1zdworICAgICAgICAgICAg
ZW5kKQorZW5kCiAgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRGUFIobWFjcm8gKG9mZnNldCwg
ZnByKQogICAgICAgICAgICAgICAgIGxvYWRkIC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNl
QXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBmcHIKICAgICAgICAgICAgIGVuZCkKQEAgLTIw
MSw2ICsyMzAsOSBAQCBtYWNybyBwcmVzZXJ2ZUNhbGxlZVNhdmVzVXNlZEJ5V2FzbSgpCiAgICAg
ZWxzaWYgWDg2XzY0IG9yIFJJU0NWNjQKICAgICAgICAgc3RvcmVwIFBCLCAtMHg4W2Nmcl0KICAg
ICAgICAgc3RvcmVwIHdhc21JbnN0YW5jZSwgLTB4MTBbY2ZyXQorICAgIGVsc2lmIEFSTXY3Cisg
ICAgICAgIHN0b3JlcCBQQiwgLTRbY2ZyXQorICAgICAgICBzdG9yZXAgd2FzbUluc3RhbmNlLCAt
OFtjZnJdCiAgICAgZWxzZQogICAgICAgICBlcnJvcgogICAgIGVuZApAQCAtMjE1LDYgKzI0Nyw5
IEBAIG1hY3JvIHJlc3RvcmVDYWxsZWVTYXZlc1VzZWRCeVdhc20oKQogICAgIGVsc2lmIFg4Nl82
NCBvciBSSVNDVjY0CiAgICAgICAgIGxvYWRwIC0weDhbY2ZyXSwgUEIKICAgICAgICAgbG9hZHAg
LTB4MTBbY2ZyXSwgd2FzbUluc3RhbmNlCisgICAgZWxzaWYgQVJNdjcKKyAgICAgICAgbG9hZHAg
LTRbY2ZyXSwgUEIKKyAgICAgICAgbG9hZHAgLThbY2ZyXSwgd2FzbUluc3RhbmNlCiAgICAgZWxz
ZQogICAgICAgICBlcnJvcgogICAgIGVuZApAQCAtMjQ1LDEwICsyODAsMTIgQEAgZW5kCiBlbmQK
IAogbWFjcm8gcmVsb2FkTWVtb3J5UmVnaXN0ZXJzRnJvbUluc3RhbmNlKGluc3RhbmNlLCBzY3Jh
dGNoMSwgc2NyYXRjaDIpCitpZiBub3QgQVJNdjcKICAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6
bV9jYWNoZWRNZW1vcnlbaW5zdGFuY2VdLCBtZW1vcnlCYXNlCiAgICAgbG9hZHAgV2FzbTo6SW5z
dGFuY2U6Om1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplW2luc3RhbmNlXSwgYm91bmRzQ2hlY2tp
bmdTaXplCiAgICAgY2FnZWRQcmltaXRpdmVNYXlCZU51bGwobWVtb3J5QmFzZSwgYm91bmRzQ2hl
Y2tpbmdTaXplLCBzY3JhdGNoMSwgc2NyYXRjaDIpICMgSWYgYm91bmRzQ2hlY2tpbmdTaXplIGlz
IDAsIHBvaW50ZXIgY2FuIGJlIGEgbnVsbHB0ci4KIGVuZAorZW5kCiAKIG1hY3JvIHRocm93RXhj
ZXB0aW9uKGV4Y2VwdGlvbikKICAgICBzdG9yZWkgY29uc3RleHByIFdhc206OkV4Y2VwdGlvblR5
cGU6OiVleGNlcHRpb24lLCBBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyArIFBheWxvYWRPZmZz
ZXRbY2ZyXQpAQCAtMjgwLDggKzMxNywxMyBAQCBtYWNybyByZXN0b3JlU3RhY2tQb2ludGVyQWZ0
ZXJDYWxsKCkKICAgICBsb2FkaSBXYXNtOjpMTEludENhbGxlZTo6bV9udW1DYWxsZWVMb2NhbHNb
d3MxXSwgd3MxCiAgICAgbHNoaWZ0cCAzLCB3czEKICAgICBhZGRwIG1heEZyYW1lRXh0ZW50Rm9y
U2xvd1BhdGhDYWxsLCB3czEKK2lmIEFSTXY3CisgICAgc3VicCBjZnIsIHdzMSwgd3MxCisgICAg
bW92ZSB3czEsIHNwCitlbHNlCiAgICAgc3VicCBjZnIsIHdzMSwgc3AKIGVuZAorZW5kCiAKIG1h
Y3JvIHdhc21Qcm9sb2d1ZShsb2FkV2FzbUluc3RhbmNlKQogICAgICMgU2V0IHVwIHRoZSBjYWxs
IGZyYW1lIGFuZCBjaGVjayBpZiB3ZSBzaG91bGQgT1NSLgpAQCAtMjkyLDYgKzMzNCw5IEBAIG1h
Y3JvIHdhc21Qcm9sb2d1ZShsb2FkV2FzbUluc3RhbmNlKQogCiAgICAgbG9hZHAgV2FzbTo6SW5z
dGFuY2U6Om1fb3duZXJbd2FzbUluc3RhbmNlXSwgd3MwCiAgICAgc3RvcmVwIHdzMCwgVGhpc0Fy
Z3VtZW50T2Zmc2V0W2Nmcl0KK2lmIG5vdCBKU1ZBTFVFNjQKKyAgICBzdG9yZWkgQ2VsbFRhZywg
VGFnT2Zmc2V0ICsgVGhpc0FyZ3VtZW50T2Zmc2V0W2Nmcl0KK2VuZAogCiAgICAgbG9hZHAgQ2Fs
bGVlW2Nmcl0sIHdzMAogICAgIGFuZHAgfjMsIHdzMApAQCAtMzAzLDYgKzM0OCwxMCBAQCBtYWNy
byB3YXNtUHJvbG9ndWUobG9hZFdhc21JbnN0YW5jZSkKICAgICBhZGRwIG1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsLCB3czEKICAgICBzdWJwIGNmciwgd3MxLCB3czEKIAoraWYgbm90IEpT
VkFMVUU2NAorICAgIHN1YnAgOCwgd3MxICMgYWxpZ24gc3RhY2sgcG9pbnRlcgorZW5kCisKICAg
ICBicGEgd3MxLCBjZnIsIC5zdGFja092ZXJmbG93CiAgICAgYnBiZXEgV2FzbTo6SW5zdGFuY2U6
Om1fY2FjaGVkU3RhY2tMaW1pdFt3YXNtSW5zdGFuY2VdLCB3czEsIC5zdGFja0hlaWdodE9LCiAK
QEAgLTMxMiwxMCArMzYxLDE1IEBAIG1hY3JvIHdhc21Qcm9sb2d1ZShsb2FkV2FzbUluc3RhbmNl
KQogLnN0YWNrSGVpZ2h0T0s6CiAgICAgbW92ZSB3czEsIHNwCiAKLSAgICBmb3JFYWNoQXJndW1l
bnRHUFIobWFjcm8gKG9mZnNldCwgZ3ByKQoraWYgSlNWQUxVRTY0CisgICAgZm9yRWFjaEFyZ3Vt
ZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwcikKICAgICAgICAgc3RvcmVxIGdwciwgLW9mZnNldCAt
IDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0KICAgICBlbmQp
Ci0KK2Vsc2UKKyAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3LCBn
cExzdykKKyAgICAgICAgc3RvcmUyaWEgZ3BMc3csIGdwck1zdywgLW9mZnNldCAtIDggLSBDYWxs
ZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0KKyAgICBlbmQpCitlbmQKICAg
ICBmb3JFYWNoQXJndW1lbnRGUFIobWFjcm8gKG9mZnNldCwgZnByKQogICAgICAgICBzdG9yZWQg
ZnByLCAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhb
Y2ZyXQogICAgIGVuZCkKQEAgLTMyOSwxNCArMzgzLDE2IEBAIG1hY3JvIHdhc21Qcm9sb2d1ZShs
b2FkV2FzbUluc3RhbmNlKQogICAgIGxvYWRpIFdhc206OkxMSW50Q2FsbGVlOjptX251bVZhcnNb
d3MwXSwgd3MxCiAgICAgc3ViaSBOdW1iZXJPZldhc21Bcmd1bWVudHMgKyBDYWxsZWVTYXZlU3Bh
Y2VBc1ZpcnR1YWxSZWdpc3RlcnMsIHdzMQogICAgIGJ0aXogd3MxLCAuemVyb0luaXRpYWxpemVM
b2NhbHNEb25lCisgICAgbHNoaWZ0aSAzLCB3czEKICAgICBuZWdpIHdzMQoraWYgSlNWQUxVRTY0
CiAgICAgc3hpMnEgd3MxLCB3czEKK2VuZAogICAgIGxlYXAgKE51bWJlck9mV2FzbUFyZ3VtZW50
cyArIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyArIDEpICogLThbY2ZyXSwgd3Mw
CiAuemVyb0luaXRpYWxpemVMb2NhbHNMb29wOgotICAgIGFkZHEgMSwgd3MxCi0gICAgc3RvcmVx
IDAsIFt3czAsIHdzMSwgOF0KLSAgICBidHF6IHdzMSwgLnplcm9Jbml0aWFsaXplTG9jYWxzRG9u
ZQotICAgIGptcCAuemVyb0luaXRpYWxpemVMb2NhbHNMb29wCisgICAgYWRkcCBQdHJTaXplLCB3
czEKKyAgICBzdG9yZXAgMCwgW3dzMCwgd3MxXQorICAgIGJ0cG56IHdzMSwgLnplcm9Jbml0aWFs
aXplTG9jYWxzTG9vcAogLnplcm9Jbml0aWFsaXplTG9jYWxzRG9uZToKIGVuZAogCkBAIC0zNzUs
NiArNDMxLDI0IEBAIG1hY3JvIHNsb3dXYXNtT3Aob3Bjb2RlTmFtZSkKICAgICB1bnByZWZpeGVk
U2xvd1dhc21PcCh3YXNtXyVvcGNvZGVOYW1lJSkKIGVuZAogCisjIEZsb2F0IHRvIGZsb2F0IHJv
dW5kaW5nIG9wcworbWFjcm8gd2FzbVJvdW5kaW5nT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0
LCBmbikKK2lmIEpTVkFMVUU2NCAjIEFsbCBjdXJyZW50IDY0LWJpdCBwbGF0Zm9ybXMgaGF2ZSBp
bnN0cnVjdGlvbnMgZm9yIHRoZXNlCisgICAgd2FzbU9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVj
dCwgZm4pCitlbHNlCisgICAgc2xvd1dhc21PcChvcGNvZGVOYW1lKQorZW5kCitlbmQKKworIyBp
NjQgKHNpZ25lZC91bnNpZ25lZCkgdG8gZjMyIG9yIGY2NAorbWFjcm8gd2FzbUk2NFRvRk9wKG9w
Y29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCitpZiBKU1ZBTFVFNjQgIyBBbGwgY3VycmVudCA2
NC1iaXQgcGxhdGZvcm1zIGhhdmUgaW5zdHJ1Y3Rpb25zIGZvciB0aGVzZQorICAgIHdhc21PcChv
cGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGZuKQorZWxzZQorICAgIHNsb3dXYXNtT3Aob3Bjb2Rl
TmFtZSkKK2VuZAorZW5kCisKICMgTWFjcm8gdmVyc2lvbiBvZiBsb2FkIG9wZXJhdGlvbnM6IG1s
b2FkW3N1ZmZpeF0KICMgbG9hZHMgZmllbGQgZnJvbSB0aGUgaW5zdHJ1Y3Rpb24gc3RyZWFtIGFu
ZCBwZXJmb3JtcyBsb2FkW3N1ZmZpeF0gdG8gZHN0CiBtYWNybyBmaXJzdENvbnN0YW50UmVnaXN0
ZXJJbmRleChjdHgsIGZuKQpAQCAtMzk3LDEyICs0NzEsMjEgQEAgbWFjcm8gbG9hZENvbnN0YW50
T3JWYXJpYWJsZShjdHgsIGluZGV4LCBsb2FkZXIpCiAgICAgZW5kKQogZW5kCiAKK2lmIEpTVkFM
VUU2NAogbWFjcm8gbWxvYWRxKGN0eCwgZmllbGQsIGRzdCkKICAgICB3Z2V0cyhjdHgsIGZpZWxk
LCBkc3QpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShjdHgsIGRzdCwgbWFjcm8gKGZyb20p
CiAgICAgICAgIGxvYWRxIGZyb20sIGRzdAogICAgIGVuZCkKIGVuZAorZWxzZQorbWFjcm8gbWxv
YWQyaShjdHgsIGZpZWxkLCBkc3RNc3csIGRzdExzdykKKyAgICB3Z2V0cyhjdHgsIGZpZWxkLCBk
c3RMc3cpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShjdHgsIGRzdExzdywgbWFjcm8gKGZy
b20pCisgICAgICAgIGxvYWQyaWEgZnJvbSwgZHN0THN3LCBkc3RNc3cKKyAgICBlbmQpCitlbmQK
K2VuZAogCiBtYWNybyBtbG9hZGkoY3R4LCBmaWVsZCwgZHN0KQogICAgIHdnZXRzKGN0eCwgZmll
bGQsIGRzdCkKQEAgLTQzNCwxMSArNTE3LDE5IEBAIGVuZAogCiAjIFR5cGVkIHJldHVybnMKIAor
aWYgSlNWQUxVRTY0CiBtYWNybyByZXR1cm5xKGN0eCwgdmFsdWUpCiAgICAgd2dldHMoY3R4LCBt
X2RzdCwgdDUpCiAgICAgc3RvcmVxIHZhbHVlLCBbY2ZyLCB0NSwgOF0KICAgICBkaXNwYXRjaChj
dHgpCiBlbmQKK2Vsc2UKK21hY3JvIHJldHVybjJpKGN0eCwgbXN3LCBsc3cpCisgICAgd2dldHMo
Y3R4LCBtX2RzdCwgdDUpCisgICAgc3RvcmUyaWEgbHN3LCBtc3csIFtjZnIsIHQ1LCA4XQorICAg
IGRpc3BhdGNoKGN0eCkKK2VuZAorZW5kCiAKIG1hY3JvIHJldHVybmkoY3R4LCB2YWx1ZSkKICAg
ICB3Z2V0cyhjdHgsIG1fZHN0LCB0NSkKQEAgLTUxMSw3ICs2MDIsNyBAQCBtYWNybyB3YXNtQ29k
ZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVyKQogZW5kCiAKIG9wKHdhc21fZnVuY3Rpb25fcHJv
bG9ndWUsIG1hY3JvICgpCi0gICAgaWYgbm90IFdFQkFTU0VNQkxZIG9yIG5vdCBKU1ZBTFVFNjQg
b3IgQ19MT09QIG9yIENfTE9PUF9XSU4KKyAgICBpZiBub3QgV0VCQVNTRU1CTFkgb3IgQ19MT09Q
IG9yIENfTE9PUF9XSU4KICAgICAgICAgZXJyb3IKICAgICBlbmQKIApAQCAtNTIwLDcgKzYxMSw3
IEBAIG9wKHdhc21fZnVuY3Rpb25fcHJvbG9ndWUsIG1hY3JvICgpCiBlbmQpCiAKIG9wKHdhc21f
ZnVuY3Rpb25fcHJvbG9ndWVfbm9fdGxzLCBtYWNybyAoKQotICAgIGlmIG5vdCBXRUJBU1NFTUJM
WSBvciBub3QgSlNWQUxVRTY0IG9yIENfTE9PUCBvciBDX0xPT1BfV0lOCisgICAgaWYgbm90IFdF
QkFTU0VNQkxZIG9yIENfTE9PUCBvciBDX0xPT1BfV0lOCiAgICAgICAgIGVycm9yCiAgICAgZW5k
CiAKQEAgLTYyMiwxNiArNzEzLDIzIEBAIF93YXNtX2VudGVyOgogICAgIGNoZWNrU3RhY2tQb2lu
dGVyQWxpZ25tZW50KHQyLCAweGRlYWQwMGUxKQogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0
MiAgICAgICAgICAgICAgICAvLyB0MjxDb2RlQmxvY2s+ID0gY2ZyLkNvZGVCbG9jawogICAgIGxv
YWRpIFdhc206OkxMSW50Q2FsbGVlOjptX251bVZhcnNbdDJdLCB0MiAgICAgIC8vIHQyPHNpemVf
dD4gPSB0MjxDb2RlQmxvY2s+Lm1fbnVtVmFycwotICAgIHN1YnEgQ2FsbGVlU2F2ZVNwYWNlQXNW
aXJ0dWFsUmVnaXN0ZXJzICsgTnVtYmVyT2ZXYXNtQXJndW1lbnRzLCB0MgorICAgIHN1YmkgQ2Fs
bGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICsgTnVtYmVyT2ZXYXNtQXJndW1lbnRzLCB0
MgogICAgIGJ0aXogdDIsIC5vcEVudGVyRG9uZQotICAgIG1vdmUgY2ZyLCB0MQotICAgIHN1YnEg
Q2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOCArIE51bWJlck9mV2FzbUFyZ3Vt
ZW50cyAqIDgsIHQxCisgICAgc3VicCBjZnIsIChDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdp
c3RlcnMgKyBOdW1iZXJPZldhc21Bcmd1bWVudHMpICogU2xvdFNpemUsIHQxCisgICAgbHNoaWZ0
aSAzLCB0MgogICAgIG5lZ2kgdDIKK2lmIEpTVkFMVUU2NAogICAgIHN4aTJxIHQyLCB0MgorZW5k
CisgICAgbW92ZSAwLCB0NgogLm9wRW50ZXJMb29wOgotICAgIHN0b3JlcSAwLCBbdDEsIHQyLCA4
XQotICAgIGFkZHEgMSwgdDIKLSAgICBidHFueiB0MiwgLm9wRW50ZXJMb29wCitpZiBKU1ZBTFVF
NjQKKyAgICBzdG9yZXEgdDYsIFt0MSwgdDJdCitlbHNlCisgICAgc3RvcmUyaWEgdDYsIHQ2LCBb
dDEsIHQyXQorZW5kCisgICAgYWRkcCA4LCB0MgorICAgIGJ0cG56IHQyLCAub3BFbnRlckxvb3AK
IC5vcEVudGVyRG9uZToKICAgICB3YXNtRGlzcGF0Y2hJbmRpcmVjdCgxKQogCkBAIC02NDQsMTEg
Kzc0Miw2IEBAIHdhc21PcChsb29wX2hpbnQsIFdhc21Mb29wSGludCwgbWFjcm8oY3R4KQogICAg
IGRpc3BhdGNoKGN0eCkKIGVuZCkKIAotd2FzbU9wKG1vdiwgV2FzbU1vdiwgbWFjcm8oY3R4KQot
ICAgIG1sb2FkcShjdHgsIG1fc3JjLCB0MCkKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0K
IHdhc21PcChqdHJ1ZSwgV2FzbUp0cnVlLCBtYWNybyhjdHgpCiAgICAgbWxvYWRpKGN0eCwgbV9j
b25kaXRpb24sIHQwKQogICAgIGJ0aXogdDAsIC5jb250aW51ZQpAQCAtNzAwLDExICs3OTMsMTcg
QEAgZW5kKQogCiB1bnByZWZpeGVkV2FzbU9wKHdhc21fcmV0LCBXYXNtUmV0LCBtYWNybyhjdHgp
CiAgICAgY2hlY2tTd2l0Y2hUb0pJVEZvckVwaWxvZ3VlKCkKLSAgICBmb3JFYWNoQXJndW1lbnRH
UFIobWFjcm8gKG9mZnNldCwgZ3ByKQoraWYgSlNWQUxVRTY0CisgICAgZm9yRWFjaEFyZ3VtZW50
SlNSKG1hY3JvIChvZmZzZXQsIGdwcikKICAgICAgICAgbG9hZHEgLW9mZnNldCAtIDggLSBDYWxs
ZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0sIGdwcgogICAgIGVuZCkKK2Vs
c2UKKyAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3LCBncExzdykK
KyAgICAgICAgbG9hZDJpYSAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJl
Z2lzdGVycyAqIDhbY2ZyXSwgZ3BMc3csIGdwck1zdworICAgIGVuZCkKK2VuZAogICAgIGZvckVh
Y2hBcmd1bWVudEZQUihtYWNybyAob2Zmc2V0LCBmcHIpCi0gICAgICAgIGxvYWRkIC1vZmZzZXQg
LSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBmcHIKKyAg
ICAgICAgbG9hZGQgLW9mZnNldCAtICA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0
ZXJzICogOFtjZnJdLCBmcHIKICAgICBlbmQpCiAgICAgZG9SZXR1cm4oKQogZW5kKQpAQCAtNzIw
LDQ0ICs4MTksNiBAQCB3YXNtT3AocmV0X3ZvaWQsIFdhc21SZXRWb2lkLCBtYWNybyhjdHgpCiAg
ICAgZG9SZXR1cm4oKQogZW5kKQogCi13YXNtT3AocmVmX2lzX251bGwsIFdhc21SZWZJc051bGws
IG1hY3JvKGN0eCkKLSAgICBtbG9hZHAoY3R4LCBtX3JlZiwgdDApCi0gICAgY3FlcSB0MCwgVmFs
dWVOdWxsLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGdldF9nbG9i
YWwsIFdhc21HZXRHbG9iYWwsIG1hY3JvKGN0eCkKLSAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6
bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCi0gICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4
LCB0MSkKLSAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1l
bmQpCi0KLXdhc21PcChzZXRfZ2xvYmFsLCBXYXNtU2V0R2xvYmFsLCBtYWNybyhjdHgpCi0gICAg
bG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAotICAgIHdn
ZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCi0gICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIp
Ci0gICAgc3RvcmVxIHQyLCBbdDAsIHQxLCA4XQotICAgIGRpc3BhdGNoKGN0eCkKLWVuZCkKLQot
d2FzbU9wKGdldF9nbG9iYWxfcG9ydGFibGVfYmluZGluZywgV2FzbUdldEdsb2JhbFBvcnRhYmxl
QmluZGluZywgbWFjcm8oY3R4KQotICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNb
d2FzbUluc3RhbmNlXSwgdDAKLSAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQotICAg
IGxvYWRxIFt0MCwgdDEsIDhdLCB0MAotICAgIGxvYWRxIFt0MF0sIHQwCi0gICAgcmV0dXJucShj
dHgsIHQwKQotZW5kKQotCi13YXNtT3Aoc2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNt
U2V0R2xvYmFsUG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCi0gICAgbG9hZHAgV2FzbTo6SW5z
dGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAotICAgIHdnZXR1KGN0eCwgbV9nbG9i
YWxJbmRleCwgdDEpCi0gICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAgbG9hZHEgW3Qw
LCB0MSwgOF0sIHQwCi0gICAgc3RvcmVxIHQyLCBbdDBdCi0gICAgZGlzcGF0Y2goY3R4KQotZW5k
KQotCiBtYWNybyBzbG93UGF0aEZvcldhc21DYWxsKGN0eCwgc2xvd1BhdGgsIHN0b3JlV2FzbUlu
c3RhbmNlKQogICAgIGNhbGxXYXNtQ2FsbFNsb3dQYXRoKAogICAgICAgICBzbG93UGF0aCwKQEAg
LTc3Miw3ICs4MzMsMTIgQEAgbWFjcm8gc2xvd1BhdGhGb3JXYXNtQ2FsbChjdHgsIHNsb3dQYXRo
LCBzdG9yZVdhc21JbnN0YW5jZSkKIAogICAgICAgICAgICAgd2dldHUoY3R4LCBtX3N0YWNrT2Zm
c2V0LCB3czEpCiAgICAgICAgICAgICBsc2hpZnRpIDMsIHdzMQoraWYgQVJNdjcKKyAgICAgICAg
ICAgIHN1YnAgY2ZyLCB3czEsIHdzMQorICAgICAgICAgICAgbW92ZSB3czEsIHNwCitlbHNlCiAg
ICAgICAgICAgICBzdWJwIGNmciwgd3MxLCBzcAorZW5kCiAKICAgICAgICAgICAgIHdnZXR1KGN0
eCwgbV9udW1iZXJPZlN0YWNrQXJncywgd3MxKQogCkBAIC03ODMsMTAgKzg0OSwxNSBAQCBtYWNy
byBzbG93UGF0aEZvcldhc21DYWxsKGN0eCwgc2xvd1BhdGgsIHN0b3JlV2FzbUluc3RhbmNlKQog
ICAgICAgICAgICAgcmVsb2FkTWVtb3J5UmVnaXN0ZXJzRnJvbUluc3RhbmNlKHRhcmdldFdhc21J
bnN0YW5jZSwgd2EwLCB3YTEpCiAKICAgICAgICAgICAgICMgTG9hZCByZWdpc3RlcnMgZnJvbSBz
dGFjawotICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50R1BSKG1hY3JvIChvZmZzZXQsIGdwcikK
K2lmIEpTVkFMVUU2NAorICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZz
ZXQsIGdwcikKICAgICAgICAgICAgICAgICBsb2FkcSBDYWxsRnJhbWVIZWFkZXJTaXplICsgOCAr
IG9mZnNldFtzcCwgd3MxLCA4XSwgZ3ByCiAgICAgICAgICAgICBlbmQpCi0KK2Vsc2UKKyAgICAg
ICAgICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHJNc3csIGdwTHN3KQor
ICAgICAgICAgICAgICAgIGxvYWQyaWEgQ2FsbEZyYW1lSGVhZGVyU2l6ZSArIDggKyBvZmZzZXRb
c3AsIHdzMSwgOF0sIGdwTHN3LCBncHJNc3cKKyAgICAgICAgICAgIGVuZCkKK2VuZAogICAgICAg
ICAgICAgZm9yRWFjaEFyZ3VtZW50RlBSKG1hY3JvIChvZmZzZXQsIGZwcikKICAgICAgICAgICAg
ICAgICBsb2FkZCBDYWxsRnJhbWVIZWFkZXJTaXplICsgOCArIG9mZnNldFtzcCwgd3MxLCA4XSwg
ZnByCiAgICAgICAgICAgICBlbmQpCkBAIC04MjksNyArOTAwLDExIEBAIG1hY3JvIHNsb3dQYXRo
Rm9yV2FzbUNhbGwoY3R4LCBzbG93UGF0aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAKICAgICAgICAg
ICAgICMgV2UgbmVlZCB0byBzZXQgUEMgdG8gbG9hZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBpbnN0
cnVjdGlvbiBzdHJlYW0sIGJ1dCB3ZQogICAgICAgICAgICAgIyBuZWVkIHRvIHByZXNlcnZlIGl0
cyBjdXJyZW50IHZhbHVlIHNpbmNlIGl0IG1pZ2h0IGNvbnRhaW4gYSByZXR1cm4gdmFsdWUKK2lm
IEFSTXY3CisgICAgICAgICAgICBwdXNoIFBDCitlbHNlCiAgICAgICAgICAgICBtb3ZlIFBDLCBt
ZW1vcnlCYXNlCitlbmQKICAgICAgICAgICAgIG1vdmUgUEIsIHdhc21JbnN0YW5jZQogICAgICAg
ICAgICAgbG9hZGkgQXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgKyBUYWdPZmZzZXRbY2ZyXSwg
UEMKICAgICAgICAgICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCBQQgpAQCAtODM4LDE3ICs5MTMs
MjggQEAgbWFjcm8gc2xvd1BhdGhGb3JXYXNtQ2FsbChjdHgsIHNsb3dQYXRoLCBzdG9yZVdhc21J
bnN0YW5jZSkKICAgICAgICAgICAgIHdnZXR1KGN0eCwgbV9zdGFja09mZnNldCwgd3MxKQogICAg
ICAgICAgICAgbHNoaWZ0aSAzLCB3czEKICAgICAgICAgICAgIG5lZ2kgd3MxCitpZiBKU1ZBTFVF
NjQKICAgICAgICAgICAgIHN4aTJxIHdzMSwgd3MxCitlbmQKICAgICAgICAgICAgIGFkZHAgY2Zy
LCB3czEKIAogICAgICAgICAgICAgIyBBcmd1bWVudCByZWdpc3RlcnMgYXJlIGFsc28gcmV0dXJu
IHJlZ2lzdGVycywgc28gdGhleSBtdXN0IGJlIHN0b3JlZCB0byB0aGUgc3RhY2sKICAgICAgICAg
ICAgICMgaW4gY2FzZSB0aGV5IGNvbnRhaW4gcmV0dXJuIHZhbHVlcy4KICAgICAgICAgICAgIHdn
ZXR1KGN0eCwgbV9udW1iZXJPZlN0YWNrQXJncywgd3MwKQoraWYgQVJNdjcKKyAgICAgICAgICAg
IHBvcCBQQworZWxzZQogICAgICAgICAgICAgbW92ZSBtZW1vcnlCYXNlLCBQQwotICAgICAgICAg
ICAgZm9yRWFjaEFyZ3VtZW50R1BSKG1hY3JvIChvZmZzZXQsIGdwcikKK2VuZAoraWYgSlNWQUxV
RTY0CisgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByKQog
ICAgICAgICAgICAgICAgIHN0b3JlcSBncHIsIENhbGxGcmFtZUhlYWRlclNpemUgKyA4ICsgb2Zm
c2V0W3dzMSwgd3MwLCA4XQogICAgICAgICAgICAgZW5kKQotCitlbHNlCisgICAgICAgICAgICBm
b3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3LCBncExzdykKKyAgICAgICAg
ICAgICAgICBzdG9yZTJpYSBncExzdywgZ3ByTXN3LCBDYWxsRnJhbWVIZWFkZXJTaXplICsgOCAr
IG9mZnNldFt3czEsIHdzMCwgOF0KKyAgICAgICAgICAgIGVuZCkKK2VuZAogICAgICAgICAgICAg
Zm9yRWFjaEFyZ3VtZW50RlBSKG1hY3JvIChvZmZzZXQsIGZwcikKICAgICAgICAgICAgICAgICBz
dG9yZWQgZnByLCBDYWxsRnJhbWVIZWFkZXJTaXplICsgOCArIG9mZnNldFt3czEsIHdzMCwgOF0K
ICAgICAgICAgICAgIGVuZCkKQEAgLTg5OSwxOTkgKzk4NSwzNiBAQCB3YXNtT3AoY3VycmVudF9t
ZW1vcnksIFdhc21DdXJyZW50TWVtb3J5LCBtYWNybyhjdHgpCiAgICAgbG9hZHAgV2FzbTo6SW5z
dGFuY2U6Om1fbWVtb3J5W3dhc21JbnN0YW5jZV0sIHQwCiAgICAgbG9hZHAgV2FzbTo6TWVtb3J5
OjptX2hhbmRsZVt0MF0sIHQwCiAgICAgbG9hZHAgV2FzbTo6TWVtb3J5SGFuZGxlOjptX3NpemVb
dDBdLCB0MAotICAgIHVyc2hpZnRxIDE2LCB0MAorICAgIHVyc2hpZnRwIDE2LCB0MAoraWYgSlNW
QUxVRTY0CiAgICAgcmV0dXJucShjdHgsIHQwKQorZWxzZQorICAgIHJldHVybjJpKGN0eCwgMCwg
dDApCitlbmQKIGVuZCkKIAogd2FzbU9wKHNlbGVjdCwgV2FzbVNlbGVjdCwgbWFjcm8oY3R4KQog
ICAgIG1sb2FkaShjdHgsIG1fY29uZGl0aW9uLCB0MCkKICAgICBidGl6IHQwLCAuaXNaZXJvCitp
ZiBKU1ZBTFVFNjQKICAgICBtbG9hZHEoY3R4LCBtX25vblplcm8sIHQwKQogICAgIHJldHVybnEo
Y3R4LCB0MCkKIC5pc1plcm86CiAgICAgbWxvYWRxKGN0eCwgbV96ZXJvLCB0MCkKICAgICByZXR1
cm5xKGN0eCwgdDApCi1lbmQpCi0KLSMgdXNlcyBvZmZzZXQgYXMgc2NyYXRjaCBhbmQgcmV0dXJu
cyByZXN1bHQgb24gcG9pbnRlcgotbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4
LCBwb2ludGVyLCBvZmZzZXQsIHNpemUpCi0gICAgbGVhcCBzaXplIC0gMVtwb2ludGVyLCBvZmZz
ZXRdLCB0NQotICAgIGJwYiB0NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29udGludWF0aW9uCi0g
ICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCi0uY29udGludWF0aW9u
OgotICAgIGFkZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgotZW5kCi0KLW1hY3JvIGVtaXRDaGVja0Fu
ZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KGN0eCwgcG9pbnRlciwgb2Zmc2V0LCBzaXplKQot
ICAgIGxlYXAgc2l6ZSAtIDFbcG9pbnRlciwgb2Zmc2V0XSwgdDUKLSAgICBicGIgdDUsIGJvdW5k
c0NoZWNraW5nU2l6ZSwgLmNvbnRpbnVhdGlvbgotLnRocm93OgotICAgIHRocm93RXhjZXB0aW9u
KE91dE9mQm91bmRzTWVtb3J5QWNjZXNzKQotLmNvbnRpbnVhdGlvbjoKLSAgICBhZGRwIG1lbW9y
eUJhc2UsIHBvaW50ZXIKLSAgICBhZGRwIG9mZnNldCwgcG9pbnRlcgotZW5kCi0KLW1hY3JvIGVt
aXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0
eCwgcG9pbnRlciwgb2Zmc2V0LCBzaXplKQotICAgIGxlYXAgc2l6ZSAtIDFbcG9pbnRlciwgb2Zm
c2V0XSwgdDUKLSAgICBicGIgdDUsIGJvdW5kc0NoZWNraW5nU2l6ZSwgLmNvbnRpbnVhdGlvbgot
LnRocm93OgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNjZXNzKQotLmNv
bnRpbnVhdGlvbjoKLSAgICBhZGRwIG1lbW9yeUJhc2UsIHBvaW50ZXIKLSAgICBhZGRwIG9mZnNl
dCwgcG9pbnRlcgotICAgIGJ0cG56IHBvaW50ZXIsIChzaXplIC0gMSksIC50aHJvdwotZW5kCi0K
LW1hY3JvIHdhc21Mb2FkT3AobmFtZSwgc3RydWN0LCBzaXplLCBmbikKLSAgICB3YXNtT3AobmFt
ZSwgc3RydWN0LCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDAp
Ci0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBlbWl0Q2hlY2tBbmRQ
cmVwYXJlUG9pbnRlcihjdHgsIHQwLCB0MSwgc2l6ZSkKLSAgICAgICAgZm4oW3QwLCB0MV0sIHQy
KQotICAgICAgICByZXR1cm5xKGN0eCwgdDIpCi0gICAgZW5kKQotZW5kCi0KLXdhc21Mb2FkT3Ao
bG9hZDhfdSwgV2FzbUxvYWQ4VSwgMSwgbWFjcm8obWVtLCBkc3QpIGxvYWRiIG1lbSwgZHN0IGVu
ZCkKLXdhc21Mb2FkT3AobG9hZDE2X3UsIFdhc21Mb2FkMTZVLCAyLCBtYWNybyhtZW0sIGRzdCkg
bG9hZGggbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChsb2FkMzJfdSwgV2FzbUxvYWQzMlUsIDQs
IG1hY3JvKG1lbSwgZHN0KSBsb2FkaSBtZW0sIGRzdCBlbmQpCi13YXNtTG9hZE9wKGxvYWQ2NF91
LCBXYXNtTG9hZDY0VSwgOCwgbWFjcm8obWVtLCBkc3QpIGxvYWRxIG1lbSwgZHN0IGVuZCkKLQot
d2FzbUxvYWRPcChpMzJfbG9hZDhfcywgV2FzbUkzMkxvYWQ4UywgMSwgbWFjcm8obWVtLCBkc3Qp
IGxvYWRic2kgbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChpNjRfbG9hZDhfcywgV2FzbUk2NExv
YWQ4UywgMSwgbWFjcm8obWVtLCBkc3QpIGxvYWRic3EgbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRP
cChpMzJfbG9hZDE2X3MsIFdhc21JMzJMb2FkMTZTLCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGhz
aSBtZW0sIGRzdCBlbmQpCi13YXNtTG9hZE9wKGk2NF9sb2FkMTZfcywgV2FzbUk2NExvYWQxNlMs
IDIsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaHNxIG1lbSwgZHN0IGVuZCkKLXdhc21Mb2FkT3AoaTY0
X2xvYWQzMl9zLCBXYXNtSTY0TG9hZDMyUywgNCwgbWFjcm8obWVtLCBkc3QpIGxvYWRpcyBtZW0s
IGRzdCBlbmQpCi0KLW1hY3JvIHdhc21TdG9yZU9wKG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4pCi0g
ICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBt
X3BvaW50ZXIsIHQwKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAg
ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4LCB0MCwgdDEsIHNpemUpCi0gICAgICAgIG1s
b2FkcShjdHgsIG1fdmFsdWUsIHQyKQotICAgICAgICBmbih0MiwgW3QwLCB0MV0pCi0gICAgICAg
IGRpc3BhdGNoKGN0eCkKLSAgICBlbmQpCitlbHNlCisgICAgbWxvYWQyaShjdHgsIG1fbm9uWmVy
bywgdDEsIHQwKQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorLmlzWmVybzoKKyAgICBtbG9h
ZDJpKGN0eCwgbV96ZXJvLCB0MSwgdDApCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCiBlbmQK
LQotd2FzbVN0b3JlT3Aoc3RvcmU4LCBXYXNtU3RvcmU4LCAxLCBtYWNybyh2YWx1ZSwgbWVtKSBz
dG9yZWIgdmFsdWUsIG1lbSBlbmQpCi13YXNtU3RvcmVPcChzdG9yZTE2LCBXYXNtU3RvcmUxNiwg
MiwgbWFjcm8odmFsdWUsIG1lbSkgc3RvcmVoIHZhbHVlLCBtZW0gZW5kKQotd2FzbVN0b3JlT3Ao
c3RvcmUzMiwgV2FzbVN0b3JlMzIsIDQsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlaSB2YWx1ZSwg
bWVtIGVuZCkKLXdhc21TdG9yZU9wKHN0b3JlNjQsIFdhc21TdG9yZTY0LCA4LCBtYWNybyh2YWx1
ZSwgbWVtKSBzdG9yZXEgdmFsdWUsIG1lbSBlbmQpCi0KLSMgT3Bjb2RlcyB0aGF0IGRvbid0IGhh
dmUgdGhlIGBiM29wYCBlbnRyeSBpbiB3YXNtLmpzb24uIFRoaXMgc2hvdWxkIGJlIGtlcHQgaW4g
c3luYwotCi13YXNtT3AoaTMyX2Rpdl9zLCBXYXNtSTMyRGl2UywgbWFjcm8gKGN0eCkKLSAgICBt
bG9hZGkoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotCi0gICAg
YnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAgIGJpbmVxIHQxLCAtMSwgLnNhZmUK
LSAgICBiaWVxIHQwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAudGhyb3dJbnRlZ2VyT3ZlcmZsb3cK
LQotLnNhZmU6Ci0gICAgaWYgWDg2XzY0Ci0gICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBz
dGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAotICAgICAgICAjIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKLSAgICAgICAgY2RxaQot
ICAgICAgICBpZGl2aSB0MQotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0g
ICAgICAgIGRpdmlzIHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLSAg
ICByZXR1cm5pKGN0eCwgdDApCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhj
ZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotCi0udGhyb3dJbnRlZ2VyT3ZlcmZsb3c6Ci0gICAgdGhy
b3dFeGNlcHRpb24oSW50ZWdlck92ZXJmbG93KQotZW5kKQotCi13YXNtT3AoaTMyX2Rpdl91LCBX
YXNtSTMyRGl2VSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCi0gICAg
bWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVpl
cm8KLQotICAgIGlmIFg4Nl82NAotICAgICAgICB4b3JpIHQyLCB0MgotICAgICAgICB1ZGl2aSB0
MQotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgICAgIGRpdmkgdDEs
IHQwCi0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVuZAotICAgIHJldHVybmkoY3R4LCB0
MCkKLQotLnRocm93RGl2aXNpb25CeVplcm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25C
eVplcm8pCi1lbmQpCi0KLXdhc21PcChpMzJfcmVtX3MsIFdhc21JMzJSZW1TLCBtYWNybyAoY3R4
KQotICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEp
Ci0KLSAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwotCi0gICAgYmluZXEgdDEsIC0x
LCAuc2FmZQotICAgIGJpbmVxIHQwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAuc2FmZQotCi0gICAg
bW92ZSAwLCB0MgotICAgIGptcCAucmV0dXJuCi0KLS5zYWZlOgotICAgIGlmIFg4Nl82NAotICAg
ICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFu
ZCB0MiBpcyByZHgKLSAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAzNjkyCi0gICAgICAgIGNkcWkKLSAgICAgICAgaWRpdmkgdDEKLSAgICBlbHNpZiBB
Uk02NCBvciBBUk02NEUKLSAgICAgICAgZGl2aXMgdDEsIHQwLCB0MgotICAgICAgICBtdWxpIHQx
LCB0MgotICAgICAgICBzdWJpIHQwLCB0MiwgdDIKLSAgICBlbHNpZiBSSVNDVjY0Ci0gICAgICAg
IHJlbWlzIHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLQotLnJldHVy
bjoKLSAgICByZXR1cm5pKGN0eCwgdDIpCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRo
cm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQogZW5kKQogCi13YXNtT3AoaTMyX3JlbV91LCBX
YXNtSTMyUmVtVSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCi0gICAg
bWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVpl
cm8KLQotICAgIGlmIFg4Nl82NAotICAgICAgICB4b3JpIHQyLCB0MgotICAgICAgICB1ZGl2aSB0
MQotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQotICAgICAgICBkaXZpIHQxLCB0MCwgdDIKLSAg
ICAgICAgbXVsaSB0MSwgdDIKLSAgICAgICAgc3ViaSB0MCwgdDIsIHQyCi0gICAgZWxzaWYgUklT
Q1Y2NAotICAgICAgICByZW1pIHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBl
bmQKLSAgICByZXR1cm5pKGN0eCwgdDIpCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRo
cm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotZW5kKQorIyBPcGNvZGVzIHRoYXQgZG9uJ3Qg
aGF2ZSB0aGUgYGIzb3BgIGVudHJ5IGluIHdhc20uanNvbi4gVGhpcyBzaG91bGQgYmUga2VwdCBp
biBzeW5jCiAKIHdhc21PcChpMzJfY3R6LCBXYXNtSTMyQ3R6LCBtYWNybyAoY3R4KQotICAgIG1s
b2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkK
ICAgICB0emNudGkgdDAsIHQwCiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQpAQCAtMTEwNSwx
NDggKzEwMjgsMjUgQEAgd2FzbU9wKGkzMl9wb3BjbnQsIFdhc21JMzJQb3BjbnQsIG1hY3JvIChj
dHgpCiAgICAgcmV0dXJuaShjdHgsIHIxKQogZW5kKQogCi13YXNtT3AoaTY0X2Rpdl9zLCBXYXNt
STY0RGl2UywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxv
YWRxKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRxeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8K
LQotICAgIGJxbmVxIHQxLCAtMSwgLnNhZmUKLSAgICBicWVxIHQwLCBjb25zdGV4cHIgSU5UNjRf
TUlOLCAudGhyb3dJbnRlZ2VyT3ZlcmZsb3cKLQotLnNhZmU6Ci0gICAgaWYgWDg2XzY0Ci0gICAg
ICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5k
IHQyIGlzIHJkeAotICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDM2OTIKLSAgICAgICAgY3FvcQotICAgICAgICBpZGl2cSB0MQotICAgIGVsc2lmIEFS
TTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgICAgIGRpdnFzIHQxLCB0MAotICAgIGVsc2UK
LSAgICAgICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS50aHJvd0Rp
dmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotCi0udGhy
b3dJbnRlZ2VyT3ZlcmZsb3c6Ci0gICAgdGhyb3dFeGNlcHRpb24oSW50ZWdlck92ZXJmbG93KQot
ZW5kKQotCi13YXNtT3AoaTY0X2Rpdl91LCBXYXNtSTY0RGl2VSwgbWFjcm8gKGN0eCkKLSAgICBt
bG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotCi0gICAg
YnRxeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAgIGlmIFg4Nl82NAotICAgICAgICB4
b3JxIHQyLCB0MgotICAgICAgICB1ZGl2cSB0MQotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBv
ciBSSVNDVjY0Ci0gICAgICAgIGRpdnEgdDEsIHQwCi0gICAgZWxzZQotICAgICAgICBlcnJvcgot
ICAgIGVuZAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLnRocm93RGl2aXNpb25CeVplcm86Ci0g
ICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCi1lbmQpCi0KLXdhc21PcChpNjRfcmVt
X3MsIFdhc21JNjRSZW1TLCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkK
LSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0KLSAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lv
bkJ5WmVybwotCi0gICAgYnFuZXEgdDEsIC0xLCAuc2FmZQotICAgIGJxbmVxIHQwLCBjb25zdGV4
cHIgSU5UNjRfTUlOLCAuc2FmZQotCi0gICAgbW92ZSAwLCB0MgotICAgIGptcCAucmV0dXJuCi0K
LS5zYWZlOgotICAgIGlmIFg4Nl82NAotICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3Rh
dGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0MiBpcyByZHgKLSAgICAgICAgIyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCi0gICAgICAgIGNxb3EKLSAg
ICAgICAgaWRpdnEgdDEKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUKLSAgICAgICAgZGl2cXMg
dDEsIHQwLCB0MgotICAgICAgICBtdWxxIHQxLCB0MgotICAgICAgICBzdWJxIHQwLCB0MiwgdDIK
LSAgICBlbHNpZiBSSVNDVjY0Ci0gICAgICAgIHJlbXFzIHQxLCB0MAotICAgIGVsc2UKLSAgICAg
ICAgZXJyb3IKLSAgICBlbmQKLQotLnJldHVybjoKLSAgICByZXR1cm5xKGN0eCwgdDIpICMgcmR4
IGhhcyB0aGUgcmVtYWluZGVyCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhj
ZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotZW5kKQotCi13YXNtT3AoaTY0X3JlbV91LCBXYXNtSTY0
UmVtVSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRx
KGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRxeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQot
ICAgIGlmIFg4Nl82NAotICAgICAgICB4b3JxIHQyLCB0MgotICAgICAgICB1ZGl2cSB0MQotICAg
IGVsc2lmIEFSTTY0IG9yIEFSTTY0RQotICAgICAgICBkaXZxIHQxLCB0MCwgdDIKLSAgICAgICAg
bXVscSB0MSwgdDIKLSAgICAgICAgc3VicSB0MCwgdDIsIHQyCi0gICAgZWxzaWYgUklTQ1Y2NAot
ICAgICAgICByZW1xIHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLSAg
ICByZXR1cm5xKGN0eCwgdDIpCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhj
ZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotZW5kKQotCi13YXNtT3AoaTY0X2N0eiwgV2FzbUk2NEN0
eiwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIHR6Y250
cSB0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfcG9wY250
LCBXYXNtSTY0UG9wY250LCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwg
YTEpCi0gICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQotICAgIG1vdmUgUEMsIGEwCi0gICAgY0Nh
bGwyKF9zbG93X3BhdGhfd2FzbV9wb3Bjb3VudGxsKQotICAgIHJlc3RvcmVTdGF0ZUFmdGVyQ0Nh
bGwoKQotICAgIHJldHVybnEoY3R4LCByMSkKLWVuZCkKLQotd2FzbU9wKGYzMl90cnVuYywgV2Fz
bUYzMlRydW5jLCBtYWNybyAoY3R4KQord2FzbVJvdW5kaW5nT3AoZjMyX3RydW5jLCBXYXNtRjMy
VHJ1bmMsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAg
dHJ1bmNhdGVmIGZ0MCwgZnQwCiAgICAgcmV0dXJuZihjdHgsIGZ0MCkKIGVuZCkKIAotd2FzbU9w
KGYzMl9uZWFyZXN0LCBXYXNtRjMyTmVhcmVzdCwgbWFjcm8gKGN0eCkKK3dhc21Sb3VuZGluZ09w
KGYzMl9uZWFyZXN0LCBXYXNtRjMyTmVhcmVzdCwgbWFjcm8gKGN0eCkKICAgICBtbG9hZGYoY3R4
LCBtX29wZXJhbmQsIGZ0MCkKICAgICByb3VuZGYgZnQwLCBmdDAKICAgICByZXR1cm5mKGN0eCwg
ZnQwKQogZW5kKQogCi13YXNtT3AoZjY0X3RydW5jLCBXYXNtRjY0VHJ1bmMsIG1hY3JvIChjdHgp
Cit3YXNtUm91bmRpbmdPcChmNjRfdHJ1bmMsIFdhc21GNjRUcnVuYywgbWFjcm8gKGN0eCkKICAg
ICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICB0cnVuY2F0ZWQgZnQwLCBmdDAKICAg
ICByZXR1cm5kKGN0eCwgZnQwKQogZW5kKQogCi13YXNtT3AoZjY0X25lYXJlc3QsIFdhc21GNjRO
ZWFyZXN0LCBtYWNybyAoY3R4KQord2FzbVJvdW5kaW5nT3AoZjY0X25lYXJlc3QsIFdhc21GNjRO
ZWFyZXN0LCBtYWNybyAoY3R4KQogICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAg
IHJvdW5kZCBmdDAsIGZ0MAogICAgIHJldHVybmQoY3R4LCBmdDApCkBAIC0xMjcwLDI0ICsxMDcw
LDYgQEAgd2FzbU9wKGkzMl90cnVuY19zX2YzMiwgV2FzbUkzMlRydW5jU0YzMiwgbWFjcm8gKGN0
eCkKICAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQogZW5kKQogCi13YXNtT3Ao
aTMyX3RydW5jX3NfZjY0LCBXYXNtSTMyVHJ1bmNTRjY0LCBtYWNybyAoY3R4KQotICAgIG1sb2Fk
ZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGMxZTAwMDAwMDAyMDAwMDAsIHQw
ICMgSU5UMzJfTUlOIC0gMS4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdGVxdW4gZnQwLCBm
dDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICBtb3ZlIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDAg
IyAtSU5UMzJfTUlOCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5v
dXRPZkJvdW5kc1RydW5jCi0KLSAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAotICAgIHJldHVybmko
Y3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZC
b3VuZHNUcnVuYykKLWVuZCkKLQogd2FzbU9wKGkzMl90cnVuY191X2YzMiwgV2FzbUkzMlRydW5j
VUYzMiwgbWFjcm8gKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKIApAQCAt
MTMwNiwxNjUgKzEwODgsNDcgQEAgd2FzbU9wKGkzMl90cnVuY191X2YzMiwgV2FzbUkzMlRydW5j
VUYzMiwgbWFjcm8gKGN0eCkKICAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQog
ZW5kKQogCi13YXNtT3AoaTMyX3RydW5jX3VfZjY0LCBXYXNtSTMyVHJ1bmNVRjY0LCBtYWNybyAo
Y3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQord2FzbU9wKGkzMl90cnVuY19z
YXRfZjMyX3MsIFdhc21JMzJUcnVuY1NhdEYzMlMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRmKGN0
eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4Y2YwMDAwMDAsIHQwICMgSU5UMzJfTUlO
IChOb3RlIHRoYXQgSU5UMzJfTUlOIC0gMS4wIGluIGZsb2F0IGlzIHRoZSBzYW1lIGFzIElOVDMy
X01JTiBpbiBmbG9hdCkuCisgICAgZmkyZiB0MCwgZnQxCisgICAgYmZsdHVuIGZ0MCwgZnQxLCAu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOCisKKyAgICBtb3ZlIDB4NGYwMDAwMDAsIHQwICMg
LUlOVDMyX01JTgorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0
T2ZCb3VuZHNUcnVuY1NhdE1heAogCi0gICAgbW92ZSAweGJmZjAwMDAwMDAwMDAwMDAsIHQwICMg
LTEuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3Vu
ZHNUcnVuYworICAgIHRydW5jYXRlZjJpcyBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQog
Ci0gICAgbW92ZSAweDQxZjAwMDAwMDAwMDAwMDAsIHQwICMgSU5UMzJfTUlOICogLTIuMAotICAg
IGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwor
Lm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKKyAgICBiZmVxIGZ0MCwgZnQwLCAub3V0T2ZC
b3VuZHNUcnVuY1NhdE1pbgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCiAK
LSAgICB0cnVuY2F0ZWQyaSBmdDAsIHQwCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKKyAgICBt
b3ZlIChjb25zdGV4cHIgSU5UMzJfTUFYKSwgdDAKICAgICByZXR1cm5pKGN0eCwgdDApCiAKLS5v
dXRPZkJvdW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCisu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UMzJfTUlOKSwg
dDAKKyAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCiAKLXdhc21PcChpNjRfdHJ1bmNfc19mMzIs
IFdhc21JNjRUcnVuY1NGMzIsIG1hY3JvIChjdHgpCit3YXNtT3AoaTMyX3RydW5jX3NhdF9mMzJf
dSwgV2FzbUkzMlRydW5jU2F0RjMyVSwgbWFjcm8gKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29w
ZXJhbmQsIGZ0MCkKIAotICAgIG1vdmUgMHhkZjAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4KKyAgICBt
b3ZlIDB4YmY4MDAwMDAsIHQwICMgLTEuMAogICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmbHR1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKyAgICBiZmx0ZXF1biBmdDAsIGZ0MSwgLm91dE9m
Qm91bmRzVHJ1bmNTYXRNaW4KIAotICAgIG1vdmUgMHg1ZjAwMDAwMCwgdDAgIyAtSU5UNjRfTUlO
CisgICAgbW92ZSAweDRmODAwMDAwLCB0MCAjIElOVDMyX01JTiAqIC0yLjAKICAgICBmaTJmIHQw
LCBmdDEKLSAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKyAgICBiZmd0
ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKIAotICAgIHRydW5jYXRlZjJx
cyBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAg
ICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQotZW5kKQotCi13YXNtT3AoaTY0X3Ry
dW5jX3NfZjY0LCBXYXNtSTY0VHJ1bmNTRjY0LCBtYWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgs
IG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGMzZTAwMDAwMDAwMDAwMDAsIHQwICMgSU5U
NjRfTUlOCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3Vu
ZHNUcnVuYwotCi0gICAgbW92ZSAweDQzZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDY0X01JTgot
ICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVu
YwotCi0gICAgdHJ1bmNhdGVkMnFzIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5v
dXRPZkJvdW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCi1l
bmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfdV9mMzIsIFdhc21JNjRUcnVuY1VGMzIsIG1hY3JvIChj
dHgpCi0gICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YmY4MDAw
MDAsIHQwICMgLTEuMAotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmbHRlcXVuIGZ0MCwgZnQxLCAu
b3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgbW92ZSAweDVmODAwMDAwLCB0MCAjIElOVDY0X01JTiAq
IC0yLjAKLSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91
bmRzVHJ1bmMKLQotICAgIHRydW5jYXRlZjJxIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDAp
Ci0KLS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1
bmMpCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfdV9mNjQsIFdhc21JNjRUcnVuY1VGNjQsIG1h
Y3JvIChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4
YmZmMDAwMDAwMDAwMDAwMCwgdDAgIyAtMS4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdGVx
dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICBtb3ZlIDB4NDNmMDAwMDAwMDAw
MDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVx
dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICB0cnVuY2F0ZWQycSBmdDAsIHQw
Ci0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJvd0V4
Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQotZW5kKQotCi13YXNtT3AoaTMyX3RydW5jX3NhdF9m
MzJfcywgV2FzbUkzMlRydW5jU2F0RjMyUywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGYoY3R4LCBt
X29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhjZjAwMDAwMCwgdDAgIyBJTlQzMl9NSU4gKE5v
dGUgdGhhdCBJTlQzMl9NSU4gLSAxLjAgaW4gZmxvYXQgaXMgdGhlIHNhbWUgYXMgSU5UMzJfTUlO
IGluIGZsb2F0KS4KLSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmx0dW4gZnQwLCBmdDEsIC5vdXRP
ZkJvdW5kc1RydW5jU2F0TWluT3JOYU4KLQotICAgIG1vdmUgMHg0ZjAwMDAwMCwgdDAgIyAtSU5U
MzJfTUlOCi0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJv
dW5kc1RydW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWYyaXMgZnQwLCB0MAotICAgIHJldHVybmko
Y3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKLSAgICBiZmVxIGZ0MCwg
ZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotICAgIG1vdmUgMCwgdDAKLSAgICByZXR1cm5p
KGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1vdmUgKGNvbnN0ZXhw
ciBJTlQzMl9NQVgpLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1
bmNTYXRNaW46Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDMyX01JTiksIHQwCi0gICAgcmV0dXJu
aShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfcywgV2FzbUkzMlRy
dW5jU2F0RjY0UywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkK
LQotICAgIG1vdmUgMHhjMWUwMDAwMDAwMjAwMDAwLCB0MCAjIElOVDMyX01JTiAtIDEuMAotICAg
IGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1pbk9yTmFOCi0KLSAgICBtb3ZlIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UMzJfTUlO
Ci0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1Ry
dW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAotICAgIHJldHVybmkoY3R4LCB0
MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKLSAgICBiZGVxIGZ0MCwgZnQwLCAu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotICAgIG1vdmUgMCwgdDAKLSAgICByZXR1cm5pKGN0eCwg
dDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQz
Ml9NQVgpLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRN
aW46Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDMyX01JTiksIHQwCi0gICAgcmV0dXJuaShjdHgs
IHQwKQotZW5kKQotCi13YXNtT3AoaTMyX3RydW5jX3NhdF9mMzJfdSwgV2FzbUkzMlRydW5jU2F0
RjMyVSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAg
IG1vdmUgMHhiZjgwMDAwMCwgdDAgIyAtMS4wCi0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZsdGVx
dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCi0KLSAgICBtb3ZlIDB4NGY4MDAw
MDAsIHQwICMgSU5UMzJfTUlOICogLTIuMAotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmZ3RlcXVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVmMmkgZnQw
LCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKKyAgICB0cnVuY2F0ZWYyaSBmdDAsIHQwCisgICAg
cmV0dXJuaShjdHgsIHQwKQogCiAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKICAgICBtb3ZlIDAs
IHQwCkBAIC0xNDc1LDE1MiArMTEzOSwyMiBAQCB3YXNtT3AoaTMyX3RydW5jX3NhdF9mMzJfdSwg
V2FzbUkzMlRydW5jU2F0RjMyVSwgbWFjcm8gKGN0eCkKICAgICByZXR1cm5pKGN0eCwgdDApCiBl
bmQpCiAKLXdhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF91LCBXYXNtSTMyVHJ1bmNTYXRGNjRVLCBt
YWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAw
eGJmZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRl
cXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotCi0gICAgbW92ZSAweDQxZjAw
MDAwMDAwMDAwMDAsIHQwICMgSU5UMzJfTUlOICogLTIuMAotICAgIGZxMmQgdDAsIGZ0MQotICAg
IGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNh
dGVkMmkgZnQwLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNT
YXRNaW46Ci0gICAgbW92ZSAwLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91
bmRzVHJ1bmNTYXRNYXg6Ci0gICAgbW92ZSAoY29uc3RleHByIFVJTlQzMl9NQVgpLCB0MAotICAg
IHJldHVybmkoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3MsIFdh
c21JNjRUcnVuY1NhdEYzMlMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5k
LCBmdDApCi0KLSAgICBtb3ZlIDB4ZGYwMDAwMDAsIHQwICMgSU5UNjRfTUlOCi0gICAgZmkyZiB0
MCwgZnQxCi0gICAgYmZsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFO
Ci0KLSAgICBtb3ZlIDB4NWYwMDAwMDAsIHQwICMgLUlOVDY0X01JTgotICAgIGZpMmYgdDAsIGZ0
MQotICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAg
dHJ1bmNhdGVmMnFzIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5k
c1RydW5jU2F0TWluT3JOYU46Ci0gICAgYmZlcSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1bmNT
YXRNaW4KLSAgICBtb3ZlIDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3Vu
ZHNUcnVuY1NhdE1heDoKLSAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUFYKSwgdDAKLSAgICBy
ZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgotICAgIG1vdmUgKGNv
bnN0ZXhwciBJTlQ2NF9NSU4pLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2Fz
bU9wKGk2NF90cnVuY19zYXRfZjY0X3MsIFdhc21JNjRUcnVuY1NhdEY2NFMsIG1hY3JvIChjdHgp
Ci0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YzNlMDAwMDAw
MDAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4KLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0dW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU4KLQotICAgIG1vdmUgMHg0M2UwMDAw
MDAwMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1
biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQotICAgIHRydW5jYXRlZDJxcyBm
dDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9y
TmFOOgotICAgIGJkZXEgZnQwLCBmdDAsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCi0gICAgbW92
ZSAwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6
Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDY0X01BWCksIHQwCi0gICAgcmV0dXJucShjdHgsIHQw
KQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKLSAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRf
TUlOKSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNf
c2F0X2YzMl91LCBXYXNtSTY0VHJ1bmNTYXRGMzJVLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZihj
dHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGJmODAwMDAwLCB0MCAjIC0xLjAKLSAg
ICBmaTJmIHQwLCBmdDEKLSAgICBiZmx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNT
YXRNaW4KLQotICAgIG1vdmUgMHg1ZjgwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCi0gICAg
ZmkyZiB0MCwgZnQxCi0gICAgYmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0
TWF4Ci0KLSAgICB0cnVuY2F0ZWYycSBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0u
b3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKLSAgICBtb3ZlIDAsIHQwCi0gICAgcmV0dXJucShjdHgs
IHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKLSAgICBtb3ZlIChjb25zdGV4cHIgVUlO
VDY0X01BWCksIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3Ry
dW5jX3NhdF9mNjRfdSwgV2FzbUk2NFRydW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkKLSAgICBtbG9h
ZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0
MCAjIC0xLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9m
Qm91bmRzVHJ1bmNTYXRNaW4KLQotICAgIG1vdmUgMHg0M2YwMDAwMDAwMDAwMDAwLCB0MCAjIElO
VDY0X01JTiAqIC0yLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwg
Lm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQotICAgIHRydW5jYXRlZDJxIGZ0MCwgdDAKLSAgICBy
ZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgotICAgIG1vdmUgMCwg
dDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAg
IG1vdmUgKGNvbnN0ZXhwciBVSU5UNjRfTUFYKSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1l
bmQpCi0KLQotd2FzbU9wKGYzMl9jb252ZXJ0X3VfaTY0LCBXYXNtRjMyQ29udmVydFVJNjQsIG1h
Y3JvIChjdHgpCit3YXNtSTY0VG9GT3AoZjMyX2NvbnZlcnRfdV9pNjQsIFdhc21GMzJDb252ZXJ0
VUk2NCwgbWFjcm8gKGN0eCkKICAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQogICAgIGlm
IFg4Nl82NAogICAgICAgICBjcTJmIHQwLCB0MSwgZnQwCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJN
NjRFIG9yIFJJU0NWNjQKLSAgICAgICAgY3EyZiB0MCwgZnQwCiAgICAgZWxzZQotICAgICAgICBl
cnJvcgorICAgICAgICBjcTJmIHQwLCBmdDAKICAgICBlbmQKICAgICByZXR1cm5mKGN0eCwgZnQw
KQogZW5kKQogCi13YXNtT3AoZjY0X2NvbnZlcnRfdV9pNjQsIFdhc21GNjRDb252ZXJ0VUk2NCwg
bWFjcm8gKGN0eCkKK3dhc21JNjRUb0ZPcChmNjRfY29udmVydF91X2k2NCwgV2FzbUY2NENvbnZl
cnRVSTY0LCBtYWNybyAoY3R4KQogICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAg
aWYgWDg2XzY0CiAgICAgICAgIGNxMmQgdDAsIHQxLCBmdDAKLSAgICBlbHNpZiBBUk02NCBvciBB
Uk02NEUgb3IgUklTQ1Y2NAotICAgICAgICBjcTJkIHQwLCBmdDAKICAgICBlbHNlCi0gICAgICAg
IGVycm9yCisgICAgICAgIGNxMmQgdDAsIGZ0MAogICAgIGVuZAogICAgIHJldHVybmQoY3R4LCBm
dDApCiBlbmQpCkBAIC0xNjMxLDQ3ICsxMTY1LDYgQEAgd2FzbU9wKGkzMl9lcXosIFdhc21JMzJF
cXosIG1hY3JvKGN0eCkKICAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCiAKLXdhc21PcChpNjRf
c2hsLCBXYXNtSTY0U2hsLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQot
ICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLSAgICBsc2hpZnRxIHQxLCB0MAotICAgIHJldHVy
bnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9zaHJfdSwgV2FzbUk2NFNoclUsIG1hY3Jv
KGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMs
IHQxKQotICAgIHVyc2hpZnRxIHQxLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQot
d2FzbU9wKGk2NF9zaHJfcywgV2FzbUk2NFNoclMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4
LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotICAgIHJzaGlmdHEgdDEs
IHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3JvdHIsIFdhc21J
NjRSb3RyLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2Fk
aShjdHgsIG1fcmhzLCB0MSkKLSAgICBycm90YXRlcSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwg
dDApCi1lbmQpCi0KLXdhc21PcChpNjRfcm90bCwgV2FzbUk2NFJvdGwsIG1hY3JvKGN0eCkKLSAg
ICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotICAg
IGxyb3RhdGVxIHQxLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2
NF9lcXosIFdhc21JNjRFcXosIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQs
IHQwKQotICAgIGNxZXEgdDAsIDAsIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotZW5kKQotCiB3
YXNtT3AoZjMyX21pbiwgV2FzbUYzMk1pbiwgbWFjcm8oY3R4KQogICAgIG1sb2FkZihjdHgsIG1f
bGhzLCBmdDApCiAgICAgbWxvYWRmKGN0eCwgbV9yaHMsIGZ0MSkKQEAgLTE3ODEsMjMgKzEyNzQs
NiBAQCB3YXNtT3AoZjY0X21heCwgV2FzbUY2NE1heCwgbWFjcm8oY3R4KQogICAgIHJldHVybmQo
Y3R4LCBmdDEpCiBlbmQpCiAKLXdhc21PcChmNjRfY29weXNpZ24sIFdhc21GNjRDb3B5c2lnbiwg
bWFjcm8oY3R4KQotICAgIG1sb2FkZChjdHgsIG1fbGhzLCBmdDApCi0gICAgbWxvYWRkKGN0eCwg
bV9yaHMsIGZ0MSkKLQotICAgIGZkMnEgZnQxLCB0MQotICAgIG1vdmUgMHg4MDAwMDAwMDAwMDAw
MDAwLCB0MgotICAgIGFuZHEgdDIsIHQxCi0KLSAgICBmZDJxIGZ0MCwgdDAKLSAgICBtb3ZlIDB4
N2ZmZmZmZmZmZmZmZmZmZiwgdDIKLSAgICBhbmRxIHQyLCB0MAotCi0gICAgb3JxIHQxLCB0MAot
ICAgIGZxMmQgdDAsIGZ0MAotICAgIHJldHVybmQoY3R4LCBmdDApCi1lbmQpCi0KIHdhc21PcChm
MzJfY29udmVydF91X2kzMiwgV2FzbUYzMkNvbnZlcnRVSTMyLCBtYWNybyhjdHgpCiAgICAgbWxv
YWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICBjaTJmIHQwLCBmdDAKQEAgLTE5NzMsMTM0ICsx
NDQ5LDYgQEAgd2FzbU9wKGkzMl9jbHosIFdhc21JMzJDbHosIG1hY3JvKGN0eCkKICAgICByZXR1
cm5pKGN0eCwgdDEpCiBlbmQpCiAKLXdhc21PcChpNjRfYWRkLCBXYXNtSTY0QWRkLCBtYWNybyhj
dHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0
MSkKLSAgICBhZGRxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9w
KGk2NF9zdWIsIFdhc21JNjRTdWIsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywg
dDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIHN1YnEgdDEsIHQwCi0gICAgcmV0
dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X211bCwgV2FzbUk2NE11bCwgbWFjcm8o
Y3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3Jocywg
dDEpCi0gICAgbXVscSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21P
cChpNjRfYW5kLCBXYXNtSTY0QW5kLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMs
IHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBhbmRxIHQwLCB0MQotICAgIHJl
dHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9vciwgV2FzbUk2NE9yLCBtYWNybyhj
dHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0
MSkKLSAgICBvcnEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3Ao
aTY0X3hvciwgV2FzbUk2NFhvciwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0
MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgeG9ycSB0MCwgdDEKLSAgICByZXR1
cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfZXEsIFdhc21JNjRFcSwgbWFjcm8oY3R4
KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEp
Ci0gICAgY3FlcSB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0
MikKLWVuZCkKLQotd2FzbU9wKGk2NF9uZSwgV2FzbUk2NE5lLCBtYWNybyhjdHgpCi0gICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcW5l
cSB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkK
LQotd2FzbU9wKGk2NF9sdF9zLCBXYXNtSTY0THRTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0
eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWx0IHQwLCB0
MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNt
T3AoaTY0X2xlX3MsIFdhc21JNjRMZVMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xo
cywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxbHRlcSB0MCwgdDEsIHQy
Ci0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2
NF9sdF91LCBXYXNtSTY0THRVLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQw
KQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWIgdDAsIHQxLCB0MgotICAgIGFu
ZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfbGVfdSwg
V2FzbUk2NExlVSwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBt
bG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FiZXEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwg
dDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfZ3RfcywgV2FzbUk2
NEd0UywgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEo
Y3R4LCBtX3JocywgdDEpCi0gICAgY3FndCB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAg
IHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9nZV9zLCBXYXNtSTY0R2VTLCBt
YWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1f
cmhzLCB0MSkKLSAgICBjcWd0ZXEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1
cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfZ3RfdSwgV2FzbUk2NEd0VSwgbWFjcm8o
Y3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3Jocywg
dDEpCi0gICAgY3FhIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgs
IHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2dlX3UsIFdhc21JNjRHZVUsIG1hY3JvKGN0eCkKLSAg
ICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAg
IGNxYWVxIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQot
ZW5kKQotCi13YXNtT3AoaTY0X2NseiwgV2FzbUk2NENseiwgbWFjcm8oY3R4KQotICAgIG1sb2Fk
cShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgbHpjbnRxIHQwLCB0MQotICAgIHJldHVybnEoY3R4
LCB0MSkKLWVuZCkKLQogd2FzbU9wKGYzMl9hZGQsIFdhc21GMzJBZGQsIG1hY3JvKGN0eCkKICAg
ICBtbG9hZGYoY3R4LCBtX2xocywgZnQwKQogICAgIG1sb2FkZihjdHgsIG1fcmhzLCBmdDEpCkBA
IC0yMTQxLDEzICsxNDg5LDEzIEBAIHdhc21PcChmMzJfbmVnLCBXYXNtRjMyTmVnLCBtYWNybyhj
dHgpCiAgICAgcmV0dXJuZihjdHgsIGZ0MSkKIGVuZCkKIAotd2FzbU9wKGYzMl9jZWlsLCBXYXNt
RjMyQ2VpbCwgbWFjcm8oY3R4KQord2FzbVJvdW5kaW5nT3AoZjMyX2NlaWwsIFdhc21GMzJDZWls
LCBtYWNybyhjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgY2VpbGYg
ZnQwLCBmdDEKICAgICByZXR1cm5mKGN0eCwgZnQxKQogZW5kKQogCi13YXNtT3AoZjMyX2Zsb29y
LCBXYXNtRjMyRmxvb3IsIG1hY3JvKGN0eCkKK3dhc21Sb3VuZGluZ09wKGYzMl9mbG9vciwgV2Fz
bUYzMkZsb29yLCBtYWNybyhjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAg
ICAgZmxvb3JmIGZ0MCwgZnQxCiAgICAgcmV0dXJuZihjdHgsIGZ0MSkKQEAgLTIyNDEsMTMgKzE1
ODksMTMgQEAgd2FzbU9wKGY2NF9uZWcsIFdhc21GNjROZWcsIG1hY3JvKGN0eCkKICAgICByZXR1
cm5kKGN0eCwgZnQxKQogZW5kKQogCi13YXNtT3AoZjY0X2NlaWwsIFdhc21GNjRDZWlsLCBtYWNy
byhjdHgpCit3YXNtUm91bmRpbmdPcChmNjRfY2VpbCwgV2FzbUY2NENlaWwsIG1hY3JvKGN0eCkK
ICAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICBjZWlsZCBmdDAsIGZ0MQogICAg
IHJldHVybmQoY3R4LCBmdDEpCiBlbmQpCiAKLXdhc21PcChmNjRfZmxvb3IsIFdhc21GNjRGbG9v
ciwgbWFjcm8oY3R4KQord2FzbVJvdW5kaW5nT3AoZjY0X2Zsb29yLCBXYXNtRjY0Rmxvb3IsIG1h
Y3JvKGN0eCkKICAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICBmbG9vcmQgZnQw
LCBmdDEKICAgICByZXR1cm5kKGN0eCwgZnQxKQpAQCAtMjMwMiw1MCArMTY1MCwyMCBAQCB3YXNt
T3AoZjY0X2dlLCBXYXNtRjY0R2UsIG1hY3JvKGN0eCkKIGVuZCkKIAogd2FzbU9wKGkzMl93cmFw
X2k2NCwgV2FzbUkzMldyYXBJNjQsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJh
bmQsIHQwKQotICAgIHJldHVybmkoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9leHRlbmRf
c19pMzIsIFdhc21JNjRFeHRlbmRTSTMyLCBtYWNybyhjdHgpCi0gICAgbWxvYWRpKGN0eCwgbV9v
cGVyYW5kLCB0MCkKLSAgICBzeGkycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQp
Ci0KLXdhc21PcChpNjRfZXh0ZW5kX3VfaTMyLCBXYXNtSTY0RXh0ZW5kVUkzMiwgbWFjcm8oY3R4
KQogICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgenhpMnEgdDAsIHQxCi0gICAg
cmV0dXJucShjdHgsIHQxKQorICAgIHJldHVybmkoY3R4LCB0MCkKIGVuZCkKIAogd2FzbU9wKGkz
Ml9leHRlbmQ4X3MsIFdhc21JMzJFeHRlbmQ4UywgbWFjcm8oY3R4KQogICAgIG1sb2FkaShjdHgs
IG1fb3BlcmFuZCwgdDApCiAgICAgc3hiMmkgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQor
ICAgIHJldHVybmkoY3R4LCB0MSkKIGVuZCkKIAogd2FzbU9wKGkzMl9leHRlbmQxNl9zLCBXYXNt
STMyRXh0ZW5kMTZTLCBtYWNybyhjdHgpCiAgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkK
ICAgICBzeGgyaSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChp
NjRfZXh0ZW5kOF9zLCBXYXNtSTY0RXh0ZW5kOFMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4
LCBtX29wZXJhbmQsIHQwKQotICAgIHN4YjJxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkK
LWVuZCkKLQotd2FzbU9wKGk2NF9leHRlbmQxNl9zLCBXYXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhj
dHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBzeGgycSB0MCwgdDEKLSAg
ICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfZXh0ZW5kMzJfcywgV2FzbUk2
NEV4dGVuZDE2UywgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCi0g
ICAgc3hpMnEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQorICAgIHJldHVybmkoY3R4LCB0
MSkKIGVuZCkKIAogd2FzbU9wKGYzMl9jb252ZXJ0X3NfaTMyLCBXYXNtRjMyQ29udmVydFNJMzIs
IG1hY3JvKGN0eCkKQEAgLTIzNTQsNyArMTY3Miw3IEBAIHdhc21PcChmMzJfY29udmVydF9zX2kz
MiwgV2FzbUYzMkNvbnZlcnRTSTMyLCBtYWNybyhjdHgpCiAgICAgcmV0dXJuZihjdHgsIGZ0MCkK
IGVuZCkKIAotd2FzbU9wKGYzMl9jb252ZXJ0X3NfaTY0LCBXYXNtRjMyQ29udmVydFNJNjQsIG1h
Y3JvKGN0eCkKK3dhc21JNjRUb0ZPcChmMzJfY29udmVydF9zX2k2NCwgV2FzbUYzMkNvbnZlcnRT
STY0LCBtYWNybyhjdHgpCiAgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICBjcTJm
cyB0MCwgZnQwCiAgICAgcmV0dXJuZihjdHgsIGZ0MCkKQEAgLTIzNzgsNyArMTY5Niw3IEBAIHdh
c21PcChmNjRfY29udmVydF9zX2kzMiwgV2FzbUY2NENvbnZlcnRTSTMyLCBtYWNybyhjdHgpCiAg
ICAgcmV0dXJuZChjdHgsIGZ0MCkKIGVuZCkKIAotd2FzbU9wKGY2NF9jb252ZXJ0X3NfaTY0LCBX
YXNtRjY0Q29udmVydFNJNjQsIG1hY3JvKGN0eCkKK3dhc21JNjRUb0ZPcChmNjRfY29udmVydF9z
X2k2NCwgV2FzbUY2NENvbnZlcnRTSTY0LCBtYWNybyhjdHgpCiAgICAgbWxvYWRxKGN0eCwgbV9v
cGVyYW5kLCB0MCkKICAgICBjcTJkcyB0MCwgZnQwCiAgICAgcmV0dXJuZChjdHgsIGZ0MCkKQEAg
LTIzOTAsMzQgKzE3MDgsMjkgQEAgd2FzbU9wKGY2NF9wcm9tb3RlX2YzMiwgV2FzbUY2NFByb21v
dGVGMzIsIG1hY3JvKGN0eCkKICAgICByZXR1cm5kKGN0eCwgZnQxKQogZW5kKQogCi13YXNtT3Ao
ZjY0X3JlaW50ZXJwcmV0X2k2NCwgV2FzbUY2NFJlaW50ZXJwcmV0STY0LCBtYWNybyhjdHgpCi0g
ICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBmcTJkIHQwLCBmdDAKLSAgICByZXR1
cm5kKGN0eCwgZnQwKQotZW5kKQotCiB3YXNtT3AoaTMyX3JlaW50ZXJwcmV0X2YzMiwgV2FzbUkz
MlJlaW50ZXJwcmV0RjMyLCBtYWNybyhjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBm
dDApCiAgICAgZmYyaSBmdDAsIHQwCiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQogCi13YXNt
T3AoaTY0X3JlaW50ZXJwcmV0X2Y2NCwgV2FzbUk2NFJlaW50ZXJwcmV0RjY0LCBtYWNybyhjdHgp
Ci0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0gICAgZmQycSBmdDAsIHQwCi0gICAg
cmV0dXJucShjdHgsIHQwKQotZW5kKQotCiBtYWNybyBkcm9wS2VlcChzdGFydE9mZnNldCwgZHJv
cCwga2VlcCkKICAgICBsc2hpZnRpIDMsIHN0YXJ0T2Zmc2V0CiAgICAgc3VicCBjZnIsIHN0YXJ0
T2Zmc2V0LCBzdGFydE9mZnNldAogICAgIG5lZ2kgZHJvcAoraWYgSlNWQUxVRTY0CiAgICAgc3hp
MnEgZHJvcCwgZHJvcAorZW5kCiAKIC5jb3B5TG9vcDoKICAgICBidGl6IGtlZXAsIC5kb25lCitp
ZiBKU1ZBTFVFNjQKICAgICBsb2FkcSBbc3RhcnRPZmZzZXQsIGRyb3AsIDhdLCB0NgogICAgIHN0
b3JlcSB0NiwgW3N0YXJ0T2Zmc2V0XQorZWxzZQorICAgIGxvYWQyaWEgW3N0YXJ0T2Zmc2V0LCBk
cm9wLCA4XSwgdDUsIHQ2CisgICAgc3RvcmUyaWEgdDUsIHQ2LCBbc3RhcnRPZmZzZXRdCitlbmQK
ICAgICBzdWJpIDEsIGtlZXAKICAgICBzdWJwIDgsIHN0YXJ0T2Zmc2V0CiAgICAgam1wIC5jb3B5
TG9vcApAQCAtMjQzNSwzODkgKzE3NDgsNiBAQCB3YXNtT3AoZHJvcF9rZWVwLCBXYXNtRHJvcEtl
ZXAsIG1hY3JvKGN0eCkKICAgICBkaXNwYXRjaChjdHgpCiBlbmQpCiAKLW1hY3JvIHdhc21BdG9t
aWNCaW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5o
LCBmbmksIGZucSkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVf
dSwgV2FzbUk2NEF0b21pY1JtdzgldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAg
ICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNl
dCwgdDEpCi0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQwKQotICAgICAgICBlbWl0Q2hl
Y2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgsIHQzLCB0MSwgMSkKLSAgICAgICAg
Zm5iKHQwLCBbdDNdLCB0MiwgdDUsIHQxKQotICAgICAgICBhbmRxIDB4ZmYsIHQwICMgRklYTUU6
IFplcm9FeHRlbmQ4VG82NAotICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZm
LCAub2sgZW5kKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdhc21P
cChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzE2
JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9p
bnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9h
ZHEoY3R4LCBtX3ZhbHVlLCB0MCkKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJB
ZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDIpCi0gICAgICAgIGZu
aCh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKLSAgICAgICAgYW5kcSAweGZmZmYsIHQwICMgRklYTUU6
IFplcm9FeHRlbmQxNlRvNjQKLSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhm
ZmZmLCAub2sgZW5kKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdh
c21PcChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1Jt
dzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1f
cG9pbnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBt
bG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50
ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDQpCi0gICAgICAg
IGZuaSh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKLSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJl
cSB0MCwgMHhmZmZmZmZmZiwgLm9rIGVuZCkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAg
IGVuZCkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2
NEF0b21pY1JtdyV1cHBlckNhc2VPcGNvZGUlLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShj
dHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAg
ICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFy
ZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDgpCi0g
ICAgICAgIGZucSh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKLSAgICAgICAgcmV0dXJucShjdHgsIHQw
KQotICAgIGVuZCkKLWVuZAotCi1tYWNybyB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtD
QVMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuaSwgZm5xKQotICAgIHdhc21B
dG9taWNCaW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsCi0gICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBp
ZiBYODZfNjQKLSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgotICAgICAgICAgICAg
ICAgIGxvYWRiIG1lbSwgdDBHUFIKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAg
IG1vdmUgdDBHUFIsIHQyR1BSCi0gICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKLSAg
ICAgICAgICAgICAgICBiYXRvbWljd2Vha2Nhc2IgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCi0g
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBsb2Fk
bGlua2FjcWIgbWVtLCB0MUdQUgotICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQy
R1BSKQotICAgICAgICAgICAgICAgIHN0b3JlY29uZHJlbGIgdDVHUFIsIHQyR1BSLCBtZW0KLSAg
ICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKLSAgICAgICAgICAgICAgICBtb3Zl
IHQxR1BSLCB0MEdQUgotICAgICAgICAgICAgZW5kCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFj
cm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIGlmIFg4Nl82
NAotICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCi0gICAgICAgICAgICAgICAgbG9h
ZGggbWVtLCB0MEdQUgotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbW92ZSB0
MEdQUiwgdDJHUFIKLSAgICAgICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQotICAgICAgICAg
ICAgICAgIGJhdG9taWN3ZWFrY2FzaCB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKLSAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNx
aCBtZW0sIHQxR1BSCi0gICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0g
ICAgICAgICAgICAgICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAg
ICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAotICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIs
IHQwR1BSCi0gICAgICAgICAgICBlbmQKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgaWYgWDg2XzY0Ci0gICAg
ICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKLSAgICAgICAgICAgICAgICBsb2FkaSBtZW0s
IHQwR1BSCi0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0
MkdQUgotICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAgICAg
YmF0b21pY3dlYWtjYXNpIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAotICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbG9hZGxpbmthY3FpIG1lbSwg
dDFHUFIKLSAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAg
ICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICAgICAg
YmluZXEgdDVHUFIsIDAsIC5sb29wCi0gICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIK
LSAgICAgICAgICAgIGVuZAotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBpZiBYODZfNjQKLSAgICAgICAgICAg
ICAgICBtb3ZlIHQwR1BSLCB0NUdQUgotICAgICAgICAgICAgICAgIGxvYWRxIG1lbSwgdDBHUFIK
LSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCi0g
ICAgICAgICAgICAgICAgZm5xKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgICAgICBiYXRvbWlj
d2Vha2Nhc3EgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCi0gICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBsb2FkbGlua2FjcXEgbWVtLCB0MUdQUgot
ICAgICAgICAgICAgICAgIGZucSh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgICAg
IHN0b3JlY29uZHJlbHEgdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgICAgICBiaW5lcSB0
NUdQUiwgMCwgLmxvb3AKLSAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAgICAg
ICAgICAgZW5kCi0gICAgICAgIGVuZCkKLWVuZAotCi1pZiBYODZfNjQKLSAgICB3YXNtQXRvbWlj
QmluYXJ5Uk1XT3BzKF9hZGQsIEFkZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGIgdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRoIHQwR1BS
LCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KSBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZHEgdDBHUFIsIG1lbSBlbmQpCi0g
ICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfc3ViLCBTdWIsCi0gICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJiIHQwR1BSLCBtZW0gZW5k
LAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4
Y2hnc3ViaCB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1YmkgdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJxIHQwR1BS
LCBtZW0gZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hjaGcsIFhjaGcsCi0gICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdiIHQw
R1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKSBhdG9taWN4Y2hnaCB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2kgdDBHUFIsIG1lbSBlbmQsCi0gICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdxIHQw
R1BSLCBtZW0gZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYW5k
LCBBbmQsCi0gICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgIGFuZGkgdDVH
UFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAg
ICAgICAgICAgYW5kcSB0NUdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNC
aW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfb3IsIE9yLAotICAgICAgICBtYWNybyh0NUdQUiwgdDJH
UFIpCi0gICAgICAgICAgICBvcmkgdDVHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAg
bWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgb3JxIHQ1R1BSLCB0MkdQUgotICAgICAg
ICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwK
LSAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgeG9yaSB0NUdQUiwgdDJH
UFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAg
ICB4b3JxIHQ1R1BSLCB0MkdQUgotICAgICAgICBlbmQpCi1lbHNpZiBBUk02NEUKLSAgICB3YXNt
QXRvbWljQmluYXJ5Uk1XT3BzKF9hZGQsIEFkZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwg
dDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGIgdDBHUFIsIG1lbSwgdDBHUFIgZW5k
LAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4
Y2hnYWRkaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0sIHQwR1BSIGVu
ZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWlj
eGNoZ2FkZHEgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdP
cHMoX3N1YiwgU3ViLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKQotICAgICAgICAgICAgbmVncSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGIg
dDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgbmVncSB0MEdQUgotICAgICAgICAg
ICAgYXRvbWljeGNoZ2FkZGggdDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kLAotICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgbmVn
cSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1lbSwgdDBHUFIKLSAg
ICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KQotICAgICAgICAgICAgbmVncSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2FkZHEgdDBH
UFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMo
X2FuZCwgQW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KQotICAgICAgICAgICAgbm90cSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFyYiB0
MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBub3RxIHQwR1BSCi0gICAgICAgICAg
ICBhdG9taWN4Y2hnY2xlYXJoIHQwR1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCwKLSAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIG5v
dHEgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcmkgdDBHUFIsIG1lbSwgdDBHUFIK
LSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKQotICAgICAgICAgICAgbm90cSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFy
cSB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJN
V09wcyhfb3IsIE9yLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKSBhdG9taWN4Y2hnb3JiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29yaCB0MEdQUiwgbWVt
LCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFH
UFIpIGF0b21pY3hjaGdvcmkgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnb3JxIHQwR1BSLCBtZW0s
IHQwR1BSIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94b3IsIFhvciwKLSAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmIg
dDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwg
dDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9yaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3Jp
IHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcnEgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQotICAg
IHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hjaGcsIFhjaGcsCi0gICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdiIHQwR1BSLCBtZW0sIHQwR1BS
IGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRv
bWljeGNoZ2ggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQs
Ci0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hj
aGdxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKLWVsc2UKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1X
T3BzV2l0aFdlYWtDQVMoX2FkZCwgQWRkLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQy
R1BSKQotICAgICAgICAgICAgYWRkaSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwK
LSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIGFkZHEgdDBH
UFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09w
c1dpdGhXZWFrQ0FTKF9zdWIsIFN1YiwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQ
UikKLSAgICAgICAgICAgIHN1YmkgdDFHUFIsIHQwR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0g
ICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBzdWJxIHQxR1BS
LCB0MEdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNX
aXRoV2Vha0NBUyhfeGNoZywgWGNoZywKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQ
UikKLSAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAg
bWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BS
Ci0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2Fu
ZCwgQW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAg
YW5kaSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBH
UFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIGFuZHEgdDBHUFIsIHQxR1BSLCB0MkdQUgot
ICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9vciwg
T3IsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBvcmkg
dDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0
MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBvcnEgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAg
ICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwK
LSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIHhvcmkgdDBH
UFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQ
UiwgdDJHUFIpCi0gICAgICAgICAgICB4b3JxIHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAg
ZW5kKQotZW5kCi0KLW1hY3JvIHdhc21BdG9taWNDb21wYXJlRXhjaGFuZ2VPcHMobG93ZXJDYXNl
T3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmksIGZucSkKLSAgICB3YXNtT3Ao
aTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzgldXBw
ZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVy
LCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShj
dHgsIG1fZXhwZWN0ZWQsIHQwKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAg
ICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQoY3R4LCB0MywgdDEs
IDEpCi0gICAgICAgIGZuYih0MCwgdDIsIFt0M10sIHQ1LCB0MSkKLSAgICAgICAgYW5kcSAweGZm
LCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kOFRvNjQKLSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBi
cWJlcSB0MCwgMHhmZiwgLm9rIGVuZCkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVu
ZCkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcxNiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21J
NjRBdG9taWNSbXcxNiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9h
ZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkK
LSAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCi0gICAgICAgIG1sb2FkcShjdHgs
IG1fdmFsdWUsIHQyKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09m
ZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgMikKLSAgICAgICAgZm5oKHQwLCB0
MiwgW3QzXSwgdDUsIHQxKQotICAgICAgICBhbmRxIDB4ZmZmZiwgdDAgIyBGSVhNRTogWmVyb0V4
dGVuZDE2VG82NAotICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmZmYsIC5v
ayBlbmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi0gICAgd2FzbU9wKGk2
NF9hdG9taWNfcm13MzIlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MzIldXBw
ZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVy
LCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShj
dHgsIG1fZXhwZWN0ZWQsIHQwKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAg
ICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50
Q2hlY2soY3R4LCB0MywgdDEsIDQpCi0gICAgICAgIGZuaSh0MCwgdDIsIFt0M10sIHQ1LCB0MSkK
LSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZmZmZmZmZiwgLm9rIGVuZCkK
LSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAgICB3YXNtT3AoaTY0X2F0b21p
Y19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0b21pY1JtdyV1cHBlckNhc2VPcGNvZGUl
LCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAg
IHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVk
LCB0MCkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAgICAgIGVtaXRDaGVj
a0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMs
IHQxLCA4KQotICAgICAgICBmbnEodDAsIHQyLCBbdDNdLCB0NSwgdDEpCi0gICAgICAgIHJldHVy
bnEoY3R4LCB0MCkKLSAgICBlbmQpCi1lbmQKLQotIyB0MEdQUiA9PiBleHBlY3RlZCwgdDJHUFIg
PT4gdmFsdWUsIG1lbSA9PiBtZW1vcnkgcmVmZXJlbmNlCi13YXNtQXRvbWljQ29tcGFyZUV4Y2hh
bmdlT3BzKF9jbXB4Y2hnLCBDbXB4Y2hnLAotICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0
NUdQUiwgdDFHUFIpCi0gICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKLSAgICAgICAgICAgIGJx
YSB0MEdQUiAsIDB4ZmYsIC5mYWlsCi0gICAgICAgICAgICBhdG9taWN3ZWFrY2FzYiB0MEdQUiwg
dDJHUFIsIG1lbQotICAgICAgICAgICAgam1wIC5kb25lCi0gICAgICAgIC5mYWlsOgotICAgICAg
ICAgICAgYXRvbWljbG9hZGIgbWVtLCB0MEdQUgotICAgICAgICAuZG9uZToKLSAgICAgICAgZWxz
ZQotICAgICAgICAubG9vcDoKLSAgICAgICAgICAgIGxvYWRsaW5rYWNxYiBtZW0sIHQxR1BSCi0g
ICAgICAgICAgICBicW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCi0gICAgICAgICAgICBzdG9yZWNv
bmRyZWxiIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9u
ZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAgICAgIC5mYWlsOgotICAgICAgICAgICAgc3Rv
cmVjb25kcmVsYiB0NUdQUiwgdDFHUFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwg
LmRvbmUKLSAgICAgICAgICAgIGptcCAubG9vcAotICAgICAgICAuZG9uZToKLSAgICAgICAgICAg
IG1vdmUgdDFHUFIsIHQwR1BSCi0gICAgICAgIGVuZAotICAgIGVuZCwKLSAgICBtYWNybyh0MEdQ
UiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BSKQotICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRF
Ci0gICAgICAgICAgICBicWEgdDBHUFIsIDB4ZmZmZiwgLmZhaWwKLSAgICAgICAgICAgIGF0b21p
Y3dlYWtjYXNoIHQwR1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICBqbXAgLmRvbmUKLSAgICAg
ICAgLmZhaWw6Ci0gICAgICAgICAgICBhdG9taWNsb2FkaCBtZW0sIHQwR1BSCi0gICAgICAgIC5k
b25lOgotICAgICAgICBlbHNlCi0gICAgICAgIC5sb29wOgotICAgICAgICAgICAgbG9hZGxpbmth
Y3FoIG1lbSwgdDFHUFIKLSAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKLSAg
ICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgIGJp
ZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBqbXAgLmxvb3AKLSAgICAgICAgLmZhaWw6
Ci0gICAgICAgICAgICBzdG9yZWNvbmRyZWxoIHQ1R1BSLCB0MUdQUiwgbWVtCi0gICAgICAgICAg
ICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAgICAgIC5k
b25lOgotICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAgICAgICAgZW5kCi0gICAgZW5k
LAotICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgIGlm
IFg4Nl82NCBvciBBUk02NEUKLSAgICAgICAgICAgIGJxYSB0MEdQUiwgMHhmZmZmZmZmZiwgLmZh
aWwKLSAgICAgICAgICAgIGF0b21pY3dlYWtjYXNpIHQwR1BSLCB0MkdQUiwgbWVtCi0gICAgICAg
ICAgICBqbXAgLmRvbmUKLSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAgICBhdG9taWNsb2FkaSBt
ZW0sIHQwR1BSCi0gICAgICAgIC5kb25lOgotICAgICAgICBlbHNlCi0gICAgICAgIC5sb29wOgot
ICAgICAgICAgICAgbG9hZGxpbmthY3FpIG1lbSwgdDFHUFIKLSAgICAgICAgICAgIGJxbmVxIHQw
R1BSLCB0MUdQUiwgLmZhaWwKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbGkgdDVHUFIsIHQyR1BS
LCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBqbXAg
Lmxvb3AKLSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0
MUdQUiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAg
am1wIC5sb29wCi0gICAgICAgIC5kb25lOgotICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIK
LSAgICAgICAgZW5kCi0gICAgZW5kLAotICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQ
UiwgdDFHUFIpCi0gICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKLSAgICAgICAgICAgIGF0b21p
Y3dlYWtjYXNxIHQwR1BSLCB0MkdQUiwgbWVtCi0gICAgICAgIGVsc2UKLSAgICAgICAgLmxvb3A6
Ci0gICAgICAgICAgICBsb2FkbGlua2FjcXEgbWVtLCB0MUdQUgotICAgICAgICAgICAgYnFuZXEg
dDBHUFIsIHQxR1BSLCAuZmFpbAotICAgICAgICAgICAgc3RvcmVjb25kcmVscSB0NUdQUiwgdDJH
UFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGpt
cCAubG9vcAotICAgICAgICAuZmFpbDoKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbHEgdDVHUFIs
IHQxR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAg
ICBqbXAgLmxvb3AKLSAgICAgICAgLmRvbmU6Ci0gICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQ
UgotICAgICAgICBlbmQKLSAgICBlbmQpCi0KIHdhc21PcChhdG9taWNfZmVuY2UsIFdhc21Ecm9w
S2VlcCwgbWFjcm8oY3R4KQogICAgIGZlbmNlCiAgICAgZGlzcGF0Y2goY3R4KQpAQCAtMjg0Niw5
ICsxNzc2LDE0IEBAIG1hY3JvIGNvbW1vbkNhdGNoSW1wbChjdHgsIHN0b3JlV2FzbUluc3RhbmNl
KQogICAgIGNvbnZlcnRDYWxsZWVUb1ZNKHQzKQogICAgIHJlc3RvcmVDYWxsZWVTYXZlc0Zyb21W
TUVudHJ5RnJhbWVDYWxsZWVTYXZlc0J1ZmZlcih0MywgdDApCiAKLSAgICBsb2FkcCBWTTo6Y2Fs
bGVlRm9yV2FzbUNhdGNoW3QzXSwgd3MxCi0gICAgc3RvcmVwIDAsIFZNOjpjYWxsZWVGb3JXYXNt
Q2F0Y2hbdDNdCi0gICAgc3RvcmVwIHdzMSwgQ2FsbGVlW2Nmcl0KKyAgICBsb2FkcCBWTTo6Y2Fs
bGVlRm9yV2FzbUNhdGNoICsgUGF5bG9hZE9mZnNldFt0M10sIHdzMQorICAgIHN0b3JlcCAwLCBW
TTo6Y2FsbGVlRm9yV2FzbUNhdGNoICsgUGF5bG9hZE9mZnNldFt0M10KKyAgICBzdG9yZXAgd3Mx
LCBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0KK2lmIG5vdCBKU1ZBTFVFNjQKKyAgICBsb2Fk
aSBWTTo6Y2FsbGVlRm9yV2FzbUNhdGNoICsgVGFnT2Zmc2V0W3QzXSwgd3MxCisgICAgc3RvcmVp
IEVtcHR5VmFsdWVUYWcsIFZNOjpjYWxsZWVGb3JXYXNtQ2F0Y2ggKyBUYWdPZmZzZXRbdDNdCisg
ICAgc3RvcmVpIHdzMSwgQ2FsbGVlICsgVGFnT2Zmc2V0W2Nmcl0KK2VuZAogCiAgICAgbG9hZHAg
Vk06OmNhbGxGcmFtZUZvckNhdGNoW3QzXSwgY2ZyCiAgICAgc3RvcmVwIDAsIFZNOjpjYWxsRnJh
bWVGb3JDYXRjaFt0M10KQEAgLTI4ODcsOCArMTgyMiwxMyBAQCBtYWNybyBjYXRjaEltcGwoY3R4
LCBzdG9yZVdhc21JbnN0YW5jZSkKIAogLmNvcHlMb29wOgogICAgIGJ0aXogdDMsIC5kb25lCitp
ZiBKU1ZBTFVFNjQKICAgICBsb2FkcSBbdDFdLCB0NgogICAgIHN0b3JlcSB0NiwgW3QyXQorZWxz
ZQorICAgIGxvYWQyaWEgW3QxXSwgdDUsIHQ2CisgICAgc3RvcmUyaWEgdDUsIHQ2LCBbdDJdCitl
bmQKICAgICBzdWJpIDEsIHQzCiAgICAgIyBGSVhNRTogVXNlIGFybSBzdG9yZS1hZGQvc3ViIGlu
c3RydWN0aW9ucyBpbiB3YXNtIExMSW50IGNhdGNoCiAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjEwCkBAIC0yOTE2LDMgKzE4NTYsMTAgQEAgZW5kKQog
Y29tbW9uV2FzbU9wKHdhc21fY2F0Y2hfYWxsX25vX3RscywgV2FzbUNhdGNoQWxsLCBtYWNybygp
IGVuZCwgbWFjcm8oY3R4KQogICAgIGNhdGNoQWxsSW1wbChjdHgsIG1hY3JvKGluc3RhbmNlKSBl
bmQpCiBlbmQpCisKKyMgVmFsdWUtcmVwcmVzZW50YXRpb24tc3BlY2lmaWMgY29kZS4KK2lmIEpT
VkFMVUU2NAorICAgIGluY2x1ZGUgV2ViQXNzZW1ibHk2NAorZWxzZQorICAgIGluY2x1ZGUgV2Vi
QXNzZW1ibHkzMl82NAorZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvV2ViQXNzZW1ibHkzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2Vi
QXNzZW1ibHkzMl82NC5hc20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
Li4xNTgzMDRlOWZhMTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvV2ViQXNzZW1ibHkzMl82NC5hc20KQEAgLTAsMCArMSwxMTI5IEBACisjIENvcHlyaWdo
dCAoQykgMjAxMS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJp
Z2h0IChDKSAyMDIxIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisj
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIENvbnN0YW50cworCitjb25zdCBNc3dP
ZmZzZXQgPSA0Citjb25zdCBMc3dPZmZzZXQgPSAwCisKKyMgT3Bjb2RlcyB0aGF0IHNob3VsZCBl
dmVudHVhbGx5IGJlIHNoYXJlZCB3aXRoIEpTIGxsaW50CisKK3dhc21PcChtb3YsIFdhc21Nb3Ys
IG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9zcmMsIHQxLCB0MCkKKyAgICByZXR1cm4y
aShjdHgsIHQxLCB0MCkKK2VuZCkKKworIyBXYXNtIHNwZWNpZmljIGJ5dGVjb2RlcworCittYWNy
byBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChwb2ludGVyLCBvZmZzZXQs
IHNpemUpCisgICAgIyBUaGlzIG1hY3JvIHVwZGF0ZXMgJ3BvaW50ZXInIHRvIHRhcmdldCBhZGRy
ZXNzLCBhbmQgbWF5IHRocmFzaCAnb2Zmc2V0JworaWYgQVJNdjcKKyAgICAjIE5vdCBlbm91Z2gg
cmVnaXN0ZXJzIG9uIGFybSB0byBrZWVwIHRoZSBtZW1vcnkgYmFzZSBhbmQgc2l6ZSBpbiBwaW5u
ZWQKKyAgICAjIHJlZ2lzdGVycywgc28gbG9hZCB0aGVtIG9uIGVhY2ggYWNjZXNzIGluc3RlYWQu
IEZJWE1FOiBpbXByb3ZlIHRoaXMuCisgICAgYWRkcHMgb2Zmc2V0LCBwb2ludGVyCisgICAgYmNz
IC50aHJvdworICAgIGFkZHBzIHNpemUgLSAxLCBwb2ludGVyLCBvZmZzZXQgIyBVc2Ugb2Zmc2V0
IGFzIHNjcmF0Y2ggcmVnaXN0ZXIKKyAgICBiY3MgLnRocm93CisgICAgYnBiIG9mZnNldCwgV2Fz
bTo6SW5zdGFuY2U6Om1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplW3dhc21JbnN0YW5jZV0sIC5j
b250aW51YXRpb24KKy50aHJvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9y
eUFjY2VzcykKKy5jb250aW51YXRpb246CisgICAgYWRkcCBXYXNtOjpJbnN0YW5jZTo6bV9jYWNo
ZWRNZW1vcnlbd2FzbUluc3RhbmNlXSwgcG9pbnRlcgorZWxzZQorICAgIGNyYXNoKCkKK2VuZAor
ZW5kCisKK21hY3JvIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFs
aWdubWVudENoZWNrKHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKKyAgICAjIFRoaXMgbWFjcm8gdXBk
YXRlcyAncG9pbnRlcicgdG8gdGFyZ2V0IGFkZHJlc3MsIGFuZCBtYXkgdGhyYXNoICdvZmZzZXQn
CitpZiBBUk12NworICAgICMgTm90IGVub3VnaCByZWdpc3RlcnMgb24gYXJtIHRvIGtlZXAgdGhl
IG1lbW9yeSBiYXNlIGFuZCBzaXplIGluIHBpbm5lZAorICAgICMgcmVnaXN0ZXJzLCBzbyBsb2Fk
IHRoZW0gb24gZWFjaCBhY2Nlc3MgaW5zdGVhZC4gRklYTUU6IGltcHJvdmUgdGhpcy4KKyAgICBh
ZGRwcyBvZmZzZXQsIHBvaW50ZXIKKyAgICBiY3MgLnRocm93CisgICAgYWRkcHMgc2l6ZSAtIDEs
IHBvaW50ZXIsIG9mZnNldCAjIFVzZSBvZmZzZXQgYXMgc2NyYXRjaCByZWdpc3RlcgorICAgIGJj
cyAudGhyb3cKKyAgICBicGIgb2Zmc2V0LCBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRCb3VuZHND
aGVja2luZ1NpemVbd2FzbUluc3RhbmNlXSwgLmNvbnRpbnVhdGlvbgorLnRocm93OgorICAgIHRo
cm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNjZXNzKQorLmNvbnRpbnVhdGlvbjoKKyAg
ICBhZGRwIFdhc206Okluc3RhbmNlOjptX2NhY2hlZE1lbW9yeVt3YXNtSW5zdGFuY2VdLCBwb2lu
dGVyCisgICAgYnRwbnogcG9pbnRlciwgKHNpemUgLSAxKSwgLnRocm93CitlbHNlCisgICAgY3Jh
c2goKQorZW5kCitlbmQKKworbWFjcm8gd2FzbUxvYWRPcChuYW1lLCBzdHJ1Y3QsIHNpemUsIGZu
KQorICAgIHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0
eCwgbV9wb2ludGVyLCB0MCkKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAg
ICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KHQwLCB0MSwgc2l6ZSkK
KyAgICAgICAgZm4odDAsIHQzLCB0MikKKyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MywgdDIpCisg
ICAgZW5kKQorZW5kCisKK3dhc21Mb2FkT3AobG9hZDhfdSwgV2FzbUxvYWQ4VSwgMSwgbWFjcm8o
YWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGIgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cK
KyAgICBtb3ZlIDAsIGRzdE1zdworZW5kKQord2FzbUxvYWRPcChsb2FkMTZfdSwgV2FzbUxvYWQx
NlUsIDIsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRoIExzd09mZnNldFth
ZGRyXSwgZHN0THN3CisgICAgbW92ZSAwLCBkc3RNc3cKK2VuZCkKK3dhc21Mb2FkT3AobG9hZDMy
X3UsIFdhc21Mb2FkMzJVLCA0LCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2Fk
aSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAgIG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNt
TG9hZE9wKGxvYWQ2NF91LCBXYXNtTG9hZDY0VSwgOCwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RM
c3cpCisgICAgIyBNaWdodCBiZSB1bmFsaWduZWQsIHNvIGNhbid0IHVzZSBsb2FkMmlhCisgICAg
bG9hZGkgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICBsb2FkaSBNc3dPZmZzZXRbYWRkcl0s
IGRzdE1zdworZW5kKQorCit3YXNtTG9hZE9wKGkzMl9sb2FkOF9zLCBXYXNtSTMyTG9hZDhTLCAx
LCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkYnNpIExzd09mZnNldFthZGRy
XSwgZHN0THN3CisgICAgbW92ZSAwLCBkc3RNc3cKK2VuZCkKK3dhc21Mb2FkT3AoaTMyX2xvYWQx
Nl9zLCBXYXNtSTMyTG9hZDE2UywgMiwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAg
bG9hZGhzaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAgIG1vdmUgMCwgZHN0TXN3CitlbmQp
Cit3YXNtTG9hZE9wKGk2NF9sb2FkOF9zLCBXYXNtSTY0TG9hZDhTLCAxLCBtYWNybyhhZGRyLCBk
c3RNc3csIGRzdExzdykKKyAgICBsb2FkYnNpIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAg
cnNoaWZ0aSBkc3RMc3csIDMxLCBkc3RNc3cKK2VuZCkKK3dhc21Mb2FkT3AoaTY0X2xvYWQxNl9z
LCBXYXNtSTY0TG9hZDE2UywgMiwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9h
ZGhzaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAgIHJzaGlmdGkgZHN0THN3LCAzMSwgZHN0
TXN3CitlbmQpCit3YXNtTG9hZE9wKGk2NF9sb2FkMzJfcywgV2FzbUk2NExvYWQzMlMsIDQsIG1h
Y3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRpIExzd09mZnNldFthZGRyXSwgZHN0
THN3CisgICAgcnNoaWZ0aSBkc3RMc3csIDMxLCBkc3RNc3cKK2VuZCkKKworbWFjcm8gd2FzbVN0
b3JlT3AobmFtZSwgc3RydWN0LCBzaXplLCBmbikKKyAgICB3YXNtT3AobmFtZSwgc3RydWN0LCBt
YWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDApCisgICAgICAgIHdn
ZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRl
ckFkZGluZ09mZnNldCh0MCwgdDEsIHNpemUpCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVl
LCB0MywgdDIpCisgICAgICAgIGZuKHQzLCB0MiwgdDApCisgICAgICAgIGRpc3BhdGNoKGN0eCkK
KyAgICBlbmQpCitlbmQKKword2FzbVN0b3JlT3Aoc3RvcmU4LCBXYXNtU3RvcmU4LCAxLCBtYWNy
byhzcmNNc3csIHNyY0xzdywgYWRkcikKKyAgICBzdG9yZWIgc3JjTHN3LCBMc3dPZmZzZXRbYWRk
cl0KK2VuZCkKK3dhc21TdG9yZU9wKHN0b3JlMTYsIFdhc21TdG9yZTE2LCAyLCBtYWNybyhzcmNN
c3csIHNyY0xzdywgYWRkcikKKyAgICBzdG9yZWggc3JjTHN3LCBMc3dPZmZzZXRbYWRkcl0KK2Vu
ZCkKK3dhc21TdG9yZU9wKHN0b3JlMzIsIFdhc21TdG9yZTMyLCA0LCBtYWNybyhzcmNNc3csIHNy
Y0xzdywgYWRkcikKKyAgICBzdG9yZWkgc3JjTHN3LCBMc3dPZmZzZXRbYWRkcl0KK2VuZCkKK3dh
c21TdG9yZU9wKHN0b3JlNjQsIFdhc21TdG9yZTY0LCA4LCBtYWNybyhzcmNNc3csIHNyY0xzdywg
YWRkcikKKyAgICAjIE1pZ2h0IGJlIHVuYWxpZ25lZCwgc28gY2FuJ3QgdXNlIHN0b3JlMmlhCisg
ICAgc3RvcmVpIHNyY0xzdywgTHN3T2Zmc2V0W2FkZHJdCisgICAgc3RvcmVpIHNyY01zdywgTXN3
T2Zmc2V0W2FkZHJdCitlbmQpCisKK3dhc21PcChyZWZfaXNfbnVsbCwgV2FzbVJlZklzTnVsbCwg
bWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX3JlZiwgdDEsIHQwKSAjIHQwIGlzIHVudXNl
ZAorICAgIGNpZXEgdDEsIE51bGxUYWcsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorZW5kKQor
Cit3YXNtT3AoZ2V0X2dsb2JhbCwgV2FzbUdldEdsb2JhbCwgbWFjcm8oY3R4KQorICAgIGxvYWRw
IFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShj
dHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQorICAgIGxvYWQyaWEgW3QwLCB0MSwgOF0sIHQwLCB0MQor
ICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3Aoc2V0X2dsb2JhbCwgV2Fz
bVNldEdsb2JhbCwgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2Jh
bHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQor
ICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVlLCB0MywgdDIpCisgICAgc3RvcmUyaWEgdDIsIHQzLCBb
dDAsIHQxLCA4XQorICAgIGRpc3BhdGNoKGN0eCkKK2VuZCkKKword2FzbU9wKGdldF9nbG9iYWxf
cG9ydGFibGVfYmluZGluZywgV2FzbUdldEdsb2JhbFBvcnRhYmxlQmluZGluZywgbWFjcm8oY3R4
KQorICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAK
KyAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQorICAgIGxvYWRwIFt0MCwgdDEsIDhd
LCB0MAorICAgIGxvYWQyaWEgW3QwXSwgdDAsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDAp
CitlbmQpCisKK3dhc21PcChzZXRfZ2xvYmFsX3BvcnRhYmxlX2JpbmRpbmcsIFdhc21TZXRHbG9i
YWxQb3J0YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6
bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4
LCB0MSkKKyAgICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwgdDMsIHQyKQorICAgIGxvYWRwIFt0MCwg
dDEsIDhdLCB0MAorICAgIHN0b3JlMmlhIHQyLCB0MywgW3QwXQorICAgIGRpc3BhdGNoKGN0eCkK
K2VuZCkKKworIyBPcGNvZGVzIHRoYXQgZG9uJ3QgaGF2ZSB0aGUgYGIzb3BgIGVudHJ5IGluIHdh
c20uanNvbi4gVGhpcyBzaG91bGQgYmUga2VwdCBpbiBzeW5jCisKK21hY3JvIGNhbGxEaXZSZW0o
Zm4pCitpZiBBUk12NworICAgIHN1YnAgU3RhY2tBbGlnbm1lbnQsIHNwCisgICAgc3RvcmVwIFBD
LCBbc3BdCisgICAgY0NhbGw0KGZuKQorICAgIGxvYWRwIFtzcF0sIFBDCisgICAgYWRkcCBTdGFj
a0FsaWdubWVudCwgc3AKK2Vsc2UKKyAgICBlcnJvcgorZW5kCitlbmQKKworIyBpMzIgYmluYXJ5
IG9wcworCit3YXNtT3AoaTMyX2Rpdl9zLCBXYXNtSTMyRGl2UywgbWFjcm8gKGN0eCkKKyAgICBt
bG9hZGkoY3R4LCBtX2xocywgYTApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIGExKQorCisgICAg
YnRpeiBhMSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGJpbmVxIGExLCAtMSwgLnNhZmUK
KyAgICBiaWVxIGEwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAudGhyb3dJbnRlZ2VyT3ZlcmZsb3cK
KworLnNhZmU6CisgICAgY2FsbERpdlJlbShfc2xvd19wYXRoX3dhc21faTMyX2Rpdl9zKQorICAg
IHJldHVybmkoY3R4LCByMCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNl
cHRpb24oRGl2aXNpb25CeVplcm8pCisKKy50aHJvd0ludGVnZXJPdmVyZmxvdzoKKyAgICB0aHJv
d0V4Y2VwdGlvbihJbnRlZ2VyT3ZlcmZsb3cpCitlbmQpCisKK3dhc21PcChpMzJfZGl2X3UsIFdh
c21JMzJEaXZVLCBtYWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCBhMCkKKyAgICBt
bG9hZGkoY3R4LCBtX3JocywgYTEpCisKKyAgICBidGl6IGExLCAudGhyb3dEaXZpc2lvbkJ5WmVy
bworCisgICAgY2FsbERpdlJlbShfc2xvd19wYXRoX3dhc21faTMyX2Rpdl91KQorICAgIHJldHVy
bmkoY3R4LCByMCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24o
RGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpMzJfcmVtX3MsIFdhc21JMzJSZW1TLCBt
YWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCBhMCkKKyAgICBtbG9hZGkoY3R4LCBt
X3JocywgYTEpCisKKyAgICBidGl6IGExLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgYmlu
ZXEgYTEsIC0xLCAuc2FmZQorICAgIGJpbmVxIGEwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAuc2Fm
ZQorCisgICAgbW92ZSAwLCByMAorICAgIGptcCAucmV0dXJuCisKKy5zYWZlOgorICAgIGNhbGxE
aXZSZW0oX3Nsb3dfcGF0aF93YXNtX2kzMl9yZW1fcykKKworLnJldHVybjoKKyAgICByZXR1cm5p
KGN0eCwgcjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERp
dmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTMyX3JlbV91LCBXYXNtSTMyUmVtVSwgbWFj
cm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgYTApCisgICAgbWxvYWRpKGN0eCwgbV9y
aHMsIGExKQorCisgICAgYnRpeiBhMSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGNhbGxE
aXZSZW0oX3Nsb3dfcGF0aF93YXNtX2kzMl9yZW1fdSkKKyAgICByZXR1cm5pKGN0eCwgcjApCisK
Ky50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJv
KQorZW5kKQorCisjIGk2NCBiaW5hcnkgb3BzCisKK3dhc21PcChpNjRfYWRkLCBXYXNtSTY0QWRk
LCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQy
aShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgYWRkaXMgdDIsIHQwCisgICAgYWRjaSAgdDMsIHQx
CisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfc3ViLCBXYXNt
STY0U3ViLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAg
bWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgc3ViaXMgdDIsIHQwCisgICAgc2JjaSAg
dDMsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfbXVs
LCBXYXNtSTY0TXVsLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDAp
CisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbXVsaSB0MiwgdDEKKyAgICBt
dWxpIHQwLCB0MworICAgIHVtdWxsaSB0MCwgdDIsIHQwLCB0MgorICAgIGFkZGkgdDEsIHQyCisg
ICAgYWRkaSB0MywgdDIKKyAgICByZXR1cm4yaShjdHgsIHQyLCB0MCkKK2VuZCkKKword2FzbU9w
KGk2NF9kaXZfcywgV2FzbUk2NERpdlMsIG1hY3JvIChjdHgpCisgICAgbWxvYWQyaShjdHgsIG1f
bGhzLCBhMSwgYTApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCBhMywgYTIpCisKKyAgICBidGlu
eiBhMywgLm5vblplcm9EaXZpc29yCisgICAgYnRpeiBhMiwgLnRocm93RGl2aXNpb25CeVplcm8K
KworLm5vblplcm9EaXZpc29yOgorICAgIGJpbmVxIGEzLCAtMSwgLnNhZmUKKyAgICBiaW5lcSBh
MiwgLTEsIC5zYWZlCisgICAgYmluZXEgYTEsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC5zYWZlCisg
ICAgYnRpeiBhMCwgLnRocm93SW50ZWdlck92ZXJmbG93CisKKy5zYWZlOgorICAgIGNhbGxEaXZS
ZW0oX3Nsb3dfcGF0aF93YXNtX2k2NF9kaXZfcykKKyAgICByZXR1cm4yaShjdHgsIHIxLCByMCkK
KworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVpl
cm8pCisKKy50aHJvd0ludGVnZXJPdmVyZmxvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihJbnRlZ2Vy
T3ZlcmZsb3cpCitlbmQpCisKK3dhc21PcChpNjRfZGl2X3UsIFdhc21JNjREaXZVLCBtYWNybyAo
Y3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgYTEsIGEwKQorICAgIG1sb2FkMmkoY3R4LCBt
X3JocywgYTMsIGEyKQorCisgICAgYnRpbnogYTMsIC5ub25aZXJvRGl2aXNvcgorICAgIGJ0aXog
YTIsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKy5ub25aZXJvRGl2aXNvcjoKKyAgICBjYWxsRGl2
UmVtKF9zbG93X3BhdGhfd2FzbV9pNjRfZGl2X3UpCisgICAgcmV0dXJuMmkoY3R4LCByMSwgcjAp
CisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnla
ZXJvKQorZW5kKQorCit3YXNtT3AoaTY0X3JlbV9zLCBXYXNtSTY0UmVtUywgbWFjcm8gKGN0eCkK
KyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIGExLCBhMCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMs
IGEzLCBhMikKKworICAgIGJ0aW56IGEzLCAubm9uWmVyb0Rpdmlzb3IKKyAgICBidGl6IGEyLCAu
dGhyb3dEaXZpc2lvbkJ5WmVybworCisubm9uWmVyb0Rpdmlzb3I6CisgICAgYmluZXEgYTMsIC0x
LCAuc2FmZQorICAgIGJpbmVxIGEyLCAtMSwgLnNhZmUKKyAgICBiaW5lcSBhMSwgY29uc3RleHBy
IElOVDMyX01JTiwgLnNhZmUKKyAgICBidGlueiBhMCwgLnNhZmUKKworICAgIG1vdmUgMCwgcjEK
KyAgICBtb3ZlIDAsIHIwCisgICAgam1wIC5yZXR1cm4KKworLnNhZmU6CisgICAgY2FsbERpdlJl
bShfc2xvd19wYXRoX3dhc21faTY0X3JlbV9zKQorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0
eCwgcjEsIHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihE
aXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9yZW1fdSwgV2FzbUk2NFJlbVUsIG1h
Y3JvIChjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCBhMSwgYTApCisgICAgbWxvYWQyaShj
dHgsIG1fcmhzLCBhMywgYTIpCisKKyAgICBidGlueiBhMywgLm5vblplcm9EaXZpc29yCisgICAg
YnRpeiBhMiwgLnRocm93RGl2aXNpb25CeVplcm8KKworLm5vblplcm9EaXZpc29yOgorICAgIGNh
bGxEaXZSZW0oX3Nsb3dfcGF0aF93YXNtX2k2NF9yZW1fdSkKKyAgICByZXR1cm4yaShjdHgsIHIx
LCByMCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNp
b25CeVplcm8pCitlbmQpCisKK3dhc21PcChpNjRfYW5kLCBXYXNtSTY0QW5kLCBtYWNybyhjdHgp
CisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhz
LCB0MywgdDIpCisgICAgYW5kaSB0MiwgdDAKKyAgICBhbmRpIHQzLCB0MQorICAgIHJldHVybjJp
KGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X29yLCBXYXNtSTY0T3IsIG1hY3JvKGN0
eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9y
aHMsIHQzLCB0MikKKyAgICBvcmkgdDIsIHQwCisgICAgb3JpIHQzLCB0MQorICAgIHJldHVybjJp
KGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3hvciwgV2FzbUk2NFhvciwgbWFjcm8o
Y3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBt
X3JocywgdDMsIHQyKQorICAgIHhvcmkgdDIsIHQwCisgICAgeG9yaSB0MywgdDEKKyAgICByZXR1
cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9zaGwsIFdhc21JNjRTaGwsIG1h
Y3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZGkoY3R4
LCBtX3JocywgdDIpCisKKyAgICBhbmRpIDB4M2YsIHQyCisgICAgYnRpeiB0MiwgLnJldHVybgor
ICAgIGJpYiB0MiwgMzIsIC5sZXNzVGhhbjMyCisKKyAgICBzdWJpIDMyLCB0MgorICAgIGxzaGlm
dGkgdDAsIHQyLCB0MQorICAgIG1vdmUgMCwgdDAKKyAgICBqbXAgLnJldHVybgorCisubGVzc1Ro
YW4zMjoKKyAgICBsc2hpZnRpIHQyLCB0MQorICAgIG1vdmUgMzIsIHQzCisgICAgc3ViaSB0Miwg
dDMKKyAgICB1cnNoaWZ0aSB0MCwgdDMsIHQzCisgICAgb3JpIHQzLCB0MQorICAgIGxzaGlmdGkg
dDIsIHQwCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dh
c21PcChpNjRfc2hyX3UsIFdhc21JNjRTaHJVLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgs
IG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQyKQorCisgICAgYW5kaSAw
eDNmLCB0MgorICAgIGJ0aXogdDIsIC5yZXR1cm4KKyAgICBiaWIgdDIsIDMyLCAubGVzc1RoYW4z
MgorCisgICAgc3ViaSAzMiwgdDIKKyAgICB1cnNoaWZ0aSB0MSwgdDIsIHQwCisgICAgbW92ZSAw
LCB0MQorICAgIGptcCAucmV0dXJuCisKKy5sZXNzVGhhbjMyOgorICAgIHVyc2hpZnRpIHQyLCB0
MAorICAgIG1vdmUgMzIsIHQzCisgICAgc3ViaSB0MiwgdDMKKyAgICBsc2hpZnRpIHQxLCB0Mywg
dDMKKyAgICBvcmkgdDMsIHQwCisgICAgdXJzaGlmdGkgdDIsIHQxCisKKy5yZXR1cm46CisgICAg
cmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfc2hyX3MsIFdhc21JNjRT
aHJTLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxv
YWRpKGN0eCwgbV9yaHMsIHQyKQorCisgICAgYW5kaSAweDNmLCB0MgorICAgIGJ0aXogdDIsIC5y
ZXR1cm4KKyAgICBiaWIgdDIsIDMyLCAubGVzc1RoYW4zMgorCisgICAgc3ViaSAzMiwgdDIKKyAg
ICByc2hpZnRpIHQxLCB0MiwgdDAKKyAgICByc2hpZnRpIDMxLCB0MQorICAgIGptcCAucmV0dXJu
CisKKy5sZXNzVGhhbjMyOgorICAgIHVyc2hpZnRpIHQyLCB0MAorICAgIG1vdmUgMzIsIHQzCisg
ICAgc3ViaSB0MiwgdDMKKyAgICBsc2hpZnRpIHQxLCB0MywgdDMKKyAgICBvcmkgdDMsIHQwCisg
ICAgcnNoaWZ0aSB0MiwgdDEKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkK
K2VuZCkKKword2FzbU9wKGk2NF9yb3RyLCBXYXNtSTY0Um90ciwgbWFjcm8oY3R4KQorICAgIG1s
b2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MikKKwor
ICAgIGFuZGkgdDIsIDB4MjAsIHQzCisgICAgYnRpeiB0MywgLm5vU3dhcAorCisgICAgbW92ZSB0
MCwgdDMKKyAgICBtb3ZlIHQxLCB0MAorICAgIG1vdmUgdDMsIHQxCisKKy5ub1N3YXA6CisgICAg
YW5kaSAweDFmLCB0MgorICAgIGJ0aXogdDIsIC5yZXR1cm4KKworICAgIG1vdmUgMzIsIHQ1Cisg
ICAgc3ViaSB0MiwgdDUKKyAgICBsc2hpZnRpIHQwLCB0NSwgdDMKKyAgICBsc2hpZnRpIHQxLCB0
NSwgdDUKKyAgICB1cnNoaWZ0aSB0MiwgdDAKKyAgICB1cnNoaWZ0aSB0MiwgdDEKKyAgICBvcmkg
dDUsIHQwCisgICAgb3JpIHQzLCB0MQorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgdDEs
IHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3JvdGwsIFdhc21JNjRSb3RsLCBtYWNybyhjdHgpCisg
ICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQy
KQorCisgICAgYW5kaSB0MiwgMHgyMCwgdDMKKyAgICBidGl6IHQzLCAubm9Td2FwCisKKyAgICBt
b3ZlIHQwLCB0MworICAgIG1vdmUgdDEsIHQwCisgICAgbW92ZSB0MywgdDEKKworLm5vU3dhcDoK
KyAgICBhbmRpIDB4MWYsIHQyCisgICAgYnRpeiB0MiwgLnJldHVybgorCisgICAgbW92ZSAzMiwg
dDUKKyAgICBzdWJpIHQyLCB0NQorICAgIHVyc2hpZnRpIHQwLCB0NSwgdDMKKyAgICB1cnNoaWZ0
aSB0MSwgdDUsIHQ1CisgICAgbHNoaWZ0aSB0MiwgdDAKKyAgICBsc2hpZnRpIHQyLCB0MQorICAg
IG9yaSB0NSwgdDAKKyAgICBvcmkgdDMsIHQxCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4
LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfZXEsIFdhc21JNjRFcSwgbWFjcm8oY3R4KQor
ICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3Jocywg
dDMsIHQyKQorICAgIG1vdmUgMCwgdDYKKyAgICBiaW5lcSB0MSwgdDMsIC5yZXR1cm4KKyAgICBj
aWVxIHQwLCB0MiwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3
YXNtT3AoaTY0X25lLCBXYXNtSTY0TmUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9s
aHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEs
IHQ2CisgICAgYmluZXEgdDEsIHQzLCAucmV0dXJuCisgICAgY2luZXEgdDAsIHQyLCB0NgorLnJl
dHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRfbHRfcywgV2Fz
bUk2NEx0UywgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAg
IG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYKKyAgICBiaWx0IHQx
LCB0MywgLnJldHVybgorICAgIG1vdmUgMCwgdDYKKyAgICBiaWd0IHQxLCB0MywgLnJldHVybgor
ICAgIGNpYiB0MCwgdDIsIHQ2CisgICAgYW5kaSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5p
KGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRfbGVfcywgV2FzbUk2NExlUywgbWFjcm8oY3R4
KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3Jo
cywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYKKyAgICBiaWx0IHQxLCB0MywgLnJldHVybgorICAg
IG1vdmUgMCwgdDYKKyAgICBiaWd0IHQxLCB0MywgLnJldHVybgorICAgIGNpYmVxIHQwLCB0Miwg
dDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkK
Kword2FzbU9wKGk2NF9sdF91LCBXYXNtSTY0THRVLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShj
dHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAg
bW92ZSAxLCB0NgorICAgIGJpYiB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAg
YmlhIHQxLCB0MywgLnJldHVybgorICAgIGNpYiB0MCwgdDIsIHQ2CisgICAgYW5kaSAxLCB0Ngor
LnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRfbGVfdSwg
V2FzbUk2NExlVSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQor
ICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYKKyAgICBiaWIg
dDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpYSB0MSwgdDMsIC5yZXR1cm4K
KyAgICBjaWJlcSB0MCwgdDIsIHQ2CisgICAgYW5kaSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1
cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRfZ3RfcywgV2FzbUk2NEd0UywgbWFjcm8o
Y3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBt
X3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYKKyAgICBiaWd0IHQxLCB0MywgLnJldHVybgor
ICAgIG1vdmUgMCwgdDYKKyAgICBiaWx0IHQxLCB0MywgLnJldHVybgorICAgIGNpYSB0MCwgdDIs
IHQ2CisgICAgYW5kaSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQp
CisKK3dhc21PcChpNjRfZ2VfcywgV2FzbUk2NEdlUywgbWFjcm8oY3R4KQorICAgIG1sb2FkMmko
Y3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAg
IG1vdmUgMSwgdDYKKyAgICBiaWd0IHQxLCB0MywgLnJldHVybgorICAgIG1vdmUgMCwgdDYKKyAg
ICBiaWx0IHQxLCB0MywgLnJldHVybgorICAgIGNpYWVxIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEs
IHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9n
dF91LCBXYXNtSTY0R3RVLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwg
dDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAg
IGJpYSB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAgYmliIHQxLCB0MywgLnJl
dHVybgorICAgIGNpYSB0MCwgdDIsIHQ2CisgICAgYW5kaSAxLCB0NgorLnJldHVybjoKKyAgICBy
ZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRfZ2VfdSwgV2FzbUk2NEdlVSwgbWFj
cm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4
LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMCwgdDYKKyAgICBiaWIgdDEsIHQzLCAucmV0dXJu
CisgICAgbW92ZSAxLCB0NgorICAgIGJpYSB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWFlcSB0MCwg
dDIsIHQ2CisgICAgYW5kaSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitl
bmQpCisKKyMgaTY0IHVuYXJ5IG9wcworCit3YXNtT3AoaTY0X2N0eiwgV2FzbUk2NEN0eiwgbWFj
cm8gKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9vcGVyYW5kLCB0MSwgdDApCisgICAgYnRpeiB0
MCwgLnRvcAorCisgICAgdHpjbnRpIHQwLCB0MAorICAgIGptcCAucmV0dXJuCisKKy50b3A6Cisg
ICAgdHpjbnRpIHQxLCB0MAorICAgIGFkZGkgMzIsIHQwCisKKy5yZXR1cm46CisgICAgcmV0dXJu
MmkoY3R4LCAwLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9jbHosIFdhc21JNjRDbHosIG1hY3Jv
KGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9vcGVyYW5kLCB0MSwgdDApCisgICAgYnRpeiB0MSwg
LmJvdHRvbQorCisgICAgbHpjbnRpIHQxLCB0MAorICAgIGptcCAucmV0dXJuCisKKy5ib3R0b206
CisgICAgbHpjbnRpIHQwLCB0MAorICAgIGFkZGkgMzIsIHQwCisKKy5yZXR1cm46CisgICAgcmV0
dXJuMmkoY3R4LCAwLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9wb3BjbnQsIFdhc21JNjRQb3Bj
bnQsIG1hY3JvIChjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fb3BlcmFuZCwgYTMsIGEyKQorICAg
IHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBtb3ZlIFBDLCBhMAorICAgIGNDYWxsMihfc2xv
d19wYXRoX3dhc21fcG9wY291bnRsbCkKKyAgICByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkKKyAg
ICByZXR1cm4yaShjdHgsIDAsIHIxKQorZW5kKQorCit3YXNtT3AoaTY0X2VxeiwgV2FzbUk2NEVx
eiwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIHQxLCB0MCkKKyAgICBt
b3ZlIDAsIHQyCisgICAgYnRpbnogdDEsIC5yZXR1cm4KKyAgICBjaWVxIHQwLCAwLCB0MgorLnJl
dHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKKyMgZjY0IGJpbmFyeSBvcHMKKwor
d2FzbU9wKGY2NF9jb3B5c2lnbiwgV2FzbUY2NENvcHlzaWduLCBtYWNybyhjdHgpCisgICAgbWxv
YWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIp
ICMgdDIgdW51c2VkCisKKyAgICBhbmRpIDB4N2ZmZmZmZmYsIHQxCisgICAgYW5kaSAweDgwMDAw
MDAwLCB0MworICAgIG9yaSB0MywgdDEKKworICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5k
KQorCisjIFR5cGUgY29udmVyc2lvbiBvcHMKKword2FzbU9wKGk2NF9leHRlbmRfc19pMzIsIFdh
c21JNjRFeHRlbmRTSTMyLCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0
MCkKKyAgICByc2hpZnRpIHQwLCAzMSwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2Vu
ZCkKKword2FzbU9wKGk2NF9leHRlbmRfdV9pMzIsIFdhc21JNjRFeHRlbmRVSTMyLCBtYWNybyhj
dHgpCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICByZXR1cm4yaShjdHgsIDAs
IHQwKQorZW5kKQorCit3YXNtT3AoZjY0X3JlaW50ZXJwcmV0X2k2NCwgV2FzbUY2NFJlaW50ZXJw
cmV0STY0LCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fb3BlcmFuZCwgdDEsIHQwKQor
ICAgIGZpaTJkIHQwLCB0MSwgZnQwCisgICAgcmV0dXJuZChjdHgsIGZ0MCkKK2VuZCkKKword2Fz
bU9wKGk2NF9yZWludGVycHJldF9mNjQsIFdhc21JNjRSZWludGVycHJldEY2NCwgbWFjcm8oY3R4
KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorICAgIGZkMmlpIGZ0MCwgdDAsIHQx
CisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc19m
NjQsIFdhc21JMzJUcnVuY1NGNjQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVy
YW5kLCBmdDApCisKKyAgICBtb3ZlaWkgMHhjMWUwMDAwMDAwMjAwMDAwLCB0MSwgdDAgIyBJTlQz
Ml9NSU4gLSAxLjAKKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQx
LCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZWlpIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDEs
IHQwICMgLUlOVDMyX01JTgorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRndGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAorICAg
IHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRp
b24oT3V0T2ZCb3VuZHNUcnVuYykKK2VuZCkKKword2FzbU9wKGkzMl90cnVuY191X2Y2NCwgV2Fz
bUkzMlRydW5jVUY2NCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0
MCkKKworICAgIG1vdmVpaSAweGJmZjAwMDAwMDAwMDAwMDAsIHQxLCB0MCAjIC0xLjAKKyAgICBm
aWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVu
YworCisgICAgbW92ZWlpIDB4NDFmMDAwMDAwMDAwMDAwMCwgdDEsIHQwICMgSU5UMzJfTUlOICog
LTIuMAorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRP
ZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0ZWQyaSBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgs
IHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5k
c1RydW5jKQorZW5kKQorCitzbG93V2FzbU9wKGk2NF90cnVuY19zX2YzMikKK3Nsb3dXYXNtT3Ao
aTY0X3RydW5jX3VfZjMyKQorc2xvd1dhc21PcChpNjRfdHJ1bmNfc19mNjQpCitzbG93V2FzbU9w
KGk2NF90cnVuY191X2Y2NCkKKword2FzbU9wKGkzMl90cnVuY19zYXRfZjY0X3MsIFdhc21JMzJU
cnVuY1NhdEY2NFMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDAp
CisKKyAgICBtb3ZlaWkgMHhjMWUwMDAwMDAwMjAwMDAwLCB0MSwgdDAgIyBJTlQzMl9NSU4gLSAx
LjAKKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZC
b3VuZHNUcnVuY1NhdE1pbk9yTmFOCisKKyAgICBtb3ZlaWkgMHg0MWUwMDAwMDAwMDAwMDAwLCB0
MSwgdDAgIyAtSU5UMzJfTUlOCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGd0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZDJpcyBmdDAs
IHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFO
OgorICAgIGJkZXEgZnQwLCBmdDAsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCisgICAgbW92ZSAw
LCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6Cisg
ICAgbW92ZSAoY29uc3RleHByIElOVDMyX01BWCksIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQor
Cisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UMzJfTUlO
KSwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc2F0
X2Y2NF91LCBXYXNtSTMyVHJ1bmNTYXRGNjRVLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgs
IG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZWlpIDB4YmZmMDAwMDAwMDAwMDAwMCwgdDEsIHQw
ICMgLTEuMAorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5v
dXRPZkJvdW5kc1RydW5jU2F0TWluCisKKyAgICBtb3ZlaWkgMHg0MWYwMDAwMDAwMDAwMDAwLCB0
MSwgdDAgIyBJTlQzMl9NSU4gKiAtMi4wCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGd0
ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZDJp
IGZ0MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWlu
OgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1Ry
dW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UMzJfTUFYKSwgdDAKKyAgICByZXR1
cm5pKGN0eCwgdDApCitlbmQpCisKK3Nsb3dXYXNtT3AoaTY0X3RydW5jX3NhdF9mMzJfcykKK3Ns
b3dXYXNtT3AoaTY0X3RydW5jX3NhdF9mMzJfdSkKK3Nsb3dXYXNtT3AoaTY0X3RydW5jX3NhdF9m
NjRfcykKK3Nsb3dXYXNtT3AoaTY0X3RydW5jX3NhdF9mNjRfdSkKKworIyBFeHRlbmQgb3BzCisK
K3dhc21PcChpNjRfZXh0ZW5kOF9zLCBXYXNtSTY0RXh0ZW5kOFMsIG1hY3JvKGN0eCkKKyAgICBt
bG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHN4YjJpIHQwLCB0MAorICAgIHJzaGlmdGkg
dDAsIDMxLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0
X2V4dGVuZDE2X3MsIFdhc21JNjRFeHRlbmQxNlMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGkoY3R4
LCBtX29wZXJhbmQsIHQwKQorICAgIHN4aDJpIHQwLCB0MAorICAgIHJzaGlmdGkgdDAsIDMxLCB0
MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X2V4dGVuZDMy
X3MsIFdhc21JNjRFeHRlbmQxNlMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJh
bmQsIHQwKQorICAgIHJzaGlmdGkgdDAsIDMxLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQw
KQorZW5kKQorCisjIEF0b21pY3MKKworbWFjcm8gd2FzbUF0b21pY0JpbmFyeVJNV09wcyhsb3dl
ckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5iLCBmbmgsIGZuaSwgZm4yaSkKKyAgICB3
YXNtT3AoaTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1Jt
dzgldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9w
b2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1s
b2FkaShjdHgsIG1fdmFsdWUsIHQwKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRl
ckFkZGluZ09mZnNldCh0MywgdDUsIDEpCisgICAgICAgIGZuYih0MCwgW3QzXSwgdDIsIHQ1LCB0
NikKKyAgICAgICAgYW5kaSAweGZmLCB0NiAjIEZJWE1FOiBaZXJvRXh0ZW5kOFRvNjQKKyAgICAg
ICAgYXNzZXJ0KG1hY3JvKG9rKSBiaWJlcSB0NiwgMHhmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0
dXJuMmkoY3R4LCAwLCB0NikKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MTYl
bG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MTYldXBwZXJDYXNlT3Bjb2RlJVUs
IG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAg
d2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkaShjdHgsIG1fdmFsdWUsIHQw
KQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGln
bm1lbnRDaGVjayh0MywgdDUsIDIpCisgICAgICAgIGZuaCh0MCwgW3QzXSwgdDIsIHQ1LCB0NikK
KyAgICAgICAgYW5kaSAweGZmZmYsIHQ2ICMgRklYTUU6IFplcm9FeHRlbmQxNlRvNjQKKyAgICAg
ICAgYXNzZXJ0KG1hY3JvKG9rKSBiaWJlcSB0NiwgMHhmZmZmLCAub2sgZW5kKQorICAgICAgICBy
ZXR1cm4yaShjdHgsIDAsIHQ2KQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcz
MiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXczMiV1cHBlckNhc2VPcGNvZGUl
VSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAg
ICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV92YWx1ZSwg
dDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFs
aWdubWVudENoZWNrKHQzLCB0NSwgNCkKKyAgICAgICAgZm5pKHQwLCBbdDNdLCB0MiwgdDUsIHQ2
KQorICAgICAgICByZXR1cm4yaShjdHgsIDAsIHQ2KQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0
X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0b21pY1JtdyV1cHBlckNhc2VP
cGNvZGUlLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisg
ICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZDJpKGN0eCwgbV92
YWx1ZSwgdDEsIHQwKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09m
ZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0MywgdDUsIDgpCisgICAgICAgIHB1c2ggdDQgIyBUaGlz
IGlzIHRoZSBQQiwgc28gbmVlZCB0byBiZSBzYXZlZCBhbmQgcmVzdG9yZWQKKyAgICAgICAgZm4y
aSh0MSwgdDAsIFt0M10sIHQ0LCB0MiwgdDUsIHQ3LCB0NikKKyAgICAgICAgcG9wIHQ0CisgICAg
ICAgIHJldHVybjJpKGN0eCwgdDcsIHQ2KQorICAgIGVuZCkKK2VuZAorCittYWNybyB3YXNtQXRv
bWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNv
ZGUsIGZuaSwgZm4yaSkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9wY29k
ZSwgdXBwZXJDYXNlT3Bjb2RlLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVH
UFIsIHQ2R1BSKQorICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgICAgICAubG9vcDoKKyAg
ICAgICAgICAgICAgICBsb2FkbGlua2IgbWVtLCB0NkdQUgorICAgICAgICAgICAgICAgIGZuaSh0
MEdQUiwgdDZHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29uZGIgdDVHUFIsIHQy
R1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAgICAg
ICAgICAgICBmZW5jZQorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDZHUFIpCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIC5s
b29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5raCBtZW0sIHQ2R1BSCisgICAgICAgICAgICAg
ICAgZm5pKHQwR1BSLCB0NkdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgc3RvcmVjb25kaCB0
NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAor
ICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIs
IG1lbSwgdDJHUFIsIHQ1R1BSLCB0NkdQUikKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAg
ICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9hZGxpbmtpIG1lbSwgdDZHUFIKKyAgICAg
ICAgICAgICAgICBmbmkodDBHUFIsIHQ2R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9y
ZWNvbmRpIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAs
IC5sb29wCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNy
byh0MUdQUiwgdDBHUFIsIG1lbSwgdDRHUFIsIHQyR1BSLCB0NUdQUiwgdDdHUFIsIHQ2R1BSKQor
ICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAg
ICBsb2FkbGluazJpIG1lbSwgdDZHUFIsIHQ3R1BSCisgICAgICAgICAgICAgICAgZm4yaSh0MUdQ
UiwgdDBHUFIsIHQ3R1BSLCB0NkdQUiwgdDRHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIHN0
b3JlY29uZDJpIHQ1R1BSLCB0MkdQUiwgdDRHUFIsIG1lbQorICAgICAgICAgICAgICAgIGJpbmVx
IHQ1R1BSLCAwLCAubG9vcAorICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgIGVuZCkKK2Vu
ZAorCitpZiBBUk12NworICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYWRk
LCBBZGQsCisgICAgICAgIG1hY3JvKHNyYzAsIHNyYzEsIGRzdCkKKyAgICAgICAgICAgIGFkZGkg
c3JjMCwgc3JjMSwgZHN0CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8oc3JjME1zdywgc3Jj
MExzdywgc3JjMU1zdywgc3JjMUxzdywgZHN0TXN3LCBkc3RMc3cpCisgICAgICAgICAgICBhZGRp
cyBzcmMwTHN3LCBzcmMxTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIGFkY2kgIHNyYzBNc3csIHNy
YzFNc3csIGRzdE1zdworICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dp
dGhXZWFrQ0FTKF9zdWIsIFN1YiwKKyAgICAgICAgbWFjcm8oc3JjMCwgc3JjMSwgZHN0KQorICAg
ICAgICAgICAgc3ViaSBzcmMxLCBzcmMwLCBkc3QKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNy
byhzcmMwTXN3LCBzcmMwTHN3LCBzcmMxTXN3LCBzcmMxTHN3LCBkc3RNc3csIGRzdExzdykKKyAg
ICAgICAgICAgIHN1YmlzIHNyYzFMc3csIHNyYzBMc3csIGRzdExzdworICAgICAgICAgICAgc2Jj
aSAgc3JjMU1zdywgc3JjME1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWlj
QmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3hjaGcsIFhjaGcsCisgICAgICAgIG1hY3JvKHNyYzAs
IHNyYzEsIGRzdCkKKyAgICAgICAgICAgIG1vdmUgc3JjMCwgZHN0CisgICAgICAgIGVuZCwKKyAg
ICAgICAgbWFjcm8oc3JjME1zdywgc3JjMExzdywgc3JjMU1zdywgc3JjMUxzdywgZHN0TXN3LCBk
c3RMc3cpCisgICAgICAgICAgICBtb3ZlIHNyYzBMc3csIGRzdExzdworICAgICAgICAgICAgbW92
ZSBzcmMwTXN3LCBkc3RNc3cKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdP
cHNXaXRoV2Vha0NBUyhfYW5kLCBBbmQsCisgICAgICAgIG1hY3JvKHNyYzAsIHNyYzEsIGRzdCkK
KyAgICAgICAgICAgIGFuZGkgc3JjMCwgc3JjMSwgZHN0CisgICAgICAgIGVuZCwKKyAgICAgICAg
bWFjcm8oc3JjME1zdywgc3JjMExzdywgc3JjMU1zdywgc3JjMUxzdywgZHN0TXN3LCBkc3RMc3cp
CisgICAgICAgICAgICBhbmRpIHNyYzBMc3csIHNyYzFMc3csIGRzdExzdworICAgICAgICAgICAg
YW5kaSBzcmMwTXN3LCBzcmMxTXN3LCBkc3RNc3cKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9t
aWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfb3IsIE9yLAorICAgICAgICBtYWNybyhzcmMwLCBz
cmMxLCBkc3QpCisgICAgICAgICAgICBvcmkgc3JjMCwgc3JjMSwgZHN0CisgICAgICAgIGVuZCwK
KyAgICAgICAgbWFjcm8oc3JjME1zdywgc3JjMExzdywgc3JjMU1zdywgc3JjMUxzdywgZHN0TXN3
LCBkc3RMc3cpCisgICAgICAgICAgICBvcmkgc3JjMExzdywgc3JjMUxzdywgZHN0THN3CisgICAg
ICAgICAgICBvcmkgc3JjME1zdywgc3JjMU1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3
YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3hvciwgWG9yLAorICAgICAgICBtYWNy
byhzcmMwLCBzcmMxLCBkc3QpCisgICAgICAgICAgICB4b3JpIHNyYzAsIHNyYzEsIGRzdAorICAg
ICAgICBlbmQsCisgICAgICAgIG1hY3JvKHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFM
c3csIGRzdE1zdywgZHN0THN3KQorICAgICAgICAgICAgeG9yaSBzcmMwTHN3LCBzcmMxTHN3LCBk
c3RMc3cKKyAgICAgICAgICAgIHhvcmkgc3JjME1zdywgc3JjMU1zdywgZHN0TXN3CisgICAgICAg
IGVuZCkKK2VuZAorCittYWNybyB3YXNtQXRvbWljQ29tcGFyZUV4Y2hhbmdlT3BzKGxvd2VyQ2Fz
ZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIsIGZuaCwgZm5pLCBmbjJpKQorICAgIHdhc21P
cChpNjRfYXRvbWljX3JtdzglbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13OCV1
cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50
ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWQy
aShjdHgsIG1fZXhwZWN0ZWQsIHQxLCB0MCkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUs
IHQ3LCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQo
dDMsIHQ1LCAxKQorICAgICAgICBmbmIodDEsIHQwLCB0NywgdDIsIFt0M10sIHQ2LCB0NSkKKyAg
ICAgICAgYW5kaSAweGZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kOFRvNjQKKyAgICAgICAgYXNz
ZXJ0KG1hY3JvKG9rKSBiaWJlcSB0MCwgMHhmZiwgLm9rIGVuZCkKKyAgICAgICAgYXNzZXJ0KG1h
Y3JvKG9rKSBiaWVxIHQxLCAwLCAub2sgZW5kKQorICAgICAgICByZXR1cm4yaShjdHgsIHQxLCB0
MCkKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MTYlbG93ZXJDYXNlT3Bjb2Rl
JV91LCBXYXNtSTY0QXRvbWljUm13MTYldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAg
ICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29m
ZnNldCwgdDUpCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX2V4cGVjdGVkLCB0MSwgdDApCisgICAg
ICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVlLCB0NywgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFBy
ZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKHQzLCB0NSwgMikKKyAg
ICAgICAgZm5oKHQxLCB0MCwgdDcsIHQyLCBbdDNdLCB0NiwgdDUpCisgICAgICAgIGFuZGkgMHhm
ZmZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kMTZUbzY0CisgICAgICAgIGFzc2VydChtYWNybyhv
aykgYmliZXEgdDAsIDB4ZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBi
aWVxIHQxLCAwLCAub2sgZW5kKQorICAgICAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKKyAgICBl
bmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MzIlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNt
STY0QXRvbWljUm13MzIldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxv
YWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUp
CisgICAgICAgIG1sb2FkMmkoY3R4LCBtX2V4cGVjdGVkLCB0MSwgdDApCisgICAgICAgIG1sb2Fk
MmkoY3R4LCBtX3ZhbHVlLCB0NywgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2lu
dGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKHQzLCB0NSwgOCkKKyAgICAgICAgZm5p
KHQxLCB0MCwgdDcsIHQyLCBbdDNdLCB0NiwgdDUpCisgICAgICAgIGFzc2VydChtYWNybyhvaykg
YmllcSB0MSwgMCwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCisgICAg
ZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdyVsb3dlckNhc2VPcGNvZGUlLCBXYXNtSTY0
QXRvbWljUm13JXVwcGVyQ2FzZU9wY29kZSUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0
eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAg
ICAgIG1sb2FkMmkoY3R4LCBtX2V4cGVjdGVkLCB0MSwgdDApCisgICAgICAgIG1sb2FkMmkoY3R4
LCBtX3ZhbHVlLCB0NywgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRk
aW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKHQzLCB0NSwgOCkKKyAgICAgICAgcHVzaCB0NCAj
IFRoaXMgaXMgdGhlIFBCLCBzbyBuZWVkIHRvIGJlIHNhdmVkIGFuZCByZXN0b3JlZAorICAgICAg
ICBmbjJpKHQxLCB0MCwgdDcsIHQyLCBbdDNdLCB0NCwgdDYsIHQ1KQorICAgICAgICBwb3AgdDQK
KyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCisgICAgZW5kKQorZW5kCisKK2lmIEFSTXY3
CisvLyBleHA6ICJleHBlY3RlZCIsIHZhbDogInZhbHVlIiwgcmVzOiAicmVzdWx0Igord2FzbUF0
b21pY0NvbXBhcmVFeGNoYW5nZU9wcyhfY21weGNoZywgQ21weGNoZywKKyAgICBtYWNybyhleHBN
c3csIGV4cExzdywgdmFsTXN3LCB2YWxMc3csIG1lbSwgc2NyYXRjaCwgcmVzTHN3KQorICAgICAg
ICAgICAgZmVuY2UKKyAgICAgICAgLmxvb3A6CisgICAgICAgICAgICBsb2FkbGlua2IgbWVtLCBy
ZXNMc3cKKyAgICAgICAgICAgIGJpbmVxIGV4cExzdywgcmVzTHN3LCAuZmFpbAorICAgICAgICAg
ICAgYmluZXEgZXhwTXN3LCAwLCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kYiBzY3JhdGNo
LCB2YWxMc3csIG1lbQorICAgICAgICAgICAgYmllcSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAg
ICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgc3RvcmVjb25kYiBz
Y3JhdGNoLCByZXNMc3csIG1lbQorICAgICAgICAgICAgYmllcSBzY3JhdGNoLCAwLCAuZG9uZQor
ICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAgICAgICAgZmVuY2UK
KyAgICAgICAgICAgIG1vdmUgcmVzTHN3LCBleHBMc3cKKyAgICAgICAgICAgIG1vdmUgMCwgZXhw
TXN3CisgICAgZW5kLAorICAgIG1hY3JvKGV4cE1zdywgZXhwTHN3LCB2YWxNc3csIHZhbExzdywg
bWVtLCBzY3JhdGNoLCByZXNMc3cpCisgICAgICAgICAgICBmZW5jZQorICAgICAgICAubG9vcDoK
KyAgICAgICAgICAgIGxvYWRsaW5raCBtZW0sIHJlc0xzdworICAgICAgICAgICAgYmluZXEgZXhw
THN3LCByZXNMc3csIC5mYWlsCisgICAgICAgICAgICBiaW5lcSBleHBNc3csIDAsIC5mYWlsCisg
ICAgICAgICAgICBzdG9yZWNvbmRoIHNjcmF0Y2gsIHZhbExzdywgbWVtCisgICAgICAgICAgICBi
aWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZh
aWw6CisgICAgICAgICAgICBzdG9yZWNvbmRoIHNjcmF0Y2gsIHJlc0xzdywgbWVtCisgICAgICAg
ICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAg
ICAgLmRvbmU6CisgICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAgbW92ZSByZXNMc3csIGV4
cExzdworICAgICAgICAgICAgbW92ZSAwLCBleHBNc3cKKyAgICBlbmQsCisgICAgbWFjcm8oZXhw
TXN3LCBleHBMc3csIHZhbE1zdywgdmFsTHN3LCBtZW0sIHNjcmF0Y2gsIHJlc0xzdykKKyAgICAg
ICAgICAgIGZlbmNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmtpIG1lbSwg
cmVzTHN3CisgICAgICAgICAgICBiaW5lcSBleHBMc3csIHJlc0xzdywgLmZhaWwKKyAgICAgICAg
ICAgIGJpbmVxIGV4cE1zdywgMCwgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZGkgc2NyYXRj
aCwgdmFsTHN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAg
ICAgICAgIGptcCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZGkg
c2NyYXRjaCwgcmVzTHN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUK
KyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIGZlbmNl
CisgICAgICAgICAgICBtb3ZlIHJlc0xzdywgZXhwTHN3CisgICAgICAgICAgICBtb3ZlIDAsIGV4
cE1zdworICAgIGVuZCwKKyAgICBtYWNybyhleHBNc3csIGV4cExzdywgdmFsTXN3LCB2YWxMc3cs
IG1lbSwgc2NyYXRjaCwgcmVzTXN3LCByZXNMc3cpCisgICAgICAgICAgICBmZW5jZQorICAgICAg
ICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5rMmkgbWVtLCByZXNMc3csIHJlc01zdworICAg
ICAgICAgICAgYmluZXEgZXhwTHN3LCByZXNMc3csIC5mYWlsCisgICAgICAgICAgICBiaW5lcSBl
eHBNc3csIHJlc01zdywgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZDJpIHNjcmF0Y2gsIHZh
bExzdywgdmFsTXN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAg
ICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29u
ZDJpIHNjcmF0Y2gsIHJlc0xzdywgcmVzTXN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRj
aCwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAg
ICAgICAgIGZlbmNlCisgICAgICAgICAgICBtb3ZlIHJlc0xzdywgZXhwTHN3CisgICAgICAgICAg
ICBtb3ZlIHJlc01zdywgZXhwTXN3CisgICAgZW5kKQorZW5kCisKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseTY0LmFzbSBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9XZWJBc3NlbWJseTY0LmFzbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAuLjQ2ZTllYTQ4ODUyNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseTY0LmFzbQpAQCAtMCwwICsxLDEyNTkgQEAK
KyMgQ29weXJpZ2h0IChDKSAyMDExLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIyBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgT3Bjb2RlcyB0aGF0
IHNob3VsZCBldmVudHVhbGx5IGJlIHNoYXJlZCB3aXRoIEpTIGxsaW50CisKK3dhc21PcChtb3Ys
IFdhc21Nb3YsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX3NyYywgdDApCisgICAgcmV0
dXJucShjdHgsIHQwKQorZW5kKQorCisjIFdhc20gc3BlY2lmaWMgYnl0ZWNvZGVzCisKK21hY3Jv
IGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKGN0eCwgcG9pbnRlciwgb2Zmc2V0LCBzaXplKQor
ICAgIGxlYXAgc2l6ZSAtIDFbcG9pbnRlciwgb2Zmc2V0XSwgdDUKKyAgICBicGIgdDUsIGJvdW5k
c0NoZWNraW5nU2l6ZSwgLmNvbnRpbnVhdGlvbgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91
bmRzTWVtb3J5QWNjZXNzKQorLmNvbnRpbnVhdGlvbjoKKyAgICBhZGRwIG1lbW9yeUJhc2UsIHBv
aW50ZXIKK2VuZAorCittYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNl
dChjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKKyAgICBsZWFwIHNpemUgLSAxW3BvaW50ZXIs
IG9mZnNldF0sIHQ1CisgICAgYnBiIHQ1LCBib3VuZHNDaGVja2luZ1NpemUsIC5jb250aW51YXRp
b24KKy50aHJvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykK
Ky5jb250aW51YXRpb246CisgICAgYWRkcCBtZW1vcnlCYXNlLCBwb2ludGVyCisgICAgYWRkcCBv
ZmZzZXQsIHBvaW50ZXIKK2VuZAorCittYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFk
ZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkK
KyAgICBsZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNldF0sIHQ1CisgICAgYnBiIHQ1LCBib3Vu
ZHNDaGVja2luZ1NpemUsIC5jb250aW51YXRpb24KKy50aHJvdzoKKyAgICB0aHJvd0V4Y2VwdGlv
bihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKKy5jb250aW51YXRpb246CisgICAgYWRkcCBtZW1v
cnlCYXNlLCBwb2ludGVyCisgICAgYWRkcCBvZmZzZXQsIHBvaW50ZXIKKyAgICBidHBueiBwb2lu
dGVyLCAoc2l6ZSAtIDEpLCAudGhyb3cKK2VuZAorCisKK21hY3JvIHdhc21Mb2FkT3AobmFtZSwg
c3RydWN0LCBzaXplLCBmbikKKyAgICB3YXNtT3AobmFtZSwgc3RydWN0LCBtYWNybyhjdHgpCisg
ICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDApCisgICAgICAgIHdnZXR1KGN0eCwgbV9v
ZmZzZXQsIHQxKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihjdHgsIHQwLCB0
MSwgc2l6ZSkKKyAgICAgICAgZm4oW3QwLCB0MV0sIHQyKQorICAgICAgICByZXR1cm5xKGN0eCwg
dDIpCisgICAgZW5kKQorZW5kCisKK3dhc21Mb2FkT3AobG9hZDhfdSwgV2FzbUxvYWQ4VSwgMSwg
bWFjcm8obWVtLCBkc3QpIGxvYWRiIG1lbSwgZHN0IGVuZCkKK3dhc21Mb2FkT3AobG9hZDE2X3Us
IFdhc21Mb2FkMTZVLCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGggbWVtLCBkc3QgZW5kKQord2Fz
bUxvYWRPcChsb2FkMzJfdSwgV2FzbUxvYWQzMlUsIDQsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaSBt
ZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGxvYWQ2NF91LCBXYXNtTG9hZDY0VSwgOCwgbWFjcm8o
bWVtLCBkc3QpIGxvYWRxIG1lbSwgZHN0IGVuZCkKKword2FzbUxvYWRPcChpMzJfbG9hZDhfcywg
V2FzbUkzMkxvYWQ4UywgMSwgbWFjcm8obWVtLCBkc3QpIGxvYWRic2kgbWVtLCBkc3QgZW5kKQor
d2FzbUxvYWRPcChpNjRfbG9hZDhfcywgV2FzbUk2NExvYWQ4UywgMSwgbWFjcm8obWVtLCBkc3Qp
IGxvYWRic3EgbWVtLCBkc3QgZW5kKQord2FzbUxvYWRPcChpMzJfbG9hZDE2X3MsIFdhc21JMzJM
b2FkMTZTLCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGhzaSBtZW0sIGRzdCBlbmQpCit3YXNtTG9h
ZE9wKGk2NF9sb2FkMTZfcywgV2FzbUk2NExvYWQxNlMsIDIsIG1hY3JvKG1lbSwgZHN0KSBsb2Fk
aHNxIG1lbSwgZHN0IGVuZCkKK3dhc21Mb2FkT3AoaTY0X2xvYWQzMl9zLCBXYXNtSTY0TG9hZDMy
UywgNCwgbWFjcm8obWVtLCBkc3QpIGxvYWRpcyBtZW0sIGRzdCBlbmQpCisKK21hY3JvIHdhc21T
dG9yZU9wKG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4pCisgICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwg
bWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQorICAgICAgICB3
Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50
ZXIoY3R4LCB0MCwgdDEsIHNpemUpCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQor
ICAgICAgICBmbih0MiwgW3QwLCB0MV0pCisgICAgICAgIGRpc3BhdGNoKGN0eCkKKyAgICBlbmQp
CitlbmQKKword2FzbVN0b3JlT3Aoc3RvcmU4LCBXYXNtU3RvcmU4LCAxLCBtYWNybyh2YWx1ZSwg
bWVtKSBzdG9yZWIgdmFsdWUsIG1lbSBlbmQpCit3YXNtU3RvcmVPcChzdG9yZTE2LCBXYXNtU3Rv
cmUxNiwgMiwgbWFjcm8odmFsdWUsIG1lbSkgc3RvcmVoIHZhbHVlLCBtZW0gZW5kKQord2FzbVN0
b3JlT3Aoc3RvcmUzMiwgV2FzbVN0b3JlMzIsIDQsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlaSB2
YWx1ZSwgbWVtIGVuZCkKK3dhc21TdG9yZU9wKHN0b3JlNjQsIFdhc21TdG9yZTY0LCA4LCBtYWNy
byh2YWx1ZSwgbWVtKSBzdG9yZXEgdmFsdWUsIG1lbSBlbmQpCisKK3dhc21PcChyZWZfaXNfbnVs
bCwgV2FzbVJlZklzTnVsbCwgbWFjcm8oY3R4KQorICAgIG1sb2FkcChjdHgsIG1fcmVmLCB0MCkK
KyAgICBjcWVxIHQwLCBWYWx1ZU51bGwsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorZW5kKQor
Cit3YXNtT3AoZ2V0X2dsb2JhbCwgV2FzbUdldEdsb2JhbCwgbWFjcm8oY3R4KQorICAgIGxvYWRw
IFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShj
dHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQorICAgIGxvYWRxIFt0MCwgdDEsIDhdLCB0MAorICAgIHJl
dHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKHNldF9nbG9iYWwsIFdhc21TZXRHbG9iYWws
IG1hY3JvKGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0
YW5jZV0sIHQwCisgICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBtbG9hZHEo
Y3R4LCBtX3ZhbHVlLCB0MikKKyAgICBzdG9yZXEgdDIsIFt0MCwgdDEsIDhdCisgICAgZGlzcGF0
Y2goY3R4KQorZW5kKQorCit3YXNtT3AoZ2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNt
R2V0R2xvYmFsUG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5z
dGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9i
YWxJbmRleCwgdDEpCisgICAgbG9hZHEgW3QwLCB0MSwgOF0sIHQwCisgICAgbG9hZHEgW3QwXSwg
dDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChzZXRfZ2xvYmFsX3BvcnRh
YmxlX2JpbmRpbmcsIFdhc21TZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkKKyAg
ICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAg
d2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0
MikKKyAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKKyAgICBzdG9yZXEgdDIsIFt0MF0KKyAgICBk
aXNwYXRjaChjdHgpCitlbmQpCisKKyMgT3Bjb2RlcyB0aGF0IGRvbid0IGhhdmUgdGhlIGBiM29w
YCBlbnRyeSBpbiB3YXNtLmpzb24uIFRoaXMgc2hvdWxkIGJlIGtlcHQgaW4gc3luYworCisjIGkz
MiBiaW5hcnkgb3BzCisKK3dhc21PcChpMzJfZGl2X3MsIFdhc21JMzJEaXZTLCBtYWNybyAoY3R4
KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEp
CisKKyAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgYmluZXEgdDEsIC0x
LCAuc2FmZQorICAgIGJpZXEgdDAsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC50aHJvd0ludGVnZXJP
dmVyZmxvdworCisuc2FmZToKKyAgICBpZiBYODZfNjQKKyAgICAgICAgIyBGSVhNRTogQWRkIGEg
d2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4CisgICAgICAg
ICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgorICAgICAg
ICBjZHFpCisgICAgICAgIGlkaXZpIHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJ
U0NWNjQKKyAgICAgICAgZGl2aXMgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAg
IGVuZAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAg
dGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCisKKy50aHJvd0ludGVnZXJPdmVyZmxvdzoK
KyAgICB0aHJvd0V4Y2VwdGlvbihJbnRlZ2VyT3ZlcmZsb3cpCitlbmQpCisKK3dhc21PcChpMzJf
ZGl2X3UsIFdhc21JMzJEaXZVLCBtYWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0
MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisKKyAgICBidGl6IHQxLCAudGhyb3dEaXZp
c2lvbkJ5WmVybworCisgICAgaWYgWDg2XzY0CisgICAgICAgIHhvcmkgdDIsIHQyCisgICAgICAg
IHVkaXZpIHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKKyAgICAgICAg
ZGl2aSB0MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCisgICAgcmV0dXJu
aShjdHgsIHQwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihE
aXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGkzMl9yZW1fcywgV2FzbUkzMlJlbVMsIG1h
Y3JvIChjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1f
cmhzLCB0MSkKKworICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBiaW5l
cSB0MSwgLTEsIC5zYWZlCisgICAgYmluZXEgdDAsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC5zYWZl
CisKKyAgICBtb3ZlIDAsIHQyCisgICAgam1wIC5yZXR1cm4KKworLnNhZmU6CisgICAgaWYgWDg2
XzY0CisgICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBp
cyByYXggYW5kIHQyIGlzIHJkeAorICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDM2OTIKKyAgICAgICAgY2RxaQorICAgICAgICBpZGl2aSB0MQorICAg
IGVsc2lmIEFSTTY0IG9yIEFSTTY0RQorICAgICAgICBkaXZpcyB0MSwgdDAsIHQyCisgICAgICAg
IG11bGkgdDEsIHQyCisgICAgICAgIHN1YmkgdDAsIHQyLCB0MgorICAgIGVsc2lmIFJJU0NWNjQK
KyAgICAgICAgcmVtaXMgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAor
CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0MikKKworLnRocm93RGl2aXNpb25CeVplcm86
CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpMzJf
cmVtX3UsIFdhc21JMzJSZW1VLCBtYWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0
MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisKKyAgICBidGl6IHQxLCAudGhyb3dEaXZp
c2lvbkJ5WmVybworCisgICAgaWYgWDg2XzY0CisgICAgICAgIHhvcmkgdDIsIHQyCisgICAgICAg
IHVkaXZpIHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCisgICAgICAgIGRpdmkgdDEsIHQw
LCB0MgorICAgICAgICBtdWxpIHQxLCB0MgorICAgICAgICBzdWJpIHQwLCB0MiwgdDIKKyAgICBl
bHNpZiBSSVNDVjY0CisgICAgICAgIHJlbWkgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJv
cgorICAgIGVuZAorICAgIHJldHVybmkoY3R4LCB0MikKKworLnRocm93RGl2aXNpb25CeVplcm86
CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKKyMgaTY0IGJpbmFy
eSBvcHMKKword2FzbU9wKGk2NF9hZGQsIFdhc21JNjRBZGQsIG1hY3JvKGN0eCkKKyAgICBtbG9h
ZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGFkZHEg
dDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X3N1YiwgV2Fz
bUk2NFN1YiwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9h
ZHEoY3R4LCBtX3JocywgdDEpCisgICAgc3VicSB0MSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDAp
CitlbmQpCisKK3dhc21PcChpNjRfbXVsLCBXYXNtSTY0TXVsLCBtYWNybyhjdHgpCisgICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBtdWxx
IHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9kaXZfcywg
V2FzbUk2NERpdlMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAg
IG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnla
ZXJvCisKKyAgICBicW5lcSB0MSwgLTEsIC5zYWZlCisgICAgYnFlcSB0MCwgY29uc3RleHByIElO
VDY0X01JTiwgLnRocm93SW50ZWdlck92ZXJmbG93CisKKy5zYWZlOgorICAgIGlmIFg4Nl82NAor
ICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4
IGFuZCB0MiBpcyByZHgKKyAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAzNjkyCisgICAgICAgIGNxb3EKKyAgICAgICAgaWRpdnEgdDEKKyAgICBlbHNp
ZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAorICAgICAgICBkaXZxcyB0MSwgdDAKKyAgICBl
bHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCisgICAgcmV0dXJucShjdHgsIHQwKQorCisudGhy
b3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKKwor
LnRocm93SW50ZWdlck92ZXJmbG93OgorICAgIHRocm93RXhjZXB0aW9uKEludGVnZXJPdmVyZmxv
dykKK2VuZCkKKword2FzbU9wKGk2NF9kaXZfdSwgV2FzbUk2NERpdlUsIG1hY3JvIChjdHgpCisg
ICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKwor
ICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBpZiBYODZfNjQKKyAgICAg
ICAgeG9ycSB0MiwgdDIKKyAgICAgICAgdWRpdnEgdDEKKyAgICBlbHNpZiBBUk02NCBvciBBUk02
NEUgb3IgUklTQ1Y2NAorICAgICAgICBkaXZxIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJy
b3IKKyAgICBlbmQKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJv
OgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTY0
X3JlbV9zLCBXYXNtSTY0UmVtUywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywg
dDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRxeiB0MSwgLnRocm93RGl2
aXNpb25CeVplcm8KKworICAgIGJxbmVxIHQxLCAtMSwgLnNhZmUKKyAgICBicW5lcSB0MCwgY29u
c3RleHByIElOVDY0X01JTiwgLnNhZmUKKworICAgIG1vdmUgMCwgdDIKKyAgICBqbXAgLnJldHVy
bgorCisuc2FmZToKKyAgICBpZiBYODZfNjQKKyAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRv
IHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4CisgICAgICAgICMgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgorICAgICAgICBjcW9x
CisgICAgICAgIGlkaXZxIHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCisgICAgICAgIGRp
dnFzIHQxLCB0MCwgdDIKKyAgICAgICAgbXVscSB0MSwgdDIKKyAgICAgICAgc3VicSB0MCwgdDIs
IHQyCisgICAgZWxzaWYgUklTQ1Y2NAorICAgICAgICByZW1xcyB0MSwgdDAKKyAgICBlbHNlCisg
ICAgICAgIGVycm9yCisgICAgZW5kCisKKy5yZXR1cm46CisgICAgcmV0dXJucShjdHgsIHQyKSAj
IHJkeCBoYXMgdGhlIHJlbWFpbmRlcgorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJv
d0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9yZW1fdSwgV2Fz
bUk2NFJlbVUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1s
b2FkcShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJv
CisKKyAgICBpZiBYODZfNjQKKyAgICAgICAgeG9ycSB0MiwgdDIKKyAgICAgICAgdWRpdnEgdDEK
KyAgICBlbHNpZiBBUk02NCBvciBBUk02NEUKKyAgICAgICAgZGl2cSB0MSwgdDAsIHQyCisgICAg
ICAgIG11bHEgdDEsIHQyCisgICAgICAgIHN1YnEgdDAsIHQyLCB0MgorICAgIGVsc2lmIFJJU0NW
NjQKKyAgICAgICAgcmVtcSB0MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5k
CisgICAgcmV0dXJucShjdHgsIHQyKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJv
d0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9hbmQsIFdhc21J
NjRBbmQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRx
KGN0eCwgbV9yaHMsIHQxKQorICAgIGFuZHEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQor
ZW5kKQorCit3YXNtT3AoaTY0X29yLCBXYXNtSTY0T3IsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEo
Y3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIG9ycSB0MCwg
dDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfeG9yLCBXYXNtSTY0
WG9yLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShj
dHgsIG1fcmhzLCB0MSkKKyAgICB4b3JxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2Vu
ZCkKKword2FzbU9wKGk2NF9zaGwsIFdhc21JNjRTaGwsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEo
Y3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorICAgIGxzaGlmdHEg
dDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3Nocl91LCBX
YXNtSTY0U2hyVSwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBt
bG9hZGkoY3R4LCBtX3JocywgdDEpCisgICAgdXJzaGlmdHEgdDEsIHQwCisgICAgcmV0dXJucShj
dHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3Nocl9zLCBXYXNtSTY0U2hyUywgbWFjcm8oY3R4
KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEp
CisgICAgcnNoaWZ0cSB0MSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21P
cChpNjRfcm90ciwgV2FzbUk2NFJvdHIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xo
cywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorICAgIHJyb3RhdGVxIHQxLCB0MAor
ICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9yb3RsLCBXYXNtSTY0Um90
bCwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4
LCBtX3JocywgdDEpCisgICAgbHJvdGF0ZXEgdDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQor
ZW5kKQorCit3YXNtT3AoaTY0X2VxLCBXYXNtSTY0RXEsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEo
Y3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxZXEgdDAs
IHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dh
c21PcChpNjRfbmUsIFdhc21JNjROZSwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhz
LCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FuZXEgdDAsIHQxLCB0Mgor
ICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRf
bHRfcywgV2FzbUk2NEx0UywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkK
KyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FsdCB0MCwgdDEsIHQyCisgICAgYW5k
aSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9sZV9zLCBX
YXNtSTY0TGVTLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1s
b2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWx0ZXEgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwg
dDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfbHRfdSwgV2FzbUk2
NEx0VSwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEo
Y3R4LCBtX3JocywgdDEpCisgICAgY3FiIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAg
cmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2xlX3UsIFdhc21JNjRMZVUsIG1h
Y3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9y
aHMsIHQxKQorICAgIGNxYmVxIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJu
aShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2d0X3MsIFdhc21JNjRHdFMsIG1hY3JvKGN0
eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQx
KQorICAgIGNxZ3QgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwg
dDIpCitlbmQpCisKK3dhc21PcChpNjRfZ2VfcywgV2FzbUk2NEdlUywgbWFjcm8oY3R4KQorICAg
IG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAg
Y3FndGVxIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQor
ZW5kKQorCit3YXNtT3AoaTY0X2d0X3UsIFdhc21JNjRHdFUsIG1hY3JvKGN0eCkKKyAgICBtbG9h
ZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxYSB0
MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKwor
d2FzbU9wKGk2NF9nZV91LCBXYXNtSTY0R2VVLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwg
bV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWFlcSB0MCwgdDEs
IHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKworIyBpNjQg
dW5hcnkgb3BzCisKK3dhc21PcChpNjRfY3R6LCBXYXNtSTY0Q3R6LCBtYWNybyAoY3R4KQorICAg
IG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgdHpjbnRxIHQwLCB0MAorICAgIHJldHVy
bnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9jbHosIFdhc21JNjRDbHosIG1hY3JvKGN0
eCkKKyAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIGx6Y250cSB0MCwgdDEKKyAg
ICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfcG9wY250LCBXYXNtSTY0UG9w
Y250LCBtYWNybyAoY3R4KQorICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgYTEpCisgICAgcHJl
cGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIG1vdmUgUEMsIGEwCisgICAgY0NhbGwyKF9zbG93X3Bh
dGhfd2FzbV9wb3Bjb3VudGxsKQorICAgIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQorICAgIHJl
dHVybnEoY3R4LCByMSkKK2VuZCkKKword2FzbU9wKGk2NF9lcXosIFdhc21JNjRFcXosIG1hY3Jv
KGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIGNxZXEgdDAsIDAsIHQw
CisgICAgcmV0dXJuaShjdHgsIHQwKQorZW5kKQorCisjIGY2NCBiaW5hcnkgb3BzCisKK3dhc21P
cChmNjRfY29weXNpZ24sIFdhc21GNjRDb3B5c2lnbiwgbWFjcm8oY3R4KQorICAgIG1sb2FkZChj
dHgsIG1fbGhzLCBmdDApCisgICAgbWxvYWRkKGN0eCwgbV9yaHMsIGZ0MSkKKworICAgIGZkMnEg
ZnQxLCB0MQorICAgIG1vdmUgMHg4MDAwMDAwMDAwMDAwMDAwLCB0MgorICAgIGFuZHEgdDIsIHQx
CisKKyAgICBmZDJxIGZ0MCwgdDAKKyAgICBtb3ZlIDB4N2ZmZmZmZmZmZmZmZmZmZiwgdDIKKyAg
ICBhbmRxIHQyLCB0MAorCisgICAgb3JxIHQxLCB0MAorICAgIGZxMmQgdDAsIGZ0MAorICAgIHJl
dHVybmQoY3R4LCBmdDApCitlbmQpCisKKyMgVHlwZSBjb252ZXJzaW9uIG9wcworCit3YXNtT3Ao
aTY0X2V4dGVuZF9zX2kzMiwgV2FzbUk2NEV4dGVuZFNJMzIsIG1hY3JvKGN0eCkKKyAgICBtbG9h
ZGkoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHN4aTJxIHQwLCB0MQorICAgIHJldHVybnEoY3R4
LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9leHRlbmRfdV9pMzIsIFdhc21JNjRFeHRlbmRVSTMy
LCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICB6eGkycSB0
MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChmNjRfcmVpbnRlcnBy
ZXRfaTY0LCBXYXNtRjY0UmVpbnRlcnByZXRJNjQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4
LCBtX29wZXJhbmQsIHQwKQorICAgIGZxMmQgdDAsIGZ0MAorICAgIHJldHVybmQoY3R4LCBmdDAp
CitlbmQpCisKK3dhc21PcChpNjRfcmVpbnRlcnByZXRfZjY0LCBXYXNtSTY0UmVpbnRlcnByZXRG
NjQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKyAgICBmZDJx
IGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNf
c19mNjQsIFdhc21JMzJUcnVuY1NGNjQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9v
cGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDAgIyBJTlQzMl9N
SU4gLSAxLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9m
Qm91bmRzVHJ1bmMKKworICAgIG1vdmUgMHg0MWUwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQzMl9N
SU4KKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmMKKworICAgIHRydW5jYXRlZDJpcyBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQor
Cisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5j
KQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3VfZjY0LCBXYXNtSTMyVHJ1bmNVRjY0LCBtYWNy
byAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGJm
ZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkbHRlcXVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZSAweDQxZjAwMDAwMDAwMDAw
MDAsIHQwICMgSU5UMzJfTUlOICogLTIuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAor
ICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNl
cHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKK2VuZCkKKword2FzbU9wKGk2NF90cnVuY19zX2YzMiwg
V2FzbUk2NFRydW5jU0YzMiwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQs
IGZ0MCkKKworICAgIG1vdmUgMHhkZjAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4KKyAgICBmaTJmIHQw
LCBmdDEKKyAgICBiZmx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3Zl
IDB4NWYwMDAwMDAsIHQwICMgLUlOVDY0X01JTgorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmZ3Rl
cXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVmMnFzIGZ0MCwg
dDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93
RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfdV9m
MzIsIFdhc21JNjRUcnVuY1VGMzIsIG1hY3JvIChjdHgpCisgICAgbWxvYWRmKGN0eCwgbV9vcGVy
YW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YmY4MDAwMDAsIHQwICMgLTEuMAorICAgIGZpMmYgdDAs
IGZ0MQorICAgIGJmbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92
ZSAweDVmODAwMDAwLCB0MCAjIElOVDY0X01JTiAqIC0yLjAKKyAgICBmaTJmIHQwLCBmdDEKKyAg
ICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZjJx
IGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAg
IHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpNjRfdHJ1
bmNfc19mNjQsIFdhc21JNjRUcnVuY1NGNjQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwg
bV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YzNlMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2
NF9NSU4KKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5k
c1RydW5jCisKKyAgICBtb3ZlIDB4NDNlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCisg
ICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5j
CisKKyAgICB0cnVuY2F0ZWQycXMgZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91
dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKK2Vu
ZCkKKword2FzbU9wKGk2NF90cnVuY191X2Y2NCwgV2FzbUk2NFRydW5jVUY2NCwgbWFjcm8gKGN0
eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZmYwMDAw
MDAwMDAwMDAwLCB0MCAjIC0xLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAs
IGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmUgMHg0M2YwMDAwMDAwMDAwMDAwLCB0
MCAjIElOVDY0X01JTiAqIC0yLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAs
IGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZDJxIGZ0MCwgdDAKKyAgICBy
ZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9u
KE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF9zLCBX
YXNtSTMyVHJ1bmNTYXRGNjRTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFu
ZCwgZnQwKQorCisgICAgbW92ZSAweGMxZTAwMDAwMDAyMDAwMDAsIHQwICMgSU5UMzJfTUlOIC0g
MS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5k
c1RydW5jU2F0TWluT3JOYU4KKworICAgIG1vdmUgMHg0MWUwMDAwMDAwMDAwMDAwLCB0MCAjIC1J
TlQzMl9NSU4KKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9m
Qm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZDJpcyBmdDAsIHQwCisgICAgcmV0dXJu
aShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgorICAgIGJkZXEgZnQw
LCBmdDAsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCisgICAgbW92ZSAwLCB0MAorICAgIHJldHVy
bmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3Rl
eHByIElOVDMyX01BWCksIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNU
cnVuY1NhdE1pbjoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UMzJfTUlOKSwgdDAKKyAgICByZXR1
cm5pKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF91LCBXYXNtSTMy
VHJ1bmNTYXRGNjRVLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQw
KQorCisgICAgbW92ZSAweGJmZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAorICAgIGZxMmQgdDAs
IGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorCisg
ICAgbW92ZSAweDQxZjAwMDAwMDAwMDAwMDAsIHQwICMgSU5UMzJfTUlOICogLTIuMAorICAgIGZx
MmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1h
eAorCisgICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91
dE9mQm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybmkoY3R4LCB0
MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIFVJTlQz
Ml9NQVgpLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF90cnVu
Y19zYXRfZjMyX3MsIFdhc21JNjRUcnVuY1NhdEYzMlMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRm
KGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4ZGYwMDAwMDAsIHQwICMgSU5UNjRf
TUlOCisgICAgZmkyZiB0MCwgZnQxCisgICAgYmZsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNU
cnVuY1NhdE1pbk9yTmFOCisKKyAgICBtb3ZlIDB4NWYwMDAwMDAsIHQwICMgLUlOVDY0X01JTgor
ICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1heAorCisgICAgdHJ1bmNhdGVmMnFzIGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDAp
CisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU46CisgICAgYmZlcSBmdDAsIGZ0MCwgLm91
dE9mQm91bmRzVHJ1bmNTYXRNaW4KKyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQw
KQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRf
TUFYKSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWlu
OgorICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9NSU4pLCB0MAorICAgIHJldHVybnEoY3R4LCB0
MCkKK2VuZCkKKword2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3UsIFdhc21JNjRUcnVuY1NhdEYz
MlUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBt
b3ZlIDB4YmY4MDAwMDAsIHQwICMgLTEuMAorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmbHRlcXVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorCisgICAgbW92ZSAweDVmODAwMDAw
LCB0MCAjIElOVDY0X01JTiAqIC0yLjAKKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmd0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZjJxIGZ0MCwg
dDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAg
IG1vdmUgMCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0
TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UNjRfTUFYKSwgdDAKKyAgICByZXR1cm5xKGN0
eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTY0VHJ1bmNT
YXRGNjRTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisg
ICAgbW92ZSAweGMzZTAwMDAwMDAwMDAwMDAsIHQwICMgSU5UNjRfTUlOCisgICAgZnEyZCB0MCwg
ZnQxCisgICAgYmRsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOCisK
KyAgICBtb3ZlIDB4NDNlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCisgICAgZnEyZCB0
MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisK
KyAgICB0cnVuY2F0ZWQycXMgZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9m
Qm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKKyAgICBiZGVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNU
cnVuY1NhdE1pbgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRP
ZkJvdW5kc1RydW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9NQVgpLCB0MAor
ICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92
ZSAoY29uc3RleHByIElOVDY0X01JTiksIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQor
Cit3YXNtT3AoaTY0X3RydW5jX3NhdF9mNjRfdSwgV2FzbUk2NFRydW5jU2F0RjY0VSwgbWFjcm8g
KGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZmYw
MDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKworICAgIG1vdmUgMHg0M2YwMDAwMDAw
MDAwMDAwLCB0MCAjIElOVDY0X01JTiAqIC0yLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0
ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZDJx
IGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWlu
OgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1Ry
dW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UNjRfTUFYKSwgdDAKKyAgICByZXR1
cm5xKGN0eCwgdDApCitlbmQpCisKKyMgRXh0ZW5kIG9wcworCit3YXNtT3AoaTY0X2V4dGVuZDhf
cywgV2FzbUk2NEV4dGVuZDhTLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5k
LCB0MCkKKyAgICBzeGIycSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dh
c21PcChpNjRfZXh0ZW5kMTZfcywgV2FzbUk2NEV4dGVuZDE2UywgbWFjcm8oY3R4KQorICAgIG1s
b2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgc3hoMnEgdDAsIHQxCisgICAgcmV0dXJucShj
dHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X2V4dGVuZDMyX3MsIFdhc21JNjRFeHRlbmQxNlMs
IG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHN4aTJxIHQw
LCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKworIyBBdG9taWNzCisKK21hY3JvIHdh
c21BdG9taWNCaW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZu
YiwgZm5oLCBmbmksIGZucSkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9w
Y29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzgldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkK
KyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBt
X29mZnNldCwgdDEpCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQwKQorICAgICAgICBl
bWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgsIHQzLCB0MSwgMSkKKyAg
ICAgICAgZm5iKHQwLCBbdDNdLCB0MiwgdDUsIHQxKQorICAgICAgICBhbmRxIDB4ZmYsIHQwICMg
RklYTUU6IFplcm9FeHRlbmQ4VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQw
LCAweGZmLCAub2sgZW5kKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorICAg
IHdhc21PcChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21p
Y1JtdzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgs
IG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAg
ICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBv
aW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDIpCisgICAg
ICAgIGZuaCh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKKyAgICAgICAgYW5kcSAweGZmZmYsIHQwICMg
RklYTUU6IFplcm9FeHRlbmQxNlRvNjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0
MCwgMHhmZmZmLCAub2sgZW5kKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQor
ICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0
b21pY1JtdzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShj
dHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAg
ICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFy
ZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDQpCisg
ICAgICAgIGZuaSh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9r
KSBicWJlcSB0MCwgMHhmZmZmZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQw
KQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwg
V2FzbUk2NEF0b21pY1JtdyV1cHBlckNhc2VPcGNvZGUlLCBtYWNybyhjdHgpCisgICAgICAgIG1s
b2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQx
KQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5k
UHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEs
IDgpCisgICAgICAgIGZucSh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKKyAgICAgICAgcmV0dXJucShj
dHgsIHQwKQorICAgIGVuZCkKK2VuZAorCittYWNybyB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0
aFdlYWtDQVMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuaSwgZm5xKQorICAg
IHdhc21BdG9taWNCaW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUs
CisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAg
ICAgICBpZiBYODZfNjQKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgorICAgICAg
ICAgICAgICAgIGxvYWRiIG1lbSwgdDBHUFIKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAg
ICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCisgICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQ
UikKKyAgICAgICAgICAgICAgICBiYXRvbWljd2Vha2Nhc2IgdDBHUFIsIHQyR1BSLCBtZW0sIC5s
b29wCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAg
ICBsb2FkbGlua2FjcWIgbWVtLCB0MUdQUgorICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFH
UFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29uZHJlbGIgdDVHUFIsIHQyR1BSLCBt
ZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAg
ICBtb3ZlIHQxR1BSLCB0MEdQUgorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZCwKKyAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIGlm
IFg4Nl82NAorICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCisgICAgICAgICAgICAg
ICAgbG9hZGggbWVtLCB0MEdQUgorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAg
bW92ZSB0MEdQUiwgdDJHUFIKKyAgICAgICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQorICAg
ICAgICAgICAgICAgIGJhdG9taWN3ZWFrY2FzaCB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRs
aW5rYWNxaCBtZW0sIHQxR1BSCisgICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJH
UFIpCisgICAgICAgICAgICAgICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDJHUFIsIG1lbQorICAg
ICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAorICAgICAgICAgICAgICAgIG1vdmUg
dDFHUFIsIHQwR1BSCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNy
byh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgaWYgWDg2XzY0
CisgICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKKyAgICAgICAgICAgICAgICBsb2Fk
aSBtZW0sIHQwR1BSCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBtb3ZlIHQw
R1BSLCB0MkdQUgorICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIpCisgICAgICAgICAg
ICAgICAgYmF0b21pY3dlYWtjYXNpIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAorICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9hZGxpbmthY3Fp
IG1lbSwgdDFHUFIKKyAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BSLCB0MkdQUikKKyAg
ICAgICAgICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAg
ICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwg
dDBHUFIKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBpZiBYODZfNjQKKyAgICAg
ICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgorICAgICAgICAgICAgICAgIGxvYWRxIG1lbSwg
dDBHUFIKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQy
R1BSCisgICAgICAgICAgICAgICAgZm5xKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBi
YXRvbWljd2Vha2Nhc3EgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2FkbGlua2FjcXEgbWVtLCB0
MUdQUgorICAgICAgICAgICAgICAgIGZucSh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAg
ICAgICAgIHN0b3JlY29uZHJlbHEgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgICAgICBi
aW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgor
ICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZCkKK2VuZAorCitpZiBYODZfNjQKKyAgICB3YXNt
QXRvbWljQmluYXJ5Uk1XT3BzKF9hZGQsIEFkZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwg
dDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGIgdDBHUFIsIG1lbSBlbmQsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRo
IHQwR1BSLCBtZW0gZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIs
IHQxR1BSKSBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBH
UFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZHEgdDBHUFIsIG1lbSBl
bmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfc3ViLCBTdWIsCisgICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJiIHQwR1BSLCBt
ZW0gZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBh
dG9taWN4Y2hnc3ViaCB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwg
dDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1YmkgdDBHUFIsIG1lbSBlbmQsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJx
IHQwR1BSLCBtZW0gZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hjaGcsIFhjaGcs
CisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hj
aGdiIHQwR1BSLCBtZW0gZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVH
UFIsIHQxR1BSKSBhdG9taWN4Y2hnaCB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBH
UFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2kgdDBHUFIsIG1lbSBlbmQs
CisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hj
aGdxIHQwR1BSLCBtZW0gZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NB
UyhfYW5kLCBBbmQsCisgICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgIGFu
ZGkgdDVHUFIsIHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BS
KQorICAgICAgICAgICAgYW5kcSB0NUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21B
dG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfb3IsIE9yLAorICAgICAgICBtYWNybyh0NUdQ
UiwgdDJHUFIpCisgICAgICAgICAgICBvcmkgdDVHUFIsIHQyR1BSCisgICAgICAgIGVuZCwKKyAg
ICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQorICAgICAgICAgICAgb3JxIHQ1R1BSLCB0MkdQUgor
ICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94b3Is
IFhvciwKKyAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQorICAgICAgICAgICAgeG9yaSB0NUdQ
UiwgdDJHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCisgICAg
ICAgICAgICB4b3JxIHQ1R1BSLCB0MkdQUgorICAgICAgICBlbmQpCitlbHNpZiBBUk02NEUKKyAg
ICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9hZGQsIEFkZCwKKyAgICAgICAgbWFjcm8odDBHUFIs
IG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGIgdDBHUFIsIG1lbSwgdDBH
UFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBh
dG9taWN4Y2hnYWRkaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0sIHQw
R1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikg
YXRvbWljeGNoZ2FkZHEgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQorICAgIHdhc21BdG9taWNCaW5h
cnlSTVdPcHMoX3N1YiwgU3ViLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVH
UFIsIHQxR1BSKQorICAgICAgICAgICAgbmVncSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNo
Z2FkZGIgdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgbmVncSB0MEdQUgorICAg
ICAgICAgICAgYXRvbWljeGNoZ2FkZGggdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kLAor
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAg
ICAgbmVncSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1lbSwgdDBH
UFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIs
IHQxR1BSKQorICAgICAgICAgICAgbmVncSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2Fk
ZHEgdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlS
TVdPcHMoX2FuZCwgQW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIs
IHQxR1BSKQorICAgICAgICAgICAgbm90cSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2Ns
ZWFyYiB0MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBub3RxIHQwR1BSCisgICAg
ICAgICAgICBhdG9taWN4Y2hnY2xlYXJoIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCwK
KyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAg
ICAgIG5vdHEgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcmkgdDBHUFIsIG1lbSwg
dDBHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVH
UFIsIHQxR1BSKQorICAgICAgICAgICAgbm90cSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNo
Z2NsZWFycSB0MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0Jp
bmFyeVJNV09wcyhfb3IsIE9yLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVH
UFIsIHQxR1BSKSBhdG9taWN4Y2hnb3JiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAg
bWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29yaCB0MEdQ
UiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQ
UiwgdDFHUFIpIGF0b21pY3hjaGdvcmkgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBt
YWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnb3JxIHQwR1BS
LCBtZW0sIHQwR1BSIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94b3IsIFhvciwK
KyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNo
Z3hvcmIgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9yaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQs
CisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hj
aGd4b3JpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwg
dDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcnEgdDBHUFIsIG1lbSwgdDBHUFIgZW5k
KQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hjaGcsIFhjaGcsCisgICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdiIHQwR1BSLCBtZW0s
IHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikgYXRvbWljeGNoZ2ggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnaSB0MEdQUiwgbWVtLCB0MEdQ
UiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0
b21pY3hjaGdxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKK2Vsc2lmIEFSTTY0IG9yIFJJU0NWNjQK
KyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FkZCwgQWRkLAorICAgICAg
ICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgYWRkaSB0MEdQUiwgdDFH
UFIsIHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQ
UikKKyAgICAgICAgICAgIGFkZHEgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQpCisg
ICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9zdWIsIFN1YiwKKyAgICAgICAg
bWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIHN1YmkgdDFHUFIsIHQwR1BS
LCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIp
CisgICAgICAgICAgICBzdWJxIHQxR1BSLCB0MEdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAg
IHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeGNoZywgWGNoZywKKyAgICAgICAg
bWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BS
CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAg
ICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmlu
YXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FuZCwgQW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFH
UFIsIHQyR1BSKQorICAgICAgICAgICAgYW5kaSB0MEdQUiwgdDFHUFIsIHQyR1BSCisgICAgICAg
IGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIGFu
ZHEgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFy
eVJNV09wc1dpdGhXZWFrQ0FTKF9vciwgT3IsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwg
dDJHUFIpCisgICAgICAgICAgICBvcmkgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQs
CisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBvcnEgdDBH
UFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09w
c1dpdGhXZWFrQ0FTKF94b3IsIFhvciwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQ
UikKKyAgICAgICAgICAgIHhvcmkgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQsCisg
ICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICB4b3JxIHQwR1BS
LCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorZW5kCisKK21hY3JvIHdhc21BdG9taWNDb21w
YXJlRXhjaGFuZ2VPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5o
LCBmbmksIGZucSkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVf
dSwgV2FzbUk2NEF0b21pY1JtdzgldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAg
ICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNl
dCwgdDEpCisgICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQorICAgICAgICBtbG9h
ZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJB
ZGRpbmdPZmZzZXQoY3R4LCB0MywgdDEsIDEpCisgICAgICAgIGZuYih0MCwgdDIsIFt0M10sIHQ1
LCB0MSkKKyAgICAgICAgYW5kcSAweGZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kOFRvNjQKKyAg
ICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZiwgLm9rIGVuZCkKKyAgICAgICAg
cmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcxNiVs
b3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXcxNiV1cHBlckNhc2VPcGNvZGUlVSwg
bWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3
Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBlY3RlZCwg
dDApCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQorICAgICAgICBlbWl0Q2hlY2tB
bmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0
MSwgMikKKyAgICAgICAgZm5oKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQorICAgICAgICBhbmRxIDB4
ZmZmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDE2VG82NAorICAgICAgICBhc3NlcnQobWFjcm8o
b2spIGJxYmVxIHQwLCAweGZmZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkK
KyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MzIlbG93ZXJDYXNlT3Bjb2RlJV91
LCBXYXNtSTY0QXRvbWljUm13MzIldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAg
ICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNl
dCwgdDEpCisgICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQorICAgICAgICBtbG9h
ZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJB
ZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDQpCisgICAgICAgIGZu
aSh0MCwgdDIsIFt0M10sIHQ1LCB0MSkKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0
MCwgMHhmZmZmZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVu
ZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0
b21pY1JtdyV1cHBlckNhc2VPcGNvZGUlLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgs
IG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAg
ICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1
ZSwgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0
aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA4KQorICAgICAgICBmbnEodDAsIHQyLCBbdDNd
LCB0NSwgdDEpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBlbmQpCitlbmQKKworaWYg
WDg2XzY0IG9yIEFSTTY0RSBvciBBUk02NCBvciBSSVNDVjY0CisjIHQwR1BSID0+IGV4cGVjdGVk
LCB0MkdQUiA9PiB2YWx1ZSwgbWVtID0+IG1lbW9yeSByZWZlcmVuY2UKK3dhc21BdG9taWNDb21w
YXJlRXhjaGFuZ2VPcHMoX2NtcHhjaGcsIENtcHhjaGcsCisgICAgbWFjcm8odDBHUFIsIHQyR1BS
LCBtZW0sIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQorICAgICAg
ICAgICAgYnFhIHQwR1BSICwgMHhmZiwgLmZhaWwKKyAgICAgICAgICAgIGF0b21pY3dlYWtjYXNi
IHQwR1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICBqbXAgLmRvbmUKKyAgICAgICAgLmZhaWw6
CisgICAgICAgICAgICBhdG9taWNsb2FkYiBtZW0sIHQwR1BSCisgICAgICAgIC5kb25lOgorICAg
ICAgICBlbHNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmthY3FiIG1lbSwg
dDFHUFIKKyAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKKyAgICAgICAgICAg
IHN0b3JlY29uZHJlbGIgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIs
IDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAg
ICAgICBzdG9yZWNvbmRyZWxiIHQ1R1BSLCB0MUdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1
R1BSLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAg
ICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgZW5kCisgICAgZW5kLAorICAgIG1h
Y3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCisgICAgICAgIGlmIFg4Nl82NCBv
ciBBUk02NEUKKyAgICAgICAgICAgIGJxYSB0MEdQUiwgMHhmZmZmLCAuZmFpbAorICAgICAgICAg
ICAgYXRvbWljd2Vha2Nhc2ggdDBHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGptcCAuZG9u
ZQorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIGF0b21pY2xvYWRoIG1lbSwgdDBHUFIKKyAg
ICAgICAgLmRvbmU6CisgICAgICAgIGVsc2UKKyAgICAgICAgLmxvb3A6CisgICAgICAgICAgICBs
b2FkbGlua2FjcWggbWVtLCB0MUdQUgorICAgICAgICAgICAgYnFuZXEgdDBHUFIsIHQxR1BSLCAu
ZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAg
ICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAg
ICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQxR1BSLCBtZW0KKyAg
ICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAg
ICAgICAgLmRvbmU6CisgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgorICAgICAgICBlbmQK
KyAgICBlbmQsCisgICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BSLCB0MUdQUikKKyAg
ICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQorICAgICAgICAgICAgYnFhIHQwR1BSLCAweGZmZmZm
ZmZmLCAuZmFpbAorICAgICAgICAgICAgYXRvbWljd2Vha2Nhc2kgdDBHUFIsIHQyR1BSLCBtZW0K
KyAgICAgICAgICAgIGptcCAuZG9uZQorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIGF0b21p
Y2xvYWRpIG1lbSwgdDBHUFIKKyAgICAgICAgLmRvbmU6CisgICAgICAgIGVsc2UKKyAgICAgICAg
Lmxvb3A6CisgICAgICAgICAgICBsb2FkbGlua2FjcWkgbWVtLCB0MUdQUgorICAgICAgICAgICAg
YnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQ
UiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAg
ICAgIGptcCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGkg
dDVHUFIsIHQxR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAg
ICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBtb3ZlIHQxR1BS
LCB0MEdQUgorICAgICAgICBlbmQKKyAgICBlbmQsCisgICAgbWFjcm8odDBHUFIsIHQyR1BSLCBt
ZW0sIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQorICAgICAgICAg
ICAgYXRvbWljd2Vha2Nhc3EgdDBHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgZWxzZQorICAgICAg
ICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5rYWNxcSBtZW0sIHQxR1BSCisgICAgICAgICAg
ICBicW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmRyZWxxIHQ1
R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAg
ICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgc3RvcmVjb25kcmVs
cSB0NUdQUiwgdDFHUFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAg
ICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIG1vdmUgdDFH
UFIsIHQwR1BSCisgICAgICAgIGVuZAorICAgIGVuZCkKK2VuZAorCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9hcm0ucmIKaW5kZXggOTVjODVjMTEzNDFiLi43ZGQ1MzUwODk4YjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybS5yYgorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIKQEAgLTYzLDYgKzYzLDExIEBA
IGNsYXNzIE5vZGUKICAgICAgICAgcmFpc2UgIkJvZ3VzIHJlZ2lzdGVyIG5hbWUgI3tkb3VibGVP
cGVyYW5kfSIgdW5sZXNzIGRvdWJsZU9wZXJhbmQgPX4gL15kLwogICAgICAgICAicyIgKyAoJH4u
cG9zdF9tYXRjaC50b19pICogMikudG9fcwogICAgIGVuZAorICAgIGRlZiBhcm1TaW5nbGVIaQor
ICAgICAgICBkb3VibGVPcGVyYW5kID0gYXJtT3BlcmFuZAorICAgICAgICByYWlzZSAiQm9ndXMg
cmVnaXN0ZXIgbmFtZSAje2RvdWJsZU9wZXJhbmR9IiB1bmxlc3MgZG91YmxlT3BlcmFuZCA9fiAv
XmQvCisgICAgICAgICJzIiArICgkfi5wb3N0X21hdGNoLnRvX2kgKiAyICsgMSkudG9fcworICAg
IGVuZAogZW5kCiAKIGNsYXNzIFNwZWNpYWxSZWdpc3RlcgpAQCAtOTgsMjEgKzEwMywyMSBAQCBl
bmQKIGNsYXNzIFJlZ2lzdGVySUQKICAgICBkZWYgYXJtT3BlcmFuZAogICAgICAgICBjYXNlIG5h
bWUKLSAgICAgICAgd2hlbiAidDAiLCAiYTAiLCAicjAiCisgICAgICAgIHdoZW4gInQwIiwgImEw
IiwgIndhMCIsICJyMCIKICAgICAgICAgICAgICJyMCIKLSAgICAgICAgd2hlbiAidDEiLCAiYTEi
LCAicjEiCisgICAgICAgIHdoZW4gInQxIiwgImExIiwgIndhMSIsICJyMSIKICAgICAgICAgICAg
ICJyMSIKLSAgICAgICAgd2hlbiAidDIiLCAiYTIiCisgICAgICAgIHdoZW4gInQyIiwgImEyIiwg
IndhMiIKICAgICAgICAgICAgICJyMiIKLSAgICAgICAgd2hlbiAidDMiLCAiYTMiCisgICAgICAg
IHdoZW4gInQzIiwgImEzIiwgIndhMyIKICAgICAgICAgICAgICJyMyIKICAgICAgICAgd2hlbiAi
dDQiICMgTExJbnQgUEMKICAgICAgICAgICAgICJyNCIKLSAgICAgICAgd2hlbiAidDUiCisgICAg
ICAgIHdoZW4gInQ1IiwgIndzMCIgIyB3czAgbXVzdCBiZSBhIG5vbi1hcmd1bWVudC9ub24tcmV0
dXJuIEdQUgogICAgICAgICAgICAgInI1IgogICAgICAgICB3aGVuICJjZnIiCiAgICAgICAgICAg
ICAicjciCi0gICAgICAgIHdoZW4gInQ2IgorICAgICAgICB3aGVuICJ0NiIsICJ3czEiICMgd3Mx
IG11c3QgYmUgYSBub24tYXJndW1lbnQvbm9uLXJldHVybiBHUFIKICAgICAgICAgICAgICJyOCIK
ICAgICAgICAgd2hlbiAidDciCiAgICAgICAgICAgICAicjkiICMgcjkgaXMgYWxzbyBhIHNjcmF0
Y2ggcmVnaXN0ZXIsIHNvIHVzZSBjYXJlZnVsbHkhCkBAIC0xMzUsMTggKzE0MCwyMiBAQCBlbmQK
IGNsYXNzIEZQUmVnaXN0ZXJJRAogICAgIGRlZiBhcm1PcGVyYW5kCiAgICAgICAgIGNhc2UgbmFt
ZQotICAgICAgICB3aGVuICJmdDAiLCAiZnIiLCAiZmEwIgorICAgICAgICB3aGVuICJmdDAiLCAi
ZnIiLCAiZmEwIiwgIndmYTAiCiAgICAgICAgICAgICAiZDAiCi0gICAgICAgIHdoZW4gImZ0MSIs
ICJmYTEiCisgICAgICAgIHdoZW4gImZ0MSIsICJmYTEiLCAid2ZhMSIKICAgICAgICAgICAgICJk
MSIKLSAgICAgICAgd2hlbiAiZnQyIgorICAgICAgICB3aGVuICJmdDIiLCAid2ZhMiIKICAgICAg
ICAgICAgICJkMiIKLSAgICAgICAgd2hlbiAiZnQzIgorICAgICAgICB3aGVuICJmdDMiLCAid2Zh
MyIKICAgICAgICAgICAgICJkMyIKLSAgICAgICAgd2hlbiAiZnQ0IgorICAgICAgICB3aGVuICJm
dDQiLCAid2ZhNCIKICAgICAgICAgICAgICJkNCIKLSAgICAgICAgd2hlbiAiZnQ1IgorICAgICAg
ICB3aGVuICJmdDUiLCAid2ZhNSIKICAgICAgICAgICAgICJkNSIKKyAgICAgICAgd2hlbiAiZnQ2
IiwgIndmYTYiCisgICAgICAgICAgICAiZDYiCisgICAgICAgIHdoZW4gImZ0NyIsICJ3ZmE3Igor
ICAgICAgICAgICAgImQ3IgogICAgICAgICBlbHNlCiAgICAgICAgICAgICByYWlzZSAiQmFkIHJl
Z2lzdGVyICN7bmFtZX0gZm9yIEFSTSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgogICAgICAgICBl
bmQKQEAgLTE2Myw3ICsxNzIsMTEgQEAgZW5kCiBjbGFzcyBBZGRyZXNzCiAgICAgZGVmIGFybU9w
ZXJhbmQKICAgICAgICAgcmFpc2UgIkJhZCBvZmZzZXQgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIg
aWYgb2Zmc2V0LnZhbHVlIDwgLTB4ZmYgb3Igb2Zmc2V0LnZhbHVlID4gMHhmZmYKLSAgICAgICAg
Ilsje2Jhc2UuYXJtT3BlcmFuZH0sIFwjI3tvZmZzZXQudmFsdWV9XSIKKyAgICAgICAgaWYgb2Zm
c2V0LnZhbHVlID09IDAKKyAgICAgICAgICAiWyN7YmFzZS5hcm1PcGVyYW5kfV0iCisgICAgICAg
IGVsc2UKKyAgICAgICAgICAiWyN7YmFzZS5hcm1PcGVyYW5kfSwgXCMje29mZnNldC52YWx1ZX1d
IgorICAgICAgICBlbmQKICAgICBlbmQKIGVuZAogCkBAIC0zMDYsMTYgKzMxOSwyNSBAQCBjbGFz
cyBTZXF1ZW5jZQogICAgICAgICByZXN1bHQgPSBhcm1Mb3dlckxhYmVsUmVmZXJlbmNlcyhyZXN1
bHQpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3NlcyhyZXN1bHQp
IHsKICAgICAgICAgICAgIHwgbm9kZSwgYWRkcmVzcyB8Ci0gICAgICAgICAgICBpZiBhZGRyZXNz
LmlzX2E/IEJhc2VJbmRleAotICAgICAgICAgICAgICAgIGFkZHJlc3Mub2Zmc2V0LnZhbHVlID09
IDAKLSAgICAgICAgICAgIGVsc2lmIGFkZHJlc3MuaXNfYT8gQWRkcmVzcwotICAgICAgICAgICAg
ICAgICgtMHhmZi4uMHhmZmYpLmluY2x1ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVlCisgICAgICAg
ICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVuICJsb2FkMmlhIiwgInN0b3Jl
MmlhIgorICAgICAgICAgICAgICAgIGlmIGFkZHJlc3MuaXNfYT8gQWRkcmVzcworICAgICAgICAg
ICAgICAgICAgICAoYWRkcmVzcy5vZmZzZXQudmFsdWUgJSA0ID09IDApICYmICgoLTEwMjMuLjEw
MjMpLmluY2x1ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVlKQorICAgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgZmFsc2UKKyAgICAgICAgICAgICAgICBlbmQKICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICBmYWxzZQorICAgICAgICAgICAgICAgIGlmIGFkZHJl
c3MuaXNfYT8gQmFzZUluZGV4CisgICAgICAgICAgICAgICAgICAgIGFkZHJlc3Mub2Zmc2V0LnZh
bHVlID09IDAgJiYgbm9kZS5vcGNvZGUKKyAgICAgICAgICAgICAgICBlbHNpZiBhZGRyZXNzLmlz
X2E/IEFkZHJlc3MKKyAgICAgICAgICAgICAgICAgICAgKC0weGZmLi4weGZmZikuaW5jbHVkZT8g
YWRkcmVzcy5vZmZzZXQudmFsdWUKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIGZhbHNlCisgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICBlbmQKICAgICAg
ICAgfQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXNEb3VibGUo
cmVzdWx0KQotICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKHJl
c3VsdCwgWyJzdG9yZWIiLCAic3RvcmVoIiwgInN0b3JlaSIsICJzdG9yZXAiLCAic3RvcmVxIl0p
CisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMocmVzdWx0LCBb
InN0b3JlYiIsICJzdG9yZWgiLCAic3RvcmVpIiwgInN0b3JlcCIsICJzdG9yZXEiLCAic3RvcmUy
aWEiXSkKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRlcyhyZXN1
bHQsIDAuLjB4ZmYsIDAuLjB4MGZmKQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFj
ZWRBZGRyZXNzZXMocmVzdWx0KQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJSZWdpc3RlclJl
dXNlKHJlc3VsdCkKQEAgLTMzNCw2ICszNTYsMTAgQEAgZGVmIGFybUZsaXBwZWRPcGVyYW5kcyhv
cGVyYW5kcykKICAgICBhcm1PcGVyYW5kcyhbb3BlcmFuZHNbLTFdXSArIG9wZXJhbmRzWzAuLi0y
XSkKIGVuZAogCitkZWYgYXJtRmxpcHBlZE9wZXJhbmRzUGFpcihvcGVyYW5kcykKKyAgICBhcm1P
cGVyYW5kcyhbb3BlcmFuZHNbLTJdLCBvcGVyYW5kc1stMV1dICsgb3BlcmFuZHNbMC4uLTNdKQor
ZW5kCisKIGRlZiBlbWl0QXJtQ29tcGFjdChvcGNvZGUyLCBvcGNvZGUzLCBvcGVyYW5kcykKICAg
ICBpZiBvcGVyYW5kcy5zaXplID09IDMKICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZTN9ICN7
YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCkBAIC0zNjMsNiArMzg5LDEyIEBAIGRlZiBl
bWl0QXJtRG91YmxlQnJhbmNoKGJyYW5jaE9wY29kZSwgb3BlcmFuZHMpCiAgICAgJGFzbS5wdXRz
ICIje2JyYW5jaE9wY29kZX0gI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCiBlbmQKIAorZGVmIGVt
aXRBcm1TaW5nbGVCcmFuY2goYnJhbmNoT3Bjb2RlLCBvcGVyYW5kcykKKyAgICAkYXNtLnB1dHMg
InZjbXBlLmYzMiAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2lu
Z2xlfSIKKyAgICAkYXNtLnB1dHMgInZtcnMgYXBzcl9uemN2LCBmcHNjciIKKyAgICAkYXNtLnB1
dHMgIiN7YnJhbmNoT3Bjb2RlfSAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKK2VuZAorCiBkZWYg
ZW1pdEFybVRlc3Qob3BlcmFuZHMpCiAgICAgdmFsdWUgPSBvcGVyYW5kc1swXQogICAgIGNhc2Ug
b3BlcmFuZHMuc2l6ZQpAQCAtMzgzLDcgKzQxNSwxNSBAQCBlbmQKIAogZGVmIGVtaXRBcm1Eb3Vi
bGVDb21wYXJlKG9wZXJhbmRzLCBjb2RlKQogICAgICRhc20ucHV0cyAibW92ICN7b3BlcmFuZHNb
Ml0uYXJtT3BlcmFuZH0sIFwjMCIKLSAgICAkYXNtLnB1dHMgInZjbXBlLmY2NCAje2FybU9wZXJh
bmRzKG9wZXJhbmRzWzAuLjFdKX0iCisgICAgJGFzbS5wdXRzICJ2Y21wLmY2NCAje2FybU9wZXJh
bmRzKG9wZXJhbmRzWzAuLjFdKX0iCisgICAgJGFzbS5wdXRzICJ2bXJzIEFQU1JfbnpjdiwgRlBT
Q1IiCisgICAgJGFzbS5wdXRzICJpdCAje2NvZGV9IgorICAgICRhc20ucHV0cyAibW92I3tjb2Rl
fSAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCBcIzEiCitlbmQKKworZGVmIGVtaXRBcm1GbG9h
dENvbXBhcmUob3BlcmFuZHMsIGNvZGUpCisgICAgJGFzbS5wdXRzICJtb3YgI3tvcGVyYW5kc1sy
XS5hcm1PcGVyYW5kfSwgXCMwIgorICAgICRhc20ucHV0cyAidmNtcC5mMzIgI3tvcGVyYW5kc1sw
XS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iCiAgICAgJGFzbS5wdXRzICJ2
bXJzIEFQU1JfbnpjdiwgRlBTQ1IiCiAgICAgJGFzbS5wdXRzICJpdCAje2NvZGV9IgogICAgICRh
c20ucHV0cyAibW92I3tjb2RlfSAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCBcIzEiCkBAIC00
MDMsNiArNDQzLDE5IEBAIGRlZiBlbWl0QXJtVGVzdFNldChvcGVyYW5kcywgY29kZSkKICAgICAk
YXNtLnB1dHMgIm1vdiN7Y29kZX0gI3tvcGVyYW5kc1stMV0uYXJtT3BlcmFuZH0sIFwjMSIKIGVu
ZAogCitkZWYgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgdGV4dCkKKyAgICByZXR1cm4gSW5z
dHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJlbWl0IiwgW1N0cmluZ0xpdGVyYWwubmV3KGNvZGVP
cmlnaW4sICJcIiN7dGV4dH1cIiIpXSkKK2VuZAorCitkZWYgZW1pdEFybVRydW5jYXRlRmxvYXQo
Y29kZU9yaWdpbiwgdG8sIGZyb20sIG9wZXJhbmRzKQorICAgIHRtcCA9IEFSTV9FWFRSQV9GUFJT
Wy0xXQorICAgIHNyYyA9IGZyb20gPT0gImYzMiIgPyBvcGVyYW5kc1swXS5hcm1TaW5nbGUgOiBv
cGVyYW5kc1swXS5hcm1PcGVyYW5kCisgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAg
ICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgInZjdnQuI3t0b30uI3tmcm9tfSAje3Rt
cC5hcm1TaW5nbGV9LCAje3NyY30iKSwKKyAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdp
biwgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3t0bXAuYXJtU2luZ2xlfSIpCisg
ICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCitlbmQKKwogY2xhc3MgSW5zdHJ1Y3Rpb24KICAg
ICBkZWYgbG93ZXJBUk12NwogICAgICAgICByYWlzZSB1bmxlc3MgJGFjdGl2ZUJhY2tlbmQgPT0g
IkFSTXY3IgpAQCAtNDQwLDYgKzQ5MywxMCBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAg
ICAgICAgICAgICAkYXNtLnB1dHMgImFkZCN7c3VmZml4fSAje2FybUZsaXBwZWRPcGVyYW5kcyhv
cGVyYW5kcyl9IgogICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgZW5kCisgICAgICAg
IHdoZW4gImFkY2kiCisgICAgICAgICAgICBlbWl0QXJtKCJhZGMiLCBvcGVyYW5kcykKKyAgICAg
ICAgd2hlbiAiYWJzZCIKKyAgICAgICAgICAkYXNtLnB1dHMgInZhYnMuZjY0ICN7YXJtRmxpcHBl
ZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gImFuZGkiLCAiYW5kcCIKICAgICAg
ICAgICAgIGVtaXRBcm1Db21wYWN0KCJhbmRzIiwgImFuZCIsIG9wZXJhbmRzKQogICAgICAgICB3
aGVuICJvcmkiLCAib3JwIiwgIm9yaCIKQEAgLTQ1OCwxNCArNTE1LDM0IEBAIGNsYXNzIEluc3Ry
dWN0aW9uCiAgICAgICAgICAgICBlbWl0QXJtKCJtdWwiLCBvcGVyYW5kcykKICAgICAgICAgd2hl
biAic3ViaSIsICJzdWJwIiwgInN1YmlzIgogICAgICAgICAgICAgZW1pdEFybUNvbXBhY3QoInN1
YnMiLCAic3VicyIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJzYmNpIgorICAgICAgICAgICAg
ZW1pdEFybSgic2JjIiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gIm5lZ2kiLCAibmVncCIKICAg
ICAgICAgICAgICRhc20ucHV0cyAicnNicyAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29w
ZXJhbmRzWzBdLmFybU9wZXJhbmR9LCBcIzAiCiAgICAgICAgIHdoZW4gIm5vdGkiCiAgICAgICAg
ICAgICAkYXNtLnB1dHMgIm12bnMgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5k
c1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgd2hlbiAibHJvdGF0ZWkiCisgICAgICAgICAgICB0
bXAgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICBTZXF1ZW5jZS5uZXco
Y29kZU9yaWdpbiwgWworICAgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2lu
LCAibW92ZSIsIFtvcGVyYW5kc1swXSwgdG1wXSksCisgICAgICAgICAgICAgICAgSW5zdHJ1Y3Rp
b24ubmV3KGNvZGVPcmlnaW4sICJuZWdpIiwgW3RtcF0pLAorICAgICAgICAgICAgICAgIEluc3Ry
dWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAicnJvdGF0ZWkiLCBbdG1wLCBvcGVyYW5kc1sxXV0pLAor
ICAgICAgICAgICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCisgICAgICAgIHdoZW4gInJyb3Rh
dGVpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJyb3IgI3thcm1GbGlwcGVkT3BlcmFuZHMob3Bl
cmFuZHMpfSIKKyAgICAgICAgd2hlbiAidHpjbnRpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJy
Yml0ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgICAgICAkYXNtLnB1
dHMgImNseiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJh
bmR9IgorICAgICAgICB3aGVuICJsemNudGkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImNseiAj
e2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJsb2FkaSIsICJs
b2FkaXMiLCAibG9hZHAiCiAgICAgICAgICAgICAkYXNtLnB1dHMgImxkciAje2FybUZsaXBwZWRP
cGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJzdG9yZWkiLCAic3RvcmVwIgogICAg
ICAgICAgICAgJGFzbS5wdXRzICJzdHIgI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAg
ICB3aGVuICJsb2FkMmlhIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsZHJkICN7YXJtRmxpcHBl
ZE9wZXJhbmRzUGFpcihvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9yZTJpYSIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAic3RyZCAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAg
IHdoZW4gImxvYWRiIgogICAgICAgICAgICAgJGFzbS5wdXRzICJsZHJiICN7YXJtRmxpcHBlZE9w
ZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gImxvYWRic2kiCkBAIC00NzgsMjAgKzU1
NSwxMTAgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgICRhc20ucHV0cyAibGRyc2gu
dyAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJzdG9yZWgi
CiAgICAgICAgICAgICAkYXNtLnB1dHMgInN0cmggI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9Igor
ICAgICAgICB3aGVuICJsb2FkbGlua2IiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmV4YiAj
e2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkbGlua2gi
CisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmV4aCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVy
YW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkbGlua2kiCisgICAgICAgICAgICAkYXNtLnB1dHMg
ImxkcmV4ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxv
YWRsaW5rMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmV4ZCAje2FybUZsaXBwZWRPcGVy
YW5kc1BhaXIob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVjb25kYiIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAic3RyZXhiICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAg
d2hlbiAic3RvcmVjb25kaCIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RyZXhoICN7YXJtT3Bl
cmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVjb25kaSIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAic3RyZXggI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVu
ICJzdG9yZWNvbmQyaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RyZXhkICN7YXJtT3BlcmFu
ZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAibG9hZGQiCiAgICAgICAgICAgICAkYXNtLnB1
dHMgInZsZHIuNjQgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hl
biAic3RvcmVkIgogICAgICAgICAgICAgJGFzbS5wdXRzICJ2c3RyLjY0ICN7YXJtT3BlcmFuZHMo
b3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGYiCisgICAgICAgICAgICAkYXNtLnB1dHMg
InZsZHIuMzIgI3tvcGVyYW5kc1stMV0uYXJtU2luZ2xlfSwgI3thcm1PcGVyYW5kcyhvcGVyYW5k
c1swLi4tMl0pfSIKKyAgICAgICAgd2hlbiAic3RvcmVmIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJ2c3RyLjMyICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSwgI3thcm1PcGVyYW5kcyhvcGVyYW5k
c1sxLi4tMV0pfSIKKyAgICAgICAgd2hlbiAiYWRkZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
dmFkZC5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmds
ZX0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAic3ViZiIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAidnN1Yi5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29w
ZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAg
d2hlbiAibXVsZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm11bC5mMzIgI3tvcGVyYW5kc1sx
XS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJt
U2luZ2xlfSIKKyAgICAgICAgd2hlbiAiZGl2ZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmRp
di5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0s
ICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAic3FydGYiCisgICAgICAg
ICAgICAkYXNtLnB1dHMgInZzcXJ0LmYzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3Bl
cmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAiYWJzZiIKKyAgICAgICAgICAgICRh
c20ucHV0cyAidmFicy5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBd
LmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gIm5lZ2YiCisgICAgICAgICAgICAkYXNtLnB1dHMg
InZuZWcuZjMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5n
bGV9IgorICAgICAgICB3aGVuICJiZmx0IgorICAgICAgICAgICAgZW1pdEFybVNpbmdsZUJyYW5j
aCgiYm1pIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJmbHR1biIKKyAgICAgICAgICAgIGVt
aXRBcm1TaW5nbGVCcmFuY2goImJsdCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZmx0ZXF1
biIKKyAgICAgICAgICAgIGVtaXRBcm1TaW5nbGVCcmFuY2goImJsZSIsIG9wZXJhbmRzKQorICAg
ICAgICB3aGVuICJiZmVxIgorICAgICAgICAgICAgZW1pdEFybVNpbmdsZUJyYW5jaCgiYmVxIiwg
b3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJmZ3QiCisgICAgICAgICAgICBlbWl0QXJtU2luZ2xl
QnJhbmNoKCJiZ3QiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmZndGVxdW4iCisgICAgICAg
ICAgICBlbWl0QXJtU2luZ2xlQnJhbmNoKCJicGwiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAi
YmRsdHVuIgorICAgICAgICAgICAgZW1pdEFybURvdWJsZUJyYW5jaCgiYmx0Iiwgb3BlcmFuZHMp
CiAgICAgICAgIHdoZW4gImFkZGQiCiAgICAgICAgICAgICBlbWl0QXJtKCJ2YWRkLmY2NCIsIG9w
ZXJhbmRzKQotICAgICAgICB3aGVuICJkaXZkIgotICAgICAgICAgICAgZW1pdEFybSgidmRpdi5m
NjQiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAic3ViZCIKICAgICAgICAgICAgIGVtaXRBcm0o
InZzdWIuZjY0Iiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gIm11bGQiCiAgICAgICAgICAgICBl
bWl0QXJtKCJ2bXVsLmY2NCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJkaXZkIgorICAgICAg
ICAgICAgZW1pdEFybSgidmRpdi5mNjQiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAic3FydGQi
CiAgICAgICAgICAgICAkYXNtLnB1dHMgInZzcXJ0LmY2NCAje2FybUZsaXBwZWRPcGVyYW5kcyhv
cGVyYW5kcyl9IgorICAgICAgICB3aGVuICJuZWdkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2
bmVnLmY2NCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJv
cmYiCisgICAgICAgICAgICAodG1wTGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0x
XQorICAgICAgICAgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAg
cmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAj
e29wZXJhbmRzWzBdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24o
Y29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFy
bVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJv
cmkiLCBbdG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29k
ZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3t0bXBSaHMuYXJtT3Bl
cmFuZH0iKQorICAgICAgICAgICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCisgICAgICAgIHdo
ZW4gImFuZGYiCisgICAgICAgICAgICAodG1wTGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNb
LTIuLi0xXQorICAgICAgICAgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAg
ICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJh
bmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1
Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRz
WzFdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmln
aW4sICJhbmRpIiwgW3RtcExocywgdG1wUmhzXSksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0
aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7dG1wUmhz
LmFybU9wZXJhbmR9IikKKyAgICAgICAgICAgIF0pLmxvd2VyKCRhY3RpdmVCYWNrZW5kKQorICAg
ICAgICB3aGVuICJvcmQiCisgICAgICAgICAgICAodG1wTGhzLCB0bXBSaHMpID0gQVJNX0VYVFJB
X0dQUlNbLTIuLi0xXQorICAgICAgICAgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAg
ICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFy
bU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgcmF3
SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29w
ZXJhbmRzWzFdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNv
ZGVPcmlnaW4sICJvcmkiLCBbdG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5z
dHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3t0
bXBSaHMuYXJtT3BlcmFuZH0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9y
aWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmds
ZUhpfSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3Yg
I3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlSGl9IiksCisgICAg
ICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAib3JpIiwgW3RtcExocywgdG1w
UmhzXSksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAj
e29wZXJhbmRzWzFdLmFybVNpbmdsZUhpfSwgI3t0bXBSaHMuYXJtT3BlcmFuZH0iKQorICAgICAg
ICAgICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCisgICAgICAgIHdoZW4gImFuZGQiCisgICAg
ICAgICAgICAodG1wTGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0xXQorICAgICAg
ICAgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1
Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRz
WzBdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdp
biwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0i
KSwKKyAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJhbmRpIiwgW3Rt
cExocywgdG1wUmhzXSksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4s
ICAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7dG1wUmhzLmFybU9wZXJhbmR9Iiks
CisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcExo
cy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGVIaX0iKSwKKyAgICAgICAgICAg
ICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9
LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZUhpfSIpLAorICAgICAgICAgICAgICBJbnN0cnVjdGlv
bi5uZXcoY29kZU9yaWdpbiwgImFuZGkiLCBbdG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAg
ICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2lu
Z2xlSGl9LCAje3RtcFJocy5hcm1PcGVyYW5kfSIpCisgICAgICAgICAgICBdKS5sb3dlcigkYWN0
aXZlQmFja2VuZCkKICAgICAgICAgd2hlbiAiY2kyZHMiCiAgICAgICAgICAgICAkYXNtLnB1dHMg
InZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9
IgogICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmY2NC5zMzIgI3tvcGVyYW5kc1sxXS5hcm1P
cGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IgpAQCAtNTQ0LDYgKzcxMSw4IEBAIGNs
YXNzIEluc3RydWN0aW9uCiAgICAgICAgIHdoZW4gIm1vdmR6IgogICAgICAgICAgICAgIyBGSVhN
RTogZWl0aGVyIHN1cHBvcnQgdGhpcyBvciByZW1vdmUgaXQuCiAgICAgICAgICAgICByYWlzZSAi
QVJNIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcGNvZGUgeWV0LCAje2NvZGVPcmlnaW59IgorICAg
ICAgICB3aGVuICJtb3ZlZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdi5mNjQgI3thcm1G
bGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAicG9wIgogICAgICAgICAg
ICAgb3BlcmFuZHMuZWFjaCB7CiAgICAgICAgICAgICAgICAgfCBvcCB8CkBAIC01NjAsOSArNzI5
LDE3IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg
ICAgJGFzbS5wdXRzICJtb3YgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAg
ICAgICAgIGVuZAorICAgICAgICB3aGVuICJtb3ZlaWkiCisgICAgICAgICAgICByYWlzZSAiRmly
c3Qgb3BlcmFuZCBvZiBtb3ZlaWkgbXVzdCBiZSBhbiBpbW1lZGlhdGUiIHVubGVzcyBvcGVyYW5k
c1swXS5pbW1lZGlhdGU/CisgICAgICAgICAgICBhcm1Nb3ZlSW1tZWRpYXRlKG9wZXJhbmRzWzBd
LnZhbHVlID4+IDMyLCBvcGVyYW5kc1sxXSkKKyAgICAgICAgICAgIGFybU1vdmVJbW1lZGlhdGUo
b3BlcmFuZHNbMF0udmFsdWUgJiAweGZmZmZmZmZmLCBvcGVyYW5kc1syXSkKICAgICAgICAgd2hl
biAibXZsYmwiCiAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3Z3ICN7b3BlcmFuZHNbMV0u
YXJtT3BlcmFuZH0sIFwjOmxvd2VyMTY6I3tvcGVyYW5kc1swXS52YWx1ZX0iCiAgICAgICAgICAg
ICAgICAgJGFzbS5wdXRzICJtb3Z0ICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sIFwjOnVwcGVy
MTY6I3tvcGVyYW5kc1swXS52YWx1ZX0iCisgICAgICAgIHdoZW4gInN4YjJpIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJzeHRiICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAg
ICAgIHdoZW4gInN4aDJpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzeHRoICN7YXJtRmxpcHBl
ZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gIm5vcCIKICAgICAgICAgICAgICRh
c20ucHV0cyAibm9wIgogICAgICAgICB3aGVuICJiaWVxIiwgImJwZXEiLCAiYmJlcSIKQEAgLTY1
NiwxNCArODMzLDQ2IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBlbWl0QXJtQ29t
cGFyZShvcGVyYW5kcywgImx0IikKICAgICAgICAgd2hlbiAiY2lsdGVxIiwgImNwbHRlcSIsICJj
Ymx0ZXEiCiAgICAgICAgICAgICBlbWl0QXJtQ29tcGFyZShvcGVyYW5kcywgImxlIikKLSAgICAg
ICAgd2hlbiAiY2RndCIKLSAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRz
LCAiZ3QiKQotICAgICAgICB3aGVuICJjZGd0ZXEiCi0gICAgICAgICAgICBlbWl0QXJtRG91Ymxl
Q29tcGFyZShvcGVyYW5kcywgImdlIikKKyAgICAgICAgd2hlbiAiY2ZlcSIKKyAgICAgICAgICAg
IGVtaXRBcm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJlcSIpCisgICAgICAgIHdoZW4gImNmbmVx
dW4iCisgICAgICAgICAgICBlbWl0QXJtRmxvYXRDb21wYXJlKG9wZXJhbmRzLCAibmUiKQorICAg
ICAgICB3aGVuICJjZmx0IgorICAgICAgICAgICAgZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5k
cywgIm1pIikKKyAgICAgICAgd2hlbiAiY2ZsdGVxIgorICAgICAgICAgICAgZW1pdEFybUZsb2F0
Q29tcGFyZShvcGVyYW5kcywgImxzIikKKyAgICAgICAgd2hlbiAiY2ZndCIKKyAgICAgICAgICAg
IGVtaXRBcm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJndCIpCisgICAgICAgIHdoZW4gImNmZ3Rl
cSIKKyAgICAgICAgICAgIGVtaXRBcm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJnZSIpCisgICAg
ICAgIHdoZW4gImNkZXEiCisgICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVyYW5k
cywgImVxIikKKyAgICAgICAgd2hlbiAiY2RuZXF1biIKKyAgICAgICAgICAgIGVtaXRBcm1Eb3Vi
bGVDb21wYXJlKG9wZXJhbmRzLCAibmUiKQogICAgICAgICB3aGVuICJjZGx0IgogICAgICAgICAg
ICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMsICJtaSIpCiAgICAgICAgIHdoZW4gImNk
bHRlcSIKICAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAibHMiKQor
ICAgICAgICB3aGVuICJjZGd0IgorICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3Bl
cmFuZHMsICJndCIpCisgICAgICAgIHdoZW4gImNkZ3RlcSIKKyAgICAgICAgICAgIGVtaXRBcm1E
b3VibGVDb21wYXJlKG9wZXJhbmRzLCAiZ2UiKQorICAgICAgICB3aGVuICJjZjJkIgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmY2NC5mMzIgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwg
I3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJjZDJmIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJ2Y3Z0LmYzMi5mNjQgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29w
ZXJhbmRzWzBdLmFybU9wZXJhbmR9IgorICAgICAgICB3aGVuICJjaTJmIgorICAgICAgICAgICAg
JGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5h
cm1PcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmN2dC5mMzIudTMyICN7b3BlcmFu
ZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVu
ICJjaTJmcyIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybVNp
bmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMg
InZjdnQuZjMyLnMzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJt
U2luZ2xlfSIKKyAgICAgICAgd2hlbiAiY2kyZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1v
diAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisg
ICAgICAgICAgICAkYXNtLnB1dHMgInZjdnQuZjY0LnUzMiAje29wZXJhbmRzWzFdLmFybU9wZXJh
bmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gImNpMmRzIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVy
YW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmN2dC5mNjQuczMy
ICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKICAg
ICAgICAgd2hlbiAidGlzIiwgInRicyIsICJ0cHMiCiAgICAgICAgICAgICBlbWl0QXJtVGVzdFNl
dChvcGVyYW5kcywgIm1pIikKICAgICAgICAgd2hlbiAidGl6IiwgInRieiIsICJ0cHoiCkBAIC02
NzQsMTAgKzg4MywyMiBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgJGFzbS5wdXRz
ICJsZHIgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgW3NwLCBcIyN7b3BlcmFuZHNbMF0udmFs
dWUgKiA0fV0iCiAgICAgICAgIHdoZW4gInBva2UiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInN0
ciAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCBbc3AsIFwjI3tvcGVyYW5kc1swXS52YWx1ZSAq
IDR9XSIKKyAgICAgICAgd2hlbiAiZmkyZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAj
e29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAg
ICAgIHdoZW4gImZmMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1sx
XS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IgogICAgICAgICB3aGVuICJm
aWkyZCIKICAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzJdLmFybU9wZXJh
bmR9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9
IgogICAgICAgICB3aGVuICJmZDJpaSIKICAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29w
ZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCAje29wZXJh
bmRzWzBdLmFybU9wZXJhbmR9IgorICAgICAgICB3aGVuICJ0cnVuY2F0ZWYyaSIKKyAgICAgICAg
ICAgIGVtaXRBcm1UcnVuY2F0ZUZsb2F0KGNvZGVPcmlnaW4sICJ1MzIiLCAiZjMyIiwgb3BlcmFu
ZHMpCisgICAgICAgIHdoZW4gInRydW5jYXRlZjJpcyIKKyAgICAgICAgICAgIGVtaXRBcm1UcnVu
Y2F0ZUZsb2F0KGNvZGVPcmlnaW4sICJzMzIiLCAiZjMyIiwgb3BlcmFuZHMpCisgICAgICAgIHdo
ZW4gInRydW5jYXRlZDJpIgorICAgICAgICAgICAgZW1pdEFybVRydW5jYXRlRmxvYXQoY29kZU9y
aWdpbiwgInUzMiIsICJmNjQiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAidHJ1bmNhdGVkMmlz
IgorICAgICAgICAgICAgZW1pdEFybVRydW5jYXRlRmxvYXQoY29kZU9yaWdpbiwgInMzMiIsICJm
NjQiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAiYm8iCiAgICAgICAgICAgICAkYXNtLnB1dHMg
ImJ2cyAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKICAgICAgICAgd2hlbiAiYnMiCkBAIC02ODYs
MTMgKzkwNywxNyBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgJGFzbS5wdXRzICJi
ZXEgI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCiAgICAgICAgIHdoZW4gImJueiIKICAgICAgICAg
ICAgICRhc20ucHV0cyAiYm5lICN7b3BlcmFuZHNbMF0uYXNtTGFiZWx9IgorICAgICAgICB3aGVu
ICJiY3MiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJjcyAje29wZXJhbmRzWzBdLmFzbUxhYmVs
fSIKICAgICAgICAgd2hlbiAibGVhaSIsICJsZWFwIgogICAgICAgICAgICAgb3BlcmFuZHNbMF0u
YXJtRW1pdExlYShvcGVyYW5kc1sxXSkKLSAgICAgICAgd2hlbiAic211bGxpIgorICAgICAgICB3
aGVuICJzbXVsbGkiLCAidW11bGxpIgogICAgICAgICAgICAgcmFpc2UgIldyb25nIG51bWJlciBv
ZiBhcmd1bWVudHMgdG8gc211bGwgaW4gI3tzZWxmLmluc3BlY3R9IGF0ICN7Y29kZU9yaWdpblN0
cmluZ30iIHVubGVzcyBvcGVyYW5kcy5sZW5ndGggPT0gNAotICAgICAgICAgICAgJGFzbS5wdXRz
ICJzbXVsbCAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzNdLmFybU9wZXJh
bmR9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9
IgorICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZVswLi4tMl19ICN7b3BlcmFuZHNbMl0u
YXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbM10uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJt
T3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCiAgICAgICAgIHdoZW4gIm1lbWZl
bmNlIgogICAgICAgICAgICAgJGFzbS5wdXRzICJkbWIgc3kiCisgICAgICAgIHdoZW4gImZlbmNl
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJkbWIgaXNoIgogICAgICAgICB3aGVuICJjbHJicCIK
ICAgICAgICAgICAgICRhc20ucHV0cyAiYmljICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7
b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCiAgICAg
ICAgIHdoZW4gImdsb2JhbGFkZHIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9pbnN0cnVjdGlvbnMucmIKaW5kZXggNTRiMDI3ZjNkYTAxLi43ZTI4MGI3Zjc4YjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5y
YgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIK
QEAgLTU5LDYgKzU5LDcgQEAgTUFDUk9fSU5TVFJVQ1RJT05TID0KICAgICAgInJyb3RhdGVxIiwK
ICAgICAgInN1YmkiLAogICAgICAieG9yaSIsCisgICAgICJsb2FkMmlhIiwKICAgICAgImxvYWRp
IiwKICAgICAgImxvYWRpcyIsCiAgICAgICJsb2FkYiIsCkBAIC02Nyw2ICs2OCw3IEBAIE1BQ1JP
X0lOU1RSVUNUSU9OUyA9CiAgICAgICJsb2FkaCIsCiAgICAgICJsb2FkaHNpIiwKICAgICAgImxv
YWRoc3EiLAorICAgICAic3RvcmUyaWEiLAogICAgICAic3RvcmVpIiwKICAgICAgInN0b3JlaCIs
CiAgICAgICJzdG9yZWIiLApAQCAtMzc3LDkgKzM3OSwyMSBAQCBYODZfSU5TVFJVQ1RJT05TID0K
IAogQVJNX0lOU1RSVUNUSU9OUyA9CiAgICAgWworICAgICAiYWRjaSIsCisgICAgICJiY3MiLAog
ICAgICAiY2xyYnAiLAogICAgICAibXZsYmwiLAotICAgICAiZ2xvYmFsYWRkciIKKyAgICAgImds
b2JhbGFkZHIiLAorICAgICAic2JjaSIsCisgICAgICJtb3ZlaWkiLAorICAgICAibG9hZGxpbmti
IiwKKyAgICAgImxvYWRsaW5raCIsCisgICAgICJsb2FkbGlua2kiLAorICAgICAibG9hZGxpbmsy
aSIsCisgICAgICJzdG9yZWNvbmRiIiwKKyAgICAgInN0b3JlY29uZGgiLAorICAgICAic3RvcmVj
b25kaSIsCisgICAgICJzdG9yZWNvbmQyaSIsCiAgICAgXQogCiBBUk02NF9JTlNUUlVDVElPTlMg
PQpAQCAtNDMxLDYgKzQ0NSw3IEBAIEFSTTY0X0lOU1RSVUNUSU9OUyA9CiBSSVNDX0lOU1RSVUNU
SU9OUyA9CiAgICAgWwogICAgICAic211bGxpIiwgICMgTXVsdGlwbHkgdHdvIDMyLWJpdCB3b3Jk
cyBhbmQgcHJvZHVjZSBhIDY0LWJpdCB3b3JkCisgICAgICJ1bXVsbGkiLCAgIyBNdWx0aXBseSB0
d28gMzItYml0IHdvcmRzIGFuZCBwcm9kdWNlIGEgNjQtYml0IHdvcmQKICAgICAgImFkZGlzIiwg
ICAjIEFkZCBpbnRlZ2VycyBhbmQgc2V0IGEgZmxhZy4KICAgICAgInN1YmlzIiwgICAjIFNhbWUs
IGJ1dCBmb3Igc3VidHJhY3Rpb24uCiAgICAgICJvcmlzIiwgICAgIyBTYW1lLCBidXQgZm9yIGJp
dHdpc2Ugb3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9y
ZWdpc3RlcnMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMu
cmIKaW5kZXggMGRjNDRjMjNkZmIyLi42N2Y1MjcxYTUzNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5yYgorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIKQEAgLTU4LDcgKzU4LDggQEAgR1BSUyA9
CiAgICAgICJjc3I3IiwKICAgICAgImNzcjgiLAogICAgICAiY3NyOSIsCi0gICAgICJjc3IxMCIK
KyAgICAgImNzcjEwIiwKKyAgICAgImludmFsaWRHUFIiCiAgICAgXQogCiBGUFJTID0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiCmluZGV4IDBmMDcyZTlmZDExZS4uMzQ2
NDU5NjJmNzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9y
aXNjLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIKQEAg
LTI1OSw4ICsyNTksMTIgQEAgZGVmIHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc0RvdWJsZShs
aXN0KQogICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQogICAgICAgICAgICAgd2hlbiAibG9h
ZGQiCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2Rl
T3JpZ2luLCAibG9hZGQiLCBbbm9kZS5vcGVyYW5kc1swXS5yaXNjRG91YmxlQWRkcmVzcyhuZXdM
aXN0KSwgbm9kZS5vcGVyYW5kc1sxXV0sIG5vZGUuYW5ub3RhdGlvbikKKyAgICAgICAgICAgIHdo
ZW4gImxvYWRmIgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5v
ZGUuY29kZU9yaWdpbiwgImxvYWRmIiwgW25vZGUub3BlcmFuZHNbMF0ucmlzY0RvdWJsZUFkZHJl
c3MobmV3TGlzdCksIG5vZGUub3BlcmFuZHNbMV1dLCBub2RlLmFubm90YXRpb24pCiAgICAgICAg
ICAgICB3aGVuICJzdG9yZWQiCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlv
bi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic3RvcmVkIiwgW25vZGUub3BlcmFuZHNbMF0sIG5vZGUu
b3BlcmFuZHNbMV0ucmlzY0RvdWJsZUFkZHJlc3MobmV3TGlzdCldLCBub2RlLmFubm90YXRpb24p
CisgICAgICAgICAgICB3aGVuICJzdG9yZWYiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJ
bnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic3RvcmVmIiwgW25vZGUub3BlcmFuZHNb
MF0sIG5vZGUub3BlcmFuZHNbMV0ucmlzY0RvdWJsZUFkZHJlc3MobmV3TGlzdCldLCBub2RlLmFu
bm90YXRpb24pCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBu
b2RlCiAgICAgICAgICAgICBlbmQKQEAgLTM2OSw3ICszNzMsNyBAQCBkZWYgcmlzY0xvd2VyTWFs
Zm9ybWVkSW1tZWRpYXRlcyhsaXN0LCB2YWxpZEltbWVkaWF0ZXMsIHZhbGlkTG9naWNhbEltbWVk
aWF0ZXMpCiAgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGFu
bm90YXRpb24gPSBub2RlLmFubm90YXRpb24KICAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUK
LSAgICAgICAgICAgIHdoZW4gIm1vdmUiCisgICAgICAgICAgICB3aGVuICJtb3ZlIiwgIm1vdmVp
aSIKICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKICAgICAgICAgICAgIHdoZW4gImFk
ZGkiLCAiYWRkcCIsICJhZGRxIiwgImFkZGlzIiwgInN1YmkiLCAic3VicCIsICJzdWJxIiwgInN1
YmlzIgogICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRl
IGFuZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCmluZGV4IDI5
NDlkMDkyNWZjMC4uMTU4NDJhNjA2MGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDSlNWYWx1ZS5oCkBAIC0xNjIsOCArMTYyLDkgQEAgcHVibGljOgogICAgIGVudW0geyBO
dWxsVGFnID0gICAgICAgICAweGZmZmZmZmZkIH07CiAgICAgZW51bSB7IFVuZGVmaW5lZFRhZyA9
ICAgIDB4ZmZmZmZmZmMgfTsKICAgICBlbnVtIHsgQ2VsbFRhZyA9ICAgICAgICAgMHhmZmZmZmZm
YiB9OwotICAgIGVudW0geyBFbXB0eVZhbHVlVGFnID0gICAweGZmZmZmZmZhIH07Ci0gICAgZW51
bSB7IERlbGV0ZWRWYWx1ZVRhZyA9IDB4ZmZmZmZmZjkgfTsKKyAgICBlbnVtIHsgV2FzbVRhZyA9
ICAgICAgICAgMHhmZmZmZmZmYSB9OworICAgIGVudW0geyBFbXB0eVZhbHVlVGFnID0gICAweGZm
ZmZmZmY5IH07CisgICAgZW51bSB7IERlbGV0ZWRWYWx1ZVRhZyA9IDB4ZmZmZmZmZjggfTsKIAog
ICAgIGVudW0geyBMb3dlc3RUYWcgPSAgRGVsZXRlZFZhbHVlVGFnIH07CiAKQEAgLTE4MSw2ICsx
ODIsOSBAQCBwdWJsaWM6CiAgICAgZW51bSBFbmNvZGVBc0JpZ0ludDMyVGFnIHsgRW5jb2RlQXNC
aWdJbnQzMiB9OwogI2VuZGlmCiAgICAgZW51bSBFbmNvZGVBc0RvdWJsZVRhZyB7IEVuY29kZUFz
RG91YmxlIH07CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBVU0UoSlNWQUxVRTMyXzY0KQor
ICAgIGVudW0gRW5jb2RlQXNVbmJveGVkRmxvYXRUYWcgeyBFbmNvZGVBc1VuYm94ZWRGbG9hdCB9
OworI2VuZGlmCiAKICAgICBKU1ZhbHVlKCk7CiAgICAgSlNWYWx1ZShKU051bGxUYWcpOwpAQCAt
MTkyLDYgKzE5Niw5IEBAIHB1YmxpYzoKICNpZiBVU0UoQklHSU5UMzIpCiAgICAgSlNWYWx1ZShF
bmNvZGVBc0JpZ0ludDMyVGFnLCBpbnQzMl90KTsKICNlbmRpZgorI2lmIEVOQUJMRShXRUJBU1NF
TUJMWSkgJiYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBKU1ZhbHVlKEVuY29kZUFzVW5ib3hlZEZs
b2F0VGFnLCBmbG9hdCk7CisjZW5kaWYKIAogICAgIC8vIE51bWJlcnMKICAgICBKU1ZhbHVlKEVu
Y29kZUFzRG91YmxlVGFnLCBkb3VibGUpOwpAQCAtNTkzLDYgKzYwMCwxMyBAQCBBTFdBWVNfSU5M
SU5FIEpTVmFsdWUganNCaWdJbnQzMihpbnQzMl90IGludFZhbHVlKQogfQogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVFMzJfNjQpCitBTFdBWVNfSU5MSU5F
IEpTVmFsdWUganNVbmJveGVkRmxvYXQoZmxvYXQgZikKK3sKKyAgICByZXR1cm4gSlNWYWx1ZShK
U1ZhbHVlOjpFbmNvZGVBc1VuYm94ZWRGbG9hdCwgZik7Cit9CisjZW5kaWYKKwogQUxXQVlTX0lO
TElORSBKU1ZhbHVlIGpzRG91YmxlTnVtYmVyKGRvdWJsZSBkKQogewogICAgIEFTU0VSVChKU1Zh
bHVlKEpTVmFsdWU6OkVuY29kZUFzRG91YmxlLCBkKS5pc051bWJlcigpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCmluZGV4IDc5MjY3
NjNjZDU2NS4uOWM1MmRjOTk1MmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKQEAgLTYxOSw2ICs2MTksMTMgQEAgaW5saW5lIEpT
VmFsdWU6OkpTVmFsdWUoRW5jb2RlQXNCaWdJbnQzMlRhZywgaW50MzJfdCB2YWx1ZSkKIH0KICNl
bmRpZiAvLyBVU0UoQklHSU5UMzIpCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShK
U1ZBTFVFMzJfNjQpCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShFbmNvZGVBc1VuYm94ZWRGbG9h
dFRhZywgZmxvYXQgdmFsdWUpCit7CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IGJpdHdpc2VfY2Fz
dDxpbnQzMl90Pih2YWx1ZSk7Cit9CisjZW5kaWYKKwogaW5saW5lIGludDY0X3QgdHJ5Q29udmVy
dFRvSW50NTIoZG91YmxlIG51bWJlcikKIHsKICAgICBpZiAobnVtYmVyICE9IG51bWJlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCmlu
ZGV4IDJkNzI5YWUyNWVkMy4uZjExNjEzMTZkMmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAKQEAgLTg0MCw2ICs4NDAsMTUgQEAg
cHJpdmF0ZToKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuY3Rpb24+CiAgICAgdm9pZCBmb3JF
YWNoTGl2ZVZhbHVlKEZ1bmN0aW9uKTsKIAorICAgIGJvb2wgdXNlU2lnbmFsaW5nTWVtb3J5KCkg
Y29uc3QKKyAgICB7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCisg
ICAgICAgIHJldHVybiBtX21vZGUgPT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nOworI2Vsc2UKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisgICAgfQorCiAgICAgRnVuY3Rpb25QYXJzZXI8
QWlySVJHZW5lcmF0b3I+KiBtX3BhcnNlciB7IG51bGxwdHIgfTsKICAgICBjb25zdCBNb2R1bGVJ
bmZvcm1hdGlvbiYgbV9pbmZvOwogICAgIGNvbnN0IE1lbW9yeU1vZGUgbV9tb2RlIHsgTWVtb3J5
TW9kZTo6Qm91bmRzQ2hlY2tpbmcgfTsKQEAgLTk1Nyw3ICs5NjYsNyBAQCBBaXJJUkdlbmVyYXRv
cjo6QWlySVJHZW5lcmF0b3IoY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mIGluZm8sIEIzOjpQcm9j
ZWR1cmUmIHBybwogICAgIGlmICghQ29udGV4dDo6dXNlRmFzdFRMUygpKQogICAgICAgICBtX2Nv
ZGUucGluUmVnaXN0ZXIobV93YXNtQ29udGV4dEluc3RhbmNlR1BSKTsKIAotICAgIGlmIChtb2Rl
ICE9IE1lbW9yeU1vZGU6OlNpZ25hbGluZykgeworICAgIGlmIChtb2RlID09IE1lbW9yeU1vZGU6
OkJvdW5kc0NoZWNraW5nKSB7CiAgICAgICAgIG1fYm91bmRzQ2hlY2tpbmdTaXplR1BSID0gcGlu
bmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlcjsKICAgICAgICAgbV9jb2RlLnBpblJl
Z2lzdGVyKG1fYm91bmRzQ2hlY2tpbmdTaXplR1BSKTsKICAgICB9CkBAIC0xNzkyLDYgKzE4MDEs
NyBAQCBpbmxpbmUgQWlySVJHZW5lcmF0b3I6OkV4cHJlc3Npb25UeXBlIEFpcklSR2VuZXJhdG9y
OjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcgogICAgICAgICBicmVhazsKICAgICB9CiAKKyNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBjYXNlIE1lbW9yeU1v
ZGU6OlNpZ25hbGluZzogewogICAgICAgICAvLyBXZSd2ZSB2aXJ0dWFsbHkgbWFwcGVkIDRHaUIr
cmVkem9uZSBmb3IgdGhpcyBtZW1vcnkuIE9ubHkgdGhlIHVzZXItYWxsb2NhdGVkIHBhZ2VzIGFy
ZSBhZGRyZXNzYWJsZSwgY29udGlndW91c2x5IGluIHJhbmdlIFswLCBjdXJyZW50XSwKICAgICAg
ICAgLy8gYW5kIGV2ZXJ5dGhpbmcgYWJvdmUgaXMgbWFwcGVkIFBST1RfTk9ORS4gV2UgZG9uJ3Qg
bmVlZCB0byBwZXJmb3JtIGFueSBleHBsaWNpdCBib3VuZHMgY2hlY2sgaW4gdGhlIDRHaUIgcmFu
Z2UgYmVjYXVzZSBXZWJBc3NlbWJseSByZWdpc3RlcgpAQCAtMTgxOCw2ICsxODI4LDcgQEAgaW5s
aW5lIEFpcklSR2VuZXJhdG9yOjpFeHByZXNzaW9uVHlwZSBBaXJJUkdlbmVyYXRvcjo6ZW1pdENo
ZWNrQW5kUHJlcGFyZVBvaW50ZXIKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9Cisj
ZW5kaWYKICAgICB9CiAKICAgICBhcHBlbmQoQWRkNjQsIFRtcChtX21lbW9yeUJhc2VHUFIpLCBy
ZXN1bHQpOwpAQCAtMzY5Myw3ICszNzA0LDcgQEAgYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRkQ2Fs
bCh1aW50MzJfdCBmdW5jdGlvbkluZGV4LCBjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSwKICAg
ICAgICAgYXV0byogcGF0Y2hwb2ludCA9IHBhaXIuZmlyc3Q7CiAgICAgICAgIGF1dG8gZXhjZXB0
aW9uSGFuZGxlID0gcGFpci5zZWNvbmQ7CiAgICAgICAgIC8vIFdlIG5lZWQgdG8gY2xvYmJlciB0
aGUgc2l6ZSByZWdpc3RlciBzaW5jZSB0aGUgTExJbnQgYWx3YXlzIGJvdW5kcyBjaGVja3MKLSAg
ICAgICAgaWYgKG1fbW9kZSA9PSBNZW1vcnlNb2RlOjpTaWduYWxpbmcgfHwgbV9pbmZvLm1lbW9y
eS5pc1NoYXJlZCgpKQorICAgICAgICBpZiAodXNlU2lnbmFsaW5nTWVtb3J5KCkgfHwgbV9pbmZv
Lm1lbW9yeS5pc1NoYXJlZCgpKQogICAgICAgICAgICAgcGF0Y2hwb2ludC0+Y2xvYmJlckxhdGUo
UmVnaXN0ZXJTZXQgeyBQaW5uZWRSZWdpc3RlckluZm86OmdldCgpLmJvdW5kc0NoZWNraW5nU2l6
ZVJlZ2lzdGVyIH0pOwogICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoWz0sIHRoaXNd
IChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgQjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYg
cGFyYW1zKSB7CiAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxs
b3dTY3JhdGNoKGppdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtQjNJUkdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJ
UkdlbmVyYXRvci5jcHAKaW5kZXggNTcwZGYzNmZiMjQ5Li5iZWE3N2RmMTRkZTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKQEAgLTUy
Myw2ICs1MjMsMTUgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHNldChkc3QsIGdldChzcmMp
KTsKICAgICB9CiAKKyAgICBib29sIHVzZVNpZ25hbGluZ01lbW9yeSgpIGNvbnN0CisgICAgewor
I2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQorICAgICAgICByZXR1cm4g
bV9tb2RlID09IE1lbW9yeU1vZGU6OlNpZ25hbGluZzsKKyNlbHNlCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyNlbmRpZgorICAgIH0KKwogICAgIEZ1bmN0aW9uUGFyc2VyPEIzSVJHZW5lcmF0b3I+
KiBtX3BhcnNlciB7IG51bGxwdHIgfTsKICAgICBjb25zdCBNb2R1bGVJbmZvcm1hdGlvbiYgbV9p
bmZvOwogICAgIGNvbnN0IE1lbW9yeU1vZGUgbV9tb2RlIHsgTWVtb3J5TW9kZTo6Qm91bmRzQ2hl
Y2tpbmcgfTsKQEAgLTYzNiw3ICs2NDUsNyBAQCBCM0lSR2VuZXJhdG9yOjpCM0lSR2VuZXJhdG9y
KGNvbnN0IE1vZHVsZUluZm9ybWF0aW9uJiBpbmZvLCBQcm9jZWR1cmUmIHByb2NlZHVyZQogICAg
IGlmICghQ29udGV4dDo6dXNlRmFzdFRMUygpKQogICAgICAgICBtX3Byb2MucGluUmVnaXN0ZXIo
bV93YXNtQ29udGV4dEluc3RhbmNlR1BSKTsKIAotICAgIGlmIChtb2RlICE9IE1lbW9yeU1vZGU6
OlNpZ25hbGluZykgeworICAgIGlmIChtb2RlID09IE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5n
KSB7CiAgICAgICAgIG1fYm91bmRzQ2hlY2tpbmdTaXplR1BSID0gcGlubmVkUmVncy5ib3VuZHND
aGVja2luZ1NpemVSZWdpc3RlcjsKICAgICAgICAgbV9wcm9jLnBpblJlZ2lzdGVyKG1fYm91bmRz
Q2hlY2tpbmdTaXplR1BSKTsKICAgICB9CkBAIC02NDgsOSArNjU3LDExIEBAIEIzSVJHZW5lcmF0
b3I6OkIzSVJHZW5lcmF0b3IoY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mIGluZm8sIFByb2NlZHVy
ZSYgcHJvY2VkdXJlCiAgICAgICAgICAgICBjYXNlIE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5n
OgogICAgICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQocGlubmVkR1BSLCBtX2JvdW5kc0NoZWNr
aW5nU2l6ZUdQUiA9PSBwaW5uZWRHUFIpOwogICAgICAgICAgICAgICAgIGJyZWFrOworI2lmIEVO
QUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgICAgICAgICAgY2FzZSBNZW1v
cnlNb2RlOjpTaWduYWxpbmc6CiAgICAgICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChwaW5uZWRH
UFIsIEludmFsaWRHUFJSZWcgPT0gcGlubmVkR1BSKTsKICAgICAgICAgICAgICAgICBicmVhazsK
KyNlbmRpZgogICAgICAgICAgICAgfQogICAgICAgICAgICAgdGhpcy0+ZW1pdEV4Y2VwdGlvbkNo
ZWNrKGppdCwgRXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpOwogICAgICAg
ICB9KTsKQEAgLTkxMiw4ICs5MjMsMTIgQEAgYXV0byBCM0lSR2VuZXJhdG9yOjphZGRBcmd1bWVu
dHMoY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUpIC0+IFBhcnRpYWxSZXN1bHQKICAgICAgICAg
QjM6OlR5cGUgdHlwZSA9IHRvQjNUeXBlKHNpZ25hdHVyZS5hcmd1bWVudChpKSk7CiAgICAgICAg
IEIzOjpWYWx1ZSogYXJndW1lbnQ7CiAgICAgICAgIGF1dG8gcmVwID0gd2FzbUNhbGxJbmZvLnBh
cmFtc1tpXTsKLSAgICAgICAgaWYgKHJlcC5pc1JlZygpKSB7Ci0gICAgICAgICAgICBhcmd1bWVu
dCA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8QjM6OkFyZ3VtZW50UmVnVmFsdWU+KG1fcHJv
YywgT3JpZ2luKCksIHJlcC5yZWcoKSk7CisgICAgICAgIGlmIChyZXAuaXNHUFIoKSkgeworICAg
ICAgICAgICAgYXJndW1lbnQgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PEIzOjpBcmd1bWVu
dFJlZ1ZhbHVlPihtX3Byb2MsIE9yaWdpbigpLCByZXAuanNyKCkucGF5bG9hZEdQUigpKTsKKyAg
ICAgICAgICAgIGlmICh0eXBlID09IEIzOjpJbnQzMiB8fCB0eXBlID09IEIzOjpGbG9hdCkKKyAg
ICAgICAgICAgICAgICBhcmd1bWVudCA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8QjM6OlZh
bHVlPihtX3Byb2MsIEIzOjpUcnVuYywgT3JpZ2luKCksIGFyZ3VtZW50KTsKKyAgICAgICAgfSBl
bHNlIGlmIChyZXAuaXNGUFIoKSkgeworICAgICAgICAgICAgYXJndW1lbnQgPSBtX2N1cnJlbnRC
bG9jay0+YXBwZW5kTmV3PEIzOjpBcmd1bWVudFJlZ1ZhbHVlPihtX3Byb2MsIE9yaWdpbigpLCBy
ZXAuZnByKCkpOwogICAgICAgICAgICAgaWYgKHR5cGUgPT0gQjM6OkludDMyIHx8IHR5cGUgPT0g
QjM6OkZsb2F0KQogICAgICAgICAgICAgICAgIGFyZ3VtZW50ID0gbV9jdXJyZW50QmxvY2stPmFw
cGVuZE5ldzxCMzo6VmFsdWU+KG1fcHJvYywgQjM6OlRydW5jLCBPcmlnaW4oKSwgYXJndW1lbnQp
OwogICAgICAgICB9IGVsc2UgewpAQCAtMTQ0Myw2ICsxNDU4LDcgQEAgaW5saW5lIFZhbHVlKiBC
M0lSR2VuZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihWYWx1ZSogcG9pbnRlciwg
dWludDMyX3QKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
X1NJR05BTElOR19NRU1PUlkpCiAgICAgY2FzZSBNZW1vcnlNb2RlOjpTaWduYWxpbmc6IHsKICAg
ICAgICAgLy8gV2UndmUgdmlydHVhbGx5IG1hcHBlZCA0R2lCK3JlZHpvbmUgZm9yIHRoaXMgbWVt
b3J5LiBPbmx5IHRoZSB1c2VyLWFsbG9jYXRlZCBwYWdlcyBhcmUgYWRkcmVzc2FibGUsIGNvbnRp
Z3VvdXNseSBpbiByYW5nZSBbMCwgY3VycmVudF0sCiAgICAgICAgIC8vIGFuZCBldmVyeXRoaW5n
IGFib3ZlIGlzIG1hcHBlZCBQUk9UX05PTkUuIFdlIGRvbid0IG5lZWQgdG8gcGVyZm9ybSBhbnkg
ZXhwbGljaXQgYm91bmRzIGNoZWNrIGluIHRoZSA0R2lCIHJhbmdlIGJlY2F1c2UgV2ViQXNzZW1i
bHkgcmVnaXN0ZXIKQEAgLTE0NjAsNiArMTQ3Niw3IEBAIGlubGluZSBWYWx1ZSogQjNJUkdlbmVy
YXRvcjo6ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoVmFsdWUqIHBvaW50ZXIsIHVpbnQzMl90
CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAg
cG9pbnRlciA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgWkV4dDMy
LCBvcmlnaW4oKSwgcG9pbnRlcik7CkBAIC0xNDkzLDcgKzE1MTAsNyBAQCBpbmxpbmUgdWludDMy
X3Qgc2l6ZU9mTG9hZE9wKExvYWRPcFR5cGUgb3ApCiAKIGlubGluZSBCMzo6S2luZCBCM0lSR2Vu
ZXJhdG9yOjptZW1vcnlLaW5kKEIzOjpPcGNvZGUgbWVtb3J5T3ApCiB7Ci0gICAgaWYgKG1fbW9k
ZSA9PSBNZW1vcnlNb2RlOjpTaWduYWxpbmcgfHwgbV9pbmZvLm1lbW9yeS5pc1NoYXJlZCgpKQor
ICAgIGlmICh1c2VTaWduYWxpbmdNZW1vcnkoKSB8fCBtX2luZm8ubWVtb3J5LmlzU2hhcmVkKCkp
CiAgICAgICAgIHJldHVybiB0cmFwcGluZyhtZW1vcnlPcCk7CiAgICAgcmV0dXJuIG1lbW9yeU9w
OwogfQpAQCAtMjk3Nyw3ICsyOTk0LDcgQEAgYXV0byBCM0lSR2VuZXJhdG9yOjphZGRDYWxsKHVp
bnQzMl90IGZ1bmN0aW9uSW5kZXgsIGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlLAogICAgICAg
ICAgICAgICAgIHBhdGNocG9pbnQtPmVmZmVjdHMucmVhZHNQaW5uZWQgPSB0cnVlOwogCiAgICAg
ICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBjbG9iYmVyIHRoZSBzaXplIHJlZ2lzdGVyIHNpbmNl
IHRoZSBMTEludCBhbHdheXMgYm91bmRzIGNoZWNrcwotICAgICAgICAgICAgICAgIGlmIChtX21v
ZGUgPT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQoKSkK
KyAgICAgICAgICAgICAgICBpZiAodXNlU2lnbmFsaW5nTWVtb3J5KCkgfHwgbV9pbmZvLm1lbW9y
eS5pc1NoYXJlZCgpKQogICAgICAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyTGF0
ZShSZWdpc3RlclNldCB7IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCkuYm91bmRzQ2hlY2tpbmdT
aXplUmVnaXN0ZXIgfSk7CiAgICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9y
KFt0aGlzLCBoYW5kbGUsIHVubGlua2VkV2FzbVRvV2FzbUNhbGxzLCBmdW5jdGlvbkluZGV4XSAo
Q0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IEIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBh
cmFtcykgewogICAgICAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNh
Z2UgYWxsb3dTY3JhdGNoKGppdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtQmluZGluZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQmlu
ZGluZy5jcHAKaW5kZXggZWRjNzBiZWEwOGFmLi4zMjcyODk5NDlhZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5kaW5nLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtQmluZGluZy5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBF
TkFCTEUoV0VCQVNTRU1CTFkpCiAKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRl
ICJEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UuaCIKICNpbmNsdWRlICJMaW5rQnVm
ZmVyLmgiCiAjaW5jbHVkZSAiV2FzbUNhbGxpbmdDb252ZW50aW9uLmgiCiAjaW5jbHVkZSAiV2Fz
bUluc3RhbmNlLmgiCkBAIC00MSwxOCArNDIsMjEgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJD
b2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9XYXNtKHVuc2kK
IHsKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgdW5pcXVpZnkgdGhlIHN0dWJzIGJhc2VkIG9uIHNp
Z25hdHVyZSArIGluZGV4IHRvIHNlZSBpZiB0aGlzIHNhdmVzIG1lbW9yeS4KICAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MTU3Ci0KLSAgICBjb25zdCBQ
aW5uZWRSZWdpc3RlckluZm8mIHBpbm5lZFJlZ3MgPSBQaW5uZWRSZWdpc3RlckluZm86OmdldCgp
OwogICAgIEpJVCBqaXQ7CiAKICAgICBHUFJSZWcgc2NyYXRjaCA9IHdhc21DYWxsaW5nQ29udmVu
dGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMF07CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAg
ICBHUFJSZWcgYmFzZU1lbW9yeSA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2Ny
YXRjaEdQUnNbMV07CisgICAgR1BSUmVnIHNpemVSZWdBc1NjcmF0Y2ggPSB3YXNtQ2FsbGluZ0Nv
bnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzJdOworI2Vsc2UKKyAgICBjb25zdCBQaW5u
ZWRSZWdpc3RlckluZm8mIHBpbm5lZFJlZ3MgPSBQaW5uZWRSZWdpc3RlckluZm86OmdldCgpOwog
ICAgIEdQUlJlZyBiYXNlTWVtb3J5ID0gcGlubmVkUmVncy5iYXNlTWVtb3J5UG9pbnRlcjsKLSAg
ICBBU1NFUlQoYmFzZU1lbW9yeSAhPSBHUFJSZWc6OkludmFsaWRHUFJSZWcpOwotICAgIEFTU0VS
VChiYXNlTWVtb3J5ICE9IHNjcmF0Y2gpOwotICAgIEFTU0VSVChwaW5uZWRSZWdzLmJvdW5kc0No
ZWNraW5nU2l6ZVJlZ2lzdGVyICE9IGJhc2VNZW1vcnkpOwotICAgIEFTU0VSVChwaW5uZWRSZWdz
LmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyICE9IHNjcmF0Y2gpOwogICAgIEdQUlJlZyBzaXpl
UmVnQXNTY3JhdGNoID0gcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlcjsKKyNl
bmRpZgorICAgIEFTU0VSVChiYXNlTWVtb3J5ICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7CiAg
ICAgQVNTRVJUKHNpemVSZWdBc1NjcmF0Y2ggIT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsKKyAg
ICBBU1NFUlQoc2NyYXRjaCAhPSBHUFJSZWc6OkludmFsaWRHUFJSZWcpOworICAgIEFTU0VSVChu
b092ZXJsYXAoc2NyYXRjaCwgYmFzZU1lbW9yeSwgc2l6ZVJlZ0FzU2NyYXRjaCkpOwogCiAgICAg
Ly8gQjMncyBjYWxsIGNvZGVnZW4gZW5zdXJlcyB0aGF0IHRoZSBKU0NlbGwgaXMgYSBXZWJBc3Nl
bWJseUZ1bmN0aW9uLgogICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZShzaXplUmVnQXNT
Y3JhdGNoKTsgLy8gT2xkIEluc3RhbmNlKgpAQCAtNjUsNiArNjksNyBAQCBFeHBlY3RlZDxNYWNy
b0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21U
b1dhc20odW5zaQogICAgIGppdC5sb2FkUHRyKEpJVDo6QWRkcmVzcyhzaXplUmVnQXNTY3JhdGNo
LCBJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRTdGFja0xpbWl0KCkpLCBzaXplUmVnQXNTY3JhdGNo
KTsKICAgICBqaXQuc3RvcmVQdHIoc2l6ZVJlZ0FzU2NyYXRjaCwgSklUOjpBZGRyZXNzKGJhc2VN
ZW1vcnksIEluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZFN0YWNrTGltaXQoKSkpOwogCisjaWYgIUNQ
VShBUk0pIC8vIEFSTSBoYXMgbm8gcGlubmVkIHJlZ2lzdGVycyBmb3IgV2FzbSBNZW1vcnksIHNv
IG5vIG5lZWQgdG8gc2V0IHRoZW0gdXAKICAgICAvLyBGSVhNRSB0aGUgZm9sbG93aW5nIGNvZGUg
YXNzdW1lcyB0aGF0IGFsbCBXYXNtOjpJbnN0YW5jZSBoYXZlIHRoZSBzYW1lIHBpbm5lZCByZWdp
c3RlcnMuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI5NTIKICAg
ICAvLyBTZXQgdXAgdGhlIGNhbGxlZSdzIGJhc2VNZW1vcnkgcmVnaXN0ZXIgYXMgd2VsbCBhcyB0
aGUgbWVtb3J5IHNpemUgcmVnaXN0ZXJzLgogICAgIHsKQEAgLTcyLDYgKzc3LDcgQEAgRXhwZWN0
ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJl
PiB3YXNtVG9XYXNtKHVuc2kKICAgICAgICAgaml0LmxvYWRQdHIoSklUOjpBZGRyZXNzKGJhc2VN
ZW1vcnksIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9y
eSk7IC8vIFdhc206Ok1lbW9yeTo6VGFnZ2VkQXJyYXlTdG9yYWdlUHRyPHZvaWQ+ICh2b2lkKiku
CiAgICAgICAgIGppdC5jYWdlQ29uZGl0aW9uYWxseUFuZFVudGFnKEdpZ2FjYWdlOjpQcmltaXRp
dmUsIGJhc2VNZW1vcnksIHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIsIHdh
c21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMV0pOwogICAgIH0KKyNl
bmRpZgogCiAgICAgLy8gVGFpbCBjYWxsIGludG8gdGhlIGNhbGxlZSBXZWJBc3NlbWJseSBmdW5j
dGlvbi4KICAgICBqaXQubG9hZFB0cihKSVQ6OkFkZHJlc3Moc2NyYXRjaCksIHNjcmF0Y2gpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcAppbmRleCBhMzIxYzUyZjE1
ZWMuLjMyMDJmNTQ4MGNhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUNhbGxlZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxl
ZS5jcHAKQEAgLTEzMSw2ICsxMzEsOCBAQCBSZWdpc3RlckF0T2Zmc2V0TGlzdCogTExJbnRDYWxs
ZWU6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKQogICAgICAgICByZWdpc3RlcnMuc2V0KEdQUkluZm86
OnJlZ0NTMik7IC8vIFBCCiAjZWxpZiBDUFUoQVJNNjQpIHx8IENQVShSSVNDVjY0KQogICAgICAg
ICByZWdpc3RlcnMuc2V0KEdQUkluZm86OnJlZ0NTNyk7IC8vIFBCCisjZWxpZiBDUFUoQVJNKQor
ICAgICAgICByZWdpc3RlcnMuc2V0KEdQUkluZm86OnJlZ0NTMSk7IC8vIFBCCiAjZWxzZQogI2Vy
cm9yIFVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZS4KICNlbmRpZgpAQCAtMTU4LDYgKzE2MCw3IEBA
IGNvbnN0IFdhc21JbnN0cnVjdGlvbiogTExJbnRDYWxsZWU6Om91dE9mTGluZUp1bXBUYXJnZXQo
Y29uc3QgV2FzbUluc3RydWN0aW9uKiBwCiAgICAgcmV0dXJuIG1faW5zdHJ1Y3Rpb25zLT5hdChv
ZmZzZXQgKyB0YXJnZXQpLnB0cigpOwogfQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklU
KQogdm9pZCBPcHRpbWl6aW5nSklUQ2FsbGVlOjpsaW5rRXhjZXB0aW9uSGFuZGxlcnMoVmVjdG9y
PFVubGlua2VkSGFuZGxlckluZm8+IHVubGlua2VkRXhjZXB0aW9uSGFuZGxlcnMsIFZlY3RvcjxD
b2RlTG9jYXRpb25MYWJlbDxFeGNlcHRpb25IYW5kbGVyUHRyVGFnPj4gZXhjZXB0aW9uSGFuZGxl
ckxvY2F0aW9ucykKIHsKICAgICBzaXplX3QgY291bnQgPSB1bmxpbmtlZEV4Y2VwdGlvbkhhbmRs
ZXJzLnNpemUoKTsKQEAgLTE4NCw3ICsxODcsNyBAQCBjb25zdCBTdGFja01hcCYgT3B0aW1pemlu
Z0pJVENhbGxlZTo6c3RhY2ttYXAoQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZUluZGV4KSBjb25zdAog
ICAgIFJFTEVBU0VfQVNTRVJUKGl0ZXIgIT0gbV9zdGFja21hcHMuZW5kKCkpOwogICAgIHJldHVy
biBpdGVyLT52YWx1ZTsKIH0KLQorI2VuZGlmCiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNt
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWVHcm91
cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlR3JvdXAuY3BwCmlu
ZGV4IDFlYTQ1Y2E0YTZlOS4uNTE5ZDIwOTZhZDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlR3JvdXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21DYWxsZWVHcm91cC5jcHAKQEAgLTE2MCwxNyArMTYwLDIxIEBAIHZvaWQg
Q2FsbGVlR3JvdXA6OmNvbXBpbGVBc3luYyhDb250ZXh0KiBjb250ZXh0LCBBc3luY0NvbXBpbGF0
aW9uQ2FsbGJhY2smJiB0YXNrCiAKIGJvb2wgQ2FsbGVlR3JvdXA6OmlzU2FmZVRvUnVuKE1lbW9y
eU1vZGUgbWVtb3J5TW9kZSkKIHsKKyAgICBVTlVTRURfUEFSQU0obWVtb3J5TW9kZSk7CisKICAg
ICBpZiAoIXJ1bm5hYmxlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHN3aXRjaCAo
bV9tb2RlKSB7CiAgICAgY2FzZSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZzoKICAg
ICAgICAgcmV0dXJuIHRydWU7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1P
UlkpCiAgICAgY2FzZSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmc6CiAgICAgICAgIC8vIENv
ZGUgYmVpbmcgaW4gU2lnbmFsaW5nIG1vZGUgbWVhbnMgdGhhdCBpdCBwZXJmb3JtcyBubyBib3Vu
ZHMgY2hlY2tzLgogICAgICAgICAvLyBJdHMgbWVtb3J5LCBldmVuIGlmIGVtcHR5LCBhYnNvbHV0
ZWx5IG11c3QgYWxzbyBiZSBpbiBTaWduYWxpbmcgbW9kZQogICAgICAgICAvLyBiZWNhdXNlIHRo
ZSBwYWdlIHByb3RlY3Rpb24gZGV0ZWN0cyBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLgogICAgICAg
ICByZXR1cm4gbWVtb3J5TW9kZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmc7CisjZW5k
aWYKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGlu
Z0NvbnZlbnRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdD
b252ZW50aW9uLmNwcAppbmRleCAyMDNjODQzYWU4ZTYuLjQ3MjYyMjBmYTcxMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3Bw
CkBAIC00MCw3ICs0MCw3IEBAIGNvbnN0IEpTQ2FsbGluZ0NvbnZlbnRpb24mIGpzQ2FsbGluZ0Nv
bnZlbnRpb24oKQogICAgICAgICBSZWdpc3RlclNldCBjYWxsZXJTYXZlUmVnaXN0ZXJzID0gUmVn
aXN0ZXJTZXQ6OmFsbFJlZ2lzdGVycygpOwogICAgICAgICBjYWxsZXJTYXZlUmVnaXN0ZXJzLmV4
Y2x1ZGUoUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKSk7CiAKLSAgICAgICAgc3Rh
dGljSlNDYWxsaW5nQ29udmVudGlvbi5jb25zdHJ1Y3QoVmVjdG9yPFJlZz4oKSwgVmVjdG9yPFJl
Zz4oKSwgUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKSwgV1RGTW92ZShjYWxsZXJT
YXZlUmVnaXN0ZXJzKSk7CisgICAgICAgIHN0YXRpY0pTQ2FsbGluZ0NvbnZlbnRpb24uY29uc3Ry
dWN0KFZlY3RvcjxKU1ZhbHVlUmVncz4oKSwgVmVjdG9yPEZQUlJlZz4oKSwgUmVnaXN0ZXJTZXQ6
OmNhbGxlZVNhdmVSZWdpc3RlcnMoKSwgV1RGTW92ZShjYWxsZXJTYXZlUmVnaXN0ZXJzKSk7CiAg
ICAgfSk7CiAKICAgICByZXR1cm4gc3RhdGljSlNDYWxsaW5nQ29udmVudGlvbjsKQEAgLTUxLDMx
ICs1MSw1MCBAQCBjb25zdCBXYXNtQ2FsbGluZ0NvbnZlbnRpb24mIHdhc21DYWxsaW5nQ29udmVu
dGlvbigpCiAgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxXYXNtQ2FsbGluZ0NvbnZlbnRp
b24+IHN0YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbjsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2Zs
YWcgc3RhdGljV2FzbUNhbGxpbmdDb252ZW50aW9uRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShz
dGF0aWNXYXNtQ2FsbGluZ0NvbnZlbnRpb25GbGFnLCBbXSAoKSB7Ci0gICAgICAgIFZlY3RvcjxS
ZWc+IGdwckFyZ3VtZW50UmVnaXN0ZXJzKEdQUkluZm86Om51bWJlck9mQXJndW1lbnRSZWdpc3Rl
cnMpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgR1BSSW5mbzo6bnVtYmVyT2ZB
cmd1bWVudFJlZ2lzdGVyczsgKytpKQotICAgICAgICAgICAgZ3ByQXJndW1lbnRSZWdpc3RlcnNb
aV0gPSBHUFJJbmZvOjp0b0FyZ3VtZW50UmVnaXN0ZXIoaSk7Ci0KLSAgICAgICAgVmVjdG9yPFJl
Zz4gZnByQXJndW1lbnRSZWdpc3RlcnMoRlBSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVy
cyk7CisjaWYgVVNFKEpTVkFMVUU2NCkgLy8gT25lIHZhbHVlIHBlciBHUFIKKyAgICAgICAgY29u
c3RleHByIHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRKU1JzID0gR1BSSW5mbzo6bnVtYmVyT2ZB
cmd1bWVudFJlZ2lzdGVyczsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpIC8vIE9uZSB2YWx1ZSBw
ZXIgY29uc2VjdXRpdmUgR1BSIHBhaXIKKyAgICAgICAgY29uc3RleHByIHVuc2lnbmVkIG51bWJl
ck9mQXJndW1lbnRKU1JzID0gR1BSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyAvIDI7
CisjZW5kaWYKKyAgICAgICAgVmVjdG9yPEpTVmFsdWVSZWdzPiBqc3JBcmd1bWVudFJlZ2lzdGVy
cyhudW1iZXJPZkFyZ3VtZW50SlNScyk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBudW1iZXJPZkFyZ3VtZW50SlNSczsgKytpKQorI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAg
ICAgICBqc3JBcmd1bWVudFJlZ2lzdGVyc1tpXSA9IEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6dG9B
cmd1bWVudFJlZ2lzdGVyKGkpIH07CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAg
ICAganNyQXJndW1lbnRSZWdpc3RlcnNbaV0gPSBKU1ZhbHVlUmVncyB7IEdQUkluZm86OnRvQXJn
dW1lbnRSZWdpc3RlcigyICogaSArIDEpLCBHUFJJbmZvOjp0b0FyZ3VtZW50UmVnaXN0ZXIoMiAq
IGkpIH07CisjZW5kaWYKKworICAgICAgICBWZWN0b3I8RlBSUmVnPiBmcHJBcmd1bWVudFJlZ2lz
dGVycyhGUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzKTsKICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IEZQUkluZm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnM7ICsr
aSkKICAgICAgICAgICAgIGZwckFyZ3VtZW50UmVnaXN0ZXJzW2ldID0gRlBSSW5mbzo6dG9Bcmd1
bWVudFJlZ2lzdGVyKGkpOwogCiAgICAgICAgIFJlZ2lzdGVyU2V0IHNjcmF0Y2ggPSBSZWdpc3Rl
clNldDo6YWxsR1BScygpOwotICAgICAgICBzY3JhdGNoLmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6OmNh
bGxlZVNhdmVSZWdpc3RlcnMoKSk7CisgICAgICAgIHNjcmF0Y2guZXhjbHVkZShSZWdpc3RlclNl
dDo6dm1DYWxsZWVTYXZlUmVnaXN0ZXJzKCkpOwogICAgICAgICBzY3JhdGNoLmV4Y2x1ZGUoUmVn
aXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycygpKTsKICAgICAgICAgc2NyYXRjaC5leGNs
dWRlKFJlZ2lzdGVyU2V0OjpyZXNlcnZlZEhhcmR3YXJlUmVnaXN0ZXJzKCkpOwogICAgICAgICBz
Y3JhdGNoLmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6OnN0YWNrUmVnaXN0ZXJzKCkpOwotICAgICAgICBm
b3IgKFJlZyByZWcgOiBncHJBcmd1bWVudFJlZ2lzdGVycykKLSAgICAgICAgICAgIHNjcmF0Y2gu
Y2xlYXIocmVnKTsKKyAgICAgICAgZm9yIChKU1ZhbHVlUmVncyBqc3IgOiBqc3JBcmd1bWVudFJl
Z2lzdGVycykgeworICAgICAgICAgICAgc2NyYXRjaC5jbGVhcihqc3IucGF5bG9hZEdQUigpKTsK
KyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgc2NyYXRjaC5jbGVhcihqc3IudGFn
R1BSKCkpOworI2VuZGlmCisgICAgICAgIH0KIAogICAgICAgICBWZWN0b3I8R1BSUmVnPiBzY3Jh
dGNoR1BSczsKICAgICAgICAgZm9yIChSZWcgcmVnIDogc2NyYXRjaCkKICAgICAgICAgICAgIHNj
cmF0Y2hHUFJzLmFwcGVuZChyZWcuZ3ByKCkpOworCisgICAgICAgIC8vIE5lZWQgYXQgbGVhc3Qg
b25lIEpTVmFsdWUgYW5kIGFuIGFkZGl0aW9uYWwgR1BSCisjaWYgVVNFKEpTVkFMVUU2NCkKICAg
ICAgICAgUkVMRUFTRV9BU1NFUlQoc2NyYXRjaEdQUnMuc2l6ZSgpID49IDIpOworI2VsaWYgVVNF
KEpTVkFMVUUzMl82NCkKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoc2NyYXRjaEdQUnMuc2l6ZSgp
ID49IDMpOworI2VuZGlmCiAKICAgICAgICAgUmVnaXN0ZXJTZXQgY2FsbGVyU2F2ZVJlZ2lzdGVy
cyA9IFJlZ2lzdGVyU2V0OjphbGxSZWdpc3RlcnMoKTsKICAgICAgICAgY2FsbGVyU2F2ZVJlZ2lz
dGVycy5leGNsdWRlKFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCkpOwogCi0gICAg
ICAgIHN0YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbi5jb25zdHJ1Y3QoV1RGTW92ZShncHJBcmd1
bWVudFJlZ2lzdGVycyksIFdURk1vdmUoZnByQXJndW1lbnRSZWdpc3RlcnMpLCBXVEZNb3ZlKHNj
cmF0Y2hHUFJzKSwgUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKSwgV1RGTW92ZShj
YWxsZXJTYXZlUmVnaXN0ZXJzKSk7CisgICAgICAgIHN0YXRpY1dhc21DYWxsaW5nQ29udmVudGlv
bi5jb25zdHJ1Y3QoV1RGTW92ZShqc3JBcmd1bWVudFJlZ2lzdGVycyksIFdURk1vdmUoZnByQXJn
dW1lbnRSZWdpc3RlcnMpLCBXVEZNb3ZlKHNjcmF0Y2hHUFJzKSwgUmVnaXN0ZXJTZXQ6OmNhbGxl
ZVNhdmVSZWdpc3RlcnMoKSwgV1RGTW92ZShjYWxsZXJTYXZlUmVnaXN0ZXJzKSk7CiAgICAgfSk7
CiAKICAgICByZXR1cm4gc3RhdGljV2FzbUNhbGxpbmdDb252ZW50aW9uOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uaAppbmRleCA1OTFl
ZWIyN2IwMTYuLjE5Y2YwMmFhMzMwMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKQEAgLTU3LDggKzU3LDEzIEBAIHN0cnVjdCBD
YWxsSW5mb3JtYXRpb24gewogICAgIHsKICAgICAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlc3VsdFJl
Z2lzdGVyczsKICAgICAgICAgZm9yIChWYWx1ZUxvY2F0aW9uIGxvYyA6IHJlc3VsdHMpIHsKLSAg
ICAgICAgICAgIGlmIChsb2MuaXNSZWcoKSkKLSAgICAgICAgICAgICAgICB1c2VkUmVzdWx0UmVn
aXN0ZXJzLnNldChsb2MucmVnKCkpOworICAgICAgICAgICAgaWYgKGxvYy5pc0dQUigpKSB7Cisg
ICAgICAgICAgICAgICAgdXNlZFJlc3VsdFJlZ2lzdGVycy5zZXQobG9jLmpzcigpLnBheWxvYWRH
UFIoKSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICB1c2VkUmVzdWx0
UmVnaXN0ZXJzLnNldChsb2MuanNyKCkudGFnR1BSKCkpOworI2VuZGlmCisgICAgICAgICAgICB9
IGVsc2UgaWYgKGxvYy5pc0ZQUigpKQorICAgICAgICAgICAgICAgIHVzZWRSZXN1bHRSZWdpc3Rl
cnMuc2V0KGxvYy5mcHIoKSk7CiAgICAgICAgIH0KIAogICAgICAgICBSZWdpc3RlckF0T2Zmc2V0
TGlzdCBzYXZlZFJlZ3ModXNlZFJlc3VsdFJlZ2lzdGVycywgUmVnaXN0ZXJBdE9mZnNldExpc3Q6
Olplcm9CYXNlZCk7CkBAIC03Nyw4ICs4Miw4IEBAIGNsYXNzIFdhc21DYWxsaW5nQ29udmVudGlv
biB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBoZWFkZXJTaXplSW5C
eXRlcyA9IENhbGxGcmFtZTo6aGVhZGVyU2l6ZUluUmVnaXN0ZXJzICogc2l6ZW9mKFJlZ2lzdGVy
KTsKIAotICAgIFdhc21DYWxsaW5nQ29udmVudGlvbihWZWN0b3I8UmVnPiYmIGdwcnMsIFZlY3Rv
cjxSZWc+JiYgZnBycywgVmVjdG9yPEdQUlJlZz4mJiBzY3JhdGNoZXMsIFJlZ2lzdGVyU2V0JiYg
Y2FsbGVlU2F2ZXMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVyU2F2ZXMpCi0gICAgICAgIDogZ3ByQXJn
cyhXVEZNb3ZlKGdwcnMpKQorICAgIFdhc21DYWxsaW5nQ29udmVudGlvbihWZWN0b3I8SlNWYWx1
ZVJlZ3M+JiYganNycywgVmVjdG9yPEZQUlJlZz4mJiBmcHJzLCBWZWN0b3I8R1BSUmVnPiYmIHNj
cmF0Y2hlcywgUmVnaXN0ZXJTZXQmJiBjYWxsZWVTYXZlcywgUmVnaXN0ZXJTZXQmJiBjYWxsZXJT
YXZlcykKKyAgICAgICAgOiBqc3JBcmdzKFdURk1vdmUoanNycykpCiAgICAgICAgICwgZnByQXJn
cyhXVEZNb3ZlKGZwcnMpKQogICAgICAgICAsIHByb2xvZ3VlU2NyYXRjaEdQUnMoV1RGTW92ZShz
Y3JhdGNoZXMpKQogICAgICAgICAsIGNhbGxlZVNhdmVSZWdpc3RlcnMoV1RGTW92ZShjYWxsZWVT
YXZlcykpCkBAIC04OCwxMCArOTMsMTEgQEAgcHVibGljOgogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKFdhc21DYWxsaW5nQ29udmVudGlvbik7CiAKIHByaXZhdGU6Ci0gICAgQXJndW1lbnRMb2Nh
dGlvbiBtYXJzaGFsbExvY2F0aW9uSW1wbChDYWxsUm9sZSByb2xlLCBjb25zdCBWZWN0b3I8UmVn
PiYgcmVnQXJncywgc2l6ZV90JiBjb3VudCwgc2l6ZV90JiBzdGFja09mZnNldCkgY29uc3QKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBSZWdUeXBlPgorICAgIEFyZ3VtZW50TG9jYXRpb24gbWFyc2hh
bGxMb2NhdGlvbkltcGwoQ2FsbFJvbGUgcm9sZSwgY29uc3QgVmVjdG9yPFJlZ1R5cGU+JiByZWdB
cmdzLCBzaXplX3QmIGNvdW50LCBzaXplX3QmIHN0YWNrT2Zmc2V0KSBjb25zdAogICAgIHsKICAg
ICAgICAgaWYgKGNvdW50IDwgcmVnQXJncy5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm4gQXJn
dW1lbnRMb2NhdGlvbjo6cmVnKHJlZ0FyZ3NbY291bnQrK10pOworICAgICAgICAgICAgcmV0dXJu
IEFyZ3VtZW50TG9jYXRpb24geyByZWdBcmdzW2NvdW50KytdIH07CiAKICAgICAgICAgY291bnQr
KzsKICAgICAgICAgQXJndW1lbnRMb2NhdGlvbiByZXN1bHQgPSByb2xlID09IENhbGxSb2xlOjpD
YWxsZXIgPyBBcmd1bWVudExvY2F0aW9uOjpzdGFja0FyZ3VtZW50KHN0YWNrT2Zmc2V0KSA6IEFy
Z3VtZW50TG9jYXRpb246OnN0YWNrKHN0YWNrT2Zmc2V0KTsKQEAgLTEwOSw3ICsxMTUsNyBAQCBw
cml2YXRlOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgIGNhc2Ug
VHlwZUtpbmQ6OlJlZjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKLSAgICAgICAg
ICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBncHJBcmdzLCBncEFyZ3VtZW50
Q291bnQsIHN0YWNrT2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9u
SW1wbChyb2xlLCBqc3JBcmdzLCBncEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KTsKICAgICAg
ICAgY2FzZSBUeXBlS2luZDo6RjMyOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6CiAgICAg
ICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwgZnByQXJncywgZnBBcmd1
bWVudENvdW50LCBzdGFja09mZnNldCk7CkBAIC0xNTMsOCArMTU5LDggQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIGNvbnN0IFZlY3RvcjxSZWc+IGdwckFy
Z3M7Ci0gICAgY29uc3QgVmVjdG9yPFJlZz4gZnByQXJnczsKKyAgICBjb25zdCBWZWN0b3I8SlNW
YWx1ZVJlZ3M+IGpzckFyZ3M7CisgICAgY29uc3QgVmVjdG9yPEZQUlJlZz4gZnByQXJnczsKICAg
ICBjb25zdCBWZWN0b3I8R1BSUmVnPiBwcm9sb2d1ZVNjcmF0Y2hHUFJzOwogICAgIGNvbnN0IFJl
Z2lzdGVyU2V0IGNhbGxlZVNhdmVSZWdpc3RlcnM7CiAgICAgY29uc3QgUmVnaXN0ZXJTZXQgY2Fs
bGVyU2F2ZVJlZ2lzdGVyczsKQEAgLTE2OSw4ICsxNzUsOCBAQCBwdWJsaWM6CiAgICAgLy8gV2Fz
bTo6Q29udGV4dConcyBpbnN0YW5jZS4KICAgICBzdGF0aWMgY29uc3RleHByIHB0cmRpZmZfdCBp
bnN0YW5jZVN0YWNrT2Zmc2V0ID0gQ2FsbEZyYW1lU2xvdDo6dGhpc0FyZ3VtZW50ICogc2l6ZW9m
KEVuY29kZWRKU1ZhbHVlKTsKIAotICAgIEpTQ2FsbGluZ0NvbnZlbnRpb24oVmVjdG9yPFJlZz4m
JiBncHJzLCBWZWN0b3I8UmVnPiYmIGZwcnMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVlU2F2ZXMsIFJl
Z2lzdGVyU2V0JiYgY2FsbGVyU2F2ZXMpCi0gICAgICAgIDogZ3ByQXJncyhXVEZNb3ZlKGdwcnMp
KQorICAgIEpTQ2FsbGluZ0NvbnZlbnRpb24oVmVjdG9yPEpTVmFsdWVSZWdzPiYmIGdwcnMsIFZl
Y3RvcjxGUFJSZWc+JiYgZnBycywgUmVnaXN0ZXJTZXQmJiBjYWxsZWVTYXZlcywgUmVnaXN0ZXJT
ZXQmJiBjYWxsZXJTYXZlcykKKyAgICAgICAgOiBqc3JBcmdzKFdURk1vdmUoZ3BycykpCiAgICAg
ICAgICwgZnByQXJncyhXVEZNb3ZlKGZwcnMpKQogICAgICAgICAsIGNhbGxlZVNhdmVSZWdpc3Rl
cnMoV1RGTW92ZShjYWxsZWVTYXZlcykpCiAgICAgICAgICwgY2FsbGVyU2F2ZVJlZ2lzdGVycyhX
VEZNb3ZlKGNhbGxlclNhdmVzKSkKQEAgLTE3OCwxMCArMTg0LDExIEBAIHB1YmxpYzoKIAogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKEpTQ2FsbGluZ0NvbnZlbnRpb24pOwogcHJpdmF0ZToKLSAg
ICBBcmd1bWVudExvY2F0aW9uIG1hcnNoYWxsTG9jYXRpb25JbXBsKENhbGxSb2xlIHJvbGUsIGNv
bnN0IFZlY3RvcjxSZWc+JiByZWdBcmdzLCBzaXplX3QmIGNvdW50LCBzaXplX3QmIHN0YWNrT2Zm
c2V0KSBjb25zdAorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBSZWdUeXBlPgorICAgIEFyZ3VtZW50
TG9jYXRpb24gbWFyc2hhbGxMb2NhdGlvbkltcGwoQ2FsbFJvbGUgcm9sZSwgY29uc3QgVmVjdG9y
PFJlZ1R5cGU+JiByZWdBcmdzLCBzaXplX3QmIGNvdW50LCBzaXplX3QmIHN0YWNrT2Zmc2V0KSBj
b25zdAogICAgIHsKICAgICAgICAgaWYgKGNvdW50IDwgcmVnQXJncy5zaXplKCkpCi0gICAgICAg
ICAgICByZXR1cm4gQXJndW1lbnRMb2NhdGlvbjo6cmVnKHJlZ0FyZ3NbY291bnQrK10pOworICAg
ICAgICAgICAgcmV0dXJuIEFyZ3VtZW50TG9jYXRpb24geyByZWdBcmdzW2NvdW50KytdIH07CiAK
ICAgICAgICAgY291bnQrKzsKICAgICAgICAgQXJndW1lbnRMb2NhdGlvbiByZXN1bHQgPSByb2xl
ID09IENhbGxSb2xlOjpDYWxsZXIgPyBBcmd1bWVudExvY2F0aW9uOjpzdGFja0FyZ3VtZW50KHN0
YWNrT2Zmc2V0KSA6IEFyZ3VtZW50TG9jYXRpb246OnN0YWNrKHN0YWNrT2Zmc2V0KTsKQEAgLTE5
OSw3ICsyMDYsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6
CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVm
TnVsbDoKLSAgICAgICAgICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBncHJB
cmdzLCBncEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybiBt
YXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBqc3JBcmdzLCBncEFyZ3VtZW50Q291bnQsIHN0YWNr
T2Zmc2V0KTsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgogICAgICAgICBjYXNlIFR5cGVL
aW5kOjpGNjQ6CiAgICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwg
ZnByQXJncywgZnBBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CkBAIC0yMjIsMTIgKzIyOSwx
MiBAQCBwdWJsaWM6CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2lnbmF0dXJlLmFy
Z3VtZW50Q291bnQoKTsgKytpKQogICAgICAgICAgICAgcGFyYW1zLmFwcGVuZChtYXJzaGFsbExv
Y2F0aW9uKHJvbGUsIHNpZ25hdHVyZS5hcmd1bWVudChpKSwgZ3BBcmd1bWVudENvdW50LCBmcEFy
Z3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KSk7CiAKLSAgICAgICAgVmVjdG9yPEFyZ3VtZW50TG9j
YXRpb24sIDE+IHJlc3VsdHMgeyBBcmd1bWVudExvY2F0aW9uOjpyZWcoR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIpIH07CisgICAgICAgIFZlY3RvcjxBcmd1bWVudExvY2F0aW9uLCAxPiByZXN1bHRz
IHsgQXJndW1lbnRMb2NhdGlvbiB7IEpTUkluZm86OnJldHVyblZhbHVlSlNSIH0gfTsKICAgICAg
ICAgcmV0dXJuIENhbGxJbmZvcm1hdGlvbihXVEZNb3ZlKHBhcmFtcyksIFdURk1vdmUocmVzdWx0
cyksIHN0YWNrT2Zmc2V0KTsKICAgICB9CiAKLSAgICBjb25zdCBWZWN0b3I8UmVnPiBncHJBcmdz
OwotICAgIGNvbnN0IFZlY3RvcjxSZWc+IGZwckFyZ3M7CisgICAgY29uc3QgVmVjdG9yPEpTVmFs
dWVSZWdzPiBqc3JBcmdzOworICAgIGNvbnN0IFZlY3RvcjxGUFJSZWc+IGZwckFyZ3M7CiAgICAg
Y29uc3QgUmVnaXN0ZXJTZXQgY2FsbGVlU2F2ZVJlZ2lzdGVyczsKICAgICBjb25zdCBSZWdpc3Rl
clNldCBjYWxsZXJTYXZlUmVnaXN0ZXJzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21Gb3JtYXQuaAppbmRleCA5NzA2M2FhYjllNmIuLmNkZTlhM2NhNTY5YiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaApAQCAtNDQ0LDcgKzQ0NCw5IEBAIHN0cnVjdCBF
bnRyeXBvaW50IHsKIHN0cnVjdCBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICBXVEZfTUFLRV9TVFJV
Q1RfRkFTVF9BTExPQ0FURUQ7CiAgICAgVmVjdG9yPENvZGVMb2NhdGlvbkRhdGFMYWJlbFB0cjxX
YXNtRW50cnlQdHJUYWc+PiBjYWxsZWVNb3ZlTG9jYXRpb25zOworI2lmIEVOQUJMRShXRUJBU1NF
TUJMWV9CM0pJVCkKICAgICBTdGFja01hcHMgc3RhY2ttYXBzOworI2VuZGlmCiAgICAgVmVjdG9y
PFVubGlua2VkSGFuZGxlckluZm8+IGV4Y2VwdGlvbkhhbmRsZXJzOwogICAgIEVudHJ5cG9pbnQg
ZW50cnlwb2ludDsKICAgICB1bnNpZ25lZCBvc3JFbnRyeVNjcmF0Y2hCdWZmZXJTaXplIHsgMCB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1l
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5jcHAKaW5k
ZXggNDEyMGFlNmE5NDk0Li5mYjIxYzkyYmY4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcApAQCAtMzAsMTYgKzMwLDIzIEBAIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKIEluZGV4T3JOYW1lOjpJbmRleE9yTmFtZShJbmRl
eCBpbmRleCwgc3RkOjpwYWlyPGNvbnN0IE5hbWUqLCBSZWZQdHI8TmFtZVNlY3Rpb24+PiYmIG5h
bWUpCiB7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihtX2lu
ZGV4TmFtZS5pbmRleCkgPT0gc2l6ZW9mKG1faW5kZXhOYW1lLm5hbWUpLCAiYml0LXRhZ2dpbmcg
ZGVwZW5kcyBvbiBzaXplcyBiZWluZyBlcXVhbCIpOwotCi0gICAgaWYgKChpbmRleCAmIGFsbFRh
Z3MpIHx8IChiaXR3aXNlX2Nhc3Q8SW5kZXg+KG5hbWUuZmlyc3QpICYgYWxsVGFncykpCi0gICAg
ICAgICp0aGlzID0gSW5kZXhPck5hbWUoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgaWYgKG5hbWUu
Zmlyc3QpCi0gICAgICAgICAgICBtX2luZGV4TmFtZS5uYW1lID0gbmFtZS5maXJzdDsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgbV9pbmRleE5hbWUuaW5kZXggPSBpbmRleFRhZyB8IGluZGV4
OworICAgIEFTU0VSVCghKGluZGV4ICYgYWxsVGFncykpOworICAgIEFTU0VSVCghKGJpdHdpc2Vf
Y2FzdDxJbmRleD4obmFtZS5maXJzdCkgJiBhbGxUYWdzKSk7CisgICAgaWYgKG5hbWUuZmlyc3Qp
CisgICAgICAgIG1faW5kZXhOYW1lLm5hbWUgPSBuYW1lLmZpcnN0OworICAgIGVsc2UKKyAgICAg
ICAgbV9pbmRleE5hbWUuaW5kZXggPSBpbmRleFRhZyB8IGluZGV4OworI2VsaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICBpZiAobmFtZS5maXJzdCkgeworICAgICAgICBtX2luZGV4TmFtZS5uYW1l
ID0gbmFtZS5maXJzdDsKKyAgICAgICAgbV9raW5kID0gS2luZDo6TmFtZTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBtX2luZGV4TmFtZS5pbmRleCA9IGluZGV4OworICAgICAgICBtX2tpbmQgPSBL
aW5kOjpJbmRleDsKICAgICB9CisjZW5kaWYKICAgICBtX25hbWVTZWN0aW9uID0gV1RGTW92ZShu
YW1lLnNlY29uZCk7CiB9CiAKQEAgLTQ5LDggKzU2LDggQEAgU3RyaW5nIG1ha2VTdHJpbmcoY29u
c3QgSW5kZXhPck5hbWUmIGlvbikKICAgICAgICAgcmV0dXJuICJ3YXNtLXN0dWIiX3M7CiAgICAg
Y29uc3QgU3RyaW5nIG1vZHVsZU5hbWUgPSBpb24ubmFtZVNlY3Rpb24oKS0+bW9kdWxlTmFtZS5z
aXplKCkgPyBTdHJpbmcoaW9uLm5hbWVTZWN0aW9uKCktPm1vZHVsZU5hbWUuZGF0YSgpLCBpb24u
bmFtZVNlY3Rpb24oKS0+bW9kdWxlTmFtZS5zaXplKCkpIDogU3RyaW5nKGlvbi5uYW1lU2VjdGlv
bigpLT5tb2R1bGVIYXNoLmRhdGEoKSwgaW9uLm5hbWVTZWN0aW9uKCktPm1vZHVsZUhhc2guc2l6
ZSgpKTsKICAgICBpZiAoaW9uLmlzSW5kZXgoKSkKLSAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmco
bW9kdWxlTmFtZSwgIi53YXNtLWZ1bmN0aW9uWyIsIFN0cmluZzo6bnVtYmVyKGlvbi5tX2luZGV4
TmFtZS5pbmRleCAmIH5JbmRleE9yTmFtZTo6aW5kZXhUYWcpLCAnXScpOwotICAgIHJldHVybiBt
YWtlU3RyaW5nKG1vZHVsZU5hbWUsICIud2FzbS1mdW5jdGlvblsiLCBTdHJpbmcoaW9uLm1faW5k
ZXhOYW1lLm5hbWUtPmRhdGEoKSwgaW9uLm1faW5kZXhOYW1lLm5hbWUtPnNpemUoKSksICddJyk7
CisgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKG1vZHVsZU5hbWUsICIud2FzbS1mdW5jdGlvblsi
LCBTdHJpbmc6Om51bWJlcihpb24uaW5kZXgoKSksICddJyk7CisgICAgcmV0dXJuIG1ha2VTdHJp
bmcobW9kdWxlTmFtZSwgIi53YXNtLWZ1bmN0aW9uWyIsIFN0cmluZyhpb24ubmFtZSgpLT5kYXRh
KCksIGlvbi5uYW1lKCktPnNpemUoKSksICddJyk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlND
OjpXYXNtCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhP
ck5hbWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5oCmlu
ZGV4IDVlZWVmYzg4YWY3Ni4uMmQ5MDMwMTE4ZjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaApAQCAtNDAsMTQgKzQwLDY3IEBAIHN0cnVjdCBOYW1l
U2VjdGlvbjsKIHN0cnVjdCBJbmRleE9yTmFtZSB7CiAgICAgdHlwZWRlZiBzaXplX3QgSW5kZXg7
CiAKLSAgICBJbmRleE9yTmFtZSgpIHsgbV9pbmRleE5hbWUuaW5kZXggPSBlbXB0eVRhZzsgfQor
cHJpdmF0ZToKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGVudW0gY2xhc3MgS2luZCA6IHVp
bnQ4X3QgeworICAgICAgICBFbXB0eSwKKyAgICAgICAgSW5kZXgsCisgICAgICAgIE5hbWUKKyAg
ICB9OworI2VuZGlmCitwdWJsaWM6CisKKyAgICBJbmRleE9yTmFtZSgpCisgICAgeworI2lmIFVT
RShKU1ZBTFVFNjQpCisgICAgICAgIG1faW5kZXhOYW1lLmluZGV4ID0gZW1wdHlUYWc7CisjZWxp
ZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBtX2tpbmQgPSBLaW5kOjpFbXB0eTsKKyNlbmRp
ZgorICAgIH0KKwogICAgIEluZGV4T3JOYW1lKEluZGV4LCBzdGQ6OnBhaXI8Y29uc3QgTmFtZSos
IFJlZlB0cjxOYW1lU2VjdGlvbj4+JiYpOwotICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0
dXJuIGJpdHdpc2VfY2FzdDxJbmRleD4obV9pbmRleE5hbWUpICYgZW1wdHlUYWc7IH0KLSAgICBi
b29sIGlzSW5kZXgoKSBjb25zdCB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8SW5kZXg+KG1faW5kZXhO
YW1lKSAmIGluZGV4VGFnOyB9Ci0gICAgYm9vbCBpc05hbWUoKSBjb25zdCB7IHJldHVybiAhKGlz
RW1wdHkoKSB8fCBpc05hbWUoKSk7IH0KLSAgICBOYW1lU2VjdGlvbiogbmFtZVNlY3Rpb24oKSBj
b25zdCB7IHJldHVybiBtX25hbWVTZWN0aW9uLmdldCgpOyB9CiAKLSAgICBmcmllbmQgU3RyaW5n
IG1ha2VTdHJpbmcoY29uc3QgSW5kZXhPck5hbWUmKTsKKyAgICBib29sIGlzRW1wdHkoKSBjb25z
dAorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0
PEluZGV4PihtX2luZGV4TmFtZSkgJiBlbXB0eVRhZzsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQp
CisgICAgICAgIHJldHVybiBtX2tpbmQgPT0gS2luZDo6RW1wdHk7CisjZW5kaWYKKyAgICB9CisK
KyAgICBib29sIGlzSW5kZXgoKSBjb25zdAorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAg
ICAgICByZXR1cm4gYml0d2lzZV9jYXN0PEluZGV4PihtX2luZGV4TmFtZSkgJiBpbmRleFRhZzsK
KyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJldHVybiBtX2tpbmQgPT0gS2luZDo6
SW5kZXg7CisjZW5kaWYKKyAgICB9CisKKyAgICBib29sIGlzTmFtZSgpIGNvbnN0CisgICAgewor
ICAgICAgICByZXR1cm4gIShpc0VtcHR5KCkgfHwgaXNJbmRleCgpKTsKKyAgICB9CisKKyAgICBJ
bmRleCBpbmRleCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNJbmRleCgpKTsKKyNp
ZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICByZXR1cm4gbV9pbmRleE5hbWUuaW5kZXggJiB+aW5k
ZXhUYWc7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4gbV9pbmRleE5h
bWUuaW5kZXg7CisjZW5kaWYKKyAgICB9CisKKyAgICBjb25zdCBOYW1lKiBuYW1lKCkgY29uc3QK
KyAgICB7CisgICAgICAgIEFTU0VSVChpc05hbWUoKSk7CisgICAgICAgIHJldHVybiBtX2luZGV4
TmFtZS5uYW1lOworICAgIH0KKworICAgIE5hbWVTZWN0aW9uKiBuYW1lU2VjdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fbmFtZVNlY3Rpb24uZ2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICB1bmlvbiB7
CkBAIC01NiwxMCArMTA5LDE1IEBAIHByaXZhdGU6CiAgICAgfSBtX2luZGV4TmFtZTsKICAgICBS
ZWZQdHI8TmFtZVNlY3Rpb24+IG1fbmFtZVNlY3Rpb247CiAKKyNpZiBVU0UoSlNWQUxVRTY0KQog
ICAgIC8vIFVzZSB0aGUgdG9wIGJpdHMgYXMgdGFncy4gTmVpdGhlciBwb2ludGVycyBub3IgdGhl
IGZ1bmN0aW9uIGluZGV4IHNwYWNlIHNob3VsZCB1c2UgdGhlbS4KICAgICBzdGF0aWMgY29uc3Rl
eHByIEluZGV4IGluZGV4VGFnID0gMXVsbCA8PCAoQ0hBUl9CSVQgKiBzaXplb2YoSW5kZXgpIC0g
MSk7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBJbmRleCBlbXB0eVRhZyA9IDF1bGwgPDwgKENIQVJf
QklUICogc2l6ZW9mKEluZGV4KSAtIDIpOwogICAgIHN0YXRpYyBjb25zdGV4cHIgSW5kZXggYWxs
VGFncyA9IGluZGV4VGFnIHwgZW1wdHlUYWc7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAg
IC8vIFVzZSBhbiBleHBsaWNpdCB0YWcgYXMgcG9pbnRlcnMgbWlnaHQgaGF2ZSBoaWdoIGJpdHMg
c2V0CisgICAgS2luZCBtX2tpbmQ7CisjZW5kaWYKIH07CiAKIFN0cmluZyBtYWtlU3RyaW5nKGNv
bnN0IEluZGV4T3JOYW1lJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtSW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5j
ZS5oCmluZGV4IDcxMGI4NzZlMjI0NS4uZGE2MGQ1NjY1ODE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaApAQCAtMTA3LDcgKzEwNyw4IEBAIHB1YmxpYzoKICAg
ICB7CiAgICAgICAgIGlmIChtX21lbW9yeSAhPSBudWxscHRyKSB7CiAgICAgICAgICAgICBtX2Nh
Y2hlZE1lbW9yeSA9IENhZ2VkUHRyPEdpZ2FjYWdlOjpQcmltaXRpdmUsIHZvaWQsIHRhZ0NhZ2Vk
UHRyPihtZW1vcnkoKS0+bWVtb3J5KCksIG1lbW9yeSgpLT5ib3VuZHNDaGVja2luZ1NpemUoKSk7
Ci0gICAgICAgICAgICBtX2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSA9IG1lbW9yeSgpLT5ib3Vu
ZHNDaGVja2luZ1NpemUoKTsKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgdXNlZCBieSB0aGUgbm9u
LXNpZ25hbGluZyBiYXNlZCBib3VuZCBjaGVja2luZywgc28gdXNlIHRoZSBhY3R1YWwgc2l6ZSBv
ZiB0aGUgbWVtb3J5LgorICAgICAgICAgICAgbV9jYWNoZWRCb3VuZHNDaGVja2luZ1NpemUgPSBt
ZW1vcnkoKS0+c2l6ZSgpOwogICAgICAgICAgICAgQVNTRVJUKG1lbW9yeSgpLT5tZW1vcnkoKSA9
PSBjYWNoZWRNZW1vcnkoKSk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcAppbmRleCAxMzU2OTBkYTJkNjAu
LmI2YjRhNDY4YWE2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUxMSW50R2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
TExJbnRHZW5lcmF0b3IuY3BwCkBAIC0zMzgsNyArMzM4LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIHJldHVybiBtX25vcm1hbGl6ZWRBcmd1bWVudHNbaW5kZXhdOwogCiAgICAgICAgIGNvbnN0
IGF1dG8mIGNhbGxpbmdDb252ZW50aW9uID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCk7Ci0gICAg
ICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZ3ByQXJncy5z
aXplKCk7CisgICAgICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRp
b24uanNyQXJncy5zaXplKCk7CiAgICAgICAgIGNvbnN0IHVpbnQzMl90IGZwckNvdW50ID0gY2Fs
bGluZ0NvbnZlbnRpb24uZnByQXJncy5zaXplKCk7CiAgICAgICAgIHJldHVybiB2aXJ0dWFsUmVn
aXN0ZXJGb3JMb2NhbChpbmRleCAtIG1fY29kZUJsb2NrLT5tX251bUFyZ3VtZW50cyArIGdwckNv
dW50ICsgZnByQ291bnQgKyBudW1iZXJPZkxMSW50Q2FsbGVlU2F2ZVJlZ2lzdGVycyk7CiAgICAg
fQpAQCAtNTkyLDcgKzU5Miw3IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlv
bkZvckNhbGxlcihjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSkgLT4gTExJCiAgICAgY29uc3Qg
YXV0byBpbml0aWFsU3RhY2tTaXplID0gbV9zdGFja1NpemU7CiAKICAgICBjb25zdCBhdXRvJiBj
YWxsaW5nQ29udmVudGlvbiA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpOwotICAgIGNvbnN0IHVp
bnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZ3ByQXJncy5zaXplKCk7CisgICAg
Y29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5qc3JBcmdzLnNpemUo
KTsKICAgICBjb25zdCB1aW50MzJfdCBmcHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmZwckFy
Z3Muc2l6ZSgpOwogCiAgICAgdWludDMyX3Qgc3RhY2tDb3VudCA9IDA7CkBAIC03MzQsNyArNzM0
LDcgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVlKGNvbnN0
IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAtPiBWZWMKICAgICBtX3Jlc3VsdHMucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShzaWduYXR1cmUucmV0dXJuQ291bnQoKSk7CiAKICAgICBjb25zdCBhdXRvJiBj
YWxsaW5nQ29udmVudGlvbiA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpOwotICAgIGNvbnN0IHVp
bnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZ3ByQXJncy5zaXplKCk7CisgICAg
Y29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5qc3JBcmdzLnNpemUo
KTsKICAgICBjb25zdCB1aW50MzJfdCBmcHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmZwckFy
Z3Muc2l6ZSgpOwogCiAgICAgdWludDMyX3QgZ3BySW5kZXggPSAwOwpAQCAtNzgwLDcgKzc4MCw3
IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmFkZEFyZ3VtZW50cyhjb25zdCBTaWduYXR1cmUmIHNp
Z25hdHVyZSkgLT4gUGFydGlhbFJlc3VsdAogICAgIG1fbm9ybWFsaXplZEFyZ3VtZW50cy5yZXNp
emUobV9jb2RlQmxvY2stPm1fbnVtQXJndW1lbnRzKTsKIAogICAgIGNvbnN0IGF1dG8mIGNhbGxp
bmdDb252ZW50aW9uID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCk7Ci0gICAgY29uc3QgdWludDMy
X3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5ncHJBcmdzLnNpemUoKTsKKyAgICBjb25z
dCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmpzckFyZ3Muc2l6ZSgpOwog
ICAgIGNvbnN0IHVpbnQzMl90IGZwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZnByQXJncy5z
aXplKCk7CiAgICAgY29uc3QgdWludDMyX3QgbWF4R1BSSW5kZXggPSBncHJDb3VudDsKICAgICBj
b25zdCB1aW50MzJfdCBtYXhGUFJJbmRleCA9IGdwckNvdW50ICsgZnByQ291bnQ7CkBAIC05NjEs
NyArOTYxLDcgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6YWRkTG9vcChCbG9ja1NpZ25hdHVyZSBz
aWduYXR1cmUsIFN0YWNrJiBlbmNsb3NpbmdTdGFjaywgQ28KICAgICAgICAgb3NyRW50cnlEYXRh
LmFwcGVuZChtX25vcm1hbGl6ZWRBcmd1bWVudHNbaV0pOwogCiAgICAgY29uc3QgYXV0byYgY2Fs
bGluZ0NvbnZlbnRpb24gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKTsKLSAgICBjb25zdCB1aW50
MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgIGNv
bnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uanNyQXJncy5zaXplKCk7
CiAgICAgY29uc3QgdWludDMyX3QgZnByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5mcHJBcmdz
LnNpemUoKTsKICAgICBmb3IgKHVpbnQzMl90IGkgPSBncHJDb3VudCArIGZwckNvdW50ICsgbnVt
YmVyT2ZMTEludENhbGxlZVNhdmVSZWdpc3RlcnM7IGkgPCBtX2NvZGVCbG9jay0+bV9udW1WYXJz
OyBpKyspCiAgICAgICAgIG9zckVudHJ5RGF0YS5hcHBlbmQodmlydHVhbFJlZ2lzdGVyRm9yTG9j
YWwoaSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50
UGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcApp
bmRleCBjMjQ5ZjkyY2YwNWIuLjc1ZjczNmQ2YmE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUxMSW50UGxhbi5jcHAKQEAgLTExOSwxMiArMTE5LDE1IEBAIHZvaWQgTExJ
bnRQbGFuOjpkaWRDb21wbGV0ZUNvbXBpbGF0aW9uKCkKICAgICAgICAgICAgIGVudHJ5cG9pbnRz
W2ldID0gaml0LmxhYmVsKCk7CiAjaWYgQ1BVKFg4Nl82NCkKICAgICAgICAgICAgIENDYWxsSGVs
cGVyczo6QWRkcmVzcyBjYWxsZWVTbG90KENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0
ZXIsIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lz
dGVyKSkgLSBzaXplb2YoQ1BVUmVnaXN0ZXIpKTsKLSNlbGlmIENQVShBUk02NCkgfHwgQ1BVKFJJ
U0NWNjQpCisjZWxpZiBDUFUoQVJNNjQpIHx8IENQVShSSVNDVjY0KSB8fCBDUFUoQVJNKQogICAg
ICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGNhbGxlZVNsb3QoQ0NhbGxIZWxwZXJzOjpz
dGFja1BvaW50ZXJSZWdpc3RlciwgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlICogc3RhdGljX2Nhc3Q8
aW50PihzaXplb2YoUmVnaXN0ZXIpKSAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSk7CiAjZWxz
ZQogI2Vycm9yIFVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZS4KICNlbmRpZgotICAgICAgICAgICAg
aml0LnN0b3JlUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihDYWxsZWVCaXRzOjpib3hX
YXNtKG1fY2FsbGVlc1ZlY3RvcltpXS5wdHIoKSkpLCBjYWxsZWVTbG90KTsKKyAgICAgICAgICAg
IGppdC5zdG9yZVB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoQ2FsbGVlQml0czo6Ym94
V2FzbShtX2NhbGxlZXNWZWN0b3JbaV0ucHRyKCkpKSwgY2FsbGVlU2xvdC53aXRoT2Zmc2V0KFBh
eWxvYWRPZmZzZXQpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgaml0LnN0
b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6V2FzbVRhZyksIGNhbGxl
ZVNsb3Qud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgogICAgICAgICAgICAganVtcHNb
aV0gPSBqaXQuanVtcCgpOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU1lbW9yeS5jcHAKaW5kZXggNDQwNzU5NTJmMDA3Li5iZjVjMWVjNDYyYmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3BwCkBAIC05OCwxMSArOTgsOSBAQCBj
bGFzcyBNZW1vcnlNYW5hZ2VyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShNZW1vcnlNYW5hZ2VyKTsKIHB1YmxpYzoKLSAgICBNZW1vcnlN
YW5hZ2VyKCkKLSAgICAgICAgOiBtX21heEZhc3RNZW1vcnlDb3VudChPcHRpb25zOjptYXhOdW1X
ZWJBc3NlbWJseUZhc3RNZW1vcmllcygpKQotICAgIHsKLSAgICB9Ci0gICAgCisgICAgTWVtb3J5
TWFuYWdlcigpID0gZGVmYXVsdDsKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdf
TUVNT1JZKQogICAgIE1lbW9yeVJlc3VsdCB0cnlBbGxvY2F0ZUZhc3RNZW1vcnkoKQogICAgIHsK
ICAgICAgICAgTWVtb3J5UmVzdWx0IHJlc3VsdCA9IFsmXSB7CkBAIC0xMjUsNyArMTIzLDcgQEAg
cHVibGljOgogICAgICAgICAKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9Ci0gICAgCisK
ICAgICB2b2lkIGZyZWVGYXN0TWVtb3J5KHZvaWQqIGJhc2VQdHIpCiAgICAgewogICAgICAgICB7
CkBAIC0xMzYsNiArMTM0LDcgQEAgcHVibGljOgogICAgICAgICAKICAgICAgICAgZGF0YUxvZ0xu
SWYoT3B0aW9uczo6bG9nV2ViQXNzZW1ibHlNZW1vcnkoKSwgIkZyZWVkIHZpcnR1YWw7IHN0YXRl
OiAiLCAqdGhpcyk7CiAgICAgfQorI2VuZGlmCiAKICAgICBNZW1vcnlSZXN1bHQgdHJ5QWxsb2Nh
dGVHcm93YWJsZUJvdW5kc0NoZWNraW5nTWVtb3J5KHNpemVfdCBtYXBwZWRDYXBhY2l0eSkKICAg
ICB7CkBAIC0xNzAsMTEgKzE2OSwxMyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICAvLyBOT1RF
OiBUaGlzIGNhbiBiZSBjYWxsZWQgZnJvbSBhIHNpZ25hbCBoYW5kbGVyLCBidXQgb25seSBhZnRl
ciB3ZSBwcm92ZWQgdGhhdCB3ZSdyZSBpbiBKSVQgY29kZSBvciBXYXNtTExJbnQgY29kZS4KICAg
ICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9T
SUdOQUxJTkdfTUVNT1JZKQogICAgICAgICBmb3IgKHZvaWQqIG1lbW9yeSA6IG1fZmFzdE1lbW9y
aWVzKSB7CiAgICAgICAgICAgICBjaGFyKiBzdGFydCA9IHN0YXRpY19jYXN0PGNoYXIqPihtZW1v
cnkpOwogICAgICAgICAgICAgaWYgKHN0YXJ0IDw9IGFkZHJlc3MgJiYgYWRkcmVzcyA8PSBzdGFy
dCArIE1lbW9yeTo6ZmFzdE1hcHBlZEJ5dGVzKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICB1aW50cHRyX3QgYWRkcmVzc1ZhbHVlID0g
Yml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oYWRkcmVzcyk7CiAgICAgICAgIGF1dG8gaXRlcmF0b3Ig
PSBzdGQ6OnVwcGVyX2JvdW5kKG1fZ3Jvd2FibGVCb3VuZHNDaGVja2luZ01lbW9yaWVzLmJlZ2lu
KCksIG1fZ3Jvd2FibGVCb3VuZHNDaGVja2luZ01lbW9yaWVzLmVuZCgpLCBzdGQ6Om1ha2VfcGFp
cihhZGRyZXNzVmFsdWUsIDApLAogICAgICAgICAgICAgW10oc3RkOjpwYWlyPHVpbnRwdHJfdCwg
c2l6ZV90PiBhLCBzdGQ6OnBhaXI8dWludHB0cl90LCBzaXplX3Q+IGIpIHsKQEAgLTIyNywxMyAr
MjI4LDE5IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkg
Y29uc3QKICAgICB7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAg
ICAgICAgIG91dC5wcmludCgiZmFzdCBtZW1vcmllcyA9ICAiLCBtX2Zhc3RNZW1vcmllcy5zaXpl
KCksICIvIiwgbV9tYXhGYXN0TWVtb3J5Q291bnQsICIsIGJ5dGVzID0gIiwgbV9waHlzaWNhbEJ5
dGVzLCAiLyIsIG1lbW9yeUxpbWl0KCkpOworI2Vsc2UKKyAgICAgICAgb3V0LnByaW50KCJmYXN0
IG1lbW9yaWVzID0gTi5BLiwgYnl0ZXMgPSAiLCBtX3BoeXNpY2FsQnl0ZXMsICIvIiwgbWVtb3J5
TGltaXQoKSk7CisjZW5kaWYKICAgICB9CiAgICAgCiBwcml2YXRlOgogICAgIExvY2sgbV9sb2Nr
OwotICAgIHVuc2lnbmVkIG1fbWF4RmFzdE1lbW9yeUNvdW50IHsgMCB9OworI2lmIEVOQUJMRShX
RUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQorICAgIHVuc2lnbmVkIG1fbWF4RmFzdE1lbW9y
eUNvdW50IHsgT3B0aW9uczo6bWF4TnVtV2ViQXNzZW1ibHlGYXN0TWVtb3JpZXMoKSB9OwogICAg
IFZlY3Rvcjx2b2lkKj4gbV9mYXN0TWVtb3JpZXM7CisjZW5kaWYKICAgICBTdGRTZXQ8c3RkOjpw
YWlyPHVpbnRwdHJfdCwgc2l6ZV90Pj4gbV9ncm93YWJsZUJvdW5kc0NoZWNraW5nTWVtb3JpZXM7
CiAgICAgc2l6ZV90IG1fcGh5c2ljYWxCeXRlcyB7IDAgfTsKIH07CkBAIC0zMDAsNiArMzA3LDcg
QEAgTWVtb3J5SGFuZGxlOjp+TWVtb3J5SGFuZGxlKCkKICAgICAgICAgdm9pZCogbWVtb3J5ID0g
dGhpcy0+bWVtb3J5KCk7CiAgICAgICAgIG1lbW9yeU1hbmFnZXIoKS5mcmVlUGh5c2ljYWxCeXRl
cyhtX3NpemUpOwogICAgICAgICBzd2l0Y2ggKG1fbW9kZSkgeworI2lmIEVOQUJMRShXRUJBU1NF
TUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGlu
ZzoKICAgICAgICAgICAgIGlmIChtcHJvdGVjdChtZW1vcnksIE1lbW9yeTo6ZmFzdE1hcHBlZEJ5
dGVzKCksIFBST1RfUkVBRCB8IFBST1RfV1JJVEUpKSB7CiAgICAgICAgICAgICAgICAgZGF0YUxv
ZygibXByb3RlY3QgZmFpbGVkOiAiLCBzYWZlU3RyZXJyb3IoZXJybm8pLmRhdGEoKSwgIlxuIik7
CkBAIC0zMDcsNiArMzE1LDcgQEAgTWVtb3J5SGFuZGxlOjp+TWVtb3J5SGFuZGxlKCkKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIG1lbW9yeU1hbmFnZXIoKS5mcmVlRmFzdE1lbW9yeShtZW1v
cnkpOwogICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICAgICAgY2FzZSBNZW1vcnlNb2Rl
OjpCb3VuZHNDaGVja2luZzogewogICAgICAgICAgICAgc3dpdGNoIChtX3NoYXJpbmdNb2RlKSB7
CiAgICAgICAgICAgICBjYXNlIE1lbW9yeVNoYXJpbmdNb2RlOjpEZWZhdWx0OgpAQCAtMzk1LDYg
KzQwNCw3IEBAIFJlZlB0cjxNZW1vcnk+IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBpbml0
aWFsLCBQYWdlQ291bnQgbWF4aW11bSwgTWVtb3J5U2hhCiAgICAgaWYgKCFkb25lKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05B
TElOR19NRU1PUlkpCiAgICAgY2hhciogZmFzdE1lbW9yeSA9IG51bGxwdHI7CiAgICAgaWYgKE9w
dGlvbnM6OnVzZVdlYkFzc2VtYmx5RmFzdE1lbW9yeSgpKSB7CiAgICAgICAgIHRyeUFsbG9jYXRl
KApAQCAtNDEzLDcgKzQyMyw4IEBAIFJlZlB0cjxNZW1vcnk+IE1lbW9yeTo6dHJ5Q3JlYXRlKFBh
Z2VDb3VudCBpbml0aWFsLCBQYWdlQ291bnQgbWF4aW11bSwgTWVtb3J5U2hhCiAKICAgICAgICAg
cmV0dXJuIE1lbW9yeTo6Y3JlYXRlKGFkb3B0UmVmKCpuZXcgTWVtb3J5SGFuZGxlKGZhc3RNZW1v
cnksIGluaXRpYWxCeXRlcywgTWVtb3J5OjpmYXN0TWFwcGVkQnl0ZXMoKSwgaW5pdGlhbCwgbWF4
aW11bSwgc2hhcmluZ01vZGUsIE1lbW9yeU1vZGU6OlNpZ25hbGluZykpLCBXVEZNb3ZlKG5vdGlm
eU1lbW9yeVByZXNzdXJlKSwgV1RGTW92ZShzeW5jVHJ5VG9SZWNsYWltTWVtb3J5KSwgV1RGTW92
ZShncm93U3VjY2Vzc0NhbGxiYWNrKSk7CiAgICAgfQotICAgIAorI2VuZGlmCisKICAgICBpZiAo
VU5MSUtFTFkoT3B0aW9uczo6Y3Jhc2hJZldlYkFzc2VtYmx5Q2FudEZhc3RNZW1vcnkoKSkpCiAg
ICAgICAgIHdlYkFzc2VtYmx5Q291bGRudEdldEZhc3RNZW1vcnkoKTsKIApAQCAtNDU2LDYgKzQ2
Nyw3IEBAIFJlZlB0cjxNZW1vcnk+IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBpbml0aWFs
LCBQYWdlQ291bnQgbWF4aW11bSwgTWVtb3J5U2hhCiAKIE1lbW9yeTo6fk1lbW9yeSgpID0gZGVm
YXVsdDsKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogc2l6ZV90
IE1lbW9yeTo6ZmFzdE1hcHBlZFJlZHpvbmVCeXRlcygpCiB7CiAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PHNpemVfdD4oUGFnZUNvdW50OjpwYWdlU2l6ZSkgKiBPcHRpb25zOjp3ZWJBc3NlbWJseUZh
c3RNZW1vcnlSZWR6b25lUGFnZXMoKTsKQEAgLTQ2Niw2ICs0NzgsNyBAQCBzaXplX3QgTWVtb3J5
OjpmYXN0TWFwcGVkQnl0ZXMoKQogICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKHVpbnQ2NF90KSA9
PSBzaXplb2Yoc2l6ZV90KSwgIldlIHJlbHkgb24gYWxsb3dpbmcgdGhlIG1heGltdW0gc2l6ZSBv
ZiBNZW1vcnkgd2UgbWFwIHRvIGJlIDJeMzIgKyByZWR6b25lIHdoaWNoIGlzIGxhcmdlciB0aGFu
IGZpdHMgaW4gYSAzMi1iaXQgaW50ZWdlciB0aGF0IHdlJ2QgcGFzcyB0byBtcHJvdGVjdCBpZiB0
aGlzIGRpZG4ndCBob2xkLiIpOwogICAgIHJldHVybiAoc3RhdGljX2Nhc3Q8c2l6ZV90PigxKSA8
PCAzMikgKyBmYXN0TWFwcGVkUmVkem9uZUJ5dGVzKCk7CiB9CisjZW5kaWYKIAogYm9vbCBNZW1v
cnk6OmFkZHJlc3NJc0luR3Jvd2FibGVPckZhc3RNZW1vcnkodm9pZCogYWRkcmVzcykKIHsKQEAg
LTUyNCw4ICs1MzcsMTQgQEAgRXhwZWN0ZWQ8UGFnZUNvdW50LCBNZW1vcnk6Okdyb3dGYWlsUmVh
c29uPiBNZW1vcnk6Omdyb3dTaGFyZWQoUGFnZUNvdW50IGRlbHRhKQogICAgICAgICBtX2hhbmRs
ZS0+Z3Jvd1RvU2l6ZShkZXNpcmVkU2l6ZSk7CiAgICAgICAgIHJldHVybiBvbGRQYWdlQ291bnQ7
CiAgICAgfSgpKTsKLSAgICBpZiAocmVzdWx0KQorICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAg
bV9ncm93U3VjY2Vzc0NhbGxiYWNrKEdyb3dTdWNjZXNzVGFnLCBvbGRQYWdlQ291bnQsIG5ld1Bh
Z2VDb3VudCk7CisgICAgICAgIC8vIFVwZGF0ZSBjYWNoZSBmb3IgaW5zdGFuY2UKKyAgICAgICAg
Zm9yIChhdXRvJiBpbnN0YW5jZSA6IG1faW5zdGFuY2VzKSB7CisgICAgICAgICAgICBpZiAoaW5z
dGFuY2UuZ2V0KCkgIT0gbnVsbHB0cikKKyAgICAgICAgICAgICAgICBpbnN0YW5jZS5nZXQoKS0+
dXBkYXRlQ2FjaGVkTWVtb3J5KCk7CisgICAgICAgIH0KKyAgICB9CiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIApAQCAtNTg4LDYgKzYwNyw3IEBAIEV4cGVjdGVkPFBhZ2VDb3VudCwgTWVtb3J5OjpH
cm93RmFpbFJlYXNvbj4gTWVtb3J5Ojpncm93KFBhZ2VDb3VudCBkZWx0YSkKICAgICAgICAgQVNT
RVJUKG1lbW9yeSgpID09IG5ld01lbW9yeSk7CiAgICAgICAgIHJldHVybiBzdWNjZXNzKCk7CiAg
ICAgfQorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIGNhc2Ug
TWVtb3J5TW9kZTo6U2lnbmFsaW5nOiB7CiAgICAgICAgIHNpemVfdCBleHRyYUJ5dGVzID0gZGVz
aXJlZFNpemUgLSBzaXplKCk7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGV4dHJhQnl0ZXMpOwpA
QCAtNjEzLDYgKzYzMyw3IEBAIEV4cGVjdGVkPFBhZ2VDb3VudCwgTWVtb3J5OjpHcm93RmFpbFJl
YXNvbj4gTWVtb3J5Ojpncm93KFBhZ2VDb3VudCBkZWx0YSkKICAgICAgICAgbV9oYW5kbGUtPmdy
b3dUb1NpemUoZGVzaXJlZFNpemUpOwogICAgICAgICByZXR1cm4gc3VjY2VzcygpOwogICAgIH0K
KyNlbmRpZgogICAgIH0KIAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC02
NDYsNyArNjY3LDggQEAgYm9vbCBNZW1vcnk6OmNvcHkodWludDMyX3QgZHN0QWRkcmVzcywgdWlu
dDMyX3Qgc3JjQWRkcmVzcywgdWludDMyX3QgY291bnQpCiAgICAgICAgIHJldHVybiB0cnVlOwog
CiAgICAgdWludDhfdCogYmFzZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KG1lbW9yeSgp
KTsKLSAgICBtZW1jcHkoYmFzZSArIGRzdEFkZHJlc3MsIGJhc2UgKyBzcmNBZGRyZXNzLCBjb3Vu
dCk7CisgICAgLy8gU291cmNlIGFuZCBkZXN0aW5hdGlvbiBhcmVhcyBtaWdodCBvdmVybGFwLCBz
byB1c2luZyBtZW1tb3ZlLgorICAgIG1lbW1vdmUoYmFzZSArIGRzdEFkZHJlc3MsIGJhc2UgKyBz
cmNBZGRyZXNzLCBjb3VudCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21NZW1vcnkuaAppbmRleCBmNWM1OGZjZjk2ZjIuLjQ5Yzg1NTY2MWU0NCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaApAQCAtMTA2LDggKzEwNiwx
MCBAQCBwdWJsaWM6CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB+TWVtb3J5KCk7CiAKKyNpZiBF
TkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBzdGF0aWMgc2l6ZV90IGZh
c3RNYXBwZWRSZWR6b25lQnl0ZXMoKTsKICAgICBzdGF0aWMgc2l6ZV90IGZhc3RNYXBwZWRCeXRl
cygpOyAvLyBJbmNsdWRlcyByZWR6b25lLgorI2VuZGlmCiAgICAgc3RhdGljIGJvb2wgYWRkcmVz
c0lzSW5Hcm93YWJsZU9yRmFzdE1lbW9yeSh2b2lkKik7CiAKICAgICB2b2lkKiBtZW1vcnkoKSBj
b25zdCB7IHJldHVybiBtX2hhbmRsZS0+bWVtb3J5KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwCmluZGV4IDI2NTJkZTcy
ZWQ1Ni4uNjBmYWQ2M2VmMGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5jcHAKQEAgLTQxLDggKzQxLDE1IEBAIGNvbnN0IFBp
bm5lZFJlZ2lzdGVySW5mbyYgUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKQogICAgICAgICB1bnNp
Z25lZCBudW1iZXJPZlBpbm5lZFJlZ2lzdGVycyA9IDI7CiAgICAgICAgIGlmICghQ29udGV4dDo6
dXNlRmFzdFRMUygpKQogICAgICAgICAgICAgKytudW1iZXJPZlBpbm5lZFJlZ2lzdGVyczsKKyNp
ZiBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpCiAgICAgICAgIEdQUlJlZyBiYXNlTWVtb3J5UG9p
bnRlciA9IEdQUkluZm86OnJlZ0NTMzsKICAgICAgICAgR1BSUmVnIGJvdW5kc0NoZWNraW5nU2l6
ZVJlZ2lzdGVyID0gR1BSSW5mbzo6cmVnQ1M0OworI2VsaWYgQ1BVKEFSTSkKKyAgICAgICAgLy8g
Tm90IGVub3VnaCByZWdpc3RlcnMuIHJlZ0NTMCBpcyB0aGUgd2FzbSBpbnN0YW5jZSwgcmVnQ1Mx
IGlzIExMSW50IFBCCisgICAgICAgIG51bWJlck9mUGlubmVkUmVnaXN0ZXJzIC09IDI7CisgICAg
ICAgIEdQUlJlZyBiYXNlTWVtb3J5UG9pbnRlciA9IEludmFsaWRHUFJSZWc7CisgICAgICAgIEdQ
UlJlZyBib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlciA9IEludmFsaWRHUFJSZWc7CisjZW5kaWYK
ICAgICAgICAgR1BSUmVnIHdhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyID0gSW52YWxpZEdQUlJl
ZzsKICAgICAgICAgaWYgKCFDb250ZXh0Ojp1c2VGYXN0VExTKCkpCiAgICAgICAgICAgICB3YXNt
Q29udGV4dEluc3RhbmNlUG9pbnRlciA9IEdQUkluZm86OnJlZ0NTMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmgKaW5kZXggODU0ZmJh
NTRlMzM3Li4yOWZjYmRiNmQ0NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5oCkBAIC01MiwxMCArNTIsMTEgQEAgcHVibGljOgog
ICAgIFJlZ2lzdGVyU2V0IHRvU2F2ZShNZW1vcnlNb2RlIG1vZGUpIGNvbnN0CiAgICAgewogICAg
ICAgICBSZWdpc3RlclNldCByZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC5zZXQoYmFzZU1lbW9yeVBv
aW50ZXIpOworICAgICAgICBpZiAoYmFzZU1lbW9yeVBvaW50ZXIgIT0gSW52YWxpZEdQUlJlZykK
KyAgICAgICAgICAgIHJlc3VsdC5zZXQoYmFzZU1lbW9yeVBvaW50ZXIpOwogICAgICAgICBpZiAo
d2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXIgIT0gSW52YWxpZEdQUlJlZykKICAgICAgICAgICAg
IHJlc3VsdC5zZXQod2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXIpOwotICAgICAgICBpZiAobW9k
ZSAhPSBNZW1vcnlNb2RlOjpTaWduYWxpbmcpCisgICAgICAgIGlmIChtb2RlID09IE1lbW9yeU1v
ZGU6OkJvdW5kc0NoZWNraW5nICYmIGJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyICE9IEludmFs
aWRHUFJSZWcpCiAgICAgICAgICAgICByZXN1bHQuc2V0KGJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lz
dGVyKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5jcHAKaW5kZXggOWJlMDRkNzdiMDZiLi5mMzNiMDUy
NTE5ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlN
b2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5j
cHAKQEAgLTM3LDcgKzM3LDkgQEAgY29uc3QgY2hhciogbWFrZVN0cmluZyhNZW1vcnlNb2RlIG1v
ZGUpCiB7CiAgICAgc3dpdGNoIChtb2RlKSB7CiAgICAgY2FzZSBNZW1vcnlNb2RlOjpCb3VuZHND
aGVja2luZzogcmV0dXJuICJCb3VuZHNDaGVja2luZyI7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
X1NJR05BTElOR19NRU1PUlkpCiAgICAgY2FzZSBNZW1vcnlNb2RlOjpTaWduYWxpbmc6IHJldHVy
biAiU2lnbmFsaW5nIjsKKyNlbmRpZgogICAgIH0KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIHJldHVybiAiIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21NZW1vcnlNb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
TWVtb3J5TW9kZS5oCmluZGV4IDAyY2ZjZmU0OWY0Ny4uZDcxMWFmYWYzMDMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmgKQEAgLTM0LDcgKzM0LDkgQEAg
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIC8vIEZJWE1FOiBXZSBzaG91bGQgc3Vw
cG9ydCBvdGhlciBtb2Rlcy4gc2VlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTYyNjkzCiBlbnVtIGNsYXNzIE1lbW9yeU1vZGUgOiB1aW50OF90IHsKICAgICBCb3Vu
ZHNDaGVja2luZywKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAg
ICBTaWduYWxpbmcKKyNlbmRpZgogfTsKIAogc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgTnVtYmVy
T2ZNZW1vcnlNb2RlcyA9IDI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtT3Bjb2RlT3JpZ2luLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21P
cGNvZGVPcmlnaW4uY3BwCmluZGV4IGI2YzVjMjc1NTMxMS4uOWZjOTFiOWQ5YzU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcApAQCAtMjYs
NyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldhc21PcGNvZGVPcmln
aW4uaCIKIAotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlf
QjNKSVQpCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKQEAgLTM3LDQgKzM3
LDQgQEAgdm9pZCBPcGNvZGVPcmlnaW46OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIAog
fSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KIAotI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJM
WSkKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmgKaW5kZXggYTBkOGRmM2FlZjE5Li41YzRi
Njc2ZDVjNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNv
ZGVPcmlnaW4uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3Jp
Z2luLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQogCiAjaW5jbHVkZSAiQjNP
cmlnaW4uaCIKICNpbmNsdWRlICJXYXNtRm9ybWF0LmgiCkBAIC02MCw0ICs2MCw0IEBAIHByaXZh
dGU6CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCiAKLSNlbmRpZiAvLyBFTkFCTEUoV0VC
QVNTRU1CTFkpCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCmluZGV4IDUxNDY0NTcyZjFj
Zi4uMGNmMDM1NDY3YWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9w
ZXJhdGlvbnMuY3BwCkBAIC00NjgsNDMgKzQ2OCw0MyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uV2FzbVVud2luZCwgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lKSkKICAg
ICBBU1NFUlQoISF2bS5jYWxsRnJhbWVGb3JDYXRjaCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JNjQsIGludDY0X3QsIChDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgSlNWYWx1ZSB2KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252
ZXJ0VG9JNjQsIGludDY0X3QsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUg
dikpCiB7CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3Rh
bmNlKiBpbnN0ZWFkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDMyMDYKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAg
IE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgcmV0dXJu
IHYudG9CaWdJbnQ2NChjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKHYpLnRvQmlnSW50NjQoY2FsbEZyYW1lLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KHZtKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
b252ZXJ0VG9GNjQsIGRvdWJsZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0Y2NCwgZG91YmxlLCAo
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVuY29kZWRKU1ZhbHVlIHYpKQogewogICAgIC8vIEZJWE1F
OiBDb25zaWRlciBwYXNzaW5nIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGVhZC4KICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjA2CiAgICAgVk0m
IHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIHJldHVybiB2LnRvTnVtYmVyKGNhbGxGcmFt
ZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpOworICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUo
dikudG9OdW1iZXIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSk7CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIGludDMyX3QsIChD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIGludDMyX3QsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
RW5jb2RlZEpTVmFsdWUgdikpCiB7CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNX
ZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0ZWFkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMyMDYKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJl
Y2F0ZWRWTSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFt
ZSk7Ci0gICAgcmV0dXJuIHYudG9JbnQzMihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qo
dm0pKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKHYpLnRvSW50MzIoY2FsbEZyYW1lLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db252ZXJ0VG9GMzIsIGZsb2F0LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFs
dWUgdikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjMyLCBm
bG9hdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSB2KSkKIHsKICAgICAv
LyBGSVhNRTogQ29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RlYWQu
CiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIwNgog
ICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAgTmF0aXZlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
ZmxvYXQ+KHYudG9OdW1iZXIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSkpOwor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4oSlNWYWx1ZTo6ZGVjb2RlKHYpLnRvTnVtYmVy
KGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpKTsKIH0KIAotSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBpbnQ2NF90IHZhbHVlKSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29k
ZWRKU1ZhbHVlLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwgRW5j
b2RlZFdhc21WYWx1ZSB2YWx1ZSkpCiB7CiAgICAgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBqc0lu
c3RhbmNlID0gaW5zdGFuY2UtPm93bmVyPEpTV2ViQXNzZW1ibHlJbnN0YW5jZT4oKTsKICAgICBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNJbnN0YW5jZS0+Z2xvYmFsT2JqZWN0KCk7
CkBAIC01MTQsNyArNTE0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNv
bnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqIGMKIH0KIAogLy8gaHR0
cHM6Ly93ZWJhc3NlbWJseS5naXRodWIuaW8vbXVsdGktdmFsdWUvanMtYXBpL2luZGV4Lmh0bWwj
cnVuLWEtaG9zdC1mdW5jdGlvbgotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0
ZXJhdGVSZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0
YW5jZSwgY29uc3QgU2lnbmF0dXJlKiBzaWduYXR1cmUsIEpTVmFsdWUgcmVzdWx0LCB1aW50NjRf
dCogcmVnaXN0ZXJSZXN1bHRzLCB1aW50NjRfdCogY2FsbGVlRnJhbWVQb2ludGVyKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0cywgdm9pZCwgKENhbGxG
cmFtZSogY2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2UsIGNvbnN0IFNpZ25hdHVyZSogc2ln
bmF0dXJlLCBFbmNvZGVkSlNWYWx1ZSBlbmNSZXN1bHQsIHVpbnQ2NF90KiByZWdpc3RlclJlc3Vs
dHMsIHVpbnQ2NF90KiBjYWxsZWVGcmFtZVBvaW50ZXIpKQogewogICAgIC8vIEZJWE1FOiBDb25z
aWRlciBwYXNzaW5nIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGVhZC4KICAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjA2CkBAIC01MjksNiArNTI5
LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2
b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEkKIAogICAgIHVuc2lnbmVkIGl0ZXJhdGlvbkNv
dW50ID0gMDsKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBidWZmZXI7CisgICAgSlNWYWx1ZSBy
ZXN1bHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jUmVzdWx0KTsKICAgICBmb3JFYWNoSW5JdGVyYWJs
ZShnbG9iYWxPYmplY3QsIHJlc3VsdCwgWyZdIChWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1
ZSB2YWx1ZSkgLT4gdm9pZCB7CiAgICAgICAgIGlmIChidWZmZXIuc2l6ZSgpIDwgc2lnbmF0dXJl
LT5yZXR1cm5Db3VudCgpKQogICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCh2YWx1ZSk7CkBAIC01
NzgsOCArNTc5LDEwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRl
UmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJCiAgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAKICAgICAgICAgYXV0byByZXAgPSB3YXNtQ2Fs
bEluZm8ucmVzdWx0c1tpbmRleF07Ci0gICAgICAgIGlmIChyZXAuaXNSZWcoKSkKLSAgICAgICAg
ICAgIHJlZ2lzdGVyUmVzdWx0c1tyZWdpc3RlclJlc3VsdE9mZnNldHMuZmluZChyZXAucmVnKCkp
LT5vZmZzZXQoKSAvIHNpemVvZih1aW50NjRfdCldID0gdW5ib3hlZFZhbHVlOworICAgICAgICBp
ZiAocmVwLmlzR1BSKCkpCisgICAgICAgICAgICByZWdpc3RlclJlc3VsdHNbcmVnaXN0ZXJSZXN1
bHRPZmZzZXRzLmZpbmQocmVwLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpIC8gc2l6ZW9m
KHVpbnQ2NF90KV0gPSB1bmJveGVkVmFsdWU7CisgICAgICAgIGVsc2UgaWYgKHJlcC5pc0ZQUigp
KQorICAgICAgICAgICAgcmVnaXN0ZXJSZXN1bHRzW3JlZ2lzdGVyUmVzdWx0T2Zmc2V0cy5maW5k
KHJlcC5mcHIoKSktPm9mZnNldCgpIC8gc2l6ZW9mKHVpbnQ2NF90KV0gPSB1bmJveGVkVmFsdWU7
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGNhbGxlZUZyYW1lUG9pbnRlcltyZXAub2Zmc2V0
RnJvbUZQKCkgLyBzaXplb2YodWludDY0X3QpXSA9IHVuYm94ZWRWYWx1ZTsKICAgICB9CkBAIC02
MDQsMTIgKzYwNywxNiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2Nh
dGVSZXN1bHRzQXJyYXksIEpTQXJyYXkqLCAoQ2FsbEZyYW1lKiBjYQogICAgIGF1dG8gd2FzbUNh
bGxJbmZvID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkuY2FsbEluZm9ybWF0aW9uRm9yKCpzaWdu
YXR1cmUpOwogICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IHJlZ2lzdGVyUmVzdWx0cyA9IHdhc21D
YWxsSW5mby5jb21wdXRlUmVzdWx0c09mZnNldExpc3QoKTsKIAotICAgIHN0YXRpY19hc3NlcnQo
c2l6ZW9mKEpTVmFsdWUpID09IHNpemVvZihDUFVSZWdpc3RlciksICJUaGUgY29kZSBiZWxvdyBy
ZWxpZXMgb24gdGhpcy4iKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2lnbmF0dXJl
LT5yZXR1cm5Db3VudCgpOyArK2kpIHsKICAgICAgICAgVmFsdWVMb2NhdGlvbiBsb2MgPSB3YXNt
Q2FsbEluZm8ucmVzdWx0c1tpXTsKICAgICAgICAgSlNWYWx1ZSB2YWx1ZTsKLSAgICAgICAgaWYg
KGxvYy5pc1JlZygpKQotICAgICAgICAgICAgdmFsdWUgPSBzdGFja1BvaW50ZXJGcm9tQ2FsbGVl
WyhyZWdpc3RlclJlc3VsdHMuZmluZChsb2MucmVnKCkpLT5vZmZzZXQoKSArIHdhc21DYWxsSW5m
by5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpIC8gc2l6ZW9mKEpTVmFsdWUpXTsK
KyAgICAgICAgaWYgKGxvYy5pc0dQUigpKSB7CisjaWYgVVNFKEpTVkFMRTMyXzY0KQorICAgICAg
ICAgICAgQVNTRVJUKHJlZ2lzdGVyUmVzdWx0cy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkp
LT5vZmZzZXQoKSArIDQgPT0gcmVnaXN0ZXJSZXN1bHRzLmZpbmQobG9jLmpzcigpLnRhZ0dQUigp
KS0+b2Zmc2V0KCkpOworI2VuZGlmCisgICAgICAgICAgICB2YWx1ZSA9IHN0YWNrUG9pbnRlckZy
b21DYWxsZWVbKHJlZ2lzdGVyUmVzdWx0cy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5v
ZmZzZXQoKSArIHdhc21DYWxsSW5mby5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMp
IC8gc2l6ZW9mKEpTVmFsdWUpXTsKKyAgICAgICAgfSBlbHNlIGlmIChsb2MuaXNGUFIoKSkKKyAg
ICAgICAgICAgIHZhbHVlID0gc3RhY2tQb2ludGVyRnJvbUNhbGxlZVsocmVnaXN0ZXJSZXN1bHRz
LmZpbmQobG9jLmZwcigpKS0+b2Zmc2V0KCkgKyB3YXNtQ2FsbEluZm8uaGVhZGVyQW5kQXJndW1l
bnRTdGFja1NpemVJbkJ5dGVzKSAvIHNpemVvZihKU1ZhbHVlKV07CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIHZhbHVlID0gc3RhY2tQb2ludGVyRnJvbUNhbGxlZVtsb2Mub2Zmc2V0RnJvbVNQ
KCkgLyBzaXplb2YoSlNWYWx1ZSldOwogICAgICAgICByZXN1bHQtPmluaXRpYWxpemVJbmRleChp
bml0aWFsaXphdGlvblNjb3BlLCBpLCB2YWx1ZSk7CkBAIC05NDQsNyArOTUxLDggQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UaHJvdywgdm9pZCosIChJbnN0YW5jZSog
aW5zdGFuY2UsIENhbGxGcmEKICAgICAvLyB0byB0aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElmIHdl
IGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNrLgogICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAKICAgICB2bS5jYWxs
ZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgpOwotICAgIGJpdHdpc2VfY2FzdDx1
aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxs
ZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOworICAg
IFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJlZ2lzdGVyKj4oY2FsbEZyYW1l
KSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAgICAqY2FsbGVl
U2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CiAgICAg
cmV0dXJuIHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRocm93OwogfQogCkBAIC05NzAsNyArOTc4LDgg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZXRocm93LCB2b2lkKiwg
KEluc3RhbmNlKiBpbnN0YW5jZSwgQ2FsbEYKICAgICAvLyB0byB0aGUgZXhjZXB0aW9uIGhhbmRs
ZXIuIElmIHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNrLgog
ICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAKICAg
ICB2bS5jYWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgpOwotICAgIGJpdHdp
c2VfY2FzdDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVT
bG90OjpjYWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oanNJbnN0YW5jZS0+bW9kdWxl
KCkpOworICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJlZ2lzdGVyKj4o
Y2FsbEZyYW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAg
ICAqY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihqc0luc3RhbmNlLT5tb2R1bGUo
KSk7CiAgICAgcmV0dXJuIHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRocm93OwogfQogCkBAIC0xMDA1
LDcgKzEwMTQsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRvSlNF
eGNlcHRpb24sIHZvaWQqLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbQogICAgIC8vIHRvIHRoZSBleGNl
cHRpb24gaGFuZGxlci4gSWYgd2UgZGlkIHRoaXMsIHdlIGNvdWxkIHJlbW92ZSB0aGlzIHRlcnJp
YmxlIGhhY2suCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MDQ0MAogICAgIHZtLmNhbGxlZUZvcldhc21DYXRjaCA9IGNhbGxGcmFtZS0+Y2FsbGVlKCk7
Ci0gICAgYml0d2lzZV9jYXN0PHVpbnQ2NF90Kj4oY2FsbEZyYW1lKVtzdGF0aWNfY2FzdDxpbnQ+
KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSldID0gYml0d2lzZV9jYXN0PHVpbnQ2NF90PihpbnN0YW5j
ZS0+bW9kdWxlKCkpOworICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJl
Z2lzdGVyKj4oY2FsbEZyYW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2Fs
bGVlKTsKKyAgICAqY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihpbnN0YW5jZS0+
bW9kdWxlKCkpOwogICAgIHJldHVybiB2bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKIH0KIApA
QCAtMTAyOSw3ICsxMDM5LDExIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtUmV0cmlldmVBbmRDbGVhckV4Y2VwdGlvbklmQ2F0Y2hhYmxlLCBQb2luCiAgICAgdm9pZCog
cGF5bG9hZCA9IG51bGxwdHI7CiAgICAgaWYgKEpTV2ViQXNzZW1ibHlFeGNlcHRpb24qIHdhc21F
eGNlcHRpb24gPSBqc0R5bmFtaWNDYXN0PEpTV2ViQXNzZW1ibHlFeGNlcHRpb24qPih2bSwgdGhy
b3duVmFsdWUpKQogICAgICAgICBwYXlsb2FkID0gYml0d2lzZV9jYXN0PHZvaWQqPih3YXNtRXhj
ZXB0aW9uLT5wYXlsb2FkKCkuZGF0YSgpKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgIHJldHVy
biBQb2ludGVyUGFpciB7IGJpdHdpc2VfY2FzdDx2b2lkKj4oSlNWYWx1ZTo6ZW5jb2RlKHRocm93
blZhbHVlKSksIHBheWxvYWQgfTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgcmV0dXJu
IFBvaW50ZXJQYWlyIHsgYml0d2lzZV9jYXN0PHZvaWQqPih0aHJvd25WYWx1ZS5wYXlsb2FkKCkp
LCBwYXlsb2FkIH07CisjZW5kaWYKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oCmluZGV4IGNmN2MwZDVm
ZWY0ZC4uYjMyMDAwZDgzMmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21P
cGVyYXRpb25zLmgKQEAgLTQ2LDIzICs0NiwyMyBAQCBuYW1lc3BhY2UgV2FzbSB7CiAKIGNsYXNz
IEluc3RhbmNlOwogY2xhc3MgU2lnbmF0dXJlOwotCi12b2lkIGxvYWRWYWx1ZXNJbnRvQnVmZmVy
KFByb2JlOjpDb250ZXh0JiwgY29uc3QgU3RhY2tNYXAmLCB1aW50NjRfdCogYnVmZmVyKTsKK3R5
cGVkZWYgaW50NjRfdCBFbmNvZGVkV2FzbVZhbHVlOwogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
X0IzSklUKQordm9pZCBsb2FkVmFsdWVzSW50b0J1ZmZlcihQcm9iZTo6Q29udGV4dCYsIGNvbnN0
IFN0YWNrTWFwJiwgdWludDY0X3QqIGJ1ZmZlcik7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbldhc21UcmlnZ2VyT1NSRW50cnlOb3csIHZvaWQsIChQcm9iZTo6Q29udGV4dCYp
KTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJUaWVyVXBO
b3csIHZvaWQsIChJbnN0YW5jZSosIHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgpKTsKICNlbmRpZgog
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVW53aW5kLCB2b2lkLCAoQ2Fs
bEZyYW1lKikpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRU
b0k2NCwgaW50NjRfdCwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjY0LCBkb3VibGUsIChDYWxsRnJhbWUqLCBKU1Zh
bHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0kzMiwg
aW50MzJfdCwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29udmVydFRvRjMyLCBmbG9hdCwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTY0LCBpbnQ2NF90
LCAoQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29udmVydFRvRjY0LCBkb3VibGUsIChDYWxsRnJhbWUqLCBFbmNvZGVkSlNW
YWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIs
IGludDMyX3QsIChDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9GMzIsIGZsb2F0LCAoQ2FsbEZyYW1lKiwgRW5j
b2RlZEpTVmFsdWUpKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252
ZXJ0VG9CaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoQ2FsbEZyYW1lKiwgSW5zdGFuY2UqLCBpbnQ2
NF90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0lu
dCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqLCBJbnN0YW5jZSosIEVuY29kZWRXYXNtVmFs
dWUpKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0
cywgdm9pZCwgKENhbGxGcmFtZSosIEluc3RhbmNlKiwgY29uc3QgU2lnbmF0dXJlKiwgSlNWYWx1
ZSwgdWludDY0X3QqLCB1aW50NjRfdCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqLCBJbnN0YW5jZSosIGNvbnN0
IFNpZ25hdHVyZSosIEVuY29kZWRKU1ZhbHVlLCB1aW50NjRfdCosIHVpbnQ2NF90KikpOwogSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSwgSlNB
cnJheSosIChDYWxsRnJhbWUqLCBXYXNtOjpJbnN0YW5jZSosIGNvbnN0IFNpZ25hdHVyZSosIElu
ZGV4aW5nVHlwZSwgSlNWYWx1ZSopKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25XYXNtV3JpdGVCYXJyaWVyU2xvd1BhdGgsIHZvaWQsIChKU0NlbGwqLCBWTSopKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYWdlQ291bnQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYWdlQ291bnQuaAppbmRleCBiN2Q4YzlmY2Y3
MmIuLjNjNzU1MTJmNDRhOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbVBhZ2VDb3VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYWdl
Q291bnQuaApAQCAtOTgsNyArOTgsMTIgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0ZXhw
ciB1aW50MzJfdCBwYWdlU2l6ZSA9IDY0ICogS0I7CiBwcml2YXRlOgotICAgIHN0YXRpYyBjb25z
dGV4cHIgdWludDMyX3QgbWF4UGFnZUNvdW50ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE1BWF9B
UlJBWV9CVUZGRVJfU0laRSAvIHN0YXRpY19jYXN0PHVpbnQ2NF90PihwYWdlU2l6ZSkpOworICAg
IC8vIFRoZSBzcGVjIHJlcXVpcmVzIHdlIGFyZSBhYmxlIHRvIGluc3RhbnRpYXRlIGEgbWVtb3J5
IHdpdGggYSAqbWF4aW11bSogc2l6ZSBvZiA2NEsgcGFnZXMuCisgICAgLy8gVGhpcyBkb2VzIG5v
dCBtZWFuIHRoZSBtZW1vcnkgY2FuIG5lY2Vzc2FyaWx5IGdyb3cgdGhhdCBiaWcsIGFuZCB3aGVy
ZSB0aGUKKyAgICAvLyBNQVhfQVJSQVlfQlVGRkVSX1NJWkUgaXMgc21hbGxlciAoZS5nLjogb24g
MzItYml0IHBsYXRmb3JtcyksIHRyeWluZyB0byBncm93IHRoZSBtZW1vcnkKKyAgICAvLyB0aGF0
IGxhcmdlIHdpbGwgZmFpbCwgd2hpY2ggaXMgYWNjZXB0YWJsZSBhY2NvcmRpbmcgdG8gdGhlIHNw
ZWMuIE5ldmVydGhlbGVzcywgd2Ugc2hvdWxkCisgICAgLy8gYmUgYWJsZSB0byBwYXJzZSBzdWNo
IGEgbWVtb3J5IGFuZCBpbnN0YW50aWF0ZSBpdCB3aXRoIGEgc21hbGxlciBpbml0aWFsIHNpemUu
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXhQYWdlQ291bnQgPSBzdGQ6Om1heDx1
aW50MzJfdD4oNjQqMTAyNCwgTUFYX0FSUkFZX0JVRkZFUl9TSVpFIC8gc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KHBhZ2VTaXplKSk7CiAKICAgICB1aW50MzJfdCBtX3BhZ2VDb3VudDsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmgKaW5kZXggZWQwMGQ5YTBhNDJiLi5kNDQx
YmNhZDk0YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJz
ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmgKQEAgLTIw
OCw3ICsyMDgsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgUGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFy
c2VVSW50MzIodWludDMyX3QmIHJlc3VsdCkKIHsKICAgICBpZiAobGVuZ3RoKCkgPCA0IHx8IG1f
b2Zmc2V0ID4gbGVuZ3RoKCkgLSA0KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmVzdWx0
ID0gKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDMyX3QqPihzb3VyY2UoKSArIG1fb2Zmc2V0
KTsKKyAgICBtZW1jcHkoJnJlc3VsdCwgc291cmNlKCkgKyBtX29mZnNldCwgc2l6ZW9mKHVpbnQz
Ml90KSk7IC8vIHNyYyBjYW4gYmUgdW5hbGlnbmVkCiAgICAgbV9vZmZzZXQgKz0gNDsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KQEAgLTIxOCw3ICsyMTgsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgUGFy
c2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VVSW50NjQodWludDY0X3QmIHJlc3VsdCkKIHsKICAgICBp
ZiAobGVuZ3RoKCkgPCA4IHx8IG1fb2Zmc2V0ID4gbGVuZ3RoKCkgLSA4KQogICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgcmVzdWx0ID0gKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDY0X3Qq
Pihzb3VyY2UoKSArIG1fb2Zmc2V0KTsKKyAgICBtZW1jcHkoJnJlc3VsdCwgc291cmNlKCkgKyBt
X29mZnNldCwgc2l6ZW9mKHVpbnQ2NF90KSk7IC8vIHNyYyBjYW4gYmUgdW5hbGlnbmVkCiAgICAg
bV9vZmZzZXQgKz0gODsKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbVNsb3dQYXRocy5jcHAKaW5kZXggMmE4NjdkNmM3M2ZkLi5hYjVhOTk3NTFk
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3BwCkBA
IC02NDIsNyArNjQyLDggQEAgV0FTTV9TTE9XX1BBVEhfREVDTCh0aHJvdykKICAgICAvLyB0byB0
aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElmIHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhp
cyB0ZXJyaWJsZSBoYWNrLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzA0NDAKICAgICB2bS5jYWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNh
bGxlZSgpOwotICAgIGJpdHdpc2VfY2FzdDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nh
c3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4o
anNJbnN0YW5jZS0+bW9kdWxlKCkpOworICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lz
ZV9jYXN0PFJlZ2lzdGVyKj4oY2FsbEZyYW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1l
U2xvdDo6Y2FsbGVlKTsKKyAgICAqY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihq
c0luc3RhbmNlLT5tb2R1bGUoKSk7CiAgICAgV0FTTV9SRVRVUk5fVFdPKHZtLnRhcmdldE1hY2hp
bmVQQ0ZvclRocm93LCBudWxscHRyKTsKIH0KIApAQCAtNjcwLDcgKzY3MSw4IEBAIFdBU01fU0xP
V19QQVRIX0RFQ0wocmV0aHJvdykKICAgICAvLyB0byB0aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElm
IHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNrLgogICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAKICAgICB2bS5j
YWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgpOwotICAgIGJpdHdpc2VfY2Fz
dDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90Ojpj
YWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOwor
ICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJlZ2lzdGVyKj4oY2FsbEZy
YW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAgICAqY2Fs
bGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CiAg
ICAgV0FTTV9SRVRVUk5fVFdPKHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRocm93LCBudWxscHRyKTsK
IH0KIApAQCAtNzE3LDYgKzcxOSwyMTQgQEAgV0FTTV9TTE9XX1BBVEhfREVDTChyZXRyaWV2ZV9h
bmRfY2xlYXJfZXhjZXB0aW9uKQogICAgIFdBU01fUkVUVVJOX1RXTyhwYywgcGF5bG9hZCk7CiB9
CiAKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorV0FTTV9TTE9XX1BBVEhfREVDTChmMzJfY2VpbCkK
K3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBw
Yy0+YXM8V2FzbUYzMkNlaWw+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rp
b24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjpl
bmNvZGUoanNVbmJveGVkRmxvYXQoc3RkOjpjZWlsKG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NM
T1dfUEFUSF9ERUNMKGYzMl9mbG9vcikKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOwor
ICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUYzMkZsb29yPigpOworICAgIGZsb2F0
IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7Cisg
ICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpzVW5ib3hlZEZsb2F0KHN0ZDo6Zmxvb3Io
b3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjMyX3RydW5jKQoreworICAg
IFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxX
YXNtRjMyVHJ1bmM+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9v
cGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUo
anNVbmJveGVkRmxvYXQoc3RkOjp0cnVuYyhvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BB
VEhfREVDTChmMzJfbmVhcmVzdCkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19s
aW1pdHM8ZmxvYXQ+Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOworICAg
IFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxX
YXNtRjMyTmVhcmVzdD4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5t
X29wZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29k
ZShqc1VuYm94ZWRGbG9hdChzdGQ6Om5lYXJieWludChvcGVyYW5kKSkpKTsKK30KKworV0FTTV9T
TE9XX1BBVEhfREVDTChmNjRfY2VpbCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOwor
ICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NENlaWw+KCk7CisgICAgZG91Ymxl
IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgpOwor
ICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGQ6OmNlaWwo
b3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjY0X2Zsb29yKQoreworICAg
IFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxX
YXNtRjY0Rmxvb3I+KCk7CisgICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1f
b3BlcmFuZCkudW5ib3hlZERvdWJsZSgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29k
ZShqc0RvdWJsZU51bWJlcihzdGQ6OmZsb29yKG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1df
UEFUSF9ERUNMKGY2NF90cnVuYykKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAg
IGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NFRydW5jPigpOworICAgIGRvdWJsZSBv
cGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUoKTsKKyAg
ICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoc3RkOjp0cnVuYyhv
cGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmNjRfbmVhcmVzdCkKK3sKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpyb3VuZF9zdHlsZSA9
PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7Cisg
ICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjY0TmVhcmVzdD4oKTsKKyAgICBkb3Vi
bGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7
CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHN0ZDo6bmVh
cmJ5aW50KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGYzMl9jb252ZXJ0
X3VfaTY0KQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46
OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7CisgICAgVU5VU0VEX1BBUkFN
KGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GMzJDb252ZXJ0
VUk2ND4oKTsKKyAgICB1aW50NjRfdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJh
bmQpLnVuYm94ZWRJbnQ2NCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc1Vu
Ym94ZWRGbG9hdChzdGF0aWNfY2FzdDxmbG9hdD4ob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xP
V19QQVRIX0RFQ0woZjMyX2NvbnZlcnRfc19pNjQpCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6
Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cm91bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90b19uZWFy
ZXN0KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24g
PSBwYy0+YXM8V2FzbUYzMkNvbnZlcnRTSTY0PigpOworICAgIGludDY0X3Qgb3BlcmFuZCA9IFJF
QUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkSW50NjQoKTsKKyAgICBXQVNNX1JFVFVS
TihKU1ZhbHVlOjplbmNvZGUoanNVbmJveGVkRmxvYXQoc3RhdGljX2Nhc3Q8ZmxvYXQ+KG9wZXJh
bmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGY2NF9jb252ZXJ0X3VfaTY0KQorewor
ICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnJvdW5kX3N0eWxl
ID09IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsK
KyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GNjRDb252ZXJ0VUk2ND4oKTsKKyAg
ICB1aW50NjRfdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRJ
bnQ2NCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihz
dGF0aWNfY2FzdDxkb3VibGU+KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNM
KGY2NF9jb252ZXJ0X3NfaTY0KQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xp
bWl0czxmbG9hdD46OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7CisgICAg
VU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdh
c21GNjRDb252ZXJ0U0k2ND4oKTsKKyAgICBpbnQ2NF90IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0
aW9uLm1fb3BlcmFuZCkudW5ib3hlZEludDY0KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6
ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHN0YXRpY19jYXN0PGRvdWJsZT4ob3BlcmFuZCkpKSk7Cit9
CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3VfZjMyKQoreworICAgIFVOVVNFRF9Q
QVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1
bmNVRjMyPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFu
ZCkudW5ib3hlZEZsb2F0KCk7CisgICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkgfHwgb3BlcmFu
ZCA8PSAtMS4wZiB8fCBvcGVyYW5kID49IC0yLjBmICogc3RhdGljX2Nhc3Q8ZmxvYXQ+KElOVDY0
X01JTikpCisgICAgICAgIFdBU01fVEhST1coV2FzbTo6RXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3Vu
ZHNUcnVuYyk7CisgICAgV0FTTV9SRVRVUk4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG9wZXJhbmQp
KTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc19mMzIpCit7CisgICAgVU5V
U0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21J
NjRUcnVuY1NGMzI+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9v
cGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5kKSB8fCBv
cGVyYW5kIDwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikgfHwgb3BlcmFuZCA+PSAtc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikpCisgICAgICAgIFdBU01fVEhST1coV2FzbTo6RXhj
ZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNUcnVuYyk7CisgICAgV0FTTV9SRVRVUk4oc3RhdGljX2Nh
c3Q8aW50NjRfdD4ob3BlcmFuZCkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVu
Y191X2Y2NCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1
Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jVUY2ND4oKTsKKyAgICBkb3VibGUgb3BlcmFuZCA9
IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAgaWYgKHN0
ZDo6aXNuYW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8PSAtMS4wIHx8IG9wZXJhbmQgPj0gLTIuMCAq
IHN0YXRpY19jYXN0PGRvdWJsZT4oSU5UNjRfTUlOKSkKKyAgICAgICAgV0FTTV9USFJPVyhXYXNt
OjpFeGNlcHRpb25UeXBlOjpPdXRPZkJvdW5kc1RydW5jKTsKKyAgICBXQVNNX1JFVFVSTihzdGF0
aWNfY2FzdDx1aW50NjRfdD4ob3BlcmFuZCkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2
NF90cnVuY19zX2Y2NCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8g
aW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jU0Y2ND4oKTsKKyAgICBkb3VibGUgb3Bl
cmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAg
aWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8IHN0YXRpY19jYXN0PGRvdWJsZT4o
SU5UNjRfTUlOKSB8fCBvcGVyYW5kID49IC1zdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0X01JTikp
CisgICAgICAgIFdBU01fVEhST1coV2FzbTo6RXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNUcnVu
Yyk7CisgICAgV0FTTV9SRVRVUk4oc3RhdGljX2Nhc3Q8aW50NjRfdD4ob3BlcmFuZCkpOworfQor
CitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY19zYXRfZjMyX3UpCit7CisgICAgVU5VU0VE
X1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRU
cnVuY1NhdEYzMlU+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9v
cGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICB1aW50NjRfdCByZXN1bHQ7CisgICAgaWYgKHN0
ZDo6aXNuYW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8PSAtMS4wZikKKyAgICAgICAgcmVzdWx0ID0g
MDsKKyAgICBlbHNlIGlmIChvcGVyYW5kID49IC0yLjBmICogc3RhdGljX2Nhc3Q8ZmxvYXQ+KElO
VDY0X01JTikpCisgICAgICAgIHJlc3VsdCA9IFVJTlQ2NF9NQVg7CisgICAgZWxzZQorICAgICAg
ICByZXN1bHQgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4ob3BlcmFuZCk7CisgICAgV0FTTV9SRVRV
Uk4ocmVzdWx0KTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc2F0X2YzMl9z
KQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9
IHBjLT5hczxXYXNtSTY0VHJ1bmNTYXRGMzJTPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFE
KGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgaW50NjRfdCByZXN1
bHQ7CisgICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkpCisgICAgICAgIHJlc3VsdCA9IDA7Cisg
ICAgZWxzZSBpZiAob3BlcmFuZCA8IHN0YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4pKQorICAg
ICAgICByZXN1bHQgPSBJTlQ2NF9NSU47CisgICAgZWxzZSBpZiAob3BlcmFuZCA+PSAtc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikpCisgICAgICAgIHJlc3VsdCA9IElOVDY0X01BWDsKKyAg
ICBlbHNlCisgICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PGludDY0X3Q+KG9wZXJhbmQpOwor
ICAgIFdBU01fUkVUVVJOKHJlc3VsdCk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3Ry
dW5jX3NhdF9mNjRfdSkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8g
aW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jU2F0RjY0VT4oKTsKKyAgICBkb3VibGUg
b3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7Cisg
ICAgdWludDY0X3QgcmVzdWx0OworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9wZXJh
bmQgPD0gLTEuMCkKKyAgICAgICAgcmVzdWx0ID0gMDsKKyAgICBlbHNlIGlmIChvcGVyYW5kID49
IC0yLjAgKiBzdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0X01JTikpCisgICAgICAgIHJlc3VsdCA9
IFVJTlQ2NF9NQVg7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDx1aW50
NjRfdD4ob3BlcmFuZCk7CisgICAgV0FTTV9SRVRVUk4ocmVzdWx0KTsKK30KKworV0FTTV9TTE9X
X1BBVEhfREVDTChpNjRfdHJ1bmNfc2F0X2Y2NF9zKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0
YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1bmNTYXRGNjRT
PigpOworICAgIGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVu
Ym94ZWREb3VibGUoKTsKKyAgICBpbnQ2NF90IHJlc3VsdDsKKyAgICBpZiAoc3RkOjppc25hbihv
cGVyYW5kKSkKKyAgICAgICAgcmVzdWx0ID0gMDsKKyAgICBlbHNlIGlmIChvcGVyYW5kIDwgc3Rh
dGljX2Nhc3Q8ZG91YmxlPihJTlQ2NF9NSU4pKQorICAgICAgICByZXN1bHQgPSBJTlQ2NF9NSU47
CisgICAgZWxzZSBpZiAob3BlcmFuZCA+PSAtc3RhdGljX2Nhc3Q8ZG91YmxlPihJTlQ2NF9NSU4p
KQorICAgICAgICByZXN1bHQgPSBJTlQ2NF9NQVg7CisgICAgZWxzZQorICAgICAgICByZXN1bHQg
PSBzdGF0aWNfY2FzdDxpbnQ2NF90PihvcGVyYW5kKTsKKyAgICBXQVNNX1JFVFVSTihyZXN1bHQp
OworfQorI2VuZGlmCisKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93
YXNtX3Rocm93X2V4Y2VwdGlvbihDYWxsRnJhbWUqIGNhbGxGcmFtZSwgY29uc3QgV2FzbUluc3Ry
dWN0aW9uKiBwYywgV2FzbTo6SW5zdGFuY2UqIGluc3RhbmNlLCBXYXNtOjpFeGNlcHRpb25UeXBl
IGV4Y2VwdGlvblR5cGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHBjKTsKQEAgLTcyNSwxNiArOTM1
LDI4IEBAIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3Rocm93
X2V4Y2VwdGlvbihDYWxsRnJhbWUqIGNhbGxGcmFtCiAKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1
cm5UeXBlIHNsb3dfcGF0aF93YXNtX3BvcGNvdW50KGNvbnN0IFdhc21JbnN0cnVjdGlvbiogcGMs
IHVpbnQzMl90IHgpCiB7Ci0gICAgdm9pZCogcmVzdWx0ID0gYml0d2lzZV9jYXN0PHZvaWQqPihz
dGF0aWNfY2FzdDx1aW50NjRfdD4oX19idWlsdGluX3BvcGNvdW50KHgpKSk7CisgICAgdm9pZCog
cmVzdWx0ID0gYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDxzaXplX3Q+KF9fYnVpbHRp
bl9wb3Bjb3VudCh4KSkpOwogICAgIFdBU01fUkVUVVJOX1RXTyhwYywgcmVzdWx0KTsKIH0KIAog
ZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fcG9wY291bnRsbChj
b25zdCBXYXNtSW5zdHJ1Y3Rpb24qIHBjLCB1aW50NjRfdCB4KQogewotICAgIHZvaWQqIHJlc3Vs
dCA9IGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KF9fYnVpbHRpbl9w
b3Bjb3VudGxsKHgpKSk7CisgICAgdm9pZCogcmVzdWx0ID0gYml0d2lzZV9jYXN0PHZvaWQqPihz
dGF0aWNfY2FzdDxzaXplX3Q+KF9fYnVpbHRpbl9wb3Bjb3VudGxsKHgpKSk7CiAgICAgV0FTTV9S
RVRVUk5fVFdPKHBjLCByZXN1bHQpOwogfQogCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKy8vIE5v
dGU6IEFsbCB0aGVzZSBkaXYgYW5kIHJlbSBvcHMgcGVyZm9ybSBleGNlcHRpb24gY2hlY2tzIGlu
IGFzbQorZXh0ZXJuICJDIiBpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9kaXZfcyhpbnQzMl90
IGEsIGludDMyX3QgYikgeyByZXR1cm4gYSAvIGI7IH0KK2V4dGVybiAiQyIgdWludDMyX3Qgc2xv
d19wYXRoX3dhc21faTMyX2Rpdl91KHVpbnQzMl90IGEsIHVpbnQzMl90IGIpIHsgcmV0dXJuIGEg
LyBiOyB9CitleHRlcm4gIkMiIGludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX3JlbV9zKGludDMy
X3QgYSwgaW50MzJfdCBiKSB7IHJldHVybiBhICUgYjsgfQorZXh0ZXJuICJDIiB1aW50MzJfdCBz
bG93X3BhdGhfd2FzbV9pMzJfcmVtX3UodWludDMyX3QgYSwgdWludDMyX3QgYikgeyByZXR1cm4g
YSAlIGI7IH0KK2V4dGVybiAiQyIgaW50NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRfZGl2X3MoaW50
NjRfdCBhLCBpbnQ2NF90IGIpIHsgcmV0dXJuIGEgLyBiOyB9CitleHRlcm4gIkMiIHVpbnQ2NF90
IHNsb3dfcGF0aF93YXNtX2k2NF9kaXZfdSh1aW50NjRfdCBhLCB1aW50NjRfdCBiKSB7IHJldHVy
biBhIC8gYjsgfQorZXh0ZXJuICJDIiBpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9yZW1fcyhp
bnQ2NF90IGEsIGludDY0X3QgYikgeyByZXR1cm4gYSAlIGI7IH0KK2V4dGVybiAiQyIgdWludDY0
X3Qgc2xvd19wYXRoX3dhc21faTY0X3JlbV91KHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIpIHsgcmV0
dXJuIGEgJSBiOyB9CisjZW5kaWYKKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50CiAKICNl
bmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtU2xvd1BhdGhzLmgKaW5kZXggNDYwOWUzNmIwMzkyLi44OWY2ZTM5NGQ4NmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmgKQEAgLTk0LDYgKzk0LDQwIEBA
IGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3Rocm93X2V4Y2Vw
dGlvbihDYWxsRnJhbWUqLCBjb25zdCBXCiBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBz
bG93X3BhdGhfd2FzbV9wb3Bjb3VudChjb25zdCBXYXNtSW5zdHJ1Y3Rpb24qIHBjLCB1aW50MzJf
dCkgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CiBleHRlcm4gIkMiIFNsb3dQYXRo
UmV0dXJuVHlwZSBzbG93X3BhdGhfd2FzbV9wb3Bjb3VudGxsKGNvbnN0IFdhc21JbnN0cnVjdGlv
biogcGMsIHVpbnQ2NF90KSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKIAorI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmMzJfY2VpbCk7
CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmMzJfZmxvb3IpOworV0FTTV9TTE9XX1BBVEhf
SElEREVOX0RFQ0woZjMyX3RydW5jKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGYzMl9u
ZWFyZXN0KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGY2NF9jZWlsKTsKK1dBU01fU0xP
V19QQVRIX0hJRERFTl9ERUNMKGY2NF9mbG9vcik7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVD
TChmNjRfdHJ1bmMpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjY0X25lYXJlc3QpOwor
V0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjMyX2NvbnZlcnRfdV9pNjQpOworV0FTTV9TTE9X
X1BBVEhfSElEREVOX0RFQ0woZjMyX2NvbnZlcnRfc19pNjQpOworV0FTTV9TTE9XX1BBVEhfSElE
REVOX0RFQ0woZjY0X2NvbnZlcnRfdV9pNjQpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0wo
ZjY0X2NvbnZlcnRfc19pNjQpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5j
X3VfZjMyKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGk2NF90cnVuY19zX2YzMik7CitX
QVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNfdV9mNjQpOworV0FTTV9TTE9XX1BB
VEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3NfZjY0KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9E
RUNMKGk2NF90cnVuY19zYXRfZjMyX3UpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0
X3RydW5jX3NhdF9mMzJfcyk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNf
c2F0X2Y2NF91KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGk2NF90cnVuY19zYXRfZjY0
X3MpOworI2VuZGlmCisKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorZXh0ZXJuICJDIiBpbnQzMl90
IHNsb3dfcGF0aF93YXNtX2kzMl9kaXZfcyhpbnQzMl90IGEsIGludDMyX3QgYikgUkVGRVJFTkNF
RF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMiIHVpbnQzMl90IHNsb3dfcGF0aF93
YXNtX2kzMl9kaXZfdSh1aW50MzJfdCBhLCB1aW50MzJfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNN
IFdURl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgaW50MzJfdCBzbG93X3BhdGhfd2FzbV9pMzJfcmVt
X3MoaW50MzJfdCBhLCBpbnQzMl90IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFM
OworZXh0ZXJuICJDIiB1aW50MzJfdCBzbG93X3BhdGhfd2FzbV9pMzJfcmVtX3UodWludDMyX3Qg
YSwgdWludDMyX3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4g
IkMiIGludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X2Rpdl9zKGludDY0X3QgYSwgaW50NjRfdCBi
KSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgdWludDY0X3Qg
c2xvd19wYXRoX3dhc21faTY0X2Rpdl91KHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIpIFJFRkVSRU5D
RURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJDIiBpbnQ2NF90IHNsb3dfcGF0aF93
YXNtX2k2NF9yZW1fcyhpbnQ2NF90IGEsIGludDY0X3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBX
VEZfSU5URVJOQUw7CitleHRlcm4gIkMiIHVpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9yZW1f
dSh1aW50NjRfdCBhLCB1aW50NjRfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5B
TDsKKyNlbmRpZgorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6TExJbnQKIAogI2VuZGlmIC8vIEVO
QUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21WYWx1ZUxvY2F0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21W
YWx1ZUxvY2F0aW9uLmNwcAppbmRleCA1MjIzZjNhYjRlNDAuLjY4Yzc4ODg5MDZkYiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmNwcApAQCAt
MzUsOCArMzUsMTEgQEAgdm9pZCBWYWx1ZUxvY2F0aW9uOjpkdW1wKFByaW50U3RyZWFtJiBvdXQp
IGNvbnN0CiB7CiAgICAgb3V0LnByaW50KG1fa2luZCk7CiAgICAgc3dpdGNoIChtX2tpbmQpIHsK
LSAgICBjYXNlIFJlZ2lzdGVyOgotICAgICAgICBvdXQucHJpbnQoIigiLCByZWcoKSwgIikiKTsK
KyAgICBjYXNlIEdQUlJlZ2lzdGVyOgorICAgICAgICBvdXQucHJpbnQoIigiLCBqc3IoKSwgIiki
KTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgRlBSUmVnaXN0ZXI6CisgICAgICAgIG91dC5w
cmludCgiKCIsIGZwcigpLCAiKSIpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTdGFjazoK
ICAgICAgICAgb3V0LnByaW50KCIoIiwgb2Zmc2V0RnJvbUZQKCksICIpIik7CkBAIC01Nyw4ICs2
MCwxMSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOjpXYXNtOwogdm9pZCBwcmludEludGVybmFsKFBy
aW50U3RyZWFtJiBvdXQsIFZhbHVlTG9jYXRpb246OktpbmQga2luZCkKIHsKICAgICBzd2l0Y2gg
KGtpbmQpIHsKLSAgICBjYXNlIFZhbHVlTG9jYXRpb246OlJlZ2lzdGVyOgotICAgICAgICBvdXQu
cHJpbnQoIlJlZ2lzdGVyIik7CisgICAgY2FzZSBWYWx1ZUxvY2F0aW9uOjpHUFJSZWdpc3RlcjoK
KyAgICAgICAgb3V0LnByaW50KCJHUFJSZWdpc3RlciIpOworICAgICAgICByZXR1cm47CisgICAg
Y2FzZSBWYWx1ZUxvY2F0aW9uOjpGUFJSZWdpc3RlcjoKKyAgICAgICAgb3V0LnByaW50KCJGUFJS
ZWdpc3RlciIpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBWYWx1ZUxvY2F0aW9uOjpTdGFj
azoKICAgICAgICAgb3V0LnByaW50KCJTdGFjayIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmgKaW5kZXggYTYxZmJhOGJkMDFjLi41Y2I1MTBkYmJk
MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0
aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24u
aApAQCAtNDEsMjUgKzQxLDI3IEBAIGNsYXNzIFZhbHVlTG9jYXRpb24gewogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGVudW0gS2luZCA6IHVpbnQ4X3QgewotICAg
ICAgICBSZWdpc3RlciwKKyAgICAgICAgR1BSUmVnaXN0ZXIsCisgICAgICAgIEZQUlJlZ2lzdGVy
LAogICAgICAgICBTdGFjaywKICAgICAgICAgU3RhY2tBcmd1bWVudCwKICAgICB9OwogCiAgICAg
VmFsdWVMb2NhdGlvbigpCi0gICAgICAgIDogbV9raW5kKFJlZ2lzdGVyKQorICAgICAgICA6IG1f
a2luZChHUFJSZWdpc3RlcikKICAgICB7CiAgICAgfQogCi0gICAgZXhwbGljaXQgVmFsdWVMb2Nh
dGlvbihSZWcgcmVnKQotICAgICAgICA6IG1fa2luZChSZWdpc3RlcikKKyAgICBleHBsaWNpdCBW
YWx1ZUxvY2F0aW9uKEpTVmFsdWVSZWdzIHJlZ3MpCisgICAgICAgIDogbV9raW5kKEdQUlJlZ2lz
dGVyKQogICAgIHsKLSAgICAgICAgdS5yZWcgPSByZWc7CisgICAgICAgIHUuanNyID0gcmVnczsK
ICAgICB9CiAKLSAgICBzdGF0aWMgVmFsdWVMb2NhdGlvbiByZWcoUmVnIHJlZykKKyAgICBleHBs
aWNpdCBWYWx1ZUxvY2F0aW9uKEZQUlJlZyByZWcpCisgICAgICAgIDogbV9raW5kKEZQUlJlZ2lz
dGVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFZhbHVlTG9jYXRpb24ocmVnKTsKKyAgICAgICAg
dS5mcHIgPSByZWc7CiAgICAgfQogCiAgICAgc3RhdGljIFZhbHVlTG9jYXRpb24gc3RhY2soaW50
cHRyX3Qgb2Zmc2V0RnJvbUZQKQpAQCAtODAsMjEgKzgyLDIyIEBAIHB1YmxpYzoKIAogICAgIEtp
bmQga2luZCgpIGNvbnN0IHsgcmV0dXJuIG1fa2luZDsgfQogCi0gICAgYm9vbCBpc1JlZygpIGNv
bnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBSZWdpc3RlcjsgfQorICAgIGJvb2wgaXNHUFIoKSBjb25z
dCB7IHJldHVybiBraW5kKCkgPT0gR1BSUmVnaXN0ZXI7IH0KKyAgICBib29sIGlzRlBSKCkgY29u
c3QgeyByZXR1cm4ga2luZCgpID09IEZQUlJlZ2lzdGVyOyB9CisgICAgYm9vbCBpc1N0YWNrKCkg
Y29uc3QgeyByZXR1cm4ga2luZCgpID09IFN0YWNrOyB9CisgICAgYm9vbCBpc1N0YWNrQXJndW1l
bnQoKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gU3RhY2tBcmd1bWVudDsgfQogCi0gICAgUmVn
IHJlZygpIGNvbnN0CisgICAgSlNWYWx1ZVJlZ3MganNyKCkgY29uc3QKICAgICB7Ci0gICAgICAg
IEFTU0VSVChpc1JlZygpKTsKLSAgICAgICAgcmV0dXJuIHUucmVnOworICAgICAgICBBU1NFUlQo
aXNHUFIoKSk7CisgICAgICAgIHJldHVybiB1LmpzcjsKICAgICB9CiAKLSAgICBib29sIGlzR1BS
KCkgY29uc3QgeyByZXR1cm4gaXNSZWcoKSAmJiByZWcoKS5pc0dQUigpOyB9Ci0gICAgYm9vbCBp
c0ZQUigpIGNvbnN0IHsgcmV0dXJuIGlzUmVnKCkgJiYgcmVnKCkuaXNGUFIoKTsgfQotCi0gICAg
R1BSUmVnIGdwcigpIGNvbnN0IHsgcmV0dXJuIHJlZygpLmdwcigpOyB9Ci0gICAgRlBSUmVnIGZw
cigpIGNvbnN0IHsgcmV0dXJuIHJlZygpLmZwcigpOyB9Ci0KLSAgICBib29sIGlzU3RhY2soKSBj
b25zdCB7IHJldHVybiBraW5kKCkgPT0gU3RhY2s7IH0KKyAgICBGUFJSZWcgZnByKCkgY29uc3QK
KyAgICB7CisgICAgICAgIEFTU0VSVChpc0ZQUigpKTsKKyAgICAgICAgcmV0dXJuIHUuZnByOwor
ICAgIH0KIAogICAgIGludHB0cl90IG9mZnNldEZyb21GUCgpIGNvbnN0CiAgICAgewpAQCAtMTAy
LDggKzEwNSw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHUub2Zmc2V0RnJvbUZQOwogICAg
IH0KIAotICAgIGJvb2wgaXNTdGFja0FyZ3VtZW50KCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09
IFN0YWNrQXJndW1lbnQ7IH0KLQogICAgIGludHB0cl90IG9mZnNldEZyb21TUCgpIGNvbnN0CiAg
ICAgewogICAgICAgICBBU1NFUlQoaXNTdGFja0FyZ3VtZW50KCkpOwpAQCAtMTE0LDcgKzExNSw4
IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB1bmlvbiBVIHsKLSAgICAgICAgUmVnIHJlZzsK
KyAgICAgICAgSlNWYWx1ZVJlZ3MganNyOworICAgICAgICBGUFJSZWcgZnByOwogICAgICAgICBp
bnRwdHJfdCBvZmZzZXRGcm9tRlA7CiAgICAgICAgIGludHB0cl90IG9mZnNldEZyb21TUDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3BwCmluZGV4IDFmNDY0ZmU5
OGJhZC4uOTQxOWRkMDVjYWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1RvV2FzbS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNU
b1dhc20uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAj
aW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5SW5z
dGFuY2UuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2lu
Y2x1ZGUgIldhc21DYWxsaW5nQ29udmVudGlvbi5oIgogI2luY2x1ZGUgIldhc21Db250ZXh0SW5s
aW5lcy5oIgogI2luY2x1ZGUgIldhc21PcGVyYXRpb25zLmgiCkBAIC00MCwxMyArNDEsMTMgQEAg
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIAogdm9pZCBtYXJzaGFsbEpTUmVzdWx0
KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSwgY29uc3QgQ2Fs
bEluZm9ybWF0aW9uJiB3YXNtRnJhbWVDb252ZW50aW9uLCBjb25zdCBSZWdpc3RlckF0T2Zmc2V0
TGlzdCYgc2F2ZWRSZXN1bHRSZWdpc3RlcnMpCiB7Ci0gICAgYXV0byBib3hXYXNtUmVzdWx0ID0g
W10oQ0NhbGxIZWxwZXJzJiBqaXQsIFR5cGUgdHlwZSwgUmVnIHNyYywgSlNWYWx1ZVJlZ3MgZHN0
KSB7CisgICAgYXV0byBib3hXYXNtUmVzdWx0ID0gW10oQ0NhbGxIZWxwZXJzJiBqaXQsIFR5cGUg
dHlwZSwgVmFsdWVMb2NhdGlvbiBzcmMsIEpTVmFsdWVSZWdzIGRzdCkgewogICAgICAgICBzd2l0
Y2ggKHR5cGUua2luZCkgewogICAgICAgICBjYXNlIFR5cGVLaW5kOjpWb2lkOgogICAgICAgICAg
ICAgaml0Lm1vdmVUcnVzdGVkVmFsdWUoanNVbmRlZmluZWQoKSwgZHN0KTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJMzI6Ci0gICAgICAgICAgICBqaXQuemVy
b0V4dGVuZDMyVG9Xb3JkKHNyYy5ncHIoKSwgZHN0LnBheWxvYWRHUFIoKSk7CisgICAgICAgICAg
ICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKHNyYy5qc3IoKS5wYXlsb2FkR1BSKCksIGRzdC5wYXls
b2FkR1BSKCkpOwogICAgICAgICAgICAgaml0LmJveEludDMyKGRzdC5wYXlsb2FkR1BSKCksIGRz
dCwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpGMzI6CkBAIC01NSwxMyArNTYsMTcgQEAgdm9pZCBtYXJzaGFsbEpTUmVz
dWx0KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSwgY29uc3Qg
Q2FsbEkKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OiB7CiAgICAgICAgICAgICBqaXQubW92
ZVRydXN0ZWRWYWx1ZShqc051bWJlcihwdXJlTmFOKCkpLCBkc3QpOwogICAgICAgICAgICAgYXV0
byBpc05hTiA9IGppdC5icmFuY2hJZk5hTihzcmMuZnByKCkpOworI2lmIFVTRShKU1ZBTFVFNjQp
CiAgICAgICAgICAgICBqaXQuYm94RG91YmxlKHNyYy5mcHIoKSwgZHN0LCBEb05vdEhhdmVUYWdS
ZWdpc3RlcnMpOworI2Vsc2UKKyAgICAgICAgICAgIGppdC5ib3hEb3VibGUoc3JjLmZwcigpLCBk
c3QpOworI2VuZGlmCiAgICAgICAgICAgICBpc05hTi5saW5rKCZqaXQpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDogewogICAgICAgICAgICAgaWYgKGlz
RnVuY3JlZih0eXBlKSB8fCBpc0V4dGVybnJlZih0eXBlKSkKLSAgICAgICAgICAgICAgICBqaXQu
bW92ZShzcmMuZ3ByKCksIGRzdC5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgICAgIGppdC5t
b3ZlVmFsdWVSZWdzKHNyYy5qc3IoKSwgZHN0KTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICBqaXQuYnJlYWtwb2ludCgpOwogICAgICAgICB9CkBAIC02OSw0NCArNzQsODcgQEAg
dm9pZCBtYXJzaGFsbEpTUmVzdWx0KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTaWduYXR1cmUm
IHNpZ25hdHVyZSwgY29uc3QgQ2FsbEkKICAgICB9OwogCiAgICAgaWYgKHNpZ25hdHVyZS5yZXR1
cm5zVm9pZCgpKQotICAgICAgICBqaXQubW92ZVRydXN0ZWRWYWx1ZShqc1VuZGVmaW5lZCgpLCBK
U1ZhbHVlUmVncyB7IEdQUkluZm86OnJldHVyblZhbHVlR1BSIH0pOworICAgICAgICBqaXQubW92
ZVRydXN0ZWRWYWx1ZShqc1VuZGVmaW5lZCgpLCBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUik7CiAg
ICAgZWxzZSBpZiAoc2lnbmF0dXJlLnJldHVybkNvdW50KCkgPT0gMSkgewogICAgICAgICBpZiAo
c2lnbmF0dXJlLnJldHVyblR5cGUoMCkuaXNJNjQoKSkgewotICAgICAgICAgICAgR1BSUmVnIGlu
cHV0R1BSID0gd2FzbUZyYW1lQ29udmVudGlvbi5yZXN1bHRzWzBdLnJlZygpLmdwcigpOworICAg
ICAgICAgICAgSlNWYWx1ZVJlZ3MgaW5wdXRKU1IgPSB3YXNtRnJhbWVDb252ZW50aW9uLnJlc3Vs
dHNbMF0uanNyKCk7CiAgICAgICAgICAgICBHUFJSZWcgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9
IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCkud2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXI7CiAg
ICAgICAgICAgICBpZiAoQ29udGV4dDo6dXNlRmFzdFRMUygpKSB7Ci0gICAgICAgICAgICAgICAg
d2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IGlucHV0R1BSID09IEdQUkluZm86OmFyZ3VtZW50R1BS
MSA/IEdQUkluZm86OmFyZ3VtZW50R1BSMCA6IEdQUkluZm86OmFyZ3VtZW50R1BSMTsKLSAgICAg
ICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZV92PFdhc206Okluc3RhbmNlKiwg
dHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRz
QXJyYXkpPjo6QXJndW1lbnRUeXBlPDE+Pik7CisgICAgICAgICAgICAgICAgd2FzbUNvbnRleHRJ
bnN0YW5jZUdQUiA9IGlucHV0SlNSLnBheWxvYWRHUFIoKSA9PSBHUFJJbmZvOjphcmd1bWVudEdQ
UjEgPyBHUFJJbmZvOjphcmd1bWVudEdQUjAgOiBHUFJJbmZvOjphcmd1bWVudEdQUjE7CisgICAg
ICAgICAgICAgICAgQVNTRVJUKCFpbnB1dEpTUi51c2VzKHdhc21Db250ZXh0SW5zdGFuY2VHUFIp
KTsKKyAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZV92PFdhc206Oklu
c3RhbmNlKiwgdHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVy
dFRvQmlnSW50KT46OkFyZ3VtZW50VHlwZTwxPj4pOwogICAgICAgICAgICAgICAgIGppdC5sb2Fk
V2FzbUNvbnRleHRJbnN0YW5jZSh3YXNtQ29udGV4dEluc3RhbmNlR1BSKTsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252
ZXJ0VG9CaWdJbnQpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCBpbnB1dEdQUik7CisgICAgICAg
ICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50
KT4od2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgaW5wdXRKU1IpOwogICAgICAgICAgICAgaml0LmNh
bGxPcGVyYXRpb24oRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25Db252ZXJ0
VG9CaWdJbnQpKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBib3hXYXNtUmVzdWx0KGpp
dCwgc2lnbmF0dXJlLnJldHVyblR5cGUoMCksIHdhc21GcmFtZUNvbnZlbnRpb24ucmVzdWx0c1sw
XS5yZWcoKSwgSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiB9KTsKKyAgICAg
ICAgICAgIGJveFdhc21SZXN1bHQoaml0LCBzaWduYXR1cmUucmV0dXJuVHlwZSgwKSwgd2FzbUZy
YW1lQ29udmVudGlvbi5yZXN1bHRzWzBdLCBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUik7CiAgICAg
fSBlbHNlIHsKICAgICAgICAgSW5kZXhpbmdUeXBlIGluZGV4aW5nVHlwZSA9IEFycmF5V2l0aFVu
ZGVjaWRlZDsKLSAgICAgICAgSlNWYWx1ZVJlZ3Mgc2NyYXRjaCA9IEpTVmFsdWVSZWdzIHsgd2Fz
bUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1sxXSB9OworICAgICAgICBK
U1ZhbHVlUmVncyBzY3JhdGNoSlNSID0gSlNWYWx1ZVJlZ3MgeworI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgICAgICAgICB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hH
UFJzWzJdLAorI2VuZGlmCisgICAgICAgICAgICB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9s
b2d1ZVNjcmF0Y2hHUFJzWzFdCisgICAgICAgIH07CisKKyAgICAgICAgQVNTRVJUKHNjcmF0Y2hK
U1IucGF5bG9hZEdQUigpICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7CisjaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAgICAgQVNTRVJUKHNjcmF0Y2hKU1IudGFnR1BSKCkgIT0gR1BSUmVnOjpJ
bnZhbGlkR1BSUmVnKTsKKyAgICAgICAgQVNTRVJUKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpICE9
IHNjcmF0Y2hKU1IudGFnR1BSKCkpOworI2VuZGlmCisKICAgICAgICAgLy8gV2UgY2FuIHVzZSB0
aGUgZmlyc3QgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXIgYXMgYSBzY3JhdGNoIHNpbmNlIGl0IHdp
bGwgYWx3YXlzIGJlIG1vdmVkIG9udG8gdGhlIHN0YWNrIGJlZm9yZSBvdGhlciB2YWx1ZXMuCi0g
ICAgICAgIEZQUlJlZyBmcHJTY3JhdGNoID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkuZnByQXJn
c1swXS5mcHIoKTsKKyAgICAgICAgRlBSUmVnIGZwclNjcmF0Y2ggPSB3YXNtQ2FsbGluZ0NvbnZl
bnRpb24oKS5mcHJBcmdzWzBdOwogICAgICAgICBib29sIGhhc0k2NCA9IGZhbHNlOwogICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2lnbmF0dXJlLnJldHVybkNvdW50KCk7ICsraSkg
ewogICAgICAgICAgICAgVmFsdWVMb2NhdGlvbiBsb2MgPSB3YXNtRnJhbWVDb252ZW50aW9uLnJl
c3VsdHNbaV07CiAgICAgICAgICAgICBUeXBlIHR5cGUgPSBzaWduYXR1cmUucmV0dXJuVHlwZShp
KTsKIAogICAgICAgICAgICAgaGFzSTY0IHw9IHR5cGUuaXNJNjQoKTsKLSAgICAgICAgICAgIGlm
IChsb2MuaXNSZWcoKSkgewotICAgICAgICAgICAgICAgIGlmICghdHlwZS5pc0k2NCgpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGJveFdhc21SZXN1bHQoaml0LCBzaWduYXR1cmUucmV0dXJuVHlw
ZShpKSwgbG9jLnJlZygpLCBzY3JhdGNoKTsKLSAgICAgICAgICAgICAgICAgICAgaml0LnN0b3Jl
VmFsdWUoc2NyYXRjaCwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQ
b2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLnJlZygpKS0+b2Zm
c2V0KCkgKyB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5C
eXRlcykpOwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAgICBqaXQu
c3RvcmVWYWx1ZShKU1ZhbHVlUmVncyB7IGxvYy5yZWcoKS5ncHIoKSB9LCBDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRS
ZWdpc3RlcnMuZmluZChsb2MucmVnKCkpLT5vZmZzZXQoKSArIHdhc21GcmFtZUNvbnZlbnRpb24u
aGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSk7CisgICAgICAgICAgICBpZiAobG9j
LmlzR1BSKCkgfHwgbG9jLmlzRlBSKCkpIHsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAg
ICAgICAgICAgIEFTU0VSVCghbG9jLmlzR1BSKCkgfHwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmlu
ZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkgKyA0ID09IHNhdmVkUmVzdWx0UmVn
aXN0ZXJzLmZpbmQobG9jLmpzcigpLnRhZ0dQUigpKS0+b2Zmc2V0KCkpOworI2VuZGlmCisgICAg
ICAgICAgICAgICAgYXV0byBhZGRyZXNzID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVs
cGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHdhc21GcmFtZUNvbnZlbnRpb24uaGVhZGVyQW5k
QXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUu
a2luZCkgeworICAgICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKKyAgICAgICAgICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6CisgICAgICAgICAgICAgICAgICAgIGJveFdhc21SZXN1
bHQoaml0LCB0eXBlLCBsb2MsIHNjcmF0Y2hKU1IpOworICAgICAgICAgICAgICAgICAgICBqaXQu
c3RvcmVWYWx1ZShzY3JhdGNoSlNSLCBhZGRyZXNzLndpdGhPZmZzZXQoc2F2ZWRSZXN1bHRSZWdp
c3RlcnMuZmluZChsb2MuZnByKCkpLT5vZmZzZXQoKSkpOworICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6CisgICAgICAgICAgICAg
ICAgICAgIGppdC5zdG9yZVZhbHVlKGxvYy5qc3IoKSwgYWRkcmVzcy53aXRoT2Zmc2V0KHNhdmVk
UmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpKSk7
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICAgICAgICAgIGJveFdhc21SZXN1bHQoaml0LCB0eXBlLCBsb2MsIHNjcmF0Y2hK
U1IpOworICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNoSlNSLCBhZGRy
ZXNzLndpdGhPZmZzZXQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9h
ZEdQUigpKS0+b2Zmc2V0KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBpZiAoIXR5
cGUuaXNJNjQoKSkgewogICAgICAgICAgICAgICAgICAgICBhdXRvIGxvY2F0aW9uID0gQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIGxvYy5v
ZmZzZXRGcm9tU1AoKSk7Ci0gICAgICAgICAgICAgICAgICAgIFJlZyB0bXAgPSAodHlwZS5pc0Yz
MigpIHx8IHR5cGUuaXNGNjQoKSkgPyBSZWcoZnByU2NyYXRjaCkgOiBSZWcoc2NyYXRjaC5ncHIo
KSk7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjRUb1JlZyhsb2NhdGlvbiwgdG1wKTsK
LSAgICAgICAgICAgICAgICAgICAgYm94V2FzbVJlc3VsdChqaXQsIHNpZ25hdHVyZS5yZXR1cm5U
eXBlKGkpLCB0bXAsIHNjcmF0Y2gpOwotICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1
ZShzY3JhdGNoLCBsb2NhdGlvbik7CisgICAgICAgICAgICAgICAgICAgIFZhbHVlTG9jYXRpb24g
dG1wOworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUua2luZCkgeworICAgICAgICAg
ICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6CisgICAgICAgICAgICAgICAgICAgICAgICB0
bXAgPSBWYWx1ZUxvY2F0aW9uIHsgZnByU2NyYXRjaCB9OworICAgICAgICAgICAgICAgICAgICAg
ICAgaml0LmxvYWRGbG9hdChsb2NhdGlvbiwgZnByU2NyYXRjaCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0Ogor
ICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gVmFsdWVMb2NhdGlvbiB7IGZwclNjcmF0Y2gg
fTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkRG91YmxlKGxvY2F0aW9uLCBmcHJT
Y3JhdGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpJMzI6CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBW
YWx1ZUxvY2F0aW9uIHsgc2NyYXRjaEpTUiB9OworICAgICAgICAgICAgICAgICAgICAgICAgaml0
LmxvYWQzMihsb2NhdGlvbiwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICAgICAgICAgICAgICB0bXAgPSBWYWx1ZUxvY2F0aW9uIHsgc2NyYXRjaEpTUiB9OworICAg
ICAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShsb2NhdGlvbiwgc2NyYXRjaEpTUik7
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICBib3hXYXNtUmVzdWx0KGppdCwgdHlwZSwgdG1wLCBzY3JhdGNo
SlNSKTsKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoc2NyYXRjaEpTUiwgbG9j
YXRpb24pOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIApAQCAtMTM1LDM3ICsx
ODMsNDcgQEAgdm9pZCBtYXJzaGFsbEpTUmVzdWx0KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBT
aWduYXR1cmUmIHNpZ25hdHVyZSwgY29uc3QgQ2FsbEkKIAogICAgICAgICAgICAgICAgIEdQUlJl
ZyB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKS53YXNt
Q29udGV4dEluc3RhbmNlUG9pbnRlcjsKICAgICAgICAgICAgICAgICBpZiAoQ29udGV4dDo6dXNl
RmFzdFRMUygpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHdhc21Db250ZXh0SW5zdGFuY2VHUFIg
PSBHUFJJbmZvOjphcmd1bWVudEdQUjE7Ci0gICAgICAgICAgICAgICAgICAgIHN0YXRpY19hc3Nl
cnQoc3RkOjppc19zYW1lX3Y8V2FzbTo6SW5zdGFuY2UqLCB0eXBlbmFtZSBGdW5jdGlvblRyYWl0
czxkZWNsdHlwZShvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSk+OjpBcmd1bWVudFR5cGU8
MT4+KTsKKyAgICAgICAgICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IHByZWZl
cnJlZEFyZ3VtZW50R1BSPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCksIDE+KCk7
CisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lX3Y8V2FzbTo6
SW5zdGFuY2UqLCB0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxkZWNsdHlwZShvcGVyYXRpb25Db252
ZXJ0VG9CaWdJbnQpPjo6QXJndW1lbnRUeXBlPDE+Pik7CiAgICAgICAgICAgICAgICAgICAgIGpp
dC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZSh3YXNtQ29udGV4dEluc3RhbmNlR1BSKTsKICAgICAg
ICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBpZiAobG9jLmlzUmVnKCkpCi0gICAgICAg
ICAgICAgICAgICAgIGppdC5sb2FkNjQoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVy
czo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLnJl
ZygpKS0+b2Zmc2V0KCkgKyB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3Rh
Y2tTaXplSW5CeXRlcyksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAgICAgICAgICAg
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gbG9jYXRpb24gPSBDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgbG9jLm9mZnNldEZy
b21TUCgpKTsKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NFRvUmVnKGxvY2F0aW9uLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KT4o
d2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICAgICAg
ICAgICAgICBjb25zdGV4cHIgSlNWYWx1ZVJlZ3MgdmFsdWVKU1IgPSBwcmVmZXJyZWRBcmd1bWVu
dEpTUjxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpLCAyPigpOworCisgICAgICAg
ICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGFkZHJlc3MgeyBDQ2FsbEhlbHBlcnM6OnN0
YWNrUG9pbnRlclJlZ2lzdGVyIH07CisgICAgICAgICAgICAgICAgaWYgKGxvYy5pc0dQUigpIHx8
IGxvYy5pc0ZQUigpKSB7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUKHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIo
KSktPm9mZnNldCgpICsgNCA9PSBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS50
YWdHUFIoKSktPm9mZnNldCgpKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICBhZGRyZXNz
ID0gYWRkcmVzcy53aXRoT2Zmc2V0KHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigp
LnBheWxvYWRHUFIoKSktPm9mZnNldCgpICsgd2FzbUZyYW1lQ29udmVudGlvbi5oZWFkZXJBbmRB
cmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgICAgICAgICBhZGRyZXNzID0gYWRkcmVzcy53aXRoT2Zmc2V0KGxvYy5vZmZzZXRGcm9t
U1AoKSk7CisKKyAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGFkZHJlc3MsIHZhbHVlSlNS
KTsKKyAgICAgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9u
Q29udmVydFRvQmlnSW50KT4od2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgdmFsdWVKU1IpOwogICAg
ICAgICAgICAgICAgIGppdC5jYWxsT3BlcmF0aW9uKEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRh
Zz4ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KSk7Ci0gICAgICAgICAgICAgICAgaWYgKGxvYy5p
c1JlZygpKQotICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1ZhbHVlUmVncyB7
IEdQUkluZm86OnJldHVyblZhbHVlR1BSIH0sIENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhl
bHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxv
Yy5yZWcoKSktPm9mZnNldCgpICsgd2FzbUZyYW1lQ29udmVudGlvbi5oZWFkZXJBbmRBcmd1bWVu
dFN0YWNrU2l6ZUluQnl0ZXMpKTsKLSAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg
ICAgICAgICAgYXV0byBsb2NhdGlvbiA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBl
cnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBsb2Mub2Zmc2V0RnJvbVNQKCkpOwotICAgICAgICAg
ICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1ZhbHVlUmVncyB7IEdQUkluZm86OnJldHVyblZh
bHVlR1BSIH0sIGxvY2F0aW9uKTsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
aml0LnN0b3JlVmFsdWUoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIGFkZHJlc3MpOwogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgR1BSUmVnIHdhc21Db250ZXh0SW5zdGFuY2VH
UFIgPSBQaW5uZWRSZWdpc3RlckluZm86OmdldCgpLndhc21Db250ZXh0SW5zdGFuY2VQb2ludGVy
OwogICAgICAgICBpZiAoQ29udGV4dDo6dXNlRmFzdFRMUygpKSB7Ci0gICAgICAgICAgICB3YXNt
Q29udGV4dEluc3RhbmNlR1BSID0gR1BSSW5mbzo6YXJndW1lbnRHUFIxOworICAgICAgICAgICAg
d2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IHByZWZlcnJlZEFyZ3VtZW50R1BSPGRlY2x0eXBlKG9w
ZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KSwgMT4oKTsKICAgICAgICAgICAgIHN0YXRpY19h
c3NlcnQoc3RkOjppc19zYW1lX3Y8V2FzbTo6SW5zdGFuY2UqLCB0eXBlbmFtZSBGdW5jdGlvblRy
YWl0czxkZWNsdHlwZShvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSk+OjpBcmd1bWVudFR5
cGU8MT4+KTsKICAgICAgICAgICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZSh3YXNtQ29u
dGV4dEluc3RhbmNlR1BSKTsKICAgICAgICAgfQogCi0gICAgICAgIGppdC5zZXR1cEFyZ3VtZW50
czxkZWNsdHlwZShvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSk+KHdhc21Db250ZXh0SW5z
dGFuY2VHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigmc2lnbmF0dXJlKSwgaW5kZXhp
bmdUeXBlLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgY29u
c3RleHByIEdQUlJlZyBzYXZlZFJlc3VsdHNHUFIgPSBwcmVmZXJyZWRBcmd1bWVudEdQUjxkZWNs
dHlwZShvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSksIDQ+KCk7CisgICAgICAgIGppdC5t
b3ZlKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0c0dQUik7
CisgICAgICAgIGlmIGNvbnN0ZXhwciAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisg
ICAgICAgICAgICBqaXQuc3ViUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKG1heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rl
cik7CisgICAgICAgIEFTU0VSVCh3YXNtQ29udGV4dEluc3RhbmNlR1BSICE9IHNhdmVkUmVzdWx0
c0dQUik7CisgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25BbGxv
Y2F0ZVJlc3VsdHNBcnJheSk+KHdhc21Db250ZXh0SW5zdGFuY2VHUFIsIENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbVB0cigmc2lnbmF0dXJlKSwgaW5kZXhpbmdUeXBlLCBzYXZlZFJlc3VsdHNHUFIp
OwogICAgICAgICBqaXQuY2FsbE9wZXJhdGlvbihGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+
KG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KSk7CisgICAgICAgIGlmIGNvbnN0ZXhwciAo
bWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAgICBqaXQuYWRkUHRyKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwg
Q0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisKKyAgICAgICAgaml0LmJveENl
bGwoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsKICAg
ICB9CiB9CiAKQEAgLTE3Nyw3ICsyMzUsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVu
Y3Rpb24+IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QKICAg
ICAvLyBGSVhNRSBTdG9wIHVzaW5nIDAgYXMgY29kZUJsb2Nrcy4gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTMyMQogICAgIGppdC5lbWl0WmVyb1RvQ2FsbEZyYW1l
SGVhZGVyKENhbGxGcmFtZVNsb3Q6OmNvZGVCbG9jayk7CiAgICAgTWFjcm9Bc3NlbWJsZXI6OkRh
dGFMYWJlbFB0ciBjYWxsZWVNb3ZlTG9jYXRpb24gPSBqaXQubW92ZVdpdGhQYXRjaChNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbVB0cihudWxscHRyKSwgR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9u
UmV0dXJuR1BSKTsKLSAgICBqaXQuZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKEdQUkluZm86Om5v
blByZXNlcnZlZE5vblJldHVybkdQUiwgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAgICBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MgY2FsbGVlU2xvdCB7IEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVy
LCBDYWxsRnJhbWVTbG90OjpjYWxsZWUgKiBzaXplb2YoUmVnaXN0ZXIpIH07CisgICAgaml0LnN0
b3JlUHRyKEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQUiwgY2FsbGVlU2xvdC53aXRo
T2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGppdC5z
dG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6Oldhc21UYWcpLCBjYWxs
ZWVTbG90LndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7CisjZW5kaWYKICAgICBWZWN0b3I8Q29kZUxv
Y2F0aW9uRGF0YUxhYmVsUHRyPFdhc21FbnRyeVB0clRhZz4+KiBsaW5rZWRDYWxsZWVNb3ZlID0g
JnJlc3VsdC0+Y2FsbGVlTW92ZUxvY2F0aW9uczsKICAgICBqaXQuYWRkTGlua1Rhc2soWz1dIChM
aW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CiAgICAgICAgIGxpbmtlZENhbGxlZU1vdmUtPmFwcGVu
ZChsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8V2FzbUVudHJ5UHRyVGFnPihjYWxsZWVNb3ZlTG9jYXRp
b24pKTsKQEAgLTE5NiwxMSArMjU4LDExIEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0
aW9uPiBjcmVhdGVKU1RvV2FzbVdyYXBwZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAgICAg
UmVnaXN0ZXJBdE9mZnNldExpc3QgcmVnaXN0ZXJzVG9TcGlsbCh0b1NhdmUsIFJlZ2lzdGVyQXRP
ZmZzZXRMaXN0OjpPZmZzZXRCYXNlVHlwZTo6RnJhbWVQb2ludGVyQmFzZWQpOwogICAgIHJlc3Vs
dC0+ZW50cnlwb2ludC5jYWxsZWVTYXZlUmVnaXN0ZXJzID0gcmVnaXN0ZXJzVG9TcGlsbDsKIAot
ICAgIHNpemVfdCB0b3RhbEZyYW1lU2l6ZSA9IHJlZ2lzdGVyc1RvU3BpbGwuc2l6ZSgpICogc2l6
ZW9mKENQVVJlZ2lzdGVyKTsKKyAgICBzaXplX3QgdG90YWxGcmFtZVNpemUgPSByZWdpc3RlcnNU
b1NwaWxsLnNpemVPZkFyZWFJbkJ5dGVzKCk7CiAgICAgQ2FsbEluZm9ybWF0aW9uIHdhc21GcmFt
ZUNvbnZlbnRpb24gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5jYWxsSW5mb3JtYXRpb25Gb3Io
c2lnbmF0dXJlKTsKICAgICBSZWdpc3RlckF0T2Zmc2V0TGlzdCBzYXZlZFJlc3VsdFJlZ2lzdGVy
cyA9IHdhc21GcmFtZUNvbnZlbnRpb24uY29tcHV0ZVJlc3VsdHNPZmZzZXRMaXN0KCk7CiAgICAg
dG90YWxGcmFtZVNpemUgKz0gd2FzbUZyYW1lQ29udmVudGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0
YWNrU2l6ZUluQnl0ZXM7Ci0gICAgdG90YWxGcmFtZVNpemUgKz0gc2F2ZWRSZXN1bHRSZWdpc3Rl
cnMuc2l6ZSgpICogc2l6ZW9mKENQVVJlZ2lzdGVyKTsKKyAgICB0b3RhbEZyYW1lU2l6ZSArPSBz
YXZlZFJlc3VsdFJlZ2lzdGVycy5zaXplT2ZBcmVhSW5CeXRlcygpOwogCiAgICAgdG90YWxGcmFt
ZVNpemUgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRCeXRlcygpLCB0
b3RhbEZyYW1lU2l6ZSk7CiAgICAgaml0LnN1YlB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTMyKHRvdGFsRnJhbWVTaXplKSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
KTsKQEAgLTIyMiw5ICsyODQsMTIgQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+
IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QKIAogICAgICAg
ICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgY2FsbGVlRnJhbWUgPSBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCAwKTsKIAotICAgICAgICAv
LyBXZSdyZSBnb2luZyB0byBzZXQgdGhlIHBpbm5lZCByZWdpc3RlcnMgYWZ0ZXIgdGhpcy4gU28K
LSAgICAgICAgLy8gd2UgY2FuIHVzZSB0aGlzIGFzIGEgc2NyYXRjaCBmb3Igbm93IHNpbmNlIHdl
IHNhdmVkIGl0IGFib3ZlLgotICAgICAgICBHUFJSZWcgc2NyYXRjaFJlZyA9IHBpbm5lZFJlZ3Mu
YmFzZU1lbW9yeVBvaW50ZXI7CisgICAgICAgIEpTVmFsdWVSZWdzIHNjcmF0Y2hKU1IgeworI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5w
cm9sb2d1ZVNjcmF0Y2hHUFJzWzJdLAorI2VuZGlmCisgICAgICAgICAgICB3YXNtQ2FsbGluZ0Nv
bnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdCisgICAgICAgIH07CiAKICAgICAgICAg
aWYgKCFDb250ZXh0Ojp1c2VGYXN0VExTKCkpIHsKICAgICAgICAgICAgIGppdC5sb2FkUHRyKEND
YWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNDYWxsaW5n
Q29udmVudGlvbjo6aW5zdGFuY2VTdGFja09mZnNldCksIHdhc21Db250ZXh0SW5zdGFuY2VHUFIp
OwpAQCAtMjM3LDIyICszMDIsMzQgQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+
IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QKICAgICAgICAg
ICAgIFR5cGUgdHlwZSA9IHNpZ25hdHVyZS5hcmd1bWVudChpKTsKICAgICAgICAgICAgIENDYWxs
SGVscGVyczo6QWRkcmVzcyBqc1BhcmFtKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBqc0Zy
YW1lQ29udmVudGlvbi5wYXJhbXNbaV0ub2Zmc2V0RnJvbUZQKCkpOwogICAgICAgICAgICAgaWYg
KHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLmlzU3RhY2tBcmd1bWVudCgpKSB7CisgICAg
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGFkZHIgeyBjYWxsZWVGcmFtZS53aXRo
T2Zmc2V0KHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSB9Owog
ICAgICAgICAgICAgICAgIGlmICh0eXBlLmlzSTMyKCkgfHwgdHlwZS5pc0YzMigpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGppdC5sb2FkMzIoanNQYXJhbSwgc2NyYXRjaFJlZyk7Ci0gICAgICAg
ICAgICAgICAgICAgIGppdC5zdG9yZTMyKHNjcmF0Y2hSZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZz
ZXQod2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgaml0LmxvYWQzMihqc1BhcmFtLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIo
KSk7CisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZTMyKHNjcmF0Y2hKU1IucGF5bG9hZEdQ
UigpLCBhZGRyLndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOworI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbTMyKDApLCBhZGRyLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7CisjZW5kaWYKICAgICAgICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0s
IHNjcmF0Y2hSZWcpOwotICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmU2NChzY3JhdGNoUmVn
LCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLm9m
ZnNldEZyb21TUCgpKSk7CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQYXJh
bSwgc2NyYXRjaEpTUik7CisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0
Y2hKU1IsIGFkZHIpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKHR5cGUuaXNJMzIoKSB8fCB0eXBlLmlzRjMyKCkpCi0gICAgICAg
ICAgICAgICAgICAgIGppdC5sb2FkMzJUb1JlZyhqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9u
LnBhcmFtc1tpXS5yZWcoKSk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
ICAgICBqaXQubG9hZDY0VG9SZWcoanNQYXJhbSwgd2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNb
aV0ucmVnKCkpOworICAgICAgICAgICAgICAgIGlmICh0eXBlLmlzRjMyKCkpCisgICAgICAgICAg
ICAgICAgICAgIGppdC5sb2FkRmxvYXQoanNQYXJhbSwgd2FzbUZyYW1lQ29udmVudGlvbi5wYXJh
bXNbaV0uZnByKCkpOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUuaXNGNjQoKSkKKyAg
ICAgICAgICAgICAgICAgICAgaml0LmxvYWREb3VibGUoanNQYXJhbSwgd2FzbUZyYW1lQ29udmVu
dGlvbi5wYXJhbXNbaV0uZnByKCkpOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUuaXNJ
MzIoKSkgeworICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDMyKGpzUGFyYW0sIHdhc21GcmFt
ZUNvbnZlbnRpb24ucGFyYW1zW2ldLmpzcigpLnBheWxvYWRHUFIoKSk7CisjaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAgICAgICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoMCksIHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLmpzcigpLnRhZ0dQUigp
KTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBq
aXQubG9hZFZhbHVlKGpzUGFyYW0sIHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLmpzcigp
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAorI2lmICFDUFUoQVJNKSAvLyBB
Uk0gaGFzIG5vIHBpbm5lZCByZWdpc3RlcnMgZm9yIFdhc20gTWVtb3J5LCBzbyBubyBuZWVkIHRv
IHNldCB0aGVtIHVwCiAgICAgaWYgKCEhaW5mby5tZW1vcnkpIHsKICAgICAgICAgR1BSUmVnIGJh
c2VNZW1vcnkgPSBwaW5uZWRSZWdzLmJhc2VNZW1vcnlQb2ludGVyOwogICAgICAgICBHUFJSZWcg
c2l6ZSA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMF07CkBA
IC0yNjMsMTcgKzM0MCwxOCBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4gY3Jl
YXRlSlNUb1dhc21XcmFwcGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogCiAgICAgICAgIEdQ
UlJlZyBjdXJyZW50SW5zdGFuY2VHUFIgPSBDb250ZXh0Ojp1c2VGYXN0VExTKCkgPyBiYXNlTWVt
b3J5IDogd2FzbUNvbnRleHRJbnN0YW5jZUdQUjsKICAgICAgICAgaWYgKGlzQVJNNjRFKCkpIHsK
LSAgICAgICAgICAgIGlmIChtb2RlICE9IFdhc206Ok1lbW9yeU1vZGU6OlNpZ25hbGluZykKKyAg
ICAgICAgICAgIGlmIChtb2RlID09IFdhc206Ok1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nKQog
ICAgICAgICAgICAgICAgIHNpemUgPSBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lz
dGVyOwogICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGN1cnJl
bnRJbnN0YW5jZUdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkQm91bmRzQ2hlY2tp
bmdTaXplKCkpLCBzaXplKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChtb2Rl
ICE9IFdhc206Ok1lbW9yeU1vZGU6OlNpZ25hbGluZykKKyAgICAgICAgICAgIGlmIChtb2RlID09
IFdhc206Ok1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nKQogICAgICAgICAgICAgICAgIGppdC5s
b2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhjdXJyZW50SW5zdGFuY2VHUFIsIFdhc206Oklu
c3RhbmNlOjpvZmZzZXRPZkNhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSgpKSwgcGlubmVkUmVncy5i
b3VuZHNDaGVja2luZ1NpemVSZWdpc3Rlcik7CiAgICAgICAgIH0KIAogICAgICAgICBqaXQubG9h
ZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoY3VycmVudEluc3RhbmNlR1BSLCBXYXNtOjpJbnN0
YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnkoKSksIGJhc2VNZW1vcnkpOwogICAgICAgICBqaXQu
Y2FnZUNvbmRpdGlvbmFsbHlBbmRVbnRhZyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5
LCBzaXplLCBzY3JhdGNoKTsKICAgICB9CisjZW5kaWYKIAogICAgIENDYWxsSGVscGVyczo6Q2Fs
bCBjYWxsID0gaml0LnRocmVhZFNhZmVQYXRjaGFibGVOZWFyQ2FsbCgpOwogICAgIHVuc2lnbmVk
IGZ1bmN0aW9uSW5kZXhTcGFjZSA9IGZ1bmN0aW9uSW5kZXggKyBpbmZvLmltcG9ydEZ1bmN0aW9u
Q291bnQoKTsKQEAgLTI4Niw3ICszNjQsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5j
dGlvbj4gY3JlYXRlSlNUb1dhc21XcmFwcGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogCiAg
ICAgZm9yIChjb25zdCBSZWdpc3RlckF0T2Zmc2V0JiByZWdBdE9mZnNldCA6IHJlZ2lzdGVyc1Rv
U3BpbGwpIHsKICAgICAgICAgR1BSUmVnIHJlZyA9IHJlZ0F0T2Zmc2V0LnJlZygpLmdwcigpOwot
ICAgICAgICBBU1NFUlQocmVnICE9IEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAg
QVNTRVJUKCFKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUi51c2VzKHJlZykpOwogICAgICAgICBwdHJk
aWZmX3Qgb2Zmc2V0ID0gcmVnQXRPZmZzZXQub2Zmc2V0KCk7CiAgICAgICAgIGppdC5sb2FkUHRy
KENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwgb2Zmc2V0
KSwgcmVnKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XYXNtVG9KUy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5j
cHAKaW5kZXggZWU0YjdkZmI2ZDM3Li41MTNjZDhlYTZjNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJD
Q2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5SW5zdGFuY2UuaCIKICNpbmNs
dWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwuaCIKICNpbmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKICNpbmNsdWRlICJXYXNtQ2FsbGlu
Z0NvbnZlbnRpb24uaCIKICNpbmNsdWRlICJXYXNtQ29udGV4dElubGluZXMuaCIKQEAgLTY4LDcg
KzY5LDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4s
IEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAvLyBJZiB3ZSBldmVyIGNoYW5n
ZSB0aGlzLCB3ZSB3aWxsIGFsc28gbmVlZCB0byBjaGFuZ2UgV2FzbUIzSVJHZW5lcmF0b3IuCiAK
ICAgICAvLyBCZWxvdywgd2UgYXNzdW1lIHRoYXQgdGhlIEpTIGNhbGxpbmcgY29udmVudGlvbiBp
cyBhbHdheXMgb24gdGhlIHN0YWNrLgotICAgIEFTU0VSVCghanNDQy5ncHJBcmdzLnNpemUoKSk7
CisgICAgQVNTRVJUKCFqc0NDLmpzckFyZ3Muc2l6ZSgpKTsKICAgICBBU1NFUlQoIWpzQ0MuZnBy
QXJncy5zaXplKCkpOwogCiAgICAgaml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CkBAIC04NSwx
NCArODYsMjIgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRh
Zz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAvLyBmb3IgdXMgaGVyZS4K
IAogICAgIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mUGFyYW1ldGVycyA9IGFyZ0NvdW50ICsgMTsg
Ly8gVGhlcmUgaXMgYSAidGhpcyIgYXJndW1lbnQuCi0gICAgY29uc3QgdW5zaWduZWQgbnVtYmVy
T2ZSZWdzRm9yQ2FsbCA9IENhbGxGcmFtZTo6aGVhZGVyU2l6ZUluUmVnaXN0ZXJzICsgbnVtYmVy
T2ZQYXJhbWV0ZXJzOworICAgIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mUmVnc0ZvckNhbGwgPSBD
YWxsRnJhbWU6OmhlYWRlclNpemVJblJlZ2lzdGVycyArIHJvdW5kQXJndW1lbnRDb3VudFRvQWxp
Z25GcmFtZShudW1iZXJPZlBhcmFtZXRlcnMpOworICAgIEFTU0VSVCghKG51bWJlck9mUmVnc0Zv
ckNhbGwgJSBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpKSk7CiAgICAgY29uc3QgdW5zaWduZWQg
bnVtYmVyT2ZCeXRlc0ZvckNhbGwgPSBudW1iZXJPZlJlZ3NGb3JDYWxsICogc2l6ZW9mKFJlZ2lz
dGVyKSAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKTsKLSAgICBjb25zdCB1bnNpZ25lZCBzdGFj
a09mZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudEJ5dGVzKCks
IHN0ZDo6bWF4PHVuc2lnbmVkPihudW1iZXJPZkJ5dGVzRm9yQ2FsbCwgc2F2ZWRSZXN1bHRSZWdp
c3RlcnMuc2l6ZSgpICogc2l6ZW9mKENQVVJlZ2lzdGVyKSkpOworICAgIGNvbnN0IHVuc2lnbmVk
IG51bWJlck9mQnl0ZXNGb3JTYXZlZFJlc3VsdHMgPSBzYXZlZFJlc3VsdFJlZ2lzdGVycy5zaXpl
T2ZBcmVhSW5CeXRlcygpOworICAgIGNvbnN0IHVuc2lnbmVkIHN0YWNrT2Zmc2V0ID0gV1RGOjpy
b3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50Qnl0ZXMoKSwgc3RkOjptYXgobnVtYmVy
T2ZCeXRlc0ZvckNhbGwsIG51bWJlck9mQnl0ZXNGb3JTYXZlZFJlc3VsdHMpKTsKICAgICBqaXQu
c3ViUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc3RhY2tPZmZzZXQpLCBNYWNyb0Fz
c2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgIEpJVDo6QWRkcmVzcyBjYWxsZWVG
cmFtZSA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVy
UmVnaXN0ZXIsIC1zdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihDYWxsZXJGcmFtZUFuZFBD
KSkpOwogCiAgICAgLy8gRklYTUUgbWFrZSB0aGVzZSBsb29wcyB3aGljaCBzd2l0Y2ggb24gU2ln
bmF0dXJlIGlmIHRoZXJlIGFyZSBtYW55IGFyZ3VtZW50cyBvbiB0aGUgc3RhY2suIEl0J2xsIG90
aGVyd2lzZSBiZSBodWdlIGZvciBodWdlIHNpZ25hdHVyZXMuIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU1NDcKIAorI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY29u
c3RleHByIEpTVmFsdWVSZWdzIGpzQXJnMTAgeyBHUFJJbmZvOjphcmd1bWVudEdQUjAgfTsKKyNl
bGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgY29uc3RleHByIEpTVmFsdWVSZWdzIGpzQXJnMTAg
eyBHUFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUkluZm86OmFyZ3VtZW50R1BSMCB9OworI2VuZGlm
CisKICAgICAvLyBGaXJzdCBnbyB0aHJvdWdoIHRoZSBpbnRlZ2VyIHBhcmFtZXRlcnMsIGZyZWVp
bmcgdXAgdGhlaXIgcmVnaXN0ZXIgZm9yIHVzZSBhZnRlcndhcmRzLgogICAgIHsKICAgICAgICAg
dW5zaWduZWQgbWFyc2hhbGxlZEdQUnMgPSAwOwpAQCAtMTExLDIxICsxMjAsMjEgQEAgRXhwZWN0
ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJl
PiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6CiAg
ICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpJMzI6CiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5k
OjpJNjQ6IHsKLSAgICAgICAgICAgICAgICBHUFJSZWcgZ3ByUmVnOwotICAgICAgICAgICAgICAg
IGlmIChtYXJzaGFsbGVkR1BScyA8IHdhc21DQy5ncHJBcmdzLnNpemUoKSkKLSAgICAgICAgICAg
ICAgICAgICAgZ3ByUmVnID0gd2FzbUNDLmdwckFyZ3NbbWFyc2hhbGxlZEdQUnNdLmdwcigpOwor
ICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzIGFyZ1JlZzsKKyAgICAgICAgICAgICAgICBpZiAo
bWFyc2hhbGxlZEdQUnMgPCB3YXNtQ0MuanNyQXJncy5zaXplKCkpCisgICAgICAgICAgICAgICAg
ICAgIGFyZ1JlZyA9IHdhc21DQy5qc3JBcmdzW21hcnNoYWxsZWRHUFJzXTsKICAgICAgICAgICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgLy8gV2UndmUgYWxyZWFkeSBzcGlsbGVk
IGFsbCBhcmd1bWVudHMsIHRoZXNlIHJlZ2lzdGVycyBhcmUgYXZhaWxhYmxlIGFzIHNjcmF0Y2gu
Ci0gICAgICAgICAgICAgICAgICAgIGdwclJlZyA9IEdQUkluZm86OmFyZ3VtZW50R1BSMDsKLSAg
ICAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NChKSVQ6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIGZyT2Zmc2V0KSwgZ3ByUmVnKTsKKyAgICAgICAgICAgICAgICAgICAgYXJn
UmVnID0ganNBcmcxMDsKKyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShKSVQ6OkFk
ZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGZyT2Zmc2V0KSwgYXJnUmVnKTsKICAg
ICAgICAgICAgICAgICAgICAgZnJPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgKyttYXJzaGFsbGVkR1BSczsKICAgICAgICAgICAg
ICAgICBpZiAoYXJnVHlwZS5pc0kzMigpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGppdC56ZXJv
RXh0ZW5kMzJUb1dvcmQoZ3ByUmVnLCBncHJSZWcpOyAvLyBDbGVhciBub24taW50MzIgYW5kIG5v
bi10YWcgYml0cy4KLSAgICAgICAgICAgICAgICAgICAgaml0LmJveEludDMyKGdwclJlZywgSlNW
YWx1ZVJlZ3MoZ3ByUmVnKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgICAgICAg
ICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChhcmdSZWcucGF5bG9hZEdQUigpLCBhcmdSZWcu
cGF5bG9hZEdQUigpKTsgLy8gQ2xlYXIgbm9uLWludDMyIGFuZCBub24tdGFnIGJpdHMuCisgICAg
ICAgICAgICAgICAgICAgIGppdC5ib3hJbnQzMihhcmdSZWcucGF5bG9hZEdQUigpLCBhcmdSZWcs
IERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIGppdC5zdG9yZTY0KGdwclJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFt
ZU9mZnNldCkpOworICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKGFyZ1JlZywgY2FsbGVl
RnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCkpOwogICAgICAgICAgICAgICAgIGNh
bGxlZUZyYW1lT2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9CkBAIC0xNDIsNiArMTUxLDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhW
TSYgdm0KICAgICB9CiAgICAgCiAgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIC8v
IEludGVnZXIgcmVnaXN0ZXJzIGhhdmUgYWxyZWFkeSBiZWVuIHNwaWxsZWQsIHRoZXNlIGFyZSBu
b3cgYXZhaWxhYmxlLgogICAgICAgICBHUFJSZWcgZG91YmxlRW5jb2RlT2Zmc2V0R1BSUmVnID0g
R1BSSW5mbzo6YXJndW1lbnRHUFIwOwogICAgICAgICBHUFJSZWcgc2NyYXRjaCA9IEdQUkluZm86
OmFyZ3VtZW50R1BSMTsKQEAgLTE1Nyw2ICsxNjcsNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxl
ckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2
bQogICAgICAgICAgICAgICAgIGhhc01hdGVyaWFsaXplZERvdWJsZUVuY29kZU9mZnNldCA9IHRy
dWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH07CisjZW5kaWYKIAogICAgICAgICB1bnNpZ25l
ZCBtYXJzaGFsbGVkR1BScyA9IDA7CiAgICAgICAgIHVuc2lnbmVkIG1hcnNoYWxsZWRGUFJzID0g
MDsKQEAgLTE2NSwxMCArMTc2LDE0IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxX
YXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAKICAgICAg
ICAgYXV0byBtYXJzaGFsbEZQUiA9IFsmXSAoRlBSUmVnIGZwclJlZykgewogICAgICAgICAgICAg
aml0LnB1cmlmeU5hTihmcHJSZWcpOworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgICAgICBq
aXQubW92ZURvdWJsZVRvNjQoZnByUmVnLCBzY3JhdGNoKTsKICAgICAgICAgICAgIG1hdGVyaWFs
aXplRG91YmxlRW5jb2RlT2Zmc2V0KGRvdWJsZUVuY29kZU9mZnNldEdQUlJlZyk7CiAgICAgICAg
ICAgICBqaXQuYWRkNjQoZG91YmxlRW5jb2RlT2Zmc2V0R1BSUmVnLCBzY3JhdGNoKTsKICAgICAg
ICAgICAgIGppdC5zdG9yZTY0KHNjcmF0Y2gsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVl
RnJhbWVPZmZzZXQpKTsKKyNlbHNlCisgICAgICAgICAgICBqaXQuc3RvcmVEb3VibGUoZnByUmVn
LCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSk7CisjZW5kaWYKICAg
ICAgICAgICAgIGNhbGxlZUZyYW1lT2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CiAgICAgICAg
ICAgICArK21hcnNoYWxsZWRGUFJzOwogICAgICAgICB9OwpAQCAtMTg2LDcgKzIwMSw3IEBAIEV4
cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFp
bHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpJMzI6CiAg
ICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6IHsKICAgICAgICAgICAgICAgICAvLyBTa2lw
cGVkOiBoYW5kbGVkIGFib3ZlLgotICAgICAgICAgICAgICAgIGlmIChtYXJzaGFsbGVkR1BScyA+
PSB3YXNtQ0MuZ3ByQXJncy5zaXplKCkpCisgICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRH
UFJzID49IHdhc21DQy5qc3JBcmdzLnNpemUoKSkKICAgICAgICAgICAgICAgICAgICAgZnJPZmZz
ZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKICAgICAgICAgICAgICAgICArK21hcnNoYWxsZWRHUFJz
OwogICAgICAgICAgICAgICAgIGNhbGxlZUZyYW1lT2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7
CkBAIC0xOTUsNyArMjEwLDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21F
bnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAg
IGNhc2UgVHlwZUtpbmQ6OkYzMjogewogICAgICAgICAgICAgICAgIEZQUlJlZyBmcHJSZWc7CiAg
ICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRGUFJzIDwgd2FzbUNDLmZwckFyZ3Muc2l6ZSgp
KQotICAgICAgICAgICAgICAgICAgICBmcHJSZWcgPSB3YXNtQ0MuZnByQXJnc1ttYXJzaGFsbGVk
RlBSc10uZnByKCk7CisgICAgICAgICAgICAgICAgICAgIGZwclJlZyA9IHdhc21DQy5mcHJBcmdz
W21hcnNoYWxsZWRGUFJzXTsKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAg
ICAgICAgLy8gV2UndmUgYWxyZWFkeSBzcGlsbGVkIGFsbCBhcmd1bWVudHMsIHRoZXNlIHJlZ2lz
dGVycyBhcmUgYXZhaWxhYmxlIGFzIHNjcmF0Y2guCiAgICAgICAgICAgICAgICAgICAgIGZwclJl
ZyA9IEZQUkluZm86OmFyZ3VtZW50RlBSMDsKQEAgLTIwOSw3ICsyMjQsNyBAQCBFeHBlY3RlZDxN
YWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdh
c21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OiB7CiAgICAgICAg
ICAgICAgICAgRlBSUmVnIGZwclJlZzsKICAgICAgICAgICAgICAgICBpZiAobWFyc2hhbGxlZEZQ
UnMgPCB3YXNtQ0MuZnByQXJncy5zaXplKCkpCi0gICAgICAgICAgICAgICAgICAgIGZwclJlZyA9
IHdhc21DQy5mcHJBcmdzW21hcnNoYWxsZWRGUFJzXS5mcHIoKTsKKyAgICAgICAgICAgICAgICAg
ICAgZnByUmVnID0gd2FzbUNDLmZwckFyZ3NbbWFyc2hhbGxlZEZQUnNdOwogICAgICAgICAgICAg
ICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBhbHJlYWR5IHNwaWxsZWQg
YWxsIGFyZ3VtZW50cywgdGhlc2UgcmVnaXN0ZXJzIGFyZSBhdmFpbGFibGUgYXMgc2NyYXRjaC4K
ICAgICAgICAgICAgICAgICAgICAgZnByUmVnID0gRlBSSW5mbzo6YXJndW1lbnRGUFIwOwpAQCAt
MjMxLDEyICsyNDYsMTUgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRy
eVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgdW5zaWdu
ZWQgY2FsbGVlRnJhbWVPZmZzZXQgPSBDYWxsRnJhbWVTbG90OjpmaXJzdEFyZ3VtZW50ICogc3Rh
dGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBh
cmdOdW0gPSAwOyBhcmdOdW0gPCBhcmdDb3VudDsgKythcmdOdW0pIHsKICAgICAgICAgICAgIGlm
IChzaWduYXR1cmUuYXJndW1lbnQoYXJnTnVtKS5pc0k2NCgpKSB7Ci0gICAgICAgICAgICAgICAg
aml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAg
ICAgICAgICAgICAgaml0LmxvYWQ2NChjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1l
T2Zmc2V0KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICAgICAgICAgICAgICBqaXQuc2V0
dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KT4oR1BSSW5mbzo6
YXJndW1lbnRHUFIwLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICAgICAgICAgIHVz
aW5nIE9wZXJhdGlvbiA9IGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk7CisgICAg
ICAgICAgICAgICAgY29uc3RleHByIEdQUlJlZyB3YXNtSW5zdGFuY2VHUFIgPSBwcmVmZXJyZWRB
cmd1bWVudEdQUjxPcGVyYXRpb24sIDE+KCk7CisgICAgICAgICAgICAgICAgY29uc3RleHByIEpT
VmFsdWVSZWdzIHZhbHVlSlNSID0gcHJlZmVycmVkQXJndW1lbnRKU1I8T3BlcmF0aW9uLCAyPigp
OworICAgICAgICAgICAgICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZSh3YXNtSW5zdGFu
Y2VHUFIpOworICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoY2FsbGVlRnJhbWUud2l0aE9m
ZnNldChjYWxsZWVGcmFtZU9mZnNldCksIHZhbHVlSlNSKTsKKyAgICAgICAgICAgICAgICBqaXQu
c2V0dXBBcmd1bWVudHM8T3BlcmF0aW9uPih3YXNtSW5zdGFuY2VHUFIsIHZhbHVlSlNSKTsKICAg
ICAgICAgICAgICAgICBhdXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25QdHJUYWcpOwogICAg
ICAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRKdW1wSWZFeGNlcHRp
b24odm0pKTsKLSAgICAgICAgICAgICAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZXR1cm5WYWx1
ZUdQUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCkpOworICAgICAg
ICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBjYWxsZWVG
cmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSk7CiAgICAgICAgICAgICAgICAgaml0
LmFkZExpbmtUYXNrKFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewogICAgICAgICAgICAg
ICAgICAgICBsaW5rQnVmZmVyLmxpbmsoY2FsbCwgRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFn
PihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpKTsKICAgICAgICAgICAgICAgICB9KTsKQEAgLTI0
OCwxNiArMjY2LDIyIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQ
dHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgaml0LmxvYWRXYXNt
Q29udGV4dEluc3RhbmNlKEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgaml0LmxvYWRQdHIo
Q0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgSW5zdGFuY2U6Om9m
ZnNldE9mT3duZXIoKSksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgaml0LmxvYWRQdHIo
Q0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgSlNXZWJBc3NlbWJs
eUluc3RhbmNlOjpvZmZzZXRPZk1vZHVsZSgpKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAg
ICBqaXQuZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgQ2Fs
bEZyYW1lU2xvdDo6Y2FsbGVlKTsKLQotICAgIEdQUlJlZyBpbXBvcnRKU0NlbGxHUFJSZWcgPSBH
UFJJbmZvOjpyZWdUMDsgLy8gQ2FsbGVlIG5lZWRzIHRvIGJlIGluIHJlZ1QwIGZvciBzbG93IHBh
dGggYmVsb3cuCisgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGNhbGxlZVNsb3QgeyBHUFJJbmZv
OjpjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlICAqIHNpemVvZihSZWdp
c3RlcikgfTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBjYWxsZWVT
bG90KTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBjYWxsZWVTbG90LndpdGhPZmZzZXQo
VGFnT2Zmc2V0KSk7CisjZW5kaWYKIAorICAgIC8vIGpzQXJnMTAgbWlnaHQgb3ZlcmxhcCB3aXRo
IHJlZ1QwLCBzbyBzdG9yZSAndGhpcycgYXJndW1lbnQgZmlyc3QKKyAgICBqaXQuc3RvcmVWYWx1
ZShqc1VuZGVmaW5lZCgpLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OnRo
aXNBcmd1bWVudCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpLCBqc0FyZzEw
KTsKKyAgICBjb25zdGV4cHIgR1BSUmVnIGltcG9ydEpTQ2VsbEdQUlJlZyA9IEdQUkluZm86OnJl
Z1QwOyAvLyBDYWxsZWUgbmVlZHMgdG8gYmUgaW4gcmVnVDAgZm9yIHNsb3cgcGF0aCBiZWxvdy4K
ICAgICBBU1NFUlQoIXdhc21DQy5jYWxsZWVTYXZlUmVnaXN0ZXJzLmdldChpbXBvcnRKU0NlbGxH
UFJSZWcpKTsKICAgICBtYXRlcmlhbGl6ZUltcG9ydEpTQ2VsbChqaXQsIGltcG9ydEluZGV4LCBp
bXBvcnRKU0NlbGxHUFJSZWcpOwotCi0gICAgaml0LnN0b3JlNjQoaW1wb3J0SlNDZWxsR1BSUmVn
LCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAqIHN0YXRpY19j
YXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKKyAgICBqaXQuc3RvcmVQdHIoaW1wb3J0SlND
ZWxsR1BSUmVnLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAq
IHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKKyNpZiBVU0UoSlNWQUxVRTMy
XzY0KQorICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6
OkNlbGxUYWcpLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAq
IHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBUYWdPZmZzZXQpKTsKKyNlbmRp
ZgogICAgIGppdC5zdG9yZTMyKEpJVDo6VHJ1c3RlZEltbTMyKG51bWJlck9mUGFyYW1ldGVycyks
IGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1
ZGluZ1RoaXMgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgUGF5bG9hZE9m
ZnNldCkpOwotICAgIGppdC5zdG9yZTY0KEpJVDo6VHJ1c3RlZEltbTY0KEpTVmFsdWU6OlZhbHVl
VW5kZWZpbmVkKSwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90Ojp0aGlzQXJn
dW1lbnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CiAKICAgICAvLyBG
SVhNRSBUYWlsIGNhbGwgaWYgdGhlIHdhc20gcmV0dXJuIHR5cGUgaXMgdm9pZCBhbmQgbm8gcmVn
aXN0ZXJzIHdlcmUgc3BpbGxlZC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2NTQ4OAogCkBAIC0yODIsMTEgKzMwNiwxMSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxl
ckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2
bQogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6IHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBP
cHRpbWl6ZSBJNjQgZXh0cmFjdGlvbiBmcm9tIEJpZ0ludC4KICAgICAgICAgICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAwNTMKLSAgICAgICAgICAgIEdQ
UlJlZyBkZXN0ID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uZ3ByKCk7Ci0gICAgICAgICAgICBq
aXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvSTY0KT4oR1BSSW5m
bzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgZGVzdCA9IHdhc21D
YWxsSW5mby5yZXN1bHRzWzBdLmpzcigpOworICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRz
PGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCk+KEpTUkluZm86OnJldHVyblZhbHVlSlNS
KTsKICAgICAgICAgICAgIGF1dG8gY2FsbCA9IGppdC5jYWxsKE9wZXJhdGlvblB0clRhZyk7CiAg
ICAgICAgICAgICBleGNlcHRpb25DaGVja3MuYXBwZW5kKGppdC5lbWl0SnVtcElmRXhjZXB0aW9u
KHZtKSk7Ci0gICAgICAgICAgICBqaXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVz
dCk7CisgICAgICAgICAgICBqaXQubW92ZVZhbHVlUmVncyhKU1JJbmZvOjpyZXR1cm5WYWx1ZUpT
UiwgZGVzdCk7CiAKICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXIm
IGxpbmtCdWZmZXIpIHsKICAgICAgICAgICAgICAgICBsaW5rQnVmZmVyLmxpbmsoY2FsbCwgRnVu
Y3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25Db252ZXJ0VG9JNjQpKTsKQEAgLTI5
NiwxOCArMzIwLDIxIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQ
dHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OkkzMjogewogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBkb25lOwog
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBzbG93UGF0aDsKLSAgICAgICAgICAg
IEdQUlJlZyBkZXN0ID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uZ3ByKCk7CisgICAgICAgICAg
ICBKU1ZhbHVlUmVncyBkZXN0SlNSID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uanNyKCk7CiAK
LSAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIoR1BSSW5m
bzo6cmV0dXJuVmFsdWVHUFIsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycykpOwotICAgICAgICAgICAg
c2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdEludDMyKEpTVmFsdWVSZWdzKEdQUkluZm86
OnJldHVyblZhbHVlR1BSKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKSk7Ci0gICAgICAgICAgICBq
aXQuemVyb0V4dGVuZDMyVG9Xb3JkKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBkZXN0KTsKKyAg
ICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIoSlNSSW5mbzo6
cmV0dXJuVmFsdWVKU1IsIGppdC5zY3JhdGNoUmVnaXN0ZXIoKSwgRG9Ob3RIYXZlVGFnUmVnaXN0
ZXJzKSk7CisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIo
SlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycykpOworICAgICAg
ICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUi5wYXls
b2FkR1BSKCksIGRlc3RKU1IucGF5bG9hZEdQUigpKTsKICAgICAgICAgICAgIGRvbmUuYXBwZW5k
KGppdC5qdW1wKCkpOwogCiAgICAgICAgICAgICBzbG93UGF0aC5saW5rKCZqaXQpOwotICAgICAg
ICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0kzMik+
KEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50
czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9JMzIpPihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpT
Uik7CiAgICAgICAgICAgICBhdXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25QdHJUYWcpOwog
ICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1bXBJZkV4Y2VwdGlv
bih2bSkpOwotICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRl
c3QpOworICAgICAgICAgICAgaml0Lm1vdmUoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IucGF5bG9h
ZEdQUigpLCBkZXN0SlNSLnBheWxvYWRHUFIoKSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAg
ICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCBkZXN0SlNS
LnRhZ0dQUigpKTsKKyNlbmRpZgogCiAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soWz1dIChM
aW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5saW5r
KGNhbGwsIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQ29udmVydFRvSTMy
KSk7CkBAIC0zMTcsMjMgKzM0NCwyNiBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8
V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOiB7Ci0g
ICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CiAgICAgICAgICAgICBGUFJS
ZWcgZGVzdCA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmZwcigpOwogCi0gICAgICAgICAgICBh
dXRvIG5vdEFOdW1iZXIgPSBqaXQuYnJhbmNoSWZOb3ROdW1iZXIoR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7Ci0gICAgICAgICAgICBhdXRvIGlzRG91Ymxl
ID0gaml0LmJyYW5jaElmTm90SW50MzIoSlNWYWx1ZVJlZ3MoR1BSSW5mbzo6cmV0dXJuVmFsdWVH
UFIpLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpK
dW1wTGlzdCBkb25lOworICAgICAgICAgICAgYXV0byBub3RBTnVtYmVyID0gaml0LmJyYW5jaElm
Tm90TnVtYmVyKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBqaXQuc2NyYXRjaFJlZ2lzdGVyKCks
IERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAgICBhdXRvIGlzRG91YmxlID0gaml0
LmJyYW5jaElmTm90SW50MzIoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIERvTm90SGF2ZVRhZ1Jl
Z2lzdGVycyk7CiAgICAgICAgICAgICAvLyBXZSdyZSBhbiBpbnQzMgotICAgICAgICAgICAgaml0
LnNpZ25FeHRlbmQzMlRvUHRyKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZXR1
cm5WYWx1ZUdQUik7Ci0gICAgICAgICAgICBqaXQuY29udmVydEludDY0VG9GbG9hdChHUFJJbmZv
OjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CisgICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9G
bG9hdChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CiAgICAgICAgICAgICBkb25lLmFw
cGVuZChqaXQuanVtcCgpKTsKIAogICAgICAgICAgICAgaXNEb3VibGUubGluaygmaml0KTsKKyNp
ZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgaml0LnVuYm94RG91YmxlV2l0aG91dEFzc2Vy
dGlvbnMoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJldHVyblZhbHVlR1BSMiwg
ZGVzdCwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyNlbHNlCisgICAgICAgICAgICBqaXQudW5i
b3hEb3VibGUoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIGRlc3QpOworI2VuZGlmCiAgICAgICAg
ICAgICBqaXQuY29udmVydERvdWJsZVRvRmxvYXQoZGVzdCwgZGVzdCk7CiAgICAgICAgICAgICBk
b25lLmFwcGVuZChqaXQuanVtcCgpKTsKIAogICAgICAgICAgICAgbm90QU51bWJlci5saW5rKCZq
aXQpOwotICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNv
bnZlcnRUb0YzMik+KEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgICAgIGppdC5z
ZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9GMzIpPihKU1JJbmZvOjpy
ZXR1cm5WYWx1ZUpTUik7CiAgICAgICAgICAgICBhdXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRp
b25QdHJUYWcpOwogICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1
bXBJZkV4Y2VwdGlvbih2bSkpOwogICAgICAgICAgICAgaml0Lm1vdmUoRlBSSW5mbzo6cmV0dXJu
VmFsdWVGUFIgLCBkZXN0KTsKQEAgLTM0NiwyMiArMzc2LDI1IEBAIEV4cGVjdGVkPE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMo
Vk0mIHZtCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFR5cGVL
aW5kOjpGNjQ6IHsKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZG9uZTsKICAg
ICAgICAgICAgIEZQUlJlZyBkZXN0ID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uZnByKCk7Cisg
ICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CiAKLSAgICAgICAgICAgIGF1
dG8gbm90QU51bWJlciA9IGppdC5icmFuY2hJZk5vdE51bWJlcihHUFJJbmZvOjpyZXR1cm5WYWx1
ZUdQUiwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKLSAgICAgICAgICAgIGF1dG8gaXNEb3VibGUg
PSBqaXQuYnJhbmNoSWZOb3RJbnQzMihKU1ZhbHVlUmVncyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQ
UiksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAgICBhdXRvIG5vdEFOdW1iZXIg
PSBqaXQuYnJhbmNoSWZOb3ROdW1iZXIoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIGppdC5zY3Jh
dGNoUmVnaXN0ZXIoKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgICAgIGF1dG8g
aXNEb3VibGUgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihKU1ZhbHVlUmVncyhKU1JJbmZvOjpyZXR1
cm5WYWx1ZUpTUiksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CiAgICAgICAgICAgICAvLyBXZSdy
ZSBhbiBpbnQzMgotICAgICAgICAgICAgaml0LnNpZ25FeHRlbmQzMlRvUHRyKEdQUkluZm86OnJl
dHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7Ci0gICAgICAgICAgICBqaXQu
Y29udmVydEludDY0VG9Eb3VibGUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOworICAg
ICAgICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKEdQUkluZm86OnJldHVyblZhbHVlR1BS
LCBkZXN0KTsKICAgICAgICAgICAgIGRvbmUuYXBwZW5kKGppdC5qdW1wKCkpOwogCiAgICAgICAg
ICAgICBpc0RvdWJsZS5saW5rKCZqaXQpOworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgICAg
ICBqaXQudW5ib3hEb3VibGVXaXRob3V0QXNzZXJ0aW9ucyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQ
UiwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIyLCBkZXN0LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMp
OworI2Vsc2UKKyAgICAgICAgICAgIGppdC51bmJveERvdWJsZShKU1JJbmZvOjpyZXR1cm5WYWx1
ZUpTUiwgZGVzdCk7CisjZW5kaWYKICAgICAgICAgICAgIGRvbmUuYXBwZW5kKGppdC5qdW1wKCkp
OwogCiAgICAgICAgICAgICBub3RBTnVtYmVyLmxpbmsoJmppdCk7Ci0gICAgICAgICAgICBqaXQu
c2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvRjY0KT4oR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIpOworICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBl
KG9wZXJhdGlvbkNvbnZlcnRUb0Y2NCk+KEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsKICAgICAg
ICAgICAgIGF1dG8gY2FsbCA9IGppdC5jYWxsKE9wZXJhdGlvblB0clRhZyk7CiAgICAgICAgICAg
ICBleGNlcHRpb25DaGVja3MuYXBwZW5kKGppdC5lbWl0SnVtcElmRXhjZXB0aW9uKHZtKSk7CiAg
ICAgICAgICAgICBqaXQubW92ZShGUFJJbmZvOjpyZXR1cm5WYWx1ZUZQUiwgZGVzdCk7CkBAIC0z
NzUsNyArNDA4LDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0
clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgfQogICAgICAg
ICBkZWZhdWx0OiAgewogICAgICAgICAgICAgaWYgKFdhc206OmlzRnVuY3JlZihyZXR1cm5UeXBl
KSB8fCBXYXNtOjppc0V4dGVybnJlZihyZXR1cm5UeXBlKSkKLSAgICAgICAgICAgICAgICBqaXQu
bW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uZ3By
KCkpOworICAgICAgICAgICAgICAgIGppdC5tb3ZlVmFsdWVSZWdzKEpTUkluZm86OnJldHVyblZh
bHVlSlNSLCB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5qc3IoKSk7CiAgICAgICAgICAgICBlbHNl
CiAgICAgICAgICAgICAgICAgLy8gRm9yIHRoZSBKYXZhU2NyaXB0IGVtYmVkZGluZywgaW1wb3J0
cyB3aXRoIHRoZXNlIHR5cGVzIGluIHRoZWlyIHNpZ25hdHVyZSByZXR1cm4gYXJlIGEgV2ViQXNz
ZW1ibHkuTW9kdWxlIHZhbGlkYXRpb24gZXJyb3IuCiAgICAgICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM4OSwxMiArNDIyLDI5IEBAIEV4cGVjdGVkPE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRv
SlMoVk0mIHZtCiAgICAgICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uod2FzbUNv
bnRleHRJbnN0YW5jZUdQUik7CiAgICAgICAgIH0KIAotICAgICAgICBqaXQuc2V0dXBBcmd1bWVu
dHM8ZGVjbHR5cGUob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMpPih3YXNtQ29udGV4dEluc3RhbmNl
R1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoJnNpZ25hdHVyZSksIEdQUkluZm86OnJl
dHVyblZhbHVlR1BSLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBDQ2FsbEhl
bHBlcnM6OmZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgY29uc3RleHByIEdQUlJlZyBz
YXZlZFJlc3VsdHNHUFIgPSBwcmVmZXJyZWRBcmd1bWVudEdQUjxkZWNsdHlwZShvcGVyYXRpb25J
dGVyYXRlUmVzdWx0cyksIDQ+KCk7CisgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6c3Rh
Y2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0c0dQUik7CisgICAgICAgIGlmIGNvbnN0ZXhw
ciAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAgICBqaXQuc3ViUHRy
KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxs
KSwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIHN0YXRpY19h
c3NlcnQobm9PdmVybGFwKHNhdmVkUmVzdWx0c0dQUiwgSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1Ip
KTsKKyAgICAgICAgQVNTRVJUKHdhc21Db250ZXh0SW5zdGFuY2VHUFIgIT0gc2F2ZWRSZXN1bHRz
R1BSKTsKKyAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkl0ZXJh
dGVSZXN1bHRzKT4od2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tUHRyKCZzaWduYXR1cmUpLCBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgc2F2ZWRSZXN1bHRz
R1BSLCBDQ2FsbEhlbHBlcnM6OmZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKICAgICAgICAgaml0LmNh
bGxPcGVyYXRpb24oRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25JdGVyYXRl
UmVzdWx0cykpOworICAgICAgICBpZiBjb25zdGV4cHIgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsKQorICAgICAgICAgICAgaml0LmFkZFB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
MihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIENDYWxsSGVscGVyczo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOworCiAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRK
dW1wSWZFeGNlcHRpb24odm0pKTsKIAotICAgICAgICBmb3IgKFJlZ2lzdGVyQXRPZmZzZXQgbG9j
YXRpb24gOiBzYXZlZFJlc3VsdFJlZ2lzdGVycykKLSAgICAgICAgICAgIGppdC5sb2FkNjRUb1Jl
ZyhDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rl
ciwgbG9jYXRpb24ub2Zmc2V0KCkpLCBsb2NhdGlvbi5yZWcoKSk7CisgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBzaWduYXR1cmUucmV0dXJuQ291bnQoKTsgKytpKSB7CisgICAgICAg
ICAgICBWYWx1ZUxvY2F0aW9uIGxvYyA9IHdhc21DYWxsSW5mby5yZXN1bHRzW2ldOworICAgICAg
ICAgICAgaWYgKGxvYy5pc0dQUigpKSB7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAg
ICAgICAgICBBU1NFUlQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9h
ZEdQUigpKS0+b2Zmc2V0KCkgKyA0ID09IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpz
cigpLnRhZ0dQUigpKS0+b2Zmc2V0KCkpOworI2VuZGlmCisgICAgICAgICAgICAgICAgaml0Lmxv
YWRWYWx1ZShDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJS
ZWdpc3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigp
KS0+b2Zmc2V0KCkpLCBsb2MuanNyKCkpOworICAgICAgICAgICAgfSBlbHNlIGlmIChsb2MuaXNG
UFIoKSkKKyAgICAgICAgICAgICAgICBqaXQubG9hZERvdWJsZShDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3Rl
cnMuZmluZChsb2MuZnByKCkpLT5vZmZzZXQoKSksIGxvYy5mcHIoKSk7CisgICAgICAgIH0KICAg
ICB9CiAKICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKaW5kZXggODg5
MTIwN2RjMTIwLi5lZWI2ODM0ZmQ4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCkBAIC0xNTcsNiArMTU3LDkgQEAg
cHRyZGlmZl90IFdlYkFzc2VtYmx5RnVuY3Rpb246OnByZXZpb3VzSW5zdGFuY2VPZmZzZXQoKSBj
b25zdAogewogICAgIHB0cmRpZmZfdCByZXN1bHQgPSBjYWxsZWVTYXZlcygpLm51bWJlck9mU2V0
UmVnaXN0ZXJzKCkgKiBzaXplb2YoQ1BVUmVnaXN0ZXIpOwogICAgIHJlc3VsdCA9IC1yZXN1bHQg
LSBzaXplb2YoQ1BVUmVnaXN0ZXIpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgQVNTRVJU
KCFjYWxsZWVTYXZlcygpLm51bWJlck9mU2V0RlBScygpKTsgLy8gQmVjYXVzZSBGUFJzIGFyZSB3
aWRlciB0aGFuIHNpemVvZihDUFVSZWdpc3RlcikKKyNlbmRpZgogI2lmIEFTU0VSVF9FTkFCTEVE
CiAgICAgcHRyZGlmZl90IG1pbk9mZnNldCA9IDE7CiAgICAgZm9yIChjb25zdCBSZWdpc3RlckF0
T2Zmc2V0JiByZWdBdE9mZnNldCA6IHVzZWRDYWxsZWVTYXZlUmVnaXN0ZXJzKCkpIHsKQEAgLTE4
NSwxNyArMTg4LDE1IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJB
c3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgY29uc3QgYXV0byYg
cGlubmVkUmVncyA9IFdhc206OlBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCk7CiAgICAgUmVnaXN0
ZXJBdE9mZnNldExpc3QgcmVnaXN0ZXJzVG9TcGlsbCA9IHVzZWRDYWxsZWVTYXZlUmVnaXN0ZXJz
KCk7CiAKLSAgICBhdXRvJiBtb2R1bGVJbmZvcm1hdGlvbiA9IGluc3RhbmNlKCktPmluc3RhbmNl
KCkubW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKTsKLQogICAgIGNvbnN0IFdhc206Oldhc21D
YWxsaW5nQ29udmVudGlvbiYgd2FzbUNDID0gV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKCk7
CiAgICAgV2FzbTo6Q2FsbEluZm9ybWF0aW9uIHdhc21DYWxsSW5mbyA9IHdhc21DQy5jYWxsSW5m
b3JtYXRpb25Gb3Ioc2lnbmF0dXJlKTsKICAgICBXYXNtOjpDYWxsSW5mb3JtYXRpb24ganNDYWxs
SW5mbyA9IFdhc206OmpzQ2FsbGluZ0NvbnZlbnRpb24oKS5jYWxsSW5mb3JtYXRpb25Gb3Ioc2ln
bmF0dXJlLCBXYXNtOjpDYWxsUm9sZTo6Q2FsbGVlKTsKICAgICBSZWdpc3RlckF0T2Zmc2V0TGlz
dCBzYXZlZFJlc3VsdFJlZ2lzdGVycyA9IHdhc21DYWxsSW5mby5jb21wdXRlUmVzdWx0c09mZnNl
dExpc3QoKTsKIAotICAgIHVuc2lnbmVkIHRvdGFsRnJhbWVTaXplID0gcmVnaXN0ZXJzVG9TcGls
bC5zaXplKCkgKiBzaXplb2YoQ1BVUmVnaXN0ZXIpOworICAgIHVuc2lnbmVkIHRvdGFsRnJhbWVT
aXplID0gcmVnaXN0ZXJzVG9TcGlsbC5zaXplT2ZBcmVhSW5CeXRlcygpOwogICAgIHRvdGFsRnJh
bWVTaXplICs9IHNpemVvZihDUFVSZWdpc3Rlcik7IC8vIFNsb3QgZm9yIHRoZSBWTSdzIHByZXZp
b3VzIHdhc20gaW5zdGFuY2UuCiAgICAgdG90YWxGcmFtZVNpemUgKz0gd2FzbUNhbGxJbmZvLmhl
YWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlczsKLSAgICB0b3RhbEZyYW1lU2l6ZSArPSBz
YXZlZFJlc3VsdFJlZ2lzdGVycy5zaXplKCkgKiBzaXplb2YoQ1BVUmVnaXN0ZXIpOworICAgIHRv
dGFsRnJhbWVTaXplICs9IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLnNpemVPZkFyZWFJbkJ5dGVzKCk7
CiAKICAgICAvLyBGSVhNRTogT3B0aW1pemUgV2FzbSBmdW5jdGlvbiBjYWxsIGV2ZW4gaWYgYXJn
dW1lbnRzIGluY2x1ZGUgSTY0LgogICAgIC8vIFRoaXMgcmVxdWlyZXMgSTY0IGV4dHJhY3Rpb24g
ZnJvbSBCaWdJbnQuCkBAIC0yMTUsOSArMjE2LDE0IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxK
U0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygp
CiAgICAgICAgIGppdC5zdG9yZVB0cihyZWcsIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZv
OjpjYWxsRnJhbWVSZWdpc3Rlciwgb2Zmc2V0KSk7CiAgICAgfQogCi0gICAgR1BSUmVnIHNjcmF0
Y2hHUFIgPSBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJz
WzFdOwotICAgIGJvb2wgc3RhY2tMaW1pdEdQUklzQ2xvYmJlcmVkID0gZmFsc2U7CisgICAgSlNW
YWx1ZVJlZ3Mgc2NyYXRjaEpTUiB7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgV2Fz
bTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1syXSwKKyNlbmRp
ZgorICAgICAgICBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hH
UFJzWzFdCisgICAgfTsKICAgICBHUFJSZWcgc3RhY2tMaW1pdEdQUiA9IFdhc206Ondhc21DYWxs
aW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMF07CisgICAgYm9vbCBzdGFja0xp
bWl0R1BSSXNDbG9iYmVyZWQgPSBmYWxzZTsKICAgICBqaXQubG9hZFB0cih2bS5hZGRyZXNzT2ZT
b2Z0U3RhY2tMaW1pdCgpLCBzdGFja0xpbWl0R1BSKTsKIAogICAgIENDYWxsSGVscGVyczo6SnVt
cExpc3Qgc2xvd1BhdGg7CkBAIC0yMzYsNyArMjQyLDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
PEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93
KCkKICAgICAgICAgaml0LmVtaXRNYXRlcmlhbGl6ZVRhZ0NoZWNrUmVnaXN0ZXJzKCk7CiAKICAg
ICAvLyBMb29wIGJhY2t3YXJkcyBzbyB3ZSBjYW4gdXNlIHRoZSBmaXJzdCBmbG9hdGluZyBwb2lu
dCBhcmd1bWVudCBhcyBhIHNjcmF0Y2guCi0gICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBXYXNtOjp3
YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5mcHJBcmdzWzBdLmZwcigpOworICAgIEZQUlJlZyBzY3Jh
dGNoRlBSID0gV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKCkuZnByQXJnc1swXTsKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSBzaWduYXR1cmUuYXJndW1lbnRDb3VudCgpOyBpLS07KSB7CiAgICAg
ICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBjYWxsZWVGcmFtZSA9IENDYWxsSGVscGVyczo6QWRk
cmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIDApOwogICAgICAgICBD
Q2FsbEhlbHBlcnM6OkFkZHJlc3MganNQYXJhbShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwg
anNDYWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbUZQKCkpOwpAQCAtMjQ1LDEyICsyNTEsMjAg
QEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rp
b246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAgICAgYXV0byB0eXBlID0gc2lnbmF0dXJl
LmFyZ3VtZW50KGkpOwogICAgICAgICBzd2l0Y2ggKHR5cGUua2luZCkgewogICAgICAgICBjYXNl
IFdhc206OlR5cGVLaW5kOjpJMzI6IHsKLSAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwg
c2NyYXRjaEdQUik7Ci0gICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90
SW50MzIoc2NyYXRjaEdQUikpOwotICAgICAgICAgICAgaWYgKGlzU3RhY2spCi0gICAgICAgICAg
ICAgICAgaml0LnN0b3JlMzIoc2NyYXRjaEdQUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNt
Q2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSk7Ci0gICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChzY3JhdGNoR1BSLCB3YXNtQ2Fs
bEluZm8ucGFyYW1zW2ldLmdwcigpKTsKKyAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQYXJh
bSwgc2NyYXRjaEpTUik7CisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElm
Tm90SW50MzIoc2NyYXRjaEpTUikpOworICAgICAgICAgICAgaWYgKGlzU3RhY2spIHsKKyAgICAg
ICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgYWRkciB7IGNhbGxlZUZyYW1lLndpdGhP
ZmZzZXQod2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkgfTsKKyAgICAgICAg
ICAgICAgICBqaXQuc3RvcmUzMihzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgYWRkci53aXRoT2Zm
c2V0KFBheWxvYWRPZmZzZXQpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAg
ICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCBhZGRyLndpdGhP
ZmZzZXQoVGFnT2Zmc2V0KSk7CisjZW5kaWYKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwg
d2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5qc3IoKS5wYXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZB
TFVFMzJfNjQpCisgICAgICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tMzIoMCksIHdhc21DYWxsSW5mby5wYXJhbXNbaV0uanNyKCkudGFnR1BSKCkpOworI2VuZGlm
CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBj
YXNlIFdhc206OlR5cGVLaW5kOjpSZWY6CkBAIC0yNTksMjcgKzI3MywyNyBAQCBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50
cnlwb2ludFNsb3coKQogICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpFeHRlcm5yZWY6IHsK
ICAgICAgICAgICAgIGlmICghV2FzbTo6aXNFeHRlcm5yZWYodHlwZSkpIHsKICAgICAgICAgICAg
ICAgICAvLyBFbnN1cmUgd2UgaGF2ZSBhIFdBU00gZXhwb3J0ZWQgZnVuY3Rpb24uCi0gICAgICAg
ICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAg
ICBhdXRvIGlzTnVsbCA9IGppdC5icmFuY2hJZk51bGwoc2NyYXRjaEdQUik7CisgICAgICAgICAg
ICAgICAgaml0LmxvYWRWYWx1ZShqc1BhcmFtLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAgICAg
ICBhdXRvIGlzTnVsbCA9IGppdC5icmFuY2hJZk51bGwoc2NyYXRjaEpTUik7CiAgICAgICAgICAg
ICAgICAgaWYgKCF0eXBlLmlzTnVsbGFibGUoKSkKICAgICAgICAgICAgICAgICAgICAgc2xvd1Bh
dGguYXBwZW5kKGlzTnVsbCk7Ci0gICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5i
cmFuY2hJZk5vdENlbGwoc2NyYXRjaEdQUikpOworICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFw
cGVuZChqaXQuYnJhbmNoSWZOb3RDZWxsKHNjcmF0Y2hKU1IpKTsKIAogICAgICAgICAgICAgICAg
IHN0YWNrTGltaXRHUFJJc0Nsb2JiZXJlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgaml0LmVt
aXRMb2FkU3RydWN0dXJlKHZtLCBzY3JhdGNoR1BSLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAg
ICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgU3RydWN0
dXJlOjpjbGFzc0luZm9PZmZzZXQoKSksIHNjcmF0Y2hHUFIpOworICAgICAgICAgICAgICAgIGpp
dC5lbWl0TG9hZFN0cnVjdHVyZSh2bSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hK
U1IucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBl
cnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIFN0cnVjdHVyZTo6Y2xhc3NJbmZv
T2Zmc2V0KCkpLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAKICAgICAgICAgICAgICAgICBz
dGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8V2ViQXNzZW1ibHlGdW5jdGlvbj46OnZhbHVlLCAi
V2UgZG8gbm90IGNoZWNrIGZvciBzdWJ0eXBlcyBiZWxvdyIpOwogICAgICAgICAgICAgICAgIHN0
YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbj46OnZh
bHVlLCAiV2UgZG8gbm90IGNoZWNrIGZvciBzdWJ0eXBlcyBiZWxvdyIpOwogCi0gICAgICAgICAg
ICAgICAgYXV0byBpc1dhc21GdW5jdGlvbiA9IGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpF
cXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKFdlYkFzc2VtYmx5
RnVuY3Rpb246OmluZm8oKSkpOwotICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQu
YnJhbmNoUHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbVB0cihXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6aW5mbygpKSkpOwor
ICAgICAgICAgICAgICAgIGF1dG8gaXNXYXNtRnVuY3Rpb24gPSBqaXQuYnJhbmNoUHRyKENDYWxs
SGVscGVyczo6RXF1YWwsIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW1QdHIoV2ViQXNzZW1ibHlGdW5jdGlvbjo6aW5mbygpKSk7CisgICAgICAgICAgICAg
ICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwg
c2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihXZWJB
c3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6aW5mbygpKSkpOwogCiAgICAgICAgICAgICAgICAgaXNX
YXNtRnVuY3Rpb24ubGluaygmaml0KTsKICAgICAgICAgICAgICAgICBpZiAoV2FzbTo6aXNSZWZX
aXRoVHlwZUluZGV4KHR5cGUpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoanNQ
YXJhbSwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxs
SGVscGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZTo6b2Zm
c2V0T2ZTaWduYXR1cmVJbmRleCgpKSwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAgICAgICAgICAg
IHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoUHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNj
cmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih0eXBlLmluZGV4KSkpOworICAg
ICAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihqc1BhcmFtLCBzY3JhdGNoSlNSLnBheWxvYWRH
UFIoKSk7CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRk
cmVzcyhzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2U6Om9m
ZnNldE9mU2lnbmF0dXJlSW5kZXgoKSksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJz
OjpOb3RFcXVhbCwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbVB0cih0eXBlLmluZGV4KSkpOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
ICAgIGlmICh0eXBlLmlzTnVsbGFibGUoKSkKQEAgLTI4NywxNSArMzAxLDE1IEBAIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxF
bnRyeXBvaW50U2xvdygpCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChpc1N0YWNr
KSB7Ci0gICAgICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKKyAg
ICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpzUGFyYW0sIHNjcmF0Y2hKU1IpOwogICAgICAg
ICAgICAgICAgIGlmICghdHlwZS5pc051bGxhYmxlKCkpCi0gICAgICAgICAgICAgICAgICAgIHNs
b3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOdWxsKHNjcmF0Y2hHUFIpKTsKLSAgICAgICAgICAg
ICAgICBqaXQuc3RvcmU2NChzY3JhdGNoR1BSLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21D
YWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKKyAgICAgICAgICAgICAgICAgICAg
c2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk51bGwoc2NyYXRjaEpTUikpOworICAgICAgICAg
ICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2hKU1IsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQo
d2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkpOwogICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICBhdXRvIGV4dGVybkdQUiA9IHdhc21DYWxsSW5mby5wYXJh
bXNbaV0uZ3ByKCk7Ci0gICAgICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBleHRlcm5H
UFIpOworICAgICAgICAgICAgICAgIGF1dG8gZXh0ZXJuSlNSID0gd2FzbUNhbGxJbmZvLnBhcmFt
c1tpXS5qc3IoKTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpzUGFyYW0sIGV4dGVy
bkpTUik7CiAgICAgICAgICAgICAgICAgaWYgKCF0eXBlLmlzTnVsbGFibGUoKSkKLSAgICAgICAg
ICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk51bGwoZXh0ZXJuR1BSKSk7
CisgICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOdWxsKGV4
dGVybkpTUikpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
QEAgLTMwMywzNSArMzE3LDQyIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFn
PiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgIGNh
c2UgV2FzbTo6VHlwZUtpbmQ6OkY2NDogewogICAgICAgICAgICAgaWYgKCFpc1N0YWNrKQogICAg
ICAgICAgICAgICAgIHNjcmF0Y2hGUFIgPSB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmZwcigpOwot
ICAgICAgICAgICAgYXV0byBtb3ZlVG9EZXN0aW5hdGlvbiA9IFsmXSAoKSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKGlzU3RhY2spIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHNpZ25hdHVyZS5h
cmd1bWVudChpKS5pc0YzMigpKQotICAgICAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlRmxv
YXQoc2NyYXRjaEZQUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1z
W2ldLm9mZnNldEZyb21TUCgpKSk7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGppdC5zdG9yZURvdWJsZShzY3JhdGNoRlBSLCBjYWxsZWVGcmFtZS53
aXRoT2Zmc2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9OwotCi0gICAgICAgICAgICBqaXQubG9hZDY0KGpz
UGFyYW0sIHNjcmF0Y2hHUFIpOwotICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFu
Y2hJZk5vdE51bWJlcihzY3JhdGNoR1BSKSk7Ci0gICAgICAgICAgICBhdXRvIGlzSW50MzIgPSBq
aXQuYnJhbmNoSWZJbnQzMihzY3JhdGNoR1BSKTsKKyAgICAgICAgICAgIGppdC5sb2FkVmFsdWUo
anNQYXJhbSwgc2NyYXRjaEpTUik7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgICAgIHNs
b3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIoc2NyYXRjaEpTUiwgSW52YWxpZEdQ
UlJlZykpOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIHN0YWNrTGltaXRH
UFJJc0Nsb2JiZXJlZCA9IHRydWU7CisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJy
YW5jaElmTm90TnVtYmVyKHNjcmF0Y2hKU1IsIHN0YWNrTGltaXRHUFIpKTsKKyNlbmRpZgorICAg
ICAgICAgICAgYXV0byBpc0ludDMyID0gaml0LmJyYW5jaElmSW50MzIoc2NyYXRjaEpTUik7CiAK
LSAgICAgICAgICAgIGppdC51bmJveERvdWJsZShzY3JhdGNoR1BSLCBzY3JhdGNoR1BSLCBzY3Jh
dGNoRlBSKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgaml0LnVuYm94RG91Ymxl
KHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgc2NyYXRj
aEZQUik7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgaml0LnVuYm94RG91
YmxlKHNjcmF0Y2hKU1IsIHNjcmF0Y2hGUFIpOworI2VuZGlmCiAgICAgICAgICAgICBpZiAoc2ln
bmF0dXJlLmFyZ3VtZW50KGkpLmlzRjMyKCkpCiAgICAgICAgICAgICAgICAgaml0LmNvbnZlcnRE
b3VibGVUb0Zsb2F0KHNjcmF0Y2hGUFIsIHNjcmF0Y2hGUFIpOwotICAgICAgICAgICAgbW92ZVRv
RGVzdGluYXRpb24oKTsKICAgICAgICAgICAgIGF1dG8gZG9uZSA9IGppdC5qdW1wKCk7CiAKICAg
ICAgICAgICAgIGlzSW50MzIubGluaygmaml0KTsKICAgICAgICAgICAgIGlmIChzaWduYXR1cmUu
YXJndW1lbnQoaSkuaXNGMzIoKSkgewotICAgICAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJU
b0Zsb2F0KHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOwotICAgICAgICAgICAgICAgIG1vdmVUb0Rl
c3RpbmF0aW9uKCk7CisgICAgICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRmxvYXQoc2Ny
YXRjaEpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hGUFIpOwogICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9Eb3VibGUoc2NyYXRjaEdQUiwgc2Ny
YXRjaEZQUik7Ci0gICAgICAgICAgICAgICAgbW92ZVRvRGVzdGluYXRpb24oKTsKKyAgICAgICAg
ICAgICAgICBqaXQuY29udmVydEludDMyVG9Eb3VibGUoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCks
IHNjcmF0Y2hGUFIpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZG9uZS5saW5rKCZqaXQp
OwogCisgICAgICAgICAgICBkb25lLmxpbmsoJmppdCk7CisgICAgICAgICAgICBpZiAoaXNTdGFj
aykgeworICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBhZGRyIHsgY2FsbGVl
RnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSB9
OworICAgICAgICAgICAgICAgIGlmIChzaWduYXR1cmUuYXJndW1lbnQoaSkuaXNGMzIoKSkgewor
ICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVGbG9hdChzY3JhdGNoRlBSLCBhZGRyLndpdGhP
ZmZzZXQoUGF5bG9hZE9mZnNldCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAg
ICAgICAgICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCBhZGRy
LndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7CisjZW5kaWYKKyAgICAgICAgICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlRG91YmxlKHNjcmF0Y2hGUFIsIGFkZHIpOwor
ICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgZGVm
YXVsdDoKQEAgLTM0Miw0MiArMzYzLDQ0IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5
UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAg
Ly8gQXQgdGhpcyBwb2ludCwgd2UncmUgY29tbWl0dGVkIHRvIGRvaW5nIGEgZmFzdCBjYWxsLgog
CiAgICAgaWYgKFdhc206OkNvbnRleHQ6OnVzZUZhc3RUTFMoKSkgCi0gICAgICAgIGppdC5sb2Fk
V2FzbUNvbnRleHRJbnN0YW5jZShzY3JhdGNoR1BSKTsKKyAgICAgICAgaml0LmxvYWRXYXNtQ29u
dGV4dEluc3RhbmNlKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKICAgICBlbHNlCi0gICAgICAg
IGppdC5sb2FkUHRyKHZtLndhc21Db250ZXh0LnBvaW50ZXJUb0luc3RhbmNlKCksIHNjcmF0Y2hH
UFIpOworICAgICAgICBqaXQubG9hZFB0cih2bS53YXNtQ29udGV4dC5wb2ludGVyVG9JbnN0YW5j
ZSgpLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAgICAgcHRyZGlmZl90IHByZXZpb3VzSW5z
dGFuY2VPZmZzZXQgPSB0aGlzLT5wcmV2aW91c0luc3RhbmNlT2Zmc2V0KCk7Ci0gICAgaml0LnN0
b3JlUHRyKHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJh
bWVSZWdpc3RlciwgcHJldmlvdXNJbnN0YW5jZU9mZnNldCkpOworICAgIGppdC5zdG9yZVB0cihz
Y3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyLCBwcmV2aW91c0luc3RhbmNlT2Zmc2V0KSk7CiAKLSAgICBqaXQubW92
ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoJmluc3RhbmNlKCktPmluc3RhbmNlKCkpLCBz
Y3JhdGNoR1BSKTsKKyAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoJmlu
c3RhbmNlKCktPmluc3RhbmNlKCkpLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAgICAgaWYg
KFdhc206OkNvbnRleHQ6OnVzZUZhc3RUTFMoKSkgCi0gICAgICAgIGppdC5zdG9yZVdhc21Db250
ZXh0SW5zdGFuY2Uoc2NyYXRjaEdQUik7CisgICAgICAgIGppdC5zdG9yZVdhc21Db250ZXh0SW5z
dGFuY2Uoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOwogICAgIGVsc2UgewotICAgICAgICBqaXQu
bW92ZShzY3JhdGNoR1BSLCBwaW5uZWRSZWdzLndhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyKTsK
LSAgICAgICAgaml0LnN0b3JlUHRyKHNjcmF0Y2hHUFIsIHZtLndhc21Db250ZXh0LnBvaW50ZXJU
b0luc3RhbmNlKCkpOworICAgICAgICBqaXQubW92ZShzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwg
cGlubmVkUmVncy53YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlcik7CisgICAgICAgIGppdC5zdG9y
ZVB0cihzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgdm0ud2FzbUNvbnRleHQucG9pbnRlclRvSW5z
dGFuY2UoKSk7CiAgICAgfQogICAgIGlmIChzdGFja0xpbWl0R1BSSXNDbG9iYmVyZWQpCiAgICAg
ICAgIGppdC5sb2FkUHRyKHZtLmFkZHJlc3NPZlNvZnRTdGFja0xpbWl0KCksIHN0YWNrTGltaXRH
UFIpOwotICAgIGppdC5zdG9yZVB0cihzdGFja0xpbWl0R1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3Moc2NyYXRjaEdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkU3RhY2tMaW1pdCgp
KSk7CisgICAgaml0LnN0b3JlUHRyKHN0YWNrTGltaXRHUFIsIENDYWxsSGVscGVyczo6QWRkcmVz
cyhzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVk
U3RhY2tMaW1pdCgpKSk7CiAKLSAgICBpZiAoISFtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkpIHsK
KyNpZiAhQ1BVKEFSTSkgLy8gQVJNIGhhcyBubyBwaW5uZWQgcmVnaXN0ZXJzIGZvciBXYXNtIE1l
bW9yeSwgc28gbm8gbmVlZCB0byBzZXQgdGhlbSB1cAorICAgIGlmICghIWluc3RhbmNlKCktPmlu
c3RhbmNlKCkubW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKS5tZW1vcnkpIHsKICAgICAgICAg
R1BSUmVnIGJhc2VNZW1vcnkgPSBwaW5uZWRSZWdzLmJhc2VNZW1vcnlQb2ludGVyOwogICAgICAg
ICBHUFJSZWcgc2NyYXRjaE9yQm91bmRzQ2hlY2tpbmdTaXplID0gSW52YWxpZEdQUlJlZzsKICAg
ICAgICAgYXV0byBtb2RlID0gaW5zdGFuY2UoKS0+bWVtb3J5TW9kZSgpOwogCiAgICAgICAgIGlm
IChpc0FSTTY0RSgpKSB7Ci0gICAgICAgICAgICBpZiAobW9kZSAhPSBXYXNtOjpNZW1vcnlNb2Rl
OjpTaWduYWxpbmcpCisgICAgICAgICAgICBpZiAobW9kZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpC
b3VuZHNDaGVja2luZykKICAgICAgICAgICAgICAgICBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1Np
emUgPSBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyOwogICAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICAgIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSA9IHN0YWNr
TGltaXRHUFI7Ci0gICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Mo
c2NyYXRjaEdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdT
aXplKCkpLCBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUpOworICAgICAgICAgICAgaml0Lmxv
YWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBXYXNt
OjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHNDaGVja2luZ1NpemUoKSksIHNjcmF0Y2hP
ckJvdW5kc0NoZWNraW5nU2l6ZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAo
bW9kZSAhPSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmcpCi0gICAgICAgICAgICAgICAgaml0
LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFdhc206Okluc3RhbmNl
OjpvZmZzZXRPZkNhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSgpKSwgcGlubmVkUmVncy5ib3VuZHND
aGVja2luZ1NpemVSZWdpc3Rlcik7CisgICAgICAgICAgICBpZiAobW9kZSA9PSBXYXNtOjpNZW1v
cnlNb2RlOjpCb3VuZHNDaGVja2luZykKKyAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIFdhc206Okluc3RhbmNl
OjpvZmZzZXRPZkNhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSgpKSwgcGlubmVkUmVncy5ib3VuZHND
aGVja2luZ1NpemVSZWdpc3Rlcik7CiAgICAgICAgIH0KIAotICAgICAgICBqaXQubG9hZFB0cihD
Q2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9m
Q2FjaGVkTWVtb3J5KCkpLCBiYXNlTWVtb3J5KTsKLSAgICAgICAgaml0LmNhZ2VDb25kaXRpb25h
bGx5QW5kVW50YWcoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwgc2NyYXRjaE9yQm91
bmRzQ2hlY2tpbmdTaXplLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBXYXNtOjpJbnN0YW5jZTo6
b2Zmc2V0T2ZDYWNoZWRNZW1vcnkoKSksIGJhc2VNZW1vcnkpOworICAgICAgICBqaXQuY2FnZUNv
bmRpdGlvbmFsbHlBbmRVbnRhZyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5LCBzY3Jh
dGNoT3JCb3VuZHNDaGVja2luZ1NpemUsIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKICAgICB9
CisjZW5kaWYKIAogICAgIC8vIFdlIHVzZSB0aGlzIGNhbGxlZSB0byBpbmRpY2F0ZSBob3cgdG8g
dW53aW5kIHBhc3QgdGhlc2UgdHlwZXMgb2YgZnJhbWVzOgogICAgIC8vIDEuIFdlIG5lZWQgdG8g
a25vdyB3aGVyZSB0byBnZXQgY2FsbGVlIHNhdmVzLgpAQCAtMzg5LDggKzQxMiw4IEBAIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0Nh
bGxFbnRyeXBvaW50U2xvdygpCiAgICAgLy8gRklYTUU6IEN1cnJlbnRseSB3ZSBqdXN0IGRvIGFu
IGluZGlyZWN0IGp1bXAuIEJ1dCB3ZSBzaG91bGQgdGVhY2ggdGhlIE1vZHVsZQogICAgIC8vIGhv
dyB0byByZXBhdGNoIHVzOgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTY1NzAKLSAgICBqaXQubG9hZFB0cihlbnRyeXBvaW50TG9hZExvY2F0aW9uKCks
IHNjcmF0Y2hHUFIpOwotICAgIGppdC5jYWxsKHNjcmF0Y2hHUFIsIFdhc21FbnRyeVB0clRhZyk7
CisgICAgaml0LmxvYWRQdHIoZW50cnlwb2ludExvYWRMb2NhdGlvbigpLCBzY3JhdGNoSlNSLnBh
eWxvYWRHUFIoKSk7CisgICAgaml0LmNhbGwoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIFdhc21F
bnRyeVB0clRhZyk7CiAKICAgICBtYXJzaGFsbEpTUmVzdWx0KGppdCwgc2lnbmF0dXJlLCB3YXNt
Q2FsbEluZm8sIHNhdmVkUmVzdWx0UmVnaXN0ZXJzKTsKIApAQCAtNDIwLDcgKzQ0Myw3IEBAIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpq
c0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tUHRyKHRoaXMpLCBHUFJJbmZvOjpyZWdUMCk7CiAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxv
Z3VlKCk7CiAjaWYgQ1BVKEFSTTY0RSkKLSAgICBqaXQudW50YWdSZXR1cm5BZGRyZXNzKHNjcmF0
Y2hHUFIpOworICAgIGppdC51bnRhZ1JldHVybkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BS
KCkpOwogI2VuZGlmCiAgICAgYXV0byBqdW1wVG9Ib3N0Q2FsbFRodW5rID0gaml0Lmp1bXAoKTsK
IApAQCAtNDI4LDcgKzQ1MSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFn
PiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgaWYgKFVO
TElLRUxZKGxpbmtCdWZmZXIuZGlkRmFpbFRvQWxsb2NhdGUoKSkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCi0gICAgbGlua0J1ZmZlci5saW5rKGp1bXBUb0hvc3RDYWxsVGh1bmssIENvZGVM
b2NhdGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+KGV4ZWN1dGFibGUoKS0+ZW50cnlwb2ludEZvcihD
b2RlRm9yQ2FsbCwgTXVzdENoZWNrQXJpdHkpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyAgICBs
aW5rQnVmZmVyLmxpbmsoanVtcFRvSG9zdENhbGxUaHVuaywgQ29kZUxvY2F0aW9uTGFiZWw8SlNF
bnRyeVB0clRhZz4oZXhlY3V0YWJsZSgpLT5lbnRyeXBvaW50Rm9yKENvZGVGb3JDYWxsLCBNdXN0
Q2hlY2tBcml0eSkpKTsKICAgICBtX2pzQ2FsbEVudHJ5cG9pbnQgPSBGSU5BTElaRV9XQVNNX0NP
REUobGlua0J1ZmZlciwgV2FzbUVudHJ5UHRyVGFnLCAiSlMtPldhc20gSUMiKTsKICAgICByZXR1
cm4gbV9qc0NhbGxFbnRyeXBvaW50LmNvZGUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5j
cHAKaW5kZXggMGVlNjg3YTNiMWNlLi43NGY3MjBiZDA0NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3Ry
dWN0b3IuY3BwCkBAIC0xNTgsNyArMTU4LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNv
bnN0cnVjdEpTV2ViQXNzZW1ibHlHbG9iYWwsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAg
ICBSZWY8V2FzbTo6R2xvYmFsPiB3YXNtR2xvYmFsID0gV2FzbTo6R2xvYmFsOjpjcmVhdGUodHlw
ZSwgbXV0YWJpbGl0eSwgaW5pdGlhbFZhbHVlKTsKICAgICBKU1dlYkFzc2VtYmx5R2xvYmFsKiBq
c1dlYkFzc2VtYmx5R2xvYmFsID0gSlNXZWJBc3NlbWJseUdsb2JhbDo6dHJ5Q3JlYXRlKGdsb2Jh
bE9iamVjdCwgdm0sIHdlYkFzc2VtYmx5R2xvYmFsU3RydWN0dXJlLCBXVEZNb3ZlKHdhc21HbG9i
YWwpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7Ci0gICAgZW5z
dXJlU3RpbGxBbGl2ZUhlcmUoYml0d2lzZV9jYXN0PHZvaWQqPihpbml0aWFsVmFsdWUpKTsgLy8g
RW5zdXJlIHRoaXMgaXMga2VwdCBhbGl2ZSB3aGlsZSBjcmVhdGluZyBKU1dlYkFzc2VtYmx5R2xv
YmFsLgorICAgIGVuc3VyZVN0aWxsQWxpdmVIZXJlKGluaXRpYWxWYWx1ZSk7IC8vIEVuc3VyZSB0
aGlzIGlzIGtlcHQgYWxpdmUgd2hpbGUgY3JlYXRpbmcgSlNXZWJBc3NlbWJseUdsb2JhbC4KICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzV2ViQXNzZW1ibHlHbG9iYWwpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJl
Y29yZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVs
ZVJlY29yZC5jcHAKaW5kZXggMjVlMDg5ZmEyMDcxLi5lMjkwYTMzMDE2NTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJl
Y29yZC5jcHAKQEAgLTU1NCw3ICs1NTQsNyBAQCB2b2lkIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3Jk
Ojppbml0aWFsaXplRXhwb3J0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgICAg
ICAgICAgICAgIEpTV2ViQXNzZW1ibHlHbG9iYWwqIGdsb2JhbFZhbHVlID0gSlNXZWJBc3NlbWJs
eUdsb2JhbDo6dHJ5Q3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGdsb2JhbE9iamVjdC0+d2ViQXNz
ZW1ibHlHbG9iYWxTdHJ1Y3R1cmUoKSwgV1RGTW92ZShnbG9iYWxSZWYpKTsKICAgICAgICAgICAg
ICAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogICAgICAgICAgICAgICAgIG1faW5zdGFu
Y2UtPmxpbmtHbG9iYWwodm0sIGdsb2JhbEluZGV4LCBnbG9iYWxWYWx1ZSk7Ci0gICAgICAgICAg
ICAgICAgZW5zdXJlU3RpbGxBbGl2ZUhlcmUoYml0d2lzZV9jYXN0PHZvaWQqPihpbml0aWFsQml0
cykpOyAvLyBFbnN1cmUgdGhpcyBpcyBrZXB0IGFsaXZlIHdoaWxlIGNyZWF0aW5nIEpTV2ViQXNz
ZW1ibHlHbG9iYWwuCisgICAgICAgICAgICAgICAgZW5zdXJlU3RpbGxBbGl2ZUhlcmUoaW5pdGlh
bEJpdHMpOyAvLyBFbnN1cmUgdGhpcyBpcyBrZXB0IGFsaXZlIHdoaWxlIGNyZWF0aW5nIEpTV2Vi
QXNzZW1ibHlHbG9iYWwuCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCmluZGV4IGU1YmZiZDU1ZjIyNi4uMmQwOTlhNTljOWQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEyIEBACisyMDIyLTA0LTA3ICBYYW4gTMOzcGV6ICA8eGFuQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgW0pTQ10gRW5hYmxlIFdhc21MTEludCBvbiBBUk12NworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMjYwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGUuaDogZW5h
YmxlIFdlYkFzc2VtYmx5IG9uIEFSTXY3LgorCiAyMDIyLTA0LTA2ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU3RhcnQgcmVwbGFjaW5nIFN0cmluZyhjb25zdCBj
aGFyKikgY29uc3RydWN0b3Igd2l0aCBhIFN0cmluZzo6ZnJvbUxhdGluMShjb25zdCBjaGFyKikg
ZnVuY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmggYi9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCmluZGV4IDQxMTM1NGY2YzExZi4uYjE0NzBk
NmQ4MjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKQEAgLTU4NSwxMiArNTg1LDEyIEBACiAj
ZW5kaWYKIAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0vKiBEaXNhYmxlIFdlYkFzc2VtYmx5IG9u
IGFsbCAzMmJpdCBwbGF0Zm9ybXMuIEl0cyBMTEludCB0aWVyIGNvdWxkCi0gKiB3b3JrIG9uIHRo
ZW0sIGJ1dCBzdGlsbCBuZWVkcyBzb21lIGZpbmFsIHRvdWNoZXMuICovCisjaWYgIUNQVShBUk0p
CiAjdW5kZWYgRU5BQkxFX1dFQkFTU0VNQkxZCiAjZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWSAw
CiAjdW5kZWYgRU5BQkxFX1dFQkFTU0VNQkxZX0IzSklUCiAjZGVmaW5lIEVOQUJMRV9XRUJBU1NF
TUJMWV9CM0pJVCAwCisjZW5kaWYKICNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShNSVBTKSkg
JiYgT1MoTElOVVgpCiAvKiBPbiBBUk12NyBhbmQgTUlQUyBvbiBMaW51eCB0aGUgSklUIGlzIGVu
YWJsZWQgdW5sZXNzIGV4cGxpY2l0bHkgZGlzYWJsZWQuICovCiAjaWYgIWRlZmluZWQoRU5BQkxF
X0pJVCkKQEAgLTcwNiw3ICs3MDYsNyBAQAogI2RlZmluZSBFTkFCTEVfU0FNUExJTkdfUFJPRklM
RVIgMQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIEhBVkUoTUFDSElORV9D
T05URVhUKQorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgSEFWRShNQUNISU5FX0NPTlRFWFQp
ICYmIENQVShBRERSRVNTNjQpCiAjZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWV9TSUdOQUxJTkdf
TUVNT1JZIDEKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggOGQ3NDhkYmYxNTA2Li5kMjNhMDliZTQ4M2MgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAy
Mi0wNC0wNyAgWGFuIEzDs3BleiAgPHhhbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtKU0NdIEVu
YWJsZSBXYXNtTExJbnQgb24gQVJNdjcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMTI2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0czogYWxsb3cgdG8g
cnVuIHRoZSB3YXNtIHRlc3RzIG9uCisgICAgICAgIGFybXY3IGV2ZW4gd2l0aG91dCBqaXQgc3Vw
cG9ydCAoZm9yIG5vdykuCisKIDIwMjItMDQtMDYgIERld2VpIFpodSAgPGRld2VpX3podUBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXNlICdvcGVuJyBjb21tYW5kIG9uIG1hY09TIHRvIGxhdW5jaCBV
Ukwgc2hvdWxkIHBhc3MgU2FmYXJpIGFwcCBidW5kbGUgaW5zdGVhZCBvZiBiaW5hcnkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgYi9Ub29scy9TY3JpcHRz
L3J1bi1qc2Mtc3RyZXNzLXRlc3RzCmluZGV4IDNkMGY0MDYyYWViMC4uNmI1MTYwMDNlMDU4IDEw
MDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCisrKyBiL1Rvb2xz
L1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKQEAgLTU4Miw5ICs1ODIsMTUgQEAgZGVmIGRl
dGVybWluZU9TCiAgICAgZW5kCiBlbmQKIAorZGVmIGlzRlRMRW5hYmxlZAorICAgICRqaXRUZXN0
cyAmJiAkaXNGVExQbGF0Zm9ybQorZW5kCisKICRob3N0T1MgPSBkZXRlcm1pbmVPUyB1bmxlc3Mg
JGhvc3RPUwogJGFyY2hpdGVjdHVyZSA9IGRldGVybWluZUFyY2hpdGVjdHVyZSB1bmxlc3MgJGFy
Y2hpdGVjdHVyZQogJGlzRlRMUGxhdGZvcm0gPSAhKCRhcmNoaXRlY3R1cmUgPT0gIng4NiIgfHwg
JGFyY2hpdGVjdHVyZSA9PSAiYXJtIiB8fCAkYXJjaGl0ZWN0dXJlID09ICJtaXBzIiB8fCAkYXJj
aGl0ZWN0dXJlID09ICJyaXNjdjY0IiB8fCAkaG9zdE9TID09ICJ3aW5kb3dzIiB8fCAkaG9zdE9T
ID09ICJwbGF5c3RhdGlvbiIpCisjIFNwZWNpYWwgY2FzZSBhcm12Nywgd2Ugd2FudCB0byBydW4g
dGhlIHdhc20gdGVzdHMgdGVtcG9yYXJpbHkgd2l0aG91dCBCMy9BaXIgc3VwcG9ydAorJGlzV2Fz
bVBsYXRmb3JtID0gaXNGVExFbmFibGVkIHx8ICRhcmNoaXRlY3R1cmUgPT0gImFybSIKIAogaWYg
JGFyY2hpdGVjdHVyZSA9PSAieDg2IgogICAgICMgVGhlIEpJVCBpcyB0ZW1wb3JhcmlseSBkaXNh
YmxlZCBvbiB0aGlzIHBsYXRmb3JtIHNpbmNlCkBAIC01OTIsMTAgKzU5OCw2IEBAIGlmICRhcmNo
aXRlY3R1cmUgPT0gIng4NiIKICAgICAkaml0VGVzdHMgPSBmYWxzZQogZW5kCiAKLWRlZiBpc0ZU
TEVuYWJsZWQKLSAgICAkaml0VGVzdHMgJiYgJGlzRlRMUGxhdGZvcm0KLWVuZAotCiBpZiAhJHRl
c3RSdW5uZXJUeXBlCiAgICAgaWYgJHJlbW90ZSBhbmQgJGhvc3RPUyA9PSAiZGFyd2luIgogICAg
ICAgICAkdGVzdFJ1bm5lclR5cGUgPSA6c2hlbGwKQEAgLTE3MjgsOCArMTczMCw3IEBAIGRlZiBu
b05vTExJbnRSdW5Nb2R1bGVzCiBlbmQKIAogZGVmIHJ1bldlYkFzc2VtYmx5Ci0gICAgcmV0dXJu
IGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0dXJu
IGlmICEkaXNXYXNtUGxhdGZvcm0KICAgICBydW4oImRlZmF1bHQtd2FzbSIsICItbSIsICpGVExf
T1BUSU9OUykKICAgICBpZiAkbW9kZSAhPSAicXVpY2siCiAgICAgICAgIHJ1bigid2FzbS1uby1j
aml0LXllcy10bHMtY29udGV4dCIsICItbSIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD10
cnVlIiwgKihGVExfT1BUSU9OUyArIE5PX0NKSVRfT1BUSU9OUykpCkBAIC0xNzM3LDE1ICsxNzM4
LDE2IEBAIGRlZiBydW5XZWJBc3NlbWJseQogICAgICAgICBydW4oIndhc20tZWFnZXItamV0dGlz
b24iLCAiLW0iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09sZEFnZT10cnVlIiwg
Ii0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgIi0tdmVy
aWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLW5vLXRscy1jb250
ZXh0IiwgIi1tIiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PWZhbHNlIiwgKkZUTF9PUFRJ
T05TKQogICAgICAgICBydW4oIndhc20tc2xvdy1tZW1vcnkiLCAiLW0iLCAiLS11c2VXZWJBc3Nl
bWJseUZhc3RNZW1vcnk9ZmFsc2UiLCAqRlRMX09QVElPTlMpCisgICAgICAgIHJ1bigid2FzbS1j
b2xsZWN0LWNvbnRpbnVvdXNseSIsICItbSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIs
ICItLXZlcmlmeUdDPXRydWUiLCAqRlRMX09QVElPTlMpIGlmIHNob3VsZENvbGxlY3RDb250aW51
b3VzbHk/CisgICAgZW5kCisgICAgaWYgJGlzRlRMUGxhdGZvcm0KICAgICAgICAgcnVuKCJ3YXNt
LWIzIiwgIi1tIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFs
c2UiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1haXIiLCAiLW0iLCAiLS11c2VX
YXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0
aW9uPXRydWUiLCAqRlRMX09QVElPTlMpCi0gICAgICAgIHJ1bigid2FzbS1jb2xsZWN0LWNvbnRp
bnVvdXNseSIsICItbSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdD
PXRydWUiLCAqRlRMX09QVElPTlMpIGlmIHNob3VsZENvbGxlY3RDb250aW51b3VzbHk/CiAgICAg
ZW5kCiBlbmQKIAogZGVmIHJ1bldlYkFzc2VtYmx5SmV0U3RyZWFtMgotICAgIHJldHVybiBpZiAh
JGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAh
JGlzV2FzbVBsYXRmb3JtCiAKICAgICBpZiAkbWVtb3J5TGltaXRlZAogICAgICAgICBza2lwCkBA
IC0xNzY0LDE1ICsxNzY2LDE2IEBAIGRlZiBydW5XZWJBc3NlbWJseUpldFN0cmVhbTIKICAgICAg
ICAgcnVuKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29u
RHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqRlRMX09QVElPTlMpCiAgICAg
ICAgIHJ1bigid2FzbS1uby10bHMtY29udGV4dCIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4
dD1mYWxzZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLXNsb3ctbWVtb3J5Iiwg
Ii0tdXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5PWZhbHNlIiwgKkZUTF9PUFRJT05TKQorICAgICAg
ICBydW4oIndhc20tY29sbGVjdC1jb250aW51b3VzbHkiLCAiLS1jb2xsZWN0Q29udGludW91c2x5
PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKkZUTF9PUFRJT05TKSBpZiBzaG91bGRDb2xsZWN0
Q29udGludW91c2x5PworICAgIGVuZAorICAgIGlmICRGVExQbGF0Zm9ybQogICAgICAgICBydW4o
Indhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxz
ZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLWFpciIsICItLXVzZVdhc21MTElu
dD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1
ZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVuKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5
IiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExf
T1BUSU9OUykgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8KICAgICBlbmQKIGVuZAogCiBk
ZWYgcnVuV2ViQXNzZW1ibHlTdWl0ZSgqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQotICAg
IHJldHVybiBpZiAhJGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAg
IHJldHVybiBpZiAhJGlzV2FzbVBsYXRmb3JtCiAgICAgbW9kdWxlcyA9IERpcltXQVNNVEVTVFNf
UEFUSCArICIqLmpzIl0ubWFwIHsgfGZ8IEZpbGUuYmFzZW5hbWUoZikgfQogICAgIHByZXBhcmVF
eHRyYUFic29sdXRlRmlsZXMoV0FTTVRFU1RTX1BBVEgsIFsid2FzbS5qc29uIl0pCiAgICAgcHJl
cGFyZUV4dHJhUmVsYXRpdmVGaWxlcyhtb2R1bGVzLm1hcCB7IHxmfCAiLi4vIiArIGYgfSwgJGNv
bGxlY3Rpb24pCkBAIC0xNzg4LDkgKzE3OTEsMTEgQEAgZGVmIHJ1bldlYkFzc2VtYmx5U3VpdGUo
Km9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKICAgICAgICAgcnVuKCJ3YXNtLWVhZ2VyLWpl
dHRpc29uIiwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICIt
LXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICItLXZlcmlm
eUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkK
ICAgICAgICAgcnVuKCJ3YXNtLW5vLXRscy1jb250ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21D
b250ZXh0PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9u
cykpCiAgICAgICAgIHJ1bigid2FzbS1zbG93LW1lbW9yeSIsICItLXVzZVdlYkFzc2VtYmx5RmFz
dE1lbW9yeT1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlv
bnMpKQorICAgICAgICBydW4oIndhc20tY29sbGVjdC1jb250aW51b3VzbHkiLCAiLS1jb2xsZWN0
Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKihGVExfT1BUSU9OUyArIG9w
dGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpIGlmIHNob3VsZENvbGxlY3RDb250aW51b3VzbHk/
CisgICAgZW5kCisgICAgaWYgJGlzRlRMUGxhdGZvcm0KICAgICAgICAgcnVuKCJ3YXNtLWIzIiwg
Ii0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqKEZUTF9P
UFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuKCJ3YXNt
LWFpciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJs
ZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVj
aWZpY09wdGlvbnMpKQotICAgICAgICBydW4oIndhc20tY29sbGVjdC1jb250aW51b3VzbHkiLCAi
LS1jb2xsZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKihGVExfT1BU
SU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpIGlmIHNob3VsZENvbGxlY3RDb250
aW51b3VzbHk/CiAgICAgZW5kCiBlbmQKIApAQCAtMTgwNSw4ICsxODEwLDkgQEAgZW5kCiAKIGRl
ZiBydW5XZWJBc3NlbWJseVdpdGhIYXJuZXNzKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMp
CiAgICAgcmFpc2UgdW5sZXNzICRiZW5jaG1hcmsudG9fcyA9fiAvaGFybmVzc1wubT9qcy8KLSAg
ICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRMUGxhdGZvcm0KKyAg
ICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQorICAgICMgU2tpcCB0aGlzIGNvbXBsZXRlbHkg
b24gYXJtdjcgZm9yIG5vdywgc2luY2UgbW9zdCBvZiB0aGUgdGVzdHMgYXJlIHJlbGF0ZWQgdG8g
T1NSIGFuZCBpdCdzIGEgYml0IGhhaXJ5IHRvIHNraXAgdGhlbSBtYW51YWxseQorICAgIHJldHVy
biBpZiAkYXJjaGl0ZWN0dXJlID09ICJhcm0iCiAKICAgICB3YXNtRmlsZXMgPSBhbGxXYXNtRmls
ZXMoJGNvbGxlY3Rpb24pCiAgICAgcHJlcGFyZUV4dHJhUmVsYXRpdmVGaWxlcyh3YXNtRmlsZXMu
bWFwIHsgfGZ8IGYuYmFzZW5hbWUgfSwgJGNvbGxlY3Rpb24pCkBAIC0xODE4LDkgKzE4MjQsMTEg
QEAgZGVmIHJ1bldlYkFzc2VtYmx5V2l0aEhhcm5lc3MoKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0
aW9ucykKICAgICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tZWFnZXItamV0dGlzb24iLCAiLS1m
b3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09sZEFnZT10cnVlIiwgIi0tdXNlUmFuZG9taXpp
bmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICoo
RlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgICBydW5I
YXJuZXNzVGVzdCgid2FzbS1uby10bHMtY29udGV4dCIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29u
dGV4dD1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMp
KQogICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1zbG93LW1lbW9yeSIsICItLXVzZVdlYkFz
c2VtYmx5RmFzdE1lbW9yeT1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVj
aWZpY09wdGlvbnMpKQorICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1jb2xsZWN0LWNvbnRp
bnVvdXNseSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUi
LCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkgaWYgc2hvdWxk
Q29sbGVjdENvbnRpbnVvdXNseT8KKyAgICBlbmQKKyAgICBpZiAkaXNGVExQbGF0Zm9ybQogICAg
ICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICIt
LXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNp
ZmljT3B0aW9ucykpCiAgICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLW5vLWFpciIsICItLXVz
ZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9j
YXRpb249dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMp
KQotICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNseSIsICIt
LWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJ
T05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkgaWYgc2hvdWxkQ29sbGVjdENvbnRp
bnVvdXNseT8KICAgICBlbmQKIGVuZAogCkBAIC0xODI5LDggKzE4MzcsNyBAQCBkZWYgcnVuV2Vi
QXNzZW1ibHlFbXNjcmlwdGVuKG1vZGUpCiAgICAgd2hlbiA6c2tpcAogICAgICAgICByZXR1cm4K
ICAgICBlbmQKLSAgICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRM
UGxhdGZvcm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQogICAgIHdhc20gPSAkYmVu
Y2htYXJrLnRvX3Muc3ViISAnLmpzJywgJy53YXNtJwogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZl
RmlsZXMoW1BhdGhuYW1lKCcuLicpICsgd2FzbV0sICRjb2xsZWN0aW9uKQogICAgIHJ1bigiZGVm
YXVsdC13YXNtIiwgKkZUTF9PUFRJT05TKQpAQCAtMTgzOCw5ICsxODQ1LDExIEBAIGRlZiBydW5X
ZWJBc3NlbWJseUVtc2NyaXB0ZW4obW9kZSkKICAgICAgICAgcnVuKCJ3YXNtLW5vLWNqaXQteWVz
LXRscy1jb250ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PXRydWUiLCAqKEZUTF9P
UFRJT05TICsgTk9fQ0pJVF9PUFRJT05TKSkKICAgICAgICAgcnVuKCJ3YXNtLWVhZ2VyLWpldHRp
c29uIiwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXVz
ZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICItLXZlcmlmeUdD
PXRydWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1uby10bHMtY29udGV4dCIs
ICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICpGVExfT1BUSU9OUykKKyAgICAg
ICAgcnVuKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5IiwgIi0tY29sbGVjdENvbnRpbnVvdXNs
eT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykgaWYgc2hvdWxkQ29sbGVj
dENvbnRpbnVvdXNseT8KKyAgICBlbmQKKyAgICBpZiAkaXNGVExQbGF0Zm9ybQogICAgICAgICBy
dW4oIndhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1m
YWxzZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLWFpciIsICItLXVzZVdhc21M
TEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249
dHJ1ZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVuKCJ3YXNtLWNvbGxlY3QtY29udGludW91
c2x5IiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpG
VExfT1BUSU9OUykgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8KICAgICBlbmQKIGVuZAog
CkBAIC0xODQ5LDggKzE4NTgsNyBAQCBkZWYgcnVuV2ViQXNzZW1ibHlTcGVjVGVzdEJhc2UobW9k
ZSwgc3BlY0hhcm5lc3NQYXRoLCAqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpbwogICAgIHdoZW4g
OnNraXAKICAgICAgICAgcmV0dXJuCiAgICAgZW5kCi0gICAgcmV0dXJuIGlmICEkaml0VGVzdHMK
LSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0dXJuIGlmICEkaXNXYXNtUGxh
dGZvcm0KICAgICBwcmVwYXJlRXh0cmFBYnNvbHV0ZUZpbGVzKFdBU01URVNUU19QQVRILCBbIndh
c20uanNvbiJdKQogCiAgICAgbW9kdWxlcyA9IERpcltXQVNNVEVTVFNfUEFUSCArICIqLmpzIl0u
bWFwIHsgfGZ8IEZpbGUuYmFzZW5hbWUoZikgfQpAQCAtMTg2NSwxMCArMTg3MywxMiBAQCBkZWYg
cnVuV2ViQXNzZW1ibHlTcGVjVGVzdEJhc2UobW9kZSwgc3BlY0hhcm5lc3NQYXRoLCAqb3B0aW9u
YWxUZXN0U3BlY2lmaWNPcHRpbwogICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20tbm8t
Y2ppdC15ZXMtdGxzLWNvbnRleHQiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQ
YXRoLCAgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PXRydWUiLCAqKEZUTF9PUFRJT05TICsg
Tk9fQ0pJVF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgIHJ1
bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgbm9pc3lPdXRwdXRIYW5k
bGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9P
bGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249
dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3Bl
Y2lmaWNPcHRpb25zKSkKICAgICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLW5vLXRscy1j
b250ZXh0Iiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tdXNlRmFz
dFRMU0Zvcldhc21Db250ZXh0PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNw
ZWNpZmljT3B0aW9ucykpCi0gICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1iMyIsIG5v
aXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICItLXVzZVdhc21MTEludD1mYWxz
ZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVz
dFNwZWNpZmljT3B0aW9ucykpCi0gICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1haXIi
LCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAiLS11c2VXYXNtTExJbnQ9
ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUi
LCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgIHJ1
bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5Iiwgbm9pc3lPdXRw
dXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVl
IiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZp
Y09wdGlvbnMpKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5PwogICAgIGVuZAorICAgIGlm
ICRpc0ZUTFBsYXRmb3JtCisgICAgICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWIzIiwg
bm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tdXNlV2FzbUxMSW50PWZh
bHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxU
ZXN0U3BlY2lmaWNPcHRpb25zKSkKKyAgICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20t
YWlyIiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tdXNlV2FzbUxM
SW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10
cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCisgICAg
ZW5kCiBlbmQKIAogZGVmIHJ1bldlYkFzc2VtYmx5U3BlY1Rlc3QobW9kZSkKQEAgLTE4ODQsOCAr
MTg5NCw3IEBAIGRlZiBydW5XZWJBc3NlbWJseUZ1bmN0aW9uUmVmZXJlbmNlU3BlY1Rlc3QobW9k
ZSkKIGVuZAogCiBkZWYgcnVuV2ViQXNzZW1ibHlMb3dFeGVjdXRhYmxlTWVtb3J5KCpvcHRpb25h
bFRlc3RTcGVjaWZpY09wdGlvbnMpCi0gICAgcmV0dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1
cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KICAg
ICBtb2R1bGVzID0gRGlyW1dBU01URVNUU19QQVRIICsgIiouanMiXS5tYXAgeyB8ZnwgRmlsZS5i
YXNlbmFtZShmKSB9CiAgICAgcHJlcGFyZUV4dHJhQWJzb2x1dGVGaWxlcyhXQVNNVEVTVFNfUEFU
SCwgWyJ3YXNtLmpzb24iXSkKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZpbGVzKG1vZHVsZXMu
bWFwIHsgfGZ8ICIuLi8iICsgZiB9LCAkY29sbGVjdGlvbikKLS0gCjIuMzUuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457058</attachid>
            <date>2022-04-08 05:43:46 -0700</date>
            <delta_ts>2022-04-12 06:56:08 -0700</delta_ts>
            <desc>v5 - fix review comment and rebase</desc>
            <filename>bug-221260-20220408124340.patch</filename>
            <type>text/plain</type>
            <size>324151</size>
            <attacher name="Geza Lore">glore</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MWRhYzIzY2VmYTQxNmZmMmMwYjlkN2FkN2FmYTFjZDBjMjVmNDU4Li4zNzQxYjZkNTk4ZjlkMDA2
ZGU0YWM2OTUzZDA3ZjhlMmQxZDZlNDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMDcgQEAKKzIwMjItMDQtMDggIFhhbiBMw7NwZXogIDx4YW5AaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbSlNDXSBFbmFibGUgV2FzbUxMSW50IG9uIEFSTXY3CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEyNjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBieSBHZXphIExvcmUgYW5kIFhh
biBMw7NwZXouCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBMTEludCB0aWVyIG9mIFdlYkFzc2Vt
Ymx5IGZvciBBUk12Ny4gQSBsb3Qgb2YgdGhlCisgICAgICAgIHdvcmsgd2lsbCBiZSBzaGFyZWQg
YnkgYW55IDMyYml0IHBvcnQsIGJ1dCB0aGUgb2ZmbGluZWFzc2VtYmxlcgorICAgICAgICBoYXMg
b25seSBiZWVuIHVwZGF0ZWQgZm9yIEFSTXY3IHNvIGZhci4KKworICAgICAgICBNYWluIGhpZ2hs
aWdodHM6CisKKyAgICAgICAgV2UgaGF2ZSBzcGxpdCB0aGUgV2ViQXNzZW1ibHkuYXNtIGZpbGUg
aW50byB0aHJlZSBjaHVua3MsCisgICAgICAgIGZvbGxvd2luZyB3aGF0IExvd0xldmVsSW50ZXJw
cmV0ZXIuYXNtIGRvZXMuIFRoZSBjb21tb24gY29kZQorICAgICAgICByZW1haW5zIGluIFdlYkFz
c2VtYmx5LmFzbSwgYW5kIDMyIGFuZCA2NGJpdCBzcGVjaWZpYyBjb2RlIChtb3N0bHkKKyAgICAg
ICAgb3Bjb2RlIGltcGxlbWVudGF0aW9ucykgZ29lcyBpbnRvIFdlYkFzc2VtYmx5MzJfNjQuYXNt
IGFuZAorICAgICAgICBXZWJBc3NlbWJseTY0LmFzbS4KKworICAgICAgICBXZSBoYXZlIGRlY2lk
ZWQgdG8gdXNlIGNvbnNlY3V0aXZlIGV2ZW4vb2RkIHBhaXJzIG9mIEdQUnMgZm9yIGV2ZXJ5Cisg
ICAgICAgIHR5cGUgb2Ygd2FzbSB2YWx1ZXMsIGV2ZW4gaWYgdGhleSBhcmUgMzJiaXQgKGkzMi9m
MzIpLCB3aXRoIHRoZSBvZGQKKyAgICAgICAgKGhpZ2hlcikgbnVtYmVyZWQgR1BSIGhvbGRpbmcg
dGhlIG1vcmUgc2lnbmlmaWNhbnQgaGFsZi4gMzJiaXQgdmFsdWVzCisgICAgICAgIGFyZSBoZWxk
IGluIHRoZSBldmVuIChsb3dlcikgbnVtYmVyZWQgcmVnaXN0ZXIuIFRoaXMgbWFrZXMgdGhlIGNv
ZGUKKyAgICAgICAgbXVjaCBzaW1wbGVyIGFuZCBhbGxvd3MgdXMgdG8gc2hhcmUgbW9yZSBjb2Rl
IHdpdGggdGhlIDY0Yml0IHZhcmlhbnQuCisgICAgICAgIFRoaXMgaXMgbW9zdGx5IHJlbGV2YW50
IGZvciBhcmd1bWVudCBwYXNzaW5nLCBhbmQgZ2l2ZW4gdGhhdCBldmVyeQorICAgICAgICB2YWx1
ZSBlbmRzIHVwIGluIHRoZSBzdGFjayBhbnl3YXkgd2UgZG8gbm90IHRoaW5rIGl0IGlzIHNpZ25p
ZmljYW50CisgICAgICAgIGZyb20gYSBwZXJmb3JtYW5jZSBQT1YuCisKKyAgICAgICAgV2UgYXJl
IHJldXNpbmcgSlNWYWx1ZVJlZ3MgdG8gaG9sZCBXYXNtIHZhbHVlcyB0b28uIE9idmlvdXNseSB0
aGV5CisgICAgICAgIGFyZSBub3QgcmVhbGx5IEpTVmFsdWVzLCBzbyBpdCBtaWdodCBtYWtlIHNl
bnNlIHRvIGNyZWF0ZSBhIGJhc2UKKyAgICAgICAgY2xhc3MgdGhhdCBjYW4gYmUgdXNlZCBmb3Ig
Ym90aCBKUyBhbmQgV2FzbSB2YWx1ZXMuCisKKyAgICAgICAgV2UgZG8gbm90IGhhdmUgZW5vdWdo
IHJlZ2lzdGVycyB0byBrZWVwIHRoaW5ncyBsaWtlIHRoZSBtZW1vcnkKKyAgICAgICAgYmFzZSBw
b2ludGVyIGFuZCBzaXplIGluIHBpbm5lZCByZWdpc3RlcnMsIHNvIHdlIGFyZSBmb3JjZWQgdG8K
KyAgICAgICAgbG9hZCB0aGVtIG9uIGVhY2ggdXNlLgorCisgICAgICAgIFdlIGRpc2FibGUgdGhl
ICdTaWduYWxpbmcnIG1lbW9yeSBtb2RlLCBzaW5jZSB0aGUgY3VycmVudAorICAgICAgICBpbXBs
ZW1lbnRhdGlvbiByZWxpZXMgb24gYmVpbmcgYWJsZSB0byBtcHJvdGVjdCBhIDJeMzIgKyByZWR6
b25lCisgICAgICAgIHJlZ2lvbiBvZiBtZW1vcnkuIFRoaXMgY2FuIGJlIGNoYW5nZWQgaW4gdGhl
IGZ1dHVyZSBidXQgaXQncyBub3QgYQorICAgICAgICBwcmlvcml0eSBhdCB0aGUgbW9tZW50Lgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogYXNzZW1ibGVyL0FSTXY3QXNz
ZW1ibGVyLmg6CisgICAgICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjp2Y3Z0X3NpZ25lZFRvRmxv
YXRpbmdQb2ludCk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaDoK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6Y29udmVydEludDMyVG9GbG9hdCk6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnRocmVhZFNhZmVQYXRjaGFibGVO
ZWFyQ2FsbCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmNhbGxPcGVyYXRp
b24pOgorICAgICAgICAqIGIzL0IzVmFsdWVSZXAuaDoKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVl
UmVwOjpWYWx1ZVJlcCk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwOgor
ICAgICAgICAoSlNDOjpXYXNtOjpCeXRlY29kZUR1bXBlcjo6Zm9ybWF0Q29uc3RhbnQgY29uc3Qp
OgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5oOiBhZGFwdCB0byBuZXcgY2FsbGVl
IHRhZ2dpbmcgZm9ybWF0LgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OmNhbGxlZSBjb25zdCk6
CisgICAgICAgIChKU0M6OkNhbGxGcmFtZTo6dW5zYWZlQ2FsbGVlIGNvbnN0KToKKyAgICAgICAg
KiBpbnRlcnByZXRlci9DYWxsZWVCaXRzLmg6IGFkZCB3YXNtIHRhZ2dpbmcgb2YgY2FsbGVlIHZh
bHVlcyBmb3IKKyAgICAgICAgMzJiaXQuCisgICAgICAgIChKU0M6OkNhbGxlZUJpdHM6OkNhbGxl
ZUJpdHMpOgorICAgICAgICAoSlNDOjpDYWxsZWVCaXRzOjpvcGVyYXRvcj0pOgorICAgICAgICAo
SlNDOjpDYWxsZWVCaXRzOjpib3hXYXNtKToKKyAgICAgICAgKEpTQzo6Q2FsbGVlQml0czo6aXNX
YXNtIGNvbnN0KToKKyAgICAgICAgKEpTQzo6Q2FsbGVlQml0czo6YXNXYXNtQ2FsbGVlIGNvbnN0
KToKKyAgICAgICAgKiBpbnRlcnByZXRlci9SZWdpc3Rlci5oOgorICAgICAgICAoSlNDOjpSZWdp
c3Rlcjo6dW5ib3hlZEZsb2F0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXI6OmFzYW5V
bnNhZmVVbmJveGVkRmxvYXQgY29uc3QpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMu
aDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjp1bmJveERvdWJsZSk6CisgICAgICAg
ICogaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmNwcDoKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXJB
dE9mZnNldExpc3Q6OlJlZ2lzdGVyQXRPZmZzZXRMaXN0KToKKyAgICAgICAgKiBqaXQvUmVnaXN0
ZXJBdE9mZnNldExpc3QuaDoKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXJBdE9mZnNldExpc3Q6OnNp
emVPZkFyZWFJbkJ5dGVzIGNvbnN0KToKKyAgICAgICAgKiBqaXQvUmVnaXN0ZXJTZXQuY3BwOgor
ICAgICAgICAoSlNDOjpSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKToKKyAgICAg
ICAgKiBsbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaDoKKyAgICAgICAgKiBsbGludC9Mb3dM
ZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L1dlYkFzc2VtYmx5LmFz
bToKKyAgICAgICAgKiBsbGludC9XZWJBc3NlbWJseTMyXzY0LmFzbTogQWRkZWQuCisgICAgICAg
ICogbGxpbnQvV2ViQXNzZW1ibHk2NC5hc206IEFkZGVkLgorICAgICAgICAqIG9mZmxpbmVhc20v
YXJtLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiOgorICAgICAgICAq
IG9mZmxpbmVhc20vcmVnaXN0ZXJzLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vcmlzYy5yYjoK
KyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKyAgICAgICAgKEpTQzo6d2FzbVVuYm94
ZWRGbG9hdCk6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjpKU1ZhbHVlKToKKyAgICAgICAgKiB3YXNtL1dhc21BaXJJUkdlbmVy
YXRvci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjp1c2VTaWduYWxp
bmdNZW1vcnkgY29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6QWly
SVJHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6ZW1pdENo
ZWNrQW5kUHJlcGFyZVBvaW50ZXIpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRv
cjo6YWRkQ2FsbCk6CisgICAgICAgICogd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHA6CisgICAg
ICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OnVzZVNpZ25hbGluZ01lbW9yeSBjb25zdCk6
CisgICAgICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OkIzSVJHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjphZGRBcmd1bWVudHMpOgorICAgICAgICAo
SlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcik6Cisg
ICAgICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6Om1lbW9yeUtpbmQpOgorICAgICAgICAo
SlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjphZGRDYWxsKToKKyAgICAgICAgKiB3YXNtL1dhc21C
aW5kaW5nLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6d2FzbVRvV2FzbSk6CisgICAgICAgICog
d2FzbS9XYXNtQ2FsbGVlLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRDYWxsZWU6OmNh
bGxlZVNhdmVSZWdpc3RlcnMpOgorICAgICAgICAqIHdhc20vV2FzbUNhbGxlZUdyb3VwLmNwcDoK
KyAgICAgICAgKEpTQzo6V2FzbTo6Q2FsbGVlR3JvdXA6OmlzU2FmZVRvUnVuKToKKyAgICAgICAg
KiB3YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5jcHA6CisgICAgICAgIChKU0M6Oldhc206Ompz
Q2FsbGluZ0NvbnZlbnRpb24pOgorICAgICAgICAoSlNDOjpXYXNtOjp3YXNtQ2FsbGluZ0NvbnZl
bnRpb24pOgorICAgICAgICAqIHdhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmg6CisgICAgICAg
IChKU0M6Oldhc206OkNhbGxJbmZvcm1hdGlvbjo6Y29tcHV0ZVJlc3VsdHNPZmZzZXRMaXN0KToK
KyAgICAgICAgKEpTQzo6V2FzbTo6V2FzbUNhbGxpbmdDb252ZW50aW9uOjpXYXNtQ2FsbGluZ0Nv
bnZlbnRpb24pOgorICAgICAgICAoSlNDOjpXYXNtOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb246Om1h
cnNoYWxsTG9jYXRpb25JbXBsIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6V2FzbUNhbGxp
bmdDb252ZW50aW9uOjptYXJzaGFsbExvY2F0aW9uIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2Fz
bTo6SlNDYWxsaW5nQ29udmVudGlvbjo6SlNDYWxsaW5nQ29udmVudGlvbik6CisgICAgICAgIChK
U0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxsTG9jYXRpb25JbXBsIGNvbnN0
KToKKyAgICAgICAgKEpTQzo6V2FzbTo6SlNDYWxsaW5nQ29udmVudGlvbjo6bWFyc2hhbGxMb2Nh
dGlvbiBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246OmNh
bGxJbmZvcm1hdGlvbkZvciBjb25zdCk6CisgICAgICAgICogd2FzbS9XYXNtRm9ybWF0Lmg6Cisg
ICAgICAgICogd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpJ
bmRleE9yTmFtZTo6SW5kZXhPck5hbWUpOgorICAgICAgICAoSlNDOjpXYXNtOjptYWtlU3RyaW5n
KToKKyAgICAgICAgKiB3YXNtL1dhc21JbmRleE9yTmFtZS5oOgorICAgICAgICAoSlNDOjpXYXNt
OjpJbmRleE9yTmFtZTo6SW5kZXhPck5hbWUpOgorICAgICAgICAoSlNDOjpXYXNtOjpJbmRleE9y
TmFtZTo6aXNFbXB0eSBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1lOjpp
c0luZGV4IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OmlzTmFtZSBj
b25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1lOjppbmRleCBjb25zdCk6Cisg
ICAgICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1lOjpuYW1lIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6V2FzbTo6SW5kZXhPck5hbWU6Om5hbWVTZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKiB3YXNt
L1dhc21JbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpXYXNtOjpJbnN0YW5jZTo6dXBkYXRlQ2Fj
aGVkTWVtb3J5KToKKyAgICAgICAgKiB3YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHA6CisgICAg
ICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjp2aXJ0dWFsUmVnaXN0ZXJGb3JXYXNtTG9j
YWwpOgorICAgICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9u
Rm9yQ2FsbGVyKToKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmNhbGxJbmZv
cm1hdGlvbkZvckNhbGxlZSk6CisgICAgICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjph
ZGRBcmd1bWVudHMpOgorICAgICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6YWRkTG9v
cCk6CisgICAgICAgICogd2FzbS9XYXNtTExJbnRQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6V2Fz
bTo6TExJbnRQbGFuOjpkaWRDb21wbGV0ZUNvbXBpbGF0aW9uKToKKyAgICAgICAgKiB3YXNtL1dh
c21NZW1vcnkuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpNZW1vcnlIYW5kbGU6On5NZW1vcnlI
YW5kbGUpOgorICAgICAgICAoSlNDOjpXYXNtOjpNZW1vcnk6OnRyeUNyZWF0ZSk6CisgICAgICAg
IChKU0M6Oldhc206Ok1lbW9yeTo6Z3Jvd1NoYXJlZCk6CisgICAgICAgIChKU0M6Oldhc206Ok1l
bW9yeTo6Z3Jvdyk6CisgICAgICAgIChKU0M6Oldhc206Ok1lbW9yeTo6Y29weSk6CisgICAgICAg
ICogd2FzbS9XYXNtTWVtb3J5Lmg6CisgICAgICAgICogd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRp
b24uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpQaW5uZWRSZWdpc3RlckluZm86OmdldCk6Cisg
ICAgICAgICogd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uaDoKKyAgICAgICAgKEpTQzo6V2Fz
bTo6UGlubmVkUmVnaXN0ZXJJbmZvOjp0b1NhdmUgY29uc3QpOgorICAgICAgICAqIHdhc20vV2Fz
bU1lbW9yeU1vZGUuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjptYWtlU3RyaW5nKToKKyAgICAg
ICAgKiB3YXNtL1dhc21NZW1vcnlNb2RlLmg6CisgICAgICAgICogd2FzbS9XYXNtT3Bjb2RlT3Jp
Z2luLmNwcDoKKyAgICAgICAgKiB3YXNtL1dhc21PcGNvZGVPcmlnaW4uaDoKKyAgICAgICAgKiB3
YXNtL1dhc21PcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6SlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKToKKyAgICAgICAgKiB3YXNtL1dhc21PcGVyYXRpb25zLmg6CisgICAgICAg
ICogd2FzbS9XYXNtUGFnZUNvdW50Lmg6CisgICAgICAgICogd2FzbS9XYXNtUGFyc2VyLmg6Cisg
ICAgICAgIChKU0M6Oldhc206OlBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVUludDMyKToKKyAg
ICAgICAgKEpTQzo6V2FzbTo6UGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VVSW50NjQpOgorICAg
ICAgICAqIHdhc20vV2FzbVNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpXQVNN
X1NMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX3Bv
cGNvdW50KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX3BvcGNvdW50bGwp
OgorICAgICAgICAoSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTMyX2Rpdl9zKToKKyAgICAg
ICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2kzMl9kaXZfdSk6CisgICAgICAgIChKU0M6
OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pMzJfcmVtX3MpOgorICAgICAgICAoSlNDOjpMTEludDo6
c2xvd19wYXRoX3dhc21faTMyX3JlbV91KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0
aF93YXNtX2k2NF9kaXZfcyk6CisgICAgICAgIChKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9p
NjRfZGl2X3UpOgorICAgICAgICAoSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTY0X3JlbV9z
KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2k2NF9yZW1fdSk6CisgICAg
ICAgICogd2FzbS9XYXNtU2xvd1BhdGhzLmg6CisgICAgICAgICogd2FzbS9XYXNtVmFsdWVMb2Nh
dGlvbi5jcHA6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmR1bXAgY29uc3Qp
OgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiB3YXNtL1dhc21WYWx1
ZUxvY2F0aW9uLmg6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OlZhbHVlTG9j
YXRpb24pOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjppc0dQUiBjb25zdCk6
CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzRlBSIGNvbnN0KToKKyAgICAg
ICAgKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6aXNTdGFjayBjb25zdCk6CisgICAgICAgIChK
U0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzU3RhY2tBcmd1bWVudCBjb25zdCk6CisgICAgICAg
IChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmpzciBjb25zdCk6CisgICAgICAgIChKU0M6Oldh
c206OlZhbHVlTG9jYXRpb246OmZwciBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVl
TG9jYXRpb246OnJlZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRp
b246OmlzUmVnIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2Nh
dGlvbjo6cmVnIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2Nh
dGlvbjo6Z3ByIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL2pzL0pTVG9XYXNtLmNw
cDoKKyAgICAgICAgKEpTQzo6V2FzbTo6bWFyc2hhbGxKU1Jlc3VsdCk6CisgICAgICAgIChKU0M6
Oldhc206OmNyZWF0ZUpTVG9XYXNtV3JhcHBlcik6CisgICAgICAgICogd2FzbS9qcy9XYXNtVG9K
Uy5jcHA6CisgICAgICAgIChKU0M6Oldhc206Ondhc21Ub0pTKToKKyAgICAgICAgKiB3YXNtL2pz
L1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUZ1bmN0
aW9uOjpwcmV2aW91c0luc3RhbmNlT2Zmc2V0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2ViQXNz
ZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3cpOgorICAgICAgICAqIHdhc20vanMv
V2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJl
Y29yZC5jcHA6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjppbml0aWFs
aXplRXhwb3J0cyk6CisKIDIwMjItMDQtMDcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxl
LmNvbT4KIAogICAgICAgICBbSlNDXSBGaXJlIHN0cnVjdHVyZSB0cmFuc2l0aW9uIHdhdGNocG9p
bnQgaW4gU3RydWN0dXJlOjpmaW5pc2hDcmVhdGlvbiBpbnN0ZWFkIG9mIFN0cnVjdHVyZSBjb25z
dHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwppbmRleCA3NGIxOTg5NGYzM2MwMjhhNWNjODcyZjcyYTQ5MWFhZTZiYjZlZDJkLi4w
ZTZjZGQzMTVmOWU0ZmMyNjk0NzQ3MTZkMzM4NDIyMjkxYzg3Y2M4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEy
IEBACisyMDIyLTA0LTA4ICBYYW4gTMOzcGV6ICA8eGFuQGlnYWxpYS5jb20+CisKKyAgICAgICAg
W0pTQ10gRW5hYmxlIFdhc21MTEludCBvbiBBUk12NworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMjYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGUuaDogZW5hYmxlIFdl
YkFzc2VtYmx5IG9uIEFSTXY3LgorCiAyMDIyLTA0LTA3ICBFbGxpb3R0IFdpbGxpYW1zICA8ZW13
QGFwcGxlLmNvbT4KIAogICAgICAgICBbWENCdWlsZF0gRW5hYmxlIGRlcGVuZGVuY3kgdmFsaWRh
dGlvbiBieSBkZWZhdWx0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMjlh
N2FmOWEyZGU2ODYyOWI3OGYwMjBmMWQ5ZDgxNzA5ZGEzYjI1ZS4uYzlkYWJiNTY0Nzc1ZmMyMTk5
NjdmZDA4Zjc0OGQyMzQzMzFhNWRkYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dApAQCAtMjAwLDYgKzIwMCw4IEBAIHNldChMTElOVF9BU00KICAgICBsbGludC9Mb3dMZXZlbElu
dGVycHJldGVyMzJfNjQuYXNtCiAgICAgbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQog
ICAgIGxsaW50L1dlYkFzc2VtYmx5LmFzbQorICAgIGxsaW50L1dlYkFzc2VtYmx5MzJfNjQuYXNt
CisgICAgbGxpbnQvV2ViQXNzZW1ibHk2NC5hc20KICkKIAogc2V0KE9GRkxJTkVfQVNNCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKaW5kZXgg
OWNhNmE0YTZjODQxYzY3NjU5ZmNiNTQ2YzdmNDQyYmQ3ZDI4OTg2MS4uNmM3NmU0ZWY1MjMyMjRk
NGY1MTExNDY2YTAxMmMzYmE2ZDU4MTUwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaApAQCAtMTk5MSwxMCArMTk5MSwxMCBAQCBwdWJs
aWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLnZmcE9wKE9QX1ZDTVAsIE9QX1ZDTVBiLCB0cnVlLCBW
RlBPcGVyYW5kKDUpLCByZCwgVkZQT3BlcmFuZCgwKSk7CiAgICAgfQogCi0gICAgdm9pZCB2Y3Z0
X3NpZ25lZFRvRmxvYXRpbmdQb2ludChGUERvdWJsZVJlZ2lzdGVySUQgcmQsIEZQU2luZ2xlUmVn
aXN0ZXJJRCBybSkKKyAgICB2b2lkIHZjdnRfc2lnbmVkVG9GbG9hdGluZ1BvaW50KEZQRG91Ymxl
UmVnaXN0ZXJJRCByZCwgRlBTaW5nbGVSZWdpc3RlcklEIHJtLCBib29sIHRvRG91YmxlID0gdHJ1
ZSkKICAgICB7CiAgICAgICAgIC8vIGJvb2xlYW4gdmFsdWVzIGFyZSA2NGJpdCAodG9JbnQsIHVu
c2lnbmVkLCByb3VuZFplcm8pCi0gICAgICAgIG1fZm9ybWF0dGVyLnZmcE9wKE9QX1ZDVlRfRlBJ
VkZQLCBPUF9WQ1ZUX0ZQSVZGUGIsIHRydWUsIHZjdnRPcChmYWxzZSwgZmFsc2UsIGZhbHNlKSwg
cmQsIHJtKTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudmZwT3AoT1BfVkNWVF9GUElWRlAsIE9QX1ZD
VlRfRlBJVkZQYiwgdG9Eb3VibGUsIHZjdnRPcChmYWxzZSwgZmFsc2UsIGZhbHNlKSwgcmQsIHJt
KTsKICAgICB9CiAKICAgICB2b2lkIHZjdnRfZmxvYXRpbmdQb2ludFRvU2lnbmVkKEZQU2luZ2xl
UmVnaXN0ZXJJRCByZCwgRlBEb3VibGVSZWdpc3RlcklEIHJtKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRleCA1MGVi
OWNmOWRmNDkxZjY0NDJkOWI5M2RlYjVjMWEzMmQ5NjY1MThkLi5jNWM5NDdjODJjZWE2MmU5MGJk
OGU3MDIwMjhkNDhhNjdlNTFkMDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaApAQCAtNDEsMTEgKzQxLDExIEBAIGNs
YXNzIE1hY3JvQXNzZW1ibGVyQVJNdjcgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxB
c3NlbWJsZXI+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBuZWFySnVt
cFJhbmdlID0gMTYgKiBNQjsKIAotcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3RleHByIFJlZ2lz
dGVySUQgZGF0YVRlbXBSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6aXA7CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBSZWdpc3RlcklEIGFkZHJlc3NUZW1wUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnI2
OwogCi0gICAgc3RhdGljIGNvbnN0ZXhwciBBUk1SZWdpc3RlcnM6OkZQRG91YmxlUmVnaXN0ZXJJ
RCBmcFRlbXBSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6ZDc7Citwcml2YXRlOgorICAgIHN0YXRp
YyBjb25zdGV4cHIgQVJNUmVnaXN0ZXJzOjpGUERvdWJsZVJlZ2lzdGVySUQgZnBUZW1wUmVnaXN0
ZXIgPSBBUk1SZWdpc3RlcnM6OmQxNTsKICAgICBpbmxpbmUgQVJNUmVnaXN0ZXJzOjpGUFNpbmds
ZVJlZ2lzdGVySUQgZnBUZW1wUmVnaXN0ZXJBc1NpbmdsZSgpIHsgcmV0dXJuIEFSTVJlZ2lzdGVy
czo6YXNTaW5nbGUoZnBUZW1wUmVnaXN0ZXIpOyB9CiAKICAgICAvLyBJbiB0aGUgVGh1bWItMiBp
bnN0cnVjdGlvbiBzZXQsIGluc3RydWN0aW9ucyBvcGVyYXRpbmcgb25seSBvbiByZWdpc3RlcnMg
cjAtcjcgY2FuIG9mdGVuCkBAIC0xNDIwLDYgKzE0MjAsMTIgQEAgcHVibGljOgogICAgICAgICBD
UkFTSCgpOwogICAgIH0KIAorICAgIHZvaWQgY29udmVydEludDMyVG9GbG9hdChSZWdpc3RlcklE
IHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci52bW92
KGZwVGVtcFJlZ2lzdGVyLCBzcmMsIHNyYyk7CisgICAgICAgIG1fYXNzZW1ibGVyLnZjdnRfc2ln
bmVkVG9GbG9hdGluZ1BvaW50KGRlc3QsIGZwVGVtcFJlZ2lzdGVyQXNTaW5nbGUoKSwgLyogdG9E
b3VibGU6ICovIGZhbHNlKTsKKyAgICB9CisKICAgICB2b2lkIGNvbnZlcnRJbnQzMlRvRG91Ymxl
KFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNz
ZW1ibGVyLnZtb3YoZnBUZW1wUmVnaXN0ZXIsIHNyYywgc3JjKTsKQEAgLTIyNTEsNiArMjI1Nywx
NCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBDYWxsKG1fYXNzZW1ibGVyLmIoKSwgQ2FsbDo6
TGlua2FibGVOZWFyVGFpbCk7CiAgICAgfQogCisgICAgLy8gRklYTUU6IHdoeSBpcyB0aGlzIHRo
ZSBzYW1lIHRoYW4gbmVhckNhbGwoKSBpbiBBUk02ND8gaXMgaXQgcmlnaHQ/CisgICAgQUxXQVlT
X0lOTElORSBDYWxsIHRocmVhZFNhZmVQYXRjaGFibGVOZWFyQ2FsbCgpCisgICAgeworICAgICAg
ICBpbnZhbGlkYXRlQWxsVGVtcFJlZ2lzdGVycygpOworICAgICAgICBtb3ZlRml4ZWRXaWR0aEVu
Y29kaW5nKFRydXN0ZWRJbW0zMigwKSwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgIHJldHVy
biBDYWxsKG1fYXNzZW1ibGVyLmJseChkYXRhVGVtcFJlZ2lzdGVyKSwgQ2FsbDo6TGlua2FibGVO
ZWFyKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIENhbGwgY2FsbChQdHJUYWcpCiAgICAg
ewogICAgICAgICBtb3ZlRml4ZWRXaWR0aEVuY29kaW5nKFRydXN0ZWRJbW0zMigwKSwgZGF0YVRl
bXBSZWdpc3Rlcik7CkBAIC0yMjc1LDYgKzIyODksMTIgQEAgcHVibGljOgogICAgIEFMV0FZU19J
TkxJTkUgQ2FsbCBjYWxsKFJlZ2lzdGVySUQgdGFyZ2V0LCBSZWdpc3RlcklEIGNhbGxUYWcpIHsg
cmV0dXJuIFVOVVNFRF9QQVJBTShjYWxsVGFnKSwgY2FsbCh0YXJnZXQsIE5vUHRyVGFnKTsgfQog
ICAgIEFMV0FZU19JTkxJTkUgQ2FsbCBjYWxsKEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBj
YWxsVGFnKSB7IHJldHVybiBVTlVTRURfUEFSQU0oY2FsbFRhZyksIGNhbGwoYWRkcmVzcywgTm9Q
dHJUYWcpOyB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgY2FsbE9wZXJhdGlvbihjb25zdCBG
dW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+IG9wZXJhdGlvbikKKyAgICB7CisgICAgICAgIG1v
dmUoVHJ1c3RlZEltbVB0cihvcGVyYXRpb24uZXhlY3V0YWJsZUFkZHJlc3MoKSksIGFkZHJlc3NU
ZW1wUmVnaXN0ZXIpOworICAgICAgICBjYWxsKGFkZHJlc3NUZW1wUmVnaXN0ZXIsIE9wZXJhdGlv
blB0clRhZyk7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHJldCgpCiAgICAgewog
ICAgICAgICBtX2Fzc2VtYmxlci5ieChsaW5rUmVnaXN0ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1ZhbHVlUmVwLmgKaW5kZXggMTU3YmM4ODY4MjMxMmIxYTFlOWRhNzM5YzA4MmMwZDZjNDc3
ZDMyNi4uNzY5MzhjNmZlY2FiZmQyNzEyNzdhYmVlMzlmZWE5M2E5MmY3YjY2MCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oCkBAIC0xMjYsOSArMTI2LDEzIEBAIHB1YmxpYzoK
ICAgICBWYWx1ZVJlcChXYXNtOjpWYWx1ZUxvY2F0aW9uIGxvY2F0aW9uKQogICAgIHsKICAgICAg
ICAgc3dpdGNoIChsb2NhdGlvbi5raW5kKCkpIHsKLSAgICAgICAgY2FzZSBXYXNtOjpWYWx1ZUxv
Y2F0aW9uOjpLaW5kOjpSZWdpc3RlcjoKKyAgICAgICAgY2FzZSBXYXNtOjpWYWx1ZUxvY2F0aW9u
OjpLaW5kOjpHUFJSZWdpc3RlcjoKICAgICAgICAgICAgIG1fa2luZCA9IFJlZ2lzdGVyOwotICAg
ICAgICAgICAgdS5yZWcgPSBsb2NhdGlvbi5yZWcoKTsKKyAgICAgICAgICAgIHUucmVnID0gbG9j
YXRpb24uanNyKCkucGF5bG9hZEdQUigpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgV2FzbTo6VmFsdWVMb2NhdGlvbjo6S2luZDo6RlBSUmVnaXN0ZXI6CisgICAgICAgICAgICBt
X2tpbmQgPSBSZWdpc3RlcjsKKyAgICAgICAgICAgIHUucmVnID0gbG9jYXRpb24uZnByKCk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXYXNtOjpWYWx1ZUxvY2F0aW9uOjpLaW5k
OjpTdGFjazoKICAgICAgICAgICAgIG1fa2luZCA9IFN0YWNrOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKaW5kZXggMDhhMjM1ODA0NGZk
NjM1OTcwMzIzYjAxMmM5Yzg3ZTM5NWUzZTY5OC4uMDAwMTQ3OTcwNDEyNmRhMDJkOGFjMmYzNTE3
OTQzNDM0M2JkNTlmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5dGVjb2RlRHVtcGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVEdW1wZXIuY3BwCkBAIC00MTMsNyArNDEzLDcgQEAgQ1N0cmluZyBCeXRlY29kZUR1
bXBlcjo6Zm9ybWF0Q29uc3RhbnQoVHlwZSB0eXBlLCB1aW50NjRfdCBjb25zdGFudCkgY29uc3QK
ICAgICAgICAgaWYgKGlzRnVuY3JlZih0eXBlKSB8fCBpc0V4dGVybnJlZih0eXBlKSkgewogICAg
ICAgICAgICAgaWYgKEpTVmFsdWU6OmRlY29kZShjb25zdGFudCkgPT0ganNOdWxsKCkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuICJudWxsIjsKLSAgICAgICAgICAgIHJldHVybiB0b0NTdHJpbmco
UmF3UG9pbnRlcihiaXR3aXNlX2Nhc3Q8dm9pZCo+KGNvbnN0YW50KSkpOworICAgICAgICAgICAg
cmV0dXJuIHRvQ1N0cmluZyhSYXdQb2ludGVyKGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nh
c3Q8dWludHB0cl90Pihjb25zdGFudCkpKSk7CiAgICAgICAgIH0KIAogICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0NhbGxGcmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0NhbGxGcmFtZS5oCmluZGV4IGI0ZmNiYWNmYzBlMjI2ZjdjNjM0N2Y1ODliMWE4ZDM0MTRi
Y2ZjNzIuLjVlMmZjOWI0Y2M1YjQ0ODYyMWMzZGYwNjZkZmE4YTQ5M2U2ZWRiZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKQEAgLTE2Nyw4ICsx
NjcsOCBAQCBuYW1lc3BhY2UgSlNDICB7CiAgICAgICAgIC8vIHRvIHNlZSBpZiBpdCdzIGEgY2Vs
bCwgYW5kIGlmIGl0J3Mgbm90LCB3ZSB0aHJvdyBhbiBleGNlcHRpb24uCiAgICAgICAgIGlubGlu
ZSBKU1ZhbHVlIGd1YXJhbnRlZWRKU1ZhbHVlQ2FsbGVlKCkgY29uc3Q7CiAgICAgICAgIGlubGlu
ZSBKU09iamVjdCoganNDYWxsZWUoKSBjb25zdDsKLSAgICAgICAgQ2FsbGVlQml0cyBjYWxsZWUo
KSBjb25zdCB7IHJldHVybiBDYWxsZWVCaXRzKHRoaXNbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJh
bWVTbG90OjpjYWxsZWUpXS5wb2ludGVyKCkpOyB9Ci0gICAgICAgIFNVUFBSRVNTX0FTQU4gQ2Fs
bGVlQml0cyB1bnNhZmVDYWxsZWUoKSBjb25zdCB7IHJldHVybiBDYWxsZWVCaXRzKHRoaXNbc3Rh
dGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXS5hc2FuVW5zYWZlUG9pbnRlcigp
KTsgfQorICAgICAgICBDYWxsZWVCaXRzIGNhbGxlZSgpIGNvbnN0IHsgcmV0dXJuIENhbGxlZUJp
dHModGhpc1tzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSldLnVuYm94ZWRJ
bnQ2NCgpKTsgfQorICAgICAgICBTVVBQUkVTU19BU0FOIENhbGxlZUJpdHMgdW5zYWZlQ2FsbGVl
KCkgY29uc3QgeyByZXR1cm4gQ2FsbGVlQml0cyh0aGlzW3N0YXRpY19jYXN0PGludD4oQ2FsbEZy
YW1lU2xvdDo6Y2FsbGVlKV0uYXNhblVuc2FmZVVuYm94ZWRJbnQ2NCgpKTsgfQogICAgICAgICBD
b2RlQmxvY2sqIGNvZGVCbG9jaygpIGNvbnN0OwogICAgICAgICBDb2RlQmxvY2sqKiBhZGRyZXNz
T2ZDb2RlQmxvY2soKSBjb25zdCB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8Q29kZUJsb2NrKio+KHRo
aXMgKyBzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNvZGVCbG9jaykpOyB9CiAgICAg
ICAgIGlubGluZSBTVVBQUkVTU19BU0FOIENvZGVCbG9jayogdW5zYWZlQ29kZUJsb2NrKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbGVl
Qml0cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxlZUJpdHMuaApp
bmRleCAxOGJiN2VmN2ZhOGM3YzM5ZjNkNzFiYTk5NjYyMmIxZDZkNzkxZjU4Li5kZWEzYWU1NTgx
NjAzY2NlM2RhNjViYzczYTk0ZjE5MTU3M2ExYjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbGVlQml0cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmgKQEAgLTM5LDExICszOSwyMSBAQCBjbGFzcyBK
U0NlbGw7CiBjbGFzcyBDYWxsZWVCaXRzIHsKIHB1YmxpYzoKICAgICBDYWxsZWVCaXRzKCkgPSBk
ZWZhdWx0OwotICAgIENhbGxlZUJpdHModm9pZCogcHRyKSA6IG1fcHRyKHB0cikgeyB9IAorICAg
IENhbGxlZUJpdHMoaW50NjRfdCB2YWx1ZSkKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICA6
IG1fcHRyIHsgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odmFsdWUpIH0KKyNlbGlmIFVTRShKU1ZB
TFVFMzJfNjQpCisgICAgICAgIDogbV9wdHIgeyByZWludGVycHJldF9jYXN0PHZvaWQqPihKU1Zh
bHVlOjpkZWNvZGUodmFsdWUpLnBheWxvYWQoKSkgfQorICAgICAgICAsIG1fdGFnIHsgSlNWYWx1
ZTo6ZGVjb2RlKHZhbHVlKS50YWcoKSB9CisjZW5kaWYKKyAgICB7IH0KIAogICAgIENhbGxlZUJp
dHMmIG9wZXJhdG9yPShKU0NlbGwqIGNlbGwpCiAgICAgewogICAgICAgICBtX3B0ciA9IGNlbGw7
CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgbV90YWcgPSBKU1ZhbHVlOjpDZWxsVGFn
OworI2VuZGlmCiAgICAgICAgIEFTU0VSVChpc0NlbGwoKSk7CiAgICAgICAgIHJldHVybiAqdGhp
czsKICAgICB9CkBAIC01MSwxOCArNjEsMjQgQEAgcHVibGljOgogI2lmIEVOQUJMRShXRUJBU1NF
TUJMWSkKICAgICBzdGF0aWMgdm9pZCogYm94V2FzbShXYXNtOjpDYWxsZWUqIGNhbGxlZSkKICAg
ICB7Ci0gICAgICAgIENhbGxlZUJpdHMgcmVzdWx0KHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHJl
aW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihjYWxsZWUpIHwgSlNWYWx1ZTo6V2FzbVRhZykpOwor
I2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIENhbGxlZUJpdHMgcmVzdWx0IHsgcmVpbnRlcnBy
ZXRfY2FzdDxpbnQ2NF90PihjYWxsZWUpIHwgSlNWYWx1ZTo6V2FzbVRhZyB9OwogICAgICAgICBB
U1NFUlQocmVzdWx0LmlzV2FzbSgpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdC5yYXdQdHIoKTsK
KyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJldHVybiBjYWxsZWU7IC8vIFRoZSBw
b2ludGVyIGlzIGFzIGlzLCBidXQgdGhlIGNvcnJlc3BvbmRpbmcgdGFnIGZpZWxkIG5lZWRzIHRv
IGJlIHNldCB0byBXYXNtVGFnIHNlcGFyYXRlbHkuCisjZW5kaWYKICAgICB9CiAjZW5kaWYKIAog
ICAgIGJvb2wgaXNXYXNtKCkgY29uc3QKICAgICB7Ci0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQot
ICAgICAgICByZXR1cm4gKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtX3B0cikgJiBKU1Zh
bHVlOjpXYXNtTWFzaykgPT0gSlNWYWx1ZTo6V2FzbVRhZzsKLSNlbHNlCisjaWYgIUVOQUJMRShX
RUJBU1NFTUJMWSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworI2VsaWYgVVNFKEpTVkFMVUU2NCkK
KyAgICAgICAgcmV0dXJuIChyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4obV9wdHIpICYgSlNW
YWx1ZTo6V2FzbU1hc2spID09IEpTVmFsdWU6Oldhc21UYWc7CisjZWxpZiBVU0UoSlNWQUxVRTMy
XzY0KQorICAgICAgICByZXR1cm4gbV90YWcgPT0gSlNWYWx1ZTo6V2FzbVRhZzsKICNlbmRpZgog
ICAgIH0KICAgICBib29sIGlzQ2VsbCgpIGNvbnN0IHsgcmV0dXJuICFpc1dhc20oKTsgfQpAQCAt
NzcsMTQgKzkzLDIxIEBAIHB1YmxpYzoKICAgICBXYXNtOjpDYWxsZWUqIGFzV2FzbUNhbGxlZSgp
IGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQoaXNXYXNtKCkpOworI2lmIFVTRShKU1ZBTFVF
NjQpCiAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFdhc206OkNhbGxlZSo+KHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtX3B0cikgJiB+SlNWYWx1ZTo6V2FzbVRhZyk7CisjZWxp
ZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXYXNt
OjpDYWxsZWUqPihtX3B0cik7CisjZW5kaWYKICAgICB9CiAjZW5kaWYKIAogICAgIHZvaWQqIHJh
d1B0cigpIGNvbnN0IHsgcmV0dXJuIG1fcHRyOyB9Ci0gICAgCisKIHByaXZhdGU6CiAgICAgdm9p
ZCogbV9wdHIgeyBudWxscHRyIH07CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICB1aW50MzJf
dCBtX3RhZyB7IEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcgfTsKKyNlbmRpZgogfTsKIAogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvUmVnaXN0ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rl
ci5oCmluZGV4IGQ4NzljOTBiZTMxMTc4NjIzM2Y1MjZiMTgzZWRmMWNiM2M3YmIzOGEuLjQ2MTgx
M2M0MWQzMzcyZGZkNGIxODEyMzI5MTUxOTQxMjFiZTJhZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oCkBAIC03Miw2ICs3MiwxMCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgaW50NjRfdCB1bmJveGVkSW50NjQoKSBjb25zdDsKICAgICAgICAg
aW50NjRfdCBhc2FuVW5zYWZlVW5ib3hlZEludDY0KCkgY29uc3Q7CiAgICAgICAgIGJvb2wgdW5i
b3hlZEJvb2xlYW4oKSBjb25zdDsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZB
TFVFMzJfNjQpCisgICAgICAgIGZsb2F0IHVuYm94ZWRGbG9hdCgpIGNvbnN0OworICAgICAgICBm
bG9hdCBhc2FuVW5zYWZlVW5ib3hlZEZsb2F0KCkgY29uc3Q7CisjZW5kaWYKICAgICAgICAgZG91
YmxlIHVuYm94ZWREb3VibGUoKSBjb25zdDsKICAgICAgICAgZG91YmxlIGFzYW5VbnNhZmVVbmJv
eGVkRG91YmxlKCkgY29uc3Q7CiAgICAgICAgIEpTQ2VsbCogdW5ib3hlZENlbGwoKSBjb25zdDsK
QEAgLTE4OCw2ICsxOTIsMTggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiAhIXBh
eWxvYWQoKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVF
MzJfNjQpCisgICAgQUxXQVlTX0lOTElORSBmbG9hdCBSZWdpc3Rlcjo6dW5ib3hlZEZsb2F0KCkg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8ZmxvYXQ+KHBheWxvYWQo
KSk7CisgICAgfQorCisgICAgU1VQUFJFU1NfQVNBTiBBTFdBWVNfSU5MSU5FIGZsb2F0IFJlZ2lz
dGVyOjphc2FuVW5zYWZlVW5ib3hlZEZsb2F0KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVy
biBiaXR3aXNlX2Nhc3Q8ZmxvYXQ+KHBheWxvYWQoKSk7CisgICAgfQorI2VuZGlmCisKICAgICBB
TFdBWVNfSU5MSU5FIGRvdWJsZSBSZWdpc3Rlcjo6dW5ib3hlZERvdWJsZSgpIGNvbnN0CiAgICAg
ewogICAgICAgICByZXR1cm4gdS5udW1iZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9B
c3NlbWJseUhlbHBlcnMuaAppbmRleCAxYjkwMjg5OTIwNWY3YzkyOWIwNWYyNGJmYTRkOTE0Nzcy
YTFlMzU5Li5lOTk0ZGUzMjIzMWQxM2U2YWQ1YWY5MDM0MDkxYjhjMzY1YTBiYzU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTEzODQsNyArMTM4
NCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIGppdEFzc2VydElzSlNEb3VibGUoZ3ByKTsKICAgICAg
ICAgcmV0dXJuIHVuYm94RG91YmxlV2l0aG91dEFzc2VydGlvbnMoZ3ByLCByZXN1bHRHUFIsIGZw
ciwgbW9kZSk7CiAgICAgfQotICAgIAorICAgIHZvaWQgdW5ib3hEb3VibGUoSlNWYWx1ZVJlZ3Mg
cmVncywgRlBSUmVnIGZwcikKKyAgICB7CisgICAgICAgIHVuYm94RG91YmxlKHJlZ3MudGFnR1BS
KCksIHJlZ3MucGF5bG9hZEdQUigpLCBmcHIpOworICAgIH0KICAgICB2b2lkIGJveERvdWJsZShG
UFJSZWcgZnByLCBKU1ZhbHVlUmVncyByZWdzLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZl
VGFnUmVnaXN0ZXJzKQogICAgIHsKICAgICAgICAgYm94RG91YmxlKGZwciwgcmVncy5ncHIoKSwg
bW9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRP
ZmZzZXRMaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNl
dExpc3QuY3BwCmluZGV4IGVkODMwM2RlNDFiNTc0YWZjZTkyODk3Y2YwYTlkNWFkZWY0MDgxMTUu
LmJhZDIwMjlmN2NmOTBlNTFmNTAzZWM2ZTY5ZWM5NTgyOWMzNjk2M2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3QuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3QuY3BwCkBAIC0zOSwx
OCArMzksNDIgQEAgUmVnaXN0ZXJBdE9mZnNldExpc3Q6OlJlZ2lzdGVyQXRPZmZzZXRMaXN0KCkg
eyB9CiBSZWdpc3RlckF0T2Zmc2V0TGlzdDo6UmVnaXN0ZXJBdE9mZnNldExpc3QoUmVnaXN0ZXJT
ZXQgcmVnaXN0ZXJTZXQsIE9mZnNldEJhc2VUeXBlIG9mZnNldEJhc2VUeXBlKQogICAgIDogbV9y
ZWdpc3RlcnMocmVnaXN0ZXJTZXQubnVtYmVyT2ZTZXRSZWdpc3RlcnMoKSkKIHsKLSAgICBzaXpl
X3QgbnVtYmVyT2ZSZWdpc3RlcnMgPSByZWdpc3RlclNldC5udW1iZXJPZlNldFJlZ2lzdGVycygp
OwotICAgIHB0cmRpZmZfdCBvZmZzZXQgPSAwOwotICAgIAotICAgIGlmIChvZmZzZXRCYXNlVHlw
ZSA9PSBGcmFtZVBvaW50ZXJCYXNlZCkKLSAgICAgICAgb2Zmc2V0ID0gLShzdGF0aWNfY2FzdDxw
dHJkaWZmX3Q+KG51bWJlck9mUmVnaXN0ZXJzKSAqIHNpemVvZihDUFVSZWdpc3RlcikpOworICAg
IGNvbnN0ZXhwciBzaXplX3QgU2l6ZU9mR1BSID0gc2l6ZW9mKENQVVJlZ2lzdGVyKTsKKyAgICBj
b25zdGV4cHIgc2l6ZV90IFNpemVPZkZQUiA9IHNpemVvZihkb3VibGUpOwogCisjaWYgVVNFKEpT
VkFMVUU2NCkKKyAgICBzdGF0aWNfYXNzZXJ0KFNpemVPZkdQUiA9PSBTaXplT2ZGUFIpOworICAg
IHNpemVfdCBudW1iZXJPZlJlZ3MgPSByZWdpc3RlclNldC5udW1iZXJPZlNldFJlZ2lzdGVycygp
OworICAgIG1fc2l6ZU9mQXJlYUluQnl0ZXMgPSBudW1iZXJPZlJlZ3MgKiBTaXplT2ZHUFI7Cisj
ZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIHN0YXRpY19hc3NlcnQoMiAqIFNpemVPZkdQUiA9
PSBTaXplT2ZGUFIpOworICAgIHNpemVfdCBudW1iZXJPZkdQUnMgPSByZWdpc3RlclNldC5udW1i
ZXJPZlNldEdQUnMoKTsKKyAgICBzaXplX3QgbnVtYmVyT2ZGUFJzID0gcmVnaXN0ZXJTZXQubnVt
YmVyT2ZTZXRGUFJzKCk7CisgICAgaWYgKG51bWJlck9mRlBScykKKyAgICAgICAgbnVtYmVyT2ZH
UFJzID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mPDI+KG51bWJlck9mR1BScyk7CisgICAgbV9z
aXplT2ZBcmVhSW5CeXRlcyA9IG51bWJlck9mR1BScyAqIFNpemVPZkdQUiArIG51bWJlck9mRlBS
cyAqIFNpemVPZkZQUjsKKyNlbmRpZgorCisgICAgcHRyZGlmZl90IHN0YXJ0T2Zmc2V0ID0gMDsK
KyAgICBpZiAob2Zmc2V0QmFzZVR5cGUgPT0gRnJhbWVQb2ludGVyQmFzZWQpCisgICAgICAgIHN0
YXJ0T2Zmc2V0ID0gLXN0YXRpY19jYXN0PHB0cmRpZmZfdD4obV9zaXplT2ZBcmVhSW5CeXRlcyk7
CisKKyAgICBwdHJkaWZmX3Qgb2Zmc2V0ID0gc3RhcnRPZmZzZXQ7CiAgICAgdW5zaWduZWQgaW5k
ZXggPSAwOwogICAgIHJlZ2lzdGVyU2V0LmZvckVhY2goWyZdIChSZWcgcmVnKSB7CisgICAgICAg
IHNpemVfdCByZWdpc3RlclNpemUgPSBTaXplT2ZHUFI7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkK
KyAgICAgICAgaWYgKHJlZy5pc0ZQUigpKSB7CisgICAgICAgICAgICByZWdpc3RlclNpemUgPSBT
aXplT2ZGUFI7CisgICAgICAgICAgICBvZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Y8
U2l6ZU9mRlBSPihvZmZzZXQpOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgbV9yZWdpc3Rl
cnNbaW5kZXhdID0gUmVnaXN0ZXJBdE9mZnNldChyZWcsIG9mZnNldCk7Ci0gICAgICAgIG9mZnNl
dCArPSBzaXplb2YoQ1BVUmVnaXN0ZXIpOworICAgICAgICBvZmZzZXQgKz0gcmVnaXN0ZXJTaXpl
OwogICAgICAgICArK2luZGV4OwogICAgIH0pOworCisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNp
emVfdD4ob2Zmc2V0IC0gc3RhcnRPZmZzZXQpID09IG1fc2l6ZU9mQXJlYUluQnl0ZXMpOwogfQog
CiB2b2lkIFJlZ2lzdGVyQXRPZmZzZXRMaXN0OjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRPZmZzZXRM
aXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmgK
aW5kZXggZDExN2NmNzVlMDk4ODg0ODNlNzY1ZTUyYTNlYzc2ZjIyMmE3MTM4My4uMmEwZThiOWQx
MjU1NDViNDA0MjE3N2RlNjQyNjQyOGQyZWQ4ZDI2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3QuaApAQCAtNjUsMTEgKzY1LDE0IEBAIHB1
YmxpYzoKICAgICBGaXhlZFZlY3RvcjxSZWdpc3RlckF0T2Zmc2V0Pjo6Y29uc3RfaXRlcmF0b3Ig
YmVnaW4oKSBjb25zdCB7IHJldHVybiBtX3JlZ2lzdGVycy5iZWdpbigpOyB9CiAgICAgRml4ZWRW
ZWN0b3I8UmVnaXN0ZXJBdE9mZnNldD46OmNvbnN0X2l0ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVnaXN0ZXJzLmVuZCgpOyB9CiAKKyAgICBzaXplX3Qgc2l6ZU9mQXJlYUluQnl0ZXMo
KSBjb25zdCB7IHJldHVybiBtX3NpemVPZkFyZWFJbkJ5dGVzOyB9CisKICAgICBzdGF0aWMgY29u
c3QgUmVnaXN0ZXJBdE9mZnNldExpc3QmIGxsaW50QmFzZWxpbmVDYWxsZWVTYXZlUmVnaXN0ZXJz
KCk7IC8vIFJlZ2lzdGVycyBhbmQgT2Zmc2V0cyBzYXZlZCBhbmQgdXNlZCBieSB0aGUgTExJbnQu
CiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXRMaXN0JiBkZmdDYWxsZWVTYXZlUmVn
aXN0ZXJzKCk7IC8vIFJlZ2lzdGVycyBhbmQgT2Zmc2V0cyBzYXZlZCBhbmQgdXNlZCBieSBERkcu
CiAKIHByaXZhdGU6CiAgICAgRml4ZWRWZWN0b3I8UmVnaXN0ZXJBdE9mZnNldD4gbV9yZWdpc3Rl
cnM7CisgICAgc2l6ZV90IG1fc2l6ZU9mQXJlYUluQnl0ZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5jcHAKaW5kZXggYjJl
ZmY2NTI0YzRiMjZlYzY5ODViMjk1ZGRmNDFhNWI0NzUyMTQ0Mi4uZTc5MDQ4ZGE3NzA2MzcxNzll
YTQ2ZDdiNjAwYmJlYTlmZTA3MWZhNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9SZWdpc3RlclNldC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdp
c3RlclNldC5jcHAKQEAgLTk0LDYgKzk0LDggQEAgUmVnaXN0ZXJTZXQgUmVnaXN0ZXJTZXQ6Om1h
Y3JvU2NyYXRjaFJlZ2lzdGVycygpCiAgICAgcmV0dXJuIFJlZ2lzdGVyU2V0KE1hY3JvQXNzZW1i
bGVyOjpzX3NjcmF0Y2hSZWdpc3Rlcik7CiAjZWxpZiBDUFUoQVJNNjQpIHx8IENQVShSSVNDVjY0
KQogICAgIHJldHVybiBSZWdpc3RlclNldChNYWNyb0Fzc2VtYmxlcjo6ZGF0YVRlbXBSZWdpc3Rl
ciwgTWFjcm9Bc3NlbWJsZXI6Om1lbW9yeVRlbXBSZWdpc3Rlcik7CisjZWxpZiBDUFUoQVJNX1RI
VU1CMikKKyAgICByZXR1cm4gUmVnaXN0ZXJTZXQoTWFjcm9Bc3NlbWJsZXI6OmRhdGFUZW1wUmVn
aXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjphZGRyZXNzVGVtcFJlZ2lzdGVyKTsKICNlbGlmIENQVShN
SVBTKQogICAgIFJlZ2lzdGVyU2V0IHJlc3VsdDsKICAgICByZXN1bHQuc2V0KE1hY3JvQXNzZW1i
bGVyOjppbW1UZW1wUmVnaXN0ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCmluZGV4IGU3NmRhZGEwZDMzMjljMGQyNWJmYzkz
YzE1ZTg4N2IzMzhlOTdlMzUuLmI0NzAzMTE1YjNhNmE2MDM4NzRhMjA1YTYzM2M0ZGYwOTA1NTI1
Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVB
c21Db25maWcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5l
QXNtQ29uZmlnLmgKQEAgLTE0Myw2ICsxNDMsMTIgQEAKICNkZWZpbmUgT0ZGTElORV9BU01fSlNW
QUxVRTY0IDAKICNlbmRpZgogCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyNkZWZpbmUgT0ZGTElO
RV9BU01fSlNWQUxVRTMyXzY0IDEKKyNlbHNlCisjZGVmaW5lIE9GRkxJTkVfQVNNX0pTVkFMVUUz
Ml82NCAwCisjZW5kaWYKKwogI2lmIFVTRShCSUdJTlQzMikKICNkZWZpbmUgT0ZGTElORV9BU01f
QklHSU5UMzIgMQogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggYWQyNTAxN2VmMGI0N2ZjMGIw
NTA0NzQ3ZGI1NzViOTE1MDE4YWZlYS4uNzA0MDFlNDViZTZkMDJiOWViYjJlMDRhM2E4OGJjOTg5
ZmJlMzM2MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTM4LDE4ICszOCwzNCBAQCBtYWNybyBnZXR1
T3BlcmFuZFdpZGUxNkpTKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCiAgICAgbG9hZGgg
Y29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogMiArIE9wY29kZUlE
V2lkZTE2U2l6ZUpTW1BCLCBQQywgMV0sIGRzdAogZW5kCiAKK21hY3JvIGdldHVPcGVyYW5kV2lk
ZTE2V2FzbShvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQorICAgIGxvYWRoIGNvbnN0ZXhw
ciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRleCAqIDIgKyBPcGNvZGVJRFdpZGUxNlNp
emVXYXNtW1BCLCBQQywgMV0sIGRzdAorZW5kCisKIG1hY3JvIGdldE9wZXJhbmRXaWRlMTZKUyhv
cGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQogICAgIGxvYWRoc2kgY29uc3RleHByICVvcGNv
ZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogMiArIE9wY29kZUlEV2lkZTE2U2l6ZUpTW1BC
LCBQQywgMV0sIGRzdAogZW5kCiAKK21hY3JvIGdldE9wZXJhbmRXaWRlMTZXYXNtKG9wY29kZVN0
cnVjdCwgZmllbGROYW1lLCBkc3QpCisgICAgbG9hZGhzaSBjb25zdGV4cHIgJW9wY29kZVN0cnVj
dCVfJWZpZWxkTmFtZSVfaW5kZXggKiAyICsgT3Bjb2RlSURXaWRlMTZTaXplV2FzbVtQQiwgUEMs
IDFdLCBkc3QKK2VuZAorCiBtYWNybyBnZXR1T3BlcmFuZFdpZGUzMkpTKG9wY29kZVN0cnVjdCwg
ZmllbGROYW1lLCBkc3QpCiAgICAgbG9hZGkgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVs
ZE5hbWUlX2luZGV4ICogNCArIE9wY29kZUlEV2lkZTMyU2l6ZUpTW1BCLCBQQywgMV0sIGRzdAog
ZW5kCiAKK21hY3JvIGdldHVPcGVyYW5kV2lkZTMyV2FzbShvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFt
ZSwgZHN0KQorICAgIGxvYWRpIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9p
bmRleCAqIDQgKyBPcGNvZGVJRFdpZGUzMlNpemVXYXNtW1BCLCBQQywgMV0sIGRzdAorZW5kCisK
IG1hY3JvIGdldE9wZXJhbmRXaWRlMzJKUyhvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQog
ICAgIGxvYWRpcyBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiA0
ICsgT3Bjb2RlSURXaWRlMzJTaXplSlNbUEIsIFBDLCAxXSwgZHN0CiBlbmQKIAorbWFjcm8gZ2V0
T3BlcmFuZFdpZGUzMldhc20ob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkKKyAgICBsb2Fk
aXMgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogNCArIE9wY29k
ZUlEV2lkZTMyU2l6ZVdhc21bUEIsIFBDLCAxXSwgZHN0CitlbmQKKwogbWFjcm8gbWFrZVJldHVy
bihnZXQsIGRpc3BhdGNoLCBmbikKICAgICBmbihtYWNybyh0YWcsIHBheWxvYWQpCiAgICAgICAg
IG1vdmUgdGFnLCB0NQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dl
YkFzc2VtYmx5LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseS5h
c20KaW5kZXggMjRjMTRiM2Y4ZjZiNWY0NTViZDBhNWE3N2M1OTMyYmU5ZjY4ZWVhZi4uYTc0ZThj
OTAyOWRmNjYzNDAyYzg4NjE5MWU1NGQ1YzZkZDc1ODQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvV2ViQXNzZW1ibHkuYXNtCkBAIC0zMSw1NiArMzEsODAgQEAgaWYgSEFWRV9G
QVNUX1RMUwogZW5kCiAKIGlmIFg4Nl82NAotICAgIGNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50
R1BScyA9IDYKKyAgICBjb25zdCBOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgPSA2CiBlbHNpZiBB
Uk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAotICAgIGNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50
R1BScyA9IDgKKyAgICBjb25zdCBOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgPSA4CitlbHNpZiBB
Uk12NworICAgIGNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyA9IDIKIGVsc2UKICAgICBl
cnJvcgogZW5kCisKIGNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50RlBScyA9IDgKLWNvbnN0IE51
bWJlck9mV2FzbUFyZ3VtZW50cyA9IE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIE51bWJlck9m
V2FzbUFyZ3VtZW50RlBScworCitjb25zdCBOdW1iZXJPZldhc21Bcmd1bWVudHMgPSBOdW1iZXJP
Zldhc21Bcmd1bWVudEpTUnMgKyBOdW1iZXJPZldhc21Bcmd1bWVudEZQUnMKIAogIyBBbGwgY2Fs
bGVlIHNhdmVzIG11c3QgbWF0Y2ggdGhlIGRlZmluaXRpb24gaW4gV2FzbUNhbGxlZS5jcHAKIAog
IyBUaGVzZSBtdXN0IG1hdGNoIHRoZSBkZWZpbml0aW9uIGluIFdhc21NZW1vcnlJbmZvcm1hdGlv
bi5jcHAKLWNvbnN0IHdhc21JbnN0YW5jZSA9IGNzcjAKLWNvbnN0IG1lbW9yeUJhc2UgPSBjc3Iz
Ci1jb25zdCBib3VuZHNDaGVja2luZ1NpemUgPSBjc3I0CitpZiBYODZfNjQgb3IgQVJNNjQgb3Ig
QVJNNjRFCisgICAgY29uc3Qgd2FzbUluc3RhbmNlID0gY3NyMAorICAgIGNvbnN0IG1lbW9yeUJh
c2UgPSBjc3IzCisgICAgY29uc3QgYm91bmRzQ2hlY2tpbmdTaXplID0gY3NyNAorZWxzaWYgQVJN
djcKKyAgICBjb25zdCB3YXNtSW5zdGFuY2UgPSBjc3IwCisgICAgY29uc3QgbWVtb3J5QmFzZSA9
IGludmFsaWRHUFIKKyAgICBjb25zdCBib3VuZHNDaGVja2luZ1NpemUgPSBpbnZhbGlkR1BSCitl
bHNlCisgICAgZXJyb3IKK2VuZAogCiAjIFRoaXMgbXVzdCBtYXRjaCB0aGUgZGVmaW5pdGlvbiBp
biBMb3dMZXZlbEludGVycHJldGVyLmFzbQogaWYgWDg2XzY0CiAgICAgY29uc3QgUEIgPSBjc3Iy
CiBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAogICAgIGNvbnN0IFBCID0gY3NyNwor
ZWxzaWYgQVJNdjcKKyAgICBjb25zdCBQQiA9IGNzcjEKIGVsc2UKICAgICBlcnJvcgogZW5kCiAK
LW1hY3JvIGZvckVhY2hBcmd1bWVudEdQUihmbikKLSAgICBmbigwICogOCwgd2EwKQotICAgIGZu
KDEgKiA4LCB3YTEpCi0gICAgZm4oMiAqIDgsIHdhMikKLSAgICBmbigzICogOCwgd2EzKQotICAg
IGZuKDQgKiA4LCB3YTQpCi0gICAgZm4oNSAqIDgsIHdhNSkKLSAgICBpZiBBUk02NCBvciBBUk02
NEUKLSAgICAgICAgZm4oNiAqIDgsIHdhNikKLSAgICAgICAgZm4oNyAqIDgsIHdhNykKKyMgSGVs
cGVyIG1hY3JvcworCisjIE9uIEpTVkFMVUU2NCwgZWFjaCA2NC1iaXQgYXJndW1lbnQgR1BSIGhv
bGRzIG9uZSB3aG9sZSBXYXNtIHZhbHVlLgorIyBPbiBKU1ZBTFVFMzJfNjQsIGEgY29uc2VjdXRp
dmUgcGFpciBvZiBldmVuL29kZCBudW1iZXJlZCBHUFJzIGhvbGQgYSBzaW5nbGUKKyMgV2FzbSB2
YWx1ZSAoZXZlbiBpZiB0aGF0IHZhbHVlIGlzIGkzMi9mMzIsIHRoZSBvZGQgbnVtYmVyZWQgR1BS
IGhvbGRzIHRoZQorIyBtb3JlIHNpZ25pZmljYW50IHdvcmQpLgorbWFjcm8gZm9yRWFjaEFyZ3Vt
ZW50SlNSKGZuKQorICAgIGlmIEpTVkFMVUU2NAorICAgICAgICBmbigwICogOCwgd2EwKQorICAg
ICAgICBmbigxICogOCwgd2ExKQorICAgICAgICBmbigyICogOCwgd2EyKQorICAgICAgICBmbigz
ICogOCwgd2EzKQorICAgICAgICBmbig0ICogOCwgd2E0KQorICAgICAgICBmbig1ICogOCwgd2E1
KQorICAgICAgICBpZiBBUk02NCBvciBBUk02NEUKKyAgICAgICAgICAgIGZuKDYgKiA4LCB3YTYp
CisgICAgICAgICAgICBmbig3ICogOCwgd2E3KQorICAgICAgICBlbmQKKyAgICBlbHNlCisgICAg
ICAgIGZuKDAgKiA4LCB3YTEsIHdhMCkKKyAgICAgICAgZm4oMSAqIDgsIHdhMywgd2EyKQogICAg
IGVuZAogZW5kCiAKIG1hY3JvIGZvckVhY2hBcmd1bWVudEZQUihmbikKLSAgICBmbigoTnVtYmVy
T2ZXYXNtQXJndW1lbnRHUFJzICsgMCkgKiA4LCB3ZmEwKQotICAgIGZuKChOdW1iZXJPZldhc21B
cmd1bWVudEdQUnMgKyAxKSAqIDgsIHdmYTEpCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50
R1BScyArIDIpICogOCwgd2ZhMikKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsg
MykgKiA4LCB3ZmEzKQotICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyA0KSAqIDgs
IHdmYTQpCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDUpICogOCwgd2ZhNSkK
LSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgNikgKiA4LCB3ZmE2KQotICAgIGZu
KChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyA3KSAqIDgsIHdmYTcpCisgICAgZm4oKE51bWJl
ck9mV2FzbUFyZ3VtZW50SlNScyArIDApICogOCwgd2ZhMCkKKyAgICBmbigoTnVtYmVyT2ZXYXNt
QXJndW1lbnRKU1JzICsgMSkgKiA4LCB3ZmExKQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVu
dEpTUnMgKyAyKSAqIDgsIHdmYTIpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyAr
IDMpICogOCwgd2ZhMykKKyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgNCkgKiA4
LCB3ZmE0KQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyA1KSAqIDgsIHdmYTUp
CisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIDYpICogOCwgd2ZhNikKKyAgICBm
bigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgNykgKiA4LCB3ZmE3KQogZW5kCiAKLSMgSGVs
cGVyIG1hY3JvcwogIyBGSVhNRTogRXZlbnR1YWxseSB0aGlzIHNob3VsZCBiZSB1bmlmaWVkIHdp
dGggdGhlIEpTIHZlcnNpb25zCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDM2NTYKIApAQCAtMTMwLDEwICsxNTQsMTUgQEAgbWFjcm8gY2hlY2tTd2l0Y2hUb0pJ
VEZvclByb2xvZ3VlKGNvZGVCbG9ja1JlZ2lzdGVyKQogICAgICAgICAgICAgYnRweiByMCwgLnJl
Y292ZXIKICAgICAgICAgICAgIG1vdmUgcjAsIHdzMAogCi0gICAgICAgICAgICBmb3JFYWNoQXJn
dW1lbnRHUFIobWFjcm8gKG9mZnNldCwgZ3ByKQoraWYgSlNWQUxVRTY0CisgICAgICAgICAgICBm
b3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByKQogICAgICAgICAgICAgICAgIGxv
YWRxIC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtj
ZnJdLCBncHIKICAgICAgICAgICAgIGVuZCkKLQorZWxzZQorICAgICAgICAgICAgZm9yRWFjaEFy
Z3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwck1zdywgZ3BMc3cpCisgICAgICAgICAgICAgICAg
bG9hZDJpYSAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAq
IDhbY2ZyXSwgZ3BMc3csIGdwck1zdworICAgICAgICAgICAgZW5kKQorZW5kCiAgICAgICAgICAg
ICBmb3JFYWNoQXJndW1lbnRGUFIobWFjcm8gKG9mZnNldCwgZnByKQogICAgICAgICAgICAgICAg
IGxvYWRkIC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICog
OFtjZnJdLCBmcHIKICAgICAgICAgICAgIGVuZCkKQEAgLTIwMSw2ICsyMzAsOSBAQCBtYWNybyBw
cmVzZXJ2ZUNhbGxlZVNhdmVzVXNlZEJ5V2FzbSgpCiAgICAgZWxzaWYgWDg2XzY0IG9yIFJJU0NW
NjQKICAgICAgICAgc3RvcmVwIFBCLCAtMHg4W2Nmcl0KICAgICAgICAgc3RvcmVwIHdhc21JbnN0
YW5jZSwgLTB4MTBbY2ZyXQorICAgIGVsc2lmIEFSTXY3CisgICAgICAgIHN0b3JlcCBQQiwgLTRb
Y2ZyXQorICAgICAgICBzdG9yZXAgd2FzbUluc3RhbmNlLCAtOFtjZnJdCiAgICAgZWxzZQogICAg
ICAgICBlcnJvcgogICAgIGVuZApAQCAtMjE1LDYgKzI0Nyw5IEBAIG1hY3JvIHJlc3RvcmVDYWxs
ZWVTYXZlc1VzZWRCeVdhc20oKQogICAgIGVsc2lmIFg4Nl82NCBvciBSSVNDVjY0CiAgICAgICAg
IGxvYWRwIC0weDhbY2ZyXSwgUEIKICAgICAgICAgbG9hZHAgLTB4MTBbY2ZyXSwgd2FzbUluc3Rh
bmNlCisgICAgZWxzaWYgQVJNdjcKKyAgICAgICAgbG9hZHAgLTRbY2ZyXSwgUEIKKyAgICAgICAg
bG9hZHAgLThbY2ZyXSwgd2FzbUluc3RhbmNlCiAgICAgZWxzZQogICAgICAgICBlcnJvcgogICAg
IGVuZApAQCAtMjQ1LDEwICsyODAsMTIgQEAgZW5kCiBlbmQKIAogbWFjcm8gcmVsb2FkTWVtb3J5
UmVnaXN0ZXJzRnJvbUluc3RhbmNlKGluc3RhbmNlLCBzY3JhdGNoMSwgc2NyYXRjaDIpCitpZiBu
b3QgQVJNdjcKICAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRNZW1vcnlbaW5zdGFu
Y2VdLCBtZW1vcnlCYXNlCiAgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkQm91bmRz
Q2hlY2tpbmdTaXplW2luc3RhbmNlXSwgYm91bmRzQ2hlY2tpbmdTaXplCiAgICAgY2FnZWRQcmlt
aXRpdmVNYXlCZU51bGwobWVtb3J5QmFzZSwgYm91bmRzQ2hlY2tpbmdTaXplLCBzY3JhdGNoMSwg
c2NyYXRjaDIpICMgSWYgYm91bmRzQ2hlY2tpbmdTaXplIGlzIDAsIHBvaW50ZXIgY2FuIGJlIGEg
bnVsbHB0ci4KIGVuZAorZW5kCiAKIG1hY3JvIHRocm93RXhjZXB0aW9uKGV4Y2VwdGlvbikKICAg
ICBzdG9yZWkgY29uc3RleHByIFdhc206OkV4Y2VwdGlvblR5cGU6OiVleGNlcHRpb24lLCBBcmd1
bWVudENvdW50SW5jbHVkaW5nVGhpcyArIFBheWxvYWRPZmZzZXRbY2ZyXQpAQCAtMjgwLDggKzMx
NywxMyBAQCBtYWNybyByZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxsKCkKICAgICBsb2FkaSBX
YXNtOjpMTEludENhbGxlZTo6bV9udW1DYWxsZWVMb2NhbHNbd3MxXSwgd3MxCiAgICAgbHNoaWZ0
cCAzLCB3czEKICAgICBhZGRwIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLCB3czEKK2lm
IEFSTXY3CisgICAgc3VicCBjZnIsIHdzMSwgd3MxCisgICAgbW92ZSB3czEsIHNwCitlbHNlCiAg
ICAgc3VicCBjZnIsIHdzMSwgc3AKIGVuZAorZW5kCiAKIG1hY3JvIHdhc21Qcm9sb2d1ZShsb2Fk
V2FzbUluc3RhbmNlKQogICAgICMgU2V0IHVwIHRoZSBjYWxsIGZyYW1lIGFuZCBjaGVjayBpZiB3
ZSBzaG91bGQgT1NSLgpAQCAtMjkyLDYgKzMzNCw5IEBAIG1hY3JvIHdhc21Qcm9sb2d1ZShsb2Fk
V2FzbUluc3RhbmNlKQogCiAgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fb3duZXJbd2FzbUlu
c3RhbmNlXSwgd3MwCiAgICAgc3RvcmVwIHdzMCwgVGhpc0FyZ3VtZW50T2Zmc2V0W2Nmcl0KK2lm
IG5vdCBKU1ZBTFVFNjQKKyAgICBzdG9yZWkgQ2VsbFRhZywgVGFnT2Zmc2V0ICsgVGhpc0FyZ3Vt
ZW50T2Zmc2V0W2Nmcl0KK2VuZAogCiAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHdzMAogICAgIGFu
ZHAgfjMsIHdzMApAQCAtMzAzLDYgKzM0OCwxMCBAQCBtYWNybyB3YXNtUHJvbG9ndWUobG9hZFdh
c21JbnN0YW5jZSkKICAgICBhZGRwIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLCB3czEK
ICAgICBzdWJwIGNmciwgd3MxLCB3czEKIAoraWYgbm90IEpTVkFMVUU2NAorICAgIHN1YnAgOCwg
d3MxICMgYWxpZ24gc3RhY2sgcG9pbnRlcgorZW5kCisKICAgICBicGEgd3MxLCBjZnIsIC5zdGFj
a092ZXJmbG93CiAgICAgYnBiZXEgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkU3RhY2tMaW1pdFt3
YXNtSW5zdGFuY2VdLCB3czEsIC5zdGFja0hlaWdodE9LCiAKQEAgLTMxMiwxMCArMzYxLDE1IEBA
IG1hY3JvIHdhc21Qcm9sb2d1ZShsb2FkV2FzbUluc3RhbmNlKQogLnN0YWNrSGVpZ2h0T0s6CiAg
ICAgbW92ZSB3czEsIHNwCiAKLSAgICBmb3JFYWNoQXJndW1lbnRHUFIobWFjcm8gKG9mZnNldCwg
Z3ByKQoraWYgSlNWQUxVRTY0CisgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQs
IGdwcikKICAgICAgICAgc3RvcmVxIGdwciwgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VB
c1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0KICAgICBlbmQpCi0KK2Vsc2UKKyAgICBmb3JFYWNo
QXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3LCBncExzdykKKyAgICAgICAgc3RvcmUy
aWEgZ3BMc3csIGdwck1zdywgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxS
ZWdpc3RlcnMgKiA4W2Nmcl0KKyAgICBlbmQpCitlbmQKICAgICBmb3JFYWNoQXJndW1lbnRGUFIo
bWFjcm8gKG9mZnNldCwgZnByKQogICAgICAgICBzdG9yZWQgZnByLCAtb2Zmc2V0IC0gOCAtIENh
bGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXQogICAgIGVuZCkKQEAgLTMy
OSwxNCArMzgzLDE2IEBAIG1hY3JvIHdhc21Qcm9sb2d1ZShsb2FkV2FzbUluc3RhbmNlKQogICAg
IGxvYWRpIFdhc206OkxMSW50Q2FsbGVlOjptX251bVZhcnNbd3MwXSwgd3MxCiAgICAgc3ViaSBO
dW1iZXJPZldhc21Bcmd1bWVudHMgKyBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMs
IHdzMQogICAgIGJ0aXogd3MxLCAuemVyb0luaXRpYWxpemVMb2NhbHNEb25lCisgICAgbHNoaWZ0
aSAzLCB3czEKICAgICBuZWdpIHdzMQoraWYgSlNWQUxVRTY0CiAgICAgc3hpMnEgd3MxLCB3czEK
K2VuZAogICAgIGxlYXAgKE51bWJlck9mV2FzbUFyZ3VtZW50cyArIENhbGxlZVNhdmVTcGFjZUFz
VmlydHVhbFJlZ2lzdGVycyArIDEpICogLThbY2ZyXSwgd3MwCiAuemVyb0luaXRpYWxpemVMb2Nh
bHNMb29wOgotICAgIGFkZHEgMSwgd3MxCi0gICAgc3RvcmVxIDAsIFt3czAsIHdzMSwgOF0KLSAg
ICBidHF6IHdzMSwgLnplcm9Jbml0aWFsaXplTG9jYWxzRG9uZQotICAgIGptcCAuemVyb0luaXRp
YWxpemVMb2NhbHNMb29wCisgICAgYWRkcCBQdHJTaXplLCB3czEKKyAgICBzdG9yZXAgMCwgW3dz
MCwgd3MxXQorICAgIGJ0cG56IHdzMSwgLnplcm9Jbml0aWFsaXplTG9jYWxzTG9vcAogLnplcm9J
bml0aWFsaXplTG9jYWxzRG9uZToKIGVuZAogCkBAIC0zNzUsNiArNDMxLDI0IEBAIG1hY3JvIHNs
b3dXYXNtT3Aob3Bjb2RlTmFtZSkKICAgICB1bnByZWZpeGVkU2xvd1dhc21PcCh3YXNtXyVvcGNv
ZGVOYW1lJSkKIGVuZAogCisjIEZsb2F0IHRvIGZsb2F0IHJvdW5kaW5nIG9wcworbWFjcm8gd2Fz
bVJvdW5kaW5nT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBmbikKK2lmIEpTVkFMVUU2NCAj
IEFsbCBjdXJyZW50IDY0LWJpdCBwbGF0Zm9ybXMgaGF2ZSBpbnN0cnVjdGlvbnMgZm9yIHRoZXNl
CisgICAgd2FzbU9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCitlbHNlCisgICAgc2xv
d1dhc21PcChvcGNvZGVOYW1lKQorZW5kCitlbmQKKworIyBpNjQgKHNpZ25lZC91bnNpZ25lZCkg
dG8gZjMyIG9yIGY2NAorbWFjcm8gd2FzbUk2NFRvRk9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVj
dCwgZm4pCitpZiBKU1ZBTFVFNjQgIyBBbGwgY3VycmVudCA2NC1iaXQgcGxhdGZvcm1zIGhhdmUg
aW5zdHJ1Y3Rpb25zIGZvciB0aGVzZQorICAgIHdhc21PcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1
Y3QsIGZuKQorZWxzZQorICAgIHNsb3dXYXNtT3Aob3Bjb2RlTmFtZSkKK2VuZAorZW5kCisKICMg
TWFjcm8gdmVyc2lvbiBvZiBsb2FkIG9wZXJhdGlvbnM6IG1sb2FkW3N1ZmZpeF0KICMgbG9hZHMg
ZmllbGQgZnJvbSB0aGUgaW5zdHJ1Y3Rpb24gc3RyZWFtIGFuZCBwZXJmb3JtcyBsb2FkW3N1ZmZp
eF0gdG8gZHN0CiBtYWNybyBmaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleChjdHgsIGZuKQpAQCAt
Mzk3LDEyICs0NzEsMjEgQEAgbWFjcm8gbG9hZENvbnN0YW50T3JWYXJpYWJsZShjdHgsIGluZGV4
LCBsb2FkZXIpCiAgICAgZW5kKQogZW5kCiAKK2lmIEpTVkFMVUU2NAogbWFjcm8gbWxvYWRxKGN0
eCwgZmllbGQsIGRzdCkKICAgICB3Z2V0cyhjdHgsIGZpZWxkLCBkc3QpCiAgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZShjdHgsIGRzdCwgbWFjcm8gKGZyb20pCiAgICAgICAgIGxvYWRxIGZyb20s
IGRzdAogICAgIGVuZCkKIGVuZAorZWxzZQorbWFjcm8gbWxvYWQyaShjdHgsIGZpZWxkLCBkc3RN
c3csIGRzdExzdykKKyAgICB3Z2V0cyhjdHgsIGZpZWxkLCBkc3RMc3cpCisgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZShjdHgsIGRzdExzdywgbWFjcm8gKGZyb20pCisgICAgICAgIGxvYWQyaWEg
ZnJvbSwgZHN0THN3LCBkc3RNc3cKKyAgICBlbmQpCitlbmQKK2VuZAogCiBtYWNybyBtbG9hZGko
Y3R4LCBmaWVsZCwgZHN0KQogICAgIHdnZXRzKGN0eCwgZmllbGQsIGRzdCkKQEAgLTQzNCwxMSAr
NTE3LDE5IEBAIGVuZAogCiAjIFR5cGVkIHJldHVybnMKIAoraWYgSlNWQUxVRTY0CiBtYWNybyBy
ZXR1cm5xKGN0eCwgdmFsdWUpCiAgICAgd2dldHMoY3R4LCBtX2RzdCwgdDUpCiAgICAgc3RvcmVx
IHZhbHVlLCBbY2ZyLCB0NSwgOF0KICAgICBkaXNwYXRjaChjdHgpCiBlbmQKK2Vsc2UKK21hY3Jv
IHJldHVybjJpKGN0eCwgbXN3LCBsc3cpCisgICAgd2dldHMoY3R4LCBtX2RzdCwgdDUpCisgICAg
c3RvcmUyaWEgbHN3LCBtc3csIFtjZnIsIHQ1LCA4XQorICAgIGRpc3BhdGNoKGN0eCkKK2VuZAor
ZW5kCiAKIG1hY3JvIHJldHVybmkoY3R4LCB2YWx1ZSkKICAgICB3Z2V0cyhjdHgsIG1fZHN0LCB0
NSkKQEAgLTUxMSw3ICs2MDIsNyBAQCBtYWNybyB3YXNtQ29kZUJsb2NrR2V0dGVyKHRhcmdldFJl
Z2lzdGVyKQogZW5kCiAKIG9wKHdhc21fZnVuY3Rpb25fcHJvbG9ndWUsIG1hY3JvICgpCi0gICAg
aWYgbm90IFdFQkFTU0VNQkxZIG9yIG5vdCBKU1ZBTFVFNjQgb3IgQ19MT09QIG9yIENfTE9PUF9X
SU4KKyAgICBpZiBub3QgV0VCQVNTRU1CTFkgb3IgQ19MT09QIG9yIENfTE9PUF9XSU4KICAgICAg
ICAgZXJyb3IKICAgICBlbmQKIApAQCAtNTIwLDcgKzYxMSw3IEBAIG9wKHdhc21fZnVuY3Rpb25f
cHJvbG9ndWUsIG1hY3JvICgpCiBlbmQpCiAKIG9wKHdhc21fZnVuY3Rpb25fcHJvbG9ndWVfbm9f
dGxzLCBtYWNybyAoKQotICAgIGlmIG5vdCBXRUJBU1NFTUJMWSBvciBub3QgSlNWQUxVRTY0IG9y
IENfTE9PUCBvciBDX0xPT1BfV0lOCisgICAgaWYgbm90IFdFQkFTU0VNQkxZIG9yIENfTE9PUCBv
ciBDX0xPT1BfV0lOCiAgICAgICAgIGVycm9yCiAgICAgZW5kCiAKQEAgLTYyMiwxNiArNzEzLDIz
IEBAIF93YXNtX2VudGVyOgogICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQyLCAweGRl
YWQwMGUxKQogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MiAgICAgICAgICAgICAgICAvLyB0
MjxDb2RlQmxvY2s+ID0gY2ZyLkNvZGVCbG9jawogICAgIGxvYWRpIFdhc206OkxMSW50Q2FsbGVl
OjptX251bVZhcnNbdDJdLCB0MiAgICAgIC8vIHQyPHNpemVfdD4gPSB0MjxDb2RlQmxvY2s+Lm1f
bnVtVmFycwotICAgIHN1YnEgQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICsgTnVt
YmVyT2ZXYXNtQXJndW1lbnRzLCB0MgorICAgIHN1YmkgQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFs
UmVnaXN0ZXJzICsgTnVtYmVyT2ZXYXNtQXJndW1lbnRzLCB0MgogICAgIGJ0aXogdDIsIC5vcEVu
dGVyRG9uZQotICAgIG1vdmUgY2ZyLCB0MQotICAgIHN1YnEgQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0
dWFsUmVnaXN0ZXJzICogOCArIE51bWJlck9mV2FzbUFyZ3VtZW50cyAqIDgsIHQxCisgICAgc3Vi
cCBjZnIsIChDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKyBOdW1iZXJPZldhc21B
cmd1bWVudHMpICogU2xvdFNpemUsIHQxCisgICAgbHNoaWZ0aSAzLCB0MgogICAgIG5lZ2kgdDIK
K2lmIEpTVkFMVUU2NAogICAgIHN4aTJxIHQyLCB0MgorZW5kCisgICAgbW92ZSAwLCB0NgogLm9w
RW50ZXJMb29wOgotICAgIHN0b3JlcSAwLCBbdDEsIHQyLCA4XQotICAgIGFkZHEgMSwgdDIKLSAg
ICBidHFueiB0MiwgLm9wRW50ZXJMb29wCitpZiBKU1ZBTFVFNjQKKyAgICBzdG9yZXEgdDYsIFt0
MSwgdDJdCitlbHNlCisgICAgc3RvcmUyaWEgdDYsIHQ2LCBbdDEsIHQyXQorZW5kCisgICAgYWRk
cCA4LCB0MgorICAgIGJ0cG56IHQyLCAub3BFbnRlckxvb3AKIC5vcEVudGVyRG9uZToKICAgICB3
YXNtRGlzcGF0Y2hJbmRpcmVjdCgxKQogCkBAIC02NDQsMTEgKzc0Miw2IEBAIHdhc21PcChsb29w
X2hpbnQsIFdhc21Mb29wSGludCwgbWFjcm8oY3R4KQogICAgIGRpc3BhdGNoKGN0eCkKIGVuZCkK
IAotd2FzbU9wKG1vdiwgV2FzbU1vdiwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fc3Jj
LCB0MCkKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KIHdhc21PcChqdHJ1ZSwgV2FzbUp0
cnVlLCBtYWNybyhjdHgpCiAgICAgbWxvYWRpKGN0eCwgbV9jb25kaXRpb24sIHQwKQogICAgIGJ0
aXogdDAsIC5jb250aW51ZQpAQCAtNzAwLDExICs3OTMsMTcgQEAgZW5kKQogCiB1bnByZWZpeGVk
V2FzbU9wKHdhc21fcmV0LCBXYXNtUmV0LCBtYWNybyhjdHgpCiAgICAgY2hlY2tTd2l0Y2hUb0pJ
VEZvckVwaWxvZ3VlKCkKLSAgICBmb3JFYWNoQXJndW1lbnRHUFIobWFjcm8gKG9mZnNldCwgZ3By
KQoraWYgSlNWQUxVRTY0CisgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdw
cikKICAgICAgICAgbG9hZHEgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxS
ZWdpc3RlcnMgKiA4W2Nmcl0sIGdwcgogICAgIGVuZCkKK2Vsc2UKKyAgICBmb3JFYWNoQXJndW1l
bnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3LCBncExzdykKKyAgICAgICAgbG9hZDJpYSAtb2Zm
c2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXSwgZ3BM
c3csIGdwck1zdworICAgIGVuZCkKK2VuZAogICAgIGZvckVhY2hBcmd1bWVudEZQUihtYWNybyAo
b2Zmc2V0LCBmcHIpCi0gICAgICAgIGxvYWRkIC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNl
QXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBmcHIKKyAgICAgICAgbG9hZGQgLW9mZnNldCAt
ICA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBmcHIKICAg
ICBlbmQpCiAgICAgZG9SZXR1cm4oKQogZW5kKQpAQCAtNzIwLDQ0ICs4MTksNiBAQCB3YXNtT3Ao
cmV0X3ZvaWQsIFdhc21SZXRWb2lkLCBtYWNybyhjdHgpCiAgICAgZG9SZXR1cm4oKQogZW5kKQog
Ci13YXNtT3AocmVmX2lzX251bGwsIFdhc21SZWZJc051bGwsIG1hY3JvKGN0eCkKLSAgICBtbG9h
ZHAoY3R4LCBtX3JlZiwgdDApCi0gICAgY3FlcSB0MCwgVmFsdWVOdWxsLCB0MAotICAgIHJldHVy
bmkoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGdldF9nbG9iYWwsIFdhc21HZXRHbG9iYWwsIG1h
Y3JvKGN0eCkKLSAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5j
ZV0sIHQwCi0gICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKLSAgICBsb2FkcSBbdDAs
IHQxLCA4XSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChzZXRfZ2xv
YmFsLCBXYXNtU2V0R2xvYmFsLCBtYWNybyhjdHgpCi0gICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6
Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAotICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRl
eCwgdDEpCi0gICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAgc3RvcmVxIHQyLCBbdDAs
IHQxLCA4XQotICAgIGRpc3BhdGNoKGN0eCkKLWVuZCkKLQotd2FzbU9wKGdldF9nbG9iYWxfcG9y
dGFibGVfYmluZGluZywgV2FzbUdldEdsb2JhbFBvcnRhYmxlQmluZGluZywgbWFjcm8oY3R4KQot
ICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKLSAg
ICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQotICAgIGxvYWRxIFt0MCwgdDEsIDhdLCB0
MAotICAgIGxvYWRxIFt0MF0sIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNt
T3Aoc2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNtU2V0R2xvYmFsUG9ydGFibGVCaW5k
aW5nLCBtYWNybyhjdHgpCi0gICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNt
SW5zdGFuY2VdLCB0MAotICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCi0gICAgbWxv
YWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAgbG9hZHEgW3QwLCB0MSwgOF0sIHQwCi0gICAgc3Rv
cmVxIHQyLCBbdDBdCi0gICAgZGlzcGF0Y2goY3R4KQotZW5kKQotCiBtYWNybyBzbG93UGF0aEZv
cldhc21DYWxsKGN0eCwgc2xvd1BhdGgsIHN0b3JlV2FzbUluc3RhbmNlKQogICAgIGNhbGxXYXNt
Q2FsbFNsb3dQYXRoKAogICAgICAgICBzbG93UGF0aCwKQEAgLTc3Miw3ICs4MzMsMTIgQEAgbWFj
cm8gc2xvd1BhdGhGb3JXYXNtQ2FsbChjdHgsIHNsb3dQYXRoLCBzdG9yZVdhc21JbnN0YW5jZSkK
IAogICAgICAgICAgICAgd2dldHUoY3R4LCBtX3N0YWNrT2Zmc2V0LCB3czEpCiAgICAgICAgICAg
ICBsc2hpZnRpIDMsIHdzMQoraWYgQVJNdjcKKyAgICAgICAgICAgIHN1YnAgY2ZyLCB3czEsIHdz
MQorICAgICAgICAgICAgbW92ZSB3czEsIHNwCitlbHNlCiAgICAgICAgICAgICBzdWJwIGNmciwg
d3MxLCBzcAorZW5kCiAKICAgICAgICAgICAgIHdnZXR1KGN0eCwgbV9udW1iZXJPZlN0YWNrQXJn
cywgd3MxKQogCkBAIC03ODMsMTAgKzg0OSwxNSBAQCBtYWNybyBzbG93UGF0aEZvcldhc21DYWxs
KGN0eCwgc2xvd1BhdGgsIHN0b3JlV2FzbUluc3RhbmNlKQogICAgICAgICAgICAgcmVsb2FkTWVt
b3J5UmVnaXN0ZXJzRnJvbUluc3RhbmNlKHRhcmdldFdhc21JbnN0YW5jZSwgd2EwLCB3YTEpCiAK
ICAgICAgICAgICAgICMgTG9hZCByZWdpc3RlcnMgZnJvbSBzdGFjawotICAgICAgICAgICAgZm9y
RWFjaEFyZ3VtZW50R1BSKG1hY3JvIChvZmZzZXQsIGdwcikKK2lmIEpTVkFMVUU2NAorICAgICAg
ICAgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwcikKICAgICAgICAgICAg
ICAgICBsb2FkcSBDYWxsRnJhbWVIZWFkZXJTaXplICsgOCArIG9mZnNldFtzcCwgd3MxLCA4XSwg
Z3ByCiAgICAgICAgICAgICBlbmQpCi0KK2Vsc2UKKyAgICAgICAgICAgIGZvckVhY2hBcmd1bWVu
dEpTUihtYWNybyAob2Zmc2V0LCBncHJNc3csIGdwTHN3KQorICAgICAgICAgICAgICAgIGxvYWQy
aWEgQ2FsbEZyYW1lSGVhZGVyU2l6ZSArIDggKyBvZmZzZXRbc3AsIHdzMSwgOF0sIGdwTHN3LCBn
cHJNc3cKKyAgICAgICAgICAgIGVuZCkKK2VuZAogICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50
RlBSKG1hY3JvIChvZmZzZXQsIGZwcikKICAgICAgICAgICAgICAgICBsb2FkZCBDYWxsRnJhbWVI
ZWFkZXJTaXplICsgOCArIG9mZnNldFtzcCwgd3MxLCA4XSwgZnByCiAgICAgICAgICAgICBlbmQp
CkBAIC04MjksNyArOTAwLDExIEBAIG1hY3JvIHNsb3dQYXRoRm9yV2FzbUNhbGwoY3R4LCBzbG93
UGF0aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAKICAgICAgICAgICAgICMgV2UgbmVlZCB0byBzZXQg
UEMgdG8gbG9hZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBpbnN0cnVjdGlvbiBzdHJlYW0sIGJ1dCB3
ZQogICAgICAgICAgICAgIyBuZWVkIHRvIHByZXNlcnZlIGl0cyBjdXJyZW50IHZhbHVlIHNpbmNl
IGl0IG1pZ2h0IGNvbnRhaW4gYSByZXR1cm4gdmFsdWUKK2lmIEFSTXY3CisgICAgICAgICAgICBw
dXNoIFBDCitlbHNlCiAgICAgICAgICAgICBtb3ZlIFBDLCBtZW1vcnlCYXNlCitlbmQKICAgICAg
ICAgICAgIG1vdmUgUEIsIHdhc21JbnN0YW5jZQogICAgICAgICAgICAgbG9hZGkgQXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXMgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKICAgICAgICAgICAgIGxvYWRw
IENvZGVCbG9ja1tjZnJdLCBQQgpAQCAtODM4LDE3ICs5MTMsMjggQEAgbWFjcm8gc2xvd1BhdGhG
b3JXYXNtQ2FsbChjdHgsIHNsb3dQYXRoLCBzdG9yZVdhc21JbnN0YW5jZSkKICAgICAgICAgICAg
IHdnZXR1KGN0eCwgbV9zdGFja09mZnNldCwgd3MxKQogICAgICAgICAgICAgbHNoaWZ0aSAzLCB3
czEKICAgICAgICAgICAgIG5lZ2kgd3MxCitpZiBKU1ZBTFVFNjQKICAgICAgICAgICAgIHN4aTJx
IHdzMSwgd3MxCitlbmQKICAgICAgICAgICAgIGFkZHAgY2ZyLCB3czEKIAogICAgICAgICAgICAg
IyBBcmd1bWVudCByZWdpc3RlcnMgYXJlIGFsc28gcmV0dXJuIHJlZ2lzdGVycywgc28gdGhleSBt
dXN0IGJlIHN0b3JlZCB0byB0aGUgc3RhY2sKICAgICAgICAgICAgICMgaW4gY2FzZSB0aGV5IGNv
bnRhaW4gcmV0dXJuIHZhbHVlcy4KICAgICAgICAgICAgIHdnZXR1KGN0eCwgbV9udW1iZXJPZlN0
YWNrQXJncywgd3MwKQoraWYgQVJNdjcKKyAgICAgICAgICAgIHBvcCBQQworZWxzZQogICAgICAg
ICAgICAgbW92ZSBtZW1vcnlCYXNlLCBQQwotICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50R1BS
KG1hY3JvIChvZmZzZXQsIGdwcikKK2VuZAoraWYgSlNWQUxVRTY0CisgICAgICAgICAgICBmb3JF
YWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByKQogICAgICAgICAgICAgICAgIHN0b3Jl
cSBncHIsIENhbGxGcmFtZUhlYWRlclNpemUgKyA4ICsgb2Zmc2V0W3dzMSwgd3MwLCA4XQogICAg
ICAgICAgICAgZW5kKQotCitlbHNlCisgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFj
cm8gKG9mZnNldCwgZ3ByTXN3LCBncExzdykKKyAgICAgICAgICAgICAgICBzdG9yZTJpYSBncExz
dywgZ3ByTXN3LCBDYWxsRnJhbWVIZWFkZXJTaXplICsgOCArIG9mZnNldFt3czEsIHdzMCwgOF0K
KyAgICAgICAgICAgIGVuZCkKK2VuZAogICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50RlBSKG1h
Y3JvIChvZmZzZXQsIGZwcikKICAgICAgICAgICAgICAgICBzdG9yZWQgZnByLCBDYWxsRnJhbWVI
ZWFkZXJTaXplICsgOCArIG9mZnNldFt3czEsIHdzMCwgOF0KICAgICAgICAgICAgIGVuZCkKQEAg
LTg5OSwxOTkgKzk4NSwzNiBAQCB3YXNtT3AoY3VycmVudF9tZW1vcnksIFdhc21DdXJyZW50TWVt
b3J5LCBtYWNybyhjdHgpCiAgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fbWVtb3J5W3dhc21J
bnN0YW5jZV0sIHQwCiAgICAgbG9hZHAgV2FzbTo6TWVtb3J5OjptX2hhbmRsZVt0MF0sIHQwCiAg
ICAgbG9hZHAgV2FzbTo6TWVtb3J5SGFuZGxlOjptX3NpemVbdDBdLCB0MAotICAgIHVyc2hpZnRx
IDE2LCB0MAorICAgIHVyc2hpZnRwIDE2LCB0MAoraWYgSlNWQUxVRTY0CiAgICAgcmV0dXJucShj
dHgsIHQwKQorZWxzZQorICAgIHJldHVybjJpKGN0eCwgMCwgdDApCitlbmQKIGVuZCkKIAogd2Fz
bU9wKHNlbGVjdCwgV2FzbVNlbGVjdCwgbWFjcm8oY3R4KQogICAgIG1sb2FkaShjdHgsIG1fY29u
ZGl0aW9uLCB0MCkKICAgICBidGl6IHQwLCAuaXNaZXJvCitpZiBKU1ZBTFVFNjQKICAgICBtbG9h
ZHEoY3R4LCBtX25vblplcm8sIHQwKQogICAgIHJldHVybnEoY3R4LCB0MCkKIC5pc1plcm86CiAg
ICAgbWxvYWRxKGN0eCwgbV96ZXJvLCB0MCkKICAgICByZXR1cm5xKGN0eCwgdDApCitlbHNlCisg
ICAgbWxvYWQyaShjdHgsIG1fbm9uWmVybywgdDEsIHQwKQorICAgIHJldHVybjJpKGN0eCwgdDEs
IHQwKQorLmlzWmVybzoKKyAgICBtbG9hZDJpKGN0eCwgbV96ZXJvLCB0MSwgdDApCisgICAgcmV0
dXJuMmkoY3R4LCB0MSwgdDApCitlbmQKIGVuZCkKIAotIyB1c2VzIG9mZnNldCBhcyBzY3JhdGNo
IGFuZCByZXR1cm5zIHJlc3VsdCBvbiBwb2ludGVyCi1tYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJl
UG9pbnRlcihjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKLSAgICBsZWFwIHNpemUgLSAxW3Bv
aW50ZXIsIG9mZnNldF0sIHQ1Ci0gICAgYnBiIHQ1LCBib3VuZHNDaGVja2luZ1NpemUsIC5jb250
aW51YXRpb24KLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKLS5j
b250aW51YXRpb246Ci0gICAgYWRkcCBtZW1vcnlCYXNlLCBwb2ludGVyCi1lbmQKLQotbWFjcm8g
ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQoY3R4LCBwb2ludGVyLCBvZmZz
ZXQsIHNpemUpCi0gICAgbGVhcCBzaXplIC0gMVtwb2ludGVyLCBvZmZzZXRdLCB0NQotICAgIGJw
YiB0NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29udGludWF0aW9uCi0udGhyb3c6Ci0gICAgdGhy
b3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCi0uY29udGludWF0aW9uOgotICAg
IGFkZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgotICAgIGFkZHAgb2Zmc2V0LCBwb2ludGVyCi1lbmQK
LQotbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25t
ZW50Q2hlY2soY3R4LCBwb2ludGVyLCBvZmZzZXQsIHNpemUpCi0gICAgbGVhcCBzaXplIC0gMVtw
b2ludGVyLCBvZmZzZXRdLCB0NQotICAgIGJwYiB0NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29u
dGludWF0aW9uCi0udGhyb3c6Ci0gICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlB
Y2Nlc3MpCi0uY29udGludWF0aW9uOgotICAgIGFkZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgotICAg
IGFkZHAgb2Zmc2V0LCBwb2ludGVyCi0gICAgYnRwbnogcG9pbnRlciwgKHNpemUgLSAxKSwgLnRo
cm93Ci1lbmQKLQotbWFjcm8gd2FzbUxvYWRPcChuYW1lLCBzdHJ1Y3QsIHNpemUsIGZuKQotICAg
IHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9w
b2ludGVyLCB0MCkKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIGVt
aXRDaGVja0FuZFByZXBhcmVQb2ludGVyKGN0eCwgdDAsIHQxLCBzaXplKQotICAgICAgICBmbihb
dDAsIHQxXSwgdDIpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MikKLSAgICBlbmQpCi1lbmQKLQot
d2FzbUxvYWRPcChsb2FkOF91LCBXYXNtTG9hZDhVLCAxLCBtYWNybyhtZW0sIGRzdCkgbG9hZGIg
bWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChsb2FkMTZfdSwgV2FzbUxvYWQxNlUsIDIsIG1hY3Jv
KG1lbSwgZHN0KSBsb2FkaCBtZW0sIGRzdCBlbmQpCi13YXNtTG9hZE9wKGxvYWQzMl91LCBXYXNt
TG9hZDMyVSwgNCwgbWFjcm8obWVtLCBkc3QpIGxvYWRpIG1lbSwgZHN0IGVuZCkKLXdhc21Mb2Fk
T3AobG9hZDY0X3UsIFdhc21Mb2FkNjRVLCA4LCBtYWNybyhtZW0sIGRzdCkgbG9hZHEgbWVtLCBk
c3QgZW5kKQotCi13YXNtTG9hZE9wKGkzMl9sb2FkOF9zLCBXYXNtSTMyTG9hZDhTLCAxLCBtYWNy
byhtZW0sIGRzdCkgbG9hZGJzaSBtZW0sIGRzdCBlbmQpCi13YXNtTG9hZE9wKGk2NF9sb2FkOF9z
LCBXYXNtSTY0TG9hZDhTLCAxLCBtYWNybyhtZW0sIGRzdCkgbG9hZGJzcSBtZW0sIGRzdCBlbmQp
Ci13YXNtTG9hZE9wKGkzMl9sb2FkMTZfcywgV2FzbUkzMkxvYWQxNlMsIDIsIG1hY3JvKG1lbSwg
ZHN0KSBsb2FkaHNpIG1lbSwgZHN0IGVuZCkKLXdhc21Mb2FkT3AoaTY0X2xvYWQxNl9zLCBXYXNt
STY0TG9hZDE2UywgMiwgbWFjcm8obWVtLCBkc3QpIGxvYWRoc3EgbWVtLCBkc3QgZW5kKQotd2Fz
bUxvYWRPcChpNjRfbG9hZDMyX3MsIFdhc21JNjRMb2FkMzJTLCA0LCBtYWNybyhtZW0sIGRzdCkg
bG9hZGlzIG1lbSwgZHN0IGVuZCkKLQotbWFjcm8gd2FzbVN0b3JlT3AobmFtZSwgc3RydWN0LCBz
aXplLCBmbikKLSAgICB3YXNtT3AobmFtZSwgc3RydWN0LCBtYWNybyhjdHgpCi0gICAgICAgIG1s
b2FkaShjdHgsIG1fcG9pbnRlciwgdDApCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQx
KQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihjdHgsIHQwLCB0MSwgc2l6ZSkK
LSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAgICAgIGZuKHQyLCBbdDAsIHQx
XSkKLSAgICAgICAgZGlzcGF0Y2goY3R4KQotICAgIGVuZCkKLWVuZAotCi13YXNtU3RvcmVPcChz
dG9yZTgsIFdhc21TdG9yZTgsIDEsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlYiB2YWx1ZSwgbWVt
IGVuZCkKLXdhc21TdG9yZU9wKHN0b3JlMTYsIFdhc21TdG9yZTE2LCAyLCBtYWNybyh2YWx1ZSwg
bWVtKSBzdG9yZWggdmFsdWUsIG1lbSBlbmQpCi13YXNtU3RvcmVPcChzdG9yZTMyLCBXYXNtU3Rv
cmUzMiwgNCwgbWFjcm8odmFsdWUsIG1lbSkgc3RvcmVpIHZhbHVlLCBtZW0gZW5kKQotd2FzbVN0
b3JlT3Aoc3RvcmU2NCwgV2FzbVN0b3JlNjQsIDgsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlcSB2
YWx1ZSwgbWVtIGVuZCkKLQogIyBPcGNvZGVzIHRoYXQgZG9uJ3QgaGF2ZSB0aGUgYGIzb3BgIGVu
dHJ5IGluIHdhc20uanNvbi4gVGhpcyBzaG91bGQgYmUga2VwdCBpbiBzeW5jCiAKLXdhc21PcChp
MzJfZGl2X3MsIFdhc21JMzJEaXZTLCBtYWNybyAoY3R4KQotICAgIG1sb2FkaShjdHgsIG1fbGhz
LCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCi0KLSAgICBidGl6IHQxLCAudGhyb3dE
aXZpc2lvbkJ5WmVybwotCi0gICAgYmluZXEgdDEsIC0xLCAuc2FmZQotICAgIGJpZXEgdDAsIGNv
bnN0ZXhwciBJTlQzMl9NSU4sIC50aHJvd0ludGVnZXJPdmVyZmxvdwotCi0uc2FmZToKLSAgICBp
ZiBYODZfNjQKLSAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRpY19hc3NldCB0aGF0
IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4Ci0gICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgotICAgICAgICBjZHFpCi0gICAgICAgIGlkaXZpIHQx
Ci0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKLSAgICAgICAgZGl2aXMgdDEs
IHQwCi0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVuZAotICAgIHJldHVybmkoY3R4LCB0
MCkKLQotLnRocm93RGl2aXNpb25CeVplcm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25C
eVplcm8pCi0KLS50aHJvd0ludGVnZXJPdmVyZmxvdzoKLSAgICB0aHJvd0V4Y2VwdGlvbihJbnRl
Z2VyT3ZlcmZsb3cpCi1lbmQpCi0KLXdhc21PcChpMzJfZGl2X3UsIFdhc21JMzJEaXZVLCBtYWNy
byAoY3R4KQotICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3Jo
cywgdDEpCi0KLSAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwotCi0gICAgaWYgWDg2
XzY0Ci0gICAgICAgIHhvcmkgdDIsIHQyCi0gICAgICAgIHVkaXZpIHQxCi0gICAgZWxzaWYgQVJN
NjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKLSAgICAgICAgZGl2aSB0MSwgdDAKLSAgICBlbHNlCi0g
ICAgICAgIGVycm9yCi0gICAgZW5kCi0gICAgcmV0dXJuaShjdHgsIHQwKQotCi0udGhyb3dEaXZp
c2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLWVuZCkKLQot
d2FzbU9wKGkzMl9yZW1fcywgV2FzbUkzMlJlbVMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRpKGN0
eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0aXogdDEs
IC50aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBiaW5lcSB0MSwgLTEsIC5zYWZlCi0gICAgYmlu
ZXEgdDAsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC5zYWZlCi0KLSAgICBtb3ZlIDAsIHQyCi0gICAg
am1wIC5yZXR1cm4KLQotLnNhZmU6Ci0gICAgaWYgWDg2XzY0Ci0gICAgICAgICMgRklYTUU6IEFk
ZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAotICAg
ICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKLSAg
ICAgICAgY2RxaQotICAgICAgICBpZGl2aSB0MQotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQot
ICAgICAgICBkaXZpcyB0MSwgdDAsIHQyCi0gICAgICAgIG11bGkgdDEsIHQyCi0gICAgICAgIHN1
YmkgdDAsIHQyLCB0MgotICAgIGVsc2lmIFJJU0NWNjQKLSAgICAgICAgcmVtaXMgdDEsIHQwCi0g
ICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVuZAotCi0ucmV0dXJuOgotICAgIHJldHVybmko
Y3R4LCB0MikKLQotLnRocm93RGl2aXNpb25CeVplcm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2
aXNpb25CeVplcm8pCi1lbmQpCi0KLXdhc21PcChpMzJfcmVtX3UsIFdhc21JMzJSZW1VLCBtYWNy
byAoY3R4KQotICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3Jo
cywgdDEpCi0KLSAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwotCi0gICAgaWYgWDg2
XzY0Ci0gICAgICAgIHhvcmkgdDIsIHQyCi0gICAgICAgIHVkaXZpIHQxCi0gICAgZWxzaWYgQVJN
NjQgb3IgQVJNNjRFCi0gICAgICAgIGRpdmkgdDEsIHQwLCB0MgotICAgICAgICBtdWxpIHQxLCB0
MgotICAgICAgICBzdWJpIHQwLCB0MiwgdDIKLSAgICBlbHNpZiBSSVNDVjY0Ci0gICAgICAgIHJl
bWkgdDEsIHQwCi0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVuZAotICAgIHJldHVybmko
Y3R4LCB0MikKLQotLnRocm93RGl2aXNpb25CeVplcm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2
aXNpb25CeVplcm8pCi1lbmQpCi0KIHdhc21PcChpMzJfY3R6LCBXYXNtSTMyQ3R6LCBtYWNybyAo
Y3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgbWxvYWRpKGN0eCwgbV9v
cGVyYW5kLCB0MCkKICAgICB0emNudGkgdDAsIHQwCiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5k
KQpAQCAtMTEwNSwxNDggKzEwMjgsMjUgQEAgd2FzbU9wKGkzMl9wb3BjbnQsIFdhc21JMzJQb3Bj
bnQsIG1hY3JvIChjdHgpCiAgICAgcmV0dXJuaShjdHgsIHIxKQogZW5kKQogCi13YXNtT3AoaTY0
X2Rpdl9zLCBXYXNtSTY0RGl2UywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywg
dDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRxeiB0MSwgLnRocm93RGl2
aXNpb25CeVplcm8KLQotICAgIGJxbmVxIHQxLCAtMSwgLnNhZmUKLSAgICBicWVxIHQwLCBjb25z
dGV4cHIgSU5UNjRfTUlOLCAudGhyb3dJbnRlZ2VyT3ZlcmZsb3cKLQotLnNhZmU6Ci0gICAgaWYg
WDg2XzY0Ci0gICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0
MCBpcyByYXggYW5kIHQyIGlzIHJkeAotICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKLSAgICAgICAgY3FvcQotICAgICAgICBpZGl2cSB0MQot
ICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgICAgIGRpdnFzIHQxLCB0
MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1cm5xKGN0eCwgdDAp
Ci0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnla
ZXJvKQotCi0udGhyb3dJbnRlZ2VyT3ZlcmZsb3c6Ci0gICAgdGhyb3dFeGNlcHRpb24oSW50ZWdl
ck92ZXJmbG93KQotZW5kKQotCi13YXNtT3AoaTY0X2Rpdl91LCBXYXNtSTY0RGl2VSwgbWFjcm8g
KGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMs
IHQxKQotCi0gICAgYnRxeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAgIGlmIFg4Nl82
NAotICAgICAgICB4b3JxIHQyLCB0MgotICAgICAgICB1ZGl2cSB0MQotICAgIGVsc2lmIEFSTTY0
IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgICAgIGRpdnEgdDEsIHQwCi0gICAgZWxzZQotICAg
ICAgICBlcnJvcgotICAgIGVuZAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLnRocm93RGl2aXNp
b25CeVplcm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCi1lbmQpCi0KLXdh
c21PcChpNjRfcmVtX3MsIFdhc21JNjRSZW1TLCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgs
IG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0KLSAgICBidHF6IHQxLCAu
dGhyb3dEaXZpc2lvbkJ5WmVybwotCi0gICAgYnFuZXEgdDEsIC0xLCAuc2FmZQotICAgIGJxbmVx
IHQwLCBjb25zdGV4cHIgSU5UNjRfTUlOLCAuc2FmZQotCi0gICAgbW92ZSAwLCB0MgotICAgIGpt
cCAucmV0dXJuCi0KLS5zYWZlOgotICAgIGlmIFg4Nl82NAotICAgICAgICAjIEZJWE1FOiBBZGQg
YSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0MiBpcyByZHgKLSAgICAg
ICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCi0gICAg
ICAgIGNxb3EKLSAgICAgICAgaWRpdnEgdDEKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUKLSAg
ICAgICAgZGl2cXMgdDEsIHQwLCB0MgotICAgICAgICBtdWxxIHQxLCB0MgotICAgICAgICBzdWJx
IHQwLCB0MiwgdDIKLSAgICBlbHNpZiBSSVNDVjY0Ci0gICAgICAgIHJlbXFzIHQxLCB0MAotICAg
IGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLQotLnJldHVybjoKLSAgICByZXR1cm5xKGN0
eCwgdDIpICMgcmR4IGhhcyB0aGUgcmVtYWluZGVyCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgot
ICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotZW5kKQotCi13YXNtT3AoaTY0X3Jl
bV91LCBXYXNtSTY0UmVtVSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDAp
Ci0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRxeiB0MSwgLnRocm93RGl2aXNp
b25CeVplcm8KLQotICAgIGlmIFg4Nl82NAotICAgICAgICB4b3JxIHQyLCB0MgotICAgICAgICB1
ZGl2cSB0MQotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQotICAgICAgICBkaXZxIHQxLCB0MCwg
dDIKLSAgICAgICAgbXVscSB0MSwgdDIKLSAgICAgICAgc3VicSB0MCwgdDIsIHQyCi0gICAgZWxz
aWYgUklTQ1Y2NAotICAgICAgICByZW1xIHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IK
LSAgICBlbmQKLSAgICByZXR1cm5xKGN0eCwgdDIpCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgot
ICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotZW5kKQotCi13YXNtT3AoaTY0X2N0
eiwgV2FzbUk2NEN0eiwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQw
KQotICAgIHR6Y250cSB0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21P
cChpNjRfcG9wY250LCBXYXNtSTY0UG9wY250LCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgs
IG1fb3BlcmFuZCwgYTEpCi0gICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQotICAgIG1vdmUgUEMs
IGEwCi0gICAgY0NhbGwyKF9zbG93X3BhdGhfd2FzbV9wb3Bjb3VudGxsKQotICAgIHJlc3RvcmVT
dGF0ZUFmdGVyQ0NhbGwoKQotICAgIHJldHVybnEoY3R4LCByMSkKLWVuZCkKLQotd2FzbU9wKGYz
Ml90cnVuYywgV2FzbUYzMlRydW5jLCBtYWNybyAoY3R4KQord2FzbVJvdW5kaW5nT3AoZjMyX3Ry
dW5jLCBXYXNtRjMyVHJ1bmMsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5k
LCBmdDApCiAgICAgdHJ1bmNhdGVmIGZ0MCwgZnQwCiAgICAgcmV0dXJuZihjdHgsIGZ0MCkKIGVu
ZCkKIAotd2FzbU9wKGYzMl9uZWFyZXN0LCBXYXNtRjMyTmVhcmVzdCwgbWFjcm8gKGN0eCkKK3dh
c21Sb3VuZGluZ09wKGYzMl9uZWFyZXN0LCBXYXNtRjMyTmVhcmVzdCwgbWFjcm8gKGN0eCkKICAg
ICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICByb3VuZGYgZnQwLCBmdDAKICAgICBy
ZXR1cm5mKGN0eCwgZnQwKQogZW5kKQogCi13YXNtT3AoZjY0X3RydW5jLCBXYXNtRjY0VHJ1bmMs
IG1hY3JvIChjdHgpCit3YXNtUm91bmRpbmdPcChmNjRfdHJ1bmMsIFdhc21GNjRUcnVuYywgbWFj
cm8gKGN0eCkKICAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICB0cnVuY2F0ZWQg
ZnQwLCBmdDAKICAgICByZXR1cm5kKGN0eCwgZnQwKQogZW5kKQogCi13YXNtT3AoZjY0X25lYXJl
c3QsIFdhc21GNjROZWFyZXN0LCBtYWNybyAoY3R4KQord2FzbVJvdW5kaW5nT3AoZjY0X25lYXJl
c3QsIFdhc21GNjROZWFyZXN0LCBtYWNybyAoY3R4KQogICAgIG1sb2FkZChjdHgsIG1fb3BlcmFu
ZCwgZnQwKQogICAgIHJvdW5kZCBmdDAsIGZ0MAogICAgIHJldHVybmQoY3R4LCBmdDApCkBAIC0x
MjcwLDI0ICsxMDcwLDYgQEAgd2FzbU9wKGkzMl90cnVuY19zX2YzMiwgV2FzbUkzMlRydW5jU0Yz
MiwgbWFjcm8gKGN0eCkKICAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQogZW5k
KQogCi13YXNtT3AoaTMyX3RydW5jX3NfZjY0LCBXYXNtSTMyVHJ1bmNTRjY0LCBtYWNybyAoY3R4
KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGMxZTAwMDAw
MDAyMDAwMDAsIHQwICMgSU5UMzJfTUlOIC0gMS4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRs
dGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICBtb3ZlIDB4NDFlMDAwMDAw
MDAwMDAwMCwgdDAgIyAtSU5UMzJfTUlOCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4g
ZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAot
ICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dFeGNl
cHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKLWVuZCkKLQogd2FzbU9wKGkzMl90cnVuY191X2YzMiwg
V2FzbUkzMlRydW5jVUYzMiwgbWFjcm8gKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQs
IGZ0MCkKIApAQCAtMTMwNiw5NiArMTA4OCw2IEBAIHdhc21PcChpMzJfdHJ1bmNfdV9mMzIsIFdh
c21JMzJUcnVuY1VGMzIsIG1hY3JvIChjdHgpCiAgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3Vu
ZHNUcnVuYykKIGVuZCkKIAotd2FzbU9wKGkzMl90cnVuY191X2Y2NCwgV2FzbUkzMlRydW5jVUY2
NCwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1v
dmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBi
ZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIG1vdmUgMHg0MWYwMDAw
MDAwMDAwMDAwLCB0MCAjIElOVDMyX01JTiAqIC0yLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBi
ZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIHRydW5jYXRlZDJpIGZ0
MCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRo
cm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNf
c19mMzIsIFdhc21JNjRUcnVuY1NGMzIsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRmKGN0eCwgbV9v
cGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4ZGYwMDAwMDAsIHQwICMgSU5UNjRfTUlOCi0gICAg
ZmkyZiB0MCwgZnQxCi0gICAgYmZsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0g
ICAgbW92ZSAweDVmMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KLSAgICBmaTJmIHQwLCBmdDEKLSAg
ICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIHRydW5jYXRlZjJx
cyBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAg
ICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQotZW5kKQotCi13YXNtT3AoaTY0X3Ry
dW5jX3NfZjY0LCBXYXNtSTY0VHJ1bmNTRjY0LCBtYWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgs
IG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGMzZTAwMDAwMDAwMDAwMDAsIHQwICMgSU5U
NjRfTUlOCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3Vu
ZHNUcnVuYwotCi0gICAgbW92ZSAweDQzZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDY0X01JTgot
ICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVu
YwotCi0gICAgdHJ1bmNhdGVkMnFzIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5v
dXRPZkJvdW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCi1l
bmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfdV9mMzIsIFdhc21JNjRUcnVuY1VGMzIsIG1hY3JvIChj
dHgpCi0gICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YmY4MDAw
MDAsIHQwICMgLTEuMAotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmbHRlcXVuIGZ0MCwgZnQxLCAu
b3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgbW92ZSAweDVmODAwMDAwLCB0MCAjIElOVDY0X01JTiAq
IC0yLjAKLSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91
bmRzVHJ1bmMKLQotICAgIHRydW5jYXRlZjJxIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDAp
Ci0KLS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1
bmMpCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfdV9mNjQsIFdhc21JNjRUcnVuY1VGNjQsIG1h
Y3JvIChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4
YmZmMDAwMDAwMDAwMDAwMCwgdDAgIyAtMS4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdGVx
dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICBtb3ZlIDB4NDNmMDAwMDAwMDAw
MDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVx
dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICB0cnVuY2F0ZWQycSBmdDAsIHQw
Ci0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJvd0V4
Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQotZW5kKQotCiB3YXNtT3AoaTMyX3RydW5jX3NhdF9m
MzJfcywgV2FzbUkzMlRydW5jU2F0RjMyUywgbWFjcm8gKGN0eCkKICAgICBtbG9hZGYoY3R4LCBt
X29wZXJhbmQsIGZ0MCkKIApAQCAtMTQyNCwzNCArMTExNiw2IEBAIHdhc21PcChpMzJfdHJ1bmNf
c2F0X2YzMl9zLCBXYXNtSTMyVHJ1bmNTYXRGMzJTLCBtYWNybyAoY3R4KQogICAgIHJldHVybmko
Y3R4LCB0MCkKIGVuZCkKIAotd2FzbU9wKGkzMl90cnVuY19zYXRfZjY0X3MsIFdhc21JMzJUcnVu
Y1NhdEY2NFMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0K
LSAgICBtb3ZlIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDAgIyBJTlQzMl9NSU4gLSAxLjAKLSAgICBm
cTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRN
aW5Pck5hTgotCi0gICAgbW92ZSAweDQxZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDMyX01JTgot
ICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1heAotCi0gICAgdHJ1bmNhdGVkMmlzIGZ0MCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDAp
Ci0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU46Ci0gICAgYmRlcSBmdDAsIGZ0MCwgLm91
dE9mQm91bmRzVHJ1bmNTYXRNaW4KLSAgICBtb3ZlIDAsIHQwCi0gICAgcmV0dXJuaShjdHgsIHQw
KQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKLSAgICBtb3ZlIChjb25zdGV4cHIgSU5UMzJf
TUFYKSwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWlu
OgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQzMl9NSU4pLCB0MAotICAgIHJldHVybmkoY3R4LCB0
MCkKLWVuZCkKLQogd2FzbU9wKGkzMl90cnVuY19zYXRfZjMyX3UsIFdhc21JMzJUcnVuY1NhdEYz
MlUsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAKQEAgLTE0
NzUsMTUyICsxMTM5LDIyIEBAIHdhc21PcChpMzJfdHJ1bmNfc2F0X2YzMl91LCBXYXNtSTMyVHJ1
bmNTYXRGMzJVLCBtYWNybyAoY3R4KQogICAgIHJldHVybmkoY3R4LCB0MCkKIGVuZCkKIAotd2Fz
bU9wKGkzMl90cnVuY19zYXRfZjY0X3UsIFdhc21JMzJUcnVuY1NhdEY2NFUsIG1hY3JvIChjdHgp
Ci0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YmZmMDAwMDAw
MDAwMDAwMCwgdDAgIyAtMS4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdGVxdW4gZnQwLCBm
dDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCi0KLSAgICBtb3ZlIDB4NDFmMDAwMDAwMDAwMDAw
MCwgdDAgIyBJTlQzMl9NSU4gKiAtMi4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4g
ZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWQyaSBmdDAs
IHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKLSAg
ICBtb3ZlIDAsIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1heDoKLSAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDMyX01BWCksIHQwCi0gICAgcmV0dXJuaShj
dHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3NhdF9mMzJfcywgV2FzbUk2NFRydW5j
U2F0RjMyUywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQot
ICAgIG1vdmUgMHhkZjAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4KLSAgICBmaTJmIHQwLCBmdDEKLSAg
ICBiZmx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU4KLQotICAgIG1v
dmUgMHg1ZjAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCi0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZn
dGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWYy
cXMgZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRN
aW5Pck5hTjoKLSAgICBiZmVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotICAg
IG1vdmUgMCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0
TWF4OgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9NQVgpLCB0MAotICAgIHJldHVybnEoY3R4
LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46Ci0gICAgbW92ZSAoY29uc3RleHByIElO
VDY0X01JTiksIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3Ry
dW5jX3NhdF9mNjRfcywgV2FzbUk2NFRydW5jU2F0RjY0UywgbWFjcm8gKGN0eCkKLSAgICBtbG9h
ZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhjM2UwMDAwMDAwMDAwMDAwLCB0
MCAjIElOVDY0X01JTgotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHR1biBmdDAsIGZ0MSwgLm91
dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTgotCi0gICAgbW92ZSAweDQzZTAwMDAwMDAwMDAwMDAs
IHQwICMgLUlOVDY0X01JTgotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQx
LCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVkMnFzIGZ0MCwgdDAKLSAg
ICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU46Ci0gICAg
YmRlcSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KLSAgICBtb3ZlIDAsIHQwCi0g
ICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKLSAgICBtb3Zl
IChjb25zdGV4cHIgSU5UNjRfTUFYKSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRP
ZkJvdW5kc1RydW5jU2F0TWluOgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9NSU4pLCB0MAot
ICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3Us
IFdhc21JNjRUcnVuY1NhdEYzMlUsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRmKGN0eCwgbV9vcGVy
YW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YmY4MDAwMDAsIHQwICMgLTEuMAotICAgIGZpMmYgdDAs
IGZ0MQotICAgIGJmbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotCi0g
ICAgbW92ZSAweDVmODAwMDAwLCB0MCAjIElOVDY0X01JTiAqIC0yLjAKLSAgICBmaTJmIHQwLCBm
dDEKLSAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQotICAg
IHRydW5jYXRlZjJxIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5k
c1RydW5jU2F0TWluOgotICAgIG1vdmUgMCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5v
dXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UNjRfTUFYKSwg
dDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfc2F0X2Y2
NF91LCBXYXNtSTY0VHJ1bmNTYXRGNjRVLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1f
b3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGJmZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAot
ICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1pbgotCi0gICAgbW92ZSAweDQzZjAwMDAwMDAwMDAwMDAsIHQwICMgSU5UNjRfTUlOICog
LTIuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3Vu
ZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVkMnEgZnQwLCB0MAotICAgIHJldHVybnEoY3R4
LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46Ci0gICAgbW92ZSAwLCB0MAotICAgIHJl
dHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6Ci0gICAgbW92ZSAoY29u
c3RleHByIFVJTlQ2NF9NQVgpLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotCi13
YXNtT3AoZjMyX2NvbnZlcnRfdV9pNjQsIFdhc21GMzJDb252ZXJ0VUk2NCwgbWFjcm8gKGN0eCkK
K3dhc21JNjRUb0ZPcChmMzJfY29udmVydF91X2k2NCwgV2FzbUYzMkNvbnZlcnRVSTY0LCBtYWNy
byAoY3R4KQogICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAgaWYgWDg2XzY0CiAg
ICAgICAgIGNxMmYgdDAsIHQxLCBmdDAKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklT
Q1Y2NAotICAgICAgICBjcTJmIHQwLCBmdDAKICAgICBlbHNlCi0gICAgICAgIGVycm9yCisgICAg
ICAgIGNxMmYgdDAsIGZ0MAogICAgIGVuZAogICAgIHJldHVybmYoY3R4LCBmdDApCiBlbmQpCiAK
LXdhc21PcChmNjRfY29udmVydF91X2k2NCwgV2FzbUY2NENvbnZlcnRVSTY0LCBtYWNybyAoY3R4
KQord2FzbUk2NFRvRk9wKGY2NF9jb252ZXJ0X3VfaTY0LCBXYXNtRjY0Q29udmVydFVJNjQsIG1h
Y3JvIChjdHgpCiAgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICBpZiBYODZfNjQK
ICAgICAgICAgY3EyZCB0MCwgdDEsIGZ0MAotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBS
SVNDVjY0Ci0gICAgICAgIGNxMmQgdDAsIGZ0MAogICAgIGVsc2UKLSAgICAgICAgZXJyb3IKKyAg
ICAgICAgY3EyZCB0MCwgZnQwCiAgICAgZW5kCiAgICAgcmV0dXJuZChjdHgsIGZ0MCkKIGVuZCkK
QEAgLTE2MzEsNDcgKzExNjUsNiBAQCB3YXNtT3AoaTMyX2VxeiwgV2FzbUkzMkVxeiwgbWFjcm8o
Y3R4KQogICAgIHJldHVybmkoY3R4LCB0MCkKIGVuZCkKIAotd2FzbU9wKGk2NF9zaGwsIFdhc21J
NjRTaGwsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRp
KGN0eCwgbV9yaHMsIHQxKQotICAgIGxzaGlmdHEgdDEsIHQwCi0gICAgcmV0dXJucShjdHgsIHQw
KQotZW5kKQotCi13YXNtT3AoaTY0X3Nocl91LCBXYXNtSTY0U2hyVSwgbWFjcm8oY3R4KQotICAg
IG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCi0gICAg
dXJzaGlmdHEgdDEsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0
X3Nocl9zLCBXYXNtSTY0U2hyUywgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0
MCkKLSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCi0gICAgcnNoaWZ0cSB0MSwgdDAKLSAgICBy
ZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfcm90ciwgV2FzbUk2NFJvdHIsIG1h
Y3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9y
aHMsIHQxKQotICAgIHJyb3RhdGVxIHQxLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkK
LQotd2FzbU9wKGk2NF9yb3RsLCBXYXNtSTY0Um90bCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShj
dHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCi0gICAgbHJvdGF0ZXEg
dDEsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X2VxeiwgV2Fz
bUk2NEVxeiwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAg
Y3FlcSB0MCwgMCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi1lbmQpCi0KIHdhc21PcChmMzJf
bWluLCBXYXNtRjMyTWluLCBtYWNybyhjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9saHMsIGZ0MCkK
ICAgICBtbG9hZGYoY3R4LCBtX3JocywgZnQxKQpAQCAtMTc4MSwyMyArMTI3NCw2IEBAIHdhc21P
cChmNjRfbWF4LCBXYXNtRjY0TWF4LCBtYWNybyhjdHgpCiAgICAgcmV0dXJuZChjdHgsIGZ0MSkK
IGVuZCkKIAotd2FzbU9wKGY2NF9jb3B5c2lnbiwgV2FzbUY2NENvcHlzaWduLCBtYWNybyhjdHgp
Ci0gICAgbWxvYWRkKGN0eCwgbV9saHMsIGZ0MCkKLSAgICBtbG9hZGQoY3R4LCBtX3JocywgZnQx
KQotCi0gICAgZmQycSBmdDEsIHQxCi0gICAgbW92ZSAweDgwMDAwMDAwMDAwMDAwMDAsIHQyCi0g
ICAgYW5kcSB0MiwgdDEKLQotICAgIGZkMnEgZnQwLCB0MAotICAgIG1vdmUgMHg3ZmZmZmZmZmZm
ZmZmZmZmLCB0MgotICAgIGFuZHEgdDIsIHQwCi0KLSAgICBvcnEgdDEsIHQwCi0gICAgZnEyZCB0
MCwgZnQwCi0gICAgcmV0dXJuZChjdHgsIGZ0MCkKLWVuZCkKLQogd2FzbU9wKGYzMl9jb252ZXJ0
X3VfaTMyLCBXYXNtRjMyQ29udmVydFVJMzIsIG1hY3JvKGN0eCkKICAgICBtbG9hZGkoY3R4LCBt
X29wZXJhbmQsIHQwKQogICAgIGNpMmYgdDAsIGZ0MApAQCAtMTk3MywxMzQgKzE0NDksNiBAQCB3
YXNtT3AoaTMyX2NseiwgV2FzbUkzMkNseiwgbWFjcm8oY3R4KQogICAgIHJldHVybmkoY3R4LCB0
MSkKIGVuZCkKIAotd2FzbU9wKGk2NF9hZGQsIFdhc21JNjRBZGQsIG1hY3JvKGN0eCkKLSAgICBt
bG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGFk
ZHEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X3N1Yiwg
V2FzbUk2NFN1YiwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBt
bG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgc3VicSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwg
dDApCi1lbmQpCi0KLXdhc21PcChpNjRfbXVsLCBXYXNtSTY0TXVsLCBtYWNybyhjdHgpCi0gICAg
bWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBt
dWxxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9hbmQs
IFdhc21JNjRBbmQsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAg
bWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGFuZHEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgs
IHQxKQotZW5kKQotCi13YXNtT3AoaTY0X29yLCBXYXNtSTY0T3IsIG1hY3JvKGN0eCkKLSAgICBt
bG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIG9y
cSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfeG9yLCBX
YXNtSTY0WG9yLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1s
b2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICB4b3JxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0
MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9lcSwgV2FzbUk2NEVxLCBtYWNybyhjdHgpCi0gICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWVx
IHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQot
Ci13YXNtT3AoaTY0X25lLCBXYXNtSTY0TmUsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBt
X2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxbmVxIHQwLCB0MSwg
dDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3Ao
aTY0X2x0X3MsIFdhc21JNjRMdFMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywg
dDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxbHQgdDAsIHQxLCB0MgotICAg
IGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfbGVf
cywgV2FzbUk2NExlUywgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAg
ICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FsdGVxIHQwLCB0MSwgdDIKLSAgICBhbmRp
IDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2x0X3UsIFdh
c21JNjRMdFUsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxv
YWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxYiB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0Mgot
ICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9sZV91LCBXYXNtSTY0TGVV
LCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgs
IG1fcmhzLCB0MSkKLSAgICBjcWJlcSB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJl
dHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9ndF9zLCBXYXNtSTY0R3RTLCBtYWNy
byhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhz
LCB0MSkKLSAgICBjcWd0IHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShj
dHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2dlX3MsIFdhc21JNjRHZVMsIG1hY3JvKGN0eCkK
LSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQot
ICAgIGNxZ3RlcSB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0
MikKLWVuZCkKLQotd2FzbU9wKGk2NF9ndF91LCBXYXNtSTY0R3RVLCBtYWNybyhjdHgpCi0gICAg
bWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBj
cWEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQp
Ci0KLXdhc21PcChpNjRfZ2VfdSwgV2FzbUk2NEdlVSwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShj
dHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FhZXEgdDAs
IHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdh
c21PcChpNjRfY2x6LCBXYXNtSTY0Q2x6LCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9v
cGVyYW5kLCB0MCkKLSAgICBsemNudHEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5k
KQotCiB3YXNtT3AoZjMyX2FkZCwgV2FzbUYzMkFkZCwgbWFjcm8oY3R4KQogICAgIG1sb2FkZihj
dHgsIG1fbGhzLCBmdDApCiAgICAgbWxvYWRmKGN0eCwgbV9yaHMsIGZ0MSkKQEAgLTIxNDEsMTMg
KzE0ODksMTMgQEAgd2FzbU9wKGYzMl9uZWcsIFdhc21GMzJOZWcsIG1hY3JvKGN0eCkKICAgICBy
ZXR1cm5mKGN0eCwgZnQxKQogZW5kKQogCi13YXNtT3AoZjMyX2NlaWwsIFdhc21GMzJDZWlsLCBt
YWNybyhjdHgpCit3YXNtUm91bmRpbmdPcChmMzJfY2VpbCwgV2FzbUYzMkNlaWwsIG1hY3JvKGN0
eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICBjZWlsZiBmdDAsIGZ0MQog
ICAgIHJldHVybmYoY3R4LCBmdDEpCiBlbmQpCiAKLXdhc21PcChmMzJfZmxvb3IsIFdhc21GMzJG
bG9vciwgbWFjcm8oY3R4KQord2FzbVJvdW5kaW5nT3AoZjMyX2Zsb29yLCBXYXNtRjMyRmxvb3Is
IG1hY3JvKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICBmbG9vcmYg
ZnQwLCBmdDEKICAgICByZXR1cm5mKGN0eCwgZnQxKQpAQCAtMjI0MSwxMyArMTU4OSwxMyBAQCB3
YXNtT3AoZjY0X25lZywgV2FzbUY2NE5lZywgbWFjcm8oY3R4KQogICAgIHJldHVybmQoY3R4LCBm
dDEpCiBlbmQpCiAKLXdhc21PcChmNjRfY2VpbCwgV2FzbUY2NENlaWwsIG1hY3JvKGN0eCkKK3dh
c21Sb3VuZGluZ09wKGY2NF9jZWlsLCBXYXNtRjY0Q2VpbCwgbWFjcm8oY3R4KQogICAgIG1sb2Fk
ZChjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIGNlaWxkIGZ0MCwgZnQxCiAgICAgcmV0dXJuZChj
dHgsIGZ0MSkKIGVuZCkKIAotd2FzbU9wKGY2NF9mbG9vciwgV2FzbUY2NEZsb29yLCBtYWNybyhj
dHgpCit3YXNtUm91bmRpbmdPcChmNjRfZmxvb3IsIFdhc21GNjRGbG9vciwgbWFjcm8oY3R4KQog
ICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIGZsb29yZCBmdDAsIGZ0MQogICAg
IHJldHVybmQoY3R4LCBmdDEpCkBAIC0yMzAyLDUwICsxNjUwLDIwIEBAIHdhc21PcChmNjRfZ2Us
IFdhc21GNjRHZSwgbWFjcm8oY3R4KQogZW5kKQogCiB3YXNtT3AoaTMyX3dyYXBfaTY0LCBXYXNt
STMyV3JhcEk2NCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCisg
ICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQp
CiAKLXdhc21PcChpNjRfZXh0ZW5kX3NfaTMyLCBXYXNtSTY0RXh0ZW5kU0kzMiwgbWFjcm8oY3R4
KQotICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgc3hpMnEgdDAsIHQxCi0gICAg
cmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X2V4dGVuZF91X2kzMiwgV2FzbUk2
NEV4dGVuZFVJMzIsIG1hY3JvKGN0eCkKLSAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQot
ICAgIHp4aTJxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQogd2FzbU9wKGkz
Ml9leHRlbmQ4X3MsIFdhc21JMzJFeHRlbmQ4UywgbWFjcm8oY3R4KQogICAgIG1sb2FkaShjdHgs
IG1fb3BlcmFuZCwgdDApCiAgICAgc3hiMmkgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQor
ICAgIHJldHVybmkoY3R4LCB0MSkKIGVuZCkKIAogd2FzbU9wKGkzMl9leHRlbmQxNl9zLCBXYXNt
STMyRXh0ZW5kMTZTLCBtYWNybyhjdHgpCiAgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkK
ICAgICBzeGgyaSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChp
NjRfZXh0ZW5kOF9zLCBXYXNtSTY0RXh0ZW5kOFMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4
LCBtX29wZXJhbmQsIHQwKQotICAgIHN4YjJxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkK
LWVuZCkKLQotd2FzbU9wKGk2NF9leHRlbmQxNl9zLCBXYXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhj
dHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBzeGgycSB0MCwgdDEKLSAg
ICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfZXh0ZW5kMzJfcywgV2FzbUk2
NEV4dGVuZDE2UywgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCi0g
ICAgc3hpMnEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQorICAgIHJldHVybmkoY3R4LCB0
MSkKIGVuZCkKIAogd2FzbU9wKGYzMl9jb252ZXJ0X3NfaTMyLCBXYXNtRjMyQ29udmVydFNJMzIs
IG1hY3JvKGN0eCkKQEAgLTIzNTQsNyArMTY3Miw3IEBAIHdhc21PcChmMzJfY29udmVydF9zX2kz
MiwgV2FzbUYzMkNvbnZlcnRTSTMyLCBtYWNybyhjdHgpCiAgICAgcmV0dXJuZihjdHgsIGZ0MCkK
IGVuZCkKIAotd2FzbU9wKGYzMl9jb252ZXJ0X3NfaTY0LCBXYXNtRjMyQ29udmVydFNJNjQsIG1h
Y3JvKGN0eCkKK3dhc21JNjRUb0ZPcChmMzJfY29udmVydF9zX2k2NCwgV2FzbUYzMkNvbnZlcnRT
STY0LCBtYWNybyhjdHgpCiAgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICBjcTJm
cyB0MCwgZnQwCiAgICAgcmV0dXJuZihjdHgsIGZ0MCkKQEAgLTIzNzgsNyArMTY5Niw3IEBAIHdh
c21PcChmNjRfY29udmVydF9zX2kzMiwgV2FzbUY2NENvbnZlcnRTSTMyLCBtYWNybyhjdHgpCiAg
ICAgcmV0dXJuZChjdHgsIGZ0MCkKIGVuZCkKIAotd2FzbU9wKGY2NF9jb252ZXJ0X3NfaTY0LCBX
YXNtRjY0Q29udmVydFNJNjQsIG1hY3JvKGN0eCkKK3dhc21JNjRUb0ZPcChmNjRfY29udmVydF9z
X2k2NCwgV2FzbUY2NENvbnZlcnRTSTY0LCBtYWNybyhjdHgpCiAgICAgbWxvYWRxKGN0eCwgbV9v
cGVyYW5kLCB0MCkKICAgICBjcTJkcyB0MCwgZnQwCiAgICAgcmV0dXJuZChjdHgsIGZ0MCkKQEAg
LTIzOTAsMzQgKzE3MDgsMjkgQEAgd2FzbU9wKGY2NF9wcm9tb3RlX2YzMiwgV2FzbUY2NFByb21v
dGVGMzIsIG1hY3JvKGN0eCkKICAgICByZXR1cm5kKGN0eCwgZnQxKQogZW5kKQogCi13YXNtT3Ao
ZjY0X3JlaW50ZXJwcmV0X2k2NCwgV2FzbUY2NFJlaW50ZXJwcmV0STY0LCBtYWNybyhjdHgpCi0g
ICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBmcTJkIHQwLCBmdDAKLSAgICByZXR1
cm5kKGN0eCwgZnQwKQotZW5kKQotCiB3YXNtT3AoaTMyX3JlaW50ZXJwcmV0X2YzMiwgV2FzbUkz
MlJlaW50ZXJwcmV0RjMyLCBtYWNybyhjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBm
dDApCiAgICAgZmYyaSBmdDAsIHQwCiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQogCi13YXNt
T3AoaTY0X3JlaW50ZXJwcmV0X2Y2NCwgV2FzbUk2NFJlaW50ZXJwcmV0RjY0LCBtYWNybyhjdHgp
Ci0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0gICAgZmQycSBmdDAsIHQwCi0gICAg
cmV0dXJucShjdHgsIHQwKQotZW5kKQotCiBtYWNybyBkcm9wS2VlcChzdGFydE9mZnNldCwgZHJv
cCwga2VlcCkKICAgICBsc2hpZnRpIDMsIHN0YXJ0T2Zmc2V0CiAgICAgc3VicCBjZnIsIHN0YXJ0
T2Zmc2V0LCBzdGFydE9mZnNldAogICAgIG5lZ2kgZHJvcAoraWYgSlNWQUxVRTY0CiAgICAgc3hp
MnEgZHJvcCwgZHJvcAorZW5kCiAKIC5jb3B5TG9vcDoKICAgICBidGl6IGtlZXAsIC5kb25lCitp
ZiBKU1ZBTFVFNjQKICAgICBsb2FkcSBbc3RhcnRPZmZzZXQsIGRyb3AsIDhdLCB0NgogICAgIHN0
b3JlcSB0NiwgW3N0YXJ0T2Zmc2V0XQorZWxzZQorICAgIGxvYWQyaWEgW3N0YXJ0T2Zmc2V0LCBk
cm9wLCA4XSwgdDUsIHQ2CisgICAgc3RvcmUyaWEgdDUsIHQ2LCBbc3RhcnRPZmZzZXRdCitlbmQK
ICAgICBzdWJpIDEsIGtlZXAKICAgICBzdWJwIDgsIHN0YXJ0T2Zmc2V0CiAgICAgam1wIC5jb3B5
TG9vcApAQCAtMjQzNSwzODkgKzE3NDgsNiBAQCB3YXNtT3AoZHJvcF9rZWVwLCBXYXNtRHJvcEtl
ZXAsIG1hY3JvKGN0eCkKICAgICBkaXNwYXRjaChjdHgpCiBlbmQpCiAKLW1hY3JvIHdhc21BdG9t
aWNCaW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5o
LCBmbmksIGZucSkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVf
dSwgV2FzbUk2NEF0b21pY1JtdzgldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAg
ICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNl
dCwgdDEpCi0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQwKQotICAgICAgICBlbWl0Q2hl
Y2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgsIHQzLCB0MSwgMSkKLSAgICAgICAg
Zm5iKHQwLCBbdDNdLCB0MiwgdDUsIHQxKQotICAgICAgICBhbmRxIDB4ZmYsIHQwICMgRklYTUU6
IFplcm9FeHRlbmQ4VG82NAotICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZm
LCAub2sgZW5kKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdhc21P
cChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzE2
JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9p
bnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9h
ZHEoY3R4LCBtX3ZhbHVlLCB0MCkKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJB
ZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDIpCi0gICAgICAgIGZu
aCh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKLSAgICAgICAgYW5kcSAweGZmZmYsIHQwICMgRklYTUU6
IFplcm9FeHRlbmQxNlRvNjQKLSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhm
ZmZmLCAub2sgZW5kKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdh
c21PcChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1Jt
dzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1f
cG9pbnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBt
bG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50
ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDQpCi0gICAgICAg
IGZuaSh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKLSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJl
cSB0MCwgMHhmZmZmZmZmZiwgLm9rIGVuZCkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAg
IGVuZCkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2
NEF0b21pY1JtdyV1cHBlckNhc2VPcGNvZGUlLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShj
dHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAg
ICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFy
ZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDgpCi0g
ICAgICAgIGZucSh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKLSAgICAgICAgcmV0dXJucShjdHgsIHQw
KQotICAgIGVuZCkKLWVuZAotCi1tYWNybyB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtD
QVMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuaSwgZm5xKQotICAgIHdhc21B
dG9taWNCaW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsCi0gICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBp
ZiBYODZfNjQKLSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgotICAgICAgICAgICAg
ICAgIGxvYWRiIG1lbSwgdDBHUFIKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAg
IG1vdmUgdDBHUFIsIHQyR1BSCi0gICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKLSAg
ICAgICAgICAgICAgICBiYXRvbWljd2Vha2Nhc2IgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCi0g
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBsb2Fk
bGlua2FjcWIgbWVtLCB0MUdQUgotICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQy
R1BSKQotICAgICAgICAgICAgICAgIHN0b3JlY29uZHJlbGIgdDVHUFIsIHQyR1BSLCBtZW0KLSAg
ICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKLSAgICAgICAgICAgICAgICBtb3Zl
IHQxR1BSLCB0MEdQUgotICAgICAgICAgICAgZW5kCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFj
cm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIGlmIFg4Nl82
NAotICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCi0gICAgICAgICAgICAgICAgbG9h
ZGggbWVtLCB0MEdQUgotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbW92ZSB0
MEdQUiwgdDJHUFIKLSAgICAgICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQotICAgICAgICAg
ICAgICAgIGJhdG9taWN3ZWFrY2FzaCB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKLSAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNx
aCBtZW0sIHQxR1BSCi0gICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0g
ICAgICAgICAgICAgICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAg
ICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAotICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIs
IHQwR1BSCi0gICAgICAgICAgICBlbmQKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgaWYgWDg2XzY0Ci0gICAg
ICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKLSAgICAgICAgICAgICAgICBsb2FkaSBtZW0s
IHQwR1BSCi0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0
MkdQUgotICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAgICAg
YmF0b21pY3dlYWtjYXNpIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAotICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbG9hZGxpbmthY3FpIG1lbSwg
dDFHUFIKLSAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAg
ICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICAgICAg
YmluZXEgdDVHUFIsIDAsIC5sb29wCi0gICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIK
LSAgICAgICAgICAgIGVuZAotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBpZiBYODZfNjQKLSAgICAgICAgICAg
ICAgICBtb3ZlIHQwR1BSLCB0NUdQUgotICAgICAgICAgICAgICAgIGxvYWRxIG1lbSwgdDBHUFIK
LSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCi0g
ICAgICAgICAgICAgICAgZm5xKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgICAgICBiYXRvbWlj
d2Vha2Nhc3EgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCi0gICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBsb2FkbGlua2FjcXEgbWVtLCB0MUdQUgot
ICAgICAgICAgICAgICAgIGZucSh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgICAg
IHN0b3JlY29uZHJlbHEgdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgICAgICBiaW5lcSB0
NUdQUiwgMCwgLmxvb3AKLSAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAgICAg
ICAgICAgZW5kCi0gICAgICAgIGVuZCkKLWVuZAotCi1pZiBYODZfNjQKLSAgICB3YXNtQXRvbWlj
QmluYXJ5Uk1XT3BzKF9hZGQsIEFkZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGIgdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRoIHQwR1BS
LCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KSBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZHEgdDBHUFIsIG1lbSBlbmQpCi0g
ICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfc3ViLCBTdWIsCi0gICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJiIHQwR1BSLCBtZW0gZW5k
LAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4
Y2hnc3ViaCB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1YmkgdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJxIHQwR1BS
LCBtZW0gZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hjaGcsIFhjaGcsCi0gICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdiIHQw
R1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKSBhdG9taWN4Y2hnaCB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2kgdDBHUFIsIG1lbSBlbmQsCi0gICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdxIHQw
R1BSLCBtZW0gZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYW5k
LCBBbmQsCi0gICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgIGFuZGkgdDVH
UFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAg
ICAgICAgICAgYW5kcSB0NUdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNC
aW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfb3IsIE9yLAotICAgICAgICBtYWNybyh0NUdQUiwgdDJH
UFIpCi0gICAgICAgICAgICBvcmkgdDVHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAg
bWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgb3JxIHQ1R1BSLCB0MkdQUgotICAgICAg
ICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwK
LSAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgeG9yaSB0NUdQUiwgdDJH
UFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAg
ICB4b3JxIHQ1R1BSLCB0MkdQUgotICAgICAgICBlbmQpCi1lbHNpZiBBUk02NEUKLSAgICB3YXNt
QXRvbWljQmluYXJ5Uk1XT3BzKF9hZGQsIEFkZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwg
dDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGIgdDBHUFIsIG1lbSwgdDBHUFIgZW5k
LAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4
Y2hnYWRkaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0sIHQwR1BSIGVu
ZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWlj
eGNoZ2FkZHEgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdP
cHMoX3N1YiwgU3ViLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKQotICAgICAgICAgICAgbmVncSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGIg
dDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgbmVncSB0MEdQUgotICAgICAgICAg
ICAgYXRvbWljeGNoZ2FkZGggdDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kLAotICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgbmVn
cSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1lbSwgdDBHUFIKLSAg
ICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KQotICAgICAgICAgICAgbmVncSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2FkZHEgdDBH
UFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMo
X2FuZCwgQW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KQotICAgICAgICAgICAgbm90cSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFyYiB0
MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBub3RxIHQwR1BSCi0gICAgICAgICAg
ICBhdG9taWN4Y2hnY2xlYXJoIHQwR1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCwKLSAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIG5v
dHEgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcmkgdDBHUFIsIG1lbSwgdDBHUFIK
LSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKQotICAgICAgICAgICAgbm90cSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFy
cSB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJN
V09wcyhfb3IsIE9yLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKSBhdG9taWN4Y2hnb3JiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29yaCB0MEdQUiwgbWVt
LCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFH
UFIpIGF0b21pY3hjaGdvcmkgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnb3JxIHQwR1BSLCBtZW0s
IHQwR1BSIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94b3IsIFhvciwKLSAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmIg
dDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwg
dDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9yaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3Jp
IHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcnEgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQotICAg
IHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hjaGcsIFhjaGcsCi0gICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdiIHQwR1BSLCBtZW0sIHQwR1BS
IGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRv
bWljeGNoZ2ggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQs
Ci0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hj
aGdxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKLWVsc2UKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1X
T3BzV2l0aFdlYWtDQVMoX2FkZCwgQWRkLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQy
R1BSKQotICAgICAgICAgICAgYWRkaSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwK
LSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIGFkZHEgdDBH
UFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09w
c1dpdGhXZWFrQ0FTKF9zdWIsIFN1YiwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQ
UikKLSAgICAgICAgICAgIHN1YmkgdDFHUFIsIHQwR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0g
ICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBzdWJxIHQxR1BS
LCB0MEdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNX
aXRoV2Vha0NBUyhfeGNoZywgWGNoZywKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQ
UikKLSAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAg
bWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BS
Ci0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2Fu
ZCwgQW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAg
YW5kaSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBH
UFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIGFuZHEgdDBHUFIsIHQxR1BSLCB0MkdQUgot
ICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9vciwg
T3IsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBvcmkg
dDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0
MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBvcnEgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAg
ICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwK
LSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIHhvcmkgdDBH
UFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQ
UiwgdDJHUFIpCi0gICAgICAgICAgICB4b3JxIHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAg
ZW5kKQotZW5kCi0KLW1hY3JvIHdhc21BdG9taWNDb21wYXJlRXhjaGFuZ2VPcHMobG93ZXJDYXNl
T3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmksIGZucSkKLSAgICB3YXNtT3Ao
aTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzgldXBw
ZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVy
LCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShj
dHgsIG1fZXhwZWN0ZWQsIHQwKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAg
ICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQoY3R4LCB0MywgdDEs
IDEpCi0gICAgICAgIGZuYih0MCwgdDIsIFt0M10sIHQ1LCB0MSkKLSAgICAgICAgYW5kcSAweGZm
LCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kOFRvNjQKLSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBi
cWJlcSB0MCwgMHhmZiwgLm9rIGVuZCkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVu
ZCkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcxNiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21J
NjRBdG9taWNSbXcxNiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9h
ZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkK
LSAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCi0gICAgICAgIG1sb2FkcShjdHgs
IG1fdmFsdWUsIHQyKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09m
ZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgMikKLSAgICAgICAgZm5oKHQwLCB0
MiwgW3QzXSwgdDUsIHQxKQotICAgICAgICBhbmRxIDB4ZmZmZiwgdDAgIyBGSVhNRTogWmVyb0V4
dGVuZDE2VG82NAotICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmZmYsIC5v
ayBlbmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi0gICAgd2FzbU9wKGk2
NF9hdG9taWNfcm13MzIlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MzIldXBw
ZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVy
LCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShj
dHgsIG1fZXhwZWN0ZWQsIHQwKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAg
ICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50
Q2hlY2soY3R4LCB0MywgdDEsIDQpCi0gICAgICAgIGZuaSh0MCwgdDIsIFt0M10sIHQ1LCB0MSkK
LSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZmZmZmZmZiwgLm9rIGVuZCkK
LSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAgICB3YXNtT3AoaTY0X2F0b21p
Y19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0b21pY1JtdyV1cHBlckNhc2VPcGNvZGUl
LCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAg
IHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVk
LCB0MCkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAgICAgIGVtaXRDaGVj
a0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMs
IHQxLCA4KQotICAgICAgICBmbnEodDAsIHQyLCBbdDNdLCB0NSwgdDEpCi0gICAgICAgIHJldHVy
bnEoY3R4LCB0MCkKLSAgICBlbmQpCi1lbmQKLQotIyB0MEdQUiA9PiBleHBlY3RlZCwgdDJHUFIg
PT4gdmFsdWUsIG1lbSA9PiBtZW1vcnkgcmVmZXJlbmNlCi13YXNtQXRvbWljQ29tcGFyZUV4Y2hh
bmdlT3BzKF9jbXB4Y2hnLCBDbXB4Y2hnLAotICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0
NUdQUiwgdDFHUFIpCi0gICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKLSAgICAgICAgICAgIGJx
YSB0MEdQUiAsIDB4ZmYsIC5mYWlsCi0gICAgICAgICAgICBhdG9taWN3ZWFrY2FzYiB0MEdQUiwg
dDJHUFIsIG1lbQotICAgICAgICAgICAgam1wIC5kb25lCi0gICAgICAgIC5mYWlsOgotICAgICAg
ICAgICAgYXRvbWljbG9hZGIgbWVtLCB0MEdQUgotICAgICAgICAuZG9uZToKLSAgICAgICAgZWxz
ZQotICAgICAgICAubG9vcDoKLSAgICAgICAgICAgIGxvYWRsaW5rYWNxYiBtZW0sIHQxR1BSCi0g
ICAgICAgICAgICBicW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCi0gICAgICAgICAgICBzdG9yZWNv
bmRyZWxiIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9u
ZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAgICAgIC5mYWlsOgotICAgICAgICAgICAgc3Rv
cmVjb25kcmVsYiB0NUdQUiwgdDFHUFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwg
LmRvbmUKLSAgICAgICAgICAgIGptcCAubG9vcAotICAgICAgICAuZG9uZToKLSAgICAgICAgICAg
IG1vdmUgdDFHUFIsIHQwR1BSCi0gICAgICAgIGVuZAotICAgIGVuZCwKLSAgICBtYWNybyh0MEdQ
UiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BSKQotICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRF
Ci0gICAgICAgICAgICBicWEgdDBHUFIsIDB4ZmZmZiwgLmZhaWwKLSAgICAgICAgICAgIGF0b21p
Y3dlYWtjYXNoIHQwR1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICBqbXAgLmRvbmUKLSAgICAg
ICAgLmZhaWw6Ci0gICAgICAgICAgICBhdG9taWNsb2FkaCBtZW0sIHQwR1BSCi0gICAgICAgIC5k
b25lOgotICAgICAgICBlbHNlCi0gICAgICAgIC5sb29wOgotICAgICAgICAgICAgbG9hZGxpbmth
Y3FoIG1lbSwgdDFHUFIKLSAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKLSAg
ICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgIGJp
ZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBqbXAgLmxvb3AKLSAgICAgICAgLmZhaWw6
Ci0gICAgICAgICAgICBzdG9yZWNvbmRyZWxoIHQ1R1BSLCB0MUdQUiwgbWVtCi0gICAgICAgICAg
ICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAgICAgIC5k
b25lOgotICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAgICAgICAgZW5kCi0gICAgZW5k
LAotICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgIGlm
IFg4Nl82NCBvciBBUk02NEUKLSAgICAgICAgICAgIGJxYSB0MEdQUiwgMHhmZmZmZmZmZiwgLmZh
aWwKLSAgICAgICAgICAgIGF0b21pY3dlYWtjYXNpIHQwR1BSLCB0MkdQUiwgbWVtCi0gICAgICAg
ICAgICBqbXAgLmRvbmUKLSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAgICBhdG9taWNsb2FkaSBt
ZW0sIHQwR1BSCi0gICAgICAgIC5kb25lOgotICAgICAgICBlbHNlCi0gICAgICAgIC5sb29wOgot
ICAgICAgICAgICAgbG9hZGxpbmthY3FpIG1lbSwgdDFHUFIKLSAgICAgICAgICAgIGJxbmVxIHQw
R1BSLCB0MUdQUiwgLmZhaWwKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbGkgdDVHUFIsIHQyR1BS
LCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBqbXAg
Lmxvb3AKLSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0
MUdQUiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAg
am1wIC5sb29wCi0gICAgICAgIC5kb25lOgotICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIK
LSAgICAgICAgZW5kCi0gICAgZW5kLAotICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQ
UiwgdDFHUFIpCi0gICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKLSAgICAgICAgICAgIGF0b21p
Y3dlYWtjYXNxIHQwR1BSLCB0MkdQUiwgbWVtCi0gICAgICAgIGVsc2UKLSAgICAgICAgLmxvb3A6
Ci0gICAgICAgICAgICBsb2FkbGlua2FjcXEgbWVtLCB0MUdQUgotICAgICAgICAgICAgYnFuZXEg
dDBHUFIsIHQxR1BSLCAuZmFpbAotICAgICAgICAgICAgc3RvcmVjb25kcmVscSB0NUdQUiwgdDJH
UFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGpt
cCAubG9vcAotICAgICAgICAuZmFpbDoKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbHEgdDVHUFIs
IHQxR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAg
ICBqbXAgLmxvb3AKLSAgICAgICAgLmRvbmU6Ci0gICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQ
UgotICAgICAgICBlbmQKLSAgICBlbmQpCi0KIHdhc21PcChhdG9taWNfZmVuY2UsIFdhc21Ecm9w
S2VlcCwgbWFjcm8oY3R4KQogICAgIGZlbmNlCiAgICAgZGlzcGF0Y2goY3R4KQpAQCAtMjg0Niw5
ICsxNzc2LDE0IEBAIG1hY3JvIGNvbW1vbkNhdGNoSW1wbChjdHgsIHN0b3JlV2FzbUluc3RhbmNl
KQogICAgIGNvbnZlcnRDYWxsZWVUb1ZNKHQzKQogICAgIHJlc3RvcmVDYWxsZWVTYXZlc0Zyb21W
TUVudHJ5RnJhbWVDYWxsZWVTYXZlc0J1ZmZlcih0MywgdDApCiAKLSAgICBsb2FkcCBWTTo6Y2Fs
bGVlRm9yV2FzbUNhdGNoW3QzXSwgd3MxCi0gICAgc3RvcmVwIDAsIFZNOjpjYWxsZWVGb3JXYXNt
Q2F0Y2hbdDNdCi0gICAgc3RvcmVwIHdzMSwgQ2FsbGVlW2Nmcl0KKyAgICBsb2FkcCBWTTo6Y2Fs
bGVlRm9yV2FzbUNhdGNoICsgUGF5bG9hZE9mZnNldFt0M10sIHdzMQorICAgIHN0b3JlcCAwLCBW
TTo6Y2FsbGVlRm9yV2FzbUNhdGNoICsgUGF5bG9hZE9mZnNldFt0M10KKyAgICBzdG9yZXAgd3Mx
LCBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0KK2lmIG5vdCBKU1ZBTFVFNjQKKyAgICBsb2Fk
aSBWTTo6Y2FsbGVlRm9yV2FzbUNhdGNoICsgVGFnT2Zmc2V0W3QzXSwgd3MxCisgICAgc3RvcmVp
IEVtcHR5VmFsdWVUYWcsIFZNOjpjYWxsZWVGb3JXYXNtQ2F0Y2ggKyBUYWdPZmZzZXRbdDNdCisg
ICAgc3RvcmVpIHdzMSwgQ2FsbGVlICsgVGFnT2Zmc2V0W2Nmcl0KK2VuZAogCiAgICAgbG9hZHAg
Vk06OmNhbGxGcmFtZUZvckNhdGNoW3QzXSwgY2ZyCiAgICAgc3RvcmVwIDAsIFZNOjpjYWxsRnJh
bWVGb3JDYXRjaFt0M10KQEAgLTI4ODcsOCArMTgyMiwxMyBAQCBtYWNybyBjYXRjaEltcGwoY3R4
LCBzdG9yZVdhc21JbnN0YW5jZSkKIAogLmNvcHlMb29wOgogICAgIGJ0aXogdDMsIC5kb25lCitp
ZiBKU1ZBTFVFNjQKICAgICBsb2FkcSBbdDFdLCB0NgogICAgIHN0b3JlcSB0NiwgW3QyXQorZWxz
ZQorICAgIGxvYWQyaWEgW3QxXSwgdDUsIHQ2CisgICAgc3RvcmUyaWEgdDUsIHQ2LCBbdDJdCitl
bmQKICAgICBzdWJpIDEsIHQzCiAgICAgIyBGSVhNRTogVXNlIGFybSBzdG9yZS1hZGQvc3ViIGlu
c3RydWN0aW9ucyBpbiB3YXNtIExMSW50IGNhdGNoCiAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjEwCkBAIC0yOTE2LDMgKzE4NTYsMTAgQEAgZW5kKQog
Y29tbW9uV2FzbU9wKHdhc21fY2F0Y2hfYWxsX25vX3RscywgV2FzbUNhdGNoQWxsLCBtYWNybygp
IGVuZCwgbWFjcm8oY3R4KQogICAgIGNhdGNoQWxsSW1wbChjdHgsIG1hY3JvKGluc3RhbmNlKSBl
bmQpCiBlbmQpCisKKyMgVmFsdWUtcmVwcmVzZW50YXRpb24tc3BlY2lmaWMgY29kZS4KK2lmIEpT
VkFMVUU2NAorICAgIGluY2x1ZGUgV2ViQXNzZW1ibHk2NAorZWxzZQorICAgIGluY2x1ZGUgV2Vi
QXNzZW1ibHkzMl82NAorZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvV2ViQXNzZW1ibHkzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2Vi
QXNzZW1ibHkzMl82NC5hc20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTU4MzA0ZTlmYTExMDZjZDFjNjA5NzgwOGFl
NjZlNGMxZjE0NjFkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9XZWJBc3NlbWJseTMyXzY0LmFzbQpAQCAtMCwwICsxLDExMjkgQEAKKyMgQ29weXJpZ2h0
IChDKSAyMDExLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmln
aHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgQ29uc3RhbnRzCisKK2NvbnN0IE1zd09m
ZnNldCA9IDQKK2NvbnN0IExzd09mZnNldCA9IDAKKworIyBPcGNvZGVzIHRoYXQgc2hvdWxkIGV2
ZW50dWFsbHkgYmUgc2hhcmVkIHdpdGggSlMgbGxpbnQKKword2FzbU9wKG1vdiwgV2FzbU1vdiwg
bWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX3NyYywgdDEsIHQwKQorICAgIHJldHVybjJp
KGN0eCwgdDEsIHQwKQorZW5kKQorCisjIFdhc20gc3BlY2lmaWMgYnl0ZWNvZGVzCisKK21hY3Jv
IGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KHBvaW50ZXIsIG9mZnNldCwg
c2l6ZSkKKyAgICAjIFRoaXMgbWFjcm8gdXBkYXRlcyAncG9pbnRlcicgdG8gdGFyZ2V0IGFkZHJl
c3MsIGFuZCBtYXkgdGhyYXNoICdvZmZzZXQnCitpZiBBUk12NworICAgICMgTm90IGVub3VnaCBy
ZWdpc3RlcnMgb24gYXJtIHRvIGtlZXAgdGhlIG1lbW9yeSBiYXNlIGFuZCBzaXplIGluIHBpbm5l
ZAorICAgICMgcmVnaXN0ZXJzLCBzbyBsb2FkIHRoZW0gb24gZWFjaCBhY2Nlc3MgaW5zdGVhZC4g
RklYTUU6IGltcHJvdmUgdGhpcy4KKyAgICBhZGRwcyBvZmZzZXQsIHBvaW50ZXIKKyAgICBiY3Mg
LnRocm93CisgICAgYWRkcHMgc2l6ZSAtIDEsIHBvaW50ZXIsIG9mZnNldCAjIFVzZSBvZmZzZXQg
YXMgc2NyYXRjaCByZWdpc3RlcgorICAgIGJjcyAudGhyb3cKKyAgICBicGIgb2Zmc2V0LCBXYXNt
OjpJbnN0YW5jZTo6bV9jYWNoZWRCb3VuZHNDaGVja2luZ1NpemVbd2FzbUluc3RhbmNlXSwgLmNv
bnRpbnVhdGlvbgorLnRocm93OgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5
QWNjZXNzKQorLmNvbnRpbnVhdGlvbjoKKyAgICBhZGRwIFdhc206Okluc3RhbmNlOjptX2NhY2hl
ZE1lbW9yeVt3YXNtSW5zdGFuY2VdLCBwb2ludGVyCitlbHNlCisgICAgY3Jhc2goKQorZW5kCitl
bmQKKworbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxp
Z25tZW50Q2hlY2socG9pbnRlciwgb2Zmc2V0LCBzaXplKQorICAgICMgVGhpcyBtYWNybyB1cGRh
dGVzICdwb2ludGVyJyB0byB0YXJnZXQgYWRkcmVzcywgYW5kIG1heSB0aHJhc2ggJ29mZnNldCcK
K2lmIEFSTXY3CisgICAgIyBOb3QgZW5vdWdoIHJlZ2lzdGVycyBvbiBhcm0gdG8ga2VlcCB0aGUg
bWVtb3J5IGJhc2UgYW5kIHNpemUgaW4gcGlubmVkCisgICAgIyByZWdpc3RlcnMsIHNvIGxvYWQg
dGhlbSBvbiBlYWNoIGFjY2VzcyBpbnN0ZWFkLiBGSVhNRTogaW1wcm92ZSB0aGlzLgorICAgIGFk
ZHBzIG9mZnNldCwgcG9pbnRlcgorICAgIGJjcyAudGhyb3cKKyAgICBhZGRwcyBzaXplIC0gMSwg
cG9pbnRlciwgb2Zmc2V0ICMgVXNlIG9mZnNldCBhcyBzY3JhdGNoIHJlZ2lzdGVyCisgICAgYmNz
IC50aHJvdworICAgIGJwYiBvZmZzZXQsIFdhc206Okluc3RhbmNlOjptX2NhY2hlZEJvdW5kc0No
ZWNraW5nU2l6ZVt3YXNtSW5zdGFuY2VdLCAuY29udGludWF0aW9uCisudGhyb3c6CisgICAgdGhy
b3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCisuY29udGludWF0aW9uOgorICAg
IGFkZHAgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkTWVtb3J5W3dhc21JbnN0YW5jZV0sIHBvaW50
ZXIKKyAgICBidHBueiBwb2ludGVyLCAoc2l6ZSAtIDEpLCAudGhyb3cKK2Vsc2UKKyAgICBjcmFz
aCgpCitlbmQKK2VuZAorCittYWNybyB3YXNtTG9hZE9wKG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4p
CisgICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4
LCBtX3BvaW50ZXIsIHQwKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAg
ICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQodDAsIHQxLCBzaXplKQor
ICAgICAgICBmbih0MCwgdDMsIHQyKQorICAgICAgICByZXR1cm4yaShjdHgsIHQzLCB0MikKKyAg
ICBlbmQpCitlbmQKKword2FzbUxvYWRPcChsb2FkOF91LCBXYXNtTG9hZDhVLCAxLCBtYWNybyhh
ZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkYiBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdwor
ICAgIG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGxvYWQxNl91LCBXYXNtTG9hZDE2
VSwgMiwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGggTHN3T2Zmc2V0W2Fk
ZHJdLCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdworZW5kKQord2FzbUxvYWRPcChsb2FkMzJf
dSwgV2FzbUxvYWQzMlUsIDQsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRp
IExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAgbW92ZSAwLCBkc3RNc3cKK2VuZCkKK3dhc21M
b2FkT3AobG9hZDY0X3UsIFdhc21Mb2FkNjRVLCA4LCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExz
dykKKyAgICAjIE1pZ2h0IGJlIHVuYWxpZ25lZCwgc28gY2FuJ3QgdXNlIGxvYWQyaWEKKyAgICBs
b2FkaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAgIGxvYWRpIE1zd09mZnNldFthZGRyXSwg
ZHN0TXN3CitlbmQpCisKK3dhc21Mb2FkT3AoaTMyX2xvYWQ4X3MsIFdhc21JMzJMb2FkOFMsIDEs
IG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRic2kgTHN3T2Zmc2V0W2FkZHJd
LCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdworZW5kKQord2FzbUxvYWRPcChpMzJfbG9hZDE2
X3MsIFdhc21JMzJMb2FkMTZTLCAyLCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBs
b2FkaHNpIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAgbW92ZSAwLCBkc3RNc3cKK2VuZCkK
K3dhc21Mb2FkT3AoaTY0X2xvYWQ4X3MsIFdhc21JNjRMb2FkOFMsIDEsIG1hY3JvKGFkZHIsIGRz
dE1zdywgZHN0THN3KQorICAgIGxvYWRic2kgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICBy
c2hpZnRpIGRzdExzdywgMzEsIGRzdE1zdworZW5kKQord2FzbUxvYWRPcChpNjRfbG9hZDE2X3Ms
IFdhc21JNjRMb2FkMTZTLCAyLCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2Fk
aHNpIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAgcnNoaWZ0aSBkc3RMc3csIDMxLCBkc3RN
c3cKK2VuZCkKK3dhc21Mb2FkT3AoaTY0X2xvYWQzMl9zLCBXYXNtSTY0TG9hZDMyUywgNCwgbWFj
cm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGkgTHN3T2Zmc2V0W2FkZHJdLCBkc3RM
c3cKKyAgICByc2hpZnRpIGRzdExzdywgMzEsIGRzdE1zdworZW5kKQorCittYWNybyB3YXNtU3Rv
cmVPcChuYW1lLCBzdHJ1Y3QsIHNpemUsIGZuKQorICAgIHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1h
Y3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MCkKKyAgICAgICAgd2dl
dHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVy
QWRkaW5nT2Zmc2V0KHQwLCB0MSwgc2l6ZSkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUs
IHQzLCB0MikKKyAgICAgICAgZm4odDMsIHQyLCB0MCkKKyAgICAgICAgZGlzcGF0Y2goY3R4KQor
ICAgIGVuZCkKK2VuZAorCit3YXNtU3RvcmVPcChzdG9yZTgsIFdhc21TdG9yZTgsIDEsIG1hY3Jv
KHNyY01zdywgc3JjTHN3LCBhZGRyKQorICAgIHN0b3JlYiBzcmNMc3csIExzd09mZnNldFthZGRy
XQorZW5kKQord2FzbVN0b3JlT3Aoc3RvcmUxNiwgV2FzbVN0b3JlMTYsIDIsIG1hY3JvKHNyY01z
dywgc3JjTHN3LCBhZGRyKQorICAgIHN0b3JlaCBzcmNMc3csIExzd09mZnNldFthZGRyXQorZW5k
KQord2FzbVN0b3JlT3Aoc3RvcmUzMiwgV2FzbVN0b3JlMzIsIDQsIG1hY3JvKHNyY01zdywgc3Jj
THN3LCBhZGRyKQorICAgIHN0b3JlaSBzcmNMc3csIExzd09mZnNldFthZGRyXQorZW5kKQord2Fz
bVN0b3JlT3Aoc3RvcmU2NCwgV2FzbVN0b3JlNjQsIDgsIG1hY3JvKHNyY01zdywgc3JjTHN3LCBh
ZGRyKQorICAgICMgTWlnaHQgYmUgdW5hbGlnbmVkLCBzbyBjYW4ndCB1c2Ugc3RvcmUyaWEKKyAg
ICBzdG9yZWkgc3JjTHN3LCBMc3dPZmZzZXRbYWRkcl0KKyAgICBzdG9yZWkgc3JjTXN3LCBNc3dP
ZmZzZXRbYWRkcl0KK2VuZCkKKword2FzbU9wKHJlZl9pc19udWxsLCBXYXNtUmVmSXNOdWxsLCBt
YWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fcmVmLCB0MSwgdDApICMgdDAgaXMgdW51c2Vk
CisgICAgY2llcSB0MSwgTnVsbFRhZywgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCitlbmQpCisK
K3dhc21PcChnZXRfZ2xvYmFsLCBXYXNtR2V0R2xvYmFsLCBtYWNybyhjdHgpCisgICAgbG9hZHAg
V2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0
eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbG9hZDJpYSBbdDAsIHQxLCA4XSwgdDAsIHQxCisg
ICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChzZXRfZ2xvYmFsLCBXYXNt
U2V0R2xvYmFsLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFs
c1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisg
ICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQzLCB0MikKKyAgICBzdG9yZTJpYSB0MiwgdDMsIFt0
MCwgdDEsIDhdCisgICAgZGlzcGF0Y2goY3R4KQorZW5kKQorCit3YXNtT3AoZ2V0X2dsb2JhbF9w
b3J0YWJsZV9iaW5kaW5nLCBXYXNtR2V0R2xvYmFsUG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgp
CisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAor
ICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbG9hZHAgW3QwLCB0MSwgOF0s
IHQwCisgICAgbG9hZDJpYSBbdDBdLCB0MCwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkK
K2VuZCkKKword2FzbU9wKHNldF9nbG9iYWxfcG9ydGFibGVfYmluZGluZywgV2FzbVNldEdsb2Jh
bFBvcnRhYmxlQmluZGluZywgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjpt
X2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgs
IHQxKQorICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVlLCB0MywgdDIpCisgICAgbG9hZHAgW3QwLCB0
MSwgOF0sIHQwCisgICAgc3RvcmUyaWEgdDIsIHQzLCBbdDBdCisgICAgZGlzcGF0Y2goY3R4KQor
ZW5kKQorCisjIE9wY29kZXMgdGhhdCBkb24ndCBoYXZlIHRoZSBgYjNvcGAgZW50cnkgaW4gd2Fz
bS5qc29uLiBUaGlzIHNob3VsZCBiZSBrZXB0IGluIHN5bmMKKworbWFjcm8gY2FsbERpdlJlbShm
bikKK2lmIEFSTXY3CisgICAgc3VicCBTdGFja0FsaWdubWVudCwgc3AKKyAgICBzdG9yZXAgUEMs
IFtzcF0KKyAgICBjQ2FsbDQoZm4pCisgICAgbG9hZHAgW3NwXSwgUEMKKyAgICBhZGRwIFN0YWNr
QWxpZ25tZW50LCBzcAorZWxzZQorICAgIGVycm9yCitlbmQKK2VuZAorCisjIGkzMiBiaW5hcnkg
b3BzCisKK3dhc21PcChpMzJfZGl2X3MsIFdhc21JMzJEaXZTLCBtYWNybyAoY3R4KQorICAgIG1s
b2FkaShjdHgsIG1fbGhzLCBhMCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgYTEpCisKKyAgICBi
dGl6IGExLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgYmluZXEgYTEsIC0xLCAuc2FmZQor
ICAgIGJpZXEgYTAsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC50aHJvd0ludGVnZXJPdmVyZmxvdwor
Cisuc2FmZToKKyAgICBjYWxsRGl2UmVtKF9zbG93X3BhdGhfd2FzbV9pMzJfZGl2X3MpCisgICAg
cmV0dXJuaShjdHgsIHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2Vw
dGlvbihEaXZpc2lvbkJ5WmVybykKKworLnRocm93SW50ZWdlck92ZXJmbG93OgorICAgIHRocm93
RXhjZXB0aW9uKEludGVnZXJPdmVyZmxvdykKK2VuZCkKKword2FzbU9wKGkzMl9kaXZfdSwgV2Fz
bUkzMkRpdlUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9saHMsIGEwKQorICAgIG1s
b2FkaShjdHgsIG1fcmhzLCBhMSkKKworICAgIGJ0aXogYTEsIC50aHJvd0RpdmlzaW9uQnlaZXJv
CisKKyAgICBjYWxsRGl2UmVtKF9zbG93X3BhdGhfd2FzbV9pMzJfZGl2X3UpCisgICAgcmV0dXJu
aShjdHgsIHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihE
aXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGkzMl9yZW1fcywgV2FzbUkzMlJlbVMsIG1h
Y3JvIChjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9saHMsIGEwKQorICAgIG1sb2FkaShjdHgsIG1f
cmhzLCBhMSkKKworICAgIGJ0aXogYTEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBiaW5l
cSBhMSwgLTEsIC5zYWZlCisgICAgYmluZXEgYTAsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC5zYWZl
CisKKyAgICBtb3ZlIDAsIHIwCisgICAgam1wIC5yZXR1cm4KKworLnNhZmU6CisgICAgY2FsbERp
dlJlbShfc2xvd19wYXRoX3dhc21faTMyX3JlbV9zKQorCisucmV0dXJuOgorICAgIHJldHVybmko
Y3R4LCByMCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2
aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpMzJfcmVtX3UsIFdhc21JMzJSZW1VLCBtYWNy
byAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCBhMCkKKyAgICBtbG9hZGkoY3R4LCBtX3Jo
cywgYTEpCisKKyAgICBidGl6IGExLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgY2FsbERp
dlJlbShfc2xvd19wYXRoX3dhc21faTMyX3JlbV91KQorICAgIHJldHVybmkoY3R4LCByMCkKKwor
LnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8p
CitlbmQpCisKKyMgaTY0IGJpbmFyeSBvcHMKKword2FzbU9wKGk2NF9hZGQsIFdhc21JNjRBZGQs
IG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJp
KGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBhZGRpcyB0MiwgdDAKKyAgICBhZGNpICB0MywgdDEK
KyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9zdWIsIFdhc21J
NjRTdWIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBt
bG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBzdWJpcyB0MiwgdDAKKyAgICBzYmNpICB0
MywgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9tdWws
IFdhc21JNjRNdWwsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkK
KyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtdWxpIHQyLCB0MQorICAgIG11
bGkgdDAsIHQzCisgICAgdW11bGxpIHQwLCB0MiwgdDAsIHQyCisgICAgYWRkaSB0MSwgdDIKKyAg
ICBhZGRpIHQzLCB0MgorICAgIHJldHVybjJpKGN0eCwgdDIsIHQwKQorZW5kKQorCit3YXNtT3Ao
aTY0X2Rpdl9zLCBXYXNtSTY0RGl2UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9s
aHMsIGExLCBhMCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIGEzLCBhMikKKworICAgIGJ0aW56
IGEzLCAubm9uWmVyb0Rpdmlzb3IKKyAgICBidGl6IGEyLCAudGhyb3dEaXZpc2lvbkJ5WmVybwor
Cisubm9uWmVyb0Rpdmlzb3I6CisgICAgYmluZXEgYTMsIC0xLCAuc2FmZQorICAgIGJpbmVxIGEy
LCAtMSwgLnNhZmUKKyAgICBiaW5lcSBhMSwgY29uc3RleHByIElOVDMyX01JTiwgLnNhZmUKKyAg
ICBidGl6IGEwLCAudGhyb3dJbnRlZ2VyT3ZlcmZsb3cKKworLnNhZmU6CisgICAgY2FsbERpdlJl
bShfc2xvd19wYXRoX3dhc21faTY0X2Rpdl9zKQorICAgIHJldHVybjJpKGN0eCwgcjEsIHIwKQor
CisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVy
bykKKworLnRocm93SW50ZWdlck92ZXJmbG93OgorICAgIHRocm93RXhjZXB0aW9uKEludGVnZXJP
dmVyZmxvdykKK2VuZCkKKword2FzbU9wKGk2NF9kaXZfdSwgV2FzbUk2NERpdlUsIG1hY3JvIChj
dHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCBhMSwgYTApCisgICAgbWxvYWQyaShjdHgsIG1f
cmhzLCBhMywgYTIpCisKKyAgICBidGlueiBhMywgLm5vblplcm9EaXZpc29yCisgICAgYnRpeiBh
MiwgLnRocm93RGl2aXNpb25CeVplcm8KKworLm5vblplcm9EaXZpc29yOgorICAgIGNhbGxEaXZS
ZW0oX3Nsb3dfcGF0aF93YXNtX2k2NF9kaXZfdSkKKyAgICByZXR1cm4yaShjdHgsIHIxLCByMCkK
KworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVpl
cm8pCitlbmQpCisKK3dhc21PcChpNjRfcmVtX3MsIFdhc21JNjRSZW1TLCBtYWNybyAoY3R4KQor
ICAgIG1sb2FkMmkoY3R4LCBtX2xocywgYTEsIGEwKQorICAgIG1sb2FkMmkoY3R4LCBtX3Jocywg
YTMsIGEyKQorCisgICAgYnRpbnogYTMsIC5ub25aZXJvRGl2aXNvcgorICAgIGJ0aXogYTIsIC50
aHJvd0RpdmlzaW9uQnlaZXJvCisKKy5ub25aZXJvRGl2aXNvcjoKKyAgICBiaW5lcSBhMywgLTEs
IC5zYWZlCisgICAgYmluZXEgYTIsIC0xLCAuc2FmZQorICAgIGJpbmVxIGExLCBjb25zdGV4cHIg
SU5UMzJfTUlOLCAuc2FmZQorICAgIGJ0aW56IGEwLCAuc2FmZQorCisgICAgbW92ZSAwLCByMQor
ICAgIG1vdmUgMCwgcjAKKyAgICBqbXAgLnJldHVybgorCisuc2FmZToKKyAgICBjYWxsRGl2UmVt
KF9zbG93X3BhdGhfd2FzbV9pNjRfcmVtX3MpCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4
LCByMSwgcjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERp
dmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTY0X3JlbV91LCBXYXNtSTY0UmVtVSwgbWFj
cm8gKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIGExLCBhMCkKKyAgICBtbG9hZDJpKGN0
eCwgbV9yaHMsIGEzLCBhMikKKworICAgIGJ0aW56IGEzLCAubm9uWmVyb0Rpdmlzb3IKKyAgICBi
dGl6IGEyLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisubm9uWmVyb0Rpdmlzb3I6CisgICAgY2Fs
bERpdlJlbShfc2xvd19wYXRoX3dhc21faTY0X3JlbV91KQorICAgIHJldHVybjJpKGN0eCwgcjEs
IHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lv
bkJ5WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9hbmQsIFdhc21JNjRBbmQsIG1hY3JvKGN0eCkK
KyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMs
IHQzLCB0MikKKyAgICBhbmRpIHQyLCB0MAorICAgIGFuZGkgdDMsIHQxCisgICAgcmV0dXJuMmko
Y3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfb3IsIFdhc21JNjRPciwgbWFjcm8oY3R4
KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3Jo
cywgdDMsIHQyKQorICAgIG9yaSB0MiwgdDAKKyAgICBvcmkgdDMsIHQxCisgICAgcmV0dXJuMmko
Y3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfeG9yLCBXYXNtSTY0WG9yLCBtYWNybyhj
dHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1f
cmhzLCB0MywgdDIpCisgICAgeG9yaSB0MiwgdDAKKyAgICB4b3JpIHQzLCB0MQorICAgIHJldHVy
bjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3NobCwgV2FzbUk2NFNobCwgbWFj
cm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkaShjdHgs
IG1fcmhzLCB0MikKKworICAgIGFuZGkgMHgzZiwgdDIKKyAgICBidGl6IHQyLCAucmV0dXJuCisg
ICAgYmliIHQyLCAzMiwgLmxlc3NUaGFuMzIKKworICAgIHN1YmkgMzIsIHQyCisgICAgbHNoaWZ0
aSB0MCwgdDIsIHQxCisgICAgbW92ZSAwLCB0MAorICAgIGptcCAucmV0dXJuCisKKy5sZXNzVGhh
bjMyOgorICAgIGxzaGlmdGkgdDIsIHQxCisgICAgbW92ZSAzMiwgdDMKKyAgICBzdWJpIHQyLCB0
MworICAgIHVyc2hpZnRpIHQwLCB0MywgdDMKKyAgICBvcmkgdDMsIHQxCisgICAgbHNoaWZ0aSB0
MiwgdDAKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2Fz
bU9wKGk2NF9zaHJfdSwgV2FzbUk2NFNoclUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwg
bV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDIpCisKKyAgICBhbmRpIDB4
M2YsIHQyCisgICAgYnRpeiB0MiwgLnJldHVybgorICAgIGJpYiB0MiwgMzIsIC5sZXNzVGhhbjMy
CisKKyAgICBzdWJpIDMyLCB0MgorICAgIHVyc2hpZnRpIHQxLCB0MiwgdDAKKyAgICBtb3ZlIDAs
IHQxCisgICAgam1wIC5yZXR1cm4KKworLmxlc3NUaGFuMzI6CisgICAgdXJzaGlmdGkgdDIsIHQw
CisgICAgbW92ZSAzMiwgdDMKKyAgICBzdWJpIHQyLCB0MworICAgIGxzaGlmdGkgdDEsIHQzLCB0
MworICAgIG9yaSB0MywgdDAKKyAgICB1cnNoaWZ0aSB0MiwgdDEKKworLnJldHVybjoKKyAgICBy
ZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9zaHJfcywgV2FzbUk2NFNo
clMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9h
ZGkoY3R4LCBtX3JocywgdDIpCisKKyAgICBhbmRpIDB4M2YsIHQyCisgICAgYnRpeiB0MiwgLnJl
dHVybgorICAgIGJpYiB0MiwgMzIsIC5sZXNzVGhhbjMyCisKKyAgICBzdWJpIDMyLCB0MgorICAg
IHJzaGlmdGkgdDEsIHQyLCB0MAorICAgIHJzaGlmdGkgMzEsIHQxCisgICAgam1wIC5yZXR1cm4K
KworLmxlc3NUaGFuMzI6CisgICAgdXJzaGlmdGkgdDIsIHQwCisgICAgbW92ZSAzMiwgdDMKKyAg
ICBzdWJpIHQyLCB0MworICAgIGxzaGlmdGkgdDEsIHQzLCB0MworICAgIG9yaSB0MywgdDAKKyAg
ICByc2hpZnRpIHQyLCB0MQorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQor
ZW5kKQorCit3YXNtT3AoaTY0X3JvdHIsIFdhc21JNjRSb3RyLCBtYWNybyhjdHgpCisgICAgbWxv
YWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQyKQorCisg
ICAgYW5kaSB0MiwgMHgyMCwgdDMKKyAgICBidGl6IHQzLCAubm9Td2FwCisKKyAgICBtb3ZlIHQw
LCB0MworICAgIG1vdmUgdDEsIHQwCisgICAgbW92ZSB0MywgdDEKKworLm5vU3dhcDoKKyAgICBh
bmRpIDB4MWYsIHQyCisgICAgYnRpeiB0MiwgLnJldHVybgorCisgICAgbW92ZSAzMiwgdDUKKyAg
ICBzdWJpIHQyLCB0NQorICAgIGxzaGlmdGkgdDAsIHQ1LCB0MworICAgIGxzaGlmdGkgdDEsIHQ1
LCB0NQorICAgIHVyc2hpZnRpIHQyLCB0MAorICAgIHVyc2hpZnRpIHQyLCB0MQorICAgIG9yaSB0
NSwgdDAKKyAgICBvcmkgdDMsIHQxCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCB0MSwg
dDApCitlbmQpCisKK3dhc21PcChpNjRfcm90bCwgV2FzbUk2NFJvdGwsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDIp
CisKKyAgICBhbmRpIHQyLCAweDIwLCB0MworICAgIGJ0aXogdDMsIC5ub1N3YXAKKworICAgIG1v
dmUgdDAsIHQzCisgICAgbW92ZSB0MSwgdDAKKyAgICBtb3ZlIHQzLCB0MQorCisubm9Td2FwOgor
ICAgIGFuZGkgMHgxZiwgdDIKKyAgICBidGl6IHQyLCAucmV0dXJuCisKKyAgICBtb3ZlIDMyLCB0
NQorICAgIHN1YmkgdDIsIHQ1CisgICAgdXJzaGlmdGkgdDAsIHQ1LCB0MworICAgIHVyc2hpZnRp
IHQxLCB0NSwgdDUKKyAgICBsc2hpZnRpIHQyLCB0MAorICAgIGxzaGlmdGkgdDIsIHQxCisgICAg
b3JpIHQ1LCB0MAorICAgIG9yaSB0MywgdDEKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgs
IHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9lcSwgV2FzbUk2NEVxLCBtYWNybyhjdHgpCisg
ICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0
MywgdDIpCisgICAgbW92ZSAwLCB0NgorICAgIGJpbmVxIHQxLCB0MywgLnJldHVybgorICAgIGNp
ZXEgdDAsIHQyLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dh
c21PcChpNjRfbmUsIFdhc21JNjROZSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xo
cywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwg
dDYKKyAgICBiaW5lcSB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaW5lcSB0MCwgdDIsIHQ2CisucmV0
dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9sdF9zLCBXYXNt
STY0THRTLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAg
bWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAgIGJpbHQgdDEs
IHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpZ3QgdDEsIHQzLCAucmV0dXJuCisg
ICAgY2liIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmko
Y3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9sZV9zLCBXYXNtSTY0TGVTLCBtYWNybyhjdHgp
CisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhz
LCB0MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAgIGJpbHQgdDEsIHQzLCAucmV0dXJuCisgICAg
bW92ZSAwLCB0NgorICAgIGJpZ3QgdDEsIHQzLCAucmV0dXJuCisgICAgY2liZXEgdDAsIHQyLCB0
NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQor
Cit3YXNtT3AoaTY0X2x0X3UsIFdhc21JNjRMdFUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0
eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBt
b3ZlIDEsIHQ2CisgICAgYmliIHQxLCB0MywgLnJldHVybgorICAgIG1vdmUgMCwgdDYKKyAgICBi
aWEgdDEsIHQzLCAucmV0dXJuCisgICAgY2liIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2Cisu
cmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9sZV91LCBX
YXNtSTY0TGVVLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisg
ICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAgIGJpYiB0
MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAgYmlhIHQxLCB0MywgLnJldHVybgor
ICAgIGNpYmVxIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgorICAgIHJldHVy
bmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9ndF9zLCBXYXNtSTY0R3RTLCBtYWNybyhj
dHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1f
cmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAgIGJpZ3QgdDEsIHQzLCAucmV0dXJuCisg
ICAgbW92ZSAwLCB0NgorICAgIGJpbHQgdDEsIHQzLCAucmV0dXJuCisgICAgY2lhIHQwLCB0Miwg
dDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkK
Kword2FzbU9wKGk2NF9nZV9zLCBXYXNtSTY0R2VTLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShj
dHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAg
bW92ZSAxLCB0NgorICAgIGJpZ3QgdDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAg
IGJpbHQgdDEsIHQzLCAucmV0dXJuCisgICAgY2lhZXEgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwg
dDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2d0
X3UsIFdhc21JNjRHdFUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0
MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAg
YmlhIHQxLCB0MywgLnJldHVybgorICAgIG1vdmUgMCwgdDYKKyAgICBiaWIgdDEsIHQzLCAucmV0
dXJuCisgICAgY2lhIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgorICAgIHJl
dHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9nZV91LCBXYXNtSTY0R2VVLCBtYWNy
byhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgs
IG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAwLCB0NgorICAgIGJpYiB0MSwgdDMsIC5yZXR1cm4K
KyAgICBtb3ZlIDEsIHQ2CisgICAgYmlhIHQxLCB0MywgLnJldHVybgorICAgIGNpYWVxIHQwLCB0
MiwgdDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2Vu
ZCkKKworIyBpNjQgdW5hcnkgb3BzCisKK3dhc21PcChpNjRfY3R6LCBXYXNtSTY0Q3R6LCBtYWNy
byAoY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIHQxLCB0MCkKKyAgICBidGl6IHQw
LCAudG9wCisKKyAgICB0emNudGkgdDAsIHQwCisgICAgam1wIC5yZXR1cm4KKworLnRvcDoKKyAg
ICB0emNudGkgdDEsIHQwCisgICAgYWRkaSAzMiwgdDAKKworLnJldHVybjoKKyAgICByZXR1cm4y
aShjdHgsIDAsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X2NseiwgV2FzbUk2NENseiwgbWFjcm8o
Y3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIHQxLCB0MCkKKyAgICBidGl6IHQxLCAu
Ym90dG9tCisKKyAgICBsemNudGkgdDEsIHQwCisgICAgam1wIC5yZXR1cm4KKworLmJvdHRvbToK
KyAgICBsemNudGkgdDAsIHQwCisgICAgYWRkaSAzMiwgdDAKKworLnJldHVybjoKKyAgICByZXR1
cm4yaShjdHgsIDAsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3BvcGNudCwgV2FzbUk2NFBvcGNu
dCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9vcGVyYW5kLCBhMywgYTIpCisgICAg
cHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIG1vdmUgUEMsIGEwCisgICAgY0NhbGwyKF9zbG93
X3BhdGhfd2FzbV9wb3Bjb3VudGxsKQorICAgIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQorICAg
IHJldHVybjJpKGN0eCwgMCwgcjEpCitlbmQpCisKK3dhc21PcChpNjRfZXF6LCBXYXNtSTY0RXF6
LCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fb3BlcmFuZCwgdDEsIHQwKQorICAgIG1v
dmUgMCwgdDIKKyAgICBidGlueiB0MSwgLnJldHVybgorICAgIGNpZXEgdDAsIDAsIHQyCisucmV0
dXJuOgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKworIyBmNjQgYmluYXJ5IG9wcworCit3
YXNtT3AoZjY0X2NvcHlzaWduLCBXYXNtRjY0Q29weXNpZ24sIG1hY3JvKGN0eCkKKyAgICBtbG9h
ZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0Mikg
IyB0MiB1bnVzZWQKKworICAgIGFuZGkgMHg3ZmZmZmZmZiwgdDEKKyAgICBhbmRpIDB4ODAwMDAw
MDAsIHQzCisgICAgb3JpIHQzLCB0MQorCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQp
CisKKyMgVHlwZSBjb252ZXJzaW9uIG9wcworCit3YXNtT3AoaTY0X2V4dGVuZF9zX2kzMiwgV2Fz
bUk2NEV4dGVuZFNJMzIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQw
KQorICAgIHJzaGlmdGkgdDAsIDMxLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5k
KQorCit3YXNtT3AoaTY0X2V4dGVuZF91X2kzMiwgV2FzbUk2NEV4dGVuZFVJMzIsIG1hY3JvKGN0
eCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHJldHVybjJpKGN0eCwgMCwg
dDApCitlbmQpCisKK3dhc21PcChmNjRfcmVpbnRlcnByZXRfaTY0LCBXYXNtRjY0UmVpbnRlcnBy
ZXRJNjQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9vcGVyYW5kLCB0MSwgdDApCisg
ICAgZmlpMmQgdDAsIHQxLCBmdDAKKyAgICByZXR1cm5kKGN0eCwgZnQwKQorZW5kKQorCit3YXNt
T3AoaTY0X3JlaW50ZXJwcmV0X2Y2NCwgV2FzbUk2NFJlaW50ZXJwcmV0RjY0LCBtYWNybyhjdHgp
CisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisgICAgZmQyaWkgZnQwLCB0MCwgdDEK
KyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGkzMl90cnVuY19zX2Y2
NCwgV2FzbUkzMlRydW5jU0Y2NCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJh
bmQsIGZ0MCkKKworICAgIG1vdmVpaSAweGMxZTAwMDAwMDAyMDAwMDAsIHQxLCB0MCAjIElOVDMy
X01JTiAtIDEuMAorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEs
IC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlaWkgMHg0MWUwMDAwMDAwMDAwMDAwLCB0MSwg
dDAgIyAtSU5UMzJfTUlOCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAs
IGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZDJpcyBmdDAsIHQwCisgICAg
cmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlv
bihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3VfZjY0LCBXYXNt
STMyVHJ1bmNVRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQw
KQorCisgICAgbW92ZWlpIDB4YmZmMDAwMDAwMDAwMDAwMCwgdDEsIHQwICMgLTEuMAorICAgIGZp
aTJkIHQwLCB0MSwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5j
CisKKyAgICBtb3ZlaWkgMHg0MWYwMDAwMDAwMDAwMDAwLCB0MSwgdDAgIyBJTlQzMl9NSU4gKiAt
Mi4wCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9m
Qm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAKKyAgICByZXR1cm5pKGN0eCwg
dDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRz
VHJ1bmMpCitlbmQpCisKK3Nsb3dXYXNtT3AoaTY0X3RydW5jX3NfZjMyKQorc2xvd1dhc21PcChp
NjRfdHJ1bmNfdV9mMzIpCitzbG93V2FzbU9wKGk2NF90cnVuY19zX2Y2NCkKK3Nsb3dXYXNtT3Ao
aTY0X3RydW5jX3VfZjY0KQorCit3YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfcywgV2FzbUkzMlRy
dW5jU2F0RjY0UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkK
KworICAgIG1vdmVpaSAweGMxZTAwMDAwMDAyMDAwMDAsIHQxLCB0MCAjIElOVDMyX01JTiAtIDEu
MAorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJv
dW5kc1RydW5jU2F0TWluT3JOYU4KKworICAgIG1vdmVpaSAweDQxZTAwMDAwMDAwMDAwMDAsIHQx
LCB0MCAjIC1JTlQzMl9NSU4KKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0
MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisgICAgdHJ1bmNhdGVkMmlzIGZ0MCwg
dDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU46
CisgICAgYmRlcSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKyAgICBtb3ZlIDAs
IHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKKyAg
ICBtb3ZlIChjb25zdGV4cHIgSU5UMzJfTUFYKSwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisK
Ky5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQzMl9NSU4p
LCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGkzMl90cnVuY19zYXRf
ZjY0X3UsIFdhc21JMzJUcnVuY1NhdEY2NFUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwg
bV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlaWkgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MSwgdDAg
IyAtMS4wCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91
dE9mQm91bmRzVHJ1bmNTYXRNaW4KKworICAgIG1vdmVpaSAweDQxZjAwMDAwMDAwMDAwMDAsIHQx
LCB0MCAjIElOVDMyX01JTiAqIC0yLjAKKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkZ3Rl
cXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisgICAgdHJ1bmNhdGVkMmkg
ZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46
CisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1
bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIFVJTlQzMl9NQVgpLCB0MAorICAgIHJldHVy
bmkoY3R4LCB0MCkKK2VuZCkKKworc2xvd1dhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl9zKQorc2xv
d1dhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl91KQorc2xvd1dhc21PcChpNjRfdHJ1bmNfc2F0X2Y2
NF9zKQorc2xvd1dhc21PcChpNjRfdHJ1bmNfc2F0X2Y2NF91KQorCisjIEV4dGVuZCBvcHMKKwor
d2FzbU9wKGk2NF9leHRlbmQ4X3MsIFdhc21JNjRFeHRlbmQ4UywgbWFjcm8oY3R4KQorICAgIG1s
b2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgc3hiMmkgdDAsIHQwCisgICAgcnNoaWZ0aSB0
MCwgMzEsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRf
ZXh0ZW5kMTZfcywgV2FzbUk2NEV4dGVuZDE2UywgbWFjcm8oY3R4KQorICAgIG1sb2FkaShjdHgs
IG1fb3BlcmFuZCwgdDApCisgICAgc3hoMmkgdDAsIHQwCisgICAgcnNoaWZ0aSB0MCwgMzEsIHQx
CisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfZXh0ZW5kMzJf
cywgV2FzbUk2NEV4dGVuZDE2UywgbWFjcm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFu
ZCwgdDApCisgICAgcnNoaWZ0aSB0MCwgMzEsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDAp
CitlbmQpCisKKyMgQXRvbWljcworCittYWNybyB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKGxvd2Vy
Q2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIsIGZuaCwgZm5pLCBmbjJpKQorICAgIHdh
c21PcChpNjRfYXRvbWljX3JtdzglbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13
OCV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3Bv
aW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxv
YWRpKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVy
QWRkaW5nT2Zmc2V0KHQzLCB0NSwgMSkKKyAgICAgICAgZm5iKHQwLCBbdDNdLCB0MiwgdDUsIHQ2
KQorICAgICAgICBhbmRpIDB4ZmYsIHQ2ICMgRklYTUU6IFplcm9FeHRlbmQ4VG82NAorICAgICAg
ICBhc3NlcnQobWFjcm8ob2spIGJpYmVxIHQ2LCAweGZmLCAub2sgZW5kKQorICAgICAgICByZXR1
cm4yaShjdHgsIDAsIHQ2KQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcxNiVs
b3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXcxNiV1cHBlckNhc2VPcGNvZGUlVSwg
bWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3
Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV92YWx1ZSwgdDAp
CisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdu
bWVudENoZWNrKHQzLCB0NSwgMikKKyAgICAgICAgZm5oKHQwLCBbdDNdLCB0MiwgdDUsIHQ2KQor
ICAgICAgICBhbmRpIDB4ZmZmZiwgdDYgIyBGSVhNRTogWmVyb0V4dGVuZDE2VG82NAorICAgICAg
ICBhc3NlcnQobWFjcm8ob2spIGJpYmVxIHQ2LCAweGZmZmYsIC5vayBlbmQpCisgICAgICAgIHJl
dHVybjJpKGN0eCwgMCwgdDYpCisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzMy
JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzMyJXVwcGVyQ2FzZU9wY29kZSVV
LCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAg
IHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3ZhbHVlLCB0
MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxp
Z25tZW50Q2hlY2sodDMsIHQ1LCA0KQorICAgICAgICBmbmkodDAsIFt0M10sIHQyLCB0NSwgdDYp
CisgICAgICAgIHJldHVybjJpKGN0eCwgMCwgdDYpCisgICAgZW5kKQorICAgIHdhc21PcChpNjRf
YXRvbWljX3JtdyVsb3dlckNhc2VPcGNvZGUlLCBXYXNtSTY0QXRvbWljUm13JXVwcGVyQ2FzZU9w
Y29kZSUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAg
ICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX3Zh
bHVlLCB0MSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zm
c2V0V2l0aEFsaWdubWVudENoZWNrKHQzLCB0NSwgOCkKKyAgICAgICAgcHVzaCB0NCAjIFRoaXMg
aXMgdGhlIFBCLCBzbyBuZWVkIHRvIGJlIHNhdmVkIGFuZCByZXN0b3JlZAorICAgICAgICBmbjJp
KHQxLCB0MCwgW3QzXSwgdDQsIHQyLCB0NSwgdDcsIHQ2KQorICAgICAgICBwb3AgdDQKKyAgICAg
ICAgcmV0dXJuMmkoY3R4LCB0NywgdDYpCisgICAgZW5kKQorZW5kCisKK21hY3JvIHdhc21BdG9t
aWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29k
ZSwgZm5pLCBmbjJpKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bjb2Rl
LCB1cHBlckNhc2VPcGNvZGUsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQ
UiwgdDZHUFIpCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIC5sb29wOgorICAg
ICAgICAgICAgICAgIGxvYWRsaW5rYiBtZW0sIHQ2R1BSCisgICAgICAgICAgICAgICAgZm5pKHQw
R1BSLCB0NkdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgc3RvcmVjb25kYiB0NUdQUiwgdDJH
UFIsIG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAorICAgICAgICAg
ICAgICAgIGZlbmNlCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJH
UFIsIHQ1R1BSLCB0NkdQUikKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAgLmxv
b3A6CisgICAgICAgICAgICAgICAgbG9hZGxpbmtoIG1lbSwgdDZHUFIKKyAgICAgICAgICAgICAg
ICBmbmkodDBHUFIsIHQ2R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmRoIHQ1
R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisg
ICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQ2R1BSKQorICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAg
ICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2FkbGlua2kgbWVtLCB0NkdQUgorICAgICAg
ICAgICAgICAgIGZuaSh0MEdQUiwgdDZHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIHN0b3Jl
Y29uZGkgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwg
Lmxvb3AKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAgICBlbmQsCisgICAgICAgIG1hY3Jv
KHQxR1BSLCB0MEdQUiwgbWVtLCB0NEdQUiwgdDJHUFIsIHQ1R1BSLCB0N0dQUiwgdDZHUFIpCisg
ICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAg
IGxvYWRsaW5rMmkgbWVtLCB0NkdQUiwgdDdHUFIKKyAgICAgICAgICAgICAgICBmbjJpKHQxR1BS
LCB0MEdQUiwgdDdHUFIsIHQ2R1BSLCB0NEdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgc3Rv
cmVjb25kMmkgdDVHUFIsIHQyR1BSLCB0NEdQUiwgbWVtCisgICAgICAgICAgICAgICAgYmluZXEg
dDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgZW5kKQorZW5k
CisKK2lmIEFSTXY3CisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9hZGQs
IEFkZCwKKyAgICAgICAgbWFjcm8oc3JjMCwgc3JjMSwgZHN0KQorICAgICAgICAgICAgYWRkaSBz
cmMwLCBzcmMxLCBkc3QKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyhzcmMwTXN3LCBzcmMw
THN3LCBzcmMxTXN3LCBzcmMxTHN3LCBkc3RNc3csIGRzdExzdykKKyAgICAgICAgICAgIGFkZGlz
IHNyYzBMc3csIHNyYzFMc3csIGRzdExzdworICAgICAgICAgICAgYWRjaSAgc3JjME1zdywgc3Jj
MU1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0
aFdlYWtDQVMoX3N1YiwgU3ViLAorICAgICAgICBtYWNybyhzcmMwLCBzcmMxLCBkc3QpCisgICAg
ICAgICAgICBzdWJpIHNyYzEsIHNyYzAsIGRzdAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3Jv
KHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0THN3KQorICAg
ICAgICAgICAgc3ViaXMgc3JjMUxzdywgc3JjMExzdywgZHN0THN3CisgICAgICAgICAgICBzYmNp
ICBzcmMxTXN3LCBzcmMwTXN3LCBkc3RNc3cKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNC
aW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeGNoZywgWGNoZywKKyAgICAgICAgbWFjcm8oc3JjMCwg
c3JjMSwgZHN0KQorICAgICAgICAgICAgbW92ZSBzcmMwLCBkc3QKKyAgICAgICAgZW5kLAorICAg
ICAgICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3LCBzcmMxTXN3LCBzcmMxTHN3LCBkc3RNc3csIGRz
dExzdykKKyAgICAgICAgICAgIG1vdmUgc3JjMExzdywgZHN0THN3CisgICAgICAgICAgICBtb3Zl
IHNyYzBNc3csIGRzdE1zdworICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09w
c1dpdGhXZWFrQ0FTKF9hbmQsIEFuZCwKKyAgICAgICAgbWFjcm8oc3JjMCwgc3JjMSwgZHN0KQor
ICAgICAgICAgICAgYW5kaSBzcmMwLCBzcmMxLCBkc3QKKyAgICAgICAgZW5kLAorICAgICAgICBt
YWNybyhzcmMwTXN3LCBzcmMwTHN3LCBzcmMxTXN3LCBzcmMxTHN3LCBkc3RNc3csIGRzdExzdykK
KyAgICAgICAgICAgIGFuZGkgc3JjMExzdywgc3JjMUxzdywgZHN0THN3CisgICAgICAgICAgICBh
bmRpIHNyYzBNc3csIHNyYzFNc3csIGRzdE1zdworICAgICAgICBlbmQpCisgICAgd2FzbUF0b21p
Y0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9vciwgT3IsCisgICAgICAgIG1hY3JvKHNyYzAsIHNy
YzEsIGRzdCkKKyAgICAgICAgICAgIG9yaSBzcmMwLCBzcmMxLCBkc3QKKyAgICAgICAgZW5kLAor
ICAgICAgICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3LCBzcmMxTXN3LCBzcmMxTHN3LCBkc3RNc3cs
IGRzdExzdykKKyAgICAgICAgICAgIG9yaSBzcmMwTHN3LCBzcmMxTHN3LCBkc3RMc3cKKyAgICAg
ICAgICAgIG9yaSBzcmMwTXN3LCBzcmMxTXN3LCBkc3RNc3cKKyAgICAgICAgZW5kKQorICAgIHdh
c21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeG9yLCBYb3IsCisgICAgICAgIG1hY3Jv
KHNyYzAsIHNyYzEsIGRzdCkKKyAgICAgICAgICAgIHhvcmkgc3JjMCwgc3JjMSwgZHN0CisgICAg
ICAgIGVuZCwKKyAgICAgICAgbWFjcm8oc3JjME1zdywgc3JjMExzdywgc3JjMU1zdywgc3JjMUxz
dywgZHN0TXN3LCBkc3RMc3cpCisgICAgICAgICAgICB4b3JpIHNyYzBMc3csIHNyYzFMc3csIGRz
dExzdworICAgICAgICAgICAgeG9yaSBzcmMwTXN3LCBzcmMxTXN3LCBkc3RNc3cKKyAgICAgICAg
ZW5kKQorZW5kCisKK21hY3JvIHdhc21BdG9taWNDb21wYXJlRXhjaGFuZ2VPcHMobG93ZXJDYXNl
T3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmksIGZuMmkpCisgICAgd2FzbU9w
KGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4JXVw
cGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRl
ciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZDJp
KGN0eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAgICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwg
dDcsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldCh0
MywgdDUsIDEpCisgICAgICAgIGZuYih0MSwgdDAsIHQ3LCB0MiwgW3QzXSwgdDYsIHQ1KQorICAg
ICAgICBhbmRpIDB4ZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQ4VG82NAorICAgICAgICBhc3Nl
cnQobWFjcm8ob2spIGJpYmVxIHQwLCAweGZmLCAub2sgZW5kKQorICAgICAgICBhc3NlcnQobWFj
cm8ob2spIGJpZXEgdDEsIDAsIC5vayBlbmQpCisgICAgICAgIHJldHVybjJpKGN0eCwgdDEsIHQw
KQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcxNiVsb3dlckNhc2VPcGNvZGUl
X3UsIFdhc21JNjRBdG9taWNSbXcxNiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAg
ICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zm
c2V0LCB0NSkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fZXhwZWN0ZWQsIHQxLCB0MCkKKyAgICAg
ICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQ3LCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJl
cGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2sodDMsIHQ1LCAyKQorICAg
ICAgICBmbmgodDEsIHQwLCB0NywgdDIsIFt0M10sIHQ2LCB0NSkKKyAgICAgICAgYW5kaSAweGZm
ZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQxNlRvNjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9r
KSBiaWJlcSB0MCwgMHhmZmZmLCAub2sgZW5kKQorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJp
ZXEgdDEsIDAsIC5vayBlbmQpCisgICAgICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorICAgIGVu
ZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXczMiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21J
NjRBdG9taWNSbXczMiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9h
ZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkK
KyAgICAgICAgbWxvYWQyaShjdHgsIG1fZXhwZWN0ZWQsIHQxLCB0MCkKKyAgICAgICAgbWxvYWQy
aShjdHgsIG1fdmFsdWUsIHQ3LCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50
ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2sodDMsIHQ1LCA4KQorICAgICAgICBmbmko
dDEsIHQwLCB0NywgdDIsIFt0M10sIHQ2LCB0NSkKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBi
aWVxIHQxLCAwLCAub2sgZW5kKQorICAgICAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKKyAgICBl
bmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21JNjRB
dG9taWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4
LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAg
ICAgbWxvYWQyaShjdHgsIG1fZXhwZWN0ZWQsIHQxLCB0MCkKKyAgICAgICAgbWxvYWQyaShjdHgs
IG1fdmFsdWUsIHQ3LCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRp
bmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2sodDMsIHQ1LCA4KQorICAgICAgICBwdXNoIHQ0ICMg
VGhpcyBpcyB0aGUgUEIsIHNvIG5lZWQgdG8gYmUgc2F2ZWQgYW5kIHJlc3RvcmVkCisgICAgICAg
IGZuMmkodDEsIHQwLCB0NywgdDIsIFt0M10sIHQ0LCB0NiwgdDUpCisgICAgICAgIHBvcCB0NAor
ICAgICAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKKyAgICBlbmQpCitlbmQKKworaWYgQVJNdjcK
Ky8vIGV4cDogImV4cGVjdGVkIiwgdmFsOiAidmFsdWUiLCByZXM6ICJyZXN1bHQiCit3YXNtQXRv
bWljQ29tcGFyZUV4Y2hhbmdlT3BzKF9jbXB4Y2hnLCBDbXB4Y2hnLAorICAgIG1hY3JvKGV4cE1z
dywgZXhwTHN3LCB2YWxNc3csIHZhbExzdywgbWVtLCBzY3JhdGNoLCByZXNMc3cpCisgICAgICAg
ICAgICBmZW5jZQorICAgICAgICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5rYiBtZW0sIHJl
c0xzdworICAgICAgICAgICAgYmluZXEgZXhwTHN3LCByZXNMc3csIC5mYWlsCisgICAgICAgICAg
ICBiaW5lcSBleHBNc3csIDAsIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmRiIHNjcmF0Y2gs
IHZhbExzdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAgICAg
ICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRiIHNj
cmF0Y2gsIHJlc0xzdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisg
ICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBmZW5jZQor
ICAgICAgICAgICAgbW92ZSByZXNMc3csIGV4cExzdworICAgICAgICAgICAgbW92ZSAwLCBleHBN
c3cKKyAgICBlbmQsCisgICAgbWFjcm8oZXhwTXN3LCBleHBMc3csIHZhbE1zdywgdmFsTHN3LCBt
ZW0sIHNjcmF0Y2gsIHJlc0xzdykKKyAgICAgICAgICAgIGZlbmNlCisgICAgICAgIC5sb29wOgor
ICAgICAgICAgICAgbG9hZGxpbmtoIG1lbSwgcmVzTHN3CisgICAgICAgICAgICBiaW5lcSBleHBM
c3csIHJlc0xzdywgLmZhaWwKKyAgICAgICAgICAgIGJpbmVxIGV4cE1zdywgMCwgLmZhaWwKKyAg
ICAgICAgICAgIHN0b3JlY29uZGggc2NyYXRjaCwgdmFsTHN3LCBtZW0KKyAgICAgICAgICAgIGJp
ZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZmFp
bDoKKyAgICAgICAgICAgIHN0b3JlY29uZGggc2NyYXRjaCwgcmVzTHN3LCBtZW0KKyAgICAgICAg
ICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAg
ICAuZG9uZToKKyAgICAgICAgICAgIGZlbmNlCisgICAgICAgICAgICBtb3ZlIHJlc0xzdywgZXhw
THN3CisgICAgICAgICAgICBtb3ZlIDAsIGV4cE1zdworICAgIGVuZCwKKyAgICBtYWNybyhleHBN
c3csIGV4cExzdywgdmFsTXN3LCB2YWxMc3csIG1lbSwgc2NyYXRjaCwgcmVzTHN3KQorICAgICAg
ICAgICAgZmVuY2UKKyAgICAgICAgLmxvb3A6CisgICAgICAgICAgICBsb2FkbGlua2kgbWVtLCBy
ZXNMc3cKKyAgICAgICAgICAgIGJpbmVxIGV4cExzdywgcmVzTHN3LCAuZmFpbAorICAgICAgICAg
ICAgYmluZXEgZXhwTXN3LCAwLCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kaSBzY3JhdGNo
LCB2YWxMc3csIG1lbQorICAgICAgICAgICAgYmllcSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAg
ICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgc3RvcmVjb25kaSBz
Y3JhdGNoLCByZXNMc3csIG1lbQorICAgICAgICAgICAgYmllcSBzY3JhdGNoLCAwLCAuZG9uZQor
ICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAgICAgICAgZmVuY2UK
KyAgICAgICAgICAgIG1vdmUgcmVzTHN3LCBleHBMc3cKKyAgICAgICAgICAgIG1vdmUgMCwgZXhw
TXN3CisgICAgZW5kLAorICAgIG1hY3JvKGV4cE1zdywgZXhwTHN3LCB2YWxNc3csIHZhbExzdywg
bWVtLCBzY3JhdGNoLCByZXNNc3csIHJlc0xzdykKKyAgICAgICAgICAgIGZlbmNlCisgICAgICAg
IC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmsyaSBtZW0sIHJlc0xzdywgcmVzTXN3CisgICAg
ICAgICAgICBiaW5lcSBleHBMc3csIHJlc0xzdywgLmZhaWwKKyAgICAgICAgICAgIGJpbmVxIGV4
cE1zdywgcmVzTXN3LCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kMmkgc2NyYXRjaCwgdmFs
THN3LCB2YWxNc3csIG1lbQorICAgICAgICAgICAgYmllcSBzY3JhdGNoLCAwLCAuZG9uZQorICAg
ICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgc3RvcmVjb25k
Mmkgc2NyYXRjaCwgcmVzTHN3LCByZXNNc3csIG1lbQorICAgICAgICAgICAgYmllcSBzY3JhdGNo
LCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAg
ICAgICAgZmVuY2UKKyAgICAgICAgICAgIG1vdmUgcmVzTHN3LCBleHBMc3cKKyAgICAgICAgICAg
IG1vdmUgcmVzTXN3LCBleHBNc3cKKyAgICBlbmQpCitlbmQKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5NjQuYXNtIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5NjQuYXNtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2ZTllYTQ4ODUyNDI2
MGEzZTQ0N2ZmNTAwOTE5NGU4MDBlZWUxNzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHk2NC5hc20KQEAgLTAsMCArMSwxMjU5IEBACisj
IENvcHlyaWdodCAoQykgMjAxMS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMgQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIE9wY29kZXMgdGhhdCBz
aG91bGQgZXZlbnR1YWxseSBiZSBzaGFyZWQgd2l0aCBKUyBsbGludAorCit3YXNtT3AobW92LCBX
YXNtTW92LCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9zcmMsIHQwKQorICAgIHJldHVy
bnEoY3R4LCB0MCkKK2VuZCkKKworIyBXYXNtIHNwZWNpZmljIGJ5dGVjb2RlcworCittYWNybyBl
bWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKKyAg
ICBsZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNldF0sIHQ1CisgICAgYnBiIHQ1LCBib3VuZHND
aGVja2luZ1NpemUsIC5jb250aW51YXRpb24KKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5k
c01lbW9yeUFjY2VzcykKKy5jb250aW51YXRpb246CisgICAgYWRkcCBtZW1vcnlCYXNlLCBwb2lu
dGVyCitlbmQKKworbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQo
Y3R4LCBwb2ludGVyLCBvZmZzZXQsIHNpemUpCisgICAgbGVhcCBzaXplIC0gMVtwb2ludGVyLCBv
ZmZzZXRdLCB0NQorICAgIGJwYiB0NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29udGludWF0aW9u
CisudGhyb3c6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCisu
Y29udGludWF0aW9uOgorICAgIGFkZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgorICAgIGFkZHAgb2Zm
c2V0LCBwb2ludGVyCitlbmQKKworbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRp
bmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCBwb2ludGVyLCBvZmZzZXQsIHNpemUpCisg
ICAgbGVhcCBzaXplIC0gMVtwb2ludGVyLCBvZmZzZXRdLCB0NQorICAgIGJwYiB0NSwgYm91bmRz
Q2hlY2tpbmdTaXplLCAuY29udGludWF0aW9uCisudGhyb3c6CisgICAgdGhyb3dFeGNlcHRpb24o
T3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCisuY29udGludWF0aW9uOgorICAgIGFkZHAgbWVtb3J5
QmFzZSwgcG9pbnRlcgorICAgIGFkZHAgb2Zmc2V0LCBwb2ludGVyCisgICAgYnRwbnogcG9pbnRl
ciwgKHNpemUgLSAxKSwgLnRocm93CitlbmQKKworCittYWNybyB3YXNtTG9hZE9wKG5hbWUsIHN0
cnVjdCwgc2l6ZSwgZm4pCisgICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQorICAg
ICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zm
c2V0LCB0MSkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4LCB0MCwgdDEs
IHNpemUpCisgICAgICAgIGZuKFt0MCwgdDFdLCB0MikKKyAgICAgICAgcmV0dXJucShjdHgsIHQy
KQorICAgIGVuZCkKK2VuZAorCit3YXNtTG9hZE9wKGxvYWQ4X3UsIFdhc21Mb2FkOFUsIDEsIG1h
Y3JvKG1lbSwgZHN0KSBsb2FkYiBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGxvYWQxNl91LCBX
YXNtTG9hZDE2VSwgMiwgbWFjcm8obWVtLCBkc3QpIGxvYWRoIG1lbSwgZHN0IGVuZCkKK3dhc21M
b2FkT3AobG9hZDMyX3UsIFdhc21Mb2FkMzJVLCA0LCBtYWNybyhtZW0sIGRzdCkgbG9hZGkgbWVt
LCBkc3QgZW5kKQord2FzbUxvYWRPcChsb2FkNjRfdSwgV2FzbUxvYWQ2NFUsIDgsIG1hY3JvKG1l
bSwgZHN0KSBsb2FkcSBtZW0sIGRzdCBlbmQpCisKK3dhc21Mb2FkT3AoaTMyX2xvYWQ4X3MsIFdh
c21JMzJMb2FkOFMsIDEsIG1hY3JvKG1lbSwgZHN0KSBsb2FkYnNpIG1lbSwgZHN0IGVuZCkKK3dh
c21Mb2FkT3AoaTY0X2xvYWQ4X3MsIFdhc21JNjRMb2FkOFMsIDEsIG1hY3JvKG1lbSwgZHN0KSBs
b2FkYnNxIG1lbSwgZHN0IGVuZCkKK3dhc21Mb2FkT3AoaTMyX2xvYWQxNl9zLCBXYXNtSTMyTG9h
ZDE2UywgMiwgbWFjcm8obWVtLCBkc3QpIGxvYWRoc2kgbWVtLCBkc3QgZW5kKQord2FzbUxvYWRP
cChpNjRfbG9hZDE2X3MsIFdhc21JNjRMb2FkMTZTLCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGhz
cSBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGk2NF9sb2FkMzJfcywgV2FzbUk2NExvYWQzMlMs
IDQsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaXMgbWVtLCBkc3QgZW5kKQorCittYWNybyB3YXNtU3Rv
cmVPcChuYW1lLCBzdHJ1Y3QsIHNpemUsIGZuKQorICAgIHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1h
Y3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MCkKKyAgICAgICAgd2dl
dHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVy
KGN0eCwgdDAsIHQxLCBzaXplKQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAg
ICAgICAgZm4odDIsIFt0MCwgdDFdKQorICAgICAgICBkaXNwYXRjaChjdHgpCisgICAgZW5kKQor
ZW5kCisKK3dhc21TdG9yZU9wKHN0b3JlOCwgV2FzbVN0b3JlOCwgMSwgbWFjcm8odmFsdWUsIG1l
bSkgc3RvcmViIHZhbHVlLCBtZW0gZW5kKQord2FzbVN0b3JlT3Aoc3RvcmUxNiwgV2FzbVN0b3Jl
MTYsIDIsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlaCB2YWx1ZSwgbWVtIGVuZCkKK3dhc21TdG9y
ZU9wKHN0b3JlMzIsIFdhc21TdG9yZTMyLCA0LCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZWkgdmFs
dWUsIG1lbSBlbmQpCit3YXNtU3RvcmVPcChzdG9yZTY0LCBXYXNtU3RvcmU2NCwgOCwgbWFjcm8o
dmFsdWUsIG1lbSkgc3RvcmVxIHZhbHVlLCBtZW0gZW5kKQorCit3YXNtT3AocmVmX2lzX251bGws
IFdhc21SZWZJc051bGwsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHAoY3R4LCBtX3JlZiwgdDApCisg
ICAgY3FlcSB0MCwgVmFsdWVOdWxsLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKwor
d2FzbU9wKGdldF9nbG9iYWwsIFdhc21HZXRHbG9iYWwsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBX
YXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4
LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKKyAgICByZXR1
cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChzZXRfZ2xvYmFsLCBXYXNtU2V0R2xvYmFsLCBt
YWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFu
Y2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbWxvYWRxKGN0
eCwgbV92YWx1ZSwgdDIpCisgICAgc3RvcmVxIHQyLCBbdDAsIHQxLCA4XQorICAgIGRpc3BhdGNo
KGN0eCkKK2VuZCkKKword2FzbU9wKGdldF9nbG9iYWxfcG9ydGFibGVfYmluZGluZywgV2FzbUdl
dEdsb2JhbFBvcnRhYmxlQmluZGluZywgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206Okluc3Rh
bmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1fZ2xvYmFs
SW5kZXgsIHQxKQorICAgIGxvYWRxIFt0MCwgdDEsIDhdLCB0MAorICAgIGxvYWRxIFt0MF0sIHQw
CisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3Aoc2V0X2dsb2JhbF9wb3J0YWJs
ZV9iaW5kaW5nLCBXYXNtU2V0R2xvYmFsUG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCisgICAg
bG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdn
ZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIp
CisgICAgbG9hZHEgW3QwLCB0MSwgOF0sIHQwCisgICAgc3RvcmVxIHQyLCBbdDBdCisgICAgZGlz
cGF0Y2goY3R4KQorZW5kKQorCisjIE9wY29kZXMgdGhhdCBkb24ndCBoYXZlIHRoZSBgYjNvcGAg
ZW50cnkgaW4gd2FzbS5qc29uLiBUaGlzIHNob3VsZCBiZSBrZXB0IGluIHN5bmMKKworIyBpMzIg
YmluYXJ5IG9wcworCit3YXNtT3AoaTMyX2Rpdl9zLCBXYXNtSTMyRGl2UywgbWFjcm8gKGN0eCkK
KyAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQor
CisgICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGJpbmVxIHQxLCAtMSwg
LnNhZmUKKyAgICBiaWVxIHQwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAudGhyb3dJbnRlZ2VyT3Zl
cmZsb3cKKworLnNhZmU6CisgICAgaWYgWDg2XzY0CisgICAgICAgICMgRklYTUU6IEFkZCBhIHdh
eSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAorICAgICAgICAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKKyAgICAgICAg
Y2RxaQorICAgICAgICBpZGl2aSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVND
VjY0CisgICAgICAgIGRpdmlzIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBl
bmQKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRo
cm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorCisudGhyb3dJbnRlZ2VyT3ZlcmZsb3c6Cisg
ICAgdGhyb3dFeGNlcHRpb24oSW50ZWdlck92ZXJmbG93KQorZW5kKQorCit3YXNtT3AoaTMyX2Rp
dl91LCBXYXNtSTMyRGl2VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgdDAp
CisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRpeiB0MSwgLnRocm93RGl2aXNp
b25CeVplcm8KKworICAgIGlmIFg4Nl82NAorICAgICAgICB4b3JpIHQyLCB0MgorICAgICAgICB1
ZGl2aSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0CisgICAgICAgIGRp
dmkgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorICAgIHJldHVybmko
Y3R4LCB0MCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2
aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpMzJfcmVtX3MsIFdhc21JMzJSZW1TLCBtYWNy
byAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3Jo
cywgdDEpCisKKyAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgYmluZXEg
dDEsIC0xLCAuc2FmZQorICAgIGJpbmVxIHQwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAuc2FmZQor
CisgICAgbW92ZSAwLCB0MgorICAgIGptcCAucmV0dXJuCisKKy5zYWZlOgorICAgIGlmIFg4Nl82
NAorICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMg
cmF4IGFuZCB0MiBpcyByZHgKKyAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAzNjkyCisgICAgICAgIGNkcWkKKyAgICAgICAgaWRpdmkgdDEKKyAgICBl
bHNpZiBBUk02NCBvciBBUk02NEUKKyAgICAgICAgZGl2aXMgdDEsIHQwLCB0MgorICAgICAgICBt
dWxpIHQxLCB0MgorICAgICAgICBzdWJpIHQwLCB0MiwgdDIKKyAgICBlbHNpZiBSSVNDVjY0Cisg
ICAgICAgIHJlbWlzIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKKwor
LnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDIpCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgor
ICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTMyX3Jl
bV91LCBXYXNtSTMyUmVtVSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgdDAp
CisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRpeiB0MSwgLnRocm93RGl2aXNp
b25CeVplcm8KKworICAgIGlmIFg4Nl82NAorICAgICAgICB4b3JpIHQyLCB0MgorICAgICAgICB1
ZGl2aSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQorICAgICAgICBkaXZpIHQxLCB0MCwg
dDIKKyAgICAgICAgbXVsaSB0MSwgdDIKKyAgICAgICAgc3ViaSB0MCwgdDIsIHQyCisgICAgZWxz
aWYgUklTQ1Y2NAorICAgICAgICByZW1pIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IK
KyAgICBlbmQKKyAgICByZXR1cm5pKGN0eCwgdDIpCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgor
ICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCisjIGk2NCBiaW5hcnkg
b3BzCisKK3dhc21PcChpNjRfYWRkLCBXYXNtSTY0QWRkLCBtYWNybyhjdHgpCisgICAgbWxvYWRx
KGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBhZGRxIHQw
LCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9zdWIsIFdhc21J
NjRTdWIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRx
KGN0eCwgbV9yaHMsIHQxKQorICAgIHN1YnEgdDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQor
ZW5kKQorCit3YXNtT3AoaTY0X211bCwgV2FzbUk2NE11bCwgbWFjcm8oY3R4KQorICAgIG1sb2Fk
cShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgbXVscSB0
MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfZGl2X3MsIFdh
c21JNjREaXZTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBt
bG9hZHEoY3R4LCBtX3JocywgdDEpCisKKyAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVy
bworCisgICAgYnFuZXEgdDEsIC0xLCAuc2FmZQorICAgIGJxZXEgdDAsIGNvbnN0ZXhwciBJTlQ2
NF9NSU4sIC50aHJvd0ludGVnZXJPdmVyZmxvdworCisuc2FmZToKKyAgICBpZiBYODZfNjQKKyAg
ICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBh
bmQgdDIgaXMgcmR4CisgICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMzY5MgorICAgICAgICBjcW9xCisgICAgICAgIGlkaXZxIHQxCisgICAgZWxzaWYg
QVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKKyAgICAgICAgZGl2cXMgdDEsIHQwCisgICAgZWxz
ZQorICAgICAgICBlcnJvcgorICAgIGVuZAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLnRocm93
RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCisKKy50
aHJvd0ludGVnZXJPdmVyZmxvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihJbnRlZ2VyT3ZlcmZsb3cp
CitlbmQpCisKK3dhc21PcChpNjRfZGl2X3UsIFdhc21JNjREaXZVLCBtYWNybyAoY3R4KQorICAg
IG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisKKyAg
ICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgaWYgWDg2XzY0CisgICAgICAg
IHhvcnEgdDIsIHQyCisgICAgICAgIHVkaXZxIHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRF
IG9yIFJJU0NWNjQKKyAgICAgICAgZGl2cSB0MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVycm9y
CisgICAgZW5kCisgICAgcmV0dXJucShjdHgsIHQwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoK
KyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9y
ZW1fcywgV2FzbUk2NFJlbVMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQw
KQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0cXogdDEsIC50aHJvd0Rpdmlz
aW9uQnlaZXJvCisKKyAgICBicW5lcSB0MSwgLTEsIC5zYWZlCisgICAgYnFuZXEgdDAsIGNvbnN0
ZXhwciBJTlQ2NF9NSU4sIC5zYWZlCisKKyAgICBtb3ZlIDAsIHQyCisgICAgam1wIC5yZXR1cm4K
KworLnNhZmU6CisgICAgaWYgWDg2XzY0CisgICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBz
dGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAorICAgICAgICAjIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKKyAgICAgICAgY3FvcQor
ICAgICAgICBpZGl2cSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQorICAgICAgICBkaXZx
cyB0MSwgdDAsIHQyCisgICAgICAgIG11bHEgdDEsIHQyCisgICAgICAgIHN1YnEgdDAsIHQyLCB0
MgorICAgIGVsc2lmIFJJU0NWNjQKKyAgICAgICAgcmVtcXMgdDEsIHQwCisgICAgZWxzZQorICAg
ICAgICBlcnJvcgorICAgIGVuZAorCisucmV0dXJuOgorICAgIHJldHVybnEoY3R4LCB0MikgIyBy
ZHggaGFzIHRoZSByZW1haW5kZXIKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dF
eGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpNjRfcmVtX3UsIFdhc21J
NjRSZW1VLCBtYWNybyAoY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9h
ZHEoY3R4LCBtX3JocywgdDEpCisKKyAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwor
CisgICAgaWYgWDg2XzY0CisgICAgICAgIHhvcnEgdDIsIHQyCisgICAgICAgIHVkaXZxIHQxCisg
ICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCisgICAgICAgIGRpdnEgdDEsIHQwLCB0MgorICAgICAg
ICBtdWxxIHQxLCB0MgorICAgICAgICBzdWJxIHQwLCB0MiwgdDIKKyAgICBlbHNpZiBSSVNDVjY0
CisgICAgICAgIHJlbXEgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAor
ICAgIHJldHVybnEoY3R4LCB0MikKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dF
eGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpNjRfYW5kLCBXYXNtSTY0
QW5kLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShj
dHgsIG1fcmhzLCB0MSkKKyAgICBhbmRxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2Vu
ZCkKKword2FzbU9wKGk2NF9vciwgV2FzbUk2NE9yLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0
eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBvcnEgdDAsIHQx
CisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X3hvciwgV2FzbUk2NFhv
ciwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4
LCBtX3JocywgdDEpCisgICAgeG9ycSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQp
CisKK3dhc21PcChpNjRfc2hsLCBXYXNtSTY0U2hsLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0
eCwgbV9saHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKyAgICBsc2hpZnRxIHQx
LCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9zaHJfdSwgV2Fz
bUk2NFNoclUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxv
YWRpKGN0eCwgbV9yaHMsIHQxKQorICAgIHVyc2hpZnRxIHQxLCB0MAorICAgIHJldHVybnEoY3R4
LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9zaHJfcywgV2FzbUk2NFNoclMsIG1hY3JvKGN0eCkK
KyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQor
ICAgIHJzaGlmdHEgdDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3Ao
aTY0X3JvdHIsIFdhc21JNjRSb3RyLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMs
IHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKyAgICBycm90YXRlcSB0MSwgdDAKKyAg
ICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfcm90bCwgV2FzbUk2NFJvdGws
IG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwg
bV9yaHMsIHQxKQorICAgIGxyb3RhdGVxIHQxLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2Vu
ZCkKKword2FzbU9wKGk2NF9lcSwgV2FzbUk2NEVxLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0
eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWVxIHQwLCB0
MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNt
T3AoaTY0X25lLCBXYXNtSTY0TmUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywg
dDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxbmVxIHQwLCB0MSwgdDIKKyAg
ICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2x0
X3MsIFdhc21JNjRMdFMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisg
ICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxbHQgdDAsIHQxLCB0MgorICAgIGFuZGkg
MSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfbGVfcywgV2Fz
bUk2NExlUywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9h
ZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FsdGVxIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQy
CisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2x0X3UsIFdhc21JNjRM
dFUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0
eCwgbV9yaHMsIHQxKQorICAgIGNxYiB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJl
dHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9sZV91LCBXYXNtSTY0TGVVLCBtYWNy
byhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhz
LCB0MSkKKyAgICBjcWJlcSB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmko
Y3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9ndF9zLCBXYXNtSTY0R3RTLCBtYWNybyhjdHgp
CisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkK
KyAgICBjcWd0IHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQy
KQorZW5kKQorCit3YXNtT3AoaTY0X2dlX3MsIFdhc21JNjRHZVMsIG1hY3JvKGN0eCkKKyAgICBt
bG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNx
Z3RlcSB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2Vu
ZCkKKword2FzbU9wKGk2NF9ndF91LCBXYXNtSTY0R3RVLCBtYWNybyhjdHgpCisgICAgbWxvYWRx
KGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWEgdDAs
IHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dh
c21PcChpNjRfZ2VfdSwgV2FzbUk2NEdlVSwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1f
bGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FhZXEgdDAsIHQxLCB0
MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKKyMgaTY0IHVu
YXJ5IG9wcworCit3YXNtT3AoaTY0X2N0eiwgV2FzbUk2NEN0eiwgbWFjcm8gKGN0eCkKKyAgICBt
bG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHR6Y250cSB0MCwgdDAKKyAgICByZXR1cm5x
KGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfY2x6LCBXYXNtSTY0Q2x6LCBtYWNybyhjdHgp
CisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBsemNudHEgdDAsIHQxCisgICAg
cmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X3BvcGNudCwgV2FzbUk2NFBvcGNu
dCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIGExKQorICAgIHByZXBh
cmVTdGF0ZUZvckNDYWxsKCkKKyAgICBtb3ZlIFBDLCBhMAorICAgIGNDYWxsMihfc2xvd19wYXRo
X3dhc21fcG9wY291bnRsbCkKKyAgICByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkKKyAgICByZXR1
cm5xKGN0eCwgcjEpCitlbmQpCisKK3dhc21PcChpNjRfZXF6LCBXYXNtSTY0RXF6LCBtYWNybyhj
dHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBjcWVxIHQwLCAwLCB0MAor
ICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKworIyBmNjQgYmluYXJ5IG9wcworCit3YXNtT3Ao
ZjY0X2NvcHlzaWduLCBXYXNtRjY0Q29weXNpZ24sIG1hY3JvKGN0eCkKKyAgICBtbG9hZGQoY3R4
LCBtX2xocywgZnQwKQorICAgIG1sb2FkZChjdHgsIG1fcmhzLCBmdDEpCisKKyAgICBmZDJxIGZ0
MSwgdDEKKyAgICBtb3ZlIDB4ODAwMDAwMDAwMDAwMDAwMCwgdDIKKyAgICBhbmRxIHQyLCB0MQor
CisgICAgZmQycSBmdDAsIHQwCisgICAgbW92ZSAweDdmZmZmZmZmZmZmZmZmZmYsIHQyCisgICAg
YW5kcSB0MiwgdDAKKworICAgIG9ycSB0MSwgdDAKKyAgICBmcTJkIHQwLCBmdDAKKyAgICByZXR1
cm5kKGN0eCwgZnQwKQorZW5kKQorCisjIFR5cGUgY29udmVyc2lvbiBvcHMKKword2FzbU9wKGk2
NF9leHRlbmRfc19pMzIsIFdhc21JNjRFeHRlbmRTSTMyLCBtYWNybyhjdHgpCisgICAgbWxvYWRp
KGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBzeGkycSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwg
dDEpCitlbmQpCisKK3dhc21PcChpNjRfZXh0ZW5kX3VfaTMyLCBXYXNtSTY0RXh0ZW5kVUkzMiwg
bWFjcm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgenhpMnEgdDAs
IHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoZjY0X3JlaW50ZXJwcmV0
X2k2NCwgV2FzbUY2NFJlaW50ZXJwcmV0STY0LCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwg
bV9vcGVyYW5kLCB0MCkKKyAgICBmcTJkIHQwLCBmdDAKKyAgICByZXR1cm5kKGN0eCwgZnQwKQor
ZW5kKQorCit3YXNtT3AoaTY0X3JlaW50ZXJwcmV0X2Y2NCwgV2FzbUk2NFJlaW50ZXJwcmV0RjY0
LCBtYWNybyhjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisgICAgZmQycSBm
dDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3Nf
ZjY0LCBXYXNtSTMyVHJ1bmNTRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3Bl
cmFuZCwgZnQwKQorCisgICAgbW92ZSAweGMxZTAwMDAwMDAyMDAwMDAsIHQwICMgSU5UMzJfTUlO
IC0gMS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJv
dW5kc1RydW5jCisKKyAgICBtb3ZlIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UMzJfTUlO
CisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1Ry
dW5jCisKKyAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKwor
Lm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykK
K2VuZCkKKword2FzbU9wKGkzMl90cnVuY191X2Y2NCwgV2FzbUkzMlRydW5jVUY2NCwgbWFjcm8g
KGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZmYw
MDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmUgMHg0MWYwMDAwMDAwMDAwMDAw
LCB0MCAjIElOVDMyX01JTiAqIC0yLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAKKyAg
ICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0
aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc19mMzIsIFdh
c21JNjRUcnVuY1NGMzIsIG1hY3JvIChjdHgpCisgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBm
dDApCisKKyAgICBtb3ZlIDB4ZGYwMDAwMDAsIHQwICMgSU5UNjRfTUlOCisgICAgZmkyZiB0MCwg
ZnQxCisgICAgYmZsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZSAw
eDVmMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmd0ZXF1
biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZjJxcyBmdDAsIHQw
CisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4
Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5jX3VfZjMy
LCBXYXNtSTY0VHJ1bmNVRjMyLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZihjdHgsIG1fb3BlcmFu
ZCwgZnQwKQorCisgICAgbW92ZSAweGJmODAwMDAwLCB0MCAjIC0xLjAKKyAgICBmaTJmIHQwLCBm
dDEKKyAgICBiZmx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmUg
MHg1ZjgwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCisgICAgZmkyZiB0MCwgZnQxCisgICAg
YmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0ZWYycSBm
dDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0
aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5j
X3NfZjY0LCBXYXNtSTY0VHJ1bmNTRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1f
b3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGMzZTAwMDAwMDAwMDAwMDAsIHQwICMgSU5UNjRf
TUlOCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNU
cnVuYworCisgICAgbW92ZSAweDQzZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDY0X01JTgorICAg
IGZxMmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwor
CisgICAgdHJ1bmNhdGVkMnFzIGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRP
ZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQp
CisKK3dhc21PcChpNjRfdHJ1bmNfdV9mNjQsIFdhc21JNjRUcnVuY1VGNjQsIG1hY3JvIChjdHgp
CisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YmZmMDAwMDAw
MDAwMDAwMCwgdDAgIyAtMS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBm
dDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlIDB4NDNmMDAwMDAwMDAwMDAwMCwgdDAg
IyBJTlQ2NF9NSU4gKiAtMi4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBm
dDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0ZWQycSBmdDAsIHQwCisgICAgcmV0
dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihP
dXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfcywgV2Fz
bUkzMlRydW5jU2F0RjY0UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQs
IGZ0MCkKKworICAgIG1vdmUgMHhjMWUwMDAwMDAwMjAwMDAwLCB0MCAjIElOVDMyX01JTiAtIDEu
MAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNU
cnVuY1NhdE1pbk9yTmFOCisKKyAgICBtb3ZlIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5U
MzJfTUlOCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJv
dW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAorICAgIHJldHVybmko
Y3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKKyAgICBiZGVxIGZ0MCwg
ZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5p
KGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhw
ciBJTlQzMl9NQVgpLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1
bmNTYXRNaW46CisgICAgbW92ZSAoY29uc3RleHByIElOVDMyX01JTiksIHQwCisgICAgcmV0dXJu
aShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfdSwgV2FzbUkzMlRy
dW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkK
KworICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKKyAgICBmcTJkIHQwLCBm
dDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKworICAg
IG1vdmUgMHg0MWYwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDMyX01JTiAqIC0yLjAKKyAgICBmcTJk
IHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgK
KworICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRP
ZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDAp
CisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UMzJf
TUFYKSwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNf
c2F0X2YzMl9zLCBXYXNtSTY0VHJ1bmNTYXRGMzJTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZihj
dHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGRmMDAwMDAwLCB0MCAjIElOVDY0X01J
TgorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1
bmNTYXRNaW5Pck5hTgorCisgICAgbW92ZSAweDVmMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KKyAg
ICBmaTJmIHQwLCBmdDEKKyAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNT
YXRNYXgKKworICAgIHRydW5jYXRlZjJxcyBmdDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQor
Cisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgorICAgIGJmZXEgZnQwLCBmdDAsIC5vdXRP
ZkJvdW5kc1RydW5jU2F0TWluCisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkK
KworLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIElOVDY0X01B
WCksIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoK
KyAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUlOKSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDAp
CitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl91LCBXYXNtSTY0VHJ1bmNTYXRGMzJV
LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92
ZSAweGJmODAwMDAwLCB0MCAjIC0xLjAKKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmx0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKworICAgIG1vdmUgMHg1ZjgwMDAwMCwg
dDAgIyBJTlQ2NF9NSU4gKiAtMi4wCisgICAgZmkyZiB0MCwgZnQxCisgICAgYmZndGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWYycSBmdDAsIHQw
CisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAgICBt
b3ZlIDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1h
eDoKKyAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDY0X01BWCksIHQwCisgICAgcmV0dXJucShjdHgs
IHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5jX3NhdF9mNjRfcywgV2FzbUk2NFRydW5jU2F0
RjY0UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAg
IG1vdmUgMHhjM2UwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDY0X01JTgorICAgIGZxMmQgdDAsIGZ0
MQorICAgIGJkbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTgorCisg
ICAgbW92ZSAweDQzZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDY0X01JTgorICAgIGZxMmQgdDAs
IGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisg
ICAgdHJ1bmNhdGVkMnFzIGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJv
dW5kc1RydW5jU2F0TWluT3JOYU46CisgICAgYmRlcSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1
bmNTYXRNaW4KKyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZC
b3VuZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUFYKSwgdDAKKyAg
ICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUg
KGNvbnN0ZXhwciBJTlQ2NF9NSU4pLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKwor
d2FzbU9wKGk2NF90cnVuY19zYXRfZjY0X3UsIFdhc21JNjRUcnVuY1NhdEY2NFUsIG1hY3JvIChj
dHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YmZmMDAw
MDAwMDAwMDAwMCwgdDAgIyAtMS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCisKKyAgICBtb3ZlIDB4NDNmMDAwMDAwMDAw
MDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVx
dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQycSBm
dDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoK
KyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDY0X01BWCksIHQwCisgICAgcmV0dXJu
cShjdHgsIHQwKQorZW5kKQorCisjIEV4dGVuZCBvcHMKKword2FzbU9wKGk2NF9leHRlbmQ4X3Ms
IFdhc21JNjRFeHRlbmQ4UywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwg
dDApCisgICAgc3hiMnEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNt
T3AoaTY0X2V4dGVuZDE2X3MsIFdhc21JNjRFeHRlbmQxNlMsIG1hY3JvKGN0eCkKKyAgICBtbG9h
ZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHN4aDJxIHQwLCB0MQorICAgIHJldHVybnEoY3R4
LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9leHRlbmQzMl9zLCBXYXNtSTY0RXh0ZW5kMTZTLCBt
YWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBzeGkycSB0MCwg
dDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKKyMgQXRvbWljcworCittYWNybyB3YXNt
QXRvbWljQmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIs
IGZuaCwgZm5pLCBmbnEpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNv
ZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisg
ICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9v
ZmZzZXQsIHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1p
dENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQoY3R4LCB0MywgdDEsIDEpCisgICAg
ICAgIGZuYih0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKKyAgICAgICAgYW5kcSAweGZmLCB0MCAjIEZJ
WE1FOiBaZXJvRXh0ZW5kOFRvNjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwg
MHhmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKKyAgICB3
YXNtT3AoaTY0X2F0b21pY19ybXcxNiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNS
bXcxNiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBt
X3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAg
bWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2lu
dGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCAyKQorICAgICAg
ICBmbmgodDAsIFt0M10sIHQyLCB0NSwgdDEpCisgICAgICAgIGFuZHEgMHhmZmZmLCB0MCAjIEZJ
WE1FOiBaZXJvRXh0ZW5kMTZUbzY0CisgICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAs
IDB4ZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKKyAg
ICB3YXNtT3AoaTY0X2F0b21pY19ybXczMiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9t
aWNSbXczMiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4
LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAg
ICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQ
b2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA0KQorICAg
ICAgICBmbmkodDAsIFt0M10sIHQyLCB0NSwgdDEpCisgICAgICAgIGFzc2VydChtYWNybyhvaykg
YnFiZXEgdDAsIDB4ZmZmZmZmZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkK
KyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdh
c21JNjRBdG9taWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9h
ZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkK
KyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFBy
ZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA4
KQorICAgICAgICBmbnEodDAsIFt0M10sIHQyLCB0NSwgdDEpCisgICAgICAgIHJldHVybnEoY3R4
LCB0MCkKKyAgICBlbmQpCitlbmQKKworbWFjcm8gd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhX
ZWFrQ0FTKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmksIGZucSkKKyAgICB3
YXNtQXRvbWljQmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLAor
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAg
ICAgaWYgWDg2XzY0CisgICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKKyAgICAgICAg
ICAgICAgICBsb2FkYiBtZW0sIHQwR1BSCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAg
ICAgICBtb3ZlIHQwR1BSLCB0MkdQUgorICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIp
CisgICAgICAgICAgICAgICAgYmF0b21pY3dlYWtjYXNiIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9v
cAorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAg
bG9hZGxpbmthY3FiIG1lbSwgdDFHUFIKKyAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BS
LCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmRyZWxiIHQ1R1BSLCB0MkdQUiwgbWVt
CisgICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAg
bW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbmQsCisgICAgICAg
IG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBpZiBY
ODZfNjQKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgorICAgICAgICAgICAgICAg
IGxvYWRoIG1lbSwgdDBHUFIKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIG1v
dmUgdDBHUFIsIHQyR1BSCisgICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKKyAgICAg
ICAgICAgICAgICBiYXRvbWljd2Vha2Nhc2ggdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2FkbGlu
a2FjcWggbWVtLCB0MUdQUgorICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BS
KQorICAgICAgICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAg
ICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBtb3ZlIHQx
R1BSLCB0MEdQUgorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIGlmIFg4Nl82NAor
ICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCisgICAgICAgICAgICAgICAgbG9hZGkg
bWVtLCB0MEdQUgorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbW92ZSB0MEdQ
UiwgdDJHUFIKKyAgICAgICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQorICAgICAgICAgICAg
ICAgIGJhdG9taWN3ZWFrY2FzaSB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxaSBt
ZW0sIHQxR1BSCisgICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAg
ICAgICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAg
ICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAorICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQw
R1BSCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgaWYgWDg2XzY0CisgICAgICAg
ICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKKyAgICAgICAgICAgICAgICBsb2FkcSBtZW0sIHQw
R1BSCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQ
UgorICAgICAgICAgICAgICAgIGZucSh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgYmF0
b21pY3dlYWtjYXNxIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAorICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9hZGxpbmthY3FxIG1lbSwgdDFH
UFIKKyAgICAgICAgICAgICAgICBmbnEodDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAg
ICAgICBzdG9yZWNvbmRyZWxxIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICAgICAgYmlu
ZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAg
ICAgICAgICAgIGVuZAorICAgICAgICBlbmQpCitlbmQKKworaWYgWDg2XzY0CisgICAgd2FzbUF0
b21pY0JpbmFyeVJNV09wcyhfYWRkLCBBZGQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0gZW5kLAorICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaCB0
MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
MUdQUikgYXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRxIHQwR1BSLCBtZW0gZW5k
KQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3N1YiwgU3ViLAorICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3ViYiB0MEdQUiwgbWVt
IGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRv
bWljeGNoZ3N1YmggdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJpIHQwR1BSLCBtZW0gZW5kLAorICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3VicSB0
MEdQUiwgbWVtIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94Y2hnLCBYY2hnLAor
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
YiB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikgYXRvbWljeGNoZ2ggdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdpIHQwR1BSLCBtZW0gZW5kLAor
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
cSB0MEdQUiwgbWVtIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMo
X2FuZCwgQW5kLAorICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICBhbmRp
IHQ1R1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikK
KyAgICAgICAgICAgIGFuZHEgdDVHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRv
bWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX29yLCBPciwKKyAgICAgICAgbWFjcm8odDVHUFIs
IHQyR1BSKQorICAgICAgICAgICAgb3JpIHQ1R1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAg
ICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgIG9ycSB0NUdQUiwgdDJHUFIKKyAg
ICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeG9yLCBY
b3IsCisgICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgIHhvcmkgdDVHUFIs
IHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQorICAgICAg
ICAgICAgeG9ycSB0NUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorZWxzaWYgQVJNNjRFCisgICAg
d2FzbUF0b21pY0JpbmFyeVJNV09wcyhfYWRkLCBBZGQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0sIHQwR1BS
IGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRv
bWljeGNoZ2FkZGggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtLCB0MEdQ
UiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0
b21pY3hjaGdhZGRxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5
Uk1XT3BzKF9zdWIsIFN1YiwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikKKyAgICAgICAgICAgIG5lZ3EgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdh
ZGRiIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIs
IG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5lZ3EgdDBHUFIKKyAgICAg
ICAgICAgIGF0b21pY3hjaGdhZGRoIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCwKKyAg
ICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAg
IG5lZ3EgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0sIHQwR1BS
CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
MUdQUikKKyAgICAgICAgICAgIG5lZ3EgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdhZGRx
IHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1X
T3BzKF9hbmQsIEFuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
MUdQUikKKyAgICAgICAgICAgIG5vdHEgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdjbGVh
cmIgdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgbm90cSB0MEdQUgorICAgICAg
ICAgICAgYXRvbWljeGNoZ2NsZWFyaCB0MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBlbmQsCisg
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAg
ICBub3RxIHQwR1BSCisgICAgICAgICAgICBhdG9taWN4Y2hnY2xlYXJpIHQwR1BSLCBtZW0sIHQw
R1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikKKyAgICAgICAgICAgIG5vdHEgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdj
bGVhcnEgdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5h
cnlSTVdPcHMoX29yLCBPciwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikgYXRvbWljeGNoZ29yYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcmggdDBHUFIs
IG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIs
IHQxR1BSKSBhdG9taWN4Y2hnb3JpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFj
cm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29ycSB0MEdQUiwg
bWVtLCB0MEdQUiBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfeG9yLCBYb3IsCisg
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4
b3JiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJH
UFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAor
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
eG9yaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkK
KyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94Y2hnLCBYY2hnLAorICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYiB0MEdQUiwgbWVtLCB0
MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIp
IGF0b21pY3hjaGdoIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIs
IG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2kgdDBHUFIsIG1lbSwgdDBHUFIg
ZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9t
aWN4Y2hncSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQpCitlbHNpZiBBUk02NCBvciBSSVNDVjY0Cisg
ICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9hZGQsIEFkZCwKKyAgICAgICAg
bWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIGFkZGkgdDBHUFIsIHQxR1BS
LCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIp
CisgICAgICAgICAgICBhZGRxIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAg
IHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfc3ViLCBTdWIsCisgICAgICAgIG1h
Y3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBzdWJpIHQxR1BSLCB0MEdQUiwg
dDJHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQor
ICAgICAgICAgICAgc3VicSB0MUdQUiwgdDBHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3
YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3hjaGcsIFhjaGcsCisgICAgICAgIG1h
Y3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgor
ICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAg
ICAgICBtb3ZlIHQwR1BSLCB0MkdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFy
eVJNV09wc1dpdGhXZWFrQ0FTKF9hbmQsIEFuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BS
LCB0MkdQUikKKyAgICAgICAgICAgIGFuZGkgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBl
bmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBhbmRx
IHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlS
TVdPcHNXaXRoV2Vha0NBUyhfb3IsIE9yLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQy
R1BSKQorICAgICAgICAgICAgb3JpIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kLAor
ICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgb3JxIHQwR1BS
LCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNX
aXRoV2Vha0NBUyhfeG9yLCBYb3IsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIp
CisgICAgICAgICAgICB4b3JpIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kLAorICAg
ICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgeG9ycSB0MEdQUiwg
dDFHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKK2VuZAorCittYWNybyB3YXNtQXRvbWljQ29tcGFy
ZUV4Y2hhbmdlT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIsIGZuaCwg
Zm5pLCBmbnEpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3Us
IFdhc21JNjRBdG9taWNSbXc4JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAg
IG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQs
IHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKKyAgICAgICAgbWxvYWRx
KGN0eCwgbV92YWx1ZSwgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRk
aW5nT2Zmc2V0KGN0eCwgdDMsIHQxLCAxKQorICAgICAgICBmbmIodDAsIHQyLCBbdDNdLCB0NSwg
dDEpCisgICAgICAgIGFuZHEgMHhmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0CisgICAg
ICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmYsIC5vayBlbmQpCisgICAgICAgIHJl
dHVybnEoY3R4LCB0MCkKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MTYlbG93
ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MTYldXBwZXJDYXNlT3Bjb2RlJVUsIG1h
Y3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dl
dHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQw
KQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5k
UHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEs
IDIpCisgICAgICAgIGZuaCh0MCwgdDIsIFt0M10sIHQ1LCB0MSkKKyAgICAgICAgYW5kcSAweGZm
ZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQxNlRvNjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9r
KSBicWJlcSB0MCwgMHhmZmZmLCAub2sgZW5kKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisg
ICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwg
V2FzbUk2NEF0b21pY1JtdzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAg
IG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQs
IHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKKyAgICAgICAgbWxvYWRx
KGN0eCwgbV92YWx1ZSwgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRk
aW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA0KQorICAgICAgICBmbmko
dDAsIHQyLCBbdDNdLCB0NSwgdDEpCisgICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAs
IDB4ZmZmZmZmZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBlbmQp
CisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21JNjRBdG9t
aWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBt
X3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAg
bWxvYWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUs
IHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhB
bGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgOCkKKyAgICAgICAgZm5xKHQwLCB0MiwgW3QzXSwg
dDUsIHQxKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorZW5kCisKK2lmIFg4
Nl82NCBvciBBUk02NEUgb3IgQVJNNjQgb3IgUklTQ1Y2NAorIyB0MEdQUiA9PiBleHBlY3RlZCwg
dDJHUFIgPT4gdmFsdWUsIG1lbSA9PiBtZW1vcnkgcmVmZXJlbmNlCit3YXNtQXRvbWljQ29tcGFy
ZUV4Y2hhbmdlT3BzKF9jbXB4Y2hnLCBDbXB4Y2hnLAorICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwg
bWVtLCB0NUdQUiwgdDFHUFIpCisgICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKKyAgICAgICAg
ICAgIGJxYSB0MEdQUiAsIDB4ZmYsIC5mYWlsCisgICAgICAgICAgICBhdG9taWN3ZWFrY2FzYiB0
MEdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgam1wIC5kb25lCisgICAgICAgIC5mYWlsOgor
ICAgICAgICAgICAgYXRvbWljbG9hZGIgbWVtLCB0MEdQUgorICAgICAgICAuZG9uZToKKyAgICAg
ICAgZWxzZQorICAgICAgICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5rYWNxYiBtZW0sIHQx
R1BSCisgICAgICAgICAgICBicW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCisgICAgICAgICAgICBz
dG9yZWNvbmRyZWxiIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAw
LCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAgICAgICAg
ICAgc3RvcmVjb25kcmVsYiB0NUdQUiwgdDFHUFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQ
UiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAg
ICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCisgICAgICAgIGVuZAorICAgIGVuZCwKKyAgICBtYWNy
byh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BSKQorICAgICAgICBpZiBYODZfNjQgb3Ig
QVJNNjRFCisgICAgICAgICAgICBicWEgdDBHUFIsIDB4ZmZmZiwgLmZhaWwKKyAgICAgICAgICAg
IGF0b21pY3dlYWtjYXNoIHQwR1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICBqbXAgLmRvbmUK
KyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBhdG9taWNsb2FkaCBtZW0sIHQwR1BSCisgICAg
ICAgIC5kb25lOgorICAgICAgICBlbHNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9h
ZGxpbmthY3FoIG1lbSwgdDFHUFIKKyAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZh
aWwKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAg
ICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAg
LmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRyZWxoIHQ1R1BSLCB0MUdQUiwgbWVtCisgICAg
ICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAg
ICAgIC5kb25lOgorICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgZW5kCisg
ICAgZW5kLAorICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCisgICAg
ICAgIGlmIFg4Nl82NCBvciBBUk02NEUKKyAgICAgICAgICAgIGJxYSB0MEdQUiwgMHhmZmZmZmZm
ZiwgLmZhaWwKKyAgICAgICAgICAgIGF0b21pY3dlYWtjYXNpIHQwR1BSLCB0MkdQUiwgbWVtCisg
ICAgICAgICAgICBqbXAgLmRvbmUKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBhdG9taWNs
b2FkaSBtZW0sIHQwR1BSCisgICAgICAgIC5kb25lOgorICAgICAgICBlbHNlCisgICAgICAgIC5s
b29wOgorICAgICAgICAgICAgbG9hZGxpbmthY3FpIG1lbSwgdDFHUFIKKyAgICAgICAgICAgIGJx
bmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGkgdDVHUFIs
IHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAg
ICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1
R1BSLCB0MUdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAg
ICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAgICAgICAgbW92ZSB0MUdQUiwg
dDBHUFIKKyAgICAgICAgZW5kCisgICAgZW5kLAorICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVt
LCB0NUdQUiwgdDFHUFIpCisgICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKKyAgICAgICAgICAg
IGF0b21pY3dlYWtjYXNxIHQwR1BSLCB0MkdQUiwgbWVtCisgICAgICAgIGVsc2UKKyAgICAgICAg
Lmxvb3A6CisgICAgICAgICAgICBsb2FkbGlua2FjcXEgbWVtLCB0MUdQUgorICAgICAgICAgICAg
YnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kcmVscSB0NUdQ
UiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAg
ICAgIGptcCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbHEg
dDVHUFIsIHQxR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAg
ICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBtb3ZlIHQxR1BS
LCB0MEdQUgorICAgICAgICBlbmQKKyAgICBlbmQpCitlbmQKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vYXJtLnJiCmluZGV4IDk1Yzg1YzExMzQxYmU5NDk1ZjExZTc3ODhhNGIzNzBh
NmQ5MWJiYTkuLjdkZDUzNTA4OThiMjY0NzJjMDNmZTcwNjIyZjdmMjAwYmE4ZTJkZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybS5yYgorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIKQEAgLTYzLDYgKzYzLDExIEBAIGNs
YXNzIE5vZGUKICAgICAgICAgcmFpc2UgIkJvZ3VzIHJlZ2lzdGVyIG5hbWUgI3tkb3VibGVPcGVy
YW5kfSIgdW5sZXNzIGRvdWJsZU9wZXJhbmQgPX4gL15kLwogICAgICAgICAicyIgKyAoJH4ucG9z
dF9tYXRjaC50b19pICogMikudG9fcwogICAgIGVuZAorICAgIGRlZiBhcm1TaW5nbGVIaQorICAg
ICAgICBkb3VibGVPcGVyYW5kID0gYXJtT3BlcmFuZAorICAgICAgICByYWlzZSAiQm9ndXMgcmVn
aXN0ZXIgbmFtZSAje2RvdWJsZU9wZXJhbmR9IiB1bmxlc3MgZG91YmxlT3BlcmFuZCA9fiAvXmQv
CisgICAgICAgICJzIiArICgkfi5wb3N0X21hdGNoLnRvX2kgKiAyICsgMSkudG9fcworICAgIGVu
ZAogZW5kCiAKIGNsYXNzIFNwZWNpYWxSZWdpc3RlcgpAQCAtOTgsMjEgKzEwMywyMSBAQCBlbmQK
IGNsYXNzIFJlZ2lzdGVySUQKICAgICBkZWYgYXJtT3BlcmFuZAogICAgICAgICBjYXNlIG5hbWUK
LSAgICAgICAgd2hlbiAidDAiLCAiYTAiLCAicjAiCisgICAgICAgIHdoZW4gInQwIiwgImEwIiwg
IndhMCIsICJyMCIKICAgICAgICAgICAgICJyMCIKLSAgICAgICAgd2hlbiAidDEiLCAiYTEiLCAi
cjEiCisgICAgICAgIHdoZW4gInQxIiwgImExIiwgIndhMSIsICJyMSIKICAgICAgICAgICAgICJy
MSIKLSAgICAgICAgd2hlbiAidDIiLCAiYTIiCisgICAgICAgIHdoZW4gInQyIiwgImEyIiwgIndh
MiIKICAgICAgICAgICAgICJyMiIKLSAgICAgICAgd2hlbiAidDMiLCAiYTMiCisgICAgICAgIHdo
ZW4gInQzIiwgImEzIiwgIndhMyIKICAgICAgICAgICAgICJyMyIKICAgICAgICAgd2hlbiAidDQi
ICMgTExJbnQgUEMKICAgICAgICAgICAgICJyNCIKLSAgICAgICAgd2hlbiAidDUiCisgICAgICAg
IHdoZW4gInQ1IiwgIndzMCIgIyB3czAgbXVzdCBiZSBhIG5vbi1hcmd1bWVudC9ub24tcmV0dXJu
IEdQUgogICAgICAgICAgICAgInI1IgogICAgICAgICB3aGVuICJjZnIiCiAgICAgICAgICAgICAi
cjciCi0gICAgICAgIHdoZW4gInQ2IgorICAgICAgICB3aGVuICJ0NiIsICJ3czEiICMgd3MxIG11
c3QgYmUgYSBub24tYXJndW1lbnQvbm9uLXJldHVybiBHUFIKICAgICAgICAgICAgICJyOCIKICAg
ICAgICAgd2hlbiAidDciCiAgICAgICAgICAgICAicjkiICMgcjkgaXMgYWxzbyBhIHNjcmF0Y2gg
cmVnaXN0ZXIsIHNvIHVzZSBjYXJlZnVsbHkhCkBAIC0xMzUsMTggKzE0MCwyMiBAQCBlbmQKIGNs
YXNzIEZQUmVnaXN0ZXJJRAogICAgIGRlZiBhcm1PcGVyYW5kCiAgICAgICAgIGNhc2UgbmFtZQot
ICAgICAgICB3aGVuICJmdDAiLCAiZnIiLCAiZmEwIgorICAgICAgICB3aGVuICJmdDAiLCAiZnIi
LCAiZmEwIiwgIndmYTAiCiAgICAgICAgICAgICAiZDAiCi0gICAgICAgIHdoZW4gImZ0MSIsICJm
YTEiCisgICAgICAgIHdoZW4gImZ0MSIsICJmYTEiLCAid2ZhMSIKICAgICAgICAgICAgICJkMSIK
LSAgICAgICAgd2hlbiAiZnQyIgorICAgICAgICB3aGVuICJmdDIiLCAid2ZhMiIKICAgICAgICAg
ICAgICJkMiIKLSAgICAgICAgd2hlbiAiZnQzIgorICAgICAgICB3aGVuICJmdDMiLCAid2ZhMyIK
ICAgICAgICAgICAgICJkMyIKLSAgICAgICAgd2hlbiAiZnQ0IgorICAgICAgICB3aGVuICJmdDQi
LCAid2ZhNCIKICAgICAgICAgICAgICJkNCIKLSAgICAgICAgd2hlbiAiZnQ1IgorICAgICAgICB3
aGVuICJmdDUiLCAid2ZhNSIKICAgICAgICAgICAgICJkNSIKKyAgICAgICAgd2hlbiAiZnQ2Iiwg
IndmYTYiCisgICAgICAgICAgICAiZDYiCisgICAgICAgIHdoZW4gImZ0NyIsICJ3ZmE3IgorICAg
ICAgICAgICAgImQ3IgogICAgICAgICBlbHNlCiAgICAgICAgICAgICByYWlzZSAiQmFkIHJlZ2lz
dGVyICN7bmFtZX0gZm9yIEFSTSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgogICAgICAgICBlbmQK
QEAgLTE2Myw3ICsxNzIsMTEgQEAgZW5kCiBjbGFzcyBBZGRyZXNzCiAgICAgZGVmIGFybU9wZXJh
bmQKICAgICAgICAgcmFpc2UgIkJhZCBvZmZzZXQgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgaWYg
b2Zmc2V0LnZhbHVlIDwgLTB4ZmYgb3Igb2Zmc2V0LnZhbHVlID4gMHhmZmYKLSAgICAgICAgIlsj
e2Jhc2UuYXJtT3BlcmFuZH0sIFwjI3tvZmZzZXQudmFsdWV9XSIKKyAgICAgICAgaWYgb2Zmc2V0
LnZhbHVlID09IDAKKyAgICAgICAgICAiWyN7YmFzZS5hcm1PcGVyYW5kfV0iCisgICAgICAgIGVs
c2UKKyAgICAgICAgICAiWyN7YmFzZS5hcm1PcGVyYW5kfSwgXCMje29mZnNldC52YWx1ZX1dIgor
ICAgICAgICBlbmQKICAgICBlbmQKIGVuZAogCkBAIC0zMDYsMTYgKzMxOSwyNSBAQCBjbGFzcyBT
ZXF1ZW5jZQogICAgICAgICByZXN1bHQgPSBhcm1Mb3dlckxhYmVsUmVmZXJlbmNlcyhyZXN1bHQp
CiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3NlcyhyZXN1bHQpIHsK
ICAgICAgICAgICAgIHwgbm9kZSwgYWRkcmVzcyB8Ci0gICAgICAgICAgICBpZiBhZGRyZXNzLmlz
X2E/IEJhc2VJbmRleAotICAgICAgICAgICAgICAgIGFkZHJlc3Mub2Zmc2V0LnZhbHVlID09IDAK
LSAgICAgICAgICAgIGVsc2lmIGFkZHJlc3MuaXNfYT8gQWRkcmVzcwotICAgICAgICAgICAgICAg
ICgtMHhmZi4uMHhmZmYpLmluY2x1ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVlCisgICAgICAgICAg
ICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVuICJsb2FkMmlhIiwgInN0b3JlMmlh
IgorICAgICAgICAgICAgICAgIGlmIGFkZHJlc3MuaXNfYT8gQWRkcmVzcworICAgICAgICAgICAg
ICAgICAgICAoYWRkcmVzcy5vZmZzZXQudmFsdWUgJSA0ID09IDApICYmICgoLTEwMjMuLjEwMjMp
LmluY2x1ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVlKQorICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgZmFsc2UKKyAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICBmYWxzZQorICAgICAgICAgICAgICAgIGlmIGFkZHJlc3Mu
aXNfYT8gQmFzZUluZGV4CisgICAgICAgICAgICAgICAgICAgIGFkZHJlc3Mub2Zmc2V0LnZhbHVl
ID09IDAgJiYgbm9kZS5vcGNvZGUKKyAgICAgICAgICAgICAgICBlbHNpZiBhZGRyZXNzLmlzX2E/
IEFkZHJlc3MKKyAgICAgICAgICAgICAgICAgICAgKC0weGZmLi4weGZmZikuaW5jbHVkZT8gYWRk
cmVzcy5vZmZzZXQudmFsdWUKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIGZhbHNlCisgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICBlbmQKICAgICAgICAg
fQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXNEb3VibGUocmVz
dWx0KQotICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKHJlc3Vs
dCwgWyJzdG9yZWIiLCAic3RvcmVoIiwgInN0b3JlaSIsICJzdG9yZXAiLCAic3RvcmVxIl0pCisg
ICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMocmVzdWx0LCBbInN0
b3JlYiIsICJzdG9yZWgiLCAic3RvcmVpIiwgInN0b3JlcCIsICJzdG9yZXEiLCAic3RvcmUyaWEi
XSkKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRlcyhyZXN1bHQs
IDAuLjB4ZmYsIDAuLjB4MGZmKQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRB
ZGRyZXNzZXMocmVzdWx0KQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJSZWdpc3RlclJldXNl
KHJlc3VsdCkKQEAgLTMzNCw2ICszNTYsMTAgQEAgZGVmIGFybUZsaXBwZWRPcGVyYW5kcyhvcGVy
YW5kcykKICAgICBhcm1PcGVyYW5kcyhbb3BlcmFuZHNbLTFdXSArIG9wZXJhbmRzWzAuLi0yXSkK
IGVuZAogCitkZWYgYXJtRmxpcHBlZE9wZXJhbmRzUGFpcihvcGVyYW5kcykKKyAgICBhcm1PcGVy
YW5kcyhbb3BlcmFuZHNbLTJdLCBvcGVyYW5kc1stMV1dICsgb3BlcmFuZHNbMC4uLTNdKQorZW5k
CisKIGRlZiBlbWl0QXJtQ29tcGFjdChvcGNvZGUyLCBvcGNvZGUzLCBvcGVyYW5kcykKICAgICBp
ZiBvcGVyYW5kcy5zaXplID09IDMKICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZTN9ICN7YXJt
RmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCkBAIC0zNjMsNiArMzg5LDEyIEBAIGRlZiBlbWl0
QXJtRG91YmxlQnJhbmNoKGJyYW5jaE9wY29kZSwgb3BlcmFuZHMpCiAgICAgJGFzbS5wdXRzICIj
e2JyYW5jaE9wY29kZX0gI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCiBlbmQKIAorZGVmIGVtaXRB
cm1TaW5nbGVCcmFuY2goYnJhbmNoT3Bjb2RlLCBvcGVyYW5kcykKKyAgICAkYXNtLnB1dHMgInZj
bXBlLmYzMiAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xl
fSIKKyAgICAkYXNtLnB1dHMgInZtcnMgYXBzcl9uemN2LCBmcHNjciIKKyAgICAkYXNtLnB1dHMg
IiN7YnJhbmNoT3Bjb2RlfSAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKK2VuZAorCiBkZWYgZW1p
dEFybVRlc3Qob3BlcmFuZHMpCiAgICAgdmFsdWUgPSBvcGVyYW5kc1swXQogICAgIGNhc2Ugb3Bl
cmFuZHMuc2l6ZQpAQCAtMzgzLDcgKzQxNSwxNSBAQCBlbmQKIAogZGVmIGVtaXRBcm1Eb3VibGVD
b21wYXJlKG9wZXJhbmRzLCBjb2RlKQogICAgICRhc20ucHV0cyAibW92ICN7b3BlcmFuZHNbMl0u
YXJtT3BlcmFuZH0sIFwjMCIKLSAgICAkYXNtLnB1dHMgInZjbXBlLmY2NCAje2FybU9wZXJhbmRz
KG9wZXJhbmRzWzAuLjFdKX0iCisgICAgJGFzbS5wdXRzICJ2Y21wLmY2NCAje2FybU9wZXJhbmRz
KG9wZXJhbmRzWzAuLjFdKX0iCisgICAgJGFzbS5wdXRzICJ2bXJzIEFQU1JfbnpjdiwgRlBTQ1Ii
CisgICAgJGFzbS5wdXRzICJpdCAje2NvZGV9IgorICAgICRhc20ucHV0cyAibW92I3tjb2RlfSAj
e29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCBcIzEiCitlbmQKKworZGVmIGVtaXRBcm1GbG9hdENv
bXBhcmUob3BlcmFuZHMsIGNvZGUpCisgICAgJGFzbS5wdXRzICJtb3YgI3tvcGVyYW5kc1syXS5h
cm1PcGVyYW5kfSwgXCMwIgorICAgICRhc20ucHV0cyAidmNtcC5mMzIgI3tvcGVyYW5kc1swXS5h
cm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iCiAgICAgJGFzbS5wdXRzICJ2bXJz
IEFQU1JfbnpjdiwgRlBTQ1IiCiAgICAgJGFzbS5wdXRzICJpdCAje2NvZGV9IgogICAgICRhc20u
cHV0cyAibW92I3tjb2RlfSAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCBcIzEiCkBAIC00MDMs
NiArNDQzLDE5IEBAIGRlZiBlbWl0QXJtVGVzdFNldChvcGVyYW5kcywgY29kZSkKICAgICAkYXNt
LnB1dHMgIm1vdiN7Y29kZX0gI3tvcGVyYW5kc1stMV0uYXJtT3BlcmFuZH0sIFwjMSIKIGVuZAog
CitkZWYgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgdGV4dCkKKyAgICByZXR1cm4gSW5zdHJ1
Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJlbWl0IiwgW1N0cmluZ0xpdGVyYWwubmV3KGNvZGVPcmln
aW4sICJcIiN7dGV4dH1cIiIpXSkKK2VuZAorCitkZWYgZW1pdEFybVRydW5jYXRlRmxvYXQoY29k
ZU9yaWdpbiwgdG8sIGZyb20sIG9wZXJhbmRzKQorICAgIHRtcCA9IEFSTV9FWFRSQV9GUFJTWy0x
XQorICAgIHNyYyA9IGZyb20gPT0gImYzMiIgPyBvcGVyYW5kc1swXS5hcm1TaW5nbGUgOiBvcGVy
YW5kc1swXS5hcm1PcGVyYW5kCisgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAg
ICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgInZjdnQuI3t0b30uI3tmcm9tfSAje3RtcC5h
cm1TaW5nbGV9LCAje3NyY30iKSwKKyAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwg
InZtb3YgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3t0bXAuYXJtU2luZ2xlfSIpCisgICAg
XSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCitlbmQKKwogY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICBk
ZWYgbG93ZXJBUk12NwogICAgICAgICByYWlzZSB1bmxlc3MgJGFjdGl2ZUJhY2tlbmQgPT0gIkFS
TXY3IgpAQCAtNDQwLDYgKzQ5MywxMCBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAg
ICAgICAgICAkYXNtLnB1dHMgImFkZCN7c3VmZml4fSAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVy
YW5kcyl9IgogICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgZW5kCisgICAgICAgIHdo
ZW4gImFkY2kiCisgICAgICAgICAgICBlbWl0QXJtKCJhZGMiLCBvcGVyYW5kcykKKyAgICAgICAg
d2hlbiAiYWJzZCIKKyAgICAgICAgICAkYXNtLnB1dHMgInZhYnMuZjY0ICN7YXJtRmxpcHBlZE9w
ZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gImFuZGkiLCAiYW5kcCIKICAgICAgICAg
ICAgIGVtaXRBcm1Db21wYWN0KCJhbmRzIiwgImFuZCIsIG9wZXJhbmRzKQogICAgICAgICB3aGVu
ICJvcmkiLCAib3JwIiwgIm9yaCIKQEAgLTQ1OCwxNCArNTE1LDM0IEBAIGNsYXNzIEluc3RydWN0
aW9uCiAgICAgICAgICAgICBlbWl0QXJtKCJtdWwiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAi
c3ViaSIsICJzdWJwIiwgInN1YmlzIgogICAgICAgICAgICAgZW1pdEFybUNvbXBhY3QoInN1YnMi
LCAic3VicyIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJzYmNpIgorICAgICAgICAgICAgZW1p
dEFybSgic2JjIiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gIm5lZ2kiLCAibmVncCIKICAgICAg
ICAgICAgICRhc20ucHV0cyAicnNicyAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJh
bmRzWzBdLmFybU9wZXJhbmR9LCBcIzAiCiAgICAgICAgIHdoZW4gIm5vdGkiCiAgICAgICAgICAg
ICAkYXNtLnB1dHMgIm12bnMgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sw
XS5hcm1PcGVyYW5kfSIKKyAgICAgICAgd2hlbiAibHJvdGF0ZWkiCisgICAgICAgICAgICB0bXAg
PSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICBTZXF1ZW5jZS5uZXcoY29k
ZU9yaWdpbiwgWworICAgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAi
bW92ZSIsIFtvcGVyYW5kc1swXSwgdG1wXSksCisgICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24u
bmV3KGNvZGVPcmlnaW4sICJuZWdpIiwgW3RtcF0pLAorICAgICAgICAgICAgICAgIEluc3RydWN0
aW9uLm5ldyhjb2RlT3JpZ2luLCAicnJvdGF0ZWkiLCBbdG1wLCBvcGVyYW5kc1sxXV0pLAorICAg
ICAgICAgICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCisgICAgICAgIHdoZW4gInJyb3RhdGVp
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJyb3IgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFu
ZHMpfSIKKyAgICAgICAgd2hlbiAidHpjbnRpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJyYml0
ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgICAgICAkYXNtLnB1dHMg
ImNseiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9
IgorICAgICAgICB3aGVuICJsemNudGkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImNseiAje2Fy
bUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJsb2FkaSIsICJsb2Fk
aXMiLCAibG9hZHAiCiAgICAgICAgICAgICAkYXNtLnB1dHMgImxkciAje2FybUZsaXBwZWRPcGVy
YW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJzdG9yZWkiLCAic3RvcmVwIgogICAgICAg
ICAgICAgJGFzbS5wdXRzICJzdHIgI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3
aGVuICJsb2FkMmlhIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsZHJkICN7YXJtRmxpcHBlZE9w
ZXJhbmRzUGFpcihvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9yZTJpYSIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAic3RyZCAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdo
ZW4gImxvYWRiIgogICAgICAgICAgICAgJGFzbS5wdXRzICJsZHJiICN7YXJtRmxpcHBlZE9wZXJh
bmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gImxvYWRic2kiCkBAIC00NzgsMjAgKzU1NSwx
MTAgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgICRhc20ucHV0cyAibGRyc2gudyAj
e2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJzdG9yZWgiCiAg
ICAgICAgICAgICAkYXNtLnB1dHMgInN0cmggI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAg
ICAgICB3aGVuICJsb2FkbGlua2IiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmV4YiAje2Fy
bUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkbGlua2giCisg
ICAgICAgICAgICAkYXNtLnB1dHMgImxkcmV4aCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5k
cyl9IgorICAgICAgICB3aGVuICJsb2FkbGlua2kiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxk
cmV4ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRs
aW5rMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmV4ZCAje2FybUZsaXBwZWRPcGVyYW5k
c1BhaXIob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVjb25kYiIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAic3RyZXhiICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hl
biAic3RvcmVjb25kaCIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RyZXhoICN7YXJtT3BlcmFu
ZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVjb25kaSIKKyAgICAgICAgICAgICRh
c20ucHV0cyAic3RyZXggI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJz
dG9yZWNvbmQyaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RyZXhkICN7YXJtT3BlcmFuZHMo
b3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAibG9hZGQiCiAgICAgICAgICAgICAkYXNtLnB1dHMg
InZsZHIuNjQgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAi
c3RvcmVkIgogICAgICAgICAgICAgJGFzbS5wdXRzICJ2c3RyLjY0ICN7YXJtT3BlcmFuZHMob3Bl
cmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGYiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZs
ZHIuMzIgI3tvcGVyYW5kc1stMV0uYXJtU2luZ2xlfSwgI3thcm1PcGVyYW5kcyhvcGVyYW5kc1sw
Li4tMl0pfSIKKyAgICAgICAgd2hlbiAic3RvcmVmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2
c3RyLjMyICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSwgI3thcm1PcGVyYW5kcyhvcGVyYW5kc1sx
Li4tMV0pfSIKKyAgICAgICAgd2hlbiAiYWRkZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmFk
ZC5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0s
ICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAic3ViZiIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAidnN1Yi5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJh
bmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hl
biAibXVsZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm11bC5mMzIgI3tvcGVyYW5kc1sxXS5h
cm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2lu
Z2xlfSIKKyAgICAgICAgd2hlbiAiZGl2ZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmRpdi5m
MzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7
b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAic3FydGYiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgInZzcXJ0LmYzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFu
ZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAiYWJzZiIKKyAgICAgICAgICAgICRhc20u
cHV0cyAidmFicy5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFy
bVNpbmdsZX0iCisgICAgICAgIHdoZW4gIm5lZ2YiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZu
ZWcuZjMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9
IgorICAgICAgICB3aGVuICJiZmx0IgorICAgICAgICAgICAgZW1pdEFybVNpbmdsZUJyYW5jaCgi
Ym1pIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJmbHR1biIKKyAgICAgICAgICAgIGVtaXRB
cm1TaW5nbGVCcmFuY2goImJsdCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZmx0ZXF1biIK
KyAgICAgICAgICAgIGVtaXRBcm1TaW5nbGVCcmFuY2goImJsZSIsIG9wZXJhbmRzKQorICAgICAg
ICB3aGVuICJiZmVxIgorICAgICAgICAgICAgZW1pdEFybVNpbmdsZUJyYW5jaCgiYmVxIiwgb3Bl
cmFuZHMpCisgICAgICAgIHdoZW4gImJmZ3QiCisgICAgICAgICAgICBlbWl0QXJtU2luZ2xlQnJh
bmNoKCJiZ3QiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmZndGVxdW4iCisgICAgICAgICAg
ICBlbWl0QXJtU2luZ2xlQnJhbmNoKCJicGwiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRs
dHVuIgorICAgICAgICAgICAgZW1pdEFybURvdWJsZUJyYW5jaCgiYmx0Iiwgb3BlcmFuZHMpCiAg
ICAgICAgIHdoZW4gImFkZGQiCiAgICAgICAgICAgICBlbWl0QXJtKCJ2YWRkLmY2NCIsIG9wZXJh
bmRzKQotICAgICAgICB3aGVuICJkaXZkIgotICAgICAgICAgICAgZW1pdEFybSgidmRpdi5mNjQi
LCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAic3ViZCIKICAgICAgICAgICAgIGVtaXRBcm0oInZz
dWIuZjY0Iiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gIm11bGQiCiAgICAgICAgICAgICBlbWl0
QXJtKCJ2bXVsLmY2NCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJkaXZkIgorICAgICAgICAg
ICAgZW1pdEFybSgidmRpdi5mNjQiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAic3FydGQiCiAg
ICAgICAgICAgICAkYXNtLnB1dHMgInZzcXJ0LmY2NCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVy
YW5kcyl9IgorICAgICAgICB3aGVuICJuZWdkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bmVn
LmY2NCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJvcmYi
CisgICAgICAgICAgICAodG1wTGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0xXQor
ICAgICAgICAgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAgcmF3
SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29w
ZXJhbmRzWzBdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29k
ZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNp
bmdsZX0iKSwKKyAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJvcmki
LCBbdG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9y
aWdpbiwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3t0bXBSaHMuYXJtT3BlcmFu
ZH0iKQorICAgICAgICAgICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCisgICAgICAgIHdoZW4g
ImFuZGYiCisgICAgICAgICAgICAodG1wTGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNbLTIu
Li0xXQorICAgICAgICAgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgICAg
ICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9
LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rp
b24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFd
LmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4s
ICJhbmRpIiwgW3RtcExocywgdG1wUmhzXSksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9u
KGNvZGVPcmlnaW4sICAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7dG1wUmhzLmFy
bU9wZXJhbmR9IikKKyAgICAgICAgICAgIF0pLmxvd2VyKCRhY3RpdmVCYWNrZW5kKQorICAgICAg
ICB3aGVuICJvcmQiCisgICAgICAgICAgICAodG1wTGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQ
UlNbLTIuLi0xXQorICAgICAgICAgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAg
ICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9w
ZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5z
dHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJh
bmRzWzFdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVP
cmlnaW4sICJvcmkiLCBbdG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1
Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3t0bXBS
aHMuYXJtT3BlcmFuZH0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdp
biwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZUhp
fSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0
bXBSaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlSGl9IiksCisgICAgICAg
ICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAib3JpIiwgW3RtcExocywgdG1wUmhz
XSksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje29w
ZXJhbmRzWzFdLmFybVNpbmdsZUhpfSwgI3t0bXBSaHMuYXJtT3BlcmFuZH0iKQorICAgICAgICAg
ICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCisgICAgICAgIHdoZW4gImFuZGQiCisgICAgICAg
ICAgICAodG1wTGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0xXQorICAgICAgICAg
ICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rp
b24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBd
LmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwg
ICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iKSwK
KyAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJhbmRpIiwgW3RtcExo
cywgdG1wUmhzXSksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAi
dm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7dG1wUmhzLmFybU9wZXJhbmR9IiksCisg
ICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcExocy5h
cm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGVIaX0iKSwKKyAgICAgICAgICAgICAg
cmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAj
e29wZXJhbmRzWzFdLmFybVNpbmdsZUhpfSIpLAorICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5u
ZXcoY29kZU9yaWdpbiwgImFuZGkiLCBbdG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAg
cmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xl
SGl9LCAje3RtcFJocy5hcm1PcGVyYW5kfSIpCisgICAgICAgICAgICBdKS5sb3dlcigkYWN0aXZl
QmFja2VuZCkKICAgICAgICAgd2hlbiAiY2kyZHMiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZt
b3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9Igog
ICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmY2NC5zMzIgI3tvcGVyYW5kc1sxXS5hcm1PcGVy
YW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IgpAQCAtNTQ0LDYgKzcxMSw4IEBAIGNsYXNz
IEluc3RydWN0aW9uCiAgICAgICAgIHdoZW4gIm1vdmR6IgogICAgICAgICAgICAgIyBGSVhNRTog
ZWl0aGVyIHN1cHBvcnQgdGhpcyBvciByZW1vdmUgaXQuCiAgICAgICAgICAgICByYWlzZSAiQVJN
IGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcGNvZGUgeWV0LCAje2NvZGVPcmlnaW59IgorICAgICAg
ICB3aGVuICJtb3ZlZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdi5mNjQgI3thcm1GbGlw
cGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAicG9wIgogICAgICAgICAgICAg
b3BlcmFuZHMuZWFjaCB7CiAgICAgICAgICAgICAgICAgfCBvcCB8CkBAIC01NjAsOSArNzI5LDE3
IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAg
JGFzbS5wdXRzICJtb3YgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAg
ICAgIGVuZAorICAgICAgICB3aGVuICJtb3ZlaWkiCisgICAgICAgICAgICByYWlzZSAiRmlyc3Qg
b3BlcmFuZCBvZiBtb3ZlaWkgbXVzdCBiZSBhbiBpbW1lZGlhdGUiIHVubGVzcyBvcGVyYW5kc1sw
XS5pbW1lZGlhdGU/CisgICAgICAgICAgICBhcm1Nb3ZlSW1tZWRpYXRlKG9wZXJhbmRzWzBdLnZh
bHVlID4+IDMyLCBvcGVyYW5kc1sxXSkKKyAgICAgICAgICAgIGFybU1vdmVJbW1lZGlhdGUob3Bl
cmFuZHNbMF0udmFsdWUgJiAweGZmZmZmZmZmLCBvcGVyYW5kc1syXSkKICAgICAgICAgd2hlbiAi
bXZsYmwiCiAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3Z3ICN7b3BlcmFuZHNbMV0uYXJt
T3BlcmFuZH0sIFwjOmxvd2VyMTY6I3tvcGVyYW5kc1swXS52YWx1ZX0iCiAgICAgICAgICAgICAg
ICAgJGFzbS5wdXRzICJtb3Z0ICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sIFwjOnVwcGVyMTY6
I3tvcGVyYW5kc1swXS52YWx1ZX0iCisgICAgICAgIHdoZW4gInN4YjJpIgorICAgICAgICAgICAg
JGFzbS5wdXRzICJzeHRiICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAg
IHdoZW4gInN4aDJpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzeHRoICN7YXJtRmxpcHBlZE9w
ZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gIm5vcCIKICAgICAgICAgICAgICRhc20u
cHV0cyAibm9wIgogICAgICAgICB3aGVuICJiaWVxIiwgImJwZXEiLCAiYmJlcSIKQEAgLTY1Niwx
NCArODMzLDQ2IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBlbWl0QXJtQ29tcGFy
ZShvcGVyYW5kcywgImx0IikKICAgICAgICAgd2hlbiAiY2lsdGVxIiwgImNwbHRlcSIsICJjYmx0
ZXEiCiAgICAgICAgICAgICBlbWl0QXJtQ29tcGFyZShvcGVyYW5kcywgImxlIikKLSAgICAgICAg
d2hlbiAiY2RndCIKLSAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAi
Z3QiKQotICAgICAgICB3aGVuICJjZGd0ZXEiCi0gICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29t
cGFyZShvcGVyYW5kcywgImdlIikKKyAgICAgICAgd2hlbiAiY2ZlcSIKKyAgICAgICAgICAgIGVt
aXRBcm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJlcSIpCisgICAgICAgIHdoZW4gImNmbmVxdW4i
CisgICAgICAgICAgICBlbWl0QXJtRmxvYXRDb21wYXJlKG9wZXJhbmRzLCAibmUiKQorICAgICAg
ICB3aGVuICJjZmx0IgorICAgICAgICAgICAgZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywg
Im1pIikKKyAgICAgICAgd2hlbiAiY2ZsdGVxIgorICAgICAgICAgICAgZW1pdEFybUZsb2F0Q29t
cGFyZShvcGVyYW5kcywgImxzIikKKyAgICAgICAgd2hlbiAiY2ZndCIKKyAgICAgICAgICAgIGVt
aXRBcm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJndCIpCisgICAgICAgIHdoZW4gImNmZ3RlcSIK
KyAgICAgICAgICAgIGVtaXRBcm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJnZSIpCisgICAgICAg
IHdoZW4gImNkZXEiCisgICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywg
ImVxIikKKyAgICAgICAgd2hlbiAiY2RuZXF1biIKKyAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVD
b21wYXJlKG9wZXJhbmRzLCAibmUiKQogICAgICAgICB3aGVuICJjZGx0IgogICAgICAgICAgICAg
ZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMsICJtaSIpCiAgICAgICAgIHdoZW4gImNkbHRl
cSIKICAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAibHMiKQorICAg
ICAgICB3aGVuICJjZGd0IgorICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFu
ZHMsICJndCIpCisgICAgICAgIHdoZW4gImNkZ3RlcSIKKyAgICAgICAgICAgIGVtaXRBcm1Eb3Vi
bGVDb21wYXJlKG9wZXJhbmRzLCAiZ2UiKQorICAgICAgICB3aGVuICJjZjJkIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJ2Y3Z0LmY2NC5mMzIgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tv
cGVyYW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJjZDJmIgorICAgICAgICAgICAg
JGFzbS5wdXRzICJ2Y3Z0LmYzMi5mNjQgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJh
bmRzWzBdLmFybU9wZXJhbmR9IgorICAgICAgICB3aGVuICJjaTJmIgorICAgICAgICAgICAgJGFz
bS5wdXRzICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1P
cGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmN2dC5mMzIudTMyICN7b3BlcmFuZHNb
MV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJj
aTJmcyIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmds
ZX0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInZj
dnQuZjMyLnMzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2lu
Z2xlfSIKKyAgICAgICAgd2hlbiAiY2kyZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAj
e29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAg
ICAgICAgICAkYXNtLnB1dHMgInZjdnQuZjY0LnUzMiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9
LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gImNpMmRzIgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5k
c1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmN2dC5mNjQuczMyICN7
b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKICAgICAg
ICAgd2hlbiAidGlzIiwgInRicyIsICJ0cHMiCiAgICAgICAgICAgICBlbWl0QXJtVGVzdFNldChv
cGVyYW5kcywgIm1pIikKICAgICAgICAgd2hlbiAidGl6IiwgInRieiIsICJ0cHoiCkBAIC02NzQs
MTAgKzg4MywyMiBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgJGFzbS5wdXRzICJs
ZHIgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgW3NwLCBcIyN7b3BlcmFuZHNbMF0udmFsdWUg
KiA0fV0iCiAgICAgICAgIHdoZW4gInBva2UiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInN0ciAj
e29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCBbc3AsIFwjI3tvcGVyYW5kc1swXS52YWx1ZSAqIDR9
XSIKKyAgICAgICAgd2hlbiAiZmkyZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29w
ZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAg
IHdoZW4gImZmMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5h
cm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IgogICAgICAgICB3aGVuICJmaWky
ZCIKICAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9
LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9Igog
ICAgICAgICB3aGVuICJmZDJpaSIKICAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJh
bmRzWzFdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCAje29wZXJhbmRz
WzBdLmFybU9wZXJhbmR9IgorICAgICAgICB3aGVuICJ0cnVuY2F0ZWYyaSIKKyAgICAgICAgICAg
IGVtaXRBcm1UcnVuY2F0ZUZsb2F0KGNvZGVPcmlnaW4sICJ1MzIiLCAiZjMyIiwgb3BlcmFuZHMp
CisgICAgICAgIHdoZW4gInRydW5jYXRlZjJpcyIKKyAgICAgICAgICAgIGVtaXRBcm1UcnVuY2F0
ZUZsb2F0KGNvZGVPcmlnaW4sICJzMzIiLCAiZjMyIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4g
InRydW5jYXRlZDJpIgorICAgICAgICAgICAgZW1pdEFybVRydW5jYXRlRmxvYXQoY29kZU9yaWdp
biwgInUzMiIsICJmNjQiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAidHJ1bmNhdGVkMmlzIgor
ICAgICAgICAgICAgZW1pdEFybVRydW5jYXRlRmxvYXQoY29kZU9yaWdpbiwgInMzMiIsICJmNjQi
LCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAiYm8iCiAgICAgICAgICAgICAkYXNtLnB1dHMgImJ2
cyAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKICAgICAgICAgd2hlbiAiYnMiCkBAIC02ODYsMTMg
KzkwNywxNyBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgJGFzbS5wdXRzICJiZXEg
I3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCiAgICAgICAgIHdoZW4gImJueiIKICAgICAgICAgICAg
ICRhc20ucHV0cyAiYm5lICN7b3BlcmFuZHNbMF0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJi
Y3MiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJjcyAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIK
ICAgICAgICAgd2hlbiAibGVhaSIsICJsZWFwIgogICAgICAgICAgICAgb3BlcmFuZHNbMF0uYXJt
RW1pdExlYShvcGVyYW5kc1sxXSkKLSAgICAgICAgd2hlbiAic211bGxpIgorICAgICAgICB3aGVu
ICJzbXVsbGkiLCAidW11bGxpIgogICAgICAgICAgICAgcmFpc2UgIldyb25nIG51bWJlciBvZiBh
cmd1bWVudHMgdG8gc211bGwgaW4gI3tzZWxmLmluc3BlY3R9IGF0ICN7Y29kZU9yaWdpblN0cmlu
Z30iIHVubGVzcyBvcGVyYW5kcy5sZW5ndGggPT0gNAotICAgICAgICAgICAgJGFzbS5wdXRzICJz
bXVsbCAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzNdLmFybU9wZXJhbmR9
LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9Igor
ICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZVswLi4tMl19ICN7b3BlcmFuZHNbMl0uYXJt
T3BlcmFuZH0sICN7b3BlcmFuZHNbM10uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtT3Bl
cmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCiAgICAgICAgIHdoZW4gIm1lbWZlbmNl
IgogICAgICAgICAgICAgJGFzbS5wdXRzICJkbWIgc3kiCisgICAgICAgIHdoZW4gImZlbmNlIgor
ICAgICAgICAgICAgJGFzbS5wdXRzICJkbWIgaXNoIgogICAgICAgICB3aGVuICJjbHJicCIKICAg
ICAgICAgICAgICRhc20ucHV0cyAiYmljICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7b3Bl
cmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCiAgICAgICAg
IHdoZW4gImdsb2JhbGFkZHIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9pbnN0cnVjdGlvbnMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFz
bS9pbnN0cnVjdGlvbnMucmIKaW5kZXggNTRiMDI3ZjNkYTAxNzczODM0NWU5ZDJiNjE4Zjc0ODBm
MDg0ZWQ0NC4uN2UyODBiN2Y3OGI0NmRmNDY4NDE2ZmE1YTQ1MWI2OWIzMWJkZmE4MSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgpAQCAt
NTksNiArNTksNyBAQCBNQUNST19JTlNUUlVDVElPTlMgPQogICAgICAicnJvdGF0ZXEiLAogICAg
ICAic3ViaSIsCiAgICAgICJ4b3JpIiwKKyAgICAgImxvYWQyaWEiLAogICAgICAibG9hZGkiLAog
ICAgICAibG9hZGlzIiwKICAgICAgImxvYWRiIiwKQEAgLTY3LDYgKzY4LDcgQEAgTUFDUk9fSU5T
VFJVQ1RJT05TID0KICAgICAgImxvYWRoIiwKICAgICAgImxvYWRoc2kiLAogICAgICAibG9hZGhz
cSIsCisgICAgICJzdG9yZTJpYSIsCiAgICAgICJzdG9yZWkiLAogICAgICAic3RvcmVoIiwKICAg
ICAgInN0b3JlYiIsCkBAIC0zNzcsOSArMzc5LDIxIEBAIFg4Nl9JTlNUUlVDVElPTlMgPQogCiBB
Uk1fSU5TVFJVQ1RJT05TID0KICAgICBbCisgICAgICJhZGNpIiwKKyAgICAgImJjcyIsCiAgICAg
ICJjbHJicCIsCiAgICAgICJtdmxibCIsCi0gICAgICJnbG9iYWxhZGRyIgorICAgICAiZ2xvYmFs
YWRkciIsCisgICAgICJzYmNpIiwKKyAgICAgIm1vdmVpaSIsCisgICAgICJsb2FkbGlua2IiLAor
ICAgICAibG9hZGxpbmtoIiwKKyAgICAgImxvYWRsaW5raSIsCisgICAgICJsb2FkbGluazJpIiwK
KyAgICAgInN0b3JlY29uZGIiLAorICAgICAic3RvcmVjb25kaCIsCisgICAgICJzdG9yZWNvbmRp
IiwKKyAgICAgInN0b3JlY29uZDJpIiwKICAgICBdCiAKIEFSTTY0X0lOU1RSVUNUSU9OUyA9CkBA
IC00MzEsNiArNDQ1LDcgQEAgQVJNNjRfSU5TVFJVQ1RJT05TID0KIFJJU0NfSU5TVFJVQ1RJT05T
ID0KICAgICBbCiAgICAgICJzbXVsbGkiLCAgIyBNdWx0aXBseSB0d28gMzItYml0IHdvcmRzIGFu
ZCBwcm9kdWNlIGEgNjQtYml0IHdvcmQKKyAgICAgInVtdWxsaSIsICAjIE11bHRpcGx5IHR3byAz
Mi1iaXQgd29yZHMgYW5kIHByb2R1Y2UgYSA2NC1iaXQgd29yZAogICAgICAiYWRkaXMiLCAgICMg
QWRkIGludGVnZXJzIGFuZCBzZXQgYSBmbGFnLgogICAgICAic3ViaXMiLCAgICMgU2FtZSwgYnV0
IGZvciBzdWJ0cmFjdGlvbi4KICAgICAgIm9yaXMiLCAgICAjIFNhbWUsIGJ1dCBmb3IgYml0d2lz
ZSBvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lz
dGVycy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5yYgpp
bmRleCAwZGM0NGMyM2RmYjJiYWQzNjVhMGZlYjU3MTAzYWQyZmQzM2ZlYWU0Li42N2Y1MjcxYTUz
NzVhYzFmMTM0NGI4NjkzNzViNzgwYTg3YWNiOTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiCkBAIC01OCw3ICs1OCw4IEBAIEdQUlMgPQogICAg
ICAiY3NyNyIsCiAgICAgICJjc3I4IiwKICAgICAgImNzcjkiLAotICAgICAiY3NyMTAiCisgICAg
ICJjc3IxMCIsCisgICAgICJpbnZhbGlkR1BSIgogICAgIF0KIAogRlBSUyA9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYgppbmRleCAwZjA3MmU5ZmQxMWUxNTg1YWFmM2Rk
OGViMDUwZmZkOTQ2MjM5ZGYyLi4zNDY0NTk2MmY3NDMwNWYzNmQ1OGM5ZjI3ZDRlNDRlYmRiNTM0
ZmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJi
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIKQEAgLTI1OSw4
ICsyNTksMTIgQEAgZGVmIHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc0RvdWJsZShsaXN0KQog
ICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQogICAgICAgICAgICAgd2hlbiAibG9hZGQiCiAg
ICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2lu
LCAibG9hZGQiLCBbbm9kZS5vcGVyYW5kc1swXS5yaXNjRG91YmxlQWRkcmVzcyhuZXdMaXN0KSwg
bm9kZS5vcGVyYW5kc1sxXV0sIG5vZGUuYW5ub3RhdGlvbikKKyAgICAgICAgICAgIHdoZW4gImxv
YWRmIgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29k
ZU9yaWdpbiwgImxvYWRmIiwgW25vZGUub3BlcmFuZHNbMF0ucmlzY0RvdWJsZUFkZHJlc3MobmV3
TGlzdCksIG5vZGUub3BlcmFuZHNbMV1dLCBub2RlLmFubm90YXRpb24pCiAgICAgICAgICAgICB3
aGVuICJzdG9yZWQiCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
bm9kZS5jb2RlT3JpZ2luLCAic3RvcmVkIiwgW25vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFu
ZHNbMV0ucmlzY0RvdWJsZUFkZHJlc3MobmV3TGlzdCldLCBub2RlLmFubm90YXRpb24pCisgICAg
ICAgICAgICB3aGVuICJzdG9yZWYiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVj
dGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic3RvcmVmIiwgW25vZGUub3BlcmFuZHNbMF0sIG5v
ZGUub3BlcmFuZHNbMV0ucmlzY0RvdWJsZUFkZHJlc3MobmV3TGlzdCldLCBub2RlLmFubm90YXRp
b24pCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCiAg
ICAgICAgICAgICBlbmQKQEAgLTM2OSw3ICszNzMsNyBAQCBkZWYgcmlzY0xvd2VyTWFsZm9ybWVk
SW1tZWRpYXRlcyhsaXN0LCB2YWxpZEltbWVkaWF0ZXMsIHZhbGlkTG9naWNhbEltbWVkaWF0ZXMp
CiAgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGFubm90YXRp
b24gPSBub2RlLmFubm90YXRpb24KICAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKLSAgICAg
ICAgICAgIHdoZW4gIm1vdmUiCisgICAgICAgICAgICB3aGVuICJtb3ZlIiwgIm1vdmVpaSIKICAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKICAgICAgICAgICAgIHdoZW4gImFkZGkiLCAi
YWRkcCIsICJhZGRxIiwgImFkZGlzIiwgInN1YmkiLCAic3VicCIsICJzdWJxIiwgInN1YmlzIgog
ICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlIGFuZApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCmluZGV4IDE2OTgwN2M0
NzBlOGY5MGYxMmE1N2JiNGNiNGIxYjMyZTk1MjE1ZDIuLmY2ZjYwYmFkMDAyNjRkYzAyYjNiNmQ3
NmRjOThhMDg2NjZiZDk2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ0pTVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NK
U1ZhbHVlLmgKQEAgLTE2Miw4ICsxNjIsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhw
ciB1aW50MzJfdCBOdWxsVGFnID0gICAgICAgICAweGZmZmZmZmZkOwogICAgIHN0YXRpYyBjb25z
dGV4cHIgdWludDMyX3QgVW5kZWZpbmVkVGFnID0gICAgMHhmZmZmZmZmYzsKICAgICBzdGF0aWMg
Y29uc3RleHByIHVpbnQzMl90IENlbGxUYWcgPSAgICAgICAgIDB4ZmZmZmZmZmI7Ci0gICAgc3Rh
dGljIGNvbnN0ZXhwciB1aW50MzJfdCBFbXB0eVZhbHVlVGFnID0gICAweGZmZmZmZmZhOwotICAg
IHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgRGVsZXRlZFZhbHVlVGFnID0gMHhmZmZmZmZmOTsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IFdhc21UYWcgPSAgICAgICAgIDB4ZmZmZmZm
ZmE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBFbXB0eVZhbHVlVGFnID0gICAweGZm
ZmZmZmY5OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgRGVsZXRlZFZhbHVlVGFnID0g
MHhmZmZmZmZmODsKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgTG93ZXN0VGFnID0g
IERlbGV0ZWRWYWx1ZVRhZzsKICNlbmRpZgpAQCAtMTgwLDYgKzE4MSw5IEBAIHB1YmxpYzoKICAg
ICBlbnVtIEVuY29kZUFzQmlnSW50MzJUYWcgeyBFbmNvZGVBc0JpZ0ludDMyIH07CiAjZW5kaWYK
ICAgICBlbnVtIEVuY29kZUFzRG91YmxlVGFnIHsgRW5jb2RlQXNEb3VibGUgfTsKKyNpZiBFTkFC
TEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgZW51bSBFbmNvZGVBc1Vu
Ym94ZWRGbG9hdFRhZyB7IEVuY29kZUFzVW5ib3hlZEZsb2F0IH07CisjZW5kaWYKIAogICAgIEpT
VmFsdWUoKTsKICAgICBKU1ZhbHVlKEpTTnVsbFRhZyk7CkBAIC0xOTEsNiArMTk1LDkgQEAgcHVi
bGljOgogI2lmIFVTRShCSUdJTlQzMikKICAgICBKU1ZhbHVlKEVuY29kZUFzQmlnSW50MzJUYWcs
IGludDMyX3QpOwogI2VuZGlmCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBVU0UoSlNWQUxV
RTMyXzY0KQorICAgIEpTVmFsdWUoRW5jb2RlQXNVbmJveGVkRmxvYXRUYWcsIGZsb2F0KTsKKyNl
bmRpZgogCiAgICAgLy8gTnVtYmVycwogICAgIEpTVmFsdWUoRW5jb2RlQXNEb3VibGVUYWcsIGRv
dWJsZSk7CkBAIC01OTIsNiArNTk5LDEzIEBAIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc0JpZ0lu
dDMyKGludDMyX3QgaW50VmFsdWUpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJM
WSkgJiYgVVNFKEpTVkFMVUUzMl82NCkKK0FMV0FZU19JTkxJTkUgSlNWYWx1ZSB3YXNtVW5ib3hl
ZEZsb2F0KGZsb2F0IGYpCit7CisgICAgcmV0dXJuIEpTVmFsdWUoSlNWYWx1ZTo6RW5jb2RlQXNV
bmJveGVkRmxvYXQsIGYpOworfQorI2VuZGlmCisKIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc0Rv
dWJsZU51bWJlcihkb3VibGUgZCkKIHsKICAgICBBU1NFUlQoSlNWYWx1ZShKU1ZhbHVlOjpFbmNv
ZGVBc0RvdWJsZSwgZCkuaXNOdW1iZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAppbmRleCA3OTI2NzYzY2Q1NjVkZWJiMWEwYjFj
OWNmMTdmZDMwOTIxNDQ4NjZhLi45YzUyZGM5OTUyY2E2NzBjYjgzODdjMmNlMGEzMmZmNGQwMTNj
ODI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVl
SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJ
bmxpbmVzLmgKQEAgLTYxOSw2ICs2MTksMTMgQEAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoRW5j
b2RlQXNCaWdJbnQzMlRhZywgaW50MzJfdCB2YWx1ZSkKIH0KICNlbmRpZiAvLyBVU0UoQklHSU5U
MzIpCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVFMzJfNjQpCitpbmxp
bmUgSlNWYWx1ZTo6SlNWYWx1ZShFbmNvZGVBc1VuYm94ZWRGbG9hdFRhZywgZmxvYXQgdmFsdWUp
Cit7CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSk7
Cit9CisjZW5kaWYKKwogaW5saW5lIGludDY0X3QgdHJ5Q29udmVydFRvSW50NTIoZG91YmxlIG51
bWJlcikKIHsKICAgICBpZiAobnVtYmVyICE9IG51bWJlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCmluZGV4IDJkNzI5YWUyNWVkMzI0
YTU3MmM3ZWQzZGQ0ZjBmYjQyYmFhNTMyYjMuLmYxMTYxMzE2ZDJlNmE0MTgyNWFhNTVkMWQ5NjQ1
YTZiYjQyM2NhYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21B
aXJJUkdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFp
cklSR2VuZXJhdG9yLmNwcApAQCAtODQwLDYgKzg0MCwxNSBAQCBwcml2YXRlOgogICAgIHRlbXBs
YXRlIDx0eXBlbmFtZSBGdW5jdGlvbj4KICAgICB2b2lkIGZvckVhY2hMaXZlVmFsdWUoRnVuY3Rp
b24pOwogCisgICAgYm9vbCB1c2VTaWduYWxpbmdNZW1vcnkoKSBjb25zdAorICAgIHsKKyNpZiBF
TkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKKyAgICAgICAgcmV0dXJuIG1fbW9k
ZSA9PSBNZW1vcnlNb2RlOjpTaWduYWxpbmc7CisjZWxzZQorICAgICAgICByZXR1cm4gZmFsc2U7
CisjZW5kaWYKKyAgICB9CisKICAgICBGdW5jdGlvblBhcnNlcjxBaXJJUkdlbmVyYXRvcj4qIG1f
cGFyc2VyIHsgbnVsbHB0ciB9OwogICAgIGNvbnN0IE1vZHVsZUluZm9ybWF0aW9uJiBtX2luZm87
CiAgICAgY29uc3QgTWVtb3J5TW9kZSBtX21vZGUgeyBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2lu
ZyB9OwpAQCAtOTU3LDcgKzk2Niw3IEBAIEFpcklSR2VuZXJhdG9yOjpBaXJJUkdlbmVyYXRvcihj
b25zdCBNb2R1bGVJbmZvcm1hdGlvbiYgaW5mbywgQjM6OlByb2NlZHVyZSYgcHJvCiAgICAgaWYg
KCFDb250ZXh0Ojp1c2VGYXN0VExTKCkpCiAgICAgICAgIG1fY29kZS5waW5SZWdpc3RlcihtX3dh
c21Db250ZXh0SW5zdGFuY2VHUFIpOwogCi0gICAgaWYgKG1vZGUgIT0gTWVtb3J5TW9kZTo6U2ln
bmFsaW5nKSB7CisgICAgaWYgKG1vZGUgPT0gTWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcpIHsK
ICAgICAgICAgbV9ib3VuZHNDaGVja2luZ1NpemVHUFIgPSBwaW5uZWRSZWdzLmJvdW5kc0NoZWNr
aW5nU2l6ZVJlZ2lzdGVyOwogICAgICAgICBtX2NvZGUucGluUmVnaXN0ZXIobV9ib3VuZHNDaGVj
a2luZ1NpemVHUFIpOwogICAgIH0KQEAgLTE3OTIsNiArMTgwMSw3IEBAIGlubGluZSBBaXJJUkdl
bmVyYXRvcjo6RXhwcmVzc2lvblR5cGUgQWlySVJHZW5lcmF0b3I6OmVtaXRDaGVja0FuZFByZXBh
cmVQb2ludGVyCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJM
WV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIGNhc2UgTWVtb3J5TW9kZTo6U2lnbmFsaW5nOiB7CiAg
ICAgICAgIC8vIFdlJ3ZlIHZpcnR1YWxseSBtYXBwZWQgNEdpQityZWR6b25lIGZvciB0aGlzIG1l
bW9yeS4gT25seSB0aGUgdXNlci1hbGxvY2F0ZWQgcGFnZXMgYXJlIGFkZHJlc3NhYmxlLCBjb250
aWd1b3VzbHkgaW4gcmFuZ2UgWzAsIGN1cnJlbnRdLAogICAgICAgICAvLyBhbmQgZXZlcnl0aGlu
ZyBhYm92ZSBpcyBtYXBwZWQgUFJPVF9OT05FLiBXZSBkb24ndCBuZWVkIHRvIHBlcmZvcm0gYW55
IGV4cGxpY2l0IGJvdW5kcyBjaGVjayBpbiB0aGUgNEdpQiByYW5nZSBiZWNhdXNlIFdlYkFzc2Vt
Ymx5IHJlZ2lzdGVyCkBAIC0xODE4LDYgKzE4MjgsNyBAQCBpbmxpbmUgQWlySVJHZW5lcmF0b3I6
OkV4cHJlc3Npb25UeXBlIEFpcklSR2VuZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRl
cgogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyNlbmRpZgogICAgIH0KIAogICAg
IGFwcGVuZChBZGQ2NCwgVG1wKG1fbWVtb3J5QmFzZUdQUiksIHJlc3VsdCk7CkBAIC0zNjkzLDcg
KzM3MDQsNyBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjphZGRDYWxsKHVpbnQzMl90IGZ1bmN0aW9u
SW5kZXgsIGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlLAogICAgICAgICBhdXRvKiBwYXRjaHBv
aW50ID0gcGFpci5maXJzdDsKICAgICAgICAgYXV0byBleGNlcHRpb25IYW5kbGUgPSBwYWlyLnNl
Y29uZDsKICAgICAgICAgLy8gV2UgbmVlZCB0byBjbG9iYmVyIHRoZSBzaXplIHJlZ2lzdGVyIHNp
bmNlIHRoZSBMTEludCBhbHdheXMgYm91bmRzIGNoZWNrcwotICAgICAgICBpZiAobV9tb2RlID09
IE1lbW9yeU1vZGU6OlNpZ25hbGluZyB8fCBtX2luZm8ubWVtb3J5LmlzU2hhcmVkKCkpCisgICAg
ICAgIGlmICh1c2VTaWduYWxpbmdNZW1vcnkoKSB8fCBtX2luZm8ubWVtb3J5LmlzU2hhcmVkKCkp
CiAgICAgICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyTGF0ZShSZWdpc3RlclNldCB7IFBpbm5l
ZFJlZ2lzdGVySW5mbzo6Z2V0KCkuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIgfSk7CiAgICAg
ICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcihbPSwgdGhpc10gKENDYWxsSGVscGVycyYgaml0
LCBjb25zdCBCMzo6U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKICAgICAgICAg
ICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcAppbmRl
eCA1NzBkZjM2ZmIyNDlhZjkzZWUwOWU0NTVlZGNlZDAxMDUwMzlmZjliLi5jNDc1NjkzYzAxMGVm
M2FlOTQ3OTMwMzdlNmVhOGZmMzdhYWIyZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCkBAIC01MjMsNiArNTIzLDE1IEBAIHByaXZh
dGU6CiAgICAgICAgIHJldHVybiBzZXQoZHN0LCBnZXQoc3JjKSk7CiAgICAgfQogCisgICAgYm9v
bCB1c2VTaWduYWxpbmdNZW1vcnkoKSBjb25zdAorICAgIHsKKyNpZiBFTkFCTEUoV0VCQVNTRU1C
TFlfU0lHTkFMSU5HX01FTU9SWSkKKyAgICAgICAgcmV0dXJuIG1fbW9kZSA9PSBNZW1vcnlNb2Rl
OjpTaWduYWxpbmc7CisjZWxzZQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAgICB9
CisKICAgICBGdW5jdGlvblBhcnNlcjxCM0lSR2VuZXJhdG9yPiogbV9wYXJzZXIgeyBudWxscHRy
IH07CiAgICAgY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mIG1faW5mbzsKICAgICBjb25zdCBNZW1v
cnlNb2RlIG1fbW9kZSB7IE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nIH07CkBAIC02MzYsNyAr
NjQ1LDcgQEAgQjNJUkdlbmVyYXRvcjo6QjNJUkdlbmVyYXRvcihjb25zdCBNb2R1bGVJbmZvcm1h
dGlvbiYgaW5mbywgUHJvY2VkdXJlJiBwcm9jZWR1cmUKICAgICBpZiAoIUNvbnRleHQ6OnVzZUZh
c3RUTFMoKSkKICAgICAgICAgbV9wcm9jLnBpblJlZ2lzdGVyKG1fd2FzbUNvbnRleHRJbnN0YW5j
ZUdQUik7CiAKLSAgICBpZiAobW9kZSAhPSBNZW1vcnlNb2RlOjpTaWduYWxpbmcpIHsKKyAgICBp
ZiAobW9kZSA9PSBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykgewogICAgICAgICBtX2JvdW5k
c0NoZWNraW5nU2l6ZUdQUiA9IHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXI7
CiAgICAgICAgIG1fcHJvYy5waW5SZWdpc3RlcihtX2JvdW5kc0NoZWNraW5nU2l6ZUdQUik7CiAg
ICAgfQpAQCAtNjQ4LDkgKzY1NywxMSBAQCBCM0lSR2VuZXJhdG9yOjpCM0lSR2VuZXJhdG9yKGNv
bnN0IE1vZHVsZUluZm9ybWF0aW9uJiBpbmZvLCBQcm9jZWR1cmUmIHByb2NlZHVyZQogICAgICAg
ICAgICAgY2FzZSBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZzoKICAgICAgICAgICAgICAgICBB
U1NFUlRfVU5VU0VEKHBpbm5lZEdQUiwgbV9ib3VuZHNDaGVja2luZ1NpemVHUFIgPT0gcGlubmVk
R1BSKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lH
TkFMSU5HX01FTU9SWSkKICAgICAgICAgICAgIGNhc2UgTWVtb3J5TW9kZTo6U2lnbmFsaW5nOgog
ICAgICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQocGlubmVkR1BSLCBJbnZhbGlkR1BSUmVnID09
IHBpbm5lZEdQUik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIHRoaXMtPmVtaXRFeGNlcHRpb25DaGVjayhqaXQsIEV4Y2VwdGlvblR5
cGU6Ok91dE9mQm91bmRzTWVtb3J5QWNjZXNzKTsKICAgICAgICAgfSk7CkBAIC05MTIsOSArOTIz
LDEzIEBAIGF1dG8gQjNJUkdlbmVyYXRvcjo6YWRkQXJndW1lbnRzKGNvbnN0IFNpZ25hdHVyZSYg
c2lnbmF0dXJlKSAtPiBQYXJ0aWFsUmVzdWx0CiAgICAgICAgIEIzOjpUeXBlIHR5cGUgPSB0b0Iz
VHlwZShzaWduYXR1cmUuYXJndW1lbnQoaSkpOwogICAgICAgICBCMzo6VmFsdWUqIGFyZ3VtZW50
OwogICAgICAgICBhdXRvIHJlcCA9IHdhc21DYWxsSW5mby5wYXJhbXNbaV07Ci0gICAgICAgIGlm
IChyZXAuaXNSZWcoKSkgewotICAgICAgICAgICAgYXJndW1lbnQgPSBtX2N1cnJlbnRCbG9jay0+
YXBwZW5kTmV3PEIzOjpBcmd1bWVudFJlZ1ZhbHVlPihtX3Byb2MsIE9yaWdpbigpLCByZXAucmVn
KCkpOwotICAgICAgICAgICAgaWYgKHR5cGUgPT0gQjM6OkludDMyIHx8IHR5cGUgPT0gQjM6OkZs
b2F0KQorICAgICAgICBpZiAocmVwLmlzR1BSKCkpIHsKKyAgICAgICAgICAgIGFyZ3VtZW50ID0g
bV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6QXJndW1lbnRSZWdWYWx1ZT4obV9wcm9jLCBP
cmlnaW4oKSwgcmVwLmpzcigpLnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICBpZiAodHlwZSA9
PSBCMzo6SW50MzIpCisgICAgICAgICAgICAgICAgYXJndW1lbnQgPSBtX2N1cnJlbnRCbG9jay0+
YXBwZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6VHJ1bmMsIE9yaWdpbigpLCBhcmd1bWVu
dCk7CisgICAgICAgIH0gZWxzZSBpZiAocmVwLmlzRlBSKCkpIHsKKyAgICAgICAgICAgIGFyZ3Vt
ZW50ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6QXJndW1lbnRSZWdWYWx1ZT4obV9w
cm9jLCBPcmlnaW4oKSwgcmVwLmZwcigpKTsKKyAgICAgICAgICAgIGlmICh0eXBlID09IEIzOjpG
bG9hdCkKICAgICAgICAgICAgICAgICBhcmd1bWVudCA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmRO
ZXc8QjM6OlZhbHVlPihtX3Byb2MsIEIzOjpUcnVuYywgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChyZXAuaXNTdGFjaygpKTsKQEAgLTE0
NDMsNiArMTQ1OCw3IEBAIGlubGluZSBWYWx1ZSogQjNJUkdlbmVyYXRvcjo6ZW1pdENoZWNrQW5k
UHJlcGFyZVBvaW50ZXIoVmFsdWUqIHBvaW50ZXIsIHVpbnQzMl90CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIGNh
c2UgTWVtb3J5TW9kZTo6U2lnbmFsaW5nOiB7CiAgICAgICAgIC8vIFdlJ3ZlIHZpcnR1YWxseSBt
YXBwZWQgNEdpQityZWR6b25lIGZvciB0aGlzIG1lbW9yeS4gT25seSB0aGUgdXNlci1hbGxvY2F0
ZWQgcGFnZXMgYXJlIGFkZHJlc3NhYmxlLCBjb250aWd1b3VzbHkgaW4gcmFuZ2UgWzAsIGN1cnJl
bnRdLAogICAgICAgICAvLyBhbmQgZXZlcnl0aGluZyBhYm92ZSBpcyBtYXBwZWQgUFJPVF9OT05F
LiBXZSBkb24ndCBuZWVkIHRvIHBlcmZvcm0gYW55IGV4cGxpY2l0IGJvdW5kcyBjaGVjayBpbiB0
aGUgNEdpQiByYW5nZSBiZWNhdXNlIFdlYkFzc2VtYmx5IHJlZ2lzdGVyCkBAIC0xNDYwLDYgKzE0
NzYsNyBAQCBpbmxpbmUgVmFsdWUqIEIzSVJHZW5lcmF0b3I6OmVtaXRDaGVja0FuZFByZXBhcmVQ
b2ludGVyKFZhbHVlKiBwb2ludGVyLCB1aW50MzJfdAogICAgICAgICB9CiAgICAgICAgIGJyZWFr
OwogICAgIH0KKyNlbmRpZgogICAgIH0KIAogICAgIHBvaW50ZXIgPSBtX2N1cnJlbnRCbG9jay0+
YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIFpFeHQzMiwgb3JpZ2luKCksIHBvaW50ZXIpOwpAQCAt
MTQ5Myw3ICsxNTEwLDcgQEAgaW5saW5lIHVpbnQzMl90IHNpemVPZkxvYWRPcChMb2FkT3BUeXBl
IG9wKQogCiBpbmxpbmUgQjM6OktpbmQgQjNJUkdlbmVyYXRvcjo6bWVtb3J5S2luZChCMzo6T3Bj
b2RlIG1lbW9yeU9wKQogewotICAgIGlmIChtX21vZGUgPT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5n
IHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQoKSkKKyAgICBpZiAodXNlU2lnbmFsaW5nTWVtb3J5
KCkgfHwgbV9pbmZvLm1lbW9yeS5pc1NoYXJlZCgpKQogICAgICAgICByZXR1cm4gdHJhcHBpbmco
bWVtb3J5T3ApOwogICAgIHJldHVybiBtZW1vcnlPcDsKIH0KQEAgLTI5NzcsNyArMjk5NCw3IEBA
IGF1dG8gQjNJUkdlbmVyYXRvcjo6YWRkQ2FsbCh1aW50MzJfdCBmdW5jdGlvbkluZGV4LCBjb25z
dCBTaWduYXR1cmUmIHNpZ25hdHVyZSwKICAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5lZmZl
Y3RzLnJlYWRzUGlubmVkID0gdHJ1ZTsKIAogICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8g
Y2xvYmJlciB0aGUgc2l6ZSByZWdpc3RlciBzaW5jZSB0aGUgTExJbnQgYWx3YXlzIGJvdW5kcyBj
aGVja3MKLSAgICAgICAgICAgICAgICBpZiAobV9tb2RlID09IE1lbW9yeU1vZGU6OlNpZ25hbGlu
ZyB8fCBtX2luZm8ubWVtb3J5LmlzU2hhcmVkKCkpCisgICAgICAgICAgICAgICAgaWYgKHVzZVNp
Z25hbGluZ01lbW9yeSgpIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQoKSkKICAgICAgICAgICAg
ICAgICAgICAgcGF0Y2hwb2ludC0+Y2xvYmJlckxhdGUoUmVnaXN0ZXJTZXQgeyBQaW5uZWRSZWdp
c3RlckluZm86OmdldCgpLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyIH0pOwogICAgICAgICAg
ICAgICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcihbdGhpcywgaGFuZGxlLCB1bmxpbmtlZFdh
c21Ub1dhc21DYWxscywgZnVuY3Rpb25JbmRleF0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBC
Mzo6U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKICAgICAgICAgICAgICAgICAg
ICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwCmluZGV4IGVkYzcwYmVhMDhh
ZjJiODMyYzJmMTllYWViNDQ2ZWIyYzQ1OGRmM2UuLjMyNzI4OTk0OWFkZDg0NDEzMWQwZDJkNjI2
ZmY1ODUzMGJkMTIxZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21CaW5kaW5nLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQmluZGlu
Zy5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAKICNpbmNs
dWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlICJEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lz
dGVyVXNhZ2UuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2FzbUNhbGxp
bmdDb252ZW50aW9uLmgiCiAjaW5jbHVkZSAiV2FzbUluc3RhbmNlLmgiCkBAIC00MSwxOCArNDIs
MjEgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJp
bmRpbmdGYWlsdXJlPiB3YXNtVG9XYXNtKHVuc2kKIHsKICAgICAvLyBGSVhNRTogQ29uc2lkZXIg
dW5pcXVpZnkgdGhlIHN0dWJzIGJhc2VkIG9uIHNpZ25hdHVyZSArIGluZGV4IHRvIHNlZSBpZiB0
aGlzIHNhdmVzIG1lbW9yeS4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg0MTU3Ci0KLSAgICBjb25zdCBQaW5uZWRSZWdpc3RlckluZm8mIHBpbm5lZFJl
Z3MgPSBQaW5uZWRSZWdpc3RlckluZm86OmdldCgpOwogICAgIEpJVCBqaXQ7CiAKICAgICBHUFJS
ZWcgc2NyYXRjaCA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNb
MF07CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBHUFJSZWcgYmFzZU1lbW9yeSA9IHdhc21D
YWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMV07CisgICAgR1BSUmVnIHNp
emVSZWdBc1NjcmF0Y2ggPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hH
UFJzWzJdOworI2Vsc2UKKyAgICBjb25zdCBQaW5uZWRSZWdpc3RlckluZm8mIHBpbm5lZFJlZ3Mg
PSBQaW5uZWRSZWdpc3RlckluZm86OmdldCgpOwogICAgIEdQUlJlZyBiYXNlTWVtb3J5ID0gcGlu
bmVkUmVncy5iYXNlTWVtb3J5UG9pbnRlcjsKLSAgICBBU1NFUlQoYmFzZU1lbW9yeSAhPSBHUFJS
ZWc6OkludmFsaWRHUFJSZWcpOwotICAgIEFTU0VSVChiYXNlTWVtb3J5ICE9IHNjcmF0Y2gpOwot
ICAgIEFTU0VSVChwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyICE9IGJhc2VN
ZW1vcnkpOwotICAgIEFTU0VSVChwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVy
ICE9IHNjcmF0Y2gpOwogICAgIEdQUlJlZyBzaXplUmVnQXNTY3JhdGNoID0gcGlubmVkUmVncy5i
b3VuZHNDaGVja2luZ1NpemVSZWdpc3RlcjsKKyNlbmRpZgorICAgIEFTU0VSVChiYXNlTWVtb3J5
ICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7CiAgICAgQVNTRVJUKHNpemVSZWdBc1NjcmF0Y2gg
IT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsKKyAgICBBU1NFUlQoc2NyYXRjaCAhPSBHUFJSZWc6
OkludmFsaWRHUFJSZWcpOworICAgIEFTU0VSVChub092ZXJsYXAoc2NyYXRjaCwgYmFzZU1lbW9y
eSwgc2l6ZVJlZ0FzU2NyYXRjaCkpOwogCiAgICAgLy8gQjMncyBjYWxsIGNvZGVnZW4gZW5zdXJl
cyB0aGF0IHRoZSBKU0NlbGwgaXMgYSBXZWJBc3NlbWJseUZ1bmN0aW9uLgogICAgIGppdC5sb2Fk
V2FzbUNvbnRleHRJbnN0YW5jZShzaXplUmVnQXNTY3JhdGNoKTsgLy8gT2xkIEluc3RhbmNlKgpA
QCAtNjUsNiArNjksNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5
UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub1dhc20odW5zaQogICAgIGppdC5sb2FkUHRy
KEpJVDo6QWRkcmVzcyhzaXplUmVnQXNTY3JhdGNoLCBJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRT
dGFja0xpbWl0KCkpLCBzaXplUmVnQXNTY3JhdGNoKTsKICAgICBqaXQuc3RvcmVQdHIoc2l6ZVJl
Z0FzU2NyYXRjaCwgSklUOjpBZGRyZXNzKGJhc2VNZW1vcnksIEluc3RhbmNlOjpvZmZzZXRPZkNh
Y2hlZFN0YWNrTGltaXQoKSkpOwogCisjaWYgIUNQVShBUk0pIC8vIEFSTSBoYXMgbm8gcGlubmVk
IHJlZ2lzdGVycyBmb3IgV2FzbSBNZW1vcnksIHNvIG5vIG5lZWQgdG8gc2V0IHRoZW0gdXAKICAg
ICAvLyBGSVhNRSB0aGUgZm9sbG93aW5nIGNvZGUgYXNzdW1lcyB0aGF0IGFsbCBXYXNtOjpJbnN0
YW5jZSBoYXZlIHRoZSBzYW1lIHBpbm5lZCByZWdpc3RlcnMuIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI5NTIKICAgICAvLyBTZXQgdXAgdGhlIGNhbGxlZSdzIGJh
c2VNZW1vcnkgcmVnaXN0ZXIgYXMgd2VsbCBhcyB0aGUgbWVtb3J5IHNpemUgcmVnaXN0ZXJzLgog
ICAgIHsKQEAgLTcyLDYgKzc3LDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdh
c21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9XYXNtKHVuc2kKICAgICAgICAg
aml0LmxvYWRQdHIoSklUOjpBZGRyZXNzKGJhc2VNZW1vcnksIFdhc206Okluc3RhbmNlOjpvZmZz
ZXRPZkNhY2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7IC8vIFdhc206Ok1lbW9yeTo6VGFnZ2Vk
QXJyYXlTdG9yYWdlUHRyPHZvaWQ+ICh2b2lkKikuCiAgICAgICAgIGppdC5jYWdlQ29uZGl0aW9u
YWxseUFuZFVudGFnKEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJhc2VNZW1vcnksIHBpbm5lZFJlZ3Mu
Ym91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIsIHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xv
Z3VlU2NyYXRjaEdQUnNbMV0pOwogICAgIH0KKyNlbmRpZgogCiAgICAgLy8gVGFpbCBjYWxsIGlu
dG8gdGhlIGNhbGxlZSBXZWJBc3NlbWJseSBmdW5jdGlvbi4KICAgICBqaXQubG9hZFB0cihKSVQ6
OkFkZHJlc3Moc2NyYXRjaCksIHNjcmF0Y2gpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUNhbGxlZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtQ2FsbGVlLmNwcAppbmRleCBhMzIxYzUyZjE1ZWNhNTIyMTNlY2Q2ZWU5MjE3MjcxOTgxMWIz
MjVhLi4zMjAyZjU0ODBjYTQxMmYyNzI5NDllMTU0YjJiMjI2ZWU2OTAwY2FkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcApAQCAtMTMxLDYgKzEzMSw4IEBAIFJl
Z2lzdGVyQXRPZmZzZXRMaXN0KiBMTEludENhbGxlZTo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpCiAg
ICAgICAgIHJlZ2lzdGVycy5zZXQoR1BSSW5mbzo6cmVnQ1MyKTsgLy8gUEIKICNlbGlmIENQVShB
Uk02NCkgfHwgQ1BVKFJJU0NWNjQpCiAgICAgICAgIHJlZ2lzdGVycy5zZXQoR1BSSW5mbzo6cmVn
Q1M3KTsgLy8gUEIKKyNlbGlmIENQVShBUk0pCisgICAgICAgIHJlZ2lzdGVycy5zZXQoR1BSSW5m
bzo6cmVnQ1MxKTsgLy8gUEIKICNlbHNlCiAjZXJyb3IgVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJl
LgogI2VuZGlmCkBAIC0xNTgsNiArMTYwLDcgQEAgY29uc3QgV2FzbUluc3RydWN0aW9uKiBMTElu
dENhbGxlZTo6b3V0T2ZMaW5lSnVtcFRhcmdldChjb25zdCBXYXNtSW5zdHJ1Y3Rpb24qIHAKICAg
ICByZXR1cm4gbV9pbnN0cnVjdGlvbnMtPmF0KG9mZnNldCArIHRhcmdldCkucHRyKCk7CiB9CiAK
KyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCiB2b2lkIE9wdGltaXppbmdKSVRDYWxsZWU6
OmxpbmtFeGNlcHRpb25IYW5kbGVycyhWZWN0b3I8VW5saW5rZWRIYW5kbGVySW5mbz4gdW5saW5r
ZWRFeGNlcHRpb25IYW5kbGVycywgVmVjdG9yPENvZGVMb2NhdGlvbkxhYmVsPEV4Y2VwdGlvbkhh
bmRsZXJQdHJUYWc+PiBleGNlcHRpb25IYW5kbGVyTG9jYXRpb25zKQogewogICAgIHNpemVfdCBj
b3VudCA9IHVubGlua2VkRXhjZXB0aW9uSGFuZGxlcnMuc2l6ZSgpOwpAQCAtMTg0LDcgKzE4Nyw3
IEBAIGNvbnN0IFN0YWNrTWFwJiBPcHRpbWl6aW5nSklUQ2FsbGVlOjpzdGFja21hcChDYWxsU2l0
ZUluZGV4IGNhbGxTaXRlSW5kZXgpIGNvbnN0CiAgICAgUkVMRUFTRV9BU1NFUlQoaXRlciAhPSBt
X3N0YWNrbWFwcy5lbmQoKSk7CiAgICAgcmV0dXJuIGl0ZXItPnZhbHVlOwogfQotCisjZW5kaWYK
IAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZUdyb3VwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21DYWxsZWVHcm91cC5jcHAKaW5kZXggMWVhNDVjYTRhNmU5MWQwM2E5NzBlYmI1
ZDVmZDJiMmNmOWRmY2YwYS4uNTE5ZDIwOTZhZDYyN2NiYjNiZTg4MzlkN2U0ODJiODE5ODhmYmEy
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZUdyb3Vw
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlR3JvdXAuY3Bw
CkBAIC0xNjAsMTcgKzE2MCwyMSBAQCB2b2lkIENhbGxlZUdyb3VwOjpjb21waWxlQXN5bmMoQ29u
dGV4dCogY29udGV4dCwgQXN5bmNDb21waWxhdGlvbkNhbGxiYWNrJiYgdGFzawogCiBib29sIENh
bGxlZUdyb3VwOjppc1NhZmVUb1J1bihNZW1vcnlNb2RlIG1lbW9yeU1vZGUpCiB7CisgICAgVU5V
U0VEX1BBUkFNKG1lbW9yeU1vZGUpOworCiAgICAgaWYgKCFydW5uYWJsZSgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBzd2l0Y2ggKG1fbW9kZSkgewogICAgIGNhc2UgV2FzbTo6TWVt
b3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmc6CiAgICAgICAgIHJldHVybiB0cnVlOworI2lmIEVOQUJM
RShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIGNhc2UgV2FzbTo6TWVtb3J5TW9k
ZTo6U2lnbmFsaW5nOgogICAgICAgICAvLyBDb2RlIGJlaW5nIGluIFNpZ25hbGluZyBtb2RlIG1l
YW5zIHRoYXQgaXQgcGVyZm9ybXMgbm8gYm91bmRzIGNoZWNrcy4KICAgICAgICAgLy8gSXRzIG1l
bW9yeSwgZXZlbiBpZiBlbXB0eSwgYWJzb2x1dGVseSBtdXN0IGFsc28gYmUgaW4gU2lnbmFsaW5n
IG1vZGUKICAgICAgICAgLy8gYmVjYXVzZSB0aGUgcGFnZSBwcm90ZWN0aW9uIGRldGVjdHMgb3V0
LW9mLWJvdW5kcyBhY2Nlc3Nlcy4KICAgICAgICAgcmV0dXJuIG1lbW9yeU1vZGUgPT0gV2FzbTo6
TWVtb3J5TW9kZTo6U2lnbmFsaW5nOworI2VuZGlmCiAgICAgfQogICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5jcHAKaW5kZXggMjAzYzg0M2Fl
OGU2M2VjZGZiNDg5YTRhZDY2NTNlZWZlMTFkZDRiYy4uZWIwOTA5NTgxODQwMTg4MzkzZDVjZWYz
NzM0MTg0YmIyMTI4ODVkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUNhbGxpbmdDb252ZW50aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwCkBAIC00MCw3ICs0MCw3IEBAIGNvbnN0IEpTQ2Fs
bGluZ0NvbnZlbnRpb24mIGpzQ2FsbGluZ0NvbnZlbnRpb24oKQogICAgICAgICBSZWdpc3RlclNl
dCBjYWxsZXJTYXZlUmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQ6OmFsbFJlZ2lzdGVycygpOwogICAg
ICAgICBjYWxsZXJTYXZlUmVnaXN0ZXJzLmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVS
ZWdpc3RlcnMoKSk7CiAKLSAgICAgICAgc3RhdGljSlNDYWxsaW5nQ29udmVudGlvbi5jb25zdHJ1
Y3QoVmVjdG9yPFJlZz4oKSwgVmVjdG9yPFJlZz4oKSwgUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVS
ZWdpc3RlcnMoKSwgV1RGTW92ZShjYWxsZXJTYXZlUmVnaXN0ZXJzKSk7CisgICAgICAgIHN0YXRp
Y0pTQ2FsbGluZ0NvbnZlbnRpb24uY29uc3RydWN0KFZlY3RvcjxKU1ZhbHVlUmVncz4oKSwgVmVj
dG9yPEZQUlJlZz4oKSwgUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKSwgV1RGTW92
ZShjYWxsZXJTYXZlUmVnaXN0ZXJzKSk7CiAgICAgfSk7CiAKICAgICByZXR1cm4gc3RhdGljSlND
YWxsaW5nQ29udmVudGlvbjsKQEAgLTUxLDMxICs1MSw1MSBAQCBjb25zdCBXYXNtQ2FsbGluZ0Nv
bnZlbnRpb24mIHdhc21DYWxsaW5nQ29udmVudGlvbigpCiAgICAgc3RhdGljIExhenlOZXZlckRl
c3Ryb3llZDxXYXNtQ2FsbGluZ0NvbnZlbnRpb24+IHN0YXRpY1dhc21DYWxsaW5nQ29udmVudGlv
bjsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgc3RhdGljV2FzbUNhbGxpbmdDb252ZW50aW9u
RmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShzdGF0aWNXYXNtQ2FsbGluZ0NvbnZlbnRpb25GbGFn
LCBbXSAoKSB7Ci0gICAgICAgIFZlY3RvcjxSZWc+IGdwckFyZ3VtZW50UmVnaXN0ZXJzKEdQUklu
Zm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgR1BSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVyczsgKytpKQotICAgICAg
ICAgICAgZ3ByQXJndW1lbnRSZWdpc3RlcnNbaV0gPSBHUFJJbmZvOjp0b0FyZ3VtZW50UmVnaXN0
ZXIoaSk7CisjaWYgVVNFKEpTVkFMVUU2NCkgLy8gT25lIHZhbHVlIHBlciBHUFIKKyAgICAgICAg
Y29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRKU1JzID0gR1BSSW5mbzo6bnVtYmVy
T2ZBcmd1bWVudFJlZ2lzdGVyczsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpIC8vIE9uZSB2YWx1
ZSBwZXIgY29uc2VjdXRpdmUgR1BSIHBhaXIKKyAgICAgICAgY29uc3RleHByIHVuc2lnbmVkIG51
bWJlck9mQXJndW1lbnRKU1JzID0gR1BSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyAv
IDI7CisjZW5kaWYKKyAgICAgICAgVmVjdG9yPEpTVmFsdWVSZWdzPiBqc3JBcmd1bWVudFJlZ2lz
dGVycyhudW1iZXJPZkFyZ3VtZW50SlNScyk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBudW1iZXJPZkFyZ3VtZW50SlNSczsgKytpKSB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAg
ICAgICAgICAgIGpzckFyZ3VtZW50UmVnaXN0ZXJzW2ldID0gSlNWYWx1ZVJlZ3MgeyBHUFJJbmZv
Ojp0b0FyZ3VtZW50UmVnaXN0ZXIoaSkgfTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
ICAgICAgICBqc3JBcmd1bWVudFJlZ2lzdGVyc1tpXSA9IEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6
dG9Bcmd1bWVudFJlZ2lzdGVyKDIgKiBpICsgMSksIEdQUkluZm86OnRvQXJndW1lbnRSZWdpc3Rl
cigyICogaSkgfTsKKyNlbmRpZgorICAgICAgICB9CiAKLSAgICAgICAgVmVjdG9yPFJlZz4gZnBy
QXJndW1lbnRSZWdpc3RlcnMoRlBSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyk7Cisg
ICAgICAgIFZlY3RvcjxGUFJSZWc+IGZwckFyZ3VtZW50UmVnaXN0ZXJzKEZQUkluZm86Om51bWJl
ck9mQXJndW1lbnRSZWdpc3RlcnMpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
RlBSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVyczsgKytpKQogICAgICAgICAgICAgZnBy
QXJndW1lbnRSZWdpc3RlcnNbaV0gPSBGUFJJbmZvOjp0b0FyZ3VtZW50UmVnaXN0ZXIoaSk7CiAK
ICAgICAgICAgUmVnaXN0ZXJTZXQgc2NyYXRjaCA9IFJlZ2lzdGVyU2V0OjphbGxHUFJzKCk7Ci0g
ICAgICAgIHNjcmF0Y2guZXhjbHVkZShSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygp
KTsKKyAgICAgICAgc2NyYXRjaC5leGNsdWRlKFJlZ2lzdGVyU2V0Ojp2bUNhbGxlZVNhdmVSZWdp
c3RlcnMoKSk7CiAgICAgICAgIHNjcmF0Y2guZXhjbHVkZShSZWdpc3RlclNldDo6bWFjcm9TY3Jh
dGNoUmVnaXN0ZXJzKCkpOwogICAgICAgICBzY3JhdGNoLmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6OnJl
c2VydmVkSGFyZHdhcmVSZWdpc3RlcnMoKSk7CiAgICAgICAgIHNjcmF0Y2guZXhjbHVkZShSZWdp
c3RlclNldDo6c3RhY2tSZWdpc3RlcnMoKSk7Ci0gICAgICAgIGZvciAoUmVnIHJlZyA6IGdwckFy
Z3VtZW50UmVnaXN0ZXJzKQotICAgICAgICAgICAgc2NyYXRjaC5jbGVhcihyZWcpOworICAgICAg
ICBmb3IgKEpTVmFsdWVSZWdzIGpzciA6IGpzckFyZ3VtZW50UmVnaXN0ZXJzKSB7CisgICAgICAg
ICAgICBzY3JhdGNoLmNsZWFyKGpzci5wYXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgICAgICAgICBzY3JhdGNoLmNsZWFyKGpzci50YWdHUFIoKSk7CisjZW5kaWYKKyAg
ICAgICAgfQogCiAgICAgICAgIFZlY3RvcjxHUFJSZWc+IHNjcmF0Y2hHUFJzOwogICAgICAgICBm
b3IgKFJlZyByZWcgOiBzY3JhdGNoKQogICAgICAgICAgICAgc2NyYXRjaEdQUnMuYXBwZW5kKHJl
Zy5ncHIoKSk7CisKKyAgICAgICAgLy8gTmVlZCBhdCBsZWFzdCBvbmUgSlNWYWx1ZSBhbmQgYW4g
YWRkaXRpb25hbCBHUFIKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBSRUxFQVNFX0FTU0VS
VChzY3JhdGNoR1BScy5zaXplKCkgPj0gMik7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAg
ICAgICBSRUxFQVNFX0FTU0VSVChzY3JhdGNoR1BScy5zaXplKCkgPj0gMyk7CisjZW5kaWYKIAog
ICAgICAgICBSZWdpc3RlclNldCBjYWxsZXJTYXZlUmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQ6OmFs
bFJlZ2lzdGVycygpOwogICAgICAgICBjYWxsZXJTYXZlUmVnaXN0ZXJzLmV4Y2x1ZGUoUmVnaXN0
ZXJTZXQ6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKSk7CiAKLSAgICAgICAgc3RhdGljV2FzbUNhbGxp
bmdDb252ZW50aW9uLmNvbnN0cnVjdChXVEZNb3ZlKGdwckFyZ3VtZW50UmVnaXN0ZXJzKSwgV1RG
TW92ZShmcHJBcmd1bWVudFJlZ2lzdGVycyksIFdURk1vdmUoc2NyYXRjaEdQUnMpLCBSZWdpc3Rl
clNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpLCBXVEZNb3ZlKGNhbGxlclNhdmVSZWdpc3RlcnMp
KTsKKyAgICAgICAgc3RhdGljV2FzbUNhbGxpbmdDb252ZW50aW9uLmNvbnN0cnVjdChXVEZNb3Zl
KGpzckFyZ3VtZW50UmVnaXN0ZXJzKSwgV1RGTW92ZShmcHJBcmd1bWVudFJlZ2lzdGVycyksIFdU
Rk1vdmUoc2NyYXRjaEdQUnMpLCBSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpLCBX
VEZNb3ZlKGNhbGxlclNhdmVSZWdpc3RlcnMpKTsKICAgICB9KTsKIAogICAgIHJldHVybiBzdGF0
aWNXYXNtQ2FsbGluZ0NvbnZlbnRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oCmluZGV4IDU5MWVlYjI3YjAxNjkwMDdhZmExODNk
NDMyNzI5ZmEwY2E1NmFkODEuLjE5Y2YwMmFhMzMwMmU1NGI0YzQwYjFmYjhmOGVkNTU0MTcwY2Iz
MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29u
dmVudGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29u
dmVudGlvbi5oCkBAIC01Nyw4ICs1NywxMyBAQCBzdHJ1Y3QgQ2FsbEluZm9ybWF0aW9uIHsKICAg
ICB7CiAgICAgICAgIFJlZ2lzdGVyU2V0IHVzZWRSZXN1bHRSZWdpc3RlcnM7CiAgICAgICAgIGZv
ciAoVmFsdWVMb2NhdGlvbiBsb2MgOiByZXN1bHRzKSB7Ci0gICAgICAgICAgICBpZiAobG9jLmlz
UmVnKCkpCi0gICAgICAgICAgICAgICAgdXNlZFJlc3VsdFJlZ2lzdGVycy5zZXQobG9jLnJlZygp
KTsKKyAgICAgICAgICAgIGlmIChsb2MuaXNHUFIoKSkgeworICAgICAgICAgICAgICAgIHVzZWRS
ZXN1bHRSZWdpc3RlcnMuc2V0KGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZB
TFVFMzJfNjQpCisgICAgICAgICAgICAgICAgdXNlZFJlc3VsdFJlZ2lzdGVycy5zZXQobG9jLmpz
cigpLnRhZ0dQUigpKTsKKyNlbmRpZgorICAgICAgICAgICAgfSBlbHNlIGlmIChsb2MuaXNGUFIo
KSkKKyAgICAgICAgICAgICAgICB1c2VkUmVzdWx0UmVnaXN0ZXJzLnNldChsb2MuZnByKCkpOwog
ICAgICAgICB9CiAKICAgICAgICAgUmVnaXN0ZXJBdE9mZnNldExpc3Qgc2F2ZWRSZWdzKHVzZWRS
ZXN1bHRSZWdpc3RlcnMsIFJlZ2lzdGVyQXRPZmZzZXRMaXN0OjpaZXJvQmFzZWQpOwpAQCAtNzcs
OCArODIsOCBAQCBjbGFzcyBXYXNtQ2FsbGluZ0NvbnZlbnRpb24gewogcHVibGljOgogICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgaGVhZGVyU2l6ZUluQnl0ZXMgPSBDYWxsRnJhbWU6Omhl
YWRlclNpemVJblJlZ2lzdGVycyAqIHNpemVvZihSZWdpc3Rlcik7CiAKLSAgICBXYXNtQ2FsbGlu
Z0NvbnZlbnRpb24oVmVjdG9yPFJlZz4mJiBncHJzLCBWZWN0b3I8UmVnPiYmIGZwcnMsIFZlY3Rv
cjxHUFJSZWc+JiYgc2NyYXRjaGVzLCBSZWdpc3RlclNldCYmIGNhbGxlZVNhdmVzLCBSZWdpc3Rl
clNldCYmIGNhbGxlclNhdmVzKQotICAgICAgICA6IGdwckFyZ3MoV1RGTW92ZShncHJzKSkKKyAg
ICBXYXNtQ2FsbGluZ0NvbnZlbnRpb24oVmVjdG9yPEpTVmFsdWVSZWdzPiYmIGpzcnMsIFZlY3Rv
cjxGUFJSZWc+JiYgZnBycywgVmVjdG9yPEdQUlJlZz4mJiBzY3JhdGNoZXMsIFJlZ2lzdGVyU2V0
JiYgY2FsbGVlU2F2ZXMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVyU2F2ZXMpCisgICAgICAgIDoganNy
QXJncyhXVEZNb3ZlKGpzcnMpKQogICAgICAgICAsIGZwckFyZ3MoV1RGTW92ZShmcHJzKSkKICAg
ICAgICAgLCBwcm9sb2d1ZVNjcmF0Y2hHUFJzKFdURk1vdmUoc2NyYXRjaGVzKSkKICAgICAgICAg
LCBjYWxsZWVTYXZlUmVnaXN0ZXJzKFdURk1vdmUoY2FsbGVlU2F2ZXMpKQpAQCAtODgsMTAgKzkz
LDExIEBAIHB1YmxpYzoKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXYXNtQ2FsbGluZ0NvbnZl
bnRpb24pOwogCiBwcml2YXRlOgotICAgIEFyZ3VtZW50TG9jYXRpb24gbWFyc2hhbGxMb2NhdGlv
bkltcGwoQ2FsbFJvbGUgcm9sZSwgY29uc3QgVmVjdG9yPFJlZz4mIHJlZ0FyZ3MsIHNpemVfdCYg
Y291bnQsIHNpemVfdCYgc3RhY2tPZmZzZXQpIGNvbnN0CisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
UmVnVHlwZT4KKyAgICBBcmd1bWVudExvY2F0aW9uIG1hcnNoYWxsTG9jYXRpb25JbXBsKENhbGxS
b2xlIHJvbGUsIGNvbnN0IFZlY3RvcjxSZWdUeXBlPiYgcmVnQXJncywgc2l6ZV90JiBjb3VudCwg
c2l6ZV90JiBzdGFja09mZnNldCkgY29uc3QKICAgICB7CiAgICAgICAgIGlmIChjb3VudCA8IHJl
Z0FyZ3Muc2l6ZSgpKQotICAgICAgICAgICAgcmV0dXJuIEFyZ3VtZW50TG9jYXRpb246OnJlZyhy
ZWdBcmdzW2NvdW50KytdKTsKKyAgICAgICAgICAgIHJldHVybiBBcmd1bWVudExvY2F0aW9uIHsg
cmVnQXJnc1tjb3VudCsrXSB9OwogCiAgICAgICAgIGNvdW50Kys7CiAgICAgICAgIEFyZ3VtZW50
TG9jYXRpb24gcmVzdWx0ID0gcm9sZSA9PSBDYWxsUm9sZTo6Q2FsbGVyID8gQXJndW1lbnRMb2Nh
dGlvbjo6c3RhY2tBcmd1bWVudChzdGFja09mZnNldCkgOiBBcmd1bWVudExvY2F0aW9uOjpzdGFj
ayhzdGFja09mZnNldCk7CkBAIC0xMDksNyArMTE1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2Fz
ZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CiAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6Ci0gICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxM
b2NhdGlvbkltcGwocm9sZSwgZ3ByQXJncywgZ3BBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7
CisgICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwganNyQXJncywg
Z3BBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYz
MjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OgogICAgICAgICAgICAgcmV0dXJuIG1hcnNo
YWxsTG9jYXRpb25JbXBsKHJvbGUsIGZwckFyZ3MsIGZwQXJndW1lbnRDb3VudCwgc3RhY2tPZmZz
ZXQpOwpAQCAtMTUzLDggKzE1OSw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
ICAgICB9CiAKLSAgICBjb25zdCBWZWN0b3I8UmVnPiBncHJBcmdzOwotICAgIGNvbnN0IFZlY3Rv
cjxSZWc+IGZwckFyZ3M7CisgICAgY29uc3QgVmVjdG9yPEpTVmFsdWVSZWdzPiBqc3JBcmdzOwor
ICAgIGNvbnN0IFZlY3RvcjxGUFJSZWc+IGZwckFyZ3M7CiAgICAgY29uc3QgVmVjdG9yPEdQUlJl
Zz4gcHJvbG9ndWVTY3JhdGNoR1BSczsKICAgICBjb25zdCBSZWdpc3RlclNldCBjYWxsZWVTYXZl
UmVnaXN0ZXJzOwogICAgIGNvbnN0IFJlZ2lzdGVyU2V0IGNhbGxlclNhdmVSZWdpc3RlcnM7CkBA
IC0xNjksOCArMTc1LDggQEAgcHVibGljOgogICAgIC8vIFdhc206OkNvbnRleHQqJ3MgaW5zdGFu
Y2UuCiAgICAgc3RhdGljIGNvbnN0ZXhwciBwdHJkaWZmX3QgaW5zdGFuY2VTdGFja09mZnNldCA9
IENhbGxGcmFtZVNsb3Q6OnRoaXNBcmd1bWVudCAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7CiAK
LSAgICBKU0NhbGxpbmdDb252ZW50aW9uKFZlY3RvcjxSZWc+JiYgZ3BycywgVmVjdG9yPFJlZz4m
JiBmcHJzLCBSZWdpc3RlclNldCYmIGNhbGxlZVNhdmVzLCBSZWdpc3RlclNldCYmIGNhbGxlclNh
dmVzKQotICAgICAgICA6IGdwckFyZ3MoV1RGTW92ZShncHJzKSkKKyAgICBKU0NhbGxpbmdDb252
ZW50aW9uKFZlY3RvcjxKU1ZhbHVlUmVncz4mJiBncHJzLCBWZWN0b3I8RlBSUmVnPiYmIGZwcnMs
IFJlZ2lzdGVyU2V0JiYgY2FsbGVlU2F2ZXMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVyU2F2ZXMpCisg
ICAgICAgIDoganNyQXJncyhXVEZNb3ZlKGdwcnMpKQogICAgICAgICAsIGZwckFyZ3MoV1RGTW92
ZShmcHJzKSkKICAgICAgICAgLCBjYWxsZWVTYXZlUmVnaXN0ZXJzKFdURk1vdmUoY2FsbGVlU2F2
ZXMpKQogICAgICAgICAsIGNhbGxlclNhdmVSZWdpc3RlcnMoV1RGTW92ZShjYWxsZXJTYXZlcykp
CkBAIC0xNzgsMTAgKzE4NCwxMSBAQCBwdWJsaWM6CiAKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShKU0NhbGxpbmdDb252ZW50aW9uKTsKIHByaXZhdGU6Ci0gICAgQXJndW1lbnRMb2NhdGlvbiBt
YXJzaGFsbExvY2F0aW9uSW1wbChDYWxsUm9sZSByb2xlLCBjb25zdCBWZWN0b3I8UmVnPiYgcmVn
QXJncywgc2l6ZV90JiBjb3VudCwgc2l6ZV90JiBzdGFja09mZnNldCkgY29uc3QKKyAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgUmVnVHlwZT4KKyAgICBBcmd1bWVudExvY2F0aW9uIG1hcnNoYWxsTG9j
YXRpb25JbXBsKENhbGxSb2xlIHJvbGUsIGNvbnN0IFZlY3RvcjxSZWdUeXBlPiYgcmVnQXJncywg
c2l6ZV90JiBjb3VudCwgc2l6ZV90JiBzdGFja09mZnNldCkgY29uc3QKICAgICB7CiAgICAgICAg
IGlmIChjb3VudCA8IHJlZ0FyZ3Muc2l6ZSgpKQotICAgICAgICAgICAgcmV0dXJuIEFyZ3VtZW50
TG9jYXRpb246OnJlZyhyZWdBcmdzW2NvdW50KytdKTsKKyAgICAgICAgICAgIHJldHVybiBBcmd1
bWVudExvY2F0aW9uIHsgcmVnQXJnc1tjb3VudCsrXSB9OwogCiAgICAgICAgIGNvdW50Kys7CiAg
ICAgICAgIEFyZ3VtZW50TG9jYXRpb24gcmVzdWx0ID0gcm9sZSA9PSBDYWxsUm9sZTo6Q2FsbGVy
ID8gQXJndW1lbnRMb2NhdGlvbjo6c3RhY2tBcmd1bWVudChzdGFja09mZnNldCkgOiBBcmd1bWVu
dExvY2F0aW9uOjpzdGFjayhzdGFja09mZnNldCk7CkBAIC0xOTksNyArMjA2LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICBjYXNlIFR5cGVL
aW5kOjpSZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6Ci0gICAgICAgICAgICBy
ZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwgZ3ByQXJncywgZ3BBcmd1bWVudENvdW50
LCBzdGFja09mZnNldCk7CisgICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwo
cm9sZSwganNyQXJncywgZ3BBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CiAgICAgICAgIGNh
c2UgVHlwZUtpbmQ6OkYzMjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OgogICAgICAgICAg
ICAgcmV0dXJuIG1hcnNoYWxsTG9jYXRpb25JbXBsKHJvbGUsIGZwckFyZ3MsIGZwQXJndW1lbnRD
b3VudCwgc3RhY2tPZmZzZXQpOwpAQCAtMjIyLDEyICsyMjksMTIgQEAgcHVibGljOgogICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpZ25hdHVyZS5hcmd1bWVudENvdW50KCk7ICsraSkK
ICAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQobWFyc2hhbGxMb2NhdGlvbihyb2xlLCBzaWduYXR1
cmUuYXJndW1lbnQoaSksIGdwQXJndW1lbnRDb3VudCwgZnBBcmd1bWVudENvdW50LCBzdGFja09m
ZnNldCkpOwogCi0gICAgICAgIFZlY3RvcjxBcmd1bWVudExvY2F0aW9uLCAxPiByZXN1bHRzIHsg
QXJndW1lbnRMb2NhdGlvbjo6cmVnKEdQUkluZm86OnJldHVyblZhbHVlR1BSKSB9OworICAgICAg
ICBWZWN0b3I8QXJndW1lbnRMb2NhdGlvbiwgMT4gcmVzdWx0cyB7IEFyZ3VtZW50TG9jYXRpb24g
eyBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiB9IH07CiAgICAgICAgIHJldHVybiBDYWxsSW5mb3Jt
YXRpb24oV1RGTW92ZShwYXJhbXMpLCBXVEZNb3ZlKHJlc3VsdHMpLCBzdGFja09mZnNldCk7CiAg
ICAgfQogCi0gICAgY29uc3QgVmVjdG9yPFJlZz4gZ3ByQXJnczsKLSAgICBjb25zdCBWZWN0b3I8
UmVnPiBmcHJBcmdzOworICAgIGNvbnN0IFZlY3RvcjxKU1ZhbHVlUmVncz4ganNyQXJnczsKKyAg
ICBjb25zdCBWZWN0b3I8RlBSUmVnPiBmcHJBcmdzOwogICAgIGNvbnN0IFJlZ2lzdGVyU2V0IGNh
bGxlZVNhdmVSZWdpc3RlcnM7CiAgICAgY29uc3QgUmVnaXN0ZXJTZXQgY2FsbGVyU2F2ZVJlZ2lz
dGVyczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9y
bWF0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKaW5kZXggOTcw
NjNhYWI5ZTZiN2Y1NjBmZTI4ZDU0MjA2MGM1MmI4ODQ2ZTVkOS4uY2RlOWEzY2E1NjliZDg4NjAz
Y2E5ZmY3Mzg2OTM4NThiNTBjZTcyZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUZvcm1hdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21G
b3JtYXQuaApAQCAtNDQ0LDcgKzQ0NCw5IEBAIHN0cnVjdCBFbnRyeXBvaW50IHsKIHN0cnVjdCBJ
bnRlcm5hbEZ1bmN0aW9uIHsKICAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CiAg
ICAgVmVjdG9yPENvZGVMb2NhdGlvbkRhdGFMYWJlbFB0cjxXYXNtRW50cnlQdHJUYWc+PiBjYWxs
ZWVNb3ZlTG9jYXRpb25zOworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9CM0pJVCkKICAgICBTdGFj
a01hcHMgc3RhY2ttYXBzOworI2VuZGlmCiAgICAgVmVjdG9yPFVubGlua2VkSGFuZGxlckluZm8+
IGV4Y2VwdGlvbkhhbmRsZXJzOwogICAgIEVudHJ5cG9pbnQgZW50cnlwb2ludDsKICAgICB1bnNp
Z25lZCBvc3JFbnRyeVNjcmF0Y2hCdWZmZXJTaXplIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5jcHAKaW5kZXggNDEyMGFlNmE5NDk0ZmQ0NDY5
Zjk3YjhmNDA4OGQ3ZmNhYzMxOGE4OC4uZmIyMWM5MmJmODFmNjE3OWVlM2RmNTlkOGM5MWI5NTUw
MWU4YmI4MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4
T3JOYW1lLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5h
bWUuY3BwCkBAIC0zMCwxNiArMzAsMjMgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNt
IHsKIAogSW5kZXhPck5hbWU6OkluZGV4T3JOYW1lKEluZGV4IGluZGV4LCBzdGQ6OnBhaXI8Y29u
c3QgTmFtZSosIFJlZlB0cjxOYW1lU2VjdGlvbj4+JiYgbmFtZSkKIHsKKyNpZiBVU0UoSlNWQUxV
RTY0KQogICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKG1faW5kZXhOYW1lLmluZGV4KSA9PSBzaXpl
b2YobV9pbmRleE5hbWUubmFtZSksICJiaXQtdGFnZ2luZyBkZXBlbmRzIG9uIHNpemVzIGJlaW5n
IGVxdWFsIik7Ci0KLSAgICBpZiAoKGluZGV4ICYgYWxsVGFncykgfHwgKGJpdHdpc2VfY2FzdDxJ
bmRleD4obmFtZS5maXJzdCkgJiBhbGxUYWdzKSkKLSAgICAgICAgKnRoaXMgPSBJbmRleE9yTmFt
ZSgpOwotICAgIGVsc2UgewotICAgICAgICBpZiAobmFtZS5maXJzdCkKLSAgICAgICAgICAgIG1f
aW5kZXhOYW1lLm5hbWUgPSBuYW1lLmZpcnN0OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBt
X2luZGV4TmFtZS5pbmRleCA9IGluZGV4VGFnIHwgaW5kZXg7CisgICAgQVNTRVJUKCEoaW5kZXgg
JiBhbGxUYWdzKSk7CisgICAgQVNTRVJUKCEoYml0d2lzZV9jYXN0PEluZGV4PihuYW1lLmZpcnN0
KSAmIGFsbFRhZ3MpKTsKKyAgICBpZiAobmFtZS5maXJzdCkKKyAgICAgICAgbV9pbmRleE5hbWUu
bmFtZSA9IG5hbWUuZmlyc3Q7CisgICAgZWxzZQorICAgICAgICBtX2luZGV4TmFtZS5pbmRleCA9
IGluZGV4VGFnIHwgaW5kZXg7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGlmIChuYW1l
LmZpcnN0KSB7CisgICAgICAgIG1faW5kZXhOYW1lLm5hbWUgPSBuYW1lLmZpcnN0OworICAgICAg
ICBtX2tpbmQgPSBLaW5kOjpOYW1lOworICAgIH0gZWxzZSB7CisgICAgICAgIG1faW5kZXhOYW1l
LmluZGV4ID0gaW5kZXg7CisgICAgICAgIG1fa2luZCA9IEtpbmQ6OkluZGV4OwogICAgIH0KKyNl
bmRpZgogICAgIG1fbmFtZVNlY3Rpb24gPSBXVEZNb3ZlKG5hbWUuc2Vjb25kKTsKIH0KIApAQCAt
NDksOCArNTYsOCBAQCBTdHJpbmcgbWFrZVN0cmluZyhjb25zdCBJbmRleE9yTmFtZSYgaW9uKQog
ICAgICAgICByZXR1cm4gIndhc20tc3R1YiJfczsKICAgICBjb25zdCBTdHJpbmcgbW9kdWxlTmFt
ZSA9IGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1bGVOYW1lLnNpemUoKSA/IFN0cmluZyhpb24ubmFt
ZVNlY3Rpb24oKS0+bW9kdWxlTmFtZS5kYXRhKCksIGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1bGVO
YW1lLnNpemUoKSkgOiBTdHJpbmcoaW9uLm5hbWVTZWN0aW9uKCktPm1vZHVsZUhhc2guZGF0YSgp
LCBpb24ubmFtZVNlY3Rpb24oKS0+bW9kdWxlSGFzaC5zaXplKCkpOwogICAgIGlmIChpb24uaXNJ
bmRleCgpKQotICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhtb2R1bGVOYW1lLCAiLndhc20tZnVu
Y3Rpb25bIiwgU3RyaW5nOjpudW1iZXIoaW9uLm1faW5kZXhOYW1lLmluZGV4ICYgfkluZGV4T3JO
YW1lOjppbmRleFRhZyksICddJyk7Ci0gICAgcmV0dXJuIG1ha2VTdHJpbmcobW9kdWxlTmFtZSwg
Ii53YXNtLWZ1bmN0aW9uWyIsIFN0cmluZyhpb24ubV9pbmRleE5hbWUubmFtZS0+ZGF0YSgpLCBp
b24ubV9pbmRleE5hbWUubmFtZS0+c2l6ZSgpKSwgJ10nKTsKKyAgICAgICAgcmV0dXJuIG1ha2VT
dHJpbmcobW9kdWxlTmFtZSwgIi53YXNtLWZ1bmN0aW9uWyIsIFN0cmluZzo6bnVtYmVyKGlvbi5p
bmRleCgpKSwgJ10nKTsKKyAgICByZXR1cm4gbWFrZVN0cmluZyhtb2R1bGVOYW1lLCAiLndhc20t
ZnVuY3Rpb25bIiwgU3RyaW5nKGlvbi5uYW1lKCktPmRhdGEoKSwgaW9uLm5hbWUoKS0+c2l6ZSgp
KSwgJ10nKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmgKaW5kZXggNWVlZWZjODhhZjc2ZDRjNGMz
MzZhMTcyMDA3YTZjZmU2MWVhZWU2MS4uMmQ5MDMwMTE4ZjhjMWQyOThhOGNiMzM5ZDliMzkwNDJk
M2UxMTg3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4
T3JOYW1lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1l
LmgKQEAgLTQwLDE0ICs0MCw2NyBAQCBzdHJ1Y3QgTmFtZVNlY3Rpb247CiBzdHJ1Y3QgSW5kZXhP
ck5hbWUgewogICAgIHR5cGVkZWYgc2l6ZV90IEluZGV4OwogCi0gICAgSW5kZXhPck5hbWUoKSB7
IG1faW5kZXhOYW1lLmluZGV4ID0gZW1wdHlUYWc7IH0KLSAgICBJbmRleE9yTmFtZShJbmRleCwg
c3RkOjpwYWlyPGNvbnN0IE5hbWUqLCBSZWZQdHI8TmFtZVNlY3Rpb24+PiYmKTsKLSAgICBib29s
IGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8SW5kZXg+KG1faW5kZXhOYW1l
KSAmIGVtcHR5VGFnOyB9Ci0gICAgYm9vbCBpc0luZGV4KCkgY29uc3QgeyByZXR1cm4gYml0d2lz
ZV9jYXN0PEluZGV4PihtX2luZGV4TmFtZSkgJiBpbmRleFRhZzsgfQotICAgIGJvb2wgaXNOYW1l
KCkgY29uc3QgeyByZXR1cm4gIShpc0VtcHR5KCkgfHwgaXNOYW1lKCkpOyB9Ci0gICAgTmFtZVNl
Y3Rpb24qIG5hbWVTZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lU2VjdGlvbi5nZXQoKTsg
fQorcHJpdmF0ZToKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGVudW0gY2xhc3MgS2luZCA6
IHVpbnQ4X3QgeworICAgICAgICBFbXB0eSwKKyAgICAgICAgSW5kZXgsCisgICAgICAgIE5hbWUK
KyAgICB9OworI2VuZGlmCitwdWJsaWM6CiAKLSAgICBmcmllbmQgU3RyaW5nIG1ha2VTdHJpbmco
Y29uc3QgSW5kZXhPck5hbWUmKTsKKyAgICBJbmRleE9yTmFtZSgpCisgICAgeworI2lmIFVTRShK
U1ZBTFVFNjQpCisgICAgICAgIG1faW5kZXhOYW1lLmluZGV4ID0gZW1wdHlUYWc7CisjZWxpZiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBtX2tpbmQgPSBLaW5kOjpFbXB0eTsKKyNlbmRpZgor
ICAgIH0KKworICAgIEluZGV4T3JOYW1lKEluZGV4LCBzdGQ6OnBhaXI8Y29uc3QgTmFtZSosIFJl
ZlB0cjxOYW1lU2VjdGlvbj4+JiYpOworCisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QKKyAgICB7
CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxJbmRleD4o
bV9pbmRleE5hbWUpICYgZW1wdHlUYWc7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAg
ICByZXR1cm4gbV9raW5kID09IEtpbmQ6OkVtcHR5OworI2VuZGlmCisgICAgfQorCisgICAgYm9v
bCBpc0luZGV4KCkgY29uc3QKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgcmV0
dXJuIGJpdHdpc2VfY2FzdDxJbmRleD4obV9pbmRleE5hbWUpICYgaW5kZXhUYWc7CisjZWxpZiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4gbV9raW5kID09IEtpbmQ6OkluZGV4Owor
I2VuZGlmCisgICAgfQorCisgICAgYm9vbCBpc05hbWUoKSBjb25zdAorICAgIHsKKyAgICAgICAg
cmV0dXJuICEoaXNFbXB0eSgpIHx8IGlzSW5kZXgoKSk7CisgICAgfQorCisgICAgSW5kZXggaW5k
ZXgoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzSW5kZXgoKSk7CisjaWYgVVNFKEpT
VkFMVUU2NCkKKyAgICAgICAgcmV0dXJuIG1faW5kZXhOYW1lLmluZGV4ICYgfmluZGV4VGFnOwor
I2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgcmV0dXJuIG1faW5kZXhOYW1lLmluZGV4
OworI2VuZGlmCisgICAgfQorCisgICAgY29uc3QgTmFtZSogbmFtZSgpIGNvbnN0CisgICAgewor
ICAgICAgICBBU1NFUlQoaXNOYW1lKCkpOworICAgICAgICByZXR1cm4gbV9pbmRleE5hbWUubmFt
ZTsKKyAgICB9CisKKyAgICBOYW1lU2VjdGlvbiogbmFtZVNlY3Rpb24oKSBjb25zdCB7IHJldHVy
biBtX25hbWVTZWN0aW9uLmdldCgpOyB9CiAKIHByaXZhdGU6CiAgICAgdW5pb24gewpAQCAtNTYs
MTAgKzEwOSwxNSBAQCBwcml2YXRlOgogICAgIH0gbV9pbmRleE5hbWU7CiAgICAgUmVmUHRyPE5h
bWVTZWN0aW9uPiBtX25hbWVTZWN0aW9uOwogCisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAvLyBV
c2UgdGhlIHRvcCBiaXRzIGFzIHRhZ3MuIE5laXRoZXIgcG9pbnRlcnMgbm9yIHRoZSBmdW5jdGlv
biBpbmRleCBzcGFjZSBzaG91bGQgdXNlIHRoZW0uCiAgICAgc3RhdGljIGNvbnN0ZXhwciBJbmRl
eCBpbmRleFRhZyA9IDF1bGwgPDwgKENIQVJfQklUICogc2l6ZW9mKEluZGV4KSAtIDEpOwogICAg
IHN0YXRpYyBjb25zdGV4cHIgSW5kZXggZW1wdHlUYWcgPSAxdWxsIDw8IChDSEFSX0JJVCAqIHNp
emVvZihJbmRleCkgLSAyKTsKICAgICBzdGF0aWMgY29uc3RleHByIEluZGV4IGFsbFRhZ3MgPSBp
bmRleFRhZyB8IGVtcHR5VGFnOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAvLyBVc2Ug
YW4gZXhwbGljaXQgdGFnIGFzIHBvaW50ZXJzIG1pZ2h0IGhhdmUgaGlnaCBiaXRzIHNldAorICAg
IEtpbmQgbV9raW5kOworI2VuZGlmCiB9OwogCiBTdHJpbmcgbWFrZVN0cmluZyhjb25zdCBJbmRl
eE9yTmFtZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUlu
c3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaAppbmRl
eCA3MTBiODc2ZTIyNDVlM2ZjMWZmZWRjYmVlODhjNDg0MTEwNzFkNTBiLi5kYTYwZDU2NjU4MTY1
MDYwZDI0Y2UwYmI4OTljNDAxMjAyODAzYjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtSW5zdGFuY2UuaApAQCAtMTA3LDcgKzEwNyw4IEBAIHB1YmxpYzoKICAgICB7CiAgICAg
ICAgIGlmIChtX21lbW9yeSAhPSBudWxscHRyKSB7CiAgICAgICAgICAgICBtX2NhY2hlZE1lbW9y
eSA9IENhZ2VkUHRyPEdpZ2FjYWdlOjpQcmltaXRpdmUsIHZvaWQsIHRhZ0NhZ2VkUHRyPihtZW1v
cnkoKS0+bWVtb3J5KCksIG1lbW9yeSgpLT5ib3VuZHNDaGVja2luZ1NpemUoKSk7Ci0gICAgICAg
ICAgICBtX2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSA9IG1lbW9yeSgpLT5ib3VuZHNDaGVja2lu
Z1NpemUoKTsKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgdXNlZCBieSB0aGUgbm9uLXNpZ25hbGlu
ZyBiYXNlZCBib3VuZCBjaGVja2luZywgc28gdXNlIHRoZSBhY3R1YWwgc2l6ZSBvZiB0aGUgbWVt
b3J5LgorICAgICAgICAgICAgbV9jYWNoZWRCb3VuZHNDaGVja2luZ1NpemUgPSBtZW1vcnkoKS0+
c2l6ZSgpOwogICAgICAgICAgICAgQVNTRVJUKG1lbW9yeSgpLT5tZW1vcnkoKSA9PSBjYWNoZWRN
ZW1vcnkoKSk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcAppbmRleCAxMzU2OTBkYTJkNjBiN2NiYzY5OWJh
MjU2MzRkYjI1ZTQ3YzBkZDAxLi5iNmI0YTQ2OGFhNjVhN2I2OWM0MjhkNmZiZDZkM2M3MzdiNTk4
M2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5l
cmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVy
YXRvci5jcHAKQEAgLTMzOCw3ICszMzgsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJu
IG1fbm9ybWFsaXplZEFyZ3VtZW50c1tpbmRleF07CiAKICAgICAgICAgY29uc3QgYXV0byYgY2Fs
bGluZ0NvbnZlbnRpb24gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKTsKLSAgICAgICAgY29uc3Qg
dWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5ncHJBcmdzLnNpemUoKTsKKyAg
ICAgICAgY29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5qc3JBcmdz
LnNpemUoKTsKICAgICAgICAgY29uc3QgdWludDMyX3QgZnByQ291bnQgPSBjYWxsaW5nQ29udmVu
dGlvbi5mcHJBcmdzLnNpemUoKTsKICAgICAgICAgcmV0dXJuIHZpcnR1YWxSZWdpc3RlckZvckxv
Y2FsKGluZGV4IC0gbV9jb2RlQmxvY2stPm1fbnVtQXJndW1lbnRzICsgZ3ByQ291bnQgKyBmcHJD
b3VudCArIG51bWJlck9mTExJbnRDYWxsZWVTYXZlUmVnaXN0ZXJzKTsKICAgICB9CkBAIC01OTIs
NyArNTkyLDcgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVy
KGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAtPiBMTEkKICAgICBjb25zdCBhdXRvIGluaXRp
YWxTdGFja1NpemUgPSBtX3N0YWNrU2l6ZTsKIAogICAgIGNvbnN0IGF1dG8mIGNhbGxpbmdDb252
ZW50aW9uID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCk7Ci0gICAgY29uc3QgdWludDMyX3QgZ3By
Q291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5ncHJBcmdzLnNpemUoKTsKKyAgICBjb25zdCB1aW50
MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmpzckFyZ3Muc2l6ZSgpOwogICAgIGNv
bnN0IHVpbnQzMl90IGZwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZnByQXJncy5zaXplKCk7
CiAKICAgICB1aW50MzJfdCBzdGFja0NvdW50ID0gMDsKQEAgLTczNCw3ICs3MzQsNyBAQCBhdXRv
IExMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZWUoY29uc3QgU2lnbmF0dXJl
JiBzaWduYXR1cmUpIC0+IFZlYwogICAgIG1fcmVzdWx0cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KHNpZ25hdHVyZS5yZXR1cm5Db3VudCgpKTsKIAogICAgIGNvbnN0IGF1dG8mIGNhbGxpbmdDb252
ZW50aW9uID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCk7Ci0gICAgY29uc3QgdWludDMyX3QgZ3By
Q291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5ncHJBcmdzLnNpemUoKTsKKyAgICBjb25zdCB1aW50
MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmpzckFyZ3Muc2l6ZSgpOwogICAgIGNv
bnN0IHVpbnQzMl90IGZwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZnByQXJncy5zaXplKCk7
CiAKICAgICB1aW50MzJfdCBncHJJbmRleCA9IDA7CkBAIC03ODAsNyArNzgwLDcgQEAgYXV0byBM
TEludEdlbmVyYXRvcjo6YWRkQXJndW1lbnRzKGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAt
PiBQYXJ0aWFsUmVzdWx0CiAgICAgbV9ub3JtYWxpemVkQXJndW1lbnRzLnJlc2l6ZShtX2NvZGVC
bG9jay0+bV9udW1Bcmd1bWVudHMpOwogCiAgICAgY29uc3QgYXV0byYgY2FsbGluZ0NvbnZlbnRp
b24gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKTsKLSAgICBjb25zdCB1aW50MzJfdCBncHJDb3Vu
dCA9IGNhbGxpbmdDb252ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgIGNvbnN0IHVpbnQzMl90
IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uanNyQXJncy5zaXplKCk7CiAgICAgY29uc3Qg
dWludDMyX3QgZnByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5mcHJBcmdzLnNpemUoKTsKICAg
ICBjb25zdCB1aW50MzJfdCBtYXhHUFJJbmRleCA9IGdwckNvdW50OwogICAgIGNvbnN0IHVpbnQz
Ml90IG1heEZQUkluZGV4ID0gZ3ByQ291bnQgKyBmcHJDb3VudDsKQEAgLTk2MSw3ICs5NjEsNyBA
QCBhdXRvIExMSW50R2VuZXJhdG9yOjphZGRMb29wKEJsb2NrU2lnbmF0dXJlIHNpZ25hdHVyZSwg
U3RhY2smIGVuY2xvc2luZ1N0YWNrLCBDbwogICAgICAgICBvc3JFbnRyeURhdGEuYXBwZW5kKG1f
bm9ybWFsaXplZEFyZ3VtZW50c1tpXSk7CiAKICAgICBjb25zdCBhdXRvJiBjYWxsaW5nQ29udmVu
dGlvbiA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpOwotICAgIGNvbnN0IHVpbnQzMl90IGdwckNv
dW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZ3ByQXJncy5zaXplKCk7CisgICAgY29uc3QgdWludDMy
X3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5qc3JBcmdzLnNpemUoKTsKICAgICBjb25z
dCB1aW50MzJfdCBmcHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmZwckFyZ3Muc2l6ZSgpOwog
ICAgIGZvciAodWludDMyX3QgaSA9IGdwckNvdW50ICsgZnByQ291bnQgKyBudW1iZXJPZkxMSW50
Q2FsbGVlU2F2ZVJlZ2lzdGVyczsgaSA8IG1fY29kZUJsb2NrLT5tX251bVZhcnM7IGkrKykKICAg
ICAgICAgb3NyRW50cnlEYXRhLmFwcGVuZCh2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChpKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3BwCmluZGV4IGMyNDlm
OTJjZjA1YmIwYzhjMzQ0ZWE1YWI3MWIzOTZmMWFkYjk0YzEuLjc1ZjczNmQ2YmE5ZDdmMGJhMGM0
ODIxZjJkNTZjMDlmODZkZDE5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21MTEludFBsYW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21MTEludFBsYW4uY3BwCkBAIC0xMTksMTIgKzExOSwxNSBAQCB2b2lkIExMSW50UGxhbjo6ZGlk
Q29tcGxldGVDb21waWxhdGlvbigpCiAgICAgICAgICAgICBlbnRyeXBvaW50c1tpXSA9IGppdC5s
YWJlbCgpOwogI2lmIENQVShYODZfNjQpCiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MgY2FsbGVlU2xvdChDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBDYWxsRnJh
bWVTbG90OjpjYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpIC0gc2l6
ZW9mKENQVVJlZ2lzdGVyKSk7Ci0jZWxpZiBDUFUoQVJNNjQpIHx8IENQVShSSVNDVjY0KQorI2Vs
aWYgQ1BVKEFSTTY0KSB8fCBDUFUoUklTQ1Y2NCkgfHwgQ1BVKEFSTSkKICAgICAgICAgICAgIEND
YWxsSGVscGVyczo6QWRkcmVzcyBjYWxsZWVTbG90KENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVy
UmVnaXN0ZXIsIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9m
KFJlZ2lzdGVyKSkgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpOwogI2Vsc2UKICNlcnJvciBV
bnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUuCiAjZW5kaWYKLSAgICAgICAgICAgIGppdC5zdG9yZVB0
cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoQ2FsbGVlQml0czo6Ym94V2FzbShtX2NhbGxl
ZXNWZWN0b3JbaV0ucHRyKCkpKSwgY2FsbGVlU2xvdCk7CisgICAgICAgICAgICBqaXQuc3RvcmVQ
dHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKENhbGxlZUJpdHM6OmJveFdhc20obV9jYWxs
ZWVzVmVjdG9yW2ldLnB0cigpKSksIGNhbGxlZVNsb3Qud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0
KSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIGppdC5zdG9yZTMyKENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6Oldhc21UYWcpLCBjYWxsZWVTbG90LndpdGhP
ZmZzZXQoVGFnT2Zmc2V0KSk7CisjZW5kaWYKICAgICAgICAgICAgIGp1bXBzW2ldID0gaml0Lmp1
bXAoKTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtTWVtb3J5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnku
Y3BwCmluZGV4IDQ0MDc1OTUyZjAwNzY5ZGIyYjkwMTYwMGIxMDFiZjJiZGU0YjZlNWYuLmJmNWMx
ZWM0NjJiZDE2ZjI0ZGY1NzRlM2IzN2I0MmVmNGZiNTFiODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21NZW1vcnkuY3BwCkBAIC05OCwxMSArOTgsOSBAQCBjbGFzcyBNZW1vcnlN
YW5hZ2VyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShNZW1vcnlNYW5hZ2VyKTsKIHB1YmxpYzoKLSAgICBNZW1vcnlNYW5hZ2VyKCkKLSAg
ICAgICAgOiBtX21heEZhc3RNZW1vcnlDb3VudChPcHRpb25zOjptYXhOdW1XZWJBc3NlbWJseUZh
c3RNZW1vcmllcygpKQotICAgIHsKLSAgICB9Ci0gICAgCisgICAgTWVtb3J5TWFuYWdlcigpID0g
ZGVmYXVsdDsKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAg
IE1lbW9yeVJlc3VsdCB0cnlBbGxvY2F0ZUZhc3RNZW1vcnkoKQogICAgIHsKICAgICAgICAgTWVt
b3J5UmVzdWx0IHJlc3VsdCA9IFsmXSB7CkBAIC0xMjUsNyArMTIzLDcgQEAgcHVibGljOgogICAg
ICAgICAKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9Ci0gICAgCisKICAgICB2b2lkIGZy
ZWVGYXN0TWVtb3J5KHZvaWQqIGJhc2VQdHIpCiAgICAgewogICAgICAgICB7CkBAIC0xMzYsNiAr
MTM0LDcgQEAgcHVibGljOgogICAgICAgICAKICAgICAgICAgZGF0YUxvZ0xuSWYoT3B0aW9uczo6
bG9nV2ViQXNzZW1ibHlNZW1vcnkoKSwgIkZyZWVkIHZpcnR1YWw7IHN0YXRlOiAiLCAqdGhpcyk7
CiAgICAgfQorI2VuZGlmCiAKICAgICBNZW1vcnlSZXN1bHQgdHJ5QWxsb2NhdGVHcm93YWJsZUJv
dW5kc0NoZWNraW5nTWVtb3J5KHNpemVfdCBtYXBwZWRDYXBhY2l0eSkKICAgICB7CkBAIC0xNzAs
MTEgKzE2OSwxMyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICAvLyBOT1RFOiBUaGlzIGNhbiBi
ZSBjYWxsZWQgZnJvbSBhIHNpZ25hbCBoYW5kbGVyLCBidXQgb25seSBhZnRlciB3ZSBwcm92ZWQg
dGhhdCB3ZSdyZSBpbiBKSVQgY29kZSBvciBXYXNtTExJbnQgY29kZS4KICAgICAgICAgTG9ja2Vy
IGxvY2tlciB7IG1fbG9jayB9OworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVN
T1JZKQogICAgICAgICBmb3IgKHZvaWQqIG1lbW9yeSA6IG1fZmFzdE1lbW9yaWVzKSB7CiAgICAg
ICAgICAgICBjaGFyKiBzdGFydCA9IHN0YXRpY19jYXN0PGNoYXIqPihtZW1vcnkpOwogICAgICAg
ICAgICAgaWYgKHN0YXJ0IDw9IGFkZHJlc3MgJiYgYWRkcmVzcyA8PSBzdGFydCArIE1lbW9yeTo6
ZmFzdE1hcHBlZEJ5dGVzKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KKyNlbmRpZgogICAgICAgICB1aW50cHRyX3QgYWRkcmVzc1ZhbHVlID0gYml0d2lzZV9jYXN0
PHVpbnRwdHJfdD4oYWRkcmVzcyk7CiAgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBzdGQ6OnVwcGVy
X2JvdW5kKG1fZ3Jvd2FibGVCb3VuZHNDaGVja2luZ01lbW9yaWVzLmJlZ2luKCksIG1fZ3Jvd2Fi
bGVCb3VuZHNDaGVja2luZ01lbW9yaWVzLmVuZCgpLCBzdGQ6Om1ha2VfcGFpcihhZGRyZXNzVmFs
dWUsIDApLAogICAgICAgICAgICAgW10oc3RkOjpwYWlyPHVpbnRwdHJfdCwgc2l6ZV90PiBhLCBz
dGQ6OnBhaXI8dWludHB0cl90LCBzaXplX3Q+IGIpIHsKQEAgLTIyNywxMyArMjI4LDE5IEBAIHB1
YmxpYzoKICAgICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICB7
CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgICAgIG91dC5w
cmludCgiZmFzdCBtZW1vcmllcyA9ICAiLCBtX2Zhc3RNZW1vcmllcy5zaXplKCksICIvIiwgbV9t
YXhGYXN0TWVtb3J5Q291bnQsICIsIGJ5dGVzID0gIiwgbV9waHlzaWNhbEJ5dGVzLCAiLyIsIG1l
bW9yeUxpbWl0KCkpOworI2Vsc2UKKyAgICAgICAgb3V0LnByaW50KCJmYXN0IG1lbW9yaWVzID0g
Ti5BLiwgYnl0ZXMgPSAiLCBtX3BoeXNpY2FsQnl0ZXMsICIvIiwgbWVtb3J5TGltaXQoKSk7Cisj
ZW5kaWYKICAgICB9CiAgICAgCiBwcml2YXRlOgogICAgIExvY2sgbV9sb2NrOwotICAgIHVuc2ln
bmVkIG1fbWF4RmFzdE1lbW9yeUNvdW50IHsgMCB9OworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9T
SUdOQUxJTkdfTUVNT1JZKQorICAgIHVuc2lnbmVkIG1fbWF4RmFzdE1lbW9yeUNvdW50IHsgT3B0
aW9uczo6bWF4TnVtV2ViQXNzZW1ibHlGYXN0TWVtb3JpZXMoKSB9OwogICAgIFZlY3Rvcjx2b2lk
Kj4gbV9mYXN0TWVtb3JpZXM7CisjZW5kaWYKICAgICBTdGRTZXQ8c3RkOjpwYWlyPHVpbnRwdHJf
dCwgc2l6ZV90Pj4gbV9ncm93YWJsZUJvdW5kc0NoZWNraW5nTWVtb3JpZXM7CiAgICAgc2l6ZV90
IG1fcGh5c2ljYWxCeXRlcyB7IDAgfTsKIH07CkBAIC0zMDAsNiArMzA3LDcgQEAgTWVtb3J5SGFu
ZGxlOjp+TWVtb3J5SGFuZGxlKCkKICAgICAgICAgdm9pZCogbWVtb3J5ID0gdGhpcy0+bWVtb3J5
KCk7CiAgICAgICAgIG1lbW9yeU1hbmFnZXIoKS5mcmVlUGh5c2ljYWxCeXRlcyhtX3NpemUpOwog
ICAgICAgICBzd2l0Y2ggKG1fbW9kZSkgeworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJ
TkdfTUVNT1JZKQogICAgICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzoKICAgICAgICAg
ICAgIGlmIChtcHJvdGVjdChtZW1vcnksIE1lbW9yeTo6ZmFzdE1hcHBlZEJ5dGVzKCksIFBST1Rf
UkVBRCB8IFBST1RfV1JJVEUpKSB7CiAgICAgICAgICAgICAgICAgZGF0YUxvZygibXByb3RlY3Qg
ZmFpbGVkOiAiLCBzYWZlU3RyZXJyb3IoZXJybm8pLmRhdGEoKSwgIlxuIik7CkBAIC0zMDcsNiAr
MzE1LDcgQEAgTWVtb3J5SGFuZGxlOjp+TWVtb3J5SGFuZGxlKCkKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIG1lbW9yeU1hbmFnZXIoKS5mcmVlRmFzdE1lbW9yeShtZW1vcnkpOwogICAgICAg
ICAgICAgYnJlYWs7CisjZW5kaWYKICAgICAgICAgY2FzZSBNZW1vcnlNb2RlOjpCb3VuZHNDaGVj
a2luZzogewogICAgICAgICAgICAgc3dpdGNoIChtX3NoYXJpbmdNb2RlKSB7CiAgICAgICAgICAg
ICBjYXNlIE1lbW9yeVNoYXJpbmdNb2RlOjpEZWZhdWx0OgpAQCAtMzk1LDYgKzQwNCw3IEBAIFJl
ZlB0cjxNZW1vcnk+IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBpbml0aWFsLCBQYWdlQ291
bnQgbWF4aW11bSwgTWVtb3J5U2hhCiAgICAgaWYgKCFkb25lKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICAgICAgCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkp
CiAgICAgY2hhciogZmFzdE1lbW9yeSA9IG51bGxwdHI7CiAgICAgaWYgKE9wdGlvbnM6OnVzZVdl
YkFzc2VtYmx5RmFzdE1lbW9yeSgpKSB7CiAgICAgICAgIHRyeUFsbG9jYXRlKApAQCAtNDEzLDcg
KzQyMyw4IEBAIFJlZlB0cjxNZW1vcnk+IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBpbml0
aWFsLCBQYWdlQ291bnQgbWF4aW11bSwgTWVtb3J5U2hhCiAKICAgICAgICAgcmV0dXJuIE1lbW9y
eTo6Y3JlYXRlKGFkb3B0UmVmKCpuZXcgTWVtb3J5SGFuZGxlKGZhc3RNZW1vcnksIGluaXRpYWxC
eXRlcywgTWVtb3J5OjpmYXN0TWFwcGVkQnl0ZXMoKSwgaW5pdGlhbCwgbWF4aW11bSwgc2hhcmlu
Z01vZGUsIE1lbW9yeU1vZGU6OlNpZ25hbGluZykpLCBXVEZNb3ZlKG5vdGlmeU1lbW9yeVByZXNz
dXJlKSwgV1RGTW92ZShzeW5jVHJ5VG9SZWNsYWltTWVtb3J5KSwgV1RGTW92ZShncm93U3VjY2Vz
c0NhbGxiYWNrKSk7CiAgICAgfQotICAgIAorI2VuZGlmCisKICAgICBpZiAoVU5MSUtFTFkoT3B0
aW9uczo6Y3Jhc2hJZldlYkFzc2VtYmx5Q2FudEZhc3RNZW1vcnkoKSkpCiAgICAgICAgIHdlYkFz
c2VtYmx5Q291bGRudEdldEZhc3RNZW1vcnkoKTsKIApAQCAtNDU2LDYgKzQ2Nyw3IEBAIFJlZlB0
cjxNZW1vcnk+IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBpbml0aWFsLCBQYWdlQ291bnQg
bWF4aW11bSwgTWVtb3J5U2hhCiAKIE1lbW9yeTo6fk1lbW9yeSgpID0gZGVmYXVsdDsKIAorI2lm
IEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogc2l6ZV90IE1lbW9yeTo6ZmFz
dE1hcHBlZFJlZHpvbmVCeXRlcygpCiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHNpemVfdD4o
UGFnZUNvdW50OjpwYWdlU2l6ZSkgKiBPcHRpb25zOjp3ZWJBc3NlbWJseUZhc3RNZW1vcnlSZWR6
b25lUGFnZXMoKTsKQEAgLTQ2Niw2ICs0NzgsNyBAQCBzaXplX3QgTWVtb3J5OjpmYXN0TWFwcGVk
Qnl0ZXMoKQogICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKHVpbnQ2NF90KSA9PSBzaXplb2Yoc2l6
ZV90KSwgIldlIHJlbHkgb24gYWxsb3dpbmcgdGhlIG1heGltdW0gc2l6ZSBvZiBNZW1vcnkgd2Ug
bWFwIHRvIGJlIDJeMzIgKyByZWR6b25lIHdoaWNoIGlzIGxhcmdlciB0aGFuIGZpdHMgaW4gYSAz
Mi1iaXQgaW50ZWdlciB0aGF0IHdlJ2QgcGFzcyB0byBtcHJvdGVjdCBpZiB0aGlzIGRpZG4ndCBo
b2xkLiIpOwogICAgIHJldHVybiAoc3RhdGljX2Nhc3Q8c2l6ZV90PigxKSA8PCAzMikgKyBmYXN0
TWFwcGVkUmVkem9uZUJ5dGVzKCk7CiB9CisjZW5kaWYKIAogYm9vbCBNZW1vcnk6OmFkZHJlc3NJ
c0luR3Jvd2FibGVPckZhc3RNZW1vcnkodm9pZCogYWRkcmVzcykKIHsKQEAgLTUyNCw4ICs1Mzcs
MTQgQEAgRXhwZWN0ZWQ8UGFnZUNvdW50LCBNZW1vcnk6Okdyb3dGYWlsUmVhc29uPiBNZW1vcnk6
Omdyb3dTaGFyZWQoUGFnZUNvdW50IGRlbHRhKQogICAgICAgICBtX2hhbmRsZS0+Z3Jvd1RvU2l6
ZShkZXNpcmVkU2l6ZSk7CiAgICAgICAgIHJldHVybiBvbGRQYWdlQ291bnQ7CiAgICAgfSgpKTsK
LSAgICBpZiAocmVzdWx0KQorICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgbV9ncm93U3VjY2Vz
c0NhbGxiYWNrKEdyb3dTdWNjZXNzVGFnLCBvbGRQYWdlQ291bnQsIG5ld1BhZ2VDb3VudCk7Cisg
ICAgICAgIC8vIFVwZGF0ZSBjYWNoZSBmb3IgaW5zdGFuY2UKKyAgICAgICAgZm9yIChhdXRvJiBp
bnN0YW5jZSA6IG1faW5zdGFuY2VzKSB7CisgICAgICAgICAgICBpZiAoaW5zdGFuY2UuZ2V0KCkg
IT0gbnVsbHB0cikKKyAgICAgICAgICAgICAgICBpbnN0YW5jZS5nZXQoKS0+dXBkYXRlQ2FjaGVk
TWVtb3J5KCk7CisgICAgICAgIH0KKyAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAt
NTg4LDYgKzYwNyw3IEBAIEV4cGVjdGVkPFBhZ2VDb3VudCwgTWVtb3J5OjpHcm93RmFpbFJlYXNv
bj4gTWVtb3J5Ojpncm93KFBhZ2VDb3VudCBkZWx0YSkKICAgICAgICAgQVNTRVJUKG1lbW9yeSgp
ID09IG5ld01lbW9yeSk7CiAgICAgICAgIHJldHVybiBzdWNjZXNzKCk7CiAgICAgfQorI2lmIEVO
QUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIGNhc2UgTWVtb3J5TW9kZTo6
U2lnbmFsaW5nOiB7CiAgICAgICAgIHNpemVfdCBleHRyYUJ5dGVzID0gZGVzaXJlZFNpemUgLSBz
aXplKCk7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGV4dHJhQnl0ZXMpOwpAQCAtNjEzLDYgKzYz
Myw3IEBAIEV4cGVjdGVkPFBhZ2VDb3VudCwgTWVtb3J5OjpHcm93RmFpbFJlYXNvbj4gTWVtb3J5
Ojpncm93KFBhZ2VDb3VudCBkZWx0YSkKICAgICAgICAgbV9oYW5kbGUtPmdyb3dUb1NpemUoZGVz
aXJlZFNpemUpOwogICAgICAgICByZXR1cm4gc3VjY2VzcygpOwogICAgIH0KKyNlbmRpZgogICAg
IH0KIAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC02NDYsNyArNjY3LDgg
QEAgYm9vbCBNZW1vcnk6OmNvcHkodWludDMyX3QgZHN0QWRkcmVzcywgdWludDMyX3Qgc3JjQWRk
cmVzcywgdWludDMyX3QgY291bnQpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgdWludDhf
dCogYmFzZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KG1lbW9yeSgpKTsKLSAgICBtZW1j
cHkoYmFzZSArIGRzdEFkZHJlc3MsIGJhc2UgKyBzcmNBZGRyZXNzLCBjb3VudCk7CisgICAgLy8g
U291cmNlIGFuZCBkZXN0aW5hdGlvbiBhcmVhcyBtaWdodCBvdmVybGFwLCBzbyB1c2luZyBtZW1t
b3ZlLgorICAgIG1lbW1vdmUoYmFzZSArIGRzdEFkZHJlc3MsIGJhc2UgKyBzcmNBZGRyZXNzLCBj
b3VudCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21NZW1vcnkuaAppbmRleCBmNWM1OGZjZjk2ZjJkODZiMDc1Y2U1NzhkNTY2OTdhZTc0YTU2MjQz
Li40OWM4NTU2NjFlNDRhMmMwN2FlZGI4YWVhZTQzNzQ2MDBkZTE2NTU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5oCkBAIC0xMDYsOCArMTA2LDEwIEBAIHB1YmxpYzoK
IAogICAgIEpTX0VYUE9SVF9QUklWQVRFIH5NZW1vcnkoKTsKIAorI2lmIEVOQUJMRShXRUJBU1NF
TUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIHN0YXRpYyBzaXplX3QgZmFzdE1hcHBlZFJlZHpv
bmVCeXRlcygpOwogICAgIHN0YXRpYyBzaXplX3QgZmFzdE1hcHBlZEJ5dGVzKCk7IC8vIEluY2x1
ZGVzIHJlZHpvbmUuCisjZW5kaWYKICAgICBzdGF0aWMgYm9vbCBhZGRyZXNzSXNJbkdyb3dhYmxl
T3JGYXN0TWVtb3J5KHZvaWQqKTsKIAogICAgIHZvaWQqIG1lbW9yeSgpIGNvbnN0IHsgcmV0dXJu
IG1faGFuZGxlLT5tZW1vcnkoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5jcHAKaW5kZXggMjY1MmRlNzJlZDU2NThiNzdjZWUy
OTkxMmE1MjllZjdmMmJmYjQwZC4uNjBmYWQ2M2VmMGUwYjc5Y2UyYzI2ZTI2Mzc5N2Q0YzQxMzMx
YTM1MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUlu
Zm9ybWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5
SW5mb3JtYXRpb24uY3BwCkBAIC00MSw4ICs0MSwxNSBAQCBjb25zdCBQaW5uZWRSZWdpc3Rlcklu
Zm8mIFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCkKICAgICAgICAgdW5zaWduZWQgbnVtYmVyT2ZQ
aW5uZWRSZWdpc3RlcnMgPSAyOwogICAgICAgICBpZiAoIUNvbnRleHQ6OnVzZUZhc3RUTFMoKSkK
ICAgICAgICAgICAgICsrbnVtYmVyT2ZQaW5uZWRSZWdpc3RlcnM7CisjaWYgQ1BVKFg4Nl82NCkg
fHwgQ1BVKEFSTTY0KQogICAgICAgICBHUFJSZWcgYmFzZU1lbW9yeVBvaW50ZXIgPSBHUFJJbmZv
OjpyZWdDUzM7CiAgICAgICAgIEdQUlJlZyBib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlciA9IEdQ
UkluZm86OnJlZ0NTNDsKKyNlbGlmIENQVShBUk0pCisgICAgICAgIC8vIE5vdCBlbm91Z2ggcmVn
aXN0ZXJzLiByZWdDUzAgaXMgdGhlIHdhc20gaW5zdGFuY2UsIHJlZ0NTMSBpcyBMTEludCBQQgor
ICAgICAgICBudW1iZXJPZlBpbm5lZFJlZ2lzdGVycyAtPSAyOworICAgICAgICBHUFJSZWcgYmFz
ZU1lbW9yeVBvaW50ZXIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICBHUFJSZWcgYm91bmRzQ2hl
Y2tpbmdTaXplUmVnaXN0ZXIgPSBJbnZhbGlkR1BSUmVnOworI2VuZGlmCiAgICAgICAgIEdQUlJl
ZyB3YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlciA9IEludmFsaWRHUFJSZWc7CiAgICAgICAgIGlm
ICghQ29udGV4dDo6dXNlRmFzdFRMUygpKQogICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5j
ZVBvaW50ZXIgPSBHUFJJbmZvOjpyZWdDUzA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5oCmluZGV4IDg1NGZiYTU0ZTMzN2YwZjAyNDhl
MzM5Mzc4NDQzYjM0MWUwZjczMDkuLjI5ZmNiZGI2ZDQ2MzBlOTQ0ZTFmNTBiOWY4Mjg2MTY4ODVl
OWQyNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJ
bmZvcm1hdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJ
bmZvcm1hdGlvbi5oCkBAIC01MiwxMCArNTIsMTEgQEAgcHVibGljOgogICAgIFJlZ2lzdGVyU2V0
IHRvU2F2ZShNZW1vcnlNb2RlIG1vZGUpIGNvbnN0CiAgICAgewogICAgICAgICBSZWdpc3RlclNl
dCByZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC5zZXQoYmFzZU1lbW9yeVBvaW50ZXIpOworICAgICAg
ICBpZiAoYmFzZU1lbW9yeVBvaW50ZXIgIT0gSW52YWxpZEdQUlJlZykKKyAgICAgICAgICAgIHJl
c3VsdC5zZXQoYmFzZU1lbW9yeVBvaW50ZXIpOwogICAgICAgICBpZiAod2FzbUNvbnRleHRJbnN0
YW5jZVBvaW50ZXIgIT0gSW52YWxpZEdQUlJlZykKICAgICAgICAgICAgIHJlc3VsdC5zZXQod2Fz
bUNvbnRleHRJbnN0YW5jZVBvaW50ZXIpOwotICAgICAgICBpZiAobW9kZSAhPSBNZW1vcnlNb2Rl
OjpTaWduYWxpbmcpCisgICAgICAgIGlmIChtb2RlID09IE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNr
aW5nICYmIGJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyICE9IEludmFsaWRHUFJSZWcpCiAgICAg
ICAgICAgICByZXN1bHQuc2V0KGJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyKTsKICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtTWVtb3J5TW9kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
TWVtb3J5TW9kZS5jcHAKaW5kZXggOWJlMDRkNzdiMDZiOGNhNzIyN2ExYzY2YTZjNjMzOGIzNzk4
OGU1Yi4uZjMzYjA1MjUxOTgzMGM0NGMwMTZjMmJmN2ViYzhhNzJkZTdmYTg2OSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmNwcApAQCAtMzcsNyArMzcs
OSBAQCBjb25zdCBjaGFyKiBtYWtlU3RyaW5nKE1lbW9yeU1vZGUgbW9kZSkKIHsKICAgICBzd2l0
Y2ggKG1vZGUpIHsKICAgICBjYXNlIE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nOiByZXR1cm4g
IkJvdW5kc0NoZWNraW5nIjsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9S
WSkKICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzogcmV0dXJuICJTaWduYWxpbmciOwor
I2VuZGlmCiAgICAgfQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0
dXJuICIiOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9y
eU1vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmgKaW5k
ZXggMDJjZmNmZTQ5ZjQ3MTU0YjMxNTNjMDlhYmQ4Y2NmYzdjZmMyMTA2OC4uZDcxMWFmYWYzMDMz
MWY4Y2M3M2QyNjhhYzBjNGU3NTFjMGIyZmI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtTWVtb3J5TW9kZS5oCkBAIC0zNCw3ICszNCw5IEBAIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgV2FzbSB7CiAvLyBGSVhNRTogV2Ugc2hvdWxkIHN1cHBvcnQgb3RoZXIgbW9kZXMu
IHNlZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjY5MwogZW51
bSBjbGFzcyBNZW1vcnlNb2RlIDogdWludDhfdCB7CiAgICAgQm91bmRzQ2hlY2tpbmcsCisjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgU2lnbmFsaW5nCisjZW5k
aWYKIH07CiAKIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IE51bWJlck9mTWVtb3J5TW9kZXMgPSAy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdp
bi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcApp
bmRleCBiNmM1YzI3NTUzMTFiM2RlMzQwMzUzZTc1OTQzZDYxM2RmZjZkMmQ4Li45ZmM5MWI5ZDlj
NTQ4MjY5MmExZDM3YzkwMTljOGM1Y2JjMTJkZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldhc21PcGNvZGVPcmlnaW4uaCIKIAotI2lmIEVOQUJM
RShXRUJBU1NFTUJMWSkKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCiAKIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKQEAgLTM3LDQgKzM3LDQgQEAgdm9pZCBPcGNvZGVP
cmlnaW46OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIAogfSB9IC8vIG5hbWVzcGFjZSBK
U0M6Oldhc20KIAotI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCQVNTRU1CTFlfQjNKSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
T3Bjb2RlT3JpZ2luLmgKaW5kZXggYTBkOGRmM2FlZjE5YWVmNmIxNzA3OTQ3OWE2MzQ4MTI4ODBj
ODczNi4uNWM0YjY3NmQ1YzZlYjBmNTlhOTdkNDliYjNkNTVhNDE3YmVjMWMyNSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uaApAQCAtMjUsNyArMjUs
NyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyNpZiBFTkFC
TEUoV0VCQVNTRU1CTFlfQjNKSVQpCiAKICNpbmNsdWRlICJCM09yaWdpbi5oIgogI2luY2x1ZGUg
Ildhc21Gb3JtYXQuaCIKQEAgLTYwLDQgKzYwLDQgQEAgcHJpdmF0ZToKIAogfSB9IC8vIG5hbWVz
cGFjZSBKU0M6Oldhc20KIAotI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKKyNlbmRpZiAv
LyBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtT3BlcmF0aW9ucy5jcHAKaW5kZXggNTE0NjQ1NzJmMWNmMmVjMWYwY2FhZjU4ZGRiNzg0
YWZjZmIzNjkwMi4uMGNmMDM1NDY3YWMwMGIxZDIwNjRmNTAwNjA2MmZmZThjYThjOGFjZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcApAQCAtNDY4
LDQzICs0NjgsNDMgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21Vbndp
bmQsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiAgICAgQVNTRVJUKCEhdm0uY2FsbEZy
YW1lRm9yQ2F0Y2gpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29u
dmVydFRvSTY0LCBpbnQ2NF90LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdikpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTY0LCBpbnQ2NF90LCAo
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVuY29kZWRKU1ZhbHVlIHYpKQogewogICAgIC8vIEZJWE1F
OiBDb25zaWRlciBwYXNzaW5nIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGVhZC4KICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjA2CiAgICAgVk0m
IHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIHJldHVybiB2LnRvQmlnSW50NjQoY2FsbEZy
YW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29k
ZSh2KS50b0JpZ0ludDY0KGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpOwogfQog
Ci1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjY0LCBkb3VibGUs
IChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Db252ZXJ0VG9GNjQsIGRvdWJsZSwgKENhbGxGcmFtZSogY2FsbEZyYW1l
LCBFbmNvZGVkSlNWYWx1ZSB2KSkKIHsKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgcGFzc2luZyBK
U1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RlYWQuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIwNgogICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+ZGVw
cmVjYXRlZFZNKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZy
YW1lKTsKLSAgICByZXR1cm4gdi50b051bWJlcihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmpl
Y3Qodm0pKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKHYpLnRvTnVtYmVyKGNhbGxGcmFt
ZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29udmVydFRvSTMyLCBpbnQzMl90LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUs
IEpTVmFsdWUgdikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRv
STMyLCBpbnQzMl90LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVuY29kZWRKU1ZhbHVlIHYpKQog
ewogICAgIC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5nIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSog
aW5zdGVhZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAzMjA2CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsKICAgICBOYXRp
dmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIHJldHVybiB2LnRv
SW50MzIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmRlY29kZSh2KS50b0ludDMyKGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2
bSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjMy
LCBmbG9hdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0YzMiwgZmxvYXQsIChDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUgdikpCiB7CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHBh
c3NpbmcgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0ZWFkLgogICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMyMDYKICAgICBWTSYgdm0gPSBjYWxsRnJh
bWUtPmRlcHJlY2F0ZWRWTSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0s
IGNhbGxGcmFtZSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Pih2LnRvTnVtYmVyKGNh
bGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8ZmxvYXQ+KEpTVmFsdWU6OmRlY29kZSh2KS50b051bWJlcihjYWxsRnJhbWUtPmxleGljYWxH
bG9iYWxPYmplY3Qodm0pKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUs
IEluc3RhbmNlKiBpbnN0YW5jZSwgaW50NjRfdCB2YWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKENhbGxGcmFt
ZSogY2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2UsIEVuY29kZWRXYXNtVmFsdWUgdmFsdWUp
KQogewogICAgIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSoganNJbnN0YW5jZSA9IGluc3RhbmNlLT5v
d25lcjxKU1dlYkFzc2VtYmx5SW5zdGFuY2U+KCk7CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCA9IGpzSW5zdGFuY2UtPmdsb2JhbE9iamVjdCgpOwpAQCAtNTE0LDcgKzUxNCw3IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29k
ZWRKU1ZhbHVlLCAoQ2FsbEZyYW1lKiBjCiB9CiAKIC8vIGh0dHBzOi8vd2ViYXNzZW1ibHkuZ2l0
aHViLmlvL211bHRpLXZhbHVlL2pzLWFwaS9pbmRleC5odG1sI3J1bi1hLWhvc3QtZnVuY3Rpb24K
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0cywgdm9pZCwg
KENhbGxGcmFtZSogY2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2UsIGNvbnN0IFNpZ25hdHVy
ZSogc2lnbmF0dXJlLCBKU1ZhbHVlIHJlc3VsdCwgdWludDY0X3QqIHJlZ2lzdGVyUmVzdWx0cywg
dWludDY0X3QqIGNhbGxlZUZyYW1lUG9pbnRlcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSW5z
dGFuY2UqIGluc3RhbmNlLCBjb25zdCBTaWduYXR1cmUqIHNpZ25hdHVyZSwgRW5jb2RlZEpTVmFs
dWUgZW5jUmVzdWx0LCB1aW50NjRfdCogcmVnaXN0ZXJSZXN1bHRzLCB1aW50NjRfdCogY2FsbGVl
RnJhbWVQb2ludGVyKSkKIHsKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgcGFzc2luZyBKU1dlYkFz
c2VtYmx5SW5zdGFuY2UqIGluc3RlYWQuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMzIwNgpAQCAtNTI5LDYgKzUyOSw3IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSogY2Fs
bEZyYW1lLCBJCiAKICAgICB1bnNpZ25lZCBpdGVyYXRpb25Db3VudCA9IDA7CiAgICAgTWFya2Vk
QXJndW1lbnRCdWZmZXIgYnVmZmVyOworICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY1Jlc3VsdCk7CiAgICAgZm9yRWFjaEluSXRlcmFibGUoZ2xvYmFsT2JqZWN0LCByZXN1
bHQsIFsmXSAoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgdmFsdWUpIC0+IHZvaWQgewog
ICAgICAgICBpZiAoYnVmZmVyLnNpemUoKSA8IHNpZ25hdHVyZS0+cmV0dXJuQ291bnQoKSkKICAg
ICAgICAgICAgIGJ1ZmZlci5hcHBlbmQodmFsdWUpOwpAQCAtNTc4LDggKzU3OSwxMCBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgSQogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2
b2lkKCkpOwogCiAgICAgICAgIGF1dG8gcmVwID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbaW5kZXhd
OwotICAgICAgICBpZiAocmVwLmlzUmVnKCkpCi0gICAgICAgICAgICByZWdpc3RlclJlc3VsdHNb
cmVnaXN0ZXJSZXN1bHRPZmZzZXRzLmZpbmQocmVwLnJlZygpKS0+b2Zmc2V0KCkgLyBzaXplb2Yo
dWludDY0X3QpXSA9IHVuYm94ZWRWYWx1ZTsKKyAgICAgICAgaWYgKHJlcC5pc0dQUigpKQorICAg
ICAgICAgICAgcmVnaXN0ZXJSZXN1bHRzW3JlZ2lzdGVyUmVzdWx0T2Zmc2V0cy5maW5kKHJlcC5q
c3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSAvIHNpemVvZih1aW50NjRfdCldID0gdW5ib3hl
ZFZhbHVlOworICAgICAgICBlbHNlIGlmIChyZXAuaXNGUFIoKSkKKyAgICAgICAgICAgIHJlZ2lz
dGVyUmVzdWx0c1tyZWdpc3RlclJlc3VsdE9mZnNldHMuZmluZChyZXAuZnByKCkpLT5vZmZzZXQo
KSAvIHNpemVvZih1aW50NjRfdCldID0gdW5ib3hlZFZhbHVlOwogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICBjYWxsZWVGcmFtZVBvaW50ZXJbcmVwLm9mZnNldEZyb21GUCgpIC8gc2l6ZW9mKHVp
bnQ2NF90KV0gPSB1bmJveGVkVmFsdWU7CiAgICAgfQpAQCAtNjA0LDEyICs2MDcsMTYgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5LCBKU0Fy
cmF5KiwgKENhbGxGcmFtZSogY2EKICAgICBhdXRvIHdhc21DYWxsSW5mbyA9IHdhc21DYWxsaW5n
Q29udmVudGlvbigpLmNhbGxJbmZvcm1hdGlvbkZvcigqc2lnbmF0dXJlKTsKICAgICBSZWdpc3Rl
ckF0T2Zmc2V0TGlzdCByZWdpc3RlclJlc3VsdHMgPSB3YXNtQ2FsbEluZm8uY29tcHV0ZVJlc3Vs
dHNPZmZzZXRMaXN0KCk7CiAKLSAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihKU1ZhbHVlKSA9PSBz
aXplb2YoQ1BVUmVnaXN0ZXIpLCAiVGhlIGNvZGUgYmVsb3cgcmVsaWVzIG9uIHRoaXMuIik7CiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpZ25hdHVyZS0+cmV0dXJuQ291bnQoKTsgKytp
KSB7CiAgICAgICAgIFZhbHVlTG9jYXRpb24gbG9jID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbaV07
CiAgICAgICAgIEpTVmFsdWUgdmFsdWU7Ci0gICAgICAgIGlmIChsb2MuaXNSZWcoKSkKLSAgICAg
ICAgICAgIHZhbHVlID0gc3RhY2tQb2ludGVyRnJvbUNhbGxlZVsocmVnaXN0ZXJSZXN1bHRzLmZp
bmQobG9jLnJlZygpKS0+b2Zmc2V0KCkgKyB3YXNtQ2FsbEluZm8uaGVhZGVyQW5kQXJndW1lbnRT
dGFja1NpemVJbkJ5dGVzKSAvIHNpemVvZihKU1ZhbHVlKV07CisgICAgICAgIGlmIChsb2MuaXNH
UFIoKSkgeworI2lmIFVTRShKU1ZBTEUzMl82NCkKKyAgICAgICAgICAgIEFTU0VSVChyZWdpc3Rl
clJlc3VsdHMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkgKyA0ID09IHJl
Z2lzdGVyUmVzdWx0cy5maW5kKGxvYy5qc3IoKS50YWdHUFIoKSktPm9mZnNldCgpKTsKKyNlbmRp
ZgorICAgICAgICAgICAgdmFsdWUgPSBzdGFja1BvaW50ZXJGcm9tQ2FsbGVlWyhyZWdpc3RlclJl
c3VsdHMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkgKyB3YXNtQ2FsbElu
Zm8uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSAvIHNpemVvZihKU1ZhbHVlKV07
CisgICAgICAgIH0gZWxzZSBpZiAobG9jLmlzRlBSKCkpCisgICAgICAgICAgICB2YWx1ZSA9IHN0
YWNrUG9pbnRlckZyb21DYWxsZWVbKHJlZ2lzdGVyUmVzdWx0cy5maW5kKGxvYy5mcHIoKSktPm9m
ZnNldCgpICsgd2FzbUNhbGxJbmZvLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcykg
LyBzaXplb2YoSlNWYWx1ZSldOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB2YWx1ZSA9IHN0
YWNrUG9pbnRlckZyb21DYWxsZWVbbG9jLm9mZnNldEZyb21TUCgpIC8gc2l6ZW9mKEpTVmFsdWUp
XTsKICAgICAgICAgcmVzdWx0LT5pbml0aWFsaXplSW5kZXgoaW5pdGlhbGl6YXRpb25TY29wZSwg
aSwgdmFsdWUpOwpAQCAtOTQ0LDcgKzk1MSw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25XYXNtVGhyb3csIHZvaWQqLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDYWxsRnJhCiAg
ICAgLy8gdG8gdGhlIGV4Y2VwdGlvbiBoYW5kbGVyLiBJZiB3ZSBkaWQgdGhpcywgd2UgY291bGQg
cmVtb3ZlIHRoaXMgdGVycmlibGUgaGFjay4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDQwCiAgICAgdm0uY2FsbGVlRm9yV2FzbUNhdGNoID0gY2Fs
bEZyYW1lLT5jYWxsZWUoKTsKLSAgICBiaXR3aXNlX2Nhc3Q8dWludDY0X3QqPihjYWxsRnJhbWUp
W3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0gPSBiaXR3aXNlX2Nhc3Q8
dWludDY0X3Q+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsKKyAgICBSZWdpc3RlciogY2FsbGVlU2xv
dCA9IGJpdHdpc2VfY2FzdDxSZWdpc3Rlcio+KGNhbGxGcmFtZSkgKyBzdGF0aWNfY2FzdDxpbnQ+
KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7CisgICAgKmNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8
SlNDZWxsKj4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOwogICAgIHJldHVybiB2bS50YXJnZXRNYWNo
aW5lUENGb3JUaHJvdzsKIH0KIApAQCAtOTcwLDcgKzk3OCw4IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25XYXNtUmV0aHJvdywgdm9pZCosIChJbnN0YW5jZSogaW5zdGFuY2Us
IENhbGxGCiAgICAgLy8gdG8gdGhlIGV4Y2VwdGlvbiBoYW5kbGVyLiBJZiB3ZSBkaWQgdGhpcywg
d2UgY291bGQgcmVtb3ZlIHRoaXMgdGVycmlibGUgaGFjay4KICAgICAvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDQwCiAgICAgdm0uY2FsbGVlRm9yV2FzbUNh
dGNoID0gY2FsbEZyYW1lLT5jYWxsZWUoKTsKLSAgICBiaXR3aXNlX2Nhc3Q8dWludDY0X3QqPihj
YWxsRnJhbWUpW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0gPSBiaXR3
aXNlX2Nhc3Q8dWludDY0X3Q+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsKKyAgICBSZWdpc3Rlciog
Y2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxSZWdpc3Rlcio+KGNhbGxGcmFtZSkgKyBzdGF0aWNf
Y2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7CisgICAgKmNhbGxlZVNsb3QgPSBiaXR3
aXNlX2Nhc3Q8SlNDZWxsKj4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOwogICAgIHJldHVybiB2bS50
YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKIH0KIApAQCAtMTAwNSw3ICsxMDE0LDggQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21Ub0pTRXhjZXB0aW9uLCB2b2lkKiwgKENh
bGxGcmFtZSogY2FsbEZyYW0KICAgICAvLyB0byB0aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElmIHdl
IGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNrLgogICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAKICAgICB2bS5jYWxs
ZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgpOwotICAgIGJpdHdpc2VfY2FzdDx1
aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxs
ZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oaW5zdGFuY2UtPm1vZHVsZSgpKTsKKyAgICBS
ZWdpc3RlciogY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxSZWdpc3Rlcio+KGNhbGxGcmFtZSkg
KyBzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7CisgICAgKmNhbGxlZVNs
b3QgPSBiaXR3aXNlX2Nhc3Q8SlNDZWxsKj4oaW5zdGFuY2UtPm1vZHVsZSgpKTsKICAgICByZXR1
cm4gdm0udGFyZ2V0TWFjaGluZVBDRm9yVGhyb3c7CiB9CiAKQEAgLTEwMjksNyArMTAzOSwxMSBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVJldHJpZXZlQW5kQ2xlYXJF
eGNlcHRpb25JZkNhdGNoYWJsZSwgUG9pbgogICAgIHZvaWQqIHBheWxvYWQgPSBudWxscHRyOwog
ICAgIGlmIChKU1dlYkFzc2VtYmx5RXhjZXB0aW9uKiB3YXNtRXhjZXB0aW9uID0ganNEeW5hbWlj
Q2FzdDxKU1dlYkFzc2VtYmx5RXhjZXB0aW9uKj4odm0sIHRocm93blZhbHVlKSkKICAgICAgICAg
cGF5bG9hZCA9IGJpdHdpc2VfY2FzdDx2b2lkKj4od2FzbUV4Y2VwdGlvbi0+cGF5bG9hZCgpLmRh
dGEoKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICByZXR1cm4gUG9pbnRlclBhaXIgeyBiaXR3
aXNlX2Nhc3Q8dm9pZCo+KEpTVmFsdWU6OmVuY29kZSh0aHJvd25WYWx1ZSkpLCBwYXlsb2FkIH07
CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIHJldHVybiBQb2ludGVyUGFpciB7IGJpdHdp
c2VfY2FzdDx2b2lkKj4odGhyb3duVmFsdWUucGF5bG9hZCgpKSwgcGF5bG9hZCB9OworI2VuZGlm
CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU9wZXJhdGlvbnMuaAppbmRleCBjZjdjMGQ1ZmVmNGRmZDM1YzdjY2EzMzQ3OTNl
YjI0NGVjYmFkZDE1Li5iMzIwMDBkODMyY2JlMGE2NmM1NTUxZjQ1M2QyZjA1NjNlOTNkY2Y2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmgKQEAgLTQ2LDIz
ICs0NiwyMyBAQCBuYW1lc3BhY2UgV2FzbSB7CiAKIGNsYXNzIEluc3RhbmNlOwogY2xhc3MgU2ln
bmF0dXJlOwotCi12b2lkIGxvYWRWYWx1ZXNJbnRvQnVmZmVyKFByb2JlOjpDb250ZXh0JiwgY29u
c3QgU3RhY2tNYXAmLCB1aW50NjRfdCogYnVmZmVyKTsKK3R5cGVkZWYgaW50NjRfdCBFbmNvZGVk
V2FzbVZhbHVlOwogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQordm9pZCBsb2FkVmFs
dWVzSW50b0J1ZmZlcihQcm9iZTo6Q29udGV4dCYsIGNvbnN0IFN0YWNrTWFwJiwgdWludDY0X3Qq
IGJ1ZmZlcik7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2Vy
T1NSRW50cnlOb3csIHZvaWQsIChQcm9iZTo6Q29udGV4dCYpKTsKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJUaWVyVXBOb3csIHZvaWQsIChJbnN0YW5jZSos
IHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgpKTsKICNlbmRpZgogSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25XYXNtVW53aW5kLCB2b2lkLCAoQ2FsbEZyYW1lKikpOwogCi1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCwgaW50NjRfdCwgKENhbGxG
cmFtZSosIEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29u
dmVydFRvRjY0LCBkb3VibGUsIChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0kzMiwgaW50MzJfdCwgKENhbGxGcmFtZSos
IEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRv
RjMyLCBmbG9hdCwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTY0LCBpbnQ2NF90LCAoQ2FsbEZyYW1lKiwgRW5jb2Rl
ZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRv
RjY0LCBkb3VibGUsIChDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIGludDMyX3QsIChDYWxsRnJhbWUq
LCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
b252ZXJ0VG9GMzIsIGZsb2F0LCAoQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUpKTsKIAotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRK
U1ZhbHVlLCAoQ2FsbEZyYW1lKiwgSW5zdGFuY2UqLCBpbnQ2NF90KSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChD
YWxsRnJhbWUqLCBJbnN0YW5jZSosIEVuY29kZWRXYXNtVmFsdWUpKTsKIAotSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSos
IEluc3RhbmNlKiwgY29uc3QgU2lnbmF0dXJlKiwgSlNWYWx1ZSwgdWludDY0X3QqLCB1aW50NjRf
dCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMs
IHZvaWQsIChDYWxsRnJhbWUqLCBJbnN0YW5jZSosIGNvbnN0IFNpZ25hdHVyZSosIEVuY29kZWRK
U1ZhbHVlLCB1aW50NjRfdCosIHVpbnQ2NF90KikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSwgSlNBcnJheSosIChDYWxsRnJhbWUqLCBX
YXNtOjpJbnN0YW5jZSosIGNvbnN0IFNpZ25hdHVyZSosIEluZGV4aW5nVHlwZSwgSlNWYWx1ZSop
KTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtV3JpdGVCYXJyaWVy
U2xvd1BhdGgsIHZvaWQsIChKU0NlbGwqLCBWTSopKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21QYWdlQ291bnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21QYWdlQ291bnQuaAppbmRleCBiN2Q4YzlmY2Y3MmIxNDc5YzNhM2YxMjNiZmEyYjRk
MmQyNDdjY2UyLi4zYzc1NTEyZjQ0YTlhODk0YjFkMTY2YWM0NzY2NzAwM2Q0ODI3NDdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFnZUNvdW50LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhZ2VDb3VudC5oCkBAIC05OCw3ICs5OCwx
MiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHBhZ2VTaXplID0g
NjQgKiBLQjsKIHByaXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXhQYWdl
Q291bnQgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oTUFYX0FSUkFZX0JVRkZFUl9TSVpFIC8gc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KHBhZ2VTaXplKSk7CisgICAgLy8gVGhlIHNwZWMgcmVxdWlyZXMg
d2UgYXJlIGFibGUgdG8gaW5zdGFudGlhdGUgYSBtZW1vcnkgd2l0aCBhICptYXhpbXVtKiBzaXpl
IG9mIDY0SyBwYWdlcy4KKyAgICAvLyBUaGlzIGRvZXMgbm90IG1lYW4gdGhlIG1lbW9yeSBjYW4g
bmVjZXNzYXJpbHkgZ3JvdyB0aGF0IGJpZywgYW5kIHdoZXJlIHRoZQorICAgIC8vIE1BWF9BUlJB
WV9CVUZGRVJfU0laRSBpcyBzbWFsbGVyIChlLmcuOiBvbiAzMi1iaXQgcGxhdGZvcm1zKSwgdHJ5
aW5nIHRvIGdyb3cgdGhlIG1lbW9yeQorICAgIC8vIHRoYXQgbGFyZ2Ugd2lsbCBmYWlsLCB3aGlj
aCBpcyBhY2NlcHRhYmxlIGFjY29yZGluZyB0byB0aGUgc3BlYy4gTmV2ZXJ0aGVsZXNzLCB3ZSBz
aG91bGQKKyAgICAvLyBiZSBhYmxlIHRvIHBhcnNlIHN1Y2ggYSBtZW1vcnkgYW5kIGluc3RhbnRp
YXRlIGl0IHdpdGggYSBzbWFsbGVyIGluaXRpYWwgc2l6ZS4KKyAgICBzdGF0aWMgY29uc3RleHBy
IHVpbnQzMl90IG1heFBhZ2VDb3VudCA9IHN0ZDo6bWF4PHVpbnQzMl90Pig2NCoxMDI0LCBNQVhf
QVJSQVlfQlVGRkVSX1NJWkUgLyBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocGFnZVNpemUpKTsKIAog
ICAgIHVpbnQzMl90IG1fcGFnZUNvdW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21QYXJzZXIuaAppbmRleCBlZDAwZDlhMGE0MmI3OWFkYzFmM2M4YWIwZjM0NmZjNGY2ZGE4OWFl
Li5kNDQxYmNhZDk0YzlkZTk5YzBjYTVlYjM5YTFhYmZjZTU2MmNkZmI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5oCkBAIC0yMDgsNyArMjA4LDcgQEAgQUxXQVlTX0lO
TElORSBib29sIFBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVUludDMyKHVpbnQzMl90JiByZXN1
bHQpCiB7CiAgICAgaWYgKGxlbmd0aCgpIDwgNCB8fCBtX29mZnNldCA+IGxlbmd0aCgpIC0gNCkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJlc3VsdCA9ICpyZWludGVycHJldF9jYXN0PGNv
bnN0IHVpbnQzMl90Kj4oc291cmNlKCkgKyBtX29mZnNldCk7CisgICAgbWVtY3B5KCZyZXN1bHQs
IHNvdXJjZSgpICsgbV9vZmZzZXQsIHNpemVvZih1aW50MzJfdCkpOyAvLyBzcmMgY2FuIGJlIHVu
YWxpZ25lZAogICAgIG1fb2Zmc2V0ICs9IDQ7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0yMTgs
NyArMjE4LDcgQEAgQUxXQVlTX0lOTElORSBib29sIFBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNl
VUludDY0KHVpbnQ2NF90JiByZXN1bHQpCiB7CiAgICAgaWYgKGxlbmd0aCgpIDwgOCB8fCBtX29m
ZnNldCA+IGxlbmd0aCgpIC0gOCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJlc3VsdCA9
ICpyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ2NF90Kj4oc291cmNlKCkgKyBtX29mZnNldCk7
CisgICAgbWVtY3B5KCZyZXN1bHQsIHNvdXJjZSgpICsgbV9vZmZzZXQsIHNpemVvZih1aW50NjRf
dCkpOyAvLyBzcmMgY2FuIGJlIHVuYWxpZ25lZAogICAgIG1fb2Zmc2V0ICs9IDg7CiAgICAgcmV0
dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMu
Y3BwCmluZGV4IDJhODY3ZDZjNzNmZGVmM2U5MTg3MDZhM2YwNzJjMGQ1ODI5OTNjZDcuLmY0NjFm
YjU4OGJmMzcyMDdmYzAyOWVlYzY5NTc1ZjU2YTFlNzY2MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3BwCkBAIC02NDIsNyArNjQyLDggQEAgV0FTTV9T
TE9XX1BBVEhfREVDTCh0aHJvdykKICAgICAvLyB0byB0aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElm
IHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNrLgogICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAKICAgICB2bS5j
YWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgpOwotICAgIGJpdHdpc2VfY2Fz
dDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90Ojpj
YWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOwor
ICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJlZ2lzdGVyKj4oY2FsbEZy
YW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAgICAqY2Fs
bGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CiAg
ICAgV0FTTV9SRVRVUk5fVFdPKHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRocm93LCBudWxscHRyKTsK
IH0KIApAQCAtNjcwLDcgKzY3MSw4IEBAIFdBU01fU0xPV19QQVRIX0RFQ0wocmV0aHJvdykKICAg
ICAvLyB0byB0aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElmIHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCBy
ZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNrLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAKICAgICB2bS5jYWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxs
RnJhbWUtPmNhbGxlZSgpOwotICAgIGJpdHdpc2VfY2FzdDx1aW50NjRfdCo+KGNhbGxGcmFtZSlb
c3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1
aW50NjRfdD4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOworICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90
ID0gYml0d2lzZV9jYXN0PFJlZ2lzdGVyKj4oY2FsbEZyYW1lKSArIHN0YXRpY19jYXN0PGludD4o
Q2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAgICAqY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxK
U0NlbGwqPihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CiAgICAgV0FTTV9SRVRVUk5fVFdPKHZtLnRh
cmdldE1hY2hpbmVQQ0ZvclRocm93LCBudWxscHRyKTsKIH0KIApAQCAtNzE3LDYgKzcxOSwyMTQg
QEAgV0FTTV9TTE9XX1BBVEhfREVDTChyZXRyaWV2ZV9hbmRfY2xlYXJfZXhjZXB0aW9uKQogICAg
IFdBU01fUkVUVVJOX1RXTyhwYywgcGF5bG9hZCk7CiB9CiAKKyNpZiBVU0UoSlNWQUxVRTMyXzY0
KQorV0FTTV9TTE9XX1BBVEhfREVDTChmMzJfY2VpbCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5z
dGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUYzMkNlaWw+KCk7Cisg
ICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRmxv
YXQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUod2FzbVVuYm94ZWRGbG9hdChz
dGQ6OmNlaWwob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjMyX2Zsb29y
KQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9
IHBjLT5hczxXYXNtRjMyRmxvb3I+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1
Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVl
OjplbmNvZGUod2FzbVVuYm94ZWRGbG9hdChzdGQ6OmZsb29yKG9wZXJhbmQpKSkpOworfQorCitX
QVNNX1NMT1dfUEFUSF9ERUNMKGYzMl90cnVuYykKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFu
Y2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUYzMlRydW5jPigpOworICAg
IGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0
KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKHdhc21VbmJveGVkRmxvYXQoc3Rk
Ojp0cnVuYyhvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmMzJfbmVhcmVz
dCkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpyb3Vu
ZF9zdHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOworICAgIFVOVVNFRF9QQVJBTShpbnN0
YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjMyTmVhcmVzdD4oKTsK
KyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRG
bG9hdCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZSh3YXNtVW5ib3hlZEZsb2F0
KHN0ZDo6bmVhcmJ5aW50KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGY2
NF9jZWlsKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVj
dGlvbiA9IHBjLT5hczxXYXNtRjY0Q2VpbD4oKTsKKyAgICBkb3VibGUgb3BlcmFuZCA9IFJFQUQo
aW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAgV0FTTV9SRVRVUk4o
SlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHN0ZDo6Y2VpbChvcGVyYW5kKSkpKTsKK30K
KworV0FTTV9TTE9XX1BBVEhfREVDTChmNjRfZmxvb3IpCit7CisgICAgVU5VU0VEX1BBUkFNKGlu
c3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GNjRGbG9vcj4oKTsK
KyAgICBkb3VibGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVk
RG91YmxlKCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVy
KHN0ZDo6Zmxvb3Iob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjY0X3Ry
dW5jKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlv
biA9IHBjLT5hczxXYXNtRjY0VHJ1bmM+KCk7CisgICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGlu
c3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgpOworICAgIFdBU01fUkVUVVJOKEpT
VmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGQ6OnRydW5jKG9wZXJhbmQpKSkpOworfQor
CitXQVNNX1NMT1dfUEFUSF9ERUNMKGY2NF9uZWFyZXN0KQoreworICAgIHN0YXRpY19hc3NlcnQo
c3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91bmRfdG9f
bmVhcmVzdCk7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0
aW9uID0gcGMtPmFzPFdhc21GNjROZWFyZXN0PigpOworICAgIGRvdWJsZSBvcGVyYW5kID0gUkVB
RChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUoKTsKKyAgICBXQVNNX1JFVFVS
TihKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoc3RkOjpuZWFyYnlpbnQob3BlcmFuZCkp
KSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjMyX2NvbnZlcnRfdV9pNjQpCit7CisgICAg
c3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cm91bmRfc3R5bGUgPT0g
c3RkOjpyb3VuZF90b19uZWFyZXN0KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAg
IGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUYzMkNvbnZlcnRVSTY0PigpOworICAgIHVp
bnQ2NF90IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEludDY0
KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKHdhc21VbmJveGVkRmxvYXQoc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGYz
Ml9jb252ZXJ0X3NfaTY0KQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0
czxmbG9hdD46OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7CisgICAgVU5V
U0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21G
MzJDb252ZXJ0U0k2ND4oKTsKKyAgICBpbnQ2NF90IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9u
Lm1fb3BlcmFuZCkudW5ib3hlZEludDY0KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5j
b2RlKHdhc21VbmJveGVkRmxvYXQoc3RhdGljX2Nhc3Q8ZmxvYXQ+KG9wZXJhbmQpKSkpOworfQor
CitXQVNNX1NMT1dfUEFUSF9ERUNMKGY2NF9jb252ZXJ0X3VfaTY0KQoreworICAgIHN0YXRpY19h
c3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91
bmRfdG9fbmVhcmVzdCk7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGlu
c3RydWN0aW9uID0gcGMtPmFzPFdhc21GNjRDb252ZXJ0VUk2ND4oKTsKKyAgICB1aW50NjRfdCBv
cGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRJbnQ2NCgpOworICAg
IFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGF0aWNfY2FzdDxk
b3VibGU+KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGY2NF9jb252ZXJ0
X3NfaTY0KQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46
OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7CisgICAgVU5VU0VEX1BBUkFN
KGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GNjRDb252ZXJ0
U0k2ND4oKTsKKyAgICBpbnQ2NF90IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFu
ZCkudW5ib3hlZEludDY0KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpzRG91
YmxlTnVtYmVyKHN0YXRpY19jYXN0PGRvdWJsZT4ob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xP
V19QQVRIX0RFQ0woaTY0X3RydW5jX3VfZjMyKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5j
ZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1bmNVRjMyPigpOwor
ICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZs
b2F0KCk7CisgICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8PSAtMS4wZiB8
fCBvcGVyYW5kID49IC0yLjBmICogc3RhdGljX2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikpCisgICAg
ICAgIFdBU01fVEhST1coV2FzbTo6RXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNUcnVuYyk7Cisg
ICAgV0FTTV9SRVRVUk4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG9wZXJhbmQpKTsKK30KKworV0FT
TV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc19mMzIpCit7CisgICAgVU5VU0VEX1BBUkFNKGlu
c3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1NGMzI+
KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJv
eGVkRmxvYXQoKTsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5kKSB8fCBvcGVyYW5kIDwgc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikgfHwgb3BlcmFuZCA+PSAtc3RhdGljX2Nhc3Q8Zmxv
YXQ+KElOVDY0X01JTikpCisgICAgICAgIFdBU01fVEhST1coV2FzbTo6RXhjZXB0aW9uVHlwZTo6
T3V0T2ZCb3VuZHNUcnVuYyk7CisgICAgV0FTTV9SRVRVUk4oc3RhdGljX2Nhc3Q8aW50NjRfdD4o
b3BlcmFuZCkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY191X2Y2NCkKK3sK
KyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+
YXM8V2FzbUk2NFRydW5jVUY2ND4oKTsKKyAgICBkb3VibGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1
Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAgaWYgKHN0ZDo6aXNuYW4ob3Bl
cmFuZCkgfHwgb3BlcmFuZCA8PSAtMS4wIHx8IG9wZXJhbmQgPj0gLTIuMCAqIHN0YXRpY19jYXN0
PGRvdWJsZT4oSU5UNjRfTUlOKSkKKyAgICAgICAgV0FTTV9USFJPVyhXYXNtOjpFeGNlcHRpb25U
eXBlOjpPdXRPZkJvdW5kc1RydW5jKTsKKyAgICBXQVNNX1JFVFVSTihzdGF0aWNfY2FzdDx1aW50
NjRfdD4ob3BlcmFuZCkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY19zX2Y2
NCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24g
PSBwYy0+YXM8V2FzbUk2NFRydW5jU0Y2ND4oKTsKKyAgICBkb3VibGUgb3BlcmFuZCA9IFJFQUQo
aW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAgaWYgKHN0ZDo6aXNu
YW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8IHN0YXRpY19jYXN0PGRvdWJsZT4oSU5UNjRfTUlOKSB8
fCBvcGVyYW5kID49IC1zdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0X01JTikpCisgICAgICAgIFdB
U01fVEhST1coV2FzbTo6RXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNUcnVuYyk7CisgICAgV0FT
TV9SRVRVUk4oc3RhdGljX2Nhc3Q8aW50NjRfdD4ob3BlcmFuZCkpOworfQorCitXQVNNX1NMT1df
UEFUSF9ERUNMKGk2NF90cnVuY19zYXRfZjMyX3UpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3Rh
bmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1NhdEYzMlU+
KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJv
eGVkRmxvYXQoKTsKKyAgICB1aW50NjRfdCByZXN1bHQ7CisgICAgaWYgKHN0ZDo6aXNuYW4ob3Bl
cmFuZCkgfHwgb3BlcmFuZCA8PSAtMS4wZikKKyAgICAgICAgcmVzdWx0ID0gMDsKKyAgICBlbHNl
IGlmIChvcGVyYW5kID49IC0yLjBmICogc3RhdGljX2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikpCisg
ICAgICAgIHJlc3VsdCA9IFVJTlQ2NF9NQVg7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBz
dGF0aWNfY2FzdDx1aW50NjRfdD4ob3BlcmFuZCk7CisgICAgV0FTTV9SRVRVUk4ocmVzdWx0KTsK
K30KKworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc2F0X2YzMl9zKQoreworICAgIFVO
VVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNt
STY0VHJ1bmNTYXRGMzJTPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9u
Lm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgaW50NjRfdCByZXN1bHQ7CisgICAgaWYg
KHN0ZDo6aXNuYW4ob3BlcmFuZCkpCisgICAgICAgIHJlc3VsdCA9IDA7CisgICAgZWxzZSBpZiAo
b3BlcmFuZCA8IHN0YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4pKQorICAgICAgICByZXN1bHQg
PSBJTlQ2NF9NSU47CisgICAgZWxzZSBpZiAob3BlcmFuZCA+PSAtc3RhdGljX2Nhc3Q8ZmxvYXQ+
KElOVDY0X01JTikpCisgICAgICAgIHJlc3VsdCA9IElOVDY0X01BWDsKKyAgICBlbHNlCisgICAg
ICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PGludDY0X3Q+KG9wZXJhbmQpOworICAgIFdBU01fUkVU
VVJOKHJlc3VsdCk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3NhdF9mNjRf
dSkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24g
PSBwYy0+YXM8V2FzbUk2NFRydW5jU2F0RjY0VT4oKTsKKyAgICBkb3VibGUgb3BlcmFuZCA9IFJF
QUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAgdWludDY0X3Qg
cmVzdWx0OworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9wZXJhbmQgPD0gLTEuMCkK
KyAgICAgICAgcmVzdWx0ID0gMDsKKyAgICBlbHNlIGlmIChvcGVyYW5kID49IC0yLjAgKiBzdGF0
aWNfY2FzdDxkb3VibGU+KElOVDY0X01JTikpCisgICAgICAgIHJlc3VsdCA9IFVJTlQ2NF9NQVg7
CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4ob3BlcmFu
ZCk7CisgICAgV0FTTV9SRVRVUk4ocmVzdWx0KTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChp
NjRfdHJ1bmNfc2F0X2Y2NF9zKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAg
YXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1bmNTYXRGNjRTPigpOworICAgIGRv
dWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUo
KTsKKyAgICBpbnQ2NF90IHJlc3VsdDsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5kKSkKKyAg
ICAgICAgcmVzdWx0ID0gMDsKKyAgICBlbHNlIGlmIChvcGVyYW5kIDwgc3RhdGljX2Nhc3Q8ZG91
YmxlPihJTlQ2NF9NSU4pKQorICAgICAgICByZXN1bHQgPSBJTlQ2NF9NSU47CisgICAgZWxzZSBp
ZiAob3BlcmFuZCA+PSAtc3RhdGljX2Nhc3Q8ZG91YmxlPihJTlQ2NF9NSU4pKQorICAgICAgICBy
ZXN1bHQgPSBJTlQ2NF9NQVg7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2Fz
dDxpbnQ2NF90PihvcGVyYW5kKTsKKyAgICBXQVNNX1JFVFVSTihyZXN1bHQpOworfQorI2VuZGlm
CisKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3Rocm93X2V4
Y2VwdGlvbihDYWxsRnJhbWUqIGNhbGxGcmFtZSwgY29uc3QgV2FzbUluc3RydWN0aW9uKiBwYywg
V2FzbTo6SW5zdGFuY2UqIGluc3RhbmNlLCBXYXNtOjpFeGNlcHRpb25UeXBlIGV4Y2VwdGlvblR5
cGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHBjKTsKQEAgLTcyNSwxNiArOTM1LDI4IEBAIGV4dGVy
biAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3Rocm93X2V4Y2VwdGlvbihD
YWxsRnJhbWUqIGNhbGxGcmFtCiAKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3df
cGF0aF93YXNtX3BvcGNvdW50KGNvbnN0IFdhc21JbnN0cnVjdGlvbiogcGMsIHVpbnQzMl90IHgp
CiB7Ci0gICAgdm9pZCogcmVzdWx0ID0gYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDx1
aW50NjRfdD4oX19idWlsdGluX3BvcGNvdW50KHgpKSk7CisgICAgdm9pZCogcmVzdWx0ID0gYml0
d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDxzaXplX3Q+KF9fYnVpbHRpbl9wb3Bjb3VudCh4
KSkpOwogICAgIFdBU01fUkVUVVJOX1RXTyhwYywgcmVzdWx0KTsKIH0KIAogZXh0ZXJuICJDIiBT
bG93UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fcG9wY291bnRsbChjb25zdCBXYXNtSW5z
dHJ1Y3Rpb24qIHBjLCB1aW50NjRfdCB4KQogewotICAgIHZvaWQqIHJlc3VsdCA9IGJpdHdpc2Vf
Y2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KF9fYnVpbHRpbl9wb3Bjb3VudGxsKHgp
KSk7CisgICAgdm9pZCogcmVzdWx0ID0gYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDxz
aXplX3Q+KF9fYnVpbHRpbl9wb3Bjb3VudGxsKHgpKSk7CiAgICAgV0FTTV9SRVRVUk5fVFdPKHBj
LCByZXN1bHQpOwogfQogCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKy8vIE5vdGU6IEFsbCB0aGVz
ZSBkaXYgYW5kIHJlbSBvcHMgcGVyZm9ybSBleGNlcHRpb24gY2hlY2tzIGluIGFzbQorZXh0ZXJu
ICJDIiBpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9kaXZfcyhpbnQzMl90IGEsIGludDMyX3Qg
YikgeyByZXR1cm4gYSAvIGI7IH0KK2V4dGVybiAiQyIgdWludDMyX3Qgc2xvd19wYXRoX3dhc21f
aTMyX2Rpdl91KHVpbnQzMl90IGEsIHVpbnQzMl90IGIpIHsgcmV0dXJuIGEgLyBiOyB9CitleHRl
cm4gIkMiIGludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX3JlbV9zKGludDMyX3QgYSwgaW50MzJf
dCBiKSB7IHJldHVybiBhICUgYjsgfQorZXh0ZXJuICJDIiB1aW50MzJfdCBzbG93X3BhdGhfd2Fz
bV9pMzJfcmVtX3UodWludDMyX3QgYSwgdWludDMyX3QgYikgeyByZXR1cm4gYSAlIGI7IH0KK2V4
dGVybiAiQyIgaW50NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRfZGl2X3MoaW50NjRfdCBhLCBpbnQ2
NF90IGIpIHsgcmV0dXJuIGEgLyBiOyB9CitleHRlcm4gIkMiIHVpbnQ2NF90IHNsb3dfcGF0aF93
YXNtX2k2NF9kaXZfdSh1aW50NjRfdCBhLCB1aW50NjRfdCBiKSB7IHJldHVybiBhIC8gYjsgfQor
ZXh0ZXJuICJDIiBpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9yZW1fcyhpbnQ2NF90IGEsIGlu
dDY0X3QgYikgeyByZXR1cm4gYSAlIGI7IH0KK2V4dGVybiAiQyIgdWludDY0X3Qgc2xvd19wYXRo
X3dhc21faTY0X3JlbV91KHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIpIHsgcmV0dXJuIGEgJSBiOyB9
CisjZW5kaWYKKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50CiAKICNlbmRpZiAvLyBFTkFC
TEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtU2xvd1BhdGhzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhz
LmgKaW5kZXggNDYwOWUzNmIwMzkyNGQxMGVhMDI3NDU2MTBmMGYyZmU0ZTgzMWYyMi4uODlmNmUz
OTRkODZjMjY3NzljODFhYTJlMzhjMDMxMDFhNDhhZDU0MCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21TbG93UGF0aHMuaApAQCAtOTQsNiArOTQsNDAgQEAgZXh0ZXJuICJDIiBT
bG93UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fdGhyb3dfZXhjZXB0aW9uKENhbGxGcmFt
ZSosIGNvbnN0IFcKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNt
X3BvcGNvdW50KGNvbnN0IFdhc21JbnN0cnVjdGlvbiogcGMsIHVpbnQzMl90KSBSRUZFUkVOQ0VE
X0ZST01fQVNNIFdURl9JTlRFUk5BTDsKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNs
b3dfcGF0aF93YXNtX3BvcGNvdW50bGwoY29uc3QgV2FzbUluc3RydWN0aW9uKiBwYywgdWludDY0
X3QpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOwogCisjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGYzMl9jZWlsKTsKK1dBU01fU0xPV19Q
QVRIX0hJRERFTl9ERUNMKGYzMl9mbG9vcik7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChm
MzJfdHJ1bmMpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjMyX25lYXJlc3QpOworV0FT
TV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjY0X2NlaWwpOworV0FTTV9TTE9XX1BBVEhfSElEREVO
X0RFQ0woZjY0X2Zsb29yKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGY2NF90cnVuYyk7
CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfbmVhcmVzdCk7CitXQVNNX1NMT1dfUEFU
SF9ISURERU5fREVDTChmMzJfY29udmVydF91X2k2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5f
REVDTChmMzJfY29udmVydF9zX2k2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRf
Y29udmVydF91X2k2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfY29udmVydF9z
X2k2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNfdV9mMzIpOworV0FT
TV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3NfZjMyKTsKK1dBU01fU0xPV19QQVRI
X0hJRERFTl9ERUNMKGk2NF90cnVuY191X2Y2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVD
TChpNjRfdHJ1bmNfc19mNjQpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5j
X3NhdF9mMzJfdSk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNfc2F0X2Yz
Ml9zKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGk2NF90cnVuY19zYXRfZjY0X3UpOwor
V0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3NhdF9mNjRfcyk7CisjZW5kaWYK
KworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCitleHRlcm4gIkMiIGludDMyX3Qgc2xvd19wYXRoX3dh
c21faTMyX2Rpdl9zKGludDMyX3QgYSwgaW50MzJfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdU
Rl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgdWludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX2Rpdl91
KHVpbnQzMl90IGEsIHVpbnQzMl90IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFM
OworZXh0ZXJuICJDIiBpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9yZW1fcyhpbnQzMl90IGEs
IGludDMyX3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMi
IHVpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9yZW1fdSh1aW50MzJfdCBhLCB1aW50MzJfdCBi
KSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgaW50NjRfdCBz
bG93X3BhdGhfd2FzbV9pNjRfZGl2X3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpIFJFRkVSRU5DRURf
RlJPTV9BU00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJDIiB1aW50NjRfdCBzbG93X3BhdGhfd2Fz
bV9pNjRfZGl2X3UodWludDY0X3QgYSwgdWludDY0X3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBX
VEZfSU5URVJOQUw7CitleHRlcm4gIkMiIGludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X3JlbV9z
KGludDY0X3QgYSwgaW50NjRfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsK
K2V4dGVybiAiQyIgdWludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X3JlbV91KHVpbnQ2NF90IGEs
IHVpbnQ2NF90IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOworI2VuZGlmCisK
IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpMTEludAogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VN
QkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9j
YXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24u
Y3BwCmluZGV4IDUyMjNmM2FiNGU0MGZiNDk4NDdlMGU5NmE2YzM5NzE4ZWY0MTA5YjUuLjY4Yzc4
ODg5MDZkYjhiNTFjOTUwNGJlOWVjZTljYmJmY2VkMmZkMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5jcHAKQEAgLTM1LDggKzM1LDExIEBA
IHZvaWQgVmFsdWVMb2NhdGlvbjo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewogICAg
IG91dC5wcmludChtX2tpbmQpOwogICAgIHN3aXRjaCAobV9raW5kKSB7Ci0gICAgY2FzZSBSZWdp
c3RlcjoKLSAgICAgICAgb3V0LnByaW50KCIoIiwgcmVnKCksICIpIik7CisgICAgY2FzZSBHUFJS
ZWdpc3RlcjoKKyAgICAgICAgb3V0LnByaW50KCIoIiwganNyKCksICIpIik7CisgICAgICAgIHJl
dHVybjsKKyAgICBjYXNlIEZQUlJlZ2lzdGVyOgorICAgICAgICBvdXQucHJpbnQoIigiLCBmcHIo
KSwgIikiKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgU3RhY2s6CiAgICAgICAgIG91dC5w
cmludCgiKCIsIG9mZnNldEZyb21GUCgpLCAiKSIpOwpAQCAtNTcsOCArNjAsMTEgQEAgdXNpbmcg
bmFtZXNwYWNlIEpTQzo6V2FzbTsKIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0
LCBWYWx1ZUxvY2F0aW9uOjpLaW5kIGtpbmQpCiB7CiAgICAgc3dpdGNoIChraW5kKSB7Ci0gICAg
Y2FzZSBWYWx1ZUxvY2F0aW9uOjpSZWdpc3RlcjoKLSAgICAgICAgb3V0LnByaW50KCJSZWdpc3Rl
ciIpOworICAgIGNhc2UgVmFsdWVMb2NhdGlvbjo6R1BSUmVnaXN0ZXI6CisgICAgICAgIG91dC5w
cmludCgiR1BSUmVnaXN0ZXIiKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgVmFsdWVMb2Nh
dGlvbjo6RlBSUmVnaXN0ZXI6CisgICAgICAgIG91dC5wcmludCgiRlBSUmVnaXN0ZXIiKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIGNhc2UgVmFsdWVMb2NhdGlvbjo6U3RhY2s6CiAgICAgICAgIG91
dC5wcmludCgiU3RhY2siKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21WYWx1ZUxvY2F0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFs
dWVMb2NhdGlvbi5oCmluZGV4IGE2MWZiYThiZDAxY2I0YWMwY2E2YjZjYTdlZTQ0ZDdiNzcwZDQ4
YTMuLjVjYjUxMGRiYmQwYjFiMDQ3ZjVjOTI2MTc5ZTFhM2ZiOWNiYWIxY2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uaApAQCAtNDEsMjUgKzQx
LDI3IEBAIGNsYXNzIFZhbHVlTG9jYXRpb24gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgogICAgIGVudW0gS2luZCA6IHVpbnQ4X3QgewotICAgICAgICBSZWdpc3RlciwK
KyAgICAgICAgR1BSUmVnaXN0ZXIsCisgICAgICAgIEZQUlJlZ2lzdGVyLAogICAgICAgICBTdGFj
aywKICAgICAgICAgU3RhY2tBcmd1bWVudCwKICAgICB9OwogCiAgICAgVmFsdWVMb2NhdGlvbigp
Ci0gICAgICAgIDogbV9raW5kKFJlZ2lzdGVyKQorICAgICAgICA6IG1fa2luZChHUFJSZWdpc3Rl
cikKICAgICB7CiAgICAgfQogCi0gICAgZXhwbGljaXQgVmFsdWVMb2NhdGlvbihSZWcgcmVnKQot
ICAgICAgICA6IG1fa2luZChSZWdpc3RlcikKKyAgICBleHBsaWNpdCBWYWx1ZUxvY2F0aW9uKEpT
VmFsdWVSZWdzIHJlZ3MpCisgICAgICAgIDogbV9raW5kKEdQUlJlZ2lzdGVyKQogICAgIHsKLSAg
ICAgICAgdS5yZWcgPSByZWc7CisgICAgICAgIHUuanNyID0gcmVnczsKICAgICB9CiAKLSAgICBz
dGF0aWMgVmFsdWVMb2NhdGlvbiByZWcoUmVnIHJlZykKKyAgICBleHBsaWNpdCBWYWx1ZUxvY2F0
aW9uKEZQUlJlZyByZWcpCisgICAgICAgIDogbV9raW5kKEZQUlJlZ2lzdGVyKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIFZhbHVlTG9jYXRpb24ocmVnKTsKKyAgICAgICAgdS5mcHIgPSByZWc7CiAg
ICAgfQogCiAgICAgc3RhdGljIFZhbHVlTG9jYXRpb24gc3RhY2soaW50cHRyX3Qgb2Zmc2V0RnJv
bUZQKQpAQCAtODAsMjEgKzgyLDIyIEBAIHB1YmxpYzoKIAogICAgIEtpbmQga2luZCgpIGNvbnN0
IHsgcmV0dXJuIG1fa2luZDsgfQogCi0gICAgYm9vbCBpc1JlZygpIGNvbnN0IHsgcmV0dXJuIGtp
bmQoKSA9PSBSZWdpc3RlcjsgfQorICAgIGJvb2wgaXNHUFIoKSBjb25zdCB7IHJldHVybiBraW5k
KCkgPT0gR1BSUmVnaXN0ZXI7IH0KKyAgICBib29sIGlzRlBSKCkgY29uc3QgeyByZXR1cm4ga2lu
ZCgpID09IEZQUlJlZ2lzdGVyOyB9CisgICAgYm9vbCBpc1N0YWNrKCkgY29uc3QgeyByZXR1cm4g
a2luZCgpID09IFN0YWNrOyB9CisgICAgYm9vbCBpc1N0YWNrQXJndW1lbnQoKSBjb25zdCB7IHJl
dHVybiBraW5kKCkgPT0gU3RhY2tBcmd1bWVudDsgfQogCi0gICAgUmVnIHJlZygpIGNvbnN0Cisg
ICAgSlNWYWx1ZVJlZ3MganNyKCkgY29uc3QKICAgICB7Ci0gICAgICAgIEFTU0VSVChpc1JlZygp
KTsKLSAgICAgICAgcmV0dXJuIHUucmVnOworICAgICAgICBBU1NFUlQoaXNHUFIoKSk7CisgICAg
ICAgIHJldHVybiB1LmpzcjsKICAgICB9CiAKLSAgICBib29sIGlzR1BSKCkgY29uc3QgeyByZXR1
cm4gaXNSZWcoKSAmJiByZWcoKS5pc0dQUigpOyB9Ci0gICAgYm9vbCBpc0ZQUigpIGNvbnN0IHsg
cmV0dXJuIGlzUmVnKCkgJiYgcmVnKCkuaXNGUFIoKTsgfQotCi0gICAgR1BSUmVnIGdwcigpIGNv
bnN0IHsgcmV0dXJuIHJlZygpLmdwcigpOyB9Ci0gICAgRlBSUmVnIGZwcigpIGNvbnN0IHsgcmV0
dXJuIHJlZygpLmZwcigpOyB9Ci0KLSAgICBib29sIGlzU3RhY2soKSBjb25zdCB7IHJldHVybiBr
aW5kKCkgPT0gU3RhY2s7IH0KKyAgICBGUFJSZWcgZnByKCkgY29uc3QKKyAgICB7CisgICAgICAg
IEFTU0VSVChpc0ZQUigpKTsKKyAgICAgICAgcmV0dXJuIHUuZnByOworICAgIH0KIAogICAgIGlu
dHB0cl90IG9mZnNldEZyb21GUCgpIGNvbnN0CiAgICAgewpAQCAtMTAyLDggKzEwNSw2IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIHUub2Zmc2V0RnJvbUZQOwogICAgIH0KIAotICAgIGJvb2wg
aXNTdGFja0FyZ3VtZW50KCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IFN0YWNrQXJndW1lbnQ7
IH0KLQogICAgIGludHB0cl90IG9mZnNldEZyb21TUCgpIGNvbnN0CiAgICAgewogICAgICAgICBB
U1NFUlQoaXNTdGFja0FyZ3VtZW50KCkpOwpAQCAtMTE0LDcgKzExNSw4IEBAIHB1YmxpYzoKIAog
cHJpdmF0ZToKICAgICB1bmlvbiBVIHsKLSAgICAgICAgUmVnIHJlZzsKKyAgICAgICAgSlNWYWx1
ZVJlZ3MganNyOworICAgICAgICBGUFJSZWcgZnByOwogICAgICAgICBpbnRwdHJfdCBvZmZzZXRG
cm9tRlA7CiAgICAgICAgIGludHB0cl90IG9mZnNldEZyb21TUDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3BwCmluZGV4IDFmNDY0ZmU5OGJhZDgzNDQwNGQxMTAx
ODlkZGNmOGYyNTQ0M2JkM2EuLjk0MTlkZDA1Y2FhODU3MjBmOGRjMzM1YThlYTczYTQ1NTQ3Zjlj
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAKQEAgLTMx
LDYgKzMxLDcgQEAKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJKU0NKU1Zh
bHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlJbnN0YW5jZS5oIgorI2luY2x1
ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiV2FzbUNhbGxp
bmdDb252ZW50aW9uLmgiCiAjaW5jbHVkZSAiV2FzbUNvbnRleHRJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiV2FzbU9wZXJhdGlvbnMuaCIKQEAgLTQwLDEzICs0MSwxMyBAQCBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIFdhc20gewogCiB2b2lkIG1hcnNoYWxsSlNSZXN1bHQoQ0NhbGxIZWxwZXJzJiBq
aXQsIGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlLCBjb25zdCBDYWxsSW5mb3JtYXRpb24mIHdh
c21GcmFtZUNvbnZlbnRpb24sIGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXRMaXN0JiBzYXZlZFJlc3Vs
dFJlZ2lzdGVycykKIHsKLSAgICBhdXRvIGJveFdhc21SZXN1bHQgPSBbXShDQ2FsbEhlbHBlcnMm
IGppdCwgVHlwZSB0eXBlLCBSZWcgc3JjLCBKU1ZhbHVlUmVncyBkc3QpIHsKKyAgICBhdXRvIGJv
eFdhc21SZXN1bHQgPSBbXShDQ2FsbEhlbHBlcnMmIGppdCwgVHlwZSB0eXBlLCBWYWx1ZUxvY2F0
aW9uIHNyYywgSlNWYWx1ZVJlZ3MgZHN0KSB7CiAgICAgICAgIHN3aXRjaCAodHlwZS5raW5kKSB7
CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlZvaWQ6CiAgICAgICAgICAgICBqaXQubW92ZVRydXN0
ZWRWYWx1ZShqc1VuZGVmaW5lZCgpLCBkc3QpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgVHlwZUtpbmQ6OkkzMjoKLSAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQo
c3JjLmdwcigpLCBkc3QucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5k
MzJUb1dvcmQoc3JjLmpzcigpLnBheWxvYWRHUFIoKSwgZHN0LnBheWxvYWRHUFIoKSk7CiAgICAg
ICAgICAgICBqaXQuYm94SW50MzIoZHN0LnBheWxvYWRHUFIoKSwgZHN0LCBEb05vdEhhdmVUYWdS
ZWdpc3RlcnMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYz
MjoKQEAgLTU1LDEzICs1NiwxNyBAQCB2b2lkIG1hcnNoYWxsSlNSZXN1bHQoQ0NhbGxIZWxwZXJz
JiBqaXQsIGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlLCBjb25zdCBDYWxsSQogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpGNjQ6IHsKICAgICAgICAgICAgIGppdC5tb3ZlVHJ1c3RlZFZhbHVlKGpz
TnVtYmVyKHB1cmVOYU4oKSksIGRzdCk7CiAgICAgICAgICAgICBhdXRvIGlzTmFOID0gaml0LmJy
YW5jaElmTmFOKHNyYy5mcHIoKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgICAgIGpp
dC5ib3hEb3VibGUoc3JjLmZwcigpLCBkc3QsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisjZWxz
ZQorICAgICAgICAgICAgaml0LmJveERvdWJsZShzcmMuZnByKCksIGRzdCk7CisjZW5kaWYKICAg
ICAgICAgICAgIGlzTmFOLmxpbmsoJmppdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICBkZWZhdWx0OiB7CiAgICAgICAgICAgICBpZiAoaXNGdW5jcmVmKHR5cGUpIHx8
IGlzRXh0ZXJucmVmKHR5cGUpKQotICAgICAgICAgICAgICAgIGppdC5tb3ZlKHNyYy5ncHIoKSwg
ZHN0LnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICAgICAgaml0Lm1vdmVWYWx1ZVJlZ3Moc3Jj
LmpzcigpLCBkc3QpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGppdC5icmVh
a3BvaW50KCk7CiAgICAgICAgIH0KQEAgLTY5LDQ0ICs3NCw4NyBAQCB2b2lkIG1hcnNoYWxsSlNS
ZXN1bHQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlLCBjb25z
dCBDYWxsSQogICAgIH07CiAKICAgICBpZiAoc2lnbmF0dXJlLnJldHVybnNWb2lkKCkpCi0gICAg
ICAgIGppdC5tb3ZlVHJ1c3RlZFZhbHVlKGpzVW5kZWZpbmVkKCksIEpTVmFsdWVSZWdzIHsgR1BS
SW5mbzo6cmV0dXJuVmFsdWVHUFIgfSk7CisgICAgICAgIGppdC5tb3ZlVHJ1c3RlZFZhbHVlKGpz
VW5kZWZpbmVkKCksIEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsKICAgICBlbHNlIGlmIChzaWdu
YXR1cmUucmV0dXJuQ291bnQoKSA9PSAxKSB7CiAgICAgICAgIGlmIChzaWduYXR1cmUucmV0dXJu
VHlwZSgwKS5pc0k2NCgpKSB7Ci0gICAgICAgICAgICBHUFJSZWcgaW5wdXRHUFIgPSB3YXNtRnJh
bWVDb252ZW50aW9uLnJlc3VsdHNbMF0ucmVnKCkuZ3ByKCk7CisgICAgICAgICAgICBKU1ZhbHVl
UmVncyBpbnB1dEpTUiA9IHdhc21GcmFtZUNvbnZlbnRpb24ucmVzdWx0c1swXS5qc3IoKTsKICAg
ICAgICAgICAgIEdQUlJlZyB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gUGlubmVkUmVnaXN0ZXJJ
bmZvOjpnZXQoKS53YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlcjsKICAgICAgICAgICAgIGlmIChD
b250ZXh0Ojp1c2VGYXN0VExTKCkpIHsKLSAgICAgICAgICAgICAgICB3YXNtQ29udGV4dEluc3Rh
bmNlR1BSID0gaW5wdXRHUFIgPT0gR1BSSW5mbzo6YXJndW1lbnRHUFIxID8gR1BSSW5mbzo6YXJn
dW1lbnRHUFIwIDogR1BSSW5mbzo6YXJndW1lbnRHUFIxOwotICAgICAgICAgICAgICAgIHN0YXRp
Y19hc3NlcnQoc3RkOjppc19zYW1lX3Y8V2FzbTo6SW5zdGFuY2UqLCB0eXBlbmFtZSBGdW5jdGlv
blRyYWl0czxkZWNsdHlwZShvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSk+OjpBcmd1bWVu
dFR5cGU8MT4+KTsKKyAgICAgICAgICAgICAgICB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gaW5w
dXRKU1IucGF5bG9hZEdQUigpID09IEdQUkluZm86OmFyZ3VtZW50R1BSMSA/IEdQUkluZm86OmFy
Z3VtZW50R1BSMCA6IEdQUkluZm86OmFyZ3VtZW50R1BSMTsKKyAgICAgICAgICAgICAgICBBU1NF
UlQoIWlucHV0SlNSLnVzZXMod2FzbUNvbnRleHRJbnN0YW5jZUdQUikpOworICAgICAgICAgICAg
ICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lX3Y8V2FzbTo6SW5zdGFuY2UqLCB0eXBlbmFt
ZSBGdW5jdGlvblRyYWl0czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPjo6QXJn
dW1lbnRUeXBlPDE+Pik7CiAgICAgICAgICAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3Rh
bmNlKHdhc21Db250ZXh0SW5zdGFuY2VHUFIpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAg
aml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+KHdh
c21Db250ZXh0SW5zdGFuY2VHUFIsIGlucHV0R1BSKTsKKyAgICAgICAgICAgIGppdC5zZXR1cEFy
Z3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPih3YXNtQ29udGV4dElu
c3RhbmNlR1BSLCBpbnB1dEpTUik7CiAgICAgICAgICAgICBqaXQuY2FsbE9wZXJhdGlvbihGdW5j
dGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCkpOwogICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgIGJveFdhc21SZXN1bHQoaml0LCBzaWduYXR1cmUucmV0
dXJuVHlwZSgwKSwgd2FzbUZyYW1lQ29udmVudGlvbi5yZXN1bHRzWzBdLnJlZygpLCBKU1ZhbHVl
UmVncyB7IEdQUkluZm86OnJldHVyblZhbHVlR1BSIH0pOworICAgICAgICAgICAgYm94V2FzbVJl
c3VsdChqaXQsIHNpZ25hdHVyZS5yZXR1cm5UeXBlKDApLCB3YXNtRnJhbWVDb252ZW50aW9uLnJl
c3VsdHNbMF0sIEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsKICAgICB9IGVsc2UgewogICAgICAg
ICBJbmRleGluZ1R5cGUgaW5kZXhpbmdUeXBlID0gQXJyYXlXaXRoVW5kZWNpZGVkOwotICAgICAg
ICBKU1ZhbHVlUmVncyBzY3JhdGNoID0gSlNWYWx1ZVJlZ3MgeyB3YXNtQ2FsbGluZ0NvbnZlbnRp
b24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdIH07CisgICAgICAgIEpTVmFsdWVSZWdzIHNjcmF0
Y2hKU1IgPSBKU1ZhbHVlUmVncyB7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAg
IHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMl0sCisjZW5kaWYK
KyAgICAgICAgICAgIHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNb
MV0KKyAgICAgICAgfTsKKworICAgICAgICBBU1NFUlQoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkg
IT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAg
ICBBU1NFUlQoc2NyYXRjaEpTUi50YWdHUFIoKSAhPSBHUFJSZWc6OkludmFsaWRHUFJSZWcpOwor
ICAgICAgICBBU1NFUlQoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkgIT0gc2NyYXRjaEpTUi50YWdH
UFIoKSk7CisjZW5kaWYKKwogICAgICAgICAvLyBXZSBjYW4gdXNlIHRoZSBmaXJzdCBmbG9hdGlu
ZyBwb2ludCByZWdpc3RlciBhcyBhIHNjcmF0Y2ggc2luY2UgaXQgd2lsbCBhbHdheXMgYmUgbW92
ZWQgb250byB0aGUgc3RhY2sgYmVmb3JlIG90aGVyIHZhbHVlcy4KLSAgICAgICAgRlBSUmVnIGZw
clNjcmF0Y2ggPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5mcHJBcmdzWzBdLmZwcigpOworICAg
ICAgICBGUFJSZWcgZnByU2NyYXRjaCA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpLmZwckFyZ3Nb
MF07CiAgICAgICAgIGJvb2wgaGFzSTY0ID0gZmFsc2U7CiAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBzaWduYXR1cmUucmV0dXJuQ291bnQoKTsgKytpKSB7CiAgICAgICAgICAgICBW
YWx1ZUxvY2F0aW9uIGxvYyA9IHdhc21GcmFtZUNvbnZlbnRpb24ucmVzdWx0c1tpXTsKICAgICAg
ICAgICAgIFR5cGUgdHlwZSA9IHNpZ25hdHVyZS5yZXR1cm5UeXBlKGkpOwogCiAgICAgICAgICAg
ICBoYXNJNjQgfD0gdHlwZS5pc0k2NCgpOwotICAgICAgICAgICAgaWYgKGxvYy5pc1JlZygpKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKCF0eXBlLmlzSTY0KCkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgYm94V2FzbVJlc3VsdChqaXQsIHNpZ25hdHVyZS5yZXR1cm5UeXBlKGkpLCBsb2MucmVnKCks
IHNjcmF0Y2gpOwotICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNoLCBD
Q2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwg
c2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MucmVnKCkpLT5vZmZzZXQoKSArIHdhc21GcmFt
ZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSk7Ci0gICAgICAg
ICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTVmFs
dWVSZWdzIHsgbG9jLnJlZygpLmdwcigpIH0sIENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhl
bHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxv
Yy5yZWcoKSktPm9mZnNldCgpICsgd2FzbUZyYW1lQ29udmVudGlvbi5oZWFkZXJBbmRBcmd1bWVu
dFN0YWNrU2l6ZUluQnl0ZXMpKTsKKyAgICAgICAgICAgIGlmIChsb2MuaXNHUFIoKSB8fCBsb2Mu
aXNGUFIoKSkgeworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgQVNTRVJU
KCFsb2MuaXNHUFIoKSB8fCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS5wYXls
b2FkR1BSKCkpLT5vZmZzZXQoKSArIDQgPT0gc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2Mu
anNyKCkudGFnR1BSKCkpLT5vZmZzZXQoKSk7CisjZW5kaWYKKyAgICAgICAgICAgICAgICBhdXRv
IGFkZHJlc3MgPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50
ZXJSZWdpc3Rlciwgd2FzbUZyYW1lQ29udmVudGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6
ZUluQnl0ZXMpOworICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZS5raW5kKSB7CisgICAgICAg
ICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgorICAgICAgICAgICAgICAgIGNhc2UgVHlwZUtp
bmQ6OkY2NDoKKyAgICAgICAgICAgICAgICAgICAgYm94V2FzbVJlc3VsdChqaXQsIHR5cGUsIGxv
Yywgc2NyYXRjaEpTUik7CisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0
Y2hKU1IsIGFkZHJlc3Mud2l0aE9mZnNldChzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5m
cHIoKSktPm9mZnNldCgpKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDoKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3Jl
VmFsdWUobG9jLmpzcigpLCBhZGRyZXNzLndpdGhPZmZzZXQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMu
ZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkpKTsKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAg
ICAgYm94V2FzbVJlc3VsdChqaXQsIHR5cGUsIGxvYywgc2NyYXRjaEpTUik7CisgICAgICAgICAg
ICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2hKU1IsIGFkZHJlc3Mud2l0aE9mZnNldChz
YXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQo
KSkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGlmICghdHlwZS5pc0k2NCgpKSB7CiAg
ICAgICAgICAgICAgICAgICAgIGF1dG8gbG9jYXRpb24gPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Mo
Q0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgbG9jLm9mZnNldEZyb21TUCgpKTsK
LSAgICAgICAgICAgICAgICAgICAgUmVnIHRtcCA9ICh0eXBlLmlzRjMyKCkgfHwgdHlwZS5pc0Y2
NCgpKSA/IFJlZyhmcHJTY3JhdGNoKSA6IFJlZyhzY3JhdGNoLmdwcigpKTsKLSAgICAgICAgICAg
ICAgICAgICAgaml0LmxvYWQ2NFRvUmVnKGxvY2F0aW9uLCB0bXApOwotICAgICAgICAgICAgICAg
ICAgICBib3hXYXNtUmVzdWx0KGppdCwgc2lnbmF0dXJlLnJldHVyblR5cGUoaSksIHRtcCwgc2Ny
YXRjaCk7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2gsIGxvY2F0
aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgVmFsdWVMb2NhdGlvbiB0bXA7CisgICAgICAgICAg
ICAgICAgICAgIHN3aXRjaCAodHlwZS5raW5kKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2Ug
VHlwZUtpbmQ6OkYzMjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFZhbHVlTG9jYXRp
b24geyBmcHJTY3JhdGNoIH07CisgICAgICAgICAgICAgICAgICAgICAgICBqaXQubG9hZEZsb2F0
KGxvY2F0aW9uLCBmcHJTY3JhdGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6CisgICAgICAgICAgICAgICAg
ICAgICAgICB0bXAgPSBWYWx1ZUxvY2F0aW9uIHsgZnByU2NyYXRjaCB9OworICAgICAgICAgICAg
ICAgICAgICAgICAgaml0LmxvYWREb3VibGUobG9jYXRpb24sIGZwclNjcmF0Y2gpOworICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVHlwZUtp
bmQ6OkkzMjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFZhbHVlTG9jYXRpb24geyBz
Y3JhdGNoSlNSIH07CisgICAgICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDMyKGxvY2F0aW9u
LCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRtcCA9IFZhbHVlTG9jYXRpb24geyBzY3JhdGNoSlNSIH07CisgICAgICAgICAgICAgICAgICAg
ICAgICBqaXQubG9hZFZhbHVlKGxvY2F0aW9uLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIGJveFdhc21SZXN1bHQoaml0LCB0eXBlLCB0bXAsIHNjcmF0Y2hKU1IpOworICAgICAgICAg
ICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNoSlNSLCBsb2NhdGlvbik7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQogCkBAIC0xMzUsMzcgKzE4Myw0NyBAQCB2b2lkIG1h
cnNoYWxsSlNSZXN1bHQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0
dXJlLCBjb25zdCBDYWxsSQogCiAgICAgICAgICAgICAgICAgR1BSUmVnIHdhc21Db250ZXh0SW5z
dGFuY2VHUFIgPSBQaW5uZWRSZWdpc3RlckluZm86OmdldCgpLndhc21Db250ZXh0SW5zdGFuY2VQ
b2ludGVyOwogICAgICAgICAgICAgICAgIGlmIChDb250ZXh0Ojp1c2VGYXN0VExTKCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IEdQUkluZm86OmFyZ3Vt
ZW50R1BSMTsKLSAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWVf
djxXYXNtOjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPGRlY2x0eXBlKG9wZXJh
dGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KT46OkFyZ3VtZW50VHlwZTwxPj4pOworICAgICAgICAg
ICAgICAgICAgICB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gcHJlZmVycmVkQXJndW1lbnRHUFI8
ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KSwgMT4oKTsKKyAgICAgICAgICAgICAg
ICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWVfdjxXYXNtOjpJbnN0YW5jZSosIHR5cGVu
YW1lIEZ1bmN0aW9uVHJhaXRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+OjpB
cmd1bWVudFR5cGU8MT4+KTsKICAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4
dEluc3RhbmNlKHdhc21Db250ZXh0SW5zdGFuY2VHUFIpOwogICAgICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgICAgIGlmIChsb2MuaXNSZWcoKSkKLSAgICAgICAgICAgICAgICAgICAgaml0
LmxvYWQ2NChDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJS
ZWdpc3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MucmVnKCkpLT5vZmZzZXQoKSAr
IHdhc21GcmFtZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgICAgICAgICAgYXV0byBsb2NhdGlvbiA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhl
bHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBsb2Mub2Zmc2V0RnJvbVNQKCkpOwotICAgICAg
ICAgICAgICAgICAgICBqaXQubG9hZDY0VG9SZWcobG9jYXRpb24sIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3Vt
ZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPih3YXNtQ29udGV4dEluc3Rh
bmNlR1BSLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAgICAgICAgICAgIGNvbnN0ZXhw
ciBKU1ZhbHVlUmVncyB2YWx1ZUpTUiA9IHByZWZlcnJlZEFyZ3VtZW50SlNSPGRlY2x0eXBlKG9w
ZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCksIDI+KCk7CisKKyAgICAgICAgICAgICAgICBDQ2FsbEhl
bHBlcnM6OkFkZHJlc3MgYWRkcmVzcyB7IENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0
ZXIgfTsKKyAgICAgICAgICAgICAgICBpZiAobG9jLmlzR1BSKCkgfHwgbG9jLmlzRlBSKCkpIHsK
KyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgICAgICBBU1NFUlQoc2F2ZWRS
ZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkgKyA0
ID09IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnRhZ0dQUigpKS0+b2Zmc2V0
KCkpOworI2VuZGlmCisgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSBhZGRyZXNzLndpdGhP
ZmZzZXQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+
b2Zmc2V0KCkgKyB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXpl
SW5CeXRlcyk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIGFk
ZHJlc3MgPSBhZGRyZXNzLndpdGhPZmZzZXQobG9jLm9mZnNldEZyb21TUCgpKTsKKworICAgICAg
ICAgICAgICAgIGppdC5sb2FkVmFsdWUoYWRkcmVzcywgdmFsdWVKU1IpOworICAgICAgICAgICAg
ICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQp
Pih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCB2YWx1ZUpTUik7CiAgICAgICAgICAgICAgICAgaml0
LmNhbGxPcGVyYXRpb24oRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25Db252
ZXJ0VG9CaWdJbnQpKTsKLSAgICAgICAgICAgICAgICBpZiAobG9jLmlzUmVnKCkpCi0gICAgICAg
ICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIgfSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLnJlZygpKS0+b2Zmc2V0
KCkgKyB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRl
cykpOwotICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICBhdXRvIGxv
Y2F0aW9uID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVy
UmVnaXN0ZXIsIGxvYy5vZmZzZXRGcm9tU1AoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5z
dG9yZVZhbHVlKEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIgfSwgbG9jYXRp
b24pOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShK
U1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgYWRkcmVzcyk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KIAogICAgICAgICBHUFJSZWcgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IFBpbm5lZFJlZ2lz
dGVySW5mbzo6Z2V0KCkud2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXI7CiAgICAgICAgIGlmIChD
b250ZXh0Ojp1c2VGYXN0VExTKCkpIHsKLSAgICAgICAgICAgIHdhc21Db250ZXh0SW5zdGFuY2VH
UFIgPSBHUFJJbmZvOjphcmd1bWVudEdQUjE7CisgICAgICAgICAgICB3YXNtQ29udGV4dEluc3Rh
bmNlR1BSID0gcHJlZmVycmVkQXJndW1lbnRHUFI8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVS
ZXN1bHRzQXJyYXkpLCAxPigpOwogICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3Nh
bWVfdjxXYXNtOjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPGRlY2x0eXBlKG9w
ZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KT46OkFyZ3VtZW50VHlwZTwxPj4pOwogICAgICAg
ICAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHdhc21Db250ZXh0SW5zdGFuY2VHUFIp
OwogICAgICAgICB9CiAKLSAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJh
dGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KT4od2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZzaWduYXR1cmUpLCBpbmRleGluZ1R5cGUsIENDYWxsSGVs
cGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBjb25zdGV4cHIgR1BSUmVnIHNh
dmVkUmVzdWx0c0dQUiA9IHByZWZlcnJlZEFyZ3VtZW50R1BSPGRlY2x0eXBlKG9wZXJhdGlvbkFs
bG9jYXRlUmVzdWx0c0FycmF5KSwgND4oKTsKKyAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJz
OjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRzR1BSKTsKKyAgICAgICAgaWYgY29u
c3RleHByIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGppdC5z
dWJQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0
aENhbGwpLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgQVNT
RVJUKHdhc21Db250ZXh0SW5zdGFuY2VHUFIgIT0gc2F2ZWRSZXN1bHRzR1BSKTsKKyAgICAgICAg
aml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5
KT4od2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZz
aWduYXR1cmUpLCBpbmRleGluZ1R5cGUsIHNhdmVkUmVzdWx0c0dQUik7CiAgICAgICAgIGppdC5j
YWxsT3BlcmF0aW9uKEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQWxsb2Nh
dGVSZXN1bHRzQXJyYXkpKTsKKyAgICAgICAgaWYgY29uc3RleHByIChtYXhGcmFtZUV4dGVudEZv
clNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGppdC5hZGRQdHIoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBDQ2FsbEhlbHBlcnM6OnN0
YWNrUG9pbnRlclJlZ2lzdGVyKTsKKworICAgICAgICBqaXQuYm94Q2VsbChHUFJJbmZvOjpyZXR1
cm5WYWx1ZUdQUiwgSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpOwogICAgIH0KIH0KIApAQCAtMTc3
LDcgKzIzNSwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4gY3JlYXRlSlNU
b1dhc21XcmFwcGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogICAgIC8vIEZJWE1FIFN0b3Ag
dXNpbmcgMCBhcyBjb2RlQmxvY2tzLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTY1MzIxCiAgICAgaml0LmVtaXRaZXJvVG9DYWxsRnJhbWVIZWFkZXIoQ2FsbEZyYW1l
U2xvdDo6Y29kZUJsb2NrKTsKICAgICBNYWNyb0Fzc2VtYmxlcjo6RGF0YUxhYmVsUHRyIGNhbGxl
ZU1vdmVMb2NhdGlvbiA9IGppdC5tb3ZlV2l0aFBhdGNoKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tUHRyKG51bGxwdHIpLCBHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIpOwotICAg
IGppdC5lbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIoR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0
dXJuR1BSLCBDYWxsRnJhbWVTbG90OjpjYWxsZWUpOworICAgIENDYWxsSGVscGVyczo6QWRkcmVz
cyBjYWxsZWVTbG90IHsgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZVNsb3Q6
OmNhbGxlZSAqIHNpemVvZihSZWdpc3RlcikgfTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6
bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSLCBjYWxsZWVTbG90LndpdGhPZmZzZXQoUGF5bG9hZE9m
ZnNldCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6V2FzbVRhZyksIGNhbGxlZVNsb3Qud2l0aE9mZnNl
dChUYWdPZmZzZXQpKTsKKyNlbmRpZgogICAgIFZlY3RvcjxDb2RlTG9jYXRpb25EYXRhTGFiZWxQ
dHI8V2FzbUVudHJ5UHRyVGFnPj4qIGxpbmtlZENhbGxlZU1vdmUgPSAmcmVzdWx0LT5jYWxsZWVN
b3ZlTG9jYXRpb25zOwogICAgIGppdC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtC
dWZmZXIpIHsKICAgICAgICAgbGlua2VkQ2FsbGVlTW92ZS0+YXBwZW5kKGxpbmtCdWZmZXIubG9j
YXRpb25PZjxXYXNtRW50cnlQdHJUYWc+KGNhbGxlZU1vdmVMb2NhdGlvbikpOwpAQCAtMTk2LDEx
ICsyNTgsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+IGNyZWF0ZUpTVG9X
YXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QKICAgICBSZWdpc3RlckF0T2Zmc2V0
TGlzdCByZWdpc3RlcnNUb1NwaWxsKHRvU2F2ZSwgUmVnaXN0ZXJBdE9mZnNldExpc3Q6Ok9mZnNl
dEJhc2VUeXBlOjpGcmFtZVBvaW50ZXJCYXNlZCk7CiAgICAgcmVzdWx0LT5lbnRyeXBvaW50LmNh
bGxlZVNhdmVSZWdpc3RlcnMgPSByZWdpc3RlcnNUb1NwaWxsOwogCi0gICAgc2l6ZV90IHRvdGFs
RnJhbWVTaXplID0gcmVnaXN0ZXJzVG9TcGlsbC5zaXplKCkgKiBzaXplb2YoQ1BVUmVnaXN0ZXIp
OworICAgIHNpemVfdCB0b3RhbEZyYW1lU2l6ZSA9IHJlZ2lzdGVyc1RvU3BpbGwuc2l6ZU9mQXJl
YUluQnl0ZXMoKTsKICAgICBDYWxsSW5mb3JtYXRpb24gd2FzbUZyYW1lQ29udmVudGlvbiA9IHdh
c21DYWxsaW5nQ29udmVudGlvbigpLmNhbGxJbmZvcm1hdGlvbkZvcihzaWduYXR1cmUpOwogICAg
IFJlZ2lzdGVyQXRPZmZzZXRMaXN0IHNhdmVkUmVzdWx0UmVnaXN0ZXJzID0gd2FzbUZyYW1lQ29u
dmVudGlvbi5jb21wdXRlUmVzdWx0c09mZnNldExpc3QoKTsKICAgICB0b3RhbEZyYW1lU2l6ZSAr
PSB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlczsK
LSAgICB0b3RhbEZyYW1lU2l6ZSArPSBzYXZlZFJlc3VsdFJlZ2lzdGVycy5zaXplKCkgKiBzaXpl
b2YoQ1BVUmVnaXN0ZXIpOworICAgIHRvdGFsRnJhbWVTaXplICs9IHNhdmVkUmVzdWx0UmVnaXN0
ZXJzLnNpemVPZkFyZWFJbkJ5dGVzKCk7CiAKICAgICB0b3RhbEZyYW1lU2l6ZSA9IFdURjo6cm91
bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudEJ5dGVzKCksIHRvdGFsRnJhbWVTaXplKTsK
ICAgICBqaXQuc3ViUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIodG90YWxGcmFtZVNp
emUpLCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwpAQCAtMjIyLDkgKzI4
NCwxMiBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4gY3JlYXRlSlNUb1dhc21X
cmFwcGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogCiAgICAgICAgIENDYWxsSGVscGVyczo6
QWRkcmVzcyBjYWxsZWVGcmFtZSA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxl
cjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIDApOwogCi0gICAgICAgIC8vIFdlJ3JlIGdvaW5nIHRv
IHNldCB0aGUgcGlubmVkIHJlZ2lzdGVycyBhZnRlciB0aGlzLiBTbwotICAgICAgICAvLyB3ZSBj
YW4gdXNlIHRoaXMgYXMgYSBzY3JhdGNoIGZvciBub3cgc2luY2Ugd2Ugc2F2ZWQgaXQgYWJvdmUu
Ci0gICAgICAgIEdQUlJlZyBzY3JhdGNoUmVnID0gcGlubmVkUmVncy5iYXNlTWVtb3J5UG9pbnRl
cjsKKyAgICAgICAgSlNWYWx1ZVJlZ3Mgc2NyYXRjaEpTUiB7CisjaWYgVVNFKEpTVkFMVUUzMl82
NCkKKyAgICAgICAgICAgIHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQ
UnNbMl0sCisjZW5kaWYKKyAgICAgICAgICAgIHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xv
Z3VlU2NyYXRjaEdQUnNbMV0KKyAgICAgICAgfTsKIAogICAgICAgICBpZiAoIUNvbnRleHQ6OnVz
ZUZhc3RUTFMoKSkgewogICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU0NhbGxpbmdDb252ZW50aW9uOjppbnN0
YW5jZVN0YWNrT2Zmc2V0KSwgd2FzbUNvbnRleHRJbnN0YW5jZUdQUik7CkBAIC0yMzcsMjIgKzMw
MiwzNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4gY3JlYXRlSlNUb1dhc21X
cmFwcGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogICAgICAgICAgICAgVHlwZSB0eXBlID0g
c2lnbmF0dXJlLmFyZ3VtZW50KGkpOwogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
IGpzUGFyYW0oR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGpzRnJhbWVDb252ZW50aW9uLnBh
cmFtc1tpXS5vZmZzZXRGcm9tRlAoKSk7CiAgICAgICAgICAgICBpZiAod2FzbUZyYW1lQ29udmVu
dGlvbi5wYXJhbXNbaV0uaXNTdGFja0FyZ3VtZW50KCkpIHsKKyAgICAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MgYWRkciB7IGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUZyYW1l
Q29udmVudGlvbi5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpIH07CiAgICAgICAgICAgICAgICAg
aWYgKHR5cGUuaXNJMzIoKSB8fCB0eXBlLmlzRjMyKCkpIHsKLSAgICAgICAgICAgICAgICAgICAg
aml0LmxvYWQzMihqc1BhcmFtLCBzY3JhdGNoUmVnKTsKLSAgICAgICAgICAgICAgICAgICAgaml0
LnN0b3JlMzIoc2NyYXRjaFJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtRnJhbWVDb252
ZW50aW9uLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkpOworICAgICAgICAgICAgICAgICAgICBq
aXQubG9hZDMyKGpzUGFyYW0sIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAg
ICAgICAgICAgaml0LnN0b3JlMzIoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIGFkZHIud2l0aE9m
ZnNldChQYXlsb2FkT2Zmc2V0KSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAg
ICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMCksIGFkZHIu
d2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgogICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaFJlZyk7Ci0g
ICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZTY0KHNjcmF0Y2hSZWcsIGNhbGxlZUZyYW1lLndp
dGhPZmZzZXQod2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsK
KyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShqc1BhcmFtLCBzY3JhdGNoSlNSKTsK
KyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoc2NyYXRjaEpTUiwgYWRkcik7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBp
ZiAodHlwZS5pc0kzMigpIHx8IHR5cGUuaXNGMzIoKSkKLSAgICAgICAgICAgICAgICAgICAgaml0
LmxvYWQzMlRvUmVnKGpzUGFyYW0sIHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLnJlZygp
KTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjRU
b1JlZyhqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5yZWcoKSk7CisgICAg
ICAgICAgICAgICAgaWYgKHR5cGUuaXNGMzIoKSkKKyAgICAgICAgICAgICAgICAgICAgaml0Lmxv
YWRGbG9hdChqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5mcHIoKSk7Cisg
ICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZS5pc0Y2NCgpKQorICAgICAgICAgICAgICAgICAg
ICBqaXQubG9hZERvdWJsZShqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5m
cHIoKSk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZS5pc0kzMigpKSB7CisgICAgICAg
ICAgICAgICAgICAgIGppdC5sb2FkMzIoanNQYXJhbSwgd2FzbUZyYW1lQ29udmVudGlvbi5wYXJh
bXNbaV0uanNyKCkucGF5bG9hZEdQUigpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAg
ICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSwgd2Fz
bUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0uanNyKCkudGFnR1BSKCkpOworI2VuZGlmCisgICAg
ICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQ
YXJhbSwgd2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0uanNyKCkpOwogICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgfQogCisjaWYgIUNQVShBUk0pIC8vIEFSTSBoYXMgbm8gcGlubmVk
IHJlZ2lzdGVycyBmb3IgV2FzbSBNZW1vcnksIHNvIG5vIG5lZWQgdG8gc2V0IHRoZW0gdXAKICAg
ICBpZiAoISFpbmZvLm1lbW9yeSkgewogICAgICAgICBHUFJSZWcgYmFzZU1lbW9yeSA9IHBpbm5l
ZFJlZ3MuYmFzZU1lbW9yeVBvaW50ZXI7CiAgICAgICAgIEdQUlJlZyBzaXplID0gd2FzbUNhbGxp
bmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1swXTsKQEAgLTI2MywxNyArMzQwLDE4
IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVhdGVKU1RvV2FzbVdyYXBw
ZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAKICAgICAgICAgR1BSUmVnIGN1cnJlbnRJbnN0
YW5jZUdQUiA9IENvbnRleHQ6OnVzZUZhc3RUTFMoKSA/IGJhc2VNZW1vcnkgOiB3YXNtQ29udGV4
dEluc3RhbmNlR1BSOwogICAgICAgICBpZiAoaXNBUk02NEUoKSkgewotICAgICAgICAgICAgaWYg
KG1vZGUgIT0gV2FzbTo6TWVtb3J5TW9kZTo6U2lnbmFsaW5nKQorICAgICAgICAgICAgaWYgKG1v
ZGUgPT0gV2FzbTo6TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcpCiAgICAgICAgICAgICAgICAg
c2l6ZSA9IHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXI7CiAgICAgICAgICAg
ICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoY3VycmVudEluc3RhbmNlR1BSLCBX
YXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHNDaGVja2luZ1NpemUoKSksIHNpemUp
OwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG1vZGUgIT0gV2FzbTo6TWVtb3J5
TW9kZTo6U2lnbmFsaW5nKQorICAgICAgICAgICAgaWYgKG1vZGUgPT0gV2FzbTo6TWVtb3J5TW9k
ZTo6Qm91bmRzQ2hlY2tpbmcpCiAgICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKGN1cnJlbnRJbnN0YW5jZUdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9m
Q2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKCkpLCBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6
ZVJlZ2lzdGVyKTsKICAgICAgICAgfQogCiAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVy
czo6QWRkcmVzcyhjdXJyZW50SW5zdGFuY2VHUFIsIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNh
Y2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7CiAgICAgICAgIGppdC5jYWdlQ29uZGl0aW9uYWxs
eUFuZFVudGFnKEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJhc2VNZW1vcnksIHNpemUsIHNjcmF0Y2gp
OwogICAgIH0KKyNlbmRpZgogCiAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIGNhbGwgPSBqaXQudGhy
ZWFkU2FmZVBhdGNoYWJsZU5lYXJDYWxsKCk7CiAgICAgdW5zaWduZWQgZnVuY3Rpb25JbmRleFNw
YWNlID0gZnVuY3Rpb25JbmRleCArIGluZm8uaW1wb3J0RnVuY3Rpb25Db3VudCgpOwpAQCAtMjg2
LDcgKzM2NCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVhdGVKU1Rv
V2FzbVdyYXBwZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAKICAgICBmb3IgKGNvbnN0IFJl
Z2lzdGVyQXRPZmZzZXQmIHJlZ0F0T2Zmc2V0IDogcmVnaXN0ZXJzVG9TcGlsbCkgewogICAgICAg
ICBHUFJSZWcgcmVnID0gcmVnQXRPZmZzZXQucmVnKCkuZ3ByKCk7Ci0gICAgICAgIEFTU0VSVChy
ZWcgIT0gR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICBBU1NFUlQoIUpTUkluZm86
OnJldHVyblZhbHVlSlNSLnVzZXMocmVnKSk7CiAgICAgICAgIHB0cmRpZmZfdCBvZmZzZXQgPSBy
ZWdBdE9mZnNldC5vZmZzZXQoKTsKICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBvZmZzZXQpLCByZWcpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcAppbmRleCBlZTRiN2Rm
YjZkMzdjODMxNjM4YTNiNjBjM2YxYjIwMTAyNDE2MWYyLi41MTNjZDhlYTZjNWU2YzMyOTE5ODEy
MGI0MDhmOTdmNjg3MzVkYTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XYXNtVG9KUy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Fz
bVRvSlMuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAj
aW5jbHVkZSAiSlNXZWJBc3NlbWJseUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5o
IgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAi
VGh1bmtHZW5lcmF0b3JzLmgiCiAjaW5jbHVkZSAiV2FzbUNhbGxpbmdDb252ZW50aW9uLmgiCiAj
aW5jbHVkZSAiV2FzbUNvbnRleHRJbmxpbmVzLmgiCkBAIC02OCw3ICs2OSw3IEBAIEV4cGVjdGVk
PE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4g
d2FzbVRvSlMoVk0mIHZtCiAgICAgLy8gSWYgd2UgZXZlciBjaGFuZ2UgdGhpcywgd2Ugd2lsbCBh
bHNvIG5lZWQgdG8gY2hhbmdlIFdhc21CM0lSR2VuZXJhdG9yLgogCiAgICAgLy8gQmVsb3csIHdl
IGFzc3VtZSB0aGF0IHRoZSBKUyBjYWxsaW5nIGNvbnZlbnRpb24gaXMgYWx3YXlzIG9uIHRoZSBz
dGFjay4KLSAgICBBU1NFUlQoIWpzQ0MuZ3ByQXJncy5zaXplKCkpOworICAgIEFTU0VSVCghanND
Qy5qc3JBcmdzLnNpemUoKSk7CiAgICAgQVNTRVJUKCFqc0NDLmZwckFyZ3Muc2l6ZSgpKTsKIAog
ICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwpAQCAtODUsMTQgKzg2LDIyIEBAIEV4cGVj
dGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVy
ZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgLy8gZm9yIHVzIGhlcmUuCiAKICAgICBjb25zdCB1bnNp
Z25lZCBudW1iZXJPZlBhcmFtZXRlcnMgPSBhcmdDb3VudCArIDE7IC8vIFRoZXJlIGlzIGEgInRo
aXMiIGFyZ3VtZW50LgotICAgIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mUmVnc0ZvckNhbGwgPSBD
YWxsRnJhbWU6OmhlYWRlclNpemVJblJlZ2lzdGVycyArIG51bWJlck9mUGFyYW1ldGVyczsKKyAg
ICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlJlZ3NGb3JDYWxsID0gQ2FsbEZyYW1lOjpoZWFkZXJT
aXplSW5SZWdpc3RlcnMgKyByb3VuZEFyZ3VtZW50Q291bnRUb0FsaWduRnJhbWUobnVtYmVyT2ZQ
YXJhbWV0ZXJzKTsKKyAgICBBU1NFUlQoIShudW1iZXJPZlJlZ3NGb3JDYWxsICUgc3RhY2tBbGln
bm1lbnRSZWdpc3RlcnMoKSkpOwogICAgIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQnl0ZXNGb3JD
YWxsID0gbnVtYmVyT2ZSZWdzRm9yQ2FsbCAqIHNpemVvZihSZWdpc3RlcikgLSBzaXplb2YoQ2Fs
bGVyRnJhbWVBbmRQQyk7Ci0gICAgY29uc3QgdW5zaWduZWQgc3RhY2tPZmZzZXQgPSBXVEY6OnJv
dW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRCeXRlcygpLCBzdGQ6Om1heDx1bnNpZ25l
ZD4obnVtYmVyT2ZCeXRlc0ZvckNhbGwsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLnNpemUoKSAqIHNp
emVvZihDUFVSZWdpc3RlcikpKTsKKyAgICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkJ5dGVzRm9y
U2F2ZWRSZXN1bHRzID0gc2F2ZWRSZXN1bHRSZWdpc3RlcnMuc2l6ZU9mQXJlYUluQnl0ZXMoKTsK
KyAgICBjb25zdCB1bnNpZ25lZCBzdGFja09mZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVP
ZihzdGFja0FsaWdubWVudEJ5dGVzKCksIHN0ZDo6bWF4KG51bWJlck9mQnl0ZXNGb3JDYWxsLCBu
dW1iZXJPZkJ5dGVzRm9yU2F2ZWRSZXN1bHRzKSk7CiAgICAgaml0LnN1YlB0cihNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbTMyKHN0YWNrT2Zmc2V0KSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyKTsKICAgICBKSVQ6OkFkZHJlc3MgY2FsbGVlRnJhbWUgPSBDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCAtc3RhdGlj
X2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKIAogICAgIC8vIEZJ
WE1FIG1ha2UgdGhlc2UgbG9vcHMgd2hpY2ggc3dpdGNoIG9uIFNpZ25hdHVyZSBpZiB0aGVyZSBh
cmUgbWFueSBhcmd1bWVudHMgb24gdGhlIHN0YWNrLiBJdCdsbCBvdGhlcndpc2UgYmUgaHVnZSBm
b3IgaHVnZSBzaWduYXR1cmVzLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTY1NTQ3CiAKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIGNvbnN0ZXhwciBKU1ZhbHVlUmVn
cyBqc0FyZzEwIHsgR1BSSW5mbzo6YXJndW1lbnRHUFIwIH07CisjZWxpZiBVU0UoSlNWQUxVRTMy
XzY0KQorICAgIGNvbnN0ZXhwciBKU1ZhbHVlUmVncyBqc0FyZzEwIHsgR1BSSW5mbzo6YXJndW1l
bnRHUFIxLCBHUFJJbmZvOjphcmd1bWVudEdQUjAgfTsKKyNlbmRpZgorCiAgICAgLy8gRmlyc3Qg
Z28gdGhyb3VnaCB0aGUgaW50ZWdlciBwYXJhbWV0ZXJzLCBmcmVlaW5nIHVwIHRoZWlyIHJlZ2lz
dGVyIGZvciB1c2UgYWZ0ZXJ3YXJkcy4KICAgICB7CiAgICAgICAgIHVuc2lnbmVkIG1hcnNoYWxs
ZWRHUFJzID0gMDsKQEAgLTExMSwyMSArMTIwLDIxIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVy
Q29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZt
CiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOgogICAgICAgICAgICAgY2FzZSBU
eXBlS2luZDo6STMyOgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OiB7Ci0gICAgICAg
ICAgICAgICAgR1BSUmVnIGdwclJlZzsKLSAgICAgICAgICAgICAgICBpZiAobWFyc2hhbGxlZEdQ
UnMgPCB3YXNtQ0MuZ3ByQXJncy5zaXplKCkpCi0gICAgICAgICAgICAgICAgICAgIGdwclJlZyA9
IHdhc21DQy5ncHJBcmdzW21hcnNoYWxsZWRHUFJzXS5ncHIoKTsKKyAgICAgICAgICAgICAgICBK
U1ZhbHVlUmVncyBhcmdSZWc7CisgICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRHUFJzIDwg
d2FzbUNDLmpzckFyZ3Muc2l6ZSgpKQorICAgICAgICAgICAgICAgICAgICBhcmdSZWcgPSB3YXNt
Q0MuanNyQXJnc1ttYXJzaGFsbGVkR1BSc107CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAg
ICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgc3BpbGxlZCBhbGwgYXJndW1lbnRzLCB0
aGVzZSByZWdpc3RlcnMgYXJlIGF2YWlsYWJsZSBhcyBzY3JhdGNoLgotICAgICAgICAgICAgICAg
ICAgICBncHJSZWcgPSBHUFJJbmZvOjphcmd1bWVudEdQUjA7Ci0gICAgICAgICAgICAgICAgICAg
IGppdC5sb2FkNjQoSklUOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBmck9m
ZnNldCksIGdwclJlZyk7CisgICAgICAgICAgICAgICAgICAgIGFyZ1JlZyA9IGpzQXJnMTA7Cisg
ICAgICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoSklUOjpBZGRyZXNzKEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyLCBmck9mZnNldCksIGFyZ1JlZyk7CiAgICAgICAgICAgICAgICAgICAg
IGZyT2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICsrbWFyc2hhbGxlZEdQUnM7CiAgICAgICAgICAgICAgICAgaWYgKGFyZ1R5cGUu
aXNJMzIoKSkgewotICAgICAgICAgICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKGdw
clJlZywgZ3ByUmVnKTsgLy8gQ2xlYXIgbm9uLWludDMyIGFuZCBub24tdGFnIGJpdHMuCi0gICAg
ICAgICAgICAgICAgICAgIGppdC5ib3hJbnQzMihncHJSZWcsIEpTVmFsdWVSZWdzKGdwclJlZyks
IERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAgICAgICAgICAgIGppdC56ZXJvRXh0
ZW5kMzJUb1dvcmQoYXJnUmVnLnBheWxvYWRHUFIoKSwgYXJnUmVnLnBheWxvYWRHUFIoKSk7IC8v
IENsZWFyIG5vbi1pbnQzMiBhbmQgbm9uLXRhZyBiaXRzLgorICAgICAgICAgICAgICAgICAgICBq
aXQuYm94SW50MzIoYXJnUmVnLnBheWxvYWRHUFIoKSwgYXJnUmVnLCBEb05vdEhhdmVUYWdSZWdp
c3RlcnMpOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBqaXQuc3RvcmU2NChn
cHJSZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsKKyAgICAg
ICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShhcmdSZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQo
Y2FsbGVlRnJhbWVPZmZzZXQpKTsKICAgICAgICAgICAgICAgICBjYWxsZWVGcmFtZU9mZnNldCAr
PSBzaXplb2YoUmVnaXN0ZXIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
fQpAQCAtMTQyLDYgKzE1MSw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNt
RW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgfQogICAg
IAogICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAvLyBJbnRlZ2VyIHJlZ2lzdGVy
cyBoYXZlIGFscmVhZHkgYmVlbiBzcGlsbGVkLCB0aGVzZSBhcmUgbm93IGF2YWlsYWJsZS4KICAg
ICAgICAgR1BSUmVnIGRvdWJsZUVuY29kZU9mZnNldEdQUlJlZyA9IEdQUkluZm86OmFyZ3VtZW50
R1BSMDsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2ggPSBHUFJJbmZvOjphcmd1bWVudEdQUjE7CkBA
IC0xNTcsNiArMTY3LDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRy
eVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgICAg
ICBoYXNNYXRlcmlhbGl6ZWREb3VibGVFbmNvZGVPZmZzZXQgPSB0cnVlOwogICAgICAgICAgICAg
fQogICAgICAgICB9OworI2VuZGlmCiAKICAgICAgICAgdW5zaWduZWQgbWFyc2hhbGxlZEdQUnMg
PSAwOwogICAgICAgICB1bnNpZ25lZCBtYXJzaGFsbGVkRlBScyA9IDA7CkBAIC0xNjUsMTAgKzE3
NiwxNCBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwg
QmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogCiAgICAgICAgIGF1dG8gbWFyc2hhbGxG
UFIgPSBbJl0gKEZQUlJlZyBmcHJSZWcpIHsKICAgICAgICAgICAgIGppdC5wdXJpZnlOYU4oZnBy
UmVnKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgaml0Lm1vdmVEb3VibGVUbzY0
KGZwclJlZywgc2NyYXRjaCk7CiAgICAgICAgICAgICBtYXRlcmlhbGl6ZURvdWJsZUVuY29kZU9m
ZnNldChkb3VibGVFbmNvZGVPZmZzZXRHUFJSZWcpOwogICAgICAgICAgICAgaml0LmFkZDY0KGRv
dWJsZUVuY29kZU9mZnNldEdQUlJlZywgc2NyYXRjaCk7CiAgICAgICAgICAgICBqaXQuc3RvcmU2
NChzY3JhdGNoLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSk7Cisj
ZWxzZQorICAgICAgICAgICAgaml0LnN0b3JlRG91YmxlKGZwclJlZywgY2FsbGVlRnJhbWUud2l0
aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCkpOworI2VuZGlmCiAgICAgICAgICAgICBjYWxsZWVG
cmFtZU9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOwogICAgICAgICAgICAgKyttYXJzaGFsbGVk
RlBSczsKICAgICAgICAgfTsKQEAgLTE4Niw3ICsyMDEsNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2Vt
YmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZN
JiB2bQogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgogICAgICAgICAgICAgY2FzZSBU
eXBlS2luZDo6STY0OiB7CiAgICAgICAgICAgICAgICAgLy8gU2tpcHBlZDogaGFuZGxlZCBhYm92
ZS4KLSAgICAgICAgICAgICAgICBpZiAobWFyc2hhbGxlZEdQUnMgPj0gd2FzbUNDLmdwckFyZ3Mu
c2l6ZSgpKQorICAgICAgICAgICAgICAgIGlmIChtYXJzaGFsbGVkR1BScyA+PSB3YXNtQ0MuanNy
QXJncy5zaXplKCkpCiAgICAgICAgICAgICAgICAgICAgIGZyT2Zmc2V0ICs9IHNpemVvZihSZWdp
c3Rlcik7CiAgICAgICAgICAgICAgICAgKyttYXJzaGFsbGVkR1BSczsKICAgICAgICAgICAgICAg
ICBjYWxsZWVGcmFtZU9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOwpAQCAtMTk1LDcgKzIxMCw3
IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5k
aW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpG
MzI6IHsKICAgICAgICAgICAgICAgICBGUFJSZWcgZnByUmVnOwogICAgICAgICAgICAgICAgIGlm
IChtYXJzaGFsbGVkRlBScyA8IHdhc21DQy5mcHJBcmdzLnNpemUoKSkKLSAgICAgICAgICAgICAg
ICAgICAgZnByUmVnID0gd2FzbUNDLmZwckFyZ3NbbWFyc2hhbGxlZEZQUnNdLmZwcigpOworICAg
ICAgICAgICAgICAgICAgICBmcHJSZWcgPSB3YXNtQ0MuZnByQXJnc1ttYXJzaGFsbGVkRlBSc107
CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGFs
cmVhZHkgc3BpbGxlZCBhbGwgYXJndW1lbnRzLCB0aGVzZSByZWdpc3RlcnMgYXJlIGF2YWlsYWJs
ZSBhcyBzY3JhdGNoLgogICAgICAgICAgICAgICAgICAgICBmcHJSZWcgPSBGUFJJbmZvOjphcmd1
bWVudEZQUjA7CkBAIC0yMDksNyArMjI0LDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAg
ICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2NDogewogICAgICAgICAgICAgICAgIEZQUlJlZyBm
cHJSZWc7CiAgICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRGUFJzIDwgd2FzbUNDLmZwckFy
Z3Muc2l6ZSgpKQotICAgICAgICAgICAgICAgICAgICBmcHJSZWcgPSB3YXNtQ0MuZnByQXJnc1tt
YXJzaGFsbGVkRlBSc10uZnByKCk7CisgICAgICAgICAgICAgICAgICAgIGZwclJlZyA9IHdhc21D
Qy5mcHJBcmdzW21hcnNoYWxsZWRGUFJzXTsKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAg
ICAgICAgICAgICAgICAgLy8gV2UndmUgYWxyZWFkeSBzcGlsbGVkIGFsbCBhcmd1bWVudHMsIHRo
ZXNlIHJlZ2lzdGVycyBhcmUgYXZhaWxhYmxlIGFzIHNjcmF0Y2guCiAgICAgICAgICAgICAgICAg
ICAgIGZwclJlZyA9IEZQUkluZm86OmFyZ3VtZW50RlBSMDsKQEAgLTIzMSwxMiArMjQ2LDE1IEBA
IEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5n
RmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgIHVuc2lnbmVkIGNhbGxlZUZyYW1lT2Zm
c2V0ID0gQ2FsbEZyYW1lU2xvdDo6Zmlyc3RBcmd1bWVudCAqIHN0YXRpY19jYXN0PGludD4oc2l6
ZW9mKFJlZ2lzdGVyKSk7CiAgICAgICAgIGZvciAodW5zaWduZWQgYXJnTnVtID0gMDsgYXJnTnVt
IDwgYXJnQ291bnQ7ICsrYXJnTnVtKSB7CiAgICAgICAgICAgICBpZiAoc2lnbmF0dXJlLmFyZ3Vt
ZW50KGFyZ051bSkuaXNJNjQoKSkgewotICAgICAgICAgICAgICAgIGppdC5sb2FkV2FzbUNvbnRl
eHRJbnN0YW5jZShHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgICAgICAgICAgICAgIGppdC5s
b2FkNjQoY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMSk7Ci0gICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0
eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+KEdQUkluZm86OmFyZ3VtZW50R1BSMCwgR1BS
SW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgICAgICAgICB1c2luZyBPcGVyYXRpb24gPSBk
ZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpOworICAgICAgICAgICAgICAgIGNvbnN0
ZXhwciBHUFJSZWcgd2FzbUluc3RhbmNlR1BSID0gcHJlZmVycmVkQXJndW1lbnRHUFI8T3BlcmF0
aW9uLCAxPigpOworICAgICAgICAgICAgICAgIGNvbnN0ZXhwciBKU1ZhbHVlUmVncyB2YWx1ZUpT
UiA9IHByZWZlcnJlZEFyZ3VtZW50SlNSPE9wZXJhdGlvbiwgMj4oKTsKKyAgICAgICAgICAgICAg
ICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uod2FzbUluc3RhbmNlR1BSKTsKKyAgICAgICAg
ICAgICAgICBqaXQubG9hZFZhbHVlKGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVP
ZmZzZXQpLCB2YWx1ZUpTUik7CisgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPE9w
ZXJhdGlvbj4od2FzbUluc3RhbmNlR1BSLCB2YWx1ZUpTUik7CiAgICAgICAgICAgICAgICAgYXV0
byBjYWxsID0gaml0LmNhbGwoT3BlcmF0aW9uUHRyVGFnKTsKICAgICAgICAgICAgICAgICBleGNl
cHRpb25DaGVja3MuYXBwZW5kKGppdC5lbWl0SnVtcElmRXhjZXB0aW9uKHZtKSk7Ci0gICAgICAg
ICAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGNhbGxlZUZyYW1l
LndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsKKyAgICAgICAgICAgICAgICBqaXQuc3Rv
cmVWYWx1ZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChj
YWxsZWVGcmFtZU9mZnNldCkpOwogICAgICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzayhbPV0g
KExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKICAgICAgICAgICAgICAgICAgICAgbGlua0J1ZmZl
ci5saW5rKGNhbGwsIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQ29udmVy
dFRvQmlnSW50KSk7CiAgICAgICAgICAgICAgICAgfSk7CkBAIC0yNDgsMTYgKzI2NiwyMiBAQCBF
eHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0Zh
aWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZShH
UFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRk
cmVzcyhHUFJJbmZvOjphcmd1bWVudEdQUjAsIEluc3RhbmNlOjpvZmZzZXRPZk93bmVyKCkpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRk
cmVzcyhHUFJJbmZvOjphcmd1bWVudEdQUjAsIEpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6b2Zmc2V0
T2ZNb2R1bGUoKSksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgaml0LmVtaXRQdXRUb0Nh
bGxGcmFtZUhlYWRlcihHUFJJbmZvOjphcmd1bWVudEdQUjAsIENhbGxGcmFtZVNsb3Q6OmNhbGxl
ZSk7Ci0KLSAgICBHUFJSZWcgaW1wb3J0SlNDZWxsR1BSUmVnID0gR1BSSW5mbzo6cmVnVDA7IC8v
IENhbGxlZSBuZWVkcyB0byBiZSBpbiByZWdUMCBmb3Igc2xvdyBwYXRoIGJlbG93LgorICAgIEND
YWxsSGVscGVyczo6QWRkcmVzcyBjYWxsZWVTbG90IHsgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAgKiBzaXplb2YoUmVnaXN0ZXIpIH07CisgICAgaml0
LnN0b3JlUHRyKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgY2FsbGVlU2xvdCk7CisjaWYgVVNFKEpT
VkFMVUUzMl82NCkKKyAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihK
U1ZhbHVlOjpDZWxsVGFnKSwgY2FsbGVlU2xvdC53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworI2Vu
ZGlmCiAKKyAgICAvLyBqc0FyZzEwIG1pZ2h0IG92ZXJsYXAgd2l0aCByZWdUMCwgc28gc3RvcmUg
J3RoaXMnIGFyZ3VtZW50IGZpcnN0CisgICAgaml0LnN0b3JlVmFsdWUoanNVbmRlZmluZWQoKSwg
Y2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90Ojp0aGlzQXJndW1lbnQgKiBzdGF0
aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSwganNBcmcxMCk7CisgICAgY29uc3RleHBy
IEdQUlJlZyBpbXBvcnRKU0NlbGxHUFJSZWcgPSBHUFJJbmZvOjpyZWdUMDsgLy8gQ2FsbGVlIG5l
ZWRzIHRvIGJlIGluIHJlZ1QwIGZvciBzbG93IHBhdGggYmVsb3cuCiAgICAgQVNTRVJUKCF3YXNt
Q0MuY2FsbGVlU2F2ZVJlZ2lzdGVycy5nZXQoaW1wb3J0SlNDZWxsR1BSUmVnKSk7CiAgICAgbWF0
ZXJpYWxpemVJbXBvcnRKU0NlbGwoaml0LCBpbXBvcnRJbmRleCwgaW1wb3J0SlNDZWxsR1BSUmVn
KTsKLQotICAgIGppdC5zdG9yZTY0KGltcG9ydEpTQ2VsbEdQUlJlZywgY2FsbGVlRnJhbWUud2l0
aE9mZnNldChDYWxsRnJhbWVTbG90OjpjYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihS
ZWdpc3RlcikpKSk7CisgICAgaml0LnN0b3JlUHRyKGltcG9ydEpTQ2VsbEdQUlJlZywgY2FsbGVl
RnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90OjpjYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+
KHNpemVvZihSZWdpc3RlcikpKSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBqaXQuc3Rv
cmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgY2FsbGVl
RnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90OjpjYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+
KHNpemVvZihSZWdpc3RlcikpICsgVGFnT2Zmc2V0KSk7CisjZW5kaWYKICAgICBqaXQuc3RvcmUz
MihKSVQ6OlRydXN0ZWRJbW0zMihudW1iZXJPZlBhcmFtZXRlcnMpLCBjYWxsZWVGcmFtZS53aXRo
T2Zmc2V0KENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzICogc3RhdGlj
X2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSArIFBheWxvYWRPZmZzZXQpKTsKLSAgICBqaXQu
c3RvcmU2NChKSVQ6OlRydXN0ZWRJbW02NChKU1ZhbHVlOjpWYWx1ZVVuZGVmaW5lZCksIGNhbGxl
ZUZyYW1lLndpdGhPZmZzZXQoQ2FsbEZyYW1lU2xvdDo6dGhpc0FyZ3VtZW50ICogc3RhdGljX2Nh
c3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOwogCiAgICAgLy8gRklYTUUgVGFpbCBjYWxsIGlm
IHRoZSB3YXNtIHJldHVybiB0eXBlIGlzIHZvaWQgYW5kIG5vIHJlZ2lzdGVycyB3ZXJlIHNwaWxs
ZWQuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU0ODgKIApAQCAt
MjgyLDExICszMDYsMTEgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRy
eVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgY2FzZSBU
eXBlS2luZDo6STY0OiB7CiAgICAgICAgICAgICAvLyBGSVhNRTogT3B0aW1pemUgSTY0IGV4dHJh
Y3Rpb24gZnJvbSBCaWdJbnQuCiAgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMDUzCi0gICAgICAgICAgICBHUFJSZWcgZGVzdCA9IHdhc21D
YWxsSW5mby5yZXN1bHRzWzBdLmdwcigpOwotICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRz
PGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCk+KEdQUkluZm86OnJldHVyblZhbHVlR1BS
KTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIGRlc3QgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1sw
XS5qc3IoKTsKKyAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRp
b25Db252ZXJ0VG9JNjQpPihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUik7CiAgICAgICAgICAgICBh
dXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25QdHJUYWcpOwogICAgICAgICAgICAgZXhjZXB0
aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1bXBJZkV4Y2VwdGlvbih2bSkpOwotICAgICAgICAg
ICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOworICAgICAgICAgICAg
aml0Lm1vdmVWYWx1ZVJlZ3MoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIGRlc3QpOwogCiAgICAg
ICAgICAgICBqaXQuYWRkTGlua1Rhc2soWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CiAg
ICAgICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKGNhbGwsIEZ1bmN0aW9uUHRyPE9wZXJhdGlv
blB0clRhZz4ob3BlcmF0aW9uQ29udmVydFRvSTY0KSk7CkBAIC0yOTYsMTggKzMyMCwyMSBAQCBF
eHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0Zh
aWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJMzI6IHsKICAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZG9uZTsKICAgICAgICAgICAgIENDYWxs
SGVscGVyczo6SnVtcExpc3Qgc2xvd1BhdGg7Ci0gICAgICAgICAgICBHUFJSZWcgZGVzdCA9IHdh
c21DYWxsSW5mby5yZXN1bHRzWzBdLmdwcigpOworICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgZGVz
dEpTUiA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmpzcigpOwogCi0gICAgICAgICAgICBzbG93
UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKEdQUkluZm86OnJldHVyblZhbHVlR1BS
LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpKTsKLSAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChq
aXQuYnJhbmNoSWZOb3RJbnQzMihKU1ZhbHVlUmVncyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiks
IERvTm90SGF2ZVRhZ1JlZ2lzdGVycykpOwotICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRv
V29yZChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CisgICAgICAgICAgICBzbG93UGF0
aC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBq
aXQuc2NyYXRjaFJlZ2lzdGVyKCksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycykpOworICAgICAgICAg
ICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdEludDMyKEpTUkluZm86OnJldHVyblZh
bHVlSlNSLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpKTsKKyAgICAgICAgICAgIGppdC56ZXJvRXh0
ZW5kMzJUb1dvcmQoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IucGF5bG9hZEdQUigpLCBkZXN0SlNS
LnBheWxvYWRHUFIoKSk7CiAgICAgICAgICAgICBkb25lLmFwcGVuZChqaXQuanVtcCgpKTsKIAog
ICAgICAgICAgICAgc2xvd1BhdGgubGluaygmaml0KTsKLSAgICAgICAgICAgIGppdC5zZXR1cEFy
Z3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9JMzIpPihHUFJJbmZvOjpyZXR1cm5W
YWx1ZUdQUik7CisgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0
aW9uQ29udmVydFRvSTMyKT4oSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpOwogICAgICAgICAgICAg
YXV0byBjYWxsID0gaml0LmNhbGwoT3BlcmF0aW9uUHRyVGFnKTsKICAgICAgICAgICAgIGV4Y2Vw
dGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRKdW1wSWZFeGNlcHRpb24odm0pKTsKLSAgICAgICAg
ICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBkZXN0KTsKKyAgICAgICAgICAg
IGppdC5tb3ZlKEpTUkluZm86OnJldHVyblZhbHVlSlNSLnBheWxvYWRHUFIoKSwgZGVzdEpTUi5w
YXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICBqaXQubW92
ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSwgZGVzdEpTUi50YWdHUFIoKSk7CisjZW5k
aWYKIAogICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKFs9XSAoTGlua0J1ZmZlciYgbGlua0J1
ZmZlcikgewogICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubGluayhjYWxsLCBGdW5jdGlvblB0
cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkNvbnZlcnRUb0kzMikpOwpAQCAtMzE3LDIzICsz
NDQsMjYgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4s
IEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjogewotICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpKdW1wTGlzdCBkb25lOwogICAgICAgICAgICAgRlBSUmVnIGRlc3QgPSB3YXNtQ2Fs
bEluZm8ucmVzdWx0c1swXS5mcHIoKTsKIAotICAgICAgICAgICAgYXV0byBub3RBTnVtYmVyID0g
aml0LmJyYW5jaElmTm90TnVtYmVyKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBEb05vdEhhdmVU
YWdSZWdpc3RlcnMpOwotICAgICAgICAgICAgYXV0byBpc0RvdWJsZSA9IGppdC5icmFuY2hJZk5v
dEludDMyKEpTVmFsdWVSZWdzKEdQUkluZm86OnJldHVyblZhbHVlR1BSKSwgRG9Ob3RIYXZlVGFn
UmVnaXN0ZXJzKTsKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZG9uZTsKKyAg
ICAgICAgICAgIGF1dG8gbm90QU51bWJlciA9IGppdC5icmFuY2hJZk5vdE51bWJlcihKU1JJbmZv
OjpyZXR1cm5WYWx1ZUpTUiwgaml0LnNjcmF0Y2hSZWdpc3RlcigpLCBEb05vdEhhdmVUYWdSZWdp
c3RlcnMpOworICAgICAgICAgICAgYXV0byBpc0RvdWJsZSA9IGppdC5icmFuY2hJZk5vdEludDMy
KEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwogICAgICAg
ICAgICAgLy8gV2UncmUgYW4gaW50MzIKLSAgICAgICAgICAgIGppdC5zaWduRXh0ZW5kMzJUb1B0
cihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwotICAg
ICAgICAgICAgaml0LmNvbnZlcnRJbnQ2NFRvRmxvYXQoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIs
IGRlc3QpOworICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRmxvYXQoR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIsIGRlc3QpOwogICAgICAgICAgICAgZG9uZS5hcHBlbmQoaml0Lmp1bXAoKSk7
CiAKICAgICAgICAgICAgIGlzRG91YmxlLmxpbmsoJmppdCk7CisjaWYgVVNFKEpTVkFMVUU2NCkK
ICAgICAgICAgICAgIGppdC51bmJveERvdWJsZVdpdGhvdXRBc3NlcnRpb25zKEdQUkluZm86OnJl
dHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUjIsIGRlc3QsIERvTm90SGF2ZVRh
Z1JlZ2lzdGVycyk7CisjZWxzZQorICAgICAgICAgICAgaml0LnVuYm94RG91YmxlKEpTUkluZm86
OnJldHVyblZhbHVlSlNSLCBkZXN0KTsKKyNlbmRpZgogICAgICAgICAgICAgaml0LmNvbnZlcnRE
b3VibGVUb0Zsb2F0KGRlc3QsIGRlc3QpOwogICAgICAgICAgICAgZG9uZS5hcHBlbmQoaml0Lmp1
bXAoKSk7CiAKICAgICAgICAgICAgIG5vdEFOdW1iZXIubGluaygmaml0KTsKLSAgICAgICAgICAg
IGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9GMzIpPihHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVj
bHR5cGUob3BlcmF0aW9uQ29udmVydFRvRjMyKT4oSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpOwog
ICAgICAgICAgICAgYXV0byBjYWxsID0gaml0LmNhbGwoT3BlcmF0aW9uUHRyVGFnKTsKICAgICAg
ICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRKdW1wSWZFeGNlcHRpb24odm0p
KTsKICAgICAgICAgICAgIGppdC5tb3ZlKEZQUkluZm86OnJldHVyblZhbHVlRlBSICwgZGVzdCk7
CkBAIC0zNDYsMjIgKzM3NiwyNSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2Fz
bUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OiB7Ci0gICAg
ICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CiAgICAgICAgICAgICBGUFJSZWcg
ZGVzdCA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmZwcigpOworICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpKdW1wTGlzdCBkb25lOwogCi0gICAgICAgICAgICBhdXRvIG5vdEFOdW1iZXIgPSBq
aXQuYnJhbmNoSWZOb3ROdW1iZXIoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIERvTm90SGF2ZVRh
Z1JlZ2lzdGVycyk7Ci0gICAgICAgICAgICBhdXRvIGlzRG91YmxlID0gaml0LmJyYW5jaElmTm90
SW50MzIoSlNWYWx1ZVJlZ3MoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpLCBEb05vdEhhdmVUYWdS
ZWdpc3RlcnMpOworICAgICAgICAgICAgYXV0byBub3RBTnVtYmVyID0gaml0LmJyYW5jaElmTm90
TnVtYmVyKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBqaXQuc2NyYXRjaFJlZ2lzdGVyKCksIERv
Tm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAgICBhdXRvIGlzRG91YmxlID0gaml0LmJy
YW5jaElmTm90SW50MzIoSlNWYWx1ZVJlZ3MoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpLCBEb05v
dEhhdmVUYWdSZWdpc3RlcnMpOwogICAgICAgICAgICAgLy8gV2UncmUgYW4gaW50MzIKLSAgICAg
ICAgICAgIGppdC5zaWduRXh0ZW5kMzJUb1B0cihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BS
SW5mbzo6cmV0dXJuVmFsdWVHUFIpOwotICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQ2NFRvRG91
YmxlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBkZXN0KTsKKyAgICAgICAgICAgIGppdC5jb252
ZXJ0SW50MzJUb0RvdWJsZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CiAgICAgICAg
ICAgICBkb25lLmFwcGVuZChqaXQuanVtcCgpKTsKIAogICAgICAgICAgICAgaXNEb3VibGUubGlu
aygmaml0KTsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgaml0LnVuYm94RG91Ymxl
V2l0aG91dEFzc2VydGlvbnMoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJldHVy
blZhbHVlR1BSMiwgZGVzdCwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyNlbHNlCisgICAgICAg
ICAgICBqaXQudW5ib3hEb3VibGUoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIGRlc3QpOworI2Vu
ZGlmCiAgICAgICAgICAgICBkb25lLmFwcGVuZChqaXQuanVtcCgpKTsKIAogICAgICAgICAgICAg
bm90QU51bWJlci5saW5rKCZqaXQpOwotICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRl
Y2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0Y2NCk+KEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsK
KyAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0
VG9GNjQpPihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUik7CiAgICAgICAgICAgICBhdXRvIGNhbGwg
PSBqaXQuY2FsbChPcGVyYXRpb25QdHJUYWcpOwogICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2tz
LmFwcGVuZChqaXQuZW1pdEp1bXBJZkV4Y2VwdGlvbih2bSkpOwogICAgICAgICAgICAgaml0Lm1v
dmUoRlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIsIGRlc3QpOwpAQCAtMzc1LDcgKzQwOCw3IEBAIEV4
cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFp
bHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDogIHsKICAg
ICAgICAgICAgIGlmIChXYXNtOjppc0Z1bmNyZWYocmV0dXJuVHlwZSkgfHwgV2FzbTo6aXNFeHRl
cm5yZWYocmV0dXJuVHlwZSkpCi0gICAgICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIsIHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmdwcigpKTsKKyAgICAgICAgICAg
ICAgICBqaXQubW92ZVZhbHVlUmVncyhKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgd2FzbUNhbGxJ
bmZvLnJlc3VsdHNbMF0uanNyKCkpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
IC8vIEZvciB0aGUgSmF2YVNjcmlwdCBlbWJlZGRpbmcsIGltcG9ydHMgd2l0aCB0aGVzZSB0eXBl
cyBpbiB0aGVpciBzaWduYXR1cmUgcmV0dXJuIGFyZSBhIFdlYkFzc2VtYmx5Lk1vZHVsZSB2YWxp
ZGF0aW9uIGVycm9yLgogICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7CkBAIC0zODksMTIgKzQyMiwyOSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8
V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAg
ICAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHdhc21Db250ZXh0SW5zdGFuY2VHUFIp
OwogICAgICAgICB9CiAKLSAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJh
dGlvbkl0ZXJhdGVSZXN1bHRzKT4od2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tUHRyKCZzaWduYXR1cmUpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgQ0Nh
bGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgQ0NhbGxIZWxwZXJzOjpmcmFtZVBvaW50
ZXJSZWdpc3Rlcik7CisgICAgICAgIGNvbnN0ZXhwciBHUFJSZWcgc2F2ZWRSZXN1bHRzR1BSID0g
cHJlZmVycmVkQXJndW1lbnRHUFI8ZGVjbHR5cGUob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMpLCA0
PigpOworICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
LCBzYXZlZFJlc3VsdHNHUFIpOworICAgICAgICBpZiBjb25zdGV4cHIgKG1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICAgICAgaml0LnN1YlB0cihDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIENDYWxsSGVscGVyczo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KG5vT3ZlcmxhcChz
YXZlZFJlc3VsdHNHUFIsIEpTUkluZm86OnJldHVyblZhbHVlSlNSKSk7CisgICAgICAgIEFTU0VS
VCh3YXNtQ29udGV4dEluc3RhbmNlR1BSICE9IHNhdmVkUmVzdWx0c0dQUik7CisgICAgICAgIGpp
dC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25JdGVyYXRlUmVzdWx0cyk+KHdhc21D
b250ZXh0SW5zdGFuY2VHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigmc2lnbmF0dXJl
KSwgSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIHNhdmVkUmVzdWx0c0dQUiwgQ0NhbGxIZWxwZXJz
OjpmcmFtZVBvaW50ZXJSZWdpc3Rlcik7CiAgICAgICAgIGppdC5jYWxsT3BlcmF0aW9uKEZ1bmN0
aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMpKTsKKyAgICAg
ICAgaWYgY29uc3RleHByIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAg
ICAgIGppdC5hZGRQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRG
b3JTbG93UGF0aENhbGwpLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKwog
ICAgICAgICBleGNlcHRpb25DaGVja3MuYXBwZW5kKGppdC5lbWl0SnVtcElmRXhjZXB0aW9uKHZt
KSk7CiAKLSAgICAgICAgZm9yIChSZWdpc3RlckF0T2Zmc2V0IGxvY2F0aW9uIDogc2F2ZWRSZXN1
bHRSZWdpc3RlcnMpCi0gICAgICAgICAgICBqaXQubG9hZDY0VG9SZWcoQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIGxvY2F0aW9uLm9mZnNl
dCgpKSwgbG9jYXRpb24ucmVnKCkpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
c2lnbmF0dXJlLnJldHVybkNvdW50KCk7ICsraSkgeworICAgICAgICAgICAgVmFsdWVMb2NhdGlv
biBsb2MgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1tpXTsKKyAgICAgICAgICAgIGlmIChsb2MuaXNH
UFIoKSkgeworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgQVNTRVJUKHNh
dmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgp
ICsgNCA9PSBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS50YWdHUFIoKSktPm9m
ZnNldCgpKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVz
dWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpKSwgbG9j
LmpzcigpKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobG9jLmlzRlBSKCkpCisgICAgICAgICAg
ICAgICAgaml0LmxvYWREb3VibGUoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmZwcigp
KS0+b2Zmc2V0KCkpLCBsb2MuZnByKCkpOworICAgICAgICB9CiAgICAgfQogCiAgICAgaml0LmVt
aXRGdW5jdGlvbkVwaWxvZ3VlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCmluZGV4IDg4OTEyMDdkYzEyMDNiNTE5MTM2
NDE1ZmQ0MDM4YzVmNzNiOTBjOTMuLmVlYjY4MzRmZDhhZDMyNmZmMDIzYjAxZTlmYmU5MGFhY2Jm
ODZhOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5RnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5RnVuY3Rpb24uY3BwCkBAIC0xNTcsNiArMTU3LDkgQEAgcHRyZGlmZl90IFdlYkFzc2Vt
Ymx5RnVuY3Rpb246OnByZXZpb3VzSW5zdGFuY2VPZmZzZXQoKSBjb25zdAogewogICAgIHB0cmRp
ZmZfdCByZXN1bHQgPSBjYWxsZWVTYXZlcygpLm51bWJlck9mU2V0UmVnaXN0ZXJzKCkgKiBzaXpl
b2YoQ1BVUmVnaXN0ZXIpOwogICAgIHJlc3VsdCA9IC1yZXN1bHQgLSBzaXplb2YoQ1BVUmVnaXN0
ZXIpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgQVNTRVJUKCFjYWxsZWVTYXZlcygpLm51
bWJlck9mU2V0RlBScygpKTsgLy8gQmVjYXVzZSBGUFJzIGFyZSB3aWRlciB0aGFuIHNpemVvZihD
UFVSZWdpc3RlcikKKyNlbmRpZgogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgcHRyZGlmZl90IG1p
bk9mZnNldCA9IDE7CiAgICAgZm9yIChjb25zdCBSZWdpc3RlckF0T2Zmc2V0JiByZWdBdE9mZnNl
dCA6IHVzZWRDYWxsZWVTYXZlUmVnaXN0ZXJzKCkpIHsKQEAgLTE4NSwxNyArMTg4LDE1IEBAIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpq
c0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgY29uc3QgYXV0byYgcGlubmVkUmVncyA9IFdhc206
OlBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCk7CiAgICAgUmVnaXN0ZXJBdE9mZnNldExpc3QgcmVn
aXN0ZXJzVG9TcGlsbCA9IHVzZWRDYWxsZWVTYXZlUmVnaXN0ZXJzKCk7CiAKLSAgICBhdXRvJiBt
b2R1bGVJbmZvcm1hdGlvbiA9IGluc3RhbmNlKCktPmluc3RhbmNlKCkubW9kdWxlKCkubW9kdWxl
SW5mb3JtYXRpb24oKTsKLQogICAgIGNvbnN0IFdhc206Oldhc21DYWxsaW5nQ29udmVudGlvbiYg
d2FzbUNDID0gV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKCk7CiAgICAgV2FzbTo6Q2FsbElu
Zm9ybWF0aW9uIHdhc21DYWxsSW5mbyA9IHdhc21DQy5jYWxsSW5mb3JtYXRpb25Gb3Ioc2lnbmF0
dXJlKTsKICAgICBXYXNtOjpDYWxsSW5mb3JtYXRpb24ganNDYWxsSW5mbyA9IFdhc206OmpzQ2Fs
bGluZ0NvbnZlbnRpb24oKS5jYWxsSW5mb3JtYXRpb25Gb3Ioc2lnbmF0dXJlLCBXYXNtOjpDYWxs
Um9sZTo6Q2FsbGVlKTsKICAgICBSZWdpc3RlckF0T2Zmc2V0TGlzdCBzYXZlZFJlc3VsdFJlZ2lz
dGVycyA9IHdhc21DYWxsSW5mby5jb21wdXRlUmVzdWx0c09mZnNldExpc3QoKTsKIAotICAgIHVu
c2lnbmVkIHRvdGFsRnJhbWVTaXplID0gcmVnaXN0ZXJzVG9TcGlsbC5zaXplKCkgKiBzaXplb2Yo
Q1BVUmVnaXN0ZXIpOworICAgIHVuc2lnbmVkIHRvdGFsRnJhbWVTaXplID0gcmVnaXN0ZXJzVG9T
cGlsbC5zaXplT2ZBcmVhSW5CeXRlcygpOwogICAgIHRvdGFsRnJhbWVTaXplICs9IHNpemVvZihD
UFVSZWdpc3Rlcik7IC8vIFNsb3QgZm9yIHRoZSBWTSdzIHByZXZpb3VzIHdhc20gaW5zdGFuY2Uu
CiAgICAgdG90YWxGcmFtZVNpemUgKz0gd2FzbUNhbGxJbmZvLmhlYWRlckFuZEFyZ3VtZW50U3Rh
Y2tTaXplSW5CeXRlczsKLSAgICB0b3RhbEZyYW1lU2l6ZSArPSBzYXZlZFJlc3VsdFJlZ2lzdGVy
cy5zaXplKCkgKiBzaXplb2YoQ1BVUmVnaXN0ZXIpOworICAgIHRvdGFsRnJhbWVTaXplICs9IHNh
dmVkUmVzdWx0UmVnaXN0ZXJzLnNpemVPZkFyZWFJbkJ5dGVzKCk7CiAKICAgICAvLyBGSVhNRTog
T3B0aW1pemUgV2FzbSBmdW5jdGlvbiBjYWxsIGV2ZW4gaWYgYXJndW1lbnRzIGluY2x1ZGUgSTY0
LgogICAgIC8vIFRoaXMgcmVxdWlyZXMgSTY0IGV4dHJhY3Rpb24gZnJvbSBCaWdJbnQuCkBAIC0y
MTUsOSArMjE2LDE0IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJB
c3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgIGppdC5zdG9y
ZVB0cihyZWcsIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rl
ciwgb2Zmc2V0KSk7CiAgICAgfQogCi0gICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBXYXNtOjp3YXNt
Q2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdOwotICAgIGJvb2wgc3Rh
Y2tMaW1pdEdQUklzQ2xvYmJlcmVkID0gZmFsc2U7CisgICAgSlNWYWx1ZVJlZ3Mgc2NyYXRjaEpT
UiB7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgV2FzbTo6d2FzbUNhbGxpbmdDb252
ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1syXSwKKyNlbmRpZgorICAgICAgICBXYXNtOjp3
YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdCisgICAgfTsKICAg
ICBHUFJSZWcgc3RhY2tMaW1pdEdQUiA9IFdhc206Ondhc21DYWxsaW5nQ29udmVudGlvbigpLnBy
b2xvZ3VlU2NyYXRjaEdQUnNbMF07CisgICAgYm9vbCBzdGFja0xpbWl0R1BSSXNDbG9iYmVyZWQg
PSBmYWxzZTsKICAgICBqaXQubG9hZFB0cih2bS5hZGRyZXNzT2ZTb2Z0U3RhY2tMaW1pdCgpLCBz
dGFja0xpbWl0R1BSKTsKIAogICAgIENDYWxsSGVscGVyczo6SnVtcExpc3Qgc2xvd1BhdGg7CkBA
IC0yMzYsNyArMjQyLDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdl
YkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAgICAgaml0LmVt
aXRNYXRlcmlhbGl6ZVRhZ0NoZWNrUmVnaXN0ZXJzKCk7CiAKICAgICAvLyBMb29wIGJhY2t3YXJk
cyBzbyB3ZSBjYW4gdXNlIHRoZSBmaXJzdCBmbG9hdGluZyBwb2ludCBhcmd1bWVudCBhcyBhIHNj
cmF0Y2guCi0gICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRp
b24oKS5mcHJBcmdzWzBdLmZwcigpOworICAgIEZQUlJlZyBzY3JhdGNoRlBSID0gV2FzbTo6d2Fz
bUNhbGxpbmdDb252ZW50aW9uKCkuZnByQXJnc1swXTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBz
aWduYXR1cmUuYXJndW1lbnRDb3VudCgpOyBpLS07KSB7CiAgICAgICAgIENDYWxsSGVscGVyczo6
QWRkcmVzcyBjYWxsZWVGcmFtZSA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxl
cjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIDApOwogICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MganNQYXJhbShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwganNDYWxsSW5mby5wYXJhbXNb
aV0ub2Zmc2V0RnJvbUZQKCkpOwpAQCAtMjQ1LDEyICsyNTEsMjAgQEAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9p
bnRTbG93KCkKICAgICAgICAgYXV0byB0eXBlID0gc2lnbmF0dXJlLmFyZ3VtZW50KGkpOwogICAg
ICAgICBzd2l0Y2ggKHR5cGUua2luZCkgewogICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpJ
MzI6IHsKLSAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQUik7Ci0gICAg
ICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIoc2NyYXRjaEdQUikp
OwotICAgICAgICAgICAgaWYgKGlzU3RhY2spCi0gICAgICAgICAgICAgICAgaml0LnN0b3JlMzIo
c2NyYXRjaEdQUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ld
Lm9mZnNldEZyb21TUCgpKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgaml0
Lnplcm9FeHRlbmQzMlRvV29yZChzY3JhdGNoR1BSLCB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmdw
cigpKTsKKyAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQYXJhbSwgc2NyYXRjaEpTUik7Cisg
ICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIoc2NyYXRjaEpT
UikpOworICAgICAgICAgICAgaWYgKGlzU3RhY2spIHsKKyAgICAgICAgICAgICAgICBDQ2FsbEhl
bHBlcnM6OkFkZHJlc3MgYWRkciB7IGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZv
LnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkgfTsKKyAgICAgICAgICAgICAgICBqaXQuc3RvcmUz
MihzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgYWRkci53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQp
KTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgIGppdC5zdG9yZTMyKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCBhZGRyLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7
CisjZW5kaWYKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaml0Lnplcm9F
eHRlbmQzMlRvV29yZChzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgd2FzbUNhbGxJbmZvLnBhcmFt
c1tpXS5qc3IoKS5wYXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAg
ICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMCksIHdhc21DYWxs
SW5mby5wYXJhbXNbaV0uanNyKCkudGFnR1BSKCkpOworI2VuZGlmCisgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5k
OjpSZWY6CkBAIC0yNTksMjcgKzI3MywyNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRy
eVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAg
ICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpFeHRlcm5yZWY6IHsKICAgICAgICAgICAgIGlmICgh
V2FzbTo6aXNFeHRlcm5yZWYodHlwZSkpIHsKICAgICAgICAgICAgICAgICAvLyBFbnN1cmUgd2Ug
aGF2ZSBhIFdBU00gZXhwb3J0ZWQgZnVuY3Rpb24uCi0gICAgICAgICAgICAgICAgaml0LmxvYWQ2
NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAgICBhdXRvIGlzTnVsbCA9IGpp
dC5icmFuY2hJZk51bGwoc2NyYXRjaEdQUik7CisgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1
ZShqc1BhcmFtLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAgICAgICBhdXRvIGlzTnVsbCA9IGpp
dC5icmFuY2hJZk51bGwoc2NyYXRjaEpTUik7CiAgICAgICAgICAgICAgICAgaWYgKCF0eXBlLmlz
TnVsbGFibGUoKSkKICAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGlzTnVsbCk7
Ci0gICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdENlbGwoc2Ny
YXRjaEdQUikpOworICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZO
b3RDZWxsKHNjcmF0Y2hKU1IpKTsKIAogICAgICAgICAgICAgICAgIHN0YWNrTGltaXRHUFJJc0Ns
b2JiZXJlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgaml0LmVtaXRMb2FkU3RydWN0dXJlKHZt
LCBzY3JhdGNoR1BSLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihD
Q2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgU3RydWN0dXJlOjpjbGFzc0luZm9PZmZz
ZXQoKSksIHNjcmF0Y2hHUFIpOworICAgICAgICAgICAgICAgIGppdC5lbWl0TG9hZFN0cnVjdHVy
ZSh2bSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsK
KyAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRj
aEpTUi5wYXlsb2FkR1BSKCksIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBzY3JhdGNo
SlNSLnBheWxvYWRHUFIoKSk7CiAKICAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6
aXNfZmluYWw8V2ViQXNzZW1ibHlGdW5jdGlvbj46OnZhbHVlLCAiV2UgZG8gbm90IGNoZWNrIGZv
ciBzdWJ0eXBlcyBiZWxvdyIpOwogICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjpp
c19maW5hbDxXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbj46OnZhbHVlLCAiV2UgZG8gbm90IGNo
ZWNrIGZvciBzdWJ0eXBlcyBiZWxvdyIpOwogCi0gICAgICAgICAgICAgICAgYXV0byBpc1dhc21G
dW5jdGlvbiA9IGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgc2NyYXRjaEdQUiwg
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKFdlYkFzc2VtYmx5RnVuY3Rpb246OmluZm8oKSkp
OwotICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoUHRyKENDYWxsSGVs
cGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihX
ZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6aW5mbygpKSkpOworICAgICAgICAgICAgICAgIGF1
dG8gaXNXYXNtRnVuY3Rpb24gPSBqaXQuYnJhbmNoUHRyKENDYWxsSGVscGVyczo6RXF1YWwsIHNj
cmF0Y2hKU1IucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoV2ViQXNz
ZW1ibHlGdW5jdGlvbjo6aW5mbygpKSk7CisgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5k
KGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEpTUi5wYXlsb2Fk
R1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihXZWJBc3NlbWJseVdyYXBwZXJGdW5j
dGlvbjo6aW5mbygpKSkpOwogCiAgICAgICAgICAgICAgICAgaXNXYXNtRnVuY3Rpb24ubGluaygm
aml0KTsKICAgICAgICAgICAgICAgICBpZiAoV2FzbTo6aXNSZWZXaXRoVHlwZUluZGV4KHR5cGUp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQUik7
Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhz
Y3JhdGNoR1BSLCBXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZTo6b2Zmc2V0T2ZTaWduYXR1cmVJbmRl
eCgpKSwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChq
aXQuYnJhbmNoUHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbVB0cih0eXBlLmluZGV4KSkpOworICAgICAgICAgICAgICAgICAgICBq
aXQubG9hZFB0cihqc1BhcmFtLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CisgICAgICAgICAg
ICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoSlNSLnBh
eWxvYWRHUFIoKSwgV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2U6Om9mZnNldE9mU2lnbmF0dXJlSW5k
ZXgoKSksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAgICAgICAgc2xv
d1BhdGguYXBwZW5kKGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRj
aEpTUi5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih0eXBlLmluZGV4
KSkpOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlmICh0eXBlLmlzTnVs
bGFibGUoKSkKQEAgLTI4NywxNSArMzAxLDE1IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0Vu
dHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChpc1N0YWNrKSB7Ci0gICAgICAgICAgICAg
ICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgICAgICAgICBqaXQu
bG9hZFZhbHVlKGpzUGFyYW0sIHNjcmF0Y2hKU1IpOwogICAgICAgICAgICAgICAgIGlmICghdHlw
ZS5pc051bGxhYmxlKCkpCi0gICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQu
YnJhbmNoSWZOdWxsKHNjcmF0Y2hHUFIpKTsKLSAgICAgICAgICAgICAgICBqaXQuc3RvcmU2NChz
Y3JhdGNoR1BSLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0u
b2Zmc2V0RnJvbVNQKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGpp
dC5icmFuY2hJZk51bGwoc2NyYXRjaEpTUikpOworICAgICAgICAgICAgICAgIGppdC5zdG9yZVZh
bHVlKHNjcmF0Y2hKU1IsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBhcmFt
c1tpXS5vZmZzZXRGcm9tU1AoKSkpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICBhdXRvIGV4dGVybkdQUiA9IHdhc21DYWxsSW5mby5wYXJhbXNbaV0uZ3ByKCk7Ci0gICAg
ICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBleHRlcm5HUFIpOworICAgICAgICAgICAg
ICAgIGF1dG8gZXh0ZXJuSlNSID0gd2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5qc3IoKTsKKyAgICAg
ICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpzUGFyYW0sIGV4dGVybkpTUik7CiAgICAgICAgICAg
ICAgICAgaWYgKCF0eXBlLmlzTnVsbGFibGUoKSkKLSAgICAgICAgICAgICAgICAgICAgc2xvd1Bh
dGguYXBwZW5kKGppdC5icmFuY2hJZk51bGwoZXh0ZXJuR1BSKSk7CisgICAgICAgICAgICAgICAg
ICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOdWxsKGV4dGVybkpTUikpOwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTMwMywzNSArMzE3LDQy
IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0
aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6
OkY2NDogewogICAgICAgICAgICAgaWYgKCFpc1N0YWNrKQogICAgICAgICAgICAgICAgIHNjcmF0
Y2hGUFIgPSB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmZwcigpOwotICAgICAgICAgICAgYXV0byBt
b3ZlVG9EZXN0aW5hdGlvbiA9IFsmXSAoKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGlzU3RhY2sp
IHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHNpZ25hdHVyZS5hcmd1bWVudChpKS5pc0YzMigp
KQotICAgICAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlRmxvYXQoc2NyYXRjaEZQUiwgY2Fs
bGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgp
KSk7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIGpp
dC5zdG9yZURvdWJsZShzY3JhdGNoRlBSLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21DYWxs
SW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB9OworICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShqc1BhcmFtLCBzY3JhdGNoSlNS
KTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5i
cmFuY2hJZk5vdE51bWJlcihzY3JhdGNoSlNSLCBJbnZhbGlkR1BSUmVnKSk7CisjZWxpZiBVU0Uo
SlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgc3RhY2tMaW1pdEdQUklzQ2xvYmJlcmVkID0gdHJ1
ZTsKKyAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIoc2Ny
YXRjaEpTUiwgc3RhY2tMaW1pdEdQUikpOworI2VuZGlmCisgICAgICAgICAgICBhdXRvIGlzSW50
MzIgPSBqaXQuYnJhbmNoSWZJbnQzMihzY3JhdGNoSlNSKTsKIAotICAgICAgICAgICAgaml0Lmxv
YWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChq
aXQuYnJhbmNoSWZOb3ROdW1iZXIoc2NyYXRjaEdQUikpOwotICAgICAgICAgICAgYXV0byBpc0lu
dDMyID0gaml0LmJyYW5jaElmSW50MzIoc2NyYXRjaEdQUik7Ci0KLSAgICAgICAgICAgIGppdC51
bmJveERvdWJsZShzY3JhdGNoR1BSLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSKTsKKyNpZiBVU0Uo
SlNWQUxVRTY0KQorICAgICAgICAgICAgaml0LnVuYm94RG91YmxlKHNjcmF0Y2hKU1IucGF5bG9h
ZEdQUigpLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgc2NyYXRjaEZQUik7CisjZWxpZiBVU0Uo
SlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgaml0LnVuYm94RG91YmxlKHNjcmF0Y2hKU1IsIHNj
cmF0Y2hGUFIpOworI2VuZGlmCiAgICAgICAgICAgICBpZiAoc2lnbmF0dXJlLmFyZ3VtZW50KGkp
LmlzRjMyKCkpCiAgICAgICAgICAgICAgICAgaml0LmNvbnZlcnREb3VibGVUb0Zsb2F0KHNjcmF0
Y2hGUFIsIHNjcmF0Y2hGUFIpOwotICAgICAgICAgICAgbW92ZVRvRGVzdGluYXRpb24oKTsKICAg
ICAgICAgICAgIGF1dG8gZG9uZSA9IGppdC5qdW1wKCk7CiAKICAgICAgICAgICAgIGlzSW50MzIu
bGluaygmaml0KTsKICAgICAgICAgICAgIGlmIChzaWduYXR1cmUuYXJndW1lbnQoaSkuaXNGMzIo
KSkgewotICAgICAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0Zsb2F0KHNjcmF0Y2hHUFIs
IHNjcmF0Y2hGUFIpOwotICAgICAgICAgICAgICAgIG1vdmVUb0Rlc3RpbmF0aW9uKCk7CisgICAg
ICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRmxvYXQoc2NyYXRjaEpTUi5wYXlsb2FkR1BS
KCksIHNjcmF0Y2hGUFIpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBq
aXQuY29udmVydEludDMyVG9Eb3VibGUoc2NyYXRjaEdQUiwgc2NyYXRjaEZQUik7Ci0gICAgICAg
ICAgICAgICAgbW92ZVRvRGVzdGluYXRpb24oKTsKKyAgICAgICAgICAgICAgICBqaXQuY29udmVy
dEludDMyVG9Eb3VibGUoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hGUFIpOwogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgZG9uZS5saW5rKCZqaXQpOwogCisgICAgICAgICAgICBk
b25lLmxpbmsoJmppdCk7CisgICAgICAgICAgICBpZiAoaXNTdGFjaykgeworICAgICAgICAgICAg
ICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBhZGRyIHsgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3
YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSB9OworICAgICAgICAgICAgICAg
IGlmIChzaWduYXR1cmUuYXJndW1lbnQoaSkuaXNGMzIoKSkgeworICAgICAgICAgICAgICAgICAg
ICBqaXQuc3RvcmVGbG9hdChzY3JhdGNoRlBSLCBhZGRyLndpdGhPZmZzZXQoUGF5bG9hZE9mZnNl
dCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9y
ZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCBhZGRyLndpdGhPZmZzZXQoVGFnT2Zm
c2V0KSk7CisjZW5kaWYKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgaml0LnN0b3JlRG91YmxlKHNjcmF0Y2hGUFIsIGFkZHIpOworICAgICAgICAgICAgfQogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKQEAgLTM0Miw0MiAr
MzYzLDQ0IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJs
eUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgLy8gQXQgdGhpcyBwb2ludCwg
d2UncmUgY29tbWl0dGVkIHRvIGRvaW5nIGEgZmFzdCBjYWxsLgogCiAgICAgaWYgKFdhc206OkNv
bnRleHQ6OnVzZUZhc3RUTFMoKSkgCi0gICAgICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5j
ZShzY3JhdGNoR1BSKTsKKyAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHNjcmF0
Y2hKU1IucGF5bG9hZEdQUigpKTsKICAgICBlbHNlCi0gICAgICAgIGppdC5sb2FkUHRyKHZtLndh
c21Db250ZXh0LnBvaW50ZXJUb0luc3RhbmNlKCksIHNjcmF0Y2hHUFIpOworICAgICAgICBqaXQu
bG9hZFB0cih2bS53YXNtQ29udGV4dC5wb2ludGVyVG9JbnN0YW5jZSgpLCBzY3JhdGNoSlNSLnBh
eWxvYWRHUFIoKSk7CiAgICAgcHRyZGlmZl90IHByZXZpb3VzSW5zdGFuY2VPZmZzZXQgPSB0aGlz
LT5wcmV2aW91c0luc3RhbmNlT2Zmc2V0KCk7Ci0gICAgaml0LnN0b3JlUHRyKHNjcmF0Y2hHUFIs
IENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgcHJldmlv
dXNJbnN0YW5jZU9mZnNldCkpOworICAgIGppdC5zdG9yZVB0cihzY3JhdGNoSlNSLnBheWxvYWRH
UFIoKSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBw
cmV2aW91c0luc3RhbmNlT2Zmc2V0KSk7CiAKLSAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW1QdHIoJmluc3RhbmNlKCktPmluc3RhbmNlKCkpLCBzY3JhdGNoR1BSKTsKKyAgICBq
aXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoJmluc3RhbmNlKCktPmluc3RhbmNl
KCkpLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAgICAgaWYgKFdhc206OkNvbnRleHQ6OnVz
ZUZhc3RUTFMoKSkgCi0gICAgICAgIGppdC5zdG9yZVdhc21Db250ZXh0SW5zdGFuY2Uoc2NyYXRj
aEdQUik7CisgICAgICAgIGppdC5zdG9yZVdhc21Db250ZXh0SW5zdGFuY2Uoc2NyYXRjaEpTUi5w
YXlsb2FkR1BSKCkpOwogICAgIGVsc2UgewotICAgICAgICBqaXQubW92ZShzY3JhdGNoR1BSLCBw
aW5uZWRSZWdzLndhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyKTsKLSAgICAgICAgaml0LnN0b3Jl
UHRyKHNjcmF0Y2hHUFIsIHZtLndhc21Db250ZXh0LnBvaW50ZXJUb0luc3RhbmNlKCkpOworICAg
ICAgICBqaXQubW92ZShzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgcGlubmVkUmVncy53YXNtQ29u
dGV4dEluc3RhbmNlUG9pbnRlcik7CisgICAgICAgIGppdC5zdG9yZVB0cihzY3JhdGNoSlNSLnBh
eWxvYWRHUFIoKSwgdm0ud2FzbUNvbnRleHQucG9pbnRlclRvSW5zdGFuY2UoKSk7CiAgICAgfQog
ICAgIGlmIChzdGFja0xpbWl0R1BSSXNDbG9iYmVyZWQpCiAgICAgICAgIGppdC5sb2FkUHRyKHZt
LmFkZHJlc3NPZlNvZnRTdGFja0xpbWl0KCksIHN0YWNrTGltaXRHUFIpOwotICAgIGppdC5zdG9y
ZVB0cihzdGFja0xpbWl0R1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgV2Fz
bTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkU3RhY2tMaW1pdCgpKSk7CisgICAgaml0LnN0b3Jl
UHRyKHN0YWNrTGltaXRHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoSlNSLnBheWxv
YWRHUFIoKSwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkU3RhY2tMaW1pdCgpKSk7CiAK
LSAgICBpZiAoISFtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkpIHsKKyNpZiAhQ1BVKEFSTSkgLy8g
QVJNIGhhcyBubyBwaW5uZWQgcmVnaXN0ZXJzIGZvciBXYXNtIE1lbW9yeSwgc28gbm8gbmVlZCB0
byBzZXQgdGhlbSB1cAorICAgIGlmICghIWluc3RhbmNlKCktPmluc3RhbmNlKCkubW9kdWxlKCku
bW9kdWxlSW5mb3JtYXRpb24oKS5tZW1vcnkpIHsKICAgICAgICAgR1BSUmVnIGJhc2VNZW1vcnkg
PSBwaW5uZWRSZWdzLmJhc2VNZW1vcnlQb2ludGVyOwogICAgICAgICBHUFJSZWcgc2NyYXRjaE9y
Qm91bmRzQ2hlY2tpbmdTaXplID0gSW52YWxpZEdQUlJlZzsKICAgICAgICAgYXV0byBtb2RlID0g
aW5zdGFuY2UoKS0+bWVtb3J5TW9kZSgpOwogCiAgICAgICAgIGlmIChpc0FSTTY0RSgpKSB7Ci0g
ICAgICAgICAgICBpZiAobW9kZSAhPSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmcpCisgICAg
ICAgICAgICBpZiAobW9kZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykKICAg
ICAgICAgICAgICAgICBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUgPSBwaW5uZWRSZWdzLmJv
dW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSA9IHN0YWNrTGltaXRHUFI7Ci0gICAgICAg
ICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgV2FzbTo6
SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKCkpLCBzY3JhdGNoT3JC
b3VuZHNDaGVja2luZ1NpemUpOworICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0
T2ZDYWNoZWRCb3VuZHNDaGVja2luZ1NpemUoKSksIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6
ZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAobW9kZSAhPSBXYXNtOjpNZW1v
cnlNb2RlOjpTaWduYWxpbmcpCi0gICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZEJv
dW5kc0NoZWNraW5nU2l6ZSgpKSwgcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3Rl
cik7CisgICAgICAgICAgICBpZiAobW9kZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVj
a2luZykKKyAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Mo
c2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZEJv
dW5kc0NoZWNraW5nU2l6ZSgpKSwgcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3Rl
cik7CiAgICAgICAgIH0KIAotICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJl
c3Moc2NyYXRjaEdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBi
YXNlTWVtb3J5KTsKLSAgICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5QW5kVW50YWcoR2lnYWNh
Z2U6OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwgc2NyYXRjaE9yQm91bmRzQ2hlY2tpbmdTaXplLCBz
Y3JhdGNoR1BSKTsKKyAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNj
cmF0Y2hKU1IucGF5bG9hZEdQUigpLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1v
cnkoKSksIGJhc2VNZW1vcnkpOworICAgICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHlBbmRVbnRh
ZyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5LCBzY3JhdGNoT3JCb3VuZHNDaGVja2lu
Z1NpemUsIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKICAgICB9CisjZW5kaWYKIAogICAgIC8v
IFdlIHVzZSB0aGlzIGNhbGxlZSB0byBpbmRpY2F0ZSBob3cgdG8gdW53aW5kIHBhc3QgdGhlc2Ug
dHlwZXMgb2YgZnJhbWVzOgogICAgIC8vIDEuIFdlIG5lZWQgdG8ga25vdyB3aGVyZSB0byBnZXQg
Y2FsbGVlIHNhdmVzLgpAQCAtMzg5LDggKzQxMiw4IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxK
U0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygp
CiAgICAgLy8gRklYTUU6IEN1cnJlbnRseSB3ZSBqdXN0IGRvIGFuIGluZGlyZWN0IGp1bXAuIEJ1
dCB3ZSBzaG91bGQgdGVhY2ggdGhlIE1vZHVsZQogICAgIC8vIGhvdyB0byByZXBhdGNoIHVzOgog
ICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY1NzAKLSAg
ICBqaXQubG9hZFB0cihlbnRyeXBvaW50TG9hZExvY2F0aW9uKCksIHNjcmF0Y2hHUFIpOwotICAg
IGppdC5jYWxsKHNjcmF0Y2hHUFIsIFdhc21FbnRyeVB0clRhZyk7CisgICAgaml0LmxvYWRQdHIo
ZW50cnlwb2ludExvYWRMb2NhdGlvbigpLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CisgICAg
aml0LmNhbGwoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIFdhc21FbnRyeVB0clRhZyk7CiAKICAg
ICBtYXJzaGFsbEpTUmVzdWx0KGppdCwgc2lnbmF0dXJlLCB3YXNtQ2FsbEluZm8sIHNhdmVkUmVz
dWx0UmVnaXN0ZXJzKTsKIApAQCAtNDIwLDcgKzQ0Myw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0
cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xv
dygpCiAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHRoaXMpLCBHUFJJ
bmZvOjpyZWdUMCk7CiAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAjaWYgQ1BVKEFS
TTY0RSkKLSAgICBqaXQudW50YWdSZXR1cm5BZGRyZXNzKHNjcmF0Y2hHUFIpOworICAgIGppdC51
bnRhZ1JldHVybkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOwogI2VuZGlmCiAgICAg
YXV0byBqdW1wVG9Ib3N0Q2FsbFRodW5rID0gaml0Lmp1bXAoKTsKIApAQCAtNDI4LDcgKzQ1MSw3
IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0
aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgaWYgKFVOTElLRUxZKGxpbmtCdWZmZXIu
ZGlkRmFpbFRvQWxsb2NhdGUoKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgbGlu
a0J1ZmZlci5saW5rKGp1bXBUb0hvc3RDYWxsVGh1bmssIENvZGVMb2NhdGlvbkxhYmVsPEpTRW50
cnlQdHJUYWc+KGV4ZWN1dGFibGUoKS0+ZW50cnlwb2ludEZvcihDb2RlRm9yQ2FsbCwgTXVzdENo
ZWNrQXJpdHkpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyAgICBsaW5rQnVmZmVyLmxpbmsoanVt
cFRvSG9zdENhbGxUaHVuaywgQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4oZXhlY3V0
YWJsZSgpLT5lbnRyeXBvaW50Rm9yKENvZGVGb3JDYWxsLCBNdXN0Q2hlY2tBcml0eSkpKTsKICAg
ICBtX2pzQ2FsbEVudHJ5cG9pbnQgPSBGSU5BTElaRV9XQVNNX0NPREUobGlua0J1ZmZlciwgV2Fz
bUVudHJ5UHRyVGFnLCAiSlMtPldhc20gSUMiKTsKICAgICByZXR1cm4gbV9qc0NhbGxFbnRyeXBv
aW50LmNvZGUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMGVlNjg3YTNi
MWNlYjFhNWI2NDQxZGM0Mjk2YzhiNjQxNmQxMmY4Yi4uNzRmNzIwYmQwNDQ1OWRiYWI1NzVjNmZk
ZTc5NDNhYjQ0MzM2NWQzNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAKQEAgLTE1OCw3
ICsxNTgsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJs
eUdsb2JhbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIFJlZjxXYXNtOjpHbG9iYWw+
IHdhc21HbG9iYWwgPSBXYXNtOjpHbG9iYWw6OmNyZWF0ZSh0eXBlLCBtdXRhYmlsaXR5LCBpbml0
aWFsVmFsdWUpOwogICAgIEpTV2ViQXNzZW1ibHlHbG9iYWwqIGpzV2ViQXNzZW1ibHlHbG9iYWwg
PSBKU1dlYkFzc2VtYmx5R2xvYmFsOjp0cnlDcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgd2ViQXNz
ZW1ibHlHbG9iYWxTdHJ1Y3R1cmUsIFdURk1vdmUod2FzbUdsb2JhbCkpOwogICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04odGhyb3dTY29wZSwgeyB9KTsKLSAgICBlbnN1cmVTdGlsbEFsaXZlSGVyZShi
aXR3aXNlX2Nhc3Q8dm9pZCo+KGluaXRpYWxWYWx1ZSkpOyAvLyBFbnN1cmUgdGhpcyBpcyBrZXB0
IGFsaXZlIHdoaWxlIGNyZWF0aW5nIEpTV2ViQXNzZW1ibHlHbG9iYWwuCisgICAgZW5zdXJlU3Rp
bGxBbGl2ZUhlcmUoaW5pdGlhbFZhbHVlKTsgLy8gRW5zdXJlIHRoaXMgaXMga2VwdCBhbGl2ZSB3
aGlsZSBjcmVhdGluZyBKU1dlYkFzc2VtYmx5R2xvYmFsLgogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNXZWJBc3NlbWJseUdsb2JhbCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAppbmRleCAy
NWUwODlmYTIwNzFiM2Y0N2Y0NTllYzYzNjgxOGViZGIxMTNhOTljLi5lMjkwYTMzMDE2NTI0Mzgx
MmM5NGQxNzJhMjMyOGJmNThlMzk1OGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCkBAIC01NTQsNyAr
NTU0LDcgQEAgdm9pZCBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6aW5pdGlhbGl6ZUV4cG9ydHMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICAgICAgICAgICAgICBKU1dlYkFzc2Vt
Ymx5R2xvYmFsKiBnbG9iYWxWYWx1ZSA9IEpTV2ViQXNzZW1ibHlHbG9iYWw6OnRyeUNyZWF0ZShn
bG9iYWxPYmplY3QsIHZtLCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5R2xvYmFsU3RydWN0dXJl
KCksIFdURk1vdmUoZ2xvYmFsUmVmKSk7CiAgICAgICAgICAgICAgICAgc2NvcGUuYXNzZXJ0Tm9F
eGNlcHRpb24oKTsKICAgICAgICAgICAgICAgICBtX2luc3RhbmNlLT5saW5rR2xvYmFsKHZtLCBn
bG9iYWxJbmRleCwgZ2xvYmFsVmFsdWUpOwotICAgICAgICAgICAgICAgIGVuc3VyZVN0aWxsQWxp
dmVIZXJlKGJpdHdpc2VfY2FzdDx2b2lkKj4oaW5pdGlhbEJpdHMpKTsgLy8gRW5zdXJlIHRoaXMg
aXMga2VwdCBhbGl2ZSB3aGlsZSBjcmVhdGluZyBKU1dlYkFzc2VtYmx5R2xvYmFsLgorICAgICAg
ICAgICAgICAgIGVuc3VyZVN0aWxsQWxpdmVIZXJlKGluaXRpYWxCaXRzKTsgLy8gRW5zdXJlIHRo
aXMgaXMga2VwdCBhbGl2ZSB3aGlsZSBjcmVhdGluZyBKU1dlYkFzc2VtYmx5R2xvYmFsLgogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaCBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtRW5hYmxlLmgKaW5kZXggMzU1MGQ0MWI0NTJhOWNhMTQ5YTE1YWMwMGY1ZWYwNTM4OTMx
MDhiYi4uOTg2OGNmZTBkNmRjN2E4YmMxY2U1NjUwN2E4ODBhMTg5NGJjMzhkNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybUVuYWJsZS5oCkBAIC01ODUsMTIgKzU4NSwxMiBAQAogI2VuZGlmCiAKICNpZiBVU0Uo
SlNWQUxVRTMyXzY0KQotLyogRGlzYWJsZSBXZWJBc3NlbWJseSBvbiBhbGwgMzJiaXQgcGxhdGZv
cm1zLiBJdHMgTExJbnQgdGllciBjb3VsZAotICogd29yayBvbiB0aGVtLCBidXQgc3RpbGwgbmVl
ZHMgc29tZSBmaW5hbCB0b3VjaGVzLiAqLworI2lmICFDUFUoQVJNKQogI3VuZGVmIEVOQUJMRV9X
RUJBU1NFTUJMWQogI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFkgMAogI3VuZGVmIEVOQUJMRV9X
RUJBU1NFTUJMWV9CM0pJVAogI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFlfQjNKSVQgMAorI2Vu
ZGlmCiAjaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykpICYmIE9TKExJTlVYKQogLyog
T24gQVJNdjcgYW5kIE1JUFMgb24gTGludXggdGhlIEpJVCBpcyBlbmFibGVkIHVubGVzcyBleHBs
aWNpdGx5IGRpc2FibGVkLiAqLwogI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpCkBAIC03MDgsNyAr
NzA4LDcgQEAKICNkZWZpbmUgRU5BQkxFX1NBTVBMSU5HX1BST0ZJTEVSIDEKICNlbmRpZgogCi0j
aWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkKKyNpZiBFTkFC
TEUoV0VCQVNTRU1CTFkpICYmIEhBVkUoTUFDSElORV9DT05URVhUKSAmJiBDUFUoQUREUkVTUzY0
KQogI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSAxCiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDNk
NDEyYzhhMmVkMjMyMjZhNjQ4N2QyMjJmYTZhOGE4ZTRjOWUyZDcuLmNlM2Q1MDQ4Y2VkNzUxYzcz
NzY1OGY2N2NlNTE5OWZmODFhMGY0NmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMi0wNC0wOCAgWGFuIEzDs3Bl
eiAgPHhhbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtKU0NdIEVuYWJsZSBXYXNtTExJbnQgb24g
QVJNdjcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MTI2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0czogYWxsb3cgdG8gcnVuIHRoZSB3YXNtIHRlc3Rz
IG9uCisgICAgICAgIGFybXY3IGV2ZW4gd2l0aG91dCBqaXQgc3VwcG9ydCAoZm9yIG5vdykuCisK
IDIwMjItMDQtMDcgIEVsbGlvdHQgV2lsbGlhbXMgIDxlbXdAYXBwbGUuY29tPgogCiAgICAgICAg
IFtYQ0J1aWxkXSBFbmFibGUgZGVwZW5kZW5jeSB2YWxpZGF0aW9uIGJ5IGRlZmF1bHQKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgYi9Ub29scy9TY3JpcHRz
L3J1bi1qc2Mtc3RyZXNzLXRlc3RzCmluZGV4IDNkMGY0MDYyYWViMDY0MjQyMWI0MDliYzc5N2Nk
MGVjZGM2OGNhMGIuLjZiNTE2MDAzZTA1ODMzMzNlZTY2MDJlMzlmNWY3ODJmOTcwM2NjN2YgMTAw
NzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKKysrIGIvVG9vbHMv
U2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwpAQCAtNTgyLDkgKzU4MiwxNSBAQCBkZWYgZGV0
ZXJtaW5lT1MKICAgICBlbmQKIGVuZAogCitkZWYgaXNGVExFbmFibGVkCisgICAgJGppdFRlc3Rz
ICYmICRpc0ZUTFBsYXRmb3JtCitlbmQKKwogJGhvc3RPUyA9IGRldGVybWluZU9TIHVubGVzcyAk
aG9zdE9TCiAkYXJjaGl0ZWN0dXJlID0gZGV0ZXJtaW5lQXJjaGl0ZWN0dXJlIHVubGVzcyAkYXJj
aGl0ZWN0dXJlCiAkaXNGVExQbGF0Zm9ybSA9ICEoJGFyY2hpdGVjdHVyZSA9PSAieDg2IiB8fCAk
YXJjaGl0ZWN0dXJlID09ICJhcm0iIHx8ICRhcmNoaXRlY3R1cmUgPT0gIm1pcHMiIHx8ICRhcmNo
aXRlY3R1cmUgPT0gInJpc2N2NjQiIHx8ICRob3N0T1MgPT0gIndpbmRvd3MiIHx8ICRob3N0T1Mg
PT0gInBsYXlzdGF0aW9uIikKKyMgU3BlY2lhbCBjYXNlIGFybXY3LCB3ZSB3YW50IHRvIHJ1biB0
aGUgd2FzbSB0ZXN0cyB0ZW1wb3JhcmlseSB3aXRob3V0IEIzL0FpciBzdXBwb3J0CiskaXNXYXNt
UGxhdGZvcm0gPSBpc0ZUTEVuYWJsZWQgfHwgJGFyY2hpdGVjdHVyZSA9PSAiYXJtIgogCiBpZiAk
YXJjaGl0ZWN0dXJlID09ICJ4ODYiCiAgICAgIyBUaGUgSklUIGlzIHRlbXBvcmFyaWx5IGRpc2Fi
bGVkIG9uIHRoaXMgcGxhdGZvcm0gc2luY2UKQEAgLTU5MiwxMCArNTk4LDYgQEAgaWYgJGFyY2hp
dGVjdHVyZSA9PSAieDg2IgogICAgICRqaXRUZXN0cyA9IGZhbHNlCiBlbmQKIAotZGVmIGlzRlRM
RW5hYmxlZAotICAgICRqaXRUZXN0cyAmJiAkaXNGVExQbGF0Zm9ybQotZW5kCi0KIGlmICEkdGVz
dFJ1bm5lclR5cGUKICAgICBpZiAkcmVtb3RlIGFuZCAkaG9zdE9TID09ICJkYXJ3aW4iCiAgICAg
ICAgICR0ZXN0UnVubmVyVHlwZSA9IDpzaGVsbApAQCAtMTcyOCw4ICsxNzMwLDcgQEAgZGVmIG5v
Tm9MTEludFJ1bk1vZHVsZXMKIGVuZAogCiBkZWYgcnVuV2ViQXNzZW1ibHkKLSAgICByZXR1cm4g
aWYgISRqaXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRMUGxhdGZvcm0KKyAgICByZXR1cm4g
aWYgISRpc1dhc21QbGF0Zm9ybQogICAgIHJ1bigiZGVmYXVsdC13YXNtIiwgIi1tIiwgKkZUTF9P
UFRJT05TKQogICAgIGlmICRtb2RlICE9ICJxdWljayIKICAgICAgICAgcnVuKCJ3YXNtLW5vLWNq
aXQteWVzLXRscy1jb250ZXh0IiwgIi1tIiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PXRy
dWUiLCAqKEZUTF9PUFRJT05TICsgTk9fQ0pJVF9PUFRJT05TKSkKQEAgLTE3MzcsMTUgKzE3Mzgs
MTYgQEAgZGVmIHJ1bldlYkFzc2VtYmx5CiAgICAgICAgIHJ1bigid2FzbS1lYWdlci1qZXR0aXNv
biIsICItbSIsICItLWZvcmNlQ29kZUJsb2NrVG9KZXR0aXNvbkR1ZVRvT2xkQWdlPXRydWUiLCAi
LS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAiLS12ZXJp
ZnlHQz10cnVlIiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tbm8tdGxzLWNvbnRl
eHQiLCAiLW0iLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9ZmFsc2UiLCAqRlRMX09QVElP
TlMpCiAgICAgICAgIHJ1bigid2FzbS1zbG93LW1lbW9yeSIsICItbSIsICItLXVzZVdlYkFzc2Vt
Ymx5RmFzdE1lbW9yeT1mYWxzZSIsICpGVExfT1BUSU9OUykKKyAgICAgICAgcnVuKCJ3YXNtLWNv
bGxlY3QtY29udGludW91c2x5IiwgIi1tIiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwg
Ii0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVv
dXNseT8KKyAgICBlbmQKKyAgICBpZiAkaXNGVExQbGF0Zm9ybQogICAgICAgICBydW4oIndhc20t
YjMiLCAiLW0iLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxz
ZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLWFpciIsICItbSIsICItLXVzZVdh
c21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRp
b249dHJ1ZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVuKCJ3YXNtLWNvbGxlY3QtY29udGlu
dW91c2x5IiwgIi1tIiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9
dHJ1ZSIsICpGVExfT1BUSU9OUykgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8KICAgICBl
bmQKIGVuZAogCiBkZWYgcnVuV2ViQXNzZW1ibHlKZXRTdHJlYW0yCi0gICAgcmV0dXJuIGlmICEk
aml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0dXJuIGlmICEk
aXNXYXNtUGxhdGZvcm0KIAogICAgIGlmICRtZW1vcnlMaW1pdGVkCiAgICAgICAgIHNraXAKQEAg
LTE3NjQsMTUgKzE3NjYsMTYgQEAgZGVmIHJ1bldlYkFzc2VtYmx5SmV0U3RyZWFtMgogICAgICAg
ICBydW4oIndhc20tZWFnZXItamV0dGlzb24iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25E
dWVUb09sZEFnZT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAg
ICAgcnVuKCJ3YXNtLW5vLXRscy1jb250ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0
PWZhbHNlIiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tc2xvdy1tZW1vcnkiLCAi
LS11c2VXZWJBc3NlbWJseUZhc3RNZW1vcnk9ZmFsc2UiLCAqRlRMX09QVElPTlMpCisgICAgICAg
IHJ1bigid2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNseSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9
dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqRlRMX09QVElPTlMpIGlmIHNob3VsZENvbGxlY3RD
b250aW51b3VzbHk/CisgICAgZW5kCisgICAgaWYgJEZUTFBsYXRmb3JtCiAgICAgICAgIHJ1bigi
d2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNl
IiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tYWlyIiwgIi0tdXNlV2FzbUxMSW50
PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVl
IiwgKkZUTF9PUFRJT05TKQotICAgICAgICBydW4oIndhc20tY29sbGVjdC1jb250aW51b3VzbHki
LCAiLS1jb2xsZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKkZUTF9P
UFRJT05TKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5PwogICAgIGVuZAogZW5kCiAKIGRl
ZiBydW5XZWJBc3NlbWJseVN1aXRlKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCi0gICAg
cmV0dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAg
cmV0dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KICAgICBtb2R1bGVzID0gRGlyW1dBU01URVNUU19Q
QVRIICsgIiouanMiXS5tYXAgeyB8ZnwgRmlsZS5iYXNlbmFtZShmKSB9CiAgICAgcHJlcGFyZUV4
dHJhQWJzb2x1dGVGaWxlcyhXQVNNVEVTVFNfUEFUSCwgWyJ3YXNtLmpzb24iXSkKICAgICBwcmVw
YXJlRXh0cmFSZWxhdGl2ZUZpbGVzKG1vZHVsZXMubWFwIHsgfGZ8ICIuLi8iICsgZiB9LCAkY29s
bGVjdGlvbikKQEAgLTE3ODgsOSArMTc5MSwxMSBAQCBkZWYgcnVuV2ViQXNzZW1ibHlTdWl0ZSgq
b3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQogICAgICAgICBydW4oIndhc20tZWFnZXItamV0
dGlzb24iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09sZEFnZT10cnVlIiwgIi0t
dXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgIi0tdmVyaWZ5
R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQog
ICAgICAgICBydW4oIndhc20tbm8tdGxzLWNvbnRleHQiLCAiLS11c2VGYXN0VExTRm9yV2FzbUNv
bnRleHQ9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25z
KSkKICAgICAgICAgcnVuKCJ3YXNtLXNsb3ctbWVtb3J5IiwgIi0tdXNlV2ViQXNzZW1ibHlGYXN0
TWVtb3J5PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9u
cykpCisgICAgICAgIHJ1bigid2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNseSIsICItLWNvbGxlY3RD
b250aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0
aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8K
KyAgICBlbmQKKyAgICBpZiAkaXNGVExQbGF0Zm9ybQogICAgICAgICBydW4oIndhc20tYjMiLCAi
LS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICooRlRMX09Q
VElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgICBydW4oIndhc20t
YWlyIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxl
SXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNp
ZmljT3B0aW9ucykpCi0gICAgICAgIHJ1bigid2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNseSIsICIt
LWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJ
T05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkgaWYgc2hvdWxkQ29sbGVjdENvbnRp
bnVvdXNseT8KICAgICBlbmQKIGVuZAogCkBAIC0xODA1LDggKzE4MTAsOSBAQCBlbmQKIAogZGVm
IHJ1bldlYkFzc2VtYmx5V2l0aEhhcm5lc3MoKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykK
ICAgICByYWlzZSB1bmxlc3MgJGJlbmNobWFyay50b19zID1+IC9oYXJuZXNzXC5tP2pzLwotICAg
IHJldHVybiBpZiAhJGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAg
IHJldHVybiBpZiAhJGlzV2FzbVBsYXRmb3JtCisgICAgIyBTa2lwIHRoaXMgY29tcGxldGVseSBv
biBhcm12NyBmb3Igbm93LCBzaW5jZSBtb3N0IG9mIHRoZSB0ZXN0cyBhcmUgcmVsYXRlZCB0byBP
U1IgYW5kIGl0J3MgYSBiaXQgaGFpcnkgdG8gc2tpcCB0aGVtIG1hbnVhbGx5CisgICAgcmV0dXJu
IGlmICRhcmNoaXRlY3R1cmUgPT0gImFybSIKIAogICAgIHdhc21GaWxlcyA9IGFsbFdhc21GaWxl
cygkY29sbGVjdGlvbikKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZpbGVzKHdhc21GaWxlcy5t
YXAgeyB8ZnwgZi5iYXNlbmFtZSB9LCAkY29sbGVjdGlvbikKQEAgLTE4MTgsOSArMTgyNCwxMSBA
QCBkZWYgcnVuV2ViQXNzZW1ibHlXaXRoSGFybmVzcygqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRp
b25zKQogICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1lYWdlci1qZXR0aXNvbiIsICItLWZv
cmNlQ29kZUJsb2NrVG9KZXR0aXNvbkR1ZVRvT2xkQWdlPXRydWUiLCAiLS11c2VSYW5kb21pemlu
Z0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKihG
VExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCiAgICAgICAgIHJ1bkhh
cm5lc3NUZXN0KCJ3YXNtLW5vLXRscy1jb250ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250
ZXh0PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykp
CiAgICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLXNsb3ctbWVtb3J5IiwgIi0tdXNlV2ViQXNz
ZW1ibHlGYXN0TWVtb3J5PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNp
ZmljT3B0aW9ucykpCisgICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLWNvbGxlY3QtY29udGlu
dW91c2x5IiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIs
ICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKSBpZiBzaG91bGRD
b2xsZWN0Q29udGludW91c2x5PworICAgIGVuZAorICAgIGlmICRpc0ZUTFBsYXRmb3JtCiAgICAg
ICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLWIzIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0t
d2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lm
aWNPcHRpb25zKSkKICAgICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tbm8tYWlyIiwgIi0tdXNl
V2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2Nh
dGlvbj10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykp
Ci0gICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5IiwgIi0t
Y29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElP
TlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKSBpZiBzaG91bGRDb2xsZWN0Q29udGlu
dW91c2x5PwogICAgIGVuZAogZW5kCiAKQEAgLTE4MjksOCArMTgzNyw3IEBAIGRlZiBydW5XZWJB
c3NlbWJseUVtc2NyaXB0ZW4obW9kZSkKICAgICB3aGVuIDpza2lwCiAgICAgICAgIHJldHVybgog
ICAgIGVuZAotICAgIHJldHVybiBpZiAhJGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQ
bGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2FzbVBsYXRmb3JtCiAgICAgd2FzbSA9ICRiZW5j
aG1hcmsudG9fcy5zdWIhICcuanMnLCAnLndhc20nCiAgICAgcHJlcGFyZUV4dHJhUmVsYXRpdmVG
aWxlcyhbUGF0aG5hbWUoJy4uJykgKyB3YXNtXSwgJGNvbGxlY3Rpb24pCiAgICAgcnVuKCJkZWZh
dWx0LXdhc20iLCAqRlRMX09QVElPTlMpCkBAIC0xODM4LDkgKzE4NDUsMTEgQEAgZGVmIHJ1bldl
YkFzc2VtYmx5RW1zY3JpcHRlbihtb2RlKQogICAgICAgICBydW4oIndhc20tbm8tY2ppdC15ZXMt
dGxzLWNvbnRleHQiLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9dHJ1ZSIsICooRlRMX09Q
VElPTlMgKyBOT19DSklUX09QVElPTlMpKQogICAgICAgICBydW4oIndhc20tZWFnZXItamV0dGlz
b24iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09sZEFnZT10cnVlIiwgIi0tdXNl
UmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgIi0tdmVyaWZ5R0M9
dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLW5vLXRscy1jb250ZXh0Iiwg
Ii0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PWZhbHNlIiwgKkZUTF9PUFRJT05TKQorICAgICAg
ICBydW4oIndhc20tY29sbGVjdC1jb250aW51b3VzbHkiLCAiLS1jb2xsZWN0Q29udGludW91c2x5
PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKkZUTF9PUFRJT05TKSBpZiBzaG91bGRDb2xsZWN0
Q29udGludW91c2x5PworICAgIGVuZAorICAgIGlmICRpc0ZUTFBsYXRmb3JtCiAgICAgICAgIHJ1
bigid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZh
bHNlIiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tYWlyIiwgIi0tdXNlV2FzbUxM
SW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10
cnVlIiwgKkZUTF9PUFRJT05TKQotICAgICAgICBydW4oIndhc20tY29sbGVjdC1jb250aW51b3Vz
bHkiLCAiLS1jb2xsZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKkZU
TF9PUFRJT05TKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5PwogICAgIGVuZAogZW5kCiAK
QEAgLTE4NDksOCArMTg1OCw3IEBAIGRlZiBydW5XZWJBc3NlbWJseVNwZWNUZXN0QmFzZShtb2Rl
LCBzcGVjSGFybmVzc1BhdGgsICpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvCiAgICAgd2hlbiA6
c2tpcAogICAgICAgICByZXR1cm4KICAgICBlbmQKLSAgICByZXR1cm4gaWYgISRqaXRUZXN0cwot
ICAgIHJldHVybiBpZiAhJGlzRlRMUGxhdGZvcm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0
Zm9ybQogICAgIHByZXBhcmVFeHRyYUFic29sdXRlRmlsZXMoV0FTTVRFU1RTX1BBVEgsIFsid2Fz
bS5qc29uIl0pCiAKICAgICBtb2R1bGVzID0gRGlyW1dBU01URVNUU19QQVRIICsgIiouanMiXS5t
YXAgeyB8ZnwgRmlsZS5iYXNlbmFtZShmKSB9CkBAIC0xODY1LDEwICsxODczLDEyIEBAIGRlZiBy
dW5XZWJBc3NlbWJseVNwZWNUZXN0QmFzZShtb2RlLCBzcGVjSGFybmVzc1BhdGgsICpvcHRpb25h
bFRlc3RTcGVjaWZpY09wdGlvCiAgICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1uby1j
aml0LXllcy10bHMtY29udGV4dCIsIG5vaXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1Bh
dGgsICAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBO
T19DSklUX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgcnVu
V2l0aE91dHB1dEhhbmRsZXIoIndhc20tZWFnZXItamV0dGlzb24iLCBub2lzeU91dHB1dEhhbmRs
ZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09s
ZEFnZT10cnVlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10
cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVj
aWZpY09wdGlvbnMpKQogICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20tbm8tdGxzLWNv
bnRleHQiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAiLS11c2VGYXN0
VExTRm9yV2FzbUNvbnRleHQ9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3Bl
Y2lmaWNPcHRpb25zKSkKLSAgICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWIzIiwgbm9p
c3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tdXNlV2FzbUxMSW50PWZhbHNl
IiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0
U3BlY2lmaWNPcHRpb25zKSkKLSAgICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWFpciIs
IG5vaXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICItLXVzZVdhc21MTEludD1m
YWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIs
ICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgcnVu
V2l0aE91dHB1dEhhbmRsZXIoIndhc20tY29sbGVjdC1jb250aW51b3VzbHkiLCBub2lzeU91dHB1
dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAiLS1jb2xsZWN0Q29udGludW91c2x5PXRydWUi
LCAiLS12ZXJpZnlHQz10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmlj
T3B0aW9ucykpIGlmIHNob3VsZENvbGxlY3RDb250aW51b3VzbHk/CiAgICAgZW5kCisgICAgaWYg
JGlzRlRMUGxhdGZvcm0KKyAgICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20tYjMiLCBu
b2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAiLS11c2VXYXNtTExJbnQ9ZmFs
c2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRl
c3RTcGVjaWZpY09wdGlvbnMpKQorICAgICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1h
aXIiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAiLS11c2VXYXNtTExJ
bnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRy
dWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKKyAgICBl
bmQKIGVuZAogCiBkZWYgcnVuV2ViQXNzZW1ibHlTcGVjVGVzdChtb2RlKQpAQCAtMTg4NCw4ICsx
ODk0LDcgQEAgZGVmIHJ1bldlYkFzc2VtYmx5RnVuY3Rpb25SZWZlcmVuY2VTcGVjVGVzdChtb2Rl
KQogZW5kCiAKIGRlZiBydW5XZWJBc3NlbWJseUxvd0V4ZWN1dGFibGVNZW1vcnkoKm9wdGlvbmFs
VGVzdFNwZWNpZmljT3B0aW9ucykKLSAgICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVy
biBpZiAhJGlzRlRMUGxhdGZvcm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQogICAg
IG1vZHVsZXMgPSBEaXJbV0FTTVRFU1RTX1BBVEggKyAiKi5qcyJdLm1hcCB7IHxmfCBGaWxlLmJh
c2VuYW1lKGYpIH0KICAgICBwcmVwYXJlRXh0cmFBYnNvbHV0ZUZpbGVzKFdBU01URVNUU19QQVRI
LCBbIndhc20uanNvbiJdKQogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMobW9kdWxlcy5t
YXAgeyB8ZnwgIi4uLyIgKyBmIH0sICRjb2xsZWN0aW9uKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9D
aGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA3MWY2Y2Y5YmRlMGQyNDA5MDg2MzU2
ZmM4Zjg4MmM0OWNkNzk2NTZhLi43ZTZmNTFmMGRmZGIyNThlMjg2ZGUyYTgzMDY1NzViYWQwNmRj
YzljIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTA0LTA4ICBYYW4gTMOzcGV6ICA8eGFuQGlnYWxpYS5j
b20+CisKKyAgICAgICAgW0pTQ10gRW5hYmxlIFdhc21MTEludCBvbiBBUk12NworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMjYwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3Mvc2FtcGxpbmct
cHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24uanM6CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5n
LXByb2ZpbGVyLXdhc20uanM6CisgICAgICAgICogd2FzbS9yZWdyZXNzL2xsaW50LWNhbGxlZS1z
YXZlcy13aXRoLWZhc3QtbWVtb3J5LmpzOgorCiAyMDIyLTA0LTA3ICBZdXN1a2UgU3V6dWtpICA8
eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gRmlyZSBzdHJ1Y3R1cmUgdHJhbnNp
dGlvbiB3YXRjaHBvaW50IGluIFN0cnVjdHVyZTo6ZmluaXNoQ3JlYXRpb24gaW5zdGVhZCBvZiBT
dHJ1Y3R1cmUgY29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5n
LXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmct
cHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24uanMKaW5kZXggNWMyMjBmZDc2Y2RjNWM0MGU1OWNj
NjZlNTczNDJjNzJkOGM3ZjNhYS4uMDA3YWI3YWM1OWMxNzQ1OGE5OGI3OWZiZTE3NzM2YWI1NDI3
NmY2OSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS1u
YW1lLXNlY3Rpb24uanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2Fz
bS1uYW1lLXNlY3Rpb24uanMKQEAgLTEsMyArMSw5IEBACisvLyBUaGlzIHRlc3QgaXMgc3RhdGlz
dGljYWwsIGFuZCB3aXRob3V0IG9wdGltaXppbmcgV2FzbSB0aWVycyB0aGUgbGlrZWxpaG9vZAor
Ly8gb2YgaGl0dGluZyB0aGUgZGVlcGVzdCBleHBlY3RlZCBzdGFjayB0cmFjZSBpcyB2ZXJ5IGxv
dy4gVG8gZ2l2ZSB1cyBhIGJldHRlcgorLy8gY2hhbmNlLCBkaXNhYmxlIEpTIEpJVHMgYW5kIGlu
Y3JlYXNlIHNhbXBsaW5nIHJhdGUuCisvLyBGSVhNRTogcmVtb3ZlIHdoZW4gMzItYml0IHBsYXRm
b3JtcyBzdXBwb3J0IG9wdGltaXppbmcgV2FzbSB0aWVycworLy9AIHJlcXVpcmVPcHRpb25zKCIt
LXNhbXBsZUludGVydmFsPTEwIiwgIi0tdXNlQmFzZWxpbmVKSVQ9ZmFsc2UiLCAiLS11c2VERkdK
SVQ9ZmFsc2UiKSBpZiBbImFybSIsICJtaXBzIl0uaW5jbHVkZT8oJGFyY2hpdGVjdHVyZSkKKy8v
CiAvL0AgcnVuRGVmYXVsdAogCiAvKgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxp
bmctcHJvZmlsZXItd2FzbS5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdh
c20uanMKaW5kZXggMDZkZjAxMjQ5NTk2OWUyODQyMTg3Nzg2OTAxMzViZjA5MDEwZWM2ZC4uNzI0
MGMwMGRlMjdlM2JmZDNmOTU1NzUyMzAwY2EwZGUyZjU5NGVlYyAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9z
YW1wbGluZy1wcm9maWxlci13YXNtLmpzCkBAIC0xLDMgKzEsNCBAQAorLy9AIHNraXAgaWYgJGFy
Y2hpdGVjdHVyZSA9PSAiYXJtIgogLy9AIHJ1bkRlZmF1bHQKIAogaWYgKHBsYXRmb3JtU3VwcG9y
dHNTYW1wbGluZ1Byb2ZpbGVyKCkgJiYgJHZtLmlzV2FzbVN1cHBvcnRlZCgpKSB7CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3dhc20vcmVncmVzcy9sbGludC1jYWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1l
bW9yeS5qcyBiL0pTVGVzdHMvd2FzbS9yZWdyZXNzL2xsaW50LWNhbGxlZS1zYXZlcy13aXRoLWZh
c3QtbWVtb3J5LmpzCmluZGV4IGY5ZjA5YzQ3NTEzYTZjOGQ5MzI1MzRmNzI3ZGJmZTc3ZmQyNTFk
NDQuLjExY2ZiMTY0YmI2NDFlZjM0ZTIxZGIwNTY5MjdkY2EzNjdjMzdlNmQgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvd2FzbS9yZWdyZXNzL2xsaW50LWNhbGxlZS1zYXZlcy13aXRoLWZhc3QtbWVtb3J5
LmpzCisrKyBiL0pTVGVzdHMvd2FzbS9yZWdyZXNzL2xsaW50LWNhbGxlZS1zYXZlcy13aXRoLWZh
c3QtbWVtb3J5LmpzCkBAIC0xLDMgKzEsNCBAQAorLy9AIHNraXAgaWYgJGFyY2hpdGVjdHVyZSA9
PSAiYXJtIgogLy9AIHJlcXVpcmVPcHRpb25zKCItLXVzZVdlYkFzc2VtYmx5RmFzdE1lbW9yeT10
cnVlIikKIAogaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJy4uL2Fzc2VydC5qcyc7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457329</attachid>
            <date>2022-04-12 06:56:16 -0700</date>
            <delta_ts>2022-04-21 04:02:43 -0700</delta_ts>
            <desc>v6 - tweak run-jsc-stress-tests</desc>
            <filename>bug-221260-20220412135613.patch</filename>
            <type>text/plain</type>
            <size>324179</size>
            <attacher name="Geza Lore">glore</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NjIxZDMyOGNkNDllNmRkMDA2Njg1MzU4NDFjNTU2YmM3MGU2ZGM2Li43OGY3YWU0OTI4NDJmMTBh
NjYxYWNkYmNlMjhiODE4ZDdjZTEyZWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMDcgQEAKKzIwMjItMDQtMTIgIFhhbiBMw7NwZXogIDx4YW5AaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbSlNDXSBFbmFibGUgV2FzbUxMSW50IG9uIEFSTXY3CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEyNjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBieSBHZXphIExvcmUgYW5kIFhh
biBMw7NwZXouCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBMTEludCB0aWVyIG9mIFdlYkFzc2Vt
Ymx5IGZvciBBUk12Ny4gQSBsb3Qgb2YgdGhlCisgICAgICAgIHdvcmsgd2lsbCBiZSBzaGFyZWQg
YnkgYW55IDMyYml0IHBvcnQsIGJ1dCB0aGUgb2ZmbGluZWFzc2VtYmxlcgorICAgICAgICBoYXMg
b25seSBiZWVuIHVwZGF0ZWQgZm9yIEFSTXY3IHNvIGZhci4KKworICAgICAgICBNYWluIGhpZ2hs
aWdodHM6CisKKyAgICAgICAgV2UgaGF2ZSBzcGxpdCB0aGUgV2ViQXNzZW1ibHkuYXNtIGZpbGUg
aW50byB0aHJlZSBjaHVua3MsCisgICAgICAgIGZvbGxvd2luZyB3aGF0IExvd0xldmVsSW50ZXJw
cmV0ZXIuYXNtIGRvZXMuIFRoZSBjb21tb24gY29kZQorICAgICAgICByZW1haW5zIGluIFdlYkFz
c2VtYmx5LmFzbSwgYW5kIDMyIGFuZCA2NGJpdCBzcGVjaWZpYyBjb2RlIChtb3N0bHkKKyAgICAg
ICAgb3Bjb2RlIGltcGxlbWVudGF0aW9ucykgZ29lcyBpbnRvIFdlYkFzc2VtYmx5MzJfNjQuYXNt
IGFuZAorICAgICAgICBXZWJBc3NlbWJseTY0LmFzbS4KKworICAgICAgICBXZSBoYXZlIGRlY2lk
ZWQgdG8gdXNlIGNvbnNlY3V0aXZlIGV2ZW4vb2RkIHBhaXJzIG9mIEdQUnMgZm9yIGV2ZXJ5Cisg
ICAgICAgIHR5cGUgb2Ygd2FzbSB2YWx1ZXMsIGV2ZW4gaWYgdGhleSBhcmUgMzJiaXQgKGkzMi9m
MzIpLCB3aXRoIHRoZSBvZGQKKyAgICAgICAgKGhpZ2hlcikgbnVtYmVyZWQgR1BSIGhvbGRpbmcg
dGhlIG1vcmUgc2lnbmlmaWNhbnQgaGFsZi4gMzJiaXQgdmFsdWVzCisgICAgICAgIGFyZSBoZWxk
IGluIHRoZSBldmVuIChsb3dlcikgbnVtYmVyZWQgcmVnaXN0ZXIuIFRoaXMgbWFrZXMgdGhlIGNv
ZGUKKyAgICAgICAgbXVjaCBzaW1wbGVyIGFuZCBhbGxvd3MgdXMgdG8gc2hhcmUgbW9yZSBjb2Rl
IHdpdGggdGhlIDY0Yml0IHZhcmlhbnQuCisgICAgICAgIFRoaXMgaXMgbW9zdGx5IHJlbGV2YW50
IGZvciBhcmd1bWVudCBwYXNzaW5nLCBhbmQgZ2l2ZW4gdGhhdCBldmVyeQorICAgICAgICB2YWx1
ZSBlbmRzIHVwIGluIHRoZSBzdGFjayBhbnl3YXkgd2UgZG8gbm90IHRoaW5rIGl0IGlzIHNpZ25p
ZmljYW50CisgICAgICAgIGZyb20gYSBwZXJmb3JtYW5jZSBQT1YuCisKKyAgICAgICAgV2UgYXJl
IHJldXNpbmcgSlNWYWx1ZVJlZ3MgdG8gaG9sZCBXYXNtIHZhbHVlcyB0b28uIE9idmlvdXNseSB0
aGV5CisgICAgICAgIGFyZSBub3QgcmVhbGx5IEpTVmFsdWVzLCBzbyBpdCBtaWdodCBtYWtlIHNl
bnNlIHRvIGNyZWF0ZSBhIGJhc2UKKyAgICAgICAgY2xhc3MgdGhhdCBjYW4gYmUgdXNlZCBmb3Ig
Ym90aCBKUyBhbmQgV2FzbSB2YWx1ZXMuCisKKyAgICAgICAgV2UgZG8gbm90IGhhdmUgZW5vdWdo
IHJlZ2lzdGVycyB0byBrZWVwIHRoaW5ncyBsaWtlIHRoZSBtZW1vcnkKKyAgICAgICAgYmFzZSBw
b2ludGVyIGFuZCBzaXplIGluIHBpbm5lZCByZWdpc3RlcnMsIHNvIHdlIGFyZSBmb3JjZWQgdG8K
KyAgICAgICAgbG9hZCB0aGVtIG9uIGVhY2ggdXNlLgorCisgICAgICAgIFdlIGRpc2FibGUgdGhl
ICdTaWduYWxpbmcnIG1lbW9yeSBtb2RlLCBzaW5jZSB0aGUgY3VycmVudAorICAgICAgICBpbXBs
ZW1lbnRhdGlvbiByZWxpZXMgb24gYmVpbmcgYWJsZSB0byBtcHJvdGVjdCBhIDJeMzIgKyByZWR6
b25lCisgICAgICAgIHJlZ2lvbiBvZiBtZW1vcnkuIFRoaXMgY2FuIGJlIGNoYW5nZWQgaW4gdGhl
IGZ1dHVyZSBidXQgaXQncyBub3QgYQorICAgICAgICBwcmlvcml0eSBhdCB0aGUgbW9tZW50Lgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogYXNzZW1ibGVyL0FSTXY3QXNz
ZW1ibGVyLmg6CisgICAgICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjp2Y3Z0X3NpZ25lZFRvRmxv
YXRpbmdQb2ludCk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaDoK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6Y29udmVydEludDMyVG9GbG9hdCk6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnRocmVhZFNhZmVQYXRjaGFibGVO
ZWFyQ2FsbCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmNhbGxPcGVyYXRp
b24pOgorICAgICAgICAqIGIzL0IzVmFsdWVSZXAuaDoKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVl
UmVwOjpWYWx1ZVJlcCk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwOgor
ICAgICAgICAoSlNDOjpXYXNtOjpCeXRlY29kZUR1bXBlcjo6Zm9ybWF0Q29uc3RhbnQgY29uc3Qp
OgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5oOiBhZGFwdCB0byBuZXcgY2FsbGVl
IHRhZ2dpbmcgZm9ybWF0LgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OmNhbGxlZSBjb25zdCk6
CisgICAgICAgIChKU0M6OkNhbGxGcmFtZTo6dW5zYWZlQ2FsbGVlIGNvbnN0KToKKyAgICAgICAg
KiBpbnRlcnByZXRlci9DYWxsZWVCaXRzLmg6IGFkZCB3YXNtIHRhZ2dpbmcgb2YgY2FsbGVlIHZh
bHVlcyBmb3IKKyAgICAgICAgMzJiaXQuCisgICAgICAgIChKU0M6OkNhbGxlZUJpdHM6OkNhbGxl
ZUJpdHMpOgorICAgICAgICAoSlNDOjpDYWxsZWVCaXRzOjpvcGVyYXRvcj0pOgorICAgICAgICAo
SlNDOjpDYWxsZWVCaXRzOjpib3hXYXNtKToKKyAgICAgICAgKEpTQzo6Q2FsbGVlQml0czo6aXNX
YXNtIGNvbnN0KToKKyAgICAgICAgKEpTQzo6Q2FsbGVlQml0czo6YXNXYXNtQ2FsbGVlIGNvbnN0
KToKKyAgICAgICAgKiBpbnRlcnByZXRlci9SZWdpc3Rlci5oOgorICAgICAgICAoSlNDOjpSZWdp
c3Rlcjo6dW5ib3hlZEZsb2F0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXI6OmFzYW5V
bnNhZmVVbmJveGVkRmxvYXQgY29uc3QpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMu
aDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjp1bmJveERvdWJsZSk6CisgICAgICAg
ICogaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmNwcDoKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXJB
dE9mZnNldExpc3Q6OlJlZ2lzdGVyQXRPZmZzZXRMaXN0KToKKyAgICAgICAgKiBqaXQvUmVnaXN0
ZXJBdE9mZnNldExpc3QuaDoKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXJBdE9mZnNldExpc3Q6OnNp
emVPZkFyZWFJbkJ5dGVzIGNvbnN0KToKKyAgICAgICAgKiBqaXQvUmVnaXN0ZXJTZXQuY3BwOgor
ICAgICAgICAoSlNDOjpSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKToKKyAgICAg
ICAgKiBsbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaDoKKyAgICAgICAgKiBsbGludC9Mb3dM
ZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L1dlYkFzc2VtYmx5LmFz
bToKKyAgICAgICAgKiBsbGludC9XZWJBc3NlbWJseTMyXzY0LmFzbTogQWRkZWQuCisgICAgICAg
ICogbGxpbnQvV2ViQXNzZW1ibHk2NC5hc206IEFkZGVkLgorICAgICAgICAqIG9mZmxpbmVhc20v
YXJtLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiOgorICAgICAgICAq
IG9mZmxpbmVhc20vcmVnaXN0ZXJzLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vcmlzYy5yYjoK
KyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKyAgICAgICAgKEpTQzo6d2FzbVVuYm94
ZWRGbG9hdCk6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjpKU1ZhbHVlKToKKyAgICAgICAgKiB3YXNtL1dhc21BaXJJUkdlbmVy
YXRvci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjp1c2VTaWduYWxp
bmdNZW1vcnkgY29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6QWly
SVJHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6ZW1pdENo
ZWNrQW5kUHJlcGFyZVBvaW50ZXIpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRv
cjo6YWRkQ2FsbCk6CisgICAgICAgICogd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHA6CisgICAg
ICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OnVzZVNpZ25hbGluZ01lbW9yeSBjb25zdCk6
CisgICAgICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OkIzSVJHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjphZGRBcmd1bWVudHMpOgorICAgICAgICAo
SlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcik6Cisg
ICAgICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6Om1lbW9yeUtpbmQpOgorICAgICAgICAo
SlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjphZGRDYWxsKToKKyAgICAgICAgKiB3YXNtL1dhc21C
aW5kaW5nLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6d2FzbVRvV2FzbSk6CisgICAgICAgICog
d2FzbS9XYXNtQ2FsbGVlLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRDYWxsZWU6OmNh
bGxlZVNhdmVSZWdpc3RlcnMpOgorICAgICAgICAqIHdhc20vV2FzbUNhbGxlZUdyb3VwLmNwcDoK
KyAgICAgICAgKEpTQzo6V2FzbTo6Q2FsbGVlR3JvdXA6OmlzU2FmZVRvUnVuKToKKyAgICAgICAg
KiB3YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5jcHA6CisgICAgICAgIChKU0M6Oldhc206Ompz
Q2FsbGluZ0NvbnZlbnRpb24pOgorICAgICAgICAoSlNDOjpXYXNtOjp3YXNtQ2FsbGluZ0NvbnZl
bnRpb24pOgorICAgICAgICAqIHdhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmg6CisgICAgICAg
IChKU0M6Oldhc206OkNhbGxJbmZvcm1hdGlvbjo6Y29tcHV0ZVJlc3VsdHNPZmZzZXRMaXN0KToK
KyAgICAgICAgKEpTQzo6V2FzbTo6V2FzbUNhbGxpbmdDb252ZW50aW9uOjpXYXNtQ2FsbGluZ0Nv
bnZlbnRpb24pOgorICAgICAgICAoSlNDOjpXYXNtOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb246Om1h
cnNoYWxsTG9jYXRpb25JbXBsIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6V2FzbUNhbGxp
bmdDb252ZW50aW9uOjptYXJzaGFsbExvY2F0aW9uIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2Fz
bTo6SlNDYWxsaW5nQ29udmVudGlvbjo6SlNDYWxsaW5nQ29udmVudGlvbik6CisgICAgICAgIChK
U0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxsTG9jYXRpb25JbXBsIGNvbnN0
KToKKyAgICAgICAgKEpTQzo6V2FzbTo6SlNDYWxsaW5nQ29udmVudGlvbjo6bWFyc2hhbGxMb2Nh
dGlvbiBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246OmNh
bGxJbmZvcm1hdGlvbkZvciBjb25zdCk6CisgICAgICAgICogd2FzbS9XYXNtRm9ybWF0Lmg6Cisg
ICAgICAgICogd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpJ
bmRleE9yTmFtZTo6SW5kZXhPck5hbWUpOgorICAgICAgICAoSlNDOjpXYXNtOjptYWtlU3RyaW5n
KToKKyAgICAgICAgKiB3YXNtL1dhc21JbmRleE9yTmFtZS5oOgorICAgICAgICAoSlNDOjpXYXNt
OjpJbmRleE9yTmFtZTo6SW5kZXhPck5hbWUpOgorICAgICAgICAoSlNDOjpXYXNtOjpJbmRleE9y
TmFtZTo6aXNFbXB0eSBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1lOjpp
c0luZGV4IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OmlzTmFtZSBj
b25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1lOjppbmRleCBjb25zdCk6Cisg
ICAgICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1lOjpuYW1lIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6V2FzbTo6SW5kZXhPck5hbWU6Om5hbWVTZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKiB3YXNt
L1dhc21JbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpXYXNtOjpJbnN0YW5jZTo6dXBkYXRlQ2Fj
aGVkTWVtb3J5KToKKyAgICAgICAgKiB3YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHA6CisgICAg
ICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjp2aXJ0dWFsUmVnaXN0ZXJGb3JXYXNtTG9j
YWwpOgorICAgICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9u
Rm9yQ2FsbGVyKToKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmNhbGxJbmZv
cm1hdGlvbkZvckNhbGxlZSk6CisgICAgICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjph
ZGRBcmd1bWVudHMpOgorICAgICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6YWRkTG9v
cCk6CisgICAgICAgICogd2FzbS9XYXNtTExJbnRQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6V2Fz
bTo6TExJbnRQbGFuOjpkaWRDb21wbGV0ZUNvbXBpbGF0aW9uKToKKyAgICAgICAgKiB3YXNtL1dh
c21NZW1vcnkuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpNZW1vcnlIYW5kbGU6On5NZW1vcnlI
YW5kbGUpOgorICAgICAgICAoSlNDOjpXYXNtOjpNZW1vcnk6OnRyeUNyZWF0ZSk6CisgICAgICAg
IChKU0M6Oldhc206Ok1lbW9yeTo6Z3Jvd1NoYXJlZCk6CisgICAgICAgIChKU0M6Oldhc206Ok1l
bW9yeTo6Z3Jvdyk6CisgICAgICAgIChKU0M6Oldhc206Ok1lbW9yeTo6Y29weSk6CisgICAgICAg
ICogd2FzbS9XYXNtTWVtb3J5Lmg6CisgICAgICAgICogd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRp
b24uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpQaW5uZWRSZWdpc3RlckluZm86OmdldCk6Cisg
ICAgICAgICogd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uaDoKKyAgICAgICAgKEpTQzo6V2Fz
bTo6UGlubmVkUmVnaXN0ZXJJbmZvOjp0b1NhdmUgY29uc3QpOgorICAgICAgICAqIHdhc20vV2Fz
bU1lbW9yeU1vZGUuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjptYWtlU3RyaW5nKToKKyAgICAg
ICAgKiB3YXNtL1dhc21NZW1vcnlNb2RlLmg6CisgICAgICAgICogd2FzbS9XYXNtT3Bjb2RlT3Jp
Z2luLmNwcDoKKyAgICAgICAgKiB3YXNtL1dhc21PcGNvZGVPcmlnaW4uaDoKKyAgICAgICAgKiB3
YXNtL1dhc21PcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6SlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKToKKyAgICAgICAgKiB3YXNtL1dhc21PcGVyYXRpb25zLmg6CisgICAgICAg
ICogd2FzbS9XYXNtUGFnZUNvdW50Lmg6CisgICAgICAgICogd2FzbS9XYXNtUGFyc2VyLmg6Cisg
ICAgICAgIChKU0M6Oldhc206OlBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVUludDMyKToKKyAg
ICAgICAgKEpTQzo6V2FzbTo6UGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VVSW50NjQpOgorICAg
ICAgICAqIHdhc20vV2FzbVNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpXQVNN
X1NMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX3Bv
cGNvdW50KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX3BvcGNvdW50bGwp
OgorICAgICAgICAoSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTMyX2Rpdl9zKToKKyAgICAg
ICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2kzMl9kaXZfdSk6CisgICAgICAgIChKU0M6
OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pMzJfcmVtX3MpOgorICAgICAgICAoSlNDOjpMTEludDo6
c2xvd19wYXRoX3dhc21faTMyX3JlbV91KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0
aF93YXNtX2k2NF9kaXZfcyk6CisgICAgICAgIChKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9p
NjRfZGl2X3UpOgorICAgICAgICAoSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTY0X3JlbV9z
KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2k2NF9yZW1fdSk6CisgICAg
ICAgICogd2FzbS9XYXNtU2xvd1BhdGhzLmg6CisgICAgICAgICogd2FzbS9XYXNtVmFsdWVMb2Nh
dGlvbi5jcHA6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmR1bXAgY29uc3Qp
OgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiB3YXNtL1dhc21WYWx1
ZUxvY2F0aW9uLmg6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OlZhbHVlTG9j
YXRpb24pOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjppc0dQUiBjb25zdCk6
CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzRlBSIGNvbnN0KToKKyAgICAg
ICAgKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6aXNTdGFjayBjb25zdCk6CisgICAgICAgIChK
U0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzU3RhY2tBcmd1bWVudCBjb25zdCk6CisgICAgICAg
IChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmpzciBjb25zdCk6CisgICAgICAgIChKU0M6Oldh
c206OlZhbHVlTG9jYXRpb246OmZwciBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVl
TG9jYXRpb246OnJlZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRp
b246OmlzUmVnIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2Nh
dGlvbjo6cmVnIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2Nh
dGlvbjo6Z3ByIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL2pzL0pTVG9XYXNtLmNw
cDoKKyAgICAgICAgKEpTQzo6V2FzbTo6bWFyc2hhbGxKU1Jlc3VsdCk6CisgICAgICAgIChKU0M6
Oldhc206OmNyZWF0ZUpTVG9XYXNtV3JhcHBlcik6CisgICAgICAgICogd2FzbS9qcy9XYXNtVG9K
Uy5jcHA6CisgICAgICAgIChKU0M6Oldhc206Ondhc21Ub0pTKToKKyAgICAgICAgKiB3YXNtL2pz
L1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUZ1bmN0
aW9uOjpwcmV2aW91c0luc3RhbmNlT2Zmc2V0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2ViQXNz
ZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3cpOgorICAgICAgICAqIHdhc20vanMv
V2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJl
Y29yZC5jcHA6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjppbml0aWFs
aXplRXhwb3J0cyk6CisKIDIwMjItMDQtMTIgIEdlemEgTG9yZSAgPGdsb3JlQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0pTQ10gUmVkdWNlIEJhc2VsaW5lIEpJVCBjb2RlIHNpemUgaW4gZGVidWcg
YnVpbGRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCmluZGV4IDkwNTkyMDJkMmJmZGMwZTJmZDVkMTFjNDJhY2M1MWQ0NGRhMmVlNDguLmRi
YWMzNTBiOGE5YTRkMjAwOTFhOTVlMzZhOWIzNDVmYWY4YWUwMWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMjItMDQtMTIgIFhhbiBMw7NwZXogIDx4YW5AaWdhbGlhLmNvbT4KKworICAgICAgICBb
SlNDXSBFbmFibGUgV2FzbUxMSW50IG9uIEFSTXY3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEyNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZS5oOiBlbmFibGUgV2Vi
QXNzZW1ibHkgb24gQVJNdjcuCisKIDIwMjItMDQtMTIgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51
bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBGdW5jdGlvbkRpc3BhdGNoZXIgc2hvdWxkIG5vdCBi
ZSBSZWZDb3VudGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMjlhN2Fm
OWEyZGU2ODYyOWI3OGYwMjBmMWQ5ZDgxNzA5ZGEzYjI1ZS4uYzlkYWJiNTY0Nzc1ZmMyMTk5Njdm
ZDA4Zjc0OGQyMzQzMzFhNWRkYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtMjAwLDYgKzIwMCw4IEBAIHNldChMTElOVF9BU00KICAgICBsbGludC9Mb3dMZXZlbEludGVy
cHJldGVyMzJfNjQuYXNtCiAgICAgbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQogICAg
IGxsaW50L1dlYkFzc2VtYmx5LmFzbQorICAgIGxsaW50L1dlYkFzc2VtYmx5MzJfNjQuYXNtCisg
ICAgbGxpbnQvV2ViQXNzZW1ibHk2NC5hc20KICkKIAogc2V0KE9GRkxJTkVfQVNNCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKaW5kZXggOWNh
NmE0YTZjODQxYzY3NjU5ZmNiNTQ2YzdmNDQyYmQ3ZDI4OTg2MS4uNmM3NmU0ZWY1MjMyMjRkNGY1
MTExNDY2YTAxMmMzYmE2ZDU4MTUwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaApAQCAtMTk5MSwxMCArMTk5MSwxMCBAQCBwdWJsaWM6
CiAgICAgICAgIG1fZm9ybWF0dGVyLnZmcE9wKE9QX1ZDTVAsIE9QX1ZDTVBiLCB0cnVlLCBWRlBP
cGVyYW5kKDUpLCByZCwgVkZQT3BlcmFuZCgwKSk7CiAgICAgfQogCi0gICAgdm9pZCB2Y3Z0X3Np
Z25lZFRvRmxvYXRpbmdQb2ludChGUERvdWJsZVJlZ2lzdGVySUQgcmQsIEZQU2luZ2xlUmVnaXN0
ZXJJRCBybSkKKyAgICB2b2lkIHZjdnRfc2lnbmVkVG9GbG9hdGluZ1BvaW50KEZQRG91YmxlUmVn
aXN0ZXJJRCByZCwgRlBTaW5nbGVSZWdpc3RlcklEIHJtLCBib29sIHRvRG91YmxlID0gdHJ1ZSkK
ICAgICB7CiAgICAgICAgIC8vIGJvb2xlYW4gdmFsdWVzIGFyZSA2NGJpdCAodG9JbnQsIHVuc2ln
bmVkLCByb3VuZFplcm8pCi0gICAgICAgIG1fZm9ybWF0dGVyLnZmcE9wKE9QX1ZDVlRfRlBJVkZQ
LCBPUF9WQ1ZUX0ZQSVZGUGIsIHRydWUsIHZjdnRPcChmYWxzZSwgZmFsc2UsIGZhbHNlKSwgcmQs
IHJtKTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudmZwT3AoT1BfVkNWVF9GUElWRlAsIE9QX1ZDVlRf
RlBJVkZQYiwgdG9Eb3VibGUsIHZjdnRPcChmYWxzZSwgZmFsc2UsIGZhbHNlKSwgcmQsIHJtKTsK
ICAgICB9CiAKICAgICB2b2lkIHZjdnRfZmxvYXRpbmdQb2ludFRvU2lnbmVkKEZQU2luZ2xlUmVn
aXN0ZXJJRCByZCwgRlBEb3VibGVSZWdpc3RlcklEIHJtKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRleCA1MGViOWNm
OWRmNDkxZjY0NDJkOWI5M2RlYjVjMWEzMmQ5NjY1MThkLi5jNWM5NDdjODJjZWE2MmU5MGJkOGU3
MDIwMjhkNDhhNjdlNTFkMDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaApAQCAtNDEsMTEgKzQxLDExIEBAIGNsYXNz
IE1hY3JvQXNzZW1ibGVyQVJNdjcgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxBc3Nl
bWJsZXI+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBuZWFySnVtcFJh
bmdlID0gMTYgKiBNQjsKIAotcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3RleHByIFJlZ2lzdGVy
SUQgZGF0YVRlbXBSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6aXA7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBSZWdpc3RlcklEIGFkZHJlc3NUZW1wUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnI2Owog
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBBUk1SZWdpc3RlcnM6OkZQRG91YmxlUmVnaXN0ZXJJRCBm
cFRlbXBSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6ZDc7Citwcml2YXRlOgorICAgIHN0YXRpYyBj
b25zdGV4cHIgQVJNUmVnaXN0ZXJzOjpGUERvdWJsZVJlZ2lzdGVySUQgZnBUZW1wUmVnaXN0ZXIg
PSBBUk1SZWdpc3RlcnM6OmQxNTsKICAgICBpbmxpbmUgQVJNUmVnaXN0ZXJzOjpGUFNpbmdsZVJl
Z2lzdGVySUQgZnBUZW1wUmVnaXN0ZXJBc1NpbmdsZSgpIHsgcmV0dXJuIEFSTVJlZ2lzdGVyczo6
YXNTaW5nbGUoZnBUZW1wUmVnaXN0ZXIpOyB9CiAKICAgICAvLyBJbiB0aGUgVGh1bWItMiBpbnN0
cnVjdGlvbiBzZXQsIGluc3RydWN0aW9ucyBvcGVyYXRpbmcgb25seSBvbiByZWdpc3RlcnMgcjAt
cjcgY2FuIG9mdGVuCkBAIC0xNDIwLDYgKzE0MjAsMTIgQEAgcHVibGljOgogICAgICAgICBDUkFT
SCgpOwogICAgIH0KIAorICAgIHZvaWQgY29udmVydEludDMyVG9GbG9hdChSZWdpc3RlcklEIHNy
YywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci52bW92KGZw
VGVtcFJlZ2lzdGVyLCBzcmMsIHNyYyk7CisgICAgICAgIG1fYXNzZW1ibGVyLnZjdnRfc2lnbmVk
VG9GbG9hdGluZ1BvaW50KGRlc3QsIGZwVGVtcFJlZ2lzdGVyQXNTaW5nbGUoKSwgLyogdG9Eb3Vi
bGU6ICovIGZhbHNlKTsKKyAgICB9CisKICAgICB2b2lkIGNvbnZlcnRJbnQzMlRvRG91YmxlKFJl
Z2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1i
bGVyLnZtb3YoZnBUZW1wUmVnaXN0ZXIsIHNyYywgc3JjKTsKQEAgLTIyNTEsNiArMjI1NywxNCBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBDYWxsKG1fYXNzZW1ibGVyLmIoKSwgQ2FsbDo6TGlu
a2FibGVOZWFyVGFpbCk7CiAgICAgfQogCisgICAgLy8gRklYTUU6IHdoeSBpcyB0aGlzIHRoZSBz
YW1lIHRoYW4gbmVhckNhbGwoKSBpbiBBUk02ND8gaXMgaXQgcmlnaHQ/CisgICAgQUxXQVlTX0lO
TElORSBDYWxsIHRocmVhZFNhZmVQYXRjaGFibGVOZWFyQ2FsbCgpCisgICAgeworICAgICAgICBp
bnZhbGlkYXRlQWxsVGVtcFJlZ2lzdGVycygpOworICAgICAgICBtb3ZlRml4ZWRXaWR0aEVuY29k
aW5nKFRydXN0ZWRJbW0zMigwKSwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgIHJldHVybiBD
YWxsKG1fYXNzZW1ibGVyLmJseChkYXRhVGVtcFJlZ2lzdGVyKSwgQ2FsbDo6TGlua2FibGVOZWFy
KTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIENhbGwgY2FsbChQdHJUYWcpCiAgICAgewog
ICAgICAgICBtb3ZlRml4ZWRXaWR0aEVuY29kaW5nKFRydXN0ZWRJbW0zMigwKSwgZGF0YVRlbXBS
ZWdpc3Rlcik7CkBAIC0yMjc1LDYgKzIyODksMTIgQEAgcHVibGljOgogICAgIEFMV0FZU19JTkxJ
TkUgQ2FsbCBjYWxsKFJlZ2lzdGVySUQgdGFyZ2V0LCBSZWdpc3RlcklEIGNhbGxUYWcpIHsgcmV0
dXJuIFVOVVNFRF9QQVJBTShjYWxsVGFnKSwgY2FsbCh0YXJnZXQsIE5vUHRyVGFnKTsgfQogICAg
IEFMV0FZU19JTkxJTkUgQ2FsbCBjYWxsKEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBjYWxs
VGFnKSB7IHJldHVybiBVTlVTRURfUEFSQU0oY2FsbFRhZyksIGNhbGwoYWRkcmVzcywgTm9QdHJU
YWcpOyB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgY2FsbE9wZXJhdGlvbihjb25zdCBGdW5j
dGlvblB0cjxPcGVyYXRpb25QdHJUYWc+IG9wZXJhdGlvbikKKyAgICB7CisgICAgICAgIG1vdmUo
VHJ1c3RlZEltbVB0cihvcGVyYXRpb24uZXhlY3V0YWJsZUFkZHJlc3MoKSksIGFkZHJlc3NUZW1w
UmVnaXN0ZXIpOworICAgICAgICBjYWxsKGFkZHJlc3NUZW1wUmVnaXN0ZXIsIE9wZXJhdGlvblB0
clRhZyk7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHJldCgpCiAgICAgewogICAg
ICAgICBtX2Fzc2VtYmxlci5ieChsaW5rUmVnaXN0ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1ZhbHVlUmVwLmgKaW5kZXggMTU3YmM4ODY4MjMxMmIxYTFlOWRhNzM5YzA4MmMwZDZjNDc3ZDMy
Ni4uNzY5MzhjNmZlY2FiZmQyNzEyNzdhYmVlMzlmZWE5M2E5MmY3YjY2MCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oCkBAIC0xMjYsOSArMTI2LDEzIEBAIHB1YmxpYzoKICAg
ICBWYWx1ZVJlcChXYXNtOjpWYWx1ZUxvY2F0aW9uIGxvY2F0aW9uKQogICAgIHsKICAgICAgICAg
c3dpdGNoIChsb2NhdGlvbi5raW5kKCkpIHsKLSAgICAgICAgY2FzZSBXYXNtOjpWYWx1ZUxvY2F0
aW9uOjpLaW5kOjpSZWdpc3RlcjoKKyAgICAgICAgY2FzZSBXYXNtOjpWYWx1ZUxvY2F0aW9uOjpL
aW5kOjpHUFJSZWdpc3RlcjoKICAgICAgICAgICAgIG1fa2luZCA9IFJlZ2lzdGVyOwotICAgICAg
ICAgICAgdS5yZWcgPSBsb2NhdGlvbi5yZWcoKTsKKyAgICAgICAgICAgIHUucmVnID0gbG9jYXRp
b24uanNyKCkucGF5bG9hZEdQUigpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
V2FzbTo6VmFsdWVMb2NhdGlvbjo6S2luZDo6RlBSUmVnaXN0ZXI6CisgICAgICAgICAgICBtX2tp
bmQgPSBSZWdpc3RlcjsKKyAgICAgICAgICAgIHUucmVnID0gbG9jYXRpb24uZnByKCk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXYXNtOjpWYWx1ZUxvY2F0aW9uOjpLaW5kOjpT
dGFjazoKICAgICAgICAgICAgIG1fa2luZCA9IFN0YWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKaW5kZXggMDhhMjM1ODA0NGZkNjM1
OTcwMzIzYjAxMmM5Yzg3ZTM5NWUzZTY5OC4uMDAwMTQ3OTcwNDEyNmRhMDJkOGFjMmYzNTE3OTQz
NDM0M2JkNTlmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5
dGVjb2RlRHVtcGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0
ZWNvZGVEdW1wZXIuY3BwCkBAIC00MTMsNyArNDEzLDcgQEAgQ1N0cmluZyBCeXRlY29kZUR1bXBl
cjo6Zm9ybWF0Q29uc3RhbnQoVHlwZSB0eXBlLCB1aW50NjRfdCBjb25zdGFudCkgY29uc3QKICAg
ICAgICAgaWYgKGlzRnVuY3JlZih0eXBlKSB8fCBpc0V4dGVybnJlZih0eXBlKSkgewogICAgICAg
ICAgICAgaWYgKEpTVmFsdWU6OmRlY29kZShjb25zdGFudCkgPT0ganNOdWxsKCkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuICJudWxsIjsKLSAgICAgICAgICAgIHJldHVybiB0b0NTdHJpbmcoUmF3
UG9pbnRlcihiaXR3aXNlX2Nhc3Q8dm9pZCo+KGNvbnN0YW50KSkpOworICAgICAgICAgICAgcmV0
dXJuIHRvQ1N0cmluZyhSYXdQb2ludGVyKGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8
dWludHB0cl90Pihjb25zdGFudCkpKSk7CiAgICAgICAgIH0KIAogICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyL0NhbGxGcmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0NhbGxGcmFtZS5oCmluZGV4IGI0ZmNiYWNmYzBlMjI2ZjdjNjM0N2Y1ODliMWE4ZDM0MTRiY2Zj
NzIuLjVlMmZjOWI0Y2M1YjQ0ODYyMWMzZGYwNjZkZmE4YTQ5M2U2ZWRiZTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKQEAgLTE2Nyw4ICsxNjcs
OCBAQCBuYW1lc3BhY2UgSlNDICB7CiAgICAgICAgIC8vIHRvIHNlZSBpZiBpdCdzIGEgY2VsbCwg
YW5kIGlmIGl0J3Mgbm90LCB3ZSB0aHJvdyBhbiBleGNlcHRpb24uCiAgICAgICAgIGlubGluZSBK
U1ZhbHVlIGd1YXJhbnRlZWRKU1ZhbHVlQ2FsbGVlKCkgY29uc3Q7CiAgICAgICAgIGlubGluZSBK
U09iamVjdCoganNDYWxsZWUoKSBjb25zdDsKLSAgICAgICAgQ2FsbGVlQml0cyBjYWxsZWUoKSBj
b25zdCB7IHJldHVybiBDYWxsZWVCaXRzKHRoaXNbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVT
bG90OjpjYWxsZWUpXS5wb2ludGVyKCkpOyB9Ci0gICAgICAgIFNVUFBSRVNTX0FTQU4gQ2FsbGVl
Qml0cyB1bnNhZmVDYWxsZWUoKSBjb25zdCB7IHJldHVybiBDYWxsZWVCaXRzKHRoaXNbc3RhdGlj
X2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXS5hc2FuVW5zYWZlUG9pbnRlcigpKTsg
fQorICAgICAgICBDYWxsZWVCaXRzIGNhbGxlZSgpIGNvbnN0IHsgcmV0dXJuIENhbGxlZUJpdHMo
dGhpc1tzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSldLnVuYm94ZWRJbnQ2
NCgpKTsgfQorICAgICAgICBTVVBQUkVTU19BU0FOIENhbGxlZUJpdHMgdW5zYWZlQ2FsbGVlKCkg
Y29uc3QgeyByZXR1cm4gQ2FsbGVlQml0cyh0aGlzW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1l
U2xvdDo6Y2FsbGVlKV0uYXNhblVuc2FmZVVuYm94ZWRJbnQ2NCgpKTsgfQogICAgICAgICBDb2Rl
QmxvY2sqIGNvZGVCbG9jaygpIGNvbnN0OwogICAgICAgICBDb2RlQmxvY2sqKiBhZGRyZXNzT2ZD
b2RlQmxvY2soKSBjb25zdCB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8Q29kZUJsb2NrKio+KHRoaXMg
KyBzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNvZGVCbG9jaykpOyB9CiAgICAgICAg
IGlubGluZSBTVVBQUkVTU19BU0FOIENvZGVCbG9jayogdW5zYWZlQ29kZUJsb2NrKCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbGVlQml0
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxlZUJpdHMuaAppbmRl
eCAxOGJiN2VmN2ZhOGM3YzM5ZjNkNzFiYTk5NjYyMmIxZDZkNzkxZjU4Li5kZWEzYWU1NTgxNjAz
Y2NlM2RhNjViYzczYTk0ZjE5MTU3M2ExYjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvQ2FsbGVlQml0cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmgKQEAgLTM5LDExICszOSwyMSBAQCBjbGFzcyBKU0Nl
bGw7CiBjbGFzcyBDYWxsZWVCaXRzIHsKIHB1YmxpYzoKICAgICBDYWxsZWVCaXRzKCkgPSBkZWZh
dWx0OwotICAgIENhbGxlZUJpdHModm9pZCogcHRyKSA6IG1fcHRyKHB0cikgeyB9IAorICAgIENh
bGxlZUJpdHMoaW50NjRfdCB2YWx1ZSkKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICA6IG1f
cHRyIHsgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odmFsdWUpIH0KKyNlbGlmIFVTRShKU1ZBTFVF
MzJfNjQpCisgICAgICAgIDogbV9wdHIgeyByZWludGVycHJldF9jYXN0PHZvaWQqPihKU1ZhbHVl
OjpkZWNvZGUodmFsdWUpLnBheWxvYWQoKSkgfQorICAgICAgICAsIG1fdGFnIHsgSlNWYWx1ZTo6
ZGVjb2RlKHZhbHVlKS50YWcoKSB9CisjZW5kaWYKKyAgICB7IH0KIAogICAgIENhbGxlZUJpdHMm
IG9wZXJhdG9yPShKU0NlbGwqIGNlbGwpCiAgICAgewogICAgICAgICBtX3B0ciA9IGNlbGw7Cisj
aWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgbV90YWcgPSBKU1ZhbHVlOjpDZWxsVGFnOwor
I2VuZGlmCiAgICAgICAgIEFTU0VSVChpc0NlbGwoKSk7CiAgICAgICAgIHJldHVybiAqdGhpczsK
ICAgICB9CkBAIC01MSwxOCArNjEsMjQgQEAgcHVibGljOgogI2lmIEVOQUJMRShXRUJBU1NFTUJM
WSkKICAgICBzdGF0aWMgdm9pZCogYm94V2FzbShXYXNtOjpDYWxsZWUqIGNhbGxlZSkKICAgICB7
Ci0gICAgICAgIENhbGxlZUJpdHMgcmVzdWx0KHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihjYWxsZWUpIHwgSlNWYWx1ZTo6V2FzbVRhZykpOworI2lm
IFVTRShKU1ZBTFVFNjQpCisgICAgICAgIENhbGxlZUJpdHMgcmVzdWx0IHsgcmVpbnRlcnByZXRf
Y2FzdDxpbnQ2NF90PihjYWxsZWUpIHwgSlNWYWx1ZTo6V2FzbVRhZyB9OwogICAgICAgICBBU1NF
UlQocmVzdWx0LmlzV2FzbSgpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdC5yYXdQdHIoKTsKKyNl
bGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJldHVybiBjYWxsZWU7IC8vIFRoZSBwb2lu
dGVyIGlzIGFzIGlzLCBidXQgdGhlIGNvcnJlc3BvbmRpbmcgdGFnIGZpZWxkIG5lZWRzIHRvIGJl
IHNldCB0byBXYXNtVGFnIHNlcGFyYXRlbHkuCisjZW5kaWYKICAgICB9CiAjZW5kaWYKIAogICAg
IGJvb2wgaXNXYXNtKCkgY29uc3QKICAgICB7Ci0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotICAg
ICAgICByZXR1cm4gKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtX3B0cikgJiBKU1ZhbHVl
OjpXYXNtTWFzaykgPT0gSlNWYWx1ZTo6V2FzbVRhZzsKLSNlbHNlCisjaWYgIUVOQUJMRShXRUJB
U1NFTUJMWSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworI2VsaWYgVVNFKEpTVkFMVUU2NCkKKyAg
ICAgICAgcmV0dXJuIChyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4obV9wdHIpICYgSlNWYWx1
ZTo6V2FzbU1hc2spID09IEpTVmFsdWU6Oldhc21UYWc7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0
KQorICAgICAgICByZXR1cm4gbV90YWcgPT0gSlNWYWx1ZTo6V2FzbVRhZzsKICNlbmRpZgogICAg
IH0KICAgICBib29sIGlzQ2VsbCgpIGNvbnN0IHsgcmV0dXJuICFpc1dhc20oKTsgfQpAQCAtNzcs
MTQgKzkzLDIxIEBAIHB1YmxpYzoKICAgICBXYXNtOjpDYWxsZWUqIGFzV2FzbUNhbGxlZSgpIGNv
bnN0CiAgICAgewogICAgICAgICBBU1NFUlQoaXNXYXNtKCkpOworI2lmIFVTRShKU1ZBTFVFNjQp
CiAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFdhc206OkNhbGxlZSo+KHJlaW50ZXJw
cmV0X2Nhc3Q8dWludHB0cl90PihtX3B0cikgJiB+SlNWYWx1ZTo6V2FzbVRhZyk7CisjZWxpZiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXYXNtOjpD
YWxsZWUqPihtX3B0cik7CisjZW5kaWYKICAgICB9CiAjZW5kaWYKIAogICAgIHZvaWQqIHJhd1B0
cigpIGNvbnN0IHsgcmV0dXJuIG1fcHRyOyB9Ci0gICAgCisKIHByaXZhdGU6CiAgICAgdm9pZCog
bV9wdHIgeyBudWxscHRyIH07CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICB1aW50MzJfdCBt
X3RhZyB7IEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcgfTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
UmVnaXN0ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5o
CmluZGV4IGQ4NzljOTBiZTMxMTc4NjIzM2Y1MjZiMTgzZWRmMWNiM2M3YmIzOGEuLjQ2MTgxM2M0
MWQzMzcyZGZkNGIxODEyMzI5MTUxOTQxMjFiZTJhZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oCkBAIC03Miw2ICs3MiwxMCBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgaW50NjRfdCB1bmJveGVkSW50NjQoKSBjb25zdDsKICAgICAgICAgaW50
NjRfdCBhc2FuVW5zYWZlVW5ib3hlZEludDY0KCkgY29uc3Q7CiAgICAgICAgIGJvb2wgdW5ib3hl
ZEJvb2xlYW4oKSBjb25zdDsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVF
MzJfNjQpCisgICAgICAgIGZsb2F0IHVuYm94ZWRGbG9hdCgpIGNvbnN0OworICAgICAgICBmbG9h
dCBhc2FuVW5zYWZlVW5ib3hlZEZsb2F0KCkgY29uc3Q7CisjZW5kaWYKICAgICAgICAgZG91Ymxl
IHVuYm94ZWREb3VibGUoKSBjb25zdDsKICAgICAgICAgZG91YmxlIGFzYW5VbnNhZmVVbmJveGVk
RG91YmxlKCkgY29uc3Q7CiAgICAgICAgIEpTQ2VsbCogdW5ib3hlZENlbGwoKSBjb25zdDsKQEAg
LTE4OCw2ICsxOTIsMTggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiAhIXBheWxv
YWQoKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgQUxXQVlTX0lOTElORSBmbG9hdCBSZWdpc3Rlcjo6dW5ib3hlZEZsb2F0KCkgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8ZmxvYXQ+KHBheWxvYWQoKSk7
CisgICAgfQorCisgICAgU1VQUFJFU1NfQVNBTiBBTFdBWVNfSU5MSU5FIGZsb2F0IFJlZ2lzdGVy
Ojphc2FuVW5zYWZlVW5ib3hlZEZsb2F0KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBi
aXR3aXNlX2Nhc3Q8ZmxvYXQ+KHBheWxvYWQoKSk7CisgICAgfQorI2VuZGlmCisKICAgICBBTFdB
WVNfSU5MSU5FIGRvdWJsZSBSZWdpc3Rlcjo6dW5ib3hlZERvdWJsZSgpIGNvbnN0CiAgICAgewog
ICAgICAgICByZXR1cm4gdS5udW1iZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3Nl
bWJseUhlbHBlcnMuaAppbmRleCAxYjkwMjg5OTIwNWY3YzkyOWIwNWYyNGJmYTRkOTE0NzcyYTFl
MzU5Li5lOTk0ZGUzMjIzMWQxM2U2YWQ1YWY5MDM0MDkxYjhjMzY1YTBiYzU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTEzODQsNyArMTM4NCwx
MCBAQCBwdWJsaWM6CiAgICAgICAgIGppdEFzc2VydElzSlNEb3VibGUoZ3ByKTsKICAgICAgICAg
cmV0dXJuIHVuYm94RG91YmxlV2l0aG91dEFzc2VydGlvbnMoZ3ByLCByZXN1bHRHUFIsIGZwciwg
bW9kZSk7CiAgICAgfQotICAgIAorICAgIHZvaWQgdW5ib3hEb3VibGUoSlNWYWx1ZVJlZ3MgcmVn
cywgRlBSUmVnIGZwcikKKyAgICB7CisgICAgICAgIHVuYm94RG91YmxlKHJlZ3MudGFnR1BSKCks
IHJlZ3MucGF5bG9hZEdQUigpLCBmcHIpOworICAgIH0KICAgICB2b2lkIGJveERvdWJsZShGUFJS
ZWcgZnByLCBKU1ZhbHVlUmVncyByZWdzLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFn
UmVnaXN0ZXJzKQogICAgIHsKICAgICAgICAgYm94RG91YmxlKGZwciwgcmVncy5ncHIoKSwgbW9k
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRPZmZz
ZXRMaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExp
c3QuY3BwCmluZGV4IGVkODMwM2RlNDFiNTc0YWZjZTkyODk3Y2YwYTlkNWFkZWY0MDgxMTUuLmJh
ZDIwMjlmN2NmOTBlNTFmNTAzZWM2ZTY5ZWM5NTgyOWMzNjk2M2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3QuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3QuY3BwCkBAIC0zOSwxOCAr
MzksNDIgQEAgUmVnaXN0ZXJBdE9mZnNldExpc3Q6OlJlZ2lzdGVyQXRPZmZzZXRMaXN0KCkgeyB9
CiBSZWdpc3RlckF0T2Zmc2V0TGlzdDo6UmVnaXN0ZXJBdE9mZnNldExpc3QoUmVnaXN0ZXJTZXQg
cmVnaXN0ZXJTZXQsIE9mZnNldEJhc2VUeXBlIG9mZnNldEJhc2VUeXBlKQogICAgIDogbV9yZWdp
c3RlcnMocmVnaXN0ZXJTZXQubnVtYmVyT2ZTZXRSZWdpc3RlcnMoKSkKIHsKLSAgICBzaXplX3Qg
bnVtYmVyT2ZSZWdpc3RlcnMgPSByZWdpc3RlclNldC5udW1iZXJPZlNldFJlZ2lzdGVycygpOwot
ICAgIHB0cmRpZmZfdCBvZmZzZXQgPSAwOwotICAgIAotICAgIGlmIChvZmZzZXRCYXNlVHlwZSA9
PSBGcmFtZVBvaW50ZXJCYXNlZCkKLSAgICAgICAgb2Zmc2V0ID0gLShzdGF0aWNfY2FzdDxwdHJk
aWZmX3Q+KG51bWJlck9mUmVnaXN0ZXJzKSAqIHNpemVvZihDUFVSZWdpc3RlcikpOworICAgIGNv
bnN0ZXhwciBzaXplX3QgU2l6ZU9mR1BSID0gc2l6ZW9mKENQVVJlZ2lzdGVyKTsKKyAgICBjb25z
dGV4cHIgc2l6ZV90IFNpemVPZkZQUiA9IHNpemVvZihkb3VibGUpOwogCisjaWYgVVNFKEpTVkFM
VUU2NCkKKyAgICBzdGF0aWNfYXNzZXJ0KFNpemVPZkdQUiA9PSBTaXplT2ZGUFIpOworICAgIHNp
emVfdCBudW1iZXJPZlJlZ3MgPSByZWdpc3RlclNldC5udW1iZXJPZlNldFJlZ2lzdGVycygpOwor
ICAgIG1fc2l6ZU9mQXJlYUluQnl0ZXMgPSBudW1iZXJPZlJlZ3MgKiBTaXplT2ZHUFI7CisjZWxp
ZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIHN0YXRpY19hc3NlcnQoMiAqIFNpemVPZkdQUiA9PSBT
aXplT2ZGUFIpOworICAgIHNpemVfdCBudW1iZXJPZkdQUnMgPSByZWdpc3RlclNldC5udW1iZXJP
ZlNldEdQUnMoKTsKKyAgICBzaXplX3QgbnVtYmVyT2ZGUFJzID0gcmVnaXN0ZXJTZXQubnVtYmVy
T2ZTZXRGUFJzKCk7CisgICAgaWYgKG51bWJlck9mRlBScykKKyAgICAgICAgbnVtYmVyT2ZHUFJz
ID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mPDI+KG51bWJlck9mR1BScyk7CisgICAgbV9zaXpl
T2ZBcmVhSW5CeXRlcyA9IG51bWJlck9mR1BScyAqIFNpemVPZkdQUiArIG51bWJlck9mRlBScyAq
IFNpemVPZkZQUjsKKyNlbmRpZgorCisgICAgcHRyZGlmZl90IHN0YXJ0T2Zmc2V0ID0gMDsKKyAg
ICBpZiAob2Zmc2V0QmFzZVR5cGUgPT0gRnJhbWVQb2ludGVyQmFzZWQpCisgICAgICAgIHN0YXJ0
T2Zmc2V0ID0gLXN0YXRpY19jYXN0PHB0cmRpZmZfdD4obV9zaXplT2ZBcmVhSW5CeXRlcyk7CisK
KyAgICBwdHJkaWZmX3Qgb2Zmc2V0ID0gc3RhcnRPZmZzZXQ7CiAgICAgdW5zaWduZWQgaW5kZXgg
PSAwOwogICAgIHJlZ2lzdGVyU2V0LmZvckVhY2goWyZdIChSZWcgcmVnKSB7CisgICAgICAgIHNp
emVfdCByZWdpc3RlclNpemUgPSBTaXplT2ZHUFI7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAg
ICAgICAgaWYgKHJlZy5pc0ZQUigpKSB7CisgICAgICAgICAgICByZWdpc3RlclNpemUgPSBTaXpl
T2ZGUFI7CisgICAgICAgICAgICBvZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Y8U2l6
ZU9mRlBSPihvZmZzZXQpOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgbV9yZWdpc3RlcnNb
aW5kZXhdID0gUmVnaXN0ZXJBdE9mZnNldChyZWcsIG9mZnNldCk7Ci0gICAgICAgIG9mZnNldCAr
PSBzaXplb2YoQ1BVUmVnaXN0ZXIpOworICAgICAgICBvZmZzZXQgKz0gcmVnaXN0ZXJTaXplOwog
ICAgICAgICArK2luZGV4OwogICAgIH0pOworCisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVf
dD4ob2Zmc2V0IC0gc3RhcnRPZmZzZXQpID09IG1fc2l6ZU9mQXJlYUluQnl0ZXMpOwogfQogCiB2
b2lkIFJlZ2lzdGVyQXRPZmZzZXRMaXN0OjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmgKaW5k
ZXggZDExN2NmNzVlMDk4ODg0ODNlNzY1ZTUyYTNlYzc2ZjIyMmE3MTM4My4uMmEwZThiOWQxMjU1
NDViNDA0MjE3N2RlNjQyNjQyOGQyZWQ4ZDI2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3QuaApAQCAtNjUsMTEgKzY1LDE0IEBAIHB1Ymxp
YzoKICAgICBGaXhlZFZlY3RvcjxSZWdpc3RlckF0T2Zmc2V0Pjo6Y29uc3RfaXRlcmF0b3IgYmVn
aW4oKSBjb25zdCB7IHJldHVybiBtX3JlZ2lzdGVycy5iZWdpbigpOyB9CiAgICAgRml4ZWRWZWN0
b3I8UmVnaXN0ZXJBdE9mZnNldD46OmNvbnN0X2l0ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVnaXN0ZXJzLmVuZCgpOyB9CiAKKyAgICBzaXplX3Qgc2l6ZU9mQXJlYUluQnl0ZXMoKSBj
b25zdCB7IHJldHVybiBtX3NpemVPZkFyZWFJbkJ5dGVzOyB9CisKICAgICBzdGF0aWMgY29uc3Qg
UmVnaXN0ZXJBdE9mZnNldExpc3QmIGxsaW50QmFzZWxpbmVDYWxsZWVTYXZlUmVnaXN0ZXJzKCk7
IC8vIFJlZ2lzdGVycyBhbmQgT2Zmc2V0cyBzYXZlZCBhbmQgdXNlZCBieSB0aGUgTExJbnQuCiAg
ICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXRMaXN0JiBkZmdDYWxsZWVTYXZlUmVnaXN0
ZXJzKCk7IC8vIFJlZ2lzdGVycyBhbmQgT2Zmc2V0cyBzYXZlZCBhbmQgdXNlZCBieSBERkcuCiAK
IHByaXZhdGU6CiAgICAgRml4ZWRWZWN0b3I8UmVnaXN0ZXJBdE9mZnNldD4gbV9yZWdpc3RlcnM7
CisgICAgc2l6ZV90IG1fc2l6ZU9mQXJlYUluQnl0ZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5jcHAKaW5kZXggYjJlZmY2
NTI0YzRiMjZlYzY5ODViMjk1ZGRmNDFhNWI0NzUyMTQ0Mi4uZTc5MDQ4ZGE3NzA2MzcxNzllYTQ2
ZDdiNjAwYmJlYTlmZTA3MWZhNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9SZWdpc3RlclNldC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3Rl
clNldC5jcHAKQEAgLTk0LDYgKzk0LDggQEAgUmVnaXN0ZXJTZXQgUmVnaXN0ZXJTZXQ6Om1hY3Jv
U2NyYXRjaFJlZ2lzdGVycygpCiAgICAgcmV0dXJuIFJlZ2lzdGVyU2V0KE1hY3JvQXNzZW1ibGVy
OjpzX3NjcmF0Y2hSZWdpc3Rlcik7CiAjZWxpZiBDUFUoQVJNNjQpIHx8IENQVShSSVNDVjY0KQog
ICAgIHJldHVybiBSZWdpc3RlclNldChNYWNyb0Fzc2VtYmxlcjo6ZGF0YVRlbXBSZWdpc3Rlciwg
TWFjcm9Bc3NlbWJsZXI6Om1lbW9yeVRlbXBSZWdpc3Rlcik7CisjZWxpZiBDUFUoQVJNX1RIVU1C
MikKKyAgICByZXR1cm4gUmVnaXN0ZXJTZXQoTWFjcm9Bc3NlbWJsZXI6OmRhdGFUZW1wUmVnaXN0
ZXIsIE1hY3JvQXNzZW1ibGVyOjphZGRyZXNzVGVtcFJlZ2lzdGVyKTsKICNlbGlmIENQVShNSVBT
KQogICAgIFJlZ2lzdGVyU2V0IHJlc3VsdDsKICAgICByZXN1bHQuc2V0KE1hY3JvQXNzZW1ibGVy
OjppbW1UZW1wUmVnaXN0ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCmluZGV4IGU3NmRhZGEwZDMzMjljMGQyNWJmYzkzYzE1
ZTg4N2IzMzhlOTdlMzUuLmI0NzAzMTE1YjNhNmE2MDM4NzRhMjA1YTYzM2M0ZGYwOTA1NTI1Y2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21D
b25maWcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNt
Q29uZmlnLmgKQEAgLTE0Myw2ICsxNDMsMTIgQEAKICNkZWZpbmUgT0ZGTElORV9BU01fSlNWQUxV
RTY0IDAKICNlbmRpZgogCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyNkZWZpbmUgT0ZGTElORV9B
U01fSlNWQUxVRTMyXzY0IDEKKyNlbHNlCisjZGVmaW5lIE9GRkxJTkVfQVNNX0pTVkFMVUUzMl82
NCAwCisjZW5kaWYKKwogI2lmIFVTRShCSUdJTlQzMikKICNkZWZpbmUgT0ZGTElORV9BU01fQklH
SU5UMzIgMQogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggYWQyNTAxN2VmMGI0N2ZjMGIwNTA0
NzQ3ZGI1NzViOTE1MDE4YWZlYS4uNzA0MDFlNDViZTZkMDJiOWViYjJlMDRhM2E4OGJjOTg5ZmJl
MzM2MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTM4LDE4ICszOCwzNCBAQCBtYWNybyBnZXR1T3Bl
cmFuZFdpZGUxNkpTKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCiAgICAgbG9hZGggY29u
c3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogMiArIE9wY29kZUlEV2lk
ZTE2U2l6ZUpTW1BCLCBQQywgMV0sIGRzdAogZW5kCiAKK21hY3JvIGdldHVPcGVyYW5kV2lkZTE2
V2FzbShvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQorICAgIGxvYWRoIGNvbnN0ZXhwciAl
b3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRleCAqIDIgKyBPcGNvZGVJRFdpZGUxNlNpemVX
YXNtW1BCLCBQQywgMV0sIGRzdAorZW5kCisKIG1hY3JvIGdldE9wZXJhbmRXaWRlMTZKUyhvcGNv
ZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQogICAgIGxvYWRoc2kgY29uc3RleHByICVvcGNvZGVT
dHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogMiArIE9wY29kZUlEV2lkZTE2U2l6ZUpTW1BCLCBQ
QywgMV0sIGRzdAogZW5kCiAKK21hY3JvIGdldE9wZXJhbmRXaWRlMTZXYXNtKG9wY29kZVN0cnVj
dCwgZmllbGROYW1lLCBkc3QpCisgICAgbG9hZGhzaSBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVf
JWZpZWxkTmFtZSVfaW5kZXggKiAyICsgT3Bjb2RlSURXaWRlMTZTaXplV2FzbVtQQiwgUEMsIDFd
LCBkc3QKK2VuZAorCiBtYWNybyBnZXR1T3BlcmFuZFdpZGUzMkpTKG9wY29kZVN0cnVjdCwgZmll
bGROYW1lLCBkc3QpCiAgICAgbG9hZGkgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5h
bWUlX2luZGV4ICogNCArIE9wY29kZUlEV2lkZTMyU2l6ZUpTW1BCLCBQQywgMV0sIGRzdAogZW5k
CiAKK21hY3JvIGdldHVPcGVyYW5kV2lkZTMyV2FzbShvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwg
ZHN0KQorICAgIGxvYWRpIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRl
eCAqIDQgKyBPcGNvZGVJRFdpZGUzMlNpemVXYXNtW1BCLCBQQywgMV0sIGRzdAorZW5kCisKIG1h
Y3JvIGdldE9wZXJhbmRXaWRlMzJKUyhvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQogICAg
IGxvYWRpcyBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiA0ICsg
T3Bjb2RlSURXaWRlMzJTaXplSlNbUEIsIFBDLCAxXSwgZHN0CiBlbmQKIAorbWFjcm8gZ2V0T3Bl
cmFuZFdpZGUzMldhc20ob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkKKyAgICBsb2FkaXMg
Y29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogNCArIE9wY29kZUlE
V2lkZTMyU2l6ZVdhc21bUEIsIFBDLCAxXSwgZHN0CitlbmQKKwogbWFjcm8gbWFrZVJldHVybihn
ZXQsIGRpc3BhdGNoLCBmbikKICAgICBmbihtYWNybyh0YWcsIHBheWxvYWQpCiAgICAgICAgIG1v
dmUgdGFnLCB0NQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFz
c2VtYmx5LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseS5hc20K
aW5kZXggMjRjMTRiM2Y4ZjZiNWY0NTViZDBhNWE3N2M1OTMyYmU5ZjY4ZWVhZi4uYTc0ZThjOTAy
OWRmNjYzNDAyYzg4NjE5MWU1NGQ1YzZkZDc1ODQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvV2ViQXNzZW1ibHkuYXNtCkBAIC0zMSw1NiArMzEsODAgQEAgaWYgSEFWRV9GQVNU
X1RMUwogZW5kCiAKIGlmIFg4Nl82NAotICAgIGNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50R1BS
cyA9IDYKKyAgICBjb25zdCBOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgPSA2CiBlbHNpZiBBUk02
NCBvciBBUk02NEUgb3IgUklTQ1Y2NAotICAgIGNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50R1BS
cyA9IDgKKyAgICBjb25zdCBOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgPSA4CitlbHNpZiBBUk12
NworICAgIGNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyA9IDIKIGVsc2UKICAgICBlcnJv
cgogZW5kCisKIGNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50RlBScyA9IDgKLWNvbnN0IE51bWJl
ck9mV2FzbUFyZ3VtZW50cyA9IE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIE51bWJlck9mV2Fz
bUFyZ3VtZW50RlBScworCitjb25zdCBOdW1iZXJPZldhc21Bcmd1bWVudHMgPSBOdW1iZXJPZldh
c21Bcmd1bWVudEpTUnMgKyBOdW1iZXJPZldhc21Bcmd1bWVudEZQUnMKIAogIyBBbGwgY2FsbGVl
IHNhdmVzIG11c3QgbWF0Y2ggdGhlIGRlZmluaXRpb24gaW4gV2FzbUNhbGxlZS5jcHAKIAogIyBU
aGVzZSBtdXN0IG1hdGNoIHRoZSBkZWZpbml0aW9uIGluIFdhc21NZW1vcnlJbmZvcm1hdGlvbi5j
cHAKLWNvbnN0IHdhc21JbnN0YW5jZSA9IGNzcjAKLWNvbnN0IG1lbW9yeUJhc2UgPSBjc3IzCi1j
b25zdCBib3VuZHNDaGVja2luZ1NpemUgPSBjc3I0CitpZiBYODZfNjQgb3IgQVJNNjQgb3IgQVJN
NjRFCisgICAgY29uc3Qgd2FzbUluc3RhbmNlID0gY3NyMAorICAgIGNvbnN0IG1lbW9yeUJhc2Ug
PSBjc3IzCisgICAgY29uc3QgYm91bmRzQ2hlY2tpbmdTaXplID0gY3NyNAorZWxzaWYgQVJNdjcK
KyAgICBjb25zdCB3YXNtSW5zdGFuY2UgPSBjc3IwCisgICAgY29uc3QgbWVtb3J5QmFzZSA9IGlu
dmFsaWRHUFIKKyAgICBjb25zdCBib3VuZHNDaGVja2luZ1NpemUgPSBpbnZhbGlkR1BSCitlbHNl
CisgICAgZXJyb3IKK2VuZAogCiAjIFRoaXMgbXVzdCBtYXRjaCB0aGUgZGVmaW5pdGlvbiBpbiBM
b3dMZXZlbEludGVycHJldGVyLmFzbQogaWYgWDg2XzY0CiAgICAgY29uc3QgUEIgPSBjc3IyCiBl
bHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAogICAgIGNvbnN0IFBCID0gY3NyNworZWxz
aWYgQVJNdjcKKyAgICBjb25zdCBQQiA9IGNzcjEKIGVsc2UKICAgICBlcnJvcgogZW5kCiAKLW1h
Y3JvIGZvckVhY2hBcmd1bWVudEdQUihmbikKLSAgICBmbigwICogOCwgd2EwKQotICAgIGZuKDEg
KiA4LCB3YTEpCi0gICAgZm4oMiAqIDgsIHdhMikKLSAgICBmbigzICogOCwgd2EzKQotICAgIGZu
KDQgKiA4LCB3YTQpCi0gICAgZm4oNSAqIDgsIHdhNSkKLSAgICBpZiBBUk02NCBvciBBUk02NEUK
LSAgICAgICAgZm4oNiAqIDgsIHdhNikKLSAgICAgICAgZm4oNyAqIDgsIHdhNykKKyMgSGVscGVy
IG1hY3JvcworCisjIE9uIEpTVkFMVUU2NCwgZWFjaCA2NC1iaXQgYXJndW1lbnQgR1BSIGhvbGRz
IG9uZSB3aG9sZSBXYXNtIHZhbHVlLgorIyBPbiBKU1ZBTFVFMzJfNjQsIGEgY29uc2VjdXRpdmUg
cGFpciBvZiBldmVuL29kZCBudW1iZXJlZCBHUFJzIGhvbGQgYSBzaW5nbGUKKyMgV2FzbSB2YWx1
ZSAoZXZlbiBpZiB0aGF0IHZhbHVlIGlzIGkzMi9mMzIsIHRoZSBvZGQgbnVtYmVyZWQgR1BSIGhv
bGRzIHRoZQorIyBtb3JlIHNpZ25pZmljYW50IHdvcmQpLgorbWFjcm8gZm9yRWFjaEFyZ3VtZW50
SlNSKGZuKQorICAgIGlmIEpTVkFMVUU2NAorICAgICAgICBmbigwICogOCwgd2EwKQorICAgICAg
ICBmbigxICogOCwgd2ExKQorICAgICAgICBmbigyICogOCwgd2EyKQorICAgICAgICBmbigzICog
OCwgd2EzKQorICAgICAgICBmbig0ICogOCwgd2E0KQorICAgICAgICBmbig1ICogOCwgd2E1KQor
ICAgICAgICBpZiBBUk02NCBvciBBUk02NEUKKyAgICAgICAgICAgIGZuKDYgKiA4LCB3YTYpCisg
ICAgICAgICAgICBmbig3ICogOCwgd2E3KQorICAgICAgICBlbmQKKyAgICBlbHNlCisgICAgICAg
IGZuKDAgKiA4LCB3YTEsIHdhMCkKKyAgICAgICAgZm4oMSAqIDgsIHdhMywgd2EyKQogICAgIGVu
ZAogZW5kCiAKIG1hY3JvIGZvckVhY2hBcmd1bWVudEZQUihmbikKLSAgICBmbigoTnVtYmVyT2ZX
YXNtQXJndW1lbnRHUFJzICsgMCkgKiA4LCB3ZmEwKQotICAgIGZuKChOdW1iZXJPZldhc21Bcmd1
bWVudEdQUnMgKyAxKSAqIDgsIHdmYTEpCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50R1BS
cyArIDIpICogOCwgd2ZhMikKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgMykg
KiA4LCB3ZmEzKQotICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyA0KSAqIDgsIHdm
YTQpCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDUpICogOCwgd2ZhNSkKLSAg
ICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgNikgKiA4LCB3ZmE2KQotICAgIGZuKChO
dW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyA3KSAqIDgsIHdmYTcpCisgICAgZm4oKE51bWJlck9m
V2FzbUFyZ3VtZW50SlNScyArIDApICogOCwgd2ZhMCkKKyAgICBmbigoTnVtYmVyT2ZXYXNtQXJn
dW1lbnRKU1JzICsgMSkgKiA4LCB3ZmExKQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEpT
UnMgKyAyKSAqIDgsIHdmYTIpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIDMp
ICogOCwgd2ZhMykKKyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgNCkgKiA4LCB3
ZmE0KQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyA1KSAqIDgsIHdmYTUpCisg
ICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIDYpICogOCwgd2ZhNikKKyAgICBmbigo
TnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgNykgKiA4LCB3ZmE3KQogZW5kCiAKLSMgSGVscGVy
IG1hY3JvcwogIyBGSVhNRTogRXZlbnR1YWxseSB0aGlzIHNob3VsZCBiZSB1bmlmaWVkIHdpdGgg
dGhlIEpTIHZlcnNpb25zCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDM2NTYKIApAQCAtMTMwLDEwICsxNTQsMTUgQEAgbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZv
clByb2xvZ3VlKGNvZGVCbG9ja1JlZ2lzdGVyKQogICAgICAgICAgICAgYnRweiByMCwgLnJlY292
ZXIKICAgICAgICAgICAgIG1vdmUgcjAsIHdzMAogCi0gICAgICAgICAgICBmb3JFYWNoQXJndW1l
bnRHUFIobWFjcm8gKG9mZnNldCwgZ3ByKQoraWYgSlNWQUxVRTY0CisgICAgICAgICAgICBmb3JF
YWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByKQogICAgICAgICAgICAgICAgIGxvYWRx
IC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJd
LCBncHIKICAgICAgICAgICAgIGVuZCkKLQorZWxzZQorICAgICAgICAgICAgZm9yRWFjaEFyZ3Vt
ZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwck1zdywgZ3BMc3cpCisgICAgICAgICAgICAgICAgbG9h
ZDJpYSAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhb
Y2ZyXSwgZ3BMc3csIGdwck1zdworICAgICAgICAgICAgZW5kKQorZW5kCiAgICAgICAgICAgICBm
b3JFYWNoQXJndW1lbnRGUFIobWFjcm8gKG9mZnNldCwgZnByKQogICAgICAgICAgICAgICAgIGxv
YWRkIC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtj
ZnJdLCBmcHIKICAgICAgICAgICAgIGVuZCkKQEAgLTIwMSw2ICsyMzAsOSBAQCBtYWNybyBwcmVz
ZXJ2ZUNhbGxlZVNhdmVzVXNlZEJ5V2FzbSgpCiAgICAgZWxzaWYgWDg2XzY0IG9yIFJJU0NWNjQK
ICAgICAgICAgc3RvcmVwIFBCLCAtMHg4W2Nmcl0KICAgICAgICAgc3RvcmVwIHdhc21JbnN0YW5j
ZSwgLTB4MTBbY2ZyXQorICAgIGVsc2lmIEFSTXY3CisgICAgICAgIHN0b3JlcCBQQiwgLTRbY2Zy
XQorICAgICAgICBzdG9yZXAgd2FzbUluc3RhbmNlLCAtOFtjZnJdCiAgICAgZWxzZQogICAgICAg
ICBlcnJvcgogICAgIGVuZApAQCAtMjE1LDYgKzI0Nyw5IEBAIG1hY3JvIHJlc3RvcmVDYWxsZWVT
YXZlc1VzZWRCeVdhc20oKQogICAgIGVsc2lmIFg4Nl82NCBvciBSSVNDVjY0CiAgICAgICAgIGxv
YWRwIC0weDhbY2ZyXSwgUEIKICAgICAgICAgbG9hZHAgLTB4MTBbY2ZyXSwgd2FzbUluc3RhbmNl
CisgICAgZWxzaWYgQVJNdjcKKyAgICAgICAgbG9hZHAgLTRbY2ZyXSwgUEIKKyAgICAgICAgbG9h
ZHAgLThbY2ZyXSwgd2FzbUluc3RhbmNlCiAgICAgZWxzZQogICAgICAgICBlcnJvcgogICAgIGVu
ZApAQCAtMjQ1LDEwICsyODAsMTIgQEAgZW5kCiBlbmQKIAogbWFjcm8gcmVsb2FkTWVtb3J5UmVn
aXN0ZXJzRnJvbUluc3RhbmNlKGluc3RhbmNlLCBzY3JhdGNoMSwgc2NyYXRjaDIpCitpZiBub3Qg
QVJNdjcKICAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRNZW1vcnlbaW5zdGFuY2Vd
LCBtZW1vcnlCYXNlCiAgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkQm91bmRzQ2hl
Y2tpbmdTaXplW2luc3RhbmNlXSwgYm91bmRzQ2hlY2tpbmdTaXplCiAgICAgY2FnZWRQcmltaXRp
dmVNYXlCZU51bGwobWVtb3J5QmFzZSwgYm91bmRzQ2hlY2tpbmdTaXplLCBzY3JhdGNoMSwgc2Ny
YXRjaDIpICMgSWYgYm91bmRzQ2hlY2tpbmdTaXplIGlzIDAsIHBvaW50ZXIgY2FuIGJlIGEgbnVs
bHB0ci4KIGVuZAorZW5kCiAKIG1hY3JvIHRocm93RXhjZXB0aW9uKGV4Y2VwdGlvbikKICAgICBz
dG9yZWkgY29uc3RleHByIFdhc206OkV4Y2VwdGlvblR5cGU6OiVleGNlcHRpb24lLCBBcmd1bWVu
dENvdW50SW5jbHVkaW5nVGhpcyArIFBheWxvYWRPZmZzZXRbY2ZyXQpAQCAtMjgwLDggKzMxNywx
MyBAQCBtYWNybyByZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxsKCkKICAgICBsb2FkaSBXYXNt
OjpMTEludENhbGxlZTo6bV9udW1DYWxsZWVMb2NhbHNbd3MxXSwgd3MxCiAgICAgbHNoaWZ0cCAz
LCB3czEKICAgICBhZGRwIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLCB3czEKK2lmIEFS
TXY3CisgICAgc3VicCBjZnIsIHdzMSwgd3MxCisgICAgbW92ZSB3czEsIHNwCitlbHNlCiAgICAg
c3VicCBjZnIsIHdzMSwgc3AKIGVuZAorZW5kCiAKIG1hY3JvIHdhc21Qcm9sb2d1ZShsb2FkV2Fz
bUluc3RhbmNlKQogICAgICMgU2V0IHVwIHRoZSBjYWxsIGZyYW1lIGFuZCBjaGVjayBpZiB3ZSBz
aG91bGQgT1NSLgpAQCAtMjkyLDYgKzMzNCw5IEBAIG1hY3JvIHdhc21Qcm9sb2d1ZShsb2FkV2Fz
bUluc3RhbmNlKQogCiAgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fb3duZXJbd2FzbUluc3Rh
bmNlXSwgd3MwCiAgICAgc3RvcmVwIHdzMCwgVGhpc0FyZ3VtZW50T2Zmc2V0W2Nmcl0KK2lmIG5v
dCBKU1ZBTFVFNjQKKyAgICBzdG9yZWkgQ2VsbFRhZywgVGFnT2Zmc2V0ICsgVGhpc0FyZ3VtZW50
T2Zmc2V0W2Nmcl0KK2VuZAogCiAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHdzMAogICAgIGFuZHAg
fjMsIHdzMApAQCAtMzAzLDYgKzM0OCwxMCBAQCBtYWNybyB3YXNtUHJvbG9ndWUobG9hZFdhc21J
bnN0YW5jZSkKICAgICBhZGRwIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLCB3czEKICAg
ICBzdWJwIGNmciwgd3MxLCB3czEKIAoraWYgbm90IEpTVkFMVUU2NAorICAgIHN1YnAgOCwgd3Mx
ICMgYWxpZ24gc3RhY2sgcG9pbnRlcgorZW5kCisKICAgICBicGEgd3MxLCBjZnIsIC5zdGFja092
ZXJmbG93CiAgICAgYnBiZXEgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkU3RhY2tMaW1pdFt3YXNt
SW5zdGFuY2VdLCB3czEsIC5zdGFja0hlaWdodE9LCiAKQEAgLTMxMiwxMCArMzYxLDE1IEBAIG1h
Y3JvIHdhc21Qcm9sb2d1ZShsb2FkV2FzbUluc3RhbmNlKQogLnN0YWNrSGVpZ2h0T0s6CiAgICAg
bW92ZSB3czEsIHNwCiAKLSAgICBmb3JFYWNoQXJndW1lbnRHUFIobWFjcm8gKG9mZnNldCwgZ3By
KQoraWYgSlNWQUxVRTY0CisgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdw
cikKICAgICAgICAgc3RvcmVxIGdwciwgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1Zp
cnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0KICAgICBlbmQpCi0KK2Vsc2UKKyAgICBmb3JFYWNoQXJn
dW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3LCBncExzdykKKyAgICAgICAgc3RvcmUyaWEg
Z3BMc3csIGdwck1zdywgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdp
c3RlcnMgKiA4W2Nmcl0KKyAgICBlbmQpCitlbmQKICAgICBmb3JFYWNoQXJndW1lbnRGUFIobWFj
cm8gKG9mZnNldCwgZnByKQogICAgICAgICBzdG9yZWQgZnByLCAtb2Zmc2V0IC0gOCAtIENhbGxl
ZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXQogICAgIGVuZCkKQEAgLTMyOSwx
NCArMzgzLDE2IEBAIG1hY3JvIHdhc21Qcm9sb2d1ZShsb2FkV2FzbUluc3RhbmNlKQogICAgIGxv
YWRpIFdhc206OkxMSW50Q2FsbGVlOjptX251bVZhcnNbd3MwXSwgd3MxCiAgICAgc3ViaSBOdW1i
ZXJPZldhc21Bcmd1bWVudHMgKyBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMsIHdz
MQogICAgIGJ0aXogd3MxLCAuemVyb0luaXRpYWxpemVMb2NhbHNEb25lCisgICAgbHNoaWZ0aSAz
LCB3czEKICAgICBuZWdpIHdzMQoraWYgSlNWQUxVRTY0CiAgICAgc3hpMnEgd3MxLCB3czEKK2Vu
ZAogICAgIGxlYXAgKE51bWJlck9mV2FzbUFyZ3VtZW50cyArIENhbGxlZVNhdmVTcGFjZUFzVmly
dHVhbFJlZ2lzdGVycyArIDEpICogLThbY2ZyXSwgd3MwCiAuemVyb0luaXRpYWxpemVMb2NhbHNM
b29wOgotICAgIGFkZHEgMSwgd3MxCi0gICAgc3RvcmVxIDAsIFt3czAsIHdzMSwgOF0KLSAgICBi
dHF6IHdzMSwgLnplcm9Jbml0aWFsaXplTG9jYWxzRG9uZQotICAgIGptcCAuemVyb0luaXRpYWxp
emVMb2NhbHNMb29wCisgICAgYWRkcCBQdHJTaXplLCB3czEKKyAgICBzdG9yZXAgMCwgW3dzMCwg
d3MxXQorICAgIGJ0cG56IHdzMSwgLnplcm9Jbml0aWFsaXplTG9jYWxzTG9vcAogLnplcm9Jbml0
aWFsaXplTG9jYWxzRG9uZToKIGVuZAogCkBAIC0zNzUsNiArNDMxLDI0IEBAIG1hY3JvIHNsb3dX
YXNtT3Aob3Bjb2RlTmFtZSkKICAgICB1bnByZWZpeGVkU2xvd1dhc21PcCh3YXNtXyVvcGNvZGVO
YW1lJSkKIGVuZAogCisjIEZsb2F0IHRvIGZsb2F0IHJvdW5kaW5nIG9wcworbWFjcm8gd2FzbVJv
dW5kaW5nT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBmbikKK2lmIEpTVkFMVUU2NCAjIEFs
bCBjdXJyZW50IDY0LWJpdCBwbGF0Zm9ybXMgaGF2ZSBpbnN0cnVjdGlvbnMgZm9yIHRoZXNlCisg
ICAgd2FzbU9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCitlbHNlCisgICAgc2xvd1dh
c21PcChvcGNvZGVOYW1lKQorZW5kCitlbmQKKworIyBpNjQgKHNpZ25lZC91bnNpZ25lZCkgdG8g
ZjMyIG9yIGY2NAorbWFjcm8gd2FzbUk2NFRvRk9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwg
Zm4pCitpZiBKU1ZBTFVFNjQgIyBBbGwgY3VycmVudCA2NC1iaXQgcGxhdGZvcm1zIGhhdmUgaW5z
dHJ1Y3Rpb25zIGZvciB0aGVzZQorICAgIHdhc21PcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3Qs
IGZuKQorZWxzZQorICAgIHNsb3dXYXNtT3Aob3Bjb2RlTmFtZSkKK2VuZAorZW5kCisKICMgTWFj
cm8gdmVyc2lvbiBvZiBsb2FkIG9wZXJhdGlvbnM6IG1sb2FkW3N1ZmZpeF0KICMgbG9hZHMgZmll
bGQgZnJvbSB0aGUgaW5zdHJ1Y3Rpb24gc3RyZWFtIGFuZCBwZXJmb3JtcyBsb2FkW3N1ZmZpeF0g
dG8gZHN0CiBtYWNybyBmaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleChjdHgsIGZuKQpAQCAtMzk3
LDEyICs0NzEsMjEgQEAgbWFjcm8gbG9hZENvbnN0YW50T3JWYXJpYWJsZShjdHgsIGluZGV4LCBs
b2FkZXIpCiAgICAgZW5kKQogZW5kCiAKK2lmIEpTVkFMVUU2NAogbWFjcm8gbWxvYWRxKGN0eCwg
ZmllbGQsIGRzdCkKICAgICB3Z2V0cyhjdHgsIGZpZWxkLCBkc3QpCiAgICAgbG9hZENvbnN0YW50
T3JWYXJpYWJsZShjdHgsIGRzdCwgbWFjcm8gKGZyb20pCiAgICAgICAgIGxvYWRxIGZyb20sIGRz
dAogICAgIGVuZCkKIGVuZAorZWxzZQorbWFjcm8gbWxvYWQyaShjdHgsIGZpZWxkLCBkc3RNc3cs
IGRzdExzdykKKyAgICB3Z2V0cyhjdHgsIGZpZWxkLCBkc3RMc3cpCisgICAgbG9hZENvbnN0YW50
T3JWYXJpYWJsZShjdHgsIGRzdExzdywgbWFjcm8gKGZyb20pCisgICAgICAgIGxvYWQyaWEgZnJv
bSwgZHN0THN3LCBkc3RNc3cKKyAgICBlbmQpCitlbmQKK2VuZAogCiBtYWNybyBtbG9hZGkoY3R4
LCBmaWVsZCwgZHN0KQogICAgIHdnZXRzKGN0eCwgZmllbGQsIGRzdCkKQEAgLTQzNCwxMSArNTE3
LDE5IEBAIGVuZAogCiAjIFR5cGVkIHJldHVybnMKIAoraWYgSlNWQUxVRTY0CiBtYWNybyByZXR1
cm5xKGN0eCwgdmFsdWUpCiAgICAgd2dldHMoY3R4LCBtX2RzdCwgdDUpCiAgICAgc3RvcmVxIHZh
bHVlLCBbY2ZyLCB0NSwgOF0KICAgICBkaXNwYXRjaChjdHgpCiBlbmQKK2Vsc2UKK21hY3JvIHJl
dHVybjJpKGN0eCwgbXN3LCBsc3cpCisgICAgd2dldHMoY3R4LCBtX2RzdCwgdDUpCisgICAgc3Rv
cmUyaWEgbHN3LCBtc3csIFtjZnIsIHQ1LCA4XQorICAgIGRpc3BhdGNoKGN0eCkKK2VuZAorZW5k
CiAKIG1hY3JvIHJldHVybmkoY3R4LCB2YWx1ZSkKICAgICB3Z2V0cyhjdHgsIG1fZHN0LCB0NSkK
QEAgLTUxMSw3ICs2MDIsNyBAQCBtYWNybyB3YXNtQ29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lz
dGVyKQogZW5kCiAKIG9wKHdhc21fZnVuY3Rpb25fcHJvbG9ndWUsIG1hY3JvICgpCi0gICAgaWYg
bm90IFdFQkFTU0VNQkxZIG9yIG5vdCBKU1ZBTFVFNjQgb3IgQ19MT09QIG9yIENfTE9PUF9XSU4K
KyAgICBpZiBub3QgV0VCQVNTRU1CTFkgb3IgQ19MT09QIG9yIENfTE9PUF9XSU4KICAgICAgICAg
ZXJyb3IKICAgICBlbmQKIApAQCAtNTIwLDcgKzYxMSw3IEBAIG9wKHdhc21fZnVuY3Rpb25fcHJv
bG9ndWUsIG1hY3JvICgpCiBlbmQpCiAKIG9wKHdhc21fZnVuY3Rpb25fcHJvbG9ndWVfbm9fdGxz
LCBtYWNybyAoKQotICAgIGlmIG5vdCBXRUJBU1NFTUJMWSBvciBub3QgSlNWQUxVRTY0IG9yIENf
TE9PUCBvciBDX0xPT1BfV0lOCisgICAgaWYgbm90IFdFQkFTU0VNQkxZIG9yIENfTE9PUCBvciBD
X0xPT1BfV0lOCiAgICAgICAgIGVycm9yCiAgICAgZW5kCiAKQEAgLTYyMiwxNiArNzEzLDIzIEBA
IF93YXNtX2VudGVyOgogICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQyLCAweGRlYWQw
MGUxKQogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MiAgICAgICAgICAgICAgICAvLyB0MjxD
b2RlQmxvY2s+ID0gY2ZyLkNvZGVCbG9jawogICAgIGxvYWRpIFdhc206OkxMSW50Q2FsbGVlOjpt
X251bVZhcnNbdDJdLCB0MiAgICAgIC8vIHQyPHNpemVfdD4gPSB0MjxDb2RlQmxvY2s+Lm1fbnVt
VmFycwotICAgIHN1YnEgQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICsgTnVtYmVy
T2ZXYXNtQXJndW1lbnRzLCB0MgorICAgIHN1YmkgQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVn
aXN0ZXJzICsgTnVtYmVyT2ZXYXNtQXJndW1lbnRzLCB0MgogICAgIGJ0aXogdDIsIC5vcEVudGVy
RG9uZQotICAgIG1vdmUgY2ZyLCB0MQotICAgIHN1YnEgQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFs
UmVnaXN0ZXJzICogOCArIE51bWJlck9mV2FzbUFyZ3VtZW50cyAqIDgsIHQxCisgICAgc3VicCBj
ZnIsIChDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKyBOdW1iZXJPZldhc21Bcmd1
bWVudHMpICogU2xvdFNpemUsIHQxCisgICAgbHNoaWZ0aSAzLCB0MgogICAgIG5lZ2kgdDIKK2lm
IEpTVkFMVUU2NAogICAgIHN4aTJxIHQyLCB0MgorZW5kCisgICAgbW92ZSAwLCB0NgogLm9wRW50
ZXJMb29wOgotICAgIHN0b3JlcSAwLCBbdDEsIHQyLCA4XQotICAgIGFkZHEgMSwgdDIKLSAgICBi
dHFueiB0MiwgLm9wRW50ZXJMb29wCitpZiBKU1ZBTFVFNjQKKyAgICBzdG9yZXEgdDYsIFt0MSwg
dDJdCitlbHNlCisgICAgc3RvcmUyaWEgdDYsIHQ2LCBbdDEsIHQyXQorZW5kCisgICAgYWRkcCA4
LCB0MgorICAgIGJ0cG56IHQyLCAub3BFbnRlckxvb3AKIC5vcEVudGVyRG9uZToKICAgICB3YXNt
RGlzcGF0Y2hJbmRpcmVjdCgxKQogCkBAIC02NDQsMTEgKzc0Miw2IEBAIHdhc21PcChsb29wX2hp
bnQsIFdhc21Mb29wSGludCwgbWFjcm8oY3R4KQogICAgIGRpc3BhdGNoKGN0eCkKIGVuZCkKIAot
d2FzbU9wKG1vdiwgV2FzbU1vdiwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fc3JjLCB0
MCkKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KIHdhc21PcChqdHJ1ZSwgV2FzbUp0cnVl
LCBtYWNybyhjdHgpCiAgICAgbWxvYWRpKGN0eCwgbV9jb25kaXRpb24sIHQwKQogICAgIGJ0aXog
dDAsIC5jb250aW51ZQpAQCAtNzAwLDExICs3OTMsMTcgQEAgZW5kKQogCiB1bnByZWZpeGVkV2Fz
bU9wKHdhc21fcmV0LCBXYXNtUmV0LCBtYWNybyhjdHgpCiAgICAgY2hlY2tTd2l0Y2hUb0pJVEZv
ckVwaWxvZ3VlKCkKLSAgICBmb3JFYWNoQXJndW1lbnRHUFIobWFjcm8gKG9mZnNldCwgZ3ByKQor
aWYgSlNWQUxVRTY0CisgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwcikK
ICAgICAgICAgbG9hZHEgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdp
c3RlcnMgKiA4W2Nmcl0sIGdwcgogICAgIGVuZCkKK2Vsc2UKKyAgICBmb3JFYWNoQXJndW1lbnRK
U1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3LCBncExzdykKKyAgICAgICAgbG9hZDJpYSAtb2Zmc2V0
IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXSwgZ3BMc3cs
IGdwck1zdworICAgIGVuZCkKK2VuZAogICAgIGZvckVhY2hBcmd1bWVudEZQUihtYWNybyAob2Zm
c2V0LCBmcHIpCi0gICAgICAgIGxvYWRkIC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNW
aXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBmcHIKKyAgICAgICAgbG9hZGQgLW9mZnNldCAtICA4
IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBmcHIKICAgICBl
bmQpCiAgICAgZG9SZXR1cm4oKQogZW5kKQpAQCAtNzIwLDQ0ICs4MTksNiBAQCB3YXNtT3AocmV0
X3ZvaWQsIFdhc21SZXRWb2lkLCBtYWNybyhjdHgpCiAgICAgZG9SZXR1cm4oKQogZW5kKQogCi13
YXNtT3AocmVmX2lzX251bGwsIFdhc21SZWZJc051bGwsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHAo
Y3R4LCBtX3JlZiwgdDApCi0gICAgY3FlcSB0MCwgVmFsdWVOdWxsLCB0MAotICAgIHJldHVybmko
Y3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGdldF9nbG9iYWwsIFdhc21HZXRHbG9iYWwsIG1hY3Jv
KGN0eCkKLSAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0s
IHQwCi0gICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKLSAgICBsb2FkcSBbdDAsIHQx
LCA4XSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChzZXRfZ2xvYmFs
LCBXYXNtU2V0R2xvYmFsLCBtYWNybyhjdHgpCi0gICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1f
Z2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAotICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwg
dDEpCi0gICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAgc3RvcmVxIHQyLCBbdDAsIHQx
LCA4XQotICAgIGRpc3BhdGNoKGN0eCkKLWVuZCkKLQotd2FzbU9wKGdldF9nbG9iYWxfcG9ydGFi
bGVfYmluZGluZywgV2FzbUdldEdsb2JhbFBvcnRhYmxlQmluZGluZywgbWFjcm8oY3R4KQotICAg
IGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKLSAgICB3
Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQotICAgIGxvYWRxIFt0MCwgdDEsIDhdLCB0MAot
ICAgIGxvYWRxIFt0MF0sIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3Ao
c2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNtU2V0R2xvYmFsUG9ydGFibGVCaW5kaW5n
LCBtYWNybyhjdHgpCi0gICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5z
dGFuY2VdLCB0MAotICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCi0gICAgbWxvYWRx
KGN0eCwgbV92YWx1ZSwgdDIpCi0gICAgbG9hZHEgW3QwLCB0MSwgOF0sIHQwCi0gICAgc3RvcmVx
IHQyLCBbdDBdCi0gICAgZGlzcGF0Y2goY3R4KQotZW5kKQotCiBtYWNybyBzbG93UGF0aEZvcldh
c21DYWxsKGN0eCwgc2xvd1BhdGgsIHN0b3JlV2FzbUluc3RhbmNlKQogICAgIGNhbGxXYXNtQ2Fs
bFNsb3dQYXRoKAogICAgICAgICBzbG93UGF0aCwKQEAgLTc3Miw3ICs4MzMsMTIgQEAgbWFjcm8g
c2xvd1BhdGhGb3JXYXNtQ2FsbChjdHgsIHNsb3dQYXRoLCBzdG9yZVdhc21JbnN0YW5jZSkKIAog
ICAgICAgICAgICAgd2dldHUoY3R4LCBtX3N0YWNrT2Zmc2V0LCB3czEpCiAgICAgICAgICAgICBs
c2hpZnRpIDMsIHdzMQoraWYgQVJNdjcKKyAgICAgICAgICAgIHN1YnAgY2ZyLCB3czEsIHdzMQor
ICAgICAgICAgICAgbW92ZSB3czEsIHNwCitlbHNlCiAgICAgICAgICAgICBzdWJwIGNmciwgd3Mx
LCBzcAorZW5kCiAKICAgICAgICAgICAgIHdnZXR1KGN0eCwgbV9udW1iZXJPZlN0YWNrQXJncywg
d3MxKQogCkBAIC03ODMsMTAgKzg0OSwxNSBAQCBtYWNybyBzbG93UGF0aEZvcldhc21DYWxsKGN0
eCwgc2xvd1BhdGgsIHN0b3JlV2FzbUluc3RhbmNlKQogICAgICAgICAgICAgcmVsb2FkTWVtb3J5
UmVnaXN0ZXJzRnJvbUluc3RhbmNlKHRhcmdldFdhc21JbnN0YW5jZSwgd2EwLCB3YTEpCiAKICAg
ICAgICAgICAgICMgTG9hZCByZWdpc3RlcnMgZnJvbSBzdGFjawotICAgICAgICAgICAgZm9yRWFj
aEFyZ3VtZW50R1BSKG1hY3JvIChvZmZzZXQsIGdwcikKK2lmIEpTVkFMVUU2NAorICAgICAgICAg
ICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwcikKICAgICAgICAgICAgICAg
ICBsb2FkcSBDYWxsRnJhbWVIZWFkZXJTaXplICsgOCArIG9mZnNldFtzcCwgd3MxLCA4XSwgZ3By
CiAgICAgICAgICAgICBlbmQpCi0KK2Vsc2UKKyAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEpT
UihtYWNybyAob2Zmc2V0LCBncHJNc3csIGdwTHN3KQorICAgICAgICAgICAgICAgIGxvYWQyaWEg
Q2FsbEZyYW1lSGVhZGVyU2l6ZSArIDggKyBvZmZzZXRbc3AsIHdzMSwgOF0sIGdwTHN3LCBncHJN
c3cKKyAgICAgICAgICAgIGVuZCkKK2VuZAogICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50RlBS
KG1hY3JvIChvZmZzZXQsIGZwcikKICAgICAgICAgICAgICAgICBsb2FkZCBDYWxsRnJhbWVIZWFk
ZXJTaXplICsgOCArIG9mZnNldFtzcCwgd3MxLCA4XSwgZnByCiAgICAgICAgICAgICBlbmQpCkBA
IC04MjksNyArOTAwLDExIEBAIG1hY3JvIHNsb3dQYXRoRm9yV2FzbUNhbGwoY3R4LCBzbG93UGF0
aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAKICAgICAgICAgICAgICMgV2UgbmVlZCB0byBzZXQgUEMg
dG8gbG9hZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBpbnN0cnVjdGlvbiBzdHJlYW0sIGJ1dCB3ZQog
ICAgICAgICAgICAgIyBuZWVkIHRvIHByZXNlcnZlIGl0cyBjdXJyZW50IHZhbHVlIHNpbmNlIGl0
IG1pZ2h0IGNvbnRhaW4gYSByZXR1cm4gdmFsdWUKK2lmIEFSTXY3CisgICAgICAgICAgICBwdXNo
IFBDCitlbHNlCiAgICAgICAgICAgICBtb3ZlIFBDLCBtZW1vcnlCYXNlCitlbmQKICAgICAgICAg
ICAgIG1vdmUgUEIsIHdhc21JbnN0YW5jZQogICAgICAgICAgICAgbG9hZGkgQXJndW1lbnRDb3Vu
dEluY2x1ZGluZ1RoaXMgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKICAgICAgICAgICAgIGxvYWRwIENv
ZGVCbG9ja1tjZnJdLCBQQgpAQCAtODM4LDE3ICs5MTMsMjggQEAgbWFjcm8gc2xvd1BhdGhGb3JX
YXNtQ2FsbChjdHgsIHNsb3dQYXRoLCBzdG9yZVdhc21JbnN0YW5jZSkKICAgICAgICAgICAgIHdn
ZXR1KGN0eCwgbV9zdGFja09mZnNldCwgd3MxKQogICAgICAgICAgICAgbHNoaWZ0aSAzLCB3czEK
ICAgICAgICAgICAgIG5lZ2kgd3MxCitpZiBKU1ZBTFVFNjQKICAgICAgICAgICAgIHN4aTJxIHdz
MSwgd3MxCitlbmQKICAgICAgICAgICAgIGFkZHAgY2ZyLCB3czEKIAogICAgICAgICAgICAgIyBB
cmd1bWVudCByZWdpc3RlcnMgYXJlIGFsc28gcmV0dXJuIHJlZ2lzdGVycywgc28gdGhleSBtdXN0
IGJlIHN0b3JlZCB0byB0aGUgc3RhY2sKICAgICAgICAgICAgICMgaW4gY2FzZSB0aGV5IGNvbnRh
aW4gcmV0dXJuIHZhbHVlcy4KICAgICAgICAgICAgIHdnZXR1KGN0eCwgbV9udW1iZXJPZlN0YWNr
QXJncywgd3MwKQoraWYgQVJNdjcKKyAgICAgICAgICAgIHBvcCBQQworZWxzZQogICAgICAgICAg
ICAgbW92ZSBtZW1vcnlCYXNlLCBQQwotICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50R1BSKG1h
Y3JvIChvZmZzZXQsIGdwcikKK2VuZAoraWYgSlNWQUxVRTY0CisgICAgICAgICAgICBmb3JFYWNo
QXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByKQogICAgICAgICAgICAgICAgIHN0b3JlcSBn
cHIsIENhbGxGcmFtZUhlYWRlclNpemUgKyA4ICsgb2Zmc2V0W3dzMSwgd3MwLCA4XQogICAgICAg
ICAgICAgZW5kKQotCitlbHNlCisgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8g
KG9mZnNldCwgZ3ByTXN3LCBncExzdykKKyAgICAgICAgICAgICAgICBzdG9yZTJpYSBncExzdywg
Z3ByTXN3LCBDYWxsRnJhbWVIZWFkZXJTaXplICsgOCArIG9mZnNldFt3czEsIHdzMCwgOF0KKyAg
ICAgICAgICAgIGVuZCkKK2VuZAogICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50RlBSKG1hY3Jv
IChvZmZzZXQsIGZwcikKICAgICAgICAgICAgICAgICBzdG9yZWQgZnByLCBDYWxsRnJhbWVIZWFk
ZXJTaXplICsgOCArIG9mZnNldFt3czEsIHdzMCwgOF0KICAgICAgICAgICAgIGVuZCkKQEAgLTg5
OSwxOTkgKzk4NSwzNiBAQCB3YXNtT3AoY3VycmVudF9tZW1vcnksIFdhc21DdXJyZW50TWVtb3J5
LCBtYWNybyhjdHgpCiAgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fbWVtb3J5W3dhc21JbnN0
YW5jZV0sIHQwCiAgICAgbG9hZHAgV2FzbTo6TWVtb3J5OjptX2hhbmRsZVt0MF0sIHQwCiAgICAg
bG9hZHAgV2FzbTo6TWVtb3J5SGFuZGxlOjptX3NpemVbdDBdLCB0MAotICAgIHVyc2hpZnRxIDE2
LCB0MAorICAgIHVyc2hpZnRwIDE2LCB0MAoraWYgSlNWQUxVRTY0CiAgICAgcmV0dXJucShjdHgs
IHQwKQorZWxzZQorICAgIHJldHVybjJpKGN0eCwgMCwgdDApCitlbmQKIGVuZCkKIAogd2FzbU9w
KHNlbGVjdCwgV2FzbVNlbGVjdCwgbWFjcm8oY3R4KQogICAgIG1sb2FkaShjdHgsIG1fY29uZGl0
aW9uLCB0MCkKICAgICBidGl6IHQwLCAuaXNaZXJvCitpZiBKU1ZBTFVFNjQKICAgICBtbG9hZHEo
Y3R4LCBtX25vblplcm8sIHQwKQogICAgIHJldHVybnEoY3R4LCB0MCkKIC5pc1plcm86CiAgICAg
bWxvYWRxKGN0eCwgbV96ZXJvLCB0MCkKICAgICByZXR1cm5xKGN0eCwgdDApCitlbHNlCisgICAg
bWxvYWQyaShjdHgsIG1fbm9uWmVybywgdDEsIHQwKQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQw
KQorLmlzWmVybzoKKyAgICBtbG9hZDJpKGN0eCwgbV96ZXJvLCB0MSwgdDApCisgICAgcmV0dXJu
MmkoY3R4LCB0MSwgdDApCitlbmQKIGVuZCkKIAotIyB1c2VzIG9mZnNldCBhcyBzY3JhdGNoIGFu
ZCByZXR1cm5zIHJlc3VsdCBvbiBwb2ludGVyCi1tYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9p
bnRlcihjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKLSAgICBsZWFwIHNpemUgLSAxW3BvaW50
ZXIsIG9mZnNldF0sIHQ1Ci0gICAgYnBiIHQ1LCBib3VuZHNDaGVja2luZ1NpemUsIC5jb250aW51
YXRpb24KLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKLS5jb250
aW51YXRpb246Ci0gICAgYWRkcCBtZW1vcnlCYXNlLCBwb2ludGVyCi1lbmQKLQotbWFjcm8gZW1p
dENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQoY3R4LCBwb2ludGVyLCBvZmZzZXQs
IHNpemUpCi0gICAgbGVhcCBzaXplIC0gMVtwb2ludGVyLCBvZmZzZXRdLCB0NQotICAgIGJwYiB0
NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29udGludWF0aW9uCi0udGhyb3c6Ci0gICAgdGhyb3dF
eGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCi0uY29udGludWF0aW9uOgotICAgIGFk
ZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgotICAgIGFkZHAgb2Zmc2V0LCBwb2ludGVyCi1lbmQKLQot
bWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50
Q2hlY2soY3R4LCBwb2ludGVyLCBvZmZzZXQsIHNpemUpCi0gICAgbGVhcCBzaXplIC0gMVtwb2lu
dGVyLCBvZmZzZXRdLCB0NQotICAgIGJwYiB0NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29udGlu
dWF0aW9uCi0udGhyb3c6Ci0gICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nl
c3MpCi0uY29udGludWF0aW9uOgotICAgIGFkZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgotICAgIGFk
ZHAgb2Zmc2V0LCBwb2ludGVyCi0gICAgYnRwbnogcG9pbnRlciwgKHNpemUgLSAxKSwgLnRocm93
Ci1lbmQKLQotbWFjcm8gd2FzbUxvYWRPcChuYW1lLCBzdHJ1Y3QsIHNpemUsIGZuKQotICAgIHdh
c21PcChuYW1lLCBzdHJ1Y3QsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2lu
dGVyLCB0MCkKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIGVtaXRD
aGVja0FuZFByZXBhcmVQb2ludGVyKGN0eCwgdDAsIHQxLCBzaXplKQotICAgICAgICBmbihbdDAs
IHQxXSwgdDIpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MikKLSAgICBlbmQpCi1lbmQKLQotd2Fz
bUxvYWRPcChsb2FkOF91LCBXYXNtTG9hZDhVLCAxLCBtYWNybyhtZW0sIGRzdCkgbG9hZGIgbWVt
LCBkc3QgZW5kKQotd2FzbUxvYWRPcChsb2FkMTZfdSwgV2FzbUxvYWQxNlUsIDIsIG1hY3JvKG1l
bSwgZHN0KSBsb2FkaCBtZW0sIGRzdCBlbmQpCi13YXNtTG9hZE9wKGxvYWQzMl91LCBXYXNtTG9h
ZDMyVSwgNCwgbWFjcm8obWVtLCBkc3QpIGxvYWRpIG1lbSwgZHN0IGVuZCkKLXdhc21Mb2FkT3Ao
bG9hZDY0X3UsIFdhc21Mb2FkNjRVLCA4LCBtYWNybyhtZW0sIGRzdCkgbG9hZHEgbWVtLCBkc3Qg
ZW5kKQotCi13YXNtTG9hZE9wKGkzMl9sb2FkOF9zLCBXYXNtSTMyTG9hZDhTLCAxLCBtYWNybyht
ZW0sIGRzdCkgbG9hZGJzaSBtZW0sIGRzdCBlbmQpCi13YXNtTG9hZE9wKGk2NF9sb2FkOF9zLCBX
YXNtSTY0TG9hZDhTLCAxLCBtYWNybyhtZW0sIGRzdCkgbG9hZGJzcSBtZW0sIGRzdCBlbmQpCi13
YXNtTG9hZE9wKGkzMl9sb2FkMTZfcywgV2FzbUkzMkxvYWQxNlMsIDIsIG1hY3JvKG1lbSwgZHN0
KSBsb2FkaHNpIG1lbSwgZHN0IGVuZCkKLXdhc21Mb2FkT3AoaTY0X2xvYWQxNl9zLCBXYXNtSTY0
TG9hZDE2UywgMiwgbWFjcm8obWVtLCBkc3QpIGxvYWRoc3EgbWVtLCBkc3QgZW5kKQotd2FzbUxv
YWRPcChpNjRfbG9hZDMyX3MsIFdhc21JNjRMb2FkMzJTLCA0LCBtYWNybyhtZW0sIGRzdCkgbG9h
ZGlzIG1lbSwgZHN0IGVuZCkKLQotbWFjcm8gd2FzbVN0b3JlT3AobmFtZSwgc3RydWN0LCBzaXpl
LCBmbikKLSAgICB3YXNtT3AobmFtZSwgc3RydWN0LCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2Fk
aShjdHgsIG1fcG9pbnRlciwgdDApCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQot
ICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihjdHgsIHQwLCB0MSwgc2l6ZSkKLSAg
ICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAgICAgIGZuKHQyLCBbdDAsIHQxXSkK
LSAgICAgICAgZGlzcGF0Y2goY3R4KQotICAgIGVuZCkKLWVuZAotCi13YXNtU3RvcmVPcChzdG9y
ZTgsIFdhc21TdG9yZTgsIDEsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlYiB2YWx1ZSwgbWVtIGVu
ZCkKLXdhc21TdG9yZU9wKHN0b3JlMTYsIFdhc21TdG9yZTE2LCAyLCBtYWNybyh2YWx1ZSwgbWVt
KSBzdG9yZWggdmFsdWUsIG1lbSBlbmQpCi13YXNtU3RvcmVPcChzdG9yZTMyLCBXYXNtU3RvcmUz
MiwgNCwgbWFjcm8odmFsdWUsIG1lbSkgc3RvcmVpIHZhbHVlLCBtZW0gZW5kKQotd2FzbVN0b3Jl
T3Aoc3RvcmU2NCwgV2FzbVN0b3JlNjQsIDgsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlcSB2YWx1
ZSwgbWVtIGVuZCkKLQogIyBPcGNvZGVzIHRoYXQgZG9uJ3QgaGF2ZSB0aGUgYGIzb3BgIGVudHJ5
IGluIHdhc20uanNvbi4gVGhpcyBzaG91bGQgYmUga2VwdCBpbiBzeW5jCiAKLXdhc21PcChpMzJf
ZGl2X3MsIFdhc21JMzJEaXZTLCBtYWNybyAoY3R4KQotICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0
MCkKLSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCi0KLSAgICBidGl6IHQxLCAudGhyb3dEaXZp
c2lvbkJ5WmVybwotCi0gICAgYmluZXEgdDEsIC0xLCAuc2FmZQotICAgIGJpZXEgdDAsIGNvbnN0
ZXhwciBJTlQzMl9NSU4sIC50aHJvd0ludGVnZXJPdmVyZmxvdwotCi0uc2FmZToKLSAgICBpZiBY
ODZfNjQKLSAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQw
IGlzIHJheCBhbmQgdDIgaXMgcmR4Ci0gICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMzY5MgotICAgICAgICBjZHFpCi0gICAgICAgIGlkaXZpIHQxCi0g
ICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKLSAgICAgICAgZGl2aXMgdDEsIHQw
Ci0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVuZAotICAgIHJldHVybmkoY3R4LCB0MCkK
LQotLnRocm93RGl2aXNpb25CeVplcm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVpl
cm8pCi0KLS50aHJvd0ludGVnZXJPdmVyZmxvdzoKLSAgICB0aHJvd0V4Y2VwdGlvbihJbnRlZ2Vy
T3ZlcmZsb3cpCi1lbmQpCi0KLXdhc21PcChpMzJfZGl2X3UsIFdhc21JMzJEaXZVLCBtYWNybyAo
Y3R4KQotICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3Jocywg
dDEpCi0KLSAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwotCi0gICAgaWYgWDg2XzY0
Ci0gICAgICAgIHhvcmkgdDIsIHQyCi0gICAgICAgIHVkaXZpIHQxCi0gICAgZWxzaWYgQVJNNjQg
b3IgQVJNNjRFIG9yIFJJU0NWNjQKLSAgICAgICAgZGl2aSB0MSwgdDAKLSAgICBlbHNlCi0gICAg
ICAgIGVycm9yCi0gICAgZW5kCi0gICAgcmV0dXJuaShjdHgsIHQwKQotCi0udGhyb3dEaXZpc2lv
bkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLWVuZCkKLQotd2Fz
bU9wKGkzMl9yZW1fcywgV2FzbUkzMlJlbVMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRpKGN0eCwg
bV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0aXogdDEsIC50
aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBiaW5lcSB0MSwgLTEsIC5zYWZlCi0gICAgYmluZXEg
dDAsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC5zYWZlCi0KLSAgICBtb3ZlIDAsIHQyCi0gICAgam1w
IC5yZXR1cm4KLQotLnNhZmU6Ci0gICAgaWYgWDg2XzY0Ci0gICAgICAgICMgRklYTUU6IEFkZCBh
IHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAotICAgICAg
ICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKLSAgICAg
ICAgY2RxaQotICAgICAgICBpZGl2aSB0MQotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQotICAg
ICAgICBkaXZpcyB0MSwgdDAsIHQyCi0gICAgICAgIG11bGkgdDEsIHQyCi0gICAgICAgIHN1Ymkg
dDAsIHQyLCB0MgotICAgIGVsc2lmIFJJU0NWNjQKLSAgICAgICAgcmVtaXMgdDEsIHQwCi0gICAg
ZWxzZQotICAgICAgICBlcnJvcgotICAgIGVuZAotCi0ucmV0dXJuOgotICAgIHJldHVybmkoY3R4
LCB0MikKLQotLnRocm93RGl2aXNpb25CeVplcm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNp
b25CeVplcm8pCi1lbmQpCi0KLXdhc21PcChpMzJfcmVtX3UsIFdhc21JMzJSZW1VLCBtYWNybyAo
Y3R4KQotICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3Jocywg
dDEpCi0KLSAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwotCi0gICAgaWYgWDg2XzY0
Ci0gICAgICAgIHhvcmkgdDIsIHQyCi0gICAgICAgIHVkaXZpIHQxCi0gICAgZWxzaWYgQVJNNjQg
b3IgQVJNNjRFCi0gICAgICAgIGRpdmkgdDEsIHQwLCB0MgotICAgICAgICBtdWxpIHQxLCB0Mgot
ICAgICAgICBzdWJpIHQwLCB0MiwgdDIKLSAgICBlbHNpZiBSSVNDVjY0Ci0gICAgICAgIHJlbWkg
dDEsIHQwCi0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVuZAotICAgIHJldHVybmkoY3R4
LCB0MikKLQotLnRocm93RGl2aXNpb25CeVplcm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNp
b25CeVplcm8pCi1lbmQpCi0KIHdhc21PcChpMzJfY3R6LCBXYXNtSTMyQ3R6LCBtYWNybyAoY3R4
KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgbWxvYWRpKGN0eCwgbV9vcGVy
YW5kLCB0MCkKICAgICB0emNudGkgdDAsIHQwCiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQpA
QCAtMTEwNSwxNDggKzEwMjgsMjUgQEAgd2FzbU9wKGkzMl9wb3BjbnQsIFdhc21JMzJQb3BjbnQs
IG1hY3JvIChjdHgpCiAgICAgcmV0dXJuaShjdHgsIHIxKQogZW5kKQogCi13YXNtT3AoaTY0X2Rp
dl9zLCBXYXNtSTY0RGl2UywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDAp
Ci0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRxeiB0MSwgLnRocm93RGl2aXNp
b25CeVplcm8KLQotICAgIGJxbmVxIHQxLCAtMSwgLnNhZmUKLSAgICBicWVxIHQwLCBjb25zdGV4
cHIgSU5UNjRfTUlOLCAudGhyb3dJbnRlZ2VyT3ZlcmZsb3cKLQotLnNhZmU6Ci0gICAgaWYgWDg2
XzY0Ci0gICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBp
cyByYXggYW5kIHQyIGlzIHJkeAotICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDM2OTIKLSAgICAgICAgY3FvcQotICAgICAgICBpZGl2cSB0MQotICAg
IGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgICAgIGRpdnFzIHQxLCB0MAot
ICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1cm5xKGN0eCwgdDApCi0K
LS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJv
KQotCi0udGhyb3dJbnRlZ2VyT3ZlcmZsb3c6Ci0gICAgdGhyb3dFeGNlcHRpb24oSW50ZWdlck92
ZXJmbG93KQotZW5kKQotCi13YXNtT3AoaTY0X2Rpdl91LCBXYXNtSTY0RGl2VSwgbWFjcm8gKGN0
eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQx
KQotCi0gICAgYnRxeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAgIGlmIFg4Nl82NAot
ICAgICAgICB4b3JxIHQyLCB0MgotICAgICAgICB1ZGl2cSB0MQotICAgIGVsc2lmIEFSTTY0IG9y
IEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgICAgIGRpdnEgdDEsIHQwCi0gICAgZWxzZQotICAgICAg
ICBlcnJvcgotICAgIGVuZAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLnRocm93RGl2aXNpb25C
eVplcm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCi1lbmQpCi0KLXdhc21P
cChpNjRfcmVtX3MsIFdhc21JNjRSZW1TLCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1f
bGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0KLSAgICBidHF6IHQxLCAudGhy
b3dEaXZpc2lvbkJ5WmVybwotCi0gICAgYnFuZXEgdDEsIC0xLCAuc2FmZQotICAgIGJxbmVxIHQw
LCBjb25zdGV4cHIgSU5UNjRfTUlOLCAuc2FmZQotCi0gICAgbW92ZSAwLCB0MgotICAgIGptcCAu
cmV0dXJuCi0KLS5zYWZlOgotICAgIGlmIFg4Nl82NAotICAgICAgICAjIEZJWE1FOiBBZGQgYSB3
YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0MiBpcyByZHgKLSAgICAgICAg
IyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCi0gICAgICAg
IGNxb3EKLSAgICAgICAgaWRpdnEgdDEKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUKLSAgICAg
ICAgZGl2cXMgdDEsIHQwLCB0MgotICAgICAgICBtdWxxIHQxLCB0MgotICAgICAgICBzdWJxIHQw
LCB0MiwgdDIKLSAgICBlbHNpZiBSSVNDVjY0Ci0gICAgICAgIHJlbXFzIHQxLCB0MAotICAgIGVs
c2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLQotLnJldHVybjoKLSAgICByZXR1cm5xKGN0eCwg
dDIpICMgcmR4IGhhcyB0aGUgcmVtYWluZGVyCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAg
IHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotZW5kKQotCi13YXNtT3AoaTY0X3JlbV91
LCBXYXNtSTY0UmVtVSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0g
ICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRxeiB0MSwgLnRocm93RGl2aXNpb25C
eVplcm8KLQotICAgIGlmIFg4Nl82NAotICAgICAgICB4b3JxIHQyLCB0MgotICAgICAgICB1ZGl2
cSB0MQotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQotICAgICAgICBkaXZxIHQxLCB0MCwgdDIK
LSAgICAgICAgbXVscSB0MSwgdDIKLSAgICAgICAgc3VicSB0MCwgdDIsIHQyCi0gICAgZWxzaWYg
UklTQ1Y2NAotICAgICAgICByZW1xIHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAg
ICBlbmQKLSAgICByZXR1cm5xKGN0eCwgdDIpCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAg
IHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotZW5kKQotCi13YXNtT3AoaTY0X2N0eiwg
V2FzbUk2NEN0eiwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQot
ICAgIHR6Y250cSB0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChp
NjRfcG9wY250LCBXYXNtSTY0UG9wY250LCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1f
b3BlcmFuZCwgYTEpCi0gICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQotICAgIG1vdmUgUEMsIGEw
Ci0gICAgY0NhbGwyKF9zbG93X3BhdGhfd2FzbV9wb3Bjb3VudGxsKQotICAgIHJlc3RvcmVTdGF0
ZUFmdGVyQ0NhbGwoKQotICAgIHJldHVybnEoY3R4LCByMSkKLWVuZCkKLQotd2FzbU9wKGYzMl90
cnVuYywgV2FzbUYzMlRydW5jLCBtYWNybyAoY3R4KQord2FzbVJvdW5kaW5nT3AoZjMyX3RydW5j
LCBXYXNtRjMyVHJ1bmMsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBm
dDApCiAgICAgdHJ1bmNhdGVmIGZ0MCwgZnQwCiAgICAgcmV0dXJuZihjdHgsIGZ0MCkKIGVuZCkK
IAotd2FzbU9wKGYzMl9uZWFyZXN0LCBXYXNtRjMyTmVhcmVzdCwgbWFjcm8gKGN0eCkKK3dhc21S
b3VuZGluZ09wKGYzMl9uZWFyZXN0LCBXYXNtRjMyTmVhcmVzdCwgbWFjcm8gKGN0eCkKICAgICBt
bG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICByb3VuZGYgZnQwLCBmdDAKICAgICByZXR1
cm5mKGN0eCwgZnQwKQogZW5kKQogCi13YXNtT3AoZjY0X3RydW5jLCBXYXNtRjY0VHJ1bmMsIG1h
Y3JvIChjdHgpCit3YXNtUm91bmRpbmdPcChmNjRfdHJ1bmMsIFdhc21GNjRUcnVuYywgbWFjcm8g
KGN0eCkKICAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICB0cnVuY2F0ZWQgZnQw
LCBmdDAKICAgICByZXR1cm5kKGN0eCwgZnQwKQogZW5kKQogCi13YXNtT3AoZjY0X25lYXJlc3Qs
IFdhc21GNjROZWFyZXN0LCBtYWNybyAoY3R4KQord2FzbVJvdW5kaW5nT3AoZjY0X25lYXJlc3Qs
IFdhc21GNjROZWFyZXN0LCBtYWNybyAoY3R4KQogICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwg
ZnQwKQogICAgIHJvdW5kZCBmdDAsIGZ0MAogICAgIHJldHVybmQoY3R4LCBmdDApCkBAIC0xMjcw
LDI0ICsxMDcwLDYgQEAgd2FzbU9wKGkzMl90cnVuY19zX2YzMiwgV2FzbUkzMlRydW5jU0YzMiwg
bWFjcm8gKGN0eCkKICAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQogZW5kKQog
Ci13YXNtT3AoaTMyX3RydW5jX3NfZjY0LCBXYXNtSTMyVHJ1bmNTRjY0LCBtYWNybyAoY3R4KQot
ICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGMxZTAwMDAwMDAy
MDAwMDAsIHQwICMgSU5UMzJfTUlOIC0gMS4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdGVx
dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICBtb3ZlIDB4NDFlMDAwMDAwMDAw
MDAwMCwgdDAgIyAtSU5UMzJfTUlOCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAotICAg
IHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dFeGNlcHRp
b24oT3V0T2ZCb3VuZHNUcnVuYykKLWVuZCkKLQogd2FzbU9wKGkzMl90cnVuY191X2YzMiwgV2Fz
bUkzMlRydW5jVUYzMiwgbWFjcm8gKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0
MCkKIApAQCAtMTMwNiw5NiArMTA4OCw2IEBAIHdhc21PcChpMzJfdHJ1bmNfdV9mMzIsIFdhc21J
MzJUcnVuY1VGMzIsIG1hY3JvIChjdHgpCiAgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNU
cnVuYykKIGVuZCkKIAotd2FzbU9wKGkzMl90cnVuY191X2Y2NCwgV2FzbUkzMlRydW5jVUY2NCwg
bWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUg
MHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0
ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIG1vdmUgMHg0MWYwMDAwMDAw
MDAwMDAwLCB0MCAjIElOVDMyX01JTiAqIC0yLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0
ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIHRydW5jYXRlZDJpIGZ0MCwg
dDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRocm93
RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfc19m
MzIsIFdhc21JNjRUcnVuY1NGMzIsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRmKGN0eCwgbV9vcGVy
YW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4ZGYwMDAwMDAsIHQwICMgSU5UNjRfTUlOCi0gICAgZmky
ZiB0MCwgZnQxCi0gICAgYmZsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAg
bW92ZSAweDVmMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KLSAgICBmaTJmIHQwLCBmdDEKLSAgICBi
Zmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIHRydW5jYXRlZjJxcyBm
dDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAgICB0
aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5j
X3NfZjY0LCBXYXNtSTY0VHJ1bmNTRjY0LCBtYWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1f
b3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGMzZTAwMDAwMDAwMDAwMDAsIHQwICMgSU5UNjRf
TUlOCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNU
cnVuYwotCi0gICAgbW92ZSAweDQzZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDY0X01JTgotICAg
IGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwot
Ci0gICAgdHJ1bmNhdGVkMnFzIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRP
ZkJvdW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCi1lbmQp
Ci0KLXdhc21PcChpNjRfdHJ1bmNfdV9mMzIsIFdhc21JNjRUcnVuY1VGMzIsIG1hY3JvIChjdHgp
Ci0gICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YmY4MDAwMDAs
IHQwICMgLTEuMAotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmbHRlcXVuIGZ0MCwgZnQxLCAub3V0
T2ZCb3VuZHNUcnVuYwotCi0gICAgbW92ZSAweDVmODAwMDAwLCB0MCAjIElOVDY0X01JTiAqIC0y
LjAKLSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmMKLQotICAgIHRydW5jYXRlZjJxIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0K
LS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMp
Ci1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfdV9mNjQsIFdhc21JNjRUcnVuY1VGNjQsIG1hY3Jv
IChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YmZm
MDAwMDAwMDAwMDAwMCwgdDAgIyAtMS4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdGVxdW4g
ZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICBtb3ZlIDB4NDNmMDAwMDAwMDAwMDAw
MCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4g
ZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICB0cnVuY2F0ZWQycSBmdDAsIHQwCi0g
ICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJvd0V4Y2Vw
dGlvbihPdXRPZkJvdW5kc1RydW5jKQotZW5kKQotCiB3YXNtT3AoaTMyX3RydW5jX3NhdF9mMzJf
cywgV2FzbUkzMlRydW5jU2F0RjMyUywgbWFjcm8gKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29w
ZXJhbmQsIGZ0MCkKIApAQCAtMTQyNCwzNCArMTExNiw2IEBAIHdhc21PcChpMzJfdHJ1bmNfc2F0
X2YzMl9zLCBXYXNtSTMyVHJ1bmNTYXRGMzJTLCBtYWNybyAoY3R4KQogICAgIHJldHVybmkoY3R4
LCB0MCkKIGVuZCkKIAotd2FzbU9wKGkzMl90cnVuY19zYXRfZjY0X3MsIFdhc21JMzJUcnVuY1Nh
dEY2NFMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAg
ICBtb3ZlIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDAgIyBJTlQzMl9NSU4gLSAxLjAKLSAgICBmcTJk
IHQwLCBmdDEKLSAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5P
ck5hTgotCi0gICAgbW92ZSAweDQxZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDMyX01JTgotICAg
IGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1heAotCi0gICAgdHJ1bmNhdGVkMmlzIGZ0MCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0K
LS5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU46Ci0gICAgYmRlcSBmdDAsIGZ0MCwgLm91dE9m
Qm91bmRzVHJ1bmNTYXRNaW4KLSAgICBtb3ZlIDAsIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQot
Ci0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKLSAgICBtb3ZlIChjb25zdGV4cHIgSU5UMzJfTUFY
KSwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgot
ICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQzMl9NSU4pLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkK
LWVuZCkKLQogd2FzbU9wKGkzMl90cnVuY19zYXRfZjMyX3UsIFdhc21JMzJUcnVuY1NhdEYzMlUs
IG1hY3JvIChjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAKQEAgLTE0NzUs
MTUyICsxMTM5LDIyIEBAIHdhc21PcChpMzJfdHJ1bmNfc2F0X2YzMl91LCBXYXNtSTMyVHJ1bmNT
YXRGMzJVLCBtYWNybyAoY3R4KQogICAgIHJldHVybmkoY3R4LCB0MCkKIGVuZCkKIAotd2FzbU9w
KGkzMl90cnVuY19zYXRfZjY0X3UsIFdhc21JMzJUcnVuY1NhdEY2NFUsIG1hY3JvIChjdHgpCi0g
ICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YmZmMDAwMDAwMDAw
MDAwMCwgdDAgIyAtMS4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdGVxdW4gZnQwLCBmdDEs
IC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCi0KLSAgICBtb3ZlIDB4NDFmMDAwMDAwMDAwMDAwMCwg
dDAgIyBJTlQzMl9NSU4gKiAtMi4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWQyaSBmdDAsIHQw
Ci0gICAgcmV0dXJuaShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKLSAgICBt
b3ZlIDAsIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1h
eDoKLSAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDMyX01BWCksIHQwCi0gICAgcmV0dXJuaShjdHgs
IHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3NhdF9mMzJfcywgV2FzbUk2NFRydW5jU2F0
RjMyUywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAg
IG1vdmUgMHhkZjAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4KLSAgICBmaTJmIHQwLCBmdDEKLSAgICBi
Zmx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU4KLQotICAgIG1vdmUg
MHg1ZjAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCi0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZndGVx
dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWYycXMg
ZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5P
ck5hTjoKLSAgICBiZmVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotICAgIG1v
dmUgMCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4
OgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9NQVgpLCB0MAotICAgIHJldHVybnEoY3R4LCB0
MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDY0
X01JTiksIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5j
X3NhdF9mNjRfcywgV2FzbUk2NFRydW5jU2F0RjY0UywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQo
Y3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhjM2UwMDAwMDAwMDAwMDAwLCB0MCAj
IElOVDY0X01JTgotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHR1biBmdDAsIGZ0MSwgLm91dE9m
Qm91bmRzVHJ1bmNTYXRNaW5Pck5hTgotCi0gICAgbW92ZSAweDQzZTAwMDAwMDAwMDAwMDAsIHQw
ICMgLUlOVDY0X01JTgotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVkMnFzIGZ0MCwgdDAKLSAgICBy
ZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU46Ci0gICAgYmRl
cSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KLSAgICBtb3ZlIDAsIHQwCi0gICAg
cmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKLSAgICBtb3ZlIChj
b25zdGV4cHIgSU5UNjRfTUFYKSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJv
dW5kc1RydW5jU2F0TWluOgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9NSU4pLCB0MAotICAg
IHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3UsIFdh
c21JNjRUcnVuY1NhdEYzMlUsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5k
LCBmdDApCi0KLSAgICBtb3ZlIDB4YmY4MDAwMDAsIHQwICMgLTEuMAotICAgIGZpMmYgdDAsIGZ0
MQotICAgIGJmbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotCi0gICAg
bW92ZSAweDVmODAwMDAwLCB0MCAjIElOVDY0X01JTiAqIC0yLjAKLSAgICBmaTJmIHQwLCBmdDEK
LSAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQotICAgIHRy
dW5jYXRlZjJxIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1Ry
dW5jU2F0TWluOgotICAgIG1vdmUgMCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRP
ZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UNjRfTUFYKSwgdDAK
LSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfc2F0X2Y2NF91
LCBXYXNtSTY0VHJ1bmNTYXRGNjRVLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3Bl
cmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGJmZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAotICAg
IGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1pbgotCi0gICAgbW92ZSAweDQzZjAwMDAwMDAwMDAwMDAsIHQwICMgSU5UNjRfTUlOICogLTIu
MAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNU
cnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVkMnEgZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0
MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46Ci0gICAgbW92ZSAwLCB0MAotICAgIHJldHVy
bnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6Ci0gICAgbW92ZSAoY29uc3Rl
eHByIFVJTlQ2NF9NQVgpLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotCi13YXNt
T3AoZjMyX2NvbnZlcnRfdV9pNjQsIFdhc21GMzJDb252ZXJ0VUk2NCwgbWFjcm8gKGN0eCkKK3dh
c21JNjRUb0ZPcChmMzJfY29udmVydF91X2k2NCwgV2FzbUYzMkNvbnZlcnRVSTY0LCBtYWNybyAo
Y3R4KQogICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAgaWYgWDg2XzY0CiAgICAg
ICAgIGNxMmYgdDAsIHQxLCBmdDAKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2
NAotICAgICAgICBjcTJmIHQwLCBmdDAKICAgICBlbHNlCi0gICAgICAgIGVycm9yCisgICAgICAg
IGNxMmYgdDAsIGZ0MAogICAgIGVuZAogICAgIHJldHVybmYoY3R4LCBmdDApCiBlbmQpCiAKLXdh
c21PcChmNjRfY29udmVydF91X2k2NCwgV2FzbUY2NENvbnZlcnRVSTY0LCBtYWNybyAoY3R4KQor
d2FzbUk2NFRvRk9wKGY2NF9jb252ZXJ0X3VfaTY0LCBXYXNtRjY0Q29udmVydFVJNjQsIG1hY3Jv
IChjdHgpCiAgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICBpZiBYODZfNjQKICAg
ICAgICAgY3EyZCB0MCwgdDEsIGZ0MAotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVND
VjY0Ci0gICAgICAgIGNxMmQgdDAsIGZ0MAogICAgIGVsc2UKLSAgICAgICAgZXJyb3IKKyAgICAg
ICAgY3EyZCB0MCwgZnQwCiAgICAgZW5kCiAgICAgcmV0dXJuZChjdHgsIGZ0MCkKIGVuZCkKQEAg
LTE2MzEsNDcgKzExNjUsNiBAQCB3YXNtT3AoaTMyX2VxeiwgV2FzbUkzMkVxeiwgbWFjcm8oY3R4
KQogICAgIHJldHVybmkoY3R4LCB0MCkKIGVuZCkKIAotd2FzbU9wKGk2NF9zaGwsIFdhc21JNjRT
aGwsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0
eCwgbV9yaHMsIHQxKQotICAgIGxzaGlmdHEgdDEsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQot
ZW5kKQotCi13YXNtT3AoaTY0X3Nocl91LCBXYXNtSTY0U2hyVSwgbWFjcm8oY3R4KQotICAgIG1s
b2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCi0gICAgdXJz
aGlmdHEgdDEsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3No
cl9zLCBXYXNtSTY0U2hyUywgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkK
LSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCi0gICAgcnNoaWZ0cSB0MSwgdDAKLSAgICByZXR1
cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfcm90ciwgV2FzbUk2NFJvdHIsIG1hY3Jv
KGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMs
IHQxKQotICAgIHJyb3RhdGVxIHQxLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQot
d2FzbU9wKGk2NF9yb3RsLCBXYXNtSTY0Um90bCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgs
IG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCi0gICAgbHJvdGF0ZXEgdDEs
IHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X2VxeiwgV2FzbUk2
NEVxeiwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgY3Fl
cSB0MCwgMCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi1lbmQpCi0KIHdhc21PcChmMzJfbWlu
LCBXYXNtRjMyTWluLCBtYWNybyhjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9saHMsIGZ0MCkKICAg
ICBtbG9hZGYoY3R4LCBtX3JocywgZnQxKQpAQCAtMTc4MSwyMyArMTI3NCw2IEBAIHdhc21PcChm
NjRfbWF4LCBXYXNtRjY0TWF4LCBtYWNybyhjdHgpCiAgICAgcmV0dXJuZChjdHgsIGZ0MSkKIGVu
ZCkKIAotd2FzbU9wKGY2NF9jb3B5c2lnbiwgV2FzbUY2NENvcHlzaWduLCBtYWNybyhjdHgpCi0g
ICAgbWxvYWRkKGN0eCwgbV9saHMsIGZ0MCkKLSAgICBtbG9hZGQoY3R4LCBtX3JocywgZnQxKQot
Ci0gICAgZmQycSBmdDEsIHQxCi0gICAgbW92ZSAweDgwMDAwMDAwMDAwMDAwMDAsIHQyCi0gICAg
YW5kcSB0MiwgdDEKLQotICAgIGZkMnEgZnQwLCB0MAotICAgIG1vdmUgMHg3ZmZmZmZmZmZmZmZm
ZmZmLCB0MgotICAgIGFuZHEgdDIsIHQwCi0KLSAgICBvcnEgdDEsIHQwCi0gICAgZnEyZCB0MCwg
ZnQwCi0gICAgcmV0dXJuZChjdHgsIGZ0MCkKLWVuZCkKLQogd2FzbU9wKGYzMl9jb252ZXJ0X3Vf
aTMyLCBXYXNtRjMyQ29udmVydFVJMzIsIG1hY3JvKGN0eCkKICAgICBtbG9hZGkoY3R4LCBtX29w
ZXJhbmQsIHQwKQogICAgIGNpMmYgdDAsIGZ0MApAQCAtMTk3MywxMzQgKzE0NDksNiBAQCB3YXNt
T3AoaTMyX2NseiwgV2FzbUkzMkNseiwgbWFjcm8oY3R4KQogICAgIHJldHVybmkoY3R4LCB0MSkK
IGVuZCkKIAotd2FzbU9wKGk2NF9hZGQsIFdhc21JNjRBZGQsIG1hY3JvKGN0eCkKLSAgICBtbG9h
ZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGFkZHEg
dDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X3N1YiwgV2Fz
bUk2NFN1YiwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9h
ZHEoY3R4LCBtX3JocywgdDEpCi0gICAgc3VicSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDAp
Ci1lbmQpCi0KLXdhc21PcChpNjRfbXVsLCBXYXNtSTY0TXVsLCBtYWNybyhjdHgpCi0gICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBtdWxx
IHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9hbmQsIFdh
c21JNjRBbmQsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxv
YWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGFuZHEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQx
KQotZW5kKQotCi13YXNtT3AoaTY0X29yLCBXYXNtSTY0T3IsIG1hY3JvKGN0eCkKLSAgICBtbG9h
ZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIG9ycSB0
MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfeG9yLCBXYXNt
STY0WG9yLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2Fk
cShjdHgsIG1fcmhzLCB0MSkKLSAgICB4b3JxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkK
LWVuZCkKLQotd2FzbU9wKGk2NF9lcSwgV2FzbUk2NEVxLCBtYWNybyhjdHgpCi0gICAgbWxvYWRx
KGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWVxIHQw
LCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13
YXNtT3AoaTY0X25lLCBXYXNtSTY0TmUsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xo
cywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxbmVxIHQwLCB0MSwgdDIK
LSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0
X2x0X3MsIFdhc21JNjRMdFMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDAp
Ci0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxbHQgdDAsIHQxLCB0MgotICAgIGFu
ZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfbGVfcywg
V2FzbUk2NExlUywgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBt
bG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FsdGVxIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEs
IHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2x0X3UsIFdhc21J
NjRMdFUsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRx
KGN0eCwgbV9yaHMsIHQxKQotICAgIGNxYiB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAg
IHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9sZV91LCBXYXNtSTY0TGVVLCBt
YWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1f
cmhzLCB0MSkKLSAgICBjcWJlcSB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVy
bmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9ndF9zLCBXYXNtSTY0R3RTLCBtYWNybyhj
dHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0
MSkKLSAgICBjcWd0IHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgs
IHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2dlX3MsIFdhc21JNjRHZVMsIG1hY3JvKGN0eCkKLSAg
ICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAg
IGNxZ3RlcSB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikK
LWVuZCkKLQotd2FzbU9wKGk2NF9ndF91LCBXYXNtSTY0R3RVLCBtYWNybyhjdHgpCi0gICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWEg
dDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0K
LXdhc21PcChpNjRfZ2VfdSwgV2FzbUk2NEdlVSwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgs
IG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FhZXEgdDAsIHQx
LCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21P
cChpNjRfY2x6LCBXYXNtSTY0Q2x6LCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVy
YW5kLCB0MCkKLSAgICBsemNudHEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQot
CiB3YXNtT3AoZjMyX2FkZCwgV2FzbUYzMkFkZCwgbWFjcm8oY3R4KQogICAgIG1sb2FkZihjdHgs
IG1fbGhzLCBmdDApCiAgICAgbWxvYWRmKGN0eCwgbV9yaHMsIGZ0MSkKQEAgLTIxNDEsMTMgKzE0
ODksMTMgQEAgd2FzbU9wKGYzMl9uZWcsIFdhc21GMzJOZWcsIG1hY3JvKGN0eCkKICAgICByZXR1
cm5mKGN0eCwgZnQxKQogZW5kKQogCi13YXNtT3AoZjMyX2NlaWwsIFdhc21GMzJDZWlsLCBtYWNy
byhjdHgpCit3YXNtUm91bmRpbmdPcChmMzJfY2VpbCwgV2FzbUYzMkNlaWwsIG1hY3JvKGN0eCkK
ICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICBjZWlsZiBmdDAsIGZ0MQogICAg
IHJldHVybmYoY3R4LCBmdDEpCiBlbmQpCiAKLXdhc21PcChmMzJfZmxvb3IsIFdhc21GMzJGbG9v
ciwgbWFjcm8oY3R4KQord2FzbVJvdW5kaW5nT3AoZjMyX2Zsb29yLCBXYXNtRjMyRmxvb3IsIG1h
Y3JvKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICBmbG9vcmYgZnQw
LCBmdDEKICAgICByZXR1cm5mKGN0eCwgZnQxKQpAQCAtMjI0MSwxMyArMTU4OSwxMyBAQCB3YXNt
T3AoZjY0X25lZywgV2FzbUY2NE5lZywgbWFjcm8oY3R4KQogICAgIHJldHVybmQoY3R4LCBmdDEp
CiBlbmQpCiAKLXdhc21PcChmNjRfY2VpbCwgV2FzbUY2NENlaWwsIG1hY3JvKGN0eCkKK3dhc21S
b3VuZGluZ09wKGY2NF9jZWlsLCBXYXNtRjY0Q2VpbCwgbWFjcm8oY3R4KQogICAgIG1sb2FkZChj
dHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIGNlaWxkIGZ0MCwgZnQxCiAgICAgcmV0dXJuZChjdHgs
IGZ0MSkKIGVuZCkKIAotd2FzbU9wKGY2NF9mbG9vciwgV2FzbUY2NEZsb29yLCBtYWNybyhjdHgp
Cit3YXNtUm91bmRpbmdPcChmNjRfZmxvb3IsIFdhc21GNjRGbG9vciwgbWFjcm8oY3R4KQogICAg
IG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIGZsb29yZCBmdDAsIGZ0MQogICAgIHJl
dHVybmQoY3R4LCBmdDEpCkBAIC0yMzAyLDUwICsxNjUwLDIwIEBAIHdhc21PcChmNjRfZ2UsIFdh
c21GNjRHZSwgbWFjcm8oY3R4KQogZW5kKQogCiB3YXNtT3AoaTMyX3dyYXBfaTY0LCBXYXNtSTMy
V3JhcEk2NCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAg
bWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCiAK
LXdhc21PcChpNjRfZXh0ZW5kX3NfaTMyLCBXYXNtSTY0RXh0ZW5kU0kzMiwgbWFjcm8oY3R4KQot
ICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgc3hpMnEgdDAsIHQxCi0gICAgcmV0
dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X2V4dGVuZF91X2kzMiwgV2FzbUk2NEV4
dGVuZFVJMzIsIG1hY3JvKGN0eCkKLSAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQotICAg
IHp4aTJxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQogd2FzbU9wKGkzMl9l
eHRlbmQ4X3MsIFdhc21JMzJFeHRlbmQ4UywgbWFjcm8oY3R4KQogICAgIG1sb2FkaShjdHgsIG1f
b3BlcmFuZCwgdDApCiAgICAgc3hiMmkgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQorICAg
IHJldHVybmkoY3R4LCB0MSkKIGVuZCkKIAogd2FzbU9wKGkzMl9leHRlbmQxNl9zLCBXYXNtSTMy
RXh0ZW5kMTZTLCBtYWNybyhjdHgpCiAgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAg
ICBzeGgyaSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRf
ZXh0ZW5kOF9zLCBXYXNtSTY0RXh0ZW5kOFMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBt
X29wZXJhbmQsIHQwKQotICAgIHN4YjJxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVu
ZCkKLQotd2FzbU9wKGk2NF9leHRlbmQxNl9zLCBXYXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhjdHgp
Ci0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBzeGgycSB0MCwgdDEKLSAgICBy
ZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfZXh0ZW5kMzJfcywgV2FzbUk2NEV4
dGVuZDE2UywgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAg
c3hpMnEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQorICAgIHJldHVybmkoY3R4LCB0MSkK
IGVuZCkKIAogd2FzbU9wKGYzMl9jb252ZXJ0X3NfaTMyLCBXYXNtRjMyQ29udmVydFNJMzIsIG1h
Y3JvKGN0eCkKQEAgLTIzNTQsNyArMTY3Miw3IEBAIHdhc21PcChmMzJfY29udmVydF9zX2kzMiwg
V2FzbUYzMkNvbnZlcnRTSTMyLCBtYWNybyhjdHgpCiAgICAgcmV0dXJuZihjdHgsIGZ0MCkKIGVu
ZCkKIAotd2FzbU9wKGYzMl9jb252ZXJ0X3NfaTY0LCBXYXNtRjMyQ29udmVydFNJNjQsIG1hY3Jv
KGN0eCkKK3dhc21JNjRUb0ZPcChmMzJfY29udmVydF9zX2k2NCwgV2FzbUYzMkNvbnZlcnRTSTY0
LCBtYWNybyhjdHgpCiAgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICBjcTJmcyB0
MCwgZnQwCiAgICAgcmV0dXJuZihjdHgsIGZ0MCkKQEAgLTIzNzgsNyArMTY5Niw3IEBAIHdhc21P
cChmNjRfY29udmVydF9zX2kzMiwgV2FzbUY2NENvbnZlcnRTSTMyLCBtYWNybyhjdHgpCiAgICAg
cmV0dXJuZChjdHgsIGZ0MCkKIGVuZCkKIAotd2FzbU9wKGY2NF9jb252ZXJ0X3NfaTY0LCBXYXNt
RjY0Q29udmVydFNJNjQsIG1hY3JvKGN0eCkKK3dhc21JNjRUb0ZPcChmNjRfY29udmVydF9zX2k2
NCwgV2FzbUY2NENvbnZlcnRTSTY0LCBtYWNybyhjdHgpCiAgICAgbWxvYWRxKGN0eCwgbV9vcGVy
YW5kLCB0MCkKICAgICBjcTJkcyB0MCwgZnQwCiAgICAgcmV0dXJuZChjdHgsIGZ0MCkKQEAgLTIz
OTAsMzQgKzE3MDgsMjkgQEAgd2FzbU9wKGY2NF9wcm9tb3RlX2YzMiwgV2FzbUY2NFByb21vdGVG
MzIsIG1hY3JvKGN0eCkKICAgICByZXR1cm5kKGN0eCwgZnQxKQogZW5kKQogCi13YXNtT3AoZjY0
X3JlaW50ZXJwcmV0X2k2NCwgV2FzbUY2NFJlaW50ZXJwcmV0STY0LCBtYWNybyhjdHgpCi0gICAg
bWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBmcTJkIHQwLCBmdDAKLSAgICByZXR1cm5k
KGN0eCwgZnQwKQotZW5kKQotCiB3YXNtT3AoaTMyX3JlaW50ZXJwcmV0X2YzMiwgV2FzbUkzMlJl
aW50ZXJwcmV0RjMyLCBtYWNybyhjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDAp
CiAgICAgZmYyaSBmdDAsIHQwCiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQogCi13YXNtT3Ao
aTY0X3JlaW50ZXJwcmV0X2Y2NCwgV2FzbUk2NFJlaW50ZXJwcmV0RjY0LCBtYWNybyhjdHgpCi0g
ICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0gICAgZmQycSBmdDAsIHQwCi0gICAgcmV0
dXJucShjdHgsIHQwKQotZW5kKQotCiBtYWNybyBkcm9wS2VlcChzdGFydE9mZnNldCwgZHJvcCwg
a2VlcCkKICAgICBsc2hpZnRpIDMsIHN0YXJ0T2Zmc2V0CiAgICAgc3VicCBjZnIsIHN0YXJ0T2Zm
c2V0LCBzdGFydE9mZnNldAogICAgIG5lZ2kgZHJvcAoraWYgSlNWQUxVRTY0CiAgICAgc3hpMnEg
ZHJvcCwgZHJvcAorZW5kCiAKIC5jb3B5TG9vcDoKICAgICBidGl6IGtlZXAsIC5kb25lCitpZiBK
U1ZBTFVFNjQKICAgICBsb2FkcSBbc3RhcnRPZmZzZXQsIGRyb3AsIDhdLCB0NgogICAgIHN0b3Jl
cSB0NiwgW3N0YXJ0T2Zmc2V0XQorZWxzZQorICAgIGxvYWQyaWEgW3N0YXJ0T2Zmc2V0LCBkcm9w
LCA4XSwgdDUsIHQ2CisgICAgc3RvcmUyaWEgdDUsIHQ2LCBbc3RhcnRPZmZzZXRdCitlbmQKICAg
ICBzdWJpIDEsIGtlZXAKICAgICBzdWJwIDgsIHN0YXJ0T2Zmc2V0CiAgICAgam1wIC5jb3B5TG9v
cApAQCAtMjQzNSwzODkgKzE3NDgsNiBAQCB3YXNtT3AoZHJvcF9rZWVwLCBXYXNtRHJvcEtlZXAs
IG1hY3JvKGN0eCkKICAgICBkaXNwYXRjaChjdHgpCiBlbmQpCiAKLW1hY3JvIHdhc21BdG9taWNC
aW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBm
bmksIGZucSkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwg
V2FzbUk2NEF0b21pY1JtdzgldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAg
bWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwg
dDEpCi0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQwKQotICAgICAgICBlbWl0Q2hlY2tB
bmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgsIHQzLCB0MSwgMSkKLSAgICAgICAgZm5i
KHQwLCBbdDNdLCB0MiwgdDUsIHQxKQotICAgICAgICBhbmRxIDB4ZmYsIHQwICMgRklYTUU6IFpl
cm9FeHRlbmQ4VG82NAotICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmLCAu
b2sgZW5kKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdhc21PcChp
NjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzE2JXVw
cGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRl
ciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEo
Y3R4LCBtX3ZhbHVlLCB0MCkKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRp
bmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDIpCi0gICAgICAgIGZuaCh0
MCwgW3QzXSwgdDIsIHQ1LCB0MSkKLSAgICAgICAgYW5kcSAweGZmZmYsIHQwICMgRklYTUU6IFpl
cm9FeHRlbmQxNlRvNjQKLSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZmZm
LCAub2sgZW5kKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdhc21P
cChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzMy
JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9p
bnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9h
ZHEoY3R4LCBtX3ZhbHVlLCB0MCkKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJB
ZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDQpCi0gICAgICAgIGZu
aSh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKLSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0
MCwgMHhmZmZmZmZmZiwgLm9rIGVuZCkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVu
ZCkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0
b21pY1JtdyV1cHBlckNhc2VPcGNvZGUlLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgs
IG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAg
ICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBv
aW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDgpCi0gICAg
ICAgIGZucSh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQot
ICAgIGVuZCkKLWVuZAotCi1tYWNybyB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMo
bG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuaSwgZm5xKQotICAgIHdhc21BdG9t
aWNCaW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsCi0gICAgICAg
IG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBpZiBY
ODZfNjQKLSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgotICAgICAgICAgICAgICAg
IGxvYWRiIG1lbSwgdDBHUFIKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIG1v
dmUgdDBHUFIsIHQyR1BSCi0gICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKLSAgICAg
ICAgICAgICAgICBiYXRvbWljd2Vha2Nhc2IgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCi0gICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBsb2FkbGlu
a2FjcWIgbWVtLCB0MUdQUgotICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BS
KQotICAgICAgICAgICAgICAgIHN0b3JlY29uZHJlbGIgdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAg
ICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKLSAgICAgICAgICAgICAgICBtb3ZlIHQx
R1BSLCB0MEdQUgotICAgICAgICAgICAgZW5kCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIGlmIFg4Nl82NAot
ICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCi0gICAgICAgICAgICAgICAgbG9hZGgg
bWVtLCB0MEdQUgotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQ
UiwgdDJHUFIKLSAgICAgICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQotICAgICAgICAgICAg
ICAgIGJhdG9taWN3ZWFrY2FzaCB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKLSAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxaCBt
ZW0sIHQxR1BSCi0gICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAg
ICAgICAgICAgICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAg
ICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAotICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQw
R1BSCi0gICAgICAgICAgICBlbmQKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgaWYgWDg2XzY0Ci0gICAgICAg
ICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKLSAgICAgICAgICAgICAgICBsb2FkaSBtZW0sIHQw
R1BSCi0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQ
UgotICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAgICAgYmF0
b21pY3dlYWtjYXNpIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAotICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbG9hZGxpbmthY3FpIG1lbSwgdDFH
UFIKLSAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAg
ICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICAgICAgYmlu
ZXEgdDVHUFIsIDAsIC5sb29wCi0gICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAg
ICAgICAgICAgIGVuZAotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBpZiBYODZfNjQKLSAgICAgICAgICAgICAg
ICBtb3ZlIHQwR1BSLCB0NUdQUgotICAgICAgICAgICAgICAgIGxvYWRxIG1lbSwgdDBHUFIKLSAg
ICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCi0gICAg
ICAgICAgICAgICAgZm5xKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgICAgICBiYXRvbWljd2Vh
a2Nhc3EgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCi0gICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBsb2FkbGlua2FjcXEgbWVtLCB0MUdQUgotICAg
ICAgICAgICAgICAgIGZucSh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgICAgIHN0
b3JlY29uZHJlbHEgdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgICAgICBiaW5lcSB0NUdQ
UiwgMCwgLmxvb3AKLSAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAgICAgICAg
ICAgZW5kCi0gICAgICAgIGVuZCkKLWVuZAotCi1pZiBYODZfNjQKLSAgICB3YXNtQXRvbWljQmlu
YXJ5Uk1XT3BzKF9hZGQsIEFkZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1
R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGIgdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRoIHQwR1BSLCBt
ZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBh
dG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwg
dDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZHEgdDBHUFIsIG1lbSBlbmQpCi0gICAg
d2FzbUF0b21pY0JpbmFyeVJNV09wcyhfc3ViLCBTdWIsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJiIHQwR1BSLCBtZW0gZW5kLAot
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
c3ViaCB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1
R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1YmkgdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJxIHQwR1BSLCBt
ZW0gZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hjaGcsIFhjaGcsCi0gICAgICAg
IG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdiIHQwR1BS
LCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KSBhdG9taWN4Y2hnaCB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwg
dDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2kgdDBHUFIsIG1lbSBlbmQsCi0gICAgICAg
IG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdxIHQwR1BS
LCBtZW0gZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYW5kLCBB
bmQsCi0gICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgIGFuZGkgdDVHUFIs
IHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAg
ICAgICAgYW5kcSB0NUdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5h
cnlSTVdPcHNXaXRoV2Vha0NBUyhfb3IsIE9yLAotICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIp
Ci0gICAgICAgICAgICBvcmkgdDVHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFj
cm8odDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgb3JxIHQ1R1BSLCB0MkdQUgotICAgICAgICBl
bmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwKLSAg
ICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgeG9yaSB0NUdQUiwgdDJHUFIK
LSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICB4
b3JxIHQ1R1BSLCB0MkdQUgotICAgICAgICBlbmQpCi1lbHNpZiBBUk02NEUKLSAgICB3YXNtQXRv
bWljQmluYXJ5Uk1XT3BzKF9hZGQsIEFkZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJH
UFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGIgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAot
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
YWRkaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwK
LSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNo
Z2FkZHEgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMo
X3N1YiwgU3ViLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KQotICAgICAgICAgICAgbmVncSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGIgdDBH
UFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgbmVncSB0MEdQUgotICAgICAgICAgICAg
YXRvbWljeGNoZ2FkZGggdDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBt
YWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgbmVncSB0
MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1lbSwgdDBHUFIKLSAgICAg
ICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQot
ICAgICAgICAgICAgbmVncSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2FkZHEgdDBHUFIs
IG1lbSwgdDBHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX2Fu
ZCwgQW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQot
ICAgICAgICAgICAgbm90cSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFyYiB0MEdQ
UiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBub3RxIHQwR1BSCi0gICAgICAgICAgICBh
dG9taWN4Y2hnY2xlYXJoIHQwR1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAg
bWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIG5vdHEg
dDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcmkgdDBHUFIsIG1lbSwgdDBHUFIKLSAg
ICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KQotICAgICAgICAgICAgbm90cSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFycSB0
MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09w
cyhfb3IsIE9yLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KSBhdG9taWN4Y2hnb3JiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBH
UFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29yaCB0MEdQUiwgbWVtLCB0
MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIp
IGF0b21pY3hjaGdvcmkgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnb3JxIHQwR1BSLCBtZW0sIHQw
R1BSIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94b3IsIFhvciwKLSAgICAgICAg
bWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmIgdDBH
UFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVH
UFIsIHQxR1BSKSBhdG9taWN4Y2hneG9yaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAg
IG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JpIHQw
R1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1
R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcnEgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQotICAgIHdh
c21BdG9taWNCaW5hcnlSTVdPcHMoX3hjaGcsIFhjaGcsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdiIHQwR1BSLCBtZW0sIHQwR1BSIGVu
ZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWlj
eGNoZ2ggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0g
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdx
IHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKLWVsc2UKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3Bz
V2l0aFdlYWtDQVMoX2FkZCwgQWRkLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BS
KQotICAgICAgICAgICAgYWRkaSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAg
ICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIGFkZHEgdDBHUFIs
IHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dp
dGhXZWFrQ0FTKF9zdWIsIFN1YiwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikK
LSAgICAgICAgICAgIHN1YmkgdDFHUFIsIHQwR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAg
ICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBzdWJxIHQxR1BSLCB0
MEdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRo
V2Vha0NBUyhfeGNoZywgWGNoZywKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikK
LSAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFj
cm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCi0g
ICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FuZCwg
QW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgYW5k
aSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIs
IHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIGFuZHEgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAg
ICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9vciwgT3Is
Ci0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBvcmkgdDBH
UFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQ
UiwgdDJHUFIpCi0gICAgICAgICAgICBvcnEgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBl
bmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwKLSAg
ICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIHhvcmkgdDBHUFIs
IHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwg
dDJHUFIpCi0gICAgICAgICAgICB4b3JxIHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5k
KQotZW5kCi0KLW1hY3JvIHdhc21BdG9taWNDb21wYXJlRXhjaGFuZ2VPcHMobG93ZXJDYXNlT3Bj
b2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmksIGZucSkKLSAgICB3YXNtT3AoaTY0
X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzgldXBwZXJD
YXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0
MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShjdHgs
IG1fZXhwZWN0ZWQsIHQwKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICAg
ICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQoY3R4LCB0MywgdDEsIDEp
Ci0gICAgICAgIGZuYih0MCwgdDIsIFt0M10sIHQ1LCB0MSkKLSAgICAgICAgYW5kcSAweGZmLCB0
MCAjIEZJWE1FOiBaZXJvRXh0ZW5kOFRvNjQKLSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJl
cSB0MCwgMHhmZiwgLm9rIGVuZCkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkK
LSAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcxNiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRB
dG9taWNSbXcxNiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGko
Y3R4LCBtX3BvaW50ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAg
ICAgICAgbWxvYWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCi0gICAgICAgIG1sb2FkcShjdHgsIG1f
dmFsdWUsIHQyKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNl
dFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgMikKLSAgICAgICAgZm5oKHQwLCB0Miwg
W3QzXSwgdDUsIHQxKQotICAgICAgICBhbmRxIDB4ZmZmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVu
ZDE2VG82NAotICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmZmYsIC5vayBl
bmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi0gICAgd2FzbU9wKGk2NF9h
dG9taWNfcm13MzIlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MzIldXBwZXJD
YXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0
MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShjdHgs
IG1fZXhwZWN0ZWQsIHQwKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICAg
ICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hl
Y2soY3R4LCB0MywgdDEsIDQpCi0gICAgICAgIGZuaSh0MCwgdDIsIFt0M10sIHQ1LCB0MSkKLSAg
ICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZmZmZmZmZiwgLm9rIGVuZCkKLSAg
ICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19y
bXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0b21pY1JtdyV1cHBlckNhc2VPcGNvZGUlLCBt
YWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdn
ZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0
MCkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAgICAgIGVtaXRDaGVja0Fu
ZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQx
LCA4KQotICAgICAgICBmbnEodDAsIHQyLCBbdDNdLCB0NSwgdDEpCi0gICAgICAgIHJldHVybnEo
Y3R4LCB0MCkKLSAgICBlbmQpCi1lbmQKLQotIyB0MEdQUiA9PiBleHBlY3RlZCwgdDJHUFIgPT4g
dmFsdWUsIG1lbSA9PiBtZW1vcnkgcmVmZXJlbmNlCi13YXNtQXRvbWljQ29tcGFyZUV4Y2hhbmdl
T3BzKF9jbXB4Y2hnLCBDbXB4Y2hnLAotICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQ
UiwgdDFHUFIpCi0gICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKLSAgICAgICAgICAgIGJxYSB0
MEdQUiAsIDB4ZmYsIC5mYWlsCi0gICAgICAgICAgICBhdG9taWN3ZWFrY2FzYiB0MEdQUiwgdDJH
UFIsIG1lbQotICAgICAgICAgICAgam1wIC5kb25lCi0gICAgICAgIC5mYWlsOgotICAgICAgICAg
ICAgYXRvbWljbG9hZGIgbWVtLCB0MEdQUgotICAgICAgICAuZG9uZToKLSAgICAgICAgZWxzZQot
ICAgICAgICAubG9vcDoKLSAgICAgICAgICAgIGxvYWRsaW5rYWNxYiBtZW0sIHQxR1BSCi0gICAg
ICAgICAgICBicW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCi0gICAgICAgICAgICBzdG9yZWNvbmRy
ZWxiIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQot
ICAgICAgICAgICAgam1wIC5sb29wCi0gICAgICAgIC5mYWlsOgotICAgICAgICAgICAgc3RvcmVj
b25kcmVsYiB0NUdQUiwgdDFHUFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRv
bmUKLSAgICAgICAgICAgIGptcCAubG9vcAotICAgICAgICAuZG9uZToKLSAgICAgICAgICAgIG1v
dmUgdDFHUFIsIHQwR1BSCi0gICAgICAgIGVuZAotICAgIGVuZCwKLSAgICBtYWNybyh0MEdQUiwg
dDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BSKQotICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRFCi0g
ICAgICAgICAgICBicWEgdDBHUFIsIDB4ZmZmZiwgLmZhaWwKLSAgICAgICAgICAgIGF0b21pY3dl
YWtjYXNoIHQwR1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICBqbXAgLmRvbmUKLSAgICAgICAg
LmZhaWw6Ci0gICAgICAgICAgICBhdG9taWNsb2FkaCBtZW0sIHQwR1BSCi0gICAgICAgIC5kb25l
OgotICAgICAgICBlbHNlCi0gICAgICAgIC5sb29wOgotICAgICAgICAgICAgbG9hZGxpbmthY3Fo
IG1lbSwgdDFHUFIKLSAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKLSAgICAg
ICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEg
dDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBqbXAgLmxvb3AKLSAgICAgICAgLmZhaWw6Ci0g
ICAgICAgICAgICBzdG9yZWNvbmRyZWxoIHQ1R1BSLCB0MUdQUiwgbWVtCi0gICAgICAgICAgICBi
aWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAgICAgIC5kb25l
OgotICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAgICAgICAgZW5kCi0gICAgZW5kLAot
ICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgIGlmIFg4
Nl82NCBvciBBUk02NEUKLSAgICAgICAgICAgIGJxYSB0MEdQUiwgMHhmZmZmZmZmZiwgLmZhaWwK
LSAgICAgICAgICAgIGF0b21pY3dlYWtjYXNpIHQwR1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAg
ICBqbXAgLmRvbmUKLSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAgICBhdG9taWNsb2FkaSBtZW0s
IHQwR1BSCi0gICAgICAgIC5kb25lOgotICAgICAgICBlbHNlCi0gICAgICAgIC5sb29wOgotICAg
ICAgICAgICAgbG9hZGxpbmthY3FpIG1lbSwgdDFHUFIKLSAgICAgICAgICAgIGJxbmVxIHQwR1BS
LCB0MUdQUiwgLmZhaWwKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbGkgdDVHUFIsIHQyR1BSLCBt
ZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBqbXAgLmxv
b3AKLSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0MUdQ
UiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1w
IC5sb29wCi0gICAgICAgIC5kb25lOgotICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAg
ICAgICAgZW5kCi0gICAgZW5kLAotICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwg
dDFHUFIpCi0gICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKLSAgICAgICAgICAgIGF0b21pY3dl
YWtjYXNxIHQwR1BSLCB0MkdQUiwgbWVtCi0gICAgICAgIGVsc2UKLSAgICAgICAgLmxvb3A6Ci0g
ICAgICAgICAgICBsb2FkbGlua2FjcXEgbWVtLCB0MUdQUgotICAgICAgICAgICAgYnFuZXEgdDBH
UFIsIHQxR1BSLCAuZmFpbAotICAgICAgICAgICAgc3RvcmVjb25kcmVscSB0NUdQUiwgdDJHUFIs
IG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGptcCAu
bG9vcAotICAgICAgICAuZmFpbDoKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbHEgdDVHUFIsIHQx
R1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBq
bXAgLmxvb3AKLSAgICAgICAgLmRvbmU6Ci0gICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgot
ICAgICAgICBlbmQKLSAgICBlbmQpCi0KIHdhc21PcChhdG9taWNfZmVuY2UsIFdhc21Ecm9wS2Vl
cCwgbWFjcm8oY3R4KQogICAgIGZlbmNlCiAgICAgZGlzcGF0Y2goY3R4KQpAQCAtMjg0Niw5ICsx
Nzc2LDE0IEBAIG1hY3JvIGNvbW1vbkNhdGNoSW1wbChjdHgsIHN0b3JlV2FzbUluc3RhbmNlKQog
ICAgIGNvbnZlcnRDYWxsZWVUb1ZNKHQzKQogICAgIHJlc3RvcmVDYWxsZWVTYXZlc0Zyb21WTUVu
dHJ5RnJhbWVDYWxsZWVTYXZlc0J1ZmZlcih0MywgdDApCiAKLSAgICBsb2FkcCBWTTo6Y2FsbGVl
Rm9yV2FzbUNhdGNoW3QzXSwgd3MxCi0gICAgc3RvcmVwIDAsIFZNOjpjYWxsZWVGb3JXYXNtQ2F0
Y2hbdDNdCi0gICAgc3RvcmVwIHdzMSwgQ2FsbGVlW2Nmcl0KKyAgICBsb2FkcCBWTTo6Y2FsbGVl
Rm9yV2FzbUNhdGNoICsgUGF5bG9hZE9mZnNldFt0M10sIHdzMQorICAgIHN0b3JlcCAwLCBWTTo6
Y2FsbGVlRm9yV2FzbUNhdGNoICsgUGF5bG9hZE9mZnNldFt0M10KKyAgICBzdG9yZXAgd3MxLCBD
YWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0KK2lmIG5vdCBKU1ZBTFVFNjQKKyAgICBsb2FkaSBW
TTo6Y2FsbGVlRm9yV2FzbUNhdGNoICsgVGFnT2Zmc2V0W3QzXSwgd3MxCisgICAgc3RvcmVpIEVt
cHR5VmFsdWVUYWcsIFZNOjpjYWxsZWVGb3JXYXNtQ2F0Y2ggKyBUYWdPZmZzZXRbdDNdCisgICAg
c3RvcmVpIHdzMSwgQ2FsbGVlICsgVGFnT2Zmc2V0W2Nmcl0KK2VuZAogCiAgICAgbG9hZHAgVk06
OmNhbGxGcmFtZUZvckNhdGNoW3QzXSwgY2ZyCiAgICAgc3RvcmVwIDAsIFZNOjpjYWxsRnJhbWVG
b3JDYXRjaFt0M10KQEAgLTI4ODcsOCArMTgyMiwxMyBAQCBtYWNybyBjYXRjaEltcGwoY3R4LCBz
dG9yZVdhc21JbnN0YW5jZSkKIAogLmNvcHlMb29wOgogICAgIGJ0aXogdDMsIC5kb25lCitpZiBK
U1ZBTFVFNjQKICAgICBsb2FkcSBbdDFdLCB0NgogICAgIHN0b3JlcSB0NiwgW3QyXQorZWxzZQor
ICAgIGxvYWQyaWEgW3QxXSwgdDUsIHQ2CisgICAgc3RvcmUyaWEgdDUsIHQ2LCBbdDJdCitlbmQK
ICAgICBzdWJpIDEsIHQzCiAgICAgIyBGSVhNRTogVXNlIGFybSBzdG9yZS1hZGQvc3ViIGluc3Ry
dWN0aW9ucyBpbiB3YXNtIExMSW50IGNhdGNoCiAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjEwCkBAIC0yOTE2LDMgKzE4NTYsMTAgQEAgZW5kKQogY29t
bW9uV2FzbU9wKHdhc21fY2F0Y2hfYWxsX25vX3RscywgV2FzbUNhdGNoQWxsLCBtYWNybygpIGVu
ZCwgbWFjcm8oY3R4KQogICAgIGNhdGNoQWxsSW1wbChjdHgsIG1hY3JvKGluc3RhbmNlKSBlbmQp
CiBlbmQpCisKKyMgVmFsdWUtcmVwcmVzZW50YXRpb24tc3BlY2lmaWMgY29kZS4KK2lmIEpTVkFM
VUU2NAorICAgIGluY2x1ZGUgV2ViQXNzZW1ibHk2NAorZWxzZQorICAgIGluY2x1ZGUgV2ViQXNz
ZW1ibHkzMl82NAorZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
V2ViQXNzZW1ibHkzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNz
ZW1ibHkzMl82NC5hc20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTU4MzA0ZTlmYTExMDZjZDFjNjA5NzgwOGFlNjZl
NGMxZjE0NjFkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9XZWJBc3NlbWJseTMyXzY0LmFzbQpAQCAtMCwwICsxLDExMjkgQEAKKyMgQ29weXJpZ2h0IChD
KSAyMDExLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQg
KEMpIDIwMjEgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgQ29uc3RhbnRzCisKK2NvbnN0IE1zd09mZnNl
dCA9IDQKK2NvbnN0IExzd09mZnNldCA9IDAKKworIyBPcGNvZGVzIHRoYXQgc2hvdWxkIGV2ZW50
dWFsbHkgYmUgc2hhcmVkIHdpdGggSlMgbGxpbnQKKword2FzbU9wKG1vdiwgV2FzbU1vdiwgbWFj
cm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX3NyYywgdDEsIHQwKQorICAgIHJldHVybjJpKGN0
eCwgdDEsIHQwKQorZW5kKQorCisjIFdhc20gc3BlY2lmaWMgYnl0ZWNvZGVzCisKK21hY3JvIGVt
aXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KHBvaW50ZXIsIG9mZnNldCwgc2l6
ZSkKKyAgICAjIFRoaXMgbWFjcm8gdXBkYXRlcyAncG9pbnRlcicgdG8gdGFyZ2V0IGFkZHJlc3Ms
IGFuZCBtYXkgdGhyYXNoICdvZmZzZXQnCitpZiBBUk12NworICAgICMgTm90IGVub3VnaCByZWdp
c3RlcnMgb24gYXJtIHRvIGtlZXAgdGhlIG1lbW9yeSBiYXNlIGFuZCBzaXplIGluIHBpbm5lZAor
ICAgICMgcmVnaXN0ZXJzLCBzbyBsb2FkIHRoZW0gb24gZWFjaCBhY2Nlc3MgaW5zdGVhZC4gRklY
TUU6IGltcHJvdmUgdGhpcy4KKyAgICBhZGRwcyBvZmZzZXQsIHBvaW50ZXIKKyAgICBiY3MgLnRo
cm93CisgICAgYWRkcHMgc2l6ZSAtIDEsIHBvaW50ZXIsIG9mZnNldCAjIFVzZSBvZmZzZXQgYXMg
c2NyYXRjaCByZWdpc3RlcgorICAgIGJjcyAudGhyb3cKKyAgICBicGIgb2Zmc2V0LCBXYXNtOjpJ
bnN0YW5jZTo6bV9jYWNoZWRCb3VuZHNDaGVja2luZ1NpemVbd2FzbUluc3RhbmNlXSwgLmNvbnRp
bnVhdGlvbgorLnRocm93OgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNj
ZXNzKQorLmNvbnRpbnVhdGlvbjoKKyAgICBhZGRwIFdhc206Okluc3RhbmNlOjptX2NhY2hlZE1l
bW9yeVt3YXNtSW5zdGFuY2VdLCBwb2ludGVyCitlbHNlCisgICAgY3Jhc2goKQorZW5kCitlbmQK
KworbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25t
ZW50Q2hlY2socG9pbnRlciwgb2Zmc2V0LCBzaXplKQorICAgICMgVGhpcyBtYWNybyB1cGRhdGVz
ICdwb2ludGVyJyB0byB0YXJnZXQgYWRkcmVzcywgYW5kIG1heSB0aHJhc2ggJ29mZnNldCcKK2lm
IEFSTXY3CisgICAgIyBOb3QgZW5vdWdoIHJlZ2lzdGVycyBvbiBhcm0gdG8ga2VlcCB0aGUgbWVt
b3J5IGJhc2UgYW5kIHNpemUgaW4gcGlubmVkCisgICAgIyByZWdpc3RlcnMsIHNvIGxvYWQgdGhl
bSBvbiBlYWNoIGFjY2VzcyBpbnN0ZWFkLiBGSVhNRTogaW1wcm92ZSB0aGlzLgorICAgIGFkZHBz
IG9mZnNldCwgcG9pbnRlcgorICAgIGJjcyAudGhyb3cKKyAgICBhZGRwcyBzaXplIC0gMSwgcG9p
bnRlciwgb2Zmc2V0ICMgVXNlIG9mZnNldCBhcyBzY3JhdGNoIHJlZ2lzdGVyCisgICAgYmNzIC50
aHJvdworICAgIGJwYiBvZmZzZXQsIFdhc206Okluc3RhbmNlOjptX2NhY2hlZEJvdW5kc0NoZWNr
aW5nU2l6ZVt3YXNtSW5zdGFuY2VdLCAuY29udGludWF0aW9uCisudGhyb3c6CisgICAgdGhyb3dF
eGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCisuY29udGludWF0aW9uOgorICAgIGFk
ZHAgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkTWVtb3J5W3dhc21JbnN0YW5jZV0sIHBvaW50ZXIK
KyAgICBidHBueiBwb2ludGVyLCAoc2l6ZSAtIDEpLCAudGhyb3cKK2Vsc2UKKyAgICBjcmFzaCgp
CitlbmQKK2VuZAorCittYWNybyB3YXNtTG9hZE9wKG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4pCisg
ICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBt
X3BvaW50ZXIsIHQwKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAg
ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQodDAsIHQxLCBzaXplKQorICAg
ICAgICBmbih0MCwgdDMsIHQyKQorICAgICAgICByZXR1cm4yaShjdHgsIHQzLCB0MikKKyAgICBl
bmQpCitlbmQKKword2FzbUxvYWRPcChsb2FkOF91LCBXYXNtTG9hZDhVLCAxLCBtYWNybyhhZGRy
LCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkYiBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAg
IG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGxvYWQxNl91LCBXYXNtTG9hZDE2VSwg
MiwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGggTHN3T2Zmc2V0W2FkZHJd
LCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdworZW5kKQord2FzbUxvYWRPcChsb2FkMzJfdSwg
V2FzbUxvYWQzMlUsIDQsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRpIExz
d09mZnNldFthZGRyXSwgZHN0THN3CisgICAgbW92ZSAwLCBkc3RNc3cKK2VuZCkKK3dhc21Mb2Fk
T3AobG9hZDY0X3UsIFdhc21Mb2FkNjRVLCA4LCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykK
KyAgICAjIE1pZ2h0IGJlIHVuYWxpZ25lZCwgc28gY2FuJ3QgdXNlIGxvYWQyaWEKKyAgICBsb2Fk
aSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAgIGxvYWRpIE1zd09mZnNldFthZGRyXSwgZHN0
TXN3CitlbmQpCisKK3dhc21Mb2FkT3AoaTMyX2xvYWQ4X3MsIFdhc21JMzJMb2FkOFMsIDEsIG1h
Y3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRic2kgTHN3T2Zmc2V0W2FkZHJdLCBk
c3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdworZW5kKQord2FzbUxvYWRPcChpMzJfbG9hZDE2X3Ms
IFdhc21JMzJMb2FkMTZTLCAyLCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2Fk
aHNpIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAgbW92ZSAwLCBkc3RNc3cKK2VuZCkKK3dh
c21Mb2FkT3AoaTY0X2xvYWQ4X3MsIFdhc21JNjRMb2FkOFMsIDEsIG1hY3JvKGFkZHIsIGRzdE1z
dywgZHN0THN3KQorICAgIGxvYWRic2kgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICByc2hp
ZnRpIGRzdExzdywgMzEsIGRzdE1zdworZW5kKQord2FzbUxvYWRPcChpNjRfbG9hZDE2X3MsIFdh
c21JNjRMb2FkMTZTLCAyLCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkaHNp
IExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAgcnNoaWZ0aSBkc3RMc3csIDMxLCBkc3RNc3cK
K2VuZCkKK3dhc21Mb2FkT3AoaTY0X2xvYWQzMl9zLCBXYXNtSTY0TG9hZDMyUywgNCwgbWFjcm8o
YWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGkgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cK
KyAgICByc2hpZnRpIGRzdExzdywgMzEsIGRzdE1zdworZW5kKQorCittYWNybyB3YXNtU3RvcmVP
cChuYW1lLCBzdHJ1Y3QsIHNpemUsIGZuKQorICAgIHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1hY3Jv
KGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MCkKKyAgICAgICAgd2dldHUo
Y3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRk
aW5nT2Zmc2V0KHQwLCB0MSwgc2l6ZSkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQz
LCB0MikKKyAgICAgICAgZm4odDMsIHQyLCB0MCkKKyAgICAgICAgZGlzcGF0Y2goY3R4KQorICAg
IGVuZCkKK2VuZAorCit3YXNtU3RvcmVPcChzdG9yZTgsIFdhc21TdG9yZTgsIDEsIG1hY3JvKHNy
Y01zdywgc3JjTHN3LCBhZGRyKQorICAgIHN0b3JlYiBzcmNMc3csIExzd09mZnNldFthZGRyXQor
ZW5kKQord2FzbVN0b3JlT3Aoc3RvcmUxNiwgV2FzbVN0b3JlMTYsIDIsIG1hY3JvKHNyY01zdywg
c3JjTHN3LCBhZGRyKQorICAgIHN0b3JlaCBzcmNMc3csIExzd09mZnNldFthZGRyXQorZW5kKQor
d2FzbVN0b3JlT3Aoc3RvcmUzMiwgV2FzbVN0b3JlMzIsIDQsIG1hY3JvKHNyY01zdywgc3JjTHN3
LCBhZGRyKQorICAgIHN0b3JlaSBzcmNMc3csIExzd09mZnNldFthZGRyXQorZW5kKQord2FzbVN0
b3JlT3Aoc3RvcmU2NCwgV2FzbVN0b3JlNjQsIDgsIG1hY3JvKHNyY01zdywgc3JjTHN3LCBhZGRy
KQorICAgICMgTWlnaHQgYmUgdW5hbGlnbmVkLCBzbyBjYW4ndCB1c2Ugc3RvcmUyaWEKKyAgICBz
dG9yZWkgc3JjTHN3LCBMc3dPZmZzZXRbYWRkcl0KKyAgICBzdG9yZWkgc3JjTXN3LCBNc3dPZmZz
ZXRbYWRkcl0KK2VuZCkKKword2FzbU9wKHJlZl9pc19udWxsLCBXYXNtUmVmSXNOdWxsLCBtYWNy
byhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fcmVmLCB0MSwgdDApICMgdDAgaXMgdW51c2VkCisg
ICAgY2llcSB0MSwgTnVsbFRhZywgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCitlbmQpCisKK3dh
c21PcChnZXRfZ2xvYmFsLCBXYXNtR2V0R2xvYmFsLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2Fz
bTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwg
bV9nbG9iYWxJbmRleCwgdDEpCisgICAgbG9hZDJpYSBbdDAsIHQxLCA4XSwgdDAsIHQxCisgICAg
cmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChzZXRfZ2xvYmFsLCBXYXNtU2V0
R2xvYmFsLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3
YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAg
bWxvYWQyaShjdHgsIG1fdmFsdWUsIHQzLCB0MikKKyAgICBzdG9yZTJpYSB0MiwgdDMsIFt0MCwg
dDEsIDhdCisgICAgZGlzcGF0Y2goY3R4KQorZW5kKQorCit3YXNtT3AoZ2V0X2dsb2JhbF9wb3J0
YWJsZV9iaW5kaW5nLCBXYXNtR2V0R2xvYmFsUG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCisg
ICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAg
IHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbG9hZHAgW3QwLCB0MSwgOF0sIHQw
CisgICAgbG9hZDJpYSBbdDBdLCB0MCwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2Vu
ZCkKKword2FzbU9wKHNldF9nbG9iYWxfcG9ydGFibGVfYmluZGluZywgV2FzbVNldEdsb2JhbFBv
cnRhYmxlQmluZGluZywgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2ds
b2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQx
KQorICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVlLCB0MywgdDIpCisgICAgbG9hZHAgW3QwLCB0MSwg
OF0sIHQwCisgICAgc3RvcmUyaWEgdDIsIHQzLCBbdDBdCisgICAgZGlzcGF0Y2goY3R4KQorZW5k
KQorCisjIE9wY29kZXMgdGhhdCBkb24ndCBoYXZlIHRoZSBgYjNvcGAgZW50cnkgaW4gd2FzbS5q
c29uLiBUaGlzIHNob3VsZCBiZSBrZXB0IGluIHN5bmMKKworbWFjcm8gY2FsbERpdlJlbShmbikK
K2lmIEFSTXY3CisgICAgc3VicCBTdGFja0FsaWdubWVudCwgc3AKKyAgICBzdG9yZXAgUEMsIFtz
cF0KKyAgICBjQ2FsbDQoZm4pCisgICAgbG9hZHAgW3NwXSwgUEMKKyAgICBhZGRwIFN0YWNrQWxp
Z25tZW50LCBzcAorZWxzZQorICAgIGVycm9yCitlbmQKK2VuZAorCisjIGkzMiBiaW5hcnkgb3Bz
CisKK3dhc21PcChpMzJfZGl2X3MsIFdhc21JMzJEaXZTLCBtYWNybyAoY3R4KQorICAgIG1sb2Fk
aShjdHgsIG1fbGhzLCBhMCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgYTEpCisKKyAgICBidGl6
IGExLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgYmluZXEgYTEsIC0xLCAuc2FmZQorICAg
IGJpZXEgYTAsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC50aHJvd0ludGVnZXJPdmVyZmxvdworCisu
c2FmZToKKyAgICBjYWxsRGl2UmVtKF9zbG93X3BhdGhfd2FzbV9pMzJfZGl2X3MpCisgICAgcmV0
dXJuaShjdHgsIHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlv
bihEaXZpc2lvbkJ5WmVybykKKworLnRocm93SW50ZWdlck92ZXJmbG93OgorICAgIHRocm93RXhj
ZXB0aW9uKEludGVnZXJPdmVyZmxvdykKK2VuZCkKKword2FzbU9wKGkzMl9kaXZfdSwgV2FzbUkz
MkRpdlUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9saHMsIGEwKQorICAgIG1sb2Fk
aShjdHgsIG1fcmhzLCBhMSkKKworICAgIGJ0aXogYTEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisK
KyAgICBjYWxsRGl2UmVtKF9zbG93X3BhdGhfd2FzbV9pMzJfZGl2X3UpCisgICAgcmV0dXJuaShj
dHgsIHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZp
c2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGkzMl9yZW1fcywgV2FzbUkzMlJlbVMsIG1hY3Jv
IChjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9saHMsIGEwKQorICAgIG1sb2FkaShjdHgsIG1fcmhz
LCBhMSkKKworICAgIGJ0aXogYTEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBiaW5lcSBh
MSwgLTEsIC5zYWZlCisgICAgYmluZXEgYTAsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC5zYWZlCisK
KyAgICBtb3ZlIDAsIHIwCisgICAgam1wIC5yZXR1cm4KKworLnNhZmU6CisgICAgY2FsbERpdlJl
bShfc2xvd19wYXRoX3dhc21faTMyX3JlbV9zKQorCisucmV0dXJuOgorICAgIHJldHVybmkoY3R4
LCByMCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNp
b25CeVplcm8pCitlbmQpCisKK3dhc21PcChpMzJfcmVtX3UsIFdhc21JMzJSZW1VLCBtYWNybyAo
Y3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCBhMCkKKyAgICBtbG9hZGkoY3R4LCBtX3Jocywg
YTEpCisKKyAgICBidGl6IGExLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgY2FsbERpdlJl
bShfc2xvd19wYXRoX3dhc21faTMyX3JlbV91KQorICAgIHJldHVybmkoY3R4LCByMCkKKworLnRo
cm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitl
bmQpCisKKyMgaTY0IGJpbmFyeSBvcHMKKword2FzbU9wKGk2NF9hZGQsIFdhc21JNjRBZGQsIG1h
Y3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0
eCwgbV9yaHMsIHQzLCB0MikKKyAgICBhZGRpcyB0MiwgdDAKKyAgICBhZGNpICB0MywgdDEKKyAg
ICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9zdWIsIFdhc21JNjRT
dWIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9h
ZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBzdWJpcyB0MiwgdDAKKyAgICBzYmNpICB0Mywg
dDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9tdWwsIFdh
c21JNjRNdWwsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAg
ICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtdWxpIHQyLCB0MQorICAgIG11bGkg
dDAsIHQzCisgICAgdW11bGxpIHQwLCB0MiwgdDAsIHQyCisgICAgYWRkaSB0MSwgdDIKKyAgICBh
ZGRpIHQzLCB0MgorICAgIHJldHVybjJpKGN0eCwgdDIsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0
X2Rpdl9zLCBXYXNtSTY0RGl2UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMs
IGExLCBhMCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIGEzLCBhMikKKworICAgIGJ0aW56IGEz
LCAubm9uWmVyb0Rpdmlzb3IKKyAgICBidGl6IGEyLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisu
bm9uWmVyb0Rpdmlzb3I6CisgICAgYmluZXEgYTMsIC0xLCAuc2FmZQorICAgIGJpbmVxIGEyLCAt
MSwgLnNhZmUKKyAgICBiaW5lcSBhMSwgY29uc3RleHByIElOVDMyX01JTiwgLnNhZmUKKyAgICBi
dGl6IGEwLCAudGhyb3dJbnRlZ2VyT3ZlcmZsb3cKKworLnNhZmU6CisgICAgY2FsbERpdlJlbShf
c2xvd19wYXRoX3dhc21faTY0X2Rpdl9zKQorICAgIHJldHVybjJpKGN0eCwgcjEsIHIwKQorCisu
dGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykK
KworLnRocm93SW50ZWdlck92ZXJmbG93OgorICAgIHRocm93RXhjZXB0aW9uKEludGVnZXJPdmVy
ZmxvdykKK2VuZCkKKword2FzbU9wKGk2NF9kaXZfdSwgV2FzbUk2NERpdlUsIG1hY3JvIChjdHgp
CisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCBhMSwgYTApCisgICAgbWxvYWQyaShjdHgsIG1fcmhz
LCBhMywgYTIpCisKKyAgICBidGlueiBhMywgLm5vblplcm9EaXZpc29yCisgICAgYnRpeiBhMiwg
LnRocm93RGl2aXNpb25CeVplcm8KKworLm5vblplcm9EaXZpc29yOgorICAgIGNhbGxEaXZSZW0o
X3Nsb3dfcGF0aF93YXNtX2k2NF9kaXZfdSkKKyAgICByZXR1cm4yaShjdHgsIHIxLCByMCkKKwor
LnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8p
CitlbmQpCisKK3dhc21PcChpNjRfcmVtX3MsIFdhc21JNjRSZW1TLCBtYWNybyAoY3R4KQorICAg
IG1sb2FkMmkoY3R4LCBtX2xocywgYTEsIGEwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgYTMs
IGEyKQorCisgICAgYnRpbnogYTMsIC5ub25aZXJvRGl2aXNvcgorICAgIGJ0aXogYTIsIC50aHJv
d0RpdmlzaW9uQnlaZXJvCisKKy5ub25aZXJvRGl2aXNvcjoKKyAgICBiaW5lcSBhMywgLTEsIC5z
YWZlCisgICAgYmluZXEgYTIsIC0xLCAuc2FmZQorICAgIGJpbmVxIGExLCBjb25zdGV4cHIgSU5U
MzJfTUlOLCAuc2FmZQorICAgIGJ0aW56IGEwLCAuc2FmZQorCisgICAgbW92ZSAwLCByMQorICAg
IG1vdmUgMCwgcjAKKyAgICBqbXAgLnJldHVybgorCisuc2FmZToKKyAgICBjYWxsRGl2UmVtKF9z
bG93X3BhdGhfd2FzbV9pNjRfcmVtX3MpCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCBy
MSwgcjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlz
aW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTY0X3JlbV91LCBXYXNtSTY0UmVtVSwgbWFjcm8g
KGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIGExLCBhMCkKKyAgICBtbG9hZDJpKGN0eCwg
bV9yaHMsIGEzLCBhMikKKworICAgIGJ0aW56IGEzLCAubm9uWmVyb0Rpdmlzb3IKKyAgICBidGl6
IGEyLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisubm9uWmVyb0Rpdmlzb3I6CisgICAgY2FsbERp
dlJlbShfc2xvd19wYXRoX3dhc21faTY0X3JlbV91KQorICAgIHJldHVybjJpKGN0eCwgcjEsIHIw
KQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5
WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9hbmQsIFdhc21JNjRBbmQsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQz
LCB0MikKKyAgICBhbmRpIHQyLCB0MAorICAgIGFuZGkgdDMsIHQxCisgICAgcmV0dXJuMmkoY3R4
LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfb3IsIFdhc21JNjRPciwgbWFjcm8oY3R4KQor
ICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3Jocywg
dDMsIHQyKQorICAgIG9yaSB0MiwgdDAKKyAgICBvcmkgdDMsIHQxCisgICAgcmV0dXJuMmkoY3R4
LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfeG9yLCBXYXNtSTY0WG9yLCBtYWNybyhjdHgp
CisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhz
LCB0MywgdDIpCisgICAgeG9yaSB0MiwgdDAKKyAgICB4b3JpIHQzLCB0MQorICAgIHJldHVybjJp
KGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3NobCwgV2FzbUk2NFNobCwgbWFjcm8o
Y3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkaShjdHgsIG1f
cmhzLCB0MikKKworICAgIGFuZGkgMHgzZiwgdDIKKyAgICBidGl6IHQyLCAucmV0dXJuCisgICAg
YmliIHQyLCAzMiwgLmxlc3NUaGFuMzIKKworICAgIHN1YmkgMzIsIHQyCisgICAgbHNoaWZ0aSB0
MCwgdDIsIHQxCisgICAgbW92ZSAwLCB0MAorICAgIGptcCAucmV0dXJuCisKKy5sZXNzVGhhbjMy
OgorICAgIGxzaGlmdGkgdDIsIHQxCisgICAgbW92ZSAzMiwgdDMKKyAgICBzdWJpIHQyLCB0Mwor
ICAgIHVyc2hpZnRpIHQwLCB0MywgdDMKKyAgICBvcmkgdDMsIHQxCisgICAgbHNoaWZ0aSB0Miwg
dDAKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9w
KGk2NF9zaHJfdSwgV2FzbUk2NFNoclUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9s
aHMsIHQxLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDIpCisKKyAgICBhbmRpIDB4M2Ys
IHQyCisgICAgYnRpeiB0MiwgLnJldHVybgorICAgIGJpYiB0MiwgMzIsIC5sZXNzVGhhbjMyCisK
KyAgICBzdWJpIDMyLCB0MgorICAgIHVyc2hpZnRpIHQxLCB0MiwgdDAKKyAgICBtb3ZlIDAsIHQx
CisgICAgam1wIC5yZXR1cm4KKworLmxlc3NUaGFuMzI6CisgICAgdXJzaGlmdGkgdDIsIHQwCisg
ICAgbW92ZSAzMiwgdDMKKyAgICBzdWJpIHQyLCB0MworICAgIGxzaGlmdGkgdDEsIHQzLCB0Mwor
ICAgIG9yaSB0MywgdDAKKyAgICB1cnNoaWZ0aSB0MiwgdDEKKworLnJldHVybjoKKyAgICByZXR1
cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9zaHJfcywgV2FzbUk2NFNoclMs
IG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZGko
Y3R4LCBtX3JocywgdDIpCisKKyAgICBhbmRpIDB4M2YsIHQyCisgICAgYnRpeiB0MiwgLnJldHVy
bgorICAgIGJpYiB0MiwgMzIsIC5sZXNzVGhhbjMyCisKKyAgICBzdWJpIDMyLCB0MgorICAgIHJz
aGlmdGkgdDEsIHQyLCB0MAorICAgIHJzaGlmdGkgMzEsIHQxCisgICAgam1wIC5yZXR1cm4KKwor
Lmxlc3NUaGFuMzI6CisgICAgdXJzaGlmdGkgdDIsIHQwCisgICAgbW92ZSAzMiwgdDMKKyAgICBz
dWJpIHQyLCB0MworICAgIGxzaGlmdGkgdDEsIHQzLCB0MworICAgIG9yaSB0MywgdDAKKyAgICBy
c2hpZnRpIHQyLCB0MQorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5k
KQorCit3YXNtT3AoaTY0X3JvdHIsIFdhc21JNjRSb3RyLCBtYWNybyhjdHgpCisgICAgbWxvYWQy
aShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQyKQorCisgICAg
YW5kaSB0MiwgMHgyMCwgdDMKKyAgICBidGl6IHQzLCAubm9Td2FwCisKKyAgICBtb3ZlIHQwLCB0
MworICAgIG1vdmUgdDEsIHQwCisgICAgbW92ZSB0MywgdDEKKworLm5vU3dhcDoKKyAgICBhbmRp
IDB4MWYsIHQyCisgICAgYnRpeiB0MiwgLnJldHVybgorCisgICAgbW92ZSAzMiwgdDUKKyAgICBz
dWJpIHQyLCB0NQorICAgIGxzaGlmdGkgdDAsIHQ1LCB0MworICAgIGxzaGlmdGkgdDEsIHQ1LCB0
NQorICAgIHVyc2hpZnRpIHQyLCB0MAorICAgIHVyc2hpZnRpIHQyLCB0MQorICAgIG9yaSB0NSwg
dDAKKyAgICBvcmkgdDMsIHQxCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDAp
CitlbmQpCisKK3dhc21PcChpNjRfcm90bCwgV2FzbUk2NFJvdGwsIG1hY3JvKGN0eCkKKyAgICBt
bG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDIpCisK
KyAgICBhbmRpIHQyLCAweDIwLCB0MworICAgIGJ0aXogdDMsIC5ub1N3YXAKKworICAgIG1vdmUg
dDAsIHQzCisgICAgbW92ZSB0MSwgdDAKKyAgICBtb3ZlIHQzLCB0MQorCisubm9Td2FwOgorICAg
IGFuZGkgMHgxZiwgdDIKKyAgICBidGl6IHQyLCAucmV0dXJuCisKKyAgICBtb3ZlIDMyLCB0NQor
ICAgIHN1YmkgdDIsIHQ1CisgICAgdXJzaGlmdGkgdDAsIHQ1LCB0MworICAgIHVyc2hpZnRpIHQx
LCB0NSwgdDUKKyAgICBsc2hpZnRpIHQyLCB0MAorICAgIGxzaGlmdGkgdDIsIHQxCisgICAgb3Jp
IHQ1LCB0MAorICAgIG9yaSB0MywgdDEKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIHQx
LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9lcSwgV2FzbUk2NEVxLCBtYWNybyhjdHgpCisgICAg
bWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0Mywg
dDIpCisgICAgbW92ZSAwLCB0NgorICAgIGJpbmVxIHQxLCB0MywgLnJldHVybgorICAgIGNpZXEg
dDAsIHQyLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21P
cChpNjRfbmUsIFdhc21JNjROZSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywg
dDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYK
KyAgICBiaW5lcSB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaW5lcSB0MCwgdDIsIHQ2CisucmV0dXJu
OgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9sdF9zLCBXYXNtSTY0
THRTLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxv
YWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAgIGJpbHQgdDEsIHQz
LCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpZ3QgdDEsIHQzLCAucmV0dXJuCisgICAg
Y2liIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4
LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9sZV9zLCBXYXNtSTY0TGVTLCBtYWNybyhjdHgpCisg
ICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0
MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAgIGJpbHQgdDEsIHQzLCAucmV0dXJuCisgICAgbW92
ZSAwLCB0NgorICAgIGJpZ3QgdDEsIHQzLCAucmV0dXJuCisgICAgY2liZXEgdDAsIHQyLCB0Ngor
ICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3
YXNtT3AoaTY0X2x0X3UsIFdhc21JNjRMdFUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwg
bV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3Zl
IDEsIHQ2CisgICAgYmliIHQxLCB0MywgLnJldHVybgorICAgIG1vdmUgMCwgdDYKKyAgICBiaWEg
dDEsIHQzLCAucmV0dXJuCisgICAgY2liIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2CisucmV0
dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9sZV91LCBXYXNt
STY0TGVVLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAg
bWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAgIGJpYiB0MSwg
dDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAgYmlhIHQxLCB0MywgLnJldHVybgorICAg
IGNpYmVxIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmko
Y3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9ndF9zLCBXYXNtSTY0R3RTLCBtYWNybyhjdHgp
CisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhz
LCB0MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAgIGJpZ3QgdDEsIHQzLCAucmV0dXJuCisgICAg
bW92ZSAwLCB0NgorICAgIGJpbHQgdDEsIHQzLCAucmV0dXJuCisgICAgY2lhIHQwLCB0MiwgdDYK
KyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKwor
d2FzbU9wKGk2NF9nZV9zLCBXYXNtSTY0R2VTLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgs
IG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92
ZSAxLCB0NgorICAgIGJpZ3QgdDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJp
bHQgdDEsIHQzLCAucmV0dXJuCisgICAgY2lhZXEgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYK
Ky5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2d0X3Us
IFdhc21JNjRHdFUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkK
KyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlh
IHQxLCB0MywgLnJldHVybgorICAgIG1vdmUgMCwgdDYKKyAgICBiaWIgdDEsIHQzLCAucmV0dXJu
CisgICAgY2lhIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgorICAgIHJldHVy
bmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9nZV91LCBXYXNtSTY0R2VVLCBtYWNybyhj
dHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1f
cmhzLCB0MywgdDIpCisgICAgbW92ZSAwLCB0NgorICAgIGJpYiB0MSwgdDMsIC5yZXR1cm4KKyAg
ICBtb3ZlIDEsIHQ2CisgICAgYmlhIHQxLCB0MywgLnJldHVybgorICAgIGNpYWVxIHQwLCB0Miwg
dDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkK
KworIyBpNjQgdW5hcnkgb3BzCisKK3dhc21PcChpNjRfY3R6LCBXYXNtSTY0Q3R6LCBtYWNybyAo
Y3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIHQxLCB0MCkKKyAgICBidGl6IHQwLCAu
dG9wCisKKyAgICB0emNudGkgdDAsIHQwCisgICAgam1wIC5yZXR1cm4KKworLnRvcDoKKyAgICB0
emNudGkgdDEsIHQwCisgICAgYWRkaSAzMiwgdDAKKworLnJldHVybjoKKyAgICByZXR1cm4yaShj
dHgsIDAsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X2NseiwgV2FzbUk2NENseiwgbWFjcm8oY3R4
KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIHQxLCB0MCkKKyAgICBidGl6IHQxLCAuYm90
dG9tCisKKyAgICBsemNudGkgdDEsIHQwCisgICAgam1wIC5yZXR1cm4KKworLmJvdHRvbToKKyAg
ICBsemNudGkgdDAsIHQwCisgICAgYWRkaSAzMiwgdDAKKworLnJldHVybjoKKyAgICByZXR1cm4y
aShjdHgsIDAsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3BvcGNudCwgV2FzbUk2NFBvcGNudCwg
bWFjcm8gKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9vcGVyYW5kLCBhMywgYTIpCisgICAgcHJl
cGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIG1vdmUgUEMsIGEwCisgICAgY0NhbGwyKF9zbG93X3Bh
dGhfd2FzbV9wb3Bjb3VudGxsKQorICAgIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQorICAgIHJl
dHVybjJpKGN0eCwgMCwgcjEpCitlbmQpCisKK3dhc21PcChpNjRfZXF6LCBXYXNtSTY0RXF6LCBt
YWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fb3BlcmFuZCwgdDEsIHQwKQorICAgIG1vdmUg
MCwgdDIKKyAgICBidGlueiB0MSwgLnJldHVybgorICAgIGNpZXEgdDAsIDAsIHQyCisucmV0dXJu
OgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKworIyBmNjQgYmluYXJ5IG9wcworCit3YXNt
T3AoZjY0X2NvcHlzaWduLCBXYXNtRjY0Q29weXNpZ24sIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJp
KGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikgIyB0
MiB1bnVzZWQKKworICAgIGFuZGkgMHg3ZmZmZmZmZiwgdDEKKyAgICBhbmRpIDB4ODAwMDAwMDAs
IHQzCisgICAgb3JpIHQzLCB0MQorCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisK
KyMgVHlwZSBjb252ZXJzaW9uIG9wcworCit3YXNtT3AoaTY0X2V4dGVuZF9zX2kzMiwgV2FzbUk2
NEV4dGVuZFNJMzIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQor
ICAgIHJzaGlmdGkgdDAsIDMxLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQor
Cit3YXNtT3AoaTY0X2V4dGVuZF91X2kzMiwgV2FzbUk2NEV4dGVuZFVJMzIsIG1hY3JvKGN0eCkK
KyAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHJldHVybjJpKGN0eCwgMCwgdDAp
CitlbmQpCisKK3dhc21PcChmNjRfcmVpbnRlcnByZXRfaTY0LCBXYXNtRjY0UmVpbnRlcnByZXRJ
NjQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9vcGVyYW5kLCB0MSwgdDApCisgICAg
ZmlpMmQgdDAsIHQxLCBmdDAKKyAgICByZXR1cm5kKGN0eCwgZnQwKQorZW5kKQorCit3YXNtT3Ao
aTY0X3JlaW50ZXJwcmV0X2Y2NCwgV2FzbUk2NFJlaW50ZXJwcmV0RjY0LCBtYWNybyhjdHgpCisg
ICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisgICAgZmQyaWkgZnQwLCB0MCwgdDEKKyAg
ICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGkzMl90cnVuY19zX2Y2NCwg
V2FzbUkzMlRydW5jU0Y2NCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQs
IGZ0MCkKKworICAgIG1vdmVpaSAweGMxZTAwMDAwMDAyMDAwMDAsIHQxLCB0MCAjIElOVDMyX01J
TiAtIDEuMAorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5v
dXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlaWkgMHg0MWUwMDAwMDAwMDAwMDAwLCB0MSwgdDAg
IyAtSU5UMzJfTUlOCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0
MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZDJpcyBmdDAsIHQwCisgICAgcmV0
dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihP
dXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3VfZjY0LCBXYXNtSTMy
VHJ1bmNVRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQor
CisgICAgbW92ZWlpIDB4YmZmMDAwMDAwMDAwMDAwMCwgdDEsIHQwICMgLTEuMAorICAgIGZpaTJk
IHQwLCB0MSwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisK
KyAgICBtb3ZlaWkgMHg0MWYwMDAwMDAwMDAwMDAwLCB0MSwgdDAgIyBJTlQzMl9NSU4gKiAtMi4w
CisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91
bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDAp
CisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1
bmMpCitlbmQpCisKK3Nsb3dXYXNtT3AoaTY0X3RydW5jX3NfZjMyKQorc2xvd1dhc21PcChpNjRf
dHJ1bmNfdV9mMzIpCitzbG93V2FzbU9wKGk2NF90cnVuY19zX2Y2NCkKK3Nsb3dXYXNtT3AoaTY0
X3RydW5jX3VfZjY0KQorCit3YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfcywgV2FzbUkzMlRydW5j
U2F0RjY0UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKwor
ICAgIG1vdmVpaSAweGMxZTAwMDAwMDAyMDAwMDAsIHQxLCB0MCAjIElOVDMyX01JTiAtIDEuMAor
ICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5k
c1RydW5jU2F0TWluT3JOYU4KKworICAgIG1vdmVpaSAweDQxZTAwMDAwMDAwMDAwMDAsIHQxLCB0
MCAjIC1JTlQzMl9NSU4KKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwg
ZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisgICAgdHJ1bmNhdGVkMmlzIGZ0MCwgdDAK
KyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU46Cisg
ICAgYmRlcSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKyAgICBtb3ZlIDAsIHQw
CisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKKyAgICBt
b3ZlIChjb25zdGV4cHIgSU5UMzJfTUFYKSwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5v
dXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQzMl9NSU4pLCB0
MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGkzMl90cnVuY19zYXRfZjY0
X3UsIFdhc21JMzJUcnVuY1NhdEY2NFUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9v
cGVyYW5kLCBmdDApCisKKyAgICBtb3ZlaWkgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MSwgdDAgIyAt
MS4wCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9m
Qm91bmRzVHJ1bmNTYXRNaW4KKworICAgIG1vdmVpaSAweDQxZjAwMDAwMDAwMDAwMDAsIHQxLCB0
MCAjIElOVDMyX01JTiAqIC0yLjAKKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkZ3RlcXVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisgICAgdHJ1bmNhdGVkMmkgZnQw
LCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46Cisg
ICAgbW92ZSAwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNT
YXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIFVJTlQzMl9NQVgpLCB0MAorICAgIHJldHVybmko
Y3R4LCB0MCkKK2VuZCkKKworc2xvd1dhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl9zKQorc2xvd1dh
c21PcChpNjRfdHJ1bmNfc2F0X2YzMl91KQorc2xvd1dhc21PcChpNjRfdHJ1bmNfc2F0X2Y2NF9z
KQorc2xvd1dhc21PcChpNjRfdHJ1bmNfc2F0X2Y2NF91KQorCisjIEV4dGVuZCBvcHMKKword2Fz
bU9wKGk2NF9leHRlbmQ4X3MsIFdhc21JNjRFeHRlbmQ4UywgbWFjcm8oY3R4KQorICAgIG1sb2Fk
aShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgc3hiMmkgdDAsIHQwCisgICAgcnNoaWZ0aSB0MCwg
MzEsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfZXh0
ZW5kMTZfcywgV2FzbUk2NEV4dGVuZDE2UywgbWFjcm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1f
b3BlcmFuZCwgdDApCisgICAgc3hoMmkgdDAsIHQwCisgICAgcnNoaWZ0aSB0MCwgMzEsIHQxCisg
ICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfZXh0ZW5kMzJfcywg
V2FzbUk2NEV4dGVuZDE2UywgbWFjcm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwg
dDApCisgICAgcnNoaWZ0aSB0MCwgMzEsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitl
bmQpCisKKyMgQXRvbWljcworCittYWNybyB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKGxvd2VyQ2Fz
ZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIsIGZuaCwgZm5pLCBmbjJpKQorICAgIHdhc21P
cChpNjRfYXRvbWljX3JtdzglbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13OCV1
cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50
ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWRp
KGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRk
aW5nT2Zmc2V0KHQzLCB0NSwgMSkKKyAgICAgICAgZm5iKHQwLCBbdDNdLCB0MiwgdDUsIHQ2KQor
ICAgICAgICBhbmRpIDB4ZmYsIHQ2ICMgRklYTUU6IFplcm9FeHRlbmQ4VG82NAorICAgICAgICBh
c3NlcnQobWFjcm8ob2spIGJpYmVxIHQ2LCAweGZmLCAub2sgZW5kKQorICAgICAgICByZXR1cm4y
aShjdHgsIDAsIHQ2KQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcxNiVsb3dl
ckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXcxNiV1cHBlckNhc2VPcGNvZGUlVSwgbWFj
cm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0
dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV92YWx1ZSwgdDApCisg
ICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVu
dENoZWNrKHQzLCB0NSwgMikKKyAgICAgICAgZm5oKHQwLCBbdDNdLCB0MiwgdDUsIHQ2KQorICAg
ICAgICBhbmRpIDB4ZmZmZiwgdDYgIyBGSVhNRTogWmVyb0V4dGVuZDE2VG82NAorICAgICAgICBh
c3NlcnQobWFjcm8ob2spIGJpYmVxIHQ2LCAweGZmZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVy
bjJpKGN0eCwgMCwgdDYpCisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzMyJWxv
d2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBt
YWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdn
ZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3ZhbHVlLCB0MCkK
KyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25t
ZW50Q2hlY2sodDMsIHQ1LCA0KQorICAgICAgICBmbmkodDAsIFt0M10sIHQyLCB0NSwgdDYpCisg
ICAgICAgIHJldHVybjJpKGN0eCwgMCwgdDYpCisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRv
bWljX3JtdyVsb3dlckNhc2VPcGNvZGUlLCBXYXNtSTY0QXRvbWljUm13JXVwcGVyQ2FzZU9wY29k
ZSUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAg
ICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVl
LCB0MSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0
V2l0aEFsaWdubWVudENoZWNrKHQzLCB0NSwgOCkKKyAgICAgICAgcHVzaCB0NCAjIFRoaXMgaXMg
dGhlIFBCLCBzbyBuZWVkIHRvIGJlIHNhdmVkIGFuZCByZXN0b3JlZAorICAgICAgICBmbjJpKHQx
LCB0MCwgW3QzXSwgdDQsIHQyLCB0NSwgdDcsIHQ2KQorICAgICAgICBwb3AgdDQKKyAgICAgICAg
cmV0dXJuMmkoY3R4LCB0NywgdDYpCisgICAgZW5kKQorZW5kCisKK21hY3JvIHdhc21BdG9taWNC
aW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwg
Zm5pLCBmbjJpKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1
cHBlckNhc2VPcGNvZGUsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwg
dDZHUFIpCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIC5sb29wOgorICAgICAg
ICAgICAgICAgIGxvYWRsaW5rYiBtZW0sIHQ2R1BSCisgICAgICAgICAgICAgICAgZm5pKHQwR1BS
LCB0NkdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgc3RvcmVjb25kYiB0NUdQUiwgdDJHUFIs
IG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAorICAgICAgICAgICAg
ICAgIGZlbmNlCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0NkdQUikKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAgLmxvb3A6
CisgICAgICAgICAgICAgICAgbG9hZGxpbmtoIG1lbSwgdDZHUFIKKyAgICAgICAgICAgICAgICBm
bmkodDBHUFIsIHQ2R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmRoIHQ1R1BS
LCB0MkdQUiwgbWVtCisgICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAg
ICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQ2R1BSKQorICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgICAg
ICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2FkbGlua2kgbWVtLCB0NkdQUgorICAgICAgICAg
ICAgICAgIGZuaSh0MEdQUiwgdDZHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29u
ZGkgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxv
b3AKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQx
R1BSLCB0MEdQUiwgbWVtLCB0NEdQUiwgdDJHUFIsIHQ1R1BSLCB0N0dQUiwgdDZHUFIpCisgICAg
ICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIGxv
YWRsaW5rMmkgbWVtLCB0NkdQUiwgdDdHUFIKKyAgICAgICAgICAgICAgICBmbjJpKHQxR1BSLCB0
MEdQUiwgdDdHUFIsIHQ2R1BSLCB0NEdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgc3RvcmVj
b25kMmkgdDVHUFIsIHQyR1BSLCB0NEdQUiwgbWVtCisgICAgICAgICAgICAgICAgYmluZXEgdDVH
UFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgZW5kKQorZW5kCisK
K2lmIEFSTXY3CisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9hZGQsIEFk
ZCwKKyAgICAgICAgbWFjcm8oc3JjMCwgc3JjMSwgZHN0KQorICAgICAgICAgICAgYWRkaSBzcmMw
LCBzcmMxLCBkc3QKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3
LCBzcmMxTXN3LCBzcmMxTHN3LCBkc3RNc3csIGRzdExzdykKKyAgICAgICAgICAgIGFkZGlzIHNy
YzBMc3csIHNyYzFMc3csIGRzdExzdworICAgICAgICAgICAgYWRjaSAgc3JjME1zdywgc3JjMU1z
dywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdl
YWtDQVMoX3N1YiwgU3ViLAorICAgICAgICBtYWNybyhzcmMwLCBzcmMxLCBkc3QpCisgICAgICAg
ICAgICBzdWJpIHNyYzEsIHNyYzAsIGRzdAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHNy
YzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0THN3KQorICAgICAg
ICAgICAgc3ViaXMgc3JjMUxzdywgc3JjMExzdywgZHN0THN3CisgICAgICAgICAgICBzYmNpICBz
cmMxTXN3LCBzcmMwTXN3LCBkc3RNc3cKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5h
cnlSTVdPcHNXaXRoV2Vha0NBUyhfeGNoZywgWGNoZywKKyAgICAgICAgbWFjcm8oc3JjMCwgc3Jj
MSwgZHN0KQorICAgICAgICAgICAgbW92ZSBzcmMwLCBkc3QKKyAgICAgICAgZW5kLAorICAgICAg
ICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3LCBzcmMxTXN3LCBzcmMxTHN3LCBkc3RNc3csIGRzdExz
dykKKyAgICAgICAgICAgIG1vdmUgc3JjMExzdywgZHN0THN3CisgICAgICAgICAgICBtb3ZlIHNy
YzBNc3csIGRzdE1zdworICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dp
dGhXZWFrQ0FTKF9hbmQsIEFuZCwKKyAgICAgICAgbWFjcm8oc3JjMCwgc3JjMSwgZHN0KQorICAg
ICAgICAgICAgYW5kaSBzcmMwLCBzcmMxLCBkc3QKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNy
byhzcmMwTXN3LCBzcmMwTHN3LCBzcmMxTXN3LCBzcmMxTHN3LCBkc3RNc3csIGRzdExzdykKKyAg
ICAgICAgICAgIGFuZGkgc3JjMExzdywgc3JjMUxzdywgZHN0THN3CisgICAgICAgICAgICBhbmRp
IHNyYzBNc3csIHNyYzFNc3csIGRzdE1zdworICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0Jp
bmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9vciwgT3IsCisgICAgICAgIG1hY3JvKHNyYzAsIHNyYzEs
IGRzdCkKKyAgICAgICAgICAgIG9yaSBzcmMwLCBzcmMxLCBkc3QKKyAgICAgICAgZW5kLAorICAg
ICAgICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3LCBzcmMxTXN3LCBzcmMxTHN3LCBkc3RNc3csIGRz
dExzdykKKyAgICAgICAgICAgIG9yaSBzcmMwTHN3LCBzcmMxTHN3LCBkc3RMc3cKKyAgICAgICAg
ICAgIG9yaSBzcmMwTXN3LCBzcmMxTXN3LCBkc3RNc3cKKyAgICAgICAgZW5kKQorICAgIHdhc21B
dG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeG9yLCBYb3IsCisgICAgICAgIG1hY3JvKHNy
YzAsIHNyYzEsIGRzdCkKKyAgICAgICAgICAgIHhvcmkgc3JjMCwgc3JjMSwgZHN0CisgICAgICAg
IGVuZCwKKyAgICAgICAgbWFjcm8oc3JjME1zdywgc3JjMExzdywgc3JjMU1zdywgc3JjMUxzdywg
ZHN0TXN3LCBkc3RMc3cpCisgICAgICAgICAgICB4b3JpIHNyYzBMc3csIHNyYzFMc3csIGRzdExz
dworICAgICAgICAgICAgeG9yaSBzcmMwTXN3LCBzcmMxTXN3LCBkc3RNc3cKKyAgICAgICAgZW5k
KQorZW5kCisKK21hY3JvIHdhc21BdG9taWNDb21wYXJlRXhjaGFuZ2VPcHMobG93ZXJDYXNlT3Bj
b2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmksIGZuMmkpCisgICAgd2FzbU9wKGk2
NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4JXVwcGVy
Q2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwg
dDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZDJpKGN0
eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAgICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwgdDcs
IHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldCh0Mywg
dDUsIDEpCisgICAgICAgIGZuYih0MSwgdDAsIHQ3LCB0MiwgW3QzXSwgdDYsIHQ1KQorICAgICAg
ICBhbmRpIDB4ZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQ4VG82NAorICAgICAgICBhc3NlcnQo
bWFjcm8ob2spIGJpYmVxIHQwLCAweGZmLCAub2sgZW5kKQorICAgICAgICBhc3NlcnQobWFjcm8o
b2spIGJpZXEgdDEsIDAsIC5vayBlbmQpCisgICAgICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQor
ICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcxNiVsb3dlckNhc2VPcGNvZGUlX3Us
IFdhc21JNjRBdG9taWNSbXcxNiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAg
ICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0
LCB0NSkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fZXhwZWN0ZWQsIHQxLCB0MCkKKyAgICAgICAg
bWxvYWQyaShjdHgsIG1fdmFsdWUsIHQ3LCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFy
ZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2sodDMsIHQ1LCAyKQorICAgICAg
ICBmbmgodDEsIHQwLCB0NywgdDIsIFt0M10sIHQ2LCB0NSkKKyAgICAgICAgYW5kaSAweGZmZmYs
IHQwICMgRklYTUU6IFplcm9FeHRlbmQxNlRvNjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBi
aWJlcSB0MCwgMHhmZmZmLCAub2sgZW5kKQorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJpZXEg
dDEsIDAsIC5vayBlbmQpCisgICAgICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorICAgIGVuZCkK
KyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXczMiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRB
dG9taWNSbXczMiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGko
Y3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAg
ICAgICAgbWxvYWQyaShjdHgsIG1fZXhwZWN0ZWQsIHQxLCB0MCkKKyAgICAgICAgbWxvYWQyaShj
dHgsIG1fdmFsdWUsIHQ3LCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJB
ZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2sodDMsIHQ1LCA4KQorICAgICAgICBmbmkodDEs
IHQwLCB0NywgdDIsIFt0M10sIHQ2LCB0NSkKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBiaWVx
IHQxLCAwLCAub2sgZW5kKQorICAgICAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKKyAgICBlbmQp
CisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21JNjRBdG9t
aWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBt
X3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAg
bWxvYWQyaShjdHgsIG1fZXhwZWN0ZWQsIHQxLCB0MCkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1f
dmFsdWUsIHQ3LCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdP
ZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2sodDMsIHQ1LCA4KQorICAgICAgICBwdXNoIHQ0ICMgVGhp
cyBpcyB0aGUgUEIsIHNvIG5lZWQgdG8gYmUgc2F2ZWQgYW5kIHJlc3RvcmVkCisgICAgICAgIGZu
MmkodDEsIHQwLCB0NywgdDIsIFt0M10sIHQ0LCB0NiwgdDUpCisgICAgICAgIHBvcCB0NAorICAg
ICAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKKyAgICBlbmQpCitlbmQKKworaWYgQVJNdjcKKy8v
IGV4cDogImV4cGVjdGVkIiwgdmFsOiAidmFsdWUiLCByZXM6ICJyZXN1bHQiCit3YXNtQXRvbWlj
Q29tcGFyZUV4Y2hhbmdlT3BzKF9jbXB4Y2hnLCBDbXB4Y2hnLAorICAgIG1hY3JvKGV4cE1zdywg
ZXhwTHN3LCB2YWxNc3csIHZhbExzdywgbWVtLCBzY3JhdGNoLCByZXNMc3cpCisgICAgICAgICAg
ICBmZW5jZQorICAgICAgICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5rYiBtZW0sIHJlc0xz
dworICAgICAgICAgICAgYmluZXEgZXhwTHN3LCByZXNMc3csIC5mYWlsCisgICAgICAgICAgICBi
aW5lcSBleHBNc3csIDAsIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmRiIHNjcmF0Y2gsIHZh
bExzdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAgICAgICAg
ICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRiIHNjcmF0
Y2gsIHJlc0xzdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAg
ICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBmZW5jZQorICAg
ICAgICAgICAgbW92ZSByZXNMc3csIGV4cExzdworICAgICAgICAgICAgbW92ZSAwLCBleHBNc3cK
KyAgICBlbmQsCisgICAgbWFjcm8oZXhwTXN3LCBleHBMc3csIHZhbE1zdywgdmFsTHN3LCBtZW0s
IHNjcmF0Y2gsIHJlc0xzdykKKyAgICAgICAgICAgIGZlbmNlCisgICAgICAgIC5sb29wOgorICAg
ICAgICAgICAgbG9hZGxpbmtoIG1lbSwgcmVzTHN3CisgICAgICAgICAgICBiaW5lcSBleHBMc3cs
IHJlc0xzdywgLmZhaWwKKyAgICAgICAgICAgIGJpbmVxIGV4cE1zdywgMCwgLmZhaWwKKyAgICAg
ICAgICAgIHN0b3JlY29uZGggc2NyYXRjaCwgdmFsTHN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEg
c2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZmFpbDoK
KyAgICAgICAgICAgIHN0b3JlY29uZGggc2NyYXRjaCwgcmVzTHN3LCBtZW0KKyAgICAgICAgICAg
IGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAu
ZG9uZToKKyAgICAgICAgICAgIGZlbmNlCisgICAgICAgICAgICBtb3ZlIHJlc0xzdywgZXhwTHN3
CisgICAgICAgICAgICBtb3ZlIDAsIGV4cE1zdworICAgIGVuZCwKKyAgICBtYWNybyhleHBNc3cs
IGV4cExzdywgdmFsTXN3LCB2YWxMc3csIG1lbSwgc2NyYXRjaCwgcmVzTHN3KQorICAgICAgICAg
ICAgZmVuY2UKKyAgICAgICAgLmxvb3A6CisgICAgICAgICAgICBsb2FkbGlua2kgbWVtLCByZXNM
c3cKKyAgICAgICAgICAgIGJpbmVxIGV4cExzdywgcmVzTHN3LCAuZmFpbAorICAgICAgICAgICAg
YmluZXEgZXhwTXN3LCAwLCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kaSBzY3JhdGNoLCB2
YWxMc3csIG1lbQorICAgICAgICAgICAgYmllcSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAg
ICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgc3RvcmVjb25kaSBzY3Jh
dGNoLCByZXNMc3csIG1lbQorICAgICAgICAgICAgYmllcSBzY3JhdGNoLCAwLCAuZG9uZQorICAg
ICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAgICAgICAgZmVuY2UKKyAg
ICAgICAgICAgIG1vdmUgcmVzTHN3LCBleHBMc3cKKyAgICAgICAgICAgIG1vdmUgMCwgZXhwTXN3
CisgICAgZW5kLAorICAgIG1hY3JvKGV4cE1zdywgZXhwTHN3LCB2YWxNc3csIHZhbExzdywgbWVt
LCBzY3JhdGNoLCByZXNNc3csIHJlc0xzdykKKyAgICAgICAgICAgIGZlbmNlCisgICAgICAgIC5s
b29wOgorICAgICAgICAgICAgbG9hZGxpbmsyaSBtZW0sIHJlc0xzdywgcmVzTXN3CisgICAgICAg
ICAgICBiaW5lcSBleHBMc3csIHJlc0xzdywgLmZhaWwKKyAgICAgICAgICAgIGJpbmVxIGV4cE1z
dywgcmVzTXN3LCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kMmkgc2NyYXRjaCwgdmFsTHN3
LCB2YWxNc3csIG1lbQorICAgICAgICAgICAgYmllcSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAg
ICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgc3RvcmVjb25kMmkg
c2NyYXRjaCwgcmVzTHN3LCByZXNNc3csIG1lbQorICAgICAgICAgICAgYmllcSBzY3JhdGNoLCAw
LCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAgICAg
ICAgZmVuY2UKKyAgICAgICAgICAgIG1vdmUgcmVzTHN3LCBleHBMc3cKKyAgICAgICAgICAgIG1v
dmUgcmVzTXN3LCBleHBNc3cKKyAgICBlbmQpCitlbmQKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5NjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L1dlYkFzc2VtYmx5NjQuYXNtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2ZTllYTQ4ODUyNDI2MGEz
ZTQ0N2ZmNTAwOTE5NGU4MDBlZWUxNzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHk2NC5hc20KQEAgLTAsMCArMSwxMjU5IEBACisjIENv
cHlyaWdodCAoQykgMjAxMS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMg
Q29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIE9wY29kZXMgdGhhdCBzaG91
bGQgZXZlbnR1YWxseSBiZSBzaGFyZWQgd2l0aCBKUyBsbGludAorCit3YXNtT3AobW92LCBXYXNt
TW92LCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9zcmMsIHQwKQorICAgIHJldHVybnEo
Y3R4LCB0MCkKK2VuZCkKKworIyBXYXNtIHNwZWNpZmljIGJ5dGVjb2RlcworCittYWNybyBlbWl0
Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKKyAgICBs
ZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNldF0sIHQ1CisgICAgYnBiIHQ1LCBib3VuZHNDaGVj
a2luZ1NpemUsIC5jb250aW51YXRpb24KKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01l
bW9yeUFjY2VzcykKKy5jb250aW51YXRpb246CisgICAgYWRkcCBtZW1vcnlCYXNlLCBwb2ludGVy
CitlbmQKKworbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQoY3R4
LCBwb2ludGVyLCBvZmZzZXQsIHNpemUpCisgICAgbGVhcCBzaXplIC0gMVtwb2ludGVyLCBvZmZz
ZXRdLCB0NQorICAgIGJwYiB0NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29udGludWF0aW9uCisu
dGhyb3c6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCisuY29u
dGludWF0aW9uOgorICAgIGFkZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgorICAgIGFkZHAgb2Zmc2V0
LCBwb2ludGVyCitlbmQKKworbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdP
ZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCBwb2ludGVyLCBvZmZzZXQsIHNpemUpCisgICAg
bGVhcCBzaXplIC0gMVtwb2ludGVyLCBvZmZzZXRdLCB0NQorICAgIGJwYiB0NSwgYm91bmRzQ2hl
Y2tpbmdTaXplLCAuY29udGludWF0aW9uCisudGhyb3c6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0
T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCisuY29udGludWF0aW9uOgorICAgIGFkZHAgbWVtb3J5QmFz
ZSwgcG9pbnRlcgorICAgIGFkZHAgb2Zmc2V0LCBwb2ludGVyCisgICAgYnRwbnogcG9pbnRlciwg
KHNpemUgLSAxKSwgLnRocm93CitlbmQKKworCittYWNybyB3YXNtTG9hZE9wKG5hbWUsIHN0cnVj
dCwgc2l6ZSwgZm4pCisgICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQorICAgICAg
ICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0
LCB0MSkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4LCB0MCwgdDEsIHNp
emUpCisgICAgICAgIGZuKFt0MCwgdDFdLCB0MikKKyAgICAgICAgcmV0dXJucShjdHgsIHQyKQor
ICAgIGVuZCkKK2VuZAorCit3YXNtTG9hZE9wKGxvYWQ4X3UsIFdhc21Mb2FkOFUsIDEsIG1hY3Jv
KG1lbSwgZHN0KSBsb2FkYiBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGxvYWQxNl91LCBXYXNt
TG9hZDE2VSwgMiwgbWFjcm8obWVtLCBkc3QpIGxvYWRoIG1lbSwgZHN0IGVuZCkKK3dhc21Mb2Fk
T3AobG9hZDMyX3UsIFdhc21Mb2FkMzJVLCA0LCBtYWNybyhtZW0sIGRzdCkgbG9hZGkgbWVtLCBk
c3QgZW5kKQord2FzbUxvYWRPcChsb2FkNjRfdSwgV2FzbUxvYWQ2NFUsIDgsIG1hY3JvKG1lbSwg
ZHN0KSBsb2FkcSBtZW0sIGRzdCBlbmQpCisKK3dhc21Mb2FkT3AoaTMyX2xvYWQ4X3MsIFdhc21J
MzJMb2FkOFMsIDEsIG1hY3JvKG1lbSwgZHN0KSBsb2FkYnNpIG1lbSwgZHN0IGVuZCkKK3dhc21M
b2FkT3AoaTY0X2xvYWQ4X3MsIFdhc21JNjRMb2FkOFMsIDEsIG1hY3JvKG1lbSwgZHN0KSBsb2Fk
YnNxIG1lbSwgZHN0IGVuZCkKK3dhc21Mb2FkT3AoaTMyX2xvYWQxNl9zLCBXYXNtSTMyTG9hZDE2
UywgMiwgbWFjcm8obWVtLCBkc3QpIGxvYWRoc2kgbWVtLCBkc3QgZW5kKQord2FzbUxvYWRPcChp
NjRfbG9hZDE2X3MsIFdhc21JNjRMb2FkMTZTLCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGhzcSBt
ZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGk2NF9sb2FkMzJfcywgV2FzbUk2NExvYWQzMlMsIDQs
IG1hY3JvKG1lbSwgZHN0KSBsb2FkaXMgbWVtLCBkc3QgZW5kKQorCittYWNybyB3YXNtU3RvcmVP
cChuYW1lLCBzdHJ1Y3QsIHNpemUsIGZuKQorICAgIHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1hY3Jv
KGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MCkKKyAgICAgICAgd2dldHUo
Y3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKGN0
eCwgdDAsIHQxLCBzaXplKQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAgICAg
ICAgZm4odDIsIFt0MCwgdDFdKQorICAgICAgICBkaXNwYXRjaChjdHgpCisgICAgZW5kKQorZW5k
CisKK3dhc21TdG9yZU9wKHN0b3JlOCwgV2FzbVN0b3JlOCwgMSwgbWFjcm8odmFsdWUsIG1lbSkg
c3RvcmViIHZhbHVlLCBtZW0gZW5kKQord2FzbVN0b3JlT3Aoc3RvcmUxNiwgV2FzbVN0b3JlMTYs
IDIsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlaCB2YWx1ZSwgbWVtIGVuZCkKK3dhc21TdG9yZU9w
KHN0b3JlMzIsIFdhc21TdG9yZTMyLCA0LCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZWkgdmFsdWUs
IG1lbSBlbmQpCit3YXNtU3RvcmVPcChzdG9yZTY0LCBXYXNtU3RvcmU2NCwgOCwgbWFjcm8odmFs
dWUsIG1lbSkgc3RvcmVxIHZhbHVlLCBtZW0gZW5kKQorCit3YXNtT3AocmVmX2lzX251bGwsIFdh
c21SZWZJc051bGwsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHAoY3R4LCBtX3JlZiwgdDApCisgICAg
Y3FlcSB0MCwgVmFsdWVOdWxsLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKword2Fz
bU9wKGdldF9nbG9iYWwsIFdhc21HZXRHbG9iYWwsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBXYXNt
OjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4LCBt
X2dsb2JhbEluZGV4LCB0MSkKKyAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKKyAgICByZXR1cm5x
KGN0eCwgdDApCitlbmQpCisKK3dhc21PcChzZXRfZ2xvYmFsLCBXYXNtU2V0R2xvYmFsLCBtYWNy
byhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2Vd
LCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbWxvYWRxKGN0eCwg
bV92YWx1ZSwgdDIpCisgICAgc3RvcmVxIHQyLCBbdDAsIHQxLCA4XQorICAgIGRpc3BhdGNoKGN0
eCkKK2VuZCkKKword2FzbU9wKGdldF9nbG9iYWxfcG9ydGFibGVfYmluZGluZywgV2FzbUdldEds
b2JhbFBvcnRhYmxlQmluZGluZywgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206Okluc3RhbmNl
OjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5k
ZXgsIHQxKQorICAgIGxvYWRxIFt0MCwgdDEsIDhdLCB0MAorICAgIGxvYWRxIFt0MF0sIHQwCisg
ICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3Aoc2V0X2dsb2JhbF9wb3J0YWJsZV9i
aW5kaW5nLCBXYXNtU2V0R2xvYmFsUG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCisgICAgbG9h
ZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1
KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCisg
ICAgbG9hZHEgW3QwLCB0MSwgOF0sIHQwCisgICAgc3RvcmVxIHQyLCBbdDBdCisgICAgZGlzcGF0
Y2goY3R4KQorZW5kKQorCisjIE9wY29kZXMgdGhhdCBkb24ndCBoYXZlIHRoZSBgYjNvcGAgZW50
cnkgaW4gd2FzbS5qc29uLiBUaGlzIHNob3VsZCBiZSBrZXB0IGluIHN5bmMKKworIyBpMzIgYmlu
YXJ5IG9wcworCit3YXNtT3AoaTMyX2Rpdl9zLCBXYXNtSTMyRGl2UywgbWFjcm8gKGN0eCkKKyAg
ICBtbG9hZGkoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorCisg
ICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGJpbmVxIHQxLCAtMSwgLnNh
ZmUKKyAgICBiaWVxIHQwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAudGhyb3dJbnRlZ2VyT3ZlcmZs
b3cKKworLnNhZmU6CisgICAgaWYgWDg2XzY0CisgICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0
byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAorICAgICAgICAjIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKKyAgICAgICAgY2Rx
aQorICAgICAgICBpZGl2aSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0
CisgICAgICAgIGRpdmlzIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQK
KyAgICByZXR1cm5pKGN0eCwgdDApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93
RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorCisudGhyb3dJbnRlZ2VyT3ZlcmZsb3c6CisgICAg
dGhyb3dFeGNlcHRpb24oSW50ZWdlck92ZXJmbG93KQorZW5kKQorCit3YXNtT3AoaTMyX2Rpdl91
LCBXYXNtSTMyRGl2VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCisg
ICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25C
eVplcm8KKworICAgIGlmIFg4Nl82NAorICAgICAgICB4b3JpIHQyLCB0MgorICAgICAgICB1ZGl2
aSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0CisgICAgICAgIGRpdmkg
dDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorICAgIHJldHVybmkoY3R4
LCB0MCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNp
b25CeVplcm8pCitlbmQpCisKK3dhc21PcChpMzJfcmVtX3MsIFdhc21JMzJSZW1TLCBtYWNybyAo
Y3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3Jocywg
dDEpCisKKyAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgYmluZXEgdDEs
IC0xLCAuc2FmZQorICAgIGJpbmVxIHQwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAuc2FmZQorCisg
ICAgbW92ZSAwLCB0MgorICAgIGptcCAucmV0dXJuCisKKy5zYWZlOgorICAgIGlmIFg4Nl82NAor
ICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4
IGFuZCB0MiBpcyByZHgKKyAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAzNjkyCisgICAgICAgIGNkcWkKKyAgICAgICAgaWRpdmkgdDEKKyAgICBlbHNp
ZiBBUk02NCBvciBBUk02NEUKKyAgICAgICAgZGl2aXMgdDEsIHQwLCB0MgorICAgICAgICBtdWxp
IHQxLCB0MgorICAgICAgICBzdWJpIHQwLCB0MiwgdDIKKyAgICBlbHNpZiBSSVNDVjY0CisgICAg
ICAgIHJlbWlzIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKKworLnJl
dHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDIpCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAg
IHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTMyX3JlbV91
LCBXYXNtSTMyUmVtVSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCisg
ICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25C
eVplcm8KKworICAgIGlmIFg4Nl82NAorICAgICAgICB4b3JpIHQyLCB0MgorICAgICAgICB1ZGl2
aSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQorICAgICAgICBkaXZpIHQxLCB0MCwgdDIK
KyAgICAgICAgbXVsaSB0MSwgdDIKKyAgICAgICAgc3ViaSB0MCwgdDIsIHQyCisgICAgZWxzaWYg
UklTQ1Y2NAorICAgICAgICByZW1pIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAg
ICBlbmQKKyAgICByZXR1cm5pKGN0eCwgdDIpCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAg
IHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCisjIGk2NCBiaW5hcnkgb3Bz
CisKK3dhc21PcChpNjRfYWRkLCBXYXNtSTY0QWRkLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0
eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBhZGRxIHQwLCB0
MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9zdWIsIFdhc21JNjRT
dWIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0
eCwgbV9yaHMsIHQxKQorICAgIHN1YnEgdDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5k
KQorCit3YXNtT3AoaTY0X211bCwgV2FzbUk2NE11bCwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShj
dHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgbXVscSB0MCwg
dDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfZGl2X3MsIFdhc21J
NjREaXZTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9h
ZHEoY3R4LCBtX3JocywgdDEpCisKKyAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwor
CisgICAgYnFuZXEgdDEsIC0xLCAuc2FmZQorICAgIGJxZXEgdDAsIGNvbnN0ZXhwciBJTlQ2NF9N
SU4sIC50aHJvd0ludGVnZXJPdmVyZmxvdworCisuc2FmZToKKyAgICBpZiBYODZfNjQKKyAgICAg
ICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQg
dDIgaXMgcmR4CisgICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMzY5MgorICAgICAgICBjcW9xCisgICAgICAgIGlkaXZxIHQxCisgICAgZWxzaWYgQVJN
NjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKKyAgICAgICAgZGl2cXMgdDEsIHQwCisgICAgZWxzZQor
ICAgICAgICBlcnJvcgorICAgIGVuZAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLnRocm93RGl2
aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCisKKy50aHJv
d0ludGVnZXJPdmVyZmxvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihJbnRlZ2VyT3ZlcmZsb3cpCitl
bmQpCisKK3dhc21PcChpNjRfZGl2X3UsIFdhc21JNjREaXZVLCBtYWNybyAoY3R4KQorICAgIG1s
b2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisKKyAgICBi
dHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgaWYgWDg2XzY0CisgICAgICAgIHhv
cnEgdDIsIHQyCisgICAgICAgIHVkaXZxIHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9y
IFJJU0NWNjQKKyAgICAgICAgZGl2cSB0MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisg
ICAgZW5kCisgICAgcmV0dXJucShjdHgsIHQwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAg
ICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9yZW1f
cywgV2FzbUk2NFJlbVMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQor
ICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9u
QnlaZXJvCisKKyAgICBicW5lcSB0MSwgLTEsIC5zYWZlCisgICAgYnFuZXEgdDAsIGNvbnN0ZXhw
ciBJTlQ2NF9NSU4sIC5zYWZlCisKKyAgICBtb3ZlIDAsIHQyCisgICAgam1wIC5yZXR1cm4KKwor
LnNhZmU6CisgICAgaWYgWDg2XzY0CisgICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBzdGF0
aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAorICAgICAgICAjIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKKyAgICAgICAgY3FvcQorICAg
ICAgICBpZGl2cSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQorICAgICAgICBkaXZxcyB0
MSwgdDAsIHQyCisgICAgICAgIG11bHEgdDEsIHQyCisgICAgICAgIHN1YnEgdDAsIHQyLCB0Mgor
ICAgIGVsc2lmIFJJU0NWNjQKKyAgICAgICAgcmVtcXMgdDEsIHQwCisgICAgZWxzZQorICAgICAg
ICBlcnJvcgorICAgIGVuZAorCisucmV0dXJuOgorICAgIHJldHVybnEoY3R4LCB0MikgIyByZHgg
aGFzIHRoZSByZW1haW5kZXIKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNl
cHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpNjRfcmVtX3UsIFdhc21JNjRS
ZW1VLCBtYWNybyAoY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEo
Y3R4LCBtX3JocywgdDEpCisKKyAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisg
ICAgaWYgWDg2XzY0CisgICAgICAgIHhvcnEgdDIsIHQyCisgICAgICAgIHVkaXZxIHQxCisgICAg
ZWxzaWYgQVJNNjQgb3IgQVJNNjRFCisgICAgICAgIGRpdnEgdDEsIHQwLCB0MgorICAgICAgICBt
dWxxIHQxLCB0MgorICAgICAgICBzdWJxIHQwLCB0MiwgdDIKKyAgICBlbHNpZiBSSVNDVjY0Cisg
ICAgICAgIHJlbXEgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorICAg
IHJldHVybnEoY3R4LCB0MikKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNl
cHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpNjRfYW5kLCBXYXNtSTY0QW5k
LCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgs
IG1fcmhzLCB0MSkKKyAgICBhbmRxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkK
Kword2FzbU9wKGk2NF9vciwgV2FzbUk2NE9yLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwg
bV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBvcnEgdDAsIHQxCisg
ICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X3hvciwgV2FzbUk2NFhvciwg
bWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBt
X3JocywgdDEpCisgICAgeG9ycSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisK
K3dhc21PcChpNjRfc2hsLCBXYXNtSTY0U2hsLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwg
bV9saHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKyAgICBsc2hpZnRxIHQxLCB0
MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9zaHJfdSwgV2FzbUk2
NFNoclUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRp
KGN0eCwgbV9yaHMsIHQxKQorICAgIHVyc2hpZnRxIHQxLCB0MAorICAgIHJldHVybnEoY3R4LCB0
MCkKK2VuZCkKKword2FzbU9wKGk2NF9zaHJfcywgV2FzbUk2NFNoclMsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorICAg
IHJzaGlmdHEgdDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0
X3JvdHIsIFdhc21JNjRSb3RyLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQw
KQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKyAgICBycm90YXRlcSB0MSwgdDAKKyAgICBy
ZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfcm90bCwgV2FzbUk2NFJvdGwsIG1h
Y3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9y
aHMsIHQxKQorICAgIGxyb3RhdGVxIHQxLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkK
Kword2FzbU9wKGk2NF9lcSwgV2FzbUk2NEVxLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwg
bV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWVxIHQwLCB0MSwg
dDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3Ao
aTY0X25lLCBXYXNtSTY0TmUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDAp
CisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxbmVxIHQwLCB0MSwgdDIKKyAgICBh
bmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2x0X3Ms
IFdhc21JNjRMdFMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAg
bWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxbHQgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwg
dDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfbGVfcywgV2FzbUk2
NExlUywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEo
Y3R4LCBtX3JocywgdDEpCisgICAgY3FsdGVxIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisg
ICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2x0X3UsIFdhc21JNjRMdFUs
IG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwg
bV9yaHMsIHQxKQorICAgIGNxYiB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVy
bmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9sZV91LCBXYXNtSTY0TGVVLCBtYWNybyhj
dHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0
MSkKKyAgICBjcWJlcSB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4
LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9ndF9zLCBXYXNtSTY0R3RTLCBtYWNybyhjdHgpCisg
ICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAg
ICBjcWd0IHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQor
ZW5kKQorCit3YXNtT3AoaTY0X2dlX3MsIFdhc21JNjRHZVMsIG1hY3JvKGN0eCkKKyAgICBtbG9h
ZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxZ3Rl
cSB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkK
Kword2FzbU9wKGk2NF9ndF91LCBXYXNtSTY0R3RVLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0
eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWEgdDAsIHQx
LCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21P
cChpNjRfZ2VfdSwgV2FzbUk2NEdlVSwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhz
LCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FhZXEgdDAsIHQxLCB0Mgor
ICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKKyMgaTY0IHVuYXJ5
IG9wcworCit3YXNtT3AoaTY0X2N0eiwgV2FzbUk2NEN0eiwgbWFjcm8gKGN0eCkKKyAgICBtbG9h
ZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHR6Y250cSB0MCwgdDAKKyAgICByZXR1cm5xKGN0
eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfY2x6LCBXYXNtSTY0Q2x6LCBtYWNybyhjdHgpCisg
ICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBsemNudHEgdDAsIHQxCisgICAgcmV0
dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X3BvcGNudCwgV2FzbUk2NFBvcGNudCwg
bWFjcm8gKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIGExKQorICAgIHByZXBhcmVT
dGF0ZUZvckNDYWxsKCkKKyAgICBtb3ZlIFBDLCBhMAorICAgIGNDYWxsMihfc2xvd19wYXRoX3dh
c21fcG9wY291bnRsbCkKKyAgICByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkKKyAgICByZXR1cm5x
KGN0eCwgcjEpCitlbmQpCisKK3dhc21PcChpNjRfZXF6LCBXYXNtSTY0RXF6LCBtYWNybyhjdHgp
CisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBjcWVxIHQwLCAwLCB0MAorICAg
IHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKworIyBmNjQgYmluYXJ5IG9wcworCit3YXNtT3AoZjY0
X2NvcHlzaWduLCBXYXNtRjY0Q29weXNpZ24sIG1hY3JvKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBt
X2xocywgZnQwKQorICAgIG1sb2FkZChjdHgsIG1fcmhzLCBmdDEpCisKKyAgICBmZDJxIGZ0MSwg
dDEKKyAgICBtb3ZlIDB4ODAwMDAwMDAwMDAwMDAwMCwgdDIKKyAgICBhbmRxIHQyLCB0MQorCisg
ICAgZmQycSBmdDAsIHQwCisgICAgbW92ZSAweDdmZmZmZmZmZmZmZmZmZmYsIHQyCisgICAgYW5k
cSB0MiwgdDAKKworICAgIG9ycSB0MSwgdDAKKyAgICBmcTJkIHQwLCBmdDAKKyAgICByZXR1cm5k
KGN0eCwgZnQwKQorZW5kKQorCisjIFR5cGUgY29udmVyc2lvbiBvcHMKKword2FzbU9wKGk2NF9l
eHRlbmRfc19pMzIsIFdhc21JNjRFeHRlbmRTSTMyLCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0
eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBzeGkycSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEp
CitlbmQpCisKK3dhc21PcChpNjRfZXh0ZW5kX3VfaTMyLCBXYXNtSTY0RXh0ZW5kVUkzMiwgbWFj
cm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgenhpMnEgdDAsIHQx
CisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoZjY0X3JlaW50ZXJwcmV0X2k2
NCwgV2FzbUY2NFJlaW50ZXJwcmV0STY0LCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9v
cGVyYW5kLCB0MCkKKyAgICBmcTJkIHQwLCBmdDAKKyAgICByZXR1cm5kKGN0eCwgZnQwKQorZW5k
KQorCit3YXNtT3AoaTY0X3JlaW50ZXJwcmV0X2Y2NCwgV2FzbUk2NFJlaW50ZXJwcmV0RjY0LCBt
YWNybyhjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisgICAgZmQycSBmdDAs
IHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NfZjY0
LCBXYXNtSTMyVHJ1bmNTRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFu
ZCwgZnQwKQorCisgICAgbW92ZSAweGMxZTAwMDAwMDAyMDAwMDAsIHQwICMgSU5UMzJfTUlOIC0g
MS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5k
c1RydW5jCisKKyAgICBtb3ZlIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UMzJfTUlOCisg
ICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5j
CisKKyAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91
dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKK2Vu
ZCkKKword2FzbU9wKGkzMl90cnVuY191X2Y2NCwgV2FzbUkzMlRydW5jVUY2NCwgbWFjcm8gKGN0
eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZmYwMDAw
MDAwMDAwMDAwLCB0MCAjIC0xLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAs
IGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmUgMHg0MWYwMDAwMDAwMDAwMDAwLCB0
MCAjIElOVDMyX01JTiAqIC0yLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAs
IGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAKKyAgICBy
ZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9u
KE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc19mMzIsIFdhc21J
NjRUcnVuY1NGMzIsIG1hY3JvIChjdHgpCisgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDAp
CisKKyAgICBtb3ZlIDB4ZGYwMDAwMDAsIHQwICMgSU5UNjRfTUlOCisgICAgZmkyZiB0MCwgZnQx
CisgICAgYmZsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZSAweDVm
MDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmd0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZjJxcyBmdDAsIHQwCisg
ICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2Vw
dGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5jX3VfZjMyLCBX
YXNtSTY0VHJ1bmNVRjMyLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwg
ZnQwKQorCisgICAgbW92ZSAweGJmODAwMDAwLCB0MCAjIC0xLjAKKyAgICBmaTJmIHQwLCBmdDEK
KyAgICBiZmx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmUgMHg1
ZjgwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCisgICAgZmkyZiB0MCwgZnQxCisgICAgYmZn
dGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0ZWYycSBmdDAs
IHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJv
d0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5jX3Nf
ZjY0LCBXYXNtSTY0VHJ1bmNTRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3Bl
cmFuZCwgZnQwKQorCisgICAgbW92ZSAweGMzZTAwMDAwMDAwMDAwMDAsIHQwICMgSU5UNjRfTUlO
CisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVu
YworCisgICAgbW92ZSAweDQzZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDY0X01JTgorICAgIGZx
MmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisg
ICAgdHJ1bmNhdGVkMnFzIGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJv
dW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisK
K3dhc21PcChpNjRfdHJ1bmNfdV9mNjQsIFdhc21JNjRUcnVuY1VGNjQsIG1hY3JvIChjdHgpCisg
ICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YmZmMDAwMDAwMDAw
MDAwMCwgdDAgIyAtMS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEs
IC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlIDB4NDNmMDAwMDAwMDAwMDAwMCwgdDAgIyBJ
TlQ2NF9NSU4gKiAtMi4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEs
IC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0ZWQycSBmdDAsIHQwCisgICAgcmV0dXJu
cShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRP
ZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfcywgV2FzbUkz
MlRydW5jU2F0RjY0UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0
MCkKKworICAgIG1vdmUgMHhjMWUwMDAwMDAwMjAwMDAwLCB0MCAjIElOVDMyX01JTiAtIDEuMAor
ICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1pbk9yTmFOCisKKyAgICBtb3ZlIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UMzJf
TUlOCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5k
c1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAorICAgIHJldHVybmkoY3R4
LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKKyAgICBiZGVxIGZ0MCwgZnQw
LCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5pKGN0
eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBJ
TlQzMl9NQVgpLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNT
YXRNaW46CisgICAgbW92ZSAoY29uc3RleHByIElOVDMyX01JTiksIHQwCisgICAgcmV0dXJuaShj
dHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfdSwgV2FzbUkzMlRydW5j
U2F0RjY0VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKwor
ICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKKyAgICBmcTJkIHQwLCBmdDEK
KyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKworICAgIG1v
dmUgMHg0MWYwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDMyX01JTiAqIC0yLjAKKyAgICBmcTJkIHQw
LCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKKwor
ICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJv
dW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisK
Ky5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UMzJfTUFY
KSwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc2F0
X2YzMl9zLCBXYXNtSTY0VHJ1bmNTYXRGMzJTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZihjdHgs
IG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGRmMDAwMDAwLCB0MCAjIElOVDY0X01JTgor
ICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNT
YXRNaW5Pck5hTgorCisgICAgbW92ZSAweDVmMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KKyAgICBm
aTJmIHQwLCBmdDEKKyAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRN
YXgKKworICAgIHRydW5jYXRlZjJxcyBmdDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgorICAgIGJmZXEgZnQwLCBmdDAsIC5vdXRPZkJv
dW5kc1RydW5jU2F0TWluCisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKwor
Lm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIElOVDY0X01BWCks
IHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAg
ICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUlOKSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitl
bmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl91LCBXYXNtSTY0VHJ1bmNTYXRGMzJVLCBt
YWNybyAoY3R4KQorICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAw
eGJmODAwMDAwLCB0MCAjIC0xLjAKKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmx0ZXF1biBmdDAs
IGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKworICAgIG1vdmUgMHg1ZjgwMDAwMCwgdDAg
IyBJTlQ2NF9NSU4gKiAtMi4wCisgICAgZmkyZiB0MCwgZnQxCisgICAgYmZndGVxdW4gZnQwLCBm
dDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWYycSBmdDAsIHQwCisg
ICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAgICBtb3Zl
IDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoK
KyAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDY0X01BWCksIHQwCisgICAgcmV0dXJucShjdHgsIHQw
KQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5jX3NhdF9mNjRfcywgV2FzbUk2NFRydW5jU2F0RjY0
UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1v
dmUgMHhjM2UwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDY0X01JTgorICAgIGZxMmQgdDAsIGZ0MQor
ICAgIGJkbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTgorCisgICAg
bW92ZSAweDQzZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDY0X01JTgorICAgIGZxMmQgdDAsIGZ0
MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisgICAg
dHJ1bmNhdGVkMnFzIGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5k
c1RydW5jU2F0TWluT3JOYU46CisgICAgYmRlcSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1bmNT
YXRNaW4KKyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3Vu
ZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUFYKSwgdDAKKyAgICBy
ZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUgKGNv
bnN0ZXhwciBJTlQ2NF9NSU4pLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2Fz
bU9wKGk2NF90cnVuY19zYXRfZjY0X3UsIFdhc21JNjRUcnVuY1NhdEY2NFUsIG1hY3JvIChjdHgp
CisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YmZmMDAwMDAw
MDAwMDAwMCwgdDAgIyAtMS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBm
dDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCisKKyAgICBtb3ZlIDB4NDNmMDAwMDAwMDAwMDAw
MCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4g
ZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQycSBmdDAs
IHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAg
ICBtb3ZlIDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDY0X01BWCksIHQwCisgICAgcmV0dXJucShj
dHgsIHQwKQorZW5kKQorCisjIEV4dGVuZCBvcHMKKword2FzbU9wKGk2NF9leHRlbmQ4X3MsIFdh
c21JNjRFeHRlbmQ4UywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDAp
CisgICAgc3hiMnEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3Ao
aTY0X2V4dGVuZDE2X3MsIFdhc21JNjRFeHRlbmQxNlMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEo
Y3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHN4aDJxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0
MSkKK2VuZCkKKword2FzbU9wKGk2NF9leHRlbmQzMl9zLCBXYXNtSTY0RXh0ZW5kMTZTLCBtYWNy
byhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBzeGkycSB0MCwgdDEK
KyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKKyMgQXRvbWljcworCittYWNybyB3YXNtQXRv
bWljQmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIsIGZu
aCwgZm5pLCBmbnEpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUl
X3UsIFdhc21JNjRBdG9taWNSbXc4JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAg
ICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZz
ZXQsIHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENo
ZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQoY3R4LCB0MywgdDEsIDEpCisgICAgICAg
IGZuYih0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKKyAgICAgICAgYW5kcSAweGZmLCB0MCAjIEZJWE1F
OiBaZXJvRXh0ZW5kOFRvNjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhm
ZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKKyAgICB3YXNt
T3AoaTY0X2F0b21pY19ybXcxNiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXcx
NiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3Bv
aW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgbWxv
YWRxKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVy
QWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCAyKQorICAgICAgICBm
bmgodDAsIFt0M10sIHQyLCB0NSwgdDEpCisgICAgICAgIGFuZHEgMHhmZmZmLCB0MCAjIEZJWE1F
OiBaZXJvRXh0ZW5kMTZUbzY0CisgICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4
ZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKKyAgICB3
YXNtT3AoaTY0X2F0b21pY19ybXczMiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNS
bXczMiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBt
X3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAg
bWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2lu
dGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA0KQorICAgICAg
ICBmbmkodDAsIFt0M10sIHQyLCB0NSwgdDEpCisgICAgICAgIGFzc2VydChtYWNybyhvaykgYnFi
ZXEgdDAsIDB4ZmZmZmZmZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAg
ICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21J
NjRBdG9taWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGko
Y3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAg
ICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBh
cmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA4KQor
ICAgICAgICBmbnEodDAsIFt0M10sIHQyLCB0NSwgdDEpCisgICAgICAgIHJldHVybnEoY3R4LCB0
MCkKKyAgICBlbmQpCitlbmQKKworbWFjcm8gd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFr
Q0FTKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmksIGZucSkKKyAgICB3YXNt
QXRvbWljQmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLAorICAg
ICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAg
aWYgWDg2XzY0CisgICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKKyAgICAgICAgICAg
ICAgICBsb2FkYiBtZW0sIHQwR1BSCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAg
ICBtb3ZlIHQwR1BSLCB0MkdQUgorICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIpCisg
ICAgICAgICAgICAgICAgYmF0b21pY3dlYWtjYXNiIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9h
ZGxpbmthY3FiIG1lbSwgdDFHUFIKKyAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BSLCB0
MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmRyZWxiIHQ1R1BSLCB0MkdQUiwgbWVtCisg
ICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAgbW92
ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbmQsCisgICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBpZiBYODZf
NjQKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgorICAgICAgICAgICAgICAgIGxv
YWRoIG1lbSwgdDBHUFIKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIG1vdmUg
dDBHUFIsIHQyR1BSCisgICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKKyAgICAgICAg
ICAgICAgICBiYXRvbWljd2Vha2Nhc2ggdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2FkbGlua2Fj
cWggbWVtLCB0MUdQUgorICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BSKQor
ICAgICAgICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAg
ICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBtb3ZlIHQxR1BS
LCB0MEdQUgorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBH
UFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIGlmIFg4Nl82NAorICAg
ICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCisgICAgICAgICAgICAgICAgbG9hZGkgbWVt
LCB0MEdQUgorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwg
dDJHUFIKKyAgICAgICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAg
IGJhdG9taWN3ZWFrY2FzaSB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxaSBtZW0s
IHQxR1BSCisgICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAg
ICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgICAg
IGJpbmVxIHQ1R1BSLCAwLCAubG9vcAorICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BS
CisgICAgICAgICAgICBlbmQKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgaWYgWDg2XzY0CisgICAgICAgICAg
ICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKKyAgICAgICAgICAgICAgICBsb2FkcSBtZW0sIHQwR1BS
CisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgor
ICAgICAgICAgICAgICAgIGZucSh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgYmF0b21p
Y3dlYWtjYXNxIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAorICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9hZGxpbmthY3FxIG1lbSwgdDFHUFIK
KyAgICAgICAgICAgICAgICBmbnEodDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgICAg
ICBzdG9yZWNvbmRyZWxxIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICAgICAgYmluZXEg
dDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAgICAg
ICAgICAgIGVuZAorICAgICAgICBlbmQpCitlbmQKKworaWYgWDg2XzY0CisgICAgd2FzbUF0b21p
Y0JpbmFyeVJNV09wcyhfYWRkLCBBZGQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BS
LCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0gZW5kLAorICAgICAgICBt
YWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaCB0MEdQ
UiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikgYXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRxIHQwR1BSLCBtZW0gZW5kKQor
ICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3N1YiwgU3ViLAorICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3ViYiB0MEdQUiwgbWVtIGVu
ZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWlj
eGNoZ3N1YmggdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BS
LCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJpIHQwR1BSLCBtZW0gZW5kLAorICAgICAgICBt
YWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3VicSB0MEdQ
UiwgbWVtIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94Y2hnLCBYY2hnLAorICAg
ICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYiB0
MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
MUdQUikgYXRvbWljeGNoZ2ggdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdpIHQwR1BSLCBtZW0gZW5kLAorICAg
ICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hncSB0
MEdQUiwgbWVtIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2Fu
ZCwgQW5kLAorICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICBhbmRpIHQ1
R1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKKyAg
ICAgICAgICAgIGFuZHEgdDVHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWlj
QmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX29yLCBPciwKKyAgICAgICAgbWFjcm8odDVHUFIsIHQy
R1BSKQorICAgICAgICAgICAgb3JpIHQ1R1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAg
IG1hY3JvKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgIG9ycSB0NUdQUiwgdDJHUFIKKyAgICAg
ICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeG9yLCBYb3Is
CisgICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgIHhvcmkgdDVHUFIsIHQy
R1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQorICAgICAgICAg
ICAgeG9ycSB0NUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorZWxzaWYgQVJNNjRFCisgICAgd2Fz
bUF0b21pY0JpbmFyeVJNV09wcyhfYWRkLCBBZGQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0sIHQwR1BSIGVu
ZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWlj
eGNoZ2FkZGggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtLCB0MEdQUiBl
bmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21p
Y3hjaGdhZGRxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1X
T3BzKF9zdWIsIFN1YiwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
MUdQUikKKyAgICAgICAgICAgIG5lZ3EgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdhZGRi
IHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5lZ3EgdDBHUFIKKyAgICAgICAg
ICAgIGF0b21pY3hjaGdhZGRoIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCwKKyAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5l
Z3EgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0sIHQwR1BSCisg
ICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikKKyAgICAgICAgICAgIG5lZ3EgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdhZGRxIHQw
R1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3Bz
KF9hbmQsIEFuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikKKyAgICAgICAgICAgIG5vdHEgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcmIg
dDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgbm90cSB0MEdQUgorICAgICAgICAg
ICAgYXRvbWljeGNoZ2NsZWFyaCB0MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBlbmQsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBu
b3RxIHQwR1BSCisgICAgICAgICAgICBhdG9taWN4Y2hnY2xlYXJpIHQwR1BSLCBtZW0sIHQwR1BS
CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
MUdQUikKKyAgICAgICAgICAgIG5vdHEgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdjbGVh
cnEgdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlS
TVdPcHMoX29yLCBPciwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
MUdQUikgYXRvbWljeGNoZ29yYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcmggdDBHUFIsIG1l
bSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKSBhdG9taWN4Y2hnb3JpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29ycSB0MEdQUiwgbWVt
LCB0MEdQUiBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfeG9yLCBYb3IsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3Ji
IHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAg
ICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9y
aSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BS
LCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKKyAg
ICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94Y2hnLCBYY2hnLAorICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYiB0MEdQUiwgbWVtLCB0MEdQ
UiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0
b21pY3hjaGdoIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2kgdDBHUFIsIG1lbSwgdDBHUFIgZW5k
LAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4
Y2hncSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQpCitlbHNpZiBBUk02NCBvciBSSVNDVjY0CisgICAg
d2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9hZGQsIEFkZCwKKyAgICAgICAgbWFj
cm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIGFkZGkgdDBHUFIsIHQxR1BSLCB0
MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisg
ICAgICAgICAgICBhZGRxIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdh
c21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfc3ViLCBTdWIsCisgICAgICAgIG1hY3Jv
KHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBzdWJpIHQxR1BSLCB0MEdQUiwgdDJH
UFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAg
ICAgICAgICAgc3VicSB0MUdQUiwgdDBHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNt
QXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3hjaGcsIFhjaGcsCisgICAgICAgIG1hY3Jv
KHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgorICAg
ICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAg
ICBtb3ZlIHQwR1BSLCB0MkdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJN
V09wc1dpdGhXZWFrQ0FTKF9hbmQsIEFuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0
MkdQUikKKyAgICAgICAgICAgIGFuZGkgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQs
CisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBhbmRxIHQw
R1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdP
cHNXaXRoV2Vha0NBUyhfb3IsIE9yLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BS
KQorICAgICAgICAgICAgb3JpIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kLAorICAg
ICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgb3JxIHQwR1BSLCB0
MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRo
V2Vha0NBUyhfeG9yLCBYb3IsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisg
ICAgICAgICAgICB4b3JpIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kLAorICAgICAg
ICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgeG9ycSB0MEdQUiwgdDFH
UFIsIHQyR1BSCisgICAgICAgIGVuZCkKK2VuZAorCittYWNybyB3YXNtQXRvbWljQ29tcGFyZUV4
Y2hhbmdlT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIsIGZuaCwgZm5p
LCBmbnEpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3UsIFdh
c21JNjRBdG9taWNSbXc4JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1s
b2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQx
KQorICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKKyAgICAgICAgbWxvYWRxKGN0
eCwgbV92YWx1ZSwgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5n
T2Zmc2V0KGN0eCwgdDMsIHQxLCAxKQorICAgICAgICBmbmIodDAsIHQyLCBbdDNdLCB0NSwgdDEp
CisgICAgICAgIGFuZHEgMHhmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0CisgICAgICAg
IGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVy
bnEoY3R4LCB0MCkKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MTYlbG93ZXJD
YXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MTYldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3Jv
KGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUo
Y3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQor
ICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJl
cGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDIp
CisgICAgICAgIGZuaCh0MCwgdDIsIFt0M10sIHQ1LCB0MSkKKyAgICAgICAgYW5kcSAweGZmZmYs
IHQwICMgRklYTUU6IFplcm9FeHRlbmQxNlRvNjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBi
cWJlcSB0MCwgMHhmZmZmLCAub2sgZW5kKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAg
ZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2Fz
bUk2NEF0b21pY1JtdzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1s
b2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQx
KQorICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKKyAgICAgICAgbWxvYWRxKGN0
eCwgbV92YWx1ZSwgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5n
T2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA0KQorICAgICAgICBmbmkodDAs
IHQyLCBbdDNdLCB0NSwgdDEpCisgICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4
ZmZmZmZmZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBlbmQpCisg
ICAgd2FzbU9wKGk2NF9hdG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21JNjRBdG9taWNS
bXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3Bv
aW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgbWxv
YWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQy
KQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGln
bm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgOCkKKyAgICAgICAgZm5xKHQwLCB0MiwgW3QzXSwgdDUs
IHQxKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorZW5kCisKK2lmIFg4Nl82
NCBvciBBUk02NEUgb3IgQVJNNjQgb3IgUklTQ1Y2NAorIyB0MEdQUiA9PiBleHBlY3RlZCwgdDJH
UFIgPT4gdmFsdWUsIG1lbSA9PiBtZW1vcnkgcmVmZXJlbmNlCit3YXNtQXRvbWljQ29tcGFyZUV4
Y2hhbmdlT3BzKF9jbXB4Y2hnLCBDbXB4Y2hnLAorICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVt
LCB0NUdQUiwgdDFHUFIpCisgICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKKyAgICAgICAgICAg
IGJxYSB0MEdQUiAsIDB4ZmYsIC5mYWlsCisgICAgICAgICAgICBhdG9taWN3ZWFrY2FzYiB0MEdQ
UiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgam1wIC5kb25lCisgICAgICAgIC5mYWlsOgorICAg
ICAgICAgICAgYXRvbWljbG9hZGIgbWVtLCB0MEdQUgorICAgICAgICAuZG9uZToKKyAgICAgICAg
ZWxzZQorICAgICAgICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5rYWNxYiBtZW0sIHQxR1BS
CisgICAgICAgICAgICBicW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCisgICAgICAgICAgICBzdG9y
ZWNvbmRyZWxiIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAu
ZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAg
c3RvcmVjb25kcmVsYiB0NUdQUiwgdDFHUFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQUiwg
MCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAg
ICAgIG1vdmUgdDFHUFIsIHQwR1BSCisgICAgICAgIGVuZAorICAgIGVuZCwKKyAgICBtYWNybyh0
MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BSKQorICAgICAgICBpZiBYODZfNjQgb3IgQVJN
NjRFCisgICAgICAgICAgICBicWEgdDBHUFIsIDB4ZmZmZiwgLmZhaWwKKyAgICAgICAgICAgIGF0
b21pY3dlYWtjYXNoIHQwR1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICBqbXAgLmRvbmUKKyAg
ICAgICAgLmZhaWw6CisgICAgICAgICAgICBhdG9taWNsb2FkaCBtZW0sIHQwR1BSCisgICAgICAg
IC5kb25lOgorICAgICAgICBlbHNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxp
bmthY3FoIG1lbSwgdDFHUFIKKyAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwK
KyAgICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAg
IGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZh
aWw6CisgICAgICAgICAgICBzdG9yZWNvbmRyZWxoIHQ1R1BSLCB0MUdQUiwgbWVtCisgICAgICAg
ICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAg
IC5kb25lOgorICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgZW5kCisgICAg
ZW5kLAorICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCisgICAgICAg
IGlmIFg4Nl82NCBvciBBUk02NEUKKyAgICAgICAgICAgIGJxYSB0MEdQUiwgMHhmZmZmZmZmZiwg
LmZhaWwKKyAgICAgICAgICAgIGF0b21pY3dlYWtjYXNpIHQwR1BSLCB0MkdQUiwgbWVtCisgICAg
ICAgICAgICBqbXAgLmRvbmUKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBhdG9taWNsb2Fk
aSBtZW0sIHQwR1BSCisgICAgICAgIC5kb25lOgorICAgICAgICBlbHNlCisgICAgICAgIC5sb29w
OgorICAgICAgICAgICAgbG9hZGxpbmthY3FpIG1lbSwgdDFHUFIKKyAgICAgICAgICAgIGJxbmVx
IHQwR1BSLCB0MUdQUiwgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGkgdDVHUFIsIHQy
R1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAgICBq
bXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BS
LCB0MUdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAgICAg
ICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBH
UFIKKyAgICAgICAgZW5kCisgICAgZW5kLAorICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0
NUdQUiwgdDFHUFIpCisgICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKKyAgICAgICAgICAgIGF0
b21pY3dlYWtjYXNxIHQwR1BSLCB0MkdQUiwgbWVtCisgICAgICAgIGVsc2UKKyAgICAgICAgLmxv
b3A6CisgICAgICAgICAgICBsb2FkbGlua2FjcXEgbWVtLCB0MUdQUgorICAgICAgICAgICAgYnFu
ZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kcmVscSB0NUdQUiwg
dDJHUFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAgICAg
IGptcCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbHEgdDVH
UFIsIHQxR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAg
ICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0
MEdQUgorICAgICAgICBlbmQKKyAgICBlbmQpCitlbmQKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vYXJtLnJiCmluZGV4IDk1Yzg1YzExMzQxYmU5NDk1ZjExZTc3ODhhNGIzNzBhNmQ5
MWJiYTkuLjdkZDUzNTA4OThiMjY0NzJjMDNmZTcwNjIyZjdmMjAwYmE4ZTJkZTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybS5yYgorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIKQEAgLTYzLDYgKzYzLDExIEBAIGNsYXNz
IE5vZGUKICAgICAgICAgcmFpc2UgIkJvZ3VzIHJlZ2lzdGVyIG5hbWUgI3tkb3VibGVPcGVyYW5k
fSIgdW5sZXNzIGRvdWJsZU9wZXJhbmQgPX4gL15kLwogICAgICAgICAicyIgKyAoJH4ucG9zdF9t
YXRjaC50b19pICogMikudG9fcwogICAgIGVuZAorICAgIGRlZiBhcm1TaW5nbGVIaQorICAgICAg
ICBkb3VibGVPcGVyYW5kID0gYXJtT3BlcmFuZAorICAgICAgICByYWlzZSAiQm9ndXMgcmVnaXN0
ZXIgbmFtZSAje2RvdWJsZU9wZXJhbmR9IiB1bmxlc3MgZG91YmxlT3BlcmFuZCA9fiAvXmQvCisg
ICAgICAgICJzIiArICgkfi5wb3N0X21hdGNoLnRvX2kgKiAyICsgMSkudG9fcworICAgIGVuZAog
ZW5kCiAKIGNsYXNzIFNwZWNpYWxSZWdpc3RlcgpAQCAtOTgsMjEgKzEwMywyMSBAQCBlbmQKIGNs
YXNzIFJlZ2lzdGVySUQKICAgICBkZWYgYXJtT3BlcmFuZAogICAgICAgICBjYXNlIG5hbWUKLSAg
ICAgICAgd2hlbiAidDAiLCAiYTAiLCAicjAiCisgICAgICAgIHdoZW4gInQwIiwgImEwIiwgIndh
MCIsICJyMCIKICAgICAgICAgICAgICJyMCIKLSAgICAgICAgd2hlbiAidDEiLCAiYTEiLCAicjEi
CisgICAgICAgIHdoZW4gInQxIiwgImExIiwgIndhMSIsICJyMSIKICAgICAgICAgICAgICJyMSIK
LSAgICAgICAgd2hlbiAidDIiLCAiYTIiCisgICAgICAgIHdoZW4gInQyIiwgImEyIiwgIndhMiIK
ICAgICAgICAgICAgICJyMiIKLSAgICAgICAgd2hlbiAidDMiLCAiYTMiCisgICAgICAgIHdoZW4g
InQzIiwgImEzIiwgIndhMyIKICAgICAgICAgICAgICJyMyIKICAgICAgICAgd2hlbiAidDQiICMg
TExJbnQgUEMKICAgICAgICAgICAgICJyNCIKLSAgICAgICAgd2hlbiAidDUiCisgICAgICAgIHdo
ZW4gInQ1IiwgIndzMCIgIyB3czAgbXVzdCBiZSBhIG5vbi1hcmd1bWVudC9ub24tcmV0dXJuIEdQ
UgogICAgICAgICAgICAgInI1IgogICAgICAgICB3aGVuICJjZnIiCiAgICAgICAgICAgICAicjci
Ci0gICAgICAgIHdoZW4gInQ2IgorICAgICAgICB3aGVuICJ0NiIsICJ3czEiICMgd3MxIG11c3Qg
YmUgYSBub24tYXJndW1lbnQvbm9uLXJldHVybiBHUFIKICAgICAgICAgICAgICJyOCIKICAgICAg
ICAgd2hlbiAidDciCiAgICAgICAgICAgICAicjkiICMgcjkgaXMgYWxzbyBhIHNjcmF0Y2ggcmVn
aXN0ZXIsIHNvIHVzZSBjYXJlZnVsbHkhCkBAIC0xMzUsMTggKzE0MCwyMiBAQCBlbmQKIGNsYXNz
IEZQUmVnaXN0ZXJJRAogICAgIGRlZiBhcm1PcGVyYW5kCiAgICAgICAgIGNhc2UgbmFtZQotICAg
ICAgICB3aGVuICJmdDAiLCAiZnIiLCAiZmEwIgorICAgICAgICB3aGVuICJmdDAiLCAiZnIiLCAi
ZmEwIiwgIndmYTAiCiAgICAgICAgICAgICAiZDAiCi0gICAgICAgIHdoZW4gImZ0MSIsICJmYTEi
CisgICAgICAgIHdoZW4gImZ0MSIsICJmYTEiLCAid2ZhMSIKICAgICAgICAgICAgICJkMSIKLSAg
ICAgICAgd2hlbiAiZnQyIgorICAgICAgICB3aGVuICJmdDIiLCAid2ZhMiIKICAgICAgICAgICAg
ICJkMiIKLSAgICAgICAgd2hlbiAiZnQzIgorICAgICAgICB3aGVuICJmdDMiLCAid2ZhMyIKICAg
ICAgICAgICAgICJkMyIKLSAgICAgICAgd2hlbiAiZnQ0IgorICAgICAgICB3aGVuICJmdDQiLCAi
d2ZhNCIKICAgICAgICAgICAgICJkNCIKLSAgICAgICAgd2hlbiAiZnQ1IgorICAgICAgICB3aGVu
ICJmdDUiLCAid2ZhNSIKICAgICAgICAgICAgICJkNSIKKyAgICAgICAgd2hlbiAiZnQ2IiwgIndm
YTYiCisgICAgICAgICAgICAiZDYiCisgICAgICAgIHdoZW4gImZ0NyIsICJ3ZmE3IgorICAgICAg
ICAgICAgImQ3IgogICAgICAgICBlbHNlCiAgICAgICAgICAgICByYWlzZSAiQmFkIHJlZ2lzdGVy
ICN7bmFtZX0gZm9yIEFSTSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgogICAgICAgICBlbmQKQEAg
LTE2Myw3ICsxNzIsMTEgQEAgZW5kCiBjbGFzcyBBZGRyZXNzCiAgICAgZGVmIGFybU9wZXJhbmQK
ICAgICAgICAgcmFpc2UgIkJhZCBvZmZzZXQgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgaWYgb2Zm
c2V0LnZhbHVlIDwgLTB4ZmYgb3Igb2Zmc2V0LnZhbHVlID4gMHhmZmYKLSAgICAgICAgIlsje2Jh
c2UuYXJtT3BlcmFuZH0sIFwjI3tvZmZzZXQudmFsdWV9XSIKKyAgICAgICAgaWYgb2Zmc2V0LnZh
bHVlID09IDAKKyAgICAgICAgICAiWyN7YmFzZS5hcm1PcGVyYW5kfV0iCisgICAgICAgIGVsc2UK
KyAgICAgICAgICAiWyN7YmFzZS5hcm1PcGVyYW5kfSwgXCMje29mZnNldC52YWx1ZX1dIgorICAg
ICAgICBlbmQKICAgICBlbmQKIGVuZAogCkBAIC0zMDYsMTYgKzMxOSwyNSBAQCBjbGFzcyBTZXF1
ZW5jZQogICAgICAgICByZXN1bHQgPSBhcm1Mb3dlckxhYmVsUmVmZXJlbmNlcyhyZXN1bHQpCiAg
ICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3NlcyhyZXN1bHQpIHsKICAg
ICAgICAgICAgIHwgbm9kZSwgYWRkcmVzcyB8Ci0gICAgICAgICAgICBpZiBhZGRyZXNzLmlzX2E/
IEJhc2VJbmRleAotICAgICAgICAgICAgICAgIGFkZHJlc3Mub2Zmc2V0LnZhbHVlID09IDAKLSAg
ICAgICAgICAgIGVsc2lmIGFkZHJlc3MuaXNfYT8gQWRkcmVzcwotICAgICAgICAgICAgICAgICgt
MHhmZi4uMHhmZmYpLmluY2x1ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVlCisgICAgICAgICAgICBj
YXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVuICJsb2FkMmlhIiwgInN0b3JlMmlhIgor
ICAgICAgICAgICAgICAgIGlmIGFkZHJlc3MuaXNfYT8gQWRkcmVzcworICAgICAgICAgICAgICAg
ICAgICAoYWRkcmVzcy5vZmZzZXQudmFsdWUgJSA0ID09IDApICYmICgoLTEwMjMuLjEwMjMpLmlu
Y2x1ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVlKQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgZmFsc2UKKyAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICBmYWxzZQorICAgICAgICAgICAgICAgIGlmIGFkZHJlc3MuaXNf
YT8gQmFzZUluZGV4CisgICAgICAgICAgICAgICAgICAgIGFkZHJlc3Mub2Zmc2V0LnZhbHVlID09
IDAgJiYgbm9kZS5vcGNvZGUKKyAgICAgICAgICAgICAgICBlbHNpZiBhZGRyZXNzLmlzX2E/IEFk
ZHJlc3MKKyAgICAgICAgICAgICAgICAgICAgKC0weGZmLi4weGZmZikuaW5jbHVkZT8gYWRkcmVz
cy5vZmZzZXQudmFsdWUKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAg
IGZhbHNlCisgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICBlbmQKICAgICAgICAgfQog
ICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXNEb3VibGUocmVzdWx0
KQotICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKHJlc3VsdCwg
WyJzdG9yZWIiLCAic3RvcmVoIiwgInN0b3JlaSIsICJzdG9yZXAiLCAic3RvcmVxIl0pCisgICAg
ICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMocmVzdWx0LCBbInN0b3Jl
YiIsICJzdG9yZWgiLCAic3RvcmVpIiwgInN0b3JlcCIsICJzdG9yZXEiLCAic3RvcmUyaWEiXSkK
ICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRlcyhyZXN1bHQsIDAu
LjB4ZmYsIDAuLjB4MGZmKQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRBZGRy
ZXNzZXMocmVzdWx0KQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJSZWdpc3RlclJldXNlKHJl
c3VsdCkKQEAgLTMzNCw2ICszNTYsMTAgQEAgZGVmIGFybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5k
cykKICAgICBhcm1PcGVyYW5kcyhbb3BlcmFuZHNbLTFdXSArIG9wZXJhbmRzWzAuLi0yXSkKIGVu
ZAogCitkZWYgYXJtRmxpcHBlZE9wZXJhbmRzUGFpcihvcGVyYW5kcykKKyAgICBhcm1PcGVyYW5k
cyhbb3BlcmFuZHNbLTJdLCBvcGVyYW5kc1stMV1dICsgb3BlcmFuZHNbMC4uLTNdKQorZW5kCisK
IGRlZiBlbWl0QXJtQ29tcGFjdChvcGNvZGUyLCBvcGNvZGUzLCBvcGVyYW5kcykKICAgICBpZiBv
cGVyYW5kcy5zaXplID09IDMKICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZTN9ICN7YXJtRmxp
cHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCkBAIC0zNjMsNiArMzg5LDEyIEBAIGRlZiBlbWl0QXJt
RG91YmxlQnJhbmNoKGJyYW5jaE9wY29kZSwgb3BlcmFuZHMpCiAgICAgJGFzbS5wdXRzICIje2Jy
YW5jaE9wY29kZX0gI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCiBlbmQKIAorZGVmIGVtaXRBcm1T
aW5nbGVCcmFuY2goYnJhbmNoT3Bjb2RlLCBvcGVyYW5kcykKKyAgICAkYXNtLnB1dHMgInZjbXBl
LmYzMiAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIK
KyAgICAkYXNtLnB1dHMgInZtcnMgYXBzcl9uemN2LCBmcHNjciIKKyAgICAkYXNtLnB1dHMgIiN7
YnJhbmNoT3Bjb2RlfSAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKK2VuZAorCiBkZWYgZW1pdEFy
bVRlc3Qob3BlcmFuZHMpCiAgICAgdmFsdWUgPSBvcGVyYW5kc1swXQogICAgIGNhc2Ugb3BlcmFu
ZHMuc2l6ZQpAQCAtMzgzLDcgKzQxNSwxNSBAQCBlbmQKIAogZGVmIGVtaXRBcm1Eb3VibGVDb21w
YXJlKG9wZXJhbmRzLCBjb2RlKQogICAgICRhc20ucHV0cyAibW92ICN7b3BlcmFuZHNbMl0uYXJt
T3BlcmFuZH0sIFwjMCIKLSAgICAkYXNtLnB1dHMgInZjbXBlLmY2NCAje2FybU9wZXJhbmRzKG9w
ZXJhbmRzWzAuLjFdKX0iCisgICAgJGFzbS5wdXRzICJ2Y21wLmY2NCAje2FybU9wZXJhbmRzKG9w
ZXJhbmRzWzAuLjFdKX0iCisgICAgJGFzbS5wdXRzICJ2bXJzIEFQU1JfbnpjdiwgRlBTQ1IiCisg
ICAgJGFzbS5wdXRzICJpdCAje2NvZGV9IgorICAgICRhc20ucHV0cyAibW92I3tjb2RlfSAje29w
ZXJhbmRzWzJdLmFybU9wZXJhbmR9LCBcIzEiCitlbmQKKworZGVmIGVtaXRBcm1GbG9hdENvbXBh
cmUob3BlcmFuZHMsIGNvZGUpCisgICAgJGFzbS5wdXRzICJtb3YgI3tvcGVyYW5kc1syXS5hcm1P
cGVyYW5kfSwgXCMwIgorICAgICRhc20ucHV0cyAidmNtcC5mMzIgI3tvcGVyYW5kc1swXS5hcm1T
aW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iCiAgICAgJGFzbS5wdXRzICJ2bXJzIEFQ
U1JfbnpjdiwgRlBTQ1IiCiAgICAgJGFzbS5wdXRzICJpdCAje2NvZGV9IgogICAgICRhc20ucHV0
cyAibW92I3tjb2RlfSAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCBcIzEiCkBAIC00MDMsNiAr
NDQzLDE5IEBAIGRlZiBlbWl0QXJtVGVzdFNldChvcGVyYW5kcywgY29kZSkKICAgICAkYXNtLnB1
dHMgIm1vdiN7Y29kZX0gI3tvcGVyYW5kc1stMV0uYXJtT3BlcmFuZH0sIFwjMSIKIGVuZAogCitk
ZWYgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgdGV4dCkKKyAgICByZXR1cm4gSW5zdHJ1Y3Rp
b24ubmV3KGNvZGVPcmlnaW4sICJlbWl0IiwgW1N0cmluZ0xpdGVyYWwubmV3KGNvZGVPcmlnaW4s
ICJcIiN7dGV4dH1cIiIpXSkKK2VuZAorCitkZWYgZW1pdEFybVRydW5jYXRlRmxvYXQoY29kZU9y
aWdpbiwgdG8sIGZyb20sIG9wZXJhbmRzKQorICAgIHRtcCA9IEFSTV9FWFRSQV9GUFJTWy0xXQor
ICAgIHNyYyA9IGZyb20gPT0gImYzMiIgPyBvcGVyYW5kc1swXS5hcm1TaW5nbGUgOiBvcGVyYW5k
c1swXS5hcm1PcGVyYW5kCisgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAg
cmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgInZjdnQuI3t0b30uI3tmcm9tfSAje3RtcC5hcm1T
aW5nbGV9LCAje3NyY30iKSwKKyAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgInZt
b3YgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3t0bXAuYXJtU2luZ2xlfSIpCisgICAgXSku
bG93ZXIoJGFjdGl2ZUJhY2tlbmQpCitlbmQKKwogY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICBkZWYg
bG93ZXJBUk12NwogICAgICAgICByYWlzZSB1bmxlc3MgJGFjdGl2ZUJhY2tlbmQgPT0gIkFSTXY3
IgpAQCAtNDQwLDYgKzQ5MywxMCBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgICAg
ICAgICAkYXNtLnB1dHMgImFkZCN7c3VmZml4fSAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5k
cyl9IgogICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4g
ImFkY2kiCisgICAgICAgICAgICBlbWl0QXJtKCJhZGMiLCBvcGVyYW5kcykKKyAgICAgICAgd2hl
biAiYWJzZCIKKyAgICAgICAgICAkYXNtLnB1dHMgInZhYnMuZjY0ICN7YXJtRmxpcHBlZE9wZXJh
bmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gImFuZGkiLCAiYW5kcCIKICAgICAgICAgICAg
IGVtaXRBcm1Db21wYWN0KCJhbmRzIiwgImFuZCIsIG9wZXJhbmRzKQogICAgICAgICB3aGVuICJv
cmkiLCAib3JwIiwgIm9yaCIKQEAgLTQ1OCwxNCArNTE1LDM0IEBAIGNsYXNzIEluc3RydWN0aW9u
CiAgICAgICAgICAgICBlbWl0QXJtKCJtdWwiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAic3Vi
aSIsICJzdWJwIiwgInN1YmlzIgogICAgICAgICAgICAgZW1pdEFybUNvbXBhY3QoInN1YnMiLCAi
c3VicyIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJzYmNpIgorICAgICAgICAgICAgZW1pdEFy
bSgic2JjIiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gIm5lZ2kiLCAibmVncCIKICAgICAgICAg
ICAgICRhc20ucHV0cyAicnNicyAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJhbmRz
WzBdLmFybU9wZXJhbmR9LCBcIzAiCiAgICAgICAgIHdoZW4gIm5vdGkiCiAgICAgICAgICAgICAk
YXNtLnB1dHMgIm12bnMgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5h
cm1PcGVyYW5kfSIKKyAgICAgICAgd2hlbiAibHJvdGF0ZWkiCisgICAgICAgICAgICB0bXAgPSBU
bXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICBTZXF1ZW5jZS5uZXcoY29kZU9y
aWdpbiwgWworICAgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAibW92
ZSIsIFtvcGVyYW5kc1swXSwgdG1wXSksCisgICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3
KGNvZGVPcmlnaW4sICJuZWdpIiwgW3RtcF0pLAorICAgICAgICAgICAgICAgIEluc3RydWN0aW9u
Lm5ldyhjb2RlT3JpZ2luLCAicnJvdGF0ZWkiLCBbdG1wLCBvcGVyYW5kc1sxXV0pLAorICAgICAg
ICAgICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCisgICAgICAgIHdoZW4gInJyb3RhdGVpIgor
ICAgICAgICAgICAgJGFzbS5wdXRzICJyb3IgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMp
fSIKKyAgICAgICAgd2hlbiAidHpjbnRpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJyYml0ICN7
YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImNs
eiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9Igor
ICAgICAgICB3aGVuICJsemNudGkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImNseiAje2FybUZs
aXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJsb2FkaSIsICJsb2FkaXMi
LCAibG9hZHAiCiAgICAgICAgICAgICAkYXNtLnB1dHMgImxkciAje2FybUZsaXBwZWRPcGVyYW5k
cyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJzdG9yZWkiLCAic3RvcmVwIgogICAgICAgICAg
ICAgJGFzbS5wdXRzICJzdHIgI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVu
ICJsb2FkMmlhIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsZHJkICN7YXJtRmxpcHBlZE9wZXJh
bmRzUGFpcihvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9yZTJpYSIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAic3RyZCAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4g
ImxvYWRiIgogICAgICAgICAgICAgJGFzbS5wdXRzICJsZHJiICN7YXJtRmxpcHBlZE9wZXJhbmRz
KG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gImxvYWRic2kiCkBAIC00NzgsMjAgKzU1NSwxMTAg
QEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgICRhc20ucHV0cyAibGRyc2gudyAje2Fy
bUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJzdG9yZWgiCiAgICAg
ICAgICAgICAkYXNtLnB1dHMgInN0cmggI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAg
ICB3aGVuICJsb2FkbGlua2IiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmV4YiAje2FybUZs
aXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkbGlua2giCisgICAg
ICAgICAgICAkYXNtLnB1dHMgImxkcmV4aCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9
IgorICAgICAgICB3aGVuICJsb2FkbGlua2kiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmV4
ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRsaW5r
MmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmV4ZCAje2FybUZsaXBwZWRPcGVyYW5kc1Bh
aXIob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVjb25kYiIKKyAgICAgICAgICAgICRh
c20ucHV0cyAic3RyZXhiICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAi
c3RvcmVjb25kaCIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RyZXhoICN7YXJtT3BlcmFuZHMo
b3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVjb25kaSIKKyAgICAgICAgICAgICRhc20u
cHV0cyAic3RyZXggI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9y
ZWNvbmQyaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RyZXhkICN7YXJtT3BlcmFuZHMob3Bl
cmFuZHMpfSIKICAgICAgICAgd2hlbiAibG9hZGQiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZs
ZHIuNjQgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAic3Rv
cmVkIgogICAgICAgICAgICAgJGFzbS5wdXRzICJ2c3RyLjY0ICN7YXJtT3BlcmFuZHMob3BlcmFu
ZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGYiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZsZHIu
MzIgI3tvcGVyYW5kc1stMV0uYXJtU2luZ2xlfSwgI3thcm1PcGVyYW5kcyhvcGVyYW5kc1swLi4t
Ml0pfSIKKyAgICAgICAgd2hlbiAic3RvcmVmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2c3Ry
LjMyICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSwgI3thcm1PcGVyYW5kcyhvcGVyYW5kc1sxLi4t
MV0pfSIKKyAgICAgICAgd2hlbiAiYWRkZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmFkZC5m
MzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7
b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAic3ViZiIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAidnN1Yi5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRz
WzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAi
bXVsZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm11bC5mMzIgI3tvcGVyYW5kc1sxXS5hcm1T
aW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xl
fSIKKyAgICAgICAgd2hlbiAiZGl2ZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmRpdi5mMzIg
I3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3Bl
cmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAic3FydGYiCisgICAgICAgICAgICAk
YXNtLnB1dHMgInZzcXJ0LmYzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNb
MF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAiYWJzZiIKKyAgICAgICAgICAgICRhc20ucHV0
cyAidmFicy5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybVNp
bmdsZX0iCisgICAgICAgIHdoZW4gIm5lZ2YiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZuZWcu
ZjMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9Igor
ICAgICAgICB3aGVuICJiZmx0IgorICAgICAgICAgICAgZW1pdEFybVNpbmdsZUJyYW5jaCgiYm1p
Iiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJmbHR1biIKKyAgICAgICAgICAgIGVtaXRBcm1T
aW5nbGVCcmFuY2goImJsdCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZmx0ZXF1biIKKyAg
ICAgICAgICAgIGVtaXRBcm1TaW5nbGVCcmFuY2goImJsZSIsIG9wZXJhbmRzKQorICAgICAgICB3
aGVuICJiZmVxIgorICAgICAgICAgICAgZW1pdEFybVNpbmdsZUJyYW5jaCgiYmVxIiwgb3BlcmFu
ZHMpCisgICAgICAgIHdoZW4gImJmZ3QiCisgICAgICAgICAgICBlbWl0QXJtU2luZ2xlQnJhbmNo
KCJiZ3QiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmZndGVxdW4iCisgICAgICAgICAgICBl
bWl0QXJtU2luZ2xlQnJhbmNoKCJicGwiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRsdHVu
IgorICAgICAgICAgICAgZW1pdEFybURvdWJsZUJyYW5jaCgiYmx0Iiwgb3BlcmFuZHMpCiAgICAg
ICAgIHdoZW4gImFkZGQiCiAgICAgICAgICAgICBlbWl0QXJtKCJ2YWRkLmY2NCIsIG9wZXJhbmRz
KQotICAgICAgICB3aGVuICJkaXZkIgotICAgICAgICAgICAgZW1pdEFybSgidmRpdi5mNjQiLCBv
cGVyYW5kcykKICAgICAgICAgd2hlbiAic3ViZCIKICAgICAgICAgICAgIGVtaXRBcm0oInZzdWIu
ZjY0Iiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gIm11bGQiCiAgICAgICAgICAgICBlbWl0QXJt
KCJ2bXVsLmY2NCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJkaXZkIgorICAgICAgICAgICAg
ZW1pdEFybSgidmRpdi5mNjQiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAic3FydGQiCiAgICAg
ICAgICAgICAkYXNtLnB1dHMgInZzcXJ0LmY2NCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5k
cyl9IgorICAgICAgICB3aGVuICJuZWdkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bmVnLmY2
NCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJvcmYiCisg
ICAgICAgICAgICAodG1wTGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0xXQorICAg
ICAgICAgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAgcmF3SW5z
dHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJh
bmRzWzBdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9y
aWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmds
ZX0iKSwKKyAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJvcmkiLCBb
dG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdp
biwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3t0bXBSaHMuYXJtT3BlcmFuZH0i
KQorICAgICAgICAgICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCisgICAgICAgIHdoZW4gImFu
ZGYiCisgICAgICAgICAgICAodG1wTGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0x
XQorICAgICAgICAgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAg
cmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAj
e29wZXJhbmRzWzBdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24o
Y29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFy
bVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJh
bmRpIiwgW3RtcExocywgdG1wUmhzXSksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNv
ZGVPcmlnaW4sICAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7dG1wUmhzLmFybU9w
ZXJhbmR9IikKKyAgICAgICAgICAgIF0pLmxvd2VyKCRhY3RpdmVCYWNrZW5kKQorICAgICAgICB3
aGVuICJvcmQiCisgICAgICAgICAgICAodG1wTGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNb
LTIuLi0xXQorICAgICAgICAgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAg
ICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJh
bmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1
Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRz
WzFdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmln
aW4sICJvcmkiLCBbdG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rp
b24oY29kZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3t0bXBSaHMu
YXJtT3BlcmFuZH0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwg
ICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZUhpfSIp
LAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBS
aHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlSGl9IiksCisgICAgICAgICAg
ICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAib3JpIiwgW3RtcExocywgdG1wUmhzXSks
CisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje29wZXJh
bmRzWzFdLmFybVNpbmdsZUhpfSwgI3t0bXBSaHMuYXJtT3BlcmFuZH0iKQorICAgICAgICAgICAg
XSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCisgICAgICAgIHdoZW4gImFuZGQiCisgICAgICAgICAg
ICAodG1wTGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0xXQorICAgICAgICAgICAg
U2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24o
Y29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFy
bVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2
bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iKSwKKyAg
ICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJhbmRpIiwgW3RtcExocywg
dG1wUmhzXSksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1v
diAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7dG1wUmhzLmFybU9wZXJhbmR9IiksCisgICAg
ICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcExocy5hcm1P
cGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGVIaX0iKSwKKyAgICAgICAgICAgICAgcmF3
SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29w
ZXJhbmRzWzFdLmFybVNpbmdsZUhpfSIpLAorICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXco
Y29kZU9yaWdpbiwgImFuZGkiLCBbdG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3
SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlSGl9
LCAje3RtcFJocy5hcm1PcGVyYW5kfSIpCisgICAgICAgICAgICBdKS5sb3dlcigkYWN0aXZlQmFj
a2VuZCkKICAgICAgICAgd2hlbiAiY2kyZHMiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3Yg
I3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9IgogICAg
ICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmY2NC5zMzIgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5k
fSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IgpAQCAtNTQ0LDYgKzcxMSw4IEBAIGNsYXNzIElu
c3RydWN0aW9uCiAgICAgICAgIHdoZW4gIm1vdmR6IgogICAgICAgICAgICAgIyBGSVhNRTogZWl0
aGVyIHN1cHBvcnQgdGhpcyBvciByZW1vdmUgaXQuCiAgICAgICAgICAgICByYWlzZSAiQVJNIGRv
ZXMgbm90IHN1cHBvcnQgdGhpcyBvcGNvZGUgeWV0LCAje2NvZGVPcmlnaW59IgorICAgICAgICB3
aGVuICJtb3ZlZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdi5mNjQgI3thcm1GbGlwcGVk
T3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAicG9wIgogICAgICAgICAgICAgb3Bl
cmFuZHMuZWFjaCB7CiAgICAgICAgICAgICAgICAgfCBvcCB8CkBAIC01NjAsOSArNzI5LDE3IEBA
IGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgJGFz
bS5wdXRzICJtb3YgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgICAg
IGVuZAorICAgICAgICB3aGVuICJtb3ZlaWkiCisgICAgICAgICAgICByYWlzZSAiRmlyc3Qgb3Bl
cmFuZCBvZiBtb3ZlaWkgbXVzdCBiZSBhbiBpbW1lZGlhdGUiIHVubGVzcyBvcGVyYW5kc1swXS5p
bW1lZGlhdGU/CisgICAgICAgICAgICBhcm1Nb3ZlSW1tZWRpYXRlKG9wZXJhbmRzWzBdLnZhbHVl
ID4+IDMyLCBvcGVyYW5kc1sxXSkKKyAgICAgICAgICAgIGFybU1vdmVJbW1lZGlhdGUob3BlcmFu
ZHNbMF0udmFsdWUgJiAweGZmZmZmZmZmLCBvcGVyYW5kc1syXSkKICAgICAgICAgd2hlbiAibXZs
YmwiCiAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3Z3ICN7b3BlcmFuZHNbMV0uYXJtT3Bl
cmFuZH0sIFwjOmxvd2VyMTY6I3tvcGVyYW5kc1swXS52YWx1ZX0iCiAgICAgICAgICAgICAgICAg
JGFzbS5wdXRzICJtb3Z0ICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sIFwjOnVwcGVyMTY6I3tv
cGVyYW5kc1swXS52YWx1ZX0iCisgICAgICAgIHdoZW4gInN4YjJpIgorICAgICAgICAgICAgJGFz
bS5wdXRzICJzeHRiICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdo
ZW4gInN4aDJpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzeHRoICN7YXJtRmxpcHBlZE9wZXJh
bmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gIm5vcCIKICAgICAgICAgICAgICRhc20ucHV0
cyAibm9wIgogICAgICAgICB3aGVuICJiaWVxIiwgImJwZXEiLCAiYmJlcSIKQEAgLTY1NiwxNCAr
ODMzLDQ2IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBlbWl0QXJtQ29tcGFyZShv
cGVyYW5kcywgImx0IikKICAgICAgICAgd2hlbiAiY2lsdGVxIiwgImNwbHRlcSIsICJjYmx0ZXEi
CiAgICAgICAgICAgICBlbWl0QXJtQ29tcGFyZShvcGVyYW5kcywgImxlIikKLSAgICAgICAgd2hl
biAiY2RndCIKLSAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAiZ3Qi
KQotICAgICAgICB3aGVuICJjZGd0ZXEiCi0gICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFy
ZShvcGVyYW5kcywgImdlIikKKyAgICAgICAgd2hlbiAiY2ZlcSIKKyAgICAgICAgICAgIGVtaXRB
cm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJlcSIpCisgICAgICAgIHdoZW4gImNmbmVxdW4iCisg
ICAgICAgICAgICBlbWl0QXJtRmxvYXRDb21wYXJlKG9wZXJhbmRzLCAibmUiKQorICAgICAgICB3
aGVuICJjZmx0IgorICAgICAgICAgICAgZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywgIm1p
IikKKyAgICAgICAgd2hlbiAiY2ZsdGVxIgorICAgICAgICAgICAgZW1pdEFybUZsb2F0Q29tcGFy
ZShvcGVyYW5kcywgImxzIikKKyAgICAgICAgd2hlbiAiY2ZndCIKKyAgICAgICAgICAgIGVtaXRB
cm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJndCIpCisgICAgICAgIHdoZW4gImNmZ3RlcSIKKyAg
ICAgICAgICAgIGVtaXRBcm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJnZSIpCisgICAgICAgIHdo
ZW4gImNkZXEiCisgICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywgImVx
IikKKyAgICAgICAgd2hlbiAiY2RuZXF1biIKKyAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21w
YXJlKG9wZXJhbmRzLCAibmUiKQogICAgICAgICB3aGVuICJjZGx0IgogICAgICAgICAgICAgZW1p
dEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMsICJtaSIpCiAgICAgICAgIHdoZW4gImNkbHRlcSIK
ICAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAibHMiKQorICAgICAg
ICB3aGVuICJjZGd0IgorICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMs
ICJndCIpCisgICAgICAgIHdoZW4gImNkZ3RlcSIKKyAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVD
b21wYXJlKG9wZXJhbmRzLCAiZ2UiKQorICAgICAgICB3aGVuICJjZjJkIgorICAgICAgICAgICAg
JGFzbS5wdXRzICJ2Y3Z0LmY2NC5mMzIgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVy
YW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJjZDJmIgorICAgICAgICAgICAgJGFz
bS5wdXRzICJ2Y3Z0LmYzMi5mNjQgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRz
WzBdLmFybU9wZXJhbmR9IgorICAgICAgICB3aGVuICJjaTJmIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVy
YW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmN2dC5mMzIudTMyICN7b3BlcmFuZHNbMV0u
YXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJjaTJm
cyIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0s
ICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInZjdnQu
ZjMyLnMzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xl
fSIKKyAgICAgICAgd2hlbiAiY2kyZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29w
ZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAg
ICAgICAkYXNtLnB1dHMgInZjdnQuZjY0LnUzMiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAj
e29wZXJhbmRzWzFdLmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gImNpMmRzIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sw
XS5hcm1PcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmN2dC5mNjQuczMyICN7b3Bl
cmFuZHNbMV0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKICAgICAgICAg
d2hlbiAidGlzIiwgInRicyIsICJ0cHMiCiAgICAgICAgICAgICBlbWl0QXJtVGVzdFNldChvcGVy
YW5kcywgIm1pIikKICAgICAgICAgd2hlbiAidGl6IiwgInRieiIsICJ0cHoiCkBAIC02NzQsMTAg
Kzg4MywyMiBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgJGFzbS5wdXRzICJsZHIg
I3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgW3NwLCBcIyN7b3BlcmFuZHNbMF0udmFsdWUgKiA0
fV0iCiAgICAgICAgIHdoZW4gInBva2UiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInN0ciAje29w
ZXJhbmRzWzFdLmFybU9wZXJhbmR9LCBbc3AsIFwjI3tvcGVyYW5kc1swXS52YWx1ZSAqIDR9XSIK
KyAgICAgICAgd2hlbiAiZmkyZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJh
bmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAgIHdo
ZW4gImZmMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1P
cGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IgogICAgICAgICB3aGVuICJmaWkyZCIK
ICAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCAj
e29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9IgogICAg
ICAgICB3aGVuICJmZDJpaSIKICAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRz
WzFdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBd
LmFybU9wZXJhbmR9IgorICAgICAgICB3aGVuICJ0cnVuY2F0ZWYyaSIKKyAgICAgICAgICAgIGVt
aXRBcm1UcnVuY2F0ZUZsb2F0KGNvZGVPcmlnaW4sICJ1MzIiLCAiZjMyIiwgb3BlcmFuZHMpCisg
ICAgICAgIHdoZW4gInRydW5jYXRlZjJpcyIKKyAgICAgICAgICAgIGVtaXRBcm1UcnVuY2F0ZUZs
b2F0KGNvZGVPcmlnaW4sICJzMzIiLCAiZjMyIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInRy
dW5jYXRlZDJpIgorICAgICAgICAgICAgZW1pdEFybVRydW5jYXRlRmxvYXQoY29kZU9yaWdpbiwg
InUzMiIsICJmNjQiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAidHJ1bmNhdGVkMmlzIgorICAg
ICAgICAgICAgZW1pdEFybVRydW5jYXRlRmxvYXQoY29kZU9yaWdpbiwgInMzMiIsICJmNjQiLCBv
cGVyYW5kcykKICAgICAgICAgd2hlbiAiYm8iCiAgICAgICAgICAgICAkYXNtLnB1dHMgImJ2cyAj
e29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKICAgICAgICAgd2hlbiAiYnMiCkBAIC02ODYsMTMgKzkw
NywxNyBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgJGFzbS5wdXRzICJiZXEgI3tv
cGVyYW5kc1swXS5hc21MYWJlbH0iCiAgICAgICAgIHdoZW4gImJueiIKICAgICAgICAgICAgICRh
c20ucHV0cyAiYm5lICN7b3BlcmFuZHNbMF0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJiY3Mi
CisgICAgICAgICAgICAkYXNtLnB1dHMgImJjcyAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKICAg
ICAgICAgd2hlbiAibGVhaSIsICJsZWFwIgogICAgICAgICAgICAgb3BlcmFuZHNbMF0uYXJtRW1p
dExlYShvcGVyYW5kc1sxXSkKLSAgICAgICAgd2hlbiAic211bGxpIgorICAgICAgICB3aGVuICJz
bXVsbGkiLCAidW11bGxpIgogICAgICAgICAgICAgcmFpc2UgIldyb25nIG51bWJlciBvZiBhcmd1
bWVudHMgdG8gc211bGwgaW4gI3tzZWxmLmluc3BlY3R9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30i
IHVubGVzcyBvcGVyYW5kcy5sZW5ndGggPT0gNAotICAgICAgICAgICAgJGFzbS5wdXRzICJzbXVs
bCAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzNdLmFybU9wZXJhbmR9LCAj
e29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9IgorICAg
ICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZVswLi4tMl19ICN7b3BlcmFuZHNbMl0uYXJtT3Bl
cmFuZH0sICN7b3BlcmFuZHNbM10uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCiAgICAgICAgIHdoZW4gIm1lbWZlbmNlIgog
ICAgICAgICAgICAgJGFzbS5wdXRzICJkbWIgc3kiCisgICAgICAgIHdoZW4gImZlbmNlIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJkbWIgaXNoIgogICAgICAgICB3aGVuICJjbHJicCIKICAgICAg
ICAgICAgICRhc20ucHV0cyAiYmljICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFu
ZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCiAgICAgICAgIHdo
ZW4gImdsb2JhbGFkZHIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9pbnN0cnVjdGlvbnMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9p
bnN0cnVjdGlvbnMucmIKaW5kZXggNTRiMDI3ZjNkYTAxNzczODM0NWU5ZDJiNjE4Zjc0ODBmMDg0
ZWQ0NC4uN2UyODBiN2Y3OGI0NmRmNDY4NDE2ZmE1YTQ1MWI2OWIzMWJkZmE4MSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgpAQCAtNTks
NiArNTksNyBAQCBNQUNST19JTlNUUlVDVElPTlMgPQogICAgICAicnJvdGF0ZXEiLAogICAgICAi
c3ViaSIsCiAgICAgICJ4b3JpIiwKKyAgICAgImxvYWQyaWEiLAogICAgICAibG9hZGkiLAogICAg
ICAibG9hZGlzIiwKICAgICAgImxvYWRiIiwKQEAgLTY3LDYgKzY4LDcgQEAgTUFDUk9fSU5TVFJV
Q1RJT05TID0KICAgICAgImxvYWRoIiwKICAgICAgImxvYWRoc2kiLAogICAgICAibG9hZGhzcSIs
CisgICAgICJzdG9yZTJpYSIsCiAgICAgICJzdG9yZWkiLAogICAgICAic3RvcmVoIiwKICAgICAg
InN0b3JlYiIsCkBAIC0zNzcsOSArMzc5LDIxIEBAIFg4Nl9JTlNUUlVDVElPTlMgPQogCiBBUk1f
SU5TVFJVQ1RJT05TID0KICAgICBbCisgICAgICJhZGNpIiwKKyAgICAgImJjcyIsCiAgICAgICJj
bHJicCIsCiAgICAgICJtdmxibCIsCi0gICAgICJnbG9iYWxhZGRyIgorICAgICAiZ2xvYmFsYWRk
ciIsCisgICAgICJzYmNpIiwKKyAgICAgIm1vdmVpaSIsCisgICAgICJsb2FkbGlua2IiLAorICAg
ICAibG9hZGxpbmtoIiwKKyAgICAgImxvYWRsaW5raSIsCisgICAgICJsb2FkbGluazJpIiwKKyAg
ICAgInN0b3JlY29uZGIiLAorICAgICAic3RvcmVjb25kaCIsCisgICAgICJzdG9yZWNvbmRpIiwK
KyAgICAgInN0b3JlY29uZDJpIiwKICAgICBdCiAKIEFSTTY0X0lOU1RSVUNUSU9OUyA9CkBAIC00
MzEsNiArNDQ1LDcgQEAgQVJNNjRfSU5TVFJVQ1RJT05TID0KIFJJU0NfSU5TVFJVQ1RJT05TID0K
ICAgICBbCiAgICAgICJzbXVsbGkiLCAgIyBNdWx0aXBseSB0d28gMzItYml0IHdvcmRzIGFuZCBw
cm9kdWNlIGEgNjQtYml0IHdvcmQKKyAgICAgInVtdWxsaSIsICAjIE11bHRpcGx5IHR3byAzMi1i
aXQgd29yZHMgYW5kIHByb2R1Y2UgYSA2NC1iaXQgd29yZAogICAgICAiYWRkaXMiLCAgICMgQWRk
IGludGVnZXJzIGFuZCBzZXQgYSBmbGFnLgogICAgICAic3ViaXMiLCAgICMgU2FtZSwgYnV0IGZv
ciBzdWJ0cmFjdGlvbi4KICAgICAgIm9yaXMiLCAgICAjIFNhbWUsIGJ1dCBmb3IgYml0d2lzZSBv
ci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVy
cy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5yYgppbmRl
eCAwZGM0NGMyM2RmYjJiYWQzNjVhMGZlYjU3MTAzYWQyZmQzM2ZlYWU0Li42N2Y1MjcxYTUzNzVh
YzFmMTM0NGI4NjkzNzViNzgwYTg3YWNiOTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiCkBAIC01OCw3ICs1OCw4IEBAIEdQUlMgPQogICAgICAi
Y3NyNyIsCiAgICAgICJjc3I4IiwKICAgICAgImNzcjkiLAotICAgICAiY3NyMTAiCisgICAgICJj
c3IxMCIsCisgICAgICJpbnZhbGlkR1BSIgogICAgIF0KIAogRlBSUyA9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYgppbmRleCAwZjA3MmU5ZmQxMWUxNTg1YWFmM2RkOGVi
MDUwZmZkOTQ2MjM5ZGYyLi4zNDY0NTk2MmY3NDMwNWYzNmQ1OGM5ZjI3ZDRlNDRlYmRiNTM0ZmVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIKQEAgLTI1OSw4ICsy
NTksMTIgQEAgZGVmIHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc0RvdWJsZShsaXN0KQogICAg
ICAgICAgICAgY2FzZSBub2RlLm9wY29kZQogICAgICAgICAgICAgd2hlbiAibG9hZGQiCiAgICAg
ICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAi
bG9hZGQiLCBbbm9kZS5vcGVyYW5kc1swXS5yaXNjRG91YmxlQWRkcmVzcyhuZXdMaXN0KSwgbm9k
ZS5vcGVyYW5kc1sxXV0sIG5vZGUuYW5ub3RhdGlvbikKKyAgICAgICAgICAgIHdoZW4gImxvYWRm
IgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9y
aWdpbiwgImxvYWRmIiwgW25vZGUub3BlcmFuZHNbMF0ucmlzY0RvdWJsZUFkZHJlc3MobmV3TGlz
dCksIG5vZGUub3BlcmFuZHNbMV1dLCBub2RlLmFubm90YXRpb24pCiAgICAgICAgICAgICB3aGVu
ICJzdG9yZWQiCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9k
ZS5jb2RlT3JpZ2luLCAic3RvcmVkIiwgW25vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNb
MV0ucmlzY0RvdWJsZUFkZHJlc3MobmV3TGlzdCldLCBub2RlLmFubm90YXRpb24pCisgICAgICAg
ICAgICB3aGVuICJzdG9yZWYiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlv
bi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic3RvcmVmIiwgW25vZGUub3BlcmFuZHNbMF0sIG5vZGUu
b3BlcmFuZHNbMV0ucmlzY0RvdWJsZUFkZHJlc3MobmV3TGlzdCldLCBub2RlLmFubm90YXRpb24p
CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCiAgICAg
ICAgICAgICBlbmQKQEAgLTM2OSw3ICszNzMsNyBAQCBkZWYgcmlzY0xvd2VyTWFsZm9ybWVkSW1t
ZWRpYXRlcyhsaXN0LCB2YWxpZEltbWVkaWF0ZXMsIHZhbGlkTG9naWNhbEltbWVkaWF0ZXMpCiAg
ICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGFubm90YXRpb24g
PSBub2RlLmFubm90YXRpb24KICAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKLSAgICAgICAg
ICAgIHdoZW4gIm1vdmUiCisgICAgICAgICAgICB3aGVuICJtb3ZlIiwgIm1vdmVpaSIKICAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKICAgICAgICAgICAgIHdoZW4gImFkZGkiLCAiYWRk
cCIsICJhZGRxIiwgImFkZGlzIiwgInN1YmkiLCAic3VicCIsICJzdWJxIiwgInN1YmlzIgogICAg
ICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlIGFuZApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCmluZGV4IDE2OTgwN2M0NzBl
OGY5MGYxMmE1N2JiNGNiNGIxYjMyZTk1MjE1ZDIuLmY2ZjYwYmFkMDAyNjRkYzAyYjNiNmQ3NmRj
OThhMDg2NjZiZDk2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ0pTVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1Zh
bHVlLmgKQEAgLTE2Miw4ICsxNjIsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1
aW50MzJfdCBOdWxsVGFnID0gICAgICAgICAweGZmZmZmZmZkOwogICAgIHN0YXRpYyBjb25zdGV4
cHIgdWludDMyX3QgVW5kZWZpbmVkVGFnID0gICAgMHhmZmZmZmZmYzsKICAgICBzdGF0aWMgY29u
c3RleHByIHVpbnQzMl90IENlbGxUYWcgPSAgICAgICAgIDB4ZmZmZmZmZmI7Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciB1aW50MzJfdCBFbXB0eVZhbHVlVGFnID0gICAweGZmZmZmZmZhOwotICAgIHN0
YXRpYyBjb25zdGV4cHIgdWludDMyX3QgRGVsZXRlZFZhbHVlVGFnID0gMHhmZmZmZmZmOTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IFdhc21UYWcgPSAgICAgICAgIDB4ZmZmZmZmZmE7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBFbXB0eVZhbHVlVGFnID0gICAweGZmZmZm
ZmY5OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgRGVsZXRlZFZhbHVlVGFnID0gMHhm
ZmZmZmZmODsKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgTG93ZXN0VGFnID0gIERl
bGV0ZWRWYWx1ZVRhZzsKICNlbmRpZgpAQCAtMTgwLDYgKzE4MSw5IEBAIHB1YmxpYzoKICAgICBl
bnVtIEVuY29kZUFzQmlnSW50MzJUYWcgeyBFbmNvZGVBc0JpZ0ludDMyIH07CiAjZW5kaWYKICAg
ICBlbnVtIEVuY29kZUFzRG91YmxlVGFnIHsgRW5jb2RlQXNEb3VibGUgfTsKKyNpZiBFTkFCTEUo
V0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgZW51bSBFbmNvZGVBc1VuYm94
ZWRGbG9hdFRhZyB7IEVuY29kZUFzVW5ib3hlZEZsb2F0IH07CisjZW5kaWYKIAogICAgIEpTVmFs
dWUoKTsKICAgICBKU1ZhbHVlKEpTTnVsbFRhZyk7CkBAIC0xOTEsNiArMTk1LDkgQEAgcHVibGlj
OgogI2lmIFVTRShCSUdJTlQzMikKICAgICBKU1ZhbHVlKEVuY29kZUFzQmlnSW50MzJUYWcsIGlu
dDMyX3QpOwogI2VuZGlmCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBVU0UoSlNWQUxVRTMy
XzY0KQorICAgIEpTVmFsdWUoRW5jb2RlQXNVbmJveGVkRmxvYXRUYWcsIGZsb2F0KTsKKyNlbmRp
ZgogCiAgICAgLy8gTnVtYmVycwogICAgIEpTVmFsdWUoRW5jb2RlQXNEb3VibGVUYWcsIGRvdWJs
ZSk7CkBAIC01OTIsNiArNTk5LDEzIEBAIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc0JpZ0ludDMy
KGludDMyX3QgaW50VmFsdWUpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkg
JiYgVVNFKEpTVkFMVUUzMl82NCkKK0FMV0FZU19JTkxJTkUgSlNWYWx1ZSB3YXNtVW5ib3hlZEZs
b2F0KGZsb2F0IGYpCit7CisgICAgcmV0dXJuIEpTVmFsdWUoSlNWYWx1ZTo6RW5jb2RlQXNVbmJv
eGVkRmxvYXQsIGYpOworfQorI2VuZGlmCisKIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc0RvdWJs
ZU51bWJlcihkb3VibGUgZCkKIHsKICAgICBBU1NFUlQoSlNWYWx1ZShKU1ZhbHVlOjpFbmNvZGVB
c0RvdWJsZSwgZCkuaXNOdW1iZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAppbmRleCAzN2VjYjI1MzUwZDUyYThjZjdjYmE1ZTAw
NDdiYThkNTVhZWQ3ODRlLi42YTNmMzI2ZWM2MTZjMzBjNjQyMGMxMTNiNzc4Y2MyMzFlMmZkZjYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5s
aW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxp
bmVzLmgKQEAgLTYxOSw2ICs2MTksMTMgQEAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoRW5jb2Rl
QXNCaWdJbnQzMlRhZywgaW50MzJfdCB2YWx1ZSkKIH0KICNlbmRpZiAvLyBVU0UoQklHSU5UMzIp
CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVFMzJfNjQpCitpbmxpbmUg
SlNWYWx1ZTo6SlNWYWx1ZShFbmNvZGVBc1VuYm94ZWRGbG9hdFRhZywgZmxvYXQgdmFsdWUpCit7
CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSk7Cit9
CisjZW5kaWYKKwogaW5saW5lIGludDY0X3QgdHJ5Q29udmVydFRvSW50NTIoZG91YmxlIG51bWJl
cikKIHsKICAgICBpZiAobnVtYmVyICE9IG51bWJlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCmluZGV4IDJkNzI5YWUyNWVkMzI0YTU3
MmM3ZWQzZGQ0ZjBmYjQyYmFhNTMyYjMuLmYxMTYxMzE2ZDJlNmE0MTgyNWFhNTVkMWQ5NjQ1YTZi
YjQyM2NhYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJ
UkdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklS
R2VuZXJhdG9yLmNwcApAQCAtODQwLDYgKzg0MCwxNSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBGdW5jdGlvbj4KICAgICB2b2lkIGZvckVhY2hMaXZlVmFsdWUoRnVuY3Rpb24p
OwogCisgICAgYm9vbCB1c2VTaWduYWxpbmdNZW1vcnkoKSBjb25zdAorICAgIHsKKyNpZiBFTkFC
TEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKKyAgICAgICAgcmV0dXJuIG1fbW9kZSA9
PSBNZW1vcnlNb2RlOjpTaWduYWxpbmc7CisjZWxzZQorICAgICAgICByZXR1cm4gZmFsc2U7Cisj
ZW5kaWYKKyAgICB9CisKICAgICBGdW5jdGlvblBhcnNlcjxBaXJJUkdlbmVyYXRvcj4qIG1fcGFy
c2VyIHsgbnVsbHB0ciB9OwogICAgIGNvbnN0IE1vZHVsZUluZm9ybWF0aW9uJiBtX2luZm87CiAg
ICAgY29uc3QgTWVtb3J5TW9kZSBtX21vZGUgeyBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZyB9
OwpAQCAtOTU3LDcgKzk2Niw3IEBAIEFpcklSR2VuZXJhdG9yOjpBaXJJUkdlbmVyYXRvcihjb25z
dCBNb2R1bGVJbmZvcm1hdGlvbiYgaW5mbywgQjM6OlByb2NlZHVyZSYgcHJvCiAgICAgaWYgKCFD
b250ZXh0Ojp1c2VGYXN0VExTKCkpCiAgICAgICAgIG1fY29kZS5waW5SZWdpc3RlcihtX3dhc21D
b250ZXh0SW5zdGFuY2VHUFIpOwogCi0gICAgaWYgKG1vZGUgIT0gTWVtb3J5TW9kZTo6U2lnbmFs
aW5nKSB7CisgICAgaWYgKG1vZGUgPT0gTWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcpIHsKICAg
ICAgICAgbV9ib3VuZHNDaGVja2luZ1NpemVHUFIgPSBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5n
U2l6ZVJlZ2lzdGVyOwogICAgICAgICBtX2NvZGUucGluUmVnaXN0ZXIobV9ib3VuZHNDaGVja2lu
Z1NpemVHUFIpOwogICAgIH0KQEAgLTE3OTIsNiArMTgwMSw3IEBAIGlubGluZSBBaXJJUkdlbmVy
YXRvcjo6RXhwcmVzc2lvblR5cGUgQWlySVJHZW5lcmF0b3I6OmVtaXRDaGVja0FuZFByZXBhcmVQ
b2ludGVyCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9T
SUdOQUxJTkdfTUVNT1JZKQogICAgIGNhc2UgTWVtb3J5TW9kZTo6U2lnbmFsaW5nOiB7CiAgICAg
ICAgIC8vIFdlJ3ZlIHZpcnR1YWxseSBtYXBwZWQgNEdpQityZWR6b25lIGZvciB0aGlzIG1lbW9y
eS4gT25seSB0aGUgdXNlci1hbGxvY2F0ZWQgcGFnZXMgYXJlIGFkZHJlc3NhYmxlLCBjb250aWd1
b3VzbHkgaW4gcmFuZ2UgWzAsIGN1cnJlbnRdLAogICAgICAgICAvLyBhbmQgZXZlcnl0aGluZyBh
Ym92ZSBpcyBtYXBwZWQgUFJPVF9OT05FLiBXZSBkb24ndCBuZWVkIHRvIHBlcmZvcm0gYW55IGV4
cGxpY2l0IGJvdW5kcyBjaGVjayBpbiB0aGUgNEdpQiByYW5nZSBiZWNhdXNlIFdlYkFzc2VtYmx5
IHJlZ2lzdGVyCkBAIC0xODE4LDYgKzE4MjgsNyBAQCBpbmxpbmUgQWlySVJHZW5lcmF0b3I6OkV4
cHJlc3Npb25UeXBlIEFpcklSR2VuZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcgog
ICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyNlbmRpZgogICAgIH0KIAogICAgIGFw
cGVuZChBZGQ2NCwgVG1wKG1fbWVtb3J5QmFzZUdQUiksIHJlc3VsdCk7CkBAIC0zNjkzLDcgKzM3
MDQsNyBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjphZGRDYWxsKHVpbnQzMl90IGZ1bmN0aW9uSW5k
ZXgsIGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlLAogICAgICAgICBhdXRvKiBwYXRjaHBvaW50
ID0gcGFpci5maXJzdDsKICAgICAgICAgYXV0byBleGNlcHRpb25IYW5kbGUgPSBwYWlyLnNlY29u
ZDsKICAgICAgICAgLy8gV2UgbmVlZCB0byBjbG9iYmVyIHRoZSBzaXplIHJlZ2lzdGVyIHNpbmNl
IHRoZSBMTEludCBhbHdheXMgYm91bmRzIGNoZWNrcwotICAgICAgICBpZiAobV9tb2RlID09IE1l
bW9yeU1vZGU6OlNpZ25hbGluZyB8fCBtX2luZm8ubWVtb3J5LmlzU2hhcmVkKCkpCisgICAgICAg
IGlmICh1c2VTaWduYWxpbmdNZW1vcnkoKSB8fCBtX2luZm8ubWVtb3J5LmlzU2hhcmVkKCkpCiAg
ICAgICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyTGF0ZShSZWdpc3RlclNldCB7IFBpbm5lZFJl
Z2lzdGVySW5mbzo6Z2V0KCkuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIgfSk7CiAgICAgICAg
IHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcihbPSwgdGhpc10gKENDYWxsSGVscGVycyYgaml0LCBj
b25zdCBCMzo6U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKICAgICAgICAgICAg
IEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcAppbmRleCA1
NzBkZjM2ZmIyNDlhZjkzZWUwOWU0NTVlZGNlZDAxMDUwMzlmZjliLi5jNDc1NjkzYzAxMGVmM2Fl
OTQ3OTMwMzdlNmVhOGZmMzdhYWIyZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCkBAIC01MjMsNiArNTIzLDE1IEBAIHByaXZhdGU6
CiAgICAgICAgIHJldHVybiBzZXQoZHN0LCBnZXQoc3JjKSk7CiAgICAgfQogCisgICAgYm9vbCB1
c2VTaWduYWxpbmdNZW1vcnkoKSBjb25zdAorICAgIHsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlf
U0lHTkFMSU5HX01FTU9SWSkKKyAgICAgICAgcmV0dXJuIG1fbW9kZSA9PSBNZW1vcnlNb2RlOjpT
aWduYWxpbmc7CisjZWxzZQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAgICB9CisK
ICAgICBGdW5jdGlvblBhcnNlcjxCM0lSR2VuZXJhdG9yPiogbV9wYXJzZXIgeyBudWxscHRyIH07
CiAgICAgY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mIG1faW5mbzsKICAgICBjb25zdCBNZW1vcnlN
b2RlIG1fbW9kZSB7IE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nIH07CkBAIC02MzYsNyArNjQ1
LDcgQEAgQjNJUkdlbmVyYXRvcjo6QjNJUkdlbmVyYXRvcihjb25zdCBNb2R1bGVJbmZvcm1hdGlv
biYgaW5mbywgUHJvY2VkdXJlJiBwcm9jZWR1cmUKICAgICBpZiAoIUNvbnRleHQ6OnVzZUZhc3RU
TFMoKSkKICAgICAgICAgbV9wcm9jLnBpblJlZ2lzdGVyKG1fd2FzbUNvbnRleHRJbnN0YW5jZUdQ
Uik7CiAKLSAgICBpZiAobW9kZSAhPSBNZW1vcnlNb2RlOjpTaWduYWxpbmcpIHsKKyAgICBpZiAo
bW9kZSA9PSBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykgewogICAgICAgICBtX2JvdW5kc0No
ZWNraW5nU2l6ZUdQUiA9IHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXI7CiAg
ICAgICAgIG1fcHJvYy5waW5SZWdpc3RlcihtX2JvdW5kc0NoZWNraW5nU2l6ZUdQUik7CiAgICAg
fQpAQCAtNjQ4LDkgKzY1NywxMSBAQCBCM0lSR2VuZXJhdG9yOjpCM0lSR2VuZXJhdG9yKGNvbnN0
IE1vZHVsZUluZm9ybWF0aW9uJiBpbmZvLCBQcm9jZWR1cmUmIHByb2NlZHVyZQogICAgICAgICAg
ICAgY2FzZSBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZzoKICAgICAgICAgICAgICAgICBBU1NF
UlRfVU5VU0VEKHBpbm5lZEdQUiwgbV9ib3VuZHNDaGVja2luZ1NpemVHUFIgPT0gcGlubmVkR1BS
KTsKICAgICAgICAgICAgICAgICBicmVhazsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFM
SU5HX01FTU9SWSkKICAgICAgICAgICAgIGNhc2UgTWVtb3J5TW9kZTo6U2lnbmFsaW5nOgogICAg
ICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQocGlubmVkR1BSLCBJbnZhbGlkR1BSUmVnID09IHBp
bm5lZEdQUik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIHRoaXMtPmVtaXRFeGNlcHRpb25DaGVjayhqaXQsIEV4Y2VwdGlvblR5cGU6
Ok91dE9mQm91bmRzTWVtb3J5QWNjZXNzKTsKICAgICAgICAgfSk7CkBAIC05MTIsOSArOTIzLDEz
IEBAIGF1dG8gQjNJUkdlbmVyYXRvcjo6YWRkQXJndW1lbnRzKGNvbnN0IFNpZ25hdHVyZSYgc2ln
bmF0dXJlKSAtPiBQYXJ0aWFsUmVzdWx0CiAgICAgICAgIEIzOjpUeXBlIHR5cGUgPSB0b0IzVHlw
ZShzaWduYXR1cmUuYXJndW1lbnQoaSkpOwogICAgICAgICBCMzo6VmFsdWUqIGFyZ3VtZW50Owog
ICAgICAgICBhdXRvIHJlcCA9IHdhc21DYWxsSW5mby5wYXJhbXNbaV07Ci0gICAgICAgIGlmIChy
ZXAuaXNSZWcoKSkgewotICAgICAgICAgICAgYXJndW1lbnQgPSBtX2N1cnJlbnRCbG9jay0+YXBw
ZW5kTmV3PEIzOjpBcmd1bWVudFJlZ1ZhbHVlPihtX3Byb2MsIE9yaWdpbigpLCByZXAucmVnKCkp
OwotICAgICAgICAgICAgaWYgKHR5cGUgPT0gQjM6OkludDMyIHx8IHR5cGUgPT0gQjM6OkZsb2F0
KQorICAgICAgICBpZiAocmVwLmlzR1BSKCkpIHsKKyAgICAgICAgICAgIGFyZ3VtZW50ID0gbV9j
dXJyZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6QXJndW1lbnRSZWdWYWx1ZT4obV9wcm9jLCBPcmln
aW4oKSwgcmVwLmpzcigpLnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICBpZiAodHlwZSA9PSBC
Mzo6SW50MzIpCisgICAgICAgICAgICAgICAgYXJndW1lbnQgPSBtX2N1cnJlbnRCbG9jay0+YXBw
ZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6VHJ1bmMsIE9yaWdpbigpLCBhcmd1bWVudCk7
CisgICAgICAgIH0gZWxzZSBpZiAocmVwLmlzRlBSKCkpIHsKKyAgICAgICAgICAgIGFyZ3VtZW50
ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6QXJndW1lbnRSZWdWYWx1ZT4obV9wcm9j
LCBPcmlnaW4oKSwgcmVwLmZwcigpKTsKKyAgICAgICAgICAgIGlmICh0eXBlID09IEIzOjpGbG9h
dCkKICAgICAgICAgICAgICAgICBhcmd1bWVudCA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8
QjM6OlZhbHVlPihtX3Byb2MsIEIzOjpUcnVuYywgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChyZXAuaXNTdGFjaygpKTsKQEAgLTE0NDMs
NiArMTQ1OCw3IEBAIGlubGluZSBWYWx1ZSogQjNJUkdlbmVyYXRvcjo6ZW1pdENoZWNrQW5kUHJl
cGFyZVBvaW50ZXIoVmFsdWUqIHBvaW50ZXIsIHVpbnQzMl90CiAgICAgICAgIGJyZWFrOwogICAg
IH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIGNhc2Ug
TWVtb3J5TW9kZTo6U2lnbmFsaW5nOiB7CiAgICAgICAgIC8vIFdlJ3ZlIHZpcnR1YWxseSBtYXBw
ZWQgNEdpQityZWR6b25lIGZvciB0aGlzIG1lbW9yeS4gT25seSB0aGUgdXNlci1hbGxvY2F0ZWQg
cGFnZXMgYXJlIGFkZHJlc3NhYmxlLCBjb250aWd1b3VzbHkgaW4gcmFuZ2UgWzAsIGN1cnJlbnRd
LAogICAgICAgICAvLyBhbmQgZXZlcnl0aGluZyBhYm92ZSBpcyBtYXBwZWQgUFJPVF9OT05FLiBX
ZSBkb24ndCBuZWVkIHRvIHBlcmZvcm0gYW55IGV4cGxpY2l0IGJvdW5kcyBjaGVjayBpbiB0aGUg
NEdpQiByYW5nZSBiZWNhdXNlIFdlYkFzc2VtYmx5IHJlZ2lzdGVyCkBAIC0xNDYwLDYgKzE0NzYs
NyBAQCBpbmxpbmUgVmFsdWUqIEIzSVJHZW5lcmF0b3I6OmVtaXRDaGVja0FuZFByZXBhcmVQb2lu
dGVyKFZhbHVlKiBwb2ludGVyLCB1aW50MzJfdAogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KKyNlbmRpZgogICAgIH0KIAogICAgIHBvaW50ZXIgPSBtX2N1cnJlbnRCbG9jay0+YXBw
ZW5kTmV3PFZhbHVlPihtX3Byb2MsIFpFeHQzMiwgb3JpZ2luKCksIHBvaW50ZXIpOwpAQCAtMTQ5
Myw3ICsxNTEwLDcgQEAgaW5saW5lIHVpbnQzMl90IHNpemVPZkxvYWRPcChMb2FkT3BUeXBlIG9w
KQogCiBpbmxpbmUgQjM6OktpbmQgQjNJUkdlbmVyYXRvcjo6bWVtb3J5S2luZChCMzo6T3Bjb2Rl
IG1lbW9yeU9wKQogewotICAgIGlmIChtX21vZGUgPT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nIHx8
IG1faW5mby5tZW1vcnkuaXNTaGFyZWQoKSkKKyAgICBpZiAodXNlU2lnbmFsaW5nTWVtb3J5KCkg
fHwgbV9pbmZvLm1lbW9yeS5pc1NoYXJlZCgpKQogICAgICAgICByZXR1cm4gdHJhcHBpbmcobWVt
b3J5T3ApOwogICAgIHJldHVybiBtZW1vcnlPcDsKIH0KQEAgLTI5NzcsNyArMjk5NCw3IEBAIGF1
dG8gQjNJUkdlbmVyYXRvcjo6YWRkQ2FsbCh1aW50MzJfdCBmdW5jdGlvbkluZGV4LCBjb25zdCBT
aWduYXR1cmUmIHNpZ25hdHVyZSwKICAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5lZmZlY3Rz
LnJlYWRzUGlubmVkID0gdHJ1ZTsKIAogICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gY2xv
YmJlciB0aGUgc2l6ZSByZWdpc3RlciBzaW5jZSB0aGUgTExJbnQgYWx3YXlzIGJvdW5kcyBjaGVj
a3MKLSAgICAgICAgICAgICAgICBpZiAobV9tb2RlID09IE1lbW9yeU1vZGU6OlNpZ25hbGluZyB8
fCBtX2luZm8ubWVtb3J5LmlzU2hhcmVkKCkpCisgICAgICAgICAgICAgICAgaWYgKHVzZVNpZ25h
bGluZ01lbW9yeSgpIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQoKSkKICAgICAgICAgICAgICAg
ICAgICAgcGF0Y2hwb2ludC0+Y2xvYmJlckxhdGUoUmVnaXN0ZXJTZXQgeyBQaW5uZWRSZWdpc3Rl
ckluZm86OmdldCgpLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyIH0pOwogICAgICAgICAgICAg
ICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcihbdGhpcywgaGFuZGxlLCB1bmxpbmtlZFdhc21U
b1dhc21DYWxscywgZnVuY3Rpb25JbmRleF0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBCMzo6
U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKICAgICAgICAgICAgICAgICAgICAg
QWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwCmluZGV4IGVkYzcwYmVhMDhhZjJi
ODMyYzJmMTllYWViNDQ2ZWIyYzQ1OGRmM2UuLjMyNzI4OTk0OWFkZDg0NDEzMWQwZDJkNjI2ZmY1
ODUzMGJkMTIxZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21C
aW5kaW5nLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQmluZGluZy5j
cHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAKICNpbmNsdWRl
ICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlICJEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVy
VXNhZ2UuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2FzbUNhbGxpbmdD
b252ZW50aW9uLmgiCiAjaW5jbHVkZSAiV2FzbUluc3RhbmNlLmgiCkBAIC00MSwxOCArNDIsMjEg
QEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRp
bmdGYWlsdXJlPiB3YXNtVG9XYXNtKHVuc2kKIHsKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgdW5p
cXVpZnkgdGhlIHN0dWJzIGJhc2VkIG9uIHNpZ25hdHVyZSArIGluZGV4IHRvIHNlZSBpZiB0aGlz
IHNhdmVzIG1lbW9yeS4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTg0MTU3Ci0KLSAgICBjb25zdCBQaW5uZWRSZWdpc3RlckluZm8mIHBpbm5lZFJlZ3Mg
PSBQaW5uZWRSZWdpc3RlckluZm86OmdldCgpOwogICAgIEpJVCBqaXQ7CiAKICAgICBHUFJSZWcg
c2NyYXRjaCA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMF07
CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBHUFJSZWcgYmFzZU1lbW9yeSA9IHdhc21DYWxs
aW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMV07CisgICAgR1BSUmVnIHNpemVS
ZWdBc1NjcmF0Y2ggPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJz
WzJdOworI2Vsc2UKKyAgICBjb25zdCBQaW5uZWRSZWdpc3RlckluZm8mIHBpbm5lZFJlZ3MgPSBQ
aW5uZWRSZWdpc3RlckluZm86OmdldCgpOwogICAgIEdQUlJlZyBiYXNlTWVtb3J5ID0gcGlubmVk
UmVncy5iYXNlTWVtb3J5UG9pbnRlcjsKLSAgICBBU1NFUlQoYmFzZU1lbW9yeSAhPSBHUFJSZWc6
OkludmFsaWRHUFJSZWcpOwotICAgIEFTU0VSVChiYXNlTWVtb3J5ICE9IHNjcmF0Y2gpOwotICAg
IEFTU0VSVChwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyICE9IGJhc2VNZW1v
cnkpOwotICAgIEFTU0VSVChwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyICE9
IHNjcmF0Y2gpOwogICAgIEdQUlJlZyBzaXplUmVnQXNTY3JhdGNoID0gcGlubmVkUmVncy5ib3Vu
ZHNDaGVja2luZ1NpemVSZWdpc3RlcjsKKyNlbmRpZgorICAgIEFTU0VSVChiYXNlTWVtb3J5ICE9
IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7CiAgICAgQVNTRVJUKHNpemVSZWdBc1NjcmF0Y2ggIT0g
R1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsKKyAgICBBU1NFUlQoc2NyYXRjaCAhPSBHUFJSZWc6Oklu
dmFsaWRHUFJSZWcpOworICAgIEFTU0VSVChub092ZXJsYXAoc2NyYXRjaCwgYmFzZU1lbW9yeSwg
c2l6ZVJlZ0FzU2NyYXRjaCkpOwogCiAgICAgLy8gQjMncyBjYWxsIGNvZGVnZW4gZW5zdXJlcyB0
aGF0IHRoZSBKU0NlbGwgaXMgYSBXZWJBc3NlbWJseUZ1bmN0aW9uLgogICAgIGppdC5sb2FkV2Fz
bUNvbnRleHRJbnN0YW5jZShzaXplUmVnQXNTY3JhdGNoKTsgLy8gT2xkIEluc3RhbmNlKgpAQCAt
NjUsNiArNjksNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRy
VGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub1dhc20odW5zaQogICAgIGppdC5sb2FkUHRyKEpJ
VDo6QWRkcmVzcyhzaXplUmVnQXNTY3JhdGNoLCBJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRTdGFj
a0xpbWl0KCkpLCBzaXplUmVnQXNTY3JhdGNoKTsKICAgICBqaXQuc3RvcmVQdHIoc2l6ZVJlZ0Fz
U2NyYXRjaCwgSklUOjpBZGRyZXNzKGJhc2VNZW1vcnksIEluc3RhbmNlOjpvZmZzZXRPZkNhY2hl
ZFN0YWNrTGltaXQoKSkpOwogCisjaWYgIUNQVShBUk0pIC8vIEFSTSBoYXMgbm8gcGlubmVkIHJl
Z2lzdGVycyBmb3IgV2FzbSBNZW1vcnksIHNvIG5vIG5lZWQgdG8gc2V0IHRoZW0gdXAKICAgICAv
LyBGSVhNRSB0aGUgZm9sbG93aW5nIGNvZGUgYXNzdW1lcyB0aGF0IGFsbCBXYXNtOjpJbnN0YW5j
ZSBoYXZlIHRoZSBzYW1lIHBpbm5lZCByZWdpc3RlcnMuIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjI5NTIKICAgICAvLyBTZXQgdXAgdGhlIGNhbGxlZSdzIGJhc2VN
ZW1vcnkgcmVnaXN0ZXIgYXMgd2VsbCBhcyB0aGUgbWVtb3J5IHNpemUgcmVnaXN0ZXJzLgogICAg
IHsKQEAgLTcyLDYgKzc3LDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21F
bnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9XYXNtKHVuc2kKICAgICAgICAgaml0
LmxvYWRQdHIoSklUOjpBZGRyZXNzKGJhc2VNZW1vcnksIFdhc206Okluc3RhbmNlOjpvZmZzZXRP
ZkNhY2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7IC8vIFdhc206Ok1lbW9yeTo6VGFnZ2VkQXJy
YXlTdG9yYWdlUHRyPHZvaWQ+ICh2b2lkKikuCiAgICAgICAgIGppdC5jYWdlQ29uZGl0aW9uYWxs
eUFuZFVudGFnKEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJhc2VNZW1vcnksIHBpbm5lZFJlZ3MuYm91
bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIsIHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3Vl
U2NyYXRjaEdQUnNbMV0pOwogICAgIH0KKyNlbmRpZgogCiAgICAgLy8gVGFpbCBjYWxsIGludG8g
dGhlIGNhbGxlZSBXZWJBc3NlbWJseSBmdW5jdGlvbi4KICAgICBqaXQubG9hZFB0cihKSVQ6OkFk
ZHJlc3Moc2NyYXRjaCksIHNjcmF0Y2gpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUNhbGxlZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
Q2FsbGVlLmNwcAppbmRleCBhMzIxYzUyZjE1ZWNhNTIyMTNlY2Q2ZWU5MjE3MjcxOTgxMWIzMjVh
Li4zMjAyZjU0ODBjYTQxMmYyNzI5NDllMTU0YjJiMjI2ZWU2OTAwY2FkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcApAQCAtMTMxLDYgKzEzMSw4IEBAIFJlZ2lz
dGVyQXRPZmZzZXRMaXN0KiBMTEludENhbGxlZTo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpCiAgICAg
ICAgIHJlZ2lzdGVycy5zZXQoR1BSSW5mbzo6cmVnQ1MyKTsgLy8gUEIKICNlbGlmIENQVShBUk02
NCkgfHwgQ1BVKFJJU0NWNjQpCiAgICAgICAgIHJlZ2lzdGVycy5zZXQoR1BSSW5mbzo6cmVnQ1M3
KTsgLy8gUEIKKyNlbGlmIENQVShBUk0pCisgICAgICAgIHJlZ2lzdGVycy5zZXQoR1BSSW5mbzo6
cmVnQ1MxKTsgLy8gUEIKICNlbHNlCiAjZXJyb3IgVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlLgog
I2VuZGlmCkBAIC0xNTgsNiArMTYwLDcgQEAgY29uc3QgV2FzbUluc3RydWN0aW9uKiBMTEludENh
bGxlZTo6b3V0T2ZMaW5lSnVtcFRhcmdldChjb25zdCBXYXNtSW5zdHJ1Y3Rpb24qIHAKICAgICBy
ZXR1cm4gbV9pbnN0cnVjdGlvbnMtPmF0KG9mZnNldCArIHRhcmdldCkucHRyKCk7CiB9CiAKKyNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCiB2b2lkIE9wdGltaXppbmdKSVRDYWxsZWU6Omxp
bmtFeGNlcHRpb25IYW5kbGVycyhWZWN0b3I8VW5saW5rZWRIYW5kbGVySW5mbz4gdW5saW5rZWRF
eGNlcHRpb25IYW5kbGVycywgVmVjdG9yPENvZGVMb2NhdGlvbkxhYmVsPEV4Y2VwdGlvbkhhbmRs
ZXJQdHJUYWc+PiBleGNlcHRpb25IYW5kbGVyTG9jYXRpb25zKQogewogICAgIHNpemVfdCBjb3Vu
dCA9IHVubGlua2VkRXhjZXB0aW9uSGFuZGxlcnMuc2l6ZSgpOwpAQCAtMTg0LDcgKzE4Nyw3IEBA
IGNvbnN0IFN0YWNrTWFwJiBPcHRpbWl6aW5nSklUQ2FsbGVlOjpzdGFja21hcChDYWxsU2l0ZUlu
ZGV4IGNhbGxTaXRlSW5kZXgpIGNvbnN0CiAgICAgUkVMRUFTRV9BU1NFUlQoaXRlciAhPSBtX3N0
YWNrbWFwcy5lbmQoKSk7CiAgICAgcmV0dXJuIGl0ZXItPnZhbHVlOwogfQotCisjZW5kaWYKIAog
fSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUNhbGxlZUdyb3VwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21DYWxsZWVHcm91cC5jcHAKaW5kZXggMWVhNDVjYTRhNmU5MWQwM2E5NzBlYmI1ZDVm
ZDJiMmNmOWRmY2YwYS4uNTE5ZDIwOTZhZDYyN2NiYjNiZTg4MzlkN2U0ODJiODE5ODhmYmEyMCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZUdyb3VwLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlR3JvdXAuY3BwCkBA
IC0xNjAsMTcgKzE2MCwyMSBAQCB2b2lkIENhbGxlZUdyb3VwOjpjb21waWxlQXN5bmMoQ29udGV4
dCogY29udGV4dCwgQXN5bmNDb21waWxhdGlvbkNhbGxiYWNrJiYgdGFzawogCiBib29sIENhbGxl
ZUdyb3VwOjppc1NhZmVUb1J1bihNZW1vcnlNb2RlIG1lbW9yeU1vZGUpCiB7CisgICAgVU5VU0VE
X1BBUkFNKG1lbW9yeU1vZGUpOworCiAgICAgaWYgKCFydW5uYWJsZSgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBzd2l0Y2ggKG1fbW9kZSkgewogICAgIGNhc2UgV2FzbTo6TWVtb3J5
TW9kZTo6Qm91bmRzQ2hlY2tpbmc6CiAgICAgICAgIHJldHVybiB0cnVlOworI2lmIEVOQUJMRShX
RUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIGNhc2UgV2FzbTo6TWVtb3J5TW9kZTo6
U2lnbmFsaW5nOgogICAgICAgICAvLyBDb2RlIGJlaW5nIGluIFNpZ25hbGluZyBtb2RlIG1lYW5z
IHRoYXQgaXQgcGVyZm9ybXMgbm8gYm91bmRzIGNoZWNrcy4KICAgICAgICAgLy8gSXRzIG1lbW9y
eSwgZXZlbiBpZiBlbXB0eSwgYWJzb2x1dGVseSBtdXN0IGFsc28gYmUgaW4gU2lnbmFsaW5nIG1v
ZGUKICAgICAgICAgLy8gYmVjYXVzZSB0aGUgcGFnZSBwcm90ZWN0aW9uIGRldGVjdHMgb3V0LW9m
LWJvdW5kcyBhY2Nlc3Nlcy4KICAgICAgICAgcmV0dXJuIG1lbW9yeU1vZGUgPT0gV2FzbTo6TWVt
b3J5TW9kZTo6U2lnbmFsaW5nOworI2VuZGlmCiAgICAgfQogICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5jcHAKaW5kZXggMjAzYzg0M2FlOGU2
M2VjZGZiNDg5YTRhZDY2NTNlZWZlMTFkZDRiYy4uZWIwOTA5NTgxODQwMTg4MzkzZDVjZWYzNzM0
MTg0YmIyMTI4ODVkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUNhbGxpbmdDb252ZW50aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwCkBAIC00MCw3ICs0MCw3IEBAIGNvbnN0IEpTQ2FsbGlu
Z0NvbnZlbnRpb24mIGpzQ2FsbGluZ0NvbnZlbnRpb24oKQogICAgICAgICBSZWdpc3RlclNldCBj
YWxsZXJTYXZlUmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQ6OmFsbFJlZ2lzdGVycygpOwogICAgICAg
ICBjYWxsZXJTYXZlUmVnaXN0ZXJzLmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdp
c3RlcnMoKSk7CiAKLSAgICAgICAgc3RhdGljSlNDYWxsaW5nQ29udmVudGlvbi5jb25zdHJ1Y3Qo
VmVjdG9yPFJlZz4oKSwgVmVjdG9yPFJlZz4oKSwgUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdp
c3RlcnMoKSwgV1RGTW92ZShjYWxsZXJTYXZlUmVnaXN0ZXJzKSk7CisgICAgICAgIHN0YXRpY0pT
Q2FsbGluZ0NvbnZlbnRpb24uY29uc3RydWN0KFZlY3RvcjxKU1ZhbHVlUmVncz4oKSwgVmVjdG9y
PEZQUlJlZz4oKSwgUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKSwgV1RGTW92ZShj
YWxsZXJTYXZlUmVnaXN0ZXJzKSk7CiAgICAgfSk7CiAKICAgICByZXR1cm4gc3RhdGljSlNDYWxs
aW5nQ29udmVudGlvbjsKQEAgLTUxLDMxICs1MSw1MSBAQCBjb25zdCBXYXNtQ2FsbGluZ0NvbnZl
bnRpb24mIHdhc21DYWxsaW5nQ29udmVudGlvbigpCiAgICAgc3RhdGljIExhenlOZXZlckRlc3Ry
b3llZDxXYXNtQ2FsbGluZ0NvbnZlbnRpb24+IHN0YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbjsK
ICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgc3RhdGljV2FzbUNhbGxpbmdDb252ZW50aW9uRmxh
ZzsKICAgICBzdGQ6OmNhbGxfb25jZShzdGF0aWNXYXNtQ2FsbGluZ0NvbnZlbnRpb25GbGFnLCBb
XSAoKSB7Ci0gICAgICAgIFZlY3RvcjxSZWc+IGdwckFyZ3VtZW50UmVnaXN0ZXJzKEdQUkluZm86
Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgR1BSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVyczsgKytpKQotICAgICAgICAg
ICAgZ3ByQXJndW1lbnRSZWdpc3RlcnNbaV0gPSBHUFJJbmZvOjp0b0FyZ3VtZW50UmVnaXN0ZXIo
aSk7CisjaWYgVVNFKEpTVkFMVUU2NCkgLy8gT25lIHZhbHVlIHBlciBHUFIKKyAgICAgICAgY29u
c3RleHByIHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRKU1JzID0gR1BSSW5mbzo6bnVtYmVyT2ZB
cmd1bWVudFJlZ2lzdGVyczsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpIC8vIE9uZSB2YWx1ZSBw
ZXIgY29uc2VjdXRpdmUgR1BSIHBhaXIKKyAgICAgICAgY29uc3RleHByIHVuc2lnbmVkIG51bWJl
ck9mQXJndW1lbnRKU1JzID0gR1BSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyAvIDI7
CisjZW5kaWYKKyAgICAgICAgVmVjdG9yPEpTVmFsdWVSZWdzPiBqc3JBcmd1bWVudFJlZ2lzdGVy
cyhudW1iZXJPZkFyZ3VtZW50SlNScyk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBudW1iZXJPZkFyZ3VtZW50SlNSczsgKytpKSB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAg
ICAgICAgIGpzckFyZ3VtZW50UmVnaXN0ZXJzW2ldID0gSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjp0
b0FyZ3VtZW50UmVnaXN0ZXIoaSkgfTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAg
ICAgICBqc3JBcmd1bWVudFJlZ2lzdGVyc1tpXSA9IEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6dG9B
cmd1bWVudFJlZ2lzdGVyKDIgKiBpICsgMSksIEdQUkluZm86OnRvQXJndW1lbnRSZWdpc3Rlcigy
ICogaSkgfTsKKyNlbmRpZgorICAgICAgICB9CiAKLSAgICAgICAgVmVjdG9yPFJlZz4gZnByQXJn
dW1lbnRSZWdpc3RlcnMoRlBSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyk7CisgICAg
ICAgIFZlY3RvcjxGUFJSZWc+IGZwckFyZ3VtZW50UmVnaXN0ZXJzKEZQUkluZm86Om51bWJlck9m
QXJndW1lbnRSZWdpc3RlcnMpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgRlBS
SW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVyczsgKytpKQogICAgICAgICAgICAgZnByQXJn
dW1lbnRSZWdpc3RlcnNbaV0gPSBGUFJJbmZvOjp0b0FyZ3VtZW50UmVnaXN0ZXIoaSk7CiAKICAg
ICAgICAgUmVnaXN0ZXJTZXQgc2NyYXRjaCA9IFJlZ2lzdGVyU2V0OjphbGxHUFJzKCk7Ci0gICAg
ICAgIHNjcmF0Y2guZXhjbHVkZShSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpKTsK
KyAgICAgICAgc2NyYXRjaC5leGNsdWRlKFJlZ2lzdGVyU2V0Ojp2bUNhbGxlZVNhdmVSZWdpc3Rl
cnMoKSk7CiAgICAgICAgIHNjcmF0Y2guZXhjbHVkZShSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNo
UmVnaXN0ZXJzKCkpOwogICAgICAgICBzY3JhdGNoLmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6OnJlc2Vy
dmVkSGFyZHdhcmVSZWdpc3RlcnMoKSk7CiAgICAgICAgIHNjcmF0Y2guZXhjbHVkZShSZWdpc3Rl
clNldDo6c3RhY2tSZWdpc3RlcnMoKSk7Ci0gICAgICAgIGZvciAoUmVnIHJlZyA6IGdwckFyZ3Vt
ZW50UmVnaXN0ZXJzKQotICAgICAgICAgICAgc2NyYXRjaC5jbGVhcihyZWcpOworICAgICAgICBm
b3IgKEpTVmFsdWVSZWdzIGpzciA6IGpzckFyZ3VtZW50UmVnaXN0ZXJzKSB7CisgICAgICAgICAg
ICBzY3JhdGNoLmNsZWFyKGpzci5wYXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQp
CisgICAgICAgICAgICBzY3JhdGNoLmNsZWFyKGpzci50YWdHUFIoKSk7CisjZW5kaWYKKyAgICAg
ICAgfQogCiAgICAgICAgIFZlY3RvcjxHUFJSZWc+IHNjcmF0Y2hHUFJzOwogICAgICAgICBmb3Ig
KFJlZyByZWcgOiBzY3JhdGNoKQogICAgICAgICAgICAgc2NyYXRjaEdQUnMuYXBwZW5kKHJlZy5n
cHIoKSk7CisKKyAgICAgICAgLy8gTmVlZCBhdCBsZWFzdCBvbmUgSlNWYWx1ZSBhbmQgYW4gYWRk
aXRpb25hbCBHUFIKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBSRUxFQVNFX0FTU0VSVChz
Y3JhdGNoR1BScy5zaXplKCkgPj0gMik7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAg
ICBSRUxFQVNFX0FTU0VSVChzY3JhdGNoR1BScy5zaXplKCkgPj0gMyk7CisjZW5kaWYKIAogICAg
ICAgICBSZWdpc3RlclNldCBjYWxsZXJTYXZlUmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQ6OmFsbFJl
Z2lzdGVycygpOwogICAgICAgICBjYWxsZXJTYXZlUmVnaXN0ZXJzLmV4Y2x1ZGUoUmVnaXN0ZXJT
ZXQ6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKSk7CiAKLSAgICAgICAgc3RhdGljV2FzbUNhbGxpbmdD
b252ZW50aW9uLmNvbnN0cnVjdChXVEZNb3ZlKGdwckFyZ3VtZW50UmVnaXN0ZXJzKSwgV1RGTW92
ZShmcHJBcmd1bWVudFJlZ2lzdGVycyksIFdURk1vdmUoc2NyYXRjaEdQUnMpLCBSZWdpc3RlclNl
dDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpLCBXVEZNb3ZlKGNhbGxlclNhdmVSZWdpc3RlcnMpKTsK
KyAgICAgICAgc3RhdGljV2FzbUNhbGxpbmdDb252ZW50aW9uLmNvbnN0cnVjdChXVEZNb3ZlKGpz
ckFyZ3VtZW50UmVnaXN0ZXJzKSwgV1RGTW92ZShmcHJBcmd1bWVudFJlZ2lzdGVycyksIFdURk1v
dmUoc2NyYXRjaEdQUnMpLCBSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpLCBXVEZN
b3ZlKGNhbGxlclNhdmVSZWdpc3RlcnMpKTsKICAgICB9KTsKIAogICAgIHJldHVybiBzdGF0aWNX
YXNtQ2FsbGluZ0NvbnZlbnRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21DYWxsaW5nQ29udmVudGlvbi5oCmluZGV4IDU5MWVlYjI3YjAxNjkwMDdhZmExODNkNDMy
NzI5ZmEwY2E1NmFkODEuLjE5Y2YwMmFhMzMwMmU1NGI0YzQwYjFmYjhmOGVkNTU0MTcwY2IzMTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVu
dGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVu
dGlvbi5oCkBAIC01Nyw4ICs1NywxMyBAQCBzdHJ1Y3QgQ2FsbEluZm9ybWF0aW9uIHsKICAgICB7
CiAgICAgICAgIFJlZ2lzdGVyU2V0IHVzZWRSZXN1bHRSZWdpc3RlcnM7CiAgICAgICAgIGZvciAo
VmFsdWVMb2NhdGlvbiBsb2MgOiByZXN1bHRzKSB7Ci0gICAgICAgICAgICBpZiAobG9jLmlzUmVn
KCkpCi0gICAgICAgICAgICAgICAgdXNlZFJlc3VsdFJlZ2lzdGVycy5zZXQobG9jLnJlZygpKTsK
KyAgICAgICAgICAgIGlmIChsb2MuaXNHUFIoKSkgeworICAgICAgICAgICAgICAgIHVzZWRSZXN1
bHRSZWdpc3RlcnMuc2V0KGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVF
MzJfNjQpCisgICAgICAgICAgICAgICAgdXNlZFJlc3VsdFJlZ2lzdGVycy5zZXQobG9jLmpzcigp
LnRhZ0dQUigpKTsKKyNlbmRpZgorICAgICAgICAgICAgfSBlbHNlIGlmIChsb2MuaXNGUFIoKSkK
KyAgICAgICAgICAgICAgICB1c2VkUmVzdWx0UmVnaXN0ZXJzLnNldChsb2MuZnByKCkpOwogICAg
ICAgICB9CiAKICAgICAgICAgUmVnaXN0ZXJBdE9mZnNldExpc3Qgc2F2ZWRSZWdzKHVzZWRSZXN1
bHRSZWdpc3RlcnMsIFJlZ2lzdGVyQXRPZmZzZXRMaXN0OjpaZXJvQmFzZWQpOwpAQCAtNzcsOCAr
ODIsOCBAQCBjbGFzcyBXYXNtQ2FsbGluZ0NvbnZlbnRpb24gewogcHVibGljOgogICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgaGVhZGVyU2l6ZUluQnl0ZXMgPSBDYWxsRnJhbWU6OmhlYWRl
clNpemVJblJlZ2lzdGVycyAqIHNpemVvZihSZWdpc3Rlcik7CiAKLSAgICBXYXNtQ2FsbGluZ0Nv
bnZlbnRpb24oVmVjdG9yPFJlZz4mJiBncHJzLCBWZWN0b3I8UmVnPiYmIGZwcnMsIFZlY3RvcjxH
UFJSZWc+JiYgc2NyYXRjaGVzLCBSZWdpc3RlclNldCYmIGNhbGxlZVNhdmVzLCBSZWdpc3RlclNl
dCYmIGNhbGxlclNhdmVzKQotICAgICAgICA6IGdwckFyZ3MoV1RGTW92ZShncHJzKSkKKyAgICBX
YXNtQ2FsbGluZ0NvbnZlbnRpb24oVmVjdG9yPEpTVmFsdWVSZWdzPiYmIGpzcnMsIFZlY3RvcjxG
UFJSZWc+JiYgZnBycywgVmVjdG9yPEdQUlJlZz4mJiBzY3JhdGNoZXMsIFJlZ2lzdGVyU2V0JiYg
Y2FsbGVlU2F2ZXMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVyU2F2ZXMpCisgICAgICAgIDoganNyQXJn
cyhXVEZNb3ZlKGpzcnMpKQogICAgICAgICAsIGZwckFyZ3MoV1RGTW92ZShmcHJzKSkKICAgICAg
ICAgLCBwcm9sb2d1ZVNjcmF0Y2hHUFJzKFdURk1vdmUoc2NyYXRjaGVzKSkKICAgICAgICAgLCBj
YWxsZWVTYXZlUmVnaXN0ZXJzKFdURk1vdmUoY2FsbGVlU2F2ZXMpKQpAQCAtODgsMTAgKzkzLDEx
IEBAIHB1YmxpYzoKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXYXNtQ2FsbGluZ0NvbnZlbnRp
b24pOwogCiBwcml2YXRlOgotICAgIEFyZ3VtZW50TG9jYXRpb24gbWFyc2hhbGxMb2NhdGlvbklt
cGwoQ2FsbFJvbGUgcm9sZSwgY29uc3QgVmVjdG9yPFJlZz4mIHJlZ0FyZ3MsIHNpemVfdCYgY291
bnQsIHNpemVfdCYgc3RhY2tPZmZzZXQpIGNvbnN0CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUmVn
VHlwZT4KKyAgICBBcmd1bWVudExvY2F0aW9uIG1hcnNoYWxsTG9jYXRpb25JbXBsKENhbGxSb2xl
IHJvbGUsIGNvbnN0IFZlY3RvcjxSZWdUeXBlPiYgcmVnQXJncywgc2l6ZV90JiBjb3VudCwgc2l6
ZV90JiBzdGFja09mZnNldCkgY29uc3QKICAgICB7CiAgICAgICAgIGlmIChjb3VudCA8IHJlZ0Fy
Z3Muc2l6ZSgpKQotICAgICAgICAgICAgcmV0dXJuIEFyZ3VtZW50TG9jYXRpb246OnJlZyhyZWdB
cmdzW2NvdW50KytdKTsKKyAgICAgICAgICAgIHJldHVybiBBcmd1bWVudExvY2F0aW9uIHsgcmVn
QXJnc1tjb3VudCsrXSB9OwogCiAgICAgICAgIGNvdW50Kys7CiAgICAgICAgIEFyZ3VtZW50TG9j
YXRpb24gcmVzdWx0ID0gcm9sZSA9PSBDYWxsUm9sZTo6Q2FsbGVyID8gQXJndW1lbnRMb2NhdGlv
bjo6c3RhY2tBcmd1bWVudChzdGFja09mZnNldCkgOiBBcmd1bWVudExvY2F0aW9uOjpzdGFjayhz
dGFja09mZnNldCk7CkBAIC0xMDksNyArMTE1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBU
eXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CiAgICAgICAg
IGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6Ci0gICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2Nh
dGlvbkltcGwocm9sZSwgZ3ByQXJncywgZ3BBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7Cisg
ICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwganNyQXJncywgZ3BB
cmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoK
ICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OgogICAgICAgICAgICAgcmV0dXJuIG1hcnNoYWxs
TG9jYXRpb25JbXBsKHJvbGUsIGZwckFyZ3MsIGZwQXJndW1lbnRDb3VudCwgc3RhY2tPZmZzZXQp
OwpAQCAtMTUzLDggKzE1OSw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAg
ICB9CiAKLSAgICBjb25zdCBWZWN0b3I8UmVnPiBncHJBcmdzOwotICAgIGNvbnN0IFZlY3RvcjxS
ZWc+IGZwckFyZ3M7CisgICAgY29uc3QgVmVjdG9yPEpTVmFsdWVSZWdzPiBqc3JBcmdzOworICAg
IGNvbnN0IFZlY3RvcjxGUFJSZWc+IGZwckFyZ3M7CiAgICAgY29uc3QgVmVjdG9yPEdQUlJlZz4g
cHJvbG9ndWVTY3JhdGNoR1BSczsKICAgICBjb25zdCBSZWdpc3RlclNldCBjYWxsZWVTYXZlUmVn
aXN0ZXJzOwogICAgIGNvbnN0IFJlZ2lzdGVyU2V0IGNhbGxlclNhdmVSZWdpc3RlcnM7CkBAIC0x
NjksOCArMTc1LDggQEAgcHVibGljOgogICAgIC8vIFdhc206OkNvbnRleHQqJ3MgaW5zdGFuY2Uu
CiAgICAgc3RhdGljIGNvbnN0ZXhwciBwdHJkaWZmX3QgaW5zdGFuY2VTdGFja09mZnNldCA9IENh
bGxGcmFtZVNsb3Q6OnRoaXNBcmd1bWVudCAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7CiAKLSAg
ICBKU0NhbGxpbmdDb252ZW50aW9uKFZlY3RvcjxSZWc+JiYgZ3BycywgVmVjdG9yPFJlZz4mJiBm
cHJzLCBSZWdpc3RlclNldCYmIGNhbGxlZVNhdmVzLCBSZWdpc3RlclNldCYmIGNhbGxlclNhdmVz
KQotICAgICAgICA6IGdwckFyZ3MoV1RGTW92ZShncHJzKSkKKyAgICBKU0NhbGxpbmdDb252ZW50
aW9uKFZlY3RvcjxKU1ZhbHVlUmVncz4mJiBncHJzLCBWZWN0b3I8RlBSUmVnPiYmIGZwcnMsIFJl
Z2lzdGVyU2V0JiYgY2FsbGVlU2F2ZXMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVyU2F2ZXMpCisgICAg
ICAgIDoganNyQXJncyhXVEZNb3ZlKGdwcnMpKQogICAgICAgICAsIGZwckFyZ3MoV1RGTW92ZShm
cHJzKSkKICAgICAgICAgLCBjYWxsZWVTYXZlUmVnaXN0ZXJzKFdURk1vdmUoY2FsbGVlU2F2ZXMp
KQogICAgICAgICAsIGNhbGxlclNhdmVSZWdpc3RlcnMoV1RGTW92ZShjYWxsZXJTYXZlcykpCkBA
IC0xNzgsMTAgKzE4NCwxMSBAQCBwdWJsaWM6CiAKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShK
U0NhbGxpbmdDb252ZW50aW9uKTsKIHByaXZhdGU6Ci0gICAgQXJndW1lbnRMb2NhdGlvbiBtYXJz
aGFsbExvY2F0aW9uSW1wbChDYWxsUm9sZSByb2xlLCBjb25zdCBWZWN0b3I8UmVnPiYgcmVnQXJn
cywgc2l6ZV90JiBjb3VudCwgc2l6ZV90JiBzdGFja09mZnNldCkgY29uc3QKKyAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgUmVnVHlwZT4KKyAgICBBcmd1bWVudExvY2F0aW9uIG1hcnNoYWxsTG9jYXRp
b25JbXBsKENhbGxSb2xlIHJvbGUsIGNvbnN0IFZlY3RvcjxSZWdUeXBlPiYgcmVnQXJncywgc2l6
ZV90JiBjb3VudCwgc2l6ZV90JiBzdGFja09mZnNldCkgY29uc3QKICAgICB7CiAgICAgICAgIGlm
IChjb3VudCA8IHJlZ0FyZ3Muc2l6ZSgpKQotICAgICAgICAgICAgcmV0dXJuIEFyZ3VtZW50TG9j
YXRpb246OnJlZyhyZWdBcmdzW2NvdW50KytdKTsKKyAgICAgICAgICAgIHJldHVybiBBcmd1bWVu
dExvY2F0aW9uIHsgcmVnQXJnc1tjb3VudCsrXSB9OwogCiAgICAgICAgIGNvdW50Kys7CiAgICAg
ICAgIEFyZ3VtZW50TG9jYXRpb24gcmVzdWx0ID0gcm9sZSA9PSBDYWxsUm9sZTo6Q2FsbGVyID8g
QXJndW1lbnRMb2NhdGlvbjo6c3RhY2tBcmd1bWVudChzdGFja09mZnNldCkgOiBBcmd1bWVudExv
Y2F0aW9uOjpzdGFjayhzdGFja09mZnNldCk7CkBAIC0xOTksNyArMjA2LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICBjYXNlIFR5cGVLaW5k
OjpSZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6Ci0gICAgICAgICAgICByZXR1
cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwgZ3ByQXJncywgZ3BBcmd1bWVudENvdW50LCBz
dGFja09mZnNldCk7CisgICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9s
ZSwganNyQXJncywgZ3BBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CiAgICAgICAgIGNhc2Ug
VHlwZUtpbmQ6OkYzMjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OgogICAgICAgICAgICAg
cmV0dXJuIG1hcnNoYWxsTG9jYXRpb25JbXBsKHJvbGUsIGZwckFyZ3MsIGZwQXJndW1lbnRDb3Vu
dCwgc3RhY2tPZmZzZXQpOwpAQCAtMjIyLDEyICsyMjksMTIgQEAgcHVibGljOgogICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHNpZ25hdHVyZS5hcmd1bWVudENvdW50KCk7ICsraSkKICAg
ICAgICAgICAgIHBhcmFtcy5hcHBlbmQobWFyc2hhbGxMb2NhdGlvbihyb2xlLCBzaWduYXR1cmUu
YXJndW1lbnQoaSksIGdwQXJndW1lbnRDb3VudCwgZnBBcmd1bWVudENvdW50LCBzdGFja09mZnNl
dCkpOwogCi0gICAgICAgIFZlY3RvcjxBcmd1bWVudExvY2F0aW9uLCAxPiByZXN1bHRzIHsgQXJn
dW1lbnRMb2NhdGlvbjo6cmVnKEdQUkluZm86OnJldHVyblZhbHVlR1BSKSB9OworICAgICAgICBW
ZWN0b3I8QXJndW1lbnRMb2NhdGlvbiwgMT4gcmVzdWx0cyB7IEFyZ3VtZW50TG9jYXRpb24geyBK
U1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiB9IH07CiAgICAgICAgIHJldHVybiBDYWxsSW5mb3JtYXRp
b24oV1RGTW92ZShwYXJhbXMpLCBXVEZNb3ZlKHJlc3VsdHMpLCBzdGFja09mZnNldCk7CiAgICAg
fQogCi0gICAgY29uc3QgVmVjdG9yPFJlZz4gZ3ByQXJnczsKLSAgICBjb25zdCBWZWN0b3I8UmVn
PiBmcHJBcmdzOworICAgIGNvbnN0IFZlY3RvcjxKU1ZhbHVlUmVncz4ganNyQXJnczsKKyAgICBj
b25zdCBWZWN0b3I8RlBSUmVnPiBmcHJBcmdzOwogICAgIGNvbnN0IFJlZ2lzdGVyU2V0IGNhbGxl
ZVNhdmVSZWdpc3RlcnM7CiAgICAgY29uc3QgUmVnaXN0ZXJTZXQgY2FsbGVyU2F2ZVJlZ2lzdGVy
czsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKaW5kZXggOTcwNjNh
YWI5ZTZiN2Y1NjBmZTI4ZDU0MjA2MGM1MmI4ODQ2ZTVkOS4uY2RlOWEzY2E1NjliZDg4NjAzY2E5
ZmY3Mzg2OTM4NThiNTBjZTcyZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUZvcm1hdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3Jt
YXQuaApAQCAtNDQ0LDcgKzQ0NCw5IEBAIHN0cnVjdCBFbnRyeXBvaW50IHsKIHN0cnVjdCBJbnRl
cm5hbEZ1bmN0aW9uIHsKICAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CiAgICAg
VmVjdG9yPENvZGVMb2NhdGlvbkRhdGFMYWJlbFB0cjxXYXNtRW50cnlQdHJUYWc+PiBjYWxsZWVN
b3ZlTG9jYXRpb25zOworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9CM0pJVCkKICAgICBTdGFja01h
cHMgc3RhY2ttYXBzOworI2VuZGlmCiAgICAgVmVjdG9yPFVubGlua2VkSGFuZGxlckluZm8+IGV4
Y2VwdGlvbkhhbmRsZXJzOwogICAgIEVudHJ5cG9pbnQgZW50cnlwb2ludDsKICAgICB1bnNpZ25l
ZCBvc3JFbnRyeVNjcmF0Y2hCdWZmZXJTaXplIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5jcHAKaW5kZXggNDEyMGFlNmE5NDk0ZmQ0NDY5Zjk3
YjhmNDA4OGQ3ZmNhYzMxOGE4OC4uZmIyMWM5MmJmODFmNjE3OWVlM2RmNTlkOGM5MWI5NTUwMWU4
YmI4MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JO
YW1lLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUu
Y3BwCkBAIC0zMCwxNiArMzAsMjMgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsK
IAogSW5kZXhPck5hbWU6OkluZGV4T3JOYW1lKEluZGV4IGluZGV4LCBzdGQ6OnBhaXI8Y29uc3Qg
TmFtZSosIFJlZlB0cjxOYW1lU2VjdGlvbj4+JiYgbmFtZSkKIHsKKyNpZiBVU0UoSlNWQUxVRTY0
KQogICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKG1faW5kZXhOYW1lLmluZGV4KSA9PSBzaXplb2Yo
bV9pbmRleE5hbWUubmFtZSksICJiaXQtdGFnZ2luZyBkZXBlbmRzIG9uIHNpemVzIGJlaW5nIGVx
dWFsIik7Ci0KLSAgICBpZiAoKGluZGV4ICYgYWxsVGFncykgfHwgKGJpdHdpc2VfY2FzdDxJbmRl
eD4obmFtZS5maXJzdCkgJiBhbGxUYWdzKSkKLSAgICAgICAgKnRoaXMgPSBJbmRleE9yTmFtZSgp
OwotICAgIGVsc2UgewotICAgICAgICBpZiAobmFtZS5maXJzdCkKLSAgICAgICAgICAgIG1faW5k
ZXhOYW1lLm5hbWUgPSBuYW1lLmZpcnN0OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2lu
ZGV4TmFtZS5pbmRleCA9IGluZGV4VGFnIHwgaW5kZXg7CisgICAgQVNTRVJUKCEoaW5kZXggJiBh
bGxUYWdzKSk7CisgICAgQVNTRVJUKCEoYml0d2lzZV9jYXN0PEluZGV4PihuYW1lLmZpcnN0KSAm
IGFsbFRhZ3MpKTsKKyAgICBpZiAobmFtZS5maXJzdCkKKyAgICAgICAgbV9pbmRleE5hbWUubmFt
ZSA9IG5hbWUuZmlyc3Q7CisgICAgZWxzZQorICAgICAgICBtX2luZGV4TmFtZS5pbmRleCA9IGlu
ZGV4VGFnIHwgaW5kZXg7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGlmIChuYW1lLmZp
cnN0KSB7CisgICAgICAgIG1faW5kZXhOYW1lLm5hbWUgPSBuYW1lLmZpcnN0OworICAgICAgICBt
X2tpbmQgPSBLaW5kOjpOYW1lOworICAgIH0gZWxzZSB7CisgICAgICAgIG1faW5kZXhOYW1lLmlu
ZGV4ID0gaW5kZXg7CisgICAgICAgIG1fa2luZCA9IEtpbmQ6OkluZGV4OwogICAgIH0KKyNlbmRp
ZgogICAgIG1fbmFtZVNlY3Rpb24gPSBXVEZNb3ZlKG5hbWUuc2Vjb25kKTsKIH0KIApAQCAtNDks
OCArNTYsOCBAQCBTdHJpbmcgbWFrZVN0cmluZyhjb25zdCBJbmRleE9yTmFtZSYgaW9uKQogICAg
ICAgICByZXR1cm4gIndhc20tc3R1YiJfczsKICAgICBjb25zdCBTdHJpbmcgbW9kdWxlTmFtZSA9
IGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1bGVOYW1lLnNpemUoKSA/IFN0cmluZyhpb24ubmFtZVNl
Y3Rpb24oKS0+bW9kdWxlTmFtZS5kYXRhKCksIGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1bGVOYW1l
LnNpemUoKSkgOiBTdHJpbmcoaW9uLm5hbWVTZWN0aW9uKCktPm1vZHVsZUhhc2guZGF0YSgpLCBp
b24ubmFtZVNlY3Rpb24oKS0+bW9kdWxlSGFzaC5zaXplKCkpOwogICAgIGlmIChpb24uaXNJbmRl
eCgpKQotICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhtb2R1bGVOYW1lLCAiLndhc20tZnVuY3Rp
b25bIiwgU3RyaW5nOjpudW1iZXIoaW9uLm1faW5kZXhOYW1lLmluZGV4ICYgfkluZGV4T3JOYW1l
OjppbmRleFRhZyksICddJyk7Ci0gICAgcmV0dXJuIG1ha2VTdHJpbmcobW9kdWxlTmFtZSwgIi53
YXNtLWZ1bmN0aW9uWyIsIFN0cmluZyhpb24ubV9pbmRleE5hbWUubmFtZS0+ZGF0YSgpLCBpb24u
bV9pbmRleE5hbWUubmFtZS0+c2l6ZSgpKSwgJ10nKTsKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJp
bmcobW9kdWxlTmFtZSwgIi53YXNtLWZ1bmN0aW9uWyIsIFN0cmluZzo6bnVtYmVyKGlvbi5pbmRl
eCgpKSwgJ10nKTsKKyAgICByZXR1cm4gbWFrZVN0cmluZyhtb2R1bGVOYW1lLCAiLndhc20tZnVu
Y3Rpb25bIiwgU3RyaW5nKGlvbi5uYW1lKCktPmRhdGEoKSwgaW9uLm5hbWUoKS0+c2l6ZSgpKSwg
J10nKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmgKaW5kZXggNWVlZWZjODhhZjc2ZDRjNGMzMzZh
MTcyMDA3YTZjZmU2MWVhZWU2MS4uMmQ5MDMwMTE4ZjhjMWQyOThhOGNiMzM5ZDliMzkwNDJkM2Ux
MTg3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JO
YW1lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmgK
QEAgLTQwLDE0ICs0MCw2NyBAQCBzdHJ1Y3QgTmFtZVNlY3Rpb247CiBzdHJ1Y3QgSW5kZXhPck5h
bWUgewogICAgIHR5cGVkZWYgc2l6ZV90IEluZGV4OwogCi0gICAgSW5kZXhPck5hbWUoKSB7IG1f
aW5kZXhOYW1lLmluZGV4ID0gZW1wdHlUYWc7IH0KLSAgICBJbmRleE9yTmFtZShJbmRleCwgc3Rk
OjpwYWlyPGNvbnN0IE5hbWUqLCBSZWZQdHI8TmFtZVNlY3Rpb24+PiYmKTsKLSAgICBib29sIGlz
RW1wdHkoKSBjb25zdCB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8SW5kZXg+KG1faW5kZXhOYW1lKSAm
IGVtcHR5VGFnOyB9Ci0gICAgYm9vbCBpc0luZGV4KCkgY29uc3QgeyByZXR1cm4gYml0d2lzZV9j
YXN0PEluZGV4PihtX2luZGV4TmFtZSkgJiBpbmRleFRhZzsgfQotICAgIGJvb2wgaXNOYW1lKCkg
Y29uc3QgeyByZXR1cm4gIShpc0VtcHR5KCkgfHwgaXNOYW1lKCkpOyB9Ci0gICAgTmFtZVNlY3Rp
b24qIG5hbWVTZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lU2VjdGlvbi5nZXQoKTsgfQor
cHJpdmF0ZToKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGVudW0gY2xhc3MgS2luZCA6IHVp
bnQ4X3QgeworICAgICAgICBFbXB0eSwKKyAgICAgICAgSW5kZXgsCisgICAgICAgIE5hbWUKKyAg
ICB9OworI2VuZGlmCitwdWJsaWM6CiAKLSAgICBmcmllbmQgU3RyaW5nIG1ha2VTdHJpbmcoY29u
c3QgSW5kZXhPck5hbWUmKTsKKyAgICBJbmRleE9yTmFtZSgpCisgICAgeworI2lmIFVTRShKU1ZB
TFVFNjQpCisgICAgICAgIG1faW5kZXhOYW1lLmluZGV4ID0gZW1wdHlUYWc7CisjZWxpZiBVU0Uo
SlNWQUxVRTMyXzY0KQorICAgICAgICBtX2tpbmQgPSBLaW5kOjpFbXB0eTsKKyNlbmRpZgorICAg
IH0KKworICAgIEluZGV4T3JOYW1lKEluZGV4LCBzdGQ6OnBhaXI8Y29uc3QgTmFtZSosIFJlZlB0
cjxOYW1lU2VjdGlvbj4+JiYpOworCisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QKKyAgICB7Cisj
aWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxJbmRleD4obV9p
bmRleE5hbWUpICYgZW1wdHlUYWc7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBy
ZXR1cm4gbV9raW5kID09IEtpbmQ6OkVtcHR5OworI2VuZGlmCisgICAgfQorCisgICAgYm9vbCBp
c0luZGV4KCkgY29uc3QKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgcmV0dXJu
IGJpdHdpc2VfY2FzdDxJbmRleD4obV9pbmRleE5hbWUpICYgaW5kZXhUYWc7CisjZWxpZiBVU0Uo
SlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4gbV9raW5kID09IEtpbmQ6OkluZGV4OworI2Vu
ZGlmCisgICAgfQorCisgICAgYm9vbCBpc05hbWUoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuICEoaXNFbXB0eSgpIHx8IGlzSW5kZXgoKSk7CisgICAgfQorCisgICAgSW5kZXggaW5kZXgo
KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzSW5kZXgoKSk7CisjaWYgVVNFKEpTVkFM
VUU2NCkKKyAgICAgICAgcmV0dXJuIG1faW5kZXhOYW1lLmluZGV4ICYgfmluZGV4VGFnOworI2Vs
aWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgcmV0dXJuIG1faW5kZXhOYW1lLmluZGV4Owor
I2VuZGlmCisgICAgfQorCisgICAgY29uc3QgTmFtZSogbmFtZSgpIGNvbnN0CisgICAgeworICAg
ICAgICBBU1NFUlQoaXNOYW1lKCkpOworICAgICAgICByZXR1cm4gbV9pbmRleE5hbWUubmFtZTsK
KyAgICB9CisKKyAgICBOYW1lU2VjdGlvbiogbmFtZVNlY3Rpb24oKSBjb25zdCB7IHJldHVybiBt
X25hbWVTZWN0aW9uLmdldCgpOyB9CiAKIHByaXZhdGU6CiAgICAgdW5pb24gewpAQCAtNTYsMTAg
KzEwOSwxNSBAQCBwcml2YXRlOgogICAgIH0gbV9pbmRleE5hbWU7CiAgICAgUmVmUHRyPE5hbWVT
ZWN0aW9uPiBtX25hbWVTZWN0aW9uOwogCisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAvLyBVc2Ug
dGhlIHRvcCBiaXRzIGFzIHRhZ3MuIE5laXRoZXIgcG9pbnRlcnMgbm9yIHRoZSBmdW5jdGlvbiBp
bmRleCBzcGFjZSBzaG91bGQgdXNlIHRoZW0uCiAgICAgc3RhdGljIGNvbnN0ZXhwciBJbmRleCBp
bmRleFRhZyA9IDF1bGwgPDwgKENIQVJfQklUICogc2l6ZW9mKEluZGV4KSAtIDEpOwogICAgIHN0
YXRpYyBjb25zdGV4cHIgSW5kZXggZW1wdHlUYWcgPSAxdWxsIDw8IChDSEFSX0JJVCAqIHNpemVv
ZihJbmRleCkgLSAyKTsKICAgICBzdGF0aWMgY29uc3RleHByIEluZGV4IGFsbFRhZ3MgPSBpbmRl
eFRhZyB8IGVtcHR5VGFnOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAvLyBVc2UgYW4g
ZXhwbGljaXQgdGFnIGFzIHBvaW50ZXJzIG1pZ2h0IGhhdmUgaGlnaCBiaXRzIHNldAorICAgIEtp
bmQgbV9raW5kOworI2VuZGlmCiB9OwogCiBTdHJpbmcgbWFrZVN0cmluZyhjb25zdCBJbmRleE9y
TmFtZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluc3Rh
bmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaAppbmRleCA3
MTBiODc2ZTIyNDVlM2ZjMWZmZWRjYmVlODhjNDg0MTEwNzFkNTBiLi5kYTYwZDU2NjU4MTY1MDYw
ZDI0Y2UwYmI4OTljNDAxMjAyODAzYjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtSW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtSW5zdGFuY2UuaApAQCAtMTA3LDcgKzEwNyw4IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAg
IGlmIChtX21lbW9yeSAhPSBudWxscHRyKSB7CiAgICAgICAgICAgICBtX2NhY2hlZE1lbW9yeSA9
IENhZ2VkUHRyPEdpZ2FjYWdlOjpQcmltaXRpdmUsIHZvaWQsIHRhZ0NhZ2VkUHRyPihtZW1vcnko
KS0+bWVtb3J5KCksIG1lbW9yeSgpLT5ib3VuZHNDaGVja2luZ1NpemUoKSk7Ci0gICAgICAgICAg
ICBtX2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSA9IG1lbW9yeSgpLT5ib3VuZHNDaGVja2luZ1Np
emUoKTsKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgdXNlZCBieSB0aGUgbm9uLXNpZ25hbGluZyBi
YXNlZCBib3VuZCBjaGVja2luZywgc28gdXNlIHRoZSBhY3R1YWwgc2l6ZSBvZiB0aGUgbWVtb3J5
LgorICAgICAgICAgICAgbV9jYWNoZWRCb3VuZHNDaGVja2luZ1NpemUgPSBtZW1vcnkoKS0+c2l6
ZSgpOwogICAgICAgICAgICAgQVNTRVJUKG1lbW9yeSgpLT5tZW1vcnkoKSA9PSBjYWNoZWRNZW1v
cnkoKSk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcAppbmRleCAxMzU2OTBkYTJkNjBiN2NiYzY5OWJhMjU2
MzRkYjI1ZTQ3YzBkZDAxLi5iNmI0YTQ2OGFhNjVhN2I2OWM0MjhkNmZiZDZkM2M3MzdiNTk4M2Nm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRv
ci5jcHAKQEAgLTMzOCw3ICszMzgsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIG1f
bm9ybWFsaXplZEFyZ3VtZW50c1tpbmRleF07CiAKICAgICAgICAgY29uc3QgYXV0byYgY2FsbGlu
Z0NvbnZlbnRpb24gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKTsKLSAgICAgICAgY29uc3QgdWlu
dDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5ncHJBcmdzLnNpemUoKTsKKyAgICAg
ICAgY29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5qc3JBcmdzLnNp
emUoKTsKICAgICAgICAgY29uc3QgdWludDMyX3QgZnByQ291bnQgPSBjYWxsaW5nQ29udmVudGlv
bi5mcHJBcmdzLnNpemUoKTsKICAgICAgICAgcmV0dXJuIHZpcnR1YWxSZWdpc3RlckZvckxvY2Fs
KGluZGV4IC0gbV9jb2RlQmxvY2stPm1fbnVtQXJndW1lbnRzICsgZ3ByQ291bnQgKyBmcHJDb3Vu
dCArIG51bWJlck9mTExJbnRDYWxsZWVTYXZlUmVnaXN0ZXJzKTsKICAgICB9CkBAIC01OTIsNyAr
NTkyLDcgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVyKGNv
bnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAtPiBMTEkKICAgICBjb25zdCBhdXRvIGluaXRpYWxT
dGFja1NpemUgPSBtX3N0YWNrU2l6ZTsKIAogICAgIGNvbnN0IGF1dG8mIGNhbGxpbmdDb252ZW50
aW9uID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCk7Ci0gICAgY29uc3QgdWludDMyX3QgZ3ByQ291
bnQgPSBjYWxsaW5nQ29udmVudGlvbi5ncHJBcmdzLnNpemUoKTsKKyAgICBjb25zdCB1aW50MzJf
dCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmpzckFyZ3Muc2l6ZSgpOwogICAgIGNvbnN0
IHVpbnQzMl90IGZwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZnByQXJncy5zaXplKCk7CiAK
ICAgICB1aW50MzJfdCBzdGFja0NvdW50ID0gMDsKQEAgLTczNCw3ICs3MzQsNyBAQCBhdXRvIExM
SW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZWUoY29uc3QgU2lnbmF0dXJlJiBz
aWduYXR1cmUpIC0+IFZlYwogICAgIG1fcmVzdWx0cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHNp
Z25hdHVyZS5yZXR1cm5Db3VudCgpKTsKIAogICAgIGNvbnN0IGF1dG8mIGNhbGxpbmdDb252ZW50
aW9uID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCk7Ci0gICAgY29uc3QgdWludDMyX3QgZ3ByQ291
bnQgPSBjYWxsaW5nQ29udmVudGlvbi5ncHJBcmdzLnNpemUoKTsKKyAgICBjb25zdCB1aW50MzJf
dCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmpzckFyZ3Muc2l6ZSgpOwogICAgIGNvbnN0
IHVpbnQzMl90IGZwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZnByQXJncy5zaXplKCk7CiAK
ICAgICB1aW50MzJfdCBncHJJbmRleCA9IDA7CkBAIC03ODAsNyArNzgwLDcgQEAgYXV0byBMTElu
dEdlbmVyYXRvcjo6YWRkQXJndW1lbnRzKGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAtPiBQ
YXJ0aWFsUmVzdWx0CiAgICAgbV9ub3JtYWxpemVkQXJndW1lbnRzLnJlc2l6ZShtX2NvZGVCbG9j
ay0+bV9udW1Bcmd1bWVudHMpOwogCiAgICAgY29uc3QgYXV0byYgY2FsbGluZ0NvbnZlbnRpb24g
PSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKTsKLSAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9
IGNhbGxpbmdDb252ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgIGNvbnN0IHVpbnQzMl90IGdw
ckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uanNyQXJncy5zaXplKCk7CiAgICAgY29uc3QgdWlu
dDMyX3QgZnByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5mcHJBcmdzLnNpemUoKTsKICAgICBj
b25zdCB1aW50MzJfdCBtYXhHUFJJbmRleCA9IGdwckNvdW50OwogICAgIGNvbnN0IHVpbnQzMl90
IG1heEZQUkluZGV4ID0gZ3ByQ291bnQgKyBmcHJDb3VudDsKQEAgLTk2MSw3ICs5NjEsNyBAQCBh
dXRvIExMSW50R2VuZXJhdG9yOjphZGRMb29wKEJsb2NrU2lnbmF0dXJlIHNpZ25hdHVyZSwgU3Rh
Y2smIGVuY2xvc2luZ1N0YWNrLCBDbwogICAgICAgICBvc3JFbnRyeURhdGEuYXBwZW5kKG1fbm9y
bWFsaXplZEFyZ3VtZW50c1tpXSk7CiAKICAgICBjb25zdCBhdXRvJiBjYWxsaW5nQ29udmVudGlv
biA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpOwotICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50
ID0gY2FsbGluZ0NvbnZlbnRpb24uZ3ByQXJncy5zaXplKCk7CisgICAgY29uc3QgdWludDMyX3Qg
Z3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5qc3JBcmdzLnNpemUoKTsKICAgICBjb25zdCB1
aW50MzJfdCBmcHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmZwckFyZ3Muc2l6ZSgpOwogICAg
IGZvciAodWludDMyX3QgaSA9IGdwckNvdW50ICsgZnByQ291bnQgKyBudW1iZXJPZkxMSW50Q2Fs
bGVlU2F2ZVJlZ2lzdGVyczsgaSA8IG1fY29kZUJsb2NrLT5tX251bVZhcnM7IGkrKykKICAgICAg
ICAgb3NyRW50cnlEYXRhLmFwcGVuZCh2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChpKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3BwCmluZGV4IGMyNDlmOTJj
ZjA1YmIwYzhjMzQ0ZWE1YWI3MWIzOTZmMWFkYjk0YzEuLjc1ZjczNmQ2YmE5ZDdmMGJhMGM0ODIx
ZjJkNTZjMDlmODZkZDE5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21MTEludFBsYW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21M
TEludFBsYW4uY3BwCkBAIC0xMTksMTIgKzExOSwxNSBAQCB2b2lkIExMSW50UGxhbjo6ZGlkQ29t
cGxldGVDb21waWxhdGlvbigpCiAgICAgICAgICAgICBlbnRyeXBvaW50c1tpXSA9IGppdC5sYWJl
bCgpOwogI2lmIENQVShYODZfNjQpCiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Mg
Y2FsbGVlU2xvdChDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBDYWxsRnJhbWVT
bG90OjpjYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpIC0gc2l6ZW9m
KENQVVJlZ2lzdGVyKSk7Ci0jZWxpZiBDUFUoQVJNNjQpIHx8IENQVShSSVNDVjY0KQorI2VsaWYg
Q1BVKEFSTTY0KSB8fCBDUFUoUklTQ1Y2NCkgfHwgQ1BVKEFSTSkKICAgICAgICAgICAgIENDYWxs
SGVscGVyczo6QWRkcmVzcyBjYWxsZWVTbG90KENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVn
aXN0ZXIsIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJl
Z2lzdGVyKSkgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpOwogI2Vsc2UKICNlcnJvciBVbnN1
cHBvcnRlZCBhcmNoaXRlY3R1cmUuCiAjZW5kaWYKLSAgICAgICAgICAgIGppdC5zdG9yZVB0cihD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoQ2FsbGVlQml0czo6Ym94V2FzbShtX2NhbGxlZXNW
ZWN0b3JbaV0ucHRyKCkpKSwgY2FsbGVlU2xvdCk7CisgICAgICAgICAgICBqaXQuc3RvcmVQdHIo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKENhbGxlZUJpdHM6OmJveFdhc20obV9jYWxsZWVz
VmVjdG9yW2ldLnB0cigpKSksIGNhbGxlZVNsb3Qud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSk7
CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIGppdC5zdG9yZTMyKENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6Oldhc21UYWcpLCBjYWxsZWVTbG90LndpdGhPZmZz
ZXQoVGFnT2Zmc2V0KSk7CisjZW5kaWYKICAgICAgICAgICAgIGp1bXBzW2ldID0gaml0Lmp1bXAo
KTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtTWVtb3J5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3Bw
CmluZGV4IDQ0MDc1OTUyZjAwNzY5ZGIyYjkwMTYwMGIxMDFiZjJiZGU0YjZlNWYuLmJmNWMxZWM0
NjJiZDE2ZjI0ZGY1NzRlM2IzN2I0MmVmNGZiNTFiODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21NZW1vcnkuY3BwCkBAIC05OCwxMSArOTgsOSBAQCBjbGFzcyBNZW1vcnlNYW5h
Z2VyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShNZW1vcnlNYW5hZ2VyKTsKIHB1YmxpYzoKLSAgICBNZW1vcnlNYW5hZ2VyKCkKLSAgICAg
ICAgOiBtX21heEZhc3RNZW1vcnlDb3VudChPcHRpb25zOjptYXhOdW1XZWJBc3NlbWJseUZhc3RN
ZW1vcmllcygpKQotICAgIHsKLSAgICB9Ci0gICAgCisgICAgTWVtb3J5TWFuYWdlcigpID0gZGVm
YXVsdDsKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIE1l
bW9yeVJlc3VsdCB0cnlBbGxvY2F0ZUZhc3RNZW1vcnkoKQogICAgIHsKICAgICAgICAgTWVtb3J5
UmVzdWx0IHJlc3VsdCA9IFsmXSB7CkBAIC0xMjUsNyArMTIzLDcgQEAgcHVibGljOgogICAgICAg
ICAKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9Ci0gICAgCisKICAgICB2b2lkIGZyZWVG
YXN0TWVtb3J5KHZvaWQqIGJhc2VQdHIpCiAgICAgewogICAgICAgICB7CkBAIC0xMzYsNiArMTM0
LDcgQEAgcHVibGljOgogICAgICAgICAKICAgICAgICAgZGF0YUxvZ0xuSWYoT3B0aW9uczo6bG9n
V2ViQXNzZW1ibHlNZW1vcnkoKSwgIkZyZWVkIHZpcnR1YWw7IHN0YXRlOiAiLCAqdGhpcyk7CiAg
ICAgfQorI2VuZGlmCiAKICAgICBNZW1vcnlSZXN1bHQgdHJ5QWxsb2NhdGVHcm93YWJsZUJvdW5k
c0NoZWNraW5nTWVtb3J5KHNpemVfdCBtYXBwZWRDYXBhY2l0eSkKICAgICB7CkBAIC0xNzAsMTEg
KzE2OSwxMyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICAvLyBOT1RFOiBUaGlzIGNhbiBiZSBj
YWxsZWQgZnJvbSBhIHNpZ25hbCBoYW5kbGVyLCBidXQgb25seSBhZnRlciB3ZSBwcm92ZWQgdGhh
dCB3ZSdyZSBpbiBKSVQgY29kZSBvciBXYXNtTExJbnQgY29kZS4KICAgICAgICAgTG9ja2VyIGxv
Y2tlciB7IG1fbG9jayB9OworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZ
KQogICAgICAgICBmb3IgKHZvaWQqIG1lbW9yeSA6IG1fZmFzdE1lbW9yaWVzKSB7CiAgICAgICAg
ICAgICBjaGFyKiBzdGFydCA9IHN0YXRpY19jYXN0PGNoYXIqPihtZW1vcnkpOwogICAgICAgICAg
ICAgaWYgKHN0YXJ0IDw9IGFkZHJlc3MgJiYgYWRkcmVzcyA8PSBzdGFydCArIE1lbW9yeTo6ZmFz
dE1hcHBlZEJ5dGVzKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0K
KyNlbmRpZgogICAgICAgICB1aW50cHRyX3QgYWRkcmVzc1ZhbHVlID0gYml0d2lzZV9jYXN0PHVp
bnRwdHJfdD4oYWRkcmVzcyk7CiAgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBzdGQ6OnVwcGVyX2Jv
dW5kKG1fZ3Jvd2FibGVCb3VuZHNDaGVja2luZ01lbW9yaWVzLmJlZ2luKCksIG1fZ3Jvd2FibGVC
b3VuZHNDaGVja2luZ01lbW9yaWVzLmVuZCgpLCBzdGQ6Om1ha2VfcGFpcihhZGRyZXNzVmFsdWUs
IDApLAogICAgICAgICAgICAgW10oc3RkOjpwYWlyPHVpbnRwdHJfdCwgc2l6ZV90PiBhLCBzdGQ6
OnBhaXI8dWludHB0cl90LCBzaXplX3Q+IGIpIHsKQEAgLTIyNywxMyArMjI4LDE5IEBAIHB1Ymxp
YzoKICAgICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICB7Cisj
aWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgICAgIG91dC5wcmlu
dCgiZmFzdCBtZW1vcmllcyA9ICAiLCBtX2Zhc3RNZW1vcmllcy5zaXplKCksICIvIiwgbV9tYXhG
YXN0TWVtb3J5Q291bnQsICIsIGJ5dGVzID0gIiwgbV9waHlzaWNhbEJ5dGVzLCAiLyIsIG1lbW9y
eUxpbWl0KCkpOworI2Vsc2UKKyAgICAgICAgb3V0LnByaW50KCJmYXN0IG1lbW9yaWVzID0gTi5B
LiwgYnl0ZXMgPSAiLCBtX3BoeXNpY2FsQnl0ZXMsICIvIiwgbWVtb3J5TGltaXQoKSk7CisjZW5k
aWYKICAgICB9CiAgICAgCiBwcml2YXRlOgogICAgIExvY2sgbV9sb2NrOwotICAgIHVuc2lnbmVk
IG1fbWF4RmFzdE1lbW9yeUNvdW50IHsgMCB9OworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdO
QUxJTkdfTUVNT1JZKQorICAgIHVuc2lnbmVkIG1fbWF4RmFzdE1lbW9yeUNvdW50IHsgT3B0aW9u
czo6bWF4TnVtV2ViQXNzZW1ibHlGYXN0TWVtb3JpZXMoKSB9OwogICAgIFZlY3Rvcjx2b2lkKj4g
bV9mYXN0TWVtb3JpZXM7CisjZW5kaWYKICAgICBTdGRTZXQ8c3RkOjpwYWlyPHVpbnRwdHJfdCwg
c2l6ZV90Pj4gbV9ncm93YWJsZUJvdW5kc0NoZWNraW5nTWVtb3JpZXM7CiAgICAgc2l6ZV90IG1f
cGh5c2ljYWxCeXRlcyB7IDAgfTsKIH07CkBAIC0zMDAsNiArMzA3LDcgQEAgTWVtb3J5SGFuZGxl
Ojp+TWVtb3J5SGFuZGxlKCkKICAgICAgICAgdm9pZCogbWVtb3J5ID0gdGhpcy0+bWVtb3J5KCk7
CiAgICAgICAgIG1lbW9yeU1hbmFnZXIoKS5mcmVlUGh5c2ljYWxCeXRlcyhtX3NpemUpOwogICAg
ICAgICBzd2l0Y2ggKG1fbW9kZSkgeworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdf
TUVNT1JZKQogICAgICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzoKICAgICAgICAgICAg
IGlmIChtcHJvdGVjdChtZW1vcnksIE1lbW9yeTo6ZmFzdE1hcHBlZEJ5dGVzKCksIFBST1RfUkVB
RCB8IFBST1RfV1JJVEUpKSB7CiAgICAgICAgICAgICAgICAgZGF0YUxvZygibXByb3RlY3QgZmFp
bGVkOiAiLCBzYWZlU3RyZXJyb3IoZXJybm8pLmRhdGEoKSwgIlxuIik7CkBAIC0zMDcsNiArMzE1
LDcgQEAgTWVtb3J5SGFuZGxlOjp+TWVtb3J5SGFuZGxlKCkKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIG1lbW9yeU1hbmFnZXIoKS5mcmVlRmFzdE1lbW9yeShtZW1vcnkpOwogICAgICAgICAg
ICAgYnJlYWs7CisjZW5kaWYKICAgICAgICAgY2FzZSBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2lu
ZzogewogICAgICAgICAgICAgc3dpdGNoIChtX3NoYXJpbmdNb2RlKSB7CiAgICAgICAgICAgICBj
YXNlIE1lbW9yeVNoYXJpbmdNb2RlOjpEZWZhdWx0OgpAQCAtMzk1LDYgKzQwNCw3IEBAIFJlZlB0
cjxNZW1vcnk+IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBpbml0aWFsLCBQYWdlQ291bnQg
bWF4aW11bSwgTWVtb3J5U2hhCiAgICAgaWYgKCFkb25lKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICAgICAgCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAg
ICAgY2hhciogZmFzdE1lbW9yeSA9IG51bGxwdHI7CiAgICAgaWYgKE9wdGlvbnM6OnVzZVdlYkFz
c2VtYmx5RmFzdE1lbW9yeSgpKSB7CiAgICAgICAgIHRyeUFsbG9jYXRlKApAQCAtNDEzLDcgKzQy
Myw4IEBAIFJlZlB0cjxNZW1vcnk+IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBpbml0aWFs
LCBQYWdlQ291bnQgbWF4aW11bSwgTWVtb3J5U2hhCiAKICAgICAgICAgcmV0dXJuIE1lbW9yeTo6
Y3JlYXRlKGFkb3B0UmVmKCpuZXcgTWVtb3J5SGFuZGxlKGZhc3RNZW1vcnksIGluaXRpYWxCeXRl
cywgTWVtb3J5OjpmYXN0TWFwcGVkQnl0ZXMoKSwgaW5pdGlhbCwgbWF4aW11bSwgc2hhcmluZ01v
ZGUsIE1lbW9yeU1vZGU6OlNpZ25hbGluZykpLCBXVEZNb3ZlKG5vdGlmeU1lbW9yeVByZXNzdXJl
KSwgV1RGTW92ZShzeW5jVHJ5VG9SZWNsYWltTWVtb3J5KSwgV1RGTW92ZShncm93U3VjY2Vzc0Nh
bGxiYWNrKSk7CiAgICAgfQotICAgIAorI2VuZGlmCisKICAgICBpZiAoVU5MSUtFTFkoT3B0aW9u
czo6Y3Jhc2hJZldlYkFzc2VtYmx5Q2FudEZhc3RNZW1vcnkoKSkpCiAgICAgICAgIHdlYkFzc2Vt
Ymx5Q291bGRudEdldEZhc3RNZW1vcnkoKTsKIApAQCAtNDU2LDYgKzQ2Nyw3IEBAIFJlZlB0cjxN
ZW1vcnk+IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBpbml0aWFsLCBQYWdlQ291bnQgbWF4
aW11bSwgTWVtb3J5U2hhCiAKIE1lbW9yeTo6fk1lbW9yeSgpID0gZGVmYXVsdDsKIAorI2lmIEVO
QUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogc2l6ZV90IE1lbW9yeTo6ZmFzdE1h
cHBlZFJlZHpvbmVCeXRlcygpCiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHNpemVfdD4oUGFn
ZUNvdW50OjpwYWdlU2l6ZSkgKiBPcHRpb25zOjp3ZWJBc3NlbWJseUZhc3RNZW1vcnlSZWR6b25l
UGFnZXMoKTsKQEAgLTQ2Niw2ICs0NzgsNyBAQCBzaXplX3QgTWVtb3J5OjpmYXN0TWFwcGVkQnl0
ZXMoKQogICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKHVpbnQ2NF90KSA9PSBzaXplb2Yoc2l6ZV90
KSwgIldlIHJlbHkgb24gYWxsb3dpbmcgdGhlIG1heGltdW0gc2l6ZSBvZiBNZW1vcnkgd2UgbWFw
IHRvIGJlIDJeMzIgKyByZWR6b25lIHdoaWNoIGlzIGxhcmdlciB0aGFuIGZpdHMgaW4gYSAzMi1i
aXQgaW50ZWdlciB0aGF0IHdlJ2QgcGFzcyB0byBtcHJvdGVjdCBpZiB0aGlzIGRpZG4ndCBob2xk
LiIpOwogICAgIHJldHVybiAoc3RhdGljX2Nhc3Q8c2l6ZV90PigxKSA8PCAzMikgKyBmYXN0TWFw
cGVkUmVkem9uZUJ5dGVzKCk7CiB9CisjZW5kaWYKIAogYm9vbCBNZW1vcnk6OmFkZHJlc3NJc0lu
R3Jvd2FibGVPckZhc3RNZW1vcnkodm9pZCogYWRkcmVzcykKIHsKQEAgLTUyNCw4ICs1MzcsMTQg
QEAgRXhwZWN0ZWQ8UGFnZUNvdW50LCBNZW1vcnk6Okdyb3dGYWlsUmVhc29uPiBNZW1vcnk6Omdy
b3dTaGFyZWQoUGFnZUNvdW50IGRlbHRhKQogICAgICAgICBtX2hhbmRsZS0+Z3Jvd1RvU2l6ZShk
ZXNpcmVkU2l6ZSk7CiAgICAgICAgIHJldHVybiBvbGRQYWdlQ291bnQ7CiAgICAgfSgpKTsKLSAg
ICBpZiAocmVzdWx0KQorICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgbV9ncm93U3VjY2Vzc0Nh
bGxiYWNrKEdyb3dTdWNjZXNzVGFnLCBvbGRQYWdlQ291bnQsIG5ld1BhZ2VDb3VudCk7CisgICAg
ICAgIC8vIFVwZGF0ZSBjYWNoZSBmb3IgaW5zdGFuY2UKKyAgICAgICAgZm9yIChhdXRvJiBpbnN0
YW5jZSA6IG1faW5zdGFuY2VzKSB7CisgICAgICAgICAgICBpZiAoaW5zdGFuY2UuZ2V0KCkgIT0g
bnVsbHB0cikKKyAgICAgICAgICAgICAgICBpbnN0YW5jZS5nZXQoKS0+dXBkYXRlQ2FjaGVkTWVt
b3J5KCk7CisgICAgICAgIH0KKyAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtNTg4
LDYgKzYwNyw3IEBAIEV4cGVjdGVkPFBhZ2VDb3VudCwgTWVtb3J5OjpHcm93RmFpbFJlYXNvbj4g
TWVtb3J5Ojpncm93KFBhZ2VDb3VudCBkZWx0YSkKICAgICAgICAgQVNTRVJUKG1lbW9yeSgpID09
IG5ld01lbW9yeSk7CiAgICAgICAgIHJldHVybiBzdWNjZXNzKCk7CiAgICAgfQorI2lmIEVOQUJM
RShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIGNhc2UgTWVtb3J5TW9kZTo6U2ln
bmFsaW5nOiB7CiAgICAgICAgIHNpemVfdCBleHRyYUJ5dGVzID0gZGVzaXJlZFNpemUgLSBzaXpl
KCk7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGV4dHJhQnl0ZXMpOwpAQCAtNjEzLDYgKzYzMyw3
IEBAIEV4cGVjdGVkPFBhZ2VDb3VudCwgTWVtb3J5OjpHcm93RmFpbFJlYXNvbj4gTWVtb3J5Ojpn
cm93KFBhZ2VDb3VudCBkZWx0YSkKICAgICAgICAgbV9oYW5kbGUtPmdyb3dUb1NpemUoZGVzaXJl
ZFNpemUpOwogICAgICAgICByZXR1cm4gc3VjY2VzcygpOwogICAgIH0KKyNlbmRpZgogICAgIH0K
IAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC02NDYsNyArNjY3LDggQEAg
Ym9vbCBNZW1vcnk6OmNvcHkodWludDMyX3QgZHN0QWRkcmVzcywgdWludDMyX3Qgc3JjQWRkcmVz
cywgdWludDMyX3QgY291bnQpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgdWludDhfdCog
YmFzZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KG1lbW9yeSgpKTsKLSAgICBtZW1jcHko
YmFzZSArIGRzdEFkZHJlc3MsIGJhc2UgKyBzcmNBZGRyZXNzLCBjb3VudCk7CisgICAgLy8gU291
cmNlIGFuZCBkZXN0aW5hdGlvbiBhcmVhcyBtaWdodCBvdmVybGFwLCBzbyB1c2luZyBtZW1tb3Zl
LgorICAgIG1lbW1vdmUoYmFzZSArIGRzdEFkZHJlc3MsIGJhc2UgKyBzcmNBZGRyZXNzLCBjb3Vu
dCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21NZW1vcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21N
ZW1vcnkuaAppbmRleCBmNWM1OGZjZjk2ZjJkODZiMDc1Y2U1NzhkNTY2OTdhZTc0YTU2MjQzLi40
OWM4NTU2NjFlNDRhMmMwN2FlZGI4YWVhZTQzNzQ2MDBkZTE2NTU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbU1lbW9yeS5oCkBAIC0xMDYsOCArMTA2LDEwIEBAIHB1YmxpYzoKIAog
ICAgIEpTX0VYUE9SVF9QUklWQVRFIH5NZW1vcnkoKTsKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJM
WV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIHN0YXRpYyBzaXplX3QgZmFzdE1hcHBlZFJlZHpvbmVC
eXRlcygpOwogICAgIHN0YXRpYyBzaXplX3QgZmFzdE1hcHBlZEJ5dGVzKCk7IC8vIEluY2x1ZGVz
IHJlZHpvbmUuCisjZW5kaWYKICAgICBzdGF0aWMgYm9vbCBhZGRyZXNzSXNJbkdyb3dhYmxlT3JG
YXN0TWVtb3J5KHZvaWQqKTsKIAogICAgIHZvaWQqIG1lbW9yeSgpIGNvbnN0IHsgcmV0dXJuIG1f
aGFuZGxlLT5tZW1vcnkoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21NZW1vcnlJbmZvcm1hdGlvbi5jcHAKaW5kZXggMjY1MmRlNzJlZDU2NThiNzdjZWUyOTkx
MmE1MjllZjdmMmJmYjQwZC4uNjBmYWQ2M2VmMGUwYjc5Y2UyYzI2ZTI2Mzc5N2Q0YzQxMzMxYTM1
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9y
bWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5SW5m
b3JtYXRpb24uY3BwCkBAIC00MSw4ICs0MSwxNSBAQCBjb25zdCBQaW5uZWRSZWdpc3RlckluZm8m
IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCkKICAgICAgICAgdW5zaWduZWQgbnVtYmVyT2ZQaW5u
ZWRSZWdpc3RlcnMgPSAyOwogICAgICAgICBpZiAoIUNvbnRleHQ6OnVzZUZhc3RUTFMoKSkKICAg
ICAgICAgICAgICsrbnVtYmVyT2ZQaW5uZWRSZWdpc3RlcnM7CisjaWYgQ1BVKFg4Nl82NCkgfHwg
Q1BVKEFSTTY0KQogICAgICAgICBHUFJSZWcgYmFzZU1lbW9yeVBvaW50ZXIgPSBHUFJJbmZvOjpy
ZWdDUzM7CiAgICAgICAgIEdQUlJlZyBib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlciA9IEdQUklu
Zm86OnJlZ0NTNDsKKyNlbGlmIENQVShBUk0pCisgICAgICAgIC8vIE5vdCBlbm91Z2ggcmVnaXN0
ZXJzLiByZWdDUzAgaXMgdGhlIHdhc20gaW5zdGFuY2UsIHJlZ0NTMSBpcyBMTEludCBQQgorICAg
ICAgICBudW1iZXJPZlBpbm5lZFJlZ2lzdGVycyAtPSAyOworICAgICAgICBHUFJSZWcgYmFzZU1l
bW9yeVBvaW50ZXIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICBHUFJSZWcgYm91bmRzQ2hlY2tp
bmdTaXplUmVnaXN0ZXIgPSBJbnZhbGlkR1BSUmVnOworI2VuZGlmCiAgICAgICAgIEdQUlJlZyB3
YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlciA9IEludmFsaWRHUFJSZWc7CiAgICAgICAgIGlmICgh
Q29udGV4dDo6dXNlRmFzdFRMUygpKQogICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5jZVBv
aW50ZXIgPSBHUFJJbmZvOjpyZWdDUzA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5oCmluZGV4IDg1NGZiYTU0ZTMzN2YwZjAyNDhlMzM5
Mzc4NDQzYjM0MWUwZjczMDkuLjI5ZmNiZGI2ZDQ2MzBlOTQ0ZTFmNTBiOWY4Mjg2MTY4ODVlOWQy
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZv
cm1hdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZv
cm1hdGlvbi5oCkBAIC01MiwxMCArNTIsMTEgQEAgcHVibGljOgogICAgIFJlZ2lzdGVyU2V0IHRv
U2F2ZShNZW1vcnlNb2RlIG1vZGUpIGNvbnN0CiAgICAgewogICAgICAgICBSZWdpc3RlclNldCBy
ZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC5zZXQoYmFzZU1lbW9yeVBvaW50ZXIpOworICAgICAgICBp
ZiAoYmFzZU1lbW9yeVBvaW50ZXIgIT0gSW52YWxpZEdQUlJlZykKKyAgICAgICAgICAgIHJlc3Vs
dC5zZXQoYmFzZU1lbW9yeVBvaW50ZXIpOwogICAgICAgICBpZiAod2FzbUNvbnRleHRJbnN0YW5j
ZVBvaW50ZXIgIT0gSW52YWxpZEdQUlJlZykKICAgICAgICAgICAgIHJlc3VsdC5zZXQod2FzbUNv
bnRleHRJbnN0YW5jZVBvaW50ZXIpOwotICAgICAgICBpZiAobW9kZSAhPSBNZW1vcnlNb2RlOjpT
aWduYWxpbmcpCisgICAgICAgIGlmIChtb2RlID09IE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5n
ICYmIGJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyICE9IEludmFsaWRHUFJSZWcpCiAgICAgICAg
ICAgICByZXN1bHQuc2V0KGJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyKTsKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtTWVtb3J5TW9kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVt
b3J5TW9kZS5jcHAKaW5kZXggOWJlMDRkNzdiMDZiOGNhNzIyN2ExYzY2YTZjNjMzOGIzNzk4OGU1
Yi4uZjMzYjA1MjUxOTgzMGM0NGMwMTZjMmJmN2ViYzhhNzJkZTdmYTg2OSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmNwcApAQCAtMzcsNyArMzcsOSBA
QCBjb25zdCBjaGFyKiBtYWtlU3RyaW5nKE1lbW9yeU1vZGUgbW9kZSkKIHsKICAgICBzd2l0Y2gg
KG1vZGUpIHsKICAgICBjYXNlIE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nOiByZXR1cm4gIkJv
dW5kc0NoZWNraW5nIjsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkK
ICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzogcmV0dXJuICJTaWduYWxpbmciOworI2Vu
ZGlmCiAgICAgfQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJu
ICIiOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1v
ZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmgKaW5kZXgg
MDJjZmNmZTQ5ZjQ3MTU0YjMxNTNjMDlhYmQ4Y2NmYzdjZmMyMTA2OC4uZDcxMWFmYWYzMDMzMWY4
Y2M3M2QyNjhhYzBjNGU3NTFjMGIyZmI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtTWVtb3J5TW9kZS5oCkBAIC0zNCw3ICszNCw5IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgV2FzbSB7CiAvLyBGSVhNRTogV2Ugc2hvdWxkIHN1cHBvcnQgb3RoZXIgbW9kZXMuIHNl
ZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjY5MwogZW51bSBj
bGFzcyBNZW1vcnlNb2RlIDogdWludDhfdCB7CiAgICAgQm91bmRzQ2hlY2tpbmcsCisjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgU2lnbmFsaW5nCisjZW5kaWYK
IH07CiAKIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IE51bWJlck9mTWVtb3J5TW9kZXMgPSAyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcAppbmRl
eCBiNmM1YzI3NTUzMTFiM2RlMzQwMzUzZTc1OTQzZDYxM2RmZjZkMmQ4Li45ZmM5MWI5ZDljNTQ4
MjY5MmExZDM3YzkwMTljOGM1Y2JjMTJkZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIldhc21PcGNvZGVPcmlnaW4uaCIKIAotI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKQEAgLTM3LDQgKzM3LDQgQEAgdm9pZCBPcGNvZGVPcmln
aW46OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6
Oldhc20KIAotI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCQVNTRU1CTFlfQjNKSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtT3Bjb2RlT3JpZ2luLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bj
b2RlT3JpZ2luLmgKaW5kZXggYTBkOGRmM2FlZjE5YWVmNmIxNzA3OTQ3OWE2MzQ4MTI4ODBjODcz
Ni4uNWM0YjY3NmQ1YzZlYjBmNTlhOTdkNDliYjNkNTVhNDE3YmVjMWMyNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uaApAQCAtMjUsNyArMjUsNyBA
QAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyNpZiBFTkFCTEUo
V0VCQVNTRU1CTFlfQjNKSVQpCiAKICNpbmNsdWRlICJCM09yaWdpbi5oIgogI2luY2x1ZGUgIldh
c21Gb3JtYXQuaCIKQEAgLTYwLDQgKzYwLDQgQEAgcHJpdmF0ZToKIAogfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6Oldhc20KIAotI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtT3BlcmF0aW9ucy5jcHAKaW5kZXggNTE0NjQ1NzJmMWNmMmVjMWYwY2FhZjU4ZGRiNzg0YWZj
ZmIzNjkwMi4uMGNmMDM1NDY3YWMwMGIxZDIwNjRmNTAwNjA2MmZmZThjYThjOGFjZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcApAQCAtNDY4LDQz
ICs0NjgsNDMgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21VbndpbmQs
IHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiAgICAgQVNTRVJUKCEhdm0uY2FsbEZyYW1l
Rm9yQ2F0Y2gpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVy
dFRvSTY0LCBpbnQ2NF90LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdikpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTY0LCBpbnQ2NF90LCAoQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIEVuY29kZWRKU1ZhbHVlIHYpKQogewogICAgIC8vIEZJWE1FOiBD
b25zaWRlciBwYXNzaW5nIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGVhZC4KICAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjA2CiAgICAgVk0mIHZt
ID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIg
dHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIHJldHVybiB2LnRvQmlnSW50NjQoY2FsbEZyYW1l
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh2
KS50b0JpZ0ludDY0KGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjY0LCBkb3VibGUsIChD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Db252ZXJ0VG9GNjQsIGRvdWJsZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBF
bmNvZGVkSlNWYWx1ZSB2KSkKIHsKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgcGFzc2luZyBKU1dl
YkFzc2VtYmx5SW5zdGFuY2UqIGluc3RlYWQuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwMzIwNgogICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+ZGVwcmVj
YXRlZFZNKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1l
KTsKLSAgICByZXR1cm4gdi50b051bWJlcihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qo
dm0pKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKHYpLnRvTnVtYmVyKGNhbGxGcmFtZS0+
bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ29udmVydFRvSTMyLCBpbnQzMl90LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpT
VmFsdWUgdikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTMy
LCBpbnQzMl90LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVuY29kZWRKU1ZhbHVlIHYpKQogewog
ICAgIC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5nIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5z
dGVhZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAz
MjA2CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsKICAgICBOYXRpdmVD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIHJldHVybiB2LnRvSW50
MzIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSk7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmRlY29kZSh2KS50b0ludDMyKGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkp
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjMyLCBm
bG9hdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0YzMiwgZmxvYXQsIChDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgRW5jb2RlZEpTVmFsdWUgdikpCiB7CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3Np
bmcgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0ZWFkLgogICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMyMDYKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUt
PmRlcHJlY2F0ZWRWTSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNh
bGxGcmFtZSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Pih2LnRvTnVtYmVyKGNhbGxG
cmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
ZmxvYXQ+KEpTVmFsdWU6OmRlY29kZSh2KS50b051bWJlcihjYWxsRnJhbWUtPmxleGljYWxHbG9i
YWxPYmplY3Qodm0pKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
b252ZXJ0VG9CaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIElu
c3RhbmNlKiBpbnN0YW5jZSwgaW50NjRfdCB2YWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKENhbGxGcmFtZSog
Y2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2UsIEVuY29kZWRXYXNtVmFsdWUgdmFsdWUpKQog
ewogICAgIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSoganNJbnN0YW5jZSA9IGluc3RhbmNlLT5vd25l
cjxKU1dlYkFzc2VtYmx5SW5zdGFuY2U+KCk7CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCA9IGpzSW5zdGFuY2UtPmdsb2JhbE9iamVjdCgpOwpAQCAtNTE0LDcgKzUxNCw3IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRK
U1ZhbHVlLCAoQ2FsbEZyYW1lKiBjCiB9CiAKIC8vIGh0dHBzOi8vd2ViYXNzZW1ibHkuZ2l0aHVi
LmlvL211bHRpLXZhbHVlL2pzLWFwaS9pbmRleC5odG1sI3J1bi1hLWhvc3QtZnVuY3Rpb24KLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0cywgdm9pZCwgKENh
bGxGcmFtZSogY2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2UsIGNvbnN0IFNpZ25hdHVyZSog
c2lnbmF0dXJlLCBKU1ZhbHVlIHJlc3VsdCwgdWludDY0X3QqIHJlZ2lzdGVyUmVzdWx0cywgdWlu
dDY0X3QqIGNhbGxlZUZyYW1lUG9pbnRlcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSW5zdGFu
Y2UqIGluc3RhbmNlLCBjb25zdCBTaWduYXR1cmUqIHNpZ25hdHVyZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jUmVzdWx0LCB1aW50NjRfdCogcmVnaXN0ZXJSZXN1bHRzLCB1aW50NjRfdCogY2FsbGVlRnJh
bWVQb2ludGVyKSkKIHsKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2Vt
Ymx5SW5zdGFuY2UqIGluc3RlYWQuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMzIwNgpAQCAtNTI5LDYgKzUyOSw3IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZy
YW1lLCBJCiAKICAgICB1bnNpZ25lZCBpdGVyYXRpb25Db3VudCA9IDA7CiAgICAgTWFya2VkQXJn
dW1lbnRCdWZmZXIgYnVmZmVyOworICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY1Jlc3VsdCk7CiAgICAgZm9yRWFjaEluSXRlcmFibGUoZ2xvYmFsT2JqZWN0LCByZXN1bHQs
IFsmXSAoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgdmFsdWUpIC0+IHZvaWQgewogICAg
ICAgICBpZiAoYnVmZmVyLnNpemUoKSA8IHNpZ25hdHVyZS0+cmV0dXJuQ291bnQoKSkKICAgICAg
ICAgICAgIGJ1ZmZlci5hcHBlbmQodmFsdWUpOwpAQCAtNTc4LDggKzU3OSwxMCBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgSQogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lk
KCkpOwogCiAgICAgICAgIGF1dG8gcmVwID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbaW5kZXhdOwot
ICAgICAgICBpZiAocmVwLmlzUmVnKCkpCi0gICAgICAgICAgICByZWdpc3RlclJlc3VsdHNbcmVn
aXN0ZXJSZXN1bHRPZmZzZXRzLmZpbmQocmVwLnJlZygpKS0+b2Zmc2V0KCkgLyBzaXplb2YodWlu
dDY0X3QpXSA9IHVuYm94ZWRWYWx1ZTsKKyAgICAgICAgaWYgKHJlcC5pc0dQUigpKQorICAgICAg
ICAgICAgcmVnaXN0ZXJSZXN1bHRzW3JlZ2lzdGVyUmVzdWx0T2Zmc2V0cy5maW5kKHJlcC5qc3Io
KS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSAvIHNpemVvZih1aW50NjRfdCldID0gdW5ib3hlZFZh
bHVlOworICAgICAgICBlbHNlIGlmIChyZXAuaXNGUFIoKSkKKyAgICAgICAgICAgIHJlZ2lzdGVy
UmVzdWx0c1tyZWdpc3RlclJlc3VsdE9mZnNldHMuZmluZChyZXAuZnByKCkpLT5vZmZzZXQoKSAv
IHNpemVvZih1aW50NjRfdCldID0gdW5ib3hlZFZhbHVlOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBjYWxsZWVGcmFtZVBvaW50ZXJbcmVwLm9mZnNldEZyb21GUCgpIC8gc2l6ZW9mKHVpbnQ2
NF90KV0gPSB1bmJveGVkVmFsdWU7CiAgICAgfQpAQCAtNjA0LDEyICs2MDcsMTYgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5LCBKU0FycmF5
KiwgKENhbGxGcmFtZSogY2EKICAgICBhdXRvIHdhc21DYWxsSW5mbyA9IHdhc21DYWxsaW5nQ29u
dmVudGlvbigpLmNhbGxJbmZvcm1hdGlvbkZvcigqc2lnbmF0dXJlKTsKICAgICBSZWdpc3RlckF0
T2Zmc2V0TGlzdCByZWdpc3RlclJlc3VsdHMgPSB3YXNtQ2FsbEluZm8uY29tcHV0ZVJlc3VsdHNP
ZmZzZXRMaXN0KCk7CiAKLSAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihKU1ZhbHVlKSA9PSBzaXpl
b2YoQ1BVUmVnaXN0ZXIpLCAiVGhlIGNvZGUgYmVsb3cgcmVsaWVzIG9uIHRoaXMuIik7CiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpZ25hdHVyZS0+cmV0dXJuQ291bnQoKTsgKytpKSB7
CiAgICAgICAgIFZhbHVlTG9jYXRpb24gbG9jID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbaV07CiAg
ICAgICAgIEpTVmFsdWUgdmFsdWU7Ci0gICAgICAgIGlmIChsb2MuaXNSZWcoKSkKLSAgICAgICAg
ICAgIHZhbHVlID0gc3RhY2tQb2ludGVyRnJvbUNhbGxlZVsocmVnaXN0ZXJSZXN1bHRzLmZpbmQo
bG9jLnJlZygpKS0+b2Zmc2V0KCkgKyB3YXNtQ2FsbEluZm8uaGVhZGVyQW5kQXJndW1lbnRTdGFj
a1NpemVJbkJ5dGVzKSAvIHNpemVvZihKU1ZhbHVlKV07CisgICAgICAgIGlmIChsb2MuaXNHUFIo
KSkgeworI2lmIFVTRShKU1ZBTEUzMl82NCkKKyAgICAgICAgICAgIEFTU0VSVChyZWdpc3RlclJl
c3VsdHMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkgKyA0ID09IHJlZ2lz
dGVyUmVzdWx0cy5maW5kKGxvYy5qc3IoKS50YWdHUFIoKSktPm9mZnNldCgpKTsKKyNlbmRpZgor
ICAgICAgICAgICAgdmFsdWUgPSBzdGFja1BvaW50ZXJGcm9tQ2FsbGVlWyhyZWdpc3RlclJlc3Vs
dHMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkgKyB3YXNtQ2FsbEluZm8u
aGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSAvIHNpemVvZihKU1ZhbHVlKV07Cisg
ICAgICAgIH0gZWxzZSBpZiAobG9jLmlzRlBSKCkpCisgICAgICAgICAgICB2YWx1ZSA9IHN0YWNr
UG9pbnRlckZyb21DYWxsZWVbKHJlZ2lzdGVyUmVzdWx0cy5maW5kKGxvYy5mcHIoKSktPm9mZnNl
dCgpICsgd2FzbUNhbGxJbmZvLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcykgLyBz
aXplb2YoSlNWYWx1ZSldOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB2YWx1ZSA9IHN0YWNr
UG9pbnRlckZyb21DYWxsZWVbbG9jLm9mZnNldEZyb21TUCgpIC8gc2l6ZW9mKEpTVmFsdWUpXTsK
ICAgICAgICAgcmVzdWx0LT5pbml0aWFsaXplSW5kZXgoaW5pdGlhbGl6YXRpb25TY29wZSwgaSwg
dmFsdWUpOwpAQCAtOTQ0LDcgKzk1MSw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25XYXNtVGhyb3csIHZvaWQqLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDYWxsRnJhCiAgICAg
Ly8gdG8gdGhlIGV4Y2VwdGlvbiBoYW5kbGVyLiBJZiB3ZSBkaWQgdGhpcywgd2UgY291bGQgcmVt
b3ZlIHRoaXMgdGVycmlibGUgaGFjay4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTcwNDQwCiAgICAgdm0uY2FsbGVlRm9yV2FzbUNhdGNoID0gY2FsbEZy
YW1lLT5jYWxsZWUoKTsKLSAgICBiaXR3aXNlX2Nhc3Q8dWludDY0X3QqPihjYWxsRnJhbWUpW3N0
YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0gPSBiaXR3aXNlX2Nhc3Q8dWlu
dDY0X3Q+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsKKyAgICBSZWdpc3RlciogY2FsbGVlU2xvdCA9
IGJpdHdpc2VfY2FzdDxSZWdpc3Rlcio+KGNhbGxGcmFtZSkgKyBzdGF0aWNfY2FzdDxpbnQ+KENh
bGxGcmFtZVNsb3Q6OmNhbGxlZSk7CisgICAgKmNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8SlND
ZWxsKj4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOwogICAgIHJldHVybiB2bS50YXJnZXRNYWNoaW5l
UENGb3JUaHJvdzsKIH0KIApAQCAtOTcwLDcgKzk3OCw4IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25XYXNtUmV0aHJvdywgdm9pZCosIChJbnN0YW5jZSogaW5zdGFuY2UsIENh
bGxGCiAgICAgLy8gdG8gdGhlIGV4Y2VwdGlvbiBoYW5kbGVyLiBJZiB3ZSBkaWQgdGhpcywgd2Ug
Y291bGQgcmVtb3ZlIHRoaXMgdGVycmlibGUgaGFjay4KICAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDQwCiAgICAgdm0uY2FsbGVlRm9yV2FzbUNhdGNo
ID0gY2FsbEZyYW1lLT5jYWxsZWUoKTsKLSAgICBiaXR3aXNlX2Nhc3Q8dWludDY0X3QqPihjYWxs
RnJhbWUpW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0gPSBiaXR3aXNl
X2Nhc3Q8dWludDY0X3Q+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsKKyAgICBSZWdpc3RlciogY2Fs
bGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxSZWdpc3Rlcio+KGNhbGxGcmFtZSkgKyBzdGF0aWNfY2Fz
dDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7CisgICAgKmNhbGxlZVNsb3QgPSBiaXR3aXNl
X2Nhc3Q8SlNDZWxsKj4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOwogICAgIHJldHVybiB2bS50YXJn
ZXRNYWNoaW5lUENGb3JUaHJvdzsKIH0KIApAQCAtMTAwNSw3ICsxMDE0LDggQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21Ub0pTRXhjZXB0aW9uLCB2b2lkKiwgKENhbGxG
cmFtZSogY2FsbEZyYW0KICAgICAvLyB0byB0aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElmIHdlIGRp
ZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNrLgogICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAKICAgICB2bS5jYWxsZWVG
b3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgpOwotICAgIGJpdHdpc2VfY2FzdDx1aW50
NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUp
XSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oaW5zdGFuY2UtPm1vZHVsZSgpKTsKKyAgICBSZWdp
c3RlciogY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxSZWdpc3Rlcio+KGNhbGxGcmFtZSkgKyBz
dGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7CisgICAgKmNhbGxlZVNsb3Qg
PSBiaXR3aXNlX2Nhc3Q8SlNDZWxsKj4oaW5zdGFuY2UtPm1vZHVsZSgpKTsKICAgICByZXR1cm4g
dm0udGFyZ2V0TWFjaGluZVBDRm9yVGhyb3c7CiB9CiAKQEAgLTEwMjksNyArMTAzOSwxMSBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVJldHJpZXZlQW5kQ2xlYXJFeGNl
cHRpb25JZkNhdGNoYWJsZSwgUG9pbgogICAgIHZvaWQqIHBheWxvYWQgPSBudWxscHRyOwogICAg
IGlmIChKU1dlYkFzc2VtYmx5RXhjZXB0aW9uKiB3YXNtRXhjZXB0aW9uID0ganNEeW5hbWljQ2Fz
dDxKU1dlYkFzc2VtYmx5RXhjZXB0aW9uKj4odm0sIHRocm93blZhbHVlKSkKICAgICAgICAgcGF5
bG9hZCA9IGJpdHdpc2VfY2FzdDx2b2lkKj4od2FzbUV4Y2VwdGlvbi0+cGF5bG9hZCgpLmRhdGEo
KSk7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICByZXR1cm4gUG9pbnRlclBhaXIgeyBiaXR3aXNl
X2Nhc3Q8dm9pZCo+KEpTVmFsdWU6OmVuY29kZSh0aHJvd25WYWx1ZSkpLCBwYXlsb2FkIH07Cisj
ZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIHJldHVybiBQb2ludGVyUGFpciB7IGJpdHdpc2Vf
Y2FzdDx2b2lkKj4odGhyb3duVmFsdWUucGF5bG9hZCgpKSwgcGF5bG9hZCB9OworI2VuZGlmCiB9
CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbU9wZXJhdGlvbnMuaAppbmRleCBjZjdjMGQ1ZmVmNGRmZDM1YzdjY2EzMzQ3OTNlYjI0
NGVjYmFkZDE1Li5iMzIwMDBkODMyY2JlMGE2NmM1NTUxZjQ1M2QyZjA1NjNlOTNkY2Y2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmgKQEAgLTQ2LDIzICs0
NiwyMyBAQCBuYW1lc3BhY2UgV2FzbSB7CiAKIGNsYXNzIEluc3RhbmNlOwogY2xhc3MgU2lnbmF0
dXJlOwotCi12b2lkIGxvYWRWYWx1ZXNJbnRvQnVmZmVyKFByb2JlOjpDb250ZXh0JiwgY29uc3Qg
U3RhY2tNYXAmLCB1aW50NjRfdCogYnVmZmVyKTsKK3R5cGVkZWYgaW50NjRfdCBFbmNvZGVkV2Fz
bVZhbHVlOwogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQordm9pZCBsb2FkVmFsdWVz
SW50b0J1ZmZlcihQcm9iZTo6Q29udGV4dCYsIGNvbnN0IFN0YWNrTWFwJiwgdWludDY0X3QqIGJ1
ZmZlcik7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2VyT1NS
RW50cnlOb3csIHZvaWQsIChQcm9iZTo6Q29udGV4dCYpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJUaWVyVXBOb3csIHZvaWQsIChJbnN0YW5jZSosIHVp
bnQzMl90IGZ1bmN0aW9uSW5kZXgpKTsKICNlbmRpZgogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25XYXNtVW53aW5kLCB2b2lkLCAoQ2FsbEZyYW1lKikpOwogCi1KU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCwgaW50NjRfdCwgKENhbGxGcmFt
ZSosIEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVy
dFRvRjY0LCBkb3VibGUsIChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0kzMiwgaW50MzJfdCwgKENhbGxGcmFtZSosIEpT
VmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjMy
LCBmbG9hdCwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29udmVydFRvSTY0LCBpbnQ2NF90LCAoQ2FsbEZyYW1lKiwgRW5jb2RlZEpT
VmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjY0
LCBkb3VibGUsIChDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIGludDMyX3QsIChDYWxsRnJhbWUqLCBF
bmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252
ZXJ0VG9GMzIsIGZsb2F0LCAoQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUpKTsKIAotSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRKU1Zh
bHVlLCAoQ2FsbEZyYW1lKiwgSW5zdGFuY2UqLCBpbnQ2NF90KSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChDYWxs
RnJhbWUqLCBJbnN0YW5jZSosIEVuY29kZWRXYXNtVmFsdWUpKTsKIAotSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSosIElu
c3RhbmNlKiwgY29uc3QgU2lnbmF0dXJlKiwgSlNWYWx1ZSwgdWludDY0X3QqLCB1aW50NjRfdCop
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZv
aWQsIChDYWxsRnJhbWUqLCBJbnN0YW5jZSosIGNvbnN0IFNpZ25hdHVyZSosIEVuY29kZWRKU1Zh
bHVlLCB1aW50NjRfdCosIHVpbnQ2NF90KikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSwgSlNBcnJheSosIChDYWxsRnJhbWUqLCBXYXNt
OjpJbnN0YW5jZSosIGNvbnN0IFNpZ25hdHVyZSosIEluZGV4aW5nVHlwZSwgSlNWYWx1ZSopKTsK
IAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtV3JpdGVCYXJyaWVyU2xv
d1BhdGgsIHZvaWQsIChKU0NlbGwqLCBWTSopKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21QYWdlQ291bnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21QYWdlQ291bnQuaAppbmRleCBiN2Q4YzlmY2Y3MmIxNDc5YzNhM2YxMjNiZmEyYjRkMmQy
NDdjY2UyLi4zYzc1NTEyZjQ0YTlhODk0YjFkMTY2YWM0NzY2NzAwM2Q0ODI3NDdlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFnZUNvdW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhZ2VDb3VudC5oCkBAIC05OCw3ICs5OCwxMiBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHBhZ2VTaXplID0gNjQg
KiBLQjsKIHByaXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXhQYWdlQ291
bnQgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oTUFYX0FSUkFZX0JVRkZFUl9TSVpFIC8gc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KHBhZ2VTaXplKSk7CisgICAgLy8gVGhlIHNwZWMgcmVxdWlyZXMgd2Ug
YXJlIGFibGUgdG8gaW5zdGFudGlhdGUgYSBtZW1vcnkgd2l0aCBhICptYXhpbXVtKiBzaXplIG9m
IDY0SyBwYWdlcy4KKyAgICAvLyBUaGlzIGRvZXMgbm90IG1lYW4gdGhlIG1lbW9yeSBjYW4gbmVj
ZXNzYXJpbHkgZ3JvdyB0aGF0IGJpZywgYW5kIHdoZXJlIHRoZQorICAgIC8vIE1BWF9BUlJBWV9C
VUZGRVJfU0laRSBpcyBzbWFsbGVyIChlLmcuOiBvbiAzMi1iaXQgcGxhdGZvcm1zKSwgdHJ5aW5n
IHRvIGdyb3cgdGhlIG1lbW9yeQorICAgIC8vIHRoYXQgbGFyZ2Ugd2lsbCBmYWlsLCB3aGljaCBp
cyBhY2NlcHRhYmxlIGFjY29yZGluZyB0byB0aGUgc3BlYy4gTmV2ZXJ0aGVsZXNzLCB3ZSBzaG91
bGQKKyAgICAvLyBiZSBhYmxlIHRvIHBhcnNlIHN1Y2ggYSBtZW1vcnkgYW5kIGluc3RhbnRpYXRl
IGl0IHdpdGggYSBzbWFsbGVyIGluaXRpYWwgc2l6ZS4KKyAgICBzdGF0aWMgY29uc3RleHByIHVp
bnQzMl90IG1heFBhZ2VDb3VudCA9IHN0ZDo6bWF4PHVpbnQzMl90Pig2NCoxMDI0LCBNQVhfQVJS
QVlfQlVGRkVSX1NJWkUgLyBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocGFnZVNpemUpKTsKIAogICAg
IHVpbnQzMl90IG1fcGFnZUNvdW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Q
YXJzZXIuaAppbmRleCBlZDAwZDlhMGE0MmI3OWFkYzFmM2M4YWIwZjM0NmZjNGY2ZGE4OWFlLi5k
NDQxYmNhZDk0YzlkZTk5YzBjYTVlYjM5YTFhYmZjZTU2MmNkZmI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbVBhcnNlci5oCkBAIC0yMDgsNyArMjA4LDcgQEAgQUxXQVlTX0lOTElO
RSBib29sIFBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVUludDMyKHVpbnQzMl90JiByZXN1bHQp
CiB7CiAgICAgaWYgKGxlbmd0aCgpIDwgNCB8fCBtX29mZnNldCA+IGxlbmd0aCgpIC0gNCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJlc3VsdCA9ICpyZWludGVycHJldF9jYXN0PGNvbnN0
IHVpbnQzMl90Kj4oc291cmNlKCkgKyBtX29mZnNldCk7CisgICAgbWVtY3B5KCZyZXN1bHQsIHNv
dXJjZSgpICsgbV9vZmZzZXQsIHNpemVvZih1aW50MzJfdCkpOyAvLyBzcmMgY2FuIGJlIHVuYWxp
Z25lZAogICAgIG1fb2Zmc2V0ICs9IDQ7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0yMTgsNyAr
MjE4LDcgQEAgQUxXQVlTX0lOTElORSBib29sIFBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVUlu
dDY0KHVpbnQ2NF90JiByZXN1bHQpCiB7CiAgICAgaWYgKGxlbmd0aCgpIDwgOCB8fCBtX29mZnNl
dCA+IGxlbmd0aCgpIC0gOCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJlc3VsdCA9ICpy
ZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ2NF90Kj4oc291cmNlKCkgKyBtX29mZnNldCk7Cisg
ICAgbWVtY3B5KCZyZXN1bHQsIHNvdXJjZSgpICsgbV9vZmZzZXQsIHNpemVvZih1aW50NjRfdCkp
OyAvLyBzcmMgY2FuIGJlIHVuYWxpZ25lZAogICAgIG1fb2Zmc2V0ICs9IDg7CiAgICAgcmV0dXJu
IHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xv
d1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3Bw
CmluZGV4IDJhODY3ZDZjNzNmZGVmM2U5MTg3MDZhM2YwNzJjMGQ1ODI5OTNjZDcuLmY0NjFmYjU4
OGJmMzcyMDdmYzAyOWVlYzY5NTc1ZjU2YTFlNzY2MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3BwCkBAIC02NDIsNyArNjQyLDggQEAgV0FTTV9TTE9X
X1BBVEhfREVDTCh0aHJvdykKICAgICAvLyB0byB0aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElmIHdl
IGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNrLgogICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAKICAgICB2bS5jYWxs
ZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgpOwotICAgIGJpdHdpc2VfY2FzdDx1
aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxs
ZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOworICAg
IFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJlZ2lzdGVyKj4oY2FsbEZyYW1l
KSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAgICAqY2FsbGVl
U2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CiAgICAg
V0FTTV9SRVRVUk5fVFdPKHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRocm93LCBudWxscHRyKTsKIH0K
IApAQCAtNjcwLDcgKzY3MSw4IEBAIFdBU01fU0xPV19QQVRIX0RFQ0wocmV0aHJvdykKICAgICAv
LyB0byB0aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElmIHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1v
dmUgdGhpcyB0ZXJyaWJsZSBoYWNrLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzA0NDAKICAgICB2bS5jYWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJh
bWUtPmNhbGxlZSgpOwotICAgIGJpdHdpc2VfY2FzdDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3Rh
dGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50
NjRfdD4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOworICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0g
Yml0d2lzZV9jYXN0PFJlZ2lzdGVyKj4oY2FsbEZyYW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2Fs
bEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAgICAqY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0Nl
bGwqPihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CiAgICAgV0FTTV9SRVRVUk5fVFdPKHZtLnRhcmdl
dE1hY2hpbmVQQ0ZvclRocm93LCBudWxscHRyKTsKIH0KIApAQCAtNzE3LDYgKzcxOSwyMTQgQEAg
V0FTTV9TTE9XX1BBVEhfREVDTChyZXRyaWV2ZV9hbmRfY2xlYXJfZXhjZXB0aW9uKQogICAgIFdB
U01fUkVUVVJOX1RXTyhwYywgcGF5bG9hZCk7CiB9CiAKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQor
V0FTTV9TTE9XX1BBVEhfREVDTChmMzJfY2VpbCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFu
Y2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUYzMkNlaWw+KCk7CisgICAg
ZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQo
KTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUod2FzbVVuYm94ZWRGbG9hdChzdGQ6
OmNlaWwob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjMyX2Zsb29yKQor
eworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBj
LT5hczxXYXNtRjMyRmxvb3I+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rp
b24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjpl
bmNvZGUod2FzbVVuYm94ZWRGbG9hdChzdGQ6OmZsb29yKG9wZXJhbmQpKSkpOworfQorCitXQVNN
X1NMT1dfUEFUSF9ERUNMKGYzMl90cnVuYykKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2Up
OworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUYzMlRydW5jPigpOworICAgIGZs
b2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7
CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKHdhc21VbmJveGVkRmxvYXQoc3RkOjp0
cnVuYyhvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmMzJfbmVhcmVzdCkK
K3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpyb3VuZF9z
dHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5j
ZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjMyTmVhcmVzdD4oKTsKKyAg
ICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRGbG9h
dCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZSh3YXNtVW5ib3hlZEZsb2F0KHN0
ZDo6bmVhcmJ5aW50KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGY2NF9j
ZWlsKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlv
biA9IHBjLT5hczxXYXNtRjY0Q2VpbD4oKTsKKyAgICBkb3VibGUgb3BlcmFuZCA9IFJFQUQoaW5z
dHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAgV0FTTV9SRVRVUk4oSlNW
YWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHN0ZDo6Y2VpbChvcGVyYW5kKSkpKTsKK30KKwor
V0FTTV9TTE9XX1BBVEhfREVDTChmNjRfZmxvb3IpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3Rh
bmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GNjRGbG9vcj4oKTsKKyAg
ICBkb3VibGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91
YmxlKCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHN0
ZDo6Zmxvb3Iob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjY0X3RydW5j
KQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9
IHBjLT5hczxXYXNtRjY0VHJ1bmM+KCk7CisgICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGluc3Ry
dWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgpOworICAgIFdBU01fUkVUVVJOKEpTVmFs
dWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGQ6OnRydW5jKG9wZXJhbmQpKSkpOworfQorCitX
QVNNX1NMT1dfUEFUSF9ERUNMKGY2NF9uZWFyZXN0KQoreworICAgIHN0YXRpY19hc3NlcnQoc3Rk
OjpudW1lcmljX2xpbWl0czxmbG9hdD46OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91bmRfdG9fbmVh
cmVzdCk7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9u
ID0gcGMtPmFzPFdhc21GNjROZWFyZXN0PigpOworICAgIGRvdWJsZSBvcGVyYW5kID0gUkVBRChp
bnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUoKTsKKyAgICBXQVNNX1JFVFVSTihK
U1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoc3RkOjpuZWFyYnlpbnQob3BlcmFuZCkpKSk7
Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjMyX2NvbnZlcnRfdV9pNjQpCit7CisgICAgc3Rh
dGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cm91bmRfc3R5bGUgPT0gc3Rk
Ojpyb3VuZF90b19uZWFyZXN0KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1
dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUYzMkNvbnZlcnRVSTY0PigpOworICAgIHVpbnQ2
NF90IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEludDY0KCk7
CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKHdhc21VbmJveGVkRmxvYXQoc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGYzMl9j
b252ZXJ0X3NfaTY0KQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxm
bG9hdD46OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7CisgICAgVU5VU0VE
X1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GMzJD
b252ZXJ0U0k2ND4oKTsKKyAgICBpbnQ2NF90IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1f
b3BlcmFuZCkudW5ib3hlZEludDY0KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2Rl
KHdhc21VbmJveGVkRmxvYXQoc3RhdGljX2Nhc3Q8ZmxvYXQ+KG9wZXJhbmQpKSkpOworfQorCitX
QVNNX1NMT1dfUEFUSF9ERUNMKGY2NF9jb252ZXJ0X3VfaTY0KQoreworICAgIHN0YXRpY19hc3Nl
cnQoc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91bmRf
dG9fbmVhcmVzdCk7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3Ry
dWN0aW9uID0gcGMtPmFzPFdhc21GNjRDb252ZXJ0VUk2ND4oKTsKKyAgICB1aW50NjRfdCBvcGVy
YW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRJbnQ2NCgpOworICAgIFdB
U01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGF0aWNfY2FzdDxkb3Vi
bGU+KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGY2NF9jb252ZXJ0X3Nf
aTY0KQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnJv
dW5kX3N0eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7CisgICAgVU5VU0VEX1BBUkFNKGlu
c3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GNjRDb252ZXJ0U0k2
ND4oKTsKKyAgICBpbnQ2NF90IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCku
dW5ib3hlZEludDY0KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpzRG91Ymxl
TnVtYmVyKHN0YXRpY19jYXN0PGRvdWJsZT4ob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19Q
QVRIX0RFQ0woaTY0X3RydW5jX3VfZjMyKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7
CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1bmNVRjMyPigpOworICAg
IGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0
KCk7CisgICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8PSAtMS4wZiB8fCBv
cGVyYW5kID49IC0yLjBmICogc3RhdGljX2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikpCisgICAgICAg
IFdBU01fVEhST1coV2FzbTo6RXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNUcnVuYyk7CisgICAg
V0FTTV9SRVRVUk4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG9wZXJhbmQpKTsKK30KKworV0FTTV9T
TE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc19mMzIpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3Rh
bmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1NGMzI+KCk7
CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVk
RmxvYXQoKTsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5kKSB8fCBvcGVyYW5kIDwgc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikgfHwgb3BlcmFuZCA+PSAtc3RhdGljX2Nhc3Q8ZmxvYXQ+
KElOVDY0X01JTikpCisgICAgICAgIFdBU01fVEhST1coV2FzbTo6RXhjZXB0aW9uVHlwZTo6T3V0
T2ZCb3VuZHNUcnVuYyk7CisgICAgV0FTTV9SRVRVUk4oc3RhdGljX2Nhc3Q8aW50NjRfdD4ob3Bl
cmFuZCkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY191X2Y2NCkKK3sKKyAg
ICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8
V2FzbUk2NFRydW5jVUY2ND4oKTsKKyAgICBkb3VibGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rp
b24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFu
ZCkgfHwgb3BlcmFuZCA8PSAtMS4wIHx8IG9wZXJhbmQgPj0gLTIuMCAqIHN0YXRpY19jYXN0PGRv
dWJsZT4oSU5UNjRfTUlOKSkKKyAgICAgICAgV0FTTV9USFJPVyhXYXNtOjpFeGNlcHRpb25UeXBl
OjpPdXRPZkJvdW5kc1RydW5jKTsKKyAgICBXQVNNX1JFVFVSTihzdGF0aWNfY2FzdDx1aW50NjRf
dD4ob3BlcmFuZCkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY19zX2Y2NCkK
K3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBw
Yy0+YXM8V2FzbUk2NFRydW5jU0Y2ND4oKTsKKyAgICBkb3VibGUgb3BlcmFuZCA9IFJFQUQoaW5z
dHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAgaWYgKHN0ZDo6aXNuYW4o
b3BlcmFuZCkgfHwgb3BlcmFuZCA8IHN0YXRpY19jYXN0PGRvdWJsZT4oSU5UNjRfTUlOKSB8fCBv
cGVyYW5kID49IC1zdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0X01JTikpCisgICAgICAgIFdBU01f
VEhST1coV2FzbTo6RXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNUcnVuYyk7CisgICAgV0FTTV9S
RVRVUk4oc3RhdGljX2Nhc3Q8aW50NjRfdD4ob3BlcmFuZCkpOworfQorCitXQVNNX1NMT1dfUEFU
SF9ERUNMKGk2NF90cnVuY19zYXRfZjMyX3UpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNl
KTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1NhdEYzMlU+KCk7
CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVk
RmxvYXQoKTsKKyAgICB1aW50NjRfdCByZXN1bHQ7CisgICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFu
ZCkgfHwgb3BlcmFuZCA8PSAtMS4wZikKKyAgICAgICAgcmVzdWx0ID0gMDsKKyAgICBlbHNlIGlm
IChvcGVyYW5kID49IC0yLjBmICogc3RhdGljX2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikpCisgICAg
ICAgIHJlc3VsdCA9IFVJTlQ2NF9NQVg7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBzdGF0
aWNfY2FzdDx1aW50NjRfdD4ob3BlcmFuZCk7CisgICAgV0FTTV9SRVRVUk4ocmVzdWx0KTsKK30K
KworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc2F0X2YzMl9zKQoreworICAgIFVOVVNF
RF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0
VHJ1bmNTYXRGMzJTPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1f
b3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgaW50NjRfdCByZXN1bHQ7CisgICAgaWYgKHN0
ZDo6aXNuYW4ob3BlcmFuZCkpCisgICAgICAgIHJlc3VsdCA9IDA7CisgICAgZWxzZSBpZiAob3Bl
cmFuZCA8IHN0YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4pKQorICAgICAgICByZXN1bHQgPSBJ
TlQ2NF9NSU47CisgICAgZWxzZSBpZiAob3BlcmFuZCA+PSAtc3RhdGljX2Nhc3Q8ZmxvYXQ+KElO
VDY0X01JTikpCisgICAgICAgIHJlc3VsdCA9IElOVDY0X01BWDsKKyAgICBlbHNlCisgICAgICAg
IHJlc3VsdCA9IHN0YXRpY19jYXN0PGludDY0X3Q+KG9wZXJhbmQpOworICAgIFdBU01fUkVUVVJO
KHJlc3VsdCk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3NhdF9mNjRfdSkK
K3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBw
Yy0+YXM8V2FzbUk2NFRydW5jU2F0RjY0VT4oKTsKKyAgICBkb3VibGUgb3BlcmFuZCA9IFJFQUQo
aW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAgdWludDY0X3QgcmVz
dWx0OworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9wZXJhbmQgPD0gLTEuMCkKKyAg
ICAgICAgcmVzdWx0ID0gMDsKKyAgICBlbHNlIGlmIChvcGVyYW5kID49IC0yLjAgKiBzdGF0aWNf
Y2FzdDxkb3VibGU+KElOVDY0X01JTikpCisgICAgICAgIHJlc3VsdCA9IFVJTlQ2NF9NQVg7Cisg
ICAgZWxzZQorICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4ob3BlcmFuZCk7
CisgICAgV0FTTV9SRVRVUk4ocmVzdWx0KTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRf
dHJ1bmNfc2F0X2Y2NF9zKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0
byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1bmNTYXRGNjRTPigpOworICAgIGRvdWJs
ZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUoKTsK
KyAgICBpbnQ2NF90IHJlc3VsdDsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5kKSkKKyAgICAg
ICAgcmVzdWx0ID0gMDsKKyAgICBlbHNlIGlmIChvcGVyYW5kIDwgc3RhdGljX2Nhc3Q8ZG91Ymxl
PihJTlQ2NF9NSU4pKQorICAgICAgICByZXN1bHQgPSBJTlQ2NF9NSU47CisgICAgZWxzZSBpZiAo
b3BlcmFuZCA+PSAtc3RhdGljX2Nhc3Q8ZG91YmxlPihJTlQ2NF9NSU4pKQorICAgICAgICByZXN1
bHQgPSBJTlQ2NF9NQVg7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxp
bnQ2NF90PihvcGVyYW5kKTsKKyAgICBXQVNNX1JFVFVSTihyZXN1bHQpOworfQorI2VuZGlmCisK
IGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3Rocm93X2V4Y2Vw
dGlvbihDYWxsRnJhbWUqIGNhbGxGcmFtZSwgY29uc3QgV2FzbUluc3RydWN0aW9uKiBwYywgV2Fz
bTo6SW5zdGFuY2UqIGluc3RhbmNlLCBXYXNtOjpFeGNlcHRpb25UeXBlIGV4Y2VwdGlvblR5cGUp
CiB7CiAgICAgVU5VU0VEX1BBUkFNKHBjKTsKQEAgLTcyNSwxNiArOTM1LDI4IEBAIGV4dGVybiAi
QyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3Rocm93X2V4Y2VwdGlvbihDYWxs
RnJhbWUqIGNhbGxGcmFtCiAKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0
aF93YXNtX3BvcGNvdW50KGNvbnN0IFdhc21JbnN0cnVjdGlvbiogcGMsIHVpbnQzMl90IHgpCiB7
Ci0gICAgdm9pZCogcmVzdWx0ID0gYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDx1aW50
NjRfdD4oX19idWlsdGluX3BvcGNvdW50KHgpKSk7CisgICAgdm9pZCogcmVzdWx0ID0gYml0d2lz
ZV9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDxzaXplX3Q+KF9fYnVpbHRpbl9wb3Bjb3VudCh4KSkp
OwogICAgIFdBU01fUkVUVVJOX1RXTyhwYywgcmVzdWx0KTsKIH0KIAogZXh0ZXJuICJDIiBTbG93
UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fcG9wY291bnRsbChjb25zdCBXYXNtSW5zdHJ1
Y3Rpb24qIHBjLCB1aW50NjRfdCB4KQogewotICAgIHZvaWQqIHJlc3VsdCA9IGJpdHdpc2VfY2Fz
dDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KF9fYnVpbHRpbl9wb3Bjb3VudGxsKHgpKSk7
CisgICAgdm9pZCogcmVzdWx0ID0gYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDxzaXpl
X3Q+KF9fYnVpbHRpbl9wb3Bjb3VudGxsKHgpKSk7CiAgICAgV0FTTV9SRVRVUk5fVFdPKHBjLCBy
ZXN1bHQpOwogfQogCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKy8vIE5vdGU6IEFsbCB0aGVzZSBk
aXYgYW5kIHJlbSBvcHMgcGVyZm9ybSBleGNlcHRpb24gY2hlY2tzIGluIGFzbQorZXh0ZXJuICJD
IiBpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9kaXZfcyhpbnQzMl90IGEsIGludDMyX3QgYikg
eyByZXR1cm4gYSAvIGI7IH0KK2V4dGVybiAiQyIgdWludDMyX3Qgc2xvd19wYXRoX3dhc21faTMy
X2Rpdl91KHVpbnQzMl90IGEsIHVpbnQzMl90IGIpIHsgcmV0dXJuIGEgLyBiOyB9CitleHRlcm4g
IkMiIGludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX3JlbV9zKGludDMyX3QgYSwgaW50MzJfdCBi
KSB7IHJldHVybiBhICUgYjsgfQorZXh0ZXJuICJDIiB1aW50MzJfdCBzbG93X3BhdGhfd2FzbV9p
MzJfcmVtX3UodWludDMyX3QgYSwgdWludDMyX3QgYikgeyByZXR1cm4gYSAlIGI7IH0KK2V4dGVy
biAiQyIgaW50NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRfZGl2X3MoaW50NjRfdCBhLCBpbnQ2NF90
IGIpIHsgcmV0dXJuIGEgLyBiOyB9CitleHRlcm4gIkMiIHVpbnQ2NF90IHNsb3dfcGF0aF93YXNt
X2k2NF9kaXZfdSh1aW50NjRfdCBhLCB1aW50NjRfdCBiKSB7IHJldHVybiBhIC8gYjsgfQorZXh0
ZXJuICJDIiBpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9yZW1fcyhpbnQ2NF90IGEsIGludDY0
X3QgYikgeyByZXR1cm4gYSAlIGI7IH0KK2V4dGVybiAiQyIgdWludDY0X3Qgc2xvd19wYXRoX3dh
c21faTY0X3JlbV91KHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIpIHsgcmV0dXJuIGEgJSBiOyB9Cisj
ZW5kaWYKKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50CiAKICNlbmRpZiAvLyBFTkFCTEUo
V0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
U2xvd1BhdGhzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmgK
aW5kZXggNDYwOWUzNmIwMzkyNGQxMGVhMDI3NDU2MTBmMGYyZmU0ZTgzMWYyMi4uODlmNmUzOTRk
ODZjMjY3NzljODFhYTJlMzhjMDMxMDFhNDhhZDU0MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21TbG93UGF0aHMuaApAQCAtOTQsNiArOTQsNDAgQEAgZXh0ZXJuICJDIiBTbG93
UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fdGhyb3dfZXhjZXB0aW9uKENhbGxGcmFtZSos
IGNvbnN0IFcKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3Bv
cGNvdW50KGNvbnN0IFdhc21JbnN0cnVjdGlvbiogcGMsIHVpbnQzMl90KSBSRUZFUkVOQ0VEX0ZS
T01fQVNNIFdURl9JTlRFUk5BTDsKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3df
cGF0aF93YXNtX3BvcGNvdW50bGwoY29uc3QgV2FzbUluc3RydWN0aW9uKiBwYywgdWludDY0X3Qp
IFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOwogCisjaWYgVVNFKEpTVkFMVUUzMl82
NCkKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGYzMl9jZWlsKTsKK1dBU01fU0xPV19QQVRI
X0hJRERFTl9ERUNMKGYzMl9mbG9vcik7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmMzJf
dHJ1bmMpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjMyX25lYXJlc3QpOworV0FTTV9T
TE9XX1BBVEhfSElEREVOX0RFQ0woZjY0X2NlaWwpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RF
Q0woZjY0X2Zsb29yKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGY2NF90cnVuYyk7CitX
QVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfbmVhcmVzdCk7CitXQVNNX1NMT1dfUEFUSF9I
SURERU5fREVDTChmMzJfY29udmVydF91X2k2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVD
TChmMzJfY29udmVydF9zX2k2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfY29u
dmVydF91X2k2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfY29udmVydF9zX2k2
NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNfdV9mMzIpOworV0FTTV9T
TE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3NfZjMyKTsKK1dBU01fU0xPV19QQVRIX0hJ
RERFTl9ERUNMKGk2NF90cnVuY191X2Y2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChp
NjRfdHJ1bmNfc19mNjQpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3Nh
dF9mMzJfdSk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNfc2F0X2YzMl9z
KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGk2NF90cnVuY19zYXRfZjY0X3UpOworV0FT
TV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3NhdF9mNjRfcyk7CisjZW5kaWYKKwor
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCitleHRlcm4gIkMiIGludDMyX3Qgc2xvd19wYXRoX3dhc21f
aTMyX2Rpdl9zKGludDMyX3QgYSwgaW50MzJfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9J
TlRFUk5BTDsKK2V4dGVybiAiQyIgdWludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX2Rpdl91KHVp
bnQzMl90IGEsIHVpbnQzMl90IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOwor
ZXh0ZXJuICJDIiBpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9yZW1fcyhpbnQzMl90IGEsIGlu
dDMyX3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMiIHVp
bnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9yZW1fdSh1aW50MzJfdCBhLCB1aW50MzJfdCBiKSBS
RUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgaW50NjRfdCBzbG93
X3BhdGhfd2FzbV9pNjRfZGl2X3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpIFJFRkVSRU5DRURfRlJP
TV9BU00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJDIiB1aW50NjRfdCBzbG93X3BhdGhfd2FzbV9p
NjRfZGl2X3UodWludDY0X3QgYSwgdWludDY0X3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZf
SU5URVJOQUw7CitleHRlcm4gIkMiIGludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X3JlbV9zKGlu
dDY0X3QgYSwgaW50NjRfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK2V4
dGVybiAiQyIgdWludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X3JlbV91KHVpbnQ2NF90IGEsIHVp
bnQ2NF90IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOworI2VuZGlmCisKIH0g
fSAvLyBuYW1lc3BhY2UgSlNDOjpMTEludAogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRp
b24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uY3Bw
CmluZGV4IDUyMjNmM2FiNGU0MGZiNDk4NDdlMGU5NmE2YzM5NzE4ZWY0MTA5YjUuLjY4Yzc4ODg5
MDZkYjhiNTFjOTUwNGJlOWVjZTljYmJmY2VkMmZkMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5jcHAKQEAgLTM1LDggKzM1LDExIEBAIHZv
aWQgVmFsdWVMb2NhdGlvbjo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewogICAgIG91
dC5wcmludChtX2tpbmQpOwogICAgIHN3aXRjaCAobV9raW5kKSB7Ci0gICAgY2FzZSBSZWdpc3Rl
cjoKLSAgICAgICAgb3V0LnByaW50KCIoIiwgcmVnKCksICIpIik7CisgICAgY2FzZSBHUFJSZWdp
c3RlcjoKKyAgICAgICAgb3V0LnByaW50KCIoIiwganNyKCksICIpIik7CisgICAgICAgIHJldHVy
bjsKKyAgICBjYXNlIEZQUlJlZ2lzdGVyOgorICAgICAgICBvdXQucHJpbnQoIigiLCBmcHIoKSwg
IikiKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgU3RhY2s6CiAgICAgICAgIG91dC5wcmlu
dCgiKCIsIG9mZnNldEZyb21GUCgpLCAiKSIpOwpAQCAtNTcsOCArNjAsMTEgQEAgdXNpbmcgbmFt
ZXNwYWNlIEpTQzo6V2FzbTsKIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBW
YWx1ZUxvY2F0aW9uOjpLaW5kIGtpbmQpCiB7CiAgICAgc3dpdGNoIChraW5kKSB7Ci0gICAgY2Fz
ZSBWYWx1ZUxvY2F0aW9uOjpSZWdpc3RlcjoKLSAgICAgICAgb3V0LnByaW50KCJSZWdpc3RlciIp
OworICAgIGNhc2UgVmFsdWVMb2NhdGlvbjo6R1BSUmVnaXN0ZXI6CisgICAgICAgIG91dC5wcmlu
dCgiR1BSUmVnaXN0ZXIiKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgVmFsdWVMb2NhdGlv
bjo6RlBSUmVnaXN0ZXI6CisgICAgICAgIG91dC5wcmludCgiRlBSUmVnaXN0ZXIiKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIGNhc2UgVmFsdWVMb2NhdGlvbjo6U3RhY2s6CiAgICAgICAgIG91dC5w
cmludCgiU3RhY2siKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21WYWx1ZUxvY2F0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVM
b2NhdGlvbi5oCmluZGV4IGE2MWZiYThiZDAxY2I0YWMwY2E2YjZjYTdlZTQ0ZDdiNzcwZDQ4YTMu
LjVjYjUxMGRiYmQwYjFiMDQ3ZjVjOTI2MTc5ZTFhM2ZiOWNiYWIxY2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uaApAQCAtNDEsMjUgKzQxLDI3
IEBAIGNsYXNzIFZhbHVlTG9jYXRpb24gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgogICAgIGVudW0gS2luZCA6IHVpbnQ4X3QgewotICAgICAgICBSZWdpc3RlciwKKyAg
ICAgICAgR1BSUmVnaXN0ZXIsCisgICAgICAgIEZQUlJlZ2lzdGVyLAogICAgICAgICBTdGFjaywK
ICAgICAgICAgU3RhY2tBcmd1bWVudCwKICAgICB9OwogCiAgICAgVmFsdWVMb2NhdGlvbigpCi0g
ICAgICAgIDogbV9raW5kKFJlZ2lzdGVyKQorICAgICAgICA6IG1fa2luZChHUFJSZWdpc3RlcikK
ICAgICB7CiAgICAgfQogCi0gICAgZXhwbGljaXQgVmFsdWVMb2NhdGlvbihSZWcgcmVnKQotICAg
ICAgICA6IG1fa2luZChSZWdpc3RlcikKKyAgICBleHBsaWNpdCBWYWx1ZUxvY2F0aW9uKEpTVmFs
dWVSZWdzIHJlZ3MpCisgICAgICAgIDogbV9raW5kKEdQUlJlZ2lzdGVyKQogICAgIHsKLSAgICAg
ICAgdS5yZWcgPSByZWc7CisgICAgICAgIHUuanNyID0gcmVnczsKICAgICB9CiAKLSAgICBzdGF0
aWMgVmFsdWVMb2NhdGlvbiByZWcoUmVnIHJlZykKKyAgICBleHBsaWNpdCBWYWx1ZUxvY2F0aW9u
KEZQUlJlZyByZWcpCisgICAgICAgIDogbV9raW5kKEZQUlJlZ2lzdGVyKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIFZhbHVlTG9jYXRpb24ocmVnKTsKKyAgICAgICAgdS5mcHIgPSByZWc7CiAgICAg
fQogCiAgICAgc3RhdGljIFZhbHVlTG9jYXRpb24gc3RhY2soaW50cHRyX3Qgb2Zmc2V0RnJvbUZQ
KQpAQCAtODAsMjEgKzgyLDIyIEBAIHB1YmxpYzoKIAogICAgIEtpbmQga2luZCgpIGNvbnN0IHsg
cmV0dXJuIG1fa2luZDsgfQogCi0gICAgYm9vbCBpc1JlZygpIGNvbnN0IHsgcmV0dXJuIGtpbmQo
KSA9PSBSZWdpc3RlcjsgfQorICAgIGJvb2wgaXNHUFIoKSBjb25zdCB7IHJldHVybiBraW5kKCkg
PT0gR1BSUmVnaXN0ZXI7IH0KKyAgICBib29sIGlzRlBSKCkgY29uc3QgeyByZXR1cm4ga2luZCgp
ID09IEZQUlJlZ2lzdGVyOyB9CisgICAgYm9vbCBpc1N0YWNrKCkgY29uc3QgeyByZXR1cm4ga2lu
ZCgpID09IFN0YWNrOyB9CisgICAgYm9vbCBpc1N0YWNrQXJndW1lbnQoKSBjb25zdCB7IHJldHVy
biBraW5kKCkgPT0gU3RhY2tBcmd1bWVudDsgfQogCi0gICAgUmVnIHJlZygpIGNvbnN0CisgICAg
SlNWYWx1ZVJlZ3MganNyKCkgY29uc3QKICAgICB7Ci0gICAgICAgIEFTU0VSVChpc1JlZygpKTsK
LSAgICAgICAgcmV0dXJuIHUucmVnOworICAgICAgICBBU1NFUlQoaXNHUFIoKSk7CisgICAgICAg
IHJldHVybiB1LmpzcjsKICAgICB9CiAKLSAgICBib29sIGlzR1BSKCkgY29uc3QgeyByZXR1cm4g
aXNSZWcoKSAmJiByZWcoKS5pc0dQUigpOyB9Ci0gICAgYm9vbCBpc0ZQUigpIGNvbnN0IHsgcmV0
dXJuIGlzUmVnKCkgJiYgcmVnKCkuaXNGUFIoKTsgfQotCi0gICAgR1BSUmVnIGdwcigpIGNvbnN0
IHsgcmV0dXJuIHJlZygpLmdwcigpOyB9Ci0gICAgRlBSUmVnIGZwcigpIGNvbnN0IHsgcmV0dXJu
IHJlZygpLmZwcigpOyB9Ci0KLSAgICBib29sIGlzU3RhY2soKSBjb25zdCB7IHJldHVybiBraW5k
KCkgPT0gU3RhY2s7IH0KKyAgICBGUFJSZWcgZnByKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFT
U0VSVChpc0ZQUigpKTsKKyAgICAgICAgcmV0dXJuIHUuZnByOworICAgIH0KIAogICAgIGludHB0
cl90IG9mZnNldEZyb21GUCgpIGNvbnN0CiAgICAgewpAQCAtMTAyLDggKzEwNSw2IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIHUub2Zmc2V0RnJvbUZQOwogICAgIH0KIAotICAgIGJvb2wgaXNT
dGFja0FyZ3VtZW50KCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IFN0YWNrQXJndW1lbnQ7IH0K
LQogICAgIGludHB0cl90IG9mZnNldEZyb21TUCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NF
UlQoaXNTdGFja0FyZ3VtZW50KCkpOwpAQCAtMTE0LDcgKzExNSw4IEBAIHB1YmxpYzoKIAogcHJp
dmF0ZToKICAgICB1bmlvbiBVIHsKLSAgICAgICAgUmVnIHJlZzsKKyAgICAgICAgSlNWYWx1ZVJl
Z3MganNyOworICAgICAgICBGUFJSZWcgZnByOwogICAgICAgICBpbnRwdHJfdCBvZmZzZXRGcm9t
RlA7CiAgICAgICAgIGludHB0cl90IG9mZnNldEZyb21TUDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvSlNUb1dhc20uY3BwCmluZGV4IDFmNDY0ZmU5OGJhZDgzNDQwNGQxMTAxODlk
ZGNmOGYyNTQ0M2JkM2EuLjk0MTlkZDA1Y2FhODU3MjBmOGRjMzM1YThlYTczYTQ1NTQ3ZjljZmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVl
SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlJbnN0YW5jZS5oIgorI2luY2x1ZGUg
Ik1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiV2FzbUNhbGxpbmdD
b252ZW50aW9uLmgiCiAjaW5jbHVkZSAiV2FzbUNvbnRleHRJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
V2FzbU9wZXJhdGlvbnMuaCIKQEAgLTQwLDEzICs0MSwxMyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIFdhc20gewogCiB2b2lkIG1hcnNoYWxsSlNSZXN1bHQoQ0NhbGxIZWxwZXJzJiBqaXQs
IGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlLCBjb25zdCBDYWxsSW5mb3JtYXRpb24mIHdhc21G
cmFtZUNvbnZlbnRpb24sIGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXRMaXN0JiBzYXZlZFJlc3VsdFJl
Z2lzdGVycykKIHsKLSAgICBhdXRvIGJveFdhc21SZXN1bHQgPSBbXShDQ2FsbEhlbHBlcnMmIGpp
dCwgVHlwZSB0eXBlLCBSZWcgc3JjLCBKU1ZhbHVlUmVncyBkc3QpIHsKKyAgICBhdXRvIGJveFdh
c21SZXN1bHQgPSBbXShDQ2FsbEhlbHBlcnMmIGppdCwgVHlwZSB0eXBlLCBWYWx1ZUxvY2F0aW9u
IHNyYywgSlNWYWx1ZVJlZ3MgZHN0KSB7CiAgICAgICAgIHN3aXRjaCAodHlwZS5raW5kKSB7CiAg
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OlZvaWQ6CiAgICAgICAgICAgICBqaXQubW92ZVRydXN0ZWRW
YWx1ZShqc1VuZGVmaW5lZCgpLCBkc3QpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgVHlwZUtpbmQ6OkkzMjoKLSAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoc3Jj
LmdwcigpLCBkc3QucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJU
b1dvcmQoc3JjLmpzcigpLnBheWxvYWRHUFIoKSwgZHN0LnBheWxvYWRHUFIoKSk7CiAgICAgICAg
ICAgICBqaXQuYm94SW50MzIoZHN0LnBheWxvYWRHUFIoKSwgZHN0LCBEb05vdEhhdmVUYWdSZWdp
c3RlcnMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoK
QEAgLTU1LDEzICs1NiwxNyBAQCB2b2lkIG1hcnNoYWxsSlNSZXN1bHQoQ0NhbGxIZWxwZXJzJiBq
aXQsIGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlLCBjb25zdCBDYWxsSQogICAgICAgICBjYXNl
IFR5cGVLaW5kOjpGNjQ6IHsKICAgICAgICAgICAgIGppdC5tb3ZlVHJ1c3RlZFZhbHVlKGpzTnVt
YmVyKHB1cmVOYU4oKSksIGRzdCk7CiAgICAgICAgICAgICBhdXRvIGlzTmFOID0gaml0LmJyYW5j
aElmTmFOKHNyYy5mcHIoKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgICAgIGppdC5i
b3hEb3VibGUoc3JjLmZwcigpLCBkc3QsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisjZWxzZQor
ICAgICAgICAgICAgaml0LmJveERvdWJsZShzcmMuZnByKCksIGRzdCk7CisjZW5kaWYKICAgICAg
ICAgICAgIGlzTmFOLmxpbmsoJmppdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBkZWZhdWx0OiB7CiAgICAgICAgICAgICBpZiAoaXNGdW5jcmVmKHR5cGUpIHx8IGlz
RXh0ZXJucmVmKHR5cGUpKQotICAgICAgICAgICAgICAgIGppdC5tb3ZlKHNyYy5ncHIoKSwgZHN0
LnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICAgICAgaml0Lm1vdmVWYWx1ZVJlZ3Moc3JjLmpz
cigpLCBkc3QpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGppdC5icmVha3Bv
aW50KCk7CiAgICAgICAgIH0KQEAgLTY5LDQ0ICs3NCw4NyBAQCB2b2lkIG1hcnNoYWxsSlNSZXN1
bHQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlLCBjb25zdCBD
YWxsSQogICAgIH07CiAKICAgICBpZiAoc2lnbmF0dXJlLnJldHVybnNWb2lkKCkpCi0gICAgICAg
IGppdC5tb3ZlVHJ1c3RlZFZhbHVlKGpzVW5kZWZpbmVkKCksIEpTVmFsdWVSZWdzIHsgR1BSSW5m
bzo6cmV0dXJuVmFsdWVHUFIgfSk7CisgICAgICAgIGppdC5tb3ZlVHJ1c3RlZFZhbHVlKGpzVW5k
ZWZpbmVkKCksIEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsKICAgICBlbHNlIGlmIChzaWduYXR1
cmUucmV0dXJuQ291bnQoKSA9PSAxKSB7CiAgICAgICAgIGlmIChzaWduYXR1cmUucmV0dXJuVHlw
ZSgwKS5pc0k2NCgpKSB7Ci0gICAgICAgICAgICBHUFJSZWcgaW5wdXRHUFIgPSB3YXNtRnJhbWVD
b252ZW50aW9uLnJlc3VsdHNbMF0ucmVnKCkuZ3ByKCk7CisgICAgICAgICAgICBKU1ZhbHVlUmVn
cyBpbnB1dEpTUiA9IHdhc21GcmFtZUNvbnZlbnRpb24ucmVzdWx0c1swXS5qc3IoKTsKICAgICAg
ICAgICAgIEdQUlJlZyB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gUGlubmVkUmVnaXN0ZXJJbmZv
OjpnZXQoKS53YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlcjsKICAgICAgICAgICAgIGlmIChDb250
ZXh0Ojp1c2VGYXN0VExTKCkpIHsKLSAgICAgICAgICAgICAgICB3YXNtQ29udGV4dEluc3RhbmNl
R1BSID0gaW5wdXRHUFIgPT0gR1BSSW5mbzo6YXJndW1lbnRHUFIxID8gR1BSSW5mbzo6YXJndW1l
bnRHUFIwIDogR1BSSW5mbzo6YXJndW1lbnRHUFIxOwotICAgICAgICAgICAgICAgIHN0YXRpY19h
c3NlcnQoc3RkOjppc19zYW1lX3Y8V2FzbTo6SW5zdGFuY2UqLCB0eXBlbmFtZSBGdW5jdGlvblRy
YWl0czxkZWNsdHlwZShvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSk+OjpBcmd1bWVudFR5
cGU8MT4+KTsKKyAgICAgICAgICAgICAgICB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gaW5wdXRK
U1IucGF5bG9hZEdQUigpID09IEdQUkluZm86OmFyZ3VtZW50R1BSMSA/IEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCA6IEdQUkluZm86OmFyZ3VtZW50R1BSMTsKKyAgICAgICAgICAgICAgICBBU1NFUlQo
IWlucHV0SlNSLnVzZXMod2FzbUNvbnRleHRJbnN0YW5jZUdQUikpOworICAgICAgICAgICAgICAg
IHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lX3Y8V2FzbTo6SW5zdGFuY2UqLCB0eXBlbmFtZSBG
dW5jdGlvblRyYWl0czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPjo6QXJndW1l
bnRUeXBlPDE+Pik7CiAgICAgICAgICAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNl
KHdhc21Db250ZXh0SW5zdGFuY2VHUFIpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaml0
LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+KHdhc21D
b250ZXh0SW5zdGFuY2VHUFIsIGlucHV0R1BSKTsKKyAgICAgICAgICAgIGppdC5zZXR1cEFyZ3Vt
ZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPih3YXNtQ29udGV4dEluc3Rh
bmNlR1BSLCBpbnB1dEpTUik7CiAgICAgICAgICAgICBqaXQuY2FsbE9wZXJhdGlvbihGdW5jdGlv
blB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCkpOwogICAgICAg
ICB9IGVsc2UKLSAgICAgICAgICAgIGJveFdhc21SZXN1bHQoaml0LCBzaWduYXR1cmUucmV0dXJu
VHlwZSgwKSwgd2FzbUZyYW1lQ29udmVudGlvbi5yZXN1bHRzWzBdLnJlZygpLCBKU1ZhbHVlUmVn
cyB7IEdQUkluZm86OnJldHVyblZhbHVlR1BSIH0pOworICAgICAgICAgICAgYm94V2FzbVJlc3Vs
dChqaXQsIHNpZ25hdHVyZS5yZXR1cm5UeXBlKDApLCB3YXNtRnJhbWVDb252ZW50aW9uLnJlc3Vs
dHNbMF0sIEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsKICAgICB9IGVsc2UgewogICAgICAgICBJ
bmRleGluZ1R5cGUgaW5kZXhpbmdUeXBlID0gQXJyYXlXaXRoVW5kZWNpZGVkOwotICAgICAgICBK
U1ZhbHVlUmVncyBzY3JhdGNoID0gSlNWYWx1ZVJlZ3MgeyB3YXNtQ2FsbGluZ0NvbnZlbnRpb24o
KS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdIH07CisgICAgICAgIEpTVmFsdWVSZWdzIHNjcmF0Y2hK
U1IgPSBKU1ZhbHVlUmVncyB7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIHdh
c21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMl0sCisjZW5kaWYKKyAg
ICAgICAgICAgIHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMV0K
KyAgICAgICAgfTsKKworICAgICAgICBBU1NFUlQoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkgIT0g
R1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBB
U1NFUlQoc2NyYXRjaEpTUi50YWdHUFIoKSAhPSBHUFJSZWc6OkludmFsaWRHUFJSZWcpOworICAg
ICAgICBBU1NFUlQoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkgIT0gc2NyYXRjaEpTUi50YWdHUFIo
KSk7CisjZW5kaWYKKwogICAgICAgICAvLyBXZSBjYW4gdXNlIHRoZSBmaXJzdCBmbG9hdGluZyBw
b2ludCByZWdpc3RlciBhcyBhIHNjcmF0Y2ggc2luY2UgaXQgd2lsbCBhbHdheXMgYmUgbW92ZWQg
b250byB0aGUgc3RhY2sgYmVmb3JlIG90aGVyIHZhbHVlcy4KLSAgICAgICAgRlBSUmVnIGZwclNj
cmF0Y2ggPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5mcHJBcmdzWzBdLmZwcigpOworICAgICAg
ICBGUFJSZWcgZnByU2NyYXRjaCA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpLmZwckFyZ3NbMF07
CiAgICAgICAgIGJvb2wgaGFzSTY0ID0gZmFsc2U7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBzaWduYXR1cmUucmV0dXJuQ291bnQoKTsgKytpKSB7CiAgICAgICAgICAgICBWYWx1
ZUxvY2F0aW9uIGxvYyA9IHdhc21GcmFtZUNvbnZlbnRpb24ucmVzdWx0c1tpXTsKICAgICAgICAg
ICAgIFR5cGUgdHlwZSA9IHNpZ25hdHVyZS5yZXR1cm5UeXBlKGkpOwogCiAgICAgICAgICAgICBo
YXNJNjQgfD0gdHlwZS5pc0k2NCgpOwotICAgICAgICAgICAgaWYgKGxvYy5pc1JlZygpKSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKCF0eXBlLmlzSTY0KCkpIHsKLSAgICAgICAgICAgICAgICAgICAg
Ym94V2FzbVJlc3VsdChqaXQsIHNpZ25hdHVyZS5yZXR1cm5UeXBlKGkpLCBsb2MucmVnKCksIHNj
cmF0Y2gpOwotICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNoLCBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2
ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MucmVnKCkpLT5vZmZzZXQoKSArIHdhc21GcmFtZUNv
bnZlbnRpb24uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSk7Ci0gICAgICAgICAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTVmFsdWVS
ZWdzIHsgbG9jLnJlZygpLmdwcigpIH0sIENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBl
cnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5y
ZWcoKSktPm9mZnNldCgpICsgd2FzbUZyYW1lQ29udmVudGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0
YWNrU2l6ZUluQnl0ZXMpKTsKKyAgICAgICAgICAgIGlmIChsb2MuaXNHUFIoKSB8fCBsb2MuaXNG
UFIoKSkgeworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgQVNTRVJUKCFs
b2MuaXNHUFIoKSB8fCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS5wYXlsb2Fk
R1BSKCkpLT5vZmZzZXQoKSArIDQgPT0gc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNy
KCkudGFnR1BSKCkpLT5vZmZzZXQoKSk7CisjZW5kaWYKKyAgICAgICAgICAgICAgICBhdXRvIGFk
ZHJlc3MgPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJS
ZWdpc3Rlciwgd2FzbUZyYW1lQ29udmVudGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUlu
Qnl0ZXMpOworICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZS5raW5kKSB7CisgICAgICAgICAg
ICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgorICAgICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6
OkY2NDoKKyAgICAgICAgICAgICAgICAgICAgYm94V2FzbVJlc3VsdChqaXQsIHR5cGUsIGxvYywg
c2NyYXRjaEpTUik7CisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2hK
U1IsIGFkZHJlc3Mud2l0aE9mZnNldChzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5mcHIo
KSktPm9mZnNldCgpKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDoKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFs
dWUobG9jLmpzcigpLCBhZGRyZXNzLndpdGhPZmZzZXQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmlu
ZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkpKTsKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAg
Ym94V2FzbVJlc3VsdChqaXQsIHR5cGUsIGxvYywgc2NyYXRjaEpTUik7CisgICAgICAgICAgICAg
ICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2hKU1IsIGFkZHJlc3Mud2l0aE9mZnNldChzYXZl
ZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSkp
OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGlmICghdHlwZS5pc0k2NCgpKSB7CiAgICAg
ICAgICAgICAgICAgICAgIGF1dG8gbG9jYXRpb24gPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0Nh
bGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgbG9jLm9mZnNldEZyb21TUCgpKTsKLSAg
ICAgICAgICAgICAgICAgICAgUmVnIHRtcCA9ICh0eXBlLmlzRjMyKCkgfHwgdHlwZS5pc0Y2NCgp
KSA/IFJlZyhmcHJTY3JhdGNoKSA6IFJlZyhzY3JhdGNoLmdwcigpKTsKLSAgICAgICAgICAgICAg
ICAgICAgaml0LmxvYWQ2NFRvUmVnKGxvY2F0aW9uLCB0bXApOwotICAgICAgICAgICAgICAgICAg
ICBib3hXYXNtUmVzdWx0KGppdCwgc2lnbmF0dXJlLnJldHVyblR5cGUoaSksIHRtcCwgc2NyYXRj
aCk7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2gsIGxvY2F0aW9u
KTsKKyAgICAgICAgICAgICAgICAgICAgVmFsdWVMb2NhdGlvbiB0bXA7CisgICAgICAgICAgICAg
ICAgICAgIHN3aXRjaCAodHlwZS5raW5kKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OkYzMjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFZhbHVlTG9jYXRpb24g
eyBmcHJTY3JhdGNoIH07CisgICAgICAgICAgICAgICAgICAgICAgICBqaXQubG9hZEZsb2F0KGxv
Y2F0aW9uLCBmcHJTY3JhdGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6CisgICAgICAgICAgICAgICAgICAg
ICAgICB0bXAgPSBWYWx1ZUxvY2F0aW9uIHsgZnByU2NyYXRjaCB9OworICAgICAgICAgICAgICAg
ICAgICAgICAgaml0LmxvYWREb3VibGUobG9jYXRpb24sIGZwclNjcmF0Y2gpOworICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6
OkkzMjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFZhbHVlTG9jYXRpb24geyBzY3Jh
dGNoSlNSIH07CisgICAgICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDMyKGxvY2F0aW9uLCBz
Y3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHRt
cCA9IFZhbHVlTG9jYXRpb24geyBzY3JhdGNoSlNSIH07CisgICAgICAgICAgICAgICAgICAgICAg
ICBqaXQubG9hZFZhbHVlKGxvY2F0aW9uLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IGJveFdhc21SZXN1bHQoaml0LCB0eXBlLCB0bXAsIHNjcmF0Y2hKU1IpOworICAgICAgICAgICAg
ICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNoSlNSLCBsb2NhdGlvbik7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQogCkBAIC0xMzUsMzcgKzE4Myw0NyBAQCB2b2lkIG1hcnNo
YWxsSlNSZXN1bHQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJl
LCBjb25zdCBDYWxsSQogCiAgICAgICAgICAgICAgICAgR1BSUmVnIHdhc21Db250ZXh0SW5zdGFu
Y2VHUFIgPSBQaW5uZWRSZWdpc3RlckluZm86OmdldCgpLndhc21Db250ZXh0SW5zdGFuY2VQb2lu
dGVyOwogICAgICAgICAgICAgICAgIGlmIChDb250ZXh0Ojp1c2VGYXN0VExTKCkpIHsKLSAgICAg
ICAgICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IEdQUkluZm86OmFyZ3VtZW50
R1BSMTsKLSAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWVfdjxX
YXNtOjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPGRlY2x0eXBlKG9wZXJhdGlv
bkFsbG9jYXRlUmVzdWx0c0FycmF5KT46OkFyZ3VtZW50VHlwZTwxPj4pOworICAgICAgICAgICAg
ICAgICAgICB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gcHJlZmVycmVkQXJndW1lbnRHUFI8ZGVj
bHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KSwgMT4oKTsKKyAgICAgICAgICAgICAgICAg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWVfdjxXYXNtOjpJbnN0YW5jZSosIHR5cGVuYW1l
IEZ1bmN0aW9uVHJhaXRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+OjpBcmd1
bWVudFR5cGU8MT4+KTsKICAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4dElu
c3RhbmNlKHdhc21Db250ZXh0SW5zdGFuY2VHUFIpOwogICAgICAgICAgICAgICAgIH0KIAotICAg
ICAgICAgICAgICAgIGlmIChsb2MuaXNSZWcoKSkKLSAgICAgICAgICAgICAgICAgICAgaml0Lmxv
YWQ2NChDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdp
c3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MucmVnKCkpLT5vZmZzZXQoKSArIHdh
c21GcmFtZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg
ICAgICAgICAgYXV0byBsb2NhdGlvbiA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBl
cnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBsb2Mub2Zmc2V0RnJvbVNQKCkpOwotICAgICAgICAg
ICAgICAgICAgICBqaXQubG9hZDY0VG9SZWcobG9jYXRpb24sIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50
czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPih3YXNtQ29udGV4dEluc3RhbmNl
R1BSLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAgICAgICAgICAgIGNvbnN0ZXhwciBK
U1ZhbHVlUmVncyB2YWx1ZUpTUiA9IHByZWZlcnJlZEFyZ3VtZW50SlNSPGRlY2x0eXBlKG9wZXJh
dGlvbkNvbnZlcnRUb0JpZ0ludCksIDI+KCk7CisKKyAgICAgICAgICAgICAgICBDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MgYWRkcmVzcyB7IENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIg
fTsKKyAgICAgICAgICAgICAgICBpZiAobG9jLmlzR1BSKCkgfHwgbG9jLmlzRlBSKCkpIHsKKyNp
ZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgICAgICBBU1NFUlQoc2F2ZWRSZXN1
bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkgKyA0ID09
IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnRhZ0dQUigpKS0+b2Zmc2V0KCkp
OworI2VuZGlmCisgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSBhZGRyZXNzLndpdGhPZmZz
ZXQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zm
c2V0KCkgKyB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5C
eXRlcyk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIGFkZHJl
c3MgPSBhZGRyZXNzLndpdGhPZmZzZXQobG9jLm9mZnNldEZyb21TUCgpKTsKKworICAgICAgICAg
ICAgICAgIGppdC5sb2FkVmFsdWUoYWRkcmVzcywgdmFsdWVKU1IpOworICAgICAgICAgICAgICAg
IGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPih3
YXNtQ29udGV4dEluc3RhbmNlR1BSLCB2YWx1ZUpTUik7CiAgICAgICAgICAgICAgICAgaml0LmNh
bGxPcGVyYXRpb24oRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25Db252ZXJ0
VG9CaWdJbnQpKTsKLSAgICAgICAgICAgICAgICBpZiAobG9jLmlzUmVnKCkpCi0gICAgICAgICAg
ICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIgfSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVy
UmVnaXN0ZXIsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLnJlZygpKS0+b2Zmc2V0KCkg
KyB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcykp
OwotICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICBhdXRvIGxvY2F0
aW9uID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVn
aXN0ZXIsIGxvYy5vZmZzZXRGcm9tU1AoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5zdG9y
ZVZhbHVlKEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIgfSwgbG9jYXRpb24p
OwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1JJ
bmZvOjpyZXR1cm5WYWx1ZUpTUiwgYWRkcmVzcyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
IAogICAgICAgICBHUFJSZWcgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IFBpbm5lZFJlZ2lzdGVy
SW5mbzo6Z2V0KCkud2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXI7CiAgICAgICAgIGlmIChDb250
ZXh0Ojp1c2VGYXN0VExTKCkpIHsKLSAgICAgICAgICAgIHdhc21Db250ZXh0SW5zdGFuY2VHUFIg
PSBHUFJJbmZvOjphcmd1bWVudEdQUjE7CisgICAgICAgICAgICB3YXNtQ29udGV4dEluc3RhbmNl
R1BSID0gcHJlZmVycmVkQXJndW1lbnRHUFI8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1
bHRzQXJyYXkpLCAxPigpOwogICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWVf
djxXYXNtOjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPGRlY2x0eXBlKG9wZXJh
dGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KT46OkFyZ3VtZW50VHlwZTwxPj4pOwogICAgICAgICAg
ICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHdhc21Db250ZXh0SW5zdGFuY2VHUFIpOwog
ICAgICAgICB9CiAKLSAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlv
bkFsbG9jYXRlUmVzdWx0c0FycmF5KT4od2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tUHRyKCZzaWduYXR1cmUpLCBpbmRleGluZ1R5cGUsIENDYWxsSGVscGVy
czo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBjb25zdGV4cHIgR1BSUmVnIHNhdmVk
UmVzdWx0c0dQUiA9IHByZWZlcnJlZEFyZ3VtZW50R1BSPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9j
YXRlUmVzdWx0c0FycmF5KSwgND4oKTsKKyAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpz
dGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRzR1BSKTsKKyAgICAgICAgaWYgY29uc3Rl
eHByIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGppdC5zdWJQ
dHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwpLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgQVNTRVJU
KHdhc21Db250ZXh0SW5zdGFuY2VHUFIgIT0gc2F2ZWRSZXN1bHRzR1BSKTsKKyAgICAgICAgaml0
LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KT4o
d2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZzaWdu
YXR1cmUpLCBpbmRleGluZ1R5cGUsIHNhdmVkUmVzdWx0c0dQUik7CiAgICAgICAgIGppdC5jYWxs
T3BlcmF0aW9uKEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQWxsb2NhdGVS
ZXN1bHRzQXJyYXkpKTsKKyAgICAgICAgaWYgY29uc3RleHByIChtYXhGcmFtZUV4dGVudEZvclNs
b3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGppdC5hZGRQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tMzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBDQ2FsbEhlbHBlcnM6OnN0YWNr
UG9pbnRlclJlZ2lzdGVyKTsKKworICAgICAgICBqaXQuYm94Q2VsbChHUFJJbmZvOjpyZXR1cm5W
YWx1ZUdQUiwgSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpOwogICAgIH0KIH0KIApAQCAtMTc3LDcg
KzIzNSwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4gY3JlYXRlSlNUb1dh
c21XcmFwcGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogICAgIC8vIEZJWE1FIFN0b3AgdXNp
bmcgMCBhcyBjb2RlQmxvY2tzLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTY1MzIxCiAgICAgaml0LmVtaXRaZXJvVG9DYWxsRnJhbWVIZWFkZXIoQ2FsbEZyYW1lU2xv
dDo6Y29kZUJsb2NrKTsKICAgICBNYWNyb0Fzc2VtYmxlcjo6RGF0YUxhYmVsUHRyIGNhbGxlZU1v
dmVMb2NhdGlvbiA9IGppdC5tb3ZlV2l0aFBhdGNoKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
UHRyKG51bGxwdHIpLCBHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIpOwotICAgIGpp
dC5lbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIoR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJu
R1BSLCBDYWxsRnJhbWVTbG90OjpjYWxsZWUpOworICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBj
YWxsZWVTbG90IHsgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZVNsb3Q6OmNh
bGxlZSAqIHNpemVvZihSZWdpc3RlcikgfTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6bm9u
UHJlc2VydmVkTm9uUmV0dXJuR1BSLCBjYWxsZWVTbG90LndpdGhPZmZzZXQoUGF5bG9hZE9mZnNl
dCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6V2FzbVRhZyksIGNhbGxlZVNsb3Qud2l0aE9mZnNldChU
YWdPZmZzZXQpKTsKKyNlbmRpZgogICAgIFZlY3RvcjxDb2RlTG9jYXRpb25EYXRhTGFiZWxQdHI8
V2FzbUVudHJ5UHRyVGFnPj4qIGxpbmtlZENhbGxlZU1vdmUgPSAmcmVzdWx0LT5jYWxsZWVNb3Zl
TG9jYXRpb25zOwogICAgIGppdC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZm
ZXIpIHsKICAgICAgICAgbGlua2VkQ2FsbGVlTW92ZS0+YXBwZW5kKGxpbmtCdWZmZXIubG9jYXRp
b25PZjxXYXNtRW50cnlQdHJUYWc+KGNhbGxlZU1vdmVMb2NhdGlvbikpOwpAQCAtMTk2LDExICsy
NTgsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+IGNyZWF0ZUpTVG9XYXNt
V3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QKICAgICBSZWdpc3RlckF0T2Zmc2V0TGlz
dCByZWdpc3RlcnNUb1NwaWxsKHRvU2F2ZSwgUmVnaXN0ZXJBdE9mZnNldExpc3Q6Ok9mZnNldEJh
c2VUeXBlOjpGcmFtZVBvaW50ZXJCYXNlZCk7CiAgICAgcmVzdWx0LT5lbnRyeXBvaW50LmNhbGxl
ZVNhdmVSZWdpc3RlcnMgPSByZWdpc3RlcnNUb1NwaWxsOwogCi0gICAgc2l6ZV90IHRvdGFsRnJh
bWVTaXplID0gcmVnaXN0ZXJzVG9TcGlsbC5zaXplKCkgKiBzaXplb2YoQ1BVUmVnaXN0ZXIpOwor
ICAgIHNpemVfdCB0b3RhbEZyYW1lU2l6ZSA9IHJlZ2lzdGVyc1RvU3BpbGwuc2l6ZU9mQXJlYUlu
Qnl0ZXMoKTsKICAgICBDYWxsSW5mb3JtYXRpb24gd2FzbUZyYW1lQ29udmVudGlvbiA9IHdhc21D
YWxsaW5nQ29udmVudGlvbigpLmNhbGxJbmZvcm1hdGlvbkZvcihzaWduYXR1cmUpOwogICAgIFJl
Z2lzdGVyQXRPZmZzZXRMaXN0IHNhdmVkUmVzdWx0UmVnaXN0ZXJzID0gd2FzbUZyYW1lQ29udmVu
dGlvbi5jb21wdXRlUmVzdWx0c09mZnNldExpc3QoKTsKICAgICB0b3RhbEZyYW1lU2l6ZSArPSB3
YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlczsKLSAg
ICB0b3RhbEZyYW1lU2l6ZSArPSBzYXZlZFJlc3VsdFJlZ2lzdGVycy5zaXplKCkgKiBzaXplb2Yo
Q1BVUmVnaXN0ZXIpOworICAgIHRvdGFsRnJhbWVTaXplICs9IHNhdmVkUmVzdWx0UmVnaXN0ZXJz
LnNpemVPZkFyZWFJbkJ5dGVzKCk7CiAKICAgICB0b3RhbEZyYW1lU2l6ZSA9IFdURjo6cm91bmRV
cFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudEJ5dGVzKCksIHRvdGFsRnJhbWVTaXplKTsKICAg
ICBqaXQuc3ViUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIodG90YWxGcmFtZVNpemUp
LCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwpAQCAtMjIyLDkgKzI4NCwx
MiBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4gY3JlYXRlSlNUb1dhc21XcmFw
cGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogCiAgICAgICAgIENDYWxsSGVscGVyczo6QWRk
cmVzcyBjYWxsZWVGcmFtZSA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIsIDApOwogCi0gICAgICAgIC8vIFdlJ3JlIGdvaW5nIHRvIHNl
dCB0aGUgcGlubmVkIHJlZ2lzdGVycyBhZnRlciB0aGlzLiBTbwotICAgICAgICAvLyB3ZSBjYW4g
dXNlIHRoaXMgYXMgYSBzY3JhdGNoIGZvciBub3cgc2luY2Ugd2Ugc2F2ZWQgaXQgYWJvdmUuCi0g
ICAgICAgIEdQUlJlZyBzY3JhdGNoUmVnID0gcGlubmVkUmVncy5iYXNlTWVtb3J5UG9pbnRlcjsK
KyAgICAgICAgSlNWYWx1ZVJlZ3Mgc2NyYXRjaEpTUiB7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkK
KyAgICAgICAgICAgIHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNb
Ml0sCisjZW5kaWYKKyAgICAgICAgICAgIHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3Vl
U2NyYXRjaEdQUnNbMV0KKyAgICAgICAgfTsKIAogICAgICAgICBpZiAoIUNvbnRleHQ6OnVzZUZh
c3RUTFMoKSkgewogICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU0NhbGxpbmdDb252ZW50aW9uOjppbnN0YW5j
ZVN0YWNrT2Zmc2V0KSwgd2FzbUNvbnRleHRJbnN0YW5jZUdQUik7CkBAIC0yMzcsMjIgKzMwMiwz
NCBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4gY3JlYXRlSlNUb1dhc21XcmFw
cGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogICAgICAgICAgICAgVHlwZSB0eXBlID0gc2ln
bmF0dXJlLmFyZ3VtZW50KGkpOwogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGpz
UGFyYW0oR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGpzRnJhbWVDb252ZW50aW9uLnBhcmFt
c1tpXS5vZmZzZXRGcm9tRlAoKSk7CiAgICAgICAgICAgICBpZiAod2FzbUZyYW1lQ29udmVudGlv
bi5wYXJhbXNbaV0uaXNTdGFja0FyZ3VtZW50KCkpIHsKKyAgICAgICAgICAgICAgICBDQ2FsbEhl
bHBlcnM6OkFkZHJlc3MgYWRkciB7IGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUZyYW1lQ29u
dmVudGlvbi5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpIH07CiAgICAgICAgICAgICAgICAgaWYg
KHR5cGUuaXNJMzIoKSB8fCB0eXBlLmlzRjMyKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaml0
LmxvYWQzMihqc1BhcmFtLCBzY3JhdGNoUmVnKTsKLSAgICAgICAgICAgICAgICAgICAgaml0LnN0
b3JlMzIoc2NyYXRjaFJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtRnJhbWVDb252ZW50
aW9uLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkpOworICAgICAgICAgICAgICAgICAgICBqaXQu
bG9hZDMyKGpzUGFyYW0sIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAg
ICAgICAgaml0LnN0b3JlMzIoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIGFkZHIud2l0aE9mZnNl
dChQYXlsb2FkT2Zmc2V0KSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAg
ICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMCksIGFkZHIud2l0
aE9mZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgogICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaFJlZyk7Ci0gICAg
ICAgICAgICAgICAgICAgIGppdC5zdG9yZTY0KHNjcmF0Y2hSZWcsIGNhbGxlZUZyYW1lLndpdGhP
ZmZzZXQod2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKKyAg
ICAgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShqc1BhcmFtLCBzY3JhdGNoSlNSKTsKKyAg
ICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoc2NyYXRjaEpTUiwgYWRkcik7CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAo
dHlwZS5pc0kzMigpIHx8IHR5cGUuaXNGMzIoKSkKLSAgICAgICAgICAgICAgICAgICAgaml0Lmxv
YWQzMlRvUmVnKGpzUGFyYW0sIHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLnJlZygpKTsK
LSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjRUb1Jl
Zyhqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5yZWcoKSk7CisgICAgICAg
ICAgICAgICAgaWYgKHR5cGUuaXNGMzIoKSkKKyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRG
bG9hdChqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5mcHIoKSk7CisgICAg
ICAgICAgICAgICAgZWxzZSBpZiAodHlwZS5pc0Y2NCgpKQorICAgICAgICAgICAgICAgICAgICBq
aXQubG9hZERvdWJsZShqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5mcHIo
KSk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZS5pc0kzMigpKSB7CisgICAgICAgICAg
ICAgICAgICAgIGppdC5sb2FkMzIoanNQYXJhbSwgd2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNb
aV0uanNyKCkucGF5bG9hZEdQUigpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAg
ICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSwgd2FzbUZy
YW1lQ29udmVudGlvbi5wYXJhbXNbaV0uanNyKCkudGFnR1BSKCkpOworI2VuZGlmCisgICAgICAg
ICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQYXJh
bSwgd2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0uanNyKCkpOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgfQogCisjaWYgIUNQVShBUk0pIC8vIEFSTSBoYXMgbm8gcGlubmVkIHJl
Z2lzdGVycyBmb3IgV2FzbSBNZW1vcnksIHNvIG5vIG5lZWQgdG8gc2V0IHRoZW0gdXAKICAgICBp
ZiAoISFpbmZvLm1lbW9yeSkgewogICAgICAgICBHUFJSZWcgYmFzZU1lbW9yeSA9IHBpbm5lZFJl
Z3MuYmFzZU1lbW9yeVBvaW50ZXI7CiAgICAgICAgIEdQUlJlZyBzaXplID0gd2FzbUNhbGxpbmdD
b252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1swXTsKQEAgLTI2MywxNyArMzQwLDE4IEBA
IHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVhdGVKU1RvV2FzbVdyYXBwZXIo
Q0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAKICAgICAgICAgR1BSUmVnIGN1cnJlbnRJbnN0YW5j
ZUdQUiA9IENvbnRleHQ6OnVzZUZhc3RUTFMoKSA/IGJhc2VNZW1vcnkgOiB3YXNtQ29udGV4dElu
c3RhbmNlR1BSOwogICAgICAgICBpZiAoaXNBUk02NEUoKSkgewotICAgICAgICAgICAgaWYgKG1v
ZGUgIT0gV2FzbTo6TWVtb3J5TW9kZTo6U2lnbmFsaW5nKQorICAgICAgICAgICAgaWYgKG1vZGUg
PT0gV2FzbTo6TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcpCiAgICAgICAgICAgICAgICAgc2l6
ZSA9IHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXI7CiAgICAgICAgICAgICBq
aXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoY3VycmVudEluc3RhbmNlR1BSLCBXYXNt
OjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHNDaGVja2luZ1NpemUoKSksIHNpemUpOwog
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG1vZGUgIT0gV2FzbTo6TWVtb3J5TW9k
ZTo6U2lnbmFsaW5nKQorICAgICAgICAgICAgaWYgKG1vZGUgPT0gV2FzbTo6TWVtb3J5TW9kZTo6
Qm91bmRzQ2hlY2tpbmcpCiAgICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKGN1cnJlbnRJbnN0YW5jZUdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2Fj
aGVkQm91bmRzQ2hlY2tpbmdTaXplKCkpLCBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJl
Z2lzdGVyKTsKICAgICAgICAgfQogCiAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6
QWRkcmVzcyhjdXJyZW50SW5zdGFuY2VHUFIsIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hl
ZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7CiAgICAgICAgIGppdC5jYWdlQ29uZGl0aW9uYWxseUFu
ZFVudGFnKEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJhc2VNZW1vcnksIHNpemUsIHNjcmF0Y2gpOwog
ICAgIH0KKyNlbmRpZgogCiAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIGNhbGwgPSBqaXQudGhyZWFk
U2FmZVBhdGNoYWJsZU5lYXJDYWxsKCk7CiAgICAgdW5zaWduZWQgZnVuY3Rpb25JbmRleFNwYWNl
ID0gZnVuY3Rpb25JbmRleCArIGluZm8uaW1wb3J0RnVuY3Rpb25Db3VudCgpOwpAQCAtMjg2LDcg
KzM2NCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVhdGVKU1RvV2Fz
bVdyYXBwZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAKICAgICBmb3IgKGNvbnN0IFJlZ2lz
dGVyQXRPZmZzZXQmIHJlZ0F0T2Zmc2V0IDogcmVnaXN0ZXJzVG9TcGlsbCkgewogICAgICAgICBH
UFJSZWcgcmVnID0gcmVnQXRPZmZzZXQucmVnKCkuZ3ByKCk7Ci0gICAgICAgIEFTU0VSVChyZWcg
IT0gR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICBBU1NFUlQoIUpTUkluZm86OnJl
dHVyblZhbHVlSlNSLnVzZXMocmVnKSk7CiAgICAgICAgIHB0cmRpZmZfdCBvZmZzZXQgPSByZWdB
dE9mZnNldC5vZmZzZXQoKTsKICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBvZmZzZXQpLCByZWcpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcAppbmRleCBlZTRiN2RmYjZk
MzdjODMxNjM4YTNiNjBjM2YxYjIwMTAyNDE2MWYyLi41MTNjZDhlYTZjNWU2YzMyOTE5ODEyMGI0
MDhmOTdmNjg3MzVkYTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XYXNtVG9KUy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2FzbVRv
SlMuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5j
bHVkZSAiSlNXZWJBc3NlbWJseUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgor
I2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiVGh1
bmtHZW5lcmF0b3JzLmgiCiAjaW5jbHVkZSAiV2FzbUNhbGxpbmdDb252ZW50aW9uLmgiCiAjaW5j
bHVkZSAiV2FzbUNvbnRleHRJbmxpbmVzLmgiCkBAIC02OCw3ICs2OSw3IEBAIEV4cGVjdGVkPE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2Fz
bVRvSlMoVk0mIHZtCiAgICAgLy8gSWYgd2UgZXZlciBjaGFuZ2UgdGhpcywgd2Ugd2lsbCBhbHNv
IG5lZWQgdG8gY2hhbmdlIFdhc21CM0lSR2VuZXJhdG9yLgogCiAgICAgLy8gQmVsb3csIHdlIGFz
c3VtZSB0aGF0IHRoZSBKUyBjYWxsaW5nIGNvbnZlbnRpb24gaXMgYWx3YXlzIG9uIHRoZSBzdGFj
ay4KLSAgICBBU1NFUlQoIWpzQ0MuZ3ByQXJncy5zaXplKCkpOworICAgIEFTU0VSVCghanNDQy5q
c3JBcmdzLnNpemUoKSk7CiAgICAgQVNTRVJUKCFqc0NDLmZwckFyZ3Muc2l6ZSgpKTsKIAogICAg
IGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwpAQCAtODUsMTQgKzg2LDIyIEBAIEV4cGVjdGVk
PE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4g
d2FzbVRvSlMoVk0mIHZtCiAgICAgLy8gZm9yIHVzIGhlcmUuCiAKICAgICBjb25zdCB1bnNpZ25l
ZCBudW1iZXJPZlBhcmFtZXRlcnMgPSBhcmdDb3VudCArIDE7IC8vIFRoZXJlIGlzIGEgInRoaXMi
IGFyZ3VtZW50LgotICAgIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mUmVnc0ZvckNhbGwgPSBDYWxs
RnJhbWU6OmhlYWRlclNpemVJblJlZ2lzdGVycyArIG51bWJlck9mUGFyYW1ldGVyczsKKyAgICBj
b25zdCB1bnNpZ25lZCBudW1iZXJPZlJlZ3NGb3JDYWxsID0gQ2FsbEZyYW1lOjpoZWFkZXJTaXpl
SW5SZWdpc3RlcnMgKyByb3VuZEFyZ3VtZW50Q291bnRUb0FsaWduRnJhbWUobnVtYmVyT2ZQYXJh
bWV0ZXJzKTsKKyAgICBBU1NFUlQoIShudW1iZXJPZlJlZ3NGb3JDYWxsICUgc3RhY2tBbGlnbm1l
bnRSZWdpc3RlcnMoKSkpOwogICAgIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQnl0ZXNGb3JDYWxs
ID0gbnVtYmVyT2ZSZWdzRm9yQ2FsbCAqIHNpemVvZihSZWdpc3RlcikgLSBzaXplb2YoQ2FsbGVy
RnJhbWVBbmRQQyk7Ci0gICAgY29uc3QgdW5zaWduZWQgc3RhY2tPZmZzZXQgPSBXVEY6OnJvdW5k
VXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRCeXRlcygpLCBzdGQ6Om1heDx1bnNpZ25lZD4o
bnVtYmVyT2ZCeXRlc0ZvckNhbGwsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLnNpemUoKSAqIHNpemVv
ZihDUFVSZWdpc3RlcikpKTsKKyAgICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkJ5dGVzRm9yU2F2
ZWRSZXN1bHRzID0gc2F2ZWRSZXN1bHRSZWdpc3RlcnMuc2l6ZU9mQXJlYUluQnl0ZXMoKTsKKyAg
ICBjb25zdCB1bnNpZ25lZCBzdGFja09mZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihz
dGFja0FsaWdubWVudEJ5dGVzKCksIHN0ZDo6bWF4KG51bWJlck9mQnl0ZXNGb3JDYWxsLCBudW1i
ZXJPZkJ5dGVzRm9yU2F2ZWRSZXN1bHRzKSk7CiAgICAgaml0LnN1YlB0cihNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbTMyKHN0YWNrT2Zmc2V0KSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRl
clJlZ2lzdGVyKTsKICAgICBKSVQ6OkFkZHJlc3MgY2FsbGVlRnJhbWUgPSBDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCAtc3RhdGljX2Nh
c3Q8cHRyZGlmZl90PihzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKIAogICAgIC8vIEZJWE1F
IG1ha2UgdGhlc2UgbG9vcHMgd2hpY2ggc3dpdGNoIG9uIFNpZ25hdHVyZSBpZiB0aGVyZSBhcmUg
bWFueSBhcmd1bWVudHMgb24gdGhlIHN0YWNrLiBJdCdsbCBvdGhlcndpc2UgYmUgaHVnZSBmb3Ig
aHVnZSBzaWduYXR1cmVzLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY1NTQ3CiAKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIGNvbnN0ZXhwciBKU1ZhbHVlUmVncyBq
c0FyZzEwIHsgR1BSSW5mbzo6YXJndW1lbnRHUFIwIH07CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0
KQorICAgIGNvbnN0ZXhwciBKU1ZhbHVlUmVncyBqc0FyZzEwIHsgR1BSSW5mbzo6YXJndW1lbnRH
UFIxLCBHUFJJbmZvOjphcmd1bWVudEdQUjAgfTsKKyNlbmRpZgorCiAgICAgLy8gRmlyc3QgZ28g
dGhyb3VnaCB0aGUgaW50ZWdlciBwYXJhbWV0ZXJzLCBmcmVlaW5nIHVwIHRoZWlyIHJlZ2lzdGVy
IGZvciB1c2UgYWZ0ZXJ3YXJkcy4KICAgICB7CiAgICAgICAgIHVuc2lnbmVkIG1hcnNoYWxsZWRH
UFJzID0gMDsKQEAgLTExMSwyMSArMTIwLDIxIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAg
ICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOgogICAgICAgICAgICAgY2FzZSBUeXBl
S2luZDo6STMyOgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OiB7Ci0gICAgICAgICAg
ICAgICAgR1BSUmVnIGdwclJlZzsKLSAgICAgICAgICAgICAgICBpZiAobWFyc2hhbGxlZEdQUnMg
PCB3YXNtQ0MuZ3ByQXJncy5zaXplKCkpCi0gICAgICAgICAgICAgICAgICAgIGdwclJlZyA9IHdh
c21DQy5ncHJBcmdzW21hcnNoYWxsZWRHUFJzXS5ncHIoKTsKKyAgICAgICAgICAgICAgICBKU1Zh
bHVlUmVncyBhcmdSZWc7CisgICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRHUFJzIDwgd2Fz
bUNDLmpzckFyZ3Muc2l6ZSgpKQorICAgICAgICAgICAgICAgICAgICBhcmdSZWcgPSB3YXNtQ0Mu
anNyQXJnc1ttYXJzaGFsbGVkR1BSc107CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAg
ICAgICAgICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgc3BpbGxlZCBhbGwgYXJndW1lbnRzLCB0aGVz
ZSByZWdpc3RlcnMgYXJlIGF2YWlsYWJsZSBhcyBzY3JhdGNoLgotICAgICAgICAgICAgICAgICAg
ICBncHJSZWcgPSBHUFJJbmZvOjphcmd1bWVudEdQUjA7Ci0gICAgICAgICAgICAgICAgICAgIGpp
dC5sb2FkNjQoSklUOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBmck9mZnNl
dCksIGdwclJlZyk7CisgICAgICAgICAgICAgICAgICAgIGFyZ1JlZyA9IGpzQXJnMTA7CisgICAg
ICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoSklUOjpBZGRyZXNzKEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyLCBmck9mZnNldCksIGFyZ1JlZyk7CiAgICAgICAgICAgICAgICAgICAgIGZy
T2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICsrbWFyc2hhbGxlZEdQUnM7CiAgICAgICAgICAgICAgICAgaWYgKGFyZ1R5cGUuaXNJ
MzIoKSkgewotICAgICAgICAgICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKGdwclJl
ZywgZ3ByUmVnKTsgLy8gQ2xlYXIgbm9uLWludDMyIGFuZCBub24tdGFnIGJpdHMuCi0gICAgICAg
ICAgICAgICAgICAgIGppdC5ib3hJbnQzMihncHJSZWcsIEpTVmFsdWVSZWdzKGdwclJlZyksIERv
Tm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5k
MzJUb1dvcmQoYXJnUmVnLnBheWxvYWRHUFIoKSwgYXJnUmVnLnBheWxvYWRHUFIoKSk7IC8vIENs
ZWFyIG5vbi1pbnQzMiBhbmQgbm9uLXRhZyBiaXRzLgorICAgICAgICAgICAgICAgICAgICBqaXQu
Ym94SW50MzIoYXJnUmVnLnBheWxvYWRHUFIoKSwgYXJnUmVnLCBEb05vdEhhdmVUYWdSZWdpc3Rl
cnMpOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBqaXQuc3RvcmU2NChncHJS
ZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsKKyAgICAgICAg
ICAgICAgICBqaXQuc3RvcmVWYWx1ZShhcmdSZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2Fs
bGVlRnJhbWVPZmZzZXQpKTsKICAgICAgICAgICAgICAgICBjYWxsZWVGcmFtZU9mZnNldCArPSBz
aXplb2YoUmVnaXN0ZXIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpA
QCAtMTQyLDYgKzE1MSw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50
cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgfQogICAgIAog
ICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAvLyBJbnRlZ2VyIHJlZ2lzdGVycyBo
YXZlIGFscmVhZHkgYmVlbiBzcGlsbGVkLCB0aGVzZSBhcmUgbm93IGF2YWlsYWJsZS4KICAgICAg
ICAgR1BSUmVnIGRvdWJsZUVuY29kZU9mZnNldEdQUlJlZyA9IEdQUkluZm86OmFyZ3VtZW50R1BS
MDsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2ggPSBHUFJJbmZvOjphcmd1bWVudEdQUjE7CkBAIC0x
NTcsNiArMTY3LDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0
clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgICAgICBo
YXNNYXRlcmlhbGl6ZWREb3VibGVFbmNvZGVPZmZzZXQgPSB0cnVlOwogICAgICAgICAgICAgfQog
ICAgICAgICB9OworI2VuZGlmCiAKICAgICAgICAgdW5zaWduZWQgbWFyc2hhbGxlZEdQUnMgPSAw
OwogICAgICAgICB1bnNpZ25lZCBtYXJzaGFsbGVkRlBScyA9IDA7CkBAIC0xNjUsMTAgKzE3Niwx
NCBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmlu
ZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogCiAgICAgICAgIGF1dG8gbWFyc2hhbGxGUFIg
PSBbJl0gKEZQUlJlZyBmcHJSZWcpIHsKICAgICAgICAgICAgIGppdC5wdXJpZnlOYU4oZnByUmVn
KTsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgaml0Lm1vdmVEb3VibGVUbzY0KGZw
clJlZywgc2NyYXRjaCk7CiAgICAgICAgICAgICBtYXRlcmlhbGl6ZURvdWJsZUVuY29kZU9mZnNl
dChkb3VibGVFbmNvZGVPZmZzZXRHUFJSZWcpOwogICAgICAgICAgICAgaml0LmFkZDY0KGRvdWJs
ZUVuY29kZU9mZnNldEdQUlJlZywgc2NyYXRjaCk7CiAgICAgICAgICAgICBqaXQuc3RvcmU2NChz
Y3JhdGNoLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSk7CisjZWxz
ZQorICAgICAgICAgICAgaml0LnN0b3JlRG91YmxlKGZwclJlZywgY2FsbGVlRnJhbWUud2l0aE9m
ZnNldChjYWxsZWVGcmFtZU9mZnNldCkpOworI2VuZGlmCiAgICAgICAgICAgICBjYWxsZWVGcmFt
ZU9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOwogICAgICAgICAgICAgKyttYXJzaGFsbGVkRlBS
czsKICAgICAgICAgfTsKQEAgLTE4Niw3ICsyMDEsNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxl
ckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2
bQogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgogICAgICAgICAgICAgY2FzZSBUeXBl
S2luZDo6STY0OiB7CiAgICAgICAgICAgICAgICAgLy8gU2tpcHBlZDogaGFuZGxlZCBhYm92ZS4K
LSAgICAgICAgICAgICAgICBpZiAobWFyc2hhbGxlZEdQUnMgPj0gd2FzbUNDLmdwckFyZ3Muc2l6
ZSgpKQorICAgICAgICAgICAgICAgIGlmIChtYXJzaGFsbGVkR1BScyA+PSB3YXNtQ0MuanNyQXJn
cy5zaXplKCkpCiAgICAgICAgICAgICAgICAgICAgIGZyT2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rl
cik7CiAgICAgICAgICAgICAgICAgKyttYXJzaGFsbGVkR1BSczsKICAgICAgICAgICAgICAgICBj
YWxsZWVGcmFtZU9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOwpAQCAtMTk1LDcgKzIxMCw3IEBA
IEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5n
RmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6
IHsKICAgICAgICAgICAgICAgICBGUFJSZWcgZnByUmVnOwogICAgICAgICAgICAgICAgIGlmICht
YXJzaGFsbGVkRlBScyA8IHdhc21DQy5mcHJBcmdzLnNpemUoKSkKLSAgICAgICAgICAgICAgICAg
ICAgZnByUmVnID0gd2FzbUNDLmZwckFyZ3NbbWFyc2hhbGxlZEZQUnNdLmZwcigpOworICAgICAg
ICAgICAgICAgICAgICBmcHJSZWcgPSB3YXNtQ0MuZnByQXJnc1ttYXJzaGFsbGVkRlBSc107CiAg
ICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGFscmVh
ZHkgc3BpbGxlZCBhbGwgYXJndW1lbnRzLCB0aGVzZSByZWdpc3RlcnMgYXJlIGF2YWlsYWJsZSBh
cyBzY3JhdGNoLgogICAgICAgICAgICAgICAgICAgICBmcHJSZWcgPSBGUFJJbmZvOjphcmd1bWVu
dEZQUjA7CkBAIC0yMDksNyArMjI0LDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVm
PFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAg
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2NDogewogICAgICAgICAgICAgICAgIEZQUlJlZyBmcHJS
ZWc7CiAgICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRGUFJzIDwgd2FzbUNDLmZwckFyZ3Mu
c2l6ZSgpKQotICAgICAgICAgICAgICAgICAgICBmcHJSZWcgPSB3YXNtQ0MuZnByQXJnc1ttYXJz
aGFsbGVkRlBSc10uZnByKCk7CisgICAgICAgICAgICAgICAgICAgIGZwclJlZyA9IHdhc21DQy5m
cHJBcmdzW21hcnNoYWxsZWRGUFJzXTsKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAg
ICAgICAgICAgICAgLy8gV2UndmUgYWxyZWFkeSBzcGlsbGVkIGFsbCBhcmd1bWVudHMsIHRoZXNl
IHJlZ2lzdGVycyBhcmUgYXZhaWxhYmxlIGFzIHNjcmF0Y2guCiAgICAgICAgICAgICAgICAgICAg
IGZwclJlZyA9IEZQUkluZm86OmFyZ3VtZW50RlBSMDsKQEAgLTIzMSwxMiArMjQ2LDE1IEBAIEV4
cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFp
bHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgIHVuc2lnbmVkIGNhbGxlZUZyYW1lT2Zmc2V0
ID0gQ2FsbEZyYW1lU2xvdDo6Zmlyc3RBcmd1bWVudCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9m
KFJlZ2lzdGVyKSk7CiAgICAgICAgIGZvciAodW5zaWduZWQgYXJnTnVtID0gMDsgYXJnTnVtIDwg
YXJnQ291bnQ7ICsrYXJnTnVtKSB7CiAgICAgICAgICAgICBpZiAoc2lnbmF0dXJlLmFyZ3VtZW50
KGFyZ051bSkuaXNJNjQoKSkgewotICAgICAgICAgICAgICAgIGppdC5sb2FkV2FzbUNvbnRleHRJ
bnN0YW5jZShHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgICAgICAgICAgICAgIGppdC5sb2Fk
NjQoY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMSk7Ci0gICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBl
KG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+KEdQUkluZm86OmFyZ3VtZW50R1BSMCwgR1BSSW5m
bzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgICAgICAgICB1c2luZyBPcGVyYXRpb24gPSBkZWNs
dHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpOworICAgICAgICAgICAgICAgIGNvbnN0ZXhw
ciBHUFJSZWcgd2FzbUluc3RhbmNlR1BSID0gcHJlZmVycmVkQXJndW1lbnRHUFI8T3BlcmF0aW9u
LCAxPigpOworICAgICAgICAgICAgICAgIGNvbnN0ZXhwciBKU1ZhbHVlUmVncyB2YWx1ZUpTUiA9
IHByZWZlcnJlZEFyZ3VtZW50SlNSPE9wZXJhdGlvbiwgMj4oKTsKKyAgICAgICAgICAgICAgICBq
aXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uod2FzbUluc3RhbmNlR1BSKTsKKyAgICAgICAgICAg
ICAgICBqaXQubG9hZFZhbHVlKGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZz
ZXQpLCB2YWx1ZUpTUik7CisgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPE9wZXJh
dGlvbj4od2FzbUluc3RhbmNlR1BSLCB2YWx1ZUpTUik7CiAgICAgICAgICAgICAgICAgYXV0byBj
YWxsID0gaml0LmNhbGwoT3BlcmF0aW9uUHRyVGFnKTsKICAgICAgICAgICAgICAgICBleGNlcHRp
b25DaGVja3MuYXBwZW5kKGppdC5lbWl0SnVtcElmRXhjZXB0aW9uKHZtKSk7Ci0gICAgICAgICAg
ICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGNhbGxlZUZyYW1lLndp
dGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsKKyAgICAgICAgICAgICAgICBqaXQuc3RvcmVW
YWx1ZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxs
ZWVGcmFtZU9mZnNldCkpOwogICAgICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzayhbPV0gKExp
bmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKICAgICAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5s
aW5rKGNhbGwsIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQ29udmVydFRv
QmlnSW50KSk7CiAgICAgICAgICAgICAgICAgfSk7CkBAIC0yNDgsMTYgKzI2NiwyMiBAQCBFeHBl
Y3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1
cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZShHUFJJ
bmZvOjphcmd1bWVudEdQUjApOwogICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVz
cyhHUFJJbmZvOjphcmd1bWVudEdQUjAsIEluc3RhbmNlOjpvZmZzZXRPZk93bmVyKCkpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOwogICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVz
cyhHUFJJbmZvOjphcmd1bWVudEdQUjAsIEpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6b2Zmc2V0T2ZN
b2R1bGUoKSksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgaml0LmVtaXRQdXRUb0NhbGxG
cmFtZUhlYWRlcihHUFJJbmZvOjphcmd1bWVudEdQUjAsIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7
Ci0KLSAgICBHUFJSZWcgaW1wb3J0SlNDZWxsR1BSUmVnID0gR1BSSW5mbzo6cmVnVDA7IC8vIENh
bGxlZSBuZWVkcyB0byBiZSBpbiByZWdUMCBmb3Igc2xvdyBwYXRoIGJlbG93LgorICAgIENDYWxs
SGVscGVyczo6QWRkcmVzcyBjYWxsZWVTbG90IHsgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIs
IENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAgKiBzaXplb2YoUmVnaXN0ZXIpIH07CisgICAgaml0LnN0
b3JlUHRyKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgY2FsbGVlU2xvdCk7CisjaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1Zh
bHVlOjpDZWxsVGFnKSwgY2FsbGVlU2xvdC53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworI2VuZGlm
CiAKKyAgICAvLyBqc0FyZzEwIG1pZ2h0IG92ZXJsYXAgd2l0aCByZWdUMCwgc28gc3RvcmUgJ3Ro
aXMnIGFyZ3VtZW50IGZpcnN0CisgICAgaml0LnN0b3JlVmFsdWUoanNVbmRlZmluZWQoKSwgY2Fs
bGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90Ojp0aGlzQXJndW1lbnQgKiBzdGF0aWNf
Y2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSwganNBcmcxMCk7CisgICAgY29uc3RleHByIEdQ
UlJlZyBpbXBvcnRKU0NlbGxHUFJSZWcgPSBHUFJJbmZvOjpyZWdUMDsgLy8gQ2FsbGVlIG5lZWRz
IHRvIGJlIGluIHJlZ1QwIGZvciBzbG93IHBhdGggYmVsb3cuCiAgICAgQVNTRVJUKCF3YXNtQ0Mu
Y2FsbGVlU2F2ZVJlZ2lzdGVycy5nZXQoaW1wb3J0SlNDZWxsR1BSUmVnKSk7CiAgICAgbWF0ZXJp
YWxpemVJbXBvcnRKU0NlbGwoaml0LCBpbXBvcnRJbmRleCwgaW1wb3J0SlNDZWxsR1BSUmVnKTsK
LQotICAgIGppdC5zdG9yZTY0KGltcG9ydEpTQ2VsbEdQUlJlZywgY2FsbGVlRnJhbWUud2l0aE9m
ZnNldChDYWxsRnJhbWVTbG90OjpjYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdp
c3RlcikpKSk7CisgICAgaml0LnN0b3JlUHRyKGltcG9ydEpTQ2VsbEdQUlJlZywgY2FsbGVlRnJh
bWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90OjpjYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNp
emVvZihSZWdpc3RlcikpKSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBqaXQuc3RvcmUz
MihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgY2FsbGVlRnJh
bWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90OjpjYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNp
emVvZihSZWdpc3RlcikpICsgVGFnT2Zmc2V0KSk7CisjZW5kaWYKICAgICBqaXQuc3RvcmUzMihK
SVQ6OlRydXN0ZWRJbW0zMihudW1iZXJPZlBhcmFtZXRlcnMpLCBjYWxsZWVGcmFtZS53aXRoT2Zm
c2V0KENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzICogc3RhdGljX2Nh
c3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSArIFBheWxvYWRPZmZzZXQpKTsKLSAgICBqaXQuc3Rv
cmU2NChKSVQ6OlRydXN0ZWRJbW02NChKU1ZhbHVlOjpWYWx1ZVVuZGVmaW5lZCksIGNhbGxlZUZy
YW1lLndpdGhPZmZzZXQoQ2FsbEZyYW1lU2xvdDo6dGhpc0FyZ3VtZW50ICogc3RhdGljX2Nhc3Q8
aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOwogCiAgICAgLy8gRklYTUUgVGFpbCBjYWxsIGlmIHRo
ZSB3YXNtIHJldHVybiB0eXBlIGlzIHZvaWQgYW5kIG5vIHJlZ2lzdGVycyB3ZXJlIHNwaWxsZWQu
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU0ODgKIApAQCAtMjgy
LDExICszMDYsMTEgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0
clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgY2FzZSBUeXBl
S2luZDo6STY0OiB7CiAgICAgICAgICAgICAvLyBGSVhNRTogT3B0aW1pemUgSTY0IGV4dHJhY3Rp
b24gZnJvbSBCaWdJbnQuCiAgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIwMDUzCi0gICAgICAgICAgICBHUFJSZWcgZGVzdCA9IHdhc21DYWxs
SW5mby5yZXN1bHRzWzBdLmdwcigpOwotICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRl
Y2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCk+KEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsK
KyAgICAgICAgICAgIEpTVmFsdWVSZWdzIGRlc3QgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5q
c3IoKTsKKyAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25D
b252ZXJ0VG9JNjQpPihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUik7CiAgICAgICAgICAgICBhdXRv
IGNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25QdHJUYWcpOwogICAgICAgICAgICAgZXhjZXB0aW9u
Q2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1bXBJZkV4Y2VwdGlvbih2bSkpOwotICAgICAgICAgICAg
aml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOworICAgICAgICAgICAgaml0
Lm1vdmVWYWx1ZVJlZ3MoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIGRlc3QpOwogCiAgICAgICAg
ICAgICBqaXQuYWRkTGlua1Rhc2soWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CiAgICAg
ICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKGNhbGwsIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0
clRhZz4ob3BlcmF0aW9uQ29udmVydFRvSTY0KSk7CkBAIC0yOTYsMTggKzMyMCwyMSBAQCBFeHBl
Y3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1
cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJMzI6IHsKICAgICAg
ICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZG9uZTsKICAgICAgICAgICAgIENDYWxsSGVs
cGVyczo6SnVtcExpc3Qgc2xvd1BhdGg7Ci0gICAgICAgICAgICBHUFJSZWcgZGVzdCA9IHdhc21D
YWxsSW5mby5yZXN1bHRzWzBdLmdwcigpOworICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgZGVzdEpT
UiA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmpzcigpOwogCi0gICAgICAgICAgICBzbG93UGF0
aC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBE
b05vdEhhdmVUYWdSZWdpc3RlcnMpKTsKLSAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQu
YnJhbmNoSWZOb3RJbnQzMihKU1ZhbHVlUmVncyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiksIERv
Tm90SGF2ZVRhZ1JlZ2lzdGVycykpOwotICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29y
ZChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CisgICAgICAgICAgICBzbG93UGF0aC5h
cHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBqaXQu
c2NyYXRjaFJlZ2lzdGVyKCksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycykpOworICAgICAgICAgICAg
c2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdEludDMyKEpTUkluZm86OnJldHVyblZhbHVl
SlNSLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpKTsKKyAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5k
MzJUb1dvcmQoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IucGF5bG9hZEdQUigpLCBkZXN0SlNSLnBh
eWxvYWRHUFIoKSk7CiAgICAgICAgICAgICBkb25lLmFwcGVuZChqaXQuanVtcCgpKTsKIAogICAg
ICAgICAgICAgc2xvd1BhdGgubGluaygmaml0KTsKLSAgICAgICAgICAgIGppdC5zZXR1cEFyZ3Vt
ZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9JMzIpPihHUFJJbmZvOjpyZXR1cm5WYWx1
ZUdQUik7CisgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9u
Q29udmVydFRvSTMyKT4oSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpOwogICAgICAgICAgICAgYXV0
byBjYWxsID0gaml0LmNhbGwoT3BlcmF0aW9uUHRyVGFnKTsKICAgICAgICAgICAgIGV4Y2VwdGlv
bkNoZWNrcy5hcHBlbmQoaml0LmVtaXRKdW1wSWZFeGNlcHRpb24odm0pKTsKLSAgICAgICAgICAg
IGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBkZXN0KTsKKyAgICAgICAgICAgIGpp
dC5tb3ZlKEpTUkluZm86OnJldHVyblZhbHVlSlNSLnBheWxvYWRHUFIoKSwgZGVzdEpTUi5wYXls
b2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICBqaXQubW92ZShD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSwgZGVzdEpTUi50YWdHUFIoKSk7CisjZW5kaWYK
IAogICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZl
cikgewogICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubGluayhjYWxsLCBGdW5jdGlvblB0cjxP
cGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkNvbnZlcnRUb0kzMikpOwpAQCAtMzE3LDIzICszNDQs
MjYgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJp
bmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjogewotICAgICAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpKdW1wTGlzdCBkb25lOwogICAgICAgICAgICAgRlBSUmVnIGRlc3QgPSB3YXNtQ2FsbElu
Zm8ucmVzdWx0c1swXS5mcHIoKTsKIAotICAgICAgICAgICAgYXV0byBub3RBTnVtYmVyID0gaml0
LmJyYW5jaElmTm90TnVtYmVyKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBEb05vdEhhdmVUYWdS
ZWdpc3RlcnMpOwotICAgICAgICAgICAgYXV0byBpc0RvdWJsZSA9IGppdC5icmFuY2hJZk5vdElu
dDMyKEpTVmFsdWVSZWdzKEdQUkluZm86OnJldHVyblZhbHVlR1BSKSwgRG9Ob3RIYXZlVGFnUmVn
aXN0ZXJzKTsKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZG9uZTsKKyAgICAg
ICAgICAgIGF1dG8gbm90QU51bWJlciA9IGppdC5icmFuY2hJZk5vdE51bWJlcihKU1JJbmZvOjpy
ZXR1cm5WYWx1ZUpTUiwgaml0LnNjcmF0Y2hSZWdpc3RlcigpLCBEb05vdEhhdmVUYWdSZWdpc3Rl
cnMpOworICAgICAgICAgICAgYXV0byBpc0RvdWJsZSA9IGppdC5icmFuY2hJZk5vdEludDMyKEpT
UkluZm86OnJldHVyblZhbHVlSlNSLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwogICAgICAgICAg
ICAgLy8gV2UncmUgYW4gaW50MzIKLSAgICAgICAgICAgIGppdC5zaWduRXh0ZW5kMzJUb1B0cihH
UFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwotICAgICAg
ICAgICAgaml0LmNvbnZlcnRJbnQ2NFRvRmxvYXQoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRl
c3QpOworICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRmxvYXQoR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIsIGRlc3QpOwogICAgICAgICAgICAgZG9uZS5hcHBlbmQoaml0Lmp1bXAoKSk7CiAK
ICAgICAgICAgICAgIGlzRG91YmxlLmxpbmsoJmppdCk7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAg
ICAgICAgICAgIGppdC51bmJveERvdWJsZVdpdGhvdXRBc3NlcnRpb25zKEdQUkluZm86OnJldHVy
blZhbHVlR1BSLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUjIsIGRlc3QsIERvTm90SGF2ZVRhZ1Jl
Z2lzdGVycyk7CisjZWxzZQorICAgICAgICAgICAgaml0LnVuYm94RG91YmxlKEpTUkluZm86OnJl
dHVyblZhbHVlSlNSLCBkZXN0KTsKKyNlbmRpZgogICAgICAgICAgICAgaml0LmNvbnZlcnREb3Vi
bGVUb0Zsb2F0KGRlc3QsIGRlc3QpOwogICAgICAgICAgICAgZG9uZS5hcHBlbmQoaml0Lmp1bXAo
KSk7CiAKICAgICAgICAgICAgIG5vdEFOdW1iZXIubGluaygmaml0KTsKLSAgICAgICAgICAgIGpp
dC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9GMzIpPihHUFJJbmZv
OjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5
cGUob3BlcmF0aW9uQ29udmVydFRvRjMyKT4oSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpOwogICAg
ICAgICAgICAgYXV0byBjYWxsID0gaml0LmNhbGwoT3BlcmF0aW9uUHRyVGFnKTsKICAgICAgICAg
ICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRKdW1wSWZFeGNlcHRpb24odm0pKTsK
ICAgICAgICAgICAgIGppdC5tb3ZlKEZQUkluZm86OnJldHVyblZhbHVlRlBSICwgZGVzdCk7CkBA
IC0zNDYsMjIgKzM3NiwyNSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVu
dHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OiB7Ci0gICAgICAg
ICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CiAgICAgICAgICAgICBGUFJSZWcgZGVz
dCA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmZwcigpOworICAgICAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpKdW1wTGlzdCBkb25lOwogCi0gICAgICAgICAgICBhdXRvIG5vdEFOdW1iZXIgPSBqaXQu
YnJhbmNoSWZOb3ROdW1iZXIoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIERvTm90SGF2ZVRhZ1Jl
Z2lzdGVycyk7Ci0gICAgICAgICAgICBhdXRvIGlzRG91YmxlID0gaml0LmJyYW5jaElmTm90SW50
MzIoSlNWYWx1ZVJlZ3MoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpLCBEb05vdEhhdmVUYWdSZWdp
c3RlcnMpOworICAgICAgICAgICAgYXV0byBub3RBTnVtYmVyID0gaml0LmJyYW5jaElmTm90TnVt
YmVyKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBqaXQuc2NyYXRjaFJlZ2lzdGVyKCksIERvTm90
SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAgICBhdXRvIGlzRG91YmxlID0gaml0LmJyYW5j
aElmTm90SW50MzIoSlNWYWx1ZVJlZ3MoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpLCBEb05vdEhh
dmVUYWdSZWdpc3RlcnMpOwogICAgICAgICAgICAgLy8gV2UncmUgYW4gaW50MzIKLSAgICAgICAg
ICAgIGppdC5zaWduRXh0ZW5kMzJUb1B0cihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BSSW5m
bzo6cmV0dXJuVmFsdWVHUFIpOwotICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQ2NFRvRG91Ymxl
KEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBkZXN0KTsKKyAgICAgICAgICAgIGppdC5jb252ZXJ0
SW50MzJUb0RvdWJsZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CiAgICAgICAgICAg
ICBkb25lLmFwcGVuZChqaXQuanVtcCgpKTsKIAogICAgICAgICAgICAgaXNEb3VibGUubGluaygm
aml0KTsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgaml0LnVuYm94RG91YmxlV2l0
aG91dEFzc2VydGlvbnMoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJldHVyblZh
bHVlR1BSMiwgZGVzdCwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyNlbHNlCisgICAgICAgICAg
ICBqaXQudW5ib3hEb3VibGUoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIGRlc3QpOworI2VuZGlm
CiAgICAgICAgICAgICBkb25lLmFwcGVuZChqaXQuanVtcCgpKTsKIAogICAgICAgICAgICAgbm90
QU51bWJlci5saW5rKCZqaXQpOwotICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0
eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0Y2NCk+KEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAg
ICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9G
NjQpPihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUik7CiAgICAgICAgICAgICBhdXRvIGNhbGwgPSBq
aXQuY2FsbChPcGVyYXRpb25QdHJUYWcpOwogICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFw
cGVuZChqaXQuZW1pdEp1bXBJZkV4Y2VwdGlvbih2bSkpOwogICAgICAgICAgICAgaml0Lm1vdmUo
RlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIsIGRlc3QpOwpAQCAtMzc1LDcgKzQwOCw3IEBAIEV4cGVj
dGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVy
ZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDogIHsKICAgICAg
ICAgICAgIGlmIChXYXNtOjppc0Z1bmNyZWYocmV0dXJuVHlwZSkgfHwgV2FzbTo6aXNFeHRlcm5y
ZWYocmV0dXJuVHlwZSkpCi0gICAgICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIsIHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmdwcigpKTsKKyAgICAgICAgICAgICAg
ICBqaXQubW92ZVZhbHVlUmVncyhKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgd2FzbUNhbGxJbmZv
LnJlc3VsdHNbMF0uanNyKCkpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIC8v
IEZvciB0aGUgSmF2YVNjcmlwdCBlbWJlZGRpbmcsIGltcG9ydHMgd2l0aCB0aGVzZSB0eXBlcyBp
biB0aGVpciBzaWduYXR1cmUgcmV0dXJuIGFyZSBhIFdlYkFzc2VtYmx5Lk1vZHVsZSB2YWxpZGF0
aW9uIGVycm9yLgogICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CkBAIC0zODksMTIgKzQyMiwyOSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2Fz
bUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAg
ICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHdhc21Db250ZXh0SW5zdGFuY2VHUFIpOwog
ICAgICAgICB9CiAKLSAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlv
bkl0ZXJhdGVSZXN1bHRzKT4od2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tUHRyKCZzaWduYXR1cmUpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgQ0NhbGxI
ZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgQ0NhbGxIZWxwZXJzOjpmcmFtZVBvaW50ZXJS
ZWdpc3Rlcik7CisgICAgICAgIGNvbnN0ZXhwciBHUFJSZWcgc2F2ZWRSZXN1bHRzR1BSID0gcHJl
ZmVycmVkQXJndW1lbnRHUFI8ZGVjbHR5cGUob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMpLCA0Pigp
OworICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBz
YXZlZFJlc3VsdHNHUFIpOworICAgICAgICBpZiBjb25zdGV4cHIgKG1heEZyYW1lRXh0ZW50Rm9y
U2xvd1BhdGhDYWxsKQorICAgICAgICAgICAgaml0LnN1YlB0cihDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIENDYWxsSGVscGVyczo6c3Rh
Y2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KG5vT3ZlcmxhcChzYXZl
ZFJlc3VsdHNHUFIsIEpTUkluZm86OnJldHVyblZhbHVlSlNSKSk7CisgICAgICAgIEFTU0VSVCh3
YXNtQ29udGV4dEluc3RhbmNlR1BSICE9IHNhdmVkUmVzdWx0c0dQUik7CisgICAgICAgIGppdC5z
ZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25JdGVyYXRlUmVzdWx0cyk+KHdhc21Db250
ZXh0SW5zdGFuY2VHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigmc2lnbmF0dXJlKSwg
SlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIHNhdmVkUmVzdWx0c0dQUiwgQ0NhbGxIZWxwZXJzOjpm
cmFtZVBvaW50ZXJSZWdpc3Rlcik7CiAgICAgICAgIGppdC5jYWxsT3BlcmF0aW9uKEZ1bmN0aW9u
UHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMpKTsKKyAgICAgICAg
aWYgY29uc3RleHByIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAg
IGppdC5hZGRQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JT
bG93UGF0aENhbGwpLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKwogICAg
ICAgICBleGNlcHRpb25DaGVja3MuYXBwZW5kKGppdC5lbWl0SnVtcElmRXhjZXB0aW9uKHZtKSk7
CiAKLSAgICAgICAgZm9yIChSZWdpc3RlckF0T2Zmc2V0IGxvY2F0aW9uIDogc2F2ZWRSZXN1bHRS
ZWdpc3RlcnMpCi0gICAgICAgICAgICBqaXQubG9hZDY0VG9SZWcoQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIGxvY2F0aW9uLm9mZnNldCgp
KSwgbG9jYXRpb24ucmVnKCkpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2ln
bmF0dXJlLnJldHVybkNvdW50KCk7ICsraSkgeworICAgICAgICAgICAgVmFsdWVMb2NhdGlvbiBs
b2MgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1tpXTsKKyAgICAgICAgICAgIGlmIChsb2MuaXNHUFIo
KSkgeworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgQVNTRVJUKHNhdmVk
UmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpICsg
NCA9PSBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS50YWdHUFIoKSktPm9mZnNl
dCgpKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0
UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpKSwgbG9jLmpz
cigpKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobG9jLmlzRlBSKCkpCisgICAgICAgICAgICAg
ICAgaml0LmxvYWREb3VibGUoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3Rh
Y2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmZwcigpKS0+
b2Zmc2V0KCkpLCBsb2MuZnByKCkpOworICAgICAgICB9CiAgICAgfQogCiAgICAgaml0LmVtaXRG
dW5jdGlvbkVwaWxvZ3VlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCmluZGV4IDg4OTEyMDdkYzEyMDNiNTE5MTM2NDE1
ZmQ0MDM4YzVmNzNiOTBjOTMuLmVlYjY4MzRmZDhhZDMyNmZmMDIzYjAxZTlmYmU5MGFhY2JmODZh
OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
RnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5RnVuY3Rpb24uY3BwCkBAIC0xNTcsNiArMTU3LDkgQEAgcHRyZGlmZl90IFdlYkFzc2VtYmx5
RnVuY3Rpb246OnByZXZpb3VzSW5zdGFuY2VPZmZzZXQoKSBjb25zdAogewogICAgIHB0cmRpZmZf
dCByZXN1bHQgPSBjYWxsZWVTYXZlcygpLm51bWJlck9mU2V0UmVnaXN0ZXJzKCkgKiBzaXplb2Yo
Q1BVUmVnaXN0ZXIpOwogICAgIHJlc3VsdCA9IC1yZXN1bHQgLSBzaXplb2YoQ1BVUmVnaXN0ZXIp
OworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgQVNTRVJUKCFjYWxsZWVTYXZlcygpLm51bWJl
ck9mU2V0RlBScygpKTsgLy8gQmVjYXVzZSBGUFJzIGFyZSB3aWRlciB0aGFuIHNpemVvZihDUFVS
ZWdpc3RlcikKKyNlbmRpZgogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgcHRyZGlmZl90IG1pbk9m
ZnNldCA9IDE7CiAgICAgZm9yIChjb25zdCBSZWdpc3RlckF0T2Zmc2V0JiByZWdBdE9mZnNldCA6
IHVzZWRDYWxsZWVTYXZlUmVnaXN0ZXJzKCkpIHsKQEAgLTE4NSwxNyArMTg4LDE1IEBAIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0Nh
bGxFbnRyeXBvaW50U2xvdygpCiAgICAgY29uc3QgYXV0byYgcGlubmVkUmVncyA9IFdhc206OlBp
bm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCk7CiAgICAgUmVnaXN0ZXJBdE9mZnNldExpc3QgcmVnaXN0
ZXJzVG9TcGlsbCA9IHVzZWRDYWxsZWVTYXZlUmVnaXN0ZXJzKCk7CiAKLSAgICBhdXRvJiBtb2R1
bGVJbmZvcm1hdGlvbiA9IGluc3RhbmNlKCktPmluc3RhbmNlKCkubW9kdWxlKCkubW9kdWxlSW5m
b3JtYXRpb24oKTsKLQogICAgIGNvbnN0IFdhc206Oldhc21DYWxsaW5nQ29udmVudGlvbiYgd2Fz
bUNDID0gV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKCk7CiAgICAgV2FzbTo6Q2FsbEluZm9y
bWF0aW9uIHdhc21DYWxsSW5mbyA9IHdhc21DQy5jYWxsSW5mb3JtYXRpb25Gb3Ioc2lnbmF0dXJl
KTsKICAgICBXYXNtOjpDYWxsSW5mb3JtYXRpb24ganNDYWxsSW5mbyA9IFdhc206OmpzQ2FsbGlu
Z0NvbnZlbnRpb24oKS5jYWxsSW5mb3JtYXRpb25Gb3Ioc2lnbmF0dXJlLCBXYXNtOjpDYWxsUm9s
ZTo6Q2FsbGVlKTsKICAgICBSZWdpc3RlckF0T2Zmc2V0TGlzdCBzYXZlZFJlc3VsdFJlZ2lzdGVy
cyA9IHdhc21DYWxsSW5mby5jb21wdXRlUmVzdWx0c09mZnNldExpc3QoKTsKIAotICAgIHVuc2ln
bmVkIHRvdGFsRnJhbWVTaXplID0gcmVnaXN0ZXJzVG9TcGlsbC5zaXplKCkgKiBzaXplb2YoQ1BV
UmVnaXN0ZXIpOworICAgIHVuc2lnbmVkIHRvdGFsRnJhbWVTaXplID0gcmVnaXN0ZXJzVG9TcGls
bC5zaXplT2ZBcmVhSW5CeXRlcygpOwogICAgIHRvdGFsRnJhbWVTaXplICs9IHNpemVvZihDUFVS
ZWdpc3Rlcik7IC8vIFNsb3QgZm9yIHRoZSBWTSdzIHByZXZpb3VzIHdhc20gaW5zdGFuY2UuCiAg
ICAgdG90YWxGcmFtZVNpemUgKz0gd2FzbUNhbGxJbmZvLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tT
aXplSW5CeXRlczsKLSAgICB0b3RhbEZyYW1lU2l6ZSArPSBzYXZlZFJlc3VsdFJlZ2lzdGVycy5z
aXplKCkgKiBzaXplb2YoQ1BVUmVnaXN0ZXIpOworICAgIHRvdGFsRnJhbWVTaXplICs9IHNhdmVk
UmVzdWx0UmVnaXN0ZXJzLnNpemVPZkFyZWFJbkJ5dGVzKCk7CiAKICAgICAvLyBGSVhNRTogT3B0
aW1pemUgV2FzbSBmdW5jdGlvbiBjYWxsIGV2ZW4gaWYgYXJndW1lbnRzIGluY2x1ZGUgSTY0Lgog
ICAgIC8vIFRoaXMgcmVxdWlyZXMgSTY0IGV4dHJhY3Rpb24gZnJvbSBCaWdJbnQuCkBAIC0yMTUs
OSArMjE2LDE0IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3Nl
bWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgIGppdC5zdG9yZVB0
cihyZWcsIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwg
b2Zmc2V0KSk7CiAgICAgfQogCi0gICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBXYXNtOjp3YXNtQ2Fs
bGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdOwotICAgIGJvb2wgc3RhY2tM
aW1pdEdQUklzQ2xvYmJlcmVkID0gZmFsc2U7CisgICAgSlNWYWx1ZVJlZ3Mgc2NyYXRjaEpTUiB7
CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50
aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1syXSwKKyNlbmRpZgorICAgICAgICBXYXNtOjp3YXNt
Q2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdCisgICAgfTsKICAgICBH
UFJSZWcgc3RhY2tMaW1pdEdQUiA9IFdhc206Ondhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xv
Z3VlU2NyYXRjaEdQUnNbMF07CisgICAgYm9vbCBzdGFja0xpbWl0R1BSSXNDbG9iYmVyZWQgPSBm
YWxzZTsKICAgICBqaXQubG9hZFB0cih2bS5hZGRyZXNzT2ZTb2Z0U3RhY2tMaW1pdCgpLCBzdGFj
a0xpbWl0R1BSKTsKIAogICAgIENDYWxsSGVscGVyczo6SnVtcExpc3Qgc2xvd1BhdGg7CkBAIC0y
MzYsNyArMjQyLDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFz
c2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAgICAgaml0LmVtaXRN
YXRlcmlhbGl6ZVRhZ0NoZWNrUmVnaXN0ZXJzKCk7CiAKICAgICAvLyBMb29wIGJhY2t3YXJkcyBz
byB3ZSBjYW4gdXNlIHRoZSBmaXJzdCBmbG9hdGluZyBwb2ludCBhcmd1bWVudCBhcyBhIHNjcmF0
Y2guCi0gICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24o
KS5mcHJBcmdzWzBdLmZwcigpOworICAgIEZQUlJlZyBzY3JhdGNoRlBSID0gV2FzbTo6d2FzbUNh
bGxpbmdDb252ZW50aW9uKCkuZnByQXJnc1swXTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBzaWdu
YXR1cmUuYXJndW1lbnRDb3VudCgpOyBpLS07KSB7CiAgICAgICAgIENDYWxsSGVscGVyczo6QWRk
cmVzcyBjYWxsZWVGcmFtZSA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIsIDApOwogICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Mg
anNQYXJhbShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwganNDYWxsSW5mby5wYXJhbXNbaV0u
b2Zmc2V0RnJvbUZQKCkpOwpAQCAtMjQ1LDEyICsyNTEsMjAgQEAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRT
bG93KCkKICAgICAgICAgYXV0byB0eXBlID0gc2lnbmF0dXJlLmFyZ3VtZW50KGkpOwogICAgICAg
ICBzd2l0Y2ggKHR5cGUua2luZCkgewogICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpJMzI6
IHsKLSAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQUik7Ci0gICAgICAg
ICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIoc2NyYXRjaEdQUikpOwot
ICAgICAgICAgICAgaWYgKGlzU3RhY2spCi0gICAgICAgICAgICAgICAgaml0LnN0b3JlMzIoc2Ny
YXRjaEdQUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9m
ZnNldEZyb21TUCgpKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgaml0Lnpl
cm9FeHRlbmQzMlRvV29yZChzY3JhdGNoR1BSLCB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmdwcigp
KTsKKyAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQYXJhbSwgc2NyYXRjaEpTUik7CisgICAg
ICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIoc2NyYXRjaEpTUikp
OworICAgICAgICAgICAgaWYgKGlzU3RhY2spIHsKKyAgICAgICAgICAgICAgICBDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MgYWRkciB7IGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBh
cmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkgfTsKKyAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihz
Y3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgYWRkci53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsK
KyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgIGppdC5zdG9yZTMyKENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCBhZGRyLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7Cisj
ZW5kaWYKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaml0Lnplcm9FeHRl
bmQzMlRvV29yZChzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgd2FzbUNhbGxJbmZvLnBhcmFtc1tp
XS5qc3IoKS5wYXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAg
ICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMCksIHdhc21DYWxsSW5m
by5wYXJhbXNbaV0uanNyKCkudGFnR1BSKCkpOworI2VuZGlmCisgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpS
ZWY6CkBAIC0yNTksMjcgKzI3MywyNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0
clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgICAg
ICBjYXNlIFdhc206OlR5cGVLaW5kOjpFeHRlcm5yZWY6IHsKICAgICAgICAgICAgIGlmICghV2Fz
bTo6aXNFeHRlcm5yZWYodHlwZSkpIHsKICAgICAgICAgICAgICAgICAvLyBFbnN1cmUgd2UgaGF2
ZSBhIFdBU00gZXhwb3J0ZWQgZnVuY3Rpb24uCi0gICAgICAgICAgICAgICAgaml0LmxvYWQ2NChq
c1BhcmFtLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAgICBhdXRvIGlzTnVsbCA9IGppdC5i
cmFuY2hJZk51bGwoc2NyYXRjaEdQUik7CisgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShq
c1BhcmFtLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAgICAgICBhdXRvIGlzTnVsbCA9IGppdC5i
cmFuY2hJZk51bGwoc2NyYXRjaEpTUik7CiAgICAgICAgICAgICAgICAgaWYgKCF0eXBlLmlzTnVs
bGFibGUoKSkKICAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGlzTnVsbCk7Ci0g
ICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdENlbGwoc2NyYXRj
aEdQUikpOworICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RD
ZWxsKHNjcmF0Y2hKU1IpKTsKIAogICAgICAgICAgICAgICAgIHN0YWNrTGltaXRHUFJJc0Nsb2Ji
ZXJlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgaml0LmVtaXRMb2FkU3RydWN0dXJlKHZtLCBz
Y3JhdGNoR1BSLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgU3RydWN0dXJlOjpjbGFzc0luZm9PZmZzZXQo
KSksIHNjcmF0Y2hHUFIpOworICAgICAgICAgICAgICAgIGppdC5lbWl0TG9hZFN0cnVjdHVyZSh2
bSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAg
ICAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEpT
Ui5wYXlsb2FkR1BSKCksIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBzY3JhdGNoSlNS
LnBheWxvYWRHUFIoKSk7CiAKICAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNf
ZmluYWw8V2ViQXNzZW1ibHlGdW5jdGlvbj46OnZhbHVlLCAiV2UgZG8gbm90IGNoZWNrIGZvciBz
dWJ0eXBlcyBiZWxvdyIpOwogICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19m
aW5hbDxXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbj46OnZhbHVlLCAiV2UgZG8gbm90IGNoZWNr
IGZvciBzdWJ0eXBlcyBiZWxvdyIpOwogCi0gICAgICAgICAgICAgICAgYXV0byBpc1dhc21GdW5j
dGlvbiA9IGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgc2NyYXRjaEdQUiwgQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKFdlYkFzc2VtYmx5RnVuY3Rpb246OmluZm8oKSkpOwot
ICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoUHRyKENDYWxsSGVscGVy
czo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihXZWJB
c3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6aW5mbygpKSkpOworICAgICAgICAgICAgICAgIGF1dG8g
aXNXYXNtRnVuY3Rpb24gPSBqaXQuYnJhbmNoUHRyKENDYWxsSGVscGVyczo6RXF1YWwsIHNjcmF0
Y2hKU1IucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoV2ViQXNzZW1i
bHlGdW5jdGlvbjo6aW5mbygpKSk7CisgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGpp
dC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEpTUi5wYXlsb2FkR1BS
KCksIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlv
bjo6aW5mbygpKSkpOwogCiAgICAgICAgICAgICAgICAgaXNXYXNtRnVuY3Rpb24ubGluaygmaml0
KTsKICAgICAgICAgICAgICAgICBpZiAoV2FzbTo6aXNSZWZXaXRoVHlwZUluZGV4KHR5cGUpKSB7
Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQUik7Ci0g
ICAgICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3Jh
dGNoR1BSLCBXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZTo6b2Zmc2V0T2ZTaWduYXR1cmVJbmRleCgp
KSwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQu
YnJhbmNoUHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbVB0cih0eXBlLmluZGV4KSkpOworICAgICAgICAgICAgICAgICAgICBqaXQu
bG9hZFB0cihqc1BhcmFtLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICAg
ICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoSlNSLnBheWxv
YWRHUFIoKSwgV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2U6Om9mZnNldE9mU2lnbmF0dXJlSW5kZXgo
KSksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAgICAgICAgc2xvd1Bh
dGguYXBwZW5kKGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEpT
Ui5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih0eXBlLmluZGV4KSkp
OwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlmICh0eXBlLmlzTnVsbGFi
bGUoKSkKQEAgLTI4NywxNSArMzAxLDE1IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5
UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChpc1N0YWNrKSB7Ci0gICAgICAgICAgICAgICAg
aml0LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgICAgICAgICBqaXQubG9h
ZFZhbHVlKGpzUGFyYW0sIHNjcmF0Y2hKU1IpOwogICAgICAgICAgICAgICAgIGlmICghdHlwZS5p
c051bGxhYmxlKCkpCi0gICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJh
bmNoSWZOdWxsKHNjcmF0Y2hHUFIpKTsKLSAgICAgICAgICAgICAgICBqaXQuc3RvcmU2NChzY3Jh
dGNoR1BSLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0ub2Zm
c2V0RnJvbVNQKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5i
cmFuY2hJZk51bGwoc2NyYXRjaEpTUikpOworICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVl
KHNjcmF0Y2hKU1IsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBhcmFtc1tp
XS5vZmZzZXRGcm9tU1AoKSkpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICBhdXRvIGV4dGVybkdQUiA9IHdhc21DYWxsSW5mby5wYXJhbXNbaV0uZ3ByKCk7Ci0gICAgICAg
ICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBleHRlcm5HUFIpOworICAgICAgICAgICAgICAg
IGF1dG8gZXh0ZXJuSlNSID0gd2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5qc3IoKTsKKyAgICAgICAg
ICAgICAgICBqaXQubG9hZFZhbHVlKGpzUGFyYW0sIGV4dGVybkpTUik7CiAgICAgICAgICAgICAg
ICAgaWYgKCF0eXBlLmlzTnVsbGFibGUoKSkKLSAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGgu
YXBwZW5kKGppdC5icmFuY2hJZk51bGwoZXh0ZXJuR1BSKSk7CisgICAgICAgICAgICAgICAgICAg
IHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOdWxsKGV4dGVybkpTUikpOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTMwMywzNSArMzE3LDQyIEBA
IE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9u
Ojpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkY2
NDogewogICAgICAgICAgICAgaWYgKCFpc1N0YWNrKQogICAgICAgICAgICAgICAgIHNjcmF0Y2hG
UFIgPSB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmZwcigpOwotICAgICAgICAgICAgYXV0byBtb3Zl
VG9EZXN0aW5hdGlvbiA9IFsmXSAoKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGlzU3RhY2spIHsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKHNpZ25hdHVyZS5hcmd1bWVudChpKS5pc0YzMigpKQot
ICAgICAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlRmxvYXQoc2NyYXRjaEZQUiwgY2FsbGVl
RnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSk7
Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIGppdC5z
dG9yZURvdWJsZShzY3JhdGNoRlBSLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21DYWxsSW5m
by5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB9OworICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShqc1BhcmFtLCBzY3JhdGNoSlNSKTsK
KyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFu
Y2hJZk5vdE51bWJlcihzY3JhdGNoSlNSLCBJbnZhbGlkR1BSUmVnKSk7CisjZWxpZiBVU0UoSlNW
QUxVRTMyXzY0KQorICAgICAgICAgICAgc3RhY2tMaW1pdEdQUklzQ2xvYmJlcmVkID0gdHJ1ZTsK
KyAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIoc2NyYXRj
aEpTUiwgc3RhY2tMaW1pdEdQUikpOworI2VuZGlmCisgICAgICAgICAgICBhdXRvIGlzSW50MzIg
PSBqaXQuYnJhbmNoSWZJbnQzMihzY3JhdGNoSlNSKTsKIAotICAgICAgICAgICAgaml0LmxvYWQ2
NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQu
YnJhbmNoSWZOb3ROdW1iZXIoc2NyYXRjaEdQUikpOwotICAgICAgICAgICAgYXV0byBpc0ludDMy
ID0gaml0LmJyYW5jaElmSW50MzIoc2NyYXRjaEdQUik7Ci0KLSAgICAgICAgICAgIGppdC51bmJv
eERvdWJsZShzY3JhdGNoR1BSLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSKTsKKyNpZiBVU0UoSlNW
QUxVRTY0KQorICAgICAgICAgICAgaml0LnVuYm94RG91YmxlKHNjcmF0Y2hKU1IucGF5bG9hZEdQ
UigpLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgc2NyYXRjaEZQUik7CisjZWxpZiBVU0UoSlNW
QUxVRTMyXzY0KQorICAgICAgICAgICAgaml0LnVuYm94RG91YmxlKHNjcmF0Y2hKU1IsIHNjcmF0
Y2hGUFIpOworI2VuZGlmCiAgICAgICAgICAgICBpZiAoc2lnbmF0dXJlLmFyZ3VtZW50KGkpLmlz
RjMyKCkpCiAgICAgICAgICAgICAgICAgaml0LmNvbnZlcnREb3VibGVUb0Zsb2F0KHNjcmF0Y2hG
UFIsIHNjcmF0Y2hGUFIpOwotICAgICAgICAgICAgbW92ZVRvRGVzdGluYXRpb24oKTsKICAgICAg
ICAgICAgIGF1dG8gZG9uZSA9IGppdC5qdW1wKCk7CiAKICAgICAgICAgICAgIGlzSW50MzIubGlu
aygmaml0KTsKICAgICAgICAgICAgIGlmIChzaWduYXR1cmUuYXJndW1lbnQoaSkuaXNGMzIoKSkg
ewotICAgICAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0Zsb2F0KHNjcmF0Y2hHUFIsIHNj
cmF0Y2hGUFIpOwotICAgICAgICAgICAgICAgIG1vdmVUb0Rlc3RpbmF0aW9uKCk7CisgICAgICAg
ICAgICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRmxvYXQoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCks
IHNjcmF0Y2hGUFIpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBqaXQu
Y29udmVydEludDMyVG9Eb3VibGUoc2NyYXRjaEdQUiwgc2NyYXRjaEZQUik7Ci0gICAgICAgICAg
ICAgICAgbW92ZVRvRGVzdGluYXRpb24oKTsKKyAgICAgICAgICAgICAgICBqaXQuY29udmVydElu
dDMyVG9Eb3VibGUoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hGUFIpOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgZG9uZS5saW5rKCZqaXQpOwogCisgICAgICAgICAgICBkb25l
LmxpbmsoJmppdCk7CisgICAgICAgICAgICBpZiAoaXNTdGFjaykgeworICAgICAgICAgICAgICAg
IENDYWxsSGVscGVyczo6QWRkcmVzcyBhZGRyIHsgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNt
Q2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSB9OworICAgICAgICAgICAgICAgIGlm
IChzaWduYXR1cmUuYXJndW1lbnQoaSkuaXNGMzIoKSkgeworICAgICAgICAgICAgICAgICAgICBq
aXQuc3RvcmVGbG9hdChzY3JhdGNoRlBSLCBhZGRyLndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkp
OworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZTMy
KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCBhZGRyLndpdGhPZmZzZXQoVGFnT2Zmc2V0
KSk7CisjZW5kaWYKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
aml0LnN0b3JlRG91YmxlKHNjcmF0Y2hGUFIsIGFkZHIpOworICAgICAgICAgICAgfQogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKQEAgLTM0Miw0MiArMzYz
LDQ0IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1
bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgLy8gQXQgdGhpcyBwb2ludCwgd2Un
cmUgY29tbWl0dGVkIHRvIGRvaW5nIGEgZmFzdCBjYWxsLgogCiAgICAgaWYgKFdhc206OkNvbnRl
eHQ6OnVzZUZhc3RUTFMoKSkgCi0gICAgICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZShz
Y3JhdGNoR1BSKTsKKyAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHNjcmF0Y2hK
U1IucGF5bG9hZEdQUigpKTsKICAgICBlbHNlCi0gICAgICAgIGppdC5sb2FkUHRyKHZtLndhc21D
b250ZXh0LnBvaW50ZXJUb0luc3RhbmNlKCksIHNjcmF0Y2hHUFIpOworICAgICAgICBqaXQubG9h
ZFB0cih2bS53YXNtQ29udGV4dC5wb2ludGVyVG9JbnN0YW5jZSgpLCBzY3JhdGNoSlNSLnBheWxv
YWRHUFIoKSk7CiAgICAgcHRyZGlmZl90IHByZXZpb3VzSW5zdGFuY2VPZmZzZXQgPSB0aGlzLT5w
cmV2aW91c0luc3RhbmNlT2Zmc2V0KCk7Ci0gICAgaml0LnN0b3JlUHRyKHNjcmF0Y2hHUFIsIEND
YWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgcHJldmlvdXNJ
bnN0YW5jZU9mZnNldCkpOworICAgIGppdC5zdG9yZVB0cihzY3JhdGNoSlNSLnBheWxvYWRHUFIo
KSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBwcmV2
aW91c0luc3RhbmNlT2Zmc2V0KSk7CiAKLSAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW1QdHIoJmluc3RhbmNlKCktPmluc3RhbmNlKCkpLCBzY3JhdGNoR1BSKTsKKyAgICBqaXQu
bW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoJmluc3RhbmNlKCktPmluc3RhbmNlKCkp
LCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAgICAgaWYgKFdhc206OkNvbnRleHQ6OnVzZUZh
c3RUTFMoKSkgCi0gICAgICAgIGppdC5zdG9yZVdhc21Db250ZXh0SW5zdGFuY2Uoc2NyYXRjaEdQ
Uik7CisgICAgICAgIGppdC5zdG9yZVdhc21Db250ZXh0SW5zdGFuY2Uoc2NyYXRjaEpTUi5wYXls
b2FkR1BSKCkpOwogICAgIGVsc2UgewotICAgICAgICBqaXQubW92ZShzY3JhdGNoR1BSLCBwaW5u
ZWRSZWdzLndhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyKTsKLSAgICAgICAgaml0LnN0b3JlUHRy
KHNjcmF0Y2hHUFIsIHZtLndhc21Db250ZXh0LnBvaW50ZXJUb0luc3RhbmNlKCkpOworICAgICAg
ICBqaXQubW92ZShzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgcGlubmVkUmVncy53YXNtQ29udGV4
dEluc3RhbmNlUG9pbnRlcik7CisgICAgICAgIGppdC5zdG9yZVB0cihzY3JhdGNoSlNSLnBheWxv
YWRHUFIoKSwgdm0ud2FzbUNvbnRleHQucG9pbnRlclRvSW5zdGFuY2UoKSk7CiAgICAgfQogICAg
IGlmIChzdGFja0xpbWl0R1BSSXNDbG9iYmVyZWQpCiAgICAgICAgIGppdC5sb2FkUHRyKHZtLmFk
ZHJlc3NPZlNvZnRTdGFja0xpbWl0KCksIHN0YWNrTGltaXRHUFIpOwotICAgIGppdC5zdG9yZVB0
cihzdGFja0xpbWl0R1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgV2FzbTo6
SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkU3RhY2tMaW1pdCgpKSk7CisgICAgaml0LnN0b3JlUHRy
KHN0YWNrTGltaXRHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoSlNSLnBheWxvYWRH
UFIoKSwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkU3RhY2tMaW1pdCgpKSk7CiAKLSAg
ICBpZiAoISFtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkpIHsKKyNpZiAhQ1BVKEFSTSkgLy8gQVJN
IGhhcyBubyBwaW5uZWQgcmVnaXN0ZXJzIGZvciBXYXNtIE1lbW9yeSwgc28gbm8gbmVlZCB0byBz
ZXQgdGhlbSB1cAorICAgIGlmICghIWluc3RhbmNlKCktPmluc3RhbmNlKCkubW9kdWxlKCkubW9k
dWxlSW5mb3JtYXRpb24oKS5tZW1vcnkpIHsKICAgICAgICAgR1BSUmVnIGJhc2VNZW1vcnkgPSBw
aW5uZWRSZWdzLmJhc2VNZW1vcnlQb2ludGVyOwogICAgICAgICBHUFJSZWcgc2NyYXRjaE9yQm91
bmRzQ2hlY2tpbmdTaXplID0gSW52YWxpZEdQUlJlZzsKICAgICAgICAgYXV0byBtb2RlID0gaW5z
dGFuY2UoKS0+bWVtb3J5TW9kZSgpOwogCiAgICAgICAgIGlmIChpc0FSTTY0RSgpKSB7Ci0gICAg
ICAgICAgICBpZiAobW9kZSAhPSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmcpCisgICAgICAg
ICAgICBpZiAobW9kZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykKICAgICAg
ICAgICAgICAgICBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUgPSBwaW5uZWRSZWdzLmJvdW5k
c0NoZWNraW5nU2l6ZVJlZ2lzdGVyOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
IHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSA9IHN0YWNrTGltaXRHUFI7Ci0gICAgICAgICAg
ICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgV2FzbTo6SW5z
dGFuY2U6Om9mZnNldE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKCkpLCBzY3JhdGNoT3JCb3Vu
ZHNDaGVja2luZ1NpemUpOworICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZD
YWNoZWRCb3VuZHNDaGVja2luZ1NpemUoKSksIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSk7
CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAobW9kZSAhPSBXYXNtOjpNZW1vcnlN
b2RlOjpTaWduYWxpbmcpCi0gICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZEJvdW5k
c0NoZWNraW5nU2l6ZSgpKSwgcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3Rlcik7
CisgICAgICAgICAgICBpZiAobW9kZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2lu
ZykKKyAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2Ny
YXRjaEpTUi5wYXlsb2FkR1BSKCksIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZEJvdW5k
c0NoZWNraW5nU2l6ZSgpKSwgcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3Rlcik7
CiAgICAgICAgIH0KIAotICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Mo
c2NyYXRjaEdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNl
TWVtb3J5KTsKLSAgICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5QW5kVW50YWcoR2lnYWNhZ2U6
OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwgc2NyYXRjaE9yQm91bmRzQ2hlY2tpbmdTaXplLCBzY3Jh
dGNoR1BSKTsKKyAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0
Y2hKU1IucGF5bG9hZEdQUigpLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnko
KSksIGJhc2VNZW1vcnkpOworICAgICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHlBbmRVbnRhZyhH
aWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5LCBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1Np
emUsIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKICAgICB9CisjZW5kaWYKIAogICAgIC8vIFdl
IHVzZSB0aGlzIGNhbGxlZSB0byBpbmRpY2F0ZSBob3cgdG8gdW53aW5kIHBhc3QgdGhlc2UgdHlw
ZXMgb2YgZnJhbWVzOgogICAgIC8vIDEuIFdlIG5lZWQgdG8ga25vdyB3aGVyZSB0byBnZXQgY2Fs
bGVlIHNhdmVzLgpAQCAtMzg5LDggKzQxMiw4IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0Vu
dHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAg
ICAgLy8gRklYTUU6IEN1cnJlbnRseSB3ZSBqdXN0IGRvIGFuIGluZGlyZWN0IGp1bXAuIEJ1dCB3
ZSBzaG91bGQgdGVhY2ggdGhlIE1vZHVsZQogICAgIC8vIGhvdyB0byByZXBhdGNoIHVzOgogICAg
IC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY1NzAKLSAgICBq
aXQubG9hZFB0cihlbnRyeXBvaW50TG9hZExvY2F0aW9uKCksIHNjcmF0Y2hHUFIpOwotICAgIGpp
dC5jYWxsKHNjcmF0Y2hHUFIsIFdhc21FbnRyeVB0clRhZyk7CisgICAgaml0LmxvYWRQdHIoZW50
cnlwb2ludExvYWRMb2NhdGlvbigpLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CisgICAgaml0
LmNhbGwoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIFdhc21FbnRyeVB0clRhZyk7CiAKICAgICBt
YXJzaGFsbEpTUmVzdWx0KGppdCwgc2lnbmF0dXJlLCB3YXNtQ2FsbEluZm8sIHNhdmVkUmVzdWx0
UmVnaXN0ZXJzKTsKIApAQCAtNDIwLDcgKzQ0Myw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxK
U0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygp
CiAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHRoaXMpLCBHUFJJbmZv
OjpyZWdUMCk7CiAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAjaWYgQ1BVKEFSTTY0
RSkKLSAgICBqaXQudW50YWdSZXR1cm5BZGRyZXNzKHNjcmF0Y2hHUFIpOworICAgIGppdC51bnRh
Z1JldHVybkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOwogI2VuZGlmCiAgICAgYXV0
byBqdW1wVG9Ib3N0Q2FsbFRodW5rID0gaml0Lmp1bXAoKTsKIApAQCAtNDI4LDcgKzQ1MSw3IEBA
IE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9u
Ojpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgaWYgKFVOTElLRUxZKGxpbmtCdWZmZXIuZGlk
RmFpbFRvQWxsb2NhdGUoKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgbGlua0J1
ZmZlci5saW5rKGp1bXBUb0hvc3RDYWxsVGh1bmssIENvZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQ
dHJUYWc+KGV4ZWN1dGFibGUoKS0+ZW50cnlwb2ludEZvcihDb2RlRm9yQ2FsbCwgTXVzdENoZWNr
QXJpdHkpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyAgICBsaW5rQnVmZmVyLmxpbmsoanVtcFRv
SG9zdENhbGxUaHVuaywgQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4oZXhlY3V0YWJs
ZSgpLT5lbnRyeXBvaW50Rm9yKENvZGVGb3JDYWxsLCBNdXN0Q2hlY2tBcml0eSkpKTsKICAgICBt
X2pzQ2FsbEVudHJ5cG9pbnQgPSBGSU5BTElaRV9XQVNNX0NPREUobGlua0J1ZmZlciwgV2FzbUVu
dHJ5UHRyVGFnLCAiSlMtPldhc20gSUMiKTsKICAgICByZXR1cm4gbV9qc0NhbGxFbnRyeXBvaW50
LmNvZGUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMGVlNjg3YTNiMWNl
YjFhNWI2NDQxZGM0Mjk2YzhiNjQxNmQxMmY4Yi4uNzRmNzIwYmQwNDQ1OWRiYWI1NzVjNmZkZTc5
NDNhYjQ0MzM2NWQzNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAKQEAgLTE1OCw3ICsx
NTgsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJseUds
b2JhbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIFJlZjxXYXNtOjpHbG9iYWw+IHdh
c21HbG9iYWwgPSBXYXNtOjpHbG9iYWw6OmNyZWF0ZSh0eXBlLCBtdXRhYmlsaXR5LCBpbml0aWFs
VmFsdWUpOwogICAgIEpTV2ViQXNzZW1ibHlHbG9iYWwqIGpzV2ViQXNzZW1ibHlHbG9iYWwgPSBK
U1dlYkFzc2VtYmx5R2xvYmFsOjp0cnlDcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgd2ViQXNzZW1i
bHlHbG9iYWxTdHJ1Y3R1cmUsIFdURk1vdmUod2FzbUdsb2JhbCkpOwogICAgIFJFVFVSTl9JRl9F
WENFUFRJT04odGhyb3dTY29wZSwgeyB9KTsKLSAgICBlbnN1cmVTdGlsbEFsaXZlSGVyZShiaXR3
aXNlX2Nhc3Q8dm9pZCo+KGluaXRpYWxWYWx1ZSkpOyAvLyBFbnN1cmUgdGhpcyBpcyBrZXB0IGFs
aXZlIHdoaWxlIGNyZWF0aW5nIEpTV2ViQXNzZW1ibHlHbG9iYWwuCisgICAgZW5zdXJlU3RpbGxB
bGl2ZUhlcmUoaW5pdGlhbFZhbHVlKTsgLy8gRW5zdXJlIHRoaXMgaXMga2VwdCBhbGl2ZSB3aGls
ZSBjcmVhdGluZyBKU1dlYkFzc2VtYmx5R2xvYmFsLgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNXZWJBc3NlbWJseUdsb2JhbCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAppbmRleCAyNWUw
ODlmYTIwNzFiM2Y0N2Y0NTllYzYzNjgxOGViZGIxMTNhOTljLi5lMjkwYTMzMDE2NTI0MzgxMmM5
NGQxNzJhMjMyOGJmNThlMzk1OGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCkBAIC01NTQsNyArNTU0
LDcgQEAgdm9pZCBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6aW5pdGlhbGl6ZUV4cG9ydHMoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICAgICAgICAgICAgICBKU1dlYkFzc2VtYmx5
R2xvYmFsKiBnbG9iYWxWYWx1ZSA9IEpTV2ViQXNzZW1ibHlHbG9iYWw6OnRyeUNyZWF0ZShnbG9i
YWxPYmplY3QsIHZtLCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5R2xvYmFsU3RydWN0dXJlKCks
IFdURk1vdmUoZ2xvYmFsUmVmKSk7CiAgICAgICAgICAgICAgICAgc2NvcGUuYXNzZXJ0Tm9FeGNl
cHRpb24oKTsKICAgICAgICAgICAgICAgICBtX2luc3RhbmNlLT5saW5rR2xvYmFsKHZtLCBnbG9i
YWxJbmRleCwgZ2xvYmFsVmFsdWUpOwotICAgICAgICAgICAgICAgIGVuc3VyZVN0aWxsQWxpdmVI
ZXJlKGJpdHdpc2VfY2FzdDx2b2lkKj4oaW5pdGlhbEJpdHMpKTsgLy8gRW5zdXJlIHRoaXMgaXMg
a2VwdCBhbGl2ZSB3aGlsZSBjcmVhdGluZyBKU1dlYkFzc2VtYmx5R2xvYmFsLgorICAgICAgICAg
ICAgICAgIGVuc3VyZVN0aWxsQWxpdmVIZXJlKGluaXRpYWxCaXRzKTsgLy8gRW5zdXJlIHRoaXMg
aXMga2VwdCBhbGl2ZSB3aGlsZSBjcmVhdGluZyBKU1dlYkFzc2VtYmx5R2xvYmFsLgogICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtRW5hYmxlLmgKaW5kZXggMzU1MGQ0MWI0NTJhOWNhMTQ5YTE1YWMwMGY1ZWYwNTM4OTMxMDhi
Yi4uOTg2OGNmZTBkNmRjN2E4YmMxY2U1NjUwN2E4ODBhMTg5NGJjMzhkNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUVuYWJsZS5oCkBAIC01ODUsMTIgKzU4NSwxMiBAQAogI2VuZGlmCiAKICNpZiBVU0UoSlNW
QUxVRTMyXzY0KQotLyogRGlzYWJsZSBXZWJBc3NlbWJseSBvbiBhbGwgMzJiaXQgcGxhdGZvcm1z
LiBJdHMgTExJbnQgdGllciBjb3VsZAotICogd29yayBvbiB0aGVtLCBidXQgc3RpbGwgbmVlZHMg
c29tZSBmaW5hbCB0b3VjaGVzLiAqLworI2lmICFDUFUoQVJNKQogI3VuZGVmIEVOQUJMRV9XRUJB
U1NFTUJMWQogI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFkgMAogI3VuZGVmIEVOQUJMRV9XRUJB
U1NFTUJMWV9CM0pJVAogI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFlfQjNKSVQgMAorI2VuZGlm
CiAjaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykpICYmIE9TKExJTlVYKQogLyogT24g
QVJNdjcgYW5kIE1JUFMgb24gTGludXggdGhlIEpJVCBpcyBlbmFibGVkIHVubGVzcyBleHBsaWNp
dGx5IGRpc2FibGVkLiAqLwogI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpCkBAIC03MDgsNyArNzA4
LDcgQEAKICNkZWZpbmUgRU5BQkxFX1NBTVBMSU5HX1BST0ZJTEVSIDEKICNlbmRpZgogCi0jaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkKKyNpZiBFTkFCTEUo
V0VCQVNTRU1CTFkpICYmIEhBVkUoTUFDSElORV9DT05URVhUKSAmJiBDUFUoQUREUkVTUzY0KQog
I2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSAxCiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGUwODFl
YzA0MjZlOGM1NmVhYzViMDE1NTAxYTljZGQ5NzVlNDIyZjIuLjM5OWUwOGU5YzY4MWU5ZjkyMTMz
NDM1ZTIyMzgyOWUyNjcyZjFlNzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMi0wNC0xMiAgWGFuIEzDs3BleiAg
PHhhbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtKU0NdIEVuYWJsZSBXYXNtTExJbnQgb24gQVJN
djcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTI2
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2Ny
aXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0czogYWxsb3cgdG8gcnVuIHRoZSB3YXNtIHRlc3RzIG9u
CisgICAgICAgIGFybXY3IGV2ZW4gd2l0aG91dCBqaXQgc3VwcG9ydCAoZm9yIG5vdykuCisKIDIw
MjItMDQtMTEgIFR5bGVyIFdpbGNvY2sgIDx0eWxlcl93QGFwcGxlLmNvbT4KIAogICAgICAgICBB
WDogVXBkYXRlIGlzb2xhdGVkIHRyZWUgaW4gcmVzcG9uc2UgdG8gQVhSZWFkT25seVN0YXR1c0No
YW5nZWQsIEFYUmVxdWlyZWRTdGF0dXNDaGFuZ2VkLCBhbmQgQVhQcmVzc2VkU3RhdGVDaGFuZ2Vk
IG5vdGlmaWNhdGlvbnMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3Mt
dGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCmluZGV4IDNkMGY0MDYy
YWViMDY0MjQyMWI0MDliYzc5N2NkMGVjZGM2OGNhMGIuLjU2NDE4MmMxZmFiZjI4MzdkZjAwMDhh
ZDdjMTdiMWViNTBjOWFlNTkgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJl
c3MtdGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwpAQCAtNTg1
LDYgKzU4NSw4IEBAIGVuZAogJGhvc3RPUyA9IGRldGVybWluZU9TIHVubGVzcyAkaG9zdE9TCiAk
YXJjaGl0ZWN0dXJlID0gZGV0ZXJtaW5lQXJjaGl0ZWN0dXJlIHVubGVzcyAkYXJjaGl0ZWN0dXJl
CiAkaXNGVExQbGF0Zm9ybSA9ICEoJGFyY2hpdGVjdHVyZSA9PSAieDg2IiB8fCAkYXJjaGl0ZWN0
dXJlID09ICJhcm0iIHx8ICRhcmNoaXRlY3R1cmUgPT0gIm1pcHMiIHx8ICRhcmNoaXRlY3R1cmUg
PT0gInJpc2N2NjQiIHx8ICRob3N0T1MgPT0gIndpbmRvd3MiIHx8ICRob3N0T1MgPT0gInBsYXlz
dGF0aW9uIikKKyMgU3BlY2lhbCBjYXNlIGFybXY3LCB3ZSB3YW50IHRvIHJ1biB0aGUgd2FzbSB0
ZXN0cyB0ZW1wb3JhcmlseSB3aXRob3V0IEIzL0FpciBzdXBwb3J0CiskaXNXYXNtUGxhdGZvcm0g
PSAkaXNGVExQbGF0Zm9ybSB8fCAkYXJjaGl0ZWN0dXJlID09ICJhcm0iCiAKIGlmICRhcmNoaXRl
Y3R1cmUgPT0gIng4NiIKICAgICAjIFRoZSBKSVQgaXMgdGVtcG9yYXJpbHkgZGlzYWJsZWQgb24g
dGhpcyBwbGF0Zm9ybSBzaW5jZQpAQCAtMTcyOSw3ICsxNzMxLDcgQEAgZW5kCiAKIGRlZiBydW5X
ZWJBc3NlbWJseQogICAgIHJldHVybiBpZiAhJGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNG
VExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2FzbVBsYXRmb3JtCiAgICAgcnVuKCJkZWZh
dWx0LXdhc20iLCAiLW0iLCAqRlRMX09QVElPTlMpCiAgICAgaWYgJG1vZGUgIT0gInF1aWNrIgog
ICAgICAgICBydW4oIndhc20tbm8tY2ppdC15ZXMtdGxzLWNvbnRleHQiLCAiLW0iLCAiLS11c2VG
YXN0VExTRm9yV2FzbUNvbnRleHQ9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBOT19DSklUX09QVElP
TlMpKQpAQCAtMTczNywxNSArMTczOSwxNyBAQCBkZWYgcnVuV2ViQXNzZW1ibHkKICAgICAgICAg
cnVuKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgIi1tIiwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRp
c29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFs
bG9jYXRpb249dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAg
IHJ1bigid2FzbS1uby10bHMtY29udGV4dCIsICItbSIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29u
dGV4dD1mYWxzZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLXNsb3ctbWVtb3J5
IiwgIi1tIiwgIi0tdXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5PWZhbHNlIiwgKkZUTF9PUFRJT05T
KQotICAgICAgICBydW4oIndhc20tYjMiLCAiLW0iLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAi
LS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVuKCJ3YXNt
LWFpciIsICItbSIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhl
Y3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVu
KCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5IiwgIi1tIiwgIi0tY29sbGVjdENvbnRpbnVvdXNs
eT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykgaWYgc2hvdWxkQ29sbGVj
dENvbnRpbnVvdXNseT8KKyAgICAgICAgaWYgJGlzRlRMUGxhdGZvcm0KKyAgICAgICAgICAgIHJ1
bigid2FzbS1iMyIsICItbSIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFVc2Vz
QWlyPWZhbHNlIiwgKkZUTF9PUFRJT05TKQorICAgICAgICAgICAgcnVuKCJ3YXNtLWFpciIsICIt
bSIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlz
bGFuZEFsbG9jYXRpb249dHJ1ZSIsICpGVExfT1BUSU9OUykKKyAgICAgICAgZW5kCiAgICAgZW5k
CiBlbmQKIAogZGVmIHJ1bldlYkFzc2VtYmx5SmV0U3RyZWFtMgogICAgIHJldHVybiBpZiAhJGpp
dFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlz
V2FzbVBsYXRmb3JtCiAKICAgICBpZiAkbWVtb3J5TGltaXRlZAogICAgICAgICBza2lwCkBAIC0x
NzY0LDE1ICsxNzY4LDE3IEBAIGRlZiBydW5XZWJBc3NlbWJseUpldFN0cmVhbTIKICAgICAgICAg
cnVuKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVl
VG9PbGRBZ2U9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAg
IHJ1bigid2FzbS1uby10bHMtY29udGV4dCIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1m
YWxzZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLXNsb3ctbWVtb3J5IiwgIi0t
dXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5PWZhbHNlIiwgKkZUTF9PUFRJT05TKQotICAgICAgICBy
dW4oIndhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1m
YWxzZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVuKCJ3YXNtLWFpciIsICItLXVzZVdhc21M
TEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249
dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLWNvbGxlY3QtY29udGludW91
c2x5IiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpG
VExfT1BUSU9OUykgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8KKyAgICAgICAgaWYgJEZU
TFBsYXRmb3JtCisgICAgICAgICAgICBydW4oIndhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFs
c2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICpGVExfT1BUSU9OUykKKyAgICAgICAgICAg
IHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemlu
Z0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqRlRMX09QVElPTlMpCisgICAgICAg
IGVuZAogICAgIGVuZAogZW5kCiAKIGRlZiBydW5XZWJBc3NlbWJseVN1aXRlKCpvcHRpb25hbFRl
c3RTcGVjaWZpY09wdGlvbnMpCiAgICAgcmV0dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4g
aWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KICAgICBt
b2R1bGVzID0gRGlyW1dBU01URVNUU19QQVRIICsgIiouanMiXS5tYXAgeyB8ZnwgRmlsZS5iYXNl
bmFtZShmKSB9CiAgICAgcHJlcGFyZUV4dHJhQWJzb2x1dGVGaWxlcyhXQVNNVEVTVFNfUEFUSCwg
WyJ3YXNtLmpzb24iXSkKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZpbGVzKG1vZHVsZXMubWFw
IHsgfGZ8ICIuLi8iICsgZiB9LCAkY29sbGVjdGlvbikKQEAgLTE3ODgsOSArMTc5NCwxMSBAQCBk
ZWYgcnVuV2ViQXNzZW1ibHlTdWl0ZSgqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQogICAg
ICAgICBydW4oIndhc20tZWFnZXItamV0dGlzb24iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlz
b25EdWVUb09sZEFnZT10cnVlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxs
b2NhdGlvbj10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25h
bFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgICBydW4oIndhc20tbm8tdGxzLWNvbnRleHQi
LCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0
aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuKCJ3YXNtLXNsb3ctbWVtb3J5
IiwgIi0tdXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9w
dGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCi0gICAgICAgIHJ1bigid2FzbS1iMyIsICItLXVz
ZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9O
UyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCi0gICAgICAgIHJ1bigid2FzbS1haXIi
LCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xh
bmRBbGxvY2F0aW9uPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNP
cHRpb25zKSkKICAgICAgICAgcnVuKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5IiwgIi0tY29s
bGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElPTlMg
KyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91
c2x5PworICAgICAgICBpZiAkaXNGVExQbGF0Zm9ybQorICAgICAgICAgICAgcnVuKCJ3YXNtLWIz
IiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqKEZU
TF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKKyAgICAgICAgICAgIHJ1
bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4
ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxU
ZXN0U3BlY2lmaWNPcHRpb25zKSkKKyAgICAgICAgZW5kCiAgICAgZW5kCiBlbmQKIApAQCAtMTgw
Niw3ICsxODE0LDkgQEAgZW5kCiBkZWYgcnVuV2ViQXNzZW1ibHlXaXRoSGFybmVzcygqb3B0aW9u
YWxUZXN0U3BlY2lmaWNPcHRpb25zKQogICAgIHJhaXNlIHVubGVzcyAkYmVuY2htYXJrLnRvX3Mg
PX4gL2hhcm5lc3NcLm0/anMvCiAgICAgcmV0dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4g
aWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KKyAgICAj
IFNraXAgdGhpcyBjb21wbGV0ZWx5IG9uIGFybXY3IGZvciBub3csIHNpbmNlIG1vc3Qgb2YgdGhl
IHRlc3RzIGFyZSByZWxhdGVkIHRvIE9TUiBhbmQgaXQncyBhIGJpdCBoYWlyeSB0byBza2lwIHRo
ZW0gbWFudWFsbHkKKyAgICByZXR1cm4gaWYgJGFyY2hpdGVjdHVyZSA9PSAiYXJtIgogCiAgICAg
d2FzbUZpbGVzID0gYWxsV2FzbUZpbGVzKCRjb2xsZWN0aW9uKQogICAgIHByZXBhcmVFeHRyYVJl
bGF0aXZlRmlsZXMod2FzbUZpbGVzLm1hcCB7IHxmfCBmLmJhc2VuYW1lIH0sICRjb2xsZWN0aW9u
KQpAQCAtMTgxOCw5ICsxODI4LDExIEBAIGRlZiBydW5XZWJBc3NlbWJseVdpdGhIYXJuZXNzKCpv
cHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiAgICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNt
LWVhZ2VyLWpldHRpc29uIiwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9
dHJ1ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIs
ICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNP
cHRpb25zKSkKICAgICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tbm8tdGxzLWNvbnRleHQiLCAi
LS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9u
YWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tc2xv
dy1tZW1vcnkiLCAiLS11c2VXZWJBc3NlbWJseUZhc3RNZW1vcnk9ZmFsc2UiLCAqKEZUTF9PUFRJ
T05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKLSAgICAgICAgcnVuSGFybmVzc1Rl
c3QoIndhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1m
YWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQotICAg
ICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1uby1haXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2Ui
LCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqKEZU
TF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuSGFy
bmVzc1Rlc3QoIndhc20tY29sbGVjdC1jb250aW51b3VzbHkiLCAiLS1jb2xsZWN0Q29udGludW91
c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVz
dFNwZWNpZmljT3B0aW9ucykpIGlmIHNob3VsZENvbGxlY3RDb250aW51b3VzbHk/CisgICAgICAg
IGlmICRpc0ZUTFBsYXRmb3JtCisgICAgICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1iMyIs
ICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExf
T1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCisgICAgICAgICAgICBydW5I
YXJuZXNzVGVzdCgid2FzbS1uby1haXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VS
YW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqKEZUTF9PUFRJT05T
ICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKKyAgICAgICAgZW5kCiAgICAgZW5kCiBl
bmQKIApAQCAtMTgzMCw3ICsxODQyLDcgQEAgZGVmIHJ1bldlYkFzc2VtYmx5RW1zY3JpcHRlbiht
b2RlKQogICAgICAgICByZXR1cm4KICAgICBlbmQKICAgICByZXR1cm4gaWYgISRqaXRUZXN0cwot
ICAgIHJldHVybiBpZiAhJGlzRlRMUGxhdGZvcm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0
Zm9ybQogICAgIHdhc20gPSAkYmVuY2htYXJrLnRvX3Muc3ViISAnLmpzJywgJy53YXNtJwogICAg
IHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMoW1BhdGhuYW1lKCcuLicpICsgd2FzbV0sICRjb2xs
ZWN0aW9uKQogICAgIHJ1bigiZGVmYXVsdC13YXNtIiwgKkZUTF9PUFRJT05TKQpAQCAtMTgzOCw5
ICsxODUwLDExIEBAIGRlZiBydW5XZWJBc3NlbWJseUVtc2NyaXB0ZW4obW9kZSkKICAgICAgICAg
cnVuKCJ3YXNtLW5vLWNqaXQteWVzLXRscy1jb250ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21D
b250ZXh0PXRydWUiLCAqKEZUTF9PUFRJT05TICsgTk9fQ0pJVF9PUFRJT05TKSkKICAgICAgICAg
cnVuKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVl
VG9PbGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRp
b249dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigi
d2FzbS1uby10bHMtY29udGV4dCIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIs
ICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVuKCJ3YXNtLWIzIiwgIi0tdXNlV2FzbUxMSW50PWZh
bHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqRlRMX09QVElPTlMpCi0gICAgICAgIHJ1
bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4
ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1
bigid2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNseSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9dHJ1
ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqRlRMX09QVElPTlMpIGlmIHNob3VsZENvbGxlY3RDb250
aW51b3VzbHk/CisgICAgICAgIGlmICRpc0ZUTFBsYXRmb3JtCisgICAgICAgICAgICBydW4oIndh
c20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIs
ICpGVExfT1BUSU9OUykKKyAgICAgICAgICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJ
bnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRy
dWUiLCAqRlRMX09QVElPTlMpCisgICAgICAgIGVuZAogICAgIGVuZAogZW5kCiAKQEAgLTE4NTAs
NyArMTg2NCw3IEBAIGRlZiBydW5XZWJBc3NlbWJseVNwZWNUZXN0QmFzZShtb2RlLCBzcGVjSGFy
bmVzc1BhdGgsICpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvCiAgICAgICAgIHJldHVybgogICAg
IGVuZAogICAgIHJldHVybiBpZiAhJGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0
Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2FzbVBsYXRmb3JtCiAgICAgcHJlcGFyZUV4dHJhQWJz
b2x1dGVGaWxlcyhXQVNNVEVTVFNfUEFUSCwgWyJ3YXNtLmpzb24iXSkKIAogICAgIG1vZHVsZXMg
PSBEaXJbV0FTTVRFU1RTX1BBVEggKyAiKi5qcyJdLm1hcCB7IHxmfCBGaWxlLmJhc2VuYW1lKGYp
IH0KQEAgLTE4NjUsOSArMTg3OSwxMSBAQCBkZWYgcnVuV2ViQXNzZW1ibHlTcGVjVGVzdEJhc2Uo
bW9kZSwgc3BlY0hhcm5lc3NQYXRoLCAqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpbwogICAgICAg
cnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20tbm8tY2ppdC15ZXMtdGxzLWNvbnRleHQiLCBub2lz
eU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAgIi0tdXNlRmFzdFRMU0Zvcldhc21D
b250ZXh0PXRydWUiLCAqKEZUTF9PUFRJT05TICsgTk9fQ0pJVF9PUFRJT05TICsgb3B0aW9uYWxU
ZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWVh
Z2VyLWpldHRpc29uIiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0t
Zm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRvbWl6
aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAq
KEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgIHJ1bldp
dGhPdXRwdXRIYW5kbGVyKCJ3YXNtLW5vLXRscy1jb250ZXh0Iiwgbm9pc3lPdXRwdXRIYW5kbGVy
LCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PWZhbHNlIiwg
KihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCi0gICAgICBydW5X
aXRoT3V0cHV0SGFuZGxlcigid2FzbS1iMyIsIG5vaXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5l
c3NKc1BhdGgsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNl
IiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCi0gICAgICBy
dW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1haXIiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNI
YXJuZXNzSnNQYXRoLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4
ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxU
ZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWNv
bGxlY3QtY29udGludW91c2x5Iiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0
aCwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICooRlRM
X09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKSBpZiBzaG91bGRDb2xsZWN0
Q29udGludW91c2x5PworICAgICAgaWYgJGlzRlRMUGxhdGZvcm0KKyAgICAgICAgICBydW5XaXRo
T3V0cHV0SGFuZGxlcigid2FzbS1iMyIsIG5vaXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NK
c1BhdGgsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwg
KihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCisgICAgICAgICAg
cnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20tYWlyIiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVj
SGFybmVzc0pzUGF0aCwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdF
eGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFs
VGVzdFNwZWNpZmljT3B0aW9ucykpCisgICAgICBlbmQKICAgICBlbmQKIGVuZAogCkBAIC0xODg1
LDcgKzE5MDEsNyBAQCBlbmQKIAogZGVmIHJ1bldlYkFzc2VtYmx5TG93RXhlY3V0YWJsZU1lbW9y
eSgqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQogICAgIHJldHVybiBpZiAhJGppdFRlc3Rz
Ci0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2FzbVBs
YXRmb3JtCiAgICAgbW9kdWxlcyA9IERpcltXQVNNVEVTVFNfUEFUSCArICIqLmpzIl0ubWFwIHsg
fGZ8IEZpbGUuYmFzZW5hbWUoZikgfQogICAgIHByZXBhcmVFeHRyYUFic29sdXRlRmlsZXMoV0FT
TVRFU1RTX1BBVEgsIFsid2FzbS5qc29uIl0pCiAgICAgcHJlcGFyZUV4dHJhUmVsYXRpdmVGaWxl
cyhtb2R1bGVzLm1hcCB7IHxmfCAiLi4vIiArIGYgfSwgJGNvbGxlY3Rpb24pCmRpZmYgLS1naXQg
YS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYyMDQ3N2Y4NjBh
MDVhYTUyYTg1YmE0M2Y4ZGY1ZTk0YmIxMTlhN2MuLjFkMmEzNDI1ZDViZjg2OTc1OGRmNWYxNDhl
ODI1MTVlYzFmMzNjOTIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDQtMTIgIFhhbiBMw7NwZXogIDx4
YW5AaWdhbGlhLmNvbT4KKworICAgICAgICBbSlNDXSBFbmFibGUgV2FzbUxMSW50IG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEyNjAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVz
cy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5hbWUtc2VjdGlvbi5qczoKKyAgICAgICAgKiBzdHJl
c3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qczoKKyAgICAgICAgKiB3YXNtL3JlZ3Jlc3MvbGxp
bnQtY2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnkuanM6CisKIDIwMjItMDQtMTAgIFl1c3Vr
ZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBERkcgLyBGVEwg
c2hvdWxkIGJlIGF3YXJlIG9mIEpTU3RyaW5nJ3MgU3RyaW5nIHJlcGxhY2VtZW50CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5hbWUtc2VjdGlvbi5q
cyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpz
CmluZGV4IDVjMjIwZmQ3NmNkYzVjNDBlNTljYzY2ZTU3MzQyYzcyZDhjN2YzYWEuLjAwN2FiN2Fj
NTljMTc0NThhOThiNzlmYmUxNzczNmFiNTQyNzZmNjkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3Ry
ZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzCisrKyBiL0pTVGVzdHMv
c3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzCkBAIC0xLDMgKzEs
OSBAQAorLy8gVGhpcyB0ZXN0IGlzIHN0YXRpc3RpY2FsLCBhbmQgd2l0aG91dCBvcHRpbWl6aW5n
IFdhc20gdGllcnMgdGhlIGxpa2VsaWhvb2QKKy8vIG9mIGhpdHRpbmcgdGhlIGRlZXBlc3QgZXhw
ZWN0ZWQgc3RhY2sgdHJhY2UgaXMgdmVyeSBsb3cuIFRvIGdpdmUgdXMgYSBiZXR0ZXIKKy8vIGNo
YW5jZSwgZGlzYWJsZSBKUyBKSVRzIGFuZCBpbmNyZWFzZSBzYW1wbGluZyByYXRlLgorLy8gRklY
TUU6IHJlbW92ZSB3aGVuIDMyLWJpdCBwbGF0Zm9ybXMgc3VwcG9ydCBvcHRpbWl6aW5nIFdhc20g
dGllcnMKKy8vQCByZXF1aXJlT3B0aW9ucygiLS1zYW1wbGVJbnRlcnZhbD0xMCIsICItLXVzZUJh
c2VsaW5lSklUPWZhbHNlIiwgIi0tdXNlREZHSklUPWZhbHNlIikgaWYgWyJhcm0iLCAibWlwcyJd
LmluY2x1ZGU/KCRhcmNoaXRlY3R1cmUpCisvLwogLy9AIHJ1bkRlZmF1bHQKIAogLyoKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanMgYi9KU1Rlc3Rz
L3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzCmluZGV4IDA2ZGYwMTI0OTU5NjllMjg0
MjE4Nzc4NjkwMTM1YmYwOTAxMGVjNmQuLjcyNDBjMDBkZTI3ZTNiZmQzZjk1NTc1MjMwMGNhMGRl
MmY1OTRlZWMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdh
c20uanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qcwpAQCAt
MSwzICsxLDQgQEAKKy8vQCBza2lwIGlmICRhcmNoaXRlY3R1cmUgPT0gImFybSIKIC8vQCBydW5E
ZWZhdWx0CiAKIGlmIChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigpICYmICR2bS5p
c1dhc21TdXBwb3J0ZWQoKSkgewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL3JlZ3Jlc3MvbGxp
bnQtY2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnkuanMgYi9KU1Rlc3RzL3dhc20vcmVncmVz
cy9sbGludC1jYWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5qcwppbmRleCBmOWYwOWM0NzUx
M2E2YzhkOTMyNTM0ZjcyN2RiZmU3N2ZkMjUxZDQ0Li4xMWNmYjE2NGJiNjQxZWYzNGUyMWRiMDU2
OTI3ZGNhMzY3YzM3ZTZkIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vcmVncmVzcy9sbGludC1j
YWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5qcworKysgYi9KU1Rlc3RzL3dhc20vcmVncmVz
cy9sbGludC1jYWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5qcwpAQCAtMSwzICsxLDQgQEAK
Ky8vQCBza2lwIGlmICRhcmNoaXRlY3R1cmUgPT0gImFybSIKIC8vQCByZXF1aXJlT3B0aW9ucygi
LS11c2VXZWJBc3NlbWJseUZhc3RNZW1vcnk9dHJ1ZSIpCiAKIGltcG9ydCAqIGFzIGFzc2VydCBm
cm9tICcuLi9hc3NlcnQuanMnOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458052</attachid>
            <date>2022-04-21 04:02:51 -0700</date>
            <delta_ts>2022-04-21 05:34:58 -0700</delta_ts>
            <desc>v7 - rebase</desc>
            <filename>bug-221260-20220421110248.patch</filename>
            <type>text/plain</type>
            <size>324170</size>
            <attacher name="Geza Lore">glore</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NDYyN2Q0MGRjYTA0MzBiZjNkMGQyYzlkYzNkMmY5OWE2ZTlmN2ZlLi41MTQyYjkzYWQyOTMwN2Mw
MTMzM2EyZmI1MmZiMmY5ZTQ2OTRmYzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMDcgQEAKKzIwMjItMDQtMjEgIFhhbiBMw7NwZXogIDx4YW5AaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbSlNDXSBFbmFibGUgV2FzbUxMSW50IG9uIEFSTXY3CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEyNjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBieSBHZXphIExvcmUgYW5kIFhh
biBMw7NwZXouCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBMTEludCB0aWVyIG9mIFdlYkFzc2Vt
Ymx5IGZvciBBUk12Ny4gQSBsb3Qgb2YgdGhlCisgICAgICAgIHdvcmsgd2lsbCBiZSBzaGFyZWQg
YnkgYW55IDMyYml0IHBvcnQsIGJ1dCB0aGUgb2ZmbGluZWFzc2VtYmxlcgorICAgICAgICBoYXMg
b25seSBiZWVuIHVwZGF0ZWQgZm9yIEFSTXY3IHNvIGZhci4KKworICAgICAgICBNYWluIGhpZ2hs
aWdodHM6CisKKyAgICAgICAgV2UgaGF2ZSBzcGxpdCB0aGUgV2ViQXNzZW1ibHkuYXNtIGZpbGUg
aW50byB0aHJlZSBjaHVua3MsCisgICAgICAgIGZvbGxvd2luZyB3aGF0IExvd0xldmVsSW50ZXJw
cmV0ZXIuYXNtIGRvZXMuIFRoZSBjb21tb24gY29kZQorICAgICAgICByZW1haW5zIGluIFdlYkFz
c2VtYmx5LmFzbSwgYW5kIDMyIGFuZCA2NGJpdCBzcGVjaWZpYyBjb2RlIChtb3N0bHkKKyAgICAg
ICAgb3Bjb2RlIGltcGxlbWVudGF0aW9ucykgZ29lcyBpbnRvIFdlYkFzc2VtYmx5MzJfNjQuYXNt
IGFuZAorICAgICAgICBXZWJBc3NlbWJseTY0LmFzbS4KKworICAgICAgICBXZSBoYXZlIGRlY2lk
ZWQgdG8gdXNlIGNvbnNlY3V0aXZlIGV2ZW4vb2RkIHBhaXJzIG9mIEdQUnMgZm9yIGV2ZXJ5Cisg
ICAgICAgIHR5cGUgb2Ygd2FzbSB2YWx1ZXMsIGV2ZW4gaWYgdGhleSBhcmUgMzJiaXQgKGkzMi9m
MzIpLCB3aXRoIHRoZSBvZGQKKyAgICAgICAgKGhpZ2hlcikgbnVtYmVyZWQgR1BSIGhvbGRpbmcg
dGhlIG1vcmUgc2lnbmlmaWNhbnQgaGFsZi4gMzJiaXQgdmFsdWVzCisgICAgICAgIGFyZSBoZWxk
IGluIHRoZSBldmVuIChsb3dlcikgbnVtYmVyZWQgcmVnaXN0ZXIuIFRoaXMgbWFrZXMgdGhlIGNv
ZGUKKyAgICAgICAgbXVjaCBzaW1wbGVyIGFuZCBhbGxvd3MgdXMgdG8gc2hhcmUgbW9yZSBjb2Rl
IHdpdGggdGhlIDY0Yml0IHZhcmlhbnQuCisgICAgICAgIFRoaXMgaXMgbW9zdGx5IHJlbGV2YW50
IGZvciBhcmd1bWVudCBwYXNzaW5nLCBhbmQgZ2l2ZW4gdGhhdCBldmVyeQorICAgICAgICB2YWx1
ZSBlbmRzIHVwIGluIHRoZSBzdGFjayBhbnl3YXkgd2UgZG8gbm90IHRoaW5rIGl0IGlzIHNpZ25p
ZmljYW50CisgICAgICAgIGZyb20gYSBwZXJmb3JtYW5jZSBQT1YuCisKKyAgICAgICAgV2UgYXJl
IHJldXNpbmcgSlNWYWx1ZVJlZ3MgdG8gaG9sZCBXYXNtIHZhbHVlcyB0b28uIE9idmlvdXNseSB0
aGV5CisgICAgICAgIGFyZSBub3QgcmVhbGx5IEpTVmFsdWVzLCBzbyBpdCBtaWdodCBtYWtlIHNl
bnNlIHRvIGNyZWF0ZSBhIGJhc2UKKyAgICAgICAgY2xhc3MgdGhhdCBjYW4gYmUgdXNlZCBmb3Ig
Ym90aCBKUyBhbmQgV2FzbSB2YWx1ZXMuCisKKyAgICAgICAgV2UgZG8gbm90IGhhdmUgZW5vdWdo
IHJlZ2lzdGVycyB0byBrZWVwIHRoaW5ncyBsaWtlIHRoZSBtZW1vcnkKKyAgICAgICAgYmFzZSBw
b2ludGVyIGFuZCBzaXplIGluIHBpbm5lZCByZWdpc3RlcnMsIHNvIHdlIGFyZSBmb3JjZWQgdG8K
KyAgICAgICAgbG9hZCB0aGVtIG9uIGVhY2ggdXNlLgorCisgICAgICAgIFdlIGRpc2FibGUgdGhl
ICdTaWduYWxpbmcnIG1lbW9yeSBtb2RlLCBzaW5jZSB0aGUgY3VycmVudAorICAgICAgICBpbXBs
ZW1lbnRhdGlvbiByZWxpZXMgb24gYmVpbmcgYWJsZSB0byBtcHJvdGVjdCBhIDJeMzIgKyByZWR6
b25lCisgICAgICAgIHJlZ2lvbiBvZiBtZW1vcnkuIFRoaXMgY2FuIGJlIGNoYW5nZWQgaW4gdGhl
IGZ1dHVyZSBidXQgaXQncyBub3QgYQorICAgICAgICBwcmlvcml0eSBhdCB0aGUgbW9tZW50Lgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogYXNzZW1ibGVyL0FSTXY3QXNz
ZW1ibGVyLmg6CisgICAgICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjp2Y3Z0X3NpZ25lZFRvRmxv
YXRpbmdQb2ludCk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaDoK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6Y29udmVydEludDMyVG9GbG9hdCk6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnRocmVhZFNhZmVQYXRjaGFibGVO
ZWFyQ2FsbCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmNhbGxPcGVyYXRp
b24pOgorICAgICAgICAqIGIzL0IzVmFsdWVSZXAuaDoKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVl
UmVwOjpWYWx1ZVJlcCk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwOgor
ICAgICAgICAoSlNDOjpXYXNtOjpCeXRlY29kZUR1bXBlcjo6Zm9ybWF0Q29uc3RhbnQgY29uc3Qp
OgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5oOiBhZGFwdCB0byBuZXcgY2FsbGVl
IHRhZ2dpbmcgZm9ybWF0LgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OmNhbGxlZSBjb25zdCk6
CisgICAgICAgIChKU0M6OkNhbGxGcmFtZTo6dW5zYWZlQ2FsbGVlIGNvbnN0KToKKyAgICAgICAg
KiBpbnRlcnByZXRlci9DYWxsZWVCaXRzLmg6IGFkZCB3YXNtIHRhZ2dpbmcgb2YgY2FsbGVlIHZh
bHVlcyBmb3IKKyAgICAgICAgMzJiaXQuCisgICAgICAgIChKU0M6OkNhbGxlZUJpdHM6OkNhbGxl
ZUJpdHMpOgorICAgICAgICAoSlNDOjpDYWxsZWVCaXRzOjpvcGVyYXRvcj0pOgorICAgICAgICAo
SlNDOjpDYWxsZWVCaXRzOjpib3hXYXNtKToKKyAgICAgICAgKEpTQzo6Q2FsbGVlQml0czo6aXNX
YXNtIGNvbnN0KToKKyAgICAgICAgKEpTQzo6Q2FsbGVlQml0czo6YXNXYXNtQ2FsbGVlIGNvbnN0
KToKKyAgICAgICAgKiBpbnRlcnByZXRlci9SZWdpc3Rlci5oOgorICAgICAgICAoSlNDOjpSZWdp
c3Rlcjo6dW5ib3hlZEZsb2F0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXI6OmFzYW5V
bnNhZmVVbmJveGVkRmxvYXQgY29uc3QpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMu
aDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjp1bmJveERvdWJsZSk6CisgICAgICAg
ICogaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmNwcDoKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXJB
dE9mZnNldExpc3Q6OlJlZ2lzdGVyQXRPZmZzZXRMaXN0KToKKyAgICAgICAgKiBqaXQvUmVnaXN0
ZXJBdE9mZnNldExpc3QuaDoKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXJBdE9mZnNldExpc3Q6OnNp
emVPZkFyZWFJbkJ5dGVzIGNvbnN0KToKKyAgICAgICAgKiBqaXQvUmVnaXN0ZXJTZXQuY3BwOgor
ICAgICAgICAoSlNDOjpSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKToKKyAgICAg
ICAgKiBsbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaDoKKyAgICAgICAgKiBsbGludC9Mb3dM
ZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L1dlYkFzc2VtYmx5LmFz
bToKKyAgICAgICAgKiBsbGludC9XZWJBc3NlbWJseTMyXzY0LmFzbTogQWRkZWQuCisgICAgICAg
ICogbGxpbnQvV2ViQXNzZW1ibHk2NC5hc206IEFkZGVkLgorICAgICAgICAqIG9mZmxpbmVhc20v
YXJtLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiOgorICAgICAgICAq
IG9mZmxpbmVhc20vcmVnaXN0ZXJzLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vcmlzYy5yYjoK
KyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKyAgICAgICAgKEpTQzo6d2FzbVVuYm94
ZWRGbG9hdCk6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjpKU1ZhbHVlKToKKyAgICAgICAgKiB3YXNtL1dhc21BaXJJUkdlbmVy
YXRvci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjp1c2VTaWduYWxp
bmdNZW1vcnkgY29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6QWly
SVJHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6ZW1pdENo
ZWNrQW5kUHJlcGFyZVBvaW50ZXIpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRv
cjo6YWRkQ2FsbCk6CisgICAgICAgICogd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHA6CisgICAg
ICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OnVzZVNpZ25hbGluZ01lbW9yeSBjb25zdCk6
CisgICAgICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OkIzSVJHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjphZGRBcmd1bWVudHMpOgorICAgICAgICAo
SlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcik6Cisg
ICAgICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6Om1lbW9yeUtpbmQpOgorICAgICAgICAo
SlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjphZGRDYWxsKToKKyAgICAgICAgKiB3YXNtL1dhc21C
aW5kaW5nLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6d2FzbVRvV2FzbSk6CisgICAgICAgICog
d2FzbS9XYXNtQ2FsbGVlLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRDYWxsZWU6OmNh
bGxlZVNhdmVSZWdpc3RlcnMpOgorICAgICAgICAqIHdhc20vV2FzbUNhbGxlZUdyb3VwLmNwcDoK
KyAgICAgICAgKEpTQzo6V2FzbTo6Q2FsbGVlR3JvdXA6OmlzU2FmZVRvUnVuKToKKyAgICAgICAg
KiB3YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5jcHA6CisgICAgICAgIChKU0M6Oldhc206Ompz
Q2FsbGluZ0NvbnZlbnRpb24pOgorICAgICAgICAoSlNDOjpXYXNtOjp3YXNtQ2FsbGluZ0NvbnZl
bnRpb24pOgorICAgICAgICAqIHdhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmg6CisgICAgICAg
IChKU0M6Oldhc206OkNhbGxJbmZvcm1hdGlvbjo6Y29tcHV0ZVJlc3VsdHNPZmZzZXRMaXN0KToK
KyAgICAgICAgKEpTQzo6V2FzbTo6V2FzbUNhbGxpbmdDb252ZW50aW9uOjpXYXNtQ2FsbGluZ0Nv
bnZlbnRpb24pOgorICAgICAgICAoSlNDOjpXYXNtOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb246Om1h
cnNoYWxsTG9jYXRpb25JbXBsIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6V2FzbUNhbGxp
bmdDb252ZW50aW9uOjptYXJzaGFsbExvY2F0aW9uIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2Fz
bTo6SlNDYWxsaW5nQ29udmVudGlvbjo6SlNDYWxsaW5nQ29udmVudGlvbik6CisgICAgICAgIChK
U0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxsTG9jYXRpb25JbXBsIGNvbnN0
KToKKyAgICAgICAgKEpTQzo6V2FzbTo6SlNDYWxsaW5nQ29udmVudGlvbjo6bWFyc2hhbGxMb2Nh
dGlvbiBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246OmNh
bGxJbmZvcm1hdGlvbkZvciBjb25zdCk6CisgICAgICAgICogd2FzbS9XYXNtRm9ybWF0Lmg6Cisg
ICAgICAgICogd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpJ
bmRleE9yTmFtZTo6SW5kZXhPck5hbWUpOgorICAgICAgICAoSlNDOjpXYXNtOjptYWtlU3RyaW5n
KToKKyAgICAgICAgKiB3YXNtL1dhc21JbmRleE9yTmFtZS5oOgorICAgICAgICAoSlNDOjpXYXNt
OjpJbmRleE9yTmFtZTo6SW5kZXhPck5hbWUpOgorICAgICAgICAoSlNDOjpXYXNtOjpJbmRleE9y
TmFtZTo6aXNFbXB0eSBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1lOjpp
c0luZGV4IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OmlzTmFtZSBj
b25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1lOjppbmRleCBjb25zdCk6Cisg
ICAgICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1lOjpuYW1lIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6V2FzbTo6SW5kZXhPck5hbWU6Om5hbWVTZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKiB3YXNt
L1dhc21JbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpXYXNtOjpJbnN0YW5jZTo6dXBkYXRlQ2Fj
aGVkTWVtb3J5KToKKyAgICAgICAgKiB3YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHA6CisgICAg
ICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjp2aXJ0dWFsUmVnaXN0ZXJGb3JXYXNtTG9j
YWwpOgorICAgICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9u
Rm9yQ2FsbGVyKToKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmNhbGxJbmZv
cm1hdGlvbkZvckNhbGxlZSk6CisgICAgICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjph
ZGRBcmd1bWVudHMpOgorICAgICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6YWRkTG9v
cCk6CisgICAgICAgICogd2FzbS9XYXNtTExJbnRQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6V2Fz
bTo6TExJbnRQbGFuOjpkaWRDb21wbGV0ZUNvbXBpbGF0aW9uKToKKyAgICAgICAgKiB3YXNtL1dh
c21NZW1vcnkuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpNZW1vcnlIYW5kbGU6On5NZW1vcnlI
YW5kbGUpOgorICAgICAgICAoSlNDOjpXYXNtOjpNZW1vcnk6OnRyeUNyZWF0ZSk6CisgICAgICAg
IChKU0M6Oldhc206Ok1lbW9yeTo6Z3Jvd1NoYXJlZCk6CisgICAgICAgIChKU0M6Oldhc206Ok1l
bW9yeTo6Z3Jvdyk6CisgICAgICAgIChKU0M6Oldhc206Ok1lbW9yeTo6Y29weSk6CisgICAgICAg
ICogd2FzbS9XYXNtTWVtb3J5Lmg6CisgICAgICAgICogd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRp
b24uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpQaW5uZWRSZWdpc3RlckluZm86OmdldCk6Cisg
ICAgICAgICogd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uaDoKKyAgICAgICAgKEpTQzo6V2Fz
bTo6UGlubmVkUmVnaXN0ZXJJbmZvOjp0b1NhdmUgY29uc3QpOgorICAgICAgICAqIHdhc20vV2Fz
bU1lbW9yeU1vZGUuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjptYWtlU3RyaW5nKToKKyAgICAg
ICAgKiB3YXNtL1dhc21NZW1vcnlNb2RlLmg6CisgICAgICAgICogd2FzbS9XYXNtT3Bjb2RlT3Jp
Z2luLmNwcDoKKyAgICAgICAgKiB3YXNtL1dhc21PcGNvZGVPcmlnaW4uaDoKKyAgICAgICAgKiB3
YXNtL1dhc21PcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6SlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKToKKyAgICAgICAgKiB3YXNtL1dhc21PcGVyYXRpb25zLmg6CisgICAgICAg
ICogd2FzbS9XYXNtUGFnZUNvdW50Lmg6CisgICAgICAgICogd2FzbS9XYXNtUGFyc2VyLmg6Cisg
ICAgICAgIChKU0M6Oldhc206OlBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVUludDMyKToKKyAg
ICAgICAgKEpTQzo6V2FzbTo6UGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VVSW50NjQpOgorICAg
ICAgICAqIHdhc20vV2FzbVNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpXQVNN
X1NMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX3Bv
cGNvdW50KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX3BvcGNvdW50bGwp
OgorICAgICAgICAoSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTMyX2Rpdl9zKToKKyAgICAg
ICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2kzMl9kaXZfdSk6CisgICAgICAgIChKU0M6
OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pMzJfcmVtX3MpOgorICAgICAgICAoSlNDOjpMTEludDo6
c2xvd19wYXRoX3dhc21faTMyX3JlbV91KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0
aF93YXNtX2k2NF9kaXZfcyk6CisgICAgICAgIChKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9p
NjRfZGl2X3UpOgorICAgICAgICAoSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTY0X3JlbV9z
KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2k2NF9yZW1fdSk6CisgICAg
ICAgICogd2FzbS9XYXNtU2xvd1BhdGhzLmg6CisgICAgICAgICogd2FzbS9XYXNtVmFsdWVMb2Nh
dGlvbi5jcHA6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmR1bXAgY29uc3Qp
OgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiB3YXNtL1dhc21WYWx1
ZUxvY2F0aW9uLmg6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OlZhbHVlTG9j
YXRpb24pOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjppc0dQUiBjb25zdCk6
CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzRlBSIGNvbnN0KToKKyAgICAg
ICAgKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6aXNTdGFjayBjb25zdCk6CisgICAgICAgIChK
U0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzU3RhY2tBcmd1bWVudCBjb25zdCk6CisgICAgICAg
IChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmpzciBjb25zdCk6CisgICAgICAgIChKU0M6Oldh
c206OlZhbHVlTG9jYXRpb246OmZwciBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVl
TG9jYXRpb246OnJlZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRp
b246OmlzUmVnIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2Nh
dGlvbjo6cmVnIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2Nh
dGlvbjo6Z3ByIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL2pzL0pTVG9XYXNtLmNw
cDoKKyAgICAgICAgKEpTQzo6V2FzbTo6bWFyc2hhbGxKU1Jlc3VsdCk6CisgICAgICAgIChKU0M6
Oldhc206OmNyZWF0ZUpTVG9XYXNtV3JhcHBlcik6CisgICAgICAgICogd2FzbS9qcy9XYXNtVG9K
Uy5jcHA6CisgICAgICAgIChKU0M6Oldhc206Ondhc21Ub0pTKToKKyAgICAgICAgKiB3YXNtL2pz
L1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUZ1bmN0
aW9uOjpwcmV2aW91c0luc3RhbmNlT2Zmc2V0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2ViQXNz
ZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3cpOgorICAgICAgICAqIHdhc20vanMv
V2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJl
Y29yZC5jcHA6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjppbml0aWFs
aXplRXhwb3J0cyk6CisKIDIwMjItMDQtMjAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxl
LmNvbT4KIAogICAgICAgICBbSlNDXSBSZW1vdmUgVGVtcFJlZ2lzdGVyU2V0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDE2NGY4
MzU4ZmEwZTU1NTNjYzc2ZWU5YzlmZDkzNDdhZjIwOGJhY2MuLmQ1OTU2NzM4YTE0OTVhNDA5ZjYz
ZWIxNGRmZTgxZDNmMTkyMjgyZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDQtMjEgIFhh
biBMw7NwZXogIDx4YW5AaWdhbGlhLmNvbT4KKworICAgICAgICBbSlNDXSBFbmFibGUgV2FzbUxM
SW50IG9uIEFSTXY3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjEyNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZS5oOiBlbmFibGUgV2ViQXNzZW1ibHkgb24gQVJNdjcu
CisKIDIwMjItMDQtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBNb3ZlIHRydWUgLyBmYWxzZSBBdG9tU3RyaW5ncyB0byBhIGNlbnRyYWwgbG9jYXRpb24gYW5k
IHJldXNlIHRoZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBjMGE5ZTJh
N2U4MDJkYjk0ODU3Njc0ZjI5Yjg3OTc2ZDljNTZlMjBkLi5hZWZmNjY2ZjYyMDQyMTRjZTA1NmZl
ZTJkYjdkOTliYzM1YjRmMGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC0yMDAsNiArMjAwLDggQEAgc2V0KExMSU5UX0FTTQogICAgIGxsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIzMl82NC5hc20KICAgICBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCiAgICAg
bGxpbnQvV2ViQXNzZW1ibHkuYXNtCisgICAgbGxpbnQvV2ViQXNzZW1ibHkzMl82NC5hc20KKyAg
ICBsbGludC9XZWJBc3NlbWJseTY0LmFzbQogKQogCiBzZXQoT0ZGTElORV9BU00KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAppbmRleCA5Y2E2
YTRhNmM4NDFjNjc2NTlmY2I1NDZjN2Y0NDJiZDdkMjg5ODYxLi42Yzc2ZTRlZjUyMzIyNGQ0ZjUx
MTE0NjZhMDEyYzNiYTZkNTgxNTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCkBAIC0xOTkxLDEwICsxOTkxLDEwIEBAIHB1YmxpYzoK
ICAgICAgICAgbV9mb3JtYXR0ZXIudmZwT3AoT1BfVkNNUCwgT1BfVkNNUGIsIHRydWUsIFZGUE9w
ZXJhbmQoNSksIHJkLCBWRlBPcGVyYW5kKDApKTsKICAgICB9CiAKLSAgICB2b2lkIHZjdnRfc2ln
bmVkVG9GbG9hdGluZ1BvaW50KEZQRG91YmxlUmVnaXN0ZXJJRCByZCwgRlBTaW5nbGVSZWdpc3Rl
cklEIHJtKQorICAgIHZvaWQgdmN2dF9zaWduZWRUb0Zsb2F0aW5nUG9pbnQoRlBEb3VibGVSZWdp
c3RlcklEIHJkLCBGUFNpbmdsZVJlZ2lzdGVySUQgcm0sIGJvb2wgdG9Eb3VibGUgPSB0cnVlKQog
ICAgIHsKICAgICAgICAgLy8gYm9vbGVhbiB2YWx1ZXMgYXJlIDY0Yml0ICh0b0ludCwgdW5zaWdu
ZWQsIHJvdW5kWmVybykKLSAgICAgICAgbV9mb3JtYXR0ZXIudmZwT3AoT1BfVkNWVF9GUElWRlAs
IE9QX1ZDVlRfRlBJVkZQYiwgdHJ1ZSwgdmN2dE9wKGZhbHNlLCBmYWxzZSwgZmFsc2UpLCByZCwg
cm0pOworICAgICAgICBtX2Zvcm1hdHRlci52ZnBPcChPUF9WQ1ZUX0ZQSVZGUCwgT1BfVkNWVF9G
UElWRlBiLCB0b0RvdWJsZSwgdmN2dE9wKGZhbHNlLCBmYWxzZSwgZmFsc2UpLCByZCwgcm0pOwog
ICAgIH0KIAogICAgIHZvaWQgdmN2dF9mbG9hdGluZ1BvaW50VG9TaWduZWQoRlBTaW5nbGVSZWdp
c3RlcklEIHJkLCBGUERvdWJsZVJlZ2lzdGVySUQgcm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCmluZGV4IDY1MDJmMGM1
M2MzZjZkNjIwODk3YzliMzQ2ZTcyOTEzMmIwYjI2MWIuLjBmMjk0NzY2YTQyMDM1ZTBmMjFkOGNi
NzY2ZTE2MjgwNGVkNjQ3YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCkBAIC00MSwxMSArNDEsMTEgQEAgY2xhc3Mg
TWFjcm9Bc3NlbWJsZXJBUk12NyA6IHB1YmxpYyBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyPEFzc2Vt
Ymxlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IG5lYXJKdW1wUmFu
Z2UgPSAxNiAqIE1COwogCi1wcml2YXRlOgogICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJ
RCBkYXRhVGVtcFJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjppcDsKICAgICBzdGF0aWMgY29uc3Rl
eHByIFJlZ2lzdGVySUQgYWRkcmVzc1RlbXBSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6cjY7CiAK
LSAgICBzdGF0aWMgY29uc3RleHByIEFSTVJlZ2lzdGVyczo6RlBEb3VibGVSZWdpc3RlcklEIGZw
VGVtcFJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpkNzsKK3ByaXZhdGU6CisgICAgc3RhdGljIGNv
bnN0ZXhwciBBUk1SZWdpc3RlcnM6OkZQRG91YmxlUmVnaXN0ZXJJRCBmcFRlbXBSZWdpc3RlciA9
IEFSTVJlZ2lzdGVyczo6ZDE1OwogICAgIGlubGluZSBBUk1SZWdpc3RlcnM6OkZQU2luZ2xlUmVn
aXN0ZXJJRCBmcFRlbXBSZWdpc3RlckFzU2luZ2xlKCkgeyByZXR1cm4gQVJNUmVnaXN0ZXJzOjph
c1NpbmdsZShmcFRlbXBSZWdpc3Rlcik7IH0KIAogICAgIC8vIEluIHRoZSBUaHVtYi0yIGluc3Ry
dWN0aW9uIHNldCwgaW5zdHJ1Y3Rpb25zIG9wZXJhdGluZyBvbmx5IG9uIHJlZ2lzdGVycyByMC1y
NyBjYW4gb2Z0ZW4KQEAgLTE0NjQsNiArMTQ2NCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIENSQVNI
KCk7CiAgICAgfQogCisgICAgdm9pZCBjb252ZXJ0SW50MzJUb0Zsb2F0KFJlZ2lzdGVySUQgc3Jj
LCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLnZtb3YoZnBU
ZW1wUmVnaXN0ZXIsIHNyYywgc3JjKTsKKyAgICAgICAgbV9hc3NlbWJsZXIudmN2dF9zaWduZWRU
b0Zsb2F0aW5nUG9pbnQoZGVzdCwgZnBUZW1wUmVnaXN0ZXJBc1NpbmdsZSgpLCAvKiB0b0RvdWJs
ZTogKi8gZmFsc2UpOworICAgIH0KKwogICAgIHZvaWQgY29udmVydEludDMyVG9Eb3VibGUoUmVn
aXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJs
ZXIudm1vdihmcFRlbXBSZWdpc3Rlciwgc3JjLCBzcmMpOwpAQCAtMjI5NSw2ICsyMzAxLDE0IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIENhbGwobV9hc3NlbWJsZXIuYigpLCBDYWxsOjpMaW5r
YWJsZU5lYXJUYWlsKTsKICAgICB9CiAKKyAgICAvLyBGSVhNRTogd2h5IGlzIHRoaXMgdGhlIHNh
bWUgdGhhbiBuZWFyQ2FsbCgpIGluIEFSTTY0PyBpcyBpdCByaWdodD8KKyAgICBBTFdBWVNfSU5M
SU5FIENhbGwgdGhyZWFkU2FmZVBhdGNoYWJsZU5lYXJDYWxsKCkKKyAgICB7CisgICAgICAgIGlu
dmFsaWRhdGVBbGxUZW1wUmVnaXN0ZXJzKCk7CisgICAgICAgIG1vdmVGaXhlZFdpZHRoRW5jb2Rp
bmcoVHJ1c3RlZEltbTMyKDApLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgcmV0dXJuIENh
bGwobV9hc3NlbWJsZXIuYmx4KGRhdGFUZW1wUmVnaXN0ZXIpLCBDYWxsOjpMaW5rYWJsZU5lYXIp
OworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUgQ2FsbCBjYWxsKFB0clRhZykKICAgICB7CiAg
ICAgICAgIG1vdmVGaXhlZFdpZHRoRW5jb2RpbmcoVHJ1c3RlZEltbTMyKDApLCBkYXRhVGVtcFJl
Z2lzdGVyKTsKQEAgLTIzMTksNiArMjMzMywxMiBAQCBwdWJsaWM6CiAgICAgQUxXQVlTX0lOTElO
RSBDYWxsIGNhbGwoUmVnaXN0ZXJJRCB0YXJnZXQsIFJlZ2lzdGVySUQgY2FsbFRhZykgeyByZXR1
cm4gVU5VU0VEX1BBUkFNKGNhbGxUYWcpLCBjYWxsKHRhcmdldCwgTm9QdHJUYWcpOyB9CiAgICAg
QUxXQVlTX0lOTElORSBDYWxsIGNhbGwoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGNhbGxU
YWcpIHsgcmV0dXJuIFVOVVNFRF9QQVJBTShjYWxsVGFnKSwgY2FsbChhZGRyZXNzLCBOb1B0clRh
Zyk7IH0KIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBjYWxsT3BlcmF0aW9uKGNvbnN0IEZ1bmN0
aW9uUHRyPE9wZXJhdGlvblB0clRhZz4gb3BlcmF0aW9uKQorICAgIHsKKyAgICAgICAgbW92ZShU
cnVzdGVkSW1tUHRyKG9wZXJhdGlvbi5leGVjdXRhYmxlQWRkcmVzcygpKSwgYWRkcmVzc1RlbXBS
ZWdpc3Rlcik7CisgICAgICAgIGNhbGwoYWRkcmVzc1RlbXBSZWdpc3RlciwgT3BlcmF0aW9uUHRy
VGFnKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgcmV0KCkKICAgICB7CiAgICAg
ICAgIG1fYXNzZW1ibGVyLmJ4KGxpbmtSZWdpc3Rlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
VmFsdWVSZXAuaAppbmRleCAxNTdiYzg4NjgyMzEyYjFhMWU5ZGE3MzljMDgyYzBkNmM0NzdkMzI2
Li43NjkzOGM2ZmVjYWJmZDI3MTI3N2FiZWUzOWZlYTkzYTkyZjdiNjYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1ZhbHVlUmVwLmgKQEAgLTEyNiw5ICsxMjYsMTMgQEAgcHVibGljOgogICAg
IFZhbHVlUmVwKFdhc206OlZhbHVlTG9jYXRpb24gbG9jYXRpb24pCiAgICAgewogICAgICAgICBz
d2l0Y2ggKGxvY2F0aW9uLmtpbmQoKSkgewotICAgICAgICBjYXNlIFdhc206OlZhbHVlTG9jYXRp
b246OktpbmQ6OlJlZ2lzdGVyOgorICAgICAgICBjYXNlIFdhc206OlZhbHVlTG9jYXRpb246Oktp
bmQ6OkdQUlJlZ2lzdGVyOgogICAgICAgICAgICAgbV9raW5kID0gUmVnaXN0ZXI7Ci0gICAgICAg
ICAgICB1LnJlZyA9IGxvY2F0aW9uLnJlZygpOworICAgICAgICAgICAgdS5yZWcgPSBsb2NhdGlv
bi5qc3IoKS5wYXlsb2FkR1BSKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBX
YXNtOjpWYWx1ZUxvY2F0aW9uOjpLaW5kOjpGUFJSZWdpc3RlcjoKKyAgICAgICAgICAgIG1fa2lu
ZCA9IFJlZ2lzdGVyOworICAgICAgICAgICAgdS5yZWcgPSBsb2NhdGlvbi5mcHIoKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdhc206OlZhbHVlTG9jYXRpb246OktpbmQ6OlN0
YWNrOgogICAgICAgICAgICAgbV9raW5kID0gU3RhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcAppbmRleCBkNTRjNzRmYzYzYzY1MGUw
OGQ3NGY0Nzk3YzkxMTFkMzU2MjY3NmJiLi43YjNmNWZjOWZiMjE3ZjgyM2Q1YTQ2NDQ1NmU1MWQy
ZTI0OGExNDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0
ZWNvZGVEdW1wZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRl
Y29kZUR1bXBlci5jcHAKQEAgLTQxMyw3ICs0MTMsNyBAQCBDU3RyaW5nIEJ5dGVjb2RlRHVtcGVy
Ojpmb3JtYXRDb25zdGFudChUeXBlIHR5cGUsIHVpbnQ2NF90IGNvbnN0YW50KSBjb25zdAogICAg
ICAgICBpZiAoaXNGdW5jcmVmKHR5cGUpIHx8IGlzRXh0ZXJucmVmKHR5cGUpKSB7CiAgICAgICAg
ICAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKGNvbnN0YW50KSA9PSBqc051bGwoKSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gIm51bGwiOwotICAgICAgICAgICAgcmV0dXJuIHRvQ1N0cmluZyhSYXdQ
b2ludGVyKGJpdHdpc2VfY2FzdDx2b2lkKj4oY29uc3RhbnQpKSk7CisgICAgICAgICAgICByZXR1
cm4gdG9DU3RyaW5nKFJhd1BvaW50ZXIoYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDx1
aW50cHRyX3Q+KGNvbnN0YW50KSkpKTsKICAgICAgICAgfQogCiAgICAgICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvQ2FsbEZyYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
Q2FsbEZyYW1lLmgKaW5kZXggZGUyY2FmNTRkNzdiZTU0YjZkMDUxYmVhNDNhODI3MGZiMTJkNjNj
Ny4uOTc0NTllM2ZkNjg3NjVmMzEyNjZmZWUxNzBhNTQzNjY2YjA3NzIxNyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaApAQCAtMTY3LDggKzE2Nyw4
IEBAIG5hbWVzcGFjZSBKU0MgIHsKICAgICAgICAgLy8gdG8gc2VlIGlmIGl0J3MgYSBjZWxsLCBh
bmQgaWYgaXQncyBub3QsIHdlIHRocm93IGFuIGV4Y2VwdGlvbi4KICAgICAgICAgaW5saW5lIEpT
VmFsdWUgZ3VhcmFudGVlZEpTVmFsdWVDYWxsZWUoKSBjb25zdDsKICAgICAgICAgaW5saW5lIEpT
T2JqZWN0KiBqc0NhbGxlZSgpIGNvbnN0OwotICAgICAgICBDYWxsZWVCaXRzIGNhbGxlZSgpIGNv
bnN0IHsgcmV0dXJuIENhbGxlZUJpdHModGhpc1tzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNs
b3Q6OmNhbGxlZSldLnBvaW50ZXIoKSk7IH0KLSAgICAgICAgU1VQUFJFU1NfQVNBTiBDYWxsZWVC
aXRzIHVuc2FmZUNhbGxlZSgpIGNvbnN0IHsgcmV0dXJuIENhbGxlZUJpdHModGhpc1tzdGF0aWNf
Y2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSldLmFzYW5VbnNhZmVQb2ludGVyKCkpOyB9
CisgICAgICAgIENhbGxlZUJpdHMgY2FsbGVlKCkgY29uc3QgeyByZXR1cm4gQ2FsbGVlQml0cyh0
aGlzW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0udW5ib3hlZEludDY0
KCkpOyB9CisgICAgICAgIFNVUFBSRVNTX0FTQU4gQ2FsbGVlQml0cyB1bnNhZmVDYWxsZWUoKSBj
b25zdCB7IHJldHVybiBDYWxsZWVCaXRzKHRoaXNbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVT
bG90OjpjYWxsZWUpXS5hc2FuVW5zYWZlVW5ib3hlZEludDY0KCkpOyB9CiAgICAgICAgIENvZGVC
bG9jayogY29kZUJsb2NrKCkgY29uc3Q7CiAgICAgICAgIENvZGVCbG9jayoqIGFkZHJlc3NPZkNv
ZGVCbG9jaygpIGNvbnN0IHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxDb2RlQmxvY2sqKj4odGhpcyAr
IHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y29kZUJsb2NrKSk7IH0KICAgICAgICAg
aW5saW5lIFNVUFBSRVNTX0FTQU4gQ29kZUJsb2NrKiB1bnNhZmVDb2RlQmxvY2soKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsZWVCaXRz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbGVlQml0cy5oCmluZGV4
IDE4YmI3ZWY3ZmE4YzdjMzlmM2Q3MWJhOTk2NjIyYjFkNmQ3OTFmNTguLmRlYTNhZTU1ODE2MDNj
Y2UzZGE2NWJjNzNhOTRmMTkxNTczYTFiN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0NhbGxlZUJpdHMuaApAQCAtMzksMTEgKzM5LDIxIEBAIGNsYXNzIEpTQ2Vs
bDsKIGNsYXNzIENhbGxlZUJpdHMgewogcHVibGljOgogICAgIENhbGxlZUJpdHMoKSA9IGRlZmF1
bHQ7Ci0gICAgQ2FsbGVlQml0cyh2b2lkKiBwdHIpIDogbV9wdHIocHRyKSB7IH0gCisgICAgQ2Fs
bGVlQml0cyhpbnQ2NF90IHZhbHVlKQorI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIDogbV9w
dHIgeyByZWludGVycHJldF9jYXN0PHZvaWQqPih2YWx1ZSkgfQorI2VsaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICAgICAgOiBtX3B0ciB7IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KEpTVmFsdWU6
OmRlY29kZSh2YWx1ZSkucGF5bG9hZCgpKSB9CisgICAgICAgICwgbV90YWcgeyBKU1ZhbHVlOjpk
ZWNvZGUodmFsdWUpLnRhZygpIH0KKyNlbmRpZgorICAgIHsgfQogCiAgICAgQ2FsbGVlQml0cyYg
b3BlcmF0b3I9KEpTQ2VsbCogY2VsbCkKICAgICB7CiAgICAgICAgIG1fcHRyID0gY2VsbDsKKyNp
ZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBtX3RhZyA9IEpTVmFsdWU6OkNlbGxUYWc7Cisj
ZW5kaWYKICAgICAgICAgQVNTRVJUKGlzQ2VsbCgpKTsKICAgICAgICAgcmV0dXJuICp0aGlzOwog
ICAgIH0KQEAgLTUxLDE4ICs2MSwyNCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
KQogICAgIHN0YXRpYyB2b2lkKiBib3hXYXNtKFdhc206OkNhbGxlZSogY2FsbGVlKQogICAgIHsK
LSAgICAgICAgQ2FsbGVlQml0cyByZXN1bHQocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocmVpbnRl
cnByZXRfY2FzdDx1aW50cHRyX3Q+KGNhbGxlZSkgfCBKU1ZhbHVlOjpXYXNtVGFnKSk7CisjaWYg
VVNFKEpTVkFMVUU2NCkKKyAgICAgICAgQ2FsbGVlQml0cyByZXN1bHQgeyByZWludGVycHJldF9j
YXN0PGludDY0X3Q+KGNhbGxlZSkgfCBKU1ZhbHVlOjpXYXNtVGFnIH07CiAgICAgICAgIEFTU0VS
VChyZXN1bHQuaXNXYXNtKCkpOwogICAgICAgICByZXR1cm4gcmVzdWx0LnJhd1B0cigpOworI2Vs
aWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgcmV0dXJuIGNhbGxlZTsgLy8gVGhlIHBvaW50
ZXIgaXMgYXMgaXMsIGJ1dCB0aGUgY29ycmVzcG9uZGluZyB0YWcgZmllbGQgbmVlZHMgdG8gYmUg
c2V0IHRvIFdhc21UYWcgc2VwYXJhdGVseS4KKyNlbmRpZgogICAgIH0KICNlbmRpZgogCiAgICAg
Ym9vbCBpc1dhc20oKSBjb25zdAogICAgIHsKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAg
ICAgIHJldHVybiAocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG1fcHRyKSAmIEpTVmFsdWU6
Oldhc21NYXNrKSA9PSBKU1ZhbHVlOjpXYXNtVGFnOwotI2Vsc2UKKyNpZiAhRU5BQkxFKFdFQkFT
U0VNQkxZKQogICAgICAgICByZXR1cm4gZmFsc2U7CisjZWxpZiBVU0UoSlNWQUxVRTY0KQorICAg
ICAgICByZXR1cm4gKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtX3B0cikgJiBKU1ZhbHVl
OjpXYXNtTWFzaykgPT0gSlNWYWx1ZTo6V2FzbVRhZzsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQp
CisgICAgICAgIHJldHVybiBtX3RhZyA9PSBKU1ZhbHVlOjpXYXNtVGFnOwogI2VuZGlmCiAgICAg
fQogICAgIGJvb2wgaXNDZWxsKCkgY29uc3QgeyByZXR1cm4gIWlzV2FzbSgpOyB9CkBAIC03Nywx
NCArOTMsMjEgQEAgcHVibGljOgogICAgIFdhc206OkNhbGxlZSogYXNXYXNtQ2FsbGVlKCkgY29u
c3QKICAgICB7CiAgICAgICAgIEFTU0VSVChpc1dhc20oKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkK
ICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2FzbTo6Q2FsbGVlKj4ocmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KG1fcHRyKSAmIH5KU1ZhbHVlOjpXYXNtVGFnKTsKKyNlbGlmIFVT
RShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFdhc206OkNh
bGxlZSo+KG1fcHRyKTsKKyNlbmRpZgogICAgIH0KICNlbmRpZgogCiAgICAgdm9pZCogcmF3UHRy
KCkgY29uc3QgeyByZXR1cm4gbV9wdHI7IH0KLSAgICAKKwogcHJpdmF0ZToKICAgICB2b2lkKiBt
X3B0ciB7IG51bGxwdHIgfTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIHVpbnQzMl90IG1f
dGFnIHsgSlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZyB9OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9S
ZWdpc3Rlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmgK
aW5kZXggZDg3OWM5MGJlMzExNzg2MjMzZjUyNmIxODNlZGYxY2IzYzdiYjM4YS4uNDYxODEzYzQx
ZDMzNzJkZmQ0YjE4MTIzMjkxNTE5NDEyMWJlMmFkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmgKQEAgLTcyLDYgKzcyLDEwIEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBpbnQ2NF90IHVuYm94ZWRJbnQ2NCgpIGNvbnN0OwogICAgICAgICBpbnQ2
NF90IGFzYW5VbnNhZmVVbmJveGVkSW50NjQoKSBjb25zdDsKICAgICAgICAgYm9vbCB1bmJveGVk
Qm9vbGVhbigpIGNvbnN0OworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICAgICAgZmxvYXQgdW5ib3hlZEZsb2F0KCkgY29uc3Q7CisgICAgICAgIGZsb2F0
IGFzYW5VbnNhZmVVbmJveGVkRmxvYXQoKSBjb25zdDsKKyNlbmRpZgogICAgICAgICBkb3VibGUg
dW5ib3hlZERvdWJsZSgpIGNvbnN0OwogICAgICAgICBkb3VibGUgYXNhblVuc2FmZVVuYm94ZWRE
b3VibGUoKSBjb25zdDsKICAgICAgICAgSlNDZWxsKiB1bmJveGVkQ2VsbCgpIGNvbnN0OwpAQCAt
MTg4LDYgKzE5MiwxOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgcmV0dXJuICEhcGF5bG9h
ZCgpOwogICAgIH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgVVNFKEpTVkFMVUUzMl82
NCkKKyAgICBBTFdBWVNfSU5MSU5FIGZsb2F0IFJlZ2lzdGVyOjp1bmJveGVkRmxvYXQoKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxmbG9hdD4ocGF5bG9hZCgpKTsK
KyAgICB9CisKKyAgICBTVVBQUkVTU19BU0FOIEFMV0FZU19JTkxJTkUgZmxvYXQgUmVnaXN0ZXI6
OmFzYW5VbnNhZmVVbmJveGVkRmxvYXQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGJp
dHdpc2VfY2FzdDxmbG9hdD4ocGF5bG9hZCgpKTsKKyAgICB9CisjZW5kaWYKKwogICAgIEFMV0FZ
U19JTkxJTkUgZG91YmxlIFJlZ2lzdGVyOjp1bmJveGVkRG91YmxlKCkgY29uc3QKICAgICB7CiAg
ICAgICAgIHJldHVybiB1Lm51bWJlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2Vt
Ymx5SGVscGVycy5oCmluZGV4IDRjYTY1YTQ3MTE5M2I2ZWUxZDc3ZjJlM2I3ODFmN2NhZWU0YTFi
NjEuLmIyODU1NDU1YzA0MzI4ZTc2ZGVlYWQwNjUyMzk1YWFhMGYwYTYyOTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAtMTQxNiw3ICsxNDE2LDEw
IEBAIHB1YmxpYzoKICAgICAgICAgaml0QXNzZXJ0SXNKU0RvdWJsZShncHIpOwogICAgICAgICBy
ZXR1cm4gdW5ib3hEb3VibGVXaXRob3V0QXNzZXJ0aW9ucyhncHIsIHJlc3VsdEdQUiwgZnByLCBt
b2RlKTsKICAgICB9Ci0gICAgCisgICAgdm9pZCB1bmJveERvdWJsZShKU1ZhbHVlUmVncyByZWdz
LCBGUFJSZWcgZnByKQorICAgIHsKKyAgICAgICAgdW5ib3hEb3VibGUocmVncy50YWdHUFIoKSwg
cmVncy5wYXlsb2FkR1BSKCksIGZwcik7CisgICAgfQogICAgIHZvaWQgYm94RG91YmxlKEZQUlJl
ZyBmcHIsIEpTVmFsdWVSZWdzIHJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSA9IEhhdmVUYWdS
ZWdpc3RlcnMpCiAgICAgewogICAgICAgICBib3hEb3VibGUoZnByLCByZWdzLmdwcigpLCBtb2Rl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNl
dExpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlz
dC5jcHAKaW5kZXggZWQ4MzAzZGU0MWI1NzRhZmNlOTI4OTdjZjBhOWQ1YWRlZjQwODExNS4uYmFk
MjAyOWY3Y2Y5MGU1MWY1MDNlYzZlNjllYzk1ODI5YzM2OTYzYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5jcHAKQEAgLTM5LDE4ICsz
OSw0MiBAQCBSZWdpc3RlckF0T2Zmc2V0TGlzdDo6UmVnaXN0ZXJBdE9mZnNldExpc3QoKSB7IH0K
IFJlZ2lzdGVyQXRPZmZzZXRMaXN0OjpSZWdpc3RlckF0T2Zmc2V0TGlzdChSZWdpc3RlclNldCBy
ZWdpc3RlclNldCwgT2Zmc2V0QmFzZVR5cGUgb2Zmc2V0QmFzZVR5cGUpCiAgICAgOiBtX3JlZ2lz
dGVycyhyZWdpc3RlclNldC5udW1iZXJPZlNldFJlZ2lzdGVycygpKQogewotICAgIHNpemVfdCBu
dW1iZXJPZlJlZ2lzdGVycyA9IHJlZ2lzdGVyU2V0Lm51bWJlck9mU2V0UmVnaXN0ZXJzKCk7Ci0g
ICAgcHRyZGlmZl90IG9mZnNldCA9IDA7Ci0gICAgCi0gICAgaWYgKG9mZnNldEJhc2VUeXBlID09
IEZyYW1lUG9pbnRlckJhc2VkKQotICAgICAgICBvZmZzZXQgPSAtKHN0YXRpY19jYXN0PHB0cmRp
ZmZfdD4obnVtYmVyT2ZSZWdpc3RlcnMpICogc2l6ZW9mKENQVVJlZ2lzdGVyKSk7CisgICAgY29u
c3RleHByIHNpemVfdCBTaXplT2ZHUFIgPSBzaXplb2YoQ1BVUmVnaXN0ZXIpOworICAgIGNvbnN0
ZXhwciBzaXplX3QgU2l6ZU9mRlBSID0gc2l6ZW9mKGRvdWJsZSk7CiAKKyNpZiBVU0UoSlNWQUxV
RTY0KQorICAgIHN0YXRpY19hc3NlcnQoU2l6ZU9mR1BSID09IFNpemVPZkZQUik7CisgICAgc2l6
ZV90IG51bWJlck9mUmVncyA9IHJlZ2lzdGVyU2V0Lm51bWJlck9mU2V0UmVnaXN0ZXJzKCk7Cisg
ICAgbV9zaXplT2ZBcmVhSW5CeXRlcyA9IG51bWJlck9mUmVncyAqIFNpemVPZkdQUjsKKyNlbGlm
IFVTRShKU1ZBTFVFMzJfNjQpCisgICAgc3RhdGljX2Fzc2VydCgyICogU2l6ZU9mR1BSID09IFNp
emVPZkZQUik7CisgICAgc2l6ZV90IG51bWJlck9mR1BScyA9IHJlZ2lzdGVyU2V0Lm51bWJlck9m
U2V0R1BScygpOworICAgIHNpemVfdCBudW1iZXJPZkZQUnMgPSByZWdpc3RlclNldC5udW1iZXJP
ZlNldEZQUnMoKTsKKyAgICBpZiAobnVtYmVyT2ZGUFJzKQorICAgICAgICBudW1iZXJPZkdQUnMg
PSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Y8Mj4obnVtYmVyT2ZHUFJzKTsKKyAgICBtX3NpemVP
ZkFyZWFJbkJ5dGVzID0gbnVtYmVyT2ZHUFJzICogU2l6ZU9mR1BSICsgbnVtYmVyT2ZGUFJzICog
U2l6ZU9mRlBSOworI2VuZGlmCisKKyAgICBwdHJkaWZmX3Qgc3RhcnRPZmZzZXQgPSAwOworICAg
IGlmIChvZmZzZXRCYXNlVHlwZSA9PSBGcmFtZVBvaW50ZXJCYXNlZCkKKyAgICAgICAgc3RhcnRP
ZmZzZXQgPSAtc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihtX3NpemVPZkFyZWFJbkJ5dGVzKTsKKwor
ICAgIHB0cmRpZmZfdCBvZmZzZXQgPSBzdGFydE9mZnNldDsKICAgICB1bnNpZ25lZCBpbmRleCA9
IDA7CiAgICAgcmVnaXN0ZXJTZXQuZm9yRWFjaChbJl0gKFJlZyByZWcpIHsKKyAgICAgICAgc2l6
ZV90IHJlZ2lzdGVyU2l6ZSA9IFNpemVPZkdQUjsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAg
ICAgICBpZiAocmVnLmlzRlBSKCkpIHsKKyAgICAgICAgICAgIHJlZ2lzdGVyU2l6ZSA9IFNpemVP
ZkZQUjsKKyAgICAgICAgICAgIG9mZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZjxTaXpl
T2ZGUFI+KG9mZnNldCk7CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBtX3JlZ2lzdGVyc1tp
bmRleF0gPSBSZWdpc3RlckF0T2Zmc2V0KHJlZywgb2Zmc2V0KTsKLSAgICAgICAgb2Zmc2V0ICs9
IHNpemVvZihDUFVSZWdpc3Rlcik7CisgICAgICAgIG9mZnNldCArPSByZWdpc3RlclNpemU7CiAg
ICAgICAgICsraW5kZXg7CiAgICAgfSk7CisKKyAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90
PihvZmZzZXQgLSBzdGFydE9mZnNldCkgPT0gbV9zaXplT2ZBcmVhSW5CeXRlcyk7CiB9CiAKIHZv
aWQgUmVnaXN0ZXJBdE9mZnNldExpc3Q6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3Qu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3QuaAppbmRl
eCBkMTE3Y2Y3NWUwOTg4ODQ4M2U3NjVlNTJhM2VjNzZmMjIyYTcxMzgzLi4yYTBlOGI5ZDEyNTU0
NWI0MDQyMTc3ZGU2NDI2NDI4ZDJlZDhkMjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5oCkBAIC02NSwxMSArNjUsMTQgQEAgcHVibGlj
OgogICAgIEZpeGVkVmVjdG9yPFJlZ2lzdGVyQXRPZmZzZXQ+Ojpjb25zdF9pdGVyYXRvciBiZWdp
bigpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaXN0ZXJzLmJlZ2luKCk7IH0KICAgICBGaXhlZFZlY3Rv
cjxSZWdpc3RlckF0T2Zmc2V0Pjo6Y29uc3RfaXRlcmF0b3IgZW5kKCkgY29uc3QgeyByZXR1cm4g
bV9yZWdpc3RlcnMuZW5kKCk7IH0KIAorICAgIHNpemVfdCBzaXplT2ZBcmVhSW5CeXRlcygpIGNv
bnN0IHsgcmV0dXJuIG1fc2l6ZU9mQXJlYUluQnl0ZXM7IH0KKwogICAgIHN0YXRpYyBjb25zdCBS
ZWdpc3RlckF0T2Zmc2V0TGlzdCYgbGxpbnRCYXNlbGluZUNhbGxlZVNhdmVSZWdpc3RlcnMoKTsg
Ly8gUmVnaXN0ZXJzIGFuZCBPZmZzZXRzIHNhdmVkIGFuZCB1c2VkIGJ5IHRoZSBMTEludC4KICAg
ICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJBdE9mZnNldExpc3QmIGRmZ0NhbGxlZVNhdmVSZWdpc3Rl
cnMoKTsgLy8gUmVnaXN0ZXJzIGFuZCBPZmZzZXRzIHNhdmVkIGFuZCB1c2VkIGJ5IERGRy4KIAog
cHJpdmF0ZToKICAgICBGaXhlZFZlY3RvcjxSZWdpc3RlckF0T2Zmc2V0PiBtX3JlZ2lzdGVyczsK
KyAgICBzaXplX3QgbV9zaXplT2ZBcmVhSW5CeXRlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyU2V0LmNwcAppbmRleCA1MGVlYzI4
YTQxZjZlNzVmMDViMjZmYmUwNjU1MWQyMTkwNjVlN2FiLi5jMTZhOWU0NzIxNDllNWVkMGFjZTNk
YWVjMTI2MmRhODFiZjBhZTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1JlZ2lzdGVyU2V0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVy
U2V0LmNwcApAQCAtOTQsNiArOTQsOCBAQCBSZWdpc3RlclNldCBSZWdpc3RlclNldDo6bWFjcm9T
Y3JhdGNoUmVnaXN0ZXJzKCkKICAgICByZXR1cm4gUmVnaXN0ZXJTZXQoTWFjcm9Bc3NlbWJsZXI6
OnNfc2NyYXRjaFJlZ2lzdGVyKTsKICNlbGlmIENQVShBUk02NCkgfHwgQ1BVKFJJU0NWNjQpCiAg
ICAgcmV0dXJuIFJlZ2lzdGVyU2V0KE1hY3JvQXNzZW1ibGVyOjpkYXRhVGVtcFJlZ2lzdGVyLCBN
YWNyb0Fzc2VtYmxlcjo6bWVtb3J5VGVtcFJlZ2lzdGVyKTsKKyNlbGlmIENQVShBUk1fVEhVTUIy
KQorICAgIHJldHVybiBSZWdpc3RlclNldChNYWNyb0Fzc2VtYmxlcjo6ZGF0YVRlbXBSZWdpc3Rl
ciwgTWFjcm9Bc3NlbWJsZXI6OmFkZHJlc3NUZW1wUmVnaXN0ZXIpOwogI2VsaWYgQ1BVKE1JUFMp
CiAgICAgUmVnaXN0ZXJTZXQgcmVzdWx0OwogICAgIHJlc3VsdC5zZXQoTWFjcm9Bc3NlbWJsZXI6
OmltbVRlbXBSZWdpc3Rlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKaW5kZXggZTc2ZGFkYTBkMzMyOWMwZDI1YmZjOTNjMTVl
ODg3YjMzOGU5N2UzNS4uYjQ3MDMxMTViM2E2YTYwMzg3NGEyMDVhNjMzYzRkZjA5MDU1MjVjYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNv
bmZpZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21D
b25maWcuaApAQCAtMTQzLDYgKzE0MywxMiBAQAogI2RlZmluZSBPRkZMSU5FX0FTTV9KU1ZBTFVF
NjQgMAogI2VuZGlmCiAKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorI2RlZmluZSBPRkZMSU5FX0FT
TV9KU1ZBTFVFMzJfNjQgMQorI2Vsc2UKKyNkZWZpbmUgT0ZGTElORV9BU01fSlNWQUxVRTMyXzY0
IDAKKyNlbmRpZgorCiAjaWYgVVNFKEJJR0lOVDMyKQogI2RlZmluZSBPRkZMSU5FX0FTTV9CSUdJ
TlQzMiAxCiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRleCBhZDI1MDE3ZWYwYjQ3ZmMwYjA1MDQ3
NDdkYjU3NWI5MTUwMThhZmVhLi43MDQwMWU0NWJlNmQwMmI5ZWJiMmUwNGEzYTg4YmM5ODlmYmUz
MzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtMzgsMTggKzM4LDM0IEBAIG1hY3JvIGdldHVPcGVy
YW5kV2lkZTE2SlMob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkKICAgICBsb2FkaCBjb25z
dGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiAyICsgT3Bjb2RlSURXaWRl
MTZTaXplSlNbUEIsIFBDLCAxXSwgZHN0CiBlbmQKIAorbWFjcm8gZ2V0dU9wZXJhbmRXaWRlMTZX
YXNtKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCisgICAgbG9hZGggY29uc3RleHByICVv
cGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogMiArIE9wY29kZUlEV2lkZTE2U2l6ZVdh
c21bUEIsIFBDLCAxXSwgZHN0CitlbmQKKwogbWFjcm8gZ2V0T3BlcmFuZFdpZGUxNkpTKG9wY29k
ZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCiAgICAgbG9hZGhzaSBjb25zdGV4cHIgJW9wY29kZVN0
cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiAyICsgT3Bjb2RlSURXaWRlMTZTaXplSlNbUEIsIFBD
LCAxXSwgZHN0CiBlbmQKIAorbWFjcm8gZ2V0T3BlcmFuZFdpZGUxNldhc20ob3Bjb2RlU3RydWN0
LCBmaWVsZE5hbWUsIGRzdCkKKyAgICBsb2FkaHNpIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8l
ZmllbGROYW1lJV9pbmRleCAqIDIgKyBPcGNvZGVJRFdpZGUxNlNpemVXYXNtW1BCLCBQQywgMV0s
IGRzdAorZW5kCisKIG1hY3JvIGdldHVPcGVyYW5kV2lkZTMySlMob3Bjb2RlU3RydWN0LCBmaWVs
ZE5hbWUsIGRzdCkKICAgICBsb2FkaSBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFt
ZSVfaW5kZXggKiA0ICsgT3Bjb2RlSURXaWRlMzJTaXplSlNbUEIsIFBDLCAxXSwgZHN0CiBlbmQK
IAorbWFjcm8gZ2V0dU9wZXJhbmRXaWRlMzJXYXNtKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBk
c3QpCisgICAgbG9hZGkgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4
ICogNCArIE9wY29kZUlEV2lkZTMyU2l6ZVdhc21bUEIsIFBDLCAxXSwgZHN0CitlbmQKKwogbWFj
cm8gZ2V0T3BlcmFuZFdpZGUzMkpTKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCiAgICAg
bG9hZGlzIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRleCAqIDQgKyBP
cGNvZGVJRFdpZGUzMlNpemVKU1tQQiwgUEMsIDFdLCBkc3QKIGVuZAogCittYWNybyBnZXRPcGVy
YW5kV2lkZTMyV2FzbShvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQorICAgIGxvYWRpcyBj
b25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiA0ICsgT3Bjb2RlSURX
aWRlMzJTaXplV2FzbVtQQiwgUEMsIDFdLCBkc3QKK2VuZAorCiBtYWNybyBtYWtlUmV0dXJuKGdl
dCwgZGlzcGF0Y2gsIGZuKQogICAgIGZuKG1hY3JvKHRhZywgcGF5bG9hZCkKICAgICAgICAgbW92
ZSB0YWcsIHQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNz
ZW1ibHkuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5LmFzbQpp
bmRleCAyNGMxNGIzZjhmNmI1ZjQ1NWJkMGE1YTc3YzU5MzJiZTlmNjhlZWFmLi5hNzRlOGM5MDI5
ZGY2NjM0MDJjODg2MTkxZTU0ZDVjNmRkNzU4NDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHkuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9XZWJBc3NlbWJseS5hc20KQEAgLTMxLDU2ICszMSw4MCBAQCBpZiBIQVZFX0ZBU1Rf
VExTCiBlbmQKIAogaWYgWDg2XzY0Ci0gICAgY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJz
ID0gNgorICAgIGNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyA9IDYKIGVsc2lmIEFSTTY0
IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJz
ID0gOAorICAgIGNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyA9IDgKK2Vsc2lmIEFSTXY3
CisgICAgY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzID0gMgogZWxzZQogICAgIGVycm9y
CiBlbmQKKwogY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1lbnRGUFJzID0gOAotY29uc3QgTnVtYmVy
T2ZXYXNtQXJndW1lbnRzID0gTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgTnVtYmVyT2ZXYXNt
QXJndW1lbnRGUFJzCisKK2NvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50cyA9IE51bWJlck9mV2Fz
bUFyZ3VtZW50SlNScyArIE51bWJlck9mV2FzbUFyZ3VtZW50RlBScwogCiAjIEFsbCBjYWxsZWUg
c2F2ZXMgbXVzdCBtYXRjaCB0aGUgZGVmaW5pdGlvbiBpbiBXYXNtQ2FsbGVlLmNwcAogCiAjIFRo
ZXNlIG11c3QgbWF0Y2ggdGhlIGRlZmluaXRpb24gaW4gV2FzbU1lbW9yeUluZm9ybWF0aW9uLmNw
cAotY29uc3Qgd2FzbUluc3RhbmNlID0gY3NyMAotY29uc3QgbWVtb3J5QmFzZSA9IGNzcjMKLWNv
bnN0IGJvdW5kc0NoZWNraW5nU2l6ZSA9IGNzcjQKK2lmIFg4Nl82NCBvciBBUk02NCBvciBBUk02
NEUKKyAgICBjb25zdCB3YXNtSW5zdGFuY2UgPSBjc3IwCisgICAgY29uc3QgbWVtb3J5QmFzZSA9
IGNzcjMKKyAgICBjb25zdCBib3VuZHNDaGVja2luZ1NpemUgPSBjc3I0CitlbHNpZiBBUk12Nwor
ICAgIGNvbnN0IHdhc21JbnN0YW5jZSA9IGNzcjAKKyAgICBjb25zdCBtZW1vcnlCYXNlID0gaW52
YWxpZEdQUgorICAgIGNvbnN0IGJvdW5kc0NoZWNraW5nU2l6ZSA9IGludmFsaWRHUFIKK2Vsc2UK
KyAgICBlcnJvcgorZW5kCiAKICMgVGhpcyBtdXN0IG1hdGNoIHRoZSBkZWZpbml0aW9uIGluIExv
d0xldmVsSW50ZXJwcmV0ZXIuYXNtCiBpZiBYODZfNjQKICAgICBjb25zdCBQQiA9IGNzcjIKIGVs
c2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0CiAgICAgY29uc3QgUEIgPSBjc3I3CitlbHNp
ZiBBUk12NworICAgIGNvbnN0IFBCID0gY3NyMQogZWxzZQogICAgIGVycm9yCiBlbmQKIAotbWFj
cm8gZm9yRWFjaEFyZ3VtZW50R1BSKGZuKQotICAgIGZuKDAgKiA4LCB3YTApCi0gICAgZm4oMSAq
IDgsIHdhMSkKLSAgICBmbigyICogOCwgd2EyKQotICAgIGZuKDMgKiA4LCB3YTMpCi0gICAgZm4o
NCAqIDgsIHdhNCkKLSAgICBmbig1ICogOCwgd2E1KQotICAgIGlmIEFSTTY0IG9yIEFSTTY0RQot
ICAgICAgICBmbig2ICogOCwgd2E2KQotICAgICAgICBmbig3ICogOCwgd2E3KQorIyBIZWxwZXIg
bWFjcm9zCisKKyMgT24gSlNWQUxVRTY0LCBlYWNoIDY0LWJpdCBhcmd1bWVudCBHUFIgaG9sZHMg
b25lIHdob2xlIFdhc20gdmFsdWUuCisjIE9uIEpTVkFMVUUzMl82NCwgYSBjb25zZWN1dGl2ZSBw
YWlyIG9mIGV2ZW4vb2RkIG51bWJlcmVkIEdQUnMgaG9sZCBhIHNpbmdsZQorIyBXYXNtIHZhbHVl
IChldmVuIGlmIHRoYXQgdmFsdWUgaXMgaTMyL2YzMiwgdGhlIG9kZCBudW1iZXJlZCBHUFIgaG9s
ZHMgdGhlCisjIG1vcmUgc2lnbmlmaWNhbnQgd29yZCkuCittYWNybyBmb3JFYWNoQXJndW1lbnRK
U1IoZm4pCisgICAgaWYgSlNWQUxVRTY0CisgICAgICAgIGZuKDAgKiA4LCB3YTApCisgICAgICAg
IGZuKDEgKiA4LCB3YTEpCisgICAgICAgIGZuKDIgKiA4LCB3YTIpCisgICAgICAgIGZuKDMgKiA4
LCB3YTMpCisgICAgICAgIGZuKDQgKiA4LCB3YTQpCisgICAgICAgIGZuKDUgKiA4LCB3YTUpCisg
ICAgICAgIGlmIEFSTTY0IG9yIEFSTTY0RQorICAgICAgICAgICAgZm4oNiAqIDgsIHdhNikKKyAg
ICAgICAgICAgIGZuKDcgKiA4LCB3YTcpCisgICAgICAgIGVuZAorICAgIGVsc2UKKyAgICAgICAg
Zm4oMCAqIDgsIHdhMSwgd2EwKQorICAgICAgICBmbigxICogOCwgd2EzLCB3YTIpCiAgICAgZW5k
CiBlbmQKIAogbWFjcm8gZm9yRWFjaEFyZ3VtZW50RlBSKGZuKQotICAgIGZuKChOdW1iZXJPZldh
c21Bcmd1bWVudEdQUnMgKyAwKSAqIDgsIHdmYTApCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3Vt
ZW50R1BScyArIDEpICogOCwgd2ZhMSkKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJz
ICsgMikgKiA4LCB3ZmEyKQotICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyAzKSAq
IDgsIHdmYTMpCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDQpICogOCwgd2Zh
NCkKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgNSkgKiA4LCB3ZmE1KQotICAg
IGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyA2KSAqIDgsIHdmYTYpCi0gICAgZm4oKE51
bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDcpICogOCwgd2ZhNykKKyAgICBmbigoTnVtYmVyT2ZX
YXNtQXJndW1lbnRKU1JzICsgMCkgKiA4LCB3ZmEwKQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1
bWVudEpTUnMgKyAxKSAqIDgsIHdmYTEpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNS
cyArIDIpICogOCwgd2ZhMikKKyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgMykg
KiA4LCB3ZmEzKQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyA0KSAqIDgsIHdm
YTQpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIDUpICogOCwgd2ZhNSkKKyAg
ICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgNikgKiA4LCB3ZmE2KQorICAgIGZuKChO
dW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyA3KSAqIDgsIHdmYTcpCiBlbmQKIAotIyBIZWxwZXIg
bWFjcm9zCiAjIEZJWE1FOiBFdmVudHVhbGx5IHRoaXMgc2hvdWxkIGJlIHVuaWZpZWQgd2l0aCB0
aGUgSlMgdmVyc2lvbnMKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMzY1NgogCkBAIC0xMzAsMTAgKzE1NCwxNSBAQCBtYWNybyBjaGVja1N3aXRjaFRvSklURm9y
UHJvbG9ndWUoY29kZUJsb2NrUmVnaXN0ZXIpCiAgICAgICAgICAgICBidHB6IHIwLCAucmVjb3Zl
cgogICAgICAgICAgICAgbW92ZSByMCwgd3MwCiAKLSAgICAgICAgICAgIGZvckVhY2hBcmd1bWVu
dEdQUihtYWNybyAob2Zmc2V0LCBncHIpCitpZiBKU1ZBTFVFNjQKKyAgICAgICAgICAgIGZvckVh
Y2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHIpCiAgICAgICAgICAgICAgICAgbG9hZHEg
LW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0s
IGdwcgogICAgICAgICAgICAgZW5kKQotCitlbHNlCisgICAgICAgICAgICBmb3JFYWNoQXJndW1l
bnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3LCBncExzdykKKyAgICAgICAgICAgICAgICBsb2Fk
MmlhIC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtj
ZnJdLCBncExzdywgZ3ByTXN3CisgICAgICAgICAgICBlbmQpCitlbmQKICAgICAgICAgICAgIGZv
ckVhY2hBcmd1bWVudEZQUihtYWNybyAob2Zmc2V0LCBmcHIpCiAgICAgICAgICAgICAgICAgbG9h
ZGQgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nm
cl0sIGZwcgogICAgICAgICAgICAgZW5kKQpAQCAtMjAxLDYgKzIzMCw5IEBAIG1hY3JvIHByZXNl
cnZlQ2FsbGVlU2F2ZXNVc2VkQnlXYXNtKCkKICAgICBlbHNpZiBYODZfNjQgb3IgUklTQ1Y2NAog
ICAgICAgICBzdG9yZXAgUEIsIC0weDhbY2ZyXQogICAgICAgICBzdG9yZXAgd2FzbUluc3RhbmNl
LCAtMHgxMFtjZnJdCisgICAgZWxzaWYgQVJNdjcKKyAgICAgICAgc3RvcmVwIFBCLCAtNFtjZnJd
CisgICAgICAgIHN0b3JlcCB3YXNtSW5zdGFuY2UsIC04W2Nmcl0KICAgICBlbHNlCiAgICAgICAg
IGVycm9yCiAgICAgZW5kCkBAIC0yMTUsNiArMjQ3LDkgQEAgbWFjcm8gcmVzdG9yZUNhbGxlZVNh
dmVzVXNlZEJ5V2FzbSgpCiAgICAgZWxzaWYgWDg2XzY0IG9yIFJJU0NWNjQKICAgICAgICAgbG9h
ZHAgLTB4OFtjZnJdLCBQQgogICAgICAgICBsb2FkcCAtMHgxMFtjZnJdLCB3YXNtSW5zdGFuY2UK
KyAgICBlbHNpZiBBUk12NworICAgICAgICBsb2FkcCAtNFtjZnJdLCBQQgorICAgICAgICBsb2Fk
cCAtOFtjZnJdLCB3YXNtSW5zdGFuY2UKICAgICBlbHNlCiAgICAgICAgIGVycm9yCiAgICAgZW5k
CkBAIC0yNDUsMTAgKzI4MCwxMiBAQCBlbmQKIGVuZAogCiBtYWNybyByZWxvYWRNZW1vcnlSZWdp
c3RlcnNGcm9tSW5zdGFuY2UoaW5zdGFuY2UsIHNjcmF0Y2gxLCBzY3JhdGNoMikKK2lmIG5vdCBB
Uk12NwogICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2NhY2hlZE1lbW9yeVtpbnN0YW5jZV0s
IG1lbW9yeUJhc2UKICAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRCb3VuZHNDaGVj
a2luZ1NpemVbaW5zdGFuY2VdLCBib3VuZHNDaGVja2luZ1NpemUKICAgICBjYWdlZFByaW1pdGl2
ZU1heUJlTnVsbChtZW1vcnlCYXNlLCBib3VuZHNDaGVja2luZ1NpemUsIHNjcmF0Y2gxLCBzY3Jh
dGNoMikgIyBJZiBib3VuZHNDaGVja2luZ1NpemUgaXMgMCwgcG9pbnRlciBjYW4gYmUgYSBudWxs
cHRyLgogZW5kCitlbmQKIAogbWFjcm8gdGhyb3dFeGNlcHRpb24oZXhjZXB0aW9uKQogICAgIHN0
b3JlaSBjb25zdGV4cHIgV2FzbTo6RXhjZXB0aW9uVHlwZTo6JWV4Y2VwdGlvbiUsIEFyZ3VtZW50
Q291bnRJbmNsdWRpbmdUaGlzICsgUGF5bG9hZE9mZnNldFtjZnJdCkBAIC0yODAsOCArMzE3LDEz
IEBAIG1hY3JvIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKQogICAgIGxvYWRpIFdhc206
OkxMSW50Q2FsbGVlOjptX251bUNhbGxlZUxvY2Fsc1t3czFdLCB3czEKICAgICBsc2hpZnRwIDMs
IHdzMQogICAgIGFkZHAgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwsIHdzMQoraWYgQVJN
djcKKyAgICBzdWJwIGNmciwgd3MxLCB3czEKKyAgICBtb3ZlIHdzMSwgc3AKK2Vsc2UKICAgICBz
dWJwIGNmciwgd3MxLCBzcAogZW5kCitlbmQKIAogbWFjcm8gd2FzbVByb2xvZ3VlKGxvYWRXYXNt
SW5zdGFuY2UpCiAgICAgIyBTZXQgdXAgdGhlIGNhbGwgZnJhbWUgYW5kIGNoZWNrIGlmIHdlIHNo
b3VsZCBPU1IuCkBAIC0yOTIsNiArMzM0LDkgQEAgbWFjcm8gd2FzbVByb2xvZ3VlKGxvYWRXYXNt
SW5zdGFuY2UpCiAKICAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9vd25lclt3YXNtSW5zdGFu
Y2VdLCB3czAKICAgICBzdG9yZXAgd3MwLCBUaGlzQXJndW1lbnRPZmZzZXRbY2ZyXQoraWYgbm90
IEpTVkFMVUU2NAorICAgIHN0b3JlaSBDZWxsVGFnLCBUYWdPZmZzZXQgKyBUaGlzQXJndW1lbnRP
ZmZzZXRbY2ZyXQorZW5kCiAKICAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgd3MwCiAgICAgYW5kcCB+
Mywgd3MwCkBAIC0zMDMsNiArMzQ4LDEwIEBAIG1hY3JvIHdhc21Qcm9sb2d1ZShsb2FkV2FzbUlu
c3RhbmNlKQogICAgIGFkZHAgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwsIHdzMQogICAg
IHN1YnAgY2ZyLCB3czEsIHdzMQogCitpZiBub3QgSlNWQUxVRTY0CisgICAgc3VicCA4LCB3czEg
IyBhbGlnbiBzdGFjayBwb2ludGVyCitlbmQKKwogICAgIGJwYSB3czEsIGNmciwgLnN0YWNrT3Zl
cmZsb3cKICAgICBicGJlcSBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRTdGFja0xpbWl0W3dhc21J
bnN0YW5jZV0sIHdzMSwgLnN0YWNrSGVpZ2h0T0sKIApAQCAtMzEyLDEwICszNjEsMTUgQEAgbWFj
cm8gd2FzbVByb2xvZ3VlKGxvYWRXYXNtSW5zdGFuY2UpCiAuc3RhY2tIZWlnaHRPSzoKICAgICBt
b3ZlIHdzMSwgc3AKIAotICAgIGZvckVhY2hBcmd1bWVudEdQUihtYWNybyAob2Zmc2V0LCBncHIp
CitpZiBKU1ZBTFVFNjQKKyAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3By
KQogICAgICAgICBzdG9yZXEgZ3ByLCAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmly
dHVhbFJlZ2lzdGVycyAqIDhbY2ZyXQogICAgIGVuZCkKLQorZWxzZQorICAgIGZvckVhY2hBcmd1
bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHJNc3csIGdwTHN3KQorICAgICAgICBzdG9yZTJpYSBn
cExzdywgZ3ByTXN3LCAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lz
dGVycyAqIDhbY2ZyXQorICAgIGVuZCkKK2VuZAogICAgIGZvckVhY2hBcmd1bWVudEZQUihtYWNy
byAob2Zmc2V0LCBmcHIpCiAgICAgICAgIHN0b3JlZCBmcHIsIC1vZmZzZXQgLSA4IC0gQ2FsbGVl
U2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdCiAgICAgZW5kKQpAQCAtMzI5LDE0
ICszODMsMTYgQEAgbWFjcm8gd2FzbVByb2xvZ3VlKGxvYWRXYXNtSW5zdGFuY2UpCiAgICAgbG9h
ZGkgV2FzbTo6TExJbnRDYWxsZWU6Om1fbnVtVmFyc1t3czBdLCB3czEKICAgICBzdWJpIE51bWJl
ck9mV2FzbUFyZ3VtZW50cyArIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycywgd3Mx
CiAgICAgYnRpeiB3czEsIC56ZXJvSW5pdGlhbGl6ZUxvY2Fsc0RvbmUKKyAgICBsc2hpZnRpIDMs
IHdzMQogICAgIG5lZ2kgd3MxCitpZiBKU1ZBTFVFNjQKICAgICBzeGkycSB3czEsIHdzMQorZW5k
CiAgICAgbGVhcCAoTnVtYmVyT2ZXYXNtQXJndW1lbnRzICsgQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0
dWFsUmVnaXN0ZXJzICsgMSkgKiAtOFtjZnJdLCB3czAKIC56ZXJvSW5pdGlhbGl6ZUxvY2Fsc0xv
b3A6Ci0gICAgYWRkcSAxLCB3czEKLSAgICBzdG9yZXEgMCwgW3dzMCwgd3MxLCA4XQotICAgIGJ0
cXogd3MxLCAuemVyb0luaXRpYWxpemVMb2NhbHNEb25lCi0gICAgam1wIC56ZXJvSW5pdGlhbGl6
ZUxvY2Fsc0xvb3AKKyAgICBhZGRwIFB0clNpemUsIHdzMQorICAgIHN0b3JlcCAwLCBbd3MwLCB3
czFdCisgICAgYnRwbnogd3MxLCAuemVyb0luaXRpYWxpemVMb2NhbHNMb29wCiAuemVyb0luaXRp
YWxpemVMb2NhbHNEb25lOgogZW5kCiAKQEAgLTM3NSw2ICs0MzEsMjQgQEAgbWFjcm8gc2xvd1dh
c21PcChvcGNvZGVOYW1lKQogICAgIHVucHJlZml4ZWRTbG93V2FzbU9wKHdhc21fJW9wY29kZU5h
bWUlKQogZW5kCiAKKyMgRmxvYXQgdG8gZmxvYXQgcm91bmRpbmcgb3BzCittYWNybyB3YXNtUm91
bmRpbmdPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGZuKQoraWYgSlNWQUxVRTY0ICMgQWxs
IGN1cnJlbnQgNjQtYml0IHBsYXRmb3JtcyBoYXZlIGluc3RydWN0aW9ucyBmb3IgdGhlc2UKKyAg
ICB3YXNtT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBmbikKK2Vsc2UKKyAgICBzbG93V2Fz
bU9wKG9wY29kZU5hbWUpCitlbmQKK2VuZAorCisjIGk2NCAoc2lnbmVkL3Vuc2lnbmVkKSB0byBm
MzIgb3IgZjY0CittYWNybyB3YXNtSTY0VG9GT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBm
bikKK2lmIEpTVkFMVUU2NCAjIEFsbCBjdXJyZW50IDY0LWJpdCBwbGF0Zm9ybXMgaGF2ZSBpbnN0
cnVjdGlvbnMgZm9yIHRoZXNlCisgICAgd2FzbU9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwg
Zm4pCitlbHNlCisgICAgc2xvd1dhc21PcChvcGNvZGVOYW1lKQorZW5kCitlbmQKKwogIyBNYWNy
byB2ZXJzaW9uIG9mIGxvYWQgb3BlcmF0aW9uczogbWxvYWRbc3VmZml4XQogIyBsb2FkcyBmaWVs
ZCBmcm9tIHRoZSBpbnN0cnVjdGlvbiBzdHJlYW0gYW5kIHBlcmZvcm1zIGxvYWRbc3VmZml4XSB0
byBkc3QKIG1hY3JvIGZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4KGN0eCwgZm4pCkBAIC0zOTcs
MTIgKzQ3MSwyMSBAQCBtYWNybyBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKGN0eCwgaW5kZXgsIGxv
YWRlcikKICAgICBlbmQpCiBlbmQKIAoraWYgSlNWQUxVRTY0CiBtYWNybyBtbG9hZHEoY3R4LCBm
aWVsZCwgZHN0KQogICAgIHdnZXRzKGN0eCwgZmllbGQsIGRzdCkKICAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlKGN0eCwgZHN0LCBtYWNybyAoZnJvbSkKICAgICAgICAgbG9hZHEgZnJvbSwgZHN0
CiAgICAgZW5kKQogZW5kCitlbHNlCittYWNybyBtbG9hZDJpKGN0eCwgZmllbGQsIGRzdE1zdywg
ZHN0THN3KQorICAgIHdnZXRzKGN0eCwgZmllbGQsIGRzdExzdykKKyAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlKGN0eCwgZHN0THN3LCBtYWNybyAoZnJvbSkKKyAgICAgICAgbG9hZDJpYSBmcm9t
LCBkc3RMc3csIGRzdE1zdworICAgIGVuZCkKK2VuZAorZW5kCiAKIG1hY3JvIG1sb2FkaShjdHgs
IGZpZWxkLCBkc3QpCiAgICAgd2dldHMoY3R4LCBmaWVsZCwgZHN0KQpAQCAtNDM0LDExICs1MTcs
MTkgQEAgZW5kCiAKICMgVHlwZWQgcmV0dXJucwogCitpZiBKU1ZBTFVFNjQKIG1hY3JvIHJldHVy
bnEoY3R4LCB2YWx1ZSkKICAgICB3Z2V0cyhjdHgsIG1fZHN0LCB0NSkKICAgICBzdG9yZXEgdmFs
dWUsIFtjZnIsIHQ1LCA4XQogICAgIGRpc3BhdGNoKGN0eCkKIGVuZAorZWxzZQorbWFjcm8gcmV0
dXJuMmkoY3R4LCBtc3csIGxzdykKKyAgICB3Z2V0cyhjdHgsIG1fZHN0LCB0NSkKKyAgICBzdG9y
ZTJpYSBsc3csIG1zdywgW2NmciwgdDUsIDhdCisgICAgZGlzcGF0Y2goY3R4KQorZW5kCitlbmQK
IAogbWFjcm8gcmV0dXJuaShjdHgsIHZhbHVlKQogICAgIHdnZXRzKGN0eCwgbV9kc3QsIHQ1KQpA
QCAtNTExLDcgKzYwMiw3IEBAIG1hY3JvIHdhc21Db2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0
ZXIpCiBlbmQKIAogb3Aod2FzbV9mdW5jdGlvbl9wcm9sb2d1ZSwgbWFjcm8gKCkKLSAgICBpZiBu
b3QgV0VCQVNTRU1CTFkgb3Igbm90IEpTVkFMVUU2NCBvciBDX0xPT1Agb3IgQ19MT09QX1dJTgor
ICAgIGlmIG5vdCBXRUJBU1NFTUJMWSBvciBDX0xPT1Agb3IgQ19MT09QX1dJTgogICAgICAgICBl
cnJvcgogICAgIGVuZAogCkBAIC01MjAsNyArNjExLDcgQEAgb3Aod2FzbV9mdW5jdGlvbl9wcm9s
b2d1ZSwgbWFjcm8gKCkKIGVuZCkKIAogb3Aod2FzbV9mdW5jdGlvbl9wcm9sb2d1ZV9ub190bHMs
IG1hY3JvICgpCi0gICAgaWYgbm90IFdFQkFTU0VNQkxZIG9yIG5vdCBKU1ZBTFVFNjQgb3IgQ19M
T09QIG9yIENfTE9PUF9XSU4KKyAgICBpZiBub3QgV0VCQVNTRU1CTFkgb3IgQ19MT09QIG9yIENf
TE9PUF9XSU4KICAgICAgICAgZXJyb3IKICAgICBlbmQKIApAQCAtNjIyLDE2ICs3MTMsMjMgQEAg
X3dhc21fZW50ZXI6CiAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDIsIDB4ZGVhZDAw
ZTEpCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQyICAgICAgICAgICAgICAgIC8vIHQyPENv
ZGVCbG9jaz4gPSBjZnIuQ29kZUJsb2NrCiAgICAgbG9hZGkgV2FzbTo6TExJbnRDYWxsZWU6Om1f
bnVtVmFyc1t0Ml0sIHQyICAgICAgLy8gdDI8c2l6ZV90PiA9IHQyPENvZGVCbG9jaz4ubV9udW1W
YXJzCi0gICAgc3VicSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKyBOdW1iZXJP
Zldhc21Bcmd1bWVudHMsIHQyCisgICAgc3ViaSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdp
c3RlcnMgKyBOdW1iZXJPZldhc21Bcmd1bWVudHMsIHQyCiAgICAgYnRpeiB0MiwgLm9wRW50ZXJE
b25lCi0gICAgbW92ZSBjZnIsIHQxCi0gICAgc3VicSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxS
ZWdpc3RlcnMgKiA4ICsgTnVtYmVyT2ZXYXNtQXJndW1lbnRzICogOCwgdDEKKyAgICBzdWJwIGNm
ciwgKENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyArIE51bWJlck9mV2FzbUFyZ3Vt
ZW50cykgKiBTbG90U2l6ZSwgdDEKKyAgICBsc2hpZnRpIDMsIHQyCiAgICAgbmVnaSB0MgoraWYg
SlNWQUxVRTY0CiAgICAgc3hpMnEgdDIsIHQyCitlbmQKKyAgICBtb3ZlIDAsIHQ2CiAub3BFbnRl
ckxvb3A6Ci0gICAgc3RvcmVxIDAsIFt0MSwgdDIsIDhdCi0gICAgYWRkcSAxLCB0MgotICAgIGJ0
cW56IHQyLCAub3BFbnRlckxvb3AKK2lmIEpTVkFMVUU2NAorICAgIHN0b3JlcSB0NiwgW3QxLCB0
Ml0KK2Vsc2UKKyAgICBzdG9yZTJpYSB0NiwgdDYsIFt0MSwgdDJdCitlbmQKKyAgICBhZGRwIDgs
IHQyCisgICAgYnRwbnogdDIsIC5vcEVudGVyTG9vcAogLm9wRW50ZXJEb25lOgogICAgIHdhc21E
aXNwYXRjaEluZGlyZWN0KDEpCiAKQEAgLTY0NCwxMSArNzQyLDYgQEAgd2FzbU9wKGxvb3BfaGlu
dCwgV2FzbUxvb3BIaW50LCBtYWNybyhjdHgpCiAgICAgZGlzcGF0Y2goY3R4KQogZW5kKQogCi13
YXNtT3AobW92LCBXYXNtTW92LCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9zcmMsIHQw
KQotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQogd2FzbU9wKGp0cnVlLCBXYXNtSnRydWUs
IG1hY3JvKGN0eCkKICAgICBtbG9hZGkoY3R4LCBtX2NvbmRpdGlvbiwgdDApCiAgICAgYnRpeiB0
MCwgLmNvbnRpbnVlCkBAIC03MDAsMTEgKzc5MywxNyBAQCBlbmQpCiAKIHVucHJlZml4ZWRXYXNt
T3Aod2FzbV9yZXQsIFdhc21SZXQsIG1hY3JvKGN0eCkKICAgICBjaGVja1N3aXRjaFRvSklURm9y
RXBpbG9ndWUoKQotICAgIGZvckVhY2hBcmd1bWVudEdQUihtYWNybyAob2Zmc2V0LCBncHIpCitp
ZiBKU1ZBTFVFNjQKKyAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByKQog
ICAgICAgICBsb2FkcSAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lz
dGVycyAqIDhbY2ZyXSwgZ3ByCiAgICAgZW5kKQorZWxzZQorICAgIGZvckVhY2hBcmd1bWVudEpT
UihtYWNybyAob2Zmc2V0LCBncHJNc3csIGdwTHN3KQorICAgICAgICBsb2FkMmlhIC1vZmZzZXQg
LSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBncExzdywg
Z3ByTXN3CisgICAgZW5kKQorZW5kCiAgICAgZm9yRWFjaEFyZ3VtZW50RlBSKG1hY3JvIChvZmZz
ZXQsIGZwcikKLSAgICAgICAgbG9hZGQgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1Zp
cnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0sIGZwcgorICAgICAgICBsb2FkZCAtb2Zmc2V0IC0gIDgg
LSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0sIGZwcgogICAgIGVu
ZCkKICAgICBkb1JldHVybigpCiBlbmQpCkBAIC03MjAsNDQgKzgxOSw2IEBAIHdhc21PcChyZXRf
dm9pZCwgV2FzbVJldFZvaWQsIG1hY3JvKGN0eCkKICAgICBkb1JldHVybigpCiBlbmQpCiAKLXdh
c21PcChyZWZfaXNfbnVsbCwgV2FzbVJlZklzTnVsbCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcChj
dHgsIG1fcmVmLCB0MCkKLSAgICBjcWVxIHQwLCBWYWx1ZU51bGwsIHQwCi0gICAgcmV0dXJuaShj
dHgsIHQwKQotZW5kKQotCi13YXNtT3AoZ2V0X2dsb2JhbCwgV2FzbUdldEdsb2JhbCwgbWFjcm8o
Y3R4KQotICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwg
dDAKLSAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQotICAgIGxvYWRxIFt0MCwgdDEs
IDhdLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKHNldF9nbG9iYWws
IFdhc21TZXRHbG9iYWwsIG1hY3JvKGN0eCkKLSAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9n
bG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCi0gICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0
MSkKLSAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICBzdG9yZXEgdDIsIFt0MCwgdDEs
IDhdCi0gICAgZGlzcGF0Y2goY3R4KQotZW5kKQotCi13YXNtT3AoZ2V0X2dsb2JhbF9wb3J0YWJs
ZV9iaW5kaW5nLCBXYXNtR2V0R2xvYmFsUG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCi0gICAg
bG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAotICAgIHdn
ZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCi0gICAgbG9hZHEgW3QwLCB0MSwgOF0sIHQwCi0g
ICAgbG9hZHEgW3QwXSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChz
ZXRfZ2xvYmFsX3BvcnRhYmxlX2JpbmRpbmcsIFdhc21TZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcs
IG1hY3JvKGN0eCkKLSAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0
YW5jZV0sIHQwCi0gICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKLSAgICBtbG9hZHEo
Y3R4LCBtX3ZhbHVlLCB0MikKLSAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKLSAgICBzdG9yZXEg
dDIsIFt0MF0KLSAgICBkaXNwYXRjaChjdHgpCi1lbmQpCi0KIG1hY3JvIHNsb3dQYXRoRm9yV2Fz
bUNhbGwoY3R4LCBzbG93UGF0aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAgICAgY2FsbFdhc21DYWxs
U2xvd1BhdGgoCiAgICAgICAgIHNsb3dQYXRoLApAQCAtNzcyLDcgKzgzMywxMiBAQCBtYWNybyBz
bG93UGF0aEZvcldhc21DYWxsKGN0eCwgc2xvd1BhdGgsIHN0b3JlV2FzbUluc3RhbmNlKQogCiAg
ICAgICAgICAgICB3Z2V0dShjdHgsIG1fc3RhY2tPZmZzZXQsIHdzMSkKICAgICAgICAgICAgIGxz
aGlmdGkgMywgd3MxCitpZiBBUk12NworICAgICAgICAgICAgc3VicCBjZnIsIHdzMSwgd3MxCisg
ICAgICAgICAgICBtb3ZlIHdzMSwgc3AKK2Vsc2UKICAgICAgICAgICAgIHN1YnAgY2ZyLCB3czEs
IHNwCitlbmQKIAogICAgICAgICAgICAgd2dldHUoY3R4LCBtX251bWJlck9mU3RhY2tBcmdzLCB3
czEpCiAKQEAgLTc4MywxMCArODQ5LDE1IEBAIG1hY3JvIHNsb3dQYXRoRm9yV2FzbUNhbGwoY3R4
LCBzbG93UGF0aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAgICAgICAgICAgICByZWxvYWRNZW1vcnlS
ZWdpc3RlcnNGcm9tSW5zdGFuY2UodGFyZ2V0V2FzbUluc3RhbmNlLCB3YTAsIHdhMSkKIAogICAg
ICAgICAgICAgIyBMb2FkIHJlZ2lzdGVycyBmcm9tIHN0YWNrCi0gICAgICAgICAgICBmb3JFYWNo
QXJndW1lbnRHUFIobWFjcm8gKG9mZnNldCwgZ3ByKQoraWYgSlNWQUxVRTY0CisgICAgICAgICAg
ICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByKQogICAgICAgICAgICAgICAg
IGxvYWRxIENhbGxGcmFtZUhlYWRlclNpemUgKyA4ICsgb2Zmc2V0W3NwLCB3czEsIDhdLCBncHIK
ICAgICAgICAgICAgIGVuZCkKLQorZWxzZQorICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNS
KG1hY3JvIChvZmZzZXQsIGdwck1zdywgZ3BMc3cpCisgICAgICAgICAgICAgICAgbG9hZDJpYSBD
YWxsRnJhbWVIZWFkZXJTaXplICsgOCArIG9mZnNldFtzcCwgd3MxLCA4XSwgZ3BMc3csIGdwck1z
dworICAgICAgICAgICAgZW5kKQorZW5kCiAgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRGUFIo
bWFjcm8gKG9mZnNldCwgZnByKQogICAgICAgICAgICAgICAgIGxvYWRkIENhbGxGcmFtZUhlYWRl
clNpemUgKyA4ICsgb2Zmc2V0W3NwLCB3czEsIDhdLCBmcHIKICAgICAgICAgICAgIGVuZCkKQEAg
LTgyOSw3ICs5MDAsMTEgQEAgbWFjcm8gc2xvd1BhdGhGb3JXYXNtQ2FsbChjdHgsIHNsb3dQYXRo
LCBzdG9yZVdhc21JbnN0YW5jZSkKIAogICAgICAgICAgICAgIyBXZSBuZWVkIHRvIHNldCBQQyB0
byBsb2FkIGluZm9ybWF0aW9uIGZyb20gdGhlIGluc3RydWN0aW9uIHN0cmVhbSwgYnV0IHdlCiAg
ICAgICAgICAgICAjIG5lZWQgdG8gcHJlc2VydmUgaXRzIGN1cnJlbnQgdmFsdWUgc2luY2UgaXQg
bWlnaHQgY29udGFpbiBhIHJldHVybiB2YWx1ZQoraWYgQVJNdjcKKyAgICAgICAgICAgIHB1c2gg
UEMKK2Vsc2UKICAgICAgICAgICAgIG1vdmUgUEMsIG1lbW9yeUJhc2UKK2VuZAogICAgICAgICAg
ICAgbW92ZSBQQiwgd2FzbUluc3RhbmNlCiAgICAgICAgICAgICBsb2FkaSBBcmd1bWVudENvdW50
SW5jbHVkaW5nVGhpcyArIFRhZ09mZnNldFtjZnJdLCBQQwogICAgICAgICAgICAgbG9hZHAgQ29k
ZUJsb2NrW2Nmcl0sIFBCCkBAIC04MzgsMTcgKzkxMywyOCBAQCBtYWNybyBzbG93UGF0aEZvcldh
c21DYWxsKGN0eCwgc2xvd1BhdGgsIHN0b3JlV2FzbUluc3RhbmNlKQogICAgICAgICAgICAgd2dl
dHUoY3R4LCBtX3N0YWNrT2Zmc2V0LCB3czEpCiAgICAgICAgICAgICBsc2hpZnRpIDMsIHdzMQog
ICAgICAgICAgICAgbmVnaSB3czEKK2lmIEpTVkFMVUU2NAogICAgICAgICAgICAgc3hpMnEgd3Mx
LCB3czEKK2VuZAogICAgICAgICAgICAgYWRkcCBjZnIsIHdzMQogCiAgICAgICAgICAgICAjIEFy
Z3VtZW50IHJlZ2lzdGVycyBhcmUgYWxzbyByZXR1cm4gcmVnaXN0ZXJzLCBzbyB0aGV5IG11c3Qg
YmUgc3RvcmVkIHRvIHRoZSBzdGFjawogICAgICAgICAgICAgIyBpbiBjYXNlIHRoZXkgY29udGFp
biByZXR1cm4gdmFsdWVzLgogICAgICAgICAgICAgd2dldHUoY3R4LCBtX251bWJlck9mU3RhY2tB
cmdzLCB3czApCitpZiBBUk12NworICAgICAgICAgICAgcG9wIFBDCitlbHNlCiAgICAgICAgICAg
ICBtb3ZlIG1lbW9yeUJhc2UsIFBDCi0gICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRHUFIobWFj
cm8gKG9mZnNldCwgZ3ByKQorZW5kCitpZiBKU1ZBTFVFNjQKKyAgICAgICAgICAgIGZvckVhY2hB
cmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHIpCiAgICAgICAgICAgICAgICAgc3RvcmVxIGdw
ciwgQ2FsbEZyYW1lSGVhZGVyU2l6ZSArIDggKyBvZmZzZXRbd3MxLCB3czAsIDhdCiAgICAgICAg
ICAgICBlbmQpCi0KK2Vsc2UKKyAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAo
b2Zmc2V0LCBncHJNc3csIGdwTHN3KQorICAgICAgICAgICAgICAgIHN0b3JlMmlhIGdwTHN3LCBn
cHJNc3csIENhbGxGcmFtZUhlYWRlclNpemUgKyA4ICsgb2Zmc2V0W3dzMSwgd3MwLCA4XQorICAg
ICAgICAgICAgZW5kKQorZW5kCiAgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRGUFIobWFjcm8g
KG9mZnNldCwgZnByKQogICAgICAgICAgICAgICAgIHN0b3JlZCBmcHIsIENhbGxGcmFtZUhlYWRl
clNpemUgKyA4ICsgb2Zmc2V0W3dzMSwgd3MwLCA4XQogICAgICAgICAgICAgZW5kKQpAQCAtODk5
LDE5OSArOTg1LDM2IEBAIHdhc21PcChjdXJyZW50X21lbW9yeSwgV2FzbUN1cnJlbnRNZW1vcnks
IG1hY3JvKGN0eCkKICAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9tZW1vcnlbd2FzbUluc3Rh
bmNlXSwgdDAKICAgICBsb2FkcCBXYXNtOjpNZW1vcnk6Om1faGFuZGxlW3QwXSwgdDAKICAgICBs
b2FkcCBXYXNtOjpNZW1vcnlIYW5kbGU6Om1fc2l6ZVt0MF0sIHQwCi0gICAgdXJzaGlmdHEgMTYs
IHQwCisgICAgdXJzaGlmdHAgMTYsIHQwCitpZiBKU1ZBTFVFNjQKICAgICByZXR1cm5xKGN0eCwg
dDApCitlbHNlCisgICAgcmV0dXJuMmkoY3R4LCAwLCB0MCkKK2VuZAogZW5kKQogCiB3YXNtT3Ao
c2VsZWN0LCBXYXNtU2VsZWN0LCBtYWNybyhjdHgpCiAgICAgbWxvYWRpKGN0eCwgbV9jb25kaXRp
b24sIHQwKQogICAgIGJ0aXogdDAsIC5pc1plcm8KK2lmIEpTVkFMVUU2NAogICAgIG1sb2FkcShj
dHgsIG1fbm9uWmVybywgdDApCiAgICAgcmV0dXJucShjdHgsIHQwKQogLmlzWmVybzoKICAgICBt
bG9hZHEoY3R4LCBtX3plcm8sIHQwKQogICAgIHJldHVybnEoY3R4LCB0MCkKK2Vsc2UKKyAgICBt
bG9hZDJpKGN0eCwgbV9ub25aZXJvLCB0MSwgdDApCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDAp
CisuaXNaZXJvOgorICAgIG1sb2FkMmkoY3R4LCBtX3plcm8sIHQxLCB0MCkKKyAgICByZXR1cm4y
aShjdHgsIHQxLCB0MCkKK2VuZAogZW5kKQogCi0jIHVzZXMgb2Zmc2V0IGFzIHNjcmF0Y2ggYW5k
IHJldHVybnMgcmVzdWx0IG9uIHBvaW50ZXIKLW1hY3JvIGVtaXRDaGVja0FuZFByZXBhcmVQb2lu
dGVyKGN0eCwgcG9pbnRlciwgb2Zmc2V0LCBzaXplKQotICAgIGxlYXAgc2l6ZSAtIDFbcG9pbnRl
ciwgb2Zmc2V0XSwgdDUKLSAgICBicGIgdDUsIGJvdW5kc0NoZWNraW5nU2l6ZSwgLmNvbnRpbnVh
dGlvbgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNjZXNzKQotLmNvbnRp
bnVhdGlvbjoKLSAgICBhZGRwIG1lbW9yeUJhc2UsIHBvaW50ZXIKLWVuZAotCi1tYWNybyBlbWl0
Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgsIHBvaW50ZXIsIG9mZnNldCwg
c2l6ZSkKLSAgICBsZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNldF0sIHQ1Ci0gICAgYnBiIHQ1
LCBib3VuZHNDaGVja2luZ1NpemUsIC5jb250aW51YXRpb24KLS50aHJvdzoKLSAgICB0aHJvd0V4
Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKLS5jb250aW51YXRpb246Ci0gICAgYWRk
cCBtZW1vcnlCYXNlLCBwb2ludGVyCi0gICAgYWRkcCBvZmZzZXQsIHBvaW50ZXIKLWVuZAotCi1t
YWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRD
aGVjayhjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKLSAgICBsZWFwIHNpemUgLSAxW3BvaW50
ZXIsIG9mZnNldF0sIHQ1Ci0gICAgYnBiIHQ1LCBib3VuZHNDaGVja2luZ1NpemUsIC5jb250aW51
YXRpb24KLS50aHJvdzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2Vz
cykKLS5jb250aW51YXRpb246Ci0gICAgYWRkcCBtZW1vcnlCYXNlLCBwb2ludGVyCi0gICAgYWRk
cCBvZmZzZXQsIHBvaW50ZXIKLSAgICBidHBueiBwb2ludGVyLCAoc2l6ZSAtIDEpLCAudGhyb3cK
LWVuZAotCi1tYWNybyB3YXNtTG9hZE9wKG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4pCi0gICAgd2Fz
bU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50
ZXIsIHQwKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgZW1pdENo
ZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4LCB0MCwgdDEsIHNpemUpCi0gICAgICAgIGZuKFt0MCwg
dDFdLCB0MikKLSAgICAgICAgcmV0dXJucShjdHgsIHQyKQotICAgIGVuZCkKLWVuZAotCi13YXNt
TG9hZE9wKGxvYWQ4X3UsIFdhc21Mb2FkOFUsIDEsIG1hY3JvKG1lbSwgZHN0KSBsb2FkYiBtZW0s
IGRzdCBlbmQpCi13YXNtTG9hZE9wKGxvYWQxNl91LCBXYXNtTG9hZDE2VSwgMiwgbWFjcm8obWVt
LCBkc3QpIGxvYWRoIG1lbSwgZHN0IGVuZCkKLXdhc21Mb2FkT3AobG9hZDMyX3UsIFdhc21Mb2Fk
MzJVLCA0LCBtYWNybyhtZW0sIGRzdCkgbG9hZGkgbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChs
b2FkNjRfdSwgV2FzbUxvYWQ2NFUsIDgsIG1hY3JvKG1lbSwgZHN0KSBsb2FkcSBtZW0sIGRzdCBl
bmQpCi0KLXdhc21Mb2FkT3AoaTMyX2xvYWQ4X3MsIFdhc21JMzJMb2FkOFMsIDEsIG1hY3JvKG1l
bSwgZHN0KSBsb2FkYnNpIG1lbSwgZHN0IGVuZCkKLXdhc21Mb2FkT3AoaTY0X2xvYWQ4X3MsIFdh
c21JNjRMb2FkOFMsIDEsIG1hY3JvKG1lbSwgZHN0KSBsb2FkYnNxIG1lbSwgZHN0IGVuZCkKLXdh
c21Mb2FkT3AoaTMyX2xvYWQxNl9zLCBXYXNtSTMyTG9hZDE2UywgMiwgbWFjcm8obWVtLCBkc3Qp
IGxvYWRoc2kgbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChpNjRfbG9hZDE2X3MsIFdhc21JNjRM
b2FkMTZTLCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGhzcSBtZW0sIGRzdCBlbmQpCi13YXNtTG9h
ZE9wKGk2NF9sb2FkMzJfcywgV2FzbUk2NExvYWQzMlMsIDQsIG1hY3JvKG1lbSwgZHN0KSBsb2Fk
aXMgbWVtLCBkc3QgZW5kKQotCi1tYWNybyB3YXNtU3RvcmVPcChuYW1lLCBzdHJ1Y3QsIHNpemUs
IGZuKQotICAgIHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRp
KGN0eCwgbV9wb2ludGVyLCB0MCkKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0g
ICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKGN0eCwgdDAsIHQxLCBzaXplKQotICAg
ICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICAgICAgZm4odDIsIFt0MCwgdDFdKQot
ICAgICAgICBkaXNwYXRjaChjdHgpCi0gICAgZW5kKQotZW5kCi0KLXdhc21TdG9yZU9wKHN0b3Jl
OCwgV2FzbVN0b3JlOCwgMSwgbWFjcm8odmFsdWUsIG1lbSkgc3RvcmViIHZhbHVlLCBtZW0gZW5k
KQotd2FzbVN0b3JlT3Aoc3RvcmUxNiwgV2FzbVN0b3JlMTYsIDIsIG1hY3JvKHZhbHVlLCBtZW0p
IHN0b3JlaCB2YWx1ZSwgbWVtIGVuZCkKLXdhc21TdG9yZU9wKHN0b3JlMzIsIFdhc21TdG9yZTMy
LCA0LCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZWkgdmFsdWUsIG1lbSBlbmQpCi13YXNtU3RvcmVP
cChzdG9yZTY0LCBXYXNtU3RvcmU2NCwgOCwgbWFjcm8odmFsdWUsIG1lbSkgc3RvcmVxIHZhbHVl
LCBtZW0gZW5kKQotCiAjIE9wY29kZXMgdGhhdCBkb24ndCBoYXZlIHRoZSBgYjNvcGAgZW50cnkg
aW4gd2FzbS5qc29uLiBUaGlzIHNob3VsZCBiZSBrZXB0IGluIHN5bmMKIAotd2FzbU9wKGkzMl9k
aXZfcywgV2FzbUkzMkRpdlMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRpKGN0eCwgbV9saHMsIHQw
KQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0aXogdDEsIC50aHJvd0Rpdmlz
aW9uQnlaZXJvCi0KLSAgICBiaW5lcSB0MSwgLTEsIC5zYWZlCi0gICAgYmllcSB0MCwgY29uc3Rl
eHByIElOVDMyX01JTiwgLnRocm93SW50ZWdlck92ZXJmbG93Ci0KLS5zYWZlOgotICAgIGlmIFg4
Nl82NAotICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAg
aXMgcmF4IGFuZCB0MiBpcyByZHgKLSAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCi0gICAgICAgIGNkcWkKLSAgICAgICAgaWRpdmkgdDEKLSAg
ICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAotICAgICAgICBkaXZpcyB0MSwgdDAK
LSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0gICAgcmV0dXJuaShjdHgsIHQwKQot
Ci0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVy
bykKLQotLnRocm93SW50ZWdlck92ZXJmbG93OgotICAgIHRocm93RXhjZXB0aW9uKEludGVnZXJP
dmVyZmxvdykKLWVuZCkKLQotd2FzbU9wKGkzMl9kaXZfdSwgV2FzbUkzMkRpdlUsIG1hY3JvIChj
dHgpCi0gICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0
MSkKLQotICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBpZiBYODZfNjQK
LSAgICAgICAgeG9yaSB0MiwgdDIKLSAgICAgICAgdWRpdmkgdDEKLSAgICBlbHNpZiBBUk02NCBv
ciBBUk02NEUgb3IgUklTQ1Y2NAotICAgICAgICBkaXZpIHQxLCB0MAotICAgIGVsc2UKLSAgICAg
ICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS50aHJvd0RpdmlzaW9u
QnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotZW5kKQotCi13YXNt
T3AoaTMyX3JlbV9zLCBXYXNtSTMyUmVtUywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGkoY3R4LCBt
X2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRpeiB0MSwgLnRo
cm93RGl2aXNpb25CeVplcm8KLQotICAgIGJpbmVxIHQxLCAtMSwgLnNhZmUKLSAgICBiaW5lcSB0
MCwgY29uc3RleHByIElOVDMyX01JTiwgLnNhZmUKLQotICAgIG1vdmUgMCwgdDIKLSAgICBqbXAg
LnJldHVybgotCi0uc2FmZToKLSAgICBpZiBYODZfNjQKLSAgICAgICAgIyBGSVhNRTogQWRkIGEg
d2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4Ci0gICAgICAg
ICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgotICAgICAg
ICBjZHFpCi0gICAgICAgIGlkaXZpIHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCi0gICAg
ICAgIGRpdmlzIHQxLCB0MCwgdDIKLSAgICAgICAgbXVsaSB0MSwgdDIKLSAgICAgICAgc3ViaSB0
MCwgdDIsIHQyCi0gICAgZWxzaWYgUklTQ1Y2NAotICAgICAgICByZW1pcyB0MSwgdDAKLSAgICBl
bHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0KLS5yZXR1cm46Ci0gICAgcmV0dXJuaShjdHgs
IHQyKQotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lv
bkJ5WmVybykKLWVuZCkKLQotd2FzbU9wKGkzMl9yZW1fdSwgV2FzbUkzMlJlbVUsIG1hY3JvIChj
dHgpCi0gICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0
MSkKLQotICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBpZiBYODZfNjQK
LSAgICAgICAgeG9yaSB0MiwgdDIKLSAgICAgICAgdWRpdmkgdDEKLSAgICBlbHNpZiBBUk02NCBv
ciBBUk02NEUKLSAgICAgICAgZGl2aSB0MSwgdDAsIHQyCi0gICAgICAgIG11bGkgdDEsIHQyCi0g
ICAgICAgIHN1YmkgdDAsIHQyLCB0MgotICAgIGVsc2lmIFJJU0NWNjQKLSAgICAgICAgcmVtaSB0
MSwgdDAKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0gICAgcmV0dXJuaShjdHgs
IHQyKQotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lv
bkJ5WmVybykKLWVuZCkKLQogd2FzbU9wKGkzMl9jdHosIFdhc21JMzJDdHosIG1hY3JvIChjdHgp
Ci0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJh
bmQsIHQwKQogICAgIHR6Y250aSB0MCwgdDAKICAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCkBA
IC0xMTA1LDE0OCArMTAyOCwyNSBAQCB3YXNtT3AoaTMyX3BvcGNudCwgV2FzbUkzMlBvcGNudCwg
bWFjcm8gKGN0eCkKICAgICByZXR1cm5pKGN0eCwgcjEpCiBlbmQpCiAKLXdhc21PcChpNjRfZGl2
X3MsIFdhc21JNjREaXZTLCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkK
LSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0KLSAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lv
bkJ5WmVybwotCi0gICAgYnFuZXEgdDEsIC0xLCAuc2FmZQotICAgIGJxZXEgdDAsIGNvbnN0ZXhw
ciBJTlQ2NF9NSU4sIC50aHJvd0ludGVnZXJPdmVyZmxvdwotCi0uc2FmZToKLSAgICBpZiBYODZf
NjQKLSAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlz
IHJheCBhbmQgdDIgaXMgcmR4Ci0gICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMzY5MgotICAgICAgICBjcW9xCi0gICAgICAgIGlkaXZxIHQxCi0gICAg
ZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKLSAgICAgICAgZGl2cXMgdDEsIHQwCi0g
ICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVuZAotICAgIHJldHVybnEoY3R4LCB0MCkKLQot
LnRocm93RGl2aXNpb25CeVplcm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8p
Ci0KLS50aHJvd0ludGVnZXJPdmVyZmxvdzoKLSAgICB0aHJvd0V4Y2VwdGlvbihJbnRlZ2VyT3Zl
cmZsb3cpCi1lbmQpCi0KLXdhc21PcChpNjRfZGl2X3UsIFdhc21JNjREaXZVLCBtYWNybyAoY3R4
KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEp
Ci0KLSAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwotCi0gICAgaWYgWDg2XzY0Ci0g
ICAgICAgIHhvcnEgdDIsIHQyCi0gICAgICAgIHVkaXZxIHQxCi0gICAgZWxzaWYgQVJNNjQgb3Ig
QVJNNjRFIG9yIFJJU0NWNjQKLSAgICAgICAgZGl2cSB0MSwgdDAKLSAgICBlbHNlCi0gICAgICAg
IGVycm9yCi0gICAgZW5kCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0udGhyb3dEaXZpc2lvbkJ5
WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLWVuZCkKLQotd2FzbU9w
KGk2NF9yZW1fcywgV2FzbUk2NFJlbVMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9s
aHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0cXogdDEsIC50aHJv
d0RpdmlzaW9uQnlaZXJvCi0KLSAgICBicW5lcSB0MSwgLTEsIC5zYWZlCi0gICAgYnFuZXEgdDAs
IGNvbnN0ZXhwciBJTlQ2NF9NSU4sIC5zYWZlCi0KLSAgICBtb3ZlIDAsIHQyCi0gICAgam1wIC5y
ZXR1cm4KLQotLnNhZmU6Ci0gICAgaWYgWDg2XzY0Ci0gICAgICAgICMgRklYTUU6IEFkZCBhIHdh
eSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAotICAgICAgICAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKLSAgICAgICAg
Y3FvcQotICAgICAgICBpZGl2cSB0MQotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQotICAgICAg
ICBkaXZxcyB0MSwgdDAsIHQyCi0gICAgICAgIG11bHEgdDEsIHQyCi0gICAgICAgIHN1YnEgdDAs
IHQyLCB0MgotICAgIGVsc2lmIFJJU0NWNjQKLSAgICAgICAgcmVtcXMgdDEsIHQwCi0gICAgZWxz
ZQotICAgICAgICBlcnJvcgotICAgIGVuZAotCi0ucmV0dXJuOgotICAgIHJldHVybnEoY3R4LCB0
MikgIyByZHggaGFzIHRoZSByZW1haW5kZXIKLQotLnRocm93RGl2aXNpb25CeVplcm86Ci0gICAg
dGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCi1lbmQpCi0KLXdhc21PcChpNjRfcmVtX3Us
IFdhc21JNjRSZW1VLCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAg
ICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0KLSAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5
WmVybwotCi0gICAgaWYgWDg2XzY0Ci0gICAgICAgIHhvcnEgdDIsIHQyCi0gICAgICAgIHVkaXZx
IHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCi0gICAgICAgIGRpdnEgdDEsIHQwLCB0Mgot
ICAgICAgICBtdWxxIHQxLCB0MgotICAgICAgICBzdWJxIHQwLCB0MiwgdDIKLSAgICBlbHNpZiBS
SVNDVjY0Ci0gICAgICAgIHJlbXEgdDEsIHQwCi0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAg
IGVuZAotICAgIHJldHVybnEoY3R4LCB0MikKLQotLnRocm93RGl2aXNpb25CeVplcm86Ci0gICAg
dGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCi1lbmQpCi0KLXdhc21PcChpNjRfY3R6LCBX
YXNtSTY0Q3R6LCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCi0g
ICAgdHpjbnRxIHQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2
NF9wb3BjbnQsIFdhc21JNjRQb3BjbnQsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9v
cGVyYW5kLCBhMSkKLSAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCi0gICAgbW92ZSBQQywgYTAK
LSAgICBjQ2FsbDIoX3Nsb3dfcGF0aF93YXNtX3BvcGNvdW50bGwpCi0gICAgcmVzdG9yZVN0YXRl
QWZ0ZXJDQ2FsbCgpCi0gICAgcmV0dXJucShjdHgsIHIxKQotZW5kKQotCi13YXNtT3AoZjMyX3Ry
dW5jLCBXYXNtRjMyVHJ1bmMsIG1hY3JvIChjdHgpCit3YXNtUm91bmRpbmdPcChmMzJfdHJ1bmMs
IFdhc21GMzJUcnVuYywgbWFjcm8gKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0
MCkKICAgICB0cnVuY2F0ZWYgZnQwLCBmdDAKICAgICByZXR1cm5mKGN0eCwgZnQwKQogZW5kKQog
Ci13YXNtT3AoZjMyX25lYXJlc3QsIFdhc21GMzJOZWFyZXN0LCBtYWNybyAoY3R4KQord2FzbVJv
dW5kaW5nT3AoZjMyX25lYXJlc3QsIFdhc21GMzJOZWFyZXN0LCBtYWNybyAoY3R4KQogICAgIG1s
b2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIHJvdW5kZiBmdDAsIGZ0MAogICAgIHJldHVy
bmYoY3R4LCBmdDApCiBlbmQpCiAKLXdhc21PcChmNjRfdHJ1bmMsIFdhc21GNjRUcnVuYywgbWFj
cm8gKGN0eCkKK3dhc21Sb3VuZGluZ09wKGY2NF90cnVuYywgV2FzbUY2NFRydW5jLCBtYWNybyAo
Y3R4KQogICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIHRydW5jYXRlZCBmdDAs
IGZ0MAogICAgIHJldHVybmQoY3R4LCBmdDApCiBlbmQpCiAKLXdhc21PcChmNjRfbmVhcmVzdCwg
V2FzbUY2NE5lYXJlc3QsIG1hY3JvIChjdHgpCit3YXNtUm91bmRpbmdPcChmNjRfbmVhcmVzdCwg
V2FzbUY2NE5lYXJlc3QsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBm
dDApCiAgICAgcm91bmRkIGZ0MCwgZnQwCiAgICAgcmV0dXJuZChjdHgsIGZ0MCkKQEAgLTEyNzAs
MjQgKzEwNzAsNiBAQCB3YXNtT3AoaTMyX3RydW5jX3NfZjMyLCBXYXNtSTMyVHJ1bmNTRjMyLCBt
YWNybyAoY3R4KQogICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCiBlbmQpCiAK
LXdhc21PcChpMzJfdHJ1bmNfc19mNjQsIFdhc21JMzJUcnVuY1NGNjQsIG1hY3JvIChjdHgpCi0g
ICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YzFlMDAwMDAwMDIw
MDAwMCwgdDAgIyBJTlQzMl9NSU4gLSAxLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1
biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIG1vdmUgMHg0MWUwMDAwMDAwMDAw
MDAwLCB0MCAjIC1JTlQzMl9NSU4KLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAs
IGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIHRydW5jYXRlZDJpcyBmdDAsIHQwCi0gICAg
cmV0dXJuaShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJvd0V4Y2VwdGlv
bihPdXRPZkJvdW5kc1RydW5jKQotZW5kKQotCiB3YXNtT3AoaTMyX3RydW5jX3VfZjMyLCBXYXNt
STMyVHJ1bmNVRjMyLCBtYWNybyAoY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQw
KQogCkBAIC0xMzA2LDk2ICsxMDg4LDYgQEAgd2FzbU9wKGkzMl90cnVuY191X2YzMiwgV2FzbUkz
MlRydW5jVUYzMiwgbWFjcm8gKGN0eCkKICAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1Ry
dW5jKQogZW5kKQogCi13YXNtT3AoaTMyX3RydW5jX3VfZjY0LCBXYXNtSTMyVHJ1bmNVRjY0LCBt
YWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAw
eGJmZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRl
cXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgbW92ZSAweDQxZjAwMDAwMDAw
MDAwMDAsIHQwICMgSU5UMzJfTUlOICogLTIuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3Rl
cXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgdHJ1bmNhdGVkMmkgZnQwLCB0
MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dF
eGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY19zX2Yz
MiwgV2FzbUk2NFRydW5jU0YzMiwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGYoY3R4LCBtX29wZXJh
bmQsIGZ0MCkKLQotICAgIG1vdmUgMHhkZjAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4KLSAgICBmaTJm
IHQwLCBmdDEKLSAgICBiZmx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICBt
b3ZlIDB4NWYwMDAwMDAsIHQwICMgLUlOVDY0X01JTgotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJm
Z3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgdHJ1bmNhdGVmMnFzIGZ0
MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRo
cm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNf
c19mNjQsIFdhc21JNjRUcnVuY1NGNjQsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9v
cGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YzNlMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9N
SU4KLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1Ry
dW5jCi0KLSAgICBtb3ZlIDB4NDNlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCi0gICAg
ZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0K
LSAgICB0cnVuY2F0ZWQycXMgZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9m
Qm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKLWVuZCkK
LQotd2FzbU9wKGk2NF90cnVuY191X2YzMiwgV2FzbUk2NFRydW5jVUYzMiwgbWFjcm8gKGN0eCkK
LSAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhiZjgwMDAwMCwg
dDAgIyAtMS4wCi0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZsdGVxdW4gZnQwLCBmdDEsIC5vdXRP
ZkJvdW5kc1RydW5jCi0KLSAgICBtb3ZlIDB4NWY4MDAwMDAsIHQwICMgSU5UNjRfTUlOICogLTIu
MAotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNU
cnVuYwotCi0gICAgdHJ1bmNhdGVmMnEgZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQot
Lm91dE9mQm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykK
LWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY191X2Y2NCwgV2FzbUk2NFRydW5jVUY2NCwgbWFjcm8g
KGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhiZmYw
MDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIG1vdmUgMHg0M2YwMDAwMDAwMDAwMDAw
LCB0MCAjIElOVDY0X01JTiAqIC0yLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIHRydW5jYXRlZDJxIGZ0MCwgdDAKLSAg
ICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0
aW9uKE91dE9mQm91bmRzVHJ1bmMpCi1lbmQpCi0KIHdhc21PcChpMzJfdHJ1bmNfc2F0X2YzMl9z
LCBXYXNtSTMyVHJ1bmNTYXRGMzJTLCBtYWNybyAoY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3Bl
cmFuZCwgZnQwKQogCkBAIC0xNDI0LDM0ICsxMTE2LDYgQEAgd2FzbU9wKGkzMl90cnVuY19zYXRf
ZjMyX3MsIFdhc21JMzJUcnVuY1NhdEYzMlMsIG1hY3JvIChjdHgpCiAgICAgcmV0dXJuaShjdHgs
IHQwKQogZW5kKQogCi13YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfcywgV2FzbUkzMlRydW5jU2F0
RjY0UywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAg
IG1vdmUgMHhjMWUwMDAwMDAwMjAwMDAwLCB0MCAjIElOVDMyX01JTiAtIDEuMAotICAgIGZxMmQg
dDAsIGZ0MQotICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9y
TmFOCi0KLSAgICBtb3ZlIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UMzJfTUlOCi0gICAg
ZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0
TWF4Ci0KLSAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQot
Lm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKLSAgICBiZGVxIGZ0MCwgZnQwLCAub3V0T2ZC
b3VuZHNUcnVuY1NhdE1pbgotICAgIG1vdmUgMCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0K
LS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQzMl9NQVgp
LCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46Ci0g
ICAgbW92ZSAoY29uc3RleHByIElOVDMyX01JTiksIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQot
ZW5kKQotCiB3YXNtT3AoaTMyX3RydW5jX3NhdF9mMzJfdSwgV2FzbUkzMlRydW5jU2F0RjMyVSwg
bWFjcm8gKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKIApAQCAtMTQ3NSwx
NTIgKzExMzksMjIgQEAgd2FzbU9wKGkzMl90cnVuY19zYXRfZjMyX3UsIFdhc21JMzJUcnVuY1Nh
dEYzMlUsIG1hY3JvIChjdHgpCiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQogCi13YXNtT3Ao
aTMyX3RydW5jX3NhdF9mNjRfdSwgV2FzbUkzMlRydW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkKLSAg
ICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAw
MDAwLCB0MCAjIC0xLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1biBmdDAsIGZ0MSwg
Lm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KLQotICAgIG1vdmUgMHg0MWYwMDAwMDAwMDAwMDAwLCB0
MCAjIElOVDMyX01JTiAqIC0yLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAs
IGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQotICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAK
LSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgotICAgIG1v
dmUgMCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4
OgotICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UMzJfTUFYKSwgdDAKLSAgICByZXR1cm5pKGN0eCwg
dDApCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl9zLCBXYXNtSTY0VHJ1bmNTYXRG
MzJTLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAg
bW92ZSAweGRmMDAwMDAwLCB0MCAjIElOVDY0X01JTgotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJm
bHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTgotCi0gICAgbW92ZSAw
eDVmMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KLSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmd0ZXF1
biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQotICAgIHRydW5jYXRlZjJxcyBm
dDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9y
TmFOOgotICAgIGJmZXEgZnQwLCBmdDAsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCi0gICAgbW92
ZSAwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6
Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDY0X01BWCksIHQwCi0gICAgcmV0dXJucShjdHgsIHQw
KQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKLSAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRf
TUlOKSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNf
c2F0X2Y2NF9zLCBXYXNtSTY0VHJ1bmNTYXRGNjRTLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZChj
dHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGMzZTAwMDAwMDAwMDAwMDAsIHQwICMg
SU5UNjRfTUlOCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdHVuIGZ0MCwgZnQxLCAub3V0T2ZC
b3VuZHNUcnVuY1NhdE1pbk9yTmFOCi0KLSAgICBtb3ZlIDB4NDNlMDAwMDAwMDAwMDAwMCwgdDAg
IyAtSU5UNjRfTUlOCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5v
dXRPZkJvdW5kc1RydW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWQycXMgZnQwLCB0MAotICAgIHJl
dHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKLSAgICBiZGVx
IGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotICAgIG1vdmUgMCwgdDAKLSAgICBy
ZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1vdmUgKGNv
bnN0ZXhwciBJTlQ2NF9NQVgpLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91
bmRzVHJ1bmNTYXRNaW46Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDY0X01JTiksIHQwCi0gICAg
cmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3NhdF9mMzJfdSwgV2Fz
bUk2NFRydW5jU2F0RjMyVSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQs
IGZ0MCkKLQotICAgIG1vdmUgMHhiZjgwMDAwMCwgdDAgIyAtMS4wCi0gICAgZmkyZiB0MCwgZnQx
Ci0gICAgYmZsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCi0KLSAgICBt
b3ZlIDB4NWY4MDAwMDAsIHQwICMgSU5UNjRfTUlOICogLTIuMAotICAgIGZpMmYgdDAsIGZ0MQot
ICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1
bmNhdGVmMnEgZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1
bmNTYXRNaW46Ci0gICAgbW92ZSAwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9m
Qm91bmRzVHJ1bmNTYXRNYXg6Ci0gICAgbW92ZSAoY29uc3RleHByIFVJTlQ2NF9NQVgpLCB0MAot
ICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY19zYXRfZjY0X3Us
IFdhc21JNjRUcnVuY1NhdEY2NFUsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVy
YW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YmZmMDAwMDAwMDAwMDAwMCwgdDAgIyAtMS4wCi0gICAg
ZnEyZCB0MCwgZnQxCi0gICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0
TWluCi0KLSAgICBtb3ZlIDB4NDNmMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4w
Ci0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1Ry
dW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWQycSBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQw
KQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKLSAgICBtb3ZlIDAsIHQwCi0gICAgcmV0dXJu
cShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKLSAgICBtb3ZlIChjb25zdGV4
cHIgVUlOVDY0X01BWCksIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi0KLXdhc21P
cChmMzJfY29udmVydF91X2k2NCwgV2FzbUYzMkNvbnZlcnRVSTY0LCBtYWNybyAoY3R4KQord2Fz
bUk2NFRvRk9wKGYzMl9jb252ZXJ0X3VfaTY0LCBXYXNtRjMyQ29udmVydFVJNjQsIG1hY3JvIChj
dHgpCiAgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICBpZiBYODZfNjQKICAgICAg
ICAgY3EyZiB0MCwgdDEsIGZ0MAotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0
Ci0gICAgICAgIGNxMmYgdDAsIGZ0MAogICAgIGVsc2UKLSAgICAgICAgZXJyb3IKKyAgICAgICAg
Y3EyZiB0MCwgZnQwCiAgICAgZW5kCiAgICAgcmV0dXJuZihjdHgsIGZ0MCkKIGVuZCkKIAotd2Fz
bU9wKGY2NF9jb252ZXJ0X3VfaTY0LCBXYXNtRjY0Q29udmVydFVJNjQsIG1hY3JvIChjdHgpCit3
YXNtSTY0VG9GT3AoZjY0X2NvbnZlcnRfdV9pNjQsIFdhc21GNjRDb252ZXJ0VUk2NCwgbWFjcm8g
KGN0eCkKICAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQogICAgIGlmIFg4Nl82NAogICAg
ICAgICBjcTJkIHQwLCB0MSwgZnQwCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NW
NjQKLSAgICAgICAgY3EyZCB0MCwgZnQwCiAgICAgZWxzZQotICAgICAgICBlcnJvcgorICAgICAg
ICBjcTJkIHQwLCBmdDAKICAgICBlbmQKICAgICByZXR1cm5kKGN0eCwgZnQwKQogZW5kKQpAQCAt
MTYzMSw0NyArMTE2NSw2IEBAIHdhc21PcChpMzJfZXF6LCBXYXNtSTMyRXF6LCBtYWNybyhjdHgp
CiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQogCi13YXNtT3AoaTY0X3NobCwgV2FzbUk2NFNo
bCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4
LCBtX3JocywgdDEpCi0gICAgbHNoaWZ0cSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1l
bmQpCi0KLXdhc21PcChpNjRfc2hyX3UsIFdhc21JNjRTaHJVLCBtYWNybyhjdHgpCi0gICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLSAgICB1cnNo
aWZ0cSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfc2hy
X3MsIFdhc21JNjRTaHJTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQot
ICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLSAgICByc2hpZnRxIHQxLCB0MAotICAgIHJldHVy
bnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9yb3RyLCBXYXNtSTY0Um90ciwgbWFjcm8o
Y3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3Jocywg
dDEpCi0gICAgcnJvdGF0ZXEgdDEsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13
YXNtT3AoaTY0X3JvdGwsIFdhc21JNjRSb3RsLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwg
bV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLSAgICBscm90YXRlcSB0MSwg
dDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfZXF6LCBXYXNtSTY0
RXF6LCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBjcWVx
IHQwLCAwLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLWVuZCkKLQogd2FzbU9wKGYzMl9taW4s
IFdhc21GMzJNaW4sIG1hY3JvKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX2xocywgZnQwKQogICAg
IG1sb2FkZihjdHgsIG1fcmhzLCBmdDEpCkBAIC0xNzgxLDIzICsxMjc0LDYgQEAgd2FzbU9wKGY2
NF9tYXgsIFdhc21GNjRNYXgsIG1hY3JvKGN0eCkKICAgICByZXR1cm5kKGN0eCwgZnQxKQogZW5k
KQogCi13YXNtT3AoZjY0X2NvcHlzaWduLCBXYXNtRjY0Q29weXNpZ24sIG1hY3JvKGN0eCkKLSAg
ICBtbG9hZGQoY3R4LCBtX2xocywgZnQwKQotICAgIG1sb2FkZChjdHgsIG1fcmhzLCBmdDEpCi0K
LSAgICBmZDJxIGZ0MSwgdDEKLSAgICBtb3ZlIDB4ODAwMDAwMDAwMDAwMDAwMCwgdDIKLSAgICBh
bmRxIHQyLCB0MQotCi0gICAgZmQycSBmdDAsIHQwCi0gICAgbW92ZSAweDdmZmZmZmZmZmZmZmZm
ZmYsIHQyCi0gICAgYW5kcSB0MiwgdDAKLQotICAgIG9ycSB0MSwgdDAKLSAgICBmcTJkIHQwLCBm
dDAKLSAgICByZXR1cm5kKGN0eCwgZnQwKQotZW5kKQotCiB3YXNtT3AoZjMyX2NvbnZlcnRfdV9p
MzIsIFdhc21GMzJDb252ZXJ0VUkzMiwgbWFjcm8oY3R4KQogICAgIG1sb2FkaShjdHgsIG1fb3Bl
cmFuZCwgdDApCiAgICAgY2kyZiB0MCwgZnQwCkBAIC0xOTczLDEzNCArMTQ0OSw2IEBAIHdhc21P
cChpMzJfY2x6LCBXYXNtSTMyQ2x6LCBtYWNybyhjdHgpCiAgICAgcmV0dXJuaShjdHgsIHQxKQog
ZW5kKQogCi13YXNtT3AoaTY0X2FkZCwgV2FzbUk2NEFkZCwgbWFjcm8oY3R4KQotICAgIG1sb2Fk
cShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgYWRkcSB0
MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfc3ViLCBXYXNt
STY0U3ViLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2Fk
cShjdHgsIG1fcmhzLCB0MSkKLSAgICBzdWJxIHQxLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkK
LWVuZCkKLQotd2FzbU9wKGk2NF9tdWwsIFdhc21JNjRNdWwsIG1hY3JvKGN0eCkKLSAgICBtbG9h
ZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIG11bHEg
dDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X2FuZCwgV2Fz
bUk2NEFuZCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9h
ZHEoY3R4LCBtX3JocywgdDEpCi0gICAgYW5kcSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEp
Ci1lbmQpCi0KLXdhc21PcChpNjRfb3IsIFdhc21JNjRPciwgbWFjcm8oY3R4KQotICAgIG1sb2Fk
cShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgb3JxIHQw
LCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF94b3IsIFdhc21J
NjRYb3IsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRx
KGN0eCwgbV9yaHMsIHQxKQotICAgIHhvcnEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQot
ZW5kKQotCi13YXNtT3AoaTY0X2VxLCBXYXNtSTY0RXEsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEo
Y3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxZXEgdDAs
IHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdh
c21PcChpNjRfbmUsIFdhc21JNjROZSwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhz
LCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FuZXEgdDAsIHQxLCB0Mgot
ICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRf
bHRfcywgV2FzbUk2NEx0UywgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkK
LSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FsdCB0MCwgdDEsIHQyCi0gICAgYW5k
aSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9sZV9zLCBX
YXNtSTY0TGVTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1s
b2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWx0ZXEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwg
dDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfbHRfdSwgV2FzbUk2
NEx0VSwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEo
Y3R4LCBtX3JocywgdDEpCi0gICAgY3FiIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAg
cmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2xlX3UsIFdhc21JNjRMZVUsIG1h
Y3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9y
aHMsIHQxKQotICAgIGNxYmVxIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJu
aShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2d0X3MsIFdhc21JNjRHdFMsIG1hY3JvKGN0
eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQx
KQotICAgIGNxZ3QgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwg
dDIpCi1lbmQpCi0KLXdhc21PcChpNjRfZ2VfcywgV2FzbUk2NEdlUywgbWFjcm8oY3R4KQotICAg
IG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAg
Y3FndGVxIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQot
ZW5kKQotCi13YXNtT3AoaTY0X2d0X3UsIFdhc21JNjRHdFUsIG1hY3JvKGN0eCkKLSAgICBtbG9h
ZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxYSB0
MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQot
d2FzbU9wKGk2NF9nZV91LCBXYXNtSTY0R2VVLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwg
bV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWFlcSB0MCwgdDEs
IHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9w
KGk2NF9jbHosIFdhc21JNjRDbHosIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJh
bmQsIHQwKQotICAgIGx6Y250cSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0K
IHdhc21PcChmMzJfYWRkLCBXYXNtRjMyQWRkLCBtYWNybyhjdHgpCiAgICAgbWxvYWRmKGN0eCwg
bV9saHMsIGZ0MCkKICAgICBtbG9hZGYoY3R4LCBtX3JocywgZnQxKQpAQCAtMjE0MSwxMyArMTQ4
OSwxMyBAQCB3YXNtT3AoZjMyX25lZywgV2FzbUYzMk5lZywgbWFjcm8oY3R4KQogICAgIHJldHVy
bmYoY3R4LCBmdDEpCiBlbmQpCiAKLXdhc21PcChmMzJfY2VpbCwgV2FzbUYzMkNlaWwsIG1hY3Jv
KGN0eCkKK3dhc21Sb3VuZGluZ09wKGYzMl9jZWlsLCBXYXNtRjMyQ2VpbCwgbWFjcm8oY3R4KQog
ICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIGNlaWxmIGZ0MCwgZnQxCiAgICAg
cmV0dXJuZihjdHgsIGZ0MSkKIGVuZCkKIAotd2FzbU9wKGYzMl9mbG9vciwgV2FzbUYzMkZsb29y
LCBtYWNybyhjdHgpCit3YXNtUm91bmRpbmdPcChmMzJfZmxvb3IsIFdhc21GMzJGbG9vciwgbWFj
cm8oY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIGZsb29yZiBmdDAs
IGZ0MQogICAgIHJldHVybmYoY3R4LCBmdDEpCkBAIC0yMjQxLDEzICsxNTg5LDEzIEBAIHdhc21P
cChmNjRfbmVnLCBXYXNtRjY0TmVnLCBtYWNybyhjdHgpCiAgICAgcmV0dXJuZChjdHgsIGZ0MSkK
IGVuZCkKIAotd2FzbU9wKGY2NF9jZWlsLCBXYXNtRjY0Q2VpbCwgbWFjcm8oY3R4KQord2FzbVJv
dW5kaW5nT3AoZjY0X2NlaWwsIFdhc21GNjRDZWlsLCBtYWNybyhjdHgpCiAgICAgbWxvYWRkKGN0
eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgY2VpbGQgZnQwLCBmdDEKICAgICByZXR1cm5kKGN0eCwg
ZnQxKQogZW5kKQogCi13YXNtT3AoZjY0X2Zsb29yLCBXYXNtRjY0Rmxvb3IsIG1hY3JvKGN0eCkK
K3dhc21Sb3VuZGluZ09wKGY2NF9mbG9vciwgV2FzbUY2NEZsb29yLCBtYWNybyhjdHgpCiAgICAg
bWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgZmxvb3JkIGZ0MCwgZnQxCiAgICAgcmV0
dXJuZChjdHgsIGZ0MSkKQEAgLTIzMDIsNTAgKzE2NTAsMjAgQEAgd2FzbU9wKGY2NF9nZSwgV2Fz
bUY2NEdlLCBtYWNybyhjdHgpCiBlbmQpCiAKIHdhc21PcChpMzJfd3JhcF9pNjQsIFdhc21JMzJX
cmFwSTY0LCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBt
bG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQogICAgIHJldHVybmkoY3R4LCB0MCkKIGVuZCkKIAot
d2FzbU9wKGk2NF9leHRlbmRfc19pMzIsIFdhc21JNjRFeHRlbmRTSTMyLCBtYWNybyhjdHgpCi0g
ICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBzeGkycSB0MCwgdDEKLSAgICByZXR1
cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfZXh0ZW5kX3VfaTMyLCBXYXNtSTY0RXh0
ZW5kVUkzMiwgbWFjcm8oY3R4KQotICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAg
enhpMnEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCiB3YXNtT3AoaTMyX2V4
dGVuZDhfcywgV2FzbUkzMkV4dGVuZDhTLCBtYWNybyhjdHgpCiAgICAgbWxvYWRpKGN0eCwgbV9v
cGVyYW5kLCB0MCkKICAgICBzeGIyaSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCisgICAg
cmV0dXJuaShjdHgsIHQxKQogZW5kKQogCiB3YXNtT3AoaTMyX2V4dGVuZDE2X3MsIFdhc21JMzJF
eHRlbmQxNlMsIG1hY3JvKGN0eCkKICAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQogICAg
IHN4aDJpIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9l
eHRlbmQ4X3MsIFdhc21JNjRFeHRlbmQ4UywgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1f
b3BlcmFuZCwgdDApCi0gICAgc3hiMnEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5k
KQotCi13YXNtT3AoaTY0X2V4dGVuZDE2X3MsIFdhc21JNjRFeHRlbmQxNlMsIG1hY3JvKGN0eCkK
LSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIHN4aDJxIHQwLCB0MQotICAgIHJl
dHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9leHRlbmQzMl9zLCBXYXNtSTY0RXh0
ZW5kMTZTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBz
eGkycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCisgICAgcmV0dXJuaShjdHgsIHQxKQog
ZW5kKQogCiB3YXNtT3AoZjMyX2NvbnZlcnRfc19pMzIsIFdhc21GMzJDb252ZXJ0U0kzMiwgbWFj
cm8oY3R4KQpAQCAtMjM1NCw3ICsxNjcyLDcgQEAgd2FzbU9wKGYzMl9jb252ZXJ0X3NfaTMyLCBX
YXNtRjMyQ29udmVydFNJMzIsIG1hY3JvKGN0eCkKICAgICByZXR1cm5mKGN0eCwgZnQwKQogZW5k
KQogCi13YXNtT3AoZjMyX2NvbnZlcnRfc19pNjQsIFdhc21GMzJDb252ZXJ0U0k2NCwgbWFjcm8o
Y3R4KQord2FzbUk2NFRvRk9wKGYzMl9jb252ZXJ0X3NfaTY0LCBXYXNtRjMyQ29udmVydFNJNjQs
IG1hY3JvKGN0eCkKICAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQogICAgIGNxMmZzIHQw
LCBmdDAKICAgICByZXR1cm5mKGN0eCwgZnQwKQpAQCAtMjM3OCw3ICsxNjk2LDcgQEAgd2FzbU9w
KGY2NF9jb252ZXJ0X3NfaTMyLCBXYXNtRjY0Q29udmVydFNJMzIsIG1hY3JvKGN0eCkKICAgICBy
ZXR1cm5kKGN0eCwgZnQwKQogZW5kKQogCi13YXNtT3AoZjY0X2NvbnZlcnRfc19pNjQsIFdhc21G
NjRDb252ZXJ0U0k2NCwgbWFjcm8oY3R4KQord2FzbUk2NFRvRk9wKGY2NF9jb252ZXJ0X3NfaTY0
LCBXYXNtRjY0Q29udmVydFNJNjQsIG1hY3JvKGN0eCkKICAgICBtbG9hZHEoY3R4LCBtX29wZXJh
bmQsIHQwKQogICAgIGNxMmRzIHQwLCBmdDAKICAgICByZXR1cm5kKGN0eCwgZnQwKQpAQCAtMjM5
MCwzNCArMTcwOCwyOSBAQCB3YXNtT3AoZjY0X3Byb21vdGVfZjMyLCBXYXNtRjY0UHJvbW90ZUYz
MiwgbWFjcm8oY3R4KQogICAgIHJldHVybmQoY3R4LCBmdDEpCiBlbmQpCiAKLXdhc21PcChmNjRf
cmVpbnRlcnByZXRfaTY0LCBXYXNtRjY0UmVpbnRlcnByZXRJNjQsIG1hY3JvKGN0eCkKLSAgICBt
bG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIGZxMmQgdDAsIGZ0MAotICAgIHJldHVybmQo
Y3R4LCBmdDApCi1lbmQpCi0KIHdhc21PcChpMzJfcmVpbnRlcnByZXRfZjMyLCBXYXNtSTMyUmVp
bnRlcnByZXRGMzIsIG1hY3JvKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkK
ICAgICBmZjJpIGZ0MCwgdDAKICAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCiAKLXdhc21PcChp
NjRfcmVpbnRlcnByZXRfZjY0LCBXYXNtSTY0UmVpbnRlcnByZXRGNjQsIG1hY3JvKGN0eCkKLSAg
ICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLSAgICBmZDJxIGZ0MCwgdDAKLSAgICByZXR1
cm5xKGN0eCwgdDApCi1lbmQpCi0KIG1hY3JvIGRyb3BLZWVwKHN0YXJ0T2Zmc2V0LCBkcm9wLCBr
ZWVwKQogICAgIGxzaGlmdGkgMywgc3RhcnRPZmZzZXQKICAgICBzdWJwIGNmciwgc3RhcnRPZmZz
ZXQsIHN0YXJ0T2Zmc2V0CiAgICAgbmVnaSBkcm9wCitpZiBKU1ZBTFVFNjQKICAgICBzeGkycSBk
cm9wLCBkcm9wCitlbmQKIAogLmNvcHlMb29wOgogICAgIGJ0aXoga2VlcCwgLmRvbmUKK2lmIEpT
VkFMVUU2NAogICAgIGxvYWRxIFtzdGFydE9mZnNldCwgZHJvcCwgOF0sIHQ2CiAgICAgc3RvcmVx
IHQ2LCBbc3RhcnRPZmZzZXRdCitlbHNlCisgICAgbG9hZDJpYSBbc3RhcnRPZmZzZXQsIGRyb3As
IDhdLCB0NSwgdDYKKyAgICBzdG9yZTJpYSB0NSwgdDYsIFtzdGFydE9mZnNldF0KK2VuZAogICAg
IHN1YmkgMSwga2VlcAogICAgIHN1YnAgOCwgc3RhcnRPZmZzZXQKICAgICBqbXAgLmNvcHlMb29w
CkBAIC0yNDM1LDM4OSArMTc0OCw2IEBAIHdhc21PcChkcm9wX2tlZXAsIFdhc21Ecm9wS2VlcCwg
bWFjcm8oY3R4KQogICAgIGRpc3BhdGNoKGN0eCkKIGVuZCkKIAotbWFjcm8gd2FzbUF0b21pY0Jp
bmFyeVJNV09wcyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5iLCBmbmgsIGZu
aSwgZm5xKQotICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzglbG93ZXJDYXNlT3Bjb2RlJV91LCBX
YXNtSTY0QXRvbWljUm13OCV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAgICBt
bG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0
MSkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCi0gICAgICAgIGVtaXRDaGVja0Fu
ZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KGN0eCwgdDMsIHQxLCAxKQotICAgICAgICBmbmIo
dDAsIFt0M10sIHQyLCB0NSwgdDEpCi0gICAgICAgIGFuZHEgMHhmZiwgdDAgIyBGSVhNRTogWmVy
b0V4dGVuZDhUbzY0Ci0gICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmYsIC5v
ayBlbmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi0gICAgd2FzbU9wKGk2
NF9hdG9taWNfcm13MTYlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MTYldXBw
ZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVy
LCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShj
dHgsIG1fdmFsdWUsIHQwKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGlu
Z09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgMikKLSAgICAgICAgZm5oKHQw
LCBbdDNdLCB0MiwgdDUsIHQxKQotICAgICAgICBhbmRxIDB4ZmZmZiwgdDAgIyBGSVhNRTogWmVy
b0V4dGVuZDE2VG82NAotICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmZmYs
IC5vayBlbmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi0gICAgd2FzbU9w
KGk2NF9hdG9taWNfcm13MzIlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MzIl
dXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2lu
dGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1sb2Fk
cShjdHgsIG1fdmFsdWUsIHQwKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFk
ZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgNCkKLSAgICAgICAgZm5p
KHQwLCBbdDNdLCB0MiwgdDUsIHQxKQotICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQw
LCAweGZmZmZmZmZmLCAub2sgZW5kKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5k
KQotICAgIHdhc21PcChpNjRfYXRvbWljX3JtdyVsb3dlckNhc2VPcGNvZGUlLCBXYXNtSTY0QXRv
bWljUm13JXVwcGVyQ2FzZU9wY29kZSUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwg
bV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAg
IG1sb2FkcShjdHgsIG1fdmFsdWUsIHQwKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9p
bnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgOCkKLSAgICAg
ICAgZm5xKHQwLCBbdDNdLCB0MiwgdDUsIHQxKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0g
ICAgZW5kKQotZW5kCi0KLW1hY3JvIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhs
b3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5pLCBmbnEpCi0gICAgd2FzbUF0b21p
Y0JpbmFyeVJNV09wcyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwKLSAgICAgICAg
bWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIGlmIFg4
Nl82NAotICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCi0gICAgICAgICAgICAgICAg
bG9hZGIgbWVtLCB0MEdQUgotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbW92
ZSB0MEdQUiwgdDJHUFIKLSAgICAgICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQotICAgICAg
ICAgICAgICAgIGJhdG9taWN3ZWFrY2FzYiB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKLSAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIGxvYWRsaW5r
YWNxYiBtZW0sIHQxR1BSCi0gICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIp
Ci0gICAgICAgICAgICAgICAgc3RvcmVjb25kcmVsYiB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAg
ICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAotICAgICAgICAgICAgICAgIG1vdmUgdDFH
UFIsIHQwR1BSCi0gICAgICAgICAgICBlbmQKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgaWYgWDg2XzY0Ci0g
ICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKLSAgICAgICAgICAgICAgICBsb2FkaCBt
ZW0sIHQwR1BSCi0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BS
LCB0MkdQUgotICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAg
ICAgYmF0b21pY3dlYWtjYXNoIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAotICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbG9hZGxpbmthY3FoIG1l
bSwgdDFHUFIKLSAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAg
ICAgICAgICAgICBzdG9yZWNvbmRyZWxoIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICAg
ICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCi0gICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBH
UFIKLSAgICAgICAgICAgIGVuZAotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBpZiBYODZfNjQKLSAgICAgICAg
ICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgotICAgICAgICAgICAgICAgIGxvYWRpIG1lbSwgdDBH
UFIKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BS
Ci0gICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgICAgICBiYXRv
bWljd2Vha2Nhc2kgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCi0gICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBsb2FkbGlua2FjcWkgbWVtLCB0MUdQ
UgotICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAg
ICAgIHN0b3JlY29uZHJlbGkgdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgICAgICBiaW5l
cSB0NUdQUiwgMCwgLmxvb3AKLSAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAg
ICAgICAgICAgZW5kCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJH
UFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIGlmIFg4Nl82NAotICAgICAgICAgICAgICAg
IG1vdmUgdDBHUFIsIHQ1R1BSCi0gICAgICAgICAgICAgICAgbG9hZHEgbWVtLCB0MEdQUgotICAg
ICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKLSAgICAg
ICAgICAgICAgICBmbnEodDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgICAgIGJhdG9taWN3ZWFr
Y2FzcSB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIC5sb29wOgotICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxcSBtZW0sIHQxR1BSCi0gICAg
ICAgICAgICAgICAgZm5xKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAgICAgc3Rv
cmVjb25kcmVscSB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BS
LCAwLCAubG9vcAotICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0gICAgICAgICAg
ICBlbmQKLSAgICAgICAgZW5kKQotZW5kCi0KLWlmIFg4Nl82NAotICAgIHdhc21BdG9taWNCaW5h
cnlSTVdPcHMoX2FkZCwgQWRkLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVH
UFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkYiB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGggdDBHUFIsIG1l
bSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0
b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkcSB0MEdQUiwgbWVtIGVuZCkKLSAgICB3
YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9zdWIsIFN1YiwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1YmIgdDBHUFIsIG1lbSBlbmQsCi0g
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdz
dWJoIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVH
UFIsIHQxR1BSKSBhdG9taWN4Y2hnc3ViaSB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1YnEgdDBHUFIsIG1l
bSBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfeGNoZywgWGNoZywKLSAgICAgICAg
bWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2IgdDBHUFIs
IG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIp
IGF0b21pY3hjaGdoIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnaSB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAg
bWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3EgdDBHUFIs
IG1lbSBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9hbmQsIEFu
ZCwKLSAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgYW5kaSB0NUdQUiwg
dDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCi0gICAgICAg
ICAgICBhbmRxIHQ1R1BSLCB0MkdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFy
eVJNV09wc1dpdGhXZWFrQ0FTKF9vciwgT3IsCi0gICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikK
LSAgICAgICAgICAgIG9yaSB0NUdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNy
byh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBvcnEgdDVHUFIsIHQyR1BSCi0gICAgICAgIGVu
ZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3hvciwgWG9yLAotICAg
ICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICB4b3JpIHQ1R1BSLCB0MkdQUgot
ICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgIHhv
cnEgdDVHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLWVsc2lmIEFSTTY0RQotICAgIHdhc21BdG9t
aWNCaW5hcnlSTVdPcHMoX2FkZCwgQWRkLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQ
UiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0g
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdh
ZGRoIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJH
UFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAot
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
YWRkcSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhf
c3ViLCBTdWIsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIp
Ci0gICAgICAgICAgICBuZWdxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnYWRkYiB0MEdQ
UiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBuZWdxIHQwR1BSCi0gICAgICAgICAgICBh
dG9taWN4Y2hnYWRkaCB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBuZWdxIHQw
R1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAg
ICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0g
ICAgICAgICAgICBuZWdxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnYWRkcSB0MEdQUiwg
bWVtLCB0MEdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfYW5k
LCBBbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0g
ICAgICAgICAgICBub3RxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnY2xlYXJiIHQwR1BS
LCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJH
UFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIG5vdHEgdDBHUFIKLSAgICAgICAgICAgIGF0
b21pY3hjaGdjbGVhcmggdDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBt
YWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgbm90cSB0
MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFyaSB0MEdQUiwgbWVtLCB0MEdQUgotICAg
ICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIp
Ci0gICAgICAgICAgICBub3RxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnY2xlYXJxIHQw
R1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3Bz
KF9vciwgT3IsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIp
IGF0b21pY3hjaGdvcmIgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnb3JoIHQwR1BSLCBtZW0sIHQw
R1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikg
YXRvbWljeGNoZ29yaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcnEgdDBHUFIsIG1lbSwgdDBH
UFIgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hvciwgWG9yLAotICAgICAgICBt
YWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9yYiB0MEdQ
UiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQ
UiwgdDFHUFIpIGF0b21pY3hjaGd4b3JoIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAg
bWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmkgdDBH
UFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVH
UFIsIHQxR1BSKSBhdG9taWN4Y2hneG9ycSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQpCi0gICAgd2Fz
bUF0b21pY0JpbmFyeVJNV09wcyhfeGNoZywgWGNoZywKLSAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2IgdDBHUFIsIG1lbSwgdDBHUFIgZW5k
LAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4
Y2hnaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAg
ICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3Eg
dDBHUFIsIG1lbSwgdDBHUFIgZW5kKQotZWxzZQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNX
aXRoV2Vha0NBUyhfYWRkLCBBZGQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIp
Ci0gICAgICAgICAgICBhZGRpIHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAg
ICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgYWRkcSB0MEdQUiwg
dDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0
aFdlYWtDQVMoX3N1YiwgU3ViLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQot
ICAgICAgICAgICAgc3ViaSB0MUdQUiwgdDBHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAg
ICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIHN1YnEgdDFHUFIsIHQw
R1BSLCB0MkdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhX
ZWFrQ0FTKF94Y2hnLCBYY2hnLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQot
ICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNy
byh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKLSAg
ICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYW5kLCBB
bmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBhbmRp
IHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwg
dDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgYW5kcSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAg
ICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX29yLCBPciwK
LSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIG9yaSB0MEdQ
UiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BS
LCB0MkdQUikKLSAgICAgICAgICAgIG9ycSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVu
ZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3hvciwgWG9yLAotICAg
ICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgeG9yaSB0MEdQUiwg
dDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0
MkdQUikKLSAgICAgICAgICAgIHhvcnEgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQp
Ci1lbmQKLQotbWFjcm8gd2FzbUF0b21pY0NvbXBhcmVFeGNoYW5nZU9wcyhsb3dlckNhc2VPcGNv
ZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5iLCBmbmgsIGZuaSwgZm5xKQotICAgIHdhc21PcChpNjRf
YXRvbWljX3JtdzglbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13OCV1cHBlckNh
c2VPcGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQz
KQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxvYWRxKGN0eCwg
bV9leHBlY3RlZCwgdDApCi0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQotICAgICAg
ICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgsIHQzLCB0MSwgMSkK
LSAgICAgICAgZm5iKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQotICAgICAgICBhbmRxIDB4ZmYsIHQw
ICMgRklYTUU6IFplcm9FeHRlbmQ4VG82NAotICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVx
IHQwLCAweGZmLCAub2sgZW5kKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQot
ICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0
b21pY1JtdzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShj
dHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAg
ICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92
YWx1ZSwgdDIpCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0
V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCAyKQotICAgICAgICBmbmgodDAsIHQyLCBb
dDNdLCB0NSwgdDEpCi0gICAgICAgIGFuZHEgMHhmZmZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5k
MTZUbzY0Ci0gICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmZmZiwgLm9rIGVu
ZCkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAgICB3YXNtT3AoaTY0X2F0
b21pY19ybXczMiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXczMiV1cHBlckNh
c2VPcGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQz
KQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxvYWRxKGN0eCwg
bV9leHBlY3RlZCwgdDApCi0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQotICAgICAg
ICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVj
ayhjdHgsIHQzLCB0MSwgNCkKLSAgICAgICAgZm5pKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQotICAg
ICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmZmZmZmZmLCAub2sgZW5kKQotICAg
ICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdhc21PcChpNjRfYXRvbWljX3Jt
dyVsb3dlckNhc2VPcGNvZGUlLCBXYXNtSTY0QXRvbWljUm13JXVwcGVyQ2FzZU9wY29kZSUsIG1h
Y3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dl
dHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQw
KQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICAgICAgZW1pdENoZWNrQW5k
UHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEs
IDgpCi0gICAgICAgIGZucSh0MCwgdDIsIFt0M10sIHQ1LCB0MSkKLSAgICAgICAgcmV0dXJucShj
dHgsIHQwKQotICAgIGVuZCkKLWVuZAotCi0jIHQwR1BSID0+IGV4cGVjdGVkLCB0MkdQUiA9PiB2
YWx1ZSwgbWVtID0+IG1lbW9yeSByZWZlcmVuY2UKLXdhc21BdG9taWNDb21wYXJlRXhjaGFuZ2VP
cHMoX2NtcHhjaGcsIENtcHhjaGcsCi0gICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BS
LCB0MUdQUikKLSAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQotICAgICAgICAgICAgYnFhIHQw
R1BSICwgMHhmZiwgLmZhaWwKLSAgICAgICAgICAgIGF0b21pY3dlYWtjYXNiIHQwR1BSLCB0MkdQ
UiwgbWVtCi0gICAgICAgICAgICBqbXAgLmRvbmUKLSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAg
ICBhdG9taWNsb2FkYiBtZW0sIHQwR1BSCi0gICAgICAgIC5kb25lOgotICAgICAgICBlbHNlCi0g
ICAgICAgIC5sb29wOgotICAgICAgICAgICAgbG9hZGxpbmthY3FiIG1lbSwgdDFHUFIKLSAgICAg
ICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKLSAgICAgICAgICAgIHN0b3JlY29uZHJl
bGIgdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0g
ICAgICAgICAgICBqbXAgLmxvb3AKLSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAgICBzdG9yZWNv
bmRyZWxiIHQ1R1BSLCB0MUdQUiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9u
ZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAgICAgIC5kb25lOgotICAgICAgICAgICAgbW92
ZSB0MUdQUiwgdDBHUFIKLSAgICAgICAgZW5kCi0gICAgZW5kLAotICAgIG1hY3JvKHQwR1BSLCB0
MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKLSAg
ICAgICAgICAgIGJxYSB0MEdQUiwgMHhmZmZmLCAuZmFpbAotICAgICAgICAgICAgYXRvbWljd2Vh
a2Nhc2ggdDBHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgIGptcCAuZG9uZQotICAgICAgICAu
ZmFpbDoKLSAgICAgICAgICAgIGF0b21pY2xvYWRoIG1lbSwgdDBHUFIKLSAgICAgICAgLmRvbmU6
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICBsb2FkbGlua2FjcWgg
bWVtLCB0MUdQUgotICAgICAgICAgICAgYnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAotICAgICAg
ICAgICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgYmllcSB0
NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGptcCAubG9vcAotICAgICAgICAuZmFpbDoKLSAg
ICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQxR1BSLCBtZW0KLSAgICAgICAgICAgIGJp
ZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBqbXAgLmxvb3AKLSAgICAgICAgLmRvbmU6
Ci0gICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAgICAgICBlbmQKLSAgICBlbmQsCi0g
ICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgaWYgWDg2
XzY0IG9yIEFSTTY0RQotICAgICAgICAgICAgYnFhIHQwR1BSLCAweGZmZmZmZmZmLCAuZmFpbAot
ICAgICAgICAgICAgYXRvbWljd2Vha2Nhc2kgdDBHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAg
IGptcCAuZG9uZQotICAgICAgICAuZmFpbDoKLSAgICAgICAgICAgIGF0b21pY2xvYWRpIG1lbSwg
dDBHUFIKLSAgICAgICAgLmRvbmU6Ci0gICAgICAgIGVsc2UKLSAgICAgICAgLmxvb3A6Ci0gICAg
ICAgICAgICBsb2FkbGlua2FjcWkgbWVtLCB0MUdQUgotICAgICAgICAgICAgYnFuZXEgdDBHUFIs
IHQxR1BSLCAuZmFpbAotICAgICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwgdDJHUFIsIG1l
bQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGptcCAubG9v
cAotICAgICAgICAuZmFpbDoKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbGkgdDVHUFIsIHQxR1BS
LCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBqbXAg
Lmxvb3AKLSAgICAgICAgLmRvbmU6Ci0gICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAg
ICAgICBlbmQKLSAgICBlbmQsCi0gICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BSLCB0
MUdQUikKLSAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQotICAgICAgICAgICAgYXRvbWljd2Vh
a2Nhc3EgdDBHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgZWxzZQotICAgICAgICAubG9vcDoKLSAg
ICAgICAgICAgIGxvYWRsaW5rYWNxcSBtZW0sIHQxR1BSCi0gICAgICAgICAgICBicW5lcSB0MEdQ
UiwgdDFHUFIsIC5mYWlsCi0gICAgICAgICAgICBzdG9yZWNvbmRyZWxxIHQ1R1BSLCB0MkdQUiwg
bWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5s
b29wCi0gICAgICAgIC5mYWlsOgotICAgICAgICAgICAgc3RvcmVjb25kcmVscSB0NUdQUiwgdDFH
UFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGpt
cCAubG9vcAotICAgICAgICAuZG9uZToKLSAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0g
ICAgICAgIGVuZAotICAgIGVuZCkKLQogd2FzbU9wKGF0b21pY19mZW5jZSwgV2FzbURyb3BLZWVw
LCBtYWNybyhjdHgpCiAgICAgZmVuY2UKICAgICBkaXNwYXRjaChjdHgpCkBAIC0yODQ2LDkgKzE3
NzYsMTQgQEAgbWFjcm8gY29tbW9uQ2F0Y2hJbXBsKGN0eCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAg
ICAgY29udmVydENhbGxlZVRvVk0odDMpCiAgICAgcmVzdG9yZUNhbGxlZVNhdmVzRnJvbVZNRW50
cnlGcmFtZUNhbGxlZVNhdmVzQnVmZmVyKHQzLCB0MCkKIAotICAgIGxvYWRwIFZNOjpjYWxsZWVG
b3JXYXNtQ2F0Y2hbdDNdLCB3czEKLSAgICBzdG9yZXAgMCwgVk06OmNhbGxlZUZvcldhc21DYXRj
aFt0M10KLSAgICBzdG9yZXAgd3MxLCBDYWxsZWVbY2ZyXQorICAgIGxvYWRwIFZNOjpjYWxsZWVG
b3JXYXNtQ2F0Y2ggKyBQYXlsb2FkT2Zmc2V0W3QzXSwgd3MxCisgICAgc3RvcmVwIDAsIFZNOjpj
YWxsZWVGb3JXYXNtQ2F0Y2ggKyBQYXlsb2FkT2Zmc2V0W3QzXQorICAgIHN0b3JlcCB3czEsIENh
bGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXQoraWYgbm90IEpTVkFMVUU2NAorICAgIGxvYWRpIFZN
OjpjYWxsZWVGb3JXYXNtQ2F0Y2ggKyBUYWdPZmZzZXRbdDNdLCB3czEKKyAgICBzdG9yZWkgRW1w
dHlWYWx1ZVRhZywgVk06OmNhbGxlZUZvcldhc21DYXRjaCArIFRhZ09mZnNldFt0M10KKyAgICBz
dG9yZWkgd3MxLCBDYWxsZWUgKyBUYWdPZmZzZXRbY2ZyXQorZW5kCiAKICAgICBsb2FkcCBWTTo6
Y2FsbEZyYW1lRm9yQ2F0Y2hbdDNdLCBjZnIKICAgICBzdG9yZXAgMCwgVk06OmNhbGxGcmFtZUZv
ckNhdGNoW3QzXQpAQCAtMjg4Nyw4ICsxODIyLDEzIEBAIG1hY3JvIGNhdGNoSW1wbChjdHgsIHN0
b3JlV2FzbUluc3RhbmNlKQogCiAuY29weUxvb3A6CiAgICAgYnRpeiB0MywgLmRvbmUKK2lmIEpT
VkFMVUU2NAogICAgIGxvYWRxIFt0MV0sIHQ2CiAgICAgc3RvcmVxIHQ2LCBbdDJdCitlbHNlCisg
ICAgbG9hZDJpYSBbdDFdLCB0NSwgdDYKKyAgICBzdG9yZTJpYSB0NSwgdDYsIFt0Ml0KK2VuZAog
ICAgIHN1YmkgMSwgdDMKICAgICAjIEZJWE1FOiBVc2UgYXJtIHN0b3JlLWFkZC9zdWIgaW5zdHJ1
Y3Rpb25zIGluIHdhc20gTExJbnQgY2F0Y2gKICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzEyMTAKQEAgLTI5MTYsMyArMTg1NiwxMCBAQCBlbmQpCiBjb21t
b25XYXNtT3Aod2FzbV9jYXRjaF9hbGxfbm9fdGxzLCBXYXNtQ2F0Y2hBbGwsIG1hY3JvKCkgZW5k
LCBtYWNybyhjdHgpCiAgICAgY2F0Y2hBbGxJbXBsKGN0eCwgbWFjcm8oaW5zdGFuY2UpIGVuZCkK
IGVuZCkKKworIyBWYWx1ZS1yZXByZXNlbnRhdGlvbi1zcGVjaWZpYyBjb2RlLgoraWYgSlNWQUxV
RTY0CisgICAgaW5jbHVkZSBXZWJBc3NlbWJseTY0CitlbHNlCisgICAgaW5jbHVkZSBXZWJBc3Nl
bWJseTMyXzY0CitlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9X
ZWJBc3NlbWJseTMyXzY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3Nl
bWJseTMyXzY0LmFzbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNTgzMDRlOWZhMTEwNmNkMWM2MDk3ODA4YWU2NmU0
YzFmMTQ2MWQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L1dlYkFzc2VtYmx5MzJfNjQuYXNtCkBAIC0wLDAgKzEsMTEyOSBAQAorIyBDb3B5cmlnaHQgKEMp
IDIwMTEtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAo
QykgMjAyMSBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
IyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBDb25zdGFudHMKKworY29uc3QgTXN3T2Zmc2V0
ID0gNAorY29uc3QgTHN3T2Zmc2V0ID0gMAorCisjIE9wY29kZXMgdGhhdCBzaG91bGQgZXZlbnR1
YWxseSBiZSBzaGFyZWQgd2l0aCBKUyBsbGludAorCit3YXNtT3AobW92LCBXYXNtTW92LCBtYWNy
byhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fc3JjLCB0MSwgdDApCisgICAgcmV0dXJuMmkoY3R4
LCB0MSwgdDApCitlbmQpCisKKyMgV2FzbSBzcGVjaWZpYyBieXRlY29kZXMKKworbWFjcm8gZW1p
dENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQocG9pbnRlciwgb2Zmc2V0LCBzaXpl
KQorICAgICMgVGhpcyBtYWNybyB1cGRhdGVzICdwb2ludGVyJyB0byB0YXJnZXQgYWRkcmVzcywg
YW5kIG1heSB0aHJhc2ggJ29mZnNldCcKK2lmIEFSTXY3CisgICAgIyBOb3QgZW5vdWdoIHJlZ2lz
dGVycyBvbiBhcm0gdG8ga2VlcCB0aGUgbWVtb3J5IGJhc2UgYW5kIHNpemUgaW4gcGlubmVkCisg
ICAgIyByZWdpc3RlcnMsIHNvIGxvYWQgdGhlbSBvbiBlYWNoIGFjY2VzcyBpbnN0ZWFkLiBGSVhN
RTogaW1wcm92ZSB0aGlzLgorICAgIGFkZHBzIG9mZnNldCwgcG9pbnRlcgorICAgIGJjcyAudGhy
b3cKKyAgICBhZGRwcyBzaXplIC0gMSwgcG9pbnRlciwgb2Zmc2V0ICMgVXNlIG9mZnNldCBhcyBz
Y3JhdGNoIHJlZ2lzdGVyCisgICAgYmNzIC50aHJvdworICAgIGJwYiBvZmZzZXQsIFdhc206Oklu
c3RhbmNlOjptX2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZVt3YXNtSW5zdGFuY2VdLCAuY29udGlu
dWF0aW9uCisudGhyb3c6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nl
c3MpCisuY29udGludWF0aW9uOgorICAgIGFkZHAgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkTWVt
b3J5W3dhc21JbnN0YW5jZV0sIHBvaW50ZXIKK2Vsc2UKKyAgICBjcmFzaCgpCitlbmQKK2VuZAor
CittYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1l
bnRDaGVjayhwb2ludGVyLCBvZmZzZXQsIHNpemUpCisgICAgIyBUaGlzIG1hY3JvIHVwZGF0ZXMg
J3BvaW50ZXInIHRvIHRhcmdldCBhZGRyZXNzLCBhbmQgbWF5IHRocmFzaCAnb2Zmc2V0JworaWYg
QVJNdjcKKyAgICAjIE5vdCBlbm91Z2ggcmVnaXN0ZXJzIG9uIGFybSB0byBrZWVwIHRoZSBtZW1v
cnkgYmFzZSBhbmQgc2l6ZSBpbiBwaW5uZWQKKyAgICAjIHJlZ2lzdGVycywgc28gbG9hZCB0aGVt
IG9uIGVhY2ggYWNjZXNzIGluc3RlYWQuIEZJWE1FOiBpbXByb3ZlIHRoaXMuCisgICAgYWRkcHMg
b2Zmc2V0LCBwb2ludGVyCisgICAgYmNzIC50aHJvdworICAgIGFkZHBzIHNpemUgLSAxLCBwb2lu
dGVyLCBvZmZzZXQgIyBVc2Ugb2Zmc2V0IGFzIHNjcmF0Y2ggcmVnaXN0ZXIKKyAgICBiY3MgLnRo
cm93CisgICAgYnBiIG9mZnNldCwgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkQm91bmRzQ2hlY2tp
bmdTaXplW3dhc21JbnN0YW5jZV0sIC5jb250aW51YXRpb24KKy50aHJvdzoKKyAgICB0aHJvd0V4
Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKKy5jb250aW51YXRpb246CisgICAgYWRk
cCBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRNZW1vcnlbd2FzbUluc3RhbmNlXSwgcG9pbnRlcgor
ICAgIGJ0cG56IHBvaW50ZXIsIChzaXplIC0gMSksIC50aHJvdworZWxzZQorICAgIGNyYXNoKCkK
K2VuZAorZW5kCisKK21hY3JvIHdhc21Mb2FkT3AobmFtZSwgc3RydWN0LCBzaXplLCBmbikKKyAg
ICB3YXNtT3AobmFtZSwgc3RydWN0LCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1f
cG9pbnRlciwgdDApCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBl
bWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldCh0MCwgdDEsIHNpemUpCisgICAg
ICAgIGZuKHQwLCB0MywgdDIpCisgICAgICAgIHJldHVybjJpKGN0eCwgdDMsIHQyKQorICAgIGVu
ZCkKK2VuZAorCit3YXNtTG9hZE9wKGxvYWQ4X3UsIFdhc21Mb2FkOFUsIDEsIG1hY3JvKGFkZHIs
IGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRiIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAg
bW92ZSAwLCBkc3RNc3cKK2VuZCkKK3dhc21Mb2FkT3AobG9hZDE2X3UsIFdhc21Mb2FkMTZVLCAy
LCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkaCBMc3dPZmZzZXRbYWRkcl0s
IGRzdExzdworICAgIG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGxvYWQzMl91LCBX
YXNtTG9hZDMyVSwgNCwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGkgTHN3
T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdworZW5kKQord2FzbUxvYWRP
cChsb2FkNjRfdSwgV2FzbUxvYWQ2NFUsIDgsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQor
ICAgICMgTWlnaHQgYmUgdW5hbGlnbmVkLCBzbyBjYW4ndCB1c2UgbG9hZDJpYQorICAgIGxvYWRp
IExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAgbG9hZGkgTXN3T2Zmc2V0W2FkZHJdLCBkc3RN
c3cKK2VuZCkKKword2FzbUxvYWRPcChpMzJfbG9hZDhfcywgV2FzbUkzMkxvYWQ4UywgMSwgbWFj
cm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGJzaSBMc3dPZmZzZXRbYWRkcl0sIGRz
dExzdworICAgIG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGkzMl9sb2FkMTZfcywg
V2FzbUkzMkxvYWQxNlMsIDIsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRo
c2kgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdworZW5kKQord2Fz
bUxvYWRPcChpNjRfbG9hZDhfcywgV2FzbUk2NExvYWQ4UywgMSwgbWFjcm8oYWRkciwgZHN0TXN3
LCBkc3RMc3cpCisgICAgbG9hZGJzaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAgIHJzaGlm
dGkgZHN0THN3LCAzMSwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGk2NF9sb2FkMTZfcywgV2Fz
bUk2NExvYWQxNlMsIDIsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRoc2kg
THN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICByc2hpZnRpIGRzdExzdywgMzEsIGRzdE1zdwor
ZW5kKQord2FzbUxvYWRPcChpNjRfbG9hZDMyX3MsIFdhc21JNjRMb2FkMzJTLCA0LCBtYWNybyhh
ZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdwor
ICAgIHJzaGlmdGkgZHN0THN3LCAzMSwgZHN0TXN3CitlbmQpCisKK21hY3JvIHdhc21TdG9yZU9w
KG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4pCisgICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8o
Y3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQorICAgICAgICB3Z2V0dShj
dHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRp
bmdPZmZzZXQodDAsIHQxLCBzaXplKQorICAgICAgICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwgdDMs
IHQyKQorICAgICAgICBmbih0MywgdDIsIHQwKQorICAgICAgICBkaXNwYXRjaChjdHgpCisgICAg
ZW5kKQorZW5kCisKK3dhc21TdG9yZU9wKHN0b3JlOCwgV2FzbVN0b3JlOCwgMSwgbWFjcm8oc3Jj
TXN3LCBzcmNMc3csIGFkZHIpCisgICAgc3RvcmViIHNyY0xzdywgTHN3T2Zmc2V0W2FkZHJdCitl
bmQpCit3YXNtU3RvcmVPcChzdG9yZTE2LCBXYXNtU3RvcmUxNiwgMiwgbWFjcm8oc3JjTXN3LCBz
cmNMc3csIGFkZHIpCisgICAgc3RvcmVoIHNyY0xzdywgTHN3T2Zmc2V0W2FkZHJdCitlbmQpCit3
YXNtU3RvcmVPcChzdG9yZTMyLCBXYXNtU3RvcmUzMiwgNCwgbWFjcm8oc3JjTXN3LCBzcmNMc3cs
IGFkZHIpCisgICAgc3RvcmVpIHNyY0xzdywgTHN3T2Zmc2V0W2FkZHJdCitlbmQpCit3YXNtU3Rv
cmVPcChzdG9yZTY0LCBXYXNtU3RvcmU2NCwgOCwgbWFjcm8oc3JjTXN3LCBzcmNMc3csIGFkZHIp
CisgICAgIyBNaWdodCBiZSB1bmFsaWduZWQsIHNvIGNhbid0IHVzZSBzdG9yZTJpYQorICAgIHN0
b3JlaSBzcmNMc3csIExzd09mZnNldFthZGRyXQorICAgIHN0b3JlaSBzcmNNc3csIE1zd09mZnNl
dFthZGRyXQorZW5kKQorCit3YXNtT3AocmVmX2lzX251bGwsIFdhc21SZWZJc051bGwsIG1hY3Jv
KGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yZWYsIHQxLCB0MCkgIyB0MCBpcyB1bnVzZWQKKyAg
ICBjaWVxIHQxLCBOdWxsVGFnLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKword2Fz
bU9wKGdldF9nbG9iYWwsIFdhc21HZXRHbG9iYWwsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBXYXNt
OjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4LCBt
X2dsb2JhbEluZGV4LCB0MSkKKyAgICBsb2FkMmlhIFt0MCwgdDEsIDhdLCB0MCwgdDEKKyAgICBy
ZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKHNldF9nbG9iYWwsIFdhc21TZXRH
bG9iYWwsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dh
c21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBt
bG9hZDJpKGN0eCwgbV92YWx1ZSwgdDMsIHQyKQorICAgIHN0b3JlMmlhIHQyLCB0MywgW3QwLCB0
MSwgOF0KKyAgICBkaXNwYXRjaChjdHgpCitlbmQpCisKK3dhc21PcChnZXRfZ2xvYmFsX3BvcnRh
YmxlX2JpbmRpbmcsIFdhc21HZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkKKyAg
ICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAg
d2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBsb2FkcCBbdDAsIHQxLCA4XSwgdDAK
KyAgICBsb2FkMmlhIFt0MF0sIHQwLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5k
KQorCit3YXNtT3Aoc2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNtU2V0R2xvYmFsUG9y
dGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xv
YmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEp
CisgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQzLCB0MikKKyAgICBsb2FkcCBbdDAsIHQxLCA4
XSwgdDAKKyAgICBzdG9yZTJpYSB0MiwgdDMsIFt0MF0KKyAgICBkaXNwYXRjaChjdHgpCitlbmQp
CisKKyMgT3Bjb2RlcyB0aGF0IGRvbid0IGhhdmUgdGhlIGBiM29wYCBlbnRyeSBpbiB3YXNtLmpz
b24uIFRoaXMgc2hvdWxkIGJlIGtlcHQgaW4gc3luYworCittYWNybyBjYWxsRGl2UmVtKGZuKQor
aWYgQVJNdjcKKyAgICBzdWJwIFN0YWNrQWxpZ25tZW50LCBzcAorICAgIHN0b3JlcCBQQywgW3Nw
XQorICAgIGNDYWxsNChmbikKKyAgICBsb2FkcCBbc3BdLCBQQworICAgIGFkZHAgU3RhY2tBbGln
bm1lbnQsIHNwCitlbHNlCisgICAgZXJyb3IKK2VuZAorZW5kCisKKyMgaTMyIGJpbmFyeSBvcHMK
Kword2FzbU9wKGkzMl9kaXZfcywgV2FzbUkzMkRpdlMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRp
KGN0eCwgbV9saHMsIGEwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCBhMSkKKworICAgIGJ0aXog
YTEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBiaW5lcSBhMSwgLTEsIC5zYWZlCisgICAg
YmllcSBhMCwgY29uc3RleHByIElOVDMyX01JTiwgLnRocm93SW50ZWdlck92ZXJmbG93CisKKy5z
YWZlOgorICAgIGNhbGxEaXZSZW0oX3Nsb3dfcGF0aF93YXNtX2kzMl9kaXZfcykKKyAgICByZXR1
cm5pKGN0eCwgcjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9u
KERpdmlzaW9uQnlaZXJvKQorCisudGhyb3dJbnRlZ2VyT3ZlcmZsb3c6CisgICAgdGhyb3dFeGNl
cHRpb24oSW50ZWdlck92ZXJmbG93KQorZW5kKQorCit3YXNtT3AoaTMyX2Rpdl91LCBXYXNtSTMy
RGl2VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgYTApCisgICAgbWxvYWRp
KGN0eCwgbV9yaHMsIGExKQorCisgICAgYnRpeiBhMSwgLnRocm93RGl2aXNpb25CeVplcm8KKwor
ICAgIGNhbGxEaXZSZW0oX3Nsb3dfcGF0aF93YXNtX2kzMl9kaXZfdSkKKyAgICByZXR1cm5pKGN0
eCwgcjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlz
aW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTMyX3JlbV9zLCBXYXNtSTMyUmVtUywgbWFjcm8g
KGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgYTApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMs
IGExKQorCisgICAgYnRpeiBhMSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGJpbmVxIGEx
LCAtMSwgLnNhZmUKKyAgICBiaW5lcSBhMCwgY29uc3RleHByIElOVDMyX01JTiwgLnNhZmUKKwor
ICAgIG1vdmUgMCwgcjAKKyAgICBqbXAgLnJldHVybgorCisuc2FmZToKKyAgICBjYWxsRGl2UmVt
KF9zbG93X3BhdGhfd2FzbV9pMzJfcmVtX3MpCisKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgs
IHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lv
bkJ5WmVybykKK2VuZCkKKword2FzbU9wKGkzMl9yZW1fdSwgV2FzbUkzMlJlbVUsIG1hY3JvIChj
dHgpCisgICAgbWxvYWRpKGN0eCwgbV9saHMsIGEwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCBh
MSkKKworICAgIGJ0aXogYTEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBjYWxsRGl2UmVt
KF9zbG93X3BhdGhfd2FzbV9pMzJfcmVtX3UpCisgICAgcmV0dXJuaShjdHgsIHIwKQorCisudGhy
b3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2Vu
ZCkKKworIyBpNjQgYmluYXJ5IG9wcworCit3YXNtT3AoaTY0X2FkZCwgV2FzbUk2NEFkZCwgbWFj
cm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4
LCBtX3JocywgdDMsIHQyKQorICAgIGFkZGlzIHQyLCB0MAorICAgIGFkY2kgIHQzLCB0MQorICAg
IHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3N1YiwgV2FzbUk2NFN1
YiwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2Fk
MmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIHN1YmlzIHQyLCB0MAorICAgIHNiY2kgIHQzLCB0
MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X211bCwgV2Fz
bUk2NE11bCwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAg
IG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG11bGkgdDIsIHQxCisgICAgbXVsaSB0
MCwgdDMKKyAgICB1bXVsbGkgdDAsIHQyLCB0MCwgdDIKKyAgICBhZGRpIHQxLCB0MgorICAgIGFk
ZGkgdDMsIHQyCisgICAgcmV0dXJuMmkoY3R4LCB0MiwgdDApCitlbmQpCisKK3dhc21PcChpNjRf
ZGl2X3MsIFdhc21JNjREaXZTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywg
YTEsIGEwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgYTMsIGEyKQorCisgICAgYnRpbnogYTMs
IC5ub25aZXJvRGl2aXNvcgorICAgIGJ0aXogYTIsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKy5u
b25aZXJvRGl2aXNvcjoKKyAgICBiaW5lcSBhMywgLTEsIC5zYWZlCisgICAgYmluZXEgYTIsIC0x
LCAuc2FmZQorICAgIGJpbmVxIGExLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAuc2FmZQorICAgIGJ0
aXogYTAsIC50aHJvd0ludGVnZXJPdmVyZmxvdworCisuc2FmZToKKyAgICBjYWxsRGl2UmVtKF9z
bG93X3BhdGhfd2FzbV9pNjRfZGl2X3MpCisgICAgcmV0dXJuMmkoY3R4LCByMSwgcjApCisKKy50
aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQor
CisudGhyb3dJbnRlZ2VyT3ZlcmZsb3c6CisgICAgdGhyb3dFeGNlcHRpb24oSW50ZWdlck92ZXJm
bG93KQorZW5kKQorCit3YXNtT3AoaTY0X2Rpdl91LCBXYXNtSTY0RGl2VSwgbWFjcm8gKGN0eCkK
KyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIGExLCBhMCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMs
IGEzLCBhMikKKworICAgIGJ0aW56IGEzLCAubm9uWmVyb0Rpdmlzb3IKKyAgICBidGl6IGEyLCAu
dGhyb3dEaXZpc2lvbkJ5WmVybworCisubm9uWmVyb0Rpdmlzb3I6CisgICAgY2FsbERpdlJlbShf
c2xvd19wYXRoX3dhc21faTY0X2Rpdl91KQorICAgIHJldHVybjJpKGN0eCwgcjEsIHIwKQorCisu
dGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykK
K2VuZCkKKword2FzbU9wKGk2NF9yZW1fcywgV2FzbUk2NFJlbVMsIG1hY3JvIChjdHgpCisgICAg
bWxvYWQyaShjdHgsIG1fbGhzLCBhMSwgYTApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCBhMywg
YTIpCisKKyAgICBidGlueiBhMywgLm5vblplcm9EaXZpc29yCisgICAgYnRpeiBhMiwgLnRocm93
RGl2aXNpb25CeVplcm8KKworLm5vblplcm9EaXZpc29yOgorICAgIGJpbmVxIGEzLCAtMSwgLnNh
ZmUKKyAgICBiaW5lcSBhMiwgLTEsIC5zYWZlCisgICAgYmluZXEgYTEsIGNvbnN0ZXhwciBJTlQz
Ml9NSU4sIC5zYWZlCisgICAgYnRpbnogYTAsIC5zYWZlCisKKyAgICBtb3ZlIDAsIHIxCisgICAg
bW92ZSAwLCByMAorICAgIGptcCAucmV0dXJuCisKKy5zYWZlOgorICAgIGNhbGxEaXZSZW0oX3Ns
b3dfcGF0aF93YXNtX2k2NF9yZW1fcykKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIHIx
LCByMCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNp
b25CeVplcm8pCitlbmQpCisKK3dhc21PcChpNjRfcmVtX3UsIFdhc21JNjRSZW1VLCBtYWNybyAo
Y3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgYTEsIGEwKQorICAgIG1sb2FkMmkoY3R4LCBt
X3JocywgYTMsIGEyKQorCisgICAgYnRpbnogYTMsIC5ub25aZXJvRGl2aXNvcgorICAgIGJ0aXog
YTIsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKy5ub25aZXJvRGl2aXNvcjoKKyAgICBjYWxsRGl2
UmVtKF9zbG93X3BhdGhfd2FzbV9pNjRfcmVtX3UpCisgICAgcmV0dXJuMmkoY3R4LCByMSwgcjAp
CisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnla
ZXJvKQorZW5kKQorCit3YXNtT3AoaTY0X2FuZCwgV2FzbUk2NEFuZCwgbWFjcm8oY3R4KQorICAg
IG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMs
IHQyKQorICAgIGFuZGkgdDIsIHQwCisgICAgYW5kaSB0MywgdDEKKyAgICByZXR1cm4yaShjdHgs
IHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9vciwgV2FzbUk2NE9yLCBtYWNybyhjdHgpCisg
ICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0
MywgdDIpCisgICAgb3JpIHQyLCB0MAorICAgIG9yaSB0MywgdDEKKyAgICByZXR1cm4yaShjdHgs
IHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF94b3IsIFdhc21JNjRYb3IsIG1hY3JvKGN0eCkK
KyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMs
IHQzLCB0MikKKyAgICB4b3JpIHQyLCB0MAorICAgIHhvcmkgdDMsIHQxCisgICAgcmV0dXJuMmko
Y3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfc2hsLCBXYXNtSTY0U2hsLCBtYWNybyhj
dHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWRpKGN0eCwgbV9y
aHMsIHQyKQorCisgICAgYW5kaSAweDNmLCB0MgorICAgIGJ0aXogdDIsIC5yZXR1cm4KKyAgICBi
aWIgdDIsIDMyLCAubGVzc1RoYW4zMgorCisgICAgc3ViaSAzMiwgdDIKKyAgICBsc2hpZnRpIHQw
LCB0MiwgdDEKKyAgICBtb3ZlIDAsIHQwCisgICAgam1wIC5yZXR1cm4KKworLmxlc3NUaGFuMzI6
CisgICAgbHNoaWZ0aSB0MiwgdDEKKyAgICBtb3ZlIDMyLCB0MworICAgIHN1YmkgdDIsIHQzCisg
ICAgdXJzaGlmdGkgdDAsIHQzLCB0MworICAgIG9yaSB0MywgdDEKKyAgICBsc2hpZnRpIHQyLCB0
MAorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3Ao
aTY0X3Nocl91LCBXYXNtSTY0U2hyVSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xo
cywgdDEsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MikKKworICAgIGFuZGkgMHgzZiwg
dDIKKyAgICBidGl6IHQyLCAucmV0dXJuCisgICAgYmliIHQyLCAzMiwgLmxlc3NUaGFuMzIKKwor
ICAgIHN1YmkgMzIsIHQyCisgICAgdXJzaGlmdGkgdDEsIHQyLCB0MAorICAgIG1vdmUgMCwgdDEK
KyAgICBqbXAgLnJldHVybgorCisubGVzc1RoYW4zMjoKKyAgICB1cnNoaWZ0aSB0MiwgdDAKKyAg
ICBtb3ZlIDMyLCB0MworICAgIHN1YmkgdDIsIHQzCisgICAgbHNoaWZ0aSB0MSwgdDMsIHQzCisg
ICAgb3JpIHQzLCB0MAorICAgIHVyc2hpZnRpIHQyLCB0MQorCisucmV0dXJuOgorICAgIHJldHVy
bjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3Nocl9zLCBXYXNtSTY0U2hyUywg
bWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkaShj
dHgsIG1fcmhzLCB0MikKKworICAgIGFuZGkgMHgzZiwgdDIKKyAgICBidGl6IHQyLCAucmV0dXJu
CisgICAgYmliIHQyLCAzMiwgLmxlc3NUaGFuMzIKKworICAgIHN1YmkgMzIsIHQyCisgICAgcnNo
aWZ0aSB0MSwgdDIsIHQwCisgICAgcnNoaWZ0aSAzMSwgdDEKKyAgICBqbXAgLnJldHVybgorCisu
bGVzc1RoYW4zMjoKKyAgICB1cnNoaWZ0aSB0MiwgdDAKKyAgICBtb3ZlIDMyLCB0MworICAgIHN1
YmkgdDIsIHQzCisgICAgbHNoaWZ0aSB0MSwgdDMsIHQzCisgICAgb3JpIHQzLCB0MAorICAgIHJz
aGlmdGkgdDIsIHQxCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQp
CisKK3dhc21PcChpNjRfcm90ciwgV2FzbUk2NFJvdHIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJp
KGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDIpCisKKyAgICBh
bmRpIHQyLCAweDIwLCB0MworICAgIGJ0aXogdDMsIC5ub1N3YXAKKworICAgIG1vdmUgdDAsIHQz
CisgICAgbW92ZSB0MSwgdDAKKyAgICBtb3ZlIHQzLCB0MQorCisubm9Td2FwOgorICAgIGFuZGkg
MHgxZiwgdDIKKyAgICBidGl6IHQyLCAucmV0dXJuCisKKyAgICBtb3ZlIDMyLCB0NQorICAgIHN1
YmkgdDIsIHQ1CisgICAgbHNoaWZ0aSB0MCwgdDUsIHQzCisgICAgbHNoaWZ0aSB0MSwgdDUsIHQ1
CisgICAgdXJzaGlmdGkgdDIsIHQwCisgICAgdXJzaGlmdGkgdDIsIHQxCisgICAgb3JpIHQ1LCB0
MAorICAgIG9yaSB0MywgdDEKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkK
K2VuZCkKKword2FzbU9wKGk2NF9yb3RsLCBXYXNtSTY0Um90bCwgbWFjcm8oY3R4KQorICAgIG1s
b2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MikKKwor
ICAgIGFuZGkgdDIsIDB4MjAsIHQzCisgICAgYnRpeiB0MywgLm5vU3dhcAorCisgICAgbW92ZSB0
MCwgdDMKKyAgICBtb3ZlIHQxLCB0MAorICAgIG1vdmUgdDMsIHQxCisKKy5ub1N3YXA6CisgICAg
YW5kaSAweDFmLCB0MgorICAgIGJ0aXogdDIsIC5yZXR1cm4KKworICAgIG1vdmUgMzIsIHQ1Cisg
ICAgc3ViaSB0MiwgdDUKKyAgICB1cnNoaWZ0aSB0MCwgdDUsIHQzCisgICAgdXJzaGlmdGkgdDEs
IHQ1LCB0NQorICAgIGxzaGlmdGkgdDIsIHQwCisgICAgbHNoaWZ0aSB0MiwgdDEKKyAgICBvcmkg
dDUsIHQwCisgICAgb3JpIHQzLCB0MQorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgdDEs
IHQwKQorZW5kKQorCit3YXNtT3AoaTY0X2VxLCBXYXNtSTY0RXEsIG1hY3JvKGN0eCkKKyAgICBt
bG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0
MikKKyAgICBtb3ZlIDAsIHQ2CisgICAgYmluZXEgdDEsIHQzLCAucmV0dXJuCisgICAgY2llcSB0
MCwgdDIsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9w
KGk2NF9uZSwgV2FzbUk2NE5lLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0
MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0Ngor
ICAgIGJpbmVxIHQxLCB0MywgLnJldHVybgorICAgIGNpbmVxIHQwLCB0MiwgdDYKKy5yZXR1cm46
CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2x0X3MsIFdhc21JNjRM
dFMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9h
ZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlsdCB0MSwgdDMs
IC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAgICBj
aWIgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgs
IHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2xlX3MsIFdhc21JNjRMZVMsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQz
LCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlsdCB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3Zl
IDAsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWJlcSB0MCwgdDIsIHQ2Cisg
ICAgYW5kaSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dh
c21PcChpNjRfbHRfdSwgV2FzbUk2NEx0VSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBt
X2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUg
MSwgdDYKKyAgICBiaWIgdDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpYSB0
MSwgdDMsIC5yZXR1cm4KKyAgICBjaWIgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1
cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2xlX3UsIFdhc21J
NjRMZVUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBt
bG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmliIHQxLCB0
MywgLnJldHVybgorICAgIG1vdmUgMCwgdDYKKyAgICBiaWEgdDEsIHQzLCAucmV0dXJuCisgICAg
Y2liZXEgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShj
dHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2d0X3MsIFdhc21JNjRHdFMsIG1hY3JvKGN0eCkK
KyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMs
IHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAgICBt
b3ZlIDAsIHQ2CisgICAgYmlsdCB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWEgdDAsIHQyLCB0Ngor
ICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3
YXNtT3AoaTY0X2dlX3MsIFdhc21JNjRHZVMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwg
bV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3Zl
IDEsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAgYmls
dCB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWFlcSB0MCwgdDIsIHQ2CisgICAgYW5kaSAxLCB0Ngor
LnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRfZ3RfdSwg
V2FzbUk2NEd0VSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQor
ICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYKKyAgICBiaWEg
dDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpYiB0MSwgdDMsIC5yZXR1cm4K
KyAgICBjaWEgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJu
aShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2dlX3UsIFdhc21JNjRHZVUsIG1hY3JvKGN0
eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9y
aHMsIHQzLCB0MikKKyAgICBtb3ZlIDAsIHQ2CisgICAgYmliIHQxLCB0MywgLnJldHVybgorICAg
IG1vdmUgMSwgdDYKKyAgICBiaWEgdDEsIHQzLCAucmV0dXJuCisgICAgY2lhZXEgdDAsIHQyLCB0
NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQor
CisjIGk2NCB1bmFyeSBvcHMKKword2FzbU9wKGk2NF9jdHosIFdhc21JNjRDdHosIG1hY3JvIChj
dHgpCisgICAgbWxvYWQyaShjdHgsIG1fb3BlcmFuZCwgdDEsIHQwKQorICAgIGJ0aXogdDAsIC50
b3AKKworICAgIHR6Y250aSB0MCwgdDAKKyAgICBqbXAgLnJldHVybgorCisudG9wOgorICAgIHR6
Y250aSB0MSwgdDAKKyAgICBhZGRpIDMyLCB0MAorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0
eCwgMCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfY2x6LCBXYXNtSTY0Q2x6LCBtYWNybyhjdHgp
CisgICAgbWxvYWQyaShjdHgsIG1fb3BlcmFuZCwgdDEsIHQwKQorICAgIGJ0aXogdDEsIC5ib3R0
b20KKworICAgIGx6Y250aSB0MSwgdDAKKyAgICBqbXAgLnJldHVybgorCisuYm90dG9tOgorICAg
IGx6Y250aSB0MCwgdDAKKyAgICBhZGRpIDMyLCB0MAorCisucmV0dXJuOgorICAgIHJldHVybjJp
KGN0eCwgMCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfcG9wY250LCBXYXNtSTY0UG9wY250LCBt
YWNybyAoY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIGEzLCBhMikKKyAgICBwcmVw
YXJlU3RhdGVGb3JDQ2FsbCgpCisgICAgbW92ZSBQQywgYTAKKyAgICBjQ2FsbDIoX3Nsb3dfcGF0
aF93YXNtX3BvcGNvdW50bGwpCisgICAgcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCisgICAgcmV0
dXJuMmkoY3R4LCAwLCByMSkKK2VuZCkKKword2FzbU9wKGk2NF9lcXosIFdhc21JNjRFcXosIG1h
Y3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9vcGVyYW5kLCB0MSwgdDApCisgICAgbW92ZSAw
LCB0MgorICAgIGJ0aW56IHQxLCAucmV0dXJuCisgICAgY2llcSB0MCwgMCwgdDIKKy5yZXR1cm46
CisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCisjIGY2NCBiaW5hcnkgb3BzCisKK3dhc21P
cChmNjRfY29weXNpZ24sIFdhc21GNjRDb3B5c2lnbiwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmko
Y3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKSAjIHQy
IHVudXNlZAorCisgICAgYW5kaSAweDdmZmZmZmZmLCB0MQorICAgIGFuZGkgMHg4MDAwMDAwMCwg
dDMKKyAgICBvcmkgdDMsIHQxCisKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKwor
IyBUeXBlIGNvbnZlcnNpb24gb3BzCisKK3dhc21PcChpNjRfZXh0ZW5kX3NfaTMyLCBXYXNtSTY0
RXh0ZW5kU0kzMiwgbWFjcm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisg
ICAgcnNoaWZ0aSB0MCwgMzEsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisK
K3dhc21PcChpNjRfZXh0ZW5kX3VfaTMyLCBXYXNtSTY0RXh0ZW5kVUkzMiwgbWFjcm8oY3R4KQor
ICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgcmV0dXJuMmkoY3R4LCAwLCB0MCkK
K2VuZCkKKword2FzbU9wKGY2NF9yZWludGVycHJldF9pNjQsIFdhc21GNjRSZWludGVycHJldEk2
NCwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIHQxLCB0MCkKKyAgICBm
aWkyZCB0MCwgdDEsIGZ0MAorICAgIHJldHVybmQoY3R4LCBmdDApCitlbmQpCisKK3dhc21PcChp
NjRfcmVpbnRlcnByZXRfZjY0LCBXYXNtSTY0UmVpbnRlcnByZXRGNjQsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKyAgICBmZDJpaSBmdDAsIHQwLCB0MQorICAg
IHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NfZjY0LCBX
YXNtSTMyVHJ1bmNTRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwg
ZnQwKQorCisgICAgbW92ZWlpIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDEsIHQwICMgSU5UMzJfTUlO
IC0gMS4wCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91
dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmVpaSAweDQxZTAwMDAwMDAwMDAwMDAsIHQxLCB0MCAj
IC1JTlQzMl9NSU4KKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQx
LCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVkMmlzIGZ0MCwgdDAKKyAgICByZXR1
cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91
dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfdV9mNjQsIFdhc21JMzJU
cnVuY1VGNjQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisK
KyAgICBtb3ZlaWkgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MSwgdDAgIyAtMS4wCisgICAgZmlpMmQg
dDAsIHQxLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKwor
ICAgIG1vdmVpaSAweDQxZjAwMDAwMDAwMDAwMDAsIHQxLCB0MCAjIElOVDMyX01JTiAqIC0yLjAK
KyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3Vu
ZHNUcnVuYworCisgICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkK
KworLm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVu
YykKK2VuZCkKKworc2xvd1dhc21PcChpNjRfdHJ1bmNfc19mMzIpCitzbG93V2FzbU9wKGk2NF90
cnVuY191X2YzMikKK3Nsb3dXYXNtT3AoaTY0X3RydW5jX3NfZjY0KQorc2xvd1dhc21PcChpNjRf
dHJ1bmNfdV9mNjQpCisKK3dhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTMyVHJ1bmNT
YXRGNjRTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisg
ICAgbW92ZWlpIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDEsIHQwICMgSU5UMzJfTUlOIC0gMS4wCisg
ICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmNTYXRNaW5Pck5hTgorCisgICAgbW92ZWlpIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDEsIHQw
ICMgLUlOVDMyX01JTgorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBm
dDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAor
ICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKKyAg
ICBiZGVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorICAgIG1vdmUgMCwgdDAK
KyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAgIG1v
dmUgKGNvbnN0ZXhwciBJTlQzMl9NQVgpLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91
dE9mQm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAoY29uc3RleHByIElOVDMyX01JTiksIHQw
CisgICAgcmV0dXJuaShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRf
dSwgV2FzbUkzMlRydW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29w
ZXJhbmQsIGZ0MCkKKworICAgIG1vdmVpaSAweGJmZjAwMDAwMDAwMDAwMDAsIHQxLCB0MCAjIC0x
LjAKKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZC
b3VuZHNUcnVuY1NhdE1pbgorCisgICAgbW92ZWlpIDB4NDFmMDAwMDAwMDAwMDAwMCwgdDEsIHQw
ICMgSU5UMzJfTUlOICogLTIuMAorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRndGVxdW4g
ZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQyaSBmdDAs
IHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAg
ICBtb3ZlIDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDMyX01BWCksIHQwCisgICAgcmV0dXJuaShj
dHgsIHQwKQorZW5kKQorCitzbG93V2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3MpCitzbG93V2Fz
bU9wKGk2NF90cnVuY19zYXRfZjMyX3UpCitzbG93V2FzbU9wKGk2NF90cnVuY19zYXRfZjY0X3Mp
CitzbG93V2FzbU9wKGk2NF90cnVuY19zYXRfZjY0X3UpCisKKyMgRXh0ZW5kIG9wcworCit3YXNt
T3AoaTY0X2V4dGVuZDhfcywgV2FzbUk2NEV4dGVuZDhTLCBtYWNybyhjdHgpCisgICAgbWxvYWRp
KGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBzeGIyaSB0MCwgdDAKKyAgICByc2hpZnRpIHQwLCAz
MSwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9leHRl
bmQxNl9zLCBXYXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9v
cGVyYW5kLCB0MCkKKyAgICBzeGgyaSB0MCwgdDAKKyAgICByc2hpZnRpIHQwLCAzMSwgdDEKKyAg
ICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9leHRlbmQzMl9zLCBX
YXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0
MCkKKyAgICByc2hpZnRpIHQwLCAzMSwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2Vu
ZCkKKworIyBBdG9taWNzCisKK21hY3JvIHdhc21BdG9taWNCaW5hcnlSTVdPcHMobG93ZXJDYXNl
T3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmksIGZuMmkpCisgICAgd2FzbU9w
KGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4JXVw
cGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRl
ciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZGko
Y3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRp
bmdPZmZzZXQodDMsIHQ1LCAxKQorICAgICAgICBmbmIodDAsIFt0M10sIHQyLCB0NSwgdDYpCisg
ICAgICAgIGFuZGkgMHhmZiwgdDYgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0CisgICAgICAgIGFz
c2VydChtYWNybyhvaykgYmliZXEgdDYsIDB4ZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybjJp
KGN0eCwgMCwgdDYpCisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzE2JWxvd2Vy
Q2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNy
byhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1
KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3ZhbHVlLCB0MCkKKyAg
ICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50
Q2hlY2sodDMsIHQ1LCAyKQorICAgICAgICBmbmgodDAsIFt0M10sIHQyLCB0NSwgdDYpCisgICAg
ICAgIGFuZGkgMHhmZmZmLCB0NiAjIEZJWE1FOiBaZXJvRXh0ZW5kMTZUbzY0CisgICAgICAgIGFz
c2VydChtYWNybyhvaykgYmliZXEgdDYsIDB4ZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJu
MmkoY3R4LCAwLCB0NikKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MzIlbG93
ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MzIldXBwZXJDYXNlT3Bjb2RlJVUsIG1h
Y3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dl
dHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkaShjdHgsIG1fdmFsdWUsIHQwKQor
ICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1l
bnRDaGVjayh0MywgdDUsIDQpCisgICAgICAgIGZuaSh0MCwgW3QzXSwgdDIsIHQ1LCB0NikKKyAg
ICAgICAgcmV0dXJuMmkoY3R4LCAwLCB0NikKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9t
aWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21JNjRBdG9taWNSbXcldXBwZXJDYXNlT3Bjb2Rl
JSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAg
ICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUs
IHQxLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRX
aXRoQWxpZ25tZW50Q2hlY2sodDMsIHQ1LCA4KQorICAgICAgICBwdXNoIHQ0ICMgVGhpcyBpcyB0
aGUgUEIsIHNvIG5lZWQgdG8gYmUgc2F2ZWQgYW5kIHJlc3RvcmVkCisgICAgICAgIGZuMmkodDEs
IHQwLCBbdDNdLCB0NCwgdDIsIHQ1LCB0NywgdDYpCisgICAgICAgIHBvcCB0NAorICAgICAgICBy
ZXR1cm4yaShjdHgsIHQ3LCB0NikKKyAgICBlbmQpCitlbmQKKworbWFjcm8gd2FzbUF0b21pY0Jp
bmFyeVJNV09wc1dpdGhXZWFrQ0FTKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBm
bmksIGZuMmkpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhsb3dlckNhc2VPcGNvZGUsIHVw
cGVyQ2FzZU9wY29kZSwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
NkdQUikKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAg
ICAgICAgICAgbG9hZGxpbmtiIG1lbSwgdDZHUFIKKyAgICAgICAgICAgICAgICBmbmkodDBHUFIs
IHQ2R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmRiIHQ1R1BSLCB0MkdQUiwg
bWVtCisgICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAg
ICAgZmVuY2UKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwg
dDVHUFIsIHQ2R1BSKQorICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgICAgICAubG9vcDoK
KyAgICAgICAgICAgICAgICBsb2FkbGlua2ggbWVtLCB0NkdQUgorICAgICAgICAgICAgICAgIGZu
aSh0MEdQUiwgdDZHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29uZGggdDVHUFIs
IHQyR1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAg
ICAgICAgICAgICBmZW5jZQorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDZHUFIpCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAg
IC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5raSBtZW0sIHQ2R1BSCisgICAgICAgICAg
ICAgICAgZm5pKHQwR1BSLCB0NkdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgc3RvcmVjb25k
aSB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9v
cAorICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDFH
UFIsIHQwR1BSLCBtZW0sIHQ0R1BSLCB0MkdQUiwgdDVHUFIsIHQ3R1BSLCB0NkdQUikKKyAgICAg
ICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9h
ZGxpbmsyaSBtZW0sIHQ2R1BSLCB0N0dQUgorICAgICAgICAgICAgICAgIGZuMmkodDFHUFIsIHQw
R1BSLCB0N0dQUiwgdDZHUFIsIHQ0R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNv
bmQyaSB0NUdQUiwgdDJHUFIsIHQ0R1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0NUdQ
UiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAgICBlbmQpCitlbmQKKwor
aWYgQVJNdjcKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FkZCwgQWRk
LAorICAgICAgICBtYWNybyhzcmMwLCBzcmMxLCBkc3QpCisgICAgICAgICAgICBhZGRpIHNyYzAs
IHNyYzEsIGRzdAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHNyYzBNc3csIHNyYzBMc3cs
IHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0THN3KQorICAgICAgICAgICAgYWRkaXMgc3Jj
MExzdywgc3JjMUxzdywgZHN0THN3CisgICAgICAgICAgICBhZGNpICBzcmMwTXN3LCBzcmMxTXN3
LCBkc3RNc3cKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vh
a0NBUyhfc3ViLCBTdWIsCisgICAgICAgIG1hY3JvKHNyYzAsIHNyYzEsIGRzdCkKKyAgICAgICAg
ICAgIHN1Ymkgc3JjMSwgc3JjMCwgZHN0CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8oc3Jj
ME1zdywgc3JjMExzdywgc3JjMU1zdywgc3JjMUxzdywgZHN0TXN3LCBkc3RMc3cpCisgICAgICAg
ICAgICBzdWJpcyBzcmMxTHN3LCBzcmMwTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIHNiY2kgIHNy
YzFNc3csIHNyYzBNc3csIGRzdE1zdworICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFy
eVJNV09wc1dpdGhXZWFrQ0FTKF94Y2hnLCBYY2hnLAorICAgICAgICBtYWNybyhzcmMwLCBzcmMx
LCBkc3QpCisgICAgICAgICAgICBtb3ZlIHNyYzAsIGRzdAorICAgICAgICBlbmQsCisgICAgICAg
IG1hY3JvKHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0THN3
KQorICAgICAgICAgICAgbW92ZSBzcmMwTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIG1vdmUgc3Jj
ME1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0
aFdlYWtDQVMoX2FuZCwgQW5kLAorICAgICAgICBtYWNybyhzcmMwLCBzcmMxLCBkc3QpCisgICAg
ICAgICAgICBhbmRpIHNyYzAsIHNyYzEsIGRzdAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3Jv
KHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0THN3KQorICAg
ICAgICAgICAgYW5kaSBzcmMwTHN3LCBzcmMxTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIGFuZGkg
c3JjME1zdywgc3JjMU1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmlu
YXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX29yLCBPciwKKyAgICAgICAgbWFjcm8oc3JjMCwgc3JjMSwg
ZHN0KQorICAgICAgICAgICAgb3JpIHNyYzAsIHNyYzEsIGRzdAorICAgICAgICBlbmQsCisgICAg
ICAgIG1hY3JvKHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0
THN3KQorICAgICAgICAgICAgb3JpIHNyYzBMc3csIHNyYzFMc3csIGRzdExzdworICAgICAgICAg
ICAgb3JpIHNyYzBNc3csIHNyYzFNc3csIGRzdE1zdworICAgICAgICBlbmQpCisgICAgd2FzbUF0
b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwKKyAgICAgICAgbWFjcm8oc3Jj
MCwgc3JjMSwgZHN0KQorICAgICAgICAgICAgeG9yaSBzcmMwLCBzcmMxLCBkc3QKKyAgICAgICAg
ZW5kLAorICAgICAgICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3LCBzcmMxTXN3LCBzcmMxTHN3LCBk
c3RNc3csIGRzdExzdykKKyAgICAgICAgICAgIHhvcmkgc3JjMExzdywgc3JjMUxzdywgZHN0THN3
CisgICAgICAgICAgICB4b3JpIHNyYzBNc3csIHNyYzFNc3csIGRzdE1zdworICAgICAgICBlbmQp
CitlbmQKKworbWFjcm8gd2FzbUF0b21pY0NvbXBhcmVFeGNoYW5nZU9wcyhsb3dlckNhc2VPcGNv
ZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5iLCBmbmgsIGZuaSwgZm4yaSkKKyAgICB3YXNtT3AoaTY0
X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzgldXBwZXJD
YXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0
MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkMmkoY3R4
LCBtX2V4cGVjdGVkLCB0MSwgdDApCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVlLCB0Nywg
dDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KHQzLCB0
NSwgMSkKKyAgICAgICAgZm5iKHQxLCB0MCwgdDcsIHQyLCBbdDNdLCB0NiwgdDUpCisgICAgICAg
IGFuZGkgMHhmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0CisgICAgICAgIGFzc2VydCht
YWNybyhvaykgYmliZXEgdDAsIDB4ZmYsIC5vayBlbmQpCisgICAgICAgIGFzc2VydChtYWNybyhv
aykgYmllcSB0MSwgMCwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCisg
ICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9wY29kZSVfdSwg
V2FzbUk2NEF0b21pY1JtdzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAg
IG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQs
IHQ1KQorICAgICAgICBtbG9hZDJpKGN0eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAgICBt
bG9hZDJpKGN0eCwgbV92YWx1ZSwgdDcsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJl
UG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0MywgdDUsIDIpCisgICAgICAg
IGZuaCh0MSwgdDAsIHQ3LCB0MiwgW3QzXSwgdDYsIHQ1KQorICAgICAgICBhbmRpIDB4ZmZmZiwg
dDAgIyBGSVhNRTogWmVyb0V4dGVuZDE2VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJp
YmVxIHQwLCAweGZmZmYsIC5vayBlbmQpCisgICAgICAgIGFzc2VydChtYWNybyhvaykgYmllcSB0
MSwgMCwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCisgICAgZW5kKQor
ICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0
b21pY1JtdzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShj
dHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAg
ICAgICBtbG9hZDJpKGN0eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAgICBtbG9hZDJpKGN0
eCwgbV92YWx1ZSwgdDcsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFk
ZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0MywgdDUsIDgpCisgICAgICAgIGZuaSh0MSwg
dDAsIHQ3LCB0MiwgW3QzXSwgdDYsIHQ1KQorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJpZXEg
dDEsIDAsIC5vayBlbmQpCisgICAgICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorICAgIGVuZCkK
KyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0b21p
Y1JtdyV1cHBlckNhc2VPcGNvZGUlLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1f
cG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBt
bG9hZDJpKGN0eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAgICBtbG9hZDJpKGN0eCwgbV92
YWx1ZSwgdDcsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09m
ZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0MywgdDUsIDgpCisgICAgICAgIHB1c2ggdDQgIyBUaGlz
IGlzIHRoZSBQQiwgc28gbmVlZCB0byBiZSBzYXZlZCBhbmQgcmVzdG9yZWQKKyAgICAgICAgZm4y
aSh0MSwgdDAsIHQ3LCB0MiwgW3QzXSwgdDQsIHQ2LCB0NSkKKyAgICAgICAgcG9wIHQ0CisgICAg
ICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorICAgIGVuZCkKK2VuZAorCitpZiBBUk12NworLy8g
ZXhwOiAiZXhwZWN0ZWQiLCB2YWw6ICJ2YWx1ZSIsIHJlczogInJlc3VsdCIKK3dhc21BdG9taWND
b21wYXJlRXhjaGFuZ2VPcHMoX2NtcHhjaGcsIENtcHhjaGcsCisgICAgbWFjcm8oZXhwTXN3LCBl
eHBMc3csIHZhbE1zdywgdmFsTHN3LCBtZW0sIHNjcmF0Y2gsIHJlc0xzdykKKyAgICAgICAgICAg
IGZlbmNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmtiIG1lbSwgcmVzTHN3
CisgICAgICAgICAgICBiaW5lcSBleHBMc3csIHJlc0xzdywgLmZhaWwKKyAgICAgICAgICAgIGJp
bmVxIGV4cE1zdywgMCwgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZGIgc2NyYXRjaCwgdmFs
THN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAgICAg
IGptcCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZGIgc2NyYXRj
aCwgcmVzTHN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAg
ICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIGZlbmNlCisgICAg
ICAgICAgICBtb3ZlIHJlc0xzdywgZXhwTHN3CisgICAgICAgICAgICBtb3ZlIDAsIGV4cE1zdwor
ICAgIGVuZCwKKyAgICBtYWNybyhleHBNc3csIGV4cExzdywgdmFsTXN3LCB2YWxMc3csIG1lbSwg
c2NyYXRjaCwgcmVzTHN3KQorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgLmxvb3A6CisgICAg
ICAgICAgICBsb2FkbGlua2ggbWVtLCByZXNMc3cKKyAgICAgICAgICAgIGJpbmVxIGV4cExzdywg
cmVzTHN3LCAuZmFpbAorICAgICAgICAgICAgYmluZXEgZXhwTXN3LCAwLCAuZmFpbAorICAgICAg
ICAgICAgc3RvcmVjb25kaCBzY3JhdGNoLCB2YWxMc3csIG1lbQorICAgICAgICAgICAgYmllcSBz
Y3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgor
ICAgICAgICAgICAgc3RvcmVjb25kaCBzY3JhdGNoLCByZXNMc3csIG1lbQorICAgICAgICAgICAg
YmllcSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5k
b25lOgorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIG1vdmUgcmVzTHN3LCBleHBMc3cK
KyAgICAgICAgICAgIG1vdmUgMCwgZXhwTXN3CisgICAgZW5kLAorICAgIG1hY3JvKGV4cE1zdywg
ZXhwTHN3LCB2YWxNc3csIHZhbExzdywgbWVtLCBzY3JhdGNoLCByZXNMc3cpCisgICAgICAgICAg
ICBmZW5jZQorICAgICAgICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5raSBtZW0sIHJlc0xz
dworICAgICAgICAgICAgYmluZXEgZXhwTHN3LCByZXNMc3csIC5mYWlsCisgICAgICAgICAgICBi
aW5lcSBleHBNc3csIDAsIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmRpIHNjcmF0Y2gsIHZh
bExzdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAgICAgICAg
ICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRpIHNjcmF0
Y2gsIHJlc0xzdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAg
ICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBmZW5jZQorICAg
ICAgICAgICAgbW92ZSByZXNMc3csIGV4cExzdworICAgICAgICAgICAgbW92ZSAwLCBleHBNc3cK
KyAgICBlbmQsCisgICAgbWFjcm8oZXhwTXN3LCBleHBMc3csIHZhbE1zdywgdmFsTHN3LCBtZW0s
IHNjcmF0Y2gsIHJlc01zdywgcmVzTHN3KQorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgLmxv
b3A6CisgICAgICAgICAgICBsb2FkbGluazJpIG1lbSwgcmVzTHN3LCByZXNNc3cKKyAgICAgICAg
ICAgIGJpbmVxIGV4cExzdywgcmVzTHN3LCAuZmFpbAorICAgICAgICAgICAgYmluZXEgZXhwTXN3
LCByZXNNc3csIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmQyaSBzY3JhdGNoLCB2YWxMc3cs
IHZhbE1zdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAgICAg
ICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmQyaSBz
Y3JhdGNoLCByZXNMc3csIHJlc01zdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAs
IC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAg
ICBmZW5jZQorICAgICAgICAgICAgbW92ZSByZXNMc3csIGV4cExzdworICAgICAgICAgICAgbW92
ZSByZXNNc3csIGV4cE1zdworICAgIGVuZCkKK2VuZAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHk2NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvV2ViQXNzZW1ibHk2NC5hc20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZlOWVhNDg4NTI0MjYwYTNl
NDQ3ZmY1MDA5MTk0ZTgwMGVlZTE3MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9XZWJBc3NlbWJseTY0LmFzbQpAQCAtMCwwICsxLDEyNTkgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDExLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBD
b3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
IyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgT3Bjb2RlcyB0aGF0IHNob3Vs
ZCBldmVudHVhbGx5IGJlIHNoYXJlZCB3aXRoIEpTIGxsaW50CisKK3dhc21PcChtb3YsIFdhc21N
b3YsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX3NyYywgdDApCisgICAgcmV0dXJucShj
dHgsIHQwKQorZW5kKQorCisjIFdhc20gc3BlY2lmaWMgYnl0ZWNvZGVzCisKK21hY3JvIGVtaXRD
aGVja0FuZFByZXBhcmVQb2ludGVyKGN0eCwgcG9pbnRlciwgb2Zmc2V0LCBzaXplKQorICAgIGxl
YXAgc2l6ZSAtIDFbcG9pbnRlciwgb2Zmc2V0XSwgdDUKKyAgICBicGIgdDUsIGJvdW5kc0NoZWNr
aW5nU2l6ZSwgLmNvbnRpbnVhdGlvbgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVt
b3J5QWNjZXNzKQorLmNvbnRpbnVhdGlvbjoKKyAgICBhZGRwIG1lbW9yeUJhc2UsIHBvaW50ZXIK
K2VuZAorCittYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgs
IHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKKyAgICBsZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNl
dF0sIHQ1CisgICAgYnBiIHQ1LCBib3VuZHNDaGVja2luZ1NpemUsIC5jb250aW51YXRpb24KKy50
aHJvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKKy5jb250
aW51YXRpb246CisgICAgYWRkcCBtZW1vcnlCYXNlLCBwb2ludGVyCisgICAgYWRkcCBvZmZzZXQs
IHBvaW50ZXIKK2VuZAorCittYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09m
ZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKKyAgICBs
ZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNldF0sIHQ1CisgICAgYnBiIHQ1LCBib3VuZHNDaGVj
a2luZ1NpemUsIC5jb250aW51YXRpb24KKy50aHJvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRP
ZkJvdW5kc01lbW9yeUFjY2VzcykKKy5jb250aW51YXRpb246CisgICAgYWRkcCBtZW1vcnlCYXNl
LCBwb2ludGVyCisgICAgYWRkcCBvZmZzZXQsIHBvaW50ZXIKKyAgICBidHBueiBwb2ludGVyLCAo
c2l6ZSAtIDEpLCAudGhyb3cKK2VuZAorCisKK21hY3JvIHdhc21Mb2FkT3AobmFtZSwgc3RydWN0
LCBzaXplLCBmbikKKyAgICB3YXNtT3AobmFtZSwgc3RydWN0LCBtYWNybyhjdHgpCisgICAgICAg
IG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDApCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQs
IHQxKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihjdHgsIHQwLCB0MSwgc2l6
ZSkKKyAgICAgICAgZm4oW3QwLCB0MV0sIHQyKQorICAgICAgICByZXR1cm5xKGN0eCwgdDIpCisg
ICAgZW5kKQorZW5kCisKK3dhc21Mb2FkT3AobG9hZDhfdSwgV2FzbUxvYWQ4VSwgMSwgbWFjcm8o
bWVtLCBkc3QpIGxvYWRiIG1lbSwgZHN0IGVuZCkKK3dhc21Mb2FkT3AobG9hZDE2X3UsIFdhc21M
b2FkMTZVLCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGggbWVtLCBkc3QgZW5kKQord2FzbUxvYWRP
cChsb2FkMzJfdSwgV2FzbUxvYWQzMlUsIDQsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaSBtZW0sIGRz
dCBlbmQpCit3YXNtTG9hZE9wKGxvYWQ2NF91LCBXYXNtTG9hZDY0VSwgOCwgbWFjcm8obWVtLCBk
c3QpIGxvYWRxIG1lbSwgZHN0IGVuZCkKKword2FzbUxvYWRPcChpMzJfbG9hZDhfcywgV2FzbUkz
MkxvYWQ4UywgMSwgbWFjcm8obWVtLCBkc3QpIGxvYWRic2kgbWVtLCBkc3QgZW5kKQord2FzbUxv
YWRPcChpNjRfbG9hZDhfcywgV2FzbUk2NExvYWQ4UywgMSwgbWFjcm8obWVtLCBkc3QpIGxvYWRi
c3EgbWVtLCBkc3QgZW5kKQord2FzbUxvYWRPcChpMzJfbG9hZDE2X3MsIFdhc21JMzJMb2FkMTZT
LCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGhzaSBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGk2
NF9sb2FkMTZfcywgV2FzbUk2NExvYWQxNlMsIDIsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaHNxIG1l
bSwgZHN0IGVuZCkKK3dhc21Mb2FkT3AoaTY0X2xvYWQzMl9zLCBXYXNtSTY0TG9hZDMyUywgNCwg
bWFjcm8obWVtLCBkc3QpIGxvYWRpcyBtZW0sIGRzdCBlbmQpCisKK21hY3JvIHdhc21TdG9yZU9w
KG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4pCisgICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8o
Y3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQorICAgICAgICB3Z2V0dShj
dHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4
LCB0MCwgdDEsIHNpemUpCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQorICAgICAg
ICBmbih0MiwgW3QwLCB0MV0pCisgICAgICAgIGRpc3BhdGNoKGN0eCkKKyAgICBlbmQpCitlbmQK
Kword2FzbVN0b3JlT3Aoc3RvcmU4LCBXYXNtU3RvcmU4LCAxLCBtYWNybyh2YWx1ZSwgbWVtKSBz
dG9yZWIgdmFsdWUsIG1lbSBlbmQpCit3YXNtU3RvcmVPcChzdG9yZTE2LCBXYXNtU3RvcmUxNiwg
MiwgbWFjcm8odmFsdWUsIG1lbSkgc3RvcmVoIHZhbHVlLCBtZW0gZW5kKQord2FzbVN0b3JlT3Ao
c3RvcmUzMiwgV2FzbVN0b3JlMzIsIDQsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlaSB2YWx1ZSwg
bWVtIGVuZCkKK3dhc21TdG9yZU9wKHN0b3JlNjQsIFdhc21TdG9yZTY0LCA4LCBtYWNybyh2YWx1
ZSwgbWVtKSBzdG9yZXEgdmFsdWUsIG1lbSBlbmQpCisKK3dhc21PcChyZWZfaXNfbnVsbCwgV2Fz
bVJlZklzTnVsbCwgbWFjcm8oY3R4KQorICAgIG1sb2FkcChjdHgsIG1fcmVmLCB0MCkKKyAgICBj
cWVxIHQwLCBWYWx1ZU51bGwsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorZW5kKQorCit3YXNt
T3AoZ2V0X2dsb2JhbCwgV2FzbUdldEdsb2JhbCwgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206
Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1f
Z2xvYmFsSW5kZXgsIHQxKQorICAgIGxvYWRxIFt0MCwgdDEsIDhdLCB0MAorICAgIHJldHVybnEo
Y3R4LCB0MCkKK2VuZCkKKword2FzbU9wKHNldF9nbG9iYWwsIFdhc21TZXRHbG9iYWwsIG1hY3Jv
KGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0s
IHQwCisgICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBtbG9hZHEoY3R4LCBt
X3ZhbHVlLCB0MikKKyAgICBzdG9yZXEgdDIsIFt0MCwgdDEsIDhdCisgICAgZGlzcGF0Y2goY3R4
KQorZW5kKQorCit3YXNtT3AoZ2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNtR2V0R2xv
YmFsUG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6
Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRl
eCwgdDEpCisgICAgbG9hZHEgW3QwLCB0MSwgOF0sIHQwCisgICAgbG9hZHEgW3QwXSwgdDAKKyAg
ICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChzZXRfZ2xvYmFsX3BvcnRhYmxlX2Jp
bmRpbmcsIFdhc21TZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkKKyAgICBsb2Fk
cCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUo
Y3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAg
ICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKKyAgICBzdG9yZXEgdDIsIFt0MF0KKyAgICBkaXNwYXRj
aChjdHgpCitlbmQpCisKKyMgT3Bjb2RlcyB0aGF0IGRvbid0IGhhdmUgdGhlIGBiM29wYCBlbnRy
eSBpbiB3YXNtLmpzb24uIFRoaXMgc2hvdWxkIGJlIGtlcHQgaW4gc3luYworCisjIGkzMiBiaW5h
cnkgb3BzCisKK3dhc21PcChpMzJfZGl2X3MsIFdhc21JMzJEaXZTLCBtYWNybyAoY3R4KQorICAg
IG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisKKyAg
ICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgYmluZXEgdDEsIC0xLCAuc2Fm
ZQorICAgIGJpZXEgdDAsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC50aHJvd0ludGVnZXJPdmVyZmxv
dworCisuc2FmZToKKyAgICBpZiBYODZfNjQKKyAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRv
IHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4CisgICAgICAgICMgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgorICAgICAgICBjZHFp
CisgICAgICAgIGlkaXZpIHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQK
KyAgICAgICAgZGl2aXMgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAor
ICAgIHJldHVybmkoY3R4LCB0MCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dF
eGNlcHRpb24oRGl2aXNpb25CeVplcm8pCisKKy50aHJvd0ludGVnZXJPdmVyZmxvdzoKKyAgICB0
aHJvd0V4Y2VwdGlvbihJbnRlZ2VyT3ZlcmZsb3cpCitlbmQpCisKK3dhc21PcChpMzJfZGl2X3Us
IFdhc21JMzJEaXZVLCBtYWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKKyAg
ICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisKKyAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5
WmVybworCisgICAgaWYgWDg2XzY0CisgICAgICAgIHhvcmkgdDIsIHQyCisgICAgICAgIHVkaXZp
IHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKKyAgICAgICAgZGl2aSB0
MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCisgICAgcmV0dXJuaShjdHgs
IHQwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lv
bkJ5WmVybykKK2VuZCkKKword2FzbU9wKGkzMl9yZW1fcywgV2FzbUkzMlJlbVMsIG1hY3JvIChj
dHgpCisgICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0
MSkKKworICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBiaW5lcSB0MSwg
LTEsIC5zYWZlCisgICAgYmluZXEgdDAsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC5zYWZlCisKKyAg
ICBtb3ZlIDAsIHQyCisgICAgam1wIC5yZXR1cm4KKworLnNhZmU6CisgICAgaWYgWDg2XzY0Cisg
ICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXgg
YW5kIHQyIGlzIHJkeAorICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDM2OTIKKyAgICAgICAgY2RxaQorICAgICAgICBpZGl2aSB0MQorICAgIGVsc2lm
IEFSTTY0IG9yIEFSTTY0RQorICAgICAgICBkaXZpcyB0MSwgdDAsIHQyCisgICAgICAgIG11bGkg
dDEsIHQyCisgICAgICAgIHN1YmkgdDAsIHQyLCB0MgorICAgIGVsc2lmIFJJU0NWNjQKKyAgICAg
ICAgcmVtaXMgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorCisucmV0
dXJuOgorICAgIHJldHVybmkoY3R4LCB0MikKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAg
dGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpMzJfcmVtX3Us
IFdhc21JMzJSZW1VLCBtYWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKKyAg
ICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisKKyAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5
WmVybworCisgICAgaWYgWDg2XzY0CisgICAgICAgIHhvcmkgdDIsIHQyCisgICAgICAgIHVkaXZp
IHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCisgICAgICAgIGRpdmkgdDEsIHQwLCB0Mgor
ICAgICAgICBtdWxpIHQxLCB0MgorICAgICAgICBzdWJpIHQwLCB0MiwgdDIKKyAgICBlbHNpZiBS
SVNDVjY0CisgICAgICAgIHJlbWkgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAg
IGVuZAorICAgIHJldHVybmkoY3R4LCB0MikKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAg
dGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKKyMgaTY0IGJpbmFyeSBvcHMK
Kword2FzbU9wKGk2NF9hZGQsIFdhc21JNjRBZGQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4
LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGFkZHEgdDAsIHQx
CisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X3N1YiwgV2FzbUk2NFN1
YiwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4
LCBtX3JocywgdDEpCisgICAgc3VicSB0MSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQp
CisKK3dhc21PcChpNjRfbXVsLCBXYXNtSTY0TXVsLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0
eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBtdWxxIHQwLCB0
MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9kaXZfcywgV2FzbUk2
NERpdlMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2Fk
cShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisK
KyAgICBicW5lcSB0MSwgLTEsIC5zYWZlCisgICAgYnFlcSB0MCwgY29uc3RleHByIElOVDY0X01J
TiwgLnRocm93SW50ZWdlck92ZXJmbG93CisKKy5zYWZlOgorICAgIGlmIFg4Nl82NAorICAgICAg
ICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0
MiBpcyByZHgKKyAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAzNjkyCisgICAgICAgIGNxb3EKKyAgICAgICAgaWRpdnEgdDEKKyAgICBlbHNpZiBBUk02
NCBvciBBUk02NEUgb3IgUklTQ1Y2NAorICAgICAgICBkaXZxcyB0MSwgdDAKKyAgICBlbHNlCisg
ICAgICAgIGVycm9yCisgICAgZW5kCisgICAgcmV0dXJucShjdHgsIHQwKQorCisudGhyb3dEaXZp
c2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKKworLnRocm93
SW50ZWdlck92ZXJmbG93OgorICAgIHRocm93RXhjZXB0aW9uKEludGVnZXJPdmVyZmxvdykKK2Vu
ZCkKKword2FzbU9wKGk2NF9kaXZfdSwgV2FzbUk2NERpdlUsIG1hY3JvIChjdHgpCisgICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0
cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBpZiBYODZfNjQKKyAgICAgICAgeG9y
cSB0MiwgdDIKKyAgICAgICAgdWRpdnEgdDEKKyAgICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3Ig
UklTQ1Y2NAorICAgICAgICBkaXZxIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAg
ICBlbmQKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAg
IHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTY0X3JlbV9z
LCBXYXNtSTY0UmVtUywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisg
ICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRxeiB0MSwgLnRocm93RGl2aXNpb25C
eVplcm8KKworICAgIGJxbmVxIHQxLCAtMSwgLnNhZmUKKyAgICBicW5lcSB0MCwgY29uc3RleHBy
IElOVDY0X01JTiwgLnNhZmUKKworICAgIG1vdmUgMCwgdDIKKyAgICBqbXAgLnJldHVybgorCisu
c2FmZToKKyAgICBpZiBYODZfNjQKKyAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRp
Y19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4CisgICAgICAgICMgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgorICAgICAgICBjcW9xCisgICAg
ICAgIGlkaXZxIHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCisgICAgICAgIGRpdnFzIHQx
LCB0MCwgdDIKKyAgICAgICAgbXVscSB0MSwgdDIKKyAgICAgICAgc3VicSB0MCwgdDIsIHQyCisg
ICAgZWxzaWYgUklTQ1Y2NAorICAgICAgICByZW1xcyB0MSwgdDAKKyAgICBlbHNlCisgICAgICAg
IGVycm9yCisgICAgZW5kCisKKy5yZXR1cm46CisgICAgcmV0dXJucShjdHgsIHQyKSAjIHJkeCBo
YXMgdGhlIHJlbWFpbmRlcgorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2Vw
dGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9yZW1fdSwgV2FzbUk2NFJl
bVUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShj
dHgsIG1fcmhzLCB0MSkKKworICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAg
ICBpZiBYODZfNjQKKyAgICAgICAgeG9ycSB0MiwgdDIKKyAgICAgICAgdWRpdnEgdDEKKyAgICBl
bHNpZiBBUk02NCBvciBBUk02NEUKKyAgICAgICAgZGl2cSB0MSwgdDAsIHQyCisgICAgICAgIG11
bHEgdDEsIHQyCisgICAgICAgIHN1YnEgdDAsIHQyLCB0MgorICAgIGVsc2lmIFJJU0NWNjQKKyAg
ICAgICAgcmVtcSB0MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCisgICAg
cmV0dXJucShjdHgsIHQyKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2Vw
dGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9hbmQsIFdhc21JNjRBbmQs
IG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwg
bV9yaHMsIHQxKQorICAgIGFuZHEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQor
Cit3YXNtT3AoaTY0X29yLCBXYXNtSTY0T3IsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBt
X2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIG9ycSB0MCwgdDEKKyAg
ICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfeG9yLCBXYXNtSTY0WG9yLCBt
YWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1f
cmhzLCB0MSkKKyAgICB4b3JxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKwor
d2FzbU9wKGk2NF9zaGwsIFdhc21JNjRTaGwsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBt
X2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorICAgIGxzaGlmdHEgdDEsIHQw
CisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3Nocl91LCBXYXNtSTY0
U2hyVSwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGko
Y3R4LCBtX3JocywgdDEpCisgICAgdXJzaGlmdHEgdDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQw
KQorZW5kKQorCit3YXNtT3AoaTY0X3Nocl9zLCBXYXNtSTY0U2hyUywgbWFjcm8oY3R4KQorICAg
IG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisgICAg
cnNoaWZ0cSB0MSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRf
cm90ciwgV2FzbUk2NFJvdHIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDAp
CisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorICAgIHJyb3RhdGVxIHQxLCB0MAorICAgIHJl
dHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9yb3RsLCBXYXNtSTY0Um90bCwgbWFj
cm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3Jo
cywgdDEpCisgICAgbHJvdGF0ZXEgdDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQor
Cit3YXNtT3AoaTY0X2VxLCBXYXNtSTY0RXEsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBt
X2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxZXEgdDAsIHQxLCB0
MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChp
NjRfbmUsIFdhc21JNjROZSwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkK
KyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FuZXEgdDAsIHQxLCB0MgorICAgIGFu
ZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfbHRfcywg
V2FzbUk2NEx0UywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBt
bG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FsdCB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0
MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9sZV9zLCBXYXNtSTY0
TGVTLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShj
dHgsIG1fcmhzLCB0MSkKKyAgICBjcWx0ZXEgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAg
ICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfbHRfdSwgV2FzbUk2NEx0VSwg
bWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBt
X3JocywgdDEpCisgICAgY3FiIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJu
aShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2xlX3UsIFdhc21JNjRMZVUsIG1hY3JvKGN0
eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQx
KQorICAgIGNxYmVxIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgs
IHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2d0X3MsIFdhc21JNjRHdFMsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAg
IGNxZ3QgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitl
bmQpCisKK3dhc21PcChpNjRfZ2VfcywgV2FzbUk2NEdlUywgbWFjcm8oY3R4KQorICAgIG1sb2Fk
cShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FndGVx
IHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQor
Cit3YXNtT3AoaTY0X2d0X3UsIFdhc21JNjRHdFUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4
LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxYSB0MCwgdDEs
IHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9w
KGk2NF9nZV91LCBXYXNtSTY0R2VVLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMs
IHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWFlcSB0MCwgdDEsIHQyCisg
ICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKworIyBpNjQgdW5hcnkg
b3BzCisKK3dhc21PcChpNjRfY3R6LCBXYXNtSTY0Q3R6LCBtYWNybyAoY3R4KQorICAgIG1sb2Fk
cShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgdHpjbnRxIHQwLCB0MAorICAgIHJldHVybnEoY3R4
LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9jbHosIFdhc21JNjRDbHosIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIGx6Y250cSB0MCwgdDEKKyAgICByZXR1
cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfcG9wY250LCBXYXNtSTY0UG9wY250LCBt
YWNybyAoY3R4KQorICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgYTEpCisgICAgcHJlcGFyZVN0
YXRlRm9yQ0NhbGwoKQorICAgIG1vdmUgUEMsIGEwCisgICAgY0NhbGwyKF9zbG93X3BhdGhfd2Fz
bV9wb3Bjb3VudGxsKQorICAgIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQorICAgIHJldHVybnEo
Y3R4LCByMSkKK2VuZCkKKword2FzbU9wKGk2NF9lcXosIFdhc21JNjRFcXosIG1hY3JvKGN0eCkK
KyAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIGNxZXEgdDAsIDAsIHQwCisgICAg
cmV0dXJuaShjdHgsIHQwKQorZW5kKQorCisjIGY2NCBiaW5hcnkgb3BzCisKK3dhc21PcChmNjRf
Y29weXNpZ24sIFdhc21GNjRDb3B5c2lnbiwgbWFjcm8oY3R4KQorICAgIG1sb2FkZChjdHgsIG1f
bGhzLCBmdDApCisgICAgbWxvYWRkKGN0eCwgbV9yaHMsIGZ0MSkKKworICAgIGZkMnEgZnQxLCB0
MQorICAgIG1vdmUgMHg4MDAwMDAwMDAwMDAwMDAwLCB0MgorICAgIGFuZHEgdDIsIHQxCisKKyAg
ICBmZDJxIGZ0MCwgdDAKKyAgICBtb3ZlIDB4N2ZmZmZmZmZmZmZmZmZmZiwgdDIKKyAgICBhbmRx
IHQyLCB0MAorCisgICAgb3JxIHQxLCB0MAorICAgIGZxMmQgdDAsIGZ0MAorICAgIHJldHVybmQo
Y3R4LCBmdDApCitlbmQpCisKKyMgVHlwZSBjb252ZXJzaW9uIG9wcworCit3YXNtT3AoaTY0X2V4
dGVuZF9zX2kzMiwgV2FzbUk2NEV4dGVuZFNJMzIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGkoY3R4
LCBtX29wZXJhbmQsIHQwKQorICAgIHN4aTJxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkK
K2VuZCkKKword2FzbU9wKGk2NF9leHRlbmRfdV9pMzIsIFdhc21JNjRFeHRlbmRVSTMyLCBtYWNy
byhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICB6eGkycSB0MCwgdDEK
KyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChmNjRfcmVpbnRlcnByZXRfaTY0
LCBXYXNtRjY0UmVpbnRlcnByZXRJNjQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29w
ZXJhbmQsIHQwKQorICAgIGZxMmQgdDAsIGZ0MAorICAgIHJldHVybmQoY3R4LCBmdDApCitlbmQp
CisKK3dhc21PcChpNjRfcmVpbnRlcnByZXRfZjY0LCBXYXNtSTY0UmVpbnRlcnByZXRGNjQsIG1h
Y3JvKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKyAgICBmZDJxIGZ0MCwg
dDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc19mNjQs
IFdhc21JMzJUcnVuY1NGNjQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5k
LCBmdDApCisKKyAgICBtb3ZlIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDAgIyBJTlQzMl9NSU4gLSAx
LjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmMKKworICAgIG1vdmUgMHg0MWUwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQzMl9NSU4KKyAg
ICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMK
KworICAgIHRydW5jYXRlZDJpcyBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0
T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5k
KQorCit3YXNtT3AoaTMyX3RydW5jX3VfZjY0LCBXYXNtSTMyVHJ1bmNVRjY0LCBtYWNybyAoY3R4
KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGJmZjAwMDAw
MDAwMDAwMDAsIHQwICMgLTEuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwg
ZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZSAweDQxZjAwMDAwMDAwMDAwMDAsIHQw
ICMgSU5UMzJfTUlOICogLTIuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwg
ZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAorICAgIHJl
dHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24o
T3V0T2ZCb3VuZHNUcnVuYykKK2VuZCkKKword2FzbU9wKGk2NF90cnVuY19zX2YzMiwgV2FzbUk2
NFRydW5jU0YzMiwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkK
KworICAgIG1vdmUgMHhkZjAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4KKyAgICBmaTJmIHQwLCBmdDEK
KyAgICBiZmx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlIDB4NWYw
MDAwMDAsIHQwICMgLUlOVDY0X01JTgorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmZ3RlcXVuIGZ0
MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVmMnFzIGZ0MCwgdDAKKyAg
ICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0
aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfdV9mMzIsIFdh
c21JNjRUcnVuY1VGMzIsIG1hY3JvIChjdHgpCisgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBm
dDApCisKKyAgICBtb3ZlIDB4YmY4MDAwMDAsIHQwICMgLTEuMAorICAgIGZpMmYgdDAsIGZ0MQor
ICAgIGJmbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZSAweDVm
ODAwMDAwLCB0MCAjIElOVDY0X01JTiAqIC0yLjAKKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmd0
ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZjJxIGZ0MCwg
dDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93
RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc19m
NjQsIFdhc21JNjRUcnVuY1NGNjQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVy
YW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YzNlMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4K
KyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5j
CisKKyAgICBtb3ZlIDB4NDNlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCisgICAgZnEy
ZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAg
ICB0cnVuY2F0ZWQycXMgZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91
bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKK2VuZCkKKwor
d2FzbU9wKGk2NF90cnVuY191X2Y2NCwgV2FzbUk2NFRydW5jVUY2NCwgbWFjcm8gKGN0eCkKKyAg
ICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAw
MDAwLCB0MCAjIC0xLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwg
Lm91dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmUgMHg0M2YwMDAwMDAwMDAwMDAwLCB0MCAjIElO
VDY0X01JTiAqIC0yLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwg
Lm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZDJxIGZ0MCwgdDAKKyAgICByZXR1cm5x
KGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91dE9m
Qm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTMy
VHJ1bmNTYXRGNjRTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQw
KQorCisgICAgbW92ZSAweGMxZTAwMDAwMDAyMDAwMDAsIHQwICMgSU5UMzJfTUlOIC0gMS4wCisg
ICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5j
U2F0TWluT3JOYU4KKworICAgIG1vdmUgMHg0MWUwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQzMl9N
SU4KKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZDJpcyBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgs
IHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgorICAgIGJkZXEgZnQwLCBmdDAs
IC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybmkoY3R4
LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIElO
VDMyX01BWCksIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1pbjoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UMzJfTUlOKSwgdDAKKyAgICByZXR1cm5pKGN0
eCwgdDApCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF91LCBXYXNtSTMyVHJ1bmNT
YXRGNjRVLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisg
ICAgbW92ZSAweGJmZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAorICAgIGZxMmQgdDAsIGZ0MQor
ICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorCisgICAgbW92
ZSAweDQxZjAwMDAwMDAwMDAwMDAsIHQwICMgSU5UMzJfTUlOICogLTIuMAorICAgIGZxMmQgdDAs
IGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisg
ICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91
bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKwor
Lm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIFVJTlQzMl9NQVgp
LCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF90cnVuY19zYXRf
ZjMyX3MsIFdhc21JNjRUcnVuY1NhdEYzMlMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRmKGN0eCwg
bV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4ZGYwMDAwMDAsIHQwICMgSU5UNjRfTUlOCisg
ICAgZmkyZiB0MCwgZnQxCisgICAgYmZsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1pbk9yTmFOCisKKyAgICBtb3ZlIDB4NWYwMDAwMDAsIHQwICMgLUlOVDY0X01JTgorICAgIGZp
MmYgdDAsIGZ0MQorICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1h
eAorCisgICAgdHJ1bmNhdGVmMnFzIGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5v
dXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU46CisgICAgYmZlcSBmdDAsIGZ0MCwgLm91dE9mQm91
bmRzVHJ1bmNTYXRNaW4KKyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUFYKSwg
dDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAg
IG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9NSU4pLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2Vu
ZCkKKword2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3UsIFdhc21JNjRUcnVuY1NhdEYzMlUsIG1h
Y3JvIChjdHgpCisgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4
YmY4MDAwMDAsIHQwICMgLTEuMAorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmbHRlcXVuIGZ0MCwg
ZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorCisgICAgbW92ZSAweDVmODAwMDAwLCB0MCAj
IElOVDY0X01JTiAqIC0yLjAKKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmd0ZXF1biBmdDAsIGZ0
MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZjJxIGZ0MCwgdDAKKyAg
ICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUg
MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4Ogor
ICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UNjRfTUFYKSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDAp
CitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTY0VHJ1bmNTYXRGNjRT
LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92
ZSAweGMzZTAwMDAwMDAwMDAwMDAsIHQwICMgSU5UNjRfTUlOCisgICAgZnEyZCB0MCwgZnQxCisg
ICAgYmRsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOCisKKyAgICBt
b3ZlIDB4NDNlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCisgICAgZnEyZCB0MCwgZnQx
CisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0
cnVuY2F0ZWQycXMgZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRz
VHJ1bmNTYXRNaW5Pck5hTjoKKyAgICBiZGVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1pbgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5k
c1RydW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9NQVgpLCB0MAorICAgIHJl
dHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAoY29u
c3RleHByIElOVDY0X01JTiksIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNt
T3AoaTY0X3RydW5jX3NhdF9mNjRfdSwgV2FzbUk2NFRydW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkK
KyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZmYwMDAwMDAw
MDAwMDAwLCB0MCAjIC0xLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0
MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKworICAgIG1vdmUgMHg0M2YwMDAwMDAwMDAwMDAw
LCB0MCAjIElOVDY0X01JTiAqIC0yLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZDJxIGZ0MCwg
dDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAg
IG1vdmUgMCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0
TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UNjRfTUFYKSwgdDAKKyAgICByZXR1cm5xKGN0
eCwgdDApCitlbmQpCisKKyMgRXh0ZW5kIG9wcworCit3YXNtT3AoaTY0X2V4dGVuZDhfcywgV2Fz
bUk2NEV4dGVuZDhTLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkK
KyAgICBzeGIycSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChp
NjRfZXh0ZW5kMTZfcywgV2FzbUk2NEV4dGVuZDE2UywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShj
dHgsIG1fb3BlcmFuZCwgdDApCisgICAgc3hoMnEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQx
KQorZW5kKQorCit3YXNtT3AoaTY0X2V4dGVuZDMyX3MsIFdhc21JNjRFeHRlbmQxNlMsIG1hY3Jv
KGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHN4aTJxIHQwLCB0MQor
ICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKworIyBBdG9taWNzCisKK21hY3JvIHdhc21BdG9t
aWNCaW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5o
LCBmbmksIGZucSkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVf
dSwgV2FzbUk2NEF0b21pY1JtdzgldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAg
ICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNl
dCwgdDEpCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQwKQorICAgICAgICBlbWl0Q2hl
Y2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgsIHQzLCB0MSwgMSkKKyAgICAgICAg
Zm5iKHQwLCBbdDNdLCB0MiwgdDUsIHQxKQorICAgICAgICBhbmRxIDB4ZmYsIHQwICMgRklYTUU6
IFplcm9FeHRlbmQ4VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZm
LCAub2sgZW5kKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorICAgIHdhc21P
cChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzE2
JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9p
bnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBtbG9h
ZHEoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJB
ZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDIpCisgICAgICAgIGZu
aCh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKKyAgICAgICAgYW5kcSAweGZmZmYsIHQwICMgRklYTUU6
IFplcm9FeHRlbmQxNlRvNjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhm
ZmZmLCAub2sgZW5kKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorICAgIHdh
c21PcChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1Jt
dzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1f
cG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBt
bG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50
ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDQpCisgICAgICAg
IGZuaSh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJl
cSB0MCwgMHhmZmZmZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAg
IGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2
NEF0b21pY1JtdyV1cHBlckNhc2VPcGNvZGUlLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShj
dHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAg
ICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFy
ZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDgpCisg
ICAgICAgIGZucSh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKKyAgICAgICAgcmV0dXJucShjdHgsIHQw
KQorICAgIGVuZCkKK2VuZAorCittYWNybyB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtD
QVMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuaSwgZm5xKQorICAgIHdhc21B
dG9taWNCaW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBp
ZiBYODZfNjQKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgorICAgICAgICAgICAg
ICAgIGxvYWRiIG1lbSwgdDBHUFIKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAg
IG1vdmUgdDBHUFIsIHQyR1BSCisgICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKKyAg
ICAgICAgICAgICAgICBiYXRvbWljd2Vha2Nhc2IgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2Fk
bGlua2FjcWIgbWVtLCB0MUdQUgorICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQy
R1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29uZHJlbGIgdDVHUFIsIHQyR1BSLCBtZW0KKyAg
ICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBtb3Zl
IHQxR1BSLCB0MEdQUgorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFj
cm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIGlmIFg4Nl82
NAorICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCisgICAgICAgICAgICAgICAgbG9h
ZGggbWVtLCB0MEdQUgorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbW92ZSB0
MEdQUiwgdDJHUFIKKyAgICAgICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQorICAgICAgICAg
ICAgICAgIGJhdG9taWN3ZWFrY2FzaCB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNx
aCBtZW0sIHQxR1BSCisgICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisg
ICAgICAgICAgICAgICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAg
ICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAorICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIs
IHQwR1BSCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgaWYgWDg2XzY0CisgICAg
ICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKKyAgICAgICAgICAgICAgICBsb2FkaSBtZW0s
IHQwR1BSCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0
MkdQUgorICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAg
YmF0b21pY3dlYWtjYXNpIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAorICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9hZGxpbmthY3FpIG1lbSwg
dDFHUFIKKyAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAg
ICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICAgICAg
YmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIK
KyAgICAgICAgICAgIGVuZAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBpZiBYODZfNjQKKyAgICAgICAgICAg
ICAgICBtb3ZlIHQwR1BSLCB0NUdQUgorICAgICAgICAgICAgICAgIGxvYWRxIG1lbSwgdDBHUFIK
KyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCisg
ICAgICAgICAgICAgICAgZm5xKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBiYXRvbWlj
d2Vha2Nhc3EgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2FkbGlua2FjcXEgbWVtLCB0MUdQUgor
ICAgICAgICAgICAgICAgIGZucSh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAg
IHN0b3JlY29uZHJlbHEgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0
NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgorICAgICAg
ICAgICAgZW5kCisgICAgICAgIGVuZCkKK2VuZAorCitpZiBYODZfNjQKKyAgICB3YXNtQXRvbWlj
QmluYXJ5Uk1XT3BzKF9hZGQsIEFkZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGIgdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRoIHQwR1BS
LCBtZW0gZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KSBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZHEgdDBHUFIsIG1lbSBlbmQpCisg
ICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfc3ViLCBTdWIsCisgICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJiIHQwR1BSLCBtZW0gZW5k
LAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4
Y2hnc3ViaCB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1YmkgdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJxIHQwR1BS
LCBtZW0gZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hjaGcsIFhjaGcsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdiIHQw
R1BSLCBtZW0gZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKSBhdG9taWN4Y2hnaCB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2kgdDBHUFIsIG1lbSBlbmQsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdxIHQw
R1BSLCBtZW0gZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYW5k
LCBBbmQsCisgICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgIGFuZGkgdDVH
UFIsIHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQorICAg
ICAgICAgICAgYW5kcSB0NUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNC
aW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfb3IsIE9yLAorICAgICAgICBtYWNybyh0NUdQUiwgdDJH
UFIpCisgICAgICAgICAgICBvcmkgdDVHUFIsIHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAg
bWFjcm8odDVHUFIsIHQyR1BSKQorICAgICAgICAgICAgb3JxIHQ1R1BSLCB0MkdQUgorICAgICAg
ICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwK
KyAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQorICAgICAgICAgICAgeG9yaSB0NUdQUiwgdDJH
UFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCisgICAgICAgICAg
ICB4b3JxIHQ1R1BSLCB0MkdQUgorICAgICAgICBlbmQpCitlbHNpZiBBUk02NEUKKyAgICB3YXNt
QXRvbWljQmluYXJ5Uk1XT3BzKF9hZGQsIEFkZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwg
dDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGIgdDBHUFIsIG1lbSwgdDBHUFIgZW5k
LAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4
Y2hnYWRkaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0sIHQwR1BSIGVu
ZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWlj
eGNoZ2FkZHEgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdP
cHMoX3N1YiwgU3ViLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKQorICAgICAgICAgICAgbmVncSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGIg
dDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgbmVncSB0MEdQUgorICAgICAgICAg
ICAgYXRvbWljeGNoZ2FkZGggdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kLAorICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgbmVn
cSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1lbSwgdDBHUFIKKyAg
ICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KQorICAgICAgICAgICAgbmVncSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2FkZHEgdDBH
UFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMo
X2FuZCwgQW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KQorICAgICAgICAgICAgbm90cSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFyYiB0
MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBub3RxIHQwR1BSCisgICAgICAgICAg
ICBhdG9taWN4Y2hnY2xlYXJoIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCwKKyAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5v
dHEgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcmkgdDBHUFIsIG1lbSwgdDBHUFIK
KyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKQorICAgICAgICAgICAgbm90cSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFy
cSB0MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJN
V09wcyhfb3IsIE9yLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKSBhdG9taWN4Y2hnb3JiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29yaCB0MEdQUiwgbWVt
LCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFH
UFIpIGF0b21pY3hjaGdvcmkgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnb3JxIHQwR1BSLCBtZW0s
IHQwR1BSIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94b3IsIFhvciwKKyAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmIg
dDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwg
dDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9yaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3Jp
IHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcnEgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQorICAg
IHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hjaGcsIFhjaGcsCisgICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdiIHQwR1BSLCBtZW0sIHQwR1BS
IGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRv
bWljeGNoZ2ggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQs
CisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hj
aGdxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKK2Vsc2lmIEFSTTY0IG9yIFJJU0NWNjQKKyAgICB3
YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FkZCwgQWRkLAorICAgICAgICBtYWNy
byh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgYWRkaSB0MEdQUiwgdDFHUFIsIHQy
R1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAg
ICAgICAgICAgIGFkZHEgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQpCisgICAgd2Fz
bUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9zdWIsIFN1YiwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIHN1YmkgdDFHUFIsIHQwR1BSLCB0MkdQ
UgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAg
ICAgICAgICBzdWJxIHQxR1BSLCB0MEdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21B
dG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeGNoZywgWGNoZywKKyAgICAgICAgbWFjcm8o
dDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCisgICAg
ICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAg
IG1vdmUgdDBHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1X
T3BzV2l0aFdlYWtDQVMoX2FuZCwgQW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQy
R1BSKQorICAgICAgICAgICAgYW5kaSB0MEdQUiwgdDFHUFIsIHQyR1BSCisgICAgICAgIGVuZCwK
KyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIGFuZHEgdDBH
UFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09w
c1dpdGhXZWFrQ0FTKF9vciwgT3IsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIp
CisgICAgICAgICAgICBvcmkgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBvcnEgdDBHUFIsIHQx
R1BSLCB0MkdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhX
ZWFrQ0FTKF94b3IsIFhvciwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAg
ICAgICAgICAgIHhvcmkgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAg
IG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICB4b3JxIHQwR1BSLCB0MUdQ
UiwgdDJHUFIKKyAgICAgICAgZW5kKQorZW5kCisKK21hY3JvIHdhc21BdG9taWNDb21wYXJlRXhj
aGFuZ2VPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmks
IGZucSkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2Fz
bUk2NEF0b21pY1JtdzgldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxv
YWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEp
CisgICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQorICAgICAgICBtbG9hZHEoY3R4
LCBtX3ZhbHVlLCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdP
ZmZzZXQoY3R4LCB0MywgdDEsIDEpCisgICAgICAgIGZuYih0MCwgdDIsIFt0M10sIHQ1LCB0MSkK
KyAgICAgICAgYW5kcSAweGZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kOFRvNjQKKyAgICAgICAg
YXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJu
cShjdHgsIHQwKQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcxNiVsb3dlckNh
c2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXcxNiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8o
Y3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShj
dHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCisg
ICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVw
YXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgMikK
KyAgICAgICAgZm5oKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQorICAgICAgICBhbmRxIDB4ZmZmZiwg
dDAgIyBGSVhNRTogWmVyb0V4dGVuZDE2VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJx
YmVxIHQwLCAweGZmZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBl
bmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MzIlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNt
STY0QXRvbWljUm13MzIldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxv
YWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEp
CisgICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQorICAgICAgICBtbG9hZHEoY3R4
LCBtX3ZhbHVlLCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdP
ZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDQpCisgICAgICAgIGZuaSh0MCwg
dDIsIFt0M10sIHQ1LCB0MSkKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhm
ZmZmZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKKyAg
ICB3YXNtT3AoaTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0b21pY1Jt
dyV1cHBlckNhc2VPcGNvZGUlLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9p
bnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBtbG9h
ZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIp
CisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdu
bWVudENoZWNrKGN0eCwgdDMsIHQxLCA4KQorICAgICAgICBmbnEodDAsIHQyLCBbdDNdLCB0NSwg
dDEpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBlbmQpCitlbmQKKworaWYgWDg2XzY0
IG9yIEFSTTY0RSBvciBBUk02NCBvciBSSVNDVjY0CisjIHQwR1BSID0+IGV4cGVjdGVkLCB0MkdQ
UiA9PiB2YWx1ZSwgbWVtID0+IG1lbW9yeSByZWZlcmVuY2UKK3dhc21BdG9taWNDb21wYXJlRXhj
aGFuZ2VPcHMoX2NtcHhjaGcsIENtcHhjaGcsCisgICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0s
IHQ1R1BSLCB0MUdQUikKKyAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQorICAgICAgICAgICAg
YnFhIHQwR1BSICwgMHhmZiwgLmZhaWwKKyAgICAgICAgICAgIGF0b21pY3dlYWtjYXNiIHQwR1BS
LCB0MkdQUiwgbWVtCisgICAgICAgICAgICBqbXAgLmRvbmUKKyAgICAgICAgLmZhaWw6CisgICAg
ICAgICAgICBhdG9taWNsb2FkYiBtZW0sIHQwR1BSCisgICAgICAgIC5kb25lOgorICAgICAgICBl
bHNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmthY3FiIG1lbSwgdDFHUFIK
KyAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKKyAgICAgICAgICAgIHN0b3Jl
Y29uZHJlbGIgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5k
b25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBz
dG9yZWNvbmRyZWxiIHQ1R1BSLCB0MUdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAw
LCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAgICAg
ICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgZW5kCisgICAgZW5kLAorICAgIG1hY3JvKHQw
R1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCisgICAgICAgIGlmIFg4Nl82NCBvciBBUk02
NEUKKyAgICAgICAgICAgIGJxYSB0MEdQUiwgMHhmZmZmLCAuZmFpbAorICAgICAgICAgICAgYXRv
bWljd2Vha2Nhc2ggdDBHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGptcCAuZG9uZQorICAg
ICAgICAuZmFpbDoKKyAgICAgICAgICAgIGF0b21pY2xvYWRoIG1lbSwgdDBHUFIKKyAgICAgICAg
LmRvbmU6CisgICAgICAgIGVsc2UKKyAgICAgICAgLmxvb3A6CisgICAgICAgICAgICBsb2FkbGlu
a2FjcWggbWVtLCB0MUdQUgorICAgICAgICAgICAgYnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAor
ICAgICAgICAgICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAg
YmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZmFp
bDoKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQxR1BSLCBtZW0KKyAgICAgICAg
ICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAg
LmRvbmU6CisgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgorICAgICAgICBlbmQKKyAgICBl
bmQsCisgICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BSLCB0MUdQUikKKyAgICAgICAg
aWYgWDg2XzY0IG9yIEFSTTY0RQorICAgICAgICAgICAgYnFhIHQwR1BSLCAweGZmZmZmZmZmLCAu
ZmFpbAorICAgICAgICAgICAgYXRvbWljd2Vha2Nhc2kgdDBHUFIsIHQyR1BSLCBtZW0KKyAgICAg
ICAgICAgIGptcCAuZG9uZQorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIGF0b21pY2xvYWRp
IG1lbSwgdDBHUFIKKyAgICAgICAgLmRvbmU6CisgICAgICAgIGVsc2UKKyAgICAgICAgLmxvb3A6
CisgICAgICAgICAgICBsb2FkbGlua2FjcWkgbWVtLCB0MUdQUgorICAgICAgICAgICAgYnFuZXEg
dDBHUFIsIHQxR1BSLCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwgdDJH
UFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGpt
cCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGkgdDVHUFIs
IHQxR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAg
ICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQ
UgorICAgICAgICBlbmQKKyAgICBlbmQsCisgICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1
R1BSLCB0MUdQUikKKyAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQorICAgICAgICAgICAgYXRv
bWljd2Vha2Nhc3EgdDBHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgZWxzZQorICAgICAgICAubG9v
cDoKKyAgICAgICAgICAgIGxvYWRsaW5rYWNxcSBtZW0sIHQxR1BSCisgICAgICAgICAgICBicW5l
cSB0MEdQUiwgdDFHUFIsIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmRyZWxxIHQ1R1BSLCB0
MkdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAgICAgICAg
am1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgc3RvcmVjb25kcmVscSB0NUdQ
UiwgdDFHUFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAg
ICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQw
R1BSCisgICAgICAgIGVuZAorICAgIGVuZCkKK2VuZAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9hcm0ucmIKaW5kZXggOTVjODVjMTEzNDFiZTk0OTVmMTFlNzc4OGE0YjM3MGE2ZDkx
YmJhOS4uN2RkNTM1MDg5OGIyNjQ3MmMwM2ZlNzA2MjJmN2YyMDBiYThlMmRlNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybS5yYgpAQCAtNjMsNiArNjMsMTEgQEAgY2xhc3Mg
Tm9kZQogICAgICAgICByYWlzZSAiQm9ndXMgcmVnaXN0ZXIgbmFtZSAje2RvdWJsZU9wZXJhbmR9
IiB1bmxlc3MgZG91YmxlT3BlcmFuZCA9fiAvXmQvCiAgICAgICAgICJzIiArICgkfi5wb3N0X21h
dGNoLnRvX2kgKiAyKS50b19zCiAgICAgZW5kCisgICAgZGVmIGFybVNpbmdsZUhpCisgICAgICAg
IGRvdWJsZU9wZXJhbmQgPSBhcm1PcGVyYW5kCisgICAgICAgIHJhaXNlICJCb2d1cyByZWdpc3Rl
ciBuYW1lICN7ZG91YmxlT3BlcmFuZH0iIHVubGVzcyBkb3VibGVPcGVyYW5kID1+IC9eZC8KKyAg
ICAgICAgInMiICsgKCR+LnBvc3RfbWF0Y2gudG9faSAqIDIgKyAxKS50b19zCisgICAgZW5kCiBl
bmQKIAogY2xhc3MgU3BlY2lhbFJlZ2lzdGVyCkBAIC05OCwyMSArMTAzLDIxIEBAIGVuZAogY2xh
c3MgUmVnaXN0ZXJJRAogICAgIGRlZiBhcm1PcGVyYW5kCiAgICAgICAgIGNhc2UgbmFtZQotICAg
ICAgICB3aGVuICJ0MCIsICJhMCIsICJyMCIKKyAgICAgICAgd2hlbiAidDAiLCAiYTAiLCAid2Ew
IiwgInIwIgogICAgICAgICAgICAgInIwIgotICAgICAgICB3aGVuICJ0MSIsICJhMSIsICJyMSIK
KyAgICAgICAgd2hlbiAidDEiLCAiYTEiLCAid2ExIiwgInIxIgogICAgICAgICAgICAgInIxIgot
ICAgICAgICB3aGVuICJ0MiIsICJhMiIKKyAgICAgICAgd2hlbiAidDIiLCAiYTIiLCAid2EyIgog
ICAgICAgICAgICAgInIyIgotICAgICAgICB3aGVuICJ0MyIsICJhMyIKKyAgICAgICAgd2hlbiAi
dDMiLCAiYTMiLCAid2EzIgogICAgICAgICAgICAgInIzIgogICAgICAgICB3aGVuICJ0NCIgIyBM
TEludCBQQwogICAgICAgICAgICAgInI0IgotICAgICAgICB3aGVuICJ0NSIKKyAgICAgICAgd2hl
biAidDUiLCAid3MwIiAjIHdzMCBtdXN0IGJlIGEgbm9uLWFyZ3VtZW50L25vbi1yZXR1cm4gR1BS
CiAgICAgICAgICAgICAicjUiCiAgICAgICAgIHdoZW4gImNmciIKICAgICAgICAgICAgICJyNyIK
LSAgICAgICAgd2hlbiAidDYiCisgICAgICAgIHdoZW4gInQ2IiwgIndzMSIgIyB3czEgbXVzdCBi
ZSBhIG5vbi1hcmd1bWVudC9ub24tcmV0dXJuIEdQUgogICAgICAgICAgICAgInI4IgogICAgICAg
ICB3aGVuICJ0NyIKICAgICAgICAgICAgICJyOSIgIyByOSBpcyBhbHNvIGEgc2NyYXRjaCByZWdp
c3Rlciwgc28gdXNlIGNhcmVmdWxseSEKQEAgLTEzNSwxOCArMTQwLDIyIEBAIGVuZAogY2xhc3Mg
RlBSZWdpc3RlcklECiAgICAgZGVmIGFybU9wZXJhbmQKICAgICAgICAgY2FzZSBuYW1lCi0gICAg
ICAgIHdoZW4gImZ0MCIsICJmciIsICJmYTAiCisgICAgICAgIHdoZW4gImZ0MCIsICJmciIsICJm
YTAiLCAid2ZhMCIKICAgICAgICAgICAgICJkMCIKLSAgICAgICAgd2hlbiAiZnQxIiwgImZhMSIK
KyAgICAgICAgd2hlbiAiZnQxIiwgImZhMSIsICJ3ZmExIgogICAgICAgICAgICAgImQxIgotICAg
ICAgICB3aGVuICJmdDIiCisgICAgICAgIHdoZW4gImZ0MiIsICJ3ZmEyIgogICAgICAgICAgICAg
ImQyIgotICAgICAgICB3aGVuICJmdDMiCisgICAgICAgIHdoZW4gImZ0MyIsICJ3ZmEzIgogICAg
ICAgICAgICAgImQzIgotICAgICAgICB3aGVuICJmdDQiCisgICAgICAgIHdoZW4gImZ0NCIsICJ3
ZmE0IgogICAgICAgICAgICAgImQ0IgotICAgICAgICB3aGVuICJmdDUiCisgICAgICAgIHdoZW4g
ImZ0NSIsICJ3ZmE1IgogICAgICAgICAgICAgImQ1IgorICAgICAgICB3aGVuICJmdDYiLCAid2Zh
NiIKKyAgICAgICAgICAgICJkNiIKKyAgICAgICAgd2hlbiAiZnQ3IiwgIndmYTciCisgICAgICAg
ICAgICAiZDciCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJhaXNlICJCYWQgcmVnaXN0ZXIg
I3tuYW1lfSBmb3IgQVJNIGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCiAgICAgICAgIGVuZApAQCAt
MTYzLDcgKzE3MiwxMSBAQCBlbmQKIGNsYXNzIEFkZHJlc3MKICAgICBkZWYgYXJtT3BlcmFuZAog
ICAgICAgICByYWlzZSAiQmFkIG9mZnNldCBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiBpZiBvZmZz
ZXQudmFsdWUgPCAtMHhmZiBvciBvZmZzZXQudmFsdWUgPiAweGZmZgotICAgICAgICAiWyN7YmFz
ZS5hcm1PcGVyYW5kfSwgXCMje29mZnNldC52YWx1ZX1dIgorICAgICAgICBpZiBvZmZzZXQudmFs
dWUgPT0gMAorICAgICAgICAgICJbI3tiYXNlLmFybU9wZXJhbmR9XSIKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICJbI3tiYXNlLmFybU9wZXJhbmR9LCBcIyN7b2Zmc2V0LnZhbHVlfV0iCisgICAg
ICAgIGVuZAogICAgIGVuZAogZW5kCiAKQEAgLTMwNiwxNiArMzE5LDI1IEBAIGNsYXNzIFNlcXVl
bmNlCiAgICAgICAgIHJlc3VsdCA9IGFybUxvd2VyTGFiZWxSZWZlcmVuY2VzKHJlc3VsdCkKICAg
ICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzKHJlc3VsdCkgewogICAg
ICAgICAgICAgfCBub2RlLCBhZGRyZXNzIHwKLSAgICAgICAgICAgIGlmIGFkZHJlc3MuaXNfYT8g
QmFzZUluZGV4Ci0gICAgICAgICAgICAgICAgYWRkcmVzcy5vZmZzZXQudmFsdWUgPT0gMAotICAg
ICAgICAgICAgZWxzaWYgYWRkcmVzcy5pc19hPyBBZGRyZXNzCi0gICAgICAgICAgICAgICAgKC0w
eGZmLi4weGZmZikuaW5jbHVkZT8gYWRkcmVzcy5vZmZzZXQudmFsdWUKKyAgICAgICAgICAgIGNh
c2Ugbm9kZS5vcGNvZGUKKyAgICAgICAgICAgIHdoZW4gImxvYWQyaWEiLCAic3RvcmUyaWEiCisg
ICAgICAgICAgICAgICAgaWYgYWRkcmVzcy5pc19hPyBBZGRyZXNzCisgICAgICAgICAgICAgICAg
ICAgIChhZGRyZXNzLm9mZnNldC52YWx1ZSAlIDQgPT0gMCkgJiYgKCgtMTAyMy4uMTAyMykuaW5j
bHVkZT8gYWRkcmVzcy5vZmZzZXQudmFsdWUpCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICBmYWxzZQorICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIGZhbHNlCisgICAgICAgICAgICAgICAgaWYgYWRkcmVzcy5pc19h
PyBCYXNlSW5kZXgKKyAgICAgICAgICAgICAgICAgICAgYWRkcmVzcy5vZmZzZXQudmFsdWUgPT0g
MCAmJiBub2RlLm9wY29kZQorICAgICAgICAgICAgICAgIGVsc2lmIGFkZHJlc3MuaXNfYT8gQWRk
cmVzcworICAgICAgICAgICAgICAgICAgICAoLTB4ZmYuLjB4ZmZmKS5pbmNsdWRlPyBhZGRyZXNz
Lm9mZnNldC52YWx1ZQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
ZmFsc2UKKyAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGVuZAogICAgICAgICB9CiAg
ICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc0RvdWJsZShyZXN1bHQp
Ci0gICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMocmVzdWx0LCBb
InN0b3JlYiIsICJzdG9yZWgiLCAic3RvcmVpIiwgInN0b3JlcCIsICJzdG9yZXEiXSkKKyAgICAg
ICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkSW1tZWRpYXRlcyhyZXN1bHQsIFsic3RvcmVi
IiwgInN0b3JlaCIsICJzdG9yZWkiLCAic3RvcmVwIiwgInN0b3JlcSIsICJzdG9yZTJpYSJdKQog
ICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVzKHJlc3VsdCwgMC4u
MHhmZiwgMC4uMHgwZmYpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEFkZHJl
c3NlcyhyZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlclJlZ2lzdGVyUmV1c2UocmVz
dWx0KQpAQCAtMzM0LDYgKzM1NiwxMCBAQCBkZWYgYXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRz
KQogICAgIGFybU9wZXJhbmRzKFtvcGVyYW5kc1stMV1dICsgb3BlcmFuZHNbMC4uLTJdKQogZW5k
CiAKK2RlZiBhcm1GbGlwcGVkT3BlcmFuZHNQYWlyKG9wZXJhbmRzKQorICAgIGFybU9wZXJhbmRz
KFtvcGVyYW5kc1stMl0sIG9wZXJhbmRzWy0xXV0gKyBvcGVyYW5kc1swLi4tM10pCitlbmQKKwog
ZGVmIGVtaXRBcm1Db21wYWN0KG9wY29kZTIsIG9wY29kZTMsIG9wZXJhbmRzKQogICAgIGlmIG9w
ZXJhbmRzLnNpemUgPT0gMwogICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlM30gI3thcm1GbGlw
cGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKQEAgLTM2Myw2ICszODksMTIgQEAgZGVmIGVtaXRBcm1E
b3VibGVCcmFuY2goYnJhbmNoT3Bjb2RlLCBvcGVyYW5kcykKICAgICAkYXNtLnB1dHMgIiN7YnJh
bmNoT3Bjb2RlfSAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKIGVuZAogCitkZWYgZW1pdEFybVNp
bmdsZUJyYW5jaChicmFuY2hPcGNvZGUsIG9wZXJhbmRzKQorICAgICRhc20ucHV0cyAidmNtcGUu
ZjMyICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9Igor
ICAgICRhc20ucHV0cyAidm1ycyBhcHNyX256Y3YsIGZwc2NyIgorICAgICRhc20ucHV0cyAiI3ti
cmFuY2hPcGNvZGV9ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorZW5kCisKIGRlZiBlbWl0QXJt
VGVzdChvcGVyYW5kcykKICAgICB2YWx1ZSA9IG9wZXJhbmRzWzBdCiAgICAgY2FzZSBvcGVyYW5k
cy5zaXplCkBAIC0zODMsNyArNDE1LDE1IEBAIGVuZAogCiBkZWYgZW1pdEFybURvdWJsZUNvbXBh
cmUob3BlcmFuZHMsIGNvZGUpCiAgICAgJGFzbS5wdXRzICJtb3YgI3tvcGVyYW5kc1syXS5hcm1P
cGVyYW5kfSwgXCMwIgotICAgICRhc20ucHV0cyAidmNtcGUuZjY0ICN7YXJtT3BlcmFuZHMob3Bl
cmFuZHNbMC4uMV0pfSIKKyAgICAkYXNtLnB1dHMgInZjbXAuZjY0ICN7YXJtT3BlcmFuZHMob3Bl
cmFuZHNbMC4uMV0pfSIKKyAgICAkYXNtLnB1dHMgInZtcnMgQVBTUl9uemN2LCBGUFNDUiIKKyAg
ICAkYXNtLnB1dHMgIml0ICN7Y29kZX0iCisgICAgJGFzbS5wdXRzICJtb3Yje2NvZGV9ICN7b3Bl
cmFuZHNbMl0uYXJtT3BlcmFuZH0sIFwjMSIKK2VuZAorCitkZWYgZW1pdEFybUZsb2F0Q29tcGFy
ZShvcGVyYW5kcywgY29kZSkKKyAgICAkYXNtLnB1dHMgIm1vdiAje29wZXJhbmRzWzJdLmFybU9w
ZXJhbmR9LCBcIzAiCisgICAgJGFzbS5wdXRzICJ2Y21wLmYzMiAje29wZXJhbmRzWzBdLmFybVNp
bmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKICAgICAkYXNtLnB1dHMgInZtcnMgQVBT
Ul9uemN2LCBGUFNDUiIKICAgICAkYXNtLnB1dHMgIml0ICN7Y29kZX0iCiAgICAgJGFzbS5wdXRz
ICJtb3Yje2NvZGV9ICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sIFwjMSIKQEAgLTQwMyw2ICs0
NDMsMTkgQEAgZGVmIGVtaXRBcm1UZXN0U2V0KG9wZXJhbmRzLCBjb2RlKQogICAgICRhc20ucHV0
cyAibW92I3tjb2RlfSAje29wZXJhbmRzWy0xXS5hcm1PcGVyYW5kfSwgXCMxIgogZW5kCiAKK2Rl
ZiByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCB0ZXh0KQorICAgIHJldHVybiBJbnN0cnVjdGlv
bi5uZXcoY29kZU9yaWdpbiwgImVtaXQiLCBbU3RyaW5nTGl0ZXJhbC5uZXcoY29kZU9yaWdpbiwg
IlwiI3t0ZXh0fVwiIildKQorZW5kCisKK2RlZiBlbWl0QXJtVHJ1bmNhdGVGbG9hdChjb2RlT3Jp
Z2luLCB0bywgZnJvbSwgb3BlcmFuZHMpCisgICAgdG1wID0gQVJNX0VYVFJBX0ZQUlNbLTFdCisg
ICAgc3JjID0gZnJvbSA9PSAiZjMyIiA/IG9wZXJhbmRzWzBdLmFybVNpbmdsZSA6IG9wZXJhbmRz
WzBdLmFybU9wZXJhbmQKKyAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAgICAgICBy
YXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAidmN2dC4je3RvfS4je2Zyb219ICN7dG1wLmFybVNp
bmdsZX0sICN7c3JjfSIpLAorICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAidm1v
diAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje3RtcC5hcm1TaW5nbGV9IikKKyAgICBdKS5s
b3dlcigkYWN0aXZlQmFja2VuZCkKK2VuZAorCiBjbGFzcyBJbnN0cnVjdGlvbgogICAgIGRlZiBs
b3dlckFSTXY3CiAgICAgICAgIHJhaXNlIHVubGVzcyAkYWN0aXZlQmFja2VuZCA9PSAiQVJNdjci
CkBAIC00NDAsNiArNDkzLDEwIEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICAgICAg
ICAgICRhc20ucHV0cyAiYWRkI3tzdWZmaXh9ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRz
KX0iCiAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAi
YWRjaSIKKyAgICAgICAgICAgIGVtaXRBcm0oImFkYyIsIG9wZXJhbmRzKQorICAgICAgICB3aGVu
ICJhYnNkIgorICAgICAgICAgICRhc20ucHV0cyAidmFicy5mNjQgI3thcm1GbGlwcGVkT3BlcmFu
ZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAiYW5kaSIsICJhbmRwIgogICAgICAgICAgICAg
ZW1pdEFybUNvbXBhY3QoImFuZHMiLCAiYW5kIiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gIm9y
aSIsICJvcnAiLCAib3JoIgpAQCAtNDU4LDE0ICs1MTUsMzQgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24K
ICAgICAgICAgICAgIGVtaXRBcm0oIm11bCIsIG9wZXJhbmRzKQogICAgICAgICB3aGVuICJzdWJp
IiwgInN1YnAiLCAic3ViaXMiCiAgICAgICAgICAgICBlbWl0QXJtQ29tcGFjdCgic3VicyIsICJz
dWJzIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInNiY2kiCisgICAgICAgICAgICBlbWl0QXJt
KCJzYmMiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAibmVnaSIsICJuZWdwIgogICAgICAgICAg
ICAgJGFzbS5wdXRzICJyc2JzICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNb
MF0uYXJtT3BlcmFuZH0sIFwjMCIKICAgICAgICAgd2hlbiAibm90aSIKICAgICAgICAgICAgICRh
c20ucHV0cyAibXZucyAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFy
bU9wZXJhbmR9IgorICAgICAgICB3aGVuICJscm90YXRlaSIKKyAgICAgICAgICAgIHRtcCA9IFRt
cC5uZXcoY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgIFNlcXVlbmNlLm5ldyhjb2RlT3Jp
Z2luLCBbCisgICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJtb3Zl
IiwgW29wZXJhbmRzWzBdLCB0bXBdKSwKKyAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXco
Y29kZU9yaWdpbiwgIm5lZ2kiLCBbdG1wXSksCisgICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24u
bmV3KGNvZGVPcmlnaW4sICJycm90YXRlaSIsIFt0bXAsIG9wZXJhbmRzWzFdXSksCisgICAgICAg
ICAgICBdKS5sb3dlcigkYWN0aXZlQmFja2VuZCkKKyAgICAgICAgd2hlbiAicnJvdGF0ZWkiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgInJvciAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9
IgorICAgICAgICB3aGVuICJ0emNudGkiCisgICAgICAgICAgICAkYXNtLnB1dHMgInJiaXQgI3th
cm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiY2x6
ICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCisg
ICAgICAgIHdoZW4gImx6Y250aSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiY2x6ICN7YXJtRmxp
cHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gImxvYWRpIiwgImxvYWRpcyIs
ICJsb2FkcCIKICAgICAgICAgICAgICRhc20ucHV0cyAibGRyICN7YXJtRmxpcHBlZE9wZXJhbmRz
KG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gInN0b3JlaSIsICJzdG9yZXAiCiAgICAgICAgICAg
ICAkYXNtLnB1dHMgInN0ciAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4g
ImxvYWQyaWEiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmQgI3thcm1GbGlwcGVkT3BlcmFu
ZHNQYWlyKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN0b3JlMmlhIgorICAgICAgICAgICAg
JGFzbS5wdXRzICJzdHJkICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAi
bG9hZGIiCiAgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmIgI3thcm1GbGlwcGVkT3BlcmFuZHMo
b3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAibG9hZGJzaSIKQEAgLTQ3OCwyMCArNTU1LDExMCBA
QCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgJGFzbS5wdXRzICJsZHJzaC53ICN7YXJt
RmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gInN0b3JlaCIKICAgICAg
ICAgICAgICRhc20ucHV0cyAic3RyaCAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAg
IHdoZW4gImxvYWRsaW5rYiIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRyZXhiICN7YXJtRmxp
cHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRsaW5raCIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAibGRyZXhoICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0i
CisgICAgICAgIHdoZW4gImxvYWRsaW5raSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRyZXgg
I3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGxpbmsy
aSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRyZXhkICN7YXJtRmxpcHBlZE9wZXJhbmRzUGFp
cihvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9yZWNvbmRiIgorICAgICAgICAgICAgJGFz
bS5wdXRzICJzdHJleGIgI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJz
dG9yZWNvbmRoIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzdHJleGggI3thcm1PcGVyYW5kcyhv
cGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9yZWNvbmRpIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJzdHJleCAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN0b3Jl
Y29uZDJpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzdHJleGQgI3thcm1PcGVyYW5kcyhvcGVy
YW5kcyl9IgogICAgICAgICB3aGVuICJsb2FkZCIKICAgICAgICAgICAgICRhc20ucHV0cyAidmxk
ci42NCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJzdG9y
ZWQiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZzdHIuNjQgI3thcm1PcGVyYW5kcyhvcGVyYW5k
cyl9IgorICAgICAgICB3aGVuICJsb2FkZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmxkci4z
MiAje29wZXJhbmRzWy0xXS5hcm1TaW5nbGV9LCAje2FybU9wZXJhbmRzKG9wZXJhbmRzWzAuLi0y
XSl9IgorICAgICAgICB3aGVuICJzdG9yZWYiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZzdHIu
MzIgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9LCAje2FybU9wZXJhbmRzKG9wZXJhbmRzWzEuLi0x
XSl9IgorICAgICAgICB3aGVuICJhZGRmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2YWRkLmYz
MiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tv
cGVyYW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJzdWJmIgorICAgICAgICAgICAg
JGFzbS5wdXRzICJ2c3ViLmYzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNb
MV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJt
dWxmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bXVsLmYzMiAje29wZXJhbmRzWzFdLmFybVNp
bmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9
IgorICAgICAgICB3aGVuICJkaXZmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2ZGl2LmYzMiAj
e29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVy
YW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJzcXJ0ZiIKKyAgICAgICAgICAgICRh
c20ucHV0cyAidnNxcnQuZjMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sw
XS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJhYnNmIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJ2YWJzLmYzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2lu
Z2xlfSIKKyAgICAgICAgd2hlbiAibmVnZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm5lZy5m
MzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCisg
ICAgICAgIHdoZW4gImJmbHQiCisgICAgICAgICAgICBlbWl0QXJtU2luZ2xlQnJhbmNoKCJibWki
LCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmZsdHVuIgorICAgICAgICAgICAgZW1pdEFybVNp
bmdsZUJyYW5jaCgiYmx0Iiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJmbHRlcXVuIgorICAg
ICAgICAgICAgZW1pdEFybVNpbmdsZUJyYW5jaCgiYmxlIiwgb3BlcmFuZHMpCisgICAgICAgIHdo
ZW4gImJmZXEiCisgICAgICAgICAgICBlbWl0QXJtU2luZ2xlQnJhbmNoKCJiZXEiLCBvcGVyYW5k
cykKKyAgICAgICAgd2hlbiAiYmZndCIKKyAgICAgICAgICAgIGVtaXRBcm1TaW5nbGVCcmFuY2go
ImJndCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZmd0ZXF1biIKKyAgICAgICAgICAgIGVt
aXRBcm1TaW5nbGVCcmFuY2goImJwbCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZGx0dW4i
CisgICAgICAgICAgICBlbWl0QXJtRG91YmxlQnJhbmNoKCJibHQiLCBvcGVyYW5kcykKICAgICAg
ICAgd2hlbiAiYWRkZCIKICAgICAgICAgICAgIGVtaXRBcm0oInZhZGQuZjY0Iiwgb3BlcmFuZHMp
Ci0gICAgICAgIHdoZW4gImRpdmQiCi0gICAgICAgICAgICBlbWl0QXJtKCJ2ZGl2LmY2NCIsIG9w
ZXJhbmRzKQogICAgICAgICB3aGVuICJzdWJkIgogICAgICAgICAgICAgZW1pdEFybSgidnN1Yi5m
NjQiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAibXVsZCIKICAgICAgICAgICAgIGVtaXRBcm0o
InZtdWwuZjY0Iiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImRpdmQiCisgICAgICAgICAgICBl
bWl0QXJtKCJ2ZGl2LmY2NCIsIG9wZXJhbmRzKQogICAgICAgICB3aGVuICJzcXJ0ZCIKICAgICAg
ICAgICAgICRhc20ucHV0cyAidnNxcnQuZjY0ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRz
KX0iCisgICAgICAgIHdoZW4gIm5lZ2QiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZuZWcuZjY0
ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gIm9yZiIKKyAg
ICAgICAgICAgICh0bXBMaHMsIHRtcFJocykgPSBBUk1fRVhUUkFfR1BSU1stMi4uLTFdCisgICAg
ICAgICAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAgICAgICAgICAgICByYXdJbnN0
cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBMaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFu
ZHNbMF0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3Jp
Z2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xl
fSIpLAorICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgIm9yaSIsIFt0
bXBMaHMsIHRtcFJoc10pLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2lu
LCAgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje3RtcFJocy5hcm1PcGVyYW5kfSIp
CisgICAgICAgICAgICBdKS5sb3dlcigkYWN0aXZlQmFja2VuZCkKKyAgICAgICAgd2hlbiAiYW5k
ZiIKKyAgICAgICAgICAgICh0bXBMaHMsIHRtcFJocykgPSBBUk1fRVhUUkFfR1BSU1stMi4uLTFd
CisgICAgICAgICAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAgICAgICAgICAgICBy
YXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBMaHMuYXJtT3BlcmFuZH0sICN7
b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihj
b2RlT3JpZ2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJt
U2luZ2xlfSIpLAorICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImFu
ZGkiLCBbdG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29k
ZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3t0bXBSaHMuYXJtT3Bl
cmFuZH0iKQorICAgICAgICAgICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCisgICAgICAgIHdo
ZW4gIm9yZCIKKyAgICAgICAgICAgICh0bXBMaHMsIHRtcFJocykgPSBBUk1fRVhUUkFfR1BSU1st
Mi4uLTFdCisgICAgICAgICAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAgICAgICAg
ICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBMaHMuYXJtT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVj
dGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNb
MV0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdp
biwgIm9yaSIsIFt0bXBMaHMsIHRtcFJoc10pLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlv
bihjb2RlT3JpZ2luLCAgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje3RtcFJocy5h
cm1PcGVyYW5kfSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAg
InZtb3YgI3t0bXBMaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlSGl9Iiks
CisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcFJo
cy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGVIaX0iKSwKKyAgICAgICAgICAg
ICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJvcmkiLCBbdG1wTGhzLCB0bXBSaHNdKSwK
KyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFu
ZHNbMV0uYXJtU2luZ2xlSGl9LCAje3RtcFJocy5hcm1PcGVyYW5kfSIpCisgICAgICAgICAgICBd
KS5sb3dlcigkYWN0aXZlQmFja2VuZCkKKyAgICAgICAgd2hlbiAiYW5kZCIKKyAgICAgICAgICAg
ICh0bXBMaHMsIHRtcFJocykgPSBBUk1fRVhUUkFfR1BSU1stMi4uLTFdCisgICAgICAgICAgICBT
ZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihj
b2RlT3JpZ2luLCAgInZtb3YgI3t0bXBMaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJt
U2luZ2xlfSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZt
b3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIpLAorICAg
ICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImFuZGkiLCBbdG1wTGhzLCB0
bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92
ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3t0bXBSaHMuYXJtT3BlcmFuZH0iKSwKKyAgICAg
ICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9w
ZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZUhpfSIpLAorICAgICAgICAgICAgICByYXdJ
bnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7b3Bl
cmFuZHNbMV0uYXJtU2luZ2xlSGl9IiksCisgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhj
b2RlT3JpZ2luLCAiYW5kaSIsIFt0bXBMaHMsIHRtcFJoc10pLAorICAgICAgICAgICAgICByYXdJ
bnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGVIaX0s
ICN7dG1wUmhzLmFybU9wZXJhbmR9IikKKyAgICAgICAgICAgIF0pLmxvd2VyKCRhY3RpdmVCYWNr
ZW5kKQogICAgICAgICB3aGVuICJjaTJkcyIKICAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAj
e29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCiAgICAg
ICAgICAgICAkYXNtLnB1dHMgInZjdnQuZjY0LnMzMiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9
LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iCkBAIC01NDQsNiArNzExLDggQEAgY2xhc3MgSW5z
dHJ1Y3Rpb24KICAgICAgICAgd2hlbiAibW92ZHoiCiAgICAgICAgICAgICAjIEZJWE1FOiBlaXRo
ZXIgc3VwcG9ydCB0aGlzIG9yIHJlbW92ZSBpdC4KICAgICAgICAgICAgIHJhaXNlICJBUk0gZG9l
cyBub3Qgc3VwcG9ydCB0aGlzIG9wY29kZSB5ZXQsICN7Y29kZU9yaWdpbn0iCisgICAgICAgIHdo
ZW4gIm1vdmVkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92LmY2NCAje2FybUZsaXBwZWRP
cGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJwb3AiCiAgICAgICAgICAgICBvcGVy
YW5kcy5lYWNoIHsKICAgICAgICAgICAgICAgICB8IG9wIHwKQEAgLTU2MCw5ICs3MjksMTcgQEAg
Y2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAkYXNt
LnB1dHMgIm1vdiAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICAgICAg
ZW5kCisgICAgICAgIHdoZW4gIm1vdmVpaSIKKyAgICAgICAgICAgIHJhaXNlICJGaXJzdCBvcGVy
YW5kIG9mIG1vdmVpaSBtdXN0IGJlIGFuIGltbWVkaWF0ZSIgdW5sZXNzIG9wZXJhbmRzWzBdLmlt
bWVkaWF0ZT8KKyAgICAgICAgICAgIGFybU1vdmVJbW1lZGlhdGUob3BlcmFuZHNbMF0udmFsdWUg
Pj4gMzIsIG9wZXJhbmRzWzFdKQorICAgICAgICAgICAgYXJtTW92ZUltbWVkaWF0ZShvcGVyYW5k
c1swXS52YWx1ZSAmIDB4ZmZmZmZmZmYsIG9wZXJhbmRzWzJdKQogICAgICAgICB3aGVuICJtdmxi
bCIKICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdncgI3tvcGVyYW5kc1sxXS5hcm1PcGVy
YW5kfSwgXCM6bG93ZXIxNjoje29wZXJhbmRzWzBdLnZhbHVlfSIKICAgICAgICAgICAgICAgICAk
YXNtLnB1dHMgIm1vdnQgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgXCM6dXBwZXIxNjoje29w
ZXJhbmRzWzBdLnZhbHVlfSIKKyAgICAgICAgd2hlbiAic3hiMmkiCisgICAgICAgICAgICAkYXNt
LnB1dHMgInN4dGIgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hl
biAic3hoMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN4dGggI3thcm1GbGlwcGVkT3BlcmFu
ZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAibm9wIgogICAgICAgICAgICAgJGFzbS5wdXRz
ICJub3AiCiAgICAgICAgIHdoZW4gImJpZXEiLCAiYnBlcSIsICJiYmVxIgpAQCAtNjU2LDE0ICs4
MzMsNDYgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGVtaXRBcm1Db21wYXJlKG9w
ZXJhbmRzLCAibHQiKQogICAgICAgICB3aGVuICJjaWx0ZXEiLCAiY3BsdGVxIiwgImNibHRlcSIK
ICAgICAgICAgICAgIGVtaXRBcm1Db21wYXJlKG9wZXJhbmRzLCAibGUiKQotICAgICAgICB3aGVu
ICJjZGd0IgotICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMsICJndCIp
Ci0gICAgICAgIHdoZW4gImNkZ3RlcSIKLSAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJl
KG9wZXJhbmRzLCAiZ2UiKQorICAgICAgICB3aGVuICJjZmVxIgorICAgICAgICAgICAgZW1pdEFy
bUZsb2F0Q29tcGFyZShvcGVyYW5kcywgImVxIikKKyAgICAgICAgd2hlbiAiY2ZuZXF1biIKKyAg
ICAgICAgICAgIGVtaXRBcm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJuZSIpCisgICAgICAgIHdo
ZW4gImNmbHQiCisgICAgICAgICAgICBlbWl0QXJtRmxvYXRDb21wYXJlKG9wZXJhbmRzLCAibWki
KQorICAgICAgICB3aGVuICJjZmx0ZXEiCisgICAgICAgICAgICBlbWl0QXJtRmxvYXRDb21wYXJl
KG9wZXJhbmRzLCAibHMiKQorICAgICAgICB3aGVuICJjZmd0IgorICAgICAgICAgICAgZW1pdEFy
bUZsb2F0Q29tcGFyZShvcGVyYW5kcywgImd0IikKKyAgICAgICAgd2hlbiAiY2ZndGVxIgorICAg
ICAgICAgICAgZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywgImdlIikKKyAgICAgICAgd2hl
biAiY2RlcSIKKyAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAiZXEi
KQorICAgICAgICB3aGVuICJjZG5lcXVuIgorICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBh
cmUob3BlcmFuZHMsICJuZSIpCiAgICAgICAgIHdoZW4gImNkbHQiCiAgICAgICAgICAgICBlbWl0
QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywgIm1pIikKICAgICAgICAgd2hlbiAiY2RsdGVxIgog
ICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMsICJscyIpCisgICAgICAg
IHdoZW4gImNkZ3QiCisgICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywg
Imd0IikKKyAgICAgICAgd2hlbiAiY2RndGVxIgorICAgICAgICAgICAgZW1pdEFybURvdWJsZUNv
bXBhcmUob3BlcmFuZHMsICJnZSIpCisgICAgICAgIHdoZW4gImNmMmQiCisgICAgICAgICAgICAk
YXNtLnB1dHMgInZjdnQuZjY0LmYzMiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje29wZXJh
bmRzWzBdLmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gImNkMmYiCisgICAgICAgICAgICAkYXNt
LnB1dHMgInZjdnQuZjMyLmY2NCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNb
MF0uYXJtT3BlcmFuZH0iCisgICAgICAgIHdoZW4gImNpMmYiCisgICAgICAgICAgICAkYXNtLnB1
dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybU9wZXJh
bmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmYzMi51MzIgI3tvcGVyYW5kc1sxXS5h
cm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gImNpMmZz
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwg
I3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmN2dC5m
MzIuczMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9
IgorICAgICAgICB3aGVuICJjaTJkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3Bl
cmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAidmN2dC5mNjQudTMyICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sICN7
b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAiY2kyZHMiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBd
LmFybU9wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmY2NC5zMzIgI3tvcGVy
YW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IgogICAgICAgICB3
aGVuICJ0aXMiLCAidGJzIiwgInRwcyIKICAgICAgICAgICAgIGVtaXRBcm1UZXN0U2V0KG9wZXJh
bmRzLCAibWkiKQogICAgICAgICB3aGVuICJ0aXoiLCAidGJ6IiwgInRweiIKQEAgLTY3NCwxMCAr
ODgzLDIyIEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICAkYXNtLnB1dHMgImxkciAj
e29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCBbc3AsIFwjI3tvcGVyYW5kc1swXS52YWx1ZSAqIDR9
XSIKICAgICAgICAgd2hlbiAicG9rZSIKICAgICAgICAgICAgICRhc20ucHV0cyAic3RyICN7b3Bl
cmFuZHNbMV0uYXJtT3BlcmFuZH0sIFtzcCwgXCMje29wZXJhbmRzWzBdLnZhbHVlICogNH1dIgor
ICAgICAgICB3aGVuICJmaTJmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFu
ZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgd2hl
biAiZmYyaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybU9w
ZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCiAgICAgICAgIHdoZW4gImZpaTJkIgog
ICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7
b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCiAgICAg
ICAgIHdoZW4gImZkMmlpIgogICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNb
MV0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0u
YXJtT3BlcmFuZH0iCisgICAgICAgIHdoZW4gInRydW5jYXRlZjJpIgorICAgICAgICAgICAgZW1p
dEFybVRydW5jYXRlRmxvYXQoY29kZU9yaWdpbiwgInUzMiIsICJmMzIiLCBvcGVyYW5kcykKKyAg
ICAgICAgd2hlbiAidHJ1bmNhdGVmMmlzIgorICAgICAgICAgICAgZW1pdEFybVRydW5jYXRlRmxv
YXQoY29kZU9yaWdpbiwgInMzMiIsICJmMzIiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAidHJ1
bmNhdGVkMmkiCisgICAgICAgICAgICBlbWl0QXJtVHJ1bmNhdGVGbG9hdChjb2RlT3JpZ2luLCAi
dTMyIiwgImY2NCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJ0cnVuY2F0ZWQyaXMiCisgICAg
ICAgICAgICBlbWl0QXJtVHJ1bmNhdGVGbG9hdChjb2RlT3JpZ2luLCAiczMyIiwgImY2NCIsIG9w
ZXJhbmRzKQogICAgICAgICB3aGVuICJibyIKICAgICAgICAgICAgICRhc20ucHV0cyAiYnZzICN7
b3BlcmFuZHNbMF0uYXNtTGFiZWx9IgogICAgICAgICB3aGVuICJicyIKQEAgLTY4NiwxMyArOTA3
LDE3IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICAkYXNtLnB1dHMgImJlcSAje29w
ZXJhbmRzWzBdLmFzbUxhYmVsfSIKICAgICAgICAgd2hlbiAiYm56IgogICAgICAgICAgICAgJGFz
bS5wdXRzICJibmUgI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJjcyIK
KyAgICAgICAgICAgICRhc20ucHV0cyAiYmNzICN7b3BlcmFuZHNbMF0uYXNtTGFiZWx9IgogICAg
ICAgICB3aGVuICJsZWFpIiwgImxlYXAiCiAgICAgICAgICAgICBvcGVyYW5kc1swXS5hcm1FbWl0
TGVhKG9wZXJhbmRzWzFdKQotICAgICAgICB3aGVuICJzbXVsbGkiCisgICAgICAgIHdoZW4gInNt
dWxsaSIsICJ1bXVsbGkiCiAgICAgICAgICAgICByYWlzZSAiV3JvbmcgbnVtYmVyIG9mIGFyZ3Vt
ZW50cyB0byBzbXVsbCBpbiAje3NlbGYuaW5zcGVjdH0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIg
dW5sZXNzIG9wZXJhbmRzLmxlbmd0aCA9PSA0Ci0gICAgICAgICAgICAkYXNtLnB1dHMgInNtdWxs
ICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbM10uYXJtT3BlcmFuZH0sICN7
b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCisgICAg
ICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlWzAuLi0yXX0gI3tvcGVyYW5kc1syXS5hcm1PcGVy
YW5kfSwgI3tvcGVyYW5kc1szXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5k
fSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSIKICAgICAgICAgd2hlbiAibWVtZmVuY2UiCiAg
ICAgICAgICAgICAkYXNtLnB1dHMgImRtYiBzeSIKKyAgICAgICAgd2hlbiAiZmVuY2UiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgImRtYiBpc2giCiAgICAgICAgIHdoZW4gImNscmJwIgogICAgICAg
ICAgICAgJGFzbS5wdXRzICJiaWMgI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5k
c1swXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSIKICAgICAgICAgd2hl
biAiZ2xvYmFsYWRkciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL2luc3RydWN0aW9ucy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2lu
c3RydWN0aW9ucy5yYgppbmRleCA1NGIwMjdmM2RhMDE3NzM4MzQ1ZTlkMmI2MThmNzQ4MGYwODRl
ZDQ0Li43ZTI4MGI3Zjc4YjQ2ZGY0Njg0MTZmYTVhNDUxYjY5YjMxYmRmYTgxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCkBAIC01OSw2
ICs1OSw3IEBAIE1BQ1JPX0lOU1RSVUNUSU9OUyA9CiAgICAgICJycm90YXRlcSIsCiAgICAgICJz
dWJpIiwKICAgICAgInhvcmkiLAorICAgICAibG9hZDJpYSIsCiAgICAgICJsb2FkaSIsCiAgICAg
ICJsb2FkaXMiLAogICAgICAibG9hZGIiLApAQCAtNjcsNiArNjgsNyBAQCBNQUNST19JTlNUUlVD
VElPTlMgPQogICAgICAibG9hZGgiLAogICAgICAibG9hZGhzaSIsCiAgICAgICJsb2FkaHNxIiwK
KyAgICAgInN0b3JlMmlhIiwKICAgICAgInN0b3JlaSIsCiAgICAgICJzdG9yZWgiLAogICAgICAi
c3RvcmViIiwKQEAgLTM3Nyw5ICszNzksMjEgQEAgWDg2X0lOU1RSVUNUSU9OUyA9CiAKIEFSTV9J
TlNUUlVDVElPTlMgPQogICAgIFsKKyAgICAgImFkY2kiLAorICAgICAiYmNzIiwKICAgICAgImNs
cmJwIiwKICAgICAgIm12bGJsIiwKLSAgICAgImdsb2JhbGFkZHIiCisgICAgICJnbG9iYWxhZGRy
IiwKKyAgICAgInNiY2kiLAorICAgICAibW92ZWlpIiwKKyAgICAgImxvYWRsaW5rYiIsCisgICAg
ICJsb2FkbGlua2giLAorICAgICAibG9hZGxpbmtpIiwKKyAgICAgImxvYWRsaW5rMmkiLAorICAg
ICAic3RvcmVjb25kYiIsCisgICAgICJzdG9yZWNvbmRoIiwKKyAgICAgInN0b3JlY29uZGkiLAor
ICAgICAic3RvcmVjb25kMmkiLAogICAgIF0KIAogQVJNNjRfSU5TVFJVQ1RJT05TID0KQEAgLTQz
MSw2ICs0NDUsNyBAQCBBUk02NF9JTlNUUlVDVElPTlMgPQogUklTQ19JTlNUUlVDVElPTlMgPQog
ICAgIFsKICAgICAgInNtdWxsaSIsICAjIE11bHRpcGx5IHR3byAzMi1iaXQgd29yZHMgYW5kIHBy
b2R1Y2UgYSA2NC1iaXQgd29yZAorICAgICAidW11bGxpIiwgICMgTXVsdGlwbHkgdHdvIDMyLWJp
dCB3b3JkcyBhbmQgcHJvZHVjZSBhIDY0LWJpdCB3b3JkCiAgICAgICJhZGRpcyIsICAgIyBBZGQg
aW50ZWdlcnMgYW5kIHNldCBhIGZsYWcuCiAgICAgICJzdWJpcyIsICAgIyBTYW1lLCBidXQgZm9y
IHN1YnRyYWN0aW9uLgogICAgICAib3JpcyIsICAgICMgU2FtZSwgYnV0IGZvciBiaXR3aXNlIG9y
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJz
LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiCmluZGV4
IDBkYzQ0YzIzZGZiMmJhZDM2NWEwZmViNTcxMDNhZDJmZDMzZmVhZTQuLjY3ZjUyNzFhNTM3NWFj
MWYxMzQ0Yjg2OTM3NWI3ODBhODdhY2I5OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9yZWdpc3RlcnMucmIKQEAgLTU4LDcgKzU4LDggQEAgR1BSUyA9CiAgICAgICJj
c3I3IiwKICAgICAgImNzcjgiLAogICAgICAiY3NyOSIsCi0gICAgICJjc3IxMCIKKyAgICAgImNz
cjEwIiwKKyAgICAgImludmFsaWRHUFIiCiAgICAgXQogCiBGUFJTID0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiCmluZGV4IDBmMDcyZTlmZDExZTE1ODVhYWYzZGQ4ZWIw
NTBmZmQ5NDYyMzlkZjIuLjM0NjQ1OTYyZjc0MzA1ZjM2ZDU4YzlmMjdkNGU0NGViZGI1MzRmZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYgpAQCAtMjU5LDggKzI1
OSwxMiBAQCBkZWYgcmlzY0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzRG91YmxlKGxpc3QpCiAgICAg
ICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCiAgICAgICAgICAgICB3aGVuICJsb2FkZCIKICAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJs
b2FkZCIsIFtub2RlLm9wZXJhbmRzWzBdLnJpc2NEb3VibGVBZGRyZXNzKG5ld0xpc3QpLCBub2Rl
Lm9wZXJhbmRzWzFdXSwgbm9kZS5hbm5vdGF0aW9uKQorICAgICAgICAgICAgd2hlbiAibG9hZGYi
CisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3Jp
Z2luLCAibG9hZGYiLCBbbm9kZS5vcGVyYW5kc1swXS5yaXNjRG91YmxlQWRkcmVzcyhuZXdMaXN0
KSwgbm9kZS5vcGVyYW5kc1sxXV0sIG5vZGUuYW5ub3RhdGlvbikKICAgICAgICAgICAgIHdoZW4g
InN0b3JlZCIKICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2Rl
LmNvZGVPcmlnaW4sICJzdG9yZWQiLCBbbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5vcGVyYW5kc1sx
XS5yaXNjRG91YmxlQWRkcmVzcyhuZXdMaXN0KV0sIG5vZGUuYW5ub3RhdGlvbikKKyAgICAgICAg
ICAgIHdoZW4gInN0b3JlZiIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sICJzdG9yZWYiLCBbbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5v
cGVyYW5kc1sxXS5yaXNjRG91YmxlQWRkcmVzcyhuZXdMaXN0KV0sIG5vZGUuYW5ub3RhdGlvbikK
ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKICAgICAg
ICAgICAgIGVuZApAQCAtMzY5LDcgKzM3Myw3IEBAIGRlZiByaXNjTG93ZXJNYWxmb3JtZWRJbW1l
ZGlhdGVzKGxpc3QsIHZhbGlkSW1tZWRpYXRlcywgdmFsaWRMb2dpY2FsSW1tZWRpYXRlcykKICAg
ICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgYW5ub3RhdGlvbiA9
IG5vZGUuYW5ub3RhdGlvbgogICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQotICAgICAgICAg
ICAgd2hlbiAibW92ZSIKKyAgICAgICAgICAgIHdoZW4gIm1vdmUiLCAibW92ZWlpIgogICAgICAg
ICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQogICAgICAgICAgICAgd2hlbiAiYWRkaSIsICJhZGRw
IiwgImFkZHEiLCAiYWRkaXMiLCAic3ViaSIsICJzdWJwIiwgInN1YnEiLCAic3ViaXMiCiAgICAg
ICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUgYW5kCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKaW5kZXggMjMxMjg5NGRhNDdm
YWQ5YzIzYTg2YzIzMWY2MGJjYmEzNzc1YTMxMS4uZjU0MTg4NzdlZTY0ZDExZTkwYWY2MTg2ODkw
MzZjMzU3YmM2NjBhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDSlNWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFs
dWUuaApAQCAtMTYyLDggKzE2Miw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIHVp
bnQzMl90IE51bGxUYWcgPSAgICAgICAgIDB4ZmZmZmZmZmQ7CiAgICAgc3RhdGljIGNvbnN0ZXhw
ciB1aW50MzJfdCBVbmRlZmluZWRUYWcgPSAgICAweGZmZmZmZmZjOwogICAgIHN0YXRpYyBjb25z
dGV4cHIgdWludDMyX3QgQ2VsbFRhZyA9ICAgICAgICAgMHhmZmZmZmZmYjsKLSAgICBzdGF0aWMg
Y29uc3RleHByIHVpbnQzMl90IEVtcHR5VmFsdWVUYWcgPSAgIDB4ZmZmZmZmZmE7Ci0gICAgc3Rh
dGljIGNvbnN0ZXhwciB1aW50MzJfdCBEZWxldGVkVmFsdWVUYWcgPSAweGZmZmZmZmY5OworICAg
IHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgV2FzbVRhZyA9ICAgICAgICAgMHhmZmZmZmZmYTsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IEVtcHR5VmFsdWVUYWcgPSAgIDB4ZmZmZmZm
Zjk7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBEZWxldGVkVmFsdWVUYWcgPSAweGZm
ZmZmZmY4OwogCiAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBMb3dlc3RUYWcgPSAgRGVs
ZXRlZFZhbHVlVGFnOwogI2VuZGlmCkBAIC0xODAsNiArMTgxLDkgQEAgcHVibGljOgogICAgIGVu
dW0gRW5jb2RlQXNCaWdJbnQzMlRhZyB7IEVuY29kZUFzQmlnSW50MzIgfTsKICNlbmRpZgogICAg
IGVudW0gRW5jb2RlQXNEb3VibGVUYWcgeyBFbmNvZGVBc0RvdWJsZSB9OworI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkgJiYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBlbnVtIEVuY29kZUFzVW5ib3hl
ZEZsb2F0VGFnIHsgRW5jb2RlQXNVbmJveGVkRmxvYXQgfTsKKyNlbmRpZgogCiAgICAgSlNWYWx1
ZSgpOwogICAgIEpTVmFsdWUoSlNOdWxsVGFnKTsKQEAgLTE5MSw2ICsxOTUsOSBAQCBwdWJsaWM6
CiAjaWYgVVNFKEJJR0lOVDMyKQogICAgIEpTVmFsdWUoRW5jb2RlQXNCaWdJbnQzMlRhZywgaW50
MzJfdCk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgSlNWYWx1ZShFbmNvZGVBc1VuYm94ZWRGbG9hdFRhZywgZmxvYXQpOworI2VuZGlm
CiAKICAgICAvLyBOdW1iZXJzCiAgICAgSlNWYWx1ZShFbmNvZGVBc0RvdWJsZVRhZywgZG91Ymxl
KTsKQEAgLTU5Miw2ICs1OTksMTMgQEAgQUxXQVlTX0lOTElORSBKU1ZhbHVlIGpzQmlnSW50MzIo
aW50MzJfdCBpbnRWYWx1ZSkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAm
JiBVU0UoSlNWQUxVRTMyXzY0KQorQUxXQVlTX0lOTElORSBKU1ZhbHVlIHdhc21VbmJveGVkRmxv
YXQoZmxvYXQgZikKK3sKKyAgICByZXR1cm4gSlNWYWx1ZShKU1ZhbHVlOjpFbmNvZGVBc1VuYm94
ZWRGbG9hdCwgZik7Cit9CisjZW5kaWYKKwogQUxXQVlTX0lOTElORSBKU1ZhbHVlIGpzRG91Ymxl
TnVtYmVyKGRvdWJsZSBkKQogewogICAgIEFTU0VSVChKU1ZhbHVlKEpTVmFsdWU6OkVuY29kZUFz
RG91YmxlLCBkKS5pc051bWJlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCmluZGV4IDk2MDlkMDliZWVhYTIwZjQzN2RkYTFmOWEw
NjQxOTJkZWNmYzAxYjcuLjg4MTAzYzAxZTc4MzkzOTRhM2U4NTAyN2I1MzE5ZmRhNzE5Zjc1ODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxp
bmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGlu
ZXMuaApAQCAtNjE5LDYgKzYxOSwxMyBAQCBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShFbmNvZGVB
c0JpZ0ludDMyVGFnLCBpbnQzMl90IHZhbHVlKQogfQogI2VuZGlmIC8vIFVTRShCSUdJTlQzMikK
IAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgVVNFKEpTVkFMVUUzMl82NCkKK2lubGluZSBK
U1ZhbHVlOjpKU1ZhbHVlKEVuY29kZUFzVW5ib3hlZEZsb2F0VGFnLCBmbG9hdCB2YWx1ZSkKK3sK
KyAgICB1LmFzQml0cy5wYXlsb2FkID0gYml0d2lzZV9jYXN0PGludDMyX3Q+KHZhbHVlKTsKK30K
KyNlbmRpZgorCiBpbmxpbmUgaW50NjRfdCB0cnlDb252ZXJ0VG9JbnQ1Mihkb3VibGUgbnVtYmVy
KQogewogICAgIGlmIChudW1iZXIgIT0gbnVtYmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAKaW5kZXggMDFkYjI4YmIzYjMyYzczMTVm
YmFhZmQzOWUzODZkN2FlMWEyOGExNC4uNTkwNmVhOWQ4Y2UyOTdhMTM4M2Q2ZjAyOWE0M2ExYmY4
OWUyZjljYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklS
R2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJH
ZW5lcmF0b3IuY3BwCkBAIC04NDAsNiArODQwLDE1IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGUg
PHR5cGVuYW1lIEZ1bmN0aW9uPgogICAgIHZvaWQgZm9yRWFjaExpdmVWYWx1ZShGdW5jdGlvbik7
CiAKKyAgICBib29sIHVzZVNpZ25hbGluZ01lbW9yeSgpIGNvbnN0CisgICAgeworI2lmIEVOQUJM
RShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQorICAgICAgICByZXR1cm4gbV9tb2RlID09
IE1lbW9yeU1vZGU6OlNpZ25hbGluZzsKKyNlbHNlCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNl
bmRpZgorICAgIH0KKwogICAgIEZ1bmN0aW9uUGFyc2VyPEFpcklSR2VuZXJhdG9yPiogbV9wYXJz
ZXIgeyBudWxscHRyIH07CiAgICAgY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mIG1faW5mbzsKICAg
ICBjb25zdCBNZW1vcnlNb2RlIG1fbW9kZSB7IE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nIH07
CkBAIC05NTcsNyArOTY2LDcgQEAgQWlySVJHZW5lcmF0b3I6OkFpcklSR2VuZXJhdG9yKGNvbnN0
IE1vZHVsZUluZm9ybWF0aW9uJiBpbmZvLCBCMzo6UHJvY2VkdXJlJiBwcm8KICAgICBpZiAoIUNv
bnRleHQ6OnVzZUZhc3RUTFMoKSkKICAgICAgICAgbV9jb2RlLnBpblJlZ2lzdGVyKG1fd2FzbUNv
bnRleHRJbnN0YW5jZUdQUik7CiAKLSAgICBpZiAobW9kZSAhPSBNZW1vcnlNb2RlOjpTaWduYWxp
bmcpIHsKKyAgICBpZiAobW9kZSA9PSBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykgewogICAg
ICAgICBtX2JvdW5kc0NoZWNraW5nU2l6ZUdQUiA9IHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdT
aXplUmVnaXN0ZXI7CiAgICAgICAgIG1fY29kZS5waW5SZWdpc3RlcihtX2JvdW5kc0NoZWNraW5n
U2l6ZUdQUik7CiAgICAgfQpAQCAtMTc5Miw2ICsxODAxLDcgQEAgaW5saW5lIEFpcklSR2VuZXJh
dG9yOjpFeHByZXNzaW9uVHlwZSBBaXJJUkdlbmVyYXRvcjo6ZW1pdENoZWNrQW5kUHJlcGFyZVBv
aW50ZXIKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJ
R05BTElOR19NRU1PUlkpCiAgICAgY2FzZSBNZW1vcnlNb2RlOjpTaWduYWxpbmc6IHsKICAgICAg
ICAgLy8gV2UndmUgdmlydHVhbGx5IG1hcHBlZCA0R2lCK3JlZHpvbmUgZm9yIHRoaXMgbWVtb3J5
LiBPbmx5IHRoZSB1c2VyLWFsbG9jYXRlZCBwYWdlcyBhcmUgYWRkcmVzc2FibGUsIGNvbnRpZ3Vv
dXNseSBpbiByYW5nZSBbMCwgY3VycmVudF0sCiAgICAgICAgIC8vIGFuZCBldmVyeXRoaW5nIGFi
b3ZlIGlzIG1hcHBlZCBQUk9UX05PTkUuIFdlIGRvbid0IG5lZWQgdG8gcGVyZm9ybSBhbnkgZXhw
bGljaXQgYm91bmRzIGNoZWNrIGluIHRoZSA0R2lCIHJhbmdlIGJlY2F1c2UgV2ViQXNzZW1ibHkg
cmVnaXN0ZXIKQEAgLTE4MTgsNiArMTgyOCw3IEBAIGlubGluZSBBaXJJUkdlbmVyYXRvcjo6RXhw
cmVzc2lvblR5cGUgQWlySVJHZW5lcmF0b3I6OmVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyCiAg
ICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAgYXBw
ZW5kKEFkZDY0LCBUbXAobV9tZW1vcnlCYXNlR1BSKSwgcmVzdWx0KTsKQEAgLTM2OTMsNyArMzcw
NCw3IEBAIGF1dG8gQWlySVJHZW5lcmF0b3I6OmFkZENhbGwodWludDMyX3QgZnVuY3Rpb25JbmRl
eCwgY29uc3QgVHlwZURlZmluaXRpb24mIHNpZ25hCiAgICAgICAgIGF1dG8qIHBhdGNocG9pbnQg
PSBwYWlyLmZpcnN0OwogICAgICAgICBhdXRvIGV4Y2VwdGlvbkhhbmRsZSA9IHBhaXIuc2Vjb25k
OwogICAgICAgICAvLyBXZSBuZWVkIHRvIGNsb2JiZXIgdGhlIHNpemUgcmVnaXN0ZXIgc2luY2Ug
dGhlIExMSW50IGFsd2F5cyBib3VuZHMgY2hlY2tzCi0gICAgICAgIGlmIChtX21vZGUgPT0gTWVt
b3J5TW9kZTo6U2lnbmFsaW5nIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQoKSkKKyAgICAgICAg
aWYgKHVzZVNpZ25hbGluZ01lbW9yeSgpIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQoKSkKICAg
ICAgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXJMYXRlKFJlZ2lzdGVyU2V0IHsgUGlubmVkUmVn
aXN0ZXJJbmZvOjpnZXQoKS5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlciB9KTsKICAgICAgICAg
cGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKFs9LCB0aGlzXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNv
bnN0IEIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgewogICAgICAgICAgICAg
QWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCmluZGV4IDM3
NTQyNjE1N2Q4OGFkMzk3OTE2YzNkMTYyZWRmNzIwYThlYmI0MGUuLmUyMTMxMTc3ZThlYmNmZWNl
ZGM2YWVlNGMwZDkyZmFhNjIzZWFmZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKQEAgLTUyMyw2ICs1MjMsMTUgQEAgcHJpdmF0ZToK
ICAgICAgICAgcmV0dXJuIHNldChkc3QsIGdldChzcmMpKTsKICAgICB9CiAKKyAgICBib29sIHVz
ZVNpZ25hbGluZ01lbW9yeSgpIGNvbnN0CisgICAgeworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9T
SUdOQUxJTkdfTUVNT1JZKQorICAgICAgICByZXR1cm4gbV9tb2RlID09IE1lbW9yeU1vZGU6OlNp
Z25hbGluZzsKKyNlbHNlCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgIH0KKwog
ICAgIEZ1bmN0aW9uUGFyc2VyPEIzSVJHZW5lcmF0b3I+KiBtX3BhcnNlciB7IG51bGxwdHIgfTsK
ICAgICBjb25zdCBNb2R1bGVJbmZvcm1hdGlvbiYgbV9pbmZvOwogICAgIGNvbnN0IE1lbW9yeU1v
ZGUgbV9tb2RlIHsgTWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcgfTsKQEAgLTYzNiw3ICs2NDUs
NyBAQCBCM0lSR2VuZXJhdG9yOjpCM0lSR2VuZXJhdG9yKGNvbnN0IE1vZHVsZUluZm9ybWF0aW9u
JiBpbmZvLCBQcm9jZWR1cmUmIHByb2NlZHVyZQogICAgIGlmICghQ29udGV4dDo6dXNlRmFzdFRM
UygpKQogICAgICAgICBtX3Byb2MucGluUmVnaXN0ZXIobV93YXNtQ29udGV4dEluc3RhbmNlR1BS
KTsKIAotICAgIGlmIChtb2RlICE9IE1lbW9yeU1vZGU6OlNpZ25hbGluZykgeworICAgIGlmICht
b2RlID09IE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nKSB7CiAgICAgICAgIG1fYm91bmRzQ2hl
Y2tpbmdTaXplR1BSID0gcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlcjsKICAg
ICAgICAgbV9wcm9jLnBpblJlZ2lzdGVyKG1fYm91bmRzQ2hlY2tpbmdTaXplR1BSKTsKICAgICB9
CkBAIC02NDgsOSArNjU3LDExIEBAIEIzSVJHZW5lcmF0b3I6OkIzSVJHZW5lcmF0b3IoY29uc3Qg
TW9kdWxlSW5mb3JtYXRpb24mIGluZm8sIFByb2NlZHVyZSYgcHJvY2VkdXJlCiAgICAgICAgICAg
ICBjYXNlIE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nOgogICAgICAgICAgICAgICAgIEFTU0VS
VF9VTlVTRUQocGlubmVkR1BSLCBtX2JvdW5kc0NoZWNraW5nU2l6ZUdQUiA9PSBwaW5uZWRHUFIp
OwogICAgICAgICAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJ
TkdfTUVNT1JZKQogICAgICAgICAgICAgY2FzZSBNZW1vcnlNb2RlOjpTaWduYWxpbmc6CiAgICAg
ICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChwaW5uZWRHUFIsIEludmFsaWRHUFJSZWcgPT0gcGlu
bmVkR1BSKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyNlbmRpZgogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgdGhpcy0+ZW1pdEV4Y2VwdGlvbkNoZWNrKGppdCwgRXhjZXB0aW9uVHlwZTo6
T3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpOwogICAgICAgICB9KTsKQEAgLTkxMiw5ICs5MjMsMTMg
QEAgYXV0byBCM0lSR2VuZXJhdG9yOjphZGRBcmd1bWVudHMoY29uc3QgVHlwZURlZmluaXRpb24m
IHNpZ25hdHVyZSkgLT4gUGFydGlhbFJlc3UKICAgICAgICAgQjM6OlR5cGUgdHlwZSA9IHRvQjNU
eXBlKHNpZ25hdHVyZS5hczxGdW5jdGlvblNpZ25hdHVyZT4oKS0+YXJndW1lbnRUeXBlKGkpKTsK
ICAgICAgICAgQjM6OlZhbHVlKiBhcmd1bWVudDsKICAgICAgICAgYXV0byByZXAgPSB3YXNtQ2Fs
bEluZm8ucGFyYW1zW2ldOwotICAgICAgICBpZiAocmVwLmlzUmVnKCkpIHsKLSAgICAgICAgICAg
IGFyZ3VtZW50ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6QXJndW1lbnRSZWdWYWx1
ZT4obV9wcm9jLCBPcmlnaW4oKSwgcmVwLnJlZygpKTsKLSAgICAgICAgICAgIGlmICh0eXBlID09
IEIzOjpJbnQzMiB8fCB0eXBlID09IEIzOjpGbG9hdCkKKyAgICAgICAgaWYgKHJlcC5pc0dQUigp
KSB7CisgICAgICAgICAgICBhcmd1bWVudCA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8QjM6
OkFyZ3VtZW50UmVnVmFsdWU+KG1fcHJvYywgT3JpZ2luKCksIHJlcC5qc3IoKS5wYXlsb2FkR1BS
KCkpOworICAgICAgICAgICAgaWYgKHR5cGUgPT0gQjM6OkludDMyKQorICAgICAgICAgICAgICAg
IGFyZ3VtZW50ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6VmFsdWU+KG1fcHJvYywg
QjM6OlRydW5jLCBPcmlnaW4oKSwgYXJndW1lbnQpOworICAgICAgICB9IGVsc2UgaWYgKHJlcC5p
c0ZQUigpKSB7CisgICAgICAgICAgICBhcmd1bWVudCA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmRO
ZXc8QjM6OkFyZ3VtZW50UmVnVmFsdWU+KG1fcHJvYywgT3JpZ2luKCksIHJlcC5mcHIoKSk7Cisg
ICAgICAgICAgICBpZiAodHlwZSA9PSBCMzo6RmxvYXQpCiAgICAgICAgICAgICAgICAgYXJndW1l
bnQgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6VHJ1
bmMsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBB
U1NFUlQocmVwLmlzU3RhY2soKSk7CkBAIC0xNDQzLDYgKzE0NTgsNyBAQCBpbmxpbmUgVmFsdWUq
IEIzSVJHZW5lcmF0b3I6OmVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKFZhbHVlKiBwb2ludGVy
LCB1aW50MzJfdAogICAgICAgICBicmVhazsKICAgICB9CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1C
TFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzogewog
ICAgICAgICAvLyBXZSd2ZSB2aXJ0dWFsbHkgbWFwcGVkIDRHaUIrcmVkem9uZSBmb3IgdGhpcyBt
ZW1vcnkuIE9ubHkgdGhlIHVzZXItYWxsb2NhdGVkIHBhZ2VzIGFyZSBhZGRyZXNzYWJsZSwgY29u
dGlndW91c2x5IGluIHJhbmdlIFswLCBjdXJyZW50XSwKICAgICAgICAgLy8gYW5kIGV2ZXJ5dGhp
bmcgYWJvdmUgaXMgbWFwcGVkIFBST1RfTk9ORS4gV2UgZG9uJ3QgbmVlZCB0byBwZXJmb3JtIGFu
eSBleHBsaWNpdCBib3VuZHMgY2hlY2sgaW4gdGhlIDRHaUIgcmFuZ2UgYmVjYXVzZSBXZWJBc3Nl
bWJseSByZWdpc3RlcgpAQCAtMTQ2MCw2ICsxNDc2LDcgQEAgaW5saW5lIFZhbHVlKiBCM0lSR2Vu
ZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihWYWx1ZSogcG9pbnRlciwgdWludDMy
X3QKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9CisjZW5kaWYKICAgICB9CiAKICAg
ICBwb2ludGVyID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBaRXh0
MzIsIG9yaWdpbigpLCBwb2ludGVyKTsKQEAgLTE0OTMsNyArMTUxMCw3IEBAIGlubGluZSB1aW50
MzJfdCBzaXplT2ZMb2FkT3AoTG9hZE9wVHlwZSBvcCkKIAogaW5saW5lIEIzOjpLaW5kIEIzSVJH
ZW5lcmF0b3I6Om1lbW9yeUtpbmQoQjM6Ok9wY29kZSBtZW1vcnlPcCkKIHsKLSAgICBpZiAobV9t
b2RlID09IE1lbW9yeU1vZGU6OlNpZ25hbGluZyB8fCBtX2luZm8ubWVtb3J5LmlzU2hhcmVkKCkp
CisgICAgaWYgKHVzZVNpZ25hbGluZ01lbW9yeSgpIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQo
KSkKICAgICAgICAgcmV0dXJuIHRyYXBwaW5nKG1lbW9yeU9wKTsKICAgICByZXR1cm4gbWVtb3J5
T3A7CiB9CkBAIC0yOTc3LDcgKzI5OTQsNyBAQCBhdXRvIEIzSVJHZW5lcmF0b3I6OmFkZENhbGwo
dWludDMyX3QgZnVuY3Rpb25JbmRleCwgY29uc3QgVHlwZURlZmluaXRpb24mIHNpZ25hdAogICAg
ICAgICAgICAgICAgIHBhdGNocG9pbnQtPmVmZmVjdHMucmVhZHNQaW5uZWQgPSB0cnVlOwogCiAg
ICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBjbG9iYmVyIHRoZSBzaXplIHJlZ2lzdGVyIHNp
bmNlIHRoZSBMTEludCBhbHdheXMgYm91bmRzIGNoZWNrcwotICAgICAgICAgICAgICAgIGlmICht
X21vZGUgPT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQo
KSkKKyAgICAgICAgICAgICAgICBpZiAodXNlU2lnbmFsaW5nTWVtb3J5KCkgfHwgbV9pbmZvLm1l
bW9yeS5pc1NoYXJlZCgpKQogICAgICAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVy
TGF0ZShSZWdpc3RlclNldCB7IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCkuYm91bmRzQ2hlY2tp
bmdTaXplUmVnaXN0ZXIgfSk7CiAgICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJh
dG9yKFt0aGlzLCBoYW5kbGUsIHVubGlua2VkV2FzbVRvV2FzbUNhbGxzLCBmdW5jdGlvbkluZGV4
XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IEIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJhbXMm
IHBhcmFtcykgewogICAgICAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVy
VXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQmluZGluZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
QmluZGluZy5jcHAKaW5kZXggZWRjNzBiZWEwOGFmMmI4MzJjMmYxOWVhZWI0NDZlYjJjNDU4ZGYz
ZS4uMzI3Mjg5OTQ5YWRkODQ0MTMxZDBkMmQ2MjZmZjU4NTMwYmQxMjFkYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5kaW5nLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lm
IEVOQUJMRShXRUJBU1NFTUJMWSkKIAogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1
ZGUgIkRpc2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oIgogI2luY2x1ZGUgIkxpbmtC
dWZmZXIuaCIKICNpbmNsdWRlICJXYXNtQ2FsbGluZ0NvbnZlbnRpb24uaCIKICNpbmNsdWRlICJX
YXNtSW5zdGFuY2UuaCIKQEAgLTQxLDE4ICs0MiwyMSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxl
ckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub1dhc20odW5z
aQogewogICAgIC8vIEZJWE1FOiBDb25zaWRlciB1bmlxdWlmeSB0aGUgc3R1YnMgYmFzZWQgb24g
c2lnbmF0dXJlICsgaW5kZXggdG8gc2VlIGlmIHRoaXMgc2F2ZXMgbWVtb3J5LgogICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQxNTcKLQotICAgIGNvbnN0
IFBpbm5lZFJlZ2lzdGVySW5mbyYgcGlubmVkUmVncyA9IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0
KCk7CiAgICAgSklUIGppdDsKIAogICAgIEdQUlJlZyBzY3JhdGNoID0gd2FzbUNhbGxpbmdDb252
ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1swXTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQor
ICAgIEdQUlJlZyBiYXNlTWVtb3J5ID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVT
Y3JhdGNoR1BSc1sxXTsKKyAgICBHUFJSZWcgc2l6ZVJlZ0FzU2NyYXRjaCA9IHdhc21DYWxsaW5n
Q29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMl07CisjZWxzZQorICAgIGNvbnN0IFBp
bm5lZFJlZ2lzdGVySW5mbyYgcGlubmVkUmVncyA9IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCk7
CiAgICAgR1BSUmVnIGJhc2VNZW1vcnkgPSBwaW5uZWRSZWdzLmJhc2VNZW1vcnlQb2ludGVyOwot
ICAgIEFTU0VSVChiYXNlTWVtb3J5ICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7Ci0gICAgQVNT
RVJUKGJhc2VNZW1vcnkgIT0gc2NyYXRjaCk7Ci0gICAgQVNTRVJUKHBpbm5lZFJlZ3MuYm91bmRz
Q2hlY2tpbmdTaXplUmVnaXN0ZXIgIT0gYmFzZU1lbW9yeSk7Ci0gICAgQVNTRVJUKHBpbm5lZFJl
Z3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIgIT0gc2NyYXRjaCk7CiAgICAgR1BSUmVnIHNp
emVSZWdBc1NjcmF0Y2ggPSBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyOwor
I2VuZGlmCisgICAgQVNTRVJUKGJhc2VNZW1vcnkgIT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsK
ICAgICBBU1NFUlQoc2l6ZVJlZ0FzU2NyYXRjaCAhPSBHUFJSZWc6OkludmFsaWRHUFJSZWcpOwor
ICAgIEFTU0VSVChzY3JhdGNoICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7CisgICAgQVNTRVJU
KG5vT3ZlcmxhcChzY3JhdGNoLCBiYXNlTWVtb3J5LCBzaXplUmVnQXNTY3JhdGNoKSk7CiAKICAg
ICAvLyBCMydzIGNhbGwgY29kZWdlbiBlbnN1cmVzIHRoYXQgdGhlIEpTQ2VsbCBpcyBhIFdlYkFz
c2VtYmx5RnVuY3Rpb24uCiAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHNpemVSZWdB
c1NjcmF0Y2gpOyAvLyBPbGQgSW5zdGFuY2UqCkBAIC02NSw2ICs2OSw3IEBAIEV4cGVjdGVkPE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2Fz
bVRvV2FzbSh1bnNpCiAgICAgaml0LmxvYWRQdHIoSklUOjpBZGRyZXNzKHNpemVSZWdBc1NjcmF0
Y2gsIEluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZFN0YWNrTGltaXQoKSksIHNpemVSZWdBc1NjcmF0
Y2gpOwogICAgIGppdC5zdG9yZVB0cihzaXplUmVnQXNTY3JhdGNoLCBKSVQ6OkFkZHJlc3MoYmFz
ZU1lbW9yeSwgSW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkU3RhY2tMaW1pdCgpKSk7CiAKKyNpZiAh
Q1BVKEFSTSkgLy8gQVJNIGhhcyBubyBwaW5uZWQgcmVnaXN0ZXJzIGZvciBXYXNtIE1lbW9yeSwg
c28gbm8gbmVlZCB0byBzZXQgdGhlbSB1cAogICAgIC8vIEZJWE1FIHRoZSBmb2xsb3dpbmcgY29k
ZSBhc3N1bWVzIHRoYXQgYWxsIFdhc206Okluc3RhbmNlIGhhdmUgdGhlIHNhbWUgcGlubmVkIHJl
Z2lzdGVycy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjk1Mgog
ICAgIC8vIFNldCB1cCB0aGUgY2FsbGVlJ3MgYmFzZU1lbW9yeSByZWdpc3RlciBhcyB3ZWxsIGFz
IHRoZSBtZW1vcnkgc2l6ZSByZWdpc3RlcnMuCiAgICAgewpAQCAtNzIsNiArNzcsNyBAQCBFeHBl
Y3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1
cmU+IHdhc21Ub1dhc20odW5zaQogICAgICAgICBqaXQubG9hZFB0cihKSVQ6OkFkZHJlc3MoYmFz
ZU1lbW9yeSwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNlTWVt
b3J5KTsgLy8gV2FzbTo6TWVtb3J5OjpUYWdnZWRBcnJheVN0b3JhZ2VQdHI8dm9pZD4gKHZvaWQq
KS4KICAgICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5QW5kVW50YWcoR2lnYWNhZ2U6OlByaW1p
dGl2ZSwgYmFzZU1lbW9yeSwgcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3Rlciwg
d2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1sxXSk7CiAgICAgfQor
I2VuZGlmCiAKICAgICAvLyBUYWlsIGNhbGwgaW50byB0aGUgY2FsbGVlIFdlYkFzc2VtYmx5IGZ1
bmN0aW9uLgogICAgIGppdC5sb2FkUHRyKEpJVDo6QWRkcmVzcyhzY3JhdGNoKSwgc2NyYXRjaCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuY3BwCmluZGV4IGEzMjFjNTJm
MTVlY2E1MjIxM2VjZDZlZTkyMTcyNzE5ODExYjMyNWEuLjMyMDJmNTQ4MGNhNDEyZjI3Mjk0OWUx
NTRiMmIyMjZlZTY5MDBjYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21DYWxsZWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxs
ZWUuY3BwCkBAIC0xMzEsNiArMTMxLDggQEAgUmVnaXN0ZXJBdE9mZnNldExpc3QqIExMSW50Q2Fs
bGVlOjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCkKICAgICAgICAgcmVnaXN0ZXJzLnNldChHUFJJbmZv
OjpyZWdDUzIpOyAvLyBQQgogI2VsaWYgQ1BVKEFSTTY0KSB8fCBDUFUoUklTQ1Y2NCkKICAgICAg
ICAgcmVnaXN0ZXJzLnNldChHUFJJbmZvOjpyZWdDUzcpOyAvLyBQQgorI2VsaWYgQ1BVKEFSTSkK
KyAgICAgICAgcmVnaXN0ZXJzLnNldChHUFJJbmZvOjpyZWdDUzEpOyAvLyBQQgogI2Vsc2UKICNl
cnJvciBVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUuCiAjZW5kaWYKQEAgLTE1OCw2ICsxNjAsNyBA
QCBjb25zdCBXYXNtSW5zdHJ1Y3Rpb24qIExMSW50Q2FsbGVlOjpvdXRPZkxpbmVKdW1wVGFyZ2V0
KGNvbnN0IFdhc21JbnN0cnVjdGlvbiogcAogICAgIHJldHVybiBtX2luc3RydWN0aW9ucy0+YXQo
b2Zmc2V0ICsgdGFyZ2V0KS5wdHIoKTsKIH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9CM0pJ
VCkKIHZvaWQgT3B0aW1pemluZ0pJVENhbGxlZTo6bGlua0V4Y2VwdGlvbkhhbmRsZXJzKFZlY3Rv
cjxVbmxpbmtlZEhhbmRsZXJJbmZvPiB1bmxpbmtlZEV4Y2VwdGlvbkhhbmRsZXJzLCBWZWN0b3I8
Q29kZUxvY2F0aW9uTGFiZWw8RXhjZXB0aW9uSGFuZGxlclB0clRhZz4+IGV4Y2VwdGlvbkhhbmRs
ZXJMb2NhdGlvbnMpCiB7CiAgICAgc2l6ZV90IGNvdW50ID0gdW5saW5rZWRFeGNlcHRpb25IYW5k
bGVycy5zaXplKCk7CkBAIC0xODQsNyArMTg3LDcgQEAgY29uc3QgU3RhY2tNYXAmIE9wdGltaXpp
bmdKSVRDYWxsZWU6OnN0YWNrbWFwKENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleCkgY29uc3QK
ICAgICBSRUxFQVNFX0FTU0VSVChpdGVyICE9IG1fc3RhY2ttYXBzLmVuZCgpKTsKICAgICByZXR1
cm4gaXRlci0+dmFsdWU7CiB9Ci0KKyNlbmRpZgogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2Fz
bQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlR3Jv
dXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZUdyb3VwLmNwcApp
bmRleCAxZWE0NWNhNGE2ZTkxZDAzYTk3MGViYjVkNWZkMmIyY2Y5ZGZjZjBhLi41MTlkMjA5NmFk
NjI3Y2JiM2JlODgzOWQ3ZTQ4MmI4MTk4OGZiYTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlR3JvdXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21DYWxsZWVHcm91cC5jcHAKQEAgLTE2MCwxNyArMTYwLDIxIEBAIHZvaWQg
Q2FsbGVlR3JvdXA6OmNvbXBpbGVBc3luYyhDb250ZXh0KiBjb250ZXh0LCBBc3luY0NvbXBpbGF0
aW9uQ2FsbGJhY2smJiB0YXNrCiAKIGJvb2wgQ2FsbGVlR3JvdXA6OmlzU2FmZVRvUnVuKE1lbW9y
eU1vZGUgbWVtb3J5TW9kZSkKIHsKKyAgICBVTlVTRURfUEFSQU0obWVtb3J5TW9kZSk7CisKICAg
ICBpZiAoIXJ1bm5hYmxlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHN3aXRjaCAo
bV9tb2RlKSB7CiAgICAgY2FzZSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZzoKICAg
ICAgICAgcmV0dXJuIHRydWU7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1P
UlkpCiAgICAgY2FzZSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmc6CiAgICAgICAgIC8vIENv
ZGUgYmVpbmcgaW4gU2lnbmFsaW5nIG1vZGUgbWVhbnMgdGhhdCBpdCBwZXJmb3JtcyBubyBib3Vu
ZHMgY2hlY2tzLgogICAgICAgICAvLyBJdHMgbWVtb3J5LCBldmVuIGlmIGVtcHR5LCBhYnNvbHV0
ZWx5IG11c3QgYWxzbyBiZSBpbiBTaWduYWxpbmcgbW9kZQogICAgICAgICAvLyBiZWNhdXNlIHRo
ZSBwYWdlIHByb3RlY3Rpb24gZGV0ZWN0cyBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLgogICAgICAg
ICByZXR1cm4gbWVtb3J5TW9kZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmc7CisjZW5k
aWYKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGlu
Z0NvbnZlbnRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdD
b252ZW50aW9uLmNwcAppbmRleCAyMDNjODQzYWU4ZTYzZWNkZmI0ODlhNGFkNjY1M2VlZmUxMWRk
NGJjLi5lYjA5MDk1ODE4NDAxODgzOTNkNWNlZjM3MzQxODRiYjIxMjg4NWRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5jcHAK
QEAgLTQwLDcgKzQwLDcgQEAgY29uc3QgSlNDYWxsaW5nQ29udmVudGlvbiYganNDYWxsaW5nQ29u
dmVudGlvbigpCiAgICAgICAgIFJlZ2lzdGVyU2V0IGNhbGxlclNhdmVSZWdpc3RlcnMgPSBSZWdp
c3RlclNldDo6YWxsUmVnaXN0ZXJzKCk7CiAgICAgICAgIGNhbGxlclNhdmVSZWdpc3RlcnMuZXhj
bHVkZShSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpKTsKIAotICAgICAgICBzdGF0
aWNKU0NhbGxpbmdDb252ZW50aW9uLmNvbnN0cnVjdChWZWN0b3I8UmVnPigpLCBWZWN0b3I8UmVn
PigpLCBSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpLCBXVEZNb3ZlKGNhbGxlclNh
dmVSZWdpc3RlcnMpKTsKKyAgICAgICAgc3RhdGljSlNDYWxsaW5nQ29udmVudGlvbi5jb25zdHJ1
Y3QoVmVjdG9yPEpTVmFsdWVSZWdzPigpLCBWZWN0b3I8RlBSUmVnPigpLCBSZWdpc3RlclNldDo6
Y2FsbGVlU2F2ZVJlZ2lzdGVycygpLCBXVEZNb3ZlKGNhbGxlclNhdmVSZWdpc3RlcnMpKTsKICAg
ICB9KTsKIAogICAgIHJldHVybiBzdGF0aWNKU0NhbGxpbmdDb252ZW50aW9uOwpAQCAtNTEsMzEg
KzUxLDUxIEBAIGNvbnN0IFdhc21DYWxsaW5nQ29udmVudGlvbiYgd2FzbUNhbGxpbmdDb252ZW50
aW9uKCkKICAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPFdhc21DYWxsaW5nQ29udmVudGlv
bj4gc3RhdGljV2FzbUNhbGxpbmdDb252ZW50aW9uOwogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxh
ZyBzdGF0aWNXYXNtQ2FsbGluZ0NvbnZlbnRpb25GbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKHN0
YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbkZsYWcsIFtdICgpIHsKLSAgICAgICAgVmVjdG9yPFJl
Zz4gZ3ByQXJndW1lbnRSZWdpc3RlcnMoR1BSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVy
cyk7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHUFJJbmZvOjpudW1iZXJPZkFy
Z3VtZW50UmVnaXN0ZXJzOyArK2kpCi0gICAgICAgICAgICBncHJBcmd1bWVudFJlZ2lzdGVyc1tp
XSA9IEdQUkluZm86OnRvQXJndW1lbnRSZWdpc3RlcihpKTsKKyNpZiBVU0UoSlNWQUxVRTY0KSAv
LyBPbmUgdmFsdWUgcGVyIEdQUgorICAgICAgICBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZB
cmd1bWVudEpTUnMgPSBHUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzOworI2VsaWYg
VVNFKEpTVkFMVUUzMl82NCkgLy8gT25lIHZhbHVlIHBlciBjb25zZWN1dGl2ZSBHUFIgcGFpcgor
ICAgICAgICBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudEpTUnMgPSBHUFJJbmZv
OjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzIC8gMjsKKyNlbmRpZgorICAgICAgICBWZWN0b3I8
SlNWYWx1ZVJlZ3M+IGpzckFyZ3VtZW50UmVnaXN0ZXJzKG51bWJlck9mQXJndW1lbnRKU1JzKTsK
KyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mQXJndW1lbnRKU1JzOyAr
K2kpIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAganNyQXJndW1lbnRSZWdpc3Rl
cnNbaV0gPSBKU1ZhbHVlUmVncyB7IEdQUkluZm86OnRvQXJndW1lbnRSZWdpc3RlcihpKSB9Owor
I2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIGpzckFyZ3VtZW50UmVnaXN0ZXJz
W2ldID0gSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjp0b0FyZ3VtZW50UmVnaXN0ZXIoMiAqIGkgKyAx
KSwgR1BSSW5mbzo6dG9Bcmd1bWVudFJlZ2lzdGVyKDIgKiBpKSB9OworI2VuZGlmCisgICAgICAg
IH0KIAotICAgICAgICBWZWN0b3I8UmVnPiBmcHJBcmd1bWVudFJlZ2lzdGVycyhGUFJJbmZvOjpu
dW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzKTsKKyAgICAgICAgVmVjdG9yPEZQUlJlZz4gZnByQXJn
dW1lbnRSZWdpc3RlcnMoRlBSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyk7CiAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBGUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVn
aXN0ZXJzOyArK2kpCiAgICAgICAgICAgICBmcHJBcmd1bWVudFJlZ2lzdGVyc1tpXSA9IEZQUklu
Zm86OnRvQXJndW1lbnRSZWdpc3RlcihpKTsKIAogICAgICAgICBSZWdpc3RlclNldCBzY3JhdGNo
ID0gUmVnaXN0ZXJTZXQ6OmFsbEdQUnMoKTsKLSAgICAgICAgc2NyYXRjaC5leGNsdWRlKFJlZ2lz
dGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCkpOworICAgICAgICBzY3JhdGNoLmV4Y2x1ZGUo
UmVnaXN0ZXJTZXQ6OnZtQ2FsbGVlU2F2ZVJlZ2lzdGVycygpKTsKICAgICAgICAgc2NyYXRjaC5l
eGNsdWRlKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7CiAgICAgICAgIHNj
cmF0Y2guZXhjbHVkZShSZWdpc3RlclNldDo6cmVzZXJ2ZWRIYXJkd2FyZVJlZ2lzdGVycygpKTsK
ICAgICAgICAgc2NyYXRjaC5leGNsdWRlKFJlZ2lzdGVyU2V0OjpzdGFja1JlZ2lzdGVycygpKTsK
LSAgICAgICAgZm9yIChSZWcgcmVnIDogZ3ByQXJndW1lbnRSZWdpc3RlcnMpCi0gICAgICAgICAg
ICBzY3JhdGNoLmNsZWFyKHJlZyk7CisgICAgICAgIGZvciAoSlNWYWx1ZVJlZ3MganNyIDoganNy
QXJndW1lbnRSZWdpc3RlcnMpIHsKKyAgICAgICAgICAgIHNjcmF0Y2guY2xlYXIoanNyLnBheWxv
YWRHUFIoKSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIHNjcmF0Y2guY2xl
YXIoanNyLnRhZ0dQUigpKTsKKyNlbmRpZgorICAgICAgICB9CiAKICAgICAgICAgVmVjdG9yPEdQ
UlJlZz4gc2NyYXRjaEdQUnM7CiAgICAgICAgIGZvciAoUmVnIHJlZyA6IHNjcmF0Y2gpCiAgICAg
ICAgICAgICBzY3JhdGNoR1BScy5hcHBlbmQocmVnLmdwcigpKTsKKworICAgICAgICAvLyBOZWVk
IGF0IGxlYXN0IG9uZSBKU1ZhbHVlIGFuZCBhbiBhZGRpdGlvbmFsIEdQUgorI2lmIFVTRShKU1ZB
TFVFNjQpCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHNjcmF0Y2hHUFJzLnNpemUoKSA+PSAyKTsK
KyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKHNjcmF0Y2hH
UFJzLnNpemUoKSA+PSAzKTsKKyNlbmRpZgogCiAgICAgICAgIFJlZ2lzdGVyU2V0IGNhbGxlclNh
dmVSZWdpc3RlcnMgPSBSZWdpc3RlclNldDo6YWxsUmVnaXN0ZXJzKCk7CiAgICAgICAgIGNhbGxl
clNhdmVSZWdpc3RlcnMuZXhjbHVkZShSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygp
KTsKIAotICAgICAgICBzdGF0aWNXYXNtQ2FsbGluZ0NvbnZlbnRpb24uY29uc3RydWN0KFdURk1v
dmUoZ3ByQXJndW1lbnRSZWdpc3RlcnMpLCBXVEZNb3ZlKGZwckFyZ3VtZW50UmVnaXN0ZXJzKSwg
V1RGTW92ZShzY3JhdGNoR1BScyksIFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCks
IFdURk1vdmUoY2FsbGVyU2F2ZVJlZ2lzdGVycykpOworICAgICAgICBzdGF0aWNXYXNtQ2FsbGlu
Z0NvbnZlbnRpb24uY29uc3RydWN0KFdURk1vdmUoanNyQXJndW1lbnRSZWdpc3RlcnMpLCBXVEZN
b3ZlKGZwckFyZ3VtZW50UmVnaXN0ZXJzKSwgV1RGTW92ZShzY3JhdGNoR1BScyksIFJlZ2lzdGVy
U2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCksIFdURk1vdmUoY2FsbGVyU2F2ZVJlZ2lzdGVycykp
OwogICAgIH0pOwogCiAgICAgcmV0dXJuIHN0YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlv
bi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgK
aW5kZXggNDI4OGY4MDFkZTFiZTM0YjM4OTViYWYyZjNhYzU1MWVjNDhhYjU3NC4uYjY2MzkzZmQ5
YzI1MmUwNzVlMTJjNDg2Njc0ZWJiMjdiNWQ4YWZiOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKQEAgLTU3LDggKzU3LDEzIEBA
IHN0cnVjdCBDYWxsSW5mb3JtYXRpb24gewogICAgIHsKICAgICAgICAgUmVnaXN0ZXJTZXQgdXNl
ZFJlc3VsdFJlZ2lzdGVyczsKICAgICAgICAgZm9yIChWYWx1ZUxvY2F0aW9uIGxvYyA6IHJlc3Vs
dHMpIHsKLSAgICAgICAgICAgIGlmIChsb2MuaXNSZWcoKSkKLSAgICAgICAgICAgICAgICB1c2Vk
UmVzdWx0UmVnaXN0ZXJzLnNldChsb2MucmVnKCkpOworICAgICAgICAgICAgaWYgKGxvYy5pc0dQ
UigpKSB7CisgICAgICAgICAgICAgICAgdXNlZFJlc3VsdFJlZ2lzdGVycy5zZXQobG9jLmpzcigp
LnBheWxvYWRHUFIoKSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICB1
c2VkUmVzdWx0UmVnaXN0ZXJzLnNldChsb2MuanNyKCkudGFnR1BSKCkpOworI2VuZGlmCisgICAg
ICAgICAgICB9IGVsc2UgaWYgKGxvYy5pc0ZQUigpKQorICAgICAgICAgICAgICAgIHVzZWRSZXN1
bHRSZWdpc3RlcnMuc2V0KGxvYy5mcHIoKSk7CiAgICAgICAgIH0KIAogICAgICAgICBSZWdpc3Rl
ckF0T2Zmc2V0TGlzdCBzYXZlZFJlZ3ModXNlZFJlc3VsdFJlZ2lzdGVycywgUmVnaXN0ZXJBdE9m
ZnNldExpc3Q6Olplcm9CYXNlZCk7CkBAIC03Nyw4ICs4Miw4IEBAIGNsYXNzIFdhc21DYWxsaW5n
Q29udmVudGlvbiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBoZWFk
ZXJTaXplSW5CeXRlcyA9IENhbGxGcmFtZTo6aGVhZGVyU2l6ZUluUmVnaXN0ZXJzICogc2l6ZW9m
KFJlZ2lzdGVyKTsKIAotICAgIFdhc21DYWxsaW5nQ29udmVudGlvbihWZWN0b3I8UmVnPiYmIGdw
cnMsIFZlY3RvcjxSZWc+JiYgZnBycywgVmVjdG9yPEdQUlJlZz4mJiBzY3JhdGNoZXMsIFJlZ2lz
dGVyU2V0JiYgY2FsbGVlU2F2ZXMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVyU2F2ZXMpCi0gICAgICAg
IDogZ3ByQXJncyhXVEZNb3ZlKGdwcnMpKQorICAgIFdhc21DYWxsaW5nQ29udmVudGlvbihWZWN0
b3I8SlNWYWx1ZVJlZ3M+JiYganNycywgVmVjdG9yPEZQUlJlZz4mJiBmcHJzLCBWZWN0b3I8R1BS
UmVnPiYmIHNjcmF0Y2hlcywgUmVnaXN0ZXJTZXQmJiBjYWxsZWVTYXZlcywgUmVnaXN0ZXJTZXQm
JiBjYWxsZXJTYXZlcykKKyAgICAgICAgOiBqc3JBcmdzKFdURk1vdmUoanNycykpCiAgICAgICAg
ICwgZnByQXJncyhXVEZNb3ZlKGZwcnMpKQogICAgICAgICAsIHByb2xvZ3VlU2NyYXRjaEdQUnMo
V1RGTW92ZShzY3JhdGNoZXMpKQogICAgICAgICAsIGNhbGxlZVNhdmVSZWdpc3RlcnMoV1RGTW92
ZShjYWxsZWVTYXZlcykpCkBAIC04OCwxMCArOTMsMTEgQEAgcHVibGljOgogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKFdhc21DYWxsaW5nQ29udmVudGlvbik7CiAKIHByaXZhdGU6Ci0gICAgQXJn
dW1lbnRMb2NhdGlvbiBtYXJzaGFsbExvY2F0aW9uSW1wbChDYWxsUm9sZSByb2xlLCBjb25zdCBW
ZWN0b3I8UmVnPiYgcmVnQXJncywgc2l6ZV90JiBjb3VudCwgc2l6ZV90JiBzdGFja09mZnNldCkg
Y29uc3QKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBSZWdUeXBlPgorICAgIEFyZ3VtZW50TG9jYXRp
b24gbWFyc2hhbGxMb2NhdGlvbkltcGwoQ2FsbFJvbGUgcm9sZSwgY29uc3QgVmVjdG9yPFJlZ1R5
cGU+JiByZWdBcmdzLCBzaXplX3QmIGNvdW50LCBzaXplX3QmIHN0YWNrT2Zmc2V0KSBjb25zdAog
ICAgIHsKICAgICAgICAgaWYgKGNvdW50IDwgcmVnQXJncy5zaXplKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gQXJndW1lbnRMb2NhdGlvbjo6cmVnKHJlZ0FyZ3NbY291bnQrK10pOworICAgICAgICAg
ICAgcmV0dXJuIEFyZ3VtZW50TG9jYXRpb24geyByZWdBcmdzW2NvdW50KytdIH07CiAKICAgICAg
ICAgY291bnQrKzsKICAgICAgICAgQXJndW1lbnRMb2NhdGlvbiByZXN1bHQgPSByb2xlID09IENh
bGxSb2xlOjpDYWxsZXIgPyBBcmd1bWVudExvY2F0aW9uOjpzdGFja0FyZ3VtZW50KHN0YWNrT2Zm
c2V0KSA6IEFyZ3VtZW50TG9jYXRpb246OnN0YWNrKHN0YWNrT2Zmc2V0KTsKQEAgLTEwOSw3ICsx
MTUsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoK
LSAgICAgICAgICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBncHJBcmdzLCBn
cEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybiBtYXJzaGFs
bExvY2F0aW9uSW1wbChyb2xlLCBqc3JBcmdzLCBncEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0
KTsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpG
NjQ6CiAgICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwgZnByQXJn
cywgZnBBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CkBAIC0xNTQsOCArMTYwLDggQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIGNvbnN0IFZlY3RvcjxS
ZWc+IGdwckFyZ3M7Ci0gICAgY29uc3QgVmVjdG9yPFJlZz4gZnByQXJnczsKKyAgICBjb25zdCBW
ZWN0b3I8SlNWYWx1ZVJlZ3M+IGpzckFyZ3M7CisgICAgY29uc3QgVmVjdG9yPEZQUlJlZz4gZnBy
QXJnczsKICAgICBjb25zdCBWZWN0b3I8R1BSUmVnPiBwcm9sb2d1ZVNjcmF0Y2hHUFJzOwogICAg
IGNvbnN0IFJlZ2lzdGVyU2V0IGNhbGxlZVNhdmVSZWdpc3RlcnM7CiAgICAgY29uc3QgUmVnaXN0
ZXJTZXQgY2FsbGVyU2F2ZVJlZ2lzdGVyczsKQEAgLTE3MCw4ICsxNzYsOCBAQCBwdWJsaWM6CiAg
ICAgLy8gV2FzbTo6Q29udGV4dConcyBpbnN0YW5jZS4KICAgICBzdGF0aWMgY29uc3RleHByIHB0
cmRpZmZfdCBpbnN0YW5jZVN0YWNrT2Zmc2V0ID0gQ2FsbEZyYW1lU2xvdDo6dGhpc0FyZ3VtZW50
ICogc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKTsKIAotICAgIEpTQ2FsbGluZ0NvbnZlbnRpb24oVmVj
dG9yPFJlZz4mJiBncHJzLCBWZWN0b3I8UmVnPiYmIGZwcnMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVl
U2F2ZXMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVyU2F2ZXMpCi0gICAgICAgIDogZ3ByQXJncyhXVEZN
b3ZlKGdwcnMpKQorICAgIEpTQ2FsbGluZ0NvbnZlbnRpb24oVmVjdG9yPEpTVmFsdWVSZWdzPiYm
IGdwcnMsIFZlY3RvcjxGUFJSZWc+JiYgZnBycywgUmVnaXN0ZXJTZXQmJiBjYWxsZWVTYXZlcywg
UmVnaXN0ZXJTZXQmJiBjYWxsZXJTYXZlcykKKyAgICAgICAgOiBqc3JBcmdzKFdURk1vdmUoZ3By
cykpCiAgICAgICAgICwgZnByQXJncyhXVEZNb3ZlKGZwcnMpKQogICAgICAgICAsIGNhbGxlZVNh
dmVSZWdpc3RlcnMoV1RGTW92ZShjYWxsZWVTYXZlcykpCiAgICAgICAgICwgY2FsbGVyU2F2ZVJl
Z2lzdGVycyhXVEZNb3ZlKGNhbGxlclNhdmVzKSkKQEAgLTE3OSwxMCArMTg1LDExIEBAIHB1Ymxp
YzoKIAogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEpTQ2FsbGluZ0NvbnZlbnRpb24pOwogcHJp
dmF0ZToKLSAgICBBcmd1bWVudExvY2F0aW9uIG1hcnNoYWxsTG9jYXRpb25JbXBsKENhbGxSb2xl
IHJvbGUsIGNvbnN0IFZlY3RvcjxSZWc+JiByZWdBcmdzLCBzaXplX3QmIGNvdW50LCBzaXplX3Qm
IHN0YWNrT2Zmc2V0KSBjb25zdAorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBSZWdUeXBlPgorICAg
IEFyZ3VtZW50TG9jYXRpb24gbWFyc2hhbGxMb2NhdGlvbkltcGwoQ2FsbFJvbGUgcm9sZSwgY29u
c3QgVmVjdG9yPFJlZ1R5cGU+JiByZWdBcmdzLCBzaXplX3QmIGNvdW50LCBzaXplX3QmIHN0YWNr
T2Zmc2V0KSBjb25zdAogICAgIHsKICAgICAgICAgaWYgKGNvdW50IDwgcmVnQXJncy5zaXplKCkp
Ci0gICAgICAgICAgICByZXR1cm4gQXJndW1lbnRMb2NhdGlvbjo6cmVnKHJlZ0FyZ3NbY291bnQr
K10pOworICAgICAgICAgICAgcmV0dXJuIEFyZ3VtZW50TG9jYXRpb24geyByZWdBcmdzW2NvdW50
KytdIH07CiAKICAgICAgICAgY291bnQrKzsKICAgICAgICAgQXJndW1lbnRMb2NhdGlvbiByZXN1
bHQgPSByb2xlID09IENhbGxSb2xlOjpDYWxsZXIgPyBBcmd1bWVudExvY2F0aW9uOjpzdGFja0Fy
Z3VtZW50KHN0YWNrT2Zmc2V0KSA6IEFyZ3VtZW50TG9jYXRpb246OnN0YWNrKHN0YWNrT2Zmc2V0
KTsKQEAgLTIwMCw3ICsyMDcsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpF
eHRlcm5yZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAgICAgY2FzZSBUeXBl
S2luZDo6UmVmTnVsbDoKLSAgICAgICAgICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9uSW1wbChy
b2xlLCBncHJBcmdzLCBncEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KTsKKyAgICAgICAgICAg
IHJldHVybiBtYXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBqc3JBcmdzLCBncEFyZ3VtZW50Q291
bnQsIHN0YWNrT2Zmc2V0KTsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpGNjQ6CiAgICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbklt
cGwocm9sZSwgZnByQXJncywgZnBBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CkBAIC0yMjMs
MTIgKzIzMCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2ln
bmF0dXJlLmFzPEZ1bmN0aW9uU2lnbmF0dXJlPigpLT5hcmd1bWVudENvdW50KCk7ICsraSkKICAg
ICAgICAgICAgIHBhcmFtcy5hcHBlbmQobWFyc2hhbGxMb2NhdGlvbihyb2xlLCBzaWduYXR1cmUu
YXM8RnVuY3Rpb25TaWduYXR1cmU+KCktPmFyZ3VtZW50VHlwZShpKSwgZ3BBcmd1bWVudENvdW50
LCBmcEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KSk7CiAKLSAgICAgICAgVmVjdG9yPEFyZ3Vt
ZW50TG9jYXRpb24sIDE+IHJlc3VsdHMgeyBBcmd1bWVudExvY2F0aW9uOjpyZWcoR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIpIH07CisgICAgICAgIFZlY3RvcjxBcmd1bWVudExvY2F0aW9uLCAxPiBy
ZXN1bHRzIHsgQXJndW1lbnRMb2NhdGlvbiB7IEpTUkluZm86OnJldHVyblZhbHVlSlNSIH0gfTsK
ICAgICAgICAgcmV0dXJuIENhbGxJbmZvcm1hdGlvbihXVEZNb3ZlKHBhcmFtcyksIFdURk1vdmUo
cmVzdWx0cyksIHN0YWNrT2Zmc2V0KTsKICAgICB9CiAKLSAgICBjb25zdCBWZWN0b3I8UmVnPiBn
cHJBcmdzOwotICAgIGNvbnN0IFZlY3RvcjxSZWc+IGZwckFyZ3M7CisgICAgY29uc3QgVmVjdG9y
PEpTVmFsdWVSZWdzPiBqc3JBcmdzOworICAgIGNvbnN0IFZlY3RvcjxGUFJSZWc+IGZwckFyZ3M7
CiAgICAgY29uc3QgUmVnaXN0ZXJTZXQgY2FsbGVlU2F2ZVJlZ2lzdGVyczsKICAgICBjb25zdCBS
ZWdpc3RlclNldCBjYWxsZXJTYXZlUmVnaXN0ZXJzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21Gb3JtYXQuaAppbmRleCBhY2U4NTdmZDIwYmY5ZjkwNWRkNDhkNTJlNzE1ZDkzYjJk
Njg3NmZjLi5jOGRmMzQxN2FkMzViMjQ1NDcyY2RiZmE2Mjk2NTU4ZDM5YjFiMDAzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCkBAIC00MzksNyArNDM5LDkgQEAgc3Ry
dWN0IEVudHJ5cG9pbnQgewogc3RydWN0IEludGVybmFsRnVuY3Rpb24gewogICAgIFdURl9NQUtF
X1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsKICAgICBWZWN0b3I8Q29kZUxvY2F0aW9uRGF0YUxhYmVs
UHRyPFdhc21FbnRyeVB0clRhZz4+IGNhbGxlZU1vdmVMb2NhdGlvbnM7CisjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZX0IzSklUKQogICAgIFN0YWNrTWFwcyBzdGFja21hcHM7CisjZW5kaWYKICAgICBW
ZWN0b3I8VW5saW5rZWRIYW5kbGVySW5mbz4gZXhjZXB0aW9uSGFuZGxlcnM7CiAgICAgRW50cnlw
b2ludCBlbnRyeXBvaW50OwogICAgIHVuc2lnbmVkIG9zckVudHJ5U2NyYXRjaEJ1ZmZlclNpemUg
eyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhP
ck5hbWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNw
cAppbmRleCA0MTIwYWU2YTk0OTRmZDQ0NjlmOTdiOGY0MDg4ZDdmY2FjMzE4YTg4Li5mYjIxYzky
YmY4MWY2MTc5ZWUzZGY1OWQ4YzkxYjk1NTAxZThiYjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5jcHAKQEAgLTMwLDE2ICszMCwyMyBAQCBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCiBJbmRleE9yTmFtZTo6SW5kZXhPck5hbWUo
SW5kZXggaW5kZXgsIHN0ZDo6cGFpcjxjb25zdCBOYW1lKiwgUmVmUHRyPE5hbWVTZWN0aW9uPj4m
JiBuYW1lKQogeworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgc3RhdGljX2Fzc2VydChzaXplb2Yo
bV9pbmRleE5hbWUuaW5kZXgpID09IHNpemVvZihtX2luZGV4TmFtZS5uYW1lKSwgImJpdC10YWdn
aW5nIGRlcGVuZHMgb24gc2l6ZXMgYmVpbmcgZXF1YWwiKTsKLQotICAgIGlmICgoaW5kZXggJiBh
bGxUYWdzKSB8fCAoYml0d2lzZV9jYXN0PEluZGV4PihuYW1lLmZpcnN0KSAmIGFsbFRhZ3MpKQot
ICAgICAgICAqdGhpcyA9IEluZGV4T3JOYW1lKCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGlmIChu
YW1lLmZpcnN0KQotICAgICAgICAgICAgbV9pbmRleE5hbWUubmFtZSA9IG5hbWUuZmlyc3Q7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1faW5kZXhOYW1lLmluZGV4ID0gaW5kZXhUYWcgfCBp
bmRleDsKKyAgICBBU1NFUlQoIShpbmRleCAmIGFsbFRhZ3MpKTsKKyAgICBBU1NFUlQoIShiaXR3
aXNlX2Nhc3Q8SW5kZXg+KG5hbWUuZmlyc3QpICYgYWxsVGFncykpOworICAgIGlmIChuYW1lLmZp
cnN0KQorICAgICAgICBtX2luZGV4TmFtZS5uYW1lID0gbmFtZS5maXJzdDsKKyAgICBlbHNlCisg
ICAgICAgIG1faW5kZXhOYW1lLmluZGV4ID0gaW5kZXhUYWcgfCBpbmRleDsKKyNlbGlmIFVTRShK
U1ZBTFVFMzJfNjQpCisgICAgaWYgKG5hbWUuZmlyc3QpIHsKKyAgICAgICAgbV9pbmRleE5hbWUu
bmFtZSA9IG5hbWUuZmlyc3Q7CisgICAgICAgIG1fa2luZCA9IEtpbmQ6Ok5hbWU7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgbV9pbmRleE5hbWUuaW5kZXggPSBpbmRleDsKKyAgICAgICAgbV9raW5k
ID0gS2luZDo6SW5kZXg7CiAgICAgfQorI2VuZGlmCiAgICAgbV9uYW1lU2VjdGlvbiA9IFdURk1v
dmUobmFtZS5zZWNvbmQpOwogfQogCkBAIC00OSw4ICs1Niw4IEBAIFN0cmluZyBtYWtlU3RyaW5n
KGNvbnN0IEluZGV4T3JOYW1lJiBpb24pCiAgICAgICAgIHJldHVybiAid2FzbS1zdHViIl9zOwog
ICAgIGNvbnN0IFN0cmluZyBtb2R1bGVOYW1lID0gaW9uLm5hbWVTZWN0aW9uKCktPm1vZHVsZU5h
bWUuc2l6ZSgpID8gU3RyaW5nKGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1bGVOYW1lLmRhdGEoKSwg
aW9uLm5hbWVTZWN0aW9uKCktPm1vZHVsZU5hbWUuc2l6ZSgpKSA6IFN0cmluZyhpb24ubmFtZVNl
Y3Rpb24oKS0+bW9kdWxlSGFzaC5kYXRhKCksIGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1bGVIYXNo
LnNpemUoKSk7CiAgICAgaWYgKGlvbi5pc0luZGV4KCkpCi0gICAgICAgIHJldHVybiBtYWtlU3Ry
aW5nKG1vZHVsZU5hbWUsICIud2FzbS1mdW5jdGlvblsiLCBTdHJpbmc6Om51bWJlcihpb24ubV9p
bmRleE5hbWUuaW5kZXggJiB+SW5kZXhPck5hbWU6OmluZGV4VGFnKSwgJ10nKTsKLSAgICByZXR1
cm4gbWFrZVN0cmluZyhtb2R1bGVOYW1lLCAiLndhc20tZnVuY3Rpb25bIiwgU3RyaW5nKGlvbi5t
X2luZGV4TmFtZS5uYW1lLT5kYXRhKCksIGlvbi5tX2luZGV4TmFtZS5uYW1lLT5zaXplKCkpLCAn
XScpOworICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhtb2R1bGVOYW1lLCAiLndhc20tZnVuY3Rp
b25bIiwgU3RyaW5nOjpudW1iZXIoaW9uLmluZGV4KCkpLCAnXScpOworICAgIHJldHVybiBtYWtl
U3RyaW5nKG1vZHVsZU5hbWUsICIud2FzbS1mdW5jdGlvblsiLCBTdHJpbmcoaW9uLm5hbWUoKS0+
ZGF0YSgpLCBpb24ubmFtZSgpLT5zaXplKCkpLCAnXScpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUlu
ZGV4T3JOYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUu
aAppbmRleCA1ZWVlZmM4OGFmNzZkNGM0YzMzNmExNzIwMDdhNmNmZTYxZWFlZTYxLi4yZDkwMzAx
MThmOGMxZDI5OGE4Y2IzMzlkOWIzOTA0MmQzZTExODdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaApAQCAtNDAsMTQgKzQwLDY3IEBAIHN0cnVjdCBO
YW1lU2VjdGlvbjsKIHN0cnVjdCBJbmRleE9yTmFtZSB7CiAgICAgdHlwZWRlZiBzaXplX3QgSW5k
ZXg7CiAKLSAgICBJbmRleE9yTmFtZSgpIHsgbV9pbmRleE5hbWUuaW5kZXggPSBlbXB0eVRhZzsg
fQotICAgIEluZGV4T3JOYW1lKEluZGV4LCBzdGQ6OnBhaXI8Y29uc3QgTmFtZSosIFJlZlB0cjxO
YW1lU2VjdGlvbj4+JiYpOwotICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIGJpdHdp
c2VfY2FzdDxJbmRleD4obV9pbmRleE5hbWUpICYgZW1wdHlUYWc7IH0KLSAgICBib29sIGlzSW5k
ZXgoKSBjb25zdCB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8SW5kZXg+KG1faW5kZXhOYW1lKSAmIGlu
ZGV4VGFnOyB9Ci0gICAgYm9vbCBpc05hbWUoKSBjb25zdCB7IHJldHVybiAhKGlzRW1wdHkoKSB8
fCBpc05hbWUoKSk7IH0KLSAgICBOYW1lU2VjdGlvbiogbmFtZVNlY3Rpb24oKSBjb25zdCB7IHJl
dHVybiBtX25hbWVTZWN0aW9uLmdldCgpOyB9Citwcml2YXRlOgorI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgZW51bSBjbGFzcyBLaW5kIDogdWludDhfdCB7CisgICAgICAgIEVtcHR5LAorICAg
ICAgICBJbmRleCwKKyAgICAgICAgTmFtZQorICAgIH07CisjZW5kaWYKK3B1YmxpYzoKIAotICAg
IGZyaWVuZCBTdHJpbmcgbWFrZVN0cmluZyhjb25zdCBJbmRleE9yTmFtZSYpOworICAgIEluZGV4
T3JOYW1lKCkKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgbV9pbmRleE5hbWUu
aW5kZXggPSBlbXB0eVRhZzsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIG1fa2lu
ZCA9IEtpbmQ6OkVtcHR5OworI2VuZGlmCisgICAgfQorCisgICAgSW5kZXhPck5hbWUoSW5kZXgs
IHN0ZDo6cGFpcjxjb25zdCBOYW1lKiwgUmVmUHRyPE5hbWVTZWN0aW9uPj4mJik7CisKKyAgICBi
b29sIGlzRW1wdHkoKSBjb25zdAorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBy
ZXR1cm4gYml0d2lzZV9jYXN0PEluZGV4PihtX2luZGV4TmFtZSkgJiBlbXB0eVRhZzsKKyNlbGlm
IFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJldHVybiBtX2tpbmQgPT0gS2luZDo6RW1wdHk7
CisjZW5kaWYKKyAgICB9CisKKyAgICBib29sIGlzSW5kZXgoKSBjb25zdAorICAgIHsKKyNpZiBV
U0UoSlNWQUxVRTY0KQorICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PEluZGV4PihtX2luZGV4
TmFtZSkgJiBpbmRleFRhZzsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJldHVy
biBtX2tpbmQgPT0gS2luZDo6SW5kZXg7CisjZW5kaWYKKyAgICB9CisKKyAgICBib29sIGlzTmFt
ZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gIShpc0VtcHR5KCkgfHwgaXNJbmRleCgp
KTsKKyAgICB9CisKKyAgICBJbmRleCBpbmRleCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NF
UlQoaXNJbmRleCgpKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICByZXR1cm4gbV9pbmRl
eE5hbWUuaW5kZXggJiB+aW5kZXhUYWc7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAg
ICByZXR1cm4gbV9pbmRleE5hbWUuaW5kZXg7CisjZW5kaWYKKyAgICB9CisKKyAgICBjb25zdCBO
YW1lKiBuYW1lKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpc05hbWUoKSk7CisgICAg
ICAgIHJldHVybiBtX2luZGV4TmFtZS5uYW1lOworICAgIH0KKworICAgIE5hbWVTZWN0aW9uKiBu
YW1lU2VjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZVNlY3Rpb24uZ2V0KCk7IH0KIAogcHJp
dmF0ZToKICAgICB1bmlvbiB7CkBAIC01NiwxMCArMTA5LDE1IEBAIHByaXZhdGU6CiAgICAgfSBt
X2luZGV4TmFtZTsKICAgICBSZWZQdHI8TmFtZVNlY3Rpb24+IG1fbmFtZVNlY3Rpb247CiAKKyNp
ZiBVU0UoSlNWQUxVRTY0KQogICAgIC8vIFVzZSB0aGUgdG9wIGJpdHMgYXMgdGFncy4gTmVpdGhl
ciBwb2ludGVycyBub3IgdGhlIGZ1bmN0aW9uIGluZGV4IHNwYWNlIHNob3VsZCB1c2UgdGhlbS4K
ICAgICBzdGF0aWMgY29uc3RleHByIEluZGV4IGluZGV4VGFnID0gMXVsbCA8PCAoQ0hBUl9CSVQg
KiBzaXplb2YoSW5kZXgpIC0gMSk7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBJbmRleCBlbXB0eVRh
ZyA9IDF1bGwgPDwgKENIQVJfQklUICogc2l6ZW9mKEluZGV4KSAtIDIpOwogICAgIHN0YXRpYyBj
b25zdGV4cHIgSW5kZXggYWxsVGFncyA9IGluZGV4VGFnIHwgZW1wdHlUYWc7CisjZWxpZiBVU0Uo
SlNWQUxVRTMyXzY0KQorICAgIC8vIFVzZSBhbiBleHBsaWNpdCB0YWcgYXMgcG9pbnRlcnMgbWln
aHQgaGF2ZSBoaWdoIGJpdHMgc2V0CisgICAgS2luZCBtX2tpbmQ7CisjZW5kaWYKIH07CiAKIFN0
cmluZyBtYWtlU3RyaW5nKGNvbnN0IEluZGV4T3JOYW1lJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21JbnN0YW5jZS5oCmluZGV4IGU2ZGIzYTNhMDhjNDRhMDVjYmNiMjkwZmVhNGRl
ZTI3NmU3MGUxYjIuLjliNDMwYWU0ZWY2ZjM4MzQ3YWU3YmFkZWRjMzY2YmRhN2Q4ZjQ5NzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5oCkBAIC0xMDcsNyArMTA3
LDggQEAgcHVibGljOgogICAgIHsKICAgICAgICAgaWYgKG1fbWVtb3J5ICE9IG51bGxwdHIpIHsK
ICAgICAgICAgICAgIG1fY2FjaGVkTWVtb3J5ID0gQ2FnZWRQdHI8R2lnYWNhZ2U6OlByaW1pdGl2
ZSwgdm9pZCwgdGFnQ2FnZWRQdHI+KG1lbW9yeSgpLT5tZW1vcnkoKSwgbWVtb3J5KCktPmJvdW5k
c0NoZWNraW5nU2l6ZSgpKTsKLSAgICAgICAgICAgIG1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXpl
ID0gbWVtb3J5KCktPmJvdW5kc0NoZWNraW5nU2l6ZSgpOworICAgICAgICAgICAgLy8gVGhpcyBp
cyB1c2VkIGJ5IHRoZSBub24tc2lnbmFsaW5nIGJhc2VkIGJvdW5kIGNoZWNraW5nLCBzbyB1c2Ug
dGhlIGFjdHVhbCBzaXplIG9mIHRoZSBtZW1vcnkuCisgICAgICAgICAgICBtX2NhY2hlZEJvdW5k
c0NoZWNraW5nU2l6ZSA9IG1lbW9yeSgpLT5zaXplKCk7CiAgICAgICAgICAgICBBU1NFUlQobWVt
b3J5KCktPm1lbW9yeSgpID09IGNhY2hlZE1lbW9yeSgpKTsKICAgICAgICAgfQogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwCmlu
ZGV4IDcxZTA2NDdjNTY2NjZlYTBmZmQzY2M0NWE0ZGU2MTFlMDc5Mjc3ZmQuLmE0MzA4NDQ3MjQw
Zjk5YmZjMTFlNWQyOTMxYzRlNmVjMGM0MDliN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcApAQCAtMzM4LDcgKzMzOCw3IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICByZXR1cm4gbV9ub3JtYWxpemVkQXJndW1lbnRzW2luZGV4XTsK
IAogICAgICAgICBjb25zdCBhdXRvJiBjYWxsaW5nQ29udmVudGlvbiA9IHdhc21DYWxsaW5nQ29u
dmVudGlvbigpOwotICAgICAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252
ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgICAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9
IGNhbGxpbmdDb252ZW50aW9uLmpzckFyZ3Muc2l6ZSgpOwogICAgICAgICBjb25zdCB1aW50MzJf
dCBmcHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmZwckFyZ3Muc2l6ZSgpOwogICAgICAgICBy
ZXR1cm4gdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoaW5kZXggLSBtX2NvZGVCbG9jay0+bV9udW1B
cmd1bWVudHMgKyBncHJDb3VudCArIGZwckNvdW50ICsgbnVtYmVyT2ZMTEludENhbGxlZVNhdmVS
ZWdpc3RlcnMpOwogICAgIH0KQEAgLTU5Miw3ICs1OTIsNyBAQCBhdXRvIExMSW50R2VuZXJhdG9y
OjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIoY29uc3QgRnVuY3Rpb25TaWduYXR1cmUmIHNpZ25h
dHVyZQogICAgIGNvbnN0IGF1dG8gaW5pdGlhbFN0YWNrU2l6ZSA9IG1fc3RhY2tTaXplOwogCiAg
ICAgY29uc3QgYXV0byYgY2FsbGluZ0NvbnZlbnRpb24gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24o
KTsKLSAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmdwckFy
Z3Muc2l6ZSgpOworICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRp
b24uanNyQXJncy5zaXplKCk7CiAgICAgY29uc3QgdWludDMyX3QgZnByQ291bnQgPSBjYWxsaW5n
Q29udmVudGlvbi5mcHJBcmdzLnNpemUoKTsKIAogICAgIHVpbnQzMl90IHN0YWNrQ291bnQgPSAw
OwpAQCAtNzM3LDcgKzczNyw3IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlv
bkZvckNhbGxlZShjb25zdCBGdW5jdGlvblNpZ25hdHVyZSYgc2lnbmF0dXJlCiAgICAgbV9yZXN1
bHRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc2lnbmF0dXJlLnJldHVybkNvdW50KCkpOwogCiAg
ICAgY29uc3QgYXV0byYgY2FsbGluZ0NvbnZlbnRpb24gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24o
KTsKLSAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmdwckFy
Z3Muc2l6ZSgpOworICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRp
b24uanNyQXJncy5zaXplKCk7CiAgICAgY29uc3QgdWludDMyX3QgZnByQ291bnQgPSBjYWxsaW5n
Q29udmVudGlvbi5mcHJBcmdzLnNpemUoKTsKIAogICAgIHVpbnQzMl90IGdwckluZGV4ID0gMDsK
QEAgLTc4NCw3ICs3ODQsNyBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjphZGRBcmd1bWVudHMoY29u
c3QgVHlwZURlZmluaXRpb24mIHNpZ25hdHVyZSkgLT4gUGFydGlhbFJlcwogICAgIG1fbm9ybWFs
aXplZEFyZ3VtZW50cy5yZXNpemUobV9jb2RlQmxvY2stPm1fbnVtQXJndW1lbnRzKTsKIAogICAg
IGNvbnN0IGF1dG8mIGNhbGxpbmdDb252ZW50aW9uID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCk7
Ci0gICAgY29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5ncHJBcmdz
LnNpemUoKTsKKyAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9u
LmpzckFyZ3Muc2l6ZSgpOwogICAgIGNvbnN0IHVpbnQzMl90IGZwckNvdW50ID0gY2FsbGluZ0Nv
bnZlbnRpb24uZnByQXJncy5zaXplKCk7CiAgICAgY29uc3QgdWludDMyX3QgbWF4R1BSSW5kZXgg
PSBncHJDb3VudDsKICAgICBjb25zdCB1aW50MzJfdCBtYXhGUFJJbmRleCA9IGdwckNvdW50ICsg
ZnByQ291bnQ7CkBAIC05NjYsNyArOTY2LDcgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6YWRkTG9v
cChCbG9ja1NpZ25hdHVyZSBzaWduYXR1cmUsIFN0YWNrJiBlbmNsb3NpbmdTdGFjaywgQ28KICAg
ICAgICAgb3NyRW50cnlEYXRhLmFwcGVuZChtX25vcm1hbGl6ZWRBcmd1bWVudHNbaV0pOwogCiAg
ICAgY29uc3QgYXV0byYgY2FsbGluZ0NvbnZlbnRpb24gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24o
KTsKLSAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmdwckFy
Z3Muc2l6ZSgpOworICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRp
b24uanNyQXJncy5zaXplKCk7CiAgICAgY29uc3QgdWludDMyX3QgZnByQ291bnQgPSBjYWxsaW5n
Q29udmVudGlvbi5mcHJBcmdzLnNpemUoKTsKICAgICBmb3IgKHVpbnQzMl90IGkgPSBncHJDb3Vu
dCArIGZwckNvdW50ICsgbnVtYmVyT2ZMTEludENhbGxlZVNhdmVSZWdpc3RlcnM7IGkgPCBtX2Nv
ZGVCbG9jay0+bV9udW1WYXJzOyBpKyspCiAgICAgICAgIG9zckVudHJ5RGF0YS5hcHBlbmQodmly
dHVhbFJlZ2lzdGVyRm9yTG9jYWwoaSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUxMSW50UGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtTExJbnRQbGFuLmNwcAppbmRleCA4YjQzNmQyZGNmNTZlZjYyZWQyZTQ0NzI4YjQ0MTMxNWZj
Yzk4MzdhLi5lMzRmNDRjYWNhZDNhOTE0OTg0ZTdmYmZkYTU5OTdkMzNiOGE2MGIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcApAQCAtMTE5LDEyICsx
MTksMTUgQEAgdm9pZCBMTEludFBsYW46OmRpZENvbXBsZXRlQ29tcGlsYXRpb24oKQogICAgICAg
ICAgICAgZW50cnlwb2ludHNbaV0gPSBqaXQubGFiZWwoKTsKICNpZiBDUFUoWDg2XzY0KQogICAg
ICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGNhbGxlZVNsb3QoQ0NhbGxIZWxwZXJzOjpz
dGFja1BvaW50ZXJSZWdpc3RlciwgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlICogc3RhdGljX2Nhc3Q8
aW50PihzaXplb2YoUmVnaXN0ZXIpKSAtIHNpemVvZihDUFVSZWdpc3RlcikpOwotI2VsaWYgQ1BV
KEFSTTY0KSB8fCBDUFUoUklTQ1Y2NCkKKyNlbGlmIENQVShBUk02NCkgfHwgQ1BVKFJJU0NWNjQp
IHx8IENQVShBUk0pCiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgY2FsbGVlU2xv
dChDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBDYWxsRnJhbWVTbG90OjpjYWxs
ZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpIC0gc2l6ZW9mKENhbGxlckZy
YW1lQW5kUEMpKTsKICNlbHNlCiAjZXJyb3IgVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlLgogI2Vu
ZGlmCi0gICAgICAgICAgICBqaXQuc3RvcmVQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRy
KENhbGxlZUJpdHM6OmJveFdhc20obV9jYWxsZWVzVmVjdG9yW2ldLnB0cigpKSksIGNhbGxlZVNs
b3QpOworICAgICAgICAgICAgaml0LnN0b3JlUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0
cihDYWxsZWVCaXRzOjpib3hXYXNtKG1fY2FsbGVlc1ZlY3RvcltpXS5wdHIoKSkpLCBjYWxsZWVT
bG90LndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisg
ICAgICAgICAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVl
OjpXYXNtVGFnKSwgY2FsbGVlU2xvdC53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworI2VuZGlmCiAg
ICAgICAgICAgICBqdW1wc1tpXSA9IGppdC5qdW1wKCk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcAppbmRleCA0NDA3NTk1MmYwMDc2OWRiMmI5
MDE2MDBiMTAxYmYyYmRlNGI2ZTVmLi5iZjVjMWVjNDYyYmQxNmYyNGRmNTc0ZTNiMzdiNDJlZjRm
YjUxYjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcApAQCAt
OTgsMTEgKzk4LDkgQEAgY2xhc3MgTWVtb3J5TWFuYWdlciB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWVtb3J5TWFuYWdlcik7CiBwdWJs
aWM6Ci0gICAgTWVtb3J5TWFuYWdlcigpCi0gICAgICAgIDogbV9tYXhGYXN0TWVtb3J5Q291bnQo
T3B0aW9uczo6bWF4TnVtV2ViQXNzZW1ibHlGYXN0TWVtb3JpZXMoKSkKLSAgICB7Ci0gICAgfQot
ICAgIAorICAgIE1lbW9yeU1hbmFnZXIoKSA9IGRlZmF1bHQ7CisKKyNpZiBFTkFCTEUoV0VCQVNT
RU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBNZW1vcnlSZXN1bHQgdHJ5QWxsb2NhdGVGYXN0
TWVtb3J5KCkKICAgICB7CiAgICAgICAgIE1lbW9yeVJlc3VsdCByZXN1bHQgPSBbJl0gewpAQCAt
MTI1LDcgKzEyMyw3IEBAIHB1YmxpYzoKICAgICAgICAgCiAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgfQotICAgIAorCiAgICAgdm9pZCBmcmVlRmFzdE1lbW9yeSh2b2lkKiBiYXNlUHRyKQog
ICAgIHsKICAgICAgICAgewpAQCAtMTM2LDYgKzEzNCw3IEBAIHB1YmxpYzoKICAgICAgICAgCiAg
ICAgICAgIGRhdGFMb2dMbklmKE9wdGlvbnM6OmxvZ1dlYkFzc2VtYmx5TWVtb3J5KCksICJGcmVl
ZCB2aXJ0dWFsOyBzdGF0ZTogIiwgKnRoaXMpOwogICAgIH0KKyNlbmRpZgogCiAgICAgTWVtb3J5
UmVzdWx0IHRyeUFsbG9jYXRlR3Jvd2FibGVCb3VuZHNDaGVja2luZ01lbW9yeShzaXplX3QgbWFw
cGVkQ2FwYWNpdHkpCiAgICAgewpAQCAtMTcwLDExICsxNjksMTMgQEAgcHVibGljOgogICAgIHsK
ICAgICAgICAgLy8gTk9URTogVGhpcyBjYW4gYmUgY2FsbGVkIGZyb20gYSBzaWduYWwgaGFuZGxl
ciwgYnV0IG9ubHkgYWZ0ZXIgd2UgcHJvdmVkIHRoYXQgd2UncmUgaW4gSklUIGNvZGUgb3IgV2Fz
bUxMSW50IGNvZGUuCiAgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKKyNpZiBFTkFC
TEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICAgICAgZm9yICh2b2lkKiBtZW1v
cnkgOiBtX2Zhc3RNZW1vcmllcykgewogICAgICAgICAgICAgY2hhciogc3RhcnQgPSBzdGF0aWNf
Y2FzdDxjaGFyKj4obWVtb3J5KTsKICAgICAgICAgICAgIGlmIChzdGFydCA8PSBhZGRyZXNzICYm
IGFkZHJlc3MgPD0gc3RhcnQgKyBNZW1vcnk6OmZhc3RNYXBwZWRCeXRlcygpKQogICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CisjZW5kaWYKICAgICAgICAgdWludHB0cl90
IGFkZHJlc3NWYWx1ZSA9IGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGFkZHJlc3MpOwogICAgICAg
ICBhdXRvIGl0ZXJhdG9yID0gc3RkOjp1cHBlcl9ib3VuZChtX2dyb3dhYmxlQm91bmRzQ2hlY2tp
bmdNZW1vcmllcy5iZWdpbigpLCBtX2dyb3dhYmxlQm91bmRzQ2hlY2tpbmdNZW1vcmllcy5lbmQo
KSwgc3RkOjptYWtlX3BhaXIoYWRkcmVzc1ZhbHVlLCAwKSwKICAgICAgICAgICAgIFtdKHN0ZDo6
cGFpcjx1aW50cHRyX3QsIHNpemVfdD4gYSwgc3RkOjpwYWlyPHVpbnRwdHJfdCwgc2l6ZV90PiBi
KSB7CkBAIC0yMjcsMTMgKzIyOCwxOSBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBkdW1wKFBy
aW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgeworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdO
QUxJTkdfTUVNT1JZKQogICAgICAgICBvdXQucHJpbnQoImZhc3QgbWVtb3JpZXMgPSAgIiwgbV9m
YXN0TWVtb3JpZXMuc2l6ZSgpLCAiLyIsIG1fbWF4RmFzdE1lbW9yeUNvdW50LCAiLCBieXRlcyA9
ICIsIG1fcGh5c2ljYWxCeXRlcywgIi8iLCBtZW1vcnlMaW1pdCgpKTsKKyNlbHNlCisgICAgICAg
IG91dC5wcmludCgiZmFzdCBtZW1vcmllcyA9IE4uQS4sIGJ5dGVzID0gIiwgbV9waHlzaWNhbEJ5
dGVzLCAiLyIsIG1lbW9yeUxpbWl0KCkpOworI2VuZGlmCiAgICAgfQogICAgIAogcHJpdmF0ZToK
ICAgICBMb2NrIG1fbG9jazsKLSAgICB1bnNpZ25lZCBtX21heEZhc3RNZW1vcnlDb3VudCB7IDAg
fTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKKyAgICB1bnNpZ25l
ZCBtX21heEZhc3RNZW1vcnlDb3VudCB7IE9wdGlvbnM6Om1heE51bVdlYkFzc2VtYmx5RmFzdE1l
bW9yaWVzKCkgfTsKICAgICBWZWN0b3I8dm9pZCo+IG1fZmFzdE1lbW9yaWVzOworI2VuZGlmCiAg
ICAgU3RkU2V0PHN0ZDo6cGFpcjx1aW50cHRyX3QsIHNpemVfdD4+IG1fZ3Jvd2FibGVCb3VuZHND
aGVja2luZ01lbW9yaWVzOwogICAgIHNpemVfdCBtX3BoeXNpY2FsQnl0ZXMgeyAwIH07CiB9OwpA
QCAtMzAwLDYgKzMwNyw3IEBAIE1lbW9yeUhhbmRsZTo6fk1lbW9yeUhhbmRsZSgpCiAgICAgICAg
IHZvaWQqIG1lbW9yeSA9IHRoaXMtPm1lbW9yeSgpOwogICAgICAgICBtZW1vcnlNYW5hZ2VyKCku
ZnJlZVBoeXNpY2FsQnl0ZXMobV9zaXplKTsKICAgICAgICAgc3dpdGNoIChtX21vZGUpIHsKKyNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICAgICAgY2FzZSBNZW1v
cnlNb2RlOjpTaWduYWxpbmc6CiAgICAgICAgICAgICBpZiAobXByb3RlY3QobWVtb3J5LCBNZW1v
cnk6OmZhc3RNYXBwZWRCeXRlcygpLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFKSkgewogICAgICAg
ICAgICAgICAgIGRhdGFMb2coIm1wcm90ZWN0IGZhaWxlZDogIiwgc2FmZVN0cmVycm9yKGVycm5v
KS5kYXRhKCksICJcbiIpOwpAQCAtMzA3LDYgKzMxNSw3IEBAIE1lbW9yeUhhbmRsZTo6fk1lbW9y
eUhhbmRsZSgpCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBtZW1vcnlNYW5hZ2VyKCkuZnJl
ZUZhc3RNZW1vcnkobWVtb3J5KTsKICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgICAg
IGNhc2UgTWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmc6IHsKICAgICAgICAgICAgIHN3aXRjaCAo
bV9zaGFyaW5nTW9kZSkgewogICAgICAgICAgICAgY2FzZSBNZW1vcnlTaGFyaW5nTW9kZTo6RGVm
YXVsdDoKQEAgLTM5NSw2ICs0MDQsNyBAQCBSZWZQdHI8TWVtb3J5PiBNZW1vcnk6OnRyeUNyZWF0
ZShQYWdlQ291bnQgaW5pdGlhbCwgUGFnZUNvdW50IG1heGltdW0sIE1lbW9yeVNoYQogICAgIGlm
ICghZG9uZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIAorI2lmIEVOQUJMRShX
RUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIGNoYXIqIGZhc3RNZW1vcnkgPSBudWxs
cHRyOwogICAgIGlmIChPcHRpb25zOjp1c2VXZWJBc3NlbWJseUZhc3RNZW1vcnkoKSkgewogICAg
ICAgICB0cnlBbGxvY2F0ZSgKQEAgLTQxMyw3ICs0MjMsOCBAQCBSZWZQdHI8TWVtb3J5PiBNZW1v
cnk6OnRyeUNyZWF0ZShQYWdlQ291bnQgaW5pdGlhbCwgUGFnZUNvdW50IG1heGltdW0sIE1lbW9y
eVNoYQogCiAgICAgICAgIHJldHVybiBNZW1vcnk6OmNyZWF0ZShhZG9wdFJlZigqbmV3IE1lbW9y
eUhhbmRsZShmYXN0TWVtb3J5LCBpbml0aWFsQnl0ZXMsIE1lbW9yeTo6ZmFzdE1hcHBlZEJ5dGVz
KCksIGluaXRpYWwsIG1heGltdW0sIHNoYXJpbmdNb2RlLCBNZW1vcnlNb2RlOjpTaWduYWxpbmcp
KSwgV1RGTW92ZShub3RpZnlNZW1vcnlQcmVzc3VyZSksIFdURk1vdmUoc3luY1RyeVRvUmVjbGFp
bU1lbW9yeSksIFdURk1vdmUoZ3Jvd1N1Y2Nlc3NDYWxsYmFjaykpOwogICAgIH0KLSAgICAKKyNl
bmRpZgorCiAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OmNyYXNoSWZXZWJBc3NlbWJseUNhbnRG
YXN0TWVtb3J5KCkpKQogICAgICAgICB3ZWJBc3NlbWJseUNvdWxkbnRHZXRGYXN0TWVtb3J5KCk7
CiAKQEAgLTQ1Niw2ICs0NjcsNyBAQCBSZWZQdHI8TWVtb3J5PiBNZW1vcnk6OnRyeUNyZWF0ZShQ
YWdlQ291bnQgaW5pdGlhbCwgUGFnZUNvdW50IG1heGltdW0sIE1lbW9yeVNoYQogCiBNZW1vcnk6
On5NZW1vcnkoKSA9IGRlZmF1bHQ7CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5H
X01FTU9SWSkKIHNpemVfdCBNZW1vcnk6OmZhc3RNYXBwZWRSZWR6b25lQnl0ZXMoKQogewogICAg
IHJldHVybiBzdGF0aWNfY2FzdDxzaXplX3Q+KFBhZ2VDb3VudDo6cGFnZVNpemUpICogT3B0aW9u
czo6d2ViQXNzZW1ibHlGYXN0TWVtb3J5UmVkem9uZVBhZ2VzKCk7CkBAIC00NjYsNiArNDc4LDcg
QEAgc2l6ZV90IE1lbW9yeTo6ZmFzdE1hcHBlZEJ5dGVzKCkKICAgICBzdGF0aWNfYXNzZXJ0KHNp
emVvZih1aW50NjRfdCkgPT0gc2l6ZW9mKHNpemVfdCksICJXZSByZWx5IG9uIGFsbG93aW5nIHRo
ZSBtYXhpbXVtIHNpemUgb2YgTWVtb3J5IHdlIG1hcCB0byBiZSAyXjMyICsgcmVkem9uZSB3aGlj
aCBpcyBsYXJnZXIgdGhhbiBmaXRzIGluIGEgMzItYml0IGludGVnZXIgdGhhdCB3ZSdkIHBhc3Mg
dG8gbXByb3RlY3QgaWYgdGhpcyBkaWRuJ3QgaG9sZC4iKTsKICAgICByZXR1cm4gKHN0YXRpY19j
YXN0PHNpemVfdD4oMSkgPDwgMzIpICsgZmFzdE1hcHBlZFJlZHpvbmVCeXRlcygpOwogfQorI2Vu
ZGlmCiAKIGJvb2wgTWVtb3J5OjphZGRyZXNzSXNJbkdyb3dhYmxlT3JGYXN0TWVtb3J5KHZvaWQq
IGFkZHJlc3MpCiB7CkBAIC01MjQsOCArNTM3LDE0IEBAIEV4cGVjdGVkPFBhZ2VDb3VudCwgTWVt
b3J5OjpHcm93RmFpbFJlYXNvbj4gTWVtb3J5Ojpncm93U2hhcmVkKFBhZ2VDb3VudCBkZWx0YSkK
ICAgICAgICAgbV9oYW5kbGUtPmdyb3dUb1NpemUoZGVzaXJlZFNpemUpOwogICAgICAgICByZXR1
cm4gb2xkUGFnZUNvdW50OwogICAgIH0oKSk7Ci0gICAgaWYgKHJlc3VsdCkKKyAgICBpZiAocmVz
dWx0KSB7CiAgICAgICAgIG1fZ3Jvd1N1Y2Nlc3NDYWxsYmFjayhHcm93U3VjY2Vzc1RhZywgb2xk
UGFnZUNvdW50LCBuZXdQYWdlQ291bnQpOworICAgICAgICAvLyBVcGRhdGUgY2FjaGUgZm9yIGlu
c3RhbmNlCisgICAgICAgIGZvciAoYXV0byYgaW5zdGFuY2UgOiBtX2luc3RhbmNlcykgeworICAg
ICAgICAgICAgaWYgKGluc3RhbmNlLmdldCgpICE9IG51bGxwdHIpCisgICAgICAgICAgICAgICAg
aW5zdGFuY2UuZ2V0KCktPnVwZGF0ZUNhY2hlZE1lbW9yeSgpOworICAgICAgICB9CisgICAgfQog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTU4OCw2ICs2MDcsNyBAQCBFeHBlY3RlZDxQYWdl
Q291bnQsIE1lbW9yeTo6R3Jvd0ZhaWxSZWFzb24+IE1lbW9yeTo6Z3JvdyhQYWdlQ291bnQgZGVs
dGEpCiAgICAgICAgIEFTU0VSVChtZW1vcnkoKSA9PSBuZXdNZW1vcnkpOwogICAgICAgICByZXR1
cm4gc3VjY2VzcygpOwogICAgIH0KKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01F
TU9SWSkKICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzogewogICAgICAgICBzaXplX3Qg
ZXh0cmFCeXRlcyA9IGRlc2lyZWRTaXplIC0gc2l6ZSgpOwogICAgICAgICBSRUxFQVNFX0FTU0VS
VChleHRyYUJ5dGVzKTsKQEAgLTYxMyw2ICs2MzMsNyBAQCBFeHBlY3RlZDxQYWdlQ291bnQsIE1l
bW9yeTo6R3Jvd0ZhaWxSZWFzb24+IE1lbW9yeTo6Z3JvdyhQYWdlQ291bnQgZGVsdGEpCiAgICAg
ICAgIG1faGFuZGxlLT5ncm93VG9TaXplKGRlc2lyZWRTaXplKTsKICAgICAgICAgcmV0dXJuIHN1
Y2Nlc3MoKTsKICAgICB9CisjZW5kaWYKICAgICB9CiAKICAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpAQCAtNjQ2LDcgKzY2Nyw4IEBAIGJvb2wgTWVtb3J5Ojpjb3B5KHVpbnQzMl90
IGRzdEFkZHJlc3MsIHVpbnQzMl90IHNyY0FkZHJlc3MsIHVpbnQzMl90IGNvdW50KQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKIAogICAgIHVpbnQ4X3QqIGJhc2UgPSByZWludGVycHJldF9jYXN0PHVp
bnQ4X3QqPihtZW1vcnkoKSk7Ci0gICAgbWVtY3B5KGJhc2UgKyBkc3RBZGRyZXNzLCBiYXNlICsg
c3JjQWRkcmVzcywgY291bnQpOworICAgIC8vIFNvdXJjZSBhbmQgZGVzdGluYXRpb24gYXJlYXMg
bWlnaHQgb3ZlcmxhcCwgc28gdXNpbmcgbWVtbW92ZS4KKyAgICBtZW1tb3ZlKGJhc2UgKyBkc3RB
ZGRyZXNzLCBiYXNlICsgc3JjQWRkcmVzcywgY291bnQpOwogICAgIHJldHVybiB0cnVlOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmgKaW5kZXggZjVjNThmY2Y5NmYy
ZDg2YjA3NWNlNTc4ZDU2Njk3YWU3NGE1NjI0My4uNDljODU1NjYxZTQ0YTJjMDdhZWRiOGFlYWU0
Mzc0NjAwZGUxNjU1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU1lbW9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaApA
QCAtMTA2LDggKzEwNiwxMCBAQCBwdWJsaWM6CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB+TWVt
b3J5KCk7CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBz
dGF0aWMgc2l6ZV90IGZhc3RNYXBwZWRSZWR6b25lQnl0ZXMoKTsKICAgICBzdGF0aWMgc2l6ZV90
IGZhc3RNYXBwZWRCeXRlcygpOyAvLyBJbmNsdWRlcyByZWR6b25lLgorI2VuZGlmCiAgICAgc3Rh
dGljIGJvb2wgYWRkcmVzc0lzSW5Hcm93YWJsZU9yRmFzdE1lbW9yeSh2b2lkKik7CiAKICAgICB2
b2lkKiBtZW1vcnkoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZS0+bWVtb3J5KCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3Bw
CmluZGV4IDI2NTJkZTcyZWQ1NjU4Yjc3Y2VlMjk5MTJhNTI5ZWY3ZjJiZmI0MGQuLjYwZmFkNjNl
ZjBlMGI3OWNlMmMyNmUyNjM3OTdkNGM0MTMzMWEzNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmNwcApAQCAtNDEsOCArNDEs
MTUgQEAgY29uc3QgUGlubmVkUmVnaXN0ZXJJbmZvJiBQaW5uZWRSZWdpc3RlckluZm86OmdldCgp
CiAgICAgICAgIHVuc2lnbmVkIG51bWJlck9mUGlubmVkUmVnaXN0ZXJzID0gMjsKICAgICAgICAg
aWYgKCFDb250ZXh0Ojp1c2VGYXN0VExTKCkpCiAgICAgICAgICAgICArK251bWJlck9mUGlubmVk
UmVnaXN0ZXJzOworI2lmIENQVShYODZfNjQpIHx8IENQVShBUk02NCkKICAgICAgICAgR1BSUmVn
IGJhc2VNZW1vcnlQb2ludGVyID0gR1BSSW5mbzo6cmVnQ1MzOwogICAgICAgICBHUFJSZWcgYm91
bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIgPSBHUFJJbmZvOjpyZWdDUzQ7CisjZWxpZiBDUFUoQVJN
KQorICAgICAgICAvLyBOb3QgZW5vdWdoIHJlZ2lzdGVycy4gcmVnQ1MwIGlzIHRoZSB3YXNtIGlu
c3RhbmNlLCByZWdDUzEgaXMgTExJbnQgUEIKKyAgICAgICAgbnVtYmVyT2ZQaW5uZWRSZWdpc3Rl
cnMgLT0gMjsKKyAgICAgICAgR1BSUmVnIGJhc2VNZW1vcnlQb2ludGVyID0gSW52YWxpZEdQUlJl
ZzsKKyAgICAgICAgR1BSUmVnIGJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyID0gSW52YWxpZEdQ
UlJlZzsKKyNlbmRpZgogICAgICAgICBHUFJSZWcgd2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXIg
PSBJbnZhbGlkR1BSUmVnOwogICAgICAgICBpZiAoIUNvbnRleHQ6OnVzZUZhc3RUTFMoKSkKICAg
ICAgICAgICAgIHdhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyID0gR1BSSW5mbzo6cmVnQ1MwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0
aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24u
aAppbmRleCA4NTRmYmE1NGUzMzdmMGYwMjQ4ZTMzOTM3ODQ0M2IzNDFlMGY3MzA5Li4yOWZjYmRi
NmQ0NjMwZTk0NGUxZjUwYjlmODI4NjE2ODg1ZTlkMjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uaApAQCAtNTIsMTAgKzUyLDEx
IEBAIHB1YmxpYzoKICAgICBSZWdpc3RlclNldCB0b1NhdmUoTWVtb3J5TW9kZSBtb2RlKSBjb25z
dAogICAgIHsKICAgICAgICAgUmVnaXN0ZXJTZXQgcmVzdWx0OwotICAgICAgICByZXN1bHQuc2V0
KGJhc2VNZW1vcnlQb2ludGVyKTsKKyAgICAgICAgaWYgKGJhc2VNZW1vcnlQb2ludGVyICE9IElu
dmFsaWRHUFJSZWcpCisgICAgICAgICAgICByZXN1bHQuc2V0KGJhc2VNZW1vcnlQb2ludGVyKTsK
ICAgICAgICAgaWYgKHdhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyICE9IEludmFsaWRHUFJSZWcp
CiAgICAgICAgICAgICByZXN1bHQuc2V0KHdhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyKTsKLSAg
ICAgICAgaWYgKG1vZGUgIT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nKQorICAgICAgICBpZiAobW9k
ZSA9PSBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZyAmJiBib3VuZHNDaGVja2luZ1NpemVSZWdp
c3RlciAhPSBJbnZhbGlkR1BSUmVnKQogICAgICAgICAgICAgcmVzdWx0LnNldChib3VuZHNDaGVj
a2luZ1NpemVSZWdpc3Rlcik7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuY3BwCmluZGV4IDliZTA0ZDc3
YjA2YjhjYTcyMjdhMWM2NmE2YzYzMzhiMzc5ODhlNWIuLmYzM2IwNTI1MTk4MzBjNDRjMDE2YzJi
ZjdlYmM4YTcyZGU3ZmE4NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21NZW1vcnlNb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
TWVtb3J5TW9kZS5jcHAKQEAgLTM3LDcgKzM3LDkgQEAgY29uc3QgY2hhciogbWFrZVN0cmluZyhN
ZW1vcnlNb2RlIG1vZGUpCiB7CiAgICAgc3dpdGNoIChtb2RlKSB7CiAgICAgY2FzZSBNZW1vcnlN
b2RlOjpCb3VuZHNDaGVja2luZzogcmV0dXJuICJCb3VuZHNDaGVja2luZyI7CisjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgY2FzZSBNZW1vcnlNb2RlOjpTaWdu
YWxpbmc6IHJldHVybiAiU2lnbmFsaW5nIjsKKyNlbmRpZgogICAgIH0KICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiAiIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5oCmluZGV4IDAyY2ZjZmU0OWY0NzE1NGIzMTUzYzA5YWJk
OGNjZmM3Y2ZjMjEwNjguLmQ3MTFhZmFmMzAzMzFmOGNjNzNkMjY4YWMwYzRlNzUxYzBiMmZiNGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuaApAQCAtMzQs
NyArMzQsOSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogLy8gRklYTUU6IFdl
IHNob3VsZCBzdXBwb3J0IG90aGVyIG1vZGVzLiBzZWU6IGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjI2OTMKIGVudW0gY2xhc3MgTWVtb3J5TW9kZSA6IHVpbnQ4X3Qg
ewogICAgIEJvdW5kc0NoZWNraW5nLAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdf
TUVNT1JZKQogICAgIFNpZ25hbGluZworI2VuZGlmCiB9OwogCiBzdGF0aWMgY29uc3RleHByIHNp
emVfdCBOdW1iZXJPZk1lbW9yeU1vZGVzID0gMjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU9wY29kZU9yaWdpbi5jcHAKaW5kZXggYjZjNWMyNzU1MzExYjNkZTM0MDM1M2U3
NTk0M2Q2MTNkZmY2ZDJkOC4uOWZjOTFiOWQ5YzU0ODI2OTJhMWQzN2M5MDE5YzhjNWNiYzEyZGYy
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdp
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5j
cHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXYXNt
T3Bjb2RlT3JpZ2luLmgiCiAKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZX0IzSklUKQogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCkBA
IC0zNyw0ICszNyw0IEBAIHZvaWQgT3Bjb2RlT3JpZ2luOjpkdW1wKFByaW50U3RyZWFtJiBvdXQp
IGNvbnN0CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCiAKLSNlbmRpZiAvLyBFTkFCTEUo
V0VCQVNTRU1CTFkpCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5oCmluZGV4IGEwZDhkZjNh
ZWYxOWFlZjZiMTcwNzk0NzlhNjM0ODEyODgwYzg3MzYuLjVjNGI2NzZkNWM2ZWIwZjU5YTk3ZDQ5
YmIzZDU1YTQxN2JlYzFjMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21PcGNvZGVPcmlnaW4uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
T3Bjb2RlT3JpZ2luLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBF
TkFCTEUoV0VCQVNTRU1CTFkpCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQogCiAjaW5j
bHVkZSAiQjNPcmlnaW4uaCIKICNpbmNsdWRlICJXYXNtRm9ybWF0LmgiCkBAIC02MCw0ICs2MCw0
IEBAIHByaXZhdGU6CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCiAKLSNlbmRpZiAvLyBF
TkFCTEUoV0VCQVNTRU1CTFkpCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCmluZGV4IGVl
MGIyZWQ5YjI3ZDM2ZGJhYzM3NmNiZmM5ZTZiNjZkZDBkYjZmNzQuLjQ2NzUzOTc1NGNkZjljZTRk
NmI4Y2U0MWJhMzAyMWE3OWZjMDkyYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtT3BlcmF0aW9ucy5jcHAKQEAgLTQ2OCw0MyArNDY4LDQzIEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25XYXNtVW53aW5kLCB2b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogICAgIEFTU0VSVCghIXZtLmNhbGxGcmFtZUZvckNhdGNoKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCwgaW50NjRfdCwgKENhbGxGcmFt
ZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbnZlcnRUb0k2NCwgaW50NjRfdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBFbmNvZGVk
SlNWYWx1ZSB2KSkKIHsKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2Vt
Ymx5SW5zdGFuY2UqIGluc3RlYWQuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMzIwNgogICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+ZGVwcmVjYXRlZFZN
KCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAg
ICByZXR1cm4gdi50b0JpZ0ludDY0KGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkp
OworICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUodikudG9CaWdJbnQ2NChjYWxsRnJhbWUtPmxl
eGljYWxHbG9iYWxPYmplY3Qodm0pKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNvbnZlcnRUb0Y2NCwgZG91YmxlLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFs
dWUgdikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjY0LCBk
b3VibGUsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUgdikpCiB7CiAgICAg
Ly8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0ZWFk
LgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMyMDYK
ICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAgIE5hdGl2ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgcmV0dXJuIHYudG9OdW1iZXIo
Y2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmRlY29kZSh2KS50b051bWJlcihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKTsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0kzMiwgaW50
MzJfdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0kzMiwgaW50MzJfdCwgKENhbGxGcmFtZSogY2Fs
bEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSB2KSkKIHsKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgcGFz
c2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RlYWQuCiAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIwNgogICAgIFZNJiB2bSA9IGNhbGxGcmFt
ZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
Y2FsbEZyYW1lKTsKLSAgICByZXR1cm4gdi50b0ludDMyKGNhbGxGcmFtZS0+bGV4aWNhbEdsb2Jh
bE9iamVjdCh2bSkpOworICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUodikudG9JbnQzMihjYWxs
RnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0YzMiwgZmxvYXQsIChDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgSlNWYWx1ZSB2KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0
VG9GMzIsIGZsb2F0LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVuY29kZWRKU1ZhbHVlIHYpKQog
ewogICAgIC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5nIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSog
aW5zdGVhZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAzMjA2CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsKICAgICBOYXRp
dmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxmbG9hdD4odi50b051bWJlcihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qo
dm0pKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihKU1ZhbHVlOjpkZWNvZGUodiku
dG9OdW1iZXIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSkpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50LCBFbmNvZGVkSlNW
YWx1ZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2UsIGludDY0X3Qg
dmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0lu
dCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSW5zdGFuY2UqIGluc3Rh
bmNlLCBFbmNvZGVkV2FzbVZhbHVlIHZhbHVlKSkKIHsKICAgICBKU1dlYkFzc2VtYmx5SW5zdGFu
Y2UqIGpzSW5zdGFuY2UgPSBpbnN0YW5jZS0+b3duZXI8SlNXZWJBc3NlbWJseUluc3RhbmNlPigp
OwogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0luc3RhbmNlLT5nbG9iYWxP
YmplY3QoKTsKQEAgLTUxNSw2ICs1MTUsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29udmVydFRvQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKENhbGxGcmFtZSogYwogCiAv
LyBodHRwczovL3dlYmFzc2VtYmx5LmdpdGh1Yi5pby9tdWx0aS12YWx1ZS9qcy1hcGkvaW5kZXgu
aHRtbCNydW4tYS1ob3N0LWZ1bmN0aW9uCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSW5zdGFuY2Uq
IGluc3RhbmNlLCBjb25zdCBUeXBlRGVmaW5pdGlvbiogdHlwZSwgSlNWYWx1ZSByZXN1bHQsIHVp
bnQ2NF90KiByZWdpc3RlclJlc3VsdHMsIHVpbnQ2NF90KiBjYWxsZWVGcmFtZVBvaW50ZXIpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAo
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwgY29uc3QgVHlwZURlZmlu
aXRpb24qIHR5cGUsIEVuY29kZWRKU1ZhbHVlIGVuY1Jlc3VsdCwgdWludDY0X3QqIHJlZ2lzdGVy
UmVzdWx0cywgdWludDY0X3QqIGNhbGxlZUZyYW1lUG9pbnRlcikpCiB7CiAgICAgLy8gRklYTUU6
IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0ZWFkLgogICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMyMDYKQEAgLTUzMSw2
ICs1MzIsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3Vs
dHMsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSQogCiAgICAgdW5zaWduZWQgaXRlcmF0
aW9uQ291bnQgPSAwOwogICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGJ1ZmZlcjsKKyAgICBKU1Zh
bHVlIHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShlbmNSZXN1bHQpOwogICAgIGZvckVhY2hJbkl0
ZXJhYmxlKGdsb2JhbE9iamVjdCwgcmVzdWx0LCBbJl0gKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBK
U1ZhbHVlIHZhbHVlKSAtPiB2b2lkIHsKICAgICAgICAgaWYgKGJ1ZmZlci5zaXplKCkgPCBzaWdu
YXR1cmUtPnJldHVybkNvdW50KCkpCiAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHZhbHVlKTsK
QEAgLTU4MCw4ICs1ODIsMTAgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0
ZXJhdGVSZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEkKICAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIAogICAgICAgICBhdXRvIHJlcCA9IHdh
c21DYWxsSW5mby5yZXN1bHRzW2luZGV4XTsKLSAgICAgICAgaWYgKHJlcC5pc1JlZygpKQotICAg
ICAgICAgICAgcmVnaXN0ZXJSZXN1bHRzW3JlZ2lzdGVyUmVzdWx0T2Zmc2V0cy5maW5kKHJlcC5y
ZWcoKSktPm9mZnNldCgpIC8gc2l6ZW9mKHVpbnQ2NF90KV0gPSB1bmJveGVkVmFsdWU7CisgICAg
ICAgIGlmIChyZXAuaXNHUFIoKSkKKyAgICAgICAgICAgIHJlZ2lzdGVyUmVzdWx0c1tyZWdpc3Rl
clJlc3VsdE9mZnNldHMuZmluZChyZXAuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkgLyBz
aXplb2YodWludDY0X3QpXSA9IHVuYm94ZWRWYWx1ZTsKKyAgICAgICAgZWxzZSBpZiAocmVwLmlz
RlBSKCkpCisgICAgICAgICAgICByZWdpc3RlclJlc3VsdHNbcmVnaXN0ZXJSZXN1bHRPZmZzZXRz
LmZpbmQocmVwLmZwcigpKS0+b2Zmc2V0KCkgLyBzaXplb2YodWludDY0X3QpXSA9IHVuYm94ZWRW
YWx1ZTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgY2FsbGVlRnJhbWVQb2ludGVyW3JlcC5v
ZmZzZXRGcm9tRlAoKSAvIHNpemVvZih1aW50NjRfdCldID0gdW5ib3hlZFZhbHVlOwogICAgIH0K
QEAgLTYwNywxMiArNjExLDE2IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25B
bGxvY2F0ZVJlc3VsdHNBcnJheSwgSlNBcnJheSosIChDYWxsRnJhbWUqIGNhCiAgICAgYXV0byB3
YXNtQ2FsbEluZm8gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5jYWxsSW5mb3JtYXRpb25Gb3Io
KnR5cGUpOwogICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IHJlZ2lzdGVyUmVzdWx0cyA9IHdhc21D
YWxsSW5mby5jb21wdXRlUmVzdWx0c09mZnNldExpc3QoKTsKIAotICAgIHN0YXRpY19hc3NlcnQo
c2l6ZW9mKEpTVmFsdWUpID09IHNpemVvZihDUFVSZWdpc3RlciksICJUaGUgY29kZSBiZWxvdyBy
ZWxpZXMgb24gdGhpcy4iKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2lnbmF0dXJl
LT5yZXR1cm5Db3VudCgpOyArK2kpIHsKICAgICAgICAgVmFsdWVMb2NhdGlvbiBsb2MgPSB3YXNt
Q2FsbEluZm8ucmVzdWx0c1tpXTsKICAgICAgICAgSlNWYWx1ZSB2YWx1ZTsKLSAgICAgICAgaWYg
KGxvYy5pc1JlZygpKQotICAgICAgICAgICAgdmFsdWUgPSBzdGFja1BvaW50ZXJGcm9tQ2FsbGVl
WyhyZWdpc3RlclJlc3VsdHMuZmluZChsb2MucmVnKCkpLT5vZmZzZXQoKSArIHdhc21DYWxsSW5m
by5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpIC8gc2l6ZW9mKEpTVmFsdWUpXTsK
KyAgICAgICAgaWYgKGxvYy5pc0dQUigpKSB7CisjaWYgVVNFKEpTVkFMRTMyXzY0KQorICAgICAg
ICAgICAgQVNTRVJUKHJlZ2lzdGVyUmVzdWx0cy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkp
LT5vZmZzZXQoKSArIDQgPT0gcmVnaXN0ZXJSZXN1bHRzLmZpbmQobG9jLmpzcigpLnRhZ0dQUigp
KS0+b2Zmc2V0KCkpOworI2VuZGlmCisgICAgICAgICAgICB2YWx1ZSA9IHN0YWNrUG9pbnRlckZy
b21DYWxsZWVbKHJlZ2lzdGVyUmVzdWx0cy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5v
ZmZzZXQoKSArIHdhc21DYWxsSW5mby5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMp
IC8gc2l6ZW9mKEpTVmFsdWUpXTsKKyAgICAgICAgfSBlbHNlIGlmIChsb2MuaXNGUFIoKSkKKyAg
ICAgICAgICAgIHZhbHVlID0gc3RhY2tQb2ludGVyRnJvbUNhbGxlZVsocmVnaXN0ZXJSZXN1bHRz
LmZpbmQobG9jLmZwcigpKS0+b2Zmc2V0KCkgKyB3YXNtQ2FsbEluZm8uaGVhZGVyQW5kQXJndW1l
bnRTdGFja1NpemVJbkJ5dGVzKSAvIHNpemVvZihKU1ZhbHVlKV07CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIHZhbHVlID0gc3RhY2tQb2ludGVyRnJvbUNhbGxlZVtsb2Mub2Zmc2V0RnJvbVNQ
KCkgLyBzaXplb2YoSlNWYWx1ZSldOwogICAgICAgICByZXN1bHQtPmluaXRpYWxpemVJbmRleChp
bml0aWFsaXphdGlvblNjb3BlLCBpLCB2YWx1ZSk7CkBAIC05NDcsNyArOTU1LDggQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UaHJvdywgdm9pZCosIChJbnN0YW5jZSog
aW5zdGFuY2UsIENhbGxGcmEKICAgICAvLyB0byB0aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElmIHdl
IGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNrLgogICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAKICAgICB2bS5jYWxs
ZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgpOwotICAgIGJpdHdpc2VfY2FzdDx1
aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxs
ZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOworICAg
IFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJlZ2lzdGVyKj4oY2FsbEZyYW1l
KSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAgICAqY2FsbGVl
U2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CiAgICAg
cmV0dXJuIHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRocm93OwogfQogCkBAIC05NzMsNyArOTgyLDgg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZXRocm93LCB2b2lkKiwg
KEluc3RhbmNlKiBpbnN0YW5jZSwgQ2FsbEYKICAgICAvLyB0byB0aGUgZXhjZXB0aW9uIGhhbmRs
ZXIuIElmIHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNrLgog
ICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAKICAg
ICB2bS5jYWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgpOwotICAgIGJpdHdp
c2VfY2FzdDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVT
bG90OjpjYWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oanNJbnN0YW5jZS0+bW9kdWxl
KCkpOworICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJlZ2lzdGVyKj4o
Y2FsbEZyYW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAg
ICAqY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihqc0luc3RhbmNlLT5tb2R1bGUo
KSk7CiAgICAgcmV0dXJuIHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRocm93OwogfQogCkBAIC0xMDA4
LDcgKzEwMTgsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRvSlNF
eGNlcHRpb24sIHZvaWQqLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbQogICAgIC8vIHRvIHRoZSBleGNl
cHRpb24gaGFuZGxlci4gSWYgd2UgZGlkIHRoaXMsIHdlIGNvdWxkIHJlbW92ZSB0aGlzIHRlcnJp
YmxlIGhhY2suCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MDQ0MAogICAgIHZtLmNhbGxlZUZvcldhc21DYXRjaCA9IGNhbGxGcmFtZS0+Y2FsbGVlKCk7
Ci0gICAgYml0d2lzZV9jYXN0PHVpbnQ2NF90Kj4oY2FsbEZyYW1lKVtzdGF0aWNfY2FzdDxpbnQ+
KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSldID0gYml0d2lzZV9jYXN0PHVpbnQ2NF90PihpbnN0YW5j
ZS0+bW9kdWxlKCkpOworICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJl
Z2lzdGVyKj4oY2FsbEZyYW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2Fs
bGVlKTsKKyAgICAqY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihpbnN0YW5jZS0+
bW9kdWxlKCkpOwogICAgIHJldHVybiB2bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKIH0KIApA
QCAtMTAzMiw3ICsxMDQzLDExIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtUmV0cmlldmVBbmRDbGVhckV4Y2VwdGlvbklmQ2F0Y2hhYmxlLCBQb2luCiAgICAgdm9pZCog
cGF5bG9hZCA9IG51bGxwdHI7CiAgICAgaWYgKEpTV2ViQXNzZW1ibHlFeGNlcHRpb24qIHdhc21F
eGNlcHRpb24gPSBqc0R5bmFtaWNDYXN0PEpTV2ViQXNzZW1ibHlFeGNlcHRpb24qPih0aHJvd25W
YWx1ZSkpCiAgICAgICAgIHBheWxvYWQgPSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHdhc21FeGNlcHRp
b24tPnBheWxvYWQoKS5kYXRhKCkpOworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgcmV0dXJuIFBv
aW50ZXJQYWlyIHsgYml0d2lzZV9jYXN0PHZvaWQqPihKU1ZhbHVlOjplbmNvZGUodGhyb3duVmFs
dWUpKSwgcGF5bG9hZCB9OworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICByZXR1cm4gUG9p
bnRlclBhaXIgeyBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHRocm93blZhbHVlLnBheWxvYWQoKSksIHBh
eWxvYWQgfTsKKyNlbmRpZgogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmgKaW5kZXggNThkMTU5NzVlODhk
MjAzZGJjOTg0NGMxNGU1NDI0MDJhNjE2Y2I5YS4uNWNjMDMxNDhlYWVlYjk1NTBmZGQ3ZDUxMzM5
YzgyZjY2MzMxNTdjNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0
aW9ucy5oCkBAIC00NywyMiArNDcsMjMgQEAgbmFtZXNwYWNlIFdhc20gewogY2xhc3MgSW5zdGFu
Y2U7CiBjbGFzcyBUeXBlRGVmaW5pdGlvbjsKIAotdm9pZCBsb2FkVmFsdWVzSW50b0J1ZmZlcihQ
cm9iZTo6Q29udGV4dCYsIGNvbnN0IFN0YWNrTWFwJiwgdWludDY0X3QqIGJ1ZmZlcik7Cit0eXBl
ZGVmIGludDY0X3QgRW5jb2RlZFdhc21WYWx1ZTsKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9C
M0pJVCkKK3ZvaWQgbG9hZFZhbHVlc0ludG9CdWZmZXIoUHJvYmU6OkNvbnRleHQmLCBjb25zdCBT
dGFja01hcCYsIHVpbnQ2NF90KiBidWZmZXIpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25XYXNtVHJpZ2dlck9TUkVudHJ5Tm93LCB2b2lkLCAoUHJvYmU6OkNvbnRleHQmKSk7
CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2VyVGllclVwTm93
LCB2b2lkLCAoSW5zdGFuY2UqLCB1aW50MzJfdCBmdW5jdGlvbkluZGV4KSk7CiAjZW5kaWYKIEpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVVud2luZCwgdm9pZCwgKENhbGxG
cmFtZSopKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9J
NjQsIGludDY0X3QsIChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0Y2NCwgZG91YmxlLCAoQ2FsbEZyYW1lKiwgSlNWYWx1
ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIGlu
dDMyX3QsIChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbnZlcnRUb0YzMiwgZmxvYXQsIChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCwgaW50NjRfdCwg
KENhbGxGcmFtZSosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbnZlcnRUb0Y2NCwgZG91YmxlLCAoQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFs
dWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTMyLCBp
bnQzMl90LCAoQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjMyLCBmbG9hdCwgKENhbGxGcmFtZSosIEVuY29k
ZWRKU1ZhbHVlKSk7CiAKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVy
dFRvQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKENhbGxGcmFtZSosIEluc3RhbmNlKiwgaW50NjRf
dCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQs
IEVuY29kZWRKU1ZhbHVlLCAoQ2FsbEZyYW1lKiwgSW5zdGFuY2UqLCBFbmNvZGVkV2FzbVZhbHVl
KSk7CiAKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMs
IHZvaWQsIChDYWxsRnJhbWUqLCBJbnN0YW5jZSosIGNvbnN0IFR5cGVEZWZpbml0aW9uKiwgSlNW
YWx1ZSwgdWludDY0X3QqLCB1aW50NjRfdCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqLCBJbnN0YW5jZSosIGNv
bnN0IFR5cGVEZWZpbml0aW9uKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnQ2NF90KiwgdWludDY0X3Qq
KSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0Fy
cmF5LCBKU0FycmF5KiwgKENhbGxGcmFtZSosIFdhc206Okluc3RhbmNlKiwgY29uc3QgVHlwZURl
ZmluaXRpb24qLCBJbmRleGluZ1R5cGUsIEpTVmFsdWUqKSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uV2FzbVdyaXRlQmFycmllclNsb3dQYXRoLCB2b2lkLCAoSlNDZWxs
KiwgVk0qKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFn
ZUNvdW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFnZUNvdW50LmgKaW5k
ZXggYjdkOGM5ZmNmNzJiMTQ3OWMzYTNmMTIzYmZhMmI0ZDJkMjQ3Y2NlMi4uM2M3NTUxMmY0NGE5
YTg5NGIxZDE2NmFjNDc2NjcwMDNkNDgyNzQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbVBhZ2VDb3VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21QYWdlQ291bnQuaApAQCAtOTgsNyArOTgsMTIgQEAgcHVibGljOgogCiAgICAgc3Rh
dGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYWdlU2l6ZSA9IDY0ICogS0I7CiBwcml2YXRlOgotICAg
IHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWF4UGFnZUNvdW50ID0gc3RhdGljX2Nhc3Q8dWlu
dDMyX3Q+KE1BWF9BUlJBWV9CVUZGRVJfU0laRSAvIHN0YXRpY19jYXN0PHVpbnQ2NF90PihwYWdl
U2l6ZSkpOworICAgIC8vIFRoZSBzcGVjIHJlcXVpcmVzIHdlIGFyZSBhYmxlIHRvIGluc3RhbnRp
YXRlIGEgbWVtb3J5IHdpdGggYSAqbWF4aW11bSogc2l6ZSBvZiA2NEsgcGFnZXMuCisgICAgLy8g
VGhpcyBkb2VzIG5vdCBtZWFuIHRoZSBtZW1vcnkgY2FuIG5lY2Vzc2FyaWx5IGdyb3cgdGhhdCBi
aWcsIGFuZCB3aGVyZSB0aGUKKyAgICAvLyBNQVhfQVJSQVlfQlVGRkVSX1NJWkUgaXMgc21hbGxl
ciAoZS5nLjogb24gMzItYml0IHBsYXRmb3JtcyksIHRyeWluZyB0byBncm93IHRoZSBtZW1vcnkK
KyAgICAvLyB0aGF0IGxhcmdlIHdpbGwgZmFpbCwgd2hpY2ggaXMgYWNjZXB0YWJsZSBhY2NvcmRp
bmcgdG8gdGhlIHNwZWMuIE5ldmVydGhlbGVzcywgd2Ugc2hvdWxkCisgICAgLy8gYmUgYWJsZSB0
byBwYXJzZSBzdWNoIGEgbWVtb3J5IGFuZCBpbnN0YW50aWF0ZSBpdCB3aXRoIGEgc21hbGxlciBp
bml0aWFsIHNpemUuCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXhQYWdlQ291bnQg
PSBzdGQ6Om1heDx1aW50MzJfdD4oNjQqMTAyNCwgTUFYX0FSUkFZX0JVRkZFUl9TSVpFIC8gc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KHBhZ2VTaXplKSk7CiAKICAgICB1aW50MzJfdCBtX3BhZ2VDb3Vu
dDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2Vy
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmgKaW5kZXggNDM4ZmYz
ZjcyZDliNjY0OGFhZjcwYTQ5YTBhYTdiMTUxOGI2YjlhZS4uODBiN2I3YmM4OTI3YTkwMWY0MDM1
NThkMDIzNTg0MDBjZTEwOGI2YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbVBhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJz
ZXIuaApAQCAtMjA4LDcgKzIwOCw3IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBQYXJzZXI8U3VjY2Vz
c1R5cGU+OjpwYXJzZVVJbnQzMih1aW50MzJfdCYgcmVzdWx0KQogewogICAgIGlmIChsZW5ndGgo
KSA8IDQgfHwgbV9vZmZzZXQgPiBsZW5ndGgoKSAtIDQpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICByZXN1bHQgPSAqcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50MzJfdCo+KHNvdXJjZSgp
ICsgbV9vZmZzZXQpOworICAgIG1lbWNweSgmcmVzdWx0LCBzb3VyY2UoKSArIG1fb2Zmc2V0LCBz
aXplb2YodWludDMyX3QpKTsgLy8gc3JjIGNhbiBiZSB1bmFsaWduZWQKICAgICBtX29mZnNldCAr
PSA0OwogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjE4LDcgKzIxOCw3IEBAIEFMV0FZU19JTkxJ
TkUgYm9vbCBQYXJzZXI8U3VjY2Vzc1R5cGU+OjpwYXJzZVVJbnQ2NCh1aW50NjRfdCYgcmVzdWx0
KQogewogICAgIGlmIChsZW5ndGgoKSA8IDggfHwgbV9vZmZzZXQgPiBsZW5ndGgoKSAtIDgpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXN1bHQgPSAqcmVpbnRlcnByZXRfY2FzdDxjb25z
dCB1aW50NjRfdCo+KHNvdXJjZSgpICsgbV9vZmZzZXQpOworICAgIG1lbWNweSgmcmVzdWx0LCBz
b3VyY2UoKSArIG1fb2Zmc2V0LCBzaXplb2YodWludDY0X3QpKTsgLy8gc3JjIGNhbiBiZSB1bmFs
aWduZWQKICAgICBtX29mZnNldCArPSA4OwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmNwcAppbmRleCBjYjY4YjQ5Y2Y3MjQ5
OGFiNDIxZDQ3ZjM3N2RlODgzNjE1NDY4Y2M5Li42ZjExMWExMWJhODhkNjU1NTY4MTY2ZjQ5OWY3
NjFiZThkYmE4NjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1Bh
dGhzLmNwcApAQCAtNjQyLDcgKzY0Miw4IEBAIFdBU01fU0xPV19QQVRIX0RFQ0wodGhyb3cpCiAg
ICAgLy8gdG8gdGhlIGV4Y2VwdGlvbiBoYW5kbGVyLiBJZiB3ZSBkaWQgdGhpcywgd2UgY291bGQg
cmVtb3ZlIHRoaXMgdGVycmlibGUgaGFjay4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDQwCiAgICAgdm0uY2FsbGVlRm9yV2FzbUNhdGNoID0gY2Fs
bEZyYW1lLT5jYWxsZWUoKTsKLSAgICBiaXR3aXNlX2Nhc3Q8dWludDY0X3QqPihjYWxsRnJhbWUp
W3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0gPSBiaXR3aXNlX2Nhc3Q8
dWludDY0X3Q+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsKKyAgICBSZWdpc3RlciogY2FsbGVlU2xv
dCA9IGJpdHdpc2VfY2FzdDxSZWdpc3Rlcio+KGNhbGxGcmFtZSkgKyBzdGF0aWNfY2FzdDxpbnQ+
KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7CisgICAgKmNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8
SlNDZWxsKj4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOwogICAgIFdBU01fUkVUVVJOX1RXTyh2bS50
YXJnZXRNYWNoaW5lUENGb3JUaHJvdywgbnVsbHB0cik7CiB9CiAKQEAgLTY3MCw3ICs2NzEsOCBA
QCBXQVNNX1NMT1dfUEFUSF9ERUNMKHJldGhyb3cpCiAgICAgLy8gdG8gdGhlIGV4Y2VwdGlvbiBo
YW5kbGVyLiBJZiB3ZSBkaWQgdGhpcywgd2UgY291bGQgcmVtb3ZlIHRoaXMgdGVycmlibGUgaGFj
ay4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDQw
CiAgICAgdm0uY2FsbGVlRm9yV2FzbUNhdGNoID0gY2FsbEZyYW1lLT5jYWxsZWUoKTsKLSAgICBi
aXR3aXNlX2Nhc3Q8dWludDY0X3QqPihjYWxsRnJhbWUpW3N0YXRpY19jYXN0PGludD4oQ2FsbEZy
YW1lU2xvdDo6Y2FsbGVlKV0gPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KGpzSW5zdGFuY2UtPm1v
ZHVsZSgpKTsKKyAgICBSZWdpc3RlciogY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxSZWdpc3Rl
cio+KGNhbGxGcmFtZSkgKyBzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7
CisgICAgKmNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8SlNDZWxsKj4oanNJbnN0YW5jZS0+bW9k
dWxlKCkpOwogICAgIFdBU01fUkVUVVJOX1RXTyh2bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdywg
bnVsbHB0cik7CiB9CiAKQEAgLTcxNyw2ICs3MTksMjE0IEBAIFdBU01fU0xPV19QQVRIX0RFQ0wo
cmV0cmlldmVfYW5kX2NsZWFyX2V4Y2VwdGlvbikKICAgICBXQVNNX1JFVFVSTl9UV08ocGMsIHBh
eWxvYWQpOwogfQogCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKK1dBU01fU0xPV19QQVRIX0RFQ0wo
ZjMyX2NlaWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3Ry
dWN0aW9uID0gcGMtPmFzPFdhc21GMzJDZWlsPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFE
KGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgV0FTTV9SRVRVUk4o
SlNWYWx1ZTo6ZW5jb2RlKHdhc21VbmJveGVkRmxvYXQoc3RkOjpjZWlsKG9wZXJhbmQpKSkpOwor
fQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGYzMl9mbG9vcikKK3sKKyAgICBVTlVTRURfUEFSQU0o
aW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUYzMkZsb29yPigp
OworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hl
ZEZsb2F0KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKHdhc21VbmJveGVkRmxv
YXQoc3RkOjpmbG9vcihvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmMzJf
dHJ1bmMpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0
aW9uID0gcGMtPmFzPFdhc21GMzJUcnVuYz4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChp
bnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIFdBU01fUkVUVVJOKEpT
VmFsdWU6OmVuY29kZSh3YXNtVW5ib3hlZEZsb2F0KHN0ZDo6dHJ1bmMob3BlcmFuZCkpKSk7Cit9
CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjMyX25lYXJlc3QpCit7CisgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cm91bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90
b19uZWFyZXN0KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1
Y3Rpb24gPSBwYy0+YXM8V2FzbUYzMk5lYXJlc3Q+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJF
QUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBXQVNNX1JFVFVS
TihKU1ZhbHVlOjplbmNvZGUod2FzbVVuYm94ZWRGbG9hdChzdGQ6Om5lYXJieWludChvcGVyYW5k
KSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmNjRfY2VpbCkKK3sKKyAgICBVTlVTRURf
UEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NENl
aWw+KCk7CisgICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCku
dW5ib3hlZERvdWJsZSgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJs
ZU51bWJlcihzdGQ6OmNlaWwob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0wo
ZjY0X2Zsb29yKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0
cnVjdGlvbiA9IHBjLT5hczxXYXNtRjY0Rmxvb3I+KCk7CisgICAgZG91YmxlIG9wZXJhbmQgPSBS
RUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgpOworICAgIFdBU01fUkVU
VVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGQ6OmZsb29yKG9wZXJhbmQpKSkp
OworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGY2NF90cnVuYykKK3sKKyAgICBVTlVTRURfUEFS
QU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NFRydW5j
PigpOworICAgIGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVu
Ym94ZWREb3VibGUoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVO
dW1iZXIoc3RkOjp0cnVuYyhvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChm
NjRfbmVhcmVzdCkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8Zmxv
YXQ+Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOworICAgIFVOVVNFRF9Q
QVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjY0TmVh
cmVzdD4oKTsKKyAgICBkb3VibGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5k
KS51bmJveGVkRG91YmxlKCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpzRG91
YmxlTnVtYmVyKHN0ZDo6bmVhcmJ5aW50KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFU
SF9ERUNMKGYzMl9jb252ZXJ0X3VfaTY0KQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1l
cmljX2xpbWl0czxmbG9hdD46OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7
CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMt
PmFzPFdhc21GMzJDb252ZXJ0VUk2ND4oKTsKKyAgICB1aW50NjRfdCBvcGVyYW5kID0gUkVBRChp
bnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRJbnQ2NCgpOworICAgIFdBU01fUkVUVVJOKEpT
VmFsdWU6OmVuY29kZSh3YXNtVW5ib3hlZEZsb2F0KHN0YXRpY19jYXN0PGZsb2F0PihvcGVyYW5k
KSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmMzJfY29udmVydF9zX2k2NCkKK3sKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpyb3VuZF9zdHlsZSA9
PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7Cisg
ICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjMyQ29udmVydFNJNjQ+KCk7CisgICAg
aW50NjRfdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRJbnQ2
NCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZSh3YXNtVW5ib3hlZEZsb2F0KHN0
YXRpY19jYXN0PGZsb2F0PihvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChm
NjRfY29udmVydF91X2k2NCkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1p
dHM8ZmxvYXQ+Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOworICAgIFVO
VVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNt
RjY0Q29udmVydFVJNjQ+KCk7CisgICAgdWludDY0X3Qgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rp
b24ubV9vcGVyYW5kKS51bmJveGVkSW50NjQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjpl
bmNvZGUoanNEb3VibGVOdW1iZXIoc3RhdGljX2Nhc3Q8ZG91YmxlPihvcGVyYW5kKSkpKTsKK30K
KworV0FTTV9TTE9XX1BBVEhfREVDTChmNjRfY29udmVydF9zX2k2NCkKK3sKKyAgICBzdGF0aWNf
YXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6OnJv
dW5kX3RvX25lYXJlc3QpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBp
bnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjY0Q29udmVydFNJNjQ+KCk7CisgICAgaW50NjRfdCBv
cGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRJbnQ2NCgpOworICAg
IFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGF0aWNfY2FzdDxk
b3VibGU+KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY191
X2YzMikKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rp
b24gPSBwYy0+YXM8V2FzbUk2NFRydW5jVUYzMj4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0gUkVB
RChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIGlmIChzdGQ6Omlz
bmFuKG9wZXJhbmQpIHx8IG9wZXJhbmQgPD0gLTEuMGYgfHwgb3BlcmFuZCA+PSAtMi4wZiAqIHN0
YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4pKQorICAgICAgICBXQVNNX1RIUk9XKFdhc206OkV4
Y2VwdGlvblR5cGU6Ok91dE9mQm91bmRzVHJ1bmMpOworICAgIFdBU01fUkVUVVJOKHN0YXRpY19j
YXN0PHVpbnQ2NF90PihvcGVyYW5kKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3Ry
dW5jX3NfZjMyKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0
cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1bmNTRjMyPigpOworICAgIGZsb2F0IG9wZXJhbmQg
PSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgaWYgKHN0
ZDo6aXNuYW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8IHN0YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9N
SU4pIHx8IG9wZXJhbmQgPj0gLXN0YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4pKQorICAgICAg
ICBXQVNNX1RIUk9XKFdhc206OkV4Y2VwdGlvblR5cGU6Ok91dE9mQm91bmRzVHJ1bmMpOworICAg
IFdBU01fUkVUVVJOKHN0YXRpY19jYXN0PGludDY0X3Q+KG9wZXJhbmQpKTsKK30KKworV0FTTV9T
TE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfdV9mNjQpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3Rh
bmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1VGNjQ+KCk7
CisgICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hl
ZERvdWJsZSgpOworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9wZXJhbmQgPD0gLTEu
MCB8fCBvcGVyYW5kID49IC0yLjAgKiBzdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0X01JTikpCisg
ICAgICAgIFdBU01fVEhST1coV2FzbTo6RXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNUcnVuYyk7
CisgICAgV0FTTV9SRVRVUk4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG9wZXJhbmQpKTsKK30KKwor
V0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc19mNjQpCit7CisgICAgVU5VU0VEX1BBUkFN
KGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1NG
NjQ+KCk7CisgICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCku
dW5ib3hlZERvdWJsZSgpOworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9wZXJhbmQg
PCBzdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0X01JTikgfHwgb3BlcmFuZCA+PSAtc3RhdGljX2Nh
c3Q8ZG91YmxlPihJTlQ2NF9NSU4pKQorICAgICAgICBXQVNNX1RIUk9XKFdhc206OkV4Y2VwdGlv
blR5cGU6Ok91dE9mQm91bmRzVHJ1bmMpOworICAgIFdBU01fUkVUVVJOKHN0YXRpY19jYXN0PGlu
dDY0X3Q+KG9wZXJhbmQpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc2F0
X2YzMl91KQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVj
dGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1bmNTYXRGMzJVPigpOworICAgIGZsb2F0IG9wZXJhbmQg
PSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgdWludDY0
X3QgcmVzdWx0OworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9wZXJhbmQgPD0gLTEu
MGYpCisgICAgICAgIHJlc3VsdCA9IDA7CisgICAgZWxzZSBpZiAob3BlcmFuZCA+PSAtMi4wZiAq
IHN0YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4pKQorICAgICAgICByZXN1bHQgPSBVSU5UNjRf
TUFYOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG9w
ZXJhbmQpOworICAgIFdBU01fUkVUVVJOKHJlc3VsdCk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RF
Q0woaTY0X3RydW5jX3NhdF9mMzJfcykKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOwor
ICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jU2F0RjMyUz4oKTsKKyAg
ICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRGbG9h
dCgpOworICAgIGludDY0X3QgcmVzdWx0OworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpKQor
ICAgICAgICByZXN1bHQgPSAwOworICAgIGVsc2UgaWYgKG9wZXJhbmQgPCBzdGF0aWNfY2FzdDxm
bG9hdD4oSU5UNjRfTUlOKSkKKyAgICAgICAgcmVzdWx0ID0gSU5UNjRfTUlOOworICAgIGVsc2Ug
aWYgKG9wZXJhbmQgPj0gLXN0YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4pKQorICAgICAgICBy
ZXN1bHQgPSBJTlQ2NF9NQVg7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2Fz
dDxpbnQ2NF90PihvcGVyYW5kKTsKKyAgICBXQVNNX1JFVFVSTihyZXN1bHQpOworfQorCitXQVNN
X1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY19zYXRfZjY0X3UpCit7CisgICAgVU5VU0VEX1BBUkFN
KGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1Nh
dEY2NFU+KCk7CisgICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFu
ZCkudW5ib3hlZERvdWJsZSgpOworICAgIHVpbnQ2NF90IHJlc3VsdDsKKyAgICBpZiAoc3RkOjpp
c25hbihvcGVyYW5kKSB8fCBvcGVyYW5kIDw9IC0xLjApCisgICAgICAgIHJlc3VsdCA9IDA7Cisg
ICAgZWxzZSBpZiAob3BlcmFuZCA+PSAtMi4wICogc3RhdGljX2Nhc3Q8ZG91YmxlPihJTlQ2NF9N
SU4pKQorICAgICAgICByZXN1bHQgPSBVSU5UNjRfTUFYOworICAgIGVsc2UKKyAgICAgICAgcmVz
dWx0ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG9wZXJhbmQpOworICAgIFdBU01fUkVUVVJOKHJl
c3VsdCk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3NhdF9mNjRfcykKK3sK
KyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+
YXM8V2FzbUk2NFRydW5jU2F0RjY0Uz4oKTsKKyAgICBkb3VibGUgb3BlcmFuZCA9IFJFQUQoaW5z
dHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAgaW50NjRfdCByZXN1bHQ7
CisgICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkpCisgICAgICAgIHJlc3VsdCA9IDA7CisgICAg
ZWxzZSBpZiAob3BlcmFuZCA8IHN0YXRpY19jYXN0PGRvdWJsZT4oSU5UNjRfTUlOKSkKKyAgICAg
ICAgcmVzdWx0ID0gSU5UNjRfTUlOOworICAgIGVsc2UgaWYgKG9wZXJhbmQgPj0gLXN0YXRpY19j
YXN0PGRvdWJsZT4oSU5UNjRfTUlOKSkKKyAgICAgICAgcmVzdWx0ID0gSU5UNjRfTUFYOworICAg
IGVsc2UKKyAgICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8aW50NjRfdD4ob3BlcmFuZCk7Cisg
ICAgV0FTTV9SRVRVUk4ocmVzdWx0KTsKK30KKyNlbmRpZgorCiBleHRlcm4gIkMiIFNsb3dQYXRo
UmV0dXJuVHlwZSBzbG93X3BhdGhfd2FzbV90aHJvd19leGNlcHRpb24oQ2FsbEZyYW1lKiBjYWxs
RnJhbWUsIGNvbnN0IFdhc21JbnN0cnVjdGlvbiogcGMsIFdhc206Okluc3RhbmNlKiBpbnN0YW5j
ZSwgV2FzbTo6RXhjZXB0aW9uVHlwZSBleGNlcHRpb25UeXBlKQogewogICAgIFVOVVNFRF9QQVJB
TShwYyk7CkBAIC03MjUsMTYgKzkzNSwyOCBAQCBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlw
ZSBzbG93X3BhdGhfd2FzbV90aHJvd19leGNlcHRpb24oQ2FsbEZyYW1lKiBjYWxsRnJhbQogCiBl
eHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBzbG93X3BhdGhfd2FzbV9wb3Bjb3VudChjb25z
dCBXYXNtSW5zdHJ1Y3Rpb24qIHBjLCB1aW50MzJfdCB4KQogewotICAgIHZvaWQqIHJlc3VsdCA9
IGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KF9fYnVpbHRpbl9wb3Bj
b3VudCh4KSkpOworICAgIHZvaWQqIHJlc3VsdCA9IGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGlj
X2Nhc3Q8c2l6ZV90PihfX2J1aWx0aW5fcG9wY291bnQoeCkpKTsKICAgICBXQVNNX1JFVFVSTl9U
V08ocGMsIHJlc3VsdCk7CiB9CiAKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3df
cGF0aF93YXNtX3BvcGNvdW50bGwoY29uc3QgV2FzbUluc3RydWN0aW9uKiBwYywgdWludDY0X3Qg
eCkKIHsKLSAgICB2b2lkKiByZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0
PHVpbnQ2NF90PihfX2J1aWx0aW5fcG9wY291bnRsbCh4KSkpOworICAgIHZvaWQqIHJlc3VsdCA9
IGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8c2l6ZV90PihfX2J1aWx0aW5fcG9wY291
bnRsbCh4KSkpOwogICAgIFdBU01fUkVUVVJOX1RXTyhwYywgcmVzdWx0KTsKIH0KIAorI2lmIFVT
RShKU1ZBTFVFMzJfNjQpCisvLyBOb3RlOiBBbGwgdGhlc2UgZGl2IGFuZCByZW0gb3BzIHBlcmZv
cm0gZXhjZXB0aW9uIGNoZWNrcyBpbiBhc20KK2V4dGVybiAiQyIgaW50MzJfdCBzbG93X3BhdGhf
d2FzbV9pMzJfZGl2X3MoaW50MzJfdCBhLCBpbnQzMl90IGIpIHsgcmV0dXJuIGEgLyBiOyB9Citl
eHRlcm4gIkMiIHVpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9kaXZfdSh1aW50MzJfdCBhLCB1
aW50MzJfdCBiKSB7IHJldHVybiBhIC8gYjsgfQorZXh0ZXJuICJDIiBpbnQzMl90IHNsb3dfcGF0
aF93YXNtX2kzMl9yZW1fcyhpbnQzMl90IGEsIGludDMyX3QgYikgeyByZXR1cm4gYSAlIGI7IH0K
K2V4dGVybiAiQyIgdWludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX3JlbV91KHVpbnQzMl90IGEs
IHVpbnQzMl90IGIpIHsgcmV0dXJuIGEgJSBiOyB9CitleHRlcm4gIkMiIGludDY0X3Qgc2xvd19w
YXRoX3dhc21faTY0X2Rpdl9zKGludDY0X3QgYSwgaW50NjRfdCBiKSB7IHJldHVybiBhIC8gYjsg
fQorZXh0ZXJuICJDIiB1aW50NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRfZGl2X3UodWludDY0X3Qg
YSwgdWludDY0X3QgYikgeyByZXR1cm4gYSAvIGI7IH0KK2V4dGVybiAiQyIgaW50NjRfdCBzbG93
X3BhdGhfd2FzbV9pNjRfcmVtX3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpIHsgcmV0dXJuIGEgJSBi
OyB9CitleHRlcm4gIkMiIHVpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9yZW1fdSh1aW50NjRf
dCBhLCB1aW50NjRfdCBiKSB7IHJldHVybiBhICUgYjsgfQorI2VuZGlmCisKIH0gfSAvLyBuYW1l
c3BhY2UgSlNDOjpMTEludAogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5oCmluZGV4IDQ2MDllMzZiMDM5MjRk
MTBlYTAyNzQ1NjEwZjBmMmZlNGU4MzFmMjIuLjg5ZjZlMzk0ZDg2YzI2Nzc5YzgxYWEyZTM4YzAz
MTAxYTQ4YWQ1NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21T
bG93UGF0aHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhz
LmgKQEAgLTk0LDYgKzk0LDQwIEBAIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3df
cGF0aF93YXNtX3Rocm93X2V4Y2VwdGlvbihDYWxsRnJhbWUqLCBjb25zdCBXCiBleHRlcm4gIkMi
IFNsb3dQYXRoUmV0dXJuVHlwZSBzbG93X3BhdGhfd2FzbV9wb3Bjb3VudChjb25zdCBXYXNtSW5z
dHJ1Y3Rpb24qIHBjLCB1aW50MzJfdCkgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7
CiBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBzbG93X3BhdGhfd2FzbV9wb3Bjb3VudGxs
KGNvbnN0IFdhc21JbnN0cnVjdGlvbiogcGMsIHVpbnQ2NF90KSBSRUZFUkVOQ0VEX0ZST01fQVNN
IFdURl9JTlRFUk5BTDsKIAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCitXQVNNX1NMT1dfUEFUSF9I
SURERU5fREVDTChmMzJfY2VpbCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmMzJfZmxv
b3IpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjMyX3RydW5jKTsKK1dBU01fU0xPV19Q
QVRIX0hJRERFTl9ERUNMKGYzMl9uZWFyZXN0KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNM
KGY2NF9jZWlsKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGY2NF9mbG9vcik7CitXQVNN
X1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfdHJ1bmMpOworV0FTTV9TTE9XX1BBVEhfSElEREVO
X0RFQ0woZjY0X25lYXJlc3QpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjMyX2NvbnZl
cnRfdV9pNjQpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjMyX2NvbnZlcnRfc19pNjQp
OworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjY0X2NvbnZlcnRfdV9pNjQpOworV0FTTV9T
TE9XX1BBVEhfSElEREVOX0RFQ0woZjY0X2NvbnZlcnRfc19pNjQpOworV0FTTV9TTE9XX1BBVEhf
SElEREVOX0RFQ0woaTY0X3RydW5jX3VfZjMyKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNM
KGk2NF90cnVuY19zX2YzMik7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNf
dV9mNjQpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3NfZjY0KTsKK1dB
U01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGk2NF90cnVuY19zYXRfZjMyX3UpOworV0FTTV9TTE9X
X1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3NhdF9mMzJfcyk7CitXQVNNX1NMT1dfUEFUSF9I
SURERU5fREVDTChpNjRfdHJ1bmNfc2F0X2Y2NF91KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9E
RUNMKGk2NF90cnVuY19zYXRfZjY0X3MpOworI2VuZGlmCisKKyNpZiBVU0UoSlNWQUxVRTMyXzY0
KQorZXh0ZXJuICJDIiBpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9kaXZfcyhpbnQzMl90IGEs
IGludDMyX3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMi
IHVpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9kaXZfdSh1aW50MzJfdCBhLCB1aW50MzJfdCBi
KSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgaW50MzJfdCBz
bG93X3BhdGhfd2FzbV9pMzJfcmVtX3MoaW50MzJfdCBhLCBpbnQzMl90IGIpIFJFRkVSRU5DRURf
RlJPTV9BU00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJDIiB1aW50MzJfdCBzbG93X3BhdGhfd2Fz
bV9pMzJfcmVtX3UodWludDMyX3QgYSwgdWludDMyX3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBX
VEZfSU5URVJOQUw7CitleHRlcm4gIkMiIGludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X2Rpdl9z
KGludDY0X3QgYSwgaW50NjRfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsK
K2V4dGVybiAiQyIgdWludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X2Rpdl91KHVpbnQ2NF90IGEs
IHVpbnQ2NF90IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJD
IiBpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9yZW1fcyhpbnQ2NF90IGEsIGludDY0X3QgYikg
UkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMiIHVpbnQ2NF90IHNs
b3dfcGF0aF93YXNtX2k2NF9yZW1fdSh1aW50NjRfdCBhLCB1aW50NjRfdCBiKSBSRUZFUkVOQ0VE
X0ZST01fQVNNIFdURl9JTlRFUk5BTDsKKyNlbmRpZgorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
TExJbnQKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmNwcAppbmRleCA1MjIzZjNhYjRlNDBm
YjQ5ODQ3ZTBlOTZhNmMzOTcxOGVmNDEwOWI1Li42OGM3ODg4OTA2ZGI4YjUxYzk1MDRiZTllY2U5
Y2JiZmNlZDJmZDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
VmFsdWVMb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZh
bHVlTG9jYXRpb24uY3BwCkBAIC0zNSw4ICszNSwxMSBAQCB2b2lkIFZhbHVlTG9jYXRpb246OmR1
bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBvdXQucHJpbnQobV9raW5kKTsKICAg
ICBzd2l0Y2ggKG1fa2luZCkgewotICAgIGNhc2UgUmVnaXN0ZXI6Ci0gICAgICAgIG91dC5wcmlu
dCgiKCIsIHJlZygpLCAiKSIpOworICAgIGNhc2UgR1BSUmVnaXN0ZXI6CisgICAgICAgIG91dC5w
cmludCgiKCIsIGpzcigpLCAiKSIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBGUFJSZWdp
c3RlcjoKKyAgICAgICAgb3V0LnByaW50KCIoIiwgZnByKCksICIpIik7CiAgICAgICAgIHJldHVy
bjsKICAgICBjYXNlIFN0YWNrOgogICAgICAgICBvdXQucHJpbnQoIigiLCBvZmZzZXRGcm9tRlAo
KSwgIikiKTsKQEAgLTU3LDggKzYwLDExIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M6Oldhc207CiB2
b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgVmFsdWVMb2NhdGlvbjo6S2luZCBr
aW5kKQogewogICAgIHN3aXRjaCAoa2luZCkgewotICAgIGNhc2UgVmFsdWVMb2NhdGlvbjo6UmVn
aXN0ZXI6Ci0gICAgICAgIG91dC5wcmludCgiUmVnaXN0ZXIiKTsKKyAgICBjYXNlIFZhbHVlTG9j
YXRpb246OkdQUlJlZ2lzdGVyOgorICAgICAgICBvdXQucHJpbnQoIkdQUlJlZ2lzdGVyIik7Cisg
ICAgICAgIHJldHVybjsKKyAgICBjYXNlIFZhbHVlTG9jYXRpb246OkZQUlJlZ2lzdGVyOgorICAg
ICAgICBvdXQucHJpbnQoIkZQUlJlZ2lzdGVyIik7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNl
IFZhbHVlTG9jYXRpb246OlN0YWNrOgogICAgICAgICBvdXQucHJpbnQoIlN0YWNrIik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uaAppbmRleCBhNjFm
YmE4YmQwMWNiNGFjMGNhNmI2Y2E3ZWU0NGQ3Yjc3MGQ0OGEzLi41Y2I1MTBkYmJkMGIxYjA0N2Y1
YzkyNjE3OWUxYTNmYjljYmFiMWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21WYWx1ZUxvY2F0aW9uLmgKQEAgLTQxLDI1ICs0MSwyNyBAQCBjbGFzcyBWYWx1ZUxvY2F0
aW9uIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBlbnVtIEtp
bmQgOiB1aW50OF90IHsKLSAgICAgICAgUmVnaXN0ZXIsCisgICAgICAgIEdQUlJlZ2lzdGVyLAor
ICAgICAgICBGUFJSZWdpc3RlciwKICAgICAgICAgU3RhY2ssCiAgICAgICAgIFN0YWNrQXJndW1l
bnQsCiAgICAgfTsKIAogICAgIFZhbHVlTG9jYXRpb24oKQotICAgICAgICA6IG1fa2luZChSZWdp
c3RlcikKKyAgICAgICAgOiBtX2tpbmQoR1BSUmVnaXN0ZXIpCiAgICAgewogICAgIH0KIAotICAg
IGV4cGxpY2l0IFZhbHVlTG9jYXRpb24oUmVnIHJlZykKLSAgICAgICAgOiBtX2tpbmQoUmVnaXN0
ZXIpCisgICAgZXhwbGljaXQgVmFsdWVMb2NhdGlvbihKU1ZhbHVlUmVncyByZWdzKQorICAgICAg
ICA6IG1fa2luZChHUFJSZWdpc3RlcikKICAgICB7Ci0gICAgICAgIHUucmVnID0gcmVnOworICAg
ICAgICB1LmpzciA9IHJlZ3M7CiAgICAgfQogCi0gICAgc3RhdGljIFZhbHVlTG9jYXRpb24gcmVn
KFJlZyByZWcpCisgICAgZXhwbGljaXQgVmFsdWVMb2NhdGlvbihGUFJSZWcgcmVnKQorICAgICAg
ICA6IG1fa2luZChGUFJSZWdpc3RlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBWYWx1ZUxvY2F0
aW9uKHJlZyk7CisgICAgICAgIHUuZnByID0gcmVnOwogICAgIH0KIAogICAgIHN0YXRpYyBWYWx1
ZUxvY2F0aW9uIHN0YWNrKGludHB0cl90IG9mZnNldEZyb21GUCkKQEAgLTgwLDIxICs4MiwyMiBA
QCBwdWJsaWM6CiAKICAgICBLaW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBtX2tpbmQ7IH0KIAot
ICAgIGJvb2wgaXNSZWcoKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gUmVnaXN0ZXI7IH0KKyAg
ICBib29sIGlzR1BSKCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IEdQUlJlZ2lzdGVyOyB9Cisg
ICAgYm9vbCBpc0ZQUigpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBGUFJSZWdpc3RlcjsgfQor
ICAgIGJvb2wgaXNTdGFjaygpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBTdGFjazsgfQorICAg
IGJvb2wgaXNTdGFja0FyZ3VtZW50KCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IFN0YWNrQXJn
dW1lbnQ7IH0KIAotICAgIFJlZyByZWcoKSBjb25zdAorICAgIEpTVmFsdWVSZWdzIGpzcigpIGNv
bnN0CiAgICAgewotICAgICAgICBBU1NFUlQoaXNSZWcoKSk7Ci0gICAgICAgIHJldHVybiB1LnJl
ZzsKKyAgICAgICAgQVNTRVJUKGlzR1BSKCkpOworICAgICAgICByZXR1cm4gdS5qc3I7CiAgICAg
fQogCi0gICAgYm9vbCBpc0dQUigpIGNvbnN0IHsgcmV0dXJuIGlzUmVnKCkgJiYgcmVnKCkuaXNH
UFIoKTsgfQotICAgIGJvb2wgaXNGUFIoKSBjb25zdCB7IHJldHVybiBpc1JlZygpICYmIHJlZygp
LmlzRlBSKCk7IH0KLQotICAgIEdQUlJlZyBncHIoKSBjb25zdCB7IHJldHVybiByZWcoKS5ncHIo
KTsgfQotICAgIEZQUlJlZyBmcHIoKSBjb25zdCB7IHJldHVybiByZWcoKS5mcHIoKTsgfQotCi0g
ICAgYm9vbCBpc1N0YWNrKCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IFN0YWNrOyB9CisgICAg
RlBSUmVnIGZwcigpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNGUFIoKSk7CisgICAg
ICAgIHJldHVybiB1LmZwcjsKKyAgICB9CiAKICAgICBpbnRwdHJfdCBvZmZzZXRGcm9tRlAoKSBj
b25zdAogICAgIHsKQEAgLTEwMiw4ICsxMDUsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB1
Lm9mZnNldEZyb21GUDsKICAgICB9CiAKLSAgICBib29sIGlzU3RhY2tBcmd1bWVudCgpIGNvbnN0
IHsgcmV0dXJuIGtpbmQoKSA9PSBTdGFja0FyZ3VtZW50OyB9Ci0KICAgICBpbnRwdHJfdCBvZmZz
ZXRGcm9tU1AoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKGlzU3RhY2tBcmd1bWVudCgp
KTsKQEAgLTExNCw3ICsxMTUsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdW5pb24gVSB7
Ci0gICAgICAgIFJlZyByZWc7CisgICAgICAgIEpTVmFsdWVSZWdzIGpzcjsKKyAgICAgICAgRlBS
UmVnIGZwcjsKICAgICAgICAgaW50cHRyX3Qgb2Zmc2V0RnJvbUZQOwogICAgICAgICBpbnRwdHJf
dCBvZmZzZXRGcm9tU1A7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL0pTVG9XYXNtLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTVG9XYXNt
LmNwcAppbmRleCA0ZjQ1NWNjNDdhMDQ4NmY1Yzk1ZTRhNmM0MDU1Y2QwYzg1MjM4MzVkLi4wZjYy
NGUwYjYxZGJiNzhmYjYzMjQxODFiMzYyNDc3ZDAyYTViMjJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAi
Q0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRl
ICJKU1dlYkFzc2VtYmx5SW5zdGFuY2UuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNs
b3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIldhc21DYWxsaW5nQ29udmVudGlvbi5oIgogI2luY2x1
ZGUgIldhc21Db250ZXh0SW5saW5lcy5oIgogI2luY2x1ZGUgIldhc21PcGVyYXRpb25zLmgiCkBA
IC00MSwxMyArNDIsMTMgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIHZvaWQg
bWFyc2hhbGxKU1Jlc3VsdChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgVHlwZURlZmluaXRpb24m
IHR5cGVEZWZpbml0aW9uLCBjb25zdCBDYWxsSW5mb3JtYXRpb24mIHdhc21GcmFtZUNvbnZlbnRp
b24sIGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXRMaXN0JiBzYXZlZFJlc3VsdFJlZ2lzdGVycykKIHsK
ICAgICBjb25zdCBhdXRvJiBzaWduYXR1cmUgPSAqdHlwZURlZmluaXRpb24uYXM8RnVuY3Rpb25T
aWduYXR1cmU+KCk7Ci0gICAgYXV0byBib3hXYXNtUmVzdWx0ID0gW10oQ0NhbGxIZWxwZXJzJiBq
aXQsIFR5cGUgdHlwZSwgUmVnIHNyYywgSlNWYWx1ZVJlZ3MgZHN0KSB7CisgICAgYXV0byBib3hX
YXNtUmVzdWx0ID0gW10oQ0NhbGxIZWxwZXJzJiBqaXQsIFR5cGUgdHlwZSwgVmFsdWVMb2NhdGlv
biBzcmMsIEpTVmFsdWVSZWdzIGRzdCkgewogICAgICAgICBzd2l0Y2ggKHR5cGUua2luZCkgewog
ICAgICAgICBjYXNlIFR5cGVLaW5kOjpWb2lkOgogICAgICAgICAgICAgaml0Lm1vdmVUcnVzdGVk
VmFsdWUoanNVbmRlZmluZWQoKSwgZHN0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpJMzI6Ci0gICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKHNy
Yy5ncHIoKSwgZHN0LnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMy
VG9Xb3JkKHNyYy5qc3IoKS5wYXlsb2FkR1BSKCksIGRzdC5wYXlsb2FkR1BSKCkpOwogICAgICAg
ICAgICAgaml0LmJveEludDMyKGRzdC5wYXlsb2FkR1BSKCksIGRzdCwgRG9Ob3RIYXZlVGFnUmVn
aXN0ZXJzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6
CkBAIC01NiwxMyArNTcsMTcgQEAgdm9pZCBtYXJzaGFsbEpTUmVzdWx0KENDYWxsSGVscGVycyYg
aml0LCBjb25zdCBUeXBlRGVmaW5pdGlvbiYgdHlwZURlZmluaXRpb24sIGMKICAgICAgICAgY2Fz
ZSBUeXBlS2luZDo6RjY0OiB7CiAgICAgICAgICAgICBqaXQubW92ZVRydXN0ZWRWYWx1ZShqc051
bWJlcihwdXJlTmFOKCkpLCBkc3QpOwogICAgICAgICAgICAgYXV0byBpc05hTiA9IGppdC5icmFu
Y2hJZk5hTihzcmMuZnByKCkpOworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgICAgICBqaXQu
Ym94RG91YmxlKHNyYy5mcHIoKSwgZHN0LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworI2Vsc2UK
KyAgICAgICAgICAgIGppdC5ib3hEb3VibGUoc3JjLmZwcigpLCBkc3QpOworI2VuZGlmCiAgICAg
ICAgICAgICBpc05hTi5saW5rKCZqaXQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgZGVmYXVsdDogewogICAgICAgICAgICAgaWYgKGlzRnVuY3JlZih0eXBlKSB8fCBp
c0V4dGVybnJlZih0eXBlKSkKLSAgICAgICAgICAgICAgICBqaXQubW92ZShzcmMuZ3ByKCksIGRz
dC5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgICAgIGppdC5tb3ZlVmFsdWVSZWdzKHNyYy5q
c3IoKSwgZHN0KTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBqaXQuYnJlYWtw
b2ludCgpOwogICAgICAgICB9CkBAIC03MCw0NCArNzUsODcgQEAgdm9pZCBtYXJzaGFsbEpTUmVz
dWx0KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBUeXBlRGVmaW5pdGlvbiYgdHlwZURlZmluaXRp
b24sIGMKICAgICB9OwogCiAgICAgaWYgKHNpZ25hdHVyZS5yZXR1cm5zVm9pZCgpKQotICAgICAg
ICBqaXQubW92ZVRydXN0ZWRWYWx1ZShqc1VuZGVmaW5lZCgpLCBKU1ZhbHVlUmVncyB7IEdQUklu
Zm86OnJldHVyblZhbHVlR1BSIH0pOworICAgICAgICBqaXQubW92ZVRydXN0ZWRWYWx1ZShqc1Vu
ZGVmaW5lZCgpLCBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUik7CiAgICAgZWxzZSBpZiAoc2lnbmF0
dXJlLnJldHVybkNvdW50KCkgPT0gMSkgewogICAgICAgICBpZiAoc2lnbmF0dXJlLnJldHVyblR5
cGUoMCkuaXNJNjQoKSkgewotICAgICAgICAgICAgR1BSUmVnIGlucHV0R1BSID0gd2FzbUZyYW1l
Q29udmVudGlvbi5yZXN1bHRzWzBdLnJlZygpLmdwcigpOworICAgICAgICAgICAgSlNWYWx1ZVJl
Z3MgaW5wdXRKU1IgPSB3YXNtRnJhbWVDb252ZW50aW9uLnJlc3VsdHNbMF0uanNyKCk7CiAgICAg
ICAgICAgICBHUFJSZWcgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IFBpbm5lZFJlZ2lzdGVySW5m
bzo6Z2V0KCkud2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXI7CiAgICAgICAgICAgICBpZiAoQ29u
dGV4dDo6dXNlRmFzdFRMUygpKSB7Ci0gICAgICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5j
ZUdQUiA9IGlucHV0R1BSID09IEdQUkluZm86OmFyZ3VtZW50R1BSMSA/IEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCA6IEdQUkluZm86OmFyZ3VtZW50R1BSMTsKLSAgICAgICAgICAgICAgICBzdGF0aWNf
YXNzZXJ0KHN0ZDo6aXNfc2FtZV92PFdhc206Okluc3RhbmNlKiwgdHlwZW5hbWUgRnVuY3Rpb25U
cmFpdHM8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXkpPjo6QXJndW1lbnRU
eXBlPDE+Pik7CisgICAgICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IGlucHV0
SlNSLnBheWxvYWRHUFIoKSA9PSBHUFJJbmZvOjphcmd1bWVudEdQUjEgPyBHUFJJbmZvOjphcmd1
bWVudEdQUjAgOiBHUFJJbmZvOjphcmd1bWVudEdQUjE7CisgICAgICAgICAgICAgICAgQVNTRVJU
KCFpbnB1dEpTUi51c2VzKHdhc21Db250ZXh0SW5zdGFuY2VHUFIpKTsKKyAgICAgICAgICAgICAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZV92PFdhc206Okluc3RhbmNlKiwgdHlwZW5hbWUg
RnVuY3Rpb25UcmFpdHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KT46OkFyZ3Vt
ZW50VHlwZTwxPj4pOwogICAgICAgICAgICAgICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5j
ZSh3YXNtQ29udGV4dEluc3RhbmNlR1BSKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGpp
dC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPih3YXNt
Q29udGV4dEluc3RhbmNlR1BSLCBpbnB1dEdQUik7CisgICAgICAgICAgICBqaXQuc2V0dXBBcmd1
bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KT4od2FzbUNvbnRleHRJbnN0
YW5jZUdQUiwgaW5wdXRKU1IpOwogICAgICAgICAgICAgaml0LmNhbGxPcGVyYXRpb24oRnVuY3Rp
b25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpKTsKICAgICAg
ICAgfSBlbHNlCi0gICAgICAgICAgICBib3hXYXNtUmVzdWx0KGppdCwgc2lnbmF0dXJlLnJldHVy
blR5cGUoMCksIHdhc21GcmFtZUNvbnZlbnRpb24ucmVzdWx0c1swXS5yZWcoKSwgSlNWYWx1ZVJl
Z3MgeyBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiB9KTsKKyAgICAgICAgICAgIGJveFdhc21SZXN1
bHQoaml0LCBzaWduYXR1cmUucmV0dXJuVHlwZSgwKSwgd2FzbUZyYW1lQ29udmVudGlvbi5yZXN1
bHRzWzBdLCBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUik7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
SW5kZXhpbmdUeXBlIGluZGV4aW5nVHlwZSA9IEFycmF5V2l0aFVuZGVjaWRlZDsKLSAgICAgICAg
SlNWYWx1ZVJlZ3Mgc2NyYXRjaCA9IEpTVmFsdWVSZWdzIHsgd2FzbUNhbGxpbmdDb252ZW50aW9u
KCkucHJvbG9ndWVTY3JhdGNoR1BSc1sxXSB9OworICAgICAgICBKU1ZhbHVlUmVncyBzY3JhdGNo
SlNSID0gSlNWYWx1ZVJlZ3MgeworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICB3
YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzJdLAorI2VuZGlmCisg
ICAgICAgICAgICB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFd
CisgICAgICAgIH07CisKKyAgICAgICAgQVNTRVJUKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpICE9
IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAg
QVNTRVJUKHNjcmF0Y2hKU1IudGFnR1BSKCkgIT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsKKyAg
ICAgICAgQVNTRVJUKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpICE9IHNjcmF0Y2hKU1IudGFnR1BS
KCkpOworI2VuZGlmCisKICAgICAgICAgLy8gV2UgY2FuIHVzZSB0aGUgZmlyc3QgZmxvYXRpbmcg
cG9pbnQgcmVnaXN0ZXIgYXMgYSBzY3JhdGNoIHNpbmNlIGl0IHdpbGwgYWx3YXlzIGJlIG1vdmVk
IG9udG8gdGhlIHN0YWNrIGJlZm9yZSBvdGhlciB2YWx1ZXMuCi0gICAgICAgIEZQUlJlZyBmcHJT
Y3JhdGNoID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkuZnByQXJnc1swXS5mcHIoKTsKKyAgICAg
ICAgRlBSUmVnIGZwclNjcmF0Y2ggPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5mcHJBcmdzWzBd
OwogICAgICAgICBib29sIGhhc0k2NCA9IGZhbHNlOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgc2lnbmF0dXJlLnJldHVybkNvdW50KCk7ICsraSkgewogICAgICAgICAgICAgVmFs
dWVMb2NhdGlvbiBsb2MgPSB3YXNtRnJhbWVDb252ZW50aW9uLnJlc3VsdHNbaV07CiAgICAgICAg
ICAgICBUeXBlIHR5cGUgPSBzaWduYXR1cmUucmV0dXJuVHlwZShpKTsKIAogICAgICAgICAgICAg
aGFzSTY0IHw9IHR5cGUuaXNJNjQoKTsKLSAgICAgICAgICAgIGlmIChsb2MuaXNSZWcoKSkgewot
ICAgICAgICAgICAgICAgIGlmICghdHlwZS5pc0k2NCgpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGJveFdhc21SZXN1bHQoaml0LCBzaWduYXR1cmUucmV0dXJuVHlwZShpKSwgbG9jLnJlZygpLCBz
Y3JhdGNoKTsKLSAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoc2NyYXRjaCwgQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNh
dmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLnJlZygpKS0+b2Zmc2V0KCkgKyB3YXNtRnJhbWVD
b252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcykpOwotICAgICAgICAg
ICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1ZhbHVl
UmVncyB7IGxvYy5yZWcoKS5ncHIoKSB9LCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxw
ZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2Mu
cmVnKCkpLT5vZmZzZXQoKSArIHdhc21GcmFtZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1lbnRT
dGFja1NpemVJbkJ5dGVzKSk7CisgICAgICAgICAgICBpZiAobG9jLmlzR1BSKCkgfHwgbG9jLmlz
RlBSKCkpIHsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgIEFTU0VSVCgh
bG9jLmlzR1BSKCkgfHwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9h
ZEdQUigpKS0+b2Zmc2V0KCkgKyA0ID09IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpz
cigpLnRhZ0dQUigpKS0+b2Zmc2V0KCkpOworI2VuZGlmCisgICAgICAgICAgICAgICAgYXV0byBh
ZGRyZXNzID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVy
UmVnaXN0ZXIsIHdhc21GcmFtZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJ
bkJ5dGVzKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUua2luZCkgeworICAgICAgICAg
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKKyAgICAgICAgICAgICAgICBjYXNlIFR5cGVLaW5k
OjpGNjQ6CisgICAgICAgICAgICAgICAgICAgIGJveFdhc21SZXN1bHQoaml0LCB0eXBlLCBsb2Ms
IHNjcmF0Y2hKU1IpOworICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNo
SlNSLCBhZGRyZXNzLndpdGhPZmZzZXQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuZnBy
KCkpLT5vZmZzZXQoKSkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6CisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZh
bHVlKGxvYy5qc3IoKSwgYWRkcmVzcy53aXRoT2Zmc2V0KHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZp
bmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpKSk7CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAg
IGJveFdhc21SZXN1bHQoaml0LCB0eXBlLCBsb2MsIHNjcmF0Y2hKU1IpOworICAgICAgICAgICAg
ICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNoSlNSLCBhZGRyZXNzLndpdGhPZmZzZXQoc2F2
ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkp
KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBpZiAoIXR5cGUuaXNJNjQoKSkgewogICAg
ICAgICAgICAgICAgICAgICBhdXRvIGxvY2F0aW9uID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEND
YWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIGxvYy5vZmZzZXRGcm9tU1AoKSk7Ci0g
ICAgICAgICAgICAgICAgICAgIFJlZyB0bXAgPSAodHlwZS5pc0YzMigpIHx8IHR5cGUuaXNGNjQo
KSkgPyBSZWcoZnByU2NyYXRjaCkgOiBSZWcoc2NyYXRjaC5ncHIoKSk7Ci0gICAgICAgICAgICAg
ICAgICAgIGppdC5sb2FkNjRUb1JlZyhsb2NhdGlvbiwgdG1wKTsKLSAgICAgICAgICAgICAgICAg
ICAgYm94V2FzbVJlc3VsdChqaXQsIHNpZ25hdHVyZS5yZXR1cm5UeXBlKGkpLCB0bXAsIHNjcmF0
Y2gpOwotICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNoLCBsb2NhdGlv
bik7CisgICAgICAgICAgICAgICAgICAgIFZhbHVlTG9jYXRpb24gdG1wOworICAgICAgICAgICAg
ICAgICAgICBzd2l0Y2ggKHR5cGUua2luZCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIFR5
cGVLaW5kOjpGMzI6CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBWYWx1ZUxvY2F0aW9u
IHsgZnByU2NyYXRjaCB9OworICAgICAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRGbG9hdChs
b2NhdGlvbiwgZnByU2NyYXRjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OgorICAgICAgICAgICAgICAgICAg
ICAgICAgdG1wID0gVmFsdWVMb2NhdGlvbiB7IGZwclNjcmF0Y2ggfTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGppdC5sb2FkRG91YmxlKGxvY2F0aW9uLCBmcHJTY3JhdGNoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIFR5cGVLaW5k
OjpJMzI6CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBWYWx1ZUxvY2F0aW9uIHsgc2Ny
YXRjaEpTUiB9OworICAgICAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQzMihsb2NhdGlvbiwg
c2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICB0
bXAgPSBWYWx1ZUxvY2F0aW9uIHsgc2NyYXRjaEpTUiB9OworICAgICAgICAgICAgICAgICAgICAg
ICAgaml0LmxvYWRWYWx1ZShsb2NhdGlvbiwgc2NyYXRjaEpTUik7CisgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICBib3hXYXNtUmVzdWx0KGppdCwgdHlwZSwgdG1wLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAg
ICAgICAgICAgaml0LnN0b3JlVmFsdWUoc2NyYXRjaEpTUiwgbG9jYXRpb24pOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0KIApAQCAtMTM2LDM3ICsxODQsNDcgQEAgdm9pZCBtYXJz
aGFsbEpTUmVzdWx0KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBUeXBlRGVmaW5pdGlvbiYgdHlw
ZURlZmluaXRpb24sIGMKIAogICAgICAgICAgICAgICAgIEdQUlJlZyB3YXNtQ29udGV4dEluc3Rh
bmNlR1BSID0gUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKS53YXNtQ29udGV4dEluc3RhbmNlUG9p
bnRlcjsKICAgICAgICAgICAgICAgICBpZiAoQ29udGV4dDo6dXNlRmFzdFRMUygpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBHUFJJbmZvOjphcmd1bWVu
dEdQUjE7Ci0gICAgICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lX3Y8
V2FzbTo6SW5zdGFuY2UqLCB0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxkZWNsdHlwZShvcGVyYXRp
b25BbGxvY2F0ZVJlc3VsdHNBcnJheSk+OjpBcmd1bWVudFR5cGU8MT4+KTsKKyAgICAgICAgICAg
ICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IHByZWZlcnJlZEFyZ3VtZW50R1BSPGRl
Y2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCksIDE+KCk7CisgICAgICAgICAgICAgICAg
ICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lX3Y8V2FzbTo6SW5zdGFuY2UqLCB0eXBlbmFt
ZSBGdW5jdGlvblRyYWl0czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPjo6QXJn
dW1lbnRUeXBlPDE+Pik7CiAgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkV2FzbUNvbnRleHRJ
bnN0YW5jZSh3YXNtQ29udGV4dEluc3RhbmNlR1BSKTsKICAgICAgICAgICAgICAgICB9CiAKLSAg
ICAgICAgICAgICAgICBpZiAobG9jLmlzUmVnKCkpCi0gICAgICAgICAgICAgICAgICAgIGppdC5s
b2FkNjQoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVn
aXN0ZXIsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLnJlZygpKS0+b2Zmc2V0KCkgKyB3
YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcyksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGF1dG8gbG9jYXRpb24gPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxw
ZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgbG9jLm9mZnNldEZyb21TUCgpKTsKLSAgICAgICAg
ICAgICAgICAgICAgaml0LmxvYWQ2NFRvUmVnKGxvY2F0aW9uLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVu
dHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KT4od2FzbUNvbnRleHRJbnN0YW5j
ZUdQUiwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICAgICAgICAgICAgICBjb25zdGV4cHIg
SlNWYWx1ZVJlZ3MgdmFsdWVKU1IgPSBwcmVmZXJyZWRBcmd1bWVudEpTUjxkZWNsdHlwZShvcGVy
YXRpb25Db252ZXJ0VG9CaWdJbnQpLCAyPigpOworCisgICAgICAgICAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzIGFkZHJlc3MgeyBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
IH07CisgICAgICAgICAgICAgICAgaWYgKGxvYy5pc0dQUigpIHx8IGxvYy5pc0ZQUigpKSB7Cisj
aWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHNhdmVkUmVz
dWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpICsgNCA9
PSBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS50YWdHUFIoKSktPm9mZnNldCgp
KTsKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gYWRkcmVzcy53aXRoT2Zm
c2V0KHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9m
ZnNldCgpICsgd2FzbUZyYW1lQ29udmVudGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUlu
Qnl0ZXMpOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBhZGRy
ZXNzID0gYWRkcmVzcy53aXRoT2Zmc2V0KGxvYy5vZmZzZXRGcm9tU1AoKSk7CisKKyAgICAgICAg
ICAgICAgICBqaXQubG9hZFZhbHVlKGFkZHJlc3MsIHZhbHVlSlNSKTsKKyAgICAgICAgICAgICAg
ICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KT4o
d2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgdmFsdWVKU1IpOwogICAgICAgICAgICAgICAgIGppdC5j
YWxsT3BlcmF0aW9uKEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQ29udmVy
dFRvQmlnSW50KSk7Ci0gICAgICAgICAgICAgICAgaWYgKGxvYy5pc1JlZygpKQotICAgICAgICAg
ICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1ZhbHVlUmVncyB7IEdQUkluZm86OnJldHVyblZh
bHVlR1BSIH0sIENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRl
clJlZ2lzdGVyLCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5yZWcoKSktPm9mZnNldCgp
ICsgd2FzbUZyYW1lQ29udmVudGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMp
KTsKLSAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBsb2Nh
dGlvbiA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJl
Z2lzdGVyLCBsb2Mub2Zmc2V0RnJvbVNQKCkpOwotICAgICAgICAgICAgICAgICAgICBqaXQuc3Rv
cmVWYWx1ZShKU1ZhbHVlUmVncyB7IEdQUkluZm86OnJldHVyblZhbHVlR1BSIH0sIGxvY2F0aW9u
KTsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoSlNS
SW5mbzo6cmV0dXJuVmFsdWVKU1IsIGFkZHJlc3MpOwogICAgICAgICAgICAgfQogICAgICAgICB9
CiAKICAgICAgICAgR1BSUmVnIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBQaW5uZWRSZWdpc3Rl
ckluZm86OmdldCgpLndhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyOwogICAgICAgICBpZiAoQ29u
dGV4dDo6dXNlRmFzdFRMUygpKSB7Ci0gICAgICAgICAgICB3YXNtQ29udGV4dEluc3RhbmNlR1BS
ID0gR1BSSW5mbzo6YXJndW1lbnRHUFIxOworICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5j
ZUdQUiA9IHByZWZlcnJlZEFyZ3VtZW50R1BSPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVz
dWx0c0FycmF5KSwgMT4oKTsKICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1l
X3Y8V2FzbTo6SW5zdGFuY2UqLCB0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxkZWNsdHlwZShvcGVy
YXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSk+OjpBcmd1bWVudFR5cGU8MT4+KTsKICAgICAgICAg
ICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZSh3YXNtQ29udGV4dEluc3RhbmNlR1BSKTsK
ICAgICAgICAgfQogCi0gICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRp
b25BbGxvY2F0ZVJlc3VsdHNBcnJheSk+KHdhc21Db250ZXh0SW5zdGFuY2VHUFIsIENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbVB0cigmdHlwZURlZmluaXRpb24pLCBpbmRleGluZ1R5cGUsIENDYWxs
SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBjb25zdGV4cHIgR1BSUmVn
IHNhdmVkUmVzdWx0c0dQUiA9IHByZWZlcnJlZEFyZ3VtZW50R1BSPGRlY2x0eXBlKG9wZXJhdGlv
bkFsbG9jYXRlUmVzdWx0c0FycmF5KSwgND4oKTsKKyAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxw
ZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRzR1BSKTsKKyAgICAgICAgaWYg
Y29uc3RleHByIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGpp
dC5zdWJQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwpLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAg
QVNTRVJUKHdhc21Db250ZXh0SW5zdGFuY2VHUFIgIT0gc2F2ZWRSZXN1bHRzR1BSKTsKKyAgICAg
ICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0Fy
cmF5KT4od2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRy
KCZ0eXBlRGVmaW5pdGlvbiksIGluZGV4aW5nVHlwZSwgc2F2ZWRSZXN1bHRzR1BSKTsKICAgICAg
ICAgaml0LmNhbGxPcGVyYXRpb24oRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRp
b25BbGxvY2F0ZVJlc3VsdHNBcnJheSkpOworICAgICAgICBpZiBjb25zdGV4cHIgKG1heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICAgICAgaml0LmFkZFB0cihDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIENDYWxsSGVs
cGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworCisgICAgICAgIGppdC5ib3hDZWxsKEdQUklu
Zm86OnJldHVyblZhbHVlR1BSLCBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUik7CiAgICAgfQogfQog
CkBAIC0xNzgsNyArMjM2LDExIEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBj
cmVhdGVKU1RvV2FzbVdyYXBwZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAgICAgLy8gRklY
TUUgU3RvcCB1c2luZyAwIGFzIGNvZGVCbG9ja3MuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjUzMjEKICAgICBqaXQuZW1pdFplcm9Ub0NhbGxGcmFtZUhlYWRlcihD
YWxsRnJhbWVTbG90Ojpjb2RlQmxvY2spOwogICAgIE1hY3JvQXNzZW1ibGVyOjpEYXRhTGFiZWxQ
dHIgY2FsbGVlTW92ZUxvY2F0aW9uID0gaml0Lm1vdmVXaXRoUGF0Y2goTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW1QdHIobnVsbHB0ciksIEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQ
Uik7Ci0gICAgaml0LmVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihHUFJJbmZvOjpub25QcmVzZXJ2
ZWROb25SZXR1cm5HUFIsIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7CisgICAgQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzIGNhbGxlZVNsb3QgeyBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZy
YW1lU2xvdDo6Y2FsbGVlICogc2l6ZW9mKFJlZ2lzdGVyKSB9OworICAgIGppdC5zdG9yZVB0cihH
UFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIsIGNhbGxlZVNsb3Qud2l0aE9mZnNldChQ
YXlsb2FkT2Zmc2V0KSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBqaXQuc3RvcmUzMihD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpXYXNtVGFnKSwgY2FsbGVlU2xvdC53
aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworI2VuZGlmCiAgICAgVmVjdG9yPENvZGVMb2NhdGlvbkRh
dGFMYWJlbFB0cjxXYXNtRW50cnlQdHJUYWc+PiogbGlua2VkQ2FsbGVlTW92ZSA9ICZyZXN1bHQt
PmNhbGxlZU1vdmVMb2NhdGlvbnM7CiAgICAgaml0LmFkZExpbmtUYXNrKFs9XSAoTGlua0J1ZmZl
ciYgbGlua0J1ZmZlcikgewogICAgICAgICBsaW5rZWRDYWxsZWVNb3ZlLT5hcHBlbmQobGlua0J1
ZmZlci5sb2NhdGlvbk9mPFdhc21FbnRyeVB0clRhZz4oY2FsbGVlTW92ZUxvY2F0aW9uKSk7CkBA
IC0xOTcsMTEgKzI1OSwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4gY3Jl
YXRlSlNUb1dhc21XcmFwcGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogICAgIFJlZ2lzdGVy
QXRPZmZzZXRMaXN0IHJlZ2lzdGVyc1RvU3BpbGwodG9TYXZlLCBSZWdpc3RlckF0T2Zmc2V0TGlz
dDo6T2Zmc2V0QmFzZVR5cGU6OkZyYW1lUG9pbnRlckJhc2VkKTsKICAgICByZXN1bHQtPmVudHJ5
cG9pbnQuY2FsbGVlU2F2ZVJlZ2lzdGVycyA9IHJlZ2lzdGVyc1RvU3BpbGw7CiAKLSAgICBzaXpl
X3QgdG90YWxGcmFtZVNpemUgPSByZWdpc3RlcnNUb1NwaWxsLnNpemUoKSAqIHNpemVvZihDUFVS
ZWdpc3Rlcik7CisgICAgc2l6ZV90IHRvdGFsRnJhbWVTaXplID0gcmVnaXN0ZXJzVG9TcGlsbC5z
aXplT2ZBcmVhSW5CeXRlcygpOwogICAgIENhbGxJbmZvcm1hdGlvbiB3YXNtRnJhbWVDb252ZW50
aW9uID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkuY2FsbEluZm9ybWF0aW9uRm9yKHR5cGVEZWZp
bml0aW9uKTsKICAgICBSZWdpc3RlckF0T2Zmc2V0TGlzdCBzYXZlZFJlc3VsdFJlZ2lzdGVycyA9
IHdhc21GcmFtZUNvbnZlbnRpb24uY29tcHV0ZVJlc3VsdHNPZmZzZXRMaXN0KCk7CiAgICAgdG90
YWxGcmFtZVNpemUgKz0gd2FzbUZyYW1lQ29udmVudGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0YWNr
U2l6ZUluQnl0ZXM7Ci0gICAgdG90YWxGcmFtZVNpemUgKz0gc2F2ZWRSZXN1bHRSZWdpc3RlcnMu
c2l6ZSgpICogc2l6ZW9mKENQVVJlZ2lzdGVyKTsKKyAgICB0b3RhbEZyYW1lU2l6ZSArPSBzYXZl
ZFJlc3VsdFJlZ2lzdGVycy5zaXplT2ZBcmVhSW5CeXRlcygpOwogCiAgICAgdG90YWxGcmFtZVNp
emUgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRCeXRlcygpLCB0b3Rh
bEZyYW1lU2l6ZSk7CiAgICAgaml0LnN1YlB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
KHRvdGFsRnJhbWVTaXplKSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsK
QEAgLTIyMyw5ICsyODUsMTIgQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+IGNy
ZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QKIAogICAgICAgICBD
Q2FsbEhlbHBlcnM6OkFkZHJlc3MgY2FsbGVlRnJhbWUgPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Mo
TWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCAwKTsKIAotICAgICAgICAvLyBX
ZSdyZSBnb2luZyB0byBzZXQgdGhlIHBpbm5lZCByZWdpc3RlcnMgYWZ0ZXIgdGhpcy4gU28KLSAg
ICAgICAgLy8gd2UgY2FuIHVzZSB0aGlzIGFzIGEgc2NyYXRjaCBmb3Igbm93IHNpbmNlIHdlIHNh
dmVkIGl0IGFib3ZlLgotICAgICAgICBHUFJSZWcgc2NyYXRjaFJlZyA9IHBpbm5lZFJlZ3MuYmFz
ZU1lbW9yeVBvaW50ZXI7CisgICAgICAgIEpTVmFsdWVSZWdzIHNjcmF0Y2hKU1IgeworI2lmIFVT
RShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9s
b2d1ZVNjcmF0Y2hHUFJzWzJdLAorI2VuZGlmCisgICAgICAgICAgICB3YXNtQ2FsbGluZ0NvbnZl
bnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdCisgICAgICAgIH07CiAKICAgICAgICAgaWYg
KCFDb250ZXh0Ojp1c2VGYXN0VExTKCkpIHsKICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxs
SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNDYWxsaW5nQ29u
dmVudGlvbjo6aW5zdGFuY2VTdGFja09mZnNldCksIHdhc21Db250ZXh0SW5zdGFuY2VHUFIpOwpA
QCAtMjM5LDIyICszMDQsMzQgQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+IGNy
ZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QKICAgICAgICAgICAg
IFR5cGUgdHlwZSA9IHNpZ25hdHVyZS5hcmd1bWVudFR5cGUoaSk7CiAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MganNQYXJhbShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwganNG
cmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLm9mZnNldEZyb21GUCgpKTsKICAgICAgICAgICAgIGlm
ICh3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5pc1N0YWNrQXJndW1lbnQoKSkgeworICAg
ICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBhZGRyIHsgY2FsbGVlRnJhbWUud2l0
aE9mZnNldCh3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkgfTsK
ICAgICAgICAgICAgICAgICBpZiAodHlwZS5pc0kzMigpIHx8IHR5cGUuaXNGMzIoKSkgewotICAg
ICAgICAgICAgICAgICAgICBqaXQubG9hZDMyKGpzUGFyYW0sIHNjcmF0Y2hSZWcpOwotICAgICAg
ICAgICAgICAgICAgICBqaXQuc3RvcmUzMihzY3JhdGNoUmVnLCBjYWxsZWVGcmFtZS53aXRoT2Zm
c2V0KHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSk7CisgICAg
ICAgICAgICAgICAgICAgIGppdC5sb2FkMzIoanNQYXJhbSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BS
KCkpOworICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihzY3JhdGNoSlNSLnBheWxvYWRH
UFIoKSwgYWRkci53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyNpZiBVU0UoSlNWQUxVRTMy
XzY0KQorICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW0zMigwKSwgYWRkci53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworI2VuZGlmCiAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFt
LCBzY3JhdGNoUmVnKTsKLSAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlNjQoc2NyYXRjaFJl
ZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5v
ZmZzZXRGcm9tU1AoKSkpOworICAgICAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpzUGFy
YW0sIHNjcmF0Y2hKU1IpOworICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3Jh
dGNoSlNSLCBhZGRyKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgIGlmICh0eXBlLmlzSTMyKCkgfHwgdHlwZS5pc0YzMigpKQotICAgICAg
ICAgICAgICAgICAgICBqaXQubG9hZDMyVG9SZWcoanNQYXJhbSwgd2FzbUZyYW1lQ29udmVudGlv
bi5wYXJhbXNbaV0ucmVnKCkpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICAgICAgaml0LmxvYWQ2NFRvUmVnKGpzUGFyYW0sIHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1z
W2ldLnJlZygpKTsKKyAgICAgICAgICAgICAgICBpZiAodHlwZS5pc0YzMigpKQorICAgICAgICAg
ICAgICAgICAgICBqaXQubG9hZEZsb2F0KGpzUGFyYW0sIHdhc21GcmFtZUNvbnZlbnRpb24ucGFy
YW1zW2ldLmZwcigpKTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlLmlzRjY0KCkpCisg
ICAgICAgICAgICAgICAgICAgIGppdC5sb2FkRG91YmxlKGpzUGFyYW0sIHdhc21GcmFtZUNvbnZl
bnRpb24ucGFyYW1zW2ldLmZwcigpKTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlLmlz
STMyKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQzMihqc1BhcmFtLCB3YXNtRnJh
bWVDb252ZW50aW9uLnBhcmFtc1tpXS5qc3IoKS5wYXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZB
TFVFMzJfNjQpCisgICAgICAgICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbTMyKDApLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5qc3IoKS50YWdHUFIo
KSk7CisjZW5kaWYKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
aml0LmxvYWRWYWx1ZShqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5qc3Io
KSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKKyNpZiAhQ1BVKEFSTSkgLy8g
QVJNIGhhcyBubyBwaW5uZWQgcmVnaXN0ZXJzIGZvciBXYXNtIE1lbW9yeSwgc28gbm8gbmVlZCB0
byBzZXQgdGhlbSB1cAogICAgIGlmICghIWluZm8ubWVtb3J5KSB7CiAgICAgICAgIEdQUlJlZyBi
YXNlTWVtb3J5ID0gcGlubmVkUmVncy5iYXNlTWVtb3J5UG9pbnRlcjsKICAgICAgICAgR1BSUmVn
IHNpemUgPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzBdOwpA
QCAtMjY1LDE3ICszNDIsMTggQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+IGNy
ZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QKIAogICAgICAgICBH
UFJSZWcgY3VycmVudEluc3RhbmNlR1BSID0gQ29udGV4dDo6dXNlRmFzdFRMUygpID8gYmFzZU1l
bW9yeSA6IHdhc21Db250ZXh0SW5zdGFuY2VHUFI7CiAgICAgICAgIGlmIChpc0FSTTY0RSgpKSB7
Ci0gICAgICAgICAgICBpZiAobW9kZSAhPSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmcpCisg
ICAgICAgICAgICBpZiAobW9kZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykK
ICAgICAgICAgICAgICAgICBzaXplID0gcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdp
c3RlcjsKICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhjdXJy
ZW50SW5zdGFuY2VHUFIsIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZEJvdW5kc0NoZWNr
aW5nU2l6ZSgpKSwgc2l6ZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAobW9k
ZSAhPSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmcpCisgICAgICAgICAgICBpZiAobW9kZSA9
PSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykKICAgICAgICAgICAgICAgICBqaXQu
bG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoY3VycmVudEluc3RhbmNlR1BSLCBXYXNtOjpJ
bnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHNDaGVja2luZ1NpemUoKSksIHBpbm5lZFJlZ3Mu
Ym91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIpOwogICAgICAgICB9CiAKICAgICAgICAgaml0Lmxv
YWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGN1cnJlbnRJbnN0YW5jZUdQUiwgV2FzbTo6SW5z
dGFuY2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNlTWVtb3J5KTsKICAgICAgICAgaml0
LmNhZ2VDb25kaXRpb25hbGx5QW5kVW50YWcoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgYmFzZU1lbW9y
eSwgc2l6ZSwgc2NyYXRjaCk7CiAgICAgfQorI2VuZGlmCiAKICAgICBDQ2FsbEhlbHBlcnM6OkNh
bGwgY2FsbCA9IGppdC50aHJlYWRTYWZlUGF0Y2hhYmxlTmVhckNhbGwoKTsKICAgICB1bnNpZ25l
ZCBmdW5jdGlvbkluZGV4U3BhY2UgPSBmdW5jdGlvbkluZGV4ICsgaW5mby5pbXBvcnRGdW5jdGlv
bkNvdW50KCk7CkBAIC0yODgsNyArMzY2LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVu
Y3Rpb24+IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QKIAog
ICAgIGZvciAoY29uc3QgUmVnaXN0ZXJBdE9mZnNldCYgcmVnQXRPZmZzZXQgOiByZWdpc3RlcnNU
b1NwaWxsKSB7CiAgICAgICAgIEdQUlJlZyByZWcgPSByZWdBdE9mZnNldC5yZWcoKS5ncHIoKTsK
LSAgICAgICAgQVNTRVJUKHJlZyAhPSBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAg
IEFTU0VSVCghSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IudXNlcyhyZWcpKTsKICAgICAgICAgcHRy
ZGlmZl90IG9mZnNldCA9IHJlZ0F0T2Zmc2V0Lm9mZnNldCgpOwogICAgICAgICBqaXQubG9hZFB0
cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIG9mZnNl
dCksIHJlZyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2FzbVRvSlMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2FzbVRvSlMu
Y3BwCmluZGV4IDNmMDgwOTIyZTI0NTk5ZmM0MDYyYjRjZGI0YjJkMmZmNDM4NTBiYTEuLjYzMjY3
MWMyNTU1N2NiZTAxYmQ1MDU0YTBlNjk3NjU5OTk2MDliZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJD
Q2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5SW5zdGFuY2UuaCIKICNpbmNs
dWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwuaCIKICNpbmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKICNpbmNsdWRlICJXYXNtQ2FsbGlu
Z0NvbnZlbnRpb24uaCIKICNpbmNsdWRlICJXYXNtQ29udGV4dElubGluZXMuaCIKQEAgLTY5LDcg
KzcwLDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4s
IEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAvLyBJZiB3ZSBldmVyIGNoYW5n
ZSB0aGlzLCB3ZSB3aWxsIGFsc28gbmVlZCB0byBjaGFuZ2UgV2FzbUIzSVJHZW5lcmF0b3IuCiAK
ICAgICAvLyBCZWxvdywgd2UgYXNzdW1lIHRoYXQgdGhlIEpTIGNhbGxpbmcgY29udmVudGlvbiBp
cyBhbHdheXMgb24gdGhlIHN0YWNrLgotICAgIEFTU0VSVCghanNDQy5ncHJBcmdzLnNpemUoKSk7
CisgICAgQVNTRVJUKCFqc0NDLmpzckFyZ3Muc2l6ZSgpKTsKICAgICBBU1NFUlQoIWpzQ0MuZnBy
QXJncy5zaXplKCkpOwogCiAgICAgaml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CkBAIC04Niwx
NCArODcsMjIgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRh
Zz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAvLyBmb3IgdXMgaGVyZS4K
IAogICAgIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mUGFyYW1ldGVycyA9IGFyZ0NvdW50ICsgMTsg
Ly8gVGhlcmUgaXMgYSAidGhpcyIgYXJndW1lbnQuCi0gICAgY29uc3QgdW5zaWduZWQgbnVtYmVy
T2ZSZWdzRm9yQ2FsbCA9IENhbGxGcmFtZTo6aGVhZGVyU2l6ZUluUmVnaXN0ZXJzICsgbnVtYmVy
T2ZQYXJhbWV0ZXJzOworICAgIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mUmVnc0ZvckNhbGwgPSBD
YWxsRnJhbWU6OmhlYWRlclNpemVJblJlZ2lzdGVycyArIHJvdW5kQXJndW1lbnRDb3VudFRvQWxp
Z25GcmFtZShudW1iZXJPZlBhcmFtZXRlcnMpOworICAgIEFTU0VSVCghKG51bWJlck9mUmVnc0Zv
ckNhbGwgJSBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpKSk7CiAgICAgY29uc3QgdW5zaWduZWQg
bnVtYmVyT2ZCeXRlc0ZvckNhbGwgPSBudW1iZXJPZlJlZ3NGb3JDYWxsICogc2l6ZW9mKFJlZ2lz
dGVyKSAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKTsKLSAgICBjb25zdCB1bnNpZ25lZCBzdGFj
a09mZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudEJ5dGVzKCks
IHN0ZDo6bWF4PHVuc2lnbmVkPihudW1iZXJPZkJ5dGVzRm9yQ2FsbCwgc2F2ZWRSZXN1bHRSZWdp
c3RlcnMuc2l6ZSgpICogc2l6ZW9mKENQVVJlZ2lzdGVyKSkpOworICAgIGNvbnN0IHVuc2lnbmVk
IG51bWJlck9mQnl0ZXNGb3JTYXZlZFJlc3VsdHMgPSBzYXZlZFJlc3VsdFJlZ2lzdGVycy5zaXpl
T2ZBcmVhSW5CeXRlcygpOworICAgIGNvbnN0IHVuc2lnbmVkIHN0YWNrT2Zmc2V0ID0gV1RGOjpy
b3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50Qnl0ZXMoKSwgc3RkOjptYXgobnVtYmVy
T2ZCeXRlc0ZvckNhbGwsIG51bWJlck9mQnl0ZXNGb3JTYXZlZFJlc3VsdHMpKTsKICAgICBqaXQu
c3ViUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc3RhY2tPZmZzZXQpLCBNYWNyb0Fz
c2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgIEpJVDo6QWRkcmVzcyBjYWxsZWVG
cmFtZSA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVy
UmVnaXN0ZXIsIC1zdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihDYWxsZXJGcmFtZUFuZFBD
KSkpOwogCiAgICAgLy8gRklYTUUgbWFrZSB0aGVzZSBsb29wcyB3aGljaCBzd2l0Y2ggb24gc2ln
bmF0dXJlIGlmIHRoZXJlIGFyZSBtYW55IGFyZ3VtZW50cyBvbiB0aGUgc3RhY2suIEl0J2xsIG90
aGVyd2lzZSBiZSBodWdlIGZvciBodWdlIHR5cGUgZGVmaW5pdGlvbnMuIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU1NDcKIAorI2lmIFVTRShKU1ZBTFVFNjQpCisg
ICAgY29uc3RleHByIEpTVmFsdWVSZWdzIGpzQXJnMTAgeyBHUFJJbmZvOjphcmd1bWVudEdQUjAg
fTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgY29uc3RleHByIEpTVmFsdWVSZWdzIGpz
QXJnMTAgeyBHUFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUkluZm86OmFyZ3VtZW50R1BSMCB9Owor
I2VuZGlmCisKICAgICAvLyBGaXJzdCBnbyB0aHJvdWdoIHRoZSBpbnRlZ2VyIHBhcmFtZXRlcnMs
IGZyZWVpbmcgdXAgdGhlaXIgcmVnaXN0ZXIgZm9yIHVzZSBhZnRlcndhcmRzLgogICAgIHsKICAg
ICAgICAgdW5zaWduZWQgbWFyc2hhbGxlZEdQUnMgPSAwOwpAQCAtMTEzLDIxICsxMjIsMjEgQEAg
RXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdG
YWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNy
ZWY6CiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpJMzI6CiAgICAgICAgICAgICBjYXNlIFR5
cGVLaW5kOjpJNjQ6IHsKLSAgICAgICAgICAgICAgICBHUFJSZWcgZ3ByUmVnOwotICAgICAgICAg
ICAgICAgIGlmIChtYXJzaGFsbGVkR1BScyA8IHdhc21DQy5ncHJBcmdzLnNpemUoKSkKLSAgICAg
ICAgICAgICAgICAgICAgZ3ByUmVnID0gd2FzbUNDLmdwckFyZ3NbbWFyc2hhbGxlZEdQUnNdLmdw
cigpOworICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzIGFyZ1JlZzsKKyAgICAgICAgICAgICAg
ICBpZiAobWFyc2hhbGxlZEdQUnMgPCB3YXNtQ0MuanNyQXJncy5zaXplKCkpCisgICAgICAgICAg
ICAgICAgICAgIGFyZ1JlZyA9IHdhc21DQy5qc3JBcmdzW21hcnNoYWxsZWRHUFJzXTsKICAgICAg
ICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgLy8gV2UndmUgYWxyZWFkeSBz
cGlsbGVkIGFsbCBhcmd1bWVudHMsIHRoZXNlIHJlZ2lzdGVycyBhcmUgYXZhaWxhYmxlIGFzIHNj
cmF0Y2guCi0gICAgICAgICAgICAgICAgICAgIGdwclJlZyA9IEdQUkluZm86OmFyZ3VtZW50R1BS
MDsKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NChKSVQ6OkFkZHJlc3MoR1BSSW5mbzo6
Y2FsbEZyYW1lUmVnaXN0ZXIsIGZyT2Zmc2V0KSwgZ3ByUmVnKTsKKyAgICAgICAgICAgICAgICAg
ICAgYXJnUmVnID0ganNBcmcxMDsKKyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShK
SVQ6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGZyT2Zmc2V0KSwgYXJnUmVn
KTsKICAgICAgICAgICAgICAgICAgICAgZnJPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgKyttYXJzaGFsbGVkR1BSczsKICAgICAg
ICAgICAgICAgICBpZiAoYXJnVHlwZS5pc0kzMigpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGpp
dC56ZXJvRXh0ZW5kMzJUb1dvcmQoZ3ByUmVnLCBncHJSZWcpOyAvLyBDbGVhciBub24taW50MzIg
YW5kIG5vbi10YWcgYml0cy4KLSAgICAgICAgICAgICAgICAgICAgaml0LmJveEludDMyKGdwclJl
ZywgSlNWYWx1ZVJlZ3MoZ3ByUmVnKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAg
ICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChhcmdSZWcucGF5bG9hZEdQUigpLCBh
cmdSZWcucGF5bG9hZEdQUigpKTsgLy8gQ2xlYXIgbm9uLWludDMyIGFuZCBub24tdGFnIGJpdHMu
CisgICAgICAgICAgICAgICAgICAgIGppdC5ib3hJbnQzMihhcmdSZWcucGF5bG9hZEdQUigpLCBh
cmdSZWcsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CiAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIGppdC5zdG9yZTY0KGdwclJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxs
ZWVGcmFtZU9mZnNldCkpOworICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKGFyZ1JlZywg
Y2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCkpOwogICAgICAgICAgICAg
ICAgIGNhbGxlZUZyYW1lT2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0xNDQsNiArMTUzLDcgQEAgRXhwZWN0ZWQ8TWFj
cm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNt
VG9KUyhWTSYgdm0KICAgICB9CiAgICAgCiAgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAg
ICAgIC8vIEludGVnZXIgcmVnaXN0ZXJzIGhhdmUgYWxyZWFkeSBiZWVuIHNwaWxsZWQsIHRoZXNl
IGFyZSBub3cgYXZhaWxhYmxlLgogICAgICAgICBHUFJSZWcgZG91YmxlRW5jb2RlT2Zmc2V0R1BS
UmVnID0gR1BSSW5mbzo6YXJndW1lbnRHUFIwOwogICAgICAgICBHUFJSZWcgc2NyYXRjaCA9IEdQ
UkluZm86OmFyZ3VtZW50R1BSMTsKQEAgLTE1OSw2ICsxNjksNyBAQCBFeHBlY3RlZDxNYWNyb0Fz
c2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pT
KFZNJiB2bQogICAgICAgICAgICAgICAgIGhhc01hdGVyaWFsaXplZERvdWJsZUVuY29kZU9mZnNl
dCA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH07CisjZW5kaWYKIAogICAgICAgICB1
bnNpZ25lZCBtYXJzaGFsbGVkR1BScyA9IDA7CiAgICAgICAgIHVuc2lnbmVkIG1hcnNoYWxsZWRG
UFJzID0gMDsKQEAgLTE2NywxMCArMTc4LDE0IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAK
ICAgICAgICAgYXV0byBtYXJzaGFsbEZQUiA9IFsmXSAoRlBSUmVnIGZwclJlZykgewogICAgICAg
ICAgICAgaml0LnB1cmlmeU5hTihmcHJSZWcpOworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAg
ICAgICBqaXQubW92ZURvdWJsZVRvNjQoZnByUmVnLCBzY3JhdGNoKTsKICAgICAgICAgICAgIG1h
dGVyaWFsaXplRG91YmxlRW5jb2RlT2Zmc2V0KGRvdWJsZUVuY29kZU9mZnNldEdQUlJlZyk7CiAg
ICAgICAgICAgICBqaXQuYWRkNjQoZG91YmxlRW5jb2RlT2Zmc2V0R1BSUmVnLCBzY3JhdGNoKTsK
ICAgICAgICAgICAgIGppdC5zdG9yZTY0KHNjcmF0Y2gsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQo
Y2FsbGVlRnJhbWVPZmZzZXQpKTsKKyNlbHNlCisgICAgICAgICAgICBqaXQuc3RvcmVEb3VibGUo
ZnByUmVnLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSk7CisjZW5k
aWYKICAgICAgICAgICAgIGNhbGxlZUZyYW1lT2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CiAg
ICAgICAgICAgICArK21hcnNoYWxsZWRGUFJzOwogICAgICAgICB9OwpAQCAtMTg5LDcgKzIwNCw3
IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5k
aW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpJ
MzI6CiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6IHsKICAgICAgICAgICAgICAgICAv
LyBTa2lwcGVkOiBoYW5kbGVkIGFib3ZlLgotICAgICAgICAgICAgICAgIGlmIChtYXJzaGFsbGVk
R1BScyA+PSB3YXNtQ0MuZ3ByQXJncy5zaXplKCkpCisgICAgICAgICAgICAgICAgaWYgKG1hcnNo
YWxsZWRHUFJzID49IHdhc21DQy5qc3JBcmdzLnNpemUoKSkKICAgICAgICAgICAgICAgICAgICAg
ZnJPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKICAgICAgICAgICAgICAgICArK21hcnNoYWxs
ZWRHUFJzOwogICAgICAgICAgICAgICAgIGNhbGxlZUZyYW1lT2Zmc2V0ICs9IHNpemVvZihSZWdp
c3Rlcik7CkBAIC0xOTgsNyArMjEzLDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVm
PFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAg
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjogewogICAgICAgICAgICAgICAgIEZQUlJlZyBmcHJS
ZWc7CiAgICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRGUFJzIDwgd2FzbUNDLmZwckFyZ3Mu
c2l6ZSgpKQotICAgICAgICAgICAgICAgICAgICBmcHJSZWcgPSB3YXNtQ0MuZnByQXJnc1ttYXJz
aGFsbGVkRlBSc10uZnByKCk7CisgICAgICAgICAgICAgICAgICAgIGZwclJlZyA9IHdhc21DQy5m
cHJBcmdzW21hcnNoYWxsZWRGUFJzXTsKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAg
ICAgICAgICAgICAgLy8gV2UndmUgYWxyZWFkeSBzcGlsbGVkIGFsbCBhcmd1bWVudHMsIHRoZXNl
IHJlZ2lzdGVycyBhcmUgYXZhaWxhYmxlIGFzIHNjcmF0Y2guCiAgICAgICAgICAgICAgICAgICAg
IGZwclJlZyA9IEZQUkluZm86OmFyZ3VtZW50RlBSMDsKQEAgLTIxMiw3ICsyMjcsNyBAQCBFeHBl
Y3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1
cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OiB7CiAg
ICAgICAgICAgICAgICAgRlBSUmVnIGZwclJlZzsKICAgICAgICAgICAgICAgICBpZiAobWFyc2hh
bGxlZEZQUnMgPCB3YXNtQ0MuZnByQXJncy5zaXplKCkpCi0gICAgICAgICAgICAgICAgICAgIGZw
clJlZyA9IHdhc21DQy5mcHJBcmdzW21hcnNoYWxsZWRGUFJzXS5mcHIoKTsKKyAgICAgICAgICAg
ICAgICAgICAgZnByUmVnID0gd2FzbUNDLmZwckFyZ3NbbWFyc2hhbGxlZEZQUnNdOwogICAgICAg
ICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBhbHJlYWR5IHNw
aWxsZWQgYWxsIGFyZ3VtZW50cywgdGhlc2UgcmVnaXN0ZXJzIGFyZSBhdmFpbGFibGUgYXMgc2Ny
YXRjaC4KICAgICAgICAgICAgICAgICAgICAgZnByUmVnID0gRlBSSW5mbzo6YXJndW1lbnRGUFIw
OwpAQCAtMjM0LDEyICsyNDksMTUgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdh
c21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAg
dW5zaWduZWQgY2FsbGVlRnJhbWVPZmZzZXQgPSBDYWxsRnJhbWVTbG90OjpmaXJzdEFyZ3VtZW50
ICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKTsKICAgICAgICAgZm9yICh1bnNp
Z25lZCBhcmdOdW0gPSAwOyBhcmdOdW0gPCBhcmdDb3VudDsgKythcmdOdW0pIHsKICAgICAgICAg
ICAgIGlmIChzaWduYXR1cmUuYXJndW1lbnRUeXBlKGFyZ051bSkuaXNJNjQoKSkgewotICAgICAg
ICAgICAgICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZShHUFJJbmZvOjphcmd1bWVudEdQ
UjApOwotICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoY2FsbGVlRnJhbWUud2l0aE9mZnNldChj
YWxsZWVGcmFtZU9mZnNldCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Ci0gICAgICAgICAgICAg
ICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+
KEdQUkluZm86OmFyZ3VtZW50R1BSMCwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAg
ICAgICAgICB1c2luZyBPcGVyYXRpb24gPSBkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJ
bnQpOworICAgICAgICAgICAgICAgIGNvbnN0ZXhwciBHUFJSZWcgd2FzbUluc3RhbmNlR1BSID0g
cHJlZmVycmVkQXJndW1lbnRHUFI8T3BlcmF0aW9uLCAxPigpOworICAgICAgICAgICAgICAgIGNv
bnN0ZXhwciBKU1ZhbHVlUmVncyB2YWx1ZUpTUiA9IHByZWZlcnJlZEFyZ3VtZW50SlNSPE9wZXJh
dGlvbiwgMj4oKTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uo
d2FzbUluc3RhbmNlR1BSKTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGNhbGxlZUZy
YW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpLCB2YWx1ZUpTUik7CisgICAgICAgICAg
ICAgICAgaml0LnNldHVwQXJndW1lbnRzPE9wZXJhdGlvbj4od2FzbUluc3RhbmNlR1BSLCB2YWx1
ZUpTUik7CiAgICAgICAgICAgICAgICAgYXV0byBjYWxsID0gaml0LmNhbGwoT3BlcmF0aW9uUHRy
VGFnKTsKICAgICAgICAgICAgICAgICBleGNlcHRpb25DaGVja3MuYXBwZW5kKGppdC5lbWl0SnVt
cElmRXhjZXB0aW9uKHZtKSk7Ci0gICAgICAgICAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQp
KTsKKyAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpT
UiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCkpOwogICAgICAgICAg
ICAgICAgIGppdC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKICAg
ICAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKGNhbGwsIEZ1bmN0aW9uUHRyPE9wZXJh
dGlvblB0clRhZz4ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KSk7CiAgICAgICAgICAgICAgICAg
fSk7CkBAIC0yNTEsMTYgKzI2OSwyMiBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8
V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgIGpp
dC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZShHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIGpp
dC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjphcmd1bWVudEdQUjAsIElu
c3RhbmNlOjpvZmZzZXRPZk93bmVyKCkpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIGpp
dC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjphcmd1bWVudEdQUjAsIEpT
V2ViQXNzZW1ibHlJbnN0YW5jZTo6b2Zmc2V0T2ZNb2R1bGUoKSksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7Ci0gICAgaml0LmVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihHUFJJbmZvOjphcmd1bWVu
dEdQUjAsIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7Ci0KLSAgICBHUFJSZWcgaW1wb3J0SlNDZWxs
R1BSUmVnID0gR1BSSW5mbzo6cmVnVDA7IC8vIENhbGxlZSBuZWVkcyB0byBiZSBpbiByZWdUMCBm
b3Igc2xvdyBwYXRoIGJlbG93LgorICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBjYWxsZWVTbG90
IHsgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAgKiBz
aXplb2YoUmVnaXN0ZXIpIH07CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OmFyZ3VtZW50R1BS
MCwgY2FsbGVlU2xvdCk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBqaXQuc3RvcmUzMihD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgY2FsbGVlU2xvdC53
aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworI2VuZGlmCiAKKyAgICAvLyBqc0FyZzEwIG1pZ2h0IG92
ZXJsYXAgd2l0aCByZWdUMCwgc28gc3RvcmUgJ3RoaXMnIGFyZ3VtZW50IGZpcnN0CisgICAgaml0
LnN0b3JlVmFsdWUoanNVbmRlZmluZWQoKSwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJh
bWVTbG90Ojp0aGlzQXJndW1lbnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3Rlcikp
KSwganNBcmcxMCk7CisgICAgY29uc3RleHByIEdQUlJlZyBpbXBvcnRKU0NlbGxHUFJSZWcgPSBH
UFJJbmZvOjpyZWdUMDsgLy8gQ2FsbGVlIG5lZWRzIHRvIGJlIGluIHJlZ1QwIGZvciBzbG93IHBh
dGggYmVsb3cuCiAgICAgQVNTRVJUKCF3YXNtQ0MuY2FsbGVlU2F2ZVJlZ2lzdGVycy5nZXQoaW1w
b3J0SlNDZWxsR1BSUmVnKSk7CiAgICAgbWF0ZXJpYWxpemVJbXBvcnRKU0NlbGwoaml0LCBpbXBv
cnRJbmRleCwgaW1wb3J0SlNDZWxsR1BSUmVnKTsKLQotICAgIGppdC5zdG9yZTY0KGltcG9ydEpT
Q2VsbEdQUlJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90OjpjYWxsZWUg
KiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CisgICAgaml0LnN0b3JlUHRy
KGltcG9ydEpTQ2VsbEdQUlJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90
OjpjYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CisjaWYgVVNF
KEpTVkFMVUUzMl82NCkKKyAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
MihKU1ZhbHVlOjpDZWxsVGFnKSwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90
OjpjYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgVGFnT2Zmc2V0
KSk7CisjZW5kaWYKICAgICBqaXQuc3RvcmUzMihKSVQ6OlRydXN0ZWRJbW0zMihudW1iZXJPZlBh
cmFtZXRlcnMpLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50
Q291bnRJbmNsdWRpbmdUaGlzICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSAr
IFBheWxvYWRPZmZzZXQpKTsKLSAgICBqaXQuc3RvcmU2NChKSVQ6OlRydXN0ZWRJbW02NChKU1Zh
bHVlOjpWYWx1ZVVuZGVmaW5lZCksIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoQ2FsbEZyYW1lU2xv
dDo6dGhpc0FyZ3VtZW50ICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOwog
CiAgICAgLy8gRklYTUUgVGFpbCBjYWxsIGlmIHRoZSB3YXNtIHJldHVybiB0eXBlIGlzIHZvaWQg
YW5kIG5vIHJlZ2lzdGVycyB3ZXJlIHNwaWxsZWQuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjU0ODgKIApAQCAtMjg1LDExICszMDksMTEgQEAgRXhwZWN0ZWQ8TWFj
cm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNt
VG9KUyhWTSYgdm0KICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OiB7CiAgICAgICAgICAgICAv
LyBGSVhNRTogT3B0aW1pemUgSTY0IGV4dHJhY3Rpb24gZnJvbSBCaWdJbnQuCiAgICAgICAgICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMDUzCi0gICAg
ICAgICAgICBHUFJSZWcgZGVzdCA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmdwcigpOwotICAg
ICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0k2
NCk+KEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIGRl
c3QgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5qc3IoKTsKKyAgICAgICAgICAgIGppdC5zZXR1
cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9JNjQpPihKU1JJbmZvOjpyZXR1
cm5WYWx1ZUpTUik7CiAgICAgICAgICAgICBhdXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25Q
dHJUYWcpOwogICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1bXBJ
ZkV4Y2VwdGlvbih2bSkpOwotICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIsIGRlc3QpOworICAgICAgICAgICAgaml0Lm1vdmVWYWx1ZVJlZ3MoSlNSSW5mbzo6cmV0
dXJuVmFsdWVKU1IsIGRlc3QpOwogCiAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soWz1dIChM
aW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5saW5r
KGNhbGwsIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQ29udmVydFRvSTY0
KSk7CkBAIC0yOTksMTggKzMyMywyMSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8
V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAg
ICBjYXNlIFR5cGVLaW5kOjpJMzI6IHsKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExp
c3QgZG9uZTsKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3Qgc2xvd1BhdGg7Ci0g
ICAgICAgICAgICBHUFJSZWcgZGVzdCA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmdwcigpOwor
ICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgZGVzdEpTUiA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBd
LmpzcigpOwogCi0gICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVt
YmVyKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpKTsKLSAg
ICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMihKU1ZhbHVlUmVn
cyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycykpOwotICAg
ICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwg
ZGVzdCk7CisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVy
KEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBqaXQuc2NyYXRjaFJlZ2lzdGVyKCksIERvTm90SGF2
ZVRhZ1JlZ2lzdGVycykpOworICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJ
Zk5vdEludDMyKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMp
KTsKKyAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoSlNSSW5mbzo6cmV0dXJuVmFs
dWVKU1IucGF5bG9hZEdQUigpLCBkZXN0SlNSLnBheWxvYWRHUFIoKSk7CiAgICAgICAgICAgICBk
b25lLmFwcGVuZChqaXQuanVtcCgpKTsKIAogICAgICAgICAgICAgc2xvd1BhdGgubGluaygmaml0
KTsKLSAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252
ZXJ0VG9JMzIpPihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgICAgICBqaXQuc2V0
dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvSTMyKT4oSlNSSW5mbzo6cmV0
dXJuVmFsdWVKU1IpOwogICAgICAgICAgICAgYXV0byBjYWxsID0gaml0LmNhbGwoT3BlcmF0aW9u
UHRyVGFnKTsKICAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRKdW1w
SWZFeGNlcHRpb24odm0pKTsKLSAgICAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZh
bHVlR1BSLCBkZXN0KTsKKyAgICAgICAgICAgIGppdC5tb3ZlKEpTUkluZm86OnJldHVyblZhbHVl
SlNSLnBheWxvYWRHUFIoKSwgZGVzdEpTUi5wYXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVF
MzJfNjQpCisgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigw
KSwgZGVzdEpTUi50YWdHUFIoKSk7CisjZW5kaWYKIAogICAgICAgICAgICAgaml0LmFkZExpbmtU
YXNrKFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewogICAgICAgICAgICAgICAgIGxpbmtC
dWZmZXIubGluayhjYWxsLCBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkNv
bnZlcnRUb0kzMikpOwpAQCAtMzIwLDIzICszNDcsMjYgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYg
dm0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6
OkYzMjogewotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBkb25lOwogICAgICAg
ICAgICAgRlBSUmVnIGRlc3QgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5mcHIoKTsKIAotICAg
ICAgICAgICAgYXV0byBub3RBTnVtYmVyID0gaml0LmJyYW5jaElmTm90TnVtYmVyKEdQUkluZm86
OnJldHVyblZhbHVlR1BSLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwotICAgICAgICAgICAgYXV0
byBpc0RvdWJsZSA9IGppdC5icmFuY2hJZk5vdEludDMyKEpTVmFsdWVSZWdzKEdQUkluZm86OnJl
dHVyblZhbHVlR1BSKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgICAgIENDYWxs
SGVscGVyczo6SnVtcExpc3QgZG9uZTsKKyAgICAgICAgICAgIGF1dG8gbm90QU51bWJlciA9IGpp
dC5icmFuY2hJZk5vdE51bWJlcihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgaml0LnNjcmF0Y2hS
ZWdpc3RlcigpLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworICAgICAgICAgICAgYXV0byBpc0Rv
dWJsZSA9IGppdC5icmFuY2hJZk5vdEludDMyKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBEb05v
dEhhdmVUYWdSZWdpc3RlcnMpOwogICAgICAgICAgICAgLy8gV2UncmUgYW4gaW50MzIKLSAgICAg
ICAgICAgIGppdC5zaWduRXh0ZW5kMzJUb1B0cihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BS
SW5mbzo6cmV0dXJuVmFsdWVHUFIpOwotICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQ2NFRvRmxv
YXQoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOworICAgICAgICAgICAgaml0LmNvbnZl
cnRJbnQzMlRvRmxvYXQoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOwogICAgICAgICAg
ICAgZG9uZS5hcHBlbmQoaml0Lmp1bXAoKSk7CiAKICAgICAgICAgICAgIGlzRG91YmxlLmxpbmso
JmppdCk7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgICAgIGppdC51bmJveERvdWJsZVdp
dGhvdXRBc3NlcnRpb25zKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZXR1cm5W
YWx1ZUdQUjIsIGRlc3QsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisjZWxzZQorICAgICAgICAg
ICAgaml0LnVuYm94RG91YmxlKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBkZXN0KTsKKyNlbmRp
ZgogICAgICAgICAgICAgaml0LmNvbnZlcnREb3VibGVUb0Zsb2F0KGRlc3QsIGRlc3QpOwogICAg
ICAgICAgICAgZG9uZS5hcHBlbmQoaml0Lmp1bXAoKSk7CiAKICAgICAgICAgICAgIG5vdEFOdW1i
ZXIubGluaygmaml0KTsKLSAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShv
cGVyYXRpb25Db252ZXJ0VG9GMzIpPihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAg
ICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvRjMyKT4o
SlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpOwogICAgICAgICAgICAgYXV0byBjYWxsID0gaml0LmNh
bGwoT3BlcmF0aW9uUHRyVGFnKTsKICAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQo
aml0LmVtaXRKdW1wSWZFeGNlcHRpb24odm0pKTsKICAgICAgICAgICAgIGppdC5tb3ZlKEZQUklu
Zm86OnJldHVyblZhbHVlRlBSICwgZGVzdCk7CkBAIC0zNDksMjIgKzM3OSwyNSBAQCBFeHBlY3Rl
ZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+
IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBUeXBlS2luZDo6RjY0OiB7Ci0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0
IGRvbmU7CiAgICAgICAgICAgICBGUFJSZWcgZGVzdCA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBd
LmZwcigpOworICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBkb25lOwogCi0gICAg
ICAgICAgICBhdXRvIG5vdEFOdW1iZXIgPSBqaXQuYnJhbmNoSWZOb3ROdW1iZXIoR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7Ci0gICAgICAgICAgICBhdXRv
IGlzRG91YmxlID0gaml0LmJyYW5jaElmTm90SW50MzIoSlNWYWx1ZVJlZ3MoR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIpLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworICAgICAgICAgICAgYXV0byBu
b3RBTnVtYmVyID0gaml0LmJyYW5jaElmTm90TnVtYmVyKEpTUkluZm86OnJldHVyblZhbHVlSlNS
LCBqaXQuc2NyYXRjaFJlZ2lzdGVyKCksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAg
ICAgICBhdXRvIGlzRG91YmxlID0gaml0LmJyYW5jaElmTm90SW50MzIoSlNWYWx1ZVJlZ3MoSlNS
SW5mbzo6cmV0dXJuVmFsdWVKU1IpLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwogICAgICAgICAg
ICAgLy8gV2UncmUgYW4gaW50MzIKLSAgICAgICAgICAgIGppdC5zaWduRXh0ZW5kMzJUb1B0cihH
UFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwotICAgICAg
ICAgICAgaml0LmNvbnZlcnRJbnQ2NFRvRG91YmxlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBk
ZXN0KTsKKyAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShHUFJJbmZvOjpyZXR1
cm5WYWx1ZUdQUiwgZGVzdCk7CiAgICAgICAgICAgICBkb25lLmFwcGVuZChqaXQuanVtcCgpKTsK
IAogICAgICAgICAgICAgaXNEb3VibGUubGluaygmaml0KTsKKyNpZiBVU0UoSlNWQUxVRTY0KQog
ICAgICAgICAgICAgaml0LnVuYm94RG91YmxlV2l0aG91dEFzc2VydGlvbnMoR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIsIEdQUkluZm86OnJldHVyblZhbHVlR1BSMiwgZGVzdCwgRG9Ob3RIYXZlVGFn
UmVnaXN0ZXJzKTsKKyNlbHNlCisgICAgICAgICAgICBqaXQudW5ib3hEb3VibGUoSlNSSW5mbzo6
cmV0dXJuVmFsdWVKU1IsIGRlc3QpOworI2VuZGlmCiAgICAgICAgICAgICBkb25lLmFwcGVuZChq
aXQuanVtcCgpKTsKIAogICAgICAgICAgICAgbm90QU51bWJlci5saW5rKCZqaXQpOwotICAgICAg
ICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0Y2NCk+
KEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50
czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9GNjQpPihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpT
Uik7CiAgICAgICAgICAgICBhdXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25QdHJUYWcpOwog
ICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1bXBJZkV4Y2VwdGlv
bih2bSkpOwogICAgICAgICAgICAgaml0Lm1vdmUoRlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIsIGRl
c3QpOwpAQCAtMzc4LDcgKzQxMSw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxX
YXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAg
IH0KICAgICAgICAgZGVmYXVsdDogIHsKICAgICAgICAgICAgIGlmIChXYXNtOjppc0Z1bmNyZWYo
cmV0dXJuVHlwZSkgfHwgV2FzbTo6aXNFeHRlcm5yZWYocmV0dXJuVHlwZSkpCi0gICAgICAgICAg
ICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIHdhc21DYWxsSW5mby5yZXN1
bHRzWzBdLmdwcigpKTsKKyAgICAgICAgICAgICAgICBqaXQubW92ZVZhbHVlUmVncyhKU1JJbmZv
OjpyZXR1cm5WYWx1ZUpTUiwgd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uanNyKCkpOwogICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgIC8vIEZvciB0aGUgSmF2YVNjcmlwdCBlbWJlZGRp
bmcsIGltcG9ydHMgd2l0aCB0aGVzZSB0eXBlcyBpbiB0aGVpciB0eXBlIGRlZmluaXRpb24gcmV0
dXJuIGFyZSBhIFdlYkFzc2VtYmx5Lk1vZHVsZSB2YWxpZGF0aW9uIGVycm9yLgogICAgICAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zOTIsMTIgKzQyNSwyOSBA
QCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGlu
Z0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4
dEluc3RhbmNlKHdhc21Db250ZXh0SW5zdGFuY2VHUFIpOwogICAgICAgICB9CiAKLSAgICAgICAg
aml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzKT4od2Fz
bUNvbnRleHRJbnN0YW5jZUdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZ0eXBlRGVm
aW5pdGlvbiksIEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyLCBDQ2FsbEhlbHBlcnM6OmZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAg
ICAgY29uc3RleHByIEdQUlJlZyBzYXZlZFJlc3VsdHNHUFIgPSBwcmVmZXJyZWRBcmd1bWVudEdQ
UjxkZWNsdHlwZShvcGVyYXRpb25JdGVyYXRlUmVzdWx0cyksIDQ+KCk7CisgICAgICAgIGppdC5t
b3ZlKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0c0dQUik7
CisgICAgICAgIGlmIGNvbnN0ZXhwciAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisg
ICAgICAgICAgICBqaXQuc3ViUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKG1heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rl
cik7CisgICAgICAgIHN0YXRpY19hc3NlcnQobm9PdmVybGFwKHNhdmVkUmVzdWx0c0dQUiwgSlNS
SW5mbzo6cmV0dXJuVmFsdWVKU1IpKTsKKyAgICAgICAgQVNTRVJUKHdhc21Db250ZXh0SW5zdGFu
Y2VHUFIgIT0gc2F2ZWRSZXN1bHRzR1BSKTsKKyAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRl
Y2x0eXBlKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzKT4od2FzbUNvbnRleHRJbnN0YW5jZUdQUiwg
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZ0eXBlRGVmaW5pdGlvbiksIEpTUkluZm86OnJl
dHVyblZhbHVlSlNSLCBzYXZlZFJlc3VsdHNHUFIsIENDYWxsSGVscGVyczo6ZnJhbWVQb2ludGVy
UmVnaXN0ZXIpOwogICAgICAgICBqaXQuY2FsbE9wZXJhdGlvbihGdW5jdGlvblB0cjxPcGVyYXRp
b25QdHJUYWc+KG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzKSk7CisgICAgICAgIGlmIGNvbnN0ZXhw
ciAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAgICBqaXQuYWRkUHRy
KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxs
KSwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisKICAgICAgICAgZXhjZXB0
aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1bXBJZkV4Y2VwdGlvbih2bSkpOwogCi0gICAgICAg
IGZvciAoUmVnaXN0ZXJBdE9mZnNldCBsb2NhdGlvbiA6IHNhdmVkUmVzdWx0UmVnaXN0ZXJzKQot
ICAgICAgICAgICAgaml0LmxvYWQ2NFRvUmVnKENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhl
bHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBsb2NhdGlvbi5vZmZzZXQoKSksIGxvY2F0aW9u
LnJlZygpKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpZ25hdHVyZS5yZXR1
cm5Db3VudCgpOyArK2kpIHsKKyAgICAgICAgICAgIFZhbHVlTG9jYXRpb24gbG9jID0gd2FzbUNh
bGxJbmZvLnJlc3VsdHNbaV07CisgICAgICAgICAgICBpZiAobG9jLmlzR1BSKCkpIHsKKyNpZiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgIEFTU0VSVChzYXZlZFJlc3VsdFJlZ2lz
dGVycy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSArIDQgPT0gc2F2ZWRS
ZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkudGFnR1BSKCkpLT5vZmZzZXQoKSk7CisjZW5k
aWYKKyAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKENDYWxsSGVscGVyczo6QWRkcmVzcyhD
Q2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5m
aW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSksIGxvYy5qc3IoKSk7CisgICAg
ICAgICAgICB9IGVsc2UgaWYgKGxvYy5pc0ZQUigpKQorICAgICAgICAgICAgICAgIGppdC5sb2Fk
RG91YmxlKENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJl
Z2lzdGVyLCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5mcHIoKSktPm9mZnNldCgpKSwg
bG9jLmZwcigpKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGppdC5lbWl0RnVuY3Rpb25FcGls
b2d1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUZ1bmN0aW9uLmNwcAppbmRleCBjNGQyYjk2YzI5MzA3MTU1MWY5NmI4ZmE0ZGNlYWY1MDk1
YTA5Yjk1Li40MGZkMzcxYjAyNzgzMmQ2ODQ0MjM4MDczNzcyNDAwMTVhNmFjYTk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9u
LmNwcApAQCAtMTU3LDYgKzE1Nyw5IEBAIHB0cmRpZmZfdCBXZWJBc3NlbWJseUZ1bmN0aW9uOjpw
cmV2aW91c0luc3RhbmNlT2Zmc2V0KCkgY29uc3QKIHsKICAgICBwdHJkaWZmX3QgcmVzdWx0ID0g
Y2FsbGVlU2F2ZXMoKS5udW1iZXJPZlNldFJlZ2lzdGVycygpICogc2l6ZW9mKENQVVJlZ2lzdGVy
KTsKICAgICByZXN1bHQgPSAtcmVzdWx0IC0gc2l6ZW9mKENQVVJlZ2lzdGVyKTsKKyNpZiBVU0Uo
SlNWQUxVRTMyXzY0KQorICAgIEFTU0VSVCghY2FsbGVlU2F2ZXMoKS5udW1iZXJPZlNldEZQUnMo
KSk7IC8vIEJlY2F1c2UgRlBScyBhcmUgd2lkZXIgdGhhbiBzaXplb2YoQ1BVUmVnaXN0ZXIpCisj
ZW5kaWYKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgIHB0cmRpZmZfdCBtaW5PZmZzZXQgPSAxOwog
ICAgIGZvciAoY29uc3QgUmVnaXN0ZXJBdE9mZnNldCYgcmVnQXRPZmZzZXQgOiB1c2VkQ2FsbGVl
U2F2ZVJlZ2lzdGVycygpKSB7CkBAIC0xODYsMTcgKzE4OSwxNSBAQCBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2lu
dFNsb3coKQogICAgIGNvbnN0IGF1dG8mIHBpbm5lZFJlZ3MgPSBXYXNtOjpQaW5uZWRSZWdpc3Rl
ckluZm86OmdldCgpOwogICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IHJlZ2lzdGVyc1RvU3BpbGwg
PSB1c2VkQ2FsbGVlU2F2ZVJlZ2lzdGVycygpOwogCi0gICAgYXV0byYgbW9kdWxlSW5mb3JtYXRp
b24gPSBpbnN0YW5jZSgpLT5pbnN0YW5jZSgpLm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCk7
Ci0KICAgICBjb25zdCBXYXNtOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb24mIHdhc21DQyA9IFdhc206
Ondhc21DYWxsaW5nQ29udmVudGlvbigpOwogICAgIFdhc206OkNhbGxJbmZvcm1hdGlvbiB3YXNt
Q2FsbEluZm8gPSB3YXNtQ0MuY2FsbEluZm9ybWF0aW9uRm9yKHR5cGVEZWZpbml0aW9uKTsKICAg
ICBXYXNtOjpDYWxsSW5mb3JtYXRpb24ganNDYWxsSW5mbyA9IFdhc206OmpzQ2FsbGluZ0NvbnZl
bnRpb24oKS5jYWxsSW5mb3JtYXRpb25Gb3IodHlwZURlZmluaXRpb24sIFdhc206OkNhbGxSb2xl
OjpDYWxsZWUpOwogICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IHNhdmVkUmVzdWx0UmVnaXN0ZXJz
ID0gd2FzbUNhbGxJbmZvLmNvbXB1dGVSZXN1bHRzT2Zmc2V0TGlzdCgpOwogCi0gICAgdW5zaWdu
ZWQgdG90YWxGcmFtZVNpemUgPSByZWdpc3RlcnNUb1NwaWxsLnNpemUoKSAqIHNpemVvZihDUFVS
ZWdpc3Rlcik7CisgICAgdW5zaWduZWQgdG90YWxGcmFtZVNpemUgPSByZWdpc3RlcnNUb1NwaWxs
LnNpemVPZkFyZWFJbkJ5dGVzKCk7CiAgICAgdG90YWxGcmFtZVNpemUgKz0gc2l6ZW9mKENQVVJl
Z2lzdGVyKTsgLy8gU2xvdCBmb3IgdGhlIFZNJ3MgcHJldmlvdXMgd2FzbSBpbnN0YW5jZS4KICAg
ICB0b3RhbEZyYW1lU2l6ZSArPSB3YXNtQ2FsbEluZm8uaGVhZGVyQW5kQXJndW1lbnRTdGFja1Np
emVJbkJ5dGVzOwotICAgIHRvdGFsRnJhbWVTaXplICs9IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLnNp
emUoKSAqIHNpemVvZihDUFVSZWdpc3Rlcik7CisgICAgdG90YWxGcmFtZVNpemUgKz0gc2F2ZWRS
ZXN1bHRSZWdpc3RlcnMuc2l6ZU9mQXJlYUluQnl0ZXMoKTsKIAogICAgIC8vIEZJWE1FOiBPcHRp
bWl6ZSBXYXNtIGZ1bmN0aW9uIGNhbGwgZXZlbiBpZiBhcmd1bWVudHMgaW5jbHVkZSBJNjQuCiAg
ICAgLy8gVGhpcyByZXF1aXJlcyBJNjQgZXh0cmFjdGlvbiBmcm9tIEJpZ0ludC4KQEAgLTIxNiw5
ICsyMTcsMTQgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2Vt
Ymx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAgICAgaml0LnN0b3JlUHRy
KHJlZywgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBv
ZmZzZXQpKTsKICAgICB9CiAKLSAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IFdhc206Ondhc21DYWxs
aW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMV07Ci0gICAgYm9vbCBzdGFja0xp
bWl0R1BSSXNDbG9iYmVyZWQgPSBmYWxzZTsKKyAgICBKU1ZhbHVlUmVncyBzY3JhdGNoSlNSIHsK
KyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRp
b24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzJdLAorI2VuZGlmCisgICAgICAgIFdhc206Ondhc21D
YWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMV0KKyAgICB9OwogICAgIEdQ
UlJlZyBzdGFja0xpbWl0R1BSID0gV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9n
dWVTY3JhdGNoR1BSc1swXTsKKyAgICBib29sIHN0YWNrTGltaXRHUFJJc0Nsb2JiZXJlZCA9IGZh
bHNlOwogICAgIGppdC5sb2FkUHRyKHZtLmFkZHJlc3NPZlNvZnRTdGFja0xpbWl0KCksIHN0YWNr
TGltaXRHUFIpOwogCiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBzbG93UGF0aDsKQEAgLTIz
Nyw3ICsyNDMsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNz
ZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgICAgICBqaXQuZW1pdE1h
dGVyaWFsaXplVGFnQ2hlY2tSZWdpc3RlcnMoKTsKIAogICAgIC8vIExvb3AgYmFja3dhcmRzIHNv
IHdlIGNhbiB1c2UgdGhlIGZpcnN0IGZsb2F0aW5nIHBvaW50IGFyZ3VtZW50IGFzIGEgc2NyYXRj
aC4KLSAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IFdhc206Ondhc21DYWxsaW5nQ29udmVudGlvbigp
LmZwckFyZ3NbMF0uZnByKCk7CisgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBXYXNtOjp3YXNtQ2Fs
bGluZ0NvbnZlbnRpb24oKS5mcHJBcmdzWzBdOwogICAgIGZvciAodW5zaWduZWQgaSA9IHNpZ25h
dHVyZS5hcmd1bWVudENvdW50KCk7IGktLTspIHsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzIGNhbGxlZUZyYW1lID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpz
dGFja1BvaW50ZXJSZWdpc3RlciwgMCk7CiAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBq
c1BhcmFtKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBqc0NhbGxJbmZvLnBhcmFtc1tpXS5v
ZmZzZXRGcm9tRlAoKSk7CkBAIC0yNDYsMTIgKzI1MiwyMCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNs
b3coKQogICAgICAgICBhdXRvIHR5cGUgPSBzaWduYXR1cmUuYXJndW1lbnRUeXBlKGkpOwogICAg
ICAgICBzd2l0Y2ggKHR5cGUua2luZCkgewogICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpJ
MzI6IHsKLSAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQUik7Ci0gICAg
ICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIoc2NyYXRjaEdQUikp
OwotICAgICAgICAgICAgaWYgKGlzU3RhY2spCi0gICAgICAgICAgICAgICAgaml0LnN0b3JlMzIo
c2NyYXRjaEdQUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ld
Lm9mZnNldEZyb21TUCgpKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgaml0
Lnplcm9FeHRlbmQzMlRvV29yZChzY3JhdGNoR1BSLCB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmdw
cigpKTsKKyAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQYXJhbSwgc2NyYXRjaEpTUik7Cisg
ICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIoc2NyYXRjaEpT
UikpOworICAgICAgICAgICAgaWYgKGlzU3RhY2spIHsKKyAgICAgICAgICAgICAgICBDQ2FsbEhl
bHBlcnM6OkFkZHJlc3MgYWRkciB7IGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZv
LnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkgfTsKKyAgICAgICAgICAgICAgICBqaXQuc3RvcmUz
MihzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgYWRkci53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQp
KTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgIGppdC5zdG9yZTMyKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCBhZGRyLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7
CisjZW5kaWYKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaml0Lnplcm9F
eHRlbmQzMlRvV29yZChzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgd2FzbUNhbGxJbmZvLnBhcmFt
c1tpXS5qc3IoKS5wYXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAg
ICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMCksIHdhc21DYWxs
SW5mby5wYXJhbXNbaV0uanNyKCkudGFnR1BSKCkpOworI2VuZGlmCisgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5k
OjpSZWY6CkBAIC0yNjAsMjcgKzI3NCwyNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRy
eVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAg
ICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpFeHRlcm5yZWY6IHsKICAgICAgICAgICAgIGlmICgh
V2FzbTo6aXNFeHRlcm5yZWYodHlwZSkpIHsKICAgICAgICAgICAgICAgICAvLyBFbnN1cmUgd2Ug
aGF2ZSBhIFdBU00gZXhwb3J0ZWQgZnVuY3Rpb24uCi0gICAgICAgICAgICAgICAgaml0LmxvYWQ2
NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAgICBhdXRvIGlzTnVsbCA9IGpp
dC5icmFuY2hJZk51bGwoc2NyYXRjaEdQUik7CisgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1
ZShqc1BhcmFtLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAgICAgICBhdXRvIGlzTnVsbCA9IGpp
dC5icmFuY2hJZk51bGwoc2NyYXRjaEpTUik7CiAgICAgICAgICAgICAgICAgaWYgKCF0eXBlLmlz
TnVsbGFibGUoKSkKICAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGlzTnVsbCk7
Ci0gICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdENlbGwoc2Ny
YXRjaEdQUikpOworICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZO
b3RDZWxsKHNjcmF0Y2hKU1IpKTsKIAogICAgICAgICAgICAgICAgIHN0YWNrTGltaXRHUFJJc0Ns
b2JiZXJlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgaml0LmVtaXRMb2FkU3RydWN0dXJlKHZt
LCBzY3JhdGNoR1BSLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihD
Q2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgU3RydWN0dXJlOjpjbGFzc0luZm9PZmZz
ZXQoKSksIHNjcmF0Y2hHUFIpOworICAgICAgICAgICAgICAgIGppdC5lbWl0TG9hZFN0cnVjdHVy
ZSh2bSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsK
KyAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRj
aEpTUi5wYXlsb2FkR1BSKCksIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBzY3JhdGNo
SlNSLnBheWxvYWRHUFIoKSk7CiAKICAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6
aXNfZmluYWw8V2ViQXNzZW1ibHlGdW5jdGlvbj46OnZhbHVlLCAiV2UgZG8gbm90IGNoZWNrIGZv
ciBzdWJ0eXBlcyBiZWxvdyIpOwogICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjpp
c19maW5hbDxXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbj46OnZhbHVlLCAiV2UgZG8gbm90IGNo
ZWNrIGZvciBzdWJ0eXBlcyBiZWxvdyIpOwogCi0gICAgICAgICAgICAgICAgYXV0byBpc1dhc21G
dW5jdGlvbiA9IGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgc2NyYXRjaEdQUiwg
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKFdlYkFzc2VtYmx5RnVuY3Rpb246OmluZm8oKSkp
OwotICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoUHRyKENDYWxsSGVs
cGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihX
ZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6aW5mbygpKSkpOworICAgICAgICAgICAgICAgIGF1
dG8gaXNXYXNtRnVuY3Rpb24gPSBqaXQuYnJhbmNoUHRyKENDYWxsSGVscGVyczo6RXF1YWwsIHNj
cmF0Y2hKU1IucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoV2ViQXNz
ZW1ibHlGdW5jdGlvbjo6aW5mbygpKSk7CisgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5k
KGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEpTUi5wYXlsb2Fk
R1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihXZWJBc3NlbWJseVdyYXBwZXJGdW5j
dGlvbjo6aW5mbygpKSkpOwogCiAgICAgICAgICAgICAgICAgaXNXYXNtRnVuY3Rpb24ubGluaygm
aml0KTsKICAgICAgICAgICAgICAgICBpZiAoV2FzbTo6aXNSZWZXaXRoVHlwZUluZGV4KHR5cGUp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQUik7
Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhz
Y3JhdGNoR1BSLCBXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZTo6b2Zmc2V0T2ZTaWduYXR1cmVJbmRl
eCgpKSwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChq
aXQuYnJhbmNoUHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbVB0cih0eXBlLmluZGV4KSkpOworICAgICAgICAgICAgICAgICAgICBq
aXQubG9hZFB0cihqc1BhcmFtLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CisgICAgICAgICAg
ICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoSlNSLnBh
eWxvYWRHUFIoKSwgV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2U6Om9mZnNldE9mU2lnbmF0dXJlSW5k
ZXgoKSksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAgICAgICAgc2xv
d1BhdGguYXBwZW5kKGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRj
aEpTUi5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih0eXBlLmluZGV4
KSkpOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlmICh0eXBlLmlzTnVs
bGFibGUoKSkKQEAgLTI4OCwxNSArMzAyLDE1IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0Vu
dHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChpc1N0YWNrKSB7Ci0gICAgICAgICAgICAg
ICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgICAgICAgICBqaXQu
bG9hZFZhbHVlKGpzUGFyYW0sIHNjcmF0Y2hKU1IpOwogICAgICAgICAgICAgICAgIGlmICghdHlw
ZS5pc051bGxhYmxlKCkpCi0gICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQu
YnJhbmNoSWZOdWxsKHNjcmF0Y2hHUFIpKTsKLSAgICAgICAgICAgICAgICBqaXQuc3RvcmU2NChz
Y3JhdGNoR1BSLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0u
b2Zmc2V0RnJvbVNQKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGpp
dC5icmFuY2hJZk51bGwoc2NyYXRjaEpTUikpOworICAgICAgICAgICAgICAgIGppdC5zdG9yZVZh
bHVlKHNjcmF0Y2hKU1IsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBhcmFt
c1tpXS5vZmZzZXRGcm9tU1AoKSkpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICBhdXRvIGV4dGVybkdQUiA9IHdhc21DYWxsSW5mby5wYXJhbXNbaV0uZ3ByKCk7Ci0gICAg
ICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBleHRlcm5HUFIpOworICAgICAgICAgICAg
ICAgIGF1dG8gZXh0ZXJuSlNSID0gd2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5qc3IoKTsKKyAgICAg
ICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpzUGFyYW0sIGV4dGVybkpTUik7CiAgICAgICAgICAg
ICAgICAgaWYgKCF0eXBlLmlzTnVsbGFibGUoKSkKLSAgICAgICAgICAgICAgICAgICAgc2xvd1Bh
dGguYXBwZW5kKGppdC5icmFuY2hJZk51bGwoZXh0ZXJuR1BSKSk7CisgICAgICAgICAgICAgICAg
ICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOdWxsKGV4dGVybkpTUikpOwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTMwNCwzNSArMzE4LDQx
IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0
aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6
OkY2NDogewogICAgICAgICAgICAgaWYgKCFpc1N0YWNrKQogICAgICAgICAgICAgICAgIHNjcmF0
Y2hGUFIgPSB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmZwcigpOwotICAgICAgICAgICAgYXV0byBt
b3ZlVG9EZXN0aW5hdGlvbiA9IFsmXSAoKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGlzU3RhY2sp
IHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHNpZ25hdHVyZS5hcmd1bWVudFR5cGUoaSkuaXNG
MzIoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZUZsb2F0KHNjcmF0Y2hGUFIs
IGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5vZmZzZXRGcm9t
U1AoKSkpOwotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAg
ICBqaXQuc3RvcmVEb3VibGUoc2NyYXRjaEZQUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNt
Q2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSk7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfTsKIAotICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNo
R1BSKTsKLSAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIo
c2NyYXRjaEdQUikpOwotICAgICAgICAgICAgYXV0byBpc0ludDMyID0gaml0LmJyYW5jaElmSW50
MzIoc2NyYXRjaEdQUik7Ci0KLSAgICAgICAgICAgIGppdC51bmJveERvdWJsZShzY3JhdGNoR1BS
LCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSKTsKKyAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQ
YXJhbSwgc2NyYXRjaEpTUik7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgICAgIHNsb3dQ
YXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIoc2NyYXRjaEpTUiwgSW52YWxpZEdQUlJl
ZykpOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIHN0YWNrTGltaXRHUFJJ
c0Nsb2JiZXJlZCA9IHRydWU7CisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5j
aElmTm90TnVtYmVyKHNjcmF0Y2hKU1IsIHN0YWNrTGltaXRHUFIpKTsKKyNlbmRpZgorICAgICAg
ICAgICAgYXV0byBpc0ludDMyID0gaml0LmJyYW5jaElmSW50MzIoc2NyYXRjaEpTUik7CisjaWYg
VVNFKEpTVkFMVUU2NCkKKyAgICAgICAgICAgIGppdC51bmJveERvdWJsZShzY3JhdGNoSlNSLnBh
eWxvYWRHUFIoKSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hGUFIpOworI2VsaWYg
VVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIGppdC51bmJveERvdWJsZShzY3JhdGNoSlNS
LCBzY3JhdGNoRlBSKTsKKyNlbmRpZgogICAgICAgICAgICAgaWYgKHNpZ25hdHVyZS5hcmd1bWVu
dFR5cGUoaSkuaXNGMzIoKSkKICAgICAgICAgICAgICAgICBqaXQuY29udmVydERvdWJsZVRvRmxv
YXQoc2NyYXRjaEZQUiwgc2NyYXRjaEZQUik7Ci0gICAgICAgICAgICBtb3ZlVG9EZXN0aW5hdGlv
bigpOwogICAgICAgICAgICAgYXV0byBkb25lID0gaml0Lmp1bXAoKTsKIAogICAgICAgICAgICAg
aXNJbnQzMi5saW5rKCZqaXQpOwogICAgICAgICAgICAgaWYgKHNpZ25hdHVyZS5hcmd1bWVudFR5
cGUoaSkuaXNGMzIoKSkgewotICAgICAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0Zsb2F0
KHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOwotICAgICAgICAgICAgICAgIG1vdmVUb0Rlc3RpbmF0
aW9uKCk7CisgICAgICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRmxvYXQoc2NyYXRjaEpT
Ui5wYXlsb2FkR1BSKCksIHNjcmF0Y2hGUFIpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9Eb3VibGUoc2NyYXRjaEdQUiwgc2NyYXRjaEZQ
Uik7Ci0gICAgICAgICAgICAgICAgbW92ZVRvRGVzdGluYXRpb24oKTsKKyAgICAgICAgICAgICAg
ICBqaXQuY29udmVydEludDMyVG9Eb3VibGUoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHNjcmF0
Y2hGUFIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZG9uZS5saW5rKCZqaXQpOwotCisg
ICAgICAgICAgICBpZiAoaXNTdGFjaykgeworICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6
QWRkcmVzcyBhZGRyIHsgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1z
W2ldLm9mZnNldEZyb21TUCgpKSB9OworICAgICAgICAgICAgICAgIGlmIChzaWduYXR1cmUuYXJn
dW1lbnRUeXBlKGkpLmlzRjMyKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlRmxv
YXQoc2NyYXRjaEZQUiwgYWRkci53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyNpZiBVU0Uo
SlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW0zMigwKSwgYWRkci53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworI2VuZGlm
CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZURv
dWJsZShzY3JhdGNoRlBSLCBhZGRyKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CkBAIC0zNDMsNDIgKzM2Myw0NCBAQCBNYWNy
b0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anND
YWxsRW50cnlwb2ludFNsb3coKQogICAgIC8vIEF0IHRoaXMgcG9pbnQsIHdlJ3JlIGNvbW1pdHRl
ZCB0byBkb2luZyBhIGZhc3QgY2FsbC4KIAogICAgIGlmIChXYXNtOjpDb250ZXh0Ojp1c2VGYXN0
VExTKCkpIAotICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uoc2NyYXRjaEdQUik7
CisgICAgICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZShzY3JhdGNoSlNSLnBheWxvYWRH
UFIoKSk7CiAgICAgZWxzZQotICAgICAgICBqaXQubG9hZFB0cih2bS53YXNtQ29udGV4dC5wb2lu
dGVyVG9JbnN0YW5jZSgpLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgaml0LmxvYWRQdHIodm0ud2Fz
bUNvbnRleHQucG9pbnRlclRvSW5zdGFuY2UoKSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOwog
ICAgIHB0cmRpZmZfdCBwcmV2aW91c0luc3RhbmNlT2Zmc2V0ID0gdGhpcy0+cHJldmlvdXNJbnN0
YW5jZU9mZnNldCgpOwotICAgIGppdC5zdG9yZVB0cihzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHByZXZpb3VzSW5zdGFuY2VPZmZz
ZXQpKTsKKyAgICBqaXQuc3RvcmVQdHIoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIENDYWxsSGVs
cGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgcHJldmlvdXNJbnN0YW5j
ZU9mZnNldCkpOwogCi0gICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZp
bnN0YW5jZSgpLT5pbnN0YW5jZSgpKSwgc2NyYXRjaEdQUik7CisgICAgaml0Lm1vdmUoQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZpbnN0YW5jZSgpLT5pbnN0YW5jZSgpKSwgc2NyYXRjaEpT
Ui5wYXlsb2FkR1BSKCkpOwogICAgIGlmIChXYXNtOjpDb250ZXh0Ojp1c2VGYXN0VExTKCkpIAot
ICAgICAgICBqaXQuc3RvcmVXYXNtQ29udGV4dEluc3RhbmNlKHNjcmF0Y2hHUFIpOworICAgICAg
ICBqaXQuc3RvcmVXYXNtQ29udGV4dEluc3RhbmNlKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsK
ICAgICBlbHNlIHsKLSAgICAgICAgaml0Lm1vdmUoc2NyYXRjaEdQUiwgcGlubmVkUmVncy53YXNt
Q29udGV4dEluc3RhbmNlUG9pbnRlcik7Ci0gICAgICAgIGppdC5zdG9yZVB0cihzY3JhdGNoR1BS
LCB2bS53YXNtQ29udGV4dC5wb2ludGVyVG9JbnN0YW5jZSgpKTsKKyAgICAgICAgaml0Lm1vdmUo
c2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHBpbm5lZFJlZ3Mud2FzbUNvbnRleHRJbnN0YW5jZVBv
aW50ZXIpOworICAgICAgICBqaXQuc3RvcmVQdHIoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHZt
Lndhc21Db250ZXh0LnBvaW50ZXJUb0luc3RhbmNlKCkpOwogICAgIH0KICAgICBpZiAoc3RhY2tM
aW1pdEdQUklzQ2xvYmJlcmVkKQogICAgICAgICBqaXQubG9hZFB0cih2bS5hZGRyZXNzT2ZTb2Z0
U3RhY2tMaW1pdCgpLCBzdGFja0xpbWl0R1BSKTsKLSAgICBqaXQuc3RvcmVQdHIoc3RhY2tMaW1p
dEdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFdhc206Okluc3RhbmNlOjpv
ZmZzZXRPZkNhY2hlZFN0YWNrTGltaXQoKSkpOworICAgIGppdC5zdG9yZVB0cihzdGFja0xpbWl0
R1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIFdhc206
Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZFN0YWNrTGltaXQoKSkpOwogCi0gICAgaWYgKCEhbW9k
dWxlSW5mb3JtYXRpb24ubWVtb3J5KSB7CisjaWYgIUNQVShBUk0pIC8vIEFSTSBoYXMgbm8gcGlu
bmVkIHJlZ2lzdGVycyBmb3IgV2FzbSBNZW1vcnksIHNvIG5vIG5lZWQgdG8gc2V0IHRoZW0gdXAK
KyAgICBpZiAoISFpbnN0YW5jZSgpLT5pbnN0YW5jZSgpLm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0
aW9uKCkubWVtb3J5KSB7CiAgICAgICAgIEdQUlJlZyBiYXNlTWVtb3J5ID0gcGlubmVkUmVncy5i
YXNlTWVtb3J5UG9pbnRlcjsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5n
U2l6ZSA9IEludmFsaWRHUFJSZWc7CiAgICAgICAgIGF1dG8gbW9kZSA9IGluc3RhbmNlKCktPm1l
bW9yeU1vZGUoKTsKIAogICAgICAgICBpZiAoaXNBUk02NEUoKSkgewotICAgICAgICAgICAgaWYg
KG1vZGUgIT0gV2FzbTo6TWVtb3J5TW9kZTo6U2lnbmFsaW5nKQorICAgICAgICAgICAgaWYgKG1v
ZGUgPT0gV2FzbTo6TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcpCiAgICAgICAgICAgICAgICAg
c2NyYXRjaE9yQm91bmRzQ2hlY2tpbmdTaXplID0gcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1Np
emVSZWdpc3RlcjsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBzY3JhdGNoT3JC
b3VuZHNDaGVja2luZ1NpemUgPSBzdGFja0xpbWl0R1BSOwotICAgICAgICAgICAgaml0LmxvYWRQ
dHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFdhc206Okluc3RhbmNlOjpvZmZz
ZXRPZkNhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSgpKSwgc2NyYXRjaE9yQm91bmRzQ2hlY2tpbmdT
aXplKTsKKyAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3Jh
dGNoSlNSLnBheWxvYWRHUFIoKSwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkQm91bmRz
Q2hlY2tpbmdTaXplKCkpLCBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUpOwogICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgaWYgKG1vZGUgIT0gV2FzbTo6TWVtb3J5TW9kZTo6U2lnbmFs
aW5nKQotICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhz
Y3JhdGNoR1BSLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHNDaGVja2luZ1Np
emUoKSksIHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIpOworICAgICAgICAg
ICAgaWYgKG1vZGUgPT0gV2FzbTo6TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcpCisgICAgICAg
ICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hKU1IucGF5
bG9hZEdQUigpLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHNDaGVja2luZ1Np
emUoKSksIHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIpOwogICAgICAgICB9
CiAKLSAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIs
IFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7Ci0g
ICAgICAgIGppdC5jYWdlQ29uZGl0aW9uYWxseUFuZFVudGFnKEdpZ2FjYWdlOjpQcmltaXRpdmUs
IGJhc2VNZW1vcnksIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSwgc2NyYXRjaEdQUik7Cisg
ICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoSlNSLnBheWxv
YWRHUFIoKSwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNlTWVt
b3J5KTsKKyAgICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5QW5kVW50YWcoR2lnYWNhZ2U6OlBy
aW1pdGl2ZSwgYmFzZU1lbW9yeSwgc2NyYXRjaE9yQm91bmRzQ2hlY2tpbmdTaXplLCBzY3JhdGNo
SlNSLnBheWxvYWRHUFIoKSk7CiAgICAgfQorI2VuZGlmCiAKICAgICAvLyBXZSB1c2UgdGhpcyBj
YWxsZWUgdG8gaW5kaWNhdGUgaG93IHRvIHVud2luZCBwYXN0IHRoZXNlIHR5cGVzIG9mIGZyYW1l
czoKICAgICAvLyAxLiBXZSBuZWVkIHRvIGtub3cgd2hlcmUgdG8gZ2V0IGNhbGxlZSBzYXZlcy4K
QEAgLTM5MCw4ICs0MTIsOCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4g
V2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgIC8vIEZJWE1F
OiBDdXJyZW50bHkgd2UganVzdCBkbyBhbiBpbmRpcmVjdCBqdW1wLiBCdXQgd2Ugc2hvdWxkIHRl
YWNoIHRoZSBNb2R1bGUKICAgICAvLyBob3cgdG8gcmVwYXRjaCB1czoKICAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NTcwCi0gICAgaml0LmxvYWRQdHIo
ZW50cnlwb2ludExvYWRMb2NhdGlvbigpLCBzY3JhdGNoR1BSKTsKLSAgICBqaXQuY2FsbChzY3Jh
dGNoR1BSLCBXYXNtRW50cnlQdHJUYWcpOworICAgIGppdC5sb2FkUHRyKGVudHJ5cG9pbnRMb2Fk
TG9jYXRpb24oKSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOworICAgIGppdC5jYWxsKHNjcmF0
Y2hKU1IucGF5bG9hZEdQUigpLCBXYXNtRW50cnlQdHJUYWcpOwogCiAgICAgbWFyc2hhbGxKU1Jl
c3VsdChqaXQsIHR5cGVEZWZpbml0aW9uLCB3YXNtQ2FsbEluZm8sIHNhdmVkUmVzdWx0UmVnaXN0
ZXJzKTsKIApAQCAtNDIxLDcgKzQ0Myw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5
UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAg
aml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHRoaXMpLCBHUFJJbmZvOjpyZWdU
MCk7CiAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAjaWYgQ1BVKEFSTTY0RSkKLSAg
ICBqaXQudW50YWdSZXR1cm5BZGRyZXNzKHNjcmF0Y2hHUFIpOworICAgIGppdC51bnRhZ1JldHVy
bkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOwogI2VuZGlmCiAgICAgYXV0byBqdW1w
VG9Ib3N0Q2FsbFRodW5rID0gaml0Lmp1bXAoKTsKIApAQCAtNDI5LDcgKzQ1MSw3IEBAIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0Nh
bGxFbnRyeXBvaW50U2xvdygpCiAgICAgaWYgKFVOTElLRUxZKGxpbmtCdWZmZXIuZGlkRmFpbFRv
QWxsb2NhdGUoKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgbGlua0J1ZmZlci5s
aW5rKGp1bXBUb0hvc3RDYWxsVGh1bmssIENvZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+
KGV4ZWN1dGFibGUoKS0+ZW50cnlwb2ludEZvcihDb2RlRm9yQ2FsbCwgTXVzdENoZWNrQXJpdHkp
LmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyAgICBsaW5rQnVmZmVyLmxpbmsoanVtcFRvSG9zdENh
bGxUaHVuaywgQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4oZXhlY3V0YWJsZSgpLT5l
bnRyeXBvaW50Rm9yKENvZGVGb3JDYWxsLCBNdXN0Q2hlY2tBcml0eSkpKTsKICAgICBtX2pzQ2Fs
bEVudHJ5cG9pbnQgPSBGSU5BTElaRV9XQVNNX0NPREUobGlua0J1ZmZlciwgV2FzbUVudHJ5UHRy
VGFnLCAiSlMtPldhc20gSUMiKTsKICAgICByZXR1cm4gbV9qc0NhbGxFbnRyeXBvaW50LmNvZGUo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5R2xvYmFsQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYTIyMWIyZWNiNzEzOGM5YWZh
ZjFlMGI0MGY4ZjMwMWIyMDg5M2RkNS4uY2M3Y2JlM2U0Nzg5YjYzMWIwNDU5ZGNjZDFkYWQ3ZmYx
MTU1MDg5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAKQEAgLTE1OCw3ICsxNTgsNyBA
QCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJseUdsb2JhbCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIFJlZjxXYXNtOjpHbG9iYWw+IHdhc21HbG9i
YWwgPSBXYXNtOjpHbG9iYWw6OmNyZWF0ZSh0eXBlLCBtdXRhYmlsaXR5LCBpbml0aWFsVmFsdWUp
OwogICAgIEpTV2ViQXNzZW1ibHlHbG9iYWwqIGpzV2ViQXNzZW1ibHlHbG9iYWwgPSBKU1dlYkFz
c2VtYmx5R2xvYmFsOjp0cnlDcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgd2ViQXNzZW1ibHlHbG9i
YWxTdHJ1Y3R1cmUsIFdURk1vdmUod2FzbUdsb2JhbCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04odGhyb3dTY29wZSwgeyB9KTsKLSAgICBlbnN1cmVTdGlsbEFsaXZlSGVyZShiaXR3aXNlX2Nh
c3Q8dm9pZCo+KGluaXRpYWxWYWx1ZSkpOyAvLyBFbnN1cmUgdGhpcyBpcyBrZXB0IGFsaXZlIHdo
aWxlIGNyZWF0aW5nIEpTV2ViQXNzZW1ibHlHbG9iYWwuCisgICAgZW5zdXJlU3RpbGxBbGl2ZUhl
cmUoaW5pdGlhbFZhbHVlKTsgLy8gRW5zdXJlIHRoaXMgaXMga2VwdCBhbGl2ZSB3aGlsZSBjcmVh
dGluZyBKU1dlYkFzc2VtYmx5R2xvYmFsLgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNX
ZWJBc3NlbWJseUdsb2JhbCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAppbmRleCBiYzljYjA2OGQ4
YTM1NzRmMDZmMTEzMzU1NGNlZWVlNzJiMDNmYjU0Li45N2MzZWM5MjM5ZDViNDU4OTk5MTkyNWNi
NzkxODA2ZThiYmRhYzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCkBAIC01NTQsNyArNTU0LDcgQEAg
dm9pZCBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6aW5pdGlhbGl6ZUV4cG9ydHMoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKICAgICAgICAgICAgICAgICBKU1dlYkFzc2VtYmx5R2xvYmFs
KiBnbG9iYWxWYWx1ZSA9IEpTV2ViQXNzZW1ibHlHbG9iYWw6OnRyeUNyZWF0ZShnbG9iYWxPYmpl
Y3QsIHZtLCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5R2xvYmFsU3RydWN0dXJlKCksIFdURk1v
dmUoZ2xvYmFsUmVmKSk7CiAgICAgICAgICAgICAgICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24o
KTsKICAgICAgICAgICAgICAgICBtX2luc3RhbmNlLT5saW5rR2xvYmFsKHZtLCBnbG9iYWxJbmRl
eCwgZ2xvYmFsVmFsdWUpOwotICAgICAgICAgICAgICAgIGVuc3VyZVN0aWxsQWxpdmVIZXJlKGJp
dHdpc2VfY2FzdDx2b2lkKj4oaW5pdGlhbEJpdHMpKTsgLy8gRW5zdXJlIHRoaXMgaXMga2VwdCBh
bGl2ZSB3aGlsZSBjcmVhdGluZyBKU1dlYkFzc2VtYmx5R2xvYmFsLgorICAgICAgICAgICAgICAg
IGVuc3VyZVN0aWxsQWxpdmVIZXJlKGluaXRpYWxCaXRzKTsgLy8gRW5zdXJlIHRoaXMgaXMga2Vw
dCBhbGl2ZSB3aGlsZSBjcmVhdGluZyBKU1dlYkFzc2VtYmx5R2xvYmFsLgogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlLmgKaW5kZXggYTJlMDNmODEzMzY5ZGE4ZDAxZGIyYmYxMTc2ZDNmYWQ4MjdhNTFhNy4uYTU2
NDMyMTM0OGRmYjU5MzM5ZjE5MTM5NGI5YzU0ZTZiMjQzM2Q5NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVu
YWJsZS5oCkBAIC01ODksMTIgKzU4OSwxMiBAQAogI2VuZGlmCiAKICNpZiBVU0UoSlNWQUxVRTMy
XzY0KQotLyogRGlzYWJsZSBXZWJBc3NlbWJseSBvbiBhbGwgMzJiaXQgcGxhdGZvcm1zLiBJdHMg
TExJbnQgdGllciBjb3VsZAotICogd29yayBvbiB0aGVtLCBidXQgc3RpbGwgbmVlZHMgc29tZSBm
aW5hbCB0b3VjaGVzLiAqLworI2lmICFDUFUoQVJNKQogI3VuZGVmIEVOQUJMRV9XRUJBU1NFTUJM
WQogI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFkgMAogI3VuZGVmIEVOQUJMRV9XRUJBU1NFTUJM
WV9CM0pJVAogI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFlfQjNKSVQgMAorI2VuZGlmCiAjaWYg
KENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykpICYmIE9TKExJTlVYKQogLyogT24gQVJNdjcg
YW5kIE1JUFMgb24gTGludXggdGhlIEpJVCBpcyBlbmFibGVkIHVubGVzcyBleHBsaWNpdGx5IGRp
c2FibGVkLiAqLwogI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpCkBAIC03MTIsNyArNzEyLDcgQEAK
ICNkZWZpbmUgRU5BQkxFX1NBTVBMSU5HX1BST0ZJTEVSIDEKICNlbmRpZgogCi0jaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKSAmJiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkKKyNpZiBFTkFCTEUoV0VCQVNT
RU1CTFkpICYmIEhBVkUoTUFDSElORV9DT05URVhUKSAmJiBDUFUoQUREUkVTUzY0KQogI2RlZmlu
ZSBFTkFCTEVfV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSAxCiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGRmYTRiNjBjMzM0
NmUwNjAzOGNlYWJmOTJlY2E0Mjk0MWZmYTNlYmEuLjFhYzUyNWU3MGZiMGRhZTY1ZDgwNjg2N2Fl
OTFkOGQxOTk4Y2JjNmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMi0wNC0yMSAgWGFuIEzDs3BleiAgPHhhbkBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtKU0NdIEVuYWJsZSBXYXNtTExJbnQgb24gQVJNdjcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTI2MAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9y
dW4tanNjLXN0cmVzcy10ZXN0czogYWxsb3cgdG8gcnVuIHRoZSB3YXNtIHRlc3RzIG9uCisgICAg
ICAgIGFybXY3IGV2ZW4gd2l0aG91dCBqaXQgc3VwcG9ydCAoZm9yIG5vdykuCisKIDIwMjItMDQt
MjAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBHZW5lcmF0
ZSB3ZWxsLWZvcm1lZCBKU09OIGZvciBjb21waWxlX2NvbW1hbmRzLmpzb24KZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1bi1q
c2Mtc3RyZXNzLXRlc3RzCmluZGV4IDEwNTgzNDI0NDMzZWE5ZTFlNzE4MmViOTdjODNmOWQ0MmY4
MjgyNzEuLmQ3MzkzZTM0NTg1MjAzZWM0ZDUxNTUxZjc3ZDk1MjZkOGNlYzg0ZjQgMTAwNzU1Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0
cy9ydW4tanNjLXN0cmVzcy10ZXN0cwpAQCAtNTg1LDYgKzU4NSw4IEBAIGVuZAogJGhvc3RPUyA9
IGRldGVybWluZU9TIHVubGVzcyAkaG9zdE9TCiAkYXJjaGl0ZWN0dXJlID0gZGV0ZXJtaW5lQXJj
aGl0ZWN0dXJlIHVubGVzcyAkYXJjaGl0ZWN0dXJlCiAkaXNGVExQbGF0Zm9ybSA9ICEoJGFyY2hp
dGVjdHVyZSA9PSAieDg2IiB8fCAkYXJjaGl0ZWN0dXJlID09ICJhcm0iIHx8ICRhcmNoaXRlY3R1
cmUgPT0gIm1pcHMiIHx8ICRhcmNoaXRlY3R1cmUgPT0gInJpc2N2NjQiIHx8ICRob3N0T1MgPT0g
IndpbmRvd3MiIHx8ICRob3N0T1MgPT0gInBsYXlzdGF0aW9uIikKKyMgU3BlY2lhbCBjYXNlIGFy
bXY3LCB3ZSB3YW50IHRvIHJ1biB0aGUgd2FzbSB0ZXN0cyB0ZW1wb3JhcmlseSB3aXRob3V0IEIz
L0FpciBzdXBwb3J0CiskaXNXYXNtUGxhdGZvcm0gPSAkaXNGVExQbGF0Zm9ybSB8fCAkYXJjaGl0
ZWN0dXJlID09ICJhcm0iCiAKIGlmICRhcmNoaXRlY3R1cmUgPT0gIng4NiIKICAgICAjIFRoZSBK
SVQgaXMgdGVtcG9yYXJpbHkgZGlzYWJsZWQgb24gdGhpcyBwbGF0Zm9ybSBzaW5jZQpAQCAtMTcy
OSw3ICsxNzMxLDcgQEAgZW5kCiAKIGRlZiBydW5XZWJBc3NlbWJseQogICAgIHJldHVybiBpZiAh
JGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAh
JGlzV2FzbVBsYXRmb3JtCiAgICAgcnVuKCJkZWZhdWx0LXdhc20iLCAiLW0iLCAqRlRMX09QVElP
TlMpCiAgICAgaWYgJG1vZGUgIT0gInF1aWNrIgogICAgICAgICBydW4oIndhc20tbm8tY2ppdC15
ZXMtdGxzLWNvbnRleHQiLCAiLW0iLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9dHJ1ZSIs
ICooRlRMX09QVElPTlMgKyBOT19DSklUX09QVElPTlMpKQpAQCAtMTczNywxNSArMTczOSwxNyBA
QCBkZWYgcnVuV2ViQXNzZW1ibHkKICAgICAgICAgcnVuKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwg
Ii1tIiwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXVz
ZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICItLXZlcmlmeUdD
PXRydWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1uby10bHMtY29udGV4dCIs
ICItbSIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICpGVExfT1BUSU9OUykK
ICAgICAgICAgcnVuKCJ3YXNtLXNsb3ctbWVtb3J5IiwgIi1tIiwgIi0tdXNlV2ViQXNzZW1ibHlG
YXN0TWVtb3J5PWZhbHNlIiwgKkZUTF9PUFRJT05TKQotICAgICAgICBydW4oIndhc20tYjMiLCAi
LW0iLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICpG
VExfT1BUSU9OUykKLSAgICAgICAgcnVuKCJ3YXNtLWFpciIsICItbSIsICItLXVzZVdhc21MTElu
dD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1
ZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5
IiwgIi1tIiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIs
ICpGVExfT1BUSU9OUykgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8KKyAgICAgICAgaWYg
JGlzRlRMUGxhdGZvcm0KKyAgICAgICAgICAgIHJ1bigid2FzbS1iMyIsICItbSIsICItLXVzZVdh
c21MTEludD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKkZUTF9PUFRJT05TKQor
ICAgICAgICAgICAgcnVuKCJ3YXNtLWFpciIsICItbSIsICItLXVzZVdhc21MTEludD1mYWxzZSIs
ICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICpGVExf
T1BUSU9OUykKKyAgICAgICAgZW5kCiAgICAgZW5kCiBlbmQKIAogZGVmIHJ1bldlYkFzc2VtYmx5
SmV0U3RyZWFtMgogICAgIHJldHVybiBpZiAhJGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNG
VExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2FzbVBsYXRmb3JtCiAKICAgICBpZiAkbWVt
b3J5TGltaXRlZAogICAgICAgICBza2lwCkBAIC0xNzY0LDE1ICsxNzY4LDE3IEBAIGRlZiBydW5X
ZWJBc3NlbWJseUpldFN0cmVhbTIKICAgICAgICAgcnVuKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwg
Ii0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXZlcmlmeUdD
PXRydWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1uby10bHMtY29udGV4dCIs
ICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICpGVExfT1BUSU9OUykKICAgICAg
ICAgcnVuKCJ3YXNtLXNsb3ctbWVtb3J5IiwgIi0tdXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5PWZh
bHNlIiwgKkZUTF9PUFRJT05TKQotICAgICAgICBydW4oIndhc20tYjMiLCAiLS11c2VXYXNtTExJ
bnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICpGVExfT1BUSU9OUykKLSAgICAg
ICAgcnVuKCJ3YXNtLWFpciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6
aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAg
ICAgcnVuKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5IiwgIi0tY29sbGVjdENvbnRpbnVvdXNs
eT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykgaWYgc2hvdWxkQ29sbGVj
dENvbnRpbnVvdXNseT8KKyAgICAgICAgaWYgJEZUTFBsYXRmb3JtCisgICAgICAgICAgICBydW4o
Indhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxz
ZSIsICpGVExfT1BUSU9OUykKKyAgICAgICAgICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNt
TExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9u
PXRydWUiLCAqRlRMX09QVElPTlMpCisgICAgICAgIGVuZAogICAgIGVuZAogZW5kCiAKIGRlZiBy
dW5XZWJBc3NlbWJseVN1aXRlKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiAgICAgcmV0
dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0
dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KICAgICBtb2R1bGVzID0gRGlyW1dBU01URVNUU19QQVRI
ICsgIiouanMiXS5tYXAgeyB8ZnwgRmlsZS5iYXNlbmFtZShmKSB9CiAgICAgcHJlcGFyZUV4dHJh
QWJzb2x1dGVGaWxlcyhXQVNNVEVTVFNfUEFUSCwgWyJ3YXNtLmpzb24iXSkKICAgICBwcmVwYXJl
RXh0cmFSZWxhdGl2ZUZpbGVzKG1vZHVsZXMubWFwIHsgfGZ8ICIuLi8iICsgZiB9LCAkY29sbGVj
dGlvbikKQEAgLTE3ODgsOSArMTc5NCwxMSBAQCBkZWYgcnVuV2ViQXNzZW1ibHlTdWl0ZSgqb3B0
aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQogICAgICAgICBydW4oIndhc20tZWFnZXItamV0dGlz
b24iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09sZEFnZT10cnVlIiwgIi0tdXNl
UmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgIi0tdmVyaWZ5R0M9
dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAg
ICAgICBydW4oIndhc20tbm8tdGxzLWNvbnRleHQiLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRl
eHQ9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkK
ICAgICAgICAgcnVuKCJ3YXNtLXNsb3ctbWVtb3J5IiwgIi0tdXNlV2ViQXNzZW1ibHlGYXN0TWVt
b3J5PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykp
Ci0gICAgICAgIHJ1bigid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21C
QlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0
aW9ucykpCi0gICAgICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAi
LS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqKEZUTF9P
UFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuKCJ3YXNt
LWNvbGxlY3QtY29udGludW91c2x5IiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0t
dmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlv
bnMpKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5PworICAgICAgICBpZiAkaXNGVExQbGF0
Zm9ybQorICAgICAgICAgICAgcnVuKCJ3YXNtLWIzIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwg
Ii0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3Bl
Y2lmaWNPcHRpb25zKSkKKyAgICAgICAgICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJ
bnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRy
dWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKKyAgICAg
ICAgZW5kCiAgICAgZW5kCiBlbmQKIApAQCAtMTgwNiw3ICsxODE0LDkgQEAgZW5kCiBkZWYgcnVu
V2ViQXNzZW1ibHlXaXRoSGFybmVzcygqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQogICAg
IHJhaXNlIHVubGVzcyAkYmVuY2htYXJrLnRvX3MgPX4gL2hhcm5lc3NcLm0/anMvCiAgICAgcmV0
dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0
dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KKyAgICAjIFNraXAgdGhpcyBjb21wbGV0ZWx5IG9uIGFy
bXY3IGZvciBub3csIHNpbmNlIG1vc3Qgb2YgdGhlIHRlc3RzIGFyZSByZWxhdGVkIHRvIE9TUiBh
bmQgaXQncyBhIGJpdCBoYWlyeSB0byBza2lwIHRoZW0gbWFudWFsbHkKKyAgICByZXR1cm4gaWYg
JGFyY2hpdGVjdHVyZSA9PSAiYXJtIgogCiAgICAgd2FzbUZpbGVzID0gYWxsV2FzbUZpbGVzKCRj
b2xsZWN0aW9uKQogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMod2FzbUZpbGVzLm1hcCB7
IHxmfCBmLmJhc2VuYW1lIH0sICRjb2xsZWN0aW9uKQpAQCAtMTgxOCw5ICsxODI4LDExIEBAIGRl
ZiBydW5XZWJBc3NlbWJseVdpdGhIYXJuZXNzKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMp
CiAgICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgIi0tZm9yY2VD
b2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhl
Y3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9P
UFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuSGFybmVz
c1Rlc3QoIndhc20tbm8tdGxzLWNvbnRleHQiLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9
ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAg
ICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tc2xvdy1tZW1vcnkiLCAiLS11c2VXZWJBc3NlbWJs
eUZhc3RNZW1vcnk9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNP
cHRpb25zKSkKLSAgICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tYjMiLCAiLS11c2VXYXNtTExJ
bnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRp
b25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQotICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1u
by1haXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFi
bGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3Bl
Y2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tY29sbGVjdC1jb250
aW51b3VzbHkiLCAiLS1jb2xsZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVl
IiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpIGlmIHNob3Vs
ZENvbGxlY3RDb250aW51b3VzbHk/CisgICAgICAgIGlmICRpc0ZUTFBsYXRmb3JtCisgICAgICAg
ICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICIt
LXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNp
ZmljT3B0aW9ucykpCisgICAgICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1uby1haXIiLCAi
LS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRB
bGxvY2F0aW9uPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRp
b25zKSkKKyAgICAgICAgZW5kCiAgICAgZW5kCiBlbmQKIApAQCAtMTgzMCw3ICsxODQyLDcgQEAg
ZGVmIHJ1bldlYkFzc2VtYmx5RW1zY3JpcHRlbihtb2RlKQogICAgICAgICByZXR1cm4KICAgICBl
bmQKICAgICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRMUGxhdGZv
cm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQogICAgIHdhc20gPSAkYmVuY2htYXJr
LnRvX3Muc3ViISAnLmpzJywgJy53YXNtJwogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMo
W1BhdGhuYW1lKCcuLicpICsgd2FzbV0sICRjb2xsZWN0aW9uKQogICAgIHJ1bigiZGVmYXVsdC13
YXNtIiwgKkZUTF9PUFRJT05TKQpAQCAtMTgzOCw5ICsxODUwLDExIEBAIGRlZiBydW5XZWJBc3Nl
bWJseUVtc2NyaXB0ZW4obW9kZSkKICAgICAgICAgcnVuKCJ3YXNtLW5vLWNqaXQteWVzLXRscy1j
b250ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PXRydWUiLCAqKEZUTF9PUFRJT05T
ICsgTk9fQ0pJVF9PUFRJT05TKSkKICAgICAgICAgcnVuKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwg
Ii0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRv
bWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUi
LCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1uby10bHMtY29udGV4dCIsICItLXVz
ZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVu
KCJ3YXNtLWIzIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFs
c2UiLCAqRlRMX09QVElPTlMpCi0gICAgICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJ
bnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRy
dWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNs
eSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqRlRM
X09QVElPTlMpIGlmIHNob3VsZENvbGxlY3RDb250aW51b3VzbHk/CisgICAgICAgIGlmICRpc0ZU
TFBsYXRmb3JtCisgICAgICAgICAgICBydW4oIndhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFs
c2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICpGVExfT1BUSU9OUykKKyAgICAgICAgICAg
IHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemlu
Z0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqRlRMX09QVElPTlMpCisgICAgICAg
IGVuZAogICAgIGVuZAogZW5kCiAKQEAgLTE4NTAsNyArMTg2NCw3IEBAIGRlZiBydW5XZWJBc3Nl
bWJseVNwZWNUZXN0QmFzZShtb2RlLCBzcGVjSGFybmVzc1BhdGgsICpvcHRpb25hbFRlc3RTcGVj
aWZpY09wdGlvCiAgICAgICAgIHJldHVybgogICAgIGVuZAogICAgIHJldHVybiBpZiAhJGppdFRl
c3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2Fz
bVBsYXRmb3JtCiAgICAgcHJlcGFyZUV4dHJhQWJzb2x1dGVGaWxlcyhXQVNNVEVTVFNfUEFUSCwg
WyJ3YXNtLmpzb24iXSkKIAogICAgIG1vZHVsZXMgPSBEaXJbV0FTTVRFU1RTX1BBVEggKyAiKi5q
cyJdLm1hcCB7IHxmfCBGaWxlLmJhc2VuYW1lKGYpIH0KQEAgLTE4NjUsOSArMTg3OSwxMSBAQCBk
ZWYgcnVuV2ViQXNzZW1ibHlTcGVjVGVzdEJhc2UobW9kZSwgc3BlY0hhcm5lc3NQYXRoLCAqb3B0
aW9uYWxUZXN0U3BlY2lmaWNPcHRpbwogICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20t
bm8tY2ppdC15ZXMtdGxzLWNvbnRleHQiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNz
SnNQYXRoLCAgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PXRydWUiLCAqKEZUTF9PUFRJT05T
ICsgTk9fQ0pJVF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAg
IHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgbm9pc3lPdXRwdXRI
YW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVl
VG9PbGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRp
b249dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0
U3BlY2lmaWNPcHRpb25zKSkKICAgICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLW5vLXRs
cy1jb250ZXh0Iiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tdXNl
RmFzdFRMU0Zvcldhc21Db250ZXh0PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVz
dFNwZWNpZmljT3B0aW9ucykpCi0gICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1iMyIs
IG5vaXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICItLXVzZVdhc21MTEludD1m
YWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFs
VGVzdFNwZWNpZmljT3B0aW9ucykpCi0gICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1h
aXIiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAiLS11c2VXYXNtTExJ
bnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRy
dWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAg
IHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5Iiwgbm9pc3lP
dXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10
cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVj
aWZpY09wdGlvbnMpKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5PworICAgICAgaWYgJGlz
RlRMUGxhdGZvcm0KKyAgICAgICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1iMyIsIG5v
aXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICItLXVzZVdhc21MTEludD1mYWxz
ZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVz
dFNwZWNpZmljT3B0aW9ucykpCisgICAgICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20t
YWlyIiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tdXNlV2FzbUxM
SW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10
cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCisgICAg
ICBlbmQKICAgICBlbmQKIGVuZAogCkBAIC0xODg1LDcgKzE5MDEsNyBAQCBlbmQKIAogZGVmIHJ1
bldlYkFzc2VtYmx5TG93RXhlY3V0YWJsZU1lbW9yeSgqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRp
b25zKQogICAgIHJldHVybiBpZiAhJGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0
Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2FzbVBsYXRmb3JtCiAgICAgbW9kdWxlcyA9IERpcltX
QVNNVEVTVFNfUEFUSCArICIqLmpzIl0ubWFwIHsgfGZ8IEZpbGUuYmFzZW5hbWUoZikgfQogICAg
IHByZXBhcmVFeHRyYUFic29sdXRlRmlsZXMoV0FTTVRFU1RTX1BBVEgsIFsid2FzbS5qc29uIl0p
CiAgICAgcHJlcGFyZUV4dHJhUmVsYXRpdmVGaWxlcyhtb2R1bGVzLm1hcCB7IHxmfCAiLi4vIiAr
IGYgfSwgJGNvbGxlY3Rpb24pCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGI1YzM5N2IyODQ5ZDVlM2NmZjEzNGNjOTdjYzJlM2NkNjk3MzFi
ZjkuLmM4ZDBiMWIwOTNjZjkxNWUxYThmMDM0YWQzYTJlOTFjNjc3NzVlYzggMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMjItMDQtMjEgIFhhbiBMw7NwZXogIDx4YW5AaWdhbGlhLmNvbT4KKworICAgICAgICBb
SlNDXSBFbmFibGUgV2FzbUxMSW50IG9uIEFSTXY3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEyNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5h
bWUtc2VjdGlvbi5qczoKKyAgICAgICAgKiBzdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5q
czoKKyAgICAgICAgKiB3YXNtL3JlZ3Jlc3MvbGxpbnQtY2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1t
ZW1vcnkuanM6CisKIDIwMjItMDQtMTQgIENhaXRsaW4gUG90dGVyICA8Y2FpdHBAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbSlNDXSBTaGFkb3dSZWFsbSBnbG9iYWwgb2JqZWN0IGhhcyBhIG11dGFi
bGUgcHJvdG90eXBlCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxl
ci13YXNtLW5hbWUtc2VjdGlvbi5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVy
LXdhc20tbmFtZS1zZWN0aW9uLmpzCmluZGV4IDVjMjIwZmQ3NmNkYzVjNDBlNTljYzY2ZTU3MzQy
YzcyZDhjN2YzYWEuLjM2ODZjNjM5NzA0MDc4YmEyMGM0NDY4ZDlhZmU4Yjk3MzAyY2Y4OWEgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0
aW9uLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20tbmFtZS1z
ZWN0aW9uLmpzCkBAIC0xLDMgKzEsOCBAQAorLy8gVGhpcyB0ZXN0IGlzIHN0YXRpc3RpY2FsLCBh
bmQgd2l0aG91dCBvcHRpbWl6aW5nIFdhc20gdGllcnMgdGhlIGxpa2VsaWhvb2QKKy8vIG9mIGhp
dHRpbmcgdGhlIGRlZXBlc3QgZXhwZWN0ZWQgc3RhY2sgdHJhY2UgaXMgdmVyeSBsb3csIHNvIGRp
c2FibGUuCisvLyBGSVhNRTogcmVtb3ZlIHdoZW4gMzItYml0IHBsYXRmb3JtcyBzdXBwb3J0IG9w
dGltaXppbmcgV2FzbSB0aWVycworLy9AIHNraXAgaWYgWyJhcm0iLCAibWlwcyJdLmluY2x1ZGU/
KCRhcmNoaXRlY3R1cmUpCisvLwogLy9AIHJ1bkRlZmF1bHQKIAogLyoKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanMgYi9KU1Rlc3RzL3N0cmVzcy9z
YW1wbGluZy1wcm9maWxlci13YXNtLmpzCmluZGV4IDA2ZGYwMTI0OTU5NjllMjg0MjE4Nzc4Njkw
MTM1YmYwOTAxMGVjNmQuLjcyNDBjMDBkZTI3ZTNiZmQzZjk1NTc1MjMwMGNhMGRlMmY1OTRlZWMg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanMKKysr
IGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qcwpAQCAtMSwzICsxLDQg
QEAKKy8vQCBza2lwIGlmICRhcmNoaXRlY3R1cmUgPT0gImFybSIKIC8vQCBydW5EZWZhdWx0CiAK
IGlmIChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigpICYmICR2bS5pc1dhc21TdXBw
b3J0ZWQoKSkgewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL3JlZ3Jlc3MvbGxpbnQtY2FsbGVl
LXNhdmVzLXdpdGgtZmFzdC1tZW1vcnkuanMgYi9KU1Rlc3RzL3dhc20vcmVncmVzcy9sbGludC1j
YWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5qcwppbmRleCBmOWYwOWM0NzUxM2E2YzhkOTMy
NTM0ZjcyN2RiZmU3N2ZkMjUxZDQ0Li4xMWNmYjE2NGJiNjQxZWYzNGUyMWRiMDU2OTI3ZGNhMzY3
YzM3ZTZkIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vcmVncmVzcy9sbGludC1jYWxsZWUtc2F2
ZXMtd2l0aC1mYXN0LW1lbW9yeS5qcworKysgYi9KU1Rlc3RzL3dhc20vcmVncmVzcy9sbGludC1j
YWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5qcwpAQCAtMSwzICsxLDQgQEAKKy8vQCBza2lw
IGlmICRhcmNoaXRlY3R1cmUgPT0gImFybSIKIC8vQCByZXF1aXJlT3B0aW9ucygiLS11c2VXZWJB
c3NlbWJseUZhc3RNZW1vcnk9dHJ1ZSIpCiAKIGltcG9ydCAqIGFzIGFzc2VydCBmcm9tICcuLi9h
c3NlcnQuanMnOwo=
</data>
<flag name="commit-queue"
          id="486829"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458054</attachid>
            <date>2022-04-21 05:22:45 -0700</date>
            <delta_ts>2022-04-27 06:41:30 -0700</delta_ts>
            <desc>v8 - rebase/2</desc>
            <filename>bug-221260-20220421122243.patch</filename>
            <type>text/plain</type>
            <size>324173</size>
            <attacher name="Geza Lore">glore</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NDYyN2Q0MGRjYTA0MzBiZjNkMGQyYzlkYzNkMmY5OWE2ZTlmN2ZlLi41MTQyYjkzYWQyOTMwN2Mw
MTMzM2EyZmI1MmZiMmY5ZTQ2OTRmYzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMDcgQEAKKzIwMjItMDQtMjEgIFhhbiBMw7NwZXogIDx4YW5AaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbSlNDXSBFbmFibGUgV2FzbUxMSW50IG9uIEFSTXY3CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEyNjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBieSBHZXphIExvcmUgYW5kIFhh
biBMw7NwZXouCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBMTEludCB0aWVyIG9mIFdlYkFzc2Vt
Ymx5IGZvciBBUk12Ny4gQSBsb3Qgb2YgdGhlCisgICAgICAgIHdvcmsgd2lsbCBiZSBzaGFyZWQg
YnkgYW55IDMyYml0IHBvcnQsIGJ1dCB0aGUgb2ZmbGluZWFzc2VtYmxlcgorICAgICAgICBoYXMg
b25seSBiZWVuIHVwZGF0ZWQgZm9yIEFSTXY3IHNvIGZhci4KKworICAgICAgICBNYWluIGhpZ2hs
aWdodHM6CisKKyAgICAgICAgV2UgaGF2ZSBzcGxpdCB0aGUgV2ViQXNzZW1ibHkuYXNtIGZpbGUg
aW50byB0aHJlZSBjaHVua3MsCisgICAgICAgIGZvbGxvd2luZyB3aGF0IExvd0xldmVsSW50ZXJw
cmV0ZXIuYXNtIGRvZXMuIFRoZSBjb21tb24gY29kZQorICAgICAgICByZW1haW5zIGluIFdlYkFz
c2VtYmx5LmFzbSwgYW5kIDMyIGFuZCA2NGJpdCBzcGVjaWZpYyBjb2RlIChtb3N0bHkKKyAgICAg
ICAgb3Bjb2RlIGltcGxlbWVudGF0aW9ucykgZ29lcyBpbnRvIFdlYkFzc2VtYmx5MzJfNjQuYXNt
IGFuZAorICAgICAgICBXZWJBc3NlbWJseTY0LmFzbS4KKworICAgICAgICBXZSBoYXZlIGRlY2lk
ZWQgdG8gdXNlIGNvbnNlY3V0aXZlIGV2ZW4vb2RkIHBhaXJzIG9mIEdQUnMgZm9yIGV2ZXJ5Cisg
ICAgICAgIHR5cGUgb2Ygd2FzbSB2YWx1ZXMsIGV2ZW4gaWYgdGhleSBhcmUgMzJiaXQgKGkzMi9m
MzIpLCB3aXRoIHRoZSBvZGQKKyAgICAgICAgKGhpZ2hlcikgbnVtYmVyZWQgR1BSIGhvbGRpbmcg
dGhlIG1vcmUgc2lnbmlmaWNhbnQgaGFsZi4gMzJiaXQgdmFsdWVzCisgICAgICAgIGFyZSBoZWxk
IGluIHRoZSBldmVuIChsb3dlcikgbnVtYmVyZWQgcmVnaXN0ZXIuIFRoaXMgbWFrZXMgdGhlIGNv
ZGUKKyAgICAgICAgbXVjaCBzaW1wbGVyIGFuZCBhbGxvd3MgdXMgdG8gc2hhcmUgbW9yZSBjb2Rl
IHdpdGggdGhlIDY0Yml0IHZhcmlhbnQuCisgICAgICAgIFRoaXMgaXMgbW9zdGx5IHJlbGV2YW50
IGZvciBhcmd1bWVudCBwYXNzaW5nLCBhbmQgZ2l2ZW4gdGhhdCBldmVyeQorICAgICAgICB2YWx1
ZSBlbmRzIHVwIGluIHRoZSBzdGFjayBhbnl3YXkgd2UgZG8gbm90IHRoaW5rIGl0IGlzIHNpZ25p
ZmljYW50CisgICAgICAgIGZyb20gYSBwZXJmb3JtYW5jZSBQT1YuCisKKyAgICAgICAgV2UgYXJl
IHJldXNpbmcgSlNWYWx1ZVJlZ3MgdG8gaG9sZCBXYXNtIHZhbHVlcyB0b28uIE9idmlvdXNseSB0
aGV5CisgICAgICAgIGFyZSBub3QgcmVhbGx5IEpTVmFsdWVzLCBzbyBpdCBtaWdodCBtYWtlIHNl
bnNlIHRvIGNyZWF0ZSBhIGJhc2UKKyAgICAgICAgY2xhc3MgdGhhdCBjYW4gYmUgdXNlZCBmb3Ig
Ym90aCBKUyBhbmQgV2FzbSB2YWx1ZXMuCisKKyAgICAgICAgV2UgZG8gbm90IGhhdmUgZW5vdWdo
IHJlZ2lzdGVycyB0byBrZWVwIHRoaW5ncyBsaWtlIHRoZSBtZW1vcnkKKyAgICAgICAgYmFzZSBw
b2ludGVyIGFuZCBzaXplIGluIHBpbm5lZCByZWdpc3RlcnMsIHNvIHdlIGFyZSBmb3JjZWQgdG8K
KyAgICAgICAgbG9hZCB0aGVtIG9uIGVhY2ggdXNlLgorCisgICAgICAgIFdlIGRpc2FibGUgdGhl
ICdTaWduYWxpbmcnIG1lbW9yeSBtb2RlLCBzaW5jZSB0aGUgY3VycmVudAorICAgICAgICBpbXBs
ZW1lbnRhdGlvbiByZWxpZXMgb24gYmVpbmcgYWJsZSB0byBtcHJvdGVjdCBhIDJeMzIgKyByZWR6
b25lCisgICAgICAgIHJlZ2lvbiBvZiBtZW1vcnkuIFRoaXMgY2FuIGJlIGNoYW5nZWQgaW4gdGhl
IGZ1dHVyZSBidXQgaXQncyBub3QgYQorICAgICAgICBwcmlvcml0eSBhdCB0aGUgbW9tZW50Lgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogYXNzZW1ibGVyL0FSTXY3QXNz
ZW1ibGVyLmg6CisgICAgICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjp2Y3Z0X3NpZ25lZFRvRmxv
YXRpbmdQb2ludCk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaDoK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6Y29udmVydEludDMyVG9GbG9hdCk6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnRocmVhZFNhZmVQYXRjaGFibGVO
ZWFyQ2FsbCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmNhbGxPcGVyYXRp
b24pOgorICAgICAgICAqIGIzL0IzVmFsdWVSZXAuaDoKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVl
UmVwOjpWYWx1ZVJlcCk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwOgor
ICAgICAgICAoSlNDOjpXYXNtOjpCeXRlY29kZUR1bXBlcjo6Zm9ybWF0Q29uc3RhbnQgY29uc3Qp
OgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5oOiBhZGFwdCB0byBuZXcgY2FsbGVl
IHRhZ2dpbmcgZm9ybWF0LgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OmNhbGxlZSBjb25zdCk6
CisgICAgICAgIChKU0M6OkNhbGxGcmFtZTo6dW5zYWZlQ2FsbGVlIGNvbnN0KToKKyAgICAgICAg
KiBpbnRlcnByZXRlci9DYWxsZWVCaXRzLmg6IGFkZCB3YXNtIHRhZ2dpbmcgb2YgY2FsbGVlIHZh
bHVlcyBmb3IKKyAgICAgICAgMzJiaXQuCisgICAgICAgIChKU0M6OkNhbGxlZUJpdHM6OkNhbGxl
ZUJpdHMpOgorICAgICAgICAoSlNDOjpDYWxsZWVCaXRzOjpvcGVyYXRvcj0pOgorICAgICAgICAo
SlNDOjpDYWxsZWVCaXRzOjpib3hXYXNtKToKKyAgICAgICAgKEpTQzo6Q2FsbGVlQml0czo6aXNX
YXNtIGNvbnN0KToKKyAgICAgICAgKEpTQzo6Q2FsbGVlQml0czo6YXNXYXNtQ2FsbGVlIGNvbnN0
KToKKyAgICAgICAgKiBpbnRlcnByZXRlci9SZWdpc3Rlci5oOgorICAgICAgICAoSlNDOjpSZWdp
c3Rlcjo6dW5ib3hlZEZsb2F0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXI6OmFzYW5V
bnNhZmVVbmJveGVkRmxvYXQgY29uc3QpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMu
aDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjp1bmJveERvdWJsZSk6CisgICAgICAg
ICogaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmNwcDoKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXJB
dE9mZnNldExpc3Q6OlJlZ2lzdGVyQXRPZmZzZXRMaXN0KToKKyAgICAgICAgKiBqaXQvUmVnaXN0
ZXJBdE9mZnNldExpc3QuaDoKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXJBdE9mZnNldExpc3Q6OnNp
emVPZkFyZWFJbkJ5dGVzIGNvbnN0KToKKyAgICAgICAgKiBqaXQvUmVnaXN0ZXJTZXQuY3BwOgor
ICAgICAgICAoSlNDOjpSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKToKKyAgICAg
ICAgKiBsbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaDoKKyAgICAgICAgKiBsbGludC9Mb3dM
ZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L1dlYkFzc2VtYmx5LmFz
bToKKyAgICAgICAgKiBsbGludC9XZWJBc3NlbWJseTMyXzY0LmFzbTogQWRkZWQuCisgICAgICAg
ICogbGxpbnQvV2ViQXNzZW1ibHk2NC5hc206IEFkZGVkLgorICAgICAgICAqIG9mZmxpbmVhc20v
YXJtLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiOgorICAgICAgICAq
IG9mZmxpbmVhc20vcmVnaXN0ZXJzLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vcmlzYy5yYjoK
KyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKyAgICAgICAgKEpTQzo6d2FzbVVuYm94
ZWRGbG9hdCk6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjpKU1ZhbHVlKToKKyAgICAgICAgKiB3YXNtL1dhc21BaXJJUkdlbmVy
YXRvci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjp1c2VTaWduYWxp
bmdNZW1vcnkgY29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6QWly
SVJHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6ZW1pdENo
ZWNrQW5kUHJlcGFyZVBvaW50ZXIpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRv
cjo6YWRkQ2FsbCk6CisgICAgICAgICogd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHA6CisgICAg
ICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OnVzZVNpZ25hbGluZ01lbW9yeSBjb25zdCk6
CisgICAgICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OkIzSVJHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjphZGRBcmd1bWVudHMpOgorICAgICAgICAo
SlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcik6Cisg
ICAgICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6Om1lbW9yeUtpbmQpOgorICAgICAgICAo
SlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjphZGRDYWxsKToKKyAgICAgICAgKiB3YXNtL1dhc21C
aW5kaW5nLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6d2FzbVRvV2FzbSk6CisgICAgICAgICog
d2FzbS9XYXNtQ2FsbGVlLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRDYWxsZWU6OmNh
bGxlZVNhdmVSZWdpc3RlcnMpOgorICAgICAgICAqIHdhc20vV2FzbUNhbGxlZUdyb3VwLmNwcDoK
KyAgICAgICAgKEpTQzo6V2FzbTo6Q2FsbGVlR3JvdXA6OmlzU2FmZVRvUnVuKToKKyAgICAgICAg
KiB3YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5jcHA6CisgICAgICAgIChKU0M6Oldhc206Ompz
Q2FsbGluZ0NvbnZlbnRpb24pOgorICAgICAgICAoSlNDOjpXYXNtOjp3YXNtQ2FsbGluZ0NvbnZl
bnRpb24pOgorICAgICAgICAqIHdhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmg6CisgICAgICAg
IChKU0M6Oldhc206OkNhbGxJbmZvcm1hdGlvbjo6Y29tcHV0ZVJlc3VsdHNPZmZzZXRMaXN0KToK
KyAgICAgICAgKEpTQzo6V2FzbTo6V2FzbUNhbGxpbmdDb252ZW50aW9uOjpXYXNtQ2FsbGluZ0Nv
bnZlbnRpb24pOgorICAgICAgICAoSlNDOjpXYXNtOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb246Om1h
cnNoYWxsTG9jYXRpb25JbXBsIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6V2FzbUNhbGxp
bmdDb252ZW50aW9uOjptYXJzaGFsbExvY2F0aW9uIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2Fz
bTo6SlNDYWxsaW5nQ29udmVudGlvbjo6SlNDYWxsaW5nQ29udmVudGlvbik6CisgICAgICAgIChK
U0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxsTG9jYXRpb25JbXBsIGNvbnN0
KToKKyAgICAgICAgKEpTQzo6V2FzbTo6SlNDYWxsaW5nQ29udmVudGlvbjo6bWFyc2hhbGxMb2Nh
dGlvbiBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246OmNh
bGxJbmZvcm1hdGlvbkZvciBjb25zdCk6CisgICAgICAgICogd2FzbS9XYXNtRm9ybWF0Lmg6Cisg
ICAgICAgICogd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpJ
bmRleE9yTmFtZTo6SW5kZXhPck5hbWUpOgorICAgICAgICAoSlNDOjpXYXNtOjptYWtlU3RyaW5n
KToKKyAgICAgICAgKiB3YXNtL1dhc21JbmRleE9yTmFtZS5oOgorICAgICAgICAoSlNDOjpXYXNt
OjpJbmRleE9yTmFtZTo6SW5kZXhPck5hbWUpOgorICAgICAgICAoSlNDOjpXYXNtOjpJbmRleE9y
TmFtZTo6aXNFbXB0eSBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1lOjpp
c0luZGV4IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OmlzTmFtZSBj
b25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1lOjppbmRleCBjb25zdCk6Cisg
ICAgICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1lOjpuYW1lIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6V2FzbTo6SW5kZXhPck5hbWU6Om5hbWVTZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKiB3YXNt
L1dhc21JbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpXYXNtOjpJbnN0YW5jZTo6dXBkYXRlQ2Fj
aGVkTWVtb3J5KToKKyAgICAgICAgKiB3YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHA6CisgICAg
ICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjp2aXJ0dWFsUmVnaXN0ZXJGb3JXYXNtTG9j
YWwpOgorICAgICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9u
Rm9yQ2FsbGVyKToKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmNhbGxJbmZv
cm1hdGlvbkZvckNhbGxlZSk6CisgICAgICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjph
ZGRBcmd1bWVudHMpOgorICAgICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6YWRkTG9v
cCk6CisgICAgICAgICogd2FzbS9XYXNtTExJbnRQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6V2Fz
bTo6TExJbnRQbGFuOjpkaWRDb21wbGV0ZUNvbXBpbGF0aW9uKToKKyAgICAgICAgKiB3YXNtL1dh
c21NZW1vcnkuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpNZW1vcnlIYW5kbGU6On5NZW1vcnlI
YW5kbGUpOgorICAgICAgICAoSlNDOjpXYXNtOjpNZW1vcnk6OnRyeUNyZWF0ZSk6CisgICAgICAg
IChKU0M6Oldhc206Ok1lbW9yeTo6Z3Jvd1NoYXJlZCk6CisgICAgICAgIChKU0M6Oldhc206Ok1l
bW9yeTo6Z3Jvdyk6CisgICAgICAgIChKU0M6Oldhc206Ok1lbW9yeTo6Y29weSk6CisgICAgICAg
ICogd2FzbS9XYXNtTWVtb3J5Lmg6CisgICAgICAgICogd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRp
b24uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpQaW5uZWRSZWdpc3RlckluZm86OmdldCk6Cisg
ICAgICAgICogd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uaDoKKyAgICAgICAgKEpTQzo6V2Fz
bTo6UGlubmVkUmVnaXN0ZXJJbmZvOjp0b1NhdmUgY29uc3QpOgorICAgICAgICAqIHdhc20vV2Fz
bU1lbW9yeU1vZGUuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjptYWtlU3RyaW5nKToKKyAgICAg
ICAgKiB3YXNtL1dhc21NZW1vcnlNb2RlLmg6CisgICAgICAgICogd2FzbS9XYXNtT3Bjb2RlT3Jp
Z2luLmNwcDoKKyAgICAgICAgKiB3YXNtL1dhc21PcGNvZGVPcmlnaW4uaDoKKyAgICAgICAgKiB3
YXNtL1dhc21PcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6SlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKToKKyAgICAgICAgKiB3YXNtL1dhc21PcGVyYXRpb25zLmg6CisgICAgICAg
ICogd2FzbS9XYXNtUGFnZUNvdW50Lmg6CisgICAgICAgICogd2FzbS9XYXNtUGFyc2VyLmg6Cisg
ICAgICAgIChKU0M6Oldhc206OlBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVUludDMyKToKKyAg
ICAgICAgKEpTQzo6V2FzbTo6UGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VVSW50NjQpOgorICAg
ICAgICAqIHdhc20vV2FzbVNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpXQVNN
X1NMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX3Bv
cGNvdW50KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX3BvcGNvdW50bGwp
OgorICAgICAgICAoSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTMyX2Rpdl9zKToKKyAgICAg
ICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2kzMl9kaXZfdSk6CisgICAgICAgIChKU0M6
OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pMzJfcmVtX3MpOgorICAgICAgICAoSlNDOjpMTEludDo6
c2xvd19wYXRoX3dhc21faTMyX3JlbV91KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0
aF93YXNtX2k2NF9kaXZfcyk6CisgICAgICAgIChKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9p
NjRfZGl2X3UpOgorICAgICAgICAoSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTY0X3JlbV9z
KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2k2NF9yZW1fdSk6CisgICAg
ICAgICogd2FzbS9XYXNtU2xvd1BhdGhzLmg6CisgICAgICAgICogd2FzbS9XYXNtVmFsdWVMb2Nh
dGlvbi5jcHA6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmR1bXAgY29uc3Qp
OgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiB3YXNtL1dhc21WYWx1
ZUxvY2F0aW9uLmg6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OlZhbHVlTG9j
YXRpb24pOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjppc0dQUiBjb25zdCk6
CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzRlBSIGNvbnN0KToKKyAgICAg
ICAgKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6aXNTdGFjayBjb25zdCk6CisgICAgICAgIChK
U0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzU3RhY2tBcmd1bWVudCBjb25zdCk6CisgICAgICAg
IChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmpzciBjb25zdCk6CisgICAgICAgIChKU0M6Oldh
c206OlZhbHVlTG9jYXRpb246OmZwciBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVl
TG9jYXRpb246OnJlZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRp
b246OmlzUmVnIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2Nh
dGlvbjo6cmVnIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2Nh
dGlvbjo6Z3ByIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL2pzL0pTVG9XYXNtLmNw
cDoKKyAgICAgICAgKEpTQzo6V2FzbTo6bWFyc2hhbGxKU1Jlc3VsdCk6CisgICAgICAgIChKU0M6
Oldhc206OmNyZWF0ZUpTVG9XYXNtV3JhcHBlcik6CisgICAgICAgICogd2FzbS9qcy9XYXNtVG9K
Uy5jcHA6CisgICAgICAgIChKU0M6Oldhc206Ondhc21Ub0pTKToKKyAgICAgICAgKiB3YXNtL2pz
L1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUZ1bmN0
aW9uOjpwcmV2aW91c0luc3RhbmNlT2Zmc2V0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2ViQXNz
ZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3cpOgorICAgICAgICAqIHdhc20vanMv
V2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJl
Y29yZC5jcHA6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjppbml0aWFs
aXplRXhwb3J0cyk6CisKIDIwMjItMDQtMjAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxl
LmNvbT4KIAogICAgICAgICBbSlNDXSBSZW1vdmUgVGVtcFJlZ2lzdGVyU2V0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDE2NGY4
MzU4ZmEwZTU1NTNjYzc2ZWU5YzlmZDkzNDdhZjIwOGJhY2MuLmQ1OTU2NzM4YTE0OTVhNDA5ZjYz
ZWIxNGRmZTgxZDNmMTkyMjgyZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDQtMjEgIFhh
biBMw7NwZXogIDx4YW5AaWdhbGlhLmNvbT4KKworICAgICAgICBbSlNDXSBFbmFibGUgV2FzbUxM
SW50IG9uIEFSTXY3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjEyNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZS5oOiBlbmFibGUgV2ViQXNzZW1ibHkgb24gQVJNdjcu
CisKIDIwMjItMDQtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBNb3ZlIHRydWUgLyBmYWxzZSBBdG9tU3RyaW5ncyB0byBhIGNlbnRyYWwgbG9jYXRpb24gYW5k
IHJldXNlIHRoZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBjMGE5ZTJh
N2U4MDJkYjk0ODU3Njc0ZjI5Yjg3OTc2ZDljNTZlMjBkLi5hZWZmNjY2ZjYyMDQyMTRjZTA1NmZl
ZTJkYjdkOTliYzM1YjRmMGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC0yMDAsNiArMjAwLDggQEAgc2V0KExMSU5UX0FTTQogICAgIGxsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIzMl82NC5hc20KICAgICBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCiAgICAg
bGxpbnQvV2ViQXNzZW1ibHkuYXNtCisgICAgbGxpbnQvV2ViQXNzZW1ibHkzMl82NC5hc20KKyAg
ICBsbGludC9XZWJBc3NlbWJseTY0LmFzbQogKQogCiBzZXQoT0ZGTElORV9BU00KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAppbmRleCA5Y2E2
YTRhNmM4NDFjNjc2NTlmY2I1NDZjN2Y0NDJiZDdkMjg5ODYxLi42Yzc2ZTRlZjUyMzIyNGQ0ZjUx
MTE0NjZhMDEyYzNiYTZkNTgxNTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCkBAIC0xOTkxLDEwICsxOTkxLDEwIEBAIHB1YmxpYzoK
ICAgICAgICAgbV9mb3JtYXR0ZXIudmZwT3AoT1BfVkNNUCwgT1BfVkNNUGIsIHRydWUsIFZGUE9w
ZXJhbmQoNSksIHJkLCBWRlBPcGVyYW5kKDApKTsKICAgICB9CiAKLSAgICB2b2lkIHZjdnRfc2ln
bmVkVG9GbG9hdGluZ1BvaW50KEZQRG91YmxlUmVnaXN0ZXJJRCByZCwgRlBTaW5nbGVSZWdpc3Rl
cklEIHJtKQorICAgIHZvaWQgdmN2dF9zaWduZWRUb0Zsb2F0aW5nUG9pbnQoRlBEb3VibGVSZWdp
c3RlcklEIHJkLCBGUFNpbmdsZVJlZ2lzdGVySUQgcm0sIGJvb2wgdG9Eb3VibGUgPSB0cnVlKQog
ICAgIHsKICAgICAgICAgLy8gYm9vbGVhbiB2YWx1ZXMgYXJlIDY0Yml0ICh0b0ludCwgdW5zaWdu
ZWQsIHJvdW5kWmVybykKLSAgICAgICAgbV9mb3JtYXR0ZXIudmZwT3AoT1BfVkNWVF9GUElWRlAs
IE9QX1ZDVlRfRlBJVkZQYiwgdHJ1ZSwgdmN2dE9wKGZhbHNlLCBmYWxzZSwgZmFsc2UpLCByZCwg
cm0pOworICAgICAgICBtX2Zvcm1hdHRlci52ZnBPcChPUF9WQ1ZUX0ZQSVZGUCwgT1BfVkNWVF9G
UElWRlBiLCB0b0RvdWJsZSwgdmN2dE9wKGZhbHNlLCBmYWxzZSwgZmFsc2UpLCByZCwgcm0pOwog
ICAgIH0KIAogICAgIHZvaWQgdmN2dF9mbG9hdGluZ1BvaW50VG9TaWduZWQoRlBTaW5nbGVSZWdp
c3RlcklEIHJkLCBGUERvdWJsZVJlZ2lzdGVySUQgcm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCmluZGV4IDY1MDJmMGM1
M2MzZjZkNjIwODk3YzliMzQ2ZTcyOTEzMmIwYjI2MWIuLjBmMjk0NzY2YTQyMDM1ZTBmMjFkOGNi
NzY2ZTE2MjgwNGVkNjQ3YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCkBAIC00MSwxMSArNDEsMTEgQEAgY2xhc3Mg
TWFjcm9Bc3NlbWJsZXJBUk12NyA6IHB1YmxpYyBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyPEFzc2Vt
Ymxlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IG5lYXJKdW1wUmFu
Z2UgPSAxNiAqIE1COwogCi1wcml2YXRlOgogICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJ
RCBkYXRhVGVtcFJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjppcDsKICAgICBzdGF0aWMgY29uc3Rl
eHByIFJlZ2lzdGVySUQgYWRkcmVzc1RlbXBSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6cjY7CiAK
LSAgICBzdGF0aWMgY29uc3RleHByIEFSTVJlZ2lzdGVyczo6RlBEb3VibGVSZWdpc3RlcklEIGZw
VGVtcFJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpkNzsKK3ByaXZhdGU6CisgICAgc3RhdGljIGNv
bnN0ZXhwciBBUk1SZWdpc3RlcnM6OkZQRG91YmxlUmVnaXN0ZXJJRCBmcFRlbXBSZWdpc3RlciA9
IEFSTVJlZ2lzdGVyczo6ZDE1OwogICAgIGlubGluZSBBUk1SZWdpc3RlcnM6OkZQU2luZ2xlUmVn
aXN0ZXJJRCBmcFRlbXBSZWdpc3RlckFzU2luZ2xlKCkgeyByZXR1cm4gQVJNUmVnaXN0ZXJzOjph
c1NpbmdsZShmcFRlbXBSZWdpc3Rlcik7IH0KIAogICAgIC8vIEluIHRoZSBUaHVtYi0yIGluc3Ry
dWN0aW9uIHNldCwgaW5zdHJ1Y3Rpb25zIG9wZXJhdGluZyBvbmx5IG9uIHJlZ2lzdGVycyByMC1y
NyBjYW4gb2Z0ZW4KQEAgLTE0NjQsNiArMTQ2NCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIENSQVNI
KCk7CiAgICAgfQogCisgICAgdm9pZCBjb252ZXJ0SW50MzJUb0Zsb2F0KFJlZ2lzdGVySUQgc3Jj
LCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLnZtb3YoZnBU
ZW1wUmVnaXN0ZXIsIHNyYywgc3JjKTsKKyAgICAgICAgbV9hc3NlbWJsZXIudmN2dF9zaWduZWRU
b0Zsb2F0aW5nUG9pbnQoZGVzdCwgZnBUZW1wUmVnaXN0ZXJBc1NpbmdsZSgpLCAvKiB0b0RvdWJs
ZTogKi8gZmFsc2UpOworICAgIH0KKwogICAgIHZvaWQgY29udmVydEludDMyVG9Eb3VibGUoUmVn
aXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJs
ZXIudm1vdihmcFRlbXBSZWdpc3Rlciwgc3JjLCBzcmMpOwpAQCAtMjI5NSw2ICsyMzAxLDE0IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIENhbGwobV9hc3NlbWJsZXIuYigpLCBDYWxsOjpMaW5r
YWJsZU5lYXJUYWlsKTsKICAgICB9CiAKKyAgICAvLyBGSVhNRTogd2h5IGlzIHRoaXMgdGhlIHNh
bWUgdGhhbiBuZWFyQ2FsbCgpIGluIEFSTTY0PyBpcyBpdCByaWdodD8KKyAgICBBTFdBWVNfSU5M
SU5FIENhbGwgdGhyZWFkU2FmZVBhdGNoYWJsZU5lYXJDYWxsKCkKKyAgICB7CisgICAgICAgIGlu
dmFsaWRhdGVBbGxUZW1wUmVnaXN0ZXJzKCk7CisgICAgICAgIG1vdmVGaXhlZFdpZHRoRW5jb2Rp
bmcoVHJ1c3RlZEltbTMyKDApLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgcmV0dXJuIENh
bGwobV9hc3NlbWJsZXIuYmx4KGRhdGFUZW1wUmVnaXN0ZXIpLCBDYWxsOjpMaW5rYWJsZU5lYXIp
OworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUgQ2FsbCBjYWxsKFB0clRhZykKICAgICB7CiAg
ICAgICAgIG1vdmVGaXhlZFdpZHRoRW5jb2RpbmcoVHJ1c3RlZEltbTMyKDApLCBkYXRhVGVtcFJl
Z2lzdGVyKTsKQEAgLTIzMTksNiArMjMzMywxMiBAQCBwdWJsaWM6CiAgICAgQUxXQVlTX0lOTElO
RSBDYWxsIGNhbGwoUmVnaXN0ZXJJRCB0YXJnZXQsIFJlZ2lzdGVySUQgY2FsbFRhZykgeyByZXR1
cm4gVU5VU0VEX1BBUkFNKGNhbGxUYWcpLCBjYWxsKHRhcmdldCwgTm9QdHJUYWcpOyB9CiAgICAg
QUxXQVlTX0lOTElORSBDYWxsIGNhbGwoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGNhbGxU
YWcpIHsgcmV0dXJuIFVOVVNFRF9QQVJBTShjYWxsVGFnKSwgY2FsbChhZGRyZXNzLCBOb1B0clRh
Zyk7IH0KIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBjYWxsT3BlcmF0aW9uKGNvbnN0IEZ1bmN0
aW9uUHRyPE9wZXJhdGlvblB0clRhZz4gb3BlcmF0aW9uKQorICAgIHsKKyAgICAgICAgbW92ZShU
cnVzdGVkSW1tUHRyKG9wZXJhdGlvbi5leGVjdXRhYmxlQWRkcmVzcygpKSwgYWRkcmVzc1RlbXBS
ZWdpc3Rlcik7CisgICAgICAgIGNhbGwoYWRkcmVzc1RlbXBSZWdpc3RlciwgT3BlcmF0aW9uUHRy
VGFnKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgcmV0KCkKICAgICB7CiAgICAg
ICAgIG1fYXNzZW1ibGVyLmJ4KGxpbmtSZWdpc3Rlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
VmFsdWVSZXAuaAppbmRleCAxNTdiYzg4NjgyMzEyYjFhMWU5ZGE3MzljMDgyYzBkNmM0NzdkMzI2
Li43NjkzOGM2ZmVjYWJmZDI3MTI3N2FiZWUzOWZlYTkzYTkyZjdiNjYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1ZhbHVlUmVwLmgKQEAgLTEyNiw5ICsxMjYsMTMgQEAgcHVibGljOgogICAg
IFZhbHVlUmVwKFdhc206OlZhbHVlTG9jYXRpb24gbG9jYXRpb24pCiAgICAgewogICAgICAgICBz
d2l0Y2ggKGxvY2F0aW9uLmtpbmQoKSkgewotICAgICAgICBjYXNlIFdhc206OlZhbHVlTG9jYXRp
b246OktpbmQ6OlJlZ2lzdGVyOgorICAgICAgICBjYXNlIFdhc206OlZhbHVlTG9jYXRpb246Oktp
bmQ6OkdQUlJlZ2lzdGVyOgogICAgICAgICAgICAgbV9raW5kID0gUmVnaXN0ZXI7Ci0gICAgICAg
ICAgICB1LnJlZyA9IGxvY2F0aW9uLnJlZygpOworICAgICAgICAgICAgdS5yZWcgPSBsb2NhdGlv
bi5qc3IoKS5wYXlsb2FkR1BSKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBX
YXNtOjpWYWx1ZUxvY2F0aW9uOjpLaW5kOjpGUFJSZWdpc3RlcjoKKyAgICAgICAgICAgIG1fa2lu
ZCA9IFJlZ2lzdGVyOworICAgICAgICAgICAgdS5yZWcgPSBsb2NhdGlvbi5mcHIoKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdhc206OlZhbHVlTG9jYXRpb246OktpbmQ6OlN0
YWNrOgogICAgICAgICAgICAgbV9raW5kID0gU3RhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcAppbmRleCBkNTRjNzRmYzYzYzY1MGUw
OGQ3NGY0Nzk3YzkxMTFkMzU2MjY3NmJiLi43YjNmNWZjOWZiMjE3ZjgyM2Q1YTQ2NDQ1NmU1MWQy
ZTI0OGExNDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0
ZWNvZGVEdW1wZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRl
Y29kZUR1bXBlci5jcHAKQEAgLTQxMyw3ICs0MTMsNyBAQCBDU3RyaW5nIEJ5dGVjb2RlRHVtcGVy
Ojpmb3JtYXRDb25zdGFudChUeXBlIHR5cGUsIHVpbnQ2NF90IGNvbnN0YW50KSBjb25zdAogICAg
ICAgICBpZiAoaXNGdW5jcmVmKHR5cGUpIHx8IGlzRXh0ZXJucmVmKHR5cGUpKSB7CiAgICAgICAg
ICAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKGNvbnN0YW50KSA9PSBqc051bGwoKSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gIm51bGwiOwotICAgICAgICAgICAgcmV0dXJuIHRvQ1N0cmluZyhSYXdQ
b2ludGVyKGJpdHdpc2VfY2FzdDx2b2lkKj4oY29uc3RhbnQpKSk7CisgICAgICAgICAgICByZXR1
cm4gdG9DU3RyaW5nKFJhd1BvaW50ZXIoYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDx1
aW50cHRyX3Q+KGNvbnN0YW50KSkpKTsKICAgICAgICAgfQogCiAgICAgICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvQ2FsbEZyYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
Q2FsbEZyYW1lLmgKaW5kZXggZGUyY2FmNTRkNzdiZTU0YjZkMDUxYmVhNDNhODI3MGZiMTJkNjNj
Ny4uOTc0NTllM2ZkNjg3NjVmMzEyNjZmZWUxNzBhNTQzNjY2YjA3NzIxNyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaApAQCAtMTY3LDggKzE2Nyw4
IEBAIG5hbWVzcGFjZSBKU0MgIHsKICAgICAgICAgLy8gdG8gc2VlIGlmIGl0J3MgYSBjZWxsLCBh
bmQgaWYgaXQncyBub3QsIHdlIHRocm93IGFuIGV4Y2VwdGlvbi4KICAgICAgICAgaW5saW5lIEpT
VmFsdWUgZ3VhcmFudGVlZEpTVmFsdWVDYWxsZWUoKSBjb25zdDsKICAgICAgICAgaW5saW5lIEpT
T2JqZWN0KiBqc0NhbGxlZSgpIGNvbnN0OwotICAgICAgICBDYWxsZWVCaXRzIGNhbGxlZSgpIGNv
bnN0IHsgcmV0dXJuIENhbGxlZUJpdHModGhpc1tzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNs
b3Q6OmNhbGxlZSldLnBvaW50ZXIoKSk7IH0KLSAgICAgICAgU1VQUFJFU1NfQVNBTiBDYWxsZWVC
aXRzIHVuc2FmZUNhbGxlZSgpIGNvbnN0IHsgcmV0dXJuIENhbGxlZUJpdHModGhpc1tzdGF0aWNf
Y2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSldLmFzYW5VbnNhZmVQb2ludGVyKCkpOyB9
CisgICAgICAgIENhbGxlZUJpdHMgY2FsbGVlKCkgY29uc3QgeyByZXR1cm4gQ2FsbGVlQml0cyh0
aGlzW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0udW5ib3hlZEludDY0
KCkpOyB9CisgICAgICAgIFNVUFBSRVNTX0FTQU4gQ2FsbGVlQml0cyB1bnNhZmVDYWxsZWUoKSBj
b25zdCB7IHJldHVybiBDYWxsZWVCaXRzKHRoaXNbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVT
bG90OjpjYWxsZWUpXS5hc2FuVW5zYWZlVW5ib3hlZEludDY0KCkpOyB9CiAgICAgICAgIENvZGVC
bG9jayogY29kZUJsb2NrKCkgY29uc3Q7CiAgICAgICAgIENvZGVCbG9jayoqIGFkZHJlc3NPZkNv
ZGVCbG9jaygpIGNvbnN0IHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxDb2RlQmxvY2sqKj4odGhpcyAr
IHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y29kZUJsb2NrKSk7IH0KICAgICAgICAg
aW5saW5lIFNVUFBSRVNTX0FTQU4gQ29kZUJsb2NrKiB1bnNhZmVDb2RlQmxvY2soKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsZWVCaXRz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbGVlQml0cy5oCmluZGV4
IDE4YmI3ZWY3ZmE4YzdjMzlmM2Q3MWJhOTk2NjIyYjFkNmQ3OTFmNTguLmRlYTNhZTU1ODE2MDNj
Y2UzZGE2NWJjNzNhOTRmMTkxNTczYTFiN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0NhbGxlZUJpdHMuaApAQCAtMzksMTEgKzM5LDIxIEBAIGNsYXNzIEpTQ2Vs
bDsKIGNsYXNzIENhbGxlZUJpdHMgewogcHVibGljOgogICAgIENhbGxlZUJpdHMoKSA9IGRlZmF1
bHQ7Ci0gICAgQ2FsbGVlQml0cyh2b2lkKiBwdHIpIDogbV9wdHIocHRyKSB7IH0gCisgICAgQ2Fs
bGVlQml0cyhpbnQ2NF90IHZhbHVlKQorI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIDogbV9w
dHIgeyByZWludGVycHJldF9jYXN0PHZvaWQqPih2YWx1ZSkgfQorI2VsaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICAgICAgOiBtX3B0ciB7IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KEpTVmFsdWU6
OmRlY29kZSh2YWx1ZSkucGF5bG9hZCgpKSB9CisgICAgICAgICwgbV90YWcgeyBKU1ZhbHVlOjpk
ZWNvZGUodmFsdWUpLnRhZygpIH0KKyNlbmRpZgorICAgIHsgfQogCiAgICAgQ2FsbGVlQml0cyYg
b3BlcmF0b3I9KEpTQ2VsbCogY2VsbCkKICAgICB7CiAgICAgICAgIG1fcHRyID0gY2VsbDsKKyNp
ZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBtX3RhZyA9IEpTVmFsdWU6OkNlbGxUYWc7Cisj
ZW5kaWYKICAgICAgICAgQVNTRVJUKGlzQ2VsbCgpKTsKICAgICAgICAgcmV0dXJuICp0aGlzOwog
ICAgIH0KQEAgLTUxLDE4ICs2MSwyNCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
KQogICAgIHN0YXRpYyB2b2lkKiBib3hXYXNtKFdhc206OkNhbGxlZSogY2FsbGVlKQogICAgIHsK
LSAgICAgICAgQ2FsbGVlQml0cyByZXN1bHQocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocmVpbnRl
cnByZXRfY2FzdDx1aW50cHRyX3Q+KGNhbGxlZSkgfCBKU1ZhbHVlOjpXYXNtVGFnKSk7CisjaWYg
VVNFKEpTVkFMVUU2NCkKKyAgICAgICAgQ2FsbGVlQml0cyByZXN1bHQgeyByZWludGVycHJldF9j
YXN0PGludDY0X3Q+KGNhbGxlZSkgfCBKU1ZhbHVlOjpXYXNtVGFnIH07CiAgICAgICAgIEFTU0VS
VChyZXN1bHQuaXNXYXNtKCkpOwogICAgICAgICByZXR1cm4gcmVzdWx0LnJhd1B0cigpOworI2Vs
aWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgcmV0dXJuIGNhbGxlZTsgLy8gVGhlIHBvaW50
ZXIgaXMgYXMgaXMsIGJ1dCB0aGUgY29ycmVzcG9uZGluZyB0YWcgZmllbGQgbmVlZHMgdG8gYmUg
c2V0IHRvIFdhc21UYWcgc2VwYXJhdGVseS4KKyNlbmRpZgogICAgIH0KICNlbmRpZgogCiAgICAg
Ym9vbCBpc1dhc20oKSBjb25zdAogICAgIHsKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAg
ICAgIHJldHVybiAocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG1fcHRyKSAmIEpTVmFsdWU6
Oldhc21NYXNrKSA9PSBKU1ZhbHVlOjpXYXNtVGFnOwotI2Vsc2UKKyNpZiAhRU5BQkxFKFdFQkFT
U0VNQkxZKQogICAgICAgICByZXR1cm4gZmFsc2U7CisjZWxpZiBVU0UoSlNWQUxVRTY0KQorICAg
ICAgICByZXR1cm4gKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtX3B0cikgJiBKU1ZhbHVl
OjpXYXNtTWFzaykgPT0gSlNWYWx1ZTo6V2FzbVRhZzsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQp
CisgICAgICAgIHJldHVybiBtX3RhZyA9PSBKU1ZhbHVlOjpXYXNtVGFnOwogI2VuZGlmCiAgICAg
fQogICAgIGJvb2wgaXNDZWxsKCkgY29uc3QgeyByZXR1cm4gIWlzV2FzbSgpOyB9CkBAIC03Nywx
NCArOTMsMjEgQEAgcHVibGljOgogICAgIFdhc206OkNhbGxlZSogYXNXYXNtQ2FsbGVlKCkgY29u
c3QKICAgICB7CiAgICAgICAgIEFTU0VSVChpc1dhc20oKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkK
ICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2FzbTo6Q2FsbGVlKj4ocmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KG1fcHRyKSAmIH5KU1ZhbHVlOjpXYXNtVGFnKTsKKyNlbGlmIFVT
RShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFdhc206OkNh
bGxlZSo+KG1fcHRyKTsKKyNlbmRpZgogICAgIH0KICNlbmRpZgogCiAgICAgdm9pZCogcmF3UHRy
KCkgY29uc3QgeyByZXR1cm4gbV9wdHI7IH0KLSAgICAKKwogcHJpdmF0ZToKICAgICB2b2lkKiBt
X3B0ciB7IG51bGxwdHIgfTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIHVpbnQzMl90IG1f
dGFnIHsgSlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZyB9OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9S
ZWdpc3Rlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmgK
aW5kZXggZDg3OWM5MGJlMzExNzg2MjMzZjUyNmIxODNlZGYxY2IzYzdiYjM4YS4uNDYxODEzYzQx
ZDMzNzJkZmQ0YjE4MTIzMjkxNTE5NDEyMWJlMmFkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmgKQEAgLTcyLDYgKzcyLDEwIEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBpbnQ2NF90IHVuYm94ZWRJbnQ2NCgpIGNvbnN0OwogICAgICAgICBpbnQ2
NF90IGFzYW5VbnNhZmVVbmJveGVkSW50NjQoKSBjb25zdDsKICAgICAgICAgYm9vbCB1bmJveGVk
Qm9vbGVhbigpIGNvbnN0OworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICAgICAgZmxvYXQgdW5ib3hlZEZsb2F0KCkgY29uc3Q7CisgICAgICAgIGZsb2F0
IGFzYW5VbnNhZmVVbmJveGVkRmxvYXQoKSBjb25zdDsKKyNlbmRpZgogICAgICAgICBkb3VibGUg
dW5ib3hlZERvdWJsZSgpIGNvbnN0OwogICAgICAgICBkb3VibGUgYXNhblVuc2FmZVVuYm94ZWRE
b3VibGUoKSBjb25zdDsKICAgICAgICAgSlNDZWxsKiB1bmJveGVkQ2VsbCgpIGNvbnN0OwpAQCAt
MTg4LDYgKzE5MiwxOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgcmV0dXJuICEhcGF5bG9h
ZCgpOwogICAgIH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgVVNFKEpTVkFMVUUzMl82
NCkKKyAgICBBTFdBWVNfSU5MSU5FIGZsb2F0IFJlZ2lzdGVyOjp1bmJveGVkRmxvYXQoKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxmbG9hdD4ocGF5bG9hZCgpKTsK
KyAgICB9CisKKyAgICBTVVBQUkVTU19BU0FOIEFMV0FZU19JTkxJTkUgZmxvYXQgUmVnaXN0ZXI6
OmFzYW5VbnNhZmVVbmJveGVkRmxvYXQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGJp
dHdpc2VfY2FzdDxmbG9hdD4ocGF5bG9hZCgpKTsKKyAgICB9CisjZW5kaWYKKwogICAgIEFMV0FZ
U19JTkxJTkUgZG91YmxlIFJlZ2lzdGVyOjp1bmJveGVkRG91YmxlKCkgY29uc3QKICAgICB7CiAg
ICAgICAgIHJldHVybiB1Lm51bWJlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2Vt
Ymx5SGVscGVycy5oCmluZGV4IDRjYTY1YTQ3MTE5M2I2ZWUxZDc3ZjJlM2I3ODFmN2NhZWU0YTFi
NjEuLmIyODU1NDU1YzA0MzI4ZTc2ZGVlYWQwNjUyMzk1YWFhMGYwYTYyOTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAtMTQxNiw3ICsxNDE2LDEw
IEBAIHB1YmxpYzoKICAgICAgICAgaml0QXNzZXJ0SXNKU0RvdWJsZShncHIpOwogICAgICAgICBy
ZXR1cm4gdW5ib3hEb3VibGVXaXRob3V0QXNzZXJ0aW9ucyhncHIsIHJlc3VsdEdQUiwgZnByLCBt
b2RlKTsKICAgICB9Ci0gICAgCisgICAgdm9pZCB1bmJveERvdWJsZShKU1ZhbHVlUmVncyByZWdz
LCBGUFJSZWcgZnByKQorICAgIHsKKyAgICAgICAgdW5ib3hEb3VibGUocmVncy50YWdHUFIoKSwg
cmVncy5wYXlsb2FkR1BSKCksIGZwcik7CisgICAgfQogICAgIHZvaWQgYm94RG91YmxlKEZQUlJl
ZyBmcHIsIEpTVmFsdWVSZWdzIHJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSA9IEhhdmVUYWdS
ZWdpc3RlcnMpCiAgICAgewogICAgICAgICBib3hEb3VibGUoZnByLCByZWdzLmdwcigpLCBtb2Rl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNl
dExpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlz
dC5jcHAKaW5kZXggZWQ4MzAzZGU0MWI1NzRhZmNlOTI4OTdjZjBhOWQ1YWRlZjQwODExNS4uYmFk
MjAyOWY3Y2Y5MGU1MWY1MDNlYzZlNjllYzk1ODI5YzM2OTYzYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5jcHAKQEAgLTM5LDE4ICsz
OSw0MiBAQCBSZWdpc3RlckF0T2Zmc2V0TGlzdDo6UmVnaXN0ZXJBdE9mZnNldExpc3QoKSB7IH0K
IFJlZ2lzdGVyQXRPZmZzZXRMaXN0OjpSZWdpc3RlckF0T2Zmc2V0TGlzdChSZWdpc3RlclNldCBy
ZWdpc3RlclNldCwgT2Zmc2V0QmFzZVR5cGUgb2Zmc2V0QmFzZVR5cGUpCiAgICAgOiBtX3JlZ2lz
dGVycyhyZWdpc3RlclNldC5udW1iZXJPZlNldFJlZ2lzdGVycygpKQogewotICAgIHNpemVfdCBu
dW1iZXJPZlJlZ2lzdGVycyA9IHJlZ2lzdGVyU2V0Lm51bWJlck9mU2V0UmVnaXN0ZXJzKCk7Ci0g
ICAgcHRyZGlmZl90IG9mZnNldCA9IDA7Ci0gICAgCi0gICAgaWYgKG9mZnNldEJhc2VUeXBlID09
IEZyYW1lUG9pbnRlckJhc2VkKQotICAgICAgICBvZmZzZXQgPSAtKHN0YXRpY19jYXN0PHB0cmRp
ZmZfdD4obnVtYmVyT2ZSZWdpc3RlcnMpICogc2l6ZW9mKENQVVJlZ2lzdGVyKSk7CisgICAgY29u
c3RleHByIHNpemVfdCBTaXplT2ZHUFIgPSBzaXplb2YoQ1BVUmVnaXN0ZXIpOworICAgIGNvbnN0
ZXhwciBzaXplX3QgU2l6ZU9mRlBSID0gc2l6ZW9mKGRvdWJsZSk7CiAKKyNpZiBVU0UoSlNWQUxV
RTY0KQorICAgIHN0YXRpY19hc3NlcnQoU2l6ZU9mR1BSID09IFNpemVPZkZQUik7CisgICAgc2l6
ZV90IG51bWJlck9mUmVncyA9IHJlZ2lzdGVyU2V0Lm51bWJlck9mU2V0UmVnaXN0ZXJzKCk7Cisg
ICAgbV9zaXplT2ZBcmVhSW5CeXRlcyA9IG51bWJlck9mUmVncyAqIFNpemVPZkdQUjsKKyNlbGlm
IFVTRShKU1ZBTFVFMzJfNjQpCisgICAgc3RhdGljX2Fzc2VydCgyICogU2l6ZU9mR1BSID09IFNp
emVPZkZQUik7CisgICAgc2l6ZV90IG51bWJlck9mR1BScyA9IHJlZ2lzdGVyU2V0Lm51bWJlck9m
U2V0R1BScygpOworICAgIHNpemVfdCBudW1iZXJPZkZQUnMgPSByZWdpc3RlclNldC5udW1iZXJP
ZlNldEZQUnMoKTsKKyAgICBpZiAobnVtYmVyT2ZGUFJzKQorICAgICAgICBudW1iZXJPZkdQUnMg
PSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Y8Mj4obnVtYmVyT2ZHUFJzKTsKKyAgICBtX3NpemVP
ZkFyZWFJbkJ5dGVzID0gbnVtYmVyT2ZHUFJzICogU2l6ZU9mR1BSICsgbnVtYmVyT2ZGUFJzICog
U2l6ZU9mRlBSOworI2VuZGlmCisKKyAgICBwdHJkaWZmX3Qgc3RhcnRPZmZzZXQgPSAwOworICAg
IGlmIChvZmZzZXRCYXNlVHlwZSA9PSBGcmFtZVBvaW50ZXJCYXNlZCkKKyAgICAgICAgc3RhcnRP
ZmZzZXQgPSAtc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihtX3NpemVPZkFyZWFJbkJ5dGVzKTsKKwor
ICAgIHB0cmRpZmZfdCBvZmZzZXQgPSBzdGFydE9mZnNldDsKICAgICB1bnNpZ25lZCBpbmRleCA9
IDA7CiAgICAgcmVnaXN0ZXJTZXQuZm9yRWFjaChbJl0gKFJlZyByZWcpIHsKKyAgICAgICAgc2l6
ZV90IHJlZ2lzdGVyU2l6ZSA9IFNpemVPZkdQUjsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAg
ICAgICBpZiAocmVnLmlzRlBSKCkpIHsKKyAgICAgICAgICAgIHJlZ2lzdGVyU2l6ZSA9IFNpemVP
ZkZQUjsKKyAgICAgICAgICAgIG9mZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZjxTaXpl
T2ZGUFI+KG9mZnNldCk7CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBtX3JlZ2lzdGVyc1tp
bmRleF0gPSBSZWdpc3RlckF0T2Zmc2V0KHJlZywgb2Zmc2V0KTsKLSAgICAgICAgb2Zmc2V0ICs9
IHNpemVvZihDUFVSZWdpc3Rlcik7CisgICAgICAgIG9mZnNldCArPSByZWdpc3RlclNpemU7CiAg
ICAgICAgICsraW5kZXg7CiAgICAgfSk7CisKKyAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90
PihvZmZzZXQgLSBzdGFydE9mZnNldCkgPT0gbV9zaXplT2ZBcmVhSW5CeXRlcyk7CiB9CiAKIHZv
aWQgUmVnaXN0ZXJBdE9mZnNldExpc3Q6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3Qu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3QuaAppbmRl
eCBkMTE3Y2Y3NWUwOTg4ODQ4M2U3NjVlNTJhM2VjNzZmMjIyYTcxMzgzLi4yYTBlOGI5ZDEyNTU0
NWI0MDQyMTc3ZGU2NDI2NDI4ZDJlZDhkMjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5oCkBAIC02NSwxMSArNjUsMTQgQEAgcHVibGlj
OgogICAgIEZpeGVkVmVjdG9yPFJlZ2lzdGVyQXRPZmZzZXQ+Ojpjb25zdF9pdGVyYXRvciBiZWdp
bigpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaXN0ZXJzLmJlZ2luKCk7IH0KICAgICBGaXhlZFZlY3Rv
cjxSZWdpc3RlckF0T2Zmc2V0Pjo6Y29uc3RfaXRlcmF0b3IgZW5kKCkgY29uc3QgeyByZXR1cm4g
bV9yZWdpc3RlcnMuZW5kKCk7IH0KIAorICAgIHNpemVfdCBzaXplT2ZBcmVhSW5CeXRlcygpIGNv
bnN0IHsgcmV0dXJuIG1fc2l6ZU9mQXJlYUluQnl0ZXM7IH0KKwogICAgIHN0YXRpYyBjb25zdCBS
ZWdpc3RlckF0T2Zmc2V0TGlzdCYgbGxpbnRCYXNlbGluZUNhbGxlZVNhdmVSZWdpc3RlcnMoKTsg
Ly8gUmVnaXN0ZXJzIGFuZCBPZmZzZXRzIHNhdmVkIGFuZCB1c2VkIGJ5IHRoZSBMTEludC4KICAg
ICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJBdE9mZnNldExpc3QmIGRmZ0NhbGxlZVNhdmVSZWdpc3Rl
cnMoKTsgLy8gUmVnaXN0ZXJzIGFuZCBPZmZzZXRzIHNhdmVkIGFuZCB1c2VkIGJ5IERGRy4KIAog
cHJpdmF0ZToKICAgICBGaXhlZFZlY3RvcjxSZWdpc3RlckF0T2Zmc2V0PiBtX3JlZ2lzdGVyczsK
KyAgICBzaXplX3QgbV9zaXplT2ZBcmVhSW5CeXRlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyU2V0LmNwcAppbmRleCA1MGVlYzI4
YTQxZjZlNzVmMDViMjZmYmUwNjU1MWQyMTkwNjVlN2FiLi5jMTZhOWU0NzIxNDllNWVkMGFjZTNk
YWVjMTI2MmRhODFiZjBhZTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1JlZ2lzdGVyU2V0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVy
U2V0LmNwcApAQCAtOTQsNiArOTQsOCBAQCBSZWdpc3RlclNldCBSZWdpc3RlclNldDo6bWFjcm9T
Y3JhdGNoUmVnaXN0ZXJzKCkKICAgICByZXR1cm4gUmVnaXN0ZXJTZXQoTWFjcm9Bc3NlbWJsZXI6
OnNfc2NyYXRjaFJlZ2lzdGVyKTsKICNlbGlmIENQVShBUk02NCkgfHwgQ1BVKFJJU0NWNjQpCiAg
ICAgcmV0dXJuIFJlZ2lzdGVyU2V0KE1hY3JvQXNzZW1ibGVyOjpkYXRhVGVtcFJlZ2lzdGVyLCBN
YWNyb0Fzc2VtYmxlcjo6bWVtb3J5VGVtcFJlZ2lzdGVyKTsKKyNlbGlmIENQVShBUk1fVEhVTUIy
KQorICAgIHJldHVybiBSZWdpc3RlclNldChNYWNyb0Fzc2VtYmxlcjo6ZGF0YVRlbXBSZWdpc3Rl
ciwgTWFjcm9Bc3NlbWJsZXI6OmFkZHJlc3NUZW1wUmVnaXN0ZXIpOwogI2VsaWYgQ1BVKE1JUFMp
CiAgICAgUmVnaXN0ZXJTZXQgcmVzdWx0OwogICAgIHJlc3VsdC5zZXQoTWFjcm9Bc3NlbWJsZXI6
OmltbVRlbXBSZWdpc3Rlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKaW5kZXggZTc2ZGFkYTBkMzMyOWMwZDI1YmZjOTNjMTVl
ODg3YjMzOGU5N2UzNS4uYjQ3MDMxMTViM2E2YTYwMzg3NGEyMDVhNjMzYzRkZjA5MDU1MjVjYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNv
bmZpZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21D
b25maWcuaApAQCAtMTQzLDYgKzE0MywxMiBAQAogI2RlZmluZSBPRkZMSU5FX0FTTV9KU1ZBTFVF
NjQgMAogI2VuZGlmCiAKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorI2RlZmluZSBPRkZMSU5FX0FT
TV9KU1ZBTFVFMzJfNjQgMQorI2Vsc2UKKyNkZWZpbmUgT0ZGTElORV9BU01fSlNWQUxVRTMyXzY0
IDAKKyNlbmRpZgorCiAjaWYgVVNFKEJJR0lOVDMyKQogI2RlZmluZSBPRkZMSU5FX0FTTV9CSUdJ
TlQzMiAxCiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRleCBhZDI1MDE3ZWYwYjQ3ZmMwYjA1MDQ3
NDdkYjU3NWI5MTUwMThhZmVhLi43MDQwMWU0NWJlNmQwMmI5ZWJiMmUwNGEzYTg4YmM5ODlmYmUz
MzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtMzgsMTggKzM4LDM0IEBAIG1hY3JvIGdldHVPcGVy
YW5kV2lkZTE2SlMob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkKICAgICBsb2FkaCBjb25z
dGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiAyICsgT3Bjb2RlSURXaWRl
MTZTaXplSlNbUEIsIFBDLCAxXSwgZHN0CiBlbmQKIAorbWFjcm8gZ2V0dU9wZXJhbmRXaWRlMTZX
YXNtKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCisgICAgbG9hZGggY29uc3RleHByICVv
cGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogMiArIE9wY29kZUlEV2lkZTE2U2l6ZVdh
c21bUEIsIFBDLCAxXSwgZHN0CitlbmQKKwogbWFjcm8gZ2V0T3BlcmFuZFdpZGUxNkpTKG9wY29k
ZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCiAgICAgbG9hZGhzaSBjb25zdGV4cHIgJW9wY29kZVN0
cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiAyICsgT3Bjb2RlSURXaWRlMTZTaXplSlNbUEIsIFBD
LCAxXSwgZHN0CiBlbmQKIAorbWFjcm8gZ2V0T3BlcmFuZFdpZGUxNldhc20ob3Bjb2RlU3RydWN0
LCBmaWVsZE5hbWUsIGRzdCkKKyAgICBsb2FkaHNpIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8l
ZmllbGROYW1lJV9pbmRleCAqIDIgKyBPcGNvZGVJRFdpZGUxNlNpemVXYXNtW1BCLCBQQywgMV0s
IGRzdAorZW5kCisKIG1hY3JvIGdldHVPcGVyYW5kV2lkZTMySlMob3Bjb2RlU3RydWN0LCBmaWVs
ZE5hbWUsIGRzdCkKICAgICBsb2FkaSBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFt
ZSVfaW5kZXggKiA0ICsgT3Bjb2RlSURXaWRlMzJTaXplSlNbUEIsIFBDLCAxXSwgZHN0CiBlbmQK
IAorbWFjcm8gZ2V0dU9wZXJhbmRXaWRlMzJXYXNtKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBk
c3QpCisgICAgbG9hZGkgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4
ICogNCArIE9wY29kZUlEV2lkZTMyU2l6ZVdhc21bUEIsIFBDLCAxXSwgZHN0CitlbmQKKwogbWFj
cm8gZ2V0T3BlcmFuZFdpZGUzMkpTKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCiAgICAg
bG9hZGlzIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRleCAqIDQgKyBP
cGNvZGVJRFdpZGUzMlNpemVKU1tQQiwgUEMsIDFdLCBkc3QKIGVuZAogCittYWNybyBnZXRPcGVy
YW5kV2lkZTMyV2FzbShvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQorICAgIGxvYWRpcyBj
b25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiA0ICsgT3Bjb2RlSURX
aWRlMzJTaXplV2FzbVtQQiwgUEMsIDFdLCBkc3QKK2VuZAorCiBtYWNybyBtYWtlUmV0dXJuKGdl
dCwgZGlzcGF0Y2gsIGZuKQogICAgIGZuKG1hY3JvKHRhZywgcGF5bG9hZCkKICAgICAgICAgbW92
ZSB0YWcsIHQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNz
ZW1ibHkuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5LmFzbQpp
bmRleCAyNGMxNGIzZjhmNmI1ZjQ1NWJkMGE1YTc3YzU5MzJiZTlmNjhlZWFmLi5hNzRlOGM5MDI5
ZGY2NjM0MDJjODg2MTkxZTU0ZDVjNmRkNzU4NDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHkuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9XZWJBc3NlbWJseS5hc20KQEAgLTMxLDU2ICszMSw4MCBAQCBpZiBIQVZFX0ZBU1Rf
VExTCiBlbmQKIAogaWYgWDg2XzY0Ci0gICAgY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJz
ID0gNgorICAgIGNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyA9IDYKIGVsc2lmIEFSTTY0
IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJz
ID0gOAorICAgIGNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyA9IDgKK2Vsc2lmIEFSTXY3
CisgICAgY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzID0gMgogZWxzZQogICAgIGVycm9y
CiBlbmQKKwogY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1lbnRGUFJzID0gOAotY29uc3QgTnVtYmVy
T2ZXYXNtQXJndW1lbnRzID0gTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgTnVtYmVyT2ZXYXNt
QXJndW1lbnRGUFJzCisKK2NvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50cyA9IE51bWJlck9mV2Fz
bUFyZ3VtZW50SlNScyArIE51bWJlck9mV2FzbUFyZ3VtZW50RlBScwogCiAjIEFsbCBjYWxsZWUg
c2F2ZXMgbXVzdCBtYXRjaCB0aGUgZGVmaW5pdGlvbiBpbiBXYXNtQ2FsbGVlLmNwcAogCiAjIFRo
ZXNlIG11c3QgbWF0Y2ggdGhlIGRlZmluaXRpb24gaW4gV2FzbU1lbW9yeUluZm9ybWF0aW9uLmNw
cAotY29uc3Qgd2FzbUluc3RhbmNlID0gY3NyMAotY29uc3QgbWVtb3J5QmFzZSA9IGNzcjMKLWNv
bnN0IGJvdW5kc0NoZWNraW5nU2l6ZSA9IGNzcjQKK2lmIFg4Nl82NCBvciBBUk02NCBvciBBUk02
NEUKKyAgICBjb25zdCB3YXNtSW5zdGFuY2UgPSBjc3IwCisgICAgY29uc3QgbWVtb3J5QmFzZSA9
IGNzcjMKKyAgICBjb25zdCBib3VuZHNDaGVja2luZ1NpemUgPSBjc3I0CitlbHNpZiBBUk12Nwor
ICAgIGNvbnN0IHdhc21JbnN0YW5jZSA9IGNzcjAKKyAgICBjb25zdCBtZW1vcnlCYXNlID0gaW52
YWxpZEdQUgorICAgIGNvbnN0IGJvdW5kc0NoZWNraW5nU2l6ZSA9IGludmFsaWRHUFIKK2Vsc2UK
KyAgICBlcnJvcgorZW5kCiAKICMgVGhpcyBtdXN0IG1hdGNoIHRoZSBkZWZpbml0aW9uIGluIExv
d0xldmVsSW50ZXJwcmV0ZXIuYXNtCiBpZiBYODZfNjQKICAgICBjb25zdCBQQiA9IGNzcjIKIGVs
c2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0CiAgICAgY29uc3QgUEIgPSBjc3I3CitlbHNp
ZiBBUk12NworICAgIGNvbnN0IFBCID0gY3NyMQogZWxzZQogICAgIGVycm9yCiBlbmQKIAotbWFj
cm8gZm9yRWFjaEFyZ3VtZW50R1BSKGZuKQotICAgIGZuKDAgKiA4LCB3YTApCi0gICAgZm4oMSAq
IDgsIHdhMSkKLSAgICBmbigyICogOCwgd2EyKQotICAgIGZuKDMgKiA4LCB3YTMpCi0gICAgZm4o
NCAqIDgsIHdhNCkKLSAgICBmbig1ICogOCwgd2E1KQotICAgIGlmIEFSTTY0IG9yIEFSTTY0RQot
ICAgICAgICBmbig2ICogOCwgd2E2KQotICAgICAgICBmbig3ICogOCwgd2E3KQorIyBIZWxwZXIg
bWFjcm9zCisKKyMgT24gSlNWQUxVRTY0LCBlYWNoIDY0LWJpdCBhcmd1bWVudCBHUFIgaG9sZHMg
b25lIHdob2xlIFdhc20gdmFsdWUuCisjIE9uIEpTVkFMVUUzMl82NCwgYSBjb25zZWN1dGl2ZSBw
YWlyIG9mIGV2ZW4vb2RkIG51bWJlcmVkIEdQUnMgaG9sZCBhIHNpbmdsZQorIyBXYXNtIHZhbHVl
IChldmVuIGlmIHRoYXQgdmFsdWUgaXMgaTMyL2YzMiwgdGhlIG9kZCBudW1iZXJlZCBHUFIgaG9s
ZHMgdGhlCisjIG1vcmUgc2lnbmlmaWNhbnQgd29yZCkuCittYWNybyBmb3JFYWNoQXJndW1lbnRK
U1IoZm4pCisgICAgaWYgSlNWQUxVRTY0CisgICAgICAgIGZuKDAgKiA4LCB3YTApCisgICAgICAg
IGZuKDEgKiA4LCB3YTEpCisgICAgICAgIGZuKDIgKiA4LCB3YTIpCisgICAgICAgIGZuKDMgKiA4
LCB3YTMpCisgICAgICAgIGZuKDQgKiA4LCB3YTQpCisgICAgICAgIGZuKDUgKiA4LCB3YTUpCisg
ICAgICAgIGlmIEFSTTY0IG9yIEFSTTY0RQorICAgICAgICAgICAgZm4oNiAqIDgsIHdhNikKKyAg
ICAgICAgICAgIGZuKDcgKiA4LCB3YTcpCisgICAgICAgIGVuZAorICAgIGVsc2UKKyAgICAgICAg
Zm4oMCAqIDgsIHdhMSwgd2EwKQorICAgICAgICBmbigxICogOCwgd2EzLCB3YTIpCiAgICAgZW5k
CiBlbmQKIAogbWFjcm8gZm9yRWFjaEFyZ3VtZW50RlBSKGZuKQotICAgIGZuKChOdW1iZXJPZldh
c21Bcmd1bWVudEdQUnMgKyAwKSAqIDgsIHdmYTApCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3Vt
ZW50R1BScyArIDEpICogOCwgd2ZhMSkKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJz
ICsgMikgKiA4LCB3ZmEyKQotICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyAzKSAq
IDgsIHdmYTMpCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDQpICogOCwgd2Zh
NCkKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgNSkgKiA4LCB3ZmE1KQotICAg
IGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyA2KSAqIDgsIHdmYTYpCi0gICAgZm4oKE51
bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDcpICogOCwgd2ZhNykKKyAgICBmbigoTnVtYmVyT2ZX
YXNtQXJndW1lbnRKU1JzICsgMCkgKiA4LCB3ZmEwKQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1
bWVudEpTUnMgKyAxKSAqIDgsIHdmYTEpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNS
cyArIDIpICogOCwgd2ZhMikKKyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgMykg
KiA4LCB3ZmEzKQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyA0KSAqIDgsIHdm
YTQpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIDUpICogOCwgd2ZhNSkKKyAg
ICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgNikgKiA4LCB3ZmE2KQorICAgIGZuKChO
dW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyA3KSAqIDgsIHdmYTcpCiBlbmQKIAotIyBIZWxwZXIg
bWFjcm9zCiAjIEZJWE1FOiBFdmVudHVhbGx5IHRoaXMgc2hvdWxkIGJlIHVuaWZpZWQgd2l0aCB0
aGUgSlMgdmVyc2lvbnMKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMzY1NgogCkBAIC0xMzAsMTAgKzE1NCwxNSBAQCBtYWNybyBjaGVja1N3aXRjaFRvSklURm9y
UHJvbG9ndWUoY29kZUJsb2NrUmVnaXN0ZXIpCiAgICAgICAgICAgICBidHB6IHIwLCAucmVjb3Zl
cgogICAgICAgICAgICAgbW92ZSByMCwgd3MwCiAKLSAgICAgICAgICAgIGZvckVhY2hBcmd1bWVu
dEdQUihtYWNybyAob2Zmc2V0LCBncHIpCitpZiBKU1ZBTFVFNjQKKyAgICAgICAgICAgIGZvckVh
Y2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHIpCiAgICAgICAgICAgICAgICAgbG9hZHEg
LW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0s
IGdwcgogICAgICAgICAgICAgZW5kKQotCitlbHNlCisgICAgICAgICAgICBmb3JFYWNoQXJndW1l
bnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3LCBncExzdykKKyAgICAgICAgICAgICAgICBsb2Fk
MmlhIC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtj
ZnJdLCBncExzdywgZ3ByTXN3CisgICAgICAgICAgICBlbmQpCitlbmQKICAgICAgICAgICAgIGZv
ckVhY2hBcmd1bWVudEZQUihtYWNybyAob2Zmc2V0LCBmcHIpCiAgICAgICAgICAgICAgICAgbG9h
ZGQgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nm
cl0sIGZwcgogICAgICAgICAgICAgZW5kKQpAQCAtMjAxLDYgKzIzMCw5IEBAIG1hY3JvIHByZXNl
cnZlQ2FsbGVlU2F2ZXNVc2VkQnlXYXNtKCkKICAgICBlbHNpZiBYODZfNjQgb3IgUklTQ1Y2NAog
ICAgICAgICBzdG9yZXAgUEIsIC0weDhbY2ZyXQogICAgICAgICBzdG9yZXAgd2FzbUluc3RhbmNl
LCAtMHgxMFtjZnJdCisgICAgZWxzaWYgQVJNdjcKKyAgICAgICAgc3RvcmVwIFBCLCAtNFtjZnJd
CisgICAgICAgIHN0b3JlcCB3YXNtSW5zdGFuY2UsIC04W2Nmcl0KICAgICBlbHNlCiAgICAgICAg
IGVycm9yCiAgICAgZW5kCkBAIC0yMTUsNiArMjQ3LDkgQEAgbWFjcm8gcmVzdG9yZUNhbGxlZVNh
dmVzVXNlZEJ5V2FzbSgpCiAgICAgZWxzaWYgWDg2XzY0IG9yIFJJU0NWNjQKICAgICAgICAgbG9h
ZHAgLTB4OFtjZnJdLCBQQgogICAgICAgICBsb2FkcCAtMHgxMFtjZnJdLCB3YXNtSW5zdGFuY2UK
KyAgICBlbHNpZiBBUk12NworICAgICAgICBsb2FkcCAtNFtjZnJdLCBQQgorICAgICAgICBsb2Fk
cCAtOFtjZnJdLCB3YXNtSW5zdGFuY2UKICAgICBlbHNlCiAgICAgICAgIGVycm9yCiAgICAgZW5k
CkBAIC0yNDUsMTAgKzI4MCwxMiBAQCBlbmQKIGVuZAogCiBtYWNybyByZWxvYWRNZW1vcnlSZWdp
c3RlcnNGcm9tSW5zdGFuY2UoaW5zdGFuY2UsIHNjcmF0Y2gxLCBzY3JhdGNoMikKK2lmIG5vdCBB
Uk12NwogICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2NhY2hlZE1lbW9yeVtpbnN0YW5jZV0s
IG1lbW9yeUJhc2UKICAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRCb3VuZHNDaGVj
a2luZ1NpemVbaW5zdGFuY2VdLCBib3VuZHNDaGVja2luZ1NpemUKICAgICBjYWdlZFByaW1pdGl2
ZU1heUJlTnVsbChtZW1vcnlCYXNlLCBib3VuZHNDaGVja2luZ1NpemUsIHNjcmF0Y2gxLCBzY3Jh
dGNoMikgIyBJZiBib3VuZHNDaGVja2luZ1NpemUgaXMgMCwgcG9pbnRlciBjYW4gYmUgYSBudWxs
cHRyLgogZW5kCitlbmQKIAogbWFjcm8gdGhyb3dFeGNlcHRpb24oZXhjZXB0aW9uKQogICAgIHN0
b3JlaSBjb25zdGV4cHIgV2FzbTo6RXhjZXB0aW9uVHlwZTo6JWV4Y2VwdGlvbiUsIEFyZ3VtZW50
Q291bnRJbmNsdWRpbmdUaGlzICsgUGF5bG9hZE9mZnNldFtjZnJdCkBAIC0yODAsOCArMzE3LDEz
IEBAIG1hY3JvIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKQogICAgIGxvYWRpIFdhc206
OkxMSW50Q2FsbGVlOjptX251bUNhbGxlZUxvY2Fsc1t3czFdLCB3czEKICAgICBsc2hpZnRwIDMs
IHdzMQogICAgIGFkZHAgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwsIHdzMQoraWYgQVJN
djcKKyAgICBzdWJwIGNmciwgd3MxLCB3czEKKyAgICBtb3ZlIHdzMSwgc3AKK2Vsc2UKICAgICBz
dWJwIGNmciwgd3MxLCBzcAogZW5kCitlbmQKIAogbWFjcm8gd2FzbVByb2xvZ3VlKGxvYWRXYXNt
SW5zdGFuY2UpCiAgICAgIyBTZXQgdXAgdGhlIGNhbGwgZnJhbWUgYW5kIGNoZWNrIGlmIHdlIHNo
b3VsZCBPU1IuCkBAIC0yOTIsNiArMzM0LDkgQEAgbWFjcm8gd2FzbVByb2xvZ3VlKGxvYWRXYXNt
SW5zdGFuY2UpCiAKICAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9vd25lclt3YXNtSW5zdGFu
Y2VdLCB3czAKICAgICBzdG9yZXAgd3MwLCBUaGlzQXJndW1lbnRPZmZzZXRbY2ZyXQoraWYgbm90
IEpTVkFMVUU2NAorICAgIHN0b3JlaSBDZWxsVGFnLCBUYWdPZmZzZXQgKyBUaGlzQXJndW1lbnRP
ZmZzZXRbY2ZyXQorZW5kCiAKICAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgd3MwCiAgICAgYW5kcCB+
Mywgd3MwCkBAIC0zMDMsNiArMzQ4LDEwIEBAIG1hY3JvIHdhc21Qcm9sb2d1ZShsb2FkV2FzbUlu
c3RhbmNlKQogICAgIGFkZHAgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwsIHdzMQogICAg
IHN1YnAgY2ZyLCB3czEsIHdzMQogCitpZiBub3QgSlNWQUxVRTY0CisgICAgc3VicCA4LCB3czEg
IyBhbGlnbiBzdGFjayBwb2ludGVyCitlbmQKKwogICAgIGJwYSB3czEsIGNmciwgLnN0YWNrT3Zl
cmZsb3cKICAgICBicGJlcSBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRTdGFja0xpbWl0W3dhc21J
bnN0YW5jZV0sIHdzMSwgLnN0YWNrSGVpZ2h0T0sKIApAQCAtMzEyLDEwICszNjEsMTUgQEAgbWFj
cm8gd2FzbVByb2xvZ3VlKGxvYWRXYXNtSW5zdGFuY2UpCiAuc3RhY2tIZWlnaHRPSzoKICAgICBt
b3ZlIHdzMSwgc3AKIAotICAgIGZvckVhY2hBcmd1bWVudEdQUihtYWNybyAob2Zmc2V0LCBncHIp
CitpZiBKU1ZBTFVFNjQKKyAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3By
KQogICAgICAgICBzdG9yZXEgZ3ByLCAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmly
dHVhbFJlZ2lzdGVycyAqIDhbY2ZyXQogICAgIGVuZCkKLQorZWxzZQorICAgIGZvckVhY2hBcmd1
bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHJNc3csIGdwTHN3KQorICAgICAgICBzdG9yZTJpYSBn
cExzdywgZ3ByTXN3LCAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lz
dGVycyAqIDhbY2ZyXQorICAgIGVuZCkKK2VuZAogICAgIGZvckVhY2hBcmd1bWVudEZQUihtYWNy
byAob2Zmc2V0LCBmcHIpCiAgICAgICAgIHN0b3JlZCBmcHIsIC1vZmZzZXQgLSA4IC0gQ2FsbGVl
U2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdCiAgICAgZW5kKQpAQCAtMzI5LDE0
ICszODMsMTYgQEAgbWFjcm8gd2FzbVByb2xvZ3VlKGxvYWRXYXNtSW5zdGFuY2UpCiAgICAgbG9h
ZGkgV2FzbTo6TExJbnRDYWxsZWU6Om1fbnVtVmFyc1t3czBdLCB3czEKICAgICBzdWJpIE51bWJl
ck9mV2FzbUFyZ3VtZW50cyArIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycywgd3Mx
CiAgICAgYnRpeiB3czEsIC56ZXJvSW5pdGlhbGl6ZUxvY2Fsc0RvbmUKKyAgICBsc2hpZnRpIDMs
IHdzMQogICAgIG5lZ2kgd3MxCitpZiBKU1ZBTFVFNjQKICAgICBzeGkycSB3czEsIHdzMQorZW5k
CiAgICAgbGVhcCAoTnVtYmVyT2ZXYXNtQXJndW1lbnRzICsgQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0
dWFsUmVnaXN0ZXJzICsgMSkgKiAtOFtjZnJdLCB3czAKIC56ZXJvSW5pdGlhbGl6ZUxvY2Fsc0xv
b3A6Ci0gICAgYWRkcSAxLCB3czEKLSAgICBzdG9yZXEgMCwgW3dzMCwgd3MxLCA4XQotICAgIGJ0
cXogd3MxLCAuemVyb0luaXRpYWxpemVMb2NhbHNEb25lCi0gICAgam1wIC56ZXJvSW5pdGlhbGl6
ZUxvY2Fsc0xvb3AKKyAgICBhZGRwIFB0clNpemUsIHdzMQorICAgIHN0b3JlcCAwLCBbd3MwLCB3
czFdCisgICAgYnRwbnogd3MxLCAuemVyb0luaXRpYWxpemVMb2NhbHNMb29wCiAuemVyb0luaXRp
YWxpemVMb2NhbHNEb25lOgogZW5kCiAKQEAgLTM3NSw2ICs0MzEsMjQgQEAgbWFjcm8gc2xvd1dh
c21PcChvcGNvZGVOYW1lKQogICAgIHVucHJlZml4ZWRTbG93V2FzbU9wKHdhc21fJW9wY29kZU5h
bWUlKQogZW5kCiAKKyMgRmxvYXQgdG8gZmxvYXQgcm91bmRpbmcgb3BzCittYWNybyB3YXNtUm91
bmRpbmdPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGZuKQoraWYgSlNWQUxVRTY0ICMgQWxs
IGN1cnJlbnQgNjQtYml0IHBsYXRmb3JtcyBoYXZlIGluc3RydWN0aW9ucyBmb3IgdGhlc2UKKyAg
ICB3YXNtT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBmbikKK2Vsc2UKKyAgICBzbG93V2Fz
bU9wKG9wY29kZU5hbWUpCitlbmQKK2VuZAorCisjIGk2NCAoc2lnbmVkL3Vuc2lnbmVkKSB0byBm
MzIgb3IgZjY0CittYWNybyB3YXNtSTY0VG9GT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBm
bikKK2lmIEpTVkFMVUU2NCAjIEFsbCBjdXJyZW50IDY0LWJpdCBwbGF0Zm9ybXMgaGF2ZSBpbnN0
cnVjdGlvbnMgZm9yIHRoZXNlCisgICAgd2FzbU9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwg
Zm4pCitlbHNlCisgICAgc2xvd1dhc21PcChvcGNvZGVOYW1lKQorZW5kCitlbmQKKwogIyBNYWNy
byB2ZXJzaW9uIG9mIGxvYWQgb3BlcmF0aW9uczogbWxvYWRbc3VmZml4XQogIyBsb2FkcyBmaWVs
ZCBmcm9tIHRoZSBpbnN0cnVjdGlvbiBzdHJlYW0gYW5kIHBlcmZvcm1zIGxvYWRbc3VmZml4XSB0
byBkc3QKIG1hY3JvIGZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4KGN0eCwgZm4pCkBAIC0zOTcs
MTIgKzQ3MSwyMSBAQCBtYWNybyBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKGN0eCwgaW5kZXgsIGxv
YWRlcikKICAgICBlbmQpCiBlbmQKIAoraWYgSlNWQUxVRTY0CiBtYWNybyBtbG9hZHEoY3R4LCBm
aWVsZCwgZHN0KQogICAgIHdnZXRzKGN0eCwgZmllbGQsIGRzdCkKICAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlKGN0eCwgZHN0LCBtYWNybyAoZnJvbSkKICAgICAgICAgbG9hZHEgZnJvbSwgZHN0
CiAgICAgZW5kKQogZW5kCitlbHNlCittYWNybyBtbG9hZDJpKGN0eCwgZmllbGQsIGRzdE1zdywg
ZHN0THN3KQorICAgIHdnZXRzKGN0eCwgZmllbGQsIGRzdExzdykKKyAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlKGN0eCwgZHN0THN3LCBtYWNybyAoZnJvbSkKKyAgICAgICAgbG9hZDJpYSBmcm9t
LCBkc3RMc3csIGRzdE1zdworICAgIGVuZCkKK2VuZAorZW5kCiAKIG1hY3JvIG1sb2FkaShjdHgs
IGZpZWxkLCBkc3QpCiAgICAgd2dldHMoY3R4LCBmaWVsZCwgZHN0KQpAQCAtNDM0LDExICs1MTcs
MTkgQEAgZW5kCiAKICMgVHlwZWQgcmV0dXJucwogCitpZiBKU1ZBTFVFNjQKIG1hY3JvIHJldHVy
bnEoY3R4LCB2YWx1ZSkKICAgICB3Z2V0cyhjdHgsIG1fZHN0LCB0NSkKICAgICBzdG9yZXEgdmFs
dWUsIFtjZnIsIHQ1LCA4XQogICAgIGRpc3BhdGNoKGN0eCkKIGVuZAorZWxzZQorbWFjcm8gcmV0
dXJuMmkoY3R4LCBtc3csIGxzdykKKyAgICB3Z2V0cyhjdHgsIG1fZHN0LCB0NSkKKyAgICBzdG9y
ZTJpYSBsc3csIG1zdywgW2NmciwgdDUsIDhdCisgICAgZGlzcGF0Y2goY3R4KQorZW5kCitlbmQK
IAogbWFjcm8gcmV0dXJuaShjdHgsIHZhbHVlKQogICAgIHdnZXRzKGN0eCwgbV9kc3QsIHQ1KQpA
QCAtNTExLDcgKzYwMiw3IEBAIG1hY3JvIHdhc21Db2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0
ZXIpCiBlbmQKIAogb3Aod2FzbV9mdW5jdGlvbl9wcm9sb2d1ZSwgbWFjcm8gKCkKLSAgICBpZiBu
b3QgV0VCQVNTRU1CTFkgb3Igbm90IEpTVkFMVUU2NCBvciBDX0xPT1Agb3IgQ19MT09QX1dJTgor
ICAgIGlmIG5vdCBXRUJBU1NFTUJMWSBvciBDX0xPT1Agb3IgQ19MT09QX1dJTgogICAgICAgICBl
cnJvcgogICAgIGVuZAogCkBAIC01MjAsNyArNjExLDcgQEAgb3Aod2FzbV9mdW5jdGlvbl9wcm9s
b2d1ZSwgbWFjcm8gKCkKIGVuZCkKIAogb3Aod2FzbV9mdW5jdGlvbl9wcm9sb2d1ZV9ub190bHMs
IG1hY3JvICgpCi0gICAgaWYgbm90IFdFQkFTU0VNQkxZIG9yIG5vdCBKU1ZBTFVFNjQgb3IgQ19M
T09QIG9yIENfTE9PUF9XSU4KKyAgICBpZiBub3QgV0VCQVNTRU1CTFkgb3IgQ19MT09QIG9yIENf
TE9PUF9XSU4KICAgICAgICAgZXJyb3IKICAgICBlbmQKIApAQCAtNjIyLDE2ICs3MTMsMjMgQEAg
X3dhc21fZW50ZXI6CiAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDIsIDB4ZGVhZDAw
ZTEpCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQyICAgICAgICAgICAgICAgIC8vIHQyPENv
ZGVCbG9jaz4gPSBjZnIuQ29kZUJsb2NrCiAgICAgbG9hZGkgV2FzbTo6TExJbnRDYWxsZWU6Om1f
bnVtVmFyc1t0Ml0sIHQyICAgICAgLy8gdDI8c2l6ZV90PiA9IHQyPENvZGVCbG9jaz4ubV9udW1W
YXJzCi0gICAgc3VicSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKyBOdW1iZXJP
Zldhc21Bcmd1bWVudHMsIHQyCisgICAgc3ViaSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdp
c3RlcnMgKyBOdW1iZXJPZldhc21Bcmd1bWVudHMsIHQyCiAgICAgYnRpeiB0MiwgLm9wRW50ZXJE
b25lCi0gICAgbW92ZSBjZnIsIHQxCi0gICAgc3VicSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxS
ZWdpc3RlcnMgKiA4ICsgTnVtYmVyT2ZXYXNtQXJndW1lbnRzICogOCwgdDEKKyAgICBzdWJwIGNm
ciwgKENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyArIE51bWJlck9mV2FzbUFyZ3Vt
ZW50cykgKiBTbG90U2l6ZSwgdDEKKyAgICBsc2hpZnRpIDMsIHQyCiAgICAgbmVnaSB0MgoraWYg
SlNWQUxVRTY0CiAgICAgc3hpMnEgdDIsIHQyCitlbmQKKyAgICBtb3ZlIDAsIHQ2CiAub3BFbnRl
ckxvb3A6Ci0gICAgc3RvcmVxIDAsIFt0MSwgdDIsIDhdCi0gICAgYWRkcSAxLCB0MgotICAgIGJ0
cW56IHQyLCAub3BFbnRlckxvb3AKK2lmIEpTVkFMVUU2NAorICAgIHN0b3JlcSB0NiwgW3QxLCB0
Ml0KK2Vsc2UKKyAgICBzdG9yZTJpYSB0NiwgdDYsIFt0MSwgdDJdCitlbmQKKyAgICBhZGRwIDgs
IHQyCisgICAgYnRwbnogdDIsIC5vcEVudGVyTG9vcAogLm9wRW50ZXJEb25lOgogICAgIHdhc21E
aXNwYXRjaEluZGlyZWN0KDEpCiAKQEAgLTY0NCwxMSArNzQyLDYgQEAgd2FzbU9wKGxvb3BfaGlu
dCwgV2FzbUxvb3BIaW50LCBtYWNybyhjdHgpCiAgICAgZGlzcGF0Y2goY3R4KQogZW5kKQogCi13
YXNtT3AobW92LCBXYXNtTW92LCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9zcmMsIHQw
KQotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQogd2FzbU9wKGp0cnVlLCBXYXNtSnRydWUs
IG1hY3JvKGN0eCkKICAgICBtbG9hZGkoY3R4LCBtX2NvbmRpdGlvbiwgdDApCiAgICAgYnRpeiB0
MCwgLmNvbnRpbnVlCkBAIC03MDAsMTEgKzc5MywxNyBAQCBlbmQpCiAKIHVucHJlZml4ZWRXYXNt
T3Aod2FzbV9yZXQsIFdhc21SZXQsIG1hY3JvKGN0eCkKICAgICBjaGVja1N3aXRjaFRvSklURm9y
RXBpbG9ndWUoKQotICAgIGZvckVhY2hBcmd1bWVudEdQUihtYWNybyAob2Zmc2V0LCBncHIpCitp
ZiBKU1ZBTFVFNjQKKyAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByKQog
ICAgICAgICBsb2FkcSAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lz
dGVycyAqIDhbY2ZyXSwgZ3ByCiAgICAgZW5kKQorZWxzZQorICAgIGZvckVhY2hBcmd1bWVudEpT
UihtYWNybyAob2Zmc2V0LCBncHJNc3csIGdwTHN3KQorICAgICAgICBsb2FkMmlhIC1vZmZzZXQg
LSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBncExzdywg
Z3ByTXN3CisgICAgZW5kKQorZW5kCiAgICAgZm9yRWFjaEFyZ3VtZW50RlBSKG1hY3JvIChvZmZz
ZXQsIGZwcikKLSAgICAgICAgbG9hZGQgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1Zp
cnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0sIGZwcgorICAgICAgICBsb2FkZCAtb2Zmc2V0IC0gIDgg
LSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0sIGZwcgogICAgIGVu
ZCkKICAgICBkb1JldHVybigpCiBlbmQpCkBAIC03MjAsNDQgKzgxOSw2IEBAIHdhc21PcChyZXRf
dm9pZCwgV2FzbVJldFZvaWQsIG1hY3JvKGN0eCkKICAgICBkb1JldHVybigpCiBlbmQpCiAKLXdh
c21PcChyZWZfaXNfbnVsbCwgV2FzbVJlZklzTnVsbCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcChj
dHgsIG1fcmVmLCB0MCkKLSAgICBjcWVxIHQwLCBWYWx1ZU51bGwsIHQwCi0gICAgcmV0dXJuaShj
dHgsIHQwKQotZW5kKQotCi13YXNtT3AoZ2V0X2dsb2JhbCwgV2FzbUdldEdsb2JhbCwgbWFjcm8o
Y3R4KQotICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwg
dDAKLSAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQotICAgIGxvYWRxIFt0MCwgdDEs
IDhdLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKHNldF9nbG9iYWws
IFdhc21TZXRHbG9iYWwsIG1hY3JvKGN0eCkKLSAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9n
bG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCi0gICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0
MSkKLSAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICBzdG9yZXEgdDIsIFt0MCwgdDEs
IDhdCi0gICAgZGlzcGF0Y2goY3R4KQotZW5kKQotCi13YXNtT3AoZ2V0X2dsb2JhbF9wb3J0YWJs
ZV9iaW5kaW5nLCBXYXNtR2V0R2xvYmFsUG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCi0gICAg
bG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAotICAgIHdn
ZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCi0gICAgbG9hZHEgW3QwLCB0MSwgOF0sIHQwCi0g
ICAgbG9hZHEgW3QwXSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChz
ZXRfZ2xvYmFsX3BvcnRhYmxlX2JpbmRpbmcsIFdhc21TZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcs
IG1hY3JvKGN0eCkKLSAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0
YW5jZV0sIHQwCi0gICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKLSAgICBtbG9hZHEo
Y3R4LCBtX3ZhbHVlLCB0MikKLSAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKLSAgICBzdG9yZXEg
dDIsIFt0MF0KLSAgICBkaXNwYXRjaChjdHgpCi1lbmQpCi0KIG1hY3JvIHNsb3dQYXRoRm9yV2Fz
bUNhbGwoY3R4LCBzbG93UGF0aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAgICAgY2FsbFdhc21DYWxs
U2xvd1BhdGgoCiAgICAgICAgIHNsb3dQYXRoLApAQCAtNzcyLDcgKzgzMywxMiBAQCBtYWNybyBz
bG93UGF0aEZvcldhc21DYWxsKGN0eCwgc2xvd1BhdGgsIHN0b3JlV2FzbUluc3RhbmNlKQogCiAg
ICAgICAgICAgICB3Z2V0dShjdHgsIG1fc3RhY2tPZmZzZXQsIHdzMSkKICAgICAgICAgICAgIGxz
aGlmdGkgMywgd3MxCitpZiBBUk12NworICAgICAgICAgICAgc3VicCBjZnIsIHdzMSwgd3MxCisg
ICAgICAgICAgICBtb3ZlIHdzMSwgc3AKK2Vsc2UKICAgICAgICAgICAgIHN1YnAgY2ZyLCB3czEs
IHNwCitlbmQKIAogICAgICAgICAgICAgd2dldHUoY3R4LCBtX251bWJlck9mU3RhY2tBcmdzLCB3
czEpCiAKQEAgLTc4MywxMCArODQ5LDE1IEBAIG1hY3JvIHNsb3dQYXRoRm9yV2FzbUNhbGwoY3R4
LCBzbG93UGF0aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAgICAgICAgICAgICByZWxvYWRNZW1vcnlS
ZWdpc3RlcnNGcm9tSW5zdGFuY2UodGFyZ2V0V2FzbUluc3RhbmNlLCB3YTAsIHdhMSkKIAogICAg
ICAgICAgICAgIyBMb2FkIHJlZ2lzdGVycyBmcm9tIHN0YWNrCi0gICAgICAgICAgICBmb3JFYWNo
QXJndW1lbnRHUFIobWFjcm8gKG9mZnNldCwgZ3ByKQoraWYgSlNWQUxVRTY0CisgICAgICAgICAg
ICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByKQogICAgICAgICAgICAgICAg
IGxvYWRxIENhbGxGcmFtZUhlYWRlclNpemUgKyA4ICsgb2Zmc2V0W3NwLCB3czEsIDhdLCBncHIK
ICAgICAgICAgICAgIGVuZCkKLQorZWxzZQorICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNS
KG1hY3JvIChvZmZzZXQsIGdwck1zdywgZ3BMc3cpCisgICAgICAgICAgICAgICAgbG9hZDJpYSBD
YWxsRnJhbWVIZWFkZXJTaXplICsgOCArIG9mZnNldFtzcCwgd3MxLCA4XSwgZ3BMc3csIGdwck1z
dworICAgICAgICAgICAgZW5kKQorZW5kCiAgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRGUFIo
bWFjcm8gKG9mZnNldCwgZnByKQogICAgICAgICAgICAgICAgIGxvYWRkIENhbGxGcmFtZUhlYWRl
clNpemUgKyA4ICsgb2Zmc2V0W3NwLCB3czEsIDhdLCBmcHIKICAgICAgICAgICAgIGVuZCkKQEAg
LTgyOSw3ICs5MDAsMTEgQEAgbWFjcm8gc2xvd1BhdGhGb3JXYXNtQ2FsbChjdHgsIHNsb3dQYXRo
LCBzdG9yZVdhc21JbnN0YW5jZSkKIAogICAgICAgICAgICAgIyBXZSBuZWVkIHRvIHNldCBQQyB0
byBsb2FkIGluZm9ybWF0aW9uIGZyb20gdGhlIGluc3RydWN0aW9uIHN0cmVhbSwgYnV0IHdlCiAg
ICAgICAgICAgICAjIG5lZWQgdG8gcHJlc2VydmUgaXRzIGN1cnJlbnQgdmFsdWUgc2luY2UgaXQg
bWlnaHQgY29udGFpbiBhIHJldHVybiB2YWx1ZQoraWYgQVJNdjcKKyAgICAgICAgICAgIHB1c2gg
UEMKK2Vsc2UKICAgICAgICAgICAgIG1vdmUgUEMsIG1lbW9yeUJhc2UKK2VuZAogICAgICAgICAg
ICAgbW92ZSBQQiwgd2FzbUluc3RhbmNlCiAgICAgICAgICAgICBsb2FkaSBBcmd1bWVudENvdW50
SW5jbHVkaW5nVGhpcyArIFRhZ09mZnNldFtjZnJdLCBQQwogICAgICAgICAgICAgbG9hZHAgQ29k
ZUJsb2NrW2Nmcl0sIFBCCkBAIC04MzgsMTcgKzkxMywyOCBAQCBtYWNybyBzbG93UGF0aEZvcldh
c21DYWxsKGN0eCwgc2xvd1BhdGgsIHN0b3JlV2FzbUluc3RhbmNlKQogICAgICAgICAgICAgd2dl
dHUoY3R4LCBtX3N0YWNrT2Zmc2V0LCB3czEpCiAgICAgICAgICAgICBsc2hpZnRpIDMsIHdzMQog
ICAgICAgICAgICAgbmVnaSB3czEKK2lmIEpTVkFMVUU2NAogICAgICAgICAgICAgc3hpMnEgd3Mx
LCB3czEKK2VuZAogICAgICAgICAgICAgYWRkcCBjZnIsIHdzMQogCiAgICAgICAgICAgICAjIEFy
Z3VtZW50IHJlZ2lzdGVycyBhcmUgYWxzbyByZXR1cm4gcmVnaXN0ZXJzLCBzbyB0aGV5IG11c3Qg
YmUgc3RvcmVkIHRvIHRoZSBzdGFjawogICAgICAgICAgICAgIyBpbiBjYXNlIHRoZXkgY29udGFp
biByZXR1cm4gdmFsdWVzLgogICAgICAgICAgICAgd2dldHUoY3R4LCBtX251bWJlck9mU3RhY2tB
cmdzLCB3czApCitpZiBBUk12NworICAgICAgICAgICAgcG9wIFBDCitlbHNlCiAgICAgICAgICAg
ICBtb3ZlIG1lbW9yeUJhc2UsIFBDCi0gICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRHUFIobWFj
cm8gKG9mZnNldCwgZ3ByKQorZW5kCitpZiBKU1ZBTFVFNjQKKyAgICAgICAgICAgIGZvckVhY2hB
cmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHIpCiAgICAgICAgICAgICAgICAgc3RvcmVxIGdw
ciwgQ2FsbEZyYW1lSGVhZGVyU2l6ZSArIDggKyBvZmZzZXRbd3MxLCB3czAsIDhdCiAgICAgICAg
ICAgICBlbmQpCi0KK2Vsc2UKKyAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAo
b2Zmc2V0LCBncHJNc3csIGdwTHN3KQorICAgICAgICAgICAgICAgIHN0b3JlMmlhIGdwTHN3LCBn
cHJNc3csIENhbGxGcmFtZUhlYWRlclNpemUgKyA4ICsgb2Zmc2V0W3dzMSwgd3MwLCA4XQorICAg
ICAgICAgICAgZW5kKQorZW5kCiAgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRGUFIobWFjcm8g
KG9mZnNldCwgZnByKQogICAgICAgICAgICAgICAgIHN0b3JlZCBmcHIsIENhbGxGcmFtZUhlYWRl
clNpemUgKyA4ICsgb2Zmc2V0W3dzMSwgd3MwLCA4XQogICAgICAgICAgICAgZW5kKQpAQCAtODk5
LDE5OSArOTg1LDM2IEBAIHdhc21PcChjdXJyZW50X21lbW9yeSwgV2FzbUN1cnJlbnRNZW1vcnks
IG1hY3JvKGN0eCkKICAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9tZW1vcnlbd2FzbUluc3Rh
bmNlXSwgdDAKICAgICBsb2FkcCBXYXNtOjpNZW1vcnk6Om1faGFuZGxlW3QwXSwgdDAKICAgICBs
b2FkcCBXYXNtOjpNZW1vcnlIYW5kbGU6Om1fc2l6ZVt0MF0sIHQwCi0gICAgdXJzaGlmdHEgMTYs
IHQwCisgICAgdXJzaGlmdHAgMTYsIHQwCitpZiBKU1ZBTFVFNjQKICAgICByZXR1cm5xKGN0eCwg
dDApCitlbHNlCisgICAgcmV0dXJuMmkoY3R4LCAwLCB0MCkKK2VuZAogZW5kKQogCiB3YXNtT3Ao
c2VsZWN0LCBXYXNtU2VsZWN0LCBtYWNybyhjdHgpCiAgICAgbWxvYWRpKGN0eCwgbV9jb25kaXRp
b24sIHQwKQogICAgIGJ0aXogdDAsIC5pc1plcm8KK2lmIEpTVkFMVUU2NAogICAgIG1sb2FkcShj
dHgsIG1fbm9uWmVybywgdDApCiAgICAgcmV0dXJucShjdHgsIHQwKQogLmlzWmVybzoKICAgICBt
bG9hZHEoY3R4LCBtX3plcm8sIHQwKQogICAgIHJldHVybnEoY3R4LCB0MCkKK2Vsc2UKKyAgICBt
bG9hZDJpKGN0eCwgbV9ub25aZXJvLCB0MSwgdDApCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDAp
CisuaXNaZXJvOgorICAgIG1sb2FkMmkoY3R4LCBtX3plcm8sIHQxLCB0MCkKKyAgICByZXR1cm4y
aShjdHgsIHQxLCB0MCkKK2VuZAogZW5kKQogCi0jIHVzZXMgb2Zmc2V0IGFzIHNjcmF0Y2ggYW5k
IHJldHVybnMgcmVzdWx0IG9uIHBvaW50ZXIKLW1hY3JvIGVtaXRDaGVja0FuZFByZXBhcmVQb2lu
dGVyKGN0eCwgcG9pbnRlciwgb2Zmc2V0LCBzaXplKQotICAgIGxlYXAgc2l6ZSAtIDFbcG9pbnRl
ciwgb2Zmc2V0XSwgdDUKLSAgICBicGIgdDUsIGJvdW5kc0NoZWNraW5nU2l6ZSwgLmNvbnRpbnVh
dGlvbgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNjZXNzKQotLmNvbnRp
bnVhdGlvbjoKLSAgICBhZGRwIG1lbW9yeUJhc2UsIHBvaW50ZXIKLWVuZAotCi1tYWNybyBlbWl0
Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgsIHBvaW50ZXIsIG9mZnNldCwg
c2l6ZSkKLSAgICBsZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNldF0sIHQ1Ci0gICAgYnBiIHQ1
LCBib3VuZHNDaGVja2luZ1NpemUsIC5jb250aW51YXRpb24KLS50aHJvdzoKLSAgICB0aHJvd0V4
Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKLS5jb250aW51YXRpb246Ci0gICAgYWRk
cCBtZW1vcnlCYXNlLCBwb2ludGVyCi0gICAgYWRkcCBvZmZzZXQsIHBvaW50ZXIKLWVuZAotCi1t
YWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRD
aGVjayhjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKLSAgICBsZWFwIHNpemUgLSAxW3BvaW50
ZXIsIG9mZnNldF0sIHQ1Ci0gICAgYnBiIHQ1LCBib3VuZHNDaGVja2luZ1NpemUsIC5jb250aW51
YXRpb24KLS50aHJvdzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2Vz
cykKLS5jb250aW51YXRpb246Ci0gICAgYWRkcCBtZW1vcnlCYXNlLCBwb2ludGVyCi0gICAgYWRk
cCBvZmZzZXQsIHBvaW50ZXIKLSAgICBidHBueiBwb2ludGVyLCAoc2l6ZSAtIDEpLCAudGhyb3cK
LWVuZAotCi1tYWNybyB3YXNtTG9hZE9wKG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4pCi0gICAgd2Fz
bU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50
ZXIsIHQwKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgZW1pdENo
ZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4LCB0MCwgdDEsIHNpemUpCi0gICAgICAgIGZuKFt0MCwg
dDFdLCB0MikKLSAgICAgICAgcmV0dXJucShjdHgsIHQyKQotICAgIGVuZCkKLWVuZAotCi13YXNt
TG9hZE9wKGxvYWQ4X3UsIFdhc21Mb2FkOFUsIDEsIG1hY3JvKG1lbSwgZHN0KSBsb2FkYiBtZW0s
IGRzdCBlbmQpCi13YXNtTG9hZE9wKGxvYWQxNl91LCBXYXNtTG9hZDE2VSwgMiwgbWFjcm8obWVt
LCBkc3QpIGxvYWRoIG1lbSwgZHN0IGVuZCkKLXdhc21Mb2FkT3AobG9hZDMyX3UsIFdhc21Mb2Fk
MzJVLCA0LCBtYWNybyhtZW0sIGRzdCkgbG9hZGkgbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChs
b2FkNjRfdSwgV2FzbUxvYWQ2NFUsIDgsIG1hY3JvKG1lbSwgZHN0KSBsb2FkcSBtZW0sIGRzdCBl
bmQpCi0KLXdhc21Mb2FkT3AoaTMyX2xvYWQ4X3MsIFdhc21JMzJMb2FkOFMsIDEsIG1hY3JvKG1l
bSwgZHN0KSBsb2FkYnNpIG1lbSwgZHN0IGVuZCkKLXdhc21Mb2FkT3AoaTY0X2xvYWQ4X3MsIFdh
c21JNjRMb2FkOFMsIDEsIG1hY3JvKG1lbSwgZHN0KSBsb2FkYnNxIG1lbSwgZHN0IGVuZCkKLXdh
c21Mb2FkT3AoaTMyX2xvYWQxNl9zLCBXYXNtSTMyTG9hZDE2UywgMiwgbWFjcm8obWVtLCBkc3Qp
IGxvYWRoc2kgbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChpNjRfbG9hZDE2X3MsIFdhc21JNjRM
b2FkMTZTLCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGhzcSBtZW0sIGRzdCBlbmQpCi13YXNtTG9h
ZE9wKGk2NF9sb2FkMzJfcywgV2FzbUk2NExvYWQzMlMsIDQsIG1hY3JvKG1lbSwgZHN0KSBsb2Fk
aXMgbWVtLCBkc3QgZW5kKQotCi1tYWNybyB3YXNtU3RvcmVPcChuYW1lLCBzdHJ1Y3QsIHNpemUs
IGZuKQotICAgIHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRp
KGN0eCwgbV9wb2ludGVyLCB0MCkKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0g
ICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKGN0eCwgdDAsIHQxLCBzaXplKQotICAg
ICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICAgICAgZm4odDIsIFt0MCwgdDFdKQot
ICAgICAgICBkaXNwYXRjaChjdHgpCi0gICAgZW5kKQotZW5kCi0KLXdhc21TdG9yZU9wKHN0b3Jl
OCwgV2FzbVN0b3JlOCwgMSwgbWFjcm8odmFsdWUsIG1lbSkgc3RvcmViIHZhbHVlLCBtZW0gZW5k
KQotd2FzbVN0b3JlT3Aoc3RvcmUxNiwgV2FzbVN0b3JlMTYsIDIsIG1hY3JvKHZhbHVlLCBtZW0p
IHN0b3JlaCB2YWx1ZSwgbWVtIGVuZCkKLXdhc21TdG9yZU9wKHN0b3JlMzIsIFdhc21TdG9yZTMy
LCA0LCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZWkgdmFsdWUsIG1lbSBlbmQpCi13YXNtU3RvcmVP
cChzdG9yZTY0LCBXYXNtU3RvcmU2NCwgOCwgbWFjcm8odmFsdWUsIG1lbSkgc3RvcmVxIHZhbHVl
LCBtZW0gZW5kKQotCiAjIE9wY29kZXMgdGhhdCBkb24ndCBoYXZlIHRoZSBgYjNvcGAgZW50cnkg
aW4gd2FzbS5qc29uLiBUaGlzIHNob3VsZCBiZSBrZXB0IGluIHN5bmMKIAotd2FzbU9wKGkzMl9k
aXZfcywgV2FzbUkzMkRpdlMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRpKGN0eCwgbV9saHMsIHQw
KQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0aXogdDEsIC50aHJvd0Rpdmlz
aW9uQnlaZXJvCi0KLSAgICBiaW5lcSB0MSwgLTEsIC5zYWZlCi0gICAgYmllcSB0MCwgY29uc3Rl
eHByIElOVDMyX01JTiwgLnRocm93SW50ZWdlck92ZXJmbG93Ci0KLS5zYWZlOgotICAgIGlmIFg4
Nl82NAotICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAg
aXMgcmF4IGFuZCB0MiBpcyByZHgKLSAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCi0gICAgICAgIGNkcWkKLSAgICAgICAgaWRpdmkgdDEKLSAg
ICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAotICAgICAgICBkaXZpcyB0MSwgdDAK
LSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0gICAgcmV0dXJuaShjdHgsIHQwKQot
Ci0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVy
bykKLQotLnRocm93SW50ZWdlck92ZXJmbG93OgotICAgIHRocm93RXhjZXB0aW9uKEludGVnZXJP
dmVyZmxvdykKLWVuZCkKLQotd2FzbU9wKGkzMl9kaXZfdSwgV2FzbUkzMkRpdlUsIG1hY3JvIChj
dHgpCi0gICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0
MSkKLQotICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBpZiBYODZfNjQK
LSAgICAgICAgeG9yaSB0MiwgdDIKLSAgICAgICAgdWRpdmkgdDEKLSAgICBlbHNpZiBBUk02NCBv
ciBBUk02NEUgb3IgUklTQ1Y2NAotICAgICAgICBkaXZpIHQxLCB0MAotICAgIGVsc2UKLSAgICAg
ICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS50aHJvd0RpdmlzaW9u
QnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotZW5kKQotCi13YXNt
T3AoaTMyX3JlbV9zLCBXYXNtSTMyUmVtUywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGkoY3R4LCBt
X2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRpeiB0MSwgLnRo
cm93RGl2aXNpb25CeVplcm8KLQotICAgIGJpbmVxIHQxLCAtMSwgLnNhZmUKLSAgICBiaW5lcSB0
MCwgY29uc3RleHByIElOVDMyX01JTiwgLnNhZmUKLQotICAgIG1vdmUgMCwgdDIKLSAgICBqbXAg
LnJldHVybgotCi0uc2FmZToKLSAgICBpZiBYODZfNjQKLSAgICAgICAgIyBGSVhNRTogQWRkIGEg
d2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4Ci0gICAgICAg
ICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgotICAgICAg
ICBjZHFpCi0gICAgICAgIGlkaXZpIHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCi0gICAg
ICAgIGRpdmlzIHQxLCB0MCwgdDIKLSAgICAgICAgbXVsaSB0MSwgdDIKLSAgICAgICAgc3ViaSB0
MCwgdDIsIHQyCi0gICAgZWxzaWYgUklTQ1Y2NAotICAgICAgICByZW1pcyB0MSwgdDAKLSAgICBl
bHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0KLS5yZXR1cm46Ci0gICAgcmV0dXJuaShjdHgs
IHQyKQotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lv
bkJ5WmVybykKLWVuZCkKLQotd2FzbU9wKGkzMl9yZW1fdSwgV2FzbUkzMlJlbVUsIG1hY3JvIChj
dHgpCi0gICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0
MSkKLQotICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBpZiBYODZfNjQK
LSAgICAgICAgeG9yaSB0MiwgdDIKLSAgICAgICAgdWRpdmkgdDEKLSAgICBlbHNpZiBBUk02NCBv
ciBBUk02NEUKLSAgICAgICAgZGl2aSB0MSwgdDAsIHQyCi0gICAgICAgIG11bGkgdDEsIHQyCi0g
ICAgICAgIHN1YmkgdDAsIHQyLCB0MgotICAgIGVsc2lmIFJJU0NWNjQKLSAgICAgICAgcmVtaSB0
MSwgdDAKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0gICAgcmV0dXJuaShjdHgs
IHQyKQotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lv
bkJ5WmVybykKLWVuZCkKLQogd2FzbU9wKGkzMl9jdHosIFdhc21JMzJDdHosIG1hY3JvIChjdHgp
Ci0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJh
bmQsIHQwKQogICAgIHR6Y250aSB0MCwgdDAKICAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCkBA
IC0xMTA1LDE0OCArMTAyOCwyNSBAQCB3YXNtT3AoaTMyX3BvcGNudCwgV2FzbUkzMlBvcGNudCwg
bWFjcm8gKGN0eCkKICAgICByZXR1cm5pKGN0eCwgcjEpCiBlbmQpCiAKLXdhc21PcChpNjRfZGl2
X3MsIFdhc21JNjREaXZTLCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkK
LSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0KLSAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lv
bkJ5WmVybwotCi0gICAgYnFuZXEgdDEsIC0xLCAuc2FmZQotICAgIGJxZXEgdDAsIGNvbnN0ZXhw
ciBJTlQ2NF9NSU4sIC50aHJvd0ludGVnZXJPdmVyZmxvdwotCi0uc2FmZToKLSAgICBpZiBYODZf
NjQKLSAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlz
IHJheCBhbmQgdDIgaXMgcmR4Ci0gICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMzY5MgotICAgICAgICBjcW9xCi0gICAgICAgIGlkaXZxIHQxCi0gICAg
ZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKLSAgICAgICAgZGl2cXMgdDEsIHQwCi0g
ICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVuZAotICAgIHJldHVybnEoY3R4LCB0MCkKLQot
LnRocm93RGl2aXNpb25CeVplcm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8p
Ci0KLS50aHJvd0ludGVnZXJPdmVyZmxvdzoKLSAgICB0aHJvd0V4Y2VwdGlvbihJbnRlZ2VyT3Zl
cmZsb3cpCi1lbmQpCi0KLXdhc21PcChpNjRfZGl2X3UsIFdhc21JNjREaXZVLCBtYWNybyAoY3R4
KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEp
Ci0KLSAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwotCi0gICAgaWYgWDg2XzY0Ci0g
ICAgICAgIHhvcnEgdDIsIHQyCi0gICAgICAgIHVkaXZxIHQxCi0gICAgZWxzaWYgQVJNNjQgb3Ig
QVJNNjRFIG9yIFJJU0NWNjQKLSAgICAgICAgZGl2cSB0MSwgdDAKLSAgICBlbHNlCi0gICAgICAg
IGVycm9yCi0gICAgZW5kCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0udGhyb3dEaXZpc2lvbkJ5
WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLWVuZCkKLQotd2FzbU9w
KGk2NF9yZW1fcywgV2FzbUk2NFJlbVMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9s
aHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0cXogdDEsIC50aHJv
d0RpdmlzaW9uQnlaZXJvCi0KLSAgICBicW5lcSB0MSwgLTEsIC5zYWZlCi0gICAgYnFuZXEgdDAs
IGNvbnN0ZXhwciBJTlQ2NF9NSU4sIC5zYWZlCi0KLSAgICBtb3ZlIDAsIHQyCi0gICAgam1wIC5y
ZXR1cm4KLQotLnNhZmU6Ci0gICAgaWYgWDg2XzY0Ci0gICAgICAgICMgRklYTUU6IEFkZCBhIHdh
eSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAotICAgICAgICAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKLSAgICAgICAg
Y3FvcQotICAgICAgICBpZGl2cSB0MQotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQotICAgICAg
ICBkaXZxcyB0MSwgdDAsIHQyCi0gICAgICAgIG11bHEgdDEsIHQyCi0gICAgICAgIHN1YnEgdDAs
IHQyLCB0MgotICAgIGVsc2lmIFJJU0NWNjQKLSAgICAgICAgcmVtcXMgdDEsIHQwCi0gICAgZWxz
ZQotICAgICAgICBlcnJvcgotICAgIGVuZAotCi0ucmV0dXJuOgotICAgIHJldHVybnEoY3R4LCB0
MikgIyByZHggaGFzIHRoZSByZW1haW5kZXIKLQotLnRocm93RGl2aXNpb25CeVplcm86Ci0gICAg
dGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCi1lbmQpCi0KLXdhc21PcChpNjRfcmVtX3Us
IFdhc21JNjRSZW1VLCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAg
ICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0KLSAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5
WmVybwotCi0gICAgaWYgWDg2XzY0Ci0gICAgICAgIHhvcnEgdDIsIHQyCi0gICAgICAgIHVkaXZx
IHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCi0gICAgICAgIGRpdnEgdDEsIHQwLCB0Mgot
ICAgICAgICBtdWxxIHQxLCB0MgotICAgICAgICBzdWJxIHQwLCB0MiwgdDIKLSAgICBlbHNpZiBS
SVNDVjY0Ci0gICAgICAgIHJlbXEgdDEsIHQwCi0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAg
IGVuZAotICAgIHJldHVybnEoY3R4LCB0MikKLQotLnRocm93RGl2aXNpb25CeVplcm86Ci0gICAg
dGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCi1lbmQpCi0KLXdhc21PcChpNjRfY3R6LCBX
YXNtSTY0Q3R6LCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCi0g
ICAgdHpjbnRxIHQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2
NF9wb3BjbnQsIFdhc21JNjRQb3BjbnQsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9v
cGVyYW5kLCBhMSkKLSAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCi0gICAgbW92ZSBQQywgYTAK
LSAgICBjQ2FsbDIoX3Nsb3dfcGF0aF93YXNtX3BvcGNvdW50bGwpCi0gICAgcmVzdG9yZVN0YXRl
QWZ0ZXJDQ2FsbCgpCi0gICAgcmV0dXJucShjdHgsIHIxKQotZW5kKQotCi13YXNtT3AoZjMyX3Ry
dW5jLCBXYXNtRjMyVHJ1bmMsIG1hY3JvIChjdHgpCit3YXNtUm91bmRpbmdPcChmMzJfdHJ1bmMs
IFdhc21GMzJUcnVuYywgbWFjcm8gKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0
MCkKICAgICB0cnVuY2F0ZWYgZnQwLCBmdDAKICAgICByZXR1cm5mKGN0eCwgZnQwKQogZW5kKQog
Ci13YXNtT3AoZjMyX25lYXJlc3QsIFdhc21GMzJOZWFyZXN0LCBtYWNybyAoY3R4KQord2FzbVJv
dW5kaW5nT3AoZjMyX25lYXJlc3QsIFdhc21GMzJOZWFyZXN0LCBtYWNybyAoY3R4KQogICAgIG1s
b2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIHJvdW5kZiBmdDAsIGZ0MAogICAgIHJldHVy
bmYoY3R4LCBmdDApCiBlbmQpCiAKLXdhc21PcChmNjRfdHJ1bmMsIFdhc21GNjRUcnVuYywgbWFj
cm8gKGN0eCkKK3dhc21Sb3VuZGluZ09wKGY2NF90cnVuYywgV2FzbUY2NFRydW5jLCBtYWNybyAo
Y3R4KQogICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIHRydW5jYXRlZCBmdDAs
IGZ0MAogICAgIHJldHVybmQoY3R4LCBmdDApCiBlbmQpCiAKLXdhc21PcChmNjRfbmVhcmVzdCwg
V2FzbUY2NE5lYXJlc3QsIG1hY3JvIChjdHgpCit3YXNtUm91bmRpbmdPcChmNjRfbmVhcmVzdCwg
V2FzbUY2NE5lYXJlc3QsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBm
dDApCiAgICAgcm91bmRkIGZ0MCwgZnQwCiAgICAgcmV0dXJuZChjdHgsIGZ0MCkKQEAgLTEyNzAs
MjQgKzEwNzAsNiBAQCB3YXNtT3AoaTMyX3RydW5jX3NfZjMyLCBXYXNtSTMyVHJ1bmNTRjMyLCBt
YWNybyAoY3R4KQogICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCiBlbmQpCiAK
LXdhc21PcChpMzJfdHJ1bmNfc19mNjQsIFdhc21JMzJUcnVuY1NGNjQsIG1hY3JvIChjdHgpCi0g
ICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YzFlMDAwMDAwMDIw
MDAwMCwgdDAgIyBJTlQzMl9NSU4gLSAxLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1
biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIG1vdmUgMHg0MWUwMDAwMDAwMDAw
MDAwLCB0MCAjIC1JTlQzMl9NSU4KLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAs
IGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIHRydW5jYXRlZDJpcyBmdDAsIHQwCi0gICAg
cmV0dXJuaShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJvd0V4Y2VwdGlv
bihPdXRPZkJvdW5kc1RydW5jKQotZW5kKQotCiB3YXNtT3AoaTMyX3RydW5jX3VfZjMyLCBXYXNt
STMyVHJ1bmNVRjMyLCBtYWNybyAoY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQw
KQogCkBAIC0xMzA2LDk2ICsxMDg4LDYgQEAgd2FzbU9wKGkzMl90cnVuY191X2YzMiwgV2FzbUkz
MlRydW5jVUYzMiwgbWFjcm8gKGN0eCkKICAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1Ry
dW5jKQogZW5kKQogCi13YXNtT3AoaTMyX3RydW5jX3VfZjY0LCBXYXNtSTMyVHJ1bmNVRjY0LCBt
YWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAw
eGJmZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRl
cXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgbW92ZSAweDQxZjAwMDAwMDAw
MDAwMDAsIHQwICMgSU5UMzJfTUlOICogLTIuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3Rl
cXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgdHJ1bmNhdGVkMmkgZnQwLCB0
MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dF
eGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY19zX2Yz
MiwgV2FzbUk2NFRydW5jU0YzMiwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGYoY3R4LCBtX29wZXJh
bmQsIGZ0MCkKLQotICAgIG1vdmUgMHhkZjAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4KLSAgICBmaTJm
IHQwLCBmdDEKLSAgICBiZmx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICBt
b3ZlIDB4NWYwMDAwMDAsIHQwICMgLUlOVDY0X01JTgotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJm
Z3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgdHJ1bmNhdGVmMnFzIGZ0
MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRo
cm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNf
c19mNjQsIFdhc21JNjRUcnVuY1NGNjQsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9v
cGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YzNlMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9N
SU4KLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1Ry
dW5jCi0KLSAgICBtb3ZlIDB4NDNlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCi0gICAg
ZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0K
LSAgICB0cnVuY2F0ZWQycXMgZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9m
Qm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKLWVuZCkK
LQotd2FzbU9wKGk2NF90cnVuY191X2YzMiwgV2FzbUk2NFRydW5jVUYzMiwgbWFjcm8gKGN0eCkK
LSAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhiZjgwMDAwMCwg
dDAgIyAtMS4wCi0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZsdGVxdW4gZnQwLCBmdDEsIC5vdXRP
ZkJvdW5kc1RydW5jCi0KLSAgICBtb3ZlIDB4NWY4MDAwMDAsIHQwICMgSU5UNjRfTUlOICogLTIu
MAotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNU
cnVuYwotCi0gICAgdHJ1bmNhdGVmMnEgZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQot
Lm91dE9mQm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykK
LWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY191X2Y2NCwgV2FzbUk2NFRydW5jVUY2NCwgbWFjcm8g
KGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhiZmYw
MDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIG1vdmUgMHg0M2YwMDAwMDAwMDAwMDAw
LCB0MCAjIElOVDY0X01JTiAqIC0yLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIHRydW5jYXRlZDJxIGZ0MCwgdDAKLSAg
ICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0
aW9uKE91dE9mQm91bmRzVHJ1bmMpCi1lbmQpCi0KIHdhc21PcChpMzJfdHJ1bmNfc2F0X2YzMl9z
LCBXYXNtSTMyVHJ1bmNTYXRGMzJTLCBtYWNybyAoY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3Bl
cmFuZCwgZnQwKQogCkBAIC0xNDI0LDM0ICsxMTE2LDYgQEAgd2FzbU9wKGkzMl90cnVuY19zYXRf
ZjMyX3MsIFdhc21JMzJUcnVuY1NhdEYzMlMsIG1hY3JvIChjdHgpCiAgICAgcmV0dXJuaShjdHgs
IHQwKQogZW5kKQogCi13YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfcywgV2FzbUkzMlRydW5jU2F0
RjY0UywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAg
IG1vdmUgMHhjMWUwMDAwMDAwMjAwMDAwLCB0MCAjIElOVDMyX01JTiAtIDEuMAotICAgIGZxMmQg
dDAsIGZ0MQotICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9y
TmFOCi0KLSAgICBtb3ZlIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UMzJfTUlOCi0gICAg
ZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0
TWF4Ci0KLSAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQot
Lm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKLSAgICBiZGVxIGZ0MCwgZnQwLCAub3V0T2ZC
b3VuZHNUcnVuY1NhdE1pbgotICAgIG1vdmUgMCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0K
LS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQzMl9NQVgp
LCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46Ci0g
ICAgbW92ZSAoY29uc3RleHByIElOVDMyX01JTiksIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQot
ZW5kKQotCiB3YXNtT3AoaTMyX3RydW5jX3NhdF9mMzJfdSwgV2FzbUkzMlRydW5jU2F0RjMyVSwg
bWFjcm8gKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKIApAQCAtMTQ3NSwx
NTIgKzExMzksMjIgQEAgd2FzbU9wKGkzMl90cnVuY19zYXRfZjMyX3UsIFdhc21JMzJUcnVuY1Nh
dEYzMlUsIG1hY3JvIChjdHgpCiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQogCi13YXNtT3Ao
aTMyX3RydW5jX3NhdF9mNjRfdSwgV2FzbUkzMlRydW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkKLSAg
ICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAw
MDAwLCB0MCAjIC0xLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1biBmdDAsIGZ0MSwg
Lm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KLQotICAgIG1vdmUgMHg0MWYwMDAwMDAwMDAwMDAwLCB0
MCAjIElOVDMyX01JTiAqIC0yLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAs
IGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQotICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAK
LSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgotICAgIG1v
dmUgMCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4
OgotICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UMzJfTUFYKSwgdDAKLSAgICByZXR1cm5pKGN0eCwg
dDApCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl9zLCBXYXNtSTY0VHJ1bmNTYXRG
MzJTLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAg
bW92ZSAweGRmMDAwMDAwLCB0MCAjIElOVDY0X01JTgotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJm
bHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTgotCi0gICAgbW92ZSAw
eDVmMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KLSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmd0ZXF1
biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQotICAgIHRydW5jYXRlZjJxcyBm
dDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9y
TmFOOgotICAgIGJmZXEgZnQwLCBmdDAsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCi0gICAgbW92
ZSAwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6
Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDY0X01BWCksIHQwCi0gICAgcmV0dXJucShjdHgsIHQw
KQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKLSAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRf
TUlOKSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNf
c2F0X2Y2NF9zLCBXYXNtSTY0VHJ1bmNTYXRGNjRTLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZChj
dHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGMzZTAwMDAwMDAwMDAwMDAsIHQwICMg
SU5UNjRfTUlOCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdHVuIGZ0MCwgZnQxLCAub3V0T2ZC
b3VuZHNUcnVuY1NhdE1pbk9yTmFOCi0KLSAgICBtb3ZlIDB4NDNlMDAwMDAwMDAwMDAwMCwgdDAg
IyAtSU5UNjRfTUlOCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5v
dXRPZkJvdW5kc1RydW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWQycXMgZnQwLCB0MAotICAgIHJl
dHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKLSAgICBiZGVx
IGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotICAgIG1vdmUgMCwgdDAKLSAgICBy
ZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1vdmUgKGNv
bnN0ZXhwciBJTlQ2NF9NQVgpLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91
bmRzVHJ1bmNTYXRNaW46Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDY0X01JTiksIHQwCi0gICAg
cmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3NhdF9mMzJfdSwgV2Fz
bUk2NFRydW5jU2F0RjMyVSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQs
IGZ0MCkKLQotICAgIG1vdmUgMHhiZjgwMDAwMCwgdDAgIyAtMS4wCi0gICAgZmkyZiB0MCwgZnQx
Ci0gICAgYmZsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCi0KLSAgICBt
b3ZlIDB4NWY4MDAwMDAsIHQwICMgSU5UNjRfTUlOICogLTIuMAotICAgIGZpMmYgdDAsIGZ0MQot
ICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1
bmNhdGVmMnEgZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1
bmNTYXRNaW46Ci0gICAgbW92ZSAwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9m
Qm91bmRzVHJ1bmNTYXRNYXg6Ci0gICAgbW92ZSAoY29uc3RleHByIFVJTlQ2NF9NQVgpLCB0MAot
ICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY19zYXRfZjY0X3Us
IFdhc21JNjRUcnVuY1NhdEY2NFUsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVy
YW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YmZmMDAwMDAwMDAwMDAwMCwgdDAgIyAtMS4wCi0gICAg
ZnEyZCB0MCwgZnQxCi0gICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0
TWluCi0KLSAgICBtb3ZlIDB4NDNmMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4w
Ci0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1Ry
dW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWQycSBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQw
KQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKLSAgICBtb3ZlIDAsIHQwCi0gICAgcmV0dXJu
cShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKLSAgICBtb3ZlIChjb25zdGV4
cHIgVUlOVDY0X01BWCksIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi0KLXdhc21P
cChmMzJfY29udmVydF91X2k2NCwgV2FzbUYzMkNvbnZlcnRVSTY0LCBtYWNybyAoY3R4KQord2Fz
bUk2NFRvRk9wKGYzMl9jb252ZXJ0X3VfaTY0LCBXYXNtRjMyQ29udmVydFVJNjQsIG1hY3JvIChj
dHgpCiAgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICBpZiBYODZfNjQKICAgICAg
ICAgY3EyZiB0MCwgdDEsIGZ0MAotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0
Ci0gICAgICAgIGNxMmYgdDAsIGZ0MAogICAgIGVsc2UKLSAgICAgICAgZXJyb3IKKyAgICAgICAg
Y3EyZiB0MCwgZnQwCiAgICAgZW5kCiAgICAgcmV0dXJuZihjdHgsIGZ0MCkKIGVuZCkKIAotd2Fz
bU9wKGY2NF9jb252ZXJ0X3VfaTY0LCBXYXNtRjY0Q29udmVydFVJNjQsIG1hY3JvIChjdHgpCit3
YXNtSTY0VG9GT3AoZjY0X2NvbnZlcnRfdV9pNjQsIFdhc21GNjRDb252ZXJ0VUk2NCwgbWFjcm8g
KGN0eCkKICAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQogICAgIGlmIFg4Nl82NAogICAg
ICAgICBjcTJkIHQwLCB0MSwgZnQwCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NW
NjQKLSAgICAgICAgY3EyZCB0MCwgZnQwCiAgICAgZWxzZQotICAgICAgICBlcnJvcgorICAgICAg
ICBjcTJkIHQwLCBmdDAKICAgICBlbmQKICAgICByZXR1cm5kKGN0eCwgZnQwKQogZW5kKQpAQCAt
MTYzMSw0NyArMTE2NSw2IEBAIHdhc21PcChpMzJfZXF6LCBXYXNtSTMyRXF6LCBtYWNybyhjdHgp
CiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQogCi13YXNtT3AoaTY0X3NobCwgV2FzbUk2NFNo
bCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4
LCBtX3JocywgdDEpCi0gICAgbHNoaWZ0cSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1l
bmQpCi0KLXdhc21PcChpNjRfc2hyX3UsIFdhc21JNjRTaHJVLCBtYWNybyhjdHgpCi0gICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLSAgICB1cnNo
aWZ0cSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfc2hy
X3MsIFdhc21JNjRTaHJTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQot
ICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLSAgICByc2hpZnRxIHQxLCB0MAotICAgIHJldHVy
bnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9yb3RyLCBXYXNtSTY0Um90ciwgbWFjcm8o
Y3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3Jocywg
dDEpCi0gICAgcnJvdGF0ZXEgdDEsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13
YXNtT3AoaTY0X3JvdGwsIFdhc21JNjRSb3RsLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwg
bV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLSAgICBscm90YXRlcSB0MSwg
dDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfZXF6LCBXYXNtSTY0
RXF6LCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBjcWVx
IHQwLCAwLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLWVuZCkKLQogd2FzbU9wKGYzMl9taW4s
IFdhc21GMzJNaW4sIG1hY3JvKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX2xocywgZnQwKQogICAg
IG1sb2FkZihjdHgsIG1fcmhzLCBmdDEpCkBAIC0xNzgxLDIzICsxMjc0LDYgQEAgd2FzbU9wKGY2
NF9tYXgsIFdhc21GNjRNYXgsIG1hY3JvKGN0eCkKICAgICByZXR1cm5kKGN0eCwgZnQxKQogZW5k
KQogCi13YXNtT3AoZjY0X2NvcHlzaWduLCBXYXNtRjY0Q29weXNpZ24sIG1hY3JvKGN0eCkKLSAg
ICBtbG9hZGQoY3R4LCBtX2xocywgZnQwKQotICAgIG1sb2FkZChjdHgsIG1fcmhzLCBmdDEpCi0K
LSAgICBmZDJxIGZ0MSwgdDEKLSAgICBtb3ZlIDB4ODAwMDAwMDAwMDAwMDAwMCwgdDIKLSAgICBh
bmRxIHQyLCB0MQotCi0gICAgZmQycSBmdDAsIHQwCi0gICAgbW92ZSAweDdmZmZmZmZmZmZmZmZm
ZmYsIHQyCi0gICAgYW5kcSB0MiwgdDAKLQotICAgIG9ycSB0MSwgdDAKLSAgICBmcTJkIHQwLCBm
dDAKLSAgICByZXR1cm5kKGN0eCwgZnQwKQotZW5kKQotCiB3YXNtT3AoZjMyX2NvbnZlcnRfdV9p
MzIsIFdhc21GMzJDb252ZXJ0VUkzMiwgbWFjcm8oY3R4KQogICAgIG1sb2FkaShjdHgsIG1fb3Bl
cmFuZCwgdDApCiAgICAgY2kyZiB0MCwgZnQwCkBAIC0xOTczLDEzNCArMTQ0OSw2IEBAIHdhc21P
cChpMzJfY2x6LCBXYXNtSTMyQ2x6LCBtYWNybyhjdHgpCiAgICAgcmV0dXJuaShjdHgsIHQxKQog
ZW5kKQogCi13YXNtT3AoaTY0X2FkZCwgV2FzbUk2NEFkZCwgbWFjcm8oY3R4KQotICAgIG1sb2Fk
cShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgYWRkcSB0
MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfc3ViLCBXYXNt
STY0U3ViLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2Fk
cShjdHgsIG1fcmhzLCB0MSkKLSAgICBzdWJxIHQxLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkK
LWVuZCkKLQotd2FzbU9wKGk2NF9tdWwsIFdhc21JNjRNdWwsIG1hY3JvKGN0eCkKLSAgICBtbG9h
ZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIG11bHEg
dDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X2FuZCwgV2Fz
bUk2NEFuZCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9h
ZHEoY3R4LCBtX3JocywgdDEpCi0gICAgYW5kcSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEp
Ci1lbmQpCi0KLXdhc21PcChpNjRfb3IsIFdhc21JNjRPciwgbWFjcm8oY3R4KQotICAgIG1sb2Fk
cShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgb3JxIHQw
LCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF94b3IsIFdhc21J
NjRYb3IsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRx
KGN0eCwgbV9yaHMsIHQxKQotICAgIHhvcnEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQot
ZW5kKQotCi13YXNtT3AoaTY0X2VxLCBXYXNtSTY0RXEsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEo
Y3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxZXEgdDAs
IHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdh
c21PcChpNjRfbmUsIFdhc21JNjROZSwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhz
LCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FuZXEgdDAsIHQxLCB0Mgot
ICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRf
bHRfcywgV2FzbUk2NEx0UywgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkK
LSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FsdCB0MCwgdDEsIHQyCi0gICAgYW5k
aSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9sZV9zLCBX
YXNtSTY0TGVTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1s
b2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWx0ZXEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwg
dDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfbHRfdSwgV2FzbUk2
NEx0VSwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEo
Y3R4LCBtX3JocywgdDEpCi0gICAgY3FiIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAg
cmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2xlX3UsIFdhc21JNjRMZVUsIG1h
Y3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9y
aHMsIHQxKQotICAgIGNxYmVxIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJu
aShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2d0X3MsIFdhc21JNjRHdFMsIG1hY3JvKGN0
eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQx
KQotICAgIGNxZ3QgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwg
dDIpCi1lbmQpCi0KLXdhc21PcChpNjRfZ2VfcywgV2FzbUk2NEdlUywgbWFjcm8oY3R4KQotICAg
IG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAg
Y3FndGVxIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQot
ZW5kKQotCi13YXNtT3AoaTY0X2d0X3UsIFdhc21JNjRHdFUsIG1hY3JvKGN0eCkKLSAgICBtbG9h
ZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxYSB0
MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQot
d2FzbU9wKGk2NF9nZV91LCBXYXNtSTY0R2VVLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwg
bV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWFlcSB0MCwgdDEs
IHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9w
KGk2NF9jbHosIFdhc21JNjRDbHosIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJh
bmQsIHQwKQotICAgIGx6Y250cSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0K
IHdhc21PcChmMzJfYWRkLCBXYXNtRjMyQWRkLCBtYWNybyhjdHgpCiAgICAgbWxvYWRmKGN0eCwg
bV9saHMsIGZ0MCkKICAgICBtbG9hZGYoY3R4LCBtX3JocywgZnQxKQpAQCAtMjE0MSwxMyArMTQ4
OSwxMyBAQCB3YXNtT3AoZjMyX25lZywgV2FzbUYzMk5lZywgbWFjcm8oY3R4KQogICAgIHJldHVy
bmYoY3R4LCBmdDEpCiBlbmQpCiAKLXdhc21PcChmMzJfY2VpbCwgV2FzbUYzMkNlaWwsIG1hY3Jv
KGN0eCkKK3dhc21Sb3VuZGluZ09wKGYzMl9jZWlsLCBXYXNtRjMyQ2VpbCwgbWFjcm8oY3R4KQog
ICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIGNlaWxmIGZ0MCwgZnQxCiAgICAg
cmV0dXJuZihjdHgsIGZ0MSkKIGVuZCkKIAotd2FzbU9wKGYzMl9mbG9vciwgV2FzbUYzMkZsb29y
LCBtYWNybyhjdHgpCit3YXNtUm91bmRpbmdPcChmMzJfZmxvb3IsIFdhc21GMzJGbG9vciwgbWFj
cm8oY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIGZsb29yZiBmdDAs
IGZ0MQogICAgIHJldHVybmYoY3R4LCBmdDEpCkBAIC0yMjQxLDEzICsxNTg5LDEzIEBAIHdhc21P
cChmNjRfbmVnLCBXYXNtRjY0TmVnLCBtYWNybyhjdHgpCiAgICAgcmV0dXJuZChjdHgsIGZ0MSkK
IGVuZCkKIAotd2FzbU9wKGY2NF9jZWlsLCBXYXNtRjY0Q2VpbCwgbWFjcm8oY3R4KQord2FzbVJv
dW5kaW5nT3AoZjY0X2NlaWwsIFdhc21GNjRDZWlsLCBtYWNybyhjdHgpCiAgICAgbWxvYWRkKGN0
eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgY2VpbGQgZnQwLCBmdDEKICAgICByZXR1cm5kKGN0eCwg
ZnQxKQogZW5kKQogCi13YXNtT3AoZjY0X2Zsb29yLCBXYXNtRjY0Rmxvb3IsIG1hY3JvKGN0eCkK
K3dhc21Sb3VuZGluZ09wKGY2NF9mbG9vciwgV2FzbUY2NEZsb29yLCBtYWNybyhjdHgpCiAgICAg
bWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgZmxvb3JkIGZ0MCwgZnQxCiAgICAgcmV0
dXJuZChjdHgsIGZ0MSkKQEAgLTIzMDIsNTAgKzE2NTAsMjAgQEAgd2FzbU9wKGY2NF9nZSwgV2Fz
bUY2NEdlLCBtYWNybyhjdHgpCiBlbmQpCiAKIHdhc21PcChpMzJfd3JhcF9pNjQsIFdhc21JMzJX
cmFwSTY0LCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBt
bG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQogICAgIHJldHVybmkoY3R4LCB0MCkKIGVuZCkKIAot
d2FzbU9wKGk2NF9leHRlbmRfc19pMzIsIFdhc21JNjRFeHRlbmRTSTMyLCBtYWNybyhjdHgpCi0g
ICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBzeGkycSB0MCwgdDEKLSAgICByZXR1
cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfZXh0ZW5kX3VfaTMyLCBXYXNtSTY0RXh0
ZW5kVUkzMiwgbWFjcm8oY3R4KQotICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAg
enhpMnEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCiB3YXNtT3AoaTMyX2V4
dGVuZDhfcywgV2FzbUkzMkV4dGVuZDhTLCBtYWNybyhjdHgpCiAgICAgbWxvYWRpKGN0eCwgbV9v
cGVyYW5kLCB0MCkKICAgICBzeGIyaSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCisgICAg
cmV0dXJuaShjdHgsIHQxKQogZW5kKQogCiB3YXNtT3AoaTMyX2V4dGVuZDE2X3MsIFdhc21JMzJF
eHRlbmQxNlMsIG1hY3JvKGN0eCkKICAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQogICAg
IHN4aDJpIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9l
eHRlbmQ4X3MsIFdhc21JNjRFeHRlbmQ4UywgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1f
b3BlcmFuZCwgdDApCi0gICAgc3hiMnEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5k
KQotCi13YXNtT3AoaTY0X2V4dGVuZDE2X3MsIFdhc21JNjRFeHRlbmQxNlMsIG1hY3JvKGN0eCkK
LSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIHN4aDJxIHQwLCB0MQotICAgIHJl
dHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9leHRlbmQzMl9zLCBXYXNtSTY0RXh0
ZW5kMTZTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBz
eGkycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCisgICAgcmV0dXJuaShjdHgsIHQxKQog
ZW5kKQogCiB3YXNtT3AoZjMyX2NvbnZlcnRfc19pMzIsIFdhc21GMzJDb252ZXJ0U0kzMiwgbWFj
cm8oY3R4KQpAQCAtMjM1NCw3ICsxNjcyLDcgQEAgd2FzbU9wKGYzMl9jb252ZXJ0X3NfaTMyLCBX
YXNtRjMyQ29udmVydFNJMzIsIG1hY3JvKGN0eCkKICAgICByZXR1cm5mKGN0eCwgZnQwKQogZW5k
KQogCi13YXNtT3AoZjMyX2NvbnZlcnRfc19pNjQsIFdhc21GMzJDb252ZXJ0U0k2NCwgbWFjcm8o
Y3R4KQord2FzbUk2NFRvRk9wKGYzMl9jb252ZXJ0X3NfaTY0LCBXYXNtRjMyQ29udmVydFNJNjQs
IG1hY3JvKGN0eCkKICAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQogICAgIGNxMmZzIHQw
LCBmdDAKICAgICByZXR1cm5mKGN0eCwgZnQwKQpAQCAtMjM3OCw3ICsxNjk2LDcgQEAgd2FzbU9w
KGY2NF9jb252ZXJ0X3NfaTMyLCBXYXNtRjY0Q29udmVydFNJMzIsIG1hY3JvKGN0eCkKICAgICBy
ZXR1cm5kKGN0eCwgZnQwKQogZW5kKQogCi13YXNtT3AoZjY0X2NvbnZlcnRfc19pNjQsIFdhc21G
NjRDb252ZXJ0U0k2NCwgbWFjcm8oY3R4KQord2FzbUk2NFRvRk9wKGY2NF9jb252ZXJ0X3NfaTY0
LCBXYXNtRjY0Q29udmVydFNJNjQsIG1hY3JvKGN0eCkKICAgICBtbG9hZHEoY3R4LCBtX29wZXJh
bmQsIHQwKQogICAgIGNxMmRzIHQwLCBmdDAKICAgICByZXR1cm5kKGN0eCwgZnQwKQpAQCAtMjM5
MCwzNCArMTcwOCwyOSBAQCB3YXNtT3AoZjY0X3Byb21vdGVfZjMyLCBXYXNtRjY0UHJvbW90ZUYz
MiwgbWFjcm8oY3R4KQogICAgIHJldHVybmQoY3R4LCBmdDEpCiBlbmQpCiAKLXdhc21PcChmNjRf
cmVpbnRlcnByZXRfaTY0LCBXYXNtRjY0UmVpbnRlcnByZXRJNjQsIG1hY3JvKGN0eCkKLSAgICBt
bG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIGZxMmQgdDAsIGZ0MAotICAgIHJldHVybmQo
Y3R4LCBmdDApCi1lbmQpCi0KIHdhc21PcChpMzJfcmVpbnRlcnByZXRfZjMyLCBXYXNtSTMyUmVp
bnRlcnByZXRGMzIsIG1hY3JvKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkK
ICAgICBmZjJpIGZ0MCwgdDAKICAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCiAKLXdhc21PcChp
NjRfcmVpbnRlcnByZXRfZjY0LCBXYXNtSTY0UmVpbnRlcnByZXRGNjQsIG1hY3JvKGN0eCkKLSAg
ICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLSAgICBmZDJxIGZ0MCwgdDAKLSAgICByZXR1
cm5xKGN0eCwgdDApCi1lbmQpCi0KIG1hY3JvIGRyb3BLZWVwKHN0YXJ0T2Zmc2V0LCBkcm9wLCBr
ZWVwKQogICAgIGxzaGlmdGkgMywgc3RhcnRPZmZzZXQKICAgICBzdWJwIGNmciwgc3RhcnRPZmZz
ZXQsIHN0YXJ0T2Zmc2V0CiAgICAgbmVnaSBkcm9wCitpZiBKU1ZBTFVFNjQKICAgICBzeGkycSBk
cm9wLCBkcm9wCitlbmQKIAogLmNvcHlMb29wOgogICAgIGJ0aXoga2VlcCwgLmRvbmUKK2lmIEpT
VkFMVUU2NAogICAgIGxvYWRxIFtzdGFydE9mZnNldCwgZHJvcCwgOF0sIHQ2CiAgICAgc3RvcmVx
IHQ2LCBbc3RhcnRPZmZzZXRdCitlbHNlCisgICAgbG9hZDJpYSBbc3RhcnRPZmZzZXQsIGRyb3As
IDhdLCB0NSwgdDYKKyAgICBzdG9yZTJpYSB0NSwgdDYsIFtzdGFydE9mZnNldF0KK2VuZAogICAg
IHN1YmkgMSwga2VlcAogICAgIHN1YnAgOCwgc3RhcnRPZmZzZXQKICAgICBqbXAgLmNvcHlMb29w
CkBAIC0yNDM1LDM4OSArMTc0OCw2IEBAIHdhc21PcChkcm9wX2tlZXAsIFdhc21Ecm9wS2VlcCwg
bWFjcm8oY3R4KQogICAgIGRpc3BhdGNoKGN0eCkKIGVuZCkKIAotbWFjcm8gd2FzbUF0b21pY0Jp
bmFyeVJNV09wcyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5iLCBmbmgsIGZu
aSwgZm5xKQotICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzglbG93ZXJDYXNlT3Bjb2RlJV91LCBX
YXNtSTY0QXRvbWljUm13OCV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAgICBt
bG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0
MSkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCi0gICAgICAgIGVtaXRDaGVja0Fu
ZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KGN0eCwgdDMsIHQxLCAxKQotICAgICAgICBmbmIo
dDAsIFt0M10sIHQyLCB0NSwgdDEpCi0gICAgICAgIGFuZHEgMHhmZiwgdDAgIyBGSVhNRTogWmVy
b0V4dGVuZDhUbzY0Ci0gICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmYsIC5v
ayBlbmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi0gICAgd2FzbU9wKGk2
NF9hdG9taWNfcm13MTYlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MTYldXBw
ZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVy
LCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShj
dHgsIG1fdmFsdWUsIHQwKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGlu
Z09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgMikKLSAgICAgICAgZm5oKHQw
LCBbdDNdLCB0MiwgdDUsIHQxKQotICAgICAgICBhbmRxIDB4ZmZmZiwgdDAgIyBGSVhNRTogWmVy
b0V4dGVuZDE2VG82NAotICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmZmYs
IC5vayBlbmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi0gICAgd2FzbU9w
KGk2NF9hdG9taWNfcm13MzIlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MzIl
dXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2lu
dGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1sb2Fk
cShjdHgsIG1fdmFsdWUsIHQwKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFk
ZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgNCkKLSAgICAgICAgZm5p
KHQwLCBbdDNdLCB0MiwgdDUsIHQxKQotICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQw
LCAweGZmZmZmZmZmLCAub2sgZW5kKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5k
KQotICAgIHdhc21PcChpNjRfYXRvbWljX3JtdyVsb3dlckNhc2VPcGNvZGUlLCBXYXNtSTY0QXRv
bWljUm13JXVwcGVyQ2FzZU9wY29kZSUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwg
bV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAg
IG1sb2FkcShjdHgsIG1fdmFsdWUsIHQwKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9p
bnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgOCkKLSAgICAg
ICAgZm5xKHQwLCBbdDNdLCB0MiwgdDUsIHQxKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0g
ICAgZW5kKQotZW5kCi0KLW1hY3JvIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhs
b3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5pLCBmbnEpCi0gICAgd2FzbUF0b21p
Y0JpbmFyeVJNV09wcyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwKLSAgICAgICAg
bWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIGlmIFg4
Nl82NAotICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCi0gICAgICAgICAgICAgICAg
bG9hZGIgbWVtLCB0MEdQUgotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbW92
ZSB0MEdQUiwgdDJHUFIKLSAgICAgICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQotICAgICAg
ICAgICAgICAgIGJhdG9taWN3ZWFrY2FzYiB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKLSAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIGxvYWRsaW5r
YWNxYiBtZW0sIHQxR1BSCi0gICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIp
Ci0gICAgICAgICAgICAgICAgc3RvcmVjb25kcmVsYiB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAg
ICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAotICAgICAgICAgICAgICAgIG1vdmUgdDFH
UFIsIHQwR1BSCi0gICAgICAgICAgICBlbmQKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgaWYgWDg2XzY0Ci0g
ICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKLSAgICAgICAgICAgICAgICBsb2FkaCBt
ZW0sIHQwR1BSCi0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BS
LCB0MkdQUgotICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAg
ICAgYmF0b21pY3dlYWtjYXNoIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAotICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbG9hZGxpbmthY3FoIG1l
bSwgdDFHUFIKLSAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAg
ICAgICAgICAgICBzdG9yZWNvbmRyZWxoIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICAg
ICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCi0gICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBH
UFIKLSAgICAgICAgICAgIGVuZAotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBpZiBYODZfNjQKLSAgICAgICAg
ICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgotICAgICAgICAgICAgICAgIGxvYWRpIG1lbSwgdDBH
UFIKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BS
Ci0gICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgICAgICBiYXRv
bWljd2Vha2Nhc2kgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCi0gICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBsb2FkbGlua2FjcWkgbWVtLCB0MUdQ
UgotICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAg
ICAgIHN0b3JlY29uZHJlbGkgdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgICAgICBiaW5l
cSB0NUdQUiwgMCwgLmxvb3AKLSAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAg
ICAgICAgICAgZW5kCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJH
UFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIGlmIFg4Nl82NAotICAgICAgICAgICAgICAg
IG1vdmUgdDBHUFIsIHQ1R1BSCi0gICAgICAgICAgICAgICAgbG9hZHEgbWVtLCB0MEdQUgotICAg
ICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKLSAgICAg
ICAgICAgICAgICBmbnEodDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgICAgIGJhdG9taWN3ZWFr
Y2FzcSB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIC5sb29wOgotICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxcSBtZW0sIHQxR1BSCi0gICAg
ICAgICAgICAgICAgZm5xKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAgICAgc3Rv
cmVjb25kcmVscSB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BS
LCAwLCAubG9vcAotICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0gICAgICAgICAg
ICBlbmQKLSAgICAgICAgZW5kKQotZW5kCi0KLWlmIFg4Nl82NAotICAgIHdhc21BdG9taWNCaW5h
cnlSTVdPcHMoX2FkZCwgQWRkLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVH
UFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkYiB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGggdDBHUFIsIG1l
bSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0
b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkcSB0MEdQUiwgbWVtIGVuZCkKLSAgICB3
YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9zdWIsIFN1YiwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1YmIgdDBHUFIsIG1lbSBlbmQsCi0g
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdz
dWJoIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVH
UFIsIHQxR1BSKSBhdG9taWN4Y2hnc3ViaSB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1YnEgdDBHUFIsIG1l
bSBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfeGNoZywgWGNoZywKLSAgICAgICAg
bWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2IgdDBHUFIs
IG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIp
IGF0b21pY3hjaGdoIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnaSB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAg
bWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3EgdDBHUFIs
IG1lbSBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9hbmQsIEFu
ZCwKLSAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgYW5kaSB0NUdQUiwg
dDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCi0gICAgICAg
ICAgICBhbmRxIHQ1R1BSLCB0MkdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFy
eVJNV09wc1dpdGhXZWFrQ0FTKF9vciwgT3IsCi0gICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikK
LSAgICAgICAgICAgIG9yaSB0NUdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNy
byh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBvcnEgdDVHUFIsIHQyR1BSCi0gICAgICAgIGVu
ZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3hvciwgWG9yLAotICAg
ICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICB4b3JpIHQ1R1BSLCB0MkdQUgot
ICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgIHhv
cnEgdDVHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLWVsc2lmIEFSTTY0RQotICAgIHdhc21BdG9t
aWNCaW5hcnlSTVdPcHMoX2FkZCwgQWRkLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQ
UiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0g
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdh
ZGRoIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJH
UFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAot
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
YWRkcSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhf
c3ViLCBTdWIsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIp
Ci0gICAgICAgICAgICBuZWdxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnYWRkYiB0MEdQ
UiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBuZWdxIHQwR1BSCi0gICAgICAgICAgICBh
dG9taWN4Y2hnYWRkaCB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBuZWdxIHQw
R1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAg
ICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0g
ICAgICAgICAgICBuZWdxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnYWRkcSB0MEdQUiwg
bWVtLCB0MEdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfYW5k
LCBBbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0g
ICAgICAgICAgICBub3RxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnY2xlYXJiIHQwR1BS
LCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJH
UFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIG5vdHEgdDBHUFIKLSAgICAgICAgICAgIGF0
b21pY3hjaGdjbGVhcmggdDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBt
YWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgbm90cSB0
MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFyaSB0MEdQUiwgbWVtLCB0MEdQUgotICAg
ICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIp
Ci0gICAgICAgICAgICBub3RxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnY2xlYXJxIHQw
R1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3Bz
KF9vciwgT3IsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIp
IGF0b21pY3hjaGdvcmIgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnb3JoIHQwR1BSLCBtZW0sIHQw
R1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikg
YXRvbWljeGNoZ29yaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcnEgdDBHUFIsIG1lbSwgdDBH
UFIgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hvciwgWG9yLAotICAgICAgICBt
YWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9yYiB0MEdQ
UiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQ
UiwgdDFHUFIpIGF0b21pY3hjaGd4b3JoIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAg
bWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmkgdDBH
UFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVH
UFIsIHQxR1BSKSBhdG9taWN4Y2hneG9ycSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQpCi0gICAgd2Fz
bUF0b21pY0JpbmFyeVJNV09wcyhfeGNoZywgWGNoZywKLSAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2IgdDBHUFIsIG1lbSwgdDBHUFIgZW5k
LAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4
Y2hnaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAg
ICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3Eg
dDBHUFIsIG1lbSwgdDBHUFIgZW5kKQotZWxzZQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNX
aXRoV2Vha0NBUyhfYWRkLCBBZGQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIp
Ci0gICAgICAgICAgICBhZGRpIHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAg
ICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgYWRkcSB0MEdQUiwg
dDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0
aFdlYWtDQVMoX3N1YiwgU3ViLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQot
ICAgICAgICAgICAgc3ViaSB0MUdQUiwgdDBHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAg
ICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIHN1YnEgdDFHUFIsIHQw
R1BSLCB0MkdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhX
ZWFrQ0FTKF94Y2hnLCBYY2hnLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQot
ICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNy
byh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKLSAg
ICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYW5kLCBB
bmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBhbmRp
IHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwg
dDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgYW5kcSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAg
ICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX29yLCBPciwK
LSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIG9yaSB0MEdQ
UiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BS
LCB0MkdQUikKLSAgICAgICAgICAgIG9ycSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVu
ZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3hvciwgWG9yLAotICAg
ICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgeG9yaSB0MEdQUiwg
dDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0
MkdQUikKLSAgICAgICAgICAgIHhvcnEgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQp
Ci1lbmQKLQotbWFjcm8gd2FzbUF0b21pY0NvbXBhcmVFeGNoYW5nZU9wcyhsb3dlckNhc2VPcGNv
ZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5iLCBmbmgsIGZuaSwgZm5xKQotICAgIHdhc21PcChpNjRf
YXRvbWljX3JtdzglbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13OCV1cHBlckNh
c2VPcGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQz
KQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxvYWRxKGN0eCwg
bV9leHBlY3RlZCwgdDApCi0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQotICAgICAg
ICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgsIHQzLCB0MSwgMSkK
LSAgICAgICAgZm5iKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQotICAgICAgICBhbmRxIDB4ZmYsIHQw
ICMgRklYTUU6IFplcm9FeHRlbmQ4VG82NAotICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVx
IHQwLCAweGZmLCAub2sgZW5kKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQot
ICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0
b21pY1JtdzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShj
dHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAg
ICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92
YWx1ZSwgdDIpCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0
V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCAyKQotICAgICAgICBmbmgodDAsIHQyLCBb
dDNdLCB0NSwgdDEpCi0gICAgICAgIGFuZHEgMHhmZmZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5k
MTZUbzY0Ci0gICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmZmZiwgLm9rIGVu
ZCkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAgICB3YXNtT3AoaTY0X2F0
b21pY19ybXczMiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXczMiV1cHBlckNh
c2VPcGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQz
KQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxvYWRxKGN0eCwg
bV9leHBlY3RlZCwgdDApCi0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQotICAgICAg
ICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVj
ayhjdHgsIHQzLCB0MSwgNCkKLSAgICAgICAgZm5pKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQotICAg
ICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmZmZmZmZmLCAub2sgZW5kKQotICAg
ICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdhc21PcChpNjRfYXRvbWljX3Jt
dyVsb3dlckNhc2VPcGNvZGUlLCBXYXNtSTY0QXRvbWljUm13JXVwcGVyQ2FzZU9wY29kZSUsIG1h
Y3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dl
dHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQw
KQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICAgICAgZW1pdENoZWNrQW5k
UHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEs
IDgpCi0gICAgICAgIGZucSh0MCwgdDIsIFt0M10sIHQ1LCB0MSkKLSAgICAgICAgcmV0dXJucShj
dHgsIHQwKQotICAgIGVuZCkKLWVuZAotCi0jIHQwR1BSID0+IGV4cGVjdGVkLCB0MkdQUiA9PiB2
YWx1ZSwgbWVtID0+IG1lbW9yeSByZWZlcmVuY2UKLXdhc21BdG9taWNDb21wYXJlRXhjaGFuZ2VP
cHMoX2NtcHhjaGcsIENtcHhjaGcsCi0gICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BS
LCB0MUdQUikKLSAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQotICAgICAgICAgICAgYnFhIHQw
R1BSICwgMHhmZiwgLmZhaWwKLSAgICAgICAgICAgIGF0b21pY3dlYWtjYXNiIHQwR1BSLCB0MkdQ
UiwgbWVtCi0gICAgICAgICAgICBqbXAgLmRvbmUKLSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAg
ICBhdG9taWNsb2FkYiBtZW0sIHQwR1BSCi0gICAgICAgIC5kb25lOgotICAgICAgICBlbHNlCi0g
ICAgICAgIC5sb29wOgotICAgICAgICAgICAgbG9hZGxpbmthY3FiIG1lbSwgdDFHUFIKLSAgICAg
ICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKLSAgICAgICAgICAgIHN0b3JlY29uZHJl
bGIgdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0g
ICAgICAgICAgICBqbXAgLmxvb3AKLSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAgICBzdG9yZWNv
bmRyZWxiIHQ1R1BSLCB0MUdQUiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9u
ZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAgICAgIC5kb25lOgotICAgICAgICAgICAgbW92
ZSB0MUdQUiwgdDBHUFIKLSAgICAgICAgZW5kCi0gICAgZW5kLAotICAgIG1hY3JvKHQwR1BSLCB0
MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKLSAg
ICAgICAgICAgIGJxYSB0MEdQUiwgMHhmZmZmLCAuZmFpbAotICAgICAgICAgICAgYXRvbWljd2Vh
a2Nhc2ggdDBHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgIGptcCAuZG9uZQotICAgICAgICAu
ZmFpbDoKLSAgICAgICAgICAgIGF0b21pY2xvYWRoIG1lbSwgdDBHUFIKLSAgICAgICAgLmRvbmU6
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICBsb2FkbGlua2FjcWgg
bWVtLCB0MUdQUgotICAgICAgICAgICAgYnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAotICAgICAg
ICAgICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgYmllcSB0
NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGptcCAubG9vcAotICAgICAgICAuZmFpbDoKLSAg
ICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQxR1BSLCBtZW0KLSAgICAgICAgICAgIGJp
ZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBqbXAgLmxvb3AKLSAgICAgICAgLmRvbmU6
Ci0gICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAgICAgICBlbmQKLSAgICBlbmQsCi0g
ICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgaWYgWDg2
XzY0IG9yIEFSTTY0RQotICAgICAgICAgICAgYnFhIHQwR1BSLCAweGZmZmZmZmZmLCAuZmFpbAot
ICAgICAgICAgICAgYXRvbWljd2Vha2Nhc2kgdDBHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAg
IGptcCAuZG9uZQotICAgICAgICAuZmFpbDoKLSAgICAgICAgICAgIGF0b21pY2xvYWRpIG1lbSwg
dDBHUFIKLSAgICAgICAgLmRvbmU6Ci0gICAgICAgIGVsc2UKLSAgICAgICAgLmxvb3A6Ci0gICAg
ICAgICAgICBsb2FkbGlua2FjcWkgbWVtLCB0MUdQUgotICAgICAgICAgICAgYnFuZXEgdDBHUFIs
IHQxR1BSLCAuZmFpbAotICAgICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwgdDJHUFIsIG1l
bQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGptcCAubG9v
cAotICAgICAgICAuZmFpbDoKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbGkgdDVHUFIsIHQxR1BS
LCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBqbXAg
Lmxvb3AKLSAgICAgICAgLmRvbmU6Ci0gICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAg
ICAgICBlbmQKLSAgICBlbmQsCi0gICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BSLCB0
MUdQUikKLSAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQotICAgICAgICAgICAgYXRvbWljd2Vh
a2Nhc3EgdDBHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgZWxzZQotICAgICAgICAubG9vcDoKLSAg
ICAgICAgICAgIGxvYWRsaW5rYWNxcSBtZW0sIHQxR1BSCi0gICAgICAgICAgICBicW5lcSB0MEdQ
UiwgdDFHUFIsIC5mYWlsCi0gICAgICAgICAgICBzdG9yZWNvbmRyZWxxIHQ1R1BSLCB0MkdQUiwg
bWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5s
b29wCi0gICAgICAgIC5mYWlsOgotICAgICAgICAgICAgc3RvcmVjb25kcmVscSB0NUdQUiwgdDFH
UFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGpt
cCAubG9vcAotICAgICAgICAuZG9uZToKLSAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0g
ICAgICAgIGVuZAotICAgIGVuZCkKLQogd2FzbU9wKGF0b21pY19mZW5jZSwgV2FzbURyb3BLZWVw
LCBtYWNybyhjdHgpCiAgICAgZmVuY2UKICAgICBkaXNwYXRjaChjdHgpCkBAIC0yODQ2LDkgKzE3
NzYsMTQgQEAgbWFjcm8gY29tbW9uQ2F0Y2hJbXBsKGN0eCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAg
ICAgY29udmVydENhbGxlZVRvVk0odDMpCiAgICAgcmVzdG9yZUNhbGxlZVNhdmVzRnJvbVZNRW50
cnlGcmFtZUNhbGxlZVNhdmVzQnVmZmVyKHQzLCB0MCkKIAotICAgIGxvYWRwIFZNOjpjYWxsZWVG
b3JXYXNtQ2F0Y2hbdDNdLCB3czEKLSAgICBzdG9yZXAgMCwgVk06OmNhbGxlZUZvcldhc21DYXRj
aFt0M10KLSAgICBzdG9yZXAgd3MxLCBDYWxsZWVbY2ZyXQorICAgIGxvYWRwIFZNOjpjYWxsZWVG
b3JXYXNtQ2F0Y2ggKyBQYXlsb2FkT2Zmc2V0W3QzXSwgd3MxCisgICAgc3RvcmVwIDAsIFZNOjpj
YWxsZWVGb3JXYXNtQ2F0Y2ggKyBQYXlsb2FkT2Zmc2V0W3QzXQorICAgIHN0b3JlcCB3czEsIENh
bGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXQoraWYgbm90IEpTVkFMVUU2NAorICAgIGxvYWRpIFZN
OjpjYWxsZWVGb3JXYXNtQ2F0Y2ggKyBUYWdPZmZzZXRbdDNdLCB3czEKKyAgICBzdG9yZWkgRW1w
dHlWYWx1ZVRhZywgVk06OmNhbGxlZUZvcldhc21DYXRjaCArIFRhZ09mZnNldFt0M10KKyAgICBz
dG9yZWkgd3MxLCBDYWxsZWUgKyBUYWdPZmZzZXRbY2ZyXQorZW5kCiAKICAgICBsb2FkcCBWTTo6
Y2FsbEZyYW1lRm9yQ2F0Y2hbdDNdLCBjZnIKICAgICBzdG9yZXAgMCwgVk06OmNhbGxGcmFtZUZv
ckNhdGNoW3QzXQpAQCAtMjg4Nyw4ICsxODIyLDEzIEBAIG1hY3JvIGNhdGNoSW1wbChjdHgsIHN0
b3JlV2FzbUluc3RhbmNlKQogCiAuY29weUxvb3A6CiAgICAgYnRpeiB0MywgLmRvbmUKK2lmIEpT
VkFMVUU2NAogICAgIGxvYWRxIFt0MV0sIHQ2CiAgICAgc3RvcmVxIHQ2LCBbdDJdCitlbHNlCisg
ICAgbG9hZDJpYSBbdDFdLCB0NSwgdDYKKyAgICBzdG9yZTJpYSB0NSwgdDYsIFt0Ml0KK2VuZAog
ICAgIHN1YmkgMSwgdDMKICAgICAjIEZJWE1FOiBVc2UgYXJtIHN0b3JlLWFkZC9zdWIgaW5zdHJ1
Y3Rpb25zIGluIHdhc20gTExJbnQgY2F0Y2gKICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzEyMTAKQEAgLTI5MTYsMyArMTg1NiwxMCBAQCBlbmQpCiBjb21t
b25XYXNtT3Aod2FzbV9jYXRjaF9hbGxfbm9fdGxzLCBXYXNtQ2F0Y2hBbGwsIG1hY3JvKCkgZW5k
LCBtYWNybyhjdHgpCiAgICAgY2F0Y2hBbGxJbXBsKGN0eCwgbWFjcm8oaW5zdGFuY2UpIGVuZCkK
IGVuZCkKKworIyBWYWx1ZS1yZXByZXNlbnRhdGlvbi1zcGVjaWZpYyBjb2RlLgoraWYgSlNWQUxV
RTY0CisgICAgaW5jbHVkZSBXZWJBc3NlbWJseTY0CitlbHNlCisgICAgaW5jbHVkZSBXZWJBc3Nl
bWJseTMyXzY0CitlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9X
ZWJBc3NlbWJseTMyXzY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3Nl
bWJseTMyXzY0LmFzbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNTgzMDRlOWZhMTEwNmNkMWM2MDk3ODA4YWU2NmU0
YzFmMTQ2MWQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L1dlYkFzc2VtYmx5MzJfNjQuYXNtCkBAIC0wLDAgKzEsMTEyOSBAQAorIyBDb3B5cmlnaHQgKEMp
IDIwMTEtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAo
QykgMjAyMSBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
IyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBDb25zdGFudHMKKworY29uc3QgTXN3T2Zmc2V0
ID0gNAorY29uc3QgTHN3T2Zmc2V0ID0gMAorCisjIE9wY29kZXMgdGhhdCBzaG91bGQgZXZlbnR1
YWxseSBiZSBzaGFyZWQgd2l0aCBKUyBsbGludAorCit3YXNtT3AobW92LCBXYXNtTW92LCBtYWNy
byhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fc3JjLCB0MSwgdDApCisgICAgcmV0dXJuMmkoY3R4
LCB0MSwgdDApCitlbmQpCisKKyMgV2FzbSBzcGVjaWZpYyBieXRlY29kZXMKKworbWFjcm8gZW1p
dENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQocG9pbnRlciwgb2Zmc2V0LCBzaXpl
KQorICAgICMgVGhpcyBtYWNybyB1cGRhdGVzICdwb2ludGVyJyB0byB0YXJnZXQgYWRkcmVzcywg
YW5kIG1heSB0aHJhc2ggJ29mZnNldCcKK2lmIEFSTXY3CisgICAgIyBOb3QgZW5vdWdoIHJlZ2lz
dGVycyBvbiBhcm0gdG8ga2VlcCB0aGUgbWVtb3J5IGJhc2UgYW5kIHNpemUgaW4gcGlubmVkCisg
ICAgIyByZWdpc3RlcnMsIHNvIGxvYWQgdGhlbSBvbiBlYWNoIGFjY2VzcyBpbnN0ZWFkLiBGSVhN
RTogaW1wcm92ZSB0aGlzLgorICAgIGFkZHBzIG9mZnNldCwgcG9pbnRlcgorICAgIGJjcyAudGhy
b3cKKyAgICBhZGRwcyBzaXplIC0gMSwgcG9pbnRlciwgb2Zmc2V0ICMgVXNlIG9mZnNldCBhcyBz
Y3JhdGNoIHJlZ2lzdGVyCisgICAgYmNzIC50aHJvdworICAgIGJwYiBvZmZzZXQsIFdhc206Oklu
c3RhbmNlOjptX2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZVt3YXNtSW5zdGFuY2VdLCAuY29udGlu
dWF0aW9uCisudGhyb3c6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nl
c3MpCisuY29udGludWF0aW9uOgorICAgIGFkZHAgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkTWVt
b3J5W3dhc21JbnN0YW5jZV0sIHBvaW50ZXIKK2Vsc2UKKyAgICBjcmFzaCgpCitlbmQKK2VuZAor
CittYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1l
bnRDaGVjayhwb2ludGVyLCBvZmZzZXQsIHNpemUpCisgICAgIyBUaGlzIG1hY3JvIHVwZGF0ZXMg
J3BvaW50ZXInIHRvIHRhcmdldCBhZGRyZXNzLCBhbmQgbWF5IHRocmFzaCAnb2Zmc2V0JworaWYg
QVJNdjcKKyAgICAjIE5vdCBlbm91Z2ggcmVnaXN0ZXJzIG9uIGFybSB0byBrZWVwIHRoZSBtZW1v
cnkgYmFzZSBhbmQgc2l6ZSBpbiBwaW5uZWQKKyAgICAjIHJlZ2lzdGVycywgc28gbG9hZCB0aGVt
IG9uIGVhY2ggYWNjZXNzIGluc3RlYWQuIEZJWE1FOiBpbXByb3ZlIHRoaXMuCisgICAgYWRkcHMg
b2Zmc2V0LCBwb2ludGVyCisgICAgYmNzIC50aHJvdworICAgIGFkZHBzIHNpemUgLSAxLCBwb2lu
dGVyLCBvZmZzZXQgIyBVc2Ugb2Zmc2V0IGFzIHNjcmF0Y2ggcmVnaXN0ZXIKKyAgICBiY3MgLnRo
cm93CisgICAgYnBiIG9mZnNldCwgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkQm91bmRzQ2hlY2tp
bmdTaXplW3dhc21JbnN0YW5jZV0sIC5jb250aW51YXRpb24KKy50aHJvdzoKKyAgICB0aHJvd0V4
Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKKy5jb250aW51YXRpb246CisgICAgYWRk
cCBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRNZW1vcnlbd2FzbUluc3RhbmNlXSwgcG9pbnRlcgor
ICAgIGJ0cG56IHBvaW50ZXIsIChzaXplIC0gMSksIC50aHJvdworZWxzZQorICAgIGNyYXNoKCkK
K2VuZAorZW5kCisKK21hY3JvIHdhc21Mb2FkT3AobmFtZSwgc3RydWN0LCBzaXplLCBmbikKKyAg
ICB3YXNtT3AobmFtZSwgc3RydWN0LCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1f
cG9pbnRlciwgdDApCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBl
bWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldCh0MCwgdDEsIHNpemUpCisgICAg
ICAgIGZuKHQwLCB0MywgdDIpCisgICAgICAgIHJldHVybjJpKGN0eCwgdDMsIHQyKQorICAgIGVu
ZCkKK2VuZAorCit3YXNtTG9hZE9wKGxvYWQ4X3UsIFdhc21Mb2FkOFUsIDEsIG1hY3JvKGFkZHIs
IGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRiIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAg
bW92ZSAwLCBkc3RNc3cKK2VuZCkKK3dhc21Mb2FkT3AobG9hZDE2X3UsIFdhc21Mb2FkMTZVLCAy
LCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkaCBMc3dPZmZzZXRbYWRkcl0s
IGRzdExzdworICAgIG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGxvYWQzMl91LCBX
YXNtTG9hZDMyVSwgNCwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGkgTHN3
T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdworZW5kKQord2FzbUxvYWRP
cChsb2FkNjRfdSwgV2FzbUxvYWQ2NFUsIDgsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQor
ICAgICMgTWlnaHQgYmUgdW5hbGlnbmVkLCBzbyBjYW4ndCB1c2UgbG9hZDJpYQorICAgIGxvYWRp
IExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAgbG9hZGkgTXN3T2Zmc2V0W2FkZHJdLCBkc3RN
c3cKK2VuZCkKKword2FzbUxvYWRPcChpMzJfbG9hZDhfcywgV2FzbUkzMkxvYWQ4UywgMSwgbWFj
cm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGJzaSBMc3dPZmZzZXRbYWRkcl0sIGRz
dExzdworICAgIG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGkzMl9sb2FkMTZfcywg
V2FzbUkzMkxvYWQxNlMsIDIsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRo
c2kgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdworZW5kKQord2Fz
bUxvYWRPcChpNjRfbG9hZDhfcywgV2FzbUk2NExvYWQ4UywgMSwgbWFjcm8oYWRkciwgZHN0TXN3
LCBkc3RMc3cpCisgICAgbG9hZGJzaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAgIHJzaGlm
dGkgZHN0THN3LCAzMSwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGk2NF9sb2FkMTZfcywgV2Fz
bUk2NExvYWQxNlMsIDIsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRoc2kg
THN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICByc2hpZnRpIGRzdExzdywgMzEsIGRzdE1zdwor
ZW5kKQord2FzbUxvYWRPcChpNjRfbG9hZDMyX3MsIFdhc21JNjRMb2FkMzJTLCA0LCBtYWNybyhh
ZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdwor
ICAgIHJzaGlmdGkgZHN0THN3LCAzMSwgZHN0TXN3CitlbmQpCisKK21hY3JvIHdhc21TdG9yZU9w
KG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4pCisgICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8o
Y3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQorICAgICAgICB3Z2V0dShj
dHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRp
bmdPZmZzZXQodDAsIHQxLCBzaXplKQorICAgICAgICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwgdDMs
IHQyKQorICAgICAgICBmbih0MywgdDIsIHQwKQorICAgICAgICBkaXNwYXRjaChjdHgpCisgICAg
ZW5kKQorZW5kCisKK3dhc21TdG9yZU9wKHN0b3JlOCwgV2FzbVN0b3JlOCwgMSwgbWFjcm8oc3Jj
TXN3LCBzcmNMc3csIGFkZHIpCisgICAgc3RvcmViIHNyY0xzdywgTHN3T2Zmc2V0W2FkZHJdCitl
bmQpCit3YXNtU3RvcmVPcChzdG9yZTE2LCBXYXNtU3RvcmUxNiwgMiwgbWFjcm8oc3JjTXN3LCBz
cmNMc3csIGFkZHIpCisgICAgc3RvcmVoIHNyY0xzdywgTHN3T2Zmc2V0W2FkZHJdCitlbmQpCit3
YXNtU3RvcmVPcChzdG9yZTMyLCBXYXNtU3RvcmUzMiwgNCwgbWFjcm8oc3JjTXN3LCBzcmNMc3cs
IGFkZHIpCisgICAgc3RvcmVpIHNyY0xzdywgTHN3T2Zmc2V0W2FkZHJdCitlbmQpCit3YXNtU3Rv
cmVPcChzdG9yZTY0LCBXYXNtU3RvcmU2NCwgOCwgbWFjcm8oc3JjTXN3LCBzcmNMc3csIGFkZHIp
CisgICAgIyBNaWdodCBiZSB1bmFsaWduZWQsIHNvIGNhbid0IHVzZSBzdG9yZTJpYQorICAgIHN0
b3JlaSBzcmNMc3csIExzd09mZnNldFthZGRyXQorICAgIHN0b3JlaSBzcmNNc3csIE1zd09mZnNl
dFthZGRyXQorZW5kKQorCit3YXNtT3AocmVmX2lzX251bGwsIFdhc21SZWZJc051bGwsIG1hY3Jv
KGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yZWYsIHQxLCB0MCkgIyB0MCBpcyB1bnVzZWQKKyAg
ICBjaWVxIHQxLCBOdWxsVGFnLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKword2Fz
bU9wKGdldF9nbG9iYWwsIFdhc21HZXRHbG9iYWwsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBXYXNt
OjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4LCBt
X2dsb2JhbEluZGV4LCB0MSkKKyAgICBsb2FkMmlhIFt0MCwgdDEsIDhdLCB0MCwgdDEKKyAgICBy
ZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKHNldF9nbG9iYWwsIFdhc21TZXRH
bG9iYWwsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dh
c21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBt
bG9hZDJpKGN0eCwgbV92YWx1ZSwgdDMsIHQyKQorICAgIHN0b3JlMmlhIHQyLCB0MywgW3QwLCB0
MSwgOF0KKyAgICBkaXNwYXRjaChjdHgpCitlbmQpCisKK3dhc21PcChnZXRfZ2xvYmFsX3BvcnRh
YmxlX2JpbmRpbmcsIFdhc21HZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkKKyAg
ICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAg
d2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBsb2FkcCBbdDAsIHQxLCA4XSwgdDAK
KyAgICBsb2FkMmlhIFt0MF0sIHQwLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5k
KQorCit3YXNtT3Aoc2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNtU2V0R2xvYmFsUG9y
dGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xv
YmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEp
CisgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQzLCB0MikKKyAgICBsb2FkcCBbdDAsIHQxLCA4
XSwgdDAKKyAgICBzdG9yZTJpYSB0MiwgdDMsIFt0MF0KKyAgICBkaXNwYXRjaChjdHgpCitlbmQp
CisKKyMgT3Bjb2RlcyB0aGF0IGRvbid0IGhhdmUgdGhlIGBiM29wYCBlbnRyeSBpbiB3YXNtLmpz
b24uIFRoaXMgc2hvdWxkIGJlIGtlcHQgaW4gc3luYworCittYWNybyBjYWxsRGl2UmVtKGZuKQor
aWYgQVJNdjcKKyAgICBzdWJwIFN0YWNrQWxpZ25tZW50LCBzcAorICAgIHN0b3JlcCBQQywgW3Nw
XQorICAgIGNDYWxsNChmbikKKyAgICBsb2FkcCBbc3BdLCBQQworICAgIGFkZHAgU3RhY2tBbGln
bm1lbnQsIHNwCitlbHNlCisgICAgZXJyb3IKK2VuZAorZW5kCisKKyMgaTMyIGJpbmFyeSBvcHMK
Kword2FzbU9wKGkzMl9kaXZfcywgV2FzbUkzMkRpdlMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRp
KGN0eCwgbV9saHMsIGEwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCBhMSkKKworICAgIGJ0aXog
YTEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBiaW5lcSBhMSwgLTEsIC5zYWZlCisgICAg
YmllcSBhMCwgY29uc3RleHByIElOVDMyX01JTiwgLnRocm93SW50ZWdlck92ZXJmbG93CisKKy5z
YWZlOgorICAgIGNhbGxEaXZSZW0oX3Nsb3dfcGF0aF93YXNtX2kzMl9kaXZfcykKKyAgICByZXR1
cm5pKGN0eCwgcjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9u
KERpdmlzaW9uQnlaZXJvKQorCisudGhyb3dJbnRlZ2VyT3ZlcmZsb3c6CisgICAgdGhyb3dFeGNl
cHRpb24oSW50ZWdlck92ZXJmbG93KQorZW5kKQorCit3YXNtT3AoaTMyX2Rpdl91LCBXYXNtSTMy
RGl2VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgYTApCisgICAgbWxvYWRp
KGN0eCwgbV9yaHMsIGExKQorCisgICAgYnRpeiBhMSwgLnRocm93RGl2aXNpb25CeVplcm8KKwor
ICAgIGNhbGxEaXZSZW0oX3Nsb3dfcGF0aF93YXNtX2kzMl9kaXZfdSkKKyAgICByZXR1cm5pKGN0
eCwgcjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlz
aW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTMyX3JlbV9zLCBXYXNtSTMyUmVtUywgbWFjcm8g
KGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgYTApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMs
IGExKQorCisgICAgYnRpeiBhMSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGJpbmVxIGEx
LCAtMSwgLnNhZmUKKyAgICBiaW5lcSBhMCwgY29uc3RleHByIElOVDMyX01JTiwgLnNhZmUKKwor
ICAgIG1vdmUgMCwgcjAKKyAgICBqbXAgLnJldHVybgorCisuc2FmZToKKyAgICBjYWxsRGl2UmVt
KF9zbG93X3BhdGhfd2FzbV9pMzJfcmVtX3MpCisKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgs
IHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lv
bkJ5WmVybykKK2VuZCkKKword2FzbU9wKGkzMl9yZW1fdSwgV2FzbUkzMlJlbVUsIG1hY3JvIChj
dHgpCisgICAgbWxvYWRpKGN0eCwgbV9saHMsIGEwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCBh
MSkKKworICAgIGJ0aXogYTEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBjYWxsRGl2UmVt
KF9zbG93X3BhdGhfd2FzbV9pMzJfcmVtX3UpCisgICAgcmV0dXJuaShjdHgsIHIwKQorCisudGhy
b3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2Vu
ZCkKKworIyBpNjQgYmluYXJ5IG9wcworCit3YXNtT3AoaTY0X2FkZCwgV2FzbUk2NEFkZCwgbWFj
cm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4
LCBtX3JocywgdDMsIHQyKQorICAgIGFkZGlzIHQyLCB0MAorICAgIGFkY2kgIHQzLCB0MQorICAg
IHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3N1YiwgV2FzbUk2NFN1
YiwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2Fk
MmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIHN1YmlzIHQyLCB0MAorICAgIHNiY2kgIHQzLCB0
MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X211bCwgV2Fz
bUk2NE11bCwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAg
IG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG11bGkgdDIsIHQxCisgICAgbXVsaSB0
MCwgdDMKKyAgICB1bXVsbGkgdDAsIHQyLCB0MCwgdDIKKyAgICBhZGRpIHQxLCB0MgorICAgIGFk
ZGkgdDMsIHQyCisgICAgcmV0dXJuMmkoY3R4LCB0MiwgdDApCitlbmQpCisKK3dhc21PcChpNjRf
ZGl2X3MsIFdhc21JNjREaXZTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywg
YTEsIGEwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgYTMsIGEyKQorCisgICAgYnRpbnogYTMs
IC5ub25aZXJvRGl2aXNvcgorICAgIGJ0aXogYTIsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKy5u
b25aZXJvRGl2aXNvcjoKKyAgICBiaW5lcSBhMywgLTEsIC5zYWZlCisgICAgYmluZXEgYTIsIC0x
LCAuc2FmZQorICAgIGJpbmVxIGExLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAuc2FmZQorICAgIGJ0
aXogYTAsIC50aHJvd0ludGVnZXJPdmVyZmxvdworCisuc2FmZToKKyAgICBjYWxsRGl2UmVtKF9z
bG93X3BhdGhfd2FzbV9pNjRfZGl2X3MpCisgICAgcmV0dXJuMmkoY3R4LCByMSwgcjApCisKKy50
aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQor
CisudGhyb3dJbnRlZ2VyT3ZlcmZsb3c6CisgICAgdGhyb3dFeGNlcHRpb24oSW50ZWdlck92ZXJm
bG93KQorZW5kKQorCit3YXNtT3AoaTY0X2Rpdl91LCBXYXNtSTY0RGl2VSwgbWFjcm8gKGN0eCkK
KyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIGExLCBhMCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMs
IGEzLCBhMikKKworICAgIGJ0aW56IGEzLCAubm9uWmVyb0Rpdmlzb3IKKyAgICBidGl6IGEyLCAu
dGhyb3dEaXZpc2lvbkJ5WmVybworCisubm9uWmVyb0Rpdmlzb3I6CisgICAgY2FsbERpdlJlbShf
c2xvd19wYXRoX3dhc21faTY0X2Rpdl91KQorICAgIHJldHVybjJpKGN0eCwgcjEsIHIwKQorCisu
dGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykK
K2VuZCkKKword2FzbU9wKGk2NF9yZW1fcywgV2FzbUk2NFJlbVMsIG1hY3JvIChjdHgpCisgICAg
bWxvYWQyaShjdHgsIG1fbGhzLCBhMSwgYTApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCBhMywg
YTIpCisKKyAgICBidGlueiBhMywgLm5vblplcm9EaXZpc29yCisgICAgYnRpeiBhMiwgLnRocm93
RGl2aXNpb25CeVplcm8KKworLm5vblplcm9EaXZpc29yOgorICAgIGJpbmVxIGEzLCAtMSwgLnNh
ZmUKKyAgICBiaW5lcSBhMiwgLTEsIC5zYWZlCisgICAgYmluZXEgYTEsIGNvbnN0ZXhwciBJTlQz
Ml9NSU4sIC5zYWZlCisgICAgYnRpbnogYTAsIC5zYWZlCisKKyAgICBtb3ZlIDAsIHIxCisgICAg
bW92ZSAwLCByMAorICAgIGptcCAucmV0dXJuCisKKy5zYWZlOgorICAgIGNhbGxEaXZSZW0oX3Ns
b3dfcGF0aF93YXNtX2k2NF9yZW1fcykKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIHIx
LCByMCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNp
b25CeVplcm8pCitlbmQpCisKK3dhc21PcChpNjRfcmVtX3UsIFdhc21JNjRSZW1VLCBtYWNybyAo
Y3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgYTEsIGEwKQorICAgIG1sb2FkMmkoY3R4LCBt
X3JocywgYTMsIGEyKQorCisgICAgYnRpbnogYTMsIC5ub25aZXJvRGl2aXNvcgorICAgIGJ0aXog
YTIsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKy5ub25aZXJvRGl2aXNvcjoKKyAgICBjYWxsRGl2
UmVtKF9zbG93X3BhdGhfd2FzbV9pNjRfcmVtX3UpCisgICAgcmV0dXJuMmkoY3R4LCByMSwgcjAp
CisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnla
ZXJvKQorZW5kKQorCit3YXNtT3AoaTY0X2FuZCwgV2FzbUk2NEFuZCwgbWFjcm8oY3R4KQorICAg
IG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMs
IHQyKQorICAgIGFuZGkgdDIsIHQwCisgICAgYW5kaSB0MywgdDEKKyAgICByZXR1cm4yaShjdHgs
IHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9vciwgV2FzbUk2NE9yLCBtYWNybyhjdHgpCisg
ICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0
MywgdDIpCisgICAgb3JpIHQyLCB0MAorICAgIG9yaSB0MywgdDEKKyAgICByZXR1cm4yaShjdHgs
IHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF94b3IsIFdhc21JNjRYb3IsIG1hY3JvKGN0eCkK
KyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMs
IHQzLCB0MikKKyAgICB4b3JpIHQyLCB0MAorICAgIHhvcmkgdDMsIHQxCisgICAgcmV0dXJuMmko
Y3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfc2hsLCBXYXNtSTY0U2hsLCBtYWNybyhj
dHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWRpKGN0eCwgbV9y
aHMsIHQyKQorCisgICAgYW5kaSAweDNmLCB0MgorICAgIGJ0aXogdDIsIC5yZXR1cm4KKyAgICBi
aWIgdDIsIDMyLCAubGVzc1RoYW4zMgorCisgICAgc3ViaSAzMiwgdDIKKyAgICBsc2hpZnRpIHQw
LCB0MiwgdDEKKyAgICBtb3ZlIDAsIHQwCisgICAgam1wIC5yZXR1cm4KKworLmxlc3NUaGFuMzI6
CisgICAgbHNoaWZ0aSB0MiwgdDEKKyAgICBtb3ZlIDMyLCB0MworICAgIHN1YmkgdDIsIHQzCisg
ICAgdXJzaGlmdGkgdDAsIHQzLCB0MworICAgIG9yaSB0MywgdDEKKyAgICBsc2hpZnRpIHQyLCB0
MAorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3Ao
aTY0X3Nocl91LCBXYXNtSTY0U2hyVSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xo
cywgdDEsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MikKKworICAgIGFuZGkgMHgzZiwg
dDIKKyAgICBidGl6IHQyLCAucmV0dXJuCisgICAgYmliIHQyLCAzMiwgLmxlc3NUaGFuMzIKKwor
ICAgIHN1YmkgMzIsIHQyCisgICAgdXJzaGlmdGkgdDEsIHQyLCB0MAorICAgIG1vdmUgMCwgdDEK
KyAgICBqbXAgLnJldHVybgorCisubGVzc1RoYW4zMjoKKyAgICB1cnNoaWZ0aSB0MiwgdDAKKyAg
ICBtb3ZlIDMyLCB0MworICAgIHN1YmkgdDIsIHQzCisgICAgbHNoaWZ0aSB0MSwgdDMsIHQzCisg
ICAgb3JpIHQzLCB0MAorICAgIHVyc2hpZnRpIHQyLCB0MQorCisucmV0dXJuOgorICAgIHJldHVy
bjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3Nocl9zLCBXYXNtSTY0U2hyUywg
bWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkaShj
dHgsIG1fcmhzLCB0MikKKworICAgIGFuZGkgMHgzZiwgdDIKKyAgICBidGl6IHQyLCAucmV0dXJu
CisgICAgYmliIHQyLCAzMiwgLmxlc3NUaGFuMzIKKworICAgIHN1YmkgMzIsIHQyCisgICAgcnNo
aWZ0aSB0MSwgdDIsIHQwCisgICAgcnNoaWZ0aSAzMSwgdDEKKyAgICBqbXAgLnJldHVybgorCisu
bGVzc1RoYW4zMjoKKyAgICB1cnNoaWZ0aSB0MiwgdDAKKyAgICBtb3ZlIDMyLCB0MworICAgIHN1
YmkgdDIsIHQzCisgICAgbHNoaWZ0aSB0MSwgdDMsIHQzCisgICAgb3JpIHQzLCB0MAorICAgIHJz
aGlmdGkgdDIsIHQxCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQp
CisKK3dhc21PcChpNjRfcm90ciwgV2FzbUk2NFJvdHIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJp
KGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDIpCisKKyAgICBh
bmRpIHQyLCAweDIwLCB0MworICAgIGJ0aXogdDMsIC5ub1N3YXAKKworICAgIG1vdmUgdDAsIHQz
CisgICAgbW92ZSB0MSwgdDAKKyAgICBtb3ZlIHQzLCB0MQorCisubm9Td2FwOgorICAgIGFuZGkg
MHgxZiwgdDIKKyAgICBidGl6IHQyLCAucmV0dXJuCisKKyAgICBtb3ZlIDMyLCB0NQorICAgIHN1
YmkgdDIsIHQ1CisgICAgbHNoaWZ0aSB0MCwgdDUsIHQzCisgICAgbHNoaWZ0aSB0MSwgdDUsIHQ1
CisgICAgdXJzaGlmdGkgdDIsIHQwCisgICAgdXJzaGlmdGkgdDIsIHQxCisgICAgb3JpIHQ1LCB0
MAorICAgIG9yaSB0MywgdDEKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkK
K2VuZCkKKword2FzbU9wKGk2NF9yb3RsLCBXYXNtSTY0Um90bCwgbWFjcm8oY3R4KQorICAgIG1s
b2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MikKKwor
ICAgIGFuZGkgdDIsIDB4MjAsIHQzCisgICAgYnRpeiB0MywgLm5vU3dhcAorCisgICAgbW92ZSB0
MCwgdDMKKyAgICBtb3ZlIHQxLCB0MAorICAgIG1vdmUgdDMsIHQxCisKKy5ub1N3YXA6CisgICAg
YW5kaSAweDFmLCB0MgorICAgIGJ0aXogdDIsIC5yZXR1cm4KKworICAgIG1vdmUgMzIsIHQ1Cisg
ICAgc3ViaSB0MiwgdDUKKyAgICB1cnNoaWZ0aSB0MCwgdDUsIHQzCisgICAgdXJzaGlmdGkgdDEs
IHQ1LCB0NQorICAgIGxzaGlmdGkgdDIsIHQwCisgICAgbHNoaWZ0aSB0MiwgdDEKKyAgICBvcmkg
dDUsIHQwCisgICAgb3JpIHQzLCB0MQorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgdDEs
IHQwKQorZW5kKQorCit3YXNtT3AoaTY0X2VxLCBXYXNtSTY0RXEsIG1hY3JvKGN0eCkKKyAgICBt
bG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0
MikKKyAgICBtb3ZlIDAsIHQ2CisgICAgYmluZXEgdDEsIHQzLCAucmV0dXJuCisgICAgY2llcSB0
MCwgdDIsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9w
KGk2NF9uZSwgV2FzbUk2NE5lLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0
MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0Ngor
ICAgIGJpbmVxIHQxLCB0MywgLnJldHVybgorICAgIGNpbmVxIHQwLCB0MiwgdDYKKy5yZXR1cm46
CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2x0X3MsIFdhc21JNjRM
dFMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9h
ZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlsdCB0MSwgdDMs
IC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAgICBj
aWIgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgs
IHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2xlX3MsIFdhc21JNjRMZVMsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQz
LCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlsdCB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3Zl
IDAsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWJlcSB0MCwgdDIsIHQ2Cisg
ICAgYW5kaSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dh
c21PcChpNjRfbHRfdSwgV2FzbUk2NEx0VSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBt
X2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUg
MSwgdDYKKyAgICBiaWIgdDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpYSB0
MSwgdDMsIC5yZXR1cm4KKyAgICBjaWIgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1
cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2xlX3UsIFdhc21J
NjRMZVUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBt
bG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmliIHQxLCB0
MywgLnJldHVybgorICAgIG1vdmUgMCwgdDYKKyAgICBiaWEgdDEsIHQzLCAucmV0dXJuCisgICAg
Y2liZXEgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShj
dHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2d0X3MsIFdhc21JNjRHdFMsIG1hY3JvKGN0eCkK
KyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMs
IHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAgICBt
b3ZlIDAsIHQ2CisgICAgYmlsdCB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWEgdDAsIHQyLCB0Ngor
ICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3
YXNtT3AoaTY0X2dlX3MsIFdhc21JNjRHZVMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwg
bV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3Zl
IDEsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAgYmls
dCB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWFlcSB0MCwgdDIsIHQ2CisgICAgYW5kaSAxLCB0Ngor
LnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRfZ3RfdSwg
V2FzbUk2NEd0VSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQor
ICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYKKyAgICBiaWEg
dDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpYiB0MSwgdDMsIC5yZXR1cm4K
KyAgICBjaWEgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJu
aShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2dlX3UsIFdhc21JNjRHZVUsIG1hY3JvKGN0
eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9y
aHMsIHQzLCB0MikKKyAgICBtb3ZlIDAsIHQ2CisgICAgYmliIHQxLCB0MywgLnJldHVybgorICAg
IG1vdmUgMSwgdDYKKyAgICBiaWEgdDEsIHQzLCAucmV0dXJuCisgICAgY2lhZXEgdDAsIHQyLCB0
NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQor
CisjIGk2NCB1bmFyeSBvcHMKKword2FzbU9wKGk2NF9jdHosIFdhc21JNjRDdHosIG1hY3JvIChj
dHgpCisgICAgbWxvYWQyaShjdHgsIG1fb3BlcmFuZCwgdDEsIHQwKQorICAgIGJ0aXogdDAsIC50
b3AKKworICAgIHR6Y250aSB0MCwgdDAKKyAgICBqbXAgLnJldHVybgorCisudG9wOgorICAgIHR6
Y250aSB0MSwgdDAKKyAgICBhZGRpIDMyLCB0MAorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0
eCwgMCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfY2x6LCBXYXNtSTY0Q2x6LCBtYWNybyhjdHgp
CisgICAgbWxvYWQyaShjdHgsIG1fb3BlcmFuZCwgdDEsIHQwKQorICAgIGJ0aXogdDEsIC5ib3R0
b20KKworICAgIGx6Y250aSB0MSwgdDAKKyAgICBqbXAgLnJldHVybgorCisuYm90dG9tOgorICAg
IGx6Y250aSB0MCwgdDAKKyAgICBhZGRpIDMyLCB0MAorCisucmV0dXJuOgorICAgIHJldHVybjJp
KGN0eCwgMCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfcG9wY250LCBXYXNtSTY0UG9wY250LCBt
YWNybyAoY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIGEzLCBhMikKKyAgICBwcmVw
YXJlU3RhdGVGb3JDQ2FsbCgpCisgICAgbW92ZSBQQywgYTAKKyAgICBjQ2FsbDIoX3Nsb3dfcGF0
aF93YXNtX3BvcGNvdW50bGwpCisgICAgcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCisgICAgcmV0
dXJuMmkoY3R4LCAwLCByMSkKK2VuZCkKKword2FzbU9wKGk2NF9lcXosIFdhc21JNjRFcXosIG1h
Y3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9vcGVyYW5kLCB0MSwgdDApCisgICAgbW92ZSAw
LCB0MgorICAgIGJ0aW56IHQxLCAucmV0dXJuCisgICAgY2llcSB0MCwgMCwgdDIKKy5yZXR1cm46
CisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCisjIGY2NCBiaW5hcnkgb3BzCisKK3dhc21P
cChmNjRfY29weXNpZ24sIFdhc21GNjRDb3B5c2lnbiwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmko
Y3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKSAjIHQy
IHVudXNlZAorCisgICAgYW5kaSAweDdmZmZmZmZmLCB0MQorICAgIGFuZGkgMHg4MDAwMDAwMCwg
dDMKKyAgICBvcmkgdDMsIHQxCisKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKwor
IyBUeXBlIGNvbnZlcnNpb24gb3BzCisKK3dhc21PcChpNjRfZXh0ZW5kX3NfaTMyLCBXYXNtSTY0
RXh0ZW5kU0kzMiwgbWFjcm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisg
ICAgcnNoaWZ0aSB0MCwgMzEsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisK
K3dhc21PcChpNjRfZXh0ZW5kX3VfaTMyLCBXYXNtSTY0RXh0ZW5kVUkzMiwgbWFjcm8oY3R4KQor
ICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgcmV0dXJuMmkoY3R4LCAwLCB0MCkK
K2VuZCkKKword2FzbU9wKGY2NF9yZWludGVycHJldF9pNjQsIFdhc21GNjRSZWludGVycHJldEk2
NCwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIHQxLCB0MCkKKyAgICBm
aWkyZCB0MCwgdDEsIGZ0MAorICAgIHJldHVybmQoY3R4LCBmdDApCitlbmQpCisKK3dhc21PcChp
NjRfcmVpbnRlcnByZXRfZjY0LCBXYXNtSTY0UmVpbnRlcnByZXRGNjQsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKyAgICBmZDJpaSBmdDAsIHQwLCB0MQorICAg
IHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NfZjY0LCBX
YXNtSTMyVHJ1bmNTRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwg
ZnQwKQorCisgICAgbW92ZWlpIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDEsIHQwICMgSU5UMzJfTUlO
IC0gMS4wCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91
dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmVpaSAweDQxZTAwMDAwMDAwMDAwMDAsIHQxLCB0MCAj
IC1JTlQzMl9NSU4KKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQx
LCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVkMmlzIGZ0MCwgdDAKKyAgICByZXR1
cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91
dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfdV9mNjQsIFdhc21JMzJU
cnVuY1VGNjQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisK
KyAgICBtb3ZlaWkgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MSwgdDAgIyAtMS4wCisgICAgZmlpMmQg
dDAsIHQxLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKwor
ICAgIG1vdmVpaSAweDQxZjAwMDAwMDAwMDAwMDAsIHQxLCB0MCAjIElOVDMyX01JTiAqIC0yLjAK
KyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3Vu
ZHNUcnVuYworCisgICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkK
KworLm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVu
YykKK2VuZCkKKworc2xvd1dhc21PcChpNjRfdHJ1bmNfc19mMzIpCitzbG93V2FzbU9wKGk2NF90
cnVuY191X2YzMikKK3Nsb3dXYXNtT3AoaTY0X3RydW5jX3NfZjY0KQorc2xvd1dhc21PcChpNjRf
dHJ1bmNfdV9mNjQpCisKK3dhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTMyVHJ1bmNT
YXRGNjRTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisg
ICAgbW92ZWlpIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDEsIHQwICMgSU5UMzJfTUlOIC0gMS4wCisg
ICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmNTYXRNaW5Pck5hTgorCisgICAgbW92ZWlpIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDEsIHQw
ICMgLUlOVDMyX01JTgorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBm
dDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAor
ICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKKyAg
ICBiZGVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorICAgIG1vdmUgMCwgdDAK
KyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAgIG1v
dmUgKGNvbnN0ZXhwciBJTlQzMl9NQVgpLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91
dE9mQm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAoY29uc3RleHByIElOVDMyX01JTiksIHQw
CisgICAgcmV0dXJuaShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRf
dSwgV2FzbUkzMlRydW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29w
ZXJhbmQsIGZ0MCkKKworICAgIG1vdmVpaSAweGJmZjAwMDAwMDAwMDAwMDAsIHQxLCB0MCAjIC0x
LjAKKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZC
b3VuZHNUcnVuY1NhdE1pbgorCisgICAgbW92ZWlpIDB4NDFmMDAwMDAwMDAwMDAwMCwgdDEsIHQw
ICMgSU5UMzJfTUlOICogLTIuMAorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRndGVxdW4g
ZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQyaSBmdDAs
IHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAg
ICBtb3ZlIDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDMyX01BWCksIHQwCisgICAgcmV0dXJuaShj
dHgsIHQwKQorZW5kKQorCitzbG93V2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3MpCitzbG93V2Fz
bU9wKGk2NF90cnVuY19zYXRfZjMyX3UpCitzbG93V2FzbU9wKGk2NF90cnVuY19zYXRfZjY0X3Mp
CitzbG93V2FzbU9wKGk2NF90cnVuY19zYXRfZjY0X3UpCisKKyMgRXh0ZW5kIG9wcworCit3YXNt
T3AoaTY0X2V4dGVuZDhfcywgV2FzbUk2NEV4dGVuZDhTLCBtYWNybyhjdHgpCisgICAgbWxvYWRp
KGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBzeGIyaSB0MCwgdDAKKyAgICByc2hpZnRpIHQwLCAz
MSwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9leHRl
bmQxNl9zLCBXYXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9v
cGVyYW5kLCB0MCkKKyAgICBzeGgyaSB0MCwgdDAKKyAgICByc2hpZnRpIHQwLCAzMSwgdDEKKyAg
ICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9leHRlbmQzMl9zLCBX
YXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0
MCkKKyAgICByc2hpZnRpIHQwLCAzMSwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2Vu
ZCkKKworIyBBdG9taWNzCisKK21hY3JvIHdhc21BdG9taWNCaW5hcnlSTVdPcHMobG93ZXJDYXNl
T3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmksIGZuMmkpCisgICAgd2FzbU9w
KGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4JXVw
cGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRl
ciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZGko
Y3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRp
bmdPZmZzZXQodDMsIHQ1LCAxKQorICAgICAgICBmbmIodDAsIFt0M10sIHQyLCB0NSwgdDYpCisg
ICAgICAgIGFuZGkgMHhmZiwgdDYgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0CisgICAgICAgIGFz
c2VydChtYWNybyhvaykgYmliZXEgdDYsIDB4ZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybjJp
KGN0eCwgMCwgdDYpCisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzE2JWxvd2Vy
Q2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNy
byhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1
KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3ZhbHVlLCB0MCkKKyAg
ICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50
Q2hlY2sodDMsIHQ1LCAyKQorICAgICAgICBmbmgodDAsIFt0M10sIHQyLCB0NSwgdDYpCisgICAg
ICAgIGFuZGkgMHhmZmZmLCB0NiAjIEZJWE1FOiBaZXJvRXh0ZW5kMTZUbzY0CisgICAgICAgIGFz
c2VydChtYWNybyhvaykgYmliZXEgdDYsIDB4ZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJu
MmkoY3R4LCAwLCB0NikKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MzIlbG93
ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MzIldXBwZXJDYXNlT3Bjb2RlJVUsIG1h
Y3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dl
dHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkaShjdHgsIG1fdmFsdWUsIHQwKQor
ICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1l
bnRDaGVjayh0MywgdDUsIDQpCisgICAgICAgIGZuaSh0MCwgW3QzXSwgdDIsIHQ1LCB0NikKKyAg
ICAgICAgcmV0dXJuMmkoY3R4LCAwLCB0NikKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9t
aWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21JNjRBdG9taWNSbXcldXBwZXJDYXNlT3Bjb2Rl
JSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAg
ICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUs
IHQxLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRX
aXRoQWxpZ25tZW50Q2hlY2sodDMsIHQ1LCA4KQorICAgICAgICBwdXNoIHQ0ICMgVGhpcyBpcyB0
aGUgUEIsIHNvIG5lZWQgdG8gYmUgc2F2ZWQgYW5kIHJlc3RvcmVkCisgICAgICAgIGZuMmkodDEs
IHQwLCBbdDNdLCB0NCwgdDIsIHQ1LCB0NywgdDYpCisgICAgICAgIHBvcCB0NAorICAgICAgICBy
ZXR1cm4yaShjdHgsIHQ3LCB0NikKKyAgICBlbmQpCitlbmQKKworbWFjcm8gd2FzbUF0b21pY0Jp
bmFyeVJNV09wc1dpdGhXZWFrQ0FTKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBm
bmksIGZuMmkpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhsb3dlckNhc2VPcGNvZGUsIHVw
cGVyQ2FzZU9wY29kZSwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
NkdQUikKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAg
ICAgICAgICAgbG9hZGxpbmtiIG1lbSwgdDZHUFIKKyAgICAgICAgICAgICAgICBmbmkodDBHUFIs
IHQ2R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmRiIHQ1R1BSLCB0MkdQUiwg
bWVtCisgICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAg
ICAgZmVuY2UKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwg
dDVHUFIsIHQ2R1BSKQorICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgICAgICAubG9vcDoK
KyAgICAgICAgICAgICAgICBsb2FkbGlua2ggbWVtLCB0NkdQUgorICAgICAgICAgICAgICAgIGZu
aSh0MEdQUiwgdDZHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29uZGggdDVHUFIs
IHQyR1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAg
ICAgICAgICAgICBmZW5jZQorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDZHUFIpCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAg
IC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5raSBtZW0sIHQ2R1BSCisgICAgICAgICAg
ICAgICAgZm5pKHQwR1BSLCB0NkdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgc3RvcmVjb25k
aSB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9v
cAorICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDFH
UFIsIHQwR1BSLCBtZW0sIHQ0R1BSLCB0MkdQUiwgdDVHUFIsIHQ3R1BSLCB0NkdQUikKKyAgICAg
ICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9h
ZGxpbmsyaSBtZW0sIHQ2R1BSLCB0N0dQUgorICAgICAgICAgICAgICAgIGZuMmkodDFHUFIsIHQw
R1BSLCB0N0dQUiwgdDZHUFIsIHQ0R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNv
bmQyaSB0NUdQUiwgdDJHUFIsIHQ0R1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0NUdQ
UiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAgICBlbmQpCitlbmQKKwor
aWYgQVJNdjcKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FkZCwgQWRk
LAorICAgICAgICBtYWNybyhzcmMwLCBzcmMxLCBkc3QpCisgICAgICAgICAgICBhZGRpIHNyYzAs
IHNyYzEsIGRzdAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHNyYzBNc3csIHNyYzBMc3cs
IHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0THN3KQorICAgICAgICAgICAgYWRkaXMgc3Jj
MExzdywgc3JjMUxzdywgZHN0THN3CisgICAgICAgICAgICBhZGNpICBzcmMwTXN3LCBzcmMxTXN3
LCBkc3RNc3cKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vh
a0NBUyhfc3ViLCBTdWIsCisgICAgICAgIG1hY3JvKHNyYzAsIHNyYzEsIGRzdCkKKyAgICAgICAg
ICAgIHN1Ymkgc3JjMSwgc3JjMCwgZHN0CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8oc3Jj
ME1zdywgc3JjMExzdywgc3JjMU1zdywgc3JjMUxzdywgZHN0TXN3LCBkc3RMc3cpCisgICAgICAg
ICAgICBzdWJpcyBzcmMxTHN3LCBzcmMwTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIHNiY2kgIHNy
YzFNc3csIHNyYzBNc3csIGRzdE1zdworICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFy
eVJNV09wc1dpdGhXZWFrQ0FTKF94Y2hnLCBYY2hnLAorICAgICAgICBtYWNybyhzcmMwLCBzcmMx
LCBkc3QpCisgICAgICAgICAgICBtb3ZlIHNyYzAsIGRzdAorICAgICAgICBlbmQsCisgICAgICAg
IG1hY3JvKHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0THN3
KQorICAgICAgICAgICAgbW92ZSBzcmMwTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIG1vdmUgc3Jj
ME1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0
aFdlYWtDQVMoX2FuZCwgQW5kLAorICAgICAgICBtYWNybyhzcmMwLCBzcmMxLCBkc3QpCisgICAg
ICAgICAgICBhbmRpIHNyYzAsIHNyYzEsIGRzdAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3Jv
KHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0THN3KQorICAg
ICAgICAgICAgYW5kaSBzcmMwTHN3LCBzcmMxTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIGFuZGkg
c3JjME1zdywgc3JjMU1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmlu
YXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX29yLCBPciwKKyAgICAgICAgbWFjcm8oc3JjMCwgc3JjMSwg
ZHN0KQorICAgICAgICAgICAgb3JpIHNyYzAsIHNyYzEsIGRzdAorICAgICAgICBlbmQsCisgICAg
ICAgIG1hY3JvKHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0
THN3KQorICAgICAgICAgICAgb3JpIHNyYzBMc3csIHNyYzFMc3csIGRzdExzdworICAgICAgICAg
ICAgb3JpIHNyYzBNc3csIHNyYzFNc3csIGRzdE1zdworICAgICAgICBlbmQpCisgICAgd2FzbUF0
b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwKKyAgICAgICAgbWFjcm8oc3Jj
MCwgc3JjMSwgZHN0KQorICAgICAgICAgICAgeG9yaSBzcmMwLCBzcmMxLCBkc3QKKyAgICAgICAg
ZW5kLAorICAgICAgICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3LCBzcmMxTXN3LCBzcmMxTHN3LCBk
c3RNc3csIGRzdExzdykKKyAgICAgICAgICAgIHhvcmkgc3JjMExzdywgc3JjMUxzdywgZHN0THN3
CisgICAgICAgICAgICB4b3JpIHNyYzBNc3csIHNyYzFNc3csIGRzdE1zdworICAgICAgICBlbmQp
CitlbmQKKworbWFjcm8gd2FzbUF0b21pY0NvbXBhcmVFeGNoYW5nZU9wcyhsb3dlckNhc2VPcGNv
ZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5iLCBmbmgsIGZuaSwgZm4yaSkKKyAgICB3YXNtT3AoaTY0
X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzgldXBwZXJD
YXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0
MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkMmkoY3R4
LCBtX2V4cGVjdGVkLCB0MSwgdDApCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVlLCB0Nywg
dDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KHQzLCB0
NSwgMSkKKyAgICAgICAgZm5iKHQxLCB0MCwgdDcsIHQyLCBbdDNdLCB0NiwgdDUpCisgICAgICAg
IGFuZGkgMHhmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0CisgICAgICAgIGFzc2VydCht
YWNybyhvaykgYmliZXEgdDAsIDB4ZmYsIC5vayBlbmQpCisgICAgICAgIGFzc2VydChtYWNybyhv
aykgYmllcSB0MSwgMCwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCisg
ICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9wY29kZSVfdSwg
V2FzbUk2NEF0b21pY1JtdzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAg
IG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQs
IHQ1KQorICAgICAgICBtbG9hZDJpKGN0eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAgICBt
bG9hZDJpKGN0eCwgbV92YWx1ZSwgdDcsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJl
UG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0MywgdDUsIDIpCisgICAgICAg
IGZuaCh0MSwgdDAsIHQ3LCB0MiwgW3QzXSwgdDYsIHQ1KQorICAgICAgICBhbmRpIDB4ZmZmZiwg
dDAgIyBGSVhNRTogWmVyb0V4dGVuZDE2VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJp
YmVxIHQwLCAweGZmZmYsIC5vayBlbmQpCisgICAgICAgIGFzc2VydChtYWNybyhvaykgYmllcSB0
MSwgMCwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCisgICAgZW5kKQor
ICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0
b21pY1JtdzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShj
dHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAg
ICAgICBtbG9hZDJpKGN0eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAgICBtbG9hZDJpKGN0
eCwgbV92YWx1ZSwgdDcsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFk
ZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0MywgdDUsIDgpCisgICAgICAgIGZuaSh0MSwg
dDAsIHQ3LCB0MiwgW3QzXSwgdDYsIHQ1KQorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJpZXEg
dDEsIDAsIC5vayBlbmQpCisgICAgICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorICAgIGVuZCkK
KyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0b21p
Y1JtdyV1cHBlckNhc2VPcGNvZGUlLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1f
cG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBt
bG9hZDJpKGN0eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAgICBtbG9hZDJpKGN0eCwgbV92
YWx1ZSwgdDcsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09m
ZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0MywgdDUsIDgpCisgICAgICAgIHB1c2ggdDQgIyBUaGlz
IGlzIHRoZSBQQiwgc28gbmVlZCB0byBiZSBzYXZlZCBhbmQgcmVzdG9yZWQKKyAgICAgICAgZm4y
aSh0MSwgdDAsIHQ3LCB0MiwgW3QzXSwgdDQsIHQ2LCB0NSkKKyAgICAgICAgcG9wIHQ0CisgICAg
ICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorICAgIGVuZCkKK2VuZAorCitpZiBBUk12NworLy8g
ZXhwOiAiZXhwZWN0ZWQiLCB2YWw6ICJ2YWx1ZSIsIHJlczogInJlc3VsdCIKK3dhc21BdG9taWND
b21wYXJlRXhjaGFuZ2VPcHMoX2NtcHhjaGcsIENtcHhjaGcsCisgICAgbWFjcm8oZXhwTXN3LCBl
eHBMc3csIHZhbE1zdywgdmFsTHN3LCBtZW0sIHNjcmF0Y2gsIHJlc0xzdykKKyAgICAgICAgICAg
IGZlbmNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmtiIG1lbSwgcmVzTHN3
CisgICAgICAgICAgICBiaW5lcSBleHBMc3csIHJlc0xzdywgLmZhaWwKKyAgICAgICAgICAgIGJp
bmVxIGV4cE1zdywgMCwgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZGIgc2NyYXRjaCwgdmFs
THN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAgICAg
IGptcCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZGIgc2NyYXRj
aCwgcmVzTHN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAg
ICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIGZlbmNlCisgICAg
ICAgICAgICBtb3ZlIHJlc0xzdywgZXhwTHN3CisgICAgICAgICAgICBtb3ZlIDAsIGV4cE1zdwor
ICAgIGVuZCwKKyAgICBtYWNybyhleHBNc3csIGV4cExzdywgdmFsTXN3LCB2YWxMc3csIG1lbSwg
c2NyYXRjaCwgcmVzTHN3KQorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgLmxvb3A6CisgICAg
ICAgICAgICBsb2FkbGlua2ggbWVtLCByZXNMc3cKKyAgICAgICAgICAgIGJpbmVxIGV4cExzdywg
cmVzTHN3LCAuZmFpbAorICAgICAgICAgICAgYmluZXEgZXhwTXN3LCAwLCAuZmFpbAorICAgICAg
ICAgICAgc3RvcmVjb25kaCBzY3JhdGNoLCB2YWxMc3csIG1lbQorICAgICAgICAgICAgYmllcSBz
Y3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgor
ICAgICAgICAgICAgc3RvcmVjb25kaCBzY3JhdGNoLCByZXNMc3csIG1lbQorICAgICAgICAgICAg
YmllcSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5k
b25lOgorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIG1vdmUgcmVzTHN3LCBleHBMc3cK
KyAgICAgICAgICAgIG1vdmUgMCwgZXhwTXN3CisgICAgZW5kLAorICAgIG1hY3JvKGV4cE1zdywg
ZXhwTHN3LCB2YWxNc3csIHZhbExzdywgbWVtLCBzY3JhdGNoLCByZXNMc3cpCisgICAgICAgICAg
ICBmZW5jZQorICAgICAgICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5raSBtZW0sIHJlc0xz
dworICAgICAgICAgICAgYmluZXEgZXhwTHN3LCByZXNMc3csIC5mYWlsCisgICAgICAgICAgICBi
aW5lcSBleHBNc3csIDAsIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmRpIHNjcmF0Y2gsIHZh
bExzdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAgICAgICAg
ICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRpIHNjcmF0
Y2gsIHJlc0xzdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAg
ICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBmZW5jZQorICAg
ICAgICAgICAgbW92ZSByZXNMc3csIGV4cExzdworICAgICAgICAgICAgbW92ZSAwLCBleHBNc3cK
KyAgICBlbmQsCisgICAgbWFjcm8oZXhwTXN3LCBleHBMc3csIHZhbE1zdywgdmFsTHN3LCBtZW0s
IHNjcmF0Y2gsIHJlc01zdywgcmVzTHN3KQorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgLmxv
b3A6CisgICAgICAgICAgICBsb2FkbGluazJpIG1lbSwgcmVzTHN3LCByZXNNc3cKKyAgICAgICAg
ICAgIGJpbmVxIGV4cExzdywgcmVzTHN3LCAuZmFpbAorICAgICAgICAgICAgYmluZXEgZXhwTXN3
LCByZXNNc3csIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmQyaSBzY3JhdGNoLCB2YWxMc3cs
IHZhbE1zdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAgICAg
ICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmQyaSBz
Y3JhdGNoLCByZXNMc3csIHJlc01zdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAs
IC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAg
ICBmZW5jZQorICAgICAgICAgICAgbW92ZSByZXNMc3csIGV4cExzdworICAgICAgICAgICAgbW92
ZSByZXNNc3csIGV4cE1zdworICAgIGVuZCkKK2VuZAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHk2NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvV2ViQXNzZW1ibHk2NC5hc20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZlOWVhNDg4NTI0MjYwYTNl
NDQ3ZmY1MDA5MTk0ZTgwMGVlZTE3MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9XZWJBc3NlbWJseTY0LmFzbQpAQCAtMCwwICsxLDEyNTkgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDExLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBD
b3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
IyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgT3Bjb2RlcyB0aGF0IHNob3Vs
ZCBldmVudHVhbGx5IGJlIHNoYXJlZCB3aXRoIEpTIGxsaW50CisKK3dhc21PcChtb3YsIFdhc21N
b3YsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX3NyYywgdDApCisgICAgcmV0dXJucShj
dHgsIHQwKQorZW5kKQorCisjIFdhc20gc3BlY2lmaWMgYnl0ZWNvZGVzCisKK21hY3JvIGVtaXRD
aGVja0FuZFByZXBhcmVQb2ludGVyKGN0eCwgcG9pbnRlciwgb2Zmc2V0LCBzaXplKQorICAgIGxl
YXAgc2l6ZSAtIDFbcG9pbnRlciwgb2Zmc2V0XSwgdDUKKyAgICBicGIgdDUsIGJvdW5kc0NoZWNr
aW5nU2l6ZSwgLmNvbnRpbnVhdGlvbgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVt
b3J5QWNjZXNzKQorLmNvbnRpbnVhdGlvbjoKKyAgICBhZGRwIG1lbW9yeUJhc2UsIHBvaW50ZXIK
K2VuZAorCittYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgs
IHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKKyAgICBsZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNl
dF0sIHQ1CisgICAgYnBiIHQ1LCBib3VuZHNDaGVja2luZ1NpemUsIC5jb250aW51YXRpb24KKy50
aHJvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKKy5jb250
aW51YXRpb246CisgICAgYWRkcCBtZW1vcnlCYXNlLCBwb2ludGVyCisgICAgYWRkcCBvZmZzZXQs
IHBvaW50ZXIKK2VuZAorCittYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09m
ZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKKyAgICBs
ZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNldF0sIHQ1CisgICAgYnBiIHQ1LCBib3VuZHNDaGVj
a2luZ1NpemUsIC5jb250aW51YXRpb24KKy50aHJvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRP
ZkJvdW5kc01lbW9yeUFjY2VzcykKKy5jb250aW51YXRpb246CisgICAgYWRkcCBtZW1vcnlCYXNl
LCBwb2ludGVyCisgICAgYWRkcCBvZmZzZXQsIHBvaW50ZXIKKyAgICBidHBueiBwb2ludGVyLCAo
c2l6ZSAtIDEpLCAudGhyb3cKK2VuZAorCisKK21hY3JvIHdhc21Mb2FkT3AobmFtZSwgc3RydWN0
LCBzaXplLCBmbikKKyAgICB3YXNtT3AobmFtZSwgc3RydWN0LCBtYWNybyhjdHgpCisgICAgICAg
IG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDApCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQs
IHQxKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihjdHgsIHQwLCB0MSwgc2l6
ZSkKKyAgICAgICAgZm4oW3QwLCB0MV0sIHQyKQorICAgICAgICByZXR1cm5xKGN0eCwgdDIpCisg
ICAgZW5kKQorZW5kCisKK3dhc21Mb2FkT3AobG9hZDhfdSwgV2FzbUxvYWQ4VSwgMSwgbWFjcm8o
bWVtLCBkc3QpIGxvYWRiIG1lbSwgZHN0IGVuZCkKK3dhc21Mb2FkT3AobG9hZDE2X3UsIFdhc21M
b2FkMTZVLCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGggbWVtLCBkc3QgZW5kKQord2FzbUxvYWRP
cChsb2FkMzJfdSwgV2FzbUxvYWQzMlUsIDQsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaSBtZW0sIGRz
dCBlbmQpCit3YXNtTG9hZE9wKGxvYWQ2NF91LCBXYXNtTG9hZDY0VSwgOCwgbWFjcm8obWVtLCBk
c3QpIGxvYWRxIG1lbSwgZHN0IGVuZCkKKword2FzbUxvYWRPcChpMzJfbG9hZDhfcywgV2FzbUkz
MkxvYWQ4UywgMSwgbWFjcm8obWVtLCBkc3QpIGxvYWRic2kgbWVtLCBkc3QgZW5kKQord2FzbUxv
YWRPcChpNjRfbG9hZDhfcywgV2FzbUk2NExvYWQ4UywgMSwgbWFjcm8obWVtLCBkc3QpIGxvYWRi
c3EgbWVtLCBkc3QgZW5kKQord2FzbUxvYWRPcChpMzJfbG9hZDE2X3MsIFdhc21JMzJMb2FkMTZT
LCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGhzaSBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGk2
NF9sb2FkMTZfcywgV2FzbUk2NExvYWQxNlMsIDIsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaHNxIG1l
bSwgZHN0IGVuZCkKK3dhc21Mb2FkT3AoaTY0X2xvYWQzMl9zLCBXYXNtSTY0TG9hZDMyUywgNCwg
bWFjcm8obWVtLCBkc3QpIGxvYWRpcyBtZW0sIGRzdCBlbmQpCisKK21hY3JvIHdhc21TdG9yZU9w
KG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4pCisgICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8o
Y3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQorICAgICAgICB3Z2V0dShj
dHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4
LCB0MCwgdDEsIHNpemUpCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQorICAgICAg
ICBmbih0MiwgW3QwLCB0MV0pCisgICAgICAgIGRpc3BhdGNoKGN0eCkKKyAgICBlbmQpCitlbmQK
Kword2FzbVN0b3JlT3Aoc3RvcmU4LCBXYXNtU3RvcmU4LCAxLCBtYWNybyh2YWx1ZSwgbWVtKSBz
dG9yZWIgdmFsdWUsIG1lbSBlbmQpCit3YXNtU3RvcmVPcChzdG9yZTE2LCBXYXNtU3RvcmUxNiwg
MiwgbWFjcm8odmFsdWUsIG1lbSkgc3RvcmVoIHZhbHVlLCBtZW0gZW5kKQord2FzbVN0b3JlT3Ao
c3RvcmUzMiwgV2FzbVN0b3JlMzIsIDQsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlaSB2YWx1ZSwg
bWVtIGVuZCkKK3dhc21TdG9yZU9wKHN0b3JlNjQsIFdhc21TdG9yZTY0LCA4LCBtYWNybyh2YWx1
ZSwgbWVtKSBzdG9yZXEgdmFsdWUsIG1lbSBlbmQpCisKK3dhc21PcChyZWZfaXNfbnVsbCwgV2Fz
bVJlZklzTnVsbCwgbWFjcm8oY3R4KQorICAgIG1sb2FkcChjdHgsIG1fcmVmLCB0MCkKKyAgICBj
cWVxIHQwLCBWYWx1ZU51bGwsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorZW5kKQorCit3YXNt
T3AoZ2V0X2dsb2JhbCwgV2FzbUdldEdsb2JhbCwgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206
Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1f
Z2xvYmFsSW5kZXgsIHQxKQorICAgIGxvYWRxIFt0MCwgdDEsIDhdLCB0MAorICAgIHJldHVybnEo
Y3R4LCB0MCkKK2VuZCkKKword2FzbU9wKHNldF9nbG9iYWwsIFdhc21TZXRHbG9iYWwsIG1hY3Jv
KGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0s
IHQwCisgICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBtbG9hZHEoY3R4LCBt
X3ZhbHVlLCB0MikKKyAgICBzdG9yZXEgdDIsIFt0MCwgdDEsIDhdCisgICAgZGlzcGF0Y2goY3R4
KQorZW5kKQorCit3YXNtT3AoZ2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNtR2V0R2xv
YmFsUG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6
Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRl
eCwgdDEpCisgICAgbG9hZHEgW3QwLCB0MSwgOF0sIHQwCisgICAgbG9hZHEgW3QwXSwgdDAKKyAg
ICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChzZXRfZ2xvYmFsX3BvcnRhYmxlX2Jp
bmRpbmcsIFdhc21TZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkKKyAgICBsb2Fk
cCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUo
Y3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAg
ICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKKyAgICBzdG9yZXEgdDIsIFt0MF0KKyAgICBkaXNwYXRj
aChjdHgpCitlbmQpCisKKyMgT3Bjb2RlcyB0aGF0IGRvbid0IGhhdmUgdGhlIGBiM29wYCBlbnRy
eSBpbiB3YXNtLmpzb24uIFRoaXMgc2hvdWxkIGJlIGtlcHQgaW4gc3luYworCisjIGkzMiBiaW5h
cnkgb3BzCisKK3dhc21PcChpMzJfZGl2X3MsIFdhc21JMzJEaXZTLCBtYWNybyAoY3R4KQorICAg
IG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisKKyAg
ICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgYmluZXEgdDEsIC0xLCAuc2Fm
ZQorICAgIGJpZXEgdDAsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC50aHJvd0ludGVnZXJPdmVyZmxv
dworCisuc2FmZToKKyAgICBpZiBYODZfNjQKKyAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRv
IHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4CisgICAgICAgICMgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgorICAgICAgICBjZHFp
CisgICAgICAgIGlkaXZpIHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQK
KyAgICAgICAgZGl2aXMgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAor
ICAgIHJldHVybmkoY3R4LCB0MCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dF
eGNlcHRpb24oRGl2aXNpb25CeVplcm8pCisKKy50aHJvd0ludGVnZXJPdmVyZmxvdzoKKyAgICB0
aHJvd0V4Y2VwdGlvbihJbnRlZ2VyT3ZlcmZsb3cpCitlbmQpCisKK3dhc21PcChpMzJfZGl2X3Us
IFdhc21JMzJEaXZVLCBtYWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKKyAg
ICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisKKyAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5
WmVybworCisgICAgaWYgWDg2XzY0CisgICAgICAgIHhvcmkgdDIsIHQyCisgICAgICAgIHVkaXZp
IHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKKyAgICAgICAgZGl2aSB0
MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCisgICAgcmV0dXJuaShjdHgs
IHQwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lv
bkJ5WmVybykKK2VuZCkKKword2FzbU9wKGkzMl9yZW1fcywgV2FzbUkzMlJlbVMsIG1hY3JvIChj
dHgpCisgICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0
MSkKKworICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBiaW5lcSB0MSwg
LTEsIC5zYWZlCisgICAgYmluZXEgdDAsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC5zYWZlCisKKyAg
ICBtb3ZlIDAsIHQyCisgICAgam1wIC5yZXR1cm4KKworLnNhZmU6CisgICAgaWYgWDg2XzY0Cisg
ICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXgg
YW5kIHQyIGlzIHJkeAorICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDM2OTIKKyAgICAgICAgY2RxaQorICAgICAgICBpZGl2aSB0MQorICAgIGVsc2lm
IEFSTTY0IG9yIEFSTTY0RQorICAgICAgICBkaXZpcyB0MSwgdDAsIHQyCisgICAgICAgIG11bGkg
dDEsIHQyCisgICAgICAgIHN1YmkgdDAsIHQyLCB0MgorICAgIGVsc2lmIFJJU0NWNjQKKyAgICAg
ICAgcmVtaXMgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorCisucmV0
dXJuOgorICAgIHJldHVybmkoY3R4LCB0MikKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAg
dGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpMzJfcmVtX3Us
IFdhc21JMzJSZW1VLCBtYWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKKyAg
ICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisKKyAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5
WmVybworCisgICAgaWYgWDg2XzY0CisgICAgICAgIHhvcmkgdDIsIHQyCisgICAgICAgIHVkaXZp
IHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCisgICAgICAgIGRpdmkgdDEsIHQwLCB0Mgor
ICAgICAgICBtdWxpIHQxLCB0MgorICAgICAgICBzdWJpIHQwLCB0MiwgdDIKKyAgICBlbHNpZiBS
SVNDVjY0CisgICAgICAgIHJlbWkgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAg
IGVuZAorICAgIHJldHVybmkoY3R4LCB0MikKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAg
dGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKKyMgaTY0IGJpbmFyeSBvcHMK
Kword2FzbU9wKGk2NF9hZGQsIFdhc21JNjRBZGQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4
LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGFkZHEgdDAsIHQx
CisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X3N1YiwgV2FzbUk2NFN1
YiwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4
LCBtX3JocywgdDEpCisgICAgc3VicSB0MSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQp
CisKK3dhc21PcChpNjRfbXVsLCBXYXNtSTY0TXVsLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0
eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBtdWxxIHQwLCB0
MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9kaXZfcywgV2FzbUk2
NERpdlMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2Fk
cShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisK
KyAgICBicW5lcSB0MSwgLTEsIC5zYWZlCisgICAgYnFlcSB0MCwgY29uc3RleHByIElOVDY0X01J
TiwgLnRocm93SW50ZWdlck92ZXJmbG93CisKKy5zYWZlOgorICAgIGlmIFg4Nl82NAorICAgICAg
ICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0
MiBpcyByZHgKKyAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAzNjkyCisgICAgICAgIGNxb3EKKyAgICAgICAgaWRpdnEgdDEKKyAgICBlbHNpZiBBUk02
NCBvciBBUk02NEUgb3IgUklTQ1Y2NAorICAgICAgICBkaXZxcyB0MSwgdDAKKyAgICBlbHNlCisg
ICAgICAgIGVycm9yCisgICAgZW5kCisgICAgcmV0dXJucShjdHgsIHQwKQorCisudGhyb3dEaXZp
c2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKKworLnRocm93
SW50ZWdlck92ZXJmbG93OgorICAgIHRocm93RXhjZXB0aW9uKEludGVnZXJPdmVyZmxvdykKK2Vu
ZCkKKword2FzbU9wKGk2NF9kaXZfdSwgV2FzbUk2NERpdlUsIG1hY3JvIChjdHgpCisgICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0
cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBpZiBYODZfNjQKKyAgICAgICAgeG9y
cSB0MiwgdDIKKyAgICAgICAgdWRpdnEgdDEKKyAgICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3Ig
UklTQ1Y2NAorICAgICAgICBkaXZxIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAg
ICBlbmQKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAg
IHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTY0X3JlbV9z
LCBXYXNtSTY0UmVtUywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisg
ICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRxeiB0MSwgLnRocm93RGl2aXNpb25C
eVplcm8KKworICAgIGJxbmVxIHQxLCAtMSwgLnNhZmUKKyAgICBicW5lcSB0MCwgY29uc3RleHBy
IElOVDY0X01JTiwgLnNhZmUKKworICAgIG1vdmUgMCwgdDIKKyAgICBqbXAgLnJldHVybgorCisu
c2FmZToKKyAgICBpZiBYODZfNjQKKyAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRp
Y19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4CisgICAgICAgICMgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgorICAgICAgICBjcW9xCisgICAg
ICAgIGlkaXZxIHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCisgICAgICAgIGRpdnFzIHQx
LCB0MCwgdDIKKyAgICAgICAgbXVscSB0MSwgdDIKKyAgICAgICAgc3VicSB0MCwgdDIsIHQyCisg
ICAgZWxzaWYgUklTQ1Y2NAorICAgICAgICByZW1xcyB0MSwgdDAKKyAgICBlbHNlCisgICAgICAg
IGVycm9yCisgICAgZW5kCisKKy5yZXR1cm46CisgICAgcmV0dXJucShjdHgsIHQyKSAjIHJkeCBo
YXMgdGhlIHJlbWFpbmRlcgorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2Vw
dGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9yZW1fdSwgV2FzbUk2NFJl
bVUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShj
dHgsIG1fcmhzLCB0MSkKKworICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAg
ICBpZiBYODZfNjQKKyAgICAgICAgeG9ycSB0MiwgdDIKKyAgICAgICAgdWRpdnEgdDEKKyAgICBl
bHNpZiBBUk02NCBvciBBUk02NEUKKyAgICAgICAgZGl2cSB0MSwgdDAsIHQyCisgICAgICAgIG11
bHEgdDEsIHQyCisgICAgICAgIHN1YnEgdDAsIHQyLCB0MgorICAgIGVsc2lmIFJJU0NWNjQKKyAg
ICAgICAgcmVtcSB0MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCisgICAg
cmV0dXJucShjdHgsIHQyKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2Vw
dGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9hbmQsIFdhc21JNjRBbmQs
IG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwg
bV9yaHMsIHQxKQorICAgIGFuZHEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQor
Cit3YXNtT3AoaTY0X29yLCBXYXNtSTY0T3IsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBt
X2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIG9ycSB0MCwgdDEKKyAg
ICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfeG9yLCBXYXNtSTY0WG9yLCBt
YWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1f
cmhzLCB0MSkKKyAgICB4b3JxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKwor
d2FzbU9wKGk2NF9zaGwsIFdhc21JNjRTaGwsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBt
X2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorICAgIGxzaGlmdHEgdDEsIHQw
CisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3Nocl91LCBXYXNtSTY0
U2hyVSwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGko
Y3R4LCBtX3JocywgdDEpCisgICAgdXJzaGlmdHEgdDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQw
KQorZW5kKQorCit3YXNtT3AoaTY0X3Nocl9zLCBXYXNtSTY0U2hyUywgbWFjcm8oY3R4KQorICAg
IG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisgICAg
cnNoaWZ0cSB0MSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRf
cm90ciwgV2FzbUk2NFJvdHIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDAp
CisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorICAgIHJyb3RhdGVxIHQxLCB0MAorICAgIHJl
dHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9yb3RsLCBXYXNtSTY0Um90bCwgbWFj
cm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3Jo
cywgdDEpCisgICAgbHJvdGF0ZXEgdDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQor
Cit3YXNtT3AoaTY0X2VxLCBXYXNtSTY0RXEsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBt
X2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxZXEgdDAsIHQxLCB0
MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChp
NjRfbmUsIFdhc21JNjROZSwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkK
KyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FuZXEgdDAsIHQxLCB0MgorICAgIGFu
ZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfbHRfcywg
V2FzbUk2NEx0UywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBt
bG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FsdCB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0
MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9sZV9zLCBXYXNtSTY0
TGVTLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShj
dHgsIG1fcmhzLCB0MSkKKyAgICBjcWx0ZXEgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAg
ICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfbHRfdSwgV2FzbUk2NEx0VSwg
bWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBt
X3JocywgdDEpCisgICAgY3FiIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJu
aShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2xlX3UsIFdhc21JNjRMZVUsIG1hY3JvKGN0
eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQx
KQorICAgIGNxYmVxIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgs
IHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2d0X3MsIFdhc21JNjRHdFMsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAg
IGNxZ3QgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitl
bmQpCisKK3dhc21PcChpNjRfZ2VfcywgV2FzbUk2NEdlUywgbWFjcm8oY3R4KQorICAgIG1sb2Fk
cShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FndGVx
IHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQor
Cit3YXNtT3AoaTY0X2d0X3UsIFdhc21JNjRHdFUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4
LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxYSB0MCwgdDEs
IHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9w
KGk2NF9nZV91LCBXYXNtSTY0R2VVLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMs
IHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWFlcSB0MCwgdDEsIHQyCisg
ICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKworIyBpNjQgdW5hcnkg
b3BzCisKK3dhc21PcChpNjRfY3R6LCBXYXNtSTY0Q3R6LCBtYWNybyAoY3R4KQorICAgIG1sb2Fk
cShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgdHpjbnRxIHQwLCB0MAorICAgIHJldHVybnEoY3R4
LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9jbHosIFdhc21JNjRDbHosIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIGx6Y250cSB0MCwgdDEKKyAgICByZXR1
cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfcG9wY250LCBXYXNtSTY0UG9wY250LCBt
YWNybyAoY3R4KQorICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgYTEpCisgICAgcHJlcGFyZVN0
YXRlRm9yQ0NhbGwoKQorICAgIG1vdmUgUEMsIGEwCisgICAgY0NhbGwyKF9zbG93X3BhdGhfd2Fz
bV9wb3Bjb3VudGxsKQorICAgIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQorICAgIHJldHVybnEo
Y3R4LCByMSkKK2VuZCkKKword2FzbU9wKGk2NF9lcXosIFdhc21JNjRFcXosIG1hY3JvKGN0eCkK
KyAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIGNxZXEgdDAsIDAsIHQwCisgICAg
cmV0dXJuaShjdHgsIHQwKQorZW5kKQorCisjIGY2NCBiaW5hcnkgb3BzCisKK3dhc21PcChmNjRf
Y29weXNpZ24sIFdhc21GNjRDb3B5c2lnbiwgbWFjcm8oY3R4KQorICAgIG1sb2FkZChjdHgsIG1f
bGhzLCBmdDApCisgICAgbWxvYWRkKGN0eCwgbV9yaHMsIGZ0MSkKKworICAgIGZkMnEgZnQxLCB0
MQorICAgIG1vdmUgMHg4MDAwMDAwMDAwMDAwMDAwLCB0MgorICAgIGFuZHEgdDIsIHQxCisKKyAg
ICBmZDJxIGZ0MCwgdDAKKyAgICBtb3ZlIDB4N2ZmZmZmZmZmZmZmZmZmZiwgdDIKKyAgICBhbmRx
IHQyLCB0MAorCisgICAgb3JxIHQxLCB0MAorICAgIGZxMmQgdDAsIGZ0MAorICAgIHJldHVybmQo
Y3R4LCBmdDApCitlbmQpCisKKyMgVHlwZSBjb252ZXJzaW9uIG9wcworCit3YXNtT3AoaTY0X2V4
dGVuZF9zX2kzMiwgV2FzbUk2NEV4dGVuZFNJMzIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGkoY3R4
LCBtX29wZXJhbmQsIHQwKQorICAgIHN4aTJxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkK
K2VuZCkKKword2FzbU9wKGk2NF9leHRlbmRfdV9pMzIsIFdhc21JNjRFeHRlbmRVSTMyLCBtYWNy
byhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICB6eGkycSB0MCwgdDEK
KyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChmNjRfcmVpbnRlcnByZXRfaTY0
LCBXYXNtRjY0UmVpbnRlcnByZXRJNjQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29w
ZXJhbmQsIHQwKQorICAgIGZxMmQgdDAsIGZ0MAorICAgIHJldHVybmQoY3R4LCBmdDApCitlbmQp
CisKK3dhc21PcChpNjRfcmVpbnRlcnByZXRfZjY0LCBXYXNtSTY0UmVpbnRlcnByZXRGNjQsIG1h
Y3JvKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKyAgICBmZDJxIGZ0MCwg
dDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc19mNjQs
IFdhc21JMzJUcnVuY1NGNjQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5k
LCBmdDApCisKKyAgICBtb3ZlIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDAgIyBJTlQzMl9NSU4gLSAx
LjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmMKKworICAgIG1vdmUgMHg0MWUwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQzMl9NSU4KKyAg
ICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMK
KworICAgIHRydW5jYXRlZDJpcyBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0
T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5k
KQorCit3YXNtT3AoaTMyX3RydW5jX3VfZjY0LCBXYXNtSTMyVHJ1bmNVRjY0LCBtYWNybyAoY3R4
KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGJmZjAwMDAw
MDAwMDAwMDAsIHQwICMgLTEuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwg
ZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZSAweDQxZjAwMDAwMDAwMDAwMDAsIHQw
ICMgSU5UMzJfTUlOICogLTIuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwg
ZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAorICAgIHJl
dHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24o
T3V0T2ZCb3VuZHNUcnVuYykKK2VuZCkKKword2FzbU9wKGk2NF90cnVuY19zX2YzMiwgV2FzbUk2
NFRydW5jU0YzMiwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkK
KworICAgIG1vdmUgMHhkZjAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4KKyAgICBmaTJmIHQwLCBmdDEK
KyAgICBiZmx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlIDB4NWYw
MDAwMDAsIHQwICMgLUlOVDY0X01JTgorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmZ3RlcXVuIGZ0
MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVmMnFzIGZ0MCwgdDAKKyAg
ICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0
aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfdV9mMzIsIFdh
c21JNjRUcnVuY1VGMzIsIG1hY3JvIChjdHgpCisgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBm
dDApCisKKyAgICBtb3ZlIDB4YmY4MDAwMDAsIHQwICMgLTEuMAorICAgIGZpMmYgdDAsIGZ0MQor
ICAgIGJmbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZSAweDVm
ODAwMDAwLCB0MCAjIElOVDY0X01JTiAqIC0yLjAKKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmd0
ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZjJxIGZ0MCwg
dDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93
RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc19m
NjQsIFdhc21JNjRUcnVuY1NGNjQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVy
YW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YzNlMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4K
KyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5j
CisKKyAgICBtb3ZlIDB4NDNlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCisgICAgZnEy
ZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAg
ICB0cnVuY2F0ZWQycXMgZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91
bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKK2VuZCkKKwor
d2FzbU9wKGk2NF90cnVuY191X2Y2NCwgV2FzbUk2NFRydW5jVUY2NCwgbWFjcm8gKGN0eCkKKyAg
ICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAw
MDAwLCB0MCAjIC0xLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwg
Lm91dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmUgMHg0M2YwMDAwMDAwMDAwMDAwLCB0MCAjIElO
VDY0X01JTiAqIC0yLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwg
Lm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZDJxIGZ0MCwgdDAKKyAgICByZXR1cm5x
KGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91dE9m
Qm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTMy
VHJ1bmNTYXRGNjRTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQw
KQorCisgICAgbW92ZSAweGMxZTAwMDAwMDAyMDAwMDAsIHQwICMgSU5UMzJfTUlOIC0gMS4wCisg
ICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5j
U2F0TWluT3JOYU4KKworICAgIG1vdmUgMHg0MWUwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQzMl9N
SU4KKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZDJpcyBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgs
IHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgorICAgIGJkZXEgZnQwLCBmdDAs
IC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybmkoY3R4
LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIElO
VDMyX01BWCksIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1pbjoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UMzJfTUlOKSwgdDAKKyAgICByZXR1cm5pKGN0
eCwgdDApCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF91LCBXYXNtSTMyVHJ1bmNT
YXRGNjRVLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisg
ICAgbW92ZSAweGJmZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAorICAgIGZxMmQgdDAsIGZ0MQor
ICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorCisgICAgbW92
ZSAweDQxZjAwMDAwMDAwMDAwMDAsIHQwICMgSU5UMzJfTUlOICogLTIuMAorICAgIGZxMmQgdDAs
IGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisg
ICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91
bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKwor
Lm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIFVJTlQzMl9NQVgp
LCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF90cnVuY19zYXRf
ZjMyX3MsIFdhc21JNjRUcnVuY1NhdEYzMlMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRmKGN0eCwg
bV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4ZGYwMDAwMDAsIHQwICMgSU5UNjRfTUlOCisg
ICAgZmkyZiB0MCwgZnQxCisgICAgYmZsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1pbk9yTmFOCisKKyAgICBtb3ZlIDB4NWYwMDAwMDAsIHQwICMgLUlOVDY0X01JTgorICAgIGZp
MmYgdDAsIGZ0MQorICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1h
eAorCisgICAgdHJ1bmNhdGVmMnFzIGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5v
dXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU46CisgICAgYmZlcSBmdDAsIGZ0MCwgLm91dE9mQm91
bmRzVHJ1bmNTYXRNaW4KKyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUFYKSwg
dDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAg
IG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9NSU4pLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2Vu
ZCkKKword2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3UsIFdhc21JNjRUcnVuY1NhdEYzMlUsIG1h
Y3JvIChjdHgpCisgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4
YmY4MDAwMDAsIHQwICMgLTEuMAorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmbHRlcXVuIGZ0MCwg
ZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorCisgICAgbW92ZSAweDVmODAwMDAwLCB0MCAj
IElOVDY0X01JTiAqIC0yLjAKKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmd0ZXF1biBmdDAsIGZ0
MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZjJxIGZ0MCwgdDAKKyAg
ICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUg
MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4Ogor
ICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UNjRfTUFYKSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDAp
CitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTY0VHJ1bmNTYXRGNjRT
LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92
ZSAweGMzZTAwMDAwMDAwMDAwMDAsIHQwICMgSU5UNjRfTUlOCisgICAgZnEyZCB0MCwgZnQxCisg
ICAgYmRsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOCisKKyAgICBt
b3ZlIDB4NDNlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCisgICAgZnEyZCB0MCwgZnQx
CisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0
cnVuY2F0ZWQycXMgZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRz
VHJ1bmNTYXRNaW5Pck5hTjoKKyAgICBiZGVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1pbgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5k
c1RydW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9NQVgpLCB0MAorICAgIHJl
dHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAoY29u
c3RleHByIElOVDY0X01JTiksIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNt
T3AoaTY0X3RydW5jX3NhdF9mNjRfdSwgV2FzbUk2NFRydW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkK
KyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZmYwMDAwMDAw
MDAwMDAwLCB0MCAjIC0xLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0
MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKworICAgIG1vdmUgMHg0M2YwMDAwMDAwMDAwMDAw
LCB0MCAjIElOVDY0X01JTiAqIC0yLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZDJxIGZ0MCwg
dDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAg
IG1vdmUgMCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0
TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UNjRfTUFYKSwgdDAKKyAgICByZXR1cm5xKGN0
eCwgdDApCitlbmQpCisKKyMgRXh0ZW5kIG9wcworCit3YXNtT3AoaTY0X2V4dGVuZDhfcywgV2Fz
bUk2NEV4dGVuZDhTLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkK
KyAgICBzeGIycSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChp
NjRfZXh0ZW5kMTZfcywgV2FzbUk2NEV4dGVuZDE2UywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShj
dHgsIG1fb3BlcmFuZCwgdDApCisgICAgc3hoMnEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQx
KQorZW5kKQorCit3YXNtT3AoaTY0X2V4dGVuZDMyX3MsIFdhc21JNjRFeHRlbmQxNlMsIG1hY3Jv
KGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHN4aTJxIHQwLCB0MQor
ICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKworIyBBdG9taWNzCisKK21hY3JvIHdhc21BdG9t
aWNCaW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5o
LCBmbmksIGZucSkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVf
dSwgV2FzbUk2NEF0b21pY1JtdzgldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAg
ICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNl
dCwgdDEpCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQwKQorICAgICAgICBlbWl0Q2hl
Y2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgsIHQzLCB0MSwgMSkKKyAgICAgICAg
Zm5iKHQwLCBbdDNdLCB0MiwgdDUsIHQxKQorICAgICAgICBhbmRxIDB4ZmYsIHQwICMgRklYTUU6
IFplcm9FeHRlbmQ4VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZm
LCAub2sgZW5kKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorICAgIHdhc21P
cChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzE2
JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9p
bnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBtbG9h
ZHEoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJB
ZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDIpCisgICAgICAgIGZu
aCh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKKyAgICAgICAgYW5kcSAweGZmZmYsIHQwICMgRklYTUU6
IFplcm9FeHRlbmQxNlRvNjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhm
ZmZmLCAub2sgZW5kKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorICAgIHdh
c21PcChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1Jt
dzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1f
cG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBt
bG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50
ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDQpCisgICAgICAg
IGZuaSh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJl
cSB0MCwgMHhmZmZmZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAg
IGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2
NEF0b21pY1JtdyV1cHBlckNhc2VPcGNvZGUlLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShj
dHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAg
ICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFy
ZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDgpCisg
ICAgICAgIGZucSh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKKyAgICAgICAgcmV0dXJucShjdHgsIHQw
KQorICAgIGVuZCkKK2VuZAorCittYWNybyB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtD
QVMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuaSwgZm5xKQorICAgIHdhc21B
dG9taWNCaW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBp
ZiBYODZfNjQKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgorICAgICAgICAgICAg
ICAgIGxvYWRiIG1lbSwgdDBHUFIKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAg
IG1vdmUgdDBHUFIsIHQyR1BSCisgICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKKyAg
ICAgICAgICAgICAgICBiYXRvbWljd2Vha2Nhc2IgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2Fk
bGlua2FjcWIgbWVtLCB0MUdQUgorICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQy
R1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29uZHJlbGIgdDVHUFIsIHQyR1BSLCBtZW0KKyAg
ICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBtb3Zl
IHQxR1BSLCB0MEdQUgorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFj
cm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIGlmIFg4Nl82
NAorICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCisgICAgICAgICAgICAgICAgbG9h
ZGggbWVtLCB0MEdQUgorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbW92ZSB0
MEdQUiwgdDJHUFIKKyAgICAgICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQorICAgICAgICAg
ICAgICAgIGJhdG9taWN3ZWFrY2FzaCB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNx
aCBtZW0sIHQxR1BSCisgICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisg
ICAgICAgICAgICAgICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAg
ICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAorICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIs
IHQwR1BSCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgaWYgWDg2XzY0CisgICAg
ICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKKyAgICAgICAgICAgICAgICBsb2FkaSBtZW0s
IHQwR1BSCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0
MkdQUgorICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAg
YmF0b21pY3dlYWtjYXNpIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAorICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9hZGxpbmthY3FpIG1lbSwg
dDFHUFIKKyAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAg
ICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICAgICAg
YmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIK
KyAgICAgICAgICAgIGVuZAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBpZiBYODZfNjQKKyAgICAgICAgICAg
ICAgICBtb3ZlIHQwR1BSLCB0NUdQUgorICAgICAgICAgICAgICAgIGxvYWRxIG1lbSwgdDBHUFIK
KyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCisg
ICAgICAgICAgICAgICAgZm5xKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBiYXRvbWlj
d2Vha2Nhc3EgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2FkbGlua2FjcXEgbWVtLCB0MUdQUgor
ICAgICAgICAgICAgICAgIGZucSh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAg
IHN0b3JlY29uZHJlbHEgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0
NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgorICAgICAg
ICAgICAgZW5kCisgICAgICAgIGVuZCkKK2VuZAorCitpZiBYODZfNjQKKyAgICB3YXNtQXRvbWlj
QmluYXJ5Uk1XT3BzKF9hZGQsIEFkZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGIgdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRoIHQwR1BS
LCBtZW0gZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KSBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZHEgdDBHUFIsIG1lbSBlbmQpCisg
ICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfc3ViLCBTdWIsCisgICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJiIHQwR1BSLCBtZW0gZW5k
LAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4
Y2hnc3ViaCB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1YmkgdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJxIHQwR1BS
LCBtZW0gZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hjaGcsIFhjaGcsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdiIHQw
R1BSLCBtZW0gZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKSBhdG9taWN4Y2hnaCB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2kgdDBHUFIsIG1lbSBlbmQsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdxIHQw
R1BSLCBtZW0gZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYW5k
LCBBbmQsCisgICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgIGFuZGkgdDVH
UFIsIHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQorICAg
ICAgICAgICAgYW5kcSB0NUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNC
aW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfb3IsIE9yLAorICAgICAgICBtYWNybyh0NUdQUiwgdDJH
UFIpCisgICAgICAgICAgICBvcmkgdDVHUFIsIHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAg
bWFjcm8odDVHUFIsIHQyR1BSKQorICAgICAgICAgICAgb3JxIHQ1R1BSLCB0MkdQUgorICAgICAg
ICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwK
KyAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQorICAgICAgICAgICAgeG9yaSB0NUdQUiwgdDJH
UFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCisgICAgICAgICAg
ICB4b3JxIHQ1R1BSLCB0MkdQUgorICAgICAgICBlbmQpCitlbHNpZiBBUk02NEUKKyAgICB3YXNt
QXRvbWljQmluYXJ5Uk1XT3BzKF9hZGQsIEFkZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwg
dDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGIgdDBHUFIsIG1lbSwgdDBHUFIgZW5k
LAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4
Y2hnYWRkaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0sIHQwR1BSIGVu
ZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWlj
eGNoZ2FkZHEgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdP
cHMoX3N1YiwgU3ViLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKQorICAgICAgICAgICAgbmVncSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGIg
dDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgbmVncSB0MEdQUgorICAgICAgICAg
ICAgYXRvbWljeGNoZ2FkZGggdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kLAorICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgbmVn
cSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1lbSwgdDBHUFIKKyAg
ICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KQorICAgICAgICAgICAgbmVncSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2FkZHEgdDBH
UFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMo
X2FuZCwgQW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KQorICAgICAgICAgICAgbm90cSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFyYiB0
MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBub3RxIHQwR1BSCisgICAgICAgICAg
ICBhdG9taWN4Y2hnY2xlYXJoIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCwKKyAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5v
dHEgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcmkgdDBHUFIsIG1lbSwgdDBHUFIK
KyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKQorICAgICAgICAgICAgbm90cSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFy
cSB0MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJN
V09wcyhfb3IsIE9yLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKSBhdG9taWN4Y2hnb3JiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29yaCB0MEdQUiwgbWVt
LCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFH
UFIpIGF0b21pY3hjaGdvcmkgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnb3JxIHQwR1BSLCBtZW0s
IHQwR1BSIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94b3IsIFhvciwKKyAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmIg
dDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwg
dDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9yaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3Jp
IHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcnEgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQorICAg
IHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hjaGcsIFhjaGcsCisgICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdiIHQwR1BSLCBtZW0sIHQwR1BS
IGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRv
bWljeGNoZ2ggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQs
CisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hj
aGdxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKK2Vsc2lmIEFSTTY0IG9yIFJJU0NWNjQKKyAgICB3
YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FkZCwgQWRkLAorICAgICAgICBtYWNy
byh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgYWRkaSB0MEdQUiwgdDFHUFIsIHQy
R1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAg
ICAgICAgICAgIGFkZHEgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQpCisgICAgd2Fz
bUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9zdWIsIFN1YiwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIHN1YmkgdDFHUFIsIHQwR1BSLCB0MkdQ
UgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAg
ICAgICAgICBzdWJxIHQxR1BSLCB0MEdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21B
dG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeGNoZywgWGNoZywKKyAgICAgICAgbWFjcm8o
dDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCisgICAg
ICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAg
IG1vdmUgdDBHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1X
T3BzV2l0aFdlYWtDQVMoX2FuZCwgQW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQy
R1BSKQorICAgICAgICAgICAgYW5kaSB0MEdQUiwgdDFHUFIsIHQyR1BSCisgICAgICAgIGVuZCwK
KyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIGFuZHEgdDBH
UFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09w
c1dpdGhXZWFrQ0FTKF9vciwgT3IsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIp
CisgICAgICAgICAgICBvcmkgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBvcnEgdDBHUFIsIHQx
R1BSLCB0MkdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhX
ZWFrQ0FTKF94b3IsIFhvciwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAg
ICAgICAgICAgIHhvcmkgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAg
IG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICB4b3JxIHQwR1BSLCB0MUdQ
UiwgdDJHUFIKKyAgICAgICAgZW5kKQorZW5kCisKK21hY3JvIHdhc21BdG9taWNDb21wYXJlRXhj
aGFuZ2VPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmks
IGZucSkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2Fz
bUk2NEF0b21pY1JtdzgldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxv
YWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEp
CisgICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQorICAgICAgICBtbG9hZHEoY3R4
LCBtX3ZhbHVlLCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdP
ZmZzZXQoY3R4LCB0MywgdDEsIDEpCisgICAgICAgIGZuYih0MCwgdDIsIFt0M10sIHQ1LCB0MSkK
KyAgICAgICAgYW5kcSAweGZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kOFRvNjQKKyAgICAgICAg
YXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJu
cShjdHgsIHQwKQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcxNiVsb3dlckNh
c2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXcxNiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8o
Y3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShj
dHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCisg
ICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVw
YXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgMikK
KyAgICAgICAgZm5oKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQorICAgICAgICBhbmRxIDB4ZmZmZiwg
dDAgIyBGSVhNRTogWmVyb0V4dGVuZDE2VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJx
YmVxIHQwLCAweGZmZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBl
bmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MzIlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNt
STY0QXRvbWljUm13MzIldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxv
YWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEp
CisgICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQorICAgICAgICBtbG9hZHEoY3R4
LCBtX3ZhbHVlLCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdP
ZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDQpCisgICAgICAgIGZuaSh0MCwg
dDIsIFt0M10sIHQ1LCB0MSkKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhm
ZmZmZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKKyAg
ICB3YXNtT3AoaTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0b21pY1Jt
dyV1cHBlckNhc2VPcGNvZGUlLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9p
bnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBtbG9h
ZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIp
CisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdu
bWVudENoZWNrKGN0eCwgdDMsIHQxLCA4KQorICAgICAgICBmbnEodDAsIHQyLCBbdDNdLCB0NSwg
dDEpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBlbmQpCitlbmQKKworaWYgWDg2XzY0
IG9yIEFSTTY0RSBvciBBUk02NCBvciBSSVNDVjY0CisjIHQwR1BSID0+IGV4cGVjdGVkLCB0MkdQ
UiA9PiB2YWx1ZSwgbWVtID0+IG1lbW9yeSByZWZlcmVuY2UKK3dhc21BdG9taWNDb21wYXJlRXhj
aGFuZ2VPcHMoX2NtcHhjaGcsIENtcHhjaGcsCisgICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0s
IHQ1R1BSLCB0MUdQUikKKyAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQorICAgICAgICAgICAg
YnFhIHQwR1BSICwgMHhmZiwgLmZhaWwKKyAgICAgICAgICAgIGF0b21pY3dlYWtjYXNiIHQwR1BS
LCB0MkdQUiwgbWVtCisgICAgICAgICAgICBqbXAgLmRvbmUKKyAgICAgICAgLmZhaWw6CisgICAg
ICAgICAgICBhdG9taWNsb2FkYiBtZW0sIHQwR1BSCisgICAgICAgIC5kb25lOgorICAgICAgICBl
bHNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmthY3FiIG1lbSwgdDFHUFIK
KyAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKKyAgICAgICAgICAgIHN0b3Jl
Y29uZHJlbGIgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5k
b25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBz
dG9yZWNvbmRyZWxiIHQ1R1BSLCB0MUdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAw
LCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAgICAg
ICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgZW5kCisgICAgZW5kLAorICAgIG1hY3JvKHQw
R1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCisgICAgICAgIGlmIFg4Nl82NCBvciBBUk02
NEUKKyAgICAgICAgICAgIGJxYSB0MEdQUiwgMHhmZmZmLCAuZmFpbAorICAgICAgICAgICAgYXRv
bWljd2Vha2Nhc2ggdDBHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGptcCAuZG9uZQorICAg
ICAgICAuZmFpbDoKKyAgICAgICAgICAgIGF0b21pY2xvYWRoIG1lbSwgdDBHUFIKKyAgICAgICAg
LmRvbmU6CisgICAgICAgIGVsc2UKKyAgICAgICAgLmxvb3A6CisgICAgICAgICAgICBsb2FkbGlu
a2FjcWggbWVtLCB0MUdQUgorICAgICAgICAgICAgYnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAor
ICAgICAgICAgICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAg
YmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZmFp
bDoKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQxR1BSLCBtZW0KKyAgICAgICAg
ICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAg
LmRvbmU6CisgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgorICAgICAgICBlbmQKKyAgICBl
bmQsCisgICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BSLCB0MUdQUikKKyAgICAgICAg
aWYgWDg2XzY0IG9yIEFSTTY0RQorICAgICAgICAgICAgYnFhIHQwR1BSLCAweGZmZmZmZmZmLCAu
ZmFpbAorICAgICAgICAgICAgYXRvbWljd2Vha2Nhc2kgdDBHUFIsIHQyR1BSLCBtZW0KKyAgICAg
ICAgICAgIGptcCAuZG9uZQorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIGF0b21pY2xvYWRp
IG1lbSwgdDBHUFIKKyAgICAgICAgLmRvbmU6CisgICAgICAgIGVsc2UKKyAgICAgICAgLmxvb3A6
CisgICAgICAgICAgICBsb2FkbGlua2FjcWkgbWVtLCB0MUdQUgorICAgICAgICAgICAgYnFuZXEg
dDBHUFIsIHQxR1BSLCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwgdDJH
UFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGpt
cCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGkgdDVHUFIs
IHQxR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAg
ICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQ
UgorICAgICAgICBlbmQKKyAgICBlbmQsCisgICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1
R1BSLCB0MUdQUikKKyAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQorICAgICAgICAgICAgYXRv
bWljd2Vha2Nhc3EgdDBHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgZWxzZQorICAgICAgICAubG9v
cDoKKyAgICAgICAgICAgIGxvYWRsaW5rYWNxcSBtZW0sIHQxR1BSCisgICAgICAgICAgICBicW5l
cSB0MEdQUiwgdDFHUFIsIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmRyZWxxIHQ1R1BSLCB0
MkdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAgICAgICAg
am1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgc3RvcmVjb25kcmVscSB0NUdQ
UiwgdDFHUFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAg
ICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQw
R1BSCisgICAgICAgIGVuZAorICAgIGVuZCkKK2VuZAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9hcm0ucmIKaW5kZXggOTVjODVjMTEzNDFiZTk0OTVmMTFlNzc4OGE0YjM3MGE2ZDkx
YmJhOS4uN2RkNTM1MDg5OGIyNjQ3MmMwM2ZlNzA2MjJmN2YyMDBiYThlMmRlNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybS5yYgpAQCAtNjMsNiArNjMsMTEgQEAgY2xhc3Mg
Tm9kZQogICAgICAgICByYWlzZSAiQm9ndXMgcmVnaXN0ZXIgbmFtZSAje2RvdWJsZU9wZXJhbmR9
IiB1bmxlc3MgZG91YmxlT3BlcmFuZCA9fiAvXmQvCiAgICAgICAgICJzIiArICgkfi5wb3N0X21h
dGNoLnRvX2kgKiAyKS50b19zCiAgICAgZW5kCisgICAgZGVmIGFybVNpbmdsZUhpCisgICAgICAg
IGRvdWJsZU9wZXJhbmQgPSBhcm1PcGVyYW5kCisgICAgICAgIHJhaXNlICJCb2d1cyByZWdpc3Rl
ciBuYW1lICN7ZG91YmxlT3BlcmFuZH0iIHVubGVzcyBkb3VibGVPcGVyYW5kID1+IC9eZC8KKyAg
ICAgICAgInMiICsgKCR+LnBvc3RfbWF0Y2gudG9faSAqIDIgKyAxKS50b19zCisgICAgZW5kCiBl
bmQKIAogY2xhc3MgU3BlY2lhbFJlZ2lzdGVyCkBAIC05OCwyMSArMTAzLDIxIEBAIGVuZAogY2xh
c3MgUmVnaXN0ZXJJRAogICAgIGRlZiBhcm1PcGVyYW5kCiAgICAgICAgIGNhc2UgbmFtZQotICAg
ICAgICB3aGVuICJ0MCIsICJhMCIsICJyMCIKKyAgICAgICAgd2hlbiAidDAiLCAiYTAiLCAid2Ew
IiwgInIwIgogICAgICAgICAgICAgInIwIgotICAgICAgICB3aGVuICJ0MSIsICJhMSIsICJyMSIK
KyAgICAgICAgd2hlbiAidDEiLCAiYTEiLCAid2ExIiwgInIxIgogICAgICAgICAgICAgInIxIgot
ICAgICAgICB3aGVuICJ0MiIsICJhMiIKKyAgICAgICAgd2hlbiAidDIiLCAiYTIiLCAid2EyIgog
ICAgICAgICAgICAgInIyIgotICAgICAgICB3aGVuICJ0MyIsICJhMyIKKyAgICAgICAgd2hlbiAi
dDMiLCAiYTMiLCAid2EzIgogICAgICAgICAgICAgInIzIgogICAgICAgICB3aGVuICJ0NCIgIyBM
TEludCBQQwogICAgICAgICAgICAgInI0IgotICAgICAgICB3aGVuICJ0NSIKKyAgICAgICAgd2hl
biAidDUiLCAid3MwIiAjIHdzMCBtdXN0IGJlIGEgbm9uLWFyZ3VtZW50L25vbi1yZXR1cm4gR1BS
CiAgICAgICAgICAgICAicjUiCiAgICAgICAgIHdoZW4gImNmciIKICAgICAgICAgICAgICJyNyIK
LSAgICAgICAgd2hlbiAidDYiCisgICAgICAgIHdoZW4gInQ2IiwgIndzMSIgIyB3czEgbXVzdCBi
ZSBhIG5vbi1hcmd1bWVudC9ub24tcmV0dXJuIEdQUgogICAgICAgICAgICAgInI4IgogICAgICAg
ICB3aGVuICJ0NyIKICAgICAgICAgICAgICJyOSIgIyByOSBpcyBhbHNvIGEgc2NyYXRjaCByZWdp
c3Rlciwgc28gdXNlIGNhcmVmdWxseSEKQEAgLTEzNSwxOCArMTQwLDIyIEBAIGVuZAogY2xhc3Mg
RlBSZWdpc3RlcklECiAgICAgZGVmIGFybU9wZXJhbmQKICAgICAgICAgY2FzZSBuYW1lCi0gICAg
ICAgIHdoZW4gImZ0MCIsICJmciIsICJmYTAiCisgICAgICAgIHdoZW4gImZ0MCIsICJmciIsICJm
YTAiLCAid2ZhMCIKICAgICAgICAgICAgICJkMCIKLSAgICAgICAgd2hlbiAiZnQxIiwgImZhMSIK
KyAgICAgICAgd2hlbiAiZnQxIiwgImZhMSIsICJ3ZmExIgogICAgICAgICAgICAgImQxIgotICAg
ICAgICB3aGVuICJmdDIiCisgICAgICAgIHdoZW4gImZ0MiIsICJ3ZmEyIgogICAgICAgICAgICAg
ImQyIgotICAgICAgICB3aGVuICJmdDMiCisgICAgICAgIHdoZW4gImZ0MyIsICJ3ZmEzIgogICAg
ICAgICAgICAgImQzIgotICAgICAgICB3aGVuICJmdDQiCisgICAgICAgIHdoZW4gImZ0NCIsICJ3
ZmE0IgogICAgICAgICAgICAgImQ0IgotICAgICAgICB3aGVuICJmdDUiCisgICAgICAgIHdoZW4g
ImZ0NSIsICJ3ZmE1IgogICAgICAgICAgICAgImQ1IgorICAgICAgICB3aGVuICJmdDYiLCAid2Zh
NiIKKyAgICAgICAgICAgICJkNiIKKyAgICAgICAgd2hlbiAiZnQ3IiwgIndmYTciCisgICAgICAg
ICAgICAiZDciCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJhaXNlICJCYWQgcmVnaXN0ZXIg
I3tuYW1lfSBmb3IgQVJNIGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCiAgICAgICAgIGVuZApAQCAt
MTYzLDcgKzE3MiwxMSBAQCBlbmQKIGNsYXNzIEFkZHJlc3MKICAgICBkZWYgYXJtT3BlcmFuZAog
ICAgICAgICByYWlzZSAiQmFkIG9mZnNldCBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiBpZiBvZmZz
ZXQudmFsdWUgPCAtMHhmZiBvciBvZmZzZXQudmFsdWUgPiAweGZmZgotICAgICAgICAiWyN7YmFz
ZS5hcm1PcGVyYW5kfSwgXCMje29mZnNldC52YWx1ZX1dIgorICAgICAgICBpZiBvZmZzZXQudmFs
dWUgPT0gMAorICAgICAgICAgICJbI3tiYXNlLmFybU9wZXJhbmR9XSIKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICJbI3tiYXNlLmFybU9wZXJhbmR9LCBcIyN7b2Zmc2V0LnZhbHVlfV0iCisgICAg
ICAgIGVuZAogICAgIGVuZAogZW5kCiAKQEAgLTMwNiwxNiArMzE5LDI1IEBAIGNsYXNzIFNlcXVl
bmNlCiAgICAgICAgIHJlc3VsdCA9IGFybUxvd2VyTGFiZWxSZWZlcmVuY2VzKHJlc3VsdCkKICAg
ICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzKHJlc3VsdCkgewogICAg
ICAgICAgICAgfCBub2RlLCBhZGRyZXNzIHwKLSAgICAgICAgICAgIGlmIGFkZHJlc3MuaXNfYT8g
QmFzZUluZGV4Ci0gICAgICAgICAgICAgICAgYWRkcmVzcy5vZmZzZXQudmFsdWUgPT0gMAotICAg
ICAgICAgICAgZWxzaWYgYWRkcmVzcy5pc19hPyBBZGRyZXNzCi0gICAgICAgICAgICAgICAgKC0w
eGZmLi4weGZmZikuaW5jbHVkZT8gYWRkcmVzcy5vZmZzZXQudmFsdWUKKyAgICAgICAgICAgIGNh
c2Ugbm9kZS5vcGNvZGUKKyAgICAgICAgICAgIHdoZW4gImxvYWQyaWEiLCAic3RvcmUyaWEiCisg
ICAgICAgICAgICAgICAgaWYgYWRkcmVzcy5pc19hPyBBZGRyZXNzCisgICAgICAgICAgICAgICAg
ICAgIChhZGRyZXNzLm9mZnNldC52YWx1ZSAlIDQgPT0gMCkgJiYgKCgtMTAyMy4uMTAyMykuaW5j
bHVkZT8gYWRkcmVzcy5vZmZzZXQudmFsdWUpCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICBmYWxzZQorICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIGZhbHNlCisgICAgICAgICAgICAgICAgaWYgYWRkcmVzcy5pc19h
PyBCYXNlSW5kZXgKKyAgICAgICAgICAgICAgICAgICAgYWRkcmVzcy5vZmZzZXQudmFsdWUgPT0g
MCAmJiBub2RlLm9wY29kZQorICAgICAgICAgICAgICAgIGVsc2lmIGFkZHJlc3MuaXNfYT8gQWRk
cmVzcworICAgICAgICAgICAgICAgICAgICAoLTB4ZmYuLjB4ZmZmKS5pbmNsdWRlPyBhZGRyZXNz
Lm9mZnNldC52YWx1ZQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
ZmFsc2UKKyAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGVuZAogICAgICAgICB9CiAg
ICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc0RvdWJsZShyZXN1bHQp
Ci0gICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMocmVzdWx0LCBb
InN0b3JlYiIsICJzdG9yZWgiLCAic3RvcmVpIiwgInN0b3JlcCIsICJzdG9yZXEiXSkKKyAgICAg
ICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkSW1tZWRpYXRlcyhyZXN1bHQsIFsic3RvcmVi
IiwgInN0b3JlaCIsICJzdG9yZWkiLCAic3RvcmVwIiwgInN0b3JlcSIsICJzdG9yZTJpYSJdKQog
ICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVzKHJlc3VsdCwgMC4u
MHhmZiwgMC4uMHgwZmYpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEFkZHJl
c3NlcyhyZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlclJlZ2lzdGVyUmV1c2UocmVz
dWx0KQpAQCAtMzM0LDYgKzM1NiwxMCBAQCBkZWYgYXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRz
KQogICAgIGFybU9wZXJhbmRzKFtvcGVyYW5kc1stMV1dICsgb3BlcmFuZHNbMC4uLTJdKQogZW5k
CiAKK2RlZiBhcm1GbGlwcGVkT3BlcmFuZHNQYWlyKG9wZXJhbmRzKQorICAgIGFybU9wZXJhbmRz
KFtvcGVyYW5kc1stMl0sIG9wZXJhbmRzWy0xXV0gKyBvcGVyYW5kc1swLi4tM10pCitlbmQKKwog
ZGVmIGVtaXRBcm1Db21wYWN0KG9wY29kZTIsIG9wY29kZTMsIG9wZXJhbmRzKQogICAgIGlmIG9w
ZXJhbmRzLnNpemUgPT0gMwogICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlM30gI3thcm1GbGlw
cGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKQEAgLTM2Myw2ICszODksMTIgQEAgZGVmIGVtaXRBcm1E
b3VibGVCcmFuY2goYnJhbmNoT3Bjb2RlLCBvcGVyYW5kcykKICAgICAkYXNtLnB1dHMgIiN7YnJh
bmNoT3Bjb2RlfSAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKIGVuZAogCitkZWYgZW1pdEFybVNp
bmdsZUJyYW5jaChicmFuY2hPcGNvZGUsIG9wZXJhbmRzKQorICAgICRhc20ucHV0cyAidmNtcGUu
ZjMyICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9Igor
ICAgICRhc20ucHV0cyAidm1ycyBhcHNyX256Y3YsIGZwc2NyIgorICAgICRhc20ucHV0cyAiI3ti
cmFuY2hPcGNvZGV9ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorZW5kCisKIGRlZiBlbWl0QXJt
VGVzdChvcGVyYW5kcykKICAgICB2YWx1ZSA9IG9wZXJhbmRzWzBdCiAgICAgY2FzZSBvcGVyYW5k
cy5zaXplCkBAIC0zODMsNyArNDE1LDE1IEBAIGVuZAogCiBkZWYgZW1pdEFybURvdWJsZUNvbXBh
cmUob3BlcmFuZHMsIGNvZGUpCiAgICAgJGFzbS5wdXRzICJtb3YgI3tvcGVyYW5kc1syXS5hcm1P
cGVyYW5kfSwgXCMwIgotICAgICRhc20ucHV0cyAidmNtcGUuZjY0ICN7YXJtT3BlcmFuZHMob3Bl
cmFuZHNbMC4uMV0pfSIKKyAgICAkYXNtLnB1dHMgInZjbXAuZjY0ICN7YXJtT3BlcmFuZHMob3Bl
cmFuZHNbMC4uMV0pfSIKKyAgICAkYXNtLnB1dHMgInZtcnMgQVBTUl9uemN2LCBGUFNDUiIKKyAg
ICAkYXNtLnB1dHMgIml0ICN7Y29kZX0iCisgICAgJGFzbS5wdXRzICJtb3Yje2NvZGV9ICN7b3Bl
cmFuZHNbMl0uYXJtT3BlcmFuZH0sIFwjMSIKK2VuZAorCitkZWYgZW1pdEFybUZsb2F0Q29tcGFy
ZShvcGVyYW5kcywgY29kZSkKKyAgICAkYXNtLnB1dHMgIm1vdiAje29wZXJhbmRzWzJdLmFybU9w
ZXJhbmR9LCBcIzAiCisgICAgJGFzbS5wdXRzICJ2Y21wLmYzMiAje29wZXJhbmRzWzBdLmFybVNp
bmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKICAgICAkYXNtLnB1dHMgInZtcnMgQVBT
Ul9uemN2LCBGUFNDUiIKICAgICAkYXNtLnB1dHMgIml0ICN7Y29kZX0iCiAgICAgJGFzbS5wdXRz
ICJtb3Yje2NvZGV9ICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sIFwjMSIKQEAgLTQwMyw2ICs0
NDMsMTkgQEAgZGVmIGVtaXRBcm1UZXN0U2V0KG9wZXJhbmRzLCBjb2RlKQogICAgICRhc20ucHV0
cyAibW92I3tjb2RlfSAje29wZXJhbmRzWy0xXS5hcm1PcGVyYW5kfSwgXCMxIgogZW5kCiAKK2Rl
ZiByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCB0ZXh0KQorICAgIHJldHVybiBJbnN0cnVjdGlv
bi5uZXcoY29kZU9yaWdpbiwgImVtaXQiLCBbU3RyaW5nTGl0ZXJhbC5uZXcoY29kZU9yaWdpbiwg
IlwiI3t0ZXh0fVwiIildKQorZW5kCisKK2RlZiBlbWl0QXJtVHJ1bmNhdGVGbG9hdChjb2RlT3Jp
Z2luLCB0bywgZnJvbSwgb3BlcmFuZHMpCisgICAgdG1wID0gQVJNX0VYVFJBX0ZQUlNbLTFdCisg
ICAgc3JjID0gZnJvbSA9PSAiZjMyIiA/IG9wZXJhbmRzWzBdLmFybVNpbmdsZSA6IG9wZXJhbmRz
WzBdLmFybU9wZXJhbmQKKyAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAgICAgICBy
YXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAidmN2dC4je3RvfS4je2Zyb219ICN7dG1wLmFybVNp
bmdsZX0sICN7c3JjfSIpLAorICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAidm1v
diAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje3RtcC5hcm1TaW5nbGV9IikKKyAgICBdKS5s
b3dlcigkYWN0aXZlQmFja2VuZCkKK2VuZAorCiBjbGFzcyBJbnN0cnVjdGlvbgogICAgIGRlZiBs
b3dlckFSTXY3CiAgICAgICAgIHJhaXNlIHVubGVzcyAkYWN0aXZlQmFja2VuZCA9PSAiQVJNdjci
CkBAIC00NDAsNiArNDkzLDEwIEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICAgICAg
ICAgICRhc20ucHV0cyAiYWRkI3tzdWZmaXh9ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRz
KX0iCiAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAi
YWRjaSIKKyAgICAgICAgICAgIGVtaXRBcm0oImFkYyIsIG9wZXJhbmRzKQorICAgICAgICB3aGVu
ICJhYnNkIgorICAgICAgICAgICRhc20ucHV0cyAidmFicy5mNjQgI3thcm1GbGlwcGVkT3BlcmFu
ZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAiYW5kaSIsICJhbmRwIgogICAgICAgICAgICAg
ZW1pdEFybUNvbXBhY3QoImFuZHMiLCAiYW5kIiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gIm9y
aSIsICJvcnAiLCAib3JoIgpAQCAtNDU4LDE0ICs1MTUsMzQgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24K
ICAgICAgICAgICAgIGVtaXRBcm0oIm11bCIsIG9wZXJhbmRzKQogICAgICAgICB3aGVuICJzdWJp
IiwgInN1YnAiLCAic3ViaXMiCiAgICAgICAgICAgICBlbWl0QXJtQ29tcGFjdCgic3VicyIsICJz
dWJzIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInNiY2kiCisgICAgICAgICAgICBlbWl0QXJt
KCJzYmMiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAibmVnaSIsICJuZWdwIgogICAgICAgICAg
ICAgJGFzbS5wdXRzICJyc2JzICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNb
MF0uYXJtT3BlcmFuZH0sIFwjMCIKICAgICAgICAgd2hlbiAibm90aSIKICAgICAgICAgICAgICRh
c20ucHV0cyAibXZucyAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFy
bU9wZXJhbmR9IgorICAgICAgICB3aGVuICJscm90YXRlaSIKKyAgICAgICAgICAgIHRtcCA9IFRt
cC5uZXcoY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgIFNlcXVlbmNlLm5ldyhjb2RlT3Jp
Z2luLCBbCisgICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJtb3Zl
IiwgW29wZXJhbmRzWzBdLCB0bXBdKSwKKyAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXco
Y29kZU9yaWdpbiwgIm5lZ2kiLCBbdG1wXSksCisgICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24u
bmV3KGNvZGVPcmlnaW4sICJycm90YXRlaSIsIFt0bXAsIG9wZXJhbmRzWzFdXSksCisgICAgICAg
ICAgICBdKS5sb3dlcigkYWN0aXZlQmFja2VuZCkKKyAgICAgICAgd2hlbiAicnJvdGF0ZWkiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgInJvciAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9
IgorICAgICAgICB3aGVuICJ0emNudGkiCisgICAgICAgICAgICAkYXNtLnB1dHMgInJiaXQgI3th
cm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiY2x6
ICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCisg
ICAgICAgIHdoZW4gImx6Y250aSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiY2x6ICN7YXJtRmxp
cHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gImxvYWRpIiwgImxvYWRpcyIs
ICJsb2FkcCIKICAgICAgICAgICAgICRhc20ucHV0cyAibGRyICN7YXJtRmxpcHBlZE9wZXJhbmRz
KG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gInN0b3JlaSIsICJzdG9yZXAiCiAgICAgICAgICAg
ICAkYXNtLnB1dHMgInN0ciAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4g
ImxvYWQyaWEiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmQgI3thcm1GbGlwcGVkT3BlcmFu
ZHNQYWlyKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN0b3JlMmlhIgorICAgICAgICAgICAg
JGFzbS5wdXRzICJzdHJkICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAi
bG9hZGIiCiAgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmIgI3thcm1GbGlwcGVkT3BlcmFuZHMo
b3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAibG9hZGJzaSIKQEAgLTQ3OCwyMCArNTU1LDExMCBA
QCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgJGFzbS5wdXRzICJsZHJzaC53ICN7YXJt
RmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gInN0b3JlaCIKICAgICAg
ICAgICAgICRhc20ucHV0cyAic3RyaCAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAg
IHdoZW4gImxvYWRsaW5rYiIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRyZXhiICN7YXJtRmxp
cHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRsaW5raCIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAibGRyZXhoICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0i
CisgICAgICAgIHdoZW4gImxvYWRsaW5raSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRyZXgg
I3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGxpbmsy
aSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRyZXhkICN7YXJtRmxpcHBlZE9wZXJhbmRzUGFp
cihvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9yZWNvbmRiIgorICAgICAgICAgICAgJGFz
bS5wdXRzICJzdHJleGIgI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJz
dG9yZWNvbmRoIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzdHJleGggI3thcm1PcGVyYW5kcyhv
cGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9yZWNvbmRpIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJzdHJleCAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN0b3Jl
Y29uZDJpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzdHJleGQgI3thcm1PcGVyYW5kcyhvcGVy
YW5kcyl9IgogICAgICAgICB3aGVuICJsb2FkZCIKICAgICAgICAgICAgICRhc20ucHV0cyAidmxk
ci42NCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJzdG9y
ZWQiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZzdHIuNjQgI3thcm1PcGVyYW5kcyhvcGVyYW5k
cyl9IgorICAgICAgICB3aGVuICJsb2FkZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmxkci4z
MiAje29wZXJhbmRzWy0xXS5hcm1TaW5nbGV9LCAje2FybU9wZXJhbmRzKG9wZXJhbmRzWzAuLi0y
XSl9IgorICAgICAgICB3aGVuICJzdG9yZWYiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZzdHIu
MzIgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9LCAje2FybU9wZXJhbmRzKG9wZXJhbmRzWzEuLi0x
XSl9IgorICAgICAgICB3aGVuICJhZGRmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2YWRkLmYz
MiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tv
cGVyYW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJzdWJmIgorICAgICAgICAgICAg
JGFzbS5wdXRzICJ2c3ViLmYzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNb
MV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJt
dWxmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bXVsLmYzMiAje29wZXJhbmRzWzFdLmFybVNp
bmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9
IgorICAgICAgICB3aGVuICJkaXZmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2ZGl2LmYzMiAj
e29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVy
YW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJzcXJ0ZiIKKyAgICAgICAgICAgICRh
c20ucHV0cyAidnNxcnQuZjMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sw
XS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJhYnNmIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJ2YWJzLmYzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2lu
Z2xlfSIKKyAgICAgICAgd2hlbiAibmVnZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm5lZy5m
MzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCisg
ICAgICAgIHdoZW4gImJmbHQiCisgICAgICAgICAgICBlbWl0QXJtU2luZ2xlQnJhbmNoKCJibWki
LCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmZsdHVuIgorICAgICAgICAgICAgZW1pdEFybVNp
bmdsZUJyYW5jaCgiYmx0Iiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJmbHRlcXVuIgorICAg
ICAgICAgICAgZW1pdEFybVNpbmdsZUJyYW5jaCgiYmxlIiwgb3BlcmFuZHMpCisgICAgICAgIHdo
ZW4gImJmZXEiCisgICAgICAgICAgICBlbWl0QXJtU2luZ2xlQnJhbmNoKCJiZXEiLCBvcGVyYW5k
cykKKyAgICAgICAgd2hlbiAiYmZndCIKKyAgICAgICAgICAgIGVtaXRBcm1TaW5nbGVCcmFuY2go
ImJndCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZmd0ZXF1biIKKyAgICAgICAgICAgIGVt
aXRBcm1TaW5nbGVCcmFuY2goImJwbCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZGx0dW4i
CisgICAgICAgICAgICBlbWl0QXJtRG91YmxlQnJhbmNoKCJibHQiLCBvcGVyYW5kcykKICAgICAg
ICAgd2hlbiAiYWRkZCIKICAgICAgICAgICAgIGVtaXRBcm0oInZhZGQuZjY0Iiwgb3BlcmFuZHMp
Ci0gICAgICAgIHdoZW4gImRpdmQiCi0gICAgICAgICAgICBlbWl0QXJtKCJ2ZGl2LmY2NCIsIG9w
ZXJhbmRzKQogICAgICAgICB3aGVuICJzdWJkIgogICAgICAgICAgICAgZW1pdEFybSgidnN1Yi5m
NjQiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAibXVsZCIKICAgICAgICAgICAgIGVtaXRBcm0o
InZtdWwuZjY0Iiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImRpdmQiCisgICAgICAgICAgICBl
bWl0QXJtKCJ2ZGl2LmY2NCIsIG9wZXJhbmRzKQogICAgICAgICB3aGVuICJzcXJ0ZCIKICAgICAg
ICAgICAgICRhc20ucHV0cyAidnNxcnQuZjY0ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRz
KX0iCisgICAgICAgIHdoZW4gIm5lZ2QiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZuZWcuZjY0
ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gIm9yZiIKKyAg
ICAgICAgICAgICh0bXBMaHMsIHRtcFJocykgPSBBUk1fRVhUUkFfR1BSU1stMi4uLTFdCisgICAg
ICAgICAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAgICAgICAgICAgICByYXdJbnN0
cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBMaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFu
ZHNbMF0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3Jp
Z2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xl
fSIpLAorICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgIm9yaSIsIFt0
bXBMaHMsIHRtcFJoc10pLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2lu
LCAgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje3RtcFJocy5hcm1PcGVyYW5kfSIp
CisgICAgICAgICAgICBdKS5sb3dlcigkYWN0aXZlQmFja2VuZCkKKyAgICAgICAgd2hlbiAiYW5k
ZiIKKyAgICAgICAgICAgICh0bXBMaHMsIHRtcFJocykgPSBBUk1fRVhUUkFfR1BSU1stMi4uLTFd
CisgICAgICAgICAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAgICAgICAgICAgICBy
YXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBMaHMuYXJtT3BlcmFuZH0sICN7
b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihj
b2RlT3JpZ2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJt
U2luZ2xlfSIpLAorICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImFu
ZGkiLCBbdG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29k
ZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3t0bXBSaHMuYXJtT3Bl
cmFuZH0iKQorICAgICAgICAgICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCisgICAgICAgIHdo
ZW4gIm9yZCIKKyAgICAgICAgICAgICh0bXBMaHMsIHRtcFJocykgPSBBUk1fRVhUUkFfR1BSU1st
Mi4uLTFdCisgICAgICAgICAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAgICAgICAg
ICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBMaHMuYXJtT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVj
dGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNb
MV0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdp
biwgIm9yaSIsIFt0bXBMaHMsIHRtcFJoc10pLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlv
bihjb2RlT3JpZ2luLCAgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje3RtcFJocy5h
cm1PcGVyYW5kfSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAg
InZtb3YgI3t0bXBMaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlSGl9Iiks
CisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcFJo
cy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGVIaX0iKSwKKyAgICAgICAgICAg
ICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJvcmkiLCBbdG1wTGhzLCB0bXBSaHNdKSwK
KyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFu
ZHNbMV0uYXJtU2luZ2xlSGl9LCAje3RtcFJocy5hcm1PcGVyYW5kfSIpCisgICAgICAgICAgICBd
KS5sb3dlcigkYWN0aXZlQmFja2VuZCkKKyAgICAgICAgd2hlbiAiYW5kZCIKKyAgICAgICAgICAg
ICh0bXBMaHMsIHRtcFJocykgPSBBUk1fRVhUUkFfR1BSU1stMi4uLTFdCisgICAgICAgICAgICBT
ZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihj
b2RlT3JpZ2luLCAgInZtb3YgI3t0bXBMaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJt
U2luZ2xlfSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZt
b3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIpLAorICAg
ICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImFuZGkiLCBbdG1wTGhzLCB0
bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92
ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3t0bXBSaHMuYXJtT3BlcmFuZH0iKSwKKyAgICAg
ICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9w
ZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZUhpfSIpLAorICAgICAgICAgICAgICByYXdJ
bnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7b3Bl
cmFuZHNbMV0uYXJtU2luZ2xlSGl9IiksCisgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhj
b2RlT3JpZ2luLCAiYW5kaSIsIFt0bXBMaHMsIHRtcFJoc10pLAorICAgICAgICAgICAgICByYXdJ
bnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGVIaX0s
ICN7dG1wUmhzLmFybU9wZXJhbmR9IikKKyAgICAgICAgICAgIF0pLmxvd2VyKCRhY3RpdmVCYWNr
ZW5kKQogICAgICAgICB3aGVuICJjaTJkcyIKICAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAj
e29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCiAgICAg
ICAgICAgICAkYXNtLnB1dHMgInZjdnQuZjY0LnMzMiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9
LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iCkBAIC01NDQsNiArNzExLDggQEAgY2xhc3MgSW5z
dHJ1Y3Rpb24KICAgICAgICAgd2hlbiAibW92ZHoiCiAgICAgICAgICAgICAjIEZJWE1FOiBlaXRo
ZXIgc3VwcG9ydCB0aGlzIG9yIHJlbW92ZSBpdC4KICAgICAgICAgICAgIHJhaXNlICJBUk0gZG9l
cyBub3Qgc3VwcG9ydCB0aGlzIG9wY29kZSB5ZXQsICN7Y29kZU9yaWdpbn0iCisgICAgICAgIHdo
ZW4gIm1vdmVkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92LmY2NCAje2FybUZsaXBwZWRP
cGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJwb3AiCiAgICAgICAgICAgICBvcGVy
YW5kcy5lYWNoIHsKICAgICAgICAgICAgICAgICB8IG9wIHwKQEAgLTU2MCw5ICs3MjksMTcgQEAg
Y2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAkYXNt
LnB1dHMgIm1vdiAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICAgICAg
ZW5kCisgICAgICAgIHdoZW4gIm1vdmVpaSIKKyAgICAgICAgICAgIHJhaXNlICJGaXJzdCBvcGVy
YW5kIG9mIG1vdmVpaSBtdXN0IGJlIGFuIGltbWVkaWF0ZSIgdW5sZXNzIG9wZXJhbmRzWzBdLmlt
bWVkaWF0ZT8KKyAgICAgICAgICAgIGFybU1vdmVJbW1lZGlhdGUob3BlcmFuZHNbMF0udmFsdWUg
Pj4gMzIsIG9wZXJhbmRzWzFdKQorICAgICAgICAgICAgYXJtTW92ZUltbWVkaWF0ZShvcGVyYW5k
c1swXS52YWx1ZSAmIDB4ZmZmZmZmZmYsIG9wZXJhbmRzWzJdKQogICAgICAgICB3aGVuICJtdmxi
bCIKICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdncgI3tvcGVyYW5kc1sxXS5hcm1PcGVy
YW5kfSwgXCM6bG93ZXIxNjoje29wZXJhbmRzWzBdLnZhbHVlfSIKICAgICAgICAgICAgICAgICAk
YXNtLnB1dHMgIm1vdnQgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgXCM6dXBwZXIxNjoje29w
ZXJhbmRzWzBdLnZhbHVlfSIKKyAgICAgICAgd2hlbiAic3hiMmkiCisgICAgICAgICAgICAkYXNt
LnB1dHMgInN4dGIgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hl
biAic3hoMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN4dGggI3thcm1GbGlwcGVkT3BlcmFu
ZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAibm9wIgogICAgICAgICAgICAgJGFzbS5wdXRz
ICJub3AiCiAgICAgICAgIHdoZW4gImJpZXEiLCAiYnBlcSIsICJiYmVxIgpAQCAtNjU2LDE0ICs4
MzMsNDYgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGVtaXRBcm1Db21wYXJlKG9w
ZXJhbmRzLCAibHQiKQogICAgICAgICB3aGVuICJjaWx0ZXEiLCAiY3BsdGVxIiwgImNibHRlcSIK
ICAgICAgICAgICAgIGVtaXRBcm1Db21wYXJlKG9wZXJhbmRzLCAibGUiKQotICAgICAgICB3aGVu
ICJjZGd0IgotICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMsICJndCIp
Ci0gICAgICAgIHdoZW4gImNkZ3RlcSIKLSAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJl
KG9wZXJhbmRzLCAiZ2UiKQorICAgICAgICB3aGVuICJjZmVxIgorICAgICAgICAgICAgZW1pdEFy
bUZsb2F0Q29tcGFyZShvcGVyYW5kcywgImVxIikKKyAgICAgICAgd2hlbiAiY2ZuZXF1biIKKyAg
ICAgICAgICAgIGVtaXRBcm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJuZSIpCisgICAgICAgIHdo
ZW4gImNmbHQiCisgICAgICAgICAgICBlbWl0QXJtRmxvYXRDb21wYXJlKG9wZXJhbmRzLCAibWki
KQorICAgICAgICB3aGVuICJjZmx0ZXEiCisgICAgICAgICAgICBlbWl0QXJtRmxvYXRDb21wYXJl
KG9wZXJhbmRzLCAibHMiKQorICAgICAgICB3aGVuICJjZmd0IgorICAgICAgICAgICAgZW1pdEFy
bUZsb2F0Q29tcGFyZShvcGVyYW5kcywgImd0IikKKyAgICAgICAgd2hlbiAiY2ZndGVxIgorICAg
ICAgICAgICAgZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywgImdlIikKKyAgICAgICAgd2hl
biAiY2RlcSIKKyAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAiZXEi
KQorICAgICAgICB3aGVuICJjZG5lcXVuIgorICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBh
cmUob3BlcmFuZHMsICJuZSIpCiAgICAgICAgIHdoZW4gImNkbHQiCiAgICAgICAgICAgICBlbWl0
QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywgIm1pIikKICAgICAgICAgd2hlbiAiY2RsdGVxIgog
ICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMsICJscyIpCisgICAgICAg
IHdoZW4gImNkZ3QiCisgICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywg
Imd0IikKKyAgICAgICAgd2hlbiAiY2RndGVxIgorICAgICAgICAgICAgZW1pdEFybURvdWJsZUNv
bXBhcmUob3BlcmFuZHMsICJnZSIpCisgICAgICAgIHdoZW4gImNmMmQiCisgICAgICAgICAgICAk
YXNtLnB1dHMgInZjdnQuZjY0LmYzMiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje29wZXJh
bmRzWzBdLmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gImNkMmYiCisgICAgICAgICAgICAkYXNt
LnB1dHMgInZjdnQuZjMyLmY2NCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNb
MF0uYXJtT3BlcmFuZH0iCisgICAgICAgIHdoZW4gImNpMmYiCisgICAgICAgICAgICAkYXNtLnB1
dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybU9wZXJh
bmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmYzMi51MzIgI3tvcGVyYW5kc1sxXS5h
cm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gImNpMmZz
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwg
I3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmN2dC5m
MzIuczMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9
IgorICAgICAgICB3aGVuICJjaTJkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3Bl
cmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAidmN2dC5mNjQudTMyICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sICN7
b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAiY2kyZHMiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBd
LmFybU9wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmY2NC5zMzIgI3tvcGVy
YW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IgogICAgICAgICB3
aGVuICJ0aXMiLCAidGJzIiwgInRwcyIKICAgICAgICAgICAgIGVtaXRBcm1UZXN0U2V0KG9wZXJh
bmRzLCAibWkiKQogICAgICAgICB3aGVuICJ0aXoiLCAidGJ6IiwgInRweiIKQEAgLTY3NCwxMCAr
ODgzLDIyIEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICAkYXNtLnB1dHMgImxkciAj
e29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCBbc3AsIFwjI3tvcGVyYW5kc1swXS52YWx1ZSAqIDR9
XSIKICAgICAgICAgd2hlbiAicG9rZSIKICAgICAgICAgICAgICRhc20ucHV0cyAic3RyICN7b3Bl
cmFuZHNbMV0uYXJtT3BlcmFuZH0sIFtzcCwgXCMje29wZXJhbmRzWzBdLnZhbHVlICogNH1dIgor
ICAgICAgICB3aGVuICJmaTJmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFu
ZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgd2hl
biAiZmYyaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybU9w
ZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCiAgICAgICAgIHdoZW4gImZpaTJkIgog
ICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7
b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCiAgICAg
ICAgIHdoZW4gImZkMmlpIgogICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNb
MV0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0u
YXJtT3BlcmFuZH0iCisgICAgICAgIHdoZW4gInRydW5jYXRlZjJpIgorICAgICAgICAgICAgZW1p
dEFybVRydW5jYXRlRmxvYXQoY29kZU9yaWdpbiwgInUzMiIsICJmMzIiLCBvcGVyYW5kcykKKyAg
ICAgICAgd2hlbiAidHJ1bmNhdGVmMmlzIgorICAgICAgICAgICAgZW1pdEFybVRydW5jYXRlRmxv
YXQoY29kZU9yaWdpbiwgInMzMiIsICJmMzIiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAidHJ1
bmNhdGVkMmkiCisgICAgICAgICAgICBlbWl0QXJtVHJ1bmNhdGVGbG9hdChjb2RlT3JpZ2luLCAi
dTMyIiwgImY2NCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJ0cnVuY2F0ZWQyaXMiCisgICAg
ICAgICAgICBlbWl0QXJtVHJ1bmNhdGVGbG9hdChjb2RlT3JpZ2luLCAiczMyIiwgImY2NCIsIG9w
ZXJhbmRzKQogICAgICAgICB3aGVuICJibyIKICAgICAgICAgICAgICRhc20ucHV0cyAiYnZzICN7
b3BlcmFuZHNbMF0uYXNtTGFiZWx9IgogICAgICAgICB3aGVuICJicyIKQEAgLTY4NiwxMyArOTA3
LDE3IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICAkYXNtLnB1dHMgImJlcSAje29w
ZXJhbmRzWzBdLmFzbUxhYmVsfSIKICAgICAgICAgd2hlbiAiYm56IgogICAgICAgICAgICAgJGFz
bS5wdXRzICJibmUgI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJjcyIK
KyAgICAgICAgICAgICRhc20ucHV0cyAiYmNzICN7b3BlcmFuZHNbMF0uYXNtTGFiZWx9IgogICAg
ICAgICB3aGVuICJsZWFpIiwgImxlYXAiCiAgICAgICAgICAgICBvcGVyYW5kc1swXS5hcm1FbWl0
TGVhKG9wZXJhbmRzWzFdKQotICAgICAgICB3aGVuICJzbXVsbGkiCisgICAgICAgIHdoZW4gInNt
dWxsaSIsICJ1bXVsbGkiCiAgICAgICAgICAgICByYWlzZSAiV3JvbmcgbnVtYmVyIG9mIGFyZ3Vt
ZW50cyB0byBzbXVsbCBpbiAje3NlbGYuaW5zcGVjdH0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIg
dW5sZXNzIG9wZXJhbmRzLmxlbmd0aCA9PSA0Ci0gICAgICAgICAgICAkYXNtLnB1dHMgInNtdWxs
ICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbM10uYXJtT3BlcmFuZH0sICN7
b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCisgICAg
ICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlWzAuLi0yXX0gI3tvcGVyYW5kc1syXS5hcm1PcGVy
YW5kfSwgI3tvcGVyYW5kc1szXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5k
fSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSIKICAgICAgICAgd2hlbiAibWVtZmVuY2UiCiAg
ICAgICAgICAgICAkYXNtLnB1dHMgImRtYiBzeSIKKyAgICAgICAgd2hlbiAiZmVuY2UiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgImRtYiBpc2giCiAgICAgICAgIHdoZW4gImNscmJwIgogICAgICAg
ICAgICAgJGFzbS5wdXRzICJiaWMgI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5k
c1swXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSIKICAgICAgICAgd2hl
biAiZ2xvYmFsYWRkciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL2luc3RydWN0aW9ucy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2lu
c3RydWN0aW9ucy5yYgppbmRleCA1NGIwMjdmM2RhMDE3NzM4MzQ1ZTlkMmI2MThmNzQ4MGYwODRl
ZDQ0Li43ZTI4MGI3Zjc4YjQ2ZGY0Njg0MTZmYTVhNDUxYjY5YjMxYmRmYTgxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCkBAIC01OSw2
ICs1OSw3IEBAIE1BQ1JPX0lOU1RSVUNUSU9OUyA9CiAgICAgICJycm90YXRlcSIsCiAgICAgICJz
dWJpIiwKICAgICAgInhvcmkiLAorICAgICAibG9hZDJpYSIsCiAgICAgICJsb2FkaSIsCiAgICAg
ICJsb2FkaXMiLAogICAgICAibG9hZGIiLApAQCAtNjcsNiArNjgsNyBAQCBNQUNST19JTlNUUlVD
VElPTlMgPQogICAgICAibG9hZGgiLAogICAgICAibG9hZGhzaSIsCiAgICAgICJsb2FkaHNxIiwK
KyAgICAgInN0b3JlMmlhIiwKICAgICAgInN0b3JlaSIsCiAgICAgICJzdG9yZWgiLAogICAgICAi
c3RvcmViIiwKQEAgLTM3Nyw5ICszNzksMjEgQEAgWDg2X0lOU1RSVUNUSU9OUyA9CiAKIEFSTV9J
TlNUUlVDVElPTlMgPQogICAgIFsKKyAgICAgImFkY2kiLAorICAgICAiYmNzIiwKICAgICAgImNs
cmJwIiwKICAgICAgIm12bGJsIiwKLSAgICAgImdsb2JhbGFkZHIiCisgICAgICJnbG9iYWxhZGRy
IiwKKyAgICAgInNiY2kiLAorICAgICAibW92ZWlpIiwKKyAgICAgImxvYWRsaW5rYiIsCisgICAg
ICJsb2FkbGlua2giLAorICAgICAibG9hZGxpbmtpIiwKKyAgICAgImxvYWRsaW5rMmkiLAorICAg
ICAic3RvcmVjb25kYiIsCisgICAgICJzdG9yZWNvbmRoIiwKKyAgICAgInN0b3JlY29uZGkiLAor
ICAgICAic3RvcmVjb25kMmkiLAogICAgIF0KIAogQVJNNjRfSU5TVFJVQ1RJT05TID0KQEAgLTQz
MSw2ICs0NDUsNyBAQCBBUk02NF9JTlNUUlVDVElPTlMgPQogUklTQ19JTlNUUlVDVElPTlMgPQog
ICAgIFsKICAgICAgInNtdWxsaSIsICAjIE11bHRpcGx5IHR3byAzMi1iaXQgd29yZHMgYW5kIHBy
b2R1Y2UgYSA2NC1iaXQgd29yZAorICAgICAidW11bGxpIiwgICMgTXVsdGlwbHkgdHdvIDMyLWJp
dCB3b3JkcyBhbmQgcHJvZHVjZSBhIDY0LWJpdCB3b3JkCiAgICAgICJhZGRpcyIsICAgIyBBZGQg
aW50ZWdlcnMgYW5kIHNldCBhIGZsYWcuCiAgICAgICJzdWJpcyIsICAgIyBTYW1lLCBidXQgZm9y
IHN1YnRyYWN0aW9uLgogICAgICAib3JpcyIsICAgICMgU2FtZSwgYnV0IGZvciBiaXR3aXNlIG9y
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJz
LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiCmluZGV4
IDBkYzQ0YzIzZGZiMmJhZDM2NWEwZmViNTcxMDNhZDJmZDMzZmVhZTQuLjY3ZjUyNzFhNTM3NWFj
MWYxMzQ0Yjg2OTM3NWI3ODBhODdhY2I5OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9yZWdpc3RlcnMucmIKQEAgLTU4LDcgKzU4LDggQEAgR1BSUyA9CiAgICAgICJj
c3I3IiwKICAgICAgImNzcjgiLAogICAgICAiY3NyOSIsCi0gICAgICJjc3IxMCIKKyAgICAgImNz
cjEwIiwKKyAgICAgImludmFsaWRHUFIiCiAgICAgXQogCiBGUFJTID0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiCmluZGV4IDBmMDcyZTlmZDExZTE1ODVhYWYzZGQ4ZWIw
NTBmZmQ5NDYyMzlkZjIuLjM0NjQ1OTYyZjc0MzA1ZjM2ZDU4YzlmMjdkNGU0NGViZGI1MzRmZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYgpAQCAtMjU5LDggKzI1
OSwxMiBAQCBkZWYgcmlzY0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzRG91YmxlKGxpc3QpCiAgICAg
ICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCiAgICAgICAgICAgICB3aGVuICJsb2FkZCIKICAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJs
b2FkZCIsIFtub2RlLm9wZXJhbmRzWzBdLnJpc2NEb3VibGVBZGRyZXNzKG5ld0xpc3QpLCBub2Rl
Lm9wZXJhbmRzWzFdXSwgbm9kZS5hbm5vdGF0aW9uKQorICAgICAgICAgICAgd2hlbiAibG9hZGYi
CisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3Jp
Z2luLCAibG9hZGYiLCBbbm9kZS5vcGVyYW5kc1swXS5yaXNjRG91YmxlQWRkcmVzcyhuZXdMaXN0
KSwgbm9kZS5vcGVyYW5kc1sxXV0sIG5vZGUuYW5ub3RhdGlvbikKICAgICAgICAgICAgIHdoZW4g
InN0b3JlZCIKICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2Rl
LmNvZGVPcmlnaW4sICJzdG9yZWQiLCBbbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5vcGVyYW5kc1sx
XS5yaXNjRG91YmxlQWRkcmVzcyhuZXdMaXN0KV0sIG5vZGUuYW5ub3RhdGlvbikKKyAgICAgICAg
ICAgIHdoZW4gInN0b3JlZiIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sICJzdG9yZWYiLCBbbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5v
cGVyYW5kc1sxXS5yaXNjRG91YmxlQWRkcmVzcyhuZXdMaXN0KV0sIG5vZGUuYW5ub3RhdGlvbikK
ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKICAgICAg
ICAgICAgIGVuZApAQCAtMzY5LDcgKzM3Myw3IEBAIGRlZiByaXNjTG93ZXJNYWxmb3JtZWRJbW1l
ZGlhdGVzKGxpc3QsIHZhbGlkSW1tZWRpYXRlcywgdmFsaWRMb2dpY2FsSW1tZWRpYXRlcykKICAg
ICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgYW5ub3RhdGlvbiA9
IG5vZGUuYW5ub3RhdGlvbgogICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQotICAgICAgICAg
ICAgd2hlbiAibW92ZSIKKyAgICAgICAgICAgIHdoZW4gIm1vdmUiLCAibW92ZWlpIgogICAgICAg
ICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQogICAgICAgICAgICAgd2hlbiAiYWRkaSIsICJhZGRw
IiwgImFkZHEiLCAiYWRkaXMiLCAic3ViaSIsICJzdWJwIiwgInN1YnEiLCAic3ViaXMiCiAgICAg
ICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUgYW5kCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKaW5kZXggMjMxMjg5NGRhNDdm
YWQ5YzIzYTg2YzIzMWY2MGJjYmEzNzc1YTMxMS4uZjU0MTg4NzdlZTY0ZDExZTkwYWY2MTg2ODkw
MzZjMzU3YmM2NjBhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDSlNWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFs
dWUuaApAQCAtMTYyLDggKzE2Miw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIHVp
bnQzMl90IE51bGxUYWcgPSAgICAgICAgIDB4ZmZmZmZmZmQ7CiAgICAgc3RhdGljIGNvbnN0ZXhw
ciB1aW50MzJfdCBVbmRlZmluZWRUYWcgPSAgICAweGZmZmZmZmZjOwogICAgIHN0YXRpYyBjb25z
dGV4cHIgdWludDMyX3QgQ2VsbFRhZyA9ICAgICAgICAgMHhmZmZmZmZmYjsKLSAgICBzdGF0aWMg
Y29uc3RleHByIHVpbnQzMl90IEVtcHR5VmFsdWVUYWcgPSAgIDB4ZmZmZmZmZmE7Ci0gICAgc3Rh
dGljIGNvbnN0ZXhwciB1aW50MzJfdCBEZWxldGVkVmFsdWVUYWcgPSAweGZmZmZmZmY5OworICAg
IHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgV2FzbVRhZyA9ICAgICAgICAgMHhmZmZmZmZmYTsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IEVtcHR5VmFsdWVUYWcgPSAgIDB4ZmZmZmZm
Zjk7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBEZWxldGVkVmFsdWVUYWcgPSAweGZm
ZmZmZmY4OwogCiAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBMb3dlc3RUYWcgPSAgRGVs
ZXRlZFZhbHVlVGFnOwogI2VuZGlmCkBAIC0xODAsNiArMTgxLDkgQEAgcHVibGljOgogICAgIGVu
dW0gRW5jb2RlQXNCaWdJbnQzMlRhZyB7IEVuY29kZUFzQmlnSW50MzIgfTsKICNlbmRpZgogICAg
IGVudW0gRW5jb2RlQXNEb3VibGVUYWcgeyBFbmNvZGVBc0RvdWJsZSB9OworI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkgJiYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBlbnVtIEVuY29kZUFzVW5ib3hl
ZEZsb2F0VGFnIHsgRW5jb2RlQXNVbmJveGVkRmxvYXQgfTsKKyNlbmRpZgogCiAgICAgSlNWYWx1
ZSgpOwogICAgIEpTVmFsdWUoSlNOdWxsVGFnKTsKQEAgLTE5MSw2ICsxOTUsOSBAQCBwdWJsaWM6
CiAjaWYgVVNFKEJJR0lOVDMyKQogICAgIEpTVmFsdWUoRW5jb2RlQXNCaWdJbnQzMlRhZywgaW50
MzJfdCk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgSlNWYWx1ZShFbmNvZGVBc1VuYm94ZWRGbG9hdFRhZywgZmxvYXQpOworI2VuZGlm
CiAKICAgICAvLyBOdW1iZXJzCiAgICAgSlNWYWx1ZShFbmNvZGVBc0RvdWJsZVRhZywgZG91Ymxl
KTsKQEAgLTU5Miw2ICs1OTksMTMgQEAgQUxXQVlTX0lOTElORSBKU1ZhbHVlIGpzQmlnSW50MzIo
aW50MzJfdCBpbnRWYWx1ZSkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAm
JiBVU0UoSlNWQUxVRTMyXzY0KQorQUxXQVlTX0lOTElORSBKU1ZhbHVlIHdhc21VbmJveGVkRmxv
YXQoZmxvYXQgZikKK3sKKyAgICByZXR1cm4gSlNWYWx1ZShKU1ZhbHVlOjpFbmNvZGVBc1VuYm94
ZWRGbG9hdCwgZik7Cit9CisjZW5kaWYKKwogQUxXQVlTX0lOTElORSBKU1ZhbHVlIGpzRG91Ymxl
TnVtYmVyKGRvdWJsZSBkKQogewogICAgIEFTU0VSVChKU1ZhbHVlKEpTVmFsdWU6OkVuY29kZUFz
RG91YmxlLCBkKS5pc051bWJlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCmluZGV4IDk2MDlkMDliZWVhYTIwZjQzN2RkYTFmOWEw
NjQxOTJkZWNmYzAxYjcuLjg4MTAzYzAxZTc4MzkzOTRhM2U4NTAyN2I1MzE5ZmRhNzE5Zjc1ODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxp
bmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGlu
ZXMuaApAQCAtNjE5LDYgKzYxOSwxMyBAQCBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShFbmNvZGVB
c0JpZ0ludDMyVGFnLCBpbnQzMl90IHZhbHVlKQogfQogI2VuZGlmIC8vIFVTRShCSUdJTlQzMikK
IAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgVVNFKEpTVkFMVUUzMl82NCkKK2lubGluZSBK
U1ZhbHVlOjpKU1ZhbHVlKEVuY29kZUFzVW5ib3hlZEZsb2F0VGFnLCBmbG9hdCB2YWx1ZSkKK3sK
KyAgICB1LmFzQml0cy5wYXlsb2FkID0gYml0d2lzZV9jYXN0PGludDMyX3Q+KHZhbHVlKTsKK30K
KyNlbmRpZgorCiBpbmxpbmUgaW50NjRfdCB0cnlDb252ZXJ0VG9JbnQ1Mihkb3VibGUgbnVtYmVy
KQogewogICAgIGlmIChudW1iZXIgIT0gbnVtYmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAKaW5kZXggMDFkYjI4YmIzYjMyYzczMTVm
YmFhZmQzOWUzODZkN2FlMWEyOGExNC4uNTkwNmVhOWQ4Y2UyOTdhMTM4M2Q2ZjAyOWE0M2ExYmY4
OWUyZjljYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklS
R2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJH
ZW5lcmF0b3IuY3BwCkBAIC04NDAsNiArODQwLDE1IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGUg
PHR5cGVuYW1lIEZ1bmN0aW9uPgogICAgIHZvaWQgZm9yRWFjaExpdmVWYWx1ZShGdW5jdGlvbik7
CiAKKyAgICBib29sIHVzZVNpZ25hbGluZ01lbW9yeSgpIGNvbnN0CisgICAgeworI2lmIEVOQUJM
RShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQorICAgICAgICByZXR1cm4gbV9tb2RlID09
IE1lbW9yeU1vZGU6OlNpZ25hbGluZzsKKyNlbHNlCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNl
bmRpZgorICAgIH0KKwogICAgIEZ1bmN0aW9uUGFyc2VyPEFpcklSR2VuZXJhdG9yPiogbV9wYXJz
ZXIgeyBudWxscHRyIH07CiAgICAgY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mIG1faW5mbzsKICAg
ICBjb25zdCBNZW1vcnlNb2RlIG1fbW9kZSB7IE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nIH07
CkBAIC05NTcsNyArOTY2LDcgQEAgQWlySVJHZW5lcmF0b3I6OkFpcklSR2VuZXJhdG9yKGNvbnN0
IE1vZHVsZUluZm9ybWF0aW9uJiBpbmZvLCBCMzo6UHJvY2VkdXJlJiBwcm8KICAgICBpZiAoIUNv
bnRleHQ6OnVzZUZhc3RUTFMoKSkKICAgICAgICAgbV9jb2RlLnBpblJlZ2lzdGVyKG1fd2FzbUNv
bnRleHRJbnN0YW5jZUdQUik7CiAKLSAgICBpZiAobW9kZSAhPSBNZW1vcnlNb2RlOjpTaWduYWxp
bmcpIHsKKyAgICBpZiAobW9kZSA9PSBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykgewogICAg
ICAgICBtX2JvdW5kc0NoZWNraW5nU2l6ZUdQUiA9IHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdT
aXplUmVnaXN0ZXI7CiAgICAgICAgIG1fY29kZS5waW5SZWdpc3RlcihtX2JvdW5kc0NoZWNraW5n
U2l6ZUdQUik7CiAgICAgfQpAQCAtMTc5Miw2ICsxODAxLDcgQEAgaW5saW5lIEFpcklSR2VuZXJh
dG9yOjpFeHByZXNzaW9uVHlwZSBBaXJJUkdlbmVyYXRvcjo6ZW1pdENoZWNrQW5kUHJlcGFyZVBv
aW50ZXIKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJ
R05BTElOR19NRU1PUlkpCiAgICAgY2FzZSBNZW1vcnlNb2RlOjpTaWduYWxpbmc6IHsKICAgICAg
ICAgLy8gV2UndmUgdmlydHVhbGx5IG1hcHBlZCA0R2lCK3JlZHpvbmUgZm9yIHRoaXMgbWVtb3J5
LiBPbmx5IHRoZSB1c2VyLWFsbG9jYXRlZCBwYWdlcyBhcmUgYWRkcmVzc2FibGUsIGNvbnRpZ3Vv
dXNseSBpbiByYW5nZSBbMCwgY3VycmVudF0sCiAgICAgICAgIC8vIGFuZCBldmVyeXRoaW5nIGFi
b3ZlIGlzIG1hcHBlZCBQUk9UX05PTkUuIFdlIGRvbid0IG5lZWQgdG8gcGVyZm9ybSBhbnkgZXhw
bGljaXQgYm91bmRzIGNoZWNrIGluIHRoZSA0R2lCIHJhbmdlIGJlY2F1c2UgV2ViQXNzZW1ibHkg
cmVnaXN0ZXIKQEAgLTE4MTgsNiArMTgyOCw3IEBAIGlubGluZSBBaXJJUkdlbmVyYXRvcjo6RXhw
cmVzc2lvblR5cGUgQWlySVJHZW5lcmF0b3I6OmVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyCiAg
ICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAgYXBw
ZW5kKEFkZDY0LCBUbXAobV9tZW1vcnlCYXNlR1BSKSwgcmVzdWx0KTsKQEAgLTM2OTMsNyArMzcw
NCw3IEBAIGF1dG8gQWlySVJHZW5lcmF0b3I6OmFkZENhbGwodWludDMyX3QgZnVuY3Rpb25JbmRl
eCwgY29uc3QgVHlwZURlZmluaXRpb24mIHNpZ25hCiAgICAgICAgIGF1dG8qIHBhdGNocG9pbnQg
PSBwYWlyLmZpcnN0OwogICAgICAgICBhdXRvIGV4Y2VwdGlvbkhhbmRsZSA9IHBhaXIuc2Vjb25k
OwogICAgICAgICAvLyBXZSBuZWVkIHRvIGNsb2JiZXIgdGhlIHNpemUgcmVnaXN0ZXIgc2luY2Ug
dGhlIExMSW50IGFsd2F5cyBib3VuZHMgY2hlY2tzCi0gICAgICAgIGlmIChtX21vZGUgPT0gTWVt
b3J5TW9kZTo6U2lnbmFsaW5nIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQoKSkKKyAgICAgICAg
aWYgKHVzZVNpZ25hbGluZ01lbW9yeSgpIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQoKSkKICAg
ICAgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXJMYXRlKFJlZ2lzdGVyU2V0IHsgUGlubmVkUmVn
aXN0ZXJJbmZvOjpnZXQoKS5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlciB9KTsKICAgICAgICAg
cGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKFs9LCB0aGlzXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNv
bnN0IEIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgewogICAgICAgICAgICAg
QWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCmluZGV4IDM3
NTQyNjE1N2Q4OGFkMzk3OTE2YzNkMTYyZWRmNzIwYThlYmI0MGUuLmUyMTMxMTc3ZThlYmNmZWNl
ZGM2YWVlNGMwZDkyZmFhNjIzZWFmZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKQEAgLTUyMyw2ICs1MjMsMTUgQEAgcHJpdmF0ZToK
ICAgICAgICAgcmV0dXJuIHNldChkc3QsIGdldChzcmMpKTsKICAgICB9CiAKKyAgICBib29sIHVz
ZVNpZ25hbGluZ01lbW9yeSgpIGNvbnN0CisgICAgeworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9T
SUdOQUxJTkdfTUVNT1JZKQorICAgICAgICByZXR1cm4gbV9tb2RlID09IE1lbW9yeU1vZGU6OlNp
Z25hbGluZzsKKyNlbHNlCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgIH0KKwog
ICAgIEZ1bmN0aW9uUGFyc2VyPEIzSVJHZW5lcmF0b3I+KiBtX3BhcnNlciB7IG51bGxwdHIgfTsK
ICAgICBjb25zdCBNb2R1bGVJbmZvcm1hdGlvbiYgbV9pbmZvOwogICAgIGNvbnN0IE1lbW9yeU1v
ZGUgbV9tb2RlIHsgTWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcgfTsKQEAgLTYzNiw3ICs2NDUs
NyBAQCBCM0lSR2VuZXJhdG9yOjpCM0lSR2VuZXJhdG9yKGNvbnN0IE1vZHVsZUluZm9ybWF0aW9u
JiBpbmZvLCBQcm9jZWR1cmUmIHByb2NlZHVyZQogICAgIGlmICghQ29udGV4dDo6dXNlRmFzdFRM
UygpKQogICAgICAgICBtX3Byb2MucGluUmVnaXN0ZXIobV93YXNtQ29udGV4dEluc3RhbmNlR1BS
KTsKIAotICAgIGlmIChtb2RlICE9IE1lbW9yeU1vZGU6OlNpZ25hbGluZykgeworICAgIGlmICht
b2RlID09IE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nKSB7CiAgICAgICAgIG1fYm91bmRzQ2hl
Y2tpbmdTaXplR1BSID0gcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlcjsKICAg
ICAgICAgbV9wcm9jLnBpblJlZ2lzdGVyKG1fYm91bmRzQ2hlY2tpbmdTaXplR1BSKTsKICAgICB9
CkBAIC02NDgsOSArNjU3LDExIEBAIEIzSVJHZW5lcmF0b3I6OkIzSVJHZW5lcmF0b3IoY29uc3Qg
TW9kdWxlSW5mb3JtYXRpb24mIGluZm8sIFByb2NlZHVyZSYgcHJvY2VkdXJlCiAgICAgICAgICAg
ICBjYXNlIE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nOgogICAgICAgICAgICAgICAgIEFTU0VS
VF9VTlVTRUQocGlubmVkR1BSLCBtX2JvdW5kc0NoZWNraW5nU2l6ZUdQUiA9PSBwaW5uZWRHUFIp
OwogICAgICAgICAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJ
TkdfTUVNT1JZKQogICAgICAgICAgICAgY2FzZSBNZW1vcnlNb2RlOjpTaWduYWxpbmc6CiAgICAg
ICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChwaW5uZWRHUFIsIEludmFsaWRHUFJSZWcgPT0gcGlu
bmVkR1BSKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyNlbmRpZgogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgdGhpcy0+ZW1pdEV4Y2VwdGlvbkNoZWNrKGppdCwgRXhjZXB0aW9uVHlwZTo6
T3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpOwogICAgICAgICB9KTsKQEAgLTkxMiw5ICs5MjMsMTMg
QEAgYXV0byBCM0lSR2VuZXJhdG9yOjphZGRBcmd1bWVudHMoY29uc3QgVHlwZURlZmluaXRpb24m
IHNpZ25hdHVyZSkgLT4gUGFydGlhbFJlc3UKICAgICAgICAgQjM6OlR5cGUgdHlwZSA9IHRvQjNU
eXBlKHNpZ25hdHVyZS5hczxGdW5jdGlvblNpZ25hdHVyZT4oKS0+YXJndW1lbnRUeXBlKGkpKTsK
ICAgICAgICAgQjM6OlZhbHVlKiBhcmd1bWVudDsKICAgICAgICAgYXV0byByZXAgPSB3YXNtQ2Fs
bEluZm8ucGFyYW1zW2ldOwotICAgICAgICBpZiAocmVwLmlzUmVnKCkpIHsKLSAgICAgICAgICAg
IGFyZ3VtZW50ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6QXJndW1lbnRSZWdWYWx1
ZT4obV9wcm9jLCBPcmlnaW4oKSwgcmVwLnJlZygpKTsKLSAgICAgICAgICAgIGlmICh0eXBlID09
IEIzOjpJbnQzMiB8fCB0eXBlID09IEIzOjpGbG9hdCkKKyAgICAgICAgaWYgKHJlcC5pc0dQUigp
KSB7CisgICAgICAgICAgICBhcmd1bWVudCA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8QjM6
OkFyZ3VtZW50UmVnVmFsdWU+KG1fcHJvYywgT3JpZ2luKCksIHJlcC5qc3IoKS5wYXlsb2FkR1BS
KCkpOworICAgICAgICAgICAgaWYgKHR5cGUgPT0gQjM6OkludDMyKQorICAgICAgICAgICAgICAg
IGFyZ3VtZW50ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6VmFsdWU+KG1fcHJvYywg
QjM6OlRydW5jLCBPcmlnaW4oKSwgYXJndW1lbnQpOworICAgICAgICB9IGVsc2UgaWYgKHJlcC5p
c0ZQUigpKSB7CisgICAgICAgICAgICBhcmd1bWVudCA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmRO
ZXc8QjM6OkFyZ3VtZW50UmVnVmFsdWU+KG1fcHJvYywgT3JpZ2luKCksIHJlcC5mcHIoKSk7Cisg
ICAgICAgICAgICBpZiAodHlwZSA9PSBCMzo6RmxvYXQpCiAgICAgICAgICAgICAgICAgYXJndW1l
bnQgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6VHJ1
bmMsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBB
U1NFUlQocmVwLmlzU3RhY2soKSk7CkBAIC0xNDQzLDYgKzE0NTgsNyBAQCBpbmxpbmUgVmFsdWUq
IEIzSVJHZW5lcmF0b3I6OmVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKFZhbHVlKiBwb2ludGVy
LCB1aW50MzJfdAogICAgICAgICBicmVhazsKICAgICB9CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1C
TFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzogewog
ICAgICAgICAvLyBXZSd2ZSB2aXJ0dWFsbHkgbWFwcGVkIDRHaUIrcmVkem9uZSBmb3IgdGhpcyBt
ZW1vcnkuIE9ubHkgdGhlIHVzZXItYWxsb2NhdGVkIHBhZ2VzIGFyZSBhZGRyZXNzYWJsZSwgY29u
dGlndW91c2x5IGluIHJhbmdlIFswLCBjdXJyZW50XSwKICAgICAgICAgLy8gYW5kIGV2ZXJ5dGhp
bmcgYWJvdmUgaXMgbWFwcGVkIFBST1RfTk9ORS4gV2UgZG9uJ3QgbmVlZCB0byBwZXJmb3JtIGFu
eSBleHBsaWNpdCBib3VuZHMgY2hlY2sgaW4gdGhlIDRHaUIgcmFuZ2UgYmVjYXVzZSBXZWJBc3Nl
bWJseSByZWdpc3RlcgpAQCAtMTQ2MCw2ICsxNDc2LDcgQEAgaW5saW5lIFZhbHVlKiBCM0lSR2Vu
ZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihWYWx1ZSogcG9pbnRlciwgdWludDMy
X3QKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9CisjZW5kaWYKICAgICB9CiAKICAg
ICBwb2ludGVyID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBaRXh0
MzIsIG9yaWdpbigpLCBwb2ludGVyKTsKQEAgLTE0OTMsNyArMTUxMCw3IEBAIGlubGluZSB1aW50
MzJfdCBzaXplT2ZMb2FkT3AoTG9hZE9wVHlwZSBvcCkKIAogaW5saW5lIEIzOjpLaW5kIEIzSVJH
ZW5lcmF0b3I6Om1lbW9yeUtpbmQoQjM6Ok9wY29kZSBtZW1vcnlPcCkKIHsKLSAgICBpZiAobV9t
b2RlID09IE1lbW9yeU1vZGU6OlNpZ25hbGluZyB8fCBtX2luZm8ubWVtb3J5LmlzU2hhcmVkKCkp
CisgICAgaWYgKHVzZVNpZ25hbGluZ01lbW9yeSgpIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQo
KSkKICAgICAgICAgcmV0dXJuIHRyYXBwaW5nKG1lbW9yeU9wKTsKICAgICByZXR1cm4gbWVtb3J5
T3A7CiB9CkBAIC0yOTc3LDcgKzI5OTQsNyBAQCBhdXRvIEIzSVJHZW5lcmF0b3I6OmFkZENhbGwo
dWludDMyX3QgZnVuY3Rpb25JbmRleCwgY29uc3QgVHlwZURlZmluaXRpb24mIHNpZ25hdAogICAg
ICAgICAgICAgICAgIHBhdGNocG9pbnQtPmVmZmVjdHMucmVhZHNQaW5uZWQgPSB0cnVlOwogCiAg
ICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBjbG9iYmVyIHRoZSBzaXplIHJlZ2lzdGVyIHNp
bmNlIHRoZSBMTEludCBhbHdheXMgYm91bmRzIGNoZWNrcwotICAgICAgICAgICAgICAgIGlmICht
X21vZGUgPT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQo
KSkKKyAgICAgICAgICAgICAgICBpZiAodXNlU2lnbmFsaW5nTWVtb3J5KCkgfHwgbV9pbmZvLm1l
bW9yeS5pc1NoYXJlZCgpKQogICAgICAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVy
TGF0ZShSZWdpc3RlclNldCB7IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCkuYm91bmRzQ2hlY2tp
bmdTaXplUmVnaXN0ZXIgfSk7CiAgICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJh
dG9yKFt0aGlzLCBoYW5kbGUsIHVubGlua2VkV2FzbVRvV2FzbUNhbGxzLCBmdW5jdGlvbkluZGV4
XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IEIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJhbXMm
IHBhcmFtcykgewogICAgICAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVy
VXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQmluZGluZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
QmluZGluZy5jcHAKaW5kZXggZWRjNzBiZWEwOGFmMmI4MzJjMmYxOWVhZWI0NDZlYjJjNDU4ZGYz
ZS4uMzI3Mjg5OTQ5YWRkODQ0MTMxZDBkMmQ2MjZmZjU4NTMwYmQxMjFkYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5kaW5nLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lm
IEVOQUJMRShXRUJBU1NFTUJMWSkKIAogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1
ZGUgIkRpc2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oIgogI2luY2x1ZGUgIkxpbmtC
dWZmZXIuaCIKICNpbmNsdWRlICJXYXNtQ2FsbGluZ0NvbnZlbnRpb24uaCIKICNpbmNsdWRlICJX
YXNtSW5zdGFuY2UuaCIKQEAgLTQxLDE4ICs0MiwyMSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxl
ckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub1dhc20odW5z
aQogewogICAgIC8vIEZJWE1FOiBDb25zaWRlciB1bmlxdWlmeSB0aGUgc3R1YnMgYmFzZWQgb24g
c2lnbmF0dXJlICsgaW5kZXggdG8gc2VlIGlmIHRoaXMgc2F2ZXMgbWVtb3J5LgogICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQxNTcKLQotICAgIGNvbnN0
IFBpbm5lZFJlZ2lzdGVySW5mbyYgcGlubmVkUmVncyA9IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0
KCk7CiAgICAgSklUIGppdDsKIAogICAgIEdQUlJlZyBzY3JhdGNoID0gd2FzbUNhbGxpbmdDb252
ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1swXTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQor
ICAgIEdQUlJlZyBiYXNlTWVtb3J5ID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVT
Y3JhdGNoR1BSc1sxXTsKKyAgICBHUFJSZWcgc2l6ZVJlZ0FzU2NyYXRjaCA9IHdhc21DYWxsaW5n
Q29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMl07CisjZWxzZQorICAgIGNvbnN0IFBp
bm5lZFJlZ2lzdGVySW5mbyYgcGlubmVkUmVncyA9IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCk7
CiAgICAgR1BSUmVnIGJhc2VNZW1vcnkgPSBwaW5uZWRSZWdzLmJhc2VNZW1vcnlQb2ludGVyOwot
ICAgIEFTU0VSVChiYXNlTWVtb3J5ICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7Ci0gICAgQVNT
RVJUKGJhc2VNZW1vcnkgIT0gc2NyYXRjaCk7Ci0gICAgQVNTRVJUKHBpbm5lZFJlZ3MuYm91bmRz
Q2hlY2tpbmdTaXplUmVnaXN0ZXIgIT0gYmFzZU1lbW9yeSk7Ci0gICAgQVNTRVJUKHBpbm5lZFJl
Z3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIgIT0gc2NyYXRjaCk7CiAgICAgR1BSUmVnIHNp
emVSZWdBc1NjcmF0Y2ggPSBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyOwor
I2VuZGlmCisgICAgQVNTRVJUKGJhc2VNZW1vcnkgIT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsK
ICAgICBBU1NFUlQoc2l6ZVJlZ0FzU2NyYXRjaCAhPSBHUFJSZWc6OkludmFsaWRHUFJSZWcpOwor
ICAgIEFTU0VSVChzY3JhdGNoICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7CisgICAgQVNTRVJU
KG5vT3ZlcmxhcChzY3JhdGNoLCBiYXNlTWVtb3J5LCBzaXplUmVnQXNTY3JhdGNoKSk7CiAKICAg
ICAvLyBCMydzIGNhbGwgY29kZWdlbiBlbnN1cmVzIHRoYXQgdGhlIEpTQ2VsbCBpcyBhIFdlYkFz
c2VtYmx5RnVuY3Rpb24uCiAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHNpemVSZWdB
c1NjcmF0Y2gpOyAvLyBPbGQgSW5zdGFuY2UqCkBAIC02NSw2ICs2OSw3IEBAIEV4cGVjdGVkPE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2Fz
bVRvV2FzbSh1bnNpCiAgICAgaml0LmxvYWRQdHIoSklUOjpBZGRyZXNzKHNpemVSZWdBc1NjcmF0
Y2gsIEluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZFN0YWNrTGltaXQoKSksIHNpemVSZWdBc1NjcmF0
Y2gpOwogICAgIGppdC5zdG9yZVB0cihzaXplUmVnQXNTY3JhdGNoLCBKSVQ6OkFkZHJlc3MoYmFz
ZU1lbW9yeSwgSW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkU3RhY2tMaW1pdCgpKSk7CiAKKyNpZiAh
Q1BVKEFSTSkgLy8gQVJNIGhhcyBubyBwaW5uZWQgcmVnaXN0ZXJzIGZvciBXYXNtIE1lbW9yeSwg
c28gbm8gbmVlZCB0byBzZXQgdGhlbSB1cAogICAgIC8vIEZJWE1FIHRoZSBmb2xsb3dpbmcgY29k
ZSBhc3N1bWVzIHRoYXQgYWxsIFdhc206Okluc3RhbmNlIGhhdmUgdGhlIHNhbWUgcGlubmVkIHJl
Z2lzdGVycy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjk1Mgog
ICAgIC8vIFNldCB1cCB0aGUgY2FsbGVlJ3MgYmFzZU1lbW9yeSByZWdpc3RlciBhcyB3ZWxsIGFz
IHRoZSBtZW1vcnkgc2l6ZSByZWdpc3RlcnMuCiAgICAgewpAQCAtNzIsNiArNzcsNyBAQCBFeHBl
Y3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1
cmU+IHdhc21Ub1dhc20odW5zaQogICAgICAgICBqaXQubG9hZFB0cihKSVQ6OkFkZHJlc3MoYmFz
ZU1lbW9yeSwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNlTWVt
b3J5KTsgLy8gV2FzbTo6TWVtb3J5OjpUYWdnZWRBcnJheVN0b3JhZ2VQdHI8dm9pZD4gKHZvaWQq
KS4KICAgICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5QW5kVW50YWcoR2lnYWNhZ2U6OlByaW1p
dGl2ZSwgYmFzZU1lbW9yeSwgcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3Rlciwg
d2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1sxXSk7CiAgICAgfQor
I2VuZGlmCiAKICAgICAvLyBUYWlsIGNhbGwgaW50byB0aGUgY2FsbGVlIFdlYkFzc2VtYmx5IGZ1
bmN0aW9uLgogICAgIGppdC5sb2FkUHRyKEpJVDo6QWRkcmVzcyhzY3JhdGNoKSwgc2NyYXRjaCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuY3BwCmluZGV4IGEzMjFjNTJm
MTVlY2E1MjIxM2VjZDZlZTkyMTcyNzE5ODExYjMyNWEuLjMyMDJmNTQ4MGNhNDEyZjI3Mjk0OWUx
NTRiMmIyMjZlZTY5MDBjYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21DYWxsZWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxs
ZWUuY3BwCkBAIC0xMzEsNiArMTMxLDggQEAgUmVnaXN0ZXJBdE9mZnNldExpc3QqIExMSW50Q2Fs
bGVlOjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCkKICAgICAgICAgcmVnaXN0ZXJzLnNldChHUFJJbmZv
OjpyZWdDUzIpOyAvLyBQQgogI2VsaWYgQ1BVKEFSTTY0KSB8fCBDUFUoUklTQ1Y2NCkKICAgICAg
ICAgcmVnaXN0ZXJzLnNldChHUFJJbmZvOjpyZWdDUzcpOyAvLyBQQgorI2VsaWYgQ1BVKEFSTSkK
KyAgICAgICAgcmVnaXN0ZXJzLnNldChHUFJJbmZvOjpyZWdDUzEpOyAvLyBQQgogI2Vsc2UKICNl
cnJvciBVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUuCiAjZW5kaWYKQEAgLTE1OCw2ICsxNjAsNyBA
QCBjb25zdCBXYXNtSW5zdHJ1Y3Rpb24qIExMSW50Q2FsbGVlOjpvdXRPZkxpbmVKdW1wVGFyZ2V0
KGNvbnN0IFdhc21JbnN0cnVjdGlvbiogcAogICAgIHJldHVybiBtX2luc3RydWN0aW9ucy0+YXQo
b2Zmc2V0ICsgdGFyZ2V0KS5wdHIoKTsKIH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9CM0pJ
VCkKIHZvaWQgT3B0aW1pemluZ0pJVENhbGxlZTo6bGlua0V4Y2VwdGlvbkhhbmRsZXJzKFZlY3Rv
cjxVbmxpbmtlZEhhbmRsZXJJbmZvPiB1bmxpbmtlZEV4Y2VwdGlvbkhhbmRsZXJzLCBWZWN0b3I8
Q29kZUxvY2F0aW9uTGFiZWw8RXhjZXB0aW9uSGFuZGxlclB0clRhZz4+IGV4Y2VwdGlvbkhhbmRs
ZXJMb2NhdGlvbnMpCiB7CiAgICAgc2l6ZV90IGNvdW50ID0gdW5saW5rZWRFeGNlcHRpb25IYW5k
bGVycy5zaXplKCk7CkBAIC0xODQsNyArMTg3LDcgQEAgY29uc3QgU3RhY2tNYXAmIE9wdGltaXpp
bmdKSVRDYWxsZWU6OnN0YWNrbWFwKENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleCkgY29uc3QK
ICAgICBSRUxFQVNFX0FTU0VSVChpdGVyICE9IG1fc3RhY2ttYXBzLmVuZCgpKTsKICAgICByZXR1
cm4gaXRlci0+dmFsdWU7CiB9Ci0KKyNlbmRpZgogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2Fz
bQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlR3Jv
dXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZUdyb3VwLmNwcApp
bmRleCAxZWE0NWNhNGE2ZTkxZDAzYTk3MGViYjVkNWZkMmIyY2Y5ZGZjZjBhLi41MTlkMjA5NmFk
NjI3Y2JiM2JlODgzOWQ3ZTQ4MmI4MTk4OGZiYTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlR3JvdXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21DYWxsZWVHcm91cC5jcHAKQEAgLTE2MCwxNyArMTYwLDIxIEBAIHZvaWQg
Q2FsbGVlR3JvdXA6OmNvbXBpbGVBc3luYyhDb250ZXh0KiBjb250ZXh0LCBBc3luY0NvbXBpbGF0
aW9uQ2FsbGJhY2smJiB0YXNrCiAKIGJvb2wgQ2FsbGVlR3JvdXA6OmlzU2FmZVRvUnVuKE1lbW9y
eU1vZGUgbWVtb3J5TW9kZSkKIHsKKyAgICBVTlVTRURfUEFSQU0obWVtb3J5TW9kZSk7CisKICAg
ICBpZiAoIXJ1bm5hYmxlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHN3aXRjaCAo
bV9tb2RlKSB7CiAgICAgY2FzZSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZzoKICAg
ICAgICAgcmV0dXJuIHRydWU7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1P
UlkpCiAgICAgY2FzZSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmc6CiAgICAgICAgIC8vIENv
ZGUgYmVpbmcgaW4gU2lnbmFsaW5nIG1vZGUgbWVhbnMgdGhhdCBpdCBwZXJmb3JtcyBubyBib3Vu
ZHMgY2hlY2tzLgogICAgICAgICAvLyBJdHMgbWVtb3J5LCBldmVuIGlmIGVtcHR5LCBhYnNvbHV0
ZWx5IG11c3QgYWxzbyBiZSBpbiBTaWduYWxpbmcgbW9kZQogICAgICAgICAvLyBiZWNhdXNlIHRo
ZSBwYWdlIHByb3RlY3Rpb24gZGV0ZWN0cyBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLgogICAgICAg
ICByZXR1cm4gbWVtb3J5TW9kZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmc7CisjZW5k
aWYKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGlu
Z0NvbnZlbnRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdD
b252ZW50aW9uLmNwcAppbmRleCAyMDNjODQzYWU4ZTYzZWNkZmI0ODlhNGFkNjY1M2VlZmUxMWRk
NGJjLi5lYjA5MDk1ODE4NDAxODgzOTNkNWNlZjM3MzQxODRiYjIxMjg4NWRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5jcHAK
QEAgLTQwLDcgKzQwLDcgQEAgY29uc3QgSlNDYWxsaW5nQ29udmVudGlvbiYganNDYWxsaW5nQ29u
dmVudGlvbigpCiAgICAgICAgIFJlZ2lzdGVyU2V0IGNhbGxlclNhdmVSZWdpc3RlcnMgPSBSZWdp
c3RlclNldDo6YWxsUmVnaXN0ZXJzKCk7CiAgICAgICAgIGNhbGxlclNhdmVSZWdpc3RlcnMuZXhj
bHVkZShSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpKTsKIAotICAgICAgICBzdGF0
aWNKU0NhbGxpbmdDb252ZW50aW9uLmNvbnN0cnVjdChWZWN0b3I8UmVnPigpLCBWZWN0b3I8UmVn
PigpLCBSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpLCBXVEZNb3ZlKGNhbGxlclNh
dmVSZWdpc3RlcnMpKTsKKyAgICAgICAgc3RhdGljSlNDYWxsaW5nQ29udmVudGlvbi5jb25zdHJ1
Y3QoVmVjdG9yPEpTVmFsdWVSZWdzPigpLCBWZWN0b3I8RlBSUmVnPigpLCBSZWdpc3RlclNldDo6
Y2FsbGVlU2F2ZVJlZ2lzdGVycygpLCBXVEZNb3ZlKGNhbGxlclNhdmVSZWdpc3RlcnMpKTsKICAg
ICB9KTsKIAogICAgIHJldHVybiBzdGF0aWNKU0NhbGxpbmdDb252ZW50aW9uOwpAQCAtNTEsMzEg
KzUxLDUxIEBAIGNvbnN0IFdhc21DYWxsaW5nQ29udmVudGlvbiYgd2FzbUNhbGxpbmdDb252ZW50
aW9uKCkKICAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPFdhc21DYWxsaW5nQ29udmVudGlv
bj4gc3RhdGljV2FzbUNhbGxpbmdDb252ZW50aW9uOwogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxh
ZyBzdGF0aWNXYXNtQ2FsbGluZ0NvbnZlbnRpb25GbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKHN0
YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbkZsYWcsIFtdICgpIHsKLSAgICAgICAgVmVjdG9yPFJl
Zz4gZ3ByQXJndW1lbnRSZWdpc3RlcnMoR1BSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVy
cyk7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHUFJJbmZvOjpudW1iZXJPZkFy
Z3VtZW50UmVnaXN0ZXJzOyArK2kpCi0gICAgICAgICAgICBncHJBcmd1bWVudFJlZ2lzdGVyc1tp
XSA9IEdQUkluZm86OnRvQXJndW1lbnRSZWdpc3RlcihpKTsKKyNpZiBVU0UoSlNWQUxVRTY0KSAv
LyBPbmUgdmFsdWUgcGVyIEdQUgorICAgICAgICBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZB
cmd1bWVudEpTUnMgPSBHUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzOworI2VsaWYg
VVNFKEpTVkFMVUUzMl82NCkgLy8gT25lIHZhbHVlIHBlciBjb25zZWN1dGl2ZSBHUFIgcGFpcgor
ICAgICAgICBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudEpTUnMgPSBHUFJJbmZv
OjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzIC8gMjsKKyNlbmRpZgorICAgICAgICBWZWN0b3I8
SlNWYWx1ZVJlZ3M+IGpzckFyZ3VtZW50UmVnaXN0ZXJzKG51bWJlck9mQXJndW1lbnRKU1JzKTsK
KyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mQXJndW1lbnRKU1JzOyAr
K2kpIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAganNyQXJndW1lbnRSZWdpc3Rl
cnNbaV0gPSBKU1ZhbHVlUmVncyB7IEdQUkluZm86OnRvQXJndW1lbnRSZWdpc3RlcihpKSB9Owor
I2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIGpzckFyZ3VtZW50UmVnaXN0ZXJz
W2ldID0gSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjp0b0FyZ3VtZW50UmVnaXN0ZXIoMiAqIGkgKyAx
KSwgR1BSSW5mbzo6dG9Bcmd1bWVudFJlZ2lzdGVyKDIgKiBpKSB9OworI2VuZGlmCisgICAgICAg
IH0KIAotICAgICAgICBWZWN0b3I8UmVnPiBmcHJBcmd1bWVudFJlZ2lzdGVycyhGUFJJbmZvOjpu
dW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzKTsKKyAgICAgICAgVmVjdG9yPEZQUlJlZz4gZnByQXJn
dW1lbnRSZWdpc3RlcnMoRlBSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyk7CiAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBGUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVn
aXN0ZXJzOyArK2kpCiAgICAgICAgICAgICBmcHJBcmd1bWVudFJlZ2lzdGVyc1tpXSA9IEZQUklu
Zm86OnRvQXJndW1lbnRSZWdpc3RlcihpKTsKIAogICAgICAgICBSZWdpc3RlclNldCBzY3JhdGNo
ID0gUmVnaXN0ZXJTZXQ6OmFsbEdQUnMoKTsKLSAgICAgICAgc2NyYXRjaC5leGNsdWRlKFJlZ2lz
dGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCkpOworICAgICAgICBzY3JhdGNoLmV4Y2x1ZGUo
UmVnaXN0ZXJTZXQ6OnZtQ2FsbGVlU2F2ZVJlZ2lzdGVycygpKTsKICAgICAgICAgc2NyYXRjaC5l
eGNsdWRlKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7CiAgICAgICAgIHNj
cmF0Y2guZXhjbHVkZShSZWdpc3RlclNldDo6cmVzZXJ2ZWRIYXJkd2FyZVJlZ2lzdGVycygpKTsK
ICAgICAgICAgc2NyYXRjaC5leGNsdWRlKFJlZ2lzdGVyU2V0OjpzdGFja1JlZ2lzdGVycygpKTsK
LSAgICAgICAgZm9yIChSZWcgcmVnIDogZ3ByQXJndW1lbnRSZWdpc3RlcnMpCi0gICAgICAgICAg
ICBzY3JhdGNoLmNsZWFyKHJlZyk7CisgICAgICAgIGZvciAoSlNWYWx1ZVJlZ3MganNyIDoganNy
QXJndW1lbnRSZWdpc3RlcnMpIHsKKyAgICAgICAgICAgIHNjcmF0Y2guY2xlYXIoanNyLnBheWxv
YWRHUFIoKSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIHNjcmF0Y2guY2xl
YXIoanNyLnRhZ0dQUigpKTsKKyNlbmRpZgorICAgICAgICB9CiAKICAgICAgICAgVmVjdG9yPEdQ
UlJlZz4gc2NyYXRjaEdQUnM7CiAgICAgICAgIGZvciAoUmVnIHJlZyA6IHNjcmF0Y2gpCiAgICAg
ICAgICAgICBzY3JhdGNoR1BScy5hcHBlbmQocmVnLmdwcigpKTsKKworICAgICAgICAvLyBOZWVk
IGF0IGxlYXN0IG9uZSBKU1ZhbHVlIGFuZCBhbiBhZGRpdGlvbmFsIEdQUgorI2lmIFVTRShKU1ZB
TFVFNjQpCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHNjcmF0Y2hHUFJzLnNpemUoKSA+PSAyKTsK
KyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKHNjcmF0Y2hH
UFJzLnNpemUoKSA+PSAzKTsKKyNlbmRpZgogCiAgICAgICAgIFJlZ2lzdGVyU2V0IGNhbGxlclNh
dmVSZWdpc3RlcnMgPSBSZWdpc3RlclNldDo6YWxsUmVnaXN0ZXJzKCk7CiAgICAgICAgIGNhbGxl
clNhdmVSZWdpc3RlcnMuZXhjbHVkZShSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygp
KTsKIAotICAgICAgICBzdGF0aWNXYXNtQ2FsbGluZ0NvbnZlbnRpb24uY29uc3RydWN0KFdURk1v
dmUoZ3ByQXJndW1lbnRSZWdpc3RlcnMpLCBXVEZNb3ZlKGZwckFyZ3VtZW50UmVnaXN0ZXJzKSwg
V1RGTW92ZShzY3JhdGNoR1BScyksIFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCks
IFdURk1vdmUoY2FsbGVyU2F2ZVJlZ2lzdGVycykpOworICAgICAgICBzdGF0aWNXYXNtQ2FsbGlu
Z0NvbnZlbnRpb24uY29uc3RydWN0KFdURk1vdmUoanNyQXJndW1lbnRSZWdpc3RlcnMpLCBXVEZN
b3ZlKGZwckFyZ3VtZW50UmVnaXN0ZXJzKSwgV1RGTW92ZShzY3JhdGNoR1BScyksIFJlZ2lzdGVy
U2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCksIFdURk1vdmUoY2FsbGVyU2F2ZVJlZ2lzdGVycykp
OwogICAgIH0pOwogCiAgICAgcmV0dXJuIHN0YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlv
bi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgK
aW5kZXggNDI4OGY4MDFkZTFiZTM0YjM4OTViYWYyZjNhYzU1MWVjNDhhYjU3NC4uYjY2MzkzZmQ5
YzI1MmUwNzVlMTJjNDg2Njc0ZWJiMjdiNWQ4YWZiOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKQEAgLTU3LDggKzU3LDEzIEBA
IHN0cnVjdCBDYWxsSW5mb3JtYXRpb24gewogICAgIHsKICAgICAgICAgUmVnaXN0ZXJTZXQgdXNl
ZFJlc3VsdFJlZ2lzdGVyczsKICAgICAgICAgZm9yIChWYWx1ZUxvY2F0aW9uIGxvYyA6IHJlc3Vs
dHMpIHsKLSAgICAgICAgICAgIGlmIChsb2MuaXNSZWcoKSkKLSAgICAgICAgICAgICAgICB1c2Vk
UmVzdWx0UmVnaXN0ZXJzLnNldChsb2MucmVnKCkpOworICAgICAgICAgICAgaWYgKGxvYy5pc0dQ
UigpKSB7CisgICAgICAgICAgICAgICAgdXNlZFJlc3VsdFJlZ2lzdGVycy5zZXQobG9jLmpzcigp
LnBheWxvYWRHUFIoKSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICB1
c2VkUmVzdWx0UmVnaXN0ZXJzLnNldChsb2MuanNyKCkudGFnR1BSKCkpOworI2VuZGlmCisgICAg
ICAgICAgICB9IGVsc2UgaWYgKGxvYy5pc0ZQUigpKQorICAgICAgICAgICAgICAgIHVzZWRSZXN1
bHRSZWdpc3RlcnMuc2V0KGxvYy5mcHIoKSk7CiAgICAgICAgIH0KIAogICAgICAgICBSZWdpc3Rl
ckF0T2Zmc2V0TGlzdCBzYXZlZFJlZ3ModXNlZFJlc3VsdFJlZ2lzdGVycywgUmVnaXN0ZXJBdE9m
ZnNldExpc3Q6Olplcm9CYXNlZCk7CkBAIC03Nyw4ICs4Miw4IEBAIGNsYXNzIFdhc21DYWxsaW5n
Q29udmVudGlvbiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBoZWFk
ZXJTaXplSW5CeXRlcyA9IENhbGxGcmFtZTo6aGVhZGVyU2l6ZUluUmVnaXN0ZXJzICogc2l6ZW9m
KFJlZ2lzdGVyKTsKIAotICAgIFdhc21DYWxsaW5nQ29udmVudGlvbihWZWN0b3I8UmVnPiYmIGdw
cnMsIFZlY3RvcjxSZWc+JiYgZnBycywgVmVjdG9yPEdQUlJlZz4mJiBzY3JhdGNoZXMsIFJlZ2lz
dGVyU2V0JiYgY2FsbGVlU2F2ZXMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVyU2F2ZXMpCi0gICAgICAg
IDogZ3ByQXJncyhXVEZNb3ZlKGdwcnMpKQorICAgIFdhc21DYWxsaW5nQ29udmVudGlvbihWZWN0
b3I8SlNWYWx1ZVJlZ3M+JiYganNycywgVmVjdG9yPEZQUlJlZz4mJiBmcHJzLCBWZWN0b3I8R1BS
UmVnPiYmIHNjcmF0Y2hlcywgUmVnaXN0ZXJTZXQmJiBjYWxsZWVTYXZlcywgUmVnaXN0ZXJTZXQm
JiBjYWxsZXJTYXZlcykKKyAgICAgICAgOiBqc3JBcmdzKFdURk1vdmUoanNycykpCiAgICAgICAg
ICwgZnByQXJncyhXVEZNb3ZlKGZwcnMpKQogICAgICAgICAsIHByb2xvZ3VlU2NyYXRjaEdQUnMo
V1RGTW92ZShzY3JhdGNoZXMpKQogICAgICAgICAsIGNhbGxlZVNhdmVSZWdpc3RlcnMoV1RGTW92
ZShjYWxsZWVTYXZlcykpCkBAIC04OCwxMCArOTMsMTEgQEAgcHVibGljOgogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKFdhc21DYWxsaW5nQ29udmVudGlvbik7CiAKIHByaXZhdGU6Ci0gICAgQXJn
dW1lbnRMb2NhdGlvbiBtYXJzaGFsbExvY2F0aW9uSW1wbChDYWxsUm9sZSByb2xlLCBjb25zdCBW
ZWN0b3I8UmVnPiYgcmVnQXJncywgc2l6ZV90JiBjb3VudCwgc2l6ZV90JiBzdGFja09mZnNldCkg
Y29uc3QKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBSZWdUeXBlPgorICAgIEFyZ3VtZW50TG9jYXRp
b24gbWFyc2hhbGxMb2NhdGlvbkltcGwoQ2FsbFJvbGUgcm9sZSwgY29uc3QgVmVjdG9yPFJlZ1R5
cGU+JiByZWdBcmdzLCBzaXplX3QmIGNvdW50LCBzaXplX3QmIHN0YWNrT2Zmc2V0KSBjb25zdAog
ICAgIHsKICAgICAgICAgaWYgKGNvdW50IDwgcmVnQXJncy5zaXplKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gQXJndW1lbnRMb2NhdGlvbjo6cmVnKHJlZ0FyZ3NbY291bnQrK10pOworICAgICAgICAg
ICAgcmV0dXJuIEFyZ3VtZW50TG9jYXRpb24geyByZWdBcmdzW2NvdW50KytdIH07CiAKICAgICAg
ICAgY291bnQrKzsKICAgICAgICAgQXJndW1lbnRMb2NhdGlvbiByZXN1bHQgPSByb2xlID09IENh
bGxSb2xlOjpDYWxsZXIgPyBBcmd1bWVudExvY2F0aW9uOjpzdGFja0FyZ3VtZW50KHN0YWNrT2Zm
c2V0KSA6IEFyZ3VtZW50TG9jYXRpb246OnN0YWNrKHN0YWNrT2Zmc2V0KTsKQEAgLTEwOSw3ICsx
MTUsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoK
LSAgICAgICAgICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBncHJBcmdzLCBn
cEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybiBtYXJzaGFs
bExvY2F0aW9uSW1wbChyb2xlLCBqc3JBcmdzLCBncEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0
KTsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpG
NjQ6CiAgICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwgZnByQXJn
cywgZnBBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CkBAIC0xNTQsOCArMTYwLDggQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIGNvbnN0IFZlY3RvcjxS
ZWc+IGdwckFyZ3M7Ci0gICAgY29uc3QgVmVjdG9yPFJlZz4gZnByQXJnczsKKyAgICBjb25zdCBW
ZWN0b3I8SlNWYWx1ZVJlZ3M+IGpzckFyZ3M7CisgICAgY29uc3QgVmVjdG9yPEZQUlJlZz4gZnBy
QXJnczsKICAgICBjb25zdCBWZWN0b3I8R1BSUmVnPiBwcm9sb2d1ZVNjcmF0Y2hHUFJzOwogICAg
IGNvbnN0IFJlZ2lzdGVyU2V0IGNhbGxlZVNhdmVSZWdpc3RlcnM7CiAgICAgY29uc3QgUmVnaXN0
ZXJTZXQgY2FsbGVyU2F2ZVJlZ2lzdGVyczsKQEAgLTE3MCw4ICsxNzYsOCBAQCBwdWJsaWM6CiAg
ICAgLy8gV2FzbTo6Q29udGV4dConcyBpbnN0YW5jZS4KICAgICBzdGF0aWMgY29uc3RleHByIHB0
cmRpZmZfdCBpbnN0YW5jZVN0YWNrT2Zmc2V0ID0gQ2FsbEZyYW1lU2xvdDo6dGhpc0FyZ3VtZW50
ICogc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKTsKIAotICAgIEpTQ2FsbGluZ0NvbnZlbnRpb24oVmVj
dG9yPFJlZz4mJiBncHJzLCBWZWN0b3I8UmVnPiYmIGZwcnMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVl
U2F2ZXMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVyU2F2ZXMpCi0gICAgICAgIDogZ3ByQXJncyhXVEZN
b3ZlKGdwcnMpKQorICAgIEpTQ2FsbGluZ0NvbnZlbnRpb24oVmVjdG9yPEpTVmFsdWVSZWdzPiYm
IGdwcnMsIFZlY3RvcjxGUFJSZWc+JiYgZnBycywgUmVnaXN0ZXJTZXQmJiBjYWxsZWVTYXZlcywg
UmVnaXN0ZXJTZXQmJiBjYWxsZXJTYXZlcykKKyAgICAgICAgOiBqc3JBcmdzKFdURk1vdmUoZ3By
cykpCiAgICAgICAgICwgZnByQXJncyhXVEZNb3ZlKGZwcnMpKQogICAgICAgICAsIGNhbGxlZVNh
dmVSZWdpc3RlcnMoV1RGTW92ZShjYWxsZWVTYXZlcykpCiAgICAgICAgICwgY2FsbGVyU2F2ZVJl
Z2lzdGVycyhXVEZNb3ZlKGNhbGxlclNhdmVzKSkKQEAgLTE3OSwxMCArMTg1LDExIEBAIHB1Ymxp
YzoKIAogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEpTQ2FsbGluZ0NvbnZlbnRpb24pOwogcHJp
dmF0ZToKLSAgICBBcmd1bWVudExvY2F0aW9uIG1hcnNoYWxsTG9jYXRpb25JbXBsKENhbGxSb2xl
IHJvbGUsIGNvbnN0IFZlY3RvcjxSZWc+JiByZWdBcmdzLCBzaXplX3QmIGNvdW50LCBzaXplX3Qm
IHN0YWNrT2Zmc2V0KSBjb25zdAorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBSZWdUeXBlPgorICAg
IEFyZ3VtZW50TG9jYXRpb24gbWFyc2hhbGxMb2NhdGlvbkltcGwoQ2FsbFJvbGUgcm9sZSwgY29u
c3QgVmVjdG9yPFJlZ1R5cGU+JiByZWdBcmdzLCBzaXplX3QmIGNvdW50LCBzaXplX3QmIHN0YWNr
T2Zmc2V0KSBjb25zdAogICAgIHsKICAgICAgICAgaWYgKGNvdW50IDwgcmVnQXJncy5zaXplKCkp
Ci0gICAgICAgICAgICByZXR1cm4gQXJndW1lbnRMb2NhdGlvbjo6cmVnKHJlZ0FyZ3NbY291bnQr
K10pOworICAgICAgICAgICAgcmV0dXJuIEFyZ3VtZW50TG9jYXRpb24geyByZWdBcmdzW2NvdW50
KytdIH07CiAKICAgICAgICAgY291bnQrKzsKICAgICAgICAgQXJndW1lbnRMb2NhdGlvbiByZXN1
bHQgPSByb2xlID09IENhbGxSb2xlOjpDYWxsZXIgPyBBcmd1bWVudExvY2F0aW9uOjpzdGFja0Fy
Z3VtZW50KHN0YWNrT2Zmc2V0KSA6IEFyZ3VtZW50TG9jYXRpb246OnN0YWNrKHN0YWNrT2Zmc2V0
KTsKQEAgLTIwMCw3ICsyMDcsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpF
eHRlcm5yZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAgICAgY2FzZSBUeXBl
S2luZDo6UmVmTnVsbDoKLSAgICAgICAgICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9uSW1wbChy
b2xlLCBncHJBcmdzLCBncEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KTsKKyAgICAgICAgICAg
IHJldHVybiBtYXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBqc3JBcmdzLCBncEFyZ3VtZW50Q291
bnQsIHN0YWNrT2Zmc2V0KTsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpGNjQ6CiAgICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbklt
cGwocm9sZSwgZnByQXJncywgZnBBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CkBAIC0yMjMs
MTIgKzIzMCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2ln
bmF0dXJlLmFzPEZ1bmN0aW9uU2lnbmF0dXJlPigpLT5hcmd1bWVudENvdW50KCk7ICsraSkKICAg
ICAgICAgICAgIHBhcmFtcy5hcHBlbmQobWFyc2hhbGxMb2NhdGlvbihyb2xlLCBzaWduYXR1cmUu
YXM8RnVuY3Rpb25TaWduYXR1cmU+KCktPmFyZ3VtZW50VHlwZShpKSwgZ3BBcmd1bWVudENvdW50
LCBmcEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KSk7CiAKLSAgICAgICAgVmVjdG9yPEFyZ3Vt
ZW50TG9jYXRpb24sIDE+IHJlc3VsdHMgeyBBcmd1bWVudExvY2F0aW9uOjpyZWcoR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIpIH07CisgICAgICAgIFZlY3RvcjxBcmd1bWVudExvY2F0aW9uLCAxPiBy
ZXN1bHRzIHsgQXJndW1lbnRMb2NhdGlvbiB7IEpTUkluZm86OnJldHVyblZhbHVlSlNSIH0gfTsK
ICAgICAgICAgcmV0dXJuIENhbGxJbmZvcm1hdGlvbihXVEZNb3ZlKHBhcmFtcyksIFdURk1vdmUo
cmVzdWx0cyksIHN0YWNrT2Zmc2V0KTsKICAgICB9CiAKLSAgICBjb25zdCBWZWN0b3I8UmVnPiBn
cHJBcmdzOwotICAgIGNvbnN0IFZlY3RvcjxSZWc+IGZwckFyZ3M7CisgICAgY29uc3QgVmVjdG9y
PEpTVmFsdWVSZWdzPiBqc3JBcmdzOworICAgIGNvbnN0IFZlY3RvcjxGUFJSZWc+IGZwckFyZ3M7
CiAgICAgY29uc3QgUmVnaXN0ZXJTZXQgY2FsbGVlU2F2ZVJlZ2lzdGVyczsKICAgICBjb25zdCBS
ZWdpc3RlclNldCBjYWxsZXJTYXZlUmVnaXN0ZXJzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21Gb3JtYXQuaAppbmRleCBhY2U4NTdmZDIwYmY5ZjkwNWRkNDhkNTJlNzE1ZDkzYjJk
Njg3NmZjLi5jOGRmMzQxN2FkMzViMjQ1NDcyY2RiZmE2Mjk2NTU4ZDM5YjFiMDAzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCkBAIC00MzksNyArNDM5LDkgQEAgc3Ry
dWN0IEVudHJ5cG9pbnQgewogc3RydWN0IEludGVybmFsRnVuY3Rpb24gewogICAgIFdURl9NQUtF
X1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsKICAgICBWZWN0b3I8Q29kZUxvY2F0aW9uRGF0YUxhYmVs
UHRyPFdhc21FbnRyeVB0clRhZz4+IGNhbGxlZU1vdmVMb2NhdGlvbnM7CisjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZX0IzSklUKQogICAgIFN0YWNrTWFwcyBzdGFja21hcHM7CisjZW5kaWYKICAgICBW
ZWN0b3I8VW5saW5rZWRIYW5kbGVySW5mbz4gZXhjZXB0aW9uSGFuZGxlcnM7CiAgICAgRW50cnlw
b2ludCBlbnRyeXBvaW50OwogICAgIHVuc2lnbmVkIG9zckVudHJ5U2NyYXRjaEJ1ZmZlclNpemUg
eyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhP
ck5hbWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNw
cAppbmRleCA0MTIwYWU2YTk0OTRmZDQ0NjlmOTdiOGY0MDg4ZDdmY2FjMzE4YTg4Li5mYjIxYzky
YmY4MWY2MTc5ZWUzZGY1OWQ4YzkxYjk1NTAxZThiYjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5jcHAKQEAgLTMwLDE2ICszMCwyMyBAQCBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCiBJbmRleE9yTmFtZTo6SW5kZXhPck5hbWUo
SW5kZXggaW5kZXgsIHN0ZDo6cGFpcjxjb25zdCBOYW1lKiwgUmVmUHRyPE5hbWVTZWN0aW9uPj4m
JiBuYW1lKQogeworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgc3RhdGljX2Fzc2VydChzaXplb2Yo
bV9pbmRleE5hbWUuaW5kZXgpID09IHNpemVvZihtX2luZGV4TmFtZS5uYW1lKSwgImJpdC10YWdn
aW5nIGRlcGVuZHMgb24gc2l6ZXMgYmVpbmcgZXF1YWwiKTsKLQotICAgIGlmICgoaW5kZXggJiBh
bGxUYWdzKSB8fCAoYml0d2lzZV9jYXN0PEluZGV4PihuYW1lLmZpcnN0KSAmIGFsbFRhZ3MpKQot
ICAgICAgICAqdGhpcyA9IEluZGV4T3JOYW1lKCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGlmIChu
YW1lLmZpcnN0KQotICAgICAgICAgICAgbV9pbmRleE5hbWUubmFtZSA9IG5hbWUuZmlyc3Q7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1faW5kZXhOYW1lLmluZGV4ID0gaW5kZXhUYWcgfCBp
bmRleDsKKyAgICBBU1NFUlQoIShpbmRleCAmIGFsbFRhZ3MpKTsKKyAgICBBU1NFUlQoIShiaXR3
aXNlX2Nhc3Q8SW5kZXg+KG5hbWUuZmlyc3QpICYgYWxsVGFncykpOworICAgIGlmIChuYW1lLmZp
cnN0KQorICAgICAgICBtX2luZGV4TmFtZS5uYW1lID0gbmFtZS5maXJzdDsKKyAgICBlbHNlCisg
ICAgICAgIG1faW5kZXhOYW1lLmluZGV4ID0gaW5kZXhUYWcgfCBpbmRleDsKKyNlbGlmIFVTRShK
U1ZBTFVFMzJfNjQpCisgICAgaWYgKG5hbWUuZmlyc3QpIHsKKyAgICAgICAgbV9pbmRleE5hbWUu
bmFtZSA9IG5hbWUuZmlyc3Q7CisgICAgICAgIG1fa2luZCA9IEtpbmQ6Ok5hbWU7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgbV9pbmRleE5hbWUuaW5kZXggPSBpbmRleDsKKyAgICAgICAgbV9raW5k
ID0gS2luZDo6SW5kZXg7CiAgICAgfQorI2VuZGlmCiAgICAgbV9uYW1lU2VjdGlvbiA9IFdURk1v
dmUobmFtZS5zZWNvbmQpOwogfQogCkBAIC00OSw4ICs1Niw4IEBAIFN0cmluZyBtYWtlU3RyaW5n
KGNvbnN0IEluZGV4T3JOYW1lJiBpb24pCiAgICAgICAgIHJldHVybiAid2FzbS1zdHViIl9zOwog
ICAgIGNvbnN0IFN0cmluZyBtb2R1bGVOYW1lID0gaW9uLm5hbWVTZWN0aW9uKCktPm1vZHVsZU5h
bWUuc2l6ZSgpID8gU3RyaW5nKGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1bGVOYW1lLmRhdGEoKSwg
aW9uLm5hbWVTZWN0aW9uKCktPm1vZHVsZU5hbWUuc2l6ZSgpKSA6IFN0cmluZyhpb24ubmFtZVNl
Y3Rpb24oKS0+bW9kdWxlSGFzaC5kYXRhKCksIGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1bGVIYXNo
LnNpemUoKSk7CiAgICAgaWYgKGlvbi5pc0luZGV4KCkpCi0gICAgICAgIHJldHVybiBtYWtlU3Ry
aW5nKG1vZHVsZU5hbWUsICIud2FzbS1mdW5jdGlvblsiLCBTdHJpbmc6Om51bWJlcihpb24ubV9p
bmRleE5hbWUuaW5kZXggJiB+SW5kZXhPck5hbWU6OmluZGV4VGFnKSwgJ10nKTsKLSAgICByZXR1
cm4gbWFrZVN0cmluZyhtb2R1bGVOYW1lLCAiLndhc20tZnVuY3Rpb25bIiwgU3RyaW5nKGlvbi5t
X2luZGV4TmFtZS5uYW1lLT5kYXRhKCksIGlvbi5tX2luZGV4TmFtZS5uYW1lLT5zaXplKCkpLCAn
XScpOworICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhtb2R1bGVOYW1lLCAiLndhc20tZnVuY3Rp
b25bIiwgU3RyaW5nOjpudW1iZXIoaW9uLmluZGV4KCkpLCAnXScpOworICAgIHJldHVybiBtYWtl
U3RyaW5nKG1vZHVsZU5hbWUsICIud2FzbS1mdW5jdGlvblsiLCBTdHJpbmcoaW9uLm5hbWUoKS0+
ZGF0YSgpLCBpb24ubmFtZSgpLT5zaXplKCkpLCAnXScpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUlu
ZGV4T3JOYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUu
aAppbmRleCA1ZWVlZmM4OGFmNzZkNGM0YzMzNmExNzIwMDdhNmNmZTYxZWFlZTYxLi4yZDkwMzAx
MThmOGMxZDI5OGE4Y2IzMzlkOWIzOTA0MmQzZTExODdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaApAQCAtNDAsMTQgKzQwLDY3IEBAIHN0cnVjdCBO
YW1lU2VjdGlvbjsKIHN0cnVjdCBJbmRleE9yTmFtZSB7CiAgICAgdHlwZWRlZiBzaXplX3QgSW5k
ZXg7CiAKLSAgICBJbmRleE9yTmFtZSgpIHsgbV9pbmRleE5hbWUuaW5kZXggPSBlbXB0eVRhZzsg
fQotICAgIEluZGV4T3JOYW1lKEluZGV4LCBzdGQ6OnBhaXI8Y29uc3QgTmFtZSosIFJlZlB0cjxO
YW1lU2VjdGlvbj4+JiYpOwotICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIGJpdHdp
c2VfY2FzdDxJbmRleD4obV9pbmRleE5hbWUpICYgZW1wdHlUYWc7IH0KLSAgICBib29sIGlzSW5k
ZXgoKSBjb25zdCB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8SW5kZXg+KG1faW5kZXhOYW1lKSAmIGlu
ZGV4VGFnOyB9Ci0gICAgYm9vbCBpc05hbWUoKSBjb25zdCB7IHJldHVybiAhKGlzRW1wdHkoKSB8
fCBpc05hbWUoKSk7IH0KLSAgICBOYW1lU2VjdGlvbiogbmFtZVNlY3Rpb24oKSBjb25zdCB7IHJl
dHVybiBtX25hbWVTZWN0aW9uLmdldCgpOyB9Citwcml2YXRlOgorI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgZW51bSBjbGFzcyBLaW5kIDogdWludDhfdCB7CisgICAgICAgIEVtcHR5LAorICAg
ICAgICBJbmRleCwKKyAgICAgICAgTmFtZQorICAgIH07CisjZW5kaWYKK3B1YmxpYzoKIAotICAg
IGZyaWVuZCBTdHJpbmcgbWFrZVN0cmluZyhjb25zdCBJbmRleE9yTmFtZSYpOworICAgIEluZGV4
T3JOYW1lKCkKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgbV9pbmRleE5hbWUu
aW5kZXggPSBlbXB0eVRhZzsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIG1fa2lu
ZCA9IEtpbmQ6OkVtcHR5OworI2VuZGlmCisgICAgfQorCisgICAgSW5kZXhPck5hbWUoSW5kZXgs
IHN0ZDo6cGFpcjxjb25zdCBOYW1lKiwgUmVmUHRyPE5hbWVTZWN0aW9uPj4mJik7CisKKyAgICBi
b29sIGlzRW1wdHkoKSBjb25zdAorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBy
ZXR1cm4gYml0d2lzZV9jYXN0PEluZGV4PihtX2luZGV4TmFtZSkgJiBlbXB0eVRhZzsKKyNlbGlm
IFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJldHVybiBtX2tpbmQgPT0gS2luZDo6RW1wdHk7
CisjZW5kaWYKKyAgICB9CisKKyAgICBib29sIGlzSW5kZXgoKSBjb25zdAorICAgIHsKKyNpZiBV
U0UoSlNWQUxVRTY0KQorICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PEluZGV4PihtX2luZGV4
TmFtZSkgJiBpbmRleFRhZzsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJldHVy
biBtX2tpbmQgPT0gS2luZDo6SW5kZXg7CisjZW5kaWYKKyAgICB9CisKKyAgICBib29sIGlzTmFt
ZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gIShpc0VtcHR5KCkgfHwgaXNJbmRleCgp
KTsKKyAgICB9CisKKyAgICBJbmRleCBpbmRleCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NF
UlQoaXNJbmRleCgpKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICByZXR1cm4gbV9pbmRl
eE5hbWUuaW5kZXggJiB+aW5kZXhUYWc7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAg
ICByZXR1cm4gbV9pbmRleE5hbWUuaW5kZXg7CisjZW5kaWYKKyAgICB9CisKKyAgICBjb25zdCBO
YW1lKiBuYW1lKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpc05hbWUoKSk7CisgICAg
ICAgIHJldHVybiBtX2luZGV4TmFtZS5uYW1lOworICAgIH0KKworICAgIE5hbWVTZWN0aW9uKiBu
YW1lU2VjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZVNlY3Rpb24uZ2V0KCk7IH0KIAogcHJp
dmF0ZToKICAgICB1bmlvbiB7CkBAIC01NiwxMCArMTA5LDE1IEBAIHByaXZhdGU6CiAgICAgfSBt
X2luZGV4TmFtZTsKICAgICBSZWZQdHI8TmFtZVNlY3Rpb24+IG1fbmFtZVNlY3Rpb247CiAKKyNp
ZiBVU0UoSlNWQUxVRTY0KQogICAgIC8vIFVzZSB0aGUgdG9wIGJpdHMgYXMgdGFncy4gTmVpdGhl
ciBwb2ludGVycyBub3IgdGhlIGZ1bmN0aW9uIGluZGV4IHNwYWNlIHNob3VsZCB1c2UgdGhlbS4K
ICAgICBzdGF0aWMgY29uc3RleHByIEluZGV4IGluZGV4VGFnID0gMXVsbCA8PCAoQ0hBUl9CSVQg
KiBzaXplb2YoSW5kZXgpIC0gMSk7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBJbmRleCBlbXB0eVRh
ZyA9IDF1bGwgPDwgKENIQVJfQklUICogc2l6ZW9mKEluZGV4KSAtIDIpOwogICAgIHN0YXRpYyBj
b25zdGV4cHIgSW5kZXggYWxsVGFncyA9IGluZGV4VGFnIHwgZW1wdHlUYWc7CisjZWxpZiBVU0Uo
SlNWQUxVRTMyXzY0KQorICAgIC8vIFVzZSBhbiBleHBsaWNpdCB0YWcgYXMgcG9pbnRlcnMgbWln
aHQgaGF2ZSBoaWdoIGJpdHMgc2V0CisgICAgS2luZCBtX2tpbmQ7CisjZW5kaWYKIH07CiAKIFN0
cmluZyBtYWtlU3RyaW5nKGNvbnN0IEluZGV4T3JOYW1lJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21JbnN0YW5jZS5oCmluZGV4IGU2ZGIzYTNhMDhjNDRhMDVjYmNiMjkwZmVhNGRl
ZTI3NmU3MGUxYjIuLjliNDMwYWU0ZWY2ZjM4MzQ3YWU3YmFkZWRjMzY2YmRhN2Q4ZjQ5NzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5oCkBAIC0xMDcsNyArMTA3
LDggQEAgcHVibGljOgogICAgIHsKICAgICAgICAgaWYgKG1fbWVtb3J5ICE9IG51bGxwdHIpIHsK
ICAgICAgICAgICAgIG1fY2FjaGVkTWVtb3J5ID0gQ2FnZWRQdHI8R2lnYWNhZ2U6OlByaW1pdGl2
ZSwgdm9pZCwgdGFnQ2FnZWRQdHI+KG1lbW9yeSgpLT5tZW1vcnkoKSwgbWVtb3J5KCktPmJvdW5k
c0NoZWNraW5nU2l6ZSgpKTsKLSAgICAgICAgICAgIG1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXpl
ID0gbWVtb3J5KCktPmJvdW5kc0NoZWNraW5nU2l6ZSgpOworICAgICAgICAgICAgLy8gVGhpcyBp
cyB1c2VkIGJ5IHRoZSBub24tc2lnbmFsaW5nIGJhc2VkIGJvdW5kIGNoZWNraW5nLCBzbyB1c2Ug
dGhlIGFjdHVhbCBzaXplIG9mIHRoZSBtZW1vcnkuCisgICAgICAgICAgICBtX2NhY2hlZEJvdW5k
c0NoZWNraW5nU2l6ZSA9IG1lbW9yeSgpLT5zaXplKCk7CiAgICAgICAgICAgICBBU1NFUlQobWVt
b3J5KCktPm1lbW9yeSgpID09IGNhY2hlZE1lbW9yeSgpKTsKICAgICAgICAgfQogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwCmlu
ZGV4IDcxZTA2NDdjNTY2NjZlYTBmZmQzY2M0NWE0ZGU2MTFlMDc5Mjc3ZmQuLmE0MzA4NDQ3MjQw
Zjk5YmZjMTFlNWQyOTMxYzRlNmVjMGM0MDliN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcApAQCAtMzM4LDcgKzMzOCw3IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICByZXR1cm4gbV9ub3JtYWxpemVkQXJndW1lbnRzW2luZGV4XTsK
IAogICAgICAgICBjb25zdCBhdXRvJiBjYWxsaW5nQ29udmVudGlvbiA9IHdhc21DYWxsaW5nQ29u
dmVudGlvbigpOwotICAgICAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252
ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgICAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9
IGNhbGxpbmdDb252ZW50aW9uLmpzckFyZ3Muc2l6ZSgpOwogICAgICAgICBjb25zdCB1aW50MzJf
dCBmcHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmZwckFyZ3Muc2l6ZSgpOwogICAgICAgICBy
ZXR1cm4gdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoaW5kZXggLSBtX2NvZGVCbG9jay0+bV9udW1B
cmd1bWVudHMgKyBncHJDb3VudCArIGZwckNvdW50ICsgbnVtYmVyT2ZMTEludENhbGxlZVNhdmVS
ZWdpc3RlcnMpOwogICAgIH0KQEAgLTU5Miw3ICs1OTIsNyBAQCBhdXRvIExMSW50R2VuZXJhdG9y
OjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIoY29uc3QgRnVuY3Rpb25TaWduYXR1cmUmIHNpZ25h
dHVyZQogICAgIGNvbnN0IGF1dG8gaW5pdGlhbFN0YWNrU2l6ZSA9IG1fc3RhY2tTaXplOwogCiAg
ICAgY29uc3QgYXV0byYgY2FsbGluZ0NvbnZlbnRpb24gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24o
KTsKLSAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmdwckFy
Z3Muc2l6ZSgpOworICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRp
b24uanNyQXJncy5zaXplKCk7CiAgICAgY29uc3QgdWludDMyX3QgZnByQ291bnQgPSBjYWxsaW5n
Q29udmVudGlvbi5mcHJBcmdzLnNpemUoKTsKIAogICAgIHVpbnQzMl90IHN0YWNrQ291bnQgPSAw
OwpAQCAtNzM3LDcgKzczNyw3IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlv
bkZvckNhbGxlZShjb25zdCBGdW5jdGlvblNpZ25hdHVyZSYgc2lnbmF0dXJlCiAgICAgbV9yZXN1
bHRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc2lnbmF0dXJlLnJldHVybkNvdW50KCkpOwogCiAg
ICAgY29uc3QgYXV0byYgY2FsbGluZ0NvbnZlbnRpb24gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24o
KTsKLSAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmdwckFy
Z3Muc2l6ZSgpOworICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRp
b24uanNyQXJncy5zaXplKCk7CiAgICAgY29uc3QgdWludDMyX3QgZnByQ291bnQgPSBjYWxsaW5n
Q29udmVudGlvbi5mcHJBcmdzLnNpemUoKTsKIAogICAgIHVpbnQzMl90IGdwckluZGV4ID0gMDsK
QEAgLTc4NCw3ICs3ODQsNyBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjphZGRBcmd1bWVudHMoY29u
c3QgVHlwZURlZmluaXRpb24mIHNpZ25hdHVyZSkgLT4gUGFydGlhbFJlcwogICAgIG1fbm9ybWFs
aXplZEFyZ3VtZW50cy5yZXNpemUobV9jb2RlQmxvY2stPm1fbnVtQXJndW1lbnRzKTsKIAogICAg
IGNvbnN0IGF1dG8mIGNhbGxpbmdDb252ZW50aW9uID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCk7
Ci0gICAgY29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5ncHJBcmdz
LnNpemUoKTsKKyAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9u
LmpzckFyZ3Muc2l6ZSgpOwogICAgIGNvbnN0IHVpbnQzMl90IGZwckNvdW50ID0gY2FsbGluZ0Nv
bnZlbnRpb24uZnByQXJncy5zaXplKCk7CiAgICAgY29uc3QgdWludDMyX3QgbWF4R1BSSW5kZXgg
PSBncHJDb3VudDsKICAgICBjb25zdCB1aW50MzJfdCBtYXhGUFJJbmRleCA9IGdwckNvdW50ICsg
ZnByQ291bnQ7CkBAIC05NjYsNyArOTY2LDcgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6YWRkTG9v
cChCbG9ja1NpZ25hdHVyZSBzaWduYXR1cmUsIFN0YWNrJiBlbmNsb3NpbmdTdGFjaywgQ28KICAg
ICAgICAgb3NyRW50cnlEYXRhLmFwcGVuZChtX25vcm1hbGl6ZWRBcmd1bWVudHNbaV0pOwogCiAg
ICAgY29uc3QgYXV0byYgY2FsbGluZ0NvbnZlbnRpb24gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24o
KTsKLSAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmdwckFy
Z3Muc2l6ZSgpOworICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRp
b24uanNyQXJncy5zaXplKCk7CiAgICAgY29uc3QgdWludDMyX3QgZnByQ291bnQgPSBjYWxsaW5n
Q29udmVudGlvbi5mcHJBcmdzLnNpemUoKTsKICAgICBmb3IgKHVpbnQzMl90IGkgPSBncHJDb3Vu
dCArIGZwckNvdW50ICsgbnVtYmVyT2ZMTEludENhbGxlZVNhdmVSZWdpc3RlcnM7IGkgPCBtX2Nv
ZGVCbG9jay0+bV9udW1WYXJzOyBpKyspCiAgICAgICAgIG9zckVudHJ5RGF0YS5hcHBlbmQodmly
dHVhbFJlZ2lzdGVyRm9yTG9jYWwoaSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUxMSW50UGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtTExJbnRQbGFuLmNwcAppbmRleCA4YjQzNmQyZGNmNTZlZjYyZWQyZTQ0NzI4YjQ0MTMxNWZj
Yzk4MzdhLi5lMzRmNDRjYWNhZDNhOTE0OTg0ZTdmYmZkYTU5OTdkMzNiOGE2MGIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcApAQCAtMTE5LDEyICsx
MTksMTUgQEAgdm9pZCBMTEludFBsYW46OmRpZENvbXBsZXRlQ29tcGlsYXRpb24oKQogICAgICAg
ICAgICAgZW50cnlwb2ludHNbaV0gPSBqaXQubGFiZWwoKTsKICNpZiBDUFUoWDg2XzY0KQogICAg
ICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGNhbGxlZVNsb3QoQ0NhbGxIZWxwZXJzOjpz
dGFja1BvaW50ZXJSZWdpc3RlciwgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlICogc3RhdGljX2Nhc3Q8
aW50PihzaXplb2YoUmVnaXN0ZXIpKSAtIHNpemVvZihDUFVSZWdpc3RlcikpOwotI2VsaWYgQ1BV
KEFSTTY0KSB8fCBDUFUoUklTQ1Y2NCkKKyNlbGlmIENQVShBUk02NCkgfHwgQ1BVKFJJU0NWNjQp
IHx8IENQVShBUk0pCiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgY2FsbGVlU2xv
dChDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBDYWxsRnJhbWVTbG90OjpjYWxs
ZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpIC0gc2l6ZW9mKENhbGxlckZy
YW1lQW5kUEMpKTsKICNlbHNlCiAjZXJyb3IgVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlLgogI2Vu
ZGlmCi0gICAgICAgICAgICBqaXQuc3RvcmVQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRy
KENhbGxlZUJpdHM6OmJveFdhc20obV9jYWxsZWVzVmVjdG9yW2ldLnB0cigpKSksIGNhbGxlZVNs
b3QpOworICAgICAgICAgICAgaml0LnN0b3JlUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0
cihDYWxsZWVCaXRzOjpib3hXYXNtKG1fY2FsbGVlc1ZlY3RvcltpXS5wdHIoKSkpLCBjYWxsZWVT
bG90LndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisg
ICAgICAgICAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVl
OjpXYXNtVGFnKSwgY2FsbGVlU2xvdC53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworI2VuZGlmCiAg
ICAgICAgICAgICBqdW1wc1tpXSA9IGppdC5qdW1wKCk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcAppbmRleCA0NDA3NTk1MmYwMDc2OWRiMmI5
MDE2MDBiMTAxYmYyYmRlNGI2ZTVmLi5iZjVjMWVjNDYyYmQxNmYyNGRmNTc0ZTNiMzdiNDJlZjRm
YjUxYjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcApAQCAt
OTgsMTEgKzk4LDkgQEAgY2xhc3MgTWVtb3J5TWFuYWdlciB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWVtb3J5TWFuYWdlcik7CiBwdWJs
aWM6Ci0gICAgTWVtb3J5TWFuYWdlcigpCi0gICAgICAgIDogbV9tYXhGYXN0TWVtb3J5Q291bnQo
T3B0aW9uczo6bWF4TnVtV2ViQXNzZW1ibHlGYXN0TWVtb3JpZXMoKSkKLSAgICB7Ci0gICAgfQot
ICAgIAorICAgIE1lbW9yeU1hbmFnZXIoKSA9IGRlZmF1bHQ7CisKKyNpZiBFTkFCTEUoV0VCQVNT
RU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBNZW1vcnlSZXN1bHQgdHJ5QWxsb2NhdGVGYXN0
TWVtb3J5KCkKICAgICB7CiAgICAgICAgIE1lbW9yeVJlc3VsdCByZXN1bHQgPSBbJl0gewpAQCAt
MTI1LDcgKzEyMyw3IEBAIHB1YmxpYzoKICAgICAgICAgCiAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgfQotICAgIAorCiAgICAgdm9pZCBmcmVlRmFzdE1lbW9yeSh2b2lkKiBiYXNlUHRyKQog
ICAgIHsKICAgICAgICAgewpAQCAtMTM2LDYgKzEzNCw3IEBAIHB1YmxpYzoKICAgICAgICAgCiAg
ICAgICAgIGRhdGFMb2dMbklmKE9wdGlvbnM6OmxvZ1dlYkFzc2VtYmx5TWVtb3J5KCksICJGcmVl
ZCB2aXJ0dWFsOyBzdGF0ZTogIiwgKnRoaXMpOwogICAgIH0KKyNlbmRpZgogCiAgICAgTWVtb3J5
UmVzdWx0IHRyeUFsbG9jYXRlR3Jvd2FibGVCb3VuZHNDaGVja2luZ01lbW9yeShzaXplX3QgbWFw
cGVkQ2FwYWNpdHkpCiAgICAgewpAQCAtMTcwLDExICsxNjksMTMgQEAgcHVibGljOgogICAgIHsK
ICAgICAgICAgLy8gTk9URTogVGhpcyBjYW4gYmUgY2FsbGVkIGZyb20gYSBzaWduYWwgaGFuZGxl
ciwgYnV0IG9ubHkgYWZ0ZXIgd2UgcHJvdmVkIHRoYXQgd2UncmUgaW4gSklUIGNvZGUgb3IgV2Fz
bUxMSW50IGNvZGUuCiAgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKKyNpZiBFTkFC
TEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICAgICAgZm9yICh2b2lkKiBtZW1v
cnkgOiBtX2Zhc3RNZW1vcmllcykgewogICAgICAgICAgICAgY2hhciogc3RhcnQgPSBzdGF0aWNf
Y2FzdDxjaGFyKj4obWVtb3J5KTsKICAgICAgICAgICAgIGlmIChzdGFydCA8PSBhZGRyZXNzICYm
IGFkZHJlc3MgPD0gc3RhcnQgKyBNZW1vcnk6OmZhc3RNYXBwZWRCeXRlcygpKQogICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CisjZW5kaWYKICAgICAgICAgdWludHB0cl90
IGFkZHJlc3NWYWx1ZSA9IGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGFkZHJlc3MpOwogICAgICAg
ICBhdXRvIGl0ZXJhdG9yID0gc3RkOjp1cHBlcl9ib3VuZChtX2dyb3dhYmxlQm91bmRzQ2hlY2tp
bmdNZW1vcmllcy5iZWdpbigpLCBtX2dyb3dhYmxlQm91bmRzQ2hlY2tpbmdNZW1vcmllcy5lbmQo
KSwgc3RkOjptYWtlX3BhaXIoYWRkcmVzc1ZhbHVlLCAwKSwKICAgICAgICAgICAgIFtdKHN0ZDo6
cGFpcjx1aW50cHRyX3QsIHNpemVfdD4gYSwgc3RkOjpwYWlyPHVpbnRwdHJfdCwgc2l6ZV90PiBi
KSB7CkBAIC0yMjcsMTMgKzIyOCwxOSBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBkdW1wKFBy
aW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgeworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdO
QUxJTkdfTUVNT1JZKQogICAgICAgICBvdXQucHJpbnQoImZhc3QgbWVtb3JpZXMgPSAgIiwgbV9m
YXN0TWVtb3JpZXMuc2l6ZSgpLCAiLyIsIG1fbWF4RmFzdE1lbW9yeUNvdW50LCAiLCBieXRlcyA9
ICIsIG1fcGh5c2ljYWxCeXRlcywgIi8iLCBtZW1vcnlMaW1pdCgpKTsKKyNlbHNlCisgICAgICAg
IG91dC5wcmludCgiZmFzdCBtZW1vcmllcyA9IE4uQS4sIGJ5dGVzID0gIiwgbV9waHlzaWNhbEJ5
dGVzLCAiLyIsIG1lbW9yeUxpbWl0KCkpOworI2VuZGlmCiAgICAgfQogICAgIAogcHJpdmF0ZToK
ICAgICBMb2NrIG1fbG9jazsKLSAgICB1bnNpZ25lZCBtX21heEZhc3RNZW1vcnlDb3VudCB7IDAg
fTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKKyAgICB1bnNpZ25l
ZCBtX21heEZhc3RNZW1vcnlDb3VudCB7IE9wdGlvbnM6Om1heE51bVdlYkFzc2VtYmx5RmFzdE1l
bW9yaWVzKCkgfTsKICAgICBWZWN0b3I8dm9pZCo+IG1fZmFzdE1lbW9yaWVzOworI2VuZGlmCiAg
ICAgU3RkU2V0PHN0ZDo6cGFpcjx1aW50cHRyX3QsIHNpemVfdD4+IG1fZ3Jvd2FibGVCb3VuZHND
aGVja2luZ01lbW9yaWVzOwogICAgIHNpemVfdCBtX3BoeXNpY2FsQnl0ZXMgeyAwIH07CiB9OwpA
QCAtMzAwLDYgKzMwNyw3IEBAIE1lbW9yeUhhbmRsZTo6fk1lbW9yeUhhbmRsZSgpCiAgICAgICAg
IHZvaWQqIG1lbW9yeSA9IHRoaXMtPm1lbW9yeSgpOwogICAgICAgICBtZW1vcnlNYW5hZ2VyKCku
ZnJlZVBoeXNpY2FsQnl0ZXMobV9zaXplKTsKICAgICAgICAgc3dpdGNoIChtX21vZGUpIHsKKyNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICAgICAgY2FzZSBNZW1v
cnlNb2RlOjpTaWduYWxpbmc6CiAgICAgICAgICAgICBpZiAobXByb3RlY3QobWVtb3J5LCBNZW1v
cnk6OmZhc3RNYXBwZWRCeXRlcygpLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFKSkgewogICAgICAg
ICAgICAgICAgIGRhdGFMb2coIm1wcm90ZWN0IGZhaWxlZDogIiwgc2FmZVN0cmVycm9yKGVycm5v
KS5kYXRhKCksICJcbiIpOwpAQCAtMzA3LDYgKzMxNSw3IEBAIE1lbW9yeUhhbmRsZTo6fk1lbW9y
eUhhbmRsZSgpCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBtZW1vcnlNYW5hZ2VyKCkuZnJl
ZUZhc3RNZW1vcnkobWVtb3J5KTsKICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgICAg
IGNhc2UgTWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmc6IHsKICAgICAgICAgICAgIHN3aXRjaCAo
bV9zaGFyaW5nTW9kZSkgewogICAgICAgICAgICAgY2FzZSBNZW1vcnlTaGFyaW5nTW9kZTo6RGVm
YXVsdDoKQEAgLTM5NSw2ICs0MDQsNyBAQCBSZWZQdHI8TWVtb3J5PiBNZW1vcnk6OnRyeUNyZWF0
ZShQYWdlQ291bnQgaW5pdGlhbCwgUGFnZUNvdW50IG1heGltdW0sIE1lbW9yeVNoYQogICAgIGlm
ICghZG9uZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIAorI2lmIEVOQUJMRShX
RUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIGNoYXIqIGZhc3RNZW1vcnkgPSBudWxs
cHRyOwogICAgIGlmIChPcHRpb25zOjp1c2VXZWJBc3NlbWJseUZhc3RNZW1vcnkoKSkgewogICAg
ICAgICB0cnlBbGxvY2F0ZSgKQEAgLTQxMyw3ICs0MjMsOCBAQCBSZWZQdHI8TWVtb3J5PiBNZW1v
cnk6OnRyeUNyZWF0ZShQYWdlQ291bnQgaW5pdGlhbCwgUGFnZUNvdW50IG1heGltdW0sIE1lbW9y
eVNoYQogCiAgICAgICAgIHJldHVybiBNZW1vcnk6OmNyZWF0ZShhZG9wdFJlZigqbmV3IE1lbW9y
eUhhbmRsZShmYXN0TWVtb3J5LCBpbml0aWFsQnl0ZXMsIE1lbW9yeTo6ZmFzdE1hcHBlZEJ5dGVz
KCksIGluaXRpYWwsIG1heGltdW0sIHNoYXJpbmdNb2RlLCBNZW1vcnlNb2RlOjpTaWduYWxpbmcp
KSwgV1RGTW92ZShub3RpZnlNZW1vcnlQcmVzc3VyZSksIFdURk1vdmUoc3luY1RyeVRvUmVjbGFp
bU1lbW9yeSksIFdURk1vdmUoZ3Jvd1N1Y2Nlc3NDYWxsYmFjaykpOwogICAgIH0KLSAgICAKKyNl
bmRpZgorCiAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OmNyYXNoSWZXZWJBc3NlbWJseUNhbnRG
YXN0TWVtb3J5KCkpKQogICAgICAgICB3ZWJBc3NlbWJseUNvdWxkbnRHZXRGYXN0TWVtb3J5KCk7
CiAKQEAgLTQ1Niw2ICs0NjcsNyBAQCBSZWZQdHI8TWVtb3J5PiBNZW1vcnk6OnRyeUNyZWF0ZShQ
YWdlQ291bnQgaW5pdGlhbCwgUGFnZUNvdW50IG1heGltdW0sIE1lbW9yeVNoYQogCiBNZW1vcnk6
On5NZW1vcnkoKSA9IGRlZmF1bHQ7CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5H
X01FTU9SWSkKIHNpemVfdCBNZW1vcnk6OmZhc3RNYXBwZWRSZWR6b25lQnl0ZXMoKQogewogICAg
IHJldHVybiBzdGF0aWNfY2FzdDxzaXplX3Q+KFBhZ2VDb3VudDo6cGFnZVNpemUpICogT3B0aW9u
czo6d2ViQXNzZW1ibHlGYXN0TWVtb3J5UmVkem9uZVBhZ2VzKCk7CkBAIC00NjYsNiArNDc4LDcg
QEAgc2l6ZV90IE1lbW9yeTo6ZmFzdE1hcHBlZEJ5dGVzKCkKICAgICBzdGF0aWNfYXNzZXJ0KHNp
emVvZih1aW50NjRfdCkgPT0gc2l6ZW9mKHNpemVfdCksICJXZSByZWx5IG9uIGFsbG93aW5nIHRo
ZSBtYXhpbXVtIHNpemUgb2YgTWVtb3J5IHdlIG1hcCB0byBiZSAyXjMyICsgcmVkem9uZSB3aGlj
aCBpcyBsYXJnZXIgdGhhbiBmaXRzIGluIGEgMzItYml0IGludGVnZXIgdGhhdCB3ZSdkIHBhc3Mg
dG8gbXByb3RlY3QgaWYgdGhpcyBkaWRuJ3QgaG9sZC4iKTsKICAgICByZXR1cm4gKHN0YXRpY19j
YXN0PHNpemVfdD4oMSkgPDwgMzIpICsgZmFzdE1hcHBlZFJlZHpvbmVCeXRlcygpOwogfQorI2Vu
ZGlmCiAKIGJvb2wgTWVtb3J5OjphZGRyZXNzSXNJbkdyb3dhYmxlT3JGYXN0TWVtb3J5KHZvaWQq
IGFkZHJlc3MpCiB7CkBAIC01MjQsOCArNTM3LDE0IEBAIEV4cGVjdGVkPFBhZ2VDb3VudCwgTWVt
b3J5OjpHcm93RmFpbFJlYXNvbj4gTWVtb3J5Ojpncm93U2hhcmVkKFBhZ2VDb3VudCBkZWx0YSkK
ICAgICAgICAgbV9oYW5kbGUtPmdyb3dUb1NpemUoZGVzaXJlZFNpemUpOwogICAgICAgICByZXR1
cm4gb2xkUGFnZUNvdW50OwogICAgIH0oKSk7Ci0gICAgaWYgKHJlc3VsdCkKKyAgICBpZiAocmVz
dWx0KSB7CiAgICAgICAgIG1fZ3Jvd1N1Y2Nlc3NDYWxsYmFjayhHcm93U3VjY2Vzc1RhZywgb2xk
UGFnZUNvdW50LCBuZXdQYWdlQ291bnQpOworICAgICAgICAvLyBVcGRhdGUgY2FjaGUgZm9yIGlu
c3RhbmNlCisgICAgICAgIGZvciAoYXV0byYgaW5zdGFuY2UgOiBtX2luc3RhbmNlcykgeworICAg
ICAgICAgICAgaWYgKGluc3RhbmNlLmdldCgpICE9IG51bGxwdHIpCisgICAgICAgICAgICAgICAg
aW5zdGFuY2UuZ2V0KCktPnVwZGF0ZUNhY2hlZE1lbW9yeSgpOworICAgICAgICB9CisgICAgfQog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTU4OCw2ICs2MDcsNyBAQCBFeHBlY3RlZDxQYWdl
Q291bnQsIE1lbW9yeTo6R3Jvd0ZhaWxSZWFzb24+IE1lbW9yeTo6Z3JvdyhQYWdlQ291bnQgZGVs
dGEpCiAgICAgICAgIEFTU0VSVChtZW1vcnkoKSA9PSBuZXdNZW1vcnkpOwogICAgICAgICByZXR1
cm4gc3VjY2VzcygpOwogICAgIH0KKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01F
TU9SWSkKICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzogewogICAgICAgICBzaXplX3Qg
ZXh0cmFCeXRlcyA9IGRlc2lyZWRTaXplIC0gc2l6ZSgpOwogICAgICAgICBSRUxFQVNFX0FTU0VS
VChleHRyYUJ5dGVzKTsKQEAgLTYxMyw2ICs2MzMsNyBAQCBFeHBlY3RlZDxQYWdlQ291bnQsIE1l
bW9yeTo6R3Jvd0ZhaWxSZWFzb24+IE1lbW9yeTo6Z3JvdyhQYWdlQ291bnQgZGVsdGEpCiAgICAg
ICAgIG1faGFuZGxlLT5ncm93VG9TaXplKGRlc2lyZWRTaXplKTsKICAgICAgICAgcmV0dXJuIHN1
Y2Nlc3MoKTsKICAgICB9CisjZW5kaWYKICAgICB9CiAKICAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpAQCAtNjQ2LDcgKzY2Nyw4IEBAIGJvb2wgTWVtb3J5Ojpjb3B5KHVpbnQzMl90
IGRzdEFkZHJlc3MsIHVpbnQzMl90IHNyY0FkZHJlc3MsIHVpbnQzMl90IGNvdW50KQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKIAogICAgIHVpbnQ4X3QqIGJhc2UgPSByZWludGVycHJldF9jYXN0PHVp
bnQ4X3QqPihtZW1vcnkoKSk7Ci0gICAgbWVtY3B5KGJhc2UgKyBkc3RBZGRyZXNzLCBiYXNlICsg
c3JjQWRkcmVzcywgY291bnQpOworICAgIC8vIFNvdXJjZSBhbmQgZGVzdGluYXRpb24gYXJlYXMg
bWlnaHQgb3ZlcmxhcCwgc28gdXNpbmcgbWVtbW92ZS4KKyAgICBtZW1tb3ZlKGJhc2UgKyBkc3RB
ZGRyZXNzLCBiYXNlICsgc3JjQWRkcmVzcywgY291bnQpOwogICAgIHJldHVybiB0cnVlOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmgKaW5kZXggZjVjNThmY2Y5NmYy
ZDg2YjA3NWNlNTc4ZDU2Njk3YWU3NGE1NjI0My4uNDljODU1NjYxZTQ0YTJjMDdhZWRiOGFlYWU0
Mzc0NjAwZGUxNjU1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU1lbW9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaApA
QCAtMTA2LDggKzEwNiwxMCBAQCBwdWJsaWM6CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB+TWVt
b3J5KCk7CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBz
dGF0aWMgc2l6ZV90IGZhc3RNYXBwZWRSZWR6b25lQnl0ZXMoKTsKICAgICBzdGF0aWMgc2l6ZV90
IGZhc3RNYXBwZWRCeXRlcygpOyAvLyBJbmNsdWRlcyByZWR6b25lLgorI2VuZGlmCiAgICAgc3Rh
dGljIGJvb2wgYWRkcmVzc0lzSW5Hcm93YWJsZU9yRmFzdE1lbW9yeSh2b2lkKik7CiAKICAgICB2
b2lkKiBtZW1vcnkoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZS0+bWVtb3J5KCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3Bw
CmluZGV4IDI2NTJkZTcyZWQ1NjU4Yjc3Y2VlMjk5MTJhNTI5ZWY3ZjJiZmI0MGQuLjYwZmFkNjNl
ZjBlMGI3OWNlMmMyNmUyNjM3OTdkNGM0MTMzMWEzNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmNwcApAQCAtNDEsOCArNDEs
MTUgQEAgY29uc3QgUGlubmVkUmVnaXN0ZXJJbmZvJiBQaW5uZWRSZWdpc3RlckluZm86OmdldCgp
CiAgICAgICAgIHVuc2lnbmVkIG51bWJlck9mUGlubmVkUmVnaXN0ZXJzID0gMjsKICAgICAgICAg
aWYgKCFDb250ZXh0Ojp1c2VGYXN0VExTKCkpCiAgICAgICAgICAgICArK251bWJlck9mUGlubmVk
UmVnaXN0ZXJzOworI2lmIENQVShYODZfNjQpIHx8IENQVShBUk02NCkKICAgICAgICAgR1BSUmVn
IGJhc2VNZW1vcnlQb2ludGVyID0gR1BSSW5mbzo6cmVnQ1MzOwogICAgICAgICBHUFJSZWcgYm91
bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIgPSBHUFJJbmZvOjpyZWdDUzQ7CisjZWxpZiBDUFUoQVJN
KQorICAgICAgICAvLyBOb3QgZW5vdWdoIHJlZ2lzdGVycy4gcmVnQ1MwIGlzIHRoZSB3YXNtIGlu
c3RhbmNlLCByZWdDUzEgaXMgTExJbnQgUEIKKyAgICAgICAgbnVtYmVyT2ZQaW5uZWRSZWdpc3Rl
cnMgLT0gMjsKKyAgICAgICAgR1BSUmVnIGJhc2VNZW1vcnlQb2ludGVyID0gSW52YWxpZEdQUlJl
ZzsKKyAgICAgICAgR1BSUmVnIGJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyID0gSW52YWxpZEdQ
UlJlZzsKKyNlbmRpZgogICAgICAgICBHUFJSZWcgd2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXIg
PSBJbnZhbGlkR1BSUmVnOwogICAgICAgICBpZiAoIUNvbnRleHQ6OnVzZUZhc3RUTFMoKSkKICAg
ICAgICAgICAgIHdhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyID0gR1BSSW5mbzo6cmVnQ1MwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0
aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24u
aAppbmRleCA4NTRmYmE1NGUzMzdmMGYwMjQ4ZTMzOTM3ODQ0M2IzNDFlMGY3MzA5Li4yOWZjYmRi
NmQ0NjMwZTk0NGUxZjUwYjlmODI4NjE2ODg1ZTlkMjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uaApAQCAtNTIsMTAgKzUyLDEx
IEBAIHB1YmxpYzoKICAgICBSZWdpc3RlclNldCB0b1NhdmUoTWVtb3J5TW9kZSBtb2RlKSBjb25z
dAogICAgIHsKICAgICAgICAgUmVnaXN0ZXJTZXQgcmVzdWx0OwotICAgICAgICByZXN1bHQuc2V0
KGJhc2VNZW1vcnlQb2ludGVyKTsKKyAgICAgICAgaWYgKGJhc2VNZW1vcnlQb2ludGVyICE9IElu
dmFsaWRHUFJSZWcpCisgICAgICAgICAgICByZXN1bHQuc2V0KGJhc2VNZW1vcnlQb2ludGVyKTsK
ICAgICAgICAgaWYgKHdhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyICE9IEludmFsaWRHUFJSZWcp
CiAgICAgICAgICAgICByZXN1bHQuc2V0KHdhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyKTsKLSAg
ICAgICAgaWYgKG1vZGUgIT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nKQorICAgICAgICBpZiAobW9k
ZSA9PSBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZyAmJiBib3VuZHNDaGVja2luZ1NpemVSZWdp
c3RlciAhPSBJbnZhbGlkR1BSUmVnKQogICAgICAgICAgICAgcmVzdWx0LnNldChib3VuZHNDaGVj
a2luZ1NpemVSZWdpc3Rlcik7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuY3BwCmluZGV4IDliZTA0ZDc3
YjA2YjhjYTcyMjdhMWM2NmE2YzYzMzhiMzc5ODhlNWIuLmYzM2IwNTI1MTk4MzBjNDRjMDE2YzJi
ZjdlYmM4YTcyZGU3ZmE4NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21NZW1vcnlNb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
TWVtb3J5TW9kZS5jcHAKQEAgLTM3LDcgKzM3LDkgQEAgY29uc3QgY2hhciogbWFrZVN0cmluZyhN
ZW1vcnlNb2RlIG1vZGUpCiB7CiAgICAgc3dpdGNoIChtb2RlKSB7CiAgICAgY2FzZSBNZW1vcnlN
b2RlOjpCb3VuZHNDaGVja2luZzogcmV0dXJuICJCb3VuZHNDaGVja2luZyI7CisjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgY2FzZSBNZW1vcnlNb2RlOjpTaWdu
YWxpbmc6IHJldHVybiAiU2lnbmFsaW5nIjsKKyNlbmRpZgogICAgIH0KICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiAiIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5oCmluZGV4IDAyY2ZjZmU0OWY0NzE1NGIzMTUzYzA5YWJk
OGNjZmM3Y2ZjMjEwNjguLmQ3MTFhZmFmMzAzMzFmOGNjNzNkMjY4YWMwYzRlNzUxYzBiMmZiNGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuaApAQCAtMzQs
NyArMzQsOSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogLy8gRklYTUU6IFdl
IHNob3VsZCBzdXBwb3J0IG90aGVyIG1vZGVzLiBzZWU6IGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjI2OTMKIGVudW0gY2xhc3MgTWVtb3J5TW9kZSA6IHVpbnQ4X3Qg
ewogICAgIEJvdW5kc0NoZWNraW5nLAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdf
TUVNT1JZKQogICAgIFNpZ25hbGluZworI2VuZGlmCiB9OwogCiBzdGF0aWMgY29uc3RleHByIHNp
emVfdCBOdW1iZXJPZk1lbW9yeU1vZGVzID0gMjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU9wY29kZU9yaWdpbi5jcHAKaW5kZXggYjZjNWMyNzU1MzExYjNkZTM0MDM1M2U3
NTk0M2Q2MTNkZmY2ZDJkOC4uOWZjOTFiOWQ5YzU0ODI2OTJhMWQzN2M5MDE5YzhjNWNiYzEyZGYy
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdp
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5j
cHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXYXNt
T3Bjb2RlT3JpZ2luLmgiCiAKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZX0IzSklUKQogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCkBA
IC0zNyw0ICszNyw0IEBAIHZvaWQgT3Bjb2RlT3JpZ2luOjpkdW1wKFByaW50U3RyZWFtJiBvdXQp
IGNvbnN0CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCiAKLSNlbmRpZiAvLyBFTkFCTEUo
V0VCQVNTRU1CTFkpCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5oCmluZGV4IGEwZDhkZjNh
ZWYxOWFlZjZiMTcwNzk0NzlhNjM0ODEyODgwYzg3MzYuLjVjNGI2NzZkNWM2ZWIwZjU5YTk3ZDQ5
YmIzZDU1YTQxN2JlYzFjMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21PcGNvZGVPcmlnaW4uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
T3Bjb2RlT3JpZ2luLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBF
TkFCTEUoV0VCQVNTRU1CTFkpCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQogCiAjaW5j
bHVkZSAiQjNPcmlnaW4uaCIKICNpbmNsdWRlICJXYXNtRm9ybWF0LmgiCkBAIC02MCw0ICs2MCw0
IEBAIHByaXZhdGU6CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCiAKLSNlbmRpZiAvLyBF
TkFCTEUoV0VCQVNTRU1CTFkpCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCmluZGV4IGVl
MGIyZWQ5YjI3ZDM2ZGJhYzM3NmNiZmM5ZTZiNjZkZDBkYjZmNzQuLjdkMTA3NjRiZTgxZmIwOWM4
YWIzYTliZjA4OTZmYzQ5YWEyZWNkYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtT3BlcmF0aW9ucy5jcHAKQEAgLTQ2OCw0MyArNDY4LDQzIEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25XYXNtVW53aW5kLCB2b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogICAgIEFTU0VSVCghIXZtLmNhbGxGcmFtZUZvckNhdGNoKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCwgaW50NjRfdCwgKENhbGxGcmFt
ZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbnZlcnRUb0k2NCwgaW50NjRfdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBFbmNvZGVk
SlNWYWx1ZSB2KSkKIHsKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2Vt
Ymx5SW5zdGFuY2UqIGluc3RlYWQuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMzIwNgogICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+ZGVwcmVjYXRlZFZN
KCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAg
ICByZXR1cm4gdi50b0JpZ0ludDY0KGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkp
OworICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUodikudG9CaWdJbnQ2NChjYWxsRnJhbWUtPmxl
eGljYWxHbG9iYWxPYmplY3Qodm0pKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNvbnZlcnRUb0Y2NCwgZG91YmxlLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFs
dWUgdikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjY0LCBk
b3VibGUsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUgdikpCiB7CiAgICAg
Ly8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0ZWFk
LgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMyMDYK
ICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAgIE5hdGl2ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgcmV0dXJuIHYudG9OdW1iZXIo
Y2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmRlY29kZSh2KS50b051bWJlcihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKTsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0kzMiwgaW50
MzJfdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0kzMiwgaW50MzJfdCwgKENhbGxGcmFtZSogY2Fs
bEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSB2KSkKIHsKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgcGFz
c2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RlYWQuCiAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIwNgogICAgIFZNJiB2bSA9IGNhbGxGcmFt
ZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
Y2FsbEZyYW1lKTsKLSAgICByZXR1cm4gdi50b0ludDMyKGNhbGxGcmFtZS0+bGV4aWNhbEdsb2Jh
bE9iamVjdCh2bSkpOworICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUodikudG9JbnQzMihjYWxs
RnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0YzMiwgZmxvYXQsIChDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgSlNWYWx1ZSB2KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0
VG9GMzIsIGZsb2F0LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVuY29kZWRKU1ZhbHVlIHYpKQog
ewogICAgIC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5nIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSog
aW5zdGVhZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAzMjA2CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsKICAgICBOYXRp
dmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxmbG9hdD4odi50b051bWJlcihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qo
dm0pKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihKU1ZhbHVlOjpkZWNvZGUodiku
dG9OdW1iZXIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSkpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50LCBFbmNvZGVkSlNW
YWx1ZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2UsIGludDY0X3Qg
dmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0lu
dCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSW5zdGFuY2UqIGluc3Rh
bmNlLCBFbmNvZGVkV2FzbVZhbHVlIHZhbHVlKSkKIHsKICAgICBKU1dlYkFzc2VtYmx5SW5zdGFu
Y2UqIGpzSW5zdGFuY2UgPSBpbnN0YW5jZS0+b3duZXI8SlNXZWJBc3NlbWJseUluc3RhbmNlPigp
OwogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0luc3RhbmNlLT5nbG9iYWxP
YmplY3QoKTsKQEAgLTUxNCw3ICs1MTQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29udmVydFRvQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKENhbGxGcmFtZSogYwogfQog
CiAvLyBodHRwczovL3dlYmFzc2VtYmx5LmdpdGh1Yi5pby9tdWx0aS12YWx1ZS9qcy1hcGkvaW5k
ZXguaHRtbCNydW4tYS1ob3N0LWZ1bmN0aW9uCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSW5zdGFu
Y2UqIGluc3RhbmNlLCBjb25zdCBUeXBlRGVmaW5pdGlvbiogdHlwZSwgSlNWYWx1ZSByZXN1bHQs
IHVpbnQ2NF90KiByZWdpc3RlclJlc3VsdHMsIHVpbnQ2NF90KiBjYWxsZWVGcmFtZVBvaW50ZXIp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lk
LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwgY29uc3QgVHlwZURl
ZmluaXRpb24qIHR5cGUsIEVuY29kZWRKU1ZhbHVlIGVuY1Jlc3VsdCwgdWludDY0X3QqIHJlZ2lz
dGVyUmVzdWx0cywgdWludDY0X3QqIGNhbGxlZUZyYW1lUG9pbnRlcikpCiB7CiAgICAgLy8gRklY
TUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0ZWFkLgogICAg
IC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMyMDYKQEAgLTUz
MSw2ICs1MzEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJl
c3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSQogCiAgICAgdW5zaWduZWQgaXRl
cmF0aW9uQ291bnQgPSAwOwogICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGJ1ZmZlcjsKKyAgICBK
U1ZhbHVlIHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShlbmNSZXN1bHQpOwogICAgIGZvckVhY2hJ
bkl0ZXJhYmxlKGdsb2JhbE9iamVjdCwgcmVzdWx0LCBbJl0gKFZNJiwgSlNHbG9iYWxPYmplY3Qq
LCBKU1ZhbHVlIHZhbHVlKSAtPiB2b2lkIHsKICAgICAgICAgaWYgKGJ1ZmZlci5zaXplKCkgPCBz
aWduYXR1cmUtPnJldHVybkNvdW50KCkpCiAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHZhbHVl
KTsKQEAgLTU4MCw4ICs1ODEsMTAgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEkKICAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIAogICAgICAgICBhdXRvIHJlcCA9
IHdhc21DYWxsSW5mby5yZXN1bHRzW2luZGV4XTsKLSAgICAgICAgaWYgKHJlcC5pc1JlZygpKQot
ICAgICAgICAgICAgcmVnaXN0ZXJSZXN1bHRzW3JlZ2lzdGVyUmVzdWx0T2Zmc2V0cy5maW5kKHJl
cC5yZWcoKSktPm9mZnNldCgpIC8gc2l6ZW9mKHVpbnQ2NF90KV0gPSB1bmJveGVkVmFsdWU7Cisg
ICAgICAgIGlmIChyZXAuaXNHUFIoKSkKKyAgICAgICAgICAgIHJlZ2lzdGVyUmVzdWx0c1tyZWdp
c3RlclJlc3VsdE9mZnNldHMuZmluZChyZXAuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkg
LyBzaXplb2YodWludDY0X3QpXSA9IHVuYm94ZWRWYWx1ZTsKKyAgICAgICAgZWxzZSBpZiAocmVw
LmlzRlBSKCkpCisgICAgICAgICAgICByZWdpc3RlclJlc3VsdHNbcmVnaXN0ZXJSZXN1bHRPZmZz
ZXRzLmZpbmQocmVwLmZwcigpKS0+b2Zmc2V0KCkgLyBzaXplb2YodWludDY0X3QpXSA9IHVuYm94
ZWRWYWx1ZTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgY2FsbGVlRnJhbWVQb2ludGVyW3Jl
cC5vZmZzZXRGcm9tRlAoKSAvIHNpemVvZih1aW50NjRfdCldID0gdW5ib3hlZFZhbHVlOwogICAg
IH0KQEAgLTYwNywxMiArNjEwLDE2IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25BbGxvY2F0ZVJlc3VsdHNBcnJheSwgSlNBcnJheSosIChDYWxsRnJhbWUqIGNhCiAgICAgYXV0
byB3YXNtQ2FsbEluZm8gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5jYWxsSW5mb3JtYXRpb25G
b3IoKnR5cGUpOwogICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IHJlZ2lzdGVyUmVzdWx0cyA9IHdh
c21DYWxsSW5mby5jb21wdXRlUmVzdWx0c09mZnNldExpc3QoKTsKIAotICAgIHN0YXRpY19hc3Nl
cnQoc2l6ZW9mKEpTVmFsdWUpID09IHNpemVvZihDUFVSZWdpc3RlciksICJUaGUgY29kZSBiZWxv
dyByZWxpZXMgb24gdGhpcy4iKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2lnbmF0
dXJlLT5yZXR1cm5Db3VudCgpOyArK2kpIHsKICAgICAgICAgVmFsdWVMb2NhdGlvbiBsb2MgPSB3
YXNtQ2FsbEluZm8ucmVzdWx0c1tpXTsKICAgICAgICAgSlNWYWx1ZSB2YWx1ZTsKLSAgICAgICAg
aWYgKGxvYy5pc1JlZygpKQotICAgICAgICAgICAgdmFsdWUgPSBzdGFja1BvaW50ZXJGcm9tQ2Fs
bGVlWyhyZWdpc3RlclJlc3VsdHMuZmluZChsb2MucmVnKCkpLT5vZmZzZXQoKSArIHdhc21DYWxs
SW5mby5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpIC8gc2l6ZW9mKEpTVmFsdWUp
XTsKKyAgICAgICAgaWYgKGxvYy5pc0dQUigpKSB7CisjaWYgVVNFKEpTVkFMRTMyXzY0KQorICAg
ICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyUmVzdWx0cy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BS
KCkpLT5vZmZzZXQoKSArIDQgPT0gcmVnaXN0ZXJSZXN1bHRzLmZpbmQobG9jLmpzcigpLnRhZ0dQ
UigpKS0+b2Zmc2V0KCkpOworI2VuZGlmCisgICAgICAgICAgICB2YWx1ZSA9IHN0YWNrUG9pbnRl
ckZyb21DYWxsZWVbKHJlZ2lzdGVyUmVzdWx0cy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkp
LT5vZmZzZXQoKSArIHdhc21DYWxsSW5mby5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0
ZXMpIC8gc2l6ZW9mKEpTVmFsdWUpXTsKKyAgICAgICAgfSBlbHNlIGlmIChsb2MuaXNGUFIoKSkK
KyAgICAgICAgICAgIHZhbHVlID0gc3RhY2tQb2ludGVyRnJvbUNhbGxlZVsocmVnaXN0ZXJSZXN1
bHRzLmZpbmQobG9jLmZwcigpKS0+b2Zmc2V0KCkgKyB3YXNtQ2FsbEluZm8uaGVhZGVyQW5kQXJn
dW1lbnRTdGFja1NpemVJbkJ5dGVzKSAvIHNpemVvZihKU1ZhbHVlKV07CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIHZhbHVlID0gc3RhY2tQb2ludGVyRnJvbUNhbGxlZVtsb2Mub2Zmc2V0RnJv
bVNQKCkgLyBzaXplb2YoSlNWYWx1ZSldOwogICAgICAgICByZXN1bHQtPmluaXRpYWxpemVJbmRl
eChpbml0aWFsaXphdGlvblNjb3BlLCBpLCB2YWx1ZSk7CkBAIC05NDcsNyArOTU0LDggQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UaHJvdywgdm9pZCosIChJbnN0YW5j
ZSogaW5zdGFuY2UsIENhbGxGcmEKICAgICAvLyB0byB0aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElm
IHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNrLgogICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAKICAgICB2bS5j
YWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgpOwotICAgIGJpdHdpc2VfY2Fz
dDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90Ojpj
YWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOwor
ICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJlZ2lzdGVyKj4oY2FsbEZy
YW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAgICAqY2Fs
bGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CiAg
ICAgcmV0dXJuIHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRocm93OwogfQogCkBAIC05NzMsNyArOTgx
LDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZXRocm93LCB2b2lk
KiwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ2FsbEYKICAgICAvLyB0byB0aGUgZXhjZXB0aW9uIGhh
bmRsZXIuIElmIHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNr
LgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAK
ICAgICB2bS5jYWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgpOwotICAgIGJp
dHdpc2VfY2FzdDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJh
bWVTbG90OjpjYWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oanNJbnN0YW5jZS0+bW9k
dWxlKCkpOworICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJlZ2lzdGVy
Kj4oY2FsbEZyYW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsK
KyAgICAqY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihqc0luc3RhbmNlLT5tb2R1
bGUoKSk7CiAgICAgcmV0dXJuIHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRocm93OwogfQogCkBAIC0x
MDA4LDcgKzEwMTcsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRv
SlNFeGNlcHRpb24sIHZvaWQqLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbQogICAgIC8vIHRvIHRoZSBl
eGNlcHRpb24gaGFuZGxlci4gSWYgd2UgZGlkIHRoaXMsIHdlIGNvdWxkIHJlbW92ZSB0aGlzIHRl
cnJpYmxlIGhhY2suCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3MDQ0MAogICAgIHZtLmNhbGxlZUZvcldhc21DYXRjaCA9IGNhbGxGcmFtZS0+Y2FsbGVl
KCk7Ci0gICAgYml0d2lzZV9jYXN0PHVpbnQ2NF90Kj4oY2FsbEZyYW1lKVtzdGF0aWNfY2FzdDxp
bnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSldID0gYml0d2lzZV9jYXN0PHVpbnQ2NF90PihpbnN0
YW5jZS0+bW9kdWxlKCkpOworICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0
PFJlZ2lzdGVyKj4oY2FsbEZyYW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6
Y2FsbGVlKTsKKyAgICAqY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihpbnN0YW5j
ZS0+bW9kdWxlKCkpOwogICAgIHJldHVybiB2bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKIH0K
IApAQCAtMTAzMiw3ICsxMDQyLDExIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25XYXNtUmV0cmlldmVBbmRDbGVhckV4Y2VwdGlvbklmQ2F0Y2hhYmxlLCBQb2luCiAgICAgdm9p
ZCogcGF5bG9hZCA9IG51bGxwdHI7CiAgICAgaWYgKEpTV2ViQXNzZW1ibHlFeGNlcHRpb24qIHdh
c21FeGNlcHRpb24gPSBqc0R5bmFtaWNDYXN0PEpTV2ViQXNzZW1ibHlFeGNlcHRpb24qPih0aHJv
d25WYWx1ZSkpCiAgICAgICAgIHBheWxvYWQgPSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHdhc21FeGNl
cHRpb24tPnBheWxvYWQoKS5kYXRhKCkpOworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgcmV0dXJu
IFBvaW50ZXJQYWlyIHsgYml0d2lzZV9jYXN0PHZvaWQqPihKU1ZhbHVlOjplbmNvZGUodGhyb3du
VmFsdWUpKSwgcGF5bG9hZCB9OworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICByZXR1cm4g
UG9pbnRlclBhaXIgeyBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHRocm93blZhbHVlLnBheWxvYWQoKSks
IHBheWxvYWQgfTsKKyNlbmRpZgogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmgKaW5kZXggNThkMTU5NzVl
ODhkMjAzZGJjOTg0NGMxNGU1NDI0MDJhNjE2Y2I5YS4uNWNjMDMxNDhlYWVlYjk1NTBmZGQ3ZDUx
MzM5YzgyZjY2MzMxNTdjNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bl
cmF0aW9ucy5oCkBAIC00NywyMiArNDcsMjMgQEAgbmFtZXNwYWNlIFdhc20gewogY2xhc3MgSW5z
dGFuY2U7CiBjbGFzcyBUeXBlRGVmaW5pdGlvbjsKIAotdm9pZCBsb2FkVmFsdWVzSW50b0J1ZmZl
cihQcm9iZTo6Q29udGV4dCYsIGNvbnN0IFN0YWNrTWFwJiwgdWludDY0X3QqIGJ1ZmZlcik7Cit0
eXBlZGVmIGludDY0X3QgRW5jb2RlZFdhc21WYWx1ZTsKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJM
WV9CM0pJVCkKK3ZvaWQgbG9hZFZhbHVlc0ludG9CdWZmZXIoUHJvYmU6OkNvbnRleHQmLCBjb25z
dCBTdGFja01hcCYsIHVpbnQ2NF90KiBidWZmZXIpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25XYXNtVHJpZ2dlck9TUkVudHJ5Tm93LCB2b2lkLCAoUHJvYmU6OkNvbnRleHQm
KSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2VyVGllclVw
Tm93LCB2b2lkLCAoSW5zdGFuY2UqLCB1aW50MzJfdCBmdW5jdGlvbkluZGV4KSk7CiAjZW5kaWYK
IEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVVud2luZCwgdm9pZCwgKENh
bGxGcmFtZSopKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0
VG9JNjQsIGludDY0X3QsIChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0Y2NCwgZG91YmxlLCAoQ2FsbEZyYW1lKiwgSlNW
YWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIs
IGludDMyX3QsIChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbnZlcnRUb0YzMiwgZmxvYXQsIChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCwgaW50NjRf
dCwgKENhbGxGcmFtZSosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbnZlcnRUb0Y2NCwgZG91YmxlLCAoQ2FsbEZyYW1lKiwgRW5jb2RlZEpT
VmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTMy
LCBpbnQzMl90LCAoQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjMyLCBmbG9hdCwgKENhbGxGcmFtZSosIEVu
Y29kZWRKU1ZhbHVlKSk7CiAKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29u
dmVydFRvQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKENhbGxGcmFtZSosIEluc3RhbmNlKiwgaW50
NjRfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJ
bnQsIEVuY29kZWRKU1ZhbHVlLCAoQ2FsbEZyYW1lKiwgSW5zdGFuY2UqLCBFbmNvZGVkV2FzbVZh
bHVlKSk7CiAKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3Vs
dHMsIHZvaWQsIChDYWxsRnJhbWUqLCBJbnN0YW5jZSosIGNvbnN0IFR5cGVEZWZpbml0aW9uKiwg
SlNWYWx1ZSwgdWludDY0X3QqLCB1aW50NjRfdCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqLCBJbnN0YW5jZSos
IGNvbnN0IFR5cGVEZWZpbml0aW9uKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnQ2NF90KiwgdWludDY0
X3QqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0
c0FycmF5LCBKU0FycmF5KiwgKENhbGxGcmFtZSosIFdhc206Okluc3RhbmNlKiwgY29uc3QgVHlw
ZURlZmluaXRpb24qLCBJbmRleGluZ1R5cGUsIEpTVmFsdWUqKSk7CiAKIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVdyaXRlQmFycmllclNsb3dQYXRoLCB2b2lkLCAoSlND
ZWxsKiwgVk0qKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
UGFnZUNvdW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFnZUNvdW50LmgK
aW5kZXggYjdkOGM5ZmNmNzJiMTQ3OWMzYTNmMTIzYmZhMmI0ZDJkMjQ3Y2NlMi4uM2M3NTUxMmY0
NGE5YTg5NGIxZDE2NmFjNDc2NjcwMDNkNDgyNzQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVBhZ2VDb3VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21QYWdlQ291bnQuaApAQCAtOTgsNyArOTgsMTIgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYWdlU2l6ZSA9IDY0ICogS0I7CiBwcml2YXRlOgot
ICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWF4UGFnZUNvdW50ID0gc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KE1BWF9BUlJBWV9CVUZGRVJfU0laRSAvIHN0YXRpY19jYXN0PHVpbnQ2NF90Pihw
YWdlU2l6ZSkpOworICAgIC8vIFRoZSBzcGVjIHJlcXVpcmVzIHdlIGFyZSBhYmxlIHRvIGluc3Rh
bnRpYXRlIGEgbWVtb3J5IHdpdGggYSAqbWF4aW11bSogc2l6ZSBvZiA2NEsgcGFnZXMuCisgICAg
Ly8gVGhpcyBkb2VzIG5vdCBtZWFuIHRoZSBtZW1vcnkgY2FuIG5lY2Vzc2FyaWx5IGdyb3cgdGhh
dCBiaWcsIGFuZCB3aGVyZSB0aGUKKyAgICAvLyBNQVhfQVJSQVlfQlVGRkVSX1NJWkUgaXMgc21h
bGxlciAoZS5nLjogb24gMzItYml0IHBsYXRmb3JtcyksIHRyeWluZyB0byBncm93IHRoZSBtZW1v
cnkKKyAgICAvLyB0aGF0IGxhcmdlIHdpbGwgZmFpbCwgd2hpY2ggaXMgYWNjZXB0YWJsZSBhY2Nv
cmRpbmcgdG8gdGhlIHNwZWMuIE5ldmVydGhlbGVzcywgd2Ugc2hvdWxkCisgICAgLy8gYmUgYWJs
ZSB0byBwYXJzZSBzdWNoIGEgbWVtb3J5IGFuZCBpbnN0YW50aWF0ZSBpdCB3aXRoIGEgc21hbGxl
ciBpbml0aWFsIHNpemUuCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXhQYWdlQ291
bnQgPSBzdGQ6Om1heDx1aW50MzJfdD4oNjQqMTAyNCwgTUFYX0FSUkFZX0JVRkZFUl9TSVpFIC8g
c3RhdGljX2Nhc3Q8dWludDY0X3Q+KHBhZ2VTaXplKSk7CiAKICAgICB1aW50MzJfdCBtX3BhZ2VD
b3VudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFy
c2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmgKaW5kZXggNDM4
ZmYzZjcyZDliNjY0OGFhZjcwYTQ5YTBhYTdiMTUxOGI2YjlhZS4uODBiN2I3YmM4OTI3YTkwMWY0
MDM1NThkMDIzNTg0MDBjZTEwOGI2YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbVBhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Q
YXJzZXIuaApAQCAtMjA4LDcgKzIwOCw3IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBQYXJzZXI8U3Vj
Y2Vzc1R5cGU+OjpwYXJzZVVJbnQzMih1aW50MzJfdCYgcmVzdWx0KQogewogICAgIGlmIChsZW5n
dGgoKSA8IDQgfHwgbV9vZmZzZXQgPiBsZW5ndGgoKSAtIDQpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICByZXN1bHQgPSAqcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50MzJfdCo+KHNvdXJj
ZSgpICsgbV9vZmZzZXQpOworICAgIG1lbWNweSgmcmVzdWx0LCBzb3VyY2UoKSArIG1fb2Zmc2V0
LCBzaXplb2YodWludDMyX3QpKTsgLy8gc3JjIGNhbiBiZSB1bmFsaWduZWQKICAgICBtX29mZnNl
dCArPSA0OwogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjE4LDcgKzIxOCw3IEBAIEFMV0FZU19J
TkxJTkUgYm9vbCBQYXJzZXI8U3VjY2Vzc1R5cGU+OjpwYXJzZVVJbnQ2NCh1aW50NjRfdCYgcmVz
dWx0KQogewogICAgIGlmIChsZW5ndGgoKSA8IDggfHwgbV9vZmZzZXQgPiBsZW5ndGgoKSAtIDgp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXN1bHQgPSAqcmVpbnRlcnByZXRfY2FzdDxj
b25zdCB1aW50NjRfdCo+KHNvdXJjZSgpICsgbV9vZmZzZXQpOworICAgIG1lbWNweSgmcmVzdWx0
LCBzb3VyY2UoKSArIG1fb2Zmc2V0LCBzaXplb2YodWludDY0X3QpKTsgLy8gc3JjIGNhbiBiZSB1
bmFsaWduZWQKICAgICBtX29mZnNldCArPSA4OwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmNwcAppbmRleCBjYjY4YjQ5Y2Y3
MjQ5OGFiNDIxZDQ3ZjM3N2RlODgzNjE1NDY4Y2M5Li42ZjExMWExMWJhODhkNjU1NTY4MTY2ZjQ5
OWY3NjFiZThkYmE4NjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtU2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xv
d1BhdGhzLmNwcApAQCAtNjQyLDcgKzY0Miw4IEBAIFdBU01fU0xPV19QQVRIX0RFQ0wodGhyb3cp
CiAgICAgLy8gdG8gdGhlIGV4Y2VwdGlvbiBoYW5kbGVyLiBJZiB3ZSBkaWQgdGhpcywgd2UgY291
bGQgcmVtb3ZlIHRoaXMgdGVycmlibGUgaGFjay4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDQwCiAgICAgdm0uY2FsbGVlRm9yV2FzbUNhdGNoID0g
Y2FsbEZyYW1lLT5jYWxsZWUoKTsKLSAgICBiaXR3aXNlX2Nhc3Q8dWludDY0X3QqPihjYWxsRnJh
bWUpW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0gPSBiaXR3aXNlX2Nh
c3Q8dWludDY0X3Q+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsKKyAgICBSZWdpc3RlciogY2FsbGVl
U2xvdCA9IGJpdHdpc2VfY2FzdDxSZWdpc3Rlcio+KGNhbGxGcmFtZSkgKyBzdGF0aWNfY2FzdDxp
bnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7CisgICAgKmNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nh
c3Q8SlNDZWxsKj4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOwogICAgIFdBU01fUkVUVVJOX1RXTyh2
bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdywgbnVsbHB0cik7CiB9CiAKQEAgLTY3MCw3ICs2NzEs
OCBAQCBXQVNNX1NMT1dfUEFUSF9ERUNMKHJldGhyb3cpCiAgICAgLy8gdG8gdGhlIGV4Y2VwdGlv
biBoYW5kbGVyLiBJZiB3ZSBkaWQgdGhpcywgd2UgY291bGQgcmVtb3ZlIHRoaXMgdGVycmlibGUg
aGFjay4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcw
NDQwCiAgICAgdm0uY2FsbGVlRm9yV2FzbUNhdGNoID0gY2FsbEZyYW1lLT5jYWxsZWUoKTsKLSAg
ICBiaXR3aXNlX2Nhc3Q8dWludDY0X3QqPihjYWxsRnJhbWUpW3N0YXRpY19jYXN0PGludD4oQ2Fs
bEZyYW1lU2xvdDo6Y2FsbGVlKV0gPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KGpzSW5zdGFuY2Ut
Pm1vZHVsZSgpKTsKKyAgICBSZWdpc3RlciogY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxSZWdp
c3Rlcio+KGNhbGxGcmFtZSkgKyBzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxl
ZSk7CisgICAgKmNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8SlNDZWxsKj4oanNJbnN0YW5jZS0+
bW9kdWxlKCkpOwogICAgIFdBU01fUkVUVVJOX1RXTyh2bS50YXJnZXRNYWNoaW5lUENGb3JUaHJv
dywgbnVsbHB0cik7CiB9CiAKQEAgLTcxNyw2ICs3MTksMjE0IEBAIFdBU01fU0xPV19QQVRIX0RF
Q0wocmV0cmlldmVfYW5kX2NsZWFyX2V4Y2VwdGlvbikKICAgICBXQVNNX1JFVFVSTl9UV08ocGMs
IHBheWxvYWQpOwogfQogCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKK1dBU01fU0xPV19QQVRIX0RF
Q0woZjMyX2NlaWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGlu
c3RydWN0aW9uID0gcGMtPmFzPFdhc21GMzJDZWlsPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBS
RUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgV0FTTV9SRVRV
Uk4oSlNWYWx1ZTo6ZW5jb2RlKHdhc21VbmJveGVkRmxvYXQoc3RkOjpjZWlsKG9wZXJhbmQpKSkp
OworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGYzMl9mbG9vcikKK3sKKyAgICBVTlVTRURfUEFS
QU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUYzMkZsb29y
PigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5i
b3hlZEZsb2F0KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKHdhc21VbmJveGVk
RmxvYXQoc3RkOjpmbG9vcihvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChm
MzJfdHJ1bmMpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3Ry
dWN0aW9uID0gcGMtPmFzPFdhc21GMzJUcnVuYz4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0gUkVB
RChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIFdBU01fUkVUVVJO
KEpTVmFsdWU6OmVuY29kZSh3YXNtVW5ib3hlZEZsb2F0KHN0ZDo6dHJ1bmMob3BlcmFuZCkpKSk7
Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjMyX25lYXJlc3QpCit7CisgICAgc3RhdGljX2Fz
c2VydChzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cm91bmRfc3R5bGUgPT0gc3RkOjpyb3Vu
ZF90b19uZWFyZXN0KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5z
dHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUYzMk5lYXJlc3Q+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9
IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBXQVNNX1JF
VFVSTihKU1ZhbHVlOjplbmNvZGUod2FzbVVuYm94ZWRGbG9hdChzdGQ6Om5lYXJieWludChvcGVy
YW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmNjRfY2VpbCkKK3sKKyAgICBVTlVT
RURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2
NENlaWw+KCk7CisgICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFu
ZCkudW5ib3hlZERvdWJsZSgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0Rv
dWJsZU51bWJlcihzdGQ6OmNlaWwob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RF
Q0woZjY0X2Zsb29yKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBp
bnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjY0Rmxvb3I+KCk7CisgICAgZG91YmxlIG9wZXJhbmQg
PSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgpOworICAgIFdBU01f
UkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGQ6OmZsb29yKG9wZXJhbmQp
KSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGY2NF90cnVuYykKK3sKKyAgICBVTlVTRURf
UEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NFRy
dW5jPigpOworICAgIGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQp
LnVuYm94ZWREb3VibGUoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUoanNEb3Vi
bGVOdW1iZXIoc3RkOjp0cnVuYyhvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVD
TChmNjRfbmVhcmVzdCkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8
ZmxvYXQ+Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOworICAgIFVOVVNF
RF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjY0
TmVhcmVzdD4oKTsKKyAgICBkb3VibGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVy
YW5kKS51bmJveGVkRG91YmxlKCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpz
RG91YmxlTnVtYmVyKHN0ZDo6bmVhcmJ5aW50KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1df
UEFUSF9ERUNMKGYzMl9jb252ZXJ0X3VfaTY0KQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpu
dW1lcmljX2xpbWl0czxmbG9hdD46OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVz
dCk7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0g
cGMtPmFzPFdhc21GMzJDb252ZXJ0VUk2ND4oKTsKKyAgICB1aW50NjRfdCBvcGVyYW5kID0gUkVB
RChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRJbnQ2NCgpOworICAgIFdBU01fUkVUVVJO
KEpTVmFsdWU6OmVuY29kZSh3YXNtVW5ib3hlZEZsb2F0KHN0YXRpY19jYXN0PGZsb2F0PihvcGVy
YW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmMzJfY29udmVydF9zX2k2NCkKK3sK
KyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpyb3VuZF9zdHls
ZSA9PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7
CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjMyQ29udmVydFNJNjQ+KCk7Cisg
ICAgaW50NjRfdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRJ
bnQ2NCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZSh3YXNtVW5ib3hlZEZsb2F0
KHN0YXRpY19jYXN0PGZsb2F0PihvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVD
TChmNjRfY29udmVydF91X2k2NCkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19s
aW1pdHM8ZmxvYXQ+Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOworICAg
IFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxX
YXNtRjY0Q29udmVydFVJNjQ+KCk7CisgICAgdWludDY0X3Qgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1
Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkSW50NjQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVl
OjplbmNvZGUoanNEb3VibGVOdW1iZXIoc3RhdGljX2Nhc3Q8ZG91YmxlPihvcGVyYW5kKSkpKTsK
K30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmNjRfY29udmVydF9zX2k2NCkKK3sKKyAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6
OnJvdW5kX3RvX25lYXJlc3QpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0
byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjY0Q29udmVydFNJNjQ+KCk7CisgICAgaW50NjRf
dCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRJbnQ2NCgpOwor
ICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGF0aWNfY2Fz
dDxkb3VibGU+KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVu
Y191X2YzMikKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1
Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jVUYzMj4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0g
UkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIGlmIChzdGQ6
OmlzbmFuKG9wZXJhbmQpIHx8IG9wZXJhbmQgPD0gLTEuMGYgfHwgb3BlcmFuZCA+PSAtMi4wZiAq
IHN0YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4pKQorICAgICAgICBXQVNNX1RIUk9XKFdhc206
OkV4Y2VwdGlvblR5cGU6Ok91dE9mQm91bmRzVHJ1bmMpOworICAgIFdBU01fUkVUVVJOKHN0YXRp
Y19jYXN0PHVpbnQ2NF90PihvcGVyYW5kKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0
X3RydW5jX3NfZjMyKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBp
bnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1bmNTRjMyPigpOworICAgIGZsb2F0IG9wZXJh
bmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgaWYg
KHN0ZDo6aXNuYW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8IHN0YXRpY19jYXN0PGZsb2F0PihJTlQ2
NF9NSU4pIHx8IG9wZXJhbmQgPj0gLXN0YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4pKQorICAg
ICAgICBXQVNNX1RIUk9XKFdhc206OkV4Y2VwdGlvblR5cGU6Ok91dE9mQm91bmRzVHJ1bmMpOwor
ICAgIFdBU01fUkVUVVJOKHN0YXRpY19jYXN0PGludDY0X3Q+KG9wZXJhbmQpKTsKK30KKworV0FT
TV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfdV9mNjQpCit7CisgICAgVU5VU0VEX1BBUkFNKGlu
c3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1VGNjQ+
KCk7CisgICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5i
b3hlZERvdWJsZSgpOworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9wZXJhbmQgPD0g
LTEuMCB8fCBvcGVyYW5kID49IC0yLjAgKiBzdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0X01JTikp
CisgICAgICAgIFdBU01fVEhST1coV2FzbTo6RXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNUcnVu
Yyk7CisgICAgV0FTTV9SRVRVUk4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG9wZXJhbmQpKTsKK30K
KworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc19mNjQpCit7CisgICAgVU5VU0VEX1BB
UkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVu
Y1NGNjQ+KCk7CisgICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFu
ZCkudW5ib3hlZERvdWJsZSgpOworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9wZXJh
bmQgPCBzdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0X01JTikgfHwgb3BlcmFuZCA+PSAtc3RhdGlj
X2Nhc3Q8ZG91YmxlPihJTlQ2NF9NSU4pKQorICAgICAgICBXQVNNX1RIUk9XKFdhc206OkV4Y2Vw
dGlvblR5cGU6Ok91dE9mQm91bmRzVHJ1bmMpOworICAgIFdBU01fUkVUVVJOKHN0YXRpY19jYXN0
PGludDY0X3Q+KG9wZXJhbmQpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNf
c2F0X2YzMl91KQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0
cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1bmNTYXRGMzJVPigpOworICAgIGZsb2F0IG9wZXJh
bmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgdWlu
dDY0X3QgcmVzdWx0OworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9wZXJhbmQgPD0g
LTEuMGYpCisgICAgICAgIHJlc3VsdCA9IDA7CisgICAgZWxzZSBpZiAob3BlcmFuZCA+PSAtMi4w
ZiAqIHN0YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4pKQorICAgICAgICByZXN1bHQgPSBVSU5U
NjRfTUFYOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KG9wZXJhbmQpOworICAgIFdBU01fUkVUVVJOKHJlc3VsdCk7Cit9CisKK1dBU01fU0xPV19QQVRI
X0RFQ0woaTY0X3RydW5jX3NhdF9mMzJfcykKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2Up
OworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jU2F0RjMyUz4oKTsK
KyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRG
bG9hdCgpOworICAgIGludDY0X3QgcmVzdWx0OworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQp
KQorICAgICAgICByZXN1bHQgPSAwOworICAgIGVsc2UgaWYgKG9wZXJhbmQgPCBzdGF0aWNfY2Fz
dDxmbG9hdD4oSU5UNjRfTUlOKSkKKyAgICAgICAgcmVzdWx0ID0gSU5UNjRfTUlOOworICAgIGVs
c2UgaWYgKG9wZXJhbmQgPj0gLXN0YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4pKQorICAgICAg
ICByZXN1bHQgPSBJTlQ2NF9NQVg7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBzdGF0aWNf
Y2FzdDxpbnQ2NF90PihvcGVyYW5kKTsKKyAgICBXQVNNX1JFVFVSTihyZXN1bHQpOworfQorCitX
QVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY19zYXRfZjY0X3UpCit7CisgICAgVU5VU0VEX1BB
UkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVu
Y1NhdEY2NFU+KCk7CisgICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3Bl
cmFuZCkudW5ib3hlZERvdWJsZSgpOworICAgIHVpbnQ2NF90IHJlc3VsdDsKKyAgICBpZiAoc3Rk
Ojppc25hbihvcGVyYW5kKSB8fCBvcGVyYW5kIDw9IC0xLjApCisgICAgICAgIHJlc3VsdCA9IDA7
CisgICAgZWxzZSBpZiAob3BlcmFuZCA+PSAtMi4wICogc3RhdGljX2Nhc3Q8ZG91YmxlPihJTlQ2
NF9NSU4pKQorICAgICAgICByZXN1bHQgPSBVSU5UNjRfTUFYOworICAgIGVsc2UKKyAgICAgICAg
cmVzdWx0ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG9wZXJhbmQpOworICAgIFdBU01fUkVUVVJO
KHJlc3VsdCk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3NhdF9mNjRfcykK
K3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBw
Yy0+YXM8V2FzbUk2NFRydW5jU2F0RjY0Uz4oKTsKKyAgICBkb3VibGUgb3BlcmFuZCA9IFJFQUQo
aW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAgaW50NjRfdCByZXN1
bHQ7CisgICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkpCisgICAgICAgIHJlc3VsdCA9IDA7Cisg
ICAgZWxzZSBpZiAob3BlcmFuZCA8IHN0YXRpY19jYXN0PGRvdWJsZT4oSU5UNjRfTUlOKSkKKyAg
ICAgICAgcmVzdWx0ID0gSU5UNjRfTUlOOworICAgIGVsc2UgaWYgKG9wZXJhbmQgPj0gLXN0YXRp
Y19jYXN0PGRvdWJsZT4oSU5UNjRfTUlOKSkKKyAgICAgICAgcmVzdWx0ID0gSU5UNjRfTUFYOwor
ICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8aW50NjRfdD4ob3BlcmFuZCk7
CisgICAgV0FTTV9SRVRVUk4ocmVzdWx0KTsKK30KKyNlbmRpZgorCiBleHRlcm4gIkMiIFNsb3dQ
YXRoUmV0dXJuVHlwZSBzbG93X3BhdGhfd2FzbV90aHJvd19leGNlcHRpb24oQ2FsbEZyYW1lKiBj
YWxsRnJhbWUsIGNvbnN0IFdhc21JbnN0cnVjdGlvbiogcGMsIFdhc206Okluc3RhbmNlKiBpbnN0
YW5jZSwgV2FzbTo6RXhjZXB0aW9uVHlwZSBleGNlcHRpb25UeXBlKQogewogICAgIFVOVVNFRF9Q
QVJBTShwYyk7CkBAIC03MjUsMTYgKzkzNSwyOCBAQCBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJu
VHlwZSBzbG93X3BhdGhfd2FzbV90aHJvd19leGNlcHRpb24oQ2FsbEZyYW1lKiBjYWxsRnJhbQog
CiBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBzbG93X3BhdGhfd2FzbV9wb3Bjb3VudChj
b25zdCBXYXNtSW5zdHJ1Y3Rpb24qIHBjLCB1aW50MzJfdCB4KQogewotICAgIHZvaWQqIHJlc3Vs
dCA9IGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KF9fYnVpbHRpbl9w
b3Bjb3VudCh4KSkpOworICAgIHZvaWQqIHJlc3VsdCA9IGJpdHdpc2VfY2FzdDx2b2lkKj4oc3Rh
dGljX2Nhc3Q8c2l6ZV90PihfX2J1aWx0aW5fcG9wY291bnQoeCkpKTsKICAgICBXQVNNX1JFVFVS
Tl9UV08ocGMsIHJlc3VsdCk7CiB9CiAKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNs
b3dfcGF0aF93YXNtX3BvcGNvdW50bGwoY29uc3QgV2FzbUluc3RydWN0aW9uKiBwYywgdWludDY0
X3QgeCkKIHsKLSAgICB2b2lkKiByZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19j
YXN0PHVpbnQ2NF90PihfX2J1aWx0aW5fcG9wY291bnRsbCh4KSkpOworICAgIHZvaWQqIHJlc3Vs
dCA9IGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8c2l6ZV90PihfX2J1aWx0aW5fcG9w
Y291bnRsbCh4KSkpOwogICAgIFdBU01fUkVUVVJOX1RXTyhwYywgcmVzdWx0KTsKIH0KIAorI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCisvLyBOb3RlOiBBbGwgdGhlc2UgZGl2IGFuZCByZW0gb3BzIHBl
cmZvcm0gZXhjZXB0aW9uIGNoZWNrcyBpbiBhc20KK2V4dGVybiAiQyIgaW50MzJfdCBzbG93X3Bh
dGhfd2FzbV9pMzJfZGl2X3MoaW50MzJfdCBhLCBpbnQzMl90IGIpIHsgcmV0dXJuIGEgLyBiOyB9
CitleHRlcm4gIkMiIHVpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9kaXZfdSh1aW50MzJfdCBh
LCB1aW50MzJfdCBiKSB7IHJldHVybiBhIC8gYjsgfQorZXh0ZXJuICJDIiBpbnQzMl90IHNsb3df
cGF0aF93YXNtX2kzMl9yZW1fcyhpbnQzMl90IGEsIGludDMyX3QgYikgeyByZXR1cm4gYSAlIGI7
IH0KK2V4dGVybiAiQyIgdWludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX3JlbV91KHVpbnQzMl90
IGEsIHVpbnQzMl90IGIpIHsgcmV0dXJuIGEgJSBiOyB9CitleHRlcm4gIkMiIGludDY0X3Qgc2xv
d19wYXRoX3dhc21faTY0X2Rpdl9zKGludDY0X3QgYSwgaW50NjRfdCBiKSB7IHJldHVybiBhIC8g
YjsgfQorZXh0ZXJuICJDIiB1aW50NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRfZGl2X3UodWludDY0
X3QgYSwgdWludDY0X3QgYikgeyByZXR1cm4gYSAvIGI7IH0KK2V4dGVybiAiQyIgaW50NjRfdCBz
bG93X3BhdGhfd2FzbV9pNjRfcmVtX3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpIHsgcmV0dXJuIGEg
JSBiOyB9CitleHRlcm4gIkMiIHVpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9yZW1fdSh1aW50
NjRfdCBhLCB1aW50NjRfdCBiKSB7IHJldHVybiBhICUgYjsgfQorI2VuZGlmCisKIH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpMTEludAogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5oCmluZGV4IDQ2MDllMzZiMDM5
MjRkMTBlYTAyNzQ1NjEwZjBmMmZlNGU4MzFmMjIuLjg5ZjZlMzk0ZDg2YzI2Nzc5YzgxYWEyZTM4
YzAzMTAxYTQ4YWQ1NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21TbG93UGF0aHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1Bh
dGhzLmgKQEAgLTk0LDYgKzk0LDQwIEBAIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNs
b3dfcGF0aF93YXNtX3Rocm93X2V4Y2VwdGlvbihDYWxsRnJhbWUqLCBjb25zdCBXCiBleHRlcm4g
IkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBzbG93X3BhdGhfd2FzbV9wb3Bjb3VudChjb25zdCBXYXNt
SW5zdHJ1Y3Rpb24qIHBjLCB1aW50MzJfdCkgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJO
QUw7CiBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBzbG93X3BhdGhfd2FzbV9wb3Bjb3Vu
dGxsKGNvbnN0IFdhc21JbnN0cnVjdGlvbiogcGMsIHVpbnQ2NF90KSBSRUZFUkVOQ0VEX0ZST01f
QVNNIFdURl9JTlRFUk5BTDsKIAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCitXQVNNX1NMT1dfUEFU
SF9ISURERU5fREVDTChmMzJfY2VpbCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmMzJf
Zmxvb3IpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjMyX3RydW5jKTsKK1dBU01fU0xP
V19QQVRIX0hJRERFTl9ERUNMKGYzMl9uZWFyZXN0KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9E
RUNMKGY2NF9jZWlsKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGY2NF9mbG9vcik7CitX
QVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfdHJ1bmMpOworV0FTTV9TTE9XX1BBVEhfSElE
REVOX0RFQ0woZjY0X25lYXJlc3QpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjMyX2Nv
bnZlcnRfdV9pNjQpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjMyX2NvbnZlcnRfc19p
NjQpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjY0X2NvbnZlcnRfdV9pNjQpOworV0FT
TV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjY0X2NvbnZlcnRfc19pNjQpOworV0FTTV9TTE9XX1BB
VEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3VfZjMyKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9E
RUNMKGk2NF90cnVuY19zX2YzMik7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1
bmNfdV9mNjQpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3NfZjY0KTsK
K1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGk2NF90cnVuY19zYXRfZjMyX3UpOworV0FTTV9T
TE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3NhdF9mMzJfcyk7CitXQVNNX1NMT1dfUEFU
SF9ISURERU5fREVDTChpNjRfdHJ1bmNfc2F0X2Y2NF91KTsKK1dBU01fU0xPV19QQVRIX0hJRERF
Tl9ERUNMKGk2NF90cnVuY19zYXRfZjY0X3MpOworI2VuZGlmCisKKyNpZiBVU0UoSlNWQUxVRTMy
XzY0KQorZXh0ZXJuICJDIiBpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9kaXZfcyhpbnQzMl90
IGEsIGludDMyX3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4g
IkMiIHVpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9kaXZfdSh1aW50MzJfdCBhLCB1aW50MzJf
dCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgaW50MzJf
dCBzbG93X3BhdGhfd2FzbV9pMzJfcmVtX3MoaW50MzJfdCBhLCBpbnQzMl90IGIpIFJFRkVSRU5D
RURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJDIiB1aW50MzJfdCBzbG93X3BhdGhf
d2FzbV9pMzJfcmVtX3UodWludDMyX3QgYSwgdWludDMyX3QgYikgUkVGRVJFTkNFRF9GUk9NX0FT
TSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMiIGludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X2Rp
dl9zKGludDY0X3QgYSwgaW50NjRfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5B
TDsKK2V4dGVybiAiQyIgdWludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X2Rpdl91KHVpbnQ2NF90
IGEsIHVpbnQ2NF90IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOworZXh0ZXJu
ICJDIiBpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9yZW1fcyhpbnQ2NF90IGEsIGludDY0X3Qg
YikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMiIHVpbnQ2NF90
IHNsb3dfcGF0aF93YXNtX2k2NF9yZW1fdSh1aW50NjRfdCBhLCB1aW50NjRfdCBiKSBSRUZFUkVO
Q0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKKyNlbmRpZgorCiB9IH0gLy8gbmFtZXNwYWNlIEpT
Qzo6TExJbnQKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmNwcAppbmRleCA1MjIzZjNhYjRl
NDBmYjQ5ODQ3ZTBlOTZhNmMzOTcxOGVmNDEwOWI1Li42OGM3ODg4OTA2ZGI4YjUxYzk1MDRiZTll
Y2U5Y2JiZmNlZDJmZDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtVmFsdWVMb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVZhbHVlTG9jYXRpb24uY3BwCkBAIC0zNSw4ICszNSwxMSBAQCB2b2lkIFZhbHVlTG9jYXRpb246
OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBvdXQucHJpbnQobV9raW5kKTsK
ICAgICBzd2l0Y2ggKG1fa2luZCkgewotICAgIGNhc2UgUmVnaXN0ZXI6Ci0gICAgICAgIG91dC5w
cmludCgiKCIsIHJlZygpLCAiKSIpOworICAgIGNhc2UgR1BSUmVnaXN0ZXI6CisgICAgICAgIG91
dC5wcmludCgiKCIsIGpzcigpLCAiKSIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBGUFJS
ZWdpc3RlcjoKKyAgICAgICAgb3V0LnByaW50KCIoIiwgZnByKCksICIpIik7CiAgICAgICAgIHJl
dHVybjsKICAgICBjYXNlIFN0YWNrOgogICAgICAgICBvdXQucHJpbnQoIigiLCBvZmZzZXRGcm9t
RlAoKSwgIikiKTsKQEAgLTU3LDggKzYwLDExIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M6Oldhc207
CiB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgVmFsdWVMb2NhdGlvbjo6S2lu
ZCBraW5kKQogewogICAgIHN3aXRjaCAoa2luZCkgewotICAgIGNhc2UgVmFsdWVMb2NhdGlvbjo6
UmVnaXN0ZXI6Ci0gICAgICAgIG91dC5wcmludCgiUmVnaXN0ZXIiKTsKKyAgICBjYXNlIFZhbHVl
TG9jYXRpb246OkdQUlJlZ2lzdGVyOgorICAgICAgICBvdXQucHJpbnQoIkdQUlJlZ2lzdGVyIik7
CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFZhbHVlTG9jYXRpb246OkZQUlJlZ2lzdGVyOgor
ICAgICAgICBvdXQucHJpbnQoIkZQUlJlZ2lzdGVyIik7CiAgICAgICAgIHJldHVybjsKICAgICBj
YXNlIFZhbHVlTG9jYXRpb246OlN0YWNrOgogICAgICAgICBvdXQucHJpbnQoIlN0YWNrIik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uaAppbmRleCBh
NjFmYmE4YmQwMWNiNGFjMGNhNmI2Y2E3ZWU0NGQ3Yjc3MGQ0OGEzLi41Y2I1MTBkYmJkMGIxYjA0
N2Y1YzkyNjE3OWUxYTNmYjljYmFiMWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmgKQEAgLTQxLDI1ICs0MSwyNyBAQCBjbGFzcyBWYWx1ZUxv
Y2F0aW9uIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBlbnVt
IEtpbmQgOiB1aW50OF90IHsKLSAgICAgICAgUmVnaXN0ZXIsCisgICAgICAgIEdQUlJlZ2lzdGVy
LAorICAgICAgICBGUFJSZWdpc3RlciwKICAgICAgICAgU3RhY2ssCiAgICAgICAgIFN0YWNrQXJn
dW1lbnQsCiAgICAgfTsKIAogICAgIFZhbHVlTG9jYXRpb24oKQotICAgICAgICA6IG1fa2luZChS
ZWdpc3RlcikKKyAgICAgICAgOiBtX2tpbmQoR1BSUmVnaXN0ZXIpCiAgICAgewogICAgIH0KIAot
ICAgIGV4cGxpY2l0IFZhbHVlTG9jYXRpb24oUmVnIHJlZykKLSAgICAgICAgOiBtX2tpbmQoUmVn
aXN0ZXIpCisgICAgZXhwbGljaXQgVmFsdWVMb2NhdGlvbihKU1ZhbHVlUmVncyByZWdzKQorICAg
ICAgICA6IG1fa2luZChHUFJSZWdpc3RlcikKICAgICB7Ci0gICAgICAgIHUucmVnID0gcmVnOwor
ICAgICAgICB1LmpzciA9IHJlZ3M7CiAgICAgfQogCi0gICAgc3RhdGljIFZhbHVlTG9jYXRpb24g
cmVnKFJlZyByZWcpCisgICAgZXhwbGljaXQgVmFsdWVMb2NhdGlvbihGUFJSZWcgcmVnKQorICAg
ICAgICA6IG1fa2luZChGUFJSZWdpc3RlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBWYWx1ZUxv
Y2F0aW9uKHJlZyk7CisgICAgICAgIHUuZnByID0gcmVnOwogICAgIH0KIAogICAgIHN0YXRpYyBW
YWx1ZUxvY2F0aW9uIHN0YWNrKGludHB0cl90IG9mZnNldEZyb21GUCkKQEAgLTgwLDIxICs4Miwy
MiBAQCBwdWJsaWM6CiAKICAgICBLaW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBtX2tpbmQ7IH0K
IAotICAgIGJvb2wgaXNSZWcoKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gUmVnaXN0ZXI7IH0K
KyAgICBib29sIGlzR1BSKCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IEdQUlJlZ2lzdGVyOyB9
CisgICAgYm9vbCBpc0ZQUigpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBGUFJSZWdpc3Rlcjsg
fQorICAgIGJvb2wgaXNTdGFjaygpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBTdGFjazsgfQor
ICAgIGJvb2wgaXNTdGFja0FyZ3VtZW50KCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IFN0YWNr
QXJndW1lbnQ7IH0KIAotICAgIFJlZyByZWcoKSBjb25zdAorICAgIEpTVmFsdWVSZWdzIGpzcigp
IGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQoaXNSZWcoKSk7Ci0gICAgICAgIHJldHVybiB1
LnJlZzsKKyAgICAgICAgQVNTRVJUKGlzR1BSKCkpOworICAgICAgICByZXR1cm4gdS5qc3I7CiAg
ICAgfQogCi0gICAgYm9vbCBpc0dQUigpIGNvbnN0IHsgcmV0dXJuIGlzUmVnKCkgJiYgcmVnKCku
aXNHUFIoKTsgfQotICAgIGJvb2wgaXNGUFIoKSBjb25zdCB7IHJldHVybiBpc1JlZygpICYmIHJl
ZygpLmlzRlBSKCk7IH0KLQotICAgIEdQUlJlZyBncHIoKSBjb25zdCB7IHJldHVybiByZWcoKS5n
cHIoKTsgfQotICAgIEZQUlJlZyBmcHIoKSBjb25zdCB7IHJldHVybiByZWcoKS5mcHIoKTsgfQot
Ci0gICAgYm9vbCBpc1N0YWNrKCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IFN0YWNrOyB9Cisg
ICAgRlBSUmVnIGZwcigpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNGUFIoKSk7Cisg
ICAgICAgIHJldHVybiB1LmZwcjsKKyAgICB9CiAKICAgICBpbnRwdHJfdCBvZmZzZXRGcm9tRlAo
KSBjb25zdAogICAgIHsKQEAgLTEwMiw4ICsxMDUsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biB1Lm9mZnNldEZyb21GUDsKICAgICB9CiAKLSAgICBib29sIGlzU3RhY2tBcmd1bWVudCgpIGNv
bnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBTdGFja0FyZ3VtZW50OyB9Ci0KICAgICBpbnRwdHJfdCBv
ZmZzZXRGcm9tU1AoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKGlzU3RhY2tBcmd1bWVu
dCgpKTsKQEAgLTExNCw3ICsxMTUsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdW5pb24g
VSB7Ci0gICAgICAgIFJlZyByZWc7CisgICAgICAgIEpTVmFsdWVSZWdzIGpzcjsKKyAgICAgICAg
RlBSUmVnIGZwcjsKICAgICAgICAgaW50cHRyX3Qgb2Zmc2V0RnJvbUZQOwogICAgICAgICBpbnRw
dHJfdCBvZmZzZXRGcm9tU1A7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL0pTVG9XYXNtLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTVG9X
YXNtLmNwcAppbmRleCA0ZjQ1NWNjNDdhMDQ4NmY1Yzk1ZTRhNmM0MDU1Y2QwYzg1MjM4MzVkLi4w
ZjYyNGUwYjYxZGJiNzhmYjYzMjQxODFiMzYyNDc3ZDAyYTViMjJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVk
ZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNs
dWRlICJKU1dlYkFzc2VtYmx5SW5zdGFuY2UuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZv
clNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIldhc21DYWxsaW5nQ29udmVudGlvbi5oIgogI2lu
Y2x1ZGUgIldhc21Db250ZXh0SW5saW5lcy5oIgogI2luY2x1ZGUgIldhc21PcGVyYXRpb25zLmgi
CkBAIC00MSwxMyArNDIsMTMgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIHZv
aWQgbWFyc2hhbGxKU1Jlc3VsdChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgVHlwZURlZmluaXRp
b24mIHR5cGVEZWZpbml0aW9uLCBjb25zdCBDYWxsSW5mb3JtYXRpb24mIHdhc21GcmFtZUNvbnZl
bnRpb24sIGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXRMaXN0JiBzYXZlZFJlc3VsdFJlZ2lzdGVycykK
IHsKICAgICBjb25zdCBhdXRvJiBzaWduYXR1cmUgPSAqdHlwZURlZmluaXRpb24uYXM8RnVuY3Rp
b25TaWduYXR1cmU+KCk7Ci0gICAgYXV0byBib3hXYXNtUmVzdWx0ID0gW10oQ0NhbGxIZWxwZXJz
JiBqaXQsIFR5cGUgdHlwZSwgUmVnIHNyYywgSlNWYWx1ZVJlZ3MgZHN0KSB7CisgICAgYXV0byBi
b3hXYXNtUmVzdWx0ID0gW10oQ0NhbGxIZWxwZXJzJiBqaXQsIFR5cGUgdHlwZSwgVmFsdWVMb2Nh
dGlvbiBzcmMsIEpTVmFsdWVSZWdzIGRzdCkgewogICAgICAgICBzd2l0Y2ggKHR5cGUua2luZCkg
ewogICAgICAgICBjYXNlIFR5cGVLaW5kOjpWb2lkOgogICAgICAgICAgICAgaml0Lm1vdmVUcnVz
dGVkVmFsdWUoanNVbmRlZmluZWQoKSwgZHN0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIFR5cGVLaW5kOjpJMzI6Ci0gICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3Jk
KHNyYy5ncHIoKSwgZHN0LnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICBqaXQuemVyb0V4dGVu
ZDMyVG9Xb3JkKHNyYy5qc3IoKS5wYXlsb2FkR1BSKCksIGRzdC5wYXlsb2FkR1BSKCkpOwogICAg
ICAgICAgICAgaml0LmJveEludDMyKGRzdC5wYXlsb2FkR1BSKCksIGRzdCwgRG9Ob3RIYXZlVGFn
UmVnaXN0ZXJzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpG
MzI6CkBAIC01NiwxMyArNTcsMTcgQEAgdm9pZCBtYXJzaGFsbEpTUmVzdWx0KENDYWxsSGVscGVy
cyYgaml0LCBjb25zdCBUeXBlRGVmaW5pdGlvbiYgdHlwZURlZmluaXRpb24sIGMKICAgICAgICAg
Y2FzZSBUeXBlS2luZDo6RjY0OiB7CiAgICAgICAgICAgICBqaXQubW92ZVRydXN0ZWRWYWx1ZShq
c051bWJlcihwdXJlTmFOKCkpLCBkc3QpOwogICAgICAgICAgICAgYXV0byBpc05hTiA9IGppdC5i
cmFuY2hJZk5hTihzcmMuZnByKCkpOworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgICAgICBq
aXQuYm94RG91YmxlKHNyYy5mcHIoKSwgZHN0LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworI2Vs
c2UKKyAgICAgICAgICAgIGppdC5ib3hEb3VibGUoc3JjLmZwcigpLCBkc3QpOworI2VuZGlmCiAg
ICAgICAgICAgICBpc05hTi5saW5rKCZqaXQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgZGVmYXVsdDogewogICAgICAgICAgICAgaWYgKGlzRnVuY3JlZih0eXBlKSB8
fCBpc0V4dGVybnJlZih0eXBlKSkKLSAgICAgICAgICAgICAgICBqaXQubW92ZShzcmMuZ3ByKCks
IGRzdC5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgICAgIGppdC5tb3ZlVmFsdWVSZWdzKHNy
Yy5qc3IoKSwgZHN0KTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBqaXQuYnJl
YWtwb2ludCgpOwogICAgICAgICB9CkBAIC03MCw0NCArNzUsODcgQEAgdm9pZCBtYXJzaGFsbEpT
UmVzdWx0KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBUeXBlRGVmaW5pdGlvbiYgdHlwZURlZmlu
aXRpb24sIGMKICAgICB9OwogCiAgICAgaWYgKHNpZ25hdHVyZS5yZXR1cm5zVm9pZCgpKQotICAg
ICAgICBqaXQubW92ZVRydXN0ZWRWYWx1ZShqc1VuZGVmaW5lZCgpLCBKU1ZhbHVlUmVncyB7IEdQ
UkluZm86OnJldHVyblZhbHVlR1BSIH0pOworICAgICAgICBqaXQubW92ZVRydXN0ZWRWYWx1ZShq
c1VuZGVmaW5lZCgpLCBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUik7CiAgICAgZWxzZSBpZiAoc2ln
bmF0dXJlLnJldHVybkNvdW50KCkgPT0gMSkgewogICAgICAgICBpZiAoc2lnbmF0dXJlLnJldHVy
blR5cGUoMCkuaXNJNjQoKSkgewotICAgICAgICAgICAgR1BSUmVnIGlucHV0R1BSID0gd2FzbUZy
YW1lQ29udmVudGlvbi5yZXN1bHRzWzBdLnJlZygpLmdwcigpOworICAgICAgICAgICAgSlNWYWx1
ZVJlZ3MgaW5wdXRKU1IgPSB3YXNtRnJhbWVDb252ZW50aW9uLnJlc3VsdHNbMF0uanNyKCk7CiAg
ICAgICAgICAgICBHUFJSZWcgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IFBpbm5lZFJlZ2lzdGVy
SW5mbzo6Z2V0KCkud2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXI7CiAgICAgICAgICAgICBpZiAo
Q29udGV4dDo6dXNlRmFzdFRMUygpKSB7Ci0gICAgICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0
YW5jZUdQUiA9IGlucHV0R1BSID09IEdQUkluZm86OmFyZ3VtZW50R1BSMSA/IEdQUkluZm86OmFy
Z3VtZW50R1BSMCA6IEdQUkluZm86OmFyZ3VtZW50R1BSMTsKLSAgICAgICAgICAgICAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZV92PFdhc206Okluc3RhbmNlKiwgdHlwZW5hbWUgRnVuY3Rp
b25UcmFpdHM8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXkpPjo6QXJndW1l
bnRUeXBlPDE+Pik7CisgICAgICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IGlu
cHV0SlNSLnBheWxvYWRHUFIoKSA9PSBHUFJJbmZvOjphcmd1bWVudEdQUjEgPyBHUFJJbmZvOjph
cmd1bWVudEdQUjAgOiBHUFJJbmZvOjphcmd1bWVudEdQUjE7CisgICAgICAgICAgICAgICAgQVNT
RVJUKCFpbnB1dEpTUi51c2VzKHdhc21Db250ZXh0SW5zdGFuY2VHUFIpKTsKKyAgICAgICAgICAg
ICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZV92PFdhc206Okluc3RhbmNlKiwgdHlwZW5h
bWUgRnVuY3Rpb25UcmFpdHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KT46OkFy
Z3VtZW50VHlwZTwxPj4pOwogICAgICAgICAgICAgICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0
YW5jZSh3YXNtQ29udGV4dEluc3RhbmNlR1BSKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPih3
YXNtQ29udGV4dEluc3RhbmNlR1BSLCBpbnB1dEdQUik7CisgICAgICAgICAgICBqaXQuc2V0dXBB
cmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KT4od2FzbUNvbnRleHRJ
bnN0YW5jZUdQUiwgaW5wdXRKU1IpOwogICAgICAgICAgICAgaml0LmNhbGxPcGVyYXRpb24oRnVu
Y3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpKTsKICAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICBib3hXYXNtUmVzdWx0KGppdCwgc2lnbmF0dXJlLnJl
dHVyblR5cGUoMCksIHdhc21GcmFtZUNvbnZlbnRpb24ucmVzdWx0c1swXS5yZWcoKSwgSlNWYWx1
ZVJlZ3MgeyBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiB9KTsKKyAgICAgICAgICAgIGJveFdhc21S
ZXN1bHQoaml0LCBzaWduYXR1cmUucmV0dXJuVHlwZSgwKSwgd2FzbUZyYW1lQ29udmVudGlvbi5y
ZXN1bHRzWzBdLCBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUik7CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgSW5kZXhpbmdUeXBlIGluZGV4aW5nVHlwZSA9IEFycmF5V2l0aFVuZGVjaWRlZDsKLSAgICAg
ICAgSlNWYWx1ZVJlZ3Mgc2NyYXRjaCA9IEpTVmFsdWVSZWdzIHsgd2FzbUNhbGxpbmdDb252ZW50
aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1sxXSB9OworICAgICAgICBKU1ZhbHVlUmVncyBzY3Jh
dGNoSlNSID0gSlNWYWx1ZVJlZ3MgeworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAg
ICB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzJdLAorI2VuZGlm
CisgICAgICAgICAgICB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJz
WzFdCisgICAgICAgIH07CisKKyAgICAgICAgQVNTRVJUKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigp
ICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAg
ICAgQVNTRVJUKHNjcmF0Y2hKU1IudGFnR1BSKCkgIT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsK
KyAgICAgICAgQVNTRVJUKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpICE9IHNjcmF0Y2hKU1IudGFn
R1BSKCkpOworI2VuZGlmCisKICAgICAgICAgLy8gV2UgY2FuIHVzZSB0aGUgZmlyc3QgZmxvYXRp
bmcgcG9pbnQgcmVnaXN0ZXIgYXMgYSBzY3JhdGNoIHNpbmNlIGl0IHdpbGwgYWx3YXlzIGJlIG1v
dmVkIG9udG8gdGhlIHN0YWNrIGJlZm9yZSBvdGhlciB2YWx1ZXMuCi0gICAgICAgIEZQUlJlZyBm
cHJTY3JhdGNoID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkuZnByQXJnc1swXS5mcHIoKTsKKyAg
ICAgICAgRlBSUmVnIGZwclNjcmF0Y2ggPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5mcHJBcmdz
WzBdOwogICAgICAgICBib29sIGhhc0k2NCA9IGZhbHNlOwogICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgc2lnbmF0dXJlLnJldHVybkNvdW50KCk7ICsraSkgewogICAgICAgICAgICAg
VmFsdWVMb2NhdGlvbiBsb2MgPSB3YXNtRnJhbWVDb252ZW50aW9uLnJlc3VsdHNbaV07CiAgICAg
ICAgICAgICBUeXBlIHR5cGUgPSBzaWduYXR1cmUucmV0dXJuVHlwZShpKTsKIAogICAgICAgICAg
ICAgaGFzSTY0IHw9IHR5cGUuaXNJNjQoKTsKLSAgICAgICAgICAgIGlmIChsb2MuaXNSZWcoKSkg
ewotICAgICAgICAgICAgICAgIGlmICghdHlwZS5pc0k2NCgpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGJveFdhc21SZXN1bHQoaml0LCBzaWduYXR1cmUucmV0dXJuVHlwZShpKSwgbG9jLnJlZygp
LCBzY3JhdGNoKTsKLSAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoc2NyYXRjaCwg
Q0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIs
IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLnJlZygpKS0+b2Zmc2V0KCkgKyB3YXNtRnJh
bWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcykpOwotICAgICAg
ICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1Zh
bHVlUmVncyB7IGxvYy5yZWcoKS5ncHIoKSB9LCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxI
ZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChs
b2MucmVnKCkpLT5vZmZzZXQoKSArIHdhc21GcmFtZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1l
bnRTdGFja1NpemVJbkJ5dGVzKSk7CisgICAgICAgICAgICBpZiAobG9jLmlzR1BSKCkgfHwgbG9j
LmlzRlBSKCkpIHsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgIEFTU0VS
VCghbG9jLmlzR1BSKCkgfHwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5
bG9hZEdQUigpKS0+b2Zmc2V0KCkgKyA0ID09IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9j
LmpzcigpLnRhZ0dQUigpKS0+b2Zmc2V0KCkpOworI2VuZGlmCisgICAgICAgICAgICAgICAgYXV0
byBhZGRyZXNzID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIsIHdhc21GcmFtZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1lbnRTdGFja1Np
emVJbkJ5dGVzKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUua2luZCkgeworICAgICAg
ICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKKyAgICAgICAgICAgICAgICBjYXNlIFR5cGVL
aW5kOjpGNjQ6CisgICAgICAgICAgICAgICAgICAgIGJveFdhc21SZXN1bHQoaml0LCB0eXBlLCBs
b2MsIHNjcmF0Y2hKU1IpOworICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3Jh
dGNoSlNSLCBhZGRyZXNzLndpdGhPZmZzZXQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2Mu
ZnByKCkpLT5vZmZzZXQoKSkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6CisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9y
ZVZhbHVlKGxvYy5qc3IoKSwgYWRkcmVzcy53aXRoT2Zmc2V0KHNhdmVkUmVzdWx0UmVnaXN0ZXJz
LmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpKSk7CisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAg
ICAgIGJveFdhc21SZXN1bHQoaml0LCB0eXBlLCBsb2MsIHNjcmF0Y2hKU1IpOworICAgICAgICAg
ICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNoSlNSLCBhZGRyZXNzLndpdGhPZmZzZXQo
c2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0
KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBpZiAoIXR5cGUuaXNJNjQoKSkgewog
ICAgICAgICAgICAgICAgICAgICBhdXRvIGxvY2F0aW9uID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
KENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIGxvYy5vZmZzZXRGcm9tU1AoKSk7
Ci0gICAgICAgICAgICAgICAgICAgIFJlZyB0bXAgPSAodHlwZS5pc0YzMigpIHx8IHR5cGUuaXNG
NjQoKSkgPyBSZWcoZnByU2NyYXRjaCkgOiBSZWcoc2NyYXRjaC5ncHIoKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIGppdC5sb2FkNjRUb1JlZyhsb2NhdGlvbiwgdG1wKTsKLSAgICAgICAgICAgICAg
ICAgICAgYm94V2FzbVJlc3VsdChqaXQsIHNpZ25hdHVyZS5yZXR1cm5UeXBlKGkpLCB0bXAsIHNj
cmF0Y2gpOwotICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNoLCBsb2Nh
dGlvbik7CisgICAgICAgICAgICAgICAgICAgIFZhbHVlTG9jYXRpb24gdG1wOworICAgICAgICAg
ICAgICAgICAgICBzd2l0Y2ggKHR5cGUua2luZCkgeworICAgICAgICAgICAgICAgICAgICBjYXNl
IFR5cGVLaW5kOjpGMzI6CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBWYWx1ZUxvY2F0
aW9uIHsgZnByU2NyYXRjaCB9OworICAgICAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRGbG9h
dChsb2NhdGlvbiwgZnByU2NyYXRjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OgorICAgICAgICAgICAgICAg
ICAgICAgICAgdG1wID0gVmFsdWVMb2NhdGlvbiB7IGZwclNjcmF0Y2ggfTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGppdC5sb2FkRG91YmxlKGxvY2F0aW9uLCBmcHJTY3JhdGNoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIFR5cGVL
aW5kOjpJMzI6CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBWYWx1ZUxvY2F0aW9uIHsg
c2NyYXRjaEpTUiB9OworICAgICAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQzMihsb2NhdGlv
biwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAg
ICB0bXAgPSBWYWx1ZUxvY2F0aW9uIHsgc2NyYXRjaEpTUiB9OworICAgICAgICAgICAgICAgICAg
ICAgICAgaml0LmxvYWRWYWx1ZShsb2NhdGlvbiwgc2NyYXRjaEpTUik7CisgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICBib3hXYXNtUmVzdWx0KGppdCwgdHlwZSwgdG1wLCBzY3JhdGNoSlNSKTsKKyAgICAgICAg
ICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoc2NyYXRjaEpTUiwgbG9jYXRpb24pOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIApAQCAtMTM2LDM3ICsxODQsNDcgQEAgdm9pZCBt
YXJzaGFsbEpTUmVzdWx0KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBUeXBlRGVmaW5pdGlvbiYg
dHlwZURlZmluaXRpb24sIGMKIAogICAgICAgICAgICAgICAgIEdQUlJlZyB3YXNtQ29udGV4dElu
c3RhbmNlR1BSID0gUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKS53YXNtQ29udGV4dEluc3RhbmNl
UG9pbnRlcjsKICAgICAgICAgICAgICAgICBpZiAoQ29udGV4dDo6dXNlRmFzdFRMUygpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBHUFJJbmZvOjphcmd1
bWVudEdQUjE7Ci0gICAgICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1l
X3Y8V2FzbTo6SW5zdGFuY2UqLCB0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxkZWNsdHlwZShvcGVy
YXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSk+OjpBcmd1bWVudFR5cGU8MT4+KTsKKyAgICAgICAg
ICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IHByZWZlcnJlZEFyZ3VtZW50R1BS
PGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCksIDE+KCk7CisgICAgICAgICAgICAg
ICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lX3Y8V2FzbTo6SW5zdGFuY2UqLCB0eXBl
bmFtZSBGdW5jdGlvblRyYWl0czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPjo6
QXJndW1lbnRUeXBlPDE+Pik7CiAgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkV2FzbUNvbnRl
eHRJbnN0YW5jZSh3YXNtQ29udGV4dEluc3RhbmNlR1BSKTsKICAgICAgICAgICAgICAgICB9CiAK
LSAgICAgICAgICAgICAgICBpZiAobG9jLmlzUmVnKCkpCi0gICAgICAgICAgICAgICAgICAgIGpp
dC5sb2FkNjQoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVy
UmVnaXN0ZXIsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLnJlZygpKS0+b2Zmc2V0KCkg
KyB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcyks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGF1dG8gbG9jYXRpb24gPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxI
ZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgbG9jLm9mZnNldEZyb21TUCgpKTsKLSAgICAg
ICAgICAgICAgICAgICAgaml0LmxvYWQ2NFRvUmVnKGxvY2F0aW9uLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBqaXQuc2V0dXBBcmd1
bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KT4od2FzbUNvbnRleHRJbnN0
YW5jZUdQUiwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICAgICAgICAgICAgICBjb25zdGV4
cHIgSlNWYWx1ZVJlZ3MgdmFsdWVKU1IgPSBwcmVmZXJyZWRBcmd1bWVudEpTUjxkZWNsdHlwZShv
cGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpLCAyPigpOworCisgICAgICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzIGFkZHJlc3MgeyBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lz
dGVyIH07CisgICAgICAgICAgICAgICAgaWYgKGxvYy5pc0dQUigpIHx8IGxvYy5pc0ZQUigpKSB7
CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHNhdmVk
UmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpICsg
NCA9PSBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS50YWdHUFIoKSktPm9mZnNl
dCgpKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gYWRkcmVzcy53aXRo
T2Zmc2V0KHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSkt
Pm9mZnNldCgpICsgd2FzbUZyYW1lQ29udmVudGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6
ZUluQnl0ZXMpOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBh
ZGRyZXNzID0gYWRkcmVzcy53aXRoT2Zmc2V0KGxvYy5vZmZzZXRGcm9tU1AoKSk7CisKKyAgICAg
ICAgICAgICAgICBqaXQubG9hZFZhbHVlKGFkZHJlc3MsIHZhbHVlSlNSKTsKKyAgICAgICAgICAg
ICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50
KT4od2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgdmFsdWVKU1IpOwogICAgICAgICAgICAgICAgIGpp
dC5jYWxsT3BlcmF0aW9uKEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQ29u
dmVydFRvQmlnSW50KSk7Ci0gICAgICAgICAgICAgICAgaWYgKGxvYy5pc1JlZygpKQotICAgICAg
ICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1ZhbHVlUmVncyB7IEdQUkluZm86OnJldHVy
blZhbHVlR1BSIH0sIENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyLCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5yZWcoKSktPm9mZnNl
dCgpICsgd2FzbUZyYW1lQ29udmVudGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0
ZXMpKTsKLSAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBs
b2NhdGlvbiA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRl
clJlZ2lzdGVyLCBsb2Mub2Zmc2V0RnJvbVNQKCkpOwotICAgICAgICAgICAgICAgICAgICBqaXQu
c3RvcmVWYWx1ZShKU1ZhbHVlUmVncyB7IEdQUkluZm86OnJldHVyblZhbHVlR1BSIH0sIGxvY2F0
aW9uKTsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUo
SlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIGFkZHJlc3MpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAKICAgICAgICAgR1BSUmVnIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBQaW5uZWRSZWdp
c3RlckluZm86OmdldCgpLndhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyOwogICAgICAgICBpZiAo
Q29udGV4dDo6dXNlRmFzdFRMUygpKSB7Ci0gICAgICAgICAgICB3YXNtQ29udGV4dEluc3RhbmNl
R1BSID0gR1BSSW5mbzo6YXJndW1lbnRHUFIxOworICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0
YW5jZUdQUiA9IHByZWZlcnJlZEFyZ3VtZW50R1BSPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRl
UmVzdWx0c0FycmF5KSwgMT4oKTsKICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19z
YW1lX3Y8V2FzbTo6SW5zdGFuY2UqLCB0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxkZWNsdHlwZShv
cGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSk+OjpBcmd1bWVudFR5cGU8MT4+KTsKICAgICAg
ICAgICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZSh3YXNtQ29udGV4dEluc3RhbmNlR1BS
KTsKICAgICAgICAgfQogCi0gICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVy
YXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSk+KHdhc21Db250ZXh0SW5zdGFuY2VHUFIsIENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbVB0cigmdHlwZURlZmluaXRpb24pLCBpbmRleGluZ1R5cGUsIEND
YWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBjb25zdGV4cHIgR1BS
UmVnIHNhdmVkUmVzdWx0c0dQUiA9IHByZWZlcnJlZEFyZ3VtZW50R1BSPGRlY2x0eXBlKG9wZXJh
dGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KSwgND4oKTsKKyAgICAgICAgaml0Lm1vdmUoQ0NhbGxI
ZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRzR1BSKTsKKyAgICAgICAg
aWYgY29uc3RleHByIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAg
IGppdC5zdWJQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JT
bG93UGF0aENhbGwpLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAg
ICAgQVNTRVJUKHdhc21Db250ZXh0SW5zdGFuY2VHUFIgIT0gc2F2ZWRSZXN1bHRzR1BSKTsKKyAg
ICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0
c0FycmF5KT4od2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
UHRyKCZ0eXBlRGVmaW5pdGlvbiksIGluZGV4aW5nVHlwZSwgc2F2ZWRSZXN1bHRzR1BSKTsKICAg
ICAgICAgaml0LmNhbGxPcGVyYXRpb24oRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVy
YXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSkpOworICAgICAgICBpZiBjb25zdGV4cHIgKG1heEZy
YW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICAgICAgaml0LmFkZFB0cihDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIENDYWxs
SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworCisgICAgICAgIGppdC5ib3hDZWxsKEdQ
UkluZm86OnJldHVyblZhbHVlR1BSLCBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUik7CiAgICAgfQog
fQogCkBAIC0xNzgsNyArMjM2LDExIEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9u
PiBjcmVhdGVKU1RvV2FzbVdyYXBwZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAgICAgLy8g
RklYTUUgU3RvcCB1c2luZyAwIGFzIGNvZGVCbG9ja3MuIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjUzMjEKICAgICBqaXQuZW1pdFplcm9Ub0NhbGxGcmFtZUhlYWRl
cihDYWxsRnJhbWVTbG90Ojpjb2RlQmxvY2spOwogICAgIE1hY3JvQXNzZW1ibGVyOjpEYXRhTGFi
ZWxQdHIgY2FsbGVlTW92ZUxvY2F0aW9uID0gaml0Lm1vdmVXaXRoUGF0Y2goTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW1QdHIobnVsbHB0ciksIEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVy
bkdQUik7Ci0gICAgaml0LmVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihHUFJJbmZvOjpub25QcmVz
ZXJ2ZWROb25SZXR1cm5HUFIsIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7CisgICAgQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzIGNhbGxlZVNsb3QgeyBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgQ2Fs
bEZyYW1lU2xvdDo6Y2FsbGVlICogc2l6ZW9mKFJlZ2lzdGVyKSB9OworICAgIGppdC5zdG9yZVB0
cihHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIsIGNhbGxlZVNsb3Qud2l0aE9mZnNl
dChQYXlsb2FkT2Zmc2V0KSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBqaXQuc3RvcmUz
MihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpXYXNtVGFnKSwgY2FsbGVlU2xv
dC53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworI2VuZGlmCiAgICAgVmVjdG9yPENvZGVMb2NhdGlv
bkRhdGFMYWJlbFB0cjxXYXNtRW50cnlQdHJUYWc+PiogbGlua2VkQ2FsbGVlTW92ZSA9ICZyZXN1
bHQtPmNhbGxlZU1vdmVMb2NhdGlvbnM7CiAgICAgaml0LmFkZExpbmtUYXNrKFs9XSAoTGlua0J1
ZmZlciYgbGlua0J1ZmZlcikgewogICAgICAgICBsaW5rZWRDYWxsZWVNb3ZlLT5hcHBlbmQobGlu
a0J1ZmZlci5sb2NhdGlvbk9mPFdhc21FbnRyeVB0clRhZz4oY2FsbGVlTW92ZUxvY2F0aW9uKSk7
CkBAIC0xOTcsMTEgKzI1OSwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4g
Y3JlYXRlSlNUb1dhc21XcmFwcGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogICAgIFJlZ2lz
dGVyQXRPZmZzZXRMaXN0IHJlZ2lzdGVyc1RvU3BpbGwodG9TYXZlLCBSZWdpc3RlckF0T2Zmc2V0
TGlzdDo6T2Zmc2V0QmFzZVR5cGU6OkZyYW1lUG9pbnRlckJhc2VkKTsKICAgICByZXN1bHQtPmVu
dHJ5cG9pbnQuY2FsbGVlU2F2ZVJlZ2lzdGVycyA9IHJlZ2lzdGVyc1RvU3BpbGw7CiAKLSAgICBz
aXplX3QgdG90YWxGcmFtZVNpemUgPSByZWdpc3RlcnNUb1NwaWxsLnNpemUoKSAqIHNpemVvZihD
UFVSZWdpc3Rlcik7CisgICAgc2l6ZV90IHRvdGFsRnJhbWVTaXplID0gcmVnaXN0ZXJzVG9TcGls
bC5zaXplT2ZBcmVhSW5CeXRlcygpOwogICAgIENhbGxJbmZvcm1hdGlvbiB3YXNtRnJhbWVDb252
ZW50aW9uID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkuY2FsbEluZm9ybWF0aW9uRm9yKHR5cGVE
ZWZpbml0aW9uKTsKICAgICBSZWdpc3RlckF0T2Zmc2V0TGlzdCBzYXZlZFJlc3VsdFJlZ2lzdGVy
cyA9IHdhc21GcmFtZUNvbnZlbnRpb24uY29tcHV0ZVJlc3VsdHNPZmZzZXRMaXN0KCk7CiAgICAg
dG90YWxGcmFtZVNpemUgKz0gd2FzbUZyYW1lQ29udmVudGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0
YWNrU2l6ZUluQnl0ZXM7Ci0gICAgdG90YWxGcmFtZVNpemUgKz0gc2F2ZWRSZXN1bHRSZWdpc3Rl
cnMuc2l6ZSgpICogc2l6ZW9mKENQVVJlZ2lzdGVyKTsKKyAgICB0b3RhbEZyYW1lU2l6ZSArPSBz
YXZlZFJlc3VsdFJlZ2lzdGVycy5zaXplT2ZBcmVhSW5CeXRlcygpOwogCiAgICAgdG90YWxGcmFt
ZVNpemUgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRCeXRlcygpLCB0
b3RhbEZyYW1lU2l6ZSk7CiAgICAgaml0LnN1YlB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTMyKHRvdGFsRnJhbWVTaXplKSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
KTsKQEAgLTIyMyw5ICsyODUsMTIgQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+
IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QKIAogICAgICAg
ICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgY2FsbGVlRnJhbWUgPSBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCAwKTsKIAotICAgICAgICAv
LyBXZSdyZSBnb2luZyB0byBzZXQgdGhlIHBpbm5lZCByZWdpc3RlcnMgYWZ0ZXIgdGhpcy4gU28K
LSAgICAgICAgLy8gd2UgY2FuIHVzZSB0aGlzIGFzIGEgc2NyYXRjaCBmb3Igbm93IHNpbmNlIHdl
IHNhdmVkIGl0IGFib3ZlLgotICAgICAgICBHUFJSZWcgc2NyYXRjaFJlZyA9IHBpbm5lZFJlZ3Mu
YmFzZU1lbW9yeVBvaW50ZXI7CisgICAgICAgIEpTVmFsdWVSZWdzIHNjcmF0Y2hKU1IgeworI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5w
cm9sb2d1ZVNjcmF0Y2hHUFJzWzJdLAorI2VuZGlmCisgICAgICAgICAgICB3YXNtQ2FsbGluZ0Nv
bnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdCisgICAgICAgIH07CiAKICAgICAgICAg
aWYgKCFDb250ZXh0Ojp1c2VGYXN0VExTKCkpIHsKICAgICAgICAgICAgIGppdC5sb2FkUHRyKEND
YWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNDYWxsaW5n
Q29udmVudGlvbjo6aW5zdGFuY2VTdGFja09mZnNldCksIHdhc21Db250ZXh0SW5zdGFuY2VHUFIp
OwpAQCAtMjM5LDIyICszMDQsMzQgQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+
IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QKICAgICAgICAg
ICAgIFR5cGUgdHlwZSA9IHNpZ25hdHVyZS5hcmd1bWVudFR5cGUoaSk7CiAgICAgICAgICAgICBD
Q2FsbEhlbHBlcnM6OkFkZHJlc3MganNQYXJhbShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwg
anNGcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLm9mZnNldEZyb21GUCgpKTsKICAgICAgICAgICAg
IGlmICh3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5pc1N0YWNrQXJndW1lbnQoKSkgewor
ICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBhZGRyIHsgY2FsbGVlRnJhbWUu
d2l0aE9mZnNldCh3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkg
fTsKICAgICAgICAgICAgICAgICBpZiAodHlwZS5pc0kzMigpIHx8IHR5cGUuaXNGMzIoKSkgewot
ICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDMyKGpzUGFyYW0sIHNjcmF0Y2hSZWcpOwotICAg
ICAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihzY3JhdGNoUmVnLCBjYWxsZWVGcmFtZS53aXRo
T2Zmc2V0KHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSk7Cisg
ICAgICAgICAgICAgICAgICAgIGppdC5sb2FkMzIoanNQYXJhbSwgc2NyYXRjaEpTUi5wYXlsb2Fk
R1BSKCkpOworICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihzY3JhdGNoSlNSLnBheWxv
YWRHUFIoKSwgYWRkci53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyNpZiBVU0UoSlNWQUxV
RTMyXzY0KQorICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMigwKSwgYWRkci53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworI2VuZGlmCiAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NChqc1Bh
cmFtLCBzY3JhdGNoUmVnKTsKLSAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlNjQoc2NyYXRj
aFJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tp
XS5vZmZzZXRGcm9tU1AoKSkpOworICAgICAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpz
UGFyYW0sIHNjcmF0Y2hKU1IpOworICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShz
Y3JhdGNoSlNSLCBhZGRyKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgIGlmICh0eXBlLmlzSTMyKCkgfHwgdHlwZS5pc0YzMigpKQotICAg
ICAgICAgICAgICAgICAgICBqaXQubG9hZDMyVG9SZWcoanNQYXJhbSwgd2FzbUZyYW1lQ29udmVu
dGlvbi5wYXJhbXNbaV0ucmVnKCkpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICAgICAgaml0LmxvYWQ2NFRvUmVnKGpzUGFyYW0sIHdhc21GcmFtZUNvbnZlbnRpb24ucGFy
YW1zW2ldLnJlZygpKTsKKyAgICAgICAgICAgICAgICBpZiAodHlwZS5pc0YzMigpKQorICAgICAg
ICAgICAgICAgICAgICBqaXQubG9hZEZsb2F0KGpzUGFyYW0sIHdhc21GcmFtZUNvbnZlbnRpb24u
cGFyYW1zW2ldLmZwcigpKTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlLmlzRjY0KCkp
CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkRG91YmxlKGpzUGFyYW0sIHdhc21GcmFtZUNv
bnZlbnRpb24ucGFyYW1zW2ldLmZwcigpKTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBl
LmlzSTMyKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQzMihqc1BhcmFtLCB3YXNt
RnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5qc3IoKS5wYXlsb2FkR1BSKCkpOworI2lmIFVTRShK
U1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbTMyKDApLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5qc3IoKS50YWdH
UFIoKSk7CisjZW5kaWYKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgaml0LmxvYWRWYWx1ZShqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5q
c3IoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKKyNpZiAhQ1BVKEFSTSkg
Ly8gQVJNIGhhcyBubyBwaW5uZWQgcmVnaXN0ZXJzIGZvciBXYXNtIE1lbW9yeSwgc28gbm8gbmVl
ZCB0byBzZXQgdGhlbSB1cAogICAgIGlmICghIWluZm8ubWVtb3J5KSB7CiAgICAgICAgIEdQUlJl
ZyBiYXNlTWVtb3J5ID0gcGlubmVkUmVncy5iYXNlTWVtb3J5UG9pbnRlcjsKICAgICAgICAgR1BS
UmVnIHNpemUgPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzBd
OwpAQCAtMjY1LDE3ICszNDIsMTggQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+
IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QKIAogICAgICAg
ICBHUFJSZWcgY3VycmVudEluc3RhbmNlR1BSID0gQ29udGV4dDo6dXNlRmFzdFRMUygpID8gYmFz
ZU1lbW9yeSA6IHdhc21Db250ZXh0SW5zdGFuY2VHUFI7CiAgICAgICAgIGlmIChpc0FSTTY0RSgp
KSB7Ci0gICAgICAgICAgICBpZiAobW9kZSAhPSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmcp
CisgICAgICAgICAgICBpZiAobW9kZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2lu
ZykKICAgICAgICAgICAgICAgICBzaXplID0gcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVS
ZWdpc3RlcjsKICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhj
dXJyZW50SW5zdGFuY2VHUFIsIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZEJvdW5kc0No
ZWNraW5nU2l6ZSgpKSwgc2l6ZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAo
bW9kZSAhPSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmcpCisgICAgICAgICAgICBpZiAobW9k
ZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykKICAgICAgICAgICAgICAgICBq
aXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoY3VycmVudEluc3RhbmNlR1BSLCBXYXNt
OjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHNDaGVja2luZ1NpemUoKSksIHBpbm5lZFJl
Z3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIpOwogICAgICAgICB9CiAKICAgICAgICAgaml0
LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGN1cnJlbnRJbnN0YW5jZUdQUiwgV2FzbTo6
SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNlTWVtb3J5KTsKICAgICAgICAg
aml0LmNhZ2VDb25kaXRpb25hbGx5QW5kVW50YWcoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgYmFzZU1l
bW9yeSwgc2l6ZSwgc2NyYXRjaCk7CiAgICAgfQorI2VuZGlmCiAKICAgICBDQ2FsbEhlbHBlcnM6
OkNhbGwgY2FsbCA9IGppdC50aHJlYWRTYWZlUGF0Y2hhYmxlTmVhckNhbGwoKTsKICAgICB1bnNp
Z25lZCBmdW5jdGlvbkluZGV4U3BhY2UgPSBmdW5jdGlvbkluZGV4ICsgaW5mby5pbXBvcnRGdW5j
dGlvbkNvdW50KCk7CkBAIC0yODgsNyArMzY2LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFs
RnVuY3Rpb24+IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QK
IAogICAgIGZvciAoY29uc3QgUmVnaXN0ZXJBdE9mZnNldCYgcmVnQXRPZmZzZXQgOiByZWdpc3Rl
cnNUb1NwaWxsKSB7CiAgICAgICAgIEdQUlJlZyByZWcgPSByZWdBdE9mZnNldC5yZWcoKS5ncHIo
KTsKLSAgICAgICAgQVNTRVJUKHJlZyAhPSBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAg
ICAgIEFTU0VSVCghSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IudXNlcyhyZWcpKTsKICAgICAgICAg
cHRyZGlmZl90IG9mZnNldCA9IHJlZ0F0T2Zmc2V0Lm9mZnNldCgpOwogICAgICAgICBqaXQubG9h
ZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIG9m
ZnNldCksIHJlZyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2FzbVRvSlMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2FzbVRv
SlMuY3BwCmluZGV4IDNmMDgwOTIyZTI0NTk5ZmM0MDYyYjRjZGI0YjJkMmZmNDM4NTBiYTEuLjYz
MjY3MWMyNTU1N2NiZTAxYmQ1MDU0YTBlNjk3NjU5OTk2MDliZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRl
ICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5SW5zdGFuY2UuaCIKICNp
bmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0
aENhbGwuaCIKICNpbmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKICNpbmNsdWRlICJXYXNtQ2Fs
bGluZ0NvbnZlbnRpb24uaCIKICNpbmNsdWRlICJXYXNtQ29udGV4dElubGluZXMuaCIKQEAgLTY5
LDcgKzcwLDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRh
Zz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAvLyBJZiB3ZSBldmVyIGNo
YW5nZSB0aGlzLCB3ZSB3aWxsIGFsc28gbmVlZCB0byBjaGFuZ2UgV2FzbUIzSVJHZW5lcmF0b3Iu
CiAKICAgICAvLyBCZWxvdywgd2UgYXNzdW1lIHRoYXQgdGhlIEpTIGNhbGxpbmcgY29udmVudGlv
biBpcyBhbHdheXMgb24gdGhlIHN0YWNrLgotICAgIEFTU0VSVCghanNDQy5ncHJBcmdzLnNpemUo
KSk7CisgICAgQVNTRVJUKCFqc0NDLmpzckFyZ3Muc2l6ZSgpKTsKICAgICBBU1NFUlQoIWpzQ0Mu
ZnByQXJncy5zaXplKCkpOwogCiAgICAgaml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CkBAIC04
NiwxNCArODcsMjIgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0
clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAvLyBmb3IgdXMgaGVy
ZS4KIAogICAgIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mUGFyYW1ldGVycyA9IGFyZ0NvdW50ICsg
MTsgLy8gVGhlcmUgaXMgYSAidGhpcyIgYXJndW1lbnQuCi0gICAgY29uc3QgdW5zaWduZWQgbnVt
YmVyT2ZSZWdzRm9yQ2FsbCA9IENhbGxGcmFtZTo6aGVhZGVyU2l6ZUluUmVnaXN0ZXJzICsgbnVt
YmVyT2ZQYXJhbWV0ZXJzOworICAgIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mUmVnc0ZvckNhbGwg
PSBDYWxsRnJhbWU6OmhlYWRlclNpemVJblJlZ2lzdGVycyArIHJvdW5kQXJndW1lbnRDb3VudFRv
QWxpZ25GcmFtZShudW1iZXJPZlBhcmFtZXRlcnMpOworICAgIEFTU0VSVCghKG51bWJlck9mUmVn
c0ZvckNhbGwgJSBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpKSk7CiAgICAgY29uc3QgdW5zaWdu
ZWQgbnVtYmVyT2ZCeXRlc0ZvckNhbGwgPSBudW1iZXJPZlJlZ3NGb3JDYWxsICogc2l6ZW9mKFJl
Z2lzdGVyKSAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKTsKLSAgICBjb25zdCB1bnNpZ25lZCBz
dGFja09mZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudEJ5dGVz
KCksIHN0ZDo6bWF4PHVuc2lnbmVkPihudW1iZXJPZkJ5dGVzRm9yQ2FsbCwgc2F2ZWRSZXN1bHRS
ZWdpc3RlcnMuc2l6ZSgpICogc2l6ZW9mKENQVVJlZ2lzdGVyKSkpOworICAgIGNvbnN0IHVuc2ln
bmVkIG51bWJlck9mQnl0ZXNGb3JTYXZlZFJlc3VsdHMgPSBzYXZlZFJlc3VsdFJlZ2lzdGVycy5z
aXplT2ZBcmVhSW5CeXRlcygpOworICAgIGNvbnN0IHVuc2lnbmVkIHN0YWNrT2Zmc2V0ID0gV1RG
Ojpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50Qnl0ZXMoKSwgc3RkOjptYXgobnVt
YmVyT2ZCeXRlc0ZvckNhbGwsIG51bWJlck9mQnl0ZXNGb3JTYXZlZFJlc3VsdHMpKTsKICAgICBq
aXQuc3ViUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc3RhY2tPZmZzZXQpLCBNYWNy
b0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgIEpJVDo6QWRkcmVzcyBjYWxs
ZWVGcmFtZSA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIsIC1zdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihDYWxsZXJGcmFtZUFu
ZFBDKSkpOwogCiAgICAgLy8gRklYTUUgbWFrZSB0aGVzZSBsb29wcyB3aGljaCBzd2l0Y2ggb24g
c2lnbmF0dXJlIGlmIHRoZXJlIGFyZSBtYW55IGFyZ3VtZW50cyBvbiB0aGUgc3RhY2suIEl0J2xs
IG90aGVyd2lzZSBiZSBodWdlIGZvciBodWdlIHR5cGUgZGVmaW5pdGlvbnMuIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU1NDcKIAorI2lmIFVTRShKU1ZBTFVFNjQp
CisgICAgY29uc3RleHByIEpTVmFsdWVSZWdzIGpzQXJnMTAgeyBHUFJJbmZvOjphcmd1bWVudEdQ
UjAgfTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgY29uc3RleHByIEpTVmFsdWVSZWdz
IGpzQXJnMTAgeyBHUFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUkluZm86OmFyZ3VtZW50R1BSMCB9
OworI2VuZGlmCisKICAgICAvLyBGaXJzdCBnbyB0aHJvdWdoIHRoZSBpbnRlZ2VyIHBhcmFtZXRl
cnMsIGZyZWVpbmcgdXAgdGhlaXIgcmVnaXN0ZXIgZm9yIHVzZSBhZnRlcndhcmRzLgogICAgIHsK
ICAgICAgICAgdW5zaWduZWQgbWFyc2hhbGxlZEdQUnMgPSAwOwpAQCAtMTEzLDIxICsxMjIsMjEg
QEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRp
bmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1
bmNyZWY6CiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpJMzI6CiAgICAgICAgICAgICBjYXNl
IFR5cGVLaW5kOjpJNjQ6IHsKLSAgICAgICAgICAgICAgICBHUFJSZWcgZ3ByUmVnOwotICAgICAg
ICAgICAgICAgIGlmIChtYXJzaGFsbGVkR1BScyA8IHdhc21DQy5ncHJBcmdzLnNpemUoKSkKLSAg
ICAgICAgICAgICAgICAgICAgZ3ByUmVnID0gd2FzbUNDLmdwckFyZ3NbbWFyc2hhbGxlZEdQUnNd
LmdwcigpOworICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzIGFyZ1JlZzsKKyAgICAgICAgICAg
ICAgICBpZiAobWFyc2hhbGxlZEdQUnMgPCB3YXNtQ0MuanNyQXJncy5zaXplKCkpCisgICAgICAg
ICAgICAgICAgICAgIGFyZ1JlZyA9IHdhc21DQy5qc3JBcmdzW21hcnNoYWxsZWRHUFJzXTsKICAg
ICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgLy8gV2UndmUgYWxyZWFk
eSBzcGlsbGVkIGFsbCBhcmd1bWVudHMsIHRoZXNlIHJlZ2lzdGVycyBhcmUgYXZhaWxhYmxlIGFz
IHNjcmF0Y2guCi0gICAgICAgICAgICAgICAgICAgIGdwclJlZyA9IEdQUkluZm86OmFyZ3VtZW50
R1BSMDsKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NChKSVQ6OkFkZHJlc3MoR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGZyT2Zmc2V0KSwgZ3ByUmVnKTsKKyAgICAgICAgICAgICAg
ICAgICAgYXJnUmVnID0ganNBcmcxMDsKKyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1
ZShKSVQ6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGZyT2Zmc2V0KSwgYXJn
UmVnKTsKICAgICAgICAgICAgICAgICAgICAgZnJPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsK
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgKyttYXJzaGFsbGVkR1BSczsKICAg
ICAgICAgICAgICAgICBpZiAoYXJnVHlwZS5pc0kzMigpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoZ3ByUmVnLCBncHJSZWcpOyAvLyBDbGVhciBub24taW50
MzIgYW5kIG5vbi10YWcgYml0cy4KLSAgICAgICAgICAgICAgICAgICAgaml0LmJveEludDMyKGdw
clJlZywgSlNWYWx1ZVJlZ3MoZ3ByUmVnKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAg
ICAgICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChhcmdSZWcucGF5bG9hZEdQUigp
LCBhcmdSZWcucGF5bG9hZEdQUigpKTsgLy8gQ2xlYXIgbm9uLWludDMyIGFuZCBub24tdGFnIGJp
dHMuCisgICAgICAgICAgICAgICAgICAgIGppdC5ib3hJbnQzMihhcmdSZWcucGF5bG9hZEdQUigp
LCBhcmdSZWcsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CiAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIGppdC5zdG9yZTY0KGdwclJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldChj
YWxsZWVGcmFtZU9mZnNldCkpOworICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKGFyZ1Jl
ZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCkpOwogICAgICAgICAg
ICAgICAgIGNhbGxlZUZyYW1lT2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0xNDQsNiArMTUzLDcgQEAgRXhwZWN0ZWQ8
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3
YXNtVG9KUyhWTSYgdm0KICAgICB9CiAgICAgCiAgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCiAg
ICAgICAgIC8vIEludGVnZXIgcmVnaXN0ZXJzIGhhdmUgYWxyZWFkeSBiZWVuIHNwaWxsZWQsIHRo
ZXNlIGFyZSBub3cgYXZhaWxhYmxlLgogICAgICAgICBHUFJSZWcgZG91YmxlRW5jb2RlT2Zmc2V0
R1BSUmVnID0gR1BSSW5mbzo6YXJndW1lbnRHUFIwOwogICAgICAgICBHUFJSZWcgc2NyYXRjaCA9
IEdQUkluZm86OmFyZ3VtZW50R1BSMTsKQEAgLTE1OSw2ICsxNjksNyBAQCBFeHBlY3RlZDxNYWNy
b0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21U
b0pTKFZNJiB2bQogICAgICAgICAgICAgICAgIGhhc01hdGVyaWFsaXplZERvdWJsZUVuY29kZU9m
ZnNldCA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH07CisjZW5kaWYKIAogICAgICAg
ICB1bnNpZ25lZCBtYXJzaGFsbGVkR1BScyA9IDA7CiAgICAgICAgIHVuc2lnbmVkIG1hcnNoYWxs
ZWRGUFJzID0gMDsKQEAgLTE2NywxMCArMTc4LDE0IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVy
Q29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZt
CiAKICAgICAgICAgYXV0byBtYXJzaGFsbEZQUiA9IFsmXSAoRlBSUmVnIGZwclJlZykgewogICAg
ICAgICAgICAgaml0LnB1cmlmeU5hTihmcHJSZWcpOworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAg
ICAgICAgICBqaXQubW92ZURvdWJsZVRvNjQoZnByUmVnLCBzY3JhdGNoKTsKICAgICAgICAgICAg
IG1hdGVyaWFsaXplRG91YmxlRW5jb2RlT2Zmc2V0KGRvdWJsZUVuY29kZU9mZnNldEdQUlJlZyk7
CiAgICAgICAgICAgICBqaXQuYWRkNjQoZG91YmxlRW5jb2RlT2Zmc2V0R1BSUmVnLCBzY3JhdGNo
KTsKICAgICAgICAgICAgIGppdC5zdG9yZTY0KHNjcmF0Y2gsIGNhbGxlZUZyYW1lLndpdGhPZmZz
ZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsKKyNlbHNlCisgICAgICAgICAgICBqaXQuc3RvcmVEb3Vi
bGUoZnByUmVnLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSk7Cisj
ZW5kaWYKICAgICAgICAgICAgIGNhbGxlZUZyYW1lT2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7
CiAgICAgICAgICAgICArK21hcnNoYWxsZWRGUFJzOwogICAgICAgICB9OwpAQCAtMTg5LDcgKzIw
NCw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBC
aW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5k
OjpJMzI6CiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6IHsKICAgICAgICAgICAgICAg
ICAvLyBTa2lwcGVkOiBoYW5kbGVkIGFib3ZlLgotICAgICAgICAgICAgICAgIGlmIChtYXJzaGFs
bGVkR1BScyA+PSB3YXNtQ0MuZ3ByQXJncy5zaXplKCkpCisgICAgICAgICAgICAgICAgaWYgKG1h
cnNoYWxsZWRHUFJzID49IHdhc21DQy5qc3JBcmdzLnNpemUoKSkKICAgICAgICAgICAgICAgICAg
ICAgZnJPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKICAgICAgICAgICAgICAgICArK21hcnNo
YWxsZWRHUFJzOwogICAgICAgICAgICAgICAgIGNhbGxlZUZyYW1lT2Zmc2V0ICs9IHNpemVvZihS
ZWdpc3Rlcik7CkBAIC0xOTgsNyArMjEzLDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAg
ICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjogewogICAgICAgICAgICAgICAgIEZQUlJlZyBm
cHJSZWc7CiAgICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRGUFJzIDwgd2FzbUNDLmZwckFy
Z3Muc2l6ZSgpKQotICAgICAgICAgICAgICAgICAgICBmcHJSZWcgPSB3YXNtQ0MuZnByQXJnc1tt
YXJzaGFsbGVkRlBSc10uZnByKCk7CisgICAgICAgICAgICAgICAgICAgIGZwclJlZyA9IHdhc21D
Qy5mcHJBcmdzW21hcnNoYWxsZWRGUFJzXTsKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAg
ICAgICAgICAgICAgICAgLy8gV2UndmUgYWxyZWFkeSBzcGlsbGVkIGFsbCBhcmd1bWVudHMsIHRo
ZXNlIHJlZ2lzdGVycyBhcmUgYXZhaWxhYmxlIGFzIHNjcmF0Y2guCiAgICAgICAgICAgICAgICAg
ICAgIGZwclJlZyA9IEZQUkluZm86OmFyZ3VtZW50RlBSMDsKQEAgLTIxMiw3ICsyMjcsNyBAQCBF
eHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0Zh
aWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OiB7
CiAgICAgICAgICAgICAgICAgRlBSUmVnIGZwclJlZzsKICAgICAgICAgICAgICAgICBpZiAobWFy
c2hhbGxlZEZQUnMgPCB3YXNtQ0MuZnByQXJncy5zaXplKCkpCi0gICAgICAgICAgICAgICAgICAg
IGZwclJlZyA9IHdhc21DQy5mcHJBcmdzW21hcnNoYWxsZWRGUFJzXS5mcHIoKTsKKyAgICAgICAg
ICAgICAgICAgICAgZnByUmVnID0gd2FzbUNDLmZwckFyZ3NbbWFyc2hhbGxlZEZQUnNdOwogICAg
ICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBhbHJlYWR5
IHNwaWxsZWQgYWxsIGFyZ3VtZW50cywgdGhlc2UgcmVnaXN0ZXJzIGFyZSBhdmFpbGFibGUgYXMg
c2NyYXRjaC4KICAgICAgICAgICAgICAgICAgICAgZnByUmVnID0gRlBSSW5mbzo6YXJndW1lbnRG
UFIwOwpAQCAtMjM0LDEyICsyNDksMTUgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVm
PFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAg
ICAgdW5zaWduZWQgY2FsbGVlRnJhbWVPZmZzZXQgPSBDYWxsRnJhbWVTbG90OjpmaXJzdEFyZ3Vt
ZW50ICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKTsKICAgICAgICAgZm9yICh1
bnNpZ25lZCBhcmdOdW0gPSAwOyBhcmdOdW0gPCBhcmdDb3VudDsgKythcmdOdW0pIHsKICAgICAg
ICAgICAgIGlmIChzaWduYXR1cmUuYXJndW1lbnRUeXBlKGFyZ051bSkuaXNJNjQoKSkgewotICAg
ICAgICAgICAgICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZShHUFJJbmZvOjphcmd1bWVu
dEdQUjApOwotICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoY2FsbGVlRnJhbWUud2l0aE9mZnNl
dChjYWxsZWVGcmFtZU9mZnNldCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Ci0gICAgICAgICAg
ICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0lu
dCk+KEdQUkluZm86OmFyZ3VtZW50R1BSMCwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAg
ICAgICAgICAgICB1c2luZyBPcGVyYXRpb24gPSBkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9C
aWdJbnQpOworICAgICAgICAgICAgICAgIGNvbnN0ZXhwciBHUFJSZWcgd2FzbUluc3RhbmNlR1BS
ID0gcHJlZmVycmVkQXJndW1lbnRHUFI8T3BlcmF0aW9uLCAxPigpOworICAgICAgICAgICAgICAg
IGNvbnN0ZXhwciBKU1ZhbHVlUmVncyB2YWx1ZUpTUiA9IHByZWZlcnJlZEFyZ3VtZW50SlNSPE9w
ZXJhdGlvbiwgMj4oKTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFu
Y2Uod2FzbUluc3RhbmNlR1BSKTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGNhbGxl
ZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpLCB2YWx1ZUpTUik7CisgICAgICAg
ICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPE9wZXJhdGlvbj4od2FzbUluc3RhbmNlR1BSLCB2
YWx1ZUpTUik7CiAgICAgICAgICAgICAgICAgYXV0byBjYWxsID0gaml0LmNhbGwoT3BlcmF0aW9u
UHRyVGFnKTsKICAgICAgICAgICAgICAgICBleGNlcHRpb25DaGVja3MuYXBwZW5kKGppdC5lbWl0
SnVtcElmRXhjZXB0aW9uKHZtKSk7Ci0gICAgICAgICAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5m
bzo6cmV0dXJuVmFsdWVHUFIsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZz
ZXQpKTsKKyAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1JJbmZvOjpyZXR1cm5WYWx1
ZUpTUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCkpOwogICAgICAg
ICAgICAgICAgIGppdC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsK
ICAgICAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKGNhbGwsIEZ1bmN0aW9uUHRyPE9w
ZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KSk7CiAgICAgICAgICAgICAg
ICAgfSk7CkBAIC0yNTEsMTYgKzI2OSwyMiBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVS
ZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAg
IGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZShHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAg
IGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjphcmd1bWVudEdQUjAs
IEluc3RhbmNlOjpvZmZzZXRPZk93bmVyKCkpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAg
IGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjphcmd1bWVudEdQUjAs
IEpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6b2Zmc2V0T2ZNb2R1bGUoKSksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7Ci0gICAgaml0LmVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihHUFJJbmZvOjphcmd1
bWVudEdQUjAsIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7Ci0KLSAgICBHUFJSZWcgaW1wb3J0SlND
ZWxsR1BSUmVnID0gR1BSSW5mbzo6cmVnVDA7IC8vIENhbGxlZSBuZWVkcyB0byBiZSBpbiByZWdU
MCBmb3Igc2xvdyBwYXRoIGJlbG93LgorICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBjYWxsZWVT
bG90IHsgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAg
KiBzaXplb2YoUmVnaXN0ZXIpIH07CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OmFyZ3VtZW50
R1BSMCwgY2FsbGVlU2xvdCk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBqaXQuc3RvcmUz
MihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgY2FsbGVlU2xv
dC53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworI2VuZGlmCiAKKyAgICAvLyBqc0FyZzEwIG1pZ2h0
IG92ZXJsYXAgd2l0aCByZWdUMCwgc28gc3RvcmUgJ3RoaXMnIGFyZ3VtZW50IGZpcnN0CisgICAg
aml0LnN0b3JlVmFsdWUoanNVbmRlZmluZWQoKSwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxs
RnJhbWVTbG90Ojp0aGlzQXJndW1lbnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3Rl
cikpKSwganNBcmcxMCk7CisgICAgY29uc3RleHByIEdQUlJlZyBpbXBvcnRKU0NlbGxHUFJSZWcg
PSBHUFJJbmZvOjpyZWdUMDsgLy8gQ2FsbGVlIG5lZWRzIHRvIGJlIGluIHJlZ1QwIGZvciBzbG93
IHBhdGggYmVsb3cuCiAgICAgQVNTRVJUKCF3YXNtQ0MuY2FsbGVlU2F2ZVJlZ2lzdGVycy5nZXQo
aW1wb3J0SlNDZWxsR1BSUmVnKSk7CiAgICAgbWF0ZXJpYWxpemVJbXBvcnRKU0NlbGwoaml0LCBp
bXBvcnRJbmRleCwgaW1wb3J0SlNDZWxsR1BSUmVnKTsKLQotICAgIGppdC5zdG9yZTY0KGltcG9y
dEpTQ2VsbEdQUlJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90OjpjYWxs
ZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CisgICAgaml0LnN0b3Jl
UHRyKGltcG9ydEpTQ2VsbEdQUlJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVT
bG90OjpjYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CisjaWYg
VVNFKEpTVkFMVUUzMl82NCkKKyAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVT
bG90OjpjYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgVGFnT2Zm
c2V0KSk7CisjZW5kaWYKICAgICBqaXQuc3RvcmUzMihKSVQ6OlRydXN0ZWRJbW0zMihudW1iZXJP
ZlBhcmFtZXRlcnMpLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OmFyZ3Vt
ZW50Q291bnRJbmNsdWRpbmdUaGlzICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIp
KSArIFBheWxvYWRPZmZzZXQpKTsKLSAgICBqaXQuc3RvcmU2NChKSVQ6OlRydXN0ZWRJbW02NChK
U1ZhbHVlOjpWYWx1ZVVuZGVmaW5lZCksIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoQ2FsbEZyYW1l
U2xvdDo6dGhpc0FyZ3VtZW50ICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkp
OwogCiAgICAgLy8gRklYTUUgVGFpbCBjYWxsIGlmIHRoZSB3YXNtIHJldHVybiB0eXBlIGlzIHZv
aWQgYW5kIG5vIHJlZ2lzdGVycyB3ZXJlIHNwaWxsZWQuIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjU0ODgKIApAQCAtMjg1LDExICszMDksMTEgQEAgRXhwZWN0ZWQ8
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3
YXNtVG9KUyhWTSYgdm0KICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OiB7CiAgICAgICAgICAg
ICAvLyBGSVhNRTogT3B0aW1pemUgSTY0IGV4dHJhY3Rpb24gZnJvbSBCaWdJbnQuCiAgICAgICAg
ICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMDUzCi0g
ICAgICAgICAgICBHUFJSZWcgZGVzdCA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmdwcigpOwot
ICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRU
b0k2NCk+KEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdz
IGRlc3QgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5qc3IoKTsKKyAgICAgICAgICAgIGppdC5z
ZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9JNjQpPihKU1JJbmZvOjpy
ZXR1cm5WYWx1ZUpTUik7CiAgICAgICAgICAgICBhdXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRp
b25QdHJUYWcpOwogICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1
bXBJZkV4Y2VwdGlvbih2bSkpOwotICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIsIGRlc3QpOworICAgICAgICAgICAgaml0Lm1vdmVWYWx1ZVJlZ3MoSlNSSW5mbzo6
cmV0dXJuVmFsdWVKU1IsIGRlc3QpOwogCiAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soWz1d
IChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5s
aW5rKGNhbGwsIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQ29udmVydFRv
STY0KSk7CkBAIC0yOTksMTggKzMyMywyMSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVS
ZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpJMzI6IHsKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVt
cExpc3QgZG9uZTsKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3Qgc2xvd1BhdGg7
Ci0gICAgICAgICAgICBHUFJSZWcgZGVzdCA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmdwcigp
OworICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgZGVzdEpTUiA9IHdhc21DYWxsSW5mby5yZXN1bHRz
WzBdLmpzcigpOwogCi0gICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90
TnVtYmVyKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpKTsK
LSAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMihKU1ZhbHVl
UmVncyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycykpOwot
ICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQ
UiwgZGVzdCk7CisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVt
YmVyKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBqaXQuc2NyYXRjaFJlZ2lzdGVyKCksIERvTm90
SGF2ZVRhZ1JlZ2lzdGVycykpOworICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFu
Y2hJZk5vdEludDMyKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBEb05vdEhhdmVUYWdSZWdpc3Rl
cnMpKTsKKyAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoSlNSSW5mbzo6cmV0dXJu
VmFsdWVKU1IucGF5bG9hZEdQUigpLCBkZXN0SlNSLnBheWxvYWRHUFIoKSk7CiAgICAgICAgICAg
ICBkb25lLmFwcGVuZChqaXQuanVtcCgpKTsKIAogICAgICAgICAgICAgc2xvd1BhdGgubGluaygm
aml0KTsKLSAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25D
b252ZXJ0VG9JMzIpPihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgICAgICBqaXQu
c2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvSTMyKT4oSlNSSW5mbzo6
cmV0dXJuVmFsdWVKU1IpOwogICAgICAgICAgICAgYXV0byBjYWxsID0gaml0LmNhbGwoT3BlcmF0
aW9uUHRyVGFnKTsKICAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRK
dW1wSWZFeGNlcHRpb24odm0pKTsKLSAgICAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVy
blZhbHVlR1BSLCBkZXN0KTsKKyAgICAgICAgICAgIGppdC5tb3ZlKEpTUkluZm86OnJldHVyblZh
bHVlSlNSLnBheWxvYWRHUFIoKSwgZGVzdEpTUi5wYXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZB
TFVFMzJfNjQpCisgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
MigwKSwgZGVzdEpTUi50YWdHUFIoKSk7CisjZW5kaWYKIAogICAgICAgICAgICAgaml0LmFkZExp
bmtUYXNrKFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewogICAgICAgICAgICAgICAgIGxp
bmtCdWZmZXIubGluayhjYWxsLCBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlv
bkNvbnZlcnRUb0kzMikpOwpAQCAtMzIwLDIzICszNDcsMjYgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhW
TSYgdm0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgVHlwZUtp
bmQ6OkYzMjogewotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBkb25lOwogICAg
ICAgICAgICAgRlBSUmVnIGRlc3QgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5mcHIoKTsKIAot
ICAgICAgICAgICAgYXV0byBub3RBTnVtYmVyID0gaml0LmJyYW5jaElmTm90TnVtYmVyKEdQUklu
Zm86OnJldHVyblZhbHVlR1BSLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwotICAgICAgICAgICAg
YXV0byBpc0RvdWJsZSA9IGppdC5icmFuY2hJZk5vdEludDMyKEpTVmFsdWVSZWdzKEdQUkluZm86
OnJldHVyblZhbHVlR1BSKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgICAgIEND
YWxsSGVscGVyczo6SnVtcExpc3QgZG9uZTsKKyAgICAgICAgICAgIGF1dG8gbm90QU51bWJlciA9
IGppdC5icmFuY2hJZk5vdE51bWJlcihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgaml0LnNjcmF0
Y2hSZWdpc3RlcigpLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworICAgICAgICAgICAgYXV0byBp
c0RvdWJsZSA9IGppdC5icmFuY2hJZk5vdEludDMyKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBE
b05vdEhhdmVUYWdSZWdpc3RlcnMpOwogICAgICAgICAgICAgLy8gV2UncmUgYW4gaW50MzIKLSAg
ICAgICAgICAgIGppdC5zaWduRXh0ZW5kMzJUb1B0cihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwg
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwotICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQ2NFRv
RmxvYXQoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOworICAgICAgICAgICAgaml0LmNv
bnZlcnRJbnQzMlRvRmxvYXQoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOwogICAgICAg
ICAgICAgZG9uZS5hcHBlbmQoaml0Lmp1bXAoKSk7CiAKICAgICAgICAgICAgIGlzRG91YmxlLmxp
bmsoJmppdCk7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgICAgIGppdC51bmJveERvdWJs
ZVdpdGhvdXRBc3NlcnRpb25zKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZXR1
cm5WYWx1ZUdQUjIsIGRlc3QsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisjZWxzZQorICAgICAg
ICAgICAgaml0LnVuYm94RG91YmxlKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBkZXN0KTsKKyNl
bmRpZgogICAgICAgICAgICAgaml0LmNvbnZlcnREb3VibGVUb0Zsb2F0KGRlc3QsIGRlc3QpOwog
ICAgICAgICAgICAgZG9uZS5hcHBlbmQoaml0Lmp1bXAoKSk7CiAKICAgICAgICAgICAgIG5vdEFO
dW1iZXIubGluaygmaml0KTsKLSAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlw
ZShvcGVyYXRpb25Db252ZXJ0VG9GMzIpPihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAg
ICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvRjMy
KT4oSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpOwogICAgICAgICAgICAgYXV0byBjYWxsID0gaml0
LmNhbGwoT3BlcmF0aW9uUHRyVGFnKTsKICAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBl
bmQoaml0LmVtaXRKdW1wSWZFeGNlcHRpb24odm0pKTsKICAgICAgICAgICAgIGppdC5tb3ZlKEZQ
UkluZm86OnJldHVyblZhbHVlRlBSICwgZGVzdCk7CkBAIC0zNDksMjIgKzM3OSwyNSBAQCBFeHBl
Y3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1
cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBUeXBlS2luZDo6RjY0OiB7Ci0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBM
aXN0IGRvbmU7CiAgICAgICAgICAgICBGUFJSZWcgZGVzdCA9IHdhc21DYWxsSW5mby5yZXN1bHRz
WzBdLmZwcigpOworICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBkb25lOwogCi0g
ICAgICAgICAgICBhdXRvIG5vdEFOdW1iZXIgPSBqaXQuYnJhbmNoSWZOb3ROdW1iZXIoR1BSSW5m
bzo6cmV0dXJuVmFsdWVHUFIsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7Ci0gICAgICAgICAgICBh
dXRvIGlzRG91YmxlID0gaml0LmJyYW5jaElmTm90SW50MzIoSlNWYWx1ZVJlZ3MoR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIpLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworICAgICAgICAgICAgYXV0
byBub3RBTnVtYmVyID0gaml0LmJyYW5jaElmTm90TnVtYmVyKEpTUkluZm86OnJldHVyblZhbHVl
SlNSLCBqaXQuc2NyYXRjaFJlZ2lzdGVyKCksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAg
ICAgICAgICBhdXRvIGlzRG91YmxlID0gaml0LmJyYW5jaElmTm90SW50MzIoSlNWYWx1ZVJlZ3Mo
SlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwogICAgICAg
ICAgICAgLy8gV2UncmUgYW4gaW50MzIKLSAgICAgICAgICAgIGppdC5zaWduRXh0ZW5kMzJUb1B0
cihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwotICAg
ICAgICAgICAgaml0LmNvbnZlcnRJbnQ2NFRvRG91YmxlKEdQUkluZm86OnJldHVyblZhbHVlR1BS
LCBkZXN0KTsKKyAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CiAgICAgICAgICAgICBkb25lLmFwcGVuZChqaXQuanVtcCgp
KTsKIAogICAgICAgICAgICAgaXNEb3VibGUubGluaygmaml0KTsKKyNpZiBVU0UoSlNWQUxVRTY0
KQogICAgICAgICAgICAgaml0LnVuYm94RG91YmxlV2l0aG91dEFzc2VydGlvbnMoR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJldHVyblZhbHVlR1BSMiwgZGVzdCwgRG9Ob3RIYXZl
VGFnUmVnaXN0ZXJzKTsKKyNlbHNlCisgICAgICAgICAgICBqaXQudW5ib3hEb3VibGUoSlNSSW5m
bzo6cmV0dXJuVmFsdWVKU1IsIGRlc3QpOworI2VuZGlmCiAgICAgICAgICAgICBkb25lLmFwcGVu
ZChqaXQuanVtcCgpKTsKIAogICAgICAgICAgICAgbm90QU51bWJlci5saW5rKCZqaXQpOwotICAg
ICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0Y2
NCk+KEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgICAgIGppdC5zZXR1cEFyZ3Vt
ZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9GNjQpPihKU1JJbmZvOjpyZXR1cm5WYWx1
ZUpTUik7CiAgICAgICAgICAgICBhdXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25QdHJUYWcp
OwogICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1bXBJZkV4Y2Vw
dGlvbih2bSkpOwogICAgICAgICAgICAgaml0Lm1vdmUoRlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIs
IGRlc3QpOwpAQCAtMzc4LDcgKzQxMSw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAg
ICAgIH0KICAgICAgICAgZGVmYXVsdDogIHsKICAgICAgICAgICAgIGlmIChXYXNtOjppc0Z1bmNy
ZWYocmV0dXJuVHlwZSkgfHwgV2FzbTo6aXNFeHRlcm5yZWYocmV0dXJuVHlwZSkpCi0gICAgICAg
ICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIHdhc21DYWxsSW5mby5y
ZXN1bHRzWzBdLmdwcigpKTsKKyAgICAgICAgICAgICAgICBqaXQubW92ZVZhbHVlUmVncyhKU1JJ
bmZvOjpyZXR1cm5WYWx1ZUpTUiwgd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uanNyKCkpOwogICAg
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIC8vIEZvciB0aGUgSmF2YVNjcmlwdCBlbWJl
ZGRpbmcsIGltcG9ydHMgd2l0aCB0aGVzZSB0eXBlcyBpbiB0aGVpciB0eXBlIGRlZmluaXRpb24g
cmV0dXJuIGFyZSBhIFdlYkFzc2VtYmx5Lk1vZHVsZSB2YWxpZGF0aW9uIGVycm9yLgogICAgICAg
ICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zOTIsMTIgKzQyNSwy
OSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmlu
ZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgaml0LmxvYWRXYXNtQ29u
dGV4dEluc3RhbmNlKHdhc21Db250ZXh0SW5zdGFuY2VHUFIpOwogICAgICAgICB9CiAKLSAgICAg
ICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzKT4o
d2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZ0eXBl
RGVmaW5pdGlvbiksIEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBDQ2FsbEhlbHBlcnM6OnN0YWNr
UG9pbnRlclJlZ2lzdGVyLCBDQ2FsbEhlbHBlcnM6OmZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKKyAg
ICAgICAgY29uc3RleHByIEdQUlJlZyBzYXZlZFJlc3VsdHNHUFIgPSBwcmVmZXJyZWRBcmd1bWVu
dEdQUjxkZWNsdHlwZShvcGVyYXRpb25JdGVyYXRlUmVzdWx0cyksIDQ+KCk7CisgICAgICAgIGpp
dC5tb3ZlKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0c0dQ
Uik7CisgICAgICAgIGlmIGNvbnN0ZXhwciAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwp
CisgICAgICAgICAgICBqaXQuc3ViUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKG1heEZy
YW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdp
c3Rlcik7CisgICAgICAgIHN0YXRpY19hc3NlcnQobm9PdmVybGFwKHNhdmVkUmVzdWx0c0dQUiwg
SlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpKTsKKyAgICAgICAgQVNTRVJUKHdhc21Db250ZXh0SW5z
dGFuY2VHUFIgIT0gc2F2ZWRSZXN1bHRzR1BSKTsKKyAgICAgICAgaml0LnNldHVwQXJndW1lbnRz
PGRlY2x0eXBlKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzKT4od2FzbUNvbnRleHRJbnN0YW5jZUdQ
UiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZ0eXBlRGVmaW5pdGlvbiksIEpTUkluZm86
OnJldHVyblZhbHVlSlNSLCBzYXZlZFJlc3VsdHNHUFIsIENDYWxsSGVscGVyczo6ZnJhbWVQb2lu
dGVyUmVnaXN0ZXIpOwogICAgICAgICBqaXQuY2FsbE9wZXJhdGlvbihGdW5jdGlvblB0cjxPcGVy
YXRpb25QdHJUYWc+KG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzKSk7CisgICAgICAgIGlmIGNvbnN0
ZXhwciAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAgICBqaXQuYWRk
UHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhD
YWxsKSwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisKICAgICAgICAgZXhj
ZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1bXBJZkV4Y2VwdGlvbih2bSkpOwogCi0gICAg
ICAgIGZvciAoUmVnaXN0ZXJBdE9mZnNldCBsb2NhdGlvbiA6IHNhdmVkUmVzdWx0UmVnaXN0ZXJz
KQotICAgICAgICAgICAgaml0LmxvYWQ2NFRvUmVnKENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2Fs
bEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBsb2NhdGlvbi5vZmZzZXQoKSksIGxvY2F0
aW9uLnJlZygpKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpZ25hdHVyZS5y
ZXR1cm5Db3VudCgpOyArK2kpIHsKKyAgICAgICAgICAgIFZhbHVlTG9jYXRpb24gbG9jID0gd2Fz
bUNhbGxJbmZvLnJlc3VsdHNbaV07CisgICAgICAgICAgICBpZiAobG9jLmlzR1BSKCkpIHsKKyNp
ZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgIEFTU0VSVChzYXZlZFJlc3VsdFJl
Z2lzdGVycy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSArIDQgPT0gc2F2
ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkudGFnR1BSKCkpLT5vZmZzZXQoKSk7Cisj
ZW5kaWYKKyAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKENDYWxsSGVscGVyczo6QWRkcmVz
cyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJlc3VsdFJlZ2lzdGVy
cy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSksIGxvYy5qc3IoKSk7Cisg
ICAgICAgICAgICB9IGVsc2UgaWYgKGxvYy5pc0ZQUigpKQorICAgICAgICAgICAgICAgIGppdC5s
b2FkRG91YmxlKENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRl
clJlZ2lzdGVyLCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5mcHIoKSktPm9mZnNldCgp
KSwgbG9jLmZwcigpKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGppdC5lbWl0RnVuY3Rpb25F
cGlsb2d1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseUZ1bmN0aW9uLmNwcAppbmRleCBjNGQyYjk2YzI5MzA3MTU1MWY5NmI4ZmE0ZGNlYWY1
MDk1YTA5Yjk1Li40MGZkMzcxYjAyNzgzMmQ2ODQ0MjM4MDczNzcyNDAwMTVhNmFjYTk4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0
aW9uLmNwcApAQCAtMTU3LDYgKzE1Nyw5IEBAIHB0cmRpZmZfdCBXZWJBc3NlbWJseUZ1bmN0aW9u
OjpwcmV2aW91c0luc3RhbmNlT2Zmc2V0KCkgY29uc3QKIHsKICAgICBwdHJkaWZmX3QgcmVzdWx0
ID0gY2FsbGVlU2F2ZXMoKS5udW1iZXJPZlNldFJlZ2lzdGVycygpICogc2l6ZW9mKENQVVJlZ2lz
dGVyKTsKICAgICByZXN1bHQgPSAtcmVzdWx0IC0gc2l6ZW9mKENQVVJlZ2lzdGVyKTsKKyNpZiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgIEFTU0VSVCghY2FsbGVlU2F2ZXMoKS5udW1iZXJPZlNldEZQ
UnMoKSk7IC8vIEJlY2F1c2UgRlBScyBhcmUgd2lkZXIgdGhhbiBzaXplb2YoQ1BVUmVnaXN0ZXIp
CisjZW5kaWYKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgIHB0cmRpZmZfdCBtaW5PZmZzZXQgPSAx
OwogICAgIGZvciAoY29uc3QgUmVnaXN0ZXJBdE9mZnNldCYgcmVnQXRPZmZzZXQgOiB1c2VkQ2Fs
bGVlU2F2ZVJlZ2lzdGVycygpKSB7CkBAIC0xODYsMTcgKzE4OSwxNSBAQCBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlw
b2ludFNsb3coKQogICAgIGNvbnN0IGF1dG8mIHBpbm5lZFJlZ3MgPSBXYXNtOjpQaW5uZWRSZWdp
c3RlckluZm86OmdldCgpOwogICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IHJlZ2lzdGVyc1RvU3Bp
bGwgPSB1c2VkQ2FsbGVlU2F2ZVJlZ2lzdGVycygpOwogCi0gICAgYXV0byYgbW9kdWxlSW5mb3Jt
YXRpb24gPSBpbnN0YW5jZSgpLT5pbnN0YW5jZSgpLm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9u
KCk7Ci0KICAgICBjb25zdCBXYXNtOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb24mIHdhc21DQyA9IFdh
c206Ondhc21DYWxsaW5nQ29udmVudGlvbigpOwogICAgIFdhc206OkNhbGxJbmZvcm1hdGlvbiB3
YXNtQ2FsbEluZm8gPSB3YXNtQ0MuY2FsbEluZm9ybWF0aW9uRm9yKHR5cGVEZWZpbml0aW9uKTsK
ICAgICBXYXNtOjpDYWxsSW5mb3JtYXRpb24ganNDYWxsSW5mbyA9IFdhc206OmpzQ2FsbGluZ0Nv
bnZlbnRpb24oKS5jYWxsSW5mb3JtYXRpb25Gb3IodHlwZURlZmluaXRpb24sIFdhc206OkNhbGxS
b2xlOjpDYWxsZWUpOwogICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IHNhdmVkUmVzdWx0UmVnaXN0
ZXJzID0gd2FzbUNhbGxJbmZvLmNvbXB1dGVSZXN1bHRzT2Zmc2V0TGlzdCgpOwogCi0gICAgdW5z
aWduZWQgdG90YWxGcmFtZVNpemUgPSByZWdpc3RlcnNUb1NwaWxsLnNpemUoKSAqIHNpemVvZihD
UFVSZWdpc3Rlcik7CisgICAgdW5zaWduZWQgdG90YWxGcmFtZVNpemUgPSByZWdpc3RlcnNUb1Nw
aWxsLnNpemVPZkFyZWFJbkJ5dGVzKCk7CiAgICAgdG90YWxGcmFtZVNpemUgKz0gc2l6ZW9mKENQ
VVJlZ2lzdGVyKTsgLy8gU2xvdCBmb3IgdGhlIFZNJ3MgcHJldmlvdXMgd2FzbSBpbnN0YW5jZS4K
ICAgICB0b3RhbEZyYW1lU2l6ZSArPSB3YXNtQ2FsbEluZm8uaGVhZGVyQW5kQXJndW1lbnRTdGFj
a1NpemVJbkJ5dGVzOwotICAgIHRvdGFsRnJhbWVTaXplICs9IHNhdmVkUmVzdWx0UmVnaXN0ZXJz
LnNpemUoKSAqIHNpemVvZihDUFVSZWdpc3Rlcik7CisgICAgdG90YWxGcmFtZVNpemUgKz0gc2F2
ZWRSZXN1bHRSZWdpc3RlcnMuc2l6ZU9mQXJlYUluQnl0ZXMoKTsKIAogICAgIC8vIEZJWE1FOiBP
cHRpbWl6ZSBXYXNtIGZ1bmN0aW9uIGNhbGwgZXZlbiBpZiBhcmd1bWVudHMgaW5jbHVkZSBJNjQu
CiAgICAgLy8gVGhpcyByZXF1aXJlcyBJNjQgZXh0cmFjdGlvbiBmcm9tIEJpZ0ludC4KQEAgLTIx
Niw5ICsyMTcsMTQgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFz
c2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAgICAgaml0LnN0b3Jl
UHRyKHJlZywgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVy
LCBvZmZzZXQpKTsKICAgICB9CiAKLSAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IFdhc206Ondhc21D
YWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMV07Ci0gICAgYm9vbCBzdGFj
a0xpbWl0R1BSSXNDbG9iYmVyZWQgPSBmYWxzZTsKKyAgICBKU1ZhbHVlUmVncyBzY3JhdGNoSlNS
IHsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZl
bnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzJdLAorI2VuZGlmCisgICAgICAgIFdhc206Ondh
c21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMV0KKyAgICB9OwogICAg
IEdQUlJlZyBzdGFja0xpbWl0R1BSID0gV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJv
bG9ndWVTY3JhdGNoR1BSc1swXTsKKyAgICBib29sIHN0YWNrTGltaXRHUFJJc0Nsb2JiZXJlZCA9
IGZhbHNlOwogICAgIGppdC5sb2FkUHRyKHZtLmFkZHJlc3NPZlNvZnRTdGFja0xpbWl0KCksIHN0
YWNrTGltaXRHUFIpOwogCiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBzbG93UGF0aDsKQEAg
LTIzNyw3ICsyNDMsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2Vi
QXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgICAgICBqaXQuZW1p
dE1hdGVyaWFsaXplVGFnQ2hlY2tSZWdpc3RlcnMoKTsKIAogICAgIC8vIExvb3AgYmFja3dhcmRz
IHNvIHdlIGNhbiB1c2UgdGhlIGZpcnN0IGZsb2F0aW5nIHBvaW50IGFyZ3VtZW50IGFzIGEgc2Ny
YXRjaC4KLSAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IFdhc206Ondhc21DYWxsaW5nQ29udmVudGlv
bigpLmZwckFyZ3NbMF0uZnByKCk7CisgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBXYXNtOjp3YXNt
Q2FsbGluZ0NvbnZlbnRpb24oKS5mcHJBcmdzWzBdOwogICAgIGZvciAodW5zaWduZWQgaSA9IHNp
Z25hdHVyZS5hcmd1bWVudENvdW50KCk7IGktLTspIHsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzIGNhbGxlZUZyYW1lID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVy
OjpzdGFja1BvaW50ZXJSZWdpc3RlciwgMCk7CiAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVz
cyBqc1BhcmFtKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBqc0NhbGxJbmZvLnBhcmFtc1tp
XS5vZmZzZXRGcm9tRlAoKSk7CkBAIC0yNDYsMTIgKzI1MiwyMCBAQCBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2lu
dFNsb3coKQogICAgICAgICBhdXRvIHR5cGUgPSBzaWduYXR1cmUuYXJndW1lbnRUeXBlKGkpOwog
ICAgICAgICBzd2l0Y2ggKHR5cGUua2luZCkgewogICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5k
OjpJMzI6IHsKLSAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQUik7Ci0g
ICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIoc2NyYXRjaEdQ
UikpOwotICAgICAgICAgICAgaWYgKGlzU3RhY2spCi0gICAgICAgICAgICAgICAgaml0LnN0b3Jl
MzIoc2NyYXRjaEdQUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1z
W2ldLm9mZnNldEZyb21TUCgpKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
aml0Lnplcm9FeHRlbmQzMlRvV29yZChzY3JhdGNoR1BSLCB3YXNtQ2FsbEluZm8ucGFyYW1zW2ld
LmdwcigpKTsKKyAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQYXJhbSwgc2NyYXRjaEpTUik7
CisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIoc2NyYXRj
aEpTUikpOworICAgICAgICAgICAgaWYgKGlzU3RhY2spIHsKKyAgICAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MgYWRkciB7IGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJ
bmZvLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkgfTsKKyAgICAgICAgICAgICAgICBqaXQuc3Rv
cmUzMihzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgYWRkci53aXRoT2Zmc2V0KFBheWxvYWRPZmZz
ZXQpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgIGppdC5zdG9yZTMy
KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCBhZGRyLndpdGhPZmZzZXQoVGFnT2Zmc2V0
KSk7CisjZW5kaWYKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaml0Lnpl
cm9FeHRlbmQzMlRvV29yZChzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgd2FzbUNhbGxJbmZvLnBh
cmFtc1tpXS5qc3IoKS5wYXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
ICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMCksIHdhc21D
YWxsSW5mby5wYXJhbXNbaV0uanNyKCkudGFnR1BSKCkpOworI2VuZGlmCisgICAgICAgICAgICB9
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFdhc206OlR5cGVL
aW5kOjpSZWY6CkBAIC0yNjAsMjcgKzI3NCwyNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNF
bnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQog
ICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpFeHRlcm5yZWY6IHsKICAgICAgICAgICAgIGlm
ICghV2FzbTo6aXNFeHRlcm5yZWYodHlwZSkpIHsKICAgICAgICAgICAgICAgICAvLyBFbnN1cmUg
d2UgaGF2ZSBhIFdBU00gZXhwb3J0ZWQgZnVuY3Rpb24uCi0gICAgICAgICAgICAgICAgaml0Lmxv
YWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAgICBhdXRvIGlzTnVsbCA9
IGppdC5icmFuY2hJZk51bGwoc2NyYXRjaEdQUik7CisgICAgICAgICAgICAgICAgaml0LmxvYWRW
YWx1ZShqc1BhcmFtLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAgICAgICBhdXRvIGlzTnVsbCA9
IGppdC5icmFuY2hJZk51bGwoc2NyYXRjaEpTUik7CiAgICAgICAgICAgICAgICAgaWYgKCF0eXBl
LmlzTnVsbGFibGUoKSkKICAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGlzTnVs
bCk7Ci0gICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdENlbGwo
c2NyYXRjaEdQUikpOworICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNo
SWZOb3RDZWxsKHNjcmF0Y2hKU1IpKTsKIAogICAgICAgICAgICAgICAgIHN0YWNrTGltaXRHUFJJ
c0Nsb2JiZXJlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgaml0LmVtaXRMb2FkU3RydWN0dXJl
KHZtLCBzY3JhdGNoR1BSLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAgICBqaXQubG9hZFB0
cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgU3RydWN0dXJlOjpjbGFzc0luZm9P
ZmZzZXQoKSksIHNjcmF0Y2hHUFIpOworICAgICAgICAgICAgICAgIGppdC5lbWl0TG9hZFN0cnVj
dHVyZSh2bSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigp
KTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2Ny
YXRjaEpTUi5wYXlsb2FkR1BSKCksIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBzY3Jh
dGNoSlNSLnBheWxvYWRHUFIoKSk7CiAKICAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0
ZDo6aXNfZmluYWw8V2ViQXNzZW1ibHlGdW5jdGlvbj46OnZhbHVlLCAiV2UgZG8gbm90IGNoZWNr
IGZvciBzdWJ0eXBlcyBiZWxvdyIpOwogICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3Rk
Ojppc19maW5hbDxXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbj46OnZhbHVlLCAiV2UgZG8gbm90
IGNoZWNrIGZvciBzdWJ0eXBlcyBiZWxvdyIpOwogCi0gICAgICAgICAgICAgICAgYXV0byBpc1dh
c21GdW5jdGlvbiA9IGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgc2NyYXRjaEdQ
UiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKFdlYkFzc2VtYmx5RnVuY3Rpb246OmluZm8o
KSkpOwotICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoUHRyKENDYWxs
SGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0
cihXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6aW5mbygpKSkpOworICAgICAgICAgICAgICAg
IGF1dG8gaXNXYXNtRnVuY3Rpb24gPSBqaXQuYnJhbmNoUHRyKENDYWxsSGVscGVyczo6RXF1YWws
IHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoV2Vi
QXNzZW1ibHlGdW5jdGlvbjo6aW5mbygpKSk7CisgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBw
ZW5kKGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEpTUi5wYXls
b2FkR1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihXZWJBc3NlbWJseVdyYXBwZXJG
dW5jdGlvbjo6aW5mbygpKSkpOwogCiAgICAgICAgICAgICAgICAgaXNXYXNtRnVuY3Rpb24ubGlu
aygmaml0KTsKICAgICAgICAgICAgICAgICBpZiAoV2FzbTo6aXNSZWZXaXRoVHlwZUluZGV4KHR5
cGUpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQ
Uik7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVz
cyhzY3JhdGNoR1BSLCBXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZTo6b2Zmc2V0T2ZTaWduYXR1cmVJ
bmRleCgpKSwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVu
ZChqaXQuYnJhbmNoUHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbVB0cih0eXBlLmluZGV4KSkpOworICAgICAgICAgICAgICAgICAg
ICBqaXQubG9hZFB0cihqc1BhcmFtLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CisgICAgICAg
ICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoSlNS
LnBheWxvYWRHUFIoKSwgV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2U6Om9mZnNldE9mU2lnbmF0dXJl
SW5kZXgoKSksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAgICAgICAg
c2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2Ny
YXRjaEpTUi5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih0eXBlLmlu
ZGV4KSkpOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlmICh0eXBlLmlz
TnVsbGFibGUoKSkKQEAgLTI4OCwxNSArMzAyLDE1IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxK
U0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygp
CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChpc1N0YWNrKSB7Ci0gICAgICAgICAg
ICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgICAgICAgICBq
aXQubG9hZFZhbHVlKGpzUGFyYW0sIHNjcmF0Y2hKU1IpOwogICAgICAgICAgICAgICAgIGlmICgh
dHlwZS5pc051bGxhYmxlKCkpCi0gICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChq
aXQuYnJhbmNoSWZOdWxsKHNjcmF0Y2hHUFIpKTsKLSAgICAgICAgICAgICAgICBqaXQuc3RvcmU2
NChzY3JhdGNoR1BSLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21DYWxsSW5mby5wYXJhbXNb
aV0ub2Zmc2V0RnJvbVNQKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5k
KGppdC5icmFuY2hJZk51bGwoc2NyYXRjaEpTUikpOworICAgICAgICAgICAgICAgIGppdC5zdG9y
ZVZhbHVlKHNjcmF0Y2hKU1IsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBh
cmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBhdXRvIGV4dGVybkdQUiA9IHdhc21DYWxsSW5mby5wYXJhbXNbaV0uZ3ByKCk7Ci0g
ICAgICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBleHRlcm5HUFIpOworICAgICAgICAg
ICAgICAgIGF1dG8gZXh0ZXJuSlNSID0gd2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5qc3IoKTsKKyAg
ICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpzUGFyYW0sIGV4dGVybkpTUik7CiAgICAgICAg
ICAgICAgICAgaWYgKCF0eXBlLmlzTnVsbGFibGUoKSkKLSAgICAgICAgICAgICAgICAgICAgc2xv
d1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk51bGwoZXh0ZXJuR1BSKSk7CisgICAgICAgICAgICAg
ICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOdWxsKGV4dGVybkpTUikpOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTMwNCwzNSArMzE4
LDQxIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1
bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtp
bmQ6OkY2NDogewogICAgICAgICAgICAgaWYgKCFpc1N0YWNrKQogICAgICAgICAgICAgICAgIHNj
cmF0Y2hGUFIgPSB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmZwcigpOwotICAgICAgICAgICAgYXV0
byBtb3ZlVG9EZXN0aW5hdGlvbiA9IFsmXSAoKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGlzU3Rh
Y2spIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHNpZ25hdHVyZS5hcmd1bWVudFR5cGUoaSku
aXNGMzIoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZUZsb2F0KHNjcmF0Y2hG
UFIsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5vZmZzZXRG
cm9tU1AoKSkpOwotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAg
ICAgICBqaXQuc3RvcmVEb3VibGUoc2NyYXRjaEZQUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3
YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSk7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgfTsKIAotICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3Jh
dGNoR1BSKTsKLSAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1i
ZXIoc2NyYXRjaEdQUikpOwotICAgICAgICAgICAgYXV0byBpc0ludDMyID0gaml0LmJyYW5jaElm
SW50MzIoc2NyYXRjaEdQUik7Ci0KLSAgICAgICAgICAgIGppdC51bmJveERvdWJsZShzY3JhdGNo
R1BSLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSKTsKKyAgICAgICAgICAgIGppdC5sb2FkVmFsdWUo
anNQYXJhbSwgc2NyYXRjaEpTUik7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgICAgIHNs
b3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIoc2NyYXRjaEpTUiwgSW52YWxpZEdQ
UlJlZykpOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIHN0YWNrTGltaXRH
UFJJc0Nsb2JiZXJlZCA9IHRydWU7CisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJy
YW5jaElmTm90TnVtYmVyKHNjcmF0Y2hKU1IsIHN0YWNrTGltaXRHUFIpKTsKKyNlbmRpZgorICAg
ICAgICAgICAgYXV0byBpc0ludDMyID0gaml0LmJyYW5jaElmSW50MzIoc2NyYXRjaEpTUik7Cisj
aWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgICAgIGppdC51bmJveERvdWJsZShzY3JhdGNoSlNS
LnBheWxvYWRHUFIoKSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hGUFIpOworI2Vs
aWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIGppdC51bmJveERvdWJsZShzY3JhdGNo
SlNSLCBzY3JhdGNoRlBSKTsKKyNlbmRpZgogICAgICAgICAgICAgaWYgKHNpZ25hdHVyZS5hcmd1
bWVudFR5cGUoaSkuaXNGMzIoKSkKICAgICAgICAgICAgICAgICBqaXQuY29udmVydERvdWJsZVRv
RmxvYXQoc2NyYXRjaEZQUiwgc2NyYXRjaEZQUik7Ci0gICAgICAgICAgICBtb3ZlVG9EZXN0aW5h
dGlvbigpOwogICAgICAgICAgICAgYXV0byBkb25lID0gaml0Lmp1bXAoKTsKIAogICAgICAgICAg
ICAgaXNJbnQzMi5saW5rKCZqaXQpOwogICAgICAgICAgICAgaWYgKHNpZ25hdHVyZS5hcmd1bWVu
dFR5cGUoaSkuaXNGMzIoKSkgewotICAgICAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0Zs
b2F0KHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOwotICAgICAgICAgICAgICAgIG1vdmVUb0Rlc3Rp
bmF0aW9uKCk7CisgICAgICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRmxvYXQoc2NyYXRj
aEpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hGUFIpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9Eb3VibGUoc2NyYXRjaEdQUiwgc2NyYXRj
aEZQUik7Ci0gICAgICAgICAgICAgICAgbW92ZVRvRGVzdGluYXRpb24oKTsKKyAgICAgICAgICAg
ICAgICBqaXQuY29udmVydEludDMyVG9Eb3VibGUoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHNj
cmF0Y2hGUFIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZG9uZS5saW5rKCZqaXQpOwot
CisgICAgICAgICAgICBpZiAoaXNTdGFjaykgeworICAgICAgICAgICAgICAgIENDYWxsSGVscGVy
czo6QWRkcmVzcyBhZGRyIHsgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFy
YW1zW2ldLm9mZnNldEZyb21TUCgpKSB9OworICAgICAgICAgICAgICAgIGlmIChzaWduYXR1cmUu
YXJndW1lbnRUeXBlKGkpLmlzRjMyKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3Jl
RmxvYXQoc2NyYXRjaEZQUiwgYWRkci53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyNpZiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW0zMigwKSwgYWRkci53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworI2Vu
ZGlmCisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9y
ZURvdWJsZShzY3JhdGNoRlBSLCBhZGRyKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CkBAIC0zNDMsNDIgKzM2Myw0NCBAQCBN
YWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6
anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgIC8vIEF0IHRoaXMgcG9pbnQsIHdlJ3JlIGNvbW1p
dHRlZCB0byBkb2luZyBhIGZhc3QgY2FsbC4KIAogICAgIGlmIChXYXNtOjpDb250ZXh0Ojp1c2VG
YXN0VExTKCkpIAotICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uoc2NyYXRjaEdQ
Uik7CisgICAgICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZShzY3JhdGNoSlNSLnBheWxv
YWRHUFIoKSk7CiAgICAgZWxzZQotICAgICAgICBqaXQubG9hZFB0cih2bS53YXNtQ29udGV4dC5w
b2ludGVyVG9JbnN0YW5jZSgpLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgaml0LmxvYWRQdHIodm0u
d2FzbUNvbnRleHQucG9pbnRlclRvSW5zdGFuY2UoKSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkp
OwogICAgIHB0cmRpZmZfdCBwcmV2aW91c0luc3RhbmNlT2Zmc2V0ID0gdGhpcy0+cHJldmlvdXNJ
bnN0YW5jZU9mZnNldCgpOwotICAgIGppdC5zdG9yZVB0cihzY3JhdGNoR1BSLCBDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHByZXZpb3VzSW5zdGFuY2VP
ZmZzZXQpKTsKKyAgICBqaXQuc3RvcmVQdHIoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIENDYWxs
SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgcHJldmlvdXNJbnN0
YW5jZU9mZnNldCkpOwogCi0gICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRy
KCZpbnN0YW5jZSgpLT5pbnN0YW5jZSgpKSwgc2NyYXRjaEdQUik7CisgICAgaml0Lm1vdmUoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZpbnN0YW5jZSgpLT5pbnN0YW5jZSgpKSwgc2NyYXRj
aEpTUi5wYXlsb2FkR1BSKCkpOwogICAgIGlmIChXYXNtOjpDb250ZXh0Ojp1c2VGYXN0VExTKCkp
IAotICAgICAgICBqaXQuc3RvcmVXYXNtQ29udGV4dEluc3RhbmNlKHNjcmF0Y2hHUFIpOworICAg
ICAgICBqaXQuc3RvcmVXYXNtQ29udGV4dEluc3RhbmNlKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigp
KTsKICAgICBlbHNlIHsKLSAgICAgICAgaml0Lm1vdmUoc2NyYXRjaEdQUiwgcGlubmVkUmVncy53
YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlcik7Ci0gICAgICAgIGppdC5zdG9yZVB0cihzY3JhdGNo
R1BSLCB2bS53YXNtQ29udGV4dC5wb2ludGVyVG9JbnN0YW5jZSgpKTsKKyAgICAgICAgaml0Lm1v
dmUoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHBpbm5lZFJlZ3Mud2FzbUNvbnRleHRJbnN0YW5j
ZVBvaW50ZXIpOworICAgICAgICBqaXQuc3RvcmVQdHIoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCks
IHZtLndhc21Db250ZXh0LnBvaW50ZXJUb0luc3RhbmNlKCkpOwogICAgIH0KICAgICBpZiAoc3Rh
Y2tMaW1pdEdQUklzQ2xvYmJlcmVkKQogICAgICAgICBqaXQubG9hZFB0cih2bS5hZGRyZXNzT2ZT
b2Z0U3RhY2tMaW1pdCgpLCBzdGFja0xpbWl0R1BSKTsKLSAgICBqaXQuc3RvcmVQdHIoc3RhY2tM
aW1pdEdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFdhc206Okluc3RhbmNl
OjpvZmZzZXRPZkNhY2hlZFN0YWNrTGltaXQoKSkpOworICAgIGppdC5zdG9yZVB0cihzdGFja0xp
bWl0R1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIFdh
c206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZFN0YWNrTGltaXQoKSkpOwogCi0gICAgaWYgKCEh
bW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5KSB7CisjaWYgIUNQVShBUk0pIC8vIEFSTSBoYXMgbm8g
cGlubmVkIHJlZ2lzdGVycyBmb3IgV2FzbSBNZW1vcnksIHNvIG5vIG5lZWQgdG8gc2V0IHRoZW0g
dXAKKyAgICBpZiAoISFpbnN0YW5jZSgpLT5pbnN0YW5jZSgpLm1vZHVsZSgpLm1vZHVsZUluZm9y
bWF0aW9uKCkubWVtb3J5KSB7CiAgICAgICAgIEdQUlJlZyBiYXNlTWVtb3J5ID0gcGlubmVkUmVn
cy5iYXNlTWVtb3J5UG9pbnRlcjsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2hPckJvdW5kc0NoZWNr
aW5nU2l6ZSA9IEludmFsaWRHUFJSZWc7CiAgICAgICAgIGF1dG8gbW9kZSA9IGluc3RhbmNlKCkt
Pm1lbW9yeU1vZGUoKTsKIAogICAgICAgICBpZiAoaXNBUk02NEUoKSkgewotICAgICAgICAgICAg
aWYgKG1vZGUgIT0gV2FzbTo6TWVtb3J5TW9kZTo6U2lnbmFsaW5nKQorICAgICAgICAgICAgaWYg
KG1vZGUgPT0gV2FzbTo6TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcpCiAgICAgICAgICAgICAg
ICAgc2NyYXRjaE9yQm91bmRzQ2hlY2tpbmdTaXplID0gcGlubmVkUmVncy5ib3VuZHNDaGVja2lu
Z1NpemVSZWdpc3RlcjsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBzY3JhdGNo
T3JCb3VuZHNDaGVja2luZ1NpemUgPSBzdGFja0xpbWl0R1BSOwotICAgICAgICAgICAgaml0Lmxv
YWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFdhc206Okluc3RhbmNlOjpv
ZmZzZXRPZkNhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSgpKSwgc2NyYXRjaE9yQm91bmRzQ2hlY2tp
bmdTaXplKTsKKyAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhz
Y3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkQm91
bmRzQ2hlY2tpbmdTaXplKCkpLCBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUpOwogICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG1vZGUgIT0gV2FzbTo6TWVtb3J5TW9kZTo6U2ln
bmFsaW5nKQotICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVz
cyhzY3JhdGNoR1BSLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHNDaGVja2lu
Z1NpemUoKSksIHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIpOworICAgICAg
ICAgICAgaWYgKG1vZGUgPT0gV2FzbTo6TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcpCisgICAg
ICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hKU1Iu
cGF5bG9hZEdQUigpLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHNDaGVja2lu
Z1NpemUoKSksIHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIpOwogICAgICAg
ICB9CiAKLSAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hH
UFIsIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7
Ci0gICAgICAgIGppdC5jYWdlQ29uZGl0aW9uYWxseUFuZFVudGFnKEdpZ2FjYWdlOjpQcmltaXRp
dmUsIGJhc2VNZW1vcnksIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSwgc2NyYXRjaEdQUik7
CisgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoSlNSLnBh
eWxvYWRHUFIoKSwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNl
TWVtb3J5KTsKKyAgICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5QW5kVW50YWcoR2lnYWNhZ2U6
OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwgc2NyYXRjaE9yQm91bmRzQ2hlY2tpbmdTaXplLCBzY3Jh
dGNoSlNSLnBheWxvYWRHUFIoKSk7CiAgICAgfQorI2VuZGlmCiAKICAgICAvLyBXZSB1c2UgdGhp
cyBjYWxsZWUgdG8gaW5kaWNhdGUgaG93IHRvIHVud2luZCBwYXN0IHRoZXNlIHR5cGVzIG9mIGZy
YW1lczoKICAgICAvLyAxLiBXZSBuZWVkIHRvIGtub3cgd2hlcmUgdG8gZ2V0IGNhbGxlZSBzYXZl
cy4KQEAgLTM5MCw4ICs0MTIsOCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRh
Zz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgIC8vIEZJ
WE1FOiBDdXJyZW50bHkgd2UganVzdCBkbyBhbiBpbmRpcmVjdCBqdW1wLiBCdXQgd2Ugc2hvdWxk
IHRlYWNoIHRoZSBNb2R1bGUKICAgICAvLyBob3cgdG8gcmVwYXRjaCB1czoKICAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NTcwCi0gICAgaml0LmxvYWRQ
dHIoZW50cnlwb2ludExvYWRMb2NhdGlvbigpLCBzY3JhdGNoR1BSKTsKLSAgICBqaXQuY2FsbChz
Y3JhdGNoR1BSLCBXYXNtRW50cnlQdHJUYWcpOworICAgIGppdC5sb2FkUHRyKGVudHJ5cG9pbnRM
b2FkTG9jYXRpb24oKSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOworICAgIGppdC5jYWxsKHNj
cmF0Y2hKU1IucGF5bG9hZEdQUigpLCBXYXNtRW50cnlQdHJUYWcpOwogCiAgICAgbWFyc2hhbGxK
U1Jlc3VsdChqaXQsIHR5cGVEZWZpbml0aW9uLCB3YXNtQ2FsbEluZm8sIHNhdmVkUmVzdWx0UmVn
aXN0ZXJzKTsKIApAQCAtNDIxLDcgKzQ0Myw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0Vu
dHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAg
ICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHRoaXMpLCBHUFJJbmZvOjpy
ZWdUMCk7CiAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAjaWYgQ1BVKEFSTTY0RSkK
LSAgICBqaXQudW50YWdSZXR1cm5BZGRyZXNzKHNjcmF0Y2hHUFIpOworICAgIGppdC51bnRhZ1Jl
dHVybkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOwogI2VuZGlmCiAgICAgYXV0byBq
dW1wVG9Ib3N0Q2FsbFRodW5rID0gaml0Lmp1bXAoKTsKIApAQCAtNDI5LDcgKzQ1MSw3IEBAIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpq
c0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgaWYgKFVOTElLRUxZKGxpbmtCdWZmZXIuZGlkRmFp
bFRvQWxsb2NhdGUoKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgbGlua0J1ZmZl
ci5saW5rKGp1bXBUb0hvc3RDYWxsVGh1bmssIENvZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJU
YWc+KGV4ZWN1dGFibGUoKS0+ZW50cnlwb2ludEZvcihDb2RlRm9yQ2FsbCwgTXVzdENoZWNrQXJp
dHkpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyAgICBsaW5rQnVmZmVyLmxpbmsoanVtcFRvSG9z
dENhbGxUaHVuaywgQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4oZXhlY3V0YWJsZSgp
LT5lbnRyeXBvaW50Rm9yKENvZGVGb3JDYWxsLCBNdXN0Q2hlY2tBcml0eSkpKTsKICAgICBtX2pz
Q2FsbEVudHJ5cG9pbnQgPSBGSU5BTElaRV9XQVNNX0NPREUobGlua0J1ZmZlciwgV2FzbUVudHJ5
UHRyVGFnLCAiSlMtPldhc20gSUMiKTsKICAgICByZXR1cm4gbV9qc0NhbGxFbnRyeXBvaW50LmNv
ZGUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYTIyMWIyZWNiNzEzOGM5
YWZhZjFlMGI0MGY4ZjMwMWIyMDg5M2RkNS4uY2M3Y2JlM2U0Nzg5YjYzMWIwNDU5ZGNjZDFkYWQ3
ZmYxMTU1MDg5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAKQEAgLTE1OCw3ICsxNTgs
NyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJseUdsb2Jh
bCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIFJlZjxXYXNtOjpHbG9iYWw+IHdhc21H
bG9iYWwgPSBXYXNtOjpHbG9iYWw6OmNyZWF0ZSh0eXBlLCBtdXRhYmlsaXR5LCBpbml0aWFsVmFs
dWUpOwogICAgIEpTV2ViQXNzZW1ibHlHbG9iYWwqIGpzV2ViQXNzZW1ibHlHbG9iYWwgPSBKU1dl
YkFzc2VtYmx5R2xvYmFsOjp0cnlDcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgd2ViQXNzZW1ibHlH
bG9iYWxTdHJ1Y3R1cmUsIFdURk1vdmUod2FzbUdsb2JhbCkpOwogICAgIFJFVFVSTl9JRl9FWENF
UFRJT04odGhyb3dTY29wZSwgeyB9KTsKLSAgICBlbnN1cmVTdGlsbEFsaXZlSGVyZShiaXR3aXNl
X2Nhc3Q8dm9pZCo+KGluaXRpYWxWYWx1ZSkpOyAvLyBFbnN1cmUgdGhpcyBpcyBrZXB0IGFsaXZl
IHdoaWxlIGNyZWF0aW5nIEpTV2ViQXNzZW1ibHlHbG9iYWwuCisgICAgZW5zdXJlU3RpbGxBbGl2
ZUhlcmUoaW5pdGlhbFZhbHVlKTsgLy8gRW5zdXJlIHRoaXMgaXMga2VwdCBhbGl2ZSB3aGlsZSBj
cmVhdGluZyBKU1dlYkFzc2VtYmx5R2xvYmFsLgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNXZWJBc3NlbWJseUdsb2JhbCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAppbmRleCBiYzljYjA2
OGQ4YTM1NzRmMDZmMTEzMzU1NGNlZWVlNzJiMDNmYjU0Li45N2MzZWM5MjM5ZDViNDU4OTk5MTky
NWNiNzkxODA2ZThiYmRhYzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCkBAIC01NTQsNyArNTU0LDcg
QEAgdm9pZCBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6aW5pdGlhbGl6ZUV4cG9ydHMoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICAgICAgICAgICAgICBKU1dlYkFzc2VtYmx5R2xv
YmFsKiBnbG9iYWxWYWx1ZSA9IEpTV2ViQXNzZW1ibHlHbG9iYWw6OnRyeUNyZWF0ZShnbG9iYWxP
YmplY3QsIHZtLCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5R2xvYmFsU3RydWN0dXJlKCksIFdU
Rk1vdmUoZ2xvYmFsUmVmKSk7CiAgICAgICAgICAgICAgICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRp
b24oKTsKICAgICAgICAgICAgICAgICBtX2luc3RhbmNlLT5saW5rR2xvYmFsKHZtLCBnbG9iYWxJ
bmRleCwgZ2xvYmFsVmFsdWUpOwotICAgICAgICAgICAgICAgIGVuc3VyZVN0aWxsQWxpdmVIZXJl
KGJpdHdpc2VfY2FzdDx2b2lkKj4oaW5pdGlhbEJpdHMpKTsgLy8gRW5zdXJlIHRoaXMgaXMga2Vw
dCBhbGl2ZSB3aGlsZSBjcmVhdGluZyBKU1dlYkFzc2VtYmx5R2xvYmFsLgorICAgICAgICAgICAg
ICAgIGVuc3VyZVN0aWxsQWxpdmVIZXJlKGluaXRpYWxCaXRzKTsgLy8gRW5zdXJlIHRoaXMgaXMg
a2VwdCBhbGl2ZSB3aGlsZSBjcmVhdGluZyBKU1dlYkFzc2VtYmx5R2xvYmFsLgogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
RW5hYmxlLmgKaW5kZXggYTJlMDNmODEzMzY5ZGE4ZDAxZGIyYmYxMTc2ZDNmYWQ4MjdhNTFhNy4u
YTU2NDMyMTM0OGRmYjU5MzM5ZjE5MTM5NGI5YzU0ZTZiMjQzM2Q5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUVuYWJsZS5oCkBAIC01ODksMTIgKzU4OSwxMiBAQAogI2VuZGlmCiAKICNpZiBVU0UoSlNWQUxV
RTMyXzY0KQotLyogRGlzYWJsZSBXZWJBc3NlbWJseSBvbiBhbGwgMzJiaXQgcGxhdGZvcm1zLiBJ
dHMgTExJbnQgdGllciBjb3VsZAotICogd29yayBvbiB0aGVtLCBidXQgc3RpbGwgbmVlZHMgc29t
ZSBmaW5hbCB0b3VjaGVzLiAqLworI2lmICFDUFUoQVJNKQogI3VuZGVmIEVOQUJMRV9XRUJBU1NF
TUJMWQogI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFkgMAogI3VuZGVmIEVOQUJMRV9XRUJBU1NF
TUJMWV9CM0pJVAogI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFlfQjNKSVQgMAorI2VuZGlmCiAj
aWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykpICYmIE9TKExJTlVYKQogLyogT24gQVJN
djcgYW5kIE1JUFMgb24gTGludXggdGhlIEpJVCBpcyBlbmFibGVkIHVubGVzcyBleHBsaWNpdGx5
IGRpc2FibGVkLiAqLwogI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpCkBAIC03MTIsNyArNzEyLDcg
QEAKICNkZWZpbmUgRU5BQkxFX1NBTVBMSU5HX1BST0ZJTEVSIDEKICNlbmRpZgogCi0jaWYgRU5B
QkxFKFdFQkFTU0VNQkxZKSAmJiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkKKyNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpICYmIEhBVkUoTUFDSElORV9DT05URVhUKSAmJiBDUFUoQUREUkVTUzY0KQogI2Rl
ZmluZSBFTkFCTEVfV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSAxCiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGRmYTRiNjBj
MzM0NmUwNjAzOGNlYWJmOTJlY2E0Mjk0MWZmYTNlYmEuLjFhYzUyNWU3MGZiMGRhZTY1ZDgwNjg2
N2FlOTFkOGQxOTk4Y2JjNmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMi0wNC0yMSAgWGFuIEzDs3BleiAgPHhh
bkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtKU0NdIEVuYWJsZSBXYXNtTExJbnQgb24gQVJNdjcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTI2MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0
cy9ydW4tanNjLXN0cmVzcy10ZXN0czogYWxsb3cgdG8gcnVuIHRoZSB3YXNtIHRlc3RzIG9uCisg
ICAgICAgIGFybXY3IGV2ZW4gd2l0aG91dCBqaXQgc3VwcG9ydCAoZm9yIG5vdykuCisKIDIwMjIt
MDQtMjAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBHZW5l
cmF0ZSB3ZWxsLWZvcm1lZCBKU09OIGZvciBjb21waWxlX2NvbW1hbmRzLmpzb24KZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1
bi1qc2Mtc3RyZXNzLXRlc3RzCmluZGV4IDEwNTgzNDI0NDMzZWE5ZTFlNzE4MmViOTdjODNmOWQ0
MmY4MjgyNzEuLmQ3MzkzZTM0NTg1MjAzZWM0ZDUxNTUxZjc3ZDk1MjZkOGNlYzg0ZjQgMTAwNzU1
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKKysrIGIvVG9vbHMvU2Ny
aXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwpAQCAtNTg1LDYgKzU4NSw4IEBAIGVuZAogJGhvc3RP
UyA9IGRldGVybWluZU9TIHVubGVzcyAkaG9zdE9TCiAkYXJjaGl0ZWN0dXJlID0gZGV0ZXJtaW5l
QXJjaGl0ZWN0dXJlIHVubGVzcyAkYXJjaGl0ZWN0dXJlCiAkaXNGVExQbGF0Zm9ybSA9ICEoJGFy
Y2hpdGVjdHVyZSA9PSAieDg2IiB8fCAkYXJjaGl0ZWN0dXJlID09ICJhcm0iIHx8ICRhcmNoaXRl
Y3R1cmUgPT0gIm1pcHMiIHx8ICRhcmNoaXRlY3R1cmUgPT0gInJpc2N2NjQiIHx8ICRob3N0T1Mg
PT0gIndpbmRvd3MiIHx8ICRob3N0T1MgPT0gInBsYXlzdGF0aW9uIikKKyMgU3BlY2lhbCBjYXNl
IGFybXY3LCB3ZSB3YW50IHRvIHJ1biB0aGUgd2FzbSB0ZXN0cyB0ZW1wb3JhcmlseSB3aXRob3V0
IEIzL0FpciBzdXBwb3J0CiskaXNXYXNtUGxhdGZvcm0gPSAkaXNGVExQbGF0Zm9ybSB8fCAkYXJj
aGl0ZWN0dXJlID09ICJhcm0iCiAKIGlmICRhcmNoaXRlY3R1cmUgPT0gIng4NiIKICAgICAjIFRo
ZSBKSVQgaXMgdGVtcG9yYXJpbHkgZGlzYWJsZWQgb24gdGhpcyBwbGF0Zm9ybSBzaW5jZQpAQCAt
MTcyOSw3ICsxNzMxLDcgQEAgZW5kCiAKIGRlZiBydW5XZWJBc3NlbWJseQogICAgIHJldHVybiBp
ZiAhJGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAgIHJldHVybiBp
ZiAhJGlzV2FzbVBsYXRmb3JtCiAgICAgcnVuKCJkZWZhdWx0LXdhc20iLCAiLW0iLCAqRlRMX09Q
VElPTlMpCiAgICAgaWYgJG1vZGUgIT0gInF1aWNrIgogICAgICAgICBydW4oIndhc20tbm8tY2pp
dC15ZXMtdGxzLWNvbnRleHQiLCAiLW0iLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9dHJ1
ZSIsICooRlRMX09QVElPTlMgKyBOT19DSklUX09QVElPTlMpKQpAQCAtMTczNywxNSArMTczOSwx
NyBAQCBkZWYgcnVuV2ViQXNzZW1ibHkKICAgICAgICAgcnVuKCJ3YXNtLWVhZ2VyLWpldHRpc29u
IiwgIi1tIiwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICIt
LXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICItLXZlcmlm
eUdDPXRydWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1uby10bHMtY29udGV4
dCIsICItbSIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICpGVExfT1BUSU9O
UykKICAgICAgICAgcnVuKCJ3YXNtLXNsb3ctbWVtb3J5IiwgIi1tIiwgIi0tdXNlV2ViQXNzZW1i
bHlGYXN0TWVtb3J5PWZhbHNlIiwgKkZUTF9PUFRJT05TKQotICAgICAgICBydW4oIndhc20tYjMi
LCAiLW0iLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIs
ICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVuKCJ3YXNtLWFpciIsICItbSIsICItLXVzZVdhc21M
TEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249
dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLWNvbGxlY3QtY29udGludW91
c2x5IiwgIi1tIiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1
ZSIsICpGVExfT1BUSU9OUykgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8KKyAgICAgICAg
aWYgJGlzRlRMUGxhdGZvcm0KKyAgICAgICAgICAgIHJ1bigid2FzbS1iMyIsICItbSIsICItLXVz
ZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKkZUTF9PUFRJT05T
KQorICAgICAgICAgICAgcnVuKCJ3YXNtLWFpciIsICItbSIsICItLXVzZVdhc21MTEludD1mYWxz
ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICpG
VExfT1BUSU9OUykKKyAgICAgICAgZW5kCiAgICAgZW5kCiBlbmQKIAogZGVmIHJ1bldlYkFzc2Vt
Ymx5SmV0U3RyZWFtMgogICAgIHJldHVybiBpZiAhJGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEk
aXNGVExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2FzbVBsYXRmb3JtCiAKICAgICBpZiAk
bWVtb3J5TGltaXRlZAogICAgICAgICBza2lwCkBAIC0xNzY0LDE1ICsxNzY4LDE3IEBAIGRlZiBy
dW5XZWJBc3NlbWJseUpldFN0cmVhbTIKICAgICAgICAgcnVuKCJ3YXNtLWVhZ2VyLWpldHRpc29u
IiwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXZlcmlm
eUdDPXRydWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1uby10bHMtY29udGV4
dCIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICpGVExfT1BUSU9OUykKICAg
ICAgICAgcnVuKCJ3YXNtLXNsb3ctbWVtb3J5IiwgIi0tdXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5
PWZhbHNlIiwgKkZUTF9PUFRJT05TKQotICAgICAgICBydW4oIndhc20tYjMiLCAiLS11c2VXYXNt
TExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICpGVExfT1BUSU9OUykKLSAg
ICAgICAgcnVuKCJ3YXNtLWFpciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRv
bWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICpGVExfT1BUSU9OUykKICAg
ICAgICAgcnVuKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5IiwgIi0tY29sbGVjdENvbnRpbnVv
dXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykgaWYgc2hvdWxkQ29s
bGVjdENvbnRpbnVvdXNseT8KKyAgICAgICAgaWYgJEZUTFBsYXRmb3JtCisgICAgICAgICAgICBy
dW4oIndhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1m
YWxzZSIsICpGVExfT1BUSU9OUykKKyAgICAgICAgICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VX
YXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0
aW9uPXRydWUiLCAqRlRMX09QVElPTlMpCisgICAgICAgIGVuZAogICAgIGVuZAogZW5kCiAKIGRl
ZiBydW5XZWJBc3NlbWJseVN1aXRlKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiAgICAg
cmV0dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAg
cmV0dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KICAgICBtb2R1bGVzID0gRGlyW1dBU01URVNUU19Q
QVRIICsgIiouanMiXS5tYXAgeyB8ZnwgRmlsZS5iYXNlbmFtZShmKSB9CiAgICAgcHJlcGFyZUV4
dHJhQWJzb2x1dGVGaWxlcyhXQVNNVEVTVFNfUEFUSCwgWyJ3YXNtLmpzb24iXSkKICAgICBwcmVw
YXJlRXh0cmFSZWxhdGl2ZUZpbGVzKG1vZHVsZXMubWFwIHsgfGZ8ICIuLi8iICsgZiB9LCAkY29s
bGVjdGlvbikKQEAgLTE3ODgsOSArMTc5NCwxMSBAQCBkZWYgcnVuV2ViQXNzZW1ibHlTdWl0ZSgq
b3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQogICAgICAgICBydW4oIndhc20tZWFnZXItamV0
dGlzb24iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09sZEFnZT10cnVlIiwgIi0t
dXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgIi0tdmVyaWZ5
R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQog
ICAgICAgICBydW4oIndhc20tbm8tdGxzLWNvbnRleHQiLCAiLS11c2VGYXN0VExTRm9yV2FzbUNv
bnRleHQ9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25z
KSkKICAgICAgICAgcnVuKCJ3YXNtLXNsb3ctbWVtb3J5IiwgIi0tdXNlV2ViQXNzZW1ibHlGYXN0
TWVtb3J5PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9u
cykpCi0gICAgICAgIHJ1bigid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdh
c21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmlj
T3B0aW9ucykpCi0gICAgICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2Ui
LCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqKEZU
TF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuKCJ3
YXNtLWNvbGxlY3QtY29udGludW91c2x5IiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwg
Ii0tdmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09w
dGlvbnMpKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5PworICAgICAgICBpZiAkaXNGVExQ
bGF0Zm9ybQorICAgICAgICAgICAgcnVuKCJ3YXNtLWIzIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNl
IiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0
U3BlY2lmaWNPcHRpb25zKSkKKyAgICAgICAgICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNt
TExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9u
PXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKKyAg
ICAgICAgZW5kCiAgICAgZW5kCiBlbmQKIApAQCAtMTgwNiw3ICsxODE0LDkgQEAgZW5kCiBkZWYg
cnVuV2ViQXNzZW1ibHlXaXRoSGFybmVzcygqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQog
ICAgIHJhaXNlIHVubGVzcyAkYmVuY2htYXJrLnRvX3MgPX4gL2hhcm5lc3NcLm0/anMvCiAgICAg
cmV0dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAg
cmV0dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KKyAgICAjIFNraXAgdGhpcyBjb21wbGV0ZWx5IG9u
IGFybXY3IGZvciBub3csIHNpbmNlIG1vc3Qgb2YgdGhlIHRlc3RzIGFyZSByZWxhdGVkIHRvIE9T
UiBhbmQgaXQncyBhIGJpdCBoYWlyeSB0byBza2lwIHRoZW0gbWFudWFsbHkKKyAgICByZXR1cm4g
aWYgJGFyY2hpdGVjdHVyZSA9PSAiYXJtIgogCiAgICAgd2FzbUZpbGVzID0gYWxsV2FzbUZpbGVz
KCRjb2xsZWN0aW9uKQogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMod2FzbUZpbGVzLm1h
cCB7IHxmfCBmLmJhc2VuYW1lIH0sICRjb2xsZWN0aW9uKQpAQCAtMTgxOCw5ICsxODI4LDExIEBA
IGRlZiBydW5XZWJBc3NlbWJseVdpdGhIYXJuZXNzKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlv
bnMpCiAgICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgIi0tZm9y
Y2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRvbWl6aW5n
RXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZU
TF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuSGFy
bmVzc1Rlc3QoIndhc20tbm8tdGxzLWNvbnRleHQiLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRl
eHQ9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkK
ICAgICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tc2xvdy1tZW1vcnkiLCAiLS11c2VXZWJBc3Nl
bWJseUZhc3RNZW1vcnk9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lm
aWNPcHRpb25zKSkKLSAgICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tYjMiLCAiLS11c2VXYXNt
TExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICooRlRMX09QVElPTlMgKyBv
cHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQotICAgICAgICBydW5IYXJuZXNzVGVzdCgid2Fz
bS1uby1haXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1
dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0
U3BlY2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tY29sbGVjdC1j
b250aW51b3VzbHkiLCAiLS1jb2xsZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10
cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpIGlmIHNo
b3VsZENvbGxlY3RDb250aW51b3VzbHk/CisgICAgICAgIGlmICRpc0ZUTFBsYXRmb3JtCisgICAg
ICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxzZSIs
ICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNw
ZWNpZmljT3B0aW9ucykpCisgICAgICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1uby1haXIi
LCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xh
bmRBbGxvY2F0aW9uPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNP
cHRpb25zKSkKKyAgICAgICAgZW5kCiAgICAgZW5kCiBlbmQKIApAQCAtMTgzMCw3ICsxODQyLDcg
QEAgZGVmIHJ1bldlYkFzc2VtYmx5RW1zY3JpcHRlbihtb2RlKQogICAgICAgICByZXR1cm4KICAg
ICBlbmQKICAgICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRMUGxh
dGZvcm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQogICAgIHdhc20gPSAkYmVuY2ht
YXJrLnRvX3Muc3ViISAnLmpzJywgJy53YXNtJwogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmls
ZXMoW1BhdGhuYW1lKCcuLicpICsgd2FzbV0sICRjb2xsZWN0aW9uKQogICAgIHJ1bigiZGVmYXVs
dC13YXNtIiwgKkZUTF9PUFRJT05TKQpAQCAtMTgzOCw5ICsxODUwLDExIEBAIGRlZiBydW5XZWJB
c3NlbWJseUVtc2NyaXB0ZW4obW9kZSkKICAgICAgICAgcnVuKCJ3YXNtLW5vLWNqaXQteWVzLXRs
cy1jb250ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PXRydWUiLCAqKEZUTF9PUFRJ
T05TICsgTk9fQ0pJVF9PUFRJT05TKSkKICAgICAgICAgcnVuKCJ3YXNtLWVhZ2VyLWpldHRpc29u
IiwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXVzZVJh
bmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICItLXZlcmlmeUdDPXRy
dWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1uby10bHMtY29udGV4dCIsICIt
LXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAg
cnVuKCJ3YXNtLWIzIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9
ZmFsc2UiLCAqRlRMX09QVElPTlMpCi0gICAgICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNt
TExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9u
PXRydWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1jb2xsZWN0LWNvbnRpbnVv
dXNseSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAq
RlRMX09QVElPTlMpIGlmIHNob3VsZENvbGxlY3RDb250aW51b3VzbHk/CisgICAgICAgIGlmICRp
c0ZUTFBsYXRmb3JtCisgICAgICAgICAgICBydW4oIndhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9
ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICpGVExfT1BUSU9OUykKKyAgICAgICAg
ICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21p
emluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqRlRMX09QVElPTlMpCisgICAg
ICAgIGVuZAogICAgIGVuZAogZW5kCiAKQEAgLTE4NTAsNyArMTg2NCw3IEBAIGRlZiBydW5XZWJB
c3NlbWJseVNwZWNUZXN0QmFzZShtb2RlLCBzcGVjSGFybmVzc1BhdGgsICpvcHRpb25hbFRlc3RT
cGVjaWZpY09wdGlvCiAgICAgICAgIHJldHVybgogICAgIGVuZAogICAgIHJldHVybiBpZiAhJGpp
dFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlz
V2FzbVBsYXRmb3JtCiAgICAgcHJlcGFyZUV4dHJhQWJzb2x1dGVGaWxlcyhXQVNNVEVTVFNfUEFU
SCwgWyJ3YXNtLmpzb24iXSkKIAogICAgIG1vZHVsZXMgPSBEaXJbV0FTTVRFU1RTX1BBVEggKyAi
Ki5qcyJdLm1hcCB7IHxmfCBGaWxlLmJhc2VuYW1lKGYpIH0KQEAgLTE4NjUsOSArMTg3OSwxMSBA
QCBkZWYgcnVuV2ViQXNzZW1ibHlTcGVjVGVzdEJhc2UobW9kZSwgc3BlY0hhcm5lc3NQYXRoLCAq
b3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpbwogICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndh
c20tbm8tY2ppdC15ZXMtdGxzLWNvbnRleHQiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJu
ZXNzSnNQYXRoLCAgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PXRydWUiLCAqKEZUTF9PUFRJ
T05TICsgTk9fQ0pJVF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAg
ICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgbm9pc3lPdXRw
dXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29u
RHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9j
YXRpb249dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxU
ZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLW5v
LXRscy1jb250ZXh0Iiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0t
dXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFs
VGVzdFNwZWNpZmljT3B0aW9ucykpCi0gICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1i
MyIsIG5vaXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICItLXVzZVdhc21MTElu
dD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlv
bmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCi0gICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2Fz
bS1haXIiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAiLS11c2VXYXNt
TExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9u
PXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAg
ICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5Iiwgbm9p
c3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tY29sbGVjdENvbnRpbnVvdXNs
eT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RT
cGVjaWZpY09wdGlvbnMpKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5PworICAgICAgaWYg
JGlzRlRMUGxhdGZvcm0KKyAgICAgICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1iMyIs
IG5vaXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICItLXVzZVdhc21MTEludD1m
YWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFs
VGVzdFNwZWNpZmljT3B0aW9ucykpCisgICAgICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndh
c20tYWlyIiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tdXNlV2Fz
bUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlv
bj10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCisg
ICAgICBlbmQKICAgICBlbmQKIGVuZAogCkBAIC0xODg1LDcgKzE5MDEsNyBAQCBlbmQKIAogZGVm
IHJ1bldlYkFzc2VtYmx5TG93RXhlY3V0YWJsZU1lbW9yeSgqb3B0aW9uYWxUZXN0U3BlY2lmaWNP
cHRpb25zKQogICAgIHJldHVybiBpZiAhJGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQ
bGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2FzbVBsYXRmb3JtCiAgICAgbW9kdWxlcyA9IERp
cltXQVNNVEVTVFNfUEFUSCArICIqLmpzIl0ubWFwIHsgfGZ8IEZpbGUuYmFzZW5hbWUoZikgfQog
ICAgIHByZXBhcmVFeHRyYUFic29sdXRlRmlsZXMoV0FTTVRFU1RTX1BBVEgsIFsid2FzbS5qc29u
Il0pCiAgICAgcHJlcGFyZUV4dHJhUmVsYXRpdmVGaWxlcyhtb2R1bGVzLm1hcCB7IHxmfCAiLi4v
IiArIGYgfSwgJGNvbGxlY3Rpb24pCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pT
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGI1YzM5N2IyODQ5ZDVlM2NmZjEzNGNjOTdjYzJlM2NkNjk3
MzFiZjkuLmM4ZDBiMWIwOTNjZjkxNWUxYThmMDM0YWQzYTJlOTFjNjc3NzVlYzggMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMjItMDQtMjEgIFhhbiBMw7NwZXogIDx4YW5AaWdhbGlhLmNvbT4KKworICAgICAg
ICBbSlNDXSBFbmFibGUgV2FzbUxMSW50IG9uIEFSTXY3CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEyNjAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNt
LW5hbWUtc2VjdGlvbi5qczoKKyAgICAgICAgKiBzdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2Fz
bS5qczoKKyAgICAgICAgKiB3YXNtL3JlZ3Jlc3MvbGxpbnQtY2FsbGVlLXNhdmVzLXdpdGgtZmFz
dC1tZW1vcnkuanM6CisKIDIwMjItMDQtMTQgIENhaXRsaW4gUG90dGVyICA8Y2FpdHBAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbSlNDXSBTaGFkb3dSZWFsbSBnbG9iYWwgb2JqZWN0IGhhcyBhIG11
dGFibGUgcHJvdG90eXBlCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9m
aWxlci13YXNtLW5hbWUtc2VjdGlvbi5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2Zp
bGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzCmluZGV4IDVjMjIwZmQ3NmNkYzVjNDBlNTljYzY2ZTU3
MzQyYzcyZDhjN2YzYWEuLjM2ODZjNjM5NzA0MDc4YmEyMGM0NDY4ZDlhZmU4Yjk3MzAyY2Y4OWEg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20tbmFtZS1z
ZWN0aW9uLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20tbmFt
ZS1zZWN0aW9uLmpzCkBAIC0xLDMgKzEsOCBAQAorLy8gVGhpcyB0ZXN0IGlzIHN0YXRpc3RpY2Fs
LCBhbmQgd2l0aG91dCBvcHRpbWl6aW5nIFdhc20gdGllcnMgdGhlIGxpa2VsaWhvb2QKKy8vIG9m
IGhpdHRpbmcgdGhlIGRlZXBlc3QgZXhwZWN0ZWQgc3RhY2sgdHJhY2UgaXMgdmVyeSBsb3csIHNv
IGRpc2FibGUuCisvLyBGSVhNRTogcmVtb3ZlIHdoZW4gMzItYml0IHBsYXRmb3JtcyBzdXBwb3J0
IG9wdGltaXppbmcgV2FzbSB0aWVycworLy9AIHNraXAgaWYgWyJhcm0iLCAibWlwcyJdLmluY2x1
ZGU/KCRhcmNoaXRlY3R1cmUpCisvLwogLy9AIHJ1bkRlZmF1bHQKIAogLyoKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanMgYi9KU1Rlc3RzL3N0cmVz
cy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzCmluZGV4IDA2ZGYwMTI0OTU5NjllMjg0MjE4Nzc4
NjkwMTM1YmYwOTAxMGVjNmQuLjcyNDBjMDBkZTI3ZTNiZmQzZjk1NTc1MjMwMGNhMGRlMmY1OTRl
ZWMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanMK
KysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qcwpAQCAtMSwzICsx
LDQgQEAKKy8vQCBza2lwIGlmICRhcmNoaXRlY3R1cmUgPT0gImFybSIKIC8vQCBydW5EZWZhdWx0
CiAKIGlmIChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigpICYmICR2bS5pc1dhc21T
dXBwb3J0ZWQoKSkgewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL3JlZ3Jlc3MvbGxpbnQtY2Fs
bGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnkuanMgYi9KU1Rlc3RzL3dhc20vcmVncmVzcy9sbGlu
dC1jYWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5qcwppbmRleCBmOWYwOWM0NzUxM2E2Yzhk
OTMyNTM0ZjcyN2RiZmU3N2ZkMjUxZDQ0Li4xMWNmYjE2NGJiNjQxZWYzNGUyMWRiMDU2OTI3ZGNh
MzY3YzM3ZTZkIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vcmVncmVzcy9sbGludC1jYWxsZWUt
c2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5qcworKysgYi9KU1Rlc3RzL3dhc20vcmVncmVzcy9sbGlu
dC1jYWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5qcwpAQCAtMSwzICsxLDQgQEAKKy8vQCBz
a2lwIGlmICRhcmNoaXRlY3R1cmUgPT0gImFybSIKIC8vQCByZXF1aXJlT3B0aW9ucygiLS11c2VX
ZWJBc3NlbWJseUZhc3RNZW1vcnk9dHJ1ZSIpCiAKIGltcG9ydCAqIGFzIGFzc2VydCBmcm9tICcu
Li9hc3NlcnQuanMnOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458442</attachid>
            <date>2022-04-27 06:41:38 -0700</date>
            <delta_ts>2022-05-09 08:31:43 -0700</delta_ts>
            <desc>v9 - review fixes and rebase</desc>
            <filename>bug-221260-20220427134136.patch</filename>
            <type>text/plain</type>
            <size>325605</size>
            <attacher name="Geza Lore">glore</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
MjcwZDE0ZWI5ZDAzZDNkNDU1NTVlNWU5NWYxYzQyYWY4YTYwZTFhLi5hZmY4MmU2YTZjNjYzMzli
OTg4ZjU5YzVjYzUzY2E3OGRkYjFlZDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMDcgQEAKKzIwMjItMDQtMjcgIFhhbiBMw7NwZXogIDx4YW5AaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbSlNDXSBFbmFibGUgV2FzbUxMSW50IG9uIEFSTXY3CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEyNjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBieSBHZXphIExvcmUgYW5kIFhh
biBMw7NwZXouCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBMTEludCB0aWVyIG9mIFdlYkFzc2Vt
Ymx5IGZvciBBUk12Ny4gQSBsb3Qgb2YgdGhlCisgICAgICAgIHdvcmsgd2lsbCBiZSBzaGFyZWQg
YnkgYW55IDMyYml0IHBvcnQsIGJ1dCB0aGUgb2ZmbGluZWFzc2VtYmxlcgorICAgICAgICBoYXMg
b25seSBiZWVuIHVwZGF0ZWQgZm9yIEFSTXY3IHNvIGZhci4KKworICAgICAgICBNYWluIGhpZ2hs
aWdodHM6CisKKyAgICAgICAgV2UgaGF2ZSBzcGxpdCB0aGUgV2ViQXNzZW1ibHkuYXNtIGZpbGUg
aW50byB0aHJlZSBjaHVua3MsCisgICAgICAgIGZvbGxvd2luZyB3aGF0IExvd0xldmVsSW50ZXJw
cmV0ZXIuYXNtIGRvZXMuIFRoZSBjb21tb24gY29kZQorICAgICAgICByZW1haW5zIGluIFdlYkFz
c2VtYmx5LmFzbSwgYW5kIDMyIGFuZCA2NGJpdCBzcGVjaWZpYyBjb2RlIChtb3N0bHkKKyAgICAg
ICAgb3Bjb2RlIGltcGxlbWVudGF0aW9ucykgZ29lcyBpbnRvIFdlYkFzc2VtYmx5MzJfNjQuYXNt
IGFuZAorICAgICAgICBXZWJBc3NlbWJseTY0LmFzbS4KKworICAgICAgICBXZSBoYXZlIGRlY2lk
ZWQgdG8gdXNlIGNvbnNlY3V0aXZlIGV2ZW4vb2RkIHBhaXJzIG9mIEdQUnMgZm9yIGV2ZXJ5Cisg
ICAgICAgIHR5cGUgb2Ygd2FzbSB2YWx1ZXMsIGV2ZW4gaWYgdGhleSBhcmUgMzJiaXQgKGkzMi9m
MzIpLCB3aXRoIHRoZSBvZGQKKyAgICAgICAgKGhpZ2hlcikgbnVtYmVyZWQgR1BSIGhvbGRpbmcg
dGhlIG1vcmUgc2lnbmlmaWNhbnQgaGFsZi4gMzJiaXQgdmFsdWVzCisgICAgICAgIGFyZSBoZWxk
IGluIHRoZSBldmVuIChsb3dlcikgbnVtYmVyZWQgcmVnaXN0ZXIuIFRoaXMgbWFrZXMgdGhlIGNv
ZGUKKyAgICAgICAgbXVjaCBzaW1wbGVyIGFuZCBhbGxvd3MgdXMgdG8gc2hhcmUgbW9yZSBjb2Rl
IHdpdGggdGhlIDY0Yml0IHZhcmlhbnQuCisgICAgICAgIFRoaXMgaXMgbW9zdGx5IHJlbGV2YW50
IGZvciBhcmd1bWVudCBwYXNzaW5nLCBhbmQgZ2l2ZW4gdGhhdCBldmVyeQorICAgICAgICB2YWx1
ZSBlbmRzIHVwIGluIHRoZSBzdGFjayBhbnl3YXkgd2UgZG8gbm90IHRoaW5rIGl0IGlzIHNpZ25p
ZmljYW50CisgICAgICAgIGZyb20gYSBwZXJmb3JtYW5jZSBQT1YuCisKKyAgICAgICAgV2UgYXJl
IHJldXNpbmcgSlNWYWx1ZVJlZ3MgdG8gaG9sZCBXYXNtIHZhbHVlcyB0b28uIE9idmlvdXNseSB0
aGV5CisgICAgICAgIGFyZSBub3QgcmVhbGx5IEpTVmFsdWVzLCBzbyBpdCBtaWdodCBtYWtlIHNl
bnNlIHRvIGNyZWF0ZSBhIGJhc2UKKyAgICAgICAgY2xhc3MgdGhhdCBjYW4gYmUgdXNlZCBmb3Ig
Ym90aCBKUyBhbmQgV2FzbSB2YWx1ZXMuCisKKyAgICAgICAgV2UgZG8gbm90IGhhdmUgZW5vdWdo
IHJlZ2lzdGVycyB0byBrZWVwIHRoaW5ncyBsaWtlIHRoZSBtZW1vcnkKKyAgICAgICAgYmFzZSBw
b2ludGVyIGFuZCBzaXplIGluIHBpbm5lZCByZWdpc3RlcnMsIHNvIHdlIGFyZSBmb3JjZWQgdG8K
KyAgICAgICAgbG9hZCB0aGVtIG9uIGVhY2ggdXNlLgorCisgICAgICAgIFdlIGRpc2FibGUgdGhl
ICdTaWduYWxpbmcnIG1lbW9yeSBtb2RlLCBzaW5jZSB0aGUgY3VycmVudAorICAgICAgICBpbXBs
ZW1lbnRhdGlvbiByZWxpZXMgb24gYmVpbmcgYWJsZSB0byBtcHJvdGVjdCBhIDJeMzIgKyByZWR6
b25lCisgICAgICAgIHJlZ2lvbiBvZiBtZW1vcnkuIFRoaXMgY2FuIGJlIGNoYW5nZWQgaW4gdGhl
IGZ1dHVyZSBidXQgaXQncyBub3QgYQorICAgICAgICBwcmlvcml0eSBhdCB0aGUgbW9tZW50Lgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogYXNzZW1ibGVyL0FSTXY3QXNz
ZW1ibGVyLmg6CisgICAgICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjp2Y3Z0X3NpZ25lZFRvRmxv
YXRpbmdQb2ludCk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaDoK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6Y29udmVydEludDMyVG9GbG9hdCk6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnRocmVhZFNhZmVQYXRjaGFibGVO
ZWFyQ2FsbCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmNhbGxPcGVyYXRp
b24pOgorICAgICAgICAqIGIzL0IzVmFsdWVSZXAuaDoKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVl
UmVwOjpWYWx1ZVJlcCk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwOgor
ICAgICAgICAoSlNDOjpXYXNtOjpCeXRlY29kZUR1bXBlcjo6Zm9ybWF0Q29uc3RhbnQgY29uc3Qp
OgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5oOiBhZGFwdCB0byBuZXcgY2FsbGVl
IHRhZ2dpbmcgZm9ybWF0LgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OmNhbGxlZSBjb25zdCk6
CisgICAgICAgIChKU0M6OkNhbGxGcmFtZTo6dW5zYWZlQ2FsbGVlIGNvbnN0KToKKyAgICAgICAg
KiBpbnRlcnByZXRlci9DYWxsZWVCaXRzLmg6IGFkZCB3YXNtIHRhZ2dpbmcgb2YgY2FsbGVlIHZh
bHVlcyBmb3IKKyAgICAgICAgMzJiaXQuCisgICAgICAgIChKU0M6OkNhbGxlZUJpdHM6OkNhbGxl
ZUJpdHMpOgorICAgICAgICAoSlNDOjpDYWxsZWVCaXRzOjpvcGVyYXRvcj0pOgorICAgICAgICAo
SlNDOjpDYWxsZWVCaXRzOjpib3hXYXNtKToKKyAgICAgICAgKEpTQzo6Q2FsbGVlQml0czo6aXNX
YXNtIGNvbnN0KToKKyAgICAgICAgKEpTQzo6Q2FsbGVlQml0czo6YXNXYXNtQ2FsbGVlIGNvbnN0
KToKKyAgICAgICAgKiBpbnRlcnByZXRlci9SZWdpc3Rlci5oOgorICAgICAgICAoSlNDOjpSZWdp
c3Rlcjo6dW5ib3hlZEZsb2F0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXI6OmFzYW5V
bnNhZmVVbmJveGVkRmxvYXQgY29uc3QpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMu
aDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjp1bmJveERvdWJsZSk6CisgICAgICAg
ICogaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmNwcDoKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXJB
dE9mZnNldExpc3Q6OlJlZ2lzdGVyQXRPZmZzZXRMaXN0KToKKyAgICAgICAgKiBqaXQvUmVnaXN0
ZXJBdE9mZnNldExpc3QuaDoKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXJBdE9mZnNldExpc3Q6OnNp
emVPZkFyZWFJbkJ5dGVzIGNvbnN0KToKKyAgICAgICAgKiBqaXQvUmVnaXN0ZXJTZXQuY3BwOgor
ICAgICAgICAoSlNDOjpSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKToKKyAgICAg
ICAgKiBsbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaDoKKyAgICAgICAgKiBsbGludC9Mb3dM
ZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L1dlYkFzc2VtYmx5LmFz
bToKKyAgICAgICAgKiBsbGludC9XZWJBc3NlbWJseTMyXzY0LmFzbTogQWRkZWQuCisgICAgICAg
ICogbGxpbnQvV2ViQXNzZW1ibHk2NC5hc206IEFkZGVkLgorICAgICAgICAqIG9mZmxpbmVhc20v
YXJtLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiOgorICAgICAgICAq
IG9mZmxpbmVhc20vcmVnaXN0ZXJzLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vcmlzYy5yYjoK
KyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKyAgICAgICAgKEpTQzo6d2FzbVVuYm94
ZWRGbG9hdCk6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjpKU1ZhbHVlKToKKyAgICAgICAgKiB3YXNtL1dhc21BaXJJUkdlbmVy
YXRvci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjp1c2VTaWduYWxp
bmdNZW1vcnkgY29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6QWly
SVJHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6ZW1pdENo
ZWNrQW5kUHJlcGFyZVBvaW50ZXIpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRv
cjo6YWRkQ2FsbCk6CisgICAgICAgICogd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHA6CisgICAg
ICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OnVzZVNpZ25hbGluZ01lbW9yeSBjb25zdCk6
CisgICAgICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OkIzSVJHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjphZGRBcmd1bWVudHMpOgorICAgICAgICAo
SlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcik6Cisg
ICAgICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6Om1lbW9yeUtpbmQpOgorICAgICAgICAo
SlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjphZGRDYWxsKToKKyAgICAgICAgKiB3YXNtL1dhc21C
aW5kaW5nLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6d2FzbVRvV2FzbSk6CisgICAgICAgICog
d2FzbS9XYXNtQ2FsbGVlLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRDYWxsZWU6OmNh
bGxlZVNhdmVSZWdpc3RlcnMpOgorICAgICAgICAqIHdhc20vV2FzbUNhbGxlZUdyb3VwLmNwcDoK
KyAgICAgICAgKEpTQzo6V2FzbTo6Q2FsbGVlR3JvdXA6OmlzU2FmZVRvUnVuKToKKyAgICAgICAg
KiB3YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5jcHA6CisgICAgICAgIChKU0M6Oldhc206Ompz
Q2FsbGluZ0NvbnZlbnRpb24pOgorICAgICAgICAoSlNDOjpXYXNtOjp3YXNtQ2FsbGluZ0NvbnZl
bnRpb24pOgorICAgICAgICAqIHdhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmg6CisgICAgICAg
IChKU0M6Oldhc206OkNhbGxJbmZvcm1hdGlvbjo6Y29tcHV0ZVJlc3VsdHNPZmZzZXRMaXN0KToK
KyAgICAgICAgKEpTQzo6V2FzbTo6V2FzbUNhbGxpbmdDb252ZW50aW9uOjpXYXNtQ2FsbGluZ0Nv
bnZlbnRpb24pOgorICAgICAgICAoSlNDOjpXYXNtOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb246Om1h
cnNoYWxsTG9jYXRpb25JbXBsIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6V2FzbUNhbGxp
bmdDb252ZW50aW9uOjptYXJzaGFsbExvY2F0aW9uIGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2Fz
bTo6SlNDYWxsaW5nQ29udmVudGlvbjo6SlNDYWxsaW5nQ29udmVudGlvbik6CisgICAgICAgIChK
U0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxsTG9jYXRpb25JbXBsIGNvbnN0
KToKKyAgICAgICAgKEpTQzo6V2FzbTo6SlNDYWxsaW5nQ29udmVudGlvbjo6bWFyc2hhbGxMb2Nh
dGlvbiBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246OmNh
bGxJbmZvcm1hdGlvbkZvciBjb25zdCk6CisgICAgICAgICogd2FzbS9XYXNtRm9ybWF0Lmg6Cisg
ICAgICAgICogd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpJ
bmRleE9yTmFtZTo6SW5kZXhPck5hbWUpOgorICAgICAgICAoSlNDOjpXYXNtOjptYWtlU3RyaW5n
KToKKyAgICAgICAgKiB3YXNtL1dhc21JbmRleE9yTmFtZS5oOgorICAgICAgICAoSlNDOjpXYXNt
OjpJbmRleE9yTmFtZTo6SW5kZXhPck5hbWUpOgorICAgICAgICAoSlNDOjpXYXNtOjpJbmRleE9y
TmFtZTo6aXNFbXB0eSBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1lOjpp
c0luZGV4IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OmlzTmFtZSBj
b25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1lOjppbmRleCBjb25zdCk6Cisg
ICAgICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1lOjpuYW1lIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6V2FzbTo6SW5kZXhPck5hbWU6Om5hbWVTZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKiB3YXNt
L1dhc21JbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpXYXNtOjpJbnN0YW5jZTo6dXBkYXRlQ2Fj
aGVkTWVtb3J5KToKKyAgICAgICAgKiB3YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHA6CisgICAg
ICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjp2aXJ0dWFsUmVnaXN0ZXJGb3JXYXNtTG9j
YWwpOgorICAgICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9u
Rm9yQ2FsbGVyKToKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmNhbGxJbmZv
cm1hdGlvbkZvckNhbGxlZSk6CisgICAgICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjph
ZGRBcmd1bWVudHMpOgorICAgICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6YWRkTG9v
cCk6CisgICAgICAgICogd2FzbS9XYXNtTExJbnRQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6V2Fz
bTo6TExJbnRQbGFuOjpkaWRDb21wbGV0ZUNvbXBpbGF0aW9uKToKKyAgICAgICAgKiB3YXNtL1dh
c21NZW1vcnkuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpNZW1vcnlIYW5kbGU6On5NZW1vcnlI
YW5kbGUpOgorICAgICAgICAoSlNDOjpXYXNtOjpNZW1vcnk6OnRyeUNyZWF0ZSk6CisgICAgICAg
IChKU0M6Oldhc206Ok1lbW9yeTo6Z3Jvd1NoYXJlZCk6CisgICAgICAgIChKU0M6Oldhc206Ok1l
bW9yeTo6Z3Jvdyk6CisgICAgICAgIChKU0M6Oldhc206Ok1lbW9yeTo6Y29weSk6CisgICAgICAg
ICogd2FzbS9XYXNtTWVtb3J5Lmg6CisgICAgICAgICogd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRp
b24uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpQaW5uZWRSZWdpc3RlckluZm86OmdldCk6Cisg
ICAgICAgICogd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uaDoKKyAgICAgICAgKEpTQzo6V2Fz
bTo6UGlubmVkUmVnaXN0ZXJJbmZvOjp0b1NhdmUgY29uc3QpOgorICAgICAgICAqIHdhc20vV2Fz
bU1lbW9yeU1vZGUuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjptYWtlU3RyaW5nKToKKyAgICAg
ICAgKiB3YXNtL1dhc21NZW1vcnlNb2RlLmg6CisgICAgICAgICogd2FzbS9XYXNtT3Bjb2RlT3Jp
Z2luLmNwcDoKKyAgICAgICAgKiB3YXNtL1dhc21PcGNvZGVPcmlnaW4uaDoKKyAgICAgICAgKiB3
YXNtL1dhc21PcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6SlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKToKKyAgICAgICAgKiB3YXNtL1dhc21PcGVyYXRpb25zLmg6CisgICAgICAg
ICogd2FzbS9XYXNtUGFnZUNvdW50Lmg6CisgICAgICAgICogd2FzbS9XYXNtUGFyc2VyLmg6Cisg
ICAgICAgIChKU0M6Oldhc206OlBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVUludDMyKToKKyAg
ICAgICAgKEpTQzo6V2FzbTo6UGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VVSW50NjQpOgorICAg
ICAgICAqIHdhc20vV2FzbVNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpXQVNN
X1NMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX3Bv
cGNvdW50KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX3BvcGNvdW50bGwp
OgorICAgICAgICAoSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTMyX2Rpdl9zKToKKyAgICAg
ICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2kzMl9kaXZfdSk6CisgICAgICAgIChKU0M6
OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pMzJfcmVtX3MpOgorICAgICAgICAoSlNDOjpMTEludDo6
c2xvd19wYXRoX3dhc21faTMyX3JlbV91KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0
aF93YXNtX2k2NF9kaXZfcyk6CisgICAgICAgIChKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9p
NjRfZGl2X3UpOgorICAgICAgICAoSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTY0X3JlbV9z
KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2k2NF9yZW1fdSk6CisgICAg
ICAgICogd2FzbS9XYXNtU2xvd1BhdGhzLmg6CisgICAgICAgICogd2FzbS9XYXNtVmFsdWVMb2Nh
dGlvbi5jcHA6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmR1bXAgY29uc3Qp
OgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiB3YXNtL1dhc21WYWx1
ZUxvY2F0aW9uLmg6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OlZhbHVlTG9j
YXRpb24pOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjppc0dQUiBjb25zdCk6
CisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzRlBSIGNvbnN0KToKKyAgICAg
ICAgKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6aXNTdGFjayBjb25zdCk6CisgICAgICAgIChK
U0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzU3RhY2tBcmd1bWVudCBjb25zdCk6CisgICAgICAg
IChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmpzciBjb25zdCk6CisgICAgICAgIChKU0M6Oldh
c206OlZhbHVlTG9jYXRpb246OmZwciBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OlZhbHVl
TG9jYXRpb246OnJlZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRp
b246OmlzUmVnIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2Nh
dGlvbjo6cmVnIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2Nh
dGlvbjo6Z3ByIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL2pzL0pTVG9XYXNtLmNw
cDoKKyAgICAgICAgKEpTQzo6V2FzbTo6bWFyc2hhbGxKU1Jlc3VsdCk6CisgICAgICAgIChKU0M6
Oldhc206OmNyZWF0ZUpTVG9XYXNtV3JhcHBlcik6CisgICAgICAgICogd2FzbS9qcy9XYXNtVG9K
Uy5jcHA6CisgICAgICAgIChKU0M6Oldhc206Ondhc21Ub0pTKToKKyAgICAgICAgKiB3YXNtL2pz
L1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUZ1bmN0
aW9uOjpwcmV2aW91c0luc3RhbmNlT2Zmc2V0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2ViQXNz
ZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3cpOgorICAgICAgICAqIHdhc20vanMv
V2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJl
Y29yZC5jcHA6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjppbml0aWFs
aXplRXhwb3J0cyk6CisKIDIwMjItMDQtMjYgIERtaXRyeSBCZXpoZXRza292ICA8ZGJlemhldHNr
b3ZAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV0FTTV0gRml4IHdhcm5pbmc6IGNhc3QgZnJvbSDi
gJhjaGFyKuKAmSB0byDigJhKU0M6Oldhc206OlR5cGUq4oCZIGluY3JlYXNlcyByZXF1aXJlZCBh
bGlnbm1lbnQgb2YgdGFyZ2V0IHR5cGUgWy1XY2FzdC1hbGlnbl0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggZGEyMWFiOTNlNjIw
NzNhZGE2ZDI2MTNiNmEyYTc2Zjg0NGZjMTMzOC4uYzA5YWU2M2Y0N2RlNmQxNTkzZGMzYWFmZWY1
MjZmNTNiNDUzM2EzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMi0wNC0yNyAgWGFuIEzDs3Bl
eiAgPHhhbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtKU0NdIEVuYWJsZSBXYXNtTExJbnQgb24g
QVJNdjcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MTI2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
d3RmL1BsYXRmb3JtRW5hYmxlLmg6IGVuYWJsZSBXZWJBc3NlbWJseSBvbiBBUk12Ny4KKwogMjAy
Mi0wNC0yNiAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgQXJpYVJlZmxlY3Rpb25FbmFibGVkIHJ1bnRpbWUgZmxhZwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGMwYTllMmE3ZTgwMmRiOTQ4NTc2NzRmMjliODc5
NzZkOWM1NmUyMGQuLmFlZmY2NjZmNjIwNDIxNGNlMDU2ZmVlMmRiN2Q5OWJjMzViNGYwYWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIwMCw2ICsyMDAsOCBAQCBzZXQo
TExJTlRfQVNNCiAgICAgbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQogICAgIGxs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KICAgICBsbGludC9XZWJBc3NlbWJseS5hc20K
KyAgICBsbGludC9XZWJBc3NlbWJseTMyXzY0LmFzbQorICAgIGxsaW50L1dlYkFzc2VtYmx5NjQu
YXNtCiApCiAKIHNldChPRkZMSU5FX0FTTQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCmluZGV4IDljYTZhNGE2Yzg0MWM2NzY1OWZjYjU0NmM3
ZjQ0MmJkN2QyODk4NjEuLjZjNzZlNGVmNTIzMjI0ZDRmNTExMTQ2NmEwMTJjM2JhNmQ1ODE1MGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJs
ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVy
LmgKQEAgLTE5OTEsMTAgKzE5OTEsMTAgQEAgcHVibGljOgogICAgICAgICBtX2Zvcm1hdHRlci52
ZnBPcChPUF9WQ01QLCBPUF9WQ01QYiwgdHJ1ZSwgVkZQT3BlcmFuZCg1KSwgcmQsIFZGUE9wZXJh
bmQoMCkpOwogICAgIH0KIAotICAgIHZvaWQgdmN2dF9zaWduZWRUb0Zsb2F0aW5nUG9pbnQoRlBE
b3VibGVSZWdpc3RlcklEIHJkLCBGUFNpbmdsZVJlZ2lzdGVySUQgcm0pCisgICAgdm9pZCB2Y3Z0
X3NpZ25lZFRvRmxvYXRpbmdQb2ludChGUERvdWJsZVJlZ2lzdGVySUQgcmQsIEZQU2luZ2xlUmVn
aXN0ZXJJRCBybSwgYm9vbCB0b0RvdWJsZSA9IHRydWUpCiAgICAgewogICAgICAgICAvLyBib29s
ZWFuIHZhbHVlcyBhcmUgNjRiaXQgKHRvSW50LCB1bnNpZ25lZCwgcm91bmRaZXJvKQotICAgICAg
ICBtX2Zvcm1hdHRlci52ZnBPcChPUF9WQ1ZUX0ZQSVZGUCwgT1BfVkNWVF9GUElWRlBiLCB0cnVl
LCB2Y3Z0T3AoZmFsc2UsIGZhbHNlLCBmYWxzZSksIHJkLCBybSk7CisgICAgICAgIG1fZm9ybWF0
dGVyLnZmcE9wKE9QX1ZDVlRfRlBJVkZQLCBPUF9WQ1ZUX0ZQSVZGUGIsIHRvRG91YmxlLCB2Y3Z0
T3AoZmFsc2UsIGZhbHNlLCBmYWxzZSksIHJkLCBybSk7CiAgICAgfQogCiAgICAgdm9pZCB2Y3Z0
X2Zsb2F0aW5nUG9pbnRUb1NpZ25lZChGUFNpbmdsZVJlZ2lzdGVySUQgcmQsIEZQRG91YmxlUmVn
aXN0ZXJJRCBybSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk12Ny5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTXY3LmgKaW5kZXggNjUwMmYwYzUzYzNmNmQ2MjA4OTdjOWIzNDZlNzI5
MTMyYjBiMjYxYi4uMGYyOTQ3NjZhNDIwMzVlMGYyMWQ4Y2I3NjZlMTYyODA0ZWQ2NDdiYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TXY3LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTXY3LmgKQEAgLTQxLDExICs0MSwxMSBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlckFSTXY3IDog
cHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8QXNzZW1ibGVyPiB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIGNvbnN0ZXhwciBzaXplX3QgbmVhckp1bXBSYW5nZSA9IDE2ICogTUI7CiAKLXByaXZh
dGU6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklEIGRhdGFUZW1wUmVnaXN0ZXIgPSBB
Uk1SZWdpc3RlcnM6OmlwOwogICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCBhZGRyZXNz
VGVtcFJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpyNjsKIAotICAgIHN0YXRpYyBjb25zdGV4cHIg
QVJNUmVnaXN0ZXJzOjpGUERvdWJsZVJlZ2lzdGVySUQgZnBUZW1wUmVnaXN0ZXIgPSBBUk1SZWdp
c3RlcnM6OmQ3OworcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3RleHByIEFSTVJlZ2lzdGVyczo6
RlBEb3VibGVSZWdpc3RlcklEIGZwVGVtcFJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpkMTU7CiAg
ICAgaW5saW5lIEFSTVJlZ2lzdGVyczo6RlBTaW5nbGVSZWdpc3RlcklEIGZwVGVtcFJlZ2lzdGVy
QXNTaW5nbGUoKSB7IHJldHVybiBBUk1SZWdpc3RlcnM6OmFzU2luZ2xlKGZwVGVtcFJlZ2lzdGVy
KTsgfQogCiAgICAgLy8gSW4gdGhlIFRodW1iLTIgaW5zdHJ1Y3Rpb24gc2V0LCBpbnN0cnVjdGlv
bnMgb3BlcmF0aW5nIG9ubHkgb24gcmVnaXN0ZXJzIHIwLXI3IGNhbiBvZnRlbgpAQCAtMTQ2NCw2
ICsxNDY0LDEyIEBAIHB1YmxpYzoKICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKKyAgICB2b2lk
IGNvbnZlcnRJbnQzMlRvRmxvYXQoUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQor
ICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIudm1vdihmcFRlbXBSZWdpc3Rlciwgc3JjLCBzcmMp
OworICAgICAgICBtX2Fzc2VtYmxlci52Y3Z0X3NpZ25lZFRvRmxvYXRpbmdQb2ludChkZXN0LCBm
cFRlbXBSZWdpc3RlckFzU2luZ2xlKCksIC8qIHRvRG91YmxlOiAqLyBmYWxzZSk7CisgICAgfQor
CiAgICAgdm9pZCBjb252ZXJ0SW50MzJUb0RvdWJsZShSZWdpc3RlcklEIHNyYywgRlBSZWdpc3Rl
cklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci52bW92KGZwVGVtcFJlZ2lzdGVy
LCBzcmMsIHNyYyk7CkBAIC0yMjk1LDYgKzIzMDEsMTQgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gQ2FsbChtX2Fzc2VtYmxlci5iKCksIENhbGw6OkxpbmthYmxlTmVhclRhaWwpOwogICAgIH0K
IAorICAgIC8vIEZJWE1FOiB3aHkgaXMgdGhpcyB0aGUgc2FtZSB0aGFuIG5lYXJDYWxsKCkgaW4g
QVJNNjQ/IGlzIGl0IHJpZ2h0PworICAgIEFMV0FZU19JTkxJTkUgQ2FsbCB0aHJlYWRTYWZlUGF0
Y2hhYmxlTmVhckNhbGwoKQorICAgIHsKKyAgICAgICAgaW52YWxpZGF0ZUFsbFRlbXBSZWdpc3Rl
cnMoKTsKKyAgICAgICAgbW92ZUZpeGVkV2lkdGhFbmNvZGluZyhUcnVzdGVkSW1tMzIoMCksIGRh
dGFUZW1wUmVnaXN0ZXIpOworICAgICAgICByZXR1cm4gQ2FsbChtX2Fzc2VtYmxlci5ibHgoZGF0
YVRlbXBSZWdpc3RlciksIENhbGw6OkxpbmthYmxlTmVhcik7CisgICAgfQorCiAgICAgQUxXQVlT
X0lOTElORSBDYWxsIGNhbGwoUHRyVGFnKQogICAgIHsKICAgICAgICAgbW92ZUZpeGVkV2lkdGhF
bmNvZGluZyhUcnVzdGVkSW1tMzIoMCksIGRhdGFUZW1wUmVnaXN0ZXIpOwpAQCAtMjMxOSw2ICsy
MzMzLDEyIEBAIHB1YmxpYzoKICAgICBBTFdBWVNfSU5MSU5FIENhbGwgY2FsbChSZWdpc3RlcklE
IHRhcmdldCwgUmVnaXN0ZXJJRCBjYWxsVGFnKSB7IHJldHVybiBVTlVTRURfUEFSQU0oY2FsbFRh
ZyksIGNhbGwodGFyZ2V0LCBOb1B0clRhZyk7IH0KICAgICBBTFdBWVNfSU5MSU5FIENhbGwgY2Fs
bChBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgY2FsbFRhZykgeyByZXR1cm4gVU5VU0VEX1BB
UkFNKGNhbGxUYWcpLCBjYWxsKGFkZHJlc3MsIE5vUHRyVGFnKTsgfQogCisgICAgQUxXQVlTX0lO
TElORSB2b2lkIGNhbGxPcGVyYXRpb24oY29uc3QgRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFn
PiBvcGVyYXRpb24pCisgICAgeworICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIob3BlcmF0aW9u
LmV4ZWN1dGFibGVBZGRyZXNzKCkpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgY2Fs
bChhZGRyZXNzVGVtcFJlZ2lzdGVyLCBPcGVyYXRpb25QdHJUYWcpOworICAgIH0KKwogICAgIEFM
V0FZU19JTkxJTkUgdm9pZCByZXQoKQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuYngobGlu
a1JlZ2lzdGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVl
UmVwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oCmluZGV4IDE1N2Jj
ODg2ODIzMTJiMWExZTlkYTczOWMwODJjMGQ2YzQ3N2QzMjYuLjc2OTM4YzZmZWNhYmZkMjcxMjc3
YWJlZTM5ZmVhOTNhOTJmN2I2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1ZhbHVlUmVwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAu
aApAQCAtMTI2LDkgKzEyNiwxMyBAQCBwdWJsaWM6CiAgICAgVmFsdWVSZXAoV2FzbTo6VmFsdWVM
b2NhdGlvbiBsb2NhdGlvbikKICAgICB7CiAgICAgICAgIHN3aXRjaCAobG9jYXRpb24ua2luZCgp
KSB7Ci0gICAgICAgIGNhc2UgV2FzbTo6VmFsdWVMb2NhdGlvbjo6S2luZDo6UmVnaXN0ZXI6Cisg
ICAgICAgIGNhc2UgV2FzbTo6VmFsdWVMb2NhdGlvbjo6S2luZDo6R1BSUmVnaXN0ZXI6CiAgICAg
ICAgICAgICBtX2tpbmQgPSBSZWdpc3RlcjsKLSAgICAgICAgICAgIHUucmVnID0gbG9jYXRpb24u
cmVnKCk7CisgICAgICAgICAgICB1LnJlZyA9IGxvY2F0aW9uLmpzcigpLnBheWxvYWRHUFIoKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdhc206OlZhbHVlTG9jYXRpb246Oktp
bmQ6OkZQUlJlZ2lzdGVyOgorICAgICAgICAgICAgbV9raW5kID0gUmVnaXN0ZXI7CisgICAgICAg
ICAgICB1LnJlZyA9IGxvY2F0aW9uLmZwcigpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgV2FzbTo6VmFsdWVMb2NhdGlvbjo6S2luZDo6U3RhY2s6CiAgICAgICAgICAgICBtX2tp
bmQgPSBTdGFjazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eXRlY29kZUR1bXBlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNv
ZGVEdW1wZXIuY3BwCmluZGV4IGQ1NGM3NGZjNjNjNjUwZTA4ZDc0ZjQ3OTdjOTExMWQzNTYyNjc2
YmIuLjdiM2Y1ZmM5ZmIyMTdmODIzZDVhNDY0NDU2ZTUxZDJlMjQ4YTE0MDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcApAQCAtNDEz
LDcgKzQxMyw3IEBAIENTdHJpbmcgQnl0ZWNvZGVEdW1wZXI6OmZvcm1hdENvbnN0YW50KFR5cGUg
dHlwZSwgdWludDY0X3QgY29uc3RhbnQpIGNvbnN0CiAgICAgICAgIGlmIChpc0Z1bmNyZWYodHlw
ZSkgfHwgaXNFeHRlcm5yZWYodHlwZSkpIHsKICAgICAgICAgICAgIGlmIChKU1ZhbHVlOjpkZWNv
ZGUoY29uc3RhbnQpID09IGpzTnVsbCgpKQogICAgICAgICAgICAgICAgIHJldHVybiAibnVsbCI7
Ci0gICAgICAgICAgICByZXR1cm4gdG9DU3RyaW5nKFJhd1BvaW50ZXIoYml0d2lzZV9jYXN0PHZv
aWQqPihjb25zdGFudCkpKTsKKyAgICAgICAgICAgIHJldHVybiB0b0NTdHJpbmcoUmF3UG9pbnRl
cihiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oY29uc3RhbnQpKSkp
OwogICAgICAgICB9CiAKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAppbmRleCBkZTJj
YWY1NGQ3N2JlNTRiNmQwNTFiZWE0M2E4MjcwZmIxMmQ2M2M3Li45NzQ1OWUzZmQ2ODc2NWYzMTI2
NmZlZTE3MGE1NDM2NjZiMDc3MjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0NhbGxGcmFtZS5oCkBAIC0xNjcsOCArMTY3LDggQEAgbmFtZXNwYWNlIEpTQyAgewog
ICAgICAgICAvLyB0byBzZWUgaWYgaXQncyBhIGNlbGwsIGFuZCBpZiBpdCdzIG5vdCwgd2UgdGhy
b3cgYW4gZXhjZXB0aW9uLgogICAgICAgICBpbmxpbmUgSlNWYWx1ZSBndWFyYW50ZWVkSlNWYWx1
ZUNhbGxlZSgpIGNvbnN0OwogICAgICAgICBpbmxpbmUgSlNPYmplY3QqIGpzQ2FsbGVlKCkgY29u
c3Q7Ci0gICAgICAgIENhbGxlZUJpdHMgY2FsbGVlKCkgY29uc3QgeyByZXR1cm4gQ2FsbGVlQml0
cyh0aGlzW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0ucG9pbnRlcigp
KTsgfQotICAgICAgICBTVVBQUkVTU19BU0FOIENhbGxlZUJpdHMgdW5zYWZlQ2FsbGVlKCkgY29u
c3QgeyByZXR1cm4gQ2FsbGVlQml0cyh0aGlzW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xv
dDo6Y2FsbGVlKV0uYXNhblVuc2FmZVBvaW50ZXIoKSk7IH0KKyAgICAgICAgQ2FsbGVlQml0cyBj
YWxsZWUoKSBjb25zdCB7IHJldHVybiBDYWxsZWVCaXRzKHRoaXNbc3RhdGljX2Nhc3Q8aW50PihD
YWxsRnJhbWVTbG90OjpjYWxsZWUpXS51bmJveGVkSW50NjQoKSk7IH0KKyAgICAgICAgU1VQUFJF
U1NfQVNBTiBDYWxsZWVCaXRzIHVuc2FmZUNhbGxlZSgpIGNvbnN0IHsgcmV0dXJuIENhbGxlZUJp
dHModGhpc1tzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSldLmFzYW5VbnNh
ZmVVbmJveGVkSW50NjQoKSk7IH0KICAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2soKSBjb25z
dDsKICAgICAgICAgQ29kZUJsb2NrKiogYWRkcmVzc09mQ29kZUJsb2NrKCkgY29uc3QgeyByZXR1
cm4gYml0d2lzZV9jYXN0PENvZGVCbG9jayoqPih0aGlzICsgc3RhdGljX2Nhc3Q8aW50PihDYWxs
RnJhbWVTbG90Ojpjb2RlQmxvY2spKTsgfQogICAgICAgICBpbmxpbmUgU1VQUFJFU1NfQVNBTiBD
b2RlQmxvY2sqIHVuc2FmZUNvZGVCbG9jaygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxlZUJpdHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmgKaW5kZXggMThiYjdlZjdmYThjN2MzOWYzZDcx
YmE5OTY2MjJiMWQ2ZDc5MWY1OC4uZGVhM2FlNTU4MTYwM2NjZTNkYTY1YmM3M2E5NGYxOTE1NzNh
MWI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxl
ZUJpdHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbGVlQml0
cy5oCkBAIC0zOSwxMSArMzksMjEgQEAgY2xhc3MgSlNDZWxsOwogY2xhc3MgQ2FsbGVlQml0cyB7
CiBwdWJsaWM6CiAgICAgQ2FsbGVlQml0cygpID0gZGVmYXVsdDsKLSAgICBDYWxsZWVCaXRzKHZv
aWQqIHB0cikgOiBtX3B0cihwdHIpIHsgfSAKKyAgICBDYWxsZWVCaXRzKGludDY0X3QgdmFsdWUp
CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgOiBtX3B0ciB7IHJlaW50ZXJwcmV0X2Nhc3Q8
dm9pZCo+KHZhbHVlKSB9CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICA6IG1fcHRy
IHsgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKS5wYXlsb2Fk
KCkpIH0KKyAgICAgICAgLCBtX3RhZyB7IEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudGFnKCkgfQor
I2VuZGlmCisgICAgeyB9CiAKICAgICBDYWxsZWVCaXRzJiBvcGVyYXRvcj0oSlNDZWxsKiBjZWxs
KQogICAgIHsKICAgICAgICAgbV9wdHIgPSBjZWxsOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisg
ICAgICAgIG1fdGFnID0gSlNWYWx1ZTo6Q2VsbFRhZzsKKyNlbmRpZgogICAgICAgICBBU1NFUlQo
aXNDZWxsKCkpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQpAQCAtNTEsMTggKzYxLDI0
IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgc3RhdGljIHZvaWQqIGJv
eFdhc20oV2FzbTo6Q2FsbGVlKiBjYWxsZWUpCiAgICAgewotICAgICAgICBDYWxsZWVCaXRzIHJl
c3VsdChyZWludGVycHJldF9jYXN0PHZvaWQqPihyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4o
Y2FsbGVlKSB8IEpTVmFsdWU6Oldhc21UYWcpKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAg
ICBDYWxsZWVCaXRzIHJlc3VsdCB7IHJlaW50ZXJwcmV0X2Nhc3Q8aW50NjRfdD4oY2FsbGVlKSB8
IEpTVmFsdWU6Oldhc21UYWcgfTsKICAgICAgICAgQVNTRVJUKHJlc3VsdC5pc1dhc20oKSk7CiAg
ICAgICAgIHJldHVybiByZXN1bHQucmF3UHRyKCk7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQor
ICAgICAgICByZXR1cm4gY2FsbGVlOyAvLyBUaGUgcG9pbnRlciBpcyBhcyBpcywgYnV0IHRoZSBj
b3JyZXNwb25kaW5nIHRhZyBmaWVsZCBuZWVkcyB0byBiZSBzZXQgdG8gV2FzbVRhZyBzZXBhcmF0
ZWx5LgorI2VuZGlmCiAgICAgfQogI2VuZGlmCiAKICAgICBib29sIGlzV2FzbSgpIGNvbnN0CiAg
ICAgewotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLSAgICAgICAgcmV0dXJuIChyZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4obV9wdHIpICYgSlNWYWx1ZTo6V2FzbU1hc2spID09IEpTVmFsdWU6
Oldhc21UYWc7Ci0jZWxzZQorI2lmICFFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKKyNlbGlmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHJldHVybiAocmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KG1fcHRyKSAmIEpTVmFsdWU6Oldhc21NYXNrKSA9PSBKU1ZhbHVl
OjpXYXNtVGFnOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgcmV0dXJuIG1fdGFn
ID09IEpTVmFsdWU6Oldhc21UYWc7CiAjZW5kaWYKICAgICB9CiAgICAgYm9vbCBpc0NlbGwoKSBj
b25zdCB7IHJldHVybiAhaXNXYXNtKCk7IH0KQEAgLTc3LDE0ICs5MywyMSBAQCBwdWJsaWM6CiAg
ICAgV2FzbTo6Q2FsbGVlKiBhc1dhc21DYWxsZWUoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNT
RVJUKGlzV2FzbSgpKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDxXYXNtOjpDYWxsZWUqPihyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4obV9w
dHIpICYgfkpTVmFsdWU6Oldhc21UYWcpOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAg
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2FzbTo6Q2FsbGVlKj4obV9wdHIpOworI2VuZGlm
CiAgICAgfQogI2VuZGlmCiAKICAgICB2b2lkKiByYXdQdHIoKSBjb25zdCB7IHJldHVybiBtX3B0
cjsgfQotICAgIAorCiBwcml2YXRlOgogICAgIHZvaWQqIG1fcHRyIHsgbnVsbHB0ciB9OworI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCisgICAgdWludDMyX3QgbV90YWcgeyBKU1ZhbHVlOjpFbXB0eVZh
bHVlVGFnIH07CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaAppbmRleCBkODc5YzkwYmUzMTE3ODYy
MzNmNTI2YjE4M2VkZjFjYjNjN2JiMzhhLi40NjE4MTNjNDFkMzM3MmRmZDRiMTgxMjMyOTE1MTk0
MTIxYmUyYWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
UmVnaXN0ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0
ZXIuaApAQCAtNzIsNiArNzIsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGludDY0X3Qg
dW5ib3hlZEludDY0KCkgY29uc3Q7CiAgICAgICAgIGludDY0X3QgYXNhblVuc2FmZVVuYm94ZWRJ
bnQ2NCgpIGNvbnN0OwogICAgICAgICBib29sIHVuYm94ZWRCb29sZWFuKCkgY29uc3Q7CisjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBmbG9hdCB1
bmJveGVkRmxvYXQoKSBjb25zdDsKKyAgICAgICAgZmxvYXQgYXNhblVuc2FmZVVuYm94ZWRGbG9h
dCgpIGNvbnN0OworI2VuZGlmCiAgICAgICAgIGRvdWJsZSB1bmJveGVkRG91YmxlKCkgY29uc3Q7
CiAgICAgICAgIGRvdWJsZSBhc2FuVW5zYWZlVW5ib3hlZERvdWJsZSgpIGNvbnN0OwogICAgICAg
ICBKU0NlbGwqIHVuYm94ZWRDZWxsKCkgY29uc3Q7CkBAIC0xODgsNiArMTkyLDE4IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICByZXR1cm4gISFwYXlsb2FkKCk7CiAgICAgfQogCisjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZKSAmJiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIEFMV0FZU19JTkxJTkUg
ZmxvYXQgUmVnaXN0ZXI6OnVuYm94ZWRGbG9hdCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4gYml0d2lzZV9jYXN0PGZsb2F0PihwYXlsb2FkKCkpOworICAgIH0KKworICAgIFNVUFBSRVNT
X0FTQU4gQUxXQVlTX0lOTElORSBmbG9hdCBSZWdpc3Rlcjo6YXNhblVuc2FmZVVuYm94ZWRGbG9h
dCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGZsb2F0PihwYXls
b2FkKCkpOworICAgIH0KKyNlbmRpZgorCiAgICAgQUxXQVlTX0lOTElORSBkb3VibGUgUmVnaXN0
ZXI6OnVuYm94ZWREb3VibGUoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHUubnVtYmVy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXggMDk3
MjA4MTZlZjYyOWU5ZTdlYjJiM2Y0YzU3OGY5MTA3NTc3NzhlYy4uN2M3YTAyZGY5ZjIwNTEyMGY5
NTk5ZDZjNjdmZDU1MWNhZWYyZjNmMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9Bc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fz
c2VtYmx5SGVscGVycy5oCkBAIC0xNDAzLDcgKzE0MDMsMTAgQEAgcHVibGljOgogICAgICAgICBq
aXRBc3NlcnRJc0pTRG91YmxlKGdwcik7CiAgICAgICAgIHJldHVybiB1bmJveERvdWJsZVdpdGhv
dXRBc3NlcnRpb25zKGdwciwgcmVzdWx0R1BSLCBmcHIsIG1vZGUpOwogICAgIH0KLSAgICAKKyAg
ICB2b2lkIHVuYm94RG91YmxlKEpTVmFsdWVSZWdzIHJlZ3MsIEZQUlJlZyBmcHIpCisgICAgewor
ICAgICAgICB1bmJveERvdWJsZShyZWdzLnRhZ0dQUigpLCByZWdzLnBheWxvYWRHUFIoKSwgZnBy
KTsKKyAgICB9CiAgICAgdm9pZCBib3hEb3VibGUoRlBSUmVnIGZwciwgSlNWYWx1ZVJlZ3MgcmVn
cywgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlID0gSGF2ZVRhZ1JlZ2lzdGVycykKICAgICB7CiAgICAg
ICAgIGJveERvdWJsZShmcHIsIHJlZ3MuZ3ByKCksIG1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmNwcAppbmRleCBlZDgzMDNkZTQx
YjU3NGFmY2U5Mjg5N2NmMGE5ZDVhZGVmNDA4MTE1Li5iYWQyMDI5ZjdjZjkwZTUxZjUwM2VjNmU2
OWVjOTU4MjljMzY5NjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Jl
Z2lzdGVyQXRPZmZzZXRMaXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Jl
Z2lzdGVyQXRPZmZzZXRMaXN0LmNwcApAQCAtMzksMTggKzM5LDQyIEBAIFJlZ2lzdGVyQXRPZmZz
ZXRMaXN0OjpSZWdpc3RlckF0T2Zmc2V0TGlzdCgpIHsgfQogUmVnaXN0ZXJBdE9mZnNldExpc3Q6
OlJlZ2lzdGVyQXRPZmZzZXRMaXN0KFJlZ2lzdGVyU2V0IHJlZ2lzdGVyU2V0LCBPZmZzZXRCYXNl
VHlwZSBvZmZzZXRCYXNlVHlwZSkKICAgICA6IG1fcmVnaXN0ZXJzKHJlZ2lzdGVyU2V0Lm51bWJl
ck9mU2V0UmVnaXN0ZXJzKCkpCiB7Ci0gICAgc2l6ZV90IG51bWJlck9mUmVnaXN0ZXJzID0gcmVn
aXN0ZXJTZXQubnVtYmVyT2ZTZXRSZWdpc3RlcnMoKTsKLSAgICBwdHJkaWZmX3Qgb2Zmc2V0ID0g
MDsKLSAgICAKLSAgICBpZiAob2Zmc2V0QmFzZVR5cGUgPT0gRnJhbWVQb2ludGVyQmFzZWQpCi0g
ICAgICAgIG9mZnNldCA9IC0oc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihudW1iZXJPZlJlZ2lzdGVy
cykgKiBzaXplb2YoQ1BVUmVnaXN0ZXIpKTsKKyAgICBjb25zdGV4cHIgc2l6ZV90IFNpemVPZkdQ
UiA9IHNpemVvZihDUFVSZWdpc3Rlcik7CisgICAgY29uc3RleHByIHNpemVfdCBTaXplT2ZGUFIg
PSBzaXplb2YoZG91YmxlKTsKIAorI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgc3RhdGljX2Fzc2Vy
dChTaXplT2ZHUFIgPT0gU2l6ZU9mRlBSKTsKKyAgICBzaXplX3QgbnVtYmVyT2ZSZWdzID0gcmVn
aXN0ZXJTZXQubnVtYmVyT2ZTZXRSZWdpc3RlcnMoKTsKKyAgICBtX3NpemVPZkFyZWFJbkJ5dGVz
ID0gbnVtYmVyT2ZSZWdzICogU2l6ZU9mR1BSOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAg
ICBzdGF0aWNfYXNzZXJ0KDIgKiBTaXplT2ZHUFIgPT0gU2l6ZU9mRlBSKTsKKyAgICBzaXplX3Qg
bnVtYmVyT2ZHUFJzID0gcmVnaXN0ZXJTZXQubnVtYmVyT2ZTZXRHUFJzKCk7CisgICAgc2l6ZV90
IG51bWJlck9mRlBScyA9IHJlZ2lzdGVyU2V0Lm51bWJlck9mU2V0RlBScygpOworICAgIGlmIChu
dW1iZXJPZkZQUnMpCisgICAgICAgIG51bWJlck9mR1BScyA9IFdURjo6cm91bmRVcFRvTXVsdGlw
bGVPZjwyPihudW1iZXJPZkdQUnMpOworICAgIG1fc2l6ZU9mQXJlYUluQnl0ZXMgPSBudW1iZXJP
ZkdQUnMgKiBTaXplT2ZHUFIgKyBudW1iZXJPZkZQUnMgKiBTaXplT2ZGUFI7CisjZW5kaWYKKwor
ICAgIHB0cmRpZmZfdCBzdGFydE9mZnNldCA9IDA7CisgICAgaWYgKG9mZnNldEJhc2VUeXBlID09
IEZyYW1lUG9pbnRlckJhc2VkKQorICAgICAgICBzdGFydE9mZnNldCA9IC1zdGF0aWNfY2FzdDxw
dHJkaWZmX3Q+KG1fc2l6ZU9mQXJlYUluQnl0ZXMpOworCisgICAgcHRyZGlmZl90IG9mZnNldCA9
IHN0YXJ0T2Zmc2V0OwogICAgIHVuc2lnbmVkIGluZGV4ID0gMDsKICAgICByZWdpc3RlclNldC5m
b3JFYWNoKFsmXSAoUmVnIHJlZykgeworICAgICAgICBzaXplX3QgcmVnaXN0ZXJTaXplID0gU2l6
ZU9mR1BSOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIGlmIChyZWcuaXNGUFIoKSkg
eworICAgICAgICAgICAgcmVnaXN0ZXJTaXplID0gU2l6ZU9mRlBSOworICAgICAgICAgICAgb2Zm
c2V0ID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mPFNpemVPZkZQUj4ob2Zmc2V0KTsKKyAgICAg
ICAgfQorI2VuZGlmCiAgICAgICAgIG1fcmVnaXN0ZXJzW2luZGV4XSA9IFJlZ2lzdGVyQXRPZmZz
ZXQocmVnLCBvZmZzZXQpOwotICAgICAgICBvZmZzZXQgKz0gc2l6ZW9mKENQVVJlZ2lzdGVyKTsK
KyAgICAgICAgb2Zmc2V0ICs9IHJlZ2lzdGVyU2l6ZTsKICAgICAgICAgKytpbmRleDsKICAgICB9
KTsKKworICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KG9mZnNldCAtIHN0YXJ0T2Zmc2V0
KSA9PSBtX3NpemVPZkFyZWFJbkJ5dGVzKTsKIH0KIAogdm9pZCBSZWdpc3RlckF0T2Zmc2V0TGlz
dDo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5oCmluZGV4IGQxMTdjZjc1ZTA5ODg4NDgzZTc2
NWU1MmEzZWM3NmYyMjJhNzEzODMuLjJhMGU4YjlkMTI1NTQ1YjQwNDIxNzdkZTY0MjY0MjhkMmVk
OGQyNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9m
ZnNldExpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRPZmZz
ZXRMaXN0LmgKQEAgLTY1LDExICs2NSwxNCBAQCBwdWJsaWM6CiAgICAgRml4ZWRWZWN0b3I8UmVn
aXN0ZXJBdE9mZnNldD46OmNvbnN0X2l0ZXJhdG9yIGJlZ2luKCkgY29uc3QgeyByZXR1cm4gbV9y
ZWdpc3RlcnMuYmVnaW4oKTsgfQogICAgIEZpeGVkVmVjdG9yPFJlZ2lzdGVyQXRPZmZzZXQ+Ojpj
b25zdF9pdGVyYXRvciBlbmQoKSBjb25zdCB7IHJldHVybiBtX3JlZ2lzdGVycy5lbmQoKTsgfQog
CisgICAgc2l6ZV90IHNpemVPZkFyZWFJbkJ5dGVzKCkgY29uc3QgeyByZXR1cm4gbV9zaXplT2ZB
cmVhSW5CeXRlczsgfQorCiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXRMaXN0JiBs
bGludEJhc2VsaW5lQ2FsbGVlU2F2ZVJlZ2lzdGVycygpOyAvLyBSZWdpc3RlcnMgYW5kIE9mZnNl
dHMgc2F2ZWQgYW5kIHVzZWQgYnkgdGhlIExMSW50LgogICAgIHN0YXRpYyBjb25zdCBSZWdpc3Rl
ckF0T2Zmc2V0TGlzdCYgZGZnQ2FsbGVlU2F2ZVJlZ2lzdGVycygpOyAvLyBSZWdpc3RlcnMgYW5k
IE9mZnNldHMgc2F2ZWQgYW5kIHVzZWQgYnkgREZHLgogCiBwcml2YXRlOgogICAgIEZpeGVkVmVj
dG9yPFJlZ2lzdGVyQXRPZmZzZXQ+IG1fcmVnaXN0ZXJzOworICAgIHNpemVfdCBtX3NpemVPZkFy
ZWFJbkJ5dGVzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyU2V0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVnaXN0ZXJTZXQuY3BwCmluZGV4IDUwZWVjMjhhNDFmNmU3NWYwNWIyNmZiZTA2NTUx
ZDIxOTA2NWU3YWIuLmMxNmE5ZTQ3MjE0OWU1ZWQwYWNlM2RhZWMxMjYyZGE4MWJmMGFlMjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuY3BwCkBAIC05NCw2ICs5NCw4
IEBAIFJlZ2lzdGVyU2V0IFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKQogICAg
IHJldHVybiBSZWdpc3RlclNldChNYWNyb0Fzc2VtYmxlcjo6c19zY3JhdGNoUmVnaXN0ZXIpOwog
I2VsaWYgQ1BVKEFSTTY0KSB8fCBDUFUoUklTQ1Y2NCkKICAgICByZXR1cm4gUmVnaXN0ZXJTZXQo
TWFjcm9Bc3NlbWJsZXI6OmRhdGFUZW1wUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjptZW1vcnlU
ZW1wUmVnaXN0ZXIpOworI2VsaWYgQ1BVKEFSTV9USFVNQjIpCisgICAgcmV0dXJuIFJlZ2lzdGVy
U2V0KE1hY3JvQXNzZW1ibGVyOjpkYXRhVGVtcFJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6YWRk
cmVzc1RlbXBSZWdpc3Rlcik7CiAjZWxpZiBDUFUoTUlQUykKICAgICBSZWdpc3RlclNldCByZXN1
bHQ7CiAgICAgcmVzdWx0LnNldChNYWNyb0Fzc2VtYmxlcjo6aW1tVGVtcFJlZ2lzdGVyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25m
aWcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcu
aAppbmRleCBlNzZkYWRhMGQzMzI5YzBkMjViZmM5M2MxNWU4ODdiMzM4ZTk3ZTM1Li5iNDcwMzEx
NWIzYTZhNjAzODc0YTIwNWE2MzNjNGRmMDkwNTUyNWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCkBAIC0xNDMsNiArMTQz
LDEyIEBACiAjZGVmaW5lIE9GRkxJTkVfQVNNX0pTVkFMVUU2NCAwCiAjZW5kaWYKIAorI2lmIFVT
RShKU1ZBTFVFMzJfNjQpCisjZGVmaW5lIE9GRkxJTkVfQVNNX0pTVkFMVUUzMl82NCAxCisjZWxz
ZQorI2RlZmluZSBPRkZMSU5FX0FTTV9KU1ZBTFVFMzJfNjQgMAorI2VuZGlmCisKICNpZiBVU0Uo
QklHSU5UMzIpCiAjZGVmaW5lIE9GRkxJTkVfQVNNX0JJR0lOVDMyIDEKICNlbHNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0
LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJf
NjQuYXNtCmluZGV4IGFkMjUwMTdlZjBiNDdmYzBiMDUwNDc0N2RiNTc1YjkxNTAxOGFmZWEuLjcw
NDAxZTQ1YmU2ZDAyYjllYmIyZTA0YTNhODhiYzk4OWZiZTMzNjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNt
CkBAIC0zOCwxOCArMzgsMzQgQEAgbWFjcm8gZ2V0dU9wZXJhbmRXaWRlMTZKUyhvcGNvZGVTdHJ1
Y3QsIGZpZWxkTmFtZSwgZHN0KQogICAgIGxvYWRoIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8l
ZmllbGROYW1lJV9pbmRleCAqIDIgKyBPcGNvZGVJRFdpZGUxNlNpemVKU1tQQiwgUEMsIDFdLCBk
c3QKIGVuZAogCittYWNybyBnZXR1T3BlcmFuZFdpZGUxNldhc20ob3Bjb2RlU3RydWN0LCBmaWVs
ZE5hbWUsIGRzdCkKKyAgICBsb2FkaCBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFt
ZSVfaW5kZXggKiAyICsgT3Bjb2RlSURXaWRlMTZTaXplV2FzbVtQQiwgUEMsIDFdLCBkc3QKK2Vu
ZAorCiBtYWNybyBnZXRPcGVyYW5kV2lkZTE2SlMob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRz
dCkKICAgICBsb2FkaHNpIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRl
eCAqIDIgKyBPcGNvZGVJRFdpZGUxNlNpemVKU1tQQiwgUEMsIDFdLCBkc3QKIGVuZAogCittYWNy
byBnZXRPcGVyYW5kV2lkZTE2V2FzbShvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQorICAg
IGxvYWRoc2kgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogMiAr
IE9wY29kZUlEV2lkZTE2U2l6ZVdhc21bUEIsIFBDLCAxXSwgZHN0CitlbmQKKwogbWFjcm8gZ2V0
dU9wZXJhbmRXaWRlMzJKUyhvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQogICAgIGxvYWRp
IGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRleCAqIDQgKyBPcGNvZGVJ
RFdpZGUzMlNpemVKU1tQQiwgUEMsIDFdLCBkc3QKIGVuZAogCittYWNybyBnZXR1T3BlcmFuZFdp
ZGUzMldhc20ob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkKKyAgICBsb2FkaSBjb25zdGV4
cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiA0ICsgT3Bjb2RlSURXaWRlMzJT
aXplV2FzbVtQQiwgUEMsIDFdLCBkc3QKK2VuZAorCiBtYWNybyBnZXRPcGVyYW5kV2lkZTMySlMo
b3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkKICAgICBsb2FkaXMgY29uc3RleHByICVvcGNv
ZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogNCArIE9wY29kZUlEV2lkZTMyU2l6ZUpTW1BC
LCBQQywgMV0sIGRzdAogZW5kCiAKK21hY3JvIGdldE9wZXJhbmRXaWRlMzJXYXNtKG9wY29kZVN0
cnVjdCwgZmllbGROYW1lLCBkc3QpCisgICAgbG9hZGlzIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0
JV8lZmllbGROYW1lJV9pbmRleCAqIDQgKyBPcGNvZGVJRFdpZGUzMlNpemVXYXNtW1BCLCBQQywg
MV0sIGRzdAorZW5kCisKIG1hY3JvIG1ha2VSZXR1cm4oZ2V0LCBkaXNwYXRjaCwgZm4pCiAgICAg
Zm4obWFjcm8odGFnLCBwYXlsb2FkKQogICAgICAgICBtb3ZlIHRhZywgdDUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseS5hc20gYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHkuYXNtCmluZGV4IDI0YzE0YjNmOGY2YjVmNDU1
YmQwYTVhNzdjNTkzMmJlOWY2OGVlYWYuLjlhNTc3NTJlYzcxYjIxMzViZTUzNjgwNDYzZWQyN2Y2
ODIxNDUwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3Nl
bWJseS5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5LmFz
bQpAQCAtMzEsNTYgKzMxLDgwIEBAIGlmIEhBVkVfRkFTVF9UTFMKIGVuZAogCiBpZiBYODZfNjQK
LSAgICBjb25zdCBOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgPSA2CisgICAgY29uc3QgTnVtYmVy
T2ZXYXNtQXJndW1lbnRKU1JzID0gNgogZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQK
LSAgICBjb25zdCBOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgPSA4CisgICAgY29uc3QgTnVtYmVy
T2ZXYXNtQXJndW1lbnRKU1JzID0gOAorZWxzaWYgQVJNdjcKKyAgICBjb25zdCBOdW1iZXJPZldh
c21Bcmd1bWVudEpTUnMgPSAyCiBlbHNlCiAgICAgZXJyb3IKIGVuZAorCiBjb25zdCBOdW1iZXJP
Zldhc21Bcmd1bWVudEZQUnMgPSA4Ci1jb25zdCBOdW1iZXJPZldhc21Bcmd1bWVudHMgPSBOdW1i
ZXJPZldhc21Bcmd1bWVudEdQUnMgKyBOdW1iZXJPZldhc21Bcmd1bWVudEZQUnMKKworY29uc3Qg
TnVtYmVyT2ZXYXNtQXJndW1lbnRzID0gTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgTnVtYmVy
T2ZXYXNtQXJndW1lbnRGUFJzCiAKICMgQWxsIGNhbGxlZSBzYXZlcyBtdXN0IG1hdGNoIHRoZSBk
ZWZpbml0aW9uIGluIFdhc21DYWxsZWUuY3BwCiAKICMgVGhlc2UgbXVzdCBtYXRjaCB0aGUgZGVm
aW5pdGlvbiBpbiBXYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwCi1jb25zdCB3YXNtSW5zdGFuY2Ug
PSBjc3IwCi1jb25zdCBtZW1vcnlCYXNlID0gY3NyMwotY29uc3QgYm91bmRzQ2hlY2tpbmdTaXpl
ID0gY3NyNAoraWYgWDg2XzY0IG9yIEFSTTY0IG9yIEFSTTY0RQorICAgIGNvbnN0IHdhc21JbnN0
YW5jZSA9IGNzcjAKKyAgICBjb25zdCBtZW1vcnlCYXNlID0gY3NyMworICAgIGNvbnN0IGJvdW5k
c0NoZWNraW5nU2l6ZSA9IGNzcjQKK2Vsc2lmIEFSTXY3CisgICAgY29uc3Qgd2FzbUluc3RhbmNl
ID0gY3NyMAorICAgIGNvbnN0IG1lbW9yeUJhc2UgPSBpbnZhbGlkR1BSCisgICAgY29uc3QgYm91
bmRzQ2hlY2tpbmdTaXplID0gaW52YWxpZEdQUgorZWxzZQorICAgIGVycm9yCitlbmQKIAogIyBU
aGlzIG11c3QgbWF0Y2ggdGhlIGRlZmluaXRpb24gaW4gTG93TGV2ZWxJbnRlcnByZXRlci5hc20K
IGlmIFg4Nl82NAogICAgIGNvbnN0IFBCID0gY3NyMgogZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9y
IFJJU0NWNjQKICAgICBjb25zdCBQQiA9IGNzcjcKK2Vsc2lmIEFSTXY3CisgICAgY29uc3QgUEIg
PSBjc3IxCiBlbHNlCiAgICAgZXJyb3IKIGVuZAogCi1tYWNybyBmb3JFYWNoQXJndW1lbnRHUFIo
Zm4pCi0gICAgZm4oMCAqIDgsIHdhMCkKLSAgICBmbigxICogOCwgd2ExKQotICAgIGZuKDIgKiA4
LCB3YTIpCi0gICAgZm4oMyAqIDgsIHdhMykKLSAgICBmbig0ICogOCwgd2E0KQotICAgIGZuKDUg
KiA4LCB3YTUpCi0gICAgaWYgQVJNNjQgb3IgQVJNNjRFCi0gICAgICAgIGZuKDYgKiA4LCB3YTYp
Ci0gICAgICAgIGZuKDcgKiA4LCB3YTcpCisjIEhlbHBlciBtYWNyb3MKKworIyBPbiBKU1ZBTFVF
NjQsIGVhY2ggNjQtYml0IGFyZ3VtZW50IEdQUiBob2xkcyBvbmUgd2hvbGUgV2FzbSB2YWx1ZS4K
KyMgT24gSlNWQUxVRTMyXzY0LCBhIGNvbnNlY3V0aXZlIHBhaXIgb2YgZXZlbi9vZGQgbnVtYmVy
ZWQgR1BScyBob2xkIGEgc2luZ2xlCisjIFdhc20gdmFsdWUgKGV2ZW4gaWYgdGhhdCB2YWx1ZSBp
cyBpMzIvZjMyLCB0aGUgb2RkIG51bWJlcmVkIEdQUiBob2xkcyB0aGUKKyMgbW9yZSBzaWduaWZp
Y2FudCB3b3JkKS4KK21hY3JvIGZvckVhY2hBcmd1bWVudEpTUihmbikKKyAgICBpZiBKU1ZBTFVF
NjQKKyAgICAgICAgZm4oMCAqIDgsIHdhMCkKKyAgICAgICAgZm4oMSAqIDgsIHdhMSkKKyAgICAg
ICAgZm4oMiAqIDgsIHdhMikKKyAgICAgICAgZm4oMyAqIDgsIHdhMykKKyAgICAgICAgZm4oNCAq
IDgsIHdhNCkKKyAgICAgICAgZm4oNSAqIDgsIHdhNSkKKyAgICAgICAgaWYgQVJNNjQgb3IgQVJN
NjRFCisgICAgICAgICAgICBmbig2ICogOCwgd2E2KQorICAgICAgICAgICAgZm4oNyAqIDgsIHdh
NykKKyAgICAgICAgZW5kCisgICAgZWxzZQorICAgICAgICBmbigwICogOCwgd2ExLCB3YTApCisg
ICAgICAgIGZuKDEgKiA4LCB3YTMsIHdhMikKICAgICBlbmQKIGVuZAogCiBtYWNybyBmb3JFYWNo
QXJndW1lbnRGUFIoZm4pCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDApICog
OCwgd2ZhMCkKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgMSkgKiA4LCB3ZmEx
KQotICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyAyKSAqIDgsIHdmYTIpCi0gICAg
Zm4oKE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDMpICogOCwgd2ZhMykKLSAgICBmbigoTnVt
YmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgNCkgKiA4LCB3ZmE0KQotICAgIGZuKChOdW1iZXJPZldh
c21Bcmd1bWVudEdQUnMgKyA1KSAqIDgsIHdmYTUpCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3Vt
ZW50R1BScyArIDYpICogOCwgd2ZhNikKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJz
ICsgNykgKiA4LCB3ZmE3KQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyAwKSAq
IDgsIHdmYTApCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIDEpICogOCwgd2Zh
MSkKKyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgMikgKiA4LCB3ZmEyKQorICAg
IGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyAzKSAqIDgsIHdmYTMpCisgICAgZm4oKE51
bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIDQpICogOCwgd2ZhNCkKKyAgICBmbigoTnVtYmVyT2ZX
YXNtQXJndW1lbnRKU1JzICsgNSkgKiA4LCB3ZmE1KQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1
bWVudEpTUnMgKyA2KSAqIDgsIHdmYTYpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNS
cyArIDcpICogOCwgd2ZhNykKIGVuZAogCi0jIEhlbHBlciBtYWNyb3MKICMgRklYTUU6IEV2ZW50
dWFsbHkgdGhpcyBzaG91bGQgYmUgdW5pZmllZCB3aXRoIHRoZSBKUyB2ZXJzaW9ucwogIyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjU2CiAKQEAgLTEzMCwxMCAr
MTU0LDE1IEBAIG1hY3JvIGNoZWNrU3dpdGNoVG9KSVRGb3JQcm9sb2d1ZShjb2RlQmxvY2tSZWdp
c3RlcikKICAgICAgICAgICAgIGJ0cHogcjAsIC5yZWNvdmVyCiAgICAgICAgICAgICBtb3ZlIHIw
LCB3czAKIAotICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50R1BSKG1hY3JvIChvZmZzZXQsIGdw
cikKK2lmIEpTVkFMVUU2NAorICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChv
ZmZzZXQsIGdwcikKICAgICAgICAgICAgICAgICBsb2FkcSAtb2Zmc2V0IC0gOCAtIENhbGxlZVNh
dmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXSwgZ3ByCiAgICAgICAgICAgICBlbmQp
Ci0KK2Vsc2UKKyAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBn
cHJNc3csIGdwTHN3KQorICAgICAgICAgICAgICAgIGxvYWQyaWEgLW9mZnNldCAtIDggLSBDYWxs
ZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0sIGdwTHN3LCBncHJNc3cKKyAg
ICAgICAgICAgIGVuZCkKK2VuZAogICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50RlBSKG1hY3Jv
IChvZmZzZXQsIGZwcikKICAgICAgICAgICAgICAgICBsb2FkZCAtb2Zmc2V0IC0gOCAtIENhbGxl
ZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXSwgZnByCiAgICAgICAgICAgICBl
bmQpCkBAIC0yMDEsNiArMjMwLDkgQEAgbWFjcm8gcHJlc2VydmVDYWxsZWVTYXZlc1VzZWRCeVdh
c20oKQogICAgIGVsc2lmIFg4Nl82NCBvciBSSVNDVjY0CiAgICAgICAgIHN0b3JlcCBQQiwgLTB4
OFtjZnJdCiAgICAgICAgIHN0b3JlcCB3YXNtSW5zdGFuY2UsIC0weDEwW2Nmcl0KKyAgICBlbHNp
ZiBBUk12NworICAgICAgICBzdG9yZXAgUEIsIC00W2Nmcl0KKyAgICAgICAgc3RvcmVwIHdhc21J
bnN0YW5jZSwgLThbY2ZyXQogICAgIGVsc2UKICAgICAgICAgZXJyb3IKICAgICBlbmQKQEAgLTIx
NSw2ICsyNDcsOSBAQCBtYWNybyByZXN0b3JlQ2FsbGVlU2F2ZXNVc2VkQnlXYXNtKCkKICAgICBl
bHNpZiBYODZfNjQgb3IgUklTQ1Y2NAogICAgICAgICBsb2FkcCAtMHg4W2Nmcl0sIFBCCiAgICAg
ICAgIGxvYWRwIC0weDEwW2Nmcl0sIHdhc21JbnN0YW5jZQorICAgIGVsc2lmIEFSTXY3CisgICAg
ICAgIGxvYWRwIC00W2Nmcl0sIFBCCisgICAgICAgIGxvYWRwIC04W2Nmcl0sIHdhc21JbnN0YW5j
ZQogICAgIGVsc2UKICAgICAgICAgZXJyb3IKICAgICBlbmQKQEAgLTI0NSwxMCArMjgwLDEyIEBA
IGVuZAogZW5kCiAKIG1hY3JvIHJlbG9hZE1lbW9yeVJlZ2lzdGVyc0Zyb21JbnN0YW5jZShpbnN0
YW5jZSwgc2NyYXRjaDEsIHNjcmF0Y2gyKQoraWYgbm90IEFSTXY3CiAgICAgbG9hZHAgV2FzbTo6
SW5zdGFuY2U6Om1fY2FjaGVkTWVtb3J5W2luc3RhbmNlXSwgbWVtb3J5QmFzZQogICAgIGxvYWRw
IFdhc206Okluc3RhbmNlOjptX2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZVtpbnN0YW5jZV0sIGJv
dW5kc0NoZWNraW5nU2l6ZQogICAgIGNhZ2VkUHJpbWl0aXZlTWF5QmVOdWxsKG1lbW9yeUJhc2Us
IGJvdW5kc0NoZWNraW5nU2l6ZSwgc2NyYXRjaDEsIHNjcmF0Y2gyKSAjIElmIGJvdW5kc0NoZWNr
aW5nU2l6ZSBpcyAwLCBwb2ludGVyIGNhbiBiZSBhIG51bGxwdHIuCiBlbmQKK2VuZAogCiBtYWNy
byB0aHJvd0V4Y2VwdGlvbihleGNlcHRpb24pCiAgICAgc3RvcmVpIGNvbnN0ZXhwciBXYXNtOjpF
eGNlcHRpb25UeXBlOjolZXhjZXB0aW9uJSwgQXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgKyBQ
YXlsb2FkT2Zmc2V0W2Nmcl0KQEAgLTI4MCw4ICszMTcsMTMgQEAgbWFjcm8gcmVzdG9yZVN0YWNr
UG9pbnRlckFmdGVyQ2FsbCgpCiAgICAgbG9hZGkgV2FzbTo6TExJbnRDYWxsZWU6Om1fbnVtQ2Fs
bGVlTG9jYWxzW3dzMV0sIHdzMQogICAgIGxzaGlmdHAgMywgd3MxCiAgICAgYWRkcCBtYXhGcmFt
ZUV4dGVudEZvclNsb3dQYXRoQ2FsbCwgd3MxCitpZiBBUk12NworICAgIHN1YnAgY2ZyLCB3czEs
IHdzMQorICAgIG1vdmUgd3MxLCBzcAorZWxzZQogICAgIHN1YnAgY2ZyLCB3czEsIHNwCiBlbmQK
K2VuZAogCiBtYWNybyB3YXNtUHJvbG9ndWUobG9hZFdhc21JbnN0YW5jZSkKICAgICAjIFNldCB1
cCB0aGUgY2FsbCBmcmFtZSBhbmQgY2hlY2sgaWYgd2Ugc2hvdWxkIE9TUi4KQEAgLTI5Miw2ICsz
MzQsOSBAQCBtYWNybyB3YXNtUHJvbG9ndWUobG9hZFdhc21JbnN0YW5jZSkKIAogICAgIGxvYWRw
IFdhc206Okluc3RhbmNlOjptX293bmVyW3dhc21JbnN0YW5jZV0sIHdzMAogICAgIHN0b3JlcCB3
czAsIFRoaXNBcmd1bWVudE9mZnNldFtjZnJdCitpZiBub3QgSlNWQUxVRTY0CisgICAgc3RvcmVp
IENlbGxUYWcsIFRhZ09mZnNldCArIFRoaXNBcmd1bWVudE9mZnNldFtjZnJdCitlbmQKIAogICAg
IGxvYWRwIENhbGxlZVtjZnJdLCB3czAKICAgICBhbmRwIH4zLCB3czAKQEAgLTMwMyw2ICszNDgs
MTAgQEAgbWFjcm8gd2FzbVByb2xvZ3VlKGxvYWRXYXNtSW5zdGFuY2UpCiAgICAgYWRkcCBtYXhG
cmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCwgd3MxCiAgICAgc3VicCBjZnIsIHdzMSwgd3MxCiAK
K2lmIG5vdCBKU1ZBTFVFNjQKKyAgICBzdWJwIDgsIHdzMSAjIGFsaWduIHN0YWNrIHBvaW50ZXIK
K2VuZAorCiAgICAgYnBhIHdzMSwgY2ZyLCAuc3RhY2tPdmVyZmxvdwogICAgIGJwYmVxIFdhc206
Okluc3RhbmNlOjptX2NhY2hlZFN0YWNrTGltaXRbd2FzbUluc3RhbmNlXSwgd3MxLCAuc3RhY2tI
ZWlnaHRPSwogCkBAIC0zMTIsMTAgKzM2MSwxNSBAQCBtYWNybyB3YXNtUHJvbG9ndWUobG9hZFdh
c21JbnN0YW5jZSkKIC5zdGFja0hlaWdodE9LOgogICAgIG1vdmUgd3MxLCBzcAogCi0gICAgZm9y
RWFjaEFyZ3VtZW50R1BSKG1hY3JvIChvZmZzZXQsIGdwcikKK2lmIEpTVkFMVUU2NAorICAgIGZv
ckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHIpCiAgICAgICAgIHN0b3JlcSBncHIs
IC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJd
CiAgICAgZW5kKQotCitlbHNlCisgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQs
IGdwck1zdywgZ3BMc3cpCisgICAgICAgIHN0b3JlMmlhIGdwTHN3LCBncHJNc3csIC1vZmZzZXQg
LSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdCisgICAgZW5k
KQorZW5kCiAgICAgZm9yRWFjaEFyZ3VtZW50RlBSKG1hY3JvIChvZmZzZXQsIGZwcikKICAgICAg
ICAgc3RvcmVkIGZwciwgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdp
c3RlcnMgKiA4W2Nmcl0KICAgICBlbmQpCkBAIC0zMjksMTQgKzM4MywxNiBAQCBtYWNybyB3YXNt
UHJvbG9ndWUobG9hZFdhc21JbnN0YW5jZSkKICAgICBsb2FkaSBXYXNtOjpMTEludENhbGxlZTo6
bV9udW1WYXJzW3dzMF0sIHdzMQogICAgIHN1YmkgTnVtYmVyT2ZXYXNtQXJndW1lbnRzICsgQ2Fs
bGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzLCB3czEKICAgICBidGl6IHdzMSwgLnplcm9J
bml0aWFsaXplTG9jYWxzRG9uZQorICAgIGxzaGlmdGkgMywgd3MxCiAgICAgbmVnaSB3czEKK2lm
IEpTVkFMVUU2NAogICAgIHN4aTJxIHdzMSwgd3MxCitlbmQKICAgICBsZWFwIChOdW1iZXJPZldh
c21Bcmd1bWVudHMgKyBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKyAxKSAqIC04
W2Nmcl0sIHdzMAogLnplcm9Jbml0aWFsaXplTG9jYWxzTG9vcDoKLSAgICBhZGRxIDEsIHdzMQot
ICAgIHN0b3JlcSAwLCBbd3MwLCB3czEsIDhdCi0gICAgYnRxeiB3czEsIC56ZXJvSW5pdGlhbGl6
ZUxvY2Fsc0RvbmUKLSAgICBqbXAgLnplcm9Jbml0aWFsaXplTG9jYWxzTG9vcAorICAgIGFkZHAg
UHRyU2l6ZSwgd3MxCisgICAgc3RvcmVwIDAsIFt3czAsIHdzMV0KKyAgICBidHBueiB3czEsIC56
ZXJvSW5pdGlhbGl6ZUxvY2Fsc0xvb3AKIC56ZXJvSW5pdGlhbGl6ZUxvY2Fsc0RvbmU6CiBlbmQK
IApAQCAtMzc1LDYgKzQzMSwyNCBAQCBtYWNybyBzbG93V2FzbU9wKG9wY29kZU5hbWUpCiAgICAg
dW5wcmVmaXhlZFNsb3dXYXNtT3Aod2FzbV8lb3Bjb2RlTmFtZSUpCiBlbmQKIAorIyBGbG9hdCB0
byBmbG9hdCByb3VuZGluZyBvcHMKK21hY3JvIHdhc21Sb3VuZGluZ09wKG9wY29kZU5hbWUsIG9w
Y29kZVN0cnVjdCwgZm4pCitpZiBKU1ZBTFVFNjQgIyBBbGwgY3VycmVudCA2NC1iaXQgcGxhdGZv
cm1zIGhhdmUgaW5zdHJ1Y3Rpb25zIGZvciB0aGVzZQorICAgIHdhc21PcChvcGNvZGVOYW1lLCBv
cGNvZGVTdHJ1Y3QsIGZuKQorZWxzZQorICAgIHNsb3dXYXNtT3Aob3Bjb2RlTmFtZSkKK2VuZAor
ZW5kCisKKyMgaTY0IChzaWduZWQvdW5zaWduZWQpIHRvIGYzMiBvciBmNjQKK21hY3JvIHdhc21J
NjRUb0ZPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGZuKQoraWYgSlNWQUxVRTY0ICMgQWxs
IGN1cnJlbnQgNjQtYml0IHBsYXRmb3JtcyBoYXZlIGluc3RydWN0aW9ucyBmb3IgdGhlc2UKKyAg
ICB3YXNtT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBmbikKK2Vsc2UKKyAgICBzbG93V2Fz
bU9wKG9wY29kZU5hbWUpCitlbmQKK2VuZAorCiAjIE1hY3JvIHZlcnNpb24gb2YgbG9hZCBvcGVy
YXRpb25zOiBtbG9hZFtzdWZmaXhdCiAjIGxvYWRzIGZpZWxkIGZyb20gdGhlIGluc3RydWN0aW9u
IHN0cmVhbSBhbmQgcGVyZm9ybXMgbG9hZFtzdWZmaXhdIHRvIGRzdAogbWFjcm8gZmlyc3RDb25z
dGFudFJlZ2lzdGVySW5kZXgoY3R4LCBmbikKQEAgLTM5NywxMiArNDcxLDIxIEBAIG1hY3JvIGxv
YWRDb25zdGFudE9yVmFyaWFibGUoY3R4LCBpbmRleCwgbG9hZGVyKQogICAgIGVuZCkKIGVuZAog
CitpZiBKU1ZBTFVFNjQKIG1hY3JvIG1sb2FkcShjdHgsIGZpZWxkLCBkc3QpCiAgICAgd2dldHMo
Y3R4LCBmaWVsZCwgZHN0KQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoY3R4LCBkc3QsIG1h
Y3JvIChmcm9tKQogICAgICAgICBsb2FkcSBmcm9tLCBkc3QKICAgICBlbmQpCiBlbmQKK2Vsc2UK
K21hY3JvIG1sb2FkMmkoY3R4LCBmaWVsZCwgZHN0TXN3LCBkc3RMc3cpCisgICAgd2dldHMoY3R4
LCBmaWVsZCwgZHN0THN3KQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoY3R4LCBkc3RMc3cs
IG1hY3JvIChmcm9tKQorICAgICAgICBsb2FkMmlhIGZyb20sIGRzdExzdywgZHN0TXN3CisgICAg
ZW5kKQorZW5kCitlbmQKIAogbWFjcm8gbWxvYWRpKGN0eCwgZmllbGQsIGRzdCkKICAgICB3Z2V0
cyhjdHgsIGZpZWxkLCBkc3QpCkBAIC00MzQsMTEgKzUxNywxOSBAQCBlbmQKIAogIyBUeXBlZCBy
ZXR1cm5zCiAKK2lmIEpTVkFMVUU2NAogbWFjcm8gcmV0dXJucShjdHgsIHZhbHVlKQogICAgIHdn
ZXRzKGN0eCwgbV9kc3QsIHQ1KQogICAgIHN0b3JlcSB2YWx1ZSwgW2NmciwgdDUsIDhdCiAgICAg
ZGlzcGF0Y2goY3R4KQogZW5kCitlbHNlCittYWNybyByZXR1cm4yaShjdHgsIG1zdywgbHN3KQor
ICAgIHdnZXRzKGN0eCwgbV9kc3QsIHQ1KQorICAgIHN0b3JlMmlhIGxzdywgbXN3LCBbY2ZyLCB0
NSwgOF0KKyAgICBkaXNwYXRjaChjdHgpCitlbmQKK2VuZAogCiBtYWNybyByZXR1cm5pKGN0eCwg
dmFsdWUpCiAgICAgd2dldHMoY3R4LCBtX2RzdCwgdDUpCkBAIC01MTEsNyArNjAyLDcgQEAgbWFj
cm8gd2FzbUNvZGVCbG9ja0dldHRlcih0YXJnZXRSZWdpc3RlcikKIGVuZAogCiBvcCh3YXNtX2Z1
bmN0aW9uX3Byb2xvZ3VlLCBtYWNybyAoKQotICAgIGlmIG5vdCBXRUJBU1NFTUJMWSBvciBub3Qg
SlNWQUxVRTY0IG9yIENfTE9PUCBvciBDX0xPT1BfV0lOCisgICAgaWYgbm90IFdFQkFTU0VNQkxZ
IG9yIENfTE9PUCBvciBDX0xPT1BfV0lOCiAgICAgICAgIGVycm9yCiAgICAgZW5kCiAKQEAgLTUy
MCw3ICs2MTEsNyBAQCBvcCh3YXNtX2Z1bmN0aW9uX3Byb2xvZ3VlLCBtYWNybyAoKQogZW5kKQog
CiBvcCh3YXNtX2Z1bmN0aW9uX3Byb2xvZ3VlX25vX3RscywgbWFjcm8gKCkKLSAgICBpZiBub3Qg
V0VCQVNTRU1CTFkgb3Igbm90IEpTVkFMVUU2NCBvciBDX0xPT1Agb3IgQ19MT09QX1dJTgorICAg
IGlmIG5vdCBXRUJBU1NFTUJMWSBvciBDX0xPT1Agb3IgQ19MT09QX1dJTgogICAgICAgICBlcnJv
cgogICAgIGVuZAogCkBAIC02MjIsMTYgKzcxMywyMyBAQCBfd2FzbV9lbnRlcjoKICAgICBjaGVj
a1N0YWNrUG9pbnRlckFsaWdubWVudCh0MiwgMHhkZWFkMDBlMSkKICAgICBsb2FkcCBDb2RlQmxv
Y2tbY2ZyXSwgdDIgICAgICAgICAgICAgICAgLy8gdDI8Q29kZUJsb2NrPiA9IGNmci5Db2RlQmxv
Y2sKICAgICBsb2FkaSBXYXNtOjpMTEludENhbGxlZTo6bV9udW1WYXJzW3QyXSwgdDIgICAgICAv
LyB0MjxzaXplX3Q+ID0gdDI8Q29kZUJsb2NrPi5tX251bVZhcnMKLSAgICBzdWJxIENhbGxlZVNh
dmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyArIE51bWJlck9mV2FzbUFyZ3VtZW50cywgdDIKKyAg
ICBzdWJpIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyArIE51bWJlck9mV2FzbUFy
Z3VtZW50cywgdDIKICAgICBidGl6IHQyLCAub3BFbnRlckRvbmUKLSAgICBtb3ZlIGNmciwgdDEK
LSAgICBzdWJxIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDggKyBOdW1iZXJP
Zldhc21Bcmd1bWVudHMgKiA4LCB0MQorICAgIHN1YnAgY2ZyLCAoQ2FsbGVlU2F2ZVNwYWNlQXNW
aXJ0dWFsUmVnaXN0ZXJzICsgTnVtYmVyT2ZXYXNtQXJndW1lbnRzKSAqIFNsb3RTaXplLCB0MQor
ICAgIGxzaGlmdGkgMywgdDIKICAgICBuZWdpIHQyCitpZiBKU1ZBTFVFNjQKICAgICBzeGkycSB0
MiwgdDIKK2VuZAorICAgIG1vdmUgMCwgdDYKIC5vcEVudGVyTG9vcDoKLSAgICBzdG9yZXEgMCwg
W3QxLCB0MiwgOF0KLSAgICBhZGRxIDEsIHQyCi0gICAgYnRxbnogdDIsIC5vcEVudGVyTG9vcAor
aWYgSlNWQUxVRTY0CisgICAgc3RvcmVxIHQ2LCBbdDEsIHQyXQorZWxzZQorICAgIHN0b3JlMmlh
IHQ2LCB0NiwgW3QxLCB0Ml0KK2VuZAorICAgIGFkZHAgOCwgdDIKKyAgICBidHBueiB0MiwgLm9w
RW50ZXJMb29wCiAub3BFbnRlckRvbmU6CiAgICAgd2FzbURpc3BhdGNoSW5kaXJlY3QoMSkKIApA
QCAtNjQ0LDExICs3NDIsNiBAQCB3YXNtT3AobG9vcF9oaW50LCBXYXNtTG9vcEhpbnQsIG1hY3Jv
KGN0eCkKICAgICBkaXNwYXRjaChjdHgpCiBlbmQpCiAKLXdhc21PcChtb3YsIFdhc21Nb3YsIG1h
Y3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX3NyYywgdDApCi0gICAgcmV0dXJucShjdHgsIHQw
KQotZW5kKQotCiB3YXNtT3AoanRydWUsIFdhc21KdHJ1ZSwgbWFjcm8oY3R4KQogICAgIG1sb2Fk
aShjdHgsIG1fY29uZGl0aW9uLCB0MCkKICAgICBidGl6IHQwLCAuY29udGludWUKQEAgLTcwMCw5
ICs3OTMsMTUgQEAgZW5kKQogCiB1bnByZWZpeGVkV2FzbU9wKHdhc21fcmV0LCBXYXNtUmV0LCBt
YWNybyhjdHgpCiAgICAgY2hlY2tTd2l0Y2hUb0pJVEZvckVwaWxvZ3VlKCkKLSAgICBmb3JFYWNo
QXJndW1lbnRHUFIobWFjcm8gKG9mZnNldCwgZ3ByKQoraWYgSlNWQUxVRTY0CisgICAgZm9yRWFj
aEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwcikKICAgICAgICAgbG9hZHEgLW9mZnNldCAt
IDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0sIGdwcgogICAg
IGVuZCkKK2Vsc2UKKyAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3
LCBncExzdykKKyAgICAgICAgbG9hZDJpYSAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFz
VmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXSwgZ3BMc3csIGdwck1zdworICAgIGVuZCkKK2VuZAog
ICAgIGZvckVhY2hBcmd1bWVudEZQUihtYWNybyAob2Zmc2V0LCBmcHIpCiAgICAgICAgIGxvYWRk
IC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJd
LCBmcHIKICAgICBlbmQpCkBAIC03MjAsNDQgKzgxOSw2IEBAIHdhc21PcChyZXRfdm9pZCwgV2Fz
bVJldFZvaWQsIG1hY3JvKGN0eCkKICAgICBkb1JldHVybigpCiBlbmQpCiAKLXdhc21PcChyZWZf
aXNfbnVsbCwgV2FzbVJlZklzTnVsbCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcChjdHgsIG1fcmVm
LCB0MCkKLSAgICBjcWVxIHQwLCBWYWx1ZU51bGwsIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQot
ZW5kKQotCi13YXNtT3AoZ2V0X2dsb2JhbCwgV2FzbUdldEdsb2JhbCwgbWFjcm8oY3R4KQotICAg
IGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKLSAgICB3
Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQotICAgIGxvYWRxIFt0MCwgdDEsIDhdLCB0MAot
ICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKHNldF9nbG9iYWwsIFdhc21TZXRH
bG9iYWwsIG1hY3JvKGN0eCkKLSAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dh
c21JbnN0YW5jZV0sIHQwCi0gICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKLSAgICBt
bG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICBzdG9yZXEgdDIsIFt0MCwgdDEsIDhdCi0gICAg
ZGlzcGF0Y2goY3R4KQotZW5kKQotCi13YXNtT3AoZ2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5n
LCBXYXNtR2V0R2xvYmFsUG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCi0gICAgbG9hZHAgV2Fz
bTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAotICAgIHdnZXR1KGN0eCwg
bV9nbG9iYWxJbmRleCwgdDEpCi0gICAgbG9hZHEgW3QwLCB0MSwgOF0sIHQwCi0gICAgbG9hZHEg
W3QwXSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChzZXRfZ2xvYmFs
X3BvcnRhYmxlX2JpbmRpbmcsIFdhc21TZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcsIG1hY3JvKGN0
eCkKLSAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQw
Ci0gICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKLSAgICBtbG9hZHEoY3R4LCBtX3Zh
bHVlLCB0MikKLSAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKLSAgICBzdG9yZXEgdDIsIFt0MF0K
LSAgICBkaXNwYXRjaChjdHgpCi1lbmQpCi0KIG1hY3JvIHNsb3dQYXRoRm9yV2FzbUNhbGwoY3R4
LCBzbG93UGF0aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAgICAgY2FsbFdhc21DYWxsU2xvd1BhdGgo
CiAgICAgICAgIHNsb3dQYXRoLApAQCAtNzcyLDcgKzgzMywxMiBAQCBtYWNybyBzbG93UGF0aEZv
cldhc21DYWxsKGN0eCwgc2xvd1BhdGgsIHN0b3JlV2FzbUluc3RhbmNlKQogCiAgICAgICAgICAg
ICB3Z2V0dShjdHgsIG1fc3RhY2tPZmZzZXQsIHdzMSkKICAgICAgICAgICAgIGxzaGlmdGkgMywg
d3MxCitpZiBBUk12NworICAgICAgICAgICAgc3VicCBjZnIsIHdzMSwgd3MxCisgICAgICAgICAg
ICBtb3ZlIHdzMSwgc3AKK2Vsc2UKICAgICAgICAgICAgIHN1YnAgY2ZyLCB3czEsIHNwCitlbmQK
IAogICAgICAgICAgICAgd2dldHUoY3R4LCBtX251bWJlck9mU3RhY2tBcmdzLCB3czEpCiAKQEAg
LTc4MywxMCArODQ5LDE1IEBAIG1hY3JvIHNsb3dQYXRoRm9yV2FzbUNhbGwoY3R4LCBzbG93UGF0
aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAgICAgICAgICAgICByZWxvYWRNZW1vcnlSZWdpc3RlcnNG
cm9tSW5zdGFuY2UodGFyZ2V0V2FzbUluc3RhbmNlLCB3YTAsIHdhMSkKIAogICAgICAgICAgICAg
IyBMb2FkIHJlZ2lzdGVycyBmcm9tIHN0YWNrCi0gICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRH
UFIobWFjcm8gKG9mZnNldCwgZ3ByKQoraWYgSlNWQUxVRTY0CisgICAgICAgICAgICBmb3JFYWNo
QXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByKQogICAgICAgICAgICAgICAgIGxvYWRxIENh
bGxGcmFtZUhlYWRlclNpemUgKyA4ICsgb2Zmc2V0W3NwLCB3czEsIDhdLCBncHIKICAgICAgICAg
ICAgIGVuZCkKLQorZWxzZQorICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChv
ZmZzZXQsIGdwck1zdywgZ3BMc3cpCisgICAgICAgICAgICAgICAgbG9hZDJpYSBDYWxsRnJhbWVI
ZWFkZXJTaXplICsgOCArIG9mZnNldFtzcCwgd3MxLCA4XSwgZ3BMc3csIGdwck1zdworICAgICAg
ICAgICAgZW5kKQorZW5kCiAgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRGUFIobWFjcm8gKG9m
ZnNldCwgZnByKQogICAgICAgICAgICAgICAgIGxvYWRkIENhbGxGcmFtZUhlYWRlclNpemUgKyA4
ICsgb2Zmc2V0W3NwLCB3czEsIDhdLCBmcHIKICAgICAgICAgICAgIGVuZCkKQEAgLTgyOSw3ICs5
MDAsMTEgQEAgbWFjcm8gc2xvd1BhdGhGb3JXYXNtQ2FsbChjdHgsIHNsb3dQYXRoLCBzdG9yZVdh
c21JbnN0YW5jZSkKIAogICAgICAgICAgICAgIyBXZSBuZWVkIHRvIHNldCBQQyB0byBsb2FkIGlu
Zm9ybWF0aW9uIGZyb20gdGhlIGluc3RydWN0aW9uIHN0cmVhbSwgYnV0IHdlCiAgICAgICAgICAg
ICAjIG5lZWQgdG8gcHJlc2VydmUgaXRzIGN1cnJlbnQgdmFsdWUgc2luY2UgaXQgbWlnaHQgY29u
dGFpbiBhIHJldHVybiB2YWx1ZQoraWYgQVJNdjcKKyAgICAgICAgICAgIHB1c2ggUEMKK2Vsc2UK
ICAgICAgICAgICAgIG1vdmUgUEMsIG1lbW9yeUJhc2UKK2VuZAogICAgICAgICAgICAgbW92ZSBQ
Qiwgd2FzbUluc3RhbmNlCiAgICAgICAgICAgICBsb2FkaSBBcmd1bWVudENvdW50SW5jbHVkaW5n
VGhpcyArIFRhZ09mZnNldFtjZnJdLCBQQwogICAgICAgICAgICAgbG9hZHAgQ29kZUJsb2NrW2Nm
cl0sIFBCCkBAIC04MzgsMTcgKzkxMywyOCBAQCBtYWNybyBzbG93UGF0aEZvcldhc21DYWxsKGN0
eCwgc2xvd1BhdGgsIHN0b3JlV2FzbUluc3RhbmNlKQogICAgICAgICAgICAgd2dldHUoY3R4LCBt
X3N0YWNrT2Zmc2V0LCB3czEpCiAgICAgICAgICAgICBsc2hpZnRpIDMsIHdzMQogICAgICAgICAg
ICAgbmVnaSB3czEKK2lmIEpTVkFMVUU2NAogICAgICAgICAgICAgc3hpMnEgd3MxLCB3czEKK2Vu
ZAogICAgICAgICAgICAgYWRkcCBjZnIsIHdzMQogCiAgICAgICAgICAgICAjIEFyZ3VtZW50IHJl
Z2lzdGVycyBhcmUgYWxzbyByZXR1cm4gcmVnaXN0ZXJzLCBzbyB0aGV5IG11c3QgYmUgc3RvcmVk
IHRvIHRoZSBzdGFjawogICAgICAgICAgICAgIyBpbiBjYXNlIHRoZXkgY29udGFpbiByZXR1cm4g
dmFsdWVzLgogICAgICAgICAgICAgd2dldHUoY3R4LCBtX251bWJlck9mU3RhY2tBcmdzLCB3czAp
CitpZiBBUk12NworICAgICAgICAgICAgcG9wIFBDCitlbHNlCiAgICAgICAgICAgICBtb3ZlIG1l
bW9yeUJhc2UsIFBDCi0gICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRHUFIobWFjcm8gKG9mZnNl
dCwgZ3ByKQorZW5kCitpZiBKU1ZBTFVFNjQKKyAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEpT
UihtYWNybyAob2Zmc2V0LCBncHIpCiAgICAgICAgICAgICAgICAgc3RvcmVxIGdwciwgQ2FsbEZy
YW1lSGVhZGVyU2l6ZSArIDggKyBvZmZzZXRbd3MxLCB3czAsIDhdCiAgICAgICAgICAgICBlbmQp
Ci0KK2Vsc2UKKyAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBn
cHJNc3csIGdwTHN3KQorICAgICAgICAgICAgICAgIHN0b3JlMmlhIGdwTHN3LCBncHJNc3csIENh
bGxGcmFtZUhlYWRlclNpemUgKyA4ICsgb2Zmc2V0W3dzMSwgd3MwLCA4XQorICAgICAgICAgICAg
ZW5kKQorZW5kCiAgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRGUFIobWFjcm8gKG9mZnNldCwg
ZnByKQogICAgICAgICAgICAgICAgIHN0b3JlZCBmcHIsIENhbGxGcmFtZUhlYWRlclNpemUgKyA4
ICsgb2Zmc2V0W3dzMSwgd3MwLCA4XQogICAgICAgICAgICAgZW5kKQpAQCAtODk5LDE5OSArOTg1
LDM2IEBAIHdhc21PcChjdXJyZW50X21lbW9yeSwgV2FzbUN1cnJlbnRNZW1vcnksIG1hY3JvKGN0
eCkKICAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9tZW1vcnlbd2FzbUluc3RhbmNlXSwgdDAK
ICAgICBsb2FkcCBXYXNtOjpNZW1vcnk6Om1faGFuZGxlW3QwXSwgdDAKICAgICBsb2FkcCBXYXNt
OjpNZW1vcnlIYW5kbGU6Om1fc2l6ZVt0MF0sIHQwCi0gICAgdXJzaGlmdHEgMTYsIHQwCisgICAg
dXJzaGlmdHAgMTYsIHQwCitpZiBKU1ZBTFVFNjQKICAgICByZXR1cm5xKGN0eCwgdDApCitlbHNl
CisgICAgcmV0dXJuMmkoY3R4LCAwLCB0MCkKK2VuZAogZW5kKQogCiB3YXNtT3Aoc2VsZWN0LCBX
YXNtU2VsZWN0LCBtYWNybyhjdHgpCiAgICAgbWxvYWRpKGN0eCwgbV9jb25kaXRpb24sIHQwKQog
ICAgIGJ0aXogdDAsIC5pc1plcm8KK2lmIEpTVkFMVUU2NAogICAgIG1sb2FkcShjdHgsIG1fbm9u
WmVybywgdDApCiAgICAgcmV0dXJucShjdHgsIHQwKQogLmlzWmVybzoKICAgICBtbG9hZHEoY3R4
LCBtX3plcm8sIHQwKQogICAgIHJldHVybnEoY3R4LCB0MCkKK2Vsc2UKKyAgICBtbG9hZDJpKGN0
eCwgbV9ub25aZXJvLCB0MSwgdDApCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCisuaXNaZXJv
OgorICAgIG1sb2FkMmkoY3R4LCBtX3plcm8sIHQxLCB0MCkKKyAgICByZXR1cm4yaShjdHgsIHQx
LCB0MCkKK2VuZAogZW5kKQogCi0jIHVzZXMgb2Zmc2V0IGFzIHNjcmF0Y2ggYW5kIHJldHVybnMg
cmVzdWx0IG9uIHBvaW50ZXIKLW1hY3JvIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKGN0eCwg
cG9pbnRlciwgb2Zmc2V0LCBzaXplKQotICAgIGxlYXAgc2l6ZSAtIDFbcG9pbnRlciwgb2Zmc2V0
XSwgdDUKLSAgICBicGIgdDUsIGJvdW5kc0NoZWNraW5nU2l6ZSwgLmNvbnRpbnVhdGlvbgotICAg
IHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNjZXNzKQotLmNvbnRpbnVhdGlvbjoK
LSAgICBhZGRwIG1lbW9yeUJhc2UsIHBvaW50ZXIKLWVuZAotCi1tYWNybyBlbWl0Q2hlY2tBbmRQ
cmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKLSAg
ICBsZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNldF0sIHQ1Ci0gICAgYnBiIHQ1LCBib3VuZHND
aGVja2luZ1NpemUsIC5jb250aW51YXRpb24KLS50aHJvdzoKLSAgICB0aHJvd0V4Y2VwdGlvbihP
dXRPZkJvdW5kc01lbW9yeUFjY2VzcykKLS5jb250aW51YXRpb246Ci0gICAgYWRkcCBtZW1vcnlC
YXNlLCBwb2ludGVyCi0gICAgYWRkcCBvZmZzZXQsIHBvaW50ZXIKLWVuZAotCi1tYWNybyBlbWl0
Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgs
IHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKLSAgICBsZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNl
dF0sIHQ1Ci0gICAgYnBiIHQ1LCBib3VuZHNDaGVja2luZ1NpemUsIC5jb250aW51YXRpb24KLS50
aHJvdzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKLS5jb250
aW51YXRpb246Ci0gICAgYWRkcCBtZW1vcnlCYXNlLCBwb2ludGVyCi0gICAgYWRkcCBvZmZzZXQs
IHBvaW50ZXIKLSAgICBidHBueiBwb2ludGVyLCAoc2l6ZSAtIDEpLCAudGhyb3cKLWVuZAotCi1t
YWNybyB3YXNtTG9hZE9wKG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4pCi0gICAgd2FzbU9wKG5hbWUs
IHN0cnVjdCwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQot
ICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgZW1pdENoZWNrQW5kUHJl
cGFyZVBvaW50ZXIoY3R4LCB0MCwgdDEsIHNpemUpCi0gICAgICAgIGZuKFt0MCwgdDFdLCB0MikK
LSAgICAgICAgcmV0dXJucShjdHgsIHQyKQotICAgIGVuZCkKLWVuZAotCi13YXNtTG9hZE9wKGxv
YWQ4X3UsIFdhc21Mb2FkOFUsIDEsIG1hY3JvKG1lbSwgZHN0KSBsb2FkYiBtZW0sIGRzdCBlbmQp
Ci13YXNtTG9hZE9wKGxvYWQxNl91LCBXYXNtTG9hZDE2VSwgMiwgbWFjcm8obWVtLCBkc3QpIGxv
YWRoIG1lbSwgZHN0IGVuZCkKLXdhc21Mb2FkT3AobG9hZDMyX3UsIFdhc21Mb2FkMzJVLCA0LCBt
YWNybyhtZW0sIGRzdCkgbG9hZGkgbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChsb2FkNjRfdSwg
V2FzbUxvYWQ2NFUsIDgsIG1hY3JvKG1lbSwgZHN0KSBsb2FkcSBtZW0sIGRzdCBlbmQpCi0KLXdh
c21Mb2FkT3AoaTMyX2xvYWQ4X3MsIFdhc21JMzJMb2FkOFMsIDEsIG1hY3JvKG1lbSwgZHN0KSBs
b2FkYnNpIG1lbSwgZHN0IGVuZCkKLXdhc21Mb2FkT3AoaTY0X2xvYWQ4X3MsIFdhc21JNjRMb2Fk
OFMsIDEsIG1hY3JvKG1lbSwgZHN0KSBsb2FkYnNxIG1lbSwgZHN0IGVuZCkKLXdhc21Mb2FkT3Ao
aTMyX2xvYWQxNl9zLCBXYXNtSTMyTG9hZDE2UywgMiwgbWFjcm8obWVtLCBkc3QpIGxvYWRoc2kg
bWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChpNjRfbG9hZDE2X3MsIFdhc21JNjRMb2FkMTZTLCAy
LCBtYWNybyhtZW0sIGRzdCkgbG9hZGhzcSBtZW0sIGRzdCBlbmQpCi13YXNtTG9hZE9wKGk2NF9s
b2FkMzJfcywgV2FzbUk2NExvYWQzMlMsIDQsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaXMgbWVtLCBk
c3QgZW5kKQotCi1tYWNybyB3YXNtU3RvcmVPcChuYW1lLCBzdHJ1Y3QsIHNpemUsIGZuKQotICAg
IHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9w
b2ludGVyLCB0MCkKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIGVt
aXRDaGVja0FuZFByZXBhcmVQb2ludGVyKGN0eCwgdDAsIHQxLCBzaXplKQotICAgICAgICBtbG9h
ZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICAgICAgZm4odDIsIFt0MCwgdDFdKQotICAgICAgICBk
aXNwYXRjaChjdHgpCi0gICAgZW5kKQotZW5kCi0KLXdhc21TdG9yZU9wKHN0b3JlOCwgV2FzbVN0
b3JlOCwgMSwgbWFjcm8odmFsdWUsIG1lbSkgc3RvcmViIHZhbHVlLCBtZW0gZW5kKQotd2FzbVN0
b3JlT3Aoc3RvcmUxNiwgV2FzbVN0b3JlMTYsIDIsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlaCB2
YWx1ZSwgbWVtIGVuZCkKLXdhc21TdG9yZU9wKHN0b3JlMzIsIFdhc21TdG9yZTMyLCA0LCBtYWNy
byh2YWx1ZSwgbWVtKSBzdG9yZWkgdmFsdWUsIG1lbSBlbmQpCi13YXNtU3RvcmVPcChzdG9yZTY0
LCBXYXNtU3RvcmU2NCwgOCwgbWFjcm8odmFsdWUsIG1lbSkgc3RvcmVxIHZhbHVlLCBtZW0gZW5k
KQotCiAjIE9wY29kZXMgdGhhdCBkb24ndCBoYXZlIHRoZSBgYjNvcGAgZW50cnkgaW4gd2FzbS5q
c29uLiBUaGlzIHNob3VsZCBiZSBrZXB0IGluIHN5bmMKIAotd2FzbU9wKGkzMl9kaXZfcywgV2Fz
bUkzMkRpdlMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQotICAgIG1s
b2FkaShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJv
Ci0KLSAgICBiaW5lcSB0MSwgLTEsIC5zYWZlCi0gICAgYmllcSB0MCwgY29uc3RleHByIElOVDMy
X01JTiwgLnRocm93SW50ZWdlck92ZXJmbG93Ci0KLS5zYWZlOgotICAgIGlmIFg4Nl82NAotICAg
ICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFu
ZCB0MiBpcyByZHgKLSAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAzNjkyCi0gICAgICAgIGNkcWkKLSAgICAgICAgaWRpdmkgdDEKLSAgICBlbHNpZiBB
Uk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAotICAgICAgICBkaXZpcyB0MSwgdDAKLSAgICBlbHNl
Ci0gICAgICAgIGVycm9yCi0gICAgZW5kCi0gICAgcmV0dXJuaShjdHgsIHQwKQotCi0udGhyb3dE
aXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLQotLnRo
cm93SW50ZWdlck92ZXJmbG93OgotICAgIHRocm93RXhjZXB0aW9uKEludGVnZXJPdmVyZmxvdykK
LWVuZCkKLQotd2FzbU9wKGkzMl9kaXZfdSwgV2FzbUkzMkRpdlUsIG1hY3JvIChjdHgpCi0gICAg
bWxvYWRpKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLQotICAg
IGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBpZiBYODZfNjQKLSAgICAgICAg
eG9yaSB0MiwgdDIKLSAgICAgICAgdWRpdmkgdDEKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUg
b3IgUklTQ1Y2NAotICAgICAgICBkaXZpIHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IK
LSAgICBlbmQKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgot
ICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotZW5kKQotCi13YXNtT3AoaTMyX3Jl
bV9zLCBXYXNtSTMyUmVtUywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGkoY3R4LCBtX2xocywgdDAp
Ci0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRpeiB0MSwgLnRocm93RGl2aXNp
b25CeVplcm8KLQotICAgIGJpbmVxIHQxLCAtMSwgLnNhZmUKLSAgICBiaW5lcSB0MCwgY29uc3Rl
eHByIElOVDMyX01JTiwgLnNhZmUKLQotICAgIG1vdmUgMCwgdDIKLSAgICBqbXAgLnJldHVybgot
Ci0uc2FmZToKLSAgICBpZiBYODZfNjQKLSAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0
YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4Ci0gICAgICAgICMgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgotICAgICAgICBjZHFpCi0g
ICAgICAgIGlkaXZpIHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCi0gICAgICAgIGRpdmlz
IHQxLCB0MCwgdDIKLSAgICAgICAgbXVsaSB0MSwgdDIKLSAgICAgICAgc3ViaSB0MCwgdDIsIHQy
Ci0gICAgZWxzaWYgUklTQ1Y2NAotICAgICAgICByZW1pcyB0MSwgdDAKLSAgICBlbHNlCi0gICAg
ICAgIGVycm9yCi0gICAgZW5kCi0KLS5yZXR1cm46Ci0gICAgcmV0dXJuaShjdHgsIHQyKQotCi0u
dGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykK
LWVuZCkKLQotd2FzbU9wKGkzMl9yZW1fdSwgV2FzbUkzMlJlbVUsIG1hY3JvIChjdHgpCi0gICAg
bWxvYWRpKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLQotICAg
IGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBpZiBYODZfNjQKLSAgICAgICAg
eG9yaSB0MiwgdDIKLSAgICAgICAgdWRpdmkgdDEKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUK
LSAgICAgICAgZGl2aSB0MSwgdDAsIHQyCi0gICAgICAgIG11bGkgdDEsIHQyCi0gICAgICAgIHN1
YmkgdDAsIHQyLCB0MgotICAgIGVsc2lmIFJJU0NWNjQKLSAgICAgICAgcmVtaSB0MSwgdDAKLSAg
ICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0gICAgcmV0dXJuaShjdHgsIHQyKQotCi0u
dGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykK
LWVuZCkKLQogd2FzbU9wKGkzMl9jdHosIFdhc21JMzJDdHosIG1hY3JvIChjdHgpCi0gICAgbWxv
YWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQog
ICAgIHR6Y250aSB0MCwgdDAKICAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCkBAIC0xMTA1LDE0
OCArMTAyOCwyNSBAQCB3YXNtT3AoaTMyX3BvcGNudCwgV2FzbUkzMlBvcGNudCwgbWFjcm8gKGN0
eCkKICAgICByZXR1cm5pKGN0eCwgcjEpCiBlbmQpCiAKLXdhc21PcChpNjRfZGl2X3MsIFdhc21J
NjREaXZTLCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9h
ZHEoY3R4LCBtX3JocywgdDEpCi0KLSAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwot
Ci0gICAgYnFuZXEgdDEsIC0xLCAuc2FmZQotICAgIGJxZXEgdDAsIGNvbnN0ZXhwciBJTlQ2NF9N
SU4sIC50aHJvd0ludGVnZXJPdmVyZmxvdwotCi0uc2FmZToKLSAgICBpZiBYODZfNjQKLSAgICAg
ICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQg
dDIgaXMgcmR4Ci0gICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMzY5MgotICAgICAgICBjcW9xCi0gICAgICAgIGlkaXZxIHQxCi0gICAgZWxzaWYgQVJN
NjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKLSAgICAgICAgZGl2cXMgdDEsIHQwCi0gICAgZWxzZQot
ICAgICAgICBlcnJvcgotICAgIGVuZAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLnRocm93RGl2
aXNpb25CeVplcm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCi0KLS50aHJv
d0ludGVnZXJPdmVyZmxvdzoKLSAgICB0aHJvd0V4Y2VwdGlvbihJbnRlZ2VyT3ZlcmZsb3cpCi1l
bmQpCi0KLXdhc21PcChpNjRfZGl2X3UsIFdhc21JNjREaXZVLCBtYWNybyAoY3R4KQotICAgIG1s
b2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0KLSAgICBi
dHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwotCi0gICAgaWYgWDg2XzY0Ci0gICAgICAgIHhv
cnEgdDIsIHQyCi0gICAgICAgIHVkaXZxIHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9y
IFJJU0NWNjQKLSAgICAgICAgZGl2cSB0MSwgdDAKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0g
ICAgZW5kCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAg
ICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLWVuZCkKLQotd2FzbU9wKGk2NF9yZW1f
cywgV2FzbUk2NFJlbVMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQot
ICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9u
QnlaZXJvCi0KLSAgICBicW5lcSB0MSwgLTEsIC5zYWZlCi0gICAgYnFuZXEgdDAsIGNvbnN0ZXhw
ciBJTlQ2NF9NSU4sIC5zYWZlCi0KLSAgICBtb3ZlIDAsIHQyCi0gICAgam1wIC5yZXR1cm4KLQot
LnNhZmU6Ci0gICAgaWYgWDg2XzY0Ci0gICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBzdGF0
aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAotICAgICAgICAjIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKLSAgICAgICAgY3FvcQotICAg
ICAgICBpZGl2cSB0MQotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQotICAgICAgICBkaXZxcyB0
MSwgdDAsIHQyCi0gICAgICAgIG11bHEgdDEsIHQyCi0gICAgICAgIHN1YnEgdDAsIHQyLCB0Mgot
ICAgIGVsc2lmIFJJU0NWNjQKLSAgICAgICAgcmVtcXMgdDEsIHQwCi0gICAgZWxzZQotICAgICAg
ICBlcnJvcgotICAgIGVuZAotCi0ucmV0dXJuOgotICAgIHJldHVybnEoY3R4LCB0MikgIyByZHgg
aGFzIHRoZSByZW1haW5kZXIKLQotLnRocm93RGl2aXNpb25CeVplcm86Ci0gICAgdGhyb3dFeGNl
cHRpb24oRGl2aXNpb25CeVplcm8pCi1lbmQpCi0KLXdhc21PcChpNjRfcmVtX3UsIFdhc21JNjRS
ZW1VLCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEo
Y3R4LCBtX3JocywgdDEpCi0KLSAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwotCi0g
ICAgaWYgWDg2XzY0Ci0gICAgICAgIHhvcnEgdDIsIHQyCi0gICAgICAgIHVkaXZxIHQxCi0gICAg
ZWxzaWYgQVJNNjQgb3IgQVJNNjRFCi0gICAgICAgIGRpdnEgdDEsIHQwLCB0MgotICAgICAgICBt
dWxxIHQxLCB0MgotICAgICAgICBzdWJxIHQwLCB0MiwgdDIKLSAgICBlbHNpZiBSSVNDVjY0Ci0g
ICAgICAgIHJlbXEgdDEsIHQwCi0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVuZAotICAg
IHJldHVybnEoY3R4LCB0MikKLQotLnRocm93RGl2aXNpb25CeVplcm86Ci0gICAgdGhyb3dFeGNl
cHRpb24oRGl2aXNpb25CeVplcm8pCi1lbmQpCi0KLXdhc21PcChpNjRfY3R6LCBXYXNtSTY0Q3R6
LCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgdHpjbnRx
IHQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9wb3BjbnQs
IFdhc21JNjRQb3BjbnQsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCBh
MSkKLSAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCi0gICAgbW92ZSBQQywgYTAKLSAgICBjQ2Fs
bDIoX3Nsb3dfcGF0aF93YXNtX3BvcGNvdW50bGwpCi0gICAgcmVzdG9yZVN0YXRlQWZ0ZXJDQ2Fs
bCgpCi0gICAgcmV0dXJucShjdHgsIHIxKQotZW5kKQotCi13YXNtT3AoZjMyX3RydW5jLCBXYXNt
RjMyVHJ1bmMsIG1hY3JvIChjdHgpCit3YXNtUm91bmRpbmdPcChmMzJfdHJ1bmMsIFdhc21GMzJU
cnVuYywgbWFjcm8gKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICB0
cnVuY2F0ZWYgZnQwLCBmdDAKICAgICByZXR1cm5mKGN0eCwgZnQwKQogZW5kKQogCi13YXNtT3Ao
ZjMyX25lYXJlc3QsIFdhc21GMzJOZWFyZXN0LCBtYWNybyAoY3R4KQord2FzbVJvdW5kaW5nT3Ao
ZjMyX25lYXJlc3QsIFdhc21GMzJOZWFyZXN0LCBtYWNybyAoY3R4KQogICAgIG1sb2FkZihjdHgs
IG1fb3BlcmFuZCwgZnQwKQogICAgIHJvdW5kZiBmdDAsIGZ0MAogICAgIHJldHVybmYoY3R4LCBm
dDApCiBlbmQpCiAKLXdhc21PcChmNjRfdHJ1bmMsIFdhc21GNjRUcnVuYywgbWFjcm8gKGN0eCkK
K3dhc21Sb3VuZGluZ09wKGY2NF90cnVuYywgV2FzbUY2NFRydW5jLCBtYWNybyAoY3R4KQogICAg
IG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIHRydW5jYXRlZCBmdDAsIGZ0MAogICAg
IHJldHVybmQoY3R4LCBmdDApCiBlbmQpCiAKLXdhc21PcChmNjRfbmVhcmVzdCwgV2FzbUY2NE5l
YXJlc3QsIG1hY3JvIChjdHgpCit3YXNtUm91bmRpbmdPcChmNjRfbmVhcmVzdCwgV2FzbUY2NE5l
YXJlc3QsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAg
cm91bmRkIGZ0MCwgZnQwCiAgICAgcmV0dXJuZChjdHgsIGZ0MCkKQEAgLTEyNzAsMjQgKzEwNzAs
NiBAQCB3YXNtT3AoaTMyX3RydW5jX3NfZjMyLCBXYXNtSTMyVHJ1bmNTRjMyLCBtYWNybyAoY3R4
KQogICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCiBlbmQpCiAKLXdhc21PcChp
MzJfdHJ1bmNfc19mNjQsIFdhc21JMzJUcnVuY1NGNjQsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRk
KGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDAg
IyBJTlQzMl9NSU4gLSAxLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1biBmdDAsIGZ0
MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIG1vdmUgMHg0MWUwMDAwMDAwMDAwMDAwLCB0MCAj
IC1JTlQzMl9NSU4KLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91
dE9mQm91bmRzVHJ1bmMKLQotICAgIHRydW5jYXRlZDJpcyBmdDAsIHQwCi0gICAgcmV0dXJuaShj
dHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJv
dW5kc1RydW5jKQotZW5kKQotCiB3YXNtT3AoaTMyX3RydW5jX3VfZjMyLCBXYXNtSTMyVHJ1bmNV
RjMyLCBtYWNybyAoY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogCkBAIC0x
MzA2LDk2ICsxMDg4LDYgQEAgd2FzbU9wKGkzMl90cnVuY191X2YzMiwgV2FzbUkzMlRydW5jVUYz
MiwgbWFjcm8gKGN0eCkKICAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQogZW5k
KQogCi13YXNtT3AoaTMyX3RydW5jX3VfZjY0LCBXYXNtSTMyVHJ1bmNVRjY0LCBtYWNybyAoY3R4
KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGJmZjAwMDAw
MDAwMDAwMDAsIHQwICMgLTEuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVuIGZ0MCwg
ZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgbW92ZSAweDQxZjAwMDAwMDAwMDAwMDAsIHQw
ICMgSU5UMzJfTUlOICogLTIuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwg
ZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAotICAgIHJl
dHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dFeGNlcHRpb24o
T3V0T2ZCb3VuZHNUcnVuYykKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY19zX2YzMiwgV2FzbUk2
NFRydW5jU0YzMiwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkK
LQotICAgIG1vdmUgMHhkZjAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4KLSAgICBmaTJmIHQwLCBmdDEK
LSAgICBiZmx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICBtb3ZlIDB4NWYw
MDAwMDAsIHQwICMgLUlOVDY0X01JTgotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmZ3RlcXVuIGZ0
MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgdHJ1bmNhdGVmMnFzIGZ0MCwgdDAKLSAg
ICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0
aW9uKE91dE9mQm91bmRzVHJ1bmMpCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfc19mNjQsIFdh
c21JNjRUcnVuY1NGNjQsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBm
dDApCi0KLSAgICBtb3ZlIDB4YzNlMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4KLSAgICBm
cTJkIHQwLCBmdDEKLSAgICBiZGx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAg
ICBtb3ZlIDB4NDNlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCi0gICAgZnEyZCB0MCwg
ZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICB0cnVu
Y2F0ZWQycXMgZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1
bmM6Ci0gICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKLWVuZCkKLQotd2FzbU9w
KGk2NF90cnVuY191X2YzMiwgV2FzbUk2NFRydW5jVUYzMiwgbWFjcm8gKGN0eCkKLSAgICBtbG9h
ZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhiZjgwMDAwMCwgdDAgIyAtMS4w
Ci0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1Ry
dW5jCi0KLSAgICBtb3ZlIDB4NWY4MDAwMDAsIHQwICMgSU5UNjRfTUlOICogLTIuMAotICAgIGZp
MmYgdDAsIGZ0MQotICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0g
ICAgdHJ1bmNhdGVmMnEgZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91
bmRzVHJ1bmM6Ci0gICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKLWVuZCkKLQot
d2FzbU9wKGk2NF90cnVuY191X2Y2NCwgV2FzbUk2NFRydW5jVUY2NCwgbWFjcm8gKGN0eCkKLSAg
ICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAw
MDAwLCB0MCAjIC0xLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1biBmdDAsIGZ0MSwg
Lm91dE9mQm91bmRzVHJ1bmMKLQotICAgIG1vdmUgMHg0M2YwMDAwMDAwMDAwMDAwLCB0MCAjIElO
VDY0X01JTiAqIC0yLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwg
Lm91dE9mQm91bmRzVHJ1bmMKLQotICAgIHRydW5jYXRlZDJxIGZ0MCwgdDAKLSAgICByZXR1cm5x
KGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0aW9uKE91dE9m
Qm91bmRzVHJ1bmMpCi1lbmQpCi0KIHdhc21PcChpMzJfdHJ1bmNfc2F0X2YzMl9zLCBXYXNtSTMy
VHJ1bmNTYXRGMzJTLCBtYWNybyAoY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQw
KQogCkBAIC0xNDI0LDM0ICsxMTE2LDYgQEAgd2FzbU9wKGkzMl90cnVuY19zYXRfZjMyX3MsIFdh
c21JMzJUcnVuY1NhdEYzMlMsIG1hY3JvIChjdHgpCiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5k
KQogCi13YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfcywgV2FzbUkzMlRydW5jU2F0RjY0UywgbWFj
cm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhj
MWUwMDAwMDAwMjAwMDAwLCB0MCAjIElOVDMyX01JTiAtIDEuMAotICAgIGZxMmQgdDAsIGZ0MQot
ICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOCi0KLSAg
ICBtb3ZlIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UMzJfTUlOCi0gICAgZnEyZCB0MCwg
ZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4Ci0KLSAg
ICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91
bmRzVHJ1bmNTYXRNaW5Pck5hTjoKLSAgICBiZGVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1pbgotICAgIG1vdmUgMCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJv
dW5kc1RydW5jU2F0TWF4OgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQzMl9NQVgpLCB0MAotICAg
IHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46Ci0gICAgbW92ZSAo
Y29uc3RleHByIElOVDMyX01JTiksIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotZW5kKQotCiB3
YXNtT3AoaTMyX3RydW5jX3NhdF9mMzJfdSwgV2FzbUkzMlRydW5jU2F0RjMyVSwgbWFjcm8gKGN0
eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKIApAQCAtMTQ3NSwxNTIgKzExMzks
MjIgQEAgd2FzbU9wKGkzMl90cnVuY19zYXRfZjMyX3UsIFdhc21JMzJUcnVuY1NhdEYzMlUsIG1h
Y3JvIChjdHgpCiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQogCi13YXNtT3AoaTMyX3RydW5j
X3NhdF9mNjRfdSwgV2FzbUkzMlRydW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQo
Y3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAj
IC0xLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91
bmRzVHJ1bmNTYXRNaW4KLQotICAgIG1vdmUgMHg0MWYwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDMy
X01JTiAqIC0yLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91
dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQotICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAKLSAgICByZXR1
cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgotICAgIG1vdmUgMCwgdDAK
LSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1v
dmUgKGNvbnN0ZXhwciBVSU5UMzJfTUFYKSwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi1lbmQp
Ci0KLXdhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl9zLCBXYXNtSTY0VHJ1bmNTYXRGMzJTLCBtYWNy
byAoY3R4KQotICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGRm
MDAwMDAwLCB0MCAjIElOVDY0X01JTgotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmbHR1biBmdDAs
IGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTgotCi0gICAgbW92ZSAweDVmMDAwMDAw
LCB0MCAjIC1JTlQ2NF9NSU4KLSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmd0ZXF1biBmdDAsIGZ0
MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQotICAgIHRydW5jYXRlZjJxcyBmdDAsIHQwCi0g
ICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgotICAg
IGJmZXEgZnQwLCBmdDAsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCi0gICAgbW92ZSAwLCB0MAot
ICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6Ci0gICAgbW92
ZSAoY29uc3RleHByIElOVDY0X01BWCksIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0
T2ZCb3VuZHNUcnVuY1NhdE1pbjoKLSAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUlOKSwgdDAK
LSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfc2F0X2Y2NF9z
LCBXYXNtSTY0VHJ1bmNTYXRGNjRTLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3Bl
cmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGMzZTAwMDAwMDAwMDAwMDAsIHQwICMgSU5UNjRfTUlO
Ci0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1pbk9yTmFOCi0KLSAgICBtb3ZlIDB4NDNlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UNjRf
TUlOCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5k
c1RydW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWQycXMgZnQwLCB0MAotICAgIHJldHVybnEoY3R4
LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKLSAgICBiZGVxIGZ0MCwgZnQw
LCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotICAgIG1vdmUgMCwgdDAKLSAgICByZXR1cm5xKGN0
eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1vdmUgKGNvbnN0ZXhwciBJ
TlQ2NF9NQVgpLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNT
YXRNaW46Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDY0X01JTiksIHQwCi0gICAgcmV0dXJucShj
dHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3NhdF9mMzJfdSwgV2FzbUk2NFRydW5j
U2F0RjMyVSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQot
ICAgIG1vdmUgMHhiZjgwMDAwMCwgdDAgIyAtMS4wCi0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZs
dGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCi0KLSAgICBtb3ZlIDB4NWY4
MDAwMDAsIHQwICMgSU5UNjRfTUlOICogLTIuMAotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmZ3Rl
cXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVmMnEg
ZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46
Ci0gICAgbW92ZSAwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1
bmNTYXRNYXg6Ci0gICAgbW92ZSAoY29uc3RleHByIFVJTlQ2NF9NQVgpLCB0MAotICAgIHJldHVy
bnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY19zYXRfZjY0X3UsIFdhc21JNjRU
cnVuY1NhdEY2NFUsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDAp
Ci0KLSAgICBtb3ZlIDB4YmZmMDAwMDAwMDAwMDAwMCwgdDAgIyAtMS4wCi0gICAgZnEyZCB0MCwg
ZnQxCi0gICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCi0KLSAg
ICBtb3ZlIDB4NDNmMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCi0gICAgZnEy
ZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4
Ci0KLSAgICB0cnVuY2F0ZWQycSBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0
T2ZCb3VuZHNUcnVuY1NhdE1pbjoKLSAgICBtb3ZlIDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQw
KQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKLSAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDY0
X01BWCksIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi0KLXdhc21PcChmMzJfY29u
dmVydF91X2k2NCwgV2FzbUYzMkNvbnZlcnRVSTY0LCBtYWNybyAoY3R4KQord2FzbUk2NFRvRk9w
KGYzMl9jb252ZXJ0X3VfaTY0LCBXYXNtRjMyQ29udmVydFVJNjQsIG1hY3JvIChjdHgpCiAgICAg
bWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICBpZiBYODZfNjQKICAgICAgICAgY3EyZiB0
MCwgdDEsIGZ0MAotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgICAg
IGNxMmYgdDAsIGZ0MAogICAgIGVsc2UKLSAgICAgICAgZXJyb3IKKyAgICAgICAgY3EyZiB0MCwg
ZnQwCiAgICAgZW5kCiAgICAgcmV0dXJuZihjdHgsIGZ0MCkKIGVuZCkKIAotd2FzbU9wKGY2NF9j
b252ZXJ0X3VfaTY0LCBXYXNtRjY0Q29udmVydFVJNjQsIG1hY3JvIChjdHgpCit3YXNtSTY0VG9G
T3AoZjY0X2NvbnZlcnRfdV9pNjQsIFdhc21GNjRDb252ZXJ0VUk2NCwgbWFjcm8gKGN0eCkKICAg
ICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQogICAgIGlmIFg4Nl82NAogICAgICAgICBjcTJk
IHQwLCB0MSwgZnQwCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKLSAgICAg
ICAgY3EyZCB0MCwgZnQwCiAgICAgZWxzZQotICAgICAgICBlcnJvcgorICAgICAgICBjcTJkIHQw
LCBmdDAKICAgICBlbmQKICAgICByZXR1cm5kKGN0eCwgZnQwKQogZW5kKQpAQCAtMTYzMSw0NyAr
MTE2NSw2IEBAIHdhc21PcChpMzJfZXF6LCBXYXNtSTMyRXF6LCBtYWNybyhjdHgpCiAgICAgcmV0
dXJuaShjdHgsIHQwKQogZW5kKQogCi13YXNtT3AoaTY0X3NobCwgV2FzbUk2NFNobCwgbWFjcm8o
Y3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3Jocywg
dDEpCi0gICAgbHNoaWZ0cSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdh
c21PcChpNjRfc2hyX3UsIFdhc21JNjRTaHJVLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwg
bV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLSAgICB1cnNoaWZ0cSB0MSwg
dDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfc2hyX3MsIFdhc21J
NjRTaHJTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2Fk
aShjdHgsIG1fcmhzLCB0MSkKLSAgICByc2hpZnRxIHQxLCB0MAotICAgIHJldHVybnEoY3R4LCB0
MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9yb3RyLCBXYXNtSTY0Um90ciwgbWFjcm8oY3R4KQotICAg
IG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCi0gICAg
cnJvdGF0ZXEgdDEsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0
X3JvdGwsIFdhc21JNjRSb3RsLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQw
KQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLSAgICBscm90YXRlcSB0MSwgdDAKLSAgICBy
ZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfZXF6LCBXYXNtSTY0RXF6LCBtYWNy
byhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBjcWVxIHQwLCAwLCB0
MAotICAgIHJldHVybmkoY3R4LCB0MCkKLWVuZCkKLQogd2FzbU9wKGYzMl9taW4sIFdhc21GMzJN
aW4sIG1hY3JvKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX2xocywgZnQwKQogICAgIG1sb2FkZihj
dHgsIG1fcmhzLCBmdDEpCkBAIC0xNzgxLDIzICsxMjc0LDYgQEAgd2FzbU9wKGY2NF9tYXgsIFdh
c21GNjRNYXgsIG1hY3JvKGN0eCkKICAgICByZXR1cm5kKGN0eCwgZnQxKQogZW5kKQogCi13YXNt
T3AoZjY0X2NvcHlzaWduLCBXYXNtRjY0Q29weXNpZ24sIG1hY3JvKGN0eCkKLSAgICBtbG9hZGQo
Y3R4LCBtX2xocywgZnQwKQotICAgIG1sb2FkZChjdHgsIG1fcmhzLCBmdDEpCi0KLSAgICBmZDJx
IGZ0MSwgdDEKLSAgICBtb3ZlIDB4ODAwMDAwMDAwMDAwMDAwMCwgdDIKLSAgICBhbmRxIHQyLCB0
MQotCi0gICAgZmQycSBmdDAsIHQwCi0gICAgbW92ZSAweDdmZmZmZmZmZmZmZmZmZmYsIHQyCi0g
ICAgYW5kcSB0MiwgdDAKLQotICAgIG9ycSB0MSwgdDAKLSAgICBmcTJkIHQwLCBmdDAKLSAgICBy
ZXR1cm5kKGN0eCwgZnQwKQotZW5kKQotCiB3YXNtT3AoZjMyX2NvbnZlcnRfdV9pMzIsIFdhc21G
MzJDb252ZXJ0VUkzMiwgbWFjcm8oY3R4KQogICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDAp
CiAgICAgY2kyZiB0MCwgZnQwCkBAIC0xOTczLDEzNCArMTQ0OSw2IEBAIHdhc21PcChpMzJfY2x6
LCBXYXNtSTMyQ2x6LCBtYWNybyhjdHgpCiAgICAgcmV0dXJuaShjdHgsIHQxKQogZW5kKQogCi13
YXNtT3AoaTY0X2FkZCwgV2FzbUk2NEFkZCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1f
bGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgYWRkcSB0MCwgdDEKLSAg
ICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfc3ViLCBXYXNtSTY0U3ViLCBt
YWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1f
cmhzLCB0MSkKLSAgICBzdWJxIHQxLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQot
d2FzbU9wKGk2NF9tdWwsIFdhc21JNjRNdWwsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBt
X2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIG11bHEgdDAsIHQxCi0g
ICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X2FuZCwgV2FzbUk2NEFuZCwg
bWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBt
X3JocywgdDEpCi0gICAgYW5kcSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0K
LXdhc21PcChpNjRfb3IsIFdhc21JNjRPciwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1f
bGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgb3JxIHQwLCB0MQotICAg
IHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF94b3IsIFdhc21JNjRYb3IsIG1h
Y3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9y
aHMsIHQxKQotICAgIHhvcnEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13
YXNtT3AoaTY0X2VxLCBXYXNtSTY0RXEsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xo
cywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxZXEgdDAsIHQxLCB0Mgot
ICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRf
bmUsIFdhc21JNjROZSwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAg
ICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FuZXEgdDAsIHQxLCB0MgotICAgIGFuZGkg
MSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfbHRfcywgV2Fz
bUk2NEx0UywgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9h
ZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FsdCB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0Mgot
ICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9sZV9zLCBXYXNtSTY0TGVT
LCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgs
IG1fcmhzLCB0MSkKLSAgICBjcWx0ZXEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICBy
ZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfbHRfdSwgV2FzbUk2NEx0VSwgbWFj
cm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3Jo
cywgdDEpCi0gICAgY3FiIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShj
dHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2xlX3UsIFdhc21JNjRMZVUsIG1hY3JvKGN0eCkK
LSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQot
ICAgIGNxYmVxIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQy
KQotZW5kKQotCi13YXNtT3AoaTY0X2d0X3MsIFdhc21JNjRHdFMsIG1hY3JvKGN0eCkKLSAgICBt
bG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNx
Z3QgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQp
Ci0KLXdhc21PcChpNjRfZ2VfcywgV2FzbUk2NEdlUywgbWFjcm8oY3R4KQotICAgIG1sb2FkcShj
dHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FndGVxIHQw
LCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13
YXNtT3AoaTY0X2d0X3UsIFdhc21JNjRHdFUsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBt
X2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxYSB0MCwgdDEsIHQy
Ci0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2
NF9nZV91LCBXYXNtSTY0R2VVLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQw
KQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWFlcSB0MCwgdDEsIHQyCi0gICAg
YW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9jbHos
IFdhc21JNjRDbHosIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQot
ICAgIGx6Y250cSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KIHdhc21PcChm
MzJfYWRkLCBXYXNtRjMyQWRkLCBtYWNybyhjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9saHMsIGZ0
MCkKICAgICBtbG9hZGYoY3R4LCBtX3JocywgZnQxKQpAQCAtMjE0MSwxMyArMTQ4OSwxMyBAQCB3
YXNtT3AoZjMyX25lZywgV2FzbUYzMk5lZywgbWFjcm8oY3R4KQogICAgIHJldHVybmYoY3R4LCBm
dDEpCiBlbmQpCiAKLXdhc21PcChmMzJfY2VpbCwgV2FzbUYzMkNlaWwsIG1hY3JvKGN0eCkKK3dh
c21Sb3VuZGluZ09wKGYzMl9jZWlsLCBXYXNtRjMyQ2VpbCwgbWFjcm8oY3R4KQogICAgIG1sb2Fk
ZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIGNlaWxmIGZ0MCwgZnQxCiAgICAgcmV0dXJuZihj
dHgsIGZ0MSkKIGVuZCkKIAotd2FzbU9wKGYzMl9mbG9vciwgV2FzbUYzMkZsb29yLCBtYWNybyhj
dHgpCit3YXNtUm91bmRpbmdPcChmMzJfZmxvb3IsIFdhc21GMzJGbG9vciwgbWFjcm8oY3R4KQog
ICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIGZsb29yZiBmdDAsIGZ0MQogICAg
IHJldHVybmYoY3R4LCBmdDEpCkBAIC0yMjQxLDEzICsxNTg5LDEzIEBAIHdhc21PcChmNjRfbmVn
LCBXYXNtRjY0TmVnLCBtYWNybyhjdHgpCiAgICAgcmV0dXJuZChjdHgsIGZ0MSkKIGVuZCkKIAot
d2FzbU9wKGY2NF9jZWlsLCBXYXNtRjY0Q2VpbCwgbWFjcm8oY3R4KQord2FzbVJvdW5kaW5nT3Ao
ZjY0X2NlaWwsIFdhc21GNjRDZWlsLCBtYWNybyhjdHgpCiAgICAgbWxvYWRkKGN0eCwgbV9vcGVy
YW5kLCBmdDApCiAgICAgY2VpbGQgZnQwLCBmdDEKICAgICByZXR1cm5kKGN0eCwgZnQxKQogZW5k
KQogCi13YXNtT3AoZjY0X2Zsb29yLCBXYXNtRjY0Rmxvb3IsIG1hY3JvKGN0eCkKK3dhc21Sb3Vu
ZGluZ09wKGY2NF9mbG9vciwgV2FzbUY2NEZsb29yLCBtYWNybyhjdHgpCiAgICAgbWxvYWRkKGN0
eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgZmxvb3JkIGZ0MCwgZnQxCiAgICAgcmV0dXJuZChjdHgs
IGZ0MSkKQEAgLTIzMDIsNTAgKzE2NTAsMjAgQEAgd2FzbU9wKGY2NF9nZSwgV2FzbUY2NEdlLCBt
YWNybyhjdHgpCiBlbmQpCiAKIHdhc21PcChpMzJfd3JhcF9pNjQsIFdhc21JMzJXcmFwSTY0LCBt
YWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBtbG9hZGkoY3R4
LCBtX29wZXJhbmQsIHQwKQogICAgIHJldHVybmkoY3R4LCB0MCkKIGVuZCkKIAotd2FzbU9wKGk2
NF9leHRlbmRfc19pMzIsIFdhc21JNjRFeHRlbmRTSTMyLCBtYWNybyhjdHgpCi0gICAgbWxvYWRp
KGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBzeGkycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwg
dDEpCi1lbmQpCi0KLXdhc21PcChpNjRfZXh0ZW5kX3VfaTMyLCBXYXNtSTY0RXh0ZW5kVUkzMiwg
bWFjcm8oY3R4KQotICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgenhpMnEgdDAs
IHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCiB3YXNtT3AoaTMyX2V4dGVuZDhfcywg
V2FzbUkzMkV4dGVuZDhTLCBtYWNybyhjdHgpCiAgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0
MCkKICAgICBzeGIyaSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCisgICAgcmV0dXJuaShj
dHgsIHQxKQogZW5kKQogCiB3YXNtT3AoaTMyX2V4dGVuZDE2X3MsIFdhc21JMzJFeHRlbmQxNlMs
IG1hY3JvKGN0eCkKICAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQogICAgIHN4aDJpIHQw
LCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9leHRlbmQ4X3Ms
IFdhc21JNjRFeHRlbmQ4UywgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwg
dDApCi0gICAgc3hiMnEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNt
T3AoaTY0X2V4dGVuZDE2X3MsIFdhc21JNjRFeHRlbmQxNlMsIG1hY3JvKGN0eCkKLSAgICBtbG9h
ZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIHN4aDJxIHQwLCB0MQotICAgIHJldHVybnEoY3R4
LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9leHRlbmQzMl9zLCBXYXNtSTY0RXh0ZW5kMTZTLCBt
YWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBzeGkycSB0MCwg
dDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCisgICAgcmV0dXJuaShjdHgsIHQxKQogZW5kKQogCiB3
YXNtT3AoZjMyX2NvbnZlcnRfc19pMzIsIFdhc21GMzJDb252ZXJ0U0kzMiwgbWFjcm8oY3R4KQpA
QCAtMjM1NCw3ICsxNjcyLDcgQEAgd2FzbU9wKGYzMl9jb252ZXJ0X3NfaTMyLCBXYXNtRjMyQ29u
dmVydFNJMzIsIG1hY3JvKGN0eCkKICAgICByZXR1cm5mKGN0eCwgZnQwKQogZW5kKQogCi13YXNt
T3AoZjMyX2NvbnZlcnRfc19pNjQsIFdhc21GMzJDb252ZXJ0U0k2NCwgbWFjcm8oY3R4KQord2Fz
bUk2NFRvRk9wKGYzMl9jb252ZXJ0X3NfaTY0LCBXYXNtRjMyQ29udmVydFNJNjQsIG1hY3JvKGN0
eCkKICAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQogICAgIGNxMmZzIHQwLCBmdDAKICAg
ICByZXR1cm5mKGN0eCwgZnQwKQpAQCAtMjM3OCw3ICsxNjk2LDcgQEAgd2FzbU9wKGY2NF9jb252
ZXJ0X3NfaTMyLCBXYXNtRjY0Q29udmVydFNJMzIsIG1hY3JvKGN0eCkKICAgICByZXR1cm5kKGN0
eCwgZnQwKQogZW5kKQogCi13YXNtT3AoZjY0X2NvbnZlcnRfc19pNjQsIFdhc21GNjRDb252ZXJ0
U0k2NCwgbWFjcm8oY3R4KQord2FzbUk2NFRvRk9wKGY2NF9jb252ZXJ0X3NfaTY0LCBXYXNtRjY0
Q29udmVydFNJNjQsIG1hY3JvKGN0eCkKICAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQog
ICAgIGNxMmRzIHQwLCBmdDAKICAgICByZXR1cm5kKGN0eCwgZnQwKQpAQCAtMjM5MCwzNCArMTcw
OCwyOSBAQCB3YXNtT3AoZjY0X3Byb21vdGVfZjMyLCBXYXNtRjY0UHJvbW90ZUYzMiwgbWFjcm8o
Y3R4KQogICAgIHJldHVybmQoY3R4LCBmdDEpCiBlbmQpCiAKLXdhc21PcChmNjRfcmVpbnRlcnBy
ZXRfaTY0LCBXYXNtRjY0UmVpbnRlcnByZXRJNjQsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4
LCBtX29wZXJhbmQsIHQwKQotICAgIGZxMmQgdDAsIGZ0MAotICAgIHJldHVybmQoY3R4LCBmdDAp
Ci1lbmQpCi0KIHdhc21PcChpMzJfcmVpbnRlcnByZXRfZjMyLCBXYXNtSTMyUmVpbnRlcnByZXRG
MzIsIG1hY3JvKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICBmZjJp
IGZ0MCwgdDAKICAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCiAKLXdhc21PcChpNjRfcmVpbnRl
cnByZXRfZjY0LCBXYXNtSTY0UmVpbnRlcnByZXRGNjQsIG1hY3JvKGN0eCkKLSAgICBtbG9hZGQo
Y3R4LCBtX29wZXJhbmQsIGZ0MCkKLSAgICBmZDJxIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwg
dDApCi1lbmQpCi0KIG1hY3JvIGRyb3BLZWVwKHN0YXJ0T2Zmc2V0LCBkcm9wLCBrZWVwKQogICAg
IGxzaGlmdGkgMywgc3RhcnRPZmZzZXQKICAgICBzdWJwIGNmciwgc3RhcnRPZmZzZXQsIHN0YXJ0
T2Zmc2V0CiAgICAgbmVnaSBkcm9wCitpZiBKU1ZBTFVFNjQKICAgICBzeGkycSBkcm9wLCBkcm9w
CitlbmQKIAogLmNvcHlMb29wOgogICAgIGJ0aXoga2VlcCwgLmRvbmUKK2lmIEpTVkFMVUU2NAog
ICAgIGxvYWRxIFtzdGFydE9mZnNldCwgZHJvcCwgOF0sIHQ2CiAgICAgc3RvcmVxIHQ2LCBbc3Rh
cnRPZmZzZXRdCitlbHNlCisgICAgbG9hZDJpYSBbc3RhcnRPZmZzZXQsIGRyb3AsIDhdLCB0NSwg
dDYKKyAgICBzdG9yZTJpYSB0NSwgdDYsIFtzdGFydE9mZnNldF0KK2VuZAogICAgIHN1YmkgMSwg
a2VlcAogICAgIHN1YnAgOCwgc3RhcnRPZmZzZXQKICAgICBqbXAgLmNvcHlMb29wCkBAIC0yNDM1
LDM4OSArMTc0OCw2IEBAIHdhc21PcChkcm9wX2tlZXAsIFdhc21Ecm9wS2VlcCwgbWFjcm8oY3R4
KQogICAgIGRpc3BhdGNoKGN0eCkKIGVuZCkKIAotbWFjcm8gd2FzbUF0b21pY0JpbmFyeVJNV09w
cyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5iLCBmbmgsIGZuaSwgZm5xKQot
ICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzglbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRv
bWljUm13OCV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4
LCBtX3BvaW50ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAg
ICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQ
b2ludGVyQWRkaW5nT2Zmc2V0KGN0eCwgdDMsIHQxLCAxKQotICAgICAgICBmbmIodDAsIFt0M10s
IHQyLCB0NSwgdDEpCi0gICAgICAgIGFuZHEgMHhmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDhU
bzY0Ci0gICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmYsIC5vayBlbmQpCi0g
ICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi0gICAgd2FzbU9wKGk2NF9hdG9taWNf
cm13MTYlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MTYldXBwZXJDYXNlT3Bj
b2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKLSAg
ICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFs
dWUsIHQwKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdp
dGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgMikKLSAgICAgICAgZm5oKHQwLCBbdDNdLCB0
MiwgdDUsIHQxKQotICAgICAgICBhbmRxIDB4ZmZmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDE2
VG82NAotICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmZmYsIC5vayBlbmQp
Ci0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi0gICAgd2FzbU9wKGk2NF9hdG9t
aWNfcm13MzIlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MzIldXBwZXJDYXNl
T3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykK
LSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShjdHgsIG1f
dmFsdWUsIHQwKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNl
dFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgNCkKLSAgICAgICAgZm5pKHQwLCBbdDNd
LCB0MiwgdDUsIHQxKQotICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmZmZm
ZmZmLCAub2sgZW5kKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdh
c21PcChpNjRfYXRvbWljX3JtdyVsb3dlckNhc2VPcGNvZGUlLCBXYXNtSTY0QXRvbWljUm13JXVw
cGVyQ2FzZU9wY29kZSUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVy
LCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShj
dHgsIG1fdmFsdWUsIHQwKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGlu
Z09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgOCkKLSAgICAgICAgZm5xKHQw
LCBbdDNdLCB0MiwgdDUsIHQxKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQot
ZW5kCi0KLW1hY3JvIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhsb3dlckNhc2VP
cGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5pLCBmbnEpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJN
V09wcyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwKLSAgICAgICAgbWFjcm8odDBH
UFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIGlmIFg4Nl82NAotICAg
ICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCi0gICAgICAgICAgICAgICAgbG9hZGIgbWVt
LCB0MEdQUgotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwg
dDJHUFIKLSAgICAgICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgICAg
IGJhdG9taWN3ZWFrY2FzYiB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKLSAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxYiBtZW0s
IHQxR1BSCi0gICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAg
ICAgICAgICAgc3RvcmVjb25kcmVsYiB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgICAg
IGJpbmVxIHQ1R1BSLCAwLCAubG9vcAotICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BS
Ci0gICAgICAgICAgICBlbmQKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgaWYgWDg2XzY0Ci0gICAgICAgICAg
ICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKLSAgICAgICAgICAgICAgICBsb2FkaCBtZW0sIHQwR1BS
Ci0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgot
ICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAgICAgYmF0b21p
Y3dlYWtjYXNoIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAotICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbG9hZGxpbmthY3FoIG1lbSwgdDFHUFIK
LSAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgICAg
ICBzdG9yZWNvbmRyZWxoIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICAgICAgYmluZXEg
dDVHUFIsIDAsIC5sb29wCi0gICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAgICAg
ICAgICAgIGVuZAotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BS
LCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBpZiBYODZfNjQKLSAgICAgICAgICAgICAgICBt
b3ZlIHQwR1BSLCB0NUdQUgotICAgICAgICAgICAgICAgIGxvYWRpIG1lbSwgdDBHUFIKLSAgICAg
ICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCi0gICAgICAg
ICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgICAgICBiYXRvbWljd2Vha2Nh
c2kgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAubG9vcDoKLSAgICAgICAgICAgICAgICBsb2FkbGlua2FjcWkgbWVtLCB0MUdQUgotICAgICAg
ICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgICAgIHN0b3Jl
Y29uZHJlbGkgdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwg
MCwgLmxvb3AKLSAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAgICAgICAgICAg
ZW5kCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikKLSAgICAgICAgICAgIGlmIFg4Nl82NAotICAgICAgICAgICAgICAgIG1vdmUgdDBH
UFIsIHQ1R1BSCi0gICAgICAgICAgICAgICAgbG9hZHEgbWVtLCB0MEdQUgotICAgICAgICAgICAg
Lmxvb3A6Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKLSAgICAgICAgICAgICAg
ICBmbnEodDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgICAgIGJhdG9taWN3ZWFrY2FzcSB0MEdQ
UiwgdDJHUFIsIG1lbSwgLmxvb3AKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIC5sb29w
OgotICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxcSBtZW0sIHQxR1BSCi0gICAgICAgICAgICAg
ICAgZm5xKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAgICAgc3RvcmVjb25kcmVs
cSB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9v
cAotICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0gICAgICAgICAgICBlbmQKLSAg
ICAgICAgZW5kKQotZW5kCi0KLWlmIFg4Nl82NAotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMo
X2FkZCwgQWRkLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KSBhdG9taWN4Y2hnYWRkYiB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGggdDBHUFIsIG1lbSBlbmQsCi0g
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdh
ZGRpIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVH
UFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkcSB0MEdQUiwgbWVtIGVuZCkKLSAgICB3YXNtQXRvbWlj
QmluYXJ5Uk1XT3BzKF9zdWIsIFN1YiwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1YmIgdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJoIHQwR1BS
LCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KSBhdG9taWN4Y2hnc3ViaSB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1YnEgdDBHUFIsIG1lbSBlbmQpCi0g
ICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfeGNoZywgWGNoZywKLSAgICAgICAgbWFjcm8odDBH
UFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2IgdDBHUFIsIG1lbSBlbmQs
Ci0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hj
aGdoIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVH
UFIsIHQxR1BSKSBhdG9taWN4Y2hnaSB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBH
UFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3EgdDBHUFIsIG1lbSBlbmQp
Ci0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9hbmQsIEFuZCwKLSAgICAg
ICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgYW5kaSB0NUdQUiwgdDJHUFIKLSAg
ICAgICAgZW5kLAotICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBhbmRx
IHQ1R1BSLCB0MkdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dp
dGhXZWFrQ0FTKF9vciwgT3IsCi0gICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKLSAgICAgICAg
ICAgIG9yaSB0NUdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0NUdQUiwg
dDJHUFIpCi0gICAgICAgICAgICBvcnEgdDVHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLSAgICB3
YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3hvciwgWG9yLAotICAgICAgICBtYWNy
byh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICB4b3JpIHQ1R1BSLCB0MkdQUgotICAgICAgICBl
bmQsCi0gICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgIHhvcnEgdDVHUFIs
IHQyR1BSCi0gICAgICAgIGVuZCkKLWVsc2lmIEFSTTY0RQotICAgIHdhc21BdG9taWNCaW5hcnlS
TVdPcHMoX2FkZCwgQWRkLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIs
IHQxR1BSKSBhdG9taWN4Y2hnYWRkYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRoIHQwR1BS
LCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikgYXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBt
YWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkcSB0MEdQ
UiwgbWVtLCB0MEdQUiBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfc3ViLCBTdWIs
Ci0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAg
ICAgICBuZWdxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnYWRkYiB0MEdQUiwgbWVtLCB0
MEdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQ
UiwgdDFHUFIpCi0gICAgICAgICAgICBuZWdxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hn
YWRkaCB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBuZWdxIHQwR1BSCi0gICAg
ICAgICAgICBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQsCi0g
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAg
ICBuZWdxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnYWRkcSB0MEdQUiwgbWVtLCB0MEdQ
UgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfYW5kLCBBbmQsCi0g
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAg
ICBub3RxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnY2xlYXJiIHQwR1BSLCBtZW0sIHQw
R1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikKLSAgICAgICAgICAgIG5vdHEgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdj
bGVhcmggdDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgbm90cSB0MEdQUgotICAg
ICAgICAgICAgYXRvbWljeGNoZ2NsZWFyaSB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQs
Ci0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAg
ICAgICBub3RxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnY2xlYXJxIHQwR1BSLCBtZW0s
IHQwR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9vciwgT3Is
Ci0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hj
aGdvcmIgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnb3JoIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwK
LSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNo
Z29yaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcnEgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQot
ICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hvciwgWG9yLAotICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9yYiB0MEdQUiwgbWVtLCB0
MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIp
IGF0b21pY3hjaGd4b3JoIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBH
UFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmkgdDBHUFIsIG1lbSwg
dDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KSBhdG9taWN4Y2hneG9ycSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQpCi0gICAgd2FzbUF0b21pY0Jp
bmFyeVJNV09wcyhfeGNoZywgWGNoZywKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2IgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnaCB0MEdQ
UiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQ
UiwgdDFHUFIpIGF0b21pY3hjaGdpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFj
cm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3EgdDBHUFIsIG1l
bSwgdDBHUFIgZW5kKQotZWxzZQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NB
UyhfYWRkLCBBZGQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAg
ICAgICBhZGRpIHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNy
byh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgYWRkcSB0MEdQUiwgdDFHUFIsIHQy
R1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMo
X3N1YiwgU3ViLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAg
ICAgc3ViaSB0MUdQUiwgdDBHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8o
dDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIHN1YnEgdDFHUFIsIHQwR1BSLCB0MkdQ
UgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94
Y2hnLCBYY2hnLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAg
ICAgbW92ZSB0MEdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwg
dDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKLSAgICAgICAgZW5k
KQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYW5kLCBBbmQsCi0gICAg
ICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBhbmRpIHQwR1BSLCB0
MUdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQy
R1BSKQotICAgICAgICAgICAgYW5kcSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkK
LSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX29yLCBPciwKLSAgICAgICAg
bWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIG9yaSB0MEdQUiwgdDFHUFIs
IHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikK
LSAgICAgICAgICAgIG9ycSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLSAgICB3
YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3hvciwgWG9yLAotICAgICAgICBtYWNy
byh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgeG9yaSB0MEdQUiwgdDFHUFIsIHQy
R1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAg
ICAgICAgICAgIHhvcnEgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQpCi1lbmQKLQot
bWFjcm8gd2FzbUF0b21pY0NvbXBhcmVFeGNoYW5nZU9wcyhsb3dlckNhc2VPcGNvZGUsIHVwcGVy
Q2FzZU9wY29kZSwgZm5iLCBmbmgsIGZuaSwgZm5xKQotICAgIHdhc21PcChpNjRfYXRvbWljX3Jt
dzglbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13OCV1cHBlckNhc2VPcGNvZGUl
VSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQotICAgICAg
ICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBlY3Rl
ZCwgdDApCi0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQotICAgICAgICBlbWl0Q2hl
Y2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgsIHQzLCB0MSwgMSkKLSAgICAgICAg
Zm5iKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQotICAgICAgICBhbmRxIDB4ZmYsIHQwICMgRklYTUU6
IFplcm9FeHRlbmQ4VG82NAotICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZm
LCAub2sgZW5kKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdhc21P
cChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzE2
JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9p
bnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9h
ZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIp
Ci0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdu
bWVudENoZWNrKGN0eCwgdDMsIHQxLCAyKQotICAgICAgICBmbmgodDAsIHQyLCBbdDNdLCB0NSwg
dDEpCi0gICAgICAgIGFuZHEgMHhmZmZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kMTZUbzY0Ci0g
ICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmZmZiwgLm9rIGVuZCkKLSAgICAg
ICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcz
MiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXczMiV1cHBlckNhc2VPcGNvZGUl
VSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQotICAgICAg
ICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBlY3Rl
ZCwgdDApCi0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQotICAgICAgICBlbWl0Q2hl
Y2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQz
LCB0MSwgNCkKLSAgICAgICAgZm5pKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQotICAgICAgICBhc3Nl
cnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmZmZmZmZmLCAub2sgZW5kKQotICAgICAgICByZXR1
cm5xKGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdhc21PcChpNjRfYXRvbWljX3JtdyVsb3dlckNh
c2VPcGNvZGUlLCBXYXNtSTY0QXRvbWljUm13JXVwcGVyQ2FzZU9wY29kZSUsIG1hY3JvKGN0eCkK
LSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBt
X29mZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQotICAgICAg
ICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBv
aW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDgpCi0gICAg
ICAgIGZucSh0MCwgdDIsIFt0M10sIHQ1LCB0MSkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQot
ICAgIGVuZCkKLWVuZAotCi0jIHQwR1BSID0+IGV4cGVjdGVkLCB0MkdQUiA9PiB2YWx1ZSwgbWVt
ID0+IG1lbW9yeSByZWZlcmVuY2UKLXdhc21BdG9taWNDb21wYXJlRXhjaGFuZ2VPcHMoX2NtcHhj
aGcsIENtcHhjaGcsCi0gICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BSLCB0MUdQUikK
LSAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQotICAgICAgICAgICAgYnFhIHQwR1BSICwgMHhm
ZiwgLmZhaWwKLSAgICAgICAgICAgIGF0b21pY3dlYWtjYXNiIHQwR1BSLCB0MkdQUiwgbWVtCi0g
ICAgICAgICAgICBqbXAgLmRvbmUKLSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAgICBhdG9taWNs
b2FkYiBtZW0sIHQwR1BSCi0gICAgICAgIC5kb25lOgotICAgICAgICBlbHNlCi0gICAgICAgIC5s
b29wOgotICAgICAgICAgICAgbG9hZGxpbmthY3FiIG1lbSwgdDFHUFIKLSAgICAgICAgICAgIGJx
bmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbGIgdDVHUFIs
IHQyR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAg
ICBqbXAgLmxvb3AKLSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAgICBzdG9yZWNvbmRyZWxiIHQ1
R1BSLCB0MUdQUiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAg
ICAgICAgam1wIC5sb29wCi0gICAgICAgIC5kb25lOgotICAgICAgICAgICAgbW92ZSB0MUdQUiwg
dDBHUFIKLSAgICAgICAgZW5kCi0gICAgZW5kLAotICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVt
LCB0NUdQUiwgdDFHUFIpCi0gICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKLSAgICAgICAgICAg
IGJxYSB0MEdQUiwgMHhmZmZmLCAuZmFpbAotICAgICAgICAgICAgYXRvbWljd2Vha2Nhc2ggdDBH
UFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgIGptcCAuZG9uZQotICAgICAgICAuZmFpbDoKLSAg
ICAgICAgICAgIGF0b21pY2xvYWRoIG1lbSwgdDBHUFIKLSAgICAgICAgLmRvbmU6Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICBsb2FkbGlua2FjcWggbWVtLCB0MUdQ
UgotICAgICAgICAgICAgYnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAotICAgICAgICAgICAgc3Rv
cmVjb25kcmVsaCB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwg
LmRvbmUKLSAgICAgICAgICAgIGptcCAubG9vcAotICAgICAgICAuZmFpbDoKLSAgICAgICAgICAg
IHN0b3JlY29uZHJlbGggdDVHUFIsIHQxR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIs
IDAsIC5kb25lCi0gICAgICAgICAgICBqbXAgLmxvb3AKLSAgICAgICAgLmRvbmU6Ci0gICAgICAg
ICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAgICAgICBlbmQKLSAgICBlbmQsCi0gICAgbWFjcm8o
dDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgaWYgWDg2XzY0IG9yIEFS
TTY0RQotICAgICAgICAgICAgYnFhIHQwR1BSLCAweGZmZmZmZmZmLCAuZmFpbAotICAgICAgICAg
ICAgYXRvbWljd2Vha2Nhc2kgdDBHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgIGptcCAuZG9u
ZQotICAgICAgICAuZmFpbDoKLSAgICAgICAgICAgIGF0b21pY2xvYWRpIG1lbSwgdDBHUFIKLSAg
ICAgICAgLmRvbmU6Ci0gICAgICAgIGVsc2UKLSAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICBs
b2FkbGlua2FjcWkgbWVtLCB0MUdQUgotICAgICAgICAgICAgYnFuZXEgdDBHUFIsIHQxR1BSLCAu
ZmFpbAotICAgICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAg
ICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGptcCAubG9vcAotICAgICAg
ICAuZmFpbDoKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbGkgdDVHUFIsIHQxR1BSLCBtZW0KLSAg
ICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBqbXAgLmxvb3AKLSAg
ICAgICAgLmRvbmU6Ci0gICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAgICAgICBlbmQK
LSAgICBlbmQsCi0gICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BSLCB0MUdQUikKLSAg
ICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQotICAgICAgICAgICAgYXRvbWljd2Vha2Nhc3EgdDBH
UFIsIHQyR1BSLCBtZW0KLSAgICAgICAgZWxzZQotICAgICAgICAubG9vcDoKLSAgICAgICAgICAg
IGxvYWRsaW5rYWNxcSBtZW0sIHQxR1BSCi0gICAgICAgICAgICBicW5lcSB0MEdQUiwgdDFHUFIs
IC5mYWlsCi0gICAgICAgICAgICBzdG9yZWNvbmRyZWxxIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAg
ICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAg
ICAgIC5mYWlsOgotICAgICAgICAgICAgc3RvcmVjb25kcmVscSB0NUdQUiwgdDFHUFIsIG1lbQot
ICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGptcCAubG9vcAot
ICAgICAgICAuZG9uZToKLSAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0gICAgICAgIGVu
ZAotICAgIGVuZCkKLQogd2FzbU9wKGF0b21pY19mZW5jZSwgV2FzbURyb3BLZWVwLCBtYWNybyhj
dHgpCiAgICAgZmVuY2UKICAgICBkaXNwYXRjaChjdHgpCkBAIC0yODQ2LDkgKzE3NzYsMTQgQEAg
bWFjcm8gY29tbW9uQ2F0Y2hJbXBsKGN0eCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAgICAgY29udmVy
dENhbGxlZVRvVk0odDMpCiAgICAgcmVzdG9yZUNhbGxlZVNhdmVzRnJvbVZNRW50cnlGcmFtZUNh
bGxlZVNhdmVzQnVmZmVyKHQzLCB0MCkKIAotICAgIGxvYWRwIFZNOjpjYWxsZWVGb3JXYXNtQ2F0
Y2hbdDNdLCB3czEKLSAgICBzdG9yZXAgMCwgVk06OmNhbGxlZUZvcldhc21DYXRjaFt0M10KLSAg
ICBzdG9yZXAgd3MxLCBDYWxsZWVbY2ZyXQorICAgIGxvYWRwIFZNOjpjYWxsZWVGb3JXYXNtQ2F0
Y2ggKyBQYXlsb2FkT2Zmc2V0W3QzXSwgd3MxCisgICAgc3RvcmVwIDAsIFZNOjpjYWxsZWVGb3JX
YXNtQ2F0Y2ggKyBQYXlsb2FkT2Zmc2V0W3QzXQorICAgIHN0b3JlcCB3czEsIENhbGxlZSArIFBh
eWxvYWRPZmZzZXRbY2ZyXQoraWYgbm90IEpTVkFMVUU2NAorICAgIGxvYWRpIFZNOjpjYWxsZWVG
b3JXYXNtQ2F0Y2ggKyBUYWdPZmZzZXRbdDNdLCB3czEKKyAgICBzdG9yZWkgRW1wdHlWYWx1ZVRh
ZywgVk06OmNhbGxlZUZvcldhc21DYXRjaCArIFRhZ09mZnNldFt0M10KKyAgICBzdG9yZWkgd3Mx
LCBDYWxsZWUgKyBUYWdPZmZzZXRbY2ZyXQorZW5kCiAKICAgICBsb2FkcCBWTTo6Y2FsbEZyYW1l
Rm9yQ2F0Y2hbdDNdLCBjZnIKICAgICBzdG9yZXAgMCwgVk06OmNhbGxGcmFtZUZvckNhdGNoW3Qz
XQpAQCAtMjg4Nyw4ICsxODIyLDEzIEBAIG1hY3JvIGNhdGNoSW1wbChjdHgsIHN0b3JlV2FzbUlu
c3RhbmNlKQogCiAuY29weUxvb3A6CiAgICAgYnRpeiB0MywgLmRvbmUKK2lmIEpTVkFMVUU2NAog
ICAgIGxvYWRxIFt0MV0sIHQ2CiAgICAgc3RvcmVxIHQ2LCBbdDJdCitlbHNlCisgICAgbG9hZDJp
YSBbdDFdLCB0NSwgdDYKKyAgICBzdG9yZTJpYSB0NSwgdDYsIFt0Ml0KK2VuZAogICAgIHN1Ymkg
MSwgdDMKICAgICAjIEZJWE1FOiBVc2UgYXJtIHN0b3JlLWFkZC9zdWIgaW5zdHJ1Y3Rpb25zIGlu
IHdhc20gTExJbnQgY2F0Y2gKICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzEyMTAKQEAgLTI5MTYsMyArMTg1NiwxMCBAQCBlbmQpCiBjb21tb25XYXNtT3Ao
d2FzbV9jYXRjaF9hbGxfbm9fdGxzLCBXYXNtQ2F0Y2hBbGwsIG1hY3JvKCkgZW5kLCBtYWNybyhj
dHgpCiAgICAgY2F0Y2hBbGxJbXBsKGN0eCwgbWFjcm8oaW5zdGFuY2UpIGVuZCkKIGVuZCkKKwor
IyBWYWx1ZS1yZXByZXNlbnRhdGlvbi1zcGVjaWZpYyBjb2RlLgoraWYgSlNWQUxVRTY0CisgICAg
aW5jbHVkZSBXZWJBc3NlbWJseTY0CitlbHNlCisgICAgaW5jbHVkZSBXZWJBc3NlbWJseTMyXzY0
CitlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJs
eTMyXzY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseTMyXzY0
LmFzbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xNTgzMDRlOWZhMTEwNmNkMWM2MDk3ODA4YWU2NmU0YzFmMTQ2MWQw
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2Vt
Ymx5MzJfNjQuYXNtCkBAIC0wLDAgKzEsMTEyOSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEtMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAyMSBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworIyBDb25zdGFudHMKKworY29uc3QgTXN3T2Zmc2V0ID0gNAorY29u
c3QgTHN3T2Zmc2V0ID0gMAorCisjIE9wY29kZXMgdGhhdCBzaG91bGQgZXZlbnR1YWxseSBiZSBz
aGFyZWQgd2l0aCBKUyBsbGludAorCit3YXNtT3AobW92LCBXYXNtTW92LCBtYWNybyhjdHgpCisg
ICAgbWxvYWQyaShjdHgsIG1fc3JjLCB0MSwgdDApCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDAp
CitlbmQpCisKKyMgV2FzbSBzcGVjaWZpYyBieXRlY29kZXMKKworbWFjcm8gZW1pdENoZWNrQW5k
UHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQocG9pbnRlciwgb2Zmc2V0LCBzaXplKQorICAgICMg
VGhpcyBtYWNybyB1cGRhdGVzICdwb2ludGVyJyB0byB0YXJnZXQgYWRkcmVzcywgYW5kIG1heSB0
aHJhc2ggJ29mZnNldCcKK2lmIEFSTXY3CisgICAgIyBOb3QgZW5vdWdoIHJlZ2lzdGVycyBvbiBh
cm0gdG8ga2VlcCB0aGUgbWVtb3J5IGJhc2UgYW5kIHNpemUgaW4gcGlubmVkCisgICAgIyByZWdp
c3RlcnMsIHNvIGxvYWQgdGhlbSBvbiBlYWNoIGFjY2VzcyBpbnN0ZWFkLiBGSVhNRTogaW1wcm92
ZSB0aGlzLgorICAgIGFkZHBzIG9mZnNldCwgcG9pbnRlcgorICAgIGJjcyAudGhyb3cKKyAgICBh
ZGRwcyBzaXplIC0gMSwgcG9pbnRlciwgb2Zmc2V0ICMgVXNlIG9mZnNldCBhcyBzY3JhdGNoIHJl
Z2lzdGVyCisgICAgYmNzIC50aHJvdworICAgIGJwYiBvZmZzZXQsIFdhc206Okluc3RhbmNlOjpt
X2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZVt3YXNtSW5zdGFuY2VdLCAuY29udGludWF0aW9uCisu
dGhyb3c6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCisuY29u
dGludWF0aW9uOgorICAgIGFkZHAgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkTWVtb3J5W3dhc21J
bnN0YW5jZV0sIHBvaW50ZXIKK2Vsc2UKKyAgICBjcmFzaCgpCitlbmQKK2VuZAorCittYWNybyBl
bWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhw
b2ludGVyLCBvZmZzZXQsIHNpemUpCisgICAgIyBUaGlzIG1hY3JvIHVwZGF0ZXMgJ3BvaW50ZXIn
IHRvIHRhcmdldCBhZGRyZXNzLCBhbmQgbWF5IHRocmFzaCAnb2Zmc2V0JworaWYgQVJNdjcKKyAg
ICAjIE5vdCBlbm91Z2ggcmVnaXN0ZXJzIG9uIGFybSB0byBrZWVwIHRoZSBtZW1vcnkgYmFzZSBh
bmQgc2l6ZSBpbiBwaW5uZWQKKyAgICAjIHJlZ2lzdGVycywgc28gbG9hZCB0aGVtIG9uIGVhY2gg
YWNjZXNzIGluc3RlYWQuIEZJWE1FOiBpbXByb3ZlIHRoaXMuCisgICAgYWRkcHMgb2Zmc2V0LCBw
b2ludGVyCisgICAgYmNzIC50aHJvdworICAgIGFkZHBzIHNpemUgLSAxLCBwb2ludGVyLCBvZmZz
ZXQgIyBVc2Ugb2Zmc2V0IGFzIHNjcmF0Y2ggcmVnaXN0ZXIKKyAgICBiY3MgLnRocm93CisgICAg
YnBiIG9mZnNldCwgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplW3dh
c21JbnN0YW5jZV0sIC5jb250aW51YXRpb24KKy50aHJvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihP
dXRPZkJvdW5kc01lbW9yeUFjY2VzcykKKy5jb250aW51YXRpb246CisgICAgYWRkcCBXYXNtOjpJ
bnN0YW5jZTo6bV9jYWNoZWRNZW1vcnlbd2FzbUluc3RhbmNlXSwgcG9pbnRlcgorICAgIGJ0cG56
IHBvaW50ZXIsIChzaXplIC0gMSksIC50aHJvdworZWxzZQorICAgIGNyYXNoKCkKK2VuZAorZW5k
CisKK21hY3JvIHdhc21Mb2FkT3AobmFtZSwgc3RydWN0LCBzaXplLCBmbikKKyAgICB3YXNtT3Ao
bmFtZSwgc3RydWN0LCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwg
dDApCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBlbWl0Q2hlY2tB
bmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldCh0MCwgdDEsIHNpemUpCisgICAgICAgIGZuKHQw
LCB0MywgdDIpCisgICAgICAgIHJldHVybjJpKGN0eCwgdDMsIHQyKQorICAgIGVuZCkKK2VuZAor
Cit3YXNtTG9hZE9wKGxvYWQ4X3UsIFdhc21Mb2FkOFUsIDEsIG1hY3JvKGFkZHIsIGRzdE1zdywg
ZHN0THN3KQorICAgIGxvYWRiIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAgbW92ZSAwLCBk
c3RNc3cKK2VuZCkKK3dhc21Mb2FkT3AobG9hZDE2X3UsIFdhc21Mb2FkMTZVLCAyLCBtYWNybyhh
ZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkaCBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdwor
ICAgIG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGxvYWQzMl91LCBXYXNtTG9hZDMy
VSwgNCwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGkgTHN3T2Zmc2V0W2Fk
ZHJdLCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdworZW5kKQord2FzbUxvYWRPcChsb2FkNjRf
dSwgV2FzbUxvYWQ2NFUsIDgsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgICMgTWln
aHQgYmUgdW5hbGlnbmVkLCBzbyBjYW4ndCB1c2UgbG9hZDJpYQorICAgIGxvYWRpIExzd09mZnNl
dFthZGRyXSwgZHN0THN3CisgICAgbG9hZGkgTXN3T2Zmc2V0W2FkZHJdLCBkc3RNc3cKK2VuZCkK
Kword2FzbUxvYWRPcChpMzJfbG9hZDhfcywgV2FzbUkzMkxvYWQ4UywgMSwgbWFjcm8oYWRkciwg
ZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGJzaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAg
IG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGkzMl9sb2FkMTZfcywgV2FzbUkzMkxv
YWQxNlMsIDIsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRoc2kgTHN3T2Zm
c2V0W2FkZHJdLCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdworZW5kKQord2FzbUxvYWRPcChp
NjRfbG9hZDhfcywgV2FzbUk2NExvYWQ4UywgMSwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cp
CisgICAgbG9hZGJzaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAgIHJzaGlmdGkgZHN0THN3
LCAzMSwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGk2NF9sb2FkMTZfcywgV2FzbUk2NExvYWQx
NlMsIDIsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRoc2kgTHN3T2Zmc2V0
W2FkZHJdLCBkc3RMc3cKKyAgICByc2hpZnRpIGRzdExzdywgMzEsIGRzdE1zdworZW5kKQord2Fz
bUxvYWRPcChpNjRfbG9hZDMyX3MsIFdhc21JNjRMb2FkMzJTLCA0LCBtYWNybyhhZGRyLCBkc3RN
c3csIGRzdExzdykKKyAgICBsb2FkaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAgIHJzaGlm
dGkgZHN0THN3LCAzMSwgZHN0TXN3CitlbmQpCisKK21hY3JvIHdhc21TdG9yZU9wKG5hbWUsIHN0
cnVjdCwgc2l6ZSwgZm4pCisgICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQorICAg
ICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zm
c2V0LCB0MSkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQo
dDAsIHQxLCBzaXplKQorICAgICAgICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwgdDMsIHQyKQorICAg
ICAgICBmbih0MywgdDIsIHQwKQorICAgICAgICBkaXNwYXRjaChjdHgpCisgICAgZW5kKQorZW5k
CisKK3dhc21TdG9yZU9wKHN0b3JlOCwgV2FzbVN0b3JlOCwgMSwgbWFjcm8oc3JjTXN3LCBzcmNM
c3csIGFkZHIpCisgICAgc3RvcmViIHNyY0xzdywgTHN3T2Zmc2V0W2FkZHJdCitlbmQpCit3YXNt
U3RvcmVPcChzdG9yZTE2LCBXYXNtU3RvcmUxNiwgMiwgbWFjcm8oc3JjTXN3LCBzcmNMc3csIGFk
ZHIpCisgICAgc3RvcmVoIHNyY0xzdywgTHN3T2Zmc2V0W2FkZHJdCitlbmQpCit3YXNtU3RvcmVP
cChzdG9yZTMyLCBXYXNtU3RvcmUzMiwgNCwgbWFjcm8oc3JjTXN3LCBzcmNMc3csIGFkZHIpCisg
ICAgc3RvcmVpIHNyY0xzdywgTHN3T2Zmc2V0W2FkZHJdCitlbmQpCit3YXNtU3RvcmVPcChzdG9y
ZTY0LCBXYXNtU3RvcmU2NCwgOCwgbWFjcm8oc3JjTXN3LCBzcmNMc3csIGFkZHIpCisgICAgIyBN
aWdodCBiZSB1bmFsaWduZWQsIHNvIGNhbid0IHVzZSBzdG9yZTJpYQorICAgIHN0b3JlaSBzcmNM
c3csIExzd09mZnNldFthZGRyXQorICAgIHN0b3JlaSBzcmNNc3csIE1zd09mZnNldFthZGRyXQor
ZW5kKQorCit3YXNtT3AocmVmX2lzX251bGwsIFdhc21SZWZJc051bGwsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZDJpKGN0eCwgbV9yZWYsIHQxLCB0MCkgIyB0MCBpcyB1bnVzZWQKKyAgICBjaWVxIHQx
LCBOdWxsVGFnLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGdldF9n
bG9iYWwsIFdhc21HZXRHbG9iYWwsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJbnN0YW5j
ZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4LCBtX2dsb2JhbElu
ZGV4LCB0MSkKKyAgICBsb2FkMmlhIFt0MCwgdDEsIDhdLCB0MCwgdDEKKyAgICByZXR1cm4yaShj
dHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKHNldF9nbG9iYWwsIFdhc21TZXRHbG9iYWwsIG1h
Y3JvKGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5j
ZV0sIHQwCisgICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBtbG9hZDJpKGN0
eCwgbV92YWx1ZSwgdDMsIHQyKQorICAgIHN0b3JlMmlhIHQyLCB0MywgW3QwLCB0MSwgOF0KKyAg
ICBkaXNwYXRjaChjdHgpCitlbmQpCisKK3dhc21PcChnZXRfZ2xvYmFsX3BvcnRhYmxlX2JpbmRp
bmcsIFdhc21HZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBX
YXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4
LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBsb2FkcCBbdDAsIHQxLCA4XSwgdDAKKyAgICBsb2Fk
MmlhIFt0MF0sIHQwLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNt
T3Aoc2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNtU2V0R2xvYmFsUG9ydGFibGVCaW5k
aW5nLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNt
SW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbWxv
YWQyaShjdHgsIG1fdmFsdWUsIHQzLCB0MikKKyAgICBsb2FkcCBbdDAsIHQxLCA4XSwgdDAKKyAg
ICBzdG9yZTJpYSB0MiwgdDMsIFt0MF0KKyAgICBkaXNwYXRjaChjdHgpCitlbmQpCisKKyMgT3Bj
b2RlcyB0aGF0IGRvbid0IGhhdmUgdGhlIGBiM29wYCBlbnRyeSBpbiB3YXNtLmpzb24uIFRoaXMg
c2hvdWxkIGJlIGtlcHQgaW4gc3luYworCittYWNybyBjYWxsRGl2UmVtKGZuKQoraWYgQVJNdjcK
KyAgICBzdWJwIFN0YWNrQWxpZ25tZW50LCBzcAorICAgIHN0b3JlcCBQQywgW3NwXQorICAgIGND
YWxsNChmbikKKyAgICBsb2FkcCBbc3BdLCBQQworICAgIGFkZHAgU3RhY2tBbGlnbm1lbnQsIHNw
CitlbHNlCisgICAgZXJyb3IKK2VuZAorZW5kCisKKyMgaTMyIGJpbmFyeSBvcHMKKword2FzbU9w
KGkzMl9kaXZfcywgV2FzbUkzMkRpdlMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9s
aHMsIGEwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCBhMSkKKworICAgIGJ0aXogYTEsIC50aHJv
d0RpdmlzaW9uQnlaZXJvCisKKyAgICBiaW5lcSBhMSwgLTEsIC5zYWZlCisgICAgYmllcSBhMCwg
Y29uc3RleHByIElOVDMyX01JTiwgLnRocm93SW50ZWdlck92ZXJmbG93CisKKy5zYWZlOgorICAg
IGNhbGxEaXZSZW0oX3Nsb3dfcGF0aF93YXNtX2kzMl9kaXZfcykKKyAgICByZXR1cm5pKGN0eCwg
cjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9u
QnlaZXJvKQorCisudGhyb3dJbnRlZ2VyT3ZlcmZsb3c6CisgICAgdGhyb3dFeGNlcHRpb24oSW50
ZWdlck92ZXJmbG93KQorZW5kKQorCit3YXNtT3AoaTMyX2Rpdl91LCBXYXNtSTMyRGl2VSwgbWFj
cm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgYTApCisgICAgbWxvYWRpKGN0eCwgbV9y
aHMsIGExKQorCisgICAgYnRpeiBhMSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGNhbGxE
aXZSZW0oX3Nsb3dfcGF0aF93YXNtX2kzMl9kaXZfdSkKKyAgICByZXR1cm5pKGN0eCwgcjApCisK
Ky50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJv
KQorZW5kKQorCit3YXNtT3AoaTMyX3JlbV9zLCBXYXNtSTMyUmVtUywgbWFjcm8gKGN0eCkKKyAg
ICBtbG9hZGkoY3R4LCBtX2xocywgYTApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIGExKQorCisg
ICAgYnRpeiBhMSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGJpbmVxIGExLCAtMSwgLnNh
ZmUKKyAgICBiaW5lcSBhMCwgY29uc3RleHByIElOVDMyX01JTiwgLnNhZmUKKworICAgIG1vdmUg
MCwgcjAKKyAgICBqbXAgLnJldHVybgorCisuc2FmZToKKyAgICBjYWxsRGl2UmVtKF9zbG93X3Bh
dGhfd2FzbV9pMzJfcmVtX3MpCisKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHIwKQorCisu
dGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykK
K2VuZCkKKword2FzbU9wKGkzMl9yZW1fdSwgV2FzbUkzMlJlbVUsIG1hY3JvIChjdHgpCisgICAg
bWxvYWRpKGN0eCwgbV9saHMsIGEwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCBhMSkKKworICAg
IGJ0aXogYTEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBjYWxsRGl2UmVtKF9zbG93X3Bh
dGhfd2FzbV9pMzJfcmVtX3UpCisgICAgcmV0dXJuaShjdHgsIHIwKQorCisudGhyb3dEaXZpc2lv
bkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKworIyBp
NjQgYmluYXJ5IG9wcworCit3YXNtT3AoaTY0X2FkZCwgV2FzbUk2NEFkZCwgbWFjcm8oY3R4KQor
ICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3Jocywg
dDMsIHQyKQorICAgIGFkZGlzIHQyLCB0MAorICAgIGFkY2kgIHQzLCB0MQorICAgIHJldHVybjJp
KGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3N1YiwgV2FzbUk2NFN1YiwgbWFjcm8o
Y3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBt
X3JocywgdDMsIHQyKQorICAgIHN1YmlzIHQyLCB0MAorICAgIHNiY2kgIHQzLCB0MQorICAgIHJl
dHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X211bCwgV2FzbUk2NE11bCwg
bWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmko
Y3R4LCBtX3JocywgdDMsIHQyKQorICAgIG11bGkgdDIsIHQxCisgICAgbXVsaSB0MCwgdDMKKyAg
ICB1bXVsbGkgdDAsIHQyLCB0MCwgdDIKKyAgICBhZGRpIHQxLCB0MgorICAgIGFkZGkgdDMsIHQy
CisgICAgcmV0dXJuMmkoY3R4LCB0MiwgdDApCitlbmQpCisKK3dhc21PcChpNjRfZGl2X3MsIFdh
c21JNjREaXZTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgYTEsIGEwKQor
ICAgIG1sb2FkMmkoY3R4LCBtX3JocywgYTMsIGEyKQorCisgICAgYnRpbnogYTMsIC5ub25aZXJv
RGl2aXNvcgorICAgIGJ0aXogYTIsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKy5ub25aZXJvRGl2
aXNvcjoKKyAgICBiaW5lcSBhMywgLTEsIC5zYWZlCisgICAgYmluZXEgYTIsIC0xLCAuc2FmZQor
ICAgIGJpbmVxIGExLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAuc2FmZQorICAgIGJ0aXogYTAsIC50
aHJvd0ludGVnZXJPdmVyZmxvdworCisuc2FmZToKKyAgICBjYWxsRGl2UmVtKF9zbG93X3BhdGhf
d2FzbV9pNjRfZGl2X3MpCisgICAgcmV0dXJuMmkoY3R4LCByMSwgcjApCisKKy50aHJvd0Rpdmlz
aW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorCisudGhyb3dJ
bnRlZ2VyT3ZlcmZsb3c6CisgICAgdGhyb3dFeGNlcHRpb24oSW50ZWdlck92ZXJmbG93KQorZW5k
KQorCit3YXNtT3AoaTY0X2Rpdl91LCBXYXNtSTY0RGl2VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9h
ZDJpKGN0eCwgbV9saHMsIGExLCBhMCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIGEzLCBhMikK
KworICAgIGJ0aW56IGEzLCAubm9uWmVyb0Rpdmlzb3IKKyAgICBidGl6IGEyLCAudGhyb3dEaXZp
c2lvbkJ5WmVybworCisubm9uWmVyb0Rpdmlzb3I6CisgICAgY2FsbERpdlJlbShfc2xvd19wYXRo
X3dhc21faTY0X2Rpdl91KQorICAgIHJldHVybjJpKGN0eCwgcjEsIHIwKQorCisudGhyb3dEaXZp
c2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKwor
d2FzbU9wKGk2NF9yZW1fcywgV2FzbUk2NFJlbVMsIG1hY3JvIChjdHgpCisgICAgbWxvYWQyaShj
dHgsIG1fbGhzLCBhMSwgYTApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCBhMywgYTIpCisKKyAg
ICBidGlueiBhMywgLm5vblplcm9EaXZpc29yCisgICAgYnRpeiBhMiwgLnRocm93RGl2aXNpb25C
eVplcm8KKworLm5vblplcm9EaXZpc29yOgorICAgIGJpbmVxIGEzLCAtMSwgLnNhZmUKKyAgICBi
aW5lcSBhMiwgLTEsIC5zYWZlCisgICAgYmluZXEgYTEsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC5z
YWZlCisgICAgYnRpbnogYTAsIC5zYWZlCisKKyAgICBtb3ZlIDAsIHIxCisgICAgbW92ZSAwLCBy
MAorICAgIGptcCAucmV0dXJuCisKKy5zYWZlOgorICAgIGNhbGxEaXZSZW0oX3Nsb3dfcGF0aF93
YXNtX2k2NF9yZW1fcykKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIHIxLCByMCkKKwor
LnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8p
CitlbmQpCisKK3dhc21PcChpNjRfcmVtX3UsIFdhc21JNjRSZW1VLCBtYWNybyAoY3R4KQorICAg
IG1sb2FkMmkoY3R4LCBtX2xocywgYTEsIGEwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgYTMs
IGEyKQorCisgICAgYnRpbnogYTMsIC5ub25aZXJvRGl2aXNvcgorICAgIGJ0aXogYTIsIC50aHJv
d0RpdmlzaW9uQnlaZXJvCisKKy5ub25aZXJvRGl2aXNvcjoKKyAgICBjYWxsRGl2UmVtKF9zbG93
X3BhdGhfd2FzbV9pNjRfcmVtX3UpCisgICAgcmV0dXJuMmkoY3R4LCByMSwgcjApCisKKy50aHJv
d0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5k
KQorCit3YXNtT3AoaTY0X2FuZCwgV2FzbUk2NEFuZCwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmko
Y3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAg
IGFuZGkgdDIsIHQwCisgICAgYW5kaSB0MywgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkK
K2VuZCkKKword2FzbU9wKGk2NF9vciwgV2FzbUk2NE9yLCBtYWNybyhjdHgpCisgICAgbWxvYWQy
aShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisg
ICAgb3JpIHQyLCB0MAorICAgIG9yaSB0MywgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkK
K2VuZCkKKword2FzbU9wKGk2NF94b3IsIFdhc21JNjRYb3IsIG1hY3JvKGN0eCkKKyAgICBtbG9h
ZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikK
KyAgICB4b3JpIHQyLCB0MAorICAgIHhvcmkgdDMsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwg
dDApCitlbmQpCisKK3dhc21PcChpNjRfc2hsLCBXYXNtSTY0U2hsLCBtYWNybyhjdHgpCisgICAg
bWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQyKQor
CisgICAgYW5kaSAweDNmLCB0MgorICAgIGJ0aXogdDIsIC5yZXR1cm4KKyAgICBiaWIgdDIsIDMy
LCAubGVzc1RoYW4zMgorCisgICAgc3ViaSAzMiwgdDIKKyAgICBsc2hpZnRpIHQwLCB0MiwgdDEK
KyAgICBtb3ZlIDAsIHQwCisgICAgam1wIC5yZXR1cm4KKworLmxlc3NUaGFuMzI6CisgICAgbHNo
aWZ0aSB0MiwgdDEKKyAgICBtb3ZlIDMyLCB0MworICAgIHN1YmkgdDIsIHQzCisgICAgdXJzaGlm
dGkgdDAsIHQzLCB0MworICAgIG9yaSB0MywgdDEKKyAgICBsc2hpZnRpIHQyLCB0MAorCisucmV0
dXJuOgorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3Nocl91
LCBXYXNtSTY0U2hyVSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQw
KQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MikKKworICAgIGFuZGkgMHgzZiwgdDIKKyAgICBi
dGl6IHQyLCAucmV0dXJuCisgICAgYmliIHQyLCAzMiwgLmxlc3NUaGFuMzIKKworICAgIHN1Ymkg
MzIsIHQyCisgICAgdXJzaGlmdGkgdDEsIHQyLCB0MAorICAgIG1vdmUgMCwgdDEKKyAgICBqbXAg
LnJldHVybgorCisubGVzc1RoYW4zMjoKKyAgICB1cnNoaWZ0aSB0MiwgdDAKKyAgICBtb3ZlIDMy
LCB0MworICAgIHN1YmkgdDIsIHQzCisgICAgbHNoaWZ0aSB0MSwgdDMsIHQzCisgICAgb3JpIHQz
LCB0MAorICAgIHVyc2hpZnRpIHQyLCB0MQorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwg
dDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3Nocl9zLCBXYXNtSTY0U2hyUywgbWFjcm8oY3R4
KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhz
LCB0MikKKworICAgIGFuZGkgMHgzZiwgdDIKKyAgICBidGl6IHQyLCAucmV0dXJuCisgICAgYmli
IHQyLCAzMiwgLmxlc3NUaGFuMzIKKworICAgIHN1YmkgMzIsIHQyCisgICAgcnNoaWZ0aSB0MSwg
dDIsIHQwCisgICAgcnNoaWZ0aSAzMSwgdDEKKyAgICBqbXAgLnJldHVybgorCisubGVzc1RoYW4z
MjoKKyAgICB1cnNoaWZ0aSB0MiwgdDAKKyAgICBtb3ZlIDMyLCB0MworICAgIHN1YmkgdDIsIHQz
CisgICAgbHNoaWZ0aSB0MSwgdDMsIHQzCisgICAgb3JpIHQzLCB0MAorICAgIHJzaGlmdGkgdDIs
IHQxCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21P
cChpNjRfcm90ciwgV2FzbUk2NFJvdHIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9s
aHMsIHQxLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDIpCisKKyAgICBhbmRpIHQyLCAw
eDIwLCB0MworICAgIGJ0aXogdDMsIC5ub1N3YXAKKworICAgIG1vdmUgdDAsIHQzCisgICAgbW92
ZSB0MSwgdDAKKyAgICBtb3ZlIHQzLCB0MQorCisubm9Td2FwOgorICAgIGFuZGkgMHgxZiwgdDIK
KyAgICBidGl6IHQyLCAucmV0dXJuCisKKyAgICBtb3ZlIDMyLCB0NQorICAgIHN1YmkgdDIsIHQ1
CisgICAgbHNoaWZ0aSB0MCwgdDUsIHQzCisgICAgbHNoaWZ0aSB0MSwgdDUsIHQ1CisgICAgdXJz
aGlmdGkgdDIsIHQwCisgICAgdXJzaGlmdGkgdDIsIHQxCisgICAgb3JpIHQ1LCB0MAorICAgIG9y
aSB0MywgdDEKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKwor
d2FzbU9wKGk2NF9yb3RsLCBXYXNtSTY0Um90bCwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4
LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MikKKworICAgIGFuZGkg
dDIsIDB4MjAsIHQzCisgICAgYnRpeiB0MywgLm5vU3dhcAorCisgICAgbW92ZSB0MCwgdDMKKyAg
ICBtb3ZlIHQxLCB0MAorICAgIG1vdmUgdDMsIHQxCisKKy5ub1N3YXA6CisgICAgYW5kaSAweDFm
LCB0MgorICAgIGJ0aXogdDIsIC5yZXR1cm4KKworICAgIG1vdmUgMzIsIHQ1CisgICAgc3ViaSB0
MiwgdDUKKyAgICB1cnNoaWZ0aSB0MCwgdDUsIHQzCisgICAgdXJzaGlmdGkgdDEsIHQ1LCB0NQor
ICAgIGxzaGlmdGkgdDIsIHQwCisgICAgbHNoaWZ0aSB0MiwgdDEKKyAgICBvcmkgdDUsIHQwCisg
ICAgb3JpIHQzLCB0MQorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5k
KQorCit3YXNtT3AoaTY0X2VxLCBXYXNtSTY0RXEsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0
eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBt
b3ZlIDAsIHQ2CisgICAgYmluZXEgdDEsIHQzLCAucmV0dXJuCisgICAgY2llcSB0MCwgdDIsIHQ2
CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9uZSwg
V2FzbUk2NE5lLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisg
ICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAgIGJpbmVx
IHQxLCB0MywgLnJldHVybgorICAgIGNpbmVxIHQwLCB0MiwgdDYKKy5yZXR1cm46CisgICAgcmV0
dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2x0X3MsIFdhc21JNjRMdFMsIG1hY3Jv
KGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwg
bV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlsdCB0MSwgdDMsIC5yZXR1cm4K
KyAgICBtb3ZlIDAsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWIgdDAsIHQy
LCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5k
KQorCit3YXNtT3AoaTY0X2xlX3MsIFdhc21JNjRMZVMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJp
KGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAg
ICBtb3ZlIDEsIHQ2CisgICAgYmlsdCB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2Cisg
ICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWJlcSB0MCwgdDIsIHQ2CisgICAgYW5kaSAx
LCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRf
bHRfdSwgV2FzbUk2NEx0VSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEs
IHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYKKyAg
ICBiaWIgdDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpYSB0MSwgdDMsIC5y
ZXR1cm4KKyAgICBjaWIgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAg
cmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2xlX3UsIFdhc21JNjRMZVUsIG1h
Y3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0
eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmliIHQxLCB0MywgLnJldHVy
bgorICAgIG1vdmUgMCwgdDYKKyAgICBiaWEgdDEsIHQzLCAucmV0dXJuCisgICAgY2liZXEgdDAs
IHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQor
ZW5kKQorCit3YXNtT3AoaTY0X2d0X3MsIFdhc21JNjRHdFMsIG1hY3JvKGN0eCkKKyAgICBtbG9h
ZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikK
KyAgICBtb3ZlIDEsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2
CisgICAgYmlsdCB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWEgdDAsIHQyLCB0NgorICAgIGFuZGkg
MSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0
X2dlX3MsIFdhc21JNjRHZVMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQx
LCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2Cisg
ICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAgYmlsdCB0MSwgdDMs
IC5yZXR1cm4KKyAgICBjaWFlcSB0MCwgdDIsIHQ2CisgICAgYW5kaSAxLCB0NgorLnJldHVybjoK
KyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRfZ3RfdSwgV2FzbUk2NEd0
VSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2Fk
MmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYKKyAgICBiaWEgdDEsIHQzLCAu
cmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpYiB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWEg
dDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2
KQorZW5kKQorCit3YXNtT3AoaTY0X2dlX3UsIFdhc21JNjRHZVUsIG1hY3JvKGN0eCkKKyAgICBt
bG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0
MikKKyAgICBtb3ZlIDAsIHQ2CisgICAgYmliIHQxLCB0MywgLnJldHVybgorICAgIG1vdmUgMSwg
dDYKKyAgICBiaWEgdDEsIHQzLCAucmV0dXJuCisgICAgY2lhZXEgdDAsIHQyLCB0NgorICAgIGFu
ZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCisjIGk2NCB1
bmFyeSBvcHMKKword2FzbU9wKGk2NF9jdHosIFdhc21JNjRDdHosIG1hY3JvIChjdHgpCisgICAg
bWxvYWQyaShjdHgsIG1fb3BlcmFuZCwgdDEsIHQwKQorICAgIGJ0aXogdDAsIC50b3AKKworICAg
IHR6Y250aSB0MCwgdDAKKyAgICBqbXAgLnJldHVybgorCisudG9wOgorICAgIHR6Y250aSB0MSwg
dDAKKyAgICBhZGRpIDMyLCB0MAorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgMCwgdDAp
CitlbmQpCisKK3dhc21PcChpNjRfY2x6LCBXYXNtSTY0Q2x6LCBtYWNybyhjdHgpCisgICAgbWxv
YWQyaShjdHgsIG1fb3BlcmFuZCwgdDEsIHQwKQorICAgIGJ0aXogdDEsIC5ib3R0b20KKworICAg
IGx6Y250aSB0MSwgdDAKKyAgICBqbXAgLnJldHVybgorCisuYm90dG9tOgorICAgIGx6Y250aSB0
MCwgdDAKKyAgICBhZGRpIDMyLCB0MAorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgMCwg
dDApCitlbmQpCisKK3dhc21PcChpNjRfcG9wY250LCBXYXNtSTY0UG9wY250LCBtYWNybyAoY3R4
KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIGEzLCBhMikKKyAgICBwcmVwYXJlU3RhdGVG
b3JDQ2FsbCgpCisgICAgbW92ZSBQQywgYTAKKyAgICBjQ2FsbDIoX3Nsb3dfcGF0aF93YXNtX3Bv
cGNvdW50bGwpCisgICAgcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCisgICAgcmV0dXJuMmkoY3R4
LCAwLCByMSkKK2VuZCkKKword2FzbU9wKGk2NF9lcXosIFdhc21JNjRFcXosIG1hY3JvKGN0eCkK
KyAgICBtbG9hZDJpKGN0eCwgbV9vcGVyYW5kLCB0MSwgdDApCisgICAgbW92ZSAwLCB0MgorICAg
IGJ0aW56IHQxLCAucmV0dXJuCisgICAgY2llcSB0MCwgMCwgdDIKKy5yZXR1cm46CisgICAgcmV0
dXJuaShjdHgsIHQyKQorZW5kKQorCisjIGY2NCBiaW5hcnkgb3BzCisKK3dhc21PcChmNjRfY29w
eXNpZ24sIFdhc21GNjRDb3B5c2lnbiwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xo
cywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKSAjIHQyIHVudXNlZAor
CisgICAgYW5kaSAweDdmZmZmZmZmLCB0MQorICAgIGFuZGkgMHg4MDAwMDAwMCwgdDMKKyAgICBv
cmkgdDMsIHQxCisKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKworIyBUeXBlIGNv
bnZlcnNpb24gb3BzCisKK3dhc21PcChpNjRfZXh0ZW5kX3NfaTMyLCBXYXNtSTY0RXh0ZW5kU0kz
MiwgbWFjcm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgcnNoaWZ0
aSB0MCwgMzEsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChp
NjRfZXh0ZW5kX3VfaTMyLCBXYXNtSTY0RXh0ZW5kVUkzMiwgbWFjcm8oY3R4KQorICAgIG1sb2Fk
aShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgcmV0dXJuMmkoY3R4LCAwLCB0MCkKK2VuZCkKKwor
d2FzbU9wKGY2NF9yZWludGVycHJldF9pNjQsIFdhc21GNjRSZWludGVycHJldEk2NCwgbWFjcm8o
Y3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIHQxLCB0MCkKKyAgICBmaWkyZCB0MCwg
dDEsIGZ0MAorICAgIHJldHVybmQoY3R4LCBmdDApCitlbmQpCisKK3dhc21PcChpNjRfcmVpbnRl
cnByZXRfZjY0LCBXYXNtSTY0UmVpbnRlcnByZXRGNjQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGQo
Y3R4LCBtX29wZXJhbmQsIGZ0MCkKKyAgICBmZDJpaSBmdDAsIHQwLCB0MQorICAgIHJldHVybjJp
KGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NfZjY0LCBXYXNtSTMyVHJ1
bmNTRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisg
ICAgbW92ZWlpIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDEsIHQwICMgSU5UMzJfTUlOIC0gMS4wCisg
ICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmMKKworICAgIG1vdmVpaSAweDQxZTAwMDAwMDAwMDAwMDAsIHQxLCB0MCAjIC1JTlQzMl9N
SU4KKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZC
b3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVkMmlzIGZ0MCwgdDAKKyAgICByZXR1cm5pKGN0eCwg
dDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRz
VHJ1bmMpCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfdV9mNjQsIFdhc21JMzJUcnVuY1VGNjQs
IG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3Zl
aWkgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MSwgdDAgIyAtMS4wCisgICAgZmlpMmQgdDAsIHQxLCBm
dDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmVp
aSAweDQxZjAwMDAwMDAwMDAwMDAsIHQxLCB0MCAjIElOVDMyX01JTiAqIC0yLjAKKyAgICBmaWky
ZCB0MCwgdDEsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwor
CisgICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9m
Qm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKK2VuZCkK
Kworc2xvd1dhc21PcChpNjRfdHJ1bmNfc19mMzIpCitzbG93V2FzbU9wKGk2NF90cnVuY191X2Yz
MikKK3Nsb3dXYXNtT3AoaTY0X3RydW5jX3NfZjY0KQorc2xvd1dhc21PcChpNjRfdHJ1bmNfdV9m
NjQpCisKK3dhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTMyVHJ1bmNTYXRGNjRTLCBt
YWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZWlp
IDB4YzFlMDAwMDAwMDIwMDAwMCwgdDEsIHQwICMgSU5UMzJfTUlOIC0gMS4wCisgICAgZmlpMmQg
dDAsIHQxLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRN
aW5Pck5hTgorCisgICAgbW92ZWlpIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDEsIHQwICMgLUlOVDMy
X01JTgorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRP
ZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAorICAgIHJldHVy
bmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKKyAgICBiZGVxIGZ0
MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1
cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0
ZXhwciBJTlQzMl9NQVgpLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRz
VHJ1bmNTYXRNaW46CisgICAgbW92ZSAoY29uc3RleHByIElOVDMyX01JTiksIHQwCisgICAgcmV0
dXJuaShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfdSwgV2FzbUkz
MlRydW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0
MCkKKworICAgIG1vdmVpaSAweGJmZjAwMDAwMDAwMDAwMDAsIHQxLCB0MCAjIC0xLjAKKyAgICBm
aWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1pbgorCisgICAgbW92ZWlpIDB4NDFmMDAwMDAwMDAwMDAwMCwgdDEsIHQwICMgSU5UMzJf
TUlOICogLTIuMAorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEs
IC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQyaSBmdDAsIHQwCisgICAg
cmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAgICBtb3ZlIDAs
IHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKKyAg
ICBtb3ZlIChjb25zdGV4cHIgVUlOVDMyX01BWCksIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQor
ZW5kKQorCitzbG93V2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3MpCitzbG93V2FzbU9wKGk2NF90
cnVuY19zYXRfZjMyX3UpCitzbG93V2FzbU9wKGk2NF90cnVuY19zYXRfZjY0X3MpCitzbG93V2Fz
bU9wKGk2NF90cnVuY19zYXRfZjY0X3UpCisKKyMgRXh0ZW5kIG9wcworCit3YXNtT3AoaTY0X2V4
dGVuZDhfcywgV2FzbUk2NEV4dGVuZDhTLCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9v
cGVyYW5kLCB0MCkKKyAgICBzeGIyaSB0MCwgdDAKKyAgICByc2hpZnRpIHQwLCAzMSwgdDEKKyAg
ICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9leHRlbmQxNl9zLCBX
YXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0
MCkKKyAgICBzeGgyaSB0MCwgdDAKKyAgICByc2hpZnRpIHQwLCAzMSwgdDEKKyAgICByZXR1cm4y
aShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9leHRlbmQzMl9zLCBXYXNtSTY0RXh0
ZW5kMTZTLCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBy
c2hpZnRpIHQwLCAzMSwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKworIyBB
dG9taWNzCisKK21hY3JvIHdhc21BdG9taWNCaW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1
cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmksIGZuMmkpCisgICAgd2FzbU9wKGk2NF9hdG9t
aWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4JXVwcGVyQ2FzZU9w
Y29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisg
ICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3Zh
bHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQo
dDMsIHQ1LCAxKQorICAgICAgICBmbmIodDAsIFt0M10sIHQyLCB0NSwgdDYpCisgICAgICAgIGFu
ZGkgMHhmZiwgdDYgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0CisgICAgICAgIGFzc2VydChtYWNy
byhvaykgYmliZXEgdDYsIDB4ZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybjJpKGN0eCwgMCwg
dDYpCisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9wY29k
ZSVfdSwgV2FzbUk2NEF0b21pY1JtdzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisg
ICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9v
ZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1p
dENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2sodDMs
IHQ1LCAyKQorICAgICAgICBmbmgodDAsIFt0M10sIHQyLCB0NSwgdDYpCisgICAgICAgIGFuZGkg
MHhmZmZmLCB0NiAjIEZJWE1FOiBaZXJvRXh0ZW5kMTZUbzY0CisgICAgICAgIGFzc2VydChtYWNy
byhvaykgYmliZXEgdDYsIDB4ZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJuMmkoY3R4LCAw
LCB0NikKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MzIlbG93ZXJDYXNlT3Bj
b2RlJV91LCBXYXNtSTY0QXRvbWljUm13MzIldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkK
KyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBt
X29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkaShjdHgsIG1fdmFsdWUsIHQwKQorICAgICAgICBl
bWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0
MywgdDUsIDQpCisgICAgICAgIGZuaSh0MCwgW3QzXSwgdDIsIHQ1LCB0NikKKyAgICAgICAgcmV0
dXJuMmkoY3R4LCAwLCB0NikKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13JWxv
d2VyQ2FzZU9wY29kZSUsIFdhc21JNjRBdG9taWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8o
Y3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShj
dHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQxLCB0MCkK
KyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25t
ZW50Q2hlY2sodDMsIHQ1LCA4KQorICAgICAgICBwdXNoIHQ0ICMgVGhpcyBpcyB0aGUgUEIsIHNv
IG5lZWQgdG8gYmUgc2F2ZWQgYW5kIHJlc3RvcmVkCisgICAgICAgIGZuMmkodDEsIHQwLCBbdDNd
LCB0NCwgdDIsIHQ1LCB0NywgdDYpCisgICAgICAgIHBvcCB0NAorICAgICAgICByZXR1cm4yaShj
dHgsIHQ3LCB0NikKKyAgICBlbmQpCitlbmQKKworbWFjcm8gd2FzbUF0b21pY0JpbmFyeVJNV09w
c1dpdGhXZWFrQ0FTKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmksIGZuMmkp
CisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9w
Y29kZSwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0NkdQUikKKyAg
ICAgICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAg
bG9hZGxpbmtiIG1lbSwgdDZHUFIKKyAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQ2R1BSLCB0
MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmRiIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAg
ICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAgZmVuY2UK
KyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQ2
R1BSKQorICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAg
ICAgICAgICBsb2FkbGlua2ggbWVtLCB0NkdQUgorICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwg
dDZHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29uZGggdDVHUFIsIHQyR1BSLCBt
ZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAg
ICBmZW5jZQorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDZHUFIpCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIC5sb29wOgor
ICAgICAgICAgICAgICAgIGxvYWRsaW5raSBtZW0sIHQ2R1BSCisgICAgICAgICAgICAgICAgZm5p
KHQwR1BSLCB0NkdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgc3RvcmVjb25kaSB0NUdQUiwg
dDJHUFIsIG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAorICAgICAg
ICAgICAgICAgIGZlbmNlCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDFHUFIsIHQwR1BS
LCBtZW0sIHQ0R1BSLCB0MkdQUiwgdDVHUFIsIHQ3R1BSLCB0NkdQUikKKyAgICAgICAgICAgICAg
ICBmZW5jZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9hZGxpbmsyaSBt
ZW0sIHQ2R1BSLCB0N0dQUgorICAgICAgICAgICAgICAgIGZuMmkodDFHUFIsIHQwR1BSLCB0N0dQ
UiwgdDZHUFIsIHQ0R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmQyaSB0NUdQ
UiwgdDJHUFIsIHQ0R1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxv
b3AKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAgICBlbmQpCitlbmQKKworaWYgQVJNdjcK
KyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FkZCwgQWRkLAorICAgICAg
ICBtYWNybyhzcmMwLCBzcmMxLCBkc3QpCisgICAgICAgICAgICBhZGRpIHNyYzAsIHNyYzEsIGRz
dAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3cs
IHNyYzFMc3csIGRzdE1zdywgZHN0THN3KQorICAgICAgICAgICAgYWRkaXMgc3JjMExzdywgc3Jj
MUxzdywgZHN0THN3CisgICAgICAgICAgICBhZGNpICBzcmMwTXN3LCBzcmMxTXN3LCBkc3RNc3cK
KyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfc3Vi
LCBTdWIsCisgICAgICAgIG1hY3JvKHNyYzAsIHNyYzEsIGRzdCkKKyAgICAgICAgICAgIHN1Ymkg
c3JjMSwgc3JjMCwgZHN0CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8oc3JjME1zdywgc3Jj
MExzdywgc3JjMU1zdywgc3JjMUxzdywgZHN0TXN3LCBkc3RMc3cpCisgICAgICAgICAgICBzdWJp
cyBzcmMxTHN3LCBzcmMwTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIHNiY2kgIHNyYzFNc3csIHNy
YzBNc3csIGRzdE1zdworICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dp
dGhXZWFrQ0FTKF94Y2hnLCBYY2hnLAorICAgICAgICBtYWNybyhzcmMwLCBzcmMxLCBkc3QpCisg
ICAgICAgICAgICBtb3ZlIHNyYzAsIGRzdAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHNy
YzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0THN3KQorICAgICAg
ICAgICAgbW92ZSBzcmMwTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIG1vdmUgc3JjME1zdywgZHN0
TXN3CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMo
X2FuZCwgQW5kLAorICAgICAgICBtYWNybyhzcmMwLCBzcmMxLCBkc3QpCisgICAgICAgICAgICBh
bmRpIHNyYzAsIHNyYzEsIGRzdAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHNyYzBNc3cs
IHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0THN3KQorICAgICAgICAgICAg
YW5kaSBzcmMwTHN3LCBzcmMxTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIGFuZGkgc3JjME1zdywg
c3JjMU1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3Bz
V2l0aFdlYWtDQVMoX29yLCBPciwKKyAgICAgICAgbWFjcm8oc3JjMCwgc3JjMSwgZHN0KQorICAg
ICAgICAgICAgb3JpIHNyYzAsIHNyYzEsIGRzdAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3Jv
KHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0THN3KQorICAg
ICAgICAgICAgb3JpIHNyYzBMc3csIHNyYzFMc3csIGRzdExzdworICAgICAgICAgICAgb3JpIHNy
YzBNc3csIHNyYzFNc3csIGRzdE1zdworICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFy
eVJNV09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwKKyAgICAgICAgbWFjcm8oc3JjMCwgc3JjMSwg
ZHN0KQorICAgICAgICAgICAgeG9yaSBzcmMwLCBzcmMxLCBkc3QKKyAgICAgICAgZW5kLAorICAg
ICAgICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3LCBzcmMxTXN3LCBzcmMxTHN3LCBkc3RNc3csIGRz
dExzdykKKyAgICAgICAgICAgIHhvcmkgc3JjMExzdywgc3JjMUxzdywgZHN0THN3CisgICAgICAg
ICAgICB4b3JpIHNyYzBNc3csIHNyYzFNc3csIGRzdE1zdworICAgICAgICBlbmQpCitlbmQKKwor
bWFjcm8gd2FzbUF0b21pY0NvbXBhcmVFeGNoYW5nZU9wcyhsb3dlckNhc2VPcGNvZGUsIHVwcGVy
Q2FzZU9wY29kZSwgZm5iLCBmbmgsIGZuaSwgZm4yaSkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19y
bXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzgldXBwZXJDYXNlT3Bjb2Rl
JVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAg
ICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX2V4cGVj
dGVkLCB0MSwgdDApCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVlLCB0NywgdDIpCisgICAg
ICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KHQzLCB0NSwgMSkKKyAg
ICAgICAgZm5iKHQxLCB0MCwgdDcsIHQyLCBbdDNdLCB0NiwgdDUpCisgICAgICAgIGFuZGkgMHhm
ZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0CisgICAgICAgIGFzc2VydChtYWNybyhvaykg
YmliZXEgdDAsIDB4ZmYsIC5vayBlbmQpCisgICAgICAgIGFzc2VydChtYWNybyhvaykgYmllcSB0
MSwgMCwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCisgICAgZW5kKQor
ICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0
b21pY1JtdzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShj
dHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAg
ICAgICBtbG9hZDJpKGN0eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAgICBtbG9hZDJpKGN0
eCwgbV92YWx1ZSwgdDcsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFk
ZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0MywgdDUsIDIpCisgICAgICAgIGZuaCh0MSwg
dDAsIHQ3LCB0MiwgW3QzXSwgdDYsIHQ1KQorICAgICAgICBhbmRpIDB4ZmZmZiwgdDAgIyBGSVhN
RTogWmVyb0V4dGVuZDE2VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJpYmVxIHQwLCAw
eGZmZmYsIC5vayBlbmQpCisgICAgICAgIGFzc2VydChtYWNybyhvaykgYmllcSB0MSwgMCwgLm9r
IGVuZCkKKyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCisgICAgZW5kKQorICAgIHdhc21P
cChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzMy
JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9p
bnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9h
ZDJpKGN0eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAgICBtbG9hZDJpKGN0eCwgbV92YWx1
ZSwgdDcsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNl
dFdpdGhBbGlnbm1lbnRDaGVjayh0MywgdDUsIDgpCisgICAgICAgIGZuaSh0MSwgdDAsIHQ3LCB0
MiwgW3QzXSwgdDYsIHQ1KQorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJpZXEgdDEsIDAsIC5v
ayBlbmQpCisgICAgICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorICAgIGVuZCkKKyAgICB3YXNt
T3AoaTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0b21pY1JtdyV1cHBl
ckNhc2VPcGNvZGUlLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwg
dDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZDJpKGN0
eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAgICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwgdDcs
IHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhB
bGlnbm1lbnRDaGVjayh0MywgdDUsIDgpCisgICAgICAgIHB1c2ggdDQgIyBUaGlzIGlzIHRoZSBQ
Qiwgc28gbmVlZCB0byBiZSBzYXZlZCBhbmQgcmVzdG9yZWQKKyAgICAgICAgZm4yaSh0MSwgdDAs
IHQ3LCB0MiwgW3QzXSwgdDQsIHQ2LCB0NSkKKyAgICAgICAgcG9wIHQ0CisgICAgICAgIHJldHVy
bjJpKGN0eCwgdDEsIHQwKQorICAgIGVuZCkKK2VuZAorCitpZiBBUk12NworLy8gZXhwOiAiZXhw
ZWN0ZWQiLCB2YWw6ICJ2YWx1ZSIsIHJlczogInJlc3VsdCIKK3dhc21BdG9taWNDb21wYXJlRXhj
aGFuZ2VPcHMoX2NtcHhjaGcsIENtcHhjaGcsCisgICAgbWFjcm8oZXhwTXN3LCBleHBMc3csIHZh
bE1zdywgdmFsTHN3LCBtZW0sIHNjcmF0Y2gsIHJlc0xzdykKKyAgICAgICAgICAgIGZlbmNlCisg
ICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmtiIG1lbSwgcmVzTHN3CisgICAgICAg
ICAgICBiaW5lcSBleHBMc3csIHJlc0xzdywgLmZhaWwKKyAgICAgICAgICAgIGJpbmVxIGV4cE1z
dywgMCwgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZGIgc2NyYXRjaCwgdmFsTHN3LCBtZW0K
KyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9v
cAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZGIgc2NyYXRjaCwgcmVzTHN3
LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAgICAgIGpt
cCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIGZlbmNlCisgICAgICAgICAgICBt
b3ZlIHJlc0xzdywgZXhwTHN3CisgICAgICAgICAgICBtb3ZlIDAsIGV4cE1zdworICAgIGVuZCwK
KyAgICBtYWNybyhleHBNc3csIGV4cExzdywgdmFsTXN3LCB2YWxMc3csIG1lbSwgc2NyYXRjaCwg
cmVzTHN3KQorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgLmxvb3A6CisgICAgICAgICAgICBs
b2FkbGlua2ggbWVtLCByZXNMc3cKKyAgICAgICAgICAgIGJpbmVxIGV4cExzdywgcmVzTHN3LCAu
ZmFpbAorICAgICAgICAgICAgYmluZXEgZXhwTXN3LCAwLCAuZmFpbAorICAgICAgICAgICAgc3Rv
cmVjb25kaCBzY3JhdGNoLCB2YWxMc3csIG1lbQorICAgICAgICAgICAgYmllcSBzY3JhdGNoLCAw
LCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAgICAgICAg
ICAgc3RvcmVjb25kaCBzY3JhdGNoLCByZXNMc3csIG1lbQorICAgICAgICAgICAgYmllcSBzY3Jh
dGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAg
ICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIG1vdmUgcmVzTHN3LCBleHBMc3cKKyAgICAgICAg
ICAgIG1vdmUgMCwgZXhwTXN3CisgICAgZW5kLAorICAgIG1hY3JvKGV4cE1zdywgZXhwTHN3LCB2
YWxNc3csIHZhbExzdywgbWVtLCBzY3JhdGNoLCByZXNMc3cpCisgICAgICAgICAgICBmZW5jZQor
ICAgICAgICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5raSBtZW0sIHJlc0xzdworICAgICAg
ICAgICAgYmluZXEgZXhwTHN3LCByZXNMc3csIC5mYWlsCisgICAgICAgICAgICBiaW5lcSBleHBN
c3csIDAsIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmRpIHNjcmF0Y2gsIHZhbExzdywgbWVt
CisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxv
b3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRpIHNjcmF0Y2gsIHJlc0xz
dywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAgICAgICAgICBq
bXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAg
bW92ZSByZXNMc3csIGV4cExzdworICAgICAgICAgICAgbW92ZSAwLCBleHBNc3cKKyAgICBlbmQs
CisgICAgbWFjcm8oZXhwTXN3LCBleHBMc3csIHZhbE1zdywgdmFsTHN3LCBtZW0sIHNjcmF0Y2gs
IHJlc01zdywgcmVzTHN3KQorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgLmxvb3A6CisgICAg
ICAgICAgICBsb2FkbGluazJpIG1lbSwgcmVzTHN3LCByZXNNc3cKKyAgICAgICAgICAgIGJpbmVx
IGV4cExzdywgcmVzTHN3LCAuZmFpbAorICAgICAgICAgICAgYmluZXEgZXhwTXN3LCByZXNNc3cs
IC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmQyaSBzY3JhdGNoLCB2YWxMc3csIHZhbE1zdywg
bWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAg
Lmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmQyaSBzY3JhdGNoLCBy
ZXNMc3csIHJlc01zdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisg
ICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBmZW5jZQor
ICAgICAgICAgICAgbW92ZSByZXNMc3csIGV4cExzdworICAgICAgICAgICAgbW92ZSByZXNNc3cs
IGV4cE1zdworICAgIGVuZCkKK2VuZAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvV2ViQXNzZW1ibHk2NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
V2ViQXNzZW1ibHk2NC5hc20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZlOWVhNDg4NTI0MjYwYTNlNDQ3ZmY1MDA5
MTk0ZTgwMGVlZTE3MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9XZWJBc3NlbWJseTY0LmFzbQpAQCAtMCwwICsxLDEyNTkgQEAKKyMgQ29weXJpZ2h0IChD
KSAyMDExLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQg
KEMpIDIwMjEgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgT3Bjb2RlcyB0aGF0IHNob3VsZCBldmVudHVh
bGx5IGJlIHNoYXJlZCB3aXRoIEpTIGxsaW50CisKK3dhc21PcChtb3YsIFdhc21Nb3YsIG1hY3Jv
KGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX3NyYywgdDApCisgICAgcmV0dXJucShjdHgsIHQwKQor
ZW5kKQorCisjIFdhc20gc3BlY2lmaWMgYnl0ZWNvZGVzCisKK21hY3JvIGVtaXRDaGVja0FuZFBy
ZXBhcmVQb2ludGVyKGN0eCwgcG9pbnRlciwgb2Zmc2V0LCBzaXplKQorICAgIGxlYXAgc2l6ZSAt
IDFbcG9pbnRlciwgb2Zmc2V0XSwgdDUKKyAgICBicGIgdDUsIGJvdW5kc0NoZWNraW5nU2l6ZSwg
LmNvbnRpbnVhdGlvbgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNjZXNz
KQorLmNvbnRpbnVhdGlvbjoKKyAgICBhZGRwIG1lbW9yeUJhc2UsIHBvaW50ZXIKK2VuZAorCitt
YWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgsIHBvaW50ZXIs
IG9mZnNldCwgc2l6ZSkKKyAgICBsZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNldF0sIHQ1Cisg
ICAgYnBiIHQ1LCBib3VuZHNDaGVja2luZ1NpemUsIC5jb250aW51YXRpb24KKy50aHJvdzoKKyAg
ICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKKy5jb250aW51YXRpb246
CisgICAgYWRkcCBtZW1vcnlCYXNlLCBwb2ludGVyCisgICAgYWRkcCBvZmZzZXQsIHBvaW50ZXIK
K2VuZAorCittYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhB
bGlnbm1lbnRDaGVjayhjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKKyAgICBsZWFwIHNpemUg
LSAxW3BvaW50ZXIsIG9mZnNldF0sIHQ1CisgICAgYnBiIHQ1LCBib3VuZHNDaGVja2luZ1NpemUs
IC5jb250aW51YXRpb24KKy50aHJvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01l
bW9yeUFjY2VzcykKKy5jb250aW51YXRpb246CisgICAgYWRkcCBtZW1vcnlCYXNlLCBwb2ludGVy
CisgICAgYWRkcCBvZmZzZXQsIHBvaW50ZXIKKyAgICBidHBueiBwb2ludGVyLCAoc2l6ZSAtIDEp
LCAudGhyb3cKK2VuZAorCisKK21hY3JvIHdhc21Mb2FkT3AobmFtZSwgc3RydWN0LCBzaXplLCBm
bikKKyAgICB3YXNtT3AobmFtZSwgc3RydWN0LCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShj
dHgsIG1fcG9pbnRlciwgdDApCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAg
ICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihjdHgsIHQwLCB0MSwgc2l6ZSkKKyAgICAg
ICAgZm4oW3QwLCB0MV0sIHQyKQorICAgICAgICByZXR1cm5xKGN0eCwgdDIpCisgICAgZW5kKQor
ZW5kCisKK3dhc21Mb2FkT3AobG9hZDhfdSwgV2FzbUxvYWQ4VSwgMSwgbWFjcm8obWVtLCBkc3Qp
IGxvYWRiIG1lbSwgZHN0IGVuZCkKK3dhc21Mb2FkT3AobG9hZDE2X3UsIFdhc21Mb2FkMTZVLCAy
LCBtYWNybyhtZW0sIGRzdCkgbG9hZGggbWVtLCBkc3QgZW5kKQord2FzbUxvYWRPcChsb2FkMzJf
dSwgV2FzbUxvYWQzMlUsIDQsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaSBtZW0sIGRzdCBlbmQpCit3
YXNtTG9hZE9wKGxvYWQ2NF91LCBXYXNtTG9hZDY0VSwgOCwgbWFjcm8obWVtLCBkc3QpIGxvYWRx
IG1lbSwgZHN0IGVuZCkKKword2FzbUxvYWRPcChpMzJfbG9hZDhfcywgV2FzbUkzMkxvYWQ4Uywg
MSwgbWFjcm8obWVtLCBkc3QpIGxvYWRic2kgbWVtLCBkc3QgZW5kKQord2FzbUxvYWRPcChpNjRf
bG9hZDhfcywgV2FzbUk2NExvYWQ4UywgMSwgbWFjcm8obWVtLCBkc3QpIGxvYWRic3EgbWVtLCBk
c3QgZW5kKQord2FzbUxvYWRPcChpMzJfbG9hZDE2X3MsIFdhc21JMzJMb2FkMTZTLCAyLCBtYWNy
byhtZW0sIGRzdCkgbG9hZGhzaSBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGk2NF9sb2FkMTZf
cywgV2FzbUk2NExvYWQxNlMsIDIsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaHNxIG1lbSwgZHN0IGVu
ZCkKK3dhc21Mb2FkT3AoaTY0X2xvYWQzMl9zLCBXYXNtSTY0TG9hZDMyUywgNCwgbWFjcm8obWVt
LCBkc3QpIGxvYWRpcyBtZW0sIGRzdCBlbmQpCisKK21hY3JvIHdhc21TdG9yZU9wKG5hbWUsIHN0
cnVjdCwgc2l6ZSwgZm4pCisgICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQorICAg
ICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zm
c2V0LCB0MSkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4LCB0MCwgdDEs
IHNpemUpCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQorICAgICAgICBmbih0Miwg
W3QwLCB0MV0pCisgICAgICAgIGRpc3BhdGNoKGN0eCkKKyAgICBlbmQpCitlbmQKKword2FzbVN0
b3JlT3Aoc3RvcmU4LCBXYXNtU3RvcmU4LCAxLCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZWIgdmFs
dWUsIG1lbSBlbmQpCit3YXNtU3RvcmVPcChzdG9yZTE2LCBXYXNtU3RvcmUxNiwgMiwgbWFjcm8o
dmFsdWUsIG1lbSkgc3RvcmVoIHZhbHVlLCBtZW0gZW5kKQord2FzbVN0b3JlT3Aoc3RvcmUzMiwg
V2FzbVN0b3JlMzIsIDQsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlaSB2YWx1ZSwgbWVtIGVuZCkK
K3dhc21TdG9yZU9wKHN0b3JlNjQsIFdhc21TdG9yZTY0LCA4LCBtYWNybyh2YWx1ZSwgbWVtKSBz
dG9yZXEgdmFsdWUsIG1lbSBlbmQpCisKK3dhc21PcChyZWZfaXNfbnVsbCwgV2FzbVJlZklzTnVs
bCwgbWFjcm8oY3R4KQorICAgIG1sb2FkcChjdHgsIG1fcmVmLCB0MCkKKyAgICBjcWVxIHQwLCBW
YWx1ZU51bGwsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoZ2V0X2ds
b2JhbCwgV2FzbUdldEdsb2JhbCwgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206Okluc3RhbmNl
OjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5k
ZXgsIHQxKQorICAgIGxvYWRxIFt0MCwgdDEsIDhdLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkK
K2VuZCkKKword2FzbU9wKHNldF9nbG9iYWwsIFdhc21TZXRHbG9iYWwsIG1hY3JvKGN0eCkKKyAg
ICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAg
d2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0
MikKKyAgICBzdG9yZXEgdDIsIFt0MCwgdDEsIDhdCisgICAgZGlzcGF0Y2goY3R4KQorZW5kKQor
Cit3YXNtT3AoZ2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNtR2V0R2xvYmFsUG9ydGFi
bGVCaW5kaW5nLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFs
c1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisg
ICAgbG9hZHEgW3QwLCB0MSwgOF0sIHQwCisgICAgbG9hZHEgW3QwXSwgdDAKKyAgICByZXR1cm5x
KGN0eCwgdDApCitlbmQpCisKK3dhc21PcChzZXRfZ2xvYmFsX3BvcnRhYmxlX2JpbmRpbmcsIFdh
c21TZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJ
bnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4LCBtX2ds
b2JhbEluZGV4LCB0MSkKKyAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAgICBsb2FkcSBb
dDAsIHQxLCA4XSwgdDAKKyAgICBzdG9yZXEgdDIsIFt0MF0KKyAgICBkaXNwYXRjaChjdHgpCitl
bmQpCisKKyMgT3Bjb2RlcyB0aGF0IGRvbid0IGhhdmUgdGhlIGBiM29wYCBlbnRyeSBpbiB3YXNt
Lmpzb24uIFRoaXMgc2hvdWxkIGJlIGtlcHQgaW4gc3luYworCisjIGkzMiBiaW5hcnkgb3BzCisK
K3dhc21PcChpMzJfZGl2X3MsIFdhc21JMzJEaXZTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkaShj
dHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisKKyAgICBidGl6IHQx
LCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgYmluZXEgdDEsIC0xLCAuc2FmZQorICAgIGJp
ZXEgdDAsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC50aHJvd0ludGVnZXJPdmVyZmxvdworCisuc2Fm
ZToKKyAgICBpZiBYODZfNjQKKyAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRpY19h
c3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4CisgICAgICAgICMgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgorICAgICAgICBjZHFpCisgICAgICAg
IGlkaXZpIHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKKyAgICAgICAg
ZGl2aXMgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorICAgIHJldHVy
bmkoY3R4LCB0MCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24o
RGl2aXNpb25CeVplcm8pCisKKy50aHJvd0ludGVnZXJPdmVyZmxvdzoKKyAgICB0aHJvd0V4Y2Vw
dGlvbihJbnRlZ2VyT3ZlcmZsb3cpCitlbmQpCisKK3dhc21PcChpMzJfZGl2X3UsIFdhc21JMzJE
aXZVLCBtYWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGko
Y3R4LCBtX3JocywgdDEpCisKKyAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisg
ICAgaWYgWDg2XzY0CisgICAgICAgIHhvcmkgdDIsIHQyCisgICAgICAgIHVkaXZpIHQxCisgICAg
ZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKKyAgICAgICAgZGl2aSB0MSwgdDAKKyAg
ICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisu
dGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykK
K2VuZCkKKword2FzbU9wKGkzMl9yZW1fcywgV2FzbUkzMlJlbVMsIG1hY3JvIChjdHgpCisgICAg
bWxvYWRpKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKworICAg
IGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBiaW5lcSB0MSwgLTEsIC5zYWZl
CisgICAgYmluZXEgdDAsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC5zYWZlCisKKyAgICBtb3ZlIDAs
IHQyCisgICAgam1wIC5yZXR1cm4KKworLnNhZmU6CisgICAgaWYgWDg2XzY0CisgICAgICAgICMg
RklYTUU6IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlz
IHJkeAorICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDM2OTIKKyAgICAgICAgY2RxaQorICAgICAgICBpZGl2aSB0MQorICAgIGVsc2lmIEFSTTY0IG9y
IEFSTTY0RQorICAgICAgICBkaXZpcyB0MSwgdDAsIHQyCisgICAgICAgIG11bGkgdDEsIHQyCisg
ICAgICAgIHN1YmkgdDAsIHQyLCB0MgorICAgIGVsc2lmIFJJU0NWNjQKKyAgICAgICAgcmVtaXMg
dDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorCisucmV0dXJuOgorICAg
IHJldHVybmkoY3R4LCB0MikKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNl
cHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpMzJfcmVtX3UsIFdhc21JMzJS
ZW1VLCBtYWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGko
Y3R4LCBtX3JocywgdDEpCisKKyAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisg
ICAgaWYgWDg2XzY0CisgICAgICAgIHhvcmkgdDIsIHQyCisgICAgICAgIHVkaXZpIHQxCisgICAg
ZWxzaWYgQVJNNjQgb3IgQVJNNjRFCisgICAgICAgIGRpdmkgdDEsIHQwLCB0MgorICAgICAgICBt
dWxpIHQxLCB0MgorICAgICAgICBzdWJpIHQwLCB0MiwgdDIKKyAgICBlbHNpZiBSSVNDVjY0Cisg
ICAgICAgIHJlbWkgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorICAg
IHJldHVybmkoY3R4LCB0MikKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNl
cHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKKyMgaTY0IGJpbmFyeSBvcHMKKword2FzbU9w
KGk2NF9hZGQsIFdhc21JNjRBZGQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywg
dDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGFkZHEgdDAsIHQxCisgICAgcmV0
dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X3N1YiwgV2FzbUk2NFN1YiwgbWFjcm8o
Y3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3Jocywg
dDEpCisgICAgc3VicSB0MSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21P
cChpNjRfbXVsLCBXYXNtSTY0TXVsLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMs
IHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBtdWxxIHQwLCB0MQorICAgIHJl
dHVybnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9kaXZfcywgV2FzbUk2NERpdlMsIG1h
Y3JvIChjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1f
cmhzLCB0MSkKKworICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBicW5l
cSB0MSwgLTEsIC5zYWZlCisgICAgYnFlcSB0MCwgY29uc3RleHByIElOVDY0X01JTiwgLnRocm93
SW50ZWdlck92ZXJmbG93CisKKy5zYWZlOgorICAgIGlmIFg4Nl82NAorICAgICAgICAjIEZJWE1F
OiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0MiBpcyByZHgK
KyAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjky
CisgICAgICAgIGNxb3EKKyAgICAgICAgaWRpdnEgdDEKKyAgICBlbHNpZiBBUk02NCBvciBBUk02
NEUgb3IgUklTQ1Y2NAorICAgICAgICBkaXZxcyB0MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVy
cm9yCisgICAgZW5kCisgICAgcmV0dXJucShjdHgsIHQwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVy
bzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKKworLnRocm93SW50ZWdlck92
ZXJmbG93OgorICAgIHRocm93RXhjZXB0aW9uKEludGVnZXJPdmVyZmxvdykKK2VuZCkKKword2Fz
bU9wKGk2NF9kaXZfdSwgV2FzbUk2NERpdlUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRxKGN0eCwg
bV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0cXogdDEsIC50
aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBpZiBYODZfNjQKKyAgICAgICAgeG9ycSB0MiwgdDIK
KyAgICAgICAgdWRpdnEgdDEKKyAgICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAor
ICAgICAgICBkaXZxIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKKyAg
ICByZXR1cm5xKGN0eCwgdDApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhj
ZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTY0X3JlbV9zLCBXYXNtSTY0
UmVtUywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRx
KGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRxeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KKwor
ICAgIGJxbmVxIHQxLCAtMSwgLnNhZmUKKyAgICBicW5lcSB0MCwgY29uc3RleHByIElOVDY0X01J
TiwgLnNhZmUKKworICAgIG1vdmUgMCwgdDIKKyAgICBqbXAgLnJldHVybgorCisuc2FmZToKKyAg
ICBpZiBYODZfNjQKKyAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRpY19hc3NldCB0
aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4CisgICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgorICAgICAgICBjcW9xCisgICAgICAgIGlkaXZx
IHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCisgICAgICAgIGRpdnFzIHQxLCB0MCwgdDIK
KyAgICAgICAgbXVscSB0MSwgdDIKKyAgICAgICAgc3VicSB0MCwgdDIsIHQyCisgICAgZWxzaWYg
UklTQ1Y2NAorICAgICAgICByZW1xcyB0MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisg
ICAgZW5kCisKKy5yZXR1cm46CisgICAgcmV0dXJucShjdHgsIHQyKSAjIHJkeCBoYXMgdGhlIHJl
bWFpbmRlcgorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZp
c2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9yZW1fdSwgV2FzbUk2NFJlbVUsIG1hY3Jv
IChjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhz
LCB0MSkKKworICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBpZiBYODZf
NjQKKyAgICAgICAgeG9ycSB0MiwgdDIKKyAgICAgICAgdWRpdnEgdDEKKyAgICBlbHNpZiBBUk02
NCBvciBBUk02NEUKKyAgICAgICAgZGl2cSB0MSwgdDAsIHQyCisgICAgICAgIG11bHEgdDEsIHQy
CisgICAgICAgIHN1YnEgdDAsIHQyLCB0MgorICAgIGVsc2lmIFJJU0NWNjQKKyAgICAgICAgcmVt
cSB0MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCisgICAgcmV0dXJucShj
dHgsIHQyKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZp
c2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9hbmQsIFdhc21JNjRBbmQsIG1hY3JvKGN0
eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQx
KQorICAgIGFuZHEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3Ao
aTY0X29yLCBXYXNtSTY0T3IsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDAp
CisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIG9ycSB0MCwgdDEKKyAgICByZXR1cm5x
KGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfeG9yLCBXYXNtSTY0WG9yLCBtYWNybyhjdHgp
CisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkK
KyAgICB4b3JxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2
NF9zaGwsIFdhc21JNjRTaGwsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDAp
CisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorICAgIGxzaGlmdHEgdDEsIHQwCisgICAgcmV0
dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3Nocl91LCBXYXNtSTY0U2hyVSwgbWFj
cm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3Jo
cywgdDEpCisgICAgdXJzaGlmdHEgdDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQor
Cit3YXNtT3AoaTY0X3Nocl9zLCBXYXNtSTY0U2hyUywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShj
dHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisgICAgcnNoaWZ0cSB0
MSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfcm90ciwgV2Fz
bUk2NFJvdHIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxv
YWRpKGN0eCwgbV9yaHMsIHQxKQorICAgIHJyb3RhdGVxIHQxLCB0MAorICAgIHJldHVybnEoY3R4
LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9yb3RsLCBXYXNtSTY0Um90bCwgbWFjcm8oY3R4KQor
ICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisg
ICAgbHJvdGF0ZXEgdDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3Ao
aTY0X2VxLCBXYXNtSTY0RXEsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDAp
CisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxZXEgdDAsIHQxLCB0MgorICAgIGFu
ZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfbmUsIFdh
c21JNjROZSwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9h
ZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FuZXEgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIK
KyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfbHRfcywgV2FzbUk2NEx0
UywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4
LCBtX3JocywgdDEpCisgICAgY3FsdCB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJl
dHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9sZV9zLCBXYXNtSTY0TGVTLCBtYWNy
byhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhz
LCB0MSkKKyAgICBjcWx0ZXEgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5p
KGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfbHRfdSwgV2FzbUk2NEx0VSwgbWFjcm8oY3R4
KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEp
CisgICAgY3FiIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQy
KQorZW5kKQorCit3YXNtT3AoaTY0X2xlX3UsIFdhc21JNjRMZVUsIG1hY3JvKGN0eCkKKyAgICBt
bG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNx
YmVxIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5k
KQorCit3YXNtT3AoaTY0X2d0X3MsIFdhc21JNjRHdFMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEo
Y3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxZ3QgdDAs
IHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dh
c21PcChpNjRfZ2VfcywgV2FzbUk2NEdlUywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1f
bGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FndGVxIHQwLCB0MSwg
dDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3Ao
aTY0X2d0X3UsIFdhc21JNjRHdFUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywg
dDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxYSB0MCwgdDEsIHQyCisgICAg
YW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9nZV91
LCBXYXNtSTY0R2VVLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAg
IG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWFlcSB0MCwgdDEsIHQyCisgICAgYW5kaSAx
LCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKworIyBpNjQgdW5hcnkgb3BzCisKK3dh
c21PcChpNjRfY3R6LCBXYXNtSTY0Q3R6LCBtYWNybyAoY3R4KQorICAgIG1sb2FkcShjdHgsIG1f
b3BlcmFuZCwgdDApCisgICAgdHpjbnRxIHQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2Vu
ZCkKKword2FzbU9wKGk2NF9jbHosIFdhc21JNjRDbHosIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEo
Y3R4LCBtX29wZXJhbmQsIHQwKQorICAgIGx6Y250cSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwg
dDEpCitlbmQpCisKK3dhc21PcChpNjRfcG9wY250LCBXYXNtSTY0UG9wY250LCBtYWNybyAoY3R4
KQorICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgYTEpCisgICAgcHJlcGFyZVN0YXRlRm9yQ0Nh
bGwoKQorICAgIG1vdmUgUEMsIGEwCisgICAgY0NhbGwyKF9zbG93X3BhdGhfd2FzbV9wb3Bjb3Vu
dGxsKQorICAgIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQorICAgIHJldHVybnEoY3R4LCByMSkK
K2VuZCkKKword2FzbU9wKGk2NF9lcXosIFdhc21JNjRFcXosIG1hY3JvKGN0eCkKKyAgICBtbG9h
ZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIGNxZXEgdDAsIDAsIHQwCisgICAgcmV0dXJuaShj
dHgsIHQwKQorZW5kKQorCisjIGY2NCBiaW5hcnkgb3BzCisKK3dhc21PcChmNjRfY29weXNpZ24s
IFdhc21GNjRDb3B5c2lnbiwgbWFjcm8oY3R4KQorICAgIG1sb2FkZChjdHgsIG1fbGhzLCBmdDAp
CisgICAgbWxvYWRkKGN0eCwgbV9yaHMsIGZ0MSkKKworICAgIGZkMnEgZnQxLCB0MQorICAgIG1v
dmUgMHg4MDAwMDAwMDAwMDAwMDAwLCB0MgorICAgIGFuZHEgdDIsIHQxCisKKyAgICBmZDJxIGZ0
MCwgdDAKKyAgICBtb3ZlIDB4N2ZmZmZmZmZmZmZmZmZmZiwgdDIKKyAgICBhbmRxIHQyLCB0MAor
CisgICAgb3JxIHQxLCB0MAorICAgIGZxMmQgdDAsIGZ0MAorICAgIHJldHVybmQoY3R4LCBmdDAp
CitlbmQpCisKKyMgVHlwZSBjb252ZXJzaW9uIG9wcworCit3YXNtT3AoaTY0X2V4dGVuZF9zX2kz
MiwgV2FzbUk2NEV4dGVuZFNJMzIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJh
bmQsIHQwKQorICAgIHN4aTJxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKwor
d2FzbU9wKGk2NF9leHRlbmRfdV9pMzIsIFdhc21JNjRFeHRlbmRVSTMyLCBtYWNybyhjdHgpCisg
ICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICB6eGkycSB0MCwgdDEKKyAgICByZXR1
cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChmNjRfcmVpbnRlcnByZXRfaTY0LCBXYXNtRjY0
UmVpbnRlcnByZXRJNjQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQw
KQorICAgIGZxMmQgdDAsIGZ0MAorICAgIHJldHVybmQoY3R4LCBmdDApCitlbmQpCisKK3dhc21P
cChpNjRfcmVpbnRlcnByZXRfZjY0LCBXYXNtSTY0UmVpbnRlcnByZXRGNjQsIG1hY3JvKGN0eCkK
KyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKyAgICBmZDJxIGZ0MCwgdDAKKyAgICBy
ZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc19mNjQsIFdhc21JMzJU
cnVuY1NGNjQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisK
KyAgICBtb3ZlIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDAgIyBJTlQzMl9NSU4gLSAxLjAKKyAgICBm
cTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKwor
ICAgIG1vdmUgMHg0MWUwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQzMl9NSU4KKyAgICBmcTJkIHQw
LCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRy
dW5jYXRlZDJpcyBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNU
cnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNt
T3AoaTMyX3RydW5jX3VfZjY0LCBXYXNtSTMyVHJ1bmNVRjY0LCBtYWNybyAoY3R4KQorICAgIG1s
b2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGJmZjAwMDAwMDAwMDAwMDAs
IHQwICMgLTEuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0
T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZSAweDQxZjAwMDAwMDAwMDAwMDAsIHQwICMgSU5UMzJf
TUlOICogLTIuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0
T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAorICAgIHJldHVybmkoY3R4
LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3Vu
ZHNUcnVuYykKK2VuZCkKKword2FzbU9wKGk2NF90cnVuY19zX2YzMiwgV2FzbUk2NFRydW5jU0Yz
MiwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1v
dmUgMHhkZjAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4KKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmx0
dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlIDB4NWYwMDAwMDAsIHQw
ICMgLUlOVDY0X01JTgorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAu
b3V0T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVmMnFzIGZ0MCwgdDAKKyAgICByZXR1cm5x
KGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91dE9m
Qm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfdV9mMzIsIFdhc21JNjRUcnVu
Y1VGMzIsIG1hY3JvIChjdHgpCisgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAg
ICBtb3ZlIDB4YmY4MDAwMDAsIHQwICMgLTEuMAorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmbHRl
cXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZSAweDVmODAwMDAwLCB0
MCAjIElOVDY0X01JTiAqIC0yLjAKKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmd0ZXF1biBmdDAs
IGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZjJxIGZ0MCwgdDAKKyAgICBy
ZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9u
KE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc19mNjQsIFdhc21J
NjRUcnVuY1NGNjQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDAp
CisKKyAgICBtb3ZlIDB4YzNlMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4KKyAgICBmcTJk
IHQwLCBmdDEKKyAgICBiZGx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBt
b3ZlIDB4NDNlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCisgICAgZnEyZCB0MCwgZnQx
CisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0
ZWQycXMgZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmM6
CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKK2VuZCkKKword2FzbU9wKGk2
NF90cnVuY191X2Y2NCwgV2FzbUk2NFRydW5jVUY2NCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQo
Y3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAj
IC0xLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91
bmRzVHJ1bmMKKworICAgIG1vdmUgMHg0M2YwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDY0X01JTiAq
IC0yLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91
bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZDJxIGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDAp
CisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1
bmMpCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTMyVHJ1bmNTYXRG
NjRTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAg
bW92ZSAweGMxZTAwMDAwMDAyMDAwMDAsIHQwICMgSU5UMzJfTUlOIC0gMS4wCisgICAgZnEyZCB0
MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JO
YU4KKworICAgIG1vdmUgMHg0MWUwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQzMl9NSU4KKyAgICBm
cTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRN
YXgKKworICAgIHRydW5jYXRlZDJpcyBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgorICAgIGJkZXEgZnQwLCBmdDAsIC5vdXRPZkJv
dW5kc1RydW5jU2F0TWluCisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKwor
Lm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIElOVDMyX01BWCks
IHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAg
ICBtb3ZlIChjb25zdGV4cHIgSU5UMzJfTUlOKSwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCitl
bmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF91LCBXYXNtSTMyVHJ1bmNTYXRGNjRVLCBt
YWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAw
eGJmZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkbHRl
cXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorCisgICAgbW92ZSAweDQxZjAw
MDAwMDAwMDAwMDAsIHQwICMgSU5UMzJfTUlOICogLTIuMAorICAgIGZxMmQgdDAsIGZ0MQorICAg
IGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisgICAgdHJ1bmNh
dGVkMmkgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNT
YXRNaW46CisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91
bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIFVJTlQzMl9NQVgpLCB0MAorICAg
IHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3MsIFdh
c21JNjRUcnVuY1NhdEYzMlMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5k
LCBmdDApCisKKyAgICBtb3ZlIDB4ZGYwMDAwMDAsIHQwICMgSU5UNjRfTUlOCisgICAgZmkyZiB0
MCwgZnQxCisgICAgYmZsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFO
CisKKyAgICBtb3ZlIDB4NWYwMDAwMDAsIHQwICMgLUlOVDY0X01JTgorICAgIGZpMmYgdDAsIGZ0
MQorICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisgICAg
dHJ1bmNhdGVmMnFzIGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5k
c1RydW5jU2F0TWluT3JOYU46CisgICAgYmZlcSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1bmNT
YXRNaW4KKyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3Vu
ZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUFYKSwgdDAKKyAgICBy
ZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUgKGNv
bnN0ZXhwciBJTlQ2NF9NSU4pLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2Fz
bU9wKGk2NF90cnVuY19zYXRfZjMyX3UsIFdhc21JNjRUcnVuY1NhdEYzMlUsIG1hY3JvIChjdHgp
CisgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YmY4MDAwMDAs
IHQwICMgLTEuMAorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmbHRlcXVuIGZ0MCwgZnQxLCAub3V0
T2ZCb3VuZHNUcnVuY1NhdE1pbgorCisgICAgbW92ZSAweDVmODAwMDAwLCB0MCAjIElOVDY0X01J
TiAqIC0yLjAKKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9m
Qm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZjJxIGZ0MCwgdDAKKyAgICByZXR1cm5x
KGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUgMCwgdDAKKyAg
ICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAgIG1vdmUg
KGNvbnN0ZXhwciBVSU5UNjRfTUFYKSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisK
K3dhc21PcChpNjRfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTY0VHJ1bmNTYXRGNjRTLCBtYWNybyAo
Y3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGMzZTAw
MDAwMDAwMDAwMDAsIHQwICMgSU5UNjRfTUlOCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdHVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOCisKKyAgICBtb3ZlIDB4NDNl
MDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRn
dGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQy
cXMgZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRN
aW5Pck5hTjoKKyAgICBiZGVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorICAg
IG1vdmUgMCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0
TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9NQVgpLCB0MAorICAgIHJldHVybnEoY3R4
LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAoY29uc3RleHByIElO
VDY0X01JTiksIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3Ry
dW5jX3NhdF9mNjRfdSwgV2FzbUk2NFRydW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9h
ZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0
MCAjIC0xLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9m
Qm91bmRzVHJ1bmNTYXRNaW4KKworICAgIG1vdmUgMHg0M2YwMDAwMDAwMDAwMDAwLCB0MCAjIElO
VDY0X01JTiAqIC0yLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwg
Lm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZDJxIGZ0MCwgdDAKKyAgICBy
ZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUgMCwg
dDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAg
IG1vdmUgKGNvbnN0ZXhwciBVSU5UNjRfTUFYKSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitl
bmQpCisKKyMgRXh0ZW5kIG9wcworCit3YXNtT3AoaTY0X2V4dGVuZDhfcywgV2FzbUk2NEV4dGVu
ZDhTLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBzeGIy
cSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfZXh0ZW5k
MTZfcywgV2FzbUk2NEV4dGVuZDE2UywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fb3Bl
cmFuZCwgdDApCisgICAgc3hoMnEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQor
Cit3YXNtT3AoaTY0X2V4dGVuZDMyX3MsIFdhc21JNjRFeHRlbmQxNlMsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHN4aTJxIHQwLCB0MQorICAgIHJldHVy
bnEoY3R4LCB0MSkKK2VuZCkKKworIyBBdG9taWNzCisKK21hY3JvIHdhc21BdG9taWNCaW5hcnlS
TVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmksIGZu
cSkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2
NEF0b21pY1JtdzgldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRp
KGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisg
ICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQwKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVw
YXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgsIHQzLCB0MSwgMSkKKyAgICAgICAgZm5iKHQwLCBb
dDNdLCB0MiwgdDUsIHQxKQorICAgICAgICBhbmRxIDB4ZmYsIHQwICMgRklYTUU6IFplcm9FeHRl
bmQ4VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmLCAub2sgZW5k
KQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRv
bWljX3JtdzE2JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzE2JXVwcGVyQ2Fz
ZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMp
CisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBt
X3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZz
ZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDIpCisgICAgICAgIGZuaCh0MCwgW3Qz
XSwgdDIsIHQ1LCB0MSkKKyAgICAgICAgYW5kcSAweGZmZmYsIHQwICMgRklYTUU6IFplcm9FeHRl
bmQxNlRvNjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZmZmLCAub2sg
ZW5kKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorICAgIHdhc21PcChpNjRf
YXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzMyJXVwcGVy
Q2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwg
dDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBtbG9hZHEoY3R4
LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdP
ZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDQpCisgICAgICAgIGZuaSh0MCwg
W3QzXSwgdDIsIHQ1LCB0MSkKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhm
ZmZmZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKKyAg
ICB3YXNtT3AoaTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0b21pY1Jt
dyV1cHBlckNhc2VPcGNvZGUlLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9p
bnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBtbG9h
ZHEoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJB
ZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDgpCisgICAgICAgIGZu
cSh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVu
ZCkKK2VuZAorCittYWNybyB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMobG93ZXJD
YXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuaSwgZm5xKQorICAgIHdhc21BdG9taWNCaW5h
cnlSTVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsCisgICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBpZiBYODZfNjQK
KyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgorICAgICAgICAgICAgICAgIGxvYWRi
IG1lbSwgdDBHUFIKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIG1vdmUgdDBH
UFIsIHQyR1BSCisgICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAg
ICAgICBiYXRvbWljd2Vha2Nhc2IgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2FkbGlua2FjcWIg
bWVtLCB0MUdQUgorICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAg
ICAgICAgICAgICAgIHN0b3JlY29uZHJlbGIgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAg
ICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0
MEdQUgorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIs
IG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIGlmIFg4Nl82NAorICAgICAg
ICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCisgICAgICAgICAgICAgICAgbG9hZGggbWVtLCB0
MEdQUgorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJH
UFIKKyAgICAgICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIGJh
dG9taWN3ZWFrY2FzaCB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxaCBtZW0sIHQx
R1BSCisgICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAg
ICAgICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgICAgIGJp
bmVxIHQ1R1BSLCAwLCAubG9vcAorICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCisg
ICAgICAgICAgICBlbmQKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgaWYgWDg2XzY0CisgICAgICAgICAgICAg
ICAgbW92ZSB0MEdQUiwgdDVHUFIKKyAgICAgICAgICAgICAgICBsb2FkaSBtZW0sIHQwR1BSCisg
ICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgorICAg
ICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgYmF0b21pY3dl
YWtjYXNpIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAorICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9hZGxpbmthY3FpIG1lbSwgdDFHUFIKKyAg
ICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBz
dG9yZWNvbmRyZWxpIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICAgICAgYmluZXEgdDVH
UFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAg
ICAgIGVuZAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBpZiBYODZfNjQKKyAgICAgICAgICAgICAgICBtb3Zl
IHQwR1BSLCB0NUdQUgorICAgICAgICAgICAgICAgIGxvYWRxIG1lbSwgdDBHUFIKKyAgICAgICAg
ICAgIC5sb29wOgorICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCisgICAgICAgICAg
ICAgICAgZm5xKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBiYXRvbWljd2Vha2Nhc3Eg
dDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAu
bG9vcDoKKyAgICAgICAgICAgICAgICBsb2FkbGlua2FjcXEgbWVtLCB0MUdQUgorICAgICAgICAg
ICAgICAgIGZucSh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29u
ZHJlbHEgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwg
Lmxvb3AKKyAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgorICAgICAgICAgICAgZW5k
CisgICAgICAgIGVuZCkKK2VuZAorCitpZiBYODZfNjQKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1X
T3BzKF9hZGQsIEFkZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
MUdQUikgYXRvbWljeGNoZ2FkZGIgdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRoIHQwR1BSLCBtZW0gZW5k
LAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4
Y2hnYWRkaSB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZHEgdDBHUFIsIG1lbSBlbmQpCisgICAgd2FzbUF0
b21pY0JpbmFyeVJNV09wcyhfc3ViLCBTdWIsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJiIHQwR1BSLCBtZW0gZW5kLAorICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3ViaCB0
MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
MUdQUikgYXRvbWljeGNoZ3N1YmkgdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJxIHQwR1BSLCBtZW0gZW5k
KQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hjaGcsIFhjaGcsCisgICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdiIHQwR1BSLCBtZW0g
ZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9t
aWN4Y2hnaCB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2kgdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdxIHQwR1BSLCBtZW0g
ZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYW5kLCBBbmQsCisg
ICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgIGFuZGkgdDVHUFIsIHQyR1BS
CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQorICAgICAgICAgICAg
YW5kcSB0NUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdP
cHNXaXRoV2Vha0NBUyhfb3IsIE9yLAorICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCisgICAg
ICAgICAgICBvcmkgdDVHUFIsIHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDVH
UFIsIHQyR1BSKQorICAgICAgICAgICAgb3JxIHQ1R1BSLCB0MkdQUgorICAgICAgICBlbmQpCisg
ICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwKKyAgICAgICAg
bWFjcm8odDVHUFIsIHQyR1BSKQorICAgICAgICAgICAgeG9yaSB0NUdQUiwgdDJHUFIKKyAgICAg
ICAgZW5kLAorICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICB4b3JxIHQ1
R1BSLCB0MkdQUgorICAgICAgICBlbmQpCitlbHNpZiBBUk02NEUKKyAgICB3YXNtQXRvbWljQmlu
YXJ5Uk1XT3BzKF9hZGQsIEFkZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1
R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGIgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaCB0
MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZHEg
dDBHUFIsIG1lbSwgdDBHUFIgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3N1Yiwg
U3ViLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAg
ICAgICAgICAgbmVncSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGIgdDBHUFIsIG1l
bSwgdDBHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwg
dDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgbmVncSB0MEdQUgorICAgICAgICAgICAgYXRvbWlj
eGNoZ2FkZGggdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgbmVncSB0MEdQUgor
ICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5k
LAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAg
ICAgICAgbmVncSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2FkZHEgdDBHUFIsIG1lbSwg
dDBHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX2FuZCwgQW5k
LAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAg
ICAgICAgbm90cSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFyYiB0MEdQUiwgbWVt
LCB0MEdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBub3RxIHQwR1BSCisgICAgICAgICAgICBhdG9taWN4
Y2hnY2xlYXJoIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5vdHEgdDBHUFIK
KyAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcmkgdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAg
ZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAg
ICAgICAgICAgbm90cSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFycSB0MEdQUiwg
bWVtLCB0MEdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfb3Is
IE9yLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9t
aWN4Y2hnb3JiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29yaCB0MEdQUiwgbWVtLCB0MEdQUiBl
bmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21p
Y3hjaGdvcmkgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnb3JxIHQwR1BSLCBtZW0sIHQwR1BSIGVu
ZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94b3IsIFhvciwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmIgdDBHUFIsIG1l
bSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKSBhdG9taWN4Y2hneG9yaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JpIHQwR1BSLCBt
ZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
MUdQUikgYXRvbWljeGNoZ3hvcnEgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQorICAgIHdhc21BdG9t
aWNCaW5hcnlSTVdPcHMoX3hjaGcsIFhjaGcsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAg
ICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2gg
dDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwg
dDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAg
IG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdxIHQwR1BS
LCBtZW0sIHQwR1BSIGVuZCkKK2Vsc2lmIEFSTTY0IG9yIFJJU0NWNjQKKyAgICB3YXNtQXRvbWlj
QmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FkZCwgQWRkLAorICAgICAgICBtYWNybyh0MEdQUiwg
dDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgYWRkaSB0MEdQUiwgdDFHUFIsIHQyR1BSCisgICAg
ICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAg
IGFkZHEgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0Jp
bmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9zdWIsIFN1YiwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQx
R1BSLCB0MkdQUikKKyAgICAgICAgICAgIHN1YmkgdDFHUFIsIHQwR1BSLCB0MkdQUgorICAgICAg
ICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBz
dWJxIHQxR1BSLCB0MEdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5h
cnlSTVdPcHNXaXRoV2Vha0NBUyhfeGNoZywgWGNoZywKKyAgICAgICAgbWFjcm8odDBHUFIsIHQx
R1BSLCB0MkdQUikKKyAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCisgICAgICAgIGVuZCwK
KyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIG1vdmUgdDBH
UFIsIHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdl
YWtDQVMoX2FuZCwgQW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAg
ICAgICAgICAgYW5kaSB0MEdQUiwgdDFHUFIsIHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAg
bWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIGFuZHEgdDBHUFIsIHQxR1BS
LCB0MkdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFr
Q0FTKF9vciwgT3IsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAg
ICAgICBvcmkgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3Jv
KHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBvcnEgdDBHUFIsIHQxR1BSLCB0MkdQ
UgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94
b3IsIFhvciwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAg
IHhvcmkgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQw
R1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICB4b3JxIHQwR1BSLCB0MUdQUiwgdDJHUFIK
KyAgICAgICAgZW5kKQorZW5kCisKK21hY3JvIHdhc21BdG9taWNDb21wYXJlRXhjaGFuZ2VPcHMo
bG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmksIGZucSkKKyAg
ICB3YXNtT3AoaTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21p
Y1JtdzgldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwg
bV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAg
IG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVl
LCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQoY3R4
LCB0MywgdDEsIDEpCisgICAgICAgIGZuYih0MCwgdDIsIFt0M10sIHQ1LCB0MSkKKyAgICAgICAg
YW5kcSAweGZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kOFRvNjQKKyAgICAgICAgYXNzZXJ0KG1h
Y3JvKG9rKSBicWJlcSB0MCwgMHhmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQw
KQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcxNiVsb3dlckNhc2VPcGNvZGUl
X3UsIFdhc21JNjRBdG9taWNSbXcxNiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAg
ICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zm
c2V0LCB0MSkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCisgICAgICAgIG1s
b2FkcShjdHgsIG1fdmFsdWUsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRl
ckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgMikKKyAgICAgICAg
Zm5oKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQorICAgICAgICBhbmRxIDB4ZmZmZiwgdDAgIyBGSVhN
RTogWmVyb0V4dGVuZDE2VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAw
eGZmZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBlbmQpCisgICAg
d2FzbU9wKGk2NF9hdG9taWNfcm13MzIlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWlj
Um13MzIldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwg
bV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAg
IG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVl
LCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRo
QWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDQpCisgICAgICAgIGZuaSh0MCwgdDIsIFt0M10s
IHQ1LCB0MSkKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZmZmZmZmZiwg
Lm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKKyAgICB3YXNtT3Ao
aTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0b21pY1JtdyV1cHBlckNh
c2VPcGNvZGUlLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMp
CisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBt
X2V4cGVjdGVkLCB0MCkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCisgICAgICAg
IGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNr
KGN0eCwgdDMsIHQxLCA4KQorICAgICAgICBmbnEodDAsIHQyLCBbdDNdLCB0NSwgdDEpCisgICAg
ICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBlbmQpCitlbmQKKworaWYgWDg2XzY0IG9yIEFSTTY0
RSBvciBBUk02NCBvciBSSVNDVjY0CisjIHQwR1BSID0+IGV4cGVjdGVkLCB0MkdQUiA9PiB2YWx1
ZSwgbWVtID0+IG1lbW9yeSByZWZlcmVuY2UKK3dhc21BdG9taWNDb21wYXJlRXhjaGFuZ2VPcHMo
X2NtcHhjaGcsIENtcHhjaGcsCisgICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BSLCB0
MUdQUikKKyAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQorICAgICAgICAgICAgYnFhIHQwR1BS
ICwgMHhmZiwgLmZhaWwKKyAgICAgICAgICAgIGF0b21pY3dlYWtjYXNiIHQwR1BSLCB0MkdQUiwg
bWVtCisgICAgICAgICAgICBqbXAgLmRvbmUKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBh
dG9taWNsb2FkYiBtZW0sIHQwR1BSCisgICAgICAgIC5kb25lOgorICAgICAgICBlbHNlCisgICAg
ICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmthY3FiIG1lbSwgdDFHUFIKKyAgICAgICAg
ICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGIg
dDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAg
ICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRy
ZWxiIHQ1R1BSLCB0MUdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQor
ICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAgICAgICAgbW92ZSB0
MUdQUiwgdDBHUFIKKyAgICAgICAgZW5kCisgICAgZW5kLAorICAgIG1hY3JvKHQwR1BSLCB0MkdQ
UiwgbWVtLCB0NUdQUiwgdDFHUFIpCisgICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKKyAgICAg
ICAgICAgIGJxYSB0MEdQUiwgMHhmZmZmLCAuZmFpbAorICAgICAgICAgICAgYXRvbWljd2Vha2Nh
c2ggdDBHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGptcCAuZG9uZQorICAgICAgICAuZmFp
bDoKKyAgICAgICAgICAgIGF0b21pY2xvYWRoIG1lbSwgdDBHUFIKKyAgICAgICAgLmRvbmU6Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgLmxvb3A6CisgICAgICAgICAgICBsb2FkbGlua2FjcWggbWVt
LCB0MUdQUgorICAgICAgICAgICAgYnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAorICAgICAgICAg
ICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQ
UiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAg
ICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQxR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEg
dDVHUFIsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6Cisg
ICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgorICAgICAgICBlbmQKKyAgICBlbmQsCisgICAg
bWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgaWYgWDg2XzY0
IG9yIEFSTTY0RQorICAgICAgICAgICAgYnFhIHQwR1BSLCAweGZmZmZmZmZmLCAuZmFpbAorICAg
ICAgICAgICAgYXRvbWljd2Vha2Nhc2kgdDBHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGpt
cCAuZG9uZQorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIGF0b21pY2xvYWRpIG1lbSwgdDBH
UFIKKyAgICAgICAgLmRvbmU6CisgICAgICAgIGVsc2UKKyAgICAgICAgLmxvb3A6CisgICAgICAg
ICAgICBsb2FkbGlua2FjcWkgbWVtLCB0MUdQUgorICAgICAgICAgICAgYnFuZXEgdDBHUFIsIHQx
R1BSLCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwgdDJHUFIsIG1lbQor
ICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAor
ICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGkgdDVHUFIsIHQxR1BSLCBt
ZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxv
b3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgorICAgICAg
ICBlbmQKKyAgICBlbmQsCisgICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BSLCB0MUdQ
UikKKyAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQorICAgICAgICAgICAgYXRvbWljd2Vha2Nh
c3EgdDBHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgZWxzZQorICAgICAgICAubG9vcDoKKyAgICAg
ICAgICAgIGxvYWRsaW5rYWNxcSBtZW0sIHQxR1BSCisgICAgICAgICAgICBicW5lcSB0MEdQUiwg
dDFHUFIsIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmRyZWxxIHQ1R1BSLCB0MkdQUiwgbWVt
CisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29w
CisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgc3RvcmVjb25kcmVscSB0NUdQUiwgdDFHUFIs
IG1lbQorICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAu
bG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCisgICAg
ICAgIGVuZAorICAgIGVuZCkKK2VuZAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9hcm0ucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9h
cm0ucmIKaW5kZXggOTVjODVjMTEzNDFiZTk0OTVmMTFlNzc4OGE0YjM3MGE2ZDkxYmJhOS4uN2Rk
NTM1MDg5OGIyNjQ3MmMwM2ZlNzA2MjJmN2YyMDBiYThlMmRlNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9vZmZsaW5lYXNtL2FybS5yYgpAQCAtNjMsNiArNjMsMTEgQEAgY2xhc3MgTm9kZQogICAg
ICAgICByYWlzZSAiQm9ndXMgcmVnaXN0ZXIgbmFtZSAje2RvdWJsZU9wZXJhbmR9IiB1bmxlc3Mg
ZG91YmxlT3BlcmFuZCA9fiAvXmQvCiAgICAgICAgICJzIiArICgkfi5wb3N0X21hdGNoLnRvX2kg
KiAyKS50b19zCiAgICAgZW5kCisgICAgZGVmIGFybVNpbmdsZUhpCisgICAgICAgIGRvdWJsZU9w
ZXJhbmQgPSBhcm1PcGVyYW5kCisgICAgICAgIHJhaXNlICJCb2d1cyByZWdpc3RlciBuYW1lICN7
ZG91YmxlT3BlcmFuZH0iIHVubGVzcyBkb3VibGVPcGVyYW5kID1+IC9eZC8KKyAgICAgICAgInMi
ICsgKCR+LnBvc3RfbWF0Y2gudG9faSAqIDIgKyAxKS50b19zCisgICAgZW5kCiBlbmQKIAogY2xh
c3MgU3BlY2lhbFJlZ2lzdGVyCkBAIC05OCwyMSArMTAzLDIxIEBAIGVuZAogY2xhc3MgUmVnaXN0
ZXJJRAogICAgIGRlZiBhcm1PcGVyYW5kCiAgICAgICAgIGNhc2UgbmFtZQotICAgICAgICB3aGVu
ICJ0MCIsICJhMCIsICJyMCIKKyAgICAgICAgd2hlbiAidDAiLCAiYTAiLCAid2EwIiwgInIwIgog
ICAgICAgICAgICAgInIwIgotICAgICAgICB3aGVuICJ0MSIsICJhMSIsICJyMSIKKyAgICAgICAg
d2hlbiAidDEiLCAiYTEiLCAid2ExIiwgInIxIgogICAgICAgICAgICAgInIxIgotICAgICAgICB3
aGVuICJ0MiIsICJhMiIKKyAgICAgICAgd2hlbiAidDIiLCAiYTIiLCAid2EyIgogICAgICAgICAg
ICAgInIyIgotICAgICAgICB3aGVuICJ0MyIsICJhMyIKKyAgICAgICAgd2hlbiAidDMiLCAiYTMi
LCAid2EzIgogICAgICAgICAgICAgInIzIgogICAgICAgICB3aGVuICJ0NCIgIyBMTEludCBQQwog
ICAgICAgICAgICAgInI0IgotICAgICAgICB3aGVuICJ0NSIKKyAgICAgICAgd2hlbiAidDUiLCAi
d3MwIiAjIHdzMCBtdXN0IGJlIGEgbm9uLWFyZ3VtZW50L25vbi1yZXR1cm4gR1BSCiAgICAgICAg
ICAgICAicjUiCiAgICAgICAgIHdoZW4gImNmciIKICAgICAgICAgICAgICJyNyIKLSAgICAgICAg
d2hlbiAidDYiCisgICAgICAgIHdoZW4gInQ2IiwgIndzMSIgIyB3czEgbXVzdCBiZSBhIG5vbi1h
cmd1bWVudC9ub24tcmV0dXJuIEdQUgogICAgICAgICAgICAgInI4IgogICAgICAgICB3aGVuICJ0
NyIKICAgICAgICAgICAgICJyOSIgIyByOSBpcyBhbHNvIGEgc2NyYXRjaCByZWdpc3Rlciwgc28g
dXNlIGNhcmVmdWxseSEKQEAgLTEzNSwxOCArMTQwLDIyIEBAIGVuZAogY2xhc3MgRlBSZWdpc3Rl
cklECiAgICAgZGVmIGFybU9wZXJhbmQKICAgICAgICAgY2FzZSBuYW1lCi0gICAgICAgIHdoZW4g
ImZ0MCIsICJmciIsICJmYTAiCisgICAgICAgIHdoZW4gImZ0MCIsICJmciIsICJmYTAiLCAid2Zh
MCIKICAgICAgICAgICAgICJkMCIKLSAgICAgICAgd2hlbiAiZnQxIiwgImZhMSIKKyAgICAgICAg
d2hlbiAiZnQxIiwgImZhMSIsICJ3ZmExIgogICAgICAgICAgICAgImQxIgotICAgICAgICB3aGVu
ICJmdDIiCisgICAgICAgIHdoZW4gImZ0MiIsICJ3ZmEyIgogICAgICAgICAgICAgImQyIgotICAg
ICAgICB3aGVuICJmdDMiCisgICAgICAgIHdoZW4gImZ0MyIsICJ3ZmEzIgogICAgICAgICAgICAg
ImQzIgotICAgICAgICB3aGVuICJmdDQiCisgICAgICAgIHdoZW4gImZ0NCIsICJ3ZmE0IgogICAg
ICAgICAgICAgImQ0IgotICAgICAgICB3aGVuICJmdDUiCisgICAgICAgIHdoZW4gImZ0NSIsICJ3
ZmE1IgogICAgICAgICAgICAgImQ1IgorICAgICAgICB3aGVuICJmdDYiLCAid2ZhNiIKKyAgICAg
ICAgICAgICJkNiIKKyAgICAgICAgd2hlbiAiZnQ3IiwgIndmYTciCisgICAgICAgICAgICAiZDci
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJhaXNlICJCYWQgcmVnaXN0ZXIgI3tuYW1lfSBm
b3IgQVJNIGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCiAgICAgICAgIGVuZApAQCAtMTYzLDcgKzE3
MiwxMSBAQCBlbmQKIGNsYXNzIEFkZHJlc3MKICAgICBkZWYgYXJtT3BlcmFuZAogICAgICAgICBy
YWlzZSAiQmFkIG9mZnNldCBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiBpZiBvZmZzZXQudmFsdWUg
PCAtMHhmZiBvciBvZmZzZXQudmFsdWUgPiAweGZmZgotICAgICAgICAiWyN7YmFzZS5hcm1PcGVy
YW5kfSwgXCMje29mZnNldC52YWx1ZX1dIgorICAgICAgICBpZiBvZmZzZXQudmFsdWUgPT0gMAor
ICAgICAgICAgICJbI3tiYXNlLmFybU9wZXJhbmR9XSIKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICJbI3tiYXNlLmFybU9wZXJhbmR9LCBcIyN7b2Zmc2V0LnZhbHVlfV0iCisgICAgICAgIGVuZAog
ICAgIGVuZAogZW5kCiAKQEAgLTMwNiwxNiArMzE5LDI1IEBAIGNsYXNzIFNlcXVlbmNlCiAgICAg
ICAgIHJlc3VsdCA9IGFybUxvd2VyTGFiZWxSZWZlcmVuY2VzKHJlc3VsdCkKICAgICAgICAgcmVz
dWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzKHJlc3VsdCkgewogICAgICAgICAgICAg
fCBub2RlLCBhZGRyZXNzIHwKLSAgICAgICAgICAgIGlmIGFkZHJlc3MuaXNfYT8gQmFzZUluZGV4
Ci0gICAgICAgICAgICAgICAgYWRkcmVzcy5vZmZzZXQudmFsdWUgPT0gMAotICAgICAgICAgICAg
ZWxzaWYgYWRkcmVzcy5pc19hPyBBZGRyZXNzCi0gICAgICAgICAgICAgICAgKC0weGZmLi4weGZm
ZikuaW5jbHVkZT8gYWRkcmVzcy5vZmZzZXQudmFsdWUKKyAgICAgICAgICAgIGNhc2Ugbm9kZS5v
cGNvZGUKKyAgICAgICAgICAgIHdoZW4gImxvYWQyaWEiLCAic3RvcmUyaWEiCisgICAgICAgICAg
ICAgICAgaWYgYWRkcmVzcy5pc19hPyBBZGRyZXNzCisgICAgICAgICAgICAgICAgICAgIChhZGRy
ZXNzLm9mZnNldC52YWx1ZSAlIDQgPT0gMCkgJiYgKCgtMTAyMy4uMTAyMykuaW5jbHVkZT8gYWRk
cmVzcy5vZmZzZXQudmFsdWUpCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICBmYWxzZQorICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIGZhbHNlCisgICAgICAgICAgICAgICAgaWYgYWRkcmVzcy5pc19hPyBCYXNlSW5k
ZXgKKyAgICAgICAgICAgICAgICAgICAgYWRkcmVzcy5vZmZzZXQudmFsdWUgPT0gMCAmJiBub2Rl
Lm9wY29kZQorICAgICAgICAgICAgICAgIGVsc2lmIGFkZHJlc3MuaXNfYT8gQWRkcmVzcworICAg
ICAgICAgICAgICAgICAgICAoLTB4ZmYuLjB4ZmZmKS5pbmNsdWRlPyBhZGRyZXNzLm9mZnNldC52
YWx1ZQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZmFsc2UKKyAg
ICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGVuZAogICAgICAgICB9CiAgICAgICAgIHJl
c3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc0RvdWJsZShyZXN1bHQpCi0gICAgICAg
IHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMocmVzdWx0LCBbInN0b3JlYiIs
ICJzdG9yZWgiLCAic3RvcmVpIiwgInN0b3JlcCIsICJzdG9yZXEiXSkKKyAgICAgICAgcmVzdWx0
ID0gcmlzY0xvd2VyTWlzcGxhY2VkSW1tZWRpYXRlcyhyZXN1bHQsIFsic3RvcmViIiwgInN0b3Jl
aCIsICJzdG9yZWkiLCAic3RvcmVwIiwgInN0b3JlcSIsICJzdG9yZTJpYSJdKQogICAgICAgICBy
ZXN1bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVzKHJlc3VsdCwgMC4uMHhmZiwgMC4u
MHgwZmYpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEFkZHJlc3NlcyhyZXN1
bHQpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlclJlZ2lzdGVyUmV1c2UocmVzdWx0KQpAQCAt
MzM0LDYgKzM1NiwxMCBAQCBkZWYgYXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKQogICAgIGFy
bU9wZXJhbmRzKFtvcGVyYW5kc1stMV1dICsgb3BlcmFuZHNbMC4uLTJdKQogZW5kCiAKK2RlZiBh
cm1GbGlwcGVkT3BlcmFuZHNQYWlyKG9wZXJhbmRzKQorICAgIGFybU9wZXJhbmRzKFtvcGVyYW5k
c1stMl0sIG9wZXJhbmRzWy0xXV0gKyBvcGVyYW5kc1swLi4tM10pCitlbmQKKwogZGVmIGVtaXRB
cm1Db21wYWN0KG9wY29kZTIsIG9wY29kZTMsIG9wZXJhbmRzKQogICAgIGlmIG9wZXJhbmRzLnNp
emUgPT0gMwogICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlM30gI3thcm1GbGlwcGVkT3BlcmFu
ZHMob3BlcmFuZHMpfSIKQEAgLTM2Myw2ICszODksMTIgQEAgZGVmIGVtaXRBcm1Eb3VibGVCcmFu
Y2goYnJhbmNoT3Bjb2RlLCBvcGVyYW5kcykKICAgICAkYXNtLnB1dHMgIiN7YnJhbmNoT3Bjb2Rl
fSAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKIGVuZAogCitkZWYgZW1pdEFybVNpbmdsZUJyYW5j
aChicmFuY2hPcGNvZGUsIG9wZXJhbmRzKQorICAgICRhc20ucHV0cyAidmNtcGUuZjMyICN7b3Bl
cmFuZHNbMF0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IgorICAgICRhc20u
cHV0cyAidm1ycyBhcHNyX256Y3YsIGZwc2NyIgorICAgICRhc20ucHV0cyAiI3ticmFuY2hPcGNv
ZGV9ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorZW5kCisKIGRlZiBlbWl0QXJtVGVzdChvcGVy
YW5kcykKICAgICB2YWx1ZSA9IG9wZXJhbmRzWzBdCiAgICAgY2FzZSBvcGVyYW5kcy5zaXplCkBA
IC0zODMsNyArNDE1LDE1IEBAIGVuZAogCiBkZWYgZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFu
ZHMsIGNvZGUpCiAgICAgJGFzbS5wdXRzICJtb3YgI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwg
XCMwIgotICAgICRhc20ucHV0cyAidmNtcGUuZjY0ICN7YXJtT3BlcmFuZHMob3BlcmFuZHNbMC4u
MV0pfSIKKyAgICAkYXNtLnB1dHMgInZjbXAuZjY0ICN7YXJtT3BlcmFuZHMob3BlcmFuZHNbMC4u
MV0pfSIKKyAgICAkYXNtLnB1dHMgInZtcnMgQVBTUl9uemN2LCBGUFNDUiIKKyAgICAkYXNtLnB1
dHMgIml0ICN7Y29kZX0iCisgICAgJGFzbS5wdXRzICJtb3Yje2NvZGV9ICN7b3BlcmFuZHNbMl0u
YXJtT3BlcmFuZH0sIFwjMSIKK2VuZAorCitkZWYgZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5k
cywgY29kZSkKKyAgICAkYXNtLnB1dHMgIm1vdiAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCBc
IzAiCisgICAgJGFzbS5wdXRzICJ2Y21wLmYzMiAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0sICN7
b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKICAgICAkYXNtLnB1dHMgInZtcnMgQVBTUl9uemN2LCBG
UFNDUiIKICAgICAkYXNtLnB1dHMgIml0ICN7Y29kZX0iCiAgICAgJGFzbS5wdXRzICJtb3Yje2Nv
ZGV9ICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sIFwjMSIKQEAgLTQwMyw2ICs0NDMsMTkgQEAg
ZGVmIGVtaXRBcm1UZXN0U2V0KG9wZXJhbmRzLCBjb2RlKQogICAgICRhc20ucHV0cyAibW92I3tj
b2RlfSAje29wZXJhbmRzWy0xXS5hcm1PcGVyYW5kfSwgXCMxIgogZW5kCiAKK2RlZiByYXdJbnN0
cnVjdGlvbihjb2RlT3JpZ2luLCB0ZXh0KQorICAgIHJldHVybiBJbnN0cnVjdGlvbi5uZXcoY29k
ZU9yaWdpbiwgImVtaXQiLCBbU3RyaW5nTGl0ZXJhbC5uZXcoY29kZU9yaWdpbiwgIlwiI3t0ZXh0
fVwiIildKQorZW5kCisKK2RlZiBlbWl0QXJtVHJ1bmNhdGVGbG9hdChjb2RlT3JpZ2luLCB0bywg
ZnJvbSwgb3BlcmFuZHMpCisgICAgdG1wID0gQVJNX0VYVFJBX0ZQUlNbLTFdCisgICAgc3JjID0g
ZnJvbSA9PSAiZjMyIiA/IG9wZXJhbmRzWzBdLmFybVNpbmdsZSA6IG9wZXJhbmRzWzBdLmFybU9w
ZXJhbmQKKyAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAgICAgICByYXdJbnN0cnVj
dGlvbihjb2RlT3JpZ2luLCAidmN2dC4je3RvfS4je2Zyb219ICN7dG1wLmFybVNpbmdsZX0sICN7
c3JjfSIpLAorICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAidm1vdiAje29wZXJh
bmRzWzFdLmFybU9wZXJhbmR9LCAje3RtcC5hcm1TaW5nbGV9IikKKyAgICBdKS5sb3dlcigkYWN0
aXZlQmFja2VuZCkKK2VuZAorCiBjbGFzcyBJbnN0cnVjdGlvbgogICAgIGRlZiBsb3dlckFSTXY3
CiAgICAgICAgIHJhaXNlIHVubGVzcyAkYWN0aXZlQmFja2VuZCA9PSAiQVJNdjciCkBAIC00NDAs
NiArNDkzLDEwIEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICAgICAgICAgICRhc20u
cHV0cyAiYWRkI3tzdWZmaXh9ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAg
ICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAiYWRjaSIKKyAg
ICAgICAgICAgIGVtaXRBcm0oImFkYyIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJhYnNkIgor
ICAgICAgICAgICRhc20ucHV0cyAidmFicy5mNjQgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFu
ZHMpfSIKICAgICAgICAgd2hlbiAiYW5kaSIsICJhbmRwIgogICAgICAgICAgICAgZW1pdEFybUNv
bXBhY3QoImFuZHMiLCAiYW5kIiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gIm9yaSIsICJvcnAi
LCAib3JoIgpAQCAtNDU4LDE0ICs1MTUsMzQgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAg
ICAgIGVtaXRBcm0oIm11bCIsIG9wZXJhbmRzKQogICAgICAgICB3aGVuICJzdWJpIiwgInN1YnAi
LCAic3ViaXMiCiAgICAgICAgICAgICBlbWl0QXJtQ29tcGFjdCgic3VicyIsICJzdWJzIiwgb3Bl
cmFuZHMpCisgICAgICAgIHdoZW4gInNiY2kiCisgICAgICAgICAgICBlbWl0QXJtKCJzYmMiLCBv
cGVyYW5kcykKICAgICAgICAgd2hlbiAibmVnaSIsICJuZWdwIgogICAgICAgICAgICAgJGFzbS5w
dXRzICJyc2JzICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtT3Bl
cmFuZH0sIFwjMCIKICAgICAgICAgd2hlbiAibm90aSIKICAgICAgICAgICAgICRhc20ucHV0cyAi
bXZucyAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9
IgorICAgICAgICB3aGVuICJscm90YXRlaSIKKyAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcoY29k
ZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgIFNlcXVlbmNlLm5ldyhjb2RlT3JpZ2luLCBbCisg
ICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJtb3ZlIiwgW29wZXJh
bmRzWzBdLCB0bXBdKSwKKyAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdp
biwgIm5lZ2kiLCBbdG1wXSksCisgICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVP
cmlnaW4sICJycm90YXRlaSIsIFt0bXAsIG9wZXJhbmRzWzFdXSksCisgICAgICAgICAgICBdKS5s
b3dlcigkYWN0aXZlQmFja2VuZCkKKyAgICAgICAgd2hlbiAicnJvdGF0ZWkiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgInJvciAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAg
ICB3aGVuICJ0emNudGkiCisgICAgICAgICAgICAkYXNtLnB1dHMgInJiaXQgI3thcm1GbGlwcGVk
T3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiY2x6ICN7b3BlcmFu
ZHNbMV0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCisgICAgICAgIHdo
ZW4gImx6Y250aSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiY2x6ICN7YXJtRmxpcHBlZE9wZXJh
bmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gImxvYWRpIiwgImxvYWRpcyIsICJsb2FkcCIK
ICAgICAgICAgICAgICRhc20ucHV0cyAibGRyICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRz
KX0iCiAgICAgICAgIHdoZW4gInN0b3JlaSIsICJzdG9yZXAiCiAgICAgICAgICAgICAkYXNtLnB1
dHMgInN0ciAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWQyaWEi
CisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmQgI3thcm1GbGlwcGVkT3BlcmFuZHNQYWlyKG9w
ZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN0b3JlMmlhIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJzdHJkICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAibG9hZGIiCiAg
ICAgICAgICAgICAkYXNtLnB1dHMgImxkcmIgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMp
fSIKICAgICAgICAgd2hlbiAibG9hZGJzaSIKQEAgLTQ3OCwyMCArNTU1LDExMCBAQCBjbGFzcyBJ
bnN0cnVjdGlvbgogICAgICAgICAgICAgJGFzbS5wdXRzICJsZHJzaC53ICN7YXJtRmxpcHBlZE9w
ZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gInN0b3JlaCIKICAgICAgICAgICAgICRh
c20ucHV0cyAic3RyaCAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxv
YWRsaW5rYiIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRyZXhiICN7YXJtRmxpcHBlZE9wZXJh
bmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRsaW5raCIKKyAgICAgICAgICAgICRh
c20ucHV0cyAibGRyZXhoICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAg
IHdoZW4gImxvYWRsaW5raSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRyZXggI3thcm1GbGlw
cGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGxpbmsyaSIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAibGRyZXhkICN7YXJtRmxpcHBlZE9wZXJhbmRzUGFpcihvcGVyYW5k
cyl9IgorICAgICAgICB3aGVuICJzdG9yZWNvbmRiIgorICAgICAgICAgICAgJGFzbS5wdXRzICJz
dHJleGIgI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9yZWNvbmRo
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJzdHJleGggI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9
IgorICAgICAgICB3aGVuICJzdG9yZWNvbmRpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzdHJl
eCAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN0b3JlY29uZDJpIgor
ICAgICAgICAgICAgJGFzbS5wdXRzICJzdHJleGQgI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9Igog
ICAgICAgICB3aGVuICJsb2FkZCIKICAgICAgICAgICAgICRhc20ucHV0cyAidmxkci42NCAje2Fy
bUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJzdG9yZWQiCiAgICAg
ICAgICAgICAkYXNtLnB1dHMgInZzdHIuNjQgI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAg
ICAgICB3aGVuICJsb2FkZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmxkci4zMiAje29wZXJh
bmRzWy0xXS5hcm1TaW5nbGV9LCAje2FybU9wZXJhbmRzKG9wZXJhbmRzWzAuLi0yXSl9IgorICAg
ICAgICB3aGVuICJzdG9yZWYiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZzdHIuMzIgI3tvcGVy
YW5kc1swXS5hcm1TaW5nbGV9LCAje2FybU9wZXJhbmRzKG9wZXJhbmRzWzEuLi0xXSl9IgorICAg
ICAgICB3aGVuICJhZGRmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2YWRkLmYzMiAje29wZXJh
bmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sw
XS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJzdWJmIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJ2c3ViLmYzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2lu
Z2xlfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJtdWxmIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJ2bXVsLmYzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7
b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAg
ICB3aGVuICJkaXZmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2ZGl2LmYzMiAje29wZXJhbmRz
WzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5h
cm1TaW5nbGV9IgorICAgICAgICB3aGVuICJzcXJ0ZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
dnNxcnQuZjMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5n
bGV9IgorICAgICAgICB3aGVuICJhYnNmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2YWJzLmYz
MiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAg
ICAgICAgd2hlbiAibmVnZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm5lZy5mMzIgI3tvcGVy
YW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCisgICAgICAgIHdo
ZW4gImJmbHQiCisgICAgICAgICAgICBlbWl0QXJtU2luZ2xlQnJhbmNoKCJibWkiLCBvcGVyYW5k
cykKKyAgICAgICAgd2hlbiAiYmZsdHVuIgorICAgICAgICAgICAgZW1pdEFybVNpbmdsZUJyYW5j
aCgiYmx0Iiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJmbHRlcXVuIgorICAgICAgICAgICAg
ZW1pdEFybVNpbmdsZUJyYW5jaCgiYmxlIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJmZXEi
CisgICAgICAgICAgICBlbWl0QXJtU2luZ2xlQnJhbmNoKCJiZXEiLCBvcGVyYW5kcykKKyAgICAg
ICAgd2hlbiAiYmZndCIKKyAgICAgICAgICAgIGVtaXRBcm1TaW5nbGVCcmFuY2goImJndCIsIG9w
ZXJhbmRzKQorICAgICAgICB3aGVuICJiZmd0ZXF1biIKKyAgICAgICAgICAgIGVtaXRBcm1TaW5n
bGVCcmFuY2goImJwbCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZGx0dW4iCisgICAgICAg
ICAgICBlbWl0QXJtRG91YmxlQnJhbmNoKCJibHQiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAi
YWRkZCIKICAgICAgICAgICAgIGVtaXRBcm0oInZhZGQuZjY0Iiwgb3BlcmFuZHMpCi0gICAgICAg
IHdoZW4gImRpdmQiCi0gICAgICAgICAgICBlbWl0QXJtKCJ2ZGl2LmY2NCIsIG9wZXJhbmRzKQog
ICAgICAgICB3aGVuICJzdWJkIgogICAgICAgICAgICAgZW1pdEFybSgidnN1Yi5mNjQiLCBvcGVy
YW5kcykKICAgICAgICAgd2hlbiAibXVsZCIKICAgICAgICAgICAgIGVtaXRBcm0oInZtdWwuZjY0
Iiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImRpdmQiCisgICAgICAgICAgICBlbWl0QXJtKCJ2
ZGl2LmY2NCIsIG9wZXJhbmRzKQogICAgICAgICB3aGVuICJzcXJ0ZCIKICAgICAgICAgICAgICRh
c20ucHV0cyAidnNxcnQuZjY0ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAg
ICAgIHdoZW4gIm5lZ2QiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZuZWcuZjY0ICN7YXJtRmxp
cHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gIm9yZiIKKyAgICAgICAgICAg
ICh0bXBMaHMsIHRtcFJocykgPSBBUk1fRVhUUkFfR1BSU1stMi4uLTFdCisgICAgICAgICAgICBT
ZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihj
b2RlT3JpZ2luLCAgInZtb3YgI3t0bXBMaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJt
U2luZ2xlfSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZt
b3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIpLAorICAg
ICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgIm9yaSIsIFt0bXBMaHMsIHRt
cFJoc10pLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3Yg
I3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje3RtcFJocy5hcm1PcGVyYW5kfSIpCisgICAgICAg
ICAgICBdKS5sb3dlcigkYWN0aXZlQmFja2VuZCkKKyAgICAgICAgd2hlbiAiYW5kZiIKKyAgICAg
ICAgICAgICh0bXBMaHMsIHRtcFJocykgPSBBUk1fRVhUUkFfR1BSU1stMi4uLTFdCisgICAgICAg
ICAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAgICAgICAgICAgICByYXdJbnN0cnVj
dGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBMaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNb
MF0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2lu
LCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIp
LAorICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImFuZGkiLCBbdG1w
TGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwg
ICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3t0bXBSaHMuYXJtT3BlcmFuZH0iKQor
ICAgICAgICAgICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCisgICAgICAgIHdoZW4gIm9yZCIK
KyAgICAgICAgICAgICh0bXBMaHMsIHRtcFJocykgPSBBUk1fRVhUUkFfR1BSU1stMi4uLTFdCisg
ICAgICAgICAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAgICAgICAgICAgICByYXdJ
bnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBMaHMuYXJtT3BlcmFuZH0sICN7b3Bl
cmFuZHNbMF0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2Rl
T3JpZ2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2lu
Z2xlfSIpLAorICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgIm9yaSIs
IFt0bXBMaHMsIHRtcFJoc10pLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3Jp
Z2luLCAgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje3RtcFJocy5hcm1PcGVyYW5k
fSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0
bXBMaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlSGl9IiksCisgICAgICAg
ICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcFJocy5hcm1PcGVy
YW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGVIaX0iKSwKKyAgICAgICAgICAgICAgSW5zdHJ1
Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJvcmkiLCBbdG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAg
ICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJt
U2luZ2xlSGl9LCAje3RtcFJocy5hcm1PcGVyYW5kfSIpCisgICAgICAgICAgICBdKS5sb3dlcigk
YWN0aXZlQmFja2VuZCkKKyAgICAgICAgd2hlbiAiYW5kZCIKKyAgICAgICAgICAgICh0bXBMaHMs
IHRtcFJocykgPSBBUk1fRVhUUkFfR1BSU1stMi4uLTFdCisgICAgICAgICAgICBTZXF1ZW5jZS5u
ZXcoY29kZU9yaWdpbiwgWworICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2lu
LCAgInZtb3YgI3t0bXBMaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIp
LAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBS
aHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAg
ICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImFuZGkiLCBbdG1wTGhzLCB0bXBSaHNdKSwK
KyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFu
ZHNbMV0uYXJtU2luZ2xlfSwgI3t0bXBSaHMuYXJtT3BlcmFuZH0iKSwKKyAgICAgICAgICAgICAg
cmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAj
e29wZXJhbmRzWzBdLmFybVNpbmdsZUhpfSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlv
bihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0u
YXJtU2luZ2xlSGl9IiksCisgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2lu
LCAiYW5kaSIsIFt0bXBMaHMsIHRtcFJoc10pLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlv
bihjb2RlT3JpZ2luLCAgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGVIaX0sICN7dG1wUmhz
LmFybU9wZXJhbmR9IikKKyAgICAgICAgICAgIF0pLmxvd2VyKCRhY3RpdmVCYWNrZW5kKQogICAg
ICAgICB3aGVuICJjaTJkcyIKICAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRz
WzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCiAgICAgICAgICAgICAk
YXNtLnB1dHMgInZjdnQuZjY0LnMzMiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje29wZXJh
bmRzWzFdLmFybVNpbmdsZX0iCkBAIC01NDQsNiArNzExLDggQEAgY2xhc3MgSW5zdHJ1Y3Rpb24K
ICAgICAgICAgd2hlbiAibW92ZHoiCiAgICAgICAgICAgICAjIEZJWE1FOiBlaXRoZXIgc3VwcG9y
dCB0aGlzIG9yIHJlbW92ZSBpdC4KICAgICAgICAgICAgIHJhaXNlICJBUk0gZG9lcyBub3Qgc3Vw
cG9ydCB0aGlzIG9wY29kZSB5ZXQsICN7Y29kZU9yaWdpbn0iCisgICAgICAgIHdoZW4gIm1vdmVk
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92LmY2NCAje2FybUZsaXBwZWRPcGVyYW5kcyhv
cGVyYW5kcyl9IgogICAgICAgICB3aGVuICJwb3AiCiAgICAgICAgICAgICBvcGVyYW5kcy5lYWNo
IHsKICAgICAgICAgICAgICAgICB8IG9wIHwKQEAgLTU2MCw5ICs3MjksMTcgQEAgY2xhc3MgSW5z
dHJ1Y3Rpb24KICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1v
diAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICAgICAgZW5kCisgICAg
ICAgIHdoZW4gIm1vdmVpaSIKKyAgICAgICAgICAgIHJhaXNlICJGaXJzdCBvcGVyYW5kIG9mIG1v
dmVpaSBtdXN0IGJlIGFuIGltbWVkaWF0ZSIgdW5sZXNzIG9wZXJhbmRzWzBdLmltbWVkaWF0ZT8K
KyAgICAgICAgICAgIGFybU1vdmVJbW1lZGlhdGUob3BlcmFuZHNbMF0udmFsdWUgPj4gMzIsIG9w
ZXJhbmRzWzFdKQorICAgICAgICAgICAgYXJtTW92ZUltbWVkaWF0ZShvcGVyYW5kc1swXS52YWx1
ZSAmIDB4ZmZmZmZmZmYsIG9wZXJhbmRzWzJdKQogICAgICAgICB3aGVuICJtdmxibCIKICAgICAg
ICAgICAgICAgICAkYXNtLnB1dHMgIm1vdncgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgXCM6
bG93ZXIxNjoje29wZXJhbmRzWzBdLnZhbHVlfSIKICAgICAgICAgICAgICAgICAkYXNtLnB1dHMg
Im1vdnQgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgXCM6dXBwZXIxNjoje29wZXJhbmRzWzBd
LnZhbHVlfSIKKyAgICAgICAgd2hlbiAic3hiMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN4
dGIgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3hoMmki
CisgICAgICAgICAgICAkYXNtLnB1dHMgInN4dGggI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFu
ZHMpfSIKICAgICAgICAgd2hlbiAibm9wIgogICAgICAgICAgICAgJGFzbS5wdXRzICJub3AiCiAg
ICAgICAgIHdoZW4gImJpZXEiLCAiYnBlcSIsICJiYmVxIgpAQCAtNjU2LDE0ICs4MzMsNDYgQEAg
Y2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGVtaXRBcm1Db21wYXJlKG9wZXJhbmRzLCAi
bHQiKQogICAgICAgICB3aGVuICJjaWx0ZXEiLCAiY3BsdGVxIiwgImNibHRlcSIKICAgICAgICAg
ICAgIGVtaXRBcm1Db21wYXJlKG9wZXJhbmRzLCAibGUiKQotICAgICAgICB3aGVuICJjZGd0Igot
ICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMsICJndCIpCi0gICAgICAg
IHdoZW4gImNkZ3RlcSIKLSAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRz
LCAiZ2UiKQorICAgICAgICB3aGVuICJjZmVxIgorICAgICAgICAgICAgZW1pdEFybUZsb2F0Q29t
cGFyZShvcGVyYW5kcywgImVxIikKKyAgICAgICAgd2hlbiAiY2ZuZXF1biIKKyAgICAgICAgICAg
IGVtaXRBcm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJuZSIpCisgICAgICAgIHdoZW4gImNmbHQi
CisgICAgICAgICAgICBlbWl0QXJtRmxvYXRDb21wYXJlKG9wZXJhbmRzLCAibWkiKQorICAgICAg
ICB3aGVuICJjZmx0ZXEiCisgICAgICAgICAgICBlbWl0QXJtRmxvYXRDb21wYXJlKG9wZXJhbmRz
LCAibHMiKQorICAgICAgICB3aGVuICJjZmd0IgorICAgICAgICAgICAgZW1pdEFybUZsb2F0Q29t
cGFyZShvcGVyYW5kcywgImd0IikKKyAgICAgICAgd2hlbiAiY2ZndGVxIgorICAgICAgICAgICAg
ZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywgImdlIikKKyAgICAgICAgd2hlbiAiY2RlcSIK
KyAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAiZXEiKQorICAgICAg
ICB3aGVuICJjZG5lcXVuIgorICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFu
ZHMsICJuZSIpCiAgICAgICAgIHdoZW4gImNkbHQiCiAgICAgICAgICAgICBlbWl0QXJtRG91Ymxl
Q29tcGFyZShvcGVyYW5kcywgIm1pIikKICAgICAgICAgd2hlbiAiY2RsdGVxIgogICAgICAgICAg
ICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMsICJscyIpCisgICAgICAgIHdoZW4gImNk
Z3QiCisgICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywgImd0IikKKyAg
ICAgICAgd2hlbiAiY2RndGVxIgorICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3Bl
cmFuZHMsICJnZSIpCisgICAgICAgIHdoZW4gImNmMmQiCisgICAgICAgICAgICAkYXNtLnB1dHMg
InZjdnQuZjY0LmYzMiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFy
bVNpbmdsZX0iCisgICAgICAgIHdoZW4gImNkMmYiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZj
dnQuZjMyLmY2NCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtT3Bl
cmFuZH0iCisgICAgICAgIHdoZW4gImNpMmYiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3Yg
I3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9IgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmYzMi51MzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9
LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gImNpMmZzIgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5k
c1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmN2dC5mMzIuczMyICN7
b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IgorICAgICAg
ICB3aGVuICJjaTJkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNbMV0u
YXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20u
cHV0cyAidmN2dC5mNjQudTMyICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNb
MV0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAiY2kyZHMiCisgICAgICAgICAgICAkYXNtLnB1
dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybU9wZXJh
bmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmY2NC5zMzIgI3tvcGVyYW5kc1sxXS5h
cm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IgogICAgICAgICB3aGVuICJ0aXMi
LCAidGJzIiwgInRwcyIKICAgICAgICAgICAgIGVtaXRBcm1UZXN0U2V0KG9wZXJhbmRzLCAibWki
KQogICAgICAgICB3aGVuICJ0aXoiLCAidGJ6IiwgInRweiIKQEAgLTY3NCwxMCArODgzLDIyIEBA
IGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICAkYXNtLnB1dHMgImxkciAje29wZXJhbmRz
WzFdLmFybU9wZXJhbmR9LCBbc3AsIFwjI3tvcGVyYW5kc1swXS52YWx1ZSAqIDR9XSIKICAgICAg
ICAgd2hlbiAicG9rZSIKICAgICAgICAgICAgICRhc20ucHV0cyAic3RyICN7b3BlcmFuZHNbMV0u
YXJtT3BlcmFuZH0sIFtzcCwgXCMje29wZXJhbmRzWzBdLnZhbHVlICogNH1dIgorICAgICAgICB3
aGVuICJmaTJmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJt
U2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgd2hlbiAiZmYyaSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAj
e29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCiAgICAgICAgIHdoZW4gImZpaTJkIgogICAgICAgICAg
ICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNb
MF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCiAgICAgICAgIHdoZW4g
ImZkMmlpIgogICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtT3Bl
cmFuZH0sICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFu
ZH0iCisgICAgICAgIHdoZW4gInRydW5jYXRlZjJpIgorICAgICAgICAgICAgZW1pdEFybVRydW5j
YXRlRmxvYXQoY29kZU9yaWdpbiwgInUzMiIsICJmMzIiLCBvcGVyYW5kcykKKyAgICAgICAgd2hl
biAidHJ1bmNhdGVmMmlzIgorICAgICAgICAgICAgZW1pdEFybVRydW5jYXRlRmxvYXQoY29kZU9y
aWdpbiwgInMzMiIsICJmMzIiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAidHJ1bmNhdGVkMmki
CisgICAgICAgICAgICBlbWl0QXJtVHJ1bmNhdGVGbG9hdChjb2RlT3JpZ2luLCAidTMyIiwgImY2
NCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJ0cnVuY2F0ZWQyaXMiCisgICAgICAgICAgICBl
bWl0QXJtVHJ1bmNhdGVGbG9hdChjb2RlT3JpZ2luLCAiczMyIiwgImY2NCIsIG9wZXJhbmRzKQog
ICAgICAgICB3aGVuICJibyIKICAgICAgICAgICAgICRhc20ucHV0cyAiYnZzICN7b3BlcmFuZHNb
MF0uYXNtTGFiZWx9IgogICAgICAgICB3aGVuICJicyIKQEAgLTY4NiwxMyArOTA3LDE3IEBAIGNs
YXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICAkYXNtLnB1dHMgImJlcSAje29wZXJhbmRzWzBd
LmFzbUxhYmVsfSIKICAgICAgICAgd2hlbiAiYm56IgogICAgICAgICAgICAgJGFzbS5wdXRzICJi
bmUgI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJjcyIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAiYmNzICN7b3BlcmFuZHNbMF0uYXNtTGFiZWx9IgogICAgICAgICB3aGVu
ICJsZWFpIiwgImxlYXAiCiAgICAgICAgICAgICBvcGVyYW5kc1swXS5hcm1FbWl0TGVhKG9wZXJh
bmRzWzFdKQotICAgICAgICB3aGVuICJzbXVsbGkiCisgICAgICAgIHdoZW4gInNtdWxsaSIsICJ1
bXVsbGkiCiAgICAgICAgICAgICByYWlzZSAiV3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyB0byBz
bXVsbCBpbiAje3NlbGYuaW5zcGVjdH0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIG9w
ZXJhbmRzLmxlbmd0aCA9PSA0Ci0gICAgICAgICAgICAkYXNtLnB1dHMgInNtdWxsICN7b3BlcmFu
ZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbM10uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNb
MF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCisgICAgICAgICAgICAk
YXNtLnB1dHMgIiN7b3Bjb2RlWzAuLi0yXX0gI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgI3tv
cGVyYW5kc1szXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSwgI3tvcGVy
YW5kc1sxXS5hcm1PcGVyYW5kfSIKICAgICAgICAgd2hlbiAibWVtZmVuY2UiCiAgICAgICAgICAg
ICAkYXNtLnB1dHMgImRtYiBzeSIKKyAgICAgICAgd2hlbiAiZmVuY2UiCisgICAgICAgICAgICAk
YXNtLnB1dHMgImRtYiBpc2giCiAgICAgICAgIHdoZW4gImNscmJwIgogICAgICAgICAgICAgJGFz
bS5wdXRzICJiaWMgI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1P
cGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSIKICAgICAgICAgd2hlbiAiZ2xvYmFs
YWRkciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3Ry
dWN0aW9ucy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9u
cy5yYgppbmRleCA1NGIwMjdmM2RhMDE3NzM4MzQ1ZTlkMmI2MThmNzQ4MGYwODRlZDQ0Li43ZTI4
MGI3Zjc4YjQ2ZGY0Njg0MTZmYTVhNDUxYjY5YjMxYmRmYTgxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCkBAIC01OSw2ICs1OSw3IEBA
IE1BQ1JPX0lOU1RSVUNUSU9OUyA9CiAgICAgICJycm90YXRlcSIsCiAgICAgICJzdWJpIiwKICAg
ICAgInhvcmkiLAorICAgICAibG9hZDJpYSIsCiAgICAgICJsb2FkaSIsCiAgICAgICJsb2FkaXMi
LAogICAgICAibG9hZGIiLApAQCAtNjcsNiArNjgsNyBAQCBNQUNST19JTlNUUlVDVElPTlMgPQog
ICAgICAibG9hZGgiLAogICAgICAibG9hZGhzaSIsCiAgICAgICJsb2FkaHNxIiwKKyAgICAgInN0
b3JlMmlhIiwKICAgICAgInN0b3JlaSIsCiAgICAgICJzdG9yZWgiLAogICAgICAic3RvcmViIiwK
QEAgLTM3Nyw5ICszNzksMjEgQEAgWDg2X0lOU1RSVUNUSU9OUyA9CiAKIEFSTV9JTlNUUlVDVElP
TlMgPQogICAgIFsKKyAgICAgImFkY2kiLAorICAgICAiYmNzIiwKICAgICAgImNscmJwIiwKICAg
ICAgIm12bGJsIiwKLSAgICAgImdsb2JhbGFkZHIiCisgICAgICJnbG9iYWxhZGRyIiwKKyAgICAg
InNiY2kiLAorICAgICAibW92ZWlpIiwKKyAgICAgImxvYWRsaW5rYiIsCisgICAgICJsb2FkbGlu
a2giLAorICAgICAibG9hZGxpbmtpIiwKKyAgICAgImxvYWRsaW5rMmkiLAorICAgICAic3RvcmVj
b25kYiIsCisgICAgICJzdG9yZWNvbmRoIiwKKyAgICAgInN0b3JlY29uZGkiLAorICAgICAic3Rv
cmVjb25kMmkiLAogICAgIF0KIAogQVJNNjRfSU5TVFJVQ1RJT05TID0KQEAgLTQzMSw2ICs0NDUs
NyBAQCBBUk02NF9JTlNUUlVDVElPTlMgPQogUklTQ19JTlNUUlVDVElPTlMgPQogICAgIFsKICAg
ICAgInNtdWxsaSIsICAjIE11bHRpcGx5IHR3byAzMi1iaXQgd29yZHMgYW5kIHByb2R1Y2UgYSA2
NC1iaXQgd29yZAorICAgICAidW11bGxpIiwgICMgTXVsdGlwbHkgdHdvIDMyLWJpdCB3b3JkcyBh
bmQgcHJvZHVjZSBhIDY0LWJpdCB3b3JkCiAgICAgICJhZGRpcyIsICAgIyBBZGQgaW50ZWdlcnMg
YW5kIHNldCBhIGZsYWcuCiAgICAgICJzdWJpcyIsICAgIyBTYW1lLCBidXQgZm9yIHN1YnRyYWN0
aW9uLgogICAgICAib3JpcyIsICAgICMgU2FtZSwgYnV0IGZvciBiaXR3aXNlIG9yLgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiCmluZGV4IDBkYzQ0YzIz
ZGZiMmJhZDM2NWEwZmViNTcxMDNhZDJmZDMzZmVhZTQuLjY3ZjUyNzFhNTM3NWFjMWYxMzQ0Yjg2
OTM3NWI3ODBhODdhY2I5OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL3JlZ2lzdGVycy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFz
bS9yZWdpc3RlcnMucmIKQEAgLTU4LDcgKzU4LDggQEAgR1BSUyA9CiAgICAgICJjc3I3IiwKICAg
ICAgImNzcjgiLAogICAgICAiY3NyOSIsCi0gICAgICJjc3IxMCIKKyAgICAgImNzcjEwIiwKKyAg
ICAgImludmFsaWRHUFIiCiAgICAgXQogCiBGUFJTID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9yaXNjLnJiCmluZGV4IDBmMDcyZTlmZDExZTE1ODVhYWYzZGQ4ZWIwNTBmZmQ5NDYy
MzlkZjIuLjM0NjQ1OTYyZjc0MzA1ZjM2ZDU4YzlmMjdkNGU0NGViZGI1MzRmZWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYgpAQCAtMjU5LDggKzI1OSwxMiBAQCBk
ZWYgcmlzY0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzRG91YmxlKGxpc3QpCiAgICAgICAgICAgICBj
YXNlIG5vZGUub3Bjb2RlCiAgICAgICAgICAgICB3aGVuICJsb2FkZCIKICAgICAgICAgICAgICAg
ICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJsb2FkZCIsIFtu
b2RlLm9wZXJhbmRzWzBdLnJpc2NEb3VibGVBZGRyZXNzKG5ld0xpc3QpLCBub2RlLm9wZXJhbmRz
WzFdXSwgbm9kZS5hbm5vdGF0aW9uKQorICAgICAgICAgICAgd2hlbiAibG9hZGYiCisgICAgICAg
ICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibG9h
ZGYiLCBbbm9kZS5vcGVyYW5kc1swXS5yaXNjRG91YmxlQWRkcmVzcyhuZXdMaXN0KSwgbm9kZS5v
cGVyYW5kc1sxXV0sIG5vZGUuYW5ub3RhdGlvbikKICAgICAgICAgICAgIHdoZW4gInN0b3JlZCIK
ICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmln
aW4sICJzdG9yZWQiLCBbbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5vcGVyYW5kc1sxXS5yaXNjRG91
YmxlQWRkcmVzcyhuZXdMaXN0KV0sIG5vZGUuYW5ub3RhdGlvbikKKyAgICAgICAgICAgIHdoZW4g
InN0b3JlZiIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2Rl
LmNvZGVPcmlnaW4sICJzdG9yZWYiLCBbbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5vcGVyYW5kc1sx
XS5yaXNjRG91YmxlQWRkcmVzcyhuZXdMaXN0KV0sIG5vZGUuYW5ub3RhdGlvbikKICAgICAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKICAgICAgICAgICAgIGVu
ZApAQCAtMzY5LDcgKzM3Myw3IEBAIGRlZiByaXNjTG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVzKGxp
c3QsIHZhbGlkSW1tZWRpYXRlcywgdmFsaWRMb2dpY2FsSW1tZWRpYXRlcykKICAgICAgICAgaWYg
bm9kZS5pc19hPyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgYW5ub3RhdGlvbiA9IG5vZGUuYW5u
b3RhdGlvbgogICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQotICAgICAgICAgICAgd2hlbiAi
bW92ZSIKKyAgICAgICAgICAgIHdoZW4gIm1vdmUiLCAibW92ZWlpIgogICAgICAgICAgICAgICAg
IG5ld0xpc3QgPDwgbm9kZQogICAgICAgICAgICAgd2hlbiAiYWRkaSIsICJhZGRwIiwgImFkZHEi
LCAiYWRkaXMiLCAic3ViaSIsICJzdWJwIiwgInN1YnEiLCAic3ViaXMiCiAgICAgICAgICAgICAg
ICAgaWYgbm9kZS5vcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUgYW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKaW5kZXggMjMxMjg5NGRhNDdmYWQ5YzIzYTg2
YzIzMWY2MGJjYmEzNzc1YTMxMS4uZjU0MTg4NzdlZTY0ZDExZTkwYWY2MTg2ODkwMzZjMzU3YmM2
NjBhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaApAQCAt
MTYyLDggKzE2Miw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IE51
bGxUYWcgPSAgICAgICAgIDB4ZmZmZmZmZmQ7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJf
dCBVbmRlZmluZWRUYWcgPSAgICAweGZmZmZmZmZjOwogICAgIHN0YXRpYyBjb25zdGV4cHIgdWlu
dDMyX3QgQ2VsbFRhZyA9ICAgICAgICAgMHhmZmZmZmZmYjsKLSAgICBzdGF0aWMgY29uc3RleHBy
IHVpbnQzMl90IEVtcHR5VmFsdWVUYWcgPSAgIDB4ZmZmZmZmZmE7Ci0gICAgc3RhdGljIGNvbnN0
ZXhwciB1aW50MzJfdCBEZWxldGVkVmFsdWVUYWcgPSAweGZmZmZmZmY5OworICAgIHN0YXRpYyBj
b25zdGV4cHIgdWludDMyX3QgV2FzbVRhZyA9ICAgICAgICAgMHhmZmZmZmZmYTsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVpbnQzMl90IEVtcHR5VmFsdWVUYWcgPSAgIDB4ZmZmZmZmZjk7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBEZWxldGVkVmFsdWVUYWcgPSAweGZmZmZmZmY4Owog
CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBMb3dlc3RUYWcgPSAgRGVsZXRlZFZhbHVl
VGFnOwogI2VuZGlmCkBAIC0xODAsNiArMTgxLDkgQEAgcHVibGljOgogICAgIGVudW0gRW5jb2Rl
QXNCaWdJbnQzMlRhZyB7IEVuY29kZUFzQmlnSW50MzIgfTsKICNlbmRpZgogICAgIGVudW0gRW5j
b2RlQXNEb3VibGVUYWcgeyBFbmNvZGVBc0RvdWJsZSB9OworI2lmIEVOQUJMRShXRUJBU1NFTUJM
WSkgJiYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBlbnVtIEVuY29kZUFzVW5ib3hlZEZsb2F0VGFn
IHsgRW5jb2RlQXNVbmJveGVkRmxvYXQgfTsKKyNlbmRpZgogCiAgICAgSlNWYWx1ZSgpOwogICAg
IEpTVmFsdWUoSlNOdWxsVGFnKTsKQEAgLTE5MSw2ICsxOTUsOSBAQCBwdWJsaWM6CiAjaWYgVVNF
KEJJR0lOVDMyKQogICAgIEpTVmFsdWUoRW5jb2RlQXNCaWdJbnQzMlRhZywgaW50MzJfdCk7CiAj
ZW5kaWYKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
SlNWYWx1ZShFbmNvZGVBc1VuYm94ZWRGbG9hdFRhZywgZmxvYXQpOworI2VuZGlmCiAKICAgICAv
LyBOdW1iZXJzCiAgICAgSlNWYWx1ZShFbmNvZGVBc0RvdWJsZVRhZywgZG91YmxlKTsKQEAgLTU5
Miw2ICs1OTksMTMgQEAgQUxXQVlTX0lOTElORSBKU1ZhbHVlIGpzQmlnSW50MzIoaW50MzJfdCBp
bnRWYWx1ZSkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBVU0UoSlNW
QUxVRTMyXzY0KQorQUxXQVlTX0lOTElORSBKU1ZhbHVlIHdhc21VbmJveGVkRmxvYXQoZmxvYXQg
ZikKK3sKKyAgICByZXR1cm4gSlNWYWx1ZShKU1ZhbHVlOjpFbmNvZGVBc1VuYm94ZWRGbG9hdCwg
Zik7Cit9CisjZW5kaWYKKwogQUxXQVlTX0lOTElORSBKU1ZhbHVlIGpzRG91YmxlTnVtYmVyKGRv
dWJsZSBkKQogewogICAgIEFTU0VSVChKU1ZhbHVlKEpTVmFsdWU6OkVuY29kZUFzRG91YmxlLCBk
KS5pc051bWJlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ0pTVmFsdWVJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NK
U1ZhbHVlSW5saW5lcy5oCmluZGV4IDk2MDlkMDliZWVhYTIwZjQzN2RkYTFmOWEwNjQxOTJkZWNm
YzAxYjcuLjg4MTAzYzAxZTc4MzkzOTRhM2U4NTAyN2I1MzE5ZmRhNzE5Zjc1ODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaApAQCAt
NjE5LDYgKzYxOSwxMyBAQCBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShFbmNvZGVBc0JpZ0ludDMy
VGFnLCBpbnQzMl90IHZhbHVlKQogfQogI2VuZGlmIC8vIFVTRShCSUdJTlQzMikKIAorI2lmIEVO
QUJMRShXRUJBU1NFTUJMWSkgJiYgVVNFKEpTVkFMVUUzMl82NCkKK2lubGluZSBKU1ZhbHVlOjpK
U1ZhbHVlKEVuY29kZUFzVW5ib3hlZEZsb2F0VGFnLCBmbG9hdCB2YWx1ZSkKK3sKKyAgICB1LmFz
Qml0cy5wYXlsb2FkID0gYml0d2lzZV9jYXN0PGludDMyX3Q+KHZhbHVlKTsKK30KKyNlbmRpZgor
CiBpbmxpbmUgaW50NjRfdCB0cnlDb252ZXJ0VG9JbnQ1Mihkb3VibGUgbnVtYmVyKQogewogICAg
IGlmIChudW1iZXIgIT0gbnVtYmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21BaXJJUkdlbmVyYXRvci5jcHAKaW5kZXggMDI2MzFhMjEzNzlkMjMyZGZhYzBiYTA2NmY1
YzMwNDc4YjNmMThiMS4uNmQzMTQxZWU5NjQ4ZTM1ZTFiODRhMmI0OTc1ZGFkNzlhMjE0NGQ4MyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3Iu
Y3BwCkBAIC04NDAsNiArODQwLDE1IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1l
IEZ1bmN0aW9uPgogICAgIHZvaWQgZm9yRWFjaExpdmVWYWx1ZShGdW5jdGlvbik7CiAKKyAgICBi
b29sIHVzZVNpZ25hbGluZ01lbW9yeSgpIGNvbnN0CisgICAgeworI2lmIEVOQUJMRShXRUJBU1NF
TUJMWV9TSUdOQUxJTkdfTUVNT1JZKQorICAgICAgICByZXR1cm4gbV9tb2RlID09IE1lbW9yeU1v
ZGU6OlNpZ25hbGluZzsKKyNlbHNlCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAg
IH0KKwogICAgIEZ1bmN0aW9uUGFyc2VyPEFpcklSR2VuZXJhdG9yPiogbV9wYXJzZXIgeyBudWxs
cHRyIH07CiAgICAgY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mIG1faW5mbzsKICAgICBjb25zdCBN
ZW1vcnlNb2RlIG1fbW9kZSB7IE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nIH07CkBAIC05NTcs
NyArOTY2LDcgQEAgQWlySVJHZW5lcmF0b3I6OkFpcklSR2VuZXJhdG9yKGNvbnN0IE1vZHVsZUlu
Zm9ybWF0aW9uJiBpbmZvLCBCMzo6UHJvY2VkdXJlJiBwcm8KICAgICBpZiAoIUNvbnRleHQ6OnVz
ZUZhc3RUTFMoKSkKICAgICAgICAgbV9jb2RlLnBpblJlZ2lzdGVyKG1fd2FzbUNvbnRleHRJbnN0
YW5jZUdQUik7CiAKLSAgICBpZiAobW9kZSAhPSBNZW1vcnlNb2RlOjpTaWduYWxpbmcpIHsKKyAg
ICBpZiAobW9kZSA9PSBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykgewogICAgICAgICBtX2Jv
dW5kc0NoZWNraW5nU2l6ZUdQUiA9IHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0
ZXI7CiAgICAgICAgIG1fY29kZS5waW5SZWdpc3RlcihtX2JvdW5kc0NoZWNraW5nU2l6ZUdQUik7
CiAgICAgfQpAQCAtMTc5Miw2ICsxODAxLDcgQEAgaW5saW5lIEFpcklSR2VuZXJhdG9yOjpFeHBy
ZXNzaW9uVHlwZSBBaXJJUkdlbmVyYXRvcjo6ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19N
RU1PUlkpCiAgICAgY2FzZSBNZW1vcnlNb2RlOjpTaWduYWxpbmc6IHsKICAgICAgICAgLy8gV2Un
dmUgdmlydHVhbGx5IG1hcHBlZCA0R2lCK3JlZHpvbmUgZm9yIHRoaXMgbWVtb3J5LiBPbmx5IHRo
ZSB1c2VyLWFsbG9jYXRlZCBwYWdlcyBhcmUgYWRkcmVzc2FibGUsIGNvbnRpZ3VvdXNseSBpbiBy
YW5nZSBbMCwgY3VycmVudF0sCiAgICAgICAgIC8vIGFuZCBldmVyeXRoaW5nIGFib3ZlIGlzIG1h
cHBlZCBQUk9UX05PTkUuIFdlIGRvbid0IG5lZWQgdG8gcGVyZm9ybSBhbnkgZXhwbGljaXQgYm91
bmRzIGNoZWNrIGluIHRoZSA0R2lCIHJhbmdlIGJlY2F1c2UgV2ViQXNzZW1ibHkgcmVnaXN0ZXIK
QEAgLTE4MTgsNiArMTgyOCw3IEBAIGlubGluZSBBaXJJUkdlbmVyYXRvcjo6RXhwcmVzc2lvblR5
cGUgQWlySVJHZW5lcmF0b3I6OmVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyCiAgICAgICAgIH0K
ICAgICAgICAgYnJlYWs7CiAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAgYXBwZW5kKEFkZDY0
LCBUbXAobV9tZW1vcnlCYXNlR1BSKSwgcmVzdWx0KTsKQEAgLTM2OTMsNyArMzcwNCw3IEBAIGF1
dG8gQWlySVJHZW5lcmF0b3I6OmFkZENhbGwodWludDMyX3QgZnVuY3Rpb25JbmRleCwgY29uc3Qg
VHlwZURlZmluaXRpb24mIHNpZ25hCiAgICAgICAgIGF1dG8qIHBhdGNocG9pbnQgPSBwYWlyLmZp
cnN0OwogICAgICAgICBhdXRvIGV4Y2VwdGlvbkhhbmRsZSA9IHBhaXIuc2Vjb25kOwogICAgICAg
ICAvLyBXZSBuZWVkIHRvIGNsb2JiZXIgdGhlIHNpemUgcmVnaXN0ZXIgc2luY2UgdGhlIExMSW50
IGFsd2F5cyBib3VuZHMgY2hlY2tzCi0gICAgICAgIGlmIChtX21vZGUgPT0gTWVtb3J5TW9kZTo6
U2lnbmFsaW5nIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQoKSkKKyAgICAgICAgaWYgKHVzZVNp
Z25hbGluZ01lbW9yeSgpIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQoKSkKICAgICAgICAgICAg
IHBhdGNocG9pbnQtPmNsb2JiZXJMYXRlKFJlZ2lzdGVyU2V0IHsgUGlubmVkUmVnaXN0ZXJJbmZv
OjpnZXQoKS5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlciB9KTsKICAgICAgICAgcGF0Y2hwb2lu
dC0+c2V0R2VuZXJhdG9yKFs9LCB0aGlzXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IEIzOjpT
dGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgewogICAgICAgICAgICAgQWxsb3dNYWNy
b1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCmluZGV4IGE3NGVjNjE5NWJl
YWU4MzhkM2NlMDBlODBiZTdiZTMwNWI3OTk3MzAuLjZlZDNlZDY0ODI1M2E1Njg4MmUwY2FjMjZm
M2I2OTAzYTg3Y2MzMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21CM0lSR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
QjNJUkdlbmVyYXRvci5jcHAKQEAgLTUyMyw2ICs1MjMsMTUgQEAgcHJpdmF0ZToKICAgICAgICAg
cmV0dXJuIHNldChkc3QsIGdldChzcmMpKTsKICAgICB9CiAKKyAgICBib29sIHVzZVNpZ25hbGlu
Z01lbW9yeSgpIGNvbnN0CisgICAgeworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdf
TUVNT1JZKQorICAgICAgICByZXR1cm4gbV9tb2RlID09IE1lbW9yeU1vZGU6OlNpZ25hbGluZzsK
KyNlbHNlCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgIH0KKwogICAgIEZ1bmN0
aW9uUGFyc2VyPEIzSVJHZW5lcmF0b3I+KiBtX3BhcnNlciB7IG51bGxwdHIgfTsKICAgICBjb25z
dCBNb2R1bGVJbmZvcm1hdGlvbiYgbV9pbmZvOwogICAgIGNvbnN0IE1lbW9yeU1vZGUgbV9tb2Rl
IHsgTWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcgfTsKQEAgLTYzNiw3ICs2NDUsNyBAQCBCM0lS
R2VuZXJhdG9yOjpCM0lSR2VuZXJhdG9yKGNvbnN0IE1vZHVsZUluZm9ybWF0aW9uJiBpbmZvLCBQ
cm9jZWR1cmUmIHByb2NlZHVyZQogICAgIGlmICghQ29udGV4dDo6dXNlRmFzdFRMUygpKQogICAg
ICAgICBtX3Byb2MucGluUmVnaXN0ZXIobV93YXNtQ29udGV4dEluc3RhbmNlR1BSKTsKIAotICAg
IGlmIChtb2RlICE9IE1lbW9yeU1vZGU6OlNpZ25hbGluZykgeworICAgIGlmIChtb2RlID09IE1l
bW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nKSB7CiAgICAgICAgIG1fYm91bmRzQ2hlY2tpbmdTaXpl
R1BSID0gcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlcjsKICAgICAgICAgbV9w
cm9jLnBpblJlZ2lzdGVyKG1fYm91bmRzQ2hlY2tpbmdTaXplR1BSKTsKICAgICB9CkBAIC02NDgs
OSArNjU3LDExIEBAIEIzSVJHZW5lcmF0b3I6OkIzSVJHZW5lcmF0b3IoY29uc3QgTW9kdWxlSW5m
b3JtYXRpb24mIGluZm8sIFByb2NlZHVyZSYgcHJvY2VkdXJlCiAgICAgICAgICAgICBjYXNlIE1l
bW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nOgogICAgICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQo
cGlubmVkR1BSLCBtX2JvdW5kc0NoZWNraW5nU2l6ZUdQUiA9PSBwaW5uZWRHUFIpOwogICAgICAg
ICAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZ
KQogICAgICAgICAgICAgY2FzZSBNZW1vcnlNb2RlOjpTaWduYWxpbmc6CiAgICAgICAgICAgICAg
ICAgQVNTRVJUX1VOVVNFRChwaW5uZWRHUFIsIEludmFsaWRHUFJSZWcgPT0gcGlubmVkR1BSKTsK
ICAgICAgICAgICAgICAgICBicmVhazsKKyNlbmRpZgogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgdGhpcy0+ZW1pdEV4Y2VwdGlvbkNoZWNrKGppdCwgRXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3Vu
ZHNNZW1vcnlBY2Nlc3MpOwogICAgICAgICB9KTsKQEAgLTkxMiw5ICs5MjMsMTMgQEAgYXV0byBC
M0lSR2VuZXJhdG9yOjphZGRBcmd1bWVudHMoY29uc3QgVHlwZURlZmluaXRpb24mIHNpZ25hdHVy
ZSkgLT4gUGFydGlhbFJlc3UKICAgICAgICAgQjM6OlR5cGUgdHlwZSA9IHRvQjNUeXBlKHNpZ25h
dHVyZS5hczxGdW5jdGlvblNpZ25hdHVyZT4oKS0+YXJndW1lbnRUeXBlKGkpKTsKICAgICAgICAg
QjM6OlZhbHVlKiBhcmd1bWVudDsKICAgICAgICAgYXV0byByZXAgPSB3YXNtQ2FsbEluZm8ucGFy
YW1zW2ldOwotICAgICAgICBpZiAocmVwLmlzUmVnKCkpIHsKLSAgICAgICAgICAgIGFyZ3VtZW50
ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6QXJndW1lbnRSZWdWYWx1ZT4obV9wcm9j
LCBPcmlnaW4oKSwgcmVwLnJlZygpKTsKLSAgICAgICAgICAgIGlmICh0eXBlID09IEIzOjpJbnQz
MiB8fCB0eXBlID09IEIzOjpGbG9hdCkKKyAgICAgICAgaWYgKHJlcC5pc0dQUigpKSB7CisgICAg
ICAgICAgICBhcmd1bWVudCA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8QjM6OkFyZ3VtZW50
UmVnVmFsdWU+KG1fcHJvYywgT3JpZ2luKCksIHJlcC5qc3IoKS5wYXlsb2FkR1BSKCkpOworICAg
ICAgICAgICAgaWYgKHR5cGUgPT0gQjM6OkludDMyKQorICAgICAgICAgICAgICAgIGFyZ3VtZW50
ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6VmFsdWU+KG1fcHJvYywgQjM6OlRydW5j
LCBPcmlnaW4oKSwgYXJndW1lbnQpOworICAgICAgICB9IGVsc2UgaWYgKHJlcC5pc0ZQUigpKSB7
CisgICAgICAgICAgICBhcmd1bWVudCA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8QjM6OkFy
Z3VtZW50UmVnVmFsdWU+KG1fcHJvYywgT3JpZ2luKCksIHJlcC5mcHIoKSk7CisgICAgICAgICAg
ICBpZiAodHlwZSA9PSBCMzo6RmxvYXQpCiAgICAgICAgICAgICAgICAgYXJndW1lbnQgPSBtX2N1
cnJlbnRCbG9jay0+YXBwZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6VHJ1bmMsIE9yaWdp
bigpLCBhcmd1bWVudCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBBU1NFUlQocmVw
LmlzU3RhY2soKSk7CkBAIC0xNDQzLDYgKzE0NTgsNyBAQCBpbmxpbmUgVmFsdWUqIEIzSVJHZW5l
cmF0b3I6OmVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKFZhbHVlKiBwb2ludGVyLCB1aW50MzJf
dAogICAgICAgICBicmVhazsKICAgICB9CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFM
SU5HX01FTU9SWSkKICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzogewogICAgICAgICAv
LyBXZSd2ZSB2aXJ0dWFsbHkgbWFwcGVkIDRHaUIrcmVkem9uZSBmb3IgdGhpcyBtZW1vcnkuIE9u
bHkgdGhlIHVzZXItYWxsb2NhdGVkIHBhZ2VzIGFyZSBhZGRyZXNzYWJsZSwgY29udGlndW91c2x5
IGluIHJhbmdlIFswLCBjdXJyZW50XSwKICAgICAgICAgLy8gYW5kIGV2ZXJ5dGhpbmcgYWJvdmUg
aXMgbWFwcGVkIFBST1RfTk9ORS4gV2UgZG9uJ3QgbmVlZCB0byBwZXJmb3JtIGFueSBleHBsaWNp
dCBib3VuZHMgY2hlY2sgaW4gdGhlIDRHaUIgcmFuZ2UgYmVjYXVzZSBXZWJBc3NlbWJseSByZWdp
c3RlcgpAQCAtMTQ2MCw2ICsxNDc2LDcgQEAgaW5saW5lIFZhbHVlKiBCM0lSR2VuZXJhdG9yOjpl
bWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihWYWx1ZSogcG9pbnRlciwgdWludDMyX3QKICAgICAg
ICAgfQogICAgICAgICBicmVhazsKICAgICB9CisjZW5kaWYKICAgICB9CiAKICAgICBwb2ludGVy
ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBaRXh0MzIsIG9yaWdp
bigpLCBwb2ludGVyKTsKQEAgLTE0OTMsNyArMTUxMCw3IEBAIGlubGluZSB1aW50MzJfdCBzaXpl
T2ZMb2FkT3AoTG9hZE9wVHlwZSBvcCkKIAogaW5saW5lIEIzOjpLaW5kIEIzSVJHZW5lcmF0b3I6
Om1lbW9yeUtpbmQoQjM6Ok9wY29kZSBtZW1vcnlPcCkKIHsKLSAgICBpZiAobV9tb2RlID09IE1l
bW9yeU1vZGU6OlNpZ25hbGluZyB8fCBtX2luZm8ubWVtb3J5LmlzU2hhcmVkKCkpCisgICAgaWYg
KHVzZVNpZ25hbGluZ01lbW9yeSgpIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQoKSkKICAgICAg
ICAgcmV0dXJuIHRyYXBwaW5nKG1lbW9yeU9wKTsKICAgICByZXR1cm4gbWVtb3J5T3A7CiB9CkBA
IC0yOTc3LDcgKzI5OTQsNyBAQCBhdXRvIEIzSVJHZW5lcmF0b3I6OmFkZENhbGwodWludDMyX3Qg
ZnVuY3Rpb25JbmRleCwgY29uc3QgVHlwZURlZmluaXRpb24mIHNpZ25hdAogICAgICAgICAgICAg
ICAgIHBhdGNocG9pbnQtPmVmZmVjdHMucmVhZHNQaW5uZWQgPSB0cnVlOwogCiAgICAgICAgICAg
ICAgICAgLy8gV2UgbmVlZCB0byBjbG9iYmVyIHRoZSBzaXplIHJlZ2lzdGVyIHNpbmNlIHRoZSBM
TEludCBhbHdheXMgYm91bmRzIGNoZWNrcwotICAgICAgICAgICAgICAgIGlmIChtX21vZGUgPT0g
TWVtb3J5TW9kZTo6U2lnbmFsaW5nIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQoKSkKKyAgICAg
ICAgICAgICAgICBpZiAodXNlU2lnbmFsaW5nTWVtb3J5KCkgfHwgbV9pbmZvLm1lbW9yeS5pc1No
YXJlZCgpKQogICAgICAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyTGF0ZShSZWdp
c3RlclNldCB7IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCkuYm91bmRzQ2hlY2tpbmdTaXplUmVn
aXN0ZXIgfSk7CiAgICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKFt0aGlz
LCBoYW5kbGUsIHVubGlua2VkV2FzbVRvV2FzbUNhbGxzLCBmdW5jdGlvbkluZGV4XSAoQ0NhbGxI
ZWxwZXJzJiBqaXQsIGNvbnN0IEIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykg
ewogICAgICAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxs
b3dTY3JhdGNoKGppdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtQmluZGluZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQmluZGluZy5j
cHAKaW5kZXggZWRjNzBiZWEwOGFmMmI4MzJjMmYxOWVhZWI0NDZlYjJjNDU4ZGYzZS4uMzI3Mjg5
OTQ5YWRkODQ0MTMxZDBkMmQ2MjZmZjU4NTMwYmQxMjFkYiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21CaW5kaW5nLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkKIAogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkRpc2Fs
bG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIK
ICNpbmNsdWRlICJXYXNtQ2FsbGluZ0NvbnZlbnRpb24uaCIKICNpbmNsdWRlICJXYXNtSW5zdGFu
Y2UuaCIKQEAgLTQxLDE4ICs0MiwyMSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8
V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub1dhc20odW5zaQogewogICAg
IC8vIEZJWE1FOiBDb25zaWRlciB1bmlxdWlmeSB0aGUgc3R1YnMgYmFzZWQgb24gc2lnbmF0dXJl
ICsgaW5kZXggdG8gc2VlIGlmIHRoaXMgc2F2ZXMgbWVtb3J5LgogICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQxNTcKLQotICAgIGNvbnN0IFBpbm5lZFJl
Z2lzdGVySW5mbyYgcGlubmVkUmVncyA9IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCk7CiAgICAg
SklUIGppdDsKIAogICAgIEdQUlJlZyBzY3JhdGNoID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCku
cHJvbG9ndWVTY3JhdGNoR1BSc1swXTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIEdQUlJl
ZyBiYXNlTWVtb3J5ID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BS
c1sxXTsKKyAgICBHUFJSZWcgc2l6ZVJlZ0FzU2NyYXRjaCA9IHdhc21DYWxsaW5nQ29udmVudGlv
bigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMl07CisjZWxzZQorICAgIGNvbnN0IFBpbm5lZFJlZ2lz
dGVySW5mbyYgcGlubmVkUmVncyA9IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCk7CiAgICAgR1BS
UmVnIGJhc2VNZW1vcnkgPSBwaW5uZWRSZWdzLmJhc2VNZW1vcnlQb2ludGVyOwotICAgIEFTU0VS
VChiYXNlTWVtb3J5ICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7Ci0gICAgQVNTRVJUKGJhc2VN
ZW1vcnkgIT0gc2NyYXRjaCk7Ci0gICAgQVNTRVJUKHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdT
aXplUmVnaXN0ZXIgIT0gYmFzZU1lbW9yeSk7Ci0gICAgQVNTRVJUKHBpbm5lZFJlZ3MuYm91bmRz
Q2hlY2tpbmdTaXplUmVnaXN0ZXIgIT0gc2NyYXRjaCk7CiAgICAgR1BSUmVnIHNpemVSZWdBc1Nj
cmF0Y2ggPSBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyOworI2VuZGlmCisg
ICAgQVNTRVJUKGJhc2VNZW1vcnkgIT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsKICAgICBBU1NF
UlQoc2l6ZVJlZ0FzU2NyYXRjaCAhPSBHUFJSZWc6OkludmFsaWRHUFJSZWcpOworICAgIEFTU0VS
VChzY3JhdGNoICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7CisgICAgQVNTRVJUKG5vT3Zlcmxh
cChzY3JhdGNoLCBiYXNlTWVtb3J5LCBzaXplUmVnQXNTY3JhdGNoKSk7CiAKICAgICAvLyBCMydz
IGNhbGwgY29kZWdlbiBlbnN1cmVzIHRoYXQgdGhlIEpTQ2VsbCBpcyBhIFdlYkFzc2VtYmx5RnVu
Y3Rpb24uCiAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHNpemVSZWdBc1NjcmF0Y2gp
OyAvLyBPbGQgSW5zdGFuY2UqCkBAIC02NSw2ICs2OSw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1i
bGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvV2FzbSh1
bnNpCiAgICAgaml0LmxvYWRQdHIoSklUOjpBZGRyZXNzKHNpemVSZWdBc1NjcmF0Y2gsIEluc3Rh
bmNlOjpvZmZzZXRPZkNhY2hlZFN0YWNrTGltaXQoKSksIHNpemVSZWdBc1NjcmF0Y2gpOwogICAg
IGppdC5zdG9yZVB0cihzaXplUmVnQXNTY3JhdGNoLCBKSVQ6OkFkZHJlc3MoYmFzZU1lbW9yeSwg
SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkU3RhY2tMaW1pdCgpKSk7CiAKKyNpZiAhQ1BVKEFSTSkg
Ly8gQVJNIGhhcyBubyBwaW5uZWQgcmVnaXN0ZXJzIGZvciBXYXNtIE1lbW9yeSwgc28gbm8gbmVl
ZCB0byBzZXQgdGhlbSB1cAogICAgIC8vIEZJWE1FIHRoZSBmb2xsb3dpbmcgY29kZSBhc3N1bWVz
IHRoYXQgYWxsIFdhc206Okluc3RhbmNlIGhhdmUgdGhlIHNhbWUgcGlubmVkIHJlZ2lzdGVycy4g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjk1MgogICAgIC8vIFNl
dCB1cCB0aGUgY2FsbGVlJ3MgYmFzZU1lbW9yeSByZWdpc3RlciBhcyB3ZWxsIGFzIHRoZSBtZW1v
cnkgc2l6ZSByZWdpc3RlcnMuCiAgICAgewpAQCAtNzIsNiArNzcsNyBAQCBFeHBlY3RlZDxNYWNy
b0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21U
b1dhc20odW5zaQogICAgICAgICBqaXQubG9hZFB0cihKSVQ6OkFkZHJlc3MoYmFzZU1lbW9yeSwg
V2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNlTWVtb3J5KTsgLy8g
V2FzbTo6TWVtb3J5OjpUYWdnZWRBcnJheVN0b3JhZ2VQdHI8dm9pZD4gKHZvaWQqKS4KICAgICAg
ICAgaml0LmNhZ2VDb25kaXRpb25hbGx5QW5kVW50YWcoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgYmFz
ZU1lbW9yeSwgcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3Rlciwgd2FzbUNhbGxp
bmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1sxXSk7CiAgICAgfQorI2VuZGlmCiAK
ICAgICAvLyBUYWlsIGNhbGwgaW50byB0aGUgY2FsbGVlIFdlYkFzc2VtYmx5IGZ1bmN0aW9uLgog
ICAgIGppdC5sb2FkUHRyKEpJVDo6QWRkcmVzcyhzY3JhdGNoKSwgc2NyYXRjaCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuY3BwCmluZGV4IGEzMjFjNTJmMTVlY2E1MjIx
M2VjZDZlZTkyMTcyNzE5ODExYjMyNWEuLjMyMDJmNTQ4MGNhNDEyZjI3Mjk0OWUxNTRiMmIyMjZl
ZTY5MDBjYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxs
ZWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuY3BwCkBA
IC0xMzEsNiArMTMxLDggQEAgUmVnaXN0ZXJBdE9mZnNldExpc3QqIExMSW50Q2FsbGVlOjpjYWxs
ZWVTYXZlUmVnaXN0ZXJzKCkKICAgICAgICAgcmVnaXN0ZXJzLnNldChHUFJJbmZvOjpyZWdDUzIp
OyAvLyBQQgogI2VsaWYgQ1BVKEFSTTY0KSB8fCBDUFUoUklTQ1Y2NCkKICAgICAgICAgcmVnaXN0
ZXJzLnNldChHUFJJbmZvOjpyZWdDUzcpOyAvLyBQQgorI2VsaWYgQ1BVKEFSTSkKKyAgICAgICAg
cmVnaXN0ZXJzLnNldChHUFJJbmZvOjpyZWdDUzEpOyAvLyBQQgogI2Vsc2UKICNlcnJvciBVbnN1
cHBvcnRlZCBhcmNoaXRlY3R1cmUuCiAjZW5kaWYKQEAgLTE1OCw2ICsxNjAsNyBAQCBjb25zdCBX
YXNtSW5zdHJ1Y3Rpb24qIExMSW50Q2FsbGVlOjpvdXRPZkxpbmVKdW1wVGFyZ2V0KGNvbnN0IFdh
c21JbnN0cnVjdGlvbiogcAogICAgIHJldHVybiBtX2luc3RydWN0aW9ucy0+YXQob2Zmc2V0ICsg
dGFyZ2V0KS5wdHIoKTsKIH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9CM0pJVCkKIHZvaWQg
T3B0aW1pemluZ0pJVENhbGxlZTo6bGlua0V4Y2VwdGlvbkhhbmRsZXJzKFZlY3RvcjxVbmxpbmtl
ZEhhbmRsZXJJbmZvPiB1bmxpbmtlZEV4Y2VwdGlvbkhhbmRsZXJzLCBWZWN0b3I8Q29kZUxvY2F0
aW9uTGFiZWw8RXhjZXB0aW9uSGFuZGxlclB0clRhZz4+IGV4Y2VwdGlvbkhhbmRsZXJMb2NhdGlv
bnMpCiB7CiAgICAgc2l6ZV90IGNvdW50ID0gdW5saW5rZWRFeGNlcHRpb25IYW5kbGVycy5zaXpl
KCk7CkBAIC0xODQsNyArMTg3LDcgQEAgY29uc3QgU3RhY2tNYXAmIE9wdGltaXppbmdKSVRDYWxs
ZWU6OnN0YWNrbWFwKENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleCkgY29uc3QKICAgICBSRUxF
QVNFX0FTU0VSVChpdGVyICE9IG1fc3RhY2ttYXBzLmVuZCgpKTsKICAgICByZXR1cm4gaXRlci0+
dmFsdWU7CiB9Ci0KKyNlbmRpZgogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlR3JvdXAuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZUdyb3VwLmNwcAppbmRleCAxZWE0
NWNhNGE2ZTkxZDAzYTk3MGViYjVkNWZkMmIyY2Y5ZGZjZjBhLi41MTlkMjA5NmFkNjI3Y2JiM2Jl
ODgzOWQ3ZTQ4MmI4MTk4OGZiYTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtQ2FsbGVlR3JvdXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21DYWxsZWVHcm91cC5jcHAKQEAgLTE2MCwxNyArMTYwLDIxIEBAIHZvaWQgQ2FsbGVlR3Jv
dXA6OmNvbXBpbGVBc3luYyhDb250ZXh0KiBjb250ZXh0LCBBc3luY0NvbXBpbGF0aW9uQ2FsbGJh
Y2smJiB0YXNrCiAKIGJvb2wgQ2FsbGVlR3JvdXA6OmlzU2FmZVRvUnVuKE1lbW9yeU1vZGUgbWVt
b3J5TW9kZSkKIHsKKyAgICBVTlVTRURfUEFSQU0obWVtb3J5TW9kZSk7CisKICAgICBpZiAoIXJ1
bm5hYmxlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHN3aXRjaCAobV9tb2RlKSB7
CiAgICAgY2FzZSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZzoKICAgICAgICAgcmV0
dXJuIHRydWU7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAg
Y2FzZSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmc6CiAgICAgICAgIC8vIENvZGUgYmVpbmcg
aW4gU2lnbmFsaW5nIG1vZGUgbWVhbnMgdGhhdCBpdCBwZXJmb3JtcyBubyBib3VuZHMgY2hlY2tz
LgogICAgICAgICAvLyBJdHMgbWVtb3J5LCBldmVuIGlmIGVtcHR5LCBhYnNvbHV0ZWx5IG11c3Qg
YWxzbyBiZSBpbiBTaWduYWxpbmcgbW9kZQogICAgICAgICAvLyBiZWNhdXNlIHRoZSBwYWdlIHBy
b3RlY3Rpb24gZGV0ZWN0cyBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLgogICAgICAgICByZXR1cm4g
bWVtb3J5TW9kZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmc7CisjZW5kaWYKICAgICB9
CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRp
b24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9u
LmNwcAppbmRleCAyMDNjODQzYWU4ZTYzZWNkZmI0ODlhNGFkNjY1M2VlZmUxMWRkNGJjLi5lYjA5
MDk1ODE4NDAxODgzOTNkNWNlZjM3MzQxODRiYjIxMjg4NWRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5jcHAKQEAgLTQwLDcg
KzQwLDcgQEAgY29uc3QgSlNDYWxsaW5nQ29udmVudGlvbiYganNDYWxsaW5nQ29udmVudGlvbigp
CiAgICAgICAgIFJlZ2lzdGVyU2V0IGNhbGxlclNhdmVSZWdpc3RlcnMgPSBSZWdpc3RlclNldDo6
YWxsUmVnaXN0ZXJzKCk7CiAgICAgICAgIGNhbGxlclNhdmVSZWdpc3RlcnMuZXhjbHVkZShSZWdp
c3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpKTsKIAotICAgICAgICBzdGF0aWNKU0NhbGxp
bmdDb252ZW50aW9uLmNvbnN0cnVjdChWZWN0b3I8UmVnPigpLCBWZWN0b3I8UmVnPigpLCBSZWdp
c3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpLCBXVEZNb3ZlKGNhbGxlclNhdmVSZWdpc3Rl
cnMpKTsKKyAgICAgICAgc3RhdGljSlNDYWxsaW5nQ29udmVudGlvbi5jb25zdHJ1Y3QoVmVjdG9y
PEpTVmFsdWVSZWdzPigpLCBWZWN0b3I8RlBSUmVnPigpLCBSZWdpc3RlclNldDo6Y2FsbGVlU2F2
ZVJlZ2lzdGVycygpLCBXVEZNb3ZlKGNhbGxlclNhdmVSZWdpc3RlcnMpKTsKICAgICB9KTsKIAog
ICAgIHJldHVybiBzdGF0aWNKU0NhbGxpbmdDb252ZW50aW9uOwpAQCAtNTEsMzEgKzUxLDUxIEBA
IGNvbnN0IFdhc21DYWxsaW5nQ29udmVudGlvbiYgd2FzbUNhbGxpbmdDb252ZW50aW9uKCkKICAg
ICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPFdhc21DYWxsaW5nQ29udmVudGlvbj4gc3RhdGlj
V2FzbUNhbGxpbmdDb252ZW50aW9uOwogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBzdGF0aWNX
YXNtQ2FsbGluZ0NvbnZlbnRpb25GbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKHN0YXRpY1dhc21D
YWxsaW5nQ29udmVudGlvbkZsYWcsIFtdICgpIHsKLSAgICAgICAgVmVjdG9yPFJlZz4gZ3ByQXJn
dW1lbnRSZWdpc3RlcnMoR1BSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyk7Ci0gICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVn
aXN0ZXJzOyArK2kpCi0gICAgICAgICAgICBncHJBcmd1bWVudFJlZ2lzdGVyc1tpXSA9IEdQUklu
Zm86OnRvQXJndW1lbnRSZWdpc3RlcihpKTsKKyNpZiBVU0UoSlNWQUxVRTY0KSAvLyBPbmUgdmFs
dWUgcGVyIEdQUgorICAgICAgICBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudEpT
UnMgPSBHUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzOworI2VsaWYgVVNFKEpTVkFM
VUUzMl82NCkgLy8gT25lIHZhbHVlIHBlciBjb25zZWN1dGl2ZSBHUFIgcGFpcgorICAgICAgICBj
b25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudEpTUnMgPSBHUFJJbmZvOjpudW1iZXJP
ZkFyZ3VtZW50UmVnaXN0ZXJzIC8gMjsKKyNlbmRpZgorICAgICAgICBWZWN0b3I8SlNWYWx1ZVJl
Z3M+IGpzckFyZ3VtZW50UmVnaXN0ZXJzKG51bWJlck9mQXJndW1lbnRKU1JzKTsKKyAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mQXJndW1lbnRKU1JzOyArK2kpIHsKKyNp
ZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAganNyQXJndW1lbnRSZWdpc3RlcnNbaV0gPSBK
U1ZhbHVlUmVncyB7IEdQUkluZm86OnRvQXJndW1lbnRSZWdpc3RlcihpKSB9OworI2VsaWYgVVNF
KEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIGpzckFyZ3VtZW50UmVnaXN0ZXJzW2ldID0gSlNW
YWx1ZVJlZ3MgeyBHUFJJbmZvOjp0b0FyZ3VtZW50UmVnaXN0ZXIoMiAqIGkgKyAxKSwgR1BSSW5m
bzo6dG9Bcmd1bWVudFJlZ2lzdGVyKDIgKiBpKSB9OworI2VuZGlmCisgICAgICAgIH0KIAotICAg
ICAgICBWZWN0b3I8UmVnPiBmcHJBcmd1bWVudFJlZ2lzdGVycyhGUFJJbmZvOjpudW1iZXJPZkFy
Z3VtZW50UmVnaXN0ZXJzKTsKKyAgICAgICAgVmVjdG9yPEZQUlJlZz4gZnByQXJndW1lbnRSZWdp
c3RlcnMoRlBSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyk7CiAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBGUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzOyAr
K2kpCiAgICAgICAgICAgICBmcHJBcmd1bWVudFJlZ2lzdGVyc1tpXSA9IEZQUkluZm86OnRvQXJn
dW1lbnRSZWdpc3RlcihpKTsKIAogICAgICAgICBSZWdpc3RlclNldCBzY3JhdGNoID0gUmVnaXN0
ZXJTZXQ6OmFsbEdQUnMoKTsKLSAgICAgICAgc2NyYXRjaC5leGNsdWRlKFJlZ2lzdGVyU2V0Ojpj
YWxsZWVTYXZlUmVnaXN0ZXJzKCkpOworICAgICAgICBzY3JhdGNoLmV4Y2x1ZGUoUmVnaXN0ZXJT
ZXQ6OnZtQ2FsbGVlU2F2ZVJlZ2lzdGVycygpKTsKICAgICAgICAgc2NyYXRjaC5leGNsdWRlKFJl
Z2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7CiAgICAgICAgIHNjcmF0Y2guZXhj
bHVkZShSZWdpc3RlclNldDo6cmVzZXJ2ZWRIYXJkd2FyZVJlZ2lzdGVycygpKTsKICAgICAgICAg
c2NyYXRjaC5leGNsdWRlKFJlZ2lzdGVyU2V0OjpzdGFja1JlZ2lzdGVycygpKTsKLSAgICAgICAg
Zm9yIChSZWcgcmVnIDogZ3ByQXJndW1lbnRSZWdpc3RlcnMpCi0gICAgICAgICAgICBzY3JhdGNo
LmNsZWFyKHJlZyk7CisgICAgICAgIGZvciAoSlNWYWx1ZVJlZ3MganNyIDoganNyQXJndW1lbnRS
ZWdpc3RlcnMpIHsKKyAgICAgICAgICAgIHNjcmF0Y2guY2xlYXIoanNyLnBheWxvYWRHUFIoKSk7
CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIHNjcmF0Y2guY2xlYXIoanNyLnRh
Z0dQUigpKTsKKyNlbmRpZgorICAgICAgICB9CiAKICAgICAgICAgVmVjdG9yPEdQUlJlZz4gc2Ny
YXRjaEdQUnM7CiAgICAgICAgIGZvciAoUmVnIHJlZyA6IHNjcmF0Y2gpCiAgICAgICAgICAgICBz
Y3JhdGNoR1BScy5hcHBlbmQocmVnLmdwcigpKTsKKworICAgICAgICAvLyBOZWVkIGF0IGxlYXN0
IG9uZSBKU1ZhbHVlIGFuZCBhbiBhZGRpdGlvbmFsIEdQUgorI2lmIFVTRShKU1ZBTFVFNjQpCiAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKHNjcmF0Y2hHUFJzLnNpemUoKSA+PSAyKTsKKyNlbGlmIFVT
RShKU1ZBTFVFMzJfNjQpCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKHNjcmF0Y2hHUFJzLnNpemUo
KSA+PSAzKTsKKyNlbmRpZgogCiAgICAgICAgIFJlZ2lzdGVyU2V0IGNhbGxlclNhdmVSZWdpc3Rl
cnMgPSBSZWdpc3RlclNldDo6YWxsUmVnaXN0ZXJzKCk7CiAgICAgICAgIGNhbGxlclNhdmVSZWdp
c3RlcnMuZXhjbHVkZShSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpKTsKIAotICAg
ICAgICBzdGF0aWNXYXNtQ2FsbGluZ0NvbnZlbnRpb24uY29uc3RydWN0KFdURk1vdmUoZ3ByQXJn
dW1lbnRSZWdpc3RlcnMpLCBXVEZNb3ZlKGZwckFyZ3VtZW50UmVnaXN0ZXJzKSwgV1RGTW92ZShz
Y3JhdGNoR1BScyksIFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCksIFdURk1vdmUo
Y2FsbGVyU2F2ZVJlZ2lzdGVycykpOworICAgICAgICBzdGF0aWNXYXNtQ2FsbGluZ0NvbnZlbnRp
b24uY29uc3RydWN0KFdURk1vdmUoanNyQXJndW1lbnRSZWdpc3RlcnMpLCBXVEZNb3ZlKGZwckFy
Z3VtZW50UmVnaXN0ZXJzKSwgV1RGTW92ZShzY3JhdGNoR1BScyksIFJlZ2lzdGVyU2V0OjpjYWxs
ZWVTYXZlUmVnaXN0ZXJzKCksIFdURk1vdmUoY2FsbGVyU2F2ZVJlZ2lzdGVycykpOwogICAgIH0p
OwogCiAgICAgcmV0dXJuIHN0YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKaW5kZXggNDI4
OGY4MDFkZTFiZTM0YjM4OTViYWYyZjNhYzU1MWVjNDhhYjU3NC4uYjY2MzkzZmQ5YzI1MmUwNzVl
MTJjNDg2Njc0ZWJiMjdiNWQ4YWZiOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKQEAgLTU3LDggKzU3LDEzIEBAIHN0cnVjdCBD
YWxsSW5mb3JtYXRpb24gewogICAgIHsKICAgICAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlc3VsdFJl
Z2lzdGVyczsKICAgICAgICAgZm9yIChWYWx1ZUxvY2F0aW9uIGxvYyA6IHJlc3VsdHMpIHsKLSAg
ICAgICAgICAgIGlmIChsb2MuaXNSZWcoKSkKLSAgICAgICAgICAgICAgICB1c2VkUmVzdWx0UmVn
aXN0ZXJzLnNldChsb2MucmVnKCkpOworICAgICAgICAgICAgaWYgKGxvYy5pc0dQUigpKSB7Cisg
ICAgICAgICAgICAgICAgdXNlZFJlc3VsdFJlZ2lzdGVycy5zZXQobG9jLmpzcigpLnBheWxvYWRH
UFIoKSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICB1c2VkUmVzdWx0
UmVnaXN0ZXJzLnNldChsb2MuanNyKCkudGFnR1BSKCkpOworI2VuZGlmCisgICAgICAgICAgICB9
IGVsc2UgaWYgKGxvYy5pc0ZQUigpKQorICAgICAgICAgICAgICAgIHVzZWRSZXN1bHRSZWdpc3Rl
cnMuc2V0KGxvYy5mcHIoKSk7CiAgICAgICAgIH0KIAogICAgICAgICBSZWdpc3RlckF0T2Zmc2V0
TGlzdCBzYXZlZFJlZ3ModXNlZFJlc3VsdFJlZ2lzdGVycywgUmVnaXN0ZXJBdE9mZnNldExpc3Q6
Olplcm9CYXNlZCk7CkBAIC03Nyw4ICs4Miw4IEBAIGNsYXNzIFdhc21DYWxsaW5nQ29udmVudGlv
biB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBoZWFkZXJTaXplSW5C
eXRlcyA9IENhbGxGcmFtZTo6aGVhZGVyU2l6ZUluUmVnaXN0ZXJzICogc2l6ZW9mKFJlZ2lzdGVy
KTsKIAotICAgIFdhc21DYWxsaW5nQ29udmVudGlvbihWZWN0b3I8UmVnPiYmIGdwcnMsIFZlY3Rv
cjxSZWc+JiYgZnBycywgVmVjdG9yPEdQUlJlZz4mJiBzY3JhdGNoZXMsIFJlZ2lzdGVyU2V0JiYg
Y2FsbGVlU2F2ZXMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVyU2F2ZXMpCi0gICAgICAgIDogZ3ByQXJn
cyhXVEZNb3ZlKGdwcnMpKQorICAgIFdhc21DYWxsaW5nQ29udmVudGlvbihWZWN0b3I8SlNWYWx1
ZVJlZ3M+JiYganNycywgVmVjdG9yPEZQUlJlZz4mJiBmcHJzLCBWZWN0b3I8R1BSUmVnPiYmIHNj
cmF0Y2hlcywgUmVnaXN0ZXJTZXQmJiBjYWxsZWVTYXZlcywgUmVnaXN0ZXJTZXQmJiBjYWxsZXJT
YXZlcykKKyAgICAgICAgOiBqc3JBcmdzKFdURk1vdmUoanNycykpCiAgICAgICAgICwgZnByQXJn
cyhXVEZNb3ZlKGZwcnMpKQogICAgICAgICAsIHByb2xvZ3VlU2NyYXRjaEdQUnMoV1RGTW92ZShz
Y3JhdGNoZXMpKQogICAgICAgICAsIGNhbGxlZVNhdmVSZWdpc3RlcnMoV1RGTW92ZShjYWxsZWVT
YXZlcykpCkBAIC04OCwxMCArOTMsMTEgQEAgcHVibGljOgogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKFdhc21DYWxsaW5nQ29udmVudGlvbik7CiAKIHByaXZhdGU6Ci0gICAgQXJndW1lbnRMb2Nh
dGlvbiBtYXJzaGFsbExvY2F0aW9uSW1wbChDYWxsUm9sZSByb2xlLCBjb25zdCBWZWN0b3I8UmVn
PiYgcmVnQXJncywgc2l6ZV90JiBjb3VudCwgc2l6ZV90JiBzdGFja09mZnNldCkgY29uc3QKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBSZWdUeXBlPgorICAgIEFyZ3VtZW50TG9jYXRpb24gbWFyc2hh
bGxMb2NhdGlvbkltcGwoQ2FsbFJvbGUgcm9sZSwgY29uc3QgVmVjdG9yPFJlZ1R5cGU+JiByZWdB
cmdzLCBzaXplX3QmIGNvdW50LCBzaXplX3QmIHN0YWNrT2Zmc2V0KSBjb25zdAogICAgIHsKICAg
ICAgICAgaWYgKGNvdW50IDwgcmVnQXJncy5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm4gQXJn
dW1lbnRMb2NhdGlvbjo6cmVnKHJlZ0FyZ3NbY291bnQrK10pOworICAgICAgICAgICAgcmV0dXJu
IEFyZ3VtZW50TG9jYXRpb24geyByZWdBcmdzW2NvdW50KytdIH07CiAKICAgICAgICAgY291bnQr
KzsKICAgICAgICAgQXJndW1lbnRMb2NhdGlvbiByZXN1bHQgPSByb2xlID09IENhbGxSb2xlOjpD
YWxsZXIgPyBBcmd1bWVudExvY2F0aW9uOjpzdGFja0FyZ3VtZW50KHN0YWNrT2Zmc2V0KSA6IEFy
Z3VtZW50TG9jYXRpb246OnN0YWNrKHN0YWNrT2Zmc2V0KTsKQEAgLTEwOSw3ICsxMTUsNyBAQCBw
cml2YXRlOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgIGNhc2Ug
VHlwZUtpbmQ6OlJlZjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKLSAgICAgICAg
ICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBncHJBcmdzLCBncEFyZ3VtZW50
Q291bnQsIHN0YWNrT2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9u
SW1wbChyb2xlLCBqc3JBcmdzLCBncEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KTsKICAgICAg
ICAgY2FzZSBUeXBlS2luZDo6RjMyOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6CiAgICAg
ICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwgZnByQXJncywgZnBBcmd1
bWVudENvdW50LCBzdGFja09mZnNldCk7CkBAIC0xNTQsOCArMTYwLDggQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIGNvbnN0IFZlY3RvcjxSZWc+IGdwckFy
Z3M7Ci0gICAgY29uc3QgVmVjdG9yPFJlZz4gZnByQXJnczsKKyAgICBjb25zdCBWZWN0b3I8SlNW
YWx1ZVJlZ3M+IGpzckFyZ3M7CisgICAgY29uc3QgVmVjdG9yPEZQUlJlZz4gZnByQXJnczsKICAg
ICBjb25zdCBWZWN0b3I8R1BSUmVnPiBwcm9sb2d1ZVNjcmF0Y2hHUFJzOwogICAgIGNvbnN0IFJl
Z2lzdGVyU2V0IGNhbGxlZVNhdmVSZWdpc3RlcnM7CiAgICAgY29uc3QgUmVnaXN0ZXJTZXQgY2Fs
bGVyU2F2ZVJlZ2lzdGVyczsKQEAgLTE3MCw4ICsxNzYsOCBAQCBwdWJsaWM6CiAgICAgLy8gV2Fz
bTo6Q29udGV4dConcyBpbnN0YW5jZS4KICAgICBzdGF0aWMgY29uc3RleHByIHB0cmRpZmZfdCBp
bnN0YW5jZVN0YWNrT2Zmc2V0ID0gQ2FsbEZyYW1lU2xvdDo6dGhpc0FyZ3VtZW50ICogc2l6ZW9m
KEVuY29kZWRKU1ZhbHVlKTsKIAotICAgIEpTQ2FsbGluZ0NvbnZlbnRpb24oVmVjdG9yPFJlZz4m
JiBncHJzLCBWZWN0b3I8UmVnPiYmIGZwcnMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVlU2F2ZXMsIFJl
Z2lzdGVyU2V0JiYgY2FsbGVyU2F2ZXMpCi0gICAgICAgIDogZ3ByQXJncyhXVEZNb3ZlKGdwcnMp
KQorICAgIEpTQ2FsbGluZ0NvbnZlbnRpb24oVmVjdG9yPEpTVmFsdWVSZWdzPiYmIGdwcnMsIFZl
Y3RvcjxGUFJSZWc+JiYgZnBycywgUmVnaXN0ZXJTZXQmJiBjYWxsZWVTYXZlcywgUmVnaXN0ZXJT
ZXQmJiBjYWxsZXJTYXZlcykKKyAgICAgICAgOiBqc3JBcmdzKFdURk1vdmUoZ3BycykpCiAgICAg
ICAgICwgZnByQXJncyhXVEZNb3ZlKGZwcnMpKQogICAgICAgICAsIGNhbGxlZVNhdmVSZWdpc3Rl
cnMoV1RGTW92ZShjYWxsZWVTYXZlcykpCiAgICAgICAgICwgY2FsbGVyU2F2ZVJlZ2lzdGVycyhX
VEZNb3ZlKGNhbGxlclNhdmVzKSkKQEAgLTE3OSwxMCArMTg1LDExIEBAIHB1YmxpYzoKIAogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKEpTQ2FsbGluZ0NvbnZlbnRpb24pOwogcHJpdmF0ZToKLSAg
ICBBcmd1bWVudExvY2F0aW9uIG1hcnNoYWxsTG9jYXRpb25JbXBsKENhbGxSb2xlIHJvbGUsIGNv
bnN0IFZlY3RvcjxSZWc+JiByZWdBcmdzLCBzaXplX3QmIGNvdW50LCBzaXplX3QmIHN0YWNrT2Zm
c2V0KSBjb25zdAorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBSZWdUeXBlPgorICAgIEFyZ3VtZW50
TG9jYXRpb24gbWFyc2hhbGxMb2NhdGlvbkltcGwoQ2FsbFJvbGUgcm9sZSwgY29uc3QgVmVjdG9y
PFJlZ1R5cGU+JiByZWdBcmdzLCBzaXplX3QmIGNvdW50LCBzaXplX3QmIHN0YWNrT2Zmc2V0KSBj
b25zdAogICAgIHsKICAgICAgICAgaWYgKGNvdW50IDwgcmVnQXJncy5zaXplKCkpCi0gICAgICAg
ICAgICByZXR1cm4gQXJndW1lbnRMb2NhdGlvbjo6cmVnKHJlZ0FyZ3NbY291bnQrK10pOworICAg
ICAgICAgICAgcmV0dXJuIEFyZ3VtZW50TG9jYXRpb24geyByZWdBcmdzW2NvdW50KytdIH07CiAK
ICAgICAgICAgY291bnQrKzsKICAgICAgICAgQXJndW1lbnRMb2NhdGlvbiByZXN1bHQgPSByb2xl
ID09IENhbGxSb2xlOjpDYWxsZXIgPyBBcmd1bWVudExvY2F0aW9uOjpzdGFja0FyZ3VtZW50KHN0
YWNrT2Zmc2V0KSA6IEFyZ3VtZW50TG9jYXRpb246OnN0YWNrKHN0YWNrT2Zmc2V0KTsKQEAgLTIw
MCw3ICsyMDcsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6
CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVm
TnVsbDoKLSAgICAgICAgICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBncHJB
cmdzLCBncEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybiBt
YXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBqc3JBcmdzLCBncEFyZ3VtZW50Q291bnQsIHN0YWNr
T2Zmc2V0KTsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgogICAgICAgICBjYXNlIFR5cGVL
aW5kOjpGNjQ6CiAgICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwg
ZnByQXJncywgZnBBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CkBAIC0yMjMsMTIgKzIzMCwx
MiBAQCBwdWJsaWM6CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2lnbmF0dXJlLmFz
PEZ1bmN0aW9uU2lnbmF0dXJlPigpLT5hcmd1bWVudENvdW50KCk7ICsraSkKICAgICAgICAgICAg
IHBhcmFtcy5hcHBlbmQobWFyc2hhbGxMb2NhdGlvbihyb2xlLCBzaWduYXR1cmUuYXM8RnVuY3Rp
b25TaWduYXR1cmU+KCktPmFyZ3VtZW50VHlwZShpKSwgZ3BBcmd1bWVudENvdW50LCBmcEFyZ3Vt
ZW50Q291bnQsIHN0YWNrT2Zmc2V0KSk7CiAKLSAgICAgICAgVmVjdG9yPEFyZ3VtZW50TG9jYXRp
b24sIDE+IHJlc3VsdHMgeyBBcmd1bWVudExvY2F0aW9uOjpyZWcoR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIpIH07CisgICAgICAgIFZlY3RvcjxBcmd1bWVudExvY2F0aW9uLCAxPiByZXN1bHRzIHsg
QXJndW1lbnRMb2NhdGlvbiB7IEpTUkluZm86OnJldHVyblZhbHVlSlNSIH0gfTsKICAgICAgICAg
cmV0dXJuIENhbGxJbmZvcm1hdGlvbihXVEZNb3ZlKHBhcmFtcyksIFdURk1vdmUocmVzdWx0cyks
IHN0YWNrT2Zmc2V0KTsKICAgICB9CiAKLSAgICBjb25zdCBWZWN0b3I8UmVnPiBncHJBcmdzOwot
ICAgIGNvbnN0IFZlY3RvcjxSZWc+IGZwckFyZ3M7CisgICAgY29uc3QgVmVjdG9yPEpTVmFsdWVS
ZWdzPiBqc3JBcmdzOworICAgIGNvbnN0IFZlY3RvcjxGUFJSZWc+IGZwckFyZ3M7CiAgICAgY29u
c3QgUmVnaXN0ZXJTZXQgY2FsbGVlU2F2ZVJlZ2lzdGVyczsKICAgICBjb25zdCBSZWdpc3RlclNl
dCBjYWxsZXJTYXZlUmVnaXN0ZXJzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21Gb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21G
b3JtYXQuaAppbmRleCBhY2U4NTdmZDIwYmY5ZjkwNWRkNDhkNTJlNzE1ZDkzYjJkNjg3NmZjLi5j
OGRmMzQxN2FkMzViMjQ1NDcyY2RiZmE2Mjk2NTU4ZDM5YjFiMDAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCkBAIC00MzksNyArNDM5LDkgQEAgc3RydWN0IEVudHJ5
cG9pbnQgewogc3RydWN0IEludGVybmFsRnVuY3Rpb24gewogICAgIFdURl9NQUtFX1NUUlVDVF9G
QVNUX0FMTE9DQVRFRDsKICAgICBWZWN0b3I8Q29kZUxvY2F0aW9uRGF0YUxhYmVsUHRyPFdhc21F
bnRyeVB0clRhZz4+IGNhbGxlZU1vdmVMb2NhdGlvbnM7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
X0IzSklUKQogICAgIFN0YWNrTWFwcyBzdGFja21hcHM7CisjZW5kaWYKICAgICBWZWN0b3I8VW5s
aW5rZWRIYW5kbGVySW5mbz4gZXhjZXB0aW9uSGFuZGxlcnM7CiAgICAgRW50cnlwb2ludCBlbnRy
eXBvaW50OwogICAgIHVuc2lnbmVkIG9zckVudHJ5U2NyYXRjaEJ1ZmZlclNpemUgeyAwIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcAppbmRleCA0
MTIwYWU2YTk0OTRmZDQ0NjlmOTdiOGY0MDg4ZDdmY2FjMzE4YTg4Li5mYjIxYzkyYmY4MWY2MTc5
ZWUzZGY1OWQ4YzkxYjk1NTAxZThiYjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21JbmRleE9yTmFtZS5jcHAKQEAgLTMwLDE2ICszMCwyMyBAQCBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIFdhc20gewogCiBJbmRleE9yTmFtZTo6SW5kZXhPck5hbWUoSW5kZXggaW5k
ZXgsIHN0ZDo6cGFpcjxjb25zdCBOYW1lKiwgUmVmUHRyPE5hbWVTZWN0aW9uPj4mJiBuYW1lKQog
eworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgc3RhdGljX2Fzc2VydChzaXplb2YobV9pbmRleE5h
bWUuaW5kZXgpID09IHNpemVvZihtX2luZGV4TmFtZS5uYW1lKSwgImJpdC10YWdnaW5nIGRlcGVu
ZHMgb24gc2l6ZXMgYmVpbmcgZXF1YWwiKTsKLQotICAgIGlmICgoaW5kZXggJiBhbGxUYWdzKSB8
fCAoYml0d2lzZV9jYXN0PEluZGV4PihuYW1lLmZpcnN0KSAmIGFsbFRhZ3MpKQotICAgICAgICAq
dGhpcyA9IEluZGV4T3JOYW1lKCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGlmIChuYW1lLmZpcnN0
KQotICAgICAgICAgICAgbV9pbmRleE5hbWUubmFtZSA9IG5hbWUuZmlyc3Q7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIG1faW5kZXhOYW1lLmluZGV4ID0gaW5kZXhUYWcgfCBpbmRleDsKKyAg
ICBBU1NFUlQoIShpbmRleCAmIGFsbFRhZ3MpKTsKKyAgICBBU1NFUlQoIShiaXR3aXNlX2Nhc3Q8
SW5kZXg+KG5hbWUuZmlyc3QpICYgYWxsVGFncykpOworICAgIGlmIChuYW1lLmZpcnN0KQorICAg
ICAgICBtX2luZGV4TmFtZS5uYW1lID0gbmFtZS5maXJzdDsKKyAgICBlbHNlCisgICAgICAgIG1f
aW5kZXhOYW1lLmluZGV4ID0gaW5kZXhUYWcgfCBpbmRleDsKKyNlbGlmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgaWYgKG5hbWUuZmlyc3QpIHsKKyAgICAgICAgbV9pbmRleE5hbWUubmFtZSA9IG5h
bWUuZmlyc3Q7CisgICAgICAgIG1fa2luZCA9IEtpbmQ6Ok5hbWU7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgbV9pbmRleE5hbWUuaW5kZXggPSBpbmRleDsKKyAgICAgICAgbV9raW5kID0gS2luZDo6
SW5kZXg7CiAgICAgfQorI2VuZGlmCiAgICAgbV9uYW1lU2VjdGlvbiA9IFdURk1vdmUobmFtZS5z
ZWNvbmQpOwogfQogCkBAIC00OSw4ICs1Niw4IEBAIFN0cmluZyBtYWtlU3RyaW5nKGNvbnN0IElu
ZGV4T3JOYW1lJiBpb24pCiAgICAgICAgIHJldHVybiAid2FzbS1zdHViIl9zOwogICAgIGNvbnN0
IFN0cmluZyBtb2R1bGVOYW1lID0gaW9uLm5hbWVTZWN0aW9uKCktPm1vZHVsZU5hbWUuc2l6ZSgp
ID8gU3RyaW5nKGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1bGVOYW1lLmRhdGEoKSwgaW9uLm5hbWVT
ZWN0aW9uKCktPm1vZHVsZU5hbWUuc2l6ZSgpKSA6IFN0cmluZyhpb24ubmFtZVNlY3Rpb24oKS0+
bW9kdWxlSGFzaC5kYXRhKCksIGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1bGVIYXNoLnNpemUoKSk7
CiAgICAgaWYgKGlvbi5pc0luZGV4KCkpCi0gICAgICAgIHJldHVybiBtYWtlU3RyaW5nKG1vZHVs
ZU5hbWUsICIud2FzbS1mdW5jdGlvblsiLCBTdHJpbmc6Om51bWJlcihpb24ubV9pbmRleE5hbWUu
aW5kZXggJiB+SW5kZXhPck5hbWU6OmluZGV4VGFnKSwgJ10nKTsKLSAgICByZXR1cm4gbWFrZVN0
cmluZyhtb2R1bGVOYW1lLCAiLndhc20tZnVuY3Rpb25bIiwgU3RyaW5nKGlvbi5tX2luZGV4TmFt
ZS5uYW1lLT5kYXRhKCksIGlvbi5tX2luZGV4TmFtZS5uYW1lLT5zaXplKCkpLCAnXScpOworICAg
ICAgICByZXR1cm4gbWFrZVN0cmluZyhtb2R1bGVOYW1lLCAiLndhc20tZnVuY3Rpb25bIiwgU3Ry
aW5nOjpudW1iZXIoaW9uLmluZGV4KCkpLCAnXScpOworICAgIHJldHVybiBtYWtlU3RyaW5nKG1v
ZHVsZU5hbWUsICIud2FzbS1mdW5jdGlvblsiLCBTdHJpbmcoaW9uLm5hbWUoKS0+ZGF0YSgpLCBp
b24ubmFtZSgpLT5zaXplKCkpLCAnXScpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2Fz
bQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1l
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaAppbmRleCA1
ZWVlZmM4OGFmNzZkNGM0YzMzNmExNzIwMDdhNmNmZTYxZWFlZTYxLi4yZDkwMzAxMThmOGMxZDI5
OGE4Y2IzMzlkOWIzOTA0MmQzZTExODdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtSW5kZXhPck5hbWUuaApAQCAtNDAsMTQgKzQwLDY3IEBAIHN0cnVjdCBOYW1lU2VjdGlv
bjsKIHN0cnVjdCBJbmRleE9yTmFtZSB7CiAgICAgdHlwZWRlZiBzaXplX3QgSW5kZXg7CiAKLSAg
ICBJbmRleE9yTmFtZSgpIHsgbV9pbmRleE5hbWUuaW5kZXggPSBlbXB0eVRhZzsgfQotICAgIElu
ZGV4T3JOYW1lKEluZGV4LCBzdGQ6OnBhaXI8Y29uc3QgTmFtZSosIFJlZlB0cjxOYW1lU2VjdGlv
bj4+JiYpOwotICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxJ
bmRleD4obV9pbmRleE5hbWUpICYgZW1wdHlUYWc7IH0KLSAgICBib29sIGlzSW5kZXgoKSBjb25z
dCB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8SW5kZXg+KG1faW5kZXhOYW1lKSAmIGluZGV4VGFnOyB9
Ci0gICAgYm9vbCBpc05hbWUoKSBjb25zdCB7IHJldHVybiAhKGlzRW1wdHkoKSB8fCBpc05hbWUo
KSk7IH0KLSAgICBOYW1lU2VjdGlvbiogbmFtZVNlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX25h
bWVTZWN0aW9uLmdldCgpOyB9Citwcml2YXRlOgorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
ZW51bSBjbGFzcyBLaW5kIDogdWludDhfdCB7CisgICAgICAgIEVtcHR5LAorICAgICAgICBJbmRl
eCwKKyAgICAgICAgTmFtZQorICAgIH07CisjZW5kaWYKK3B1YmxpYzoKIAotICAgIGZyaWVuZCBT
dHJpbmcgbWFrZVN0cmluZyhjb25zdCBJbmRleE9yTmFtZSYpOworICAgIEluZGV4T3JOYW1lKCkK
KyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgbV9pbmRleE5hbWUuaW5kZXggPSBl
bXB0eVRhZzsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIG1fa2luZCA9IEtpbmQ6
OkVtcHR5OworI2VuZGlmCisgICAgfQorCisgICAgSW5kZXhPck5hbWUoSW5kZXgsIHN0ZDo6cGFp
cjxjb25zdCBOYW1lKiwgUmVmUHRyPE5hbWVTZWN0aW9uPj4mJik7CisKKyAgICBib29sIGlzRW1w
dHkoKSBjb25zdAorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICByZXR1cm4gYml0
d2lzZV9jYXN0PEluZGV4PihtX2luZGV4TmFtZSkgJiBlbXB0eVRhZzsKKyNlbGlmIFVTRShKU1ZB
TFVFMzJfNjQpCisgICAgICAgIHJldHVybiBtX2tpbmQgPT0gS2luZDo6RW1wdHk7CisjZW5kaWYK
KyAgICB9CisKKyAgICBib29sIGlzSW5kZXgoKSBjb25zdAorICAgIHsKKyNpZiBVU0UoSlNWQUxV
RTY0KQorICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PEluZGV4PihtX2luZGV4TmFtZSkgJiBp
bmRleFRhZzsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJldHVybiBtX2tpbmQg
PT0gS2luZDo6SW5kZXg7CisjZW5kaWYKKyAgICB9CisKKyAgICBib29sIGlzTmFtZSgpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gIShpc0VtcHR5KCkgfHwgaXNJbmRleCgpKTsKKyAgICB9
CisKKyAgICBJbmRleCBpbmRleCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNJbmRl
eCgpKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICByZXR1cm4gbV9pbmRleE5hbWUuaW5k
ZXggJiB+aW5kZXhUYWc7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4g
bV9pbmRleE5hbWUuaW5kZXg7CisjZW5kaWYKKyAgICB9CisKKyAgICBjb25zdCBOYW1lKiBuYW1l
KCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpc05hbWUoKSk7CisgICAgICAgIHJldHVy
biBtX2luZGV4TmFtZS5uYW1lOworICAgIH0KKworICAgIE5hbWVTZWN0aW9uKiBuYW1lU2VjdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZVNlY3Rpb24uZ2V0KCk7IH0KIAogcHJpdmF0ZToKICAg
ICB1bmlvbiB7CkBAIC01NiwxMCArMTA5LDE1IEBAIHByaXZhdGU6CiAgICAgfSBtX2luZGV4TmFt
ZTsKICAgICBSZWZQdHI8TmFtZVNlY3Rpb24+IG1fbmFtZVNlY3Rpb247CiAKKyNpZiBVU0UoSlNW
QUxVRTY0KQogICAgIC8vIFVzZSB0aGUgdG9wIGJpdHMgYXMgdGFncy4gTmVpdGhlciBwb2ludGVy
cyBub3IgdGhlIGZ1bmN0aW9uIGluZGV4IHNwYWNlIHNob3VsZCB1c2UgdGhlbS4KICAgICBzdGF0
aWMgY29uc3RleHByIEluZGV4IGluZGV4VGFnID0gMXVsbCA8PCAoQ0hBUl9CSVQgKiBzaXplb2Yo
SW5kZXgpIC0gMSk7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBJbmRleCBlbXB0eVRhZyA9IDF1bGwg
PDwgKENIQVJfQklUICogc2l6ZW9mKEluZGV4KSAtIDIpOwogICAgIHN0YXRpYyBjb25zdGV4cHIg
SW5kZXggYWxsVGFncyA9IGluZGV4VGFnIHwgZW1wdHlUYWc7CisjZWxpZiBVU0UoSlNWQUxVRTMy
XzY0KQorICAgIC8vIFVzZSBhbiBleHBsaWNpdCB0YWcgYXMgcG9pbnRlcnMgbWlnaHQgaGF2ZSBo
aWdoIGJpdHMgc2V0CisgICAgS2luZCBtX2tpbmQ7CisjZW5kaWYKIH07CiAKIFN0cmluZyBtYWtl
U3RyaW5nKGNvbnN0IEluZGV4T3JOYW1lJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21JbnN0YW5jZS5oCmluZGV4IGU2ZGIzYTNhMDhjNDRhMDVjYmNiMjkwZmVhNGRlZTI3NmU3MGUx
YjIuLmM5NDQyY2ZmNzJkYmEyOGM1OTYwOTUyYjVkM2FiNjQ3YzRkZTgwMWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5oCkBAIC0xMDYsOCArMTA2LDkgQEAgcHVi
bGljOgogICAgIHZvaWQgdXBkYXRlQ2FjaGVkTWVtb3J5KCkKICAgICB7CiAgICAgICAgIGlmICht
X21lbW9yeSAhPSBudWxscHRyKSB7Ci0gICAgICAgICAgICBtX2NhY2hlZE1lbW9yeSA9IENhZ2Vk
UHRyPEdpZ2FjYWdlOjpQcmltaXRpdmUsIHZvaWQsIHRhZ0NhZ2VkUHRyPihtZW1vcnkoKS0+bWVt
b3J5KCksIG1lbW9yeSgpLT5ib3VuZHNDaGVja2luZ1NpemUoKSk7Ci0gICAgICAgICAgICBtX2Nh
Y2hlZEJvdW5kc0NoZWNraW5nU2l6ZSA9IG1lbW9yeSgpLT5ib3VuZHNDaGVja2luZ1NpemUoKTsK
KyAgICAgICAgICAgIG1fY2FjaGVkTWVtb3J5ID0gQ2FnZWRQdHI8R2lnYWNhZ2U6OlByaW1pdGl2
ZSwgdm9pZCwgdGFnQ2FnZWRQdHI+KG1lbW9yeSgpLT5tZW1vcnkoKSwgbWVtb3J5KCktPm1hcHBl
ZENhcGFjaXR5KCkpOworICAgICAgICAgICAgLy8gVGhpcyBpcyB1c2VkIGJ5IHRoZSBub24tc2ln
bmFsaW5nIGJhc2VkIGJvdW5kIGNoZWNraW5nLCBzbyB1c2UgdGhlIGFjdHVhbCBzaXplIG9mIHRo
ZSBtZW1vcnkuCisgICAgICAgICAgICBtX2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSA9IG1lbW9y
eSgpLT5zaXplKCk7CiAgICAgICAgICAgICBBU1NFUlQobWVtb3J5KCktPm1lbW9yeSgpID09IGNh
Y2hlZE1lbW9yeSgpKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwCmluZGV4IDcxZTA2NDdjNTY2NjZlYTBm
ZmQzY2M0NWE0ZGU2MTFlMDc5Mjc3ZmQuLmE0MzA4NDQ3MjQwZjk5YmZjMTFlNWQyOTMxYzRlNmVj
MGM0MDliN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTElu
dEdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50
R2VuZXJhdG9yLmNwcApAQCAtMzM4LDcgKzMzOCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBy
ZXR1cm4gbV9ub3JtYWxpemVkQXJndW1lbnRzW2luZGV4XTsKIAogICAgICAgICBjb25zdCBhdXRv
JiBjYWxsaW5nQ29udmVudGlvbiA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpOwotICAgICAgICBj
b25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmdwckFyZ3Muc2l6ZSgp
OworICAgICAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmpz
ckFyZ3Muc2l6ZSgpOwogICAgICAgICBjb25zdCB1aW50MzJfdCBmcHJDb3VudCA9IGNhbGxpbmdD
b252ZW50aW9uLmZwckFyZ3Muc2l6ZSgpOwogICAgICAgICByZXR1cm4gdmlydHVhbFJlZ2lzdGVy
Rm9yTG9jYWwoaW5kZXggLSBtX2NvZGVCbG9jay0+bV9udW1Bcmd1bWVudHMgKyBncHJDb3VudCAr
IGZwckNvdW50ICsgbnVtYmVyT2ZMTEludENhbGxlZVNhdmVSZWdpc3RlcnMpOwogICAgIH0KQEAg
LTU5Miw3ICs1OTIsNyBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JD
YWxsZXIoY29uc3QgRnVuY3Rpb25TaWduYXR1cmUmIHNpZ25hdHVyZQogICAgIGNvbnN0IGF1dG8g
aW5pdGlhbFN0YWNrU2l6ZSA9IG1fc3RhY2tTaXplOwogCiAgICAgY29uc3QgYXV0byYgY2FsbGlu
Z0NvbnZlbnRpb24gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKTsKLSAgICBjb25zdCB1aW50MzJf
dCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgIGNvbnN0
IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uanNyQXJncy5zaXplKCk7CiAg
ICAgY29uc3QgdWludDMyX3QgZnByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5mcHJBcmdzLnNp
emUoKTsKIAogICAgIHVpbnQzMl90IHN0YWNrQ291bnQgPSAwOwpAQCAtNzM3LDcgKzczNyw3IEBA
IGF1dG8gTExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvckNhbGxlZShjb25zdCBGdW5j
dGlvblNpZ25hdHVyZSYgc2lnbmF0dXJlCiAgICAgbV9yZXN1bHRzLnJlc2VydmVJbml0aWFsQ2Fw
YWNpdHkoc2lnbmF0dXJlLnJldHVybkNvdW50KCkpOwogCiAgICAgY29uc3QgYXV0byYgY2FsbGlu
Z0NvbnZlbnRpb24gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKTsKLSAgICBjb25zdCB1aW50MzJf
dCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgIGNvbnN0
IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uanNyQXJncy5zaXplKCk7CiAg
ICAgY29uc3QgdWludDMyX3QgZnByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5mcHJBcmdzLnNp
emUoKTsKIAogICAgIHVpbnQzMl90IGdwckluZGV4ID0gMDsKQEAgLTc4NCw3ICs3ODQsNyBAQCBh
dXRvIExMSW50R2VuZXJhdG9yOjphZGRBcmd1bWVudHMoY29uc3QgVHlwZURlZmluaXRpb24mIHNp
Z25hdHVyZSkgLT4gUGFydGlhbFJlcwogICAgIG1fbm9ybWFsaXplZEFyZ3VtZW50cy5yZXNpemUo
bV9jb2RlQmxvY2stPm1fbnVtQXJndW1lbnRzKTsKIAogICAgIGNvbnN0IGF1dG8mIGNhbGxpbmdD
b252ZW50aW9uID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCk7Ci0gICAgY29uc3QgdWludDMyX3Qg
Z3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5ncHJBcmdzLnNpemUoKTsKKyAgICBjb25zdCB1
aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmpzckFyZ3Muc2l6ZSgpOwogICAg
IGNvbnN0IHVpbnQzMl90IGZwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZnByQXJncy5zaXpl
KCk7CiAgICAgY29uc3QgdWludDMyX3QgbWF4R1BSSW5kZXggPSBncHJDb3VudDsKICAgICBjb25z
dCB1aW50MzJfdCBtYXhGUFJJbmRleCA9IGdwckNvdW50ICsgZnByQ291bnQ7CkBAIC05NjYsNyAr
OTY2LDcgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6YWRkTG9vcChCbG9ja1NpZ25hdHVyZSBzaWdu
YXR1cmUsIFN0YWNrJiBlbmNsb3NpbmdTdGFjaywgQ28KICAgICAgICAgb3NyRW50cnlEYXRhLmFw
cGVuZChtX25vcm1hbGl6ZWRBcmd1bWVudHNbaV0pOwogCiAgICAgY29uc3QgYXV0byYgY2FsbGlu
Z0NvbnZlbnRpb24gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKTsKLSAgICBjb25zdCB1aW50MzJf
dCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgIGNvbnN0
IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uanNyQXJncy5zaXplKCk7CiAg
ICAgY29uc3QgdWludDMyX3QgZnByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5mcHJBcmdzLnNp
emUoKTsKICAgICBmb3IgKHVpbnQzMl90IGkgPSBncHJDb3VudCArIGZwckNvdW50ICsgbnVtYmVy
T2ZMTEludENhbGxlZVNhdmVSZWdpc3RlcnM7IGkgPCBtX2NvZGVCbG9jay0+bV9udW1WYXJzOyBp
KyspCiAgICAgICAgIG9zckVudHJ5RGF0YS5hcHBlbmQodmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwo
aSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxh
bi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcAppbmRl
eCA4YjQzNmQyZGNmNTZlZjYyZWQyZTQ0NzI4YjQ0MTMxNWZjYzk4MzdhLi5lMzRmNDRjYWNhZDNh
OTE0OTg0ZTdmYmZkYTU5OTdkMzNiOGE2MGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtTExJbnRQbGFuLmNwcApAQCAtMTE5LDEyICsxMTksMTUgQEAgdm9pZCBMTEludFBs
YW46OmRpZENvbXBsZXRlQ29tcGlsYXRpb24oKQogICAgICAgICAgICAgZW50cnlwb2ludHNbaV0g
PSBqaXQubGFiZWwoKTsKICNpZiBDUFUoWDg2XzY0KQogICAgICAgICAgICAgQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzIGNhbGxlZVNsb3QoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwg
Q2FsbEZyYW1lU2xvdDo6Y2FsbGVlICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIp
KSAtIHNpemVvZihDUFVSZWdpc3RlcikpOwotI2VsaWYgQ1BVKEFSTTY0KSB8fCBDUFUoUklTQ1Y2
NCkKKyNlbGlmIENQVShBUk02NCkgfHwgQ1BVKFJJU0NWNjQpIHx8IENQVShBUk0pCiAgICAgICAg
ICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgY2FsbGVlU2xvdChDQ2FsbEhlbHBlcnM6OnN0YWNr
UG9pbnRlclJlZ2lzdGVyLCBDYWxsRnJhbWVTbG90OjpjYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+
KHNpemVvZihSZWdpc3RlcikpIC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKTsKICNlbHNlCiAj
ZXJyb3IgVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlLgogI2VuZGlmCi0gICAgICAgICAgICBqaXQu
c3RvcmVQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKENhbGxlZUJpdHM6OmJveFdhc20o
bV9jYWxsZWVzVmVjdG9yW2ldLnB0cigpKSksIGNhbGxlZVNsb3QpOworICAgICAgICAgICAgaml0
LnN0b3JlUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihDYWxsZWVCaXRzOjpib3hXYXNt
KG1fY2FsbGVlc1ZlY3RvcltpXS5wdHIoKSkpLCBjYWxsZWVTbG90LndpdGhPZmZzZXQoUGF5bG9h
ZE9mZnNldCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICBqaXQuc3RvcmUz
MihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpXYXNtVGFnKSwgY2FsbGVlU2xv
dC53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworI2VuZGlmCiAgICAgICAgICAgICBqdW1wc1tpXSA9
IGppdC5qdW1wKCk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU1lbW9yeS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
TWVtb3J5LmNwcAppbmRleCA0NDA3NTk1MmYwMDc2OWRiMmI5MDE2MDBiMTAxYmYyYmRlNGI2ZTVm
Li5iZjVjMWVjNDYyYmQxNmYyNGRmNTc0ZTNiMzdiNDJlZjRmYjUxYjg3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcApAQCAtOTgsMTEgKzk4LDkgQEAgY2xhc3Mg
TWVtb3J5TWFuYWdlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoTWVtb3J5TWFuYWdlcik7CiBwdWJsaWM6Ci0gICAgTWVtb3J5TWFuYWdl
cigpCi0gICAgICAgIDogbV9tYXhGYXN0TWVtb3J5Q291bnQoT3B0aW9uczo6bWF4TnVtV2ViQXNz
ZW1ibHlGYXN0TWVtb3JpZXMoKSkKLSAgICB7Ci0gICAgfQotICAgIAorICAgIE1lbW9yeU1hbmFn
ZXIoKSA9IGRlZmF1bHQ7CisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9S
WSkKICAgICBNZW1vcnlSZXN1bHQgdHJ5QWxsb2NhdGVGYXN0TWVtb3J5KCkKICAgICB7CiAgICAg
ICAgIE1lbW9yeVJlc3VsdCByZXN1bHQgPSBbJl0gewpAQCAtMTI1LDcgKzEyMyw3IEBAIHB1Ymxp
YzoKICAgICAgICAgCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQotICAgIAorCiAgICAg
dm9pZCBmcmVlRmFzdE1lbW9yeSh2b2lkKiBiYXNlUHRyKQogICAgIHsKICAgICAgICAgewpAQCAt
MTM2LDYgKzEzNCw3IEBAIHB1YmxpYzoKICAgICAgICAgCiAgICAgICAgIGRhdGFMb2dMbklmKE9w
dGlvbnM6OmxvZ1dlYkFzc2VtYmx5TWVtb3J5KCksICJGcmVlZCB2aXJ0dWFsOyBzdGF0ZTogIiwg
KnRoaXMpOwogICAgIH0KKyNlbmRpZgogCiAgICAgTWVtb3J5UmVzdWx0IHRyeUFsbG9jYXRlR3Jv
d2FibGVCb3VuZHNDaGVja2luZ01lbW9yeShzaXplX3QgbWFwcGVkQ2FwYWNpdHkpCiAgICAgewpA
QCAtMTcwLDExICsxNjksMTMgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgLy8gTk9URTogVGhp
cyBjYW4gYmUgY2FsbGVkIGZyb20gYSBzaWduYWwgaGFuZGxlciwgYnV0IG9ubHkgYWZ0ZXIgd2Ug
cHJvdmVkIHRoYXQgd2UncmUgaW4gSklUIGNvZGUgb3IgV2FzbUxMSW50IGNvZGUuCiAgICAgICAg
IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFM
SU5HX01FTU9SWSkKICAgICAgICAgZm9yICh2b2lkKiBtZW1vcnkgOiBtX2Zhc3RNZW1vcmllcykg
ewogICAgICAgICAgICAgY2hhciogc3RhcnQgPSBzdGF0aWNfY2FzdDxjaGFyKj4obWVtb3J5KTsK
ICAgICAgICAgICAgIGlmIChzdGFydCA8PSBhZGRyZXNzICYmIGFkZHJlc3MgPD0gc3RhcnQgKyBN
ZW1vcnk6OmZhc3RNYXBwZWRCeXRlcygpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CisjZW5kaWYKICAgICAgICAgdWludHB0cl90IGFkZHJlc3NWYWx1ZSA9IGJpdHdp
c2VfY2FzdDx1aW50cHRyX3Q+KGFkZHJlc3MpOwogICAgICAgICBhdXRvIGl0ZXJhdG9yID0gc3Rk
Ojp1cHBlcl9ib3VuZChtX2dyb3dhYmxlQm91bmRzQ2hlY2tpbmdNZW1vcmllcy5iZWdpbigpLCBt
X2dyb3dhYmxlQm91bmRzQ2hlY2tpbmdNZW1vcmllcy5lbmQoKSwgc3RkOjptYWtlX3BhaXIoYWRk
cmVzc1ZhbHVlLCAwKSwKICAgICAgICAgICAgIFtdKHN0ZDo6cGFpcjx1aW50cHRyX3QsIHNpemVf
dD4gYSwgc3RkOjpwYWlyPHVpbnRwdHJfdCwgc2l6ZV90PiBiKSB7CkBAIC0yMjcsMTMgKzIyOCwx
OSBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0
CiAgICAgeworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgICAg
ICBvdXQucHJpbnQoImZhc3QgbWVtb3JpZXMgPSAgIiwgbV9mYXN0TWVtb3JpZXMuc2l6ZSgpLCAi
LyIsIG1fbWF4RmFzdE1lbW9yeUNvdW50LCAiLCBieXRlcyA9ICIsIG1fcGh5c2ljYWxCeXRlcywg
Ii8iLCBtZW1vcnlMaW1pdCgpKTsKKyNlbHNlCisgICAgICAgIG91dC5wcmludCgiZmFzdCBtZW1v
cmllcyA9IE4uQS4sIGJ5dGVzID0gIiwgbV9waHlzaWNhbEJ5dGVzLCAiLyIsIG1lbW9yeUxpbWl0
KCkpOworI2VuZGlmCiAgICAgfQogICAgIAogcHJpdmF0ZToKICAgICBMb2NrIG1fbG9jazsKLSAg
ICB1bnNpZ25lZCBtX21heEZhc3RNZW1vcnlDb3VudCB7IDAgfTsKKyNpZiBFTkFCTEUoV0VCQVNT
RU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKKyAgICB1bnNpZ25lZCBtX21heEZhc3RNZW1vcnlDb3Vu
dCB7IE9wdGlvbnM6Om1heE51bVdlYkFzc2VtYmx5RmFzdE1lbW9yaWVzKCkgfTsKICAgICBWZWN0
b3I8dm9pZCo+IG1fZmFzdE1lbW9yaWVzOworI2VuZGlmCiAgICAgU3RkU2V0PHN0ZDo6cGFpcjx1
aW50cHRyX3QsIHNpemVfdD4+IG1fZ3Jvd2FibGVCb3VuZHNDaGVja2luZ01lbW9yaWVzOwogICAg
IHNpemVfdCBtX3BoeXNpY2FsQnl0ZXMgeyAwIH07CiB9OwpAQCAtMzAwLDYgKzMwNyw3IEBAIE1l
bW9yeUhhbmRsZTo6fk1lbW9yeUhhbmRsZSgpCiAgICAgICAgIHZvaWQqIG1lbW9yeSA9IHRoaXMt
Pm1lbW9yeSgpOwogICAgICAgICBtZW1vcnlNYW5hZ2VyKCkuZnJlZVBoeXNpY2FsQnl0ZXMobV9z
aXplKTsKICAgICAgICAgc3dpdGNoIChtX21vZGUpIHsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlf
U0lHTkFMSU5HX01FTU9SWSkKICAgICAgICAgY2FzZSBNZW1vcnlNb2RlOjpTaWduYWxpbmc6CiAg
ICAgICAgICAgICBpZiAobXByb3RlY3QobWVtb3J5LCBNZW1vcnk6OmZhc3RNYXBwZWRCeXRlcygp
LCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFKSkgewogICAgICAgICAgICAgICAgIGRhdGFMb2coIm1w
cm90ZWN0IGZhaWxlZDogIiwgc2FmZVN0cmVycm9yKGVycm5vKS5kYXRhKCksICJcbiIpOwpAQCAt
MzA3LDYgKzMxNSw3IEBAIE1lbW9yeUhhbmRsZTo6fk1lbW9yeUhhbmRsZSgpCiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBtZW1vcnlNYW5hZ2VyKCkuZnJlZUZhc3RNZW1vcnkobWVtb3J5KTsK
ICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgICAgIGNhc2UgTWVtb3J5TW9kZTo6Qm91
bmRzQ2hlY2tpbmc6IHsKICAgICAgICAgICAgIHN3aXRjaCAobV9zaGFyaW5nTW9kZSkgewogICAg
ICAgICAgICAgY2FzZSBNZW1vcnlTaGFyaW5nTW9kZTo6RGVmYXVsdDoKQEAgLTM5NSw2ICs0MDQs
NyBAQCBSZWZQdHI8TWVtb3J5PiBNZW1vcnk6OnRyeUNyZWF0ZShQYWdlQ291bnQgaW5pdGlhbCwg
UGFnZUNvdW50IG1heGltdW0sIE1lbW9yeVNoYQogICAgIGlmICghZG9uZSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgICAgIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdf
TUVNT1JZKQogICAgIGNoYXIqIGZhc3RNZW1vcnkgPSBudWxscHRyOwogICAgIGlmIChPcHRpb25z
Ojp1c2VXZWJBc3NlbWJseUZhc3RNZW1vcnkoKSkgewogICAgICAgICB0cnlBbGxvY2F0ZSgKQEAg
LTQxMyw3ICs0MjMsOCBAQCBSZWZQdHI8TWVtb3J5PiBNZW1vcnk6OnRyeUNyZWF0ZShQYWdlQ291
bnQgaW5pdGlhbCwgUGFnZUNvdW50IG1heGltdW0sIE1lbW9yeVNoYQogCiAgICAgICAgIHJldHVy
biBNZW1vcnk6OmNyZWF0ZShhZG9wdFJlZigqbmV3IE1lbW9yeUhhbmRsZShmYXN0TWVtb3J5LCBp
bml0aWFsQnl0ZXMsIE1lbW9yeTo6ZmFzdE1hcHBlZEJ5dGVzKCksIGluaXRpYWwsIG1heGltdW0s
IHNoYXJpbmdNb2RlLCBNZW1vcnlNb2RlOjpTaWduYWxpbmcpKSwgV1RGTW92ZShub3RpZnlNZW1v
cnlQcmVzc3VyZSksIFdURk1vdmUoc3luY1RyeVRvUmVjbGFpbU1lbW9yeSksIFdURk1vdmUoZ3Jv
d1N1Y2Nlc3NDYWxsYmFjaykpOwogICAgIH0KLSAgICAKKyNlbmRpZgorCiAgICAgaWYgKFVOTElL
RUxZKE9wdGlvbnM6OmNyYXNoSWZXZWJBc3NlbWJseUNhbnRGYXN0TWVtb3J5KCkpKQogICAgICAg
ICB3ZWJBc3NlbWJseUNvdWxkbnRHZXRGYXN0TWVtb3J5KCk7CiAKQEAgLTQ1Niw2ICs0NjcsNyBA
QCBSZWZQdHI8TWVtb3J5PiBNZW1vcnk6OnRyeUNyZWF0ZShQYWdlQ291bnQgaW5pdGlhbCwgUGFn
ZUNvdW50IG1heGltdW0sIE1lbW9yeVNoYQogCiBNZW1vcnk6On5NZW1vcnkoKSA9IGRlZmF1bHQ7
CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKIHNpemVfdCBNZW1v
cnk6OmZhc3RNYXBwZWRSZWR6b25lQnl0ZXMoKQogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxz
aXplX3Q+KFBhZ2VDb3VudDo6cGFnZVNpemUpICogT3B0aW9uczo6d2ViQXNzZW1ibHlGYXN0TWVt
b3J5UmVkem9uZVBhZ2VzKCk7CkBAIC00NjYsNiArNDc4LDcgQEAgc2l6ZV90IE1lbW9yeTo6ZmFz
dE1hcHBlZEJ5dGVzKCkKICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZih1aW50NjRfdCkgPT0gc2l6
ZW9mKHNpemVfdCksICJXZSByZWx5IG9uIGFsbG93aW5nIHRoZSBtYXhpbXVtIHNpemUgb2YgTWVt
b3J5IHdlIG1hcCB0byBiZSAyXjMyICsgcmVkem9uZSB3aGljaCBpcyBsYXJnZXIgdGhhbiBmaXRz
IGluIGEgMzItYml0IGludGVnZXIgdGhhdCB3ZSdkIHBhc3MgdG8gbXByb3RlY3QgaWYgdGhpcyBk
aWRuJ3QgaG9sZC4iKTsKICAgICByZXR1cm4gKHN0YXRpY19jYXN0PHNpemVfdD4oMSkgPDwgMzIp
ICsgZmFzdE1hcHBlZFJlZHpvbmVCeXRlcygpOwogfQorI2VuZGlmCiAKIGJvb2wgTWVtb3J5Ojph
ZGRyZXNzSXNJbkdyb3dhYmxlT3JGYXN0TWVtb3J5KHZvaWQqIGFkZHJlc3MpCiB7CkBAIC01MjQs
OCArNTM3LDE0IEBAIEV4cGVjdGVkPFBhZ2VDb3VudCwgTWVtb3J5OjpHcm93RmFpbFJlYXNvbj4g
TWVtb3J5Ojpncm93U2hhcmVkKFBhZ2VDb3VudCBkZWx0YSkKICAgICAgICAgbV9oYW5kbGUtPmdy
b3dUb1NpemUoZGVzaXJlZFNpemUpOwogICAgICAgICByZXR1cm4gb2xkUGFnZUNvdW50OwogICAg
IH0oKSk7Ci0gICAgaWYgKHJlc3VsdCkKKyAgICBpZiAocmVzdWx0KSB7CiAgICAgICAgIG1fZ3Jv
d1N1Y2Nlc3NDYWxsYmFjayhHcm93U3VjY2Vzc1RhZywgb2xkUGFnZUNvdW50LCBuZXdQYWdlQ291
bnQpOworICAgICAgICAvLyBVcGRhdGUgY2FjaGUgZm9yIGluc3RhbmNlCisgICAgICAgIGZvciAo
YXV0byYgaW5zdGFuY2UgOiBtX2luc3RhbmNlcykgeworICAgICAgICAgICAgaWYgKGluc3RhbmNl
LmdldCgpICE9IG51bGxwdHIpCisgICAgICAgICAgICAgICAgaW5zdGFuY2UuZ2V0KCktPnVwZGF0
ZUNhY2hlZE1lbW9yeSgpOworICAgICAgICB9CisgICAgfQogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKQEAgLTU4OCw2ICs2MDcsNyBAQCBFeHBlY3RlZDxQYWdlQ291bnQsIE1lbW9yeTo6R3Jvd0Zh
aWxSZWFzb24+IE1lbW9yeTo6Z3JvdyhQYWdlQ291bnQgZGVsdGEpCiAgICAgICAgIEFTU0VSVCht
ZW1vcnkoKSA9PSBuZXdNZW1vcnkpOwogICAgICAgICByZXR1cm4gc3VjY2VzcygpOwogICAgIH0K
KyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBjYXNlIE1lbW9y
eU1vZGU6OlNpZ25hbGluZzogewogICAgICAgICBzaXplX3QgZXh0cmFCeXRlcyA9IGRlc2lyZWRT
aXplIC0gc2l6ZSgpOwogICAgICAgICBSRUxFQVNFX0FTU0VSVChleHRyYUJ5dGVzKTsKQEAgLTYx
Myw2ICs2MzMsNyBAQCBFeHBlY3RlZDxQYWdlQ291bnQsIE1lbW9yeTo6R3Jvd0ZhaWxSZWFzb24+
IE1lbW9yeTo6Z3JvdyhQYWdlQ291bnQgZGVsdGEpCiAgICAgICAgIG1faGFuZGxlLT5ncm93VG9T
aXplKGRlc2lyZWRTaXplKTsKICAgICAgICAgcmV0dXJuIHN1Y2Nlc3MoKTsKICAgICB9CisjZW5k
aWYKICAgICB9CiAKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNjQ2LDcg
KzY2Nyw4IEBAIGJvb2wgTWVtb3J5Ojpjb3B5KHVpbnQzMl90IGRzdEFkZHJlc3MsIHVpbnQzMl90
IHNyY0FkZHJlc3MsIHVpbnQzMl90IGNvdW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAg
IHVpbnQ4X3QqIGJhc2UgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihtZW1vcnkoKSk7Ci0g
ICAgbWVtY3B5KGJhc2UgKyBkc3RBZGRyZXNzLCBiYXNlICsgc3JjQWRkcmVzcywgY291bnQpOwor
ICAgIC8vIFNvdXJjZSBhbmQgZGVzdGluYXRpb24gYXJlYXMgbWlnaHQgb3ZlcmxhcCwgc28gdXNp
bmcgbWVtbW92ZS4KKyAgICBtZW1tb3ZlKGJhc2UgKyBkc3RBZGRyZXNzLCBiYXNlICsgc3JjQWRk
cmVzcywgY291bnQpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtTWVtb3J5LmgKaW5kZXggZjVjNThmY2Y5NmYyZDg2YjA3NWNlNTc4ZDU2Njk3YWU3
NGE1NjI0My4uOTI3OTYzYjkyNGM3ODc3ZjgzZDY0MmY1ZTlmMDBlMWU1ODk2YThhZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaApAQCAtNjEsNyArNjEsNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCogbWVtb3J5KCkgY29uc3Q7CiAgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7
IHJldHVybiBtX3NpemU7IH0KICAgICBzaXplX3QgbWFwcGVkQ2FwYWNpdHkoKSBjb25zdCB7IHJl
dHVybiBtX21hcHBlZENhcGFjaXR5OyB9Ci0gICAgc2l6ZV90IGJvdW5kc0NoZWNraW5nU2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbWFwcGVkQ2FwYWNpdHk7IH0KICAgICBQYWdlQ291bnQgaW5pdGlh
bCgpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbDsgfQogICAgIFBhZ2VDb3VudCBtYXhpbXVtKCkg
Y29uc3QgeyByZXR1cm4gbV9tYXhpbXVtOyB9CiAgICAgTWVtb3J5U2hhcmluZ01vZGUgc2hhcmlu
Z01vZGUoKSBjb25zdCB7IHJldHVybiBtX3NoYXJpbmdNb2RlOyB9CkBAIC0xMDYsMTQgKzEwNSwx
NiBAQCBwdWJsaWM6CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB+TWVtb3J5KCk7CiAKKyNpZiBF
TkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBzdGF0aWMgc2l6ZV90IGZh
c3RNYXBwZWRSZWR6b25lQnl0ZXMoKTsKICAgICBzdGF0aWMgc2l6ZV90IGZhc3RNYXBwZWRCeXRl
cygpOyAvLyBJbmNsdWRlcyByZWR6b25lLgorI2VuZGlmCiAgICAgc3RhdGljIGJvb2wgYWRkcmVz
c0lzSW5Hcm93YWJsZU9yRmFzdE1lbW9yeSh2b2lkKik7CiAKICAgICB2b2lkKiBtZW1vcnkoKSBj
b25zdCB7IHJldHVybiBtX2hhbmRsZS0+bWVtb3J5KCk7IH0KICAgICBzaXplX3Qgc2l6ZSgpIGNv
bnN0IHsgcmV0dXJuIG1faGFuZGxlLT5zaXplKCk7IH0KICAgICBQYWdlQ291bnQgc2l6ZUluUGFn
ZXMoKSBjb25zdCB7IHJldHVybiBQYWdlQ291bnQ6OmZyb21CeXRlcyhzaXplKCkpOyB9Ci0gICAg
c2l6ZV90IGJvdW5kc0NoZWNraW5nU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxlLT5ib3Vu
ZHNDaGVja2luZ1NpemUoKTsgfQorICAgIHNpemVfdCBtYXBwZWRDYXBhY2l0eSgpIGNvbnN0IHsg
cmV0dXJuIG1faGFuZGxlLT5tYXBwZWRDYXBhY2l0eSgpOyB9CiAgICAgUGFnZUNvdW50IGluaXRp
YWwoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZS0+aW5pdGlhbCgpOyB9CiAgICAgUGFnZUNvdW50
IG1heGltdW0oKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZS0+bWF4aW11bSgpOyB9CiAgICAgTWVt
b3J5SGFuZGxlJiBoYW5kbGUoKSB7IHJldHVybiBtX2hhbmRsZS5nZXQoKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5jcHAKaW5k
ZXggMjY1MmRlNzJlZDU2NThiNzdjZWUyOTkxMmE1MjllZjdmMmJmYjQwZC4uNjBmYWQ2M2VmMGUw
Yjc5Y2UyYzI2ZTI2Mzc5N2Q0YzQxMzMxYTM1MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwCkBAIC00MSw4ICs0MSwxNSBA
QCBjb25zdCBQaW5uZWRSZWdpc3RlckluZm8mIFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCkKICAg
ICAgICAgdW5zaWduZWQgbnVtYmVyT2ZQaW5uZWRSZWdpc3RlcnMgPSAyOwogICAgICAgICBpZiAo
IUNvbnRleHQ6OnVzZUZhc3RUTFMoKSkKICAgICAgICAgICAgICsrbnVtYmVyT2ZQaW5uZWRSZWdp
c3RlcnM7CisjaWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQogICAgICAgICBHUFJSZWcgYmFz
ZU1lbW9yeVBvaW50ZXIgPSBHUFJJbmZvOjpyZWdDUzM7CiAgICAgICAgIEdQUlJlZyBib3VuZHND
aGVja2luZ1NpemVSZWdpc3RlciA9IEdQUkluZm86OnJlZ0NTNDsKKyNlbGlmIENQVShBUk0pCisg
ICAgICAgIC8vIE5vdCBlbm91Z2ggcmVnaXN0ZXJzLiByZWdDUzAgaXMgdGhlIHdhc20gaW5zdGFu
Y2UsIHJlZ0NTMSBpcyBMTEludCBQQgorICAgICAgICBudW1iZXJPZlBpbm5lZFJlZ2lzdGVycyAt
PSAyOworICAgICAgICBHUFJSZWcgYmFzZU1lbW9yeVBvaW50ZXIgPSBJbnZhbGlkR1BSUmVnOwor
ICAgICAgICBHUFJSZWcgYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIgPSBJbnZhbGlkR1BSUmVn
OworI2VuZGlmCiAgICAgICAgIEdQUlJlZyB3YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlciA9IElu
dmFsaWRHUFJSZWc7CiAgICAgICAgIGlmICghQ29udGV4dDo6dXNlRmFzdFRMUygpKQogICAgICAg
ICAgICAgd2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXIgPSBHUFJJbmZvOjpyZWdDUzA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24u
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5oCmlu
ZGV4IDg1NGZiYTU0ZTMzN2YwZjAyNDhlMzM5Mzc4NDQzYjM0MWUwZjczMDkuLjI5ZmNiZGI2ZDQ2
MzBlOTQ0ZTFmNTBiOWY4Mjg2MTY4ODVlOWQyNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5oCkBAIC01MiwxMCArNTIsMTEgQEAg
cHVibGljOgogICAgIFJlZ2lzdGVyU2V0IHRvU2F2ZShNZW1vcnlNb2RlIG1vZGUpIGNvbnN0CiAg
ICAgewogICAgICAgICBSZWdpc3RlclNldCByZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC5zZXQoYmFz
ZU1lbW9yeVBvaW50ZXIpOworICAgICAgICBpZiAoYmFzZU1lbW9yeVBvaW50ZXIgIT0gSW52YWxp
ZEdQUlJlZykKKyAgICAgICAgICAgIHJlc3VsdC5zZXQoYmFzZU1lbW9yeVBvaW50ZXIpOwogICAg
ICAgICBpZiAod2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXIgIT0gSW52YWxpZEdQUlJlZykKICAg
ICAgICAgICAgIHJlc3VsdC5zZXQod2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXIpOwotICAgICAg
ICBpZiAobW9kZSAhPSBNZW1vcnlNb2RlOjpTaWduYWxpbmcpCisgICAgICAgIGlmIChtb2RlID09
IE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nICYmIGJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVy
ICE9IEludmFsaWRHUFJSZWcpCiAgICAgICAgICAgICByZXN1bHQuc2V0KGJvdW5kc0NoZWNraW5n
U2l6ZVJlZ2lzdGVyKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5jcHAKaW5kZXggOWJlMDRkNzdiMDZi
OGNhNzIyN2ExYzY2YTZjNjMzOGIzNzk4OGU1Yi4uZjMzYjA1MjUxOTgzMGM0NGMwMTZjMmJmN2Vi
YzhhNzJkZTdmYTg2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU1lbW9yeU1vZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1v
cnlNb2RlLmNwcApAQCAtMzcsNyArMzcsOSBAQCBjb25zdCBjaGFyKiBtYWtlU3RyaW5nKE1lbW9y
eU1vZGUgbW9kZSkKIHsKICAgICBzd2l0Y2ggKG1vZGUpIHsKICAgICBjYXNlIE1lbW9yeU1vZGU6
OkJvdW5kc0NoZWNraW5nOiByZXR1cm4gIkJvdW5kc0NoZWNraW5nIjsKKyNpZiBFTkFCTEUoV0VC
QVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGlu
ZzogcmV0dXJuICJTaWduYWxpbmciOworI2VuZGlmCiAgICAgfQogICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuICIiOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21NZW1vcnlNb2RlLmgKaW5kZXggMDJjZmNmZTQ5ZjQ3MTU0YjMxNTNjMDlhYmQ4Y2Nm
YzdjZmMyMTA2OC4uZDcxMWFmYWYzMDMzMWY4Y2M3M2QyNjhhYzBjNGU3NTFjMGIyZmI0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5oCkBAIC0zNCw3ICsz
NCw5IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAvLyBGSVhNRTogV2Ugc2hv
dWxkIHN1cHBvcnQgb3RoZXIgbW9kZXMuIHNlZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MjY5MwogZW51bSBjbGFzcyBNZW1vcnlNb2RlIDogdWludDhfdCB7CiAg
ICAgQm91bmRzQ2hlY2tpbmcsCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1P
UlkpCiAgICAgU2lnbmFsaW5nCisjZW5kaWYKIH07CiAKIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90
IE51bWJlck9mTWVtb3J5TW9kZXMgPSAyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtT3Bjb2RlT3JpZ2luLmNwcAppbmRleCBiNmM1YzI3NTUzMTFiM2RlMzQwMzUzZTc1OTQz
ZDYxM2RmZjZkMmQ4Li45ZmM5MWI5ZDljNTQ4MjY5MmExZDM3YzkwMTljOGM1Y2JjMTJkZjJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcApA
QCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldhc21PcGNv
ZGVPcmlnaW4uaCIKIAotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyNpZiBFTkFCTEUoV0VCQVNT
RU1CTFlfQjNKSVQpCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKQEAgLTM3
LDQgKzM3LDQgQEAgdm9pZCBPcGNvZGVPcmlnaW46OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29u
c3QKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KIAotI2VuZGlmIC8vIEVOQUJMRShXRUJB
U1NFTUJMWSkKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmgKaW5kZXggYTBkOGRmM2FlZjE5
YWVmNmIxNzA3OTQ3OWE2MzQ4MTI4ODBjODczNi4uNWM0YjY3NmQ1YzZlYjBmNTlhOTdkNDliYjNk
NTVhNDE3YmVjMWMyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU9wY29kZU9yaWdpbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNv
ZGVPcmlnaW4uaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJM
RShXRUJBU1NFTUJMWSkKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCiAKICNpbmNsdWRl
ICJCM09yaWdpbi5oIgogI2luY2x1ZGUgIldhc21Gb3JtYXQuaCIKQEAgLTYwLDQgKzYwLDQgQEAg
cHJpdmF0ZToKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KIAotI2VuZGlmIC8vIEVOQUJM
RShXRUJBU1NFTUJMWSkKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAKaW5kZXggZWUwYjJl
ZDliMjdkMzZkYmFjMzc2Y2JmYzllNmI2NmRkMGRiNmY3NC4uYzRiYmZlNmZlN2U5Y2JjZDZlOWQz
YzIxMWZkZjhiMmQ0YzYwN2YzMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbU9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21PcGVyYXRpb25zLmNwcApAQCAtNDY4LDQzICs0NjgsNDMgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbldhc21VbndpbmQsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiAgICAgQVNTRVJUKCEhdm0uY2FsbEZyYW1lRm9yQ2F0Y2gpOwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTY0LCBpbnQ2NF90LCAoQ2FsbEZyYW1lKiBj
YWxsRnJhbWUsIEpTVmFsdWUgdikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29udmVydFRvSTY0LCBpbnQ2NF90LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVuY29kZWRKU1Zh
bHVlIHYpKQogewogICAgIC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5nIEpTV2ViQXNzZW1ibHlJ
bnN0YW5jZSogaW5zdGVhZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAzMjA2CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsK
ICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIHJl
dHVybiB2LnRvQmlnSW50NjQoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh2KS50b0JpZ0ludDY0KGNhbGxGcmFtZS0+bGV4aWNh
bEdsb2JhbE9iamVjdCh2bSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29udmVydFRvRjY0LCBkb3VibGUsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9GNjQsIGRvdWJs
ZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSB2KSkKIHsKICAgICAvLyBG
SVhNRTogQ29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RlYWQuCiAg
ICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIwNgogICAg
IFZNJiB2bSA9IGNhbGxGcmFtZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICByZXR1cm4gdi50b051bWJlcihjYWxs
RnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZGVj
b2RlKHYpLnRvTnVtYmVyKGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpOwogfQog
Ci1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTMyLCBpbnQzMl90
LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdikpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTMyLCBpbnQzMl90LCAoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUsIEVuY29kZWRKU1ZhbHVlIHYpKQogewogICAgIC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5n
IEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGVhZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjA2CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5k
ZXByZWNhdGVkVk0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
RnJhbWUpOwotICAgIHJldHVybiB2LnRvSW50MzIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KHZtKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh2KS50b0ludDMyKGNhbGxGcmFt
ZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29udmVydFRvRjMyLCBmbG9hdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBK
U1ZhbHVlIHYpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0Yz
MiwgZmxvYXQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUgdikpCiB7CiAg
ICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0
ZWFkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMy
MDYKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAgIE5hdGl2ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PGZsb2F0Pih2LnRvTnVtYmVyKGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkp
KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KEpTVmFsdWU6OmRlY29kZSh2KS50b051
bWJlcihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKSk7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRKU1ZhbHVl
LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwgaW50NjRfdCB2YWx1
ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50LCBF
bmNvZGVkSlNWYWx1ZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2Us
IEVuY29kZWRXYXNtVmFsdWUgdmFsdWUpKQogewogICAgIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSog
anNJbnN0YW5jZSA9IGluc3RhbmNlLT5vd25lcjxKU1dlYkFzc2VtYmx5SW5zdGFuY2U+KCk7CiAg
ICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGpzSW5zdGFuY2UtPmdsb2JhbE9iamVj
dCgpOwpAQCAtNTE0LDcgKzUxNCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoQ2FsbEZyYW1lKiBjCiB9CiAKIC8v
IGh0dHBzOi8vd2ViYXNzZW1ibHkuZ2l0aHViLmlvL211bHRpLXZhbHVlL2pzLWFwaS9pbmRleC5o
dG1sI3J1bi1hLWhvc3QtZnVuY3Rpb24KLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25JdGVyYXRlUmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJbnN0YW5jZSog
aW5zdGFuY2UsIGNvbnN0IFR5cGVEZWZpbml0aW9uKiB0eXBlLCBKU1ZhbHVlIHJlc3VsdCwgdWlu
dDY0X3QqIHJlZ2lzdGVyUmVzdWx0cywgdWludDY0X3QqIGNhbGxlZUZyYW1lUG9pbnRlcikpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBjb25zdCBUeXBlRGVmaW5p
dGlvbiogdHlwZSwgRW5jb2RlZEpTVmFsdWUgZW5jUmVzdWx0LCB1aW50NjRfdCogcmVnaXN0ZXJS
ZXN1bHRzLCB1aW50NjRfdCogY2FsbGVlRnJhbWVQb2ludGVyKSkKIHsKICAgICAvLyBGSVhNRTog
Q29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RlYWQuCiAgICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIwNgpAQCAtNTMxLDYg
KzUzMSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0
cywgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJCiAKICAgICB1bnNpZ25lZCBpdGVyYXRp
b25Db3VudCA9IDA7CiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYnVmZmVyOworICAgIEpTVmFs
dWUgcmVzdWx0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY1Jlc3VsdCk7CiAgICAgZm9yRWFjaEluSXRl
cmFibGUoZ2xvYmFsT2JqZWN0LCByZXN1bHQsIFsmXSAoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpT
VmFsdWUgdmFsdWUpIC0+IHZvaWQgewogICAgICAgICBpZiAoYnVmZmVyLnNpemUoKSA8IHNpZ25h
dHVyZS0+cmV0dXJuQ291bnQoKSkKICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQodmFsdWUpOwpA
QCAtNTgwLDggKzU4MSwxMCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRl
cmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSQogICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogCiAgICAgICAgIGF1dG8gcmVwID0gd2Fz
bUNhbGxJbmZvLnJlc3VsdHNbaW5kZXhdOwotICAgICAgICBpZiAocmVwLmlzUmVnKCkpCi0gICAg
ICAgICAgICByZWdpc3RlclJlc3VsdHNbcmVnaXN0ZXJSZXN1bHRPZmZzZXRzLmZpbmQocmVwLnJl
ZygpKS0+b2Zmc2V0KCkgLyBzaXplb2YodWludDY0X3QpXSA9IHVuYm94ZWRWYWx1ZTsKKyAgICAg
ICAgaWYgKHJlcC5pc0dQUigpKQorICAgICAgICAgICAgcmVnaXN0ZXJSZXN1bHRzW3JlZ2lzdGVy
UmVzdWx0T2Zmc2V0cy5maW5kKHJlcC5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSAvIHNp
emVvZih1aW50NjRfdCldID0gdW5ib3hlZFZhbHVlOworICAgICAgICBlbHNlIGlmIChyZXAuaXNG
UFIoKSkKKyAgICAgICAgICAgIHJlZ2lzdGVyUmVzdWx0c1tyZWdpc3RlclJlc3VsdE9mZnNldHMu
ZmluZChyZXAuZnByKCkpLT5vZmZzZXQoKSAvIHNpemVvZih1aW50NjRfdCldID0gdW5ib3hlZFZh
bHVlOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjYWxsZWVGcmFtZVBvaW50ZXJbcmVwLm9m
ZnNldEZyb21GUCgpIC8gc2l6ZW9mKHVpbnQ2NF90KV0gPSB1bmJveGVkVmFsdWU7CiAgICAgfQpA
QCAtNjA3LDEyICs2MTAsMTYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFs
bG9jYXRlUmVzdWx0c0FycmF5LCBKU0FycmF5KiwgKENhbGxGcmFtZSogY2EKICAgICBhdXRvIHdh
c21DYWxsSW5mbyA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpLmNhbGxJbmZvcm1hdGlvbkZvcigq
dHlwZSk7CiAgICAgUmVnaXN0ZXJBdE9mZnNldExpc3QgcmVnaXN0ZXJSZXN1bHRzID0gd2FzbUNh
bGxJbmZvLmNvbXB1dGVSZXN1bHRzT2Zmc2V0TGlzdCgpOwogCi0gICAgc3RhdGljX2Fzc2VydChz
aXplb2YoSlNWYWx1ZSkgPT0gc2l6ZW9mKENQVVJlZ2lzdGVyKSwgIlRoZSBjb2RlIGJlbG93IHJl
bGllcyBvbiB0aGlzLiIpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaWduYXR1cmUt
PnJldHVybkNvdW50KCk7ICsraSkgewogICAgICAgICBWYWx1ZUxvY2F0aW9uIGxvYyA9IHdhc21D
YWxsSW5mby5yZXN1bHRzW2ldOwogICAgICAgICBKU1ZhbHVlIHZhbHVlOwotICAgICAgICBpZiAo
bG9jLmlzUmVnKCkpCi0gICAgICAgICAgICB2YWx1ZSA9IHN0YWNrUG9pbnRlckZyb21DYWxsZWVb
KHJlZ2lzdGVyUmVzdWx0cy5maW5kKGxvYy5yZWcoKSktPm9mZnNldCgpICsgd2FzbUNhbGxJbmZv
LmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcykgLyBzaXplb2YoSlNWYWx1ZSldOwor
ICAgICAgICBpZiAobG9jLmlzR1BSKCkpIHsKKyNpZiBVU0UoSlNWQUxFMzJfNjQpCisgICAgICAg
ICAgICBBU1NFUlQocmVnaXN0ZXJSZXN1bHRzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSkt
Pm9mZnNldCgpICsgNCA9PSByZWdpc3RlclJlc3VsdHMuZmluZChsb2MuanNyKCkudGFnR1BSKCkp
LT5vZmZzZXQoKSk7CisjZW5kaWYKKyAgICAgICAgICAgIHZhbHVlID0gc3RhY2tQb2ludGVyRnJv
bUNhbGxlZVsocmVnaXN0ZXJSZXN1bHRzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9m
ZnNldCgpICsgd2FzbUNhbGxJbmZvLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcykg
LyBzaXplb2YoSlNWYWx1ZSldOworICAgICAgICB9IGVsc2UgaWYgKGxvYy5pc0ZQUigpKQorICAg
ICAgICAgICAgdmFsdWUgPSBzdGFja1BvaW50ZXJGcm9tQ2FsbGVlWyhyZWdpc3RlclJlc3VsdHMu
ZmluZChsb2MuZnByKCkpLT5vZmZzZXQoKSArIHdhc21DYWxsSW5mby5oZWFkZXJBbmRBcmd1bWVu
dFN0YWNrU2l6ZUluQnl0ZXMpIC8gc2l6ZW9mKEpTVmFsdWUpXTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgdmFsdWUgPSBzdGFja1BvaW50ZXJGcm9tQ2FsbGVlW2xvYy5vZmZzZXRGcm9tU1Ao
KSAvIHNpemVvZihKU1ZhbHVlKV07CiAgICAgICAgIHJlc3VsdC0+aW5pdGlhbGl6ZUluZGV4KGlu
aXRpYWxpemF0aW9uU2NvcGUsIGksIHZhbHVlKTsKQEAgLTk0Nyw3ICs5NTQsOCBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRocm93LCB2b2lkKiwgKEluc3RhbmNlKiBp
bnN0YW5jZSwgQ2FsbEZyYQogICAgIC8vIHRvIHRoZSBleGNlcHRpb24gaGFuZGxlci4gSWYgd2Ug
ZGlkIHRoaXMsIHdlIGNvdWxkIHJlbW92ZSB0aGlzIHRlcnJpYmxlIGhhY2suCiAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDQ0MAogICAgIHZtLmNhbGxl
ZUZvcldhc21DYXRjaCA9IGNhbGxGcmFtZS0+Y2FsbGVlKCk7Ci0gICAgYml0d2lzZV9jYXN0PHVp
bnQ2NF90Kj4oY2FsbEZyYW1lKVtzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxl
ZSldID0gYml0d2lzZV9jYXN0PHVpbnQ2NF90Pihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CisgICAg
UmVnaXN0ZXIqIGNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8UmVnaXN0ZXIqPihjYWxsRnJhbWUp
ICsgc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpOworICAgICpjYWxsZWVT
bG90ID0gYml0d2lzZV9jYXN0PEpTQ2VsbCo+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsKICAgICBy
ZXR1cm4gdm0udGFyZ2V0TWFjaGluZVBDRm9yVGhyb3c7CiB9CiAKQEAgLTk3Myw3ICs5ODEsOCBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVJldGhyb3csIHZvaWQqLCAo
SW5zdGFuY2UqIGluc3RhbmNlLCBDYWxsRgogICAgIC8vIHRvIHRoZSBleGNlcHRpb24gaGFuZGxl
ci4gSWYgd2UgZGlkIHRoaXMsIHdlIGNvdWxkIHJlbW92ZSB0aGlzIHRlcnJpYmxlIGhhY2suCiAg
ICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDQ0MAogICAg
IHZtLmNhbGxlZUZvcldhc21DYXRjaCA9IGNhbGxGcmFtZS0+Y2FsbGVlKCk7Ci0gICAgYml0d2lz
ZV9jYXN0PHVpbnQ2NF90Kj4oY2FsbEZyYW1lKVtzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNs
b3Q6OmNhbGxlZSldID0gYml0d2lzZV9jYXN0PHVpbnQ2NF90Pihqc0luc3RhbmNlLT5tb2R1bGUo
KSk7CisgICAgUmVnaXN0ZXIqIGNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8UmVnaXN0ZXIqPihj
YWxsRnJhbWUpICsgc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpOworICAg
ICpjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PEpTQ2VsbCo+KGpzSW5zdGFuY2UtPm1vZHVsZSgp
KTsKICAgICByZXR1cm4gdm0udGFyZ2V0TWFjaGluZVBDRm9yVGhyb3c7CiB9CiAKQEAgLTEwMDgs
MTIgKzEwMTcsMTQgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21Ub0pT
RXhjZXB0aW9uLCB2b2lkKiwgKENhbGxGcmFtZSogY2FsbEZyYW0KICAgICAvLyB0byB0aGUgZXhj
ZXB0aW9uIGhhbmRsZXIuIElmIHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJy
aWJsZSBoYWNrLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzA0NDAKICAgICB2bS5jYWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgp
OwotICAgIGJpdHdpc2VfY2FzdDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50
PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oaW5zdGFu
Y2UtPm1vZHVsZSgpKTsKKyAgICBSZWdpc3RlciogY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxS
ZWdpc3Rlcio+KGNhbGxGcmFtZSkgKyBzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNh
bGxlZSk7CisgICAgKmNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8SlNDZWxsKj4oaW5zdGFuY2Ut
Pm1vZHVsZSgpKTsKICAgICByZXR1cm4gdm0udGFyZ2V0TWFjaGluZVBDRm9yVGhyb3c7CiB9CiAK
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtUmV0cmlldmVBbmRDbGVhckV4
Y2VwdGlvbklmQ2F0Y2hhYmxlLCBQb2ludGVyUGFpciwgKEluc3RhbmNlKiBpbnN0YW5jZSkpCiB7
CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGpzSW5zdGFu
Y2UgPSBpbnN0YW5jZS0+b3duZXI8SlNXZWJBc3NlbWJseUluc3RhbmNlPigpOwogICAgIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0luc3RhbmNlLT5nbG9iYWxPYmplY3QoKTsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0xMDMzLDYgKzEwNDQsMTMgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZXRyaWV2ZUFuZENsZWFyRXhjZXB0
aW9uSWZDYXRjaGFibGUsIFBvaW4KICAgICBpZiAoSlNXZWJBc3NlbWJseUV4Y2VwdGlvbiogd2Fz
bUV4Y2VwdGlvbiA9IGpzRHluYW1pY0Nhc3Q8SlNXZWJBc3NlbWJseUV4Y2VwdGlvbio+KHRocm93
blZhbHVlKSkKICAgICAgICAgcGF5bG9hZCA9IGJpdHdpc2VfY2FzdDx2b2lkKj4od2FzbUV4Y2Vw
dGlvbi0+cGF5bG9hZCgpLmRhdGEoKSk7CiAgICAgcmV0dXJuIFBvaW50ZXJQYWlyIHsgYml0d2lz
ZV9jYXN0PHZvaWQqPihKU1ZhbHVlOjplbmNvZGUodGhyb3duVmFsdWUpKSwgcGF5bG9hZCB9Owor
I2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAvLyBOb3RlOiBUaGlzIGZ1bmN0aW9uIG5lZWRz
IHRvIHJldHVybiBhIHBvaW50ZXIgYW5kIGEgSlNWYWx1ZSwgc28gd2lsbCBuZWVkIHRvCisgICAg
Ly8gY2hhbmdlIHNpZ25hdHVyZSBvbiBKU1ZBTEUzMl82NCwgbmV2ZXJ0aGVsZXNzLCBmb3Igbm93
IGl0J3MgdW51c2VkLgorICAgIFVOUkVBQ0hBQkxFX0ZPUl9QTEFURk9STSgpOworICAgIFVOVVNF
RF9QQVJBTShpbnN0YW5jZSk7CisgICAgcmV0dXJuIHsgbnVsbHB0ciwgbnVsbHB0ciB9OworI2Vu
ZGlmCiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaAppbmRleCA1OGQxNTk3NWU4OGQyMDNkYmM5ODQ0YzE0
ZTU0MjQwMmE2MTZjYjlhLi41Y2MwMzE0OGVhZWViOTU1MGZkZDdkNTEzMzljODJmNjYzMzE1N2M2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmgKQEAgLTQ3
LDIyICs0NywyMyBAQCBuYW1lc3BhY2UgV2FzbSB7CiBjbGFzcyBJbnN0YW5jZTsKIGNsYXNzIFR5
cGVEZWZpbml0aW9uOwogCi12b2lkIGxvYWRWYWx1ZXNJbnRvQnVmZmVyKFByb2JlOjpDb250ZXh0
JiwgY29uc3QgU3RhY2tNYXAmLCB1aW50NjRfdCogYnVmZmVyKTsKK3R5cGVkZWYgaW50NjRfdCBF
bmNvZGVkV2FzbVZhbHVlOwogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQordm9pZCBs
b2FkVmFsdWVzSW50b0J1ZmZlcihQcm9iZTo6Q29udGV4dCYsIGNvbnN0IFN0YWNrTWFwJiwgdWlu
dDY0X3QqIGJ1ZmZlcik7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21U
cmlnZ2VyT1NSRW50cnlOb3csIHZvaWQsIChQcm9iZTo6Q29udGV4dCYpKTsKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJUaWVyVXBOb3csIHZvaWQsIChJbnN0
YW5jZSosIHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgpKTsKICNlbmRpZgogSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25XYXNtVW53aW5kLCB2b2lkLCAoQ2FsbEZyYW1lKikpOwogCi1K
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCwgaW50NjRfdCwg
KENhbGxGcmFtZSosIEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29udmVydFRvRjY0LCBkb3VibGUsIChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7Ci1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0kzMiwgaW50MzJfdCwgKENhbGxG
cmFtZSosIEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29u
dmVydFRvRjMyLCBmbG9hdCwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTY0LCBpbnQ2NF90LCAoQ2FsbEZyYW1lKiwg
RW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29u
dmVydFRvRjY0LCBkb3VibGUsIChDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIGludDMyX3QsIChDYWxs
RnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db252ZXJ0VG9GMzIsIGZsb2F0LCAoQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUpKTsK
IAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVu
Y29kZWRKU1ZhbHVlLCAoQ2FsbEZyYW1lKiwgSW5zdGFuY2UqLCBpbnQ2NF90KSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFs
dWUsIChDYWxsRnJhbWUqLCBJbnN0YW5jZSosIEVuY29kZWRXYXNtVmFsdWUpKTsKIAotSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0cywgdm9pZCwgKENhbGxG
cmFtZSosIEluc3RhbmNlKiwgY29uc3QgVHlwZURlZmluaXRpb24qLCBKU1ZhbHVlLCB1aW50NjRf
dCosIHVpbnQ2NF90KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVy
YXRlUmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSosIEluc3RhbmNlKiwgY29uc3QgVHlwZURlZmlu
aXRpb24qLCBFbmNvZGVkSlNWYWx1ZSwgdWludDY0X3QqLCB1aW50NjRfdCopKTsKIEpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXksIEpTQXJyYXkq
LCAoQ2FsbEZyYW1lKiwgV2FzbTo6SW5zdGFuY2UqLCBjb25zdCBUeXBlRGVmaW5pdGlvbiosIElu
ZGV4aW5nVHlwZSwgSlNWYWx1ZSopKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25XYXNtV3JpdGVCYXJyaWVyU2xvd1BhdGgsIHZvaWQsIChKU0NlbGwqLCBWTSopKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYWdlQ291bnQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYWdlQ291bnQuaAppbmRleCBiN2Q4YzlmY2Y3
MmIxNDc5YzNhM2YxMjNiZmEyYjRkMmQyNDdjY2UyLi4zYzc1NTEyZjQ0YTlhODk0YjFkMTY2YWM0
NzY2NzAwM2Q0ODI3NDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtUGFnZUNvdW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhZ2VD
b3VudC5oCkBAIC05OCw3ICs5OCwxMiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3RleHBy
IHVpbnQzMl90IHBhZ2VTaXplID0gNjQgKiBLQjsKIHByaXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0
ZXhwciB1aW50MzJfdCBtYXhQYWdlQ291bnQgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oTUFYX0FS
UkFZX0JVRkZFUl9TSVpFIC8gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHBhZ2VTaXplKSk7CisgICAg
Ly8gVGhlIHNwZWMgcmVxdWlyZXMgd2UgYXJlIGFibGUgdG8gaW5zdGFudGlhdGUgYSBtZW1vcnkg
d2l0aCBhICptYXhpbXVtKiBzaXplIG9mIDY0SyBwYWdlcy4KKyAgICAvLyBUaGlzIGRvZXMgbm90
IG1lYW4gdGhlIG1lbW9yeSBjYW4gbmVjZXNzYXJpbHkgZ3JvdyB0aGF0IGJpZywgYW5kIHdoZXJl
IHRoZQorICAgIC8vIE1BWF9BUlJBWV9CVUZGRVJfU0laRSBpcyBzbWFsbGVyIChlLmcuOiBvbiAz
Mi1iaXQgcGxhdGZvcm1zKSwgdHJ5aW5nIHRvIGdyb3cgdGhlIG1lbW9yeQorICAgIC8vIHRoYXQg
bGFyZ2Ugd2lsbCBmYWlsLCB3aGljaCBpcyBhY2NlcHRhYmxlIGFjY29yZGluZyB0byB0aGUgc3Bl
Yy4gTmV2ZXJ0aGVsZXNzLCB3ZSBzaG91bGQKKyAgICAvLyBiZSBhYmxlIHRvIHBhcnNlIHN1Y2gg
YSBtZW1vcnkgYW5kIGluc3RhbnRpYXRlIGl0IHdpdGggYSBzbWFsbGVyIGluaXRpYWwgc2l6ZS4K
KyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG1heFBhZ2VDb3VudCA9IHN0ZDo6bWF4PHVp
bnQzMl90Pig2NCoxMDI0LCBNQVhfQVJSQVlfQlVGRkVSX1NJWkUgLyBzdGF0aWNfY2FzdDx1aW50
NjRfdD4ocGFnZVNpemUpKTsKIAogICAgIHVpbnQzMl90IG1fcGFnZUNvdW50OwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaAppbmRleCA0MzhmZjNmNzJkOWI2NjQ4YWFm
NzBhNDlhMGFhN2IxNTE4YjZiOWFlLi44MGI3YjdiYzg5MjdhOTAxZjQwMzU1OGQwMjM1ODQwMGNl
MTA4YjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2Vy
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5oCkBAIC0yMDgs
NyArMjA4LDcgQEAgQUxXQVlTX0lOTElORSBib29sIFBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNl
VUludDMyKHVpbnQzMl90JiByZXN1bHQpCiB7CiAgICAgaWYgKGxlbmd0aCgpIDwgNCB8fCBtX29m
ZnNldCA+IGxlbmd0aCgpIC0gNCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJlc3VsdCA9
ICpyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oc291cmNlKCkgKyBtX29mZnNldCk7
CisgICAgbWVtY3B5KCZyZXN1bHQsIHNvdXJjZSgpICsgbV9vZmZzZXQsIHNpemVvZih1aW50MzJf
dCkpOyAvLyBzcmMgY2FuIGJlIHVuYWxpZ25lZAogICAgIG1fb2Zmc2V0ICs9IDQ7CiAgICAgcmV0
dXJuIHRydWU7CiB9CkBAIC0yMTgsNyArMjE4LDcgQEAgQUxXQVlTX0lOTElORSBib29sIFBhcnNl
cjxTdWNjZXNzVHlwZT46OnBhcnNlVUludDY0KHVpbnQ2NF90JiByZXN1bHQpCiB7CiAgICAgaWYg
KGxlbmd0aCgpIDwgOCB8fCBtX29mZnNldCA+IGxlbmd0aCgpIC0gOCkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIHJlc3VsdCA9ICpyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ2NF90Kj4o
c291cmNlKCkgKyBtX29mZnNldCk7CisgICAgbWVtY3B5KCZyZXN1bHQsIHNvdXJjZSgpICsgbV9v
ZmZzZXQsIHNpemVvZih1aW50NjRfdCkpOyAvLyBzcmMgY2FuIGJlIHVuYWxpZ25lZAogICAgIG1f
b2Zmc2V0ICs9IDg7CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21TbG93UGF0aHMuY3BwCmluZGV4IDFjZTk4ZDBiMGE3MjM5YTI2NzE5NGUwODU4
YWFkMDEzYTc0MDM1ZDMuLjdhYThiZDgxNGM5OGRkYjJjZDljOTExMjBmMjk4MWE0ODdmYzQ5ZmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3BwCkBAIC02
NDIsNyArNjQyLDggQEAgV0FTTV9TTE9XX1BBVEhfREVDTCh0aHJvdykKICAgICAvLyB0byB0aGUg
ZXhjZXB0aW9uIGhhbmRsZXIuIElmIHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0
ZXJyaWJsZSBoYWNrLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzA0NDAKICAgICB2bS5jYWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxl
ZSgpOwotICAgIGJpdHdpc2VfY2FzdDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8
aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oanNJ
bnN0YW5jZS0+bW9kdWxlKCkpOworICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9j
YXN0PFJlZ2lzdGVyKj4oY2FsbEZyYW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xv
dDo6Y2FsbGVlKTsKKyAgICAqY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihqc0lu
c3RhbmNlLT5tb2R1bGUoKSk7CiAgICAgV0FTTV9SRVRVUk5fVFdPKHZtLnRhcmdldE1hY2hpbmVQ
Q0ZvclRocm93LCBudWxscHRyKTsKIH0KIApAQCAtNjcwLDcgKzY3MSw4IEBAIFdBU01fU0xPV19Q
QVRIX0RFQ0wocmV0aHJvdykKICAgICAvLyB0byB0aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElmIHdl
IGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNrLgogICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAKICAgICB2bS5jYWxs
ZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgpOwotICAgIGJpdHdpc2VfY2FzdDx1
aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxs
ZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOworICAg
IFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJlZ2lzdGVyKj4oY2FsbEZyYW1l
KSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAgICAqY2FsbGVl
U2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CiAgICAg
V0FTTV9SRVRVUk5fVFdPKHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRocm93LCBudWxscHRyKTsKIH0K
IApAQCAtNzE3LDYgKzcxOSwyMTQgQEAgV0FTTV9TTE9XX1BBVEhfREVDTChyZXRyaWV2ZV9hbmRf
Y2xlYXJfZXhjZXB0aW9uKQogICAgIFdBU01fUkVUVVJOX1RXTyhwYywgcGF5bG9hZCk7CiB9CiAK
KyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorV0FTTV9TTE9XX1BBVEhfREVDTChmMzJfY2VpbCkKK3sK
KyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+
YXM8V2FzbUYzMkNlaWw+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24u
bV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNv
ZGUod2FzbVVuYm94ZWRGbG9hdChzdGQ6OmNlaWwob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xP
V19QQVRIX0RFQ0woZjMyX2Zsb29yKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7Cisg
ICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjMyRmxvb3I+KCk7CisgICAgZmxvYXQg
b3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAg
ICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUod2FzbVVuYm94ZWRGbG9hdChzdGQ6OmZsb29y
KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGYzMl90cnVuYykKK3sKKyAg
ICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8
V2FzbUYzMlRydW5jPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1f
b3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2Rl
KHdhc21VbmJveGVkRmxvYXQoc3RkOjp0cnVuYyhvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9X
X1BBVEhfREVDTChmMzJfbmVhcmVzdCkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJp
Y19saW1pdHM8ZmxvYXQ+Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOwor
ICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5h
czxXYXNtRjMyTmVhcmVzdD4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlv
bi5tX29wZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVu
Y29kZSh3YXNtVW5ib3hlZEZsb2F0KHN0ZDo6bmVhcmJ5aW50KG9wZXJhbmQpKSkpOworfQorCitX
QVNNX1NMT1dfUEFUSF9ERUNMKGY2NF9jZWlsKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5j
ZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjY0Q2VpbD4oKTsKKyAgICBk
b3VibGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91Ymxl
KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHN0ZDo6
Y2VpbChvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmNjRfZmxvb3IpCit7
CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMt
PmFzPFdhc21GNjRGbG9vcj4oKTsKKyAgICBkb3VibGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rp
b24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6
ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHN0ZDo6Zmxvb3Iob3BlcmFuZCkpKSk7Cit9CisKK1dBU01f
U0xPV19QQVRIX0RFQ0woZjY0X3RydW5jKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7
CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjY0VHJ1bmM+KCk7CisgICAgZG91
YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgp
OworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGQ6OnRy
dW5jKG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGY2NF9uZWFyZXN0KQor
eworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnJvdW5kX3N0
eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNl
KTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GNjROZWFyZXN0PigpOworICAg
IGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3Vi
bGUoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoc3Rk
OjpuZWFyYnlpbnQob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjMyX2Nv
bnZlcnRfdV9pNjQpCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPGZs
b2F0Pjo6cm91bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90b19uZWFyZXN0KTsKKyAgICBVTlVTRURf
UEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUYzMkNv
bnZlcnRVSTY0PigpOworICAgIHVpbnQ2NF90IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1f
b3BlcmFuZCkudW5ib3hlZEludDY0KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2Rl
KHdhc21VbmJveGVkRmxvYXQoc3RhdGljX2Nhc3Q8ZmxvYXQ+KG9wZXJhbmQpKSkpOworfQorCitX
QVNNX1NMT1dfUEFUSF9ERUNMKGYzMl9jb252ZXJ0X3NfaTY0KQoreworICAgIHN0YXRpY19hc3Nl
cnQoc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91bmRf
dG9fbmVhcmVzdCk7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3Ry
dWN0aW9uID0gcGMtPmFzPFdhc21GMzJDb252ZXJ0U0k2ND4oKTsKKyAgICBpbnQ2NF90IG9wZXJh
bmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEludDY0KCk7CisgICAgV0FT
TV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKHdhc21VbmJveGVkRmxvYXQoc3RhdGljX2Nhc3Q8Zmxv
YXQ+KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGY2NF9jb252ZXJ0X3Vf
aTY0KQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnJv
dW5kX3N0eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7CisgICAgVU5VU0VEX1BBUkFNKGlu
c3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GNjRDb252ZXJ0VUk2
ND4oKTsKKyAgICB1aW50NjRfdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQp
LnVuYm94ZWRJbnQ2NCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJs
ZU51bWJlcihzdGF0aWNfY2FzdDxkb3VibGU+KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1df
UEFUSF9ERUNMKGY2NF9jb252ZXJ0X3NfaTY0KQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpu
dW1lcmljX2xpbWl0czxmbG9hdD46OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVz
dCk7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0g
cGMtPmFzPFdhc21GNjRDb252ZXJ0U0k2ND4oKTsKKyAgICBpbnQ2NF90IG9wZXJhbmQgPSBSRUFE
KGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEludDY0KCk7CisgICAgV0FTTV9SRVRVUk4o
SlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHN0YXRpY19jYXN0PGRvdWJsZT4ob3BlcmFu
ZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3VfZjMyKQoreworICAg
IFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxX
YXNtSTY0VHJ1bmNVRjMyPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9u
Lm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkg
fHwgb3BlcmFuZCA8PSAtMS4wZiB8fCBvcGVyYW5kID49IC0yLjBmICogc3RhdGljX2Nhc3Q8Zmxv
YXQ+KElOVDY0X01JTikpCisgICAgICAgIFdBU01fVEhST1coV2FzbTo6RXhjZXB0aW9uVHlwZTo6
T3V0T2ZCb3VuZHNUcnVuYyk7CisgICAgV0FTTV9SRVRVUk4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KG9wZXJhbmQpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc19mMzIpCit7
CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMt
PmFzPFdhc21JNjRUcnVuY1NGMzI+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1
Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBpZiAoc3RkOjppc25hbihvcGVy
YW5kKSB8fCBvcGVyYW5kIDwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikgfHwgb3BlcmFu
ZCA+PSAtc3RhdGljX2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikpCisgICAgICAgIFdBU01fVEhST1co
V2FzbTo6RXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNUcnVuYyk7CisgICAgV0FTTV9SRVRVUk4o
c3RhdGljX2Nhc3Q8aW50NjRfdD4ob3BlcmFuZCkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNM
KGk2NF90cnVuY191X2Y2NCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1
dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jVUY2ND4oKTsKKyAgICBkb3VibGUg
b3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7Cisg
ICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8PSAtMS4wIHx8IG9wZXJhbmQg
Pj0gLTIuMCAqIHN0YXRpY19jYXN0PGRvdWJsZT4oSU5UNjRfTUlOKSkKKyAgICAgICAgV0FTTV9U
SFJPVyhXYXNtOjpFeGNlcHRpb25UeXBlOjpPdXRPZkJvdW5kc1RydW5jKTsKKyAgICBXQVNNX1JF
VFVSTihzdGF0aWNfY2FzdDx1aW50NjRfdD4ob3BlcmFuZCkpOworfQorCitXQVNNX1NMT1dfUEFU
SF9ERUNMKGk2NF90cnVuY19zX2Y2NCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOwor
ICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jU0Y2ND4oKTsKKyAgICBk
b3VibGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91Ymxl
KCk7CisgICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8IHN0YXRpY19jYXN0
PGRvdWJsZT4oSU5UNjRfTUlOKSB8fCBvcGVyYW5kID49IC1zdGF0aWNfY2FzdDxkb3VibGU+KElO
VDY0X01JTikpCisgICAgICAgIFdBU01fVEhST1coV2FzbTo6RXhjZXB0aW9uVHlwZTo6T3V0T2ZC
b3VuZHNUcnVuYyk7CisgICAgV0FTTV9SRVRVUk4oc3RhdGljX2Nhc3Q8aW50NjRfdD4ob3BlcmFu
ZCkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY19zYXRfZjMyX3UpCit7Cisg
ICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFz
PFdhc21JNjRUcnVuY1NhdEYzMlU+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1
Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICB1aW50NjRfdCByZXN1bHQ7Cisg
ICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8PSAtMS4wZikKKyAgICAgICAg
cmVzdWx0ID0gMDsKKyAgICBlbHNlIGlmIChvcGVyYW5kID49IC0yLjBmICogc3RhdGljX2Nhc3Q8
ZmxvYXQ+KElOVDY0X01JTikpCisgICAgICAgIHJlc3VsdCA9IFVJTlQ2NF9NQVg7CisgICAgZWxz
ZQorICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4ob3BlcmFuZCk7CisgICAg
V0FTTV9SRVRVUk4ocmVzdWx0KTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNf
c2F0X2YzMl9zKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0
cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1bmNTYXRGMzJTPigpOworICAgIGZsb2F0IG9wZXJh
bmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgaW50
NjRfdCByZXN1bHQ7CisgICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkpCisgICAgICAgIHJlc3Vs
dCA9IDA7CisgICAgZWxzZSBpZiAob3BlcmFuZCA8IHN0YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9N
SU4pKQorICAgICAgICByZXN1bHQgPSBJTlQ2NF9NSU47CisgICAgZWxzZSBpZiAob3BlcmFuZCA+
PSAtc3RhdGljX2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikpCisgICAgICAgIHJlc3VsdCA9IElOVDY0
X01BWDsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PGludDY0X3Q+KG9w
ZXJhbmQpOworICAgIFdBU01fUkVUVVJOKHJlc3VsdCk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RF
Q0woaTY0X3RydW5jX3NhdF9mNjRfdSkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOwor
ICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jU2F0RjY0VT4oKTsKKyAg
ICBkb3VibGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91
YmxlKCk7CisgICAgdWludDY0X3QgcmVzdWx0OworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQp
IHx8IG9wZXJhbmQgPD0gLTEuMCkKKyAgICAgICAgcmVzdWx0ID0gMDsKKyAgICBlbHNlIGlmIChv
cGVyYW5kID49IC0yLjAgKiBzdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0X01JTikpCisgICAgICAg
IHJlc3VsdCA9IFVJTlQ2NF9NQVg7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBzdGF0aWNf
Y2FzdDx1aW50NjRfdD4ob3BlcmFuZCk7CisgICAgV0FTTV9SRVRVUk4ocmVzdWx0KTsKK30KKwor
V0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc2F0X2Y2NF9zKQoreworICAgIFVOVVNFRF9Q
QVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1
bmNTYXRGNjRTPigpOworICAgIGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29w
ZXJhbmQpLnVuYm94ZWREb3VibGUoKTsKKyAgICBpbnQ2NF90IHJlc3VsdDsKKyAgICBpZiAoc3Rk
Ojppc25hbihvcGVyYW5kKSkKKyAgICAgICAgcmVzdWx0ID0gMDsKKyAgICBlbHNlIGlmIChvcGVy
YW5kIDwgc3RhdGljX2Nhc3Q8ZG91YmxlPihJTlQ2NF9NSU4pKQorICAgICAgICByZXN1bHQgPSBJ
TlQ2NF9NSU47CisgICAgZWxzZSBpZiAob3BlcmFuZCA+PSAtc3RhdGljX2Nhc3Q8ZG91YmxlPihJ
TlQ2NF9NSU4pKQorICAgICAgICByZXN1bHQgPSBJTlQ2NF9NQVg7CisgICAgZWxzZQorICAgICAg
ICByZXN1bHQgPSBzdGF0aWNfY2FzdDxpbnQ2NF90PihvcGVyYW5kKTsKKyAgICBXQVNNX1JFVFVS
TihyZXN1bHQpOworfQorI2VuZGlmCisKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNs
b3dfcGF0aF93YXNtX3Rocm93X2V4Y2VwdGlvbihDYWxsRnJhbWUqIGNhbGxGcmFtZSwgY29uc3Qg
V2FzbUluc3RydWN0aW9uKiBwYywgV2FzbTo6SW5zdGFuY2UqIGluc3RhbmNlLCBXYXNtOjpFeGNl
cHRpb25UeXBlIGV4Y2VwdGlvblR5cGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHBjKTsKQEAgLTcy
NSwxNiArOTM1LDI4IEBAIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93
YXNtX3Rocm93X2V4Y2VwdGlvbihDYWxsRnJhbWUqIGNhbGxGcmFtCiAKIGV4dGVybiAiQyIgU2xv
d1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3BvcGNvdW50KGNvbnN0IFdhc21JbnN0cnVj
dGlvbiogcGMsIHVpbnQzMl90IHgpCiB7Ci0gICAgdm9pZCogcmVzdWx0ID0gYml0d2lzZV9jYXN0
PHZvaWQqPihzdGF0aWNfY2FzdDx1aW50NjRfdD4oX19idWlsdGluX3BvcGNvdW50KHgpKSk7Cisg
ICAgdm9pZCogcmVzdWx0ID0gYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDxzaXplX3Q+
KF9fYnVpbHRpbl9wb3Bjb3VudCh4KSkpOwogICAgIFdBU01fUkVUVVJOX1RXTyhwYywgcmVzdWx0
KTsKIH0KIAogZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fcG9w
Y291bnRsbChjb25zdCBXYXNtSW5zdHJ1Y3Rpb24qIHBjLCB1aW50NjRfdCB4KQogewotICAgIHZv
aWQqIHJlc3VsdCA9IGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KF9f
YnVpbHRpbl9wb3Bjb3VudGxsKHgpKSk7CisgICAgdm9pZCogcmVzdWx0ID0gYml0d2lzZV9jYXN0
PHZvaWQqPihzdGF0aWNfY2FzdDxzaXplX3Q+KF9fYnVpbHRpbl9wb3Bjb3VudGxsKHgpKSk7CiAg
ICAgV0FTTV9SRVRVUk5fVFdPKHBjLCByZXN1bHQpOwogfQogCisjaWYgVVNFKEpTVkFMVUUzMl82
NCkKKy8vIE5vdGU6IEFsbCB0aGVzZSBkaXYgYW5kIHJlbSBvcHMgcGVyZm9ybSBleGNlcHRpb24g
Y2hlY2tzIGluIGFzbQorZXh0ZXJuICJDIiBpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9kaXZf
cyhpbnQzMl90IGEsIGludDMyX3QgYikgeyByZXR1cm4gYSAvIGI7IH0KK2V4dGVybiAiQyIgdWlu
dDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX2Rpdl91KHVpbnQzMl90IGEsIHVpbnQzMl90IGIpIHsg
cmV0dXJuIGEgLyBiOyB9CitleHRlcm4gIkMiIGludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX3Jl
bV9zKGludDMyX3QgYSwgaW50MzJfdCBiKSB7IHJldHVybiBhICUgYjsgfQorZXh0ZXJuICJDIiB1
aW50MzJfdCBzbG93X3BhdGhfd2FzbV9pMzJfcmVtX3UodWludDMyX3QgYSwgdWludDMyX3QgYikg
eyByZXR1cm4gYSAlIGI7IH0KK2V4dGVybiAiQyIgaW50NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRf
ZGl2X3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpIHsgcmV0dXJuIGEgLyBiOyB9CitleHRlcm4gIkMi
IHVpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9kaXZfdSh1aW50NjRfdCBhLCB1aW50NjRfdCBi
KSB7IHJldHVybiBhIC8gYjsgfQorZXh0ZXJuICJDIiBpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2
NF9yZW1fcyhpbnQ2NF90IGEsIGludDY0X3QgYikgeyByZXR1cm4gYSAlIGI7IH0KK2V4dGVybiAi
QyIgdWludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X3JlbV91KHVpbnQ2NF90IGEsIHVpbnQ2NF90
IGIpIHsgcmV0dXJuIGEgJSBiOyB9CisjZW5kaWYKKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxM
SW50CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtU2xvd1BhdGhzLmgKaW5kZXggNDYwOWUzNmIwMzkyNGQxMGVhMDI3NDU2MTBm
MGYyZmU0ZTgzMWYyMi4uODlmNmUzOTRkODZjMjY3NzljODFhYTJlMzhjMDMxMDFhNDhhZDU0MCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuaApAQCAtOTQsNiAr
OTQsNDAgQEAgZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fdGhy
b3dfZXhjZXB0aW9uKENhbGxGcmFtZSosIGNvbnN0IFcKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1
cm5UeXBlIHNsb3dfcGF0aF93YXNtX3BvcGNvdW50KGNvbnN0IFdhc21JbnN0cnVjdGlvbiogcGMs
IHVpbnQzMl90KSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKIGV4dGVybiAiQyIg
U2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3BvcGNvdW50bGwoY29uc3QgV2FzbUlu
c3RydWN0aW9uKiBwYywgdWludDY0X3QpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFM
OwogCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGYz
Ml9jZWlsKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGYzMl9mbG9vcik7CitXQVNNX1NM
T1dfUEFUSF9ISURERU5fREVDTChmMzJfdHJ1bmMpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RF
Q0woZjMyX25lYXJlc3QpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjY0X2NlaWwpOwor
V0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjY0X2Zsb29yKTsKK1dBU01fU0xPV19QQVRIX0hJ
RERFTl9ERUNMKGY2NF90cnVuYyk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfbmVh
cmVzdCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmMzJfY29udmVydF91X2k2NCk7CitX
QVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmMzJfY29udmVydF9zX2k2NCk7CitXQVNNX1NMT1df
UEFUSF9ISURERU5fREVDTChmNjRfY29udmVydF91X2k2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURE
RU5fREVDTChmNjRfY29udmVydF9zX2k2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChp
NjRfdHJ1bmNfdV9mMzIpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3Nf
ZjMyKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGk2NF90cnVuY191X2Y2NCk7CitXQVNN
X1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNfc19mNjQpOworV0FTTV9TTE9XX1BBVEhf
SElEREVOX0RFQ0woaTY0X3RydW5jX3NhdF9mMzJfdSk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5f
REVDTChpNjRfdHJ1bmNfc2F0X2YzMl9zKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGk2
NF90cnVuY19zYXRfZjY0X3UpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5j
X3NhdF9mNjRfcyk7CisjZW5kaWYKKworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCitleHRlcm4gIkMi
IGludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX2Rpdl9zKGludDMyX3QgYSwgaW50MzJfdCBiKSBS
RUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgdWludDMyX3Qgc2xv
d19wYXRoX3dhc21faTMyX2Rpdl91KHVpbnQzMl90IGEsIHVpbnQzMl90IGIpIFJFRkVSRU5DRURf
RlJPTV9BU00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJDIiBpbnQzMl90IHNsb3dfcGF0aF93YXNt
X2kzMl9yZW1fcyhpbnQzMl90IGEsIGludDMyX3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZf
SU5URVJOQUw7CitleHRlcm4gIkMiIHVpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9yZW1fdSh1
aW50MzJfdCBhLCB1aW50MzJfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsK
K2V4dGVybiAiQyIgaW50NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRfZGl2X3MoaW50NjRfdCBhLCBp
bnQ2NF90IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJDIiB1
aW50NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRfZGl2X3UodWludDY0X3QgYSwgdWludDY0X3QgYikg
UkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMiIGludDY0X3Qgc2xv
d19wYXRoX3dhc21faTY0X3JlbV9zKGludDY0X3QgYSwgaW50NjRfdCBiKSBSRUZFUkVOQ0VEX0ZS
T01fQVNNIFdURl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgdWludDY0X3Qgc2xvd19wYXRoX3dhc21f
aTY0X3JlbV91KHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RG
X0lOVEVSTkFMOworI2VuZGlmCisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpMTEludAogCiAjZW5k
aWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbVZhbHVlTG9jYXRpb24uY3BwCmluZGV4IDUyMjNmM2FiNGU0MGZiNDk4NDdlMGU5NmE2
YzM5NzE4ZWY0MTA5YjUuLjY4Yzc4ODg5MDZkYjhiNTFjOTUwNGJlOWVjZTljYmJmY2VkMmZkMjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9u
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5j
cHAKQEAgLTM1LDggKzM1LDExIEBAIHZvaWQgVmFsdWVMb2NhdGlvbjo6ZHVtcChQcmludFN0cmVh
bSYgb3V0KSBjb25zdAogewogICAgIG91dC5wcmludChtX2tpbmQpOwogICAgIHN3aXRjaCAobV9r
aW5kKSB7Ci0gICAgY2FzZSBSZWdpc3RlcjoKLSAgICAgICAgb3V0LnByaW50KCIoIiwgcmVnKCks
ICIpIik7CisgICAgY2FzZSBHUFJSZWdpc3RlcjoKKyAgICAgICAgb3V0LnByaW50KCIoIiwganNy
KCksICIpIik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEZQUlJlZ2lzdGVyOgorICAgICAg
ICBvdXQucHJpbnQoIigiLCBmcHIoKSwgIikiKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
U3RhY2s6CiAgICAgICAgIG91dC5wcmludCgiKCIsIG9mZnNldEZyb21GUCgpLCAiKSIpOwpAQCAt
NTcsOCArNjAsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzo6V2FzbTsKIHZvaWQgcHJpbnRJbnRl
cm5hbChQcmludFN0cmVhbSYgb3V0LCBWYWx1ZUxvY2F0aW9uOjpLaW5kIGtpbmQpCiB7CiAgICAg
c3dpdGNoIChraW5kKSB7Ci0gICAgY2FzZSBWYWx1ZUxvY2F0aW9uOjpSZWdpc3RlcjoKLSAgICAg
ICAgb3V0LnByaW50KCJSZWdpc3RlciIpOworICAgIGNhc2UgVmFsdWVMb2NhdGlvbjo6R1BSUmVn
aXN0ZXI6CisgICAgICAgIG91dC5wcmludCgiR1BSUmVnaXN0ZXIiKTsKKyAgICAgICAgcmV0dXJu
OworICAgIGNhc2UgVmFsdWVMb2NhdGlvbjo6RlBSUmVnaXN0ZXI6CisgICAgICAgIG91dC5wcmlu
dCgiRlBSUmVnaXN0ZXIiKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgVmFsdWVMb2NhdGlv
bjo6U3RhY2s6CiAgICAgICAgIG91dC5wcmludCgiU3RhY2siKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5oCmluZGV4IGE2MWZiYThiZDAxY2I0YWMw
Y2E2YjZjYTdlZTQ0ZDdiNzcwZDQ4YTMuLjVjYjUxMGRiYmQwYjFiMDQ3ZjVjOTI2MTc5ZTFhM2Zi
OWNiYWIxY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1
ZUxvY2F0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9j
YXRpb24uaApAQCAtNDEsMjUgKzQxLDI3IEBAIGNsYXNzIFZhbHVlTG9jYXRpb24gewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGVudW0gS2luZCA6IHVpbnQ4X3Qg
ewotICAgICAgICBSZWdpc3RlciwKKyAgICAgICAgR1BSUmVnaXN0ZXIsCisgICAgICAgIEZQUlJl
Z2lzdGVyLAogICAgICAgICBTdGFjaywKICAgICAgICAgU3RhY2tBcmd1bWVudCwKICAgICB9Owog
CiAgICAgVmFsdWVMb2NhdGlvbigpCi0gICAgICAgIDogbV9raW5kKFJlZ2lzdGVyKQorICAgICAg
ICA6IG1fa2luZChHUFJSZWdpc3RlcikKICAgICB7CiAgICAgfQogCi0gICAgZXhwbGljaXQgVmFs
dWVMb2NhdGlvbihSZWcgcmVnKQotICAgICAgICA6IG1fa2luZChSZWdpc3RlcikKKyAgICBleHBs
aWNpdCBWYWx1ZUxvY2F0aW9uKEpTVmFsdWVSZWdzIHJlZ3MpCisgICAgICAgIDogbV9raW5kKEdQ
UlJlZ2lzdGVyKQogICAgIHsKLSAgICAgICAgdS5yZWcgPSByZWc7CisgICAgICAgIHUuanNyID0g
cmVnczsKICAgICB9CiAKLSAgICBzdGF0aWMgVmFsdWVMb2NhdGlvbiByZWcoUmVnIHJlZykKKyAg
ICBleHBsaWNpdCBWYWx1ZUxvY2F0aW9uKEZQUlJlZyByZWcpCisgICAgICAgIDogbV9raW5kKEZQ
UlJlZ2lzdGVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFZhbHVlTG9jYXRpb24ocmVnKTsKKyAg
ICAgICAgdS5mcHIgPSByZWc7CiAgICAgfQogCiAgICAgc3RhdGljIFZhbHVlTG9jYXRpb24gc3Rh
Y2soaW50cHRyX3Qgb2Zmc2V0RnJvbUZQKQpAQCAtODAsMjEgKzgyLDIyIEBAIHB1YmxpYzoKIAog
ICAgIEtpbmQga2luZCgpIGNvbnN0IHsgcmV0dXJuIG1fa2luZDsgfQogCi0gICAgYm9vbCBpc1Jl
ZygpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBSZWdpc3RlcjsgfQorICAgIGJvb2wgaXNHUFIo
KSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gR1BSUmVnaXN0ZXI7IH0KKyAgICBib29sIGlzRlBS
KCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IEZQUlJlZ2lzdGVyOyB9CisgICAgYm9vbCBpc1N0
YWNrKCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IFN0YWNrOyB9CisgICAgYm9vbCBpc1N0YWNr
QXJndW1lbnQoKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gU3RhY2tBcmd1bWVudDsgfQogCi0g
ICAgUmVnIHJlZygpIGNvbnN0CisgICAgSlNWYWx1ZVJlZ3MganNyKCkgY29uc3QKICAgICB7Ci0g
ICAgICAgIEFTU0VSVChpc1JlZygpKTsKLSAgICAgICAgcmV0dXJuIHUucmVnOworICAgICAgICBB
U1NFUlQoaXNHUFIoKSk7CisgICAgICAgIHJldHVybiB1LmpzcjsKICAgICB9CiAKLSAgICBib29s
IGlzR1BSKCkgY29uc3QgeyByZXR1cm4gaXNSZWcoKSAmJiByZWcoKS5pc0dQUigpOyB9Ci0gICAg
Ym9vbCBpc0ZQUigpIGNvbnN0IHsgcmV0dXJuIGlzUmVnKCkgJiYgcmVnKCkuaXNGUFIoKTsgfQot
Ci0gICAgR1BSUmVnIGdwcigpIGNvbnN0IHsgcmV0dXJuIHJlZygpLmdwcigpOyB9Ci0gICAgRlBS
UmVnIGZwcigpIGNvbnN0IHsgcmV0dXJuIHJlZygpLmZwcigpOyB9Ci0KLSAgICBib29sIGlzU3Rh
Y2soKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gU3RhY2s7IH0KKyAgICBGUFJSZWcgZnByKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpc0ZQUigpKTsKKyAgICAgICAgcmV0dXJuIHUu
ZnByOworICAgIH0KIAogICAgIGludHB0cl90IG9mZnNldEZyb21GUCgpIGNvbnN0CiAgICAgewpA
QCAtMTAyLDggKzEwNSw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHUub2Zmc2V0RnJvbUZQ
OwogICAgIH0KIAotICAgIGJvb2wgaXNTdGFja0FyZ3VtZW50KCkgY29uc3QgeyByZXR1cm4ga2lu
ZCgpID09IFN0YWNrQXJndW1lbnQ7IH0KLQogICAgIGludHB0cl90IG9mZnNldEZyb21TUCgpIGNv
bnN0CiAgICAgewogICAgICAgICBBU1NFUlQoaXNTdGFja0FyZ3VtZW50KCkpOwpAQCAtMTE0LDcg
KzExNSw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB1bmlvbiBVIHsKLSAgICAgICAgUmVn
IHJlZzsKKyAgICAgICAgSlNWYWx1ZVJlZ3MganNyOworICAgICAgICBGUFJSZWcgZnByOwogICAg
ICAgICBpbnRwdHJfdCBvZmZzZXRGcm9tRlA7CiAgICAgICAgIGludHB0cl90IG9mZnNldEZyb21T
UDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNUb1dhc20u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3BwCmluZGV4IDRm
NDU1Y2M0N2EwNDg2ZjVjOTVlNGE2YzQwNTVjZDBjODUyMzgzNWQuLjBmNjI0ZTBiNjFkYmI3OGZi
NjMyNDE4MWIzNjI0NzdkMDJhNWIyMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL0pTVG9XYXNtLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9KU1RvV2FzbS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMu
aCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1i
bHlJbnN0YW5jZS5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgi
CiAjaW5jbHVkZSAiV2FzbUNhbGxpbmdDb252ZW50aW9uLmgiCiAjaW5jbHVkZSAiV2FzbUNvbnRl
eHRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiV2FzbU9wZXJhdGlvbnMuaCIKQEAgLTQxLDEzICs0Miwx
MyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogdm9pZCBtYXJzaGFsbEpTUmVz
dWx0KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBUeXBlRGVmaW5pdGlvbiYgdHlwZURlZmluaXRp
b24sIGNvbnN0IENhbGxJbmZvcm1hdGlvbiYgd2FzbUZyYW1lQ29udmVudGlvbiwgY29uc3QgUmVn
aXN0ZXJBdE9mZnNldExpc3QmIHNhdmVkUmVzdWx0UmVnaXN0ZXJzKQogewogICAgIGNvbnN0IGF1
dG8mIHNpZ25hdHVyZSA9ICp0eXBlRGVmaW5pdGlvbi5hczxGdW5jdGlvblNpZ25hdHVyZT4oKTsK
LSAgICBhdXRvIGJveFdhc21SZXN1bHQgPSBbXShDQ2FsbEhlbHBlcnMmIGppdCwgVHlwZSB0eXBl
LCBSZWcgc3JjLCBKU1ZhbHVlUmVncyBkc3QpIHsKKyAgICBhdXRvIGJveFdhc21SZXN1bHQgPSBb
XShDQ2FsbEhlbHBlcnMmIGppdCwgVHlwZSB0eXBlLCBWYWx1ZUxvY2F0aW9uIHNyYywgSlNWYWx1
ZVJlZ3MgZHN0KSB7CiAgICAgICAgIHN3aXRjaCAodHlwZS5raW5kKSB7CiAgICAgICAgIGNhc2Ug
VHlwZUtpbmQ6OlZvaWQ6CiAgICAgICAgICAgICBqaXQubW92ZVRydXN0ZWRWYWx1ZShqc1VuZGVm
aW5lZCgpLCBkc3QpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6
OkkzMjoKLSAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoc3JjLmdwcigpLCBkc3Qu
cGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoc3JjLmpz
cigpLnBheWxvYWRHUFIoKSwgZHN0LnBheWxvYWRHUFIoKSk7CiAgICAgICAgICAgICBqaXQuYm94
SW50MzIoZHN0LnBheWxvYWRHUFIoKSwgZHN0LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKQEAgLTU2LDEzICs1
NywxNyBAQCB2b2lkIG1hcnNoYWxsSlNSZXN1bHQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFR5
cGVEZWZpbml0aW9uJiB0eXBlRGVmaW5pdGlvbiwgYwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpG
NjQ6IHsKICAgICAgICAgICAgIGppdC5tb3ZlVHJ1c3RlZFZhbHVlKGpzTnVtYmVyKHB1cmVOYU4o
KSksIGRzdCk7CiAgICAgICAgICAgICBhdXRvIGlzTmFOID0gaml0LmJyYW5jaElmTmFOKHNyYy5m
cHIoKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgICAgIGppdC5ib3hEb3VibGUoc3Jj
LmZwcigpLCBkc3QsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisjZWxzZQorICAgICAgICAgICAg
aml0LmJveERvdWJsZShzcmMuZnByKCksIGRzdCk7CisjZW5kaWYKICAgICAgICAgICAgIGlzTmFO
LmxpbmsoJmppdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBkZWZh
dWx0OiB7CiAgICAgICAgICAgICBpZiAoaXNGdW5jcmVmKHR5cGUpIHx8IGlzRXh0ZXJucmVmKHR5
cGUpKQotICAgICAgICAgICAgICAgIGppdC5tb3ZlKHNyYy5ncHIoKSwgZHN0LnBheWxvYWRHUFIo
KSk7CisgICAgICAgICAgICAgICAgaml0Lm1vdmVWYWx1ZVJlZ3Moc3JjLmpzcigpLCBkc3QpOwog
ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGppdC5icmVha3BvaW50KCk7CiAgICAg
ICAgIH0KQEAgLTcwLDQ0ICs3NSw4NyBAQCB2b2lkIG1hcnNoYWxsSlNSZXN1bHQoQ0NhbGxIZWxw
ZXJzJiBqaXQsIGNvbnN0IFR5cGVEZWZpbml0aW9uJiB0eXBlRGVmaW5pdGlvbiwgYwogICAgIH07
CiAKICAgICBpZiAoc2lnbmF0dXJlLnJldHVybnNWb2lkKCkpCi0gICAgICAgIGppdC5tb3ZlVHJ1
c3RlZFZhbHVlKGpzVW5kZWZpbmVkKCksIEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIgfSk7CisgICAgICAgIGppdC5tb3ZlVHJ1c3RlZFZhbHVlKGpzVW5kZWZpbmVkKCksIEpT
UkluZm86OnJldHVyblZhbHVlSlNSKTsKICAgICBlbHNlIGlmIChzaWduYXR1cmUucmV0dXJuQ291
bnQoKSA9PSAxKSB7CiAgICAgICAgIGlmIChzaWduYXR1cmUucmV0dXJuVHlwZSgwKS5pc0k2NCgp
KSB7Ci0gICAgICAgICAgICBHUFJSZWcgaW5wdXRHUFIgPSB3YXNtRnJhbWVDb252ZW50aW9uLnJl
c3VsdHNbMF0ucmVnKCkuZ3ByKCk7CisgICAgICAgICAgICBKU1ZhbHVlUmVncyBpbnB1dEpTUiA9
IHdhc21GcmFtZUNvbnZlbnRpb24ucmVzdWx0c1swXS5qc3IoKTsKICAgICAgICAgICAgIEdQUlJl
ZyB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKS53YXNt
Q29udGV4dEluc3RhbmNlUG9pbnRlcjsKICAgICAgICAgICAgIGlmIChDb250ZXh0Ojp1c2VGYXN0
VExTKCkpIHsKLSAgICAgICAgICAgICAgICB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gaW5wdXRH
UFIgPT0gR1BSSW5mbzo6YXJndW1lbnRHUFIxID8gR1BSSW5mbzo6YXJndW1lbnRHUFIwIDogR1BS
SW5mbzo6YXJndW1lbnRHUFIxOwotICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjpp
c19zYW1lX3Y8V2FzbTo6SW5zdGFuY2UqLCB0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxkZWNsdHlw
ZShvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSk+OjpBcmd1bWVudFR5cGU8MT4+KTsKKyAg
ICAgICAgICAgICAgICB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gaW5wdXRKU1IucGF5bG9hZEdQ
UigpID09IEdQUkluZm86OmFyZ3VtZW50R1BSMSA/IEdQUkluZm86OmFyZ3VtZW50R1BSMCA6IEdQ
UkluZm86OmFyZ3VtZW50R1BSMTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoIWlucHV0SlNSLnVz
ZXMod2FzbUNvbnRleHRJbnN0YW5jZUdQUikpOworICAgICAgICAgICAgICAgIHN0YXRpY19hc3Nl
cnQoc3RkOjppc19zYW1lX3Y8V2FzbTo6SW5zdGFuY2UqLCB0eXBlbmFtZSBGdW5jdGlvblRyYWl0
czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPjo6QXJndW1lbnRUeXBlPDE+Pik7
CiAgICAgICAgICAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHdhc21Db250ZXh0
SW5zdGFuY2VHUFIpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaml0LnNldHVwQXJndW1l
bnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+KHdhc21Db250ZXh0SW5zdGFu
Y2VHUFIsIGlucHV0R1BSKTsKKyAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlw
ZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCBpbnB1
dEpTUik7CiAgICAgICAgICAgICBqaXQuY2FsbE9wZXJhdGlvbihGdW5jdGlvblB0cjxPcGVyYXRp
b25QdHJUYWc+KG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCkpOwogICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIGJveFdhc21SZXN1bHQoaml0LCBzaWduYXR1cmUucmV0dXJuVHlwZSgwKSwgd2Fz
bUZyYW1lQ29udmVudGlvbi5yZXN1bHRzWzBdLnJlZygpLCBKU1ZhbHVlUmVncyB7IEdQUkluZm86
OnJldHVyblZhbHVlR1BSIH0pOworICAgICAgICAgICAgYm94V2FzbVJlc3VsdChqaXQsIHNpZ25h
dHVyZS5yZXR1cm5UeXBlKDApLCB3YXNtRnJhbWVDb252ZW50aW9uLnJlc3VsdHNbMF0sIEpTUklu
Zm86OnJldHVyblZhbHVlSlNSKTsKICAgICB9IGVsc2UgewogICAgICAgICBJbmRleGluZ1R5cGUg
aW5kZXhpbmdUeXBlID0gQXJyYXlXaXRoVW5kZWNpZGVkOwotICAgICAgICBKU1ZhbHVlUmVncyBz
Y3JhdGNoID0gSlNWYWx1ZVJlZ3MgeyB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNj
cmF0Y2hHUFJzWzFdIH07CisgICAgICAgIEpTVmFsdWVSZWdzIHNjcmF0Y2hKU1IgPSBKU1ZhbHVl
UmVncyB7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIHdhc21DYWxsaW5nQ29u
dmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMl0sCisjZW5kaWYKKyAgICAgICAgICAgIHdh
c21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMV0KKyAgICAgICAgfTsK
KworICAgICAgICBBU1NFUlQoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkgIT0gR1BSUmVnOjpJbnZh
bGlkR1BSUmVnKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBBU1NFUlQoc2NyYXRj
aEpTUi50YWdHUFIoKSAhPSBHUFJSZWc6OkludmFsaWRHUFJSZWcpOworICAgICAgICBBU1NFUlQo
c2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkgIT0gc2NyYXRjaEpTUi50YWdHUFIoKSk7CisjZW5kaWYK
KwogICAgICAgICAvLyBXZSBjYW4gdXNlIHRoZSBmaXJzdCBmbG9hdGluZyBwb2ludCByZWdpc3Rl
ciBhcyBhIHNjcmF0Y2ggc2luY2UgaXQgd2lsbCBhbHdheXMgYmUgbW92ZWQgb250byB0aGUgc3Rh
Y2sgYmVmb3JlIG90aGVyIHZhbHVlcy4KLSAgICAgICAgRlBSUmVnIGZwclNjcmF0Y2ggPSB3YXNt
Q2FsbGluZ0NvbnZlbnRpb24oKS5mcHJBcmdzWzBdLmZwcigpOworICAgICAgICBGUFJSZWcgZnBy
U2NyYXRjaCA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpLmZwckFyZ3NbMF07CiAgICAgICAgIGJv
b2wgaGFzSTY0ID0gZmFsc2U7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaWdu
YXR1cmUucmV0dXJuQ291bnQoKTsgKytpKSB7CiAgICAgICAgICAgICBWYWx1ZUxvY2F0aW9uIGxv
YyA9IHdhc21GcmFtZUNvbnZlbnRpb24ucmVzdWx0c1tpXTsKICAgICAgICAgICAgIFR5cGUgdHlw
ZSA9IHNpZ25hdHVyZS5yZXR1cm5UeXBlKGkpOwogCiAgICAgICAgICAgICBoYXNJNjQgfD0gdHlw
ZS5pc0k2NCgpOwotICAgICAgICAgICAgaWYgKGxvYy5pc1JlZygpKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKCF0eXBlLmlzSTY0KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgYm94V2FzbVJlc3Vs
dChqaXQsIHNpZ25hdHVyZS5yZXR1cm5UeXBlKGkpLCBsb2MucmVnKCksIHNjcmF0Y2gpOwotICAg
ICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNoLCBDQ2FsbEhlbHBlcnM6OkFk
ZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRSZWdp
c3RlcnMuZmluZChsb2MucmVnKCkpLT5vZmZzZXQoKSArIHdhc21GcmFtZUNvbnZlbnRpb24uaGVh
ZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNl
Ci0gICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTVmFsdWVSZWdzIHsgbG9jLnJl
ZygpLmdwcigpIH0sIENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyLCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5yZWcoKSktPm9mZnNl
dCgpICsgd2FzbUZyYW1lQ29udmVudGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0
ZXMpKTsKKyAgICAgICAgICAgIGlmIChsb2MuaXNHUFIoKSB8fCBsb2MuaXNGUFIoKSkgeworI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgQVNTRVJUKCFsb2MuaXNHUFIoKSB8
fCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZz
ZXQoKSArIDQgPT0gc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkudGFnR1BSKCkp
LT5vZmZzZXQoKSk7CisjZW5kaWYKKyAgICAgICAgICAgICAgICBhdXRvIGFkZHJlc3MgPSBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgd2Fz
bUZyYW1lQ29udmVudGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpOworICAg
ICAgICAgICAgICAgIHN3aXRjaCAodHlwZS5raW5kKSB7CisgICAgICAgICAgICAgICAgY2FzZSBU
eXBlS2luZDo6RjMyOgorICAgICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2NDoKKyAgICAg
ICAgICAgICAgICAgICAgYm94V2FzbVJlc3VsdChqaXQsIHR5cGUsIGxvYywgc2NyYXRjaEpTUik7
CisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2hKU1IsIGFkZHJlc3Mu
d2l0aE9mZnNldChzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5mcHIoKSktPm9mZnNldCgp
KSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6Okk2NDoKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUobG9jLmpzcigp
LCBhZGRyZXNzLndpdGhPZmZzZXQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCku
cGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgYm94V2FzbVJlc3Vs
dChqaXQsIHR5cGUsIGxvYywgc2NyYXRjaEpTUik7CisgICAgICAgICAgICAgICAgICAgIGppdC5z
dG9yZVZhbHVlKHNjcmF0Y2hKU1IsIGFkZHJlc3Mud2l0aE9mZnNldChzYXZlZFJlc3VsdFJlZ2lz
dGVycy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSkpOworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgICAgIGlmICghdHlwZS5pc0k2NCgpKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGF1dG8gbG9jYXRpb24gPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpz
dGFja1BvaW50ZXJSZWdpc3RlciwgbG9jLm9mZnNldEZyb21TUCgpKTsKLSAgICAgICAgICAgICAg
ICAgICAgUmVnIHRtcCA9ICh0eXBlLmlzRjMyKCkgfHwgdHlwZS5pc0Y2NCgpKSA/IFJlZyhmcHJT
Y3JhdGNoKSA6IFJlZyhzY3JhdGNoLmdwcigpKTsKLSAgICAgICAgICAgICAgICAgICAgaml0Lmxv
YWQ2NFRvUmVnKGxvY2F0aW9uLCB0bXApOwotICAgICAgICAgICAgICAgICAgICBib3hXYXNtUmVz
dWx0KGppdCwgc2lnbmF0dXJlLnJldHVyblR5cGUoaSksIHRtcCwgc2NyYXRjaCk7Ci0gICAgICAg
ICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2gsIGxvY2F0aW9uKTsKKyAgICAgICAg
ICAgICAgICAgICAgVmFsdWVMb2NhdGlvbiB0bXA7CisgICAgICAgICAgICAgICAgICAgIHN3aXRj
aCAodHlwZS5raW5kKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFZhbHVlTG9jYXRpb24geyBmcHJTY3JhdGNo
IH07CisgICAgICAgICAgICAgICAgICAgICAgICBqaXQubG9hZEZsb2F0KGxvY2F0aW9uLCBmcHJT
Y3JhdGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBW
YWx1ZUxvY2F0aW9uIHsgZnByU2NyYXRjaCB9OworICAgICAgICAgICAgICAgICAgICAgICAgaml0
LmxvYWREb3VibGUobG9jYXRpb24sIGZwclNjcmF0Y2gpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkkzMjoKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHRtcCA9IFZhbHVlTG9jYXRpb24geyBzY3JhdGNoSlNSIH07Cisg
ICAgICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDMyKGxvY2F0aW9uLCBzY3JhdGNoSlNSLnBh
eWxvYWRHUFIoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFZhbHVlTG9j
YXRpb24geyBzY3JhdGNoSlNSIH07CisgICAgICAgICAgICAgICAgICAgICAgICBqaXQubG9hZFZh
bHVlKGxvY2F0aW9uLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJveFdhc21SZXN1
bHQoaml0LCB0eXBlLCB0bXAsIHNjcmF0Y2hKU1IpOworICAgICAgICAgICAgICAgICAgICBqaXQu
c3RvcmVWYWx1ZShzY3JhdGNoSlNSLCBsb2NhdGlvbik7CiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQogCkBAIC0xMzYsMzcgKzE4NCw0NyBAQCB2b2lkIG1hcnNoYWxsSlNSZXN1bHQo
Q0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFR5cGVEZWZpbml0aW9uJiB0eXBlRGVmaW5pdGlvbiwg
YwogCiAgICAgICAgICAgICAgICAgR1BSUmVnIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBQaW5u
ZWRSZWdpc3RlckluZm86OmdldCgpLndhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyOwogICAgICAg
ICAgICAgICAgIGlmIChDb250ZXh0Ojp1c2VGYXN0VExTKCkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IEdQUkluZm86OmFyZ3VtZW50R1BSMTsKLSAgICAg
ICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWVfdjxXYXNtOjpJbnN0YW5j
ZSosIHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVz
dWx0c0FycmF5KT46OkFyZ3VtZW50VHlwZTwxPj4pOworICAgICAgICAgICAgICAgICAgICB3YXNt
Q29udGV4dEluc3RhbmNlR1BSID0gcHJlZmVycmVkQXJndW1lbnRHUFI8ZGVjbHR5cGUob3BlcmF0
aW9uQ29udmVydFRvQmlnSW50KSwgMT4oKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Fz
c2VydChzdGQ6OmlzX3NhbWVfdjxXYXNtOjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0aW9uVHJh
aXRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+OjpBcmd1bWVudFR5cGU8MT4+
KTsKICAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHdhc21D
b250ZXh0SW5zdGFuY2VHUFIpOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAg
IGlmIChsb2MuaXNSZWcoKSkKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NChDQ2FsbEhl
bHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRS
ZXN1bHRSZWdpc3RlcnMuZmluZChsb2MucmVnKCkpLT5vZmZzZXQoKSArIHdhc21GcmFtZUNvbnZl
bnRpb24uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKLSAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXV0
byBsb2NhdGlvbiA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyLCBsb2Mub2Zmc2V0RnJvbVNQKCkpOwotICAgICAgICAgICAgICAgICAgICBq
aXQubG9hZDY0VG9SZWcobG9jYXRpb24sIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShv
cGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApOworICAgICAgICAgICAgICAgIGNvbnN0ZXhwciBKU1ZhbHVlUmVncyB2
YWx1ZUpTUiA9IHByZWZlcnJlZEFyZ3VtZW50SlNSPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRU
b0JpZ0ludCksIDI+KCk7CisKKyAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Mg
YWRkcmVzcyB7IENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIgfTsKKyAgICAgICAg
ICAgICAgICBpZiAobG9jLmlzR1BSKCkgfHwgbG9jLmlzRlBSKCkpIHsKKyNpZiBVU0UoSlNWQUxV
RTMyXzY0KQorICAgICAgICAgICAgICAgICAgICBBU1NFUlQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMu
ZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkgKyA0ID09IHNhdmVkUmVzdWx0
UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnRhZ0dQUigpKS0+b2Zmc2V0KCkpOworI2VuZGlmCisg
ICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSBhZGRyZXNzLndpdGhPZmZzZXQoc2F2ZWRSZXN1
bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkgKyB3YXNt
RnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcyk7CisgICAg
ICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSBhZGRyZXNz
LndpdGhPZmZzZXQobG9jLm9mZnNldEZyb21TUCgpKTsKKworICAgICAgICAgICAgICAgIGppdC5s
b2FkVmFsdWUoYWRkcmVzcywgdmFsdWVKU1IpOworICAgICAgICAgICAgICAgIGppdC5zZXR1cEFy
Z3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPih3YXNtQ29udGV4dElu
c3RhbmNlR1BSLCB2YWx1ZUpTUik7CiAgICAgICAgICAgICAgICAgaml0LmNhbGxPcGVyYXRpb24o
RnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpKTsK
LSAgICAgICAgICAgICAgICBpZiAobG9jLmlzUmVnKCkpCi0gICAgICAgICAgICAgICAgICAgIGpp
dC5zdG9yZVZhbHVlKEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIgfSwgQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNh
dmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLnJlZygpKS0+b2Zmc2V0KCkgKyB3YXNtRnJhbWVD
b252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcykpOwotICAgICAgICAg
ICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICBhdXRvIGxvY2F0aW9uID0gQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIGxvYy5v
ZmZzZXRGcm9tU1AoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTVmFs
dWVSZWdzIHsgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIgfSwgbG9jYXRpb24pOwotICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1JJbmZvOjpyZXR1cm5W
YWx1ZUpTUiwgYWRkcmVzcyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBH
UFJSZWcgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCku
d2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXI7CiAgICAgICAgIGlmIChDb250ZXh0Ojp1c2VGYXN0
VExTKCkpIHsKLSAgICAgICAgICAgIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBHUFJJbmZvOjph
cmd1bWVudEdQUjE7CisgICAgICAgICAgICB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gcHJlZmVy
cmVkQXJndW1lbnRHUFI8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXkpLCAx
PigpOwogICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWVfdjxXYXNtOjpJbnN0
YW5jZSosIHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRl
UmVzdWx0c0FycmF5KT46OkFyZ3VtZW50VHlwZTwxPj4pOwogICAgICAgICAgICAgaml0LmxvYWRX
YXNtQ29udGV4dEluc3RhbmNlKHdhc21Db250ZXh0SW5zdGFuY2VHUFIpOwogICAgICAgICB9CiAK
LSAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVz
dWx0c0FycmF5KT4od2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tUHRyKCZ0eXBlRGVmaW5pdGlvbiksIGluZGV4aW5nVHlwZSwgQ0NhbGxIZWxwZXJzOjpzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIGNvbnN0ZXhwciBHUFJSZWcgc2F2ZWRSZXN1bHRz
R1BSID0gcHJlZmVycmVkQXJndW1lbnRHUFI8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1
bHRzQXJyYXkpLCA0PigpOworICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyLCBzYXZlZFJlc3VsdHNHUFIpOworICAgICAgICBpZiBjb25zdGV4cHIgKG1h
eEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICAgICAgaml0LnN1YlB0cihDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIEND
YWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBBU1NFUlQod2FzbUNv
bnRleHRJbnN0YW5jZUdQUiAhPSBzYXZlZFJlc3VsdHNHUFIpOworICAgICAgICBqaXQuc2V0dXBB
cmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXkpPih3YXNtQ29u
dGV4dEluc3RhbmNlR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoJnR5cGVEZWZpbml0
aW9uKSwgaW5kZXhpbmdUeXBlLCBzYXZlZFJlc3VsdHNHUFIpOwogICAgICAgICBqaXQuY2FsbE9w
ZXJhdGlvbihGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkFsbG9jYXRlUmVz
dWx0c0FycmF5KSk7CisgICAgICAgIGlmIGNvbnN0ZXhwciAobWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwpCisgICAgICAgICAgICBqaXQuYWRkUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bTMyKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgQ0NhbGxIZWxwZXJzOjpzdGFja1Bv
aW50ZXJSZWdpc3Rlcik7CisKKyAgICAgICAgaml0LmJveENlbGwoR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIsIEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsKICAgICB9CiB9CiAKQEAgLTE3OCw3ICsy
MzYsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+IGNyZWF0ZUpTVG9XYXNt
V3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QKICAgICAvLyBGSVhNRSBTdG9wIHVzaW5n
IDAgYXMgY29kZUJsb2Nrcy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NTMyMQogICAgIGppdC5lbWl0WmVyb1RvQ2FsbEZyYW1lSGVhZGVyKENhbGxGcmFtZVNsb3Q6
OmNvZGVCbG9jayk7CiAgICAgTWFjcm9Bc3NlbWJsZXI6OkRhdGFMYWJlbFB0ciBjYWxsZWVNb3Zl
TG9jYXRpb24gPSBqaXQubW92ZVdpdGhQYXRjaChNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0
cihudWxscHRyKSwgR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSKTsKLSAgICBqaXQu
ZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQ
UiwgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgY2Fs
bGVlU2xvdCB7IEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWVTbG90OjpjYWxs
ZWUgKiBzaXplb2YoUmVnaXN0ZXIpIH07CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86Om5vblBy
ZXNlcnZlZE5vblJldHVybkdQUiwgY2FsbGVlU2xvdC53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQp
KTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbTMyKEpTVmFsdWU6Oldhc21UYWcpLCBjYWxsZWVTbG90LndpdGhPZmZzZXQoVGFn
T2Zmc2V0KSk7CisjZW5kaWYKICAgICBWZWN0b3I8Q29kZUxvY2F0aW9uRGF0YUxhYmVsUHRyPFdh
c21FbnRyeVB0clRhZz4+KiBsaW5rZWRDYWxsZWVNb3ZlID0gJnJlc3VsdC0+Y2FsbGVlTW92ZUxv
Y2F0aW9uczsKICAgICBqaXQuYWRkTGlua1Rhc2soWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVy
KSB7CiAgICAgICAgIGxpbmtlZENhbGxlZU1vdmUtPmFwcGVuZChsaW5rQnVmZmVyLmxvY2F0aW9u
T2Y8V2FzbUVudHJ5UHRyVGFnPihjYWxsZWVNb3ZlTG9jYXRpb24pKTsKQEAgLTE5NywxMSArMjU5
LDExIEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVhdGVKU1RvV2FzbVdy
YXBwZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAgICAgUmVnaXN0ZXJBdE9mZnNldExpc3Qg
cmVnaXN0ZXJzVG9TcGlsbCh0b1NhdmUsIFJlZ2lzdGVyQXRPZmZzZXRMaXN0OjpPZmZzZXRCYXNl
VHlwZTo6RnJhbWVQb2ludGVyQmFzZWQpOwogICAgIHJlc3VsdC0+ZW50cnlwb2ludC5jYWxsZWVT
YXZlUmVnaXN0ZXJzID0gcmVnaXN0ZXJzVG9TcGlsbDsKIAotICAgIHNpemVfdCB0b3RhbEZyYW1l
U2l6ZSA9IHJlZ2lzdGVyc1RvU3BpbGwuc2l6ZSgpICogc2l6ZW9mKENQVVJlZ2lzdGVyKTsKKyAg
ICBzaXplX3QgdG90YWxGcmFtZVNpemUgPSByZWdpc3RlcnNUb1NwaWxsLnNpemVPZkFyZWFJbkJ5
dGVzKCk7CiAgICAgQ2FsbEluZm9ybWF0aW9uIHdhc21GcmFtZUNvbnZlbnRpb24gPSB3YXNtQ2Fs
bGluZ0NvbnZlbnRpb24oKS5jYWxsSW5mb3JtYXRpb25Gb3IodHlwZURlZmluaXRpb24pOwogICAg
IFJlZ2lzdGVyQXRPZmZzZXRMaXN0IHNhdmVkUmVzdWx0UmVnaXN0ZXJzID0gd2FzbUZyYW1lQ29u
dmVudGlvbi5jb21wdXRlUmVzdWx0c09mZnNldExpc3QoKTsKICAgICB0b3RhbEZyYW1lU2l6ZSAr
PSB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlczsK
LSAgICB0b3RhbEZyYW1lU2l6ZSArPSBzYXZlZFJlc3VsdFJlZ2lzdGVycy5zaXplKCkgKiBzaXpl
b2YoQ1BVUmVnaXN0ZXIpOworICAgIHRvdGFsRnJhbWVTaXplICs9IHNhdmVkUmVzdWx0UmVnaXN0
ZXJzLnNpemVPZkFyZWFJbkJ5dGVzKCk7CiAKICAgICB0b3RhbEZyYW1lU2l6ZSA9IFdURjo6cm91
bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudEJ5dGVzKCksIHRvdGFsRnJhbWVTaXplKTsK
ICAgICBqaXQuc3ViUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIodG90YWxGcmFtZVNp
emUpLCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwpAQCAtMjIzLDkgKzI4
NSwxMiBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4gY3JlYXRlSlNUb1dhc21X
cmFwcGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogCiAgICAgICAgIENDYWxsSGVscGVyczo6
QWRkcmVzcyBjYWxsZWVGcmFtZSA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxl
cjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIDApOwogCi0gICAgICAgIC8vIFdlJ3JlIGdvaW5nIHRv
IHNldCB0aGUgcGlubmVkIHJlZ2lzdGVycyBhZnRlciB0aGlzLiBTbwotICAgICAgICAvLyB3ZSBj
YW4gdXNlIHRoaXMgYXMgYSBzY3JhdGNoIGZvciBub3cgc2luY2Ugd2Ugc2F2ZWQgaXQgYWJvdmUu
Ci0gICAgICAgIEdQUlJlZyBzY3JhdGNoUmVnID0gcGlubmVkUmVncy5iYXNlTWVtb3J5UG9pbnRl
cjsKKyAgICAgICAgSlNWYWx1ZVJlZ3Mgc2NyYXRjaEpTUiB7CisjaWYgVVNFKEpTVkFMVUUzMl82
NCkKKyAgICAgICAgICAgIHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQ
UnNbMl0sCisjZW5kaWYKKyAgICAgICAgICAgIHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xv
Z3VlU2NyYXRjaEdQUnNbMV0KKyAgICAgICAgfTsKIAogICAgICAgICBpZiAoIUNvbnRleHQ6OnVz
ZUZhc3RUTFMoKSkgewogICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU0NhbGxpbmdDb252ZW50aW9uOjppbnN0
YW5jZVN0YWNrT2Zmc2V0KSwgd2FzbUNvbnRleHRJbnN0YW5jZUdQUik7CkBAIC0yMzksMjIgKzMw
NCwzNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4gY3JlYXRlSlNUb1dhc21X
cmFwcGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogICAgICAgICAgICAgVHlwZSB0eXBlID0g
c2lnbmF0dXJlLmFyZ3VtZW50VHlwZShpKTsKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRk
cmVzcyBqc1BhcmFtKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBqc0ZyYW1lQ29udmVudGlv
bi5wYXJhbXNbaV0ub2Zmc2V0RnJvbUZQKCkpOwogICAgICAgICAgICAgaWYgKHdhc21GcmFtZUNv
bnZlbnRpb24ucGFyYW1zW2ldLmlzU3RhY2tBcmd1bWVudCgpKSB7CisgICAgICAgICAgICAgICAg
Q0NhbGxIZWxwZXJzOjpBZGRyZXNzIGFkZHIgeyBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21G
cmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSB9OwogICAgICAgICAgICAg
ICAgIGlmICh0eXBlLmlzSTMyKCkgfHwgdHlwZS5pc0YzMigpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGppdC5sb2FkMzIoanNQYXJhbSwgc2NyYXRjaFJlZyk7Ci0gICAgICAgICAgICAgICAgICAg
IGppdC5zdG9yZTMyKHNjcmF0Y2hSZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUZyYW1l
Q29udmVudGlvbi5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKKyAgICAgICAgICAgICAgICAg
ICAgaml0LmxvYWQzMihqc1BhcmFtLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CisgICAgICAg
ICAgICAgICAgICAgIGppdC5zdG9yZTMyKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBhZGRyLndp
dGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAg
ICAgICAgICAgICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCBh
ZGRyLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7CisjZW5kaWYKICAgICAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hSZWcp
OwotICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmU2NChzY3JhdGNoUmVnLCBjYWxsZWVGcmFt
ZS53aXRoT2Zmc2V0KHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgp
KSk7CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQYXJhbSwgc2NyYXRjaEpT
Uik7CisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2hKU1IsIGFkZHIp
OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKHR5cGUuaXNJMzIoKSB8fCB0eXBlLmlzRjMyKCkpCi0gICAgICAgICAgICAgICAgICAg
IGppdC5sb2FkMzJUb1JlZyhqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5y
ZWcoKSk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBqaXQubG9h
ZDY0VG9SZWcoanNQYXJhbSwgd2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0ucmVnKCkpOwor
ICAgICAgICAgICAgICAgIGlmICh0eXBlLmlzRjMyKCkpCisgICAgICAgICAgICAgICAgICAgIGpp
dC5sb2FkRmxvYXQoanNQYXJhbSwgd2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0uZnByKCkp
OworICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUuaXNGNjQoKSkKKyAgICAgICAgICAgICAg
ICAgICAgaml0LmxvYWREb3VibGUoanNQYXJhbSwgd2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNb
aV0uZnByKCkpOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUuaXNJMzIoKSkgeworICAg
ICAgICAgICAgICAgICAgICBqaXQubG9hZDMyKGpzUGFyYW0sIHdhc21GcmFtZUNvbnZlbnRpb24u
cGFyYW1zW2ldLmpzcigpLnBheWxvYWRHUFIoKSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAg
ICAgICAgICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMCks
IHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLmpzcigpLnRhZ0dQUigpKTsKKyNlbmRpZgor
ICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVl
KGpzUGFyYW0sIHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLmpzcigpKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgIH0KIAorI2lmICFDUFUoQVJNKSAvLyBBUk0gaGFzIG5vIHBp
bm5lZCByZWdpc3RlcnMgZm9yIFdhc20gTWVtb3J5LCBzbyBubyBuZWVkIHRvIHNldCB0aGVtIHVw
CiAgICAgaWYgKCEhaW5mby5tZW1vcnkpIHsKICAgICAgICAgR1BSUmVnIGJhc2VNZW1vcnkgPSBw
aW5uZWRSZWdzLmJhc2VNZW1vcnlQb2ludGVyOwogICAgICAgICBHUFJSZWcgc2l6ZSA9IHdhc21D
YWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMF07CkBAIC0yNjUsMTcgKzM0
MiwxOCBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4gY3JlYXRlSlNUb1dhc21X
cmFwcGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogCiAgICAgICAgIEdQUlJlZyBjdXJyZW50
SW5zdGFuY2VHUFIgPSBDb250ZXh0Ojp1c2VGYXN0VExTKCkgPyBiYXNlTWVtb3J5IDogd2FzbUNv
bnRleHRJbnN0YW5jZUdQUjsKICAgICAgICAgaWYgKGlzQVJNNjRFKCkpIHsKLSAgICAgICAgICAg
IGlmIChtb2RlICE9IFdhc206Ok1lbW9yeU1vZGU6OlNpZ25hbGluZykKKyAgICAgICAgICAgIGlm
IChtb2RlID09IFdhc206Ok1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nKQogICAgICAgICAgICAg
ICAgIHNpemUgPSBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyOwogICAgICAg
ICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGN1cnJlbnRJbnN0YW5jZUdQ
UiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKCkpLCBz
aXplKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChtb2RlICE9IFdhc206Ok1l
bW9yeU1vZGU6OlNpZ25hbGluZykKKyAgICAgICAgICAgIGlmIChtb2RlID09IFdhc206Ok1lbW9y
eU1vZGU6OkJvdW5kc0NoZWNraW5nKQogICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxs
SGVscGVyczo6QWRkcmVzcyhjdXJyZW50SW5zdGFuY2VHUFIsIFdhc206Okluc3RhbmNlOjpvZmZz
ZXRPZkNhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSgpKSwgcGlubmVkUmVncy5ib3VuZHNDaGVja2lu
Z1NpemVSZWdpc3Rlcik7CiAgICAgICAgIH0KIAogICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhl
bHBlcnM6OkFkZHJlc3MoY3VycmVudEluc3RhbmNlR1BSLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0
T2ZDYWNoZWRNZW1vcnkoKSksIGJhc2VNZW1vcnkpOwogICAgICAgICBqaXQuY2FnZUNvbmRpdGlv
bmFsbHlBbmRVbnRhZyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5LCBzaXplLCBzY3Jh
dGNoKTsKICAgICB9CisjZW5kaWYKIAogICAgIENDYWxsSGVscGVyczo6Q2FsbCBjYWxsID0gaml0
LnRocmVhZFNhZmVQYXRjaGFibGVOZWFyQ2FsbCgpOwogICAgIHVuc2lnbmVkIGZ1bmN0aW9uSW5k
ZXhTcGFjZSA9IGZ1bmN0aW9uSW5kZXggKyBpbmZvLmltcG9ydEZ1bmN0aW9uQ291bnQoKTsKQEAg
LTI4OCw3ICszNjYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4gY3JlYXRl
SlNUb1dhc21XcmFwcGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogCiAgICAgZm9yIChjb25z
dCBSZWdpc3RlckF0T2Zmc2V0JiByZWdBdE9mZnNldCA6IHJlZ2lzdGVyc1RvU3BpbGwpIHsKICAg
ICAgICAgR1BSUmVnIHJlZyA9IHJlZ0F0T2Zmc2V0LnJlZygpLmdwcigpOwotICAgICAgICBBU1NF
UlQocmVnICE9IEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgQVNTRVJUKCFKU1JJ
bmZvOjpyZXR1cm5WYWx1ZUpTUi51c2VzKHJlZykpOwogICAgICAgICBwdHJkaWZmX3Qgb2Zmc2V0
ID0gcmVnQXRPZmZzZXQub2Zmc2V0KCk7CiAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVy
czo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwgb2Zmc2V0KSwgcmVnKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAKaW5kZXggYmMy
YjMzM2Q4NjFiNjE3N2JhMDRiMmQ1ZmY2OWI3NTgwYTljYmRlYi4uMTFmZDc2N2Q5YWZkMTRiMmJh
NjFlZDJmOTlkNzg1NzJhOTdhZDk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2FzbVRvSlMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dhc21Ub0pTLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5o
IgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlJbnN0YW5jZS5oIgogI2luY2x1ZGUgIkxpbmtCdWZm
ZXIuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1
ZGUgIlRodW5rR2VuZXJhdG9ycy5oIgogI2luY2x1ZGUgIldhc21DYWxsaW5nQ29udmVudGlvbi5o
IgogI2luY2x1ZGUgIldhc21Db250ZXh0SW5saW5lcy5oIgpAQCAtNjksNyArNzAsNyBAQCBFeHBl
Y3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1
cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgIC8vIElmIHdlIGV2ZXIgY2hhbmdlIHRoaXMsIHdlIHdp
bGwgYWxzbyBuZWVkIHRvIGNoYW5nZSBXYXNtQjNJUkdlbmVyYXRvci4KIAogICAgIC8vIEJlbG93
LCB3ZSBhc3N1bWUgdGhhdCB0aGUgSlMgY2FsbGluZyBjb252ZW50aW9uIGlzIGFsd2F5cyBvbiB0
aGUgc3RhY2suCi0gICAgQVNTRVJUKCFqc0NDLmdwckFyZ3Muc2l6ZSgpKTsKKyAgICBBU1NFUlQo
IWpzQ0MuanNyQXJncy5zaXplKCkpOwogICAgIEFTU0VSVCghanNDQy5mcHJBcmdzLnNpemUoKSk7
CiAKICAgICBqaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKQEAgLTg2LDE0ICs4NywyMiBAQCBF
eHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0Zh
aWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgIC8vIGZvciB1cyBoZXJlLgogCiAgICAgY29uc3Qg
dW5zaWduZWQgbnVtYmVyT2ZQYXJhbWV0ZXJzID0gYXJnQ291bnQgKyAxOyAvLyBUaGVyZSBpcyBh
ICJ0aGlzIiBhcmd1bWVudC4KLSAgICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlJlZ3NGb3JDYWxs
ID0gQ2FsbEZyYW1lOjpoZWFkZXJTaXplSW5SZWdpc3RlcnMgKyBudW1iZXJPZlBhcmFtZXRlcnM7
CisgICAgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZSZWdzRm9yQ2FsbCA9IENhbGxGcmFtZTo6aGVh
ZGVyU2l6ZUluUmVnaXN0ZXJzICsgcm91bmRBcmd1bWVudENvdW50VG9BbGlnbkZyYW1lKG51bWJl
ck9mUGFyYW1ldGVycyk7CisgICAgQVNTRVJUKCEobnVtYmVyT2ZSZWdzRm9yQ2FsbCAlIHN0YWNr
QWxpZ25tZW50UmVnaXN0ZXJzKCkpKTsKICAgICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkJ5dGVz
Rm9yQ2FsbCA9IG51bWJlck9mUmVnc0ZvckNhbGwgKiBzaXplb2YoUmVnaXN0ZXIpIC0gc2l6ZW9m
KENhbGxlckZyYW1lQW5kUEMpOwotICAgIGNvbnN0IHVuc2lnbmVkIHN0YWNrT2Zmc2V0ID0gV1RG
Ojpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50Qnl0ZXMoKSwgc3RkOjptYXg8dW5z
aWduZWQ+KG51bWJlck9mQnl0ZXNGb3JDYWxsLCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5zaXplKCkg
KiBzaXplb2YoQ1BVUmVnaXN0ZXIpKSk7CisgICAgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZCeXRl
c0ZvclNhdmVkUmVzdWx0cyA9IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLnNpemVPZkFyZWFJbkJ5dGVz
KCk7CisgICAgY29uc3QgdW5zaWduZWQgc3RhY2tPZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRp
cGxlT2Yoc3RhY2tBbGlnbm1lbnRCeXRlcygpLCBzdGQ6Om1heChudW1iZXJPZkJ5dGVzRm9yQ2Fs
bCwgbnVtYmVyT2ZCeXRlc0ZvclNhdmVkUmVzdWx0cykpOwogICAgIGppdC5zdWJQdHIoTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW0zMihzdGFja09mZnNldCksIE1hY3JvQXNzZW1ibGVyOjpzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgSklUOjpBZGRyZXNzIGNhbGxlZUZyYW1lID0gQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgLXN0
YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7CiAKICAgICAv
LyBGSVhNRSBtYWtlIHRoZXNlIGxvb3BzIHdoaWNoIHN3aXRjaCBvbiBzaWduYXR1cmUgaWYgdGhl
cmUgYXJlIG1hbnkgYXJndW1lbnRzIG9uIHRoZSBzdGFjay4gSXQnbGwgb3RoZXJ3aXNlIGJlIGh1
Z2UgZm9yIGh1Z2UgdHlwZSBkZWZpbml0aW9ucy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2NTU0NwogCisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBjb25zdGV4cHIg
SlNWYWx1ZVJlZ3MganNBcmcxMCB7IEdQUkluZm86OmFyZ3VtZW50R1BSMCB9OworI2VsaWYgVVNF
KEpTVkFMVUUzMl82NCkKKyAgICBjb25zdGV4cHIgSlNWYWx1ZVJlZ3MganNBcmcxMCB7IEdQUklu
Zm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwIH07CisjZW5kaWYKKwogICAg
IC8vIEZpcnN0IGdvIHRocm91Z2ggdGhlIGludGVnZXIgcGFyYW1ldGVycywgZnJlZWluZyB1cCB0
aGVpciByZWdpc3RlciBmb3IgdXNlIGFmdGVyd2FyZHMuCiAgICAgewogICAgICAgICB1bnNpZ25l
ZCBtYXJzaGFsbGVkR1BScyA9IDA7CkBAIC0xMTMsMjEgKzEyMiwyMSBAQCBFeHBlY3RlZDxNYWNy
b0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21U
b0pTKFZNJiB2bQogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKICAgICAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6OkkzMjoKICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDog
ewotICAgICAgICAgICAgICAgIEdQUlJlZyBncHJSZWc7Ci0gICAgICAgICAgICAgICAgaWYgKG1h
cnNoYWxsZWRHUFJzIDwgd2FzbUNDLmdwckFyZ3Muc2l6ZSgpKQotICAgICAgICAgICAgICAgICAg
ICBncHJSZWcgPSB3YXNtQ0MuZ3ByQXJnc1ttYXJzaGFsbGVkR1BSc10uZ3ByKCk7CisgICAgICAg
ICAgICAgICAgSlNWYWx1ZVJlZ3MgYXJnUmVnOworICAgICAgICAgICAgICAgIGlmIChtYXJzaGFs
bGVkR1BScyA8IHdhc21DQy5qc3JBcmdzLnNpemUoKSkKKyAgICAgICAgICAgICAgICAgICAgYXJn
UmVnID0gd2FzbUNDLmpzckFyZ3NbbWFyc2hhbGxlZEdQUnNdOwogICAgICAgICAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBhbHJlYWR5IHNwaWxsZWQgYWxsIGFy
Z3VtZW50cywgdGhlc2UgcmVnaXN0ZXJzIGFyZSBhdmFpbGFibGUgYXMgc2NyYXRjaC4KLSAgICAg
ICAgICAgICAgICAgICAgZ3ByUmVnID0gR1BSSW5mbzo6YXJndW1lbnRHUFIwOwotICAgICAgICAg
ICAgICAgICAgICBqaXQubG9hZDY0KEpJVDo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdp
c3RlciwgZnJPZmZzZXQpLCBncHJSZWcpOworICAgICAgICAgICAgICAgICAgICBhcmdSZWcgPSBq
c0FyZzEwOworICAgICAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKEpJVDo6QWRkcmVzcyhH
UFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgZnJPZmZzZXQpLCBhcmdSZWcpOwogICAgICAgICAg
ICAgICAgICAgICBmck9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICArK21hcnNoYWxsZWRHUFJzOwogICAgICAgICAgICAgICAgIGlm
IChhcmdUeXBlLmlzSTMyKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQz
MlRvV29yZChncHJSZWcsIGdwclJlZyk7IC8vIENsZWFyIG5vbi1pbnQzMiBhbmQgbm9uLXRhZyBi
aXRzLgotICAgICAgICAgICAgICAgICAgICBqaXQuYm94SW50MzIoZ3ByUmVnLCBKU1ZhbHVlUmVn
cyhncHJSZWcpLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworICAgICAgICAgICAgICAgICAgICBq
aXQuemVyb0V4dGVuZDMyVG9Xb3JkKGFyZ1JlZy5wYXlsb2FkR1BSKCksIGFyZ1JlZy5wYXlsb2Fk
R1BSKCkpOyAvLyBDbGVhciBub24taW50MzIgYW5kIG5vbi10YWcgYml0cy4KKyAgICAgICAgICAg
ICAgICAgICAgaml0LmJveEludDMyKGFyZ1JlZy5wYXlsb2FkR1BSKCksIGFyZ1JlZywgRG9Ob3RI
YXZlVGFnUmVnaXN0ZXJzKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaml0
LnN0b3JlNjQoZ3ByUmVnLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0
KSk7CisgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoYXJnUmVnLCBjYWxsZWVGcmFtZS53
aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSk7CiAgICAgICAgICAgICAgICAgY2FsbGVlRnJh
bWVPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIH0KQEAgLTE0NCw2ICsxNTMsNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNv
ZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQog
ICAgIH0KICAgICAKICAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgLy8gSW50ZWdl
ciByZWdpc3RlcnMgaGF2ZSBhbHJlYWR5IGJlZW4gc3BpbGxlZCwgdGhlc2UgYXJlIG5vdyBhdmFp
bGFibGUuCiAgICAgICAgIEdQUlJlZyBkb3VibGVFbmNvZGVPZmZzZXRHUFJSZWcgPSBHUFJJbmZv
Ojphcmd1bWVudEdQUjA7CiAgICAgICAgIEdQUlJlZyBzY3JhdGNoID0gR1BSSW5mbzo6YXJndW1l
bnRHUFIxOwpAQCAtMTU5LDYgKzE2OSw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAg
ICAgICAgICAgICAgaGFzTWF0ZXJpYWxpemVkRG91YmxlRW5jb2RlT2Zmc2V0ID0gdHJ1ZTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfTsKKyNlbmRpZgogCiAgICAgICAgIHVuc2lnbmVkIG1hcnNo
YWxsZWRHUFJzID0gMDsKICAgICAgICAgdW5zaWduZWQgbWFyc2hhbGxlZEZQUnMgPSAwOwpAQCAt
MTY3LDEwICsxNzgsMTQgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRy
eVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KIAogICAgICAgICBhdXRv
IG1hcnNoYWxsRlBSID0gWyZdIChGUFJSZWcgZnByUmVnKSB7CiAgICAgICAgICAgICBqaXQucHVy
aWZ5TmFOKGZwclJlZyk7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgICAgIGppdC5tb3Zl
RG91YmxlVG82NChmcHJSZWcsIHNjcmF0Y2gpOwogICAgICAgICAgICAgbWF0ZXJpYWxpemVEb3Vi
bGVFbmNvZGVPZmZzZXQoZG91YmxlRW5jb2RlT2Zmc2V0R1BSUmVnKTsKICAgICAgICAgICAgIGpp
dC5hZGQ2NChkb3VibGVFbmNvZGVPZmZzZXRHUFJSZWcsIHNjcmF0Y2gpOwogICAgICAgICAgICAg
aml0LnN0b3JlNjQoc2NyYXRjaCwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9m
ZnNldCkpOworI2Vsc2UKKyAgICAgICAgICAgIGppdC5zdG9yZURvdWJsZShmcHJSZWcsIGNhbGxl
ZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsKKyNlbmRpZgogICAgICAgICAg
ICAgY2FsbGVlRnJhbWVPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKICAgICAgICAgICAgICsr
bWFyc2hhbGxlZEZQUnM7CiAgICAgICAgIH07CkBAIC0xODksNyArMjA0LDcgQEAgRXhwZWN0ZWQ8
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3
YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkkzMjoKICAgICAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDogewogICAgICAgICAgICAgICAgIC8vIFNraXBwZWQ6IGhh
bmRsZWQgYWJvdmUuCi0gICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRHUFJzID49IHdhc21D
Qy5ncHJBcmdzLnNpemUoKSkKKyAgICAgICAgICAgICAgICBpZiAobWFyc2hhbGxlZEdQUnMgPj0g
d2FzbUNDLmpzckFyZ3Muc2l6ZSgpKQogICAgICAgICAgICAgICAgICAgICBmck9mZnNldCArPSBz
aXplb2YoUmVnaXN0ZXIpOwogICAgICAgICAgICAgICAgICsrbWFyc2hhbGxlZEdQUnM7CiAgICAg
ICAgICAgICAgICAgY2FsbGVlRnJhbWVPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKQEAgLTE5
OCw3ICsyMTMsNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRy
VGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgY2FzZSBU
eXBlS2luZDo6RjMyOiB7CiAgICAgICAgICAgICAgICAgRlBSUmVnIGZwclJlZzsKICAgICAgICAg
ICAgICAgICBpZiAobWFyc2hhbGxlZEZQUnMgPCB3YXNtQ0MuZnByQXJncy5zaXplKCkpCi0gICAg
ICAgICAgICAgICAgICAgIGZwclJlZyA9IHdhc21DQy5mcHJBcmdzW21hcnNoYWxsZWRGUFJzXS5m
cHIoKTsKKyAgICAgICAgICAgICAgICAgICAgZnByUmVnID0gd2FzbUNDLmZwckFyZ3NbbWFyc2hh
bGxlZEZQUnNdOwogICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAv
LyBXZSd2ZSBhbHJlYWR5IHNwaWxsZWQgYWxsIGFyZ3VtZW50cywgdGhlc2UgcmVnaXN0ZXJzIGFy
ZSBhdmFpbGFibGUgYXMgc2NyYXRjaC4KICAgICAgICAgICAgICAgICAgICAgZnByUmVnID0gRlBS
SW5mbzo6YXJndW1lbnRGUFIwOwpAQCAtMjEyLDcgKzIyNyw3IEBAIEV4cGVjdGVkPE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMo
Vk0mIHZtCiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6IHsKICAgICAgICAgICAgICAg
ICBGUFJSZWcgZnByUmVnOwogICAgICAgICAgICAgICAgIGlmIChtYXJzaGFsbGVkRlBScyA8IHdh
c21DQy5mcHJBcmdzLnNpemUoKSkKLSAgICAgICAgICAgICAgICAgICAgZnByUmVnID0gd2FzbUND
LmZwckFyZ3NbbWFyc2hhbGxlZEZQUnNdLmZwcigpOworICAgICAgICAgICAgICAgICAgICBmcHJS
ZWcgPSB3YXNtQ0MuZnByQXJnc1ttYXJzaGFsbGVkRlBSc107CiAgICAgICAgICAgICAgICAgZWxz
ZSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgc3BpbGxlZCBhbGwgYXJn
dW1lbnRzLCB0aGVzZSByZWdpc3RlcnMgYXJlIGF2YWlsYWJsZSBhcyBzY3JhdGNoLgogICAgICAg
ICAgICAgICAgICAgICBmcHJSZWcgPSBGUFJJbmZvOjphcmd1bWVudEZQUjA7CkBAIC0yMzQsMTIg
KzI0OSwxNSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFn
PiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICB1bnNpZ25lZCBjYWxs
ZWVGcmFtZU9mZnNldCA9IENhbGxGcmFtZVNsb3Q6OmZpcnN0QXJndW1lbnQgKiBzdGF0aWNfY2Fz
dDxpbnQ+KHNpemVvZihSZWdpc3RlcikpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGFyZ051bSA9
IDA7IGFyZ051bSA8IGFyZ0NvdW50OyArK2FyZ051bSkgewogICAgICAgICAgICAgaWYgKHNpZ25h
dHVyZS5hcmd1bWVudFR5cGUoYXJnTnVtKS5pc0k2NCgpKSB7Ci0gICAgICAgICAgICAgICAgaml0
LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAg
ICAgICAgICAgaml0LmxvYWQ2NChjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zm
c2V0KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICAgICAgICAgICAgICBqaXQuc2V0dXBB
cmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KT4oR1BSSW5mbzo6YXJn
dW1lbnRHUFIwLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICAgICAgICAgIHVzaW5n
IE9wZXJhdGlvbiA9IGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk7CisgICAgICAg
ICAgICAgICAgY29uc3RleHByIEdQUlJlZyB3YXNtSW5zdGFuY2VHUFIgPSBwcmVmZXJyZWRBcmd1
bWVudEdQUjxPcGVyYXRpb24sIDE+KCk7CisgICAgICAgICAgICAgICAgY29uc3RleHByIEpTVmFs
dWVSZWdzIHZhbHVlSlNSID0gcHJlZmVycmVkQXJndW1lbnRKU1I8T3BlcmF0aW9uLCAyPigpOwor
ICAgICAgICAgICAgICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZSh3YXNtSW5zdGFuY2VH
UFIpOworICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoY2FsbGVlRnJhbWUud2l0aE9mZnNl
dChjYWxsZWVGcmFtZU9mZnNldCksIHZhbHVlSlNSKTsKKyAgICAgICAgICAgICAgICBqaXQuc2V0
dXBBcmd1bWVudHM8T3BlcmF0aW9uPih3YXNtSW5zdGFuY2VHUFIsIHZhbHVlSlNSKTsKICAgICAg
ICAgICAgICAgICBhdXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25QdHJUYWcpOwogICAgICAg
ICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRKdW1wSWZFeGNlcHRpb24o
dm0pKTsKLSAgICAgICAgICAgICAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQ
UiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCkpOworICAgICAgICAg
ICAgICAgIGppdC5zdG9yZVZhbHVlKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBjYWxsZWVGcmFt
ZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSk7CiAgICAgICAgICAgICAgICAgaml0LmFk
ZExpbmtUYXNrKFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewogICAgICAgICAgICAgICAg
ICAgICBsaW5rQnVmZmVyLmxpbmsoY2FsbCwgRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihv
cGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpKTsKICAgICAgICAgICAgICAgICB9KTsKQEAgLTI1MSwx
NiArMjY5LDIyIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJU
YWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgaml0LmxvYWRXYXNtQ29u
dGV4dEluc3RhbmNlKEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgaml0LmxvYWRQdHIoQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgSW5zdGFuY2U6Om9mZnNl
dE9mT3duZXIoKSksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgaml0LmxvYWRQdHIoQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgSlNXZWJBc3NlbWJseUlu
c3RhbmNlOjpvZmZzZXRPZk1vZHVsZSgpKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICBq
aXQuZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgQ2FsbEZy
YW1lU2xvdDo6Y2FsbGVlKTsKLQotICAgIEdQUlJlZyBpbXBvcnRKU0NlbGxHUFJSZWcgPSBHUFJJ
bmZvOjpyZWdUMDsgLy8gQ2FsbGVlIG5lZWRzIHRvIGJlIGluIHJlZ1QwIGZvciBzbG93IHBhdGgg
YmVsb3cuCisgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGNhbGxlZVNsb3QgeyBHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlICAqIHNpemVvZihSZWdpc3Rl
cikgfTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBjYWxsZWVTbG90
KTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBjYWxsZWVTbG90LndpdGhPZmZzZXQoVGFn
T2Zmc2V0KSk7CisjZW5kaWYKIAorICAgIC8vIGpzQXJnMTAgbWlnaHQgb3ZlcmxhcCB3aXRoIHJl
Z1QwLCBzbyBzdG9yZSAndGhpcycgYXJndW1lbnQgZmlyc3QKKyAgICBqaXQuc3RvcmVWYWx1ZShq
c1VuZGVmaW5lZCgpLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OnRoaXNB
cmd1bWVudCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpLCBqc0FyZzEwKTsK
KyAgICBjb25zdGV4cHIgR1BSUmVnIGltcG9ydEpTQ2VsbEdQUlJlZyA9IEdQUkluZm86OnJlZ1Qw
OyAvLyBDYWxsZWUgbmVlZHMgdG8gYmUgaW4gcmVnVDAgZm9yIHNsb3cgcGF0aCBiZWxvdy4KICAg
ICBBU1NFUlQoIXdhc21DQy5jYWxsZWVTYXZlUmVnaXN0ZXJzLmdldChpbXBvcnRKU0NlbGxHUFJS
ZWcpKTsKICAgICBtYXRlcmlhbGl6ZUltcG9ydEpTQ2VsbChqaXQsIGltcG9ydEluZGV4LCBpbXBv
cnRKU0NlbGxHUFJSZWcpOwotCi0gICAgaml0LnN0b3JlNjQoaW1wb3J0SlNDZWxsR1BSUmVnLCBj
YWxsZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAqIHN0YXRpY19jYXN0
PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKKyAgICBqaXQuc3RvcmVQdHIoaW1wb3J0SlNDZWxs
R1BSUmVnLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAqIHN0
YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0
KQorICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNl
bGxUYWcpLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAqIHN0
YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBUYWdPZmZzZXQpKTsKKyNlbmRpZgog
ICAgIGppdC5zdG9yZTMyKEpJVDo6VHJ1c3RlZEltbTMyKG51bWJlck9mUGFyYW1ldGVycyksIGNh
bGxlZUZyYW1lLndpdGhPZmZzZXQoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGlu
Z1RoaXMgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgUGF5bG9hZE9mZnNl
dCkpOwotICAgIGppdC5zdG9yZTY0KEpJVDo6VHJ1c3RlZEltbTY0KEpTVmFsdWU6OlZhbHVlVW5k
ZWZpbmVkKSwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90Ojp0aGlzQXJndW1l
bnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CiAKICAgICAvLyBGSVhN
RSBUYWlsIGNhbGwgaWYgdGhlIHdhc20gcmV0dXJuIHR5cGUgaXMgdm9pZCBhbmQgbm8gcmVnaXN0
ZXJzIHdlcmUgc3BpbGxlZC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NTQ4OAogCkBAIC0yODUsMTEgKzMwOSwxMSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNv
ZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQog
ICAgICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6IHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBPcHRp
bWl6ZSBJNjQgZXh0cmFjdGlvbiBmcm9tIEJpZ0ludC4KICAgICAgICAgICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAwNTMKLSAgICAgICAgICAgIEdQUlJl
ZyBkZXN0ID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uZ3ByKCk7Ci0gICAgICAgICAgICBqaXQu
c2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvSTY0KT4oR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIpOworICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgZGVzdCA9IHdhc21DYWxs
SW5mby5yZXN1bHRzWzBdLmpzcigpOworICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRl
Y2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCk+KEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsK
ICAgICAgICAgICAgIGF1dG8gY2FsbCA9IGppdC5jYWxsKE9wZXJhdGlvblB0clRhZyk7CiAgICAg
ICAgICAgICBleGNlcHRpb25DaGVja3MuYXBwZW5kKGppdC5lbWl0SnVtcElmRXhjZXB0aW9uKHZt
KSk7Ci0gICAgICAgICAgICBqaXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7
CisgICAgICAgICAgICBqaXQubW92ZVZhbHVlUmVncyhKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwg
ZGVzdCk7CiAKICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxp
bmtCdWZmZXIpIHsKICAgICAgICAgICAgICAgICBsaW5rQnVmZmVyLmxpbmsoY2FsbCwgRnVuY3Rp
b25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25Db252ZXJ0VG9JNjQpKTsKQEAgLTI5OSwx
OCArMzIzLDIxIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJU
YWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgIGNhc2UgVHlwZUtp
bmQ6OkkzMjogewogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBkb25lOwogICAg
ICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBzbG93UGF0aDsKLSAgICAgICAgICAgIEdQ
UlJlZyBkZXN0ID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uZ3ByKCk7CisgICAgICAgICAgICBK
U1ZhbHVlUmVncyBkZXN0SlNSID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uanNyKCk7CiAKLSAg
ICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIoR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycykpOwotICAgICAgICAgICAgc2xv
d1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdEludDMyKEpTVmFsdWVSZWdzKEdQUkluZm86OnJl
dHVyblZhbHVlR1BSKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKSk7Ci0gICAgICAgICAgICBqaXQu
emVyb0V4dGVuZDMyVG9Xb3JkKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBkZXN0KTsKKyAgICAg
ICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIoSlNSSW5mbzo6cmV0
dXJuVmFsdWVKU1IsIGppdC5zY3JhdGNoUmVnaXN0ZXIoKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJz
KSk7CisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIoSlNS
SW5mbzo6cmV0dXJuVmFsdWVKU1IsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycykpOworICAgICAgICAg
ICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUi5wYXlsb2Fk
R1BSKCksIGRlc3RKU1IucGF5bG9hZEdQUigpKTsKICAgICAgICAgICAgIGRvbmUuYXBwZW5kKGpp
dC5qdW1wKCkpOwogCiAgICAgICAgICAgICBzbG93UGF0aC5saW5rKCZqaXQpOwotICAgICAgICAg
ICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0kzMik+KEdQ
UkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxk
ZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9JMzIpPihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUik7
CiAgICAgICAgICAgICBhdXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25QdHJUYWcpOwogICAg
ICAgICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1bXBJZkV4Y2VwdGlvbih2
bSkpOwotICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3Qp
OworICAgICAgICAgICAgaml0Lm1vdmUoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IucGF5bG9hZEdQ
UigpLCBkZXN0SlNSLnBheWxvYWRHUFIoKSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAg
ICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCBkZXN0SlNSLnRh
Z0dQUigpKTsKKyNlbmRpZgogCiAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soWz1dIChMaW5r
QnVmZmVyJiBsaW5rQnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKGNh
bGwsIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQ29udmVydFRvSTMyKSk7
CkBAIC0zMjAsMjMgKzM0NywyNiBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2Fz
bUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOiB7Ci0gICAg
ICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CiAgICAgICAgICAgICBGUFJSZWcg
ZGVzdCA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmZwcigpOwogCi0gICAgICAgICAgICBhdXRv
IG5vdEFOdW1iZXIgPSBqaXQuYnJhbmNoSWZOb3ROdW1iZXIoR1BSSW5mbzo6cmV0dXJuVmFsdWVH
UFIsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7Ci0gICAgICAgICAgICBhdXRvIGlzRG91YmxlID0g
aml0LmJyYW5jaElmTm90SW50MzIoSlNWYWx1ZVJlZ3MoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIp
LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1w
TGlzdCBkb25lOworICAgICAgICAgICAgYXV0byBub3RBTnVtYmVyID0gaml0LmJyYW5jaElmTm90
TnVtYmVyKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBqaXQuc2NyYXRjaFJlZ2lzdGVyKCksIERv
Tm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAgICBhdXRvIGlzRG91YmxlID0gaml0LmJy
YW5jaElmTm90SW50MzIoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIERvTm90SGF2ZVRhZ1JlZ2lz
dGVycyk7CiAgICAgICAgICAgICAvLyBXZSdyZSBhbiBpbnQzMgotICAgICAgICAgICAgaml0LnNp
Z25FeHRlbmQzMlRvUHRyKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZXR1cm5W
YWx1ZUdQUik7Ci0gICAgICAgICAgICBqaXQuY29udmVydEludDY0VG9GbG9hdChHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CisgICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9GbG9h
dChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CiAgICAgICAgICAgICBkb25lLmFwcGVu
ZChqaXQuanVtcCgpKTsKIAogICAgICAgICAgICAgaXNEb3VibGUubGluaygmaml0KTsKKyNpZiBV
U0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgaml0LnVuYm94RG91YmxlV2l0aG91dEFzc2VydGlv
bnMoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJldHVyblZhbHVlR1BSMiwgZGVz
dCwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyNlbHNlCisgICAgICAgICAgICBqaXQudW5ib3hE
b3VibGUoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIGRlc3QpOworI2VuZGlmCiAgICAgICAgICAg
ICBqaXQuY29udmVydERvdWJsZVRvRmxvYXQoZGVzdCwgZGVzdCk7CiAgICAgICAgICAgICBkb25l
LmFwcGVuZChqaXQuanVtcCgpKTsKIAogICAgICAgICAgICAgbm90QU51bWJlci5saW5rKCZqaXQp
OwotICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZl
cnRUb0YzMik+KEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgICAgIGppdC5zZXR1
cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9GMzIpPihKU1JJbmZvOjpyZXR1
cm5WYWx1ZUpTUik7CiAgICAgICAgICAgICBhdXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25Q
dHJUYWcpOwogICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1bXBJ
ZkV4Y2VwdGlvbih2bSkpOwogICAgICAgICAgICAgaml0Lm1vdmUoRlBSSW5mbzo6cmV0dXJuVmFs
dWVGUFIgLCBkZXN0KTsKQEAgLTM0OSwyMiArMzc5LDI1IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1i
bGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0m
IHZtCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFR5cGVLaW5k
OjpGNjQ6IHsKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZG9uZTsKICAgICAg
ICAgICAgIEZQUlJlZyBkZXN0ID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uZnByKCk7CisgICAg
ICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CiAKLSAgICAgICAgICAgIGF1dG8g
bm90QU51bWJlciA9IGppdC5icmFuY2hJZk5vdE51bWJlcihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQ
UiwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKLSAgICAgICAgICAgIGF1dG8gaXNEb3VibGUgPSBq
aXQuYnJhbmNoSWZOb3RJbnQzMihKU1ZhbHVlUmVncyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiks
IERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAgICBhdXRvIG5vdEFOdW1iZXIgPSBq
aXQuYnJhbmNoSWZOb3ROdW1iZXIoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIGppdC5zY3JhdGNo
UmVnaXN0ZXIoKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgICAgIGF1dG8gaXNE
b3VibGUgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihKU1ZhbHVlUmVncyhKU1JJbmZvOjpyZXR1cm5W
YWx1ZUpTUiksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CiAgICAgICAgICAgICAvLyBXZSdyZSBh
biBpbnQzMgotICAgICAgICAgICAgaml0LnNpZ25FeHRlbmQzMlRvUHRyKEdQUkluZm86OnJldHVy
blZhbHVlR1BSLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7Ci0gICAgICAgICAgICBqaXQuY29u
dmVydEludDY0VG9Eb3VibGUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOworICAgICAg
ICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBk
ZXN0KTsKICAgICAgICAgICAgIGRvbmUuYXBwZW5kKGppdC5qdW1wKCkpOwogCiAgICAgICAgICAg
ICBpc0RvdWJsZS5saW5rKCZqaXQpOworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgICAgICBq
aXQudW5ib3hEb3VibGVXaXRob3V0QXNzZXJ0aW9ucyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwg
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIyLCBkZXN0LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwor
I2Vsc2UKKyAgICAgICAgICAgIGppdC51bmJveERvdWJsZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpT
UiwgZGVzdCk7CisjZW5kaWYKICAgICAgICAgICAgIGRvbmUuYXBwZW5kKGppdC5qdW1wKCkpOwog
CiAgICAgICAgICAgICBub3RBTnVtYmVyLmxpbmsoJmppdCk7Ci0gICAgICAgICAgICBqaXQuc2V0
dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvRjY0KT4oR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIpOworICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9w
ZXJhdGlvbkNvbnZlcnRUb0Y2NCk+KEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsKICAgICAgICAg
ICAgIGF1dG8gY2FsbCA9IGppdC5jYWxsKE9wZXJhdGlvblB0clRhZyk7CiAgICAgICAgICAgICBl
eGNlcHRpb25DaGVja3MuYXBwZW5kKGppdC5lbWl0SnVtcElmRXhjZXB0aW9uKHZtKSk7CiAgICAg
ICAgICAgICBqaXQubW92ZShGUFJJbmZvOjpyZXR1cm5WYWx1ZUZQUiwgZGVzdCk7CkBAIC0zNzgs
NyArNDExLDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRh
Zz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgfQogICAgICAgICBk
ZWZhdWx0OiAgewogICAgICAgICAgICAgaWYgKFdhc206OmlzRnVuY3JlZihyZXR1cm5UeXBlKSB8
fCBXYXNtOjppc0V4dGVybnJlZihyZXR1cm5UeXBlKSkKLSAgICAgICAgICAgICAgICBqaXQubW92
ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uZ3ByKCkp
OworICAgICAgICAgICAgICAgIGppdC5tb3ZlVmFsdWVSZWdzKEpTUkluZm86OnJldHVyblZhbHVl
SlNSLCB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5qc3IoKSk7CiAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgLy8gRm9yIHRoZSBKYXZhU2NyaXB0IGVtYmVkZGluZywgaW1wb3J0cyB3
aXRoIHRoZXNlIHR5cGVzIGluIHRoZWlyIHR5cGUgZGVmaW5pdGlvbiByZXR1cm4gYXJlIGEgV2Vi
QXNzZW1ibHkuTW9kdWxlIHZhbGlkYXRpb24gZXJyb3IuCiAgICAgICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM5MiwxMiArNDI1LDI5IEBAIEV4cGVjdGVkPE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2Fz
bVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uod2Fz
bUNvbnRleHRJbnN0YW5jZUdQUik7CiAgICAgICAgIH0KIAotICAgICAgICBqaXQuc2V0dXBBcmd1
bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMpPih3YXNtQ29udGV4dEluc3Rh
bmNlR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoJnR5cGVEZWZpbml0aW9uKSwgR1BS
SW5mbzo6cmV0dXJuVmFsdWVHUFIsIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIs
IENDYWxsSGVscGVyczo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBjb25zdGV4cHIg
R1BSUmVnIHNhdmVkUmVzdWx0c0dQUiA9IHByZWZlcnJlZEFyZ3VtZW50R1BSPGRlY2x0eXBlKG9w
ZXJhdGlvbkl0ZXJhdGVSZXN1bHRzKSwgND4oKTsKKyAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxw
ZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRzR1BSKTsKKyAgICAgICAgaWYg
Y29uc3RleHByIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGpp
dC5zdWJQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwpLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAg
c3RhdGljX2Fzc2VydChub092ZXJsYXAoc2F2ZWRSZXN1bHRzR1BSLCBKU1JJbmZvOjpyZXR1cm5W
YWx1ZUpTUikpOworICAgICAgICBBU1NFUlQod2FzbUNvbnRleHRJbnN0YW5jZUdQUiAhPSBzYXZl
ZFJlc3VsdHNHUFIpOworICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0
aW9uSXRlcmF0ZVJlc3VsdHMpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCBDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW1QdHIoJnR5cGVEZWZpbml0aW9uKSwgSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1Is
IHNhdmVkUmVzdWx0c0dQUiwgQ0NhbGxIZWxwZXJzOjpmcmFtZVBvaW50ZXJSZWdpc3Rlcik7CiAg
ICAgICAgIGppdC5jYWxsT3BlcmF0aW9uKEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3Bl
cmF0aW9uSXRlcmF0ZVJlc3VsdHMpKTsKKyAgICAgICAgaWYgY29uc3RleHByIChtYXhGcmFtZUV4
dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGppdC5hZGRQdHIoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBDQ2FsbEhlbHBl
cnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKwogICAgICAgICBleGNlcHRpb25DaGVja3MuYXBw
ZW5kKGppdC5lbWl0SnVtcElmRXhjZXB0aW9uKHZtKSk7CiAKLSAgICAgICAgZm9yIChSZWdpc3Rl
ckF0T2Zmc2V0IGxvY2F0aW9uIDogc2F2ZWRSZXN1bHRSZWdpc3RlcnMpCi0gICAgICAgICAgICBq
aXQubG9hZDY0VG9SZWcoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQ
b2ludGVyUmVnaXN0ZXIsIGxvY2F0aW9uLm9mZnNldCgpKSwgbG9jYXRpb24ucmVnKCkpOworICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2lnbmF0dXJlLnJldHVybkNvdW50KCk7ICsr
aSkgeworICAgICAgICAgICAgVmFsdWVMb2NhdGlvbiBsb2MgPSB3YXNtQ2FsbEluZm8ucmVzdWx0
c1tpXTsKKyAgICAgICAgICAgIGlmIChsb2MuaXNHUFIoKSkgeworI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgICAgICAgICAgICAgQVNTRVJUKHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9j
LmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpICsgNCA9PSBzYXZlZFJlc3VsdFJlZ2lzdGVy
cy5maW5kKGxvYy5qc3IoKS50YWdHUFIoKSktPm9mZnNldCgpKTsKKyNlbmRpZgorICAgICAgICAg
ICAgICAgIGppdC5sb2FkVmFsdWUoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigp
LnBheWxvYWRHUFIoKSktPm9mZnNldCgpKSwgbG9jLmpzcigpKTsKKyAgICAgICAgICAgIH0gZWxz
ZSBpZiAobG9jLmlzRlBSKCkpCisgICAgICAgICAgICAgICAgaml0LmxvYWREb3VibGUoQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVk
UmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmZwcigpKS0+b2Zmc2V0KCkpLCBsb2MuZnByKCkpOwor
ICAgICAgICB9CiAgICAgfQogCiAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9u
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24u
Y3BwCmluZGV4IGM0ZDJiOTZjMjkzMDcxNTUxZjk2YjhmYTRkY2VhZjUwOTVhMDliOTUuLjQwZmQz
NzFiMDI3ODMyZDY4NDQyMzgwNzM3NzI0MDAxNWE2YWNhOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCkBAIC0xNTcs
NiArMTU3LDkgQEAgcHRyZGlmZl90IFdlYkFzc2VtYmx5RnVuY3Rpb246OnByZXZpb3VzSW5zdGFu
Y2VPZmZzZXQoKSBjb25zdAogewogICAgIHB0cmRpZmZfdCByZXN1bHQgPSBjYWxsZWVTYXZlcygp
Lm51bWJlck9mU2V0UmVnaXN0ZXJzKCkgKiBzaXplb2YoQ1BVUmVnaXN0ZXIpOwogICAgIHJlc3Vs
dCA9IC1yZXN1bHQgLSBzaXplb2YoQ1BVUmVnaXN0ZXIpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQp
CisgICAgQVNTRVJUKCFjYWxsZWVTYXZlcygpLm51bWJlck9mU2V0RlBScygpKTsgLy8gQmVjYXVz
ZSBGUFJzIGFyZSB3aWRlciB0aGFuIHNpemVvZihDUFVSZWdpc3RlcikKKyNlbmRpZgogI2lmIEFT
U0VSVF9FTkFCTEVECiAgICAgcHRyZGlmZl90IG1pbk9mZnNldCA9IDE7CiAgICAgZm9yIChjb25z
dCBSZWdpc3RlckF0T2Zmc2V0JiByZWdBdE9mZnNldCA6IHVzZWRDYWxsZWVTYXZlUmVnaXN0ZXJz
KCkpIHsKQEAgLTE4NiwxNyArMTg5LDE1IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5
UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAg
Y29uc3QgYXV0byYgcGlubmVkUmVncyA9IFdhc206OlBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCk7
CiAgICAgUmVnaXN0ZXJBdE9mZnNldExpc3QgcmVnaXN0ZXJzVG9TcGlsbCA9IHVzZWRDYWxsZWVT
YXZlUmVnaXN0ZXJzKCk7CiAKLSAgICBhdXRvJiBtb2R1bGVJbmZvcm1hdGlvbiA9IGluc3RhbmNl
KCktPmluc3RhbmNlKCkubW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKTsKLQogICAgIGNvbnN0
IFdhc206Oldhc21DYWxsaW5nQ29udmVudGlvbiYgd2FzbUNDID0gV2FzbTo6d2FzbUNhbGxpbmdD
b252ZW50aW9uKCk7CiAgICAgV2FzbTo6Q2FsbEluZm9ybWF0aW9uIHdhc21DYWxsSW5mbyA9IHdh
c21DQy5jYWxsSW5mb3JtYXRpb25Gb3IodHlwZURlZmluaXRpb24pOwogICAgIFdhc206OkNhbGxJ
bmZvcm1hdGlvbiBqc0NhbGxJbmZvID0gV2FzbTo6anNDYWxsaW5nQ29udmVudGlvbigpLmNhbGxJ
bmZvcm1hdGlvbkZvcih0eXBlRGVmaW5pdGlvbiwgV2FzbTo6Q2FsbFJvbGU6OkNhbGxlZSk7CiAg
ICAgUmVnaXN0ZXJBdE9mZnNldExpc3Qgc2F2ZWRSZXN1bHRSZWdpc3RlcnMgPSB3YXNtQ2FsbElu
Zm8uY29tcHV0ZVJlc3VsdHNPZmZzZXRMaXN0KCk7CiAKLSAgICB1bnNpZ25lZCB0b3RhbEZyYW1l
U2l6ZSA9IHJlZ2lzdGVyc1RvU3BpbGwuc2l6ZSgpICogc2l6ZW9mKENQVVJlZ2lzdGVyKTsKKyAg
ICB1bnNpZ25lZCB0b3RhbEZyYW1lU2l6ZSA9IHJlZ2lzdGVyc1RvU3BpbGwuc2l6ZU9mQXJlYUlu
Qnl0ZXMoKTsKICAgICB0b3RhbEZyYW1lU2l6ZSArPSBzaXplb2YoQ1BVUmVnaXN0ZXIpOyAvLyBT
bG90IGZvciB0aGUgVk0ncyBwcmV2aW91cyB3YXNtIGluc3RhbmNlLgogICAgIHRvdGFsRnJhbWVT
aXplICs9IHdhc21DYWxsSW5mby5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXM7Ci0g
ICAgdG90YWxGcmFtZVNpemUgKz0gc2F2ZWRSZXN1bHRSZWdpc3RlcnMuc2l6ZSgpICogc2l6ZW9m
KENQVVJlZ2lzdGVyKTsKKyAgICB0b3RhbEZyYW1lU2l6ZSArPSBzYXZlZFJlc3VsdFJlZ2lzdGVy
cy5zaXplT2ZBcmVhSW5CeXRlcygpOwogCiAgICAgLy8gRklYTUU6IE9wdGltaXplIFdhc20gZnVu
Y3Rpb24gY2FsbCBldmVuIGlmIGFyZ3VtZW50cyBpbmNsdWRlIEk2NC4KICAgICAvLyBUaGlzIHJl
cXVpcmVzIEk2NCBleHRyYWN0aW9uIGZyb20gQmlnSW50LgpAQCAtMjE2LDkgKzIxNywxNCBAQCBN
YWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6
anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgICAgICBqaXQuc3RvcmVQdHIocmVnLCBDQ2FsbEhl
bHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIG9mZnNldCkpOwogICAg
IH0KIAotICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9u
KCkucHJvbG9ndWVTY3JhdGNoR1BSc1sxXTsKLSAgICBib29sIHN0YWNrTGltaXRHUFJJc0Nsb2Ji
ZXJlZCA9IGZhbHNlOworICAgIEpTVmFsdWVSZWdzIHNjcmF0Y2hKU1IgeworI2lmIFVTRShKU1ZB
TFVFMzJfNjQpCisgICAgICAgIFdhc206Ondhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3Vl
U2NyYXRjaEdQUnNbMl0sCisjZW5kaWYKKyAgICAgICAgV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50
aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1sxXQorICAgIH07CiAgICAgR1BSUmVnIHN0YWNrTGlt
aXRHUFIgPSBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJz
WzBdOworICAgIGJvb2wgc3RhY2tMaW1pdEdQUklzQ2xvYmJlcmVkID0gZmFsc2U7CiAgICAgaml0
LmxvYWRQdHIodm0uYWRkcmVzc09mU29mdFN0YWNrTGltaXQoKSwgc3RhY2tMaW1pdEdQUik7CiAK
ICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IHNsb3dQYXRoOwpAQCAtMjM3LDcgKzI0Myw3IEBA
IE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9u
Ojpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgIGppdC5lbWl0TWF0ZXJpYWxpemVUYWdD
aGVja1JlZ2lzdGVycygpOwogCiAgICAgLy8gTG9vcCBiYWNrd2FyZHMgc28gd2UgY2FuIHVzZSB0
aGUgZmlyc3QgZmxvYXRpbmcgcG9pbnQgYXJndW1lbnQgYXMgYSBzY3JhdGNoLgotICAgIEZQUlJl
ZyBzY3JhdGNoRlBSID0gV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKCkuZnByQXJnc1swXS5m
cHIoKTsKKyAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IFdhc206Ondhc21DYWxsaW5nQ29udmVudGlv
bigpLmZwckFyZ3NbMF07CiAgICAgZm9yICh1bnNpZ25lZCBpID0gc2lnbmF0dXJlLmFyZ3VtZW50
Q291bnQoKTsgaS0tOykgewogICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgY2FsbGVlRnJh
bWUgPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJl
Z2lzdGVyLCAwKTsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGpzUGFyYW0oR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGpzQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21GUCgp
KTsKQEAgLTI0NiwxMiArMjUyLDIwIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRy
VGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAg
IGF1dG8gdHlwZSA9IHNpZ25hdHVyZS5hcmd1bWVudFR5cGUoaSk7CiAgICAgICAgIHN3aXRjaCAo
dHlwZS5raW5kKSB7CiAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkkzMjogewotICAgICAg
ICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgIHNsb3dQ
YXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMihzY3JhdGNoR1BSKSk7Ci0gICAgICAgICAg
ICBpZiAoaXNTdGFjaykKLSAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihzY3JhdGNoR1BSLCBj
YWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQ
KCkpKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMy
VG9Xb3JkKHNjcmF0Y2hHUFIsIHdhc21DYWxsSW5mby5wYXJhbXNbaV0uZ3ByKCkpOworICAgICAg
ICAgICAgaml0LmxvYWRWYWx1ZShqc1BhcmFtLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAgIHNs
b3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMihzY3JhdGNoSlNSKSk7CisgICAgICAg
ICAgICBpZiAoaXNTdGFjaykgeworICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVz
cyBhZGRyIHsgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9m
ZnNldEZyb21TUCgpKSB9OworICAgICAgICAgICAgICAgIGppdC5zdG9yZTMyKHNjcmF0Y2hKU1Iu
cGF5bG9hZEdQUigpLCBhZGRyLndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOworI2lmIFVTRShK
U1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoMCksIGFkZHIud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgorICAg
ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3Jk
KHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmpzcigpLnBh
eWxvYWRHUFIoKSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICBqaXQu
bW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSwgd2FzbUNhbGxJbmZvLnBhcmFtc1tp
XS5qc3IoKS50YWdHUFIoKSk7CisjZW5kaWYKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OlJlZjoKQEAgLTI2
MCwyNyArMjc0LDI3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJB
c3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgIGNhc2UgV2Fz
bTo6VHlwZUtpbmQ6OkV4dGVybnJlZjogewogICAgICAgICAgICAgaWYgKCFXYXNtOjppc0V4dGVy
bnJlZih0eXBlKSkgewogICAgICAgICAgICAgICAgIC8vIEVuc3VyZSB3ZSBoYXZlIGEgV0FTTSBl
eHBvcnRlZCBmdW5jdGlvbi4KLSAgICAgICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNj
cmF0Y2hHUFIpOwotICAgICAgICAgICAgICAgIGF1dG8gaXNOdWxsID0gaml0LmJyYW5jaElmTnVs
bChzY3JhdGNoR1BSKTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpzUGFyYW0sIHNj
cmF0Y2hKU1IpOworICAgICAgICAgICAgICAgIGF1dG8gaXNOdWxsID0gaml0LmJyYW5jaElmTnVs
bChzY3JhdGNoSlNSKTsKICAgICAgICAgICAgICAgICBpZiAoIXR5cGUuaXNOdWxsYWJsZSgpKQog
ICAgICAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaXNOdWxsKTsKLSAgICAgICAgICAg
ICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90Q2VsbChzY3JhdGNoR1BSKSk7Cisg
ICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdENlbGwoc2NyYXRj
aEpTUikpOwogCiAgICAgICAgICAgICAgICAgc3RhY2tMaW1pdEdQUklzQ2xvYmJlcmVkID0gdHJ1
ZTsKLSAgICAgICAgICAgICAgICBqaXQuZW1pdExvYWRTdHJ1Y3R1cmUodm0sIHNjcmF0Y2hHUFIs
IHNjcmF0Y2hHUFIpOwotICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6
QWRkcmVzcyhzY3JhdGNoR1BSLCBTdHJ1Y3R1cmU6OmNsYXNzSW5mb09mZnNldCgpKSwgc2NyYXRj
aEdQUik7CisgICAgICAgICAgICAgICAgaml0LmVtaXRMb2FkU3RydWN0dXJlKHZtLCBzY3JhdGNo
SlNSLnBheWxvYWRHUFIoKSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAg
ICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoSlNSLnBheWxvYWRH
UFIoKSwgU3RydWN0dXJlOjpjbGFzc0luZm9PZmZzZXQoKSksIHNjcmF0Y2hKU1IucGF5bG9hZEdQ
UigpKTsKIAogICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxXZWJB
c3NlbWJseUZ1bmN0aW9uPjo6dmFsdWUsICJXZSBkbyBub3QgY2hlY2sgZm9yIHN1YnR5cGVzIGJl
bG93Iik7CiAgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPFdlYkFz
c2VtYmx5V3JhcHBlckZ1bmN0aW9uPjo6dmFsdWUsICJXZSBkbyBub3QgY2hlY2sgZm9yIHN1YnR5
cGVzIGJlbG93Iik7CiAKLSAgICAgICAgICAgICAgICBhdXRvIGlzV2FzbUZ1bmN0aW9uID0gaml0
LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6OkVxdWFsLCBzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW1QdHIoV2ViQXNzZW1ibHlGdW5jdGlvbjo6aW5mbygpKSk7Ci0gICAgICAgICAg
ICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVh
bCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKFdlYkFzc2VtYmx5V3Jh
cHBlckZ1bmN0aW9uOjppbmZvKCkpKSk7CisgICAgICAgICAgICAgICAgYXV0byBpc1dhc21GdW5j
dGlvbiA9IGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgc2NyYXRjaEpTUi5wYXls
b2FkR1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihXZWJBc3NlbWJseUZ1bmN0aW9u
OjppbmZvKCkpKTsKKyAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaFB0
cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tUHRyKFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uOjppbmZvKCkp
KSk7CiAKICAgICAgICAgICAgICAgICBpc1dhc21GdW5jdGlvbi5saW5rKCZqaXQpOwogICAgICAg
ICAgICAgICAgIGlmIChXYXNtOjppc1JlZldpdGhUeXBlSW5kZXgodHlwZSkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAg
ICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFdl
YkFzc2VtYmx5RnVuY3Rpb25CYXNlOjpvZmZzZXRPZlNpZ25hdHVyZUluZGV4KCkpLCBzY3JhdGNo
R1BSKTsKLSAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hQdHIo
Q0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tUHRyKHR5cGUuaW5kZXgpKSk7CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKGpz
UGFyYW0sIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAgICAgICAgaml0
LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBX
ZWJBc3NlbWJseUZ1bmN0aW9uQmFzZTo6b2Zmc2V0T2ZTaWduYXR1cmVJbmRleCgpKSwgc2NyYXRj
aEpTUi5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQo
aml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNoSlNSLnBheWxvYWRH
UFIoKSwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHR5cGUuaW5kZXgpKSk7CiAgICAgICAg
ICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgaWYgKHR5cGUuaXNOdWxsYWJsZSgpKQpAQCAt
Mjg4LDE1ICszMDIsMTUgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdl
YkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgaWYgKGlzU3RhY2spIHsKLSAgICAgICAgICAgICAgICBqaXQubG9hZDY0
KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOworICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQ
YXJhbSwgc2NyYXRjaEpTUik7CiAgICAgICAgICAgICAgICAgaWYgKCF0eXBlLmlzTnVsbGFibGUo
KSkKLSAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk51bGwo
c2NyYXRjaEdQUikpOwotICAgICAgICAgICAgICAgIGppdC5zdG9yZTY0KHNjcmF0Y2hHUFIsIGNh
bGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1Ao
KSkpOworICAgICAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTnVs
bChzY3JhdGNoSlNSKSk7CisgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoc2NyYXRjaEpT
UiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZy
b21TUCgpKSk7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGF1dG8gZXh0
ZXJuR1BSID0gd2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5ncHIoKTsKLSAgICAgICAgICAgICAgICBq
aXQubG9hZDY0KGpzUGFyYW0sIGV4dGVybkdQUik7CisgICAgICAgICAgICAgICAgYXV0byBleHRl
cm5KU1IgPSB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmpzcigpOworICAgICAgICAgICAgICAgIGpp
dC5sb2FkVmFsdWUoanNQYXJhbSwgZXh0ZXJuSlNSKTsKICAgICAgICAgICAgICAgICBpZiAoIXR5
cGUuaXNOdWxsYWJsZSgpKQotICAgICAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0
LmJyYW5jaElmTnVsbChleHRlcm5HUFIpKTsKKyAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGgu
YXBwZW5kKGppdC5icmFuY2hJZk51bGwoZXh0ZXJuSlNSKSk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMzA0LDM1ICszMTgsNDEgQEAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVu
dHJ5cG9pbnRTbG93KCkKICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RjY0OiB7CiAgICAg
ICAgICAgICBpZiAoIWlzU3RhY2spCiAgICAgICAgICAgICAgICAgc2NyYXRjaEZQUiA9IHdhc21D
YWxsSW5mby5wYXJhbXNbaV0uZnByKCk7Ci0gICAgICAgICAgICBhdXRvIG1vdmVUb0Rlc3RpbmF0
aW9uID0gWyZdICgpIHsKLSAgICAgICAgICAgICAgICBpZiAoaXNTdGFjaykgewotICAgICAgICAg
ICAgICAgICAgICBpZiAoc2lnbmF0dXJlLmFyZ3VtZW50VHlwZShpKS5pc0YzMigpKQotICAgICAg
ICAgICAgICAgICAgICAgICAgaml0LnN0b3JlRmxvYXQoc2NyYXRjaEZQUiwgY2FsbGVlRnJhbWUu
d2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSk7Ci0gICAg
ICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZURv
dWJsZShzY3JhdGNoRlBSLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21DYWxsSW5mby5wYXJh
bXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9
OwogCi0gICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOwotICAgICAg
ICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihzY3JhdGNoR1BSKSk7
Ci0gICAgICAgICAgICBhdXRvIGlzSW50MzIgPSBqaXQuYnJhbmNoSWZJbnQzMihzY3JhdGNoR1BS
KTsKLQotICAgICAgICAgICAgaml0LnVuYm94RG91YmxlKHNjcmF0Y2hHUFIsIHNjcmF0Y2hHUFIs
IHNjcmF0Y2hGUFIpOworICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShqc1BhcmFtLCBzY3JhdGNo
SlNSKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGpp
dC5icmFuY2hJZk5vdE51bWJlcihzY3JhdGNoSlNSLCBJbnZhbGlkR1BSUmVnKSk7CisjZWxpZiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgc3RhY2tMaW1pdEdQUklzQ2xvYmJlcmVkID0g
dHJ1ZTsKKyAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIo
c2NyYXRjaEpTUiwgc3RhY2tMaW1pdEdQUikpOworI2VuZGlmCisgICAgICAgICAgICBhdXRvIGlz
SW50MzIgPSBqaXQuYnJhbmNoSWZJbnQzMihzY3JhdGNoSlNSKTsKKyNpZiBVU0UoSlNWQUxVRTY0
KQorICAgICAgICAgICAgaml0LnVuYm94RG91YmxlKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBz
Y3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgc2NyYXRjaEZQUik7CisjZWxpZiBVU0UoSlNWQUxVRTMy
XzY0KQorICAgICAgICAgICAgaml0LnVuYm94RG91YmxlKHNjcmF0Y2hKU1IsIHNjcmF0Y2hGUFIp
OworI2VuZGlmCiAgICAgICAgICAgICBpZiAoc2lnbmF0dXJlLmFyZ3VtZW50VHlwZShpKS5pc0Yz
MigpKQogICAgICAgICAgICAgICAgIGppdC5jb252ZXJ0RG91YmxlVG9GbG9hdChzY3JhdGNoRlBS
LCBzY3JhdGNoRlBSKTsKLSAgICAgICAgICAgIG1vdmVUb0Rlc3RpbmF0aW9uKCk7CiAgICAgICAg
ICAgICBhdXRvIGRvbmUgPSBqaXQuanVtcCgpOwogCiAgICAgICAgICAgICBpc0ludDMyLmxpbmso
JmppdCk7CiAgICAgICAgICAgICBpZiAoc2lnbmF0dXJlLmFyZ3VtZW50VHlwZShpKS5pc0YzMigp
KSB7Ci0gICAgICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRmxvYXQoc2NyYXRjaEdQUiwg
c2NyYXRjaEZQUik7Ci0gICAgICAgICAgICAgICAgbW92ZVRvRGVzdGluYXRpb24oKTsKKyAgICAg
ICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9GbG9hdChzY3JhdGNoSlNSLnBheWxvYWRHUFIo
KSwgc2NyYXRjaEZQUik7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGpp
dC5jb252ZXJ0SW50MzJUb0RvdWJsZShzY3JhdGNoR1BSLCBzY3JhdGNoRlBSKTsKLSAgICAgICAg
ICAgICAgICBtb3ZlVG9EZXN0aW5hdGlvbigpOworICAgICAgICAgICAgICAgIGppdC5jb252ZXJ0
SW50MzJUb0RvdWJsZShzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgc2NyYXRjaEZQUik7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBkb25lLmxpbmsoJmppdCk7Ci0KKyAgICAgICAgICAgIGlm
IChpc1N0YWNrKSB7CisgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGFkZHIg
eyBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJv
bVNQKCkpIH07CisgICAgICAgICAgICAgICAgaWYgKHNpZ25hdHVyZS5hcmd1bWVudFR5cGUoaSku
aXNGMzIoKSkgeworICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVGbG9hdChzY3JhdGNoRlBS
LCBhZGRyLndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQp
CisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bTMyKDApLCBhZGRyLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7CisjZW5kaWYKKyAgICAgICAgICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlRG91YmxlKHNjcmF0Y2hG
UFIsIGFkZHIpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgZGVmYXVsdDoKQEAgLTM0Myw0MiArMzYzLDQ0IEBAIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50
U2xvdygpCiAgICAgLy8gQXQgdGhpcyBwb2ludCwgd2UncmUgY29tbWl0dGVkIHRvIGRvaW5nIGEg
ZmFzdCBjYWxsLgogCiAgICAgaWYgKFdhc206OkNvbnRleHQ6OnVzZUZhc3RUTFMoKSkgCi0gICAg
ICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZShzY3JhdGNoR1BSKTsKKyAgICAgICAgaml0
LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKICAgICBl
bHNlCi0gICAgICAgIGppdC5sb2FkUHRyKHZtLndhc21Db250ZXh0LnBvaW50ZXJUb0luc3RhbmNl
KCksIHNjcmF0Y2hHUFIpOworICAgICAgICBqaXQubG9hZFB0cih2bS53YXNtQ29udGV4dC5wb2lu
dGVyVG9JbnN0YW5jZSgpLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAgICAgcHRyZGlmZl90
IHByZXZpb3VzSW5zdGFuY2VPZmZzZXQgPSB0aGlzLT5wcmV2aW91c0luc3RhbmNlT2Zmc2V0KCk7
Ci0gICAgaml0LnN0b3JlUHRyKHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgcHJldmlvdXNJbnN0YW5jZU9mZnNldCkpOworICAgIGpp
dC5zdG9yZVB0cihzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBwcmV2aW91c0luc3RhbmNlT2Zmc2V0KSk7CiAK
LSAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoJmluc3RhbmNlKCktPmlu
c3RhbmNlKCkpLCBzY3JhdGNoR1BSKTsKKyAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW1QdHIoJmluc3RhbmNlKCktPmluc3RhbmNlKCkpLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIo
KSk7CiAgICAgaWYgKFdhc206OkNvbnRleHQ6OnVzZUZhc3RUTFMoKSkgCi0gICAgICAgIGppdC5z
dG9yZVdhc21Db250ZXh0SW5zdGFuY2Uoc2NyYXRjaEdQUik7CisgICAgICAgIGppdC5zdG9yZVdh
c21Db250ZXh0SW5zdGFuY2Uoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOwogICAgIGVsc2Ugewot
ICAgICAgICBqaXQubW92ZShzY3JhdGNoR1BSLCBwaW5uZWRSZWdzLndhc21Db250ZXh0SW5zdGFu
Y2VQb2ludGVyKTsKLSAgICAgICAgaml0LnN0b3JlUHRyKHNjcmF0Y2hHUFIsIHZtLndhc21Db250
ZXh0LnBvaW50ZXJUb0luc3RhbmNlKCkpOworICAgICAgICBqaXQubW92ZShzY3JhdGNoSlNSLnBh
eWxvYWRHUFIoKSwgcGlubmVkUmVncy53YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlcik7CisgICAg
ICAgIGppdC5zdG9yZVB0cihzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgdm0ud2FzbUNvbnRleHQu
cG9pbnRlclRvSW5zdGFuY2UoKSk7CiAgICAgfQogICAgIGlmIChzdGFja0xpbWl0R1BSSXNDbG9i
YmVyZWQpCiAgICAgICAgIGppdC5sb2FkUHRyKHZtLmFkZHJlc3NPZlNvZnRTdGFja0xpbWl0KCks
IHN0YWNrTGltaXRHUFIpOwotICAgIGppdC5zdG9yZVB0cihzdGFja0xpbWl0R1BSLCBDQ2FsbEhl
bHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVk
U3RhY2tMaW1pdCgpKSk7CisgICAgaml0LnN0b3JlUHRyKHN0YWNrTGltaXRHUFIsIENDYWxsSGVs
cGVyczo6QWRkcmVzcyhzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgV2FzbTo6SW5zdGFuY2U6Om9m
ZnNldE9mQ2FjaGVkU3RhY2tMaW1pdCgpKSk7CiAKLSAgICBpZiAoISFtb2R1bGVJbmZvcm1hdGlv
bi5tZW1vcnkpIHsKKyNpZiAhQ1BVKEFSTSkgLy8gQVJNIGhhcyBubyBwaW5uZWQgcmVnaXN0ZXJz
IGZvciBXYXNtIE1lbW9yeSwgc28gbm8gbmVlZCB0byBzZXQgdGhlbSB1cAorICAgIGlmICghIWlu
c3RhbmNlKCktPmluc3RhbmNlKCkubW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKS5tZW1vcnkp
IHsKICAgICAgICAgR1BSUmVnIGJhc2VNZW1vcnkgPSBwaW5uZWRSZWdzLmJhc2VNZW1vcnlQb2lu
dGVyOwogICAgICAgICBHUFJSZWcgc2NyYXRjaE9yQm91bmRzQ2hlY2tpbmdTaXplID0gSW52YWxp
ZEdQUlJlZzsKICAgICAgICAgYXV0byBtb2RlID0gaW5zdGFuY2UoKS0+bWVtb3J5TW9kZSgpOwog
CiAgICAgICAgIGlmIChpc0FSTTY0RSgpKSB7Ci0gICAgICAgICAgICBpZiAobW9kZSAhPSBXYXNt
OjpNZW1vcnlNb2RlOjpTaWduYWxpbmcpCisgICAgICAgICAgICBpZiAobW9kZSA9PSBXYXNtOjpN
ZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykKICAgICAgICAgICAgICAgICBzY3JhdGNoT3JCb3Vu
ZHNDaGVja2luZ1NpemUgPSBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyOwog
ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5n
U2l6ZSA9IHN0YWNrTGltaXRHUFI7Ci0gICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBl
cnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkQm91
bmRzQ2hlY2tpbmdTaXplKCkpLCBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUpOworICAgICAg
ICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hKU1IucGF5bG9h
ZEdQUigpLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHNDaGVja2luZ1NpemUo
KSksIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBpZiAobW9kZSAhPSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmcpCi0gICAgICAg
ICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFdh
c206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSgpKSwgcGlubmVk
UmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3Rlcik7CisgICAgICAgICAgICBpZiAobW9kZSA9
PSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykKKyAgICAgICAgICAgICAgICBqaXQu
bG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIFdh
c206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSgpKSwgcGlubmVk
UmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3Rlcik7CiAgICAgICAgIH0KIAotICAgICAgICBq
aXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgV2FzbTo6SW5zdGFu
Y2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNlTWVtb3J5KTsKLSAgICAgICAgaml0LmNh
Z2VDb25kaXRpb25hbGx5QW5kVW50YWcoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwg
c2NyYXRjaE9yQm91bmRzQ2hlY2tpbmdTaXplLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgaml0Lmxv
YWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBXYXNt
OjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnkoKSksIGJhc2VNZW1vcnkpOworICAgICAg
ICBqaXQuY2FnZUNvbmRpdGlvbmFsbHlBbmRVbnRhZyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNl
TWVtb3J5LCBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUsIHNjcmF0Y2hKU1IucGF5bG9hZEdQ
UigpKTsKICAgICB9CisjZW5kaWYKIAogICAgIC8vIFdlIHVzZSB0aGlzIGNhbGxlZSB0byBpbmRp
Y2F0ZSBob3cgdG8gdW53aW5kIHBhc3QgdGhlc2UgdHlwZXMgb2YgZnJhbWVzOgogICAgIC8vIDEu
IFdlIG5lZWQgdG8ga25vdyB3aGVyZSB0byBnZXQgY2FsbGVlIHNhdmVzLgpAQCAtMzkwLDggKzQx
Miw4IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1
bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgLy8gRklYTUU6IEN1cnJlbnRseSB3
ZSBqdXN0IGRvIGFuIGluZGlyZWN0IGp1bXAuIEJ1dCB3ZSBzaG91bGQgdGVhY2ggdGhlIE1vZHVs
ZQogICAgIC8vIGhvdyB0byByZXBhdGNoIHVzOgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY1NzAKLSAgICBqaXQubG9hZFB0cihlbnRyeXBvaW50TG9h
ZExvY2F0aW9uKCksIHNjcmF0Y2hHUFIpOwotICAgIGppdC5jYWxsKHNjcmF0Y2hHUFIsIFdhc21F
bnRyeVB0clRhZyk7CisgICAgaml0LmxvYWRQdHIoZW50cnlwb2ludExvYWRMb2NhdGlvbigpLCBz
Y3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CisgICAgaml0LmNhbGwoc2NyYXRjaEpTUi5wYXlsb2Fk
R1BSKCksIFdhc21FbnRyeVB0clRhZyk7CiAKICAgICBtYXJzaGFsbEpTUmVzdWx0KGppdCwgdHlw
ZURlZmluaXRpb24sIHdhc21DYWxsSW5mbywgc2F2ZWRSZXN1bHRSZWdpc3RlcnMpOwogCkBAIC00
MjEsNyArNDQzLDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFz
c2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICBqaXQubW92ZShDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIodGhpcyksIEdQUkluZm86OnJlZ1QwKTsKICAgICBqaXQu
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICNpZiBDUFUoQVJNNjRFKQotICAgIGppdC51bnRhZ1Jl
dHVybkFkZHJlc3Moc2NyYXRjaEdQUik7CisgICAgaml0LnVudGFnUmV0dXJuQWRkcmVzcyhzY3Jh
dGNoSlNSLnBheWxvYWRHUFIoKSk7CiAjZW5kaWYKICAgICBhdXRvIGp1bXBUb0hvc3RDYWxsVGh1
bmsgPSBqaXQuanVtcCgpOwogCkBAIC00MjksNyArNDUxLDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRT
bG93KCkKICAgICBpZiAoVU5MSUtFTFkobGlua0J1ZmZlci5kaWRGYWlsVG9BbGxvY2F0ZSgpKSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBsaW5rQnVmZmVyLmxpbmsoanVtcFRvSG9z
dENhbGxUaHVuaywgQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4oZXhlY3V0YWJsZSgp
LT5lbnRyeXBvaW50Rm9yKENvZGVGb3JDYWxsLCBNdXN0Q2hlY2tBcml0eSkuZXhlY3V0YWJsZUFk
ZHJlc3MoKSkpOworICAgIGxpbmtCdWZmZXIubGluayhqdW1wVG9Ib3N0Q2FsbFRodW5rLCBDb2Rl
TG9jYXRpb25MYWJlbDxKU0VudHJ5UHRyVGFnPihleGVjdXRhYmxlKCktPmVudHJ5cG9pbnRGb3Io
Q29kZUZvckNhbGwsIE11c3RDaGVja0FyaXR5KSkpOwogICAgIG1fanNDYWxsRW50cnlwb2ludCA9
IEZJTkFMSVpFX1dBU01fQ09ERShsaW5rQnVmZmVyLCBXYXNtRW50cnlQdHJUYWcsICJKUy0+V2Fz
bSBJQyIpOwogICAgIHJldHVybiBtX2pzQ2FsbEVudHJ5cG9pbnQuY29kZSgpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25z
dHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUds
b2JhbENvbnN0cnVjdG9yLmNwcAppbmRleCBhMjIxYjJlY2I3MTM4YzlhZmFmMWUwYjQwZjhmMzAx
YjIwODkzZGQ1Li5jYzdjYmUzZTQ3ODliNjMxYjA0NTlkY2NkMWRhZDdmZjExNTUwODk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbENv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUdsb2JhbENvbnN0cnVjdG9yLmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIEpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5R2xvYmFsLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iCiAgICAgUmVmPFdhc206Okdsb2JhbD4gd2FzbUdsb2JhbCA9IFdhc206Okds
b2JhbDo6Y3JlYXRlKHR5cGUsIG11dGFiaWxpdHksIGluaXRpYWxWYWx1ZSk7CiAgICAgSlNXZWJB
c3NlbWJseUdsb2JhbCoganNXZWJBc3NlbWJseUdsb2JhbCA9IEpTV2ViQXNzZW1ibHlHbG9iYWw6
OnRyeUNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCB3ZWJBc3NlbWJseUdsb2JhbFN0cnVjdHVyZSwg
V1RGTW92ZSh3YXNtR2xvYmFsKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3Bl
LCB7IH0pOwotICAgIGVuc3VyZVN0aWxsQWxpdmVIZXJlKGJpdHdpc2VfY2FzdDx2b2lkKj4oaW5p
dGlhbFZhbHVlKSk7IC8vIEVuc3VyZSB0aGlzIGlzIGtlcHQgYWxpdmUgd2hpbGUgY3JlYXRpbmcg
SlNXZWJBc3NlbWJseUdsb2JhbC4KKyAgICBlbnN1cmVTdGlsbEFsaXZlSGVyZShpbml0aWFsVmFs
dWUpOyAvLyBFbnN1cmUgdGhpcyBpcyBrZXB0IGFsaXZlIHdoaWxlIGNyZWF0aW5nIEpTV2ViQXNz
ZW1ibHlHbG9iYWwuCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1dlYkFzc2VtYmx5R2xv
YmFsKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCmluZGV4IGJjOWNiMDY4ZDhhMzU3NGYwNmYxMTMz
NTU0Y2VlZWU3MmIwM2ZiNTQuLjk3YzNlYzkyMzlkNWI0NTg5OTkxOTI1Y2I3OTE4MDZlOGJiZGFj
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
TW9kdWxlUmVjb3JkLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseU1vZHVsZVJlY29yZC5jcHAKQEAgLTU1NCw3ICs1NTQsNyBAQCB2b2lkIFdlYkFzc2Vt
Ymx5TW9kdWxlUmVjb3JkOjppbml0aWFsaXplRXhwb3J0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQogICAgICAgICAgICAgICAgIEpTV2ViQXNzZW1ibHlHbG9iYWwqIGdsb2JhbFZhbHVl
ID0gSlNXZWJBc3NlbWJseUdsb2JhbDo6dHJ5Q3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGdsb2Jh
bE9iamVjdC0+d2ViQXNzZW1ibHlHbG9iYWxTdHJ1Y3R1cmUoKSwgV1RGTW92ZShnbG9iYWxSZWYp
KTsKICAgICAgICAgICAgICAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogICAgICAgICAg
ICAgICAgIG1faW5zdGFuY2UtPmxpbmtHbG9iYWwodm0sIGdsb2JhbEluZGV4LCBnbG9iYWxWYWx1
ZSk7Ci0gICAgICAgICAgICAgICAgZW5zdXJlU3RpbGxBbGl2ZUhlcmUoYml0d2lzZV9jYXN0PHZv
aWQqPihpbml0aWFsQml0cykpOyAvLyBFbnN1cmUgdGhpcyBpcyBrZXB0IGFsaXZlIHdoaWxlIGNy
ZWF0aW5nIEpTV2ViQXNzZW1ibHlHbG9iYWwuCisgICAgICAgICAgICAgICAgZW5zdXJlU3RpbGxB
bGl2ZUhlcmUoaW5pdGlhbEJpdHMpOyAvLyBFbnN1cmUgdGhpcyBpcyBrZXB0IGFsaXZlIHdoaWxl
IGNyZWF0aW5nIEpTV2ViQXNzZW1ibHlHbG9iYWwuCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybUVuYWJsZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAppbmRleCBh
MmUwM2Y4MTMzNjlkYThkMDFkYjJiZjExNzZkM2ZhZDgyN2E1MWE3Li5hNTY0MzIxMzQ4ZGZiNTkz
MzlmMTkxMzk0YjljNTRlNmIyNDMzZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUVuYWJsZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKQEAgLTU4
OSwxMiArNTg5LDEyIEBACiAjZW5kaWYKIAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0vKiBEaXNh
YmxlIFdlYkFzc2VtYmx5IG9uIGFsbCAzMmJpdCBwbGF0Zm9ybXMuIEl0cyBMTEludCB0aWVyIGNv
dWxkCi0gKiB3b3JrIG9uIHRoZW0sIGJ1dCBzdGlsbCBuZWVkcyBzb21lIGZpbmFsIHRvdWNoZXMu
ICovCisjaWYgIUNQVShBUk0pCiAjdW5kZWYgRU5BQkxFX1dFQkFTU0VNQkxZCiAjZGVmaW5lIEVO
QUJMRV9XRUJBU1NFTUJMWSAwCiAjdW5kZWYgRU5BQkxFX1dFQkFTU0VNQkxZX0IzSklUCiAjZGVm
aW5lIEVOQUJMRV9XRUJBU1NFTUJMWV9CM0pJVCAwCisjZW5kaWYKICNpZiAoQ1BVKEFSTV9USFVN
QjIpIHx8IENQVShNSVBTKSkgJiYgT1MoTElOVVgpCiAvKiBPbiBBUk12NyBhbmQgTUlQUyBvbiBM
aW51eCB0aGUgSklUIGlzIGVuYWJsZWQgdW5sZXNzIGV4cGxpY2l0bHkgZGlzYWJsZWQuICovCiAj
aWYgIWRlZmluZWQoRU5BQkxFX0pJVCkKQEAgLTcxMiw3ICs3MTIsNyBAQAogI2RlZmluZSBFTkFC
TEVfU0FNUExJTkdfUFJPRklMRVIgMQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkp
ICYmIEhBVkUoTUFDSElORV9DT05URVhUKQorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgSEFW
RShNQUNISU5FX0NPTlRFWFQpICYmIENQVShBRERSRVNTNjQpCiAjZGVmaW5lIEVOQUJMRV9XRUJB
U1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZIDEKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNGYxMzgxY2E1OGRlYjk5NWQ2OTIzZTIz
MjhiNjc4NGQ4OTZjMmE0NC4uMjRkMTY4YzY3MzZkYmE1YjRlMjk5NjI5NzU3MTYyNzlhMGEwMmNl
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDIyLTA0LTI3ICBYYW4gTMOzcGV6ICA8eGFuQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW0pTQ10gRW5hYmxlIFdhc21MTEludCBvbiBBUk12NworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMjYwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi1qc2Mtc3RyZXNz
LXRlc3RzOiBhbGxvdyB0byBydW4gdGhlIHdhc20gdGVzdHMgb24KKyAgICAgICAgYXJtdjcgZXZl
biB3aXRob3V0IGppdCBzdXBwb3J0IChmb3Igbm93KS4KKwogMjAyMi0wNC0yNyAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHRlc3RSdW5uZXIgQVBJIHRv
IGNsZWFyIG1lbW9yeSBjYWNoZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0
cmVzcy10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKaW5kZXggMzQz
MjI5YjE5MWY0Y2Y3NzNlY2I3YzUzNzU2ZjYxYjZkNTIwN2IzYi4uMzY1OThkYzZkZDRiYjM3NmY1
Y2E0Y2IyMDFhOGMyNDBkZWI1YjdiZiAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4tanNj
LXN0cmVzcy10ZXN0cworKysgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCkBA
IC01ODUsNiArNTg1LDggQEAgZW5kCiAkaG9zdE9TID0gZGV0ZXJtaW5lT1MgdW5sZXNzICRob3N0
T1MKICRhcmNoaXRlY3R1cmUgPSBkZXRlcm1pbmVBcmNoaXRlY3R1cmUgdW5sZXNzICRhcmNoaXRl
Y3R1cmUKICRpc0ZUTFBsYXRmb3JtID0gISgkYXJjaGl0ZWN0dXJlID09ICJ4ODYiIHx8ICRhcmNo
aXRlY3R1cmUgPT0gImFybSIgfHwgJGFyY2hpdGVjdHVyZSA9PSAibWlwcyIgfHwgJGFyY2hpdGVj
dHVyZSA9PSAicmlzY3Y2NCIgfHwgJGhvc3RPUyA9PSAid2luZG93cyIgfHwgJGhvc3RPUyA9PSAi
cGxheXN0YXRpb24iKQorIyBTcGVjaWFsIGNhc2UgYXJtdjcsIHdlIHdhbnQgdG8gcnVuIHRoZSB3
YXNtIHRlc3RzIHRlbXBvcmFyaWx5IHdpdGhvdXQgQjMvQWlyIHN1cHBvcnQKKyRpc1dhc21QbGF0
Zm9ybSA9ICRpc0ZUTFBsYXRmb3JtIHx8ICRhcmNoaXRlY3R1cmUgPT0gImFybSIKIAogaWYgJGFy
Y2hpdGVjdHVyZSA9PSAieDg2IgogICAgICMgVGhlIEpJVCBpcyB0ZW1wb3JhcmlseSBkaXNhYmxl
ZCBvbiB0aGlzIHBsYXRmb3JtIHNpbmNlCkBAIC0xNzMwLDcgKzE3MzIsNyBAQCBlbmQKIAogZGVm
IHJ1bldlYkFzc2VtYmx5CiAgICAgcmV0dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYg
ISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KICAgICBydW4o
ImRlZmF1bHQtd2FzbSIsICItbSIsICpGVExfT1BUSU9OUykKICAgICBpZiAkbW9kZSAhPSAicXVp
Y2siCiAgICAgICAgIHJ1bigid2FzbS1uby1jaml0LXllcy10bHMtY29udGV4dCIsICItbSIsICIt
LXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD10cnVlIiwgKihGVExfT1BUSU9OUyArIE5PX0NKSVRf
T1BUSU9OUykpCkBAIC0xNzM4LDE1ICsxNzQwLDE3IEBAIGRlZiBydW5XZWJBc3NlbWJseQogICAg
ICAgICBydW4oIndhc20tZWFnZXItamV0dGlzb24iLCAiLW0iLCAiLS1mb3JjZUNvZGVCbG9ja1Rv
SmV0dGlzb25EdWVUb09sZEFnZT10cnVlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNs
YW5kQWxsb2NhdGlvbj10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykKICAg
ICAgICAgcnVuKCJ3YXNtLW5vLXRscy1jb250ZXh0IiwgIi1tIiwgIi0tdXNlRmFzdFRMU0Zvcldh
c21Db250ZXh0PWZhbHNlIiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tc2xvdy1t
ZW1vcnkiLCAiLW0iLCAiLS11c2VXZWJBc3NlbWJseUZhc3RNZW1vcnk9ZmFsc2UiLCAqRlRMX09Q
VElPTlMpCi0gICAgICAgIHJ1bigid2FzbS1iMyIsICItbSIsICItLXVzZVdhc21MTEludD1mYWxz
ZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKkZUTF9PUFRJT05TKQotICAgICAgICBydW4o
Indhc20tYWlyIiwgIi1tIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXpp
bmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgKkZUTF9PUFRJT05TKQogICAgICAg
ICBydW4oIndhc20tY29sbGVjdC1jb250aW51b3VzbHkiLCAiLW0iLCAiLS1jb2xsZWN0Q29udGlu
dW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKkZUTF9PUFRJT05TKSBpZiBzaG91bGRD
b2xsZWN0Q29udGludW91c2x5PworICAgICAgICBpZiAkaXNGVExQbGF0Zm9ybQorICAgICAgICAg
ICAgcnVuKCJ3YXNtLWIzIiwgIi1tIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJC
UVVzZXNBaXI9ZmFsc2UiLCAqRlRMX09QVElPTlMpCisgICAgICAgICAgICBydW4oIndhc20tYWly
IiwgIi1tIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRh
YmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgKkZUTF9PUFRJT05TKQorICAgICAgICBlbmQKICAg
ICBlbmQKIGVuZAogCiBkZWYgcnVuV2ViQXNzZW1ibHlKZXRTdHJlYW0yCiAgICAgcmV0dXJuIGlm
ICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0dXJuIGlm
ICEkaXNXYXNtUGxhdGZvcm0KIAogICAgIGlmICRtZW1vcnlMaW1pdGVkCiAgICAgICAgIHNraXAK
QEAgLTE3NjUsMTUgKzE3NjksMTcgQEAgZGVmIHJ1bldlYkFzc2VtYmx5SmV0U3RyZWFtMgogICAg
ICAgICBydW4oIndhc20tZWFnZXItamV0dGlzb24iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlz
b25EdWVUb09sZEFnZT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykKICAg
ICAgICAgcnVuKCJ3YXNtLW5vLXRscy1jb250ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250
ZXh0PWZhbHNlIiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tc2xvdy1tZW1vcnki
LCAiLS11c2VXZWJBc3NlbWJseUZhc3RNZW1vcnk9ZmFsc2UiLCAqRlRMX09QVElPTlMpCi0gICAg
ICAgIHJ1bigid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFVc2Vz
QWlyPWZhbHNlIiwgKkZUTF9PUFRJT05TKQotICAgICAgICBydW4oIndhc20tYWlyIiwgIi0tdXNl
V2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2Nh
dGlvbj10cnVlIiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tY29sbGVjdC1jb250
aW51b3VzbHkiLCAiLS1jb2xsZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVl
IiwgKkZUTF9PUFRJT05TKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5PworICAgICAgICBp
ZiAkRlRMUGxhdGZvcm0KKyAgICAgICAgICAgIHJ1bigid2FzbS1iMyIsICItLXVzZVdhc21MTElu
dD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKkZUTF9PUFRJT05TKQorICAgICAg
ICAgICAgcnVuKCJ3YXNtLWFpciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRv
bWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICpGVExfT1BUSU9OUykKKyAg
ICAgICAgZW5kCiAgICAgZW5kCiBlbmQKIAogZGVmIHJ1bldlYkFzc2VtYmx5U3VpdGUoKm9wdGlv
bmFsVGVzdFNwZWNpZmljT3B0aW9ucykKICAgICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJl
dHVybiBpZiAhJGlzRlRMUGxhdGZvcm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQog
ICAgIG1vZHVsZXMgPSBEaXJbV0FTTVRFU1RTX1BBVEggKyAiKi5qcyJdLm1hcCB7IHxmfCBGaWxl
LmJhc2VuYW1lKGYpIH0KICAgICBwcmVwYXJlRXh0cmFBYnNvbHV0ZUZpbGVzKFdBU01URVNUU19Q
QVRILCBbIndhc20uanNvbiJdKQogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMobW9kdWxl
cy5tYXAgeyB8ZnwgIi4uLyIgKyBmIH0sICRjb2xsZWN0aW9uKQpAQCAtMTc4OSw5ICsxNzk1LDEx
IEBAIGRlZiBydW5XZWJBc3NlbWJseVN1aXRlKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMp
CiAgICAgICAgIHJ1bigid2FzbS1lYWdlci1qZXR0aXNvbiIsICItLWZvcmNlQ29kZUJsb2NrVG9K
ZXR0aXNvbkR1ZVRvT2xkQWdlPXRydWUiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xh
bmRBbGxvY2F0aW9uPXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKihGVExfT1BUSU9OUyArIG9w
dGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCiAgICAgICAgIHJ1bigid2FzbS1uby10bHMtY29u
dGV4dCIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICooRlRMX09QVElPTlMg
KyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgICBydW4oIndhc20tc2xvdy1t
ZW1vcnkiLCAiLS11c2VXZWJBc3NlbWJseUZhc3RNZW1vcnk9ZmFsc2UiLCAqKEZUTF9PUFRJT05T
ICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKLSAgICAgICAgcnVuKCJ3YXNtLWIzIiwg
Ii0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqKEZUTF9P
UFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKLSAgICAgICAgcnVuKCJ3YXNt
LWFpciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJs
ZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVj
aWZpY09wdGlvbnMpKQogICAgICAgICBydW4oIndhc20tY29sbGVjdC1jb250aW51b3VzbHkiLCAi
LS1jb2xsZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKihGVExfT1BU
SU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpIGlmIHNob3VsZENvbGxlY3RDb250
aW51b3VzbHk/CisgICAgICAgIGlmICRpc0ZUTFBsYXRmb3JtCisgICAgICAgICAgICBydW4oIndh
c20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIs
ICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQorICAgICAgICAg
ICAgcnVuKCJ3YXNtLWFpciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6
aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRp
b25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQorICAgICAgICBlbmQKICAgICBlbmQKIGVuZAogCkBA
IC0xODA3LDcgKzE4MTUsOSBAQCBlbmQKIGRlZiBydW5XZWJBc3NlbWJseVdpdGhIYXJuZXNzKCpv
cHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiAgICAgcmFpc2UgdW5sZXNzICRiZW5jaG1hcmsu
dG9fcyA9fiAvaGFybmVzc1wubT9qcy8KICAgICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJl
dHVybiBpZiAhJGlzRlRMUGxhdGZvcm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQor
ICAgICMgU2tpcCB0aGlzIGNvbXBsZXRlbHkgb24gYXJtdjcgZm9yIG5vdywgc2luY2UgbW9zdCBv
ZiB0aGUgdGVzdHMgYXJlIHJlbGF0ZWQgdG8gT1NSIGFuZCBpdCdzIGEgYml0IGhhaXJ5IHRvIHNr
aXAgdGhlbSBtYW51YWxseQorICAgIHJldHVybiBpZiAkYXJjaGl0ZWN0dXJlID09ICJhcm0iCiAK
ICAgICB3YXNtRmlsZXMgPSBhbGxXYXNtRmlsZXMoJGNvbGxlY3Rpb24pCiAgICAgcHJlcGFyZUV4
dHJhUmVsYXRpdmVGaWxlcyh3YXNtRmlsZXMubWFwIHsgfGZ8IGYuYmFzZW5hbWUgfSwgJGNvbGxl
Y3Rpb24pCkBAIC0xODE5LDkgKzE4MjksMTEgQEAgZGVmIHJ1bldlYkFzc2VtYmx5V2l0aEhhcm5l
c3MoKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKICAgICAgICAgcnVuSGFybmVzc1Rlc3Qo
Indhc20tZWFnZXItamV0dGlzb24iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09s
ZEFnZT10cnVlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10
cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVj
aWZpY09wdGlvbnMpKQogICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1uby10bHMtY29udGV4
dCIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICooRlRMX09QVElPTlMgKyBv
cHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgICBydW5IYXJuZXNzVGVzdCgid2Fz
bS1zbG93LW1lbW9yeSIsICItLXVzZVdlYkFzc2VtYmx5RmFzdE1lbW9yeT1mYWxzZSIsICooRlRM
X09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQotICAgICAgICBydW5IYXJu
ZXNzVGVzdCgid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFVc2Vz
QWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykp
Ci0gICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLW5vLWFpciIsICItLXVzZVdhc21MTEludD1m
YWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIs
ICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgICBy
dW5IYXJuZXNzVGVzdCgid2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNseSIsICItLWNvbGxlY3RDb250
aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9u
YWxUZXN0U3BlY2lmaWNPcHRpb25zKSkgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8KKyAg
ICAgICAgaWYgJGlzRlRMUGxhdGZvcm0KKyAgICAgICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNt
LWIzIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAq
KEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKKyAgICAgICAgICAg
IHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLW5vLWFpciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICIt
LXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICooRlRMX09Q
VElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQorICAgICAgICBlbmQKICAgICBl
bmQKIGVuZAogCkBAIC0xODMxLDcgKzE4NDMsNyBAQCBkZWYgcnVuV2ViQXNzZW1ibHlFbXNjcmlw
dGVuKG1vZGUpCiAgICAgICAgIHJldHVybgogICAgIGVuZAogICAgIHJldHVybiBpZiAhJGppdFRl
c3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2Fz
bVBsYXRmb3JtCiAgICAgd2FzbSA9ICRiZW5jaG1hcmsudG9fcy5zdWIhICcuanMnLCAnLndhc20n
CiAgICAgcHJlcGFyZUV4dHJhUmVsYXRpdmVGaWxlcyhbUGF0aG5hbWUoJy4uJykgKyB3YXNtXSwg
JGNvbGxlY3Rpb24pCiAgICAgcnVuKCJkZWZhdWx0LXdhc20iLCAqRlRMX09QVElPTlMpCkBAIC0x
ODM5LDkgKzE4NTEsMTEgQEAgZGVmIHJ1bldlYkFzc2VtYmx5RW1zY3JpcHRlbihtb2RlKQogICAg
ICAgICBydW4oIndhc20tbm8tY2ppdC15ZXMtdGxzLWNvbnRleHQiLCAiLS11c2VGYXN0VExTRm9y
V2FzbUNvbnRleHQ9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBOT19DSklUX09QVElPTlMpKQogICAg
ICAgICBydW4oIndhc20tZWFnZXItamV0dGlzb24iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlz
b25EdWVUb09sZEFnZT10cnVlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxs
b2NhdGlvbj10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAgICAg
cnVuKCJ3YXNtLW5vLXRscy1jb250ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PWZh
bHNlIiwgKkZUTF9PUFRJT05TKQotICAgICAgICBydW4oIndhc20tYjMiLCAiLS11c2VXYXNtTExJ
bnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICpGVExfT1BUSU9OUykKLSAgICAg
ICAgcnVuKCJ3YXNtLWFpciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6
aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAg
ICAgcnVuKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5IiwgIi0tY29sbGVjdENvbnRpbnVvdXNs
eT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykgaWYgc2hvdWxkQ29sbGVj
dENvbnRpbnVvdXNseT8KKyAgICAgICAgaWYgJGlzRlRMUGxhdGZvcm0KKyAgICAgICAgICAgIHJ1
bigid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZh
bHNlIiwgKkZUTF9PUFRJT05TKQorICAgICAgICAgICAgcnVuKCJ3YXNtLWFpciIsICItLXVzZVdh
c21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRp
b249dHJ1ZSIsICpGVExfT1BUSU9OUykKKyAgICAgICAgZW5kCiAgICAgZW5kCiBlbmQKIApAQCAt
MTg1MSw3ICsxODY1LDcgQEAgZGVmIHJ1bldlYkFzc2VtYmx5U3BlY1Rlc3RCYXNlKG1vZGUsIHNw
ZWNIYXJuZXNzUGF0aCwgKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW8KICAgICAgICAgcmV0dXJu
CiAgICAgZW5kCiAgICAgcmV0dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZU
TFBsYXRmb3JtCisgICAgcmV0dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KICAgICBwcmVwYXJlRXh0
cmFBYnNvbHV0ZUZpbGVzKFdBU01URVNUU19QQVRILCBbIndhc20uanNvbiJdKQogCiAgICAgbW9k
dWxlcyA9IERpcltXQVNNVEVTVFNfUEFUSCArICIqLmpzIl0ubWFwIHsgfGZ8IEZpbGUuYmFzZW5h
bWUoZikgfQpAQCAtMTg2Niw5ICsxODgwLDExIEBAIGRlZiBydW5XZWJBc3NlbWJseVNwZWNUZXN0
QmFzZShtb2RlLCBzcGVjSGFybmVzc1BhdGgsICpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvCiAg
ICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1uby1jaml0LXllcy10bHMtY29udGV4dCIs
IG5vaXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICAiLS11c2VGYXN0VExTRm9y
V2FzbUNvbnRleHQ9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBOT19DSklUX09QVElPTlMgKyBvcHRp
b25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndh
c20tZWFnZXItamV0dGlzb24iLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRo
LCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09sZEFnZT10cnVlIiwgIi0tdXNlUmFu
ZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1
ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAg
cnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20tbm8tdGxzLWNvbnRleHQiLCBub2lzeU91dHB1dEhh
bmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9ZmFs
c2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKLSAgICAg
IHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWIzIiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVj
SGFybmVzc0pzUGF0aCwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9
ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKLSAg
ICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWFpciIsIG5vaXN5T3V0cHV0SGFuZGxlciwg
c3BlY0hhcm5lc3NKc1BhdGgsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6
aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRp
b25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndh
c20tY29sbGVjdC1jb250aW51b3VzbHkiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNz
SnNQYXRoLCAiLS1jb2xsZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwg
KihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpIGlmIHNob3VsZENv
bGxlY3RDb250aW51b3VzbHk/CisgICAgICBpZiAkaXNGVExQbGF0Zm9ybQorICAgICAgICAgIHJ1
bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWIzIiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFy
bmVzc0pzUGF0aCwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFs
c2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKKyAgICAg
ICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1haXIiLCBub2lzeU91dHB1dEhhbmRsZXIs
IHNwZWNIYXJuZXNzSnNQYXRoLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21p
emluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0
aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKKyAgICAgIGVuZAogICAgIGVuZAogZW5kCiAKQEAg
LTE4ODYsNyArMTkwMiw3IEBAIGVuZAogCiBkZWYgcnVuV2ViQXNzZW1ibHlMb3dFeGVjdXRhYmxl
TWVtb3J5KCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiAgICAgcmV0dXJuIGlmICEkaml0
VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0dXJuIGlmICEkaXNX
YXNtUGxhdGZvcm0KICAgICBtb2R1bGVzID0gRGlyW1dBU01URVNUU19QQVRIICsgIiouanMiXS5t
YXAgeyB8ZnwgRmlsZS5iYXNlbmFtZShmKSB9CiAgICAgcHJlcGFyZUV4dHJhQWJzb2x1dGVGaWxl
cyhXQVNNVEVTVFNfUEFUSCwgWyJ3YXNtLmpzb24iXSkKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2
ZUZpbGVzKG1vZHVsZXMubWFwIHsgfGZ8ICIuLi8iICsgZiB9LCAkY29sbGVjdGlvbikKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODgzZGZm
ZTEyMzE0YjA0Yjg2YTUyOTQ2M2M5M2MxOTJhNTJjYmY3ZC4uMDU1NWI3YjIxZDA2M2E3NmY4Mzc2
MjJhNjcyNTNjMjJlNDMwMmNiMCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
SlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMi0wNC0yNyAgWGFuIEzDs3Bl
eiAgPHhhbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtKU0NdIEVuYWJsZSBXYXNtTExJbnQgb24g
QVJNdjcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MTI2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
c3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzOgorICAgICAgICAq
IHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzOgorICAgICAgICAqIHdhc20vcmVncmVz
cy9sbGludC1jYWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5qczoKKwogMjAyMi0wNC0yNiAg
WXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEFkZCBm
b3JjZVVubGlua2VkREZHIG9wdGlvbgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxp
bmctcHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24uanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGlu
Zy1wcm9maWxlci13YXNtLW5hbWUtc2VjdGlvbi5qcwppbmRleCA1YzIyMGZkNzZjZGM1YzQwZTU5
Y2M2NmU1NzM0MmM3MmQ4YzdmM2FhLi4zNjg2YzYzOTcwNDA3OGJhMjBjNDQ2OGQ5YWZlOGI5NzMw
MmNmODlhIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNt
LW5hbWUtc2VjdGlvbi5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13
YXNtLW5hbWUtc2VjdGlvbi5qcwpAQCAtMSwzICsxLDggQEAKKy8vIFRoaXMgdGVzdCBpcyBzdGF0
aXN0aWNhbCwgYW5kIHdpdGhvdXQgb3B0aW1pemluZyBXYXNtIHRpZXJzIHRoZSBsaWtlbGlob29k
CisvLyBvZiBoaXR0aW5nIHRoZSBkZWVwZXN0IGV4cGVjdGVkIHN0YWNrIHRyYWNlIGlzIHZlcnkg
bG93LCBzbyBkaXNhYmxlLgorLy8gRklYTUU6IHJlbW92ZSB3aGVuIDMyLWJpdCBwbGF0Zm9ybXMg
c3VwcG9ydCBvcHRpbWl6aW5nIFdhc20gdGllcnMKKy8vQCBza2lwIGlmIFsiYXJtIiwgIm1pcHMi
XS5pbmNsdWRlPygkYXJjaGl0ZWN0dXJlKQorLy8KIC8vQCBydW5EZWZhdWx0CiAKIC8qCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzIGIvSlNUZXN0
cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qcwppbmRleCAwNmRmMDEyNDk1OTY5ZTI4
NDIxODc3ODY5MDEzNWJmMDkwMTBlYzZkLi43MjQwYzAwZGUyN2UzYmZkM2Y5NTU3NTIzMDBjYTBk
ZTJmNTk0ZWVjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13
YXNtLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanMKQEAg
LTEsMyArMSw0IEBACisvL0Agc2tpcCBpZiAkYXJjaGl0ZWN0dXJlID09ICJhcm0iCiAvL0AgcnVu
RGVmYXVsdAogCiBpZiAocGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJvZmlsZXIoKSAmJiAkdm0u
aXNXYXNtU3VwcG9ydGVkKCkpIHsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9yZWdyZXNzL2xs
aW50LWNhbGxlZS1zYXZlcy13aXRoLWZhc3QtbWVtb3J5LmpzIGIvSlNUZXN0cy93YXNtL3JlZ3Jl
c3MvbGxpbnQtY2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnkuanMKaW5kZXggZjlmMDljNDc1
MTNhNmM4ZDkzMjUzNGY3MjdkYmZlNzdmZDI1MWQ0NC4uMTFjZmIxNjRiYjY0MWVmMzRlMjFkYjA1
NjkyN2RjYTM2N2MzN2U2ZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL3JlZ3Jlc3MvbGxpbnQt
Y2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnkuanMKKysrIGIvSlNUZXN0cy93YXNtL3JlZ3Jl
c3MvbGxpbnQtY2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnkuanMKQEAgLTEsMyArMSw0IEBA
CisvL0Agc2tpcCBpZiAkYXJjaGl0ZWN0dXJlID09ICJhcm0iCiAvL0AgcmVxdWlyZU9wdGlvbnMo
Ii0tdXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5PXRydWUiKQogCiBpbXBvcnQgKiBhcyBhc3NlcnQg
ZnJvbSAnLi4vYXNzZXJ0LmpzJzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459047</attachid>
            <date>2022-05-09 08:31:52 -0700</date>
            <delta_ts>2022-05-18 05:47:28 -0700</delta_ts>
            <desc>v10 - rebase + fix 64-bit atomics</desc>
            <filename>bug-221260-20220509153150.patch</filename>
            <type>text/plain</type>
            <size>325619</size>
            <attacher name="Geza Lore">glore</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzOTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ODYwOWI2MGM0OTBkOWU1YTk0MzY3MzAxOTY2ZmNkZTg1ZWJmNzUxLi5kMGQzMTY3MGE3ZDUwMzYw
YTc1YmIyMjExYTMzZTMxNTU2YTU3YTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMDcgQEAKKzIwMjItMDUtMDkgIEdlemEgTG9yZSAgPGdsb3JlQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW0pTQ10gRW5hYmxlIFdhc21MTEludCBvbiBBUk12NworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMjYwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGF0Y2ggYnkgR2V6YSBMb3JlIGFuZCBY
YW4gTMOzcGV6LgorCisgICAgICAgIEltcGxlbWVudCB0aGUgTExJbnQgdGllciBvZiBXZWJBc3Nl
bWJseSBmb3IgQVJNdjcuIEEgbG90IG9mIHRoZQorICAgICAgICB3b3JrIHdpbGwgYmUgc2hhcmVk
IGJ5IGFueSAzMmJpdCBwb3J0LCBidXQgdGhlIG9mZmxpbmVhc3NlbWJsZXIKKyAgICAgICAgaGFz
IG9ubHkgYmVlbiB1cGRhdGVkIGZvciBBUk12NyBzbyBmYXIuCisKKyAgICAgICAgTWFpbiBoaWdo
bGlnaHRzOgorCisgICAgICAgIFdlIGhhdmUgc3BsaXQgdGhlIFdlYkFzc2VtYmx5LmFzbSBmaWxl
IGludG8gdGhyZWUgY2h1bmtzLAorICAgICAgICBmb2xsb3dpbmcgd2hhdCBMb3dMZXZlbEludGVy
cHJldGVyLmFzbSBkb2VzLiBUaGUgY29tbW9uIGNvZGUKKyAgICAgICAgcmVtYWlucyBpbiBXZWJB
c3NlbWJseS5hc20sIGFuZCAzMiBhbmQgNjRiaXQgc3BlY2lmaWMgY29kZSAobW9zdGx5CisgICAg
ICAgIG9wY29kZSBpbXBsZW1lbnRhdGlvbnMpIGdvZXMgaW50byBXZWJBc3NlbWJseTMyXzY0LmFz
bSBhbmQKKyAgICAgICAgV2ViQXNzZW1ibHk2NC5hc20uCisKKyAgICAgICAgV2UgaGF2ZSBkZWNp
ZGVkIHRvIHVzZSBjb25zZWN1dGl2ZSBldmVuL29kZCBwYWlycyBvZiBHUFJzIGZvciBldmVyeQor
ICAgICAgICB0eXBlIG9mIHdhc20gdmFsdWVzLCBldmVuIGlmIHRoZXkgYXJlIDMyYml0IChpMzIv
ZjMyKSwgd2l0aCB0aGUgb2RkCisgICAgICAgIChoaWdoZXIpIG51bWJlcmVkIEdQUiBob2xkaW5n
IHRoZSBtb3JlIHNpZ25pZmljYW50IGhhbGYuIDMyYml0IHZhbHVlcworICAgICAgICBhcmUgaGVs
ZCBpbiB0aGUgZXZlbiAobG93ZXIpIG51bWJlcmVkIHJlZ2lzdGVyLiBUaGlzIG1ha2VzIHRoZSBj
b2RlCisgICAgICAgIG11Y2ggc2ltcGxlciBhbmQgYWxsb3dzIHVzIHRvIHNoYXJlIG1vcmUgY29k
ZSB3aXRoIHRoZSA2NGJpdCB2YXJpYW50LgorICAgICAgICBUaGlzIGlzIG1vc3RseSByZWxldmFu
dCBmb3IgYXJndW1lbnQgcGFzc2luZywgYW5kIGdpdmVuIHRoYXQgZXZlcnkKKyAgICAgICAgdmFs
dWUgZW5kcyB1cCBpbiB0aGUgc3RhY2sgYW55d2F5IHdlIGRvIG5vdCB0aGluayBpdCBpcyBzaWdu
aWZpY2FudAorICAgICAgICBmcm9tIGEgcGVyZm9ybWFuY2UgUE9WLgorCisgICAgICAgIFdlIGFy
ZSByZXVzaW5nIEpTVmFsdWVSZWdzIHRvIGhvbGQgV2FzbSB2YWx1ZXMgdG9vLiBPYnZpb3VzbHkg
dGhleQorICAgICAgICBhcmUgbm90IHJlYWxseSBKU1ZhbHVlcywgc28gaXQgbWlnaHQgbWFrZSBz
ZW5zZSB0byBjcmVhdGUgYSBiYXNlCisgICAgICAgIGNsYXNzIHRoYXQgY2FuIGJlIHVzZWQgZm9y
IGJvdGggSlMgYW5kIFdhc20gdmFsdWVzLgorCisgICAgICAgIFdlIGRvIG5vdCBoYXZlIGVub3Vn
aCByZWdpc3RlcnMgdG8ga2VlcCB0aGluZ3MgbGlrZSB0aGUgbWVtb3J5CisgICAgICAgIGJhc2Ug
cG9pbnRlciBhbmQgc2l6ZSBpbiBwaW5uZWQgcmVnaXN0ZXJzLCBzbyB3ZSBhcmUgZm9yY2VkIHRv
CisgICAgICAgIGxvYWQgdGhlbSBvbiBlYWNoIHVzZS4KKworICAgICAgICBXZSBkaXNhYmxlIHRo
ZSAnU2lnbmFsaW5nJyBtZW1vcnkgbW9kZSwgc2luY2UgdGhlIGN1cnJlbnQKKyAgICAgICAgaW1w
bGVtZW50YXRpb24gcmVsaWVzIG9uIGJlaW5nIGFibGUgdG8gbXByb3RlY3QgYSAyXjMyICsgcmVk
em9uZQorICAgICAgICByZWdpb24gb2YgbWVtb3J5LiBUaGlzIGNhbiBiZSBjaGFuZ2VkIGluIHRo
ZSBmdXR1cmUgYnV0IGl0J3Mgbm90IGEKKyAgICAgICAgcHJpb3JpdHkgYXQgdGhlIG1vbWVudC4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIGFzc2VtYmxlci9BUk12N0Fz
c2VtYmxlci5oOgorICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6dmN2dF9zaWduZWRUb0Zs
b2F0aW5nUG9pbnQpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmg6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmNvbnZlcnRJbnQzMlRvRmxvYXQp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojp0aHJlYWRTYWZlUGF0Y2hhYmxl
TmVhckNhbGwpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpjYWxsT3BlcmF0
aW9uKToKKyAgICAgICAgKiBiMy9CM1ZhbHVlUmVwLmg6CisgICAgICAgIChKU0M6OkIzOjpWYWx1
ZVJlcDo6VmFsdWVSZXApOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcDoK
KyAgICAgICAgKEpTQzo6V2FzbTo6Qnl0ZWNvZGVEdW1wZXI6OmZvcm1hdENvbnN0YW50IGNvbnN0
KToKKyAgICAgICAgKiBpbnRlcnByZXRlci9DYWxsRnJhbWUuaDogYWRhcHQgdG8gbmV3IGNhbGxl
ZSB0YWdnaW5nIGZvcm1hdC4KKyAgICAgICAgKEpTQzo6Q2FsbEZyYW1lOjpjYWxsZWUgY29uc3Qp
OgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OnVuc2FmZUNhbGxlZSBjb25zdCk6CisgICAgICAg
ICogaW50ZXJwcmV0ZXIvQ2FsbGVlQml0cy5oOiBhZGQgd2FzbSB0YWdnaW5nIG9mIGNhbGxlZSB2
YWx1ZXMgZm9yCisgICAgICAgIDMyYml0LgorICAgICAgICAoSlNDOjpDYWxsZWVCaXRzOjpDYWxs
ZWVCaXRzKToKKyAgICAgICAgKEpTQzo6Q2FsbGVlQml0czo6b3BlcmF0b3I9KToKKyAgICAgICAg
KEpTQzo6Q2FsbGVlQml0czo6Ym94V2FzbSk6CisgICAgICAgIChKU0M6OkNhbGxlZUJpdHM6Omlz
V2FzbSBjb25zdCk6CisgICAgICAgIChKU0M6OkNhbGxlZUJpdHM6OmFzV2FzbUNhbGxlZSBjb25z
dCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaDoKKyAgICAgICAgKEpTQzo6UmVn
aXN0ZXI6OnVuYm94ZWRGbG9hdCBjb25zdCk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyOjphc2Fu
VW5zYWZlVW5ib3hlZEZsb2F0IGNvbnN0KToKKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJz
Lmg6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6dW5ib3hEb3VibGUpOgorICAgICAg
ICAqIGppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5jcHA6CisgICAgICAgIChKU0M6OlJlZ2lzdGVy
QXRPZmZzZXRMaXN0OjpSZWdpc3RlckF0T2Zmc2V0TGlzdCk6CisgICAgICAgICogaml0L1JlZ2lz
dGVyQXRPZmZzZXRMaXN0Lmg6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyQXRPZmZzZXRMaXN0Ojpz
aXplT2ZBcmVhSW5CeXRlcyBjb25zdCk6CisgICAgICAgICogaml0L1JlZ2lzdGVyU2V0LmNwcDoK
KyAgICAgICAgKEpTQzo6UmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycyk6CisgICAg
ICAgICogbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmg6CisgICAgICAgICogbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBsbGludC9XZWJBc3NlbWJseS5h
c206CisgICAgICAgICogbGxpbnQvV2ViQXNzZW1ibHkzMl82NC5hc206IEFkZGVkLgorICAgICAg
ICAqIGxsaW50L1dlYkFzc2VtYmx5NjQuYXNtOiBBZGRlZC4KKyAgICAgICAgKiBvZmZsaW5lYXNt
L2FybS5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYjoKKyAgICAgICAg
KiBvZmZsaW5lYXNtL3JlZ2lzdGVycy5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL3Jpc2MucmI6
CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlLmg6CisgICAgICAgIChKU0M6Ondhc21VbmJv
eGVkRmxvYXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaDoKKyAgICAg
ICAgKEpTQzo6SlNWYWx1ZTo6SlNWYWx1ZSk6CisgICAgICAgICogd2FzbS9XYXNtQWlySVJHZW5l
cmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6dXNlU2lnbmFs
aW5nTWVtb3J5IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OkFp
cklSR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmVtaXRD
aGVja0FuZFByZXBhcmVQb2ludGVyKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0
b3I6OmFkZENhbGwpOgorICAgICAgICAqIHdhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjp1c2VTaWduYWxpbmdNZW1vcnkgY29uc3Qp
OgorICAgICAgICAoSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjpCM0lSR2VuZXJhdG9yKToKKyAg
ICAgICAgKEpTQzo6V2FzbTo6QjNJUkdlbmVyYXRvcjo6YWRkQXJndW1lbnRzKToKKyAgICAgICAg
KEpTQzo6V2FzbTo6QjNJUkdlbmVyYXRvcjo6ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIpOgor
ICAgICAgICAoSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjptZW1vcnlLaW5kKToKKyAgICAgICAg
KEpTQzo6V2FzbTo6QjNJUkdlbmVyYXRvcjo6YWRkQ2FsbCk6CisgICAgICAgICogd2FzbS9XYXNt
QmluZGluZy5jcHA6CisgICAgICAgIChKU0M6Oldhc206Ondhc21Ub1dhc20pOgorICAgICAgICAq
IHdhc20vV2FzbUNhbGxlZS5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkxMSW50Q2FsbGVlOjpj
YWxsZWVTYXZlUmVnaXN0ZXJzKToKKyAgICAgICAgKiB3YXNtL1dhc21DYWxsZWVHcm91cC5jcHA6
CisgICAgICAgIChKU0M6Oldhc206OkNhbGxlZUdyb3VwOjppc1NhZmVUb1J1bik6CisgICAgICAg
ICogd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpq
c0NhbGxpbmdDb252ZW50aW9uKToKKyAgICAgICAgKEpTQzo6V2FzbTo6d2FzbUNhbGxpbmdDb252
ZW50aW9uKToKKyAgICAgICAgKiB3YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oOgorICAgICAg
ICAoSlNDOjpXYXNtOjpDYWxsSW5mb3JtYXRpb246OmNvbXB1dGVSZXN1bHRzT2Zmc2V0TGlzdCk6
CisgICAgICAgIChKU0M6Oldhc206Oldhc21DYWxsaW5nQ29udmVudGlvbjo6V2FzbUNhbGxpbmdD
b252ZW50aW9uKToKKyAgICAgICAgKEpTQzo6V2FzbTo6V2FzbUNhbGxpbmdDb252ZW50aW9uOjpt
YXJzaGFsbExvY2F0aW9uSW1wbCBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206Oldhc21DYWxs
aW5nQ29udmVudGlvbjo6bWFyc2hhbGxMb2NhdGlvbiBjb25zdCk6CisgICAgICAgIChKU0M6Oldh
c206OkpTQ2FsbGluZ0NvbnZlbnRpb246OkpTQ2FsbGluZ0NvbnZlbnRpb24pOgorICAgICAgICAo
SlNDOjpXYXNtOjpKU0NhbGxpbmdDb252ZW50aW9uOjptYXJzaGFsbExvY2F0aW9uSW1wbCBjb25z
dCk6CisgICAgICAgIChKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxsTG9j
YXRpb24gY29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpKU0NhbGxpbmdDb252ZW50aW9uOjpj
YWxsSW5mb3JtYXRpb25Gb3IgY29uc3QpOgorICAgICAgICAqIHdhc20vV2FzbUZvcm1hdC5oOgor
ICAgICAgICAqIHdhc20vV2FzbUluZGV4T3JOYW1lLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6
SW5kZXhPck5hbWU6OkluZGV4T3JOYW1lKToKKyAgICAgICAgKEpTQzo6V2FzbTo6bWFrZVN0cmlu
Zyk6CisgICAgICAgICogd2FzbS9XYXNtSW5kZXhPck5hbWUuaDoKKyAgICAgICAgKEpTQzo6V2Fz
bTo6SW5kZXhPck5hbWU6OkluZGV4T3JOYW1lKToKKyAgICAgICAgKEpTQzo6V2FzbTo6SW5kZXhP
ck5hbWU6OmlzRW1wdHkgY29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6
aXNJbmRleCBjb25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1lOjppc05hbWUg
Y29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6aW5kZXggY29uc3QpOgor
ICAgICAgICAoSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6bmFtZSBjb25zdCk6CisgICAgICAgIChK
U0M6Oldhc206OkluZGV4T3JOYW1lOjpuYW1lU2VjdGlvbiBjb25zdCk6CisgICAgICAgICogd2Fz
bS9XYXNtSW5zdGFuY2UuaDoKKyAgICAgICAgKEpTQzo6V2FzbTo6SW5zdGFuY2U6OnVwZGF0ZUNh
Y2hlZE1lbW9yeSk6CisgICAgICAgICogd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6dmlydHVhbFJlZ2lzdGVyRm9yV2FzbUxv
Y2FsKToKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlv
bkZvckNhbGxlcik6CisgICAgICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjpjYWxsSW5m
b3JtYXRpb25Gb3JDYWxsZWUpOgorICAgICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6
YWRkQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmFkZExv
b3ApOgorICAgICAgICAqIHdhc20vV2FzbUxMSW50UGxhbi5jcHA6CisgICAgICAgIChKU0M6Oldh
c206OkxMSW50UGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlvbik6CisgICAgICAgICogd2FzbS9X
YXNtTWVtb3J5LmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6TWVtb3J5SGFuZGxlOjp+TWVtb3J5
SGFuZGxlKToKKyAgICAgICAgKEpTQzo6V2FzbTo6TWVtb3J5Ojp0cnlDcmVhdGUpOgorICAgICAg
ICAoSlNDOjpXYXNtOjpNZW1vcnk6Omdyb3dTaGFyZWQpOgorICAgICAgICAoSlNDOjpXYXNtOjpN
ZW1vcnk6Omdyb3cpOgorICAgICAgICAoSlNDOjpXYXNtOjpNZW1vcnk6OmNvcHkpOgorICAgICAg
ICAqIHdhc20vV2FzbU1lbW9yeS5oOgorICAgICAgICAqIHdhc20vV2FzbU1lbW9yeUluZm9ybWF0
aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6UGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQpOgor
ICAgICAgICAqIHdhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmg6CisgICAgICAgIChKU0M6Oldh
c206OlBpbm5lZFJlZ2lzdGVySW5mbzo6dG9TYXZlIGNvbnN0KToKKyAgICAgICAgKiB3YXNtL1dh
c21NZW1vcnlNb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6bWFrZVN0cmluZyk6CisgICAg
ICAgICogd2FzbS9XYXNtTWVtb3J5TW9kZS5oOgorICAgICAgICAqIHdhc20vV2FzbU9wY29kZU9y
aWdpbi5jcHA6CisgICAgICAgICogd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmg6CisgICAgICAgICog
d2FzbS9XYXNtT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkpTQ19ERUZJTkVf
SklUX09QRVJBVElPTik6CisgICAgICAgICogd2FzbS9XYXNtT3BlcmF0aW9ucy5oOgorICAgICAg
ICAqIHdhc20vV2FzbVBhZ2VDb3VudC5oOgorICAgICAgICAqIHdhc20vV2FzbVBhcnNlci5oOgor
ICAgICAgICAoSlNDOjpXYXNtOjpQYXJzZXI8U3VjY2Vzc1R5cGU+OjpwYXJzZVVJbnQzMik6Cisg
ICAgICAgIChKU0M6Oldhc206OlBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVUludDY0KToKKyAg
ICAgICAgKiB3YXNtL1dhc21TbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6V0FT
TV9TTE9XX1BBVEhfREVDTCk6CisgICAgICAgIChKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9w
b3Bjb3VudCk6CisgICAgICAgIChKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9wb3Bjb3VudGxs
KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2kzMl9kaXZfcyk6CisgICAg
ICAgIChKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pMzJfZGl2X3UpOgorICAgICAgICAoSlND
OjpMTEludDo6c2xvd19wYXRoX3dhc21faTMyX3JlbV9zKToKKyAgICAgICAgKEpTQzo6TExJbnQ6
OnNsb3dfcGF0aF93YXNtX2kzMl9yZW1fdSk6CisgICAgICAgIChKU0M6OkxMSW50OjpzbG93X3Bh
dGhfd2FzbV9pNjRfZGl2X3MpOgorICAgICAgICAoSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21f
aTY0X2Rpdl91KToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2k2NF9yZW1f
cyk6CisgICAgICAgIChKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pNjRfcmVtX3UpOgorICAg
ICAgICAqIHdhc20vV2FzbVNsb3dQYXRocy5oOgorICAgICAgICAqIHdhc20vV2FzbVZhbHVlTG9j
YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjpkdW1wIGNvbnN0
KToKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogd2FzbS9XYXNtVmFs
dWVMb2NhdGlvbi5oOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjpWYWx1ZUxv
Y2F0aW9uKToKKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6aXNHUFIgY29uc3Qp
OgorICAgICAgICAoSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjppc0ZQUiBjb25zdCk6CisgICAg
ICAgIChKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzU3RhY2sgY29uc3QpOgorICAgICAgICAo
SlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjppc1N0YWNrQXJndW1lbnQgY29uc3QpOgorICAgICAg
ICAoSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjpqc3IgY29uc3QpOgorICAgICAgICAoSlNDOjpX
YXNtOjpWYWx1ZUxvY2F0aW9uOjpmcHIgY29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWx1
ZUxvY2F0aW9uOjpyZWcpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpXYXNtOjpWYWx1ZUxvY2F0
aW9uOjppc1JlZyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9j
YXRpb246OnJlZyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oldhc206OlZhbHVlTG9j
YXRpb246OmdwciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9qcy9KU1RvV2FzbS5j
cHA6CisgICAgICAgIChKU0M6Oldhc206Om1hcnNoYWxsSlNSZXN1bHQpOgorICAgICAgICAoSlND
OjpXYXNtOjpjcmVhdGVKU1RvV2FzbVdyYXBwZXIpOgorICAgICAgICAqIHdhc20vanMvV2FzbVRv
SlMuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjp3YXNtVG9KUyk6CisgICAgICAgICogd2FzbS9q
cy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlGdW5j
dGlvbjo6cHJldmlvdXNJbnN0YW5jZU9mZnNldCBjb25zdCk6CisgICAgICAgIChKU0M6OldlYkFz
c2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KToKKyAgICAgICAgKiB3YXNtL2pz
L1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVS
ZWNvcmQuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6aW5pdGlh
bGl6ZUV4cG9ydHMpOgorCiAyMDIyLTA1LTA2ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGlu
Z0Bzb255LmNvbT4KIAogICAgICAgICBUZW1wb3JhbC5EdXJhdGlvbiN0b1N0cmluZyBzaG91bGQg
bmV2ZXIgaWdub3JlIGZyYWN0aW9uYWxTZWNvbmREaWdpdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYjE1NTc2MWNmNjVjYzY5
MmM3YzY4OGVmNmE5YjY1NGQ2ODhiMmQ1ZC4uNGRjMjQ3NzQ3ZWQzMWI1OTY2OGIxN2U5Mjc5YTk0
OTNmY2QwZDU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMi0wNS0wOSAgR2V6YSBMb3JlICA8
Z2xvcmVAaWdhbGlhLmNvbT4KKworICAgICAgICBbSlNDXSBFbmFibGUgV2FzbUxMSW50IG9uIEFS
TXY3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEy
NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0
Zi9QbGF0Zm9ybUVuYWJsZS5oOiBlbmFibGUgV2ViQXNzZW1ibHkgb24gQVJNdjcuCisKIDIwMjIt
MDUtMDkgIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCBub24tdW5pZmllZCBidWlsZCBmaXhlcyBhZnRlciByMjkzNTYyCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYTU3YjFhNzY0YjE3NjZiNWJhYzEwNTI2ZWFi
ODZkMjQxYzUxYWQ4OS4uZDg3NjIzZjZmOGNlZjMxMTYwYjdmOTAyZTJjMTY1YWYzZjlkZGU5ZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjAwLDYgKzIwMCw4IEBAIHNl
dChMTElOVF9BU00KICAgICBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCiAgICAg
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQogICAgIGxsaW50L1dlYkFzc2VtYmx5LmFz
bQorICAgIGxsaW50L1dlYkFzc2VtYmx5MzJfNjQuYXNtCisgICAgbGxpbnQvV2ViQXNzZW1ibHk2
NC5hc20KICkKIAogc2V0KE9GRkxJTkVfQVNNCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKaW5kZXggOWNhNmE0YTZjODQxYzY3NjU5ZmNiNTQ2
YzdmNDQyYmQ3ZDI4OTg2MS4uNmM3NmU0ZWY1MjMyMjRkNGY1MTExNDY2YTAxMmMzYmE2ZDU4MTUw
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2Vt
Ymxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJs
ZXIuaApAQCAtMTk5MSwxMCArMTk5MSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVy
LnZmcE9wKE9QX1ZDTVAsIE9QX1ZDTVBiLCB0cnVlLCBWRlBPcGVyYW5kKDUpLCByZCwgVkZQT3Bl
cmFuZCgwKSk7CiAgICAgfQogCi0gICAgdm9pZCB2Y3Z0X3NpZ25lZFRvRmxvYXRpbmdQb2ludChG
UERvdWJsZVJlZ2lzdGVySUQgcmQsIEZQU2luZ2xlUmVnaXN0ZXJJRCBybSkKKyAgICB2b2lkIHZj
dnRfc2lnbmVkVG9GbG9hdGluZ1BvaW50KEZQRG91YmxlUmVnaXN0ZXJJRCByZCwgRlBTaW5nbGVS
ZWdpc3RlcklEIHJtLCBib29sIHRvRG91YmxlID0gdHJ1ZSkKICAgICB7CiAgICAgICAgIC8vIGJv
b2xlYW4gdmFsdWVzIGFyZSA2NGJpdCAodG9JbnQsIHVuc2lnbmVkLCByb3VuZFplcm8pCi0gICAg
ICAgIG1fZm9ybWF0dGVyLnZmcE9wKE9QX1ZDVlRfRlBJVkZQLCBPUF9WQ1ZUX0ZQSVZGUGIsIHRy
dWUsIHZjdnRPcChmYWxzZSwgZmFsc2UsIGZhbHNlKSwgcmQsIHJtKTsKKyAgICAgICAgbV9mb3Jt
YXR0ZXIudmZwT3AoT1BfVkNWVF9GUElWRlAsIE9QX1ZDVlRfRlBJVkZQYiwgdG9Eb3VibGUsIHZj
dnRPcChmYWxzZSwgZmFsc2UsIGZhbHNlKSwgcmQsIHJtKTsKICAgICB9CiAKICAgICB2b2lkIHZj
dnRfZmxvYXRpbmdQb2ludFRvU2lnbmVkKEZQU2luZ2xlUmVnaXN0ZXJJRCByZCwgRlBEb3VibGVS
ZWdpc3RlcklEIHJtKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRleCA2NTAyZjBjNTNjM2Y2ZDYyMDg5N2M5YjM0NmU3
MjkxMzJiMGIyNjFiLi4wZjI5NDc2NmE0MjAzNWUwZjIxZDhjYjc2NmUxNjI4MDRlZDY0N2JiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNdjcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNdjcuaApAQCAtNDEsMTEgKzQxLDExIEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNdjcg
OiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxBc3NlbWJsZXI+IHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBuZWFySnVtcFJhbmdlID0gMTYgKiBNQjsKIAotcHJp
dmF0ZToKICAgICBzdGF0aWMgY29uc3RleHByIFJlZ2lzdGVySUQgZGF0YVRlbXBSZWdpc3RlciA9
IEFSTVJlZ2lzdGVyczo6aXA7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklEIGFkZHJl
c3NUZW1wUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnI2OwogCi0gICAgc3RhdGljIGNvbnN0ZXhw
ciBBUk1SZWdpc3RlcnM6OkZQRG91YmxlUmVnaXN0ZXJJRCBmcFRlbXBSZWdpc3RlciA9IEFSTVJl
Z2lzdGVyczo6ZDc7Citwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdGV4cHIgQVJNUmVnaXN0ZXJz
OjpGUERvdWJsZVJlZ2lzdGVySUQgZnBUZW1wUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OmQxNTsK
ICAgICBpbmxpbmUgQVJNUmVnaXN0ZXJzOjpGUFNpbmdsZVJlZ2lzdGVySUQgZnBUZW1wUmVnaXN0
ZXJBc1NpbmdsZSgpIHsgcmV0dXJuIEFSTVJlZ2lzdGVyczo6YXNTaW5nbGUoZnBUZW1wUmVnaXN0
ZXIpOyB9CiAKICAgICAvLyBJbiB0aGUgVGh1bWItMiBpbnN0cnVjdGlvbiBzZXQsIGluc3RydWN0
aW9ucyBvcGVyYXRpbmcgb25seSBvbiByZWdpc3RlcnMgcjAtcjcgY2FuIG9mdGVuCkBAIC0xNDY0
LDYgKzE0NjQsMTIgQEAgcHVibGljOgogICAgICAgICBDUkFTSCgpOwogICAgIH0KIAorICAgIHZv
aWQgY29udmVydEludDMyVG9GbG9hdChSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRlc3Qp
CisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci52bW92KGZwVGVtcFJlZ2lzdGVyLCBzcmMsIHNy
Yyk7CisgICAgICAgIG1fYXNzZW1ibGVyLnZjdnRfc2lnbmVkVG9GbG9hdGluZ1BvaW50KGRlc3Qs
IGZwVGVtcFJlZ2lzdGVyQXNTaW5nbGUoKSwgLyogdG9Eb3VibGU6ICovIGZhbHNlKTsKKyAgICB9
CisKICAgICB2b2lkIGNvbnZlcnRJbnQzMlRvRG91YmxlKFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lz
dGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnZtb3YoZnBUZW1wUmVnaXN0
ZXIsIHNyYywgc3JjKTsKQEAgLTIyOTUsNiArMjMwMSwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBDYWxsKG1fYXNzZW1ibGVyLmIoKSwgQ2FsbDo6TGlua2FibGVOZWFyVGFpbCk7CiAgICAg
fQogCisgICAgLy8gRklYTUU6IHdoeSBpcyB0aGlzIHRoZSBzYW1lIHRoYW4gbmVhckNhbGwoKSBp
biBBUk02ND8gaXMgaXQgcmlnaHQ/CisgICAgQUxXQVlTX0lOTElORSBDYWxsIHRocmVhZFNhZmVQ
YXRjaGFibGVOZWFyQ2FsbCgpCisgICAgeworICAgICAgICBpbnZhbGlkYXRlQWxsVGVtcFJlZ2lz
dGVycygpOworICAgICAgICBtb3ZlRml4ZWRXaWR0aEVuY29kaW5nKFRydXN0ZWRJbW0zMigwKSwg
ZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgIHJldHVybiBDYWxsKG1fYXNzZW1ibGVyLmJseChk
YXRhVGVtcFJlZ2lzdGVyKSwgQ2FsbDo6TGlua2FibGVOZWFyKTsKKyAgICB9CisKICAgICBBTFdB
WVNfSU5MSU5FIENhbGwgY2FsbChQdHJUYWcpCiAgICAgewogICAgICAgICBtb3ZlRml4ZWRXaWR0
aEVuY29kaW5nKFRydXN0ZWRJbW0zMigwKSwgZGF0YVRlbXBSZWdpc3Rlcik7CkBAIC0yMzE5LDYg
KzIzMzMsMTIgQEAgcHVibGljOgogICAgIEFMV0FZU19JTkxJTkUgQ2FsbCBjYWxsKFJlZ2lzdGVy
SUQgdGFyZ2V0LCBSZWdpc3RlcklEIGNhbGxUYWcpIHsgcmV0dXJuIFVOVVNFRF9QQVJBTShjYWxs
VGFnKSwgY2FsbCh0YXJnZXQsIE5vUHRyVGFnKTsgfQogICAgIEFMV0FZU19JTkxJTkUgQ2FsbCBj
YWxsKEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBjYWxsVGFnKSB7IHJldHVybiBVTlVTRURf
UEFSQU0oY2FsbFRhZyksIGNhbGwoYWRkcmVzcywgTm9QdHJUYWcpOyB9CiAKKyAgICBBTFdBWVNf
SU5MSU5FIHZvaWQgY2FsbE9wZXJhdGlvbihjb25zdCBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJU
YWc+IG9wZXJhdGlvbikKKyAgICB7CisgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihvcGVyYXRp
b24uZXhlY3V0YWJsZUFkZHJlc3MoKSksIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOworICAgICAgICBj
YWxsKGFkZHJlc3NUZW1wUmVnaXN0ZXIsIE9wZXJhdGlvblB0clRhZyk7CisgICAgfQorCiAgICAg
QUxXQVlTX0lOTElORSB2b2lkIHJldCgpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5ieChs
aW5rUmVnaXN0ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFs
dWVSZXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlUmVwLmgKaW5kZXggMTU3
YmM4ODY4MjMxMmIxYTFlOWRhNzM5YzA4MmMwZDZjNDc3ZDMyNi4uNzY5MzhjNmZlY2FiZmQyNzEy
NzdhYmVlMzlmZWE5M2E5MmY3YjY2MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzVmFsdWVSZXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJl
cC5oCkBAIC0xMjYsOSArMTI2LDEzIEBAIHB1YmxpYzoKICAgICBWYWx1ZVJlcChXYXNtOjpWYWx1
ZUxvY2F0aW9uIGxvY2F0aW9uKQogICAgIHsKICAgICAgICAgc3dpdGNoIChsb2NhdGlvbi5raW5k
KCkpIHsKLSAgICAgICAgY2FzZSBXYXNtOjpWYWx1ZUxvY2F0aW9uOjpLaW5kOjpSZWdpc3RlcjoK
KyAgICAgICAgY2FzZSBXYXNtOjpWYWx1ZUxvY2F0aW9uOjpLaW5kOjpHUFJSZWdpc3RlcjoKICAg
ICAgICAgICAgIG1fa2luZCA9IFJlZ2lzdGVyOwotICAgICAgICAgICAgdS5yZWcgPSBsb2NhdGlv
bi5yZWcoKTsKKyAgICAgICAgICAgIHUucmVnID0gbG9jYXRpb24uanNyKCkucGF5bG9hZEdQUigp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2FzbTo6VmFsdWVMb2NhdGlvbjo6
S2luZDo6RlBSUmVnaXN0ZXI6CisgICAgICAgICAgICBtX2tpbmQgPSBSZWdpc3RlcjsKKyAgICAg
ICAgICAgIHUucmVnID0gbG9jYXRpb24uZnByKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBXYXNtOjpWYWx1ZUxvY2F0aW9uOjpLaW5kOjpTdGFjazoKICAgICAgICAgICAgIG1f
a2luZCA9IFN0YWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5dGVjb2RlRHVtcGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRl
Y29kZUR1bXBlci5jcHAKaW5kZXggZDU0Yzc0ZmM2M2M2NTBlMDhkNzRmNDc5N2M5MTExZDM1NjI2
NzZiYi4uN2IzZjVmYzlmYjIxN2Y4MjNkNWE0NjQ0NTZlNTFkMmUyNDhhMTQwMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCkBAIC00
MTMsNyArNDEzLDcgQEAgQ1N0cmluZyBCeXRlY29kZUR1bXBlcjo6Zm9ybWF0Q29uc3RhbnQoVHlw
ZSB0eXBlLCB1aW50NjRfdCBjb25zdGFudCkgY29uc3QKICAgICAgICAgaWYgKGlzRnVuY3JlZih0
eXBlKSB8fCBpc0V4dGVybnJlZih0eXBlKSkgewogICAgICAgICAgICAgaWYgKEpTVmFsdWU6OmRl
Y29kZShjb25zdGFudCkgPT0ganNOdWxsKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuICJudWxs
IjsKLSAgICAgICAgICAgIHJldHVybiB0b0NTdHJpbmcoUmF3UG9pbnRlcihiaXR3aXNlX2Nhc3Q8
dm9pZCo+KGNvbnN0YW50KSkpOworICAgICAgICAgICAgcmV0dXJuIHRvQ1N0cmluZyhSYXdQb2lu
dGVyKGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludHB0cl90Pihjb25zdGFudCkp
KSk7CiAgICAgICAgIH0KIAogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCmluZGV4IDhm
NTNjMzNlNGIxYmNlODZhMzczMjQ4NWU0MTU3NGYyNzUwZTg0NzAuLjBlNDBkZWRmODAwOTlhMDlh
ZmQ5YmFiNWExZmU4NDI5ZjVhYmYyZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKQEAgLTE2Nyw4ICsxNjcsOCBAQCBuYW1lc3BhY2UgSlNDICB7
CiAgICAgICAgIC8vIHRvIHNlZSBpZiBpdCdzIGEgY2VsbCwgYW5kIGlmIGl0J3Mgbm90LCB3ZSB0
aHJvdyBhbiBleGNlcHRpb24uCiAgICAgICAgIGlubGluZSBKU1ZhbHVlIGd1YXJhbnRlZWRKU1Zh
bHVlQ2FsbGVlKCkgY29uc3Q7CiAgICAgICAgIGlubGluZSBKU09iamVjdCoganNDYWxsZWUoKSBj
b25zdDsKLSAgICAgICAgQ2FsbGVlQml0cyBjYWxsZWUoKSBjb25zdCB7IHJldHVybiBDYWxsZWVC
aXRzKHRoaXNbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXS5wb2ludGVy
KCkpOyB9Ci0gICAgICAgIFNVUFBSRVNTX0FTQU4gQ2FsbGVlQml0cyB1bnNhZmVDYWxsZWUoKSBj
b25zdCB7IHJldHVybiBDYWxsZWVCaXRzKHRoaXNbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVT
bG90OjpjYWxsZWUpXS5hc2FuVW5zYWZlUG9pbnRlcigpKTsgfQorICAgICAgICBDYWxsZWVCaXRz
IGNhbGxlZSgpIGNvbnN0IHsgcmV0dXJuIENhbGxlZUJpdHModGhpc1tzdGF0aWNfY2FzdDxpbnQ+
KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSldLnVuYm94ZWRJbnQ2NCgpKTsgfQorICAgICAgICBTVVBQ
UkVTU19BU0FOIENhbGxlZUJpdHMgdW5zYWZlQ2FsbGVlKCkgY29uc3QgeyByZXR1cm4gQ2FsbGVl
Qml0cyh0aGlzW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0uYXNhblVu
c2FmZVVuYm94ZWRJbnQ2NCgpKTsgfQogICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaygpIGNv
bnN0OwogICAgICAgICBDb2RlQmxvY2sqKiBhZGRyZXNzT2ZDb2RlQmxvY2soKSBjb25zdCB7IHJl
dHVybiBiaXR3aXNlX2Nhc3Q8Q29kZUJsb2NrKio+KHRoaXMgKyBzdGF0aWNfY2FzdDxpbnQ+KENh
bGxGcmFtZVNsb3Q6OmNvZGVCbG9jaykpOyB9CiAgICAgICAgIGlubGluZSBTVVBQUkVTU19BU0FO
IENvZGVCbG9jayogdW5zYWZlQ29kZUJsb2NrKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbGVlQml0cy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0NhbGxlZUJpdHMuaAppbmRleCAxOGJiN2VmN2ZhOGM3YzM5ZjNk
NzFiYTk5NjYyMmIxZDZkNzkxZjU4Li5kZWEzYWU1NTgxNjAzY2NlM2RhNjViYzczYTk0ZjE5MTU3
M2ExYjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2Fs
bGVlQml0cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsZWVC
aXRzLmgKQEAgLTM5LDExICszOSwyMSBAQCBjbGFzcyBKU0NlbGw7CiBjbGFzcyBDYWxsZWVCaXRz
IHsKIHB1YmxpYzoKICAgICBDYWxsZWVCaXRzKCkgPSBkZWZhdWx0OwotICAgIENhbGxlZUJpdHMo
dm9pZCogcHRyKSA6IG1fcHRyKHB0cikgeyB9IAorICAgIENhbGxlZUJpdHMoaW50NjRfdCB2YWx1
ZSkKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICA6IG1fcHRyIHsgcmVpbnRlcnByZXRfY2Fz
dDx2b2lkKj4odmFsdWUpIH0KKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIDogbV9w
dHIgeyByZWludGVycHJldF9jYXN0PHZvaWQqPihKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLnBheWxv
YWQoKSkgfQorICAgICAgICAsIG1fdGFnIHsgSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKS50YWcoKSB9
CisjZW5kaWYKKyAgICB7IH0KIAogICAgIENhbGxlZUJpdHMmIG9wZXJhdG9yPShKU0NlbGwqIGNl
bGwpCiAgICAgewogICAgICAgICBtX3B0ciA9IGNlbGw7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkK
KyAgICAgICAgbV90YWcgPSBKU1ZhbHVlOjpDZWxsVGFnOworI2VuZGlmCiAgICAgICAgIEFTU0VS
VChpc0NlbGwoKSk7CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CkBAIC01MSwxOCArNjEs
MjQgQEAgcHVibGljOgogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICBzdGF0aWMgdm9pZCog
Ym94V2FzbShXYXNtOjpDYWxsZWUqIGNhbGxlZSkKICAgICB7Ci0gICAgICAgIENhbGxlZUJpdHMg
cmVzdWx0KHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90
PihjYWxsZWUpIHwgSlNWYWx1ZTo6V2FzbVRhZykpOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAg
ICAgIENhbGxlZUJpdHMgcmVzdWx0IHsgcmVpbnRlcnByZXRfY2FzdDxpbnQ2NF90PihjYWxsZWUp
IHwgSlNWYWx1ZTo6V2FzbVRhZyB9OwogICAgICAgICBBU1NFUlQocmVzdWx0LmlzV2FzbSgpKTsK
ICAgICAgICAgcmV0dXJuIHJlc3VsdC5yYXdQdHIoKTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQp
CisgICAgICAgIHJldHVybiBjYWxsZWU7IC8vIFRoZSBwb2ludGVyIGlzIGFzIGlzLCBidXQgdGhl
IGNvcnJlc3BvbmRpbmcgdGFnIGZpZWxkIG5lZWRzIHRvIGJlIHNldCB0byBXYXNtVGFnIHNlcGFy
YXRlbHkuCisjZW5kaWYKICAgICB9CiAjZW5kaWYKIAogICAgIGJvb2wgaXNXYXNtKCkgY29uc3QK
ICAgICB7Ci0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotICAgICAgICByZXR1cm4gKHJlaW50ZXJw
cmV0X2Nhc3Q8dWludHB0cl90PihtX3B0cikgJiBKU1ZhbHVlOjpXYXNtTWFzaykgPT0gSlNWYWx1
ZTo6V2FzbVRhZzsKLSNlbHNlCisjaWYgIUVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOworI2VsaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgcmV0dXJuIChyZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4obV9wdHIpICYgSlNWYWx1ZTo6V2FzbU1hc2spID09IEpTVmFs
dWU6Oldhc21UYWc7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4gbV90
YWcgPT0gSlNWYWx1ZTo6V2FzbVRhZzsKICNlbmRpZgogICAgIH0KICAgICBib29sIGlzQ2VsbCgp
IGNvbnN0IHsgcmV0dXJuICFpc1dhc20oKTsgfQpAQCAtNzcsMTQgKzkzLDIxIEBAIHB1YmxpYzoK
ICAgICBXYXNtOjpDYWxsZWUqIGFzV2FzbUNhbGxlZSgpIGNvbnN0CiAgICAgewogICAgICAgICBB
U1NFUlQoaXNXYXNtKCkpOworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PFdhc206OkNhbGxlZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Piht
X3B0cikgJiB+SlNWYWx1ZTo6V2FzbVRhZyk7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAg
ICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXYXNtOjpDYWxsZWUqPihtX3B0cik7CisjZW5k
aWYKICAgICB9CiAjZW5kaWYKIAogICAgIHZvaWQqIHJhd1B0cigpIGNvbnN0IHsgcmV0dXJuIG1f
cHRyOyB9Ci0gICAgCisKIHByaXZhdGU6CiAgICAgdm9pZCogbV9wdHIgeyBudWxscHRyIH07Cisj
aWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICB1aW50MzJfdCBtX3RhZyB7IEpTVmFsdWU6OkVtcHR5
VmFsdWVUYWcgfTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oCmluZGV4IGQ4NzljOTBiZTMxMTc4
NjIzM2Y1MjZiMTgzZWRmMWNiM2M3YmIzOGEuLjQ2MTgxM2M0MWQzMzcyZGZkNGIxODEyMzI5MTUx
OTQxMjFiZTJhZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9SZWdpc3Rlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdp
c3Rlci5oCkBAIC03Miw2ICs3MiwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgaW50NjRf
dCB1bmJveGVkSW50NjQoKSBjb25zdDsKICAgICAgICAgaW50NjRfdCBhc2FuVW5zYWZlVW5ib3hl
ZEludDY0KCkgY29uc3Q7CiAgICAgICAgIGJvb2wgdW5ib3hlZEJvb2xlYW4oKSBjb25zdDsKKyNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIGZsb2F0
IHVuYm94ZWRGbG9hdCgpIGNvbnN0OworICAgICAgICBmbG9hdCBhc2FuVW5zYWZlVW5ib3hlZEZs
b2F0KCkgY29uc3Q7CisjZW5kaWYKICAgICAgICAgZG91YmxlIHVuYm94ZWREb3VibGUoKSBjb25z
dDsKICAgICAgICAgZG91YmxlIGFzYW5VbnNhZmVVbmJveGVkRG91YmxlKCkgY29uc3Q7CiAgICAg
ICAgIEpTQ2VsbCogdW5ib3hlZENlbGwoKSBjb25zdDsKQEAgLTE4OCw2ICsxOTIsMTggQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiAhIXBheWxvYWQoKTsKICAgICB9CiAKKyNpZiBF
TkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgQUxXQVlTX0lOTElO
RSBmbG9hdCBSZWdpc3Rlcjo6dW5ib3hlZEZsb2F0KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJl
dHVybiBiaXR3aXNlX2Nhc3Q8ZmxvYXQ+KHBheWxvYWQoKSk7CisgICAgfQorCisgICAgU1VQUFJF
U1NfQVNBTiBBTFdBWVNfSU5MSU5FIGZsb2F0IFJlZ2lzdGVyOjphc2FuVW5zYWZlVW5ib3hlZEZs
b2F0KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8ZmxvYXQ+KHBh
eWxvYWQoKSk7CisgICAgfQorI2VuZGlmCisKICAgICBBTFdBWVNfSU5MSU5FIGRvdWJsZSBSZWdp
c3Rlcjo6dW5ib3hlZERvdWJsZSgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gdS5udW1i
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVy
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAppbmRleCBm
YzU5ZWE5NGNjYTNlYWNiMjE1ZDNjZGFjMGQ2YmQ0NzczNzkzYmVhLi4xMmVmYTE5YWVkNjNkOTY1
Y2ZhODFhYTk5ZTU4YmFmYTlkMTVkODMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
QXNzZW1ibHlIZWxwZXJzLmgKQEAgLTE0MDMsNyArMTQwMywxMCBAQCBwdWJsaWM6CiAgICAgICAg
IGppdEFzc2VydElzSlNEb3VibGUoZ3ByKTsKICAgICAgICAgcmV0dXJuIHVuYm94RG91YmxlV2l0
aG91dEFzc2VydGlvbnMoZ3ByLCByZXN1bHRHUFIsIGZwciwgbW9kZSk7CiAgICAgfQotICAgIAor
ICAgIHZvaWQgdW5ib3hEb3VibGUoSlNWYWx1ZVJlZ3MgcmVncywgRlBSUmVnIGZwcikKKyAgICB7
CisgICAgICAgIHVuYm94RG91YmxlKHJlZ3MudGFnR1BSKCksIHJlZ3MucGF5bG9hZEdQUigpLCBm
cHIpOworICAgIH0KICAgICB2b2lkIGJveERvdWJsZShGUFJSZWcgZnByLCBKU1ZhbHVlUmVncyBy
ZWdzLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQogICAgIHsKICAg
ICAgICAgYm94RG91YmxlKGZwciwgcmVncy5ncHIoKSwgbW9kZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3QuY3BwCmluZGV4IGVkODMwM2Rl
NDFiNTc0YWZjZTkyODk3Y2YwYTlkNWFkZWY0MDgxMTUuLmJhZDIwMjlmN2NmOTBlNTFmNTAzZWM2
ZTY5ZWM5NTgyOWMzNjk2M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
UmVnaXN0ZXJBdE9mZnNldExpc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
UmVnaXN0ZXJBdE9mZnNldExpc3QuY3BwCkBAIC0zOSwxOCArMzksNDIgQEAgUmVnaXN0ZXJBdE9m
ZnNldExpc3Q6OlJlZ2lzdGVyQXRPZmZzZXRMaXN0KCkgeyB9CiBSZWdpc3RlckF0T2Zmc2V0TGlz
dDo6UmVnaXN0ZXJBdE9mZnNldExpc3QoUmVnaXN0ZXJTZXQgcmVnaXN0ZXJTZXQsIE9mZnNldEJh
c2VUeXBlIG9mZnNldEJhc2VUeXBlKQogICAgIDogbV9yZWdpc3RlcnMocmVnaXN0ZXJTZXQubnVt
YmVyT2ZTZXRSZWdpc3RlcnMoKSkKIHsKLSAgICBzaXplX3QgbnVtYmVyT2ZSZWdpc3RlcnMgPSBy
ZWdpc3RlclNldC5udW1iZXJPZlNldFJlZ2lzdGVycygpOwotICAgIHB0cmRpZmZfdCBvZmZzZXQg
PSAwOwotICAgIAotICAgIGlmIChvZmZzZXRCYXNlVHlwZSA9PSBGcmFtZVBvaW50ZXJCYXNlZCkK
LSAgICAgICAgb2Zmc2V0ID0gLShzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KG51bWJlck9mUmVnaXN0
ZXJzKSAqIHNpemVvZihDUFVSZWdpc3RlcikpOworICAgIGNvbnN0ZXhwciBzaXplX3QgU2l6ZU9m
R1BSID0gc2l6ZW9mKENQVVJlZ2lzdGVyKTsKKyAgICBjb25zdGV4cHIgc2l6ZV90IFNpemVPZkZQ
UiA9IHNpemVvZihkb3VibGUpOwogCisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBzdGF0aWNfYXNz
ZXJ0KFNpemVPZkdQUiA9PSBTaXplT2ZGUFIpOworICAgIHNpemVfdCBudW1iZXJPZlJlZ3MgPSBy
ZWdpc3RlclNldC5udW1iZXJPZlNldFJlZ2lzdGVycygpOworICAgIG1fc2l6ZU9mQXJlYUluQnl0
ZXMgPSBudW1iZXJPZlJlZ3MgKiBTaXplT2ZHUFI7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQor
ICAgIHN0YXRpY19hc3NlcnQoMiAqIFNpemVPZkdQUiA9PSBTaXplT2ZGUFIpOworICAgIHNpemVf
dCBudW1iZXJPZkdQUnMgPSByZWdpc3RlclNldC5udW1iZXJPZlNldEdQUnMoKTsKKyAgICBzaXpl
X3QgbnVtYmVyT2ZGUFJzID0gcmVnaXN0ZXJTZXQubnVtYmVyT2ZTZXRGUFJzKCk7CisgICAgaWYg
KG51bWJlck9mRlBScykKKyAgICAgICAgbnVtYmVyT2ZHUFJzID0gV1RGOjpyb3VuZFVwVG9NdWx0
aXBsZU9mPDI+KG51bWJlck9mR1BScyk7CisgICAgbV9zaXplT2ZBcmVhSW5CeXRlcyA9IG51bWJl
ck9mR1BScyAqIFNpemVPZkdQUiArIG51bWJlck9mRlBScyAqIFNpemVPZkZQUjsKKyNlbmRpZgor
CisgICAgcHRyZGlmZl90IHN0YXJ0T2Zmc2V0ID0gMDsKKyAgICBpZiAob2Zmc2V0QmFzZVR5cGUg
PT0gRnJhbWVQb2ludGVyQmFzZWQpCisgICAgICAgIHN0YXJ0T2Zmc2V0ID0gLXN0YXRpY19jYXN0
PHB0cmRpZmZfdD4obV9zaXplT2ZBcmVhSW5CeXRlcyk7CisKKyAgICBwdHJkaWZmX3Qgb2Zmc2V0
ID0gc3RhcnRPZmZzZXQ7CiAgICAgdW5zaWduZWQgaW5kZXggPSAwOwogICAgIHJlZ2lzdGVyU2V0
LmZvckVhY2goWyZdIChSZWcgcmVnKSB7CisgICAgICAgIHNpemVfdCByZWdpc3RlclNpemUgPSBT
aXplT2ZHUFI7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgaWYgKHJlZy5pc0ZQUigp
KSB7CisgICAgICAgICAgICByZWdpc3RlclNpemUgPSBTaXplT2ZGUFI7CisgICAgICAgICAgICBv
ZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Y8U2l6ZU9mRlBSPihvZmZzZXQpOworICAg
ICAgICB9CisjZW5kaWYKICAgICAgICAgbV9yZWdpc3RlcnNbaW5kZXhdID0gUmVnaXN0ZXJBdE9m
ZnNldChyZWcsIG9mZnNldCk7Ci0gICAgICAgIG9mZnNldCArPSBzaXplb2YoQ1BVUmVnaXN0ZXIp
OworICAgICAgICBvZmZzZXQgKz0gcmVnaXN0ZXJTaXplOwogICAgICAgICArK2luZGV4OwogICAg
IH0pOworCisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4ob2Zmc2V0IC0gc3RhcnRPZmZz
ZXQpID09IG1fc2l6ZU9mQXJlYUluQnl0ZXMpOwogfQogCiB2b2lkIFJlZ2lzdGVyQXRPZmZzZXRM
aXN0OjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmgKaW5kZXggZDExN2NmNzVlMDk4ODg0ODNl
NzY1ZTUyYTNlYzc2ZjIyMmE3MTM4My4uMmEwZThiOWQxMjU1NDViNDA0MjE3N2RlNjQyNjQyOGQy
ZWQ4ZDI2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlckF0
T2Zmc2V0TGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9m
ZnNldExpc3QuaApAQCAtNjUsMTEgKzY1LDE0IEBAIHB1YmxpYzoKICAgICBGaXhlZFZlY3RvcjxS
ZWdpc3RlckF0T2Zmc2V0Pjo6Y29uc3RfaXRlcmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVybiBt
X3JlZ2lzdGVycy5iZWdpbigpOyB9CiAgICAgRml4ZWRWZWN0b3I8UmVnaXN0ZXJBdE9mZnNldD46
OmNvbnN0X2l0ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaXN0ZXJzLmVuZCgpOyB9
CiAKKyAgICBzaXplX3Qgc2l6ZU9mQXJlYUluQnl0ZXMoKSBjb25zdCB7IHJldHVybiBtX3NpemVP
ZkFyZWFJbkJ5dGVzOyB9CisKICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJBdE9mZnNldExpc3Qm
IGxsaW50QmFzZWxpbmVDYWxsZWVTYXZlUmVnaXN0ZXJzKCk7IC8vIFJlZ2lzdGVycyBhbmQgT2Zm
c2V0cyBzYXZlZCBhbmQgdXNlZCBieSB0aGUgTExJbnQuCiAgICAgc3RhdGljIGNvbnN0IFJlZ2lz
dGVyQXRPZmZzZXRMaXN0JiBkZmdDYWxsZWVTYXZlUmVnaXN0ZXJzKCk7IC8vIFJlZ2lzdGVycyBh
bmQgT2Zmc2V0cyBzYXZlZCBhbmQgdXNlZCBieSBERkcuCiAKIHByaXZhdGU6CiAgICAgRml4ZWRW
ZWN0b3I8UmVnaXN0ZXJBdE9mZnNldD4gbV9yZWdpc3RlcnM7CisgICAgc2l6ZV90IG1fc2l6ZU9m
QXJlYUluQnl0ZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9SZWdpc3RlclNldC5jcHAKaW5kZXggNTBlZWMyOGE0MWY2ZTc1ZjA1YjI2ZmJlMDY1
NTFkMjE5MDY1ZTdhYi4uYzE2YTllNDcyMTQ5ZTVlZDBhY2UzZGFlYzEyNjJkYTgxYmYwYWUyMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5jcHAKQEAgLTk0LDYgKzk0
LDggQEAgUmVnaXN0ZXJTZXQgUmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycygpCiAg
ICAgcmV0dXJuIFJlZ2lzdGVyU2V0KE1hY3JvQXNzZW1ibGVyOjpzX3NjcmF0Y2hSZWdpc3Rlcik7
CiAjZWxpZiBDUFUoQVJNNjQpIHx8IENQVShSSVNDVjY0KQogICAgIHJldHVybiBSZWdpc3RlclNl
dChNYWNyb0Fzc2VtYmxlcjo6ZGF0YVRlbXBSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6Om1lbW9y
eVRlbXBSZWdpc3Rlcik7CisjZWxpZiBDUFUoQVJNX1RIVU1CMikKKyAgICByZXR1cm4gUmVnaXN0
ZXJTZXQoTWFjcm9Bc3NlbWJsZXI6OmRhdGFUZW1wUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjph
ZGRyZXNzVGVtcFJlZ2lzdGVyKTsKICNlbGlmIENQVShNSVBTKQogICAgIFJlZ2lzdGVyU2V0IHJl
c3VsdDsKICAgICByZXN1bHQuc2V0KE1hY3JvQXNzZW1ibGVyOjppbW1UZW1wUmVnaXN0ZXIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNv
bmZpZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZp
Zy5oCmluZGV4IDJhNjA3ZGY4YzhlODA4ODRkMjBlYTFhYmI0Y2VjZWZjMGU0Yjk5ZjAuLmM5ZTBj
Mjk0NWQ3MzI3NGUwNTlhYmYyZTE4N2VjNTA4MGRkMmQxN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKQEAgLTE0NCw2ICsx
NDQsMTIgQEAKICNkZWZpbmUgT0ZGTElORV9BU01fSlNWQUxVRTY0IDAKICNlbmRpZgogCisjaWYg
VVNFKEpTVkFMVUUzMl82NCkKKyNkZWZpbmUgT0ZGTElORV9BU01fSlNWQUxVRTMyXzY0IDEKKyNl
bHNlCisjZGVmaW5lIE9GRkxJTkVfQVNNX0pTVkFMVUUzMl82NCAwCisjZW5kaWYKKwogI2lmIFVT
RShCSUdJTlQzMikKICNkZWZpbmUgT0ZGTElORV9BU01fQklHSU5UMzIgMQogI2Vsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJf
NjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIz
Ml82NC5hc20KaW5kZXggYWQyNTAxN2VmMGI0N2ZjMGIwNTA0NzQ3ZGI1NzViOTE1MDE4YWZlYS4u
NzA0MDFlNDViZTZkMDJiOWViYjJlMDRhM2E4OGJjOTg5ZmJlMzM2MiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5h
c20KQEAgLTM4LDE4ICszOCwzNCBAQCBtYWNybyBnZXR1T3BlcmFuZFdpZGUxNkpTKG9wY29kZVN0
cnVjdCwgZmllbGROYW1lLCBkc3QpCiAgICAgbG9hZGggY29uc3RleHByICVvcGNvZGVTdHJ1Y3Ql
XyVmaWVsZE5hbWUlX2luZGV4ICogMiArIE9wY29kZUlEV2lkZTE2U2l6ZUpTW1BCLCBQQywgMV0s
IGRzdAogZW5kCiAKK21hY3JvIGdldHVPcGVyYW5kV2lkZTE2V2FzbShvcGNvZGVTdHJ1Y3QsIGZp
ZWxkTmFtZSwgZHN0KQorICAgIGxvYWRoIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGRO
YW1lJV9pbmRleCAqIDIgKyBPcGNvZGVJRFdpZGUxNlNpemVXYXNtW1BCLCBQQywgMV0sIGRzdAor
ZW5kCisKIG1hY3JvIGdldE9wZXJhbmRXaWRlMTZKUyhvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwg
ZHN0KQogICAgIGxvYWRoc2kgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2lu
ZGV4ICogMiArIE9wY29kZUlEV2lkZTE2U2l6ZUpTW1BCLCBQQywgMV0sIGRzdAogZW5kCiAKK21h
Y3JvIGdldE9wZXJhbmRXaWRlMTZXYXNtKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCisg
ICAgbG9hZGhzaSBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiAy
ICsgT3Bjb2RlSURXaWRlMTZTaXplV2FzbVtQQiwgUEMsIDFdLCBkc3QKK2VuZAorCiBtYWNybyBn
ZXR1T3BlcmFuZFdpZGUzMkpTKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCiAgICAgbG9h
ZGkgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogNCArIE9wY29k
ZUlEV2lkZTMyU2l6ZUpTW1BCLCBQQywgMV0sIGRzdAogZW5kCiAKK21hY3JvIGdldHVPcGVyYW5k
V2lkZTMyV2FzbShvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQorICAgIGxvYWRpIGNvbnN0
ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRleCAqIDQgKyBPcGNvZGVJRFdpZGUz
MlNpemVXYXNtW1BCLCBQQywgMV0sIGRzdAorZW5kCisKIG1hY3JvIGdldE9wZXJhbmRXaWRlMzJK
UyhvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQogICAgIGxvYWRpcyBjb25zdGV4cHIgJW9w
Y29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiA0ICsgT3Bjb2RlSURXaWRlMzJTaXplSlNb
UEIsIFBDLCAxXSwgZHN0CiBlbmQKIAorbWFjcm8gZ2V0T3BlcmFuZFdpZGUzMldhc20ob3Bjb2Rl
U3RydWN0LCBmaWVsZE5hbWUsIGRzdCkKKyAgICBsb2FkaXMgY29uc3RleHByICVvcGNvZGVTdHJ1
Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogNCArIE9wY29kZUlEV2lkZTMyU2l6ZVdhc21bUEIsIFBD
LCAxXSwgZHN0CitlbmQKKwogbWFjcm8gbWFrZVJldHVybihnZXQsIGRpc3BhdGNoLCBmbikKICAg
ICBmbihtYWNybyh0YWcsIHBheWxvYWQpCiAgICAgICAgIG1vdmUgdGFnLCB0NQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5LmFzbSBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseS5hc20KaW5kZXggMjJlYmUyYTdlYjNkMDNl
ODk3MDhlMGFkOWQzNTMwZjlhZTViMjJlOC4uMTI1ZjBjYjcwOTg0YTE0ZDcwY2IzYTI0ZDM2MmQz
MzBiMDQzYmFiYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFz
c2VtYmx5LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHku
YXNtCkBAIC0zMSw1NiArMzEsODAgQEAgaWYgSEFWRV9GQVNUX1RMUwogZW5kCiAKIGlmIFg4Nl82
NAotICAgIGNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyA9IDYKKyAgICBjb25zdCBOdW1i
ZXJPZldhc21Bcmd1bWVudEpTUnMgPSA2CiBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2
NAotICAgIGNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyA9IDgKKyAgICBjb25zdCBOdW1i
ZXJPZldhc21Bcmd1bWVudEpTUnMgPSA4CitlbHNpZiBBUk12NworICAgIGNvbnN0IE51bWJlck9m
V2FzbUFyZ3VtZW50SlNScyA9IDIKIGVsc2UKICAgICBlcnJvcgogZW5kCisKIGNvbnN0IE51bWJl
ck9mV2FzbUFyZ3VtZW50RlBScyA9IDgKLWNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50cyA9IE51
bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIE51bWJlck9mV2FzbUFyZ3VtZW50RlBScworCitjb25z
dCBOdW1iZXJPZldhc21Bcmd1bWVudHMgPSBOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyBOdW1i
ZXJPZldhc21Bcmd1bWVudEZQUnMKIAogIyBBbGwgY2FsbGVlIHNhdmVzIG11c3QgbWF0Y2ggdGhl
IGRlZmluaXRpb24gaW4gV2FzbUNhbGxlZS5jcHAKIAogIyBUaGVzZSBtdXN0IG1hdGNoIHRoZSBk
ZWZpbml0aW9uIGluIFdhc21NZW1vcnlJbmZvcm1hdGlvbi5jcHAKLWNvbnN0IHdhc21JbnN0YW5j
ZSA9IGNzcjAKLWNvbnN0IG1lbW9yeUJhc2UgPSBjc3IzCi1jb25zdCBib3VuZHNDaGVja2luZ1Np
emUgPSBjc3I0CitpZiBYODZfNjQgb3IgQVJNNjQgb3IgQVJNNjRFCisgICAgY29uc3Qgd2FzbUlu
c3RhbmNlID0gY3NyMAorICAgIGNvbnN0IG1lbW9yeUJhc2UgPSBjc3IzCisgICAgY29uc3QgYm91
bmRzQ2hlY2tpbmdTaXplID0gY3NyNAorZWxzaWYgQVJNdjcKKyAgICBjb25zdCB3YXNtSW5zdGFu
Y2UgPSBjc3IwCisgICAgY29uc3QgbWVtb3J5QmFzZSA9IGludmFsaWRHUFIKKyAgICBjb25zdCBi
b3VuZHNDaGVja2luZ1NpemUgPSBpbnZhbGlkR1BSCitlbHNlCisgICAgZXJyb3IKK2VuZAogCiAj
IFRoaXMgbXVzdCBtYXRjaCB0aGUgZGVmaW5pdGlvbiBpbiBMb3dMZXZlbEludGVycHJldGVyLmFz
bQogaWYgWDg2XzY0CiAgICAgY29uc3QgUEIgPSBjc3IyCiBlbHNpZiBBUk02NCBvciBBUk02NEUg
b3IgUklTQ1Y2NAogICAgIGNvbnN0IFBCID0gY3NyNworZWxzaWYgQVJNdjcKKyAgICBjb25zdCBQ
QiA9IGNzcjEKIGVsc2UKICAgICBlcnJvcgogZW5kCiAKLW1hY3JvIGZvckVhY2hBcmd1bWVudEdQ
UihmbikKLSAgICBmbigwICogOCwgd2EwKQotICAgIGZuKDEgKiA4LCB3YTEpCi0gICAgZm4oMiAq
IDgsIHdhMikKLSAgICBmbigzICogOCwgd2EzKQotICAgIGZuKDQgKiA4LCB3YTQpCi0gICAgZm4o
NSAqIDgsIHdhNSkKLSAgICBpZiBBUk02NCBvciBBUk02NEUKLSAgICAgICAgZm4oNiAqIDgsIHdh
NikKLSAgICAgICAgZm4oNyAqIDgsIHdhNykKKyMgSGVscGVyIG1hY3JvcworCisjIE9uIEpTVkFM
VUU2NCwgZWFjaCA2NC1iaXQgYXJndW1lbnQgR1BSIGhvbGRzIG9uZSB3aG9sZSBXYXNtIHZhbHVl
LgorIyBPbiBKU1ZBTFVFMzJfNjQsIGEgY29uc2VjdXRpdmUgcGFpciBvZiBldmVuL29kZCBudW1i
ZXJlZCBHUFJzIGhvbGQgYSBzaW5nbGUKKyMgV2FzbSB2YWx1ZSAoZXZlbiBpZiB0aGF0IHZhbHVl
IGlzIGkzMi9mMzIsIHRoZSBvZGQgbnVtYmVyZWQgR1BSIGhvbGRzIHRoZQorIyBtb3JlIHNpZ25p
ZmljYW50IHdvcmQpLgorbWFjcm8gZm9yRWFjaEFyZ3VtZW50SlNSKGZuKQorICAgIGlmIEpTVkFM
VUU2NAorICAgICAgICBmbigwICogOCwgd2EwKQorICAgICAgICBmbigxICogOCwgd2ExKQorICAg
ICAgICBmbigyICogOCwgd2EyKQorICAgICAgICBmbigzICogOCwgd2EzKQorICAgICAgICBmbig0
ICogOCwgd2E0KQorICAgICAgICBmbig1ICogOCwgd2E1KQorICAgICAgICBpZiBBUk02NCBvciBB
Uk02NEUKKyAgICAgICAgICAgIGZuKDYgKiA4LCB3YTYpCisgICAgICAgICAgICBmbig3ICogOCwg
d2E3KQorICAgICAgICBlbmQKKyAgICBlbHNlCisgICAgICAgIGZuKDAgKiA4LCB3YTEsIHdhMCkK
KyAgICAgICAgZm4oMSAqIDgsIHdhMywgd2EyKQogICAgIGVuZAogZW5kCiAKIG1hY3JvIGZvckVh
Y2hBcmd1bWVudEZQUihmbikKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgMCkg
KiA4LCB3ZmEwKQotICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyAxKSAqIDgsIHdm
YTEpCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDIpICogOCwgd2ZhMikKLSAg
ICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgMykgKiA4LCB3ZmEzKQotICAgIGZuKChO
dW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyA0KSAqIDgsIHdmYTQpCi0gICAgZm4oKE51bWJlck9m
V2FzbUFyZ3VtZW50R1BScyArIDUpICogOCwgd2ZhNSkKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJn
dW1lbnRHUFJzICsgNikgKiA4LCB3ZmE2KQotICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQ
UnMgKyA3KSAqIDgsIHdmYTcpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIDAp
ICogOCwgd2ZhMCkKKyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgMSkgKiA4LCB3
ZmExKQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyAyKSAqIDgsIHdmYTIpCisg
ICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIDMpICogOCwgd2ZhMykKKyAgICBmbigo
TnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgNCkgKiA4LCB3ZmE0KQorICAgIGZuKChOdW1iZXJP
Zldhc21Bcmd1bWVudEpTUnMgKyA1KSAqIDgsIHdmYTUpCisgICAgZm4oKE51bWJlck9mV2FzbUFy
Z3VtZW50SlNScyArIDYpICogOCwgd2ZhNikKKyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRK
U1JzICsgNykgKiA4LCB3ZmE3KQogZW5kCiAKLSMgSGVscGVyIG1hY3JvcwogIyBGSVhNRTogRXZl
bnR1YWxseSB0aGlzIHNob3VsZCBiZSB1bmlmaWVkIHdpdGggdGhlIEpTIHZlcnNpb25zCiAjIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2NTYKIApAQCAtMTMwLDEw
ICsxNTQsMTUgQEAgbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvclByb2xvZ3VlKGNvZGVCbG9ja1Jl
Z2lzdGVyKQogICAgICAgICAgICAgYnRweiByMCwgLnJlY292ZXIKICAgICAgICAgICAgIG1vdmUg
cjAsIHdzMAogCi0gICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRHUFIobWFjcm8gKG9mZnNldCwg
Z3ByKQoraWYgSlNWQUxVRTY0CisgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8g
KG9mZnNldCwgZ3ByKQogICAgICAgICAgICAgICAgIGxvYWRxIC1vZmZzZXQgLSA4IC0gQ2FsbGVl
U2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBncHIKICAgICAgICAgICAgIGVu
ZCkKLQorZWxzZQorICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQs
IGdwck1zdywgZ3BMc3cpCisgICAgICAgICAgICAgICAgbG9hZDJpYSAtb2Zmc2V0IC0gOCAtIENh
bGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXSwgZ3BMc3csIGdwck1zdwor
ICAgICAgICAgICAgZW5kKQorZW5kCiAgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRGUFIobWFj
cm8gKG9mZnNldCwgZnByKQogICAgICAgICAgICAgICAgIGxvYWRkIC1vZmZzZXQgLSA4IC0gQ2Fs
bGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBmcHIKICAgICAgICAgICAg
IGVuZCkKQEAgLTIwMSw2ICsyMzAsOSBAQCBtYWNybyBwcmVzZXJ2ZUNhbGxlZVNhdmVzVXNlZEJ5
V2FzbSgpCiAgICAgZWxzaWYgWDg2XzY0IG9yIFJJU0NWNjQKICAgICAgICAgc3RvcmVwIFBCLCAt
MHg4W2Nmcl0KICAgICAgICAgc3RvcmVwIHdhc21JbnN0YW5jZSwgLTB4MTBbY2ZyXQorICAgIGVs
c2lmIEFSTXY3CisgICAgICAgIHN0b3JlcCBQQiwgLTRbY2ZyXQorICAgICAgICBzdG9yZXAgd2Fz
bUluc3RhbmNlLCAtOFtjZnJdCiAgICAgZWxzZQogICAgICAgICBlcnJvcgogICAgIGVuZApAQCAt
MjE1LDYgKzI0Nyw5IEBAIG1hY3JvIHJlc3RvcmVDYWxsZWVTYXZlc1VzZWRCeVdhc20oKQogICAg
IGVsc2lmIFg4Nl82NCBvciBSSVNDVjY0CiAgICAgICAgIGxvYWRwIC0weDhbY2ZyXSwgUEIKICAg
ICAgICAgbG9hZHAgLTB4MTBbY2ZyXSwgd2FzbUluc3RhbmNlCisgICAgZWxzaWYgQVJNdjcKKyAg
ICAgICAgbG9hZHAgLTRbY2ZyXSwgUEIKKyAgICAgICAgbG9hZHAgLThbY2ZyXSwgd2FzbUluc3Rh
bmNlCiAgICAgZWxzZQogICAgICAgICBlcnJvcgogICAgIGVuZApAQCAtMjQ1LDEwICsyODAsMTIg
QEAgZW5kCiBlbmQKIAogbWFjcm8gcmVsb2FkTWVtb3J5UmVnaXN0ZXJzRnJvbUluc3RhbmNlKGlu
c3RhbmNlLCBzY3JhdGNoMSwgc2NyYXRjaDIpCitpZiBub3QgQVJNdjcKICAgICBsb2FkcCBXYXNt
OjpJbnN0YW5jZTo6bV9jYWNoZWRNZW1vcnlbaW5zdGFuY2VdLCBtZW1vcnlCYXNlCiAgICAgbG9h
ZHAgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplW2luc3RhbmNlXSwg
Ym91bmRzQ2hlY2tpbmdTaXplCiAgICAgY2FnZWRQcmltaXRpdmVNYXlCZU51bGwobWVtb3J5QmFz
ZSwgYm91bmRzQ2hlY2tpbmdTaXplLCBzY3JhdGNoMSwgc2NyYXRjaDIpICMgSWYgYm91bmRzQ2hl
Y2tpbmdTaXplIGlzIDAsIHBvaW50ZXIgY2FuIGJlIGEgbnVsbHB0ci4KIGVuZAorZW5kCiAKIG1h
Y3JvIHRocm93RXhjZXB0aW9uKGV4Y2VwdGlvbikKICAgICBzdG9yZWkgY29uc3RleHByIFdhc206
OkV4Y2VwdGlvblR5cGU6OiVleGNlcHRpb24lLCBBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyAr
IFBheWxvYWRPZmZzZXRbY2ZyXQpAQCAtMjgwLDggKzMxNywxMyBAQCBtYWNybyByZXN0b3JlU3Rh
Y2tQb2ludGVyQWZ0ZXJDYWxsKCkKICAgICBsb2FkaSBXYXNtOjpMTEludENhbGxlZTo6bV9udW1D
YWxsZWVMb2NhbHNbd3MxXSwgd3MxCiAgICAgbHNoaWZ0cCAzLCB3czEKICAgICBhZGRwIG1heEZy
YW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLCB3czEKK2lmIEFSTXY3CisgICAgc3VicCBjZnIsIHdz
MSwgd3MxCisgICAgbW92ZSB3czEsIHNwCitlbHNlCiAgICAgc3VicCBjZnIsIHdzMSwgc3AKIGVu
ZAorZW5kCiAKIG1hY3JvIHdhc21Qcm9sb2d1ZShsb2FkV2FzbUluc3RhbmNlKQogICAgICMgU2V0
IHVwIHRoZSBjYWxsIGZyYW1lIGFuZCBjaGVjayBpZiB3ZSBzaG91bGQgT1NSLgpAQCAtMjkyLDYg
KzMzNCw5IEBAIG1hY3JvIHdhc21Qcm9sb2d1ZShsb2FkV2FzbUluc3RhbmNlKQogCiAgICAgbG9h
ZHAgV2FzbTo6SW5zdGFuY2U6Om1fb3duZXJbd2FzbUluc3RhbmNlXSwgd3MwCiAgICAgc3RvcmVw
IHdzMCwgVGhpc0FyZ3VtZW50T2Zmc2V0W2Nmcl0KK2lmIG5vdCBKU1ZBTFVFNjQKKyAgICBzdG9y
ZWkgQ2VsbFRhZywgVGFnT2Zmc2V0ICsgVGhpc0FyZ3VtZW50T2Zmc2V0W2Nmcl0KK2VuZAogCiAg
ICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHdzMAogICAgIGFuZHAgfjMsIHdzMApAQCAtMzAzLDYgKzM0
OCwxMCBAQCBtYWNybyB3YXNtUHJvbG9ndWUobG9hZFdhc21JbnN0YW5jZSkKICAgICBhZGRwIG1h
eEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLCB3czEKICAgICBzdWJwIGNmciwgd3MxLCB3czEK
IAoraWYgbm90IEpTVkFMVUU2NAorICAgIHN1YnAgOCwgd3MxICMgYWxpZ24gc3RhY2sgcG9pbnRl
cgorZW5kCisKICAgICBicGEgd3MxLCBjZnIsIC5zdGFja092ZXJmbG93CiAgICAgYnBiZXEgV2Fz
bTo6SW5zdGFuY2U6Om1fY2FjaGVkU3RhY2tMaW1pdFt3YXNtSW5zdGFuY2VdLCB3czEsIC5zdGFj
a0hlaWdodE9LCiAKQEAgLTMxMiwxMCArMzYxLDE1IEBAIG1hY3JvIHdhc21Qcm9sb2d1ZShsb2Fk
V2FzbUluc3RhbmNlKQogLnN0YWNrSGVpZ2h0T0s6CiAgICAgbW92ZSB3czEsIHNwCiAKLSAgICBm
b3JFYWNoQXJndW1lbnRHUFIobWFjcm8gKG9mZnNldCwgZ3ByKQoraWYgSlNWQUxVRTY0CisgICAg
Zm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwcikKICAgICAgICAgc3RvcmVxIGdw
ciwgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nm
cl0KICAgICBlbmQpCi0KK2Vsc2UKKyAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNl
dCwgZ3ByTXN3LCBncExzdykKKyAgICAgICAgc3RvcmUyaWEgZ3BMc3csIGdwck1zdywgLW9mZnNl
dCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0KKyAgICBl
bmQpCitlbmQKICAgICBmb3JFYWNoQXJndW1lbnRGUFIobWFjcm8gKG9mZnNldCwgZnByKQogICAg
ICAgICBzdG9yZWQgZnByLCAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJl
Z2lzdGVycyAqIDhbY2ZyXQogICAgIGVuZCkKQEAgLTMyOSwxNCArMzgzLDE2IEBAIG1hY3JvIHdh
c21Qcm9sb2d1ZShsb2FkV2FzbUluc3RhbmNlKQogICAgIGxvYWRpIFdhc206OkxMSW50Q2FsbGVl
OjptX251bVZhcnNbd3MwXSwgd3MxCiAgICAgc3ViaSBOdW1iZXJPZldhc21Bcmd1bWVudHMgKyBD
YWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMsIHdzMQogICAgIGJ0aXogd3MxLCAuemVy
b0luaXRpYWxpemVMb2NhbHNEb25lCisgICAgbHNoaWZ0aSAzLCB3czEKICAgICBuZWdpIHdzMQor
aWYgSlNWQUxVRTY0CiAgICAgc3hpMnEgd3MxLCB3czEKK2VuZAogICAgIGxlYXAgKE51bWJlck9m
V2FzbUFyZ3VtZW50cyArIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyArIDEpICog
LThbY2ZyXSwgd3MwCiAuemVyb0luaXRpYWxpemVMb2NhbHNMb29wOgotICAgIGFkZHEgMSwgd3Mx
Ci0gICAgc3RvcmVxIDAsIFt3czAsIHdzMSwgOF0KLSAgICBidHF6IHdzMSwgLnplcm9Jbml0aWFs
aXplTG9jYWxzRG9uZQotICAgIGptcCAuemVyb0luaXRpYWxpemVMb2NhbHNMb29wCisgICAgYWRk
cCBQdHJTaXplLCB3czEKKyAgICBzdG9yZXAgMCwgW3dzMCwgd3MxXQorICAgIGJ0cG56IHdzMSwg
Lnplcm9Jbml0aWFsaXplTG9jYWxzTG9vcAogLnplcm9Jbml0aWFsaXplTG9jYWxzRG9uZToKIGVu
ZAogCkBAIC0zNzUsNiArNDMxLDI0IEBAIG1hY3JvIHNsb3dXYXNtT3Aob3Bjb2RlTmFtZSkKICAg
ICB1bnByZWZpeGVkU2xvd1dhc21PcCh3YXNtXyVvcGNvZGVOYW1lJSkKIGVuZAogCisjIEZsb2F0
IHRvIGZsb2F0IHJvdW5kaW5nIG9wcworbWFjcm8gd2FzbVJvdW5kaW5nT3Aob3Bjb2RlTmFtZSwg
b3Bjb2RlU3RydWN0LCBmbikKK2lmIEpTVkFMVUU2NCAjIEFsbCBjdXJyZW50IDY0LWJpdCBwbGF0
Zm9ybXMgaGF2ZSBpbnN0cnVjdGlvbnMgZm9yIHRoZXNlCisgICAgd2FzbU9wKG9wY29kZU5hbWUs
IG9wY29kZVN0cnVjdCwgZm4pCitlbHNlCisgICAgc2xvd1dhc21PcChvcGNvZGVOYW1lKQorZW5k
CitlbmQKKworIyBpNjQgKHNpZ25lZC91bnNpZ25lZCkgdG8gZjMyIG9yIGY2NAorbWFjcm8gd2Fz
bUk2NFRvRk9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCitpZiBKU1ZBTFVFNjQgIyBB
bGwgY3VycmVudCA2NC1iaXQgcGxhdGZvcm1zIGhhdmUgaW5zdHJ1Y3Rpb25zIGZvciB0aGVzZQor
ICAgIHdhc21PcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGZuKQorZWxzZQorICAgIHNsb3dX
YXNtT3Aob3Bjb2RlTmFtZSkKK2VuZAorZW5kCisKICMgTWFjcm8gdmVyc2lvbiBvZiBsb2FkIG9w
ZXJhdGlvbnM6IG1sb2FkW3N1ZmZpeF0KICMgbG9hZHMgZmllbGQgZnJvbSB0aGUgaW5zdHJ1Y3Rp
b24gc3RyZWFtIGFuZCBwZXJmb3JtcyBsb2FkW3N1ZmZpeF0gdG8gZHN0CiBtYWNybyBmaXJzdENv
bnN0YW50UmVnaXN0ZXJJbmRleChjdHgsIGZuKQpAQCAtMzk3LDEyICs0NzEsMjEgQEAgbWFjcm8g
bG9hZENvbnN0YW50T3JWYXJpYWJsZShjdHgsIGluZGV4LCBsb2FkZXIpCiAgICAgZW5kKQogZW5k
CiAKK2lmIEpTVkFMVUU2NAogbWFjcm8gbWxvYWRxKGN0eCwgZmllbGQsIGRzdCkKICAgICB3Z2V0
cyhjdHgsIGZpZWxkLCBkc3QpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShjdHgsIGRzdCwg
bWFjcm8gKGZyb20pCiAgICAgICAgIGxvYWRxIGZyb20sIGRzdAogICAgIGVuZCkKIGVuZAorZWxz
ZQorbWFjcm8gbWxvYWQyaShjdHgsIGZpZWxkLCBkc3RNc3csIGRzdExzdykKKyAgICB3Z2V0cyhj
dHgsIGZpZWxkLCBkc3RMc3cpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShjdHgsIGRzdExz
dywgbWFjcm8gKGZyb20pCisgICAgICAgIGxvYWQyaWEgZnJvbSwgZHN0THN3LCBkc3RNc3cKKyAg
ICBlbmQpCitlbmQKK2VuZAogCiBtYWNybyBtbG9hZGkoY3R4LCBmaWVsZCwgZHN0KQogICAgIHdn
ZXRzKGN0eCwgZmllbGQsIGRzdCkKQEAgLTQzNCwxMSArNTE3LDE5IEBAIGVuZAogCiAjIFR5cGVk
IHJldHVybnMKIAoraWYgSlNWQUxVRTY0CiBtYWNybyByZXR1cm5xKGN0eCwgdmFsdWUpCiAgICAg
d2dldHMoY3R4LCBtX2RzdCwgdDUpCiAgICAgc3RvcmVxIHZhbHVlLCBbY2ZyLCB0NSwgOF0KICAg
ICBkaXNwYXRjaChjdHgpCiBlbmQKK2Vsc2UKK21hY3JvIHJldHVybjJpKGN0eCwgbXN3LCBsc3cp
CisgICAgd2dldHMoY3R4LCBtX2RzdCwgdDUpCisgICAgc3RvcmUyaWEgbHN3LCBtc3csIFtjZnIs
IHQ1LCA4XQorICAgIGRpc3BhdGNoKGN0eCkKK2VuZAorZW5kCiAKIG1hY3JvIHJldHVybmkoY3R4
LCB2YWx1ZSkKICAgICB3Z2V0cyhjdHgsIG1fZHN0LCB0NSkKQEAgLTUxMSw3ICs2MDIsNyBAQCBt
YWNybyB3YXNtQ29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVyKQogZW5kCiAKIG9wKHdhc21f
ZnVuY3Rpb25fcHJvbG9ndWUsIG1hY3JvICgpCi0gICAgaWYgbm90IFdFQkFTU0VNQkxZIG9yIG5v
dCBKU1ZBTFVFNjQgb3IgQ19MT09QIG9yIENfTE9PUF9XSU4KKyAgICBpZiBub3QgV0VCQVNTRU1C
TFkgb3IgQ19MT09QIG9yIENfTE9PUF9XSU4KICAgICAgICAgZXJyb3IKICAgICBlbmQKIApAQCAt
NTIwLDcgKzYxMSw3IEBAIG9wKHdhc21fZnVuY3Rpb25fcHJvbG9ndWUsIG1hY3JvICgpCiBlbmQp
CiAKIG9wKHdhc21fZnVuY3Rpb25fcHJvbG9ndWVfbm9fdGxzLCBtYWNybyAoKQotICAgIGlmIG5v
dCBXRUJBU1NFTUJMWSBvciBub3QgSlNWQUxVRTY0IG9yIENfTE9PUCBvciBDX0xPT1BfV0lOCisg
ICAgaWYgbm90IFdFQkFTU0VNQkxZIG9yIENfTE9PUCBvciBDX0xPT1BfV0lOCiAgICAgICAgIGVy
cm9yCiAgICAgZW5kCiAKQEAgLTYyMywxNiArNzE0LDIzIEBAIF93YXNtX2VudGVyOgogICAgIGNo
ZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQyLCAweGRlYWQwMGUxKQogICAgIGxvYWRwIENvZGVC
bG9ja1tjZnJdLCB0MiAgICAgICAgICAgICAgICAvLyB0MjxDb2RlQmxvY2s+ID0gY2ZyLkNvZGVC
bG9jawogICAgIGxvYWRpIFdhc206OkxMSW50Q2FsbGVlOjptX251bVZhcnNbdDJdLCB0MiAgICAg
IC8vIHQyPHNpemVfdD4gPSB0MjxDb2RlQmxvY2s+Lm1fbnVtVmFycwotICAgIHN1YnEgQ2FsbGVl
U2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICsgTnVtYmVyT2ZXYXNtQXJndW1lbnRzLCB0Mgor
ICAgIHN1YmkgQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICsgTnVtYmVyT2ZXYXNt
QXJndW1lbnRzLCB0MgogICAgIGJ0aXogdDIsIC5vcEVudGVyRG9uZQotICAgIG1vdmUgY2ZyLCB0
MQotICAgIHN1YnEgQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOCArIE51bWJl
ck9mV2FzbUFyZ3VtZW50cyAqIDgsIHQxCisgICAgc3VicCBjZnIsIChDYWxsZWVTYXZlU3BhY2VB
c1ZpcnR1YWxSZWdpc3RlcnMgKyBOdW1iZXJPZldhc21Bcmd1bWVudHMpICogU2xvdFNpemUsIHQx
CisgICAgbHNoaWZ0aSAzLCB0MgogICAgIG5lZ2kgdDIKK2lmIEpTVkFMVUU2NAogICAgIHN4aTJx
IHQyLCB0MgorZW5kCisgICAgbW92ZSAwLCB0NgogLm9wRW50ZXJMb29wOgotICAgIHN0b3JlcSAw
LCBbdDEsIHQyLCA4XQotICAgIGFkZHEgMSwgdDIKLSAgICBidHFueiB0MiwgLm9wRW50ZXJMb29w
CitpZiBKU1ZBTFVFNjQKKyAgICBzdG9yZXEgdDYsIFt0MSwgdDJdCitlbHNlCisgICAgc3RvcmUy
aWEgdDYsIHQ2LCBbdDEsIHQyXQorZW5kCisgICAgYWRkcCA4LCB0MgorICAgIGJ0cG56IHQyLCAu
b3BFbnRlckxvb3AKIC5vcEVudGVyRG9uZToKICAgICB3YXNtRGlzcGF0Y2hJbmRpcmVjdCgxKQog
CkBAIC02NDUsMTEgKzc0Myw2IEBAIHdhc21PcChsb29wX2hpbnQsIFdhc21Mb29wSGludCwgbWFj
cm8oY3R4KQogICAgIGRpc3BhdGNoKGN0eCkKIGVuZCkKIAotd2FzbU9wKG1vdiwgV2FzbU1vdiwg
bWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fc3JjLCB0MCkKLSAgICByZXR1cm5xKGN0eCwg
dDApCi1lbmQpCi0KIHdhc21PcChqdHJ1ZSwgV2FzbUp0cnVlLCBtYWNybyhjdHgpCiAgICAgbWxv
YWRpKGN0eCwgbV9jb25kaXRpb24sIHQwKQogICAgIGJ0aXogdDAsIC5jb250aW51ZQpAQCAtNzAx
LDkgKzc5NCwxNSBAQCBlbmQpCiAKIHVucHJlZml4ZWRXYXNtT3Aod2FzbV9yZXQsIFdhc21SZXQs
IG1hY3JvKGN0eCkKICAgICBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQotICAgIGZvckVh
Y2hBcmd1bWVudEdQUihtYWNybyAob2Zmc2V0LCBncHIpCitpZiBKU1ZBTFVFNjQKKyAgICBmb3JF
YWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByKQogICAgICAgICBsb2FkcSAtb2Zmc2V0
IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXSwgZ3ByCiAg
ICAgZW5kKQorZWxzZQorICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHJN
c3csIGdwTHN3KQorICAgICAgICBsb2FkMmlhIC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNl
QXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBncExzdywgZ3ByTXN3CisgICAgZW5kKQorZW5k
CiAgICAgZm9yRWFjaEFyZ3VtZW50RlBSKG1hY3JvIChvZmZzZXQsIGZwcikKICAgICAgICAgbG9h
ZGQgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nm
cl0sIGZwcgogICAgIGVuZCkKQEAgLTcyMSw0NCArODIwLDYgQEAgd2FzbU9wKHJldF92b2lkLCBX
YXNtUmV0Vm9pZCwgbWFjcm8oY3R4KQogICAgIGRvUmV0dXJuKCkKIGVuZCkKIAotd2FzbU9wKHJl
Zl9pc19udWxsLCBXYXNtUmVmSXNOdWxsLCBtYWNybyhjdHgpCi0gICAgbWxvYWRwKGN0eCwgbV9y
ZWYsIHQwKQotICAgIGNxZXEgdDAsIFZhbHVlTnVsbCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDAp
Ci1lbmQpCi0KLXdhc21PcChnZXRfZ2xvYmFsLCBXYXNtR2V0R2xvYmFsLCBtYWNybyhjdHgpCi0g
ICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAotICAg
IHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCi0gICAgbG9hZHEgW3QwLCB0MSwgOF0sIHQw
Ci0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3Aoc2V0X2dsb2JhbCwgV2FzbVNl
dEdsb2JhbCwgbWFjcm8oY3R4KQotICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNb
d2FzbUluc3RhbmNlXSwgdDAKLSAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQotICAg
IG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQotICAgIHN0b3JlcSB0MiwgW3QwLCB0MSwgOF0KLSAg
ICBkaXNwYXRjaChjdHgpCi1lbmQpCi0KLXdhc21PcChnZXRfZ2xvYmFsX3BvcnRhYmxlX2JpbmRp
bmcsIFdhc21HZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkKLSAgICBsb2FkcCBX
YXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCi0gICAgd2dldHUoY3R4
LCBtX2dsb2JhbEluZGV4LCB0MSkKLSAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKLSAgICBsb2Fk
cSBbdDBdLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKHNldF9nbG9i
YWxfcG9ydGFibGVfYmluZGluZywgV2FzbVNldEdsb2JhbFBvcnRhYmxlQmluZGluZywgbWFjcm8o
Y3R4KQotICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwg
dDAKLSAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQotICAgIG1sb2FkcShjdHgsIG1f
dmFsdWUsIHQyKQotICAgIGxvYWRxIFt0MCwgdDEsIDhdLCB0MAotICAgIHN0b3JlcSB0MiwgW3Qw
XQotICAgIGRpc3BhdGNoKGN0eCkKLWVuZCkKLQogbWFjcm8gc2xvd1BhdGhGb3JXYXNtQ2FsbChj
dHgsIHNsb3dQYXRoLCBzdG9yZVdhc21JbnN0YW5jZSkKICAgICBjYWxsV2FzbUNhbGxTbG93UGF0
aCgKICAgICAgICAgc2xvd1BhdGgsCkBAIC03NzMsNyArODM0LDEyIEBAIG1hY3JvIHNsb3dQYXRo
Rm9yV2FzbUNhbGwoY3R4LCBzbG93UGF0aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAKICAgICAgICAg
ICAgIHdnZXR1KGN0eCwgbV9zdGFja09mZnNldCwgd3MxKQogICAgICAgICAgICAgbHNoaWZ0aSAz
LCB3czEKK2lmIEFSTXY3CisgICAgICAgICAgICBzdWJwIGNmciwgd3MxLCB3czEKKyAgICAgICAg
ICAgIG1vdmUgd3MxLCBzcAorZWxzZQogICAgICAgICAgICAgc3VicCBjZnIsIHdzMSwgc3AKK2Vu
ZAogCiAgICAgICAgICAgICB3Z2V0dShjdHgsIG1fbnVtYmVyT2ZTdGFja0FyZ3MsIHdzMSkKIApA
QCAtNzg0LDEwICs4NTAsMTUgQEAgbWFjcm8gc2xvd1BhdGhGb3JXYXNtQ2FsbChjdHgsIHNsb3dQ
YXRoLCBzdG9yZVdhc21JbnN0YW5jZSkKICAgICAgICAgICAgIHJlbG9hZE1lbW9yeVJlZ2lzdGVy
c0Zyb21JbnN0YW5jZSh0YXJnZXRXYXNtSW5zdGFuY2UsIHdhMCwgd2ExKQogCiAgICAgICAgICAg
ICAjIExvYWQgcmVnaXN0ZXJzIGZyb20gc3RhY2sKLSAgICAgICAgICAgIGZvckVhY2hBcmd1bWVu
dEdQUihtYWNybyAob2Zmc2V0LCBncHIpCitpZiBKU1ZBTFVFNjQKKyAgICAgICAgICAgIGZvckVh
Y2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHIpCiAgICAgICAgICAgICAgICAgbG9hZHEg
Q2FsbEZyYW1lSGVhZGVyU2l6ZSArIDggKyBvZmZzZXRbc3AsIHdzMSwgOF0sIGdwcgogICAgICAg
ICAgICAgZW5kKQotCitlbHNlCisgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8g
KG9mZnNldCwgZ3ByTXN3LCBncExzdykKKyAgICAgICAgICAgICAgICBsb2FkMmlhIENhbGxGcmFt
ZUhlYWRlclNpemUgKyA4ICsgb2Zmc2V0W3NwLCB3czEsIDhdLCBncExzdywgZ3ByTXN3CisgICAg
ICAgICAgICBlbmQpCitlbmQKICAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEZQUihtYWNybyAo
b2Zmc2V0LCBmcHIpCiAgICAgICAgICAgICAgICAgbG9hZGQgQ2FsbEZyYW1lSGVhZGVyU2l6ZSAr
IDggKyBvZmZzZXRbc3AsIHdzMSwgOF0sIGZwcgogICAgICAgICAgICAgZW5kKQpAQCAtODMwLDcg
KzkwMSwxMSBAQCBtYWNybyBzbG93UGF0aEZvcldhc21DYWxsKGN0eCwgc2xvd1BhdGgsIHN0b3Jl
V2FzbUluc3RhbmNlKQogCiAgICAgICAgICAgICAjIFdlIG5lZWQgdG8gc2V0IFBDIHRvIGxvYWQg
aW5mb3JtYXRpb24gZnJvbSB0aGUgaW5zdHJ1Y3Rpb24gc3RyZWFtLCBidXQgd2UKICAgICAgICAg
ICAgICMgbmVlZCB0byBwcmVzZXJ2ZSBpdHMgY3VycmVudCB2YWx1ZSBzaW5jZSBpdCBtaWdodCBj
b250YWluIGEgcmV0dXJuIHZhbHVlCitpZiBBUk12NworICAgICAgICAgICAgcHVzaCBQQworZWxz
ZQogICAgICAgICAgICAgbW92ZSBQQywgbWVtb3J5QmFzZQorZW5kCiAgICAgICAgICAgICBtb3Zl
IFBCLCB3YXNtSW5zdGFuY2UKICAgICAgICAgICAgIGxvYWRpIEFyZ3VtZW50Q291bnRJbmNsdWRp
bmdUaGlzICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCiAgICAgICAgICAgICBsb2FkcCBDb2RlQmxvY2tb
Y2ZyXSwgUEIKQEAgLTgzOSwxNyArOTE0LDI4IEBAIG1hY3JvIHNsb3dQYXRoRm9yV2FzbUNhbGwo
Y3R4LCBzbG93UGF0aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAgICAgICAgICAgICB3Z2V0dShjdHgs
IG1fc3RhY2tPZmZzZXQsIHdzMSkKICAgICAgICAgICAgIGxzaGlmdGkgMywgd3MxCiAgICAgICAg
ICAgICBuZWdpIHdzMQoraWYgSlNWQUxVRTY0CiAgICAgICAgICAgICBzeGkycSB3czEsIHdzMQor
ZW5kCiAgICAgICAgICAgICBhZGRwIGNmciwgd3MxCiAKICAgICAgICAgICAgICMgQXJndW1lbnQg
cmVnaXN0ZXJzIGFyZSBhbHNvIHJldHVybiByZWdpc3RlcnMsIHNvIHRoZXkgbXVzdCBiZSBzdG9y
ZWQgdG8gdGhlIHN0YWNrCiAgICAgICAgICAgICAjIGluIGNhc2UgdGhleSBjb250YWluIHJldHVy
biB2YWx1ZXMuCiAgICAgICAgICAgICB3Z2V0dShjdHgsIG1fbnVtYmVyT2ZTdGFja0FyZ3MsIHdz
MCkKK2lmIEFSTXY3CisgICAgICAgICAgICBwb3AgUEMKK2Vsc2UKICAgICAgICAgICAgIG1vdmUg
bWVtb3J5QmFzZSwgUEMKLSAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEdQUihtYWNybyAob2Zm
c2V0LCBncHIpCitlbmQKK2lmIEpTVkFMVUU2NAorICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50
SlNSKG1hY3JvIChvZmZzZXQsIGdwcikKICAgICAgICAgICAgICAgICBzdG9yZXEgZ3ByLCBDYWxs
RnJhbWVIZWFkZXJTaXplICsgOCArIG9mZnNldFt3czEsIHdzMCwgOF0KICAgICAgICAgICAgIGVu
ZCkKLQorZWxzZQorICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQs
IGdwck1zdywgZ3BMc3cpCisgICAgICAgICAgICAgICAgc3RvcmUyaWEgZ3BMc3csIGdwck1zdywg
Q2FsbEZyYW1lSGVhZGVyU2l6ZSArIDggKyBvZmZzZXRbd3MxLCB3czAsIDhdCisgICAgICAgICAg
ICBlbmQpCitlbmQKICAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEZQUihtYWNybyAob2Zmc2V0
LCBmcHIpCiAgICAgICAgICAgICAgICAgc3RvcmVkIGZwciwgQ2FsbEZyYW1lSGVhZGVyU2l6ZSAr
IDggKyBvZmZzZXRbd3MxLCB3czAsIDhdCiAgICAgICAgICAgICBlbmQpCkBAIC05MDAsMTk5ICs5
ODYsMzYgQEAgd2FzbU9wKGN1cnJlbnRfbWVtb3J5LCBXYXNtQ3VycmVudE1lbW9yeSwgbWFjcm8o
Y3R4KQogICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX21lbW9yeVt3YXNtSW5zdGFuY2VdLCB0
MAogICAgIGxvYWRwIFdhc206Ok1lbW9yeTo6bV9oYW5kbGVbdDBdLCB0MAogICAgIGxvYWRwIFdh
c206Ok1lbW9yeUhhbmRsZTo6bV9zaXplW3QwXSwgdDAKLSAgICB1cnNoaWZ0cSAxNiwgdDAKKyAg
ICB1cnNoaWZ0cCAxNiwgdDAKK2lmIEpTVkFMVUU2NAogICAgIHJldHVybnEoY3R4LCB0MCkKK2Vs
c2UKKyAgICByZXR1cm4yaShjdHgsIDAsIHQwKQorZW5kCiBlbmQpCiAKIHdhc21PcChzZWxlY3Qs
IFdhc21TZWxlY3QsIG1hY3JvKGN0eCkKICAgICBtbG9hZGkoY3R4LCBtX2NvbmRpdGlvbiwgdDAp
CiAgICAgYnRpeiB0MCwgLmlzWmVybworaWYgSlNWQUxVRTY0CiAgICAgbWxvYWRxKGN0eCwgbV9u
b25aZXJvLCB0MCkKICAgICByZXR1cm5xKGN0eCwgdDApCiAuaXNaZXJvOgogICAgIG1sb2FkcShj
dHgsIG1femVybywgdDApCiAgICAgcmV0dXJucShjdHgsIHQwKQorZWxzZQorICAgIG1sb2FkMmko
Y3R4LCBtX25vblplcm8sIHQxLCB0MCkKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKKy5pc1pl
cm86CisgICAgbWxvYWQyaShjdHgsIG1femVybywgdDEsIHQwKQorICAgIHJldHVybjJpKGN0eCwg
dDEsIHQwKQorZW5kCiBlbmQpCiAKLSMgdXNlcyBvZmZzZXQgYXMgc2NyYXRjaCBhbmQgcmV0dXJu
cyByZXN1bHQgb24gcG9pbnRlcgotbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4
LCBwb2ludGVyLCBvZmZzZXQsIHNpemUpCi0gICAgbGVhcCBzaXplIC0gMVtwb2ludGVyLCBvZmZz
ZXRdLCB0NQotICAgIGJwYiB0NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29udGludWF0aW9uCi0g
ICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCi0uY29udGludWF0aW9u
OgotICAgIGFkZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgotZW5kCi0KLW1hY3JvIGVtaXRDaGVja0Fu
ZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KGN0eCwgcG9pbnRlciwgb2Zmc2V0LCBzaXplKQot
ICAgIGxlYXAgc2l6ZSAtIDFbcG9pbnRlciwgb2Zmc2V0XSwgdDUKLSAgICBicGIgdDUsIGJvdW5k
c0NoZWNraW5nU2l6ZSwgLmNvbnRpbnVhdGlvbgotLnRocm93OgotICAgIHRocm93RXhjZXB0aW9u
KE91dE9mQm91bmRzTWVtb3J5QWNjZXNzKQotLmNvbnRpbnVhdGlvbjoKLSAgICBhZGRwIG1lbW9y
eUJhc2UsIHBvaW50ZXIKLSAgICBhZGRwIG9mZnNldCwgcG9pbnRlcgotZW5kCi0KLW1hY3JvIGVt
aXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0
eCwgcG9pbnRlciwgb2Zmc2V0LCBzaXplKQotICAgIGxlYXAgc2l6ZSAtIDFbcG9pbnRlciwgb2Zm
c2V0XSwgdDUKLSAgICBicGIgdDUsIGJvdW5kc0NoZWNraW5nU2l6ZSwgLmNvbnRpbnVhdGlvbgot
LnRocm93OgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNjZXNzKQotLmNv
bnRpbnVhdGlvbjoKLSAgICBhZGRwIG1lbW9yeUJhc2UsIHBvaW50ZXIKLSAgICBhZGRwIG9mZnNl
dCwgcG9pbnRlcgotICAgIGJ0cG56IHBvaW50ZXIsIChzaXplIC0gMSksIC50aHJvdwotZW5kCi0K
LW1hY3JvIHdhc21Mb2FkT3AobmFtZSwgc3RydWN0LCBzaXplLCBmbikKLSAgICB3YXNtT3AobmFt
ZSwgc3RydWN0LCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDAp
Ci0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBlbWl0Q2hlY2tBbmRQ
cmVwYXJlUG9pbnRlcihjdHgsIHQwLCB0MSwgc2l6ZSkKLSAgICAgICAgZm4oW3QwLCB0MV0sIHQy
KQotICAgICAgICByZXR1cm5xKGN0eCwgdDIpCi0gICAgZW5kKQotZW5kCi0KLXdhc21Mb2FkT3Ao
bG9hZDhfdSwgV2FzbUxvYWQ4VSwgMSwgbWFjcm8obWVtLCBkc3QpIGxvYWRiIG1lbSwgZHN0IGVu
ZCkKLXdhc21Mb2FkT3AobG9hZDE2X3UsIFdhc21Mb2FkMTZVLCAyLCBtYWNybyhtZW0sIGRzdCkg
bG9hZGggbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChsb2FkMzJfdSwgV2FzbUxvYWQzMlUsIDQs
IG1hY3JvKG1lbSwgZHN0KSBsb2FkaSBtZW0sIGRzdCBlbmQpCi13YXNtTG9hZE9wKGxvYWQ2NF91
LCBXYXNtTG9hZDY0VSwgOCwgbWFjcm8obWVtLCBkc3QpIGxvYWRxIG1lbSwgZHN0IGVuZCkKLQot
d2FzbUxvYWRPcChpMzJfbG9hZDhfcywgV2FzbUkzMkxvYWQ4UywgMSwgbWFjcm8obWVtLCBkc3Qp
IGxvYWRic2kgbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChpNjRfbG9hZDhfcywgV2FzbUk2NExv
YWQ4UywgMSwgbWFjcm8obWVtLCBkc3QpIGxvYWRic3EgbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRP
cChpMzJfbG9hZDE2X3MsIFdhc21JMzJMb2FkMTZTLCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGhz
aSBtZW0sIGRzdCBlbmQpCi13YXNtTG9hZE9wKGk2NF9sb2FkMTZfcywgV2FzbUk2NExvYWQxNlMs
IDIsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaHNxIG1lbSwgZHN0IGVuZCkKLXdhc21Mb2FkT3AoaTY0
X2xvYWQzMl9zLCBXYXNtSTY0TG9hZDMyUywgNCwgbWFjcm8obWVtLCBkc3QpIGxvYWRpcyBtZW0s
IGRzdCBlbmQpCi0KLW1hY3JvIHdhc21TdG9yZU9wKG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4pCi0g
ICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBt
X3BvaW50ZXIsIHQwKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAg
ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4LCB0MCwgdDEsIHNpemUpCi0gICAgICAgIG1s
b2FkcShjdHgsIG1fdmFsdWUsIHQyKQotICAgICAgICBmbih0MiwgW3QwLCB0MV0pCi0gICAgICAg
IGRpc3BhdGNoKGN0eCkKLSAgICBlbmQpCi1lbmQKLQotd2FzbVN0b3JlT3Aoc3RvcmU4LCBXYXNt
U3RvcmU4LCAxLCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZWIgdmFsdWUsIG1lbSBlbmQpCi13YXNt
U3RvcmVPcChzdG9yZTE2LCBXYXNtU3RvcmUxNiwgMiwgbWFjcm8odmFsdWUsIG1lbSkgc3RvcmVo
IHZhbHVlLCBtZW0gZW5kKQotd2FzbVN0b3JlT3Aoc3RvcmUzMiwgV2FzbVN0b3JlMzIsIDQsIG1h
Y3JvKHZhbHVlLCBtZW0pIHN0b3JlaSB2YWx1ZSwgbWVtIGVuZCkKLXdhc21TdG9yZU9wKHN0b3Jl
NjQsIFdhc21TdG9yZTY0LCA4LCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZXEgdmFsdWUsIG1lbSBl
bmQpCi0KICMgT3Bjb2RlcyB0aGF0IGRvbid0IGhhdmUgdGhlIGBiM29wYCBlbnRyeSBpbiB3YXNt
Lmpzb24uIFRoaXMgc2hvdWxkIGJlIGtlcHQgaW4gc3luYwogCi13YXNtT3AoaTMyX2Rpdl9zLCBX
YXNtSTMyRGl2UywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCi0gICAg
bWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVpl
cm8KLQotICAgIGJpbmVxIHQxLCAtMSwgLnNhZmUKLSAgICBiaWVxIHQwLCBjb25zdGV4cHIgSU5U
MzJfTUlOLCAudGhyb3dJbnRlZ2VyT3ZlcmZsb3cKLQotLnNhZmU6Ci0gICAgaWYgWDg2XzY0Ci0g
ICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXgg
YW5kIHQyIGlzIHJkeAotICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDM2OTIKLSAgICAgICAgY2RxaQotICAgICAgICBpZGl2aSB0MQotICAgIGVsc2lm
IEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgICAgIGRpdmlzIHQxLCB0MAotICAgIGVs
c2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS50aHJv
d0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotCi0u
dGhyb3dJbnRlZ2VyT3ZlcmZsb3c6Ci0gICAgdGhyb3dFeGNlcHRpb24oSW50ZWdlck92ZXJmbG93
KQotZW5kKQotCi13YXNtT3AoaTMyX2Rpdl91LCBXYXNtSTMyRGl2VSwgbWFjcm8gKGN0eCkKLSAg
ICBtbG9hZGkoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotCi0g
ICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAgIGlmIFg4Nl82NAotICAgICAg
ICB4b3JpIHQyLCB0MgotICAgICAgICB1ZGl2aSB0MQotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0
RSBvciBSSVNDVjY0Ci0gICAgICAgIGRpdmkgdDEsIHQwCi0gICAgZWxzZQotICAgICAgICBlcnJv
cgotICAgIGVuZAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLnRocm93RGl2aXNpb25CeVplcm86
Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCi1lbmQpCi0KLXdhc21PcChpMzJf
cmVtX3MsIFdhc21JMzJSZW1TLCBtYWNybyAoY3R4KQotICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0
MCkKLSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCi0KLSAgICBidGl6IHQxLCAudGhyb3dEaXZp
c2lvbkJ5WmVybwotCi0gICAgYmluZXEgdDEsIC0xLCAuc2FmZQotICAgIGJpbmVxIHQwLCBjb25z
dGV4cHIgSU5UMzJfTUlOLCAuc2FmZQotCi0gICAgbW92ZSAwLCB0MgotICAgIGptcCAucmV0dXJu
Ci0KLS5zYWZlOgotICAgIGlmIFg4Nl82NAotICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8g
c3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0MiBpcyByZHgKLSAgICAgICAgIyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCi0gICAgICAgIGNkcWkK
LSAgICAgICAgaWRpdmkgdDEKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUKLSAgICAgICAgZGl2
aXMgdDEsIHQwLCB0MgotICAgICAgICBtdWxpIHQxLCB0MgotICAgICAgICBzdWJpIHQwLCB0Miwg
dDIKLSAgICBlbHNpZiBSSVNDVjY0Ci0gICAgICAgIHJlbWlzIHQxLCB0MAotICAgIGVsc2UKLSAg
ICAgICAgZXJyb3IKLSAgICBlbmQKLQotLnJldHVybjoKLSAgICByZXR1cm5pKGN0eCwgdDIpCi0K
LS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJv
KQotZW5kKQotCi13YXNtT3AoaTMyX3JlbV91LCBXYXNtSTMyUmVtVSwgbWFjcm8gKGN0eCkKLSAg
ICBtbG9hZGkoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotCi0g
ICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAgIGlmIFg4Nl82NAotICAgICAg
ICB4b3JpIHQyLCB0MgotICAgICAgICB1ZGl2aSB0MQotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0
RQotICAgICAgICBkaXZpIHQxLCB0MCwgdDIKLSAgICAgICAgbXVsaSB0MSwgdDIKLSAgICAgICAg
c3ViaSB0MCwgdDIsIHQyCi0gICAgZWxzaWYgUklTQ1Y2NAotICAgICAgICByZW1pIHQxLCB0MAot
ICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1cm5pKGN0eCwgdDIpCi0K
LS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJv
KQotZW5kKQotCiB3YXNtT3AoaTMyX2N0eiwgV2FzbUkzMkN0eiwgbWFjcm8gKGN0eCkKLSAgICBt
bG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDAp
CiAgICAgdHpjbnRpIHQwLCB0MAogICAgIHJldHVybmkoY3R4LCB0MCkKIGVuZCkKQEAgLTExMDYs
MTQ4ICsxMDI5LDI1IEBAIHdhc21PcChpMzJfcG9wY250LCBXYXNtSTMyUG9wY250LCBtYWNybyAo
Y3R4KQogICAgIHJldHVybmkoY3R4LCByMSkKIGVuZCkKIAotd2FzbU9wKGk2NF9kaXZfcywgV2Fz
bUk2NERpdlMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1s
b2FkcShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJv
Ci0KLSAgICBicW5lcSB0MSwgLTEsIC5zYWZlCi0gICAgYnFlcSB0MCwgY29uc3RleHByIElOVDY0
X01JTiwgLnRocm93SW50ZWdlck92ZXJmbG93Ci0KLS5zYWZlOgotICAgIGlmIFg4Nl82NAotICAg
ICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFu
ZCB0MiBpcyByZHgKLSAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAzNjkyCi0gICAgICAgIGNxb3EKLSAgICAgICAgaWRpdnEgdDEKLSAgICBlbHNpZiBB
Uk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAotICAgICAgICBkaXZxcyB0MSwgdDAKLSAgICBlbHNl
Ci0gICAgICAgIGVycm9yCi0gICAgZW5kCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0udGhyb3dE
aXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLQotLnRo
cm93SW50ZWdlck92ZXJmbG93OgotICAgIHRocm93RXhjZXB0aW9uKEludGVnZXJPdmVyZmxvdykK
LWVuZCkKLQotd2FzbU9wKGk2NF9kaXZfdSwgV2FzbUk2NERpdlUsIG1hY3JvIChjdHgpCi0gICAg
bWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLQotICAg
IGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBpZiBYODZfNjQKLSAgICAgICAg
eG9ycSB0MiwgdDIKLSAgICAgICAgdWRpdnEgdDEKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUg
b3IgUklTQ1Y2NAotICAgICAgICBkaXZxIHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IK
LSAgICBlbmQKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgot
ICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotZW5kKQotCi13YXNtT3AoaTY0X3Jl
bV9zLCBXYXNtSTY0UmVtUywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDAp
Ci0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRxeiB0MSwgLnRocm93RGl2aXNp
b25CeVplcm8KLQotICAgIGJxbmVxIHQxLCAtMSwgLnNhZmUKLSAgICBicW5lcSB0MCwgY29uc3Rl
eHByIElOVDY0X01JTiwgLnNhZmUKLQotICAgIG1vdmUgMCwgdDIKLSAgICBqbXAgLnJldHVybgot
Ci0uc2FmZToKLSAgICBpZiBYODZfNjQKLSAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0
YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4Ci0gICAgICAgICMgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgotICAgICAgICBjcW9xCi0g
ICAgICAgIGlkaXZxIHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCi0gICAgICAgIGRpdnFz
IHQxLCB0MCwgdDIKLSAgICAgICAgbXVscSB0MSwgdDIKLSAgICAgICAgc3VicSB0MCwgdDIsIHQy
Ci0gICAgZWxzaWYgUklTQ1Y2NAotICAgICAgICByZW1xcyB0MSwgdDAKLSAgICBlbHNlCi0gICAg
ICAgIGVycm9yCi0gICAgZW5kCi0KLS5yZXR1cm46Ci0gICAgcmV0dXJucShjdHgsIHQyKSAjIHJk
eCBoYXMgdGhlIHJlbWFpbmRlcgotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4
Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLWVuZCkKLQotd2FzbU9wKGk2NF9yZW1fdSwgV2FzbUk2
NFJlbVUsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2Fk
cShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCi0K
LSAgICBpZiBYODZfNjQKLSAgICAgICAgeG9ycSB0MiwgdDIKLSAgICAgICAgdWRpdnEgdDEKLSAg
ICBlbHNpZiBBUk02NCBvciBBUk02NEUKLSAgICAgICAgZGl2cSB0MSwgdDAsIHQyCi0gICAgICAg
IG11bHEgdDEsIHQyCi0gICAgICAgIHN1YnEgdDAsIHQyLCB0MgotICAgIGVsc2lmIFJJU0NWNjQK
LSAgICAgICAgcmVtcSB0MSwgdDAKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0g
ICAgcmV0dXJucShjdHgsIHQyKQotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4
Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLWVuZCkKLQotd2FzbU9wKGk2NF9jdHosIFdhc21JNjRD
dHosIG1hY3JvIChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICB0emNu
dHEgdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3BvcGNu
dCwgV2FzbUk2NFBvcGNudCwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQs
IGExKQotICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKLSAgICBtb3ZlIFBDLCBhMAotICAgIGND
YWxsMihfc2xvd19wYXRoX3dhc21fcG9wY291bnRsbCkKLSAgICByZXN0b3JlU3RhdGVBZnRlckND
YWxsKCkKLSAgICByZXR1cm5xKGN0eCwgcjEpCi1lbmQpCi0KLXdhc21PcChmMzJfdHJ1bmMsIFdh
c21GMzJUcnVuYywgbWFjcm8gKGN0eCkKK3dhc21Sb3VuZGluZ09wKGYzMl90cnVuYywgV2FzbUYz
MlRydW5jLCBtYWNybyAoY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAg
IHRydW5jYXRlZiBmdDAsIGZ0MAogICAgIHJldHVybmYoY3R4LCBmdDApCiBlbmQpCiAKLXdhc21P
cChmMzJfbmVhcmVzdCwgV2FzbUYzMk5lYXJlc3QsIG1hY3JvIChjdHgpCit3YXNtUm91bmRpbmdP
cChmMzJfbmVhcmVzdCwgV2FzbUYzMk5lYXJlc3QsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRmKGN0
eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgcm91bmRmIGZ0MCwgZnQwCiAgICAgcmV0dXJuZihjdHgs
IGZ0MCkKIGVuZCkKIAotd2FzbU9wKGY2NF90cnVuYywgV2FzbUY2NFRydW5jLCBtYWNybyAoY3R4
KQord2FzbVJvdW5kaW5nT3AoZjY0X3RydW5jLCBXYXNtRjY0VHJ1bmMsIG1hY3JvIChjdHgpCiAg
ICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgdHJ1bmNhdGVkIGZ0MCwgZnQwCiAg
ICAgcmV0dXJuZChjdHgsIGZ0MCkKIGVuZCkKIAotd2FzbU9wKGY2NF9uZWFyZXN0LCBXYXNtRjY0
TmVhcmVzdCwgbWFjcm8gKGN0eCkKK3dhc21Sb3VuZGluZ09wKGY2NF9uZWFyZXN0LCBXYXNtRjY0
TmVhcmVzdCwgbWFjcm8gKGN0eCkKICAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKICAg
ICByb3VuZGQgZnQwLCBmdDAKICAgICByZXR1cm5kKGN0eCwgZnQwKQpAQCAtMTI3MSwyNCArMTA3
MSw2IEBAIHdhc21PcChpMzJfdHJ1bmNfc19mMzIsIFdhc21JMzJUcnVuY1NGMzIsIG1hY3JvIChj
dHgpCiAgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKIGVuZCkKIAotd2FzbU9w
KGkzMl90cnVuY19zX2Y2NCwgV2FzbUkzMlRydW5jU0Y2NCwgbWFjcm8gKGN0eCkKLSAgICBtbG9h
ZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhjMWUwMDAwMDAwMjAwMDAwLCB0
MCAjIElOVDMyX01JTiAtIDEuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVuIGZ0MCwg
ZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgbW92ZSAweDQxZTAwMDAwMDAwMDAwMDAsIHQw
ICMgLUlOVDMyX01JTgotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAu
b3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgdHJ1bmNhdGVkMmlzIGZ0MCwgdDAKLSAgICByZXR1cm5p
KGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0aW9uKE91dE9m
Qm91bmRzVHJ1bmMpCi1lbmQpCi0KIHdhc21PcChpMzJfdHJ1bmNfdV9mMzIsIFdhc21JMzJUcnVu
Y1VGMzIsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAKQEAg
LTEzMDcsOTYgKzEwODksNiBAQCB3YXNtT3AoaTMyX3RydW5jX3VfZjMyLCBXYXNtSTMyVHJ1bmNV
RjMyLCBtYWNybyAoY3R4KQogICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCiBl
bmQpCiAKLXdhc21PcChpMzJfdHJ1bmNfdV9mNjQsIFdhc21JMzJUcnVuY1VGNjQsIG1hY3JvIChj
dHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YmZmMDAw
MDAwMDAwMDAwMCwgdDAgIyAtMS4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICBtb3ZlIDB4NDFmMDAwMDAwMDAwMDAwMCwg
dDAgIyBJTlQzMl9NSU4gKiAtMi4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICB0cnVuY2F0ZWQyaSBmdDAsIHQwCi0gICAg
cmV0dXJuaShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJvd0V4Y2VwdGlv
bihPdXRPZkJvdW5kc1RydW5jKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3NfZjMyLCBXYXNt
STY0VHJ1bmNTRjMyLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQw
KQotCi0gICAgbW92ZSAweGRmMDAwMDAwLCB0MCAjIElOVDY0X01JTgotICAgIGZpMmYgdDAsIGZ0
MQotICAgIGJmbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIG1vdmUgMHg1
ZjAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCi0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZndGVxdW4g
ZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICB0cnVuY2F0ZWYycXMgZnQwLCB0MAot
ICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dFeGNl
cHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY19zX2Y2NCwg
V2FzbUk2NFRydW5jU0Y2NCwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQs
IGZ0MCkKLQotICAgIG1vdmUgMHhjM2UwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDY0X01JTgotICAg
IGZxMmQgdDAsIGZ0MQotICAgIGJkbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQot
ICAgIG1vdmUgMHg0M2UwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KLSAgICBmcTJkIHQw
LCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIHRy
dW5jYXRlZDJxcyBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNU
cnVuYzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQotZW5kKQotCi13YXNt
T3AoaTY0X3RydW5jX3VfZjMyLCBXYXNtSTY0VHJ1bmNVRjMyLCBtYWNybyAoY3R4KQotICAgIG1s
b2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGJmODAwMDAwLCB0MCAjIC0x
LjAKLSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmMKLQotICAgIG1vdmUgMHg1ZjgwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCi0gICAg
ZmkyZiB0MCwgZnQxCi0gICAgYmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0K
LSAgICB0cnVuY2F0ZWYycSBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZC
b3VuZHNUcnVuYzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQotZW5kKQot
Ci13YXNtT3AoaTY0X3RydW5jX3VfZjY0LCBXYXNtSTY0VHJ1bmNVRjY0LCBtYWNybyAoY3R4KQot
ICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGJmZjAwMDAwMDAw
MDAwMDAsIHQwICMgLTEuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVuIGZ0MCwgZnQx
LCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgbW92ZSAweDQzZjAwMDAwMDAwMDAwMDAsIHQwICMg
SU5UNjRfTUlOICogLTIuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQx
LCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgdHJ1bmNhdGVkMnEgZnQwLCB0MAotICAgIHJldHVy
bnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dFeGNlcHRpb24oT3V0
T2ZCb3VuZHNUcnVuYykKLWVuZCkKLQogd2FzbU9wKGkzMl90cnVuY19zYXRfZjMyX3MsIFdhc21J
MzJUcnVuY1NhdEYzMlMsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBm
dDApCiAKQEAgLTE0MjUsMzQgKzExMTcsNiBAQCB3YXNtT3AoaTMyX3RydW5jX3NhdF9mMzJfcywg
V2FzbUkzMlRydW5jU2F0RjMyUywgbWFjcm8gKGN0eCkKICAgICByZXR1cm5pKGN0eCwgdDApCiBl
bmQpCiAKLXdhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTMyVHJ1bmNTYXRGNjRTLCBt
YWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAw
eGMxZTAwMDAwMDAyMDAwMDAsIHQwICMgSU5UMzJfTUlOIC0gMS4wCi0gICAgZnEyZCB0MCwgZnQx
Ci0gICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU4KLQot
ICAgIG1vdmUgMHg0MWUwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQzMl9NSU4KLSAgICBmcTJkIHQw
LCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQot
ICAgIHRydW5jYXRlZDJpcyBmdDAsIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotCi0ub3V0T2ZC
b3VuZHNUcnVuY1NhdE1pbk9yTmFOOgotICAgIGJkZXEgZnQwLCBmdDAsIC5vdXRPZkJvdW5kc1Ry
dW5jU2F0TWluCi0gICAgbW92ZSAwLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9m
Qm91bmRzVHJ1bmNTYXRNYXg6Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDMyX01BWCksIHQwCi0g
ICAgcmV0dXJuaShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKLSAgICBtb3Zl
IChjb25zdGV4cHIgSU5UMzJfTUlOKSwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi1lbmQpCi0K
IHdhc21PcChpMzJfdHJ1bmNfc2F0X2YzMl91LCBXYXNtSTMyVHJ1bmNTYXRGMzJVLCBtYWNybyAo
Y3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogCkBAIC0xNDc2LDE1MiArMTE0
MCwyMiBAQCB3YXNtT3AoaTMyX3RydW5jX3NhdF9mMzJfdSwgV2FzbUkzMlRydW5jU2F0RjMyVSwg
bWFjcm8gKGN0eCkKICAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCiAKLXdhc21PcChpMzJfdHJ1
bmNfc2F0X2Y2NF91LCBXYXNtSTMyVHJ1bmNTYXRGNjRVLCBtYWNybyAoY3R4KQotICAgIG1sb2Fk
ZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGJmZjAwMDAwMDAwMDAwMDAsIHQw
ICMgLTEuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZC
b3VuZHNUcnVuY1NhdE1pbgotCi0gICAgbW92ZSAweDQxZjAwMDAwMDAwMDAwMDAsIHQwICMgSU5U
MzJfTUlOICogLTIuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAotICAgIHJl
dHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46Ci0gICAgbW92ZSAwLCB0
MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6Ci0gICAg
bW92ZSAoY29uc3RleHByIFVJTlQzMl9NQVgpLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLWVu
ZCkKLQotd2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3MsIFdhc21JNjRUcnVuY1NhdEYzMlMsIG1h
Y3JvIChjdHgpCi0gICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4
ZGYwMDAwMDAsIHQwICMgSU5UNjRfTUlOCi0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZsdHVuIGZ0
MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOCi0KLSAgICBtb3ZlIDB4NWYwMDAw
MDAsIHQwICMgLUlOVDY0X01JTgotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmZ3RlcXVuIGZ0MCwg
ZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVmMnFzIGZ0MCwgdDAK
LSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU46Ci0g
ICAgYmZlcSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KLSAgICBtb3ZlIDAsIHQw
Ci0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKLSAgICBt
b3ZlIChjb25zdGV4cHIgSU5UNjRfTUFYKSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5v
dXRPZkJvdW5kc1RydW5jU2F0TWluOgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9NSU4pLCB0
MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY19zYXRfZjY0
X3MsIFdhc21JNjRUcnVuY1NhdEY2NFMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9v
cGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YzNlMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9N
SU4KLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1Ry
dW5jU2F0TWluT3JOYU4KLQotICAgIG1vdmUgMHg0M2UwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQ2
NF9NSU4KLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91
bmRzVHJ1bmNTYXRNYXgKLQotICAgIHRydW5jYXRlZDJxcyBmdDAsIHQwCi0gICAgcmV0dXJucShj
dHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgotICAgIGJkZXEgZnQwLCBm
dDAsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCi0gICAgbW92ZSAwLCB0MAotICAgIHJldHVybnEo
Y3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6Ci0gICAgbW92ZSAoY29uc3RleHBy
IElOVDY0X01BWCksIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1pbjoKLSAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUlOKSwgdDAKLSAgICByZXR1cm5x
KGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl91LCBXYXNtSTY0VHJ1
bmNTYXRGMzJVLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQot
Ci0gICAgbW92ZSAweGJmODAwMDAwLCB0MCAjIC0xLjAKLSAgICBmaTJmIHQwLCBmdDEKLSAgICBi
Zmx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KLQotICAgIG1vdmUgMHg1
ZjgwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCi0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZn
dGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWYy
cSBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1p
bjoKLSAgICBtb3ZlIDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNU
cnVuY1NhdE1heDoKLSAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDY0X01BWCksIHQwCi0gICAgcmV0
dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3NhdF9mNjRfdSwgV2FzbUk2
NFRydW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0
MCkKLQotICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKLSAgICBmcTJkIHQw
LCBmdDEKLSAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KLQot
ICAgIG1vdmUgMHg0M2YwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDY0X01JTiAqIC0yLjAKLSAgICBm
cTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRN
YXgKLQotICAgIHRydW5jYXRlZDJxIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5v
dXRPZkJvdW5kc1RydW5jU2F0TWluOgotICAgIG1vdmUgMCwgdDAKLSAgICByZXR1cm5xKGN0eCwg
dDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5U
NjRfTUFYKSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLQotd2FzbU9wKGYzMl9j
b252ZXJ0X3VfaTY0LCBXYXNtRjMyQ29udmVydFVJNjQsIG1hY3JvIChjdHgpCit3YXNtSTY0VG9G
T3AoZjMyX2NvbnZlcnRfdV9pNjQsIFdhc21GMzJDb252ZXJ0VUk2NCwgbWFjcm8gKGN0eCkKICAg
ICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQogICAgIGlmIFg4Nl82NAogICAgICAgICBjcTJm
IHQwLCB0MSwgZnQwCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKLSAgICAg
ICAgY3EyZiB0MCwgZnQwCiAgICAgZWxzZQotICAgICAgICBlcnJvcgorICAgICAgICBjcTJmIHQw
LCBmdDAKICAgICBlbmQKICAgICByZXR1cm5mKGN0eCwgZnQwKQogZW5kKQogCi13YXNtT3AoZjY0
X2NvbnZlcnRfdV9pNjQsIFdhc21GNjRDb252ZXJ0VUk2NCwgbWFjcm8gKGN0eCkKK3dhc21JNjRU
b0ZPcChmNjRfY29udmVydF91X2k2NCwgV2FzbUY2NENvbnZlcnRVSTY0LCBtYWNybyAoY3R4KQog
ICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAgaWYgWDg2XzY0CiAgICAgICAgIGNx
MmQgdDAsIHQxLCBmdDAKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAotICAg
ICAgICBjcTJkIHQwLCBmdDAKICAgICBlbHNlCi0gICAgICAgIGVycm9yCisgICAgICAgIGNxMmQg
dDAsIGZ0MAogICAgIGVuZAogICAgIHJldHVybmQoY3R4LCBmdDApCiBlbmQpCkBAIC0xNjMyLDQ3
ICsxMTY2LDYgQEAgd2FzbU9wKGkzMl9lcXosIFdhc21JMzJFcXosIG1hY3JvKGN0eCkKICAgICBy
ZXR1cm5pKGN0eCwgdDApCiBlbmQpCiAKLXdhc21PcChpNjRfc2hsLCBXYXNtSTY0U2hsLCBtYWNy
byhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhz
LCB0MSkKLSAgICBsc2hpZnRxIHQxLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQot
d2FzbU9wKGk2NF9zaHJfdSwgV2FzbUk2NFNoclUsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4
LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotICAgIHVyc2hpZnRxIHQx
LCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9zaHJfcywgV2Fz
bUk2NFNoclMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxv
YWRpKGN0eCwgbV9yaHMsIHQxKQotICAgIHJzaGlmdHEgdDEsIHQwCi0gICAgcmV0dXJucShjdHgs
IHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3JvdHIsIFdhc21JNjRSb3RyLCBtYWNybyhjdHgpCi0g
ICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLSAg
ICBycm90YXRlcSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChp
NjRfcm90bCwgV2FzbUk2NFJvdGwsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywg
dDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotICAgIGxyb3RhdGVxIHQxLCB0MAotICAg
IHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9lcXosIFdhc21JNjRFcXosIG1h
Y3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIGNxZXEgdDAsIDAs
IHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotZW5kKQotCiB3YXNtT3AoZjMyX21pbiwgV2FzbUYz
Mk1pbiwgbWFjcm8oY3R4KQogICAgIG1sb2FkZihjdHgsIG1fbGhzLCBmdDApCiAgICAgbWxvYWRm
KGN0eCwgbV9yaHMsIGZ0MSkKQEAgLTE3ODIsMjMgKzEyNzUsNiBAQCB3YXNtT3AoZjY0X21heCwg
V2FzbUY2NE1heCwgbWFjcm8oY3R4KQogICAgIHJldHVybmQoY3R4LCBmdDEpCiBlbmQpCiAKLXdh
c21PcChmNjRfY29weXNpZ24sIFdhc21GNjRDb3B5c2lnbiwgbWFjcm8oY3R4KQotICAgIG1sb2Fk
ZChjdHgsIG1fbGhzLCBmdDApCi0gICAgbWxvYWRkKGN0eCwgbV9yaHMsIGZ0MSkKLQotICAgIGZk
MnEgZnQxLCB0MQotICAgIG1vdmUgMHg4MDAwMDAwMDAwMDAwMDAwLCB0MgotICAgIGFuZHEgdDIs
IHQxCi0KLSAgICBmZDJxIGZ0MCwgdDAKLSAgICBtb3ZlIDB4N2ZmZmZmZmZmZmZmZmZmZiwgdDIK
LSAgICBhbmRxIHQyLCB0MAotCi0gICAgb3JxIHQxLCB0MAotICAgIGZxMmQgdDAsIGZ0MAotICAg
IHJldHVybmQoY3R4LCBmdDApCi1lbmQpCi0KIHdhc21PcChmMzJfY29udmVydF91X2kzMiwgV2Fz
bUYzMkNvbnZlcnRVSTMyLCBtYWNybyhjdHgpCiAgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0
MCkKICAgICBjaTJmIHQwLCBmdDAKQEAgLTE5NzQsMTM0ICsxNDUwLDYgQEAgd2FzbU9wKGkzMl9j
bHosIFdhc21JMzJDbHosIG1hY3JvKGN0eCkKICAgICByZXR1cm5pKGN0eCwgdDEpCiBlbmQpCiAK
LXdhc21PcChpNjRfYWRkLCBXYXNtSTY0QWRkLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwg
bV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBhZGRxIHQwLCB0MQot
ICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9zdWIsIFdhc21JNjRTdWIs
IG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwg
bV9yaHMsIHQxKQotICAgIHN1YnEgdDEsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQot
Ci13YXNtT3AoaTY0X211bCwgV2FzbUk2NE11bCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgs
IG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgbXVscSB0MCwgdDEK
LSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfYW5kLCBXYXNtSTY0QW5k
LCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgs
IG1fcmhzLCB0MSkKLSAgICBhbmRxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkK
LQotd2FzbU9wKGk2NF9vciwgV2FzbUk2NE9yLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwg
bV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBvcnEgdDAsIHQxCi0g
ICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X3hvciwgV2FzbUk2NFhvciwg
bWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBt
X3JocywgdDEpCi0gICAgeG9ycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0K
LXdhc21PcChpNjRfZXEsIFdhc21JNjRFcSwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1f
bGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FlcSB0MCwgdDEsIHQy
Ci0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2
NF9uZSwgV2FzbUk2NE5lLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQot
ICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcW5lcSB0MCwgdDEsIHQyCi0gICAgYW5k
aSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9sdF9zLCBX
YXNtSTY0THRTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1s
b2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWx0IHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQy
Ci0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2xlX3MsIFdhc21JNjRM
ZVMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0
eCwgbV9yaHMsIHQxKQotICAgIGNxbHRlcSB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAg
IHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9sdF91LCBXYXNtSTY0THRVLCBt
YWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1f
cmhzLCB0MSkKLSAgICBjcWIgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5p
KGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfbGVfdSwgV2FzbUk2NExlVSwgbWFjcm8oY3R4
KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEp
Ci0gICAgY3FiZXEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwg
dDIpCi1lbmQpCi0KLXdhc21PcChpNjRfZ3RfcywgV2FzbUk2NEd0UywgbWFjcm8oY3R4KQotICAg
IG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAg
Y3FndCB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVu
ZCkKLQotd2FzbU9wKGk2NF9nZV9zLCBXYXNtSTY0R2VTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRx
KGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWd0ZXEg
dDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0K
LXdhc21PcChpNjRfZ3RfdSwgV2FzbUk2NEd0VSwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgs
IG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FhIHQwLCB0MSwg
dDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3Ao
aTY0X2dlX3UsIFdhc21JNjRHZVUsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywg
dDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxYWVxIHQwLCB0MSwgdDIKLSAg
ICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2Ns
eiwgV2FzbUk2NENseiwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDAp
Ci0gICAgbHpjbnRxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQogd2FzbU9w
KGYzMl9hZGQsIFdhc21GMzJBZGQsIG1hY3JvKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX2xocywg
ZnQwKQogICAgIG1sb2FkZihjdHgsIG1fcmhzLCBmdDEpCkBAIC0yMTQyLDEzICsxNDkwLDEzIEBA
IHdhc21PcChmMzJfbmVnLCBXYXNtRjMyTmVnLCBtYWNybyhjdHgpCiAgICAgcmV0dXJuZihjdHgs
IGZ0MSkKIGVuZCkKIAotd2FzbU9wKGYzMl9jZWlsLCBXYXNtRjMyQ2VpbCwgbWFjcm8oY3R4KQor
d2FzbVJvdW5kaW5nT3AoZjMyX2NlaWwsIFdhc21GMzJDZWlsLCBtYWNybyhjdHgpCiAgICAgbWxv
YWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgY2VpbGYgZnQwLCBmdDEKICAgICByZXR1cm5m
KGN0eCwgZnQxKQogZW5kKQogCi13YXNtT3AoZjMyX2Zsb29yLCBXYXNtRjMyRmxvb3IsIG1hY3Jv
KGN0eCkKK3dhc21Sb3VuZGluZ09wKGYzMl9mbG9vciwgV2FzbUYzMkZsb29yLCBtYWNybyhjdHgp
CiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgZmxvb3JmIGZ0MCwgZnQxCiAg
ICAgcmV0dXJuZihjdHgsIGZ0MSkKQEAgLTIyNDIsMTMgKzE1OTAsMTMgQEAgd2FzbU9wKGY2NF9u
ZWcsIFdhc21GNjROZWcsIG1hY3JvKGN0eCkKICAgICByZXR1cm5kKGN0eCwgZnQxKQogZW5kKQog
Ci13YXNtT3AoZjY0X2NlaWwsIFdhc21GNjRDZWlsLCBtYWNybyhjdHgpCit3YXNtUm91bmRpbmdP
cChmNjRfY2VpbCwgV2FzbUY2NENlaWwsIG1hY3JvKGN0eCkKICAgICBtbG9hZGQoY3R4LCBtX29w
ZXJhbmQsIGZ0MCkKICAgICBjZWlsZCBmdDAsIGZ0MQogICAgIHJldHVybmQoY3R4LCBmdDEpCiBl
bmQpCiAKLXdhc21PcChmNjRfZmxvb3IsIFdhc21GNjRGbG9vciwgbWFjcm8oY3R4KQord2FzbVJv
dW5kaW5nT3AoZjY0X2Zsb29yLCBXYXNtRjY0Rmxvb3IsIG1hY3JvKGN0eCkKICAgICBtbG9hZGQo
Y3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICBmbG9vcmQgZnQwLCBmdDEKICAgICByZXR1cm5kKGN0
eCwgZnQxKQpAQCAtMjMwMyw1MCArMTY1MSwyMCBAQCB3YXNtT3AoZjY0X2dlLCBXYXNtRjY0R2Us
IG1hY3JvKGN0eCkKIGVuZCkKIAogd2FzbU9wKGkzMl93cmFwX2k2NCwgV2FzbUkzMldyYXBJNjQs
IG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIG1sb2FkaShj
dHgsIG1fb3BlcmFuZCwgdDApCiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQogCi13YXNtT3Ao
aTY0X2V4dGVuZF9zX2kzMiwgV2FzbUk2NEV4dGVuZFNJMzIsIG1hY3JvKGN0eCkKLSAgICBtbG9h
ZGkoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIHN4aTJxIHQwLCB0MQotICAgIHJldHVybnEoY3R4
LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9leHRlbmRfdV9pMzIsIFdhc21JNjRFeHRlbmRVSTMy
LCBtYWNybyhjdHgpCi0gICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICB6eGkycSB0
MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KIHdhc21PcChpMzJfZXh0ZW5kOF9z
LCBXYXNtSTMyRXh0ZW5kOFMsIG1hY3JvKGN0eCkKICAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQs
IHQwKQogICAgIHN4YjJpIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKKyAgICByZXR1cm5p
KGN0eCwgdDEpCiBlbmQpCiAKIHdhc21PcChpMzJfZXh0ZW5kMTZfcywgV2FzbUkzMkV4dGVuZDE2
UywgbWFjcm8oY3R4KQogICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAgc3hoMmkg
dDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X2V4dGVuZDhf
cywgV2FzbUk2NEV4dGVuZDhTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5k
LCB0MCkKLSAgICBzeGIycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdh
c21PcChpNjRfZXh0ZW5kMTZfcywgV2FzbUk2NEV4dGVuZDE2UywgbWFjcm8oY3R4KQotICAgIG1s
b2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgc3hoMnEgdDAsIHQxCi0gICAgcmV0dXJucShj
dHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X2V4dGVuZDMyX3MsIFdhc21JNjRFeHRlbmQxNlMs
IG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIHN4aTJxIHQw
LCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKKyAgICByZXR1cm5pKGN0eCwgdDEpCiBlbmQpCiAK
IHdhc21PcChmMzJfY29udmVydF9zX2kzMiwgV2FzbUYzMkNvbnZlcnRTSTMyLCBtYWNybyhjdHgp
CkBAIC0yMzU1LDcgKzE2NzMsNyBAQCB3YXNtT3AoZjMyX2NvbnZlcnRfc19pMzIsIFdhc21GMzJD
b252ZXJ0U0kzMiwgbWFjcm8oY3R4KQogICAgIHJldHVybmYoY3R4LCBmdDApCiBlbmQpCiAKLXdh
c21PcChmMzJfY29udmVydF9zX2k2NCwgV2FzbUYzMkNvbnZlcnRTSTY0LCBtYWNybyhjdHgpCit3
YXNtSTY0VG9GT3AoZjMyX2NvbnZlcnRfc19pNjQsIFdhc21GMzJDb252ZXJ0U0k2NCwgbWFjcm8o
Y3R4KQogICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAgY3EyZnMgdDAsIGZ0MAog
ICAgIHJldHVybmYoY3R4LCBmdDApCkBAIC0yMzc5LDcgKzE2OTcsNyBAQCB3YXNtT3AoZjY0X2Nv
bnZlcnRfc19pMzIsIFdhc21GNjRDb252ZXJ0U0kzMiwgbWFjcm8oY3R4KQogICAgIHJldHVybmQo
Y3R4LCBmdDApCiBlbmQpCiAKLXdhc21PcChmNjRfY29udmVydF9zX2k2NCwgV2FzbUY2NENvbnZl
cnRTSTY0LCBtYWNybyhjdHgpCit3YXNtSTY0VG9GT3AoZjY0X2NvbnZlcnRfc19pNjQsIFdhc21G
NjRDb252ZXJ0U0k2NCwgbWFjcm8oY3R4KQogICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDAp
CiAgICAgY3EyZHMgdDAsIGZ0MAogICAgIHJldHVybmQoY3R4LCBmdDApCkBAIC0yMzkxLDM0ICsx
NzA5LDI5IEBAIHdhc21PcChmNjRfcHJvbW90ZV9mMzIsIFdhc21GNjRQcm9tb3RlRjMyLCBtYWNy
byhjdHgpCiAgICAgcmV0dXJuZChjdHgsIGZ0MSkKIGVuZCkKIAotd2FzbU9wKGY2NF9yZWludGVy
cHJldF9pNjQsIFdhc21GNjRSZWludGVycHJldEk2NCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShj
dHgsIG1fb3BlcmFuZCwgdDApCi0gICAgZnEyZCB0MCwgZnQwCi0gICAgcmV0dXJuZChjdHgsIGZ0
MCkKLWVuZCkKLQogd2FzbU9wKGkzMl9yZWludGVycHJldF9mMzIsIFdhc21JMzJSZWludGVycHJl
dEYzMiwgbWFjcm8oY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIGZm
MmkgZnQwLCB0MAogICAgIHJldHVybmkoY3R4LCB0MCkKIGVuZCkKIAotd2FzbU9wKGk2NF9yZWlu
dGVycHJldF9mNjQsIFdhc21JNjRSZWludGVycHJldEY2NCwgbWFjcm8oY3R4KQotICAgIG1sb2Fk
ZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotICAgIGZkMnEgZnQwLCB0MAotICAgIHJldHVybnEoY3R4
LCB0MCkKLWVuZCkKLQogbWFjcm8gZHJvcEtlZXAoc3RhcnRPZmZzZXQsIGRyb3AsIGtlZXApCiAg
ICAgbHNoaWZ0aSAzLCBzdGFydE9mZnNldAogICAgIHN1YnAgY2ZyLCBzdGFydE9mZnNldCwgc3Rh
cnRPZmZzZXQKICAgICBuZWdpIGRyb3AKK2lmIEpTVkFMVUU2NAogICAgIHN4aTJxIGRyb3AsIGRy
b3AKK2VuZAogCiAuY29weUxvb3A6CiAgICAgYnRpeiBrZWVwLCAuZG9uZQoraWYgSlNWQUxVRTY0
CiAgICAgbG9hZHEgW3N0YXJ0T2Zmc2V0LCBkcm9wLCA4XSwgdDYKICAgICBzdG9yZXEgdDYsIFtz
dGFydE9mZnNldF0KK2Vsc2UKKyAgICBsb2FkMmlhIFtzdGFydE9mZnNldCwgZHJvcCwgOF0sIHQ1
LCB0NgorICAgIHN0b3JlMmlhIHQ1LCB0NiwgW3N0YXJ0T2Zmc2V0XQorZW5kCiAgICAgc3ViaSAx
LCBrZWVwCiAgICAgc3VicCA4LCBzdGFydE9mZnNldAogICAgIGptcCAuY29weUxvb3AKQEAgLTI0
MzYsMzg5ICsxNzQ5LDYgQEAgd2FzbU9wKGRyb3Bfa2VlcCwgV2FzbURyb3BLZWVwLCBtYWNybyhj
dHgpCiAgICAgZGlzcGF0Y2goY3R4KQogZW5kKQogCi1tYWNybyB3YXNtQXRvbWljQmluYXJ5Uk1X
T3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIsIGZuaCwgZm5pLCBmbnEp
Ci0gICAgd2FzbU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRB
dG9taWNSbXc4JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShj
dHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAg
ICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFy
ZVBvaW50ZXJBZGRpbmdPZmZzZXQoY3R4LCB0MywgdDEsIDEpCi0gICAgICAgIGZuYih0MCwgW3Qz
XSwgdDIsIHQ1LCB0MSkKLSAgICAgICAgYW5kcSAweGZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5k
OFRvNjQKLSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZiwgLm9rIGVuZCkK
LSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAgICB3YXNtT3AoaTY0X2F0b21p
Y19ybXcxNiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXcxNiV1cHBlckNhc2VP
cGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQot
ICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92
YWx1ZSwgdDApCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0
V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCAyKQotICAgICAgICBmbmgodDAsIFt0M10s
IHQyLCB0NSwgdDEpCi0gICAgICAgIGFuZHEgMHhmZmZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5k
MTZUbzY0Ci0gICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmZmZiwgLm9rIGVu
ZCkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAgICB3YXNtT3AoaTY0X2F0
b21pY19ybXczMiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXczMiV1cHBlckNh
c2VPcGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQz
KQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxvYWRxKGN0eCwg
bV92YWx1ZSwgdDApCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zm
c2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA0KQotICAgICAgICBmbmkodDAsIFt0
M10sIHQyLCB0NSwgdDEpCi0gICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmZm
ZmZmZmYsIC5vayBlbmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi0gICAg
d2FzbU9wKGk2NF9hdG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21JNjRBdG9taWNSbXcl
dXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50
ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxvYWRx
KGN0eCwgbV92YWx1ZSwgdDApCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRk
aW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA4KQotICAgICAgICBmbnEo
dDAsIFt0M10sIHQyLCB0NSwgdDEpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQp
Ci1lbmQKLQotbWFjcm8gd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKGxvd2VyQ2Fz
ZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmksIGZucSkKLSAgICB3YXNtQXRvbWljQmluYXJ5
Uk1XT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLAotICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgaWYgWDg2XzY0Ci0g
ICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKLSAgICAgICAgICAgICAgICBsb2FkYiBt
ZW0sIHQwR1BSCi0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BS
LCB0MkdQUgotICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAg
ICAgYmF0b21pY3dlYWtjYXNiIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAotICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbG9hZGxpbmthY3FiIG1l
bSwgdDFHUFIKLSAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAg
ICAgICAgICAgICBzdG9yZWNvbmRyZWxiIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICAg
ICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCi0gICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBH
UFIKLSAgICAgICAgICAgIGVuZAotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBpZiBYODZfNjQKLSAgICAgICAg
ICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgotICAgICAgICAgICAgICAgIGxvYWRoIG1lbSwgdDBH
UFIKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BS
Ci0gICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgICAgICBiYXRv
bWljd2Vha2Nhc2ggdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCi0gICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBsb2FkbGlua2FjcWggbWVtLCB0MUdQ
UgotICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAg
ICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgICAgICBiaW5l
cSB0NUdQUiwgMCwgLmxvb3AKLSAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAg
ICAgICAgICAgZW5kCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJH
UFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIGlmIFg4Nl82NAotICAgICAgICAgICAgICAg
IG1vdmUgdDBHUFIsIHQ1R1BSCi0gICAgICAgICAgICAgICAgbG9hZGkgbWVtLCB0MEdQUgotICAg
ICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKLSAgICAg
ICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgICAgIGJhdG9taWN3ZWFr
Y2FzaSB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIC5sb29wOgotICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxaSBtZW0sIHQxR1BSCi0gICAg
ICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAgICAgc3Rv
cmVjb25kcmVsaSB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BS
LCAwLCAubG9vcAotICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0gICAgICAgICAg
ICBlbmQKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVH
UFIsIHQxR1BSKQotICAgICAgICAgICAgaWYgWDg2XzY0Ci0gICAgICAgICAgICAgICAgbW92ZSB0
MEdQUiwgdDVHUFIKLSAgICAgICAgICAgICAgICBsb2FkcSBtZW0sIHQwR1BSCi0gICAgICAgICAg
ICAubG9vcDoKLSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgotICAgICAgICAgICAg
ICAgIGZucSh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAgICAgYmF0b21pY3dlYWtjYXNxIHQw
R1BSLCB0MkdQUiwgbWVtLCAubG9vcAotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgLmxv
b3A6Ci0gICAgICAgICAgICAgICAgbG9hZGxpbmthY3FxIG1lbSwgdDFHUFIKLSAgICAgICAgICAg
ICAgICBmbnEodDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgICAgICBzdG9yZWNvbmRy
ZWxxIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5s
b29wCi0gICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAgICAgICAgICAgIGVuZAot
ICAgICAgICBlbmQpCi1lbmQKLQotaWYgWDg2XzY0Ci0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09w
cyhfYWRkLCBBZGQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFH
UFIpIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaCB0MEdQUiwgbWVtIGVuZCwK
LSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNo
Z2FkZGkgdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRxIHQwR1BSLCBtZW0gZW5kKQotICAgIHdhc21BdG9t
aWNCaW5hcnlSTVdPcHMoX3N1YiwgU3ViLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQ
UiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3ViYiB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAg
bWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1YmggdDBH
UFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFH
UFIpIGF0b21pY3hjaGdzdWJpIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3VicSB0MEdQUiwgbWVtIGVuZCkK
LSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94Y2hnLCBYY2hnLAotICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYiB0MEdQUiwgbWVtIGVu
ZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWlj
eGNoZ2ggdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdpIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hncSB0MEdQUiwgbWVtIGVu
ZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FuZCwgQW5kLAotICAg
ICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBhbmRpIHQ1R1BSLCB0MkdQUgot
ICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgIGFu
ZHEgdDVHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3Bz
V2l0aFdlYWtDQVMoX29yLCBPciwKLSAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAg
ICAgICAgb3JpIHQ1R1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQ1R1BS
LCB0MkdQUikKLSAgICAgICAgICAgIG9ycSB0NUdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQotICAg
IHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeG9yLCBYb3IsCi0gICAgICAgIG1h
Y3JvKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgIHhvcmkgdDVHUFIsIHQyR1BSCi0gICAgICAg
IGVuZCwKLSAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgeG9ycSB0NUdQ
UiwgdDJHUFIKLSAgICAgICAgZW5kKQotZWxzaWYgQVJNNjRFCi0gICAgd2FzbUF0b21pY0JpbmFy
eVJNV09wcyhfYWRkLCBBZGQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQ
UiwgdDFHUFIpIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAg
bWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGggdDBH
UFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVH
UFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAg
IG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRxIHQw
R1BSLCBtZW0sIHQwR1BSIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9zdWIsIFN1
YiwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAg
ICAgICAgIG5lZ3EgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0s
IHQwR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1
R1BSLCB0MUdQUikKLSAgICAgICAgICAgIG5lZ3EgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hj
aGdhZGRoIHQwR1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBH
UFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIG5lZ3EgdDBHUFIKLSAg
ICAgICAgICAgIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCwK
LSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAg
ICAgIG5lZ3EgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdhZGRxIHQwR1BSLCBtZW0sIHQw
R1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9hbmQsIEFuZCwK
LSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAg
ICAgIG5vdHEgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcmIgdDBHUFIsIG1lbSwg
dDBHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVH
UFIsIHQxR1BSKQotICAgICAgICAgICAgbm90cSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNo
Z2NsZWFyaCB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQw
R1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBub3RxIHQwR1BSCi0g
ICAgICAgICAgICBhdG9taWN4Y2hnY2xlYXJpIHQwR1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVu
ZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAg
ICAgICAgIG5vdHEgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcnEgdDBHUFIsIG1l
bSwgdDBHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX29yLCBP
ciwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWlj
eGNoZ29yYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcmggdDBHUFIsIG1lbSwgdDBHUFIgZW5k
LAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4
Y2hnb3JpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwg
dDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29ycSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQp
Ci0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfeG9yLCBYb3IsCi0gICAgICAgIG1hY3JvKHQw
R1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JiIHQwR1BSLCBtZW0s
IHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikgYXRvbWljeGNoZ3hvcmggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9yaSB0MEdQUiwgbWVt
LCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFH
UFIpIGF0b21pY3hjaGd4b3JxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKLSAgICB3YXNtQXRvbWlj
QmluYXJ5Uk1XT3BzKF94Y2hnLCBYY2hnLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQ
UiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdoIHQw
R1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1
R1BSLCB0MUdQUikgYXRvbWljeGNoZ2kgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBt
YWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hncSB0MEdQUiwg
bWVtLCB0MEdQUiBlbmQpCi1lbHNlCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFr
Q0FTKF9hZGQsIEFkZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAg
ICAgICAgIGFkZGkgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1h
Y3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBhZGRxIHQwR1BSLCB0MUdQUiwg
dDJHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NB
Uyhfc3ViLCBTdWIsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAg
ICAgICBzdWJpIHQxR1BSLCB0MEdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNy
byh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgc3VicSB0MUdQUiwgdDBHUFIsIHQy
R1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMo
X3hjaGcsIFhjaGcsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAg
ICAgICBtb3ZlIHQwR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BS
LCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgotICAgICAgICBl
bmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9hbmQsIEFuZCwKLSAg
ICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIGFuZGkgdDBHUFIs
IHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwg
dDJHUFIpCi0gICAgICAgICAgICBhbmRxIHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5k
KQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfb3IsIE9yLAotICAgICAg
ICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgb3JpIHQwR1BSLCB0MUdQ
UiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BS
KQotICAgICAgICAgICAgb3JxIHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQotICAg
IHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeG9yLCBYb3IsCi0gICAgICAgIG1h
Y3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICB4b3JpIHQwR1BSLCB0MUdQUiwg
dDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQot
ICAgICAgICAgICAgeG9ycSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLWVuZAot
Ci1tYWNybyB3YXNtQXRvbWljQ29tcGFyZUV4Y2hhbmdlT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBw
ZXJDYXNlT3Bjb2RlLCBmbmIsIGZuaCwgZm5pLCBmbnEpCi0gICAgd2FzbU9wKGk2NF9hdG9taWNf
cm13OCVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4JXVwcGVyQ2FzZU9wY29k
ZSVVLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCi0gICAg
ICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVj
dGVkLCB0MCkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAgICAgIGVtaXRD
aGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KGN0eCwgdDMsIHQxLCAxKQotICAgICAg
ICBmbmIodDAsIHQyLCBbdDNdLCB0NSwgdDEpCi0gICAgICAgIGFuZHEgMHhmZiwgdDAgIyBGSVhN
RTogWmVyb0V4dGVuZDhUbzY0Ci0gICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4
ZmYsIC5vayBlbmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi0gICAgd2Fz
bU9wKGk2NF9hdG9taWNfcm13MTYlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13
MTYldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9w
b2ludGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1s
b2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0
MikKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxp
Z25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDIpCi0gICAgICAgIGZuaCh0MCwgdDIsIFt0M10sIHQ1
LCB0MSkKLSAgICAgICAgYW5kcSAweGZmZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQxNlRvNjQK
LSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZmZmLCAub2sgZW5kKQotICAg
ICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdhc21PcChpNjRfYXRvbWljX3Jt
dzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzMyJXVwcGVyQ2FzZU9wY29k
ZSVVLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCi0gICAg
ICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVj
dGVkLCB0MCkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAgICAgIGVtaXRD
aGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwg
dDMsIHQxLCA0KQotICAgICAgICBmbmkodDAsIHQyLCBbdDNdLCB0NSwgdDEpCi0gICAgICAgIGFz
c2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmZmZmZmZmYsIC5vayBlbmQpCi0gICAgICAgIHJl
dHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi0gICAgd2FzbU9wKGk2NF9hdG9taWNfcm13JWxvd2Vy
Q2FzZU9wY29kZSUsIFdhc21JNjRBdG9taWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8oY3R4
KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgs
IG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCi0gICAg
ICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJl
UG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgOCkKLSAg
ICAgICAgZm5xKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQotICAgICAgICByZXR1cm5xKGN0eCwgdDAp
Ci0gICAgZW5kKQotZW5kCi0KLSMgdDBHUFIgPT4gZXhwZWN0ZWQsIHQyR1BSID0+IHZhbHVlLCBt
ZW0gPT4gbWVtb3J5IHJlZmVyZW5jZQotd2FzbUF0b21pY0NvbXBhcmVFeGNoYW5nZU9wcyhfY21w
eGNoZywgQ21weGNoZywKLSAgICBtYWNybyh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BS
KQotICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRFCi0gICAgICAgICAgICBicWEgdDBHUFIgLCAw
eGZmLCAuZmFpbAotICAgICAgICAgICAgYXRvbWljd2Vha2Nhc2IgdDBHUFIsIHQyR1BSLCBtZW0K
LSAgICAgICAgICAgIGptcCAuZG9uZQotICAgICAgICAuZmFpbDoKLSAgICAgICAgICAgIGF0b21p
Y2xvYWRiIG1lbSwgdDBHUFIKLSAgICAgICAgLmRvbmU6Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
Lmxvb3A6Ci0gICAgICAgICAgICBsb2FkbGlua2FjcWIgbWVtLCB0MUdQUgotICAgICAgICAgICAg
YnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAotICAgICAgICAgICAgc3RvcmVjb25kcmVsYiB0NUdQ
UiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAg
ICAgIGptcCAubG9vcAotICAgICAgICAuZmFpbDoKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbGIg
dDVHUFIsIHQxR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAg
ICAgICAgICBqbXAgLmxvb3AKLSAgICAgICAgLmRvbmU6Ci0gICAgICAgICAgICBtb3ZlIHQxR1BS
LCB0MEdQUgotICAgICAgICBlbmQKLSAgICBlbmQsCi0gICAgbWFjcm8odDBHUFIsIHQyR1BSLCBt
ZW0sIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQotICAgICAgICAg
ICAgYnFhIHQwR1BSLCAweGZmZmYsIC5mYWlsCi0gICAgICAgICAgICBhdG9taWN3ZWFrY2FzaCB0
MEdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgam1wIC5kb25lCi0gICAgICAgIC5mYWlsOgot
ICAgICAgICAgICAgYXRvbWljbG9hZGggbWVtLCB0MEdQUgotICAgICAgICAuZG9uZToKLSAgICAg
ICAgZWxzZQotICAgICAgICAubG9vcDoKLSAgICAgICAgICAgIGxvYWRsaW5rYWNxaCBtZW0sIHQx
R1BSCi0gICAgICAgICAgICBicW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCi0gICAgICAgICAgICBz
dG9yZWNvbmRyZWxoIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAw
LCAuZG9uZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAgICAgIC5mYWlsOgotICAgICAgICAg
ICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDFHUFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQ
UiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGptcCAubG9vcAotICAgICAgICAuZG9uZToKLSAgICAg
ICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0gICAgICAgIGVuZAotICAgIGVuZCwKLSAgICBtYWNy
byh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BSKQotICAgICAgICBpZiBYODZfNjQgb3Ig
QVJNNjRFCi0gICAgICAgICAgICBicWEgdDBHUFIsIDB4ZmZmZmZmZmYsIC5mYWlsCi0gICAgICAg
ICAgICBhdG9taWN3ZWFrY2FzaSB0MEdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgam1wIC5k
b25lCi0gICAgICAgIC5mYWlsOgotICAgICAgICAgICAgYXRvbWljbG9hZGkgbWVtLCB0MEdQUgot
ICAgICAgICAuZG9uZToKLSAgICAgICAgZWxzZQotICAgICAgICAubG9vcDoKLSAgICAgICAgICAg
IGxvYWRsaW5rYWNxaSBtZW0sIHQxR1BSCi0gICAgICAgICAgICBicW5lcSB0MEdQUiwgdDFHUFIs
IC5mYWlsCi0gICAgICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAg
ICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAg
ICAgIC5mYWlsOgotICAgICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwgdDFHUFIsIG1lbQot
ICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGptcCAubG9vcAot
ICAgICAgICAuZG9uZToKLSAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0gICAgICAgIGVu
ZAotICAgIGVuZCwKLSAgICBtYWNybyh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BSKQot
ICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRFCi0gICAgICAgICAgICBhdG9taWN3ZWFrY2FzcSB0
MEdQUiwgdDJHUFIsIG1lbQotICAgICAgICBlbHNlCi0gICAgICAgIC5sb29wOgotICAgICAgICAg
ICAgbG9hZGxpbmthY3FxIG1lbSwgdDFHUFIKLSAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQ
UiwgLmZhaWwKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbHEgdDVHUFIsIHQyR1BSLCBtZW0KLSAg
ICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBqbXAgLmxvb3AKLSAg
ICAgICAgLmZhaWw6Ci0gICAgICAgICAgICBzdG9yZWNvbmRyZWxxIHQ1R1BSLCB0MUdQUiwgbWVt
Ci0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5sb29w
Ci0gICAgICAgIC5kb25lOgotICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAgICAgICAg
ZW5kCi0gICAgZW5kKQotCiB3YXNtT3AoYXRvbWljX2ZlbmNlLCBXYXNtRHJvcEtlZXAsIG1hY3Jv
KGN0eCkKICAgICBmZW5jZQogICAgIGRpc3BhdGNoKGN0eCkKQEAgLTI4NDcsOSArMTc3NywxNCBA
QCBtYWNybyBjb21tb25DYXRjaEltcGwoY3R4LCBzdG9yZVdhc21JbnN0YW5jZSkKICAgICBjb252
ZXJ0Q2FsbGVlVG9WTSh0MykKICAgICByZXN0b3JlQ2FsbGVlU2F2ZXNGcm9tVk1FbnRyeUZyYW1l
Q2FsbGVlU2F2ZXNCdWZmZXIodDMsIHQwKQogCi0gICAgbG9hZHAgVk06OmNhbGxlZUZvcldhc21D
YXRjaFt0M10sIHdzMQotICAgIHN0b3JlcCAwLCBWTTo6Y2FsbGVlRm9yV2FzbUNhdGNoW3QzXQot
ICAgIHN0b3JlcCB3czEsIENhbGxlZVtjZnJdCisgICAgbG9hZHAgVk06OmNhbGxlZUZvcldhc21D
YXRjaCArIFBheWxvYWRPZmZzZXRbdDNdLCB3czEKKyAgICBzdG9yZXAgMCwgVk06OmNhbGxlZUZv
cldhc21DYXRjaCArIFBheWxvYWRPZmZzZXRbdDNdCisgICAgc3RvcmVwIHdzMSwgQ2FsbGVlICsg
UGF5bG9hZE9mZnNldFtjZnJdCitpZiBub3QgSlNWQUxVRTY0CisgICAgbG9hZGkgVk06OmNhbGxl
ZUZvcldhc21DYXRjaCArIFRhZ09mZnNldFt0M10sIHdzMQorICAgIHN0b3JlaSBFbXB0eVZhbHVl
VGFnLCBWTTo6Y2FsbGVlRm9yV2FzbUNhdGNoICsgVGFnT2Zmc2V0W3QzXQorICAgIHN0b3JlaSB3
czEsIENhbGxlZSArIFRhZ09mZnNldFtjZnJdCitlbmQKIAogICAgIGxvYWRwIFZNOjpjYWxsRnJh
bWVGb3JDYXRjaFt0M10sIGNmcgogICAgIHN0b3JlcCAwLCBWTTo6Y2FsbEZyYW1lRm9yQ2F0Y2hb
dDNdCkBAIC0yODg4LDggKzE4MjMsMTMgQEAgbWFjcm8gY2F0Y2hJbXBsKGN0eCwgc3RvcmVXYXNt
SW5zdGFuY2UpCiAKIC5jb3B5TG9vcDoKICAgICBidGl6IHQzLCAuZG9uZQoraWYgSlNWQUxVRTY0
CiAgICAgbG9hZHEgW3QxXSwgdDYKICAgICBzdG9yZXEgdDYsIFt0Ml0KK2Vsc2UKKyAgICBsb2Fk
MmlhIFt0MV0sIHQ1LCB0NgorICAgIHN0b3JlMmlhIHQ1LCB0NiwgW3QyXQorZW5kCiAgICAgc3Vi
aSAxLCB0MwogICAgICMgRklYTUU6IFVzZSBhcm0gc3RvcmUtYWRkL3N1YiBpbnN0cnVjdGlvbnMg
aW4gd2FzbSBMTEludCBjYXRjaAogICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTIxMApAQCAtMjkxNywzICsxODU3LDEwIEBAIGVuZCkKIGNvbW1vbldhc21P
cCh3YXNtX2NhdGNoX2FsbF9ub190bHMsIFdhc21DYXRjaEFsbCwgbWFjcm8oKSBlbmQsIG1hY3Jv
KGN0eCkKICAgICBjYXRjaEFsbEltcGwoY3R4LCBtYWNybyhpbnN0YW5jZSkgZW5kKQogZW5kKQor
CisjIFZhbHVlLXJlcHJlc2VudGF0aW9uLXNwZWNpZmljIGNvZGUuCitpZiBKU1ZBTFVFNjQKKyAg
ICBpbmNsdWRlIFdlYkFzc2VtYmx5NjQKK2Vsc2UKKyAgICBpbmNsdWRlIFdlYkFzc2VtYmx5MzJf
NjQKK2VuZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2Vt
Ymx5MzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5MzJf
NjQuYXNtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmVjMTg5Zjk3NjNlN2NhZWYwZTM4MDdiZWE3NTdiMDIzYTIxNGZk
NzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNz
ZW1ibHkzMl82NC5hc20KQEAgLTAsMCArMSwxMTI5IEBACisjIENvcHlyaWdodCAoQykgMjAxMS0y
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDIx
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisjIENvbnN0YW50cworCitjb25zdCBNc3dPZmZzZXQgPSA0Citj
b25zdCBMc3dPZmZzZXQgPSAwCisKKyMgT3Bjb2RlcyB0aGF0IHNob3VsZCBldmVudHVhbGx5IGJl
IHNoYXJlZCB3aXRoIEpTIGxsaW50CisKK3dhc21PcChtb3YsIFdhc21Nb3YsIG1hY3JvKGN0eCkK
KyAgICBtbG9hZDJpKGN0eCwgbV9zcmMsIHQxLCB0MCkKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0
MCkKK2VuZCkKKworIyBXYXNtIHNwZWNpZmljIGJ5dGVjb2RlcworCittYWNybyBlbWl0Q2hlY2tB
bmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChwb2ludGVyLCBvZmZzZXQsIHNpemUpCisgICAg
IyBUaGlzIG1hY3JvIHVwZGF0ZXMgJ3BvaW50ZXInIHRvIHRhcmdldCBhZGRyZXNzLCBhbmQgbWF5
IHRocmFzaCAnb2Zmc2V0JworaWYgQVJNdjcKKyAgICAjIE5vdCBlbm91Z2ggcmVnaXN0ZXJzIG9u
IGFybSB0byBrZWVwIHRoZSBtZW1vcnkgYmFzZSBhbmQgc2l6ZSBpbiBwaW5uZWQKKyAgICAjIHJl
Z2lzdGVycywgc28gbG9hZCB0aGVtIG9uIGVhY2ggYWNjZXNzIGluc3RlYWQuIEZJWE1FOiBpbXBy
b3ZlIHRoaXMuCisgICAgYWRkcHMgb2Zmc2V0LCBwb2ludGVyCisgICAgYmNzIC50aHJvdworICAg
IGFkZHBzIHNpemUgLSAxLCBwb2ludGVyLCBvZmZzZXQgIyBVc2Ugb2Zmc2V0IGFzIHNjcmF0Y2gg
cmVnaXN0ZXIKKyAgICBiY3MgLnRocm93CisgICAgYnBiIG9mZnNldCwgV2FzbTo6SW5zdGFuY2U6
Om1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplW3dhc21JbnN0YW5jZV0sIC5jb250aW51YXRpb24K
Ky50aHJvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKKy5j
b250aW51YXRpb246CisgICAgYWRkcCBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRNZW1vcnlbd2Fz
bUluc3RhbmNlXSwgcG9pbnRlcgorZWxzZQorICAgIGNyYXNoKCkKK2VuZAorZW5kCisKK21hY3Jv
IGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNr
KHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKKyAgICAjIFRoaXMgbWFjcm8gdXBkYXRlcyAncG9pbnRl
cicgdG8gdGFyZ2V0IGFkZHJlc3MsIGFuZCBtYXkgdGhyYXNoICdvZmZzZXQnCitpZiBBUk12Nwor
ICAgICMgTm90IGVub3VnaCByZWdpc3RlcnMgb24gYXJtIHRvIGtlZXAgdGhlIG1lbW9yeSBiYXNl
IGFuZCBzaXplIGluIHBpbm5lZAorICAgICMgcmVnaXN0ZXJzLCBzbyBsb2FkIHRoZW0gb24gZWFj
aCBhY2Nlc3MgaW5zdGVhZC4gRklYTUU6IGltcHJvdmUgdGhpcy4KKyAgICBhZGRwcyBvZmZzZXQs
IHBvaW50ZXIKKyAgICBiY3MgLnRocm93CisgICAgYWRkcHMgc2l6ZSAtIDEsIHBvaW50ZXIsIG9m
ZnNldCAjIFVzZSBvZmZzZXQgYXMgc2NyYXRjaCByZWdpc3RlcgorICAgIGJjcyAudGhyb3cKKyAg
ICBicGIgb2Zmc2V0LCBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRCb3VuZHNDaGVja2luZ1NpemVb
d2FzbUluc3RhbmNlXSwgLmNvbnRpbnVhdGlvbgorLnRocm93OgorICAgIHRocm93RXhjZXB0aW9u
KE91dE9mQm91bmRzTWVtb3J5QWNjZXNzKQorLmNvbnRpbnVhdGlvbjoKKyAgICBhZGRwIFdhc206
Okluc3RhbmNlOjptX2NhY2hlZE1lbW9yeVt3YXNtSW5zdGFuY2VdLCBwb2ludGVyCisgICAgYnRw
bnogcG9pbnRlciwgKHNpemUgLSAxKSwgLnRocm93CitlbHNlCisgICAgY3Jhc2goKQorZW5kCitl
bmQKKworbWFjcm8gd2FzbUxvYWRPcChuYW1lLCBzdHJ1Y3QsIHNpemUsIGZuKQorICAgIHdhc21P
cChuYW1lLCBzdHJ1Y3QsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVy
LCB0MCkKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIGVtaXRDaGVj
a0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KHQwLCB0MSwgc2l6ZSkKKyAgICAgICAgZm4o
dDAsIHQzLCB0MikKKyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MywgdDIpCisgICAgZW5kKQorZW5k
CisKK3dhc21Mb2FkT3AobG9hZDhfdSwgV2FzbUxvYWQ4VSwgMSwgbWFjcm8oYWRkciwgZHN0TXN3
LCBkc3RMc3cpCisgICAgbG9hZGIgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICBtb3ZlIDAs
IGRzdE1zdworZW5kKQord2FzbUxvYWRPcChsb2FkMTZfdSwgV2FzbUxvYWQxNlUsIDIsIG1hY3Jv
KGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRoIExzd09mZnNldFthZGRyXSwgZHN0THN3
CisgICAgbW92ZSAwLCBkc3RNc3cKK2VuZCkKK3dhc21Mb2FkT3AobG9hZDMyX3UsIFdhc21Mb2Fk
MzJVLCA0LCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkaSBMc3dPZmZzZXRb
YWRkcl0sIGRzdExzdworICAgIG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGxvYWQ2
NF91LCBXYXNtTG9hZDY0VSwgOCwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgIyBN
aWdodCBiZSB1bmFsaWduZWQsIHNvIGNhbid0IHVzZSBsb2FkMmlhCisgICAgbG9hZGkgTHN3T2Zm
c2V0W2FkZHJdLCBkc3RMc3cKKyAgICBsb2FkaSBNc3dPZmZzZXRbYWRkcl0sIGRzdE1zdworZW5k
KQorCit3YXNtTG9hZE9wKGkzMl9sb2FkOF9zLCBXYXNtSTMyTG9hZDhTLCAxLCBtYWNybyhhZGRy
LCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkYnNpIExzd09mZnNldFthZGRyXSwgZHN0THN3Cisg
ICAgbW92ZSAwLCBkc3RNc3cKK2VuZCkKK3dhc21Mb2FkT3AoaTMyX2xvYWQxNl9zLCBXYXNtSTMy
TG9hZDE2UywgMiwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGhzaSBMc3dP
ZmZzZXRbYWRkcl0sIGRzdExzdworICAgIG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9w
KGk2NF9sb2FkOF9zLCBXYXNtSTY0TG9hZDhTLCAxLCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExz
dykKKyAgICBsb2FkYnNpIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAgcnNoaWZ0aSBkc3RM
c3csIDMxLCBkc3RNc3cKK2VuZCkKK3dhc21Mb2FkT3AoaTY0X2xvYWQxNl9zLCBXYXNtSTY0TG9h
ZDE2UywgMiwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGhzaSBMc3dPZmZz
ZXRbYWRkcl0sIGRzdExzdworICAgIHJzaGlmdGkgZHN0THN3LCAzMSwgZHN0TXN3CitlbmQpCit3
YXNtTG9hZE9wKGk2NF9sb2FkMzJfcywgV2FzbUk2NExvYWQzMlMsIDQsIG1hY3JvKGFkZHIsIGRz
dE1zdywgZHN0THN3KQorICAgIGxvYWRpIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAgcnNo
aWZ0aSBkc3RMc3csIDMxLCBkc3RNc3cKK2VuZCkKKworbWFjcm8gd2FzbVN0b3JlT3AobmFtZSwg
c3RydWN0LCBzaXplLCBmbikKKyAgICB3YXNtT3AobmFtZSwgc3RydWN0LCBtYWNybyhjdHgpCisg
ICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDApCisgICAgICAgIHdnZXR1KGN0eCwgbV9v
ZmZzZXQsIHQxKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNl
dCh0MCwgdDEsIHNpemUpCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVlLCB0MywgdDIpCisg
ICAgICAgIGZuKHQzLCB0MiwgdDApCisgICAgICAgIGRpc3BhdGNoKGN0eCkKKyAgICBlbmQpCitl
bmQKKword2FzbVN0b3JlT3Aoc3RvcmU4LCBXYXNtU3RvcmU4LCAxLCBtYWNybyhzcmNNc3csIHNy
Y0xzdywgYWRkcikKKyAgICBzdG9yZWIgc3JjTHN3LCBMc3dPZmZzZXRbYWRkcl0KK2VuZCkKK3dh
c21TdG9yZU9wKHN0b3JlMTYsIFdhc21TdG9yZTE2LCAyLCBtYWNybyhzcmNNc3csIHNyY0xzdywg
YWRkcikKKyAgICBzdG9yZWggc3JjTHN3LCBMc3dPZmZzZXRbYWRkcl0KK2VuZCkKK3dhc21TdG9y
ZU9wKHN0b3JlMzIsIFdhc21TdG9yZTMyLCA0LCBtYWNybyhzcmNNc3csIHNyY0xzdywgYWRkcikK
KyAgICBzdG9yZWkgc3JjTHN3LCBMc3dPZmZzZXRbYWRkcl0KK2VuZCkKK3dhc21TdG9yZU9wKHN0
b3JlNjQsIFdhc21TdG9yZTY0LCA4LCBtYWNybyhzcmNNc3csIHNyY0xzdywgYWRkcikKKyAgICAj
IE1pZ2h0IGJlIHVuYWxpZ25lZCwgc28gY2FuJ3QgdXNlIHN0b3JlMmlhCisgICAgc3RvcmVpIHNy
Y0xzdywgTHN3T2Zmc2V0W2FkZHJdCisgICAgc3RvcmVpIHNyY01zdywgTXN3T2Zmc2V0W2FkZHJd
CitlbmQpCisKK3dhc21PcChyZWZfaXNfbnVsbCwgV2FzbVJlZklzTnVsbCwgbWFjcm8oY3R4KQor
ICAgIG1sb2FkMmkoY3R4LCBtX3JlZiwgdDEsIHQwKSAjIHQwIGlzIHVudXNlZAorICAgIGNpZXEg
dDEsIE51bGxUYWcsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoZ2V0
X2dsb2JhbCwgV2FzbUdldEdsb2JhbCwgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206Okluc3Rh
bmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1fZ2xvYmFs
SW5kZXgsIHQxKQorICAgIGxvYWQyaWEgW3QwLCB0MSwgOF0sIHQwLCB0MQorICAgIHJldHVybjJp
KGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3Aoc2V0X2dsb2JhbCwgV2FzbVNldEdsb2JhbCwg
bWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3Rh
bmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQorICAgIG1sb2FkMmko
Y3R4LCBtX3ZhbHVlLCB0MywgdDIpCisgICAgc3RvcmUyaWEgdDIsIHQzLCBbdDAsIHQxLCA4XQor
ICAgIGRpc3BhdGNoKGN0eCkKK2VuZCkKKword2FzbU9wKGdldF9nbG9iYWxfcG9ydGFibGVfYmlu
ZGluZywgV2FzbUdldEdsb2JhbFBvcnRhYmxlQmluZGluZywgbWFjcm8oY3R4KQorICAgIGxvYWRw
IFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShj
dHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQorICAgIGxvYWRwIFt0MCwgdDEsIDhdLCB0MAorICAgIGxv
YWQyaWEgW3QwXSwgdDAsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dh
c21PcChzZXRfZ2xvYmFsX3BvcnRhYmxlX2JpbmRpbmcsIFdhc21TZXRHbG9iYWxQb3J0YWJsZUJp
bmRpbmcsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dh
c21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBt
bG9hZDJpKGN0eCwgbV92YWx1ZSwgdDMsIHQyKQorICAgIGxvYWRwIFt0MCwgdDEsIDhdLCB0MAor
ICAgIHN0b3JlMmlhIHQyLCB0MywgW3QwXQorICAgIGRpc3BhdGNoKGN0eCkKK2VuZCkKKworIyBP
cGNvZGVzIHRoYXQgZG9uJ3QgaGF2ZSB0aGUgYGIzb3BgIGVudHJ5IGluIHdhc20uanNvbi4gVGhp
cyBzaG91bGQgYmUga2VwdCBpbiBzeW5jCisKK21hY3JvIGNhbGxEaXZSZW0oZm4pCitpZiBBUk12
NworICAgIHN1YnAgU3RhY2tBbGlnbm1lbnQsIHNwCisgICAgc3RvcmVwIFBDLCBbc3BdCisgICAg
Y0NhbGw0KGZuKQorICAgIGxvYWRwIFtzcF0sIFBDCisgICAgYWRkcCBTdGFja0FsaWdubWVudCwg
c3AKK2Vsc2UKKyAgICBlcnJvcgorZW5kCitlbmQKKworIyBpMzIgYmluYXJ5IG9wcworCit3YXNt
T3AoaTMyX2Rpdl9zLCBXYXNtSTMyRGl2UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBt
X2xocywgYTApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIGExKQorCisgICAgYnRpeiBhMSwgLnRo
cm93RGl2aXNpb25CeVplcm8KKworICAgIGJpbmVxIGExLCAtMSwgLnNhZmUKKyAgICBiaWVxIGEw
LCBjb25zdGV4cHIgSU5UMzJfTUlOLCAudGhyb3dJbnRlZ2VyT3ZlcmZsb3cKKworLnNhZmU6Cisg
ICAgY2FsbERpdlJlbShfc2xvd19wYXRoX3dhc21faTMyX2Rpdl9zKQorICAgIHJldHVybmkoY3R4
LCByMCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNp
b25CeVplcm8pCisKKy50aHJvd0ludGVnZXJPdmVyZmxvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihJ
bnRlZ2VyT3ZlcmZsb3cpCitlbmQpCisKK3dhc21PcChpMzJfZGl2X3UsIFdhc21JMzJEaXZVLCBt
YWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCBhMCkKKyAgICBtbG9hZGkoY3R4LCBt
X3JocywgYTEpCisKKyAgICBidGl6IGExLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgY2Fs
bERpdlJlbShfc2xvd19wYXRoX3dhc21faTMyX2Rpdl91KQorICAgIHJldHVybmkoY3R4LCByMCkK
KworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVpl
cm8pCitlbmQpCisKK3dhc21PcChpMzJfcmVtX3MsIFdhc21JMzJSZW1TLCBtYWNybyAoY3R4KQor
ICAgIG1sb2FkaShjdHgsIG1fbGhzLCBhMCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgYTEpCisK
KyAgICBidGl6IGExLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgYmluZXEgYTEsIC0xLCAu
c2FmZQorICAgIGJpbmVxIGEwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAuc2FmZQorCisgICAgbW92
ZSAwLCByMAorICAgIGptcCAucmV0dXJuCisKKy5zYWZlOgorICAgIGNhbGxEaXZSZW0oX3Nsb3df
cGF0aF93YXNtX2kzMl9yZW1fcykKKworLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgcjApCisK
Ky50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJv
KQorZW5kKQorCit3YXNtT3AoaTMyX3JlbV91LCBXYXNtSTMyUmVtVSwgbWFjcm8gKGN0eCkKKyAg
ICBtbG9hZGkoY3R4LCBtX2xocywgYTApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIGExKQorCisg
ICAgYnRpeiBhMSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGNhbGxEaXZSZW0oX3Nsb3df
cGF0aF93YXNtX2kzMl9yZW1fdSkKKyAgICByZXR1cm5pKGN0eCwgcjApCisKKy50aHJvd0Rpdmlz
aW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCisj
IGk2NCBiaW5hcnkgb3BzCisKK3dhc21PcChpNjRfYWRkLCBXYXNtSTY0QWRkLCBtYWNybyhjdHgp
CisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhz
LCB0MywgdDIpCisgICAgYWRkaXMgdDIsIHQwCisgICAgYWRjaSAgdDMsIHQxCisgICAgcmV0dXJu
MmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfc3ViLCBXYXNtSTY0U3ViLCBtYWNy
byhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgs
IG1fcmhzLCB0MywgdDIpCisgICAgc3ViaXMgdDIsIHQwCisgICAgc2JjaSAgdDMsIHQxCisgICAg
cmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfbXVsLCBXYXNtSTY0TXVs
LCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQy
aShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbXVsaSB0MiwgdDEKKyAgICBtdWxpIHQwLCB0Mwor
ICAgIHVtdWxsaSB0MCwgdDIsIHQwLCB0MgorICAgIGFkZGkgdDEsIHQyCisgICAgYWRkaSB0Mywg
dDIKKyAgICByZXR1cm4yaShjdHgsIHQyLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9kaXZfcywg
V2FzbUk2NERpdlMsIG1hY3JvIChjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCBhMSwgYTAp
CisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCBhMywgYTIpCisKKyAgICBidGlueiBhMywgLm5vblpl
cm9EaXZpc29yCisgICAgYnRpeiBhMiwgLnRocm93RGl2aXNpb25CeVplcm8KKworLm5vblplcm9E
aXZpc29yOgorICAgIGJpbmVxIGEzLCAtMSwgLnNhZmUKKyAgICBiaW5lcSBhMiwgLTEsIC5zYWZl
CisgICAgYmluZXEgYTEsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC5zYWZlCisgICAgYnRpeiBhMCwg
LnRocm93SW50ZWdlck92ZXJmbG93CisKKy5zYWZlOgorICAgIGNhbGxEaXZSZW0oX3Nsb3dfcGF0
aF93YXNtX2k2NF9kaXZfcykKKyAgICByZXR1cm4yaShjdHgsIHIxLCByMCkKKworLnRocm93RGl2
aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCisKKy50aHJv
d0ludGVnZXJPdmVyZmxvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihJbnRlZ2VyT3ZlcmZsb3cpCitl
bmQpCisKK3dhc21PcChpNjRfZGl2X3UsIFdhc21JNjREaXZVLCBtYWNybyAoY3R4KQorICAgIG1s
b2FkMmkoY3R4LCBtX2xocywgYTEsIGEwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgYTMsIGEy
KQorCisgICAgYnRpbnogYTMsIC5ub25aZXJvRGl2aXNvcgorICAgIGJ0aXogYTIsIC50aHJvd0Rp
dmlzaW9uQnlaZXJvCisKKy5ub25aZXJvRGl2aXNvcjoKKyAgICBjYWxsRGl2UmVtKF9zbG93X3Bh
dGhfd2FzbV9pNjRfZGl2X3UpCisgICAgcmV0dXJuMmkoY3R4LCByMSwgcjApCisKKy50aHJvd0Rp
dmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQor
Cit3YXNtT3AoaTY0X3JlbV9zLCBXYXNtSTY0UmVtUywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZDJp
KGN0eCwgbV9saHMsIGExLCBhMCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIGEzLCBhMikKKwor
ICAgIGJ0aW56IGEzLCAubm9uWmVyb0Rpdmlzb3IKKyAgICBidGl6IGEyLCAudGhyb3dEaXZpc2lv
bkJ5WmVybworCisubm9uWmVyb0Rpdmlzb3I6CisgICAgYmluZXEgYTMsIC0xLCAuc2FmZQorICAg
IGJpbmVxIGEyLCAtMSwgLnNhZmUKKyAgICBiaW5lcSBhMSwgY29uc3RleHByIElOVDMyX01JTiwg
LnNhZmUKKyAgICBidGlueiBhMCwgLnNhZmUKKworICAgIG1vdmUgMCwgcjEKKyAgICBtb3ZlIDAs
IHIwCisgICAgam1wIC5yZXR1cm4KKworLnNhZmU6CisgICAgY2FsbERpdlJlbShfc2xvd19wYXRo
X3dhc21faTY0X3JlbV9zKQorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgcjEsIHIwKQor
CisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVy
bykKK2VuZCkKKword2FzbU9wKGk2NF9yZW1fdSwgV2FzbUk2NFJlbVUsIG1hY3JvIChjdHgpCisg
ICAgbWxvYWQyaShjdHgsIG1fbGhzLCBhMSwgYTApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCBh
MywgYTIpCisKKyAgICBidGlueiBhMywgLm5vblplcm9EaXZpc29yCisgICAgYnRpeiBhMiwgLnRo
cm93RGl2aXNpb25CeVplcm8KKworLm5vblplcm9EaXZpc29yOgorICAgIGNhbGxEaXZSZW0oX3Ns
b3dfcGF0aF93YXNtX2k2NF9yZW1fdSkKKyAgICByZXR1cm4yaShjdHgsIHIxLCByMCkKKworLnRo
cm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitl
bmQpCisKK3dhc21PcChpNjRfYW5kLCBXYXNtSTY0QW5kLCBtYWNybyhjdHgpCisgICAgbWxvYWQy
aShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisg
ICAgYW5kaSB0MiwgdDAKKyAgICBhbmRpIHQzLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQw
KQorZW5kKQorCit3YXNtT3AoaTY0X29yLCBXYXNtSTY0T3IsIG1hY3JvKGN0eCkKKyAgICBtbG9h
ZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikK
KyAgICBvcmkgdDIsIHQwCisgICAgb3JpIHQzLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQw
KQorZW5kKQorCit3YXNtT3AoaTY0X3hvciwgV2FzbUk2NFhvciwgbWFjcm8oY3R4KQorICAgIG1s
b2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQy
KQorICAgIHhvcmkgdDIsIHQwCisgICAgeG9yaSB0MywgdDEKKyAgICByZXR1cm4yaShjdHgsIHQx
LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9zaGwsIFdhc21JNjRTaGwsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDIp
CisKKyAgICBhbmRpIDB4M2YsIHQyCisgICAgYnRpeiB0MiwgLnJldHVybgorICAgIGJpYiB0Miwg
MzIsIC5sZXNzVGhhbjMyCisKKyAgICBzdWJpIDMyLCB0MgorICAgIGxzaGlmdGkgdDAsIHQyLCB0
MQorICAgIG1vdmUgMCwgdDAKKyAgICBqbXAgLnJldHVybgorCisubGVzc1RoYW4zMjoKKyAgICBs
c2hpZnRpIHQyLCB0MQorICAgIG1vdmUgMzIsIHQzCisgICAgc3ViaSB0MiwgdDMKKyAgICB1cnNo
aWZ0aSB0MCwgdDMsIHQzCisgICAgb3JpIHQzLCB0MQorICAgIGxzaGlmdGkgdDIsIHQwCisKKy5y
ZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfc2hy
X3UsIFdhc21JNjRTaHJVLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwg
dDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQyKQorCisgICAgYW5kaSAweDNmLCB0MgorICAg
IGJ0aXogdDIsIC5yZXR1cm4KKyAgICBiaWIgdDIsIDMyLCAubGVzc1RoYW4zMgorCisgICAgc3Vi
aSAzMiwgdDIKKyAgICB1cnNoaWZ0aSB0MSwgdDIsIHQwCisgICAgbW92ZSAwLCB0MQorICAgIGpt
cCAucmV0dXJuCisKKy5sZXNzVGhhbjMyOgorICAgIHVyc2hpZnRpIHQyLCB0MAorICAgIG1vdmUg
MzIsIHQzCisgICAgc3ViaSB0MiwgdDMKKyAgICBsc2hpZnRpIHQxLCB0MywgdDMKKyAgICBvcmkg
dDMsIHQwCisgICAgdXJzaGlmdGkgdDIsIHQxCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4
LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfc2hyX3MsIFdhc21JNjRTaHJTLCBtYWNybyhj
dHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWRpKGN0eCwgbV9y
aHMsIHQyKQorCisgICAgYW5kaSAweDNmLCB0MgorICAgIGJ0aXogdDIsIC5yZXR1cm4KKyAgICBi
aWIgdDIsIDMyLCAubGVzc1RoYW4zMgorCisgICAgc3ViaSAzMiwgdDIKKyAgICByc2hpZnRpIHQx
LCB0MiwgdDAKKyAgICByc2hpZnRpIDMxLCB0MQorICAgIGptcCAucmV0dXJuCisKKy5sZXNzVGhh
bjMyOgorICAgIHVyc2hpZnRpIHQyLCB0MAorICAgIG1vdmUgMzIsIHQzCisgICAgc3ViaSB0Miwg
dDMKKyAgICBsc2hpZnRpIHQxLCB0MywgdDMKKyAgICBvcmkgdDMsIHQwCisgICAgcnNoaWZ0aSB0
MiwgdDEKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2Fz
bU9wKGk2NF9yb3RyLCBXYXNtSTY0Um90ciwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBt
X2xocywgdDEsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MikKKworICAgIGFuZGkgdDIs
IDB4MjAsIHQzCisgICAgYnRpeiB0MywgLm5vU3dhcAorCisgICAgbW92ZSB0MCwgdDMKKyAgICBt
b3ZlIHQxLCB0MAorICAgIG1vdmUgdDMsIHQxCisKKy5ub1N3YXA6CisgICAgYW5kaSAweDFmLCB0
MgorICAgIGJ0aXogdDIsIC5yZXR1cm4KKworICAgIG1vdmUgMzIsIHQ1CisgICAgc3ViaSB0Miwg
dDUKKyAgICBsc2hpZnRpIHQwLCB0NSwgdDMKKyAgICBsc2hpZnRpIHQxLCB0NSwgdDUKKyAgICB1
cnNoaWZ0aSB0MiwgdDAKKyAgICB1cnNoaWZ0aSB0MiwgdDEKKyAgICBvcmkgdDUsIHQwCisgICAg
b3JpIHQzLCB0MQorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQor
Cit3YXNtT3AoaTY0X3JvdGwsIFdhc21JNjRSb3RsLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShj
dHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQyKQorCisgICAgYW5k
aSB0MiwgMHgyMCwgdDMKKyAgICBidGl6IHQzLCAubm9Td2FwCisKKyAgICBtb3ZlIHQwLCB0Mwor
ICAgIG1vdmUgdDEsIHQwCisgICAgbW92ZSB0MywgdDEKKworLm5vU3dhcDoKKyAgICBhbmRpIDB4
MWYsIHQyCisgICAgYnRpeiB0MiwgLnJldHVybgorCisgICAgbW92ZSAzMiwgdDUKKyAgICBzdWJp
IHQyLCB0NQorICAgIHVyc2hpZnRpIHQwLCB0NSwgdDMKKyAgICB1cnNoaWZ0aSB0MSwgdDUsIHQ1
CisgICAgbHNoaWZ0aSB0MiwgdDAKKyAgICBsc2hpZnRpIHQyLCB0MQorICAgIG9yaSB0NSwgdDAK
KyAgICBvcmkgdDMsIHQxCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitl
bmQpCisKK3dhc21PcChpNjRfZXEsIFdhc21JNjRFcSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmko
Y3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAg
IG1vdmUgMCwgdDYKKyAgICBiaW5lcSB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWVxIHQwLCB0Miwg
dDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X25l
LCBXYXNtSTY0TmUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkK
KyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlu
ZXEgdDEsIHQzLCAucmV0dXJuCisgICAgY2luZXEgdDAsIHQyLCB0NgorLnJldHVybjoKKyAgICBy
ZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRfbHRfcywgV2FzbUk2NEx0UywgbWFj
cm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4
LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYKKyAgICBiaWx0IHQxLCB0MywgLnJldHVy
bgorICAgIG1vdmUgMCwgdDYKKyAgICBiaWd0IHQxLCB0MywgLnJldHVybgorICAgIGNpYiB0MCwg
dDIsIHQ2CisgICAgYW5kaSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitl
bmQpCisKK3dhc21PcChpNjRfbGVfcywgV2FzbUk2NExlUywgbWFjcm8oY3R4KQorICAgIG1sb2Fk
MmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQor
ICAgIG1vdmUgMSwgdDYKKyAgICBiaWx0IHQxLCB0MywgLnJldHVybgorICAgIG1vdmUgMCwgdDYK
KyAgICBiaWd0IHQxLCB0MywgLnJldHVybgorICAgIGNpYmVxIHQwLCB0MiwgdDYKKyAgICBhbmRp
IDEsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2
NF9sdF91LCBXYXNtSTY0THRVLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0
MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0Ngor
ICAgIGJpYiB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAgYmlhIHQxLCB0Mywg
LnJldHVybgorICAgIGNpYiB0MCwgdDIsIHQ2CisgICAgYW5kaSAxLCB0NgorLnJldHVybjoKKyAg
ICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRfbGVfdSwgV2FzbUk2NExlVSwg
bWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmko
Y3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYKKyAgICBiaWIgdDEsIHQzLCAucmV0
dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpYSB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWJlcSB0
MCwgdDIsIHQ2CisgICAgYW5kaSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYp
CitlbmQpCisKK3dhc21PcChpNjRfZ3RfcywgV2FzbUk2NEd0UywgbWFjcm8oY3R4KQorICAgIG1s
b2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQy
KQorICAgIG1vdmUgMSwgdDYKKyAgICBiaWd0IHQxLCB0MywgLnJldHVybgorICAgIG1vdmUgMCwg
dDYKKyAgICBiaWx0IHQxLCB0MywgLnJldHVybgorICAgIGNpYSB0MCwgdDIsIHQ2CisgICAgYW5k
aSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChp
NjRfZ2VfcywgV2FzbUk2NEdlUywgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywg
dDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYK
KyAgICBiaWd0IHQxLCB0MywgLnJldHVybgorICAgIG1vdmUgMCwgdDYKKyAgICBiaWx0IHQxLCB0
MywgLnJldHVybgorICAgIGNpYWVxIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJu
OgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9ndF91LCBXYXNtSTY0
R3RVLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxv
YWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAgIGJpYSB0MSwgdDMs
IC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAgYmliIHQxLCB0MywgLnJldHVybgorICAgIGNp
YSB0MCwgdDIsIHQ2CisgICAgYW5kaSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwg
dDYpCitlbmQpCisKK3dhc21PcChpNjRfZ2VfdSwgV2FzbUk2NEdlVSwgbWFjcm8oY3R4KQorICAg
IG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMs
IHQyKQorICAgIG1vdmUgMCwgdDYKKyAgICBiaWIgdDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAx
LCB0NgorICAgIGJpYSB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWFlcSB0MCwgdDIsIHQ2CisgICAg
YW5kaSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKKyMgaTY0
IHVuYXJ5IG9wcworCit3YXNtT3AoaTY0X2N0eiwgV2FzbUk2NEN0eiwgbWFjcm8gKGN0eCkKKyAg
ICBtbG9hZDJpKGN0eCwgbV9vcGVyYW5kLCB0MSwgdDApCisgICAgYnRpeiB0MCwgLnRvcAorCisg
ICAgdHpjbnRpIHQwLCB0MAorICAgIGptcCAucmV0dXJuCisKKy50b3A6CisgICAgdHpjbnRpIHQx
LCB0MAorICAgIGFkZGkgMzIsIHQwCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCAwLCB0
MCkKK2VuZCkKKword2FzbU9wKGk2NF9jbHosIFdhc21JNjRDbHosIG1hY3JvKGN0eCkKKyAgICBt
bG9hZDJpKGN0eCwgbV9vcGVyYW5kLCB0MSwgdDApCisgICAgYnRpeiB0MSwgLmJvdHRvbQorCisg
ICAgbHpjbnRpIHQxLCB0MAorICAgIGptcCAucmV0dXJuCisKKy5ib3R0b206CisgICAgbHpjbnRp
IHQwLCB0MAorICAgIGFkZGkgMzIsIHQwCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCAw
LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9wb3BjbnQsIFdhc21JNjRQb3BjbnQsIG1hY3JvIChj
dHgpCisgICAgbWxvYWQyaShjdHgsIG1fb3BlcmFuZCwgYTMsIGEyKQorICAgIHByZXBhcmVTdGF0
ZUZvckNDYWxsKCkKKyAgICBtb3ZlIFBDLCBhMAorICAgIGNDYWxsMihfc2xvd19wYXRoX3dhc21f
cG9wY291bnRsbCkKKyAgICByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkKKyAgICByZXR1cm4yaShj
dHgsIDAsIHIxKQorZW5kKQorCit3YXNtT3AoaTY0X2VxeiwgV2FzbUk2NEVxeiwgbWFjcm8oY3R4
KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIHQxLCB0MCkKKyAgICBtb3ZlIDAsIHQyCisg
ICAgYnRpbnogdDEsIC5yZXR1cm4KKyAgICBjaWVxIHQwLCAwLCB0MgorLnJldHVybjoKKyAgICBy
ZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKKyMgZjY0IGJpbmFyeSBvcHMKKword2FzbU9wKGY2NF9j
b3B5c2lnbiwgV2FzbUY2NENvcHlzaWduLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1f
bGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpICMgdDIgdW51c2Vk
CisKKyAgICBhbmRpIDB4N2ZmZmZmZmYsIHQxCisgICAgYW5kaSAweDgwMDAwMDAwLCB0MworICAg
IG9yaSB0MywgdDEKKworICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCisjIFR5cGUg
Y29udmVyc2lvbiBvcHMKKword2FzbU9wKGk2NF9leHRlbmRfc19pMzIsIFdhc21JNjRFeHRlbmRT
STMyLCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICByc2hp
ZnRpIHQwLCAzMSwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9w
KGk2NF9leHRlbmRfdV9pMzIsIFdhc21JNjRFeHRlbmRVSTMyLCBtYWNybyhjdHgpCisgICAgbWxv
YWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICByZXR1cm4yaShjdHgsIDAsIHQwKQorZW5kKQor
Cit3YXNtT3AoZjY0X3JlaW50ZXJwcmV0X2k2NCwgV2FzbUY2NFJlaW50ZXJwcmV0STY0LCBtYWNy
byhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fb3BlcmFuZCwgdDEsIHQwKQorICAgIGZpaTJkIHQw
LCB0MSwgZnQwCisgICAgcmV0dXJuZChjdHgsIGZ0MCkKK2VuZCkKKword2FzbU9wKGk2NF9yZWlu
dGVycHJldF9mNjQsIFdhc21JNjRSZWludGVycHJldEY2NCwgbWFjcm8oY3R4KQorICAgIG1sb2Fk
ZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorICAgIGZkMmlpIGZ0MCwgdDAsIHQxCisgICAgcmV0dXJu
MmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc19mNjQsIFdhc21JMzJU
cnVuY1NGNjQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisK
KyAgICBtb3ZlaWkgMHhjMWUwMDAwMDAwMjAwMDAwLCB0MSwgdDAgIyBJTlQzMl9NSU4gLSAxLjAK
KyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3Vu
ZHNUcnVuYworCisgICAgbW92ZWlpIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDEsIHQwICMgLUlOVDMy
X01JTgorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRP
ZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAorICAgIHJldHVybmkoY3R4
LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3Vu
ZHNUcnVuYykKK2VuZCkKKword2FzbU9wKGkzMl90cnVuY191X2Y2NCwgV2FzbUkzMlRydW5jVUY2
NCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1v
dmVpaSAweGJmZjAwMDAwMDAwMDAwMDAsIHQxLCB0MCAjIC0xLjAKKyAgICBmaWkyZCB0MCwgdDEs
IGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92
ZWlpIDB4NDFmMDAwMDAwMDAwMDAwMCwgdDEsIHQwICMgSU5UMzJfTUlOICogLTIuMAorICAgIGZp
aTJkIHQwLCB0MSwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5j
CisKKyAgICB0cnVuY2F0ZWQyaSBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0
T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5k
KQorCitzbG93V2FzbU9wKGk2NF90cnVuY19zX2YzMikKK3Nsb3dXYXNtT3AoaTY0X3RydW5jX3Vf
ZjMyKQorc2xvd1dhc21PcChpNjRfdHJ1bmNfc19mNjQpCitzbG93V2FzbU9wKGk2NF90cnVuY191
X2Y2NCkKKword2FzbU9wKGkzMl90cnVuY19zYXRfZjY0X3MsIFdhc21JMzJUcnVuY1NhdEY2NFMs
IG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3Zl
aWkgMHhjMWUwMDAwMDAwMjAwMDAwLCB0MSwgdDAgIyBJTlQzMl9NSU4gLSAxLjAKKyAgICBmaWky
ZCB0MCwgdDEsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1pbk9yTmFOCisKKyAgICBtb3ZlaWkgMHg0MWUwMDAwMDAwMDAwMDAwLCB0MSwgdDAgIyAtSU5U
MzJfTUlOCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91
dE9mQm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZDJpcyBmdDAsIHQwCisgICAgcmV0
dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgorICAgIGJkZXEg
ZnQwLCBmdDAsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCisgICAgbW92ZSAwLCB0MAorICAgIHJl
dHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29u
c3RleHByIElOVDMyX01BWCksIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3Vu
ZHNUcnVuY1NhdE1pbjoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UMzJfTUlOKSwgdDAKKyAgICBy
ZXR1cm5pKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF91LCBXYXNt
STMyVHJ1bmNTYXRGNjRVLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwg
ZnQwKQorCisgICAgbW92ZWlpIDB4YmZmMDAwMDAwMDAwMDAwMCwgdDEsIHQwICMgLTEuMAorICAg
IGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1Ry
dW5jU2F0TWluCisKKyAgICBtb3ZlaWkgMHg0MWYwMDAwMDAwMDAwMDAwLCB0MSwgdDAgIyBJTlQz
Ml9NSU4gKiAtMi4wCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0
MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAKKyAg
ICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUg
MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4Ogor
ICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UMzJfTUFYKSwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDAp
CitlbmQpCisKK3Nsb3dXYXNtT3AoaTY0X3RydW5jX3NhdF9mMzJfcykKK3Nsb3dXYXNtT3AoaTY0
X3RydW5jX3NhdF9mMzJfdSkKK3Nsb3dXYXNtT3AoaTY0X3RydW5jX3NhdF9mNjRfcykKK3Nsb3dX
YXNtT3AoaTY0X3RydW5jX3NhdF9mNjRfdSkKKworIyBFeHRlbmQgb3BzCisKK3dhc21PcChpNjRf
ZXh0ZW5kOF9zLCBXYXNtSTY0RXh0ZW5kOFMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBt
X29wZXJhbmQsIHQwKQorICAgIHN4YjJpIHQwLCB0MAorICAgIHJzaGlmdGkgdDAsIDMxLCB0MQor
ICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X2V4dGVuZDE2X3Ms
IFdhc21JNjRFeHRlbmQxNlMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQs
IHQwKQorICAgIHN4aDJpIHQwLCB0MAorICAgIHJzaGlmdGkgdDAsIDMxLCB0MQorICAgIHJldHVy
bjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X2V4dGVuZDMyX3MsIFdhc21JNjRF
eHRlbmQxNlMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQorICAg
IHJzaGlmdGkgdDAsIDMxLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCisj
IEF0b21pY3MKKworbWFjcm8gd2FzbUF0b21pY0JpbmFyeVJNV09wcyhsb3dlckNhc2VPcGNvZGUs
IHVwcGVyQ2FzZU9wY29kZSwgZm5iLCBmbmgsIGZuaSwgZm4yaSkKKyAgICB3YXNtT3AoaTY0X2F0
b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzgldXBwZXJDYXNl
T3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykK
KyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkaShjdHgsIG1f
dmFsdWUsIHQwKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNl
dCh0MywgdDUsIDEpCisgICAgICAgIGZuYih0MCwgW3QzXSwgdDIsIHQ1LCB0NikKKyAgICAgICAg
YW5kaSAweGZmLCB0NiAjIEZJWE1FOiBaZXJvRXh0ZW5kOFRvNjQKKyAgICAgICAgYXNzZXJ0KG1h
Y3JvKG9rKSBiaWJlcSB0NiwgMHhmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJuMmkoY3R4LCAw
LCB0NikKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MTYlbG93ZXJDYXNlT3Bj
b2RlJV91LCBXYXNtSTY0QXRvbWljUm13MTYldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkK
KyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBt
X29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkaShjdHgsIG1fdmFsdWUsIHQwKQorICAgICAgICBl
bWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0
MywgdDUsIDIpCisgICAgICAgIGZuaCh0MCwgW3QzXSwgdDIsIHQ1LCB0NikKKyAgICAgICAgYW5k
aSAweGZmZmYsIHQ2ICMgRklYTUU6IFplcm9FeHRlbmQxNlRvNjQKKyAgICAgICAgYXNzZXJ0KG1h
Y3JvKG9rKSBiaWJlcSB0NiwgMHhmZmZmLCAub2sgZW5kKQorICAgICAgICByZXR1cm4yaShjdHgs
IDAsIHQ2KQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXczMiVsb3dlckNhc2VP
cGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXczMiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4
KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgs
IG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAg
IGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNr
KHQzLCB0NSwgNCkKKyAgICAgICAgZm5pKHQwLCBbdDNdLCB0MiwgdDUsIHQ2KQorICAgICAgICBy
ZXR1cm4yaShjdHgsIDAsIHQ2KQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcl
bG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0b21pY1JtdyV1cHBlckNhc2VPcGNvZGUlLCBtYWNy
byhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1
KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwgdDEsIHQw
KQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGln
bm1lbnRDaGVjayh0MywgdDUsIDgpCisgICAgICAgIHB1c2ggdDQgIyBUaGlzIGlzIHRoZSBQQiwg
c28gbmVlZCB0byBiZSBzYXZlZCBhbmQgcmVzdG9yZWQKKyAgICAgICAgZm4yaSh0MSwgdDAsIFt0
M10sIHQ0LCB0NSwgdDcsIHQyLCB0NikKKyAgICAgICAgcG9wIHQ0CisgICAgICAgIHJldHVybjJp
KGN0eCwgdDIsIHQ2KQorICAgIGVuZCkKK2VuZAorCittYWNybyB3YXNtQXRvbWljQmluYXJ5Uk1X
T3BzV2l0aFdlYWtDQVMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuaSwgZm4y
aSkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNl
T3Bjb2RlLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQ2R1BSKQor
ICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAg
ICBsb2FkbGlua2IgbWVtLCB0NkdQUgorICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDZHUFIs
IHQyR1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29uZGIgdDVHUFIsIHQyR1BSLCBtZW0KKyAg
ICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBmZW5j
ZQorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwg
dDZHUFIpCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIC5sb29wOgorICAgICAg
ICAgICAgICAgIGxvYWRsaW5raCBtZW0sIHQ2R1BSCisgICAgICAgICAgICAgICAgZm5pKHQwR1BS
LCB0NkdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgc3RvcmVjb25kaCB0NUdQUiwgdDJHUFIs
IG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAorICAgICAgICAgICAg
ICAgIGZlbmNlCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0NkdQUikKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAgLmxvb3A6
CisgICAgICAgICAgICAgICAgbG9hZGxpbmtpIG1lbSwgdDZHUFIKKyAgICAgICAgICAgICAgICBm
bmkodDBHUFIsIHQ2R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmRpIHQ1R1BS
LCB0MkdQUiwgbWVtCisgICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAg
ICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MUdQUiwgdDBH
UFIsIG1lbSwgdDRHUFIsIHQ1R1BSLCB0N0dQUiwgdDJHUFIsIHQ2R1BSKQorICAgICAgICAgICAg
ICAgIGZlbmNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2FkbGluazJp
IG1lbSwgdDZHUFIsIHQyR1BSCisgICAgICAgICAgICAgICAgZm4yaSh0MUdQUiwgdDBHUFIsIHQy
R1BSLCB0NkdQUiwgdDRHUFIsIHQ1R1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29uZDJpIHQ3
R1BSLCB0NUdQUiwgdDRHUFIsIG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ3R1BSLCAwLCAu
bG9vcAorICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgIGVuZCkKK2VuZAorCitpZiBBUk12
NworICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYWRkLCBBZGQsCisgICAg
ICAgIG1hY3JvKHNyYzAsIHNyYzEsIGRzdCkKKyAgICAgICAgICAgIGFkZGkgc3JjMCwgc3JjMSwg
ZHN0CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8oc3JjME1zdywgc3JjMExzdywgc3JjMU1z
dywgc3JjMUxzdywgZHN0TXN3LCBkc3RMc3cpCisgICAgICAgICAgICBhZGRpcyBzcmMwTHN3LCBz
cmMxTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIGFkY2kgIHNyYzBNc3csIHNyYzFNc3csIGRzdE1z
dworICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9z
dWIsIFN1YiwKKyAgICAgICAgbWFjcm8oc3JjMCwgc3JjMSwgZHN0KQorICAgICAgICAgICAgc3Vi
aSBzcmMxLCBzcmMwLCBkc3QKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyhzcmMwTXN3LCBz
cmMwTHN3LCBzcmMxTXN3LCBzcmMxTHN3LCBkc3RNc3csIGRzdExzdykKKyAgICAgICAgICAgIHN1
YmlzIHNyYzFMc3csIHNyYzBMc3csIGRzdExzdworICAgICAgICAgICAgc2JjaSAgc3JjMU1zdywg
c3JjME1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3Bz
V2l0aFdlYWtDQVMoX3hjaGcsIFhjaGcsCisgICAgICAgIG1hY3JvKHNyYzAsIHNyYzEsIGRzdCkK
KyAgICAgICAgICAgIG1vdmUgc3JjMCwgZHN0CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8o
c3JjME1zdywgc3JjMExzdywgc3JjMU1zdywgc3JjMUxzdywgZHN0TXN3LCBkc3RMc3cpCisgICAg
ICAgICAgICBtb3ZlIHNyYzBMc3csIGRzdExzdworICAgICAgICAgICAgbW92ZSBzcmMwTXN3LCBk
c3RNc3cKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NB
UyhfYW5kLCBBbmQsCisgICAgICAgIG1hY3JvKHNyYzAsIHNyYzEsIGRzdCkKKyAgICAgICAgICAg
IGFuZGkgc3JjMCwgc3JjMSwgZHN0CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8oc3JjME1z
dywgc3JjMExzdywgc3JjMU1zdywgc3JjMUxzdywgZHN0TXN3LCBkc3RMc3cpCisgICAgICAgICAg
ICBhbmRpIHNyYzBMc3csIHNyYzFMc3csIGRzdExzdworICAgICAgICAgICAgYW5kaSBzcmMwTXN3
LCBzcmMxTXN3LCBkc3RNc3cKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdP
cHNXaXRoV2Vha0NBUyhfb3IsIE9yLAorICAgICAgICBtYWNybyhzcmMwLCBzcmMxLCBkc3QpCisg
ICAgICAgICAgICBvcmkgc3JjMCwgc3JjMSwgZHN0CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFj
cm8oc3JjME1zdywgc3JjMExzdywgc3JjMU1zdywgc3JjMUxzdywgZHN0TXN3LCBkc3RMc3cpCisg
ICAgICAgICAgICBvcmkgc3JjMExzdywgc3JjMUxzdywgZHN0THN3CisgICAgICAgICAgICBvcmkg
c3JjME1zdywgc3JjMU1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmlu
YXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3hvciwgWG9yLAorICAgICAgICBtYWNybyhzcmMwLCBzcmMx
LCBkc3QpCisgICAgICAgICAgICB4b3JpIHNyYzAsIHNyYzEsIGRzdAorICAgICAgICBlbmQsCisg
ICAgICAgIG1hY3JvKHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywg
ZHN0THN3KQorICAgICAgICAgICAgeG9yaSBzcmMwTHN3LCBzcmMxTHN3LCBkc3RMc3cKKyAgICAg
ICAgICAgIHhvcmkgc3JjME1zdywgc3JjMU1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKK2VuZAor
CittYWNybyB3YXNtQXRvbWljQ29tcGFyZUV4Y2hhbmdlT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBw
ZXJDYXNlT3Bjb2RlLCBmbmIsIGZuaCwgZm5pLCBmbjJpKQorICAgIHdhc21PcChpNjRfYXRvbWlj
X3JtdzglbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13OCV1cHBlckNhc2VPcGNv
ZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAg
ICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fZXhw
ZWN0ZWQsIHQxLCB0MCkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQ2LCB0MikKKyAg
ICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQodDMsIHQ1LCAxKQor
ICAgICAgICBmbmIodDEsIHQwLCB0NiwgdDIsIFt0M10sIHQ3LCB0NSkKKyAgICAgICAgYW5kaSAw
eGZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kOFRvNjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9r
KSBiaWJlcSB0MCwgMHhmZiwgLm9rIGVuZCkKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBiaWVx
IHQxLCAwLCAub2sgZW5kKQorICAgICAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKKyAgICBlbmQp
CisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MTYlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0
QXRvbWljUm13MTYldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRp
KGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisg
ICAgICAgIG1sb2FkMmkoY3R4LCBtX2V4cGVjdGVkLCB0MSwgdDApCisgICAgICAgIG1sb2FkMmko
Y3R4LCBtX3ZhbHVlLCB0NiwgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVy
QWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKHQzLCB0NSwgMikKKyAgICAgICAgZm5oKHQx
LCB0MCwgdDYsIHQyLCBbdDNdLCB0NywgdDUpCisgICAgICAgIGFuZGkgMHhmZmZmLCB0MCAjIEZJ
WE1FOiBaZXJvRXh0ZW5kMTZUbzY0CisgICAgICAgIGFzc2VydChtYWNybyhvaykgYmliZXEgdDAs
IDB4ZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBiaWVxIHQxLCAwLCAu
b2sgZW5kKQorICAgICAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKKyAgICBlbmQpCisgICAgd2Fz
bU9wKGk2NF9hdG9taWNfcm13MzIlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13
MzIldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9w
b2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1s
b2FkMmkoY3R4LCBtX2V4cGVjdGVkLCB0MSwgdDApCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX3Zh
bHVlLCB0NiwgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zm
c2V0V2l0aEFsaWdubWVudENoZWNrKHQzLCB0NSwgOCkKKyAgICAgICAgZm5pKHQxLCB0MCwgdDYs
IHQyLCBbdDNdLCB0NywgdDUpCisgICAgICAgIGFzc2VydChtYWNybyhvaykgYmllcSB0MSwgMCwg
Lm9rIGVuZCkKKyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCisgICAgZW5kKQorICAgIHdh
c21PcChpNjRfYXRvbWljX3JtdyVsb3dlckNhc2VPcGNvZGUlLCBXYXNtSTY0QXRvbWljUm13JXVw
cGVyQ2FzZU9wY29kZSUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVy
LCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkMmko
Y3R4LCBtX2V4cGVjdGVkLCB0MSwgdDApCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVlLCB0
NiwgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0
aEFsaWdubWVudENoZWNrKHQzLCB0NSwgOCkKKyAgICAgICAgcHVzaCB0NCAjIFRoaXMgaXMgdGhl
IFBCLCBzbyBuZWVkIHRvIGJlIHNhdmVkIGFuZCByZXN0b3JlZAorICAgICAgICBmbjJpKHQxLCB0
MCwgdDYsIHQyLCBbdDNdLCB0NywgdDUsIHQ0KQorICAgICAgICBwb3AgdDQKKyAgICAgICAgcmV0
dXJuMmkoY3R4LCB0MSwgdDApCisgICAgZW5kKQorZW5kCisKK2lmIEFSTXY3CisvLyBleHA6ICJl
eHBlY3RlZCIsIHZhbDogInZhbHVlIiwgcmVzOiAicmVzdWx0Igord2FzbUF0b21pY0NvbXBhcmVF
eGNoYW5nZU9wcyhfY21weGNoZywgQ21weGNoZywKKyAgICBtYWNybyhleHBNc3csIGV4cExzdywg
dmFsTXN3LCB2YWxMc3csIG1lbSwgc2NyYXRjaCwgcmVzTHN3KQorICAgICAgICAgICAgZmVuY2UK
KyAgICAgICAgLmxvb3A6CisgICAgICAgICAgICBsb2FkbGlua2IgbWVtLCByZXNMc3cKKyAgICAg
ICAgICAgIGJpbmVxIGV4cExzdywgcmVzTHN3LCAuZmFpbAorICAgICAgICAgICAgYmluZXEgZXhw
TXN3LCAwLCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kYiBzY3JhdGNoLCB2YWxMc3csIG1l
bQorICAgICAgICAgICAgYmllcSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5s
b29wCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgc3RvcmVjb25kYiBzY3JhdGNoLCByZXNM
c3csIG1lbQorICAgICAgICAgICAgYmllcSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAg
am1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAg
IG1vdmUgcmVzTHN3LCBleHBMc3cKKyAgICAgICAgICAgIG1vdmUgMCwgZXhwTXN3CisgICAgZW5k
LAorICAgIG1hY3JvKGV4cE1zdywgZXhwTHN3LCB2YWxNc3csIHZhbExzdywgbWVtLCBzY3JhdGNo
LCByZXNMc3cpCisgICAgICAgICAgICBmZW5jZQorICAgICAgICAubG9vcDoKKyAgICAgICAgICAg
IGxvYWRsaW5raCBtZW0sIHJlc0xzdworICAgICAgICAgICAgYmluZXEgZXhwTHN3LCByZXNMc3cs
IC5mYWlsCisgICAgICAgICAgICBiaW5lcSBleHBNc3csIDAsIC5mYWlsCisgICAgICAgICAgICBz
dG9yZWNvbmRoIHNjcmF0Y2gsIHZhbExzdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gs
IDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAg
ICAgICBzdG9yZWNvbmRoIHNjcmF0Y2gsIHJlc0xzdywgbWVtCisgICAgICAgICAgICBiaWVxIHNj
cmF0Y2gsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6Cisg
ICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAgbW92ZSByZXNMc3csIGV4cExzdworICAgICAg
ICAgICAgbW92ZSAwLCBleHBNc3cKKyAgICBlbmQsCisgICAgbWFjcm8oZXhwTXN3LCBleHBMc3cs
IHZhbE1zdywgdmFsTHN3LCBtZW0sIHNjcmF0Y2gsIHJlc0xzdykKKyAgICAgICAgICAgIGZlbmNl
CisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmtpIG1lbSwgcmVzTHN3CisgICAg
ICAgICAgICBiaW5lcSBleHBMc3csIHJlc0xzdywgLmZhaWwKKyAgICAgICAgICAgIGJpbmVxIGV4
cE1zdywgMCwgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZGkgc2NyYXRjaCwgdmFsTHN3LCBt
ZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAu
bG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZGkgc2NyYXRjaCwgcmVz
THN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAgICAg
IGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIGZlbmNlCisgICAgICAgICAg
ICBtb3ZlIHJlc0xzdywgZXhwTHN3CisgICAgICAgICAgICBtb3ZlIDAsIGV4cE1zdworICAgIGVu
ZCwKKyAgICBtYWNybyhleHBNc3csIGV4cExzdywgdmFsTXN3LCB2YWxMc3csIG1lbSwgc2NyYXRj
aCwgcmVzTXN3LCByZXNMc3cpCisgICAgICAgICAgICBmZW5jZQorICAgICAgICAubG9vcDoKKyAg
ICAgICAgICAgIGxvYWRsaW5rMmkgbWVtLCByZXNMc3csIHJlc01zdworICAgICAgICAgICAgYmlu
ZXEgZXhwTHN3LCByZXNMc3csIC5mYWlsCisgICAgICAgICAgICBiaW5lcSBleHBNc3csIHJlc01z
dywgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZDJpIHNjcmF0Y2gsIHZhbExzdywgdmFsTXN3
LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAgICAgIGpt
cCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZDJpIHNjcmF0Y2gs
IHJlc0xzdywgcmVzTXN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUK
KyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIGZlbmNl
CisgICAgICAgICAgICBtb3ZlIHJlc0xzdywgZXhwTHN3CisgICAgICAgICAgICBtb3ZlIHJlc01z
dywgZXhwTXN3CisgICAgZW5kKQorZW5kCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9XZWJBc3NlbWJseTY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9XZWJBc3NlbWJseTY0LmFzbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmU5ZWE0ODg1MjQyNjBhM2U0NDdmZjUw
MDkxOTRlODAwZWVlMTcwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L1dlYkFzc2VtYmx5NjQuYXNtCkBAIC0wLDAgKzEsMTI1OSBAQAorIyBDb3B5cmlnaHQg
KEMpIDIwMTEtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdo
dCAoQykgMjAyMSBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBPcGNvZGVzIHRoYXQgc2hvdWxkIGV2ZW50
dWFsbHkgYmUgc2hhcmVkIHdpdGggSlMgbGxpbnQKKword2FzbU9wKG1vdiwgV2FzbU1vdiwgbWFj
cm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fc3JjLCB0MCkKKyAgICByZXR1cm5xKGN0eCwgdDAp
CitlbmQpCisKKyMgV2FzbSBzcGVjaWZpYyBieXRlY29kZXMKKworbWFjcm8gZW1pdENoZWNrQW5k
UHJlcGFyZVBvaW50ZXIoY3R4LCBwb2ludGVyLCBvZmZzZXQsIHNpemUpCisgICAgbGVhcCBzaXpl
IC0gMVtwb2ludGVyLCBvZmZzZXRdLCB0NQorICAgIGJwYiB0NSwgYm91bmRzQ2hlY2tpbmdTaXpl
LCAuY29udGludWF0aW9uCisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nl
c3MpCisuY29udGludWF0aW9uOgorICAgIGFkZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgorZW5kCisK
K21hY3JvIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KGN0eCwgcG9pbnRl
ciwgb2Zmc2V0LCBzaXplKQorICAgIGxlYXAgc2l6ZSAtIDFbcG9pbnRlciwgb2Zmc2V0XSwgdDUK
KyAgICBicGIgdDUsIGJvdW5kc0NoZWNraW5nU2l6ZSwgLmNvbnRpbnVhdGlvbgorLnRocm93Ogor
ICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNjZXNzKQorLmNvbnRpbnVhdGlv
bjoKKyAgICBhZGRwIG1lbW9yeUJhc2UsIHBvaW50ZXIKKyAgICBhZGRwIG9mZnNldCwgcG9pbnRl
cgorZW5kCisKK21hY3JvIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0
aEFsaWdubWVudENoZWNrKGN0eCwgcG9pbnRlciwgb2Zmc2V0LCBzaXplKQorICAgIGxlYXAgc2l6
ZSAtIDFbcG9pbnRlciwgb2Zmc2V0XSwgdDUKKyAgICBicGIgdDUsIGJvdW5kc0NoZWNraW5nU2l6
ZSwgLmNvbnRpbnVhdGlvbgorLnRocm93OgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRz
TWVtb3J5QWNjZXNzKQorLmNvbnRpbnVhdGlvbjoKKyAgICBhZGRwIG1lbW9yeUJhc2UsIHBvaW50
ZXIKKyAgICBhZGRwIG9mZnNldCwgcG9pbnRlcgorICAgIGJ0cG56IHBvaW50ZXIsIChzaXplIC0g
MSksIC50aHJvdworZW5kCisKKworbWFjcm8gd2FzbUxvYWRPcChuYW1lLCBzdHJ1Y3QsIHNpemUs
IGZuKQorICAgIHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRp
KGN0eCwgbV9wb2ludGVyLCB0MCkKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisg
ICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKGN0eCwgdDAsIHQxLCBzaXplKQorICAg
ICAgICBmbihbdDAsIHQxXSwgdDIpCisgICAgICAgIHJldHVybnEoY3R4LCB0MikKKyAgICBlbmQp
CitlbmQKKword2FzbUxvYWRPcChsb2FkOF91LCBXYXNtTG9hZDhVLCAxLCBtYWNybyhtZW0sIGRz
dCkgbG9hZGIgbWVtLCBkc3QgZW5kKQord2FzbUxvYWRPcChsb2FkMTZfdSwgV2FzbUxvYWQxNlUs
IDIsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaCBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGxvYWQz
Ml91LCBXYXNtTG9hZDMyVSwgNCwgbWFjcm8obWVtLCBkc3QpIGxvYWRpIG1lbSwgZHN0IGVuZCkK
K3dhc21Mb2FkT3AobG9hZDY0X3UsIFdhc21Mb2FkNjRVLCA4LCBtYWNybyhtZW0sIGRzdCkgbG9h
ZHEgbWVtLCBkc3QgZW5kKQorCit3YXNtTG9hZE9wKGkzMl9sb2FkOF9zLCBXYXNtSTMyTG9hZDhT
LCAxLCBtYWNybyhtZW0sIGRzdCkgbG9hZGJzaSBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGk2
NF9sb2FkOF9zLCBXYXNtSTY0TG9hZDhTLCAxLCBtYWNybyhtZW0sIGRzdCkgbG9hZGJzcSBtZW0s
IGRzdCBlbmQpCit3YXNtTG9hZE9wKGkzMl9sb2FkMTZfcywgV2FzbUkzMkxvYWQxNlMsIDIsIG1h
Y3JvKG1lbSwgZHN0KSBsb2FkaHNpIG1lbSwgZHN0IGVuZCkKK3dhc21Mb2FkT3AoaTY0X2xvYWQx
Nl9zLCBXYXNtSTY0TG9hZDE2UywgMiwgbWFjcm8obWVtLCBkc3QpIGxvYWRoc3EgbWVtLCBkc3Qg
ZW5kKQord2FzbUxvYWRPcChpNjRfbG9hZDMyX3MsIFdhc21JNjRMb2FkMzJTLCA0LCBtYWNybyht
ZW0sIGRzdCkgbG9hZGlzIG1lbSwgZHN0IGVuZCkKKworbWFjcm8gd2FzbVN0b3JlT3AobmFtZSwg
c3RydWN0LCBzaXplLCBmbikKKyAgICB3YXNtT3AobmFtZSwgc3RydWN0LCBtYWNybyhjdHgpCisg
ICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDApCisgICAgICAgIHdnZXR1KGN0eCwgbV9v
ZmZzZXQsIHQxKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihjdHgsIHQwLCB0
MSwgc2l6ZSkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCisgICAgICAgIGZuKHQy
LCBbdDAsIHQxXSkKKyAgICAgICAgZGlzcGF0Y2goY3R4KQorICAgIGVuZCkKK2VuZAorCit3YXNt
U3RvcmVPcChzdG9yZTgsIFdhc21TdG9yZTgsIDEsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlYiB2
YWx1ZSwgbWVtIGVuZCkKK3dhc21TdG9yZU9wKHN0b3JlMTYsIFdhc21TdG9yZTE2LCAyLCBtYWNy
byh2YWx1ZSwgbWVtKSBzdG9yZWggdmFsdWUsIG1lbSBlbmQpCit3YXNtU3RvcmVPcChzdG9yZTMy
LCBXYXNtU3RvcmUzMiwgNCwgbWFjcm8odmFsdWUsIG1lbSkgc3RvcmVpIHZhbHVlLCBtZW0gZW5k
KQord2FzbVN0b3JlT3Aoc3RvcmU2NCwgV2FzbVN0b3JlNjQsIDgsIG1hY3JvKHZhbHVlLCBtZW0p
IHN0b3JlcSB2YWx1ZSwgbWVtIGVuZCkKKword2FzbU9wKHJlZl9pc19udWxsLCBXYXNtUmVmSXNO
dWxsLCBtYWNybyhjdHgpCisgICAgbWxvYWRwKGN0eCwgbV9yZWYsIHQwKQorICAgIGNxZXEgdDAs
IFZhbHVlTnVsbCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChnZXRf
Z2xvYmFsLCBXYXNtR2V0R2xvYmFsLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFu
Y2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJ
bmRleCwgdDEpCisgICAgbG9hZHEgW3QwLCB0MSwgOF0sIHQwCisgICAgcmV0dXJucShjdHgsIHQw
KQorZW5kKQorCit3YXNtT3Aoc2V0X2dsb2JhbCwgV2FzbVNldEdsb2JhbCwgbWFjcm8oY3R4KQor
ICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAg
ICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQorICAgIG1sb2FkcShjdHgsIG1fdmFsdWUs
IHQyKQorICAgIHN0b3JlcSB0MiwgW3QwLCB0MSwgOF0KKyAgICBkaXNwYXRjaChjdHgpCitlbmQp
CisKK3dhc21PcChnZXRfZ2xvYmFsX3BvcnRhYmxlX2JpbmRpbmcsIFdhc21HZXRHbG9iYWxQb3J0
YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9i
YWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkK
KyAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKKyAgICBsb2FkcSBbdDBdLCB0MAorICAgIHJldHVy
bnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKHNldF9nbG9iYWxfcG9ydGFibGVfYmluZGluZywg
V2FzbVNldEdsb2JhbFBvcnRhYmxlQmluZGluZywgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206
Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1f
Z2xvYmFsSW5kZXgsIHQxKQorICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQorICAgIGxvYWRx
IFt0MCwgdDEsIDhdLCB0MAorICAgIHN0b3JlcSB0MiwgW3QwXQorICAgIGRpc3BhdGNoKGN0eCkK
K2VuZCkKKworIyBPcGNvZGVzIHRoYXQgZG9uJ3QgaGF2ZSB0aGUgYGIzb3BgIGVudHJ5IGluIHdh
c20uanNvbi4gVGhpcyBzaG91bGQgYmUga2VwdCBpbiBzeW5jCisKKyMgaTMyIGJpbmFyeSBvcHMK
Kword2FzbU9wKGkzMl9kaXZfcywgV2FzbUkzMkRpdlMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRp
KGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0aXog
dDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBiaW5lcSB0MSwgLTEsIC5zYWZlCisgICAg
YmllcSB0MCwgY29uc3RleHByIElOVDMyX01JTiwgLnRocm93SW50ZWdlck92ZXJmbG93CisKKy5z
YWZlOgorICAgIGlmIFg4Nl82NAorICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGlj
X2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0MiBpcyByZHgKKyAgICAgICAgIyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCisgICAgICAgIGNkcWkKKyAgICAg
ICAgaWRpdmkgdDEKKyAgICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAorICAgICAg
ICBkaXZpcyB0MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCisgICAgcmV0
dXJuaShjdHgsIHQwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlv
bihEaXZpc2lvbkJ5WmVybykKKworLnRocm93SW50ZWdlck92ZXJmbG93OgorICAgIHRocm93RXhj
ZXB0aW9uKEludGVnZXJPdmVyZmxvdykKK2VuZCkKKword2FzbU9wKGkzMl9kaXZfdSwgV2FzbUkz
MkRpdlUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2Fk
aShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisK
KyAgICBpZiBYODZfNjQKKyAgICAgICAgeG9yaSB0MiwgdDIKKyAgICAgICAgdWRpdmkgdDEKKyAg
ICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAorICAgICAgICBkaXZpIHQxLCB0MAor
ICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKKyAgICByZXR1cm5pKGN0eCwgdDApCisK
Ky50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJv
KQorZW5kKQorCit3YXNtT3AoaTMyX3JlbV9zLCBXYXNtSTMyUmVtUywgbWFjcm8gKGN0eCkKKyAg
ICBtbG9hZGkoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorCisg
ICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGJpbmVxIHQxLCAtMSwgLnNh
ZmUKKyAgICBiaW5lcSB0MCwgY29uc3RleHByIElOVDMyX01JTiwgLnNhZmUKKworICAgIG1vdmUg
MCwgdDIKKyAgICBqbXAgLnJldHVybgorCisuc2FmZToKKyAgICBpZiBYODZfNjQKKyAgICAgICAg
IyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIg
aXMgcmR4CisgICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMzY5MgorICAgICAgICBjZHFpCisgICAgICAgIGlkaXZpIHQxCisgICAgZWxzaWYgQVJNNjQg
b3IgQVJNNjRFCisgICAgICAgIGRpdmlzIHQxLCB0MCwgdDIKKyAgICAgICAgbXVsaSB0MSwgdDIK
KyAgICAgICAgc3ViaSB0MCwgdDIsIHQyCisgICAgZWxzaWYgUklTQ1Y2NAorICAgICAgICByZW1p
cyB0MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCisKKy5yZXR1cm46Cisg
ICAgcmV0dXJuaShjdHgsIHQyKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4
Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGkzMl9yZW1fdSwgV2FzbUkz
MlJlbVUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2Fk
aShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisK
KyAgICBpZiBYODZfNjQKKyAgICAgICAgeG9yaSB0MiwgdDIKKyAgICAgICAgdWRpdmkgdDEKKyAg
ICBlbHNpZiBBUk02NCBvciBBUk02NEUKKyAgICAgICAgZGl2aSB0MSwgdDAsIHQyCisgICAgICAg
IG11bGkgdDEsIHQyCisgICAgICAgIHN1YmkgdDAsIHQyLCB0MgorICAgIGVsc2lmIFJJU0NWNjQK
KyAgICAgICAgcmVtaSB0MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCisg
ICAgcmV0dXJuaShjdHgsIHQyKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4
Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKworIyBpNjQgYmluYXJ5IG9wcworCit3YXNt
T3AoaTY0X2FkZCwgV2FzbUk2NEFkZCwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhz
LCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgYWRkcSB0MCwgdDEKKyAgICBy
ZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfc3ViLCBXYXNtSTY0U3ViLCBtYWNy
byhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhz
LCB0MSkKKyAgICBzdWJxIHQxLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2Fz
bU9wKGk2NF9tdWwsIFdhc21JNjRNdWwsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xo
cywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIG11bHEgdDAsIHQxCisgICAg
cmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X2Rpdl9zLCBXYXNtSTY0RGl2Uywg
bWFjcm8gKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwg
bV9yaHMsIHQxKQorCisgICAgYnRxeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGJx
bmVxIHQxLCAtMSwgLnNhZmUKKyAgICBicWVxIHQwLCBjb25zdGV4cHIgSU5UNjRfTUlOLCAudGhy
b3dJbnRlZ2VyT3ZlcmZsb3cKKworLnNhZmU6CisgICAgaWYgWDg2XzY0CisgICAgICAgICMgRklY
TUU6IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJk
eAorICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2
OTIKKyAgICAgICAgY3FvcQorICAgICAgICBpZGl2cSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFS
TTY0RSBvciBSSVNDVjY0CisgICAgICAgIGRpdnFzIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAg
ZXJyb3IKKyAgICBlbmQKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy50aHJvd0RpdmlzaW9uQnla
ZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorCisudGhyb3dJbnRlZ2Vy
T3ZlcmZsb3c6CisgICAgdGhyb3dFeGNlcHRpb24oSW50ZWdlck92ZXJmbG93KQorZW5kKQorCit3
YXNtT3AoaTY0X2Rpdl91LCBXYXNtSTY0RGl2VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZHEoY3R4
LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRxeiB0MSwg
LnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGlmIFg4Nl82NAorICAgICAgICB4b3JxIHQyLCB0
MgorICAgICAgICB1ZGl2cSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0
CisgICAgICAgIGRpdnEgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAor
ICAgIHJldHVybnEoY3R4LCB0MCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dF
eGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpNjRfcmVtX3MsIFdhc21J
NjRSZW1TLCBtYWNybyAoY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9h
ZHEoY3R4LCBtX3JocywgdDEpCisKKyAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwor
CisgICAgYnFuZXEgdDEsIC0xLCAuc2FmZQorICAgIGJxbmVxIHQwLCBjb25zdGV4cHIgSU5UNjRf
TUlOLCAuc2FmZQorCisgICAgbW92ZSAwLCB0MgorICAgIGptcCAucmV0dXJuCisKKy5zYWZlOgor
ICAgIGlmIFg4Nl82NAorICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0
IHRoYXQgdDAgaXMgcmF4IGFuZCB0MiBpcyByZHgKKyAgICAgICAgIyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCisgICAgICAgIGNxb3EKKyAgICAgICAgaWRp
dnEgdDEKKyAgICBlbHNpZiBBUk02NCBvciBBUk02NEUKKyAgICAgICAgZGl2cXMgdDEsIHQwLCB0
MgorICAgICAgICBtdWxxIHQxLCB0MgorICAgICAgICBzdWJxIHQwLCB0MiwgdDIKKyAgICBlbHNp
ZiBSSVNDVjY0CisgICAgICAgIHJlbXFzIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IK
KyAgICBlbmQKKworLnJldHVybjoKKyAgICByZXR1cm5xKGN0eCwgdDIpICMgcmR4IGhhcyB0aGUg
cmVtYWluZGVyCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERp
dmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTY0X3JlbV91LCBXYXNtSTY0UmVtVSwgbWFj
cm8gKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9y
aHMsIHQxKQorCisgICAgYnRxeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGlmIFg4
Nl82NAorICAgICAgICB4b3JxIHQyLCB0MgorICAgICAgICB1ZGl2cSB0MQorICAgIGVsc2lmIEFS
TTY0IG9yIEFSTTY0RQorICAgICAgICBkaXZxIHQxLCB0MCwgdDIKKyAgICAgICAgbXVscSB0MSwg
dDIKKyAgICAgICAgc3VicSB0MCwgdDIsIHQyCisgICAgZWxzaWYgUklTQ1Y2NAorICAgICAgICBy
ZW1xIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKKyAgICByZXR1cm5x
KGN0eCwgdDIpCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERp
dmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTY0X2FuZCwgV2FzbUk2NEFuZCwgbWFjcm8o
Y3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3Jocywg
dDEpCisgICAgYW5kcSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21P
cChpNjRfb3IsIFdhc21JNjRPciwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0
MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgb3JxIHQwLCB0MQorICAgIHJldHVy
bnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF94b3IsIFdhc21JNjRYb3IsIG1hY3JvKGN0
eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQx
KQorICAgIHhvcnEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3Ao
aTY0X3NobCwgV2FzbUk2NFNobCwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0
MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisgICAgbHNoaWZ0cSB0MSwgdDAKKyAgICBy
ZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfc2hyX3UsIFdhc21JNjRTaHJVLCBt
YWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1f
cmhzLCB0MSkKKyAgICB1cnNoaWZ0cSB0MSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQp
CisKK3dhc21PcChpNjRfc2hyX3MsIFdhc21JNjRTaHJTLCBtYWNybyhjdHgpCisgICAgbWxvYWRx
KGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKyAgICByc2hpZnRx
IHQxLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9yb3RyLCBX
YXNtSTY0Um90ciwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBt
bG9hZGkoY3R4LCBtX3JocywgdDEpCisgICAgcnJvdGF0ZXEgdDEsIHQwCisgICAgcmV0dXJucShj
dHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3JvdGwsIFdhc21JNjRSb3RsLCBtYWNybyhjdHgp
CisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkK
KyAgICBscm90YXRlcSB0MSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21P
cChpNjRfZXEsIFdhc21JNjRFcSwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0
MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FlcSB0MCwgdDEsIHQyCisgICAg
YW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9uZSwg
V2FzbUk2NE5lLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1s
b2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcW5lcSB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0
MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9sdF9zLCBXYXNtSTY0
THRTLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShj
dHgsIG1fcmhzLCB0MSkKKyAgICBjcWx0IHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAg
cmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2xlX3MsIFdhc21JNjRMZVMsIG1h
Y3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9y
aHMsIHQxKQorICAgIGNxbHRlcSB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVy
bmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9sdF91LCBXYXNtSTY0THRVLCBtYWNybyhj
dHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0
MSkKKyAgICBjcWIgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwg
dDIpCitlbmQpCisKK3dhc21PcChpNjRfbGVfdSwgV2FzbUk2NExlVSwgbWFjcm8oY3R4KQorICAg
IG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAg
Y3FiZXEgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitl
bmQpCisKK3dhc21PcChpNjRfZ3RfcywgV2FzbUk2NEd0UywgbWFjcm8oY3R4KQorICAgIG1sb2Fk
cShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FndCB0
MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKwor
d2FzbU9wKGk2NF9nZV9zLCBXYXNtSTY0R2VTLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwg
bV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWd0ZXEgdDAsIHQx
LCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21P
cChpNjRfZ3RfdSwgV2FzbUk2NEd0VSwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhz
LCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FhIHQwLCB0MSwgdDIKKyAg
ICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2dl
X3UsIFdhc21JNjRHZVUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisg
ICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxYWVxIHQwLCB0MSwgdDIKKyAgICBhbmRp
IDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCisjIGk2NCB1bmFyeSBvcHMKKwor
d2FzbU9wKGk2NF9jdHosIFdhc21JNjRDdHosIG1hY3JvIChjdHgpCisgICAgbWxvYWRxKGN0eCwg
bV9vcGVyYW5kLCB0MCkKKyAgICB0emNudHEgdDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQor
ZW5kKQorCit3YXNtT3AoaTY0X2NseiwgV2FzbUk2NENseiwgbWFjcm8oY3R4KQorICAgIG1sb2Fk
cShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgbHpjbnRxIHQwLCB0MQorICAgIHJldHVybnEoY3R4
LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9wb3BjbnQsIFdhc21JNjRQb3BjbnQsIG1hY3JvIChj
dHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCBhMSkKKyAgICBwcmVwYXJlU3RhdGVGb3JD
Q2FsbCgpCisgICAgbW92ZSBQQywgYTAKKyAgICBjQ2FsbDIoX3Nsb3dfcGF0aF93YXNtX3BvcGNv
dW50bGwpCisgICAgcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCisgICAgcmV0dXJucShjdHgsIHIx
KQorZW5kKQorCit3YXNtT3AoaTY0X2VxeiwgV2FzbUk2NEVxeiwgbWFjcm8oY3R4KQorICAgIG1s
b2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgY3FlcSB0MCwgMCwgdDAKKyAgICByZXR1cm5p
KGN0eCwgdDApCitlbmQpCisKKyMgZjY0IGJpbmFyeSBvcHMKKword2FzbU9wKGY2NF9jb3B5c2ln
biwgV2FzbUY2NENvcHlzaWduLCBtYWNybyhjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9saHMsIGZ0
MCkKKyAgICBtbG9hZGQoY3R4LCBtX3JocywgZnQxKQorCisgICAgZmQycSBmdDEsIHQxCisgICAg
bW92ZSAweDgwMDAwMDAwMDAwMDAwMDAsIHQyCisgICAgYW5kcSB0MiwgdDEKKworICAgIGZkMnEg
ZnQwLCB0MAorICAgIG1vdmUgMHg3ZmZmZmZmZmZmZmZmZmZmLCB0MgorICAgIGFuZHEgdDIsIHQw
CisKKyAgICBvcnEgdDEsIHQwCisgICAgZnEyZCB0MCwgZnQwCisgICAgcmV0dXJuZChjdHgsIGZ0
MCkKK2VuZCkKKworIyBUeXBlIGNvbnZlcnNpb24gb3BzCisKK3dhc21PcChpNjRfZXh0ZW5kX3Nf
aTMyLCBXYXNtSTY0RXh0ZW5kU0kzMiwgbWFjcm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1fb3Bl
cmFuZCwgdDApCisgICAgc3hpMnEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQor
Cit3YXNtT3AoaTY0X2V4dGVuZF91X2kzMiwgV2FzbUk2NEV4dGVuZFVJMzIsIG1hY3JvKGN0eCkK
KyAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHp4aTJxIHQwLCB0MQorICAgIHJl
dHVybnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGY2NF9yZWludGVycHJldF9pNjQsIFdhc21G
NjRSZWludGVycHJldEk2NCwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwg
dDApCisgICAgZnEyZCB0MCwgZnQwCisgICAgcmV0dXJuZChjdHgsIGZ0MCkKK2VuZCkKKword2Fz
bU9wKGk2NF9yZWludGVycHJldF9mNjQsIFdhc21JNjRSZWludGVycHJldEY2NCwgbWFjcm8oY3R4
KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorICAgIGZkMnEgZnQwLCB0MAorICAg
IHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGkzMl90cnVuY19zX2Y2NCwgV2FzbUkz
MlRydW5jU0Y2NCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkK
KworICAgIG1vdmUgMHhjMWUwMDAwMDAwMjAwMDAwLCB0MCAjIElOVDMyX01JTiAtIDEuMAorICAg
IGZxMmQgdDAsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwor
CisgICAgbW92ZSAweDQxZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDMyX01JTgorICAgIGZxMmQg
dDAsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAg
dHJ1bmNhdGVkMmlzIGZ0MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5k
c1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dh
c21PcChpMzJfdHJ1bmNfdV9mNjQsIFdhc21JMzJUcnVuY1VGNjQsIG1hY3JvIChjdHgpCisgICAg
bWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YmZmMDAwMDAwMDAwMDAw
MCwgdDAgIyAtMS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5v
dXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlIDB4NDFmMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQz
Ml9NSU4gKiAtMi4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5v
dXRPZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0ZWQyaSBmdDAsIHQwCisgICAgcmV0dXJuaShj
dHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJv
dW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5jX3NfZjMyLCBXYXNtSTY0VHJ1bmNT
RjMyLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAg
bW92ZSAweGRmMDAwMDAwLCB0MCAjIElOVDY0X01JTgorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJm
bHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmUgMHg1ZjAwMDAwMCwg
dDAgIyAtSU5UNjRfTUlOCisgICAgZmkyZiB0MCwgZnQxCisgICAgYmZndGVxdW4gZnQwLCBmdDEs
IC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0ZWYycXMgZnQwLCB0MAorICAgIHJldHVy
bnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0
T2ZCb3VuZHNUcnVuYykKK2VuZCkKKword2FzbU9wKGk2NF90cnVuY191X2YzMiwgV2FzbUk2NFRy
dW5jVUYzMiwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKwor
ICAgIG1vdmUgMHhiZjgwMDAwMCwgdDAgIyAtMS4wCisgICAgZmkyZiB0MCwgZnQxCisgICAgYmZs
dGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlIDB4NWY4MDAwMDAs
IHQwICMgSU5UNjRfTUlOICogLTIuMAorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmZ3RlcXVuIGZ0
MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVmMnEgZnQwLCB0MAorICAg
IHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRp
b24oT3V0T2ZCb3VuZHNUcnVuYykKK2VuZCkKKword2FzbU9wKGk2NF90cnVuY19zX2Y2NCwgV2Fz
bUk2NFRydW5jU0Y2NCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0
MCkKKworICAgIG1vdmUgMHhjM2UwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDY0X01JTgorICAgIGZx
MmQgdDAsIGZ0MQorICAgIGJkbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAg
IG1vdmUgMHg0M2UwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KKyAgICBmcTJkIHQwLCBm
dDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5j
YXRlZDJxcyBmdDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVu
YzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3Ao
aTY0X3RydW5jX3VfZjY0LCBXYXNtSTY0VHJ1bmNVRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2Fk
ZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGJmZjAwMDAwMDAwMDAwMDAsIHQw
ICMgLTEuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZC
b3VuZHNUcnVuYworCisgICAgbW92ZSAweDQzZjAwMDAwMDAwMDAwMDAsIHQwICMgSU5UNjRfTUlO
ICogLTIuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZC
b3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVkMnEgZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0
MCkKKworLm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNU
cnVuYykKK2VuZCkKKword2FzbU9wKGkzMl90cnVuY19zYXRfZjY0X3MsIFdhc21JMzJUcnVuY1Nh
dEY2NFMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAg
ICBtb3ZlIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDAgIyBJTlQzMl9NSU4gLSAxLjAKKyAgICBmcTJk
IHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5P
ck5hTgorCisgICAgbW92ZSAweDQxZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDMyX01JTgorICAg
IGZxMmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1heAorCisgICAgdHJ1bmNhdGVkMmlzIGZ0MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisK
Ky5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU46CisgICAgYmRlcSBmdDAsIGZ0MCwgLm91dE9m
Qm91bmRzVHJ1bmNTYXRNaW4KKyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQor
Cisub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UMzJfTUFY
KSwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgor
ICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQzMl9NSU4pLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkK
K2VuZCkKKword2FzbU9wKGkzMl90cnVuY19zYXRfZjY0X3UsIFdhc21JMzJUcnVuY1NhdEY2NFUs
IG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3Zl
IDB4YmZmMDAwMDAwMDAwMDAwMCwgdDAgIyAtMS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRs
dGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCisKKyAgICBtb3ZlIDB4NDFm
MDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQzMl9NSU4gKiAtMi4wCisgICAgZnEyZCB0MCwgZnQxCisg
ICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVu
Y2F0ZWQyaSBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1pbjoKKyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZC
b3VuZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDMyX01BWCksIHQwCisg
ICAgcmV0dXJuaShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5jX3NhdF9mMzJfcywg
V2FzbUk2NFRydW5jU2F0RjMyUywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGYoY3R4LCBtX29wZXJh
bmQsIGZ0MCkKKworICAgIG1vdmUgMHhkZjAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4KKyAgICBmaTJm
IHQwLCBmdDEKKyAgICBiZmx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JO
YU4KKworICAgIG1vdmUgMHg1ZjAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCisgICAgZmkyZiB0MCwg
ZnQxCisgICAgYmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAg
ICB0cnVuY2F0ZWYycXMgZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91
bmRzVHJ1bmNTYXRNaW5Pck5hTjoKKyAgICBiZmVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1pbgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJv
dW5kc1RydW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9NQVgpLCB0MAorICAg
IHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAo
Y29uc3RleHByIElOVDY0X01JTiksIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3
YXNtT3AoaTY0X3RydW5jX3NhdF9mMzJfdSwgV2FzbUk2NFRydW5jU2F0RjMyVSwgbWFjcm8gKGN0
eCkKKyAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZjgwMDAw
MCwgdDAgIyAtMS4wCisgICAgZmkyZiB0MCwgZnQxCisgICAgYmZsdGVxdW4gZnQwLCBmdDEsIC5v
dXRPZkJvdW5kc1RydW5jU2F0TWluCisKKyAgICBtb3ZlIDB4NWY4MDAwMDAsIHQwICMgSU5UNjRf
TUlOICogLTIuMAorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0
T2ZCb3VuZHNUcnVuY1NhdE1heAorCisgICAgdHJ1bmNhdGVmMnEgZnQwLCB0MAorICAgIHJldHVy
bnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAwLCB0MAor
ICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92
ZSAoY29uc3RleHByIFVJTlQ2NF9NQVgpLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkK
Kword2FzbU9wKGk2NF90cnVuY19zYXRfZjY0X3MsIFdhc21JNjRUcnVuY1NhdEY2NFMsIG1hY3Jv
IChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YzNl
MDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4KKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0
dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU4KKworICAgIG1vdmUgMHg0
M2UwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KKyAgICBmcTJkIHQwLCBmdDEKKyAgICBi
ZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRl
ZDJxcyBmdDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1pbk9yTmFOOgorICAgIGJkZXEgZnQwLCBmdDAsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCisg
ICAgbW92ZSAwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNT
YXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIElOVDY0X01BWCksIHQwCisgICAgcmV0dXJucShj
dHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAgICBtb3ZlIChjb25zdGV4cHIg
SU5UNjRfTUlOKSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRf
dHJ1bmNfc2F0X2Y2NF91LCBXYXNtSTY0VHJ1bmNTYXRGNjRVLCBtYWNybyAoY3R4KQorICAgIG1s
b2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGJmZjAwMDAwMDAwMDAwMDAs
IHQwICMgLTEuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0
T2ZCb3VuZHNUcnVuY1NhdE1pbgorCisgICAgbW92ZSAweDQzZjAwMDAwMDAwMDAwMDAsIHQwICMg
SU5UNjRfTUlOICogLTIuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQx
LCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisgICAgdHJ1bmNhdGVkMnEgZnQwLCB0MAorICAg
IHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAw
LCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6Cisg
ICAgbW92ZSAoY29uc3RleHByIFVJTlQ2NF9NQVgpLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkK
K2VuZCkKKworIyBFeHRlbmQgb3BzCisKK3dhc21PcChpNjRfZXh0ZW5kOF9zLCBXYXNtSTY0RXh0
ZW5kOFMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHN4
YjJxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9leHRl
bmQxNl9zLCBXYXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9v
cGVyYW5kLCB0MCkKKyAgICBzeGgycSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQp
CisKK3dhc21PcChpNjRfZXh0ZW5kMzJfcywgV2FzbUk2NEV4dGVuZDE2UywgbWFjcm8oY3R4KQor
ICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgc3hpMnEgdDAsIHQxCisgICAgcmV0
dXJucShjdHgsIHQxKQorZW5kKQorCisjIEF0b21pY3MKKworbWFjcm8gd2FzbUF0b21pY0JpbmFy
eVJNV09wcyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5iLCBmbmgsIGZuaSwg
Zm5xKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzglbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNt
STY0QXRvbWljUm13OCV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9h
ZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkK
KyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFBy
ZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KGN0eCwgdDMsIHQxLCAxKQorICAgICAgICBmbmIodDAs
IFt0M10sIHQyLCB0NSwgdDEpCisgICAgICAgIGFuZHEgMHhmZiwgdDAgIyBGSVhNRTogWmVyb0V4
dGVuZDhUbzY0CisgICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmYsIC5vayBl
bmQpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9h
dG9taWNfcm13MTYlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MTYldXBwZXJD
YXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0
MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIG1sb2FkcShjdHgs
IG1fdmFsdWUsIHQwKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09m
ZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgMikKKyAgICAgICAgZm5oKHQwLCBb
dDNdLCB0MiwgdDUsIHQxKQorICAgICAgICBhbmRxIDB4ZmZmZiwgdDAgIyBGSVhNRTogWmVyb0V4
dGVuZDE2VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmZmYsIC5v
ayBlbmQpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2
NF9hdG9taWNfcm13MzIlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MzIldXBw
ZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVy
LCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIG1sb2FkcShj
dHgsIG1fdmFsdWUsIHQwKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGlu
Z09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgNCkKKyAgICAgICAgZm5pKHQw
LCBbdDNdLCB0MiwgdDUsIHQxKQorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAw
eGZmZmZmZmZmLCAub2sgZW5kKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQor
ICAgIHdhc21PcChpNjRfYXRvbWljX3JtdyVsb3dlckNhc2VPcGNvZGUlLCBXYXNtSTY0QXRvbWlj
Um13JXVwcGVyQ2FzZU9wY29kZSUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9w
b2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIG1s
b2FkcShjdHgsIG1fdmFsdWUsIHQwKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRl
ckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgOCkKKyAgICAgICAg
Zm5xKHQwLCBbdDNdLCB0MiwgdDUsIHQxKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAg
ZW5kKQorZW5kCisKK21hY3JvIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhsb3dl
ckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5pLCBmbnEpCisgICAgd2FzbUF0b21pY0Jp
bmFyeVJNV09wcyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwKKyAgICAgICAgbWFj
cm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIGlmIFg4Nl82
NAorICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCisgICAgICAgICAgICAgICAgbG9h
ZGIgbWVtLCB0MEdQUgorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbW92ZSB0
MEdQUiwgdDJHUFIKKyAgICAgICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQorICAgICAgICAg
ICAgICAgIGJhdG9taWN3ZWFrY2FzYiB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNx
YiBtZW0sIHQxR1BSCisgICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisg
ICAgICAgICAgICAgICAgc3RvcmVjb25kcmVsYiB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAg
ICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAorICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIs
IHQwR1BSCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgaWYgWDg2XzY0CisgICAg
ICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKKyAgICAgICAgICAgICAgICBsb2FkaCBtZW0s
IHQwR1BSCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0
MkdQUgorICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAg
YmF0b21pY3dlYWtjYXNoIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAorICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9hZGxpbmthY3FoIG1lbSwg
dDFHUFIKKyAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAg
ICAgICAgICBzdG9yZWNvbmRyZWxoIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICAgICAg
YmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIK
KyAgICAgICAgICAgIGVuZAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBpZiBYODZfNjQKKyAgICAgICAgICAg
ICAgICBtb3ZlIHQwR1BSLCB0NUdQUgorICAgICAgICAgICAgICAgIGxvYWRpIG1lbSwgdDBHUFIK
KyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCisg
ICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBiYXRvbWlj
d2Vha2Nhc2kgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2FkbGlua2FjcWkgbWVtLCB0MUdQUgor
ICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAg
IHN0b3JlY29uZHJlbGkgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0
NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgorICAgICAg
ICAgICAgZW5kCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIGlmIFg4Nl82NAorICAgICAgICAgICAgICAgIG1v
dmUgdDBHUFIsIHQ1R1BSCisgICAgICAgICAgICAgICAgbG9hZHEgbWVtLCB0MEdQUgorICAgICAg
ICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKKyAgICAgICAg
ICAgICAgICBmbnEodDVHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIGJhdG9taWN3ZWFrY2Fz
cSB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxcSBtZW0sIHQxR1BSCisgICAgICAg
ICAgICAgICAgZm5xKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgc3RvcmVj
b25kcmVscSB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAw
LCAubG9vcAorICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCisgICAgICAgICAgICBl
bmQKKyAgICAgICAgZW5kKQorZW5kCisKK2lmIFg4Nl82NAorICAgIHdhc21BdG9taWNCaW5hcnlS
TVdPcHMoX2FkZCwgQWRkLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIs
IHQxR1BSKSBhdG9taWN4Y2hnYWRkYiB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBH
UFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGggdDBHUFIsIG1lbSBl
bmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21p
Y3hjaGdhZGRpIHQwR1BSLCBtZW0gZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQ
UiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkcSB0MEdQUiwgbWVtIGVuZCkKKyAgICB3YXNt
QXRvbWljQmluYXJ5Uk1XT3BzKF9zdWIsIFN1YiwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwg
dDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1YmIgdDBHUFIsIG1lbSBlbmQsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJo
IHQwR1BSLCBtZW0gZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIs
IHQxR1BSKSBhdG9taWN4Y2hnc3ViaSB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBH
UFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1YnEgdDBHUFIsIG1lbSBl
bmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfeGNoZywgWGNoZywKKyAgICAgICAgbWFj
cm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2IgdDBHUFIsIG1l
bSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0
b21pY3hjaGdoIHQwR1BSLCBtZW0gZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQ
UiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnaSB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFj
cm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3EgdDBHUFIsIG1l
bSBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9hbmQsIEFuZCwK
KyAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQorICAgICAgICAgICAgYW5kaSB0NUdQUiwgdDJH
UFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCisgICAgICAgICAg
ICBhbmRxIHQ1R1BSLCB0MkdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJN
V09wc1dpdGhXZWFrQ0FTKF9vciwgT3IsCisgICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKKyAg
ICAgICAgICAgIG9yaSB0NUdQUiwgdDJHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0
NUdQUiwgdDJHUFIpCisgICAgICAgICAgICBvcnEgdDVHUFIsIHQyR1BSCisgICAgICAgIGVuZCkK
KyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3hvciwgWG9yLAorICAgICAg
ICBtYWNybyh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICB4b3JpIHQ1R1BSLCB0MkdQUgorICAg
ICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgIHhvcnEg
dDVHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKK2Vsc2lmIEFSTTY0RQorICAgIHdhc21BdG9taWNC
aW5hcnlSTVdPcHMoX2FkZCwgQWRkLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwg
dDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRo
IHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAg
ICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRk
cSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfc3Vi
LCBTdWIsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisg
ICAgICAgICAgICBuZWdxIHQwR1BSCisgICAgICAgICAgICBhdG9taWN4Y2hnYWRkYiB0MEdQUiwg
bWVtLCB0MEdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BS
LCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBuZWdxIHQwR1BSCisgICAgICAgICAgICBhdG9t
aWN4Y2hnYWRkaCB0MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBuZWdxIHQwR1BS
CisgICAgICAgICAgICBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBl
bmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAg
ICAgICAgICBuZWdxIHQwR1BSCisgICAgICAgICAgICBhdG9taWN4Y2hnYWRkcSB0MEdQUiwgbWVt
LCB0MEdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfYW5kLCBB
bmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAg
ICAgICAgICBub3RxIHQwR1BSCisgICAgICAgICAgICBhdG9taWN4Y2hnY2xlYXJiIHQwR1BSLCBt
ZW0sIHQwR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5vdHEgdDBHUFIKKyAgICAgICAgICAgIGF0b21p
Y3hjaGdjbGVhcmggdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNy
byh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgbm90cSB0MEdQ
UgorICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFyaSB0MEdQUiwgbWVtLCB0MEdQUgorICAgICAg
ICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisg
ICAgICAgICAgICBub3RxIHQwR1BSCisgICAgICAgICAgICBhdG9taWN4Y2hnY2xlYXJxIHQwR1BS
LCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9v
ciwgT3IsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0
b21pY3hjaGdvcmIgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnb3JoIHQwR1BSLCBtZW0sIHQwR1BS
IGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRv
bWljeGNoZ29yaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcnEgdDBHUFIsIG1lbSwgdDBHUFIg
ZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hvciwgWG9yLAorICAgICAgICBtYWNy
byh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9yYiB0MEdQUiwg
bWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwg
dDFHUFIpIGF0b21pY3hjaGd4b3JoIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFj
cm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmkgdDBHUFIs
IG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIs
IHQxR1BSKSBhdG9taWN4Y2hneG9ycSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQpCisgICAgd2FzbUF0
b21pY0JpbmFyeVJNV09wcyhfeGNoZywgWGNoZywKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwg
dDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2IgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAor
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
aCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BS
LCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3EgdDBH
UFIsIG1lbSwgdDBHUFIgZW5kKQorZWxzaWYgQVJNNjQgb3IgUklTQ1Y2NAorICAgIHdhc21BdG9t
aWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYWRkLCBBZGQsCisgICAgICAgIG1hY3JvKHQwR1BS
LCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBhZGRpIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAg
ICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAg
ICAgYWRkcSB0MEdQUiwgdDFHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWlj
QmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3N1YiwgU3ViLAorICAgICAgICBtYWNybyh0MEdQUiwg
dDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgc3ViaSB0MUdQUiwgdDBHUFIsIHQyR1BSCisgICAg
ICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAg
IHN1YnEgdDFHUFIsIHQwR1BSLCB0MkdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0Jp
bmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94Y2hnLCBYY2hnLAorICAgICAgICBtYWNybyh0MEdQUiwg
dDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKKyAgICAgICAgZW5k
LAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgbW92ZSB0
MEdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRo
V2Vha0NBUyhfYW5kLCBBbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisg
ICAgICAgICAgICBhbmRpIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kLAorICAgICAg
ICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgYW5kcSB0MEdQUiwgdDFH
UFIsIHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdl
YWtDQVMoX29yLCBPciwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAg
ICAgICAgIG9yaSB0MEdQUiwgdDFHUFIsIHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFj
cm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIG9ycSB0MEdQUiwgdDFHUFIsIHQy
R1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMo
X3hvciwgWG9yLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAg
ICAgeG9yaSB0MEdQUiwgdDFHUFIsIHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIHhvcnEgdDBHUFIsIHQxR1BSLCB0MkdQ
UgorICAgICAgICBlbmQpCitlbmQKKworbWFjcm8gd2FzbUF0b21pY0NvbXBhcmVFeGNoYW5nZU9w
cyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5iLCBmbmgsIGZuaSwgZm5xKQor
ICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzglbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRv
bWljUm13OCV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4
LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAg
ICAgbWxvYWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFs
dWUsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChj
dHgsIHQzLCB0MSwgMSkKKyAgICAgICAgZm5iKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQorICAgICAg
ICBhbmRxIDB4ZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQ4VG82NAorICAgICAgICBhc3NlcnQo
bWFjcm8ob2spIGJxYmVxIHQwLCAweGZmLCAub2sgZW5kKQorICAgICAgICByZXR1cm5xKGN0eCwg
dDApCisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9wY29k
ZSVfdSwgV2FzbUk2NEF0b21pY1JtdzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisg
ICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9v
ZmZzZXQsIHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKKyAgICAgICAg
bWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2lu
dGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCAyKQorICAgICAg
ICBmbmgodDAsIHQyLCBbdDNdLCB0NSwgdDEpCisgICAgICAgIGFuZHEgMHhmZmZmLCB0MCAjIEZJ
WE1FOiBaZXJvRXh0ZW5kMTZUbzY0CisgICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAs
IDB4ZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKKyAg
ICB3YXNtT3AoaTY0X2F0b21pY19ybXczMiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9t
aWNSbXczMiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4
LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAg
ICAgbWxvYWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFs
dWUsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdp
dGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgNCkKKyAgICAgICAgZm5pKHQwLCB0MiwgW3Qz
XSwgdDUsIHQxKQorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmZmZmZmZm
LCAub2sgZW5kKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorICAgIHdhc21P
cChpNjRfYXRvbWljX3JtdyVsb3dlckNhc2VPcGNvZGUlLCBXYXNtSTY0QXRvbWljUm13JXVwcGVy
Q2FzZU9wY29kZSUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0
MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIG1sb2FkcShjdHgs
IG1fZXhwZWN0ZWQsIHQwKQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAgICAg
ICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hl
Y2soY3R4LCB0MywgdDEsIDgpCisgICAgICAgIGZucSh0MCwgdDIsIFt0M10sIHQ1LCB0MSkKKyAg
ICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKK2VuZAorCitpZiBYODZfNjQgb3IgQVJN
NjRFIG9yIEFSTTY0IG9yIFJJU0NWNjQKKyMgdDBHUFIgPT4gZXhwZWN0ZWQsIHQyR1BSID0+IHZh
bHVlLCBtZW0gPT4gbWVtb3J5IHJlZmVyZW5jZQord2FzbUF0b21pY0NvbXBhcmVFeGNoYW5nZU9w
cyhfY21weGNoZywgQ21weGNoZywKKyAgICBtYWNybyh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIs
IHQxR1BSKQorICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRFCisgICAgICAgICAgICBicWEgdDBH
UFIgLCAweGZmLCAuZmFpbAorICAgICAgICAgICAgYXRvbWljd2Vha2Nhc2IgdDBHUFIsIHQyR1BS
LCBtZW0KKyAgICAgICAgICAgIGptcCAuZG9uZQorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAg
IGF0b21pY2xvYWRiIG1lbSwgdDBHUFIKKyAgICAgICAgLmRvbmU6CisgICAgICAgIGVsc2UKKyAg
ICAgICAgLmxvb3A6CisgICAgICAgICAgICBsb2FkbGlua2FjcWIgbWVtLCB0MUdQUgorICAgICAg
ICAgICAgYnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kcmVs
YiB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAg
ICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29u
ZHJlbGIgdDVHUFIsIHQxR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25l
CisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBtb3Zl
IHQxR1BSLCB0MEdQUgorICAgICAgICBlbmQKKyAgICBlbmQsCisgICAgbWFjcm8odDBHUFIsIHQy
R1BSLCBtZW0sIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQorICAg
ICAgICAgICAgYnFhIHQwR1BSLCAweGZmZmYsIC5mYWlsCisgICAgICAgICAgICBhdG9taWN3ZWFr
Y2FzaCB0MEdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgam1wIC5kb25lCisgICAgICAgIC5m
YWlsOgorICAgICAgICAgICAgYXRvbWljbG9hZGggbWVtLCB0MEdQUgorICAgICAgICAuZG9uZToK
KyAgICAgICAgZWxzZQorICAgICAgICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5rYWNxaCBt
ZW0sIHQxR1BSCisgICAgICAgICAgICBicW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCisgICAgICAg
ICAgICBzdG9yZWNvbmRyZWxoIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1
R1BSLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAg
ICAgICAgICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDFHUFIsIG1lbQorICAgICAgICAgICAgYmll
cSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToK
KyAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCisgICAgICAgIGVuZAorICAgIGVuZCwKKyAg
ICBtYWNybyh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BSKQorICAgICAgICBpZiBYODZf
NjQgb3IgQVJNNjRFCisgICAgICAgICAgICBicWEgdDBHUFIsIDB4ZmZmZmZmZmYsIC5mYWlsCisg
ICAgICAgICAgICBhdG9taWN3ZWFrY2FzaSB0MEdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAg
am1wIC5kb25lCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgYXRvbWljbG9hZGkgbWVtLCB0
MEdQUgorICAgICAgICAuZG9uZToKKyAgICAgICAgZWxzZQorICAgICAgICAubG9vcDoKKyAgICAg
ICAgICAgIGxvYWRsaW5rYWNxaSBtZW0sIHQxR1BSCisgICAgICAgICAgICBicW5lcSB0MEdQUiwg
dDFHUFIsIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0MkdQUiwgbWVt
CisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29w
CisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwgdDFHUFIs
IG1lbQorICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAu
bG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCisgICAg
ICAgIGVuZAorICAgIGVuZCwKKyAgICBtYWNybyh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQx
R1BSKQorICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRFCisgICAgICAgICAgICBhdG9taWN3ZWFr
Y2FzcSB0MEdQUiwgdDJHUFIsIG1lbQorICAgICAgICBlbHNlCisgICAgICAgIC5sb29wOgorICAg
ICAgICAgICAgbG9hZGxpbmthY3FxIG1lbSwgdDFHUFIKKyAgICAgICAgICAgIGJxbmVxIHQwR1BS
LCB0MUdQUiwgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbHEgdDVHUFIsIHQyR1BSLCBt
ZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxv
b3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRyZWxxIHQ1R1BSLCB0MUdQ
UiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAgICAgICAgam1w
IC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAg
ICAgICAgZW5kCisgICAgZW5kKQorZW5kCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9vZmZsaW5lYXNtL2FybS5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNt
L2FybS5yYgppbmRleCA5NWM4NWMxMTM0MWJlOTQ5NWYxMWU3Nzg4YTRiMzcwYTZkOTFiYmE5Li43
ZGQ1MzUwODk4YjI2NDcyYzAzZmU3MDYyMmY3ZjIwMGJhOGUyZGU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL29mZmxpbmVhc20vYXJtLnJiCkBAIC02Myw2ICs2MywxMSBAQCBjbGFzcyBOb2RlCiAg
ICAgICAgIHJhaXNlICJCb2d1cyByZWdpc3RlciBuYW1lICN7ZG91YmxlT3BlcmFuZH0iIHVubGVz
cyBkb3VibGVPcGVyYW5kID1+IC9eZC8KICAgICAgICAgInMiICsgKCR+LnBvc3RfbWF0Y2gudG9f
aSAqIDIpLnRvX3MKICAgICBlbmQKKyAgICBkZWYgYXJtU2luZ2xlSGkKKyAgICAgICAgZG91Ymxl
T3BlcmFuZCA9IGFybU9wZXJhbmQKKyAgICAgICAgcmFpc2UgIkJvZ3VzIHJlZ2lzdGVyIG5hbWUg
I3tkb3VibGVPcGVyYW5kfSIgdW5sZXNzIGRvdWJsZU9wZXJhbmQgPX4gL15kLworICAgICAgICAi
cyIgKyAoJH4ucG9zdF9tYXRjaC50b19pICogMiArIDEpLnRvX3MKKyAgICBlbmQKIGVuZAogCiBj
bGFzcyBTcGVjaWFsUmVnaXN0ZXIKQEAgLTk4LDIxICsxMDMsMjEgQEAgZW5kCiBjbGFzcyBSZWdp
c3RlcklECiAgICAgZGVmIGFybU9wZXJhbmQKICAgICAgICAgY2FzZSBuYW1lCi0gICAgICAgIHdo
ZW4gInQwIiwgImEwIiwgInIwIgorICAgICAgICB3aGVuICJ0MCIsICJhMCIsICJ3YTAiLCAicjAi
CiAgICAgICAgICAgICAicjAiCi0gICAgICAgIHdoZW4gInQxIiwgImExIiwgInIxIgorICAgICAg
ICB3aGVuICJ0MSIsICJhMSIsICJ3YTEiLCAicjEiCiAgICAgICAgICAgICAicjEiCi0gICAgICAg
IHdoZW4gInQyIiwgImEyIgorICAgICAgICB3aGVuICJ0MiIsICJhMiIsICJ3YTIiCiAgICAgICAg
ICAgICAicjIiCi0gICAgICAgIHdoZW4gInQzIiwgImEzIgorICAgICAgICB3aGVuICJ0MyIsICJh
MyIsICJ3YTMiCiAgICAgICAgICAgICAicjMiCiAgICAgICAgIHdoZW4gInQ0IiAjIExMSW50IFBD
CiAgICAgICAgICAgICAicjQiCi0gICAgICAgIHdoZW4gInQ1IgorICAgICAgICB3aGVuICJ0NSIs
ICJ3czAiICMgd3MwIG11c3QgYmUgYSBub24tYXJndW1lbnQvbm9uLXJldHVybiBHUFIKICAgICAg
ICAgICAgICJyNSIKICAgICAgICAgd2hlbiAiY2ZyIgogICAgICAgICAgICAgInI3IgotICAgICAg
ICB3aGVuICJ0NiIKKyAgICAgICAgd2hlbiAidDYiLCAid3MxIiAjIHdzMSBtdXN0IGJlIGEgbm9u
LWFyZ3VtZW50L25vbi1yZXR1cm4gR1BSCiAgICAgICAgICAgICAicjgiCiAgICAgICAgIHdoZW4g
InQ3IgogICAgICAgICAgICAgInI5IiAjIHI5IGlzIGFsc28gYSBzY3JhdGNoIHJlZ2lzdGVyLCBz
byB1c2UgY2FyZWZ1bGx5IQpAQCAtMTM1LDE4ICsxNDAsMjIgQEAgZW5kCiBjbGFzcyBGUFJlZ2lz
dGVySUQKICAgICBkZWYgYXJtT3BlcmFuZAogICAgICAgICBjYXNlIG5hbWUKLSAgICAgICAgd2hl
biAiZnQwIiwgImZyIiwgImZhMCIKKyAgICAgICAgd2hlbiAiZnQwIiwgImZyIiwgImZhMCIsICJ3
ZmEwIgogICAgICAgICAgICAgImQwIgotICAgICAgICB3aGVuICJmdDEiLCAiZmExIgorICAgICAg
ICB3aGVuICJmdDEiLCAiZmExIiwgIndmYTEiCiAgICAgICAgICAgICAiZDEiCi0gICAgICAgIHdo
ZW4gImZ0MiIKKyAgICAgICAgd2hlbiAiZnQyIiwgIndmYTIiCiAgICAgICAgICAgICAiZDIiCi0g
ICAgICAgIHdoZW4gImZ0MyIKKyAgICAgICAgd2hlbiAiZnQzIiwgIndmYTMiCiAgICAgICAgICAg
ICAiZDMiCi0gICAgICAgIHdoZW4gImZ0NCIKKyAgICAgICAgd2hlbiAiZnQ0IiwgIndmYTQiCiAg
ICAgICAgICAgICAiZDQiCi0gICAgICAgIHdoZW4gImZ0NSIKKyAgICAgICAgd2hlbiAiZnQ1Iiwg
IndmYTUiCiAgICAgICAgICAgICAiZDUiCisgICAgICAgIHdoZW4gImZ0NiIsICJ3ZmE2IgorICAg
ICAgICAgICAgImQ2IgorICAgICAgICB3aGVuICJmdDciLCAid2ZhNyIKKyAgICAgICAgICAgICJk
NyIKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmFpc2UgIkJhZCByZWdpc3RlciAje25hbWV9
IGZvciBBUk0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKICAgICAgICAgZW5kCkBAIC0xNjMsNyAr
MTcyLDExIEBAIGVuZAogY2xhc3MgQWRkcmVzcwogICAgIGRlZiBhcm1PcGVyYW5kCiAgICAgICAg
IHJhaXNlICJCYWQgb2Zmc2V0IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIGlmIG9mZnNldC52YWx1
ZSA8IC0weGZmIG9yIG9mZnNldC52YWx1ZSA+IDB4ZmZmCi0gICAgICAgICJbI3tiYXNlLmFybU9w
ZXJhbmR9LCBcIyN7b2Zmc2V0LnZhbHVlfV0iCisgICAgICAgIGlmIG9mZnNldC52YWx1ZSA9PSAw
CisgICAgICAgICAgIlsje2Jhc2UuYXJtT3BlcmFuZH1dIgorICAgICAgICBlbHNlCisgICAgICAg
ICAgIlsje2Jhc2UuYXJtT3BlcmFuZH0sIFwjI3tvZmZzZXQudmFsdWV9XSIKKyAgICAgICAgZW5k
CiAgICAgZW5kCiBlbmQKIApAQCAtMzA2LDE2ICszMTksMjUgQEAgY2xhc3MgU2VxdWVuY2UKICAg
ICAgICAgcmVzdWx0ID0gYXJtTG93ZXJMYWJlbFJlZmVyZW5jZXMocmVzdWx0KQogICAgICAgICBy
ZXN1bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXMocmVzdWx0KSB7CiAgICAgICAgICAg
ICB8IG5vZGUsIGFkZHJlc3MgfAotICAgICAgICAgICAgaWYgYWRkcmVzcy5pc19hPyBCYXNlSW5k
ZXgKLSAgICAgICAgICAgICAgICBhZGRyZXNzLm9mZnNldC52YWx1ZSA9PSAwCi0gICAgICAgICAg
ICBlbHNpZiBhZGRyZXNzLmlzX2E/IEFkZHJlc3MKLSAgICAgICAgICAgICAgICAoLTB4ZmYuLjB4
ZmZmKS5pbmNsdWRlPyBhZGRyZXNzLm9mZnNldC52YWx1ZQorICAgICAgICAgICAgY2FzZSBub2Rl
Lm9wY29kZQorICAgICAgICAgICAgd2hlbiAibG9hZDJpYSIsICJzdG9yZTJpYSIKKyAgICAgICAg
ICAgICAgICBpZiBhZGRyZXNzLmlzX2E/IEFkZHJlc3MKKyAgICAgICAgICAgICAgICAgICAgKGFk
ZHJlc3Mub2Zmc2V0LnZhbHVlICUgNCA9PSAwKSAmJiAoKC0xMDIzLi4xMDIzKS5pbmNsdWRlPyBh
ZGRyZXNzLm9mZnNldC52YWx1ZSkKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIGZhbHNlCisgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgZmFsc2UKKyAgICAgICAgICAgICAgICBpZiBhZGRyZXNzLmlzX2E/IEJhc2VJ
bmRleAorICAgICAgICAgICAgICAgICAgICBhZGRyZXNzLm9mZnNldC52YWx1ZSA9PSAwICYmIG5v
ZGUub3Bjb2RlCisgICAgICAgICAgICAgICAgZWxzaWYgYWRkcmVzcy5pc19hPyBBZGRyZXNzCisg
ICAgICAgICAgICAgICAgICAgICgtMHhmZi4uMHhmZmYpLmluY2x1ZGU/IGFkZHJlc3Mub2Zmc2V0
LnZhbHVlCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBmYWxzZQor
ICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgZW5kCiAgICAgICAgIH0KICAgICAgICAg
cmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzRG91YmxlKHJlc3VsdCkKLSAgICAg
ICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkSW1tZWRpYXRlcyhyZXN1bHQsIFsic3RvcmVi
IiwgInN0b3JlaCIsICJzdG9yZWkiLCAic3RvcmVwIiwgInN0b3JlcSJdKQorICAgICAgICByZXN1
bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKHJlc3VsdCwgWyJzdG9yZWIiLCAic3Rv
cmVoIiwgInN0b3JlaSIsICJzdG9yZXAiLCAic3RvcmVxIiwgInN0b3JlMmlhIl0pCiAgICAgICAg
IHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEltbWVkaWF0ZXMocmVzdWx0LCAwLi4weGZmLCAw
Li4weDBmZikKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzKHJl
c3VsdCkKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyUmVnaXN0ZXJSZXVzZShyZXN1bHQpCkBA
IC0zMzQsNiArMzU2LDEwIEBAIGRlZiBhcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpCiAgICAg
YXJtT3BlcmFuZHMoW29wZXJhbmRzWy0xXV0gKyBvcGVyYW5kc1swLi4tMl0pCiBlbmQKIAorZGVm
IGFybUZsaXBwZWRPcGVyYW5kc1BhaXIob3BlcmFuZHMpCisgICAgYXJtT3BlcmFuZHMoW29wZXJh
bmRzWy0yXSwgb3BlcmFuZHNbLTFdXSArIG9wZXJhbmRzWzAuLi0zXSkKK2VuZAorCiBkZWYgZW1p
dEFybUNvbXBhY3Qob3Bjb2RlMiwgb3Bjb2RlMywgb3BlcmFuZHMpCiAgICAgaWYgb3BlcmFuZHMu
c2l6ZSA9PSAzCiAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGUzfSAje2FybUZsaXBwZWRPcGVy
YW5kcyhvcGVyYW5kcyl9IgpAQCAtMzYzLDYgKzM4OSwxMiBAQCBkZWYgZW1pdEFybURvdWJsZUJy
YW5jaChicmFuY2hPcGNvZGUsIG9wZXJhbmRzKQogICAgICRhc20ucHV0cyAiI3ticmFuY2hPcGNv
ZGV9ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgogZW5kCiAKK2RlZiBlbWl0QXJtU2luZ2xlQnJh
bmNoKGJyYW5jaE9wY29kZSwgb3BlcmFuZHMpCisgICAgJGFzbS5wdXRzICJ2Y21wZS5mMzIgI3tv
cGVyYW5kc1swXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iCisgICAgJGFz
bS5wdXRzICJ2bXJzIGFwc3JfbnpjdiwgZnBzY3IiCisgICAgJGFzbS5wdXRzICIje2JyYW5jaE9w
Y29kZX0gI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCitlbmQKKwogZGVmIGVtaXRBcm1UZXN0KG9w
ZXJhbmRzKQogICAgIHZhbHVlID0gb3BlcmFuZHNbMF0KICAgICBjYXNlIG9wZXJhbmRzLnNpemUK
QEAgLTM4Myw3ICs0MTUsMTUgQEAgZW5kCiAKIGRlZiBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVy
YW5kcywgY29kZSkKICAgICAkYXNtLnB1dHMgIm1vdiAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9
LCBcIzAiCi0gICAgJGFzbS5wdXRzICJ2Y21wZS5mNjQgI3thcm1PcGVyYW5kcyhvcGVyYW5kc1sw
Li4xXSl9IgorICAgICRhc20ucHV0cyAidmNtcC5mNjQgI3thcm1PcGVyYW5kcyhvcGVyYW5kc1sw
Li4xXSl9IgorICAgICRhc20ucHV0cyAidm1ycyBBUFNSX256Y3YsIEZQU0NSIgorICAgICRhc20u
cHV0cyAiaXQgI3tjb2RlfSIKKyAgICAkYXNtLnB1dHMgIm1vdiN7Y29kZX0gI3tvcGVyYW5kc1sy
XS5hcm1PcGVyYW5kfSwgXCMxIgorZW5kCisKK2RlZiBlbWl0QXJtRmxvYXRDb21wYXJlKG9wZXJh
bmRzLCBjb2RlKQorICAgICRhc20ucHV0cyAibW92ICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0s
IFwjMCIKKyAgICAkYXNtLnB1dHMgInZjbXAuZjMyICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSwg
I3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IgogICAgICRhc20ucHV0cyAidm1ycyBBUFNSX256Y3Ys
IEZQU0NSIgogICAgICRhc20ucHV0cyAiaXQgI3tjb2RlfSIKICAgICAkYXNtLnB1dHMgIm1vdiN7
Y29kZX0gI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgXCMxIgpAQCAtNDAzLDYgKzQ0MywxOSBA
QCBkZWYgZW1pdEFybVRlc3RTZXQob3BlcmFuZHMsIGNvZGUpCiAgICAgJGFzbS5wdXRzICJtb3Yj
e2NvZGV9ICN7b3BlcmFuZHNbLTFdLmFybU9wZXJhbmR9LCBcIzEiCiBlbmQKIAorZGVmIHJhd0lu
c3RydWN0aW9uKGNvZGVPcmlnaW4sIHRleHQpCisgICAgcmV0dXJuIEluc3RydWN0aW9uLm5ldyhj
b2RlT3JpZ2luLCAiZW1pdCIsIFtTdHJpbmdMaXRlcmFsLm5ldyhjb2RlT3JpZ2luLCAiXCIje3Rl
eHR9XCIiKV0pCitlbmQKKworZGVmIGVtaXRBcm1UcnVuY2F0ZUZsb2F0KGNvZGVPcmlnaW4sIHRv
LCBmcm9tLCBvcGVyYW5kcykKKyAgICB0bXAgPSBBUk1fRVhUUkFfRlBSU1stMV0KKyAgICBzcmMg
PSBmcm9tID09ICJmMzIiID8gb3BlcmFuZHNbMF0uYXJtU2luZ2xlIDogb3BlcmFuZHNbMF0uYXJt
T3BlcmFuZAorICAgIFNlcXVlbmNlLm5ldyhjb2RlT3JpZ2luLCBbCisgICAgICAgIHJhd0luc3Ry
dWN0aW9uKGNvZGVPcmlnaW4sICJ2Y3Z0LiN7dG99LiN7ZnJvbX0gI3t0bXAuYXJtU2luZ2xlfSwg
I3tzcmN9IiksCisgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICJ2bW92ICN7b3Bl
cmFuZHNbMV0uYXJtT3BlcmFuZH0sICN7dG1wLmFybVNpbmdsZX0iKQorICAgIF0pLmxvd2VyKCRh
Y3RpdmVCYWNrZW5kKQorZW5kCisKIGNsYXNzIEluc3RydWN0aW9uCiAgICAgZGVmIGxvd2VyQVJN
djcKICAgICAgICAgcmFpc2UgdW5sZXNzICRhY3RpdmVCYWNrZW5kID09ICJBUk12NyIKQEAgLTQ0
MCw2ICs0OTMsMTAgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgICAgICAgICAgJGFz
bS5wdXRzICJhZGQje3N1ZmZpeH0gI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAg
ICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJhZGNpIgor
ICAgICAgICAgICAgZW1pdEFybSgiYWRjIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImFic2Qi
CisgICAgICAgICAgJGFzbS5wdXRzICJ2YWJzLmY2NCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVy
YW5kcyl9IgogICAgICAgICB3aGVuICJhbmRpIiwgImFuZHAiCiAgICAgICAgICAgICBlbWl0QXJt
Q29tcGFjdCgiYW5kcyIsICJhbmQiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAib3JpIiwgIm9y
cCIsICJvcmgiCkBAIC00NTgsMTQgKzUxNSwzNCBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAg
ICAgICAgZW1pdEFybSgibXVsIiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gInN1YmkiLCAic3Vi
cCIsICJzdWJpcyIKICAgICAgICAgICAgIGVtaXRBcm1Db21wYWN0KCJzdWJzIiwgInN1YnMiLCBv
cGVyYW5kcykKKyAgICAgICAgd2hlbiAic2JjaSIKKyAgICAgICAgICAgIGVtaXRBcm0oInNiYyIs
IG9wZXJhbmRzKQogICAgICAgICB3aGVuICJuZWdpIiwgIm5lZ3AiCiAgICAgICAgICAgICAkYXNt
LnB1dHMgInJzYnMgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1P
cGVyYW5kfSwgXCMwIgogICAgICAgICB3aGVuICJub3RpIgogICAgICAgICAgICAgJGFzbS5wdXRz
ICJtdm5zICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFu
ZH0iCisgICAgICAgIHdoZW4gImxyb3RhdGVpIgorICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhj
b2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsK
KyAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgIm1vdmUiLCBbb3Bl
cmFuZHNbMF0sIHRtcF0pLAorICAgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3Jp
Z2luLCAibmVnaSIsIFt0bXBdKSwKKyAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29k
ZU9yaWdpbiwgInJyb3RhdGVpIiwgW3RtcCwgb3BlcmFuZHNbMV1dKSwKKyAgICAgICAgICAgIF0p
Lmxvd2VyKCRhY3RpdmVCYWNrZW5kKQorICAgICAgICB3aGVuICJycm90YXRlaSIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAicm9yICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAg
ICAgIHdoZW4gInR6Y250aSIKKyAgICAgICAgICAgICRhc20ucHV0cyAicmJpdCAje2FybUZsaXBw
ZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJjbHogI3tvcGVy
YW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSIKKyAgICAgICAg
d2hlbiAibHpjbnRpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJjbHogI3thcm1GbGlwcGVkT3Bl
cmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAibG9hZGkiLCAibG9hZGlzIiwgImxvYWRw
IgogICAgICAgICAgICAgJGFzbS5wdXRzICJsZHIgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFu
ZHMpfSIKICAgICAgICAgd2hlbiAic3RvcmVpIiwgInN0b3JlcCIKICAgICAgICAgICAgICRhc20u
cHV0cyAic3RyICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZDJp
YSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRyZCAje2FybUZsaXBwZWRPcGVyYW5kc1BhaXIo
b3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmUyaWEiCisgICAgICAgICAgICAkYXNtLnB1
dHMgInN0cmQgI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJsb2FkYiIK
ICAgICAgICAgICAgICRhc20ucHV0cyAibGRyYiAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5k
cyl9IgogICAgICAgICB3aGVuICJsb2FkYnNpIgpAQCAtNDc4LDIwICs1NTUsMTEwIEBAIGNsYXNz
IEluc3RydWN0aW9uCiAgICAgICAgICAgICAkYXNtLnB1dHMgImxkcnNoLncgI3thcm1GbGlwcGVk
T3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAic3RvcmVoIgogICAgICAgICAgICAg
JGFzbS5wdXRzICJzdHJoICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAi
bG9hZGxpbmtiIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsZHJleGIgI3thcm1GbGlwcGVkT3Bl
cmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGxpbmtoIgorICAgICAgICAgICAg
JGFzbS5wdXRzICJsZHJleGggI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAg
ICAgd2hlbiAibG9hZGxpbmtpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsZHJleCAje2FybUZs
aXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkbGluazJpIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJsZHJleGQgI3thcm1GbGlwcGVkT3BlcmFuZHNQYWlyKG9wZXJh
bmRzKX0iCisgICAgICAgIHdoZW4gInN0b3JlY29uZGIiCisgICAgICAgICAgICAkYXNtLnB1dHMg
InN0cmV4YiAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN0b3JlY29u
ZGgiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN0cmV4aCAje2FybU9wZXJhbmRzKG9wZXJhbmRz
KX0iCisgICAgICAgIHdoZW4gInN0b3JlY29uZGkiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN0
cmV4ICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVjb25kMmki
CisgICAgICAgICAgICAkYXNtLnB1dHMgInN0cmV4ZCAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0i
CiAgICAgICAgIHdoZW4gImxvYWRkIgogICAgICAgICAgICAgJGFzbS5wdXRzICJ2bGRyLjY0ICN7
YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gInN0b3JlZCIKICAg
ICAgICAgICAgICRhc20ucHV0cyAidnN0ci42NCAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0iCisg
ICAgICAgIHdoZW4gImxvYWRmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bGRyLjMyICN7b3Bl
cmFuZHNbLTFdLmFybVNpbmdsZX0sICN7YXJtT3BlcmFuZHMob3BlcmFuZHNbMC4uLTJdKX0iCisg
ICAgICAgIHdoZW4gInN0b3JlZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidnN0ci4zMiAje29w
ZXJhbmRzWzBdLmFybVNpbmdsZX0sICN7YXJtT3BlcmFuZHMob3BlcmFuZHNbMS4uLTFdKX0iCisg
ICAgICAgIHdoZW4gImFkZGYiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZhZGQuZjMyICN7b3Bl
cmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRz
WzBdLmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gInN1YmYiCisgICAgICAgICAgICAkYXNtLnB1
dHMgInZzdWIuZjMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5hcm1T
aW5nbGV9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gIm11bGYiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgInZtdWwuZjMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwg
I3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCisgICAg
ICAgIHdoZW4gImRpdmYiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZkaXYuZjMyICN7b3BlcmFu
ZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBd
LmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gInNxcnRmIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJ2c3FydC5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybVNp
bmdsZX0iCisgICAgICAgIHdoZW4gImFic2YiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZhYnMu
ZjMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9Igor
ICAgICAgICB3aGVuICJuZWdmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bmVnLmYzMiAje29w
ZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAg
d2hlbiAiYmZsdCIKKyAgICAgICAgICAgIGVtaXRBcm1TaW5nbGVCcmFuY2goImJtaSIsIG9wZXJh
bmRzKQorICAgICAgICB3aGVuICJiZmx0dW4iCisgICAgICAgICAgICBlbWl0QXJtU2luZ2xlQnJh
bmNoKCJibHQiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmZsdGVxdW4iCisgICAgICAgICAg
ICBlbWl0QXJtU2luZ2xlQnJhbmNoKCJibGUiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmZl
cSIKKyAgICAgICAgICAgIGVtaXRBcm1TaW5nbGVCcmFuY2goImJlcSIsIG9wZXJhbmRzKQorICAg
ICAgICB3aGVuICJiZmd0IgorICAgICAgICAgICAgZW1pdEFybVNpbmdsZUJyYW5jaCgiYmd0Iiwg
b3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJmZ3RlcXVuIgorICAgICAgICAgICAgZW1pdEFybVNp
bmdsZUJyYW5jaCgiYnBsIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbHR1biIKKyAgICAg
ICAgICAgIGVtaXRBcm1Eb3VibGVCcmFuY2goImJsdCIsIG9wZXJhbmRzKQogICAgICAgICB3aGVu
ICJhZGRkIgogICAgICAgICAgICAgZW1pdEFybSgidmFkZC5mNjQiLCBvcGVyYW5kcykKLSAgICAg
ICAgd2hlbiAiZGl2ZCIKLSAgICAgICAgICAgIGVtaXRBcm0oInZkaXYuZjY0Iiwgb3BlcmFuZHMp
CiAgICAgICAgIHdoZW4gInN1YmQiCiAgICAgICAgICAgICBlbWl0QXJtKCJ2c3ViLmY2NCIsIG9w
ZXJhbmRzKQogICAgICAgICB3aGVuICJtdWxkIgogICAgICAgICAgICAgZW1pdEFybSgidm11bC5m
NjQiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiZGl2ZCIKKyAgICAgICAgICAgIGVtaXRBcm0o
InZkaXYuZjY0Iiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gInNxcnRkIgogICAgICAgICAgICAg
JGFzbS5wdXRzICJ2c3FydC5mNjQgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAg
ICAgICAgd2hlbiAibmVnZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm5lZy5mNjQgI3thcm1G
bGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAib3JmIgorICAgICAgICAg
ICAgKHRtcExocywgdG1wUmhzKSA9IEFSTV9FWFRSQV9HUFJTWy0yLi4tMV0KKyAgICAgICAgICAg
IFNlcXVlbmNlLm5ldyhjb2RlT3JpZ2luLCBbCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9u
KGNvZGVPcmlnaW4sICAidm1vdiAje3RtcExocy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5h
cm1TaW5nbGV9IiksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAi
dm1vdiAje3RtcFJocy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IiksCisg
ICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAib3JpIiwgW3RtcExocywg
dG1wUmhzXSksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1v
diAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7dG1wUmhzLmFybU9wZXJhbmR9IikKKyAgICAg
ICAgICAgIF0pLmxvd2VyKCRhY3RpdmVCYWNrZW5kKQorICAgICAgICB3aGVuICJhbmRmIgorICAg
ICAgICAgICAgKHRtcExocywgdG1wUmhzKSA9IEFSTV9FWFRSQV9HUFJTWy0yLi4tMV0KKyAgICAg
ICAgICAgIFNlcXVlbmNlLm5ldyhjb2RlT3JpZ2luLCBbCisgICAgICAgICAgICAgIHJhd0luc3Ry
dWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcExocy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5k
c1swXS5hcm1TaW5nbGV9IiksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmln
aW4sICAidm1vdiAje3RtcFJocy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9
IiksCisgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAiYW5kaSIsIFt0
bXBMaHMsIHRtcFJoc10pLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2lu
LCAgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje3RtcFJocy5hcm1PcGVyYW5kfSIp
CisgICAgICAgICAgICBdKS5sb3dlcigkYWN0aXZlQmFja2VuZCkKKyAgICAgICAgd2hlbiAib3Jk
IgorICAgICAgICAgICAgKHRtcExocywgdG1wUmhzKSA9IEFSTV9FWFRSQV9HUFJTWy0yLi4tMV0K
KyAgICAgICAgICAgIFNlcXVlbmNlLm5ldyhjb2RlT3JpZ2luLCBbCisgICAgICAgICAgICAgIHJh
d0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcExocy5hcm1PcGVyYW5kfSwgI3tv
cGVyYW5kc1swXS5hcm1TaW5nbGV9IiksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNv
ZGVPcmlnaW4sICAidm1vdiAje3RtcFJocy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1T
aW5nbGV9IiksCisgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAib3Jp
IiwgW3RtcExocywgdG1wUmhzXSksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVP
cmlnaW4sICAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7dG1wUmhzLmFybU9wZXJh
bmR9IiksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAj
e3RtcExocy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGVIaX0iKSwKKyAgICAg
ICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9w
ZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZUhpfSIpLAorICAgICAgICAgICAgICBJbnN0
cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgIm9yaSIsIFt0bXBMaHMsIHRtcFJoc10pLAorICAgICAg
ICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3tvcGVyYW5kc1sxXS5h
cm1TaW5nbGVIaX0sICN7dG1wUmhzLmFybU9wZXJhbmR9IikKKyAgICAgICAgICAgIF0pLmxvd2Vy
KCRhY3RpdmVCYWNrZW5kKQorICAgICAgICB3aGVuICJhbmRkIgorICAgICAgICAgICAgKHRtcExo
cywgdG1wUmhzKSA9IEFSTV9FWFRSQV9HUFJTWy0yLi4tMV0KKyAgICAgICAgICAgIFNlcXVlbmNl
Lm5ldyhjb2RlT3JpZ2luLCBbCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmln
aW4sICAidm1vdiAje3RtcExocy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9
IiksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3Rt
cFJocy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IiksCisgICAgICAgICAg
ICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAiYW5kaSIsIFt0bXBMaHMsIHRtcFJoc10p
LAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3tvcGVy
YW5kc1sxXS5hcm1TaW5nbGV9LCAje3RtcFJocy5hcm1PcGVyYW5kfSIpLAorICAgICAgICAgICAg
ICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBMaHMuYXJtT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlSGl9IiksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0
aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcFJocy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sx
XS5hcm1TaW5nbGVIaX0iKSwKKyAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmln
aW4sICJhbmRpIiwgW3RtcExocywgdG1wUmhzXSksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0
aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZUhpfSwgI3t0bXBS
aHMuYXJtT3BlcmFuZH0iKQorICAgICAgICAgICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCiAg
ICAgICAgIHdoZW4gImNpMmRzIgogICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFu
ZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKICAgICAgICAgICAg
ICRhc20ucHV0cyAidmN2dC5mNjQuczMyICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sICN7b3Bl
cmFuZHNbMV0uYXJtU2luZ2xlfSIKQEAgLTU0NCw2ICs3MTEsOCBAQCBjbGFzcyBJbnN0cnVjdGlv
bgogICAgICAgICB3aGVuICJtb3ZkeiIKICAgICAgICAgICAgICMgRklYTUU6IGVpdGhlciBzdXBw
b3J0IHRoaXMgb3IgcmVtb3ZlIGl0LgogICAgICAgICAgICAgcmFpc2UgIkFSTSBkb2VzIG5vdCBz
dXBwb3J0IHRoaXMgb3Bjb2RlIHlldCwgI3tjb2RlT3JpZ2lufSIKKyAgICAgICAgd2hlbiAibW92
ZWQiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3YuZjY0ICN7YXJtRmxpcHBlZE9wZXJhbmRz
KG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gInBvcCIKICAgICAgICAgICAgIG9wZXJhbmRzLmVh
Y2ggewogICAgICAgICAgICAgICAgIHwgb3AgfApAQCAtNTYwLDkgKzcyOSwxNyBAQCBjbGFzcyBJ
bnN0cnVjdGlvbgogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICRhc20ucHV0cyAi
bW92ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgICAgICBlbmQKKyAg
ICAgICAgd2hlbiAibW92ZWlpIgorICAgICAgICAgICAgcmFpc2UgIkZpcnN0IG9wZXJhbmQgb2Yg
bW92ZWlpIG11c3QgYmUgYW4gaW1tZWRpYXRlIiB1bmxlc3Mgb3BlcmFuZHNbMF0uaW1tZWRpYXRl
PworICAgICAgICAgICAgYXJtTW92ZUltbWVkaWF0ZShvcGVyYW5kc1swXS52YWx1ZSA+PiAzMiwg
b3BlcmFuZHNbMV0pCisgICAgICAgICAgICBhcm1Nb3ZlSW1tZWRpYXRlKG9wZXJhbmRzWzBdLnZh
bHVlICYgMHhmZmZmZmZmZiwgb3BlcmFuZHNbMl0pCiAgICAgICAgIHdoZW4gIm12bGJsIgogICAg
ICAgICAgICAgICAgICRhc20ucHV0cyAibW92dyAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCBc
Izpsb3dlcjE2OiN7b3BlcmFuZHNbMF0udmFsdWV9IgogICAgICAgICAgICAgICAgICRhc20ucHV0
cyAibW92dCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCBcIzp1cHBlcjE2OiN7b3BlcmFuZHNb
MF0udmFsdWV9IgorICAgICAgICB3aGVuICJzeGIyaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
c3h0YiAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzeGgy
aSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3h0aCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVy
YW5kcyl9IgogICAgICAgICB3aGVuICJub3AiCiAgICAgICAgICAgICAkYXNtLnB1dHMgIm5vcCIK
ICAgICAgICAgd2hlbiAiYmllcSIsICJicGVxIiwgImJiZXEiCkBAIC02NTYsMTQgKzgzMyw0NiBA
QCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgZW1pdEFybUNvbXBhcmUob3BlcmFuZHMs
ICJsdCIpCiAgICAgICAgIHdoZW4gImNpbHRlcSIsICJjcGx0ZXEiLCAiY2JsdGVxIgogICAgICAg
ICAgICAgZW1pdEFybUNvbXBhcmUob3BlcmFuZHMsICJsZSIpCi0gICAgICAgIHdoZW4gImNkZ3Qi
Ci0gICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywgImd0IikKLSAgICAg
ICAgd2hlbiAiY2RndGVxIgotICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFu
ZHMsICJnZSIpCisgICAgICAgIHdoZW4gImNmZXEiCisgICAgICAgICAgICBlbWl0QXJtRmxvYXRD
b21wYXJlKG9wZXJhbmRzLCAiZXEiKQorICAgICAgICB3aGVuICJjZm5lcXVuIgorICAgICAgICAg
ICAgZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywgIm5lIikKKyAgICAgICAgd2hlbiAiY2Zs
dCIKKyAgICAgICAgICAgIGVtaXRBcm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJtaSIpCisgICAg
ICAgIHdoZW4gImNmbHRlcSIKKyAgICAgICAgICAgIGVtaXRBcm1GbG9hdENvbXBhcmUob3BlcmFu
ZHMsICJscyIpCisgICAgICAgIHdoZW4gImNmZ3QiCisgICAgICAgICAgICBlbWl0QXJtRmxvYXRD
b21wYXJlKG9wZXJhbmRzLCAiZ3QiKQorICAgICAgICB3aGVuICJjZmd0ZXEiCisgICAgICAgICAg
ICBlbWl0QXJtRmxvYXRDb21wYXJlKG9wZXJhbmRzLCAiZ2UiKQorICAgICAgICB3aGVuICJjZGVx
IgorICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMsICJlcSIpCisgICAg
ICAgIHdoZW4gImNkbmVxdW4iCisgICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVy
YW5kcywgIm5lIikKICAgICAgICAgd2hlbiAiY2RsdCIKICAgICAgICAgICAgIGVtaXRBcm1Eb3Vi
bGVDb21wYXJlKG9wZXJhbmRzLCAibWkiKQogICAgICAgICB3aGVuICJjZGx0ZXEiCiAgICAgICAg
ICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywgImxzIikKKyAgICAgICAgd2hlbiAi
Y2RndCIKKyAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAiZ3QiKQor
ICAgICAgICB3aGVuICJjZGd0ZXEiCisgICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShv
cGVyYW5kcywgImdlIikKKyAgICAgICAgd2hlbiAiY2YyZCIKKyAgICAgICAgICAgICRhc20ucHV0
cyAidmN2dC5mNjQuZjMyICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0u
YXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAiY2QyZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
dmN2dC5mMzIuZjY0ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1P
cGVyYW5kfSIKKyAgICAgICAgd2hlbiAiY2kyZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1v
diAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisg
ICAgICAgICAgICAkYXNtLnB1dHMgInZjdnQuZjMyLnUzMiAje29wZXJhbmRzWzFdLmFybVNpbmds
ZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAiY2kyZnMiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJh
bmRzWzBdLmFybU9wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmYzMi5zMzIg
I3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iCisgICAg
ICAgIHdoZW4gImNpMmQiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1sx
XS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9IgorICAgICAgICAgICAgJGFz
bS5wdXRzICJ2Y3Z0LmY2NC51MzIgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5k
c1sxXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJjaTJkcyIKKyAgICAgICAgICAgICRhc20u
cHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtT3Bl
cmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInZjdnQuZjY0LnMzMiAje29wZXJhbmRzWzFd
LmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iCiAgICAgICAgIHdoZW4gInRp
cyIsICJ0YnMiLCAidHBzIgogICAgICAgICAgICAgZW1pdEFybVRlc3RTZXQob3BlcmFuZHMsICJt
aSIpCiAgICAgICAgIHdoZW4gInRpeiIsICJ0YnoiLCAidHB6IgpAQCAtNjc0LDEwICs4ODMsMjIg
QEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgICRhc20ucHV0cyAibGRyICN7b3BlcmFu
ZHNbMV0uYXJtT3BlcmFuZH0sIFtzcCwgXCMje29wZXJhbmRzWzBdLnZhbHVlICogNH1dIgogICAg
ICAgICB3aGVuICJwb2tlIgogICAgICAgICAgICAgJGFzbS5wdXRzICJzdHIgI3tvcGVyYW5kc1sx
XS5hcm1PcGVyYW5kfSwgW3NwLCBcIyN7b3BlcmFuZHNbMF0udmFsdWUgKiA0fV0iCisgICAgICAg
IHdoZW4gImZpMmYiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5h
cm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9IgorICAgICAgICB3aGVuICJmZjJp
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKICAgICAgICAgd2hlbiAiZmlpMmQiCiAgICAgICAg
ICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5k
c1swXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSIKICAgICAgICAgd2hl
biAiZmQyaWkiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1P
cGVyYW5kfSwgI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVy
YW5kfSIKKyAgICAgICAgd2hlbiAidHJ1bmNhdGVmMmkiCisgICAgICAgICAgICBlbWl0QXJtVHJ1
bmNhdGVGbG9hdChjb2RlT3JpZ2luLCAidTMyIiwgImYzMiIsIG9wZXJhbmRzKQorICAgICAgICB3
aGVuICJ0cnVuY2F0ZWYyaXMiCisgICAgICAgICAgICBlbWl0QXJtVHJ1bmNhdGVGbG9hdChjb2Rl
T3JpZ2luLCAiczMyIiwgImYzMiIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJ0cnVuY2F0ZWQy
aSIKKyAgICAgICAgICAgIGVtaXRBcm1UcnVuY2F0ZUZsb2F0KGNvZGVPcmlnaW4sICJ1MzIiLCAi
ZjY0Iiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInRydW5jYXRlZDJpcyIKKyAgICAgICAgICAg
IGVtaXRBcm1UcnVuY2F0ZUZsb2F0KGNvZGVPcmlnaW4sICJzMzIiLCAiZjY0Iiwgb3BlcmFuZHMp
CiAgICAgICAgIHdoZW4gImJvIgogICAgICAgICAgICAgJGFzbS5wdXRzICJidnMgI3tvcGVyYW5k
c1swXS5hc21MYWJlbH0iCiAgICAgICAgIHdoZW4gImJzIgpAQCAtNjg2LDEzICs5MDcsMTcgQEAg
Y2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgICRhc20ucHV0cyAiYmVxICN7b3BlcmFuZHNb
MF0uYXNtTGFiZWx9IgogICAgICAgICB3aGVuICJibnoiCiAgICAgICAgICAgICAkYXNtLnB1dHMg
ImJuZSAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAiYmNzIgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJiY3MgI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCiAgICAgICAgIHdo
ZW4gImxlYWkiLCAibGVhcCIKICAgICAgICAgICAgIG9wZXJhbmRzWzBdLmFybUVtaXRMZWEob3Bl
cmFuZHNbMV0pCi0gICAgICAgIHdoZW4gInNtdWxsaSIKKyAgICAgICAgd2hlbiAic211bGxpIiwg
InVtdWxsaSIKICAgICAgICAgICAgIHJhaXNlICJXcm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIHRv
IHNtdWxsIGluICN7c2VsZi5pbnNwZWN0fSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3Mg
b3BlcmFuZHMubGVuZ3RoID09IDQKLSAgICAgICAgICAgICRhc20ucHV0cyAic211bGwgI3tvcGVy
YW5kc1syXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1szXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5k
c1swXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAiI3tvcGNvZGVbMC4uLTJdfSAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCAj
e29wZXJhbmRzWzNdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29w
ZXJhbmRzWzFdLmFybU9wZXJhbmR9IgogICAgICAgICB3aGVuICJtZW1mZW5jZSIKICAgICAgICAg
ICAgICRhc20ucHV0cyAiZG1iIHN5IgorICAgICAgICB3aGVuICJmZW5jZSIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAiZG1iIGlzaCIKICAgICAgICAgd2hlbiAiY2xyYnAiCiAgICAgICAgICAgICAk
YXNtLnB1dHMgImJpYyAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFy
bU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9IgogICAgICAgICB3aGVuICJnbG9i
YWxhZGRyIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5z
dHJ1Y3Rpb25zLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rp
b25zLnJiCmluZGV4IDU0YjAyN2YzZGEwMTc3MzgzNDVlOWQyYjYxOGY3NDgwZjA4NGVkNDQuLjdl
MjgwYjdmNzhiNDZkZjQ2ODQxNmZhNWE0NTFiNjliMzFiZGZhODEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKQEAgLTU5LDYgKzU5LDcg
QEAgTUFDUk9fSU5TVFJVQ1RJT05TID0KICAgICAgInJyb3RhdGVxIiwKICAgICAgInN1YmkiLAog
ICAgICAieG9yaSIsCisgICAgICJsb2FkMmlhIiwKICAgICAgImxvYWRpIiwKICAgICAgImxvYWRp
cyIsCiAgICAgICJsb2FkYiIsCkBAIC02Nyw2ICs2OCw3IEBAIE1BQ1JPX0lOU1RSVUNUSU9OUyA9
CiAgICAgICJsb2FkaCIsCiAgICAgICJsb2FkaHNpIiwKICAgICAgImxvYWRoc3EiLAorICAgICAi
c3RvcmUyaWEiLAogICAgICAic3RvcmVpIiwKICAgICAgInN0b3JlaCIsCiAgICAgICJzdG9yZWIi
LApAQCAtMzc3LDkgKzM3OSwyMSBAQCBYODZfSU5TVFJVQ1RJT05TID0KIAogQVJNX0lOU1RSVUNU
SU9OUyA9CiAgICAgWworICAgICAiYWRjaSIsCisgICAgICJiY3MiLAogICAgICAiY2xyYnAiLAog
ICAgICAibXZsYmwiLAotICAgICAiZ2xvYmFsYWRkciIKKyAgICAgImdsb2JhbGFkZHIiLAorICAg
ICAic2JjaSIsCisgICAgICJtb3ZlaWkiLAorICAgICAibG9hZGxpbmtiIiwKKyAgICAgImxvYWRs
aW5raCIsCisgICAgICJsb2FkbGlua2kiLAorICAgICAibG9hZGxpbmsyaSIsCisgICAgICJzdG9y
ZWNvbmRiIiwKKyAgICAgInN0b3JlY29uZGgiLAorICAgICAic3RvcmVjb25kaSIsCisgICAgICJz
dG9yZWNvbmQyaSIsCiAgICAgXQogCiBBUk02NF9JTlNUUlVDVElPTlMgPQpAQCAtNDMxLDYgKzQ0
NSw3IEBAIEFSTTY0X0lOU1RSVUNUSU9OUyA9CiBSSVNDX0lOU1RSVUNUSU9OUyA9CiAgICAgWwog
ICAgICAic211bGxpIiwgICMgTXVsdGlwbHkgdHdvIDMyLWJpdCB3b3JkcyBhbmQgcHJvZHVjZSBh
IDY0LWJpdCB3b3JkCisgICAgICJ1bXVsbGkiLCAgIyBNdWx0aXBseSB0d28gMzItYml0IHdvcmRz
IGFuZCBwcm9kdWNlIGEgNjQtYml0IHdvcmQKICAgICAgImFkZGlzIiwgICAjIEFkZCBpbnRlZ2Vy
cyBhbmQgc2V0IGEgZmxhZy4KICAgICAgInN1YmlzIiwgICAjIFNhbWUsIGJ1dCBmb3Igc3VidHJh
Y3Rpb24uCiAgICAgICJvcmlzIiwgICAgIyBTYW1lLCBidXQgZm9yIGJpdHdpc2Ugb3IuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIKaW5kZXggMGRjNDRj
MjNkZmIyYmFkMzY1YTBmZWI1NzEwM2FkMmZkMzNmZWFlNC4uNjdmNTI3MWE1Mzc1YWMxZjEzNDRi
ODY5Mzc1Yjc4MGE4N2FjYjk5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vcmVnaXN0ZXJzLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL3JlZ2lzdGVycy5yYgpAQCAtNTgsNyArNTgsOCBAQCBHUFJTID0KICAgICAgImNzcjciLAog
ICAgICAiY3NyOCIsCiAgICAgICJjc3I5IiwKLSAgICAgImNzcjEwIgorICAgICAiY3NyMTAiLAor
ICAgICAiaW52YWxpZEdQUiIKICAgICBdCiAKIEZQUlMgPQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL3Jpc2MucmIKaW5kZXggMGYwNzJlOWZkMTFlMTU4NWFhZjNkZDhlYjA1MGZmZDk0
NjIzOWRmMi4uMzQ2NDU5NjJmNzQzMDVmMzZkNThjOWYyN2Q0ZTQ0ZWJkYjUzNGZlYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYgorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiCkBAIC0yNTksOCArMjU5LDEyIEBA
IGRlZiByaXNjTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXNEb3VibGUobGlzdCkKICAgICAgICAgICAg
IGNhc2Ugbm9kZS5vcGNvZGUKICAgICAgICAgICAgIHdoZW4gImxvYWRkIgogICAgICAgICAgICAg
ICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImxvYWRkIiwg
W25vZGUub3BlcmFuZHNbMF0ucmlzY0RvdWJsZUFkZHJlc3MobmV3TGlzdCksIG5vZGUub3BlcmFu
ZHNbMV1dLCBub2RlLmFubm90YXRpb24pCisgICAgICAgICAgICB3aGVuICJsb2FkZiIKKyAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJs
b2FkZiIsIFtub2RlLm9wZXJhbmRzWzBdLnJpc2NEb3VibGVBZGRyZXNzKG5ld0xpc3QpLCBub2Rl
Lm9wZXJhbmRzWzFdXSwgbm9kZS5hbm5vdGF0aW9uKQogICAgICAgICAgICAgd2hlbiAic3RvcmVk
IgogICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9y
aWdpbiwgInN0b3JlZCIsIFtub2RlLm9wZXJhbmRzWzBdLCBub2RlLm9wZXJhbmRzWzFdLnJpc2NE
b3VibGVBZGRyZXNzKG5ld0xpc3QpXSwgbm9kZS5hbm5vdGF0aW9uKQorICAgICAgICAgICAgd2hl
biAic3RvcmVmIgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5v
ZGUuY29kZU9yaWdpbiwgInN0b3JlZiIsIFtub2RlLm9wZXJhbmRzWzBdLCBub2RlLm9wZXJhbmRz
WzFdLnJpc2NEb3VibGVBZGRyZXNzKG5ld0xpc3QpXSwgbm9kZS5hbm5vdGF0aW9uKQogICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQogICAgICAgICAgICAg
ZW5kCkBAIC0zNjksNyArMzczLDcgQEAgZGVmIHJpc2NMb3dlck1hbGZvcm1lZEltbWVkaWF0ZXMo
bGlzdCwgdmFsaWRJbW1lZGlhdGVzLCB2YWxpZExvZ2ljYWxJbW1lZGlhdGVzKQogICAgICAgICBp
ZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCiAgICAgICAgICAgICBhbm5vdGF0aW9uID0gbm9kZS5h
bm5vdGF0aW9uCiAgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCi0gICAgICAgICAgICB3aGVu
ICJtb3ZlIgorICAgICAgICAgICAgd2hlbiAibW92ZSIsICJtb3ZlaWkiCiAgICAgICAgICAgICAg
ICAgbmV3TGlzdCA8PCBub2RlCiAgICAgICAgICAgICB3aGVuICJhZGRpIiwgImFkZHAiLCAiYWRk
cSIsICJhZGRpcyIsICJzdWJpIiwgInN1YnAiLCAic3VicSIsICJzdWJpcyIKICAgICAgICAgICAg
ICAgICBpZiBub2RlLm9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZSBhbmQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAppbmRleCAzOTFmZDNhNmE0MWNlMWIxMDY2
NmU3NjZjMDlhMjBiOGVjZjM1YzVmLi5mZTIxNjQ4NjczMTZjNmJkMmFkMjZjZWE5NDhmOGYwZmY0
MzIwMTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1Zh
bHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCkBA
IC0xNjIsOCArMTYyLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3Qg
TnVsbFRhZyA9ICAgICAgICAgMHhmZmZmZmZmZDsKICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQz
Ml90IFVuZGVmaW5lZFRhZyA9ICAgIDB4ZmZmZmZmZmM7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1
aW50MzJfdCBDZWxsVGFnID0gICAgICAgICAweGZmZmZmZmZiOwotICAgIHN0YXRpYyBjb25zdGV4
cHIgdWludDMyX3QgRW1wdHlWYWx1ZVRhZyA9ICAgMHhmZmZmZmZmYTsKLSAgICBzdGF0aWMgY29u
c3RleHByIHVpbnQzMl90IERlbGV0ZWRWYWx1ZVRhZyA9IDB4ZmZmZmZmZjk7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1aW50MzJfdCBXYXNtVGFnID0gICAgICAgICAweGZmZmZmZmZhOworICAgIHN0
YXRpYyBjb25zdGV4cHIgdWludDMyX3QgRW1wdHlWYWx1ZVRhZyA9ICAgMHhmZmZmZmZmOTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IERlbGV0ZWRWYWx1ZVRhZyA9IDB4ZmZmZmZmZjg7
CiAKICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IExvd2VzdFRhZyA9ICBEZWxldGVkVmFs
dWVUYWc7CiAjZW5kaWYKQEAgLTE4MCw2ICsxODEsOSBAQCBwdWJsaWM6CiAgICAgZW51bSBFbmNv
ZGVBc0JpZ0ludDMyVGFnIHsgRW5jb2RlQXNCaWdJbnQzMiB9OwogI2VuZGlmCiAgICAgZW51bSBF
bmNvZGVBc0RvdWJsZVRhZyB7IEVuY29kZUFzRG91YmxlIH07CisjaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKSAmJiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGVudW0gRW5jb2RlQXNVbmJveGVkRmxvYXRU
YWcgeyBFbmNvZGVBc1VuYm94ZWRGbG9hdCB9OworI2VuZGlmCiAKICAgICBKU1ZhbHVlKCk7CiAg
ICAgSlNWYWx1ZShKU051bGxUYWcpOwpAQCAtMTkxLDYgKzE5NSw5IEBAIHB1YmxpYzoKICNpZiBV
U0UoQklHSU5UMzIpCiAgICAgSlNWYWx1ZShFbmNvZGVBc0JpZ0ludDMyVGFnLCBpbnQzMl90KTsK
ICNlbmRpZgorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgVVNFKEpTVkFMVUUzMl82NCkKKyAg
ICBKU1ZhbHVlKEVuY29kZUFzVW5ib3hlZEZsb2F0VGFnLCBmbG9hdCk7CisjZW5kaWYKIAogICAg
IC8vIE51bWJlcnMKICAgICBKU1ZhbHVlKEVuY29kZUFzRG91YmxlVGFnLCBkb3VibGUpOwpAQCAt
NTkzLDYgKzYwMCwxMyBAQCBBTFdBWVNfSU5MSU5FIEpTVmFsdWUganNCaWdJbnQzMihpbnQzMl90
IGludFZhbHVlKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShK
U1ZBTFVFMzJfNjQpCitBTFdBWVNfSU5MSU5FIEpTVmFsdWUgd2FzbVVuYm94ZWRGbG9hdChmbG9h
dCBmKQoreworICAgIHJldHVybiBKU1ZhbHVlKEpTVmFsdWU6OkVuY29kZUFzVW5ib3hlZEZsb2F0
LCBmKTsKK30KKyNlbmRpZgorCiBBTFdBWVNfSU5MSU5FIEpTVmFsdWUganNEb3VibGVOdW1iZXIo
ZG91YmxlIGQpCiB7CiAgICAgQVNTRVJUKEpTVmFsdWUoSlNWYWx1ZTo6RW5jb2RlQXNEb3VibGUs
IGQpLmlzTnVtYmVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDSlNWYWx1ZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q0pTVmFsdWVJbmxpbmVzLmgKaW5kZXggMTFmNWM3ODQ0ZjYwNDk3ZjhiMzRhODU0OWFkZDJkOWY1
OGY5YjhjMS4uYzg5NzI3ODc1YWE4MTZlNmZkMzJiZmE3ZDM0NmE1MTU5YzkxZDI0MCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCkBA
IC02MjMsNiArNjIzLDEzIEBAIGlubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEVuY29kZUFzQmlnSW50
MzJUYWcsIGludDMyX3QgdmFsdWUpCiB9CiAjZW5kaWYgLy8gVVNFKEJJR0lOVDMyKQogCisjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBVU0UoSlNWQUxVRTMyXzY0KQoraW5saW5lIEpTVmFsdWU6
OkpTVmFsdWUoRW5jb2RlQXNVbmJveGVkRmxvYXRUYWcsIGZsb2F0IHZhbHVlKQoreworICAgIHUu
YXNCaXRzLnBheWxvYWQgPSBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFsdWUpOworfQorI2VuZGlm
CisKIGlubGluZSBpbnQ2NF90IHRyeUNvbnZlcnRUb0ludDUyKGRvdWJsZSBudW1iZXIpCiB7CiAg
ICAgaWYgKG51bWJlciAhPSBudW1iZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcAppbmRleCA3N2E5MjhkODM2NTJlZmZkMjRjOGYyNmRk
Y2RiZmI3NDRkZDBkYWRjLi5lOGI4ZGU0MjNhZjEzMjY2MTQzNTk0N2U5YjY1NTQ3NzFiM2I2MGIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRv
ci5jcHAKQEAgLTg0NCw2ICs4NDQsMTUgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgRnVuY3Rpb24+CiAgICAgdm9pZCBmb3JFYWNoTGl2ZVZhbHVlKEZ1bmN0aW9uKTsKIAorICAg
IGJvb2wgdXNlU2lnbmFsaW5nTWVtb3J5KCkgY29uc3QKKyAgICB7CisjaWYgRU5BQkxFKFdFQkFT
U0VNQkxZX1NJR05BTElOR19NRU1PUlkpCisgICAgICAgIHJldHVybiBtX21vZGUgPT0gTWVtb3J5
TW9kZTo6U2lnbmFsaW5nOworI2Vsc2UKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisg
ICAgfQorCiAgICAgRnVuY3Rpb25QYXJzZXI8QWlySVJHZW5lcmF0b3I+KiBtX3BhcnNlciB7IG51
bGxwdHIgfTsKICAgICBjb25zdCBNb2R1bGVJbmZvcm1hdGlvbiYgbV9pbmZvOwogICAgIGNvbnN0
IE1lbW9yeU1vZGUgbV9tb2RlIHsgTWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcgfTsKQEAgLTk2
MSw3ICs5NzAsNyBAQCBBaXJJUkdlbmVyYXRvcjo6QWlySVJHZW5lcmF0b3IoY29uc3QgTW9kdWxl
SW5mb3JtYXRpb24mIGluZm8sIEIzOjpQcm9jZWR1cmUmIHBybwogICAgIGlmICghQ29udGV4dDo6
dXNlRmFzdFRMUygpKQogICAgICAgICBtX2NvZGUucGluUmVnaXN0ZXIobV93YXNtQ29udGV4dElu
c3RhbmNlR1BSKTsKIAotICAgIGlmIChtb2RlICE9IE1lbW9yeU1vZGU6OlNpZ25hbGluZykgewor
ICAgIGlmIChtb2RlID09IE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nKSB7CiAgICAgICAgIG1f
Ym91bmRzQ2hlY2tpbmdTaXplR1BSID0gcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdp
c3RlcjsKICAgICAgICAgbV9jb2RlLnBpblJlZ2lzdGVyKG1fYm91bmRzQ2hlY2tpbmdTaXplR1BS
KTsKICAgICB9CkBAIC0xNzk3LDYgKzE4MDYsNyBAQCBpbmxpbmUgQWlySVJHZW5lcmF0b3I6OkV4
cHJlc3Npb25UeXBlIEFpcklSR2VuZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcgog
ICAgICAgICBicmVhazsKICAgICB9CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5H
X01FTU9SWSkKICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzogewogICAgICAgICAvLyBX
ZSd2ZSB2aXJ0dWFsbHkgbWFwcGVkIDRHaUIrcmVkem9uZSBmb3IgdGhpcyBtZW1vcnkuIE9ubHkg
dGhlIHVzZXItYWxsb2NhdGVkIHBhZ2VzIGFyZSBhZGRyZXNzYWJsZSwgY29udGlndW91c2x5IGlu
IHJhbmdlIFswLCBjdXJyZW50XSwKICAgICAgICAgLy8gYW5kIGV2ZXJ5dGhpbmcgYWJvdmUgaXMg
bWFwcGVkIFBST1RfTk9ORS4gV2UgZG9uJ3QgbmVlZCB0byBwZXJmb3JtIGFueSBleHBsaWNpdCBi
b3VuZHMgY2hlY2sgaW4gdGhlIDRHaUIgcmFuZ2UgYmVjYXVzZSBXZWJBc3NlbWJseSByZWdpc3Rl
cgpAQCAtMTgyMyw2ICsxODMzLDcgQEAgaW5saW5lIEFpcklSR2VuZXJhdG9yOjpFeHByZXNzaW9u
VHlwZSBBaXJJUkdlbmVyYXRvcjo6ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIKICAgICAgICAg
fQogICAgICAgICBicmVhazsKICAgICB9CisjZW5kaWYKICAgICB9CiAKICAgICBhcHBlbmQoQWRk
NjQsIFRtcChtX21lbW9yeUJhc2VHUFIpLCByZXN1bHQpOwpAQCAtMzcwNiw3ICszNzE3LDcgQEAg
YXV0byBBaXJJUkdlbmVyYXRvcjo6YWRkQ2FsbCh1aW50MzJfdCBmdW5jdGlvbkluZGV4LCBjb25z
dCBUeXBlRGVmaW5pdGlvbiYgc2lnbmEKICAgICAgICAgYXV0byogcGF0Y2hwb2ludCA9IHBhaXIu
Zmlyc3Q7CiAgICAgICAgIGF1dG8gZXhjZXB0aW9uSGFuZGxlID0gcGFpci5zZWNvbmQ7CiAgICAg
ICAgIC8vIFdlIG5lZWQgdG8gY2xvYmJlciB0aGUgc2l6ZSByZWdpc3RlciBzaW5jZSB0aGUgTExJ
bnQgYWx3YXlzIGJvdW5kcyBjaGVja3MKLSAgICAgICAgaWYgKG1fbW9kZSA9PSBNZW1vcnlNb2Rl
OjpTaWduYWxpbmcgfHwgbV9pbmZvLm1lbW9yeS5pc1NoYXJlZCgpKQorICAgICAgICBpZiAodXNl
U2lnbmFsaW5nTWVtb3J5KCkgfHwgbV9pbmZvLm1lbW9yeS5pc1NoYXJlZCgpKQogICAgICAgICAg
ICAgcGF0Y2hwb2ludC0+Y2xvYmJlckxhdGUoUmVnaXN0ZXJTZXQgeyBQaW5uZWRSZWdpc3Rlcklu
Zm86OmdldCgpLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyIH0pOwogICAgICAgICBwYXRjaHBv
aW50LT5zZXRHZW5lcmF0b3IoWz0sIHRoaXNdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgQjM6
OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7CiAgICAgICAgICAgICBBbGxvd01h
Y3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKaW5kZXggZmQ5OGIxODM4
MzU5ZTVhYThmNzA2ZmEyMzAzOWM1YWMyMDVhMWYxZC4uNDVlZDEyZmExZGQwOWEzNzdkNjhjOTNh
YzM3MjU4NzVjZjQ1ZTE2MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUIzSVJHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21CM0lSR2VuZXJhdG9yLmNwcApAQCAtNTI2LDYgKzUyNiwxNSBAQCBwcml2YXRlOgogICAgICAg
ICByZXR1cm4gc2V0KGRzdCwgZ2V0KHNyYykpOwogICAgIH0KIAorICAgIGJvb2wgdXNlU2lnbmFs
aW5nTWVtb3J5KCkgY29uc3QKKyAgICB7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElO
R19NRU1PUlkpCisgICAgICAgIHJldHVybiBtX21vZGUgPT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5n
OworI2Vsc2UKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisgICAgfQorCiAgICAgRnVu
Y3Rpb25QYXJzZXI8QjNJUkdlbmVyYXRvcj4qIG1fcGFyc2VyIHsgbnVsbHB0ciB9OwogICAgIGNv
bnN0IE1vZHVsZUluZm9ybWF0aW9uJiBtX2luZm87CiAgICAgY29uc3QgTWVtb3J5TW9kZSBtX21v
ZGUgeyBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZyB9OwpAQCAtNjM5LDcgKzY0OCw3IEBAIEIz
SVJHZW5lcmF0b3I6OkIzSVJHZW5lcmF0b3IoY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mIGluZm8s
IFByb2NlZHVyZSYgcHJvY2VkdXJlCiAgICAgaWYgKCFDb250ZXh0Ojp1c2VGYXN0VExTKCkpCiAg
ICAgICAgIG1fcHJvYy5waW5SZWdpc3RlcihtX3dhc21Db250ZXh0SW5zdGFuY2VHUFIpOwogCi0g
ICAgaWYgKG1vZGUgIT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nKSB7CisgICAgaWYgKG1vZGUgPT0g
TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcpIHsKICAgICAgICAgbV9ib3VuZHNDaGVja2luZ1Np
emVHUFIgPSBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyOwogICAgICAgICBt
X3Byb2MucGluUmVnaXN0ZXIobV9ib3VuZHNDaGVja2luZ1NpemVHUFIpOwogICAgIH0KQEAgLTY1
MSw5ICs2NjAsMTEgQEAgQjNJUkdlbmVyYXRvcjo6QjNJUkdlbmVyYXRvcihjb25zdCBNb2R1bGVJ
bmZvcm1hdGlvbiYgaW5mbywgUHJvY2VkdXJlJiBwcm9jZWR1cmUKICAgICAgICAgICAgIGNhc2Ug
TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmc6CiAgICAgICAgICAgICAgICAgQVNTRVJUX1VOVVNF
RChwaW5uZWRHUFIsIG1fYm91bmRzQ2hlY2tpbmdTaXplR1BSID09IHBpbm5lZEdQUik7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1P
UlkpCiAgICAgICAgICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzoKICAgICAgICAgICAg
ICAgICBBU1NFUlRfVU5VU0VEKHBpbm5lZEdQUiwgSW52YWxpZEdQUlJlZyA9PSBwaW5uZWRHUFIp
OwogICAgICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB0aGlzLT5lbWl0RXhjZXB0aW9uQ2hlY2soaml0LCBFeGNlcHRpb25UeXBlOjpPdXRPZkJv
dW5kc01lbW9yeUFjY2Vzcyk7CiAgICAgICAgIH0pOwpAQCAtOTE1LDkgKzkyNiwxMyBAQCBhdXRv
IEIzSVJHZW5lcmF0b3I6OmFkZEFyZ3VtZW50cyhjb25zdCBUeXBlRGVmaW5pdGlvbiYgc2lnbmF0
dXJlKSAtPiBQYXJ0aWFsUmVzdQogICAgICAgICBCMzo6VHlwZSB0eXBlID0gdG9CM1R5cGUoc2ln
bmF0dXJlLmFzPEZ1bmN0aW9uU2lnbmF0dXJlPigpLT5hcmd1bWVudFR5cGUoaSkpOwogICAgICAg
ICBCMzo6VmFsdWUqIGFyZ3VtZW50OwogICAgICAgICBhdXRvIHJlcCA9IHdhc21DYWxsSW5mby5w
YXJhbXNbaV07Ci0gICAgICAgIGlmIChyZXAuaXNSZWcoKSkgewotICAgICAgICAgICAgYXJndW1l
bnQgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PEIzOjpBcmd1bWVudFJlZ1ZhbHVlPihtX3By
b2MsIE9yaWdpbigpLCByZXAucmVnKCkpOwotICAgICAgICAgICAgaWYgKHR5cGUgPT0gQjM6Oklu
dDMyIHx8IHR5cGUgPT0gQjM6OkZsb2F0KQorICAgICAgICBpZiAocmVwLmlzR1BSKCkpIHsKKyAg
ICAgICAgICAgIGFyZ3VtZW50ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6QXJndW1l
bnRSZWdWYWx1ZT4obV9wcm9jLCBPcmlnaW4oKSwgcmVwLmpzcigpLnBheWxvYWRHUFIoKSk7Cisg
ICAgICAgICAgICBpZiAodHlwZSA9PSBCMzo6SW50MzIpCisgICAgICAgICAgICAgICAgYXJndW1l
bnQgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6VHJ1
bmMsIE9yaWdpbigpLCBhcmd1bWVudCk7CisgICAgICAgIH0gZWxzZSBpZiAocmVwLmlzRlBSKCkp
IHsKKyAgICAgICAgICAgIGFyZ3VtZW50ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6
QXJndW1lbnRSZWdWYWx1ZT4obV9wcm9jLCBPcmlnaW4oKSwgcmVwLmZwcigpKTsKKyAgICAgICAg
ICAgIGlmICh0eXBlID09IEIzOjpGbG9hdCkKICAgICAgICAgICAgICAgICBhcmd1bWVudCA9IG1f
Y3VycmVudEJsb2NrLT5hcHBlbmROZXc8QjM6OlZhbHVlPihtX3Byb2MsIEIzOjpUcnVuYywgT3Jp
Z2luKCksIGFyZ3VtZW50KTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChy
ZXAuaXNTdGFjaygpKTsKQEAgLTE0NDYsNiArMTQ2MSw3IEBAIGlubGluZSBWYWx1ZSogQjNJUkdl
bmVyYXRvcjo6ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoVmFsdWUqIHBvaW50ZXIsIHVpbnQz
Ml90CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdO
QUxJTkdfTUVNT1JZKQogICAgIGNhc2UgTWVtb3J5TW9kZTo6U2lnbmFsaW5nOiB7CiAgICAgICAg
IC8vIFdlJ3ZlIHZpcnR1YWxseSBtYXBwZWQgNEdpQityZWR6b25lIGZvciB0aGlzIG1lbW9yeS4g
T25seSB0aGUgdXNlci1hbGxvY2F0ZWQgcGFnZXMgYXJlIGFkZHJlc3NhYmxlLCBjb250aWd1b3Vz
bHkgaW4gcmFuZ2UgWzAsIGN1cnJlbnRdLAogICAgICAgICAvLyBhbmQgZXZlcnl0aGluZyBhYm92
ZSBpcyBtYXBwZWQgUFJPVF9OT05FLiBXZSBkb24ndCBuZWVkIHRvIHBlcmZvcm0gYW55IGV4cGxp
Y2l0IGJvdW5kcyBjaGVjayBpbiB0aGUgNEdpQiByYW5nZSBiZWNhdXNlIFdlYkFzc2VtYmx5IHJl
Z2lzdGVyCkBAIC0xNDYzLDYgKzE0NzksNyBAQCBpbmxpbmUgVmFsdWUqIEIzSVJHZW5lcmF0b3I6
OmVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKFZhbHVlKiBwb2ludGVyLCB1aW50MzJfdAogICAg
ICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyNlbmRpZgogICAgIH0KIAogICAgIHBvaW50
ZXIgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIFpFeHQzMiwgb3Jp
Z2luKCksIHBvaW50ZXIpOwpAQCAtMTQ5Niw3ICsxNTEzLDcgQEAgaW5saW5lIHVpbnQzMl90IHNp
emVPZkxvYWRPcChMb2FkT3BUeXBlIG9wKQogCiBpbmxpbmUgQjM6OktpbmQgQjNJUkdlbmVyYXRv
cjo6bWVtb3J5S2luZChCMzo6T3Bjb2RlIG1lbW9yeU9wKQogewotICAgIGlmIChtX21vZGUgPT0g
TWVtb3J5TW9kZTo6U2lnbmFsaW5nIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQoKSkKKyAgICBp
ZiAodXNlU2lnbmFsaW5nTWVtb3J5KCkgfHwgbV9pbmZvLm1lbW9yeS5pc1NoYXJlZCgpKQogICAg
ICAgICByZXR1cm4gdHJhcHBpbmcobWVtb3J5T3ApOwogICAgIHJldHVybiBtZW1vcnlPcDsKIH0K
QEAgLTI5ODksNyArMzAwNiw3IEBAIGF1dG8gQjNJUkdlbmVyYXRvcjo6YWRkQ2FsbCh1aW50MzJf
dCBmdW5jdGlvbkluZGV4LCBjb25zdCBUeXBlRGVmaW5pdGlvbiYgc2lnbmF0CiAgICAgICAgICAg
ICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cy5yZWFkc1Bpbm5lZCA9IHRydWU7CiAKICAgICAgICAg
ICAgICAgICAvLyBXZSBuZWVkIHRvIGNsb2JiZXIgdGhlIHNpemUgcmVnaXN0ZXIgc2luY2UgdGhl
IExMSW50IGFsd2F5cyBib3VuZHMgY2hlY2tzCi0gICAgICAgICAgICAgICAgaWYgKG1fbW9kZSA9
PSBNZW1vcnlNb2RlOjpTaWduYWxpbmcgfHwgbV9pbmZvLm1lbW9yeS5pc1NoYXJlZCgpKQorICAg
ICAgICAgICAgICAgIGlmICh1c2VTaWduYWxpbmdNZW1vcnkoKSB8fCBtX2luZm8ubWVtb3J5Lmlz
U2hhcmVkKCkpCiAgICAgICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXJMYXRlKFJl
Z2lzdGVyU2V0IHsgUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKS5ib3VuZHNDaGVja2luZ1NpemVS
ZWdpc3RlciB9KTsKICAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoW3Ro
aXMsIGhhbmRsZSwgdW5saW5rZWRXYXNtVG9XYXNtQ2FsbHMsIGZ1bmN0aW9uSW5kZXhdIChDQ2Fs
bEhlbHBlcnMmIGppdCwgY29uc3QgQjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1z
KSB7CiAgICAgICAgICAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBh
bGxvd1NjcmF0Y2goaml0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21CaW5kaW5nLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5kaW5n
LmNwcAppbmRleCBlZGM3MGJlYTA4YWYyYjgzMmMyZjE5ZWFlYjQ0NmViMmM0NThkZjNlLi4zMjcy
ODk5NDlhZGQ4NDQxMzFkMGQyZDYyNmZmNTg1MzBiZDEyMWRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQmluZGluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQogCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiRGlz
YWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5o
IgogI2luY2x1ZGUgIldhc21DYWxsaW5nQ29udmVudGlvbi5oIgogI2luY2x1ZGUgIldhc21JbnN0
YW5jZS5oIgpAQCAtNDEsMTggKzQyLDIxIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvV2FzbSh1bnNpCiB7CiAg
ICAgLy8gRklYTUU6IENvbnNpZGVyIHVuaXF1aWZ5IHRoZSBzdHVicyBiYXNlZCBvbiBzaWduYXR1
cmUgKyBpbmRleCB0byBzZWUgaWYgdGhpcyBzYXZlcyBtZW1vcnkuCiAgICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDE1NwotCi0gICAgY29uc3QgUGlubmVk
UmVnaXN0ZXJJbmZvJiBwaW5uZWRSZWdzID0gUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKTsKICAg
ICBKSVQgaml0OwogCiAgICAgR1BSUmVnIHNjcmF0Y2ggPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24o
KS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzBdOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgR1BS
UmVnIGJhc2VNZW1vcnkgPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hH
UFJzWzFdOworICAgIEdQUlJlZyBzaXplUmVnQXNTY3JhdGNoID0gd2FzbUNhbGxpbmdDb252ZW50
aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1syXTsKKyNlbHNlCisgICAgY29uc3QgUGlubmVkUmVn
aXN0ZXJJbmZvJiBwaW5uZWRSZWdzID0gUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKTsKICAgICBH
UFJSZWcgYmFzZU1lbW9yeSA9IHBpbm5lZFJlZ3MuYmFzZU1lbW9yeVBvaW50ZXI7Ci0gICAgQVNT
RVJUKGJhc2VNZW1vcnkgIT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsKLSAgICBBU1NFUlQoYmFz
ZU1lbW9yeSAhPSBzY3JhdGNoKTsKLSAgICBBU1NFUlQocGlubmVkUmVncy5ib3VuZHNDaGVja2lu
Z1NpemVSZWdpc3RlciAhPSBiYXNlTWVtb3J5KTsKLSAgICBBU1NFUlQocGlubmVkUmVncy5ib3Vu
ZHNDaGVja2luZ1NpemVSZWdpc3RlciAhPSBzY3JhdGNoKTsKICAgICBHUFJSZWcgc2l6ZVJlZ0Fz
U2NyYXRjaCA9IHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXI7CisjZW5kaWYK
KyAgICBBU1NFUlQoYmFzZU1lbW9yeSAhPSBHUFJSZWc6OkludmFsaWRHUFJSZWcpOwogICAgIEFT
U0VSVChzaXplUmVnQXNTY3JhdGNoICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7CisgICAgQVNT
RVJUKHNjcmF0Y2ggIT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsKKyAgICBBU1NFUlQobm9PdmVy
bGFwKHNjcmF0Y2gsIGJhc2VNZW1vcnksIHNpemVSZWdBc1NjcmF0Y2gpKTsKIAogICAgIC8vIEIz
J3MgY2FsbCBjb2RlZ2VuIGVuc3VyZXMgdGhhdCB0aGUgSlNDZWxsIGlzIGEgV2ViQXNzZW1ibHlG
dW5jdGlvbi4KICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uoc2l6ZVJlZ0FzU2NyYXRj
aCk7IC8vIE9sZCBJbnN0YW5jZSoKQEAgLTY1LDYgKzY5LDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9XYXNt
KHVuc2kKICAgICBqaXQubG9hZFB0cihKSVQ6OkFkZHJlc3Moc2l6ZVJlZ0FzU2NyYXRjaCwgSW5z
dGFuY2U6Om9mZnNldE9mQ2FjaGVkU3RhY2tMaW1pdCgpKSwgc2l6ZVJlZ0FzU2NyYXRjaCk7CiAg
ICAgaml0LnN0b3JlUHRyKHNpemVSZWdBc1NjcmF0Y2gsIEpJVDo6QWRkcmVzcyhiYXNlTWVtb3J5
LCBJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRTdGFja0xpbWl0KCkpKTsKIAorI2lmICFDUFUoQVJN
KSAvLyBBUk0gaGFzIG5vIHBpbm5lZCByZWdpc3RlcnMgZm9yIFdhc20gTWVtb3J5LCBzbyBubyBu
ZWVkIHRvIHNldCB0aGVtIHVwCiAgICAgLy8gRklYTUUgdGhlIGZvbGxvd2luZyBjb2RlIGFzc3Vt
ZXMgdGhhdCBhbGwgV2FzbTo6SW5zdGFuY2UgaGF2ZSB0aGUgc2FtZSBwaW5uZWQgcmVnaXN0ZXJz
LiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyOTUyCiAgICAgLy8g
U2V0IHVwIHRoZSBjYWxsZWUncyBiYXNlTWVtb3J5IHJlZ2lzdGVyIGFzIHdlbGwgYXMgdGhlIG1l
bW9yeSBzaXplIHJlZ2lzdGVycy4KICAgICB7CkBAIC03Miw2ICs3Nyw3IEBAIEV4cGVjdGVkPE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2Fz
bVRvV2FzbSh1bnNpCiAgICAgICAgIGppdC5sb2FkUHRyKEpJVDo6QWRkcmVzcyhiYXNlTWVtb3J5
LCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnkoKSksIGJhc2VNZW1vcnkpOyAv
LyBXYXNtOjpNZW1vcnk6OlRhZ2dlZEFycmF5U3RvcmFnZVB0cjx2b2lkPiAodm9pZCopLgogICAg
ICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHlBbmRVbnRhZyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBi
YXNlTWVtb3J5LCBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyLCB3YXNtQ2Fs
bGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdKTsKICAgICB9CisjZW5kaWYK
IAogICAgIC8vIFRhaWwgY2FsbCBpbnRvIHRoZSBjYWxsZWUgV2ViQXNzZW1ibHkgZnVuY3Rpb24u
CiAgICAgaml0LmxvYWRQdHIoSklUOjpBZGRyZXNzKHNjcmF0Y2gpLCBzY3JhdGNoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5jcHAKaW5kZXggYTMyMWM1MmYxNWVjYTUy
MjEzZWNkNmVlOTIxNzI3MTk4MTFiMzI1YS4uMzIwMmY1NDgwY2E0MTJmMjcyOTQ5ZTE1NGIyYjIy
NmVlNjkwMGNhZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNh
bGxlZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5jcHAK
QEAgLTEzMSw2ICsxMzEsOCBAQCBSZWdpc3RlckF0T2Zmc2V0TGlzdCogTExJbnRDYWxsZWU6OmNh
bGxlZVNhdmVSZWdpc3RlcnMoKQogICAgICAgICByZWdpc3RlcnMuc2V0KEdQUkluZm86OnJlZ0NT
Mik7IC8vIFBCCiAjZWxpZiBDUFUoQVJNNjQpIHx8IENQVShSSVNDVjY0KQogICAgICAgICByZWdp
c3RlcnMuc2V0KEdQUkluZm86OnJlZ0NTNyk7IC8vIFBCCisjZWxpZiBDUFUoQVJNKQorICAgICAg
ICByZWdpc3RlcnMuc2V0KEdQUkluZm86OnJlZ0NTMSk7IC8vIFBCCiAjZWxzZQogI2Vycm9yIFVu
c3VwcG9ydGVkIGFyY2hpdGVjdHVyZS4KICNlbmRpZgpAQCAtMTU4LDYgKzE2MCw3IEBAIGNvbnN0
IFdhc21JbnN0cnVjdGlvbiogTExJbnRDYWxsZWU6Om91dE9mTGluZUp1bXBUYXJnZXQoY29uc3Qg
V2FzbUluc3RydWN0aW9uKiBwCiAgICAgcmV0dXJuIG1faW5zdHJ1Y3Rpb25zLT5hdChvZmZzZXQg
KyB0YXJnZXQpLnB0cigpOwogfQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQogdm9p
ZCBPcHRpbWl6aW5nSklUQ2FsbGVlOjpsaW5rRXhjZXB0aW9uSGFuZGxlcnMoVmVjdG9yPFVubGlu
a2VkSGFuZGxlckluZm8+IHVubGlua2VkRXhjZXB0aW9uSGFuZGxlcnMsIFZlY3RvcjxDb2RlTG9j
YXRpb25MYWJlbDxFeGNlcHRpb25IYW5kbGVyUHRyVGFnPj4gZXhjZXB0aW9uSGFuZGxlckxvY2F0
aW9ucykKIHsKICAgICBzaXplX3QgY291bnQgPSB1bmxpbmtlZEV4Y2VwdGlvbkhhbmRsZXJzLnNp
emUoKTsKQEAgLTE4NCw3ICsxODcsNyBAQCBjb25zdCBTdGFja01hcCYgT3B0aW1pemluZ0pJVENh
bGxlZTo6c3RhY2ttYXAoQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZUluZGV4KSBjb25zdAogICAgIFJF
TEVBU0VfQVNTRVJUKGl0ZXIgIT0gbV9zdGFja21hcHMuZW5kKCkpOwogICAgIHJldHVybiBpdGVy
LT52YWx1ZTsKIH0KLQorI2VuZGlmCiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWVHcm91cC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlR3JvdXAuY3BwCmluZGV4IDFl
YTQ1Y2E0YTZlOTFkMDNhOTcwZWJiNWQ1ZmQyYjJjZjlkZmNmMGEuLjUxOWQyMDk2YWQ2MjdjYmIz
YmU4ODM5ZDdlNDgyYjgxOTg4ZmJhMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21DYWxsZWVHcm91cC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUNhbGxlZUdyb3VwLmNwcApAQCAtMTYwLDE3ICsxNjAsMjEgQEAgdm9pZCBDYWxsZWVH
cm91cDo6Y29tcGlsZUFzeW5jKENvbnRleHQqIGNvbnRleHQsIEFzeW5jQ29tcGlsYXRpb25DYWxs
YmFjayYmIHRhc2sKIAogYm9vbCBDYWxsZWVHcm91cDo6aXNTYWZlVG9SdW4oTWVtb3J5TW9kZSBt
ZW1vcnlNb2RlKQogeworICAgIFVOVVNFRF9QQVJBTShtZW1vcnlNb2RlKTsKKwogICAgIGlmICgh
cnVubmFibGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgc3dpdGNoIChtX21vZGUp
IHsKICAgICBjYXNlIFdhc206Ok1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nOgogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAg
ICBjYXNlIFdhc206Ok1lbW9yeU1vZGU6OlNpZ25hbGluZzoKICAgICAgICAgLy8gQ29kZSBiZWlu
ZyBpbiBTaWduYWxpbmcgbW9kZSBtZWFucyB0aGF0IGl0IHBlcmZvcm1zIG5vIGJvdW5kcyBjaGVj
a3MuCiAgICAgICAgIC8vIEl0cyBtZW1vcnksIGV2ZW4gaWYgZW1wdHksIGFic29sdXRlbHkgbXVz
dCBhbHNvIGJlIGluIFNpZ25hbGluZyBtb2RlCiAgICAgICAgIC8vIGJlY2F1c2UgdGhlIHBhZ2Ug
cHJvdGVjdGlvbiBkZXRlY3RzIG91dC1vZi1ib3VuZHMgYWNjZXNzZXMuCiAgICAgICAgIHJldHVy
biBtZW1vcnlNb2RlID09IFdhc206Ok1lbW9yeU1vZGU6OlNpZ25hbGluZzsKKyNlbmRpZgogICAg
IH0KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVu
dGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRp
b24uY3BwCmluZGV4IDIwM2M4NDNhZThlNjNlY2RmYjQ4OWE0YWQ2NjUzZWVmZTExZGQ0YmMuLmVi
MDkwOTU4MTg0MDE4ODM5M2Q1Y2VmMzczNDE4NGJiMjEyODg1ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmNwcApAQCAtNDAs
NyArNDAsNyBAQCBjb25zdCBKU0NhbGxpbmdDb252ZW50aW9uJiBqc0NhbGxpbmdDb252ZW50aW9u
KCkKICAgICAgICAgUmVnaXN0ZXJTZXQgY2FsbGVyU2F2ZVJlZ2lzdGVycyA9IFJlZ2lzdGVyU2V0
OjphbGxSZWdpc3RlcnMoKTsKICAgICAgICAgY2FsbGVyU2F2ZVJlZ2lzdGVycy5leGNsdWRlKFJl
Z2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCkpOwogCi0gICAgICAgIHN0YXRpY0pTQ2Fs
bGluZ0NvbnZlbnRpb24uY29uc3RydWN0KFZlY3RvcjxSZWc+KCksIFZlY3RvcjxSZWc+KCksIFJl
Z2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCksIFdURk1vdmUoY2FsbGVyU2F2ZVJlZ2lz
dGVycykpOworICAgICAgICBzdGF0aWNKU0NhbGxpbmdDb252ZW50aW9uLmNvbnN0cnVjdChWZWN0
b3I8SlNWYWx1ZVJlZ3M+KCksIFZlY3RvcjxGUFJSZWc+KCksIFJlZ2lzdGVyU2V0OjpjYWxsZWVT
YXZlUmVnaXN0ZXJzKCksIFdURk1vdmUoY2FsbGVyU2F2ZVJlZ2lzdGVycykpOwogICAgIH0pOwog
CiAgICAgcmV0dXJuIHN0YXRpY0pTQ2FsbGluZ0NvbnZlbnRpb247CkBAIC01MSwzMSArNTEsNTEg
QEAgY29uc3QgV2FzbUNhbGxpbmdDb252ZW50aW9uJiB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKQog
ICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8V2FzbUNhbGxpbmdDb252ZW50aW9uPiBzdGF0
aWNXYXNtQ2FsbGluZ0NvbnZlbnRpb247CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIHN0YXRp
Y1dhc21DYWxsaW5nQ29udmVudGlvbkZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2Uoc3RhdGljV2Fz
bUNhbGxpbmdDb252ZW50aW9uRmxhZywgW10gKCkgewotICAgICAgICBWZWN0b3I8UmVnPiBncHJB
cmd1bWVudFJlZ2lzdGVycyhHUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzKTsKLSAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEdQUkluZm86Om51bWJlck9mQXJndW1lbnRS
ZWdpc3RlcnM7ICsraSkKLSAgICAgICAgICAgIGdwckFyZ3VtZW50UmVnaXN0ZXJzW2ldID0gR1BS
SW5mbzo6dG9Bcmd1bWVudFJlZ2lzdGVyKGkpOworI2lmIFVTRShKU1ZBTFVFNjQpIC8vIE9uZSB2
YWx1ZSBwZXIgR1BSCisgICAgICAgIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50
SlNScyA9IEdQUkluZm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnM7CisjZWxpZiBVU0UoSlNW
QUxVRTMyXzY0KSAvLyBPbmUgdmFsdWUgcGVyIGNvbnNlY3V0aXZlIEdQUiBwYWlyCisgICAgICAg
IGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50SlNScyA9IEdQUkluZm86Om51bWJl
ck9mQXJndW1lbnRSZWdpc3RlcnMgLyAyOworI2VuZGlmCisgICAgICAgIFZlY3RvcjxKU1ZhbHVl
UmVncz4ganNyQXJndW1lbnRSZWdpc3RlcnMobnVtYmVyT2ZBcmd1bWVudEpTUnMpOworICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZBcmd1bWVudEpTUnM7ICsraSkgewor
I2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgICAgICBqc3JBcmd1bWVudFJlZ2lzdGVyc1tpXSA9
IEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6dG9Bcmd1bWVudFJlZ2lzdGVyKGkpIH07CisjZWxpZiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAganNyQXJndW1lbnRSZWdpc3RlcnNbaV0gPSBK
U1ZhbHVlUmVncyB7IEdQUkluZm86OnRvQXJndW1lbnRSZWdpc3RlcigyICogaSArIDEpLCBHUFJJ
bmZvOjp0b0FyZ3VtZW50UmVnaXN0ZXIoMiAqIGkpIH07CisjZW5kaWYKKyAgICAgICAgfQogCi0g
ICAgICAgIFZlY3RvcjxSZWc+IGZwckFyZ3VtZW50UmVnaXN0ZXJzKEZQUkluZm86Om51bWJlck9m
QXJndW1lbnRSZWdpc3RlcnMpOworICAgICAgICBWZWN0b3I8RlBSUmVnPiBmcHJBcmd1bWVudFJl
Z2lzdGVycyhGUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzKTsKICAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IEZQUkluZm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnM7
ICsraSkKICAgICAgICAgICAgIGZwckFyZ3VtZW50UmVnaXN0ZXJzW2ldID0gRlBSSW5mbzo6dG9B
cmd1bWVudFJlZ2lzdGVyKGkpOwogCiAgICAgICAgIFJlZ2lzdGVyU2V0IHNjcmF0Y2ggPSBSZWdp
c3RlclNldDo6YWxsR1BScygpOwotICAgICAgICBzY3JhdGNoLmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6
OmNhbGxlZVNhdmVSZWdpc3RlcnMoKSk7CisgICAgICAgIHNjcmF0Y2guZXhjbHVkZShSZWdpc3Rl
clNldDo6dm1DYWxsZWVTYXZlUmVnaXN0ZXJzKCkpOwogICAgICAgICBzY3JhdGNoLmV4Y2x1ZGUo
UmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycygpKTsKICAgICAgICAgc2NyYXRjaC5l
eGNsdWRlKFJlZ2lzdGVyU2V0OjpyZXNlcnZlZEhhcmR3YXJlUmVnaXN0ZXJzKCkpOwogICAgICAg
ICBzY3JhdGNoLmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6OnN0YWNrUmVnaXN0ZXJzKCkpOwotICAgICAg
ICBmb3IgKFJlZyByZWcgOiBncHJBcmd1bWVudFJlZ2lzdGVycykKLSAgICAgICAgICAgIHNjcmF0
Y2guY2xlYXIocmVnKTsKKyAgICAgICAgZm9yIChKU1ZhbHVlUmVncyBqc3IgOiBqc3JBcmd1bWVu
dFJlZ2lzdGVycykgeworICAgICAgICAgICAgc2NyYXRjaC5jbGVhcihqc3IucGF5bG9hZEdQUigp
KTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgc2NyYXRjaC5jbGVhcihqc3Iu
dGFnR1BSKCkpOworI2VuZGlmCisgICAgICAgIH0KIAogICAgICAgICBWZWN0b3I8R1BSUmVnPiBz
Y3JhdGNoR1BSczsKICAgICAgICAgZm9yIChSZWcgcmVnIDogc2NyYXRjaCkKICAgICAgICAgICAg
IHNjcmF0Y2hHUFJzLmFwcGVuZChyZWcuZ3ByKCkpOworCisgICAgICAgIC8vIE5lZWQgYXQgbGVh
c3Qgb25lIEpTVmFsdWUgYW5kIGFuIGFkZGl0aW9uYWwgR1BSCisjaWYgVVNFKEpTVkFMVUU2NCkK
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQoc2NyYXRjaEdQUnMuc2l6ZSgpID49IDIpOworI2VsaWYg
VVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoc2NyYXRjaEdQUnMuc2l6
ZSgpID49IDMpOworI2VuZGlmCiAKICAgICAgICAgUmVnaXN0ZXJTZXQgY2FsbGVyU2F2ZVJlZ2lz
dGVycyA9IFJlZ2lzdGVyU2V0OjphbGxSZWdpc3RlcnMoKTsKICAgICAgICAgY2FsbGVyU2F2ZVJl
Z2lzdGVycy5leGNsdWRlKFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCkpOwogCi0g
ICAgICAgIHN0YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbi5jb25zdHJ1Y3QoV1RGTW92ZShncHJB
cmd1bWVudFJlZ2lzdGVycyksIFdURk1vdmUoZnByQXJndW1lbnRSZWdpc3RlcnMpLCBXVEZNb3Zl
KHNjcmF0Y2hHUFJzKSwgUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKSwgV1RGTW92
ZShjYWxsZXJTYXZlUmVnaXN0ZXJzKSk7CisgICAgICAgIHN0YXRpY1dhc21DYWxsaW5nQ29udmVu
dGlvbi5jb25zdHJ1Y3QoV1RGTW92ZShqc3JBcmd1bWVudFJlZ2lzdGVycyksIFdURk1vdmUoZnBy
QXJndW1lbnRSZWdpc3RlcnMpLCBXVEZNb3ZlKHNjcmF0Y2hHUFJzKSwgUmVnaXN0ZXJTZXQ6OmNh
bGxlZVNhdmVSZWdpc3RlcnMoKSwgV1RGTW92ZShjYWxsZXJTYXZlUmVnaXN0ZXJzKSk7CiAgICAg
fSk7CiAKICAgICByZXR1cm4gc3RhdGljV2FzbUNhbGxpbmdDb252ZW50aW9uOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uaAppbmRleCA3
ZjFlNjA5OTEyZjRiZDhkZTA3OTIwODk0N2Y3N2QxMDlmMTNiYjY4Li4zMTAyNTA4ZTBhYTdmY2Uz
ZjhlNTBkMzdmMzJkMDhjYjA4M2IxZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uaApAQCAtNTcsOCArNTcsMTMgQEAgc3RydWN0
IENhbGxJbmZvcm1hdGlvbiB7CiAgICAgewogICAgICAgICBSZWdpc3RlclNldCB1c2VkUmVzdWx0
UmVnaXN0ZXJzOwogICAgICAgICBmb3IgKFZhbHVlTG9jYXRpb24gbG9jIDogcmVzdWx0cykgewot
ICAgICAgICAgICAgaWYgKGxvYy5pc1JlZygpKQotICAgICAgICAgICAgICAgIHVzZWRSZXN1bHRS
ZWdpc3RlcnMuc2V0KGxvYy5yZWcoKSk7CisgICAgICAgICAgICBpZiAobG9jLmlzR1BSKCkpIHsK
KyAgICAgICAgICAgICAgICB1c2VkUmVzdWx0UmVnaXN0ZXJzLnNldChsb2MuanNyKCkucGF5bG9h
ZEdQUigpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgIHVzZWRSZXN1
bHRSZWdpc3RlcnMuc2V0KGxvYy5qc3IoKS50YWdHUFIoKSk7CisjZW5kaWYKKyAgICAgICAgICAg
IH0gZWxzZSBpZiAobG9jLmlzRlBSKCkpCisgICAgICAgICAgICAgICAgdXNlZFJlc3VsdFJlZ2lz
dGVycy5zZXQobG9jLmZwcigpKTsKICAgICAgICAgfQogCiAgICAgICAgIFJlZ2lzdGVyQXRPZmZz
ZXRMaXN0IHNhdmVkUmVncyh1c2VkUmVzdWx0UmVnaXN0ZXJzLCBSZWdpc3RlckF0T2Zmc2V0TGlz
dDo6WmVyb0Jhc2VkKTsKQEAgLTc3LDggKzgyLDggQEAgY2xhc3MgV2FzbUNhbGxpbmdDb252ZW50
aW9uIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGhlYWRlclNpemVJ
bkJ5dGVzID0gQ2FsbEZyYW1lOjpoZWFkZXJTaXplSW5SZWdpc3RlcnMgKiBzaXplb2YoUmVnaXN0
ZXIpOwogCi0gICAgV2FzbUNhbGxpbmdDb252ZW50aW9uKFZlY3RvcjxSZWc+JiYgZ3BycywgVmVj
dG9yPFJlZz4mJiBmcHJzLCBWZWN0b3I8R1BSUmVnPiYmIHNjcmF0Y2hlcywgUmVnaXN0ZXJTZXQm
JiBjYWxsZWVTYXZlcywgUmVnaXN0ZXJTZXQmJiBjYWxsZXJTYXZlcykKLSAgICAgICAgOiBncHJB
cmdzKFdURk1vdmUoZ3BycykpCisgICAgV2FzbUNhbGxpbmdDb252ZW50aW9uKFZlY3RvcjxKU1Zh
bHVlUmVncz4mJiBqc3JzLCBWZWN0b3I8RlBSUmVnPiYmIGZwcnMsIFZlY3RvcjxHUFJSZWc+JiYg
c2NyYXRjaGVzLCBSZWdpc3RlclNldCYmIGNhbGxlZVNhdmVzLCBSZWdpc3RlclNldCYmIGNhbGxl
clNhdmVzKQorICAgICAgICA6IGpzckFyZ3MoV1RGTW92ZShqc3JzKSkKICAgICAgICAgLCBmcHJB
cmdzKFdURk1vdmUoZnBycykpCiAgICAgICAgICwgcHJvbG9ndWVTY3JhdGNoR1BScyhXVEZNb3Zl
KHNjcmF0Y2hlcykpCiAgICAgICAgICwgY2FsbGVlU2F2ZVJlZ2lzdGVycyhXVEZNb3ZlKGNhbGxl
ZVNhdmVzKSkKQEAgLTg4LDEwICs5MywxMSBAQCBwdWJsaWM6CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoV2FzbUNhbGxpbmdDb252ZW50aW9uKTsKIAogcHJpdmF0ZToKLSAgICBBcmd1bWVudExv
Y2F0aW9uIG1hcnNoYWxsTG9jYXRpb25JbXBsKENhbGxSb2xlIHJvbGUsIGNvbnN0IFZlY3RvcjxS
ZWc+JiByZWdBcmdzLCBzaXplX3QmIGNvdW50LCBzaXplX3QmIHN0YWNrT2Zmc2V0KSBjb25zdAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFJlZ1R5cGU+CisgICAgQXJndW1lbnRMb2NhdGlvbiBtYXJz
aGFsbExvY2F0aW9uSW1wbChDYWxsUm9sZSByb2xlLCBjb25zdCBWZWN0b3I8UmVnVHlwZT4mIHJl
Z0FyZ3MsIHNpemVfdCYgY291bnQsIHNpemVfdCYgc3RhY2tPZmZzZXQpIGNvbnN0CiAgICAgewog
ICAgICAgICBpZiAoY291bnQgPCByZWdBcmdzLnNpemUoKSkKLSAgICAgICAgICAgIHJldHVybiBB
cmd1bWVudExvY2F0aW9uOjpyZWcocmVnQXJnc1tjb3VudCsrXSk7CisgICAgICAgICAgICByZXR1
cm4gQXJndW1lbnRMb2NhdGlvbiB7IHJlZ0FyZ3NbY291bnQrK10gfTsKIAogICAgICAgICBjb3Vu
dCsrOwogICAgICAgICBBcmd1bWVudExvY2F0aW9uIHJlc3VsdCA9IHJvbGUgPT0gQ2FsbFJvbGU6
OkNhbGxlciA/IEFyZ3VtZW50TG9jYXRpb246OnN0YWNrQXJndW1lbnQoc3RhY2tPZmZzZXQpIDog
QXJndW1lbnRMb2NhdGlvbjo6c3RhY2soc3RhY2tPZmZzZXQpOwpAQCAtMTEwLDcgKzExNiw3IEBA
IHByaXZhdGU6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAgICAgY2FzZSBUeXBl
S2luZDo6UmVmTnVsbDoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6UnR0OgotICAgICAgICAgICAg
cmV0dXJuIG1hcnNoYWxsTG9jYXRpb25JbXBsKHJvbGUsIGdwckFyZ3MsIGdwQXJndW1lbnRDb3Vu
dCwgc3RhY2tPZmZzZXQpOworICAgICAgICAgICAgcmV0dXJuIG1hcnNoYWxsTG9jYXRpb25JbXBs
KHJvbGUsIGpzckFyZ3MsIGdwQXJndW1lbnRDb3VudCwgc3RhY2tPZmZzZXQpOwogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpGMzI6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2NDoKICAgICAgICAg
ICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBmcHJBcmdzLCBmcEFyZ3VtZW50
Q291bnQsIHN0YWNrT2Zmc2V0KTsKQEAgLTE1NSw4ICsxNjEsOCBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0gICAgY29uc3QgVmVjdG9yPFJlZz4gZ3ByQXJnczsK
LSAgICBjb25zdCBWZWN0b3I8UmVnPiBmcHJBcmdzOworICAgIGNvbnN0IFZlY3RvcjxKU1ZhbHVl
UmVncz4ganNyQXJnczsKKyAgICBjb25zdCBWZWN0b3I8RlBSUmVnPiBmcHJBcmdzOwogICAgIGNv
bnN0IFZlY3RvcjxHUFJSZWc+IHByb2xvZ3VlU2NyYXRjaEdQUnM7CiAgICAgY29uc3QgUmVnaXN0
ZXJTZXQgY2FsbGVlU2F2ZVJlZ2lzdGVyczsKICAgICBjb25zdCBSZWdpc3RlclNldCBjYWxsZXJT
YXZlUmVnaXN0ZXJzOwpAQCAtMTcxLDggKzE3Nyw4IEBAIHB1YmxpYzoKICAgICAvLyBXYXNtOjpD
b250ZXh0KidzIGluc3RhbmNlLgogICAgIHN0YXRpYyBjb25zdGV4cHIgcHRyZGlmZl90IGluc3Rh
bmNlU3RhY2tPZmZzZXQgPSBDYWxsRnJhbWVTbG90Ojp0aGlzQXJndW1lbnQgKiBzaXplb2YoRW5j
b2RlZEpTVmFsdWUpOwogCi0gICAgSlNDYWxsaW5nQ29udmVudGlvbihWZWN0b3I8UmVnPiYmIGdw
cnMsIFZlY3RvcjxSZWc+JiYgZnBycywgUmVnaXN0ZXJTZXQmJiBjYWxsZWVTYXZlcywgUmVnaXN0
ZXJTZXQmJiBjYWxsZXJTYXZlcykKLSAgICAgICAgOiBncHJBcmdzKFdURk1vdmUoZ3BycykpCisg
ICAgSlNDYWxsaW5nQ29udmVudGlvbihWZWN0b3I8SlNWYWx1ZVJlZ3M+JiYgZ3BycywgVmVjdG9y
PEZQUlJlZz4mJiBmcHJzLCBSZWdpc3RlclNldCYmIGNhbGxlZVNhdmVzLCBSZWdpc3RlclNldCYm
IGNhbGxlclNhdmVzKQorICAgICAgICA6IGpzckFyZ3MoV1RGTW92ZShncHJzKSkKICAgICAgICAg
LCBmcHJBcmdzKFdURk1vdmUoZnBycykpCiAgICAgICAgICwgY2FsbGVlU2F2ZVJlZ2lzdGVycyhX
VEZNb3ZlKGNhbGxlZVNhdmVzKSkKICAgICAgICAgLCBjYWxsZXJTYXZlUmVnaXN0ZXJzKFdURk1v
dmUoY2FsbGVyU2F2ZXMpKQpAQCAtMTgwLDEwICsxODYsMTEgQEAgcHVibGljOgogCiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoSlNDYWxsaW5nQ29udmVudGlvbik7CiBwcml2YXRlOgotICAgIEFy
Z3VtZW50TG9jYXRpb24gbWFyc2hhbGxMb2NhdGlvbkltcGwoQ2FsbFJvbGUgcm9sZSwgY29uc3Qg
VmVjdG9yPFJlZz4mIHJlZ0FyZ3MsIHNpemVfdCYgY291bnQsIHNpemVfdCYgc3RhY2tPZmZzZXQp
IGNvbnN0CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFJlZ1R5cGU+CisgICAgQXJndW1lbnRMb2Nh
dGlvbiBtYXJzaGFsbExvY2F0aW9uSW1wbChDYWxsUm9sZSByb2xlLCBjb25zdCBWZWN0b3I8UmVn
VHlwZT4mIHJlZ0FyZ3MsIHNpemVfdCYgY291bnQsIHNpemVfdCYgc3RhY2tPZmZzZXQpIGNvbnN0
CiAgICAgewogICAgICAgICBpZiAoY291bnQgPCByZWdBcmdzLnNpemUoKSkKLSAgICAgICAgICAg
IHJldHVybiBBcmd1bWVudExvY2F0aW9uOjpyZWcocmVnQXJnc1tjb3VudCsrXSk7CisgICAgICAg
ICAgICByZXR1cm4gQXJndW1lbnRMb2NhdGlvbiB7IHJlZ0FyZ3NbY291bnQrK10gfTsKIAogICAg
ICAgICBjb3VudCsrOwogICAgICAgICBBcmd1bWVudExvY2F0aW9uIHJlc3VsdCA9IHJvbGUgPT0g
Q2FsbFJvbGU6OkNhbGxlciA/IEFyZ3VtZW50TG9jYXRpb246OnN0YWNrQXJndW1lbnQoc3RhY2tP
ZmZzZXQpIDogQXJndW1lbnRMb2NhdGlvbjo6c3RhY2soc3RhY2tPZmZzZXQpOwpAQCAtMjAxLDcg
KzIwOCw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKICAg
ICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxs
OgotICAgICAgICAgICAgcmV0dXJuIG1hcnNoYWxsTG9jYXRpb25JbXBsKHJvbGUsIGdwckFyZ3Ms
IGdwQXJndW1lbnRDb3VudCwgc3RhY2tPZmZzZXQpOworICAgICAgICAgICAgcmV0dXJuIG1hcnNo
YWxsTG9jYXRpb25JbXBsKHJvbGUsIGpzckFyZ3MsIGdwQXJndW1lbnRDb3VudCwgc3RhY2tPZmZz
ZXQpOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6
OkY2NDoKICAgICAgICAgICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBmcHJB
cmdzLCBmcEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KTsKQEAgLTIyNCwxMiArMjMxLDEyIEBA
IHB1YmxpYzoKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaWduYXR1cmUuYXM8RnVu
Y3Rpb25TaWduYXR1cmU+KCktPmFyZ3VtZW50Q291bnQoKTsgKytpKQogICAgICAgICAgICAgcGFy
YW1zLmFwcGVuZChtYXJzaGFsbExvY2F0aW9uKHJvbGUsIHNpZ25hdHVyZS5hczxGdW5jdGlvblNp
Z25hdHVyZT4oKS0+YXJndW1lbnRUeXBlKGkpLCBncEFyZ3VtZW50Q291bnQsIGZwQXJndW1lbnRD
b3VudCwgc3RhY2tPZmZzZXQpKTsKIAotICAgICAgICBWZWN0b3I8QXJndW1lbnRMb2NhdGlvbiwg
MT4gcmVzdWx0cyB7IEFyZ3VtZW50TG9jYXRpb246OnJlZyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQ
UikgfTsKKyAgICAgICAgVmVjdG9yPEFyZ3VtZW50TG9jYXRpb24sIDE+IHJlc3VsdHMgeyBBcmd1
bWVudExvY2F0aW9uIHsgSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IgfSB9OwogICAgICAgICByZXR1
cm4gQ2FsbEluZm9ybWF0aW9uKFdURk1vdmUocGFyYW1zKSwgV1RGTW92ZShyZXN1bHRzKSwgc3Rh
Y2tPZmZzZXQpOwogICAgIH0KIAotICAgIGNvbnN0IFZlY3RvcjxSZWc+IGdwckFyZ3M7Ci0gICAg
Y29uc3QgVmVjdG9yPFJlZz4gZnByQXJnczsKKyAgICBjb25zdCBWZWN0b3I8SlNWYWx1ZVJlZ3M+
IGpzckFyZ3M7CisgICAgY29uc3QgVmVjdG9yPEZQUlJlZz4gZnByQXJnczsKICAgICBjb25zdCBS
ZWdpc3RlclNldCBjYWxsZWVTYXZlUmVnaXN0ZXJzOwogICAgIGNvbnN0IFJlZ2lzdGVyU2V0IGNh
bGxlclNhdmVSZWdpc3RlcnM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUZvcm1hdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1h
dC5oCmluZGV4IDliZWE0NDg2NDc4MDdkYjY3OTU4Y2Q5ODhiMjhhNDM4Mzg4MjJmMjMuLmE4ZGEx
MjAwNDFhZGZiZTViZDY3ZWVkOWNkM2JhNjg4YTBjMGIyMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtRm9ybWF0LmgKQEAgLTQ0Miw3ICs0NDIsOSBAQCBzdHJ1Y3QgRW50cnlwb2lu
dCB7CiBzdHJ1Y3QgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1Rf
QUxMT0NBVEVEOwogICAgIFZlY3RvcjxDb2RlTG9jYXRpb25EYXRhTGFiZWxQdHI8V2FzbUVudHJ5
UHRyVGFnPj4gY2FsbGVlTW92ZUxvY2F0aW9uczsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfQjNK
SVQpCiAgICAgU3RhY2tNYXBzIHN0YWNrbWFwczsKKyNlbmRpZgogICAgIFZlY3RvcjxVbmxpbmtl
ZEhhbmRsZXJJbmZvPiBleGNlcHRpb25IYW5kbGVyczsKICAgICBFbnRyeXBvaW50IGVudHJ5cG9p
bnQ7CiAgICAgdW5zaWduZWQgb3NyRW50cnlTY3JhdGNoQnVmZmVyU2l6ZSB7IDAgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwCmluZGV4IDQxMjBh
ZTZhOTQ5NGZkNDQ2OWY5N2I4ZjQwODhkN2ZjYWMzMThhODguLmZiMjFjOTJiZjgxZjYxNzllZTNk
ZjU5ZDhjOTFiOTU1MDFlOGJiODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21JbmRleE9yTmFtZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUluZGV4T3JOYW1lLmNwcApAQCAtMzAsMTYgKzMwLDIzIEBAIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgV2FzbSB7CiAKIEluZGV4T3JOYW1lOjpJbmRleE9yTmFtZShJbmRleCBpbmRleCwg
c3RkOjpwYWlyPGNvbnN0IE5hbWUqLCBSZWZQdHI8TmFtZVNlY3Rpb24+PiYmIG5hbWUpCiB7Cisj
aWYgVVNFKEpTVkFMVUU2NCkKICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihtX2luZGV4TmFtZS5p
bmRleCkgPT0gc2l6ZW9mKG1faW5kZXhOYW1lLm5hbWUpLCAiYml0LXRhZ2dpbmcgZGVwZW5kcyBv
biBzaXplcyBiZWluZyBlcXVhbCIpOwotCi0gICAgaWYgKChpbmRleCAmIGFsbFRhZ3MpIHx8IChi
aXR3aXNlX2Nhc3Q8SW5kZXg+KG5hbWUuZmlyc3QpICYgYWxsVGFncykpCi0gICAgICAgICp0aGlz
ID0gSW5kZXhPck5hbWUoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgaWYgKG5hbWUuZmlyc3QpCi0g
ICAgICAgICAgICBtX2luZGV4TmFtZS5uYW1lID0gbmFtZS5maXJzdDsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgbV9pbmRleE5hbWUuaW5kZXggPSBpbmRleFRhZyB8IGluZGV4OworICAgIEFT
U0VSVCghKGluZGV4ICYgYWxsVGFncykpOworICAgIEFTU0VSVCghKGJpdHdpc2VfY2FzdDxJbmRl
eD4obmFtZS5maXJzdCkgJiBhbGxUYWdzKSk7CisgICAgaWYgKG5hbWUuZmlyc3QpCisgICAgICAg
IG1faW5kZXhOYW1lLm5hbWUgPSBuYW1lLmZpcnN0OworICAgIGVsc2UKKyAgICAgICAgbV9pbmRl
eE5hbWUuaW5kZXggPSBpbmRleFRhZyB8IGluZGV4OworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkK
KyAgICBpZiAobmFtZS5maXJzdCkgeworICAgICAgICBtX2luZGV4TmFtZS5uYW1lID0gbmFtZS5m
aXJzdDsKKyAgICAgICAgbV9raW5kID0gS2luZDo6TmFtZTsKKyAgICB9IGVsc2UgeworICAgICAg
ICBtX2luZGV4TmFtZS5pbmRleCA9IGluZGV4OworICAgICAgICBtX2tpbmQgPSBLaW5kOjpJbmRl
eDsKICAgICB9CisjZW5kaWYKICAgICBtX25hbWVTZWN0aW9uID0gV1RGTW92ZShuYW1lLnNlY29u
ZCk7CiB9CiAKQEAgLTQ5LDggKzU2LDggQEAgU3RyaW5nIG1ha2VTdHJpbmcoY29uc3QgSW5kZXhP
ck5hbWUmIGlvbikKICAgICAgICAgcmV0dXJuICJ3YXNtLXN0dWIiX3M7CiAgICAgY29uc3QgU3Ry
aW5nIG1vZHVsZU5hbWUgPSBpb24ubmFtZVNlY3Rpb24oKS0+bW9kdWxlTmFtZS5zaXplKCkgPyBT
dHJpbmcoaW9uLm5hbWVTZWN0aW9uKCktPm1vZHVsZU5hbWUuZGF0YSgpLCBpb24ubmFtZVNlY3Rp
b24oKS0+bW9kdWxlTmFtZS5zaXplKCkpIDogU3RyaW5nKGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1
bGVIYXNoLmRhdGEoKSwgaW9uLm5hbWVTZWN0aW9uKCktPm1vZHVsZUhhc2guc2l6ZSgpKTsKICAg
ICBpZiAoaW9uLmlzSW5kZXgoKSkKLSAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcobW9kdWxlTmFt
ZSwgIi53YXNtLWZ1bmN0aW9uWyIsIFN0cmluZzo6bnVtYmVyKGlvbi5tX2luZGV4TmFtZS5pbmRl
eCAmIH5JbmRleE9yTmFtZTo6aW5kZXhUYWcpLCAnXScpOwotICAgIHJldHVybiBtYWtlU3RyaW5n
KG1vZHVsZU5hbWUsICIud2FzbS1mdW5jdGlvblsiLCBTdHJpbmcoaW9uLm1faW5kZXhOYW1lLm5h
bWUtPmRhdGEoKSwgaW9uLm1faW5kZXhOYW1lLm5hbWUtPnNpemUoKSksICddJyk7CisgICAgICAg
IHJldHVybiBtYWtlU3RyaW5nKG1vZHVsZU5hbWUsICIud2FzbS1mdW5jdGlvblsiLCBTdHJpbmc6
Om51bWJlcihpb24uaW5kZXgoKSksICddJyk7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcobW9kdWxl
TmFtZSwgIi53YXNtLWZ1bmN0aW9uWyIsIFN0cmluZyhpb24ubmFtZSgpLT5kYXRhKCksIGlvbi5u
YW1lKCktPnNpemUoKSksICddJyk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5oCmluZGV4IDVlZWVm
Yzg4YWY3NmQ0YzRjMzM2YTE3MjAwN2E2Y2ZlNjFlYWVlNjEuLjJkOTAzMDExOGY4YzFkMjk4YThj
YjMzOWQ5YjM5MDQyZDNlMTE4N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21JbmRleE9yTmFtZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21JbmRleE9yTmFtZS5oCkBAIC00MCwxNCArNDAsNjcgQEAgc3RydWN0IE5hbWVTZWN0aW9uOwog
c3RydWN0IEluZGV4T3JOYW1lIHsKICAgICB0eXBlZGVmIHNpemVfdCBJbmRleDsKIAotICAgIElu
ZGV4T3JOYW1lKCkgeyBtX2luZGV4TmFtZS5pbmRleCA9IGVtcHR5VGFnOyB9Ci0gICAgSW5kZXhP
ck5hbWUoSW5kZXgsIHN0ZDo6cGFpcjxjb25zdCBOYW1lKiwgUmVmUHRyPE5hbWVTZWN0aW9uPj4m
Jik7Ci0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gYml0d2lzZV9jYXN0PEluZGV4
PihtX2luZGV4TmFtZSkgJiBlbXB0eVRhZzsgfQotICAgIGJvb2wgaXNJbmRleCgpIGNvbnN0IHsg
cmV0dXJuIGJpdHdpc2VfY2FzdDxJbmRleD4obV9pbmRleE5hbWUpICYgaW5kZXhUYWc7IH0KLSAg
ICBib29sIGlzTmFtZSgpIGNvbnN0IHsgcmV0dXJuICEoaXNFbXB0eSgpIHx8IGlzTmFtZSgpKTsg
fQotICAgIE5hbWVTZWN0aW9uKiBuYW1lU2VjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZVNl
Y3Rpb24uZ2V0KCk7IH0KK3ByaXZhdGU6CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBlbnVt
IGNsYXNzIEtpbmQgOiB1aW50OF90IHsKKyAgICAgICAgRW1wdHksCisgICAgICAgIEluZGV4LAor
ICAgICAgICBOYW1lCisgICAgfTsKKyNlbmRpZgorcHVibGljOgogCi0gICAgZnJpZW5kIFN0cmlu
ZyBtYWtlU3RyaW5nKGNvbnN0IEluZGV4T3JOYW1lJik7CisgICAgSW5kZXhPck5hbWUoKQorICAg
IHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBtX2luZGV4TmFtZS5pbmRleCA9IGVtcHR5
VGFnOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgbV9raW5kID0gS2luZDo6RW1w
dHk7CisjZW5kaWYKKyAgICB9CisKKyAgICBJbmRleE9yTmFtZShJbmRleCwgc3RkOjpwYWlyPGNv
bnN0IE5hbWUqLCBSZWZQdHI8TmFtZVNlY3Rpb24+PiYmKTsKKworICAgIGJvb2wgaXNFbXB0eSgp
IGNvbnN0CisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHJldHVybiBiaXR3aXNl
X2Nhc3Q8SW5kZXg+KG1faW5kZXhOYW1lKSAmIGVtcHR5VGFnOworI2VsaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICAgICAgcmV0dXJuIG1fa2luZCA9PSBLaW5kOjpFbXB0eTsKKyNlbmRpZgorICAg
IH0KKworICAgIGJvb2wgaXNJbmRleCgpIGNvbnN0CisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQp
CisgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8SW5kZXg+KG1faW5kZXhOYW1lKSAmIGluZGV4
VGFnOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgcmV0dXJuIG1fa2luZCA9PSBL
aW5kOjpJbmRleDsKKyNlbmRpZgorICAgIH0KKworICAgIGJvb2wgaXNOYW1lKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIHJldHVybiAhKGlzRW1wdHkoKSB8fCBpc0luZGV4KCkpOworICAgIH0KKwor
ICAgIEluZGV4IGluZGV4KCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpc0luZGV4KCkp
OworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHJldHVybiBtX2luZGV4TmFtZS5pbmRleCAm
IH5pbmRleFRhZzsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJldHVybiBtX2lu
ZGV4TmFtZS5pbmRleDsKKyNlbmRpZgorICAgIH0KKworICAgIGNvbnN0IE5hbWUqIG5hbWUoKSBj
b25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzTmFtZSgpKTsKKyAgICAgICAgcmV0dXJuIG1f
aW5kZXhOYW1lLm5hbWU7CisgICAgfQorCisgICAgTmFtZVNlY3Rpb24qIG5hbWVTZWN0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9uYW1lU2VjdGlvbi5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIHVu
aW9uIHsKQEAgLTU2LDEwICsxMDksMTUgQEAgcHJpdmF0ZToKICAgICB9IG1faW5kZXhOYW1lOwog
ICAgIFJlZlB0cjxOYW1lU2VjdGlvbj4gbV9uYW1lU2VjdGlvbjsKIAorI2lmIFVTRShKU1ZBTFVF
NjQpCiAgICAgLy8gVXNlIHRoZSB0b3AgYml0cyBhcyB0YWdzLiBOZWl0aGVyIHBvaW50ZXJzIG5v
ciB0aGUgZnVuY3Rpb24gaW5kZXggc3BhY2Ugc2hvdWxkIHVzZSB0aGVtLgogICAgIHN0YXRpYyBj
b25zdGV4cHIgSW5kZXggaW5kZXhUYWcgPSAxdWxsIDw8IChDSEFSX0JJVCAqIHNpemVvZihJbmRl
eCkgLSAxKTsKICAgICBzdGF0aWMgY29uc3RleHByIEluZGV4IGVtcHR5VGFnID0gMXVsbCA8PCAo
Q0hBUl9CSVQgKiBzaXplb2YoSW5kZXgpIC0gMik7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBJbmRl
eCBhbGxUYWdzID0gaW5kZXhUYWcgfCBlbXB0eVRhZzsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQp
CisgICAgLy8gVXNlIGFuIGV4cGxpY2l0IHRhZyBhcyBwb2ludGVycyBtaWdodCBoYXZlIGhpZ2gg
Yml0cyBzZXQKKyAgICBLaW5kIG1fa2luZDsKKyNlbmRpZgogfTsKIAogU3RyaW5nIG1ha2VTdHJp
bmcoY29uc3QgSW5kZXhPck5hbWUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21JbnN0YW5jZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUlu
c3RhbmNlLmgKaW5kZXggZTZkYjNhM2EwOGM0NGEwNWNiY2IyOTBmZWE0ZGVlMjc2ZTcwZTFiMi4u
Yzk0NDJjZmY3MmRiYTI4YzU5NjA5NTJiNWQzYWI2NDdjNGRlODAxYyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmgKQEAgLTEwNiw4ICsxMDYsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCB1cGRhdGVDYWNoZWRNZW1vcnkoKQogICAgIHsKICAgICAgICAgaWYgKG1fbWVt
b3J5ICE9IG51bGxwdHIpIHsKLSAgICAgICAgICAgIG1fY2FjaGVkTWVtb3J5ID0gQ2FnZWRQdHI8
R2lnYWNhZ2U6OlByaW1pdGl2ZSwgdm9pZCwgdGFnQ2FnZWRQdHI+KG1lbW9yeSgpLT5tZW1vcnko
KSwgbWVtb3J5KCktPmJvdW5kc0NoZWNraW5nU2l6ZSgpKTsKLSAgICAgICAgICAgIG1fY2FjaGVk
Qm91bmRzQ2hlY2tpbmdTaXplID0gbWVtb3J5KCktPmJvdW5kc0NoZWNraW5nU2l6ZSgpOworICAg
ICAgICAgICAgbV9jYWNoZWRNZW1vcnkgPSBDYWdlZFB0cjxHaWdhY2FnZTo6UHJpbWl0aXZlLCB2
b2lkLCB0YWdDYWdlZFB0cj4obWVtb3J5KCktPm1lbW9yeSgpLCBtZW1vcnkoKS0+bWFwcGVkQ2Fw
YWNpdHkoKSk7CisgICAgICAgICAgICAvLyBUaGlzIGlzIHVzZWQgYnkgdGhlIG5vbi1zaWduYWxp
bmcgYmFzZWQgYm91bmQgY2hlY2tpbmcsIHNvIHVzZSB0aGUgYWN0dWFsIHNpemUgb2YgdGhlIG1l
bW9yeS4KKyAgICAgICAgICAgIG1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplID0gbWVtb3J5KCkt
PnNpemUoKTsKICAgICAgICAgICAgIEFTU0VSVChtZW1vcnkoKS0+bWVtb3J5KCkgPT0gY2FjaGVk
TWVtb3J5KCkpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKaW5kZXggZDM3M2ZhZWU4MTY4MThmYWFlMjY0
ZWRlM2I5MWNhNDk1NTRhNmQ1OC4uNWMyYjAwZWE2NDY5MjExMGVmNjc5Mjc4ZDMwNzFiMzI4ZWU5
MDU0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2Vu
ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5l
cmF0b3IuY3BwCkBAIC0zNDEsNyArMzQxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVy
biBtX25vcm1hbGl6ZWRBcmd1bWVudHNbaW5kZXhdOwogCiAgICAgICAgIGNvbnN0IGF1dG8mIGNh
bGxpbmdDb252ZW50aW9uID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCk7Ci0gICAgICAgIGNvbnN0
IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZ3ByQXJncy5zaXplKCk7Cisg
ICAgICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uanNyQXJn
cy5zaXplKCk7CiAgICAgICAgIGNvbnN0IHVpbnQzMl90IGZwckNvdW50ID0gY2FsbGluZ0NvbnZl
bnRpb24uZnByQXJncy5zaXplKCk7CiAgICAgICAgIHJldHVybiB2aXJ0dWFsUmVnaXN0ZXJGb3JM
b2NhbChpbmRleCAtIG1fY29kZUJsb2NrLT5tX251bUFyZ3VtZW50cyArIGdwckNvdW50ICsgZnBy
Q291bnQgKyBudW1iZXJPZkxMSW50Q2FsbGVlU2F2ZVJlZ2lzdGVycyk7CiAgICAgfQpAQCAtNTk1
LDcgKzU5NSw3IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvckNhbGxl
cihjb25zdCBGdW5jdGlvblNpZ25hdHVyZSYgc2lnbmF0dXJlCiAgICAgY29uc3QgYXV0byBpbml0
aWFsU3RhY2tTaXplID0gbV9zdGFja1NpemU7CiAKICAgICBjb25zdCBhdXRvJiBjYWxsaW5nQ29u
dmVudGlvbiA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpOwotICAgIGNvbnN0IHVpbnQzMl90IGdw
ckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZ3ByQXJncy5zaXplKCk7CisgICAgY29uc3QgdWlu
dDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5qc3JBcmdzLnNpemUoKTsKICAgICBj
b25zdCB1aW50MzJfdCBmcHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmZwckFyZ3Muc2l6ZSgp
OwogCiAgICAgdWludDMyX3Qgc3RhY2tDb3VudCA9IDA7CkBAIC03NDMsNyArNzQzLDcgQEAgYXV0
byBMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVlKGNvbnN0IEZ1bmN0aW9u
U2lnbmF0dXJlJiBzaWduYXR1cmUKICAgICBtX3Jlc3VsdHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0
eShzaWduYXR1cmUucmV0dXJuQ291bnQoKSk7CiAKICAgICBjb25zdCBhdXRvJiBjYWxsaW5nQ29u
dmVudGlvbiA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpOwotICAgIGNvbnN0IHVpbnQzMl90IGdw
ckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZ3ByQXJncy5zaXplKCk7CisgICAgY29uc3QgdWlu
dDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5qc3JBcmdzLnNpemUoKTsKICAgICBj
b25zdCB1aW50MzJfdCBmcHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmZwckFyZ3Muc2l6ZSgp
OwogCiAgICAgdWludDMyX3QgZ3BySW5kZXggPSAwOwpAQCAtNzkxLDcgKzc5MSw3IEBAIGF1dG8g
TExJbnRHZW5lcmF0b3I6OmFkZEFyZ3VtZW50cyhjb25zdCBUeXBlRGVmaW5pdGlvbiYgc2lnbmF0
dXJlKSAtPiBQYXJ0aWFsUmVzCiAgICAgbV9ub3JtYWxpemVkQXJndW1lbnRzLnJlc2l6ZShtX2Nv
ZGVCbG9jay0+bV9udW1Bcmd1bWVudHMpOwogCiAgICAgY29uc3QgYXV0byYgY2FsbGluZ0NvbnZl
bnRpb24gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKTsKLSAgICBjb25zdCB1aW50MzJfdCBncHJD
b3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgIGNvbnN0IHVpbnQz
Ml90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uanNyQXJncy5zaXplKCk7CiAgICAgY29u
c3QgdWludDMyX3QgZnByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5mcHJBcmdzLnNpemUoKTsK
ICAgICBjb25zdCB1aW50MzJfdCBtYXhHUFJJbmRleCA9IGdwckNvdW50OwogICAgIGNvbnN0IHVp
bnQzMl90IG1heEZQUkluZGV4ID0gZ3ByQ291bnQgKyBmcHJDb3VudDsKQEAgLTk3NCw3ICs5NzQs
NyBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjphZGRMb29wKEJsb2NrU2lnbmF0dXJlIHNpZ25hdHVy
ZSwgU3RhY2smIGVuY2xvc2luZ1N0YWNrLCBDbwogICAgICAgICBvc3JFbnRyeURhdGEuYXBwZW5k
KG1fbm9ybWFsaXplZEFyZ3VtZW50c1tpXSk7CiAKICAgICBjb25zdCBhdXRvJiBjYWxsaW5nQ29u
dmVudGlvbiA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpOwotICAgIGNvbnN0IHVpbnQzMl90IGdw
ckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZ3ByQXJncy5zaXplKCk7CisgICAgY29uc3QgdWlu
dDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5qc3JBcmdzLnNpemUoKTsKICAgICBj
b25zdCB1aW50MzJfdCBmcHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmZwckFyZ3Muc2l6ZSgp
OwogICAgIGZvciAodWludDMyX3QgaSA9IGdwckNvdW50ICsgZnByQ291bnQgKyBudW1iZXJPZkxM
SW50Q2FsbGVlU2F2ZVJlZ2lzdGVyczsgaSA8IG1fY29kZUJsb2NrLT5tX251bVZhcnM7IGkrKykK
ICAgICAgICAgb3NyRW50cnlEYXRhLmFwcGVuZCh2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChpKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3BwCmluZGV4IDhi
NDM2ZDJkY2Y1NmVmNjJlZDJlNDQ3MjhiNDQxMzE1ZmNjOTgzN2EuLmUzNGY0NGNhY2FkM2E5MTQ5
ODRlN2ZiZmRhNTk5N2QzM2I4YTYwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21MTEludFBsYW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21MTEludFBsYW4uY3BwCkBAIC0xMTksMTIgKzExOSwxNSBAQCB2b2lkIExMSW50UGxhbjo6
ZGlkQ29tcGxldGVDb21waWxhdGlvbigpCiAgICAgICAgICAgICBlbnRyeXBvaW50c1tpXSA9IGpp
dC5sYWJlbCgpOwogI2lmIENQVShYODZfNjQpCiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFk
ZHJlc3MgY2FsbGVlU2xvdChDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBDYWxs
RnJhbWVTbG90OjpjYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpIC0g
c2l6ZW9mKENQVVJlZ2lzdGVyKSk7Ci0jZWxpZiBDUFUoQVJNNjQpIHx8IENQVShSSVNDVjY0KQor
I2VsaWYgQ1BVKEFSTTY0KSB8fCBDUFUoUklTQ1Y2NCkgfHwgQ1BVKEFSTSkKICAgICAgICAgICAg
IENDYWxsSGVscGVyczo6QWRkcmVzcyBjYWxsZWVTbG90KENDYWxsSGVscGVyczo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIsIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6
ZW9mKFJlZ2lzdGVyKSkgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpOwogI2Vsc2UKICNlcnJv
ciBVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUuCiAjZW5kaWYKLSAgICAgICAgICAgIGppdC5zdG9y
ZVB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoQ2FsbGVlQml0czo6Ym94V2FzbShtX2Nh
bGxlZXNWZWN0b3JbaV0ucHRyKCkpKSwgY2FsbGVlU2xvdCk7CisgICAgICAgICAgICBqaXQuc3Rv
cmVQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKENhbGxlZUJpdHM6OmJveFdhc20obV9j
YWxsZWVzVmVjdG9yW2ldLnB0cigpKSksIGNhbGxlZVNsb3Qud2l0aE9mZnNldChQYXlsb2FkT2Zm
c2V0KSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIGppdC5zdG9yZTMyKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6Oldhc21UYWcpLCBjYWxsZWVTbG90Lndp
dGhPZmZzZXQoVGFnT2Zmc2V0KSk7CisjZW5kaWYKICAgICAgICAgICAgIGp1bXBzW2ldID0gaml0
Lmp1bXAoKTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtTWVtb3J5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1v
cnkuY3BwCmluZGV4IDQ0MDc1OTUyZjAwNzY5ZGIyYjkwMTYwMGIxMDFiZjJiZGU0YjZlNWYuLmJm
NWMxZWM0NjJiZDE2ZjI0ZGY1NzRlM2IzN2I0MmVmNGZiNTFiODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3BwCkBAIC05OCwxMSArOTgsOSBAQCBjbGFzcyBNZW1v
cnlNYW5hZ2VyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShNZW1vcnlNYW5hZ2VyKTsKIHB1YmxpYzoKLSAgICBNZW1vcnlNYW5hZ2VyKCkK
LSAgICAgICAgOiBtX21heEZhc3RNZW1vcnlDb3VudChPcHRpb25zOjptYXhOdW1XZWJBc3NlbWJs
eUZhc3RNZW1vcmllcygpKQotICAgIHsKLSAgICB9Ci0gICAgCisgICAgTWVtb3J5TWFuYWdlcigp
ID0gZGVmYXVsdDsKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQog
ICAgIE1lbW9yeVJlc3VsdCB0cnlBbGxvY2F0ZUZhc3RNZW1vcnkoKQogICAgIHsKICAgICAgICAg
TWVtb3J5UmVzdWx0IHJlc3VsdCA9IFsmXSB7CkBAIC0xMjUsNyArMTIzLDcgQEAgcHVibGljOgog
ICAgICAgICAKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9Ci0gICAgCisKICAgICB2b2lk
IGZyZWVGYXN0TWVtb3J5KHZvaWQqIGJhc2VQdHIpCiAgICAgewogICAgICAgICB7CkBAIC0xMzYs
NiArMTM0LDcgQEAgcHVibGljOgogICAgICAgICAKICAgICAgICAgZGF0YUxvZ0xuSWYoT3B0aW9u
czo6bG9nV2ViQXNzZW1ibHlNZW1vcnkoKSwgIkZyZWVkIHZpcnR1YWw7IHN0YXRlOiAiLCAqdGhp
cyk7CiAgICAgfQorI2VuZGlmCiAKICAgICBNZW1vcnlSZXN1bHQgdHJ5QWxsb2NhdGVHcm93YWJs
ZUJvdW5kc0NoZWNraW5nTWVtb3J5KHNpemVfdCBtYXBwZWRDYXBhY2l0eSkKICAgICB7CkBAIC0x
NzAsMTEgKzE2OSwxMyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICAvLyBOT1RFOiBUaGlzIGNh
biBiZSBjYWxsZWQgZnJvbSBhIHNpZ25hbCBoYW5kbGVyLCBidXQgb25seSBhZnRlciB3ZSBwcm92
ZWQgdGhhdCB3ZSdyZSBpbiBKSVQgY29kZSBvciBXYXNtTExJbnQgY29kZS4KICAgICAgICAgTG9j
a2VyIGxvY2tlciB7IG1fbG9jayB9OworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdf
TUVNT1JZKQogICAgICAgICBmb3IgKHZvaWQqIG1lbW9yeSA6IG1fZmFzdE1lbW9yaWVzKSB7CiAg
ICAgICAgICAgICBjaGFyKiBzdGFydCA9IHN0YXRpY19jYXN0PGNoYXIqPihtZW1vcnkpOwogICAg
ICAgICAgICAgaWYgKHN0YXJ0IDw9IGFkZHJlc3MgJiYgYWRkcmVzcyA8PSBzdGFydCArIE1lbW9y
eTo6ZmFzdE1hcHBlZEJ5dGVzKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KKyNlbmRpZgogICAgICAgICB1aW50cHRyX3QgYWRkcmVzc1ZhbHVlID0gYml0d2lzZV9j
YXN0PHVpbnRwdHJfdD4oYWRkcmVzcyk7CiAgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBzdGQ6OnVw
cGVyX2JvdW5kKG1fZ3Jvd2FibGVCb3VuZHNDaGVja2luZ01lbW9yaWVzLmJlZ2luKCksIG1fZ3Jv
d2FibGVCb3VuZHNDaGVja2luZ01lbW9yaWVzLmVuZCgpLCBzdGQ6Om1ha2VfcGFpcihhZGRyZXNz
VmFsdWUsIDApLAogICAgICAgICAgICAgW10oc3RkOjpwYWlyPHVpbnRwdHJfdCwgc2l6ZV90PiBh
LCBzdGQ6OnBhaXI8dWludHB0cl90LCBzaXplX3Q+IGIpIHsKQEAgLTIyNywxMyArMjI4LDE5IEBA
IHB1YmxpYzoKICAgICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAg
ICB7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgICAgIG91
dC5wcmludCgiZmFzdCBtZW1vcmllcyA9ICAiLCBtX2Zhc3RNZW1vcmllcy5zaXplKCksICIvIiwg
bV9tYXhGYXN0TWVtb3J5Q291bnQsICIsIGJ5dGVzID0gIiwgbV9waHlzaWNhbEJ5dGVzLCAiLyIs
IG1lbW9yeUxpbWl0KCkpOworI2Vsc2UKKyAgICAgICAgb3V0LnByaW50KCJmYXN0IG1lbW9yaWVz
ID0gTi5BLiwgYnl0ZXMgPSAiLCBtX3BoeXNpY2FsQnl0ZXMsICIvIiwgbWVtb3J5TGltaXQoKSk7
CisjZW5kaWYKICAgICB9CiAgICAgCiBwcml2YXRlOgogICAgIExvY2sgbV9sb2NrOwotICAgIHVu
c2lnbmVkIG1fbWF4RmFzdE1lbW9yeUNvdW50IHsgMCB9OworI2lmIEVOQUJMRShXRUJBU1NFTUJM
WV9TSUdOQUxJTkdfTUVNT1JZKQorICAgIHVuc2lnbmVkIG1fbWF4RmFzdE1lbW9yeUNvdW50IHsg
T3B0aW9uczo6bWF4TnVtV2ViQXNzZW1ibHlGYXN0TWVtb3JpZXMoKSB9OwogICAgIFZlY3Rvcjx2
b2lkKj4gbV9mYXN0TWVtb3JpZXM7CisjZW5kaWYKICAgICBTdGRTZXQ8c3RkOjpwYWlyPHVpbnRw
dHJfdCwgc2l6ZV90Pj4gbV9ncm93YWJsZUJvdW5kc0NoZWNraW5nTWVtb3JpZXM7CiAgICAgc2l6
ZV90IG1fcGh5c2ljYWxCeXRlcyB7IDAgfTsKIH07CkBAIC0zMDAsNiArMzA3LDcgQEAgTWVtb3J5
SGFuZGxlOjp+TWVtb3J5SGFuZGxlKCkKICAgICAgICAgdm9pZCogbWVtb3J5ID0gdGhpcy0+bWVt
b3J5KCk7CiAgICAgICAgIG1lbW9yeU1hbmFnZXIoKS5mcmVlUGh5c2ljYWxCeXRlcyhtX3NpemUp
OwogICAgICAgICBzd2l0Y2ggKG1fbW9kZSkgeworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdO
QUxJTkdfTUVNT1JZKQogICAgICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzoKICAgICAg
ICAgICAgIGlmIChtcHJvdGVjdChtZW1vcnksIE1lbW9yeTo6ZmFzdE1hcHBlZEJ5dGVzKCksIFBS
T1RfUkVBRCB8IFBST1RfV1JJVEUpKSB7CiAgICAgICAgICAgICAgICAgZGF0YUxvZygibXByb3Rl
Y3QgZmFpbGVkOiAiLCBzYWZlU3RyZXJyb3IoZXJybm8pLmRhdGEoKSwgIlxuIik7CkBAIC0zMDcs
NiArMzE1LDcgQEAgTWVtb3J5SGFuZGxlOjp+TWVtb3J5SGFuZGxlKCkKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIG1lbW9yeU1hbmFnZXIoKS5mcmVlRmFzdE1lbW9yeShtZW1vcnkpOwogICAg
ICAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICAgICAgY2FzZSBNZW1vcnlNb2RlOjpCb3VuZHND
aGVja2luZzogewogICAgICAgICAgICAgc3dpdGNoIChtX3NoYXJpbmdNb2RlKSB7CiAgICAgICAg
ICAgICBjYXNlIE1lbW9yeVNoYXJpbmdNb2RlOjpEZWZhdWx0OgpAQCAtMzk1LDYgKzQwNCw3IEBA
IFJlZlB0cjxNZW1vcnk+IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBpbml0aWFsLCBQYWdl
Q291bnQgbWF4aW11bSwgTWVtb3J5U2hhCiAgICAgaWYgKCFkb25lKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICAgICAgCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1P
UlkpCiAgICAgY2hhciogZmFzdE1lbW9yeSA9IG51bGxwdHI7CiAgICAgaWYgKE9wdGlvbnM6OnVz
ZVdlYkFzc2VtYmx5RmFzdE1lbW9yeSgpKSB7CiAgICAgICAgIHRyeUFsbG9jYXRlKApAQCAtNDEz
LDcgKzQyMyw4IEBAIFJlZlB0cjxNZW1vcnk+IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBp
bml0aWFsLCBQYWdlQ291bnQgbWF4aW11bSwgTWVtb3J5U2hhCiAKICAgICAgICAgcmV0dXJuIE1l
bW9yeTo6Y3JlYXRlKGFkb3B0UmVmKCpuZXcgTWVtb3J5SGFuZGxlKGZhc3RNZW1vcnksIGluaXRp
YWxCeXRlcywgTWVtb3J5OjpmYXN0TWFwcGVkQnl0ZXMoKSwgaW5pdGlhbCwgbWF4aW11bSwgc2hh
cmluZ01vZGUsIE1lbW9yeU1vZGU6OlNpZ25hbGluZykpLCBXVEZNb3ZlKG5vdGlmeU1lbW9yeVBy
ZXNzdXJlKSwgV1RGTW92ZShzeW5jVHJ5VG9SZWNsYWltTWVtb3J5KSwgV1RGTW92ZShncm93U3Vj
Y2Vzc0NhbGxiYWNrKSk7CiAgICAgfQotICAgIAorI2VuZGlmCisKICAgICBpZiAoVU5MSUtFTFko
T3B0aW9uczo6Y3Jhc2hJZldlYkFzc2VtYmx5Q2FudEZhc3RNZW1vcnkoKSkpCiAgICAgICAgIHdl
YkFzc2VtYmx5Q291bGRudEdldEZhc3RNZW1vcnkoKTsKIApAQCAtNDU2LDYgKzQ2Nyw3IEBAIFJl
ZlB0cjxNZW1vcnk+IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBpbml0aWFsLCBQYWdlQ291
bnQgbWF4aW11bSwgTWVtb3J5U2hhCiAKIE1lbW9yeTo6fk1lbW9yeSgpID0gZGVmYXVsdDsKIAor
I2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogc2l6ZV90IE1lbW9yeTo6
ZmFzdE1hcHBlZFJlZHpvbmVCeXRlcygpCiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHNpemVf
dD4oUGFnZUNvdW50OjpwYWdlU2l6ZSkgKiBPcHRpb25zOjp3ZWJBc3NlbWJseUZhc3RNZW1vcnlS
ZWR6b25lUGFnZXMoKTsKQEAgLTQ2Niw2ICs0NzgsNyBAQCBzaXplX3QgTWVtb3J5OjpmYXN0TWFw
cGVkQnl0ZXMoKQogICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKHVpbnQ2NF90KSA9PSBzaXplb2Yo
c2l6ZV90KSwgIldlIHJlbHkgb24gYWxsb3dpbmcgdGhlIG1heGltdW0gc2l6ZSBvZiBNZW1vcnkg
d2UgbWFwIHRvIGJlIDJeMzIgKyByZWR6b25lIHdoaWNoIGlzIGxhcmdlciB0aGFuIGZpdHMgaW4g
YSAzMi1iaXQgaW50ZWdlciB0aGF0IHdlJ2QgcGFzcyB0byBtcHJvdGVjdCBpZiB0aGlzIGRpZG4n
dCBob2xkLiIpOwogICAgIHJldHVybiAoc3RhdGljX2Nhc3Q8c2l6ZV90PigxKSA8PCAzMikgKyBm
YXN0TWFwcGVkUmVkem9uZUJ5dGVzKCk7CiB9CisjZW5kaWYKIAogYm9vbCBNZW1vcnk6OmFkZHJl
c3NJc0luR3Jvd2FibGVPckZhc3RNZW1vcnkodm9pZCogYWRkcmVzcykKIHsKQEAgLTUyNCw4ICs1
MzcsMTQgQEAgRXhwZWN0ZWQ8UGFnZUNvdW50LCBNZW1vcnk6Okdyb3dGYWlsUmVhc29uPiBNZW1v
cnk6Omdyb3dTaGFyZWQoUGFnZUNvdW50IGRlbHRhKQogICAgICAgICBtX2hhbmRsZS0+Z3Jvd1Rv
U2l6ZShkZXNpcmVkU2l6ZSk7CiAgICAgICAgIHJldHVybiBvbGRQYWdlQ291bnQ7CiAgICAgfSgp
KTsKLSAgICBpZiAocmVzdWx0KQorICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgbV9ncm93U3Vj
Y2Vzc0NhbGxiYWNrKEdyb3dTdWNjZXNzVGFnLCBvbGRQYWdlQ291bnQsIG5ld1BhZ2VDb3VudCk7
CisgICAgICAgIC8vIFVwZGF0ZSBjYWNoZSBmb3IgaW5zdGFuY2UKKyAgICAgICAgZm9yIChhdXRv
JiBpbnN0YW5jZSA6IG1faW5zdGFuY2VzKSB7CisgICAgICAgICAgICBpZiAoaW5zdGFuY2UuZ2V0
KCkgIT0gbnVsbHB0cikKKyAgICAgICAgICAgICAgICBpbnN0YW5jZS5nZXQoKS0+dXBkYXRlQ2Fj
aGVkTWVtb3J5KCk7CisgICAgICAgIH0KKyAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApA
QCAtNTg4LDYgKzYwNyw3IEBAIEV4cGVjdGVkPFBhZ2VDb3VudCwgTWVtb3J5OjpHcm93RmFpbFJl
YXNvbj4gTWVtb3J5Ojpncm93KFBhZ2VDb3VudCBkZWx0YSkKICAgICAgICAgQVNTRVJUKG1lbW9y
eSgpID09IG5ld01lbW9yeSk7CiAgICAgICAgIHJldHVybiBzdWNjZXNzKCk7CiAgICAgfQorI2lm
IEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIGNhc2UgTWVtb3J5TW9k
ZTo6U2lnbmFsaW5nOiB7CiAgICAgICAgIHNpemVfdCBleHRyYUJ5dGVzID0gZGVzaXJlZFNpemUg
LSBzaXplKCk7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGV4dHJhQnl0ZXMpOwpAQCAtNjEzLDYg
KzYzMyw3IEBAIEV4cGVjdGVkPFBhZ2VDb3VudCwgTWVtb3J5OjpHcm93RmFpbFJlYXNvbj4gTWVt
b3J5Ojpncm93KFBhZ2VDb3VudCBkZWx0YSkKICAgICAgICAgbV9oYW5kbGUtPmdyb3dUb1NpemUo
ZGVzaXJlZFNpemUpOwogICAgICAgICByZXR1cm4gc3VjY2VzcygpOwogICAgIH0KKyNlbmRpZgog
ICAgIH0KIAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC02NDYsNyArNjY3
LDggQEAgYm9vbCBNZW1vcnk6OmNvcHkodWludDMyX3QgZHN0QWRkcmVzcywgdWludDMyX3Qgc3Jj
QWRkcmVzcywgdWludDMyX3QgY291bnQpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgdWlu
dDhfdCogYmFzZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KG1lbW9yeSgpKTsKLSAgICBt
ZW1jcHkoYmFzZSArIGRzdEFkZHJlc3MsIGJhc2UgKyBzcmNBZGRyZXNzLCBjb3VudCk7CisgICAg
Ly8gU291cmNlIGFuZCBkZXN0aW5hdGlvbiBhcmVhcyBtaWdodCBvdmVybGFwLCBzbyB1c2luZyBt
ZW1tb3ZlLgorICAgIG1lbW1vdmUoYmFzZSArIGRzdEFkZHJlc3MsIGJhc2UgKyBzcmNBZGRyZXNz
LCBjb3VudCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21NZW1vcnkuaAppbmRleCBmNWM1OGZjZjk2ZjJkODZiMDc1Y2U1NzhkNTY2OTdhZTc0YTU2
MjQzLi45Mjc5NjNiOTI0Yzc4NzdmODNkNjQyZjVlOWYwMGUxZTU4OTZhOGFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5oCkBAIC02MSw3ICs2MSw2IEBAIHB1YmxpYzoK
ICAgICB2b2lkKiBtZW1vcnkoKSBjb25zdDsKICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fc2l6ZTsgfQogICAgIHNpemVfdCBtYXBwZWRDYXBhY2l0eSgpIGNvbnN0IHsgcmV0dXJu
IG1fbWFwcGVkQ2FwYWNpdHk7IH0KLSAgICBzaXplX3QgYm91bmRzQ2hlY2tpbmdTaXplKCkgY29u
c3QgeyByZXR1cm4gbV9tYXBwZWRDYXBhY2l0eTsgfQogICAgIFBhZ2VDb3VudCBpbml0aWFsKCkg
Y29uc3QgeyByZXR1cm4gbV9pbml0aWFsOyB9CiAgICAgUGFnZUNvdW50IG1heGltdW0oKSBjb25z
dCB7IHJldHVybiBtX21heGltdW07IH0KICAgICBNZW1vcnlTaGFyaW5nTW9kZSBzaGFyaW5nTW9k
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcmluZ01vZGU7IH0KQEAgLTEwNiwxNCArMTA1LDE2IEBA
IHB1YmxpYzoKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIH5NZW1vcnkoKTsKIAorI2lmIEVOQUJM
RShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIHN0YXRpYyBzaXplX3QgZmFzdE1h
cHBlZFJlZHpvbmVCeXRlcygpOwogICAgIHN0YXRpYyBzaXplX3QgZmFzdE1hcHBlZEJ5dGVzKCk7
IC8vIEluY2x1ZGVzIHJlZHpvbmUuCisjZW5kaWYKICAgICBzdGF0aWMgYm9vbCBhZGRyZXNzSXNJ
bkdyb3dhYmxlT3JGYXN0TWVtb3J5KHZvaWQqKTsKIAogICAgIHZvaWQqIG1lbW9yeSgpIGNvbnN0
IHsgcmV0dXJuIG1faGFuZGxlLT5tZW1vcnkoKTsgfQogICAgIHNpemVfdCBzaXplKCkgY29uc3Qg
eyByZXR1cm4gbV9oYW5kbGUtPnNpemUoKTsgfQogICAgIFBhZ2VDb3VudCBzaXplSW5QYWdlcygp
IGNvbnN0IHsgcmV0dXJuIFBhZ2VDb3VudDo6ZnJvbUJ5dGVzKHNpemUoKSk7IH0KLSAgICBzaXpl
X3QgYm91bmRzQ2hlY2tpbmdTaXplKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGUtPmJvdW5kc0No
ZWNraW5nU2l6ZSgpOyB9CisgICAgc2l6ZV90IG1hcHBlZENhcGFjaXR5KCkgY29uc3QgeyByZXR1
cm4gbV9oYW5kbGUtPm1hcHBlZENhcGFjaXR5KCk7IH0KICAgICBQYWdlQ291bnQgaW5pdGlhbCgp
IGNvbnN0IHsgcmV0dXJuIG1faGFuZGxlLT5pbml0aWFsKCk7IH0KICAgICBQYWdlQ291bnQgbWF4
aW11bSgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxlLT5tYXhpbXVtKCk7IH0KICAgICBNZW1vcnlI
YW5kbGUmIGhhbmRsZSgpIHsgcmV0dXJuIG1faGFuZGxlLmdldCgpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmNwcAppbmRleCAy
NjUyZGU3MmVkNTY1OGI3N2NlZTI5OTEyYTUyOWVmN2YyYmZiNDBkLi42MGZhZDYzZWYwZTBiNzlj
ZTJjMjZlMjYzNzk3ZDRjNDEzMzFhMzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5jcHAKQEAgLTQxLDggKzQxLDE1IEBAIGNv
bnN0IFBpbm5lZFJlZ2lzdGVySW5mbyYgUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKQogICAgICAg
ICB1bnNpZ25lZCBudW1iZXJPZlBpbm5lZFJlZ2lzdGVycyA9IDI7CiAgICAgICAgIGlmICghQ29u
dGV4dDo6dXNlRmFzdFRMUygpKQogICAgICAgICAgICAgKytudW1iZXJPZlBpbm5lZFJlZ2lzdGVy
czsKKyNpZiBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpCiAgICAgICAgIEdQUlJlZyBiYXNlTWVt
b3J5UG9pbnRlciA9IEdQUkluZm86OnJlZ0NTMzsKICAgICAgICAgR1BSUmVnIGJvdW5kc0NoZWNr
aW5nU2l6ZVJlZ2lzdGVyID0gR1BSSW5mbzo6cmVnQ1M0OworI2VsaWYgQ1BVKEFSTSkKKyAgICAg
ICAgLy8gTm90IGVub3VnaCByZWdpc3RlcnMuIHJlZ0NTMCBpcyB0aGUgd2FzbSBpbnN0YW5jZSwg
cmVnQ1MxIGlzIExMSW50IFBCCisgICAgICAgIG51bWJlck9mUGlubmVkUmVnaXN0ZXJzIC09IDI7
CisgICAgICAgIEdQUlJlZyBiYXNlTWVtb3J5UG9pbnRlciA9IEludmFsaWRHUFJSZWc7CisgICAg
ICAgIEdQUlJlZyBib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlciA9IEludmFsaWRHUFJSZWc7Cisj
ZW5kaWYKICAgICAgICAgR1BSUmVnIHdhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyID0gSW52YWxp
ZEdQUlJlZzsKICAgICAgICAgaWYgKCFDb250ZXh0Ojp1c2VGYXN0VExTKCkpCiAgICAgICAgICAg
ICB3YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlciA9IEdQUkluZm86OnJlZ0NTMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmgKaW5kZXgg
ODU0ZmJhNTRlMzM3ZjBmMDI0OGUzMzkzNzg0NDNiMzQxZTBmNzMwOS4uMjlmY2JkYjZkNDYzMGU5
NDRlMWY1MGI5ZjgyODYxNjg4NWU5ZDI0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmgKQEAgLTUyLDEwICs1MiwxMSBAQCBwdWJs
aWM6CiAgICAgUmVnaXN0ZXJTZXQgdG9TYXZlKE1lbW9yeU1vZGUgbW9kZSkgY29uc3QKICAgICB7
CiAgICAgICAgIFJlZ2lzdGVyU2V0IHJlc3VsdDsKLSAgICAgICAgcmVzdWx0LnNldChiYXNlTWVt
b3J5UG9pbnRlcik7CisgICAgICAgIGlmIChiYXNlTWVtb3J5UG9pbnRlciAhPSBJbnZhbGlkR1BS
UmVnKQorICAgICAgICAgICAgcmVzdWx0LnNldChiYXNlTWVtb3J5UG9pbnRlcik7CiAgICAgICAg
IGlmICh3YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlciAhPSBJbnZhbGlkR1BSUmVnKQogICAgICAg
ICAgICAgcmVzdWx0LnNldCh3YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlcik7Ci0gICAgICAgIGlm
IChtb2RlICE9IE1lbW9yeU1vZGU6OlNpZ25hbGluZykKKyAgICAgICAgaWYgKG1vZGUgPT0gTWVt
b3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcgJiYgYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIgIT0g
SW52YWxpZEdQUlJlZykKICAgICAgICAgICAgIHJlc3VsdC5zZXQoYm91bmRzQ2hlY2tpbmdTaXpl
UmVnaXN0ZXIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmNwcAppbmRleCA5YmUwNGQ3N2IwNmI4Y2E3
MjI3YTFjNjZhNmM2MzM4YjM3OTg4ZTViLi5mMzNiMDUyNTE5ODMwYzQ0YzAxNmMyYmY3ZWJjOGE3
MmRlN2ZhODY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVt
b3J5TW9kZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1v
ZGUuY3BwCkBAIC0zNyw3ICszNyw5IEBAIGNvbnN0IGNoYXIqIG1ha2VTdHJpbmcoTWVtb3J5TW9k
ZSBtb2RlKQogewogICAgIHN3aXRjaCAobW9kZSkgewogICAgIGNhc2UgTWVtb3J5TW9kZTo6Qm91
bmRzQ2hlY2tpbmc6IHJldHVybiAiQm91bmRzQ2hlY2tpbmciOworI2lmIEVOQUJMRShXRUJBU1NF
TUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIGNhc2UgTWVtb3J5TW9kZTo6U2lnbmFsaW5nOiBy
ZXR1cm4gIlNpZ25hbGluZyI7CisjZW5kaWYKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICByZXR1cm4gIiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU1lbW9yeU1vZGUuaAppbmRleCAwMmNmY2ZlNDlmNDcxNTRiMzE1M2MwOWFiZDhjY2ZjN2Nm
YzIxMDY4Li5kNzExYWZhZjMwMzMxZjhjYzczZDI2OGFjMGM0ZTc1MWMwYjJmYjRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmgKQEAgLTM0LDcgKzM0LDkg
QEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIC8vIEZJWE1FOiBXZSBzaG91bGQg
c3VwcG9ydCBvdGhlciBtb2Rlcy4gc2VlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTYyNjkzCiBlbnVtIGNsYXNzIE1lbW9yeU1vZGUgOiB1aW50OF90IHsKICAgICBC
b3VuZHNDaGVja2luZywKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkK
ICAgICBTaWduYWxpbmcKKyNlbmRpZgogfTsKIAogc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgTnVt
YmVyT2ZNZW1vcnlNb2RlcyA9IDI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21PcGNvZGVPcmlnaW4uY3BwCmluZGV4IGI2YzVjMjc1NTMxMWIzZGUzNDAzNTNlNzU5NDNkNjEz
ZGZmNmQyZDguLjlmYzkxYjlkOWM1NDgyNjkyYTFkMzdjOTAxOWM4YzVjYmMxMmRmMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uY3BwCkBAIC0y
Niw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2FzbU9wY29kZU9y
aWdpbi5oIgogCi0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorI2lmIEVOQUJMRShXRUJBU1NFTUJM
WV9CM0pJVCkKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIApAQCAtMzcsNCAr
MzcsNCBAQCB2b2lkIE9wY29kZU9yaWdpbjo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAog
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VN
QkxZKQorI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWV9CM0pJVCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uaAppbmRleCBhMGQ4ZGYzYWVmMTlhZWY2
YjE3MDc5NDc5YTYzNDgxMjg4MGM4NzM2Li41YzRiNjc2ZDVjNmViMGY1OWE5N2Q0OWJiM2Q1NWE0
MTdiZWMxYzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bj
b2RlT3JpZ2luLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9y
aWdpbi5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKFdF
QkFTU0VNQkxZKQorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9CM0pJVCkKIAogI2luY2x1ZGUgIkIz
T3JpZ2luLmgiCiAjaW5jbHVkZSAiV2FzbUZvcm1hdC5oIgpAQCAtNjAsNCArNjAsNCBAQCBwcml2
YXRlOgogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQogCi0jZW5kaWYgLy8gRU5BQkxFKFdF
QkFTU0VNQkxZKQorI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWV9CM0pJVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcAppbmRleCBmMmY2MTFhNmJl
NmUzMjJmZWRlZmU2ZjI5NGNmZjEyY2QyMjgwZjM5Li42NDNjNDdjZGYzMDY5YzUwNTYxZDFkZTNi
OWM2ZTM2YmNlNTk2MzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9w
ZXJhdGlvbnMuY3BwCkBAIC00NjgsNDMgKzQ2OCw0MyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uV2FzbVVud2luZCwgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lKSkKICAg
ICBBU1NFUlQoISF2bS5jYWxsRnJhbWVGb3JDYXRjaCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JNjQsIGludDY0X3QsIChDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgSlNWYWx1ZSB2KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252
ZXJ0VG9JNjQsIGludDY0X3QsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUg
dikpCiB7CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3Rh
bmNlKiBpbnN0ZWFkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDMyMDYKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAg
IE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgcmV0dXJu
IHYudG9CaWdJbnQ2NChjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKHYpLnRvQmlnSW50NjQoY2FsbEZyYW1lLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KHZtKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
b252ZXJ0VG9GNjQsIGRvdWJsZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0Y2NCwgZG91YmxlLCAo
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVuY29kZWRKU1ZhbHVlIHYpKQogewogICAgIC8vIEZJWE1F
OiBDb25zaWRlciBwYXNzaW5nIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGVhZC4KICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjA2CiAgICAgVk0m
IHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIHJldHVybiB2LnRvTnVtYmVyKGNhbGxGcmFt
ZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpOworICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUo
dikudG9OdW1iZXIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSk7CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIGludDMyX3QsIChD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIGludDMyX3QsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
RW5jb2RlZEpTVmFsdWUgdikpCiB7CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNX
ZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0ZWFkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMyMDYKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJl
Y2F0ZWRWTSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFt
ZSk7Ci0gICAgcmV0dXJuIHYudG9JbnQzMihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qo
dm0pKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKHYpLnRvSW50MzIoY2FsbEZyYW1lLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db252ZXJ0VG9GMzIsIGZsb2F0LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFs
dWUgdikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjMyLCBm
bG9hdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSB2KSkKIHsKICAgICAv
LyBGSVhNRTogQ29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RlYWQu
CiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIwNgog
ICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAgTmF0aXZlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
ZmxvYXQ+KHYudG9OdW1iZXIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSkpOwor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4oSlNWYWx1ZTo6ZGVjb2RlKHYpLnRvTnVtYmVy
KGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpKTsKIH0KIAotSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBpbnQ2NF90IHZhbHVlKSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29k
ZWRKU1ZhbHVlLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwgRW5j
b2RlZFdhc21WYWx1ZSB2YWx1ZSkpCiB7CiAgICAgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBqc0lu
c3RhbmNlID0gaW5zdGFuY2UtPm93bmVyPEpTV2ViQXNzZW1ibHlJbnN0YW5jZT4oKTsKICAgICBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNJbnN0YW5jZS0+Z2xvYmFsT2JqZWN0KCk7
CkBAIC01MTQsNyArNTE0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNv
bnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqIGMKIH0KIAogLy8gaHR0
cHM6Ly93ZWJhc3NlbWJseS5naXRodWIuaW8vbXVsdGktdmFsdWUvanMtYXBpL2luZGV4Lmh0bWwj
cnVuLWEtaG9zdC1mdW5jdGlvbgotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0
ZXJhdGVSZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0
YW5jZSwgY29uc3QgVHlwZURlZmluaXRpb24qIHR5cGUsIEpTVmFsdWUgcmVzdWx0LCB1aW50NjRf
dCogcmVnaXN0ZXJSZXN1bHRzLCB1aW50NjRfdCogY2FsbGVlRnJhbWVQb2ludGVyKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0cywgdm9pZCwgKENhbGxG
cmFtZSogY2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2UsIGNvbnN0IFR5cGVEZWZpbml0aW9u
KiB0eXBlLCBFbmNvZGVkSlNWYWx1ZSBlbmNSZXN1bHQsIHVpbnQ2NF90KiByZWdpc3RlclJlc3Vs
dHMsIHVpbnQ2NF90KiBjYWxsZWVGcmFtZVBvaW50ZXIpKQogewogICAgIC8vIEZJWE1FOiBDb25z
aWRlciBwYXNzaW5nIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGVhZC4KICAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjA2CkBAIC01MzEsNiArNTMx
LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2
b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEkKIAogICAgIHVuc2lnbmVkIGl0ZXJhdGlvbkNv
dW50ID0gMDsKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBidWZmZXI7CisgICAgSlNWYWx1ZSBy
ZXN1bHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jUmVzdWx0KTsKICAgICBmb3JFYWNoSW5JdGVyYWJs
ZShnbG9iYWxPYmplY3QsIHJlc3VsdCwgWyZdIChWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1
ZSB2YWx1ZSkgLT4gdm9pZCB7CiAgICAgICAgIGlmIChidWZmZXIuc2l6ZSgpIDwgc2lnbmF0dXJl
LT5yZXR1cm5Db3VudCgpKQogICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCh2YWx1ZSk7CkBAIC01
ODAsOCArNTgxLDEwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRl
UmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJCiAgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAKICAgICAgICAgYXV0byByZXAgPSB3YXNtQ2Fs
bEluZm8ucmVzdWx0c1tpbmRleF07Ci0gICAgICAgIGlmIChyZXAuaXNSZWcoKSkKLSAgICAgICAg
ICAgIHJlZ2lzdGVyUmVzdWx0c1tyZWdpc3RlclJlc3VsdE9mZnNldHMuZmluZChyZXAucmVnKCkp
LT5vZmZzZXQoKSAvIHNpemVvZih1aW50NjRfdCldID0gdW5ib3hlZFZhbHVlOworICAgICAgICBp
ZiAocmVwLmlzR1BSKCkpCisgICAgICAgICAgICByZWdpc3RlclJlc3VsdHNbcmVnaXN0ZXJSZXN1
bHRPZmZzZXRzLmZpbmQocmVwLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpIC8gc2l6ZW9m
KHVpbnQ2NF90KV0gPSB1bmJveGVkVmFsdWU7CisgICAgICAgIGVsc2UgaWYgKHJlcC5pc0ZQUigp
KQorICAgICAgICAgICAgcmVnaXN0ZXJSZXN1bHRzW3JlZ2lzdGVyUmVzdWx0T2Zmc2V0cy5maW5k
KHJlcC5mcHIoKSktPm9mZnNldCgpIC8gc2l6ZW9mKHVpbnQ2NF90KV0gPSB1bmJveGVkVmFsdWU7
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGNhbGxlZUZyYW1lUG9pbnRlcltyZXAub2Zmc2V0
RnJvbUZQKCkgLyBzaXplb2YodWludDY0X3QpXSA9IHVuYm94ZWRWYWx1ZTsKICAgICB9CkBAIC02
MDcsMTIgKzYxMCwxNiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2Nh
dGVSZXN1bHRzQXJyYXksIEpTQXJyYXkqLCAoQ2FsbEZyYW1lKiBjYQogICAgIGF1dG8gd2FzbUNh
bGxJbmZvID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkuY2FsbEluZm9ybWF0aW9uRm9yKCp0eXBl
KTsKICAgICBSZWdpc3RlckF0T2Zmc2V0TGlzdCByZWdpc3RlclJlc3VsdHMgPSB3YXNtQ2FsbElu
Zm8uY29tcHV0ZVJlc3VsdHNPZmZzZXRMaXN0KCk7CiAKLSAgICBzdGF0aWNfYXNzZXJ0KHNpemVv
ZihKU1ZhbHVlKSA9PSBzaXplb2YoQ1BVUmVnaXN0ZXIpLCAiVGhlIGNvZGUgYmVsb3cgcmVsaWVz
IG9uIHRoaXMuIik7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpZ25hdHVyZS0+cmV0
dXJuQ291bnQoKTsgKytpKSB7CiAgICAgICAgIFZhbHVlTG9jYXRpb24gbG9jID0gd2FzbUNhbGxJ
bmZvLnJlc3VsdHNbaV07CiAgICAgICAgIEpTVmFsdWUgdmFsdWU7Ci0gICAgICAgIGlmIChsb2Mu
aXNSZWcoKSkKLSAgICAgICAgICAgIHZhbHVlID0gc3RhY2tQb2ludGVyRnJvbUNhbGxlZVsocmVn
aXN0ZXJSZXN1bHRzLmZpbmQobG9jLnJlZygpKS0+b2Zmc2V0KCkgKyB3YXNtQ2FsbEluZm8uaGVh
ZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSAvIHNpemVvZihKU1ZhbHVlKV07CisgICAg
ICAgIGlmIChsb2MuaXNHUFIoKSkgeworI2lmIFVTRShKU1ZBTEUzMl82NCkKKyAgICAgICAgICAg
IEFTU0VSVChyZWdpc3RlclJlc3VsdHMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zm
c2V0KCkgKyA0ID09IHJlZ2lzdGVyUmVzdWx0cy5maW5kKGxvYy5qc3IoKS50YWdHUFIoKSktPm9m
ZnNldCgpKTsKKyNlbmRpZgorICAgICAgICAgICAgdmFsdWUgPSBzdGFja1BvaW50ZXJGcm9tQ2Fs
bGVlWyhyZWdpc3RlclJlc3VsdHMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0
KCkgKyB3YXNtQ2FsbEluZm8uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSAvIHNp
emVvZihKU1ZhbHVlKV07CisgICAgICAgIH0gZWxzZSBpZiAobG9jLmlzRlBSKCkpCisgICAgICAg
ICAgICB2YWx1ZSA9IHN0YWNrUG9pbnRlckZyb21DYWxsZWVbKHJlZ2lzdGVyUmVzdWx0cy5maW5k
KGxvYy5mcHIoKSktPm9mZnNldCgpICsgd2FzbUNhbGxJbmZvLmhlYWRlckFuZEFyZ3VtZW50U3Rh
Y2tTaXplSW5CeXRlcykgLyBzaXplb2YoSlNWYWx1ZSldOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICB2YWx1ZSA9IHN0YWNrUG9pbnRlckZyb21DYWxsZWVbbG9jLm9mZnNldEZyb21TUCgpIC8g
c2l6ZW9mKEpTVmFsdWUpXTsKICAgICAgICAgcmVzdWx0LT5pbml0aWFsaXplSW5kZXgoaW5pdGlh
bGl6YXRpb25TY29wZSwgaSwgdmFsdWUpOwpAQCAtOTUzLDcgKzk2MCw4IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGhyb3csIHZvaWQqLCAoSW5zdGFuY2UqIGluc3Rh
bmNlLCBDYWxsRnJhCiAgICAgLy8gdG8gdGhlIGV4Y2VwdGlvbiBoYW5kbGVyLiBJZiB3ZSBkaWQg
dGhpcywgd2UgY291bGQgcmVtb3ZlIHRoaXMgdGVycmlibGUgaGFjay4KICAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDQwCiAgICAgdm0uY2FsbGVlRm9y
V2FzbUNhdGNoID0gY2FsbEZyYW1lLT5jYWxsZWUoKTsKLSAgICBiaXR3aXNlX2Nhc3Q8dWludDY0
X3QqPihjYWxsRnJhbWUpW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0g
PSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsKKyAgICBSZWdp
c3RlciogY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxSZWdpc3Rlcio+KGNhbGxGcmFtZSkgKyBz
dGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7CisgICAgKmNhbGxlZVNsb3Qg
PSBiaXR3aXNlX2Nhc3Q8SlNDZWxsKj4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOwogICAgIHJldHVy
biB2bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKIH0KIApAQCAtOTc5LDcgKzk4Nyw4IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtUmV0aHJvdywgdm9pZCosIChJbnN0
YW5jZSogaW5zdGFuY2UsIENhbGxGCiAgICAgLy8gdG8gdGhlIGV4Y2VwdGlvbiBoYW5kbGVyLiBJ
ZiB3ZSBkaWQgdGhpcywgd2UgY291bGQgcmVtb3ZlIHRoaXMgdGVycmlibGUgaGFjay4KICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDQwCiAgICAgdm0u
Y2FsbGVlRm9yV2FzbUNhdGNoID0gY2FsbEZyYW1lLT5jYWxsZWUoKTsKLSAgICBiaXR3aXNlX2Nh
c3Q8dWludDY0X3QqPihjYWxsRnJhbWUpW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6
Y2FsbGVlKV0gPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsK
KyAgICBSZWdpc3RlciogY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxSZWdpc3Rlcio+KGNhbGxG
cmFtZSkgKyBzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7CisgICAgKmNh
bGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8SlNDZWxsKj4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOwog
ICAgIHJldHVybiB2bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKIH0KIApAQCAtMTAxNCwxMiAr
MTAyMywxNCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRvSlNFeGNl
cHRpb24sIHZvaWQqLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbQogICAgIC8vIHRvIHRoZSBleGNlcHRp
b24gaGFuZGxlci4gSWYgd2UgZGlkIHRoaXMsIHdlIGNvdWxkIHJlbW92ZSB0aGlzIHRlcnJpYmxl
IGhhY2suCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
MDQ0MAogICAgIHZtLmNhbGxlZUZvcldhc21DYXRjaCA9IGNhbGxGcmFtZS0+Y2FsbGVlKCk7Ci0g
ICAgYml0d2lzZV9jYXN0PHVpbnQ2NF90Kj4oY2FsbEZyYW1lKVtzdGF0aWNfY2FzdDxpbnQ+KENh
bGxGcmFtZVNsb3Q6OmNhbGxlZSldID0gYml0d2lzZV9jYXN0PHVpbnQ2NF90PihpbnN0YW5jZS0+
bW9kdWxlKCkpOworICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJlZ2lz
dGVyKj4oY2FsbEZyYW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVl
KTsKKyAgICAqY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihpbnN0YW5jZS0+bW9k
dWxlKCkpOwogICAgIHJldHVybiB2bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKIH0KIAogSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZXRyaWV2ZUFuZENsZWFyRXhjZXB0
aW9uSWZDYXRjaGFibGUsIFBvaW50ZXJQYWlyLCAoSW5zdGFuY2UqIGluc3RhbmNlKSkKIHsKKyNp
ZiBVU0UoSlNWQUxVRTY0KQogICAgIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSoganNJbnN0YW5jZSA9
IGluc3RhbmNlLT5vd25lcjxKU1dlYkFzc2VtYmx5SW5zdGFuY2U+KCk7CiAgICAgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCA9IGpzSW5zdGFuY2UtPmdsb2JhbE9iamVjdCgpOwogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTEwMzksNiArMTA1MCwxMyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVJldHJpZXZlQW5kQ2xlYXJFeGNlcHRpb25J
ZkNhdGNoYWJsZSwgUG9pbgogICAgIGlmIChKU1dlYkFzc2VtYmx5RXhjZXB0aW9uKiB3YXNtRXhj
ZXB0aW9uID0ganNEeW5hbWljQ2FzdDxKU1dlYkFzc2VtYmx5RXhjZXB0aW9uKj4odGhyb3duVmFs
dWUpKQogICAgICAgICBwYXlsb2FkID0gYml0d2lzZV9jYXN0PHZvaWQqPih3YXNtRXhjZXB0aW9u
LT5wYXlsb2FkKCkuZGF0YSgpKTsKICAgICByZXR1cm4gUG9pbnRlclBhaXIgeyBiaXR3aXNlX2Nh
c3Q8dm9pZCo+KEpTVmFsdWU6OmVuY29kZSh0aHJvd25WYWx1ZSkpLCBwYXlsb2FkIH07CisjZWxp
ZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIC8vIE5vdGU6IFRoaXMgZnVuY3Rpb24gbmVlZHMgdG8g
cmV0dXJuIGEgcG9pbnRlciBhbmQgYSBKU1ZhbHVlLCBzbyB3aWxsIG5lZWQgdG8KKyAgICAvLyBj
aGFuZ2Ugc2lnbmF0dXJlIG9uIEpTVkFMRTMyXzY0LCBuZXZlcnRoZWxlc3MsIGZvciBub3cgaXQn
cyB1bnVzZWQuCisgICAgVU5SRUFDSEFCTEVfRk9SX1BMQVRGT1JNKCk7CisgICAgVU5VU0VEX1BB
UkFNKGluc3RhbmNlKTsKKyAgICByZXR1cm4geyBudWxscHRyLCBudWxscHRyIH07CisjZW5kaWYK
IH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtT3BlcmF0aW9ucy5oCmluZGV4IGUyY2IzNTkwNDE5NmI5ZjQxYmU1NmQzZDdlZmM2
ODkyMDc5ZjNjMDMuLjRjOTdjNGQ3MWRiNzg2ZGE1MzU5OGVmNDU0MWNmZjc2ZDUxNGNiZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaApAQCAtNDcsMjIg
KzQ3LDIzIEBAIG5hbWVzcGFjZSBXYXNtIHsKIGNsYXNzIEluc3RhbmNlOwogY2xhc3MgVHlwZURl
ZmluaXRpb247CiAKLXZvaWQgbG9hZFZhbHVlc0ludG9CdWZmZXIoUHJvYmU6OkNvbnRleHQmLCBj
b25zdCBTdGFja01hcCYsIHVpbnQ2NF90KiBidWZmZXIpOwordHlwZWRlZiBpbnQ2NF90IEVuY29k
ZWRXYXNtVmFsdWU7CiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCit2b2lkIGxvYWRW
YWx1ZXNJbnRvQnVmZmVyKFByb2JlOjpDb250ZXh0JiwgY29uc3QgU3RhY2tNYXAmLCB1aW50NjRf
dCogYnVmZmVyKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdn
ZXJPU1JFbnRyeU5vdywgdm9pZCwgKFByb2JlOjpDb250ZXh0JikpOwogSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25XYXNtVHJpZ2dlclRpZXJVcE5vdywgdm9pZCwgKEluc3RhbmNl
KiwgdWludDMyX3QgZnVuY3Rpb25JbmRleCkpOwogI2VuZGlmCiBKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbldhc21VbndpbmQsIHZvaWQsIChDYWxsRnJhbWUqKSk7CiAKLUpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTY0LCBpbnQ2NF90LCAoQ2Fs
bEZyYW1lKiwgSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
b252ZXJ0VG9GNjQsIGRvdWJsZSwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTMyLCBpbnQzMl90LCAoQ2FsbEZyYW1l
KiwgSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0
VG9GMzIsIGZsb2F0LCAoQ2FsbEZyYW1lKiwgSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JNjQsIGludDY0X3QsIChDYWxsRnJhbWUqLCBFbmNv
ZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0
VG9GNjQsIGRvdWJsZSwgKENhbGxGcmFtZSosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0kzMiwgaW50MzJfdCwgKENhbGxGcmFt
ZSosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbnZlcnRUb0YzMiwgZmxvYXQsIChDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSkpOwogCi1K
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCwgRW5jb2Rl
ZEpTVmFsdWUsIChDYWxsRnJhbWUqLCBJbnN0YW5jZSosIGludDY0X3QpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwg
KENhbGxGcmFtZSosIEluc3RhbmNlKiwgRW5jb2RlZFdhc21WYWx1ZSkpOwogCi1KU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1l
KiwgSW5zdGFuY2UqLCBjb25zdCBUeXBlRGVmaW5pdGlvbiosIEpTVmFsdWUsIHVpbnQ2NF90Kiwg
dWludDY0X3QqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVS
ZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1lKiwgSW5zdGFuY2UqLCBjb25zdCBUeXBlRGVmaW5pdGlv
biosIEVuY29kZWRKU1ZhbHVlLCB1aW50NjRfdCosIHVpbnQ2NF90KikpOwogSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSwgSlNBcnJheSosIChD
YWxsRnJhbWUqLCBXYXNtOjpJbnN0YW5jZSosIGNvbnN0IFR5cGVEZWZpbml0aW9uKiwgSW5kZXhp
bmdUeXBlLCBKU1ZhbHVlKikpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bldhc21Xcml0ZUJhcnJpZXJTbG93UGF0aCwgdm9pZCwgKEpTQ2VsbCosIFZNKikpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhZ2VDb3VudC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhZ2VDb3VudC5oCmluZGV4IGI3ZDhjOWZjZjcyYjE0
NzljM2EzZjEyM2JmYTJiNGQyZDI0N2NjZTIuLjNjNzU1MTJmNDRhOWE4OTRiMWQxNjZhYzQ3NjY3
MDAzZDQ4Mjc0N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Q
YWdlQ291bnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFnZUNvdW50
LmgKQEAgLTk4LDcgKzk4LDEyIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgdWlu
dDMyX3QgcGFnZVNpemUgPSA2NCAqIEtCOwogcHJpdmF0ZToKLSAgICBzdGF0aWMgY29uc3RleHBy
IHVpbnQzMl90IG1heFBhZ2VDb3VudCA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihNQVhfQVJSQVlf
QlVGRkVSX1NJWkUgLyBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocGFnZVNpemUpKTsKKyAgICAvLyBU
aGUgc3BlYyByZXF1aXJlcyB3ZSBhcmUgYWJsZSB0byBpbnN0YW50aWF0ZSBhIG1lbW9yeSB3aXRo
IGEgKm1heGltdW0qIHNpemUgb2YgNjRLIHBhZ2VzLgorICAgIC8vIFRoaXMgZG9lcyBub3QgbWVh
biB0aGUgbWVtb3J5IGNhbiBuZWNlc3NhcmlseSBncm93IHRoYXQgYmlnLCBhbmQgd2hlcmUgdGhl
CisgICAgLy8gTUFYX0FSUkFZX0JVRkZFUl9TSVpFIGlzIHNtYWxsZXIgKGUuZy46IG9uIDMyLWJp
dCBwbGF0Zm9ybXMpLCB0cnlpbmcgdG8gZ3JvdyB0aGUgbWVtb3J5CisgICAgLy8gdGhhdCBsYXJn
ZSB3aWxsIGZhaWwsIHdoaWNoIGlzIGFjY2VwdGFibGUgYWNjb3JkaW5nIHRvIHRoZSBzcGVjLiBO
ZXZlcnRoZWxlc3MsIHdlIHNob3VsZAorICAgIC8vIGJlIGFibGUgdG8gcGFyc2Ugc3VjaCBhIG1l
bW9yeSBhbmQgaW5zdGFudGlhdGUgaXQgd2l0aCBhIHNtYWxsZXIgaW5pdGlhbCBzaXplLgorICAg
IHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWF4UGFnZUNvdW50ID0gc3RkOjptYXg8dWludDMy
X3Q+KDY0KjEwMjQsIE1BWF9BUlJBWV9CVUZGRVJfU0laRSAvIHN0YXRpY19jYXN0PHVpbnQ2NF90
PihwYWdlU2l6ZSkpOwogCiAgICAgdWludDMyX3QgbV9wYWdlQ291bnQ7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5oCmluZGV4IDZhNjQ4ZjEwYjQxOWQwZjgwZDI2YjFi
MzJiMWI0ZWI3OWVlZmFhOGUuLmMzODBiN2FhNDRlN2JlY2YzNWVlNWJhOWNjYTVhMjk5NDdiMmY4
ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmgKQEAgLTIwOCw3ICsy
MDgsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgUGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VVSW50
MzIodWludDMyX3QmIHJlc3VsdCkKIHsKICAgICBpZiAobGVuZ3RoKCkgPCA0IHx8IG1fb2Zmc2V0
ID4gbGVuZ3RoKCkgLSA0KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmVzdWx0ID0gKnJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDMyX3QqPihzb3VyY2UoKSArIG1fb2Zmc2V0KTsKKyAg
ICBtZW1jcHkoJnJlc3VsdCwgc291cmNlKCkgKyBtX29mZnNldCwgc2l6ZW9mKHVpbnQzMl90KSk7
IC8vIHNyYyBjYW4gYmUgdW5hbGlnbmVkCiAgICAgbV9vZmZzZXQgKz0gNDsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KQEAgLTIxOCw3ICsyMTgsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgUGFyc2VyPFN1
Y2Nlc3NUeXBlPjo6cGFyc2VVSW50NjQodWludDY0X3QmIHJlc3VsdCkKIHsKICAgICBpZiAobGVu
Z3RoKCkgPCA4IHx8IG1fb2Zmc2V0ID4gbGVuZ3RoKCkgLSA4KQogICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgcmVzdWx0ID0gKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDY0X3QqPihzb3Vy
Y2UoKSArIG1fb2Zmc2V0KTsKKyAgICBtZW1jcHkoJnJlc3VsdCwgc291cmNlKCkgKyBtX29mZnNl
dCwgc2l6ZW9mKHVpbnQ2NF90KSk7IC8vIHNyYyBjYW4gYmUgdW5hbGlnbmVkCiAgICAgbV9vZmZz
ZXQgKz0gODsKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbVNsb3dQYXRocy5jcHAKaW5kZXggNjQxN2Y4MGIzNWE3YTMyOWVhM2YwNGJlOTEzZGUy
OTFkNjBlMWViOS4uNmNjN2Y3Zjk2Yzg1ZDBjYTBlNjU4NTlhMTIwYWM1ZGE3Zjc3ZTU3NiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5jcHAKQEAgLTY0OCw3
ICs2NDgsOCBAQCBXQVNNX1NMT1dfUEFUSF9ERUNMKHRocm93KQogICAgIC8vIHRvIHRoZSBleGNl
cHRpb24gaGFuZGxlci4gSWYgd2UgZGlkIHRoaXMsIHdlIGNvdWxkIHJlbW92ZSB0aGlzIHRlcnJp
YmxlIGhhY2suCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MDQ0MAogICAgIHZtLmNhbGxlZUZvcldhc21DYXRjaCA9IGNhbGxGcmFtZS0+Y2FsbGVlKCk7
Ci0gICAgYml0d2lzZV9jYXN0PHVpbnQ2NF90Kj4oY2FsbEZyYW1lKVtzdGF0aWNfY2FzdDxpbnQ+
KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSldID0gYml0d2lzZV9jYXN0PHVpbnQ2NF90Pihqc0luc3Rh
bmNlLT5tb2R1bGUoKSk7CisgICAgUmVnaXN0ZXIqIGNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8
UmVnaXN0ZXIqPihjYWxsRnJhbWUpICsgc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90Ojpj
YWxsZWUpOworICAgICpjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PEpTQ2VsbCo+KGpzSW5zdGFu
Y2UtPm1vZHVsZSgpKTsKICAgICBXQVNNX1JFVFVSTl9UV08odm0udGFyZ2V0TWFjaGluZVBDRm9y
VGhyb3csIG51bGxwdHIpOwogfQogCkBAIC02NzYsNyArNjc3LDggQEAgV0FTTV9TTE9XX1BBVEhf
REVDTChyZXRocm93KQogICAgIC8vIHRvIHRoZSBleGNlcHRpb24gaGFuZGxlci4gSWYgd2UgZGlk
IHRoaXMsIHdlIGNvdWxkIHJlbW92ZSB0aGlzIHRlcnJpYmxlIGhhY2suCiAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDQ0MAogICAgIHZtLmNhbGxlZUZv
cldhc21DYXRjaCA9IGNhbGxGcmFtZS0+Y2FsbGVlKCk7Ci0gICAgYml0d2lzZV9jYXN0PHVpbnQ2
NF90Kj4oY2FsbEZyYW1lKVtzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSld
ID0gYml0d2lzZV9jYXN0PHVpbnQ2NF90Pihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CisgICAgUmVn
aXN0ZXIqIGNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8UmVnaXN0ZXIqPihjYWxsRnJhbWUpICsg
c3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpOworICAgICpjYWxsZWVTbG90
ID0gYml0d2lzZV9jYXN0PEpTQ2VsbCo+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsKICAgICBXQVNN
X1JFVFVSTl9UV08odm0udGFyZ2V0TWFjaGluZVBDRm9yVGhyb3csIG51bGxwdHIpOwogfQogCkBA
IC03MjMsNiArNzI1LDIxNCBAQCBXQVNNX1NMT1dfUEFUSF9ERUNMKHJldHJpZXZlX2FuZF9jbGVh
cl9leGNlcHRpb24pCiAgICAgV0FTTV9SRVRVUk5fVFdPKHBjLCBwYXlsb2FkKTsKIH0KIAorI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCitXQVNNX1NMT1dfUEFUSF9ERUNMKGYzMl9jZWlsKQoreworICAg
IFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxX
YXNtRjMyQ2VpbD4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29w
ZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZSh3
YXNtVW5ib3hlZEZsb2F0KHN0ZDo6Y2VpbChvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BB
VEhfREVDTChmMzJfZmxvb3IpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBh
dXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GMzJGbG9vcj4oKTsKKyAgICBmbG9hdCBvcGVy
YW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIFdB
U01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZSh3YXNtVW5ib3hlZEZsb2F0KHN0ZDo6Zmxvb3Iob3Bl
cmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjMyX3RydW5jKQoreworICAgIFVO
VVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNt
RjMyVHJ1bmM+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVy
YW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUod2Fz
bVVuYm94ZWRGbG9hdChzdGQ6OnRydW5jKG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFU
SF9ERUNMKGYzMl9uZWFyZXN0KQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xp
bWl0czxmbG9hdD46OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7CisgICAg
VU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdh
c21GMzJOZWFyZXN0PigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1f
b3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2Rl
KHdhc21VbmJveGVkRmxvYXQoc3RkOjpuZWFyYnlpbnQob3BlcmFuZCkpKSk7Cit9CisKK1dBU01f
U0xPV19QQVRIX0RFQ0woZjY0X2NlaWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsK
KyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GNjRDZWlsPigpOworICAgIGRvdWJs
ZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUoKTsK
KyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoc3RkOjpjZWls
KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGY2NF9mbG9vcikKK3sKKyAg
ICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8
V2FzbUY2NEZsb29yPigpOworICAgIGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5t
X29wZXJhbmQpLnVuYm94ZWREb3VibGUoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNv
ZGUoanNEb3VibGVOdW1iZXIoc3RkOjpmbG9vcihvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9X
X1BBVEhfREVDTChmNjRfdHJ1bmMpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAg
ICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GNjRUcnVuYz4oKTsKKyAgICBkb3VibGUg
b3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7Cisg
ICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHN0ZDo6dHJ1bmMo
b3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjY0X25lYXJlc3QpCit7Cisg
ICAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cm91bmRfc3R5bGUg
PT0gc3RkOjpyb3VuZF90b19uZWFyZXN0KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOwor
ICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NE5lYXJlc3Q+KCk7CisgICAgZG91
YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgp
OworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGQ6Om5l
YXJieWludChvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmMzJfY29udmVy
dF91X2k2NCkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+
Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOworICAgIFVOVVNFRF9QQVJB
TShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjMyQ29udmVy
dFVJNjQ+KCk7CisgICAgdWludDY0X3Qgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVy
YW5kKS51bmJveGVkSW50NjQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUod2Fz
bVVuYm94ZWRGbG9hdChzdGF0aWNfY2FzdDxmbG9hdD4ob3BlcmFuZCkpKSk7Cit9CisKK1dBU01f
U0xPV19QQVRIX0RFQ0woZjMyX2NvbnZlcnRfc19pNjQpCit7CisgICAgc3RhdGljX2Fzc2VydChz
dGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cm91bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90b19u
ZWFyZXN0KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rp
b24gPSBwYy0+YXM8V2FzbUYzMkNvbnZlcnRTSTY0PigpOworICAgIGludDY0X3Qgb3BlcmFuZCA9
IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkSW50NjQoKTsKKyAgICBXQVNNX1JF
VFVSTihKU1ZhbHVlOjplbmNvZGUod2FzbVVuYm94ZWRGbG9hdChzdGF0aWNfY2FzdDxmbG9hdD4o
b3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjY0X2NvbnZlcnRfdV9pNjQp
Cit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cm91bmRf
c3R5bGUgPT0gc3RkOjpyb3VuZF90b19uZWFyZXN0KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFu
Y2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NENvbnZlcnRVSTY0Pigp
OworICAgIHVpbnQ2NF90IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5i
b3hlZEludDY0KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVt
YmVyKHN0YXRpY19jYXN0PGRvdWJsZT4ob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRI
X0RFQ0woZjY0X2NvbnZlcnRfc19pNjQpCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVy
aWNfbGltaXRzPGZsb2F0Pjo6cm91bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90b19uZWFyZXN0KTsK
KyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+
YXM8V2FzbUY2NENvbnZlcnRTSTY0PigpOworICAgIGludDY0X3Qgb3BlcmFuZCA9IFJFQUQoaW5z
dHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkSW50NjQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1Zh
bHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoc3RhdGljX2Nhc3Q8ZG91YmxlPihvcGVyYW5kKSkp
KTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfdV9mMzIpCit7CisgICAgVU5V
U0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21J
NjRUcnVuY1VGMzI+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9v
cGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5kKSB8fCBv
cGVyYW5kIDw9IC0xLjBmIHx8IG9wZXJhbmQgPj0gLTIuMGYgKiBzdGF0aWNfY2FzdDxmbG9hdD4o
SU5UNjRfTUlOKSkKKyAgICAgICAgV0FTTV9USFJPVyhXYXNtOjpFeGNlcHRpb25UeXBlOjpPdXRP
ZkJvdW5kc1RydW5jKTsKKyAgICBXQVNNX1JFVFVSTihzdGF0aWNfY2FzdDx1aW50NjRfdD4ob3Bl
cmFuZCkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY19zX2YzMikKK3sKKyAg
ICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8
V2FzbUk2NFRydW5jU0YzMj4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlv
bi5tX29wZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQp
IHx8IG9wZXJhbmQgPCBzdGF0aWNfY2FzdDxmbG9hdD4oSU5UNjRfTUlOKSB8fCBvcGVyYW5kID49
IC1zdGF0aWNfY2FzdDxmbG9hdD4oSU5UNjRfTUlOKSkKKyAgICAgICAgV0FTTV9USFJPVyhXYXNt
OjpFeGNlcHRpb25UeXBlOjpPdXRPZkJvdW5kc1RydW5jKTsKKyAgICBXQVNNX1JFVFVSTihzdGF0
aWNfY2FzdDxpbnQ2NF90PihvcGVyYW5kKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0
X3RydW5jX3VfZjY0KQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBp
bnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1bmNVRjY0PigpOworICAgIGRvdWJsZSBvcGVy
YW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUoKTsKKyAgICBp
ZiAoc3RkOjppc25hbihvcGVyYW5kKSB8fCBvcGVyYW5kIDw9IC0xLjAgfHwgb3BlcmFuZCA+PSAt
Mi4wICogc3RhdGljX2Nhc3Q8ZG91YmxlPihJTlQ2NF9NSU4pKQorICAgICAgICBXQVNNX1RIUk9X
KFdhc206OkV4Y2VwdGlvblR5cGU6Ok91dE9mQm91bmRzVHJ1bmMpOworICAgIFdBU01fUkVUVVJO
KHN0YXRpY19jYXN0PHVpbnQ2NF90PihvcGVyYW5kKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RF
Q0woaTY0X3RydW5jX3NfZjY0KQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAg
YXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1bmNTRjY0PigpOworICAgIGRvdWJs
ZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUoKTsK
KyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5kKSB8fCBvcGVyYW5kIDwgc3RhdGljX2Nhc3Q8ZG91
YmxlPihJTlQ2NF9NSU4pIHx8IG9wZXJhbmQgPj0gLXN0YXRpY19jYXN0PGRvdWJsZT4oSU5UNjRf
TUlOKSkKKyAgICAgICAgV0FTTV9USFJPVyhXYXNtOjpFeGNlcHRpb25UeXBlOjpPdXRPZkJvdW5k
c1RydW5jKTsKKyAgICBXQVNNX1JFVFVSTihzdGF0aWNfY2FzdDxpbnQ2NF90PihvcGVyYW5kKSk7
Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3NhdF9mMzJfdSkKK3sKKyAgICBV
TlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2Fz
bUk2NFRydW5jU2F0RjMyVT4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlv
bi5tX29wZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIHVpbnQ2NF90IHJlc3VsdDsKKyAgICBp
ZiAoc3RkOjppc25hbihvcGVyYW5kKSB8fCBvcGVyYW5kIDw9IC0xLjBmKQorICAgICAgICByZXN1
bHQgPSAwOworICAgIGVsc2UgaWYgKG9wZXJhbmQgPj0gLTIuMGYgKiBzdGF0aWNfY2FzdDxmbG9h
dD4oSU5UNjRfTUlOKSkKKyAgICAgICAgcmVzdWx0ID0gVUlOVDY0X01BWDsKKyAgICBlbHNlCisg
ICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihvcGVyYW5kKTsKKyAgICBXQVNN
X1JFVFVSTihyZXN1bHQpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY19zYXRf
ZjMyX3MpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0
aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1NhdEYzMlM+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9
IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBpbnQ2NF90
IHJlc3VsdDsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5kKSkKKyAgICAgICAgcmVzdWx0ID0g
MDsKKyAgICBlbHNlIGlmIChvcGVyYW5kIDwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikp
CisgICAgICAgIHJlc3VsdCA9IElOVDY0X01JTjsKKyAgICBlbHNlIGlmIChvcGVyYW5kID49IC1z
dGF0aWNfY2FzdDxmbG9hdD4oSU5UNjRfTUlOKSkKKyAgICAgICAgcmVzdWx0ID0gSU5UNjRfTUFY
OworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8aW50NjRfdD4ob3BlcmFu
ZCk7CisgICAgV0FTTV9SRVRVUk4ocmVzdWx0KTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChp
NjRfdHJ1bmNfc2F0X2Y2NF91KQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAg
YXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1bmNTYXRGNjRVPigpOworICAgIGRv
dWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUo
KTsKKyAgICB1aW50NjRfdCByZXN1bHQ7CisgICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkgfHwg
b3BlcmFuZCA8PSAtMS4wKQorICAgICAgICByZXN1bHQgPSAwOworICAgIGVsc2UgaWYgKG9wZXJh
bmQgPj0gLTIuMCAqIHN0YXRpY19jYXN0PGRvdWJsZT4oSU5UNjRfTUlOKSkKKyAgICAgICAgcmVz
dWx0ID0gVUlOVDY0X01BWDsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0
PHVpbnQ2NF90PihvcGVyYW5kKTsKKyAgICBXQVNNX1JFVFVSTihyZXN1bHQpOworfQorCitXQVNN
X1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY19zYXRfZjY0X3MpCit7CisgICAgVU5VU0VEX1BBUkFN
KGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1Nh
dEY2NFM+KCk7CisgICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFu
ZCkudW5ib3hlZERvdWJsZSgpOworICAgIGludDY0X3QgcmVzdWx0OworICAgIGlmIChzdGQ6Omlz
bmFuKG9wZXJhbmQpKQorICAgICAgICByZXN1bHQgPSAwOworICAgIGVsc2UgaWYgKG9wZXJhbmQg
PCBzdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0X01JTikpCisgICAgICAgIHJlc3VsdCA9IElOVDY0
X01JTjsKKyAgICBlbHNlIGlmIChvcGVyYW5kID49IC1zdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0
X01JTikpCisgICAgICAgIHJlc3VsdCA9IElOVDY0X01BWDsKKyAgICBlbHNlCisgICAgICAgIHJl
c3VsdCA9IHN0YXRpY19jYXN0PGludDY0X3Q+KG9wZXJhbmQpOworICAgIFdBU01fUkVUVVJOKHJl
c3VsdCk7Cit9CisjZW5kaWYKKwogZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgc2xvd19w
YXRoX3dhc21fdGhyb3dfZXhjZXB0aW9uKENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBXYXNt
SW5zdHJ1Y3Rpb24qIHBjLCBXYXNtOjpJbnN0YW5jZSogaW5zdGFuY2UsIFdhc206OkV4Y2VwdGlv
blR5cGUgZXhjZXB0aW9uVHlwZSkKIHsKICAgICBVTlVTRURfUEFSQU0ocGMpOwpAQCAtNzMxLDE2
ICs5NDEsMjggQEAgZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21f
dGhyb3dfZXhjZXB0aW9uKENhbGxGcmFtZSogY2FsbEZyYW0KIAogZXh0ZXJuICJDIiBTbG93UGF0
aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fcG9wY291bnQoY29uc3QgV2FzbUluc3RydWN0aW9u
KiBwYywgdWludDMyX3QgeCkKIHsKLSAgICB2b2lkKiByZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8dm9p
ZCo+KHN0YXRpY19jYXN0PHVpbnQ2NF90PihfX2J1aWx0aW5fcG9wY291bnQoeCkpKTsKKyAgICB2
b2lkKiByZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PHNpemVfdD4oX19i
dWlsdGluX3BvcGNvdW50KHgpKSk7CiAgICAgV0FTTV9SRVRVUk5fVFdPKHBjLCByZXN1bHQpOwog
fQogCiBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBzbG93X3BhdGhfd2FzbV9wb3Bjb3Vu
dGxsKGNvbnN0IFdhc21JbnN0cnVjdGlvbiogcGMsIHVpbnQ2NF90IHgpCiB7Ci0gICAgdm9pZCog
cmVzdWx0ID0gYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDx1aW50NjRfdD4oX19idWls
dGluX3BvcGNvdW50bGwoeCkpKTsKKyAgICB2b2lkKiByZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8dm9p
ZCo+KHN0YXRpY19jYXN0PHNpemVfdD4oX19idWlsdGluX3BvcGNvdW50bGwoeCkpKTsKICAgICBX
QVNNX1JFVFVSTl9UV08ocGMsIHJlc3VsdCk7CiB9CiAKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQor
Ly8gTm90ZTogQWxsIHRoZXNlIGRpdiBhbmQgcmVtIG9wcyBwZXJmb3JtIGV4Y2VwdGlvbiBjaGVj
a3MgaW4gYXNtCitleHRlcm4gIkMiIGludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX2Rpdl9zKGlu
dDMyX3QgYSwgaW50MzJfdCBiKSB7IHJldHVybiBhIC8gYjsgfQorZXh0ZXJuICJDIiB1aW50MzJf
dCBzbG93X3BhdGhfd2FzbV9pMzJfZGl2X3UodWludDMyX3QgYSwgdWludDMyX3QgYikgeyByZXR1
cm4gYSAvIGI7IH0KK2V4dGVybiAiQyIgaW50MzJfdCBzbG93X3BhdGhfd2FzbV9pMzJfcmVtX3Mo
aW50MzJfdCBhLCBpbnQzMl90IGIpIHsgcmV0dXJuIGEgJSBiOyB9CitleHRlcm4gIkMiIHVpbnQz
Ml90IHNsb3dfcGF0aF93YXNtX2kzMl9yZW1fdSh1aW50MzJfdCBhLCB1aW50MzJfdCBiKSB7IHJl
dHVybiBhICUgYjsgfQorZXh0ZXJuICJDIiBpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9kaXZf
cyhpbnQ2NF90IGEsIGludDY0X3QgYikgeyByZXR1cm4gYSAvIGI7IH0KK2V4dGVybiAiQyIgdWlu
dDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X2Rpdl91KHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIpIHsg
cmV0dXJuIGEgLyBiOyB9CitleHRlcm4gIkMiIGludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X3Jl
bV9zKGludDY0X3QgYSwgaW50NjRfdCBiKSB7IHJldHVybiBhICUgYjsgfQorZXh0ZXJuICJDIiB1
aW50NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRfcmVtX3UodWludDY0X3QgYSwgdWludDY0X3QgYikg
eyByZXR1cm4gYSAlIGI7IH0KKyNlbmRpZgorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6TExJbnQK
IAogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21TbG93UGF0aHMuaAppbmRleCA2NzhjMTcyODM3NjhmNDBhNGVlZmY3M2ZmNGE2ODNj
ZmY2MDE2MzVjLi5lNzAwZGFkNjlhYTdmYTYzNjEzZWU2YTAzZGVkYjU4ZjMxZDMxNjA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5oCkBAIC05NSw2ICs5NSw0
MCBAQCBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBzbG93X3BhdGhfd2FzbV90aHJvd19l
eGNlcHRpb24oQ2FsbEZyYW1lKiwgY29uc3QgVwogZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5
cGUgc2xvd19wYXRoX3dhc21fcG9wY291bnQoY29uc3QgV2FzbUluc3RydWN0aW9uKiBwYywgdWlu
dDMyX3QpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOwogZXh0ZXJuICJDIiBTbG93
UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fcG9wY291bnRsbChjb25zdCBXYXNtSW5zdHJ1
Y3Rpb24qIHBjLCB1aW50NjRfdCkgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CiAK
KyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjMyX2Nl
aWwpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjMyX2Zsb29yKTsKK1dBU01fU0xPV19Q
QVRIX0hJRERFTl9ERUNMKGYzMl90cnVuYyk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChm
MzJfbmVhcmVzdCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfY2VpbCk7CitXQVNN
X1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfZmxvb3IpOworV0FTTV9TTE9XX1BBVEhfSElEREVO
X0RFQ0woZjY0X3RydW5jKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGY2NF9uZWFyZXN0
KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGYzMl9jb252ZXJ0X3VfaTY0KTsKK1dBU01f
U0xPV19QQVRIX0hJRERFTl9ERUNMKGYzMl9jb252ZXJ0X3NfaTY0KTsKK1dBU01fU0xPV19QQVRI
X0hJRERFTl9ERUNMKGY2NF9jb252ZXJ0X3VfaTY0KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9E
RUNMKGY2NF9jb252ZXJ0X3NfaTY0KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGk2NF90
cnVuY191X2YzMik7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNfc19mMzIp
OworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3VfZjY0KTsKK1dBU01fU0xP
V19QQVRIX0hJRERFTl9ERUNMKGk2NF90cnVuY19zX2Y2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURE
RU5fREVDTChpNjRfdHJ1bmNfc2F0X2YzMl91KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNM
KGk2NF90cnVuY19zYXRfZjMyX3MpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3Ry
dW5jX3NhdF9mNjRfdSk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNfc2F0
X2Y2NF9zKTsKKyNlbmRpZgorCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKK2V4dGVybiAiQyIgaW50
MzJfdCBzbG93X3BhdGhfd2FzbV9pMzJfZGl2X3MoaW50MzJfdCBhLCBpbnQzMl90IGIpIFJFRkVS
RU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJDIiB1aW50MzJfdCBzbG93X3Bh
dGhfd2FzbV9pMzJfZGl2X3UodWludDMyX3QgYSwgdWludDMyX3QgYikgUkVGRVJFTkNFRF9GUk9N
X0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMiIGludDMyX3Qgc2xvd19wYXRoX3dhc21faTMy
X3JlbV9zKGludDMyX3QgYSwgaW50MzJfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRF
Uk5BTDsKK2V4dGVybiAiQyIgdWludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX3JlbV91KHVpbnQz
Ml90IGEsIHVpbnQzMl90IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOworZXh0
ZXJuICJDIiBpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9kaXZfcyhpbnQ2NF90IGEsIGludDY0
X3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMiIHVpbnQ2
NF90IHNsb3dfcGF0aF93YXNtX2k2NF9kaXZfdSh1aW50NjRfdCBhLCB1aW50NjRfdCBiKSBSRUZF
UkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgaW50NjRfdCBzbG93X3Bh
dGhfd2FzbV9pNjRfcmVtX3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpIFJFRkVSRU5DRURfRlJPTV9B
U00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJDIiB1aW50NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRf
cmVtX3UodWludDY0X3QgYSwgdWludDY0X3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5U
RVJOQUw7CisjZW5kaWYKKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50CiAKICNlbmRpZiAv
LyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtVmFsdWVMb2NhdGlvbi5jcHAKaW5kZXggNTIyM2YzYWI0ZTQwZmI0OTg0N2UwZTk2YTZjMzk3
MThlZjQxMDliNS4uNjhjNzg4ODkwNmRiOGI1MWM5NTA0YmU5ZWNlOWNiYmZjZWQyZmQyMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmNwcApA
QCAtMzUsOCArMzUsMTEgQEAgdm9pZCBWYWx1ZUxvY2F0aW9uOjpkdW1wKFByaW50U3RyZWFtJiBv
dXQpIGNvbnN0CiB7CiAgICAgb3V0LnByaW50KG1fa2luZCk7CiAgICAgc3dpdGNoIChtX2tpbmQp
IHsKLSAgICBjYXNlIFJlZ2lzdGVyOgotICAgICAgICBvdXQucHJpbnQoIigiLCByZWcoKSwgIiki
KTsKKyAgICBjYXNlIEdQUlJlZ2lzdGVyOgorICAgICAgICBvdXQucHJpbnQoIigiLCBqc3IoKSwg
IikiKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgRlBSUmVnaXN0ZXI6CisgICAgICAgIG91
dC5wcmludCgiKCIsIGZwcigpLCAiKSIpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTdGFj
azoKICAgICAgICAgb3V0LnByaW50KCIoIiwgb2Zmc2V0RnJvbUZQKCksICIpIik7CkBAIC01Nyw4
ICs2MCwxMSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOjpXYXNtOwogdm9pZCBwcmludEludGVybmFs
KFByaW50U3RyZWFtJiBvdXQsIFZhbHVlTG9jYXRpb246OktpbmQga2luZCkKIHsKICAgICBzd2l0
Y2ggKGtpbmQpIHsKLSAgICBjYXNlIFZhbHVlTG9jYXRpb246OlJlZ2lzdGVyOgotICAgICAgICBv
dXQucHJpbnQoIlJlZ2lzdGVyIik7CisgICAgY2FzZSBWYWx1ZUxvY2F0aW9uOjpHUFJSZWdpc3Rl
cjoKKyAgICAgICAgb3V0LnByaW50KCJHUFJSZWdpc3RlciIpOworICAgICAgICByZXR1cm47Cisg
ICAgY2FzZSBWYWx1ZUxvY2F0aW9uOjpGUFJSZWdpc3RlcjoKKyAgICAgICAgb3V0LnByaW50KCJG
UFJSZWdpc3RlciIpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBWYWx1ZUxvY2F0aW9uOjpT
dGFjazoKICAgICAgICAgb3V0LnByaW50KCJTdGFjayIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmgKaW5kZXggYTYxZmJhOGJkMDFjYjRhYzBjYTZi
NmNhN2VlNDRkN2I3NzBkNDhhMy4uNWNiNTEwZGJiZDBiMWIwNDdmNWM5MjYxNzllMWEzZmI5Y2Jh
YjFjZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9j
YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlv
bi5oCkBAIC00MSwyNSArNDEsMjcgQEAgY2xhc3MgVmFsdWVMb2NhdGlvbiB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZW51bSBLaW5kIDogdWludDhfdCB7Ci0g
ICAgICAgIFJlZ2lzdGVyLAorICAgICAgICBHUFJSZWdpc3RlciwKKyAgICAgICAgRlBSUmVnaXN0
ZXIsCiAgICAgICAgIFN0YWNrLAogICAgICAgICBTdGFja0FyZ3VtZW50LAogICAgIH07CiAKICAg
ICBWYWx1ZUxvY2F0aW9uKCkKLSAgICAgICAgOiBtX2tpbmQoUmVnaXN0ZXIpCisgICAgICAgIDog
bV9raW5kKEdQUlJlZ2lzdGVyKQogICAgIHsKICAgICB9CiAKLSAgICBleHBsaWNpdCBWYWx1ZUxv
Y2F0aW9uKFJlZyByZWcpCi0gICAgICAgIDogbV9raW5kKFJlZ2lzdGVyKQorICAgIGV4cGxpY2l0
IFZhbHVlTG9jYXRpb24oSlNWYWx1ZVJlZ3MgcmVncykKKyAgICAgICAgOiBtX2tpbmQoR1BSUmVn
aXN0ZXIpCiAgICAgewotICAgICAgICB1LnJlZyA9IHJlZzsKKyAgICAgICAgdS5qc3IgPSByZWdz
OwogICAgIH0KIAotICAgIHN0YXRpYyBWYWx1ZUxvY2F0aW9uIHJlZyhSZWcgcmVnKQorICAgIGV4
cGxpY2l0IFZhbHVlTG9jYXRpb24oRlBSUmVnIHJlZykKKyAgICAgICAgOiBtX2tpbmQoRlBSUmVn
aXN0ZXIpCiAgICAgewotICAgICAgICByZXR1cm4gVmFsdWVMb2NhdGlvbihyZWcpOworICAgICAg
ICB1LmZwciA9IHJlZzsKICAgICB9CiAKICAgICBzdGF0aWMgVmFsdWVMb2NhdGlvbiBzdGFjayhp
bnRwdHJfdCBvZmZzZXRGcm9tRlApCkBAIC04MCwyMSArODIsMjIgQEAgcHVibGljOgogCiAgICAg
S2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gbV9raW5kOyB9CiAKLSAgICBib29sIGlzUmVnKCkg
Y29uc3QgeyByZXR1cm4ga2luZCgpID09IFJlZ2lzdGVyOyB9CisgICAgYm9vbCBpc0dQUigpIGNv
bnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBHUFJSZWdpc3RlcjsgfQorICAgIGJvb2wgaXNGUFIoKSBj
b25zdCB7IHJldHVybiBraW5kKCkgPT0gRlBSUmVnaXN0ZXI7IH0KKyAgICBib29sIGlzU3RhY2so
KSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gU3RhY2s7IH0KKyAgICBib29sIGlzU3RhY2tBcmd1
bWVudCgpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBTdGFja0FyZ3VtZW50OyB9CiAKLSAgICBS
ZWcgcmVnKCkgY29uc3QKKyAgICBKU1ZhbHVlUmVncyBqc3IoKSBjb25zdAogICAgIHsKLSAgICAg
ICAgQVNTRVJUKGlzUmVnKCkpOwotICAgICAgICByZXR1cm4gdS5yZWc7CisgICAgICAgIEFTU0VS
VChpc0dQUigpKTsKKyAgICAgICAgcmV0dXJuIHUuanNyOwogICAgIH0KIAotICAgIGJvb2wgaXNH
UFIoKSBjb25zdCB7IHJldHVybiBpc1JlZygpICYmIHJlZygpLmlzR1BSKCk7IH0KLSAgICBib29s
IGlzRlBSKCkgY29uc3QgeyByZXR1cm4gaXNSZWcoKSAmJiByZWcoKS5pc0ZQUigpOyB9Ci0KLSAg
ICBHUFJSZWcgZ3ByKCkgY29uc3QgeyByZXR1cm4gcmVnKCkuZ3ByKCk7IH0KLSAgICBGUFJSZWcg
ZnByKCkgY29uc3QgeyByZXR1cm4gcmVnKCkuZnByKCk7IH0KLQotICAgIGJvb2wgaXNTdGFjaygp
IGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBTdGFjazsgfQorICAgIEZQUlJlZyBmcHIoKSBjb25z
dAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzRlBSKCkpOworICAgICAgICByZXR1cm4gdS5mcHI7
CisgICAgfQogCiAgICAgaW50cHRyX3Qgb2Zmc2V0RnJvbUZQKCkgY29uc3QKICAgICB7CkBAIC0x
MDIsOCArMTA1LDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gdS5vZmZzZXRGcm9tRlA7CiAg
ICAgfQogCi0gICAgYm9vbCBpc1N0YWNrQXJndW1lbnQoKSBjb25zdCB7IHJldHVybiBraW5kKCkg
PT0gU3RhY2tBcmd1bWVudDsgfQotCiAgICAgaW50cHRyX3Qgb2Zmc2V0RnJvbVNQKCkgY29uc3QK
ICAgICB7CiAgICAgICAgIEFTU0VSVChpc1N0YWNrQXJndW1lbnQoKSk7CkBAIC0xMTQsNyArMTE1
LDggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHVuaW9uIFUgewotICAgICAgICBSZWcgcmVn
OworICAgICAgICBKU1ZhbHVlUmVncyBqc3I7CisgICAgICAgIEZQUlJlZyBmcHI7CiAgICAgICAg
IGludHB0cl90IG9mZnNldEZyb21GUDsKICAgICAgICAgaW50cHRyX3Qgb2Zmc2V0RnJvbVNQOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAKaW5kZXggNGY0NTVj
YzQ3YTA0ODZmNWM5NWU0YTZjNDA1NWNkMGM4NTIzODM1ZC4uMGY2MjRlMGI2MWRiYjc4ZmI2MzI0
MTgxYjM2MjQ3N2QwMmE1YjIyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNUb1dhc20uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pT
VG9XYXNtLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgog
I2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNXZWJBc3NlbWJseUlu
c3RhbmNlLmgiCisjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIKICNp
bmNsdWRlICJXYXNtQ2FsbGluZ0NvbnZlbnRpb24uaCIKICNpbmNsdWRlICJXYXNtQ29udGV4dElu
bGluZXMuaCIKICNpbmNsdWRlICJXYXNtT3BlcmF0aW9ucy5oIgpAQCAtNDEsMTMgKzQyLDEzIEBA
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiB2b2lkIG1hcnNoYWxsSlNSZXN1bHQo
Q0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFR5cGVEZWZpbml0aW9uJiB0eXBlRGVmaW5pdGlvbiwg
Y29uc3QgQ2FsbEluZm9ybWF0aW9uJiB3YXNtRnJhbWVDb252ZW50aW9uLCBjb25zdCBSZWdpc3Rl
ckF0T2Zmc2V0TGlzdCYgc2F2ZWRSZXN1bHRSZWdpc3RlcnMpCiB7CiAgICAgY29uc3QgYXV0byYg
c2lnbmF0dXJlID0gKnR5cGVEZWZpbml0aW9uLmFzPEZ1bmN0aW9uU2lnbmF0dXJlPigpOwotICAg
IGF1dG8gYm94V2FzbVJlc3VsdCA9IFtdKENDYWxsSGVscGVycyYgaml0LCBUeXBlIHR5cGUsIFJl
ZyBzcmMsIEpTVmFsdWVSZWdzIGRzdCkgeworICAgIGF1dG8gYm94V2FzbVJlc3VsdCA9IFtdKEND
YWxsSGVscGVycyYgaml0LCBUeXBlIHR5cGUsIFZhbHVlTG9jYXRpb24gc3JjLCBKU1ZhbHVlUmVn
cyBkc3QpIHsKICAgICAgICAgc3dpdGNoICh0eXBlLmtpbmQpIHsKICAgICAgICAgY2FzZSBUeXBl
S2luZDo6Vm9pZDoKICAgICAgICAgICAgIGppdC5tb3ZlVHJ1c3RlZFZhbHVlKGpzVW5kZWZpbmVk
KCksIGRzdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMy
OgotICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChzcmMuZ3ByKCksIGRzdC5wYXls
b2FkR1BSKCkpOworICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChzcmMuanNyKCku
cGF5bG9hZEdQUigpLCBkc3QucGF5bG9hZEdQUigpKTsKICAgICAgICAgICAgIGppdC5ib3hJbnQz
Mihkc3QucGF5bG9hZEdQUigpLCBkc3QsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgpAQCAtNTYsMTMgKzU3LDE3
IEBAIHZvaWQgbWFyc2hhbGxKU1Jlc3VsdChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgVHlwZURl
ZmluaXRpb24mIHR5cGVEZWZpbml0aW9uLCBjCiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2NDog
ewogICAgICAgICAgICAgaml0Lm1vdmVUcnVzdGVkVmFsdWUoanNOdW1iZXIocHVyZU5hTigpKSwg
ZHN0KTsKICAgICAgICAgICAgIGF1dG8gaXNOYU4gPSBqaXQuYnJhbmNoSWZOYU4oc3JjLmZwcigp
KTsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgaml0LmJveERvdWJsZShzcmMuZnBy
KCksIGRzdCwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyNlbHNlCisgICAgICAgICAgICBqaXQu
Ym94RG91YmxlKHNyYy5mcHIoKSwgZHN0KTsKKyNlbmRpZgogICAgICAgICAgICAgaXNOYU4ubGlu
aygmaml0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6
IHsKICAgICAgICAgICAgIGlmIChpc0Z1bmNyZWYodHlwZSkgfHwgaXNFeHRlcm5yZWYodHlwZSkp
Ci0gICAgICAgICAgICAgICAgaml0Lm1vdmUoc3JjLmdwcigpLCBkc3QucGF5bG9hZEdQUigpKTsK
KyAgICAgICAgICAgICAgICBqaXQubW92ZVZhbHVlUmVncyhzcmMuanNyKCksIGRzdCk7CiAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgaml0LmJyZWFrcG9pbnQoKTsKICAgICAgICAg
fQpAQCAtNzAsNDQgKzc1LDg3IEBAIHZvaWQgbWFyc2hhbGxKU1Jlc3VsdChDQ2FsbEhlbHBlcnMm
IGppdCwgY29uc3QgVHlwZURlZmluaXRpb24mIHR5cGVEZWZpbml0aW9uLCBjCiAgICAgfTsKIAog
ICAgIGlmIChzaWduYXR1cmUucmV0dXJuc1ZvaWQoKSkKLSAgICAgICAgaml0Lm1vdmVUcnVzdGVk
VmFsdWUoanNVbmRlZmluZWQoKSwgSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQ
UiB9KTsKKyAgICAgICAgaml0Lm1vdmVUcnVzdGVkVmFsdWUoanNVbmRlZmluZWQoKSwgSlNSSW5m
bzo6cmV0dXJuVmFsdWVKU1IpOwogICAgIGVsc2UgaWYgKHNpZ25hdHVyZS5yZXR1cm5Db3VudCgp
ID09IDEpIHsKICAgICAgICAgaWYgKHNpZ25hdHVyZS5yZXR1cm5UeXBlKDApLmlzSTY0KCkpIHsK
LSAgICAgICAgICAgIEdQUlJlZyBpbnB1dEdQUiA9IHdhc21GcmFtZUNvbnZlbnRpb24ucmVzdWx0
c1swXS5yZWcoKS5ncHIoKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIGlucHV0SlNSID0gd2Fz
bUZyYW1lQ29udmVudGlvbi5yZXN1bHRzWzBdLmpzcigpOwogICAgICAgICAgICAgR1BSUmVnIHdh
c21Db250ZXh0SW5zdGFuY2VHUFIgPSBQaW5uZWRSZWdpc3RlckluZm86OmdldCgpLndhc21Db250
ZXh0SW5zdGFuY2VQb2ludGVyOwogICAgICAgICAgICAgaWYgKENvbnRleHQ6OnVzZUZhc3RUTFMo
KSkgewotICAgICAgICAgICAgICAgIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBpbnB1dEdQUiA9
PSBHUFJJbmZvOjphcmd1bWVudEdQUjEgPyBHUFJJbmZvOjphcmd1bWVudEdQUjAgOiBHUFJJbmZv
Ojphcmd1bWVudEdQUjE7Ci0gICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3Nh
bWVfdjxXYXNtOjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPGRlY2x0eXBlKG9w
ZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KT46OkFyZ3VtZW50VHlwZTwxPj4pOworICAgICAg
ICAgICAgICAgIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBpbnB1dEpTUi5wYXlsb2FkR1BSKCkg
PT0gR1BSSW5mbzo6YXJndW1lbnRHUFIxID8gR1BSSW5mbzo6YXJndW1lbnRHUFIwIDogR1BSSW5m
bzo6YXJndW1lbnRHUFIxOworICAgICAgICAgICAgICAgIEFTU0VSVCghaW5wdXRKU1IudXNlcyh3
YXNtQ29udGV4dEluc3RhbmNlR1BSKSk7CisgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydChz
dGQ6OmlzX3NhbWVfdjxXYXNtOjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPGRl
Y2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+OjpBcmd1bWVudFR5cGU8MT4+KTsKICAg
ICAgICAgICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uod2FzbUNvbnRleHRJbnN0
YW5jZUdQUik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8
ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KT4od2FzbUNvbnRleHRJbnN0YW5jZUdQ
UiwgaW5wdXRHUFIpOworICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9w
ZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+KHdhc21Db250ZXh0SW5zdGFuY2VHUFIsIGlucHV0SlNS
KTsKICAgICAgICAgICAgIGppdC5jYWxsT3BlcmF0aW9uKEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0
clRhZz4ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KSk7CiAgICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgYm94V2FzbVJlc3VsdChqaXQsIHNpZ25hdHVyZS5yZXR1cm5UeXBlKDApLCB3YXNtRnJh
bWVDb252ZW50aW9uLnJlc3VsdHNbMF0ucmVnKCksIEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIgfSk7CisgICAgICAgICAgICBib3hXYXNtUmVzdWx0KGppdCwgc2lnbmF0dXJl
LnJldHVyblR5cGUoMCksIHdhc21GcmFtZUNvbnZlbnRpb24ucmVzdWx0c1swXSwgSlNSSW5mbzo6
cmV0dXJuVmFsdWVKU1IpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEluZGV4aW5nVHlwZSBpbmRl
eGluZ1R5cGUgPSBBcnJheVdpdGhVbmRlY2lkZWQ7Ci0gICAgICAgIEpTVmFsdWVSZWdzIHNjcmF0
Y2ggPSBKU1ZhbHVlUmVncyB7IHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRj
aEdQUnNbMV0gfTsKKyAgICAgICAgSlNWYWx1ZVJlZ3Mgc2NyYXRjaEpTUiA9IEpTVmFsdWVSZWdz
IHsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgd2FzbUNhbGxpbmdDb252ZW50
aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1syXSwKKyNlbmRpZgorICAgICAgICAgICAgd2FzbUNh
bGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1sxXQorICAgICAgICB9OworCisg
ICAgICAgIEFTU0VSVChzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSAhPSBHUFJSZWc6OkludmFsaWRH
UFJSZWcpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIEFTU0VSVChzY3JhdGNoSlNS
LnRhZ0dQUigpICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7CisgICAgICAgIEFTU0VSVChzY3Jh
dGNoSlNSLnBheWxvYWRHUFIoKSAhPSBzY3JhdGNoSlNSLnRhZ0dQUigpKTsKKyNlbmRpZgorCiAg
ICAgICAgIC8vIFdlIGNhbiB1c2UgdGhlIGZpcnN0IGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVyIGFz
IGEgc2NyYXRjaCBzaW5jZSBpdCB3aWxsIGFsd2F5cyBiZSBtb3ZlZCBvbnRvIHRoZSBzdGFjayBi
ZWZvcmUgb3RoZXIgdmFsdWVzLgotICAgICAgICBGUFJSZWcgZnByU2NyYXRjaCA9IHdhc21DYWxs
aW5nQ29udmVudGlvbigpLmZwckFyZ3NbMF0uZnByKCk7CisgICAgICAgIEZQUlJlZyBmcHJTY3Jh
dGNoID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkuZnByQXJnc1swXTsKICAgICAgICAgYm9vbCBo
YXNJNjQgPSBmYWxzZTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpZ25hdHVy
ZS5yZXR1cm5Db3VudCgpOyArK2kpIHsKICAgICAgICAgICAgIFZhbHVlTG9jYXRpb24gbG9jID0g
d2FzbUZyYW1lQ29udmVudGlvbi5yZXN1bHRzW2ldOwogICAgICAgICAgICAgVHlwZSB0eXBlID0g
c2lnbmF0dXJlLnJldHVyblR5cGUoaSk7CiAKICAgICAgICAgICAgIGhhc0k2NCB8PSB0eXBlLmlz
STY0KCk7Ci0gICAgICAgICAgICBpZiAobG9jLmlzUmVnKCkpIHsKLSAgICAgICAgICAgICAgICBp
ZiAoIXR5cGUuaXNJNjQoKSkgewotICAgICAgICAgICAgICAgICAgICBib3hXYXNtUmVzdWx0KGpp
dCwgc2lnbmF0dXJlLnJldHVyblR5cGUoaSksIGxvYy5yZWcoKSwgc2NyYXRjaCk7Ci0gICAgICAg
ICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2gsIENDYWxsSGVscGVyczo6QWRkcmVz
cyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJlc3VsdFJlZ2lzdGVy
cy5maW5kKGxvYy5yZWcoKSktPm9mZnNldCgpICsgd2FzbUZyYW1lQ29udmVudGlvbi5oZWFkZXJB
bmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoSlNWYWx1ZVJlZ3MgeyBsb2MucmVnKCku
Z3ByKCkgfSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVy
UmVnaXN0ZXIsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLnJlZygpKS0+b2Zmc2V0KCkg
KyB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcykp
OworICAgICAgICAgICAgaWYgKGxvYy5pc0dQUigpIHx8IGxvYy5pc0ZQUigpKSB7CisjaWYgVVNF
KEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICBBU1NFUlQoIWxvYy5pc0dQUigpIHx8IHNh
dmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgp
ICsgNCA9PSBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS50YWdHUFIoKSktPm9m
ZnNldCgpKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIGF1dG8gYWRkcmVzcyA9IENDYWxsSGVs
cGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCB3YXNtRnJh
bWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcyk7CisgICAgICAg
ICAgICAgICAgc3dpdGNoICh0eXBlLmtpbmQpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFR5cGVL
aW5kOjpGMzI6CisgICAgICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OgorICAgICAgICAg
ICAgICAgICAgICBib3hXYXNtUmVzdWx0KGppdCwgdHlwZSwgbG9jLCBzY3JhdGNoSlNSKTsKKyAg
ICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoc2NyYXRjaEpTUiwgYWRkcmVzcy53aXRo
T2Zmc2V0KHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmZwcigpKS0+b2Zmc2V0KCkpKTsK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBUeXBlS2lu
ZDo6STY0OgorICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShsb2MuanNyKCksIGFk
ZHJlc3Mud2l0aE9mZnNldChzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS5wYXls
b2FkR1BSKCkpLT5vZmZzZXQoKSkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBib3hXYXNtUmVzdWx0KGpp
dCwgdHlwZSwgbG9jLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3Jl
VmFsdWUoc2NyYXRjaEpTUiwgYWRkcmVzcy53aXRoT2Zmc2V0KHNhdmVkUmVzdWx0UmVnaXN0ZXJz
LmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpKSk7CisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICAgICAgaWYgKCF0eXBlLmlzSTY0KCkpIHsKICAgICAgICAgICAgICAgICAgICAg
YXV0byBsb2NhdGlvbiA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNr
UG9pbnRlclJlZ2lzdGVyLCBsb2Mub2Zmc2V0RnJvbVNQKCkpOwotICAgICAgICAgICAgICAgICAg
ICBSZWcgdG1wID0gKHR5cGUuaXNGMzIoKSB8fCB0eXBlLmlzRjY0KCkpID8gUmVnKGZwclNjcmF0
Y2gpIDogUmVnKHNjcmF0Y2guZ3ByKCkpOwotICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDY0
VG9SZWcobG9jYXRpb24sIHRtcCk7Ci0gICAgICAgICAgICAgICAgICAgIGJveFdhc21SZXN1bHQo
aml0LCBzaWduYXR1cmUucmV0dXJuVHlwZShpKSwgdG1wLCBzY3JhdGNoKTsKLSAgICAgICAgICAg
ICAgICAgICAgaml0LnN0b3JlVmFsdWUoc2NyYXRjaCwgbG9jYXRpb24pOworICAgICAgICAgICAg
ICAgICAgICBWYWx1ZUxvY2F0aW9uIHRtcDsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0
eXBlLmtpbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgorICAg
ICAgICAgICAgICAgICAgICAgICAgdG1wID0gVmFsdWVMb2NhdGlvbiB7IGZwclNjcmF0Y2ggfTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkRmxvYXQobG9jYXRpb24sIGZwclNjcmF0
Y2gpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg
IGNhc2UgVHlwZUtpbmQ6OkY2NDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFZhbHVl
TG9jYXRpb24geyBmcHJTY3JhdGNoIH07CisgICAgICAgICAgICAgICAgICAgICAgICBqaXQubG9h
ZERvdWJsZShsb2NhdGlvbiwgZnByU2NyYXRjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgorICAgICAgICAg
ICAgICAgICAgICAgICAgdG1wID0gVmFsdWVMb2NhdGlvbiB7IHNjcmF0Y2hKU1IgfTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGppdC5sb2FkMzIobG9jYXRpb24sIHNjcmF0Y2hKU1IucGF5bG9h
ZEdQUigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gVmFsdWVMb2NhdGlv
biB7IHNjcmF0Y2hKU1IgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUo
bG9jYXRpb24sIHNjcmF0Y2hKU1IpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYm94V2FzbVJlc3VsdChq
aXQsIHR5cGUsIHRtcCwgc2NyYXRjaEpTUik7CisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9y
ZVZhbHVlKHNjcmF0Y2hKU1IsIGxvY2F0aW9uKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9CiAKQEAgLTEzNiwzNyArMTg0LDQ3IEBAIHZvaWQgbWFyc2hhbGxKU1Jlc3VsdChDQ2Fs
bEhlbHBlcnMmIGppdCwgY29uc3QgVHlwZURlZmluaXRpb24mIHR5cGVEZWZpbml0aW9uLCBjCiAK
ICAgICAgICAgICAgICAgICBHUFJSZWcgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IFBpbm5lZFJl
Z2lzdGVySW5mbzo6Z2V0KCkud2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXI7CiAgICAgICAgICAg
ICAgICAgaWYgKENvbnRleHQ6OnVzZUZhc3RUTFMoKSkgewotICAgICAgICAgICAgICAgICAgICB3
YXNtQ29udGV4dEluc3RhbmNlR1BSID0gR1BSSW5mbzo6YXJndW1lbnRHUFIxOwotICAgICAgICAg
ICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZV92PFdhc206Okluc3RhbmNlKiwg
dHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRz
QXJyYXkpPjo6QXJndW1lbnRUeXBlPDE+Pik7CisgICAgICAgICAgICAgICAgICAgIHdhc21Db250
ZXh0SW5zdGFuY2VHUFIgPSBwcmVmZXJyZWRBcmd1bWVudEdQUjxkZWNsdHlwZShvcGVyYXRpb25D
b252ZXJ0VG9CaWdJbnQpLCAxPigpOworICAgICAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0
KHN0ZDo6aXNfc2FtZV92PFdhc206Okluc3RhbmNlKiwgdHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8
ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KT46OkFyZ3VtZW50VHlwZTwxPj4pOwog
ICAgICAgICAgICAgICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uod2FzbUNvbnRl
eHRJbnN0YW5jZUdQUik7CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgaWYg
KGxvYy5pc1JlZygpKQotICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDY0KENDYWxsSGVscGVy
czo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJlc3Vs
dFJlZ2lzdGVycy5maW5kKGxvYy5yZWcoKSktPm9mZnNldCgpICsgd2FzbUZyYW1lQ29udmVudGlv
bi5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOwotICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICBhdXRvIGxv
Y2F0aW9uID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVy
UmVnaXN0ZXIsIGxvYy5vZmZzZXRGcm9tU1AoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5s
b2FkNjRUb1JlZyhsb2NhdGlvbiwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJh
dGlvbkNvbnZlcnRUb0JpZ0ludCk+KHdhc21Db250ZXh0SW5zdGFuY2VHUFIsIEdQUkluZm86OmFy
Z3VtZW50R1BSMCk7CisgICAgICAgICAgICAgICAgY29uc3RleHByIEpTVmFsdWVSZWdzIHZhbHVl
SlNSID0gcHJlZmVycmVkQXJndW1lbnRKU1I8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmln
SW50KSwgMj4oKTsKKworICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBhZGRy
ZXNzIHsgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciB9OworICAgICAgICAgICAg
ICAgIGlmIChsb2MuaXNHUFIoKSB8fCBsb2MuaXNGUFIoKSkgeworI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgICAgICAgICAgICAgICAgIEFTU0VSVChzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5k
KGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSArIDQgPT0gc2F2ZWRSZXN1bHRSZWdp
c3RlcnMuZmluZChsb2MuanNyKCkudGFnR1BSKCkpLT5vZmZzZXQoKSk7CisjZW5kaWYKKyAgICAg
ICAgICAgICAgICAgICAgYWRkcmVzcyA9IGFkZHJlc3Mud2l0aE9mZnNldChzYXZlZFJlc3VsdFJl
Z2lzdGVycy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSArIHdhc21GcmFt
ZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKTsKKyAgICAgICAg
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9IGFkZHJlc3Mud2l0
aE9mZnNldChsb2Mub2Zmc2V0RnJvbVNQKCkpOworCisgICAgICAgICAgICAgICAgaml0LmxvYWRW
YWx1ZShhZGRyZXNzLCB2YWx1ZUpTUik7CisgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1l
bnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+KHdhc21Db250ZXh0SW5zdGFu
Y2VHUFIsIHZhbHVlSlNSKTsKICAgICAgICAgICAgICAgICBqaXQuY2FsbE9wZXJhdGlvbihGdW5j
dGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCkpOwotICAg
ICAgICAgICAgICAgIGlmIChsb2MuaXNSZWcoKSkKLSAgICAgICAgICAgICAgICAgICAgaml0LnN0
b3JlVmFsdWUoSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiB9LCBDQ2FsbEhl
bHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRS
ZXN1bHRSZWdpc3RlcnMuZmluZChsb2MucmVnKCkpLT5vZmZzZXQoKSArIHdhc21GcmFtZUNvbnZl
bnRpb24uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSk7Ci0gICAgICAgICAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gbG9jYXRpb24gPSBDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgbG9jLm9mZnNl
dEZyb21TUCgpKTsKLSAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoSlNWYWx1ZVJl
Z3MgeyBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiB9LCBsb2NhdGlvbik7Ci0gICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTUkluZm86OnJldHVyblZhbHVl
SlNSLCBhZGRyZXNzKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIEdQUlJl
ZyB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKS53YXNt
Q29udGV4dEluc3RhbmNlUG9pbnRlcjsKICAgICAgICAgaWYgKENvbnRleHQ6OnVzZUZhc3RUTFMo
KSkgewotICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IEdQUkluZm86OmFyZ3Vt
ZW50R1BSMTsKKyAgICAgICAgICAgIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBwcmVmZXJyZWRB
cmd1bWVudEdQUjxkZWNsdHlwZShvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSksIDE+KCk7
CiAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZV92PFdhc206Okluc3RhbmNl
KiwgdHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1
bHRzQXJyYXkpPjo6QXJndW1lbnRUeXBlPDE+Pik7CiAgICAgICAgICAgICBqaXQubG9hZFdhc21D
b250ZXh0SW5zdGFuY2Uod2FzbUNvbnRleHRJbnN0YW5jZUdQUik7CiAgICAgICAgIH0KIAotICAg
ICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRz
QXJyYXkpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1Q
dHIoJnR5cGVEZWZpbml0aW9uKSwgaW5kZXhpbmdUeXBlLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyKTsKKyAgICAgICAgY29uc3RleHByIEdQUlJlZyBzYXZlZFJlc3VsdHNHUFIg
PSBwcmVmZXJyZWRBcmd1bWVudEdQUjxkZWNsdHlwZShvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNB
cnJheSksIDQ+KCk7CisgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVy
UmVnaXN0ZXIsIHNhdmVkUmVzdWx0c0dQUik7CisgICAgICAgIGlmIGNvbnN0ZXhwciAobWF4RnJh
bWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAgICBqaXQuc3ViUHRyKENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgQ0NhbGxI
ZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIEFTU0VSVCh3YXNtQ29udGV4
dEluc3RhbmNlR1BSICE9IHNhdmVkUmVzdWx0c0dQUik7CisgICAgICAgIGppdC5zZXR1cEFyZ3Vt
ZW50czxkZWNsdHlwZShvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSk+KHdhc21Db250ZXh0
SW5zdGFuY2VHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigmdHlwZURlZmluaXRpb24p
LCBpbmRleGluZ1R5cGUsIHNhdmVkUmVzdWx0c0dQUik7CiAgICAgICAgIGppdC5jYWxsT3BlcmF0
aW9uKEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRz
QXJyYXkpKTsKKyAgICAgICAgaWYgY29uc3RleHByIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRo
Q2FsbCkKKyAgICAgICAgICAgIGppdC5hZGRQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
bWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRl
clJlZ2lzdGVyKTsKKworICAgICAgICBqaXQuYm94Q2VsbChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQ
UiwgSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpOwogICAgIH0KIH0KIApAQCAtMTc4LDcgKzIzNiwx
MSBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4gY3JlYXRlSlNUb1dhc21XcmFw
cGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogICAgIC8vIEZJWE1FIFN0b3AgdXNpbmcgMCBh
cyBjb2RlQmxvY2tzLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1
MzIxCiAgICAgaml0LmVtaXRaZXJvVG9DYWxsRnJhbWVIZWFkZXIoQ2FsbEZyYW1lU2xvdDo6Y29k
ZUJsb2NrKTsKICAgICBNYWNyb0Fzc2VtYmxlcjo6RGF0YUxhYmVsUHRyIGNhbGxlZU1vdmVMb2Nh
dGlvbiA9IGppdC5tb3ZlV2l0aFBhdGNoKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG51
bGxwdHIpLCBHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIpOwotICAgIGppdC5lbWl0
UHV0VG9DYWxsRnJhbWVIZWFkZXIoR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSLCBD
YWxsRnJhbWVTbG90OjpjYWxsZWUpOworICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBjYWxsZWVT
bG90IHsgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAq
IHNpemVvZihSZWdpc3RlcikgfTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6bm9uUHJlc2Vy
dmVkTm9uUmV0dXJuR1BSLCBjYWxsZWVTbG90LndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOwor
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6V2FzbVRhZyksIGNhbGxlZVNsb3Qud2l0aE9mZnNldChUYWdPZmZz
ZXQpKTsKKyNlbmRpZgogICAgIFZlY3RvcjxDb2RlTG9jYXRpb25EYXRhTGFiZWxQdHI8V2FzbUVu
dHJ5UHRyVGFnPj4qIGxpbmtlZENhbGxlZU1vdmUgPSAmcmVzdWx0LT5jYWxsZWVNb3ZlTG9jYXRp
b25zOwogICAgIGppdC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsK
ICAgICAgICAgbGlua2VkQ2FsbGVlTW92ZS0+YXBwZW5kKGxpbmtCdWZmZXIubG9jYXRpb25PZjxX
YXNtRW50cnlQdHJUYWc+KGNhbGxlZU1vdmVMb2NhdGlvbikpOwpAQCAtMTk3LDExICsyNTksMTEg
QEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+IGNyZWF0ZUpTVG9XYXNtV3JhcHBl
cihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QKICAgICBSZWdpc3RlckF0T2Zmc2V0TGlzdCByZWdp
c3RlcnNUb1NwaWxsKHRvU2F2ZSwgUmVnaXN0ZXJBdE9mZnNldExpc3Q6Ok9mZnNldEJhc2VUeXBl
OjpGcmFtZVBvaW50ZXJCYXNlZCk7CiAgICAgcmVzdWx0LT5lbnRyeXBvaW50LmNhbGxlZVNhdmVS
ZWdpc3RlcnMgPSByZWdpc3RlcnNUb1NwaWxsOwogCi0gICAgc2l6ZV90IHRvdGFsRnJhbWVTaXpl
ID0gcmVnaXN0ZXJzVG9TcGlsbC5zaXplKCkgKiBzaXplb2YoQ1BVUmVnaXN0ZXIpOworICAgIHNp
emVfdCB0b3RhbEZyYW1lU2l6ZSA9IHJlZ2lzdGVyc1RvU3BpbGwuc2l6ZU9mQXJlYUluQnl0ZXMo
KTsKICAgICBDYWxsSW5mb3JtYXRpb24gd2FzbUZyYW1lQ29udmVudGlvbiA9IHdhc21DYWxsaW5n
Q29udmVudGlvbigpLmNhbGxJbmZvcm1hdGlvbkZvcih0eXBlRGVmaW5pdGlvbik7CiAgICAgUmVn
aXN0ZXJBdE9mZnNldExpc3Qgc2F2ZWRSZXN1bHRSZWdpc3RlcnMgPSB3YXNtRnJhbWVDb252ZW50
aW9uLmNvbXB1dGVSZXN1bHRzT2Zmc2V0TGlzdCgpOwogICAgIHRvdGFsRnJhbWVTaXplICs9IHdh
c21GcmFtZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzOwotICAg
IHRvdGFsRnJhbWVTaXplICs9IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLnNpemUoKSAqIHNpemVvZihD
UFVSZWdpc3Rlcik7CisgICAgdG90YWxGcmFtZVNpemUgKz0gc2F2ZWRSZXN1bHRSZWdpc3RlcnMu
c2l6ZU9mQXJlYUluQnl0ZXMoKTsKIAogICAgIHRvdGFsRnJhbWVTaXplID0gV1RGOjpyb3VuZFVw
VG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50Qnl0ZXMoKSwgdG90YWxGcmFtZVNpemUpOwogICAg
IGppdC5zdWJQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMih0b3RhbEZyYW1lU2l6ZSks
IE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CkBAIC0yMjMsOSArMjg1LDEy
IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVhdGVKU1RvV2FzbVdyYXBw
ZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzIGNhbGxlZUZyYW1lID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpz
dGFja1BvaW50ZXJSZWdpc3RlciwgMCk7CiAKLSAgICAgICAgLy8gV2UncmUgZ29pbmcgdG8gc2V0
IHRoZSBwaW5uZWQgcmVnaXN0ZXJzIGFmdGVyIHRoaXMuIFNvCi0gICAgICAgIC8vIHdlIGNhbiB1
c2UgdGhpcyBhcyBhIHNjcmF0Y2ggZm9yIG5vdyBzaW5jZSB3ZSBzYXZlZCBpdCBhYm92ZS4KLSAg
ICAgICAgR1BSUmVnIHNjcmF0Y2hSZWcgPSBwaW5uZWRSZWdzLmJhc2VNZW1vcnlQb2ludGVyOwor
ICAgICAgICBKU1ZhbHVlUmVncyBzY3JhdGNoSlNSIHsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQor
ICAgICAgICAgICAgd2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1sy
XSwKKyNlbmRpZgorICAgICAgICAgICAgd2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVT
Y3JhdGNoR1BSc1sxXQorICAgICAgICB9OwogCiAgICAgICAgIGlmICghQ29udGV4dDo6dXNlRmFz
dFRMUygpKSB7CiAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Mo
R1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTQ2FsbGluZ0NvbnZlbnRpb246Omluc3RhbmNl
U3RhY2tPZmZzZXQpLCB3YXNtQ29udGV4dEluc3RhbmNlR1BSKTsKQEAgLTIzOSwyMiArMzA0LDM0
IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVhdGVKU1RvV2FzbVdyYXBw
ZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAgICAgICAgICAgICBUeXBlIHR5cGUgPSBzaWdu
YXR1cmUuYXJndW1lbnRUeXBlKGkpOwogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
IGpzUGFyYW0oR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGpzRnJhbWVDb252ZW50aW9uLnBh
cmFtc1tpXS5vZmZzZXRGcm9tRlAoKSk7CiAgICAgICAgICAgICBpZiAod2FzbUZyYW1lQ29udmVu
dGlvbi5wYXJhbXNbaV0uaXNTdGFja0FyZ3VtZW50KCkpIHsKKyAgICAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MgYWRkciB7IGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUZyYW1l
Q29udmVudGlvbi5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpIH07CiAgICAgICAgICAgICAgICAg
aWYgKHR5cGUuaXNJMzIoKSB8fCB0eXBlLmlzRjMyKCkpIHsKLSAgICAgICAgICAgICAgICAgICAg
aml0LmxvYWQzMihqc1BhcmFtLCBzY3JhdGNoUmVnKTsKLSAgICAgICAgICAgICAgICAgICAgaml0
LnN0b3JlMzIoc2NyYXRjaFJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtRnJhbWVDb252
ZW50aW9uLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkpOworICAgICAgICAgICAgICAgICAgICBq
aXQubG9hZDMyKGpzUGFyYW0sIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAg
ICAgICAgICAgaml0LnN0b3JlMzIoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIGFkZHIud2l0aE9m
ZnNldChQYXlsb2FkT2Zmc2V0KSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAg
ICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMCksIGFkZHIu
d2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgogICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaFJlZyk7Ci0g
ICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZTY0KHNjcmF0Y2hSZWcsIGNhbGxlZUZyYW1lLndp
dGhPZmZzZXQod2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsK
KyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShqc1BhcmFtLCBzY3JhdGNoSlNSKTsK
KyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoc2NyYXRjaEpTUiwgYWRkcik7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBp
ZiAodHlwZS5pc0kzMigpIHx8IHR5cGUuaXNGMzIoKSkKLSAgICAgICAgICAgICAgICAgICAgaml0
LmxvYWQzMlRvUmVnKGpzUGFyYW0sIHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLnJlZygp
KTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjRU
b1JlZyhqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5yZWcoKSk7CisgICAg
ICAgICAgICAgICAgaWYgKHR5cGUuaXNGMzIoKSkKKyAgICAgICAgICAgICAgICAgICAgaml0Lmxv
YWRGbG9hdChqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5mcHIoKSk7Cisg
ICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZS5pc0Y2NCgpKQorICAgICAgICAgICAgICAgICAg
ICBqaXQubG9hZERvdWJsZShqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5m
cHIoKSk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZS5pc0kzMigpKSB7CisgICAgICAg
ICAgICAgICAgICAgIGppdC5sb2FkMzIoanNQYXJhbSwgd2FzbUZyYW1lQ29udmVudGlvbi5wYXJh
bXNbaV0uanNyKCkucGF5bG9hZEdQUigpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAg
ICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSwgd2Fz
bUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0uanNyKCkudGFnR1BSKCkpOworI2VuZGlmCisgICAg
ICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQ
YXJhbSwgd2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0uanNyKCkpOwogICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgfQogCisjaWYgIUNQVShBUk0pIC8vIEFSTSBoYXMgbm8gcGlubmVk
IHJlZ2lzdGVycyBmb3IgV2FzbSBNZW1vcnksIHNvIG5vIG5lZWQgdG8gc2V0IHRoZW0gdXAKICAg
ICBpZiAoISFpbmZvLm1lbW9yeSkgewogICAgICAgICBHUFJSZWcgYmFzZU1lbW9yeSA9IHBpbm5l
ZFJlZ3MuYmFzZU1lbW9yeVBvaW50ZXI7CiAgICAgICAgIEdQUlJlZyBzaXplID0gd2FzbUNhbGxp
bmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1swXTsKQEAgLTI2NSwxNyArMzQyLDE4
IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVhdGVKU1RvV2FzbVdyYXBw
ZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAKICAgICAgICAgR1BSUmVnIGN1cnJlbnRJbnN0
YW5jZUdQUiA9IENvbnRleHQ6OnVzZUZhc3RUTFMoKSA/IGJhc2VNZW1vcnkgOiB3YXNtQ29udGV4
dEluc3RhbmNlR1BSOwogICAgICAgICBpZiAoaXNBUk02NEUoKSkgewotICAgICAgICAgICAgaWYg
KG1vZGUgIT0gV2FzbTo6TWVtb3J5TW9kZTo6U2lnbmFsaW5nKQorICAgICAgICAgICAgaWYgKG1v
ZGUgPT0gV2FzbTo6TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcpCiAgICAgICAgICAgICAgICAg
c2l6ZSA9IHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXI7CiAgICAgICAgICAg
ICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoY3VycmVudEluc3RhbmNlR1BSLCBX
YXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHNDaGVja2luZ1NpemUoKSksIHNpemUp
OwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG1vZGUgIT0gV2FzbTo6TWVtb3J5
TW9kZTo6U2lnbmFsaW5nKQorICAgICAgICAgICAgaWYgKG1vZGUgPT0gV2FzbTo6TWVtb3J5TW9k
ZTo6Qm91bmRzQ2hlY2tpbmcpCiAgICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKGN1cnJlbnRJbnN0YW5jZUdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9m
Q2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKCkpLCBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6
ZVJlZ2lzdGVyKTsKICAgICAgICAgfQogCiAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVy
czo6QWRkcmVzcyhjdXJyZW50SW5zdGFuY2VHUFIsIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNh
Y2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7CiAgICAgICAgIGppdC5jYWdlQ29uZGl0aW9uYWxs
eUFuZFVudGFnKEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJhc2VNZW1vcnksIHNpemUsIHNjcmF0Y2gp
OwogICAgIH0KKyNlbmRpZgogCiAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIGNhbGwgPSBqaXQudGhy
ZWFkU2FmZVBhdGNoYWJsZU5lYXJDYWxsKCk7CiAgICAgdW5zaWduZWQgZnVuY3Rpb25JbmRleFNw
YWNlID0gZnVuY3Rpb25JbmRleCArIGluZm8uaW1wb3J0RnVuY3Rpb25Db3VudCgpOwpAQCAtMjg4
LDcgKzM2Niw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVhdGVKU1Rv
V2FzbVdyYXBwZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAKICAgICBmb3IgKGNvbnN0IFJl
Z2lzdGVyQXRPZmZzZXQmIHJlZ0F0T2Zmc2V0IDogcmVnaXN0ZXJzVG9TcGlsbCkgewogICAgICAg
ICBHUFJSZWcgcmVnID0gcmVnQXRPZmZzZXQucmVnKCkuZ3ByKCk7Ci0gICAgICAgIEFTU0VSVChy
ZWcgIT0gR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICBBU1NFUlQoIUpTUkluZm86
OnJldHVyblZhbHVlSlNSLnVzZXMocmVnKSk7CiAgICAgICAgIHB0cmRpZmZfdCBvZmZzZXQgPSBy
ZWdBdE9mZnNldC5vZmZzZXQoKTsKICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBvZmZzZXQpLCByZWcpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcAppbmRleCA4MGExZWRm
MWJhZjExNjliM2JjNGYwZDc1M2VmZTUwMTg0MmQ1OWIzLi5lODVlYzlhMjI2NDhmZjMwMmQ1OTY1
MzVlMmI1MjM2NzlkYmU3YzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XYXNtVG9KUy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Fz
bVRvSlMuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAj
aW5jbHVkZSAiSlNXZWJBc3NlbWJseUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5o
IgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAi
VGh1bmtHZW5lcmF0b3JzLmgiCiAjaW5jbHVkZSAiV2FzbUNhbGxpbmdDb252ZW50aW9uLmgiCiAj
aW5jbHVkZSAiV2FzbUNvbnRleHRJbmxpbmVzLmgiCkBAIC02OSw3ICs3MCw3IEBAIEV4cGVjdGVk
PE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4g
d2FzbVRvSlMoVk0mIHZtCiAgICAgLy8gSWYgd2UgZXZlciBjaGFuZ2UgdGhpcywgd2Ugd2lsbCBh
bHNvIG5lZWQgdG8gY2hhbmdlIFdhc21CM0lSR2VuZXJhdG9yLgogCiAgICAgLy8gQmVsb3csIHdl
IGFzc3VtZSB0aGF0IHRoZSBKUyBjYWxsaW5nIGNvbnZlbnRpb24gaXMgYWx3YXlzIG9uIHRoZSBz
dGFjay4KLSAgICBBU1NFUlQoIWpzQ0MuZ3ByQXJncy5zaXplKCkpOworICAgIEFTU0VSVCghanND
Qy5qc3JBcmdzLnNpemUoKSk7CiAgICAgQVNTRVJUKCFqc0NDLmZwckFyZ3Muc2l6ZSgpKTsKIAog
ICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwpAQCAtODYsMTQgKzg3LDIyIEBAIEV4cGVj
dGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVy
ZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgLy8gZm9yIHVzIGhlcmUuCiAKICAgICBjb25zdCB1bnNp
Z25lZCBudW1iZXJPZlBhcmFtZXRlcnMgPSBhcmdDb3VudCArIDE7IC8vIFRoZXJlIGlzIGEgInRo
aXMiIGFyZ3VtZW50LgotICAgIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mUmVnc0ZvckNhbGwgPSBD
YWxsRnJhbWU6OmhlYWRlclNpemVJblJlZ2lzdGVycyArIG51bWJlck9mUGFyYW1ldGVyczsKKyAg
ICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlJlZ3NGb3JDYWxsID0gQ2FsbEZyYW1lOjpoZWFkZXJT
aXplSW5SZWdpc3RlcnMgKyByb3VuZEFyZ3VtZW50Q291bnRUb0FsaWduRnJhbWUobnVtYmVyT2ZQ
YXJhbWV0ZXJzKTsKKyAgICBBU1NFUlQoIShudW1iZXJPZlJlZ3NGb3JDYWxsICUgc3RhY2tBbGln
bm1lbnRSZWdpc3RlcnMoKSkpOwogICAgIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQnl0ZXNGb3JD
YWxsID0gbnVtYmVyT2ZSZWdzRm9yQ2FsbCAqIHNpemVvZihSZWdpc3RlcikgLSBzaXplb2YoQ2Fs
bGVyRnJhbWVBbmRQQyk7Ci0gICAgY29uc3QgdW5zaWduZWQgc3RhY2tPZmZzZXQgPSBXVEY6OnJv
dW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRCeXRlcygpLCBzdGQ6Om1heDx1bnNpZ25l
ZD4obnVtYmVyT2ZCeXRlc0ZvckNhbGwsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLnNpemUoKSAqIHNp
emVvZihDUFVSZWdpc3RlcikpKTsKKyAgICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkJ5dGVzRm9y
U2F2ZWRSZXN1bHRzID0gc2F2ZWRSZXN1bHRSZWdpc3RlcnMuc2l6ZU9mQXJlYUluQnl0ZXMoKTsK
KyAgICBjb25zdCB1bnNpZ25lZCBzdGFja09mZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVP
ZihzdGFja0FsaWdubWVudEJ5dGVzKCksIHN0ZDo6bWF4KG51bWJlck9mQnl0ZXNGb3JDYWxsLCBu
dW1iZXJPZkJ5dGVzRm9yU2F2ZWRSZXN1bHRzKSk7CiAgICAgaml0LnN1YlB0cihNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbTMyKHN0YWNrT2Zmc2V0KSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyKTsKICAgICBKSVQ6OkFkZHJlc3MgY2FsbGVlRnJhbWUgPSBDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCAtc3RhdGlj
X2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKIAogICAgIC8vIEZJ
WE1FIG1ha2UgdGhlc2UgbG9vcHMgd2hpY2ggc3dpdGNoIG9uIHNpZ25hdHVyZSBpZiB0aGVyZSBh
cmUgbWFueSBhcmd1bWVudHMgb24gdGhlIHN0YWNrLiBJdCdsbCBvdGhlcndpc2UgYmUgaHVnZSBm
b3IgaHVnZSB0eXBlIGRlZmluaXRpb25zLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY1NTQ3CiAKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIGNvbnN0ZXhwciBKU1Zh
bHVlUmVncyBqc0FyZzEwIHsgR1BSSW5mbzo6YXJndW1lbnRHUFIwIH07CisjZWxpZiBVU0UoSlNW
QUxVRTMyXzY0KQorICAgIGNvbnN0ZXhwciBKU1ZhbHVlUmVncyBqc0FyZzEwIHsgR1BSSW5mbzo6
YXJndW1lbnRHUFIxLCBHUFJJbmZvOjphcmd1bWVudEdQUjAgfTsKKyNlbmRpZgorCiAgICAgLy8g
Rmlyc3QgZ28gdGhyb3VnaCB0aGUgaW50ZWdlciBwYXJhbWV0ZXJzLCBmcmVlaW5nIHVwIHRoZWly
IHJlZ2lzdGVyIGZvciB1c2UgYWZ0ZXJ3YXJkcy4KICAgICB7CiAgICAgICAgIHVuc2lnbmVkIG1h
cnNoYWxsZWRHUFJzID0gMDsKQEAgLTExNCwyMSArMTIzLDIxIEBAIEV4cGVjdGVkPE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMo
Vk0mIHZtCiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOgogICAgICAgICAgICAg
Y2FzZSBUeXBlS2luZDo6STMyOgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OiB7Ci0g
ICAgICAgICAgICAgICAgR1BSUmVnIGdwclJlZzsKLSAgICAgICAgICAgICAgICBpZiAobWFyc2hh
bGxlZEdQUnMgPCB3YXNtQ0MuZ3ByQXJncy5zaXplKCkpCi0gICAgICAgICAgICAgICAgICAgIGdw
clJlZyA9IHdhc21DQy5ncHJBcmdzW21hcnNoYWxsZWRHUFJzXS5ncHIoKTsKKyAgICAgICAgICAg
ICAgICBKU1ZhbHVlUmVncyBhcmdSZWc7CisgICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRH
UFJzIDwgd2FzbUNDLmpzckFyZ3Muc2l6ZSgpKQorICAgICAgICAgICAgICAgICAgICBhcmdSZWcg
PSB3YXNtQ0MuanNyQXJnc1ttYXJzaGFsbGVkR1BSc107CiAgICAgICAgICAgICAgICAgZWxzZSB7
CiAgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgc3BpbGxlZCBhbGwgYXJndW1l
bnRzLCB0aGVzZSByZWdpc3RlcnMgYXJlIGF2YWlsYWJsZSBhcyBzY3JhdGNoLgotICAgICAgICAg
ICAgICAgICAgICBncHJSZWcgPSBHUFJJbmZvOjphcmd1bWVudEdQUjA7Ci0gICAgICAgICAgICAg
ICAgICAgIGppdC5sb2FkNjQoSklUOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVy
LCBmck9mZnNldCksIGdwclJlZyk7CisgICAgICAgICAgICAgICAgICAgIGFyZ1JlZyA9IGpzQXJn
MTA7CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoSklUOjpBZGRyZXNzKEdQUklu
Zm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBmck9mZnNldCksIGFyZ1JlZyk7CiAgICAgICAgICAgICAg
ICAgICAgIGZyT2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICsrbWFyc2hhbGxlZEdQUnM7CiAgICAgICAgICAgICAgICAgaWYgKGFy
Z1R5cGUuaXNJMzIoKSkgewotICAgICAgICAgICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9X
b3JkKGdwclJlZywgZ3ByUmVnKTsgLy8gQ2xlYXIgbm9uLWludDMyIGFuZCBub24tdGFnIGJpdHMu
Ci0gICAgICAgICAgICAgICAgICAgIGppdC5ib3hJbnQzMihncHJSZWcsIEpTVmFsdWVSZWdzKGdw
clJlZyksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAgICAgICAgICAgIGppdC56
ZXJvRXh0ZW5kMzJUb1dvcmQoYXJnUmVnLnBheWxvYWRHUFIoKSwgYXJnUmVnLnBheWxvYWRHUFIo
KSk7IC8vIENsZWFyIG5vbi1pbnQzMiBhbmQgbm9uLXRhZyBiaXRzLgorICAgICAgICAgICAgICAg
ICAgICBqaXQuYm94SW50MzIoYXJnUmVnLnBheWxvYWRHUFIoKSwgYXJnUmVnLCBEb05vdEhhdmVU
YWdSZWdpc3RlcnMpOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBqaXQuc3Rv
cmU2NChncHJSZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsK
KyAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShhcmdSZWcsIGNhbGxlZUZyYW1lLndpdGhP
ZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsKICAgICAgICAgICAgICAgICBjYWxsZWVGcmFtZU9m
ZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgfQpAQCAtMTQ1LDYgKzE1NCw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAg
fQogICAgIAogICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAvLyBJbnRlZ2VyIHJl
Z2lzdGVycyBoYXZlIGFscmVhZHkgYmVlbiBzcGlsbGVkLCB0aGVzZSBhcmUgbm93IGF2YWlsYWJs
ZS4KICAgICAgICAgR1BSUmVnIGRvdWJsZUVuY29kZU9mZnNldEdQUlJlZyA9IEdQUkluZm86OmFy
Z3VtZW50R1BSMDsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2ggPSBHUFJJbmZvOjphcmd1bWVudEdQ
UjE7CkBAIC0xNjAsNiArMTcwLDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdh
c21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAg
ICAgICAgICBoYXNNYXRlcmlhbGl6ZWREb3VibGVFbmNvZGVPZmZzZXQgPSB0cnVlOwogICAgICAg
ICAgICAgfQogICAgICAgICB9OworI2VuZGlmCiAKICAgICAgICAgdW5zaWduZWQgbWFyc2hhbGxl
ZEdQUnMgPSAwOwogICAgICAgICB1bnNpZ25lZCBtYXJzaGFsbGVkRlBScyA9IDA7CkBAIC0xNjgs
MTAgKzE3OSwxNCBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRy
VGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogCiAgICAgICAgIGF1dG8gbWFy
c2hhbGxGUFIgPSBbJl0gKEZQUlJlZyBmcHJSZWcpIHsKICAgICAgICAgICAgIGppdC5wdXJpZnlO
YU4oZnByUmVnKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgaml0Lm1vdmVEb3Vi
bGVUbzY0KGZwclJlZywgc2NyYXRjaCk7CiAgICAgICAgICAgICBtYXRlcmlhbGl6ZURvdWJsZUVu
Y29kZU9mZnNldChkb3VibGVFbmNvZGVPZmZzZXRHUFJSZWcpOwogICAgICAgICAgICAgaml0LmFk
ZDY0KGRvdWJsZUVuY29kZU9mZnNldEdQUlJlZywgc2NyYXRjaCk7CiAgICAgICAgICAgICBqaXQu
c3RvcmU2NChzY3JhdGNoLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0
KSk7CisjZWxzZQorICAgICAgICAgICAgaml0LnN0b3JlRG91YmxlKGZwclJlZywgY2FsbGVlRnJh
bWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCkpOworI2VuZGlmCiAgICAgICAgICAgICBj
YWxsZWVGcmFtZU9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOwogICAgICAgICAgICAgKyttYXJz
aGFsbGVkRlBSczsKICAgICAgICAgfTsKQEAgLTE5MSw3ICsyMDYsNyBAQCBFeHBlY3RlZDxNYWNy
b0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21U
b0pTKFZNJiB2bQogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgogICAgICAgICAgICAg
Y2FzZSBUeXBlS2luZDo6STY0OiB7CiAgICAgICAgICAgICAgICAgLy8gU2tpcHBlZDogaGFuZGxl
ZCBhYm92ZS4KLSAgICAgICAgICAgICAgICBpZiAobWFyc2hhbGxlZEdQUnMgPj0gd2FzbUNDLmdw
ckFyZ3Muc2l6ZSgpKQorICAgICAgICAgICAgICAgIGlmIChtYXJzaGFsbGVkR1BScyA+PSB3YXNt
Q0MuanNyQXJncy5zaXplKCkpCiAgICAgICAgICAgICAgICAgICAgIGZyT2Zmc2V0ICs9IHNpemVv
ZihSZWdpc3Rlcik7CiAgICAgICAgICAgICAgICAgKyttYXJzaGFsbGVkR1BSczsKICAgICAgICAg
ICAgICAgICBjYWxsZWVGcmFtZU9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOwpAQCAtMjAwLDcg
KzIxNSw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+
LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBjYXNlIFR5cGVL
aW5kOjpGMzI6IHsKICAgICAgICAgICAgICAgICBGUFJSZWcgZnByUmVnOwogICAgICAgICAgICAg
ICAgIGlmIChtYXJzaGFsbGVkRlBScyA8IHdhc21DQy5mcHJBcmdzLnNpemUoKSkKLSAgICAgICAg
ICAgICAgICAgICAgZnByUmVnID0gd2FzbUNDLmZwckFyZ3NbbWFyc2hhbGxlZEZQUnNdLmZwcigp
OworICAgICAgICAgICAgICAgICAgICBmcHJSZWcgPSB3YXNtQ0MuZnByQXJnc1ttYXJzaGFsbGVk
RlBSc107CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFdl
J3ZlIGFscmVhZHkgc3BpbGxlZCBhbGwgYXJndW1lbnRzLCB0aGVzZSByZWdpc3RlcnMgYXJlIGF2
YWlsYWJsZSBhcyBzY3JhdGNoLgogICAgICAgICAgICAgICAgICAgICBmcHJSZWcgPSBGUFJJbmZv
Ojphcmd1bWVudEZQUjA7CkBAIC0yMTQsNyArMjI5LDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYg
dm0KICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2NDogewogICAgICAgICAgICAgICAgIEZQ
UlJlZyBmcHJSZWc7CiAgICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRGUFJzIDwgd2FzbUND
LmZwckFyZ3Muc2l6ZSgpKQotICAgICAgICAgICAgICAgICAgICBmcHJSZWcgPSB3YXNtQ0MuZnBy
QXJnc1ttYXJzaGFsbGVkRlBSc10uZnByKCk7CisgICAgICAgICAgICAgICAgICAgIGZwclJlZyA9
IHdhc21DQy5mcHJBcmdzW21hcnNoYWxsZWRGUFJzXTsKICAgICAgICAgICAgICAgICBlbHNlIHsK
ICAgICAgICAgICAgICAgICAgICAgLy8gV2UndmUgYWxyZWFkeSBzcGlsbGVkIGFsbCBhcmd1bWVu
dHMsIHRoZXNlIHJlZ2lzdGVycyBhcmUgYXZhaWxhYmxlIGFzIHNjcmF0Y2guCiAgICAgICAgICAg
ICAgICAgICAgIGZwclJlZyA9IEZQUkluZm86OmFyZ3VtZW50RlBSMDsKQEAgLTIzNiwxMiArMjUx
LDE1IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBC
aW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgIHVuc2lnbmVkIGNhbGxlZUZy
YW1lT2Zmc2V0ID0gQ2FsbEZyYW1lU2xvdDo6Zmlyc3RBcmd1bWVudCAqIHN0YXRpY19jYXN0PGlu
dD4oc2l6ZW9mKFJlZ2lzdGVyKSk7CiAgICAgICAgIGZvciAodW5zaWduZWQgYXJnTnVtID0gMDsg
YXJnTnVtIDwgYXJnQ291bnQ7ICsrYXJnTnVtKSB7CiAgICAgICAgICAgICBpZiAoc2lnbmF0dXJl
LmFyZ3VtZW50VHlwZShhcmdOdW0pLmlzSTY0KCkpIHsKLSAgICAgICAgICAgICAgICBqaXQubG9h
ZFdhc21Db250ZXh0SW5zdGFuY2UoR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgICAg
ICAgICBqaXQubG9hZDY0KGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAgICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3Vt
ZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPihHUFJJbmZvOjphcmd1bWVu
dEdQUjAsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAgICAgICAgICAgdXNpbmcgT3Bl
cmF0aW9uID0gZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KTsKKyAgICAgICAgICAg
ICAgICBjb25zdGV4cHIgR1BSUmVnIHdhc21JbnN0YW5jZUdQUiA9IHByZWZlcnJlZEFyZ3VtZW50
R1BSPE9wZXJhdGlvbiwgMT4oKTsKKyAgICAgICAgICAgICAgICBjb25zdGV4cHIgSlNWYWx1ZVJl
Z3MgdmFsdWVKU1IgPSBwcmVmZXJyZWRBcmd1bWVudEpTUjxPcGVyYXRpb24sIDI+KCk7CisgICAg
ICAgICAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHdhc21JbnN0YW5jZUdQUik7
CisgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNh
bGxlZUZyYW1lT2Zmc2V0KSwgdmFsdWVKU1IpOworICAgICAgICAgICAgICAgIGppdC5zZXR1cEFy
Z3VtZW50czxPcGVyYXRpb24+KHdhc21JbnN0YW5jZUdQUiwgdmFsdWVKU1IpOwogICAgICAgICAg
ICAgICAgIGF1dG8gY2FsbCA9IGppdC5jYWxsKE9wZXJhdGlvblB0clRhZyk7CiAgICAgICAgICAg
ICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1bXBJZkV4Y2VwdGlvbih2bSkp
OwotICAgICAgICAgICAgICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBj
YWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSk7CisgICAgICAgICAgICAg
ICAgaml0LnN0b3JlVmFsdWUoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIGNhbGxlZUZyYW1lLndp
dGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsKICAgICAgICAgICAgICAgICBqaXQuYWRkTGlu
a1Rhc2soWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgICAg
IGxpbmtCdWZmZXIubGluayhjYWxsLCBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJh
dGlvbkNvbnZlcnRUb0JpZ0ludCkpOwogICAgICAgICAgICAgICAgIH0pOwpAQCAtMjUzLDE2ICsy
NzEsMjIgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4s
IEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICBqaXQubG9hZFdhc21Db250ZXh0
SW5zdGFuY2UoR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBqaXQubG9hZFB0cihDQ2FsbEhl
bHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBJbnN0YW5jZTo6b2Zmc2V0T2ZP
d25lcigpKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBqaXQubG9hZFB0cihDQ2FsbEhl
bHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBKU1dlYkFzc2VtYmx5SW5zdGFu
Y2U6Om9mZnNldE9mTW9kdWxlKCkpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIGppdC5l
bWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBDYWxsRnJhbWVT
bG90OjpjYWxsZWUpOwotCi0gICAgR1BSUmVnIGltcG9ydEpTQ2VsbEdQUlJlZyA9IEdQUkluZm86
OnJlZ1QwOyAvLyBDYWxsZWUgbmVlZHMgdG8gYmUgaW4gcmVnVDAgZm9yIHNsb3cgcGF0aCBiZWxv
dy4KKyAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgY2FsbGVlU2xvdCB7IEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWVTbG90OjpjYWxsZWUgICogc2l6ZW9mKFJlZ2lzdGVyKSB9
OworICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjphcmd1bWVudEdQUjAsIGNhbGxlZVNsb3QpOwor
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIGNhbGxlZVNsb3Qud2l0aE9mZnNldChUYWdPZmZz
ZXQpKTsKKyNlbmRpZgogCisgICAgLy8ganNBcmcxMCBtaWdodCBvdmVybGFwIHdpdGggcmVnVDAs
IHNvIHN0b3JlICd0aGlzJyBhcmd1bWVudCBmaXJzdAorICAgIGppdC5zdG9yZVZhbHVlKGpzVW5k
ZWZpbmVkKCksIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoQ2FsbEZyYW1lU2xvdDo6dGhpc0FyZ3Vt
ZW50ICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSksIGpzQXJnMTApOworICAg
IGNvbnN0ZXhwciBHUFJSZWcgaW1wb3J0SlNDZWxsR1BSUmVnID0gR1BSSW5mbzo6cmVnVDA7IC8v
IENhbGxlZSBuZWVkcyB0byBiZSBpbiByZWdUMCBmb3Igc2xvdyBwYXRoIGJlbG93LgogICAgIEFT
U0VSVCghd2FzbUNDLmNhbGxlZVNhdmVSZWdpc3RlcnMuZ2V0KGltcG9ydEpTQ2VsbEdQUlJlZykp
OwogICAgIG1hdGVyaWFsaXplSW1wb3J0SlNDZWxsKGppdCwgaW1wb3J0SW5kZXgsIGltcG9ydEpT
Q2VsbEdQUlJlZyk7Ci0KLSAgICBqaXQuc3RvcmU2NChpbXBvcnRKU0NlbGxHUFJSZWcsIGNhbGxl
ZUZyYW1lLndpdGhPZmZzZXQoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlICogc3RhdGljX2Nhc3Q8aW50
PihzaXplb2YoUmVnaXN0ZXIpKSkpOworICAgIGppdC5zdG9yZVB0cihpbXBvcnRKU0NlbGxHUFJS
ZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlICogc3RhdGlj
X2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisg
ICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRh
ZyksIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlICogc3RhdGlj
X2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSArIFRhZ09mZnNldCkpOworI2VuZGlmCiAgICAg
aml0LnN0b3JlMzIoSklUOjpUcnVzdGVkSW1tMzIobnVtYmVyT2ZQYXJhbWV0ZXJzKSwgY2FsbGVl
RnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90Ojphcmd1bWVudENvdW50SW5jbHVkaW5nVGhp
cyAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBQYXlsb2FkT2Zmc2V0KSk7
Ci0gICAgaml0LnN0b3JlNjQoSklUOjpUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6VmFsdWVVbmRlZmlu
ZWQpLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OnRoaXNBcmd1bWVudCAq
IHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKIAogICAgIC8vIEZJWE1FIFRh
aWwgY2FsbCBpZiB0aGUgd2FzbSByZXR1cm4gdHlwZSBpcyB2b2lkIGFuZCBubyByZWdpc3RlcnMg
d2VyZSBzcGlsbGVkLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1
NDg4CiAKQEAgLTI4NywxMSArMzExLDExIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDogewogICAgICAgICAgICAgLy8gRklYTUU6IE9wdGltaXpl
IEk2NCBleHRyYWN0aW9uIGZyb20gQmlnSW50LgogICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDA1MwotICAgICAgICAgICAgR1BSUmVnIGRl
c3QgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5ncHIoKTsKLSAgICAgICAgICAgIGppdC5zZXR1
cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9JNjQpPihHUFJJbmZvOjpyZXR1
cm5WYWx1ZUdQUik7CisgICAgICAgICAgICBKU1ZhbHVlUmVncyBkZXN0ID0gd2FzbUNhbGxJbmZv
LnJlc3VsdHNbMF0uanNyKCk7CisgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5
cGUob3BlcmF0aW9uQ29udmVydFRvSTY0KT4oSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpOwogICAg
ICAgICAgICAgYXV0byBjYWxsID0gaml0LmNhbGwoT3BlcmF0aW9uUHRyVGFnKTsKICAgICAgICAg
ICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRKdW1wSWZFeGNlcHRpb24odm0pKTsK
LSAgICAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBkZXN0KTsKKyAg
ICAgICAgICAgIGppdC5tb3ZlVmFsdWVSZWdzKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBkZXN0
KTsKIAogICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKFs9XSAoTGlua0J1ZmZlciYgbGlua0J1
ZmZlcikgewogICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubGluayhjYWxsLCBGdW5jdGlvblB0
cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkNvbnZlcnRUb0k2NCkpOwpAQCAtMzAxLDE4ICsz
MjUsMjEgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4s
IEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgY2FzZSBUeXBlS2luZDo6
STMyOiB7CiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CiAgICAgICAg
ICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IHNsb3dQYXRoOwotICAgICAgICAgICAgR1BSUmVn
IGRlc3QgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5ncHIoKTsKKyAgICAgICAgICAgIEpTVmFs
dWVSZWdzIGRlc3RKU1IgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5qc3IoKTsKIAotICAgICAg
ICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihHUFJJbmZvOjpyZXR1
cm5WYWx1ZUdQUiwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKSk7Ci0gICAgICAgICAgICBzbG93UGF0
aC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIoSlNWYWx1ZVJlZ3MoR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIpLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpKTsKLSAgICAgICAgICAgIGppdC56ZXJv
RXh0ZW5kMzJUb1dvcmQoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOworICAgICAgICAg
ICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihKU1JJbmZvOjpyZXR1cm5W
YWx1ZUpTUiwgaml0LnNjcmF0Y2hSZWdpc3RlcigpLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpKTsK
KyAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMihKU1JJbmZv
OjpyZXR1cm5WYWx1ZUpTUiwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKSk7CisgICAgICAgICAgICBq
aXQuemVyb0V4dGVuZDMyVG9Xb3JkKEpTUkluZm86OnJldHVyblZhbHVlSlNSLnBheWxvYWRHUFIo
KSwgZGVzdEpTUi5wYXlsb2FkR1BSKCkpOwogICAgICAgICAgICAgZG9uZS5hcHBlbmQoaml0Lmp1
bXAoKSk7CiAKICAgICAgICAgICAgIHNsb3dQYXRoLmxpbmsoJmppdCk7Ci0gICAgICAgICAgICBq
aXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvSTMyKT4oR1BSSW5m
bzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0
eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0kzMik+KEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsKICAg
ICAgICAgICAgIGF1dG8gY2FsbCA9IGppdC5jYWxsKE9wZXJhdGlvblB0clRhZyk7CiAgICAgICAg
ICAgICBleGNlcHRpb25DaGVja3MuYXBwZW5kKGppdC5lbWl0SnVtcElmRXhjZXB0aW9uKHZtKSk7
Ci0gICAgICAgICAgICBqaXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7Cisg
ICAgICAgICAgICBqaXQubW92ZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUi5wYXlsb2FkR1BSKCks
IGRlc3RKU1IucGF5bG9hZEdQUigpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAg
ICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMCksIGRlc3RKU1IudGFnR1BS
KCkpOworI2VuZGlmCiAKICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZm
ZXImIGxpbmtCdWZmZXIpIHsKICAgICAgICAgICAgICAgICBsaW5rQnVmZmVyLmxpbmsoY2FsbCwg
RnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25Db252ZXJ0VG9JMzIpKTsKQEAg
LTMyMiwyMyArMzQ5LDI2IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50
cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6IHsKLSAgICAgICAg
ICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZG9uZTsKICAgICAgICAgICAgIEZQUlJlZyBkZXN0
ID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uZnByKCk7CiAKLSAgICAgICAgICAgIGF1dG8gbm90
QU51bWJlciA9IGppdC5icmFuY2hJZk5vdE51bWJlcihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwg
RG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKLSAgICAgICAgICAgIGF1dG8gaXNEb3VibGUgPSBqaXQu
YnJhbmNoSWZOb3RJbnQzMihKU1ZhbHVlUmVncyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiksIERv
Tm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0
IGRvbmU7CisgICAgICAgICAgICBhdXRvIG5vdEFOdW1iZXIgPSBqaXQuYnJhbmNoSWZOb3ROdW1i
ZXIoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIGppdC5zY3JhdGNoUmVnaXN0ZXIoKSwgRG9Ob3RI
YXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgICAgIGF1dG8gaXNEb3VibGUgPSBqaXQuYnJhbmNo
SWZOb3RJbnQzMihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJz
KTsKICAgICAgICAgICAgIC8vIFdlJ3JlIGFuIGludDMyCi0gICAgICAgICAgICBqaXQuc2lnbkV4
dGVuZDMyVG9QdHIoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJldHVyblZhbHVl
R1BSKTsKLSAgICAgICAgICAgIGppdC5jb252ZXJ0SW50NjRUb0Zsb2F0KEdQUkluZm86OnJldHVy
blZhbHVlR1BSLCBkZXN0KTsKKyAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0Zsb2F0KEdQ
UkluZm86OnJldHVyblZhbHVlR1BSLCBkZXN0KTsKICAgICAgICAgICAgIGRvbmUuYXBwZW5kKGpp
dC5qdW1wKCkpOwogCiAgICAgICAgICAgICBpc0RvdWJsZS5saW5rKCZqaXQpOworI2lmIFVTRShK
U1ZBTFVFNjQpCiAgICAgICAgICAgICBqaXQudW5ib3hEb3VibGVXaXRob3V0QXNzZXJ0aW9ucyhH
UFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIyLCBkZXN0LCBE
b05vdEhhdmVUYWdSZWdpc3RlcnMpOworI2Vsc2UKKyAgICAgICAgICAgIGppdC51bmJveERvdWJs
ZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgZGVzdCk7CisjZW5kaWYKICAgICAgICAgICAgIGpp
dC5jb252ZXJ0RG91YmxlVG9GbG9hdChkZXN0LCBkZXN0KTsKICAgICAgICAgICAgIGRvbmUuYXBw
ZW5kKGppdC5qdW1wKCkpOwogCiAgICAgICAgICAgICBub3RBTnVtYmVyLmxpbmsoJmppdCk7Ci0g
ICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRv
RjMyKT4oR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICAgICAgaml0LnNldHVwQXJn
dW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0YzMik+KEpTUkluZm86OnJldHVyblZh
bHVlSlNSKTsKICAgICAgICAgICAgIGF1dG8gY2FsbCA9IGppdC5jYWxsKE9wZXJhdGlvblB0clRh
Zyk7CiAgICAgICAgICAgICBleGNlcHRpb25DaGVja3MuYXBwZW5kKGppdC5lbWl0SnVtcElmRXhj
ZXB0aW9uKHZtKSk7CiAgICAgICAgICAgICBqaXQubW92ZShGUFJJbmZvOjpyZXR1cm5WYWx1ZUZQ
UiAsIGRlc3QpOwpAQCAtMzUxLDIyICszODEsMjUgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJD
b2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0K
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2
NDogewotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBkb25lOwogICAgICAgICAg
ICAgRlBSUmVnIGRlc3QgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5mcHIoKTsKKyAgICAgICAg
ICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZG9uZTsKIAotICAgICAgICAgICAgYXV0byBub3RB
TnVtYmVyID0gaml0LmJyYW5jaElmTm90TnVtYmVyKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBE
b05vdEhhdmVUYWdSZWdpc3RlcnMpOwotICAgICAgICAgICAgYXV0byBpc0RvdWJsZSA9IGppdC5i
cmFuY2hJZk5vdEludDMyKEpTVmFsdWVSZWdzKEdQUkluZm86OnJldHVyblZhbHVlR1BSKSwgRG9O
b3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgICAgIGF1dG8gbm90QU51bWJlciA9IGppdC5i
cmFuY2hJZk5vdE51bWJlcihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgaml0LnNjcmF0Y2hSZWdp
c3RlcigpLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworICAgICAgICAgICAgYXV0byBpc0RvdWJs
ZSA9IGppdC5icmFuY2hJZk5vdEludDMyKEpTVmFsdWVSZWdzKEpTUkluZm86OnJldHVyblZhbHVl
SlNSKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKICAgICAgICAgICAgIC8vIFdlJ3JlIGFuIGlu
dDMyCi0gICAgICAgICAgICBqaXQuc2lnbkV4dGVuZDMyVG9QdHIoR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIsIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKLSAgICAgICAgICAgIGppdC5jb252ZXJ0
SW50NjRUb0RvdWJsZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CisgICAgICAgICAg
ICBqaXQuY29udmVydEludDMyVG9Eb3VibGUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3Qp
OwogICAgICAgICAgICAgZG9uZS5hcHBlbmQoaml0Lmp1bXAoKSk7CiAKICAgICAgICAgICAgIGlz
RG91YmxlLmxpbmsoJmppdCk7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgICAgIGppdC51
bmJveERvdWJsZVdpdGhvdXRBc3NlcnRpb25zKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUjIsIGRlc3QsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisjZWxz
ZQorICAgICAgICAgICAgaml0LnVuYm94RG91YmxlKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBk
ZXN0KTsKKyNlbmRpZgogICAgICAgICAgICAgZG9uZS5hcHBlbmQoaml0Lmp1bXAoKSk7CiAKICAg
ICAgICAgICAgIG5vdEFOdW1iZXIubGluaygmaml0KTsKLSAgICAgICAgICAgIGppdC5zZXR1cEFy
Z3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9GNjQpPihHUFJJbmZvOjpyZXR1cm5W
YWx1ZUdQUik7CisgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0
aW9uQ29udmVydFRvRjY0KT4oSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpOwogICAgICAgICAgICAg
YXV0byBjYWxsID0gaml0LmNhbGwoT3BlcmF0aW9uUHRyVGFnKTsKICAgICAgICAgICAgIGV4Y2Vw
dGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRKdW1wSWZFeGNlcHRpb24odm0pKTsKICAgICAgICAg
ICAgIGppdC5tb3ZlKEZQUkluZm86OnJldHVyblZhbHVlRlBSLCBkZXN0KTsKQEAgLTM4MCw3ICs0
MTMsNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwg
QmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICB9CiAgICAgICAgIGRlZmF1
bHQ6ICB7CiAgICAgICAgICAgICBpZiAoV2FzbTo6aXNGdW5jcmVmKHJldHVyblR5cGUpIHx8IFdh
c206OmlzRXh0ZXJucmVmKHJldHVyblR5cGUpKQotICAgICAgICAgICAgICAgIGppdC5tb3ZlKEdQ
UkluZm86OnJldHVyblZhbHVlR1BSLCB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5ncHIoKSk7Cisg
ICAgICAgICAgICAgICAgaml0Lm1vdmVWYWx1ZVJlZ3MoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1Is
IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmpzcigpKTsKICAgICAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgICAgICAvLyBGb3IgdGhlIEphdmFTY3JpcHQgZW1iZWRkaW5nLCBpbXBvcnRzIHdpdGgg
dGhlc2UgdHlwZXMgaW4gdGhlaXIgdHlwZSBkZWZpbml0aW9uIHJldHVybiBhcmUgYSBXZWJBc3Nl
bWJseS5Nb2R1bGUgdmFsaWRhdGlvbiBlcnJvci4KICAgICAgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzk0LDEyICs0MjcsMjkgQEAgRXhwZWN0ZWQ8TWFjcm9B
c3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9K
UyhWTSYgdm0KICAgICAgICAgICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZSh3YXNtQ29u
dGV4dEluc3RhbmNlR1BSKTsKICAgICAgICAgfQogCi0gICAgICAgIGppdC5zZXR1cEFyZ3VtZW50
czxkZWNsdHlwZShvcGVyYXRpb25JdGVyYXRlUmVzdWx0cyk+KHdhc21Db250ZXh0SW5zdGFuY2VH
UFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigmdHlwZURlZmluaXRpb24pLCBHUFJJbmZv
OjpyZXR1cm5WYWx1ZUdQUiwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgQ0Nh
bGxIZWxwZXJzOjpmcmFtZVBvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIGNvbnN0ZXhwciBHUFJS
ZWcgc2F2ZWRSZXN1bHRzR1BSID0gcHJlZmVycmVkQXJndW1lbnRHUFI8ZGVjbHR5cGUob3BlcmF0
aW9uSXRlcmF0ZVJlc3VsdHMpLCA0PigpOworICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6
OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJlc3VsdHNHUFIpOworICAgICAgICBpZiBjb25z
dGV4cHIgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICAgICAgaml0LnN1
YlB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRo
Q2FsbCksIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBzdGF0
aWNfYXNzZXJ0KG5vT3ZlcmxhcChzYXZlZFJlc3VsdHNHUFIsIEpTUkluZm86OnJldHVyblZhbHVl
SlNSKSk7CisgICAgICAgIEFTU0VSVCh3YXNtQ29udGV4dEluc3RhbmNlR1BSICE9IHNhdmVkUmVz
dWx0c0dQUik7CisgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25J
dGVyYXRlUmVzdWx0cyk+KHdhc21Db250ZXh0SW5zdGFuY2VHUFIsIENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbVB0cigmdHlwZURlZmluaXRpb24pLCBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgc2F2
ZWRSZXN1bHRzR1BSLCBDQ2FsbEhlbHBlcnM6OmZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKICAgICAg
ICAgaml0LmNhbGxPcGVyYXRpb24oRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRp
b25JdGVyYXRlUmVzdWx0cykpOworICAgICAgICBpZiBjb25zdGV4cHIgKG1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICAgICAgaml0LmFkZFB0cihDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIENDYWxsSGVscGVyczo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworCiAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQo
aml0LmVtaXRKdW1wSWZFeGNlcHRpb24odm0pKTsKIAotICAgICAgICBmb3IgKFJlZ2lzdGVyQXRP
ZmZzZXQgbG9jYXRpb24gOiBzYXZlZFJlc3VsdFJlZ2lzdGVycykKLSAgICAgICAgICAgIGppdC5s
b2FkNjRUb1JlZyhDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50
ZXJSZWdpc3RlciwgbG9jYXRpb24ub2Zmc2V0KCkpLCBsb2NhdGlvbi5yZWcoKSk7CisgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaWduYXR1cmUucmV0dXJuQ291bnQoKTsgKytpKSB7
CisgICAgICAgICAgICBWYWx1ZUxvY2F0aW9uIGxvYyA9IHdhc21DYWxsSW5mby5yZXN1bHRzW2ld
OworICAgICAgICAgICAgaWYgKGxvYy5pc0dQUigpKSB7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkK
KyAgICAgICAgICAgICAgICBBU1NFUlQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNy
KCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkgKyA0ID09IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZp
bmQobG9jLmpzcigpLnRhZ0dQUigpKS0+b2Zmc2V0KCkpOworI2VuZGlmCisgICAgICAgICAgICAg
ICAgaml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFj
a1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5
bG9hZEdQUigpKS0+b2Zmc2V0KCkpLCBsb2MuanNyKCkpOworICAgICAgICAgICAgfSBlbHNlIGlm
IChsb2MuaXNGUFIoKSkKKyAgICAgICAgICAgICAgICBqaXQubG9hZERvdWJsZShDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1
bHRSZWdpc3RlcnMuZmluZChsb2MuZnByKCkpLT5vZmZzZXQoKSksIGxvYy5mcHIoKSk7CisgICAg
ICAgIH0KICAgICB9CiAKICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAK
aW5kZXggYzRkMmI5NmMyOTMwNzE1NTFmOTZiOGZhNGRjZWFmNTA5NWEwOWI5NS4uNDBmZDM3MWIw
Mjc4MzJkNjg0NDIzODA3Mzc3MjQwMDE1YTZhY2E5OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKQEAgLTE1Nyw2ICsx
NTcsOSBAQCBwdHJkaWZmX3QgV2ViQXNzZW1ibHlGdW5jdGlvbjo6cHJldmlvdXNJbnN0YW5jZU9m
ZnNldCgpIGNvbnN0CiB7CiAgICAgcHRyZGlmZl90IHJlc3VsdCA9IGNhbGxlZVNhdmVzKCkubnVt
YmVyT2ZTZXRSZWdpc3RlcnMoKSAqIHNpemVvZihDUFVSZWdpc3Rlcik7CiAgICAgcmVzdWx0ID0g
LXJlc3VsdCAtIHNpemVvZihDUFVSZWdpc3Rlcik7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAg
ICBBU1NFUlQoIWNhbGxlZVNhdmVzKCkubnVtYmVyT2ZTZXRGUFJzKCkpOyAvLyBCZWNhdXNlIEZQ
UnMgYXJlIHdpZGVyIHRoYW4gc2l6ZW9mKENQVVJlZ2lzdGVyKQorI2VuZGlmCiAjaWYgQVNTRVJU
X0VOQUJMRUQKICAgICBwdHJkaWZmX3QgbWluT2Zmc2V0ID0gMTsKICAgICBmb3IgKGNvbnN0IFJl
Z2lzdGVyQXRPZmZzZXQmIHJlZ0F0T2Zmc2V0IDogdXNlZENhbGxlZVNhdmVSZWdpc3RlcnMoKSkg
ewpAQCAtMTg2LDE3ICsxODksMTUgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJU
YWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICBjb25z
dCBhdXRvJiBwaW5uZWRSZWdzID0gV2FzbTo6UGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKTsKICAg
ICBSZWdpc3RlckF0T2Zmc2V0TGlzdCByZWdpc3RlcnNUb1NwaWxsID0gdXNlZENhbGxlZVNhdmVS
ZWdpc3RlcnMoKTsKIAotICAgIGF1dG8mIG1vZHVsZUluZm9ybWF0aW9uID0gaW5zdGFuY2UoKS0+
aW5zdGFuY2UoKS5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpOwotCiAgICAgY29uc3QgV2Fz
bTo6V2FzbUNhbGxpbmdDb252ZW50aW9uJiB3YXNtQ0MgPSBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZl
bnRpb24oKTsKICAgICBXYXNtOjpDYWxsSW5mb3JtYXRpb24gd2FzbUNhbGxJbmZvID0gd2FzbUND
LmNhbGxJbmZvcm1hdGlvbkZvcih0eXBlRGVmaW5pdGlvbik7CiAgICAgV2FzbTo6Q2FsbEluZm9y
bWF0aW9uIGpzQ2FsbEluZm8gPSBXYXNtOjpqc0NhbGxpbmdDb252ZW50aW9uKCkuY2FsbEluZm9y
bWF0aW9uRm9yKHR5cGVEZWZpbml0aW9uLCBXYXNtOjpDYWxsUm9sZTo6Q2FsbGVlKTsKICAgICBS
ZWdpc3RlckF0T2Zmc2V0TGlzdCBzYXZlZFJlc3VsdFJlZ2lzdGVycyA9IHdhc21DYWxsSW5mby5j
b21wdXRlUmVzdWx0c09mZnNldExpc3QoKTsKIAotICAgIHVuc2lnbmVkIHRvdGFsRnJhbWVTaXpl
ID0gcmVnaXN0ZXJzVG9TcGlsbC5zaXplKCkgKiBzaXplb2YoQ1BVUmVnaXN0ZXIpOworICAgIHVu
c2lnbmVkIHRvdGFsRnJhbWVTaXplID0gcmVnaXN0ZXJzVG9TcGlsbC5zaXplT2ZBcmVhSW5CeXRl
cygpOwogICAgIHRvdGFsRnJhbWVTaXplICs9IHNpemVvZihDUFVSZWdpc3Rlcik7IC8vIFNsb3Qg
Zm9yIHRoZSBWTSdzIHByZXZpb3VzIHdhc20gaW5zdGFuY2UuCiAgICAgdG90YWxGcmFtZVNpemUg
Kz0gd2FzbUNhbGxJbmZvLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlczsKLSAgICB0
b3RhbEZyYW1lU2l6ZSArPSBzYXZlZFJlc3VsdFJlZ2lzdGVycy5zaXplKCkgKiBzaXplb2YoQ1BV
UmVnaXN0ZXIpOworICAgIHRvdGFsRnJhbWVTaXplICs9IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLnNp
emVPZkFyZWFJbkJ5dGVzKCk7CiAKICAgICAvLyBGSVhNRTogT3B0aW1pemUgV2FzbSBmdW5jdGlv
biBjYWxsIGV2ZW4gaWYgYXJndW1lbnRzIGluY2x1ZGUgSTY0LgogICAgIC8vIFRoaXMgcmVxdWly
ZXMgSTY0IGV4dHJhY3Rpb24gZnJvbSBCaWdJbnQuCkBAIC0yMTYsOSArMjE3LDE0IEBAIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0Nh
bGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgIGppdC5zdG9yZVB0cihyZWcsIENDYWxsSGVscGVy
czo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwgb2Zmc2V0KSk7CiAgICAgfQog
Ci0gICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5w
cm9sb2d1ZVNjcmF0Y2hHUFJzWzFdOwotICAgIGJvb2wgc3RhY2tMaW1pdEdQUklzQ2xvYmJlcmVk
ID0gZmFsc2U7CisgICAgSlNWYWx1ZVJlZ3Mgc2NyYXRjaEpTUiB7CisjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICAgICAgV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3Jh
dGNoR1BSc1syXSwKKyNlbmRpZgorICAgICAgICBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24o
KS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdCisgICAgfTsKICAgICBHUFJSZWcgc3RhY2tMaW1pdEdQ
UiA9IFdhc206Ondhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMF07
CisgICAgYm9vbCBzdGFja0xpbWl0R1BSSXNDbG9iYmVyZWQgPSBmYWxzZTsKICAgICBqaXQubG9h
ZFB0cih2bS5hZGRyZXNzT2ZTb2Z0U3RhY2tMaW1pdCgpLCBzdGFja0xpbWl0R1BSKTsKIAogICAg
IENDYWxsSGVscGVyczo6SnVtcExpc3Qgc2xvd1BhdGg7CkBAIC0yMzcsNyArMjQzLDcgQEAgTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246Ompz
Q2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAgICAgaml0LmVtaXRNYXRlcmlhbGl6ZVRhZ0NoZWNr
UmVnaXN0ZXJzKCk7CiAKICAgICAvLyBMb29wIGJhY2t3YXJkcyBzbyB3ZSBjYW4gdXNlIHRoZSBm
aXJzdCBmbG9hdGluZyBwb2ludCBhcmd1bWVudCBhcyBhIHNjcmF0Y2guCi0gICAgRlBSUmVnIHNj
cmF0Y2hGUFIgPSBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5mcHJBcmdzWzBdLmZwcigp
OworICAgIEZQUlJlZyBzY3JhdGNoRlBSID0gV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKCku
ZnByQXJnc1swXTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBzaWduYXR1cmUuYXJndW1lbnRDb3Vu
dCgpOyBpLS07KSB7CiAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBjYWxsZWVGcmFtZSA9
IENDYWxsSGVscGVyczo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0
ZXIsIDApOwogICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MganNQYXJhbShHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3RlciwganNDYWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbUZQKCkpOwpA
QCAtMjQ2LDEyICsyNTIsMjAgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+
IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAgICAgYXV0
byB0eXBlID0gc2lnbmF0dXJlLmFyZ3VtZW50VHlwZShpKTsKICAgICAgICAgc3dpdGNoICh0eXBl
LmtpbmQpIHsKICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6STMyOiB7Ci0gICAgICAgICAg
ICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOwotICAgICAgICAgICAgc2xvd1BhdGgu
YXBwZW5kKGppdC5icmFuY2hJZk5vdEludDMyKHNjcmF0Y2hHUFIpKTsKLSAgICAgICAgICAgIGlm
IChpc1N0YWNrKQotICAgICAgICAgICAgICAgIGppdC5zdG9yZTMyKHNjcmF0Y2hHUFIsIGNhbGxl
ZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkp
OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dv
cmQoc2NyYXRjaEdQUiwgd2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5ncHIoKSk7CisgICAgICAgICAg
ICBqaXQubG9hZFZhbHVlKGpzUGFyYW0sIHNjcmF0Y2hKU1IpOworICAgICAgICAgICAgc2xvd1Bh
dGguYXBwZW5kKGppdC5icmFuY2hJZk5vdEludDMyKHNjcmF0Y2hKU1IpKTsKKyAgICAgICAgICAg
IGlmIChpc1N0YWNrKSB7CisgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGFk
ZHIgeyBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0
RnJvbVNQKCkpIH07CisgICAgICAgICAgICAgICAgaml0LnN0b3JlMzIoc2NyYXRjaEpTUi5wYXls
b2FkR1BSKCksIGFkZHIud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSk7CisjaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW0zMigwKSwgYWRkci53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworI2VuZGlmCisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoc2Ny
YXRjaEpTUi5wYXlsb2FkR1BSKCksIHdhc21DYWxsSW5mby5wYXJhbXNbaV0uanNyKCkucGF5bG9h
ZEdQUigpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgIGppdC5tb3Zl
KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmpz
cigpLnRhZ0dQUigpKTsKKyNlbmRpZgorICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6UmVmOgpAQCAtMjYwLDI3
ICsyNzQsMjcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2Vt
Ymx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAgICAgY2FzZSBXYXNtOjpU
eXBlS2luZDo6RXh0ZXJucmVmOiB7CiAgICAgICAgICAgICBpZiAoIVdhc206OmlzRXh0ZXJucmVm
KHR5cGUpKSB7CiAgICAgICAgICAgICAgICAgLy8gRW5zdXJlIHdlIGhhdmUgYSBXQVNNIGV4cG9y
dGVkIGZ1bmN0aW9uLgotICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRj
aEdQUik7Ci0gICAgICAgICAgICAgICAgYXV0byBpc051bGwgPSBqaXQuYnJhbmNoSWZOdWxsKHNj
cmF0Y2hHUFIpOworICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQYXJhbSwgc2NyYXRj
aEpTUik7CisgICAgICAgICAgICAgICAgYXV0byBpc051bGwgPSBqaXQuYnJhbmNoSWZOdWxsKHNj
cmF0Y2hKU1IpOwogICAgICAgICAgICAgICAgIGlmICghdHlwZS5pc051bGxhYmxlKCkpCiAgICAg
ICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChpc051bGwpOwotICAgICAgICAgICAgICAg
IHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RDZWxsKHNjcmF0Y2hHUFIpKTsKKyAgICAg
ICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90Q2VsbChzY3JhdGNoSlNS
KSk7CiAKICAgICAgICAgICAgICAgICBzdGFja0xpbWl0R1BSSXNDbG9iYmVyZWQgPSB0cnVlOwot
ICAgICAgICAgICAgICAgIGppdC5lbWl0TG9hZFN0cnVjdHVyZSh2bSwgc2NyYXRjaEdQUiwgc2Ny
YXRjaEdQUik7Ci0gICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKHNjcmF0Y2hHUFIsIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBzY3JhdGNoR1BS
KTsKKyAgICAgICAgICAgICAgICBqaXQuZW1pdExvYWRTdHJ1Y3R1cmUodm0sIHNjcmF0Y2hKU1Iu
cGF5bG9hZEdQUigpLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICAgICAg
aml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigp
LCBTdHJ1Y3R1cmU6OmNsYXNzSW5mb09mZnNldCgpKSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkp
OwogCiAgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPFdlYkFzc2Vt
Ymx5RnVuY3Rpb24+Ojp2YWx1ZSwgIldlIGRvIG5vdCBjaGVjayBmb3Igc3VidHlwZXMgYmVsb3ci
KTsKICAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8V2ViQXNzZW1i
bHlXcmFwcGVyRnVuY3Rpb24+Ojp2YWx1ZSwgIldlIGRvIG5vdCBjaGVjayBmb3Igc3VidHlwZXMg
YmVsb3ciKTsKIAotICAgICAgICAgICAgICAgIGF1dG8gaXNXYXNtRnVuY3Rpb24gPSBqaXQuYnJh
bmNoUHRyKENDYWxsSGVscGVyczo6RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbVB0cihXZWJBc3NlbWJseUZ1bmN0aW9uOjppbmZvKCkpKTsKLSAgICAgICAgICAgICAg
ICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBz
Y3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoV2ViQXNzZW1ibHlXcmFwcGVy
RnVuY3Rpb246OmluZm8oKSkpKTsKKyAgICAgICAgICAgICAgICBhdXRvIGlzV2FzbUZ1bmN0aW9u
ID0gaml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6OkVxdWFsLCBzY3JhdGNoSlNSLnBheWxvYWRH
UFIoKSwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKFdlYkFzc2VtYmx5RnVuY3Rpb246Omlu
Zm8oKSkpOworICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoUHRyKEND
YWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW1QdHIoV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb246OmluZm8oKSkpKTsK
IAogICAgICAgICAgICAgICAgIGlzV2FzbUZ1bmN0aW9uLmxpbmsoJmppdCk7CiAgICAgICAgICAg
ICAgICAgaWYgKFdhc206OmlzUmVmV2l0aFR5cGVJbmRleCh0eXBlKSkgewotICAgICAgICAgICAg
ICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOwotICAgICAgICAgICAgICAg
ICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgV2ViQXNz
ZW1ibHlGdW5jdGlvbkJhc2U6Om9mZnNldE9mU2lnbmF0dXJlSW5kZXgoKSksIHNjcmF0Y2hHUFIp
OwotICAgICAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaFB0cihDQ2Fs
bEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1Q
dHIodHlwZS5pbmRleCkpKTsKKyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoanNQYXJh
bSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgICAgICAgICBqaXQubG9h
ZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIFdlYkFz
c2VtYmx5RnVuY3Rpb25CYXNlOjpvZmZzZXRPZlNpZ25hdHVyZUluZGV4KCkpLCBzY3JhdGNoSlNS
LnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQu
YnJhbmNoUHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigp
LCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIodHlwZS5pbmRleCkpKTsKICAgICAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgICAgICBpZiAodHlwZS5pc051bGxhYmxlKCkpCkBAIC0yODgs
MTUgKzMwMiwxNSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNz
ZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICBpZiAoaXNTdGFjaykgewotICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoanNQ
YXJhbSwgc2NyYXRjaEdQUik7CisgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShqc1BhcmFt
LCBzY3JhdGNoSlNSKTsKICAgICAgICAgICAgICAgICBpZiAoIXR5cGUuaXNOdWxsYWJsZSgpKQot
ICAgICAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTnVsbChzY3Jh
dGNoR1BSKSk7Ci0gICAgICAgICAgICAgICAgaml0LnN0b3JlNjQoc2NyYXRjaEdQUiwgY2FsbGVl
RnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSk7
CisgICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOdWxsKHNj
cmF0Y2hKU1IpKTsKKyAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNoSlNSLCBj
YWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQ
KCkpKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYXV0byBleHRlcm5H
UFIgPSB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmdwcigpOwotICAgICAgICAgICAgICAgIGppdC5s
b2FkNjQoanNQYXJhbSwgZXh0ZXJuR1BSKTsKKyAgICAgICAgICAgICAgICBhdXRvIGV4dGVybkpT
UiA9IHdhc21DYWxsSW5mby5wYXJhbXNbaV0uanNyKCk7CisgICAgICAgICAgICAgICAgaml0Lmxv
YWRWYWx1ZShqc1BhcmFtLCBleHRlcm5KU1IpOwogICAgICAgICAgICAgICAgIGlmICghdHlwZS5p
c051bGxhYmxlKCkpCi0gICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJh
bmNoSWZOdWxsKGV4dGVybkdQUikpOworICAgICAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBl
bmQoaml0LmJyYW5jaElmTnVsbChleHRlcm5KU1IpKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0zMDQsMzUgKzMxOCw0MSBAQCBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlw
b2ludFNsb3coKQogICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpGNjQ6IHsKICAgICAgICAg
ICAgIGlmICghaXNTdGFjaykKICAgICAgICAgICAgICAgICBzY3JhdGNoRlBSID0gd2FzbUNhbGxJ
bmZvLnBhcmFtc1tpXS5mcHIoKTsKLSAgICAgICAgICAgIGF1dG8gbW92ZVRvRGVzdGluYXRpb24g
PSBbJl0gKCkgewotICAgICAgICAgICAgICAgIGlmIChpc1N0YWNrKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGlmIChzaWduYXR1cmUuYXJndW1lbnRUeXBlKGkpLmlzRjMyKCkpCi0gICAgICAgICAg
ICAgICAgICAgICAgICBqaXQuc3RvcmVGbG9hdChzY3JhdGNoRlBSLCBjYWxsZWVGcmFtZS53aXRo
T2Zmc2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKLSAgICAgICAg
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlRG91Ymxl
KHNjcmF0Y2hGUFIsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBhcmFtc1tp
XS5vZmZzZXRGcm9tU1AoKSkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH07CiAK
LSAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAg
ICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKHNjcmF0Y2hHUFIpKTsKLSAg
ICAgICAgICAgIGF1dG8gaXNJbnQzMiA9IGppdC5icmFuY2hJZkludDMyKHNjcmF0Y2hHUFIpOwot
Ci0gICAgICAgICAgICBqaXQudW5ib3hEb3VibGUoc2NyYXRjaEdQUiwgc2NyYXRjaEdQUiwgc2Ny
YXRjaEZQUik7CisgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpzUGFyYW0sIHNjcmF0Y2hKU1Ip
OworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJy
YW5jaElmTm90TnVtYmVyKHNjcmF0Y2hKU1IsIEludmFsaWRHUFJSZWcpKTsKKyNlbGlmIFVTRShK
U1ZBTFVFMzJfNjQpCisgICAgICAgICAgICBzdGFja0xpbWl0R1BSSXNDbG9iYmVyZWQgPSB0cnVl
OworICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihzY3Jh
dGNoSlNSLCBzdGFja0xpbWl0R1BSKSk7CisjZW5kaWYKKyAgICAgICAgICAgIGF1dG8gaXNJbnQz
MiA9IGppdC5icmFuY2hJZkludDMyKHNjcmF0Y2hKU1IpOworI2lmIFVTRShKU1ZBTFVFNjQpCisg
ICAgICAgICAgICBqaXQudW5ib3hEb3VibGUoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHNjcmF0
Y2hKU1IucGF5bG9hZEdQUigpLCBzY3JhdGNoRlBSKTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQp
CisgICAgICAgICAgICBqaXQudW5ib3hEb3VibGUoc2NyYXRjaEpTUiwgc2NyYXRjaEZQUik7Cisj
ZW5kaWYKICAgICAgICAgICAgIGlmIChzaWduYXR1cmUuYXJndW1lbnRUeXBlKGkpLmlzRjMyKCkp
CiAgICAgICAgICAgICAgICAgaml0LmNvbnZlcnREb3VibGVUb0Zsb2F0KHNjcmF0Y2hGUFIsIHNj
cmF0Y2hGUFIpOwotICAgICAgICAgICAgbW92ZVRvRGVzdGluYXRpb24oKTsKICAgICAgICAgICAg
IGF1dG8gZG9uZSA9IGppdC5qdW1wKCk7CiAKICAgICAgICAgICAgIGlzSW50MzIubGluaygmaml0
KTsKICAgICAgICAgICAgIGlmIChzaWduYXR1cmUuYXJndW1lbnRUeXBlKGkpLmlzRjMyKCkpIHsK
LSAgICAgICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9GbG9hdChzY3JhdGNoR1BSLCBzY3Jh
dGNoRlBSKTsKLSAgICAgICAgICAgICAgICBtb3ZlVG9EZXN0aW5hdGlvbigpOworICAgICAgICAg
ICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0Zsb2F0KHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBz
Y3JhdGNoRlBSKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaml0LmNv
bnZlcnRJbnQzMlRvRG91YmxlKHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOwotICAgICAgICAgICAg
ICAgIG1vdmVUb0Rlc3RpbmF0aW9uKCk7CisgICAgICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQz
MlRvRG91YmxlKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBzY3JhdGNoRlBSKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGRvbmUubGluaygmaml0KTsKLQorICAgICAgICAgICAgaWYgKGlz
U3RhY2spIHsKKyAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgYWRkciB7IGNh
bGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1Ao
KSkgfTsKKyAgICAgICAgICAgICAgICBpZiAoc2lnbmF0dXJlLmFyZ3VtZW50VHlwZShpKS5pc0Yz
MigpKSB7CisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZUZsb2F0KHNjcmF0Y2hGUFIsIGFk
ZHIud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAg
ICAgICAgICAgICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
MCksIGFkZHIud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgorICAgICAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVEb3VibGUoc2NyYXRjaEZQUiwg
YWRkcik7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
ICAgICBkZWZhdWx0OgpAQCAtMzQzLDQyICszNjMsNDQgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
PEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93
KCkKICAgICAvLyBBdCB0aGlzIHBvaW50LCB3ZSdyZSBjb21taXR0ZWQgdG8gZG9pbmcgYSBmYXN0
IGNhbGwuCiAKICAgICBpZiAoV2FzbTo6Q29udGV4dDo6dXNlRmFzdFRMUygpKSAKLSAgICAgICAg
aml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHNjcmF0Y2hHUFIpOworICAgICAgICBqaXQubG9h
ZFdhc21Db250ZXh0SW5zdGFuY2Uoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOwogICAgIGVsc2UK
LSAgICAgICAgaml0LmxvYWRQdHIodm0ud2FzbUNvbnRleHQucG9pbnRlclRvSW5zdGFuY2UoKSwg
c2NyYXRjaEdQUik7CisgICAgICAgIGppdC5sb2FkUHRyKHZtLndhc21Db250ZXh0LnBvaW50ZXJU
b0luc3RhbmNlKCksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKICAgICBwdHJkaWZmX3QgcHJl
dmlvdXNJbnN0YW5jZU9mZnNldCA9IHRoaXMtPnByZXZpb3VzSW5zdGFuY2VPZmZzZXQoKTsKLSAg
ICBqaXQuc3RvcmVQdHIoc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86
OmNhbGxGcmFtZVJlZ2lzdGVyLCBwcmV2aW91c0luc3RhbmNlT2Zmc2V0KSk7CisgICAgaml0LnN0
b3JlUHRyKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BS
SW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHByZXZpb3VzSW5zdGFuY2VPZmZzZXQpKTsKIAotICAg
IGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigmaW5zdGFuY2UoKS0+aW5zdGFu
Y2UoKSksIHNjcmF0Y2hHUFIpOworICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bVB0cigmaW5zdGFuY2UoKS0+aW5zdGFuY2UoKSksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsK
ICAgICBpZiAoV2FzbTo6Q29udGV4dDo6dXNlRmFzdFRMUygpKSAKLSAgICAgICAgaml0LnN0b3Jl
V2FzbUNvbnRleHRJbnN0YW5jZShzY3JhdGNoR1BSKTsKKyAgICAgICAgaml0LnN0b3JlV2FzbUNv
bnRleHRJbnN0YW5jZShzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAgICAgZWxzZSB7Ci0gICAg
ICAgIGppdC5tb3ZlKHNjcmF0Y2hHUFIsIHBpbm5lZFJlZ3Mud2FzbUNvbnRleHRJbnN0YW5jZVBv
aW50ZXIpOwotICAgICAgICBqaXQuc3RvcmVQdHIoc2NyYXRjaEdQUiwgdm0ud2FzbUNvbnRleHQu
cG9pbnRlclRvSW5zdGFuY2UoKSk7CisgICAgICAgIGppdC5tb3ZlKHNjcmF0Y2hKU1IucGF5bG9h
ZEdQUigpLCBwaW5uZWRSZWdzLndhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyKTsKKyAgICAgICAg
aml0LnN0b3JlUHRyKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCB2bS53YXNtQ29udGV4dC5wb2lu
dGVyVG9JbnN0YW5jZSgpKTsKICAgICB9CiAgICAgaWYgKHN0YWNrTGltaXRHUFJJc0Nsb2JiZXJl
ZCkKICAgICAgICAgaml0LmxvYWRQdHIodm0uYWRkcmVzc09mU29mdFN0YWNrTGltaXQoKSwgc3Rh
Y2tMaW1pdEdQUik7Ci0gICAgaml0LnN0b3JlUHRyKHN0YWNrTGltaXRHUFIsIENDYWxsSGVscGVy
czo6QWRkcmVzcyhzY3JhdGNoR1BSLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRTdGFj
a0xpbWl0KCkpKTsKKyAgICBqaXQuc3RvcmVQdHIoc3RhY2tMaW1pdEdQUiwgQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0
T2ZDYWNoZWRTdGFja0xpbWl0KCkpKTsKIAotICAgIGlmICghIW1vZHVsZUluZm9ybWF0aW9uLm1l
bW9yeSkgeworI2lmICFDUFUoQVJNKSAvLyBBUk0gaGFzIG5vIHBpbm5lZCByZWdpc3RlcnMgZm9y
IFdhc20gTWVtb3J5LCBzbyBubyBuZWVkIHRvIHNldCB0aGVtIHVwCisgICAgaWYgKCEhaW5zdGFu
Y2UoKS0+aW5zdGFuY2UoKS5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpLm1lbW9yeSkgewog
ICAgICAgICBHUFJSZWcgYmFzZU1lbW9yeSA9IHBpbm5lZFJlZ3MuYmFzZU1lbW9yeVBvaW50ZXI7
CiAgICAgICAgIEdQUlJlZyBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUgPSBJbnZhbGlkR1BS
UmVnOwogICAgICAgICBhdXRvIG1vZGUgPSBpbnN0YW5jZSgpLT5tZW1vcnlNb2RlKCk7CiAKICAg
ICAgICAgaWYgKGlzQVJNNjRFKCkpIHsKLSAgICAgICAgICAgIGlmIChtb2RlICE9IFdhc206Ok1l
bW9yeU1vZGU6OlNpZ25hbGluZykKKyAgICAgICAgICAgIGlmIChtb2RlID09IFdhc206Ok1lbW9y
eU1vZGU6OkJvdW5kc0NoZWNraW5nKQogICAgICAgICAgICAgICAgIHNjcmF0Y2hPckJvdW5kc0No
ZWNraW5nU2l6ZSA9IHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXI7CiAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgc2NyYXRjaE9yQm91bmRzQ2hlY2tpbmdTaXpl
ID0gc3RhY2tMaW1pdEdQUjsKLSAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6
QWRkcmVzcyhzY3JhdGNoR1BSLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHND
aGVja2luZ1NpemUoKSksIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSk7CisgICAgICAgICAg
ICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BS
KCksIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSgpKSwg
c2NyYXRjaE9yQm91bmRzQ2hlY2tpbmdTaXplKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIGlmIChtb2RlICE9IFdhc206Ok1lbW9yeU1vZGU6OlNpZ25hbGluZykKLSAgICAgICAgICAg
ICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgV2FzbTo6
SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKCkpLCBwaW5uZWRSZWdz
LmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGlmIChtb2RlID09IFdh
c206Ok1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nKQorICAgICAgICAgICAgICAgIGppdC5sb2Fk
UHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgV2FzbTo6
SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKCkpLCBwaW5uZWRSZWdz
LmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyKTsKICAgICAgICAgfQogCi0gICAgICAgIGppdC5s
b2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBXYXNtOjpJbnN0YW5jZTo6
b2Zmc2V0T2ZDYWNoZWRNZW1vcnkoKSksIGJhc2VNZW1vcnkpOwotICAgICAgICBqaXQuY2FnZUNv
bmRpdGlvbmFsbHlBbmRVbnRhZyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5LCBzY3Jh
dGNoT3JCb3VuZHNDaGVja2luZ1NpemUsIHNjcmF0Y2hHUFIpOworICAgICAgICBqaXQubG9hZFB0
cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIFdhc206Oklu
c3RhbmNlOjpvZmZzZXRPZkNhY2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7CisgICAgICAgIGpp
dC5jYWdlQ29uZGl0aW9uYWxseUFuZFVudGFnKEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJhc2VNZW1v
cnksIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkp
OwogICAgIH0KKyNlbmRpZgogCiAgICAgLy8gV2UgdXNlIHRoaXMgY2FsbGVlIHRvIGluZGljYXRl
IGhvdyB0byB1bndpbmQgcGFzdCB0aGVzZSB0eXBlcyBvZiBmcmFtZXM6CiAgICAgLy8gMS4gV2Ug
bmVlZCB0byBrbm93IHdoZXJlIHRvIGdldCBjYWxsZWUgc2F2ZXMuCkBAIC0zOTAsOCArNDEyLDgg
QEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rp
b246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAvLyBGSVhNRTogQ3VycmVudGx5IHdlIGp1
c3QgZG8gYW4gaW5kaXJlY3QganVtcC4gQnV0IHdlIHNob3VsZCB0ZWFjaCB0aGUgTW9kdWxlCiAg
ICAgLy8gaG93IHRvIHJlcGF0Y2ggdXM6CiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5NjU3MAotICAgIGppdC5sb2FkUHRyKGVudHJ5cG9pbnRMb2FkTG9j
YXRpb24oKSwgc2NyYXRjaEdQUik7Ci0gICAgaml0LmNhbGwoc2NyYXRjaEdQUiwgV2FzbUVudHJ5
UHRyVGFnKTsKKyAgICBqaXQubG9hZFB0cihlbnRyeXBvaW50TG9hZExvY2F0aW9uKCksIHNjcmF0
Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICBqaXQuY2FsbChzY3JhdGNoSlNSLnBheWxvYWRHUFIo
KSwgV2FzbUVudHJ5UHRyVGFnKTsKIAogICAgIG1hcnNoYWxsSlNSZXN1bHQoaml0LCB0eXBlRGVm
aW5pdGlvbiwgd2FzbUNhbGxJbmZvLCBzYXZlZFJlc3VsdFJlZ2lzdGVycyk7CiAKQEAgLTQyMSw3
ICs0NDMsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1i
bHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgIGppdC5tb3ZlKENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbVB0cih0aGlzKSwgR1BSSW5mbzo6cmVnVDApOwogICAgIGppdC5lbWl0
RnVuY3Rpb25FcGlsb2d1ZSgpOwogI2lmIENQVShBUk02NEUpCi0gICAgaml0LnVudGFnUmV0dXJu
QWRkcmVzcyhzY3JhdGNoR1BSKTsKKyAgICBqaXQudW50YWdSZXR1cm5BZGRyZXNzKHNjcmF0Y2hK
U1IucGF5bG9hZEdQUigpKTsKICNlbmRpZgogICAgIGF1dG8ganVtcFRvSG9zdENhbGxUaHVuayA9
IGppdC5qdW1wKCk7CiAKQEAgLTQyOSw3ICs0NTEsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8
SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3co
KQogICAgIGlmIChVTkxJS0VMWShsaW5rQnVmZmVyLmRpZEZhaWxUb0FsbG9jYXRlKCkpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGxpbmtCdWZmZXIubGluayhqdW1wVG9Ib3N0Q2Fs
bFRodW5rLCBDb2RlTG9jYXRpb25MYWJlbDxKU0VudHJ5UHRyVGFnPihleGVjdXRhYmxlKCktPmVu
dHJ5cG9pbnRGb3IoQ29kZUZvckNhbGwsIE11c3RDaGVja0FyaXR5KS5leGVjdXRhYmxlQWRkcmVz
cygpKSk7CisgICAgbGlua0J1ZmZlci5saW5rKGp1bXBUb0hvc3RDYWxsVGh1bmssIENvZGVMb2Nh
dGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+KGV4ZWN1dGFibGUoKS0+ZW50cnlwb2ludEZvcihDb2Rl
Rm9yQ2FsbCwgTXVzdENoZWNrQXJpdHkpKSk7CiAgICAgbV9qc0NhbGxFbnRyeXBvaW50ID0gRklO
QUxJWkVfV0FTTV9DT0RFKGxpbmtCdWZmZXIsIFdhc21FbnRyeVB0clRhZywgIkpTLT5XYXNtIElD
Iik7CiAgICAgcmV0dXJuIG1fanNDYWxsRW50cnlwb2ludC5jb2RlKCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbENvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFs
Q29uc3RydWN0b3IuY3BwCmluZGV4IGEyMjFiMmVjYjcxMzhjOWFmYWYxZTBiNDBmOGYzMDFiMjA4
OTNkZDUuLmNjN2NiZTNlNDc4OWI2MzFiMDQ1OWRjY2QxZGFkN2ZmMTE1NTA4OTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3Ry
dWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
R2xvYmFsQ29uc3RydWN0b3IuY3BwCkBAIC0xNTgsNyArMTU4LDcgQEAgSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlHbG9iYWwsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2IKICAgICBSZWY8V2FzbTo6R2xvYmFsPiB3YXNtR2xvYmFsID0gV2FzbTo6R2xvYmFs
OjpjcmVhdGUodHlwZSwgbXV0YWJpbGl0eSwgaW5pdGlhbFZhbHVlKTsKICAgICBKU1dlYkFzc2Vt
Ymx5R2xvYmFsKiBqc1dlYkFzc2VtYmx5R2xvYmFsID0gSlNXZWJBc3NlbWJseUdsb2JhbDo6dHJ5
Q3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIHdlYkFzc2VtYmx5R2xvYmFsU3RydWN0dXJlLCBXVEZN
b3ZlKHdhc21HbG9iYWwpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsg
fSk7Ci0gICAgZW5zdXJlU3RpbGxBbGl2ZUhlcmUoYml0d2lzZV9jYXN0PHZvaWQqPihpbml0aWFs
VmFsdWUpKTsgLy8gRW5zdXJlIHRoaXMgaXMga2VwdCBhbGl2ZSB3aGlsZSBjcmVhdGluZyBKU1dl
YkFzc2VtYmx5R2xvYmFsLgorICAgIGVuc3VyZVN0aWxsQWxpdmVIZXJlKGluaXRpYWxWYWx1ZSk7
IC8vIEVuc3VyZSB0aGlzIGlzIGtlcHQgYWxpdmUgd2hpbGUgY3JlYXRpbmcgSlNXZWJBc3NlbWJs
eUdsb2JhbC4KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzV2ViQXNzZW1ibHlHbG9iYWwp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseU1vZHVsZVJlY29yZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseU1vZHVsZVJlY29yZC5jcHAKaW5kZXggYmM5Y2IwNjhkOGEzNTc0ZjA2ZjExMzM1NTRj
ZWVlZTcyYjAzZmI1NC4uOTdjM2VjOTIzOWQ1YjQ1ODk5OTE5MjVjYjc5MTgwNmU4YmJkYWM2MiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1
bGVSZWNvcmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5TW9kdWxlUmVjb3JkLmNwcApAQCAtNTU0LDcgKzU1NCw3IEBAIHZvaWQgV2ViQXNzZW1ibHlN
b2R1bGVSZWNvcmQ6OmluaXRpYWxpemVFeHBvcnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCiAgICAgICAgICAgICAgICAgSlNXZWJBc3NlbWJseUdsb2JhbCogZ2xvYmFsVmFsdWUgPSBK
U1dlYkFzc2VtYmx5R2xvYmFsOjp0cnlDcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2Jq
ZWN0LT53ZWJBc3NlbWJseUdsb2JhbFN0cnVjdHVyZSgpLCBXVEZNb3ZlKGdsb2JhbFJlZikpOwog
ICAgICAgICAgICAgICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7CiAgICAgICAgICAgICAg
ICAgbV9pbnN0YW5jZS0+bGlua0dsb2JhbCh2bSwgZ2xvYmFsSW5kZXgsIGdsb2JhbFZhbHVlKTsK
LSAgICAgICAgICAgICAgICBlbnN1cmVTdGlsbEFsaXZlSGVyZShiaXR3aXNlX2Nhc3Q8dm9pZCo+
KGluaXRpYWxCaXRzKSk7IC8vIEVuc3VyZSB0aGlzIGlzIGtlcHQgYWxpdmUgd2hpbGUgY3JlYXRp
bmcgSlNXZWJBc3NlbWJseUdsb2JhbC4KKyAgICAgICAgICAgICAgICBlbnN1cmVTdGlsbEFsaXZl
SGVyZShpbml0aWFsQml0cyk7IC8vIEVuc3VyZSB0aGlzIGlzIGtlcHQgYWxpdmUgd2hpbGUgY3Jl
YXRpbmcgSlNXZWJBc3NlbWJseUdsb2JhbC4KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtRW5hYmxlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCmluZGV4IGEyZTAz
ZjgxMzM2OWRhOGQwMWRiMmJmMTE3NmQzZmFkODI3YTUxYTcuLmE1NjQzMjEzNDhkZmI1OTMzOWYx
OTEzOTRiOWM1NGU2YjI0MzNkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
RW5hYmxlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaApAQCAtNTg5LDEy
ICs1ODksMTIgQEAKICNlbmRpZgogCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLS8qIERpc2FibGUg
V2ViQXNzZW1ibHkgb24gYWxsIDMyYml0IHBsYXRmb3Jtcy4gSXRzIExMSW50IHRpZXIgY291bGQK
LSAqIHdvcmsgb24gdGhlbSwgYnV0IHN0aWxsIG5lZWRzIHNvbWUgZmluYWwgdG91Y2hlcy4gKi8K
KyNpZiAhQ1BVKEFSTSkKICN1bmRlZiBFTkFCTEVfV0VCQVNTRU1CTFkKICNkZWZpbmUgRU5BQkxF
X1dFQkFTU0VNQkxZIDAKICN1bmRlZiBFTkFCTEVfV0VCQVNTRU1CTFlfQjNKSVQKICNkZWZpbmUg
RU5BQkxFX1dFQkFTU0VNQkxZX0IzSklUIDAKKyNlbmRpZgogI2lmIChDUFUoQVJNX1RIVU1CMikg
fHwgQ1BVKE1JUFMpKSAmJiBPUyhMSU5VWCkKIC8qIE9uIEFSTXY3IGFuZCBNSVBTIG9uIExpbnV4
IHRoZSBKSVQgaXMgZW5hYmxlZCB1bmxlc3MgZXhwbGljaXRseSBkaXNhYmxlZC4gKi8KICNpZiAh
ZGVmaW5lZChFTkFCTEVfSklUKQpAQCAtNzEyLDcgKzcxMiw3IEBACiAjZGVmaW5lIEVOQUJMRV9T
QU1QTElOR19QUk9GSUxFUiAxCiAjZW5kaWYKIAotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkgJiYg
SEFWRShNQUNISU5FX0NPTlRFWFQpCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBIQVZFKE1B
Q0hJTkVfQ09OVEVYVCkgJiYgQ1BVKEFERFJFU1M2NCkKICNkZWZpbmUgRU5BQkxFX1dFQkFTU0VN
QkxZX1NJR05BTElOR19NRU1PUlkgMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4MjcyYzFhZGE2YWU0ZTk5ZTRmODRjODBjYjU2
NGU3MmMwMTIzMjdiLi4yZTU3MzViYTBjMTZjMmFkOTg2MmU5MjU1OTIzYTQ2NmI3OGEyMzk5IDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMjItMDUtMDkgIEdlemEgTG9yZSAgPGdsb3JlQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgW0pTQ10gRW5hYmxlIFdhc21MTEludCBvbiBBUk12NworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMjYwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRl
c3RzOiBhbGxvdyB0byBydW4gdGhlIHdhc20gdGVzdHMgb24KKyAgICAgICAgYXJtdjcgZXZlbiB3
aXRob3V0IGppdCBzdXBwb3J0IChmb3Igbm93KS4KKwogMjAyMi0wNS0wOCAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgcmVzb2x2aW5nIHN0eWxlIGZv
ciBlbGVtZW50cyB0aGF0IG9ubHkgaW5oZXJpdCBjaGFuZ2VzIGZyb20gcGFyZW50CmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9y
dW4tanNjLXN0cmVzcy10ZXN0cwppbmRleCAzNDMyMjliMTkxZjRjZjc3M2VjYjdjNTM3NTZmNjFi
NmQ1MjA3YjNiLi4zNjU5OGRjNmRkNGJiMzc2ZjVjYTRjYjIwMWE4YzI0MGRlYjViN2JmIDEwMDc1
NQotLS0gYS9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCisrKyBiL1Rvb2xzL1Nj
cmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKQEAgLTU4NSw2ICs1ODUsOCBAQCBlbmQKICRob3N0
T1MgPSBkZXRlcm1pbmVPUyB1bmxlc3MgJGhvc3RPUwogJGFyY2hpdGVjdHVyZSA9IGRldGVybWlu
ZUFyY2hpdGVjdHVyZSB1bmxlc3MgJGFyY2hpdGVjdHVyZQogJGlzRlRMUGxhdGZvcm0gPSAhKCRh
cmNoaXRlY3R1cmUgPT0gIng4NiIgfHwgJGFyY2hpdGVjdHVyZSA9PSAiYXJtIiB8fCAkYXJjaGl0
ZWN0dXJlID09ICJtaXBzIiB8fCAkYXJjaGl0ZWN0dXJlID09ICJyaXNjdjY0IiB8fCAkaG9zdE9T
ID09ICJ3aW5kb3dzIiB8fCAkaG9zdE9TID09ICJwbGF5c3RhdGlvbiIpCisjIFNwZWNpYWwgY2Fz
ZSBhcm12Nywgd2Ugd2FudCB0byBydW4gdGhlIHdhc20gdGVzdHMgdGVtcG9yYXJpbHkgd2l0aG91
dCBCMy9BaXIgc3VwcG9ydAorJGlzV2FzbVBsYXRmb3JtID0gJGlzRlRMUGxhdGZvcm0gfHwgJGFy
Y2hpdGVjdHVyZSA9PSAiYXJtIgogCiBpZiAkYXJjaGl0ZWN0dXJlID09ICJ4ODYiCiAgICAgIyBU
aGUgSklUIGlzIHRlbXBvcmFyaWx5IGRpc2FibGVkIG9uIHRoaXMgcGxhdGZvcm0gc2luY2UKQEAg
LTE3MzAsNyArMTczMiw3IEBAIGVuZAogCiBkZWYgcnVuV2ViQXNzZW1ibHkKICAgICByZXR1cm4g
aWYgISRqaXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRMUGxhdGZvcm0KKyAgICByZXR1cm4g
aWYgISRpc1dhc21QbGF0Zm9ybQogICAgIHJ1bigiZGVmYXVsdC13YXNtIiwgIi1tIiwgKkZUTF9P
UFRJT05TKQogICAgIGlmICRtb2RlICE9ICJxdWljayIKICAgICAgICAgcnVuKCJ3YXNtLW5vLWNq
aXQteWVzLXRscy1jb250ZXh0IiwgIi1tIiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PXRy
dWUiLCAqKEZUTF9PUFRJT05TICsgTk9fQ0pJVF9PUFRJT05TKSkKQEAgLTE3MzgsMTUgKzE3NDAs
MTcgQEAgZGVmIHJ1bldlYkFzc2VtYmx5CiAgICAgICAgIHJ1bigid2FzbS1lYWdlci1qZXR0aXNv
biIsICItbSIsICItLWZvcmNlQ29kZUJsb2NrVG9KZXR0aXNvbkR1ZVRvT2xkQWdlPXRydWUiLCAi
LS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAiLS12ZXJp
ZnlHQz10cnVlIiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tbm8tdGxzLWNvbnRl
eHQiLCAiLW0iLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9ZmFsc2UiLCAqRlRMX09QVElP
TlMpCiAgICAgICAgIHJ1bigid2FzbS1zbG93LW1lbW9yeSIsICItbSIsICItLXVzZVdlYkFzc2Vt
Ymx5RmFzdE1lbW9yeT1mYWxzZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVuKCJ3YXNtLWIz
IiwgIi1tIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2Ui
LCAqRlRMX09QVElPTlMpCi0gICAgICAgIHJ1bigid2FzbS1haXIiLCAiLW0iLCAiLS11c2VXYXNt
TExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9u
PXRydWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1jb2xsZWN0LWNvbnRpbnVv
dXNseSIsICItbSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRy
dWUiLCAqRlRMX09QVElPTlMpIGlmIHNob3VsZENvbGxlY3RDb250aW51b3VzbHk/CisgICAgICAg
IGlmICRpc0ZUTFBsYXRmb3JtCisgICAgICAgICAgICBydW4oIndhc20tYjMiLCAiLW0iLCAiLS11
c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICpGVExfT1BUSU9O
UykKKyAgICAgICAgICAgIHJ1bigid2FzbS1haXIiLCAiLW0iLCAiLS11c2VXYXNtTExJbnQ9ZmFs
c2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAq
RlRMX09QVElPTlMpCisgICAgICAgIGVuZAogICAgIGVuZAogZW5kCiAKIGRlZiBydW5XZWJBc3Nl
bWJseUpldFN0cmVhbTIKICAgICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVybiBpZiAh
JGlzRlRMUGxhdGZvcm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQogCiAgICAgaWYg
JG1lbW9yeUxpbWl0ZWQKICAgICAgICAgc2tpcApAQCAtMTc2NSwxNSArMTc2OSwxNyBAQCBkZWYg
cnVuV2ViQXNzZW1ibHlKZXRTdHJlYW0yCiAgICAgICAgIHJ1bigid2FzbS1lYWdlci1qZXR0aXNv
biIsICItLWZvcmNlQ29kZUJsb2NrVG9KZXR0aXNvbkR1ZVRvT2xkQWdlPXRydWUiLCAiLS12ZXJp
ZnlHQz10cnVlIiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tbm8tdGxzLWNvbnRl
eHQiLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9ZmFsc2UiLCAqRlRMX09QVElPTlMpCiAg
ICAgICAgIHJ1bigid2FzbS1zbG93LW1lbW9yeSIsICItLXVzZVdlYkFzc2VtYmx5RmFzdE1lbW9y
eT1mYWxzZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVuKCJ3YXNtLWIzIiwgIi0tdXNlV2Fz
bUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqRlRMX09QVElPTlMpCi0g
ICAgICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5k
b21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqRlRMX09QVElPTlMpCiAg
ICAgICAgIHJ1bigid2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNseSIsICItLWNvbGxlY3RDb250aW51
b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqRlRMX09QVElPTlMpIGlmIHNob3VsZENv
bGxlY3RDb250aW51b3VzbHk/CisgICAgICAgIGlmICRGVExQbGF0Zm9ybQorICAgICAgICAgICAg
cnVuKCJ3YXNtLWIzIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9
ZmFsc2UiLCAqRlRMX09QVElPTlMpCisgICAgICAgICAgICBydW4oIndhc20tYWlyIiwgIi0tdXNl
V2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2Nh
dGlvbj10cnVlIiwgKkZUTF9PUFRJT05TKQorICAgICAgICBlbmQKICAgICBlbmQKIGVuZAogCiBk
ZWYgcnVuV2ViQXNzZW1ibHlTdWl0ZSgqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQogICAg
IHJldHVybiBpZiAhJGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAg
IHJldHVybiBpZiAhJGlzV2FzbVBsYXRmb3JtCiAgICAgbW9kdWxlcyA9IERpcltXQVNNVEVTVFNf
UEFUSCArICIqLmpzIl0ubWFwIHsgfGZ8IEZpbGUuYmFzZW5hbWUoZikgfQogICAgIHByZXBhcmVF
eHRyYUFic29sdXRlRmlsZXMoV0FTTVRFU1RTX1BBVEgsIFsid2FzbS5qc29uIl0pCiAgICAgcHJl
cGFyZUV4dHJhUmVsYXRpdmVGaWxlcyhtb2R1bGVzLm1hcCB7IHxmfCAiLi4vIiArIGYgfSwgJGNv
bGxlY3Rpb24pCkBAIC0xNzg5LDkgKzE3OTUsMTEgQEAgZGVmIHJ1bldlYkFzc2VtYmx5U3VpdGUo
Km9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKICAgICAgICAgcnVuKCJ3YXNtLWVhZ2VyLWpl
dHRpc29uIiwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICIt
LXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICItLXZlcmlm
eUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkK
ICAgICAgICAgcnVuKCJ3YXNtLW5vLXRscy1jb250ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21D
b250ZXh0PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9u
cykpCiAgICAgICAgIHJ1bigid2FzbS1zbG93LW1lbW9yeSIsICItLXVzZVdlYkFzc2VtYmx5RmFz
dE1lbW9yeT1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlv
bnMpKQotICAgICAgICBydW4oIndhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13
YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZp
Y09wdGlvbnMpKQotICAgICAgICBydW4oIndhc20tYWlyIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNl
IiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgKihG
VExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCiAgICAgICAgIHJ1bigi
d2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNseSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIs
ICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNP
cHRpb25zKSkgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8KKyAgICAgICAgaWYgJGlzRlRM
UGxhdGZvcm0KKyAgICAgICAgICAgIHJ1bigid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxz
ZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVz
dFNwZWNpZmljT3B0aW9ucykpCisgICAgICAgICAgICBydW4oIndhc20tYWlyIiwgIi0tdXNlV2Fz
bUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlv
bj10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCisg
ICAgICAgIGVuZAogICAgIGVuZAogZW5kCiAKQEAgLTE4MDcsNyArMTgxNSw5IEBAIGVuZAogZGVm
IHJ1bldlYkFzc2VtYmx5V2l0aEhhcm5lc3MoKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykK
ICAgICByYWlzZSB1bmxlc3MgJGJlbmNobWFyay50b19zID1+IC9oYXJuZXNzXC5tP2pzLwogICAg
IHJldHVybiBpZiAhJGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAg
IHJldHVybiBpZiAhJGlzV2FzbVBsYXRmb3JtCisgICAgIyBTa2lwIHRoaXMgY29tcGxldGVseSBv
biBhcm12NyBmb3Igbm93LCBzaW5jZSBtb3N0IG9mIHRoZSB0ZXN0cyBhcmUgcmVsYXRlZCB0byBP
U1IgYW5kIGl0J3MgYSBiaXQgaGFpcnkgdG8gc2tpcCB0aGVtIG1hbnVhbGx5CisgICAgcmV0dXJu
IGlmICRhcmNoaXRlY3R1cmUgPT0gImFybSIKIAogICAgIHdhc21GaWxlcyA9IGFsbFdhc21GaWxl
cygkY29sbGVjdGlvbikKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZpbGVzKHdhc21GaWxlcy5t
YXAgeyB8ZnwgZi5iYXNlbmFtZSB9LCAkY29sbGVjdGlvbikKQEAgLTE4MTksOSArMTgyOSwxMSBA
QCBkZWYgcnVuV2ViQXNzZW1ibHlXaXRoSGFybmVzcygqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRp
b25zKQogICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1lYWdlci1qZXR0aXNvbiIsICItLWZv
cmNlQ29kZUJsb2NrVG9KZXR0aXNvbkR1ZVRvT2xkQWdlPXRydWUiLCAiLS11c2VSYW5kb21pemlu
Z0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKihG
VExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCiAgICAgICAgIHJ1bkhh
cm5lc3NUZXN0KCJ3YXNtLW5vLXRscy1jb250ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250
ZXh0PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykp
CiAgICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLXNsb3ctbWVtb3J5IiwgIi0tdXNlV2ViQXNz
ZW1ibHlGYXN0TWVtb3J5PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNp
ZmljT3B0aW9ucykpCi0gICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLWIzIiwgIi0tdXNlV2Fz
bUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsg
b3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKLSAgICAgICAgcnVuSGFybmVzc1Rlc3QoIndh
c20tbm8tYWlyIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVj
dXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVz
dFNwZWNpZmljT3B0aW9ucykpCiAgICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLWNvbGxlY3Qt
Y29udGludW91c2x5IiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9
dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKSBpZiBz
aG91bGRDb2xsZWN0Q29udGludW91c2x5PworICAgICAgICBpZiAkaXNGVExQbGF0Zm9ybQorICAg
ICAgICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2Ui
LCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RT
cGVjaWZpY09wdGlvbnMpKQorICAgICAgICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tbm8tYWly
IiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNs
YW5kQWxsb2NhdGlvbj10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmlj
T3B0aW9ucykpCisgICAgICAgIGVuZAogICAgIGVuZAogZW5kCiAKQEAgLTE4MzEsNyArMTg0Myw3
IEBAIGRlZiBydW5XZWJBc3NlbWJseUVtc2NyaXB0ZW4obW9kZSkKICAgICAgICAgcmV0dXJuCiAg
ICAgZW5kCiAgICAgcmV0dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBs
YXRmb3JtCisgICAgcmV0dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KICAgICB3YXNtID0gJGJlbmNo
bWFyay50b19zLnN1YiEgJy5qcycsICcud2FzbScKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZp
bGVzKFtQYXRobmFtZSgnLi4nKSArIHdhc21dLCAkY29sbGVjdGlvbikKICAgICBydW4oImRlZmF1
bHQtd2FzbSIsICpGVExfT1BUSU9OUykKQEAgLTE4MzksOSArMTg1MSwxMSBAQCBkZWYgcnVuV2Vi
QXNzZW1ibHlFbXNjcmlwdGVuKG1vZGUpCiAgICAgICAgIHJ1bigid2FzbS1uby1jaml0LXllcy10
bHMtY29udGV4dCIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD10cnVlIiwgKihGVExfT1BU
SU9OUyArIE5PX0NKSVRfT1BUSU9OUykpCiAgICAgICAgIHJ1bigid2FzbS1lYWdlci1qZXR0aXNv
biIsICItLWZvcmNlQ29kZUJsb2NrVG9KZXR0aXNvbkR1ZVRvT2xkQWdlPXRydWUiLCAiLS11c2VS
YW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAiLS12ZXJpZnlHQz10
cnVlIiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tbm8tdGxzLWNvbnRleHQiLCAi
LS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9ZmFsc2UiLCAqRlRMX09QVElPTlMpCi0gICAgICAg
IHJ1bigid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWly
PWZhbHNlIiwgKkZUTF9PUFRJT05TKQotICAgICAgICBydW4oIndhc20tYWlyIiwgIi0tdXNlV2Fz
bUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlv
bj10cnVlIiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tY29sbGVjdC1jb250aW51
b3VzbHkiLCAiLS1jb2xsZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwg
KkZUTF9PUFRJT05TKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5PworICAgICAgICBpZiAk
aXNGVExQbGF0Zm9ybQorICAgICAgICAgICAgcnVuKCJ3YXNtLWIzIiwgIi0tdXNlV2FzbUxMSW50
PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqRlRMX09QVElPTlMpCisgICAgICAg
ICAgICBydW4oIndhc20tYWlyIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9t
aXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgKkZUTF9PUFRJT05TKQorICAg
ICAgICBlbmQKICAgICBlbmQKIGVuZAogCkBAIC0xODUxLDcgKzE4NjUsNyBAQCBkZWYgcnVuV2Vi
QXNzZW1ibHlTcGVjVGVzdEJhc2UobW9kZSwgc3BlY0hhcm5lc3NQYXRoLCAqb3B0aW9uYWxUZXN0
U3BlY2lmaWNPcHRpbwogICAgICAgICByZXR1cm4KICAgICBlbmQKICAgICByZXR1cm4gaWYgISRq
aXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRMUGxhdGZvcm0KKyAgICByZXR1cm4gaWYgISRp
c1dhc21QbGF0Zm9ybQogICAgIHByZXBhcmVFeHRyYUFic29sdXRlRmlsZXMoV0FTTVRFU1RTX1BB
VEgsIFsid2FzbS5qc29uIl0pCiAKICAgICBtb2R1bGVzID0gRGlyW1dBU01URVNUU19QQVRIICsg
IiouanMiXS5tYXAgeyB8ZnwgRmlsZS5iYXNlbmFtZShmKSB9CkBAIC0xODY2LDkgKzE4ODAsMTEg
QEAgZGVmIHJ1bldlYkFzc2VtYmx5U3BlY1Rlc3RCYXNlKG1vZGUsIHNwZWNIYXJuZXNzUGF0aCwg
Km9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW8KICAgICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3
YXNtLW5vLWNqaXQteWVzLXRscy1jb250ZXh0Iiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFy
bmVzc0pzUGF0aCwgICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD10cnVlIiwgKihGVExfT1BU
SU9OUyArIE5PX0NKSVRfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCiAg
ICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1lYWdlci1qZXR0aXNvbiIsIG5vaXN5T3V0
cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICItLWZvcmNlQ29kZUJsb2NrVG9KZXR0aXNv
bkR1ZVRvT2xkQWdlPXRydWUiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxv
Y2F0aW9uPXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFs
VGVzdFNwZWNpZmljT3B0aW9ucykpCiAgICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1u
by10bHMtY29udGV4dCIsIG5vaXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICIt
LXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25h
bFRlc3RTcGVjaWZpY09wdGlvbnMpKQotICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20t
YjMiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAiLS11c2VXYXNtTExJ
bnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRp
b25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQotICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndh
c20tYWlyIiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tdXNlV2Fz
bUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlv
bj10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCiAg
ICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNseSIsIG5v
aXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICItLWNvbGxlY3RDb250aW51b3Vz
bHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0
U3BlY2lmaWNPcHRpb25zKSkgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8KKyAgICAgIGlm
ICRpc0ZUTFBsYXRmb3JtCisgICAgICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20tYjMi
LCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAiLS11c2VXYXNtTExJbnQ9
ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25h
bFRlc3RTcGVjaWZpY09wdGlvbnMpKQorICAgICAgICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3
YXNtLWFpciIsIG5vaXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICItLXVzZVdh
c21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRp
b249dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQor
ICAgICAgZW5kCiAgICAgZW5kCiBlbmQKIApAQCAtMTg4Niw3ICsxOTAyLDcgQEAgZW5kCiAKIGRl
ZiBydW5XZWJBc3NlbWJseUxvd0V4ZWN1dGFibGVNZW1vcnkoKm9wdGlvbmFsVGVzdFNwZWNpZmlj
T3B0aW9ucykKICAgICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRM
UGxhdGZvcm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQogICAgIG1vZHVsZXMgPSBE
aXJbV0FTTVRFU1RTX1BBVEggKyAiKi5qcyJdLm1hcCB7IHxmfCBGaWxlLmJhc2VuYW1lKGYpIH0K
ICAgICBwcmVwYXJlRXh0cmFBYnNvbHV0ZUZpbGVzKFdBU01URVNUU19QQVRILCBbIndhc20uanNv
biJdKQogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMobW9kdWxlcy5tYXAgeyB8ZnwgIi4u
LyIgKyBmIH0sICRjb2xsZWN0aW9uKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9K
U1Rlc3RzL0NoYW5nZUxvZwppbmRleCAwM2Q1ODFmYjA1YjAwMmFkZTkxMTA1ZmMzZGI3ZjUwOGU4
ZWFlODAwLi44ODI4OGYzNDQ0YjYwN2NlMDc2ZGRjNGVhMzYyMjIyMjI2MDg4Zjc0IDEwMDY0NAot
LS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDIyLTA1LTA5ICBHZXphIExvcmUgIDxnbG9yZUBpZ2FsaWEuY29tPgorCisgICAg
ICAgIFtKU0NdIEVuYWJsZSBXYXNtTExJbnQgb24gQVJNdjcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTI2MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdh
c20tbmFtZS1zZWN0aW9uLmpzOgorICAgICAgICAqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci13
YXNtLmpzOgorICAgICAgICAqIHdhc20vcmVncmVzcy9sbGludC1jYWxsZWUtc2F2ZXMtd2l0aC1m
YXN0LW1lbW9yeS5qczoKKwogMjAyMi0wNS0wNiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xp
bmdAc29ueS5jb20+CiAKICAgICAgICAgVGVtcG9yYWwuRHVyYXRpb24jdG9TdHJpbmcgc2hvdWxk
IG5ldmVyIGlnbm9yZSBmcmFjdGlvbmFsU2Vjb25kRGlnaXRzCmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5hbWUtc2VjdGlvbi5qcyBiL0pTVGVzdHMv
c3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzCmluZGV4IDVjMjIw
ZmQ3NmNkYzVjNDBlNTljYzY2ZTU3MzQyYzcyZDhjN2YzYWEuLjM2ODZjNjM5NzA0MDc4YmEyMGM0
NDY4ZDlhZmU4Yjk3MzAyY2Y4OWEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5n
LXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBs
aW5nLXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzCkBAIC0xLDMgKzEsOCBAQAorLy8gVGhp
cyB0ZXN0IGlzIHN0YXRpc3RpY2FsLCBhbmQgd2l0aG91dCBvcHRpbWl6aW5nIFdhc20gdGllcnMg
dGhlIGxpa2VsaWhvb2QKKy8vIG9mIGhpdHRpbmcgdGhlIGRlZXBlc3QgZXhwZWN0ZWQgc3RhY2sg
dHJhY2UgaXMgdmVyeSBsb3csIHNvIGRpc2FibGUuCisvLyBGSVhNRTogcmVtb3ZlIHdoZW4gMzIt
Yml0IHBsYXRmb3JtcyBzdXBwb3J0IG9wdGltaXppbmcgV2FzbSB0aWVycworLy9AIHNraXAgaWYg
WyJhcm0iLCAibWlwcyJdLmluY2x1ZGU/KCRhcmNoaXRlY3R1cmUpCisvLwogLy9AIHJ1bkRlZmF1
bHQKIAogLyoKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdh
c20uanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzCmluZGV4IDA2
ZGYwMTI0OTU5NjllMjg0MjE4Nzc4NjkwMTM1YmYwOTAxMGVjNmQuLjcyNDBjMDBkZTI3ZTNiZmQz
Zjk1NTc1MjMwMGNhMGRlMmY1OTRlZWMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBs
aW5nLXByb2ZpbGVyLXdhc20uanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmls
ZXItd2FzbS5qcwpAQCAtMSwzICsxLDQgQEAKKy8vQCBza2lwIGlmICRhcmNoaXRlY3R1cmUgPT0g
ImFybSIKIC8vQCBydW5EZWZhdWx0CiAKIGlmIChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9m
aWxlcigpICYmICR2bS5pc1dhc21TdXBwb3J0ZWQoKSkgewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93
YXNtL3JlZ3Jlc3MvbGxpbnQtY2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnkuanMgYi9KU1Rl
c3RzL3dhc20vcmVncmVzcy9sbGludC1jYWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5qcwpp
bmRleCBmOWYwOWM0NzUxM2E2YzhkOTMyNTM0ZjcyN2RiZmU3N2ZkMjUxZDQ0Li4xMWNmYjE2NGJi
NjQxZWYzNGUyMWRiMDU2OTI3ZGNhMzY3YzM3ZTZkIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20v
cmVncmVzcy9sbGludC1jYWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5qcworKysgYi9KU1Rl
c3RzL3dhc20vcmVncmVzcy9sbGludC1jYWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5qcwpA
QCAtMSwzICsxLDQgQEAKKy8vQCBza2lwIGlmICRhcmNoaXRlY3R1cmUgPT0gImFybSIKIC8vQCBy
ZXF1aXJlT3B0aW9ucygiLS11c2VXZWJBc3NlbWJseUZhc3RNZW1vcnk9dHJ1ZSIpCiAKIGltcG9y
dCAqIGFzIGFzc2VydCBmcm9tICcuLi9hc3NlcnQuanMnOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459536</attachid>
            <date>2022-05-18 05:47:37 -0700</date>
            <delta_ts>2022-05-25 07:17:34 -0700</delta_ts>
            <desc>v11 - rebase, remove ChangeLog diffs</desc>
            <filename>bug-221260-20220518124735.patch</filename>
            <type>text/plain</type>
            <size>323960</size>
            <attacher name="Geza Lore">glore</attacher>
            
              <data encoding="base64">RnJvbSA5ZmZhMTE1MGU3MjFiN2ZmNTg3NzE4NzA2ZWE1YzIyMGI1MDU5NDVjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHZXphIExvcmUgPGdsb3JlQGlnYWxpYS5jb20+CkRhdGU6IFdl
ZCwgMTggTWF5IDIwMjIgMDc6MzE6MDQgKzAwMDAKU3ViamVjdDogW1BBVENIXSBbSlNDXSBFbmFi
bGUgV2FzbUxMSW50IG9uIEFSTXY3Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4
dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Cgpo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMjYwCgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KCiogc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20tbmFtZS1z
ZWN0aW9uLmpzOgoqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzOgoqIHdhc20vcmVn
cmVzcy9sbGludC1jYWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5qczoKW0pTQ10gRW5hYmxl
IFdhc21MTEludCBvbiBBUk12NwpodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIxMjYwCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClBhdGNoIGJ5IEdlemEgTG9y
ZSBhbmQgWGFuIEzDs3Blei4KCkltcGxlbWVudCB0aGUgTExJbnQgdGllciBvZiBXZWJBc3NlbWJs
eSBmb3IgQVJNdjcuIEEgbG90IG9mIHRoZQp3b3JrIHdpbGwgYmUgc2hhcmVkIGJ5IGFueSAzMmJp
dCBwb3J0LCBidXQgdGhlIG9mZmxpbmVhc3NlbWJsZXIKaGFzIG9ubHkgYmVlbiB1cGRhdGVkIGZv
ciBBUk12NyBzbyBmYXIuCgpNYWluIGhpZ2hsaWdodHM6CgpXZSBoYXZlIHNwbGl0IHRoZSBXZWJB
c3NlbWJseS5hc20gZmlsZSBpbnRvIHRocmVlIGNodW5rcywKZm9sbG93aW5nIHdoYXQgTG93TGV2
ZWxJbnRlcnByZXRlci5hc20gZG9lcy4gVGhlIGNvbW1vbiBjb2RlCnJlbWFpbnMgaW4gV2ViQXNz
ZW1ibHkuYXNtLCBhbmQgMzIgYW5kIDY0Yml0IHNwZWNpZmljIGNvZGUgKG1vc3RseQpvcGNvZGUg
aW1wbGVtZW50YXRpb25zKSBnb2VzIGludG8gV2ViQXNzZW1ibHkzMl82NC5hc20gYW5kCldlYkFz
c2VtYmx5NjQuYXNtLgoKV2UgaGF2ZSBkZWNpZGVkIHRvIHVzZSBjb25zZWN1dGl2ZSBldmVuL29k
ZCBwYWlycyBvZiBHUFJzIGZvciBldmVyeQp0eXBlIG9mIHdhc20gdmFsdWVzLCBldmVuIGlmIHRo
ZXkgYXJlIDMyYml0IChpMzIvZjMyKSwgd2l0aCB0aGUgb2RkCihoaWdoZXIpIG51bWJlcmVkIEdQ
UiBob2xkaW5nIHRoZSBtb3JlIHNpZ25pZmljYW50IGhhbGYuIDMyYml0IHZhbHVlcwphcmUgaGVs
ZCBpbiB0aGUgZXZlbiAobG93ZXIpIG51bWJlcmVkIHJlZ2lzdGVyLiBUaGlzIG1ha2VzIHRoZSBj
b2RlCm11Y2ggc2ltcGxlciBhbmQgYWxsb3dzIHVzIHRvIHNoYXJlIG1vcmUgY29kZSB3aXRoIHRo
ZSA2NGJpdCB2YXJpYW50LgpUaGlzIGlzIG1vc3RseSByZWxldmFudCBmb3IgYXJndW1lbnQgcGFz
c2luZywgYW5kIGdpdmVuIHRoYXQgZXZlcnkKdmFsdWUgZW5kcyB1cCBpbiB0aGUgc3RhY2sgYW55
d2F5IHdlIGRvIG5vdCB0aGluayBpdCBpcyBzaWduaWZpY2FudApmcm9tIGEgcGVyZm9ybWFuY2Ug
UE9WLgoKV2UgYXJlIHJldXNpbmcgSlNWYWx1ZVJlZ3MgdG8gaG9sZCBXYXNtIHZhbHVlcyB0b28u
IE9idmlvdXNseSB0aGV5CmFyZSBub3QgcmVhbGx5IEpTVmFsdWVzLCBzbyBpdCBtaWdodCBtYWtl
IHNlbnNlIHRvIGNyZWF0ZSBhIGJhc2UKY2xhc3MgdGhhdCBjYW4gYmUgdXNlZCBmb3IgYm90aCBK
UyBhbmQgV2FzbSB2YWx1ZXMuCgpXZSBkbyBub3QgaGF2ZSBlbm91Z2ggcmVnaXN0ZXJzIHRvIGtl
ZXAgdGhpbmdzIGxpa2UgdGhlIG1lbW9yeQpiYXNlIHBvaW50ZXIgYW5kIHNpemUgaW4gcGlubmVk
IHJlZ2lzdGVycywgc28gd2UgYXJlIGZvcmNlZCB0bwpsb2FkIHRoZW0gb24gZWFjaCB1c2UuCgpX
ZSBkaXNhYmxlIHRoZSAnU2lnbmFsaW5nJyBtZW1vcnkgbW9kZSwgc2luY2UgdGhlIGN1cnJlbnQK
aW1wbGVtZW50YXRpb24gcmVsaWVzIG9uIGJlaW5nIGFibGUgdG8gbXByb3RlY3QgYSAyXjMyICsg
cmVkem9uZQpyZWdpb24gb2YgbWVtb3J5LiBUaGlzIGNhbiBiZSBjaGFuZ2VkIGluIHRoZSBmdXR1
cmUgYnV0IGl0J3Mgbm90IGEKcHJpb3JpdHkgYXQgdGhlIG1vbWVudC4KCiogQ01ha2VMaXN0cy50
eHQ6CiogYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmg6CihKU0M6OkFSTXY3QXNzZW1ibGVyOjp2
Y3Z0X3NpZ25lZFRvRmxvYXRpbmdQb2ludCk6CiogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
djcuaDoKKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6Y29udmVydEludDMyVG9GbG9hdCk6CihK
U0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnRocmVhZFNhZmVQYXRjaGFibGVOZWFyQ2FsbCk6CihK
U0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmNhbGxPcGVyYXRpb24pOgoqIGIzL0IzVmFsdWVSZXAu
aDoKKEpTQzo6QjM6OlZhbHVlUmVwOjpWYWx1ZVJlcCk6CiogYnl0ZWNvZGUvQnl0ZWNvZGVEdW1w
ZXIuY3BwOgooSlNDOjpXYXNtOjpCeXRlY29kZUR1bXBlcjo6Zm9ybWF0Q29uc3RhbnQgY29uc3Qp
OgoqIGludGVycHJldGVyL0NhbGxGcmFtZS5oOiBhZGFwdCB0byBuZXcgY2FsbGVlIHRhZ2dpbmcg
Zm9ybWF0LgooSlNDOjpDYWxsRnJhbWU6OmNhbGxlZSBjb25zdCk6CihKU0M6OkNhbGxGcmFtZTo6
dW5zYWZlQ2FsbGVlIGNvbnN0KToKKiBpbnRlcnByZXRlci9DYWxsZWVCaXRzLmg6IGFkZCB3YXNt
IHRhZ2dpbmcgb2YgY2FsbGVlIHZhbHVlcyBmb3IKMzJiaXQuCihKU0M6OkNhbGxlZUJpdHM6OkNh
bGxlZUJpdHMpOgooSlNDOjpDYWxsZWVCaXRzOjpvcGVyYXRvcj0pOgooSlNDOjpDYWxsZWVCaXRz
Ojpib3hXYXNtKToKKEpTQzo6Q2FsbGVlQml0czo6aXNXYXNtIGNvbnN0KToKKEpTQzo6Q2FsbGVl
Qml0czo6YXNXYXNtQ2FsbGVlIGNvbnN0KToKKiBpbnRlcnByZXRlci9SZWdpc3Rlci5oOgooSlND
OjpSZWdpc3Rlcjo6dW5ib3hlZEZsb2F0IGNvbnN0KToKKEpTQzo6UmVnaXN0ZXI6OmFzYW5VbnNh
ZmVVbmJveGVkRmxvYXQgY29uc3QpOgoqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoKKEpTQzo6QXNz
ZW1ibHlIZWxwZXJzOjp1bmJveERvdWJsZSk6Ciogaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmNw
cDoKKEpTQzo6UmVnaXN0ZXJBdE9mZnNldExpc3Q6OlJlZ2lzdGVyQXRPZmZzZXRMaXN0KToKKiBq
aXQvUmVnaXN0ZXJBdE9mZnNldExpc3QuaDoKKEpTQzo6UmVnaXN0ZXJBdE9mZnNldExpc3Q6OnNp
emVPZkFyZWFJbkJ5dGVzIGNvbnN0KToKKiBqaXQvUmVnaXN0ZXJTZXQuY3BwOgooSlNDOjpSZWdp
c3RlclNldDo6bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKToKKiBsbGludC9MTEludE9mZmxpbmVBc21D
b25maWcuaDoKKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgoqIGxsaW50L1dl
YkFzc2VtYmx5LmFzbToKKiBsbGludC9XZWJBc3NlbWJseTMyXzY0LmFzbTogQWRkZWQuCiogbGxp
bnQvV2ViQXNzZW1ibHk2NC5hc206IEFkZGVkLgoqIG9mZmxpbmVhc20vYXJtLnJiOgoqIG9mZmxp
bmVhc20vaW5zdHJ1Y3Rpb25zLnJiOgoqIG9mZmxpbmVhc20vcmVnaXN0ZXJzLnJiOgoqIG9mZmxp
bmVhc20vcmlzYy5yYjoKKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKEpTQzo6d2FzbVVuYm94ZWRG
bG9hdCk6CiogcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oOgooSlNDOjpKU1ZhbHVlOjpKU1Zh
bHVlKToKKiB3YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHA6CihKU0M6Oldhc206OkFpcklSR2Vu
ZXJhdG9yOjp1c2VTaWduYWxpbmdNZW1vcnkgY29uc3QpOgooSlNDOjpXYXNtOjpBaXJJUkdlbmVy
YXRvcjo6QWlySVJHZW5lcmF0b3IpOgooSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6ZW1pdENo
ZWNrQW5kUHJlcGFyZVBvaW50ZXIpOgooSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6YWRkQ2Fs
bCk6Ciogd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHA6CihKU0M6Oldhc206OkIzSVJHZW5lcmF0
b3I6OnVzZVNpZ25hbGluZ01lbW9yeSBjb25zdCk6CihKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6
OkIzSVJHZW5lcmF0b3IpOgooSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjphZGRBcmd1bWVudHMp
OgooSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcik6
CihKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6Om1lbW9yeUtpbmQpOgooSlNDOjpXYXNtOjpCM0lS
R2VuZXJhdG9yOjphZGRDYWxsKToKKiB3YXNtL1dhc21CaW5kaW5nLmNwcDoKKEpTQzo6V2FzbTo6
d2FzbVRvV2FzbSk6Ciogd2FzbS9XYXNtQ2FsbGVlLmNwcDoKKEpTQzo6V2FzbTo6TExJbnRDYWxs
ZWU6OmNhbGxlZVNhdmVSZWdpc3RlcnMpOgoqIHdhc20vV2FzbUNhbGxlZUdyb3VwLmNwcDoKKEpT
Qzo6V2FzbTo6Q2FsbGVlR3JvdXA6OmlzU2FmZVRvUnVuKToKKiB3YXNtL1dhc21DYWxsaW5nQ29u
dmVudGlvbi5jcHA6CihKU0M6Oldhc206OmpzQ2FsbGluZ0NvbnZlbnRpb24pOgooSlNDOjpXYXNt
Ojp3YXNtQ2FsbGluZ0NvbnZlbnRpb24pOgoqIHdhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmg6
CihKU0M6Oldhc206OkNhbGxJbmZvcm1hdGlvbjo6Y29tcHV0ZVJlc3VsdHNPZmZzZXRMaXN0KToK
KEpTQzo6V2FzbTo6V2FzbUNhbGxpbmdDb252ZW50aW9uOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb24p
OgooSlNDOjpXYXNtOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxsTG9jYXRpb25JbXBs
IGNvbnN0KToKKEpTQzo6V2FzbTo6V2FzbUNhbGxpbmdDb252ZW50aW9uOjptYXJzaGFsbExvY2F0
aW9uIGNvbnN0KToKKEpTQzo6V2FzbTo6SlNDYWxsaW5nQ29udmVudGlvbjo6SlNDYWxsaW5nQ29u
dmVudGlvbik6CihKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxsTG9jYXRp
b25JbXBsIGNvbnN0KToKKEpTQzo6V2FzbTo6SlNDYWxsaW5nQ29udmVudGlvbjo6bWFyc2hhbGxM
b2NhdGlvbiBjb25zdCk6CihKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246OmNhbGxJbmZv
cm1hdGlvbkZvciBjb25zdCk6Ciogd2FzbS9XYXNtRm9ybWF0Lmg6Ciogd2FzbS9XYXNtSW5kZXhP
ck5hbWUuY3BwOgooSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6SW5kZXhPck5hbWUpOgooSlNDOjpX
YXNtOjptYWtlU3RyaW5nKToKKiB3YXNtL1dhc21JbmRleE9yTmFtZS5oOgooSlNDOjpXYXNtOjpJ
bmRleE9yTmFtZTo6SW5kZXhPck5hbWUpOgooSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6aXNFbXB0
eSBjb25zdCk6CihKU0M6Oldhc206OkluZGV4T3JOYW1lOjppc0luZGV4IGNvbnN0KToKKEpTQzo6
V2FzbTo6SW5kZXhPck5hbWU6OmlzTmFtZSBjb25zdCk6CihKU0M6Oldhc206OkluZGV4T3JOYW1l
OjppbmRleCBjb25zdCk6CihKU0M6Oldhc206OkluZGV4T3JOYW1lOjpuYW1lIGNvbnN0KToKKEpT
Qzo6V2FzbTo6SW5kZXhPck5hbWU6Om5hbWVTZWN0aW9uIGNvbnN0KToKKiB3YXNtL1dhc21JbnN0
YW5jZS5oOgooSlNDOjpXYXNtOjpJbnN0YW5jZTo6dXBkYXRlQ2FjaGVkTWVtb3J5KToKKiB3YXNt
L1dhc21MTEludEdlbmVyYXRvci5jcHA6CihKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjp2aXJ0
dWFsUmVnaXN0ZXJGb3JXYXNtTG9jYWwpOgooSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6Y2Fs
bEluZm9ybWF0aW9uRm9yQ2FsbGVyKToKKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmNhbGxJ
bmZvcm1hdGlvbkZvckNhbGxlZSk6CihKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjphZGRBcmd1
bWVudHMpOgooSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6YWRkTG9vcCk6Ciogd2FzbS9XYXNt
TExJbnRQbGFuLmNwcDoKKEpTQzo6V2FzbTo6TExJbnRQbGFuOjpkaWRDb21wbGV0ZUNvbXBpbGF0
aW9uKToKKiB3YXNtL1dhc21NZW1vcnkuY3BwOgooSlNDOjpXYXNtOjpNZW1vcnlIYW5kbGU6On5N
ZW1vcnlIYW5kbGUpOgooSlNDOjpXYXNtOjpNZW1vcnk6OnRyeUNyZWF0ZSk6CihKU0M6Oldhc206
Ok1lbW9yeTo6Z3Jvd1NoYXJlZCk6CihKU0M6Oldhc206Ok1lbW9yeTo6Z3Jvdyk6CihKU0M6Oldh
c206Ok1lbW9yeTo6Y29weSk6Ciogd2FzbS9XYXNtTWVtb3J5Lmg6Ciogd2FzbS9XYXNtTWVtb3J5
SW5mb3JtYXRpb24uY3BwOgooSlNDOjpXYXNtOjpQaW5uZWRSZWdpc3RlckluZm86OmdldCk6Ciog
d2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uaDoKKEpTQzo6V2FzbTo6UGlubmVkUmVnaXN0ZXJJ
bmZvOjp0b1NhdmUgY29uc3QpOgoqIHdhc20vV2FzbU1lbW9yeU1vZGUuY3BwOgooSlNDOjpXYXNt
OjptYWtlU3RyaW5nKToKKiB3YXNtL1dhc21NZW1vcnlNb2RlLmg6Ciogd2FzbS9XYXNtT3Bjb2Rl
T3JpZ2luLmNwcDoKKiB3YXNtL1dhc21PcGNvZGVPcmlnaW4uaDoKKiB3YXNtL1dhc21PcGVyYXRp
b25zLmNwcDoKKEpTQzo6V2FzbTo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKToKKiB3YXNtL1dh
c21PcGVyYXRpb25zLmg6Ciogd2FzbS9XYXNtUGFnZUNvdW50Lmg6Ciogd2FzbS9XYXNtUGFyc2Vy
Lmg6CihKU0M6Oldhc206OlBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVUludDMyKToKKEpTQzo6
V2FzbTo6UGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VVSW50NjQpOgoqIHdhc20vV2FzbVNsb3dQ
YXRocy5jcHA6CihKU0M6OkxMSW50OjpXQVNNX1NMT1dfUEFUSF9ERUNMKToKKEpTQzo6TExJbnQ6
OnNsb3dfcGF0aF93YXNtX3BvcGNvdW50KToKKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX3Bv
cGNvdW50bGwpOgooSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTMyX2Rpdl9zKToKKEpTQzo6
TExJbnQ6OnNsb3dfcGF0aF93YXNtX2kzMl9kaXZfdSk6CihKU0M6OkxMSW50OjpzbG93X3BhdGhf
d2FzbV9pMzJfcmVtX3MpOgooSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTMyX3JlbV91KToK
KEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2k2NF9kaXZfcyk6CihKU0M6OkxMSW50OjpzbG93
X3BhdGhfd2FzbV9pNjRfZGl2X3UpOgooSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTY0X3Jl
bV9zKToKKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2k2NF9yZW1fdSk6Ciogd2FzbS9XYXNt
U2xvd1BhdGhzLmg6Ciogd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5jcHA6CihKU0M6Oldhc206OlZh
bHVlTG9jYXRpb246OmR1bXAgY29uc3QpOgooV1RGOjpwcmludEludGVybmFsKToKKiB3YXNtL1dh
c21WYWx1ZUxvY2F0aW9uLmg6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OlZhbHVlTG9jYXRp
b24pOgooSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjppc0dQUiBjb25zdCk6CihKU0M6Oldhc206
OlZhbHVlTG9jYXRpb246OmlzRlBSIGNvbnN0KToKKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6
aXNTdGFjayBjb25zdCk6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzU3RhY2tBcmd1bWVu
dCBjb25zdCk6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmpzciBjb25zdCk6CihKU0M6Oldh
c206OlZhbHVlTG9jYXRpb246OmZwciBjb25zdCk6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246
OnJlZyk6IERlbGV0ZWQuCihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzUmVnIGNvbnN0KTog
RGVsZXRlZC4KKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6cmVnIGNvbnN0KTogRGVsZXRlZC4K
KEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6Z3ByIGNvbnN0KTogRGVsZXRlZC4KKiB3YXNtL2pz
L0pTVG9XYXNtLmNwcDoKKEpTQzo6V2FzbTo6bWFyc2hhbGxKU1Jlc3VsdCk6CihKU0M6Oldhc206
OmNyZWF0ZUpTVG9XYXNtV3JhcHBlcik6Ciogd2FzbS9qcy9XYXNtVG9KUy5jcHA6CihKU0M6Oldh
c206Ondhc21Ub0pTKToKKiB3YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwOgooSlNDOjpX
ZWJBc3NlbWJseUZ1bmN0aW9uOjpwcmV2aW91c0luc3RhbmNlT2Zmc2V0IGNvbnN0KToKKEpTQzo6
V2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3cpOgoqIHdhc20vanMvV2Vi
QXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHA6CihKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTik6Ciogd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHA6CihKU0M6OldlYkFz
c2VtYmx5TW9kdWxlUmVjb3JkOjppbml0aWFsaXplRXhwb3J0cyk6CltKU0NdIEVuYWJsZSBXYXNt
TExJbnQgb24gQVJNdjcKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MTI2MAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIHd0Zi9QbGF0Zm9ybUVuYWJsZS5o
OiBlbmFibGUgV2ViQXNzZW1ibHkgb24gQVJNdjcuCltKU0NdIEVuYWJsZSBXYXNtTExJbnQgb24g
QVJNdjcKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTI2MAoKUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIFNjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHM6
IGFsbG93IHRvIHJ1biB0aGUgd2FzbSB0ZXN0cyBvbgphcm12NyBldmVuIHdpdGhvdXQgaml0IHN1
cHBvcnQgKGZvciBub3cpLgoKIyBQbGVhc2UgcG9wdWxhdGUgdGhlIGFib3ZlIGNvbW1pdCBtZXNz
YWdlLiBMaW5lcyBzdGFydGluZwojIHdpdGggJyMnIHdpbGwgYmUgaWdub3JlZAoKIyBOZWVkIGEg
c2hvcnQgZGVzY3JpcHRpb24gKE9PUFMhKS4KIyBOZWVkIHRoZSBidWcgVVJMIChPT1BTISkuCiMK
IyBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIwojICogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU1lbW9yeS5jcHA6CgojIE9uIGJyYW5jaCBtYWluCiMgWW91ciBicmFuY2ggaXMg
YWhlYWQgb2YgJ29yaWdpbi9tYWluJyBieSAxIGNvbW1pdC4KIyAgICh1c2UgImdpdCBwdXNoIiB0
byBwdWJsaXNoIHlvdXIgbG9jYWwgY29tbWl0cykKIwojIENoYW5nZXMgdG8gYmUgY29tbWl0dGVk
OgojICAgKHVzZSAiZ2l0IHJlc3RvcmUgLS1zdGFnZWQgPGZpbGU+Li4uIiB0byB1bnN0YWdlKQoj
IAltb2RpZmllZDogICBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcAoj
Ci0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0ICAgICAgICAgIHwgICAg
MiArCiAuLi4vSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmggfCAgICA0
ICstCiAuLi4vYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaCAgICAgICAgICAgfCAgIDI0
ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oICAgICAgICAgfCAgICA4
ICstCiAuLi4vYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwICAgICAgICAgICAgICAgfCAgICAy
ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmggfCAgICA0
ICstCiAuLi4vSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbGVlQml0cy5oICAgfCAgIDM1
ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaCAgfCAgIDE2
ICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggICB8ICAgIDUg
Ky0KIC4uLi9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3QuY3BwICAgICAgICAgICAgICB8ICAgMzYg
Ky0KIC4uLi9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3QuaCB8ICAgIDMg
KwogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5jcHAgICAgIHwgICAgMiAr
CiAuLi4vbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmggICAgICAgICAgICAgfCAgICA2ICsK
IC4uLi9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtICAgICAgICB8ICAgMTYgKwog
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5LmFzbSAgIHwgMTUxOSArKyst
LS0tLS0tLS0tLS0tLQogLi4uL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5MzJfNjQu
YXNtIHwgMTEyOSArKysrKysrKysrKysKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJB
c3NlbWJseTY0LmFzbSB8IDEyNTkgKysrKysrKysrKysrKysKIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL2FybS5yYiAgICAgICB8ICAyODEgKystCiAuLi4vSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIgfCAgIDE3ICstCiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIgfCAgICAzICstCiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9yaXNjLnJiICAgICAgfCAgICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NKU1ZhbHVlLmggICAgfCAgIDE4ICstCiAuLi4vcnVudGltZS9KU0NKU1Zh
bHVlSW5saW5lcy5oICAgICAgICAgICAgICAgfCAgICA3ICsKIC4uLi93YXNtL1dhc21BaXJJUkdl
bmVyYXRvci5jcHAgICAgICAgICAgICAgICB8ICAgMTUgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcCB8ICAgMjkgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21CaW5kaW5nLmNwcCAgICB8ICAgMTggKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21DYWxsZWUuY3BwICAgICB8ICAgIDUgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21DYWxsZWVHcm91cC5jcHAgICB8ICAgIDQgKwogLi4uL3dhc20vV2FzbUNhbGxpbmdD
b252ZW50aW9uLmNwcCAgICAgICAgICAgIHwgICAzOCArLQogLi4uL3dhc20vV2FzbUNhbGxpbmdD
b252ZW50aW9uLmggICAgICAgICAgICAgIHwgICA0MSArLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUZvcm1hdC5oICAgICAgIHwgICAgMiArCiAuLi4vSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtSW5kZXhPck5hbWUuY3BwICAgfCAgIDI3ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtSW5kZXhPck5hbWUuaCAgfCAgIDcyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtSW5zdGFuY2UuaCAgICAgfCAgICA1ICstCiAuLi4vd2FzbS9XYXNtTExJbnRHZW5l
cmF0b3IuY3BwICAgICAgICAgICAgICAgfCAgIDEwICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtTExJbnRQbGFuLmNwcCAgfCAgICA3ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtTWVtb3J5LmNwcCAgICAgfCAgIDUwICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtTWVtb3J5LmggICAgICAgfCAgICA1ICstCiAuLi4vd2FzbS9XYXNtTWVtb3J5SW5m
b3JtYXRpb24uY3BwICAgICAgICAgICAgfCAgICA3ICsKIC4uLi93YXNtL1dhc21NZW1vcnlJbmZv
cm1hdGlvbi5oICAgICAgICAgICAgICB8ICAgIDUgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21NZW1vcnlNb2RlLmNwcCB8ICAgIDIgKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbU1lbW9yeU1vZGUuaCAgIHwgICAgMiArCiAuLi4vSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtT3Bjb2RlT3JpZ2luLmNwcCAgfCAgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtT3Bjb2RlT3JpZ2luLmggfCAgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtT3BlcmF0aW9ucy5jcHAgfCAgIDU0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtT3BlcmF0aW9ucy5oICAgfCAgIDE1ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtUGFnZUNvdW50LmggICAgfCAgICA3ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtUGFyc2VyLmggICAgICAgfCAgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtU2xvd1BhdGhzLmNwcCAgfCAgMjMwICsrLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbVNsb3dQYXRocy5oICAgIHwgICAzNCArCiAuLi4vSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtVmFsdWVMb2NhdGlvbi5jcHAgfCAgIDE0ICstCiAuLi4vSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtVmFsdWVMb2NhdGlvbi5oICAgfCAgIDQ0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1RvV2FzbS5jcHAgICAgfCAgMTg4ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XYXNtVG9KUy5jcHAgICAgfCAgMTQ4ICstCiAuLi4vd2FzbS9qcy9XZWJBc3NlbWJseUZ1
bmN0aW9uLmNwcCAgICAgICAgICAgfCAgMTU2ICstCiAuLi4vd2FzbS9qcy9XZWJBc3NlbWJseUds
b2JhbENvbnN0cnVjdG9yLmNwcCAgfCAgICAyICstCiAuLi4vd2FzbS9qcy9XZWJBc3NlbWJseU1v
ZHVsZVJlY29yZC5jcHAgICAgICAgfCAgICAyICstCiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVu
YWJsZS5oICAgICAgICAgICAgICAgfCAgICA2ICstCiBUb29scy9TY3JpcHRzL3J1bi1qc2Mtc3Ry
ZXNzLXRlc3RzICAgICAgICAgICAgfCAgIDU0ICstCiAuLi4vc2FtcGxpbmctcHJvZmlsZXItd2Fz
bS1uYW1lLXNlY3Rpb24uanMgICAgfCAgICA1ICsKIEpTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXBy
b2ZpbGVyLXdhc20uanMgICAgICB8ICAgIDEgKwogLi4uL2xsaW50LWNhbGxlZS1zYXZlcy13aXRo
LWZhc3QtbWVtb3J5LmpzICAgIHwgICAgMSArCiA2MiBmaWxlcyBjaGFuZ2VkLCA0MDQwIGluc2Vy
dGlvbnMoKyksIDE2NzkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5MzJfNjQuYXNtCiBjcmVhdGUgbW9kZSAxMDA2
NDQgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5NjQuYXNtCgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGU2ZWQ3ZWQ0MDYzNy4uMjNkMzZmNzNhZDRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMDAsNiArMjAwLDggQEAg
c2V0KExMSU5UX0FTTQogICAgIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KICAg
ICBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCiAgICAgbGxpbnQvV2ViQXNzZW1ibHku
YXNtCisgICAgbGxpbnQvV2ViQXNzZW1ibHkzMl82NC5hc20KKyAgICBsbGludC9XZWJBc3NlbWJs
eTY0LmFzbQogKQogCiBzZXQoT0ZGTElORV9BU00KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAppbmRleCA5Y2E2YTRhNmM4NDEuLjZjNzZlNGVm
NTIzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fz
c2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3Nl
bWJsZXIuaApAQCAtMTk5MSwxMCArMTk5MSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0
dGVyLnZmcE9wKE9QX1ZDTVAsIE9QX1ZDTVBiLCB0cnVlLCBWRlBPcGVyYW5kKDUpLCByZCwgVkZQ
T3BlcmFuZCgwKSk7CiAgICAgfQogCi0gICAgdm9pZCB2Y3Z0X3NpZ25lZFRvRmxvYXRpbmdQb2lu
dChGUERvdWJsZVJlZ2lzdGVySUQgcmQsIEZQU2luZ2xlUmVnaXN0ZXJJRCBybSkKKyAgICB2b2lk
IHZjdnRfc2lnbmVkVG9GbG9hdGluZ1BvaW50KEZQRG91YmxlUmVnaXN0ZXJJRCByZCwgRlBTaW5n
bGVSZWdpc3RlcklEIHJtLCBib29sIHRvRG91YmxlID0gdHJ1ZSkKICAgICB7CiAgICAgICAgIC8v
IGJvb2xlYW4gdmFsdWVzIGFyZSA2NGJpdCAodG9JbnQsIHVuc2lnbmVkLCByb3VuZFplcm8pCi0g
ICAgICAgIG1fZm9ybWF0dGVyLnZmcE9wKE9QX1ZDVlRfRlBJVkZQLCBPUF9WQ1ZUX0ZQSVZGUGIs
IHRydWUsIHZjdnRPcChmYWxzZSwgZmFsc2UsIGZhbHNlKSwgcmQsIHJtKTsKKyAgICAgICAgbV9m
b3JtYXR0ZXIudmZwT3AoT1BfVkNWVF9GUElWRlAsIE9QX1ZDVlRfRlBJVkZQYiwgdG9Eb3VibGUs
IHZjdnRPcChmYWxzZSwgZmFsc2UsIGZhbHNlKSwgcmQsIHJtKTsKICAgICB9CiAKICAgICB2b2lk
IHZjdnRfZmxvYXRpbmdQb2ludFRvU2lnbmVkKEZQU2luZ2xlUmVnaXN0ZXJJRCByZCwgRlBEb3Vi
bGVSZWdpc3RlcklEIHJtKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRleCA2NTAyZjBjNTNjM2YuLjBmMjk0NzY2YTQy
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTXY3LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTXY3LmgKQEAgLTQxLDExICs0MSwxMSBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlckFS
TXY3IDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8QXNzZW1ibGVyPiB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgbmVhckp1bXBSYW5nZSA9IDE2ICogTUI7CiAK
LXByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklEIGRhdGFUZW1wUmVnaXN0
ZXIgPSBBUk1SZWdpc3RlcnM6OmlwOwogICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCBh
ZGRyZXNzVGVtcFJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpyNjsKIAotICAgIHN0YXRpYyBjb25z
dGV4cHIgQVJNUmVnaXN0ZXJzOjpGUERvdWJsZVJlZ2lzdGVySUQgZnBUZW1wUmVnaXN0ZXIgPSBB
Uk1SZWdpc3RlcnM6OmQ3OworcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3RleHByIEFSTVJlZ2lz
dGVyczo6RlBEb3VibGVSZWdpc3RlcklEIGZwVGVtcFJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpk
MTU7CiAgICAgaW5saW5lIEFSTVJlZ2lzdGVyczo6RlBTaW5nbGVSZWdpc3RlcklEIGZwVGVtcFJl
Z2lzdGVyQXNTaW5nbGUoKSB7IHJldHVybiBBUk1SZWdpc3RlcnM6OmFzU2luZ2xlKGZwVGVtcFJl
Z2lzdGVyKTsgfQogCiAgICAgLy8gSW4gdGhlIFRodW1iLTIgaW5zdHJ1Y3Rpb24gc2V0LCBpbnN0
cnVjdGlvbnMgb3BlcmF0aW5nIG9ubHkgb24gcmVnaXN0ZXJzIHIwLXI3IGNhbiBvZnRlbgpAQCAt
MTQ2NCw2ICsxNDY0LDEyIEBAIHB1YmxpYzoKICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKKyAg
ICB2b2lkIGNvbnZlcnRJbnQzMlRvRmxvYXQoUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBk
ZXN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIudm1vdihmcFRlbXBSZWdpc3Rlciwgc3Jj
LCBzcmMpOworICAgICAgICBtX2Fzc2VtYmxlci52Y3Z0X3NpZ25lZFRvRmxvYXRpbmdQb2ludChk
ZXN0LCBmcFRlbXBSZWdpc3RlckFzU2luZ2xlKCksIC8qIHRvRG91YmxlOiAqLyBmYWxzZSk7Cisg
ICAgfQorCiAgICAgdm9pZCBjb252ZXJ0SW50MzJUb0RvdWJsZShSZWdpc3RlcklEIHNyYywgRlBS
ZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci52bW92KGZwVGVtcFJl
Z2lzdGVyLCBzcmMsIHNyYyk7CkBAIC0yMjk1LDYgKzIzMDEsMTQgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gQ2FsbChtX2Fzc2VtYmxlci5iKCksIENhbGw6OkxpbmthYmxlTmVhclRhaWwpOwog
ICAgIH0KIAorICAgIC8vIEZJWE1FOiB3aHkgaXMgdGhpcyB0aGUgc2FtZSB0aGFuIG5lYXJDYWxs
KCkgaW4gQVJNNjQ/IGlzIGl0IHJpZ2h0PworICAgIEFMV0FZU19JTkxJTkUgQ2FsbCB0aHJlYWRT
YWZlUGF0Y2hhYmxlTmVhckNhbGwoKQorICAgIHsKKyAgICAgICAgaW52YWxpZGF0ZUFsbFRlbXBS
ZWdpc3RlcnMoKTsKKyAgICAgICAgbW92ZUZpeGVkV2lkdGhFbmNvZGluZyhUcnVzdGVkSW1tMzIo
MCksIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICByZXR1cm4gQ2FsbChtX2Fzc2VtYmxlci5i
bHgoZGF0YVRlbXBSZWdpc3RlciksIENhbGw6OkxpbmthYmxlTmVhcik7CisgICAgfQorCiAgICAg
QUxXQVlTX0lOTElORSBDYWxsIGNhbGwoUHRyVGFnKQogICAgIHsKICAgICAgICAgbW92ZUZpeGVk
V2lkdGhFbmNvZGluZyhUcnVzdGVkSW1tMzIoMCksIGRhdGFUZW1wUmVnaXN0ZXIpOwpAQCAtMjMx
OSw2ICsyMzMzLDEyIEBAIHB1YmxpYzoKICAgICBBTFdBWVNfSU5MSU5FIENhbGwgY2FsbChSZWdp
c3RlcklEIHRhcmdldCwgUmVnaXN0ZXJJRCBjYWxsVGFnKSB7IHJldHVybiBVTlVTRURfUEFSQU0o
Y2FsbFRhZyksIGNhbGwodGFyZ2V0LCBOb1B0clRhZyk7IH0KICAgICBBTFdBWVNfSU5MSU5FIENh
bGwgY2FsbChBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgY2FsbFRhZykgeyByZXR1cm4gVU5V
U0VEX1BBUkFNKGNhbGxUYWcpLCBjYWxsKGFkZHJlc3MsIE5vUHRyVGFnKTsgfQogCisgICAgQUxX
QVlTX0lOTElORSB2b2lkIGNhbGxPcGVyYXRpb24oY29uc3QgRnVuY3Rpb25QdHI8T3BlcmF0aW9u
UHRyVGFnPiBvcGVyYXRpb24pCisgICAgeworICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIob3Bl
cmF0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAg
ICAgY2FsbChhZGRyZXNzVGVtcFJlZ2lzdGVyLCBPcGVyYXRpb25QdHJUYWcpOworICAgIH0KKwog
ICAgIEFMV0FZU19JTkxJTkUgdm9pZCByZXQoKQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIu
YngobGlua1JlZ2lzdGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1ZhbHVlUmVwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oCmluZGV4
IDE1N2JjODg2ODIzMS4uNzY5MzhjNmZlY2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNWYWx1ZVJlcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Zh
bHVlUmVwLmgKQEAgLTEyNiw5ICsxMjYsMTMgQEAgcHVibGljOgogICAgIFZhbHVlUmVwKFdhc206
OlZhbHVlTG9jYXRpb24gbG9jYXRpb24pCiAgICAgewogICAgICAgICBzd2l0Y2ggKGxvY2F0aW9u
LmtpbmQoKSkgewotICAgICAgICBjYXNlIFdhc206OlZhbHVlTG9jYXRpb246OktpbmQ6OlJlZ2lz
dGVyOgorICAgICAgICBjYXNlIFdhc206OlZhbHVlTG9jYXRpb246OktpbmQ6OkdQUlJlZ2lzdGVy
OgogICAgICAgICAgICAgbV9raW5kID0gUmVnaXN0ZXI7Ci0gICAgICAgICAgICB1LnJlZyA9IGxv
Y2F0aW9uLnJlZygpOworICAgICAgICAgICAgdS5yZWcgPSBsb2NhdGlvbi5qc3IoKS5wYXlsb2Fk
R1BSKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXYXNtOjpWYWx1ZUxvY2F0
aW9uOjpLaW5kOjpGUFJSZWdpc3RlcjoKKyAgICAgICAgICAgIG1fa2luZCA9IFJlZ2lzdGVyOwor
ICAgICAgICAgICAgdS5yZWcgPSBsb2NhdGlvbi5mcHIoKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIFdhc206OlZhbHVlTG9jYXRpb246OktpbmQ6OlN0YWNrOgogICAgICAgICAg
ICAgbV9raW5kID0gU3RhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5dGVjb2RlRHVtcGVyLmNwcAppbmRleCBkNTRjNzRmYzYzYzYuLjdiM2Y1ZmM5ZmIyMSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3Bw
CkBAIC00MTMsNyArNDEzLDcgQEAgQ1N0cmluZyBCeXRlY29kZUR1bXBlcjo6Zm9ybWF0Q29uc3Rh
bnQoVHlwZSB0eXBlLCB1aW50NjRfdCBjb25zdGFudCkgY29uc3QKICAgICAgICAgaWYgKGlzRnVu
Y3JlZih0eXBlKSB8fCBpc0V4dGVybnJlZih0eXBlKSkgewogICAgICAgICAgICAgaWYgKEpTVmFs
dWU6OmRlY29kZShjb25zdGFudCkgPT0ganNOdWxsKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
ICJudWxsIjsKLSAgICAgICAgICAgIHJldHVybiB0b0NTdHJpbmcoUmF3UG9pbnRlcihiaXR3aXNl
X2Nhc3Q8dm9pZCo+KGNvbnN0YW50KSkpOworICAgICAgICAgICAgcmV0dXJuIHRvQ1N0cmluZyhS
YXdQb2ludGVyKGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludHB0cl90Pihjb25z
dGFudCkpKSk7CiAgICAgICAgIH0KIAogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxG
cmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCmlu
ZGV4IDhmNTNjMzNlNGIxYi4uMGU0MGRlZGY4MDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCkBAIC0xNjcsOCArMTY3LDggQEAgbmFtZXNwYWNl
IEpTQyAgewogICAgICAgICAvLyB0byBzZWUgaWYgaXQncyBhIGNlbGwsIGFuZCBpZiBpdCdzIG5v
dCwgd2UgdGhyb3cgYW4gZXhjZXB0aW9uLgogICAgICAgICBpbmxpbmUgSlNWYWx1ZSBndWFyYW50
ZWVkSlNWYWx1ZUNhbGxlZSgpIGNvbnN0OwogICAgICAgICBpbmxpbmUgSlNPYmplY3QqIGpzQ2Fs
bGVlKCkgY29uc3Q7Ci0gICAgICAgIENhbGxlZUJpdHMgY2FsbGVlKCkgY29uc3QgeyByZXR1cm4g
Q2FsbGVlQml0cyh0aGlzW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0u
cG9pbnRlcigpKTsgfQotICAgICAgICBTVVBQUkVTU19BU0FOIENhbGxlZUJpdHMgdW5zYWZlQ2Fs
bGVlKCkgY29uc3QgeyByZXR1cm4gQ2FsbGVlQml0cyh0aGlzW3N0YXRpY19jYXN0PGludD4oQ2Fs
bEZyYW1lU2xvdDo6Y2FsbGVlKV0uYXNhblVuc2FmZVBvaW50ZXIoKSk7IH0KKyAgICAgICAgQ2Fs
bGVlQml0cyBjYWxsZWUoKSBjb25zdCB7IHJldHVybiBDYWxsZWVCaXRzKHRoaXNbc3RhdGljX2Nh
c3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXS51bmJveGVkSW50NjQoKSk7IH0KKyAgICAg
ICAgU1VQUFJFU1NfQVNBTiBDYWxsZWVCaXRzIHVuc2FmZUNhbGxlZSgpIGNvbnN0IHsgcmV0dXJu
IENhbGxlZUJpdHModGhpc1tzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSld
LmFzYW5VbnNhZmVVbmJveGVkSW50NjQoKSk7IH0KICAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxv
Y2soKSBjb25zdDsKICAgICAgICAgQ29kZUJsb2NrKiogYWRkcmVzc09mQ29kZUJsb2NrKCkgY29u
c3QgeyByZXR1cm4gYml0d2lzZV9jYXN0PENvZGVCbG9jayoqPih0aGlzICsgc3RhdGljX2Nhc3Q8
aW50PihDYWxsRnJhbWVTbG90Ojpjb2RlQmxvY2spKTsgfQogICAgICAgICBpbmxpbmUgU1VQUFJF
U1NfQVNBTiBDb2RlQmxvY2sqIHVuc2FmZUNvZGVCbG9jaygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxlZUJpdHMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmgKaW5kZXggMThiYjdlZjdmYThj
Li5kZWEzYWU1NTgxNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9DYWxsZWVCaXRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0NhbGxlZUJpdHMuaApAQCAtMzksMTEgKzM5LDIxIEBAIGNsYXNzIEpTQ2VsbDsKIGNsYXNzIENh
bGxlZUJpdHMgewogcHVibGljOgogICAgIENhbGxlZUJpdHMoKSA9IGRlZmF1bHQ7Ci0gICAgQ2Fs
bGVlQml0cyh2b2lkKiBwdHIpIDogbV9wdHIocHRyKSB7IH0gCisgICAgQ2FsbGVlQml0cyhpbnQ2
NF90IHZhbHVlKQorI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIDogbV9wdHIgeyByZWludGVy
cHJldF9jYXN0PHZvaWQqPih2YWx1ZSkgfQorI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAg
ICAgOiBtX3B0ciB7IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KEpTVmFsdWU6OmRlY29kZSh2YWx1
ZSkucGF5bG9hZCgpKSB9CisgICAgICAgICwgbV90YWcgeyBKU1ZhbHVlOjpkZWNvZGUodmFsdWUp
LnRhZygpIH0KKyNlbmRpZgorICAgIHsgfQogCiAgICAgQ2FsbGVlQml0cyYgb3BlcmF0b3I9KEpT
Q2VsbCogY2VsbCkKICAgICB7CiAgICAgICAgIG1fcHRyID0gY2VsbDsKKyNpZiBVU0UoSlNWQUxV
RTMyXzY0KQorICAgICAgICBtX3RhZyA9IEpTVmFsdWU6OkNlbGxUYWc7CisjZW5kaWYKICAgICAg
ICAgQVNTRVJUKGlzQ2VsbCgpKTsKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KQEAgLTUx
LDE4ICs2MSwyNCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgIHN0YXRp
YyB2b2lkKiBib3hXYXNtKFdhc206OkNhbGxlZSogY2FsbGVlKQogICAgIHsKLSAgICAgICAgQ2Fs
bGVlQml0cyByZXN1bHQocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KGNhbGxlZSkgfCBKU1ZhbHVlOjpXYXNtVGFnKSk7CisjaWYgVVNFKEpTVkFMVUU2
NCkKKyAgICAgICAgQ2FsbGVlQml0cyByZXN1bHQgeyByZWludGVycHJldF9jYXN0PGludDY0X3Q+
KGNhbGxlZSkgfCBKU1ZhbHVlOjpXYXNtVGFnIH07CiAgICAgICAgIEFTU0VSVChyZXN1bHQuaXNX
YXNtKCkpOwogICAgICAgICByZXR1cm4gcmVzdWx0LnJhd1B0cigpOworI2VsaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAgICAgcmV0dXJuIGNhbGxlZTsgLy8gVGhlIHBvaW50ZXIgaXMgYXMgaXMs
IGJ1dCB0aGUgY29ycmVzcG9uZGluZyB0YWcgZmllbGQgbmVlZHMgdG8gYmUgc2V0IHRvIFdhc21U
YWcgc2VwYXJhdGVseS4KKyNlbmRpZgogICAgIH0KICNlbmRpZgogCiAgICAgYm9vbCBpc1dhc20o
KSBjb25zdAogICAgIHsKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgICAgIHJldHVybiAo
cmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG1fcHRyKSAmIEpTVmFsdWU6Oldhc21NYXNrKSA9
PSBKU1ZhbHVlOjpXYXNtVGFnOwotI2Vsc2UKKyNpZiAhRU5BQkxFKFdFQkFTU0VNQkxZKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CisjZWxpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICByZXR1cm4g
KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtX3B0cikgJiBKU1ZhbHVlOjpXYXNtTWFzaykg
PT0gSlNWYWx1ZTo6V2FzbVRhZzsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJl
dHVybiBtX3RhZyA9PSBKU1ZhbHVlOjpXYXNtVGFnOwogI2VuZGlmCiAgICAgfQogICAgIGJvb2wg
aXNDZWxsKCkgY29uc3QgeyByZXR1cm4gIWlzV2FzbSgpOyB9CkBAIC03NywxNCArOTMsMjEgQEAg
cHVibGljOgogICAgIFdhc206OkNhbGxlZSogYXNXYXNtQ2FsbGVlKCkgY29uc3QKICAgICB7CiAg
ICAgICAgIEFTU0VSVChpc1dhc20oKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgcmV0
dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2FzbTo6Q2FsbGVlKj4ocmVpbnRlcnByZXRfY2FzdDx1aW50
cHRyX3Q+KG1fcHRyKSAmIH5KU1ZhbHVlOjpXYXNtVGFnKTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFdhc206OkNhbGxlZSo+KG1fcHRy
KTsKKyNlbmRpZgogICAgIH0KICNlbmRpZgogCiAgICAgdm9pZCogcmF3UHRyKCkgY29uc3QgeyBy
ZXR1cm4gbV9wdHI7IH0KLSAgICAKKwogcHJpdmF0ZToKICAgICB2b2lkKiBtX3B0ciB7IG51bGxw
dHIgfTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIHVpbnQzMl90IG1fdGFnIHsgSlNWYWx1
ZTo6RW1wdHlWYWx1ZVRhZyB9OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmgKaW5kZXggZDg3OWM5
MGJlMzExLi40NjE4MTNjNDFkMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9SZWdpc3Rlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9SZWdpc3Rlci5oCkBAIC03Miw2ICs3MiwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgaW50NjRfdCB1bmJveGVkSW50NjQoKSBjb25zdDsKICAgICAgICAgaW50NjRfdCBhc2FuVW5z
YWZlVW5ib3hlZEludDY0KCkgY29uc3Q7CiAgICAgICAgIGJvb2wgdW5ib3hlZEJvb2xlYW4oKSBj
b25zdDsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
ICAgIGZsb2F0IHVuYm94ZWRGbG9hdCgpIGNvbnN0OworICAgICAgICBmbG9hdCBhc2FuVW5zYWZl
VW5ib3hlZEZsb2F0KCkgY29uc3Q7CisjZW5kaWYKICAgICAgICAgZG91YmxlIHVuYm94ZWREb3Vi
bGUoKSBjb25zdDsKICAgICAgICAgZG91YmxlIGFzYW5VbnNhZmVVbmJveGVkRG91YmxlKCkgY29u
c3Q7CiAgICAgICAgIEpTQ2VsbCogdW5ib3hlZENlbGwoKSBjb25zdDsKQEAgLTE4OCw2ICsxOTIs
MTggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiAhIXBheWxvYWQoKTsKICAgICB9
CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgQUxX
QVlTX0lOTElORSBmbG9hdCBSZWdpc3Rlcjo6dW5ib3hlZEZsb2F0KCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8ZmxvYXQ+KHBheWxvYWQoKSk7CisgICAgfQorCisg
ICAgU1VQUFJFU1NfQVNBTiBBTFdBWVNfSU5MSU5FIGZsb2F0IFJlZ2lzdGVyOjphc2FuVW5zYWZl
VW5ib3hlZEZsb2F0KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8
ZmxvYXQ+KHBheWxvYWQoKSk7CisgICAgfQorI2VuZGlmCisKICAgICBBTFdBWVNfSU5MSU5FIGRv
dWJsZSBSZWdpc3Rlcjo6dW5ib3hlZERvdWJsZSgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1
cm4gdS5udW1iZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2Vt
Ymx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMu
aAppbmRleCBmYzU5ZWE5NGNjYTMuLjEyZWZhMTlhZWQ2MyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCkBAIC0xNDAzLDcgKzE0MDMsMTAgQEAgcHVibGlj
OgogICAgICAgICBqaXRBc3NlcnRJc0pTRG91YmxlKGdwcik7CiAgICAgICAgIHJldHVybiB1bmJv
eERvdWJsZVdpdGhvdXRBc3NlcnRpb25zKGdwciwgcmVzdWx0R1BSLCBmcHIsIG1vZGUpOwogICAg
IH0KLSAgICAKKyAgICB2b2lkIHVuYm94RG91YmxlKEpTVmFsdWVSZWdzIHJlZ3MsIEZQUlJlZyBm
cHIpCisgICAgeworICAgICAgICB1bmJveERvdWJsZShyZWdzLnRhZ0dQUigpLCByZWdzLnBheWxv
YWRHUFIoKSwgZnByKTsKKyAgICB9CiAgICAgdm9pZCBib3hEb3VibGUoRlBSUmVnIGZwciwgSlNW
YWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlID0gSGF2ZVRhZ1JlZ2lzdGVycykK
ICAgICB7CiAgICAgICAgIGJveERvdWJsZShmcHIsIHJlZ3MuZ3ByKCksIG1vZGUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmNwcAppbmRl
eCBlZDgzMDNkZTQxYjUuLmJhZDIwMjlmN2NmOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5jcHAKQEAgLTM5LDE4ICszOSw0MiBAQCBS
ZWdpc3RlckF0T2Zmc2V0TGlzdDo6UmVnaXN0ZXJBdE9mZnNldExpc3QoKSB7IH0KIFJlZ2lzdGVy
QXRPZmZzZXRMaXN0OjpSZWdpc3RlckF0T2Zmc2V0TGlzdChSZWdpc3RlclNldCByZWdpc3RlclNl
dCwgT2Zmc2V0QmFzZVR5cGUgb2Zmc2V0QmFzZVR5cGUpCiAgICAgOiBtX3JlZ2lzdGVycyhyZWdp
c3RlclNldC5udW1iZXJPZlNldFJlZ2lzdGVycygpKQogewotICAgIHNpemVfdCBudW1iZXJPZlJl
Z2lzdGVycyA9IHJlZ2lzdGVyU2V0Lm51bWJlck9mU2V0UmVnaXN0ZXJzKCk7Ci0gICAgcHRyZGlm
Zl90IG9mZnNldCA9IDA7Ci0gICAgCi0gICAgaWYgKG9mZnNldEJhc2VUeXBlID09IEZyYW1lUG9p
bnRlckJhc2VkKQotICAgICAgICBvZmZzZXQgPSAtKHN0YXRpY19jYXN0PHB0cmRpZmZfdD4obnVt
YmVyT2ZSZWdpc3RlcnMpICogc2l6ZW9mKENQVVJlZ2lzdGVyKSk7CisgICAgY29uc3RleHByIHNp
emVfdCBTaXplT2ZHUFIgPSBzaXplb2YoQ1BVUmVnaXN0ZXIpOworICAgIGNvbnN0ZXhwciBzaXpl
X3QgU2l6ZU9mRlBSID0gc2l6ZW9mKGRvdWJsZSk7CiAKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAg
IHN0YXRpY19hc3NlcnQoU2l6ZU9mR1BSID09IFNpemVPZkZQUik7CisgICAgc2l6ZV90IG51bWJl
ck9mUmVncyA9IHJlZ2lzdGVyU2V0Lm51bWJlck9mU2V0UmVnaXN0ZXJzKCk7CisgICAgbV9zaXpl
T2ZBcmVhSW5CeXRlcyA9IG51bWJlck9mUmVncyAqIFNpemVPZkdQUjsKKyNlbGlmIFVTRShKU1ZB
TFVFMzJfNjQpCisgICAgc3RhdGljX2Fzc2VydCgyICogU2l6ZU9mR1BSID09IFNpemVPZkZQUik7
CisgICAgc2l6ZV90IG51bWJlck9mR1BScyA9IHJlZ2lzdGVyU2V0Lm51bWJlck9mU2V0R1BScygp
OworICAgIHNpemVfdCBudW1iZXJPZkZQUnMgPSByZWdpc3RlclNldC5udW1iZXJPZlNldEZQUnMo
KTsKKyAgICBpZiAobnVtYmVyT2ZGUFJzKQorICAgICAgICBudW1iZXJPZkdQUnMgPSBXVEY6OnJv
dW5kVXBUb011bHRpcGxlT2Y8Mj4obnVtYmVyT2ZHUFJzKTsKKyAgICBtX3NpemVPZkFyZWFJbkJ5
dGVzID0gbnVtYmVyT2ZHUFJzICogU2l6ZU9mR1BSICsgbnVtYmVyT2ZGUFJzICogU2l6ZU9mRlBS
OworI2VuZGlmCisKKyAgICBwdHJkaWZmX3Qgc3RhcnRPZmZzZXQgPSAwOworICAgIGlmIChvZmZz
ZXRCYXNlVHlwZSA9PSBGcmFtZVBvaW50ZXJCYXNlZCkKKyAgICAgICAgc3RhcnRPZmZzZXQgPSAt
c3RhdGljX2Nhc3Q8cHRyZGlmZl90PihtX3NpemVPZkFyZWFJbkJ5dGVzKTsKKworICAgIHB0cmRp
ZmZfdCBvZmZzZXQgPSBzdGFydE9mZnNldDsKICAgICB1bnNpZ25lZCBpbmRleCA9IDA7CiAgICAg
cmVnaXN0ZXJTZXQuZm9yRWFjaChbJl0gKFJlZyByZWcpIHsKKyAgICAgICAgc2l6ZV90IHJlZ2lz
dGVyU2l6ZSA9IFNpemVPZkdQUjsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBpZiAo
cmVnLmlzRlBSKCkpIHsKKyAgICAgICAgICAgIHJlZ2lzdGVyU2l6ZSA9IFNpemVPZkZQUjsKKyAg
ICAgICAgICAgIG9mZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZjxTaXplT2ZGUFI+KG9m
ZnNldCk7CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBtX3JlZ2lzdGVyc1tpbmRleF0gPSBS
ZWdpc3RlckF0T2Zmc2V0KHJlZywgb2Zmc2V0KTsKLSAgICAgICAgb2Zmc2V0ICs9IHNpemVvZihD
UFVSZWdpc3Rlcik7CisgICAgICAgIG9mZnNldCArPSByZWdpc3RlclNpemU7CiAgICAgICAgICsr
aW5kZXg7CiAgICAgfSk7CisKKyAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihvZmZzZXQg
LSBzdGFydE9mZnNldCkgPT0gbV9zaXplT2ZBcmVhSW5CeXRlcyk7CiB9CiAKIHZvaWQgUmVnaXN0
ZXJBdE9mZnNldExpc3Q6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3QuaAppbmRleCBkMTE3Y2Y3
NWUwOTguLjJhMGU4YjlkMTI1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
UmVnaXN0ZXJBdE9mZnNldExpc3QuaApAQCAtNjUsMTEgKzY1LDE0IEBAIHB1YmxpYzoKICAgICBG
aXhlZFZlY3RvcjxSZWdpc3RlckF0T2Zmc2V0Pjo6Y29uc3RfaXRlcmF0b3IgYmVnaW4oKSBjb25z
dCB7IHJldHVybiBtX3JlZ2lzdGVycy5iZWdpbigpOyB9CiAgICAgRml4ZWRWZWN0b3I8UmVnaXN0
ZXJBdE9mZnNldD46OmNvbnN0X2l0ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaXN0
ZXJzLmVuZCgpOyB9CiAKKyAgICBzaXplX3Qgc2l6ZU9mQXJlYUluQnl0ZXMoKSBjb25zdCB7IHJl
dHVybiBtX3NpemVPZkFyZWFJbkJ5dGVzOyB9CisKICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJB
dE9mZnNldExpc3QmIGxsaW50QmFzZWxpbmVDYWxsZWVTYXZlUmVnaXN0ZXJzKCk7IC8vIFJlZ2lz
dGVycyBhbmQgT2Zmc2V0cyBzYXZlZCBhbmQgdXNlZCBieSB0aGUgTExJbnQuCiAgICAgc3RhdGlj
IGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXRMaXN0JiBkZmdDYWxsZWVTYXZlUmVnaXN0ZXJzKCk7IC8v
IFJlZ2lzdGVycyBhbmQgT2Zmc2V0cyBzYXZlZCBhbmQgdXNlZCBieSBERkcuCiAKIHByaXZhdGU6
CiAgICAgRml4ZWRWZWN0b3I8UmVnaXN0ZXJBdE9mZnNldD4gbV9yZWdpc3RlcnM7CisgICAgc2l6
ZV90IG1fc2l6ZU9mQXJlYUluQnl0ZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5jcHAKaW5kZXggNTBlZWMyOGE0MWY2Li5j
MTZhOWU0NzIxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0
ZXJTZXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuY3Bw
CkBAIC05NCw2ICs5NCw4IEBAIFJlZ2lzdGVyU2V0IFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hS
ZWdpc3RlcnMoKQogICAgIHJldHVybiBSZWdpc3RlclNldChNYWNyb0Fzc2VtYmxlcjo6c19zY3Jh
dGNoUmVnaXN0ZXIpOwogI2VsaWYgQ1BVKEFSTTY0KSB8fCBDUFUoUklTQ1Y2NCkKICAgICByZXR1
cm4gUmVnaXN0ZXJTZXQoTWFjcm9Bc3NlbWJsZXI6OmRhdGFUZW1wUmVnaXN0ZXIsIE1hY3JvQXNz
ZW1ibGVyOjptZW1vcnlUZW1wUmVnaXN0ZXIpOworI2VsaWYgQ1BVKEFSTV9USFVNQjIpCisgICAg
cmV0dXJuIFJlZ2lzdGVyU2V0KE1hY3JvQXNzZW1ibGVyOjpkYXRhVGVtcFJlZ2lzdGVyLCBNYWNy
b0Fzc2VtYmxlcjo6YWRkcmVzc1RlbXBSZWdpc3Rlcik7CiAjZWxpZiBDUFUoTUlQUykKICAgICBS
ZWdpc3RlclNldCByZXN1bHQ7CiAgICAgcmVzdWx0LnNldChNYWNyb0Fzc2VtYmxlcjo6aW1tVGVt
cFJlZ2lzdGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dE9mZmxpbmVBc21Db25maWcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9m
ZmxpbmVBc21Db25maWcuaAppbmRleCAyYTYwN2RmOGM4ZTguLmM5ZTBjMjk0NWQ3MyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcu
aApAQCAtMTQ0LDYgKzE0NCwxMiBAQAogI2RlZmluZSBPRkZMSU5FX0FTTV9KU1ZBTFVFNjQgMAog
I2VuZGlmCiAKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorI2RlZmluZSBPRkZMSU5FX0FTTV9KU1ZB
TFVFMzJfNjQgMQorI2Vsc2UKKyNkZWZpbmUgT0ZGTElORV9BU01fSlNWQUxVRTMyXzY0IDAKKyNl
bmRpZgorCiAjaWYgVVNFKEJJR0lOVDMyKQogI2RlZmluZSBPRkZMSU5FX0FTTV9CSUdJTlQzMiAx
CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRleCBhZDI1MDE3ZWYwYjQuLjcwNDAxZTQ1YmU2ZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIzMl82NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTM4LDE4ICszOCwzNCBAQCBtYWNybyBnZXR1T3BlcmFuZFdp
ZGUxNkpTKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCiAgICAgbG9hZGggY29uc3RleHBy
ICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogMiArIE9wY29kZUlEV2lkZTE2U2l6
ZUpTW1BCLCBQQywgMV0sIGRzdAogZW5kCiAKK21hY3JvIGdldHVPcGVyYW5kV2lkZTE2V2FzbShv
cGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQorICAgIGxvYWRoIGNvbnN0ZXhwciAlb3Bjb2Rl
U3RydWN0JV8lZmllbGROYW1lJV9pbmRleCAqIDIgKyBPcGNvZGVJRFdpZGUxNlNpemVXYXNtW1BC
LCBQQywgMV0sIGRzdAorZW5kCisKIG1hY3JvIGdldE9wZXJhbmRXaWRlMTZKUyhvcGNvZGVTdHJ1
Y3QsIGZpZWxkTmFtZSwgZHN0KQogICAgIGxvYWRoc2kgY29uc3RleHByICVvcGNvZGVTdHJ1Y3Ql
XyVmaWVsZE5hbWUlX2luZGV4ICogMiArIE9wY29kZUlEV2lkZTE2U2l6ZUpTW1BCLCBQQywgMV0s
IGRzdAogZW5kCiAKK21hY3JvIGdldE9wZXJhbmRXaWRlMTZXYXNtKG9wY29kZVN0cnVjdCwgZmll
bGROYW1lLCBkc3QpCisgICAgbG9hZGhzaSBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxk
TmFtZSVfaW5kZXggKiAyICsgT3Bjb2RlSURXaWRlMTZTaXplV2FzbVtQQiwgUEMsIDFdLCBkc3QK
K2VuZAorCiBtYWNybyBnZXR1T3BlcmFuZFdpZGUzMkpTKG9wY29kZVN0cnVjdCwgZmllbGROYW1l
LCBkc3QpCiAgICAgbG9hZGkgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2lu
ZGV4ICogNCArIE9wY29kZUlEV2lkZTMyU2l6ZUpTW1BCLCBQQywgMV0sIGRzdAogZW5kCiAKK21h
Y3JvIGdldHVPcGVyYW5kV2lkZTMyV2FzbShvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQor
ICAgIGxvYWRpIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRleCAqIDQg
KyBPcGNvZGVJRFdpZGUzMlNpemVXYXNtW1BCLCBQQywgMV0sIGRzdAorZW5kCisKIG1hY3JvIGdl
dE9wZXJhbmRXaWRlMzJKUyhvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQogICAgIGxvYWRp
cyBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiA0ICsgT3Bjb2Rl
SURXaWRlMzJTaXplSlNbUEIsIFBDLCAxXSwgZHN0CiBlbmQKIAorbWFjcm8gZ2V0T3BlcmFuZFdp
ZGUzMldhc20ob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkKKyAgICBsb2FkaXMgY29uc3Rl
eHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogNCArIE9wY29kZUlEV2lkZTMy
U2l6ZVdhc21bUEIsIFBDLCAxXSwgZHN0CitlbmQKKwogbWFjcm8gbWFrZVJldHVybihnZXQsIGRp
c3BhdGNoLCBmbikKICAgICBmbihtYWNybyh0YWcsIHBheWxvYWQpCiAgICAgICAgIG1vdmUgdGFn
LCB0NQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5
LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseS5hc20KaW5kZXgg
MjJlYmUyYTdlYjNkLi4xMjVmMGNiNzA5ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9XZWJBc3NlbWJseS5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L1dlYkFzc2VtYmx5LmFzbQpAQCAtMzEsNTYgKzMxLDgwIEBAIGlmIEhBVkVfRkFTVF9UTFMK
IGVuZAogCiBpZiBYODZfNjQKLSAgICBjb25zdCBOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgPSA2
CisgICAgY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzID0gNgogZWxzaWYgQVJNNjQgb3Ig
QVJNNjRFIG9yIFJJU0NWNjQKLSAgICBjb25zdCBOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgPSA4
CisgICAgY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzID0gOAorZWxzaWYgQVJNdjcKKyAg
ICBjb25zdCBOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgPSAyCiBlbHNlCiAgICAgZXJyb3IKIGVu
ZAorCiBjb25zdCBOdW1iZXJPZldhc21Bcmd1bWVudEZQUnMgPSA4Ci1jb25zdCBOdW1iZXJPZldh
c21Bcmd1bWVudHMgPSBOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyBOdW1iZXJPZldhc21Bcmd1
bWVudEZQUnMKKworY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1lbnRzID0gTnVtYmVyT2ZXYXNtQXJn
dW1lbnRKU1JzICsgTnVtYmVyT2ZXYXNtQXJndW1lbnRGUFJzCiAKICMgQWxsIGNhbGxlZSBzYXZl
cyBtdXN0IG1hdGNoIHRoZSBkZWZpbml0aW9uIGluIFdhc21DYWxsZWUuY3BwCiAKICMgVGhlc2Ug
bXVzdCBtYXRjaCB0aGUgZGVmaW5pdGlvbiBpbiBXYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwCi1j
b25zdCB3YXNtSW5zdGFuY2UgPSBjc3IwCi1jb25zdCBtZW1vcnlCYXNlID0gY3NyMwotY29uc3Qg
Ym91bmRzQ2hlY2tpbmdTaXplID0gY3NyNAoraWYgWDg2XzY0IG9yIEFSTTY0IG9yIEFSTTY0RQor
ICAgIGNvbnN0IHdhc21JbnN0YW5jZSA9IGNzcjAKKyAgICBjb25zdCBtZW1vcnlCYXNlID0gY3Ny
MworICAgIGNvbnN0IGJvdW5kc0NoZWNraW5nU2l6ZSA9IGNzcjQKK2Vsc2lmIEFSTXY3CisgICAg
Y29uc3Qgd2FzbUluc3RhbmNlID0gY3NyMAorICAgIGNvbnN0IG1lbW9yeUJhc2UgPSBpbnZhbGlk
R1BSCisgICAgY29uc3QgYm91bmRzQ2hlY2tpbmdTaXplID0gaW52YWxpZEdQUgorZWxzZQorICAg
IGVycm9yCitlbmQKIAogIyBUaGlzIG11c3QgbWF0Y2ggdGhlIGRlZmluaXRpb24gaW4gTG93TGV2
ZWxJbnRlcnByZXRlci5hc20KIGlmIFg4Nl82NAogICAgIGNvbnN0IFBCID0gY3NyMgogZWxzaWYg
QVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKICAgICBjb25zdCBQQiA9IGNzcjcKK2Vsc2lmIEFS
TXY3CisgICAgY29uc3QgUEIgPSBjc3IxCiBlbHNlCiAgICAgZXJyb3IKIGVuZAogCi1tYWNybyBm
b3JFYWNoQXJndW1lbnRHUFIoZm4pCi0gICAgZm4oMCAqIDgsIHdhMCkKLSAgICBmbigxICogOCwg
d2ExKQotICAgIGZuKDIgKiA4LCB3YTIpCi0gICAgZm4oMyAqIDgsIHdhMykKLSAgICBmbig0ICog
OCwgd2E0KQotICAgIGZuKDUgKiA4LCB3YTUpCi0gICAgaWYgQVJNNjQgb3IgQVJNNjRFCi0gICAg
ICAgIGZuKDYgKiA4LCB3YTYpCi0gICAgICAgIGZuKDcgKiA4LCB3YTcpCisjIEhlbHBlciBtYWNy
b3MKKworIyBPbiBKU1ZBTFVFNjQsIGVhY2ggNjQtYml0IGFyZ3VtZW50IEdQUiBob2xkcyBvbmUg
d2hvbGUgV2FzbSB2YWx1ZS4KKyMgT24gSlNWQUxVRTMyXzY0LCBhIGNvbnNlY3V0aXZlIHBhaXIg
b2YgZXZlbi9vZGQgbnVtYmVyZWQgR1BScyBob2xkIGEgc2luZ2xlCisjIFdhc20gdmFsdWUgKGV2
ZW4gaWYgdGhhdCB2YWx1ZSBpcyBpMzIvZjMyLCB0aGUgb2RkIG51bWJlcmVkIEdQUiBob2xkcyB0
aGUKKyMgbW9yZSBzaWduaWZpY2FudCB3b3JkKS4KK21hY3JvIGZvckVhY2hBcmd1bWVudEpTUihm
bikKKyAgICBpZiBKU1ZBTFVFNjQKKyAgICAgICAgZm4oMCAqIDgsIHdhMCkKKyAgICAgICAgZm4o
MSAqIDgsIHdhMSkKKyAgICAgICAgZm4oMiAqIDgsIHdhMikKKyAgICAgICAgZm4oMyAqIDgsIHdh
MykKKyAgICAgICAgZm4oNCAqIDgsIHdhNCkKKyAgICAgICAgZm4oNSAqIDgsIHdhNSkKKyAgICAg
ICAgaWYgQVJNNjQgb3IgQVJNNjRFCisgICAgICAgICAgICBmbig2ICogOCwgd2E2KQorICAgICAg
ICAgICAgZm4oNyAqIDgsIHdhNykKKyAgICAgICAgZW5kCisgICAgZWxzZQorICAgICAgICBmbigw
ICogOCwgd2ExLCB3YTApCisgICAgICAgIGZuKDEgKiA4LCB3YTMsIHdhMikKICAgICBlbmQKIGVu
ZAogCiBtYWNybyBmb3JFYWNoQXJndW1lbnRGUFIoZm4pCi0gICAgZm4oKE51bWJlck9mV2FzbUFy
Z3VtZW50R1BScyArIDApICogOCwgd2ZhMCkKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRH
UFJzICsgMSkgKiA4LCB3ZmExKQotICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyAy
KSAqIDgsIHdmYTIpCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDMpICogOCwg
d2ZhMykKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgNCkgKiA4LCB3ZmE0KQot
ICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyA1KSAqIDgsIHdmYTUpCi0gICAgZm4o
KE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDYpICogOCwgd2ZhNikKLSAgICBmbigoTnVtYmVy
T2ZXYXNtQXJndW1lbnRHUFJzICsgNykgKiA4LCB3ZmE3KQorICAgIGZuKChOdW1iZXJPZldhc21B
cmd1bWVudEpTUnMgKyAwKSAqIDgsIHdmYTApCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50
SlNScyArIDEpICogOCwgd2ZhMSkKKyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsg
MikgKiA4LCB3ZmEyKQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyAzKSAqIDgs
IHdmYTMpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIDQpICogOCwgd2ZhNCkK
KyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgNSkgKiA4LCB3ZmE1KQorICAgIGZu
KChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyA2KSAqIDgsIHdmYTYpCisgICAgZm4oKE51bWJl
ck9mV2FzbUFyZ3VtZW50SlNScyArIDcpICogOCwgd2ZhNykKIGVuZAogCi0jIEhlbHBlciBtYWNy
b3MKICMgRklYTUU6IEV2ZW50dWFsbHkgdGhpcyBzaG91bGQgYmUgdW5pZmllZCB3aXRoIHRoZSBK
UyB2ZXJzaW9ucwogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAz
NjU2CiAKQEAgLTEzMCwxMCArMTU0LDE1IEBAIG1hY3JvIGNoZWNrU3dpdGNoVG9KSVRGb3JQcm9s
b2d1ZShjb2RlQmxvY2tSZWdpc3RlcikKICAgICAgICAgICAgIGJ0cHogcjAsIC5yZWNvdmVyCiAg
ICAgICAgICAgICBtb3ZlIHIwLCB3czAKIAotICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50R1BS
KG1hY3JvIChvZmZzZXQsIGdwcikKK2lmIEpTVkFMVUU2NAorICAgICAgICAgICAgZm9yRWFjaEFy
Z3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwcikKICAgICAgICAgICAgICAgICBsb2FkcSAtb2Zm
c2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXSwgZ3By
CiAgICAgICAgICAgICBlbmQpCi0KK2Vsc2UKKyAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEpT
UihtYWNybyAob2Zmc2V0LCBncHJNc3csIGdwTHN3KQorICAgICAgICAgICAgICAgIGxvYWQyaWEg
LW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0s
IGdwTHN3LCBncHJNc3cKKyAgICAgICAgICAgIGVuZCkKK2VuZAogICAgICAgICAgICAgZm9yRWFj
aEFyZ3VtZW50RlBSKG1hY3JvIChvZmZzZXQsIGZwcikKICAgICAgICAgICAgICAgICBsb2FkZCAt
b2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXSwg
ZnByCiAgICAgICAgICAgICBlbmQpCkBAIC0yMDEsNiArMjMwLDkgQEAgbWFjcm8gcHJlc2VydmVD
YWxsZWVTYXZlc1VzZWRCeVdhc20oKQogICAgIGVsc2lmIFg4Nl82NCBvciBSSVNDVjY0CiAgICAg
ICAgIHN0b3JlcCBQQiwgLTB4OFtjZnJdCiAgICAgICAgIHN0b3JlcCB3YXNtSW5zdGFuY2UsIC0w
eDEwW2Nmcl0KKyAgICBlbHNpZiBBUk12NworICAgICAgICBzdG9yZXAgUEIsIC00W2Nmcl0KKyAg
ICAgICAgc3RvcmVwIHdhc21JbnN0YW5jZSwgLThbY2ZyXQogICAgIGVsc2UKICAgICAgICAgZXJy
b3IKICAgICBlbmQKQEAgLTIxNSw2ICsyNDcsOSBAQCBtYWNybyByZXN0b3JlQ2FsbGVlU2F2ZXNV
c2VkQnlXYXNtKCkKICAgICBlbHNpZiBYODZfNjQgb3IgUklTQ1Y2NAogICAgICAgICBsb2FkcCAt
MHg4W2Nmcl0sIFBCCiAgICAgICAgIGxvYWRwIC0weDEwW2Nmcl0sIHdhc21JbnN0YW5jZQorICAg
IGVsc2lmIEFSTXY3CisgICAgICAgIGxvYWRwIC00W2Nmcl0sIFBCCisgICAgICAgIGxvYWRwIC04
W2Nmcl0sIHdhc21JbnN0YW5jZQogICAgIGVsc2UKICAgICAgICAgZXJyb3IKICAgICBlbmQKQEAg
LTI0NSwxMCArMjgwLDEyIEBAIGVuZAogZW5kCiAKIG1hY3JvIHJlbG9hZE1lbW9yeVJlZ2lzdGVy
c0Zyb21JbnN0YW5jZShpbnN0YW5jZSwgc2NyYXRjaDEsIHNjcmF0Y2gyKQoraWYgbm90IEFSTXY3
CiAgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkTWVtb3J5W2luc3RhbmNlXSwgbWVt
b3J5QmFzZQogICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2NhY2hlZEJvdW5kc0NoZWNraW5n
U2l6ZVtpbnN0YW5jZV0sIGJvdW5kc0NoZWNraW5nU2l6ZQogICAgIGNhZ2VkUHJpbWl0aXZlTWF5
QmVOdWxsKG1lbW9yeUJhc2UsIGJvdW5kc0NoZWNraW5nU2l6ZSwgc2NyYXRjaDEsIHNjcmF0Y2gy
KSAjIElmIGJvdW5kc0NoZWNraW5nU2l6ZSBpcyAwLCBwb2ludGVyIGNhbiBiZSBhIG51bGxwdHIu
CiBlbmQKK2VuZAogCiBtYWNybyB0aHJvd0V4Y2VwdGlvbihleGNlcHRpb24pCiAgICAgc3RvcmVp
IGNvbnN0ZXhwciBXYXNtOjpFeGNlcHRpb25UeXBlOjolZXhjZXB0aW9uJSwgQXJndW1lbnRDb3Vu
dEluY2x1ZGluZ1RoaXMgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0KQEAgLTI4MCw4ICszMTcsMTMgQEAg
bWFjcm8gcmVzdG9yZVN0YWNrUG9pbnRlckFmdGVyQ2FsbCgpCiAgICAgbG9hZGkgV2FzbTo6TExJ
bnRDYWxsZWU6Om1fbnVtQ2FsbGVlTG9jYWxzW3dzMV0sIHdzMQogICAgIGxzaGlmdHAgMywgd3Mx
CiAgICAgYWRkcCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCwgd3MxCitpZiBBUk12Nwor
ICAgIHN1YnAgY2ZyLCB3czEsIHdzMQorICAgIG1vdmUgd3MxLCBzcAorZWxzZQogICAgIHN1YnAg
Y2ZyLCB3czEsIHNwCiBlbmQKK2VuZAogCiBtYWNybyB3YXNtUHJvbG9ndWUobG9hZFdhc21JbnN0
YW5jZSkKICAgICAjIFNldCB1cCB0aGUgY2FsbCBmcmFtZSBhbmQgY2hlY2sgaWYgd2Ugc2hvdWxk
IE9TUi4KQEAgLTI5Miw2ICszMzQsOSBAQCBtYWNybyB3YXNtUHJvbG9ndWUobG9hZFdhc21JbnN0
YW5jZSkKIAogICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX293bmVyW3dhc21JbnN0YW5jZV0s
IHdzMAogICAgIHN0b3JlcCB3czAsIFRoaXNBcmd1bWVudE9mZnNldFtjZnJdCitpZiBub3QgSlNW
QUxVRTY0CisgICAgc3RvcmVpIENlbGxUYWcsIFRhZ09mZnNldCArIFRoaXNBcmd1bWVudE9mZnNl
dFtjZnJdCitlbmQKIAogICAgIGxvYWRwIENhbGxlZVtjZnJdLCB3czAKICAgICBhbmRwIH4zLCB3
czAKQEAgLTMwMyw2ICszNDgsMTAgQEAgbWFjcm8gd2FzbVByb2xvZ3VlKGxvYWRXYXNtSW5zdGFu
Y2UpCiAgICAgYWRkcCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCwgd3MxCiAgICAgc3Vi
cCBjZnIsIHdzMSwgd3MxCiAKK2lmIG5vdCBKU1ZBTFVFNjQKKyAgICBzdWJwIDgsIHdzMSAjIGFs
aWduIHN0YWNrIHBvaW50ZXIKK2VuZAorCiAgICAgYnBhIHdzMSwgY2ZyLCAuc3RhY2tPdmVyZmxv
dwogICAgIGJwYmVxIFdhc206Okluc3RhbmNlOjptX2NhY2hlZFN0YWNrTGltaXRbd2FzbUluc3Rh
bmNlXSwgd3MxLCAuc3RhY2tIZWlnaHRPSwogCkBAIC0zMTIsMTAgKzM2MSwxNSBAQCBtYWNybyB3
YXNtUHJvbG9ndWUobG9hZFdhc21JbnN0YW5jZSkKIC5zdGFja0hlaWdodE9LOgogICAgIG1vdmUg
d3MxLCBzcAogCi0gICAgZm9yRWFjaEFyZ3VtZW50R1BSKG1hY3JvIChvZmZzZXQsIGdwcikKK2lm
IEpTVkFMVUU2NAorICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHIpCiAg
ICAgICAgIHN0b3JlcSBncHIsIC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFs
UmVnaXN0ZXJzICogOFtjZnJdCiAgICAgZW5kKQotCitlbHNlCisgICAgZm9yRWFjaEFyZ3VtZW50
SlNSKG1hY3JvIChvZmZzZXQsIGdwck1zdywgZ3BMc3cpCisgICAgICAgIHN0b3JlMmlhIGdwTHN3
LCBncHJNc3csIC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJz
ICogOFtjZnJdCisgICAgZW5kKQorZW5kCiAgICAgZm9yRWFjaEFyZ3VtZW50RlBSKG1hY3JvIChv
ZmZzZXQsIGZwcikKICAgICAgICAgc3RvcmVkIGZwciwgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZl
U3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0KICAgICBlbmQpCkBAIC0zMjksMTQgKzM4
MywxNiBAQCBtYWNybyB3YXNtUHJvbG9ndWUobG9hZFdhc21JbnN0YW5jZSkKICAgICBsb2FkaSBX
YXNtOjpMTEludENhbGxlZTo6bV9udW1WYXJzW3dzMF0sIHdzMQogICAgIHN1YmkgTnVtYmVyT2ZX
YXNtQXJndW1lbnRzICsgQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzLCB3czEKICAg
ICBidGl6IHdzMSwgLnplcm9Jbml0aWFsaXplTG9jYWxzRG9uZQorICAgIGxzaGlmdGkgMywgd3Mx
CiAgICAgbmVnaSB3czEKK2lmIEpTVkFMVUU2NAogICAgIHN4aTJxIHdzMSwgd3MxCitlbmQKICAg
ICBsZWFwIChOdW1iZXJPZldhc21Bcmd1bWVudHMgKyBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxS
ZWdpc3RlcnMgKyAxKSAqIC04W2Nmcl0sIHdzMAogLnplcm9Jbml0aWFsaXplTG9jYWxzTG9vcDoK
LSAgICBhZGRxIDEsIHdzMQotICAgIHN0b3JlcSAwLCBbd3MwLCB3czEsIDhdCi0gICAgYnRxeiB3
czEsIC56ZXJvSW5pdGlhbGl6ZUxvY2Fsc0RvbmUKLSAgICBqbXAgLnplcm9Jbml0aWFsaXplTG9j
YWxzTG9vcAorICAgIGFkZHAgUHRyU2l6ZSwgd3MxCisgICAgc3RvcmVwIDAsIFt3czAsIHdzMV0K
KyAgICBidHBueiB3czEsIC56ZXJvSW5pdGlhbGl6ZUxvY2Fsc0xvb3AKIC56ZXJvSW5pdGlhbGl6
ZUxvY2Fsc0RvbmU6CiBlbmQKIApAQCAtMzc1LDYgKzQzMSwyNCBAQCBtYWNybyBzbG93V2FzbU9w
KG9wY29kZU5hbWUpCiAgICAgdW5wcmVmaXhlZFNsb3dXYXNtT3Aod2FzbV8lb3Bjb2RlTmFtZSUp
CiBlbmQKIAorIyBGbG9hdCB0byBmbG9hdCByb3VuZGluZyBvcHMKK21hY3JvIHdhc21Sb3VuZGlu
Z09wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCitpZiBKU1ZBTFVFNjQgIyBBbGwgY3Vy
cmVudCA2NC1iaXQgcGxhdGZvcm1zIGhhdmUgaW5zdHJ1Y3Rpb25zIGZvciB0aGVzZQorICAgIHdh
c21PcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGZuKQorZWxzZQorICAgIHNsb3dXYXNtT3Ao
b3Bjb2RlTmFtZSkKK2VuZAorZW5kCisKKyMgaTY0IChzaWduZWQvdW5zaWduZWQpIHRvIGYzMiBv
ciBmNjQKK21hY3JvIHdhc21JNjRUb0ZPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGZuKQor
aWYgSlNWQUxVRTY0ICMgQWxsIGN1cnJlbnQgNjQtYml0IHBsYXRmb3JtcyBoYXZlIGluc3RydWN0
aW9ucyBmb3IgdGhlc2UKKyAgICB3YXNtT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBmbikK
K2Vsc2UKKyAgICBzbG93V2FzbU9wKG9wY29kZU5hbWUpCitlbmQKK2VuZAorCiAjIE1hY3JvIHZl
cnNpb24gb2YgbG9hZCBvcGVyYXRpb25zOiBtbG9hZFtzdWZmaXhdCiAjIGxvYWRzIGZpZWxkIGZy
b20gdGhlIGluc3RydWN0aW9uIHN0cmVhbSBhbmQgcGVyZm9ybXMgbG9hZFtzdWZmaXhdIHRvIGRz
dAogbWFjcm8gZmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgoY3R4LCBmbikKQEAgLTM5NywxMiAr
NDcxLDIxIEBAIG1hY3JvIGxvYWRDb25zdGFudE9yVmFyaWFibGUoY3R4LCBpbmRleCwgbG9hZGVy
KQogICAgIGVuZCkKIGVuZAogCitpZiBKU1ZBTFVFNjQKIG1hY3JvIG1sb2FkcShjdHgsIGZpZWxk
LCBkc3QpCiAgICAgd2dldHMoY3R4LCBmaWVsZCwgZHN0KQogICAgIGxvYWRDb25zdGFudE9yVmFy
aWFibGUoY3R4LCBkc3QsIG1hY3JvIChmcm9tKQogICAgICAgICBsb2FkcSBmcm9tLCBkc3QKICAg
ICBlbmQpCiBlbmQKK2Vsc2UKK21hY3JvIG1sb2FkMmkoY3R4LCBmaWVsZCwgZHN0TXN3LCBkc3RM
c3cpCisgICAgd2dldHMoY3R4LCBmaWVsZCwgZHN0THN3KQorICAgIGxvYWRDb25zdGFudE9yVmFy
aWFibGUoY3R4LCBkc3RMc3csIG1hY3JvIChmcm9tKQorICAgICAgICBsb2FkMmlhIGZyb20sIGRz
dExzdywgZHN0TXN3CisgICAgZW5kKQorZW5kCitlbmQKIAogbWFjcm8gbWxvYWRpKGN0eCwgZmll
bGQsIGRzdCkKICAgICB3Z2V0cyhjdHgsIGZpZWxkLCBkc3QpCkBAIC00MzQsMTEgKzUxNywxOSBA
QCBlbmQKIAogIyBUeXBlZCByZXR1cm5zCiAKK2lmIEpTVkFMVUU2NAogbWFjcm8gcmV0dXJucShj
dHgsIHZhbHVlKQogICAgIHdnZXRzKGN0eCwgbV9kc3QsIHQ1KQogICAgIHN0b3JlcSB2YWx1ZSwg
W2NmciwgdDUsIDhdCiAgICAgZGlzcGF0Y2goY3R4KQogZW5kCitlbHNlCittYWNybyByZXR1cm4y
aShjdHgsIG1zdywgbHN3KQorICAgIHdnZXRzKGN0eCwgbV9kc3QsIHQ1KQorICAgIHN0b3JlMmlh
IGxzdywgbXN3LCBbY2ZyLCB0NSwgOF0KKyAgICBkaXNwYXRjaChjdHgpCitlbmQKK2VuZAogCiBt
YWNybyByZXR1cm5pKGN0eCwgdmFsdWUpCiAgICAgd2dldHMoY3R4LCBtX2RzdCwgdDUpCkBAIC01
MTEsNyArNjAyLDcgQEAgbWFjcm8gd2FzbUNvZGVCbG9ja0dldHRlcih0YXJnZXRSZWdpc3RlcikK
IGVuZAogCiBvcCh3YXNtX2Z1bmN0aW9uX3Byb2xvZ3VlLCBtYWNybyAoKQotICAgIGlmIG5vdCBX
RUJBU1NFTUJMWSBvciBub3QgSlNWQUxVRTY0IG9yIENfTE9PUCBvciBDX0xPT1BfV0lOCisgICAg
aWYgbm90IFdFQkFTU0VNQkxZIG9yIENfTE9PUCBvciBDX0xPT1BfV0lOCiAgICAgICAgIGVycm9y
CiAgICAgZW5kCiAKQEAgLTUyMCw3ICs2MTEsNyBAQCBvcCh3YXNtX2Z1bmN0aW9uX3Byb2xvZ3Vl
LCBtYWNybyAoKQogZW5kKQogCiBvcCh3YXNtX2Z1bmN0aW9uX3Byb2xvZ3VlX25vX3RscywgbWFj
cm8gKCkKLSAgICBpZiBub3QgV0VCQVNTRU1CTFkgb3Igbm90IEpTVkFMVUU2NCBvciBDX0xPT1Ag
b3IgQ19MT09QX1dJTgorICAgIGlmIG5vdCBXRUJBU1NFTUJMWSBvciBDX0xPT1Agb3IgQ19MT09Q
X1dJTgogICAgICAgICBlcnJvcgogICAgIGVuZAogCkBAIC02MjMsMTYgKzcxNCwyMyBAQCBfd2Fz
bV9lbnRlcjoKICAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0MiwgMHhkZWFkMDBlMSkK
ICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDIgICAgICAgICAgICAgICAgLy8gdDI8Q29kZUJs
b2NrPiA9IGNmci5Db2RlQmxvY2sKICAgICBsb2FkaSBXYXNtOjpMTEludENhbGxlZTo6bV9udW1W
YXJzW3QyXSwgdDIgICAgICAvLyB0MjxzaXplX3Q+ID0gdDI8Q29kZUJsb2NrPi5tX251bVZhcnMK
LSAgICBzdWJxIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyArIE51bWJlck9mV2Fz
bUFyZ3VtZW50cywgdDIKKyAgICBzdWJpIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVy
cyArIE51bWJlck9mV2FzbUFyZ3VtZW50cywgdDIKICAgICBidGl6IHQyLCAub3BFbnRlckRvbmUK
LSAgICBtb3ZlIGNmciwgdDEKLSAgICBzdWJxIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lz
dGVycyAqIDggKyBOdW1iZXJPZldhc21Bcmd1bWVudHMgKiA4LCB0MQorICAgIHN1YnAgY2ZyLCAo
Q2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICsgTnVtYmVyT2ZXYXNtQXJndW1lbnRz
KSAqIFNsb3RTaXplLCB0MQorICAgIGxzaGlmdGkgMywgdDIKICAgICBuZWdpIHQyCitpZiBKU1ZB
TFVFNjQKICAgICBzeGkycSB0MiwgdDIKK2VuZAorICAgIG1vdmUgMCwgdDYKIC5vcEVudGVyTG9v
cDoKLSAgICBzdG9yZXEgMCwgW3QxLCB0MiwgOF0KLSAgICBhZGRxIDEsIHQyCi0gICAgYnRxbnog
dDIsIC5vcEVudGVyTG9vcAoraWYgSlNWQUxVRTY0CisgICAgc3RvcmVxIHQ2LCBbdDEsIHQyXQor
ZWxzZQorICAgIHN0b3JlMmlhIHQ2LCB0NiwgW3QxLCB0Ml0KK2VuZAorICAgIGFkZHAgOCwgdDIK
KyAgICBidHBueiB0MiwgLm9wRW50ZXJMb29wCiAub3BFbnRlckRvbmU6CiAgICAgd2FzbURpc3Bh
dGNoSW5kaXJlY3QoMSkKIApAQCAtNjQ1LDExICs3NDMsNiBAQCB3YXNtT3AobG9vcF9oaW50LCBX
YXNtTG9vcEhpbnQsIG1hY3JvKGN0eCkKICAgICBkaXNwYXRjaChjdHgpCiBlbmQpCiAKLXdhc21P
cChtb3YsIFdhc21Nb3YsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX3NyYywgdDApCi0g
ICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCiB3YXNtT3AoanRydWUsIFdhc21KdHJ1ZSwgbWFj
cm8oY3R4KQogICAgIG1sb2FkaShjdHgsIG1fY29uZGl0aW9uLCB0MCkKICAgICBidGl6IHQwLCAu
Y29udGludWUKQEAgLTcwMSw5ICs3OTQsMTUgQEAgZW5kKQogCiB1bnByZWZpeGVkV2FzbU9wKHdh
c21fcmV0LCBXYXNtUmV0LCBtYWNybyhjdHgpCiAgICAgY2hlY2tTd2l0Y2hUb0pJVEZvckVwaWxv
Z3VlKCkKLSAgICBmb3JFYWNoQXJndW1lbnRHUFIobWFjcm8gKG9mZnNldCwgZ3ByKQoraWYgSlNW
QUxVRTY0CisgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwcikKICAgICAg
ICAgbG9hZHEgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMg
KiA4W2Nmcl0sIGdwcgogICAgIGVuZCkKK2Vsc2UKKyAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFj
cm8gKG9mZnNldCwgZ3ByTXN3LCBncExzdykKKyAgICAgICAgbG9hZDJpYSAtb2Zmc2V0IC0gOCAt
IENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXSwgZ3BMc3csIGdwck1z
dworICAgIGVuZCkKK2VuZAogICAgIGZvckVhY2hBcmd1bWVudEZQUihtYWNybyAob2Zmc2V0LCBm
cHIpCiAgICAgICAgIGxvYWRkIC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFs
UmVnaXN0ZXJzICogOFtjZnJdLCBmcHIKICAgICBlbmQpCkBAIC03MjEsNDQgKzgyMCw2IEBAIHdh
c21PcChyZXRfdm9pZCwgV2FzbVJldFZvaWQsIG1hY3JvKGN0eCkKICAgICBkb1JldHVybigpCiBl
bmQpCiAKLXdhc21PcChyZWZfaXNfbnVsbCwgV2FzbVJlZklzTnVsbCwgbWFjcm8oY3R4KQotICAg
IG1sb2FkcChjdHgsIG1fcmVmLCB0MCkKLSAgICBjcWVxIHQwLCBWYWx1ZU51bGwsIHQwCi0gICAg
cmV0dXJuaShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoZ2V0X2dsb2JhbCwgV2FzbUdldEdsb2Jh
bCwgbWFjcm8oY3R4KQotICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUlu
c3RhbmNlXSwgdDAKLSAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQotICAgIGxvYWRx
IFt0MCwgdDEsIDhdLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKHNl
dF9nbG9iYWwsIFdhc21TZXRHbG9iYWwsIG1hY3JvKGN0eCkKLSAgICBsb2FkcCBXYXNtOjpJbnN0
YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCi0gICAgd2dldHUoY3R4LCBtX2dsb2Jh
bEluZGV4LCB0MSkKLSAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICBzdG9yZXEgdDIs
IFt0MCwgdDEsIDhdCi0gICAgZGlzcGF0Y2goY3R4KQotZW5kKQotCi13YXNtT3AoZ2V0X2dsb2Jh
bF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNtR2V0R2xvYmFsUG9ydGFibGVCaW5kaW5nLCBtYWNybyhj
dHgpCi0gICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0
MAotICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCi0gICAgbG9hZHEgW3QwLCB0MSwg
OF0sIHQwCi0gICAgbG9hZHEgW3QwXSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0K
LXdhc21PcChzZXRfZ2xvYmFsX3BvcnRhYmxlX2JpbmRpbmcsIFdhc21TZXRHbG9iYWxQb3J0YWJs
ZUJpbmRpbmcsIG1hY3JvKGN0eCkKLSAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxz
W3dhc21JbnN0YW5jZV0sIHQwCi0gICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKLSAg
ICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKLSAg
ICBzdG9yZXEgdDIsIFt0MF0KLSAgICBkaXNwYXRjaChjdHgpCi1lbmQpCi0KIG1hY3JvIHNsb3dQ
YXRoRm9yV2FzbUNhbGwoY3R4LCBzbG93UGF0aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAgICAgY2Fs
bFdhc21DYWxsU2xvd1BhdGgoCiAgICAgICAgIHNsb3dQYXRoLApAQCAtNzczLDcgKzgzNCwxMiBA
QCBtYWNybyBzbG93UGF0aEZvcldhc21DYWxsKGN0eCwgc2xvd1BhdGgsIHN0b3JlV2FzbUluc3Rh
bmNlKQogCiAgICAgICAgICAgICB3Z2V0dShjdHgsIG1fc3RhY2tPZmZzZXQsIHdzMSkKICAgICAg
ICAgICAgIGxzaGlmdGkgMywgd3MxCitpZiBBUk12NworICAgICAgICAgICAgc3VicCBjZnIsIHdz
MSwgd3MxCisgICAgICAgICAgICBtb3ZlIHdzMSwgc3AKK2Vsc2UKICAgICAgICAgICAgIHN1YnAg
Y2ZyLCB3czEsIHNwCitlbmQKIAogICAgICAgICAgICAgd2dldHUoY3R4LCBtX251bWJlck9mU3Rh
Y2tBcmdzLCB3czEpCiAKQEAgLTc4NCwxMCArODUwLDE1IEBAIG1hY3JvIHNsb3dQYXRoRm9yV2Fz
bUNhbGwoY3R4LCBzbG93UGF0aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAgICAgICAgICAgICByZWxv
YWRNZW1vcnlSZWdpc3RlcnNGcm9tSW5zdGFuY2UodGFyZ2V0V2FzbUluc3RhbmNlLCB3YTAsIHdh
MSkKIAogICAgICAgICAgICAgIyBMb2FkIHJlZ2lzdGVycyBmcm9tIHN0YWNrCi0gICAgICAgICAg
ICBmb3JFYWNoQXJndW1lbnRHUFIobWFjcm8gKG9mZnNldCwgZ3ByKQoraWYgSlNWQUxVRTY0Cisg
ICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByKQogICAgICAg
ICAgICAgICAgIGxvYWRxIENhbGxGcmFtZUhlYWRlclNpemUgKyA4ICsgb2Zmc2V0W3NwLCB3czEs
IDhdLCBncHIKICAgICAgICAgICAgIGVuZCkKLQorZWxzZQorICAgICAgICAgICAgZm9yRWFjaEFy
Z3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwck1zdywgZ3BMc3cpCisgICAgICAgICAgICAgICAg
bG9hZDJpYSBDYWxsRnJhbWVIZWFkZXJTaXplICsgOCArIG9mZnNldFtzcCwgd3MxLCA4XSwgZ3BM
c3csIGdwck1zdworICAgICAgICAgICAgZW5kKQorZW5kCiAgICAgICAgICAgICBmb3JFYWNoQXJn
dW1lbnRGUFIobWFjcm8gKG9mZnNldCwgZnByKQogICAgICAgICAgICAgICAgIGxvYWRkIENhbGxG
cmFtZUhlYWRlclNpemUgKyA4ICsgb2Zmc2V0W3NwLCB3czEsIDhdLCBmcHIKICAgICAgICAgICAg
IGVuZCkKQEAgLTgzMCw3ICs5MDEsMTEgQEAgbWFjcm8gc2xvd1BhdGhGb3JXYXNtQ2FsbChjdHgs
IHNsb3dQYXRoLCBzdG9yZVdhc21JbnN0YW5jZSkKIAogICAgICAgICAgICAgIyBXZSBuZWVkIHRv
IHNldCBQQyB0byBsb2FkIGluZm9ybWF0aW9uIGZyb20gdGhlIGluc3RydWN0aW9uIHN0cmVhbSwg
YnV0IHdlCiAgICAgICAgICAgICAjIG5lZWQgdG8gcHJlc2VydmUgaXRzIGN1cnJlbnQgdmFsdWUg
c2luY2UgaXQgbWlnaHQgY29udGFpbiBhIHJldHVybiB2YWx1ZQoraWYgQVJNdjcKKyAgICAgICAg
ICAgIHB1c2ggUEMKK2Vsc2UKICAgICAgICAgICAgIG1vdmUgUEMsIG1lbW9yeUJhc2UKK2VuZAog
ICAgICAgICAgICAgbW92ZSBQQiwgd2FzbUluc3RhbmNlCiAgICAgICAgICAgICBsb2FkaSBBcmd1
bWVudENvdW50SW5jbHVkaW5nVGhpcyArIFRhZ09mZnNldFtjZnJdLCBQQwogICAgICAgICAgICAg
bG9hZHAgQ29kZUJsb2NrW2Nmcl0sIFBCCkBAIC04MzksMTcgKzkxNCwyOCBAQCBtYWNybyBzbG93
UGF0aEZvcldhc21DYWxsKGN0eCwgc2xvd1BhdGgsIHN0b3JlV2FzbUluc3RhbmNlKQogICAgICAg
ICAgICAgd2dldHUoY3R4LCBtX3N0YWNrT2Zmc2V0LCB3czEpCiAgICAgICAgICAgICBsc2hpZnRp
IDMsIHdzMQogICAgICAgICAgICAgbmVnaSB3czEKK2lmIEpTVkFMVUU2NAogICAgICAgICAgICAg
c3hpMnEgd3MxLCB3czEKK2VuZAogICAgICAgICAgICAgYWRkcCBjZnIsIHdzMQogCiAgICAgICAg
ICAgICAjIEFyZ3VtZW50IHJlZ2lzdGVycyBhcmUgYWxzbyByZXR1cm4gcmVnaXN0ZXJzLCBzbyB0
aGV5IG11c3QgYmUgc3RvcmVkIHRvIHRoZSBzdGFjawogICAgICAgICAgICAgIyBpbiBjYXNlIHRo
ZXkgY29udGFpbiByZXR1cm4gdmFsdWVzLgogICAgICAgICAgICAgd2dldHUoY3R4LCBtX251bWJl
ck9mU3RhY2tBcmdzLCB3czApCitpZiBBUk12NworICAgICAgICAgICAgcG9wIFBDCitlbHNlCiAg
ICAgICAgICAgICBtb3ZlIG1lbW9yeUJhc2UsIFBDCi0gICAgICAgICAgICBmb3JFYWNoQXJndW1l
bnRHUFIobWFjcm8gKG9mZnNldCwgZ3ByKQorZW5kCitpZiBKU1ZBTFVFNjQKKyAgICAgICAgICAg
IGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHIpCiAgICAgICAgICAgICAgICAg
c3RvcmVxIGdwciwgQ2FsbEZyYW1lSGVhZGVyU2l6ZSArIDggKyBvZmZzZXRbd3MxLCB3czAsIDhd
CiAgICAgICAgICAgICBlbmQpCi0KK2Vsc2UKKyAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEpT
UihtYWNybyAob2Zmc2V0LCBncHJNc3csIGdwTHN3KQorICAgICAgICAgICAgICAgIHN0b3JlMmlh
IGdwTHN3LCBncHJNc3csIENhbGxGcmFtZUhlYWRlclNpemUgKyA4ICsgb2Zmc2V0W3dzMSwgd3Mw
LCA4XQorICAgICAgICAgICAgZW5kKQorZW5kCiAgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRG
UFIobWFjcm8gKG9mZnNldCwgZnByKQogICAgICAgICAgICAgICAgIHN0b3JlZCBmcHIsIENhbGxG
cmFtZUhlYWRlclNpemUgKyA4ICsgb2Zmc2V0W3dzMSwgd3MwLCA4XQogICAgICAgICAgICAgZW5k
KQpAQCAtOTAwLDE5OSArOTg2LDM2IEBAIHdhc21PcChjdXJyZW50X21lbW9yeSwgV2FzbUN1cnJl
bnRNZW1vcnksIG1hY3JvKGN0eCkKICAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9tZW1vcnlb
d2FzbUluc3RhbmNlXSwgdDAKICAgICBsb2FkcCBXYXNtOjpNZW1vcnk6Om1faGFuZGxlW3QwXSwg
dDAKICAgICBsb2FkcCBXYXNtOjpNZW1vcnlIYW5kbGU6Om1fc2l6ZVt0MF0sIHQwCi0gICAgdXJz
aGlmdHEgMTYsIHQwCisgICAgdXJzaGlmdHAgMTYsIHQwCitpZiBKU1ZBTFVFNjQKICAgICByZXR1
cm5xKGN0eCwgdDApCitlbHNlCisgICAgcmV0dXJuMmkoY3R4LCAwLCB0MCkKK2VuZAogZW5kKQog
CiB3YXNtT3Aoc2VsZWN0LCBXYXNtU2VsZWN0LCBtYWNybyhjdHgpCiAgICAgbWxvYWRpKGN0eCwg
bV9jb25kaXRpb24sIHQwKQogICAgIGJ0aXogdDAsIC5pc1plcm8KK2lmIEpTVkFMVUU2NAogICAg
IG1sb2FkcShjdHgsIG1fbm9uWmVybywgdDApCiAgICAgcmV0dXJucShjdHgsIHQwKQogLmlzWmVy
bzoKICAgICBtbG9hZHEoY3R4LCBtX3plcm8sIHQwKQogICAgIHJldHVybnEoY3R4LCB0MCkKK2Vs
c2UKKyAgICBtbG9hZDJpKGN0eCwgbV9ub25aZXJvLCB0MSwgdDApCisgICAgcmV0dXJuMmkoY3R4
LCB0MSwgdDApCisuaXNaZXJvOgorICAgIG1sb2FkMmkoY3R4LCBtX3plcm8sIHQxLCB0MCkKKyAg
ICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZAogZW5kKQogCi0jIHVzZXMgb2Zmc2V0IGFzIHNj
cmF0Y2ggYW5kIHJldHVybnMgcmVzdWx0IG9uIHBvaW50ZXIKLW1hY3JvIGVtaXRDaGVja0FuZFBy
ZXBhcmVQb2ludGVyKGN0eCwgcG9pbnRlciwgb2Zmc2V0LCBzaXplKQotICAgIGxlYXAgc2l6ZSAt
IDFbcG9pbnRlciwgb2Zmc2V0XSwgdDUKLSAgICBicGIgdDUsIGJvdW5kc0NoZWNraW5nU2l6ZSwg
LmNvbnRpbnVhdGlvbgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNjZXNz
KQotLmNvbnRpbnVhdGlvbjoKLSAgICBhZGRwIG1lbW9yeUJhc2UsIHBvaW50ZXIKLWVuZAotCi1t
YWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgsIHBvaW50ZXIs
IG9mZnNldCwgc2l6ZSkKLSAgICBsZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNldF0sIHQ1Ci0g
ICAgYnBiIHQ1LCBib3VuZHNDaGVja2luZ1NpemUsIC5jb250aW51YXRpb24KLS50aHJvdzoKLSAg
ICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKLS5jb250aW51YXRpb246
Ci0gICAgYWRkcCBtZW1vcnlCYXNlLCBwb2ludGVyCi0gICAgYWRkcCBvZmZzZXQsIHBvaW50ZXIK
LWVuZAotCi1tYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhB
bGlnbm1lbnRDaGVjayhjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKLSAgICBsZWFwIHNpemUg
LSAxW3BvaW50ZXIsIG9mZnNldF0sIHQ1Ci0gICAgYnBiIHQ1LCBib3VuZHNDaGVja2luZ1NpemUs
IC5jb250aW51YXRpb24KLS50aHJvdzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01l
bW9yeUFjY2VzcykKLS5jb250aW51YXRpb246Ci0gICAgYWRkcCBtZW1vcnlCYXNlLCBwb2ludGVy
Ci0gICAgYWRkcCBvZmZzZXQsIHBvaW50ZXIKLSAgICBidHBueiBwb2ludGVyLCAoc2l6ZSAtIDEp
LCAudGhyb3cKLWVuZAotCi1tYWNybyB3YXNtTG9hZE9wKG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4p
Ci0gICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4
LCBtX3BvaW50ZXIsIHQwKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAg
ICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4LCB0MCwgdDEsIHNpemUpCi0gICAgICAg
IGZuKFt0MCwgdDFdLCB0MikKLSAgICAgICAgcmV0dXJucShjdHgsIHQyKQotICAgIGVuZCkKLWVu
ZAotCi13YXNtTG9hZE9wKGxvYWQ4X3UsIFdhc21Mb2FkOFUsIDEsIG1hY3JvKG1lbSwgZHN0KSBs
b2FkYiBtZW0sIGRzdCBlbmQpCi13YXNtTG9hZE9wKGxvYWQxNl91LCBXYXNtTG9hZDE2VSwgMiwg
bWFjcm8obWVtLCBkc3QpIGxvYWRoIG1lbSwgZHN0IGVuZCkKLXdhc21Mb2FkT3AobG9hZDMyX3Us
IFdhc21Mb2FkMzJVLCA0LCBtYWNybyhtZW0sIGRzdCkgbG9hZGkgbWVtLCBkc3QgZW5kKQotd2Fz
bUxvYWRPcChsb2FkNjRfdSwgV2FzbUxvYWQ2NFUsIDgsIG1hY3JvKG1lbSwgZHN0KSBsb2FkcSBt
ZW0sIGRzdCBlbmQpCi0KLXdhc21Mb2FkT3AoaTMyX2xvYWQ4X3MsIFdhc21JMzJMb2FkOFMsIDEs
IG1hY3JvKG1lbSwgZHN0KSBsb2FkYnNpIG1lbSwgZHN0IGVuZCkKLXdhc21Mb2FkT3AoaTY0X2xv
YWQ4X3MsIFdhc21JNjRMb2FkOFMsIDEsIG1hY3JvKG1lbSwgZHN0KSBsb2FkYnNxIG1lbSwgZHN0
IGVuZCkKLXdhc21Mb2FkT3AoaTMyX2xvYWQxNl9zLCBXYXNtSTMyTG9hZDE2UywgMiwgbWFjcm8o
bWVtLCBkc3QpIGxvYWRoc2kgbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChpNjRfbG9hZDE2X3Ms
IFdhc21JNjRMb2FkMTZTLCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGhzcSBtZW0sIGRzdCBlbmQp
Ci13YXNtTG9hZE9wKGk2NF9sb2FkMzJfcywgV2FzbUk2NExvYWQzMlMsIDQsIG1hY3JvKG1lbSwg
ZHN0KSBsb2FkaXMgbWVtLCBkc3QgZW5kKQotCi1tYWNybyB3YXNtU3RvcmVPcChuYW1lLCBzdHJ1
Y3QsIHNpemUsIGZuKQotICAgIHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1hY3JvKGN0eCkKLSAgICAg
ICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MCkKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNl
dCwgdDEpCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKGN0eCwgdDAsIHQxLCBz
aXplKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICAgICAgZm4odDIsIFt0
MCwgdDFdKQotICAgICAgICBkaXNwYXRjaChjdHgpCi0gICAgZW5kKQotZW5kCi0KLXdhc21TdG9y
ZU9wKHN0b3JlOCwgV2FzbVN0b3JlOCwgMSwgbWFjcm8odmFsdWUsIG1lbSkgc3RvcmViIHZhbHVl
LCBtZW0gZW5kKQotd2FzbVN0b3JlT3Aoc3RvcmUxNiwgV2FzbVN0b3JlMTYsIDIsIG1hY3JvKHZh
bHVlLCBtZW0pIHN0b3JlaCB2YWx1ZSwgbWVtIGVuZCkKLXdhc21TdG9yZU9wKHN0b3JlMzIsIFdh
c21TdG9yZTMyLCA0LCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZWkgdmFsdWUsIG1lbSBlbmQpCi13
YXNtU3RvcmVPcChzdG9yZTY0LCBXYXNtU3RvcmU2NCwgOCwgbWFjcm8odmFsdWUsIG1lbSkgc3Rv
cmVxIHZhbHVlLCBtZW0gZW5kKQotCiAjIE9wY29kZXMgdGhhdCBkb24ndCBoYXZlIHRoZSBgYjNv
cGAgZW50cnkgaW4gd2FzbS5qc29uLiBUaGlzIHNob3VsZCBiZSBrZXB0IGluIHN5bmMKIAotd2Fz
bU9wKGkzMl9kaXZfcywgV2FzbUkzMkRpdlMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRpKGN0eCwg
bV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0aXogdDEsIC50
aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBiaW5lcSB0MSwgLTEsIC5zYWZlCi0gICAgYmllcSB0
MCwgY29uc3RleHByIElOVDMyX01JTiwgLnRocm93SW50ZWdlck92ZXJmbG93Ci0KLS5zYWZlOgot
ICAgIGlmIFg4Nl82NAotICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0
IHRoYXQgdDAgaXMgcmF4IGFuZCB0MiBpcyByZHgKLSAgICAgICAgIyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCi0gICAgICAgIGNkcWkKLSAgICAgICAgaWRp
dmkgdDEKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAotICAgICAgICBkaXZp
cyB0MSwgdDAKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0gICAgcmV0dXJuaShj
dHgsIHQwKQotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihEaXZp
c2lvbkJ5WmVybykKLQotLnRocm93SW50ZWdlck92ZXJmbG93OgotICAgIHRocm93RXhjZXB0aW9u
KEludGVnZXJPdmVyZmxvdykKLWVuZCkKLQotd2FzbU9wKGkzMl9kaXZfdSwgV2FzbUkzMkRpdlUs
IG1hY3JvIChjdHgpCi0gICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgs
IG1fcmhzLCB0MSkKLQotICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBp
ZiBYODZfNjQKLSAgICAgICAgeG9yaSB0MiwgdDIKLSAgICAgICAgdWRpdmkgdDEKLSAgICBlbHNp
ZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAotICAgICAgICBkaXZpIHQxLCB0MAotICAgIGVs
c2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS50aHJv
d0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotZW5k
KQotCi13YXNtT3AoaTMyX3JlbV9zLCBXYXNtSTMyUmVtUywgbWFjcm8gKGN0eCkKLSAgICBtbG9h
ZGkoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRp
eiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAgIGJpbmVxIHQxLCAtMSwgLnNhZmUKLSAg
ICBiaW5lcSB0MCwgY29uc3RleHByIElOVDMyX01JTiwgLnNhZmUKLQotICAgIG1vdmUgMCwgdDIK
LSAgICBqbXAgLnJldHVybgotCi0uc2FmZToKLSAgICBpZiBYODZfNjQKLSAgICAgICAgIyBGSVhN
RTogQWRkIGEgd2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4
Ci0gICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5
MgotICAgICAgICBjZHFpCi0gICAgICAgIGlkaXZpIHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJN
NjRFCi0gICAgICAgIGRpdmlzIHQxLCB0MCwgdDIKLSAgICAgICAgbXVsaSB0MSwgdDIKLSAgICAg
ICAgc3ViaSB0MCwgdDIsIHQyCi0gICAgZWxzaWYgUklTQ1Y2NAotICAgICAgICByZW1pcyB0MSwg
dDAKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0KLS5yZXR1cm46Ci0gICAgcmV0
dXJuaShjdHgsIHQyKQotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlv
bihEaXZpc2lvbkJ5WmVybykKLWVuZCkKLQotd2FzbU9wKGkzMl9yZW1fdSwgV2FzbUkzMlJlbVUs
IG1hY3JvIChjdHgpCi0gICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgs
IG1fcmhzLCB0MSkKLQotICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBp
ZiBYODZfNjQKLSAgICAgICAgeG9yaSB0MiwgdDIKLSAgICAgICAgdWRpdmkgdDEKLSAgICBlbHNp
ZiBBUk02NCBvciBBUk02NEUKLSAgICAgICAgZGl2aSB0MSwgdDAsIHQyCi0gICAgICAgIG11bGkg
dDEsIHQyCi0gICAgICAgIHN1YmkgdDAsIHQyLCB0MgotICAgIGVsc2lmIFJJU0NWNjQKLSAgICAg
ICAgcmVtaSB0MSwgdDAKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0gICAgcmV0
dXJuaShjdHgsIHQyKQotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlv
bihEaXZpc2lvbkJ5WmVybykKLWVuZCkKLQogd2FzbU9wKGkzMl9jdHosIFdhc21JMzJDdHosIG1h
Y3JvIChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBtbG9hZGkoY3R4
LCBtX29wZXJhbmQsIHQwKQogICAgIHR6Y250aSB0MCwgdDAKICAgICByZXR1cm5pKGN0eCwgdDAp
CiBlbmQpCkBAIC0xMTA2LDE0OCArMTAyOSwyNSBAQCB3YXNtT3AoaTMyX3BvcGNudCwgV2FzbUkz
MlBvcGNudCwgbWFjcm8gKGN0eCkKICAgICByZXR1cm5pKGN0eCwgcjEpCiBlbmQpCiAKLXdhc21P
cChpNjRfZGl2X3MsIFdhc21JNjREaXZTLCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1f
bGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0KLSAgICBidHF6IHQxLCAudGhy
b3dEaXZpc2lvbkJ5WmVybwotCi0gICAgYnFuZXEgdDEsIC0xLCAuc2FmZQotICAgIGJxZXEgdDAs
IGNvbnN0ZXhwciBJTlQ2NF9NSU4sIC50aHJvd0ludGVnZXJPdmVyZmxvdwotCi0uc2FmZToKLSAg
ICBpZiBYODZfNjQKLSAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRpY19hc3NldCB0
aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4Ci0gICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgotICAgICAgICBjcW9xCi0gICAgICAgIGlkaXZx
IHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKLSAgICAgICAgZGl2cXMg
dDEsIHQwCi0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVuZAotICAgIHJldHVybnEoY3R4
LCB0MCkKLQotLnRocm93RGl2aXNpb25CeVplcm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNp
b25CeVplcm8pCi0KLS50aHJvd0ludGVnZXJPdmVyZmxvdzoKLSAgICB0aHJvd0V4Y2VwdGlvbihJ
bnRlZ2VyT3ZlcmZsb3cpCi1lbmQpCi0KLXdhc21PcChpNjRfZGl2X3UsIFdhc21JNjREaXZVLCBt
YWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBt
X3JocywgdDEpCi0KLSAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwotCi0gICAgaWYg
WDg2XzY0Ci0gICAgICAgIHhvcnEgdDIsIHQyCi0gICAgICAgIHVkaXZxIHQxCi0gICAgZWxzaWYg
QVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKLSAgICAgICAgZGl2cSB0MSwgdDAKLSAgICBlbHNl
Ci0gICAgICAgIGVycm9yCi0gICAgZW5kCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0udGhyb3dE
aXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLWVuZCkK
LQotd2FzbU9wKGk2NF9yZW1fcywgV2FzbUk2NFJlbVMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRx
KGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0cXog
dDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBicW5lcSB0MSwgLTEsIC5zYWZlCi0gICAg
YnFuZXEgdDAsIGNvbnN0ZXhwciBJTlQ2NF9NSU4sIC5zYWZlCi0KLSAgICBtb3ZlIDAsIHQyCi0g
ICAgam1wIC5yZXR1cm4KLQotLnNhZmU6Ci0gICAgaWYgWDg2XzY0Ci0gICAgICAgICMgRklYTUU6
IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAot
ICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIK
LSAgICAgICAgY3FvcQotICAgICAgICBpZGl2cSB0MQotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0
RQotICAgICAgICBkaXZxcyB0MSwgdDAsIHQyCi0gICAgICAgIG11bHEgdDEsIHQyCi0gICAgICAg
IHN1YnEgdDAsIHQyLCB0MgotICAgIGVsc2lmIFJJU0NWNjQKLSAgICAgICAgcmVtcXMgdDEsIHQw
Ci0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVuZAotCi0ucmV0dXJuOgotICAgIHJldHVy
bnEoY3R4LCB0MikgIyByZHggaGFzIHRoZSByZW1haW5kZXIKLQotLnRocm93RGl2aXNpb25CeVpl
cm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCi1lbmQpCi0KLXdhc21PcChp
NjRfcmVtX3UsIFdhc21JNjRSZW1VLCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhz
LCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0KLSAgICBidHF6IHQxLCAudGhyb3dE
aXZpc2lvbkJ5WmVybwotCi0gICAgaWYgWDg2XzY0Ci0gICAgICAgIHhvcnEgdDIsIHQyCi0gICAg
ICAgIHVkaXZxIHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCi0gICAgICAgIGRpdnEgdDEs
IHQwLCB0MgotICAgICAgICBtdWxxIHQxLCB0MgotICAgICAgICBzdWJxIHQwLCB0MiwgdDIKLSAg
ICBlbHNpZiBSSVNDVjY0Ci0gICAgICAgIHJlbXEgdDEsIHQwCi0gICAgZWxzZQotICAgICAgICBl
cnJvcgotICAgIGVuZAotICAgIHJldHVybnEoY3R4LCB0MikKLQotLnRocm93RGl2aXNpb25CeVpl
cm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCi1lbmQpCi0KLXdhc21PcChp
NjRfY3R6LCBXYXNtSTY0Q3R6LCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFu
ZCwgdDApCi0gICAgdHpjbnRxIHQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQot
d2FzbU9wKGk2NF9wb3BjbnQsIFdhc21JNjRQb3BjbnQsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRx
KGN0eCwgbV9vcGVyYW5kLCBhMSkKLSAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCi0gICAgbW92
ZSBQQywgYTAKLSAgICBjQ2FsbDIoX3Nsb3dfcGF0aF93YXNtX3BvcGNvdW50bGwpCi0gICAgcmVz
dG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCi0gICAgcmV0dXJucShjdHgsIHIxKQotZW5kKQotCi13YXNt
T3AoZjMyX3RydW5jLCBXYXNtRjMyVHJ1bmMsIG1hY3JvIChjdHgpCit3YXNtUm91bmRpbmdPcChm
MzJfdHJ1bmMsIFdhc21GMzJUcnVuYywgbWFjcm8gKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29w
ZXJhbmQsIGZ0MCkKICAgICB0cnVuY2F0ZWYgZnQwLCBmdDAKICAgICByZXR1cm5mKGN0eCwgZnQw
KQogZW5kKQogCi13YXNtT3AoZjMyX25lYXJlc3QsIFdhc21GMzJOZWFyZXN0LCBtYWNybyAoY3R4
KQord2FzbVJvdW5kaW5nT3AoZjMyX25lYXJlc3QsIFdhc21GMzJOZWFyZXN0LCBtYWNybyAoY3R4
KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIHJvdW5kZiBmdDAsIGZ0MAog
ICAgIHJldHVybmYoY3R4LCBmdDApCiBlbmQpCiAKLXdhc21PcChmNjRfdHJ1bmMsIFdhc21GNjRU
cnVuYywgbWFjcm8gKGN0eCkKK3dhc21Sb3VuZGluZ09wKGY2NF90cnVuYywgV2FzbUY2NFRydW5j
LCBtYWNybyAoY3R4KQogICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIHRydW5j
YXRlZCBmdDAsIGZ0MAogICAgIHJldHVybmQoY3R4LCBmdDApCiBlbmQpCiAKLXdhc21PcChmNjRf
bmVhcmVzdCwgV2FzbUY2NE5lYXJlc3QsIG1hY3JvIChjdHgpCit3YXNtUm91bmRpbmdPcChmNjRf
bmVhcmVzdCwgV2FzbUY2NE5lYXJlc3QsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRkKGN0eCwgbV9v
cGVyYW5kLCBmdDApCiAgICAgcm91bmRkIGZ0MCwgZnQwCiAgICAgcmV0dXJuZChjdHgsIGZ0MCkK
QEAgLTEyNzEsMjQgKzEwNzEsNiBAQCB3YXNtT3AoaTMyX3RydW5jX3NfZjMyLCBXYXNtSTMyVHJ1
bmNTRjMyLCBtYWNybyAoY3R4KQogICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMp
CiBlbmQpCiAKLXdhc21PcChpMzJfdHJ1bmNfc19mNjQsIFdhc21JMzJUcnVuY1NGNjQsIG1hY3Jv
IChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YzFl
MDAwMDAwMDIwMDAwMCwgdDAgIyBJTlQzMl9NSU4gLSAxLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAg
ICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIG1vdmUgMHg0MWUw
MDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQzMl9NSU4KLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0
ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIHRydW5jYXRlZDJpcyBmdDAs
IHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJv
d0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQotZW5kKQotCiB3YXNtT3AoaTMyX3RydW5jX3Vf
ZjMyLCBXYXNtSTMyVHJ1bmNVRjMyLCBtYWNybyAoY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3Bl
cmFuZCwgZnQwKQogCkBAIC0xMzA3LDk2ICsxMDg5LDYgQEAgd2FzbU9wKGkzMl90cnVuY191X2Yz
MiwgV2FzbUkzMlRydW5jVUYzMiwgbWFjcm8gKGN0eCkKICAgICB0aHJvd0V4Y2VwdGlvbihPdXRP
ZkJvdW5kc1RydW5jKQogZW5kKQogCi13YXNtT3AoaTMyX3RydW5jX3VfZjY0LCBXYXNtSTMyVHJ1
bmNVRjY0LCBtYWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0g
ICAgbW92ZSAweGJmZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAotICAgIGZxMmQgdDAsIGZ0MQot
ICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgbW92ZSAweDQx
ZjAwMDAwMDAwMDAwMDAsIHQwICMgSU5UMzJfTUlOICogLTIuMAotICAgIGZxMmQgdDAsIGZ0MQot
ICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgdHJ1bmNhdGVk
MmkgZnQwLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmM6Ci0g
ICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKLWVuZCkKLQotd2FzbU9wKGk2NF90
cnVuY19zX2YzMiwgV2FzbUk2NFRydW5jU0YzMiwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGYoY3R4
LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhkZjAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4K
LSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5j
Ci0KLSAgICBtb3ZlIDB4NWYwMDAwMDAsIHQwICMgLUlOVDY0X01JTgotICAgIGZpMmYgdDAsIGZ0
MQotICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgdHJ1bmNh
dGVmMnFzIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5j
OgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCi1lbmQpCi0KLXdhc21PcChp
NjRfdHJ1bmNfc19mNjQsIFdhc21JNjRUcnVuY1NGNjQsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRk
KGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YzNlMDAwMDAwMDAwMDAwMCwgdDAg
IyBJTlQ2NF9NSU4KLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0dW4gZnQwLCBmdDEsIC5vdXRP
ZkJvdW5kc1RydW5jCi0KLSAgICBtb3ZlIDB4NDNlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UNjRf
TUlOCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5k
c1RydW5jCi0KLSAgICB0cnVuY2F0ZWQycXMgZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkK
LQotLm91dE9mQm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVu
YykKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY191X2YzMiwgV2FzbUk2NFRydW5jVUYzMiwgbWFj
cm8gKGN0eCkKLSAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhi
ZjgwMDAwMCwgdDAgIyAtMS4wCi0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZsdGVxdW4gZnQwLCBm
dDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICBtb3ZlIDB4NWY4MDAwMDAsIHQwICMgSU5UNjRf
TUlOICogLTIuMAotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0
T2ZCb3VuZHNUcnVuYwotCi0gICAgdHJ1bmNhdGVmMnEgZnQwLCB0MAotICAgIHJldHVybnEoY3R4
LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3Vu
ZHNUcnVuYykKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY191X2Y2NCwgV2FzbUk2NFRydW5jVUY2
NCwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1v
dmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBi
ZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIG1vdmUgMHg0M2YwMDAw
MDAwMDAwMDAwLCB0MCAjIElOVDY0X01JTiAqIC0yLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBi
ZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIHRydW5jYXRlZDJxIGZ0
MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRo
cm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCi1lbmQpCi0KIHdhc21PcChpMzJfdHJ1bmNf
c2F0X2YzMl9zLCBXYXNtSTMyVHJ1bmNTYXRGMzJTLCBtYWNybyAoY3R4KQogICAgIG1sb2FkZihj
dHgsIG1fb3BlcmFuZCwgZnQwKQogCkBAIC0xNDI1LDM0ICsxMTE3LDYgQEAgd2FzbU9wKGkzMl90
cnVuY19zYXRfZjMyX3MsIFdhc21JMzJUcnVuY1NhdEYzMlMsIG1hY3JvIChjdHgpCiAgICAgcmV0
dXJuaShjdHgsIHQwKQogZW5kKQogCi13YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfcywgV2FzbUkz
MlRydW5jU2F0RjY0UywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0
MCkKLQotICAgIG1vdmUgMHhjMWUwMDAwMDAwMjAwMDAwLCB0MCAjIElOVDMyX01JTiAtIDEuMAot
ICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1pbk9yTmFOCi0KLSAgICBtb3ZlIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UMzJf
TUlOCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5k
c1RydW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAotICAgIHJldHVybmkoY3R4
LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKLSAgICBiZGVxIGZ0MCwgZnQw
LCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotICAgIG1vdmUgMCwgdDAKLSAgICByZXR1cm5pKGN0
eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1vdmUgKGNvbnN0ZXhwciBJ
TlQzMl9NQVgpLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNT
YXRNaW46Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDMyX01JTiksIHQwCi0gICAgcmV0dXJuaShj
dHgsIHQwKQotZW5kKQotCiB3YXNtT3AoaTMyX3RydW5jX3NhdF9mMzJfdSwgV2FzbUkzMlRydW5j
U2F0RjMyVSwgbWFjcm8gKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKIApA
QCAtMTQ3NiwxNTIgKzExNDAsMjIgQEAgd2FzbU9wKGkzMl90cnVuY19zYXRfZjMyX3UsIFdhc21J
MzJUcnVuY1NhdEYzMlUsIG1hY3JvIChjdHgpCiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQog
Ci13YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfdSwgV2FzbUkzMlRydW5jU2F0RjY0VSwgbWFjcm8g
KGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhiZmYw
MDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KLQotICAgIG1vdmUgMHg0MWYwMDAwMDAw
MDAwMDAwLCB0MCAjIElOVDMyX01JTiAqIC0yLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0
ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQotICAgIHRydW5jYXRlZDJp
IGZ0MCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWlu
OgotICAgIG1vdmUgMCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1Ry
dW5jU2F0TWF4OgotICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UMzJfTUFYKSwgdDAKLSAgICByZXR1
cm5pKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl9zLCBXYXNtSTY0
VHJ1bmNTYXRGMzJTLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQw
KQotCi0gICAgbW92ZSAweGRmMDAwMDAwLCB0MCAjIElOVDY0X01JTgotICAgIGZpMmYgdDAsIGZ0
MQotICAgIGJmbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTgotCi0g
ICAgbW92ZSAweDVmMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KLSAgICBmaTJmIHQwLCBmdDEKLSAg
ICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQotICAgIHRydW5j
YXRlZjJxcyBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1pbk9yTmFOOgotICAgIGJmZXEgZnQwLCBmdDAsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWlu
Ci0gICAgbW92ZSAwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1
bmNTYXRNYXg6Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDY0X01BWCksIHQwCi0gICAgcmV0dXJu
cShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKLSAgICBtb3ZlIChjb25zdGV4
cHIgSU5UNjRfTUlOKSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChp
NjRfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTY0VHJ1bmNTYXRGNjRTLCBtYWNybyAoY3R4KQotICAg
IG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGMzZTAwMDAwMDAwMDAw
MDAsIHQwICMgSU5UNjRfTUlOCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdHVuIGZ0MCwgZnQx
LCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOCi0KLSAgICBtb3ZlIDB4NDNlMDAwMDAwMDAw
MDAwMCwgdDAgIyAtSU5UNjRfTUlOCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWQycXMgZnQwLCB0
MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoK
LSAgICBiZGVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotICAgIG1vdmUgMCwg
dDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAg
IG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9NQVgpLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQot
Lm91dE9mQm91bmRzVHJ1bmNTYXRNaW46Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDY0X01JTiks
IHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3NhdF9m
MzJfdSwgV2FzbUk2NFRydW5jU2F0RjMyVSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGYoY3R4LCBt
X29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhiZjgwMDAwMCwgdDAgIyAtMS4wCi0gICAgZmky
ZiB0MCwgZnQxCi0gICAgYmZsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWlu
Ci0KLSAgICBtb3ZlIDB4NWY4MDAwMDAsIHQwICMgSU5UNjRfTUlOICogLTIuMAotICAgIGZpMmYg
dDAsIGZ0MQotICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAot
Ci0gICAgdHJ1bmNhdGVmMnEgZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9m
Qm91bmRzVHJ1bmNTYXRNaW46Ci0gICAgbW92ZSAwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkK
LQotLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6Ci0gICAgbW92ZSAoY29uc3RleHByIFVJTlQ2NF9N
QVgpLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY19z
YXRfZjY0X3UsIFdhc21JNjRUcnVuY1NhdEY2NFUsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRkKGN0
eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YmZmMDAwMDAwMDAwMDAwMCwgdDAgIyAt
MS4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5k
c1RydW5jU2F0TWluCi0KLSAgICBtb3ZlIDB4NDNmMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9N
SU4gKiAtMi4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRP
ZkJvdW5kc1RydW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWQycSBmdDAsIHQwCi0gICAgcmV0dXJu
cShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKLSAgICBtb3ZlIDAsIHQwCi0g
ICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKLSAgICBtb3Zl
IChjb25zdGV4cHIgVUlOVDY0X01BWCksIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQot
Ci0KLXdhc21PcChmMzJfY29udmVydF91X2k2NCwgV2FzbUYzMkNvbnZlcnRVSTY0LCBtYWNybyAo
Y3R4KQord2FzbUk2NFRvRk9wKGYzMl9jb252ZXJ0X3VfaTY0LCBXYXNtRjMyQ29udmVydFVJNjQs
IG1hY3JvIChjdHgpCiAgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICBpZiBYODZf
NjQKICAgICAgICAgY3EyZiB0MCwgdDEsIGZ0MAotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBv
ciBSSVNDVjY0Ci0gICAgICAgIGNxMmYgdDAsIGZ0MAogICAgIGVsc2UKLSAgICAgICAgZXJyb3IK
KyAgICAgICAgY3EyZiB0MCwgZnQwCiAgICAgZW5kCiAgICAgcmV0dXJuZihjdHgsIGZ0MCkKIGVu
ZCkKIAotd2FzbU9wKGY2NF9jb252ZXJ0X3VfaTY0LCBXYXNtRjY0Q29udmVydFVJNjQsIG1hY3Jv
IChjdHgpCit3YXNtSTY0VG9GT3AoZjY0X2NvbnZlcnRfdV9pNjQsIFdhc21GNjRDb252ZXJ0VUk2
NCwgbWFjcm8gKGN0eCkKICAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQogICAgIGlmIFg4
Nl82NAogICAgICAgICBjcTJkIHQwLCB0MSwgZnQwCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRF
IG9yIFJJU0NWNjQKLSAgICAgICAgY3EyZCB0MCwgZnQwCiAgICAgZWxzZQotICAgICAgICBlcnJv
cgorICAgICAgICBjcTJkIHQwLCBmdDAKICAgICBlbmQKICAgICByZXR1cm5kKGN0eCwgZnQwKQog
ZW5kKQpAQCAtMTYzMiw0NyArMTE2Niw2IEBAIHdhc21PcChpMzJfZXF6LCBXYXNtSTMyRXF6LCBt
YWNybyhjdHgpCiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQogCi13YXNtT3AoaTY0X3NobCwg
V2FzbUk2NFNobCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBt
bG9hZGkoY3R4LCBtX3JocywgdDEpCi0gICAgbHNoaWZ0cSB0MSwgdDAKLSAgICByZXR1cm5xKGN0
eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfc2hyX3UsIFdhc21JNjRTaHJVLCBtYWNybyhjdHgp
Ci0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkK
LSAgICB1cnNoaWZ0cSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21P
cChpNjRfc2hyX3MsIFdhc21JNjRTaHJTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9s
aHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLSAgICByc2hpZnRxIHQxLCB0MAot
ICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9yb3RyLCBXYXNtSTY0Um90
ciwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4
LCBtX3JocywgdDEpCi0gICAgcnJvdGF0ZXEgdDEsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQot
ZW5kKQotCi13YXNtT3AoaTY0X3JvdGwsIFdhc21JNjRSb3RsLCBtYWNybyhjdHgpCi0gICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLSAgICBscm90
YXRlcSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfZXF6
LCBXYXNtSTY0RXF6LCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkK
LSAgICBjcWVxIHQwLCAwLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLWVuZCkKLQogd2FzbU9w
KGYzMl9taW4sIFdhc21GMzJNaW4sIG1hY3JvKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX2xocywg
ZnQwKQogICAgIG1sb2FkZihjdHgsIG1fcmhzLCBmdDEpCkBAIC0xNzgyLDIzICsxMjc1LDYgQEAg
d2FzbU9wKGY2NF9tYXgsIFdhc21GNjRNYXgsIG1hY3JvKGN0eCkKICAgICByZXR1cm5kKGN0eCwg
ZnQxKQogZW5kKQogCi13YXNtT3AoZjY0X2NvcHlzaWduLCBXYXNtRjY0Q29weXNpZ24sIG1hY3Jv
KGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX2xocywgZnQwKQotICAgIG1sb2FkZChjdHgsIG1fcmhz
LCBmdDEpCi0KLSAgICBmZDJxIGZ0MSwgdDEKLSAgICBtb3ZlIDB4ODAwMDAwMDAwMDAwMDAwMCwg
dDIKLSAgICBhbmRxIHQyLCB0MQotCi0gICAgZmQycSBmdDAsIHQwCi0gICAgbW92ZSAweDdmZmZm
ZmZmZmZmZmZmZmYsIHQyCi0gICAgYW5kcSB0MiwgdDAKLQotICAgIG9ycSB0MSwgdDAKLSAgICBm
cTJkIHQwLCBmdDAKLSAgICByZXR1cm5kKGN0eCwgZnQwKQotZW5kKQotCiB3YXNtT3AoZjMyX2Nv
bnZlcnRfdV9pMzIsIFdhc21GMzJDb252ZXJ0VUkzMiwgbWFjcm8oY3R4KQogICAgIG1sb2FkaShj
dHgsIG1fb3BlcmFuZCwgdDApCiAgICAgY2kyZiB0MCwgZnQwCkBAIC0xOTc0LDEzNCArMTQ1MCw2
IEBAIHdhc21PcChpMzJfY2x6LCBXYXNtSTMyQ2x6LCBtYWNybyhjdHgpCiAgICAgcmV0dXJuaShj
dHgsIHQxKQogZW5kKQogCi13YXNtT3AoaTY0X2FkZCwgV2FzbUk2NEFkZCwgbWFjcm8oY3R4KQot
ICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0g
ICAgYWRkcSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRf
c3ViLCBXYXNtSTY0U3ViLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQot
ICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBzdWJxIHQxLCB0MAotICAgIHJldHVybnEo
Y3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9tdWwsIFdhc21JNjRNdWwsIG1hY3JvKGN0eCkK
LSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQot
ICAgIG11bHEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0
X2FuZCwgV2FzbUk2NEFuZCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkK
LSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgYW5kcSB0MCwgdDEKLSAgICByZXR1cm5x
KGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfb3IsIFdhc21JNjRPciwgbWFjcm8oY3R4KQot
ICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0g
ICAgb3JxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF94
b3IsIFdhc21JNjRYb3IsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0g
ICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIHhvcnEgdDAsIHQxCi0gICAgcmV0dXJucShj
dHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X2VxLCBXYXNtSTY0RXEsIG1hY3JvKGN0eCkKLSAg
ICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAg
IGNxZXEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1l
bmQpCi0KLXdhc21PcChpNjRfbmUsIFdhc21JNjROZSwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShj
dHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FuZXEgdDAs
IHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdh
c21PcChpNjRfbHRfcywgV2FzbUk2NEx0UywgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1f
bGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FsdCB0MCwgdDEsIHQy
Ci0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2
NF9sZV9zLCBXYXNtSTY0TGVTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQw
KQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWx0ZXEgdDAsIHQxLCB0MgotICAg
IGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfbHRf
dSwgV2FzbUk2NEx0VSwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAg
ICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FiIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEs
IHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2xlX3UsIFdhc21J
NjRMZVUsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRx
KGN0eCwgbV9yaHMsIHQxKQotICAgIGNxYmVxIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0g
ICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2d0X3MsIFdhc21JNjRHdFMs
IG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwg
bV9yaHMsIHQxKQotICAgIGNxZ3QgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1
cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfZ2VfcywgV2FzbUk2NEdlUywgbWFjcm8o
Y3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3Jocywg
dDEpCi0gICAgY3FndGVxIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShj
dHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2d0X3UsIFdhc21JNjRHdFUsIG1hY3JvKGN0eCkK
LSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQot
ICAgIGNxYSB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikK
LWVuZCkKLQotd2FzbU9wKGk2NF9nZV91LCBXYXNtSTY0R2VVLCBtYWNybyhjdHgpCi0gICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWFl
cSB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkK
LQotd2FzbU9wKGk2NF9jbHosIFdhc21JNjRDbHosIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4
LCBtX29wZXJhbmQsIHQwKQotICAgIGx6Y250cSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEp
Ci1lbmQpCi0KIHdhc21PcChmMzJfYWRkLCBXYXNtRjMyQWRkLCBtYWNybyhjdHgpCiAgICAgbWxv
YWRmKGN0eCwgbV9saHMsIGZ0MCkKICAgICBtbG9hZGYoY3R4LCBtX3JocywgZnQxKQpAQCAtMjE0
MiwxMyArMTQ5MCwxMyBAQCB3YXNtT3AoZjMyX25lZywgV2FzbUYzMk5lZywgbWFjcm8oY3R4KQog
ICAgIHJldHVybmYoY3R4LCBmdDEpCiBlbmQpCiAKLXdhc21PcChmMzJfY2VpbCwgV2FzbUYzMkNl
aWwsIG1hY3JvKGN0eCkKK3dhc21Sb3VuZGluZ09wKGYzMl9jZWlsLCBXYXNtRjMyQ2VpbCwgbWFj
cm8oY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIGNlaWxmIGZ0MCwg
ZnQxCiAgICAgcmV0dXJuZihjdHgsIGZ0MSkKIGVuZCkKIAotd2FzbU9wKGYzMl9mbG9vciwgV2Fz
bUYzMkZsb29yLCBtYWNybyhjdHgpCit3YXNtUm91bmRpbmdPcChmMzJfZmxvb3IsIFdhc21GMzJG
bG9vciwgbWFjcm8oY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIGZs
b29yZiBmdDAsIGZ0MQogICAgIHJldHVybmYoY3R4LCBmdDEpCkBAIC0yMjQyLDEzICsxNTkwLDEz
IEBAIHdhc21PcChmNjRfbmVnLCBXYXNtRjY0TmVnLCBtYWNybyhjdHgpCiAgICAgcmV0dXJuZChj
dHgsIGZ0MSkKIGVuZCkKIAotd2FzbU9wKGY2NF9jZWlsLCBXYXNtRjY0Q2VpbCwgbWFjcm8oY3R4
KQord2FzbVJvdW5kaW5nT3AoZjY0X2NlaWwsIFdhc21GNjRDZWlsLCBtYWNybyhjdHgpCiAgICAg
bWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgY2VpbGQgZnQwLCBmdDEKICAgICByZXR1
cm5kKGN0eCwgZnQxKQogZW5kKQogCi13YXNtT3AoZjY0X2Zsb29yLCBXYXNtRjY0Rmxvb3IsIG1h
Y3JvKGN0eCkKK3dhc21Sb3VuZGluZ09wKGY2NF9mbG9vciwgV2FzbUY2NEZsb29yLCBtYWNybyhj
dHgpCiAgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgZmxvb3JkIGZ0MCwgZnQx
CiAgICAgcmV0dXJuZChjdHgsIGZ0MSkKQEAgLTIzMDMsNTAgKzE2NTEsMjAgQEAgd2FzbU9wKGY2
NF9nZSwgV2FzbUY2NEdlLCBtYWNybyhjdHgpCiBlbmQpCiAKIHdhc21PcChpMzJfd3JhcF9pNjQs
IFdhc21JMzJXcmFwSTY0LCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0
MCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQogICAgIHJldHVybmkoY3R4LCB0MCkK
IGVuZCkKIAotd2FzbU9wKGk2NF9leHRlbmRfc19pMzIsIFdhc21JNjRFeHRlbmRTSTMyLCBtYWNy
byhjdHgpCi0gICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBzeGkycSB0MCwgdDEK
LSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfZXh0ZW5kX3VfaTMyLCBX
YXNtSTY0RXh0ZW5kVUkzMiwgbWFjcm8oY3R4KQotICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwg
dDApCi0gICAgenhpMnEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCiB3YXNt
T3AoaTMyX2V4dGVuZDhfcywgV2FzbUkzMkV4dGVuZDhTLCBtYWNybyhjdHgpCiAgICAgbWxvYWRp
KGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICBzeGIyaSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwg
dDEpCisgICAgcmV0dXJuaShjdHgsIHQxKQogZW5kKQogCiB3YXNtT3AoaTMyX2V4dGVuZDE2X3Ms
IFdhc21JMzJFeHRlbmQxNlMsIG1hY3JvKGN0eCkKICAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQs
IHQwKQogICAgIHN4aDJpIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2Fz
bU9wKGk2NF9leHRlbmQ4X3MsIFdhc21JNjRFeHRlbmQ4UywgbWFjcm8oY3R4KQotICAgIG1sb2Fk
cShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgc3hiMnEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgs
IHQxKQotZW5kKQotCi13YXNtT3AoaTY0X2V4dGVuZDE2X3MsIFdhc21JNjRFeHRlbmQxNlMsIG1h
Y3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIHN4aDJxIHQwLCB0
MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9leHRlbmQzMl9zLCBX
YXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0
MCkKLSAgICBzeGkycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCisgICAgcmV0dXJuaShj
dHgsIHQxKQogZW5kKQogCiB3YXNtT3AoZjMyX2NvbnZlcnRfc19pMzIsIFdhc21GMzJDb252ZXJ0
U0kzMiwgbWFjcm8oY3R4KQpAQCAtMjM1NSw3ICsxNjczLDcgQEAgd2FzbU9wKGYzMl9jb252ZXJ0
X3NfaTMyLCBXYXNtRjMyQ29udmVydFNJMzIsIG1hY3JvKGN0eCkKICAgICByZXR1cm5mKGN0eCwg
ZnQwKQogZW5kKQogCi13YXNtT3AoZjMyX2NvbnZlcnRfc19pNjQsIFdhc21GMzJDb252ZXJ0U0k2
NCwgbWFjcm8oY3R4KQord2FzbUk2NFRvRk9wKGYzMl9jb252ZXJ0X3NfaTY0LCBXYXNtRjMyQ29u
dmVydFNJNjQsIG1hY3JvKGN0eCkKICAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQogICAg
IGNxMmZzIHQwLCBmdDAKICAgICByZXR1cm5mKGN0eCwgZnQwKQpAQCAtMjM3OSw3ICsxNjk3LDcg
QEAgd2FzbU9wKGY2NF9jb252ZXJ0X3NfaTMyLCBXYXNtRjY0Q29udmVydFNJMzIsIG1hY3JvKGN0
eCkKICAgICByZXR1cm5kKGN0eCwgZnQwKQogZW5kKQogCi13YXNtT3AoZjY0X2NvbnZlcnRfc19p
NjQsIFdhc21GNjRDb252ZXJ0U0k2NCwgbWFjcm8oY3R4KQord2FzbUk2NFRvRk9wKGY2NF9jb252
ZXJ0X3NfaTY0LCBXYXNtRjY0Q29udmVydFNJNjQsIG1hY3JvKGN0eCkKICAgICBtbG9hZHEoY3R4
LCBtX29wZXJhbmQsIHQwKQogICAgIGNxMmRzIHQwLCBmdDAKICAgICByZXR1cm5kKGN0eCwgZnQw
KQpAQCAtMjM5MSwzNCArMTcwOSwyOSBAQCB3YXNtT3AoZjY0X3Byb21vdGVfZjMyLCBXYXNtRjY0
UHJvbW90ZUYzMiwgbWFjcm8oY3R4KQogICAgIHJldHVybmQoY3R4LCBmdDEpCiBlbmQpCiAKLXdh
c21PcChmNjRfcmVpbnRlcnByZXRfaTY0LCBXYXNtRjY0UmVpbnRlcnByZXRJNjQsIG1hY3JvKGN0
eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIGZxMmQgdDAsIGZ0MAotICAg
IHJldHVybmQoY3R4LCBmdDApCi1lbmQpCi0KIHdhc21PcChpMzJfcmVpbnRlcnByZXRfZjMyLCBX
YXNtSTMyUmVpbnRlcnByZXRGMzIsIG1hY3JvKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJh
bmQsIGZ0MCkKICAgICBmZjJpIGZ0MCwgdDAKICAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCiAK
LXdhc21PcChpNjRfcmVpbnRlcnByZXRfZjY0LCBXYXNtSTY0UmVpbnRlcnByZXRGNjQsIG1hY3Jv
KGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLSAgICBmZDJxIGZ0MCwgdDAK
LSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KIG1hY3JvIGRyb3BLZWVwKHN0YXJ0T2Zmc2V0
LCBkcm9wLCBrZWVwKQogICAgIGxzaGlmdGkgMywgc3RhcnRPZmZzZXQKICAgICBzdWJwIGNmciwg
c3RhcnRPZmZzZXQsIHN0YXJ0T2Zmc2V0CiAgICAgbmVnaSBkcm9wCitpZiBKU1ZBTFVFNjQKICAg
ICBzeGkycSBkcm9wLCBkcm9wCitlbmQKIAogLmNvcHlMb29wOgogICAgIGJ0aXoga2VlcCwgLmRv
bmUKK2lmIEpTVkFMVUU2NAogICAgIGxvYWRxIFtzdGFydE9mZnNldCwgZHJvcCwgOF0sIHQ2CiAg
ICAgc3RvcmVxIHQ2LCBbc3RhcnRPZmZzZXRdCitlbHNlCisgICAgbG9hZDJpYSBbc3RhcnRPZmZz
ZXQsIGRyb3AsIDhdLCB0NSwgdDYKKyAgICBzdG9yZTJpYSB0NSwgdDYsIFtzdGFydE9mZnNldF0K
K2VuZAogICAgIHN1YmkgMSwga2VlcAogICAgIHN1YnAgOCwgc3RhcnRPZmZzZXQKICAgICBqbXAg
LmNvcHlMb29wCkBAIC0yNDM2LDM4OSArMTc0OSw2IEBAIHdhc21PcChkcm9wX2tlZXAsIFdhc21E
cm9wS2VlcCwgbWFjcm8oY3R4KQogICAgIGRpc3BhdGNoKGN0eCkKIGVuZCkKIAotbWFjcm8gd2Fz
bUF0b21pY0JpbmFyeVJNV09wcyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5i
LCBmbmgsIGZuaSwgZm5xKQotICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzglbG93ZXJDYXNlT3Bj
b2RlJV91LCBXYXNtSTY0QXRvbWljUm13OCV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQot
ICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1f
b2Zmc2V0LCB0MSkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCi0gICAgICAgIGVt
aXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KGN0eCwgdDMsIHQxLCAxKQotICAg
ICAgICBmbmIodDAsIFt0M10sIHQyLCB0NSwgdDEpCi0gICAgICAgIGFuZHEgMHhmZiwgdDAgIyBG
SVhNRTogWmVyb0V4dGVuZDhUbzY0Ci0gICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAs
IDB4ZmYsIC5vayBlbmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi0gICAg
d2FzbU9wKGk2NF9hdG9taWNfcm13MTYlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWlj
Um13MTYldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwg
bV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAg
IG1sb2FkcShjdHgsIG1fdmFsdWUsIHQwKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9p
bnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgMikKLSAgICAg
ICAgZm5oKHQwLCBbdDNdLCB0MiwgdDUsIHQxKQotICAgICAgICBhbmRxIDB4ZmZmZiwgdDAgIyBG
SVhNRTogWmVyb0V4dGVuZDE2VG82NAotICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQw
LCAweGZmZmYsIC5vayBlbmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi0g
ICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MzIlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRv
bWljUm13MzIldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0
eCwgbV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAg
ICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQwKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJl
UG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgNCkKLSAg
ICAgICAgZm5pKHQwLCBbdDNdLCB0MiwgdDUsIHQxKQotICAgICAgICBhc3NlcnQobWFjcm8ob2sp
IGJxYmVxIHQwLCAweGZmZmZmZmZmLCAub2sgZW5kKQotICAgICAgICByZXR1cm5xKGN0eCwgdDAp
Ci0gICAgZW5kKQotICAgIHdhc21PcChpNjRfYXRvbWljX3JtdyVsb3dlckNhc2VPcGNvZGUlLCBX
YXNtSTY0QXRvbWljUm13JXVwcGVyQ2FzZU9wY29kZSUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxv
YWRpKGN0eCwgbV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEp
Ci0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQwKQotICAgICAgICBlbWl0Q2hlY2tBbmRQ
cmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwg
OCkKLSAgICAgICAgZm5xKHQwLCBbdDNdLCB0MiwgdDUsIHQxKQotICAgICAgICByZXR1cm5xKGN0
eCwgdDApCi0gICAgZW5kKQotZW5kCi0KLW1hY3JvIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRo
V2Vha0NBUyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5pLCBmbnEpCi0gICAg
d2FzbUF0b21pY0JpbmFyeVJNV09wcyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwK
LSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAg
ICAgIGlmIFg4Nl82NAotICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCi0gICAgICAg
ICAgICAgICAgbG9hZGIgbWVtLCB0MEdQUgotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAg
ICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKLSAgICAgICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BS
KQotICAgICAgICAgICAgICAgIGJhdG9taWN3ZWFrY2FzYiB0MEdQUiwgdDJHUFIsIG1lbSwgLmxv
b3AKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAg
IGxvYWRsaW5rYWNxYiBtZW0sIHQxR1BSCi0gICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQ
UiwgdDJHUFIpCi0gICAgICAgICAgICAgICAgc3RvcmVjb25kcmVsYiB0NUdQUiwgdDJHUFIsIG1l
bQotICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAotICAgICAgICAgICAgICAg
IG1vdmUgdDFHUFIsIHQwR1BSCi0gICAgICAgICAgICBlbmQKLSAgICAgICAgZW5kLAotICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgaWYg
WDg2XzY0Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKLSAgICAgICAgICAgICAg
ICBsb2FkaCBtZW0sIHQwR1BSCi0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBt
b3ZlIHQwR1BSLCB0MkdQUgotICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIpCi0gICAg
ICAgICAgICAgICAgYmF0b21pY3dlYWtjYXNoIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAotICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbG9hZGxp
bmthY3FoIG1lbSwgdDFHUFIKLSAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BSLCB0MkdQ
UikKLSAgICAgICAgICAgICAgICBzdG9yZWNvbmRyZWxoIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAg
ICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCi0gICAgICAgICAgICAgICAgbW92ZSB0
MUdQUiwgdDBHUFIKLSAgICAgICAgICAgIGVuZAotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBpZiBYODZfNjQK
LSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgotICAgICAgICAgICAgICAgIGxvYWRp
IG1lbSwgdDBHUFIKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIG1vdmUgdDBH
UFIsIHQyR1BSCi0gICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAg
ICAgICBiYXRvbWljd2Vha2Nhc2kgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCi0gICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBsb2FkbGlua2FjcWkg
bWVtLCB0MUdQUgotICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAg
ICAgICAgICAgICAgIHN0b3JlY29uZHJlbGkgdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAg
ICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKLSAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0
MEdQUgotICAgICAgICAgICAgZW5kCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIs
IG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIGlmIFg4Nl82NAotICAgICAg
ICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCi0gICAgICAgICAgICAgICAgbG9hZHEgbWVtLCB0
MEdQUgotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJH
UFIKLSAgICAgICAgICAgICAgICBmbnEodDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgICAgIGJh
dG9taWN3ZWFrY2FzcSB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxcSBtZW0sIHQx
R1BSCi0gICAgICAgICAgICAgICAgZm5xKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAg
ICAgICAgc3RvcmVjb25kcmVscSB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgICAgIGJp
bmVxIHQ1R1BSLCAwLCAubG9vcAotICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0g
ICAgICAgICAgICBlbmQKLSAgICAgICAgZW5kKQotZW5kCi0KLWlmIFg4Nl82NAotICAgIHdhc21B
dG9taWNCaW5hcnlSTVdPcHMoX2FkZCwgQWRkLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkYiB0MEdQUiwgbWVtIGVuZCwKLSAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGgg
dDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwg
dDFHUFIpIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkcSB0MEdQUiwgbWVtIGVu
ZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9zdWIsIFN1YiwKLSAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1YmIgdDBHUFIsIG1l
bSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0
b21pY3hjaGdzdWJoIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3ViaSB0MEdQUiwgbWVtIGVuZCwKLSAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1YnEg
dDBHUFIsIG1lbSBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfeGNoZywgWGNoZywK
LSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNo
Z2IgdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQ
UiwgdDFHUFIpIGF0b21pY3hjaGdoIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnaSB0MEdQUiwgbWVtIGVuZCwK
LSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNo
Z3EgdDBHUFIsIG1lbSBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FT
KF9hbmQsIEFuZCwKLSAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgYW5k
aSB0NUdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIp
Ci0gICAgICAgICAgICBhbmRxIHQ1R1BSLCB0MkdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0
b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9vciwgT3IsCi0gICAgICAgIG1hY3JvKHQ1R1BS
LCB0MkdQUikKLSAgICAgICAgICAgIG9yaSB0NUdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAg
ICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBvcnEgdDVHUFIsIHQyR1BSCi0g
ICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3hvciwg
WG9yLAotICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICB4b3JpIHQ1R1BS
LCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKLSAgICAg
ICAgICAgIHhvcnEgdDVHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLWVsc2lmIEFSTTY0RQotICAg
IHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX2FkZCwgQWRkLAotICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkYiB0MEdQUiwgbWVtLCB0MEdQ
UiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0
b21pY3hjaGdhZGRoIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIs
IG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1lbSwgdDBH
UFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBh
dG9taWN4Y2hnYWRkcSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFy
eVJNV09wcyhfc3ViLCBTdWIsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQ
UiwgdDFHUFIpCi0gICAgICAgICAgICBuZWdxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hn
YWRkYiB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBuZWdxIHQwR1BSCi0gICAg
ICAgICAgICBhdG9taWN4Y2hnYWRkaCB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQsCi0g
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAg
ICBuZWdxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtLCB0MEdQ
UgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwg
dDFHUFIpCi0gICAgICAgICAgICBuZWdxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnYWRk
cSB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJN
V09wcyhfYW5kLCBBbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwg
dDFHUFIpCi0gICAgICAgICAgICBub3RxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnY2xl
YXJiIHQwR1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIs
IG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIG5vdHEgdDBHUFIKLSAgICAg
ICAgICAgIGF0b21pY3hjaGdjbGVhcmggdDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kLAot
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAg
ICAgbm90cSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFyaSB0MEdQUiwgbWVtLCB0
MEdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQ
UiwgdDFHUFIpCi0gICAgICAgICAgICBub3RxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hn
Y2xlYXJxIHQwR1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmlu
YXJ5Uk1XT3BzKF9vciwgT3IsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQ
UiwgdDFHUFIpIGF0b21pY3hjaGdvcmIgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBt
YWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnb3JoIHQwR1BS
LCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikgYXRvbWljeGNoZ29yaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcnEgdDBHUFIs
IG1lbSwgdDBHUFIgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hvciwgWG9yLAot
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
eG9yYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JoIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwK
LSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNo
Z3hvcmkgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9ycSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQp
Ci0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfeGNoZywgWGNoZywKLSAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2IgdDBHUFIsIG1lbSwg
dDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KSBhdG9taWN4Y2hnaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdpIHQwR1BSLCBtZW0sIHQwR1BS
IGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRv
bWljeGNoZ3EgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQotZWxzZQotICAgIHdhc21BdG9taWNCaW5h
cnlSTVdPcHNXaXRoV2Vha0NBUyhfYWRkLCBBZGQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQ
UiwgdDJHUFIpCi0gICAgICAgICAgICBhZGRpIHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAg
ZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgYWRk
cSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5
Uk1XT3BzV2l0aFdlYWtDQVMoX3N1YiwgU3ViLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIs
IHQyR1BSKQotICAgICAgICAgICAgc3ViaSB0MUdQUiwgdDBHUFIsIHQyR1BSCi0gICAgICAgIGVu
ZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIHN1YnEg
dDFHUFIsIHQwR1BSLCB0MkdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJN
V09wc1dpdGhXZWFrQ0FTKF94Y2hnLCBYY2hnLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIs
IHQyR1BSKQotICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAg
ICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgbW92ZSB0MEdQUiwg
dDJHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NB
UyhfYW5kLCBBbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAg
ICAgICBhbmRpIHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNy
byh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgYW5kcSB0MEdQUiwgdDFHUFIsIHQy
R1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMo
X29yLCBPciwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAg
IG9yaSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBH
UFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIG9ycSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0g
ICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3hvciwg
WG9yLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgeG9y
aSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIs
IHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIHhvcnEgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAg
ICAgICBlbmQpCi1lbmQKLQotbWFjcm8gd2FzbUF0b21pY0NvbXBhcmVFeGNoYW5nZU9wcyhsb3dl
ckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5iLCBmbmgsIGZuaSwgZm5xKQotICAgIHdh
c21PcChpNjRfYXRvbWljX3JtdzglbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13
OCV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3Bv
aW50ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxv
YWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCi0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQy
KQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgsIHQz
LCB0MSwgMSkKLSAgICAgICAgZm5iKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQotICAgICAgICBhbmRx
IDB4ZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQ4VG82NAotICAgICAgICBhc3NlcnQobWFjcm8o
b2spIGJxYmVxIHQwLCAweGZmLCAub2sgZW5kKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0g
ICAgZW5kKQotICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9wY29kZSVfdSwg
V2FzbUk2NEF0b21pY1JtdzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0gICAgICAg
IG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQs
IHQxKQotICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKLSAgICAgICAgbWxvYWRx
KGN0eCwgbV92YWx1ZSwgdDIpCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRk
aW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCAyKQotICAgICAgICBmbmgo
dDAsIHQyLCBbdDNdLCB0NSwgdDEpCi0gICAgICAgIGFuZHEgMHhmZmZmLCB0MCAjIEZJWE1FOiBa
ZXJvRXh0ZW5kMTZUbzY0Ci0gICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmZm
ZiwgLm9rIGVuZCkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAgICB3YXNt
T3AoaTY0X2F0b21pY19ybXczMiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXcz
MiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3Bv
aW50ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxv
YWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCi0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQy
KQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGln
bm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgNCkKLSAgICAgICAgZm5pKHQwLCB0MiwgW3QzXSwgdDUs
IHQxKQotICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmZmZmZmZmLCAub2sg
ZW5kKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdhc21PcChpNjRf
YXRvbWljX3JtdyVsb3dlckNhc2VPcGNvZGUlLCBXYXNtSTY0QXRvbWljUm13JXVwcGVyQ2FzZU9w
Y29kZSUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKLSAg
ICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShjdHgsIG1fZXhw
ZWN0ZWQsIHQwKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICAgICAgZW1p
dENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4
LCB0MywgdDEsIDgpCi0gICAgICAgIGZucSh0MCwgdDIsIFt0M10sIHQ1LCB0MSkKLSAgICAgICAg
cmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLWVuZAotCi0jIHQwR1BSID0+IGV4cGVjdGVkLCB0
MkdQUiA9PiB2YWx1ZSwgbWVtID0+IG1lbW9yeSByZWZlcmVuY2UKLXdhc21BdG9taWNDb21wYXJl
RXhjaGFuZ2VPcHMoX2NtcHhjaGcsIENtcHhjaGcsCi0gICAgbWFjcm8odDBHUFIsIHQyR1BSLCBt
ZW0sIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQotICAgICAgICAg
ICAgYnFhIHQwR1BSICwgMHhmZiwgLmZhaWwKLSAgICAgICAgICAgIGF0b21pY3dlYWtjYXNiIHQw
R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICBqbXAgLmRvbmUKLSAgICAgICAgLmZhaWw6Ci0g
ICAgICAgICAgICBhdG9taWNsb2FkYiBtZW0sIHQwR1BSCi0gICAgICAgIC5kb25lOgotICAgICAg
ICBlbHNlCi0gICAgICAgIC5sb29wOgotICAgICAgICAgICAgbG9hZGxpbmthY3FiIG1lbSwgdDFH
UFIKLSAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKLSAgICAgICAgICAgIHN0
b3JlY29uZHJlbGIgdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAs
IC5kb25lCi0gICAgICAgICAgICBqbXAgLmxvb3AKLSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAg
ICBzdG9yZWNvbmRyZWxiIHQ1R1BSLCB0MUdQUiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BS
LCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAgICAgIC5kb25lOgotICAgICAg
ICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAgICAgICAgZW5kCi0gICAgZW5kLAotICAgIG1hY3Jv
KHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgIGlmIFg4Nl82NCBvciBB
Uk02NEUKLSAgICAgICAgICAgIGJxYSB0MEdQUiwgMHhmZmZmLCAuZmFpbAotICAgICAgICAgICAg
YXRvbWljd2Vha2Nhc2ggdDBHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgIGptcCAuZG9uZQot
ICAgICAgICAuZmFpbDoKLSAgICAgICAgICAgIGF0b21pY2xvYWRoIG1lbSwgdDBHUFIKLSAgICAg
ICAgLmRvbmU6Ci0gICAgICAgIGVsc2UKLSAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICBsb2Fk
bGlua2FjcWggbWVtLCB0MUdQUgotICAgICAgICAgICAgYnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFp
bAotICAgICAgICAgICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAg
ICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGptcCAubG9vcAotICAgICAgICAu
ZmFpbDoKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQxR1BSLCBtZW0KLSAgICAg
ICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBqbXAgLmxvb3AKLSAgICAg
ICAgLmRvbmU6Ci0gICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAgICAgICBlbmQKLSAg
ICBlbmQsCi0gICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BSLCB0MUdQUikKLSAgICAg
ICAgaWYgWDg2XzY0IG9yIEFSTTY0RQotICAgICAgICAgICAgYnFhIHQwR1BSLCAweGZmZmZmZmZm
LCAuZmFpbAotICAgICAgICAgICAgYXRvbWljd2Vha2Nhc2kgdDBHUFIsIHQyR1BSLCBtZW0KLSAg
ICAgICAgICAgIGptcCAuZG9uZQotICAgICAgICAuZmFpbDoKLSAgICAgICAgICAgIGF0b21pY2xv
YWRpIG1lbSwgdDBHUFIKLSAgICAgICAgLmRvbmU6Ci0gICAgICAgIGVsc2UKLSAgICAgICAgLmxv
b3A6Ci0gICAgICAgICAgICBsb2FkbGlua2FjcWkgbWVtLCB0MUdQUgotICAgICAgICAgICAgYnFu
ZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAotICAgICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwg
dDJHUFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAg
IGptcCAubG9vcAotICAgICAgICAuZmFpbDoKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbGkgdDVH
UFIsIHQxR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAg
ICAgICBqbXAgLmxvb3AKLSAgICAgICAgLmRvbmU6Ci0gICAgICAgICAgICBtb3ZlIHQxR1BSLCB0
MEdQUgotICAgICAgICBlbmQKLSAgICBlbmQsCi0gICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0s
IHQ1R1BSLCB0MUdQUikKLSAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQotICAgICAgICAgICAg
YXRvbWljd2Vha2Nhc3EgdDBHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgZWxzZQotICAgICAgICAu
bG9vcDoKLSAgICAgICAgICAgIGxvYWRsaW5rYWNxcSBtZW0sIHQxR1BSCi0gICAgICAgICAgICBi
cW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCi0gICAgICAgICAgICBzdG9yZWNvbmRyZWxxIHQ1R1BS
LCB0MkdQUiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAg
ICAgam1wIC5sb29wCi0gICAgICAgIC5mYWlsOgotICAgICAgICAgICAgc3RvcmVjb25kcmVscSB0
NUdQUiwgdDFHUFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAg
ICAgICAgIGptcCAubG9vcAotICAgICAgICAuZG9uZToKLSAgICAgICAgICAgIG1vdmUgdDFHUFIs
IHQwR1BSCi0gICAgICAgIGVuZAotICAgIGVuZCkKLQogd2FzbU9wKGF0b21pY19mZW5jZSwgV2Fz
bURyb3BLZWVwLCBtYWNybyhjdHgpCiAgICAgZmVuY2UKICAgICBkaXNwYXRjaChjdHgpCkBAIC0y
ODQ3LDkgKzE3NzcsMTQgQEAgbWFjcm8gY29tbW9uQ2F0Y2hJbXBsKGN0eCwgc3RvcmVXYXNtSW5z
dGFuY2UpCiAgICAgY29udmVydENhbGxlZVRvVk0odDMpCiAgICAgcmVzdG9yZUNhbGxlZVNhdmVz
RnJvbVZNRW50cnlGcmFtZUNhbGxlZVNhdmVzQnVmZmVyKHQzLCB0MCkKIAotICAgIGxvYWRwIFZN
OjpjYWxsZWVGb3JXYXNtQ2F0Y2hbdDNdLCB3czEKLSAgICBzdG9yZXAgMCwgVk06OmNhbGxlZUZv
cldhc21DYXRjaFt0M10KLSAgICBzdG9yZXAgd3MxLCBDYWxsZWVbY2ZyXQorICAgIGxvYWRwIFZN
OjpjYWxsZWVGb3JXYXNtQ2F0Y2ggKyBQYXlsb2FkT2Zmc2V0W3QzXSwgd3MxCisgICAgc3RvcmVw
IDAsIFZNOjpjYWxsZWVGb3JXYXNtQ2F0Y2ggKyBQYXlsb2FkT2Zmc2V0W3QzXQorICAgIHN0b3Jl
cCB3czEsIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXQoraWYgbm90IEpTVkFMVUU2NAorICAg
IGxvYWRpIFZNOjpjYWxsZWVGb3JXYXNtQ2F0Y2ggKyBUYWdPZmZzZXRbdDNdLCB3czEKKyAgICBz
dG9yZWkgRW1wdHlWYWx1ZVRhZywgVk06OmNhbGxlZUZvcldhc21DYXRjaCArIFRhZ09mZnNldFt0
M10KKyAgICBzdG9yZWkgd3MxLCBDYWxsZWUgKyBUYWdPZmZzZXRbY2ZyXQorZW5kCiAKICAgICBs
b2FkcCBWTTo6Y2FsbEZyYW1lRm9yQ2F0Y2hbdDNdLCBjZnIKICAgICBzdG9yZXAgMCwgVk06OmNh
bGxGcmFtZUZvckNhdGNoW3QzXQpAQCAtMjg4OCw4ICsxODIzLDEzIEBAIG1hY3JvIGNhdGNoSW1w
bChjdHgsIHN0b3JlV2FzbUluc3RhbmNlKQogCiAuY29weUxvb3A6CiAgICAgYnRpeiB0MywgLmRv
bmUKK2lmIEpTVkFMVUU2NAogICAgIGxvYWRxIFt0MV0sIHQ2CiAgICAgc3RvcmVxIHQ2LCBbdDJd
CitlbHNlCisgICAgbG9hZDJpYSBbdDFdLCB0NSwgdDYKKyAgICBzdG9yZTJpYSB0NSwgdDYsIFt0
Ml0KK2VuZAogICAgIHN1YmkgMSwgdDMKICAgICAjIEZJWE1FOiBVc2UgYXJtIHN0b3JlLWFkZC9z
dWIgaW5zdHJ1Y3Rpb25zIGluIHdhc20gTExJbnQgY2F0Y2gKICAgICAjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEyMTAKQEAgLTI5MTcsMyArMTg1NywxMCBAQCBl
bmQpCiBjb21tb25XYXNtT3Aod2FzbV9jYXRjaF9hbGxfbm9fdGxzLCBXYXNtQ2F0Y2hBbGwsIG1h
Y3JvKCkgZW5kLCBtYWNybyhjdHgpCiAgICAgY2F0Y2hBbGxJbXBsKGN0eCwgbWFjcm8oaW5zdGFu
Y2UpIGVuZCkKIGVuZCkKKworIyBWYWx1ZS1yZXByZXNlbnRhdGlvbi1zcGVjaWZpYyBjb2RlLgor
aWYgSlNWQUxVRTY0CisgICAgaW5jbHVkZSBXZWJBc3NlbWJseTY0CitlbHNlCisgICAgaW5jbHVk
ZSBXZWJBc3NlbWJseTMyXzY0CitlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9XZWJBc3NlbWJseTMyXzY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9XZWJBc3NlbWJseTMyXzY0LmFzbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAuLmVjMTg5Zjk3NjNlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9XZWJBc3NlbWJseTMyXzY0LmFzbQpAQCAtMCwwICsxLDExMjkgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDExLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBD
b3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
IyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgQ29uc3RhbnRzCisKK2NvbnN0
IE1zd09mZnNldCA9IDQKK2NvbnN0IExzd09mZnNldCA9IDAKKworIyBPcGNvZGVzIHRoYXQgc2hv
dWxkIGV2ZW50dWFsbHkgYmUgc2hhcmVkIHdpdGggSlMgbGxpbnQKKword2FzbU9wKG1vdiwgV2Fz
bU1vdiwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX3NyYywgdDEsIHQwKQorICAgIHJl
dHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCisjIFdhc20gc3BlY2lmaWMgYnl0ZWNvZGVzCisK
K21hY3JvIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KHBvaW50ZXIsIG9m
ZnNldCwgc2l6ZSkKKyAgICAjIFRoaXMgbWFjcm8gdXBkYXRlcyAncG9pbnRlcicgdG8gdGFyZ2V0
IGFkZHJlc3MsIGFuZCBtYXkgdGhyYXNoICdvZmZzZXQnCitpZiBBUk12NworICAgICMgTm90IGVu
b3VnaCByZWdpc3RlcnMgb24gYXJtIHRvIGtlZXAgdGhlIG1lbW9yeSBiYXNlIGFuZCBzaXplIGlu
IHBpbm5lZAorICAgICMgcmVnaXN0ZXJzLCBzbyBsb2FkIHRoZW0gb24gZWFjaCBhY2Nlc3MgaW5z
dGVhZC4gRklYTUU6IGltcHJvdmUgdGhpcy4KKyAgICBhZGRwcyBvZmZzZXQsIHBvaW50ZXIKKyAg
ICBiY3MgLnRocm93CisgICAgYWRkcHMgc2l6ZSAtIDEsIHBvaW50ZXIsIG9mZnNldCAjIFVzZSBv
ZmZzZXQgYXMgc2NyYXRjaCByZWdpc3RlcgorICAgIGJjcyAudGhyb3cKKyAgICBicGIgb2Zmc2V0
LCBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRCb3VuZHNDaGVja2luZ1NpemVbd2FzbUluc3RhbmNl
XSwgLmNvbnRpbnVhdGlvbgorLnRocm93OgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRz
TWVtb3J5QWNjZXNzKQorLmNvbnRpbnVhdGlvbjoKKyAgICBhZGRwIFdhc206Okluc3RhbmNlOjpt
X2NhY2hlZE1lbW9yeVt3YXNtSW5zdGFuY2VdLCBwb2ludGVyCitlbHNlCisgICAgY3Jhc2goKQor
ZW5kCitlbmQKKworbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRX
aXRoQWxpZ25tZW50Q2hlY2socG9pbnRlciwgb2Zmc2V0LCBzaXplKQorICAgICMgVGhpcyBtYWNy
byB1cGRhdGVzICdwb2ludGVyJyB0byB0YXJnZXQgYWRkcmVzcywgYW5kIG1heSB0aHJhc2ggJ29m
ZnNldCcKK2lmIEFSTXY3CisgICAgIyBOb3QgZW5vdWdoIHJlZ2lzdGVycyBvbiBhcm0gdG8ga2Vl
cCB0aGUgbWVtb3J5IGJhc2UgYW5kIHNpemUgaW4gcGlubmVkCisgICAgIyByZWdpc3RlcnMsIHNv
IGxvYWQgdGhlbSBvbiBlYWNoIGFjY2VzcyBpbnN0ZWFkLiBGSVhNRTogaW1wcm92ZSB0aGlzLgor
ICAgIGFkZHBzIG9mZnNldCwgcG9pbnRlcgorICAgIGJjcyAudGhyb3cKKyAgICBhZGRwcyBzaXpl
IC0gMSwgcG9pbnRlciwgb2Zmc2V0ICMgVXNlIG9mZnNldCBhcyBzY3JhdGNoIHJlZ2lzdGVyCisg
ICAgYmNzIC50aHJvdworICAgIGJwYiBvZmZzZXQsIFdhc206Okluc3RhbmNlOjptX2NhY2hlZEJv
dW5kc0NoZWNraW5nU2l6ZVt3YXNtSW5zdGFuY2VdLCAuY29udGludWF0aW9uCisudGhyb3c6Cisg
ICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCisuY29udGludWF0aW9u
OgorICAgIGFkZHAgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkTWVtb3J5W3dhc21JbnN0YW5jZV0s
IHBvaW50ZXIKKyAgICBidHBueiBwb2ludGVyLCAoc2l6ZSAtIDEpLCAudGhyb3cKK2Vsc2UKKyAg
ICBjcmFzaCgpCitlbmQKK2VuZAorCittYWNybyB3YXNtTG9hZE9wKG5hbWUsIHN0cnVjdCwgc2l6
ZSwgZm4pCisgICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQorICAgICAgICBtbG9h
ZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkK
KyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQodDAsIHQxLCBz
aXplKQorICAgICAgICBmbih0MCwgdDMsIHQyKQorICAgICAgICByZXR1cm4yaShjdHgsIHQzLCB0
MikKKyAgICBlbmQpCitlbmQKKword2FzbUxvYWRPcChsb2FkOF91LCBXYXNtTG9hZDhVLCAxLCBt
YWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkYiBMc3dPZmZzZXRbYWRkcl0sIGRz
dExzdworICAgIG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGxvYWQxNl91LCBXYXNt
TG9hZDE2VSwgMiwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGggTHN3T2Zm
c2V0W2FkZHJdLCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdworZW5kKQord2FzbUxvYWRPcChs
b2FkMzJfdSwgV2FzbUxvYWQzMlUsIDQsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAg
IGxvYWRpIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAgbW92ZSAwLCBkc3RNc3cKK2VuZCkK
K3dhc21Mb2FkT3AobG9hZDY0X3UsIFdhc21Mb2FkNjRVLCA4LCBtYWNybyhhZGRyLCBkc3RNc3cs
IGRzdExzdykKKyAgICAjIE1pZ2h0IGJlIHVuYWxpZ25lZCwgc28gY2FuJ3QgdXNlIGxvYWQyaWEK
KyAgICBsb2FkaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAgIGxvYWRpIE1zd09mZnNldFth
ZGRyXSwgZHN0TXN3CitlbmQpCisKK3dhc21Mb2FkT3AoaTMyX2xvYWQ4X3MsIFdhc21JMzJMb2Fk
OFMsIDEsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRic2kgTHN3T2Zmc2V0
W2FkZHJdLCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdworZW5kKQord2FzbUxvYWRPcChpMzJf
bG9hZDE2X3MsIFdhc21JMzJMb2FkMTZTLCAyLCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykK
KyAgICBsb2FkaHNpIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAgbW92ZSAwLCBkc3RNc3cK
K2VuZCkKK3dhc21Mb2FkT3AoaTY0X2xvYWQ4X3MsIFdhc21JNjRMb2FkOFMsIDEsIG1hY3JvKGFk
ZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRic2kgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cK
KyAgICByc2hpZnRpIGRzdExzdywgMzEsIGRzdE1zdworZW5kKQord2FzbUxvYWRPcChpNjRfbG9h
ZDE2X3MsIFdhc21JNjRMb2FkMTZTLCAyLCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAg
ICBsb2FkaHNpIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAgcnNoaWZ0aSBkc3RMc3csIDMx
LCBkc3RNc3cKK2VuZCkKK3dhc21Mb2FkT3AoaTY0X2xvYWQzMl9zLCBXYXNtSTY0TG9hZDMyUywg
NCwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGkgTHN3T2Zmc2V0W2FkZHJd
LCBkc3RMc3cKKyAgICByc2hpZnRpIGRzdExzdywgMzEsIGRzdE1zdworZW5kKQorCittYWNybyB3
YXNtU3RvcmVPcChuYW1lLCBzdHJ1Y3QsIHNpemUsIGZuKQorICAgIHdhc21PcChuYW1lLCBzdHJ1
Y3QsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MCkKKyAgICAg
ICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQ
b2ludGVyQWRkaW5nT2Zmc2V0KHQwLCB0MSwgc2l6ZSkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1f
dmFsdWUsIHQzLCB0MikKKyAgICAgICAgZm4odDMsIHQyLCB0MCkKKyAgICAgICAgZGlzcGF0Y2go
Y3R4KQorICAgIGVuZCkKK2VuZAorCit3YXNtU3RvcmVPcChzdG9yZTgsIFdhc21TdG9yZTgsIDEs
IG1hY3JvKHNyY01zdywgc3JjTHN3LCBhZGRyKQorICAgIHN0b3JlYiBzcmNMc3csIExzd09mZnNl
dFthZGRyXQorZW5kKQord2FzbVN0b3JlT3Aoc3RvcmUxNiwgV2FzbVN0b3JlMTYsIDIsIG1hY3Jv
KHNyY01zdywgc3JjTHN3LCBhZGRyKQorICAgIHN0b3JlaCBzcmNMc3csIExzd09mZnNldFthZGRy
XQorZW5kKQord2FzbVN0b3JlT3Aoc3RvcmUzMiwgV2FzbVN0b3JlMzIsIDQsIG1hY3JvKHNyY01z
dywgc3JjTHN3LCBhZGRyKQorICAgIHN0b3JlaSBzcmNMc3csIExzd09mZnNldFthZGRyXQorZW5k
KQord2FzbVN0b3JlT3Aoc3RvcmU2NCwgV2FzbVN0b3JlNjQsIDgsIG1hY3JvKHNyY01zdywgc3Jj
THN3LCBhZGRyKQorICAgICMgTWlnaHQgYmUgdW5hbGlnbmVkLCBzbyBjYW4ndCB1c2Ugc3RvcmUy
aWEKKyAgICBzdG9yZWkgc3JjTHN3LCBMc3dPZmZzZXRbYWRkcl0KKyAgICBzdG9yZWkgc3JjTXN3
LCBNc3dPZmZzZXRbYWRkcl0KK2VuZCkKKword2FzbU9wKHJlZl9pc19udWxsLCBXYXNtUmVmSXNO
dWxsLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fcmVmLCB0MSwgdDApICMgdDAgaXMg
dW51c2VkCisgICAgY2llcSB0MSwgTnVsbFRhZywgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCitl
bmQpCisKK3dhc21PcChnZXRfZ2xvYmFsLCBXYXNtR2V0R2xvYmFsLCBtYWNybyhjdHgpCisgICAg
bG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdn
ZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbG9hZDJpYSBbdDAsIHQxLCA4XSwgdDAs
IHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChzZXRfZ2xvYmFs
LCBXYXNtU2V0R2xvYmFsLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1f
Z2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwg
dDEpCisgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQzLCB0MikKKyAgICBzdG9yZTJpYSB0Miwg
dDMsIFt0MCwgdDEsIDhdCisgICAgZGlzcGF0Y2goY3R4KQorZW5kKQorCit3YXNtT3AoZ2V0X2ds
b2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNtR2V0R2xvYmFsUG9ydGFibGVCaW5kaW5nLCBtYWNy
byhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2Vd
LCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbG9hZHAgW3QwLCB0
MSwgOF0sIHQwCisgICAgbG9hZDJpYSBbdDBdLCB0MCwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQx
LCB0MCkKK2VuZCkKKword2FzbU9wKHNldF9nbG9iYWxfcG9ydGFibGVfYmluZGluZywgV2FzbVNl
dEdsb2JhbFBvcnRhYmxlQmluZGluZywgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206Okluc3Rh
bmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1fZ2xvYmFs
SW5kZXgsIHQxKQorICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVlLCB0MywgdDIpCisgICAgbG9hZHAg
W3QwLCB0MSwgOF0sIHQwCisgICAgc3RvcmUyaWEgdDIsIHQzLCBbdDBdCisgICAgZGlzcGF0Y2go
Y3R4KQorZW5kKQorCisjIE9wY29kZXMgdGhhdCBkb24ndCBoYXZlIHRoZSBgYjNvcGAgZW50cnkg
aW4gd2FzbS5qc29uLiBUaGlzIHNob3VsZCBiZSBrZXB0IGluIHN5bmMKKworbWFjcm8gY2FsbERp
dlJlbShmbikKK2lmIEFSTXY3CisgICAgc3VicCBTdGFja0FsaWdubWVudCwgc3AKKyAgICBzdG9y
ZXAgUEMsIFtzcF0KKyAgICBjQ2FsbDQoZm4pCisgICAgbG9hZHAgW3NwXSwgUEMKKyAgICBhZGRw
IFN0YWNrQWxpZ25tZW50LCBzcAorZWxzZQorICAgIGVycm9yCitlbmQKK2VuZAorCisjIGkzMiBi
aW5hcnkgb3BzCisKK3dhc21PcChpMzJfZGl2X3MsIFdhc21JMzJEaXZTLCBtYWNybyAoY3R4KQor
ICAgIG1sb2FkaShjdHgsIG1fbGhzLCBhMCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgYTEpCisK
KyAgICBidGl6IGExLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgYmluZXEgYTEsIC0xLCAu
c2FmZQorICAgIGJpZXEgYTAsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC50aHJvd0ludGVnZXJPdmVy
ZmxvdworCisuc2FmZToKKyAgICBjYWxsRGl2UmVtKF9zbG93X3BhdGhfd2FzbV9pMzJfZGl2X3Mp
CisgICAgcmV0dXJuaShjdHgsIHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJv
d0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKKworLnRocm93SW50ZWdlck92ZXJmbG93OgorICAg
IHRocm93RXhjZXB0aW9uKEludGVnZXJPdmVyZmxvdykKK2VuZCkKKword2FzbU9wKGkzMl9kaXZf
dSwgV2FzbUkzMkRpdlUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9saHMsIGEwKQor
ICAgIG1sb2FkaShjdHgsIG1fcmhzLCBhMSkKKworICAgIGJ0aXogYTEsIC50aHJvd0RpdmlzaW9u
QnlaZXJvCisKKyAgICBjYWxsRGl2UmVtKF9zbG93X3BhdGhfd2FzbV9pMzJfZGl2X3UpCisgICAg
cmV0dXJuaShjdHgsIHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2Vw
dGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGkzMl9yZW1fcywgV2FzbUkzMlJl
bVMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9saHMsIGEwKQorICAgIG1sb2FkaShj
dHgsIG1fcmhzLCBhMSkKKworICAgIGJ0aXogYTEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAg
ICBiaW5lcSBhMSwgLTEsIC5zYWZlCisgICAgYmluZXEgYTAsIGNvbnN0ZXhwciBJTlQzMl9NSU4s
IC5zYWZlCisKKyAgICBtb3ZlIDAsIHIwCisgICAgam1wIC5yZXR1cm4KKworLnNhZmU6CisgICAg
Y2FsbERpdlJlbShfc2xvd19wYXRoX3dhc21faTMyX3JlbV9zKQorCisucmV0dXJuOgorICAgIHJl
dHVybmkoY3R4LCByMCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRp
b24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpMzJfcmVtX3UsIFdhc21JMzJSZW1V
LCBtYWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCBhMCkKKyAgICBtbG9hZGkoY3R4
LCBtX3JocywgYTEpCisKKyAgICBidGl6IGExLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAg
Y2FsbERpdlJlbShfc2xvd19wYXRoX3dhc21faTMyX3JlbV91KQorICAgIHJldHVybmkoY3R4LCBy
MCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25C
eVplcm8pCitlbmQpCisKKyMgaTY0IGJpbmFyeSBvcHMKKword2FzbU9wKGk2NF9hZGQsIFdhc21J
NjRBZGQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBt
bG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBhZGRpcyB0MiwgdDAKKyAgICBhZGNpICB0
MywgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9zdWIs
IFdhc21JNjRTdWIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkK
KyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBzdWJpcyB0MiwgdDAKKyAgICBz
YmNpICB0MywgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2
NF9tdWwsIFdhc21JNjRNdWwsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQx
LCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtdWxpIHQyLCB0MQor
ICAgIG11bGkgdDAsIHQzCisgICAgdW11bGxpIHQwLCB0MiwgdDAsIHQyCisgICAgYWRkaSB0MSwg
dDIKKyAgICBhZGRpIHQzLCB0MgorICAgIHJldHVybjJpKGN0eCwgdDIsIHQwKQorZW5kKQorCit3
YXNtT3AoaTY0X2Rpdl9zLCBXYXNtSTY0RGl2UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZDJpKGN0
eCwgbV9saHMsIGExLCBhMCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIGEzLCBhMikKKworICAg
IGJ0aW56IGEzLCAubm9uWmVyb0Rpdmlzb3IKKyAgICBidGl6IGEyLCAudGhyb3dEaXZpc2lvbkJ5
WmVybworCisubm9uWmVyb0Rpdmlzb3I6CisgICAgYmluZXEgYTMsIC0xLCAuc2FmZQorICAgIGJp
bmVxIGEyLCAtMSwgLnNhZmUKKyAgICBiaW5lcSBhMSwgY29uc3RleHByIElOVDMyX01JTiwgLnNh
ZmUKKyAgICBidGl6IGEwLCAudGhyb3dJbnRlZ2VyT3ZlcmZsb3cKKworLnNhZmU6CisgICAgY2Fs
bERpdlJlbShfc2xvd19wYXRoX3dhc21faTY0X2Rpdl9zKQorICAgIHJldHVybjJpKGN0eCwgcjEs
IHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lv
bkJ5WmVybykKKworLnRocm93SW50ZWdlck92ZXJmbG93OgorICAgIHRocm93RXhjZXB0aW9uKElu
dGVnZXJPdmVyZmxvdykKK2VuZCkKKword2FzbU9wKGk2NF9kaXZfdSwgV2FzbUk2NERpdlUsIG1h
Y3JvIChjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCBhMSwgYTApCisgICAgbWxvYWQyaShj
dHgsIG1fcmhzLCBhMywgYTIpCisKKyAgICBidGlueiBhMywgLm5vblplcm9EaXZpc29yCisgICAg
YnRpeiBhMiwgLnRocm93RGl2aXNpb25CeVplcm8KKworLm5vblplcm9EaXZpc29yOgorICAgIGNh
bGxEaXZSZW0oX3Nsb3dfcGF0aF93YXNtX2k2NF9kaXZfdSkKKyAgICByZXR1cm4yaShjdHgsIHIx
LCByMCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNp
b25CeVplcm8pCitlbmQpCisKK3dhc21PcChpNjRfcmVtX3MsIFdhc21JNjRSZW1TLCBtYWNybyAo
Y3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgYTEsIGEwKQorICAgIG1sb2FkMmkoY3R4LCBt
X3JocywgYTMsIGEyKQorCisgICAgYnRpbnogYTMsIC5ub25aZXJvRGl2aXNvcgorICAgIGJ0aXog
YTIsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKy5ub25aZXJvRGl2aXNvcjoKKyAgICBiaW5lcSBh
MywgLTEsIC5zYWZlCisgICAgYmluZXEgYTIsIC0xLCAuc2FmZQorICAgIGJpbmVxIGExLCBjb25z
dGV4cHIgSU5UMzJfTUlOLCAuc2FmZQorICAgIGJ0aW56IGEwLCAuc2FmZQorCisgICAgbW92ZSAw
LCByMQorICAgIG1vdmUgMCwgcjAKKyAgICBqbXAgLnJldHVybgorCisuc2FmZToKKyAgICBjYWxs
RGl2UmVtKF9zbG93X3BhdGhfd2FzbV9pNjRfcmVtX3MpCisKKy5yZXR1cm46CisgICAgcmV0dXJu
MmkoY3R4LCByMSwgcjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0
aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTY0X3JlbV91LCBXYXNtSTY0UmVt
VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIGExLCBhMCkKKyAgICBtbG9h
ZDJpKGN0eCwgbV9yaHMsIGEzLCBhMikKKworICAgIGJ0aW56IGEzLCAubm9uWmVyb0Rpdmlzb3IK
KyAgICBidGl6IGEyLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisubm9uWmVyb0Rpdmlzb3I6Cisg
ICAgY2FsbERpdlJlbShfc2xvd19wYXRoX3dhc21faTY0X3JlbV91KQorICAgIHJldHVybjJpKGN0
eCwgcjEsIHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihE
aXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9hbmQsIFdhc21JNjRBbmQsIG1hY3Jv
KGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwg
bV9yaHMsIHQzLCB0MikKKyAgICBhbmRpIHQyLCB0MAorICAgIGFuZGkgdDMsIHQxCisgICAgcmV0
dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfb3IsIFdhc21JNjRPciwgbWFj
cm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4
LCBtX3JocywgdDMsIHQyKQorICAgIG9yaSB0MiwgdDAKKyAgICBvcmkgdDMsIHQxCisgICAgcmV0
dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfeG9yLCBXYXNtSTY0WG9yLCBt
YWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShj
dHgsIG1fcmhzLCB0MywgdDIpCisgICAgeG9yaSB0MiwgdDAKKyAgICB4b3JpIHQzLCB0MQorICAg
IHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3NobCwgV2FzbUk2NFNo
bCwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2Fk
aShjdHgsIG1fcmhzLCB0MikKKworICAgIGFuZGkgMHgzZiwgdDIKKyAgICBidGl6IHQyLCAucmV0
dXJuCisgICAgYmliIHQyLCAzMiwgLmxlc3NUaGFuMzIKKworICAgIHN1YmkgMzIsIHQyCisgICAg
bHNoaWZ0aSB0MCwgdDIsIHQxCisgICAgbW92ZSAwLCB0MAorICAgIGptcCAucmV0dXJuCisKKy5s
ZXNzVGhhbjMyOgorICAgIGxzaGlmdGkgdDIsIHQxCisgICAgbW92ZSAzMiwgdDMKKyAgICBzdWJp
IHQyLCB0MworICAgIHVyc2hpZnRpIHQwLCB0MywgdDMKKyAgICBvcmkgdDMsIHQxCisgICAgbHNo
aWZ0aSB0MiwgdDAKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkK
Kword2FzbU9wKGk2NF9zaHJfdSwgV2FzbUk2NFNoclUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJp
KGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDIpCisKKyAgICBh
bmRpIDB4M2YsIHQyCisgICAgYnRpeiB0MiwgLnJldHVybgorICAgIGJpYiB0MiwgMzIsIC5sZXNz
VGhhbjMyCisKKyAgICBzdWJpIDMyLCB0MgorICAgIHVyc2hpZnRpIHQxLCB0MiwgdDAKKyAgICBt
b3ZlIDAsIHQxCisgICAgam1wIC5yZXR1cm4KKworLmxlc3NUaGFuMzI6CisgICAgdXJzaGlmdGkg
dDIsIHQwCisgICAgbW92ZSAzMiwgdDMKKyAgICBzdWJpIHQyLCB0MworICAgIGxzaGlmdGkgdDEs
IHQzLCB0MworICAgIG9yaSB0MywgdDAKKyAgICB1cnNoaWZ0aSB0MiwgdDEKKworLnJldHVybjoK
KyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9zaHJfcywgV2Fz
bUk2NFNoclMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAg
ICBtbG9hZGkoY3R4LCBtX3JocywgdDIpCisKKyAgICBhbmRpIDB4M2YsIHQyCisgICAgYnRpeiB0
MiwgLnJldHVybgorICAgIGJpYiB0MiwgMzIsIC5sZXNzVGhhbjMyCisKKyAgICBzdWJpIDMyLCB0
MgorICAgIHJzaGlmdGkgdDEsIHQyLCB0MAorICAgIHJzaGlmdGkgMzEsIHQxCisgICAgam1wIC5y
ZXR1cm4KKworLmxlc3NUaGFuMzI6CisgICAgdXJzaGlmdGkgdDIsIHQwCisgICAgbW92ZSAzMiwg
dDMKKyAgICBzdWJpIHQyLCB0MworICAgIGxzaGlmdGkgdDEsIHQzLCB0MworICAgIG9yaSB0Mywg
dDAKKyAgICByc2hpZnRpIHQyLCB0MQorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgdDEs
IHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3JvdHIsIFdhc21JNjRSb3RyLCBtYWNybyhjdHgpCisg
ICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQy
KQorCisgICAgYW5kaSB0MiwgMHgyMCwgdDMKKyAgICBidGl6IHQzLCAubm9Td2FwCisKKyAgICBt
b3ZlIHQwLCB0MworICAgIG1vdmUgdDEsIHQwCisgICAgbW92ZSB0MywgdDEKKworLm5vU3dhcDoK
KyAgICBhbmRpIDB4MWYsIHQyCisgICAgYnRpeiB0MiwgLnJldHVybgorCisgICAgbW92ZSAzMiwg
dDUKKyAgICBzdWJpIHQyLCB0NQorICAgIGxzaGlmdGkgdDAsIHQ1LCB0MworICAgIGxzaGlmdGkg
dDEsIHQ1LCB0NQorICAgIHVyc2hpZnRpIHQyLCB0MAorICAgIHVyc2hpZnRpIHQyLCB0MQorICAg
IG9yaSB0NSwgdDAKKyAgICBvcmkgdDMsIHQxCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4
LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfcm90bCwgV2FzbUk2NFJvdGwsIG1hY3JvKGN0
eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3Jo
cywgdDIpCisKKyAgICBhbmRpIHQyLCAweDIwLCB0MworICAgIGJ0aXogdDMsIC5ub1N3YXAKKwor
ICAgIG1vdmUgdDAsIHQzCisgICAgbW92ZSB0MSwgdDAKKyAgICBtb3ZlIHQzLCB0MQorCisubm9T
d2FwOgorICAgIGFuZGkgMHgxZiwgdDIKKyAgICBidGl6IHQyLCAucmV0dXJuCisKKyAgICBtb3Zl
IDMyLCB0NQorICAgIHN1YmkgdDIsIHQ1CisgICAgdXJzaGlmdGkgdDAsIHQ1LCB0MworICAgIHVy
c2hpZnRpIHQxLCB0NSwgdDUKKyAgICBsc2hpZnRpIHQyLCB0MAorICAgIGxzaGlmdGkgdDIsIHQx
CisgICAgb3JpIHQ1LCB0MAorICAgIG9yaSB0MywgdDEKKworLnJldHVybjoKKyAgICByZXR1cm4y
aShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9lcSwgV2FzbUk2NEVxLCBtYWNybyhj
dHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1f
cmhzLCB0MywgdDIpCisgICAgbW92ZSAwLCB0NgorICAgIGJpbmVxIHQxLCB0MywgLnJldHVybgor
ICAgIGNpZXEgdDAsIHQyLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQp
CisKK3dhc21PcChpNjRfbmUsIFdhc21JNjROZSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4
LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1v
dmUgMSwgdDYKKyAgICBiaW5lcSB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaW5lcSB0MCwgdDIsIHQ2
CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9sdF9z
LCBXYXNtSTY0THRTLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDAp
CisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAgIGJp
bHQgdDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpZ3QgdDEsIHQzLCAucmV0
dXJuCisgICAgY2liIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgorICAgIHJl
dHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9sZV9zLCBXYXNtSTY0TGVTLCBtYWNy
byhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgs
IG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAgIGJpbHQgdDEsIHQzLCAucmV0dXJu
CisgICAgbW92ZSAwLCB0NgorICAgIGJpZ3QgdDEsIHQzLCAucmV0dXJuCisgICAgY2liZXEgdDAs
IHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQor
ZW5kKQorCit3YXNtT3AoaTY0X2x0X3UsIFdhc21JNjRMdFUsIG1hY3JvKGN0eCkKKyAgICBtbG9h
ZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikK
KyAgICBtb3ZlIDEsIHQ2CisgICAgYmliIHQxLCB0MywgLnJldHVybgorICAgIG1vdmUgMCwgdDYK
KyAgICBiaWEgdDEsIHQzLCAucmV0dXJuCisgICAgY2liIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEs
IHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9s
ZV91LCBXYXNtSTY0TGVVLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwg
dDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAg
IGJpYiB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAgYmlhIHQxLCB0MywgLnJl
dHVybgorICAgIGNpYmVxIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgorICAg
IHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9ndF9zLCBXYXNtSTY0R3RTLCBt
YWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShj
dHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAgIGJpZ3QgdDEsIHQzLCAucmV0
dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpbHQgdDEsIHQzLCAucmV0dXJuCisgICAgY2lhIHQw
LCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikK
K2VuZCkKKword2FzbU9wKGk2NF9nZV9zLCBXYXNtSTY0R2VTLCBtYWNybyhjdHgpCisgICAgbWxv
YWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIp
CisgICAgbW92ZSAxLCB0NgorICAgIGJpZ3QgdDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0
NgorICAgIGJpbHQgdDEsIHQzLCAucmV0dXJuCisgICAgY2lhZXEgdDAsIHQyLCB0NgorICAgIGFu
ZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3Ao
aTY0X2d0X3UsIFdhc21JNjRHdFUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMs
IHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2
CisgICAgYmlhIHQxLCB0MywgLnJldHVybgorICAgIG1vdmUgMCwgdDYKKyAgICBiaWIgdDEsIHQz
LCAucmV0dXJuCisgICAgY2lhIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgor
ICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9nZV91LCBXYXNtSTY0R2VV
LCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQy
aShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAwLCB0NgorICAgIGJpYiB0MSwgdDMsIC5y
ZXR1cm4KKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlhIHQxLCB0MywgLnJldHVybgorICAgIGNpYWVx
IHQwLCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0
NikKK2VuZCkKKworIyBpNjQgdW5hcnkgb3BzCisKK3dhc21PcChpNjRfY3R6LCBXYXNtSTY0Q3R6
LCBtYWNybyAoY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIHQxLCB0MCkKKyAgICBi
dGl6IHQwLCAudG9wCisKKyAgICB0emNudGkgdDAsIHQwCisgICAgam1wIC5yZXR1cm4KKworLnRv
cDoKKyAgICB0emNudGkgdDEsIHQwCisgICAgYWRkaSAzMiwgdDAKKworLnJldHVybjoKKyAgICBy
ZXR1cm4yaShjdHgsIDAsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X2NseiwgV2FzbUk2NENseiwg
bWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIHQxLCB0MCkKKyAgICBidGl6
IHQxLCAuYm90dG9tCisKKyAgICBsemNudGkgdDEsIHQwCisgICAgam1wIC5yZXR1cm4KKworLmJv
dHRvbToKKyAgICBsemNudGkgdDAsIHQwCisgICAgYWRkaSAzMiwgdDAKKworLnJldHVybjoKKyAg
ICByZXR1cm4yaShjdHgsIDAsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3BvcGNudCwgV2FzbUk2
NFBvcGNudCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9vcGVyYW5kLCBhMywgYTIp
CisgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIG1vdmUgUEMsIGEwCisgICAgY0NhbGwy
KF9zbG93X3BhdGhfd2FzbV9wb3Bjb3VudGxsKQorICAgIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwo
KQorICAgIHJldHVybjJpKGN0eCwgMCwgcjEpCitlbmQpCisKK3dhc21PcChpNjRfZXF6LCBXYXNt
STY0RXF6LCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fb3BlcmFuZCwgdDEsIHQwKQor
ICAgIG1vdmUgMCwgdDIKKyAgICBidGlueiB0MSwgLnJldHVybgorICAgIGNpZXEgdDAsIDAsIHQy
CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKworIyBmNjQgYmluYXJ5IG9w
cworCit3YXNtT3AoZjY0X2NvcHlzaWduLCBXYXNtRjY0Q29weXNpZ24sIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQz
LCB0MikgIyB0MiB1bnVzZWQKKworICAgIGFuZGkgMHg3ZmZmZmZmZiwgdDEKKyAgICBhbmRpIDB4
ODAwMDAwMDAsIHQzCisgICAgb3JpIHQzLCB0MQorCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDAp
CitlbmQpCisKKyMgVHlwZSBjb252ZXJzaW9uIG9wcworCit3YXNtT3AoaTY0X2V4dGVuZF9zX2kz
MiwgV2FzbUk2NEV4dGVuZFNJMzIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJh
bmQsIHQwKQorICAgIHJzaGlmdGkgdDAsIDMxLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQw
KQorZW5kKQorCit3YXNtT3AoaTY0X2V4dGVuZF91X2kzMiwgV2FzbUk2NEV4dGVuZFVJMzIsIG1h
Y3JvKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHJldHVybjJpKGN0
eCwgMCwgdDApCitlbmQpCisKK3dhc21PcChmNjRfcmVpbnRlcnByZXRfaTY0LCBXYXNtRjY0UmVp
bnRlcnByZXRJNjQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9vcGVyYW5kLCB0MSwg
dDApCisgICAgZmlpMmQgdDAsIHQxLCBmdDAKKyAgICByZXR1cm5kKGN0eCwgZnQwKQorZW5kKQor
Cit3YXNtT3AoaTY0X3JlaW50ZXJwcmV0X2Y2NCwgV2FzbUk2NFJlaW50ZXJwcmV0RjY0LCBtYWNy
byhjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisgICAgZmQyaWkgZnQwLCB0
MCwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGkzMl90cnVu
Y19zX2Y2NCwgV2FzbUkzMlRydW5jU0Y2NCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBt
X29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmVpaSAweGMxZTAwMDAwMDAyMDAwMDAsIHQxLCB0MCAj
IElOVDMyX01JTiAtIDEuMAorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRsdGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlaWkgMHg0MWUwMDAwMDAwMDAwMDAw
LCB0MSwgdDAgIyAtSU5UMzJfTUlOCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGd0ZXF1
biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZDJpcyBmdDAsIHQw
CisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4
Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3VfZjY0
LCBXYXNtSTMyVHJ1bmNVRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFu
ZCwgZnQwKQorCisgICAgbW92ZWlpIDB4YmZmMDAwMDAwMDAwMDAwMCwgdDEsIHQwICMgLTEuMAor
ICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5k
c1RydW5jCisKKyAgICBtb3ZlaWkgMHg0MWYwMDAwMDAwMDAwMDAwLCB0MSwgdDAgIyBJTlQzMl9N
SU4gKiAtMi4wCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwg
Lm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAKKyAgICByZXR1cm5p
KGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91dE9m
Qm91bmRzVHJ1bmMpCitlbmQpCisKK3Nsb3dXYXNtT3AoaTY0X3RydW5jX3NfZjMyKQorc2xvd1dh
c21PcChpNjRfdHJ1bmNfdV9mMzIpCitzbG93V2FzbU9wKGk2NF90cnVuY19zX2Y2NCkKK3Nsb3dX
YXNtT3AoaTY0X3RydW5jX3VfZjY0KQorCit3YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfcywgV2Fz
bUkzMlRydW5jU2F0RjY0UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQs
IGZ0MCkKKworICAgIG1vdmVpaSAweGMxZTAwMDAwMDAyMDAwMDAsIHQxLCB0MCAjIElOVDMyX01J
TiAtIDEuMAorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5v
dXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU4KKworICAgIG1vdmVpaSAweDQxZTAwMDAwMDAwMDAw
MDAsIHQxLCB0MCAjIC1JTlQzMl9NSU4KKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkZ3Rl
cXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisgICAgdHJ1bmNhdGVkMmlz
IGZ0MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWlu
T3JOYU46CisgICAgYmRlcSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKyAgICBt
b3ZlIDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1h
eDoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UMzJfTUFYKSwgdDAKKyAgICByZXR1cm5pKGN0eCwg
dDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQz
Ml9NSU4pLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGkzMl90cnVu
Y19zYXRfZjY0X3UsIFdhc21JMzJUcnVuY1NhdEY2NFUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRk
KGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlaWkgMHhiZmYwMDAwMDAwMDAwMDAwLCB0
MSwgdDAgIyAtMS4wCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0
MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKworICAgIG1vdmVpaSAweDQxZjAwMDAwMDAwMDAw
MDAsIHQxLCB0MCAjIElOVDMyX01JTiAqIC0yLjAKKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAg
IGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisgICAgdHJ1bmNh
dGVkMmkgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNT
YXRNaW46CisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91
bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIFVJTlQzMl9NQVgpLCB0MAorICAg
IHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKworc2xvd1dhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl9z
KQorc2xvd1dhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl91KQorc2xvd1dhc21PcChpNjRfdHJ1bmNf
c2F0X2Y2NF9zKQorc2xvd1dhc21PcChpNjRfdHJ1bmNfc2F0X2Y2NF91KQorCisjIEV4dGVuZCBv
cHMKKword2FzbU9wKGk2NF9leHRlbmQ4X3MsIFdhc21JNjRFeHRlbmQ4UywgbWFjcm8oY3R4KQor
ICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgc3hiMmkgdDAsIHQwCisgICAgcnNo
aWZ0aSB0MCwgMzEsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21P
cChpNjRfZXh0ZW5kMTZfcywgV2FzbUk2NEV4dGVuZDE2UywgbWFjcm8oY3R4KQorICAgIG1sb2Fk
aShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgc3hoMmkgdDAsIHQwCisgICAgcnNoaWZ0aSB0MCwg
MzEsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfZXh0
ZW5kMzJfcywgV2FzbUk2NEV4dGVuZDE2UywgbWFjcm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1f
b3BlcmFuZCwgdDApCisgICAgcnNoaWZ0aSB0MCwgMzEsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0
MSwgdDApCitlbmQpCisKKyMgQXRvbWljcworCittYWNybyB3YXNtQXRvbWljQmluYXJ5Uk1XT3Bz
KGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIsIGZuaCwgZm5pLCBmbjJpKQor
ICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzglbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRv
bWljUm13OCV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4
LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAg
ICAgbWxvYWRpKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQ
b2ludGVyQWRkaW5nT2Zmc2V0KHQzLCB0NSwgMSkKKyAgICAgICAgZm5iKHQwLCBbdDNdLCB0Miwg
dDUsIHQ2KQorICAgICAgICBhbmRpIDB4ZmYsIHQ2ICMgRklYTUU6IFplcm9FeHRlbmQ4VG82NAor
ICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJpYmVxIHQ2LCAweGZmLCAub2sgZW5kKQorICAgICAg
ICByZXR1cm4yaShjdHgsIDAsIHQ2KQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19y
bXcxNiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXcxNiV1cHBlckNhc2VPcGNv
ZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAg
ICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV92YWx1
ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0
aEFsaWdubWVudENoZWNrKHQzLCB0NSwgMikKKyAgICAgICAgZm5oKHQwLCBbdDNdLCB0MiwgdDUs
IHQ2KQorICAgICAgICBhbmRpIDB4ZmZmZiwgdDYgIyBGSVhNRTogWmVyb0V4dGVuZDE2VG82NAor
ICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJpYmVxIHQ2LCAweGZmZmYsIC5vayBlbmQpCisgICAg
ICAgIHJldHVybjJpKGN0eCwgMCwgdDYpCisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWlj
X3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzMyJXVwcGVyQ2FzZU9w
Y29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisg
ICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3Zh
bHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRX
aXRoQWxpZ25tZW50Q2hlY2sodDMsIHQ1LCA0KQorICAgICAgICBmbmkodDAsIFt0M10sIHQyLCB0
NSwgdDYpCisgICAgICAgIHJldHVybjJpKGN0eCwgMCwgdDYpCisgICAgZW5kKQorICAgIHdhc21P
cChpNjRfYXRvbWljX3JtdyVsb3dlckNhc2VPcGNvZGUlLCBXYXNtSTY0QXRvbWljUm13JXVwcGVy
Q2FzZU9wY29kZSUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0
MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkMmkoY3R4
LCBtX3ZhbHVlLCB0MSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRk
aW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKHQzLCB0NSwgOCkKKyAgICAgICAgcHVzaCB0NCAj
IFRoaXMgaXMgdGhlIFBCLCBzbyBuZWVkIHRvIGJlIHNhdmVkIGFuZCByZXN0b3JlZAorICAgICAg
ICBmbjJpKHQxLCB0MCwgW3QzXSwgdDQsIHQ1LCB0NywgdDIsIHQ2KQorICAgICAgICBwb3AgdDQK
KyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MiwgdDYpCisgICAgZW5kKQorZW5kCisKK21hY3JvIHdh
c21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2Fz
ZU9wY29kZSwgZm5pLCBmbjJpKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMobG93ZXJDYXNl
T3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BS
LCB0NUdQUiwgdDZHUFIpCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIC5sb29w
OgorICAgICAgICAgICAgICAgIGxvYWRsaW5rYiBtZW0sIHQ2R1BSCisgICAgICAgICAgICAgICAg
Zm5pKHQwR1BSLCB0NkdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgc3RvcmVjb25kYiB0NUdQ
UiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAorICAg
ICAgICAgICAgICAgIGZlbmNlCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0NkdQUikKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAgICAg
ICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9hZGxpbmtoIG1lbSwgdDZHUFIKKyAgICAgICAg
ICAgICAgICBmbmkodDBHUFIsIHQ2R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNv
bmRoIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5s
b29wCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQ2R1BSKQorICAgICAgICAgICAgICAgIGZlbmNlCisg
ICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2FkbGlua2kgbWVtLCB0NkdQUgor
ICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDZHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAg
IHN0b3JlY29uZGkgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0NUdQ
UiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAgICBlbmQsCisgICAgICAg
IG1hY3JvKHQxR1BSLCB0MEdQUiwgbWVtLCB0NEdQUiwgdDVHUFIsIHQ3R1BSLCB0MkdQUiwgdDZH
UFIpCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAg
ICAgICAgIGxvYWRsaW5rMmkgbWVtLCB0NkdQUiwgdDJHUFIKKyAgICAgICAgICAgICAgICBmbjJp
KHQxR1BSLCB0MEdQUiwgdDJHUFIsIHQ2R1BSLCB0NEdQUiwgdDVHUFIpCisgICAgICAgICAgICAg
ICAgc3RvcmVjb25kMmkgdDdHUFIsIHQ1R1BSLCB0NEdQUiwgbWVtCisgICAgICAgICAgICAgICAg
YmluZXEgdDdHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgZW5k
KQorZW5kCisKK2lmIEFSTXY3CisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FT
KF9hZGQsIEFkZCwKKyAgICAgICAgbWFjcm8oc3JjMCwgc3JjMSwgZHN0KQorICAgICAgICAgICAg
YWRkaSBzcmMwLCBzcmMxLCBkc3QKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyhzcmMwTXN3
LCBzcmMwTHN3LCBzcmMxTXN3LCBzcmMxTHN3LCBkc3RNc3csIGRzdExzdykKKyAgICAgICAgICAg
IGFkZGlzIHNyYzBMc3csIHNyYzFMc3csIGRzdExzdworICAgICAgICAgICAgYWRjaSAgc3JjME1z
dywgc3JjMU1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1X
T3BzV2l0aFdlYWtDQVMoX3N1YiwgU3ViLAorICAgICAgICBtYWNybyhzcmMwLCBzcmMxLCBkc3Qp
CisgICAgICAgICAgICBzdWJpIHNyYzEsIHNyYzAsIGRzdAorICAgICAgICBlbmQsCisgICAgICAg
IG1hY3JvKHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0THN3
KQorICAgICAgICAgICAgc3ViaXMgc3JjMUxzdywgc3JjMExzdywgZHN0THN3CisgICAgICAgICAg
ICBzYmNpICBzcmMxTXN3LCBzcmMwTXN3LCBkc3RNc3cKKyAgICAgICAgZW5kKQorICAgIHdhc21B
dG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeGNoZywgWGNoZywKKyAgICAgICAgbWFjcm8o
c3JjMCwgc3JjMSwgZHN0KQorICAgICAgICAgICAgbW92ZSBzcmMwLCBkc3QKKyAgICAgICAgZW5k
LAorICAgICAgICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3LCBzcmMxTXN3LCBzcmMxTHN3LCBkc3RN
c3csIGRzdExzdykKKyAgICAgICAgICAgIG1vdmUgc3JjMExzdywgZHN0THN3CisgICAgICAgICAg
ICBtb3ZlIHNyYzBNc3csIGRzdE1zdworICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFy
eVJNV09wc1dpdGhXZWFrQ0FTKF9hbmQsIEFuZCwKKyAgICAgICAgbWFjcm8oc3JjMCwgc3JjMSwg
ZHN0KQorICAgICAgICAgICAgYW5kaSBzcmMwLCBzcmMxLCBkc3QKKyAgICAgICAgZW5kLAorICAg
ICAgICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3LCBzcmMxTXN3LCBzcmMxTHN3LCBkc3RNc3csIGRz
dExzdykKKyAgICAgICAgICAgIGFuZGkgc3JjMExzdywgc3JjMUxzdywgZHN0THN3CisgICAgICAg
ICAgICBhbmRpIHNyYzBNc3csIHNyYzFNc3csIGRzdE1zdworICAgICAgICBlbmQpCisgICAgd2Fz
bUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9vciwgT3IsCisgICAgICAgIG1hY3JvKHNy
YzAsIHNyYzEsIGRzdCkKKyAgICAgICAgICAgIG9yaSBzcmMwLCBzcmMxLCBkc3QKKyAgICAgICAg
ZW5kLAorICAgICAgICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3LCBzcmMxTXN3LCBzcmMxTHN3LCBk
c3RNc3csIGRzdExzdykKKyAgICAgICAgICAgIG9yaSBzcmMwTHN3LCBzcmMxTHN3LCBkc3RMc3cK
KyAgICAgICAgICAgIG9yaSBzcmMwTXN3LCBzcmMxTXN3LCBkc3RNc3cKKyAgICAgICAgZW5kKQor
ICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeG9yLCBYb3IsCisgICAgICAg
IG1hY3JvKHNyYzAsIHNyYzEsIGRzdCkKKyAgICAgICAgICAgIHhvcmkgc3JjMCwgc3JjMSwgZHN0
CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8oc3JjME1zdywgc3JjMExzdywgc3JjMU1zdywg
c3JjMUxzdywgZHN0TXN3LCBkc3RMc3cpCisgICAgICAgICAgICB4b3JpIHNyYzBMc3csIHNyYzFM
c3csIGRzdExzdworICAgICAgICAgICAgeG9yaSBzcmMwTXN3LCBzcmMxTXN3LCBkc3RNc3cKKyAg
ICAgICAgZW5kKQorZW5kCisKK21hY3JvIHdhc21BdG9taWNDb21wYXJlRXhjaGFuZ2VPcHMobG93
ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmksIGZuMmkpCisgICAg
d2FzbU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNS
bXc4JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1f
cG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBt
bG9hZDJpKGN0eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAgICBtbG9hZDJpKGN0eCwgbV92
YWx1ZSwgdDYsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09m
ZnNldCh0MywgdDUsIDEpCisgICAgICAgIGZuYih0MSwgdDAsIHQ2LCB0MiwgW3QzXSwgdDcsIHQ1
KQorICAgICAgICBhbmRpIDB4ZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQ4VG82NAorICAgICAg
ICBhc3NlcnQobWFjcm8ob2spIGJpYmVxIHQwLCAweGZmLCAub2sgZW5kKQorICAgICAgICBhc3Nl
cnQobWFjcm8ob2spIGJpZXEgdDEsIDAsIC5vayBlbmQpCisgICAgICAgIHJldHVybjJpKGN0eCwg
dDEsIHQwKQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcxNiVsb3dlckNhc2VP
cGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXcxNiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4
KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgs
IG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fZXhwZWN0ZWQsIHQxLCB0MCkK
KyAgICAgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQ2LCB0MikKKyAgICAgICAgZW1pdENoZWNr
QW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2sodDMsIHQ1LCAy
KQorICAgICAgICBmbmgodDEsIHQwLCB0NiwgdDIsIFt0M10sIHQ3LCB0NSkKKyAgICAgICAgYW5k
aSAweGZmZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQxNlRvNjQKKyAgICAgICAgYXNzZXJ0KG1h
Y3JvKG9rKSBiaWJlcSB0MCwgMHhmZmZmLCAub2sgZW5kKQorICAgICAgICBhc3NlcnQobWFjcm8o
b2spIGJpZXEgdDEsIDAsIC5vayBlbmQpCisgICAgICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQor
ICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXczMiVsb3dlckNhc2VPcGNvZGUlX3Us
IFdhc21JNjRBdG9taWNSbXczMiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAg
ICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0
LCB0NSkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fZXhwZWN0ZWQsIHQxLCB0MCkKKyAgICAgICAg
bWxvYWQyaShjdHgsIG1fdmFsdWUsIHQ2LCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFy
ZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2sodDMsIHQ1LCA4KQorICAgICAg
ICBmbmkodDEsIHQwLCB0NiwgdDIsIFt0M10sIHQ3LCB0NSkKKyAgICAgICAgYXNzZXJ0KG1hY3Jv
KG9rKSBiaWVxIHQxLCAwLCAub2sgZW5kKQorICAgICAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkK
KyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdh
c21JNjRBdG9taWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9h
ZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkK
KyAgICAgICAgbWxvYWQyaShjdHgsIG1fZXhwZWN0ZWQsIHQxLCB0MCkKKyAgICAgICAgbWxvYWQy
aShjdHgsIG1fdmFsdWUsIHQ2LCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50
ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2sodDMsIHQ1LCA4KQorICAgICAgICBwdXNo
IHQ0ICMgVGhpcyBpcyB0aGUgUEIsIHNvIG5lZWQgdG8gYmUgc2F2ZWQgYW5kIHJlc3RvcmVkCisg
ICAgICAgIGZuMmkodDEsIHQwLCB0NiwgdDIsIFt0M10sIHQ3LCB0NSwgdDQpCisgICAgICAgIHBv
cCB0NAorICAgICAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKKyAgICBlbmQpCitlbmQKKworaWYg
QVJNdjcKKy8vIGV4cDogImV4cGVjdGVkIiwgdmFsOiAidmFsdWUiLCByZXM6ICJyZXN1bHQiCit3
YXNtQXRvbWljQ29tcGFyZUV4Y2hhbmdlT3BzKF9jbXB4Y2hnLCBDbXB4Y2hnLAorICAgIG1hY3Jv
KGV4cE1zdywgZXhwTHN3LCB2YWxNc3csIHZhbExzdywgbWVtLCBzY3JhdGNoLCByZXNMc3cpCisg
ICAgICAgICAgICBmZW5jZQorICAgICAgICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5rYiBt
ZW0sIHJlc0xzdworICAgICAgICAgICAgYmluZXEgZXhwTHN3LCByZXNMc3csIC5mYWlsCisgICAg
ICAgICAgICBiaW5lcSBleHBNc3csIDAsIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmRiIHNj
cmF0Y2gsIHZhbExzdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisg
ICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNv
bmRiIHNjcmF0Y2gsIHJlc0xzdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5k
b25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBm
ZW5jZQorICAgICAgICAgICAgbW92ZSByZXNMc3csIGV4cExzdworICAgICAgICAgICAgbW92ZSAw
LCBleHBNc3cKKyAgICBlbmQsCisgICAgbWFjcm8oZXhwTXN3LCBleHBMc3csIHZhbE1zdywgdmFs
THN3LCBtZW0sIHNjcmF0Y2gsIHJlc0xzdykKKyAgICAgICAgICAgIGZlbmNlCisgICAgICAgIC5s
b29wOgorICAgICAgICAgICAgbG9hZGxpbmtoIG1lbSwgcmVzTHN3CisgICAgICAgICAgICBiaW5l
cSBleHBMc3csIHJlc0xzdywgLmZhaWwKKyAgICAgICAgICAgIGJpbmVxIGV4cE1zdywgMCwgLmZh
aWwKKyAgICAgICAgICAgIHN0b3JlY29uZGggc2NyYXRjaCwgdmFsTHN3LCBtZW0KKyAgICAgICAg
ICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAg
ICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZGggc2NyYXRjaCwgcmVzTHN3LCBtZW0KKyAg
ICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAor
ICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIGZlbmNlCisgICAgICAgICAgICBtb3ZlIHJlc0xz
dywgZXhwTHN3CisgICAgICAgICAgICBtb3ZlIDAsIGV4cE1zdworICAgIGVuZCwKKyAgICBtYWNy
byhleHBNc3csIGV4cExzdywgdmFsTXN3LCB2YWxMc3csIG1lbSwgc2NyYXRjaCwgcmVzTHN3KQor
ICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgLmxvb3A6CisgICAgICAgICAgICBsb2FkbGlua2kg
bWVtLCByZXNMc3cKKyAgICAgICAgICAgIGJpbmVxIGV4cExzdywgcmVzTHN3LCAuZmFpbAorICAg
ICAgICAgICAgYmluZXEgZXhwTXN3LCAwLCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kaSBz
Y3JhdGNoLCB2YWxMc3csIG1lbQorICAgICAgICAgICAgYmllcSBzY3JhdGNoLCAwLCAuZG9uZQor
ICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgc3RvcmVj
b25kaSBzY3JhdGNoLCByZXNMc3csIG1lbQorICAgICAgICAgICAgYmllcSBzY3JhdGNoLCAwLCAu
ZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAgICAgICAg
ZmVuY2UKKyAgICAgICAgICAgIG1vdmUgcmVzTHN3LCBleHBMc3cKKyAgICAgICAgICAgIG1vdmUg
MCwgZXhwTXN3CisgICAgZW5kLAorICAgIG1hY3JvKGV4cE1zdywgZXhwTHN3LCB2YWxNc3csIHZh
bExzdywgbWVtLCBzY3JhdGNoLCByZXNNc3csIHJlc0xzdykKKyAgICAgICAgICAgIGZlbmNlCisg
ICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmsyaSBtZW0sIHJlc0xzdywgcmVzTXN3
CisgICAgICAgICAgICBiaW5lcSBleHBMc3csIHJlc0xzdywgLmZhaWwKKyAgICAgICAgICAgIGJp
bmVxIGV4cE1zdywgcmVzTXN3LCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kMmkgc2NyYXRj
aCwgdmFsTHN3LCB2YWxNc3csIG1lbQorICAgICAgICAgICAgYmllcSBzY3JhdGNoLCAwLCAuZG9u
ZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgc3Rv
cmVjb25kMmkgc2NyYXRjaCwgcmVzTHN3LCByZXNNc3csIG1lbQorICAgICAgICAgICAgYmllcSBz
Y3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgor
ICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIG1vdmUgcmVzTHN3LCBleHBMc3cKKyAgICAg
ICAgICAgIG1vdmUgcmVzTXN3LCBleHBNc3cKKyAgICBlbmQpCitlbmQKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5NjQuYXNtIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5NjQuYXNtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMC4uNDZlOWVhNDg4NTI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5NjQuYXNtCkBAIC0wLDAgKzEsMTI1
OSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBPcGNvZGVz
IHRoYXQgc2hvdWxkIGV2ZW50dWFsbHkgYmUgc2hhcmVkIHdpdGggSlMgbGxpbnQKKword2FzbU9w
KG1vdiwgV2FzbU1vdiwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fc3JjLCB0MCkKKyAg
ICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKKyMgV2FzbSBzcGVjaWZpYyBieXRlY29kZXMKKwor
bWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4LCBwb2ludGVyLCBvZmZzZXQsIHNp
emUpCisgICAgbGVhcCBzaXplIC0gMVtwb2ludGVyLCBvZmZzZXRdLCB0NQorICAgIGJwYiB0NSwg
Ym91bmRzQ2hlY2tpbmdTaXplLCAuY29udGludWF0aW9uCisgICAgdGhyb3dFeGNlcHRpb24oT3V0
T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCisuY29udGludWF0aW9uOgorICAgIGFkZHAgbWVtb3J5QmFz
ZSwgcG9pbnRlcgorZW5kCisKK21hY3JvIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5n
T2Zmc2V0KGN0eCwgcG9pbnRlciwgb2Zmc2V0LCBzaXplKQorICAgIGxlYXAgc2l6ZSAtIDFbcG9p
bnRlciwgb2Zmc2V0XSwgdDUKKyAgICBicGIgdDUsIGJvdW5kc0NoZWNraW5nU2l6ZSwgLmNvbnRp
bnVhdGlvbgorLnRocm93OgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNj
ZXNzKQorLmNvbnRpbnVhdGlvbjoKKyAgICBhZGRwIG1lbW9yeUJhc2UsIHBvaW50ZXIKKyAgICBh
ZGRwIG9mZnNldCwgcG9pbnRlcgorZW5kCisKK21hY3JvIGVtaXRDaGVja0FuZFByZXBhcmVQb2lu
dGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgcG9pbnRlciwgb2Zmc2V0LCBz
aXplKQorICAgIGxlYXAgc2l6ZSAtIDFbcG9pbnRlciwgb2Zmc2V0XSwgdDUKKyAgICBicGIgdDUs
IGJvdW5kc0NoZWNraW5nU2l6ZSwgLmNvbnRpbnVhdGlvbgorLnRocm93OgorICAgIHRocm93RXhj
ZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNjZXNzKQorLmNvbnRpbnVhdGlvbjoKKyAgICBhZGRw
IG1lbW9yeUJhc2UsIHBvaW50ZXIKKyAgICBhZGRwIG9mZnNldCwgcG9pbnRlcgorICAgIGJ0cG56
IHBvaW50ZXIsIChzaXplIC0gMSksIC50aHJvdworZW5kCisKKworbWFjcm8gd2FzbUxvYWRPcChu
YW1lLCBzdHJ1Y3QsIHNpemUsIGZuKQorICAgIHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1hY3JvKGN0
eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MCkKKyAgICAgICAgd2dldHUoY3R4
LCBtX29mZnNldCwgdDEpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKGN0eCwg
dDAsIHQxLCBzaXplKQorICAgICAgICBmbihbdDAsIHQxXSwgdDIpCisgICAgICAgIHJldHVybnEo
Y3R4LCB0MikKKyAgICBlbmQpCitlbmQKKword2FzbUxvYWRPcChsb2FkOF91LCBXYXNtTG9hZDhV
LCAxLCBtYWNybyhtZW0sIGRzdCkgbG9hZGIgbWVtLCBkc3QgZW5kKQord2FzbUxvYWRPcChsb2Fk
MTZfdSwgV2FzbUxvYWQxNlUsIDIsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaCBtZW0sIGRzdCBlbmQp
Cit3YXNtTG9hZE9wKGxvYWQzMl91LCBXYXNtTG9hZDMyVSwgNCwgbWFjcm8obWVtLCBkc3QpIGxv
YWRpIG1lbSwgZHN0IGVuZCkKK3dhc21Mb2FkT3AobG9hZDY0X3UsIFdhc21Mb2FkNjRVLCA4LCBt
YWNybyhtZW0sIGRzdCkgbG9hZHEgbWVtLCBkc3QgZW5kKQorCit3YXNtTG9hZE9wKGkzMl9sb2Fk
OF9zLCBXYXNtSTMyTG9hZDhTLCAxLCBtYWNybyhtZW0sIGRzdCkgbG9hZGJzaSBtZW0sIGRzdCBl
bmQpCit3YXNtTG9hZE9wKGk2NF9sb2FkOF9zLCBXYXNtSTY0TG9hZDhTLCAxLCBtYWNybyhtZW0s
IGRzdCkgbG9hZGJzcSBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGkzMl9sb2FkMTZfcywgV2Fz
bUkzMkxvYWQxNlMsIDIsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaHNpIG1lbSwgZHN0IGVuZCkKK3dh
c21Mb2FkT3AoaTY0X2xvYWQxNl9zLCBXYXNtSTY0TG9hZDE2UywgMiwgbWFjcm8obWVtLCBkc3Qp
IGxvYWRoc3EgbWVtLCBkc3QgZW5kKQord2FzbUxvYWRPcChpNjRfbG9hZDMyX3MsIFdhc21JNjRM
b2FkMzJTLCA0LCBtYWNybyhtZW0sIGRzdCkgbG9hZGlzIG1lbSwgZHN0IGVuZCkKKworbWFjcm8g
d2FzbVN0b3JlT3AobmFtZSwgc3RydWN0LCBzaXplLCBmbikKKyAgICB3YXNtT3AobmFtZSwgc3Ry
dWN0LCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDApCisgICAg
ICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJl
UG9pbnRlcihjdHgsIHQwLCB0MSwgc2l6ZSkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwg
dDIpCisgICAgICAgIGZuKHQyLCBbdDAsIHQxXSkKKyAgICAgICAgZGlzcGF0Y2goY3R4KQorICAg
IGVuZCkKK2VuZAorCit3YXNtU3RvcmVPcChzdG9yZTgsIFdhc21TdG9yZTgsIDEsIG1hY3JvKHZh
bHVlLCBtZW0pIHN0b3JlYiB2YWx1ZSwgbWVtIGVuZCkKK3dhc21TdG9yZU9wKHN0b3JlMTYsIFdh
c21TdG9yZTE2LCAyLCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZWggdmFsdWUsIG1lbSBlbmQpCit3
YXNtU3RvcmVPcChzdG9yZTMyLCBXYXNtU3RvcmUzMiwgNCwgbWFjcm8odmFsdWUsIG1lbSkgc3Rv
cmVpIHZhbHVlLCBtZW0gZW5kKQord2FzbVN0b3JlT3Aoc3RvcmU2NCwgV2FzbVN0b3JlNjQsIDgs
IG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlcSB2YWx1ZSwgbWVtIGVuZCkKKword2FzbU9wKHJlZl9p
c19udWxsLCBXYXNtUmVmSXNOdWxsLCBtYWNybyhjdHgpCisgICAgbWxvYWRwKGN0eCwgbV9yZWYs
IHQwKQorICAgIGNxZXEgdDAsIFZhbHVlTnVsbCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCitl
bmQpCisKK3dhc21PcChnZXRfZ2xvYmFsLCBXYXNtR2V0R2xvYmFsLCBtYWNybyhjdHgpCisgICAg
bG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdn
ZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbG9hZHEgW3QwLCB0MSwgOF0sIHQwCisg
ICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3Aoc2V0X2dsb2JhbCwgV2FzbVNldEds
b2JhbCwgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2Fz
bUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQorICAgIG1s
b2FkcShjdHgsIG1fdmFsdWUsIHQyKQorICAgIHN0b3JlcSB0MiwgW3QwLCB0MSwgOF0KKyAgICBk
aXNwYXRjaChjdHgpCitlbmQpCisKK3dhc21PcChnZXRfZ2xvYmFsX3BvcnRhYmxlX2JpbmRpbmcs
IFdhc21HZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBXYXNt
OjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4LCBt
X2dsb2JhbEluZGV4LCB0MSkKKyAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKKyAgICBsb2FkcSBb
dDBdLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKHNldF9nbG9iYWxf
cG9ydGFibGVfYmluZGluZywgV2FzbVNldEdsb2JhbFBvcnRhYmxlQmluZGluZywgbWFjcm8oY3R4
KQorICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAK
KyAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQorICAgIG1sb2FkcShjdHgsIG1fdmFs
dWUsIHQyKQorICAgIGxvYWRxIFt0MCwgdDEsIDhdLCB0MAorICAgIHN0b3JlcSB0MiwgW3QwXQor
ICAgIGRpc3BhdGNoKGN0eCkKK2VuZCkKKworIyBPcGNvZGVzIHRoYXQgZG9uJ3QgaGF2ZSB0aGUg
YGIzb3BgIGVudHJ5IGluIHdhc20uanNvbi4gVGhpcyBzaG91bGQgYmUga2VwdCBpbiBzeW5jCisK
KyMgaTMyIGJpbmFyeSBvcHMKKword2FzbU9wKGkzMl9kaXZfcywgV2FzbUkzMkRpdlMsIG1hY3Jv
IChjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhz
LCB0MSkKKworICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBiaW5lcSB0
MSwgLTEsIC5zYWZlCisgICAgYmllcSB0MCwgY29uc3RleHByIElOVDMyX01JTiwgLnRocm93SW50
ZWdlck92ZXJmbG93CisKKy5zYWZlOgorICAgIGlmIFg4Nl82NAorICAgICAgICAjIEZJWE1FOiBB
ZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0MiBpcyByZHgKKyAg
ICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCisg
ICAgICAgIGNkcWkKKyAgICAgICAgaWRpdmkgdDEKKyAgICBlbHNpZiBBUk02NCBvciBBUk02NEUg
b3IgUklTQ1Y2NAorICAgICAgICBkaXZpcyB0MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVycm9y
CisgICAgZW5kCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoK
KyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKKworLnRocm93SW50ZWdlck92ZXJm
bG93OgorICAgIHRocm93RXhjZXB0aW9uKEludGVnZXJPdmVyZmxvdykKK2VuZCkKKword2FzbU9w
KGkzMl9kaXZfdSwgV2FzbUkzMkRpdlUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9s
aHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0aXogdDEsIC50aHJv
d0RpdmlzaW9uQnlaZXJvCisKKyAgICBpZiBYODZfNjQKKyAgICAgICAgeG9yaSB0MiwgdDIKKyAg
ICAgICAgdWRpdmkgdDEKKyAgICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAorICAg
ICAgICBkaXZpIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKKyAgICBy
ZXR1cm5pKGN0eCwgdDApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0
aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTMyX3JlbV9zLCBXYXNtSTMyUmVt
UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0
eCwgbV9yaHMsIHQxKQorCisgICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAg
IGJpbmVxIHQxLCAtMSwgLnNhZmUKKyAgICBiaW5lcSB0MCwgY29uc3RleHByIElOVDMyX01JTiwg
LnNhZmUKKworICAgIG1vdmUgMCwgdDIKKyAgICBqbXAgLnJldHVybgorCisuc2FmZToKKyAgICBp
ZiBYODZfNjQKKyAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRpY19hc3NldCB0aGF0
IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4CisgICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgorICAgICAgICBjZHFpCisgICAgICAgIGlkaXZpIHQx
CisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCisgICAgICAgIGRpdmlzIHQxLCB0MCwgdDIKKyAg
ICAgICAgbXVsaSB0MSwgdDIKKyAgICAgICAgc3ViaSB0MCwgdDIsIHQyCisgICAgZWxzaWYgUklT
Q1Y2NAorICAgICAgICByZW1pcyB0MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAg
ZW5kCisKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQyKQorCisudGhyb3dEaXZpc2lvbkJ5
WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9w
KGkzMl9yZW1fdSwgV2FzbUkzMlJlbVUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9s
aHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0aXogdDEsIC50aHJv
d0RpdmlzaW9uQnlaZXJvCisKKyAgICBpZiBYODZfNjQKKyAgICAgICAgeG9yaSB0MiwgdDIKKyAg
ICAgICAgdWRpdmkgdDEKKyAgICBlbHNpZiBBUk02NCBvciBBUk02NEUKKyAgICAgICAgZGl2aSB0
MSwgdDAsIHQyCisgICAgICAgIG11bGkgdDEsIHQyCisgICAgICAgIHN1YmkgdDAsIHQyLCB0Mgor
ICAgIGVsc2lmIFJJU0NWNjQKKyAgICAgICAgcmVtaSB0MSwgdDAKKyAgICBlbHNlCisgICAgICAg
IGVycm9yCisgICAgZW5kCisgICAgcmV0dXJuaShjdHgsIHQyKQorCisudGhyb3dEaXZpc2lvbkJ5
WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKworIyBpNjQg
YmluYXJ5IG9wcworCit3YXNtT3AoaTY0X2FkZCwgV2FzbUk2NEFkZCwgbWFjcm8oY3R4KQorICAg
IG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAg
YWRkcSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfc3Vi
LCBXYXNtSTY0U3ViLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAg
IG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBzdWJxIHQxLCB0MAorICAgIHJldHVybnEoY3R4
LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9tdWwsIFdhc21JNjRNdWwsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAg
IG11bHEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X2Rp
dl9zLCBXYXNtSTY0RGl2UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDAp
CisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRxeiB0MSwgLnRocm93RGl2aXNp
b25CeVplcm8KKworICAgIGJxbmVxIHQxLCAtMSwgLnNhZmUKKyAgICBicWVxIHQwLCBjb25zdGV4
cHIgSU5UNjRfTUlOLCAudGhyb3dJbnRlZ2VyT3ZlcmZsb3cKKworLnNhZmU6CisgICAgaWYgWDg2
XzY0CisgICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBp
cyByYXggYW5kIHQyIGlzIHJkeAorICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDM2OTIKKyAgICAgICAgY3FvcQorICAgICAgICBpZGl2cSB0MQorICAg
IGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0CisgICAgICAgIGRpdnFzIHQxLCB0MAor
ICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKKyAgICByZXR1cm5xKGN0eCwgdDApCisK
Ky50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJv
KQorCisudGhyb3dJbnRlZ2VyT3ZlcmZsb3c6CisgICAgdGhyb3dFeGNlcHRpb24oSW50ZWdlck92
ZXJmbG93KQorZW5kKQorCit3YXNtT3AoaTY0X2Rpdl91LCBXYXNtSTY0RGl2VSwgbWFjcm8gKGN0
eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQx
KQorCisgICAgYnRxeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGlmIFg4Nl82NAor
ICAgICAgICB4b3JxIHQyLCB0MgorICAgICAgICB1ZGl2cSB0MQorICAgIGVsc2lmIEFSTTY0IG9y
IEFSTTY0RSBvciBSSVNDVjY0CisgICAgICAgIGRpdnEgdDEsIHQwCisgICAgZWxzZQorICAgICAg
ICBlcnJvcgorICAgIGVuZAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLnRocm93RGl2aXNpb25C
eVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21P
cChpNjRfcmVtX3MsIFdhc21JNjRSZW1TLCBtYWNybyAoY3R4KQorICAgIG1sb2FkcShjdHgsIG1f
bGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisKKyAgICBidHF6IHQxLCAudGhy
b3dEaXZpc2lvbkJ5WmVybworCisgICAgYnFuZXEgdDEsIC0xLCAuc2FmZQorICAgIGJxbmVxIHQw
LCBjb25zdGV4cHIgSU5UNjRfTUlOLCAuc2FmZQorCisgICAgbW92ZSAwLCB0MgorICAgIGptcCAu
cmV0dXJuCisKKy5zYWZlOgorICAgIGlmIFg4Nl82NAorICAgICAgICAjIEZJWE1FOiBBZGQgYSB3
YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0MiBpcyByZHgKKyAgICAgICAg
IyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCisgICAgICAg
IGNxb3EKKyAgICAgICAgaWRpdnEgdDEKKyAgICBlbHNpZiBBUk02NCBvciBBUk02NEUKKyAgICAg
ICAgZGl2cXMgdDEsIHQwLCB0MgorICAgICAgICBtdWxxIHQxLCB0MgorICAgICAgICBzdWJxIHQw
LCB0MiwgdDIKKyAgICBlbHNpZiBSSVNDVjY0CisgICAgICAgIHJlbXFzIHQxLCB0MAorICAgIGVs
c2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKKworLnJldHVybjoKKyAgICByZXR1cm5xKGN0eCwg
dDIpICMgcmR4IGhhcyB0aGUgcmVtYWluZGVyCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAg
IHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTY0X3JlbV91
LCBXYXNtSTY0UmVtVSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisg
ICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRxeiB0MSwgLnRocm93RGl2aXNpb25C
eVplcm8KKworICAgIGlmIFg4Nl82NAorICAgICAgICB4b3JxIHQyLCB0MgorICAgICAgICB1ZGl2
cSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQorICAgICAgICBkaXZxIHQxLCB0MCwgdDIK
KyAgICAgICAgbXVscSB0MSwgdDIKKyAgICAgICAgc3VicSB0MCwgdDIsIHQyCisgICAgZWxzaWYg
UklTQ1Y2NAorICAgICAgICByZW1xIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAg
ICBlbmQKKyAgICByZXR1cm5xKGN0eCwgdDIpCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAg
IHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTY0X2FuZCwg
V2FzbUk2NEFuZCwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBt
bG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgYW5kcSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwg
dDEpCitlbmQpCisKK3dhc21PcChpNjRfb3IsIFdhc21JNjRPciwgbWFjcm8oY3R4KQorICAgIG1s
b2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgb3Jx
IHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF94b3IsIFdh
c21JNjRYb3IsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxv
YWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIHhvcnEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQx
KQorZW5kKQorCit3YXNtT3AoaTY0X3NobCwgV2FzbUk2NFNobCwgbWFjcm8oY3R4KQorICAgIG1s
b2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisgICAgbHNo
aWZ0cSB0MSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfc2hy
X3UsIFdhc21JNjRTaHJVLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQor
ICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKyAgICB1cnNoaWZ0cSB0MSwgdDAKKyAgICByZXR1
cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfc2hyX3MsIFdhc21JNjRTaHJTLCBtYWNy
byhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhz
LCB0MSkKKyAgICByc2hpZnRxIHQxLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKwor
d2FzbU9wKGk2NF9yb3RyLCBXYXNtSTY0Um90ciwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgs
IG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisgICAgcnJvdGF0ZXEgdDEs
IHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3JvdGwsIFdhc21J
NjRSb3RsLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2Fk
aShjdHgsIG1fcmhzLCB0MSkKKyAgICBscm90YXRlcSB0MSwgdDAKKyAgICByZXR1cm5xKGN0eCwg
dDApCitlbmQpCisKK3dhc21PcChpNjRfZXEsIFdhc21JNjRFcSwgbWFjcm8oY3R4KQorICAgIG1s
b2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3Fl
cSB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkK
Kword2FzbU9wKGk2NF9uZSwgV2FzbUk2NE5lLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwg
bV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcW5lcSB0MCwgdDEs
IHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9w
KGk2NF9sdF9zLCBXYXNtSTY0THRTLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMs
IHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWx0IHQwLCB0MSwgdDIKKyAg
ICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2xl
X3MsIFdhc21JNjRMZVMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisg
ICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxbHRlcSB0MCwgdDEsIHQyCisgICAgYW5k
aSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9sdF91LCBX
YXNtSTY0THRVLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1s
b2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWIgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIK
KyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfbGVfdSwgV2FzbUk2NExl
VSwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4
LCBtX3JocywgdDEpCisgICAgY3FiZXEgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICBy
ZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfZ3RfcywgV2FzbUk2NEd0UywgbWFj
cm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3Jo
cywgdDEpCisgICAgY3FndCB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmko
Y3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9nZV9zLCBXYXNtSTY0R2VTLCBtYWNybyhjdHgp
CisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkK
KyAgICBjcWd0ZXEgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwg
dDIpCitlbmQpCisKK3dhc21PcChpNjRfZ3RfdSwgV2FzbUk2NEd0VSwgbWFjcm8oY3R4KQorICAg
IG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAg
Y3FhIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5k
KQorCit3YXNtT3AoaTY0X2dlX3UsIFdhc21JNjRHZVUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEo
Y3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxYWVxIHQw
LCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCisj
IGk2NCB1bmFyeSBvcHMKKword2FzbU9wKGk2NF9jdHosIFdhc21JNjRDdHosIG1hY3JvIChjdHgp
CisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICB0emNudHEgdDAsIHQwCisgICAg
cmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X2NseiwgV2FzbUk2NENseiwgbWFj
cm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgbHpjbnRxIHQwLCB0
MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9wb3BjbnQsIFdhc21J
NjRQb3BjbnQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCBhMSkKKyAg
ICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCisgICAgbW92ZSBQQywgYTAKKyAgICBjQ2FsbDIoX3Ns
b3dfcGF0aF93YXNtX3BvcGNvdW50bGwpCisgICAgcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCisg
ICAgcmV0dXJucShjdHgsIHIxKQorZW5kKQorCit3YXNtT3AoaTY0X2VxeiwgV2FzbUk2NEVxeiwg
bWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgY3FlcSB0MCwg
MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCitlbmQpCisKKyMgZjY0IGJpbmFyeSBvcHMKKwor
d2FzbU9wKGY2NF9jb3B5c2lnbiwgV2FzbUY2NENvcHlzaWduLCBtYWNybyhjdHgpCisgICAgbWxv
YWRkKGN0eCwgbV9saHMsIGZ0MCkKKyAgICBtbG9hZGQoY3R4LCBtX3JocywgZnQxKQorCisgICAg
ZmQycSBmdDEsIHQxCisgICAgbW92ZSAweDgwMDAwMDAwMDAwMDAwMDAsIHQyCisgICAgYW5kcSB0
MiwgdDEKKworICAgIGZkMnEgZnQwLCB0MAorICAgIG1vdmUgMHg3ZmZmZmZmZmZmZmZmZmZmLCB0
MgorICAgIGFuZHEgdDIsIHQwCisKKyAgICBvcnEgdDEsIHQwCisgICAgZnEyZCB0MCwgZnQwCisg
ICAgcmV0dXJuZChjdHgsIGZ0MCkKK2VuZCkKKworIyBUeXBlIGNvbnZlcnNpb24gb3BzCisKK3dh
c21PcChpNjRfZXh0ZW5kX3NfaTMyLCBXYXNtSTY0RXh0ZW5kU0kzMiwgbWFjcm8oY3R4KQorICAg
IG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgc3hpMnEgdDAsIHQxCisgICAgcmV0dXJu
cShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X2V4dGVuZF91X2kzMiwgV2FzbUk2NEV4dGVu
ZFVJMzIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHp4
aTJxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGY2NF9yZWlu
dGVycHJldF9pNjQsIFdhc21GNjRSZWludGVycHJldEk2NCwgbWFjcm8oY3R4KQorICAgIG1sb2Fk
cShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgZnEyZCB0MCwgZnQwCisgICAgcmV0dXJuZChjdHgs
IGZ0MCkKK2VuZCkKKword2FzbU9wKGk2NF9yZWludGVycHJldF9mNjQsIFdhc21JNjRSZWludGVy
cHJldEY2NCwgbWFjcm8oY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorICAg
IGZkMnEgZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGkzMl90
cnVuY19zX2Y2NCwgV2FzbUkzMlRydW5jU0Y2NCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4
LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhjMWUwMDAwMDAwMjAwMDAwLCB0MCAjIElO
VDMyX01JTiAtIDEuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAu
b3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZSAweDQxZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlO
VDMyX01JTgorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZC
b3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVkMmlzIGZ0MCwgdDAKKyAgICByZXR1cm5pKGN0eCwg
dDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRz
VHJ1bmMpCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfdV9mNjQsIFdhc21JMzJUcnVuY1VGNjQs
IG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3Zl
IDB4YmZmMDAwMDAwMDAwMDAwMCwgdDAgIyAtMS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRs
dGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlIDB4NDFmMDAwMDAw
MDAwMDAwMCwgdDAgIyBJTlQzMl9NSU4gKiAtMi4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRn
dGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0ZWQyaSBmdDAs
IHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJv
d0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5jX3Nf
ZjMyLCBXYXNtSTY0VHJ1bmNTRjMyLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZihjdHgsIG1fb3Bl
cmFuZCwgZnQwKQorCisgICAgbW92ZSAweGRmMDAwMDAwLCB0MCAjIElOVDY0X01JTgorICAgIGZp
MmYgdDAsIGZ0MQorICAgIGJmbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAg
IG1vdmUgMHg1ZjAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCisgICAgZmkyZiB0MCwgZnQxCisgICAg
YmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0ZWYycXMg
ZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmM6CisgICAg
dGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKK2VuZCkKKword2FzbU9wKGk2NF90cnVu
Y191X2YzMiwgV2FzbUk2NFRydW5jVUYzMiwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGYoY3R4LCBt
X29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZjgwMDAwMCwgdDAgIyAtMS4wCisgICAgZmky
ZiB0MCwgZnQxCisgICAgYmZsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAg
ICBtb3ZlIDB4NWY4MDAwMDAsIHQwICMgSU5UNjRfTUlOICogLTIuMAorICAgIGZpMmYgdDAsIGZ0
MQorICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1bmNh
dGVmMnEgZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmM6
CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKK2VuZCkKKword2FzbU9wKGk2
NF90cnVuY19zX2Y2NCwgV2FzbUk2NFRydW5jU0Y2NCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQo
Y3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhjM2UwMDAwMDAwMDAwMDAwLCB0MCAj
IElOVDY0X01JTgorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkbHR1biBmdDAsIGZ0MSwgLm91dE9m
Qm91bmRzVHJ1bmMKKworICAgIG1vdmUgMHg0M2UwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQ2NF9N
SU4KKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmMKKworICAgIHRydW5jYXRlZDJxcyBmdDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQor
Cisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5j
KQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5jX3VfZjY0LCBXYXNtSTY0VHJ1bmNVRjY0LCBtYWNy
byAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGJm
ZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkbHRlcXVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZSAweDQzZjAwMDAwMDAwMDAw
MDAsIHQwICMgSU5UNjRfTUlOICogLTIuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVkMnEgZnQwLCB0MAor
ICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNl
cHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKK2VuZCkKKword2FzbU9wKGkzMl90cnVuY19zYXRfZjY0
X3MsIFdhc21JMzJUcnVuY1NhdEY2NFMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9v
cGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDAgIyBJTlQzMl9N
SU4gLSAxLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9m
Qm91bmRzVHJ1bmNTYXRNaW5Pck5hTgorCisgICAgbW92ZSAweDQxZTAwMDAwMDAwMDAwMDAsIHQw
ICMgLUlOVDMyX01JTgorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisgICAgdHJ1bmNhdGVkMmlzIGZ0MCwgdDAKKyAgICBy
ZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU46CisgICAgYmRl
cSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKyAgICBtb3ZlIDAsIHQwCisgICAg
cmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChj
b25zdGV4cHIgSU5UMzJfTUFYKSwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJv
dW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQzMl9NSU4pLCB0MAorICAg
IHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGkzMl90cnVuY19zYXRfZjY0X3UsIFdh
c21JMzJUcnVuY1NhdEY2NFUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5k
LCBmdDApCisKKyAgICBtb3ZlIDB4YmZmMDAwMDAwMDAwMDAwMCwgdDAgIyAtMS4wCisgICAgZnEy
ZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWlu
CisKKyAgICBtb3ZlIDB4NDFmMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQzMl9NSU4gKiAtMi4wCisg
ICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5j
U2F0TWF4CisKKyAgICB0cnVuY2F0ZWQyaSBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQor
Cisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJuaShj
dHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIg
VUlOVDMyX01BWCksIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0
X3RydW5jX3NhdF9mMzJfcywgV2FzbUk2NFRydW5jU2F0RjMyUywgbWFjcm8gKGN0eCkKKyAgICBt
bG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhkZjAwMDAwMCwgdDAgIyBJ
TlQ2NF9NSU4KKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmx0dW4gZnQwLCBmdDEsIC5vdXRPZkJv
dW5kc1RydW5jU2F0TWluT3JOYU4KKworICAgIG1vdmUgMHg1ZjAwMDAwMCwgdDAgIyAtSU5UNjRf
TUlOCisgICAgZmkyZiB0MCwgZnQxCisgICAgYmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5k
c1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWYycXMgZnQwLCB0MAorICAgIHJldHVybnEoY3R4
LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKKyAgICBiZmVxIGZ0MCwgZnQw
LCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5xKGN0
eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBJ
TlQ2NF9NQVgpLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNT
YXRNaW46CisgICAgbW92ZSAoY29uc3RleHByIElOVDY0X01JTiksIHQwCisgICAgcmV0dXJucShj
dHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5jX3NhdF9mMzJfdSwgV2FzbUk2NFRydW5j
U2F0RjMyVSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKwor
ICAgIG1vdmUgMHhiZjgwMDAwMCwgdDAgIyAtMS4wCisgICAgZmkyZiB0MCwgZnQxCisgICAgYmZs
dGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCisKKyAgICBtb3ZlIDB4NWY4
MDAwMDAsIHQwICMgSU5UNjRfTUlOICogLTIuMAorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmZ3Rl
cXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisgICAgdHJ1bmNhdGVmMnEg
ZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46
CisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1
bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIFVJTlQ2NF9NQVgpLCB0MAorICAgIHJldHVy
bnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF90cnVuY19zYXRfZjY0X3MsIFdhc21JNjRU
cnVuY1NhdEY2NFMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDAp
CisKKyAgICBtb3ZlIDB4YzNlMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4KKyAgICBmcTJk
IHQwLCBmdDEKKyAgICBiZGx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JO
YU4KKworICAgIG1vdmUgMHg0M2UwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KKyAgICBm
cTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRN
YXgKKworICAgIHRydW5jYXRlZDJxcyBmdDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgorICAgIGJkZXEgZnQwLCBmdDAsIC5vdXRPZkJv
dW5kc1RydW5jU2F0TWluCisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKwor
Lm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIElOVDY0X01BWCks
IHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAg
ICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUlOKSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitl
bmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc2F0X2Y2NF91LCBXYXNtSTY0VHJ1bmNTYXRGNjRVLCBt
YWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAw
eGJmZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkbHRl
cXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorCisgICAgbW92ZSAweDQzZjAw
MDAwMDAwMDAwMDAsIHQwICMgSU5UNjRfTUlOICogLTIuMAorICAgIGZxMmQgdDAsIGZ0MQorICAg
IGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisgICAgdHJ1bmNh
dGVkMnEgZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNT
YXRNaW46CisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91
bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIFVJTlQ2NF9NQVgpLCB0MAorICAg
IHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKworIyBFeHRlbmQgb3BzCisKK3dhc21PcChpNjRfZXh0
ZW5kOF9zLCBXYXNtSTY0RXh0ZW5kOFMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29w
ZXJhbmQsIHQwKQorICAgIHN4YjJxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkK
Kword2FzbU9wKGk2NF9leHRlbmQxNl9zLCBXYXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhjdHgpCisg
ICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBzeGgycSB0MCwgdDEKKyAgICByZXR1
cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfZXh0ZW5kMzJfcywgV2FzbUk2NEV4dGVu
ZDE2UywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgc3hp
MnEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCisjIEF0b21pY3MKKworbWFj
cm8gd2FzbUF0b21pY0JpbmFyeVJNV09wcyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29k
ZSwgZm5iLCBmbmgsIGZuaSwgZm5xKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzglbG93ZXJD
YXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13OCV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8o
Y3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShj
dHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCisgICAg
ICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KGN0eCwgdDMsIHQxLCAx
KQorICAgICAgICBmbmIodDAsIFt0M10sIHQyLCB0NSwgdDEpCisgICAgICAgIGFuZHEgMHhmZiwg
dDAgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0CisgICAgICAgIGFzc2VydChtYWNybyhvaykgYnFi
ZXEgdDAsIDB4ZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBlbmQp
CisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MTYlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0
QXRvbWljUm13MTYldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRp
KGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisg
ICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQwKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVw
YXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgMikK
KyAgICAgICAgZm5oKHQwLCBbdDNdLCB0MiwgdDUsIHQxKQorICAgICAgICBhbmRxIDB4ZmZmZiwg
dDAgIyBGSVhNRTogWmVyb0V4dGVuZDE2VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJx
YmVxIHQwLCAweGZmZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBl
bmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MzIlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNt
STY0QXRvbWljUm13MzIldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxv
YWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEp
CisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQwKQorICAgICAgICBlbWl0Q2hlY2tBbmRQ
cmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwg
NCkKKyAgICAgICAgZm5pKHQwLCBbdDNdLCB0MiwgdDUsIHQxKQorICAgICAgICBhc3NlcnQobWFj
cm8ob2spIGJxYmVxIHQwLCAweGZmZmZmZmZmLCAub2sgZW5kKQorICAgICAgICByZXR1cm5xKGN0
eCwgdDApCisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdyVsb3dlckNhc2VPcGNv
ZGUlLCBXYXNtSTY0QXRvbWljUm13JXVwcGVyQ2FzZU9wY29kZSUsIG1hY3JvKGN0eCkKKyAgICAg
ICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNl
dCwgdDEpCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQwKQorICAgICAgICBlbWl0Q2hl
Y2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQz
LCB0MSwgOCkKKyAgICAgICAgZm5xKHQwLCBbdDNdLCB0MiwgdDUsIHQxKQorICAgICAgICByZXR1
cm5xKGN0eCwgdDApCisgICAgZW5kKQorZW5kCisKK21hY3JvIHdhc21BdG9taWNCaW5hcnlSTVdP
cHNXaXRoV2Vha0NBUyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5pLCBmbnEp
CisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9w
Y29kZSwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAg
ICAgICAgICAgIGlmIFg4Nl82NAorICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCisg
ICAgICAgICAgICAgICAgbG9hZGIgbWVtLCB0MEdQUgorICAgICAgICAgICAgLmxvb3A6CisgICAg
ICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKKyAgICAgICAgICAgICAgICBmbmkodDVHUFIs
IHQyR1BSKQorICAgICAgICAgICAgICAgIGJhdG9taWN3ZWFrY2FzYiB0MEdQUiwgdDJHUFIsIG1l
bSwgLmxvb3AKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAg
ICAgICAgIGxvYWRsaW5rYWNxYiBtZW0sIHQxR1BSCisgICAgICAgICAgICAgICAgZm5pKHQwR1BS
LCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgc3RvcmVjb25kcmVsYiB0NUdQUiwgdDJH
UFIsIG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAorICAgICAgICAg
ICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZW5kLAor
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAg
ICAgaWYgWDg2XzY0CisgICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKKyAgICAgICAg
ICAgICAgICBsb2FkaCBtZW0sIHQwR1BSCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAg
ICAgICBtb3ZlIHQwR1BSLCB0MkdQUgorICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIp
CisgICAgICAgICAgICAgICAgYmF0b21pY3dlYWtjYXNoIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9v
cAorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAg
bG9hZGxpbmthY3FoIG1lbSwgdDFHUFIKKyAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BS
LCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmRyZWxoIHQ1R1BSLCB0MkdQUiwgbWVt
CisgICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAg
bW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbmQsCisgICAgICAg
IG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBpZiBY
ODZfNjQKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgorICAgICAgICAgICAgICAg
IGxvYWRpIG1lbSwgdDBHUFIKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIG1v
dmUgdDBHUFIsIHQyR1BSCisgICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKKyAgICAg
ICAgICAgICAgICBiYXRvbWljd2Vha2Nhc2kgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2FkbGlu
a2FjcWkgbWVtLCB0MUdQUgorICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BS
KQorICAgICAgICAgICAgICAgIHN0b3JlY29uZHJlbGkgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAg
ICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBtb3ZlIHQx
R1BSLCB0MEdQUgorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIGlmIFg4Nl82NAor
ICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCisgICAgICAgICAgICAgICAgbG9hZHEg
bWVtLCB0MEdQUgorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbW92ZSB0MEdQ
UiwgdDJHUFIKKyAgICAgICAgICAgICAgICBmbnEodDVHUFIsIHQyR1BSKQorICAgICAgICAgICAg
ICAgIGJhdG9taWN3ZWFrY2FzcSB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxcSBt
ZW0sIHQxR1BSCisgICAgICAgICAgICAgICAgZm5xKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAg
ICAgICAgICAgICAgc3RvcmVjb25kcmVscSB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAg
ICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAorICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQw
R1BSCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZW5kKQorZW5kCisKK2lmIFg4Nl82NAorICAg
IHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX2FkZCwgQWRkLAorICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkYiB0MEdQUiwgbWVtIGVuZCwK
KyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNo
Z2FkZGggdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0gZW5kLAorICAgICAgICBtYWNy
byh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkcSB0MEdQUiwg
bWVtIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9zdWIsIFN1YiwKKyAgICAgICAg
bWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1YmIgdDBH
UFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFH
UFIpIGF0b21pY3hjaGdzdWJoIHQwR1BSLCBtZW0gZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3ViaSB0MEdQUiwgbWVtIGVuZCwK
KyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNo
Z3N1YnEgdDBHUFIsIG1lbSBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfeGNoZywg
WGNoZywKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRv
bWljeGNoZ2IgdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BS
LCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdoIHQwR1BSLCBtZW0gZW5kLAorICAgICAgICBtYWNy
byh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnaSB0MEdQUiwgbWVt
IGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRv
bWljeGNoZ3EgdDBHUFIsIG1lbSBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhX
ZWFrQ0FTKF9hbmQsIEFuZCwKKyAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQorICAgICAgICAg
ICAgYW5kaSB0NUdQUiwgdDJHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0NUdQUiwg
dDJHUFIpCisgICAgICAgICAgICBhbmRxIHQ1R1BSLCB0MkdQUgorICAgICAgICBlbmQpCisgICAg
d2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9vciwgT3IsCisgICAgICAgIG1hY3Jv
KHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgIG9yaSB0NUdQUiwgdDJHUFIKKyAgICAgICAgZW5k
LAorICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICBvcnEgdDVHUFIsIHQy
R1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMo
X3hvciwgWG9yLAorICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICB4b3Jp
IHQ1R1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikK
KyAgICAgICAgICAgIHhvcnEgdDVHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKK2Vsc2lmIEFSTTY0
RQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX2FkZCwgQWRkLAorICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkYiB0MEdQUiwgbWVt
LCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFH
UFIpIGF0b21pY3hjaGdhZGRoIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1l
bSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKSBhdG9taWN4Y2hnYWRkcSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQpCisgICAgd2FzbUF0b21p
Y0JpbmFyeVJNV09wcyhfc3ViLCBTdWIsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BS
LCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBuZWdxIHQwR1BSCisgICAgICAgICAgICBhdG9t
aWN4Y2hnYWRkYiB0MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBuZWdxIHQwR1BS
CisgICAgICAgICAgICBhdG9taWN4Y2hnYWRkaCB0MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBl
bmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAg
ICAgICAgICBuZWdxIHQwR1BSCisgICAgICAgICAgICBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVt
LCB0MEdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBuZWdxIHQwR1BSCisgICAgICAgICAgICBhdG9taWN4
Y2hnYWRkcSB0MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0Jp
bmFyeVJNV09wcyhfYW5kLCBBbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBub3RxIHQwR1BSCisgICAgICAgICAgICBhdG9taWN4
Y2hnY2xlYXJiIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5vdHEgdDBHUFIK
KyAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcmggdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAg
ZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAg
ICAgICAgICAgbm90cSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFyaSB0MEdQUiwg
bWVtLCB0MEdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BS
LCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBub3RxIHQwR1BSCisgICAgICAgICAgICBhdG9t
aWN4Y2hnY2xlYXJxIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRv
bWljQmluYXJ5Uk1XT3BzKF9vciwgT3IsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BS
LCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcmIgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAg
ICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnb3Jo
IHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29yaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcnEg
dDBHUFIsIG1lbSwgdDBHUFIgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hvciwg
WG9yLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9t
aWN4Y2hneG9yYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JoIHQwR1BSLCBtZW0sIHQwR1BS
IGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRv
bWljeGNoZ3hvcmkgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9ycSB0MEdQUiwgbWVtLCB0MEdQ
UiBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfeGNoZywgWGNoZywKKyAgICAgICAg
bWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2IgdDBHUFIs
IG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIs
IHQxR1BSKSBhdG9taWN4Y2hnaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdpIHQwR1BSLCBtZW0s
IHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikgYXRvbWljeGNoZ3EgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQorZWxzaWYgQVJNNjQgb3IgUklT
Q1Y2NAorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYWRkLCBBZGQsCisg
ICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBhZGRpIHQwR1BS
LCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIs
IHQyR1BSKQorICAgICAgICAgICAgYWRkcSB0MEdQUiwgdDFHUFIsIHQyR1BSCisgICAgICAgIGVu
ZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3N1YiwgU3ViLAorICAg
ICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgc3ViaSB0MUdQUiwg
dDBHUFIsIHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0
MkdQUikKKyAgICAgICAgICAgIHN1YnEgdDFHUFIsIHQwR1BSLCB0MkdQUgorICAgICAgICBlbmQp
CisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94Y2hnLCBYY2hnLAorICAg
ICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgbW92ZSB0MEdQUiwg
dDJHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQor
ICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9t
aWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYW5kLCBBbmQsCisgICAgICAgIG1hY3JvKHQwR1BS
LCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBhbmRpIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAg
ICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAg
ICAgYW5kcSB0MEdQUiwgdDFHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWlj
QmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX29yLCBPciwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQx
R1BSLCB0MkdQUikKKyAgICAgICAgICAgIG9yaSB0MEdQUiwgdDFHUFIsIHQyR1BSCisgICAgICAg
IGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIG9y
cSB0MEdQUiwgdDFHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5
Uk1XT3BzV2l0aFdlYWtDQVMoX3hvciwgWG9yLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIs
IHQyR1BSKQorICAgICAgICAgICAgeG9yaSB0MEdQUiwgdDFHUFIsIHQyR1BSCisgICAgICAgIGVu
ZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIHhvcnEg
dDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQpCitlbmQKKworbWFjcm8gd2FzbUF0b21p
Y0NvbXBhcmVFeGNoYW5nZU9wcyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5i
LCBmbmgsIGZuaSwgZm5xKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzglbG93ZXJDYXNlT3Bj
b2RlJV91LCBXYXNtSTY0QXRvbWljUm13OCV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQor
ICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1f
b2Zmc2V0LCB0MSkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCisgICAgICAg
IG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9p
bnRlckFkZGluZ09mZnNldChjdHgsIHQzLCB0MSwgMSkKKyAgICAgICAgZm5iKHQwLCB0MiwgW3Qz
XSwgdDUsIHQxKQorICAgICAgICBhbmRxIDB4ZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQ4VG82
NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmLCAub2sgZW5kKQorICAg
ICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3Jt
dzE2JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzE2JXVwcGVyQ2FzZU9wY29k
ZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAg
ICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVj
dGVkLCB0MCkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCisgICAgICAgIGVtaXRD
aGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwg
dDMsIHQxLCAyKQorICAgICAgICBmbmgodDAsIHQyLCBbdDNdLCB0NSwgdDEpCisgICAgICAgIGFu
ZHEgMHhmZmZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kMTZUbzY0CisgICAgICAgIGFzc2VydCht
YWNybyhvaykgYnFiZXEgdDAsIDB4ZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgs
IHQwKQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXczMiVsb3dlckNhc2VPcGNv
ZGUlX3UsIFdhc21JNjRBdG9taWNSbXczMiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQor
ICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1f
b2Zmc2V0LCB0MSkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCisgICAgICAg
IG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9p
bnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgNCkKKyAgICAg
ICAgZm5pKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJx
YmVxIHQwLCAweGZmZmZmZmZmLCAub2sgZW5kKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisg
ICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdyVsb3dlckNhc2VPcGNvZGUlLCBXYXNt
STY0QXRvbWljUm13JXVwcGVyQ2FzZU9wY29kZSUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRp
KGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisg
ICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQorICAgICAgICBtbG9hZHEoY3R4LCBt
X3ZhbHVlLCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZz
ZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDgpCisgICAgICAgIGZucSh0MCwgdDIs
IFt0M10sIHQ1LCB0MSkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKK2VuZAor
CitpZiBYODZfNjQgb3IgQVJNNjRFIG9yIEFSTTY0IG9yIFJJU0NWNjQKKyMgdDBHUFIgPT4gZXhw
ZWN0ZWQsIHQyR1BSID0+IHZhbHVlLCBtZW0gPT4gbWVtb3J5IHJlZmVyZW5jZQord2FzbUF0b21p
Y0NvbXBhcmVFeGNoYW5nZU9wcyhfY21weGNoZywgQ21weGNoZywKKyAgICBtYWNybyh0MEdQUiwg
dDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BSKQorICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRFCisg
ICAgICAgICAgICBicWEgdDBHUFIgLCAweGZmLCAuZmFpbAorICAgICAgICAgICAgYXRvbWljd2Vh
a2Nhc2IgdDBHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGptcCAuZG9uZQorICAgICAgICAu
ZmFpbDoKKyAgICAgICAgICAgIGF0b21pY2xvYWRiIG1lbSwgdDBHUFIKKyAgICAgICAgLmRvbmU6
CisgICAgICAgIGVsc2UKKyAgICAgICAgLmxvb3A6CisgICAgICAgICAgICBsb2FkbGlua2FjcWIg
bWVtLCB0MUdQUgorICAgICAgICAgICAgYnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAorICAgICAg
ICAgICAgc3RvcmVjb25kcmVsYiB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgYmllcSB0
NUdQUiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZmFpbDoKKyAg
ICAgICAgICAgIHN0b3JlY29uZHJlbGIgdDVHUFIsIHQxR1BSLCBtZW0KKyAgICAgICAgICAgIGJp
ZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6
CisgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgorICAgICAgICBlbmQKKyAgICBlbmQsCisg
ICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgaWYgWDg2
XzY0IG9yIEFSTTY0RQorICAgICAgICAgICAgYnFhIHQwR1BSLCAweGZmZmYsIC5mYWlsCisgICAg
ICAgICAgICBhdG9taWN3ZWFrY2FzaCB0MEdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgam1w
IC5kb25lCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgYXRvbWljbG9hZGggbWVtLCB0MEdQ
UgorICAgICAgICAuZG9uZToKKyAgICAgICAgZWxzZQorICAgICAgICAubG9vcDoKKyAgICAgICAg
ICAgIGxvYWRsaW5rYWNxaCBtZW0sIHQxR1BSCisgICAgICAgICAgICBicW5lcSB0MEdQUiwgdDFH
UFIsIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmRyZWxoIHQ1R1BSLCB0MkdQUiwgbWVtCisg
ICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisg
ICAgICAgIC5mYWlsOgorICAgICAgICAgICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDFHUFIsIG1l
bQorICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9v
cAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCisgICAgICAg
IGVuZAorICAgIGVuZCwKKyAgICBtYWNybyh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BS
KQorICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRFCisgICAgICAgICAgICBicWEgdDBHUFIsIDB4
ZmZmZmZmZmYsIC5mYWlsCisgICAgICAgICAgICBhdG9taWN3ZWFrY2FzaSB0MEdQUiwgdDJHUFIs
IG1lbQorICAgICAgICAgICAgam1wIC5kb25lCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAg
YXRvbWljbG9hZGkgbWVtLCB0MEdQUgorICAgICAgICAuZG9uZToKKyAgICAgICAgZWxzZQorICAg
ICAgICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5rYWNxaSBtZW0sIHQxR1BSCisgICAgICAg
ICAgICBicW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmRyZWxp
IHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAg
ICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgc3RvcmVjb25k
cmVsaSB0NUdQUiwgdDFHUFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUK
KyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIG1vdmUg
dDFHUFIsIHQwR1BSCisgICAgICAgIGVuZAorICAgIGVuZCwKKyAgICBtYWNybyh0MEdQUiwgdDJH
UFIsIG1lbSwgdDVHUFIsIHQxR1BSKQorICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRFCisgICAg
ICAgICAgICBhdG9taWN3ZWFrY2FzcSB0MEdQUiwgdDJHUFIsIG1lbQorICAgICAgICBlbHNlCisg
ICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmthY3FxIG1lbSwgdDFHUFIKKyAgICAg
ICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZHJl
bHEgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisg
ICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNv
bmRyZWxxIHQ1R1BSLCB0MUdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9u
ZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAgICAgICAgbW92
ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgZW5kCisgICAgZW5kKQorZW5kCisKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybS5yYiBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL2FybS5yYgppbmRleCA5NWM4NWMxMTM0MWIuLjdkZDUzNTA4OThi
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybS5yYgpAQCAtNjMsNiArNjMs
MTEgQEAgY2xhc3MgTm9kZQogICAgICAgICByYWlzZSAiQm9ndXMgcmVnaXN0ZXIgbmFtZSAje2Rv
dWJsZU9wZXJhbmR9IiB1bmxlc3MgZG91YmxlT3BlcmFuZCA9fiAvXmQvCiAgICAgICAgICJzIiAr
ICgkfi5wb3N0X21hdGNoLnRvX2kgKiAyKS50b19zCiAgICAgZW5kCisgICAgZGVmIGFybVNpbmds
ZUhpCisgICAgICAgIGRvdWJsZU9wZXJhbmQgPSBhcm1PcGVyYW5kCisgICAgICAgIHJhaXNlICJC
b2d1cyByZWdpc3RlciBuYW1lICN7ZG91YmxlT3BlcmFuZH0iIHVubGVzcyBkb3VibGVPcGVyYW5k
ID1+IC9eZC8KKyAgICAgICAgInMiICsgKCR+LnBvc3RfbWF0Y2gudG9faSAqIDIgKyAxKS50b19z
CisgICAgZW5kCiBlbmQKIAogY2xhc3MgU3BlY2lhbFJlZ2lzdGVyCkBAIC05OCwyMSArMTAzLDIx
IEBAIGVuZAogY2xhc3MgUmVnaXN0ZXJJRAogICAgIGRlZiBhcm1PcGVyYW5kCiAgICAgICAgIGNh
c2UgbmFtZQotICAgICAgICB3aGVuICJ0MCIsICJhMCIsICJyMCIKKyAgICAgICAgd2hlbiAidDAi
LCAiYTAiLCAid2EwIiwgInIwIgogICAgICAgICAgICAgInIwIgotICAgICAgICB3aGVuICJ0MSIs
ICJhMSIsICJyMSIKKyAgICAgICAgd2hlbiAidDEiLCAiYTEiLCAid2ExIiwgInIxIgogICAgICAg
ICAgICAgInIxIgotICAgICAgICB3aGVuICJ0MiIsICJhMiIKKyAgICAgICAgd2hlbiAidDIiLCAi
YTIiLCAid2EyIgogICAgICAgICAgICAgInIyIgotICAgICAgICB3aGVuICJ0MyIsICJhMyIKKyAg
ICAgICAgd2hlbiAidDMiLCAiYTMiLCAid2EzIgogICAgICAgICAgICAgInIzIgogICAgICAgICB3
aGVuICJ0NCIgIyBMTEludCBQQwogICAgICAgICAgICAgInI0IgotICAgICAgICB3aGVuICJ0NSIK
KyAgICAgICAgd2hlbiAidDUiLCAid3MwIiAjIHdzMCBtdXN0IGJlIGEgbm9uLWFyZ3VtZW50L25v
bi1yZXR1cm4gR1BSCiAgICAgICAgICAgICAicjUiCiAgICAgICAgIHdoZW4gImNmciIKICAgICAg
ICAgICAgICJyNyIKLSAgICAgICAgd2hlbiAidDYiCisgICAgICAgIHdoZW4gInQ2IiwgIndzMSIg
IyB3czEgbXVzdCBiZSBhIG5vbi1hcmd1bWVudC9ub24tcmV0dXJuIEdQUgogICAgICAgICAgICAg
InI4IgogICAgICAgICB3aGVuICJ0NyIKICAgICAgICAgICAgICJyOSIgIyByOSBpcyBhbHNvIGEg
c2NyYXRjaCByZWdpc3Rlciwgc28gdXNlIGNhcmVmdWxseSEKQEAgLTEzNSwxOCArMTQwLDIyIEBA
IGVuZAogY2xhc3MgRlBSZWdpc3RlcklECiAgICAgZGVmIGFybU9wZXJhbmQKICAgICAgICAgY2Fz
ZSBuYW1lCi0gICAgICAgIHdoZW4gImZ0MCIsICJmciIsICJmYTAiCisgICAgICAgIHdoZW4gImZ0
MCIsICJmciIsICJmYTAiLCAid2ZhMCIKICAgICAgICAgICAgICJkMCIKLSAgICAgICAgd2hlbiAi
ZnQxIiwgImZhMSIKKyAgICAgICAgd2hlbiAiZnQxIiwgImZhMSIsICJ3ZmExIgogICAgICAgICAg
ICAgImQxIgotICAgICAgICB3aGVuICJmdDIiCisgICAgICAgIHdoZW4gImZ0MiIsICJ3ZmEyIgog
ICAgICAgICAgICAgImQyIgotICAgICAgICB3aGVuICJmdDMiCisgICAgICAgIHdoZW4gImZ0MyIs
ICJ3ZmEzIgogICAgICAgICAgICAgImQzIgotICAgICAgICB3aGVuICJmdDQiCisgICAgICAgIHdo
ZW4gImZ0NCIsICJ3ZmE0IgogICAgICAgICAgICAgImQ0IgotICAgICAgICB3aGVuICJmdDUiCisg
ICAgICAgIHdoZW4gImZ0NSIsICJ3ZmE1IgogICAgICAgICAgICAgImQ1IgorICAgICAgICB3aGVu
ICJmdDYiLCAid2ZhNiIKKyAgICAgICAgICAgICJkNiIKKyAgICAgICAgd2hlbiAiZnQ3IiwgIndm
YTciCisgICAgICAgICAgICAiZDciCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJhaXNlICJC
YWQgcmVnaXN0ZXIgI3tuYW1lfSBmb3IgQVJNIGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCiAgICAg
ICAgIGVuZApAQCAtMTYzLDcgKzE3MiwxMSBAQCBlbmQKIGNsYXNzIEFkZHJlc3MKICAgICBkZWYg
YXJtT3BlcmFuZAogICAgICAgICByYWlzZSAiQmFkIG9mZnNldCBhdCAje2NvZGVPcmlnaW5TdHJp
bmd9IiBpZiBvZmZzZXQudmFsdWUgPCAtMHhmZiBvciBvZmZzZXQudmFsdWUgPiAweGZmZgotICAg
ICAgICAiWyN7YmFzZS5hcm1PcGVyYW5kfSwgXCMje29mZnNldC52YWx1ZX1dIgorICAgICAgICBp
ZiBvZmZzZXQudmFsdWUgPT0gMAorICAgICAgICAgICJbI3tiYXNlLmFybU9wZXJhbmR9XSIKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICJbI3tiYXNlLmFybU9wZXJhbmR9LCBcIyN7b2Zmc2V0LnZh
bHVlfV0iCisgICAgICAgIGVuZAogICAgIGVuZAogZW5kCiAKQEAgLTMwNiwxNiArMzE5LDI1IEBA
IGNsYXNzIFNlcXVlbmNlCiAgICAgICAgIHJlc3VsdCA9IGFybUxvd2VyTGFiZWxSZWZlcmVuY2Vz
KHJlc3VsdCkKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzKHJl
c3VsdCkgewogICAgICAgICAgICAgfCBub2RlLCBhZGRyZXNzIHwKLSAgICAgICAgICAgIGlmIGFk
ZHJlc3MuaXNfYT8gQmFzZUluZGV4Ci0gICAgICAgICAgICAgICAgYWRkcmVzcy5vZmZzZXQudmFs
dWUgPT0gMAotICAgICAgICAgICAgZWxzaWYgYWRkcmVzcy5pc19hPyBBZGRyZXNzCi0gICAgICAg
ICAgICAgICAgKC0weGZmLi4weGZmZikuaW5jbHVkZT8gYWRkcmVzcy5vZmZzZXQudmFsdWUKKyAg
ICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKKyAgICAgICAgICAgIHdoZW4gImxvYWQyaWEiLCAi
c3RvcmUyaWEiCisgICAgICAgICAgICAgICAgaWYgYWRkcmVzcy5pc19hPyBBZGRyZXNzCisgICAg
ICAgICAgICAgICAgICAgIChhZGRyZXNzLm9mZnNldC52YWx1ZSAlIDQgPT0gMCkgJiYgKCgtMTAy
My4uMTAyMykuaW5jbHVkZT8gYWRkcmVzcy5vZmZzZXQudmFsdWUpCisgICAgICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgICAgICBmYWxzZQorICAgICAgICAgICAgICAgIGVuZAogICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGZhbHNlCisgICAgICAgICAgICAgICAgaWYg
YWRkcmVzcy5pc19hPyBCYXNlSW5kZXgKKyAgICAgICAgICAgICAgICAgICAgYWRkcmVzcy5vZmZz
ZXQudmFsdWUgPT0gMCAmJiBub2RlLm9wY29kZQorICAgICAgICAgICAgICAgIGVsc2lmIGFkZHJl
c3MuaXNfYT8gQWRkcmVzcworICAgICAgICAgICAgICAgICAgICAoLTB4ZmYuLjB4ZmZmKS5pbmNs
dWRlPyBhZGRyZXNzLm9mZnNldC52YWx1ZQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgZmFsc2UKKyAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGVuZAog
ICAgICAgICB9CiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc0Rv
dWJsZShyZXN1bHQpCi0gICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEltbWVkaWF0
ZXMocmVzdWx0LCBbInN0b3JlYiIsICJzdG9yZWgiLCAic3RvcmVpIiwgInN0b3JlcCIsICJzdG9y
ZXEiXSkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkSW1tZWRpYXRlcyhyZXN1
bHQsIFsic3RvcmViIiwgInN0b3JlaCIsICJzdG9yZWkiLCAic3RvcmVwIiwgInN0b3JlcSIsICJz
dG9yZTJpYSJdKQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVz
KHJlc3VsdCwgMC4uMHhmZiwgMC4uMHgwZmYpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1p
c3BsYWNlZEFkZHJlc3NlcyhyZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlclJlZ2lz
dGVyUmV1c2UocmVzdWx0KQpAQCAtMzM0LDYgKzM1NiwxMCBAQCBkZWYgYXJtRmxpcHBlZE9wZXJh
bmRzKG9wZXJhbmRzKQogICAgIGFybU9wZXJhbmRzKFtvcGVyYW5kc1stMV1dICsgb3BlcmFuZHNb
MC4uLTJdKQogZW5kCiAKK2RlZiBhcm1GbGlwcGVkT3BlcmFuZHNQYWlyKG9wZXJhbmRzKQorICAg
IGFybU9wZXJhbmRzKFtvcGVyYW5kc1stMl0sIG9wZXJhbmRzWy0xXV0gKyBvcGVyYW5kc1swLi4t
M10pCitlbmQKKwogZGVmIGVtaXRBcm1Db21wYWN0KG9wY29kZTIsIG9wY29kZTMsIG9wZXJhbmRz
KQogICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMwogICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2Rl
M30gI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKQEAgLTM2Myw2ICszODksMTIgQEAg
ZGVmIGVtaXRBcm1Eb3VibGVCcmFuY2goYnJhbmNoT3Bjb2RlLCBvcGVyYW5kcykKICAgICAkYXNt
LnB1dHMgIiN7YnJhbmNoT3Bjb2RlfSAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKIGVuZAogCitk
ZWYgZW1pdEFybVNpbmdsZUJyYW5jaChicmFuY2hPcGNvZGUsIG9wZXJhbmRzKQorICAgICRhc20u
cHV0cyAidmNtcGUuZjMyICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5h
cm1TaW5nbGV9IgorICAgICRhc20ucHV0cyAidm1ycyBhcHNyX256Y3YsIGZwc2NyIgorICAgICRh
c20ucHV0cyAiI3ticmFuY2hPcGNvZGV9ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorZW5kCisK
IGRlZiBlbWl0QXJtVGVzdChvcGVyYW5kcykKICAgICB2YWx1ZSA9IG9wZXJhbmRzWzBdCiAgICAg
Y2FzZSBvcGVyYW5kcy5zaXplCkBAIC0zODMsNyArNDE1LDE1IEBAIGVuZAogCiBkZWYgZW1pdEFy
bURvdWJsZUNvbXBhcmUob3BlcmFuZHMsIGNvZGUpCiAgICAgJGFzbS5wdXRzICJtb3YgI3tvcGVy
YW5kc1syXS5hcm1PcGVyYW5kfSwgXCMwIgotICAgICRhc20ucHV0cyAidmNtcGUuZjY0ICN7YXJt
T3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSIKKyAgICAkYXNtLnB1dHMgInZjbXAuZjY0ICN7YXJt
T3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSIKKyAgICAkYXNtLnB1dHMgInZtcnMgQVBTUl9uemN2
LCBGUFNDUiIKKyAgICAkYXNtLnB1dHMgIml0ICN7Y29kZX0iCisgICAgJGFzbS5wdXRzICJtb3Yj
e2NvZGV9ICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sIFwjMSIKK2VuZAorCitkZWYgZW1pdEFy
bUZsb2F0Q29tcGFyZShvcGVyYW5kcywgY29kZSkKKyAgICAkYXNtLnB1dHMgIm1vdiAje29wZXJh
bmRzWzJdLmFybU9wZXJhbmR9LCBcIzAiCisgICAgJGFzbS5wdXRzICJ2Y21wLmYzMiAje29wZXJh
bmRzWzBdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKICAgICAkYXNtLnB1
dHMgInZtcnMgQVBTUl9uemN2LCBGUFNDUiIKICAgICAkYXNtLnB1dHMgIml0ICN7Y29kZX0iCiAg
ICAgJGFzbS5wdXRzICJtb3Yje2NvZGV9ICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sIFwjMSIK
QEAgLTQwMyw2ICs0NDMsMTkgQEAgZGVmIGVtaXRBcm1UZXN0U2V0KG9wZXJhbmRzLCBjb2RlKQog
ICAgICRhc20ucHV0cyAibW92I3tjb2RlfSAje29wZXJhbmRzWy0xXS5hcm1PcGVyYW5kfSwgXCMx
IgogZW5kCiAKK2RlZiByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCB0ZXh0KQorICAgIHJldHVy
biBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImVtaXQiLCBbU3RyaW5nTGl0ZXJhbC5uZXco
Y29kZU9yaWdpbiwgIlwiI3t0ZXh0fVwiIildKQorZW5kCisKK2RlZiBlbWl0QXJtVHJ1bmNhdGVG
bG9hdChjb2RlT3JpZ2luLCB0bywgZnJvbSwgb3BlcmFuZHMpCisgICAgdG1wID0gQVJNX0VYVFJB
X0ZQUlNbLTFdCisgICAgc3JjID0gZnJvbSA9PSAiZjMyIiA/IG9wZXJhbmRzWzBdLmFybVNpbmds
ZSA6IG9wZXJhbmRzWzBdLmFybU9wZXJhbmQKKyAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwg
WworICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAidmN2dC4je3RvfS4je2Zyb219
ICN7dG1wLmFybVNpbmdsZX0sICN7c3JjfSIpLAorICAgICAgICByYXdJbnN0cnVjdGlvbihjb2Rl
T3JpZ2luLCAidm1vdiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje3RtcC5hcm1TaW5nbGV9
IikKKyAgICBdKS5sb3dlcigkYWN0aXZlQmFja2VuZCkKK2VuZAorCiBjbGFzcyBJbnN0cnVjdGlv
bgogICAgIGRlZiBsb3dlckFSTXY3CiAgICAgICAgIHJhaXNlIHVubGVzcyAkYWN0aXZlQmFja2Vu
ZCA9PSAiQVJNdjciCkBAIC00NDAsNiArNDkzLDEwIEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAg
ICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkI3tzdWZmaXh9ICN7YXJtRmxpcHBlZE9wZXJh
bmRzKG9wZXJhbmRzKX0iCiAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICBlbmQKKyAg
ICAgICAgd2hlbiAiYWRjaSIKKyAgICAgICAgICAgIGVtaXRBcm0oImFkYyIsIG9wZXJhbmRzKQor
ICAgICAgICB3aGVuICJhYnNkIgorICAgICAgICAgICRhc20ucHV0cyAidmFicy5mNjQgI3thcm1G
bGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAiYW5kaSIsICJhbmRwIgog
ICAgICAgICAgICAgZW1pdEFybUNvbXBhY3QoImFuZHMiLCAiYW5kIiwgb3BlcmFuZHMpCiAgICAg
ICAgIHdoZW4gIm9yaSIsICJvcnAiLCAib3JoIgpAQCAtNDU4LDE0ICs1MTUsMzQgQEAgY2xhc3Mg
SW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGVtaXRBcm0oIm11bCIsIG9wZXJhbmRzKQogICAgICAg
ICB3aGVuICJzdWJpIiwgInN1YnAiLCAic3ViaXMiCiAgICAgICAgICAgICBlbWl0QXJtQ29tcGFj
dCgic3VicyIsICJzdWJzIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInNiY2kiCisgICAgICAg
ICAgICBlbWl0QXJtKCJzYmMiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAibmVnaSIsICJuZWdw
IgogICAgICAgICAgICAgJGFzbS5wdXRzICJyc2JzICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sIFwjMCIKICAgICAgICAgd2hlbiAibm90aSIKICAg
ICAgICAgICAgICRhc20ucHV0cyAibXZucyAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29w
ZXJhbmRzWzBdLmFybU9wZXJhbmR9IgorICAgICAgICB3aGVuICJscm90YXRlaSIKKyAgICAgICAg
ICAgIHRtcCA9IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgIFNlcXVlbmNl
Lm5ldyhjb2RlT3JpZ2luLCBbCisgICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVP
cmlnaW4sICJtb3ZlIiwgW29wZXJhbmRzWzBdLCB0bXBdKSwKKyAgICAgICAgICAgICAgICBJbnN0
cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgIm5lZ2kiLCBbdG1wXSksCisgICAgICAgICAgICAgICAg
SW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJycm90YXRlaSIsIFt0bXAsIG9wZXJhbmRzWzFd
XSksCisgICAgICAgICAgICBdKS5sb3dlcigkYWN0aXZlQmFja2VuZCkKKyAgICAgICAgd2hlbiAi
cnJvdGF0ZWkiCisgICAgICAgICAgICAkYXNtLnB1dHMgInJvciAje2FybUZsaXBwZWRPcGVyYW5k
cyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJ0emNudGkiCisgICAgICAgICAgICAkYXNtLnB1
dHMgInJiaXQgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgICAgICRh
c20ucHV0cyAiY2x6ICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJt
T3BlcmFuZH0iCisgICAgICAgIHdoZW4gImx6Y250aSIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
Y2x6ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gImxvYWRp
IiwgImxvYWRpcyIsICJsb2FkcCIKICAgICAgICAgICAgICRhc20ucHV0cyAibGRyICN7YXJtRmxp
cHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gInN0b3JlaSIsICJzdG9yZXAi
CiAgICAgICAgICAgICAkYXNtLnB1dHMgInN0ciAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0iCisg
ICAgICAgIHdoZW4gImxvYWQyaWEiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmQgI3thcm1G
bGlwcGVkT3BlcmFuZHNQYWlyKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN0b3JlMmlhIgor
ICAgICAgICAgICAgJGFzbS5wdXRzICJzdHJkICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKICAg
ICAgICAgd2hlbiAibG9hZGIiCiAgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmIgI3thcm1GbGlw
cGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAibG9hZGJzaSIKQEAgLTQ3OCwy
MCArNTU1LDExMCBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgJGFzbS5wdXRzICJs
ZHJzaC53ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gInN0
b3JlaCIKICAgICAgICAgICAgICRhc20ucHV0cyAic3RyaCAje2FybU9wZXJhbmRzKG9wZXJhbmRz
KX0iCisgICAgICAgIHdoZW4gImxvYWRsaW5rYiIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRy
ZXhiICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRs
aW5raCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRyZXhoICN7YXJtRmxpcHBlZE9wZXJhbmRz
KG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRsaW5raSIKKyAgICAgICAgICAgICRhc20u
cHV0cyAibGRyZXggI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hl
biAibG9hZGxpbmsyaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRyZXhkICN7YXJtRmxpcHBl
ZE9wZXJhbmRzUGFpcihvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9yZWNvbmRiIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJzdHJleGIgI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAg
ICAgICB3aGVuICJzdG9yZWNvbmRoIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzdHJleGggI3th
cm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9yZWNvbmRpIgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJzdHJleCAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAg
IHdoZW4gInN0b3JlY29uZDJpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzdHJleGQgI3thcm1P
cGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJsb2FkZCIKICAgICAgICAgICAgICRh
c20ucHV0cyAidmxkci42NCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAg
ICB3aGVuICJzdG9yZWQiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZzdHIuNjQgI3thcm1PcGVy
YW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkZiIKKyAgICAgICAgICAgICRhc20u
cHV0cyAidmxkci4zMiAje29wZXJhbmRzWy0xXS5hcm1TaW5nbGV9LCAje2FybU9wZXJhbmRzKG9w
ZXJhbmRzWzAuLi0yXSl9IgorICAgICAgICB3aGVuICJzdG9yZWYiCisgICAgICAgICAgICAkYXNt
LnB1dHMgInZzdHIuMzIgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9LCAje2FybU9wZXJhbmRzKG9w
ZXJhbmRzWzEuLi0xXSl9IgorICAgICAgICB3aGVuICJhZGRmIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJ2YWRkLmYzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJt
U2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJzdWJmIgor
ICAgICAgICAgICAgJGFzbS5wdXRzICJ2c3ViLmYzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0s
ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IgorICAg
ICAgICB3aGVuICJtdWxmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bXVsLmYzMiAje29wZXJh
bmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sw
XS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJkaXZmIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJ2ZGl2LmYzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2lu
Z2xlfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJzcXJ0ZiIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAidnNxcnQuZjMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwg
I3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJhYnNmIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJ2YWJzLmYzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFu
ZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAibmVnZiIKKyAgICAgICAgICAgICRhc20u
cHV0cyAidm5lZy5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFy
bVNpbmdsZX0iCisgICAgICAgIHdoZW4gImJmbHQiCisgICAgICAgICAgICBlbWl0QXJtU2luZ2xl
QnJhbmNoKCJibWkiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmZsdHVuIgorICAgICAgICAg
ICAgZW1pdEFybVNpbmdsZUJyYW5jaCgiYmx0Iiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJm
bHRlcXVuIgorICAgICAgICAgICAgZW1pdEFybVNpbmdsZUJyYW5jaCgiYmxlIiwgb3BlcmFuZHMp
CisgICAgICAgIHdoZW4gImJmZXEiCisgICAgICAgICAgICBlbWl0QXJtU2luZ2xlQnJhbmNoKCJi
ZXEiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmZndCIKKyAgICAgICAgICAgIGVtaXRBcm1T
aW5nbGVCcmFuY2goImJndCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZmd0ZXF1biIKKyAg
ICAgICAgICAgIGVtaXRBcm1TaW5nbGVCcmFuY2goImJwbCIsIG9wZXJhbmRzKQorICAgICAgICB3
aGVuICJiZGx0dW4iCisgICAgICAgICAgICBlbWl0QXJtRG91YmxlQnJhbmNoKCJibHQiLCBvcGVy
YW5kcykKICAgICAgICAgd2hlbiAiYWRkZCIKICAgICAgICAgICAgIGVtaXRBcm0oInZhZGQuZjY0
Iiwgb3BlcmFuZHMpCi0gICAgICAgIHdoZW4gImRpdmQiCi0gICAgICAgICAgICBlbWl0QXJtKCJ2
ZGl2LmY2NCIsIG9wZXJhbmRzKQogICAgICAgICB3aGVuICJzdWJkIgogICAgICAgICAgICAgZW1p
dEFybSgidnN1Yi5mNjQiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAibXVsZCIKICAgICAgICAg
ICAgIGVtaXRBcm0oInZtdWwuZjY0Iiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImRpdmQiCisg
ICAgICAgICAgICBlbWl0QXJtKCJ2ZGl2LmY2NCIsIG9wZXJhbmRzKQogICAgICAgICB3aGVuICJz
cXJ0ZCIKICAgICAgICAgICAgICRhc20ucHV0cyAidnNxcnQuZjY0ICN7YXJtRmxpcHBlZE9wZXJh
bmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gIm5lZ2QiCisgICAgICAgICAgICAkYXNtLnB1
dHMgInZuZWcuZjY0ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdo
ZW4gIm9yZiIKKyAgICAgICAgICAgICh0bXBMaHMsIHRtcFJocykgPSBBUk1fRVhUUkFfR1BSU1st
Mi4uLTFdCisgICAgICAgICAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAgICAgICAg
ICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBMaHMuYXJtT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVj
dGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNb
MV0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdp
biwgIm9yaSIsIFt0bXBMaHMsIHRtcFJoc10pLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlv
bihjb2RlT3JpZ2luLCAgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje3RtcFJocy5h
cm1PcGVyYW5kfSIpCisgICAgICAgICAgICBdKS5sb3dlcigkYWN0aXZlQmFja2VuZCkKKyAgICAg
ICAgd2hlbiAiYW5kZiIKKyAgICAgICAgICAgICh0bXBMaHMsIHRtcFJocykgPSBBUk1fRVhUUkFf
R1BSU1stMi4uLTFdCisgICAgICAgICAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAg
ICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBMaHMuYXJt
T3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAgICByYXdJ
bnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7b3Bl
cmFuZHNbMV0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29k
ZU9yaWdpbiwgImFuZGkiLCBbdG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5z
dHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3t0
bXBSaHMuYXJtT3BlcmFuZH0iKQorICAgICAgICAgICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQp
CisgICAgICAgIHdoZW4gIm9yZCIKKyAgICAgICAgICAgICh0bXBMaHMsIHRtcFJocykgPSBBUk1f
RVhUUkFfR1BSU1stMi4uLTFdCisgICAgICAgICAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwg
WworICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBM
aHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAg
ICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5u
ZXcoY29kZU9yaWdpbiwgIm9yaSIsIFt0bXBMaHMsIHRtcFJoc10pLAorICAgICAgICAgICAgICBy
YXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9
LCAje3RtcFJocy5hcm1PcGVyYW5kfSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihj
b2RlT3JpZ2luLCAgInZtb3YgI3t0bXBMaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJt
U2luZ2xlSGl9IiksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAi
dm1vdiAje3RtcFJocy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGVIaX0iKSwK
KyAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJvcmkiLCBbdG1wTGhz
LCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2
bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlSGl9LCAje3RtcFJocy5hcm1PcGVyYW5kfSIpCisg
ICAgICAgICAgICBdKS5sb3dlcigkYWN0aXZlQmFja2VuZCkKKyAgICAgICAgd2hlbiAiYW5kZCIK
KyAgICAgICAgICAgICh0bXBMaHMsIHRtcFJocykgPSBBUk1fRVhUUkFfR1BSU1stMi4uLTFdCisg
ICAgICAgICAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAgICAgICAgICAgICByYXdJ
bnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBMaHMuYXJtT3BlcmFuZH0sICN7b3Bl
cmFuZHNbMF0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2Rl
T3JpZ2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2lu
Z2xlfSIpLAorICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImFuZGki
LCBbdG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9y
aWdpbiwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3t0bXBSaHMuYXJtT3BlcmFu
ZH0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7
dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZUhpfSIpLAorICAgICAg
ICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3Bl
cmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlSGl9IiksCisgICAgICAgICAgICAgIEluc3Ry
dWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAiYW5kaSIsIFt0bXBMaHMsIHRtcFJoc10pLAorICAgICAg
ICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3tvcGVyYW5kc1sxXS5h
cm1TaW5nbGVIaX0sICN7dG1wUmhzLmFybU9wZXJhbmR9IikKKyAgICAgICAgICAgIF0pLmxvd2Vy
KCRhY3RpdmVCYWNrZW5kKQogICAgICAgICB3aGVuICJjaTJkcyIKICAgICAgICAgICAgICRhc20u
cHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtT3Bl
cmFuZH0iCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZjdnQuZjY0LnMzMiAje29wZXJhbmRzWzFd
LmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iCkBAIC01NDQsNiArNzExLDgg
QEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgd2hlbiAibW92ZHoiCiAgICAgICAgICAgICAj
IEZJWE1FOiBlaXRoZXIgc3VwcG9ydCB0aGlzIG9yIHJlbW92ZSBpdC4KICAgICAgICAgICAgIHJh
aXNlICJBUk0gZG9lcyBub3Qgc3VwcG9ydCB0aGlzIG9wY29kZSB5ZXQsICN7Y29kZU9yaWdpbn0i
CisgICAgICAgIHdoZW4gIm1vdmVkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92LmY2NCAj
e2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJwb3AiCiAgICAg
ICAgICAgICBvcGVyYW5kcy5lYWNoIHsKICAgICAgICAgICAgICAgICB8IG9wIHwKQEAgLTU2MCw5
ICs3MjksMTcgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICAkYXNtLnB1dHMgIm1vdiAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9Igog
ICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gIm1vdmVpaSIKKyAgICAgICAgICAgIHJhaXNl
ICJGaXJzdCBvcGVyYW5kIG9mIG1vdmVpaSBtdXN0IGJlIGFuIGltbWVkaWF0ZSIgdW5sZXNzIG9w
ZXJhbmRzWzBdLmltbWVkaWF0ZT8KKyAgICAgICAgICAgIGFybU1vdmVJbW1lZGlhdGUob3BlcmFu
ZHNbMF0udmFsdWUgPj4gMzIsIG9wZXJhbmRzWzFdKQorICAgICAgICAgICAgYXJtTW92ZUltbWVk
aWF0ZShvcGVyYW5kc1swXS52YWx1ZSAmIDB4ZmZmZmZmZmYsIG9wZXJhbmRzWzJdKQogICAgICAg
ICB3aGVuICJtdmxibCIKICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdncgI3tvcGVyYW5k
c1sxXS5hcm1PcGVyYW5kfSwgXCM6bG93ZXIxNjoje29wZXJhbmRzWzBdLnZhbHVlfSIKICAgICAg
ICAgICAgICAgICAkYXNtLnB1dHMgIm1vdnQgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgXCM6
dXBwZXIxNjoje29wZXJhbmRzWzBdLnZhbHVlfSIKKyAgICAgICAgd2hlbiAic3hiMmkiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgInN4dGIgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIK
KyAgICAgICAgd2hlbiAic3hoMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN4dGggI3thcm1G
bGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAibm9wIgogICAgICAgICAg
ICAgJGFzbS5wdXRzICJub3AiCiAgICAgICAgIHdoZW4gImJpZXEiLCAiYnBlcSIsICJiYmVxIgpA
QCAtNjU2LDE0ICs4MzMsNDYgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGVtaXRB
cm1Db21wYXJlKG9wZXJhbmRzLCAibHQiKQogICAgICAgICB3aGVuICJjaWx0ZXEiLCAiY3BsdGVx
IiwgImNibHRlcSIKICAgICAgICAgICAgIGVtaXRBcm1Db21wYXJlKG9wZXJhbmRzLCAibGUiKQot
ICAgICAgICB3aGVuICJjZGd0IgotICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3Bl
cmFuZHMsICJndCIpCi0gICAgICAgIHdoZW4gImNkZ3RlcSIKLSAgICAgICAgICAgIGVtaXRBcm1E
b3VibGVDb21wYXJlKG9wZXJhbmRzLCAiZ2UiKQorICAgICAgICB3aGVuICJjZmVxIgorICAgICAg
ICAgICAgZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywgImVxIikKKyAgICAgICAgd2hlbiAi
Y2ZuZXF1biIKKyAgICAgICAgICAgIGVtaXRBcm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJuZSIp
CisgICAgICAgIHdoZW4gImNmbHQiCisgICAgICAgICAgICBlbWl0QXJtRmxvYXRDb21wYXJlKG9w
ZXJhbmRzLCAibWkiKQorICAgICAgICB3aGVuICJjZmx0ZXEiCisgICAgICAgICAgICBlbWl0QXJt
RmxvYXRDb21wYXJlKG9wZXJhbmRzLCAibHMiKQorICAgICAgICB3aGVuICJjZmd0IgorICAgICAg
ICAgICAgZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywgImd0IikKKyAgICAgICAgd2hlbiAi
Y2ZndGVxIgorICAgICAgICAgICAgZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywgImdlIikK
KyAgICAgICAgd2hlbiAiY2RlcSIKKyAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9w
ZXJhbmRzLCAiZXEiKQorICAgICAgICB3aGVuICJjZG5lcXVuIgorICAgICAgICAgICAgZW1pdEFy
bURvdWJsZUNvbXBhcmUob3BlcmFuZHMsICJuZSIpCiAgICAgICAgIHdoZW4gImNkbHQiCiAgICAg
ICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywgIm1pIikKICAgICAgICAgd2hl
biAiY2RsdGVxIgogICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMsICJs
cyIpCisgICAgICAgIHdoZW4gImNkZ3QiCisgICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFy
ZShvcGVyYW5kcywgImd0IikKKyAgICAgICAgd2hlbiAiY2RndGVxIgorICAgICAgICAgICAgZW1p
dEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMsICJnZSIpCisgICAgICAgIHdoZW4gImNmMmQiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgInZjdnQuZjY0LmYzMiAje29wZXJhbmRzWzFdLmFybU9wZXJh
bmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gImNkMmYiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgInZjdnQuZjMyLmY2NCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0s
ICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAgIHdoZW4gImNpMmYiCisgICAgICAg
ICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRz
WzBdLmFybU9wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmYzMi51MzIgI3tv
cGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iCisgICAgICAg
IHdoZW4gImNpMmZzIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNbMV0u
YXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20u
cHV0cyAidmN2dC5mMzIuczMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sx
XS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJjaTJkIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5k
fSIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmN2dC5mNjQudTMyICN7b3BlcmFuZHNbMV0uYXJt
T3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAiY2kyZHMi
CisgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAj
e29wZXJhbmRzWzBdLmFybU9wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmY2
NC5zMzIgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9
IgogICAgICAgICB3aGVuICJ0aXMiLCAidGJzIiwgInRwcyIKICAgICAgICAgICAgIGVtaXRBcm1U
ZXN0U2V0KG9wZXJhbmRzLCAibWkiKQogICAgICAgICB3aGVuICJ0aXoiLCAidGJ6IiwgInRweiIK
QEAgLTY3NCwxMCArODgzLDIyIEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICAkYXNt
LnB1dHMgImxkciAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCBbc3AsIFwjI3tvcGVyYW5kc1sw
XS52YWx1ZSAqIDR9XSIKICAgICAgICAgd2hlbiAicG9rZSIKICAgICAgICAgICAgICRhc20ucHV0
cyAic3RyICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sIFtzcCwgXCMje29wZXJhbmRzWzBdLnZh
bHVlICogNH1dIgorICAgICAgICB3aGVuICJmaTJmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2
bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIK
KyAgICAgICAgd2hlbiAiZmYyaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJh
bmRzWzFdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCiAgICAgICAgIHdo
ZW4gImZpaTJkIgogICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNbMl0uYXJt
T3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3Bl
cmFuZH0iCiAgICAgICAgIHdoZW4gImZkMmlpIgogICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92
ICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7
b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAgIHdoZW4gInRydW5jYXRlZjJpIgorICAg
ICAgICAgICAgZW1pdEFybVRydW5jYXRlRmxvYXQoY29kZU9yaWdpbiwgInUzMiIsICJmMzIiLCBv
cGVyYW5kcykKKyAgICAgICAgd2hlbiAidHJ1bmNhdGVmMmlzIgorICAgICAgICAgICAgZW1pdEFy
bVRydW5jYXRlRmxvYXQoY29kZU9yaWdpbiwgInMzMiIsICJmMzIiLCBvcGVyYW5kcykKKyAgICAg
ICAgd2hlbiAidHJ1bmNhdGVkMmkiCisgICAgICAgICAgICBlbWl0QXJtVHJ1bmNhdGVGbG9hdChj
b2RlT3JpZ2luLCAidTMyIiwgImY2NCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJ0cnVuY2F0
ZWQyaXMiCisgICAgICAgICAgICBlbWl0QXJtVHJ1bmNhdGVGbG9hdChjb2RlT3JpZ2luLCAiczMy
IiwgImY2NCIsIG9wZXJhbmRzKQogICAgICAgICB3aGVuICJibyIKICAgICAgICAgICAgICRhc20u
cHV0cyAiYnZzICN7b3BlcmFuZHNbMF0uYXNtTGFiZWx9IgogICAgICAgICB3aGVuICJicyIKQEAg
LTY4NiwxMyArOTA3LDE3IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICAkYXNtLnB1
dHMgImJlcSAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKICAgICAgICAgd2hlbiAiYm56IgogICAg
ICAgICAgICAgJGFzbS5wdXRzICJibmUgI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCisgICAgICAg
IHdoZW4gImJjcyIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmNzICN7b3BlcmFuZHNbMF0uYXNt
TGFiZWx9IgogICAgICAgICB3aGVuICJsZWFpIiwgImxlYXAiCiAgICAgICAgICAgICBvcGVyYW5k
c1swXS5hcm1FbWl0TGVhKG9wZXJhbmRzWzFdKQotICAgICAgICB3aGVuICJzbXVsbGkiCisgICAg
ICAgIHdoZW4gInNtdWxsaSIsICJ1bXVsbGkiCiAgICAgICAgICAgICByYWlzZSAiV3JvbmcgbnVt
YmVyIG9mIGFyZ3VtZW50cyB0byBzbXVsbCBpbiAje3NlbGYuaW5zcGVjdH0gYXQgI3tjb2RlT3Jp
Z2luU3RyaW5nfSIgdW5sZXNzIG9wZXJhbmRzLmxlbmd0aCA9PSA0Ci0gICAgICAgICAgICAkYXNt
LnB1dHMgInNtdWxsICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbM10uYXJt
T3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3Bl
cmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlWzAuLi0yXX0gI3tvcGVyYW5k
c1syXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1szXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sw
XS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSIKICAgICAgICAgd2hlbiAi
bWVtZmVuY2UiCiAgICAgICAgICAgICAkYXNtLnB1dHMgImRtYiBzeSIKKyAgICAgICAgd2hlbiAi
ZmVuY2UiCisgICAgICAgICAgICAkYXNtLnB1dHMgImRtYiBpc2giCiAgICAgICAgIHdoZW4gImNs
cmJwIgogICAgICAgICAgICAgJGFzbS5wdXRzICJiaWMgI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5k
fSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSIK
ICAgICAgICAgd2hlbiAiZ2xvYmFsYWRkciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgppbmRleCA1NGIwMjdmM2RhMDEuLjdlMjgwYjdmNzhi
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rp
b25zLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9u
cy5yYgpAQCAtNTksNiArNTksNyBAQCBNQUNST19JTlNUUlVDVElPTlMgPQogICAgICAicnJvdGF0
ZXEiLAogICAgICAic3ViaSIsCiAgICAgICJ4b3JpIiwKKyAgICAgImxvYWQyaWEiLAogICAgICAi
bG9hZGkiLAogICAgICAibG9hZGlzIiwKICAgICAgImxvYWRiIiwKQEAgLTY3LDYgKzY4LDcgQEAg
TUFDUk9fSU5TVFJVQ1RJT05TID0KICAgICAgImxvYWRoIiwKICAgICAgImxvYWRoc2kiLAogICAg
ICAibG9hZGhzcSIsCisgICAgICJzdG9yZTJpYSIsCiAgICAgICJzdG9yZWkiLAogICAgICAic3Rv
cmVoIiwKICAgICAgInN0b3JlYiIsCkBAIC0zNzcsOSArMzc5LDIxIEBAIFg4Nl9JTlNUUlVDVElP
TlMgPQogCiBBUk1fSU5TVFJVQ1RJT05TID0KICAgICBbCisgICAgICJhZGNpIiwKKyAgICAgImJj
cyIsCiAgICAgICJjbHJicCIsCiAgICAgICJtdmxibCIsCi0gICAgICJnbG9iYWxhZGRyIgorICAg
ICAiZ2xvYmFsYWRkciIsCisgICAgICJzYmNpIiwKKyAgICAgIm1vdmVpaSIsCisgICAgICJsb2Fk
bGlua2IiLAorICAgICAibG9hZGxpbmtoIiwKKyAgICAgImxvYWRsaW5raSIsCisgICAgICJsb2Fk
bGluazJpIiwKKyAgICAgInN0b3JlY29uZGIiLAorICAgICAic3RvcmVjb25kaCIsCisgICAgICJz
dG9yZWNvbmRpIiwKKyAgICAgInN0b3JlY29uZDJpIiwKICAgICBdCiAKIEFSTTY0X0lOU1RSVUNU
SU9OUyA9CkBAIC00MzEsNiArNDQ1LDcgQEAgQVJNNjRfSU5TVFJVQ1RJT05TID0KIFJJU0NfSU5T
VFJVQ1RJT05TID0KICAgICBbCiAgICAgICJzbXVsbGkiLCAgIyBNdWx0aXBseSB0d28gMzItYml0
IHdvcmRzIGFuZCBwcm9kdWNlIGEgNjQtYml0IHdvcmQKKyAgICAgInVtdWxsaSIsICAjIE11bHRp
cGx5IHR3byAzMi1iaXQgd29yZHMgYW5kIHByb2R1Y2UgYSA2NC1iaXQgd29yZAogICAgICAiYWRk
aXMiLCAgICMgQWRkIGludGVnZXJzIGFuZCBzZXQgYSBmbGFnLgogICAgICAic3ViaXMiLCAgICMg
U2FtZSwgYnV0IGZvciBzdWJ0cmFjdGlvbi4KICAgICAgIm9yaXMiLCAgICAjIFNhbWUsIGJ1dCBm
b3IgYml0d2lzZSBvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL3JlZ2lzdGVycy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lz
dGVycy5yYgppbmRleCAwZGM0NGMyM2RmYjIuLjY3ZjUyNzFhNTM3NSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5yYgpAQCAtNTgsNyArNTgsOCBAQCBH
UFJTID0KICAgICAgImNzcjciLAogICAgICAiY3NyOCIsCiAgICAgICJjc3I5IiwKLSAgICAgImNz
cjEwIgorICAgICAiY3NyMTAiLAorICAgICAiaW52YWxpZEdQUiIKICAgICBdCiAKIEZQUlMgPQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYiBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIKaW5kZXggMGYwNzJlOWZkMTFl
Li4zNDY0NTk2MmY3NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL3Jpc2MucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5y
YgpAQCAtMjU5LDggKzI1OSwxMiBAQCBkZWYgcmlzY0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzRG91
YmxlKGxpc3QpCiAgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCiAgICAgICAgICAgICB3aGVu
ICJsb2FkZCIKICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2Rl
LmNvZGVPcmlnaW4sICJsb2FkZCIsIFtub2RlLm9wZXJhbmRzWzBdLnJpc2NEb3VibGVBZGRyZXNz
KG5ld0xpc3QpLCBub2RlLm9wZXJhbmRzWzFdXSwgbm9kZS5hbm5vdGF0aW9uKQorICAgICAgICAg
ICAgd2hlbiAibG9hZGYiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcobm9kZS5jb2RlT3JpZ2luLCAibG9hZGYiLCBbbm9kZS5vcGVyYW5kc1swXS5yaXNjRG91Ymxl
QWRkcmVzcyhuZXdMaXN0KSwgbm9kZS5vcGVyYW5kc1sxXV0sIG5vZGUuYW5ub3RhdGlvbikKICAg
ICAgICAgICAgIHdoZW4gInN0b3JlZCIKICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3Ry
dWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJzdG9yZWQiLCBbbm9kZS5vcGVyYW5kc1swXSwg
bm9kZS5vcGVyYW5kc1sxXS5yaXNjRG91YmxlQWRkcmVzcyhuZXdMaXN0KV0sIG5vZGUuYW5ub3Rh
dGlvbikKKyAgICAgICAgICAgIHdoZW4gInN0b3JlZiIKKyAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJzdG9yZWYiLCBbbm9kZS5vcGVy
YW5kc1swXSwgbm9kZS5vcGVyYW5kc1sxXS5yaXNjRG91YmxlQWRkcmVzcyhuZXdMaXN0KV0sIG5v
ZGUuYW5ub3RhdGlvbikKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IG5vZGUKICAgICAgICAgICAgIGVuZApAQCAtMzY5LDcgKzM3Myw3IEBAIGRlZiByaXNjTG93
ZXJNYWxmb3JtZWRJbW1lZGlhdGVzKGxpc3QsIHZhbGlkSW1tZWRpYXRlcywgdmFsaWRMb2dpY2Fs
SW1tZWRpYXRlcykKICAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgogICAgICAgICAg
ICAgYW5ub3RhdGlvbiA9IG5vZGUuYW5ub3RhdGlvbgogICAgICAgICAgICAgY2FzZSBub2RlLm9w
Y29kZQotICAgICAgICAgICAgd2hlbiAibW92ZSIKKyAgICAgICAgICAgIHdoZW4gIm1vdmUiLCAi
bW92ZWlpIgogICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQogICAgICAgICAgICAgd2hl
biAiYWRkaSIsICJhZGRwIiwgImFkZHEiLCAiYWRkaXMiLCAic3ViaSIsICJzdWJwIiwgInN1YnEi
LCAic3ViaXMiCiAgICAgICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1swXS5pc19hPyBJbW1l
ZGlhdGUgYW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NK
U1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKaW5k
ZXggMzkxZmQzYTZhNDFjLi5mZTIxNjQ4NjczMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0NKU1ZhbHVlLmgKQEAgLTE2Miw4ICsxNjIsOSBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciB1aW50MzJfdCBOdWxsVGFnID0gICAgICAgICAweGZmZmZmZmZkOwogICAg
IHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgVW5kZWZpbmVkVGFnID0gICAgMHhmZmZmZmZmYzsK
ICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IENlbGxUYWcgPSAgICAgICAgIDB4ZmZmZmZm
ZmI7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBFbXB0eVZhbHVlVGFnID0gICAweGZm
ZmZmZmZhOwotICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgRGVsZXRlZFZhbHVlVGFnID0g
MHhmZmZmZmZmOTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IFdhc21UYWcgPSAgICAg
ICAgIDB4ZmZmZmZmZmE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBFbXB0eVZhbHVl
VGFnID0gICAweGZmZmZmZmY5OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgRGVsZXRl
ZFZhbHVlVGFnID0gMHhmZmZmZmZmODsKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3Qg
TG93ZXN0VGFnID0gIERlbGV0ZWRWYWx1ZVRhZzsKICNlbmRpZgpAQCAtMTgwLDYgKzE4MSw5IEBA
IHB1YmxpYzoKICAgICBlbnVtIEVuY29kZUFzQmlnSW50MzJUYWcgeyBFbmNvZGVBc0JpZ0ludDMy
IH07CiAjZW5kaWYKICAgICBlbnVtIEVuY29kZUFzRG91YmxlVGFnIHsgRW5jb2RlQXNEb3VibGUg
fTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgZW51
bSBFbmNvZGVBc1VuYm94ZWRGbG9hdFRhZyB7IEVuY29kZUFzVW5ib3hlZEZsb2F0IH07CisjZW5k
aWYKIAogICAgIEpTVmFsdWUoKTsKICAgICBKU1ZhbHVlKEpTTnVsbFRhZyk7CkBAIC0xOTEsNiAr
MTk1LDkgQEAgcHVibGljOgogI2lmIFVTRShCSUdJTlQzMikKICAgICBKU1ZhbHVlKEVuY29kZUFz
QmlnSW50MzJUYWcsIGludDMyX3QpOwogI2VuZGlmCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAm
JiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIEpTVmFsdWUoRW5jb2RlQXNVbmJveGVkRmxvYXRUYWcs
IGZsb2F0KTsKKyNlbmRpZgogCiAgICAgLy8gTnVtYmVycwogICAgIEpTVmFsdWUoRW5jb2RlQXNE
b3VibGVUYWcsIGRvdWJsZSk7CkBAIC01OTMsNiArNjAwLDEzIEBAIEFMV0FZU19JTkxJTkUgSlNW
YWx1ZSBqc0JpZ0ludDMyKGludDMyX3QgaW50VmFsdWUpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShXRUJBU1NFTUJMWSkgJiYgVVNFKEpTVkFMVUUzMl82NCkKK0FMV0FZU19JTkxJTkUgSlNWYWx1
ZSB3YXNtVW5ib3hlZEZsb2F0KGZsb2F0IGYpCit7CisgICAgcmV0dXJuIEpTVmFsdWUoSlNWYWx1
ZTo6RW5jb2RlQXNVbmJveGVkRmxvYXQsIGYpOworfQorI2VuZGlmCisKIEFMV0FZU19JTkxJTkUg
SlNWYWx1ZSBqc0RvdWJsZU51bWJlcihkb3VibGUgZCkKIHsKICAgICBBU1NFUlQoSlNWYWx1ZShK
U1ZhbHVlOjpFbmNvZGVBc0RvdWJsZSwgZCkuaXNOdW1iZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAppbmRleCBiYTNlYjEyNmU2
ODUuLjUxYmJhN2VlZDM2MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDSlNWYWx1ZUlubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NKU1ZhbHVlSW5saW5lcy5oCkBAIC02MjMsNiArNjIzLDEzIEBAIGlubGluZSBKU1ZhbHVl
OjpKU1ZhbHVlKEVuY29kZUFzQmlnSW50MzJUYWcsIGludDMyX3QgdmFsdWUpCiB9CiAjZW5kaWYg
Ly8gVVNFKEJJR0lOVDMyKQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBVU0UoSlNWQUxV
RTMyXzY0KQoraW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoRW5jb2RlQXNVbmJveGVkRmxvYXRUYWcs
IGZsb2F0IHZhbHVlKQoreworICAgIHUuYXNCaXRzLnBheWxvYWQgPSBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4odmFsdWUpOworfQorI2VuZGlmCisKIGlubGluZSBpbnQ2NF90IHRyeUNvbnZlcnRUb0lu
dDUyKGRvdWJsZSBudW1iZXIpCiB7CiAgICAgaWYgKG51bWJlciAhPSBudW1iZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcAppbmRleCA3
N2E5MjhkODM2NTIuLmU4YjhkZTQyM2FmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCkBAIC04NDQsNiArODQ0LDE1IEBAIHByaXZh
dGU6CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0aW9uPgogICAgIHZvaWQgZm9yRWFjaExp
dmVWYWx1ZShGdW5jdGlvbik7CiAKKyAgICBib29sIHVzZVNpZ25hbGluZ01lbW9yeSgpIGNvbnN0
CisgICAgeworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQorICAgICAg
ICByZXR1cm4gbV9tb2RlID09IE1lbW9yeU1vZGU6OlNpZ25hbGluZzsKKyNlbHNlCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgIH0KKwogICAgIEZ1bmN0aW9uUGFyc2VyPEFpcklS
R2VuZXJhdG9yPiogbV9wYXJzZXIgeyBudWxscHRyIH07CiAgICAgY29uc3QgTW9kdWxlSW5mb3Jt
YXRpb24mIG1faW5mbzsKICAgICBjb25zdCBNZW1vcnlNb2RlIG1fbW9kZSB7IE1lbW9yeU1vZGU6
OkJvdW5kc0NoZWNraW5nIH07CkBAIC05NjEsNyArOTcwLDcgQEAgQWlySVJHZW5lcmF0b3I6OkFp
cklSR2VuZXJhdG9yKGNvbnN0IE1vZHVsZUluZm9ybWF0aW9uJiBpbmZvLCBCMzo6UHJvY2VkdXJl
JiBwcm8KICAgICBpZiAoIUNvbnRleHQ6OnVzZUZhc3RUTFMoKSkKICAgICAgICAgbV9jb2RlLnBp
blJlZ2lzdGVyKG1fd2FzbUNvbnRleHRJbnN0YW5jZUdQUik7CiAKLSAgICBpZiAobW9kZSAhPSBN
ZW1vcnlNb2RlOjpTaWduYWxpbmcpIHsKKyAgICBpZiAobW9kZSA9PSBNZW1vcnlNb2RlOjpCb3Vu
ZHNDaGVja2luZykgewogICAgICAgICBtX2JvdW5kc0NoZWNraW5nU2l6ZUdQUiA9IHBpbm5lZFJl
Z3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXI7CiAgICAgICAgIG1fY29kZS5waW5SZWdpc3Rl
cihtX2JvdW5kc0NoZWNraW5nU2l6ZUdQUik7CiAgICAgfQpAQCAtMTc5Nyw2ICsxODA2LDcgQEAg
aW5saW5lIEFpcklSR2VuZXJhdG9yOjpFeHByZXNzaW9uVHlwZSBBaXJJUkdlbmVyYXRvcjo6ZW1p
dENoZWNrQW5kUHJlcGFyZVBvaW50ZXIKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgY2FzZSBNZW1vcnlNb2RlOjpT
aWduYWxpbmc6IHsKICAgICAgICAgLy8gV2UndmUgdmlydHVhbGx5IG1hcHBlZCA0R2lCK3JlZHpv
bmUgZm9yIHRoaXMgbWVtb3J5LiBPbmx5IHRoZSB1c2VyLWFsbG9jYXRlZCBwYWdlcyBhcmUgYWRk
cmVzc2FibGUsIGNvbnRpZ3VvdXNseSBpbiByYW5nZSBbMCwgY3VycmVudF0sCiAgICAgICAgIC8v
IGFuZCBldmVyeXRoaW5nIGFib3ZlIGlzIG1hcHBlZCBQUk9UX05PTkUuIFdlIGRvbid0IG5lZWQg
dG8gcGVyZm9ybSBhbnkgZXhwbGljaXQgYm91bmRzIGNoZWNrIGluIHRoZSA0R2lCIHJhbmdlIGJl
Y2F1c2UgV2ViQXNzZW1ibHkgcmVnaXN0ZXIKQEAgLTE4MjMsNiArMTgzMyw3IEBAIGlubGluZSBB
aXJJUkdlbmVyYXRvcjo6RXhwcmVzc2lvblR5cGUgQWlySVJHZW5lcmF0b3I6OmVtaXRDaGVja0Fu
ZFByZXBhcmVQb2ludGVyCiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQorI2VuZGlm
CiAgICAgfQogCiAgICAgYXBwZW5kKEFkZDY0LCBUbXAobV9tZW1vcnlCYXNlR1BSKSwgcmVzdWx0
KTsKQEAgLTM3MDYsNyArMzcxNyw3IEBAIGF1dG8gQWlySVJHZW5lcmF0b3I6OmFkZENhbGwodWlu
dDMyX3QgZnVuY3Rpb25JbmRleCwgY29uc3QgVHlwZURlZmluaXRpb24mIHNpZ25hCiAgICAgICAg
IGF1dG8qIHBhdGNocG9pbnQgPSBwYWlyLmZpcnN0OwogICAgICAgICBhdXRvIGV4Y2VwdGlvbkhh
bmRsZSA9IHBhaXIuc2Vjb25kOwogICAgICAgICAvLyBXZSBuZWVkIHRvIGNsb2JiZXIgdGhlIHNp
emUgcmVnaXN0ZXIgc2luY2UgdGhlIExMSW50IGFsd2F5cyBib3VuZHMgY2hlY2tzCi0gICAgICAg
IGlmIChtX21vZGUgPT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nIHx8IG1faW5mby5tZW1vcnkuaXNT
aGFyZWQoKSkKKyAgICAgICAgaWYgKHVzZVNpZ25hbGluZ01lbW9yeSgpIHx8IG1faW5mby5tZW1v
cnkuaXNTaGFyZWQoKSkKICAgICAgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXJMYXRlKFJlZ2lz
dGVyU2V0IHsgUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKS5ib3VuZHNDaGVja2luZ1NpemVSZWdp
c3RlciB9KTsKICAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKFs9LCB0aGlzXSAoQ0Nh
bGxIZWxwZXJzJiBqaXQsIGNvbnN0IEIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFt
cykgewogICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2Ny
YXRjaChqaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIz
SVJHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5l
cmF0b3IuY3BwCmluZGV4IGZkOThiMTgzODM1OS4uNDVlZDEyZmExZGQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCkBAIC01MjYsNiAr
NTI2LDE1IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBzZXQoZHN0LCBnZXQoc3JjKSk7CiAg
ICAgfQogCisgICAgYm9vbCB1c2VTaWduYWxpbmdNZW1vcnkoKSBjb25zdAorICAgIHsKKyNpZiBF
TkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKKyAgICAgICAgcmV0dXJuIG1fbW9k
ZSA9PSBNZW1vcnlNb2RlOjpTaWduYWxpbmc7CisjZWxzZQorICAgICAgICByZXR1cm4gZmFsc2U7
CisjZW5kaWYKKyAgICB9CisKICAgICBGdW5jdGlvblBhcnNlcjxCM0lSR2VuZXJhdG9yPiogbV9w
YXJzZXIgeyBudWxscHRyIH07CiAgICAgY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mIG1faW5mbzsK
ICAgICBjb25zdCBNZW1vcnlNb2RlIG1fbW9kZSB7IE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5n
IH07CkBAIC02MzksNyArNjQ4LDcgQEAgQjNJUkdlbmVyYXRvcjo6QjNJUkdlbmVyYXRvcihjb25z
dCBNb2R1bGVJbmZvcm1hdGlvbiYgaW5mbywgUHJvY2VkdXJlJiBwcm9jZWR1cmUKICAgICBpZiAo
IUNvbnRleHQ6OnVzZUZhc3RUTFMoKSkKICAgICAgICAgbV9wcm9jLnBpblJlZ2lzdGVyKG1fd2Fz
bUNvbnRleHRJbnN0YW5jZUdQUik7CiAKLSAgICBpZiAobW9kZSAhPSBNZW1vcnlNb2RlOjpTaWdu
YWxpbmcpIHsKKyAgICBpZiAobW9kZSA9PSBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykgewog
ICAgICAgICBtX2JvdW5kc0NoZWNraW5nU2l6ZUdQUiA9IHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tp
bmdTaXplUmVnaXN0ZXI7CiAgICAgICAgIG1fcHJvYy5waW5SZWdpc3RlcihtX2JvdW5kc0NoZWNr
aW5nU2l6ZUdQUik7CiAgICAgfQpAQCAtNjUxLDkgKzY2MCwxMSBAQCBCM0lSR2VuZXJhdG9yOjpC
M0lSR2VuZXJhdG9yKGNvbnN0IE1vZHVsZUluZm9ybWF0aW9uJiBpbmZvLCBQcm9jZWR1cmUmIHBy
b2NlZHVyZQogICAgICAgICAgICAgY2FzZSBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZzoKICAg
ICAgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKHBpbm5lZEdQUiwgbV9ib3VuZHNDaGVja2luZ1Np
emVHUFIgPT0gcGlubmVkR1BSKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyNpZiBFTkFCTEUo
V0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICAgICAgICAgIGNhc2UgTWVtb3J5TW9k
ZTo6U2lnbmFsaW5nOgogICAgICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQocGlubmVkR1BSLCBJ
bnZhbGlkR1BSUmVnID09IHBpbm5lZEdQUik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisjZW5k
aWYKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHRoaXMtPmVtaXRFeGNlcHRpb25DaGVjayhq
aXQsIEV4Y2VwdGlvblR5cGU6Ok91dE9mQm91bmRzTWVtb3J5QWNjZXNzKTsKICAgICAgICAgfSk7
CkBAIC05MTUsOSArOTI2LDEzIEBAIGF1dG8gQjNJUkdlbmVyYXRvcjo6YWRkQXJndW1lbnRzKGNv
bnN0IFR5cGVEZWZpbml0aW9uJiBzaWduYXR1cmUpIC0+IFBhcnRpYWxSZXN1CiAgICAgICAgIEIz
OjpUeXBlIHR5cGUgPSB0b0IzVHlwZShzaWduYXR1cmUuYXM8RnVuY3Rpb25TaWduYXR1cmU+KCkt
PmFyZ3VtZW50VHlwZShpKSk7CiAgICAgICAgIEIzOjpWYWx1ZSogYXJndW1lbnQ7CiAgICAgICAg
IGF1dG8gcmVwID0gd2FzbUNhbGxJbmZvLnBhcmFtc1tpXTsKLSAgICAgICAgaWYgKHJlcC5pc1Jl
ZygpKSB7Ci0gICAgICAgICAgICBhcmd1bWVudCA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8
QjM6OkFyZ3VtZW50UmVnVmFsdWU+KG1fcHJvYywgT3JpZ2luKCksIHJlcC5yZWcoKSk7Ci0gICAg
ICAgICAgICBpZiAodHlwZSA9PSBCMzo6SW50MzIgfHwgdHlwZSA9PSBCMzo6RmxvYXQpCisgICAg
ICAgIGlmIChyZXAuaXNHUFIoKSkgeworICAgICAgICAgICAgYXJndW1lbnQgPSBtX2N1cnJlbnRC
bG9jay0+YXBwZW5kTmV3PEIzOjpBcmd1bWVudFJlZ1ZhbHVlPihtX3Byb2MsIE9yaWdpbigpLCBy
ZXAuanNyKCkucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgIGlmICh0eXBlID09IEIzOjpJbnQz
MikKKyAgICAgICAgICAgICAgICBhcmd1bWVudCA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8
QjM6OlZhbHVlPihtX3Byb2MsIEIzOjpUcnVuYywgT3JpZ2luKCksIGFyZ3VtZW50KTsKKyAgICAg
ICAgfSBlbHNlIGlmIChyZXAuaXNGUFIoKSkgeworICAgICAgICAgICAgYXJndW1lbnQgPSBtX2N1
cnJlbnRCbG9jay0+YXBwZW5kTmV3PEIzOjpBcmd1bWVudFJlZ1ZhbHVlPihtX3Byb2MsIE9yaWdp
bigpLCByZXAuZnByKCkpOworICAgICAgICAgICAgaWYgKHR5cGUgPT0gQjM6OkZsb2F0KQogICAg
ICAgICAgICAgICAgIGFyZ3VtZW50ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6VmFs
dWU+KG1fcHJvYywgQjM6OlRydW5jLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgQVNTRVJUKHJlcC5pc1N0YWNrKCkpOwpAQCAtMTQ0Niw2ICsxNDYx
LDcgQEAgaW5saW5lIFZhbHVlKiBCM0lSR2VuZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9p
bnRlcihWYWx1ZSogcG9pbnRlciwgdWludDMyX3QKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisj
aWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgY2FzZSBNZW1vcnlN
b2RlOjpTaWduYWxpbmc6IHsKICAgICAgICAgLy8gV2UndmUgdmlydHVhbGx5IG1hcHBlZCA0R2lC
K3JlZHpvbmUgZm9yIHRoaXMgbWVtb3J5LiBPbmx5IHRoZSB1c2VyLWFsbG9jYXRlZCBwYWdlcyBh
cmUgYWRkcmVzc2FibGUsIGNvbnRpZ3VvdXNseSBpbiByYW5nZSBbMCwgY3VycmVudF0sCiAgICAg
ICAgIC8vIGFuZCBldmVyeXRoaW5nIGFib3ZlIGlzIG1hcHBlZCBQUk9UX05PTkUuIFdlIGRvbid0
IG5lZWQgdG8gcGVyZm9ybSBhbnkgZXhwbGljaXQgYm91bmRzIGNoZWNrIGluIHRoZSA0R2lCIHJh
bmdlIGJlY2F1c2UgV2ViQXNzZW1ibHkgcmVnaXN0ZXIKQEAgLTE0NjMsNiArMTQ3OSw3IEBAIGlu
bGluZSBWYWx1ZSogQjNJUkdlbmVyYXRvcjo6ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoVmFs
dWUqIHBvaW50ZXIsIHVpbnQzMl90CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQor
I2VuZGlmCiAgICAgfQogCiAgICAgcG9pbnRlciA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8
VmFsdWU+KG1fcHJvYywgWkV4dDMyLCBvcmlnaW4oKSwgcG9pbnRlcik7CkBAIC0xNDk2LDcgKzE1
MTMsNyBAQCBpbmxpbmUgdWludDMyX3Qgc2l6ZU9mTG9hZE9wKExvYWRPcFR5cGUgb3ApCiAKIGlu
bGluZSBCMzo6S2luZCBCM0lSR2VuZXJhdG9yOjptZW1vcnlLaW5kKEIzOjpPcGNvZGUgbWVtb3J5
T3ApCiB7Ci0gICAgaWYgKG1fbW9kZSA9PSBNZW1vcnlNb2RlOjpTaWduYWxpbmcgfHwgbV9pbmZv
Lm1lbW9yeS5pc1NoYXJlZCgpKQorICAgIGlmICh1c2VTaWduYWxpbmdNZW1vcnkoKSB8fCBtX2lu
Zm8ubWVtb3J5LmlzU2hhcmVkKCkpCiAgICAgICAgIHJldHVybiB0cmFwcGluZyhtZW1vcnlPcCk7
CiAgICAgcmV0dXJuIG1lbW9yeU9wOwogfQpAQCAtMjk4OSw3ICszMDA2LDcgQEAgYXV0byBCM0lS
R2VuZXJhdG9yOjphZGRDYWxsKHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgsIGNvbnN0IFR5cGVEZWZp
bml0aW9uJiBzaWduYXQKICAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5lZmZlY3RzLnJlYWRz
UGlubmVkID0gdHJ1ZTsKIAogICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gY2xvYmJlciB0
aGUgc2l6ZSByZWdpc3RlciBzaW5jZSB0aGUgTExJbnQgYWx3YXlzIGJvdW5kcyBjaGVja3MKLSAg
ICAgICAgICAgICAgICBpZiAobV9tb2RlID09IE1lbW9yeU1vZGU6OlNpZ25hbGluZyB8fCBtX2lu
Zm8ubWVtb3J5LmlzU2hhcmVkKCkpCisgICAgICAgICAgICAgICAgaWYgKHVzZVNpZ25hbGluZ01l
bW9yeSgpIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQoKSkKICAgICAgICAgICAgICAgICAgICAg
cGF0Y2hwb2ludC0+Y2xvYmJlckxhdGUoUmVnaXN0ZXJTZXQgeyBQaW5uZWRSZWdpc3RlckluZm86
OmdldCgpLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyIH0pOwogICAgICAgICAgICAgICAgIHBh
dGNocG9pbnQtPnNldEdlbmVyYXRvcihbdGhpcywgaGFuZGxlLCB1bmxpbmtlZFdhc21Ub1dhc21D
YWxscywgZnVuY3Rpb25JbmRleF0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBCMzo6U3RhY2tt
YXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKICAgICAgICAgICAgICAgICAgICAgQWxsb3dN
YWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwCmluZGV4IGVkYzcwYmVhMDhhZi4uMzI3Mjg5
OTQ5YWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQmluZGlu
Zy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwCkBA
IC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCiAjaW5jbHVkZSAiQ0Nh
bGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdl
LmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogI2luY2x1ZGUgIldhc21DYWxsaW5nQ29udmVu
dGlvbi5oIgogI2luY2x1ZGUgIldhc21JbnN0YW5jZS5oIgpAQCAtNDEsMTggKzQyLDIxIEBAIEV4
cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFp
bHVyZT4gd2FzbVRvV2FzbSh1bnNpCiB7CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHVuaXF1aWZ5
IHRoZSBzdHVicyBiYXNlZCBvbiBzaWduYXR1cmUgKyBpbmRleCB0byBzZWUgaWYgdGhpcyBzYXZl
cyBtZW1vcnkuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4NDE1NwotCi0gICAgY29uc3QgUGlubmVkUmVnaXN0ZXJJbmZvJiBwaW5uZWRSZWdzID0gUGlu
bmVkUmVnaXN0ZXJJbmZvOjpnZXQoKTsKICAgICBKSVQgaml0OwogCiAgICAgR1BSUmVnIHNjcmF0
Y2ggPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzBdOworI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCisgICAgR1BSUmVnIGJhc2VNZW1vcnkgPSB3YXNtQ2FsbGluZ0Nv
bnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdOworICAgIEdQUlJlZyBzaXplUmVnQXNT
Y3JhdGNoID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1syXTsK
KyNlbHNlCisgICAgY29uc3QgUGlubmVkUmVnaXN0ZXJJbmZvJiBwaW5uZWRSZWdzID0gUGlubmVk
UmVnaXN0ZXJJbmZvOjpnZXQoKTsKICAgICBHUFJSZWcgYmFzZU1lbW9yeSA9IHBpbm5lZFJlZ3Mu
YmFzZU1lbW9yeVBvaW50ZXI7Ci0gICAgQVNTRVJUKGJhc2VNZW1vcnkgIT0gR1BSUmVnOjpJbnZh
bGlkR1BSUmVnKTsKLSAgICBBU1NFUlQoYmFzZU1lbW9yeSAhPSBzY3JhdGNoKTsKLSAgICBBU1NF
UlQocGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlciAhPSBiYXNlTWVtb3J5KTsK
LSAgICBBU1NFUlQocGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlciAhPSBzY3Jh
dGNoKTsKICAgICBHUFJSZWcgc2l6ZVJlZ0FzU2NyYXRjaCA9IHBpbm5lZFJlZ3MuYm91bmRzQ2hl
Y2tpbmdTaXplUmVnaXN0ZXI7CisjZW5kaWYKKyAgICBBU1NFUlQoYmFzZU1lbW9yeSAhPSBHUFJS
ZWc6OkludmFsaWRHUFJSZWcpOwogICAgIEFTU0VSVChzaXplUmVnQXNTY3JhdGNoICE9IEdQUlJl
Zzo6SW52YWxpZEdQUlJlZyk7CisgICAgQVNTRVJUKHNjcmF0Y2ggIT0gR1BSUmVnOjpJbnZhbGlk
R1BSUmVnKTsKKyAgICBBU1NFUlQobm9PdmVybGFwKHNjcmF0Y2gsIGJhc2VNZW1vcnksIHNpemVS
ZWdBc1NjcmF0Y2gpKTsKIAogICAgIC8vIEIzJ3MgY2FsbCBjb2RlZ2VuIGVuc3VyZXMgdGhhdCB0
aGUgSlNDZWxsIGlzIGEgV2ViQXNzZW1ibHlGdW5jdGlvbi4KICAgICBqaXQubG9hZFdhc21Db250
ZXh0SW5zdGFuY2Uoc2l6ZVJlZ0FzU2NyYXRjaCk7IC8vIE9sZCBJbnN0YW5jZSoKQEAgLTY1LDYg
KzY5LDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4s
IEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9XYXNtKHVuc2kKICAgICBqaXQubG9hZFB0cihKSVQ6OkFk
ZHJlc3Moc2l6ZVJlZ0FzU2NyYXRjaCwgSW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkU3RhY2tMaW1p
dCgpKSwgc2l6ZVJlZ0FzU2NyYXRjaCk7CiAgICAgaml0LnN0b3JlUHRyKHNpemVSZWdBc1NjcmF0
Y2gsIEpJVDo6QWRkcmVzcyhiYXNlTWVtb3J5LCBJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRTdGFj
a0xpbWl0KCkpKTsKIAorI2lmICFDUFUoQVJNKSAvLyBBUk0gaGFzIG5vIHBpbm5lZCByZWdpc3Rl
cnMgZm9yIFdhc20gTWVtb3J5LCBzbyBubyBuZWVkIHRvIHNldCB0aGVtIHVwCiAgICAgLy8gRklY
TUUgdGhlIGZvbGxvd2luZyBjb2RlIGFzc3VtZXMgdGhhdCBhbGwgV2FzbTo6SW5zdGFuY2UgaGF2
ZSB0aGUgc2FtZSBwaW5uZWQgcmVnaXN0ZXJzLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTYyOTUyCiAgICAgLy8gU2V0IHVwIHRoZSBjYWxsZWUncyBiYXNlTWVtb3J5
IHJlZ2lzdGVyIGFzIHdlbGwgYXMgdGhlIG1lbW9yeSBzaXplIHJlZ2lzdGVycy4KICAgICB7CkBA
IC03Miw2ICs3Nyw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQ
dHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvV2FzbSh1bnNpCiAgICAgICAgIGppdC5sb2Fk
UHRyKEpJVDo6QWRkcmVzcyhiYXNlTWVtb3J5LCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNo
ZWRNZW1vcnkoKSksIGJhc2VNZW1vcnkpOyAvLyBXYXNtOjpNZW1vcnk6OlRhZ2dlZEFycmF5U3Rv
cmFnZVB0cjx2b2lkPiAodm9pZCopLgogICAgICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHlBbmRV
bnRhZyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5LCBwaW5uZWRSZWdzLmJvdW5kc0No
ZWNraW5nU2l6ZVJlZ2lzdGVyLCB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0
Y2hHUFJzWzFdKTsKICAgICB9CisjZW5kaWYKIAogICAgIC8vIFRhaWwgY2FsbCBpbnRvIHRoZSBj
YWxsZWUgV2ViQXNzZW1ibHkgZnVuY3Rpb24uCiAgICAgaml0LmxvYWRQdHIoSklUOjpBZGRyZXNz
KHNjcmF0Y2gpLCBzY3JhdGNoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21DYWxsZWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxl
ZS5jcHAKaW5kZXggYTMyMWM1MmYxNWVjLi4zMjAyZjU0ODBjYTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21DYWxsZWUuY3BwCkBAIC0xMzEsNiArMTMxLDggQEAgUmVnaXN0ZXJB
dE9mZnNldExpc3QqIExMSW50Q2FsbGVlOjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCkKICAgICAgICAg
cmVnaXN0ZXJzLnNldChHUFJJbmZvOjpyZWdDUzIpOyAvLyBQQgogI2VsaWYgQ1BVKEFSTTY0KSB8
fCBDUFUoUklTQ1Y2NCkKICAgICAgICAgcmVnaXN0ZXJzLnNldChHUFJJbmZvOjpyZWdDUzcpOyAv
LyBQQgorI2VsaWYgQ1BVKEFSTSkKKyAgICAgICAgcmVnaXN0ZXJzLnNldChHUFJJbmZvOjpyZWdD
UzEpOyAvLyBQQgogI2Vsc2UKICNlcnJvciBVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUuCiAjZW5k
aWYKQEAgLTE1OCw2ICsxNjAsNyBAQCBjb25zdCBXYXNtSW5zdHJ1Y3Rpb24qIExMSW50Q2FsbGVl
OjpvdXRPZkxpbmVKdW1wVGFyZ2V0KGNvbnN0IFdhc21JbnN0cnVjdGlvbiogcAogICAgIHJldHVy
biBtX2luc3RydWN0aW9ucy0+YXQob2Zmc2V0ICsgdGFyZ2V0KS5wdHIoKTsKIH0KIAorI2lmIEVO
QUJMRShXRUJBU1NFTUJMWV9CM0pJVCkKIHZvaWQgT3B0aW1pemluZ0pJVENhbGxlZTo6bGlua0V4
Y2VwdGlvbkhhbmRsZXJzKFZlY3RvcjxVbmxpbmtlZEhhbmRsZXJJbmZvPiB1bmxpbmtlZEV4Y2Vw
dGlvbkhhbmRsZXJzLCBWZWN0b3I8Q29kZUxvY2F0aW9uTGFiZWw8RXhjZXB0aW9uSGFuZGxlclB0
clRhZz4+IGV4Y2VwdGlvbkhhbmRsZXJMb2NhdGlvbnMpCiB7CiAgICAgc2l6ZV90IGNvdW50ID0g
dW5saW5rZWRFeGNlcHRpb25IYW5kbGVycy5zaXplKCk7CkBAIC0xODQsNyArMTg3LDcgQEAgY29u
c3QgU3RhY2tNYXAmIE9wdGltaXppbmdKSVRDYWxsZWU6OnN0YWNrbWFwKENhbGxTaXRlSW5kZXgg
Y2FsbFNpdGVJbmRleCkgY29uc3QKICAgICBSRUxFQVNFX0FTU0VSVChpdGVyICE9IG1fc3RhY2tt
YXBzLmVuZCgpKTsKICAgICByZXR1cm4gaXRlci0+dmFsdWU7CiB9Ci0KKyNlbmRpZgogCiB9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6V2FzbQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQ2FsbGVlR3JvdXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUNhbGxlZUdyb3VwLmNwcAppbmRleCAxZWE0NWNhNGE2ZTkuLjUxOWQyMDk2YWQ2MiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZUdyb3VwLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlR3JvdXAuY3BwCkBAIC0x
NjAsMTcgKzE2MCwyMSBAQCB2b2lkIENhbGxlZUdyb3VwOjpjb21waWxlQXN5bmMoQ29udGV4dCog
Y29udGV4dCwgQXN5bmNDb21waWxhdGlvbkNhbGxiYWNrJiYgdGFzawogCiBib29sIENhbGxlZUdy
b3VwOjppc1NhZmVUb1J1bihNZW1vcnlNb2RlIG1lbW9yeU1vZGUpCiB7CisgICAgVU5VU0VEX1BB
UkFNKG1lbW9yeU1vZGUpOworCiAgICAgaWYgKCFydW5uYWJsZSgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBzd2l0Y2ggKG1fbW9kZSkgewogICAgIGNhc2UgV2FzbTo6TWVtb3J5TW9k
ZTo6Qm91bmRzQ2hlY2tpbmc6CiAgICAgICAgIHJldHVybiB0cnVlOworI2lmIEVOQUJMRShXRUJB
U1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIGNhc2UgV2FzbTo6TWVtb3J5TW9kZTo6U2ln
bmFsaW5nOgogICAgICAgICAvLyBDb2RlIGJlaW5nIGluIFNpZ25hbGluZyBtb2RlIG1lYW5zIHRo
YXQgaXQgcGVyZm9ybXMgbm8gYm91bmRzIGNoZWNrcy4KICAgICAgICAgLy8gSXRzIG1lbW9yeSwg
ZXZlbiBpZiBlbXB0eSwgYWJzb2x1dGVseSBtdXN0IGFsc28gYmUgaW4gU2lnbmFsaW5nIG1vZGUK
ICAgICAgICAgLy8gYmVjYXVzZSB0aGUgcGFnZSBwcm90ZWN0aW9uIGRldGVjdHMgb3V0LW9mLWJv
dW5kcyBhY2Nlc3Nlcy4KICAgICAgICAgcmV0dXJuIG1lbW9yeU1vZGUgPT0gV2FzbTo6TWVtb3J5
TW9kZTo6U2lnbmFsaW5nOworI2VuZGlmCiAgICAgfQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5jcHAKaW5kZXggMjAzYzg0M2FlOGU2Li5l
YjA5MDk1ODE4NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21D
YWxsaW5nQ29udmVudGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUNhbGxpbmdDb252ZW50aW9uLmNwcApAQCAtNDAsNyArNDAsNyBAQCBjb25zdCBKU0NhbGxpbmdD
b252ZW50aW9uJiBqc0NhbGxpbmdDb252ZW50aW9uKCkKICAgICAgICAgUmVnaXN0ZXJTZXQgY2Fs
bGVyU2F2ZVJlZ2lzdGVycyA9IFJlZ2lzdGVyU2V0OjphbGxSZWdpc3RlcnMoKTsKICAgICAgICAg
Y2FsbGVyU2F2ZVJlZ2lzdGVycy5leGNsdWRlKFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0
ZXJzKCkpOwogCi0gICAgICAgIHN0YXRpY0pTQ2FsbGluZ0NvbnZlbnRpb24uY29uc3RydWN0KFZl
Y3RvcjxSZWc+KCksIFZlY3RvcjxSZWc+KCksIFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0
ZXJzKCksIFdURk1vdmUoY2FsbGVyU2F2ZVJlZ2lzdGVycykpOworICAgICAgICBzdGF0aWNKU0Nh
bGxpbmdDb252ZW50aW9uLmNvbnN0cnVjdChWZWN0b3I8SlNWYWx1ZVJlZ3M+KCksIFZlY3RvcjxG
UFJSZWc+KCksIFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCksIFdURk1vdmUoY2Fs
bGVyU2F2ZVJlZ2lzdGVycykpOwogICAgIH0pOwogCiAgICAgcmV0dXJuIHN0YXRpY0pTQ2FsbGlu
Z0NvbnZlbnRpb247CkBAIC01MSwzMSArNTEsNTEgQEAgY29uc3QgV2FzbUNhbGxpbmdDb252ZW50
aW9uJiB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKQogICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95
ZWQ8V2FzbUNhbGxpbmdDb252ZW50aW9uPiBzdGF0aWNXYXNtQ2FsbGluZ0NvbnZlbnRpb247CiAg
ICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIHN0YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbkZsYWc7
CiAgICAgc3RkOjpjYWxsX29uY2Uoc3RhdGljV2FzbUNhbGxpbmdDb252ZW50aW9uRmxhZywgW10g
KCkgewotICAgICAgICBWZWN0b3I8UmVnPiBncHJBcmd1bWVudFJlZ2lzdGVycyhHUFJJbmZvOjpu
dW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzKTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IEdQUkluZm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnM7ICsraSkKLSAgICAgICAgICAg
IGdwckFyZ3VtZW50UmVnaXN0ZXJzW2ldID0gR1BSSW5mbzo6dG9Bcmd1bWVudFJlZ2lzdGVyKGkp
OworI2lmIFVTRShKU1ZBTFVFNjQpIC8vIE9uZSB2YWx1ZSBwZXIgR1BSCisgICAgICAgIGNvbnN0
ZXhwciB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50SlNScyA9IEdQUkluZm86Om51bWJlck9mQXJn
dW1lbnRSZWdpc3RlcnM7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KSAvLyBPbmUgdmFsdWUgcGVy
IGNvbnNlY3V0aXZlIEdQUiBwYWlyCisgICAgICAgIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJP
ZkFyZ3VtZW50SlNScyA9IEdQUkluZm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgLyAyOwor
I2VuZGlmCisgICAgICAgIFZlY3RvcjxKU1ZhbHVlUmVncz4ganNyQXJndW1lbnRSZWdpc3RlcnMo
bnVtYmVyT2ZBcmd1bWVudEpTUnMpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bnVtYmVyT2ZBcmd1bWVudEpTUnM7ICsraSkgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAg
ICAgICBqc3JBcmd1bWVudFJlZ2lzdGVyc1tpXSA9IEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6dG9B
cmd1bWVudFJlZ2lzdGVyKGkpIH07CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAg
ICAganNyQXJndW1lbnRSZWdpc3RlcnNbaV0gPSBKU1ZhbHVlUmVncyB7IEdQUkluZm86OnRvQXJn
dW1lbnRSZWdpc3RlcigyICogaSArIDEpLCBHUFJJbmZvOjp0b0FyZ3VtZW50UmVnaXN0ZXIoMiAq
IGkpIH07CisjZW5kaWYKKyAgICAgICAgfQogCi0gICAgICAgIFZlY3RvcjxSZWc+IGZwckFyZ3Vt
ZW50UmVnaXN0ZXJzKEZQUkluZm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMpOworICAgICAg
ICBWZWN0b3I8RlBSUmVnPiBmcHJBcmd1bWVudFJlZ2lzdGVycyhGUFJJbmZvOjpudW1iZXJPZkFy
Z3VtZW50UmVnaXN0ZXJzKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEZQUklu
Zm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnM7ICsraSkKICAgICAgICAgICAgIGZwckFyZ3Vt
ZW50UmVnaXN0ZXJzW2ldID0gRlBSSW5mbzo6dG9Bcmd1bWVudFJlZ2lzdGVyKGkpOwogCiAgICAg
ICAgIFJlZ2lzdGVyU2V0IHNjcmF0Y2ggPSBSZWdpc3RlclNldDo6YWxsR1BScygpOwotICAgICAg
ICBzY3JhdGNoLmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKSk7Cisg
ICAgICAgIHNjcmF0Y2guZXhjbHVkZShSZWdpc3RlclNldDo6dm1DYWxsZWVTYXZlUmVnaXN0ZXJz
KCkpOwogICAgICAgICBzY3JhdGNoLmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJl
Z2lzdGVycygpKTsKICAgICAgICAgc2NyYXRjaC5leGNsdWRlKFJlZ2lzdGVyU2V0OjpyZXNlcnZl
ZEhhcmR3YXJlUmVnaXN0ZXJzKCkpOwogICAgICAgICBzY3JhdGNoLmV4Y2x1ZGUoUmVnaXN0ZXJT
ZXQ6OnN0YWNrUmVnaXN0ZXJzKCkpOwotICAgICAgICBmb3IgKFJlZyByZWcgOiBncHJBcmd1bWVu
dFJlZ2lzdGVycykKLSAgICAgICAgICAgIHNjcmF0Y2guY2xlYXIocmVnKTsKKyAgICAgICAgZm9y
IChKU1ZhbHVlUmVncyBqc3IgOiBqc3JBcmd1bWVudFJlZ2lzdGVycykgeworICAgICAgICAgICAg
c2NyYXRjaC5jbGVhcihqc3IucGF5bG9hZEdQUigpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQor
ICAgICAgICAgICAgc2NyYXRjaC5jbGVhcihqc3IudGFnR1BSKCkpOworI2VuZGlmCisgICAgICAg
IH0KIAogICAgICAgICBWZWN0b3I8R1BSUmVnPiBzY3JhdGNoR1BSczsKICAgICAgICAgZm9yIChS
ZWcgcmVnIDogc2NyYXRjaCkKICAgICAgICAgICAgIHNjcmF0Y2hHUFJzLmFwcGVuZChyZWcuZ3By
KCkpOworCisgICAgICAgIC8vIE5lZWQgYXQgbGVhc3Qgb25lIEpTVmFsdWUgYW5kIGFuIGFkZGl0
aW9uYWwgR1BSCisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgUkVMRUFTRV9BU1NFUlQoc2Ny
YXRjaEdQUnMuc2l6ZSgpID49IDIpOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAg
UkVMRUFTRV9BU1NFUlQoc2NyYXRjaEdQUnMuc2l6ZSgpID49IDMpOworI2VuZGlmCiAKICAgICAg
ICAgUmVnaXN0ZXJTZXQgY2FsbGVyU2F2ZVJlZ2lzdGVycyA9IFJlZ2lzdGVyU2V0OjphbGxSZWdp
c3RlcnMoKTsKICAgICAgICAgY2FsbGVyU2F2ZVJlZ2lzdGVycy5leGNsdWRlKFJlZ2lzdGVyU2V0
OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCkpOwogCi0gICAgICAgIHN0YXRpY1dhc21DYWxsaW5nQ29u
dmVudGlvbi5jb25zdHJ1Y3QoV1RGTW92ZShncHJBcmd1bWVudFJlZ2lzdGVycyksIFdURk1vdmUo
ZnByQXJndW1lbnRSZWdpc3RlcnMpLCBXVEZNb3ZlKHNjcmF0Y2hHUFJzKSwgUmVnaXN0ZXJTZXQ6
OmNhbGxlZVNhdmVSZWdpc3RlcnMoKSwgV1RGTW92ZShjYWxsZXJTYXZlUmVnaXN0ZXJzKSk7Cisg
ICAgICAgIHN0YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbi5jb25zdHJ1Y3QoV1RGTW92ZShqc3JB
cmd1bWVudFJlZ2lzdGVycyksIFdURk1vdmUoZnByQXJndW1lbnRSZWdpc3RlcnMpLCBXVEZNb3Zl
KHNjcmF0Y2hHUFJzKSwgUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKSwgV1RGTW92
ZShjYWxsZXJTYXZlUmVnaXN0ZXJzKSk7CiAgICAgfSk7CiAKICAgICByZXR1cm4gc3RhdGljV2Fz
bUNhbGxpbmdDb252ZW50aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtQ2FsbGluZ0NvbnZlbnRpb24uaAppbmRleCA3ZjFlNjA5OTEyZjQuLjMxMDI1MDhlMGFhNyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50
aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50
aW9uLmgKQEAgLTU3LDggKzU3LDEzIEBAIHN0cnVjdCBDYWxsSW5mb3JtYXRpb24gewogICAgIHsK
ICAgICAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlc3VsdFJlZ2lzdGVyczsKICAgICAgICAgZm9yIChW
YWx1ZUxvY2F0aW9uIGxvYyA6IHJlc3VsdHMpIHsKLSAgICAgICAgICAgIGlmIChsb2MuaXNSZWco
KSkKLSAgICAgICAgICAgICAgICB1c2VkUmVzdWx0UmVnaXN0ZXJzLnNldChsb2MucmVnKCkpOwor
ICAgICAgICAgICAgaWYgKGxvYy5pc0dQUigpKSB7CisgICAgICAgICAgICAgICAgdXNlZFJlc3Vs
dFJlZ2lzdGVycy5zZXQobG9jLmpzcigpLnBheWxvYWRHUFIoKSk7CisjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICAgICAgICAgICAgICB1c2VkUmVzdWx0UmVnaXN0ZXJzLnNldChsb2MuanNyKCku
dGFnR1BSKCkpOworI2VuZGlmCisgICAgICAgICAgICB9IGVsc2UgaWYgKGxvYy5pc0ZQUigpKQor
ICAgICAgICAgICAgICAgIHVzZWRSZXN1bHRSZWdpc3RlcnMuc2V0KGxvYy5mcHIoKSk7CiAgICAg
ICAgIH0KIAogICAgICAgICBSZWdpc3RlckF0T2Zmc2V0TGlzdCBzYXZlZFJlZ3ModXNlZFJlc3Vs
dFJlZ2lzdGVycywgUmVnaXN0ZXJBdE9mZnNldExpc3Q6Olplcm9CYXNlZCk7CkBAIC03Nyw4ICs4
Miw4IEBAIGNsYXNzIFdhc21DYWxsaW5nQ29udmVudGlvbiB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBoZWFkZXJTaXplSW5CeXRlcyA9IENhbGxGcmFtZTo6aGVhZGVy
U2l6ZUluUmVnaXN0ZXJzICogc2l6ZW9mKFJlZ2lzdGVyKTsKIAotICAgIFdhc21DYWxsaW5nQ29u
dmVudGlvbihWZWN0b3I8UmVnPiYmIGdwcnMsIFZlY3RvcjxSZWc+JiYgZnBycywgVmVjdG9yPEdQ
UlJlZz4mJiBzY3JhdGNoZXMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVlU2F2ZXMsIFJlZ2lzdGVyU2V0
JiYgY2FsbGVyU2F2ZXMpCi0gICAgICAgIDogZ3ByQXJncyhXVEZNb3ZlKGdwcnMpKQorICAgIFdh
c21DYWxsaW5nQ29udmVudGlvbihWZWN0b3I8SlNWYWx1ZVJlZ3M+JiYganNycywgVmVjdG9yPEZQ
UlJlZz4mJiBmcHJzLCBWZWN0b3I8R1BSUmVnPiYmIHNjcmF0Y2hlcywgUmVnaXN0ZXJTZXQmJiBj
YWxsZWVTYXZlcywgUmVnaXN0ZXJTZXQmJiBjYWxsZXJTYXZlcykKKyAgICAgICAgOiBqc3JBcmdz
KFdURk1vdmUoanNycykpCiAgICAgICAgICwgZnByQXJncyhXVEZNb3ZlKGZwcnMpKQogICAgICAg
ICAsIHByb2xvZ3VlU2NyYXRjaEdQUnMoV1RGTW92ZShzY3JhdGNoZXMpKQogICAgICAgICAsIGNh
bGxlZVNhdmVSZWdpc3RlcnMoV1RGTW92ZShjYWxsZWVTYXZlcykpCkBAIC04OCwxMCArOTMsMTEg
QEAgcHVibGljOgogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdhc21DYWxsaW5nQ29udmVudGlv
bik7CiAKIHByaXZhdGU6Ci0gICAgQXJndW1lbnRMb2NhdGlvbiBtYXJzaGFsbExvY2F0aW9uSW1w
bChDYWxsUm9sZSByb2xlLCBjb25zdCBWZWN0b3I8UmVnPiYgcmVnQXJncywgc2l6ZV90JiBjb3Vu
dCwgc2l6ZV90JiBzdGFja09mZnNldCkgY29uc3QKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBSZWdU
eXBlPgorICAgIEFyZ3VtZW50TG9jYXRpb24gbWFyc2hhbGxMb2NhdGlvbkltcGwoQ2FsbFJvbGUg
cm9sZSwgY29uc3QgVmVjdG9yPFJlZ1R5cGU+JiByZWdBcmdzLCBzaXplX3QmIGNvdW50LCBzaXpl
X3QmIHN0YWNrT2Zmc2V0KSBjb25zdAogICAgIHsKICAgICAgICAgaWYgKGNvdW50IDwgcmVnQXJn
cy5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm4gQXJndW1lbnRMb2NhdGlvbjo6cmVnKHJlZ0Fy
Z3NbY291bnQrK10pOworICAgICAgICAgICAgcmV0dXJuIEFyZ3VtZW50TG9jYXRpb24geyByZWdB
cmdzW2NvdW50KytdIH07CiAKICAgICAgICAgY291bnQrKzsKICAgICAgICAgQXJndW1lbnRMb2Nh
dGlvbiByZXN1bHQgPSByb2xlID09IENhbGxSb2xlOjpDYWxsZXIgPyBBcmd1bWVudExvY2F0aW9u
OjpzdGFja0FyZ3VtZW50KHN0YWNrT2Zmc2V0KSA6IEFyZ3VtZW50TG9jYXRpb246OnN0YWNrKHN0
YWNrT2Zmc2V0KTsKQEAgLTExMCw3ICsxMTYsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFR5
cGVLaW5kOjpSZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgIGNh
c2UgVHlwZUtpbmQ6OlJ0dDoKLSAgICAgICAgICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9uSW1w
bChyb2xlLCBncHJBcmdzLCBncEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KTsKKyAgICAgICAg
ICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBqc3JBcmdzLCBncEFyZ3VtZW50
Q291bnQsIHN0YWNrT2Zmc2V0KTsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgogICAgICAg
ICBjYXNlIFR5cGVLaW5kOjpGNjQ6CiAgICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlv
bkltcGwocm9sZSwgZnByQXJncywgZnBBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CkBAIC0x
NTUsOCArMTYxLDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAot
ICAgIGNvbnN0IFZlY3RvcjxSZWc+IGdwckFyZ3M7Ci0gICAgY29uc3QgVmVjdG9yPFJlZz4gZnBy
QXJnczsKKyAgICBjb25zdCBWZWN0b3I8SlNWYWx1ZVJlZ3M+IGpzckFyZ3M7CisgICAgY29uc3Qg
VmVjdG9yPEZQUlJlZz4gZnByQXJnczsKICAgICBjb25zdCBWZWN0b3I8R1BSUmVnPiBwcm9sb2d1
ZVNjcmF0Y2hHUFJzOwogICAgIGNvbnN0IFJlZ2lzdGVyU2V0IGNhbGxlZVNhdmVSZWdpc3RlcnM7
CiAgICAgY29uc3QgUmVnaXN0ZXJTZXQgY2FsbGVyU2F2ZVJlZ2lzdGVyczsKQEAgLTE3MSw4ICsx
NzcsOCBAQCBwdWJsaWM6CiAgICAgLy8gV2FzbTo6Q29udGV4dConcyBpbnN0YW5jZS4KICAgICBz
dGF0aWMgY29uc3RleHByIHB0cmRpZmZfdCBpbnN0YW5jZVN0YWNrT2Zmc2V0ID0gQ2FsbEZyYW1l
U2xvdDo6dGhpc0FyZ3VtZW50ICogc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKTsKIAotICAgIEpTQ2Fs
bGluZ0NvbnZlbnRpb24oVmVjdG9yPFJlZz4mJiBncHJzLCBWZWN0b3I8UmVnPiYmIGZwcnMsIFJl
Z2lzdGVyU2V0JiYgY2FsbGVlU2F2ZXMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVyU2F2ZXMpCi0gICAg
ICAgIDogZ3ByQXJncyhXVEZNb3ZlKGdwcnMpKQorICAgIEpTQ2FsbGluZ0NvbnZlbnRpb24oVmVj
dG9yPEpTVmFsdWVSZWdzPiYmIGdwcnMsIFZlY3RvcjxGUFJSZWc+JiYgZnBycywgUmVnaXN0ZXJT
ZXQmJiBjYWxsZWVTYXZlcywgUmVnaXN0ZXJTZXQmJiBjYWxsZXJTYXZlcykKKyAgICAgICAgOiBq
c3JBcmdzKFdURk1vdmUoZ3BycykpCiAgICAgICAgICwgZnByQXJncyhXVEZNb3ZlKGZwcnMpKQog
ICAgICAgICAsIGNhbGxlZVNhdmVSZWdpc3RlcnMoV1RGTW92ZShjYWxsZWVTYXZlcykpCiAgICAg
ICAgICwgY2FsbGVyU2F2ZVJlZ2lzdGVycyhXVEZNb3ZlKGNhbGxlclNhdmVzKSkKQEAgLTE4MCwx
MCArMTg2LDExIEBAIHB1YmxpYzoKIAogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEpTQ2FsbGlu
Z0NvbnZlbnRpb24pOwogcHJpdmF0ZToKLSAgICBBcmd1bWVudExvY2F0aW9uIG1hcnNoYWxsTG9j
YXRpb25JbXBsKENhbGxSb2xlIHJvbGUsIGNvbnN0IFZlY3RvcjxSZWc+JiByZWdBcmdzLCBzaXpl
X3QmIGNvdW50LCBzaXplX3QmIHN0YWNrT2Zmc2V0KSBjb25zdAorICAgIHRlbXBsYXRlIDx0eXBl
bmFtZSBSZWdUeXBlPgorICAgIEFyZ3VtZW50TG9jYXRpb24gbWFyc2hhbGxMb2NhdGlvbkltcGwo
Q2FsbFJvbGUgcm9sZSwgY29uc3QgVmVjdG9yPFJlZ1R5cGU+JiByZWdBcmdzLCBzaXplX3QmIGNv
dW50LCBzaXplX3QmIHN0YWNrT2Zmc2V0KSBjb25zdAogICAgIHsKICAgICAgICAgaWYgKGNvdW50
IDwgcmVnQXJncy5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm4gQXJndW1lbnRMb2NhdGlvbjo6
cmVnKHJlZ0FyZ3NbY291bnQrK10pOworICAgICAgICAgICAgcmV0dXJuIEFyZ3VtZW50TG9jYXRp
b24geyByZWdBcmdzW2NvdW50KytdIH07CiAKICAgICAgICAgY291bnQrKzsKICAgICAgICAgQXJn
dW1lbnRMb2NhdGlvbiByZXN1bHQgPSByb2xlID09IENhbGxSb2xlOjpDYWxsZXIgPyBBcmd1bWVu
dExvY2F0aW9uOjpzdGFja0FyZ3VtZW50KHN0YWNrT2Zmc2V0KSA6IEFyZ3VtZW50TG9jYXRpb246
OnN0YWNrKHN0YWNrT2Zmc2V0KTsKQEAgLTIwMSw3ICsyMDgsNyBAQCBwcml2YXRlOgogICAgICAg
ICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoK
ICAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKLSAgICAgICAgICAgIHJldHVybiBtYXJz
aGFsbExvY2F0aW9uSW1wbChyb2xlLCBncHJBcmdzLCBncEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zm
c2V0KTsKKyAgICAgICAgICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBqc3JB
cmdzLCBncEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KTsKICAgICAgICAgY2FzZSBUeXBlS2lu
ZDo6RjMyOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6CiAgICAgICAgICAgICByZXR1cm4g
bWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwgZnByQXJncywgZnBBcmd1bWVudENvdW50LCBzdGFj
a09mZnNldCk7CkBAIC0yMjQsMTIgKzIzMSwxMiBAQCBwdWJsaWM6CiAgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgc2lnbmF0dXJlLmFzPEZ1bmN0aW9uU2lnbmF0dXJlPigpLT5hcmd1bWVu
dENvdW50KCk7ICsraSkKICAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQobWFyc2hhbGxMb2NhdGlv
bihyb2xlLCBzaWduYXR1cmUuYXM8RnVuY3Rpb25TaWduYXR1cmU+KCktPmFyZ3VtZW50VHlwZShp
KSwgZ3BBcmd1bWVudENvdW50LCBmcEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KSk7CiAKLSAg
ICAgICAgVmVjdG9yPEFyZ3VtZW50TG9jYXRpb24sIDE+IHJlc3VsdHMgeyBBcmd1bWVudExvY2F0
aW9uOjpyZWcoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpIH07CisgICAgICAgIFZlY3RvcjxBcmd1
bWVudExvY2F0aW9uLCAxPiByZXN1bHRzIHsgQXJndW1lbnRMb2NhdGlvbiB7IEpTUkluZm86OnJl
dHVyblZhbHVlSlNSIH0gfTsKICAgICAgICAgcmV0dXJuIENhbGxJbmZvcm1hdGlvbihXVEZNb3Zl
KHBhcmFtcyksIFdURk1vdmUocmVzdWx0cyksIHN0YWNrT2Zmc2V0KTsKICAgICB9CiAKLSAgICBj
b25zdCBWZWN0b3I8UmVnPiBncHJBcmdzOwotICAgIGNvbnN0IFZlY3RvcjxSZWc+IGZwckFyZ3M7
CisgICAgY29uc3QgVmVjdG9yPEpTVmFsdWVSZWdzPiBqc3JBcmdzOworICAgIGNvbnN0IFZlY3Rv
cjxGUFJSZWc+IGZwckFyZ3M7CiAgICAgY29uc3QgUmVnaXN0ZXJTZXQgY2FsbGVlU2F2ZVJlZ2lz
dGVyczsKICAgICBjb25zdCBSZWdpc3RlclNldCBjYWxsZXJTYXZlUmVnaXN0ZXJzOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaAppbmRleCA5YmVhNDQ4NjQ3ODAuLmE4
ZGExMjAwNDFhZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZv
cm1hdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaApAQCAt
NDQyLDcgKzQ0Miw5IEBAIHN0cnVjdCBFbnRyeXBvaW50IHsKIHN0cnVjdCBJbnRlcm5hbEZ1bmN0
aW9uIHsKICAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CiAgICAgVmVjdG9yPENv
ZGVMb2NhdGlvbkRhdGFMYWJlbFB0cjxXYXNtRW50cnlQdHJUYWc+PiBjYWxsZWVNb3ZlTG9jYXRp
b25zOworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9CM0pJVCkKICAgICBTdGFja01hcHMgc3RhY2tt
YXBzOworI2VuZGlmCiAgICAgVmVjdG9yPFVubGlua2VkSGFuZGxlckluZm8+IGV4Y2VwdGlvbkhh
bmRsZXJzOwogICAgIEVudHJ5cG9pbnQgZW50cnlwb2ludDsKICAgICB1bnNpZ25lZCBvc3JFbnRy
eVNjcmF0Y2hCdWZmZXJTaXplIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21JbmRleE9yTmFtZS5jcHAKaW5kZXggNDEyMGFlNmE5NDk0Li5mYjIxYzkyYmY4MWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcApAQCAt
MzAsMTYgKzMwLDIzIEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKIEluZGV4
T3JOYW1lOjpJbmRleE9yTmFtZShJbmRleCBpbmRleCwgc3RkOjpwYWlyPGNvbnN0IE5hbWUqLCBS
ZWZQdHI8TmFtZVNlY3Rpb24+PiYmIG5hbWUpCiB7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICBz
dGF0aWNfYXNzZXJ0KHNpemVvZihtX2luZGV4TmFtZS5pbmRleCkgPT0gc2l6ZW9mKG1faW5kZXhO
YW1lLm5hbWUpLCAiYml0LXRhZ2dpbmcgZGVwZW5kcyBvbiBzaXplcyBiZWluZyBlcXVhbCIpOwot
Ci0gICAgaWYgKChpbmRleCAmIGFsbFRhZ3MpIHx8IChiaXR3aXNlX2Nhc3Q8SW5kZXg+KG5hbWUu
Zmlyc3QpICYgYWxsVGFncykpCi0gICAgICAgICp0aGlzID0gSW5kZXhPck5hbWUoKTsKLSAgICBl
bHNlIHsKLSAgICAgICAgaWYgKG5hbWUuZmlyc3QpCi0gICAgICAgICAgICBtX2luZGV4TmFtZS5u
YW1lID0gbmFtZS5maXJzdDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9pbmRleE5hbWUu
aW5kZXggPSBpbmRleFRhZyB8IGluZGV4OworICAgIEFTU0VSVCghKGluZGV4ICYgYWxsVGFncykp
OworICAgIEFTU0VSVCghKGJpdHdpc2VfY2FzdDxJbmRleD4obmFtZS5maXJzdCkgJiBhbGxUYWdz
KSk7CisgICAgaWYgKG5hbWUuZmlyc3QpCisgICAgICAgIG1faW5kZXhOYW1lLm5hbWUgPSBuYW1l
LmZpcnN0OworICAgIGVsc2UKKyAgICAgICAgbV9pbmRleE5hbWUuaW5kZXggPSBpbmRleFRhZyB8
IGluZGV4OworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBpZiAobmFtZS5maXJzdCkgewor
ICAgICAgICBtX2luZGV4TmFtZS5uYW1lID0gbmFtZS5maXJzdDsKKyAgICAgICAgbV9raW5kID0g
S2luZDo6TmFtZTsKKyAgICB9IGVsc2UgeworICAgICAgICBtX2luZGV4TmFtZS5pbmRleCA9IGlu
ZGV4OworICAgICAgICBtX2tpbmQgPSBLaW5kOjpJbmRleDsKICAgICB9CisjZW5kaWYKICAgICBt
X25hbWVTZWN0aW9uID0gV1RGTW92ZShuYW1lLnNlY29uZCk7CiB9CiAKQEAgLTQ5LDggKzU2LDgg
QEAgU3RyaW5nIG1ha2VTdHJpbmcoY29uc3QgSW5kZXhPck5hbWUmIGlvbikKICAgICAgICAgcmV0
dXJuICJ3YXNtLXN0dWIiX3M7CiAgICAgY29uc3QgU3RyaW5nIG1vZHVsZU5hbWUgPSBpb24ubmFt
ZVNlY3Rpb24oKS0+bW9kdWxlTmFtZS5zaXplKCkgPyBTdHJpbmcoaW9uLm5hbWVTZWN0aW9uKCkt
Pm1vZHVsZU5hbWUuZGF0YSgpLCBpb24ubmFtZVNlY3Rpb24oKS0+bW9kdWxlTmFtZS5zaXplKCkp
IDogU3RyaW5nKGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1bGVIYXNoLmRhdGEoKSwgaW9uLm5hbWVT
ZWN0aW9uKCktPm1vZHVsZUhhc2guc2l6ZSgpKTsKICAgICBpZiAoaW9uLmlzSW5kZXgoKSkKLSAg
ICAgICAgcmV0dXJuIG1ha2VTdHJpbmcobW9kdWxlTmFtZSwgIi53YXNtLWZ1bmN0aW9uWyIsIFN0
cmluZzo6bnVtYmVyKGlvbi5tX2luZGV4TmFtZS5pbmRleCAmIH5JbmRleE9yTmFtZTo6aW5kZXhU
YWcpLCAnXScpOwotICAgIHJldHVybiBtYWtlU3RyaW5nKG1vZHVsZU5hbWUsICIud2FzbS1mdW5j
dGlvblsiLCBTdHJpbmcoaW9uLm1faW5kZXhOYW1lLm5hbWUtPmRhdGEoKSwgaW9uLm1faW5kZXhO
YW1lLm5hbWUtPnNpemUoKSksICddJyk7CisgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKG1vZHVs
ZU5hbWUsICIud2FzbS1mdW5jdGlvblsiLCBTdHJpbmc6Om51bWJlcihpb24uaW5kZXgoKSksICdd
Jyk7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcobW9kdWxlTmFtZSwgIi53YXNtLWZ1bmN0aW9uWyIs
IFN0cmluZyhpb24ubmFtZSgpLT5kYXRhKCksIGlvbi5uYW1lKCktPnNpemUoKSksICddJyk7CiB9
CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21JbmRleE9yTmFtZS5oCmluZGV4IDVlZWVmYzg4YWY3Ni4uMmQ5MDMwMTE4ZjhjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaApAQCAtNDAs
MTQgKzQwLDY3IEBAIHN0cnVjdCBOYW1lU2VjdGlvbjsKIHN0cnVjdCBJbmRleE9yTmFtZSB7CiAg
ICAgdHlwZWRlZiBzaXplX3QgSW5kZXg7CiAKLSAgICBJbmRleE9yTmFtZSgpIHsgbV9pbmRleE5h
bWUuaW5kZXggPSBlbXB0eVRhZzsgfQotICAgIEluZGV4T3JOYW1lKEluZGV4LCBzdGQ6OnBhaXI8
Y29uc3QgTmFtZSosIFJlZlB0cjxOYW1lU2VjdGlvbj4+JiYpOwotICAgIGJvb2wgaXNFbXB0eSgp
IGNvbnN0IHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxJbmRleD4obV9pbmRleE5hbWUpICYgZW1wdHlU
YWc7IH0KLSAgICBib29sIGlzSW5kZXgoKSBjb25zdCB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8SW5k
ZXg+KG1faW5kZXhOYW1lKSAmIGluZGV4VGFnOyB9Ci0gICAgYm9vbCBpc05hbWUoKSBjb25zdCB7
IHJldHVybiAhKGlzRW1wdHkoKSB8fCBpc05hbWUoKSk7IH0KLSAgICBOYW1lU2VjdGlvbiogbmFt
ZVNlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX25hbWVTZWN0aW9uLmdldCgpOyB9Citwcml2YXRl
OgorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgZW51bSBjbGFzcyBLaW5kIDogdWludDhfdCB7
CisgICAgICAgIEVtcHR5LAorICAgICAgICBJbmRleCwKKyAgICAgICAgTmFtZQorICAgIH07Cisj
ZW5kaWYKK3B1YmxpYzoKIAotICAgIGZyaWVuZCBTdHJpbmcgbWFrZVN0cmluZyhjb25zdCBJbmRl
eE9yTmFtZSYpOworICAgIEluZGV4T3JOYW1lKCkKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkK
KyAgICAgICAgbV9pbmRleE5hbWUuaW5kZXggPSBlbXB0eVRhZzsKKyNlbGlmIFVTRShKU1ZBTFVF
MzJfNjQpCisgICAgICAgIG1fa2luZCA9IEtpbmQ6OkVtcHR5OworI2VuZGlmCisgICAgfQorCisg
ICAgSW5kZXhPck5hbWUoSW5kZXgsIHN0ZDo6cGFpcjxjb25zdCBOYW1lKiwgUmVmUHRyPE5hbWVT
ZWN0aW9uPj4mJik7CisKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdAorICAgIHsKKyNpZiBVU0Uo
SlNWQUxVRTY0KQorICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PEluZGV4PihtX2luZGV4TmFt
ZSkgJiBlbXB0eVRhZzsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJldHVybiBt
X2tpbmQgPT0gS2luZDo6RW1wdHk7CisjZW5kaWYKKyAgICB9CisKKyAgICBib29sIGlzSW5kZXgo
KSBjb25zdAorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICByZXR1cm4gYml0d2lz
ZV9jYXN0PEluZGV4PihtX2luZGV4TmFtZSkgJiBpbmRleFRhZzsKKyNlbGlmIFVTRShKU1ZBTFVF
MzJfNjQpCisgICAgICAgIHJldHVybiBtX2tpbmQgPT0gS2luZDo6SW5kZXg7CisjZW5kaWYKKyAg
ICB9CisKKyAgICBib29sIGlzTmFtZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gIShp
c0VtcHR5KCkgfHwgaXNJbmRleCgpKTsKKyAgICB9CisKKyAgICBJbmRleCBpbmRleCgpIGNvbnN0
CisgICAgeworICAgICAgICBBU1NFUlQoaXNJbmRleCgpKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQor
ICAgICAgICByZXR1cm4gbV9pbmRleE5hbWUuaW5kZXggJiB+aW5kZXhUYWc7CisjZWxpZiBVU0Uo
SlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4gbV9pbmRleE5hbWUuaW5kZXg7CisjZW5kaWYK
KyAgICB9CisKKyAgICBjb25zdCBOYW1lKiBuYW1lKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFT
U0VSVChpc05hbWUoKSk7CisgICAgICAgIHJldHVybiBtX2luZGV4TmFtZS5uYW1lOworICAgIH0K
KworICAgIE5hbWVTZWN0aW9uKiBuYW1lU2VjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZVNl
Y3Rpb24uZ2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICB1bmlvbiB7CkBAIC01NiwxMCArMTA5LDE1
IEBAIHByaXZhdGU6CiAgICAgfSBtX2luZGV4TmFtZTsKICAgICBSZWZQdHI8TmFtZVNlY3Rpb24+
IG1fbmFtZVNlY3Rpb247CiAKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgIC8vIFVzZSB0aGUgdG9w
IGJpdHMgYXMgdGFncy4gTmVpdGhlciBwb2ludGVycyBub3IgdGhlIGZ1bmN0aW9uIGluZGV4IHNw
YWNlIHNob3VsZCB1c2UgdGhlbS4KICAgICBzdGF0aWMgY29uc3RleHByIEluZGV4IGluZGV4VGFn
ID0gMXVsbCA8PCAoQ0hBUl9CSVQgKiBzaXplb2YoSW5kZXgpIC0gMSk7CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBJbmRleCBlbXB0eVRhZyA9IDF1bGwgPDwgKENIQVJfQklUICogc2l6ZW9mKEluZGV4
KSAtIDIpOwogICAgIHN0YXRpYyBjb25zdGV4cHIgSW5kZXggYWxsVGFncyA9IGluZGV4VGFnIHwg
ZW1wdHlUYWc7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIC8vIFVzZSBhbiBleHBsaWNp
dCB0YWcgYXMgcG9pbnRlcnMgbWlnaHQgaGF2ZSBoaWdoIGJpdHMgc2V0CisgICAgS2luZCBtX2tp
bmQ7CisjZW5kaWYKIH07CiAKIFN0cmluZyBtYWtlU3RyaW5nKGNvbnN0IEluZGV4T3JOYW1lJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5oCmluZGV4IGU2ZGIzYTNh
MDhjNC4uYzk0NDJjZmY3MmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtSW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5z
dGFuY2UuaApAQCAtMTA2LDggKzEwNiw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUNhY2hl
ZE1lbW9yeSgpCiAgICAgewogICAgICAgICBpZiAobV9tZW1vcnkgIT0gbnVsbHB0cikgewotICAg
ICAgICAgICAgbV9jYWNoZWRNZW1vcnkgPSBDYWdlZFB0cjxHaWdhY2FnZTo6UHJpbWl0aXZlLCB2
b2lkLCB0YWdDYWdlZFB0cj4obWVtb3J5KCktPm1lbW9yeSgpLCBtZW1vcnkoKS0+Ym91bmRzQ2hl
Y2tpbmdTaXplKCkpOwotICAgICAgICAgICAgbV9jYWNoZWRCb3VuZHNDaGVja2luZ1NpemUgPSBt
ZW1vcnkoKS0+Ym91bmRzQ2hlY2tpbmdTaXplKCk7CisgICAgICAgICAgICBtX2NhY2hlZE1lbW9y
eSA9IENhZ2VkUHRyPEdpZ2FjYWdlOjpQcmltaXRpdmUsIHZvaWQsIHRhZ0NhZ2VkUHRyPihtZW1v
cnkoKS0+bWVtb3J5KCksIG1lbW9yeSgpLT5tYXBwZWRDYXBhY2l0eSgpKTsKKyAgICAgICAgICAg
IC8vIFRoaXMgaXMgdXNlZCBieSB0aGUgbm9uLXNpZ25hbGluZyBiYXNlZCBib3VuZCBjaGVja2lu
Zywgc28gdXNlIHRoZSBhY3R1YWwgc2l6ZSBvZiB0aGUgbWVtb3J5LgorICAgICAgICAgICAgbV9j
YWNoZWRCb3VuZHNDaGVja2luZ1NpemUgPSBtZW1vcnkoKS0+c2l6ZSgpOwogICAgICAgICAgICAg
QVNTRVJUKG1lbW9yeSgpLT5tZW1vcnkoKSA9PSBjYWNoZWRNZW1vcnkoKSk7CiAgICAgICAgIH0K
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRH
ZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJh
dG9yLmNwcAppbmRleCBkMzczZmFlZTgxNjguLjVjMmIwMGVhNjQ2OSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwCkBAIC0zNDEsNyAr
MzQxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybiBtX25vcm1hbGl6ZWRBcmd1bWVu
dHNbaW5kZXhdOwogCiAgICAgICAgIGNvbnN0IGF1dG8mIGNhbGxpbmdDb252ZW50aW9uID0gd2Fz
bUNhbGxpbmdDb252ZW50aW9uKCk7Ci0gICAgICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0g
Y2FsbGluZ0NvbnZlbnRpb24uZ3ByQXJncy5zaXplKCk7CisgICAgICAgIGNvbnN0IHVpbnQzMl90
IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uanNyQXJncy5zaXplKCk7CiAgICAgICAgIGNv
bnN0IHVpbnQzMl90IGZwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZnByQXJncy5zaXplKCk7
CiAgICAgICAgIHJldHVybiB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChpbmRleCAtIG1fY29kZUJs
b2NrLT5tX251bUFyZ3VtZW50cyArIGdwckNvdW50ICsgZnByQ291bnQgKyBudW1iZXJPZkxMSW50
Q2FsbGVlU2F2ZVJlZ2lzdGVycyk7CiAgICAgfQpAQCAtNTk1LDcgKzU5NSw3IEBAIGF1dG8gTExJ
bnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvckNhbGxlcihjb25zdCBGdW5jdGlvblNpZ25h
dHVyZSYgc2lnbmF0dXJlCiAgICAgY29uc3QgYXV0byBpbml0aWFsU3RhY2tTaXplID0gbV9zdGFj
a1NpemU7CiAKICAgICBjb25zdCBhdXRvJiBjYWxsaW5nQ29udmVudGlvbiA9IHdhc21DYWxsaW5n
Q29udmVudGlvbigpOwotICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZl
bnRpb24uZ3ByQXJncy5zaXplKCk7CisgICAgY29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxs
aW5nQ29udmVudGlvbi5qc3JBcmdzLnNpemUoKTsKICAgICBjb25zdCB1aW50MzJfdCBmcHJDb3Vu
dCA9IGNhbGxpbmdDb252ZW50aW9uLmZwckFyZ3Muc2l6ZSgpOwogCiAgICAgdWludDMyX3Qgc3Rh
Y2tDb3VudCA9IDA7CkBAIC03NDMsNyArNzQzLDcgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6Y2Fs
bEluZm9ybWF0aW9uRm9yQ2FsbGVlKGNvbnN0IEZ1bmN0aW9uU2lnbmF0dXJlJiBzaWduYXR1cmUK
ICAgICBtX3Jlc3VsdHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShzaWduYXR1cmUucmV0dXJuQ291
bnQoKSk7CiAKICAgICBjb25zdCBhdXRvJiBjYWxsaW5nQ29udmVudGlvbiA9IHdhc21DYWxsaW5n
Q29udmVudGlvbigpOwotICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZl
bnRpb24uZ3ByQXJncy5zaXplKCk7CisgICAgY29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxs
aW5nQ29udmVudGlvbi5qc3JBcmdzLnNpemUoKTsKICAgICBjb25zdCB1aW50MzJfdCBmcHJDb3Vu
dCA9IGNhbGxpbmdDb252ZW50aW9uLmZwckFyZ3Muc2l6ZSgpOwogCiAgICAgdWludDMyX3QgZ3By
SW5kZXggPSAwOwpAQCAtNzkxLDcgKzc5MSw3IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmFkZEFy
Z3VtZW50cyhjb25zdCBUeXBlRGVmaW5pdGlvbiYgc2lnbmF0dXJlKSAtPiBQYXJ0aWFsUmVzCiAg
ICAgbV9ub3JtYWxpemVkQXJndW1lbnRzLnJlc2l6ZShtX2NvZGVCbG9jay0+bV9udW1Bcmd1bWVu
dHMpOwogCiAgICAgY29uc3QgYXV0byYgY2FsbGluZ0NvbnZlbnRpb24gPSB3YXNtQ2FsbGluZ0Nv
bnZlbnRpb24oKTsKLSAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50
aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGlu
Z0NvbnZlbnRpb24uanNyQXJncy5zaXplKCk7CiAgICAgY29uc3QgdWludDMyX3QgZnByQ291bnQg
PSBjYWxsaW5nQ29udmVudGlvbi5mcHJBcmdzLnNpemUoKTsKICAgICBjb25zdCB1aW50MzJfdCBt
YXhHUFJJbmRleCA9IGdwckNvdW50OwogICAgIGNvbnN0IHVpbnQzMl90IG1heEZQUkluZGV4ID0g
Z3ByQ291bnQgKyBmcHJDb3VudDsKQEAgLTk3NCw3ICs5NzQsNyBAQCBhdXRvIExMSW50R2VuZXJh
dG9yOjphZGRMb29wKEJsb2NrU2lnbmF0dXJlIHNpZ25hdHVyZSwgU3RhY2smIGVuY2xvc2luZ1N0
YWNrLCBDbwogICAgICAgICBvc3JFbnRyeURhdGEuYXBwZW5kKG1fbm9ybWFsaXplZEFyZ3VtZW50
c1tpXSk7CiAKICAgICBjb25zdCBhdXRvJiBjYWxsaW5nQ29udmVudGlvbiA9IHdhc21DYWxsaW5n
Q29udmVudGlvbigpOwotICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZl
bnRpb24uZ3ByQXJncy5zaXplKCk7CisgICAgY29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxs
aW5nQ29udmVudGlvbi5qc3JBcmdzLnNpemUoKTsKICAgICBjb25zdCB1aW50MzJfdCBmcHJDb3Vu
dCA9IGNhbGxpbmdDb252ZW50aW9uLmZwckFyZ3Muc2l6ZSgpOwogICAgIGZvciAodWludDMyX3Qg
aSA9IGdwckNvdW50ICsgZnByQ291bnQgKyBudW1iZXJPZkxMSW50Q2FsbGVlU2F2ZVJlZ2lzdGVy
czsgaSA8IG1fY29kZUJsb2NrLT5tX251bVZhcnM7IGkrKykKICAgICAgICAgb3NyRW50cnlEYXRh
LmFwcGVuZCh2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3BwCmluZGV4IDhiNDM2ZDJkY2Y1Ni4uZTM0ZjQ0Y2Fj
YWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFu
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcApA
QCAtMTE5LDEyICsxMTksMTUgQEAgdm9pZCBMTEludFBsYW46OmRpZENvbXBsZXRlQ29tcGlsYXRp
b24oKQogICAgICAgICAgICAgZW50cnlwb2ludHNbaV0gPSBqaXQubGFiZWwoKTsKICNpZiBDUFUo
WDg2XzY0KQogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGNhbGxlZVNsb3QoQ0Nh
bGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlICog
c3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSAtIHNpemVvZihDUFVSZWdpc3Rlcikp
OwotI2VsaWYgQ1BVKEFSTTY0KSB8fCBDUFUoUklTQ1Y2NCkKKyNlbGlmIENQVShBUk02NCkgfHwg
Q1BVKFJJU0NWNjQpIHx8IENQVShBUk0pCiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MgY2FsbGVlU2xvdChDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBDYWxsRnJh
bWVTbG90OjpjYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpIC0gc2l6
ZW9mKENhbGxlckZyYW1lQW5kUEMpKTsKICNlbHNlCiAjZXJyb3IgVW5zdXBwb3J0ZWQgYXJjaGl0
ZWN0dXJlLgogI2VuZGlmCi0gICAgICAgICAgICBqaXQuc3RvcmVQdHIoQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tUHRyKENhbGxlZUJpdHM6OmJveFdhc20obV9jYWxsZWVzVmVjdG9yW2ldLnB0cigp
KSksIGNhbGxlZVNsb3QpOworICAgICAgICAgICAgaml0LnN0b3JlUHRyKENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbVB0cihDYWxsZWVCaXRzOjpib3hXYXNtKG1fY2FsbGVlc1ZlY3RvcltpXS5wdHIo
KSkpLCBjYWxsZWVTbG90LndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOworI2lmIFVTRShKU1ZB
TFVFMzJfNjQpCisgICAgICAgICAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW0zMihKU1ZhbHVlOjpXYXNtVGFnKSwgY2FsbGVlU2xvdC53aXRoT2Zmc2V0KFRhZ09mZnNldCkp
OworI2VuZGlmCiAgICAgICAgICAgICBqdW1wc1tpXSA9IGppdC5qdW1wKCk7CiAgICAgICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcAppbmRleCA0NDA3NTk1
MmYwMDcuLmUzZTljMGEwNjRlOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbU1lbW9yeS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1l
bW9yeS5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKICNp
bmNsdWRlIDxjc3RyaW5nPgorI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxtdXRleD4KIAog
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKQEAgLTk4LDExICs5OSw5IEBAIGNsYXNz
IE1lbW9yeU1hbmFnZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKE1lbW9yeU1hbmFnZXIpOwogcHVibGljOgotICAgIE1lbW9yeU1hbmFn
ZXIoKQotICAgICAgICA6IG1fbWF4RmFzdE1lbW9yeUNvdW50KE9wdGlvbnM6Om1heE51bVdlYkFz
c2VtYmx5RmFzdE1lbW9yaWVzKCkpCi0gICAgewotICAgIH0KLSAgICAKKyAgICBNZW1vcnlNYW5h
Z2VyKCkgPSBkZWZhdWx0OworCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1P
UlkpCiAgICAgTWVtb3J5UmVzdWx0IHRyeUFsbG9jYXRlRmFzdE1lbW9yeSgpCiAgICAgewogICAg
ICAgICBNZW1vcnlSZXN1bHQgcmVzdWx0ID0gWyZdIHsKQEAgLTEyNSw3ICsxMjQsNyBAQCBwdWJs
aWM6CiAgICAgICAgIAogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KLSAgICAKKwogICAg
IHZvaWQgZnJlZUZhc3RNZW1vcnkodm9pZCogYmFzZVB0cikKICAgICB7CiAgICAgICAgIHsKQEAg
LTEzNiw2ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgICAgIAogICAgICAgICBkYXRhTG9nTG5JZihP
cHRpb25zOjpsb2dXZWJBc3NlbWJseU1lbW9yeSgpLCAiRnJlZWQgdmlydHVhbDsgc3RhdGU6ICIs
ICp0aGlzKTsKICAgICB9CisjZW5kaWYKIAogICAgIE1lbW9yeVJlc3VsdCB0cnlBbGxvY2F0ZUdy
b3dhYmxlQm91bmRzQ2hlY2tpbmdNZW1vcnkoc2l6ZV90IG1hcHBlZENhcGFjaXR5KQogICAgIHsK
QEAgLTE3MCwxMSArMTcwLDEzIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIC8vIE5PVEU6IFRo
aXMgY2FuIGJlIGNhbGxlZCBmcm9tIGEgc2lnbmFsIGhhbmRsZXIsIGJ1dCBvbmx5IGFmdGVyIHdl
IHByb3ZlZCB0aGF0IHdlJ3JlIGluIEpJVCBjb2RlIG9yIFdhc21MTEludCBjb2RlLgogICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05B
TElOR19NRU1PUlkpCiAgICAgICAgIGZvciAodm9pZCogbWVtb3J5IDogbV9mYXN0TWVtb3JpZXMp
IHsKICAgICAgICAgICAgIGNoYXIqIHN0YXJ0ID0gc3RhdGljX2Nhc3Q8Y2hhcio+KG1lbW9yeSk7
CiAgICAgICAgICAgICBpZiAoc3RhcnQgPD0gYWRkcmVzcyAmJiBhZGRyZXNzIDw9IHN0YXJ0ICsg
TWVtb3J5OjpmYXN0TWFwcGVkQnl0ZXMoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIHVpbnRwdHJfdCBhZGRyZXNzVmFsdWUgPSBiaXR3
aXNlX2Nhc3Q8dWludHB0cl90PihhZGRyZXNzKTsKICAgICAgICAgYXV0byBpdGVyYXRvciA9IHN0
ZDo6dXBwZXJfYm91bmQobV9ncm93YWJsZUJvdW5kc0NoZWNraW5nTWVtb3JpZXMuYmVnaW4oKSwg
bV9ncm93YWJsZUJvdW5kc0NoZWNraW5nTWVtb3JpZXMuZW5kKCksIHN0ZDo6bWFrZV9wYWlyKGFk
ZHJlc3NWYWx1ZSwgMCksCiAgICAgICAgICAgICBbXShzdGQ6OnBhaXI8dWludHB0cl90LCBzaXpl
X3Q+IGEsIHN0ZDo6cGFpcjx1aW50cHRyX3QsIHNpemVfdD4gYikgewpAQCAtMTkxLDcgKzE5Mywx
MiBAQCBwdWJsaWM6CiAgICAgLy8gV2UgYWxsb3cgcGVvcGxlIHRvICJjb21taXQiIG1vcmUgd2Fz
bSBtZW1vcnkgdGhhbiB0aGVyZSBpcyBvbiB0aGUgc3lzdGVtIHNpbmNlIG1vc3Qgb2YgdGhlIHRp
bWUKICAgICAvLyBwZW9wbGUgZG9uJ3QgYWN0dWFsbHkgd3JpdGUgdG8gbW9zdCBvZiB0aGF0IG1l
bW9yeS4gVGhlcmUgaXMgc29tZSBjaGFuY2UgdGhhdCB0aGlzIGdldHMgdXMKICAgICAvLyBKZXRT
YW1tZWQgYnV0IHRoYXQncyBwb3NzaWJsZSBhbnl3YXkuCi0gICAgaW5saW5lIHNpemVfdCBtZW1v
cnlMaW1pdCgpIGNvbnN0IHsgcmV0dXJuIHJhbVNpemUoKSAqIDM7IH0KKyAgICBpbmxpbmUgc2l6
ZV90IG1lbW9yeUxpbWl0KCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmIChwcm9kdWN0T3ZlcmZs
b3dzPHNpemVfdD4ocmFtU2l6ZSgpLCAgMykpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudW1l
cmljX2xpbWl0czxzaXplX3Q+OjptYXgoKTsKKyAgICAgICAgcmV0dXJuIHJhbVNpemUoKSAqIDM7
CisgICAgfQogCiAgICAgLy8gRklYTUU6IElkZWFsbHksIGJtYWxsb2Mgd291bGQgaGF2ZSB0aGlz
IGtpbmQgb2YgbWVjaGFuaXNtLiBUaGVuLCB3ZSB3b3VsZCBqdXN0IGZvcndhcmQgdG8gdGhhdAog
ICAgIC8vIG1lY2hhbmlzbSBoZXJlLgpAQCAtMjI3LDEzICsyMzQsMTkgQEAgcHVibGljOgogICAg
IAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgIHsKKyNpZiBFTkFC
TEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICAgICAgb3V0LnByaW50KCJmYXN0
IG1lbW9yaWVzID0gICIsIG1fZmFzdE1lbW9yaWVzLnNpemUoKSwgIi8iLCBtX21heEZhc3RNZW1v
cnlDb3VudCwgIiwgYnl0ZXMgPSAiLCBtX3BoeXNpY2FsQnl0ZXMsICIvIiwgbWVtb3J5TGltaXQo
KSk7CisjZWxzZQorICAgICAgICBvdXQucHJpbnQoImZhc3QgbWVtb3JpZXMgPSBOLkEuLCBieXRl
cyA9ICIsIG1fcGh5c2ljYWxCeXRlcywgIi8iLCBtZW1vcnlMaW1pdCgpKTsKKyNlbmRpZgogICAg
IH0KICAgICAKIHByaXZhdGU6CiAgICAgTG9jayBtX2xvY2s7Ci0gICAgdW5zaWduZWQgbV9tYXhG
YXN0TWVtb3J5Q291bnQgeyAwIH07CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19N
RU1PUlkpCisgICAgdW5zaWduZWQgbV9tYXhGYXN0TWVtb3J5Q291bnQgeyBPcHRpb25zOjptYXhO
dW1XZWJBc3NlbWJseUZhc3RNZW1vcmllcygpIH07CiAgICAgVmVjdG9yPHZvaWQqPiBtX2Zhc3RN
ZW1vcmllczsKKyNlbmRpZgogICAgIFN0ZFNldDxzdGQ6OnBhaXI8dWludHB0cl90LCBzaXplX3Q+
PiBtX2dyb3dhYmxlQm91bmRzQ2hlY2tpbmdNZW1vcmllczsKICAgICBzaXplX3QgbV9waHlzaWNh
bEJ5dGVzIHsgMCB9OwogfTsKQEAgLTMwMCw2ICszMTMsNyBAQCBNZW1vcnlIYW5kbGU6On5NZW1v
cnlIYW5kbGUoKQogICAgICAgICB2b2lkKiBtZW1vcnkgPSB0aGlzLT5tZW1vcnkoKTsKICAgICAg
ICAgbWVtb3J5TWFuYWdlcigpLmZyZWVQaHlzaWNhbEJ5dGVzKG1fc2l6ZSk7CiAgICAgICAgIHN3
aXRjaCAobV9tb2RlKSB7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkp
CiAgICAgICAgIGNhc2UgTWVtb3J5TW9kZTo6U2lnbmFsaW5nOgogICAgICAgICAgICAgaWYgKG1w
cm90ZWN0KG1lbW9yeSwgTWVtb3J5OjpmYXN0TWFwcGVkQnl0ZXMoKSwgUFJPVF9SRUFEIHwgUFJP
VF9XUklURSkpIHsKICAgICAgICAgICAgICAgICBkYXRhTG9nKCJtcHJvdGVjdCBmYWlsZWQ6ICIs
IHNhZmVTdHJlcnJvcihlcnJubykuZGF0YSgpLCAiXG4iKTsKQEAgLTMwNyw2ICszMjEsNyBAQCBN
ZW1vcnlIYW5kbGU6On5NZW1vcnlIYW5kbGUoKQogICAgICAgICAgICAgfQogICAgICAgICAgICAg
bWVtb3J5TWFuYWdlcigpLmZyZWVGYXN0TWVtb3J5KG1lbW9yeSk7CiAgICAgICAgICAgICBicmVh
azsKKyNlbmRpZgogICAgICAgICBjYXNlIE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nOiB7CiAg
ICAgICAgICAgICBzd2l0Y2ggKG1fc2hhcmluZ01vZGUpIHsKICAgICAgICAgICAgIGNhc2UgTWVt
b3J5U2hhcmluZ01vZGU6OkRlZmF1bHQ6CkBAIC0zOTUsNiArNDEwLDcgQEAgUmVmUHRyPE1lbW9y
eT4gTWVtb3J5Ojp0cnlDcmVhdGUoUGFnZUNvdW50IGluaXRpYWwsIFBhZ2VDb3VudCBtYXhpbXVt
LCBNZW1vcnlTaGEKICAgICBpZiAoIWRvbmUpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
ICAgICAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBjaGFy
KiBmYXN0TWVtb3J5ID0gbnVsbHB0cjsKICAgICBpZiAoT3B0aW9uczo6dXNlV2ViQXNzZW1ibHlG
YXN0TWVtb3J5KCkpIHsKICAgICAgICAgdHJ5QWxsb2NhdGUoCkBAIC00MTMsNyArNDI5LDggQEAg
UmVmUHRyPE1lbW9yeT4gTWVtb3J5Ojp0cnlDcmVhdGUoUGFnZUNvdW50IGluaXRpYWwsIFBhZ2VD
b3VudCBtYXhpbXVtLCBNZW1vcnlTaGEKIAogICAgICAgICByZXR1cm4gTWVtb3J5OjpjcmVhdGUo
YWRvcHRSZWYoKm5ldyBNZW1vcnlIYW5kbGUoZmFzdE1lbW9yeSwgaW5pdGlhbEJ5dGVzLCBNZW1v
cnk6OmZhc3RNYXBwZWRCeXRlcygpLCBpbml0aWFsLCBtYXhpbXVtLCBzaGFyaW5nTW9kZSwgTWVt
b3J5TW9kZTo6U2lnbmFsaW5nKSksIFdURk1vdmUobm90aWZ5TWVtb3J5UHJlc3N1cmUpLCBXVEZN
b3ZlKHN5bmNUcnlUb1JlY2xhaW1NZW1vcnkpLCBXVEZNb3ZlKGdyb3dTdWNjZXNzQ2FsbGJhY2sp
KTsKICAgICB9Ci0gICAgCisjZW5kaWYKKwogICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjpjcmFz
aElmV2ViQXNzZW1ibHlDYW50RmFzdE1lbW9yeSgpKSkKICAgICAgICAgd2ViQXNzZW1ibHlDb3Vs
ZG50R2V0RmFzdE1lbW9yeSgpOwogCkBAIC00NTYsNiArNDczLDcgQEAgUmVmUHRyPE1lbW9yeT4g
TWVtb3J5Ojp0cnlDcmVhdGUoUGFnZUNvdW50IGluaXRpYWwsIFBhZ2VDb3VudCBtYXhpbXVtLCBN
ZW1vcnlTaGEKIAogTWVtb3J5Ojp+TWVtb3J5KCkgPSBkZWZhdWx0OwogCisjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiBzaXplX3QgTWVtb3J5OjpmYXN0TWFwcGVkUmVk
em9uZUJ5dGVzKCkKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8c2l6ZV90PihQYWdlQ291bnQ6
OnBhZ2VTaXplKSAqIE9wdGlvbnM6OndlYkFzc2VtYmx5RmFzdE1lbW9yeVJlZHpvbmVQYWdlcygp
OwpAQCAtNDY2LDYgKzQ4NCw3IEBAIHNpemVfdCBNZW1vcnk6OmZhc3RNYXBwZWRCeXRlcygpCiAg
ICAgc3RhdGljX2Fzc2VydChzaXplb2YodWludDY0X3QpID09IHNpemVvZihzaXplX3QpLCAiV2Ug
cmVseSBvbiBhbGxvd2luZyB0aGUgbWF4aW11bSBzaXplIG9mIE1lbW9yeSB3ZSBtYXAgdG8gYmUg
Ml4zMiArIHJlZHpvbmUgd2hpY2ggaXMgbGFyZ2VyIHRoYW4gZml0cyBpbiBhIDMyLWJpdCBpbnRl
Z2VyIHRoYXQgd2UnZCBwYXNzIHRvIG1wcm90ZWN0IGlmIHRoaXMgZGlkbid0IGhvbGQuIik7CiAg
ICAgcmV0dXJuIChzdGF0aWNfY2FzdDxzaXplX3Q+KDEpIDw8IDMyKSArIGZhc3RNYXBwZWRSZWR6
b25lQnl0ZXMoKTsKIH0KKyNlbmRpZgogCiBib29sIE1lbW9yeTo6YWRkcmVzc0lzSW5Hcm93YWJs
ZU9yRmFzdE1lbW9yeSh2b2lkKiBhZGRyZXNzKQogewpAQCAtNTI0LDggKzU0MywxNCBAQCBFeHBl
Y3RlZDxQYWdlQ291bnQsIE1lbW9yeTo6R3Jvd0ZhaWxSZWFzb24+IE1lbW9yeTo6Z3Jvd1NoYXJl
ZChQYWdlQ291bnQgZGVsdGEpCiAgICAgICAgIG1faGFuZGxlLT5ncm93VG9TaXplKGRlc2lyZWRT
aXplKTsKICAgICAgICAgcmV0dXJuIG9sZFBhZ2VDb3VudDsKICAgICB9KCkpOwotICAgIGlmIChy
ZXN1bHQpCisgICAgaWYgKHJlc3VsdCkgewogICAgICAgICBtX2dyb3dTdWNjZXNzQ2FsbGJhY2so
R3Jvd1N1Y2Nlc3NUYWcsIG9sZFBhZ2VDb3VudCwgbmV3UGFnZUNvdW50KTsKKyAgICAgICAgLy8g
VXBkYXRlIGNhY2hlIGZvciBpbnN0YW5jZQorICAgICAgICBmb3IgKGF1dG8mIGluc3RhbmNlIDog
bV9pbnN0YW5jZXMpIHsKKyAgICAgICAgICAgIGlmIChpbnN0YW5jZS5nZXQoKSAhPSBudWxscHRy
KQorICAgICAgICAgICAgICAgIGluc3RhbmNlLmdldCgpLT51cGRhdGVDYWNoZWRNZW1vcnkoKTsK
KyAgICAgICAgfQorICAgIH0KICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC01ODgsNiArNjEz
LDcgQEAgRXhwZWN0ZWQ8UGFnZUNvdW50LCBNZW1vcnk6Okdyb3dGYWlsUmVhc29uPiBNZW1vcnk6
Omdyb3coUGFnZUNvdW50IGRlbHRhKQogICAgICAgICBBU1NFUlQobWVtb3J5KCkgPT0gbmV3TWVt
b3J5KTsKICAgICAgICAgcmV0dXJuIHN1Y2Nlc3MoKTsKICAgICB9CisjaWYgRU5BQkxFKFdFQkFT
U0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgY2FzZSBNZW1vcnlNb2RlOjpTaWduYWxpbmc6
IHsKICAgICAgICAgc2l6ZV90IGV4dHJhQnl0ZXMgPSBkZXNpcmVkU2l6ZSAtIHNpemUoKTsKICAg
ICAgICAgUkVMRUFTRV9BU1NFUlQoZXh0cmFCeXRlcyk7CkBAIC02MTMsNiArNjM5LDcgQEAgRXhw
ZWN0ZWQ8UGFnZUNvdW50LCBNZW1vcnk6Okdyb3dGYWlsUmVhc29uPiBNZW1vcnk6Omdyb3coUGFn
ZUNvdW50IGRlbHRhKQogICAgICAgICBtX2hhbmRsZS0+Z3Jvd1RvU2l6ZShkZXNpcmVkU2l6ZSk7
CiAgICAgICAgIHJldHVybiBzdWNjZXNzKCk7CiAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTY0Niw3ICs2NzMsOCBAQCBib29sIE1l
bW9yeTo6Y29weSh1aW50MzJfdCBkc3RBZGRyZXNzLCB1aW50MzJfdCBzcmNBZGRyZXNzLCB1aW50
MzJfdCBjb3VudCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICB1aW50OF90KiBiYXNlID0g
cmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4obWVtb3J5KCkpOwotICAgIG1lbWNweShiYXNlICsg
ZHN0QWRkcmVzcywgYmFzZSArIHNyY0FkZHJlc3MsIGNvdW50KTsKKyAgICAvLyBTb3VyY2UgYW5k
IGRlc3RpbmF0aW9uIGFyZWFzIG1pZ2h0IG92ZXJsYXAsIHNvIHVzaW5nIG1lbW1vdmUuCisgICAg
bWVtbW92ZShiYXNlICsgZHN0QWRkcmVzcywgYmFzZSArIHNyY0FkZHJlc3MsIGNvdW50KTsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbU1lbW9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5o
CmluZGV4IGY1YzU4ZmNmOTZmMi4uOTI3OTYzYjkyNGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU1lbW9yeS5oCkBAIC02MSw3ICs2MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkKiBt
ZW1vcnkoKSBjb25zdDsKICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsg
fQogICAgIHNpemVfdCBtYXBwZWRDYXBhY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1fbWFwcGVkQ2Fw
YWNpdHk7IH0KLSAgICBzaXplX3QgYm91bmRzQ2hlY2tpbmdTaXplKCkgY29uc3QgeyByZXR1cm4g
bV9tYXBwZWRDYXBhY2l0eTsgfQogICAgIFBhZ2VDb3VudCBpbml0aWFsKCkgY29uc3QgeyByZXR1
cm4gbV9pbml0aWFsOyB9CiAgICAgUGFnZUNvdW50IG1heGltdW0oKSBjb25zdCB7IHJldHVybiBt
X21heGltdW07IH0KICAgICBNZW1vcnlTaGFyaW5nTW9kZSBzaGFyaW5nTW9kZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc2hhcmluZ01vZGU7IH0KQEAgLTEwNiwxNCArMTA1LDE2IEBAIHB1YmxpYzoKIAog
ICAgIEpTX0VYUE9SVF9QUklWQVRFIH5NZW1vcnkoKTsKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJM
WV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIHN0YXRpYyBzaXplX3QgZmFzdE1hcHBlZFJlZHpvbmVC
eXRlcygpOwogICAgIHN0YXRpYyBzaXplX3QgZmFzdE1hcHBlZEJ5dGVzKCk7IC8vIEluY2x1ZGVz
IHJlZHpvbmUuCisjZW5kaWYKICAgICBzdGF0aWMgYm9vbCBhZGRyZXNzSXNJbkdyb3dhYmxlT3JG
YXN0TWVtb3J5KHZvaWQqKTsKIAogICAgIHZvaWQqIG1lbW9yeSgpIGNvbnN0IHsgcmV0dXJuIG1f
aGFuZGxlLT5tZW1vcnkoKTsgfQogICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9o
YW5kbGUtPnNpemUoKTsgfQogICAgIFBhZ2VDb3VudCBzaXplSW5QYWdlcygpIGNvbnN0IHsgcmV0
dXJuIFBhZ2VDb3VudDo6ZnJvbUJ5dGVzKHNpemUoKSk7IH0KLSAgICBzaXplX3QgYm91bmRzQ2hl
Y2tpbmdTaXplKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGUtPmJvdW5kc0NoZWNraW5nU2l6ZSgp
OyB9CisgICAgc2l6ZV90IG1hcHBlZENhcGFjaXR5KCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGUt
Pm1hcHBlZENhcGFjaXR5KCk7IH0KICAgICBQYWdlQ291bnQgaW5pdGlhbCgpIGNvbnN0IHsgcmV0
dXJuIG1faGFuZGxlLT5pbml0aWFsKCk7IH0KICAgICBQYWdlQ291bnQgbWF4aW11bSgpIGNvbnN0
IHsgcmV0dXJuIG1faGFuZGxlLT5tYXhpbXVtKCk7IH0KICAgICBNZW1vcnlIYW5kbGUmIGhhbmRs
ZSgpIHsgcmV0dXJuIG1faGFuZGxlLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmNwcAppbmRleCAyNjUyZGU3MmVkNTYu
LjYwZmFkNjNlZjBlMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU1lbW9yeUluZm9ybWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwCkBAIC00MSw4ICs0MSwxNSBAQCBjb25zdCBQaW5uZWRS
ZWdpc3RlckluZm8mIFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCkKICAgICAgICAgdW5zaWduZWQg
bnVtYmVyT2ZQaW5uZWRSZWdpc3RlcnMgPSAyOwogICAgICAgICBpZiAoIUNvbnRleHQ6OnVzZUZh
c3RUTFMoKSkKICAgICAgICAgICAgICsrbnVtYmVyT2ZQaW5uZWRSZWdpc3RlcnM7CisjaWYgQ1BV
KFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQogICAgICAgICBHUFJSZWcgYmFzZU1lbW9yeVBvaW50ZXIg
PSBHUFJJbmZvOjpyZWdDUzM7CiAgICAgICAgIEdQUlJlZyBib3VuZHNDaGVja2luZ1NpemVSZWdp
c3RlciA9IEdQUkluZm86OnJlZ0NTNDsKKyNlbGlmIENQVShBUk0pCisgICAgICAgIC8vIE5vdCBl
bm91Z2ggcmVnaXN0ZXJzLiByZWdDUzAgaXMgdGhlIHdhc20gaW5zdGFuY2UsIHJlZ0NTMSBpcyBM
TEludCBQQgorICAgICAgICBudW1iZXJPZlBpbm5lZFJlZ2lzdGVycyAtPSAyOworICAgICAgICBH
UFJSZWcgYmFzZU1lbW9yeVBvaW50ZXIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICBHUFJSZWcg
Ym91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIgPSBJbnZhbGlkR1BSUmVnOworI2VuZGlmCiAgICAg
ICAgIEdQUlJlZyB3YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlciA9IEludmFsaWRHUFJSZWc7CiAg
ICAgICAgIGlmICghQ29udGV4dDo6dXNlRmFzdFRMUygpKQogICAgICAgICAgICAgd2FzbUNvbnRl
eHRJbnN0YW5jZVBvaW50ZXIgPSBHUFJJbmZvOjpyZWdDUzA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5oCmluZGV4IDg1NGZiYTU0ZTMz
Ny4uMjlmY2JkYjZkNDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtTWVtb3J5SW5mb3JtYXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtTWVtb3J5SW5mb3JtYXRpb24uaApAQCAtNTIsMTAgKzUyLDExIEBAIHB1YmxpYzoKICAgICBS
ZWdpc3RlclNldCB0b1NhdmUoTWVtb3J5TW9kZSBtb2RlKSBjb25zdAogICAgIHsKICAgICAgICAg
UmVnaXN0ZXJTZXQgcmVzdWx0OwotICAgICAgICByZXN1bHQuc2V0KGJhc2VNZW1vcnlQb2ludGVy
KTsKKyAgICAgICAgaWYgKGJhc2VNZW1vcnlQb2ludGVyICE9IEludmFsaWRHUFJSZWcpCisgICAg
ICAgICAgICByZXN1bHQuc2V0KGJhc2VNZW1vcnlQb2ludGVyKTsKICAgICAgICAgaWYgKHdhc21D
b250ZXh0SW5zdGFuY2VQb2ludGVyICE9IEludmFsaWRHUFJSZWcpCiAgICAgICAgICAgICByZXN1
bHQuc2V0KHdhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyKTsKLSAgICAgICAgaWYgKG1vZGUgIT0g
TWVtb3J5TW9kZTo6U2lnbmFsaW5nKQorICAgICAgICBpZiAobW9kZSA9PSBNZW1vcnlNb2RlOjpC
b3VuZHNDaGVja2luZyAmJiBib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlciAhPSBJbnZhbGlkR1BS
UmVnKQogICAgICAgICAgICAgcmVzdWx0LnNldChib3VuZHNDaGVja2luZ1NpemVSZWdpc3Rlcik7
CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU1lbW9yeU1vZGUuY3BwCmluZGV4IDliZTA0ZDc3YjA2Yi4uZjMzYjA1MjUxOTgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuY3BwCkBA
IC0zNyw3ICszNyw5IEBAIGNvbnN0IGNoYXIqIG1ha2VTdHJpbmcoTWVtb3J5TW9kZSBtb2RlKQog
ewogICAgIHN3aXRjaCAobW9kZSkgewogICAgIGNhc2UgTWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tp
bmc6IHJldHVybiAiQm91bmRzQ2hlY2tpbmciOworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdO
QUxJTkdfTUVNT1JZKQogICAgIGNhc2UgTWVtb3J5TW9kZTo6U2lnbmFsaW5nOiByZXR1cm4gIlNp
Z25hbGluZyI7CisjZW5kaWYKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICByZXR1cm4gIiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtTWVtb3J5TW9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9y
eU1vZGUuaAppbmRleCAwMmNmY2ZlNDlmNDcuLmQ3MTFhZmFmMzAzMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5oCkBAIC0zNCw3ICszNCw5IEBAIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAvLyBGSVhNRTogV2Ugc2hvdWxkIHN1cHBvcnQg
b3RoZXIgbW9kZXMuIHNlZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MjY5MwogZW51bSBjbGFzcyBNZW1vcnlNb2RlIDogdWludDhfdCB7CiAgICAgQm91bmRzQ2hl
Y2tpbmcsCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgU2ln
bmFsaW5nCisjZW5kaWYKIH07CiAKIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IE51bWJlck9mTWVt
b3J5TW9kZXMgPSAyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU9wY29kZU9yaWdpbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2Rl
T3JpZ2luLmNwcAppbmRleCBiNmM1YzI3NTUzMTEuLjlmYzkxYjlkOWM1NCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5jcHAKQEAgLTI2LDcgKzI2
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXYXNtT3Bjb2RlT3JpZ2luLmgi
CiAKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklU
KQogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCkBAIC0zNyw0ICszNyw0IEBA
IHZvaWQgT3Bjb2RlT3JpZ2luOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAKIH0gfSAv
LyBuYW1lc3BhY2UgSlNDOjpXYXNtCiAKLSNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5oCmluZGV4IGEwZDhkZjNhZWYxOS4uNWM0YjY3NmQ1
YzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3Jp
Z2luLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5o
CkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKQorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9CM0pJVCkKIAogI2luY2x1ZGUgIkIzT3JpZ2lu
LmgiCiAjaW5jbHVkZSAiV2FzbUZvcm1hdC5oIgpAQCAtNjAsNCArNjAsNCBAQCBwcml2YXRlOgog
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VN
QkxZKQorI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWV9CM0pJVCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcAppbmRleCBmMmY2MTFhNmJlNmUuLjY0
M2M0N2NkZjMwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9w
ZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRp
b25zLmNwcApAQCAtNDY4LDQzICs0NjgsNDMgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbldhc21VbndpbmQsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiAgICAgQVNT
RVJUKCEhdm0uY2FsbEZyYW1lRm9yQ2F0Y2gpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29udmVydFRvSTY0LCBpbnQ2NF90LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUs
IEpTVmFsdWUgdikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRv
STY0LCBpbnQ2NF90LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVuY29kZWRKU1ZhbHVlIHYpKQog
ewogICAgIC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5nIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSog
aW5zdGVhZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAzMjA2CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsKICAgICBOYXRp
dmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIHJldHVybiB2LnRv
QmlnSW50NjQoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSk7CisgICAgcmV0dXJu
IEpTVmFsdWU6OmRlY29kZSh2KS50b0JpZ0ludDY0KGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9i
amVjdCh2bSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVy
dFRvRjY0LCBkb3VibGUsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9GNjQsIGRvdWJsZSwgKENhbGxG
cmFtZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSB2KSkKIHsKICAgICAvLyBGSVhNRTogQ29u
c2lkZXIgcGFzc2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RlYWQuCiAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIwNgogICAgIFZNJiB2bSA9
IGNhbGxGcmFtZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICByZXR1cm4gdi50b051bWJlcihjYWxsRnJhbWUtPmxl
eGljYWxHbG9iYWxPYmplY3Qodm0pKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKHYpLnRv
TnVtYmVyKGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTMyLCBpbnQzMl90LCAoQ2FsbEZy
YW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29udmVydFRvSTMyLCBpbnQzMl90LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVuY29k
ZWRKU1ZhbHVlIHYpKQogewogICAgIC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5nIEpTV2ViQXNz
ZW1ibHlJbnN0YW5jZSogaW5zdGVhZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAzMjA2CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVk
Vk0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwot
ICAgIHJldHVybiB2LnRvSW50MzIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSk7
CisgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh2KS50b0ludDMyKGNhbGxGcmFtZS0+bGV4aWNh
bEdsb2JhbE9iamVjdCh2bSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29udmVydFRvRjMyLCBmbG9hdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0YzMiwgZmxvYXQs
IChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUgdikpCiB7CiAgICAgLy8gRklY
TUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0ZWFkLgogICAg
IC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMyMDYKICAgICBW
TSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0
Pih2LnRvTnVtYmVyKGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpKTsKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KEpTVmFsdWU6OmRlY29kZSh2KS50b051bWJlcihjYWxs
RnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoQ2FsbEZy
YW1lKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwgaW50NjRfdCB2YWx1ZSkpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50LCBFbmNvZGVkSlNW
YWx1ZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2UsIEVuY29kZWRX
YXNtVmFsdWUgdmFsdWUpKQogewogICAgIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSoganNJbnN0YW5j
ZSA9IGluc3RhbmNlLT5vd25lcjxKU1dlYkFzc2VtYmx5SW5zdGFuY2U+KCk7CiAgICAgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGpzSW5zdGFuY2UtPmdsb2JhbE9iamVjdCgpOwpAQCAt
NTE0LDcgKzUxNCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0
VG9CaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoQ2FsbEZyYW1lKiBjCiB9CiAKIC8vIGh0dHBzOi8v
d2ViYXNzZW1ibHkuZ2l0aHViLmlvL211bHRpLXZhbHVlL2pzLWFwaS9pbmRleC5odG1sI3J1bi1h
LWhvc3QtZnVuY3Rpb24KLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRl
UmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2Us
IGNvbnN0IFR5cGVEZWZpbml0aW9uKiB0eXBlLCBKU1ZhbHVlIHJlc3VsdCwgdWludDY0X3QqIHJl
Z2lzdGVyUmVzdWx0cywgdWludDY0X3QqIGNhbGxlZUZyYW1lUG9pbnRlcikpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBjb25zdCBUeXBlRGVmaW5pdGlvbiogdHlw
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jUmVzdWx0LCB1aW50NjRfdCogcmVnaXN0ZXJSZXN1bHRzLCB1
aW50NjRfdCogY2FsbGVlRnJhbWVQb2ludGVyKSkKIHsKICAgICAvLyBGSVhNRTogQ29uc2lkZXIg
cGFzc2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RlYWQuCiAgICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIwNgpAQCAtNTMxLDYgKzUzMSw3IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0cywgdm9pZCwg
KENhbGxGcmFtZSogY2FsbEZyYW1lLCBJCiAKICAgICB1bnNpZ25lZCBpdGVyYXRpb25Db3VudCA9
IDA7CiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYnVmZmVyOworICAgIEpTVmFsdWUgcmVzdWx0
ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY1Jlc3VsdCk7CiAgICAgZm9yRWFjaEluSXRlcmFibGUoZ2xv
YmFsT2JqZWN0LCByZXN1bHQsIFsmXSAoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgdmFs
dWUpIC0+IHZvaWQgewogICAgICAgICBpZiAoYnVmZmVyLnNpemUoKSA8IHNpZ25hdHVyZS0+cmV0
dXJuQ291bnQoKSkKICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQodmFsdWUpOwpAQCAtNTgwLDgg
KzU4MSwxMCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3Vs
dHMsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSQogICAgICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogCiAgICAgICAgIGF1dG8gcmVwID0gd2FzbUNhbGxJbmZv
LnJlc3VsdHNbaW5kZXhdOwotICAgICAgICBpZiAocmVwLmlzUmVnKCkpCi0gICAgICAgICAgICBy
ZWdpc3RlclJlc3VsdHNbcmVnaXN0ZXJSZXN1bHRPZmZzZXRzLmZpbmQocmVwLnJlZygpKS0+b2Zm
c2V0KCkgLyBzaXplb2YodWludDY0X3QpXSA9IHVuYm94ZWRWYWx1ZTsKKyAgICAgICAgaWYgKHJl
cC5pc0dQUigpKQorICAgICAgICAgICAgcmVnaXN0ZXJSZXN1bHRzW3JlZ2lzdGVyUmVzdWx0T2Zm
c2V0cy5maW5kKHJlcC5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSAvIHNpemVvZih1aW50
NjRfdCldID0gdW5ib3hlZFZhbHVlOworICAgICAgICBlbHNlIGlmIChyZXAuaXNGUFIoKSkKKyAg
ICAgICAgICAgIHJlZ2lzdGVyUmVzdWx0c1tyZWdpc3RlclJlc3VsdE9mZnNldHMuZmluZChyZXAu
ZnByKCkpLT5vZmZzZXQoKSAvIHNpemVvZih1aW50NjRfdCldID0gdW5ib3hlZFZhbHVlOwogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICBjYWxsZWVGcmFtZVBvaW50ZXJbcmVwLm9mZnNldEZyb21G
UCgpIC8gc2l6ZW9mKHVpbnQ2NF90KV0gPSB1bmJveGVkVmFsdWU7CiAgICAgfQpAQCAtNjA3LDEy
ICs2MTAsMTYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlUmVz
dWx0c0FycmF5LCBKU0FycmF5KiwgKENhbGxGcmFtZSogY2EKICAgICBhdXRvIHdhc21DYWxsSW5m
byA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpLmNhbGxJbmZvcm1hdGlvbkZvcigqdHlwZSk7CiAg
ICAgUmVnaXN0ZXJBdE9mZnNldExpc3QgcmVnaXN0ZXJSZXN1bHRzID0gd2FzbUNhbGxJbmZvLmNv
bXB1dGVSZXN1bHRzT2Zmc2V0TGlzdCgpOwogCi0gICAgc3RhdGljX2Fzc2VydChzaXplb2YoSlNW
YWx1ZSkgPT0gc2l6ZW9mKENQVVJlZ2lzdGVyKSwgIlRoZSBjb2RlIGJlbG93IHJlbGllcyBvbiB0
aGlzLiIpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaWduYXR1cmUtPnJldHVybkNv
dW50KCk7ICsraSkgewogICAgICAgICBWYWx1ZUxvY2F0aW9uIGxvYyA9IHdhc21DYWxsSW5mby5y
ZXN1bHRzW2ldOwogICAgICAgICBKU1ZhbHVlIHZhbHVlOwotICAgICAgICBpZiAobG9jLmlzUmVn
KCkpCi0gICAgICAgICAgICB2YWx1ZSA9IHN0YWNrUG9pbnRlckZyb21DYWxsZWVbKHJlZ2lzdGVy
UmVzdWx0cy5maW5kKGxvYy5yZWcoKSktPm9mZnNldCgpICsgd2FzbUNhbGxJbmZvLmhlYWRlckFu
ZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcykgLyBzaXplb2YoSlNWYWx1ZSldOworICAgICAgICBp
ZiAobG9jLmlzR1BSKCkpIHsKKyNpZiBVU0UoSlNWQUxFMzJfNjQpCisgICAgICAgICAgICBBU1NF
UlQocmVnaXN0ZXJSZXN1bHRzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgp
ICsgNCA9PSByZWdpc3RlclJlc3VsdHMuZmluZChsb2MuanNyKCkudGFnR1BSKCkpLT5vZmZzZXQo
KSk7CisjZW5kaWYKKyAgICAgICAgICAgIHZhbHVlID0gc3RhY2tQb2ludGVyRnJvbUNhbGxlZVso
cmVnaXN0ZXJSZXN1bHRzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpICsg
d2FzbUNhbGxJbmZvLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcykgLyBzaXplb2Yo
SlNWYWx1ZSldOworICAgICAgICB9IGVsc2UgaWYgKGxvYy5pc0ZQUigpKQorICAgICAgICAgICAg
dmFsdWUgPSBzdGFja1BvaW50ZXJGcm9tQ2FsbGVlWyhyZWdpc3RlclJlc3VsdHMuZmluZChsb2Mu
ZnByKCkpLT5vZmZzZXQoKSArIHdhc21DYWxsSW5mby5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6
ZUluQnl0ZXMpIC8gc2l6ZW9mKEpTVmFsdWUpXTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
dmFsdWUgPSBzdGFja1BvaW50ZXJGcm9tQ2FsbGVlW2xvYy5vZmZzZXRGcm9tU1AoKSAvIHNpemVv
ZihKU1ZhbHVlKV07CiAgICAgICAgIHJlc3VsdC0+aW5pdGlhbGl6ZUluZGV4KGluaXRpYWxpemF0
aW9uU2NvcGUsIGksIHZhbHVlKTsKQEAgLTk1Myw3ICs5NjAsOCBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uV2FzbVRocm93LCB2b2lkKiwgKEluc3RhbmNlKiBpbnN0YW5jZSwg
Q2FsbEZyYQogICAgIC8vIHRvIHRoZSBleGNlcHRpb24gaGFuZGxlci4gSWYgd2UgZGlkIHRoaXMs
IHdlIGNvdWxkIHJlbW92ZSB0aGlzIHRlcnJpYmxlIGhhY2suCiAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDQ0MAogICAgIHZtLmNhbGxlZUZvcldhc21D
YXRjaCA9IGNhbGxGcmFtZS0+Y2FsbGVlKCk7Ci0gICAgYml0d2lzZV9jYXN0PHVpbnQ2NF90Kj4o
Y2FsbEZyYW1lKVtzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSldID0gYml0
d2lzZV9jYXN0PHVpbnQ2NF90Pihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CisgICAgUmVnaXN0ZXIq
IGNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8UmVnaXN0ZXIqPihjYWxsRnJhbWUpICsgc3RhdGlj
X2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpOworICAgICpjYWxsZWVTbG90ID0gYml0
d2lzZV9jYXN0PEpTQ2VsbCo+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsKICAgICByZXR1cm4gdm0u
dGFyZ2V0TWFjaGluZVBDRm9yVGhyb3c7CiB9CiAKQEAgLTk3OSw3ICs5ODcsOCBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVJldGhyb3csIHZvaWQqLCAoSW5zdGFuY2Uq
IGluc3RhbmNlLCBDYWxsRgogICAgIC8vIHRvIHRoZSBleGNlcHRpb24gaGFuZGxlci4gSWYgd2Ug
ZGlkIHRoaXMsIHdlIGNvdWxkIHJlbW92ZSB0aGlzIHRlcnJpYmxlIGhhY2suCiAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDQ0MAogICAgIHZtLmNhbGxl
ZUZvcldhc21DYXRjaCA9IGNhbGxGcmFtZS0+Y2FsbGVlKCk7Ci0gICAgYml0d2lzZV9jYXN0PHVp
bnQ2NF90Kj4oY2FsbEZyYW1lKVtzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxl
ZSldID0gYml0d2lzZV9jYXN0PHVpbnQ2NF90Pihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CisgICAg
UmVnaXN0ZXIqIGNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8UmVnaXN0ZXIqPihjYWxsRnJhbWUp
ICsgc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpOworICAgICpjYWxsZWVT
bG90ID0gYml0d2lzZV9jYXN0PEpTQ2VsbCo+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsKICAgICBy
ZXR1cm4gdm0udGFyZ2V0TWFjaGluZVBDRm9yVGhyb3c7CiB9CiAKQEAgLTEwMTQsMTIgKzEwMjMs
MTQgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21Ub0pTRXhjZXB0aW9u
LCB2b2lkKiwgKENhbGxGcmFtZSogY2FsbEZyYW0KICAgICAvLyB0byB0aGUgZXhjZXB0aW9uIGhh
bmRsZXIuIElmIHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNr
LgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAK
ICAgICB2bS5jYWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgpOwotICAgIGJp
dHdpc2VfY2FzdDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJh
bWVTbG90OjpjYWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oaW5zdGFuY2UtPm1vZHVs
ZSgpKTsKKyAgICBSZWdpc3RlciogY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxSZWdpc3Rlcio+
KGNhbGxGcmFtZSkgKyBzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7Cisg
ICAgKmNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8SlNDZWxsKj4oaW5zdGFuY2UtPm1vZHVsZSgp
KTsKICAgICByZXR1cm4gdm0udGFyZ2V0TWFjaGluZVBDRm9yVGhyb3c7CiB9CiAKIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtUmV0cmlldmVBbmRDbGVhckV4Y2VwdGlvbklm
Q2F0Y2hhYmxlLCBQb2ludGVyUGFpciwgKEluc3RhbmNlKiBpbnN0YW5jZSkpCiB7CisjaWYgVVNF
KEpTVkFMVUU2NCkKICAgICBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGpzSW5zdGFuY2UgPSBpbnN0
YW5jZS0+b3duZXI8SlNXZWJBc3NlbWJseUluc3RhbmNlPigpOwogICAgIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QgPSBqc0luc3RhbmNlLT5nbG9iYWxPYmplY3QoKTsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0xMDM5LDYgKzEwNTAsMTMgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZXRyaWV2ZUFuZENsZWFyRXhjZXB0aW9uSWZDYXRj
aGFibGUsIFBvaW4KICAgICBpZiAoSlNXZWJBc3NlbWJseUV4Y2VwdGlvbiogd2FzbUV4Y2VwdGlv
biA9IGpzRHluYW1pY0Nhc3Q8SlNXZWJBc3NlbWJseUV4Y2VwdGlvbio+KHRocm93blZhbHVlKSkK
ICAgICAgICAgcGF5bG9hZCA9IGJpdHdpc2VfY2FzdDx2b2lkKj4od2FzbUV4Y2VwdGlvbi0+cGF5
bG9hZCgpLmRhdGEoKSk7CiAgICAgcmV0dXJuIFBvaW50ZXJQYWlyIHsgYml0d2lzZV9jYXN0PHZv
aWQqPihKU1ZhbHVlOjplbmNvZGUodGhyb3duVmFsdWUpKSwgcGF5bG9hZCB9OworI2VsaWYgVVNF
KEpTVkFMVUUzMl82NCkKKyAgICAvLyBOb3RlOiBUaGlzIGZ1bmN0aW9uIG5lZWRzIHRvIHJldHVy
biBhIHBvaW50ZXIgYW5kIGEgSlNWYWx1ZSwgc28gd2lsbCBuZWVkIHRvCisgICAgLy8gY2hhbmdl
IHNpZ25hdHVyZSBvbiBKU1ZBTEUzMl82NCwgbmV2ZXJ0aGVsZXNzLCBmb3Igbm93IGl0J3MgdW51
c2VkLgorICAgIFVOUkVBQ0hBQkxFX0ZPUl9QTEFURk9STSgpOworICAgIFVOVVNFRF9QQVJBTShp
bnN0YW5jZSk7CisgICAgcmV0dXJuIHsgbnVsbHB0ciwgbnVsbHB0ciB9OworI2VuZGlmCiB9CiAK
IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU9wZXJhdGlvbnMuaAppbmRleCBlMmNiMzU5MDQxOTYuLjRjOTdjNGQ3MWRiNyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oCkBAIC00NywyMiArNDcs
MjMgQEAgbmFtZXNwYWNlIFdhc20gewogY2xhc3MgSW5zdGFuY2U7CiBjbGFzcyBUeXBlRGVmaW5p
dGlvbjsKIAotdm9pZCBsb2FkVmFsdWVzSW50b0J1ZmZlcihQcm9iZTo6Q29udGV4dCYsIGNvbnN0
IFN0YWNrTWFwJiwgdWludDY0X3QqIGJ1ZmZlcik7Cit0eXBlZGVmIGludDY0X3QgRW5jb2RlZFdh
c21WYWx1ZTsKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9CM0pJVCkKK3ZvaWQgbG9hZFZhbHVl
c0ludG9CdWZmZXIoUHJvYmU6OkNvbnRleHQmLCBjb25zdCBTdGFja01hcCYsIHVpbnQ2NF90KiBi
dWZmZXIpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVHJpZ2dlck9T
UkVudHJ5Tm93LCB2b2lkLCAoUHJvYmU6OkNvbnRleHQmKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2VyVGllclVwTm93LCB2b2lkLCAoSW5zdGFuY2UqLCB1
aW50MzJfdCBmdW5jdGlvbkluZGV4KSk7CiAjZW5kaWYKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uV2FzbVVud2luZCwgdm9pZCwgKENhbGxGcmFtZSopKTsKIAotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JNjQsIGludDY0X3QsIChDYWxsRnJh
bWUqLCBKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZl
cnRUb0Y2NCwgZG91YmxlLCAoQ2FsbEZyYW1lKiwgSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIGludDMyX3QsIChDYWxsRnJhbWUqLCBK
U1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0Yz
MiwgZmxvYXQsIChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCwgaW50NjRfdCwgKENhbGxGcmFtZSosIEVuY29kZWRK
U1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0Y2
NCwgZG91YmxlLCAoQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTMyLCBpbnQzMl90LCAoQ2FsbEZyYW1lKiwg
RW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29u
dmVydFRvRjMyLCBmbG9hdCwgKENhbGxGcmFtZSosIEVuY29kZWRKU1ZhbHVlKSk7CiAKLUpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50LCBFbmNvZGVkSlNW
YWx1ZSwgKENhbGxGcmFtZSosIEluc3RhbmNlKiwgaW50NjRfdCkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoQ2Fs
bEZyYW1lKiwgSW5zdGFuY2UqLCBFbmNvZGVkV2FzbVZhbHVlKSk7CiAKLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqLCBJ
bnN0YW5jZSosIGNvbnN0IFR5cGVEZWZpbml0aW9uKiwgSlNWYWx1ZSwgdWludDY0X3QqLCB1aW50
NjRfdCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3Vs
dHMsIHZvaWQsIChDYWxsRnJhbWUqLCBJbnN0YW5jZSosIGNvbnN0IFR5cGVEZWZpbml0aW9uKiwg
RW5jb2RlZEpTVmFsdWUsIHVpbnQ2NF90KiwgdWludDY0X3QqKSk7CiBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5LCBKU0FycmF5KiwgKENhbGxG
cmFtZSosIFdhc206Okluc3RhbmNlKiwgY29uc3QgVHlwZURlZmluaXRpb24qLCBJbmRleGluZ1R5
cGUsIEpTVmFsdWUqKSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Fz
bVdyaXRlQmFycmllclNsb3dQYXRoLCB2b2lkLCAoSlNDZWxsKiwgVk0qKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFnZUNvdW50LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFnZUNvdW50LmgKaW5kZXggYjdkOGM5ZmNmNzJiLi4zYzc1
NTEyZjQ0YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYWdl
Q291bnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFnZUNvdW50LmgK
QEAgLTk4LDcgKzk4LDEyIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMy
X3QgcGFnZVNpemUgPSA2NCAqIEtCOwogcHJpdmF0ZToKLSAgICBzdGF0aWMgY29uc3RleHByIHVp
bnQzMl90IG1heFBhZ2VDb3VudCA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihNQVhfQVJSQVlfQlVG
RkVSX1NJWkUgLyBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocGFnZVNpemUpKTsKKyAgICAvLyBUaGUg
c3BlYyByZXF1aXJlcyB3ZSBhcmUgYWJsZSB0byBpbnN0YW50aWF0ZSBhIG1lbW9yeSB3aXRoIGEg
Km1heGltdW0qIHNpemUgb2YgNjRLIHBhZ2VzLgorICAgIC8vIFRoaXMgZG9lcyBub3QgbWVhbiB0
aGUgbWVtb3J5IGNhbiBuZWNlc3NhcmlseSBncm93IHRoYXQgYmlnLCBhbmQgd2hlcmUgdGhlCisg
ICAgLy8gTUFYX0FSUkFZX0JVRkZFUl9TSVpFIGlzIHNtYWxsZXIgKGUuZy46IG9uIDMyLWJpdCBw
bGF0Zm9ybXMpLCB0cnlpbmcgdG8gZ3JvdyB0aGUgbWVtb3J5CisgICAgLy8gdGhhdCBsYXJnZSB3
aWxsIGZhaWwsIHdoaWNoIGlzIGFjY2VwdGFibGUgYWNjb3JkaW5nIHRvIHRoZSBzcGVjLiBOZXZl
cnRoZWxlc3MsIHdlIHNob3VsZAorICAgIC8vIGJlIGFibGUgdG8gcGFyc2Ugc3VjaCBhIG1lbW9y
eSBhbmQgaW5zdGFudGlhdGUgaXQgd2l0aCBhIHNtYWxsZXIgaW5pdGlhbCBzaXplLgorICAgIHN0
YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWF4UGFnZUNvdW50ID0gc3RkOjptYXg8dWludDMyX3Q+
KDY0KjEwMjQsIE1BWF9BUlJBWV9CVUZGRVJfU0laRSAvIHN0YXRpY19jYXN0PHVpbnQ2NF90Pihw
YWdlU2l6ZSkpOwogCiAgICAgdWludDMyX3QgbV9wYWdlQ291bnQ7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbVBhcnNlci5oCmluZGV4IDZhNjQ4ZjEwYjQxOS4uYzM4MGI3YWE0NGU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5oCkBAIC0yMDgsNyArMjA4
LDcgQEAgQUxXQVlTX0lOTElORSBib29sIFBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVUludDMy
KHVpbnQzMl90JiByZXN1bHQpCiB7CiAgICAgaWYgKGxlbmd0aCgpIDwgNCB8fCBtX29mZnNldCA+
IGxlbmd0aCgpIC0gNCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJlc3VsdCA9ICpyZWlu
dGVycHJldF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oc291cmNlKCkgKyBtX29mZnNldCk7CisgICAg
bWVtY3B5KCZyZXN1bHQsIHNvdXJjZSgpICsgbV9vZmZzZXQsIHNpemVvZih1aW50MzJfdCkpOyAv
LyBzcmMgY2FuIGJlIHVuYWxpZ25lZAogICAgIG1fb2Zmc2V0ICs9IDQ7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CkBAIC0yMTgsNyArMjE4LDcgQEAgQUxXQVlTX0lOTElORSBib29sIFBhcnNlcjxTdWNj
ZXNzVHlwZT46OnBhcnNlVUludDY0KHVpbnQ2NF90JiByZXN1bHQpCiB7CiAgICAgaWYgKGxlbmd0
aCgpIDwgOCB8fCBtX29mZnNldCA+IGxlbmd0aCgpIC0gOCkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIHJlc3VsdCA9ICpyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ2NF90Kj4oc291cmNl
KCkgKyBtX29mZnNldCk7CisgICAgbWVtY3B5KCZyZXN1bHQsIHNvdXJjZSgpICsgbV9vZmZzZXQs
IHNpemVvZih1aW50NjRfdCkpOyAvLyBzcmMgY2FuIGJlIHVuYWxpZ25lZAogICAgIG1fb2Zmc2V0
ICs9IDg7CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21TbG93UGF0aHMuY3BwCmluZGV4IDY0MTdmODBiMzVhNy4uNmNjN2Y3Zjk2Yzg1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmNwcApAQCAtNjQ4LDcg
KzY0OCw4IEBAIFdBU01fU0xPV19QQVRIX0RFQ0wodGhyb3cpCiAgICAgLy8gdG8gdGhlIGV4Y2Vw
dGlvbiBoYW5kbGVyLiBJZiB3ZSBkaWQgdGhpcywgd2UgY291bGQgcmVtb3ZlIHRoaXMgdGVycmli
bGUgaGFjay4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcwNDQwCiAgICAgdm0uY2FsbGVlRm9yV2FzbUNhdGNoID0gY2FsbEZyYW1lLT5jYWxsZWUoKTsK
LSAgICBiaXR3aXNlX2Nhc3Q8dWludDY0X3QqPihjYWxsRnJhbWUpW3N0YXRpY19jYXN0PGludD4o
Q2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0gPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KGpzSW5zdGFu
Y2UtPm1vZHVsZSgpKTsKKyAgICBSZWdpc3RlciogY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxS
ZWdpc3Rlcio+KGNhbGxGcmFtZSkgKyBzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNh
bGxlZSk7CisgICAgKmNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8SlNDZWxsKj4oanNJbnN0YW5j
ZS0+bW9kdWxlKCkpOwogICAgIFdBU01fUkVUVVJOX1RXTyh2bS50YXJnZXRNYWNoaW5lUENGb3JU
aHJvdywgbnVsbHB0cik7CiB9CiAKQEAgLTY3Niw3ICs2NzcsOCBAQCBXQVNNX1NMT1dfUEFUSF9E
RUNMKHJldGhyb3cpCiAgICAgLy8gdG8gdGhlIGV4Y2VwdGlvbiBoYW5kbGVyLiBJZiB3ZSBkaWQg
dGhpcywgd2UgY291bGQgcmVtb3ZlIHRoaXMgdGVycmlibGUgaGFjay4KICAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDQwCiAgICAgdm0uY2FsbGVlRm9y
V2FzbUNhdGNoID0gY2FsbEZyYW1lLT5jYWxsZWUoKTsKLSAgICBiaXR3aXNlX2Nhc3Q8dWludDY0
X3QqPihjYWxsRnJhbWUpW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0g
PSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsKKyAgICBSZWdp
c3RlciogY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxSZWdpc3Rlcio+KGNhbGxGcmFtZSkgKyBz
dGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7CisgICAgKmNhbGxlZVNsb3Qg
PSBiaXR3aXNlX2Nhc3Q8SlNDZWxsKj4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOwogICAgIFdBU01f
UkVUVVJOX1RXTyh2bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdywgbnVsbHB0cik7CiB9CiAKQEAg
LTcyMyw2ICs3MjUsMjE0IEBAIFdBU01fU0xPV19QQVRIX0RFQ0wocmV0cmlldmVfYW5kX2NsZWFy
X2V4Y2VwdGlvbikKICAgICBXQVNNX1JFVFVSTl9UV08ocGMsIHBheWxvYWQpOwogfQogCisjaWYg
VVNFKEpTVkFMVUUzMl82NCkKK1dBU01fU0xPV19QQVRIX0RFQ0woZjMyX2NlaWwpCit7CisgICAg
VU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdh
c21GMzJDZWlsPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3Bl
cmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKHdh
c21VbmJveGVkRmxvYXQoc3RkOjpjZWlsKG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFU
SF9ERUNMKGYzMl9mbG9vcikKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1
dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUYzMkZsb29yPigpOworICAgIGZsb2F0IG9wZXJh
bmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgV0FT
TV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKHdhc21VbmJveGVkRmxvYXQoc3RkOjpmbG9vcihvcGVy
YW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmMzJfdHJ1bmMpCit7CisgICAgVU5V
U0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21G
MzJUcnVuYz4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJh
bmQpLnVuYm94ZWRGbG9hdCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZSh3YXNt
VW5ib3hlZEZsb2F0KHN0ZDo6dHJ1bmMob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRI
X0RFQ0woZjMyX25lYXJlc3QpCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGlt
aXRzPGZsb2F0Pjo6cm91bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90b19uZWFyZXN0KTsKKyAgICBV
TlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2Fz
bUYzMk5lYXJlc3Q+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9v
cGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUo
d2FzbVVuYm94ZWRGbG9hdChzdGQ6Om5lYXJieWludChvcGVyYW5kKSkpKTsKK30KKworV0FTTV9T
TE9XX1BBVEhfREVDTChmNjRfY2VpbCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOwor
ICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NENlaWw+KCk7CisgICAgZG91Ymxl
IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgpOwor
ICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGQ6OmNlaWwo
b3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjY0X2Zsb29yKQoreworICAg
IFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxX
YXNtRjY0Rmxvb3I+KCk7CisgICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1f
b3BlcmFuZCkudW5ib3hlZERvdWJsZSgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29k
ZShqc0RvdWJsZU51bWJlcihzdGQ6OmZsb29yKG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1df
UEFUSF9ERUNMKGY2NF90cnVuYykKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAg
IGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NFRydW5jPigpOworICAgIGRvdWJsZSBv
cGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUoKTsKKyAg
ICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoc3RkOjp0cnVuYyhv
cGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmNjRfbmVhcmVzdCkKK3sKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpyb3VuZF9zdHlsZSA9
PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7Cisg
ICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjY0TmVhcmVzdD4oKTsKKyAgICBkb3Vi
bGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7
CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHN0ZDo6bmVh
cmJ5aW50KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGYzMl9jb252ZXJ0
X3VfaTY0KQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46
OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7CisgICAgVU5VU0VEX1BBUkFN
KGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GMzJDb252ZXJ0
VUk2ND4oKTsKKyAgICB1aW50NjRfdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJh
bmQpLnVuYm94ZWRJbnQ2NCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZSh3YXNt
VW5ib3hlZEZsb2F0KHN0YXRpY19jYXN0PGZsb2F0PihvcGVyYW5kKSkpKTsKK30KKworV0FTTV9T
TE9XX1BBVEhfREVDTChmMzJfY29udmVydF9zX2k2NCkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0
ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25l
YXJlc3QpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlv
biA9IHBjLT5hczxXYXNtRjMyQ29udmVydFNJNjQ+KCk7CisgICAgaW50NjRfdCBvcGVyYW5kID0g
UkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRJbnQ2NCgpOworICAgIFdBU01fUkVU
VVJOKEpTVmFsdWU6OmVuY29kZSh3YXNtVW5ib3hlZEZsb2F0KHN0YXRpY19jYXN0PGZsb2F0Pihv
cGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmNjRfY29udmVydF91X2k2NCkK
K3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpyb3VuZF9z
dHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5j
ZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjY0Q29udmVydFVJNjQ+KCk7
CisgICAgdWludDY0X3Qgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJv
eGVkSW50NjQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1i
ZXIoc3RhdGljX2Nhc3Q8ZG91YmxlPihvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhf
REVDTChmNjRfY29udmVydF9zX2k2NCkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJp
Y19saW1pdHM8ZmxvYXQ+Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOwor
ICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5h
czxXYXNtRjY0Q29udmVydFNJNjQ+KCk7CisgICAgaW50NjRfdCBvcGVyYW5kID0gUkVBRChpbnN0
cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRJbnQ2NCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFs
dWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGF0aWNfY2FzdDxkb3VibGU+KG9wZXJhbmQpKSkp
OworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY191X2YzMikKK3sKKyAgICBVTlVT
RURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2
NFRydW5jVUYzMj4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29w
ZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9w
ZXJhbmQgPD0gLTEuMGYgfHwgb3BlcmFuZCA+PSAtMi4wZiAqIHN0YXRpY19jYXN0PGZsb2F0PihJ
TlQ2NF9NSU4pKQorICAgICAgICBXQVNNX1RIUk9XKFdhc206OkV4Y2VwdGlvblR5cGU6Ok91dE9m
Qm91bmRzVHJ1bmMpOworICAgIFdBU01fUkVUVVJOKHN0YXRpY19jYXN0PHVpbnQ2NF90PihvcGVy
YW5kKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3NfZjMyKQoreworICAg
IFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxX
YXNtSTY0VHJ1bmNTRjMyPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9u
Lm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkg
fHwgb3BlcmFuZCA8IHN0YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4pIHx8IG9wZXJhbmQgPj0g
LXN0YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4pKQorICAgICAgICBXQVNNX1RIUk9XKFdhc206
OkV4Y2VwdGlvblR5cGU6Ok91dE9mQm91bmRzVHJ1bmMpOworICAgIFdBU01fUkVUVVJOKHN0YXRp
Y19jYXN0PGludDY0X3Q+KG9wZXJhbmQpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRf
dHJ1bmNfdV9mNjQpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGlu
c3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1VGNjQ+KCk7CisgICAgZG91YmxlIG9wZXJh
bmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgpOworICAgIGlm
IChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9wZXJhbmQgPD0gLTEuMCB8fCBvcGVyYW5kID49IC0y
LjAgKiBzdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0X01JTikpCisgICAgICAgIFdBU01fVEhST1co
V2FzbTo6RXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNUcnVuYyk7CisgICAgV0FTTV9SRVRVUk4o
c3RhdGljX2Nhc3Q8dWludDY0X3Q+KG9wZXJhbmQpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVD
TChpNjRfdHJ1bmNfc19mNjQpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBh
dXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1NGNjQ+KCk7CisgICAgZG91Ymxl
IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgpOwor
ICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9wZXJhbmQgPCBzdGF0aWNfY2FzdDxkb3Vi
bGU+KElOVDY0X01JTikgfHwgb3BlcmFuZCA+PSAtc3RhdGljX2Nhc3Q8ZG91YmxlPihJTlQ2NF9N
SU4pKQorICAgICAgICBXQVNNX1RIUk9XKFdhc206OkV4Y2VwdGlvblR5cGU6Ok91dE9mQm91bmRz
VHJ1bmMpOworICAgIFdBU01fUkVUVVJOKHN0YXRpY19jYXN0PGludDY0X3Q+KG9wZXJhbmQpKTsK
K30KKworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc2F0X2YzMl91KQoreworICAgIFVO
VVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNt
STY0VHJ1bmNTYXRGMzJVPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9u
Lm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgdWludDY0X3QgcmVzdWx0OworICAgIGlm
IChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9wZXJhbmQgPD0gLTEuMGYpCisgICAgICAgIHJlc3Vs
dCA9IDA7CisgICAgZWxzZSBpZiAob3BlcmFuZCA+PSAtMi4wZiAqIHN0YXRpY19jYXN0PGZsb2F0
PihJTlQ2NF9NSU4pKQorICAgICAgICByZXN1bHQgPSBVSU5UNjRfTUFYOworICAgIGVsc2UKKyAg
ICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG9wZXJhbmQpOworICAgIFdBU01f
UkVUVVJOKHJlc3VsdCk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3NhdF9m
MzJfcykKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rp
b24gPSBwYy0+YXM8V2FzbUk2NFRydW5jU2F0RjMyUz4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0g
UkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIGludDY0X3Qg
cmVzdWx0OworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpKQorICAgICAgICByZXN1bHQgPSAw
OworICAgIGVsc2UgaWYgKG9wZXJhbmQgPCBzdGF0aWNfY2FzdDxmbG9hdD4oSU5UNjRfTUlOKSkK
KyAgICAgICAgcmVzdWx0ID0gSU5UNjRfTUlOOworICAgIGVsc2UgaWYgKG9wZXJhbmQgPj0gLXN0
YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4pKQorICAgICAgICByZXN1bHQgPSBJTlQ2NF9NQVg7
CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxpbnQ2NF90PihvcGVyYW5k
KTsKKyAgICBXQVNNX1JFVFVSTihyZXN1bHQpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2
NF90cnVuY19zYXRfZjY0X3UpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBh
dXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1NhdEY2NFU+KCk7CisgICAgZG91
YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgp
OworICAgIHVpbnQ2NF90IHJlc3VsdDsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5kKSB8fCBv
cGVyYW5kIDw9IC0xLjApCisgICAgICAgIHJlc3VsdCA9IDA7CisgICAgZWxzZSBpZiAob3BlcmFu
ZCA+PSAtMi4wICogc3RhdGljX2Nhc3Q8ZG91YmxlPihJTlQ2NF9NSU4pKQorICAgICAgICByZXN1
bHQgPSBVSU5UNjRfTUFYOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KG9wZXJhbmQpOworICAgIFdBU01fUkVUVVJOKHJlc3VsdCk7Cit9CisKK1dBU01f
U0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3NhdF9mNjRfcykKK3sKKyAgICBVTlVTRURfUEFSQU0o
aW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jU2F0
RjY0Uz4oKTsKKyAgICBkb3VibGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5k
KS51bmJveGVkRG91YmxlKCk7CisgICAgaW50NjRfdCByZXN1bHQ7CisgICAgaWYgKHN0ZDo6aXNu
YW4ob3BlcmFuZCkpCisgICAgICAgIHJlc3VsdCA9IDA7CisgICAgZWxzZSBpZiAob3BlcmFuZCA8
IHN0YXRpY19jYXN0PGRvdWJsZT4oSU5UNjRfTUlOKSkKKyAgICAgICAgcmVzdWx0ID0gSU5UNjRf
TUlOOworICAgIGVsc2UgaWYgKG9wZXJhbmQgPj0gLXN0YXRpY19jYXN0PGRvdWJsZT4oSU5UNjRf
TUlOKSkKKyAgICAgICAgcmVzdWx0ID0gSU5UNjRfTUFYOworICAgIGVsc2UKKyAgICAgICAgcmVz
dWx0ID0gc3RhdGljX2Nhc3Q8aW50NjRfdD4ob3BlcmFuZCk7CisgICAgV0FTTV9SRVRVUk4ocmVz
dWx0KTsKK30KKyNlbmRpZgorCiBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBzbG93X3Bh
dGhfd2FzbV90aHJvd19leGNlcHRpb24oQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IFdhc21J
bnN0cnVjdGlvbiogcGMsIFdhc206Okluc3RhbmNlKiBpbnN0YW5jZSwgV2FzbTo6RXhjZXB0aW9u
VHlwZSBleGNlcHRpb25UeXBlKQogewogICAgIFVOVVNFRF9QQVJBTShwYyk7CkBAIC03MzEsMTYg
Kzk0MSwyOCBAQCBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBzbG93X3BhdGhfd2FzbV90
aHJvd19leGNlcHRpb24oQ2FsbEZyYW1lKiBjYWxsRnJhbQogCiBleHRlcm4gIkMiIFNsb3dQYXRo
UmV0dXJuVHlwZSBzbG93X3BhdGhfd2FzbV9wb3Bjb3VudChjb25zdCBXYXNtSW5zdHJ1Y3Rpb24q
IHBjLCB1aW50MzJfdCB4KQogewotICAgIHZvaWQqIHJlc3VsdCA9IGJpdHdpc2VfY2FzdDx2b2lk
Kj4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KF9fYnVpbHRpbl9wb3Bjb3VudCh4KSkpOworICAgIHZv
aWQqIHJlc3VsdCA9IGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8c2l6ZV90PihfX2J1
aWx0aW5fcG9wY291bnQoeCkpKTsKICAgICBXQVNNX1JFVFVSTl9UV08ocGMsIHJlc3VsdCk7CiB9
CiAKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3BvcGNvdW50
bGwoY29uc3QgV2FzbUluc3RydWN0aW9uKiBwYywgdWludDY0X3QgeCkKIHsKLSAgICB2b2lkKiBy
ZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PHVpbnQ2NF90PihfX2J1aWx0
aW5fcG9wY291bnRsbCh4KSkpOworICAgIHZvaWQqIHJlc3VsdCA9IGJpdHdpc2VfY2FzdDx2b2lk
Kj4oc3RhdGljX2Nhc3Q8c2l6ZV90PihfX2J1aWx0aW5fcG9wY291bnRsbCh4KSkpOwogICAgIFdB
U01fUkVUVVJOX1RXTyhwYywgcmVzdWx0KTsKIH0KIAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisv
LyBOb3RlOiBBbGwgdGhlc2UgZGl2IGFuZCByZW0gb3BzIHBlcmZvcm0gZXhjZXB0aW9uIGNoZWNr
cyBpbiBhc20KK2V4dGVybiAiQyIgaW50MzJfdCBzbG93X3BhdGhfd2FzbV9pMzJfZGl2X3MoaW50
MzJfdCBhLCBpbnQzMl90IGIpIHsgcmV0dXJuIGEgLyBiOyB9CitleHRlcm4gIkMiIHVpbnQzMl90
IHNsb3dfcGF0aF93YXNtX2kzMl9kaXZfdSh1aW50MzJfdCBhLCB1aW50MzJfdCBiKSB7IHJldHVy
biBhIC8gYjsgfQorZXh0ZXJuICJDIiBpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9yZW1fcyhp
bnQzMl90IGEsIGludDMyX3QgYikgeyByZXR1cm4gYSAlIGI7IH0KK2V4dGVybiAiQyIgdWludDMy
X3Qgc2xvd19wYXRoX3dhc21faTMyX3JlbV91KHVpbnQzMl90IGEsIHVpbnQzMl90IGIpIHsgcmV0
dXJuIGEgJSBiOyB9CitleHRlcm4gIkMiIGludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X2Rpdl9z
KGludDY0X3QgYSwgaW50NjRfdCBiKSB7IHJldHVybiBhIC8gYjsgfQorZXh0ZXJuICJDIiB1aW50
NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRfZGl2X3UodWludDY0X3QgYSwgdWludDY0X3QgYikgeyBy
ZXR1cm4gYSAvIGI7IH0KK2V4dGVybiAiQyIgaW50NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRfcmVt
X3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpIHsgcmV0dXJuIGEgJSBiOyB9CitleHRlcm4gIkMiIHVp
bnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9yZW1fdSh1aW50NjRfdCBhLCB1aW50NjRfdCBiKSB7
IHJldHVybiBhICUgYjsgfQorI2VuZGlmCisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpMTEludAog
CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbVNsb3dQYXRocy5oCmluZGV4IDY3OGMxNzI4Mzc2OC4uZTcwMGRhZDY5YWE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5oCkBAIC05NSw2ICs5NSw0
MCBAQCBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBzbG93X3BhdGhfd2FzbV90aHJvd19l
eGNlcHRpb24oQ2FsbEZyYW1lKiwgY29uc3QgVwogZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5
cGUgc2xvd19wYXRoX3dhc21fcG9wY291bnQoY29uc3QgV2FzbUluc3RydWN0aW9uKiBwYywgdWlu
dDMyX3QpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOwogZXh0ZXJuICJDIiBTbG93
UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fcG9wY291bnRsbChjb25zdCBXYXNtSW5zdHJ1
Y3Rpb24qIHBjLCB1aW50NjRfdCkgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CiAK
KyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjMyX2Nl
aWwpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjMyX2Zsb29yKTsKK1dBU01fU0xPV19Q
QVRIX0hJRERFTl9ERUNMKGYzMl90cnVuYyk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChm
MzJfbmVhcmVzdCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfY2VpbCk7CitXQVNN
X1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfZmxvb3IpOworV0FTTV9TTE9XX1BBVEhfSElEREVO
X0RFQ0woZjY0X3RydW5jKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGY2NF9uZWFyZXN0
KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGYzMl9jb252ZXJ0X3VfaTY0KTsKK1dBU01f
U0xPV19QQVRIX0hJRERFTl9ERUNMKGYzMl9jb252ZXJ0X3NfaTY0KTsKK1dBU01fU0xPV19QQVRI
X0hJRERFTl9ERUNMKGY2NF9jb252ZXJ0X3VfaTY0KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9E
RUNMKGY2NF9jb252ZXJ0X3NfaTY0KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGk2NF90
cnVuY191X2YzMik7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNfc19mMzIp
OworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3VfZjY0KTsKK1dBU01fU0xP
V19QQVRIX0hJRERFTl9ERUNMKGk2NF90cnVuY19zX2Y2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURE
RU5fREVDTChpNjRfdHJ1bmNfc2F0X2YzMl91KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNM
KGk2NF90cnVuY19zYXRfZjMyX3MpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3Ry
dW5jX3NhdF9mNjRfdSk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNfc2F0
X2Y2NF9zKTsKKyNlbmRpZgorCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKK2V4dGVybiAiQyIgaW50
MzJfdCBzbG93X3BhdGhfd2FzbV9pMzJfZGl2X3MoaW50MzJfdCBhLCBpbnQzMl90IGIpIFJFRkVS
RU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJDIiB1aW50MzJfdCBzbG93X3Bh
dGhfd2FzbV9pMzJfZGl2X3UodWludDMyX3QgYSwgdWludDMyX3QgYikgUkVGRVJFTkNFRF9GUk9N
X0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMiIGludDMyX3Qgc2xvd19wYXRoX3dhc21faTMy
X3JlbV9zKGludDMyX3QgYSwgaW50MzJfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRF
Uk5BTDsKK2V4dGVybiAiQyIgdWludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX3JlbV91KHVpbnQz
Ml90IGEsIHVpbnQzMl90IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOworZXh0
ZXJuICJDIiBpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9kaXZfcyhpbnQ2NF90IGEsIGludDY0
X3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMiIHVpbnQ2
NF90IHNsb3dfcGF0aF93YXNtX2k2NF9kaXZfdSh1aW50NjRfdCBhLCB1aW50NjRfdCBiKSBSRUZF
UkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgaW50NjRfdCBzbG93X3Bh
dGhfd2FzbV9pNjRfcmVtX3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpIFJFRkVSRU5DRURfRlJPTV9B
U00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJDIiB1aW50NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRf
cmVtX3UodWludDY0X3QgYSwgdWludDY0X3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5U
RVJOQUw7CisjZW5kaWYKKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50CiAKICNlbmRpZiAv
LyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtVmFsdWVMb2NhdGlvbi5jcHAKaW5kZXggNTIyM2YzYWI0ZTQwLi42OGM3ODg4OTA2ZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5jcHAK
QEAgLTM1LDggKzM1LDExIEBAIHZvaWQgVmFsdWVMb2NhdGlvbjo6ZHVtcChQcmludFN0cmVhbSYg
b3V0KSBjb25zdAogewogICAgIG91dC5wcmludChtX2tpbmQpOwogICAgIHN3aXRjaCAobV9raW5k
KSB7Ci0gICAgY2FzZSBSZWdpc3RlcjoKLSAgICAgICAgb3V0LnByaW50KCIoIiwgcmVnKCksICIp
Iik7CisgICAgY2FzZSBHUFJSZWdpc3RlcjoKKyAgICAgICAgb3V0LnByaW50KCIoIiwganNyKCks
ICIpIik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEZQUlJlZ2lzdGVyOgorICAgICAgICBv
dXQucHJpbnQoIigiLCBmcHIoKSwgIikiKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgU3Rh
Y2s6CiAgICAgICAgIG91dC5wcmludCgiKCIsIG9mZnNldEZyb21GUCgpLCAiKSIpOwpAQCAtNTcs
OCArNjAsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzo6V2FzbTsKIHZvaWQgcHJpbnRJbnRlcm5h
bChQcmludFN0cmVhbSYgb3V0LCBWYWx1ZUxvY2F0aW9uOjpLaW5kIGtpbmQpCiB7CiAgICAgc3dp
dGNoIChraW5kKSB7Ci0gICAgY2FzZSBWYWx1ZUxvY2F0aW9uOjpSZWdpc3RlcjoKLSAgICAgICAg
b3V0LnByaW50KCJSZWdpc3RlciIpOworICAgIGNhc2UgVmFsdWVMb2NhdGlvbjo6R1BSUmVnaXN0
ZXI6CisgICAgICAgIG91dC5wcmludCgiR1BSUmVnaXN0ZXIiKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIGNhc2UgVmFsdWVMb2NhdGlvbjo6RlBSUmVnaXN0ZXI6CisgICAgICAgIG91dC5wcmludCgi
RlBSUmVnaXN0ZXIiKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgVmFsdWVMb2NhdGlvbjo6
U3RhY2s6CiAgICAgICAgIG91dC5wcmludCgiU3RhY2siKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5oCmluZGV4IGE2MWZiYThiZDAxYy4uNWNiNTEw
ZGJiZDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVM
b2NhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0
aW9uLmgKQEAgLTQxLDI1ICs0MSwyNyBAQCBjbGFzcyBWYWx1ZUxvY2F0aW9uIHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBlbnVtIEtpbmQgOiB1aW50OF90IHsK
LSAgICAgICAgUmVnaXN0ZXIsCisgICAgICAgIEdQUlJlZ2lzdGVyLAorICAgICAgICBGUFJSZWdp
c3RlciwKICAgICAgICAgU3RhY2ssCiAgICAgICAgIFN0YWNrQXJndW1lbnQsCiAgICAgfTsKIAog
ICAgIFZhbHVlTG9jYXRpb24oKQotICAgICAgICA6IG1fa2luZChSZWdpc3RlcikKKyAgICAgICAg
OiBtX2tpbmQoR1BSUmVnaXN0ZXIpCiAgICAgewogICAgIH0KIAotICAgIGV4cGxpY2l0IFZhbHVl
TG9jYXRpb24oUmVnIHJlZykKLSAgICAgICAgOiBtX2tpbmQoUmVnaXN0ZXIpCisgICAgZXhwbGlj
aXQgVmFsdWVMb2NhdGlvbihKU1ZhbHVlUmVncyByZWdzKQorICAgICAgICA6IG1fa2luZChHUFJS
ZWdpc3RlcikKICAgICB7Ci0gICAgICAgIHUucmVnID0gcmVnOworICAgICAgICB1LmpzciA9IHJl
Z3M7CiAgICAgfQogCi0gICAgc3RhdGljIFZhbHVlTG9jYXRpb24gcmVnKFJlZyByZWcpCisgICAg
ZXhwbGljaXQgVmFsdWVMb2NhdGlvbihGUFJSZWcgcmVnKQorICAgICAgICA6IG1fa2luZChGUFJS
ZWdpc3RlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBWYWx1ZUxvY2F0aW9uKHJlZyk7CisgICAg
ICAgIHUuZnByID0gcmVnOwogICAgIH0KIAogICAgIHN0YXRpYyBWYWx1ZUxvY2F0aW9uIHN0YWNr
KGludHB0cl90IG9mZnNldEZyb21GUCkKQEAgLTgwLDIxICs4MiwyMiBAQCBwdWJsaWM6CiAKICAg
ICBLaW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBtX2tpbmQ7IH0KIAotICAgIGJvb2wgaXNSZWco
KSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gUmVnaXN0ZXI7IH0KKyAgICBib29sIGlzR1BSKCkg
Y29uc3QgeyByZXR1cm4ga2luZCgpID09IEdQUlJlZ2lzdGVyOyB9CisgICAgYm9vbCBpc0ZQUigp
IGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBGUFJSZWdpc3RlcjsgfQorICAgIGJvb2wgaXNTdGFj
aygpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBTdGFjazsgfQorICAgIGJvb2wgaXNTdGFja0Fy
Z3VtZW50KCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IFN0YWNrQXJndW1lbnQ7IH0KIAotICAg
IFJlZyByZWcoKSBjb25zdAorICAgIEpTVmFsdWVSZWdzIGpzcigpIGNvbnN0CiAgICAgewotICAg
ICAgICBBU1NFUlQoaXNSZWcoKSk7Ci0gICAgICAgIHJldHVybiB1LnJlZzsKKyAgICAgICAgQVNT
RVJUKGlzR1BSKCkpOworICAgICAgICByZXR1cm4gdS5qc3I7CiAgICAgfQogCi0gICAgYm9vbCBp
c0dQUigpIGNvbnN0IHsgcmV0dXJuIGlzUmVnKCkgJiYgcmVnKCkuaXNHUFIoKTsgfQotICAgIGJv
b2wgaXNGUFIoKSBjb25zdCB7IHJldHVybiBpc1JlZygpICYmIHJlZygpLmlzRlBSKCk7IH0KLQot
ICAgIEdQUlJlZyBncHIoKSBjb25zdCB7IHJldHVybiByZWcoKS5ncHIoKTsgfQotICAgIEZQUlJl
ZyBmcHIoKSBjb25zdCB7IHJldHVybiByZWcoKS5mcHIoKTsgfQotCi0gICAgYm9vbCBpc1N0YWNr
KCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IFN0YWNrOyB9CisgICAgRlBSUmVnIGZwcigpIGNv
bnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNGUFIoKSk7CisgICAgICAgIHJldHVybiB1LmZw
cjsKKyAgICB9CiAKICAgICBpbnRwdHJfdCBvZmZzZXRGcm9tRlAoKSBjb25zdAogICAgIHsKQEAg
LTEwMiw4ICsxMDUsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB1Lm9mZnNldEZyb21GUDsK
ICAgICB9CiAKLSAgICBib29sIGlzU3RhY2tBcmd1bWVudCgpIGNvbnN0IHsgcmV0dXJuIGtpbmQo
KSA9PSBTdGFja0FyZ3VtZW50OyB9Ci0KICAgICBpbnRwdHJfdCBvZmZzZXRGcm9tU1AoKSBjb25z
dAogICAgIHsKICAgICAgICAgQVNTRVJUKGlzU3RhY2tBcmd1bWVudCgpKTsKQEAgLTExNCw3ICsx
MTUsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdW5pb24gVSB7Ci0gICAgICAgIFJlZyBy
ZWc7CisgICAgICAgIEpTVmFsdWVSZWdzIGpzcjsKKyAgICAgICAgRlBSUmVnIGZwcjsKICAgICAg
ICAgaW50cHRyX3Qgb2Zmc2V0RnJvbUZQOwogICAgICAgICBpbnRwdHJfdCBvZmZzZXRGcm9tU1A7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNwcAppbmRleCA0ZjQ1
NWNjNDdhMDQuLjBmNjI0ZTBiNjFkYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvSlNUb1dhc20uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTVG9XYXNtLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5o
IgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNXZWJBc3NlbWJs
eUluc3RhbmNlLmgiCisjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIK
ICNpbmNsdWRlICJXYXNtQ2FsbGluZ0NvbnZlbnRpb24uaCIKICNpbmNsdWRlICJXYXNtQ29udGV4
dElubGluZXMuaCIKICNpbmNsdWRlICJXYXNtT3BlcmF0aW9ucy5oIgpAQCAtNDEsMTMgKzQyLDEz
IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiB2b2lkIG1hcnNoYWxsSlNSZXN1
bHQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFR5cGVEZWZpbml0aW9uJiB0eXBlRGVmaW5pdGlv
biwgY29uc3QgQ2FsbEluZm9ybWF0aW9uJiB3YXNtRnJhbWVDb252ZW50aW9uLCBjb25zdCBSZWdp
c3RlckF0T2Zmc2V0TGlzdCYgc2F2ZWRSZXN1bHRSZWdpc3RlcnMpCiB7CiAgICAgY29uc3QgYXV0
byYgc2lnbmF0dXJlID0gKnR5cGVEZWZpbml0aW9uLmFzPEZ1bmN0aW9uU2lnbmF0dXJlPigpOwot
ICAgIGF1dG8gYm94V2FzbVJlc3VsdCA9IFtdKENDYWxsSGVscGVycyYgaml0LCBUeXBlIHR5cGUs
IFJlZyBzcmMsIEpTVmFsdWVSZWdzIGRzdCkgeworICAgIGF1dG8gYm94V2FzbVJlc3VsdCA9IFtd
KENDYWxsSGVscGVycyYgaml0LCBUeXBlIHR5cGUsIFZhbHVlTG9jYXRpb24gc3JjLCBKU1ZhbHVl
UmVncyBkc3QpIHsKICAgICAgICAgc3dpdGNoICh0eXBlLmtpbmQpIHsKICAgICAgICAgY2FzZSBU
eXBlS2luZDo6Vm9pZDoKICAgICAgICAgICAgIGppdC5tb3ZlVHJ1c3RlZFZhbHVlKGpzVW5kZWZp
bmVkKCksIGRzdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6
STMyOgotICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChzcmMuZ3ByKCksIGRzdC5w
YXlsb2FkR1BSKCkpOworICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChzcmMuanNy
KCkucGF5bG9hZEdQUigpLCBkc3QucGF5bG9hZEdQUigpKTsKICAgICAgICAgICAgIGppdC5ib3hJ
bnQzMihkc3QucGF5bG9hZEdQUigpLCBkc3QsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgpAQCAtNTYsMTMgKzU3
LDE3IEBAIHZvaWQgbWFyc2hhbGxKU1Jlc3VsdChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgVHlw
ZURlZmluaXRpb24mIHR5cGVEZWZpbml0aW9uLCBjCiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2
NDogewogICAgICAgICAgICAgaml0Lm1vdmVUcnVzdGVkVmFsdWUoanNOdW1iZXIocHVyZU5hTigp
KSwgZHN0KTsKICAgICAgICAgICAgIGF1dG8gaXNOYU4gPSBqaXQuYnJhbmNoSWZOYU4oc3JjLmZw
cigpKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgaml0LmJveERvdWJsZShzcmMu
ZnByKCksIGRzdCwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyNlbHNlCisgICAgICAgICAgICBq
aXQuYm94RG91YmxlKHNyYy5mcHIoKSwgZHN0KTsKKyNlbmRpZgogICAgICAgICAgICAgaXNOYU4u
bGluaygmaml0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1
bHQ6IHsKICAgICAgICAgICAgIGlmIChpc0Z1bmNyZWYodHlwZSkgfHwgaXNFeHRlcm5yZWYodHlw
ZSkpCi0gICAgICAgICAgICAgICAgaml0Lm1vdmUoc3JjLmdwcigpLCBkc3QucGF5bG9hZEdQUigp
KTsKKyAgICAgICAgICAgICAgICBqaXQubW92ZVZhbHVlUmVncyhzcmMuanNyKCksIGRzdCk7CiAg
ICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgaml0LmJyZWFrcG9pbnQoKTsKICAgICAg
ICAgfQpAQCAtNzAsNDQgKzc1LDg3IEBAIHZvaWQgbWFyc2hhbGxKU1Jlc3VsdChDQ2FsbEhlbHBl
cnMmIGppdCwgY29uc3QgVHlwZURlZmluaXRpb24mIHR5cGVEZWZpbml0aW9uLCBjCiAgICAgfTsK
IAogICAgIGlmIChzaWduYXR1cmUucmV0dXJuc1ZvaWQoKSkKLSAgICAgICAgaml0Lm1vdmVUcnVz
dGVkVmFsdWUoanNVbmRlZmluZWQoKSwgSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjpyZXR1cm5WYWx1
ZUdQUiB9KTsKKyAgICAgICAgaml0Lm1vdmVUcnVzdGVkVmFsdWUoanNVbmRlZmluZWQoKSwgSlNS
SW5mbzo6cmV0dXJuVmFsdWVKU1IpOwogICAgIGVsc2UgaWYgKHNpZ25hdHVyZS5yZXR1cm5Db3Vu
dCgpID09IDEpIHsKICAgICAgICAgaWYgKHNpZ25hdHVyZS5yZXR1cm5UeXBlKDApLmlzSTY0KCkp
IHsKLSAgICAgICAgICAgIEdQUlJlZyBpbnB1dEdQUiA9IHdhc21GcmFtZUNvbnZlbnRpb24ucmVz
dWx0c1swXS5yZWcoKS5ncHIoKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIGlucHV0SlNSID0g
d2FzbUZyYW1lQ29udmVudGlvbi5yZXN1bHRzWzBdLmpzcigpOwogICAgICAgICAgICAgR1BSUmVn
IHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBQaW5uZWRSZWdpc3RlckluZm86OmdldCgpLndhc21D
b250ZXh0SW5zdGFuY2VQb2ludGVyOwogICAgICAgICAgICAgaWYgKENvbnRleHQ6OnVzZUZhc3RU
TFMoKSkgewotICAgICAgICAgICAgICAgIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBpbnB1dEdQ
UiA9PSBHUFJJbmZvOjphcmd1bWVudEdQUjEgPyBHUFJJbmZvOjphcmd1bWVudEdQUjAgOiBHUFJJ
bmZvOjphcmd1bWVudEdQUjE7Ci0gICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6Omlz
X3NhbWVfdjxXYXNtOjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPGRlY2x0eXBl
KG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KT46OkFyZ3VtZW50VHlwZTwxPj4pOworICAg
ICAgICAgICAgICAgIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBpbnB1dEpTUi5wYXlsb2FkR1BS
KCkgPT0gR1BSSW5mbzo6YXJndW1lbnRHUFIxID8gR1BSSW5mbzo6YXJndW1lbnRHUFIwIDogR1BS
SW5mbzo6YXJndW1lbnRHUFIxOworICAgICAgICAgICAgICAgIEFTU0VSVCghaW5wdXRKU1IudXNl
cyh3YXNtQ29udGV4dEluc3RhbmNlR1BSKSk7CisgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6OmlzX3NhbWVfdjxXYXNtOjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRz
PGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+OjpBcmd1bWVudFR5cGU8MT4+KTsK
ICAgICAgICAgICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uod2FzbUNvbnRleHRJ
bnN0YW5jZUdQUik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVu
dHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KT4od2FzbUNvbnRleHRJbnN0YW5j
ZUdQUiwgaW5wdXRHUFIpOworICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBl
KG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+KHdhc21Db250ZXh0SW5zdGFuY2VHUFIsIGlucHV0
SlNSKTsKICAgICAgICAgICAgIGppdC5jYWxsT3BlcmF0aW9uKEZ1bmN0aW9uUHRyPE9wZXJhdGlv
blB0clRhZz4ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KSk7CiAgICAgICAgIH0gZWxzZQotICAg
ICAgICAgICAgYm94V2FzbVJlc3VsdChqaXQsIHNpZ25hdHVyZS5yZXR1cm5UeXBlKDApLCB3YXNt
RnJhbWVDb252ZW50aW9uLnJlc3VsdHNbMF0ucmVnKCksIEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIgfSk7CisgICAgICAgICAgICBib3hXYXNtUmVzdWx0KGppdCwgc2lnbmF0
dXJlLnJldHVyblR5cGUoMCksIHdhc21GcmFtZUNvbnZlbnRpb24ucmVzdWx0c1swXSwgSlNSSW5m
bzo6cmV0dXJuVmFsdWVKU1IpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEluZGV4aW5nVHlwZSBp
bmRleGluZ1R5cGUgPSBBcnJheVdpdGhVbmRlY2lkZWQ7Ci0gICAgICAgIEpTVmFsdWVSZWdzIHNj
cmF0Y2ggPSBKU1ZhbHVlUmVncyB7IHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2Ny
YXRjaEdQUnNbMV0gfTsKKyAgICAgICAgSlNWYWx1ZVJlZ3Mgc2NyYXRjaEpTUiA9IEpTVmFsdWVS
ZWdzIHsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgd2FzbUNhbGxpbmdDb252
ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1syXSwKKyNlbmRpZgorICAgICAgICAgICAgd2Fz
bUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1sxXQorICAgICAgICB9Owor
CisgICAgICAgIEFTU0VSVChzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSAhPSBHUFJSZWc6OkludmFs
aWRHUFJSZWcpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIEFTU0VSVChzY3JhdGNo
SlNSLnRhZ0dQUigpICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7CisgICAgICAgIEFTU0VSVChz
Y3JhdGNoSlNSLnBheWxvYWRHUFIoKSAhPSBzY3JhdGNoSlNSLnRhZ0dQUigpKTsKKyNlbmRpZgor
CiAgICAgICAgIC8vIFdlIGNhbiB1c2UgdGhlIGZpcnN0IGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVy
IGFzIGEgc2NyYXRjaCBzaW5jZSBpdCB3aWxsIGFsd2F5cyBiZSBtb3ZlZCBvbnRvIHRoZSBzdGFj
ayBiZWZvcmUgb3RoZXIgdmFsdWVzLgotICAgICAgICBGUFJSZWcgZnByU2NyYXRjaCA9IHdhc21D
YWxsaW5nQ29udmVudGlvbigpLmZwckFyZ3NbMF0uZnByKCk7CisgICAgICAgIEZQUlJlZyBmcHJT
Y3JhdGNoID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkuZnByQXJnc1swXTsKICAgICAgICAgYm9v
bCBoYXNJNjQgPSBmYWxzZTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpZ25h
dHVyZS5yZXR1cm5Db3VudCgpOyArK2kpIHsKICAgICAgICAgICAgIFZhbHVlTG9jYXRpb24gbG9j
ID0gd2FzbUZyYW1lQ29udmVudGlvbi5yZXN1bHRzW2ldOwogICAgICAgICAgICAgVHlwZSB0eXBl
ID0gc2lnbmF0dXJlLnJldHVyblR5cGUoaSk7CiAKICAgICAgICAgICAgIGhhc0k2NCB8PSB0eXBl
LmlzSTY0KCk7Ci0gICAgICAgICAgICBpZiAobG9jLmlzUmVnKCkpIHsKLSAgICAgICAgICAgICAg
ICBpZiAoIXR5cGUuaXNJNjQoKSkgewotICAgICAgICAgICAgICAgICAgICBib3hXYXNtUmVzdWx0
KGppdCwgc2lnbmF0dXJlLnJldHVyblR5cGUoaSksIGxvYy5yZWcoKSwgc2NyYXRjaCk7Ci0gICAg
ICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2gsIENDYWxsSGVscGVyczo6QWRk
cmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJlc3VsdFJlZ2lz
dGVycy5maW5kKGxvYy5yZWcoKSktPm9mZnNldCgpICsgd2FzbUZyYW1lQ29udmVudGlvbi5oZWFk
ZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoSlNWYWx1ZVJlZ3MgeyBsb2MucmVn
KCkuZ3ByKCkgfSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLnJlZygpKS0+b2Zmc2V0
KCkgKyB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRl
cykpOworICAgICAgICAgICAgaWYgKGxvYy5pc0dQUigpIHx8IGxvYy5pc0ZQUigpKSB7CisjaWYg
VVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICBBU1NFUlQoIWxvYy5pc0dQUigpIHx8
IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNl
dCgpICsgNCA9PSBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS50YWdHUFIoKSkt
Pm9mZnNldCgpKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIGF1dG8gYWRkcmVzcyA9IENDYWxs
SGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCB3YXNt
RnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcyk7CisgICAg
ICAgICAgICAgICAgc3dpdGNoICh0eXBlLmtpbmQpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFR5
cGVLaW5kOjpGMzI6CisgICAgICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OgorICAgICAg
ICAgICAgICAgICAgICBib3hXYXNtUmVzdWx0KGppdCwgdHlwZSwgbG9jLCBzY3JhdGNoSlNSKTsK
KyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoc2NyYXRjaEpTUiwgYWRkcmVzcy53
aXRoT2Zmc2V0KHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmZwcigpKS0+b2Zmc2V0KCkp
KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBUeXBl
S2luZDo6STY0OgorICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShsb2MuanNyKCks
IGFkZHJlc3Mud2l0aE9mZnNldChzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS5w
YXlsb2FkR1BSKCkpLT5vZmZzZXQoKSkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBib3hXYXNtUmVzdWx0
KGppdCwgdHlwZSwgbG9jLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0
b3JlVmFsdWUoc2NyYXRjaEpTUiwgYWRkcmVzcy53aXRoT2Zmc2V0KHNhdmVkUmVzdWx0UmVnaXN0
ZXJzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpKSk7CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICAgICAgaWYgKCF0eXBlLmlzSTY0KCkpIHsKICAgICAgICAgICAgICAgICAg
ICAgYXV0byBsb2NhdGlvbiA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0
YWNrUG9pbnRlclJlZ2lzdGVyLCBsb2Mub2Zmc2V0RnJvbVNQKCkpOwotICAgICAgICAgICAgICAg
ICAgICBSZWcgdG1wID0gKHR5cGUuaXNGMzIoKSB8fCB0eXBlLmlzRjY0KCkpID8gUmVnKGZwclNj
cmF0Y2gpIDogUmVnKHNjcmF0Y2guZ3ByKCkpOwotICAgICAgICAgICAgICAgICAgICBqaXQubG9h
ZDY0VG9SZWcobG9jYXRpb24sIHRtcCk7Ci0gICAgICAgICAgICAgICAgICAgIGJveFdhc21SZXN1
bHQoaml0LCBzaWduYXR1cmUucmV0dXJuVHlwZShpKSwgdG1wLCBzY3JhdGNoKTsKLSAgICAgICAg
ICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoc2NyYXRjaCwgbG9jYXRpb24pOworICAgICAgICAg
ICAgICAgICAgICBWYWx1ZUxvY2F0aW9uIHRtcDsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNo
ICh0eXBlLmtpbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgor
ICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gVmFsdWVMb2NhdGlvbiB7IGZwclNjcmF0Y2gg
fTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkRmxvYXQobG9jYXRpb24sIGZwclNj
cmF0Y2gpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6OkY2NDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFZh
bHVlTG9jYXRpb24geyBmcHJTY3JhdGNoIH07CisgICAgICAgICAgICAgICAgICAgICAgICBqaXQu
bG9hZERvdWJsZShsb2NhdGlvbiwgZnByU2NyYXRjaCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgorICAgICAg
ICAgICAgICAgICAgICAgICAgdG1wID0gVmFsdWVMb2NhdGlvbiB7IHNjcmF0Y2hKU1IgfTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkMzIobG9jYXRpb24sIHNjcmF0Y2hKU1IucGF5
bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gVmFsdWVMb2Nh
dGlvbiB7IHNjcmF0Y2hKU1IgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkVmFs
dWUobG9jYXRpb24sIHNjcmF0Y2hKU1IpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYm94V2FzbVJlc3Vs
dChqaXQsIHR5cGUsIHRtcCwgc2NyYXRjaEpTUik7CisgICAgICAgICAgICAgICAgICAgIGppdC5z
dG9yZVZhbHVlKHNjcmF0Y2hKU1IsIGxvY2F0aW9uKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICB9CiAKQEAgLTEzNiwzNyArMTg0LDQ3IEBAIHZvaWQgbWFyc2hhbGxKU1Jlc3VsdChD
Q2FsbEhlbHBlcnMmIGppdCwgY29uc3QgVHlwZURlZmluaXRpb24mIHR5cGVEZWZpbml0aW9uLCBj
CiAKICAgICAgICAgICAgICAgICBHUFJSZWcgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IFBpbm5l
ZFJlZ2lzdGVySW5mbzo6Z2V0KCkud2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXI7CiAgICAgICAg
ICAgICAgICAgaWYgKENvbnRleHQ6OnVzZUZhc3RUTFMoKSkgewotICAgICAgICAgICAgICAgICAg
ICB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gR1BSSW5mbzo6YXJndW1lbnRHUFIxOwotICAgICAg
ICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZV92PFdhc206Okluc3RhbmNl
KiwgdHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1
bHRzQXJyYXkpPjo6QXJndW1lbnRUeXBlPDE+Pik7CisgICAgICAgICAgICAgICAgICAgIHdhc21D
b250ZXh0SW5zdGFuY2VHUFIgPSBwcmVmZXJyZWRBcmd1bWVudEdQUjxkZWNsdHlwZShvcGVyYXRp
b25Db252ZXJ0VG9CaWdJbnQpLCAxPigpOworICAgICAgICAgICAgICAgICAgICBzdGF0aWNfYXNz
ZXJ0KHN0ZDo6aXNfc2FtZV92PFdhc206Okluc3RhbmNlKiwgdHlwZW5hbWUgRnVuY3Rpb25UcmFp
dHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KT46OkFyZ3VtZW50VHlwZTwxPj4p
OwogICAgICAgICAgICAgICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uod2FzbUNv
bnRleHRJbnN0YW5jZUdQUik7CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAg
aWYgKGxvYy5pc1JlZygpKQotICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDY0KENDYWxsSGVs
cGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJl
c3VsdFJlZ2lzdGVycy5maW5kKGxvYy5yZWcoKSktPm9mZnNldCgpICsgd2FzbUZyYW1lQ29udmVu
dGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApOwotICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICBhdXRv
IGxvY2F0aW9uID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIsIGxvYy5vZmZzZXRGcm9tU1AoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGpp
dC5sb2FkNjRUb1JlZyhsb2NhdGlvbiwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9w
ZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+KHdhc21Db250ZXh0SW5zdGFuY2VHUFIsIEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7CisgICAgICAgICAgICAgICAgY29uc3RleHByIEpTVmFsdWVSZWdzIHZh
bHVlSlNSID0gcHJlZmVycmVkQXJndW1lbnRKU1I8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRv
QmlnSW50KSwgMj4oKTsKKworICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBh
ZGRyZXNzIHsgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciB9OworICAgICAgICAg
ICAgICAgIGlmIChsb2MuaXNHUFIoKSB8fCBsb2MuaXNGUFIoKSkgeworI2lmIFVTRShKU1ZBTFVF
MzJfNjQpCisgICAgICAgICAgICAgICAgICAgIEFTU0VSVChzYXZlZFJlc3VsdFJlZ2lzdGVycy5m
aW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSArIDQgPT0gc2F2ZWRSZXN1bHRS
ZWdpc3RlcnMuZmluZChsb2MuanNyKCkudGFnR1BSKCkpLT5vZmZzZXQoKSk7CisjZW5kaWYKKyAg
ICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9IGFkZHJlc3Mud2l0aE9mZnNldChzYXZlZFJlc3Vs
dFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSArIHdhc21G
cmFtZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKTsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9IGFkZHJlc3Mu
d2l0aE9mZnNldChsb2Mub2Zmc2V0RnJvbVNQKCkpOworCisgICAgICAgICAgICAgICAgaml0Lmxv
YWRWYWx1ZShhZGRyZXNzLCB2YWx1ZUpTUik7CisgICAgICAgICAgICAgICAgaml0LnNldHVwQXJn
dW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+KHdhc21Db250ZXh0SW5z
dGFuY2VHUFIsIHZhbHVlSlNSKTsKICAgICAgICAgICAgICAgICBqaXQuY2FsbE9wZXJhdGlvbihG
dW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCkpOwot
ICAgICAgICAgICAgICAgIGlmIChsb2MuaXNSZWcoKSkKLSAgICAgICAgICAgICAgICAgICAgaml0
LnN0b3JlVmFsdWUoSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiB9LCBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2
ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MucmVnKCkpLT5vZmZzZXQoKSArIHdhc21GcmFtZUNv
bnZlbnRpb24uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSk7Ci0gICAgICAgICAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gbG9jYXRpb24gPSBDQ2FsbEhl
bHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgbG9jLm9m
ZnNldEZyb21TUCgpKTsKLSAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoSlNWYWx1
ZVJlZ3MgeyBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiB9LCBsb2NhdGlvbik7Ci0gICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTUkluZm86OnJldHVyblZh
bHVlSlNSLCBhZGRyZXNzKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIEdQ
UlJlZyB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKS53
YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlcjsKICAgICAgICAgaWYgKENvbnRleHQ6OnVzZUZhc3RU
TFMoKSkgewotICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IEdQUkluZm86OmFy
Z3VtZW50R1BSMTsKKyAgICAgICAgICAgIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBwcmVmZXJy
ZWRBcmd1bWVudEdQUjxkZWNsdHlwZShvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSksIDE+
KCk7CiAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZV92PFdhc206Okluc3Rh
bmNlKiwgdHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVS
ZXN1bHRzQXJyYXkpPjo6QXJndW1lbnRUeXBlPDE+Pik7CiAgICAgICAgICAgICBqaXQubG9hZFdh
c21Db250ZXh0SW5zdGFuY2Uod2FzbUNvbnRleHRJbnN0YW5jZUdQUik7CiAgICAgICAgIH0KIAot
ICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1
bHRzQXJyYXkpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW1QdHIoJnR5cGVEZWZpbml0aW9uKSwgaW5kZXhpbmdUeXBlLCBDQ2FsbEhlbHBlcnM6OnN0YWNr
UG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgY29uc3RleHByIEdQUlJlZyBzYXZlZFJlc3VsdHNH
UFIgPSBwcmVmZXJyZWRBcmd1bWVudEdQUjxkZWNsdHlwZShvcGVyYXRpb25BbGxvY2F0ZVJlc3Vs
dHNBcnJheSksIDQ+KCk7CisgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0c0dQUik7CisgICAgICAgIGlmIGNvbnN0ZXhwciAobWF4
RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAgICBqaXQuc3ViUHRyKENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgQ0Nh
bGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIEFTU0VSVCh3YXNtQ29u
dGV4dEluc3RhbmNlR1BSICE9IHNhdmVkUmVzdWx0c0dQUik7CisgICAgICAgIGppdC5zZXR1cEFy
Z3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSk+KHdhc21Db250
ZXh0SW5zdGFuY2VHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigmdHlwZURlZmluaXRp
b24pLCBpbmRleGluZ1R5cGUsIHNhdmVkUmVzdWx0c0dQUik7CiAgICAgICAgIGppdC5jYWxsT3Bl
cmF0aW9uKEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQWxsb2NhdGVSZXN1
bHRzQXJyYXkpKTsKKyAgICAgICAgaWYgY29uc3RleHByIChtYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbCkKKyAgICAgICAgICAgIGppdC5hZGRQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
MzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyKTsKKworICAgICAgICBqaXQuYm94Q2VsbChHUFJJbmZvOjpyZXR1cm5WYWx1
ZUdQUiwgSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpOwogICAgIH0KIH0KIApAQCAtMTc4LDcgKzIz
NiwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4gY3JlYXRlSlNUb1dhc21X
cmFwcGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogICAgIC8vIEZJWE1FIFN0b3AgdXNpbmcg
MCBhcyBjb2RlQmxvY2tzLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY1MzIxCiAgICAgaml0LmVtaXRaZXJvVG9DYWxsRnJhbWVIZWFkZXIoQ2FsbEZyYW1lU2xvdDo6
Y29kZUJsb2NrKTsKICAgICBNYWNyb0Fzc2VtYmxlcjo6RGF0YUxhYmVsUHRyIGNhbGxlZU1vdmVM
b2NhdGlvbiA9IGppdC5tb3ZlV2l0aFBhdGNoKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRy
KG51bGxwdHIpLCBHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIpOwotICAgIGppdC5l
bWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIoR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BS
LCBDYWxsRnJhbWVTbG90OjpjYWxsZWUpOworICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBjYWxs
ZWVTbG90IHsgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZVNsb3Q6OmNhbGxl
ZSAqIHNpemVvZihSZWdpc3RlcikgfTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6bm9uUHJl
c2VydmVkTm9uUmV0dXJuR1BSLCBjYWxsZWVTbG90LndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkp
OworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoSlNWYWx1ZTo6V2FzbVRhZyksIGNhbGxlZVNsb3Qud2l0aE9mZnNldChUYWdP
ZmZzZXQpKTsKKyNlbmRpZgogICAgIFZlY3RvcjxDb2RlTG9jYXRpb25EYXRhTGFiZWxQdHI8V2Fz
bUVudHJ5UHRyVGFnPj4qIGxpbmtlZENhbGxlZU1vdmUgPSAmcmVzdWx0LT5jYWxsZWVNb3ZlTG9j
YXRpb25zOwogICAgIGppdC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIp
IHsKICAgICAgICAgbGlua2VkQ2FsbGVlTW92ZS0+YXBwZW5kKGxpbmtCdWZmZXIubG9jYXRpb25P
ZjxXYXNtRW50cnlQdHJUYWc+KGNhbGxlZU1vdmVMb2NhdGlvbikpOwpAQCAtMTk3LDExICsyNTks
MTEgQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+IGNyZWF0ZUpTVG9XYXNtV3Jh
cHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QKICAgICBSZWdpc3RlckF0T2Zmc2V0TGlzdCBy
ZWdpc3RlcnNUb1NwaWxsKHRvU2F2ZSwgUmVnaXN0ZXJBdE9mZnNldExpc3Q6Ok9mZnNldEJhc2VU
eXBlOjpGcmFtZVBvaW50ZXJCYXNlZCk7CiAgICAgcmVzdWx0LT5lbnRyeXBvaW50LmNhbGxlZVNh
dmVSZWdpc3RlcnMgPSByZWdpc3RlcnNUb1NwaWxsOwogCi0gICAgc2l6ZV90IHRvdGFsRnJhbWVT
aXplID0gcmVnaXN0ZXJzVG9TcGlsbC5zaXplKCkgKiBzaXplb2YoQ1BVUmVnaXN0ZXIpOworICAg
IHNpemVfdCB0b3RhbEZyYW1lU2l6ZSA9IHJlZ2lzdGVyc1RvU3BpbGwuc2l6ZU9mQXJlYUluQnl0
ZXMoKTsKICAgICBDYWxsSW5mb3JtYXRpb24gd2FzbUZyYW1lQ29udmVudGlvbiA9IHdhc21DYWxs
aW5nQ29udmVudGlvbigpLmNhbGxJbmZvcm1hdGlvbkZvcih0eXBlRGVmaW5pdGlvbik7CiAgICAg
UmVnaXN0ZXJBdE9mZnNldExpc3Qgc2F2ZWRSZXN1bHRSZWdpc3RlcnMgPSB3YXNtRnJhbWVDb252
ZW50aW9uLmNvbXB1dGVSZXN1bHRzT2Zmc2V0TGlzdCgpOwogICAgIHRvdGFsRnJhbWVTaXplICs9
IHdhc21GcmFtZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzOwot
ICAgIHRvdGFsRnJhbWVTaXplICs9IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLnNpemUoKSAqIHNpemVv
ZihDUFVSZWdpc3Rlcik7CisgICAgdG90YWxGcmFtZVNpemUgKz0gc2F2ZWRSZXN1bHRSZWdpc3Rl
cnMuc2l6ZU9mQXJlYUluQnl0ZXMoKTsKIAogICAgIHRvdGFsRnJhbWVTaXplID0gV1RGOjpyb3Vu
ZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50Qnl0ZXMoKSwgdG90YWxGcmFtZVNpemUpOwog
ICAgIGppdC5zdWJQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMih0b3RhbEZyYW1lU2l6
ZSksIE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CkBAIC0yMjMsOSArMjg1
LDEyIEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVhdGVKU1RvV2FzbVdy
YXBwZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzIGNhbGxlZUZyYW1lID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVy
OjpzdGFja1BvaW50ZXJSZWdpc3RlciwgMCk7CiAKLSAgICAgICAgLy8gV2UncmUgZ29pbmcgdG8g
c2V0IHRoZSBwaW5uZWQgcmVnaXN0ZXJzIGFmdGVyIHRoaXMuIFNvCi0gICAgICAgIC8vIHdlIGNh
biB1c2UgdGhpcyBhcyBhIHNjcmF0Y2ggZm9yIG5vdyBzaW5jZSB3ZSBzYXZlZCBpdCBhYm92ZS4K
LSAgICAgICAgR1BSUmVnIHNjcmF0Y2hSZWcgPSBwaW5uZWRSZWdzLmJhc2VNZW1vcnlQb2ludGVy
OworICAgICAgICBKU1ZhbHVlUmVncyBzY3JhdGNoSlNSIHsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0
KQorICAgICAgICAgICAgd2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BS
c1syXSwKKyNlbmRpZgorICAgICAgICAgICAgd2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9n
dWVTY3JhdGNoR1BSc1sxXQorICAgICAgICB9OwogCiAgICAgICAgIGlmICghQ29udGV4dDo6dXNl
RmFzdFRMUygpKSB7CiAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTQ2FsbGluZ0NvbnZlbnRpb246Omluc3Rh
bmNlU3RhY2tPZmZzZXQpLCB3YXNtQ29udGV4dEluc3RhbmNlR1BSKTsKQEAgLTIzOSwyMiArMzA0
LDM0IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVhdGVKU1RvV2FzbVdy
YXBwZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAgICAgICAgICAgICBUeXBlIHR5cGUgPSBz
aWduYXR1cmUuYXJndW1lbnRUeXBlKGkpOwogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzIGpzUGFyYW0oR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGpzRnJhbWVDb252ZW50aW9u
LnBhcmFtc1tpXS5vZmZzZXRGcm9tRlAoKSk7CiAgICAgICAgICAgICBpZiAod2FzbUZyYW1lQ29u
dmVudGlvbi5wYXJhbXNbaV0uaXNTdGFja0FyZ3VtZW50KCkpIHsKKyAgICAgICAgICAgICAgICBD
Q2FsbEhlbHBlcnM6OkFkZHJlc3MgYWRkciB7IGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUZy
YW1lQ29udmVudGlvbi5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpIH07CiAgICAgICAgICAgICAg
ICAgaWYgKHR5cGUuaXNJMzIoKSB8fCB0eXBlLmlzRjMyKCkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgaml0LmxvYWQzMihqc1BhcmFtLCBzY3JhdGNoUmVnKTsKLSAgICAgICAgICAgICAgICAgICAg
aml0LnN0b3JlMzIoc2NyYXRjaFJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtRnJhbWVD
b252ZW50aW9uLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkpOworICAgICAgICAgICAgICAgICAg
ICBqaXQubG9hZDMyKGpzUGFyYW0sIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICAgICAg
ICAgICAgICAgICAgaml0LnN0b3JlMzIoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIGFkZHIud2l0
aE9mZnNldChQYXlsb2FkT2Zmc2V0KSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAg
ICAgICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMCksIGFk
ZHIud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgogICAgICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaFJlZyk7
Ci0gICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZTY0KHNjcmF0Y2hSZWcsIGNhbGxlZUZyYW1l
LndpdGhPZmZzZXQod2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkp
KTsKKyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShqc1BhcmFtLCBzY3JhdGNoSlNS
KTsKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoc2NyYXRjaEpTUiwgYWRkcik7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICBpZiAodHlwZS5pc0kzMigpIHx8IHR5cGUuaXNGMzIoKSkKLSAgICAgICAgICAgICAgICAgICAg
aml0LmxvYWQzMlRvUmVnKGpzUGFyYW0sIHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLnJl
ZygpKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGppdC5sb2Fk
NjRUb1JlZyhqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5yZWcoKSk7Cisg
ICAgICAgICAgICAgICAgaWYgKHR5cGUuaXNGMzIoKSkKKyAgICAgICAgICAgICAgICAgICAgaml0
LmxvYWRGbG9hdChqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5mcHIoKSk7
CisgICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZS5pc0Y2NCgpKQorICAgICAgICAgICAgICAg
ICAgICBqaXQubG9hZERvdWJsZShqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tp
XS5mcHIoKSk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZS5pc0kzMigpKSB7CisgICAg
ICAgICAgICAgICAgICAgIGppdC5sb2FkMzIoanNQYXJhbSwgd2FzbUZyYW1lQ29udmVudGlvbi5w
YXJhbXNbaV0uanNyKCkucGF5bG9hZEdQUigpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAg
ICAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSwg
d2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0uanNyKCkudGFnR1BSKCkpOworI2VuZGlmCisg
ICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUo
anNQYXJhbSwgd2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0uanNyKCkpOwogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgfQogCisjaWYgIUNQVShBUk0pIC8vIEFSTSBoYXMgbm8gcGlu
bmVkIHJlZ2lzdGVycyBmb3IgV2FzbSBNZW1vcnksIHNvIG5vIG5lZWQgdG8gc2V0IHRoZW0gdXAK
ICAgICBpZiAoISFpbmZvLm1lbW9yeSkgewogICAgICAgICBHUFJSZWcgYmFzZU1lbW9yeSA9IHBp
bm5lZFJlZ3MuYmFzZU1lbW9yeVBvaW50ZXI7CiAgICAgICAgIEdQUlJlZyBzaXplID0gd2FzbUNh
bGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1swXTsKQEAgLTI2NSwxNyArMzQy
LDE4IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVhdGVKU1RvV2FzbVdy
YXBwZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAKICAgICAgICAgR1BSUmVnIGN1cnJlbnRJ
bnN0YW5jZUdQUiA9IENvbnRleHQ6OnVzZUZhc3RUTFMoKSA/IGJhc2VNZW1vcnkgOiB3YXNtQ29u
dGV4dEluc3RhbmNlR1BSOwogICAgICAgICBpZiAoaXNBUk02NEUoKSkgewotICAgICAgICAgICAg
aWYgKG1vZGUgIT0gV2FzbTo6TWVtb3J5TW9kZTo6U2lnbmFsaW5nKQorICAgICAgICAgICAgaWYg
KG1vZGUgPT0gV2FzbTo6TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcpCiAgICAgICAgICAgICAg
ICAgc2l6ZSA9IHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXI7CiAgICAgICAg
ICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoY3VycmVudEluc3RhbmNlR1BS
LCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHNDaGVja2luZ1NpemUoKSksIHNp
emUpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG1vZGUgIT0gV2FzbTo6TWVt
b3J5TW9kZTo6U2lnbmFsaW5nKQorICAgICAgICAgICAgaWYgKG1vZGUgPT0gV2FzbTo6TWVtb3J5
TW9kZTo6Qm91bmRzQ2hlY2tpbmcpCiAgICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKGN1cnJlbnRJbnN0YW5jZUdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNl
dE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKCkpLCBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5n
U2l6ZVJlZ2lzdGVyKTsKICAgICAgICAgfQogCiAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVs
cGVyczo6QWRkcmVzcyhjdXJyZW50SW5zdGFuY2VHUFIsIFdhc206Okluc3RhbmNlOjpvZmZzZXRP
ZkNhY2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7CiAgICAgICAgIGppdC5jYWdlQ29uZGl0aW9u
YWxseUFuZFVudGFnKEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJhc2VNZW1vcnksIHNpemUsIHNjcmF0
Y2gpOwogICAgIH0KKyNlbmRpZgogCiAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIGNhbGwgPSBqaXQu
dGhyZWFkU2FmZVBhdGNoYWJsZU5lYXJDYWxsKCk7CiAgICAgdW5zaWduZWQgZnVuY3Rpb25JbmRl
eFNwYWNlID0gZnVuY3Rpb25JbmRleCArIGluZm8uaW1wb3J0RnVuY3Rpb25Db3VudCgpOwpAQCAt
Mjg4LDcgKzM2Niw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVhdGVK
U1RvV2FzbVdyYXBwZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAKICAgICBmb3IgKGNvbnN0
IFJlZ2lzdGVyQXRPZmZzZXQmIHJlZ0F0T2Zmc2V0IDogcmVnaXN0ZXJzVG9TcGlsbCkgewogICAg
ICAgICBHUFJSZWcgcmVnID0gcmVnQXRPZmZzZXQucmVnKCkuZ3ByKCk7Ci0gICAgICAgIEFTU0VS
VChyZWcgIT0gR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICBBU1NFUlQoIUpTUklu
Zm86OnJldHVyblZhbHVlSlNSLnVzZXMocmVnKSk7CiAgICAgICAgIHB0cmRpZmZfdCBvZmZzZXQg
PSByZWdBdE9mZnNldC5vZmZzZXQoKTsKICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBvZmZzZXQpLCByZWcpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcAppbmRleCA4MGEx
ZWRmMWJhZjEuLmU4NWVjOWEyMjY0OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2FzbVRvSlMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dhc21Ub0pTLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5o
IgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlJbnN0YW5jZS5oIgogI2luY2x1ZGUgIkxpbmtCdWZm
ZXIuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1
ZGUgIlRodW5rR2VuZXJhdG9ycy5oIgogI2luY2x1ZGUgIldhc21DYWxsaW5nQ29udmVudGlvbi5o
IgogI2luY2x1ZGUgIldhc21Db250ZXh0SW5saW5lcy5oIgpAQCAtNjksNyArNzAsNyBAQCBFeHBl
Y3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1
cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgIC8vIElmIHdlIGV2ZXIgY2hhbmdlIHRoaXMsIHdlIHdp
bGwgYWxzbyBuZWVkIHRvIGNoYW5nZSBXYXNtQjNJUkdlbmVyYXRvci4KIAogICAgIC8vIEJlbG93
LCB3ZSBhc3N1bWUgdGhhdCB0aGUgSlMgY2FsbGluZyBjb252ZW50aW9uIGlzIGFsd2F5cyBvbiB0
aGUgc3RhY2suCi0gICAgQVNTRVJUKCFqc0NDLmdwckFyZ3Muc2l6ZSgpKTsKKyAgICBBU1NFUlQo
IWpzQ0MuanNyQXJncy5zaXplKCkpOwogICAgIEFTU0VSVCghanNDQy5mcHJBcmdzLnNpemUoKSk7
CiAKICAgICBqaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKQEAgLTg2LDE0ICs4NywyMiBAQCBF
eHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0Zh
aWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgIC8vIGZvciB1cyBoZXJlLgogCiAgICAgY29uc3Qg
dW5zaWduZWQgbnVtYmVyT2ZQYXJhbWV0ZXJzID0gYXJnQ291bnQgKyAxOyAvLyBUaGVyZSBpcyBh
ICJ0aGlzIiBhcmd1bWVudC4KLSAgICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlJlZ3NGb3JDYWxs
ID0gQ2FsbEZyYW1lOjpoZWFkZXJTaXplSW5SZWdpc3RlcnMgKyBudW1iZXJPZlBhcmFtZXRlcnM7
CisgICAgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZSZWdzRm9yQ2FsbCA9IENhbGxGcmFtZTo6aGVh
ZGVyU2l6ZUluUmVnaXN0ZXJzICsgcm91bmRBcmd1bWVudENvdW50VG9BbGlnbkZyYW1lKG51bWJl
ck9mUGFyYW1ldGVycyk7CisgICAgQVNTRVJUKCEobnVtYmVyT2ZSZWdzRm9yQ2FsbCAlIHN0YWNr
QWxpZ25tZW50UmVnaXN0ZXJzKCkpKTsKICAgICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkJ5dGVz
Rm9yQ2FsbCA9IG51bWJlck9mUmVnc0ZvckNhbGwgKiBzaXplb2YoUmVnaXN0ZXIpIC0gc2l6ZW9m
KENhbGxlckZyYW1lQW5kUEMpOwotICAgIGNvbnN0IHVuc2lnbmVkIHN0YWNrT2Zmc2V0ID0gV1RG
Ojpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50Qnl0ZXMoKSwgc3RkOjptYXg8dW5z
aWduZWQ+KG51bWJlck9mQnl0ZXNGb3JDYWxsLCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5zaXplKCkg
KiBzaXplb2YoQ1BVUmVnaXN0ZXIpKSk7CisgICAgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZCeXRl
c0ZvclNhdmVkUmVzdWx0cyA9IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLnNpemVPZkFyZWFJbkJ5dGVz
KCk7CisgICAgY29uc3QgdW5zaWduZWQgc3RhY2tPZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRp
cGxlT2Yoc3RhY2tBbGlnbm1lbnRCeXRlcygpLCBzdGQ6Om1heChudW1iZXJPZkJ5dGVzRm9yQ2Fs
bCwgbnVtYmVyT2ZCeXRlc0ZvclNhdmVkUmVzdWx0cykpOwogICAgIGppdC5zdWJQdHIoTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW0zMihzdGFja09mZnNldCksIE1hY3JvQXNzZW1ibGVyOjpzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgSklUOjpBZGRyZXNzIGNhbGxlZUZyYW1lID0gQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgLXN0
YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7CiAKICAgICAv
LyBGSVhNRSBtYWtlIHRoZXNlIGxvb3BzIHdoaWNoIHN3aXRjaCBvbiBzaWduYXR1cmUgaWYgdGhl
cmUgYXJlIG1hbnkgYXJndW1lbnRzIG9uIHRoZSBzdGFjay4gSXQnbGwgb3RoZXJ3aXNlIGJlIGh1
Z2UgZm9yIGh1Z2UgdHlwZSBkZWZpbml0aW9ucy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2NTU0NwogCisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBjb25zdGV4cHIg
SlNWYWx1ZVJlZ3MganNBcmcxMCB7IEdQUkluZm86OmFyZ3VtZW50R1BSMCB9OworI2VsaWYgVVNF
KEpTVkFMVUUzMl82NCkKKyAgICBjb25zdGV4cHIgSlNWYWx1ZVJlZ3MganNBcmcxMCB7IEdQUklu
Zm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwIH07CisjZW5kaWYKKwogICAg
IC8vIEZpcnN0IGdvIHRocm91Z2ggdGhlIGludGVnZXIgcGFyYW1ldGVycywgZnJlZWluZyB1cCB0
aGVpciByZWdpc3RlciBmb3IgdXNlIGFmdGVyd2FyZHMuCiAgICAgewogICAgICAgICB1bnNpZ25l
ZCBtYXJzaGFsbGVkR1BScyA9IDA7CkBAIC0xMTQsMjEgKzEyMywyMSBAQCBFeHBlY3RlZDxNYWNy
b0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21U
b0pTKFZNJiB2bQogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKICAgICAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6OkkzMjoKICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDog
ewotICAgICAgICAgICAgICAgIEdQUlJlZyBncHJSZWc7Ci0gICAgICAgICAgICAgICAgaWYgKG1h
cnNoYWxsZWRHUFJzIDwgd2FzbUNDLmdwckFyZ3Muc2l6ZSgpKQotICAgICAgICAgICAgICAgICAg
ICBncHJSZWcgPSB3YXNtQ0MuZ3ByQXJnc1ttYXJzaGFsbGVkR1BSc10uZ3ByKCk7CisgICAgICAg
ICAgICAgICAgSlNWYWx1ZVJlZ3MgYXJnUmVnOworICAgICAgICAgICAgICAgIGlmIChtYXJzaGFs
bGVkR1BScyA8IHdhc21DQy5qc3JBcmdzLnNpemUoKSkKKyAgICAgICAgICAgICAgICAgICAgYXJn
UmVnID0gd2FzbUNDLmpzckFyZ3NbbWFyc2hhbGxlZEdQUnNdOwogICAgICAgICAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBhbHJlYWR5IHNwaWxsZWQgYWxsIGFy
Z3VtZW50cywgdGhlc2UgcmVnaXN0ZXJzIGFyZSBhdmFpbGFibGUgYXMgc2NyYXRjaC4KLSAgICAg
ICAgICAgICAgICAgICAgZ3ByUmVnID0gR1BSSW5mbzo6YXJndW1lbnRHUFIwOwotICAgICAgICAg
ICAgICAgICAgICBqaXQubG9hZDY0KEpJVDo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdp
c3RlciwgZnJPZmZzZXQpLCBncHJSZWcpOworICAgICAgICAgICAgICAgICAgICBhcmdSZWcgPSBq
c0FyZzEwOworICAgICAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKEpJVDo6QWRkcmVzcyhH
UFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgZnJPZmZzZXQpLCBhcmdSZWcpOwogICAgICAgICAg
ICAgICAgICAgICBmck9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICArK21hcnNoYWxsZWRHUFJzOwogICAgICAgICAgICAgICAgIGlm
IChhcmdUeXBlLmlzSTMyKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQz
MlRvV29yZChncHJSZWcsIGdwclJlZyk7IC8vIENsZWFyIG5vbi1pbnQzMiBhbmQgbm9uLXRhZyBi
aXRzLgotICAgICAgICAgICAgICAgICAgICBqaXQuYm94SW50MzIoZ3ByUmVnLCBKU1ZhbHVlUmVn
cyhncHJSZWcpLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworICAgICAgICAgICAgICAgICAgICBq
aXQuemVyb0V4dGVuZDMyVG9Xb3JkKGFyZ1JlZy5wYXlsb2FkR1BSKCksIGFyZ1JlZy5wYXlsb2Fk
R1BSKCkpOyAvLyBDbGVhciBub24taW50MzIgYW5kIG5vbi10YWcgYml0cy4KKyAgICAgICAgICAg
ICAgICAgICAgaml0LmJveEludDMyKGFyZ1JlZy5wYXlsb2FkR1BSKCksIGFyZ1JlZywgRG9Ob3RI
YXZlVGFnUmVnaXN0ZXJzKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaml0
LnN0b3JlNjQoZ3ByUmVnLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0
KSk7CisgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoYXJnUmVnLCBjYWxsZWVGcmFtZS53
aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSk7CiAgICAgICAgICAgICAgICAgY2FsbGVlRnJh
bWVPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIH0KQEAgLTE0NSw2ICsxNTQsNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNv
ZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQog
ICAgIH0KICAgICAKICAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgLy8gSW50ZWdl
ciByZWdpc3RlcnMgaGF2ZSBhbHJlYWR5IGJlZW4gc3BpbGxlZCwgdGhlc2UgYXJlIG5vdyBhdmFp
bGFibGUuCiAgICAgICAgIEdQUlJlZyBkb3VibGVFbmNvZGVPZmZzZXRHUFJSZWcgPSBHUFJJbmZv
Ojphcmd1bWVudEdQUjA7CiAgICAgICAgIEdQUlJlZyBzY3JhdGNoID0gR1BSSW5mbzo6YXJndW1l
bnRHUFIxOwpAQCAtMTYwLDYgKzE3MCw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAg
ICAgICAgICAgICAgaGFzTWF0ZXJpYWxpemVkRG91YmxlRW5jb2RlT2Zmc2V0ID0gdHJ1ZTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfTsKKyNlbmRpZgogCiAgICAgICAgIHVuc2lnbmVkIG1hcnNo
YWxsZWRHUFJzID0gMDsKICAgICAgICAgdW5zaWduZWQgbWFyc2hhbGxlZEZQUnMgPSAwOwpAQCAt
MTY4LDEwICsxNzksMTQgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRy
eVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KIAogICAgICAgICBhdXRv
IG1hcnNoYWxsRlBSID0gWyZdIChGUFJSZWcgZnByUmVnKSB7CiAgICAgICAgICAgICBqaXQucHVy
aWZ5TmFOKGZwclJlZyk7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgICAgIGppdC5tb3Zl
RG91YmxlVG82NChmcHJSZWcsIHNjcmF0Y2gpOwogICAgICAgICAgICAgbWF0ZXJpYWxpemVEb3Vi
bGVFbmNvZGVPZmZzZXQoZG91YmxlRW5jb2RlT2Zmc2V0R1BSUmVnKTsKICAgICAgICAgICAgIGpp
dC5hZGQ2NChkb3VibGVFbmNvZGVPZmZzZXRHUFJSZWcsIHNjcmF0Y2gpOwogICAgICAgICAgICAg
aml0LnN0b3JlNjQoc2NyYXRjaCwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9m
ZnNldCkpOworI2Vsc2UKKyAgICAgICAgICAgIGppdC5zdG9yZURvdWJsZShmcHJSZWcsIGNhbGxl
ZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsKKyNlbmRpZgogICAgICAgICAg
ICAgY2FsbGVlRnJhbWVPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKICAgICAgICAgICAgICsr
bWFyc2hhbGxlZEZQUnM7CiAgICAgICAgIH07CkBAIC0xOTEsNyArMjA2LDcgQEAgRXhwZWN0ZWQ8
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3
YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkkzMjoKICAgICAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDogewogICAgICAgICAgICAgICAgIC8vIFNraXBwZWQ6IGhh
bmRsZWQgYWJvdmUuCi0gICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRHUFJzID49IHdhc21D
Qy5ncHJBcmdzLnNpemUoKSkKKyAgICAgICAgICAgICAgICBpZiAobWFyc2hhbGxlZEdQUnMgPj0g
d2FzbUNDLmpzckFyZ3Muc2l6ZSgpKQogICAgICAgICAgICAgICAgICAgICBmck9mZnNldCArPSBz
aXplb2YoUmVnaXN0ZXIpOwogICAgICAgICAgICAgICAgICsrbWFyc2hhbGxlZEdQUnM7CiAgICAg
ICAgICAgICAgICAgY2FsbGVlRnJhbWVPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKQEAgLTIw
MCw3ICsyMTUsNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRy
VGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgY2FzZSBU
eXBlS2luZDo6RjMyOiB7CiAgICAgICAgICAgICAgICAgRlBSUmVnIGZwclJlZzsKICAgICAgICAg
ICAgICAgICBpZiAobWFyc2hhbGxlZEZQUnMgPCB3YXNtQ0MuZnByQXJncy5zaXplKCkpCi0gICAg
ICAgICAgICAgICAgICAgIGZwclJlZyA9IHdhc21DQy5mcHJBcmdzW21hcnNoYWxsZWRGUFJzXS5m
cHIoKTsKKyAgICAgICAgICAgICAgICAgICAgZnByUmVnID0gd2FzbUNDLmZwckFyZ3NbbWFyc2hh
bGxlZEZQUnNdOwogICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAv
LyBXZSd2ZSBhbHJlYWR5IHNwaWxsZWQgYWxsIGFyZ3VtZW50cywgdGhlc2UgcmVnaXN0ZXJzIGFy
ZSBhdmFpbGFibGUgYXMgc2NyYXRjaC4KICAgICAgICAgICAgICAgICAgICAgZnByUmVnID0gRlBS
SW5mbzo6YXJndW1lbnRGUFIwOwpAQCAtMjE0LDcgKzIyOSw3IEBAIEV4cGVjdGVkPE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMo
Vk0mIHZtCiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6IHsKICAgICAgICAgICAgICAg
ICBGUFJSZWcgZnByUmVnOwogICAgICAgICAgICAgICAgIGlmIChtYXJzaGFsbGVkRlBScyA8IHdh
c21DQy5mcHJBcmdzLnNpemUoKSkKLSAgICAgICAgICAgICAgICAgICAgZnByUmVnID0gd2FzbUND
LmZwckFyZ3NbbWFyc2hhbGxlZEZQUnNdLmZwcigpOworICAgICAgICAgICAgICAgICAgICBmcHJS
ZWcgPSB3YXNtQ0MuZnByQXJnc1ttYXJzaGFsbGVkRlBSc107CiAgICAgICAgICAgICAgICAgZWxz
ZSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgc3BpbGxlZCBhbGwgYXJn
dW1lbnRzLCB0aGVzZSByZWdpc3RlcnMgYXJlIGF2YWlsYWJsZSBhcyBzY3JhdGNoLgogICAgICAg
ICAgICAgICAgICAgICBmcHJSZWcgPSBGUFJJbmZvOjphcmd1bWVudEZQUjA7CkBAIC0yMzYsMTIg
KzI1MSwxNSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFn
PiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICB1bnNpZ25lZCBjYWxs
ZWVGcmFtZU9mZnNldCA9IENhbGxGcmFtZVNsb3Q6OmZpcnN0QXJndW1lbnQgKiBzdGF0aWNfY2Fz
dDxpbnQ+KHNpemVvZihSZWdpc3RlcikpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGFyZ051bSA9
IDA7IGFyZ051bSA8IGFyZ0NvdW50OyArK2FyZ051bSkgewogICAgICAgICAgICAgaWYgKHNpZ25h
dHVyZS5hcmd1bWVudFR5cGUoYXJnTnVtKS5pc0k2NCgpKSB7Ci0gICAgICAgICAgICAgICAgaml0
LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAg
ICAgICAgICAgaml0LmxvYWQ2NChjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zm
c2V0KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICAgICAgICAgICAgICBqaXQuc2V0dXBB
cmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KT4oR1BSSW5mbzo6YXJn
dW1lbnRHUFIwLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICAgICAgICAgIHVzaW5n
IE9wZXJhdGlvbiA9IGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk7CisgICAgICAg
ICAgICAgICAgY29uc3RleHByIEdQUlJlZyB3YXNtSW5zdGFuY2VHUFIgPSBwcmVmZXJyZWRBcmd1
bWVudEdQUjxPcGVyYXRpb24sIDE+KCk7CisgICAgICAgICAgICAgICAgY29uc3RleHByIEpTVmFs
dWVSZWdzIHZhbHVlSlNSID0gcHJlZmVycmVkQXJndW1lbnRKU1I8T3BlcmF0aW9uLCAyPigpOwor
ICAgICAgICAgICAgICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZSh3YXNtSW5zdGFuY2VH
UFIpOworICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoY2FsbGVlRnJhbWUud2l0aE9mZnNl
dChjYWxsZWVGcmFtZU9mZnNldCksIHZhbHVlSlNSKTsKKyAgICAgICAgICAgICAgICBqaXQuc2V0
dXBBcmd1bWVudHM8T3BlcmF0aW9uPih3YXNtSW5zdGFuY2VHUFIsIHZhbHVlSlNSKTsKICAgICAg
ICAgICAgICAgICBhdXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25QdHJUYWcpOwogICAgICAg
ICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRKdW1wSWZFeGNlcHRpb24o
dm0pKTsKLSAgICAgICAgICAgICAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQ
UiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCkpOworICAgICAgICAg
ICAgICAgIGppdC5zdG9yZVZhbHVlKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBjYWxsZWVGcmFt
ZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSk7CiAgICAgICAgICAgICAgICAgaml0LmFk
ZExpbmtUYXNrKFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewogICAgICAgICAgICAgICAg
ICAgICBsaW5rQnVmZmVyLmxpbmsoY2FsbCwgRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihv
cGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpKTsKICAgICAgICAgICAgICAgICB9KTsKQEAgLTI1Mywx
NiArMjcxLDIyIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJU
YWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgaml0LmxvYWRXYXNtQ29u
dGV4dEluc3RhbmNlKEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgaml0LmxvYWRQdHIoQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgSW5zdGFuY2U6Om9mZnNl
dE9mT3duZXIoKSksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgaml0LmxvYWRQdHIoQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgSlNXZWJBc3NlbWJseUlu
c3RhbmNlOjpvZmZzZXRPZk1vZHVsZSgpKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICBq
aXQuZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgQ2FsbEZy
YW1lU2xvdDo6Y2FsbGVlKTsKLQotICAgIEdQUlJlZyBpbXBvcnRKU0NlbGxHUFJSZWcgPSBHUFJJ
bmZvOjpyZWdUMDsgLy8gQ2FsbGVlIG5lZWRzIHRvIGJlIGluIHJlZ1QwIGZvciBzbG93IHBhdGgg
YmVsb3cuCisgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGNhbGxlZVNsb3QgeyBHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlICAqIHNpemVvZihSZWdpc3Rl
cikgfTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBjYWxsZWVTbG90
KTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBjYWxsZWVTbG90LndpdGhPZmZzZXQoVGFn
T2Zmc2V0KSk7CisjZW5kaWYKIAorICAgIC8vIGpzQXJnMTAgbWlnaHQgb3ZlcmxhcCB3aXRoIHJl
Z1QwLCBzbyBzdG9yZSAndGhpcycgYXJndW1lbnQgZmlyc3QKKyAgICBqaXQuc3RvcmVWYWx1ZShq
c1VuZGVmaW5lZCgpLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OnRoaXNB
cmd1bWVudCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpLCBqc0FyZzEwKTsK
KyAgICBjb25zdGV4cHIgR1BSUmVnIGltcG9ydEpTQ2VsbEdQUlJlZyA9IEdQUkluZm86OnJlZ1Qw
OyAvLyBDYWxsZWUgbmVlZHMgdG8gYmUgaW4gcmVnVDAgZm9yIHNsb3cgcGF0aCBiZWxvdy4KICAg
ICBBU1NFUlQoIXdhc21DQy5jYWxsZWVTYXZlUmVnaXN0ZXJzLmdldChpbXBvcnRKU0NlbGxHUFJS
ZWcpKTsKICAgICBtYXRlcmlhbGl6ZUltcG9ydEpTQ2VsbChqaXQsIGltcG9ydEluZGV4LCBpbXBv
cnRKU0NlbGxHUFJSZWcpOwotCi0gICAgaml0LnN0b3JlNjQoaW1wb3J0SlNDZWxsR1BSUmVnLCBj
YWxsZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAqIHN0YXRpY19jYXN0
PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKKyAgICBqaXQuc3RvcmVQdHIoaW1wb3J0SlNDZWxs
R1BSUmVnLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAqIHN0
YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0
KQorICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNl
bGxUYWcpLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAqIHN0
YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBUYWdPZmZzZXQpKTsKKyNlbmRpZgog
ICAgIGppdC5zdG9yZTMyKEpJVDo6VHJ1c3RlZEltbTMyKG51bWJlck9mUGFyYW1ldGVycyksIGNh
bGxlZUZyYW1lLndpdGhPZmZzZXQoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGlu
Z1RoaXMgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgUGF5bG9hZE9mZnNl
dCkpOwotICAgIGppdC5zdG9yZTY0KEpJVDo6VHJ1c3RlZEltbTY0KEpTVmFsdWU6OlZhbHVlVW5k
ZWZpbmVkKSwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90Ojp0aGlzQXJndW1l
bnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CiAKICAgICAvLyBGSVhN
RSBUYWlsIGNhbGwgaWYgdGhlIHdhc20gcmV0dXJuIHR5cGUgaXMgdm9pZCBhbmQgbm8gcmVnaXN0
ZXJzIHdlcmUgc3BpbGxlZC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NTQ4OAogCkBAIC0yODcsMTEgKzMxMSwxMSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNv
ZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQog
ICAgICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6IHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBPcHRp
bWl6ZSBJNjQgZXh0cmFjdGlvbiBmcm9tIEJpZ0ludC4KICAgICAgICAgICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAwNTMKLSAgICAgICAgICAgIEdQUlJl
ZyBkZXN0ID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uZ3ByKCk7Ci0gICAgICAgICAgICBqaXQu
c2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvSTY0KT4oR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIpOworICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgZGVzdCA9IHdhc21DYWxs
SW5mby5yZXN1bHRzWzBdLmpzcigpOworICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRl
Y2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCk+KEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsK
ICAgICAgICAgICAgIGF1dG8gY2FsbCA9IGppdC5jYWxsKE9wZXJhdGlvblB0clRhZyk7CiAgICAg
ICAgICAgICBleGNlcHRpb25DaGVja3MuYXBwZW5kKGppdC5lbWl0SnVtcElmRXhjZXB0aW9uKHZt
KSk7Ci0gICAgICAgICAgICBqaXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7
CisgICAgICAgICAgICBqaXQubW92ZVZhbHVlUmVncyhKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwg
ZGVzdCk7CiAKICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxp
bmtCdWZmZXIpIHsKICAgICAgICAgICAgICAgICBsaW5rQnVmZmVyLmxpbmsoY2FsbCwgRnVuY3Rp
b25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25Db252ZXJ0VG9JNjQpKTsKQEAgLTMwMSwx
OCArMzI1LDIxIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJU
YWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgIGNhc2UgVHlwZUtp
bmQ6OkkzMjogewogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBkb25lOwogICAg
ICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBzbG93UGF0aDsKLSAgICAgICAgICAgIEdQ
UlJlZyBkZXN0ID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uZ3ByKCk7CisgICAgICAgICAgICBK
U1ZhbHVlUmVncyBkZXN0SlNSID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uanNyKCk7CiAKLSAg
ICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIoR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycykpOwotICAgICAgICAgICAgc2xv
d1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdEludDMyKEpTVmFsdWVSZWdzKEdQUkluZm86OnJl
dHVyblZhbHVlR1BSKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKSk7Ci0gICAgICAgICAgICBqaXQu
emVyb0V4dGVuZDMyVG9Xb3JkKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBkZXN0KTsKKyAgICAg
ICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIoSlNSSW5mbzo6cmV0
dXJuVmFsdWVKU1IsIGppdC5zY3JhdGNoUmVnaXN0ZXIoKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJz
KSk7CisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIoSlNS
SW5mbzo6cmV0dXJuVmFsdWVKU1IsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycykpOworICAgICAgICAg
ICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUi5wYXlsb2Fk
R1BSKCksIGRlc3RKU1IucGF5bG9hZEdQUigpKTsKICAgICAgICAgICAgIGRvbmUuYXBwZW5kKGpp
dC5qdW1wKCkpOwogCiAgICAgICAgICAgICBzbG93UGF0aC5saW5rKCZqaXQpOwotICAgICAgICAg
ICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0kzMik+KEdQ
UkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxk
ZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9JMzIpPihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUik7
CiAgICAgICAgICAgICBhdXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25QdHJUYWcpOwogICAg
ICAgICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1bXBJZkV4Y2VwdGlvbih2
bSkpOwotICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3Qp
OworICAgICAgICAgICAgaml0Lm1vdmUoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IucGF5bG9hZEdQ
UigpLCBkZXN0SlNSLnBheWxvYWRHUFIoKSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAg
ICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCBkZXN0SlNSLnRh
Z0dQUigpKTsKKyNlbmRpZgogCiAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soWz1dIChMaW5r
QnVmZmVyJiBsaW5rQnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKGNh
bGwsIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQ29udmVydFRvSTMyKSk7
CkBAIC0zMjIsMjMgKzM0OSwyNiBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2Fz
bUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOiB7Ci0gICAg
ICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CiAgICAgICAgICAgICBGUFJSZWcg
ZGVzdCA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmZwcigpOwogCi0gICAgICAgICAgICBhdXRv
IG5vdEFOdW1iZXIgPSBqaXQuYnJhbmNoSWZOb3ROdW1iZXIoR1BSSW5mbzo6cmV0dXJuVmFsdWVH
UFIsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7Ci0gICAgICAgICAgICBhdXRvIGlzRG91YmxlID0g
aml0LmJyYW5jaElmTm90SW50MzIoSlNWYWx1ZVJlZ3MoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIp
LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1w
TGlzdCBkb25lOworICAgICAgICAgICAgYXV0byBub3RBTnVtYmVyID0gaml0LmJyYW5jaElmTm90
TnVtYmVyKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBqaXQuc2NyYXRjaFJlZ2lzdGVyKCksIERv
Tm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAgICBhdXRvIGlzRG91YmxlID0gaml0LmJy
YW5jaElmTm90SW50MzIoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIERvTm90SGF2ZVRhZ1JlZ2lz
dGVycyk7CiAgICAgICAgICAgICAvLyBXZSdyZSBhbiBpbnQzMgotICAgICAgICAgICAgaml0LnNp
Z25FeHRlbmQzMlRvUHRyKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZXR1cm5W
YWx1ZUdQUik7Ci0gICAgICAgICAgICBqaXQuY29udmVydEludDY0VG9GbG9hdChHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CisgICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9GbG9h
dChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CiAgICAgICAgICAgICBkb25lLmFwcGVu
ZChqaXQuanVtcCgpKTsKIAogICAgICAgICAgICAgaXNEb3VibGUubGluaygmaml0KTsKKyNpZiBV
U0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgaml0LnVuYm94RG91YmxlV2l0aG91dEFzc2VydGlv
bnMoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJldHVyblZhbHVlR1BSMiwgZGVz
dCwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyNlbHNlCisgICAgICAgICAgICBqaXQudW5ib3hE
b3VibGUoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIGRlc3QpOworI2VuZGlmCiAgICAgICAgICAg
ICBqaXQuY29udmVydERvdWJsZVRvRmxvYXQoZGVzdCwgZGVzdCk7CiAgICAgICAgICAgICBkb25l
LmFwcGVuZChqaXQuanVtcCgpKTsKIAogICAgICAgICAgICAgbm90QU51bWJlci5saW5rKCZqaXQp
OwotICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZl
cnRUb0YzMik+KEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgICAgIGppdC5zZXR1
cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9GMzIpPihKU1JJbmZvOjpyZXR1
cm5WYWx1ZUpTUik7CiAgICAgICAgICAgICBhdXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25Q
dHJUYWcpOwogICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1bXBJ
ZkV4Y2VwdGlvbih2bSkpOwogICAgICAgICAgICAgaml0Lm1vdmUoRlBSSW5mbzo6cmV0dXJuVmFs
dWVGUFIgLCBkZXN0KTsKQEAgLTM1MSwyMiArMzgxLDI1IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1i
bGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0m
IHZtCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFR5cGVLaW5k
OjpGNjQ6IHsKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZG9uZTsKICAgICAg
ICAgICAgIEZQUlJlZyBkZXN0ID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uZnByKCk7CisgICAg
ICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CiAKLSAgICAgICAgICAgIGF1dG8g
bm90QU51bWJlciA9IGppdC5icmFuY2hJZk5vdE51bWJlcihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQ
UiwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKLSAgICAgICAgICAgIGF1dG8gaXNEb3VibGUgPSBq
aXQuYnJhbmNoSWZOb3RJbnQzMihKU1ZhbHVlUmVncyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiks
IERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAgICBhdXRvIG5vdEFOdW1iZXIgPSBq
aXQuYnJhbmNoSWZOb3ROdW1iZXIoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIGppdC5zY3JhdGNo
UmVnaXN0ZXIoKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgICAgIGF1dG8gaXNE
b3VibGUgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihKU1ZhbHVlUmVncyhKU1JJbmZvOjpyZXR1cm5W
YWx1ZUpTUiksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CiAgICAgICAgICAgICAvLyBXZSdyZSBh
biBpbnQzMgotICAgICAgICAgICAgaml0LnNpZ25FeHRlbmQzMlRvUHRyKEdQUkluZm86OnJldHVy
blZhbHVlR1BSLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7Ci0gICAgICAgICAgICBqaXQuY29u
dmVydEludDY0VG9Eb3VibGUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOworICAgICAg
ICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBk
ZXN0KTsKICAgICAgICAgICAgIGRvbmUuYXBwZW5kKGppdC5qdW1wKCkpOwogCiAgICAgICAgICAg
ICBpc0RvdWJsZS5saW5rKCZqaXQpOworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgICAgICBq
aXQudW5ib3hEb3VibGVXaXRob3V0QXNzZXJ0aW9ucyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwg
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIyLCBkZXN0LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwor
I2Vsc2UKKyAgICAgICAgICAgIGppdC51bmJveERvdWJsZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpT
UiwgZGVzdCk7CisjZW5kaWYKICAgICAgICAgICAgIGRvbmUuYXBwZW5kKGppdC5qdW1wKCkpOwog
CiAgICAgICAgICAgICBub3RBTnVtYmVyLmxpbmsoJmppdCk7Ci0gICAgICAgICAgICBqaXQuc2V0
dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvRjY0KT4oR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIpOworICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9w
ZXJhdGlvbkNvbnZlcnRUb0Y2NCk+KEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsKICAgICAgICAg
ICAgIGF1dG8gY2FsbCA9IGppdC5jYWxsKE9wZXJhdGlvblB0clRhZyk7CiAgICAgICAgICAgICBl
eGNlcHRpb25DaGVja3MuYXBwZW5kKGppdC5lbWl0SnVtcElmRXhjZXB0aW9uKHZtKSk7CiAgICAg
ICAgICAgICBqaXQubW92ZShGUFJJbmZvOjpyZXR1cm5WYWx1ZUZQUiwgZGVzdCk7CkBAIC0zODAs
NyArNDEzLDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRh
Zz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgfQogICAgICAgICBk
ZWZhdWx0OiAgewogICAgICAgICAgICAgaWYgKFdhc206OmlzRnVuY3JlZihyZXR1cm5UeXBlKSB8
fCBXYXNtOjppc0V4dGVybnJlZihyZXR1cm5UeXBlKSkKLSAgICAgICAgICAgICAgICBqaXQubW92
ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uZ3ByKCkp
OworICAgICAgICAgICAgICAgIGppdC5tb3ZlVmFsdWVSZWdzKEpTUkluZm86OnJldHVyblZhbHVl
SlNSLCB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5qc3IoKSk7CiAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgLy8gRm9yIHRoZSBKYXZhU2NyaXB0IGVtYmVkZGluZywgaW1wb3J0cyB3
aXRoIHRoZXNlIHR5cGVzIGluIHRoZWlyIHR5cGUgZGVmaW5pdGlvbiByZXR1cm4gYXJlIGEgV2Vi
QXNzZW1ibHkuTW9kdWxlIHZhbGlkYXRpb24gZXJyb3IuCiAgICAgICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM5NCwxMiArNDI3LDI5IEBAIEV4cGVjdGVkPE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2Fz
bVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uod2Fz
bUNvbnRleHRJbnN0YW5jZUdQUik7CiAgICAgICAgIH0KIAotICAgICAgICBqaXQuc2V0dXBBcmd1
bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMpPih3YXNtQ29udGV4dEluc3Rh
bmNlR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoJnR5cGVEZWZpbml0aW9uKSwgR1BS
SW5mbzo6cmV0dXJuVmFsdWVHUFIsIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIs
IENDYWxsSGVscGVyczo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBjb25zdGV4cHIg
R1BSUmVnIHNhdmVkUmVzdWx0c0dQUiA9IHByZWZlcnJlZEFyZ3VtZW50R1BSPGRlY2x0eXBlKG9w
ZXJhdGlvbkl0ZXJhdGVSZXN1bHRzKSwgND4oKTsKKyAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxw
ZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRzR1BSKTsKKyAgICAgICAgaWYg
Y29uc3RleHByIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGpp
dC5zdWJQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwpLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAg
c3RhdGljX2Fzc2VydChub092ZXJsYXAoc2F2ZWRSZXN1bHRzR1BSLCBKU1JJbmZvOjpyZXR1cm5W
YWx1ZUpTUikpOworICAgICAgICBBU1NFUlQod2FzbUNvbnRleHRJbnN0YW5jZUdQUiAhPSBzYXZl
ZFJlc3VsdHNHUFIpOworICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0
aW9uSXRlcmF0ZVJlc3VsdHMpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCBDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW1QdHIoJnR5cGVEZWZpbml0aW9uKSwgSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1Is
IHNhdmVkUmVzdWx0c0dQUiwgQ0NhbGxIZWxwZXJzOjpmcmFtZVBvaW50ZXJSZWdpc3Rlcik7CiAg
ICAgICAgIGppdC5jYWxsT3BlcmF0aW9uKEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3Bl
cmF0aW9uSXRlcmF0ZVJlc3VsdHMpKTsKKyAgICAgICAgaWYgY29uc3RleHByIChtYXhGcmFtZUV4
dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGppdC5hZGRQdHIoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBDQ2FsbEhlbHBl
cnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKwogICAgICAgICBleGNlcHRpb25DaGVja3MuYXBw
ZW5kKGppdC5lbWl0SnVtcElmRXhjZXB0aW9uKHZtKSk7CiAKLSAgICAgICAgZm9yIChSZWdpc3Rl
ckF0T2Zmc2V0IGxvY2F0aW9uIDogc2F2ZWRSZXN1bHRSZWdpc3RlcnMpCi0gICAgICAgICAgICBq
aXQubG9hZDY0VG9SZWcoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQ
b2ludGVyUmVnaXN0ZXIsIGxvY2F0aW9uLm9mZnNldCgpKSwgbG9jYXRpb24ucmVnKCkpOworICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2lnbmF0dXJlLnJldHVybkNvdW50KCk7ICsr
aSkgeworICAgICAgICAgICAgVmFsdWVMb2NhdGlvbiBsb2MgPSB3YXNtQ2FsbEluZm8ucmVzdWx0
c1tpXTsKKyAgICAgICAgICAgIGlmIChsb2MuaXNHUFIoKSkgeworI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgICAgICAgICAgICAgQVNTRVJUKHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9j
LmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpICsgNCA9PSBzYXZlZFJlc3VsdFJlZ2lzdGVy
cy5maW5kKGxvYy5qc3IoKS50YWdHUFIoKSktPm9mZnNldCgpKTsKKyNlbmRpZgorICAgICAgICAg
ICAgICAgIGppdC5sb2FkVmFsdWUoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigp
LnBheWxvYWRHUFIoKSktPm9mZnNldCgpKSwgbG9jLmpzcigpKTsKKyAgICAgICAgICAgIH0gZWxz
ZSBpZiAobG9jLmlzRlBSKCkpCisgICAgICAgICAgICAgICAgaml0LmxvYWREb3VibGUoQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVk
UmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmZwcigpKS0+b2Zmc2V0KCkpLCBsb2MuZnByKCkpOwor
ICAgICAgICB9CiAgICAgfQogCiAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9u
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24u
Y3BwCmluZGV4IGM0ZDJiOTZjMjkzMC4uNDBmZDM3MWIwMjc4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcApAQCAtMTU3
LDYgKzE1Nyw5IEBAIHB0cmRpZmZfdCBXZWJBc3NlbWJseUZ1bmN0aW9uOjpwcmV2aW91c0luc3Rh
bmNlT2Zmc2V0KCkgY29uc3QKIHsKICAgICBwdHJkaWZmX3QgcmVzdWx0ID0gY2FsbGVlU2F2ZXMo
KS5udW1iZXJPZlNldFJlZ2lzdGVycygpICogc2l6ZW9mKENQVVJlZ2lzdGVyKTsKICAgICByZXN1
bHQgPSAtcmVzdWx0IC0gc2l6ZW9mKENQVVJlZ2lzdGVyKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0
KQorICAgIEFTU0VSVCghY2FsbGVlU2F2ZXMoKS5udW1iZXJPZlNldEZQUnMoKSk7IC8vIEJlY2F1
c2UgRlBScyBhcmUgd2lkZXIgdGhhbiBzaXplb2YoQ1BVUmVnaXN0ZXIpCisjZW5kaWYKICNpZiBB
U1NFUlRfRU5BQkxFRAogICAgIHB0cmRpZmZfdCBtaW5PZmZzZXQgPSAxOwogICAgIGZvciAoY29u
c3QgUmVnaXN0ZXJBdE9mZnNldCYgcmVnQXRPZmZzZXQgOiB1c2VkQ2FsbGVlU2F2ZVJlZ2lzdGVy
cygpKSB7CkBAIC0xODYsMTcgKzE4OSwxNSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRy
eVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAg
IGNvbnN0IGF1dG8mIHBpbm5lZFJlZ3MgPSBXYXNtOjpQaW5uZWRSZWdpc3RlckluZm86OmdldCgp
OwogICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IHJlZ2lzdGVyc1RvU3BpbGwgPSB1c2VkQ2FsbGVl
U2F2ZVJlZ2lzdGVycygpOwogCi0gICAgYXV0byYgbW9kdWxlSW5mb3JtYXRpb24gPSBpbnN0YW5j
ZSgpLT5pbnN0YW5jZSgpLm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCk7Ci0KICAgICBjb25z
dCBXYXNtOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb24mIHdhc21DQyA9IFdhc206Ondhc21DYWxsaW5n
Q29udmVudGlvbigpOwogICAgIFdhc206OkNhbGxJbmZvcm1hdGlvbiB3YXNtQ2FsbEluZm8gPSB3
YXNtQ0MuY2FsbEluZm9ybWF0aW9uRm9yKHR5cGVEZWZpbml0aW9uKTsKICAgICBXYXNtOjpDYWxs
SW5mb3JtYXRpb24ganNDYWxsSW5mbyA9IFdhc206OmpzQ2FsbGluZ0NvbnZlbnRpb24oKS5jYWxs
SW5mb3JtYXRpb25Gb3IodHlwZURlZmluaXRpb24sIFdhc206OkNhbGxSb2xlOjpDYWxsZWUpOwog
ICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IHNhdmVkUmVzdWx0UmVnaXN0ZXJzID0gd2FzbUNhbGxJ
bmZvLmNvbXB1dGVSZXN1bHRzT2Zmc2V0TGlzdCgpOwogCi0gICAgdW5zaWduZWQgdG90YWxGcmFt
ZVNpemUgPSByZWdpc3RlcnNUb1NwaWxsLnNpemUoKSAqIHNpemVvZihDUFVSZWdpc3Rlcik7Cisg
ICAgdW5zaWduZWQgdG90YWxGcmFtZVNpemUgPSByZWdpc3RlcnNUb1NwaWxsLnNpemVPZkFyZWFJ
bkJ5dGVzKCk7CiAgICAgdG90YWxGcmFtZVNpemUgKz0gc2l6ZW9mKENQVVJlZ2lzdGVyKTsgLy8g
U2xvdCBmb3IgdGhlIFZNJ3MgcHJldmlvdXMgd2FzbSBpbnN0YW5jZS4KICAgICB0b3RhbEZyYW1l
U2l6ZSArPSB3YXNtQ2FsbEluZm8uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzOwot
ICAgIHRvdGFsRnJhbWVTaXplICs9IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLnNpemUoKSAqIHNpemVv
ZihDUFVSZWdpc3Rlcik7CisgICAgdG90YWxGcmFtZVNpemUgKz0gc2F2ZWRSZXN1bHRSZWdpc3Rl
cnMuc2l6ZU9mQXJlYUluQnl0ZXMoKTsKIAogICAgIC8vIEZJWE1FOiBPcHRpbWl6ZSBXYXNtIGZ1
bmN0aW9uIGNhbGwgZXZlbiBpZiBhcmd1bWVudHMgaW5jbHVkZSBJNjQuCiAgICAgLy8gVGhpcyBy
ZXF1aXJlcyBJNjQgZXh0cmFjdGlvbiBmcm9tIEJpZ0ludC4KQEAgLTIxNiw5ICsyMTcsMTQgQEAg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246
OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAgICAgaml0LnN0b3JlUHRyKHJlZywgQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBvZmZzZXQpKTsKICAg
ICB9CiAKLSAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IFdhc206Ondhc21DYWxsaW5nQ29udmVudGlv
bigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMV07Ci0gICAgYm9vbCBzdGFja0xpbWl0R1BSSXNDbG9i
YmVyZWQgPSBmYWxzZTsKKyAgICBKU1ZhbHVlUmVncyBzY3JhdGNoSlNSIHsKKyNpZiBVU0UoSlNW
QUxVRTMyXzY0KQorICAgICAgICBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1
ZVNjcmF0Y2hHUFJzWzJdLAorI2VuZGlmCisgICAgICAgIFdhc206Ondhc21DYWxsaW5nQ29udmVu
dGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMV0KKyAgICB9OwogICAgIEdQUlJlZyBzdGFja0xp
bWl0R1BSID0gV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BS
c1swXTsKKyAgICBib29sIHN0YWNrTGltaXRHUFJJc0Nsb2JiZXJlZCA9IGZhbHNlOwogICAgIGpp
dC5sb2FkUHRyKHZtLmFkZHJlc3NPZlNvZnRTdGFja0xpbWl0KCksIHN0YWNrTGltaXRHUFIpOwog
CiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBzbG93UGF0aDsKQEAgLTIzNyw3ICsyNDMsNyBA
QCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlv
bjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgICAgICBqaXQuZW1pdE1hdGVyaWFsaXplVGFn
Q2hlY2tSZWdpc3RlcnMoKTsKIAogICAgIC8vIExvb3AgYmFja3dhcmRzIHNvIHdlIGNhbiB1c2Ug
dGhlIGZpcnN0IGZsb2F0aW5nIHBvaW50IGFyZ3VtZW50IGFzIGEgc2NyYXRjaC4KLSAgICBGUFJS
ZWcgc2NyYXRjaEZQUiA9IFdhc206Ondhc21DYWxsaW5nQ29udmVudGlvbigpLmZwckFyZ3NbMF0u
ZnByKCk7CisgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRp
b24oKS5mcHJBcmdzWzBdOwogICAgIGZvciAodW5zaWduZWQgaSA9IHNpZ25hdHVyZS5hcmd1bWVu
dENvdW50KCk7IGktLTspIHsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGNhbGxlZUZy
YW1lID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJS
ZWdpc3RlciwgMCk7CiAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBqc1BhcmFtKEdQUklu
Zm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBqc0NhbGxJbmZvLnBhcmFtc1tpXS5vZmZzZXRGcm9tRlAo
KSk7CkBAIC0yNDYsMTIgKzI1MiwyMCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0
clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgICAg
ICBhdXRvIHR5cGUgPSBzaWduYXR1cmUuYXJndW1lbnRUeXBlKGkpOwogICAgICAgICBzd2l0Y2gg
KHR5cGUua2luZCkgewogICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpJMzI6IHsKLSAgICAg
ICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAgICBzbG93
UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIoc2NyYXRjaEdQUikpOwotICAgICAgICAg
ICAgaWYgKGlzU3RhY2spCi0gICAgICAgICAgICAgICAgaml0LnN0b3JlMzIoc2NyYXRjaEdQUiwg
Y2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21T
UCgpKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQz
MlRvV29yZChzY3JhdGNoR1BSLCB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmdwcigpKTsKKyAgICAg
ICAgICAgIGppdC5sb2FkVmFsdWUoanNQYXJhbSwgc2NyYXRjaEpTUik7CisgICAgICAgICAgICBz
bG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIoc2NyYXRjaEpTUikpOworICAgICAg
ICAgICAgaWYgKGlzU3RhY2spIHsKKyAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MgYWRkciB7IGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5v
ZmZzZXRGcm9tU1AoKSkgfTsKKyAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihzY3JhdGNoSlNS
LnBheWxvYWRHUFIoKSwgYWRkci53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyNpZiBVU0Uo
SlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbTMyKDApLCBhZGRyLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7CisjZW5kaWYKKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29y
ZChzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgd2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5qc3IoKS5w
YXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgaml0
Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMCksIHdhc21DYWxsSW5mby5wYXJhbXNb
aV0uanNyKCkudGFnR1BSKCkpOworI2VuZGlmCisgICAgICAgICAgICB9CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpSZWY6CkBAIC0y
NjAsMjcgKzI3NCwyNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2Vi
QXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgICAgICBjYXNlIFdh
c206OlR5cGVLaW5kOjpFeHRlcm5yZWY6IHsKICAgICAgICAgICAgIGlmICghV2FzbTo6aXNFeHRl
cm5yZWYodHlwZSkpIHsKICAgICAgICAgICAgICAgICAvLyBFbnN1cmUgd2UgaGF2ZSBhIFdBU00g
ZXhwb3J0ZWQgZnVuY3Rpb24uCi0gICAgICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBz
Y3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAgICBhdXRvIGlzTnVsbCA9IGppdC5icmFuY2hJZk51
bGwoc2NyYXRjaEdQUik7CisgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShqc1BhcmFtLCBz
Y3JhdGNoSlNSKTsKKyAgICAgICAgICAgICAgICBhdXRvIGlzTnVsbCA9IGppdC5icmFuY2hJZk51
bGwoc2NyYXRjaEpTUik7CiAgICAgICAgICAgICAgICAgaWYgKCF0eXBlLmlzTnVsbGFibGUoKSkK
ICAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGlzTnVsbCk7Ci0gICAgICAgICAg
ICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdENlbGwoc2NyYXRjaEdQUikpOwor
ICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RDZWxsKHNjcmF0
Y2hKU1IpKTsKIAogICAgICAgICAgICAgICAgIHN0YWNrTGltaXRHUFJJc0Nsb2JiZXJlZCA9IHRy
dWU7Ci0gICAgICAgICAgICAgICAgaml0LmVtaXRMb2FkU3RydWN0dXJlKHZtLCBzY3JhdGNoR1BS
LCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6
OkFkZHJlc3Moc2NyYXRjaEdQUiwgU3RydWN0dXJlOjpjbGFzc0luZm9PZmZzZXQoKSksIHNjcmF0
Y2hHUFIpOworICAgICAgICAgICAgICAgIGppdC5lbWl0TG9hZFN0cnVjdHVyZSh2bSwgc2NyYXRj
aEpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAg
ICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2Fk
R1BSKCksIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBzY3JhdGNoSlNSLnBheWxvYWRH
UFIoKSk7CiAKICAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8V2Vi
QXNzZW1ibHlGdW5jdGlvbj46OnZhbHVlLCAiV2UgZG8gbm90IGNoZWNrIGZvciBzdWJ0eXBlcyBi
ZWxvdyIpOwogICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxXZWJB
c3NlbWJseVdyYXBwZXJGdW5jdGlvbj46OnZhbHVlLCAiV2UgZG8gbm90IGNoZWNrIGZvciBzdWJ0
eXBlcyBiZWxvdyIpOwogCi0gICAgICAgICAgICAgICAgYXV0byBpc1dhc21GdW5jdGlvbiA9IGpp
dC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tUHRyKFdlYkFzc2VtYmx5RnVuY3Rpb246OmluZm8oKSkpOwotICAgICAgICAg
ICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoUHRyKENDYWxsSGVscGVyczo6Tm90RXF1
YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihXZWJBc3NlbWJseVdy
YXBwZXJGdW5jdGlvbjo6aW5mbygpKSkpOworICAgICAgICAgICAgICAgIGF1dG8gaXNXYXNtRnVu
Y3Rpb24gPSBqaXQuYnJhbmNoUHRyKENDYWxsSGVscGVyczo6RXF1YWwsIHNjcmF0Y2hKU1IucGF5
bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoV2ViQXNzZW1ibHlGdW5jdGlv
bjo6aW5mbygpKSk7CisgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hQ
dHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbVB0cihXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6aW5mbygp
KSkpOwogCiAgICAgICAgICAgICAgICAgaXNXYXNtRnVuY3Rpb24ubGluaygmaml0KTsKICAgICAg
ICAgICAgICAgICBpZiAoV2FzbTo6aXNSZWZXaXRoVHlwZUluZGV4KHR5cGUpKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAg
ICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBX
ZWJBc3NlbWJseUZ1bmN0aW9uQmFzZTo6b2Zmc2V0T2ZTaWduYXR1cmVJbmRleCgpKSwgc2NyYXRj
aEdQUik7Ci0gICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoUHRy
KENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbVB0cih0eXBlLmluZGV4KSkpOworICAgICAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihq
c1BhcmFtLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICAgICAgICAgIGpp
dC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwg
V2ViQXNzZW1ibHlGdW5jdGlvbkJhc2U6Om9mZnNldE9mU2lnbmF0dXJlSW5kZXgoKSksIHNjcmF0
Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5k
KGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEpTUi5wYXlsb2Fk
R1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih0eXBlLmluZGV4KSkpOwogICAgICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlmICh0eXBlLmlzTnVsbGFibGUoKSkKQEAg
LTI4OCwxNSArMzAyLDE1IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBX
ZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgICAgICB9
CiAKICAgICAgICAgICAgIGlmIChpc1N0YWNrKSB7Ci0gICAgICAgICAgICAgICAgaml0LmxvYWQ2
NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpz
UGFyYW0sIHNjcmF0Y2hKU1IpOwogICAgICAgICAgICAgICAgIGlmICghdHlwZS5pc051bGxhYmxl
KCkpCi0gICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOdWxs
KHNjcmF0Y2hHUFIpKTsKLSAgICAgICAgICAgICAgICBqaXQuc3RvcmU2NChzY3JhdGNoR1BSLCBj
YWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQ
KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk51
bGwoc2NyYXRjaEpTUikpOworICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2hK
U1IsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5vZmZzZXRG
cm9tU1AoKSkpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBhdXRvIGV4
dGVybkdQUiA9IHdhc21DYWxsSW5mby5wYXJhbXNbaV0uZ3ByKCk7Ci0gICAgICAgICAgICAgICAg
aml0LmxvYWQ2NChqc1BhcmFtLCBleHRlcm5HUFIpOworICAgICAgICAgICAgICAgIGF1dG8gZXh0
ZXJuSlNSID0gd2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5qc3IoKTsKKyAgICAgICAgICAgICAgICBq
aXQubG9hZFZhbHVlKGpzUGFyYW0sIGV4dGVybkpTUik7CiAgICAgICAgICAgICAgICAgaWYgKCF0
eXBlLmlzTnVsbGFibGUoKSkKLSAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGpp
dC5icmFuY2hJZk51bGwoZXh0ZXJuR1BSKSk7CisgICAgICAgICAgICAgICAgICAgIHNsb3dQYXRo
LmFwcGVuZChqaXQuYnJhbmNoSWZOdWxsKGV4dGVybkpTUikpOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTMwNCwzNSArMzE4LDQxIEBAIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxF
bnRyeXBvaW50U2xvdygpCiAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkY2NDogewogICAg
ICAgICAgICAgaWYgKCFpc1N0YWNrKQogICAgICAgICAgICAgICAgIHNjcmF0Y2hGUFIgPSB3YXNt
Q2FsbEluZm8ucGFyYW1zW2ldLmZwcigpOwotICAgICAgICAgICAgYXV0byBtb3ZlVG9EZXN0aW5h
dGlvbiA9IFsmXSAoKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGlzU3RhY2spIHsKLSAgICAgICAg
ICAgICAgICAgICAgaWYgKHNpZ25hdHVyZS5hcmd1bWVudFR5cGUoaSkuaXNGMzIoKSkKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZUZsb2F0KHNjcmF0Y2hGUFIsIGNhbGxlZUZyYW1l
LndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkpOwotICAg
ICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVE
b3VibGUoc2NyYXRjaEZQUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFy
YW1zW2ldLm9mZnNldEZyb21TUCgpKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fTsKIAotICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKLSAgICAg
ICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIoc2NyYXRjaEdQUikp
OwotICAgICAgICAgICAgYXV0byBpc0ludDMyID0gaml0LmJyYW5jaElmSW50MzIoc2NyYXRjaEdQ
Uik7Ci0KLSAgICAgICAgICAgIGppdC51bmJveERvdWJsZShzY3JhdGNoR1BSLCBzY3JhdGNoR1BS
LCBzY3JhdGNoRlBSKTsKKyAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQYXJhbSwgc2NyYXRj
aEpTUik7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChq
aXQuYnJhbmNoSWZOb3ROdW1iZXIoc2NyYXRjaEpTUiwgSW52YWxpZEdQUlJlZykpOworI2VsaWYg
VVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIHN0YWNrTGltaXRHUFJJc0Nsb2JiZXJlZCA9
IHRydWU7CisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVy
KHNjcmF0Y2hKU1IsIHN0YWNrTGltaXRHUFIpKTsKKyNlbmRpZgorICAgICAgICAgICAgYXV0byBp
c0ludDMyID0gaml0LmJyYW5jaElmSW50MzIoc2NyYXRjaEpTUik7CisjaWYgVVNFKEpTVkFMVUU2
NCkKKyAgICAgICAgICAgIGppdC51bmJveERvdWJsZShzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwg
c2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hGUFIpOworI2VsaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICAgICAgICAgIGppdC51bmJveERvdWJsZShzY3JhdGNoSlNSLCBzY3JhdGNoRlBS
KTsKKyNlbmRpZgogICAgICAgICAgICAgaWYgKHNpZ25hdHVyZS5hcmd1bWVudFR5cGUoaSkuaXNG
MzIoKSkKICAgICAgICAgICAgICAgICBqaXQuY29udmVydERvdWJsZVRvRmxvYXQoc2NyYXRjaEZQ
Uiwgc2NyYXRjaEZQUik7Ci0gICAgICAgICAgICBtb3ZlVG9EZXN0aW5hdGlvbigpOwogICAgICAg
ICAgICAgYXV0byBkb25lID0gaml0Lmp1bXAoKTsKIAogICAgICAgICAgICAgaXNJbnQzMi5saW5r
KCZqaXQpOwogICAgICAgICAgICAgaWYgKHNpZ25hdHVyZS5hcmd1bWVudFR5cGUoaSkuaXNGMzIo
KSkgewotICAgICAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0Zsb2F0KHNjcmF0Y2hHUFIs
IHNjcmF0Y2hGUFIpOwotICAgICAgICAgICAgICAgIG1vdmVUb0Rlc3RpbmF0aW9uKCk7CisgICAg
ICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRmxvYXQoc2NyYXRjaEpTUi5wYXlsb2FkR1BS
KCksIHNjcmF0Y2hGUFIpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBq
aXQuY29udmVydEludDMyVG9Eb3VibGUoc2NyYXRjaEdQUiwgc2NyYXRjaEZQUik7Ci0gICAgICAg
ICAgICAgICAgbW92ZVRvRGVzdGluYXRpb24oKTsKKyAgICAgICAgICAgICAgICBqaXQuY29udmVy
dEludDMyVG9Eb3VibGUoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hGUFIpOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgZG9uZS5saW5rKCZqaXQpOwotCisgICAgICAgICAgICBp
ZiAoaXNTdGFjaykgeworICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBhZGRy
IHsgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZy
b21TUCgpKSB9OworICAgICAgICAgICAgICAgIGlmIChzaWduYXR1cmUuYXJndW1lbnRUeXBlKGkp
LmlzRjMyKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlRmxvYXQoc2NyYXRjaEZQ
UiwgYWRkci53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0
KQorICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW0zMigwKSwgYWRkci53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworI2VuZGlmCisgICAgICAgICAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZURvdWJsZShzY3JhdGNo
RlBSLCBhZGRyKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgICAgIGRlZmF1bHQ6CkBAIC0zNDMsNDIgKzM2Myw0NCBAQCBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2lu
dFNsb3coKQogICAgIC8vIEF0IHRoaXMgcG9pbnQsIHdlJ3JlIGNvbW1pdHRlZCB0byBkb2luZyBh
IGZhc3QgY2FsbC4KIAogICAgIGlmIChXYXNtOjpDb250ZXh0Ojp1c2VGYXN0VExTKCkpIAotICAg
ICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uoc2NyYXRjaEdQUik7CisgICAgICAgIGpp
dC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZShzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAgICAg
ZWxzZQotICAgICAgICBqaXQubG9hZFB0cih2bS53YXNtQ29udGV4dC5wb2ludGVyVG9JbnN0YW5j
ZSgpLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgaml0LmxvYWRQdHIodm0ud2FzbUNvbnRleHQucG9p
bnRlclRvSW5zdGFuY2UoKSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOwogICAgIHB0cmRpZmZf
dCBwcmV2aW91c0luc3RhbmNlT2Zmc2V0ID0gdGhpcy0+cHJldmlvdXNJbnN0YW5jZU9mZnNldCgp
OwotICAgIGppdC5zdG9yZVB0cihzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BS
SW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHByZXZpb3VzSW5zdGFuY2VPZmZzZXQpKTsKKyAgICBq
aXQuc3RvcmVQdHIoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6QWRkcmVz
cyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgcHJldmlvdXNJbnN0YW5jZU9mZnNldCkpOwog
Ci0gICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZpbnN0YW5jZSgpLT5p
bnN0YW5jZSgpKSwgc2NyYXRjaEdQUik7CisgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tUHRyKCZpbnN0YW5jZSgpLT5pbnN0YW5jZSgpKSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BS
KCkpOwogICAgIGlmIChXYXNtOjpDb250ZXh0Ojp1c2VGYXN0VExTKCkpIAotICAgICAgICBqaXQu
c3RvcmVXYXNtQ29udGV4dEluc3RhbmNlKHNjcmF0Y2hHUFIpOworICAgICAgICBqaXQuc3RvcmVX
YXNtQ29udGV4dEluc3RhbmNlKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKICAgICBlbHNlIHsK
LSAgICAgICAgaml0Lm1vdmUoc2NyYXRjaEdQUiwgcGlubmVkUmVncy53YXNtQ29udGV4dEluc3Rh
bmNlUG9pbnRlcik7Ci0gICAgICAgIGppdC5zdG9yZVB0cihzY3JhdGNoR1BSLCB2bS53YXNtQ29u
dGV4dC5wb2ludGVyVG9JbnN0YW5jZSgpKTsKKyAgICAgICAgaml0Lm1vdmUoc2NyYXRjaEpTUi5w
YXlsb2FkR1BSKCksIHBpbm5lZFJlZ3Mud2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXIpOworICAg
ICAgICBqaXQuc3RvcmVQdHIoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHZtLndhc21Db250ZXh0
LnBvaW50ZXJUb0luc3RhbmNlKCkpOwogICAgIH0KICAgICBpZiAoc3RhY2tMaW1pdEdQUklzQ2xv
YmJlcmVkKQogICAgICAgICBqaXQubG9hZFB0cih2bS5hZGRyZXNzT2ZTb2Z0U3RhY2tMaW1pdCgp
LCBzdGFja0xpbWl0R1BSKTsKLSAgICBqaXQuc3RvcmVQdHIoc3RhY2tMaW1pdEdQUiwgQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hl
ZFN0YWNrTGltaXQoKSkpOworICAgIGppdC5zdG9yZVB0cihzdGFja0xpbWl0R1BSLCBDQ2FsbEhl
bHBlcnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIFdhc206Okluc3RhbmNlOjpv
ZmZzZXRPZkNhY2hlZFN0YWNrTGltaXQoKSkpOwogCi0gICAgaWYgKCEhbW9kdWxlSW5mb3JtYXRp
b24ubWVtb3J5KSB7CisjaWYgIUNQVShBUk0pIC8vIEFSTSBoYXMgbm8gcGlubmVkIHJlZ2lzdGVy
cyBmb3IgV2FzbSBNZW1vcnksIHNvIG5vIG5lZWQgdG8gc2V0IHRoZW0gdXAKKyAgICBpZiAoISFp
bnN0YW5jZSgpLT5pbnN0YW5jZSgpLm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkubWVtb3J5
KSB7CiAgICAgICAgIEdQUlJlZyBiYXNlTWVtb3J5ID0gcGlubmVkUmVncy5iYXNlTWVtb3J5UG9p
bnRlcjsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSA9IEludmFs
aWRHUFJSZWc7CiAgICAgICAgIGF1dG8gbW9kZSA9IGluc3RhbmNlKCktPm1lbW9yeU1vZGUoKTsK
IAogICAgICAgICBpZiAoaXNBUk02NEUoKSkgewotICAgICAgICAgICAgaWYgKG1vZGUgIT0gV2Fz
bTo6TWVtb3J5TW9kZTo6U2lnbmFsaW5nKQorICAgICAgICAgICAgaWYgKG1vZGUgPT0gV2FzbTo6
TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcpCiAgICAgICAgICAgICAgICAgc2NyYXRjaE9yQm91
bmRzQ2hlY2tpbmdTaXplID0gcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlcjsK
ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBzY3JhdGNoT3JCb3VuZHNDaGVja2lu
Z1NpemUgPSBzdGFja0xpbWl0R1BSOwotICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZEJv
dW5kc0NoZWNraW5nU2l6ZSgpKSwgc2NyYXRjaE9yQm91bmRzQ2hlY2tpbmdTaXplKTsKKyAgICAg
ICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoSlNSLnBheWxv
YWRHUFIoKSwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdTaXpl
KCkpLCBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUpOwogICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgaWYgKG1vZGUgIT0gV2FzbTo6TWVtb3J5TW9kZTo6U2lnbmFsaW5nKQotICAgICAg
ICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBX
YXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHNDaGVja2luZ1NpemUoKSksIHBpbm5l
ZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIpOworICAgICAgICAgICAgaWYgKG1vZGUg
PT0gV2FzbTo6TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcpCisgICAgICAgICAgICAgICAgaml0
LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBX
YXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHNDaGVja2luZ1NpemUoKSksIHBpbm5l
ZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIpOwogICAgICAgICB9CiAKLSAgICAgICAg
aml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFdhc206Okluc3Rh
bmNlOjpvZmZzZXRPZkNhY2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7Ci0gICAgICAgIGppdC5j
YWdlQ29uZGl0aW9uYWxseUFuZFVudGFnKEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJhc2VNZW1vcnks
IHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSwgc2NyYXRjaEdQUik7CisgICAgICAgIGppdC5s
b2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgV2Fz
bTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNlTWVtb3J5KTsKKyAgICAg
ICAgaml0LmNhZ2VDb25kaXRpb25hbGx5QW5kVW50YWcoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgYmFz
ZU1lbW9yeSwgc2NyYXRjaE9yQm91bmRzQ2hlY2tpbmdTaXplLCBzY3JhdGNoSlNSLnBheWxvYWRH
UFIoKSk7CiAgICAgfQorI2VuZGlmCiAKICAgICAvLyBXZSB1c2UgdGhpcyBjYWxsZWUgdG8gaW5k
aWNhdGUgaG93IHRvIHVud2luZCBwYXN0IHRoZXNlIHR5cGVzIG9mIGZyYW1lczoKICAgICAvLyAx
LiBXZSBuZWVkIHRvIGtub3cgd2hlcmUgdG8gZ2V0IGNhbGxlZSBzYXZlcy4KQEAgLTM5MCw4ICs0
MTIsOCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlG
dW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgIC8vIEZJWE1FOiBDdXJyZW50bHkg
d2UganVzdCBkbyBhbiBpbmRpcmVjdCBqdW1wLiBCdXQgd2Ugc2hvdWxkIHRlYWNoIHRoZSBNb2R1
bGUKICAgICAvLyBob3cgdG8gcmVwYXRjaCB1czoKICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NTcwCi0gICAgaml0LmxvYWRQdHIoZW50cnlwb2ludExv
YWRMb2NhdGlvbigpLCBzY3JhdGNoR1BSKTsKLSAgICBqaXQuY2FsbChzY3JhdGNoR1BSLCBXYXNt
RW50cnlQdHJUYWcpOworICAgIGppdC5sb2FkUHRyKGVudHJ5cG9pbnRMb2FkTG9jYXRpb24oKSwg
c2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOworICAgIGppdC5jYWxsKHNjcmF0Y2hKU1IucGF5bG9h
ZEdQUigpLCBXYXNtRW50cnlQdHJUYWcpOwogCiAgICAgbWFyc2hhbGxKU1Jlc3VsdChqaXQsIHR5
cGVEZWZpbml0aW9uLCB3YXNtQ2FsbEluZm8sIHNhdmVkUmVzdWx0UmVnaXN0ZXJzKTsKIApAQCAt
NDIxLDcgKzQ0Myw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJB
c3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgaml0Lm1vdmUoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHRoaXMpLCBHUFJJbmZvOjpyZWdUMCk7CiAgICAgaml0
LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAjaWYgQ1BVKEFSTTY0RSkKLSAgICBqaXQudW50YWdS
ZXR1cm5BZGRyZXNzKHNjcmF0Y2hHUFIpOworICAgIGppdC51bnRhZ1JldHVybkFkZHJlc3Moc2Ny
YXRjaEpTUi5wYXlsb2FkR1BSKCkpOwogI2VuZGlmCiAgICAgYXV0byBqdW1wVG9Ib3N0Q2FsbFRo
dW5rID0gaml0Lmp1bXAoKTsKIApAQCAtNDI5LDcgKzQ1MSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50
U2xvdygpCiAgICAgaWYgKFVOTElLRUxZKGxpbmtCdWZmZXIuZGlkRmFpbFRvQWxsb2NhdGUoKSkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgbGlua0J1ZmZlci5saW5rKGp1bXBUb0hv
c3RDYWxsVGh1bmssIENvZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+KGV4ZWN1dGFibGUo
KS0+ZW50cnlwb2ludEZvcihDb2RlRm9yQ2FsbCwgTXVzdENoZWNrQXJpdHkpLmV4ZWN1dGFibGVB
ZGRyZXNzKCkpKTsKKyAgICBsaW5rQnVmZmVyLmxpbmsoanVtcFRvSG9zdENhbGxUaHVuaywgQ29k
ZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRhZz4oZXhlY3V0YWJsZSgpLT5lbnRyeXBvaW50Rm9y
KENvZGVGb3JDYWxsLCBNdXN0Q2hlY2tBcml0eSkpKTsKICAgICBtX2pzQ2FsbEVudHJ5cG9pbnQg
PSBGSU5BTElaRV9XQVNNX0NPREUobGlua0J1ZmZlciwgV2FzbUVudHJ5UHRyVGFnLCAiSlMtPldh
c20gSUMiKTsKICAgICByZXR1cm4gbV9qc0NhbGxFbnRyeXBvaW50LmNvZGUoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlH
bG9iYWxDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYTIyMWIyZWNiNzEzLi5jYzdjYmUzZTQ3ODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFs
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCkBAIC0xNTgsNyArMTU4LDcgQEAgSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlHbG9iYWwsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2IKICAgICBSZWY8V2FzbTo6R2xvYmFsPiB3YXNtR2xvYmFsID0gV2FzbTo6
R2xvYmFsOjpjcmVhdGUodHlwZSwgbXV0YWJpbGl0eSwgaW5pdGlhbFZhbHVlKTsKICAgICBKU1dl
YkFzc2VtYmx5R2xvYmFsKiBqc1dlYkFzc2VtYmx5R2xvYmFsID0gSlNXZWJBc3NlbWJseUdsb2Jh
bDo6dHJ5Q3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIHdlYkFzc2VtYmx5R2xvYmFsU3RydWN0dXJl
LCBXVEZNb3ZlKHdhc21HbG9iYWwpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2Nv
cGUsIHsgfSk7Ci0gICAgZW5zdXJlU3RpbGxBbGl2ZUhlcmUoYml0d2lzZV9jYXN0PHZvaWQqPihp
bml0aWFsVmFsdWUpKTsgLy8gRW5zdXJlIHRoaXMgaXMga2VwdCBhbGl2ZSB3aGlsZSBjcmVhdGlu
ZyBKU1dlYkFzc2VtYmx5R2xvYmFsLgorICAgIGVuc3VyZVN0aWxsQWxpdmVIZXJlKGluaXRpYWxW
YWx1ZSk7IC8vIEVuc3VyZSB0aGlzIGlzIGtlcHQgYWxpdmUgd2hpbGUgY3JlYXRpbmcgSlNXZWJB
c3NlbWJseUdsb2JhbC4KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzV2ViQXNzZW1ibHlH
bG9iYWwpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAKaW5kZXggYmM5Y2IwNjhkOGEzLi45N2MzZWM5
MjM5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5TW9kdWxlUmVjb3JkLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAKQEAgLTU1NCw3ICs1NTQsNyBAQCB2b2lkIFdlYkFz
c2VtYmx5TW9kdWxlUmVjb3JkOjppbml0aWFsaXplRXhwb3J0cyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQogICAgICAgICAgICAgICAgIEpTV2ViQXNzZW1ibHlHbG9iYWwqIGdsb2JhbFZh
bHVlID0gSlNXZWJBc3NlbWJseUdsb2JhbDo6dHJ5Q3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGds
b2JhbE9iamVjdC0+d2ViQXNzZW1ibHlHbG9iYWxTdHJ1Y3R1cmUoKSwgV1RGTW92ZShnbG9iYWxS
ZWYpKTsKICAgICAgICAgICAgICAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogICAgICAg
ICAgICAgICAgIG1faW5zdGFuY2UtPmxpbmtHbG9iYWwodm0sIGdsb2JhbEluZGV4LCBnbG9iYWxW
YWx1ZSk7Ci0gICAgICAgICAgICAgICAgZW5zdXJlU3RpbGxBbGl2ZUhlcmUoYml0d2lzZV9jYXN0
PHZvaWQqPihpbml0aWFsQml0cykpOyAvLyBFbnN1cmUgdGhpcyBpcyBrZXB0IGFsaXZlIHdoaWxl
IGNyZWF0aW5nIEpTV2ViQXNzZW1ibHlHbG9iYWwuCisgICAgICAgICAgICAgICAgZW5zdXJlU3Rp
bGxBbGl2ZUhlcmUoaW5pdGlhbEJpdHMpOyAvLyBFbnN1cmUgdGhpcyBpcyBrZXB0IGFsaXZlIHdo
aWxlIGNyZWF0aW5nIEpTV2ViQXNzZW1ibHlHbG9iYWwuCiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybUVuYWJsZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAppbmRl
eCAwNzEzODc4MjY3ODAuLjA1NGQ4Y2FiNGZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
UGxhdGZvcm1FbmFibGUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCkBA
IC01ODksMTIgKzU4OSwxMiBAQAogI2VuZGlmCiAKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQotLyog
RGlzYWJsZSBXZWJBc3NlbWJseSBvbiBhbGwgMzJiaXQgcGxhdGZvcm1zLiBJdHMgTExJbnQgdGll
ciBjb3VsZAotICogd29yayBvbiB0aGVtLCBidXQgc3RpbGwgbmVlZHMgc29tZSBmaW5hbCB0b3Vj
aGVzLiAqLworI2lmICFDUFUoQVJNKQogI3VuZGVmIEVOQUJMRV9XRUJBU1NFTUJMWQogI2RlZmlu
ZSBFTkFCTEVfV0VCQVNTRU1CTFkgMAogI3VuZGVmIEVOQUJMRV9XRUJBU1NFTUJMWV9CM0pJVAog
I2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFlfQjNKSVQgMAorI2VuZGlmCiAjaWYgKENQVShBUk1f
VEhVTUIyKSB8fCBDUFUoTUlQUykpICYmIE9TKExJTlVYKQogLyogT24gQVJNdjcgYW5kIE1JUFMg
b24gTGludXggdGhlIEpJVCBpcyBlbmFibGVkIHVubGVzcyBleHBsaWNpdGx5IGRpc2FibGVkLiAq
LwogI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpCkBAIC03MTIsNyArNzEyLDcgQEAKICNkZWZpbmUg
RU5BQkxFX1NBTVBMSU5HX1BST0ZJTEVSIDEKICNlbmRpZgogCi0jaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKSAmJiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYm
IEhBVkUoTUFDSElORV9DT05URVhUKSAmJiBDUFUoQUREUkVTUzY0KQogI2RlZmluZSBFTkFCTEVf
V0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1z
dHJlc3MtdGVzdHMKaW5kZXggMzQzMjI5YjE5MWY0Li4zNjU5OGRjNmRkNGIgMTAwNzU1Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0cy9y
dW4tanNjLXN0cmVzcy10ZXN0cwpAQCAtNTg1LDYgKzU4NSw4IEBAIGVuZAogJGhvc3RPUyA9IGRl
dGVybWluZU9TIHVubGVzcyAkaG9zdE9TCiAkYXJjaGl0ZWN0dXJlID0gZGV0ZXJtaW5lQXJjaGl0
ZWN0dXJlIHVubGVzcyAkYXJjaGl0ZWN0dXJlCiAkaXNGVExQbGF0Zm9ybSA9ICEoJGFyY2hpdGVj
dHVyZSA9PSAieDg2IiB8fCAkYXJjaGl0ZWN0dXJlID09ICJhcm0iIHx8ICRhcmNoaXRlY3R1cmUg
PT0gIm1pcHMiIHx8ICRhcmNoaXRlY3R1cmUgPT0gInJpc2N2NjQiIHx8ICRob3N0T1MgPT0gIndp
bmRvd3MiIHx8ICRob3N0T1MgPT0gInBsYXlzdGF0aW9uIikKKyMgU3BlY2lhbCBjYXNlIGFybXY3
LCB3ZSB3YW50IHRvIHJ1biB0aGUgd2FzbSB0ZXN0cyB0ZW1wb3JhcmlseSB3aXRob3V0IEIzL0Fp
ciBzdXBwb3J0CiskaXNXYXNtUGxhdGZvcm0gPSAkaXNGVExQbGF0Zm9ybSB8fCAkYXJjaGl0ZWN0
dXJlID09ICJhcm0iCiAKIGlmICRhcmNoaXRlY3R1cmUgPT0gIng4NiIKICAgICAjIFRoZSBKSVQg
aXMgdGVtcG9yYXJpbHkgZGlzYWJsZWQgb24gdGhpcyBwbGF0Zm9ybSBzaW5jZQpAQCAtMTczMCw3
ICsxNzMyLDcgQEAgZW5kCiAKIGRlZiBydW5XZWJBc3NlbWJseQogICAgIHJldHVybiBpZiAhJGpp
dFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlz
V2FzbVBsYXRmb3JtCiAgICAgcnVuKCJkZWZhdWx0LXdhc20iLCAiLW0iLCAqRlRMX09QVElPTlMp
CiAgICAgaWYgJG1vZGUgIT0gInF1aWNrIgogICAgICAgICBydW4oIndhc20tbm8tY2ppdC15ZXMt
dGxzLWNvbnRleHQiLCAiLW0iLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9dHJ1ZSIsICoo
RlRMX09QVElPTlMgKyBOT19DSklUX09QVElPTlMpKQpAQCAtMTczOCwxNSArMTc0MCwxNyBAQCBk
ZWYgcnVuV2ViQXNzZW1ibHkKICAgICAgICAgcnVuKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgIi1t
IiwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXVzZVJh
bmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICItLXZlcmlmeUdDPXRy
dWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1uby10bHMtY29udGV4dCIsICIt
bSIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICpGVExfT1BUSU9OUykKICAg
ICAgICAgcnVuKCJ3YXNtLXNsb3ctbWVtb3J5IiwgIi1tIiwgIi0tdXNlV2ViQXNzZW1ibHlGYXN0
TWVtb3J5PWZhbHNlIiwgKkZUTF9PUFRJT05TKQotICAgICAgICBydW4oIndhc20tYjMiLCAiLW0i
LCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICpGVExf
T1BUSU9OUykKLSAgICAgICAgcnVuKCJ3YXNtLWFpciIsICItbSIsICItLXVzZVdhc21MTEludD1m
YWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIs
ICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5Iiwg
Ii1tIiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpG
VExfT1BUSU9OUykgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8KKyAgICAgICAgaWYgJGlz
RlRMUGxhdGZvcm0KKyAgICAgICAgICAgIHJ1bigid2FzbS1iMyIsICItbSIsICItLXVzZVdhc21M
TEludD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKkZUTF9PUFRJT05TKQorICAg
ICAgICAgICAgcnVuKCJ3YXNtLWFpciIsICItbSIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICIt
LXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICpGVExfT1BU
SU9OUykKKyAgICAgICAgZW5kCiAgICAgZW5kCiBlbmQKIAogZGVmIHJ1bldlYkFzc2VtYmx5SmV0
U3RyZWFtMgogICAgIHJldHVybiBpZiAhJGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQ
bGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2FzbVBsYXRmb3JtCiAKICAgICBpZiAkbWVtb3J5
TGltaXRlZAogICAgICAgICBza2lwCkBAIC0xNzY1LDE1ICsxNzY5LDE3IEBAIGRlZiBydW5XZWJB
c3NlbWJseUpldFN0cmVhbTIKICAgICAgICAgcnVuKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgIi0t
Zm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXZlcmlmeUdDPXRy
dWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1uby10bHMtY29udGV4dCIsICIt
LXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICpGVExfT1BUSU9OUykKICAgICAgICAg
cnVuKCJ3YXNtLXNsb3ctbWVtb3J5IiwgIi0tdXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5PWZhbHNl
IiwgKkZUTF9PUFRJT05TKQotICAgICAgICBydW4oIndhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9
ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAg
cnVuKCJ3YXNtLWFpciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5n
RXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAgICAg
cnVuKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5IiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10
cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykgaWYgc2hvdWxkQ29sbGVjdENv
bnRpbnVvdXNseT8KKyAgICAgICAgaWYgJEZUTFBsYXRmb3JtCisgICAgICAgICAgICBydW4oIndh
c20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIs
ICpGVExfT1BUSU9OUykKKyAgICAgICAgICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJ
bnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRy
dWUiLCAqRlRMX09QVElPTlMpCisgICAgICAgIGVuZAogICAgIGVuZAogZW5kCiAKIGRlZiBydW5X
ZWJBc3NlbWJseVN1aXRlKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiAgICAgcmV0dXJu
IGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0dXJu
IGlmICEkaXNXYXNtUGxhdGZvcm0KICAgICBtb2R1bGVzID0gRGlyW1dBU01URVNUU19QQVRIICsg
IiouanMiXS5tYXAgeyB8ZnwgRmlsZS5iYXNlbmFtZShmKSB9CiAgICAgcHJlcGFyZUV4dHJhQWJz
b2x1dGVGaWxlcyhXQVNNVEVTVFNfUEFUSCwgWyJ3YXNtLmpzb24iXSkKICAgICBwcmVwYXJlRXh0
cmFSZWxhdGl2ZUZpbGVzKG1vZHVsZXMubWFwIHsgfGZ8ICIuLi8iICsgZiB9LCAkY29sbGVjdGlv
bikKQEAgLTE3ODksOSArMTc5NSwxMSBAQCBkZWYgcnVuV2ViQXNzZW1ibHlTdWl0ZSgqb3B0aW9u
YWxUZXN0U3BlY2lmaWNPcHRpb25zKQogICAgICAgICBydW4oIndhc20tZWFnZXItamV0dGlzb24i
LCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09sZEFnZT10cnVlIiwgIi0tdXNlUmFu
ZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1
ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAg
ICBydW4oIndhc20tbm8tdGxzLWNvbnRleHQiLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9
ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAg
ICAgICAgcnVuKCJ3YXNtLXNsb3ctbWVtb3J5IiwgIi0tdXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5
PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCi0g
ICAgICAgIHJ1bigid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFV
c2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9u
cykpCi0gICAgICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11
c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqKEZUTF9PUFRJ
T05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuKCJ3YXNtLWNv
bGxlY3QtY29udGludW91c2x5IiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0tdmVy
aWZ5R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMp
KSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5PworICAgICAgICBpZiAkaXNGVExQbGF0Zm9y
bQorICAgICAgICAgICAgcnVuKCJ3YXNtLWIzIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0t
d2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lm
aWNPcHRpb25zKSkKKyAgICAgICAgICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJbnQ9
ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUi
LCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKKyAgICAgICAg
ZW5kCiAgICAgZW5kCiBlbmQKIApAQCAtMTgwNyw3ICsxODE1LDkgQEAgZW5kCiBkZWYgcnVuV2Vi
QXNzZW1ibHlXaXRoSGFybmVzcygqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQogICAgIHJh
aXNlIHVubGVzcyAkYmVuY2htYXJrLnRvX3MgPX4gL2hhcm5lc3NcLm0/anMvCiAgICAgcmV0dXJu
IGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0dXJu
IGlmICEkaXNXYXNtUGxhdGZvcm0KKyAgICAjIFNraXAgdGhpcyBjb21wbGV0ZWx5IG9uIGFybXY3
IGZvciBub3csIHNpbmNlIG1vc3Qgb2YgdGhlIHRlc3RzIGFyZSByZWxhdGVkIHRvIE9TUiBhbmQg
aXQncyBhIGJpdCBoYWlyeSB0byBza2lwIHRoZW0gbWFudWFsbHkKKyAgICByZXR1cm4gaWYgJGFy
Y2hpdGVjdHVyZSA9PSAiYXJtIgogCiAgICAgd2FzbUZpbGVzID0gYWxsV2FzbUZpbGVzKCRjb2xs
ZWN0aW9uKQogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMod2FzbUZpbGVzLm1hcCB7IHxm
fCBmLmJhc2VuYW1lIH0sICRjb2xsZWN0aW9uKQpAQCAtMTgxOSw5ICsxODI5LDExIEBAIGRlZiBy
dW5XZWJBc3NlbWJseVdpdGhIYXJuZXNzKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiAg
ICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgIi0tZm9yY2VDb2Rl
QmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0
YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJ
T05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuSGFybmVzc1Rl
c3QoIndhc20tbm8tdGxzLWNvbnRleHQiLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9ZmFs
c2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAg
ICAgcnVuSGFybmVzc1Rlc3QoIndhc20tc2xvdy1tZW1vcnkiLCAiLS11c2VXZWJBc3NlbWJseUZh
c3RNZW1vcnk9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRp
b25zKSkKLSAgICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9
ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25h
bFRlc3RTcGVjaWZpY09wdGlvbnMpKQotICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1uby1h
aXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJ
c2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lm
aWNPcHRpb25zKSkKICAgICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tY29sbGVjdC1jb250aW51
b3VzbHkiLCAiLS1jb2xsZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwg
KihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpIGlmIHNob3VsZENv
bGxlY3RDb250aW51b3VzbHk/CisgICAgICAgIGlmICRpc0ZUTFBsYXRmb3JtCisgICAgICAgICAg
ICBydW5IYXJuZXNzVGVzdCgid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdh
c21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmlj
T3B0aW9ucykpCisgICAgICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1uby1haXIiLCAiLS11
c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxv
Y2F0aW9uPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25z
KSkKKyAgICAgICAgZW5kCiAgICAgZW5kCiBlbmQKIApAQCAtMTgzMSw3ICsxODQzLDcgQEAgZGVm
IHJ1bldlYkFzc2VtYmx5RW1zY3JpcHRlbihtb2RlKQogICAgICAgICByZXR1cm4KICAgICBlbmQK
ICAgICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRMUGxhdGZvcm0K
KyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQogICAgIHdhc20gPSAkYmVuY2htYXJrLnRv
X3Muc3ViISAnLmpzJywgJy53YXNtJwogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMoW1Bh
dGhuYW1lKCcuLicpICsgd2FzbV0sICRjb2xsZWN0aW9uKQogICAgIHJ1bigiZGVmYXVsdC13YXNt
IiwgKkZUTF9PUFRJT05TKQpAQCAtMTgzOSw5ICsxODUxLDExIEBAIGRlZiBydW5XZWJBc3NlbWJs
eUVtc2NyaXB0ZW4obW9kZSkKICAgICAgICAgcnVuKCJ3YXNtLW5vLWNqaXQteWVzLXRscy1jb250
ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PXRydWUiLCAqKEZUTF9PUFRJT05TICsg
Tk9fQ0pJVF9PUFRJT05TKSkKICAgICAgICAgcnVuKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgIi0t
Zm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRvbWl6
aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAq
RlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1uby10bHMtY29udGV4dCIsICItLXVzZUZh
c3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVuKCJ3
YXNtLWIzIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2Ui
LCAqRlRMX09QVElPTlMpCi0gICAgICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJbnQ9
ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUi
LCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNseSIs
ICItLWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqRlRMX09Q
VElPTlMpIGlmIHNob3VsZENvbGxlY3RDb250aW51b3VzbHk/CisgICAgICAgIGlmICRpc0ZUTFBs
YXRmb3JtCisgICAgICAgICAgICBydW4oIndhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2Ui
LCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICpGVExfT1BUSU9OUykKKyAgICAgICAgICAgIHJ1
bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4
ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqRlRMX09QVElPTlMpCisgICAgICAgIGVu
ZAogICAgIGVuZAogZW5kCiAKQEAgLTE4NTEsNyArMTg2NSw3IEBAIGRlZiBydW5XZWJBc3NlbWJs
eVNwZWNUZXN0QmFzZShtb2RlLCBzcGVjSGFybmVzc1BhdGgsICpvcHRpb25hbFRlc3RTcGVjaWZp
Y09wdGlvCiAgICAgICAgIHJldHVybgogICAgIGVuZAogICAgIHJldHVybiBpZiAhJGppdFRlc3Rz
Ci0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2FzbVBs
YXRmb3JtCiAgICAgcHJlcGFyZUV4dHJhQWJzb2x1dGVGaWxlcyhXQVNNVEVTVFNfUEFUSCwgWyJ3
YXNtLmpzb24iXSkKIAogICAgIG1vZHVsZXMgPSBEaXJbV0FTTVRFU1RTX1BBVEggKyAiKi5qcyJd
Lm1hcCB7IHxmfCBGaWxlLmJhc2VuYW1lKGYpIH0KQEAgLTE4NjYsOSArMTg4MCwxMSBAQCBkZWYg
cnVuV2ViQXNzZW1ibHlTcGVjVGVzdEJhc2UobW9kZSwgc3BlY0hhcm5lc3NQYXRoLCAqb3B0aW9u
YWxUZXN0U3BlY2lmaWNPcHRpbwogICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20tbm8t
Y2ppdC15ZXMtdGxzLWNvbnRleHQiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQ
YXRoLCAgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PXRydWUiLCAqKEZUTF9PUFRJT05TICsg
Tk9fQ0pJVF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgIHJ1
bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgbm9pc3lPdXRwdXRIYW5k
bGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9P
bGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249
dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3Bl
Y2lmaWNPcHRpb25zKSkKICAgICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLW5vLXRscy1j
b250ZXh0Iiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tdXNlRmFz
dFRMU0Zvcldhc21Db250ZXh0PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNw
ZWNpZmljT3B0aW9ucykpCi0gICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1iMyIsIG5v
aXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICItLXVzZVdhc21MTEludD1mYWxz
ZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVz
dFNwZWNpZmljT3B0aW9ucykpCi0gICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1haXIi
LCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAiLS11c2VXYXNtTExJbnQ9
ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUi
LCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgIHJ1
bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5Iiwgbm9pc3lPdXRw
dXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVl
IiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZp
Y09wdGlvbnMpKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5PworICAgICAgaWYgJGlzRlRM
UGxhdGZvcm0KKyAgICAgICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1iMyIsIG5vaXN5
T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICItLXVzZVdhc21MTEludD1mYWxzZSIs
ICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNw
ZWNpZmljT3B0aW9ucykpCisgICAgICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20tYWly
Iiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tdXNlV2FzbUxMSW50
PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVl
IiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCisgICAgICBl
bmQKICAgICBlbmQKIGVuZAogCkBAIC0xODg2LDcgKzE5MDIsNyBAQCBlbmQKIAogZGVmIHJ1bldl
YkFzc2VtYmx5TG93RXhlY3V0YWJsZU1lbW9yeSgqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25z
KQogICAgIHJldHVybiBpZiAhJGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0Zm9y
bQorICAgIHJldHVybiBpZiAhJGlzV2FzbVBsYXRmb3JtCiAgICAgbW9kdWxlcyA9IERpcltXQVNN
VEVTVFNfUEFUSCArICIqLmpzIl0ubWFwIHsgfGZ8IEZpbGUuYmFzZW5hbWUoZikgfQogICAgIHBy
ZXBhcmVFeHRyYUFic29sdXRlRmlsZXMoV0FTTVRFU1RTX1BBVEgsIFsid2FzbS5qc29uIl0pCiAg
ICAgcHJlcGFyZUV4dHJhUmVsYXRpdmVGaWxlcyhtb2R1bGVzLm1hcCB7IHxmfCAiLi4vIiArIGYg
fSwgJGNvbGxlY3Rpb24pCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9m
aWxlci13YXNtLW5hbWUtc2VjdGlvbi5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2Zp
bGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzCmluZGV4IDVjMjIwZmQ3NmNkYy4uMzY4NmM2Mzk3MDQw
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5hbWUt
c2VjdGlvbi5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5h
bWUtc2VjdGlvbi5qcwpAQCAtMSwzICsxLDggQEAKKy8vIFRoaXMgdGVzdCBpcyBzdGF0aXN0aWNh
bCwgYW5kIHdpdGhvdXQgb3B0aW1pemluZyBXYXNtIHRpZXJzIHRoZSBsaWtlbGlob29kCisvLyBv
ZiBoaXR0aW5nIHRoZSBkZWVwZXN0IGV4cGVjdGVkIHN0YWNrIHRyYWNlIGlzIHZlcnkgbG93LCBz
byBkaXNhYmxlLgorLy8gRklYTUU6IHJlbW92ZSB3aGVuIDMyLWJpdCBwbGF0Zm9ybXMgc3VwcG9y
dCBvcHRpbWl6aW5nIFdhc20gdGllcnMKKy8vQCBza2lwIGlmIFsiYXJtIiwgIm1pcHMiXS5pbmNs
dWRlPygkYXJjaGl0ZWN0dXJlKQorLy8KIC8vQCBydW5EZWZhdWx0CiAKIC8qCmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzIGIvSlNUZXN0cy9zdHJl
c3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qcwppbmRleCAwNmRmMDEyNDk1OTYuLjcyNDBjMDBk
ZTI3ZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5q
cworKysgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzCkBAIC0xLDMg
KzEsNCBAQAorLy9AIHNraXAgaWYgJGFyY2hpdGVjdHVyZSA9PSAiYXJtIgogLy9AIHJ1bkRlZmF1
bHQKIAogaWYgKHBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKCkgJiYgJHZtLmlzV2Fz
bVN1cHBvcnRlZCgpKSB7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vcmVncmVzcy9sbGludC1j
YWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5qcyBiL0pTVGVzdHMvd2FzbS9yZWdyZXNzL2xs
aW50LWNhbGxlZS1zYXZlcy13aXRoLWZhc3QtbWVtb3J5LmpzCmluZGV4IGY5ZjA5YzQ3NTEzYS4u
MTFjZmIxNjRiYjY0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vcmVncmVzcy9sbGludC1jYWxs
ZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5qcworKysgYi9KU1Rlc3RzL3dhc20vcmVncmVzcy9s
bGludC1jYWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5qcwpAQCAtMSwzICsxLDQgQEAKKy8v
QCBza2lwIGlmICRhcmNoaXRlY3R1cmUgPT0gImFybSIKIC8vQCByZXF1aXJlT3B0aW9ucygiLS11
c2VXZWJBc3NlbWJseUZhc3RNZW1vcnk9dHJ1ZSIpCiAKIGltcG9ydCAqIGFzIGFzc2VydCBmcm9t
ICcuLi9hc3NlcnQuanMnOwotLSAKMi4zMC4yCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459756</attachid>
            <date>2022-05-25 07:17:43 -0700</date>
            <delta_ts>2022-06-07 07:09:40 -0700</delta_ts>
            <desc>v12 - rebase</desc>
            <filename>bug-221260-20220525141741.patch</filename>
            <type>text/plain</type>
            <size>316741</size>
            <attacher name="Geza Lore">glore</attacher>
            
              <data encoding="base64">RnJvbSA1NDIxYTBhNWI2NzNlYTgzOGRlZmJjZDA5ZmUwYTM3NjEwZWViYzRjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHZXphIExvcmUgPGdsb3JlQGlnYWxpYS5jb20+CkRhdGU6IFdl
ZCwgMTggTWF5IDIwMjIgMDc6MzE6MDQgKzAwMDAKU3ViamVjdDogW1BBVENIXSBbSlNDXSBFbmFi
bGUgV2FzbUxMSW50IG9uIEFSTXY3Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4
dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Cgpo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMjYwCgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KClBhdGNoIGJ5IEdlemEgTG9yZSBhbmQgWGFuIEzDs3Blei4KCklt
cGxlbWVudCB0aGUgTExJbnQgdGllciBvZiBXZWJBc3NlbWJseSBmb3IgQVJNdjcuIEEgbG90IG9m
IHRoZQp3b3JrIHdpbGwgYmUgc2hhcmVkIGJ5IGFueSAzMmJpdCBwb3J0LCBidXQgdGhlIG9mZmxp
bmVhc3NlbWJsZXIKaGFzIG9ubHkgYmVlbiB1cGRhdGVkIGZvciBBUk12NyBzbyBmYXIuCgpNYWlu
IGhpZ2hsaWdodHM6CgpXZSBoYXZlIHNwbGl0IHRoZSBXZWJBc3NlbWJseS5hc20gZmlsZSBpbnRv
IHRocmVlIGNodW5rcywKZm9sbG93aW5nIHdoYXQgTG93TGV2ZWxJbnRlcnByZXRlci5hc20gZG9l
cy4gVGhlIGNvbW1vbiBjb2RlCnJlbWFpbnMgaW4gV2ViQXNzZW1ibHkuYXNtLCBhbmQgMzIgYW5k
IDY0Yml0IHNwZWNpZmljIGNvZGUgKG1vc3RseQpvcGNvZGUgaW1wbGVtZW50YXRpb25zKSBnb2Vz
IGludG8gV2ViQXNzZW1ibHkzMl82NC5hc20gYW5kCldlYkFzc2VtYmx5NjQuYXNtLgoKV2UgaGF2
ZSBkZWNpZGVkIHRvIHVzZSBjb25zZWN1dGl2ZSBldmVuL29kZCBwYWlycyBvZiBHUFJzIGZvciBl
dmVyeQp0eXBlIG9mIHdhc20gdmFsdWVzLCBldmVuIGlmIHRoZXkgYXJlIDMyYml0IChpMzIvZjMy
KSwgd2l0aCB0aGUgb2RkCihoaWdoZXIpIG51bWJlcmVkIEdQUiBob2xkaW5nIHRoZSBtb3JlIHNp
Z25pZmljYW50IGhhbGYuIDMyYml0IHZhbHVlcwphcmUgaGVsZCBpbiB0aGUgZXZlbiAobG93ZXIp
IG51bWJlcmVkIHJlZ2lzdGVyLiBUaGlzIG1ha2VzIHRoZSBjb2RlCm11Y2ggc2ltcGxlciBhbmQg
YWxsb3dzIHVzIHRvIHNoYXJlIG1vcmUgY29kZSB3aXRoIHRoZSA2NGJpdCB2YXJpYW50LgpUaGlz
IGlzIG1vc3RseSByZWxldmFudCBmb3IgYXJndW1lbnQgcGFzc2luZywgYW5kIGdpdmVuIHRoYXQg
ZXZlcnkKdmFsdWUgZW5kcyB1cCBpbiB0aGUgc3RhY2sgYW55d2F5IHdlIGRvIG5vdCB0aGluayBp
dCBpcyBzaWduaWZpY2FudApmcm9tIGEgcGVyZm9ybWFuY2UgUE9WLgoKV2UgYXJlIHJldXNpbmcg
SlNWYWx1ZVJlZ3MgdG8gaG9sZCBXYXNtIHZhbHVlcyB0b28uIE9idmlvdXNseSB0aGV5CmFyZSBu
b3QgcmVhbGx5IEpTVmFsdWVzLCBzbyBpdCBtaWdodCBtYWtlIHNlbnNlIHRvIGNyZWF0ZSBhIGJh
c2UKY2xhc3MgdGhhdCBjYW4gYmUgdXNlZCBmb3IgYm90aCBKUyBhbmQgV2FzbSB2YWx1ZXMuCgpX
ZSBkbyBub3QgaGF2ZSBlbm91Z2ggcmVnaXN0ZXJzIHRvIGtlZXAgdGhpbmdzIGxpa2UgdGhlIG1l
bW9yeQpiYXNlIHBvaW50ZXIgYW5kIHNpemUgaW4gcGlubmVkIHJlZ2lzdGVycywgc28gd2UgYXJl
IGZvcmNlZCB0bwpsb2FkIHRoZW0gb24gZWFjaCB1c2UuCgpXZSBkaXNhYmxlIHRoZSAnU2lnbmFs
aW5nJyBtZW1vcnkgbW9kZSwgc2luY2UgdGhlIGN1cnJlbnQKaW1wbGVtZW50YXRpb24gcmVsaWVz
IG9uIGJlaW5nIGFibGUgdG8gbXByb3RlY3QgYSAyXjMyICsgcmVkem9uZQpyZWdpb24gb2YgbWVt
b3J5LiBUaGlzIGNhbiBiZSBjaGFuZ2VkIGluIHRoZSBmdXR1cmUgYnV0IGl0J3Mgbm90IGEKcHJp
b3JpdHkgYXQgdGhlIG1vbWVudC4KCiogc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20tbmFt
ZS1zZWN0aW9uLmpzOgoqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzOgoqIHdhc20v
cmVncmVzcy9sbGludC1jYWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5qczoKKiBDTWFrZUxp
c3RzLnR4dDoKKiBhc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaDoKKEpTQzo6QVJNdjdBc3NlbWJs
ZXI6OnZjdnRfc2lnbmVkVG9GbG9hdGluZ1BvaW50KToKKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk12Ny5oOgooSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojpjb252ZXJ0SW50MzJUb0Zsb2F0
KToKKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6dGhyZWFkU2FmZVBhdGNoYWJsZU5lYXJDYWxs
KToKKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6Y2FsbE9wZXJhdGlvbik6CiogYjMvQjNWYWx1
ZVJlcC5oOgooSlNDOjpCMzo6VmFsdWVSZXA6OlZhbHVlUmVwKToKKiBieXRlY29kZS9CeXRlY29k
ZUR1bXBlci5jcHA6CihKU0M6Oldhc206OkJ5dGVjb2RlRHVtcGVyOjpmb3JtYXRDb25zdGFudCBj
b25zdCk6CiogaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmg6IGFkYXB0IHRvIG5ldyBjYWxsZWUgdGFn
Z2luZyBmb3JtYXQuCihKU0M6OkNhbGxGcmFtZTo6Y2FsbGVlIGNvbnN0KToKKEpTQzo6Q2FsbEZy
YW1lOjp1bnNhZmVDYWxsZWUgY29uc3QpOgoqIGludGVycHJldGVyL0NhbGxlZUJpdHMuaDogYWRk
IHdhc20gdGFnZ2luZyBvZiBjYWxsZWUgdmFsdWVzIGZvcgozMmJpdC4KKEpTQzo6Q2FsbGVlQml0
czo6Q2FsbGVlQml0cyk6CihKU0M6OkNhbGxlZUJpdHM6Om9wZXJhdG9yPSk6CihKU0M6OkNhbGxl
ZUJpdHM6OmJveFdhc20pOgooSlNDOjpDYWxsZWVCaXRzOjppc1dhc20gY29uc3QpOgooSlNDOjpD
YWxsZWVCaXRzOjphc1dhc21DYWxsZWUgY29uc3QpOgoqIGludGVycHJldGVyL1JlZ2lzdGVyLmg6
CihKU0M6OlJlZ2lzdGVyOjp1bmJveGVkRmxvYXQgY29uc3QpOgooSlNDOjpSZWdpc3Rlcjo6YXNh
blVuc2FmZVVuYm94ZWRGbG9hdCBjb25zdCk6Ciogaml0L0Fzc2VtYmx5SGVscGVycy5oOgooSlND
OjpBc3NlbWJseUhlbHBlcnM6OnVuYm94RG91YmxlKToKKiBqaXQvUmVnaXN0ZXJBdE9mZnNldExp
c3QuY3BwOgooSlNDOjpSZWdpc3RlckF0T2Zmc2V0TGlzdDo6UmVnaXN0ZXJBdE9mZnNldExpc3Qp
OgoqIGppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5oOgooSlNDOjpSZWdpc3RlckF0T2Zmc2V0TGlz
dDo6c2l6ZU9mQXJlYUluQnl0ZXMgY29uc3QpOgoqIGppdC9SZWdpc3RlclNldC5jcHA6CihKU0M6
OlJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMpOgoqIGxsaW50L0xMSW50T2ZmbGlu
ZUFzbUNvbmZpZy5oOgoqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CiogbGxp
bnQvV2ViQXNzZW1ibHkuYXNtOgoqIGxsaW50L1dlYkFzc2VtYmx5MzJfNjQuYXNtOiBBZGRlZC4K
KiBsbGludC9XZWJBc3NlbWJseTY0LmFzbTogQWRkZWQuCiogb2ZmbGluZWFzbS9hcm0ucmI6Ciog
b2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmI6Ciogb2ZmbGluZWFzbS9yZWdpc3RlcnMucmI6Ciog
b2ZmbGluZWFzbS9yaXNjLnJiOgoqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgooSlNDOjp3YXNtVW5i
b3hlZEZsb2F0KToKKiBydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmg6CihKU0M6OkpTVmFsdWU6
OkpTVmFsdWUpOgoqIHdhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcDoKKEpTQzo6V2FzbTo6QWly
SVJHZW5lcmF0b3I6OnVzZVNpZ25hbGluZ01lbW9yeSBjb25zdCk6CihKU0M6Oldhc206OkFpcklS
R2VuZXJhdG9yOjpBaXJJUkdlbmVyYXRvcik6CihKU0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjpl
bWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcik6CihKU0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjph
ZGRDYWxsKToKKiB3YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcDoKKEpTQzo6V2FzbTo6QjNJUkdl
bmVyYXRvcjo6dXNlU2lnbmFsaW5nTWVtb3J5IGNvbnN0KToKKEpTQzo6V2FzbTo6QjNJUkdlbmVy
YXRvcjo6QjNJUkdlbmVyYXRvcik6CihKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OmFkZEFyZ3Vt
ZW50cyk6CihKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OmVtaXRDaGVja0FuZFByZXBhcmVQb2lu
dGVyKToKKEpTQzo6V2FzbTo6QjNJUkdlbmVyYXRvcjo6bWVtb3J5S2luZCk6CihKU0M6Oldhc206
OkIzSVJHZW5lcmF0b3I6OmFkZENhbGwpOgoqIHdhc20vV2FzbUJpbmRpbmcuY3BwOgooSlNDOjpX
YXNtOjp3YXNtVG9XYXNtKToKKiB3YXNtL1dhc21DYWxsZWUuY3BwOgooSlNDOjpXYXNtOjpMTElu
dENhbGxlZTo6Y2FsbGVlU2F2ZVJlZ2lzdGVycyk6Ciogd2FzbS9XYXNtQ2FsbGVlR3JvdXAuY3Bw
OgooSlNDOjpXYXNtOjpDYWxsZWVHcm91cDo6aXNTYWZlVG9SdW4pOgoqIHdhc20vV2FzbUNhbGxp
bmdDb252ZW50aW9uLmNwcDoKKEpTQzo6V2FzbTo6anNDYWxsaW5nQ29udmVudGlvbik6CihKU0M6
Oldhc206Ondhc21DYWxsaW5nQ29udmVudGlvbik6Ciogd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRp
b24uaDoKKEpTQzo6V2FzbTo6Q2FsbEluZm9ybWF0aW9uOjpjb21wdXRlUmVzdWx0c09mZnNldExp
c3QpOgooSlNDOjpXYXNtOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb246Oldhc21DYWxsaW5nQ29udmVu
dGlvbik6CihKU0M6Oldhc206Oldhc21DYWxsaW5nQ29udmVudGlvbjo6bWFyc2hhbGxMb2NhdGlv
bkltcGwgY29uc3QpOgooSlNDOjpXYXNtOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxs
TG9jYXRpb24gY29uc3QpOgooSlNDOjpXYXNtOjpKU0NhbGxpbmdDb252ZW50aW9uOjpKU0NhbGxp
bmdDb252ZW50aW9uKToKKEpTQzo6V2FzbTo6SlNDYWxsaW5nQ29udmVudGlvbjo6bWFyc2hhbGxM
b2NhdGlvbkltcGwgY29uc3QpOgooSlNDOjpXYXNtOjpKU0NhbGxpbmdDb252ZW50aW9uOjptYXJz
aGFsbExvY2F0aW9uIGNvbnN0KToKKEpTQzo6V2FzbTo6SlNDYWxsaW5nQ29udmVudGlvbjo6Y2Fs
bEluZm9ybWF0aW9uRm9yIGNvbnN0KToKKiB3YXNtL1dhc21Gb3JtYXQuaDoKKiB3YXNtL1dhc21J
bmRleE9yTmFtZS5jcHA6CihKU0M6Oldhc206OkluZGV4T3JOYW1lOjpJbmRleE9yTmFtZSk6CihK
U0M6Oldhc206Om1ha2VTdHJpbmcpOgoqIHdhc20vV2FzbUluZGV4T3JOYW1lLmg6CihKU0M6Oldh
c206OkluZGV4T3JOYW1lOjpJbmRleE9yTmFtZSk6CihKU0M6Oldhc206OkluZGV4T3JOYW1lOjpp
c0VtcHR5IGNvbnN0KToKKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OmlzSW5kZXggY29uc3QpOgoo
SlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6aXNOYW1lIGNvbnN0KToKKEpTQzo6V2FzbTo6SW5kZXhP
ck5hbWU6OmluZGV4IGNvbnN0KToKKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6Om5hbWUgY29uc3Qp
OgooSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6bmFtZVNlY3Rpb24gY29uc3QpOgoqIHdhc20vV2Fz
bUluc3RhbmNlLmg6CihKU0M6Oldhc206Okluc3RhbmNlOjp1cGRhdGVDYWNoZWRNZW1vcnkpOgoq
IHdhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcDoKKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6
OnZpcnR1YWxSZWdpc3RlckZvcldhc21Mb2NhbCk6CihKU0M6Oldhc206OkxMSW50R2VuZXJhdG9y
OjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIpOgooSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6
Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVlKToKKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmFk
ZEFyZ3VtZW50cyk6CihKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjphZGRMb29wKToKKiB3YXNt
L1dhc21MTEludFBsYW4uY3BwOgooSlNDOjpXYXNtOjpMTEludFBsYW46OmRpZENvbXBsZXRlQ29t
cGlsYXRpb24pOgoqIHdhc20vV2FzbU1lbW9yeS5jcHA6CihKU0M6Oldhc206Ok1lbW9yeUhhbmRs
ZTo6fk1lbW9yeUhhbmRsZSk6CihKU0M6Oldhc206Ok1lbW9yeTo6dHJ5Q3JlYXRlKToKKEpTQzo6
V2FzbTo6TWVtb3J5Ojpncm93U2hhcmVkKToKKEpTQzo6V2FzbTo6TWVtb3J5Ojpncm93KToKKEpT
Qzo6V2FzbTo6TWVtb3J5Ojpjb3B5KToKKiB3YXNtL1dhc21NZW1vcnkuaDoKKiB3YXNtL1dhc21N
ZW1vcnlJbmZvcm1hdGlvbi5jcHA6CihKU0M6Oldhc206OlBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0
KToKKiB3YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5oOgooSlNDOjpXYXNtOjpQaW5uZWRSZWdp
c3RlckluZm86OnRvU2F2ZSBjb25zdCk6Ciogd2FzbS9XYXNtTWVtb3J5TW9kZS5jcHA6CihKU0M6
Oldhc206Om1ha2VTdHJpbmcpOgoqIHdhc20vV2FzbU1lbW9yeU1vZGUuaDoKKiB3YXNtL1dhc21P
cGNvZGVPcmlnaW4uY3BwOgoqIHdhc20vV2FzbU9wY29kZU9yaWdpbi5oOgoqIHdhc20vV2FzbU9w
ZXJhdGlvbnMuY3BwOgooSlNDOjpXYXNtOjpKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04pOgoqIHdh
c20vV2FzbU9wZXJhdGlvbnMuaDoKKiB3YXNtL1dhc21QYWdlQ291bnQuaDoKKiB3YXNtL1dhc21Q
YXJzZXIuaDoKKEpTQzo6V2FzbTo6UGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VVSW50MzIpOgoo
SlNDOjpXYXNtOjpQYXJzZXI8U3VjY2Vzc1R5cGU+OjpwYXJzZVVJbnQ2NCk6Ciogd2FzbS9XYXNt
U2xvd1BhdGhzLmNwcDoKKEpTQzo6TExJbnQ6OldBU01fU0xPV19QQVRIX0RFQ0wpOgooSlNDOjpM
TEludDo6c2xvd19wYXRoX3dhc21fcG9wY291bnQpOgooSlNDOjpMTEludDo6c2xvd19wYXRoX3dh
c21fcG9wY291bnRsbCk6CihKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pMzJfZGl2X3MpOgoo
SlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTMyX2Rpdl91KToKKEpTQzo6TExJbnQ6OnNsb3df
cGF0aF93YXNtX2kzMl9yZW1fcyk6CihKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pMzJfcmVt
X3UpOgooSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTY0X2Rpdl9zKToKKEpTQzo6TExJbnQ6
OnNsb3dfcGF0aF93YXNtX2k2NF9kaXZfdSk6CihKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9p
NjRfcmVtX3MpOgooSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTY0X3JlbV91KToKKiB3YXNt
L1dhc21TbG93UGF0aHMuaDoKKiB3YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmNwcDoKKEpTQzo6V2Fz
bTo6VmFsdWVMb2NhdGlvbjo6ZHVtcCBjb25zdCk6CihXVEY6OnByaW50SW50ZXJuYWwpOgoqIHdh
c20vV2FzbVZhbHVlTG9jYXRpb24uaDoKKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6VmFsdWVM
b2NhdGlvbik6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzR1BSIGNvbnN0KToKKEpTQzo6
V2FzbTo6VmFsdWVMb2NhdGlvbjo6aXNGUFIgY29uc3QpOgooSlNDOjpXYXNtOjpWYWx1ZUxvY2F0
aW9uOjppc1N0YWNrIGNvbnN0KToKKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6aXNTdGFja0Fy
Z3VtZW50IGNvbnN0KToKKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6anNyIGNvbnN0KToKKEpT
Qzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6ZnByIGNvbnN0KToKKEpTQzo6V2FzbTo6VmFsdWVMb2Nh
dGlvbjo6cmVnKTogRGVsZXRlZC4KKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6aXNSZWcgY29u
c3QpOiBEZWxldGVkLgooSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjpyZWcgY29uc3QpOiBEZWxl
dGVkLgooSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjpncHIgY29uc3QpOiBEZWxldGVkLgoqIHdh
c20vanMvSlNUb1dhc20uY3BwOgooSlNDOjpXYXNtOjptYXJzaGFsbEpTUmVzdWx0KToKKEpTQzo6
V2FzbTo6Y3JlYXRlSlNUb1dhc21XcmFwcGVyKToKKiB3YXNtL2pzL1dhc21Ub0pTLmNwcDoKKEpT
Qzo6V2FzbTo6d2FzbVRvSlMpOgoqIHdhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHA6CihK
U0M6OldlYkFzc2VtYmx5RnVuY3Rpb246OnByZXZpb3VzSW5zdGFuY2VPZmZzZXQgY29uc3QpOgoo
SlNDOjpXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdyk6Ciogd2FzbS9q
cy9XZWJBc3NlbWJseUdsb2JhbENvbnN0cnVjdG9yLmNwcDoKKEpTQzo6SlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKToKKiB3YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcDoKKEpTQzo6
V2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVFeHBvcnRzKToKKiB3dGYvUGxhdGZv
cm1FbmFibGUuaDogZW5hYmxlIFdlYkFzc2VtYmx5IG9uIEFSTXY3LgoqIFNjcmlwdHMvcnVuLWpz
Yy1zdHJlc3MtdGVzdHM6IGFsbG93IHRvIHJ1biB0aGUgd2FzbSB0ZXN0cyBvbgphcm12NyBldmVu
IHdpdGhvdXQgaml0IHN1cHBvcnQgKGZvciBub3cpLgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dCAgICAgICAgICB8ICAgIDIgKwogLi4uL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9BUk12N0Fzc2VtYmxlci5oIHwgICAgNCArLQogLi4uL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTXY3LmggICAgICAgICAgIHwgICAyMCArCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNWYWx1ZVJlcC5oICAgICAgICAgfCAgICA4ICstCiAuLi4vYnl0ZWNvZGUvQnl0ZWNvZGVE
dW1wZXIuY3BwICAgICAgICAgICAgICAgfCAgICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmggfCAgICA0ICstCiAuLi4vSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvQ2FsbGVlQml0cy5oICAgfCAgIDM1ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaCAgfCAgIDE2ICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQXNzZW1ibHlIZWxwZXJzLmggICB8ICAgIDUgKy0KIC4uLi9sbGludC9MTEludE9mZmxpbmVB
c21Db25maWcuaCAgICAgICAgICAgICB8ICAgIDYgKwogLi4uL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIzMl82NC5hc20gICAgICAgIHwgICAxNiArCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvV2ViQXNzZW1ibHkuYXNtICAgfCAxNTE5ICsrKy0tLS0tLS0tLS0tLS0tCiAuLi4vSmF2YVNj
cmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHkzMl82NC5hc20gfCAxMTI5ICsrKysrKysrKysrKwog
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5NjQuYXNtIHwgMTI1OSArKysr
KysrKysrKysrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiICAgICAg
IHwgIDI4MSArKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5y
YiB8ICAgMTcgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5y
YiB8ICAgIDMgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIgICAg
ICB8ICAgIDYgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaCAg
ICB8ICAgMTggKy0KIC4uLi9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmggICAgICAgICAgICAg
ICB8ICAgIDcgKwogLi4uL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcCAgICAgICAgICAgICAg
IHwgICAxNSArLQogLi4uL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3Bw
IHwgICAyOSArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwICAg
IHwgICAxOCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5jcHAgICAg
IHwgICAgNSArLQogLi4uL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZUdyb3VwLmNwcCAg
IHwgICAgNCArCiAuLi4vd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwICAgICAgICAgICAg
fCAgIDM4ICstCiAuLi4vd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uaCAgICAgICAgICAgICAg
fCAgIDQxICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmggICAgICAg
fCAgICAyICsKIC4uLi9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5jcHAgICB8
ICAgMjcgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5oICB8
ICAgNzIgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5oICAgICB8
ICAgIDUgKy0KIC4uLi93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAgICAgICAgICAgICAgICB8
ICAgMTAgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3BwICB8
ICAgIDcgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3BwICAgICB8
ICAgNTAgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaCAgICAgICB8
ICAgIDUgKy0KIC4uLi93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5jcHAgICAgICAgICAgICB8
ICAgIDcgKwogLi4uL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmggICAgICAgICAgICAgIHwg
ICAgNSArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuY3BwIHwg
ICAgMiArCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5oICAgfCAg
ICAyICsKIC4uLi9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uY3BwICB8ICAg
IDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uaCB8ICAg
IDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcCB8ICAg
NTQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmggICB8ICAg
MTUgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYWdlQ291bnQuaCAgICB8ICAg
IDcgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaCAgICAgICB8ICAg
IDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3BwICB8ICAy
MzAgKystCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmggICAgfCAg
IDM0ICsKIC4uLi9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmNwcCB8ICAg
MTQgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmggICB8ICAg
NDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNwcCAgICB8ICAx
ODQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcCAgICB8ICAx
NDggKy0KIC4uLi93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwICAgICAgICAgICB8ICAx
NTIgKy0KIC4uLi93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwICB8ICAg
IDIgKy0KIC4uLi93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcCAgICAgICB8ICAg
IDIgKy0KIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmggICAgICAgICAgICAgICB8ICAg
IDYgKy0KIFRvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgICAgICAgICAgICB8ICAg
NTQgKy0KIC4uLi9zYW1wbGluZy1wcm9maWxlci13YXNtLW5hbWUtc2VjdGlvbi5qcyAgICB8ICAg
IDUgKwogSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qcyAgICAgIHwgICAg
MSArCiAuLi4vbGxpbnQtY2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnkuanMgICAgfCAgICAx
ICsKIDU5IGZpbGVzIGNoYW5nZWQsIDM5OTcgaW5zZXJ0aW9ucygrKSwgMTY2OSBkZWxldGlvbnMo
LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNz
ZW1ibHkzMl82NC5hc20KIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvV2ViQXNzZW1ibHk2NC5hc20KCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggY2M5NDllODMwNGQ0Li41YzM4MmFlN2U4NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTIwMCw2ICsyMDAsOCBAQCBzZXQoTExJTlRfQVNNCiAgICAgbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQogICAgIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXI2NC5hc20KICAgICBsbGludC9XZWJBc3NlbWJseS5hc20KKyAgICBsbGludC9XZWJBc3NlbWJs
eTMyXzY0LmFzbQorICAgIGxsaW50L1dlYkFzc2VtYmx5NjQuYXNtCiApCiAKIHNldChPRkZMSU5F
X0FTTQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fz
c2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxl
ci5oCmluZGV4IDljYTZhNGE2Yzg0MS4uNmM3NmU0ZWY1MjMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCkBAIC0xOTkxLDEwICsxOTkx
LDEwIEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIudmZwT3AoT1BfVkNNUCwgT1BfVkNN
UGIsIHRydWUsIFZGUE9wZXJhbmQoNSksIHJkLCBWRlBPcGVyYW5kKDApKTsKICAgICB9CiAKLSAg
ICB2b2lkIHZjdnRfc2lnbmVkVG9GbG9hdGluZ1BvaW50KEZQRG91YmxlUmVnaXN0ZXJJRCByZCwg
RlBTaW5nbGVSZWdpc3RlcklEIHJtKQorICAgIHZvaWQgdmN2dF9zaWduZWRUb0Zsb2F0aW5nUG9p
bnQoRlBEb3VibGVSZWdpc3RlcklEIHJkLCBGUFNpbmdsZVJlZ2lzdGVySUQgcm0sIGJvb2wgdG9E
b3VibGUgPSB0cnVlKQogICAgIHsKICAgICAgICAgLy8gYm9vbGVhbiB2YWx1ZXMgYXJlIDY0Yml0
ICh0b0ludCwgdW5zaWduZWQsIHJvdW5kWmVybykKLSAgICAgICAgbV9mb3JtYXR0ZXIudmZwT3Ao
T1BfVkNWVF9GUElWRlAsIE9QX1ZDVlRfRlBJVkZQYiwgdHJ1ZSwgdmN2dE9wKGZhbHNlLCBmYWxz
ZSwgZmFsc2UpLCByZCwgcm0pOworICAgICAgICBtX2Zvcm1hdHRlci52ZnBPcChPUF9WQ1ZUX0ZQ
SVZGUCwgT1BfVkNWVF9GUElWRlBiLCB0b0RvdWJsZSwgdmN2dE9wKGZhbHNlLCBmYWxzZSwgZmFs
c2UpLCByZCwgcm0pOwogICAgIH0KIAogICAgIHZvaWQgdmN2dF9mbG9hdGluZ1BvaW50VG9TaWdu
ZWQoRlBTaW5nbGVSZWdpc3RlcklEIHJkLCBGUERvdWJsZVJlZ2lzdGVySUQgcm0pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5o
CmluZGV4IDQyYjhhNDhjZGQyMi4uMDBiOGVkNjg5MWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaApAQCAtMTQ2Nyw2
ICsxNDY3LDEyIEBAIHB1YmxpYzoKICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKKyAgICB2b2lk
IGNvbnZlcnRJbnQzMlRvRmxvYXQoUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQor
ICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIudm1vdihmcFRlbXBSZWdpc3Rlciwgc3JjLCBzcmMp
OworICAgICAgICBtX2Fzc2VtYmxlci52Y3Z0X3NpZ25lZFRvRmxvYXRpbmdQb2ludChkZXN0LCBm
cFRlbXBSZWdpc3RlckFzU2luZ2xlKCksIC8qIHRvRG91YmxlOiAqLyBmYWxzZSk7CisgICAgfQor
CiAgICAgdm9pZCBjb252ZXJ0SW50MzJUb0RvdWJsZShSZWdpc3RlcklEIHNyYywgRlBSZWdpc3Rl
cklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci52bW92KGZwVGVtcFJlZ2lzdGVy
LCBzcmMsIHNyYyk7CkBAIC0yMjk4LDYgKzIzMDQsMTQgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gQ2FsbChtX2Fzc2VtYmxlci5iKCksIENhbGw6OkxpbmthYmxlTmVhclRhaWwpOwogICAgIH0K
IAorICAgIC8vIEZJWE1FOiB3aHkgaXMgdGhpcyB0aGUgc2FtZSB0aGFuIG5lYXJDYWxsKCkgaW4g
QVJNNjQ/IGlzIGl0IHJpZ2h0PworICAgIEFMV0FZU19JTkxJTkUgQ2FsbCB0aHJlYWRTYWZlUGF0
Y2hhYmxlTmVhckNhbGwoKQorICAgIHsKKyAgICAgICAgaW52YWxpZGF0ZUFsbFRlbXBSZWdpc3Rl
cnMoKTsKKyAgICAgICAgbW92ZUZpeGVkV2lkdGhFbmNvZGluZyhUcnVzdGVkSW1tMzIoMCksIGRh
dGFUZW1wUmVnaXN0ZXIpOworICAgICAgICByZXR1cm4gQ2FsbChtX2Fzc2VtYmxlci5ibHgoZGF0
YVRlbXBSZWdpc3RlciksIENhbGw6OkxpbmthYmxlTmVhcik7CisgICAgfQorCiAgICAgQUxXQVlT
X0lOTElORSBDYWxsIGNhbGwoUHRyVGFnKQogICAgIHsKICAgICAgICAgbW92ZUZpeGVkV2lkdGhF
bmNvZGluZyhUcnVzdGVkSW1tMzIoMCksIGRhdGFUZW1wUmVnaXN0ZXIpOwpAQCAtMjMyMiw2ICsy
MzM2LDEyIEBAIHB1YmxpYzoKICAgICBBTFdBWVNfSU5MSU5FIENhbGwgY2FsbChSZWdpc3RlcklE
IHRhcmdldCwgUmVnaXN0ZXJJRCBjYWxsVGFnKSB7IHJldHVybiBVTlVTRURfUEFSQU0oY2FsbFRh
ZyksIGNhbGwodGFyZ2V0LCBOb1B0clRhZyk7IH0KICAgICBBTFdBWVNfSU5MSU5FIENhbGwgY2Fs
bChBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgY2FsbFRhZykgeyByZXR1cm4gVU5VU0VEX1BB
UkFNKGNhbGxUYWcpLCBjYWxsKGFkZHJlc3MsIE5vUHRyVGFnKTsgfQogCisgICAgQUxXQVlTX0lO
TElORSB2b2lkIGNhbGxPcGVyYXRpb24oY29uc3QgRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFn
PiBvcGVyYXRpb24pCisgICAgeworICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIob3BlcmF0aW9u
LmV4ZWN1dGFibGVBZGRyZXNzKCkpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgY2Fs
bChhZGRyZXNzVGVtcFJlZ2lzdGVyLCBPcGVyYXRpb25QdHJUYWcpOworICAgIH0KKwogICAgIEFM
V0FZU19JTkxJTkUgdm9pZCByZXQoKQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuYngobGlu
a1JlZ2lzdGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVl
UmVwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oCmluZGV4IDE1N2Jj
ODg2ODIzMS4uNzY5MzhjNmZlY2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNWYWx1ZVJlcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlUmVw
LmgKQEAgLTEyNiw5ICsxMjYsMTMgQEAgcHVibGljOgogICAgIFZhbHVlUmVwKFdhc206OlZhbHVl
TG9jYXRpb24gbG9jYXRpb24pCiAgICAgewogICAgICAgICBzd2l0Y2ggKGxvY2F0aW9uLmtpbmQo
KSkgewotICAgICAgICBjYXNlIFdhc206OlZhbHVlTG9jYXRpb246OktpbmQ6OlJlZ2lzdGVyOgor
ICAgICAgICBjYXNlIFdhc206OlZhbHVlTG9jYXRpb246OktpbmQ6OkdQUlJlZ2lzdGVyOgogICAg
ICAgICAgICAgbV9raW5kID0gUmVnaXN0ZXI7Ci0gICAgICAgICAgICB1LnJlZyA9IGxvY2F0aW9u
LnJlZygpOworICAgICAgICAgICAgdS5yZWcgPSBsb2NhdGlvbi5qc3IoKS5wYXlsb2FkR1BSKCk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXYXNtOjpWYWx1ZUxvY2F0aW9uOjpL
aW5kOjpGUFJSZWdpc3RlcjoKKyAgICAgICAgICAgIG1fa2luZCA9IFJlZ2lzdGVyOworICAgICAg
ICAgICAgdS5yZWcgPSBsb2NhdGlvbi5mcHIoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIFdhc206OlZhbHVlTG9jYXRpb246OktpbmQ6OlN0YWNrOgogICAgICAgICAgICAgbV9r
aW5kID0gU3RhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVEdW1wZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVj
b2RlRHVtcGVyLmNwcAppbmRleCBkNTRjNzRmYzYzYzYuLjdiM2Y1ZmM5ZmIyMSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCkBAIC00
MTMsNyArNDEzLDcgQEAgQ1N0cmluZyBCeXRlY29kZUR1bXBlcjo6Zm9ybWF0Q29uc3RhbnQoVHlw
ZSB0eXBlLCB1aW50NjRfdCBjb25zdGFudCkgY29uc3QKICAgICAgICAgaWYgKGlzRnVuY3JlZih0
eXBlKSB8fCBpc0V4dGVybnJlZih0eXBlKSkgewogICAgICAgICAgICAgaWYgKEpTVmFsdWU6OmRl
Y29kZShjb25zdGFudCkgPT0ganNOdWxsKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuICJudWxs
IjsKLSAgICAgICAgICAgIHJldHVybiB0b0NTdHJpbmcoUmF3UG9pbnRlcihiaXR3aXNlX2Nhc3Q8
dm9pZCo+KGNvbnN0YW50KSkpOworICAgICAgICAgICAgcmV0dXJuIHRvQ1N0cmluZyhSYXdQb2lu
dGVyKGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludHB0cl90Pihjb25zdGFudCkp
KSk7CiAgICAgICAgIH0KIAogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCmluZGV4IDhm
NTNjMzNlNGIxYi4uMGU0MGRlZGY4MDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyL0NhbGxGcmFtZS5oCkBAIC0xNjcsOCArMTY3LDggQEAgbmFtZXNwYWNlIEpTQyAg
ewogICAgICAgICAvLyB0byBzZWUgaWYgaXQncyBhIGNlbGwsIGFuZCBpZiBpdCdzIG5vdCwgd2Ug
dGhyb3cgYW4gZXhjZXB0aW9uLgogICAgICAgICBpbmxpbmUgSlNWYWx1ZSBndWFyYW50ZWVkSlNW
YWx1ZUNhbGxlZSgpIGNvbnN0OwogICAgICAgICBpbmxpbmUgSlNPYmplY3QqIGpzQ2FsbGVlKCkg
Y29uc3Q7Ci0gICAgICAgIENhbGxlZUJpdHMgY2FsbGVlKCkgY29uc3QgeyByZXR1cm4gQ2FsbGVl
Qml0cyh0aGlzW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0ucG9pbnRl
cigpKTsgfQotICAgICAgICBTVVBQUkVTU19BU0FOIENhbGxlZUJpdHMgdW5zYWZlQ2FsbGVlKCkg
Y29uc3QgeyByZXR1cm4gQ2FsbGVlQml0cyh0aGlzW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1l
U2xvdDo6Y2FsbGVlKV0uYXNhblVuc2FmZVBvaW50ZXIoKSk7IH0KKyAgICAgICAgQ2FsbGVlQml0
cyBjYWxsZWUoKSBjb25zdCB7IHJldHVybiBDYWxsZWVCaXRzKHRoaXNbc3RhdGljX2Nhc3Q8aW50
PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXS51bmJveGVkSW50NjQoKSk7IH0KKyAgICAgICAgU1VQ
UFJFU1NfQVNBTiBDYWxsZWVCaXRzIHVuc2FmZUNhbGxlZSgpIGNvbnN0IHsgcmV0dXJuIENhbGxl
ZUJpdHModGhpc1tzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSldLmFzYW5V
bnNhZmVVbmJveGVkSW50NjQoKSk7IH0KICAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2soKSBj
b25zdDsKICAgICAgICAgQ29kZUJsb2NrKiogYWRkcmVzc09mQ29kZUJsb2NrKCkgY29uc3QgeyBy
ZXR1cm4gYml0d2lzZV9jYXN0PENvZGVCbG9jayoqPih0aGlzICsgc3RhdGljX2Nhc3Q8aW50PihD
YWxsRnJhbWVTbG90Ojpjb2RlQmxvY2spKTsgfQogICAgICAgICBpbmxpbmUgU1VQUFJFU1NfQVNB
TiBDb2RlQmxvY2sqIHVuc2FmZUNvZGVCbG9jaygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxlZUJpdHMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmgKaW5kZXggMThiYjdlZjdmYThjLi5kZWEz
YWU1NTgxNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9D
YWxsZWVCaXRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxl
ZUJpdHMuaApAQCAtMzksMTEgKzM5LDIxIEBAIGNsYXNzIEpTQ2VsbDsKIGNsYXNzIENhbGxlZUJp
dHMgewogcHVibGljOgogICAgIENhbGxlZUJpdHMoKSA9IGRlZmF1bHQ7Ci0gICAgQ2FsbGVlQml0
cyh2b2lkKiBwdHIpIDogbV9wdHIocHRyKSB7IH0gCisgICAgQ2FsbGVlQml0cyhpbnQ2NF90IHZh
bHVlKQorI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIDogbV9wdHIgeyByZWludGVycHJldF9j
YXN0PHZvaWQqPih2YWx1ZSkgfQorI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgOiBt
X3B0ciB7IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkucGF5
bG9hZCgpKSB9CisgICAgICAgICwgbV90YWcgeyBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLnRhZygp
IH0KKyNlbmRpZgorICAgIHsgfQogCiAgICAgQ2FsbGVlQml0cyYgb3BlcmF0b3I9KEpTQ2VsbCog
Y2VsbCkKICAgICB7CiAgICAgICAgIG1fcHRyID0gY2VsbDsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0
KQorICAgICAgICBtX3RhZyA9IEpTVmFsdWU6OkNlbGxUYWc7CisjZW5kaWYKICAgICAgICAgQVNT
RVJUKGlzQ2VsbCgpKTsKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KQEAgLTUxLDE4ICs2
MSwyNCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgIHN0YXRpYyB2b2lk
KiBib3hXYXNtKFdhc206OkNhbGxlZSogY2FsbGVlKQogICAgIHsKLSAgICAgICAgQ2FsbGVlQml0
cyByZXN1bHQocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDx1aW50cHRy
X3Q+KGNhbGxlZSkgfCBKU1ZhbHVlOjpXYXNtVGFnKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAg
ICAgICAgQ2FsbGVlQml0cyByZXN1bHQgeyByZWludGVycHJldF9jYXN0PGludDY0X3Q+KGNhbGxl
ZSkgfCBKU1ZhbHVlOjpXYXNtVGFnIH07CiAgICAgICAgIEFTU0VSVChyZXN1bHQuaXNXYXNtKCkp
OwogICAgICAgICByZXR1cm4gcmVzdWx0LnJhd1B0cigpOworI2VsaWYgVVNFKEpTVkFMVUUzMl82
NCkKKyAgICAgICAgcmV0dXJuIGNhbGxlZTsgLy8gVGhlIHBvaW50ZXIgaXMgYXMgaXMsIGJ1dCB0
aGUgY29ycmVzcG9uZGluZyB0YWcgZmllbGQgbmVlZHMgdG8gYmUgc2V0IHRvIFdhc21UYWcgc2Vw
YXJhdGVseS4KKyNlbmRpZgogICAgIH0KICNlbmRpZgogCiAgICAgYm9vbCBpc1dhc20oKSBjb25z
dAogICAgIHsKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgICAgIHJldHVybiAocmVpbnRl
cnByZXRfY2FzdDx1aW50cHRyX3Q+KG1fcHRyKSAmIEpTVmFsdWU6Oldhc21NYXNrKSA9PSBKU1Zh
bHVlOjpXYXNtVGFnOwotI2Vsc2UKKyNpZiAhRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CisjZWxpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICByZXR1cm4gKHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtX3B0cikgJiBKU1ZhbHVlOjpXYXNtTWFzaykgPT0gSlNW
YWx1ZTo6V2FzbVRhZzsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJldHVybiBt
X3RhZyA9PSBKU1ZhbHVlOjpXYXNtVGFnOwogI2VuZGlmCiAgICAgfQogICAgIGJvb2wgaXNDZWxs
KCkgY29uc3QgeyByZXR1cm4gIWlzV2FzbSgpOyB9CkBAIC03NywxNCArOTMsMjEgQEAgcHVibGlj
OgogICAgIFdhc206OkNhbGxlZSogYXNXYXNtQ2FsbGVlKCkgY29uc3QKICAgICB7CiAgICAgICAg
IEFTU0VSVChpc1dhc20oKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8V2FzbTo6Q2FsbGVlKj4ocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+
KG1fcHRyKSAmIH5KU1ZhbHVlOjpXYXNtVGFnKTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisg
ICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFdhc206OkNhbGxlZSo+KG1fcHRyKTsKKyNl
bmRpZgogICAgIH0KICNlbmRpZgogCiAgICAgdm9pZCogcmF3UHRyKCkgY29uc3QgeyByZXR1cm4g
bV9wdHI7IH0KLSAgICAKKwogcHJpdmF0ZToKICAgICB2b2lkKiBtX3B0ciB7IG51bGxwdHIgfTsK
KyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIHVpbnQzMl90IG1fdGFnIHsgSlNWYWx1ZTo6RW1w
dHlWYWx1ZVRhZyB9OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmgKaW5kZXggZDg3OWM5MGJlMzEx
Li40NjE4MTNjNDFkMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9SZWdpc3Rlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9S
ZWdpc3Rlci5oCkBAIC03Miw2ICs3MiwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgaW50
NjRfdCB1bmJveGVkSW50NjQoKSBjb25zdDsKICAgICAgICAgaW50NjRfdCBhc2FuVW5zYWZlVW5i
b3hlZEludDY0KCkgY29uc3Q7CiAgICAgICAgIGJvb2wgdW5ib3hlZEJvb2xlYW4oKSBjb25zdDsK
KyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIGZs
b2F0IHVuYm94ZWRGbG9hdCgpIGNvbnN0OworICAgICAgICBmbG9hdCBhc2FuVW5zYWZlVW5ib3hl
ZEZsb2F0KCkgY29uc3Q7CisjZW5kaWYKICAgICAgICAgZG91YmxlIHVuYm94ZWREb3VibGUoKSBj
b25zdDsKICAgICAgICAgZG91YmxlIGFzYW5VbnNhZmVVbmJveGVkRG91YmxlKCkgY29uc3Q7CiAg
ICAgICAgIEpTQ2VsbCogdW5ib3hlZENlbGwoKSBjb25zdDsKQEAgLTE4OCw2ICsxOTIsMTggQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiAhIXBheWxvYWQoKTsKICAgICB9CiAKKyNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgQUxXQVlTX0lO
TElORSBmbG9hdCBSZWdpc3Rlcjo6dW5ib3hlZEZsb2F0KCkgY29uc3QKKyAgICB7CisgICAgICAg
IHJldHVybiBiaXR3aXNlX2Nhc3Q8ZmxvYXQ+KHBheWxvYWQoKSk7CisgICAgfQorCisgICAgU1VQ
UFJFU1NfQVNBTiBBTFdBWVNfSU5MSU5FIGZsb2F0IFJlZ2lzdGVyOjphc2FuVW5zYWZlVW5ib3hl
ZEZsb2F0KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8ZmxvYXQ+
KHBheWxvYWQoKSk7CisgICAgfQorI2VuZGlmCisKICAgICBBTFdBWVNfSU5MSU5FIGRvdWJsZSBS
ZWdpc3Rlcjo6dW5ib3hlZERvdWJsZSgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gdS5u
dW1iZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVs
cGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAppbmRl
eCBmYzU5ZWE5NGNjYTMuLjEyZWZhMTlhZWQ2MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0Fzc2VtYmx5SGVscGVycy5oCkBAIC0xNDAzLDcgKzE0MDMsMTAgQEAgcHVibGljOgogICAg
ICAgICBqaXRBc3NlcnRJc0pTRG91YmxlKGdwcik7CiAgICAgICAgIHJldHVybiB1bmJveERvdWJs
ZVdpdGhvdXRBc3NlcnRpb25zKGdwciwgcmVzdWx0R1BSLCBmcHIsIG1vZGUpOwogICAgIH0KLSAg
ICAKKyAgICB2b2lkIHVuYm94RG91YmxlKEpTVmFsdWVSZWdzIHJlZ3MsIEZQUlJlZyBmcHIpCisg
ICAgeworICAgICAgICB1bmJveERvdWJsZShyZWdzLnRhZ0dQUigpLCByZWdzLnBheWxvYWRHUFIo
KSwgZnByKTsKKyAgICB9CiAgICAgdm9pZCBib3hEb3VibGUoRlBSUmVnIGZwciwgSlNWYWx1ZVJl
Z3MgcmVncywgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlID0gSGF2ZVRhZ1JlZ2lzdGVycykKICAgICB7
CiAgICAgICAgIGJveERvdWJsZShmcHIsIHJlZ3MuZ3ByKCksIG1vZGUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCmluZGV4IDJh
NjA3ZGY4YzhlOC4uYzllMGMyOTQ1ZDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCkBAIC0xNDQsNiArMTQ0LDEyIEBACiAj
ZGVmaW5lIE9GRkxJTkVfQVNNX0pTVkFMVUU2NCAwCiAjZW5kaWYKIAorI2lmIFVTRShKU1ZBTFVF
MzJfNjQpCisjZGVmaW5lIE9GRkxJTkVfQVNNX0pTVkFMVUUzMl82NCAxCisjZWxzZQorI2RlZmlu
ZSBPRkZMSU5FX0FTTV9KU1ZBTFVFMzJfNjQgMAorI2VuZGlmCisKICNpZiBVU0UoQklHSU5UMzIp
CiAjZGVmaW5lIE9GRkxJTkVfQVNNX0JJR0lOVDMyIDEKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbSBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCmlu
ZGV4IGFkMjUwMTdlZjBiNC4uNzA0MDFlNDViZTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtMzgs
MTggKzM4LDM0IEBAIG1hY3JvIGdldHVPcGVyYW5kV2lkZTE2SlMob3Bjb2RlU3RydWN0LCBmaWVs
ZE5hbWUsIGRzdCkKICAgICBsb2FkaCBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFt
ZSVfaW5kZXggKiAyICsgT3Bjb2RlSURXaWRlMTZTaXplSlNbUEIsIFBDLCAxXSwgZHN0CiBlbmQK
IAorbWFjcm8gZ2V0dU9wZXJhbmRXaWRlMTZXYXNtKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBk
c3QpCisgICAgbG9hZGggY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4
ICogMiArIE9wY29kZUlEV2lkZTE2U2l6ZVdhc21bUEIsIFBDLCAxXSwgZHN0CitlbmQKKwogbWFj
cm8gZ2V0T3BlcmFuZFdpZGUxNkpTKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCiAgICAg
bG9hZGhzaSBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiAyICsg
T3Bjb2RlSURXaWRlMTZTaXplSlNbUEIsIFBDLCAxXSwgZHN0CiBlbmQKIAorbWFjcm8gZ2V0T3Bl
cmFuZFdpZGUxNldhc20ob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkKKyAgICBsb2FkaHNp
IGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRleCAqIDIgKyBPcGNvZGVJ
RFdpZGUxNlNpemVXYXNtW1BCLCBQQywgMV0sIGRzdAorZW5kCisKIG1hY3JvIGdldHVPcGVyYW5k
V2lkZTMySlMob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkKICAgICBsb2FkaSBjb25zdGV4
cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiA0ICsgT3Bjb2RlSURXaWRlMzJT
aXplSlNbUEIsIFBDLCAxXSwgZHN0CiBlbmQKIAorbWFjcm8gZ2V0dU9wZXJhbmRXaWRlMzJXYXNt
KG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCisgICAgbG9hZGkgY29uc3RleHByICVvcGNv
ZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogNCArIE9wY29kZUlEV2lkZTMyU2l6ZVdhc21b
UEIsIFBDLCAxXSwgZHN0CitlbmQKKwogbWFjcm8gZ2V0T3BlcmFuZFdpZGUzMkpTKG9wY29kZVN0
cnVjdCwgZmllbGROYW1lLCBkc3QpCiAgICAgbG9hZGlzIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0
JV8lZmllbGROYW1lJV9pbmRleCAqIDQgKyBPcGNvZGVJRFdpZGUzMlNpemVKU1tQQiwgUEMsIDFd
LCBkc3QKIGVuZAogCittYWNybyBnZXRPcGVyYW5kV2lkZTMyV2FzbShvcGNvZGVTdHJ1Y3QsIGZp
ZWxkTmFtZSwgZHN0KQorICAgIGxvYWRpcyBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxk
TmFtZSVfaW5kZXggKiA0ICsgT3Bjb2RlSURXaWRlMzJTaXplV2FzbVtQQiwgUEMsIDFdLCBkc3QK
K2VuZAorCiBtYWNybyBtYWtlUmV0dXJuKGdldCwgZGlzcGF0Y2gsIGZuKQogICAgIGZuKG1hY3Jv
KHRhZywgcGF5bG9hZCkKICAgICAgICAgbW92ZSB0YWcsIHQ1CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHkuYXNtIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L1dlYkFzc2VtYmx5LmFzbQppbmRleCAyMmViZTJhN2ViM2QuLjEyNWYwY2I3MDk4
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5LmFz
bQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHkuYXNtCkBAIC0z
MSw1NiArMzEsODAgQEAgaWYgSEFWRV9GQVNUX1RMUwogZW5kCiAKIGlmIFg4Nl82NAotICAgIGNv
bnN0IE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyA9IDYKKyAgICBjb25zdCBOdW1iZXJPZldhc21B
cmd1bWVudEpTUnMgPSA2CiBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAotICAgIGNv
bnN0IE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyA9IDgKKyAgICBjb25zdCBOdW1iZXJPZldhc21B
cmd1bWVudEpTUnMgPSA4CitlbHNpZiBBUk12NworICAgIGNvbnN0IE51bWJlck9mV2FzbUFyZ3Vt
ZW50SlNScyA9IDIKIGVsc2UKICAgICBlcnJvcgogZW5kCisKIGNvbnN0IE51bWJlck9mV2FzbUFy
Z3VtZW50RlBScyA9IDgKLWNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50cyA9IE51bWJlck9mV2Fz
bUFyZ3VtZW50R1BScyArIE51bWJlck9mV2FzbUFyZ3VtZW50RlBScworCitjb25zdCBOdW1iZXJP
Zldhc21Bcmd1bWVudHMgPSBOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyBOdW1iZXJPZldhc21B
cmd1bWVudEZQUnMKIAogIyBBbGwgY2FsbGVlIHNhdmVzIG11c3QgbWF0Y2ggdGhlIGRlZmluaXRp
b24gaW4gV2FzbUNhbGxlZS5jcHAKIAogIyBUaGVzZSBtdXN0IG1hdGNoIHRoZSBkZWZpbml0aW9u
IGluIFdhc21NZW1vcnlJbmZvcm1hdGlvbi5jcHAKLWNvbnN0IHdhc21JbnN0YW5jZSA9IGNzcjAK
LWNvbnN0IG1lbW9yeUJhc2UgPSBjc3IzCi1jb25zdCBib3VuZHNDaGVja2luZ1NpemUgPSBjc3I0
CitpZiBYODZfNjQgb3IgQVJNNjQgb3IgQVJNNjRFCisgICAgY29uc3Qgd2FzbUluc3RhbmNlID0g
Y3NyMAorICAgIGNvbnN0IG1lbW9yeUJhc2UgPSBjc3IzCisgICAgY29uc3QgYm91bmRzQ2hlY2tp
bmdTaXplID0gY3NyNAorZWxzaWYgQVJNdjcKKyAgICBjb25zdCB3YXNtSW5zdGFuY2UgPSBjc3Iw
CisgICAgY29uc3QgbWVtb3J5QmFzZSA9IGludmFsaWRHUFIKKyAgICBjb25zdCBib3VuZHNDaGVj
a2luZ1NpemUgPSBpbnZhbGlkR1BSCitlbHNlCisgICAgZXJyb3IKK2VuZAogCiAjIFRoaXMgbXVz
dCBtYXRjaCB0aGUgZGVmaW5pdGlvbiBpbiBMb3dMZXZlbEludGVycHJldGVyLmFzbQogaWYgWDg2
XzY0CiAgICAgY29uc3QgUEIgPSBjc3IyCiBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2
NAogICAgIGNvbnN0IFBCID0gY3NyNworZWxzaWYgQVJNdjcKKyAgICBjb25zdCBQQiA9IGNzcjEK
IGVsc2UKICAgICBlcnJvcgogZW5kCiAKLW1hY3JvIGZvckVhY2hBcmd1bWVudEdQUihmbikKLSAg
ICBmbigwICogOCwgd2EwKQotICAgIGZuKDEgKiA4LCB3YTEpCi0gICAgZm4oMiAqIDgsIHdhMikK
LSAgICBmbigzICogOCwgd2EzKQotICAgIGZuKDQgKiA4LCB3YTQpCi0gICAgZm4oNSAqIDgsIHdh
NSkKLSAgICBpZiBBUk02NCBvciBBUk02NEUKLSAgICAgICAgZm4oNiAqIDgsIHdhNikKLSAgICAg
ICAgZm4oNyAqIDgsIHdhNykKKyMgSGVscGVyIG1hY3JvcworCisjIE9uIEpTVkFMVUU2NCwgZWFj
aCA2NC1iaXQgYXJndW1lbnQgR1BSIGhvbGRzIG9uZSB3aG9sZSBXYXNtIHZhbHVlLgorIyBPbiBK
U1ZBTFVFMzJfNjQsIGEgY29uc2VjdXRpdmUgcGFpciBvZiBldmVuL29kZCBudW1iZXJlZCBHUFJz
IGhvbGQgYSBzaW5nbGUKKyMgV2FzbSB2YWx1ZSAoZXZlbiBpZiB0aGF0IHZhbHVlIGlzIGkzMi9m
MzIsIHRoZSBvZGQgbnVtYmVyZWQgR1BSIGhvbGRzIHRoZQorIyBtb3JlIHNpZ25pZmljYW50IHdv
cmQpLgorbWFjcm8gZm9yRWFjaEFyZ3VtZW50SlNSKGZuKQorICAgIGlmIEpTVkFMVUU2NAorICAg
ICAgICBmbigwICogOCwgd2EwKQorICAgICAgICBmbigxICogOCwgd2ExKQorICAgICAgICBmbigy
ICogOCwgd2EyKQorICAgICAgICBmbigzICogOCwgd2EzKQorICAgICAgICBmbig0ICogOCwgd2E0
KQorICAgICAgICBmbig1ICogOCwgd2E1KQorICAgICAgICBpZiBBUk02NCBvciBBUk02NEUKKyAg
ICAgICAgICAgIGZuKDYgKiA4LCB3YTYpCisgICAgICAgICAgICBmbig3ICogOCwgd2E3KQorICAg
ICAgICBlbmQKKyAgICBlbHNlCisgICAgICAgIGZuKDAgKiA4LCB3YTEsIHdhMCkKKyAgICAgICAg
Zm4oMSAqIDgsIHdhMywgd2EyKQogICAgIGVuZAogZW5kCiAKIG1hY3JvIGZvckVhY2hBcmd1bWVu
dEZQUihmbikKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgMCkgKiA4LCB3ZmEw
KQotICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyAxKSAqIDgsIHdmYTEpCi0gICAg
Zm4oKE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDIpICogOCwgd2ZhMikKLSAgICBmbigoTnVt
YmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgMykgKiA4LCB3ZmEzKQotICAgIGZuKChOdW1iZXJPZldh
c21Bcmd1bWVudEdQUnMgKyA0KSAqIDgsIHdmYTQpCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3Vt
ZW50R1BScyArIDUpICogOCwgd2ZhNSkKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJz
ICsgNikgKiA4LCB3ZmE2KQotICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyA3KSAq
IDgsIHdmYTcpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIDApICogOCwgd2Zh
MCkKKyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgMSkgKiA4LCB3ZmExKQorICAg
IGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyAyKSAqIDgsIHdmYTIpCisgICAgZm4oKE51
bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIDMpICogOCwgd2ZhMykKKyAgICBmbigoTnVtYmVyT2ZX
YXNtQXJndW1lbnRKU1JzICsgNCkgKiA4LCB3ZmE0KQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1
bWVudEpTUnMgKyA1KSAqIDgsIHdmYTUpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNS
cyArIDYpICogOCwgd2ZhNikKKyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgNykg
KiA4LCB3ZmE3KQogZW5kCiAKLSMgSGVscGVyIG1hY3JvcwogIyBGSVhNRTogRXZlbnR1YWxseSB0
aGlzIHNob3VsZCBiZSB1bmlmaWVkIHdpdGggdGhlIEpTIHZlcnNpb25zCiAjIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2NTYKIApAQCAtMTMwLDEwICsxNTQsMTUg
QEAgbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvclByb2xvZ3VlKGNvZGVCbG9ja1JlZ2lzdGVyKQog
ICAgICAgICAgICAgYnRweiByMCwgLnJlY292ZXIKICAgICAgICAgICAgIG1vdmUgcjAsIHdzMAog
Ci0gICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRHUFIobWFjcm8gKG9mZnNldCwgZ3ByKQoraWYg
SlNWQUxVRTY0CisgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwg
Z3ByKQogICAgICAgICAgICAgICAgIGxvYWRxIC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNl
QXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBncHIKICAgICAgICAgICAgIGVuZCkKLQorZWxz
ZQorICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwck1zdywg
Z3BMc3cpCisgICAgICAgICAgICAgICAgbG9hZDJpYSAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVT
cGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXSwgZ3BMc3csIGdwck1zdworICAgICAgICAg
ICAgZW5kKQorZW5kCiAgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRGUFIobWFjcm8gKG9mZnNl
dCwgZnByKQogICAgICAgICAgICAgICAgIGxvYWRkIC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNw
YWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBmcHIKICAgICAgICAgICAgIGVuZCkKQEAg
LTIwMSw2ICsyMzAsOSBAQCBtYWNybyBwcmVzZXJ2ZUNhbGxlZVNhdmVzVXNlZEJ5V2FzbSgpCiAg
ICAgZWxzaWYgWDg2XzY0IG9yIFJJU0NWNjQKICAgICAgICAgc3RvcmVwIFBCLCAtMHg4W2Nmcl0K
ICAgICAgICAgc3RvcmVwIHdhc21JbnN0YW5jZSwgLTB4MTBbY2ZyXQorICAgIGVsc2lmIEFSTXY3
CisgICAgICAgIHN0b3JlcCBQQiwgLTRbY2ZyXQorICAgICAgICBzdG9yZXAgd2FzbUluc3RhbmNl
LCAtOFtjZnJdCiAgICAgZWxzZQogICAgICAgICBlcnJvcgogICAgIGVuZApAQCAtMjE1LDYgKzI0
Nyw5IEBAIG1hY3JvIHJlc3RvcmVDYWxsZWVTYXZlc1VzZWRCeVdhc20oKQogICAgIGVsc2lmIFg4
Nl82NCBvciBSSVNDVjY0CiAgICAgICAgIGxvYWRwIC0weDhbY2ZyXSwgUEIKICAgICAgICAgbG9h
ZHAgLTB4MTBbY2ZyXSwgd2FzbUluc3RhbmNlCisgICAgZWxzaWYgQVJNdjcKKyAgICAgICAgbG9h
ZHAgLTRbY2ZyXSwgUEIKKyAgICAgICAgbG9hZHAgLThbY2ZyXSwgd2FzbUluc3RhbmNlCiAgICAg
ZWxzZQogICAgICAgICBlcnJvcgogICAgIGVuZApAQCAtMjQ1LDEwICsyODAsMTIgQEAgZW5kCiBl
bmQKIAogbWFjcm8gcmVsb2FkTWVtb3J5UmVnaXN0ZXJzRnJvbUluc3RhbmNlKGluc3RhbmNlLCBz
Y3JhdGNoMSwgc2NyYXRjaDIpCitpZiBub3QgQVJNdjcKICAgICBsb2FkcCBXYXNtOjpJbnN0YW5j
ZTo6bV9jYWNoZWRNZW1vcnlbaW5zdGFuY2VdLCBtZW1vcnlCYXNlCiAgICAgbG9hZHAgV2FzbTo6
SW5zdGFuY2U6Om1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplW2luc3RhbmNlXSwgYm91bmRzQ2hl
Y2tpbmdTaXplCiAgICAgY2FnZWRQcmltaXRpdmVNYXlCZU51bGwobWVtb3J5QmFzZSwgYm91bmRz
Q2hlY2tpbmdTaXplLCBzY3JhdGNoMSwgc2NyYXRjaDIpICMgSWYgYm91bmRzQ2hlY2tpbmdTaXpl
IGlzIDAsIHBvaW50ZXIgY2FuIGJlIGEgbnVsbHB0ci4KIGVuZAorZW5kCiAKIG1hY3JvIHRocm93
RXhjZXB0aW9uKGV4Y2VwdGlvbikKICAgICBzdG9yZWkgY29uc3RleHByIFdhc206OkV4Y2VwdGlv
blR5cGU6OiVleGNlcHRpb24lLCBBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyArIFBheWxvYWRP
ZmZzZXRbY2ZyXQpAQCAtMjgwLDggKzMxNywxMyBAQCBtYWNybyByZXN0b3JlU3RhY2tQb2ludGVy
QWZ0ZXJDYWxsKCkKICAgICBsb2FkaSBXYXNtOjpMTEludENhbGxlZTo6bV9udW1DYWxsZWVMb2Nh
bHNbd3MxXSwgd3MxCiAgICAgbHNoaWZ0cCAzLCB3czEKICAgICBhZGRwIG1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsLCB3czEKK2lmIEFSTXY3CisgICAgc3VicCBjZnIsIHdzMSwgd3MxCisg
ICAgbW92ZSB3czEsIHNwCitlbHNlCiAgICAgc3VicCBjZnIsIHdzMSwgc3AKIGVuZAorZW5kCiAK
IG1hY3JvIHdhc21Qcm9sb2d1ZShsb2FkV2FzbUluc3RhbmNlKQogICAgICMgU2V0IHVwIHRoZSBj
YWxsIGZyYW1lIGFuZCBjaGVjayBpZiB3ZSBzaG91bGQgT1NSLgpAQCAtMjkyLDYgKzMzNCw5IEBA
IG1hY3JvIHdhc21Qcm9sb2d1ZShsb2FkV2FzbUluc3RhbmNlKQogCiAgICAgbG9hZHAgV2FzbTo6
SW5zdGFuY2U6Om1fb3duZXJbd2FzbUluc3RhbmNlXSwgd3MwCiAgICAgc3RvcmVwIHdzMCwgVGhp
c0FyZ3VtZW50T2Zmc2V0W2Nmcl0KK2lmIG5vdCBKU1ZBTFVFNjQKKyAgICBzdG9yZWkgQ2VsbFRh
ZywgVGFnT2Zmc2V0ICsgVGhpc0FyZ3VtZW50T2Zmc2V0W2Nmcl0KK2VuZAogCiAgICAgbG9hZHAg
Q2FsbGVlW2Nmcl0sIHdzMAogICAgIGFuZHAgfjMsIHdzMApAQCAtMzAzLDYgKzM0OCwxMCBAQCBt
YWNybyB3YXNtUHJvbG9ndWUobG9hZFdhc21JbnN0YW5jZSkKICAgICBhZGRwIG1heEZyYW1lRXh0
ZW50Rm9yU2xvd1BhdGhDYWxsLCB3czEKICAgICBzdWJwIGNmciwgd3MxLCB3czEKIAoraWYgbm90
IEpTVkFMVUU2NAorICAgIHN1YnAgOCwgd3MxICMgYWxpZ24gc3RhY2sgcG9pbnRlcgorZW5kCisK
ICAgICBicGEgd3MxLCBjZnIsIC5zdGFja092ZXJmbG93CiAgICAgYnBiZXEgV2FzbTo6SW5zdGFu
Y2U6Om1fY2FjaGVkU3RhY2tMaW1pdFt3YXNtSW5zdGFuY2VdLCB3czEsIC5zdGFja0hlaWdodE9L
CiAKQEAgLTMxMiwxMCArMzYxLDE1IEBAIG1hY3JvIHdhc21Qcm9sb2d1ZShsb2FkV2FzbUluc3Rh
bmNlKQogLnN0YWNrSGVpZ2h0T0s6CiAgICAgbW92ZSB3czEsIHNwCiAKLSAgICBmb3JFYWNoQXJn
dW1lbnRHUFIobWFjcm8gKG9mZnNldCwgZ3ByKQoraWYgSlNWQUxVRTY0CisgICAgZm9yRWFjaEFy
Z3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwcikKICAgICAgICAgc3RvcmVxIGdwciwgLW9mZnNl
dCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0KICAgICBl
bmQpCi0KK2Vsc2UKKyAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3
LCBncExzdykKKyAgICAgICAgc3RvcmUyaWEgZ3BMc3csIGdwck1zdywgLW9mZnNldCAtIDggLSBD
YWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0KKyAgICBlbmQpCitlbmQK
ICAgICBmb3JFYWNoQXJndW1lbnRGUFIobWFjcm8gKG9mZnNldCwgZnByKQogICAgICAgICBzdG9y
ZWQgZnByLCAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAq
IDhbY2ZyXQogICAgIGVuZCkKQEAgLTMyOSwxNCArMzgzLDE2IEBAIG1hY3JvIHdhc21Qcm9sb2d1
ZShsb2FkV2FzbUluc3RhbmNlKQogICAgIGxvYWRpIFdhc206OkxMSW50Q2FsbGVlOjptX251bVZh
cnNbd3MwXSwgd3MxCiAgICAgc3ViaSBOdW1iZXJPZldhc21Bcmd1bWVudHMgKyBDYWxsZWVTYXZl
U3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMsIHdzMQogICAgIGJ0aXogd3MxLCAuemVyb0luaXRpYWxp
emVMb2NhbHNEb25lCisgICAgbHNoaWZ0aSAzLCB3czEKICAgICBuZWdpIHdzMQoraWYgSlNWQUxV
RTY0CiAgICAgc3hpMnEgd3MxLCB3czEKK2VuZAogICAgIGxlYXAgKE51bWJlck9mV2FzbUFyZ3Vt
ZW50cyArIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyArIDEpICogLThbY2ZyXSwg
d3MwCiAuemVyb0luaXRpYWxpemVMb2NhbHNMb29wOgotICAgIGFkZHEgMSwgd3MxCi0gICAgc3Rv
cmVxIDAsIFt3czAsIHdzMSwgOF0KLSAgICBidHF6IHdzMSwgLnplcm9Jbml0aWFsaXplTG9jYWxz
RG9uZQotICAgIGptcCAuemVyb0luaXRpYWxpemVMb2NhbHNMb29wCisgICAgYWRkcCBQdHJTaXpl
LCB3czEKKyAgICBzdG9yZXAgMCwgW3dzMCwgd3MxXQorICAgIGJ0cG56IHdzMSwgLnplcm9Jbml0
aWFsaXplTG9jYWxzTG9vcAogLnplcm9Jbml0aWFsaXplTG9jYWxzRG9uZToKIGVuZAogCkBAIC0z
NzUsNiArNDMxLDI0IEBAIG1hY3JvIHNsb3dXYXNtT3Aob3Bjb2RlTmFtZSkKICAgICB1bnByZWZp
eGVkU2xvd1dhc21PcCh3YXNtXyVvcGNvZGVOYW1lJSkKIGVuZAogCisjIEZsb2F0IHRvIGZsb2F0
IHJvdW5kaW5nIG9wcworbWFjcm8gd2FzbVJvdW5kaW5nT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3Ry
dWN0LCBmbikKK2lmIEpTVkFMVUU2NCAjIEFsbCBjdXJyZW50IDY0LWJpdCBwbGF0Zm9ybXMgaGF2
ZSBpbnN0cnVjdGlvbnMgZm9yIHRoZXNlCisgICAgd2FzbU9wKG9wY29kZU5hbWUsIG9wY29kZVN0
cnVjdCwgZm4pCitlbHNlCisgICAgc2xvd1dhc21PcChvcGNvZGVOYW1lKQorZW5kCitlbmQKKwor
IyBpNjQgKHNpZ25lZC91bnNpZ25lZCkgdG8gZjMyIG9yIGY2NAorbWFjcm8gd2FzbUk2NFRvRk9w
KG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCitpZiBKU1ZBTFVFNjQgIyBBbGwgY3VycmVu
dCA2NC1iaXQgcGxhdGZvcm1zIGhhdmUgaW5zdHJ1Y3Rpb25zIGZvciB0aGVzZQorICAgIHdhc21P
cChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGZuKQorZWxzZQorICAgIHNsb3dXYXNtT3Aob3Bj
b2RlTmFtZSkKK2VuZAorZW5kCisKICMgTWFjcm8gdmVyc2lvbiBvZiBsb2FkIG9wZXJhdGlvbnM6
IG1sb2FkW3N1ZmZpeF0KICMgbG9hZHMgZmllbGQgZnJvbSB0aGUgaW5zdHJ1Y3Rpb24gc3RyZWFt
IGFuZCBwZXJmb3JtcyBsb2FkW3N1ZmZpeF0gdG8gZHN0CiBtYWNybyBmaXJzdENvbnN0YW50UmVn
aXN0ZXJJbmRleChjdHgsIGZuKQpAQCAtMzk3LDEyICs0NzEsMjEgQEAgbWFjcm8gbG9hZENvbnN0
YW50T3JWYXJpYWJsZShjdHgsIGluZGV4LCBsb2FkZXIpCiAgICAgZW5kKQogZW5kCiAKK2lmIEpT
VkFMVUU2NAogbWFjcm8gbWxvYWRxKGN0eCwgZmllbGQsIGRzdCkKICAgICB3Z2V0cyhjdHgsIGZp
ZWxkLCBkc3QpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShjdHgsIGRzdCwgbWFjcm8gKGZy
b20pCiAgICAgICAgIGxvYWRxIGZyb20sIGRzdAogICAgIGVuZCkKIGVuZAorZWxzZQorbWFjcm8g
bWxvYWQyaShjdHgsIGZpZWxkLCBkc3RNc3csIGRzdExzdykKKyAgICB3Z2V0cyhjdHgsIGZpZWxk
LCBkc3RMc3cpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShjdHgsIGRzdExzdywgbWFjcm8g
KGZyb20pCisgICAgICAgIGxvYWQyaWEgZnJvbSwgZHN0THN3LCBkc3RNc3cKKyAgICBlbmQpCitl
bmQKK2VuZAogCiBtYWNybyBtbG9hZGkoY3R4LCBmaWVsZCwgZHN0KQogICAgIHdnZXRzKGN0eCwg
ZmllbGQsIGRzdCkKQEAgLTQzNCwxMSArNTE3LDE5IEBAIGVuZAogCiAjIFR5cGVkIHJldHVybnMK
IAoraWYgSlNWQUxVRTY0CiBtYWNybyByZXR1cm5xKGN0eCwgdmFsdWUpCiAgICAgd2dldHMoY3R4
LCBtX2RzdCwgdDUpCiAgICAgc3RvcmVxIHZhbHVlLCBbY2ZyLCB0NSwgOF0KICAgICBkaXNwYXRj
aChjdHgpCiBlbmQKK2Vsc2UKK21hY3JvIHJldHVybjJpKGN0eCwgbXN3LCBsc3cpCisgICAgd2dl
dHMoY3R4LCBtX2RzdCwgdDUpCisgICAgc3RvcmUyaWEgbHN3LCBtc3csIFtjZnIsIHQ1LCA4XQor
ICAgIGRpc3BhdGNoKGN0eCkKK2VuZAorZW5kCiAKIG1hY3JvIHJldHVybmkoY3R4LCB2YWx1ZSkK
ICAgICB3Z2V0cyhjdHgsIG1fZHN0LCB0NSkKQEAgLTUxMSw3ICs2MDIsNyBAQCBtYWNybyB3YXNt
Q29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVyKQogZW5kCiAKIG9wKHdhc21fZnVuY3Rpb25f
cHJvbG9ndWUsIG1hY3JvICgpCi0gICAgaWYgbm90IFdFQkFTU0VNQkxZIG9yIG5vdCBKU1ZBTFVF
NjQgb3IgQ19MT09QIG9yIENfTE9PUF9XSU4KKyAgICBpZiBub3QgV0VCQVNTRU1CTFkgb3IgQ19M
T09QIG9yIENfTE9PUF9XSU4KICAgICAgICAgZXJyb3IKICAgICBlbmQKIApAQCAtNTIwLDcgKzYx
MSw3IEBAIG9wKHdhc21fZnVuY3Rpb25fcHJvbG9ndWUsIG1hY3JvICgpCiBlbmQpCiAKIG9wKHdh
c21fZnVuY3Rpb25fcHJvbG9ndWVfbm9fdGxzLCBtYWNybyAoKQotICAgIGlmIG5vdCBXRUJBU1NF
TUJMWSBvciBub3QgSlNWQUxVRTY0IG9yIENfTE9PUCBvciBDX0xPT1BfV0lOCisgICAgaWYgbm90
IFdFQkFTU0VNQkxZIG9yIENfTE9PUCBvciBDX0xPT1BfV0lOCiAgICAgICAgIGVycm9yCiAgICAg
ZW5kCiAKQEAgLTYyMywxNiArNzE0LDIzIEBAIF93YXNtX2VudGVyOgogICAgIGNoZWNrU3RhY2tQ
b2ludGVyQWxpZ25tZW50KHQyLCAweGRlYWQwMGUxKQogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJd
LCB0MiAgICAgICAgICAgICAgICAvLyB0MjxDb2RlQmxvY2s+ID0gY2ZyLkNvZGVCbG9jawogICAg
IGxvYWRpIFdhc206OkxMSW50Q2FsbGVlOjptX251bVZhcnNbdDJdLCB0MiAgICAgIC8vIHQyPHNp
emVfdD4gPSB0MjxDb2RlQmxvY2s+Lm1fbnVtVmFycwotICAgIHN1YnEgQ2FsbGVlU2F2ZVNwYWNl
QXNWaXJ0dWFsUmVnaXN0ZXJzICsgTnVtYmVyT2ZXYXNtQXJndW1lbnRzLCB0MgorICAgIHN1Ymkg
Q2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICsgTnVtYmVyT2ZXYXNtQXJndW1lbnRz
LCB0MgogICAgIGJ0aXogdDIsIC5vcEVudGVyRG9uZQotICAgIG1vdmUgY2ZyLCB0MQotICAgIHN1
YnEgQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOCArIE51bWJlck9mV2FzbUFy
Z3VtZW50cyAqIDgsIHQxCisgICAgc3VicCBjZnIsIChDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxS
ZWdpc3RlcnMgKyBOdW1iZXJPZldhc21Bcmd1bWVudHMpICogU2xvdFNpemUsIHQxCisgICAgbHNo
aWZ0aSAzLCB0MgogICAgIG5lZ2kgdDIKK2lmIEpTVkFMVUU2NAogICAgIHN4aTJxIHQyLCB0Mgor
ZW5kCisgICAgbW92ZSAwLCB0NgogLm9wRW50ZXJMb29wOgotICAgIHN0b3JlcSAwLCBbdDEsIHQy
LCA4XQotICAgIGFkZHEgMSwgdDIKLSAgICBidHFueiB0MiwgLm9wRW50ZXJMb29wCitpZiBKU1ZB
TFVFNjQKKyAgICBzdG9yZXEgdDYsIFt0MSwgdDJdCitlbHNlCisgICAgc3RvcmUyaWEgdDYsIHQ2
LCBbdDEsIHQyXQorZW5kCisgICAgYWRkcCA4LCB0MgorICAgIGJ0cG56IHQyLCAub3BFbnRlckxv
b3AKIC5vcEVudGVyRG9uZToKICAgICB3YXNtRGlzcGF0Y2hJbmRpcmVjdCgxKQogCkBAIC02NDUs
MTEgKzc0Myw2IEBAIHdhc21PcChsb29wX2hpbnQsIFdhc21Mb29wSGludCwgbWFjcm8oY3R4KQog
ICAgIGRpc3BhdGNoKGN0eCkKIGVuZCkKIAotd2FzbU9wKG1vdiwgV2FzbU1vdiwgbWFjcm8oY3R4
KQotICAgIG1sb2FkcShjdHgsIG1fc3JjLCB0MCkKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQp
Ci0KIHdhc21PcChqdHJ1ZSwgV2FzbUp0cnVlLCBtYWNybyhjdHgpCiAgICAgbWxvYWRpKGN0eCwg
bV9jb25kaXRpb24sIHQwKQogICAgIGJ0aXogdDAsIC5jb250aW51ZQpAQCAtNzAxLDkgKzc5NCwx
NSBAQCBlbmQpCiAKIHVucHJlZml4ZWRXYXNtT3Aod2FzbV9yZXQsIFdhc21SZXQsIG1hY3JvKGN0
eCkKICAgICBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQotICAgIGZvckVhY2hBcmd1bWVu
dEdQUihtYWNybyAob2Zmc2V0LCBncHIpCitpZiBKU1ZBTFVFNjQKKyAgICBmb3JFYWNoQXJndW1l
bnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByKQogICAgICAgICBsb2FkcSAtb2Zmc2V0IC0gOCAtIENh
bGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXSwgZ3ByCiAgICAgZW5kKQor
ZWxzZQorICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHJNc3csIGdwTHN3
KQorICAgICAgICBsb2FkMmlhIC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFs
UmVnaXN0ZXJzICogOFtjZnJdLCBncExzdywgZ3ByTXN3CisgICAgZW5kKQorZW5kCiAgICAgZm9y
RWFjaEFyZ3VtZW50RlBSKG1hY3JvIChvZmZzZXQsIGZwcikKICAgICAgICAgbG9hZGQgLW9mZnNl
dCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0sIGZwcgog
ICAgIGVuZCkKQEAgLTcyMSw0NCArODIwLDYgQEAgd2FzbU9wKHJldF92b2lkLCBXYXNtUmV0Vm9p
ZCwgbWFjcm8oY3R4KQogICAgIGRvUmV0dXJuKCkKIGVuZCkKIAotd2FzbU9wKHJlZl9pc19udWxs
LCBXYXNtUmVmSXNOdWxsLCBtYWNybyhjdHgpCi0gICAgbWxvYWRwKGN0eCwgbV9yZWYsIHQwKQot
ICAgIGNxZXEgdDAsIFZhbHVlTnVsbCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi1lbmQpCi0K
LXdhc21PcChnZXRfZ2xvYmFsLCBXYXNtR2V0R2xvYmFsLCBtYWNybyhjdHgpCi0gICAgbG9hZHAg
V2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAotICAgIHdnZXR1KGN0
eCwgbV9nbG9iYWxJbmRleCwgdDEpCi0gICAgbG9hZHEgW3QwLCB0MSwgOF0sIHQwCi0gICAgcmV0
dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3Aoc2V0X2dsb2JhbCwgV2FzbVNldEdsb2JhbCwg
bWFjcm8oY3R4KQotICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3Rh
bmNlXSwgdDAKLSAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQotICAgIG1sb2FkcShj
dHgsIG1fdmFsdWUsIHQyKQotICAgIHN0b3JlcSB0MiwgW3QwLCB0MSwgOF0KLSAgICBkaXNwYXRj
aChjdHgpCi1lbmQpCi0KLXdhc21PcChnZXRfZ2xvYmFsX3BvcnRhYmxlX2JpbmRpbmcsIFdhc21H
ZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkKLSAgICBsb2FkcCBXYXNtOjpJbnN0
YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCi0gICAgd2dldHUoY3R4LCBtX2dsb2Jh
bEluZGV4LCB0MSkKLSAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKLSAgICBsb2FkcSBbdDBdLCB0
MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKHNldF9nbG9iYWxfcG9ydGFi
bGVfYmluZGluZywgV2FzbVNldEdsb2JhbFBvcnRhYmxlQmluZGluZywgbWFjcm8oY3R4KQotICAg
IGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKLSAgICB3
Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQotICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQy
KQotICAgIGxvYWRxIFt0MCwgdDEsIDhdLCB0MAotICAgIHN0b3JlcSB0MiwgW3QwXQotICAgIGRp
c3BhdGNoKGN0eCkKLWVuZCkKLQogbWFjcm8gc2xvd1BhdGhGb3JXYXNtQ2FsbChjdHgsIHNsb3dQ
YXRoLCBzdG9yZVdhc21JbnN0YW5jZSkKICAgICBjYWxsV2FzbUNhbGxTbG93UGF0aCgKICAgICAg
ICAgc2xvd1BhdGgsCkBAIC03NzMsNyArODM0LDEyIEBAIG1hY3JvIHNsb3dQYXRoRm9yV2FzbUNh
bGwoY3R4LCBzbG93UGF0aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAKICAgICAgICAgICAgIHdnZXR1
KGN0eCwgbV9zdGFja09mZnNldCwgd3MxKQogICAgICAgICAgICAgbHNoaWZ0aSAzLCB3czEKK2lm
IEFSTXY3CisgICAgICAgICAgICBzdWJwIGNmciwgd3MxLCB3czEKKyAgICAgICAgICAgIG1vdmUg
d3MxLCBzcAorZWxzZQogICAgICAgICAgICAgc3VicCBjZnIsIHdzMSwgc3AKK2VuZAogCiAgICAg
ICAgICAgICB3Z2V0dShjdHgsIG1fbnVtYmVyT2ZTdGFja0FyZ3MsIHdzMSkKIApAQCAtNzg0LDEw
ICs4NTAsMTUgQEAgbWFjcm8gc2xvd1BhdGhGb3JXYXNtQ2FsbChjdHgsIHNsb3dQYXRoLCBzdG9y
ZVdhc21JbnN0YW5jZSkKICAgICAgICAgICAgIHJlbG9hZE1lbW9yeVJlZ2lzdGVyc0Zyb21JbnN0
YW5jZSh0YXJnZXRXYXNtSW5zdGFuY2UsIHdhMCwgd2ExKQogCiAgICAgICAgICAgICAjIExvYWQg
cmVnaXN0ZXJzIGZyb20gc3RhY2sKLSAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEdQUihtYWNy
byAob2Zmc2V0LCBncHIpCitpZiBKU1ZBTFVFNjQKKyAgICAgICAgICAgIGZvckVhY2hBcmd1bWVu
dEpTUihtYWNybyAob2Zmc2V0LCBncHIpCiAgICAgICAgICAgICAgICAgbG9hZHEgQ2FsbEZyYW1l
SGVhZGVyU2l6ZSArIDggKyBvZmZzZXRbc3AsIHdzMSwgOF0sIGdwcgogICAgICAgICAgICAgZW5k
KQotCitlbHNlCisgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwg
Z3ByTXN3LCBncExzdykKKyAgICAgICAgICAgICAgICBsb2FkMmlhIENhbGxGcmFtZUhlYWRlclNp
emUgKyA4ICsgb2Zmc2V0W3NwLCB3czEsIDhdLCBncExzdywgZ3ByTXN3CisgICAgICAgICAgICBl
bmQpCitlbmQKICAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEZQUihtYWNybyAob2Zmc2V0LCBm
cHIpCiAgICAgICAgICAgICAgICAgbG9hZGQgQ2FsbEZyYW1lSGVhZGVyU2l6ZSArIDggKyBvZmZz
ZXRbc3AsIHdzMSwgOF0sIGZwcgogICAgICAgICAgICAgZW5kKQpAQCAtODMwLDcgKzkwMSwxMSBA
QCBtYWNybyBzbG93UGF0aEZvcldhc21DYWxsKGN0eCwgc2xvd1BhdGgsIHN0b3JlV2FzbUluc3Rh
bmNlKQogCiAgICAgICAgICAgICAjIFdlIG5lZWQgdG8gc2V0IFBDIHRvIGxvYWQgaW5mb3JtYXRp
b24gZnJvbSB0aGUgaW5zdHJ1Y3Rpb24gc3RyZWFtLCBidXQgd2UKICAgICAgICAgICAgICMgbmVl
ZCB0byBwcmVzZXJ2ZSBpdHMgY3VycmVudCB2YWx1ZSBzaW5jZSBpdCBtaWdodCBjb250YWluIGEg
cmV0dXJuIHZhbHVlCitpZiBBUk12NworICAgICAgICAgICAgcHVzaCBQQworZWxzZQogICAgICAg
ICAgICAgbW92ZSBQQywgbWVtb3J5QmFzZQorZW5kCiAgICAgICAgICAgICBtb3ZlIFBCLCB3YXNt
SW5zdGFuY2UKICAgICAgICAgICAgIGxvYWRpIEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzICsg
VGFnT2Zmc2V0W2Nmcl0sIFBDCiAgICAgICAgICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgUEIK
QEAgLTgzOSwxNyArOTE0LDI4IEBAIG1hY3JvIHNsb3dQYXRoRm9yV2FzbUNhbGwoY3R4LCBzbG93
UGF0aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAgICAgICAgICAgICB3Z2V0dShjdHgsIG1fc3RhY2tP
ZmZzZXQsIHdzMSkKICAgICAgICAgICAgIGxzaGlmdGkgMywgd3MxCiAgICAgICAgICAgICBuZWdp
IHdzMQoraWYgSlNWQUxVRTY0CiAgICAgICAgICAgICBzeGkycSB3czEsIHdzMQorZW5kCiAgICAg
ICAgICAgICBhZGRwIGNmciwgd3MxCiAKICAgICAgICAgICAgICMgQXJndW1lbnQgcmVnaXN0ZXJz
IGFyZSBhbHNvIHJldHVybiByZWdpc3RlcnMsIHNvIHRoZXkgbXVzdCBiZSBzdG9yZWQgdG8gdGhl
IHN0YWNrCiAgICAgICAgICAgICAjIGluIGNhc2UgdGhleSBjb250YWluIHJldHVybiB2YWx1ZXMu
CiAgICAgICAgICAgICB3Z2V0dShjdHgsIG1fbnVtYmVyT2ZTdGFja0FyZ3MsIHdzMCkKK2lmIEFS
TXY3CisgICAgICAgICAgICBwb3AgUEMKK2Vsc2UKICAgICAgICAgICAgIG1vdmUgbWVtb3J5QmFz
ZSwgUEMKLSAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEdQUihtYWNybyAob2Zmc2V0LCBncHIp
CitlbmQKK2lmIEpTVkFMVUU2NAorICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3Jv
IChvZmZzZXQsIGdwcikKICAgICAgICAgICAgICAgICBzdG9yZXEgZ3ByLCBDYWxsRnJhbWVIZWFk
ZXJTaXplICsgOCArIG9mZnNldFt3czEsIHdzMCwgOF0KICAgICAgICAgICAgIGVuZCkKLQorZWxz
ZQorICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwck1zdywg
Z3BMc3cpCisgICAgICAgICAgICAgICAgc3RvcmUyaWEgZ3BMc3csIGdwck1zdywgQ2FsbEZyYW1l
SGVhZGVyU2l6ZSArIDggKyBvZmZzZXRbd3MxLCB3czAsIDhdCisgICAgICAgICAgICBlbmQpCitl
bmQKICAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEZQUihtYWNybyAob2Zmc2V0LCBmcHIpCiAg
ICAgICAgICAgICAgICAgc3RvcmVkIGZwciwgQ2FsbEZyYW1lSGVhZGVyU2l6ZSArIDggKyBvZmZz
ZXRbd3MxLCB3czAsIDhdCiAgICAgICAgICAgICBlbmQpCkBAIC05MDAsMTk5ICs5ODYsMzYgQEAg
d2FzbU9wKGN1cnJlbnRfbWVtb3J5LCBXYXNtQ3VycmVudE1lbW9yeSwgbWFjcm8oY3R4KQogICAg
IGxvYWRwIFdhc206Okluc3RhbmNlOjptX21lbW9yeVt3YXNtSW5zdGFuY2VdLCB0MAogICAgIGxv
YWRwIFdhc206Ok1lbW9yeTo6bV9oYW5kbGVbdDBdLCB0MAogICAgIGxvYWRwIFdhc206Ok1lbW9y
eUhhbmRsZTo6bV9zaXplW3QwXSwgdDAKLSAgICB1cnNoaWZ0cSAxNiwgdDAKKyAgICB1cnNoaWZ0
cCAxNiwgdDAKK2lmIEpTVkFMVUU2NAogICAgIHJldHVybnEoY3R4LCB0MCkKK2Vsc2UKKyAgICBy
ZXR1cm4yaShjdHgsIDAsIHQwKQorZW5kCiBlbmQpCiAKIHdhc21PcChzZWxlY3QsIFdhc21TZWxl
Y3QsIG1hY3JvKGN0eCkKICAgICBtbG9hZGkoY3R4LCBtX2NvbmRpdGlvbiwgdDApCiAgICAgYnRp
eiB0MCwgLmlzWmVybworaWYgSlNWQUxVRTY0CiAgICAgbWxvYWRxKGN0eCwgbV9ub25aZXJvLCB0
MCkKICAgICByZXR1cm5xKGN0eCwgdDApCiAuaXNaZXJvOgogICAgIG1sb2FkcShjdHgsIG1femVy
bywgdDApCiAgICAgcmV0dXJucShjdHgsIHQwKQorZWxzZQorICAgIG1sb2FkMmkoY3R4LCBtX25v
blplcm8sIHQxLCB0MCkKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKKy5pc1plcm86CisgICAg
bWxvYWQyaShjdHgsIG1femVybywgdDEsIHQwKQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQor
ZW5kCiBlbmQpCiAKLSMgdXNlcyBvZmZzZXQgYXMgc2NyYXRjaCBhbmQgcmV0dXJucyByZXN1bHQg
b24gcG9pbnRlcgotbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4LCBwb2ludGVy
LCBvZmZzZXQsIHNpemUpCi0gICAgbGVhcCBzaXplIC0gMVtwb2ludGVyLCBvZmZzZXRdLCB0NQot
ICAgIGJwYiB0NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29udGludWF0aW9uCi0gICAgdGhyb3dF
eGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCi0uY29udGludWF0aW9uOgotICAgIGFk
ZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgotZW5kCi0KLW1hY3JvIGVtaXRDaGVja0FuZFByZXBhcmVQ
b2ludGVyQWRkaW5nT2Zmc2V0KGN0eCwgcG9pbnRlciwgb2Zmc2V0LCBzaXplKQotICAgIGxlYXAg
c2l6ZSAtIDFbcG9pbnRlciwgb2Zmc2V0XSwgdDUKLSAgICBicGIgdDUsIGJvdW5kc0NoZWNraW5n
U2l6ZSwgLmNvbnRpbnVhdGlvbgotLnRocm93OgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91
bmRzTWVtb3J5QWNjZXNzKQotLmNvbnRpbnVhdGlvbjoKLSAgICBhZGRwIG1lbW9yeUJhc2UsIHBv
aW50ZXIKLSAgICBhZGRwIG9mZnNldCwgcG9pbnRlcgotZW5kCi0KLW1hY3JvIGVtaXRDaGVja0Fu
ZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgcG9pbnRl
ciwgb2Zmc2V0LCBzaXplKQotICAgIGxlYXAgc2l6ZSAtIDFbcG9pbnRlciwgb2Zmc2V0XSwgdDUK
LSAgICBicGIgdDUsIGJvdW5kc0NoZWNraW5nU2l6ZSwgLmNvbnRpbnVhdGlvbgotLnRocm93Ogot
ICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNjZXNzKQotLmNvbnRpbnVhdGlv
bjoKLSAgICBhZGRwIG1lbW9yeUJhc2UsIHBvaW50ZXIKLSAgICBhZGRwIG9mZnNldCwgcG9pbnRl
cgotICAgIGJ0cG56IHBvaW50ZXIsIChzaXplIC0gMSksIC50aHJvdwotZW5kCi0KLW1hY3JvIHdh
c21Mb2FkT3AobmFtZSwgc3RydWN0LCBzaXplLCBmbikKLSAgICB3YXNtT3AobmFtZSwgc3RydWN0
LCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDApCi0gICAgICAg
IHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9p
bnRlcihjdHgsIHQwLCB0MSwgc2l6ZSkKLSAgICAgICAgZm4oW3QwLCB0MV0sIHQyKQotICAgICAg
ICByZXR1cm5xKGN0eCwgdDIpCi0gICAgZW5kKQotZW5kCi0KLXdhc21Mb2FkT3AobG9hZDhfdSwg
V2FzbUxvYWQ4VSwgMSwgbWFjcm8obWVtLCBkc3QpIGxvYWRiIG1lbSwgZHN0IGVuZCkKLXdhc21M
b2FkT3AobG9hZDE2X3UsIFdhc21Mb2FkMTZVLCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGggbWVt
LCBkc3QgZW5kKQotd2FzbUxvYWRPcChsb2FkMzJfdSwgV2FzbUxvYWQzMlUsIDQsIG1hY3JvKG1l
bSwgZHN0KSBsb2FkaSBtZW0sIGRzdCBlbmQpCi13YXNtTG9hZE9wKGxvYWQ2NF91LCBXYXNtTG9h
ZDY0VSwgOCwgbWFjcm8obWVtLCBkc3QpIGxvYWRxIG1lbSwgZHN0IGVuZCkKLQotd2FzbUxvYWRP
cChpMzJfbG9hZDhfcywgV2FzbUkzMkxvYWQ4UywgMSwgbWFjcm8obWVtLCBkc3QpIGxvYWRic2kg
bWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChpNjRfbG9hZDhfcywgV2FzbUk2NExvYWQ4UywgMSwg
bWFjcm8obWVtLCBkc3QpIGxvYWRic3EgbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChpMzJfbG9h
ZDE2X3MsIFdhc21JMzJMb2FkMTZTLCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGhzaSBtZW0sIGRz
dCBlbmQpCi13YXNtTG9hZE9wKGk2NF9sb2FkMTZfcywgV2FzbUk2NExvYWQxNlMsIDIsIG1hY3Jv
KG1lbSwgZHN0KSBsb2FkaHNxIG1lbSwgZHN0IGVuZCkKLXdhc21Mb2FkT3AoaTY0X2xvYWQzMl9z
LCBXYXNtSTY0TG9hZDMyUywgNCwgbWFjcm8obWVtLCBkc3QpIGxvYWRpcyBtZW0sIGRzdCBlbmQp
Ci0KLW1hY3JvIHdhc21TdG9yZU9wKG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4pCi0gICAgd2FzbU9w
KG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIs
IHQwKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgZW1pdENoZWNr
QW5kUHJlcGFyZVBvaW50ZXIoY3R4LCB0MCwgdDEsIHNpemUpCi0gICAgICAgIG1sb2FkcShjdHgs
IG1fdmFsdWUsIHQyKQotICAgICAgICBmbih0MiwgW3QwLCB0MV0pCi0gICAgICAgIGRpc3BhdGNo
KGN0eCkKLSAgICBlbmQpCi1lbmQKLQotd2FzbVN0b3JlT3Aoc3RvcmU4LCBXYXNtU3RvcmU4LCAx
LCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZWIgdmFsdWUsIG1lbSBlbmQpCi13YXNtU3RvcmVPcChz
dG9yZTE2LCBXYXNtU3RvcmUxNiwgMiwgbWFjcm8odmFsdWUsIG1lbSkgc3RvcmVoIHZhbHVlLCBt
ZW0gZW5kKQotd2FzbVN0b3JlT3Aoc3RvcmUzMiwgV2FzbVN0b3JlMzIsIDQsIG1hY3JvKHZhbHVl
LCBtZW0pIHN0b3JlaSB2YWx1ZSwgbWVtIGVuZCkKLXdhc21TdG9yZU9wKHN0b3JlNjQsIFdhc21T
dG9yZTY0LCA4LCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZXEgdmFsdWUsIG1lbSBlbmQpCi0KICMg
T3Bjb2RlcyB0aGF0IGRvbid0IGhhdmUgdGhlIGBiM29wYCBlbnRyeSBpbiB3YXNtLmpzb24uIFRo
aXMgc2hvdWxkIGJlIGtlcHQgaW4gc3luYwogCi13YXNtT3AoaTMyX2Rpdl9zLCBXYXNtSTMyRGl2
UywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0
eCwgbV9yaHMsIHQxKQotCi0gICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAg
IGJpbmVxIHQxLCAtMSwgLnNhZmUKLSAgICBiaWVxIHQwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAu
dGhyb3dJbnRlZ2VyT3ZlcmZsb3cKLQotLnNhZmU6Ci0gICAgaWYgWDg2XzY0Ci0gICAgICAgICMg
RklYTUU6IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlz
IHJkeAotICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDM2OTIKLSAgICAgICAgY2RxaQotICAgICAgICBpZGl2aSB0MQotICAgIGVsc2lmIEFSTTY0IG9y
IEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgICAgIGRpdmlzIHQxLCB0MAotICAgIGVsc2UKLSAgICAg
ICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS50aHJvd0RpdmlzaW9u
QnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotCi0udGhyb3dJbnRl
Z2VyT3ZlcmZsb3c6Ci0gICAgdGhyb3dFeGNlcHRpb24oSW50ZWdlck92ZXJmbG93KQotZW5kKQot
Ci13YXNtT3AoaTMyX2Rpdl91LCBXYXNtSTMyRGl2VSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGko
Y3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRpeiB0
MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAgIGlmIFg4Nl82NAotICAgICAgICB4b3JpIHQy
LCB0MgotICAgICAgICB1ZGl2aSB0MQotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVND
VjY0Ci0gICAgICAgIGRpdmkgdDEsIHQwCi0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVu
ZAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLnRocm93RGl2aXNpb25CeVplcm86Ci0gICAgdGhy
b3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCi1lbmQpCi0KLXdhc21PcChpMzJfcmVtX3MsIFdh
c21JMzJSZW1TLCBtYWNybyAoY3R4KQotICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKLSAgICBt
bG9hZGkoY3R4LCBtX3JocywgdDEpCi0KLSAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVy
bwotCi0gICAgYmluZXEgdDEsIC0xLCAuc2FmZQotICAgIGJpbmVxIHQwLCBjb25zdGV4cHIgSU5U
MzJfTUlOLCAuc2FmZQotCi0gICAgbW92ZSAwLCB0MgotICAgIGptcCAucmV0dXJuCi0KLS5zYWZl
OgotICAgIGlmIFg4Nl82NAotICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fz
c2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0MiBpcyByZHgKLSAgICAgICAgIyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCi0gICAgICAgIGNkcWkKLSAgICAgICAg
aWRpdmkgdDEKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUKLSAgICAgICAgZGl2aXMgdDEsIHQw
LCB0MgotICAgICAgICBtdWxpIHQxLCB0MgotICAgICAgICBzdWJpIHQwLCB0MiwgdDIKLSAgICBl
bHNpZiBSSVNDVjY0Ci0gICAgICAgIHJlbWlzIHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJy
b3IKLSAgICBlbmQKLQotLnJldHVybjoKLSAgICByZXR1cm5pKGN0eCwgdDIpCi0KLS50aHJvd0Rp
dmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotZW5kKQot
Ci13YXNtT3AoaTMyX3JlbV91LCBXYXNtSTMyUmVtVSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGko
Y3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRpeiB0
MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAgIGlmIFg4Nl82NAotICAgICAgICB4b3JpIHQy
LCB0MgotICAgICAgICB1ZGl2aSB0MQotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQotICAgICAg
ICBkaXZpIHQxLCB0MCwgdDIKLSAgICAgICAgbXVsaSB0MSwgdDIKLSAgICAgICAgc3ViaSB0MCwg
dDIsIHQyCi0gICAgZWxzaWYgUklTQ1Y2NAotICAgICAgICByZW1pIHQxLCB0MAotICAgIGVsc2UK
LSAgICAgICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1cm5pKGN0eCwgdDIpCi0KLS50aHJvd0Rp
dmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotZW5kKQot
CiB3YXNtT3AoaTMyX2N0eiwgV2FzbUkzMkN0eiwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4
LCBtX29wZXJhbmQsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAgdHpj
bnRpIHQwLCB0MAogICAgIHJldHVybmkoY3R4LCB0MCkKIGVuZCkKQEAgLTExMDYsMTQ4ICsxMDI5
LDI1IEBAIHdhc21PcChpMzJfcG9wY250LCBXYXNtSTMyUG9wY250LCBtYWNybyAoY3R4KQogICAg
IHJldHVybmkoY3R4LCByMSkKIGVuZCkKIAotd2FzbU9wKGk2NF9kaXZfcywgV2FzbUk2NERpdlMs
IG1hY3JvIChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgs
IG1fcmhzLCB0MSkKLQotICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBi
cW5lcSB0MSwgLTEsIC5zYWZlCi0gICAgYnFlcSB0MCwgY29uc3RleHByIElOVDY0X01JTiwgLnRo
cm93SW50ZWdlck92ZXJmbG93Ci0KLS5zYWZlOgotICAgIGlmIFg4Nl82NAotICAgICAgICAjIEZJ
WE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0MiBpcyBy
ZHgKLSAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAz
NjkyCi0gICAgICAgIGNxb3EKLSAgICAgICAgaWRpdnEgdDEKLSAgICBlbHNpZiBBUk02NCBvciBB
Uk02NEUgb3IgUklTQ1Y2NAotICAgICAgICBkaXZxcyB0MSwgdDAKLSAgICBlbHNlCi0gICAgICAg
IGVycm9yCi0gICAgZW5kCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0udGhyb3dEaXZpc2lvbkJ5
WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLQotLnRocm93SW50ZWdl
ck92ZXJmbG93OgotICAgIHRocm93RXhjZXB0aW9uKEludGVnZXJPdmVyZmxvdykKLWVuZCkKLQot
d2FzbU9wKGk2NF9kaXZfdSwgV2FzbUk2NERpdlUsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRxKGN0
eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0cXogdDEs
IC50aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBpZiBYODZfNjQKLSAgICAgICAgeG9ycSB0Miwg
dDIKLSAgICAgICAgdWRpdnEgdDEKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2
NAotICAgICAgICBkaXZxIHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQK
LSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93
RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotZW5kKQotCi13YXNtT3AoaTY0X3JlbV9zLCBXYXNt
STY0UmVtUywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxv
YWRxKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRxeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8K
LQotICAgIGJxbmVxIHQxLCAtMSwgLnNhZmUKLSAgICBicW5lcSB0MCwgY29uc3RleHByIElOVDY0
X01JTiwgLnNhZmUKLQotICAgIG1vdmUgMCwgdDIKLSAgICBqbXAgLnJldHVybgotCi0uc2FmZToK
LSAgICBpZiBYODZfNjQKLSAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRpY19hc3Nl
dCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4Ci0gICAgICAgICMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgotICAgICAgICBjcW9xCi0gICAgICAgIGlk
aXZxIHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCi0gICAgICAgIGRpdnFzIHQxLCB0MCwg
dDIKLSAgICAgICAgbXVscSB0MSwgdDIKLSAgICAgICAgc3VicSB0MCwgdDIsIHQyCi0gICAgZWxz
aWYgUklTQ1Y2NAotICAgICAgICByZW1xcyB0MSwgdDAKLSAgICBlbHNlCi0gICAgICAgIGVycm9y
Ci0gICAgZW5kCi0KLS5yZXR1cm46Ci0gICAgcmV0dXJucShjdHgsIHQyKSAjIHJkeCBoYXMgdGhl
IHJlbWFpbmRlcgotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihE
aXZpc2lvbkJ5WmVybykKLWVuZCkKLQotd2FzbU9wKGk2NF9yZW1fdSwgV2FzbUk2NFJlbVUsIG1h
Y3JvIChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1f
cmhzLCB0MSkKLQotICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBpZiBY
ODZfNjQKLSAgICAgICAgeG9ycSB0MiwgdDIKLSAgICAgICAgdWRpdnEgdDEKLSAgICBlbHNpZiBB
Uk02NCBvciBBUk02NEUKLSAgICAgICAgZGl2cSB0MSwgdDAsIHQyCi0gICAgICAgIG11bHEgdDEs
IHQyCi0gICAgICAgIHN1YnEgdDAsIHQyLCB0MgotICAgIGVsc2lmIFJJU0NWNjQKLSAgICAgICAg
cmVtcSB0MSwgdDAKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0gICAgcmV0dXJu
cShjdHgsIHQyKQotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihE
aXZpc2lvbkJ5WmVybykKLWVuZCkKLQotd2FzbU9wKGk2NF9jdHosIFdhc21JNjRDdHosIG1hY3Jv
IChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICB0emNudHEgdDAsIHQw
Ci0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3BvcGNudCwgV2FzbUk2
NFBvcGNudCwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIGExKQotICAg
IHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKLSAgICBtb3ZlIFBDLCBhMAotICAgIGNDYWxsMihfc2xv
d19wYXRoX3dhc21fcG9wY291bnRsbCkKLSAgICByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkKLSAg
ICByZXR1cm5xKGN0eCwgcjEpCi1lbmQpCi0KLXdhc21PcChmMzJfdHJ1bmMsIFdhc21GMzJUcnVu
YywgbWFjcm8gKGN0eCkKK3dhc21Sb3VuZGluZ09wKGYzMl90cnVuYywgV2FzbUYzMlRydW5jLCBt
YWNybyAoY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIHRydW5jYXRl
ZiBmdDAsIGZ0MAogICAgIHJldHVybmYoY3R4LCBmdDApCiBlbmQpCiAKLXdhc21PcChmMzJfbmVh
cmVzdCwgV2FzbUYzMk5lYXJlc3QsIG1hY3JvIChjdHgpCit3YXNtUm91bmRpbmdPcChmMzJfbmVh
cmVzdCwgV2FzbUYzMk5lYXJlc3QsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVy
YW5kLCBmdDApCiAgICAgcm91bmRmIGZ0MCwgZnQwCiAgICAgcmV0dXJuZihjdHgsIGZ0MCkKIGVu
ZCkKIAotd2FzbU9wKGY2NF90cnVuYywgV2FzbUY2NFRydW5jLCBtYWNybyAoY3R4KQord2FzbVJv
dW5kaW5nT3AoZjY0X3RydW5jLCBXYXNtRjY0VHJ1bmMsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRk
KGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgdHJ1bmNhdGVkIGZ0MCwgZnQwCiAgICAgcmV0dXJu
ZChjdHgsIGZ0MCkKIGVuZCkKIAotd2FzbU9wKGY2NF9uZWFyZXN0LCBXYXNtRjY0TmVhcmVzdCwg
bWFjcm8gKGN0eCkKK3dhc21Sb3VuZGluZ09wKGY2NF9uZWFyZXN0LCBXYXNtRjY0TmVhcmVzdCwg
bWFjcm8gKGN0eCkKICAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICByb3VuZGQg
ZnQwLCBmdDAKICAgICByZXR1cm5kKGN0eCwgZnQwKQpAQCAtMTI3MSwyNCArMTA3MSw2IEBAIHdh
c21PcChpMzJfdHJ1bmNfc19mMzIsIFdhc21JMzJUcnVuY1NGMzIsIG1hY3JvIChjdHgpCiAgICAg
dGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKIGVuZCkKIAotd2FzbU9wKGkzMl90cnVu
Y19zX2Y2NCwgV2FzbUkzMlRydW5jU0Y2NCwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBt
X29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhjMWUwMDAwMDAwMjAwMDAwLCB0MCAjIElOVDMy
X01JTiAtIDEuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0
T2ZCb3VuZHNUcnVuYwotCi0gICAgbW92ZSAweDQxZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDMy
X01JTgotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3Vu
ZHNUcnVuYwotCi0gICAgdHJ1bmNhdGVkMmlzIGZ0MCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDAp
Ci0KLS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1
bmMpCi1lbmQpCi0KIHdhc21PcChpMzJfdHJ1bmNfdV9mMzIsIFdhc21JMzJUcnVuY1VGMzIsIG1h
Y3JvIChjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAKQEAgLTEzMDcsOTYg
KzEwODksNiBAQCB3YXNtT3AoaTMyX3RydW5jX3VfZjMyLCBXYXNtSTMyVHJ1bmNVRjMyLCBtYWNy
byAoY3R4KQogICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCiBlbmQpCiAKLXdh
c21PcChpMzJfdHJ1bmNfdV9mNjQsIFdhc21JMzJUcnVuY1VGNjQsIG1hY3JvIChjdHgpCi0gICAg
bWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YmZmMDAwMDAwMDAwMDAw
MCwgdDAgIyAtMS4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5v
dXRPZkJvdW5kc1RydW5jCi0KLSAgICBtb3ZlIDB4NDFmMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQz
Ml9NSU4gKiAtMi4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5v
dXRPZkJvdW5kc1RydW5jCi0KLSAgICB0cnVuY2F0ZWQyaSBmdDAsIHQwCi0gICAgcmV0dXJuaShj
dHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJv
dW5kc1RydW5jKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3NfZjMyLCBXYXNtSTY0VHJ1bmNT
RjMyLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAg
bW92ZSAweGRmMDAwMDAwLCB0MCAjIElOVDY0X01JTgotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJm
bHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIG1vdmUgMHg1ZjAwMDAwMCwg
dDAgIyAtSU5UNjRfTUlOCi0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZndGVxdW4gZnQwLCBmdDEs
IC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICB0cnVuY2F0ZWYycXMgZnQwLCB0MAotICAgIHJldHVy
bnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dFeGNlcHRpb24oT3V0
T2ZCb3VuZHNUcnVuYykKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY19zX2Y2NCwgV2FzbUk2NFRy
dW5jU0Y2NCwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQot
ICAgIG1vdmUgMHhjM2UwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDY0X01JTgotICAgIGZxMmQgdDAs
IGZ0MQotICAgIGJkbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIG1vdmUg
MHg0M2UwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KLSAgICBmcTJkIHQwLCBmdDEKLSAg
ICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIHRydW5jYXRlZDJx
cyBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAg
ICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQotZW5kKQotCi13YXNtT3AoaTY0X3Ry
dW5jX3VfZjMyLCBXYXNtSTY0VHJ1bmNVRjMyLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZihjdHgs
IG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGJmODAwMDAwLCB0MCAjIC0xLjAKLSAgICBm
aTJmIHQwLCBmdDEKLSAgICBiZmx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQot
ICAgIG1vdmUgMHg1ZjgwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCi0gICAgZmkyZiB0MCwg
ZnQxCi0gICAgYmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICB0cnVu
Y2F0ZWYycSBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVu
YzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQotZW5kKQotCi13YXNtT3Ao
aTY0X3RydW5jX3VfZjY0LCBXYXNtSTY0VHJ1bmNVRjY0LCBtYWNybyAoY3R4KQotICAgIG1sb2Fk
ZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGJmZjAwMDAwMDAwMDAwMDAsIHQw
ICMgLTEuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZC
b3VuZHNUcnVuYwotCi0gICAgbW92ZSAweDQzZjAwMDAwMDAwMDAwMDAsIHQwICMgSU5UNjRfTUlO
ICogLTIuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZC
b3VuZHNUcnVuYwotCi0gICAgdHJ1bmNhdGVkMnEgZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0
MCkKLQotLm91dE9mQm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNU
cnVuYykKLWVuZCkKLQogd2FzbU9wKGkzMl90cnVuY19zYXRfZjMyX3MsIFdhc21JMzJUcnVuY1Nh
dEYzMlMsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAKQEAg
LTE0MjUsMzQgKzExMTcsNiBAQCB3YXNtT3AoaTMyX3RydW5jX3NhdF9mMzJfcywgV2FzbUkzMlRy
dW5jU2F0RjMyUywgbWFjcm8gKGN0eCkKICAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCiAKLXdh
c21PcChpMzJfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTMyVHJ1bmNTYXRGNjRTLCBtYWNybyAoY3R4
KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGMxZTAwMDAw
MDAyMDAwMDAsIHQwICMgSU5UMzJfTUlOIC0gMS4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRs
dGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU4KLQotICAgIG1vdmUg
MHg0MWUwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQzMl9NSU4KLSAgICBmcTJkIHQwLCBmdDEKLSAg
ICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQotICAgIHRydW5j
YXRlZDJpcyBmdDAsIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1pbk9yTmFOOgotICAgIGJkZXEgZnQwLCBmdDAsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWlu
Ci0gICAgbW92ZSAwLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1
bmNTYXRNYXg6Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDMyX01BWCksIHQwCi0gICAgcmV0dXJu
aShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKLSAgICBtb3ZlIChjb25zdGV4
cHIgSU5UMzJfTUlOKSwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi1lbmQpCi0KIHdhc21PcChp
MzJfdHJ1bmNfc2F0X2YzMl91LCBXYXNtSTMyVHJ1bmNTYXRGMzJVLCBtYWNybyAoY3R4KQogICAg
IG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogCkBAIC0xNDc2LDE1MiArMTE0MCwyMiBAQCB3
YXNtT3AoaTMyX3RydW5jX3NhdF9mMzJfdSwgV2FzbUkzMlRydW5jU2F0RjMyVSwgbWFjcm8gKGN0
eCkKICAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCiAKLXdhc21PcChpMzJfdHJ1bmNfc2F0X2Y2
NF91LCBXYXNtSTMyVHJ1bmNTYXRGNjRVLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1f
b3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGJmZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAot
ICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1pbgotCi0gICAgbW92ZSAweDQxZjAwMDAwMDAwMDAwMDAsIHQwICMgSU5UMzJfTUlOICog
LTIuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3Vu
ZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAotICAgIHJldHVybmkoY3R4
LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46Ci0gICAgbW92ZSAwLCB0MAotICAgIHJl
dHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6Ci0gICAgbW92ZSAoY29u
c3RleHByIFVJTlQzMl9NQVgpLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLWVuZCkKLQotd2Fz
bU9wKGk2NF90cnVuY19zYXRfZjMyX3MsIFdhc21JNjRUcnVuY1NhdEYzMlMsIG1hY3JvIChjdHgp
Ci0gICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4ZGYwMDAwMDAs
IHQwICMgSU5UNjRfTUlOCi0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZsdHVuIGZ0MCwgZnQxLCAu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOCi0KLSAgICBtb3ZlIDB4NWYwMDAwMDAsIHQwICMg
LUlOVDY0X01JTgotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0
T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVmMnFzIGZ0MCwgdDAKLSAgICByZXR1
cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU46Ci0gICAgYmZlcSBm
dDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KLSAgICBtb3ZlIDAsIHQwCi0gICAgcmV0
dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKLSAgICBtb3ZlIChjb25z
dGV4cHIgSU5UNjRfTUFYKSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5k
c1RydW5jU2F0TWluOgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9NSU4pLCB0MAotICAgIHJl
dHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY19zYXRfZjY0X3MsIFdhc21J
NjRUcnVuY1NhdEY2NFMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBm
dDApCi0KLSAgICBtb3ZlIDB4YzNlMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4KLSAgICBm
cTJkIHQwLCBmdDEKLSAgICBiZGx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWlu
T3JOYU4KLQotICAgIG1vdmUgMHg0M2UwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KLSAg
ICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNT
YXRNYXgKLQotICAgIHRydW5jYXRlZDJxcyBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQot
Ci0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgotICAgIGJkZXEgZnQwLCBmdDAsIC5vdXRP
ZkJvdW5kc1RydW5jU2F0TWluCi0gICAgbW92ZSAwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkK
LQotLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDY0X01B
WCksIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoK
LSAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUlOKSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDAp
Ci1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl91LCBXYXNtSTY0VHJ1bmNTYXRGMzJV
LCBtYWNybyAoY3R4KQotICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92
ZSAweGJmODAwMDAwLCB0MCAjIC0xLjAKLSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmx0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KLQotICAgIG1vdmUgMHg1ZjgwMDAwMCwg
dDAgIyBJTlQ2NF9NSU4gKiAtMi4wCi0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZndGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWYycSBmdDAsIHQw
Ci0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKLSAgICBt
b3ZlIDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1h
eDoKLSAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDY0X01BWCksIHQwCi0gICAgcmV0dXJucShjdHgs
IHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3NhdF9mNjRfdSwgV2FzbUk2NFRydW5jU2F0
RjY0VSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAg
IG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAg
ICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KLQotICAgIG1vdmUg
MHg0M2YwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDY0X01JTiAqIC0yLjAKLSAgICBmcTJkIHQwLCBm
dDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQotICAg
IHRydW5jYXRlZDJxIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5k
c1RydW5jU2F0TWluOgotICAgIG1vdmUgMCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5v
dXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UNjRfTUFYKSwg
dDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLQotd2FzbU9wKGYzMl9jb252ZXJ0X3Vf
aTY0LCBXYXNtRjMyQ29udmVydFVJNjQsIG1hY3JvIChjdHgpCit3YXNtSTY0VG9GT3AoZjMyX2Nv
bnZlcnRfdV9pNjQsIFdhc21GMzJDb252ZXJ0VUk2NCwgbWFjcm8gKGN0eCkKICAgICBtbG9hZHEo
Y3R4LCBtX29wZXJhbmQsIHQwKQogICAgIGlmIFg4Nl82NAogICAgICAgICBjcTJmIHQwLCB0MSwg
ZnQwCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKLSAgICAgICAgY3EyZiB0
MCwgZnQwCiAgICAgZWxzZQotICAgICAgICBlcnJvcgorICAgICAgICBjcTJmIHQwLCBmdDAKICAg
ICBlbmQKICAgICByZXR1cm5mKGN0eCwgZnQwKQogZW5kKQogCi13YXNtT3AoZjY0X2NvbnZlcnRf
dV9pNjQsIFdhc21GNjRDb252ZXJ0VUk2NCwgbWFjcm8gKGN0eCkKK3dhc21JNjRUb0ZPcChmNjRf
Y29udmVydF91X2k2NCwgV2FzbUY2NENvbnZlcnRVSTY0LCBtYWNybyAoY3R4KQogICAgIG1sb2Fk
cShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAgaWYgWDg2XzY0CiAgICAgICAgIGNxMmQgdDAsIHQx
LCBmdDAKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAotICAgICAgICBjcTJk
IHQwLCBmdDAKICAgICBlbHNlCi0gICAgICAgIGVycm9yCisgICAgICAgIGNxMmQgdDAsIGZ0MAog
ICAgIGVuZAogICAgIHJldHVybmQoY3R4LCBmdDApCiBlbmQpCkBAIC0xNjMyLDQ3ICsxMTY2LDYg
QEAgd2FzbU9wKGkzMl9lcXosIFdhc21JMzJFcXosIG1hY3JvKGN0eCkKICAgICByZXR1cm5pKGN0
eCwgdDApCiBlbmQpCiAKLXdhc21PcChpNjRfc2hsLCBXYXNtSTY0U2hsLCBtYWNybyhjdHgpCi0g
ICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLSAg
ICBsc2hpZnRxIHQxLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2
NF9zaHJfdSwgV2FzbUk2NFNoclUsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywg
dDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotICAgIHVyc2hpZnRxIHQxLCB0MAotICAg
IHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9zaHJfcywgV2FzbUk2NFNoclMs
IG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwg
bV9yaHMsIHQxKQotICAgIHJzaGlmdHEgdDEsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5k
KQotCi13YXNtT3AoaTY0X3JvdHIsIFdhc21JNjRSb3RyLCBtYWNybyhjdHgpCi0gICAgbWxvYWRx
KGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLSAgICBycm90YXRl
cSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfcm90bCwg
V2FzbUk2NFJvdGwsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAg
bWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotICAgIGxyb3RhdGVxIHQxLCB0MAotICAgIHJldHVybnEo
Y3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9lcXosIFdhc21JNjRFcXosIG1hY3JvKGN0eCkK
LSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIGNxZXEgdDAsIDAsIHQwCi0gICAg
cmV0dXJuaShjdHgsIHQwKQotZW5kKQotCiB3YXNtT3AoZjMyX21pbiwgV2FzbUYzMk1pbiwgbWFj
cm8oY3R4KQogICAgIG1sb2FkZihjdHgsIG1fbGhzLCBmdDApCiAgICAgbWxvYWRmKGN0eCwgbV9y
aHMsIGZ0MSkKQEAgLTE3ODIsMjMgKzEyNzUsNiBAQCB3YXNtT3AoZjY0X21heCwgV2FzbUY2NE1h
eCwgbWFjcm8oY3R4KQogICAgIHJldHVybmQoY3R4LCBmdDEpCiBlbmQpCiAKLXdhc21PcChmNjRf
Y29weXNpZ24sIFdhc21GNjRDb3B5c2lnbiwgbWFjcm8oY3R4KQotICAgIG1sb2FkZChjdHgsIG1f
bGhzLCBmdDApCi0gICAgbWxvYWRkKGN0eCwgbV9yaHMsIGZ0MSkKLQotICAgIGZkMnEgZnQxLCB0
MQotICAgIG1vdmUgMHg4MDAwMDAwMDAwMDAwMDAwLCB0MgotICAgIGFuZHEgdDIsIHQxCi0KLSAg
ICBmZDJxIGZ0MCwgdDAKLSAgICBtb3ZlIDB4N2ZmZmZmZmZmZmZmZmZmZiwgdDIKLSAgICBhbmRx
IHQyLCB0MAotCi0gICAgb3JxIHQxLCB0MAotICAgIGZxMmQgdDAsIGZ0MAotICAgIHJldHVybmQo
Y3R4LCBmdDApCi1lbmQpCi0KIHdhc21PcChmMzJfY29udmVydF91X2kzMiwgV2FzbUYzMkNvbnZl
cnRVSTMyLCBtYWNybyhjdHgpCiAgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICBj
aTJmIHQwLCBmdDAKQEAgLTE5NzQsMTM0ICsxNDUwLDYgQEAgd2FzbU9wKGkzMl9jbHosIFdhc21J
MzJDbHosIG1hY3JvKGN0eCkKICAgICByZXR1cm5pKGN0eCwgdDEpCiBlbmQpCiAKLXdhc21PcChp
NjRfYWRkLCBXYXNtSTY0QWRkLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQw
KQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBhZGRxIHQwLCB0MQotICAgIHJldHVy
bnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9zdWIsIFdhc21JNjRTdWIsIG1hY3JvKGN0
eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQx
KQotICAgIHN1YnEgdDEsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3Ao
aTY0X211bCwgV2FzbUk2NE11bCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0
MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgbXVscSB0MCwgdDEKLSAgICByZXR1
cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfYW5kLCBXYXNtSTY0QW5kLCBtYWNybyhj
dHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0
MSkKLSAgICBhbmRxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9w
KGk2NF9vciwgV2FzbUk2NE9yLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQw
KQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBvcnEgdDAsIHQxCi0gICAgcmV0dXJu
cShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X3hvciwgV2FzbUk2NFhvciwgbWFjcm8oY3R4
KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEp
Ci0gICAgeG9ycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChp
NjRfZXEsIFdhc21JNjRFcSwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkK
LSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FlcSB0MCwgdDEsIHQyCi0gICAgYW5k
aSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9uZSwgV2Fz
bUk2NE5lLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2Fk
cShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcW5lcSB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0Mgot
ICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9sdF9zLCBXYXNtSTY0THRT
LCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgs
IG1fcmhzLCB0MSkKLSAgICBjcWx0IHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0
dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2xlX3MsIFdhc21JNjRMZVMsIG1hY3Jv
KGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMs
IHQxKQotICAgIGNxbHRlcSB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmko
Y3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9sdF91LCBXYXNtSTY0THRVLCBtYWNybyhjdHgp
Ci0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkK
LSAgICBjcWIgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIp
Ci1lbmQpCi0KLXdhc21PcChpNjRfbGVfdSwgV2FzbUk2NExlVSwgbWFjcm8oY3R4KQotICAgIG1s
b2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3Fi
ZXEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQp
Ci0KLXdhc21PcChpNjRfZ3RfcywgV2FzbUk2NEd0UywgbWFjcm8oY3R4KQotICAgIG1sb2FkcShj
dHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FndCB0MCwg
dDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2Fz
bU9wKGk2NF9nZV9zLCBXYXNtSTY0R2VTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9s
aHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWd0ZXEgdDAsIHQxLCB0
MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChp
NjRfZ3RfdSwgV2FzbUk2NEd0VSwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0
MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FhIHQwLCB0MSwgdDIKLSAgICBh
bmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2dlX3Us
IFdhc21JNjRHZVUsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAg
bWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxYWVxIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEs
IHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2NseiwgV2FzbUk2
NENseiwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgbHpj
bnRxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQogd2FzbU9wKGYzMl9hZGQs
IFdhc21GMzJBZGQsIG1hY3JvKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX2xocywgZnQwKQogICAg
IG1sb2FkZihjdHgsIG1fcmhzLCBmdDEpCkBAIC0yMTQyLDEzICsxNDkwLDEzIEBAIHdhc21PcChm
MzJfbmVnLCBXYXNtRjMyTmVnLCBtYWNybyhjdHgpCiAgICAgcmV0dXJuZihjdHgsIGZ0MSkKIGVu
ZCkKIAotd2FzbU9wKGYzMl9jZWlsLCBXYXNtRjMyQ2VpbCwgbWFjcm8oY3R4KQord2FzbVJvdW5k
aW5nT3AoZjMyX2NlaWwsIFdhc21GMzJDZWlsLCBtYWNybyhjdHgpCiAgICAgbWxvYWRmKGN0eCwg
bV9vcGVyYW5kLCBmdDApCiAgICAgY2VpbGYgZnQwLCBmdDEKICAgICByZXR1cm5mKGN0eCwgZnQx
KQogZW5kKQogCi13YXNtT3AoZjMyX2Zsb29yLCBXYXNtRjMyRmxvb3IsIG1hY3JvKGN0eCkKK3dh
c21Sb3VuZGluZ09wKGYzMl9mbG9vciwgV2FzbUYzMkZsb29yLCBtYWNybyhjdHgpCiAgICAgbWxv
YWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgZmxvb3JmIGZ0MCwgZnQxCiAgICAgcmV0dXJu
ZihjdHgsIGZ0MSkKQEAgLTIyNDIsMTMgKzE1OTAsMTMgQEAgd2FzbU9wKGY2NF9uZWcsIFdhc21G
NjROZWcsIG1hY3JvKGN0eCkKICAgICByZXR1cm5kKGN0eCwgZnQxKQogZW5kKQogCi13YXNtT3Ao
ZjY0X2NlaWwsIFdhc21GNjRDZWlsLCBtYWNybyhjdHgpCit3YXNtUm91bmRpbmdPcChmNjRfY2Vp
bCwgV2FzbUY2NENlaWwsIG1hY3JvKGN0eCkKICAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0
MCkKICAgICBjZWlsZCBmdDAsIGZ0MQogICAgIHJldHVybmQoY3R4LCBmdDEpCiBlbmQpCiAKLXdh
c21PcChmNjRfZmxvb3IsIFdhc21GNjRGbG9vciwgbWFjcm8oY3R4KQord2FzbVJvdW5kaW5nT3Ao
ZjY0X2Zsb29yLCBXYXNtRjY0Rmxvb3IsIG1hY3JvKGN0eCkKICAgICBtbG9hZGQoY3R4LCBtX29w
ZXJhbmQsIGZ0MCkKICAgICBmbG9vcmQgZnQwLCBmdDEKICAgICByZXR1cm5kKGN0eCwgZnQxKQpA
QCAtMjMwMyw1MCArMTY1MSwyMCBAQCB3YXNtT3AoZjY0X2dlLCBXYXNtRjY0R2UsIG1hY3JvKGN0
eCkKIGVuZCkKIAogd2FzbU9wKGkzMl93cmFwX2k2NCwgV2FzbUkzMldyYXBJNjQsIG1hY3JvKGN0
eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fb3Bl
cmFuZCwgdDApCiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQogCi13YXNtT3AoaTY0X2V4dGVu
ZF9zX2kzMiwgV2FzbUk2NEV4dGVuZFNJMzIsIG1hY3JvKGN0eCkKLSAgICBtbG9hZGkoY3R4LCBt
X29wZXJhbmQsIHQwKQotICAgIHN4aTJxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVu
ZCkKLQotd2FzbU9wKGk2NF9leHRlbmRfdV9pMzIsIFdhc21JNjRFeHRlbmRVSTMyLCBtYWNybyhj
dHgpCi0gICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICB6eGkycSB0MCwgdDEKLSAg
ICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KIHdhc21PcChpMzJfZXh0ZW5kOF9zLCBXYXNtSTMy
RXh0ZW5kOFMsIG1hY3JvKGN0eCkKICAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQogICAg
IHN4YjJpIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKKyAgICByZXR1cm5pKGN0eCwgdDEp
CiBlbmQpCiAKIHdhc21PcChpMzJfZXh0ZW5kMTZfcywgV2FzbUkzMkV4dGVuZDE2UywgbWFjcm8o
Y3R4KQogICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAgc3hoMmkgdDAsIHQxCi0g
ICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X2V4dGVuZDhfcywgV2FzbUk2
NEV4dGVuZDhTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAg
ICBzeGIycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRf
ZXh0ZW5kMTZfcywgV2FzbUk2NEV4dGVuZDE2UywgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgs
IG1fb3BlcmFuZCwgdDApCi0gICAgc3hoMnEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQot
ZW5kKQotCi13YXNtT3AoaTY0X2V4dGVuZDMyX3MsIFdhc21JNjRFeHRlbmQxNlMsIG1hY3JvKGN0
eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIHN4aTJxIHQwLCB0MQotICAg
IHJldHVybnEoY3R4LCB0MSkKKyAgICByZXR1cm5pKGN0eCwgdDEpCiBlbmQpCiAKIHdhc21PcChm
MzJfY29udmVydF9zX2kzMiwgV2FzbUYzMkNvbnZlcnRTSTMyLCBtYWNybyhjdHgpCkBAIC0yMzU1
LDcgKzE2NzMsNyBAQCB3YXNtT3AoZjMyX2NvbnZlcnRfc19pMzIsIFdhc21GMzJDb252ZXJ0U0kz
MiwgbWFjcm8oY3R4KQogICAgIHJldHVybmYoY3R4LCBmdDApCiBlbmQpCiAKLXdhc21PcChmMzJf
Y29udmVydF9zX2k2NCwgV2FzbUYzMkNvbnZlcnRTSTY0LCBtYWNybyhjdHgpCit3YXNtSTY0VG9G
T3AoZjMyX2NvbnZlcnRfc19pNjQsIFdhc21GMzJDb252ZXJ0U0k2NCwgbWFjcm8oY3R4KQogICAg
IG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAgY3EyZnMgdDAsIGZ0MAogICAgIHJldHVy
bmYoY3R4LCBmdDApCkBAIC0yMzc5LDcgKzE2OTcsNyBAQCB3YXNtT3AoZjY0X2NvbnZlcnRfc19p
MzIsIFdhc21GNjRDb252ZXJ0U0kzMiwgbWFjcm8oY3R4KQogICAgIHJldHVybmQoY3R4LCBmdDAp
CiBlbmQpCiAKLXdhc21PcChmNjRfY29udmVydF9zX2k2NCwgV2FzbUY2NENvbnZlcnRTSTY0LCBt
YWNybyhjdHgpCit3YXNtSTY0VG9GT3AoZjY0X2NvbnZlcnRfc19pNjQsIFdhc21GNjRDb252ZXJ0
U0k2NCwgbWFjcm8oY3R4KQogICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAgY3Ey
ZHMgdDAsIGZ0MAogICAgIHJldHVybmQoY3R4LCBmdDApCkBAIC0yMzkxLDM0ICsxNzA5LDI5IEBA
IHdhc21PcChmNjRfcHJvbW90ZV9mMzIsIFdhc21GNjRQcm9tb3RlRjMyLCBtYWNybyhjdHgpCiAg
ICAgcmV0dXJuZChjdHgsIGZ0MSkKIGVuZCkKIAotd2FzbU9wKGY2NF9yZWludGVycHJldF9pNjQs
IFdhc21GNjRSZWludGVycHJldEk2NCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3Bl
cmFuZCwgdDApCi0gICAgZnEyZCB0MCwgZnQwCi0gICAgcmV0dXJuZChjdHgsIGZ0MCkKLWVuZCkK
LQogd2FzbU9wKGkzMl9yZWludGVycHJldF9mMzIsIFdhc21JMzJSZWludGVycHJldEYzMiwgbWFj
cm8oY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIGZmMmkgZnQwLCB0
MAogICAgIHJldHVybmkoY3R4LCB0MCkKIGVuZCkKIAotd2FzbU9wKGk2NF9yZWludGVycHJldF9m
NjQsIFdhc21JNjRSZWludGVycHJldEY2NCwgbWFjcm8oY3R4KQotICAgIG1sb2FkZChjdHgsIG1f
b3BlcmFuZCwgZnQwKQotICAgIGZkMnEgZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVu
ZCkKLQogbWFjcm8gZHJvcEtlZXAoc3RhcnRPZmZzZXQsIGRyb3AsIGtlZXApCiAgICAgbHNoaWZ0
aSAzLCBzdGFydE9mZnNldAogICAgIHN1YnAgY2ZyLCBzdGFydE9mZnNldCwgc3RhcnRPZmZzZXQK
ICAgICBuZWdpIGRyb3AKK2lmIEpTVkFMVUU2NAogICAgIHN4aTJxIGRyb3AsIGRyb3AKK2VuZAog
CiAuY29weUxvb3A6CiAgICAgYnRpeiBrZWVwLCAuZG9uZQoraWYgSlNWQUxVRTY0CiAgICAgbG9h
ZHEgW3N0YXJ0T2Zmc2V0LCBkcm9wLCA4XSwgdDYKICAgICBzdG9yZXEgdDYsIFtzdGFydE9mZnNl
dF0KK2Vsc2UKKyAgICBsb2FkMmlhIFtzdGFydE9mZnNldCwgZHJvcCwgOF0sIHQ1LCB0NgorICAg
IHN0b3JlMmlhIHQ1LCB0NiwgW3N0YXJ0T2Zmc2V0XQorZW5kCiAgICAgc3ViaSAxLCBrZWVwCiAg
ICAgc3VicCA4LCBzdGFydE9mZnNldAogICAgIGptcCAuY29weUxvb3AKQEAgLTI0MzYsMzg5ICsx
NzQ5LDYgQEAgd2FzbU9wKGRyb3Bfa2VlcCwgV2FzbURyb3BLZWVwLCBtYWNybyhjdHgpCiAgICAg
ZGlzcGF0Y2goY3R4KQogZW5kKQogCi1tYWNybyB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKGxvd2Vy
Q2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIsIGZuaCwgZm5pLCBmbnEpCi0gICAgd2Fz
bU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4
JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9p
bnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9h
ZHEoY3R4LCBtX3ZhbHVlLCB0MCkKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJB
ZGRpbmdPZmZzZXQoY3R4LCB0MywgdDEsIDEpCi0gICAgICAgIGZuYih0MCwgW3QzXSwgdDIsIHQ1
LCB0MSkKLSAgICAgICAgYW5kcSAweGZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kOFRvNjQKLSAg
ICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZiwgLm9rIGVuZCkKLSAgICAgICAg
cmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcxNiVs
b3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXcxNiV1cHBlckNhc2VPcGNvZGUlVSwg
bWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQotICAgICAgICB3
Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDAp
Ci0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdu
bWVudENoZWNrKGN0eCwgdDMsIHQxLCAyKQotICAgICAgICBmbmgodDAsIFt0M10sIHQyLCB0NSwg
dDEpCi0gICAgICAgIGFuZHEgMHhmZmZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kMTZUbzY0Ci0g
ICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmZmZiwgLm9rIGVuZCkKLSAgICAg
ICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcz
MiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXczMiV1cHBlckNhc2VPcGNvZGUl
VSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQotICAgICAg
ICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwg
dDApCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFs
aWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA0KQotICAgICAgICBmbmkodDAsIFt0M10sIHQyLCB0
NSwgdDEpCi0gICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmZmZmZmZmYsIC5v
ayBlbmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi0gICAgd2FzbU9wKGk2
NF9hdG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21JNjRBdG9taWNSbXcldXBwZXJDYXNl
T3Bjb2RlJSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQot
ICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92
YWx1ZSwgdDApCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0
V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA4KQotICAgICAgICBmbnEodDAsIFt0M10s
IHQyLCB0NSwgdDEpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi1lbmQKLQot
bWFjcm8gd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKGxvd2VyQ2FzZU9wY29kZSwg
dXBwZXJDYXNlT3Bjb2RlLCBmbmksIGZucSkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKGxv
d2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgaWYgWDg2XzY0Ci0gICAgICAgICAg
ICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKLSAgICAgICAgICAgICAgICBsb2FkYiBtZW0sIHQwR1BS
Ci0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgot
ICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAgICAgYmF0b21p
Y3dlYWtjYXNiIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAotICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbG9hZGxpbmthY3FiIG1lbSwgdDFHUFIK
LSAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgICAg
ICBzdG9yZWNvbmRyZWxiIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICAgICAgYmluZXEg
dDVHUFIsIDAsIC5sb29wCi0gICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAgICAg
ICAgICAgIGVuZAotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BS
LCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBpZiBYODZfNjQKLSAgICAgICAgICAgICAgICBt
b3ZlIHQwR1BSLCB0NUdQUgotICAgICAgICAgICAgICAgIGxvYWRoIG1lbSwgdDBHUFIKLSAgICAg
ICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCi0gICAgICAg
ICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgICAgICBiYXRvbWljd2Vha2Nh
c2ggdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAubG9vcDoKLSAgICAgICAgICAgICAgICBsb2FkbGlua2FjcWggbWVtLCB0MUdQUgotICAgICAg
ICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgICAgIHN0b3Jl
Y29uZHJlbGggdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwg
MCwgLmxvb3AKLSAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAgICAgICAgICAg
ZW5kCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikKLSAgICAgICAgICAgIGlmIFg4Nl82NAotICAgICAgICAgICAgICAgIG1vdmUgdDBH
UFIsIHQ1R1BSCi0gICAgICAgICAgICAgICAgbG9hZGkgbWVtLCB0MEdQUgotICAgICAgICAgICAg
Lmxvb3A6Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKLSAgICAgICAgICAgICAg
ICBmbmkodDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgICAgIGJhdG9taWN3ZWFrY2FzaSB0MEdQ
UiwgdDJHUFIsIG1lbSwgLmxvb3AKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIC5sb29w
OgotICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxaSBtZW0sIHQxR1BSCi0gICAgICAgICAgICAg
ICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAgICAgc3RvcmVjb25kcmVs
aSB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9v
cAotICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0gICAgICAgICAgICBlbmQKLSAg
ICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KQotICAgICAgICAgICAgaWYgWDg2XzY0Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVH
UFIKLSAgICAgICAgICAgICAgICBsb2FkcSBtZW0sIHQwR1BSCi0gICAgICAgICAgICAubG9vcDoK
LSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgotICAgICAgICAgICAgICAgIGZucSh0
NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAgICAgYmF0b21pY3dlYWtjYXNxIHQwR1BSLCB0MkdQ
UiwgbWVtLCAubG9vcAotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgLmxvb3A6Ci0gICAg
ICAgICAgICAgICAgbG9hZGxpbmthY3FxIG1lbSwgdDFHUFIKLSAgICAgICAgICAgICAgICBmbnEo
dDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgICAgICBzdG9yZWNvbmRyZWxxIHQ1R1BS
LCB0MkdQUiwgbWVtCi0gICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCi0gICAg
ICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAgICAgICAgICAgIGVuZAotICAgICAgICBl
bmQpCi1lbmQKLQotaWYgWDg2XzY0Ci0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfYWRkLCBB
ZGQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21p
Y3hjaGdhZGRiIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQ
UiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaCB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAg
bWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGkgdDBH
UFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFH
UFIpIGF0b21pY3hjaGdhZGRxIHQwR1BSLCBtZW0gZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlS
TVdPcHMoX3N1YiwgU3ViLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIs
IHQxR1BSKSBhdG9taWN4Y2hnc3ViYiB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBH
UFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1YmggdDBHUFIsIG1lbSBl
bmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21p
Y3hjaGdzdWJpIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQ
UiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3VicSB0MEdQUiwgbWVtIGVuZCkKLSAgICB3YXNt
QXRvbWljQmluYXJ5Uk1XT3BzKF94Y2hnLCBYY2hnLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYiB0MEdQUiwgbWVtIGVuZCwKLSAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2ggdDBH
UFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFH
UFIpIGF0b21pY3hjaGdpIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hncSB0MEdQUiwgbWVtIGVuZCkKLSAgICB3
YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FuZCwgQW5kLAotICAgICAgICBtYWNy
byh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBhbmRpIHQ1R1BSLCB0MkdQUgotICAgICAgICBl
bmQsCi0gICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgIGFuZHEgdDVHUFIs
IHQyR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtD
QVMoX29yLCBPciwKLSAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgb3Jp
IHQ1R1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikK
LSAgICAgICAgICAgIG9ycSB0NUdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9t
aWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeG9yLCBYb3IsCi0gICAgICAgIG1hY3JvKHQ1R1BS
LCB0MkdQUikKLSAgICAgICAgICAgIHhvcmkgdDVHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAg
ICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgeG9ycSB0NUdQUiwgdDJHUFIK
LSAgICAgICAgZW5kKQotZWxzaWYgQVJNNjRFCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhf
YWRkLCBBZGQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIp
IGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBH
UFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGggdDBHUFIsIG1lbSwg
dDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KSBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQw
R1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRxIHQwR1BSLCBtZW0s
IHQwR1BSIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9zdWIsIFN1YiwKLSAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIG5l
Z3EgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0sIHQwR1BSCi0g
ICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikKLSAgICAgICAgICAgIG5lZ3EgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdhZGRoIHQw
R1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwg
dDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIG5lZ3EgdDBHUFIKLSAgICAgICAgICAg
IGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAg
bWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIG5lZ3Eg
dDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdhZGRxIHQwR1BSLCBtZW0sIHQwR1BSCi0gICAg
ICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9hbmQsIEFuZCwKLSAgICAgICAg
bWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIG5vdHEg
dDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcmIgdDBHUFIsIG1lbSwgdDBHUFIKLSAg
ICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KQotICAgICAgICAgICAgbm90cSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFyaCB0
MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBub3RxIHQwR1BSCi0gICAgICAgICAg
ICBhdG9taWN4Y2hnY2xlYXJpIHQwR1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCwKLSAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIG5v
dHEgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcnEgdDBHUFIsIG1lbSwgdDBHUFIK
LSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX29yLCBPciwKLSAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29yYiB0
MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcmggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnb3JpIHQw
R1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1
R1BSLCB0MUdQUikgYXRvbWljeGNoZ29ycSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQpCi0gICAgd2Fz
bUF0b21pY0JpbmFyeVJNV09wcyhfeG9yLCBYb3IsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JiIHQwR1BSLCBtZW0sIHQwR1BSIGVu
ZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWlj
eGNoZ3hvcmggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9yaSB0MEdQUiwgbWVtLCB0MEdQUiBl
bmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21p
Y3hjaGd4b3JxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1X
T3BzKF94Y2hnLCBYY2hnLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIs
IHQxR1BSKSBhdG9taWN4Y2hnYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdoIHQwR1BSLCBtZW0s
IHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikgYXRvbWljeGNoZ2kgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hncSB0MEdQUiwgbWVtLCB0MEdQ
UiBlbmQpCi1lbHNlCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9hZGQs
IEFkZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIGFk
ZGkgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BS
LCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBhZGRxIHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAg
ICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfc3ViLCBT
dWIsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBzdWJp
IHQxR1BSLCB0MEdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwg
dDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgc3VicSB0MUdQUiwgdDBHUFIsIHQyR1BSCi0gICAg
ICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3hjaGcsIFhj
aGcsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBtb3Zl
IHQwR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwg
dDJHUFIpCi0gICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgotICAgICAgICBlbmQpCi0gICAg
d2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9hbmQsIEFuZCwKLSAgICAgICAgbWFj
cm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIGFuZGkgdDBHUFIsIHQxR1BSLCB0
MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0g
ICAgICAgICAgICBhbmRxIHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQotICAgIHdh
c21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfb3IsIE9yLAotICAgICAgICBtYWNybyh0
MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgb3JpIHQwR1BSLCB0MUdQUiwgdDJHUFIK
LSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAg
ICAgICAgb3JxIHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9t
aWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeG9yLCBYb3IsCi0gICAgICAgIG1hY3JvKHQwR1BS
LCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICB4b3JpIHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAg
ICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAg
ICAgeG9ycSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLWVuZAotCi1tYWNybyB3
YXNtQXRvbWljQ29tcGFyZUV4Y2hhbmdlT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bj
b2RlLCBmbmIsIGZuaCwgZm5pLCBmbnEpCi0gICAgd2FzbU9wKGk2NF9hdG9taWNfcm13OCVsb3dl
ckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNy
byhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdnZXR1
KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkK
LSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAgICAgIGVtaXRDaGVja0FuZFBy
ZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KGN0eCwgdDMsIHQxLCAxKQotICAgICAgICBmbmIodDAs
IHQyLCBbdDNdLCB0NSwgdDEpCi0gICAgICAgIGFuZHEgMHhmZiwgdDAgIyBGSVhNRTogWmVyb0V4
dGVuZDhUbzY0Ci0gICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmYsIC5vayBl
bmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi0gICAgd2FzbU9wKGk2NF9h
dG9taWNfcm13MTYlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MTYldXBwZXJD
YXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0
MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShjdHgs
IG1fZXhwZWN0ZWQsIHQwKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICAg
ICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hl
Y2soY3R4LCB0MywgdDEsIDIpCi0gICAgICAgIGZuaCh0MCwgdDIsIFt0M10sIHQ1LCB0MSkKLSAg
ICAgICAgYW5kcSAweGZmZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQxNlRvNjQKLSAgICAgICAg
YXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZmZmLCAub2sgZW5kKQotICAgICAgICByZXR1
cm5xKGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzMyJWxvd2Vy
Q2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNy
byhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdnZXR1
KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkK
LSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAgICAgIGVtaXRDaGVja0FuZFBy
ZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA0
KQotICAgICAgICBmbmkodDAsIHQyLCBbdDNdLCB0NSwgdDEpCi0gICAgICAgIGFzc2VydChtYWNy
byhvaykgYnFiZXEgdDAsIDB4ZmZmZmZmZmYsIC5vayBlbmQpCi0gICAgICAgIHJldHVybnEoY3R4
LCB0MCkKLSAgICBlbmQpCi0gICAgd2FzbU9wKGk2NF9hdG9taWNfcm13JWxvd2VyQ2FzZU9wY29k
ZSUsIFdhc21JNjRBdG9taWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8oY3R4KQotICAgICAg
ICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0
LCB0MSkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCi0gICAgICAgIG1sb2Fk
cShjdHgsIG1fdmFsdWUsIHQyKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFk
ZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgOCkKLSAgICAgICAgZm5x
KHQwLCB0MiwgW3QzXSwgdDUsIHQxKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5k
KQotZW5kCi0KLSMgdDBHUFIgPT4gZXhwZWN0ZWQsIHQyR1BSID0+IHZhbHVlLCBtZW0gPT4gbWVt
b3J5IHJlZmVyZW5jZQotd2FzbUF0b21pY0NvbXBhcmVFeGNoYW5nZU9wcyhfY21weGNoZywgQ21w
eGNoZywKLSAgICBtYWNybyh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BSKQotICAgICAg
ICBpZiBYODZfNjQgb3IgQVJNNjRFCi0gICAgICAgICAgICBicWEgdDBHUFIgLCAweGZmLCAuZmFp
bAotICAgICAgICAgICAgYXRvbWljd2Vha2Nhc2IgdDBHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAg
ICAgIGptcCAuZG9uZQotICAgICAgICAuZmFpbDoKLSAgICAgICAgICAgIGF0b21pY2xvYWRiIG1l
bSwgdDBHUFIKLSAgICAgICAgLmRvbmU6Ci0gICAgICAgIGVsc2UKLSAgICAgICAgLmxvb3A6Ci0g
ICAgICAgICAgICBsb2FkbGlua2FjcWIgbWVtLCB0MUdQUgotICAgICAgICAgICAgYnFuZXEgdDBH
UFIsIHQxR1BSLCAuZmFpbAotICAgICAgICAgICAgc3RvcmVjb25kcmVsYiB0NUdQUiwgdDJHUFIs
IG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGptcCAu
bG9vcAotICAgICAgICAuZmFpbDoKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbGIgdDVHUFIsIHQx
R1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBq
bXAgLmxvb3AKLSAgICAgICAgLmRvbmU6Ci0gICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgot
ICAgICAgICBlbmQKLSAgICBlbmQsCi0gICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BS
LCB0MUdQUikKLSAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQotICAgICAgICAgICAgYnFhIHQw
R1BSLCAweGZmZmYsIC5mYWlsCi0gICAgICAgICAgICBhdG9taWN3ZWFrY2FzaCB0MEdQUiwgdDJH
UFIsIG1lbQotICAgICAgICAgICAgam1wIC5kb25lCi0gICAgICAgIC5mYWlsOgotICAgICAgICAg
ICAgYXRvbWljbG9hZGggbWVtLCB0MEdQUgotICAgICAgICAuZG9uZToKLSAgICAgICAgZWxzZQot
ICAgICAgICAubG9vcDoKLSAgICAgICAgICAgIGxvYWRsaW5rYWNxaCBtZW0sIHQxR1BSCi0gICAg
ICAgICAgICBicW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCi0gICAgICAgICAgICBzdG9yZWNvbmRy
ZWxoIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQot
ICAgICAgICAgICAgam1wIC5sb29wCi0gICAgICAgIC5mYWlsOgotICAgICAgICAgICAgc3RvcmVj
b25kcmVsaCB0NUdQUiwgdDFHUFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRv
bmUKLSAgICAgICAgICAgIGptcCAubG9vcAotICAgICAgICAuZG9uZToKLSAgICAgICAgICAgIG1v
dmUgdDFHUFIsIHQwR1BSCi0gICAgICAgIGVuZAotICAgIGVuZCwKLSAgICBtYWNybyh0MEdQUiwg
dDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BSKQotICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRFCi0g
ICAgICAgICAgICBicWEgdDBHUFIsIDB4ZmZmZmZmZmYsIC5mYWlsCi0gICAgICAgICAgICBhdG9t
aWN3ZWFrY2FzaSB0MEdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgam1wIC5kb25lCi0gICAg
ICAgIC5mYWlsOgotICAgICAgICAgICAgYXRvbWljbG9hZGkgbWVtLCB0MEdQUgotICAgICAgICAu
ZG9uZToKLSAgICAgICAgZWxzZQotICAgICAgICAubG9vcDoKLSAgICAgICAgICAgIGxvYWRsaW5r
YWNxaSBtZW0sIHQxR1BSCi0gICAgICAgICAgICBicW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCi0g
ICAgICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICBi
aWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAgICAgIC5mYWls
OgotICAgICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwgdDFHUFIsIG1lbQotICAgICAgICAg
ICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGptcCAubG9vcAotICAgICAgICAu
ZG9uZToKLSAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0gICAgICAgIGVuZAotICAgIGVu
ZCwKLSAgICBtYWNybyh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BSKQotICAgICAgICBp
ZiBYODZfNjQgb3IgQVJNNjRFCi0gICAgICAgICAgICBhdG9taWN3ZWFrY2FzcSB0MEdQUiwgdDJH
UFIsIG1lbQotICAgICAgICBlbHNlCi0gICAgICAgIC5sb29wOgotICAgICAgICAgICAgbG9hZGxp
bmthY3FxIG1lbSwgdDFHUFIKLSAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwK
LSAgICAgICAgICAgIHN0b3JlY29uZHJlbHEgdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAg
IGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBqbXAgLmxvb3AKLSAgICAgICAgLmZh
aWw6Ci0gICAgICAgICAgICBzdG9yZWNvbmRyZWxxIHQ1R1BSLCB0MUdQUiwgbWVtCi0gICAgICAg
ICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAgICAg
IC5kb25lOgotICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAgICAgICAgZW5kCi0gICAg
ZW5kKQotCiB3YXNtT3AoYXRvbWljX2ZlbmNlLCBXYXNtRHJvcEtlZXAsIG1hY3JvKGN0eCkKICAg
ICBmZW5jZQogICAgIGRpc3BhdGNoKGN0eCkKQEAgLTI4NDcsOSArMTc3NywxNCBAQCBtYWNybyBj
b21tb25DYXRjaEltcGwoY3R4LCBzdG9yZVdhc21JbnN0YW5jZSkKICAgICBjb252ZXJ0Q2FsbGVl
VG9WTSh0MykKICAgICByZXN0b3JlQ2FsbGVlU2F2ZXNGcm9tVk1FbnRyeUZyYW1lQ2FsbGVlU2F2
ZXNCdWZmZXIodDMsIHQwKQogCi0gICAgbG9hZHAgVk06OmNhbGxlZUZvcldhc21DYXRjaFt0M10s
IHdzMQotICAgIHN0b3JlcCAwLCBWTTo6Y2FsbGVlRm9yV2FzbUNhdGNoW3QzXQotICAgIHN0b3Jl
cCB3czEsIENhbGxlZVtjZnJdCisgICAgbG9hZHAgVk06OmNhbGxlZUZvcldhc21DYXRjaCArIFBh
eWxvYWRPZmZzZXRbdDNdLCB3czEKKyAgICBzdG9yZXAgMCwgVk06OmNhbGxlZUZvcldhc21DYXRj
aCArIFBheWxvYWRPZmZzZXRbdDNdCisgICAgc3RvcmVwIHdzMSwgQ2FsbGVlICsgUGF5bG9hZE9m
ZnNldFtjZnJdCitpZiBub3QgSlNWQUxVRTY0CisgICAgbG9hZGkgVk06OmNhbGxlZUZvcldhc21D
YXRjaCArIFRhZ09mZnNldFt0M10sIHdzMQorICAgIHN0b3JlaSBFbXB0eVZhbHVlVGFnLCBWTTo6
Y2FsbGVlRm9yV2FzbUNhdGNoICsgVGFnT2Zmc2V0W3QzXQorICAgIHN0b3JlaSB3czEsIENhbGxl
ZSArIFRhZ09mZnNldFtjZnJdCitlbmQKIAogICAgIGxvYWRwIFZNOjpjYWxsRnJhbWVGb3JDYXRj
aFt0M10sIGNmcgogICAgIHN0b3JlcCAwLCBWTTo6Y2FsbEZyYW1lRm9yQ2F0Y2hbdDNdCkBAIC0y
ODg4LDggKzE4MjMsMTMgQEAgbWFjcm8gY2F0Y2hJbXBsKGN0eCwgc3RvcmVXYXNtSW5zdGFuY2Up
CiAKIC5jb3B5TG9vcDoKICAgICBidGl6IHQzLCAuZG9uZQoraWYgSlNWQUxVRTY0CiAgICAgbG9h
ZHEgW3QxXSwgdDYKICAgICBzdG9yZXEgdDYsIFt0Ml0KK2Vsc2UKKyAgICBsb2FkMmlhIFt0MV0s
IHQ1LCB0NgorICAgIHN0b3JlMmlhIHQ1LCB0NiwgW3QyXQorZW5kCiAgICAgc3ViaSAxLCB0Mwog
ICAgICMgRklYTUU6IFVzZSBhcm0gc3RvcmUtYWRkL3N1YiBpbnN0cnVjdGlvbnMgaW4gd2FzbSBM
TEludCBjYXRjaAogICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTIxMApAQCAtMjkxNywzICsxODU3LDEwIEBAIGVuZCkKIGNvbW1vbldhc21PcCh3YXNtX2Nh
dGNoX2FsbF9ub190bHMsIFdhc21DYXRjaEFsbCwgbWFjcm8oKSBlbmQsIG1hY3JvKGN0eCkKICAg
ICBjYXRjaEFsbEltcGwoY3R4LCBtYWNybyhpbnN0YW5jZSkgZW5kKQogZW5kKQorCisjIFZhbHVl
LXJlcHJlc2VudGF0aW9uLXNwZWNpZmljIGNvZGUuCitpZiBKU1ZBTFVFNjQKKyAgICBpbmNsdWRl
IFdlYkFzc2VtYmx5NjQKK2Vsc2UKKyAgICBpbmNsdWRlIFdlYkFzc2VtYmx5MzJfNjQKK2VuZApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5MzJfNjQu
YXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5MzJfNjQuYXNtCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZWMxODlmOTc2M2U3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5MzJf
NjQuYXNtCkBAIC0wLDAgKzEsMTEyOSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEtMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEg
Uy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworIyBDb25zdGFudHMKKworY29uc3QgTXN3T2Zmc2V0ID0gNAorY29uc3QgTHN3
T2Zmc2V0ID0gMAorCisjIE9wY29kZXMgdGhhdCBzaG91bGQgZXZlbnR1YWxseSBiZSBzaGFyZWQg
d2l0aCBKUyBsbGludAorCit3YXNtT3AobW92LCBXYXNtTW92LCBtYWNybyhjdHgpCisgICAgbWxv
YWQyaShjdHgsIG1fc3JjLCB0MSwgdDApCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQp
CisKKyMgV2FzbSBzcGVjaWZpYyBieXRlY29kZXMKKworbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFy
ZVBvaW50ZXJBZGRpbmdPZmZzZXQocG9pbnRlciwgb2Zmc2V0LCBzaXplKQorICAgICMgVGhpcyBt
YWNybyB1cGRhdGVzICdwb2ludGVyJyB0byB0YXJnZXQgYWRkcmVzcywgYW5kIG1heSB0aHJhc2gg
J29mZnNldCcKK2lmIEFSTXY3CisgICAgIyBOb3QgZW5vdWdoIHJlZ2lzdGVycyBvbiBhcm0gdG8g
a2VlcCB0aGUgbWVtb3J5IGJhc2UgYW5kIHNpemUgaW4gcGlubmVkCisgICAgIyByZWdpc3RlcnMs
IHNvIGxvYWQgdGhlbSBvbiBlYWNoIGFjY2VzcyBpbnN0ZWFkLiBGSVhNRTogaW1wcm92ZSB0aGlz
LgorICAgIGFkZHBzIG9mZnNldCwgcG9pbnRlcgorICAgIGJjcyAudGhyb3cKKyAgICBhZGRwcyBz
aXplIC0gMSwgcG9pbnRlciwgb2Zmc2V0ICMgVXNlIG9mZnNldCBhcyBzY3JhdGNoIHJlZ2lzdGVy
CisgICAgYmNzIC50aHJvdworICAgIGJwYiBvZmZzZXQsIFdhc206Okluc3RhbmNlOjptX2NhY2hl
ZEJvdW5kc0NoZWNraW5nU2l6ZVt3YXNtSW5zdGFuY2VdLCAuY29udGludWF0aW9uCisudGhyb3c6
CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCisuY29udGludWF0
aW9uOgorICAgIGFkZHAgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkTWVtb3J5W3dhc21JbnN0YW5j
ZV0sIHBvaW50ZXIKK2Vsc2UKKyAgICBjcmFzaCgpCitlbmQKK2VuZAorCittYWNybyBlbWl0Q2hl
Y2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhwb2ludGVy
LCBvZmZzZXQsIHNpemUpCisgICAgIyBUaGlzIG1hY3JvIHVwZGF0ZXMgJ3BvaW50ZXInIHRvIHRh
cmdldCBhZGRyZXNzLCBhbmQgbWF5IHRocmFzaCAnb2Zmc2V0JworaWYgQVJNdjcKKyAgICAjIE5v
dCBlbm91Z2ggcmVnaXN0ZXJzIG9uIGFybSB0byBrZWVwIHRoZSBtZW1vcnkgYmFzZSBhbmQgc2l6
ZSBpbiBwaW5uZWQKKyAgICAjIHJlZ2lzdGVycywgc28gbG9hZCB0aGVtIG9uIGVhY2ggYWNjZXNz
IGluc3RlYWQuIEZJWE1FOiBpbXByb3ZlIHRoaXMuCisgICAgYWRkcHMgb2Zmc2V0LCBwb2ludGVy
CisgICAgYmNzIC50aHJvdworICAgIGFkZHBzIHNpemUgLSAxLCBwb2ludGVyLCBvZmZzZXQgIyBV
c2Ugb2Zmc2V0IGFzIHNjcmF0Y2ggcmVnaXN0ZXIKKyAgICBiY3MgLnRocm93CisgICAgYnBiIG9m
ZnNldCwgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplW3dhc21JbnN0
YW5jZV0sIC5jb250aW51YXRpb24KKy50aHJvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJv
dW5kc01lbW9yeUFjY2VzcykKKy5jb250aW51YXRpb246CisgICAgYWRkcCBXYXNtOjpJbnN0YW5j
ZTo6bV9jYWNoZWRNZW1vcnlbd2FzbUluc3RhbmNlXSwgcG9pbnRlcgorICAgIGJ0cG56IHBvaW50
ZXIsIChzaXplIC0gMSksIC50aHJvdworZWxzZQorICAgIGNyYXNoKCkKK2VuZAorZW5kCisKK21h
Y3JvIHdhc21Mb2FkT3AobmFtZSwgc3RydWN0LCBzaXplLCBmbikKKyAgICB3YXNtT3AobmFtZSwg
c3RydWN0LCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDApCisg
ICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVw
YXJlUG9pbnRlckFkZGluZ09mZnNldCh0MCwgdDEsIHNpemUpCisgICAgICAgIGZuKHQwLCB0Mywg
dDIpCisgICAgICAgIHJldHVybjJpKGN0eCwgdDMsIHQyKQorICAgIGVuZCkKK2VuZAorCit3YXNt
TG9hZE9wKGxvYWQ4X3UsIFdhc21Mb2FkOFUsIDEsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3
KQorICAgIGxvYWRiIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAgbW92ZSAwLCBkc3RNc3cK
K2VuZCkKK3dhc21Mb2FkT3AobG9hZDE2X3UsIFdhc21Mb2FkMTZVLCAyLCBtYWNybyhhZGRyLCBk
c3RNc3csIGRzdExzdykKKyAgICBsb2FkaCBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAgIG1v
dmUgMCwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGxvYWQzMl91LCBXYXNtTG9hZDMyVSwgNCwg
bWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGkgTHN3T2Zmc2V0W2FkZHJdLCBk
c3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdworZW5kKQord2FzbUxvYWRPcChsb2FkNjRfdSwgV2Fz
bUxvYWQ2NFUsIDgsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgICMgTWlnaHQgYmUg
dW5hbGlnbmVkLCBzbyBjYW4ndCB1c2UgbG9hZDJpYQorICAgIGxvYWRpIExzd09mZnNldFthZGRy
XSwgZHN0THN3CisgICAgbG9hZGkgTXN3T2Zmc2V0W2FkZHJdLCBkc3RNc3cKK2VuZCkKKword2Fz
bUxvYWRPcChpMzJfbG9hZDhfcywgV2FzbUkzMkxvYWQ4UywgMSwgbWFjcm8oYWRkciwgZHN0TXN3
LCBkc3RMc3cpCisgICAgbG9hZGJzaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAgIG1vdmUg
MCwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGkzMl9sb2FkMTZfcywgV2FzbUkzMkxvYWQxNlMs
IDIsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRoc2kgTHN3T2Zmc2V0W2Fk
ZHJdLCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdworZW5kKQord2FzbUxvYWRPcChpNjRfbG9h
ZDhfcywgV2FzbUk2NExvYWQ4UywgMSwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAg
bG9hZGJzaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAgIHJzaGlmdGkgZHN0THN3LCAzMSwg
ZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGk2NF9sb2FkMTZfcywgV2FzbUk2NExvYWQxNlMsIDIs
IG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRoc2kgTHN3T2Zmc2V0W2FkZHJd
LCBkc3RMc3cKKyAgICByc2hpZnRpIGRzdExzdywgMzEsIGRzdE1zdworZW5kKQord2FzbUxvYWRP
cChpNjRfbG9hZDMyX3MsIFdhc21JNjRMb2FkMzJTLCA0LCBtYWNybyhhZGRyLCBkc3RNc3csIGRz
dExzdykKKyAgICBsb2FkaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAgIHJzaGlmdGkgZHN0
THN3LCAzMSwgZHN0TXN3CitlbmQpCisKK21hY3JvIHdhc21TdG9yZU9wKG5hbWUsIHN0cnVjdCwg
c2l6ZSwgZm4pCisgICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQorICAgICAgICBt
bG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0
MSkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQodDAsIHQx
LCBzaXplKQorICAgICAgICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwgdDMsIHQyKQorICAgICAgICBm
bih0MywgdDIsIHQwKQorICAgICAgICBkaXNwYXRjaChjdHgpCisgICAgZW5kKQorZW5kCisKK3dh
c21TdG9yZU9wKHN0b3JlOCwgV2FzbVN0b3JlOCwgMSwgbWFjcm8oc3JjTXN3LCBzcmNMc3csIGFk
ZHIpCisgICAgc3RvcmViIHNyY0xzdywgTHN3T2Zmc2V0W2FkZHJdCitlbmQpCit3YXNtU3RvcmVP
cChzdG9yZTE2LCBXYXNtU3RvcmUxNiwgMiwgbWFjcm8oc3JjTXN3LCBzcmNMc3csIGFkZHIpCisg
ICAgc3RvcmVoIHNyY0xzdywgTHN3T2Zmc2V0W2FkZHJdCitlbmQpCit3YXNtU3RvcmVPcChzdG9y
ZTMyLCBXYXNtU3RvcmUzMiwgNCwgbWFjcm8oc3JjTXN3LCBzcmNMc3csIGFkZHIpCisgICAgc3Rv
cmVpIHNyY0xzdywgTHN3T2Zmc2V0W2FkZHJdCitlbmQpCit3YXNtU3RvcmVPcChzdG9yZTY0LCBX
YXNtU3RvcmU2NCwgOCwgbWFjcm8oc3JjTXN3LCBzcmNMc3csIGFkZHIpCisgICAgIyBNaWdodCBi
ZSB1bmFsaWduZWQsIHNvIGNhbid0IHVzZSBzdG9yZTJpYQorICAgIHN0b3JlaSBzcmNMc3csIExz
d09mZnNldFthZGRyXQorICAgIHN0b3JlaSBzcmNNc3csIE1zd09mZnNldFthZGRyXQorZW5kKQor
Cit3YXNtT3AocmVmX2lzX251bGwsIFdhc21SZWZJc051bGwsIG1hY3JvKGN0eCkKKyAgICBtbG9h
ZDJpKGN0eCwgbV9yZWYsIHQxLCB0MCkgIyB0MCBpcyB1bnVzZWQKKyAgICBjaWVxIHQxLCBOdWxs
VGFnLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGdldF9nbG9iYWws
IFdhc21HZXRHbG9iYWwsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9n
bG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0
MSkKKyAgICBsb2FkMmlhIFt0MCwgdDEsIDhdLCB0MCwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQx
LCB0MCkKK2VuZCkKKword2FzbU9wKHNldF9nbG9iYWwsIFdhc21TZXRHbG9iYWwsIG1hY3JvKGN0
eCkKKyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQw
CisgICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBtbG9hZDJpKGN0eCwgbV92
YWx1ZSwgdDMsIHQyKQorICAgIHN0b3JlMmlhIHQyLCB0MywgW3QwLCB0MSwgOF0KKyAgICBkaXNw
YXRjaChjdHgpCitlbmQpCisKK3dhc21PcChnZXRfZ2xvYmFsX3BvcnRhYmxlX2JpbmRpbmcsIFdh
c21HZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJ
bnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4LCBtX2ds
b2JhbEluZGV4LCB0MSkKKyAgICBsb2FkcCBbdDAsIHQxLCA4XSwgdDAKKyAgICBsb2FkMmlhIFt0
MF0sIHQwLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3Aoc2V0
X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNtU2V0R2xvYmFsUG9ydGFibGVCaW5kaW5nLCBt
YWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFu
Y2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbWxvYWQyaShj
dHgsIG1fdmFsdWUsIHQzLCB0MikKKyAgICBsb2FkcCBbdDAsIHQxLCA4XSwgdDAKKyAgICBzdG9y
ZTJpYSB0MiwgdDMsIFt0MF0KKyAgICBkaXNwYXRjaChjdHgpCitlbmQpCisKKyMgT3Bjb2RlcyB0
aGF0IGRvbid0IGhhdmUgdGhlIGBiM29wYCBlbnRyeSBpbiB3YXNtLmpzb24uIFRoaXMgc2hvdWxk
IGJlIGtlcHQgaW4gc3luYworCittYWNybyBjYWxsRGl2UmVtKGZuKQoraWYgQVJNdjcKKyAgICBz
dWJwIFN0YWNrQWxpZ25tZW50LCBzcAorICAgIHN0b3JlcCBQQywgW3NwXQorICAgIGNDYWxsNChm
bikKKyAgICBsb2FkcCBbc3BdLCBQQworICAgIGFkZHAgU3RhY2tBbGlnbm1lbnQsIHNwCitlbHNl
CisgICAgZXJyb3IKK2VuZAorZW5kCisKKyMgaTMyIGJpbmFyeSBvcHMKKword2FzbU9wKGkzMl9k
aXZfcywgV2FzbUkzMkRpdlMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9saHMsIGEw
KQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCBhMSkKKworICAgIGJ0aXogYTEsIC50aHJvd0Rpdmlz
aW9uQnlaZXJvCisKKyAgICBiaW5lcSBhMSwgLTEsIC5zYWZlCisgICAgYmllcSBhMCwgY29uc3Rl
eHByIElOVDMyX01JTiwgLnRocm93SW50ZWdlck92ZXJmbG93CisKKy5zYWZlOgorICAgIGNhbGxE
aXZSZW0oX3Nsb3dfcGF0aF93YXNtX2kzMl9kaXZfcykKKyAgICByZXR1cm5pKGN0eCwgcjApCisK
Ky50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJv
KQorCisudGhyb3dJbnRlZ2VyT3ZlcmZsb3c6CisgICAgdGhyb3dFeGNlcHRpb24oSW50ZWdlck92
ZXJmbG93KQorZW5kKQorCit3YXNtT3AoaTMyX2Rpdl91LCBXYXNtSTMyRGl2VSwgbWFjcm8gKGN0
eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgYTApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIGEx
KQorCisgICAgYnRpeiBhMSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGNhbGxEaXZSZW0o
X3Nsb3dfcGF0aF93YXNtX2kzMl9kaXZfdSkKKyAgICByZXR1cm5pKGN0eCwgcjApCisKKy50aHJv
d0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5k
KQorCit3YXNtT3AoaTMyX3JlbV9zLCBXYXNtSTMyUmVtUywgbWFjcm8gKGN0eCkKKyAgICBtbG9h
ZGkoY3R4LCBtX2xocywgYTApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIGExKQorCisgICAgYnRp
eiBhMSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGJpbmVxIGExLCAtMSwgLnNhZmUKKyAg
ICBiaW5lcSBhMCwgY29uc3RleHByIElOVDMyX01JTiwgLnNhZmUKKworICAgIG1vdmUgMCwgcjAK
KyAgICBqbXAgLnJldHVybgorCisuc2FmZToKKyAgICBjYWxsRGl2UmVtKF9zbG93X3BhdGhfd2Fz
bV9pMzJfcmVtX3MpCisKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHIwKQorCisudGhyb3dE
aXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkK
Kword2FzbU9wKGkzMl9yZW1fdSwgV2FzbUkzMlJlbVUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRp
KGN0eCwgbV9saHMsIGEwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCBhMSkKKworICAgIGJ0aXog
YTEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBjYWxsRGl2UmVtKF9zbG93X3BhdGhfd2Fz
bV9pMzJfcmVtX3UpCisgICAgcmV0dXJuaShjdHgsIHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVy
bzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKworIyBpNjQgYmlu
YXJ5IG9wcworCit3YXNtT3AoaTY0X2FkZCwgV2FzbUk2NEFkZCwgbWFjcm8oY3R4KQorICAgIG1s
b2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQy
KQorICAgIGFkZGlzIHQyLCB0MAorICAgIGFkY2kgIHQzLCB0MQorICAgIHJldHVybjJpKGN0eCwg
dDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3N1YiwgV2FzbUk2NFN1YiwgbWFjcm8oY3R4KQor
ICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3Jocywg
dDMsIHQyKQorICAgIHN1YmlzIHQyLCB0MAorICAgIHNiY2kgIHQzLCB0MQorICAgIHJldHVybjJp
KGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X211bCwgV2FzbUk2NE11bCwgbWFjcm8o
Y3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBt
X3JocywgdDMsIHQyKQorICAgIG11bGkgdDIsIHQxCisgICAgbXVsaSB0MCwgdDMKKyAgICB1bXVs
bGkgdDAsIHQyLCB0MCwgdDIKKyAgICBhZGRpIHQxLCB0MgorICAgIGFkZGkgdDMsIHQyCisgICAg
cmV0dXJuMmkoY3R4LCB0MiwgdDApCitlbmQpCisKK3dhc21PcChpNjRfZGl2X3MsIFdhc21JNjRE
aXZTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgYTEsIGEwKQorICAgIG1s
b2FkMmkoY3R4LCBtX3JocywgYTMsIGEyKQorCisgICAgYnRpbnogYTMsIC5ub25aZXJvRGl2aXNv
cgorICAgIGJ0aXogYTIsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKy5ub25aZXJvRGl2aXNvcjoK
KyAgICBiaW5lcSBhMywgLTEsIC5zYWZlCisgICAgYmluZXEgYTIsIC0xLCAuc2FmZQorICAgIGJp
bmVxIGExLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAuc2FmZQorICAgIGJ0aXogYTAsIC50aHJvd0lu
dGVnZXJPdmVyZmxvdworCisuc2FmZToKKyAgICBjYWxsRGl2UmVtKF9zbG93X3BhdGhfd2FzbV9p
NjRfZGl2X3MpCisgICAgcmV0dXJuMmkoY3R4LCByMSwgcjApCisKKy50aHJvd0RpdmlzaW9uQnla
ZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorCisudGhyb3dJbnRlZ2Vy
T3ZlcmZsb3c6CisgICAgdGhyb3dFeGNlcHRpb24oSW50ZWdlck92ZXJmbG93KQorZW5kKQorCit3
YXNtT3AoaTY0X2Rpdl91LCBXYXNtSTY0RGl2VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZDJpKGN0
eCwgbV9saHMsIGExLCBhMCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIGEzLCBhMikKKworICAg
IGJ0aW56IGEzLCAubm9uWmVyb0Rpdmlzb3IKKyAgICBidGl6IGEyLCAudGhyb3dEaXZpc2lvbkJ5
WmVybworCisubm9uWmVyb0Rpdmlzb3I6CisgICAgY2FsbERpdlJlbShfc2xvd19wYXRoX3dhc21f
aTY0X2Rpdl91KQorICAgIHJldHVybjJpKGN0eCwgcjEsIHIwKQorCisudGhyb3dEaXZpc2lvbkJ5
WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9w
KGk2NF9yZW1fcywgV2FzbUk2NFJlbVMsIG1hY3JvIChjdHgpCisgICAgbWxvYWQyaShjdHgsIG1f
bGhzLCBhMSwgYTApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCBhMywgYTIpCisKKyAgICBidGlu
eiBhMywgLm5vblplcm9EaXZpc29yCisgICAgYnRpeiBhMiwgLnRocm93RGl2aXNpb25CeVplcm8K
KworLm5vblplcm9EaXZpc29yOgorICAgIGJpbmVxIGEzLCAtMSwgLnNhZmUKKyAgICBiaW5lcSBh
MiwgLTEsIC5zYWZlCisgICAgYmluZXEgYTEsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC5zYWZlCisg
ICAgYnRpbnogYTAsIC5zYWZlCisKKyAgICBtb3ZlIDAsIHIxCisgICAgbW92ZSAwLCByMAorICAg
IGptcCAucmV0dXJuCisKKy5zYWZlOgorICAgIGNhbGxEaXZSZW0oX3Nsb3dfcGF0aF93YXNtX2k2
NF9yZW1fcykKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIHIxLCByMCkKKworLnRocm93
RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQp
CisKK3dhc21PcChpNjRfcmVtX3UsIFdhc21JNjRSZW1VLCBtYWNybyAoY3R4KQorICAgIG1sb2Fk
MmkoY3R4LCBtX2xocywgYTEsIGEwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgYTMsIGEyKQor
CisgICAgYnRpbnogYTMsIC5ub25aZXJvRGl2aXNvcgorICAgIGJ0aXogYTIsIC50aHJvd0Rpdmlz
aW9uQnlaZXJvCisKKy5ub25aZXJvRGl2aXNvcjoKKyAgICBjYWxsRGl2UmVtKF9zbG93X3BhdGhf
d2FzbV9pNjRfcmVtX3UpCisgICAgcmV0dXJuMmkoY3R4LCByMSwgcjApCisKKy50aHJvd0Rpdmlz
aW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCit3
YXNtT3AoaTY0X2FuZCwgV2FzbUk2NEFuZCwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBt
X2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIGFuZGkg
dDIsIHQwCisgICAgYW5kaSB0MywgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkK
Kword2FzbU9wKGk2NF9vciwgV2FzbUk2NE9yLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgs
IG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgb3Jp
IHQyLCB0MAorICAgIG9yaSB0MywgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkK
Kword2FzbU9wKGk2NF94b3IsIFdhc21JNjRYb3IsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0
eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICB4
b3JpIHQyLCB0MAorICAgIHhvcmkgdDMsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitl
bmQpCisKK3dhc21PcChpNjRfc2hsLCBXYXNtSTY0U2hsLCBtYWNybyhjdHgpCisgICAgbWxvYWQy
aShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQyKQorCisgICAg
YW5kaSAweDNmLCB0MgorICAgIGJ0aXogdDIsIC5yZXR1cm4KKyAgICBiaWIgdDIsIDMyLCAubGVz
c1RoYW4zMgorCisgICAgc3ViaSAzMiwgdDIKKyAgICBsc2hpZnRpIHQwLCB0MiwgdDEKKyAgICBt
b3ZlIDAsIHQwCisgICAgam1wIC5yZXR1cm4KKworLmxlc3NUaGFuMzI6CisgICAgbHNoaWZ0aSB0
MiwgdDEKKyAgICBtb3ZlIDMyLCB0MworICAgIHN1YmkgdDIsIHQzCisgICAgdXJzaGlmdGkgdDAs
IHQzLCB0MworICAgIG9yaSB0MywgdDEKKyAgICBsc2hpZnRpIHQyLCB0MAorCisucmV0dXJuOgor
ICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3Nocl91LCBXYXNt
STY0U2hyVSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAg
IG1sb2FkaShjdHgsIG1fcmhzLCB0MikKKworICAgIGFuZGkgMHgzZiwgdDIKKyAgICBidGl6IHQy
LCAucmV0dXJuCisgICAgYmliIHQyLCAzMiwgLmxlc3NUaGFuMzIKKworICAgIHN1YmkgMzIsIHQy
CisgICAgdXJzaGlmdGkgdDEsIHQyLCB0MAorICAgIG1vdmUgMCwgdDEKKyAgICBqbXAgLnJldHVy
bgorCisubGVzc1RoYW4zMjoKKyAgICB1cnNoaWZ0aSB0MiwgdDAKKyAgICBtb3ZlIDMyLCB0Mwor
ICAgIHN1YmkgdDIsIHQzCisgICAgbHNoaWZ0aSB0MSwgdDMsIHQzCisgICAgb3JpIHQzLCB0MAor
ICAgIHVyc2hpZnRpIHQyLCB0MQorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgdDEsIHQw
KQorZW5kKQorCit3YXNtT3AoaTY0X3Nocl9zLCBXYXNtSTY0U2hyUywgbWFjcm8oY3R4KQorICAg
IG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MikK
KworICAgIGFuZGkgMHgzZiwgdDIKKyAgICBidGl6IHQyLCAucmV0dXJuCisgICAgYmliIHQyLCAz
MiwgLmxlc3NUaGFuMzIKKworICAgIHN1YmkgMzIsIHQyCisgICAgcnNoaWZ0aSB0MSwgdDIsIHQw
CisgICAgcnNoaWZ0aSAzMSwgdDEKKyAgICBqbXAgLnJldHVybgorCisubGVzc1RoYW4zMjoKKyAg
ICB1cnNoaWZ0aSB0MiwgdDAKKyAgICBtb3ZlIDMyLCB0MworICAgIHN1YmkgdDIsIHQzCisgICAg
bHNoaWZ0aSB0MSwgdDMsIHQzCisgICAgb3JpIHQzLCB0MAorICAgIHJzaGlmdGkgdDIsIHQxCisK
Ky5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRf
cm90ciwgV2FzbUk2NFJvdHIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQx
LCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDIpCisKKyAgICBhbmRpIHQyLCAweDIwLCB0
MworICAgIGJ0aXogdDMsIC5ub1N3YXAKKworICAgIG1vdmUgdDAsIHQzCisgICAgbW92ZSB0MSwg
dDAKKyAgICBtb3ZlIHQzLCB0MQorCisubm9Td2FwOgorICAgIGFuZGkgMHgxZiwgdDIKKyAgICBi
dGl6IHQyLCAucmV0dXJuCisKKyAgICBtb3ZlIDMyLCB0NQorICAgIHN1YmkgdDIsIHQ1CisgICAg
bHNoaWZ0aSB0MCwgdDUsIHQzCisgICAgbHNoaWZ0aSB0MSwgdDUsIHQ1CisgICAgdXJzaGlmdGkg
dDIsIHQwCisgICAgdXJzaGlmdGkgdDIsIHQxCisgICAgb3JpIHQ1LCB0MAorICAgIG9yaSB0Mywg
dDEKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9w
KGk2NF9yb3RsLCBXYXNtSTY0Um90bCwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xo
cywgdDEsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MikKKworICAgIGFuZGkgdDIsIDB4
MjAsIHQzCisgICAgYnRpeiB0MywgLm5vU3dhcAorCisgICAgbW92ZSB0MCwgdDMKKyAgICBtb3Zl
IHQxLCB0MAorICAgIG1vdmUgdDMsIHQxCisKKy5ub1N3YXA6CisgICAgYW5kaSAweDFmLCB0Mgor
ICAgIGJ0aXogdDIsIC5yZXR1cm4KKworICAgIG1vdmUgMzIsIHQ1CisgICAgc3ViaSB0MiwgdDUK
KyAgICB1cnNoaWZ0aSB0MCwgdDUsIHQzCisgICAgdXJzaGlmdGkgdDEsIHQ1LCB0NQorICAgIGxz
aGlmdGkgdDIsIHQwCisgICAgbHNoaWZ0aSB0MiwgdDEKKyAgICBvcmkgdDUsIHQwCisgICAgb3Jp
IHQzLCB0MQorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3
YXNtT3AoaTY0X2VxLCBXYXNtSTY0RXEsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9s
aHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDAs
IHQ2CisgICAgYmluZXEgdDEsIHQzLCAucmV0dXJuCisgICAgY2llcSB0MCwgdDIsIHQ2CisucmV0
dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9uZSwgV2FzbUk2
NE5lLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxv
YWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAgIGJpbmVxIHQxLCB0
MywgLnJldHVybgorICAgIGNpbmVxIHQwLCB0MiwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShj
dHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2x0X3MsIFdhc21JNjRMdFMsIG1hY3JvKGN0eCkK
KyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMs
IHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlsdCB0MSwgdDMsIC5yZXR1cm4KKyAgICBt
b3ZlIDAsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWIgdDAsIHQyLCB0Ngor
ICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3
YXNtT3AoaTY0X2xlX3MsIFdhc21JNjRMZVMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwg
bV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3Zl
IDEsIHQ2CisgICAgYmlsdCB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAgYmln
dCB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWJlcSB0MCwgdDIsIHQ2CisgICAgYW5kaSAxLCB0Ngor
LnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRfbHRfdSwg
V2FzbUk2NEx0VSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQor
ICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYKKyAgICBiaWIg
dDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpYSB0MSwgdDMsIC5yZXR1cm4K
KyAgICBjaWIgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJu
aShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2xlX3UsIFdhc21JNjRMZVUsIG1hY3JvKGN0
eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9y
aHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmliIHQxLCB0MywgLnJldHVybgorICAg
IG1vdmUgMCwgdDYKKyAgICBiaWEgdDEsIHQzLCAucmV0dXJuCisgICAgY2liZXEgdDAsIHQyLCB0
NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQor
Cit3YXNtT3AoaTY0X2d0X3MsIFdhc21JNjRHdFMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0
eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBt
b3ZlIDEsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAg
YmlsdCB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWEgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYK
Ky5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2dlX3Ms
IFdhc21JNjRHZVMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkK
KyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmln
dCB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAgYmlsdCB0MSwgdDMsIC5yZXR1
cm4KKyAgICBjaWFlcSB0MCwgdDIsIHQ2CisgICAgYW5kaSAxLCB0NgorLnJldHVybjoKKyAgICBy
ZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRfZ3RfdSwgV2FzbUk2NEd0VSwgbWFj
cm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4
LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYKKyAgICBiaWEgdDEsIHQzLCAucmV0dXJu
CisgICAgbW92ZSAwLCB0NgorICAgIGJpYiB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWEgdDAsIHQy
LCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5k
KQorCit3YXNtT3AoaTY0X2dlX3UsIFdhc21JNjRHZVUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJp
KGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAg
ICBtb3ZlIDAsIHQ2CisgICAgYmliIHQxLCB0MywgLnJldHVybgorICAgIG1vdmUgMSwgdDYKKyAg
ICBiaWEgdDEsIHQzLCAucmV0dXJuCisgICAgY2lhZXEgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwg
dDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCisjIGk2NCB1bmFyeSBv
cHMKKword2FzbU9wKGk2NF9jdHosIFdhc21JNjRDdHosIG1hY3JvIChjdHgpCisgICAgbWxvYWQy
aShjdHgsIG1fb3BlcmFuZCwgdDEsIHQwKQorICAgIGJ0aXogdDAsIC50b3AKKworICAgIHR6Y250
aSB0MCwgdDAKKyAgICBqbXAgLnJldHVybgorCisudG9wOgorICAgIHR6Y250aSB0MSwgdDAKKyAg
ICBhZGRpIDMyLCB0MAorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgMCwgdDApCitlbmQp
CisKK3dhc21PcChpNjRfY2x6LCBXYXNtSTY0Q2x6LCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShj
dHgsIG1fb3BlcmFuZCwgdDEsIHQwKQorICAgIGJ0aXogdDEsIC5ib3R0b20KKworICAgIGx6Y250
aSB0MSwgdDAKKyAgICBqbXAgLnJldHVybgorCisuYm90dG9tOgorICAgIGx6Y250aSB0MCwgdDAK
KyAgICBhZGRpIDMyLCB0MAorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgMCwgdDApCitl
bmQpCisKK3dhc21PcChpNjRfcG9wY250LCBXYXNtSTY0UG9wY250LCBtYWNybyAoY3R4KQorICAg
IG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIGEzLCBhMikKKyAgICBwcmVwYXJlU3RhdGVGb3JDQ2Fs
bCgpCisgICAgbW92ZSBQQywgYTAKKyAgICBjQ2FsbDIoX3Nsb3dfcGF0aF93YXNtX3BvcGNvdW50
bGwpCisgICAgcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCisgICAgcmV0dXJuMmkoY3R4LCAwLCBy
MSkKK2VuZCkKKword2FzbU9wKGk2NF9lcXosIFdhc21JNjRFcXosIG1hY3JvKGN0eCkKKyAgICBt
bG9hZDJpKGN0eCwgbV9vcGVyYW5kLCB0MSwgdDApCisgICAgbW92ZSAwLCB0MgorICAgIGJ0aW56
IHQxLCAucmV0dXJuCisgICAgY2llcSB0MCwgMCwgdDIKKy5yZXR1cm46CisgICAgcmV0dXJuaShj
dHgsIHQyKQorZW5kKQorCisjIGY2NCBiaW5hcnkgb3BzCisKK3dhc21PcChmNjRfY29weXNpZ24s
IFdhc21GNjRDb3B5c2lnbiwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEs
IHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKSAjIHQyIHVudXNlZAorCisgICAg
YW5kaSAweDdmZmZmZmZmLCB0MQorICAgIGFuZGkgMHg4MDAwMDAwMCwgdDMKKyAgICBvcmkgdDMs
IHQxCisKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKworIyBUeXBlIGNvbnZlcnNp
b24gb3BzCisKK3dhc21PcChpNjRfZXh0ZW5kX3NfaTMyLCBXYXNtSTY0RXh0ZW5kU0kzMiwgbWFj
cm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgcnNoaWZ0aSB0MCwg
MzEsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfZXh0
ZW5kX3VfaTMyLCBXYXNtSTY0RXh0ZW5kVUkzMiwgbWFjcm8oY3R4KQorICAgIG1sb2FkaShjdHgs
IG1fb3BlcmFuZCwgdDApCisgICAgcmV0dXJuMmkoY3R4LCAwLCB0MCkKK2VuZCkKKword2FzbU9w
KGY2NF9yZWludGVycHJldF9pNjQsIFdhc21GNjRSZWludGVycHJldEk2NCwgbWFjcm8oY3R4KQor
ICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIHQxLCB0MCkKKyAgICBmaWkyZCB0MCwgdDEsIGZ0
MAorICAgIHJldHVybmQoY3R4LCBmdDApCitlbmQpCisKK3dhc21PcChpNjRfcmVpbnRlcnByZXRf
ZjY0LCBXYXNtSTY0UmVpbnRlcnByZXRGNjQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBt
X29wZXJhbmQsIGZ0MCkKKyAgICBmZDJpaSBmdDAsIHQwLCB0MQorICAgIHJldHVybjJpKGN0eCwg
dDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NfZjY0LCBXYXNtSTMyVHJ1bmNTRjY0
LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92
ZWlpIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDEsIHQwICMgSU5UMzJfTUlOIC0gMS4wCisgICAgZmlp
MmQgdDAsIHQxLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMK
KworICAgIG1vdmVpaSAweDQxZTAwMDAwMDAwMDAwMDAsIHQxLCB0MCAjIC1JTlQzMl9NSU4KKyAg
ICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNU
cnVuYworCisgICAgdHJ1bmNhdGVkMmlzIGZ0MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisK
Ky5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMp
CitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfdV9mNjQsIFdhc21JMzJUcnVuY1VGNjQsIG1hY3Jv
IChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlaWkgMHhi
ZmYwMDAwMDAwMDAwMDAwLCB0MSwgdDAgIyAtMS4wCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAg
ICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmVpaSAweDQx
ZjAwMDAwMDAwMDAwMDAsIHQxLCB0MCAjIElOVDMyX01JTiAqIC0yLjAKKyAgICBmaWkyZCB0MCwg
dDEsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAg
dHJ1bmNhdGVkMmkgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRz
VHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKK2VuZCkKKworc2xv
d1dhc21PcChpNjRfdHJ1bmNfc19mMzIpCitzbG93V2FzbU9wKGk2NF90cnVuY191X2YzMikKK3Ns
b3dXYXNtT3AoaTY0X3RydW5jX3NfZjY0KQorc2xvd1dhc21PcChpNjRfdHJ1bmNfdV9mNjQpCisK
K3dhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTMyVHJ1bmNTYXRGNjRTLCBtYWNybyAo
Y3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZWlpIDB4YzFl
MDAwMDAwMDIwMDAwMCwgdDEsIHQwICMgSU5UMzJfTUlOIC0gMS4wCisgICAgZmlpMmQgdDAsIHQx
LCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5h
TgorCisgICAgbW92ZWlpIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDEsIHQwICMgLUlOVDMyX01JTgor
ICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5k
c1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAorICAgIHJldHVybmkoY3R4
LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKKyAgICBiZGVxIGZ0MCwgZnQw
LCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5pKGN0
eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBJ
TlQzMl9NQVgpLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNT
YXRNaW46CisgICAgbW92ZSAoY29uc3RleHByIElOVDMyX01JTiksIHQwCisgICAgcmV0dXJuaShj
dHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfdSwgV2FzbUkzMlRydW5j
U2F0RjY0VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKwor
ICAgIG1vdmVpaSAweGJmZjAwMDAwMDAwMDAwMDAsIHQxLCB0MCAjIC0xLjAKKyAgICBmaWkyZCB0
MCwgdDEsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1p
bgorCisgICAgbW92ZWlpIDB4NDFmMDAwMDAwMDAwMDAwMCwgdDEsIHQwICMgSU5UMzJfTUlOICog
LTIuMAorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRP
ZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQyaSBmdDAsIHQwCisgICAgcmV0dXJu
aShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAgICBtb3ZlIDAsIHQwCisg
ICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKKyAgICBtb3Zl
IChjb25zdGV4cHIgVUlOVDMyX01BWCksIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorZW5kKQor
CitzbG93V2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3MpCitzbG93V2FzbU9wKGk2NF90cnVuY19z
YXRfZjMyX3UpCitzbG93V2FzbU9wKGk2NF90cnVuY19zYXRfZjY0X3MpCitzbG93V2FzbU9wKGk2
NF90cnVuY19zYXRfZjY0X3UpCisKKyMgRXh0ZW5kIG9wcworCit3YXNtT3AoaTY0X2V4dGVuZDhf
cywgV2FzbUk2NEV4dGVuZDhTLCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5k
LCB0MCkKKyAgICBzeGIyaSB0MCwgdDAKKyAgICByc2hpZnRpIHQwLCAzMSwgdDEKKyAgICByZXR1
cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9leHRlbmQxNl9zLCBXYXNtSTY0
RXh0ZW5kMTZTLCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAg
ICBzeGgyaSB0MCwgdDAKKyAgICByc2hpZnRpIHQwLCAzMSwgdDEKKyAgICByZXR1cm4yaShjdHgs
IHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9leHRlbmQzMl9zLCBXYXNtSTY0RXh0ZW5kMTZT
LCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICByc2hpZnRp
IHQwLCAzMSwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKworIyBBdG9taWNz
CisKK21hY3JvIHdhc21BdG9taWNCaW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNh
c2VPcGNvZGUsIGZuYiwgZm5oLCBmbmksIGZuMmkpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13
OCVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4JXVwcGVyQ2FzZU9wY29kZSVV
LCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAg
IHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3ZhbHVlLCB0
MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQodDMsIHQ1
LCAxKQorICAgICAgICBmbmIodDAsIFt0M10sIHQyLCB0NSwgdDYpCisgICAgICAgIGFuZGkgMHhm
ZiwgdDYgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0CisgICAgICAgIGFzc2VydChtYWNybyhvaykg
YmliZXEgdDYsIDB4ZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybjJpKGN0eCwgMCwgdDYpCisg
ICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9wY29kZSVfdSwg
V2FzbUk2NEF0b21pY1JtdzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAg
IG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQs
IHQ1KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNr
QW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2sodDMsIHQ1LCAy
KQorICAgICAgICBmbmgodDAsIFt0M10sIHQyLCB0NSwgdDYpCisgICAgICAgIGFuZGkgMHhmZmZm
LCB0NiAjIEZJWE1FOiBaZXJvRXh0ZW5kMTZUbzY0CisgICAgICAgIGFzc2VydChtYWNybyhvaykg
YmliZXEgdDYsIDB4ZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJuMmkoY3R4LCAwLCB0NikK
KyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MzIlbG93ZXJDYXNlT3Bjb2RlJV91
LCBXYXNtSTY0QXRvbWljUm13MzIldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAg
ICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNl
dCwgdDUpCisgICAgICAgIG1sb2FkaShjdHgsIG1fdmFsdWUsIHQwKQorICAgICAgICBlbWl0Q2hl
Y2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0MywgdDUs
IDQpCisgICAgICAgIGZuaSh0MCwgW3QzXSwgdDIsIHQ1LCB0NikKKyAgICAgICAgcmV0dXJuMmko
Y3R4LCAwLCB0NikKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13JWxvd2VyQ2Fz
ZU9wY29kZSUsIFdhc21JNjRBdG9taWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8oY3R4KQor
ICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1f
b2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQxLCB0MCkKKyAgICAg
ICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hl
Y2sodDMsIHQ1LCA4KQorICAgICAgICBwdXNoIHQ0ICMgVGhpcyBpcyB0aGUgUEIsIHNvIG5lZWQg
dG8gYmUgc2F2ZWQgYW5kIHJlc3RvcmVkCisgICAgICAgIGZuMmkodDEsIHQwLCBbdDNdLCB0NCwg
dDUsIHQ3LCB0MiwgdDYpCisgICAgICAgIHBvcCB0NAorICAgICAgICByZXR1cm4yaShjdHgsIHQy
LCB0NikKKyAgICBlbmQpCitlbmQKKworbWFjcm8gd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhX
ZWFrQ0FTKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmksIGZuMmkpCisgICAg
d2FzbUF0b21pY0JpbmFyeVJNV09wcyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwK
KyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0NkdQUikKKyAgICAgICAg
ICAgICAgICBmZW5jZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9hZGxp
bmtiIG1lbSwgdDZHUFIKKyAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQ2R1BSLCB0MkdQUikK
KyAgICAgICAgICAgICAgICBzdG9yZWNvbmRiIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAg
ICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAg
ICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQ2R1BSKQor
ICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAg
ICBsb2FkbGlua2ggbWVtLCB0NkdQUgorICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDZHUFIs
IHQyR1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29uZGggdDVHUFIsIHQyR1BSLCBtZW0KKyAg
ICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBmZW5j
ZQorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwg
dDZHUFIpCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIC5sb29wOgorICAgICAg
ICAgICAgICAgIGxvYWRsaW5raSBtZW0sIHQ2R1BSCisgICAgICAgICAgICAgICAgZm5pKHQwR1BS
LCB0NkdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgc3RvcmVjb25kaSB0NUdQUiwgdDJHUFIs
IG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAorICAgICAgICAgICAg
ICAgIGZlbmNlCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDFHUFIsIHQwR1BSLCBtZW0s
IHQ0R1BSLCB0NUdQUiwgdDdHUFIsIHQyR1BSLCB0NkdQUikKKyAgICAgICAgICAgICAgICBmZW5j
ZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9hZGxpbmsyaSBtZW0sIHQ2
R1BSLCB0MkdQUgorICAgICAgICAgICAgICAgIGZuMmkodDFHUFIsIHQwR1BSLCB0MkdQUiwgdDZH
UFIsIHQ0R1BSLCB0NUdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmQyaSB0N0dQUiwgdDVH
UFIsIHQ0R1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0N0dQUiwgMCwgLmxvb3AKKyAg
ICAgICAgICAgICAgICBmZW5jZQorICAgICAgICBlbmQpCitlbmQKKworaWYgQVJNdjcKKyAgICB3
YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FkZCwgQWRkLAorICAgICAgICBtYWNy
byhzcmMwLCBzcmMxLCBkc3QpCisgICAgICAgICAgICBhZGRpIHNyYzAsIHNyYzEsIGRzdAorICAg
ICAgICBlbmQsCisgICAgICAgIG1hY3JvKHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFM
c3csIGRzdE1zdywgZHN0THN3KQorICAgICAgICAgICAgYWRkaXMgc3JjMExzdywgc3JjMUxzdywg
ZHN0THN3CisgICAgICAgICAgICBhZGNpICBzcmMwTXN3LCBzcmMxTXN3LCBkc3RNc3cKKyAgICAg
ICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfc3ViLCBTdWIs
CisgICAgICAgIG1hY3JvKHNyYzAsIHNyYzEsIGRzdCkKKyAgICAgICAgICAgIHN1Ymkgc3JjMSwg
c3JjMCwgZHN0CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8oc3JjME1zdywgc3JjMExzdywg
c3JjMU1zdywgc3JjMUxzdywgZHN0TXN3LCBkc3RMc3cpCisgICAgICAgICAgICBzdWJpcyBzcmMx
THN3LCBzcmMwTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIHNiY2kgIHNyYzFNc3csIHNyYzBNc3cs
IGRzdE1zdworICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFr
Q0FTKF94Y2hnLCBYY2hnLAorICAgICAgICBtYWNybyhzcmMwLCBzcmMxLCBkc3QpCisgICAgICAg
ICAgICBtb3ZlIHNyYzAsIGRzdAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHNyYzBNc3cs
IHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0THN3KQorICAgICAgICAgICAg
bW92ZSBzcmMwTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIG1vdmUgc3JjME1zdywgZHN0TXN3Cisg
ICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FuZCwg
QW5kLAorICAgICAgICBtYWNybyhzcmMwLCBzcmMxLCBkc3QpCisgICAgICAgICAgICBhbmRpIHNy
YzAsIHNyYzEsIGRzdAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHNyYzBNc3csIHNyYzBM
c3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0THN3KQorICAgICAgICAgICAgYW5kaSBz
cmMwTHN3LCBzcmMxTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIGFuZGkgc3JjME1zdywgc3JjMU1z
dywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdl
YWtDQVMoX29yLCBPciwKKyAgICAgICAgbWFjcm8oc3JjMCwgc3JjMSwgZHN0KQorICAgICAgICAg
ICAgb3JpIHNyYzAsIHNyYzEsIGRzdAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHNyYzBN
c3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0THN3KQorICAgICAgICAg
ICAgb3JpIHNyYzBMc3csIHNyYzFMc3csIGRzdExzdworICAgICAgICAgICAgb3JpIHNyYzBNc3cs
IHNyYzFNc3csIGRzdE1zdworICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09w
c1dpdGhXZWFrQ0FTKF94b3IsIFhvciwKKyAgICAgICAgbWFjcm8oc3JjMCwgc3JjMSwgZHN0KQor
ICAgICAgICAgICAgeG9yaSBzcmMwLCBzcmMxLCBkc3QKKyAgICAgICAgZW5kLAorICAgICAgICBt
YWNybyhzcmMwTXN3LCBzcmMwTHN3LCBzcmMxTXN3LCBzcmMxTHN3LCBkc3RNc3csIGRzdExzdykK
KyAgICAgICAgICAgIHhvcmkgc3JjMExzdywgc3JjMUxzdywgZHN0THN3CisgICAgICAgICAgICB4
b3JpIHNyYzBNc3csIHNyYzFNc3csIGRzdE1zdworICAgICAgICBlbmQpCitlbmQKKworbWFjcm8g
d2FzbUF0b21pY0NvbXBhcmVFeGNoYW5nZU9wcyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9w
Y29kZSwgZm5iLCBmbmgsIGZuaSwgZm4yaSkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXc4JWxv
d2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzgldXBwZXJDYXNlT3Bjb2RlJVUsIG1h
Y3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dl
dHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX2V4cGVjdGVkLCB0
MSwgdDApCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVlLCB0NiwgdDIpCisgICAgICAgIGVt
aXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KHQzLCB0NSwgMSkKKyAgICAgICAg
Zm5iKHQxLCB0MCwgdDYsIHQyLCBbdDNdLCB0NywgdDUpCisgICAgICAgIGFuZGkgMHhmZiwgdDAg
IyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0CisgICAgICAgIGFzc2VydChtYWNybyhvaykgYmliZXEg
dDAsIDB4ZmYsIC5vayBlbmQpCisgICAgICAgIGFzc2VydChtYWNybyhvaykgYmllcSB0MSwgMCwg
Lm9rIGVuZCkKKyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCisgICAgZW5kKQorICAgIHdh
c21PcChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1Jt
dzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1f
cG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBt
bG9hZDJpKGN0eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAgICBtbG9hZDJpKGN0eCwgbV92
YWx1ZSwgdDYsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09m
ZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0MywgdDUsIDIpCisgICAgICAgIGZuaCh0MSwgdDAsIHQ2
LCB0MiwgW3QzXSwgdDcsIHQ1KQorICAgICAgICBhbmRpIDB4ZmZmZiwgdDAgIyBGSVhNRTogWmVy
b0V4dGVuZDE2VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJpYmVxIHQwLCAweGZmZmYs
IC5vayBlbmQpCisgICAgICAgIGFzc2VydChtYWNybyhvaykgYmllcSB0MSwgMCwgLm9rIGVuZCkK
KyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCisgICAgZW5kKQorICAgIHdhc21PcChpNjRf
YXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzMyJXVwcGVy
Q2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwg
dDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZDJpKGN0
eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAgICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwgdDYs
IHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhB
bGlnbm1lbnRDaGVjayh0MywgdDUsIDgpCisgICAgICAgIGZuaSh0MSwgdDAsIHQ2LCB0MiwgW3Qz
XSwgdDcsIHQ1KQorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJpZXEgdDEsIDAsIC5vayBlbmQp
CisgICAgICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0
X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0b21pY1JtdyV1cHBlckNhc2VP
cGNvZGUlLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisg
ICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZDJpKGN0eCwgbV9l
eHBlY3RlZCwgdDEsIHQwKQorICAgICAgICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwgdDYsIHQyKQor
ICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1l
bnRDaGVjayh0MywgdDUsIDgpCisgICAgICAgIHB1c2ggdDQgIyBUaGlzIGlzIHRoZSBQQiwgc28g
bmVlZCB0byBiZSBzYXZlZCBhbmQgcmVzdG9yZWQKKyAgICAgICAgZm4yaSh0MSwgdDAsIHQ2LCB0
MiwgW3QzXSwgdDcsIHQ1LCB0NCkKKyAgICAgICAgcG9wIHQ0CisgICAgICAgIHJldHVybjJpKGN0
eCwgdDEsIHQwKQorICAgIGVuZCkKK2VuZAorCitpZiBBUk12NworLy8gZXhwOiAiZXhwZWN0ZWQi
LCB2YWw6ICJ2YWx1ZSIsIHJlczogInJlc3VsdCIKK3dhc21BdG9taWNDb21wYXJlRXhjaGFuZ2VP
cHMoX2NtcHhjaGcsIENtcHhjaGcsCisgICAgbWFjcm8oZXhwTXN3LCBleHBMc3csIHZhbE1zdywg
dmFsTHN3LCBtZW0sIHNjcmF0Y2gsIHJlc0xzdykKKyAgICAgICAgICAgIGZlbmNlCisgICAgICAg
IC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmtiIG1lbSwgcmVzTHN3CisgICAgICAgICAgICBi
aW5lcSBleHBMc3csIHJlc0xzdywgLmZhaWwKKyAgICAgICAgICAgIGJpbmVxIGV4cE1zdywgMCwg
LmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZGIgc2NyYXRjaCwgdmFsTHN3LCBtZW0KKyAgICAg
ICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAg
ICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZGIgc2NyYXRjaCwgcmVzTHN3LCBtZW0K
KyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9v
cAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIGZlbmNlCisgICAgICAgICAgICBtb3ZlIHJl
c0xzdywgZXhwTHN3CisgICAgICAgICAgICBtb3ZlIDAsIGV4cE1zdworICAgIGVuZCwKKyAgICBt
YWNybyhleHBNc3csIGV4cExzdywgdmFsTXN3LCB2YWxMc3csIG1lbSwgc2NyYXRjaCwgcmVzTHN3
KQorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgLmxvb3A6CisgICAgICAgICAgICBsb2FkbGlu
a2ggbWVtLCByZXNMc3cKKyAgICAgICAgICAgIGJpbmVxIGV4cExzdywgcmVzTHN3LCAuZmFpbAor
ICAgICAgICAgICAgYmluZXEgZXhwTXN3LCAwLCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25k
aCBzY3JhdGNoLCB2YWxMc3csIG1lbQorICAgICAgICAgICAgYmllcSBzY3JhdGNoLCAwLCAuZG9u
ZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgc3Rv
cmVjb25kaCBzY3JhdGNoLCByZXNMc3csIG1lbQorICAgICAgICAgICAgYmllcSBzY3JhdGNoLCAw
LCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAgICAg
ICAgZmVuY2UKKyAgICAgICAgICAgIG1vdmUgcmVzTHN3LCBleHBMc3cKKyAgICAgICAgICAgIG1v
dmUgMCwgZXhwTXN3CisgICAgZW5kLAorICAgIG1hY3JvKGV4cE1zdywgZXhwTHN3LCB2YWxNc3cs
IHZhbExzdywgbWVtLCBzY3JhdGNoLCByZXNMc3cpCisgICAgICAgICAgICBmZW5jZQorICAgICAg
ICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5raSBtZW0sIHJlc0xzdworICAgICAgICAgICAg
YmluZXEgZXhwTHN3LCByZXNMc3csIC5mYWlsCisgICAgICAgICAgICBiaW5lcSBleHBNc3csIDAs
IC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmRpIHNjcmF0Y2gsIHZhbExzdywgbWVtCisgICAg
ICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAg
ICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRpIHNjcmF0Y2gsIHJlc0xzdywgbWVt
CisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxv
b3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAgbW92ZSBy
ZXNMc3csIGV4cExzdworICAgICAgICAgICAgbW92ZSAwLCBleHBNc3cKKyAgICBlbmQsCisgICAg
bWFjcm8oZXhwTXN3LCBleHBMc3csIHZhbE1zdywgdmFsTHN3LCBtZW0sIHNjcmF0Y2gsIHJlc01z
dywgcmVzTHN3KQorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgLmxvb3A6CisgICAgICAgICAg
ICBsb2FkbGluazJpIG1lbSwgcmVzTHN3LCByZXNNc3cKKyAgICAgICAgICAgIGJpbmVxIGV4cExz
dywgcmVzTHN3LCAuZmFpbAorICAgICAgICAgICAgYmluZXEgZXhwTXN3LCByZXNNc3csIC5mYWls
CisgICAgICAgICAgICBzdG9yZWNvbmQyaSBzY3JhdGNoLCB2YWxMc3csIHZhbE1zdywgbWVtCisg
ICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AK
KyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmQyaSBzY3JhdGNoLCByZXNMc3cs
IHJlc01zdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAgICAg
ICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBmZW5jZQorICAgICAg
ICAgICAgbW92ZSByZXNMc3csIGV4cExzdworICAgICAgICAgICAgbW92ZSByZXNNc3csIGV4cE1z
dworICAgIGVuZCkKK2VuZAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvV2ViQXNzZW1ibHk2NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNz
ZW1ibHk2NC5hc20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40NmU5
ZWE0ODg1MjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
V2ViQXNzZW1ibHk2NC5hc20KQEAgLTAsMCArMSwxMjU5IEBACisjIENvcHlyaWdodCAoQykgMjAx
MS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAy
MDIxIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIE9wY29kZXMgdGhhdCBzaG91bGQgZXZlbnR1YWxseSBi
ZSBzaGFyZWQgd2l0aCBKUyBsbGludAorCit3YXNtT3AobW92LCBXYXNtTW92LCBtYWNybyhjdHgp
CisgICAgbWxvYWRxKGN0eCwgbV9zcmMsIHQwKQorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkK
KworIyBXYXNtIHNwZWNpZmljIGJ5dGVjb2RlcworCittYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJl
UG9pbnRlcihjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKKyAgICBsZWFwIHNpemUgLSAxW3Bv
aW50ZXIsIG9mZnNldF0sIHQ1CisgICAgYnBiIHQ1LCBib3VuZHNDaGVja2luZ1NpemUsIC5jb250
aW51YXRpb24KKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKKy5j
b250aW51YXRpb246CisgICAgYWRkcCBtZW1vcnlCYXNlLCBwb2ludGVyCitlbmQKKworbWFjcm8g
ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQoY3R4LCBwb2ludGVyLCBvZmZz
ZXQsIHNpemUpCisgICAgbGVhcCBzaXplIC0gMVtwb2ludGVyLCBvZmZzZXRdLCB0NQorICAgIGJw
YiB0NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29udGludWF0aW9uCisudGhyb3c6CisgICAgdGhy
b3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCisuY29udGludWF0aW9uOgorICAg
IGFkZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgorICAgIGFkZHAgb2Zmc2V0LCBwb2ludGVyCitlbmQK
KworbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25t
ZW50Q2hlY2soY3R4LCBwb2ludGVyLCBvZmZzZXQsIHNpemUpCisgICAgbGVhcCBzaXplIC0gMVtw
b2ludGVyLCBvZmZzZXRdLCB0NQorICAgIGJwYiB0NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29u
dGludWF0aW9uCisudGhyb3c6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlB
Y2Nlc3MpCisuY29udGludWF0aW9uOgorICAgIGFkZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgorICAg
IGFkZHAgb2Zmc2V0LCBwb2ludGVyCisgICAgYnRwbnogcG9pbnRlciwgKHNpemUgLSAxKSwgLnRo
cm93CitlbmQKKworCittYWNybyB3YXNtTG9hZE9wKG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4pCisg
ICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBt
X3BvaW50ZXIsIHQwKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAg
ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4LCB0MCwgdDEsIHNpemUpCisgICAgICAgIGZu
KFt0MCwgdDFdLCB0MikKKyAgICAgICAgcmV0dXJucShjdHgsIHQyKQorICAgIGVuZCkKK2VuZAor
Cit3YXNtTG9hZE9wKGxvYWQ4X3UsIFdhc21Mb2FkOFUsIDEsIG1hY3JvKG1lbSwgZHN0KSBsb2Fk
YiBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGxvYWQxNl91LCBXYXNtTG9hZDE2VSwgMiwgbWFj
cm8obWVtLCBkc3QpIGxvYWRoIG1lbSwgZHN0IGVuZCkKK3dhc21Mb2FkT3AobG9hZDMyX3UsIFdh
c21Mb2FkMzJVLCA0LCBtYWNybyhtZW0sIGRzdCkgbG9hZGkgbWVtLCBkc3QgZW5kKQord2FzbUxv
YWRPcChsb2FkNjRfdSwgV2FzbUxvYWQ2NFUsIDgsIG1hY3JvKG1lbSwgZHN0KSBsb2FkcSBtZW0s
IGRzdCBlbmQpCisKK3dhc21Mb2FkT3AoaTMyX2xvYWQ4X3MsIFdhc21JMzJMb2FkOFMsIDEsIG1h
Y3JvKG1lbSwgZHN0KSBsb2FkYnNpIG1lbSwgZHN0IGVuZCkKK3dhc21Mb2FkT3AoaTY0X2xvYWQ4
X3MsIFdhc21JNjRMb2FkOFMsIDEsIG1hY3JvKG1lbSwgZHN0KSBsb2FkYnNxIG1lbSwgZHN0IGVu
ZCkKK3dhc21Mb2FkT3AoaTMyX2xvYWQxNl9zLCBXYXNtSTMyTG9hZDE2UywgMiwgbWFjcm8obWVt
LCBkc3QpIGxvYWRoc2kgbWVtLCBkc3QgZW5kKQord2FzbUxvYWRPcChpNjRfbG9hZDE2X3MsIFdh
c21JNjRMb2FkMTZTLCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGhzcSBtZW0sIGRzdCBlbmQpCit3
YXNtTG9hZE9wKGk2NF9sb2FkMzJfcywgV2FzbUk2NExvYWQzMlMsIDQsIG1hY3JvKG1lbSwgZHN0
KSBsb2FkaXMgbWVtLCBkc3QgZW5kKQorCittYWNybyB3YXNtU3RvcmVPcChuYW1lLCBzdHJ1Y3Qs
IHNpemUsIGZuKQorICAgIHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1hY3JvKGN0eCkKKyAgICAgICAg
bWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MCkKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwg
dDEpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKGN0eCwgdDAsIHQxLCBzaXpl
KQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAgICAgICAgZm4odDIsIFt0MCwg
dDFdKQorICAgICAgICBkaXNwYXRjaChjdHgpCisgICAgZW5kKQorZW5kCisKK3dhc21TdG9yZU9w
KHN0b3JlOCwgV2FzbVN0b3JlOCwgMSwgbWFjcm8odmFsdWUsIG1lbSkgc3RvcmViIHZhbHVlLCBt
ZW0gZW5kKQord2FzbVN0b3JlT3Aoc3RvcmUxNiwgV2FzbVN0b3JlMTYsIDIsIG1hY3JvKHZhbHVl
LCBtZW0pIHN0b3JlaCB2YWx1ZSwgbWVtIGVuZCkKK3dhc21TdG9yZU9wKHN0b3JlMzIsIFdhc21T
dG9yZTMyLCA0LCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZWkgdmFsdWUsIG1lbSBlbmQpCit3YXNt
U3RvcmVPcChzdG9yZTY0LCBXYXNtU3RvcmU2NCwgOCwgbWFjcm8odmFsdWUsIG1lbSkgc3RvcmVx
IHZhbHVlLCBtZW0gZW5kKQorCit3YXNtT3AocmVmX2lzX251bGwsIFdhc21SZWZJc051bGwsIG1h
Y3JvKGN0eCkKKyAgICBtbG9hZHAoY3R4LCBtX3JlZiwgdDApCisgICAgY3FlcSB0MCwgVmFsdWVO
dWxsLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGdldF9nbG9iYWws
IFdhc21HZXRHbG9iYWwsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9n
bG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0
MSkKKyAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQp
CisKK3dhc21PcChzZXRfZ2xvYmFsLCBXYXNtU2V0R2xvYmFsLCBtYWNybyhjdHgpCisgICAgbG9h
ZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1
KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCisg
ICAgc3RvcmVxIHQyLCBbdDAsIHQxLCA4XQorICAgIGRpc3BhdGNoKGN0eCkKK2VuZCkKKword2Fz
bU9wKGdldF9nbG9iYWxfcG9ydGFibGVfYmluZGluZywgV2FzbUdldEdsb2JhbFBvcnRhYmxlQmlu
ZGluZywgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2Fz
bUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQorICAgIGxv
YWRxIFt0MCwgdDEsIDhdLCB0MAorICAgIGxvYWRxIFt0MF0sIHQwCisgICAgcmV0dXJucShjdHgs
IHQwKQorZW5kKQorCit3YXNtT3Aoc2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNtU2V0
R2xvYmFsUG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFu
Y2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJ
bmRleCwgdDEpCisgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCisgICAgbG9hZHEgW3QwLCB0
MSwgOF0sIHQwCisgICAgc3RvcmVxIHQyLCBbdDBdCisgICAgZGlzcGF0Y2goY3R4KQorZW5kKQor
CisjIE9wY29kZXMgdGhhdCBkb24ndCBoYXZlIHRoZSBgYjNvcGAgZW50cnkgaW4gd2FzbS5qc29u
LiBUaGlzIHNob3VsZCBiZSBrZXB0IGluIHN5bmMKKworIyBpMzIgYmluYXJ5IG9wcworCit3YXNt
T3AoaTMyX2Rpdl9zLCBXYXNtSTMyRGl2UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBt
X2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRpeiB0MSwgLnRo
cm93RGl2aXNpb25CeVplcm8KKworICAgIGJpbmVxIHQxLCAtMSwgLnNhZmUKKyAgICBiaWVxIHQw
LCBjb25zdGV4cHIgSU5UMzJfTUlOLCAudGhyb3dJbnRlZ2VyT3ZlcmZsb3cKKworLnNhZmU6Cisg
ICAgaWYgWDg2XzY0CisgICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQg
dGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAorICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKKyAgICAgICAgY2RxaQorICAgICAgICBpZGl2
aSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0CisgICAgICAgIGRpdmlz
IHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKKyAgICByZXR1cm5pKGN0
eCwgdDApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlz
aW9uQnlaZXJvKQorCisudGhyb3dJbnRlZ2VyT3ZlcmZsb3c6CisgICAgdGhyb3dFeGNlcHRpb24o
SW50ZWdlck92ZXJmbG93KQorZW5kKQorCit3YXNtT3AoaTMyX2Rpdl91LCBXYXNtSTMyRGl2VSwg
bWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwg
bV9yaHMsIHQxKQorCisgICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGlm
IFg4Nl82NAorICAgICAgICB4b3JpIHQyLCB0MgorICAgICAgICB1ZGl2aSB0MQorICAgIGVsc2lm
IEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0CisgICAgICAgIGRpdmkgdDEsIHQwCisgICAgZWxz
ZQorICAgICAgICBlcnJvcgorICAgIGVuZAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLnRocm93
RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQp
CisKK3dhc21PcChpMzJfcmVtX3MsIFdhc21JMzJSZW1TLCBtYWNybyAoY3R4KQorICAgIG1sb2Fk
aShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisKKyAgICBidGl6
IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgYmluZXEgdDEsIC0xLCAuc2FmZQorICAg
IGJpbmVxIHQwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAuc2FmZQorCisgICAgbW92ZSAwLCB0Mgor
ICAgIGptcCAucmV0dXJuCisKKy5zYWZlOgorICAgIGlmIFg4Nl82NAorICAgICAgICAjIEZJWE1F
OiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0MiBpcyByZHgK
KyAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjky
CisgICAgICAgIGNkcWkKKyAgICAgICAgaWRpdmkgdDEKKyAgICBlbHNpZiBBUk02NCBvciBBUk02
NEUKKyAgICAgICAgZGl2aXMgdDEsIHQwLCB0MgorICAgICAgICBtdWxpIHQxLCB0MgorICAgICAg
ICBzdWJpIHQwLCB0MiwgdDIKKyAgICBlbHNpZiBSSVNDVjY0CisgICAgICAgIHJlbWlzIHQxLCB0
MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKKworLnJldHVybjoKKyAgICByZXR1
cm5pKGN0eCwgdDIpCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9u
KERpdmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTMyX3JlbV91LCBXYXNtSTMyUmVtVSwg
bWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwg
bV9yaHMsIHQxKQorCisgICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGlm
IFg4Nl82NAorICAgICAgICB4b3JpIHQyLCB0MgorICAgICAgICB1ZGl2aSB0MQorICAgIGVsc2lm
IEFSTTY0IG9yIEFSTTY0RQorICAgICAgICBkaXZpIHQxLCB0MCwgdDIKKyAgICAgICAgbXVsaSB0
MSwgdDIKKyAgICAgICAgc3ViaSB0MCwgdDIsIHQyCisgICAgZWxzaWYgUklTQ1Y2NAorICAgICAg
ICByZW1pIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKKyAgICByZXR1
cm5pKGN0eCwgdDIpCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9u
KERpdmlzaW9uQnlaZXJvKQorZW5kKQorCisjIGk2NCBiaW5hcnkgb3BzCisKK3dhc21PcChpNjRf
YWRkLCBXYXNtSTY0QWRkLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQor
ICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBhZGRxIHQwLCB0MQorICAgIHJldHVybnEo
Y3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9zdWIsIFdhc21JNjRTdWIsIG1hY3JvKGN0eCkK
KyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQor
ICAgIHN1YnEgdDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0
X211bCwgV2FzbUk2NE11bCwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkK
KyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgbXVscSB0MCwgdDEKKyAgICByZXR1cm5x
KGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfZGl2X3MsIFdhc21JNjREaXZTLCBtYWNybyAo
Y3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3Jocywg
dDEpCisKKyAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgYnFuZXEgdDEs
IC0xLCAuc2FmZQorICAgIGJxZXEgdDAsIGNvbnN0ZXhwciBJTlQ2NF9NSU4sIC50aHJvd0ludGVn
ZXJPdmVyZmxvdworCisuc2FmZToKKyAgICBpZiBYODZfNjQKKyAgICAgICAgIyBGSVhNRTogQWRk
IGEgd2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4CisgICAg
ICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgorICAg
ICAgICBjcW9xCisgICAgICAgIGlkaXZxIHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9y
IFJJU0NWNjQKKyAgICAgICAgZGl2cXMgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgor
ICAgIGVuZAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLnRocm93RGl2aXNpb25CeVplcm86Cisg
ICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCisKKy50aHJvd0ludGVnZXJPdmVyZmxv
dzoKKyAgICB0aHJvd0V4Y2VwdGlvbihJbnRlZ2VyT3ZlcmZsb3cpCitlbmQpCisKK3dhc21PcChp
NjRfZGl2X3UsIFdhc21JNjREaXZVLCBtYWNybyAoY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhz
LCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisKKyAgICBidHF6IHQxLCAudGhyb3dE
aXZpc2lvbkJ5WmVybworCisgICAgaWYgWDg2XzY0CisgICAgICAgIHhvcnEgdDIsIHQyCisgICAg
ICAgIHVkaXZxIHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKKyAgICAg
ICAgZGl2cSB0MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCisgICAgcmV0
dXJucShjdHgsIHQwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlv
bihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9yZW1fcywgV2FzbUk2NFJlbVMs
IG1hY3JvIChjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgs
IG1fcmhzLCB0MSkKKworICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBi
cW5lcSB0MSwgLTEsIC5zYWZlCisgICAgYnFuZXEgdDAsIGNvbnN0ZXhwciBJTlQ2NF9NSU4sIC5z
YWZlCisKKyAgICBtb3ZlIDAsIHQyCisgICAgam1wIC5yZXR1cm4KKworLnNhZmU6CisgICAgaWYg
WDg2XzY0CisgICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0
MCBpcyByYXggYW5kIHQyIGlzIHJkeAorICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKKyAgICAgICAgY3FvcQorICAgICAgICBpZGl2cSB0MQor
ICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQorICAgICAgICBkaXZxcyB0MSwgdDAsIHQyCisgICAg
ICAgIG11bHEgdDEsIHQyCisgICAgICAgIHN1YnEgdDAsIHQyLCB0MgorICAgIGVsc2lmIFJJU0NW
NjQKKyAgICAgICAgcmVtcXMgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVu
ZAorCisucmV0dXJuOgorICAgIHJldHVybnEoY3R4LCB0MikgIyByZHggaGFzIHRoZSByZW1haW5k
ZXIKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25C
eVplcm8pCitlbmQpCisKK3dhc21PcChpNjRfcmVtX3UsIFdhc21JNjRSZW1VLCBtYWNybyAoY3R4
KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEp
CisKKyAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgaWYgWDg2XzY0Cisg
ICAgICAgIHhvcnEgdDIsIHQyCisgICAgICAgIHVkaXZxIHQxCisgICAgZWxzaWYgQVJNNjQgb3Ig
QVJNNjRFCisgICAgICAgIGRpdnEgdDEsIHQwLCB0MgorICAgICAgICBtdWxxIHQxLCB0MgorICAg
ICAgICBzdWJxIHQwLCB0MiwgdDIKKyAgICBlbHNpZiBSSVNDVjY0CisgICAgICAgIHJlbXEgdDEs
IHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorICAgIHJldHVybnEoY3R4LCB0
MikKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25C
eVplcm8pCitlbmQpCisKK3dhc21PcChpNjRfYW5kLCBXYXNtSTY0QW5kLCBtYWNybyhjdHgpCisg
ICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAg
ICBhbmRxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9v
ciwgV2FzbUk2NE9yLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAg
IG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBvcnEgdDAsIHQxCisgICAgcmV0dXJucShjdHgs
IHQxKQorZW5kKQorCit3YXNtT3AoaTY0X3hvciwgV2FzbUk2NFhvciwgbWFjcm8oY3R4KQorICAg
IG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAg
eG9ycSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfc2hs
LCBXYXNtSTY0U2hsLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAg
IG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKyAgICBsc2hpZnRxIHQxLCB0MAorICAgIHJldHVybnEo
Y3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9zaHJfdSwgV2FzbUk2NFNoclUsIG1hY3JvKGN0
eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQx
KQorICAgIHVyc2hpZnRxIHQxLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2Fz
bU9wKGk2NF9zaHJfcywgV2FzbUk2NFNoclMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBt
X2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorICAgIHJzaGlmdHEgdDEsIHQw
CisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3JvdHIsIFdhc21JNjRS
b3RyLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkaShj
dHgsIG1fcmhzLCB0MSkKKyAgICBycm90YXRlcSB0MSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDAp
CitlbmQpCisKK3dhc21PcChpNjRfcm90bCwgV2FzbUk2NFJvdGwsIG1hY3JvKGN0eCkKKyAgICBt
bG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorICAgIGxy
b3RhdGVxIHQxLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9l
cSwgV2FzbUk2NEVxLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAg
IG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWVxIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEs
IHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X25lLCBXYXNtSTY0
TmUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0
eCwgbV9yaHMsIHQxKQorICAgIGNxbmVxIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAg
cmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2x0X3MsIFdhc21JNjRMdFMsIG1h
Y3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9y
aHMsIHQxKQorICAgIGNxbHQgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5p
KGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfbGVfcywgV2FzbUk2NExlUywgbWFjcm8oY3R4
KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEp
CisgICAgY3FsdGVxIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgs
IHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2x0X3UsIFdhc21JNjRMdFUsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAg
IGNxYiB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2Vu
ZCkKKword2FzbU9wKGk2NF9sZV91LCBXYXNtSTY0TGVVLCBtYWNybyhjdHgpCisgICAgbWxvYWRx
KGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWJlcSB0
MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKwor
d2FzbU9wKGk2NF9ndF9zLCBXYXNtSTY0R3RTLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwg
bV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWd0IHQwLCB0MSwg
dDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3Ao
aTY0X2dlX3MsIFdhc21JNjRHZVMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywg
dDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxZ3RlcSB0MCwgdDEsIHQyCisg
ICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9n
dF91LCBXYXNtSTY0R3RVLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQor
ICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWEgdDAsIHQxLCB0MgorICAgIGFuZGkg
MSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfZ2VfdSwgV2Fz
bUk2NEdlVSwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9h
ZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FhZXEgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIK
KyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKKyMgaTY0IHVuYXJ5IG9wcworCit3YXNtT3Ao
aTY0X2N0eiwgV2FzbUk2NEN0eiwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29wZXJh
bmQsIHQwKQorICAgIHR6Y250cSB0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisK
K3dhc21PcChpNjRfY2x6LCBXYXNtSTY0Q2x6LCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwg
bV9vcGVyYW5kLCB0MCkKKyAgICBsemNudHEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQor
ZW5kKQorCit3YXNtT3AoaTY0X3BvcGNudCwgV2FzbUk2NFBvcGNudCwgbWFjcm8gKGN0eCkKKyAg
ICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIGExKQorICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkK
KyAgICBtb3ZlIFBDLCBhMAorICAgIGNDYWxsMihfc2xvd19wYXRoX3dhc21fcG9wY291bnRsbCkK
KyAgICByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkKKyAgICByZXR1cm5xKGN0eCwgcjEpCitlbmQp
CisKK3dhc21PcChpNjRfZXF6LCBXYXNtSTY0RXF6LCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0
eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBjcWVxIHQwLCAwLCB0MAorICAgIHJldHVybmkoY3R4LCB0
MCkKK2VuZCkKKworIyBmNjQgYmluYXJ5IG9wcworCit3YXNtT3AoZjY0X2NvcHlzaWduLCBXYXNt
RjY0Q29weXNpZ24sIG1hY3JvKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX2xocywgZnQwKQorICAg
IG1sb2FkZChjdHgsIG1fcmhzLCBmdDEpCisKKyAgICBmZDJxIGZ0MSwgdDEKKyAgICBtb3ZlIDB4
ODAwMDAwMDAwMDAwMDAwMCwgdDIKKyAgICBhbmRxIHQyLCB0MQorCisgICAgZmQycSBmdDAsIHQw
CisgICAgbW92ZSAweDdmZmZmZmZmZmZmZmZmZmYsIHQyCisgICAgYW5kcSB0MiwgdDAKKworICAg
IG9ycSB0MSwgdDAKKyAgICBmcTJkIHQwLCBmdDAKKyAgICByZXR1cm5kKGN0eCwgZnQwKQorZW5k
KQorCisjIFR5cGUgY29udmVyc2lvbiBvcHMKKword2FzbU9wKGk2NF9leHRlbmRfc19pMzIsIFdh
c21JNjRFeHRlbmRTSTMyLCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0
MCkKKyAgICBzeGkycSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21P
cChpNjRfZXh0ZW5kX3VfaTMyLCBXYXNtSTY0RXh0ZW5kVUkzMiwgbWFjcm8oY3R4KQorICAgIG1s
b2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgenhpMnEgdDAsIHQxCisgICAgcmV0dXJucShj
dHgsIHQxKQorZW5kKQorCit3YXNtT3AoZjY0X3JlaW50ZXJwcmV0X2k2NCwgV2FzbUY2NFJlaW50
ZXJwcmV0STY0LCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAg
ICBmcTJkIHQwLCBmdDAKKyAgICByZXR1cm5kKGN0eCwgZnQwKQorZW5kKQorCit3YXNtT3AoaTY0
X3JlaW50ZXJwcmV0X2Y2NCwgV2FzbUk2NFJlaW50ZXJwcmV0RjY0LCBtYWNybyhjdHgpCisgICAg
bWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisgICAgZmQycSBmdDAsIHQwCisgICAgcmV0dXJu
cShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NfZjY0LCBXYXNtSTMyVHJ1bmNT
RjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAg
bW92ZSAweGMxZTAwMDAwMDAyMDAwMDAsIHQwICMgSU5UMzJfTUlOIC0gMS4wCisgICAgZnEyZCB0
MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBt
b3ZlIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UMzJfTUlOCisgICAgZnEyZCB0MCwgZnQx
CisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0
ZWQyaXMgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmM6
CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKK2VuZCkKKword2FzbU9wKGkz
Ml90cnVuY191X2Y2NCwgV2FzbUkzMlRydW5jVUY2NCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQo
Y3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAj
IC0xLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91
bmRzVHJ1bmMKKworICAgIG1vdmUgMHg0MWYwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDMyX01JTiAq
IC0yLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91
bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDAp
CisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1
bmMpCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc19mMzIsIFdhc21JNjRUcnVuY1NGMzIsIG1h
Y3JvIChjdHgpCisgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4
ZGYwMDAwMDAsIHQwICMgSU5UNjRfTUlOCisgICAgZmkyZiB0MCwgZnQxCisgICAgYmZsdHVuIGZ0
MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZSAweDVmMDAwMDAwLCB0MCAjIC1J
TlQ2NF9NSU4KKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9m
Qm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZjJxcyBmdDAsIHQwCisgICAgcmV0dXJucShjdHgs
IHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5k
c1RydW5jKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5jX3VfZjMyLCBXYXNtSTY0VHJ1bmNVRjMy
LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92
ZSAweGJmODAwMDAwLCB0MCAjIC0xLjAKKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmx0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmUgMHg1ZjgwMDAwMCwgdDAgIyBJ
TlQ2NF9NSU4gKiAtMi4wCisgICAgZmkyZiB0MCwgZnQxCisgICAgYmZndGVxdW4gZnQwLCBmdDEs
IC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0ZWYycSBmdDAsIHQwCisgICAgcmV0dXJu
cShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRP
ZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5jX3NfZjY0LCBXYXNtSTY0VHJ1
bmNTRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisg
ICAgbW92ZSAweGMzZTAwMDAwMDAwMDAwMDAsIHQwICMgSU5UNjRfTUlOCisgICAgZnEyZCB0MCwg
ZnQxCisgICAgYmRsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZSAw
eDQzZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDY0X01JTgorICAgIGZxMmQgdDAsIGZ0MQorICAg
IGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVkMnFz
IGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAg
IHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpNjRfdHJ1
bmNfdV9mNjQsIFdhc21JNjRUcnVuY1VGNjQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwg
bV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YmZmMDAwMDAwMDAwMDAwMCwgdDAgIyAtMS4w
CisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1Ry
dW5jCisKKyAgICBtb3ZlIDB4NDNmMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4w
CisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1Ry
dW5jCisKKyAgICB0cnVuY2F0ZWQycSBmdDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisu
b3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQor
ZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfcywgV2FzbUkzMlRydW5jU2F0RjY0Uywg
bWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUg
MHhjMWUwMDAwMDAwMjAwMDAwLCB0MCAjIElOVDMyX01JTiAtIDEuMAorICAgIGZxMmQgdDAsIGZ0
MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOCisK
KyAgICBtb3ZlIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UMzJfTUlOCisgICAgZnEyZCB0
MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisK
KyAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9m
Qm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKKyAgICBiZGVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNU
cnVuY1NhdE1pbgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRP
ZkJvdW5kc1RydW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQzMl9NQVgpLCB0MAor
ICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92
ZSAoY29uc3RleHByIElOVDMyX01JTiksIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorZW5kKQor
Cit3YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfdSwgV2FzbUkzMlRydW5jU2F0RjY0VSwgbWFjcm8g
KGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZmYw
MDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKworICAgIG1vdmUgMHg0MWYwMDAwMDAw
MDAwMDAwLCB0MCAjIElOVDMyX01JTiAqIC0yLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0
ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZDJp
IGZ0MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWlu
OgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1Ry
dW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UMzJfTUFYKSwgdDAKKyAgICByZXR1
cm5pKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl9zLCBXYXNtSTY0
VHJ1bmNTYXRGMzJTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQw
KQorCisgICAgbW92ZSAweGRmMDAwMDAwLCB0MCAjIElOVDY0X01JTgorICAgIGZpMmYgdDAsIGZ0
MQorICAgIGJmbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTgorCisg
ICAgbW92ZSAweDVmMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KKyAgICBmaTJmIHQwLCBmdDEKKyAg
ICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5j
YXRlZjJxcyBmdDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1pbk9yTmFOOgorICAgIGJmZXEgZnQwLCBmdDAsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWlu
CisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1
bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIElOVDY0X01BWCksIHQwCisgICAgcmV0dXJu
cShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAgICBtb3ZlIChjb25zdGV4
cHIgSU5UNjRfTUlOKSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChp
NjRfdHJ1bmNfc2F0X2YzMl91LCBXYXNtSTY0VHJ1bmNTYXRGMzJVLCBtYWNybyAoY3R4KQorICAg
IG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGJmODAwMDAwLCB0MCAj
IC0xLjAKKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91
bmRzVHJ1bmNTYXRNaW4KKworICAgIG1vdmUgMHg1ZjgwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAt
Mi4wCisgICAgZmkyZiB0MCwgZnQxCisgICAgYmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5k
c1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWYycSBmdDAsIHQwCisgICAgcmV0dXJucShjdHgs
IHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAgICBtb3ZlIDAsIHQwCisgICAgcmV0
dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChjb25z
dGV4cHIgVUlOVDY0X01BWCksIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNt
T3AoaTY0X3RydW5jX3NhdF9mNjRfcywgV2FzbUk2NFRydW5jU2F0RjY0UywgbWFjcm8gKGN0eCkK
KyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhjM2UwMDAwMDAw
MDAwMDAwLCB0MCAjIElOVDY0X01JTgorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkbHR1biBmdDAs
IGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTgorCisgICAgbW92ZSAweDQzZTAwMDAw
MDAwMDAwMDAsIHQwICMgLUlOVDY0X01JTgorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisgICAgdHJ1bmNhdGVkMnFzIGZ0
MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JO
YU46CisgICAgYmRlcSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKyAgICBtb3Zl
IDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoK
KyAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUFYKSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDAp
CisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9N
SU4pLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF90cnVuY19z
YXRfZjY0X3UsIFdhc21JNjRUcnVuY1NhdEY2NFUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0
eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YmZmMDAwMDAwMDAwMDAwMCwgdDAgIyAt
MS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5k
c1RydW5jU2F0TWluCisKKyAgICBtb3ZlIDB4NDNmMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9N
SU4gKiAtMi4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRP
ZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQycSBmdDAsIHQwCisgICAgcmV0dXJu
cShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAgICBtb3ZlIDAsIHQwCisg
ICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKKyAgICBtb3Zl
IChjb25zdGV4cHIgVUlOVDY0X01BWCksIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQor
CisjIEV4dGVuZCBvcHMKKword2FzbU9wKGk2NF9leHRlbmQ4X3MsIFdhc21JNjRFeHRlbmQ4Uywg
bWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgc3hiMnEgdDAs
IHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X2V4dGVuZDE2X3Ms
IFdhc21JNjRFeHRlbmQxNlMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQs
IHQwKQorICAgIHN4aDJxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKword2Fz
bU9wKGk2NF9leHRlbmQzMl9zLCBXYXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhjdHgpCisgICAgbWxv
YWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBzeGkycSB0MCwgdDEKKyAgICByZXR1cm5xKGN0
eCwgdDEpCitlbmQpCisKKyMgQXRvbWljcworCittYWNybyB3YXNtQXRvbWljQmluYXJ5Uk1XT3Bz
KGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIsIGZuaCwgZm5pLCBmbnEpCisg
ICAgd2FzbU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9t
aWNSbXc4JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgs
IG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAg
ICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBv
aW50ZXJBZGRpbmdPZmZzZXQoY3R4LCB0MywgdDEsIDEpCisgICAgICAgIGZuYih0MCwgW3QzXSwg
dDIsIHQ1LCB0MSkKKyAgICAgICAgYW5kcSAweGZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kOFRv
NjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZiwgLm9rIGVuZCkKKyAg
ICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19y
bXcxNiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXcxNiV1cHBlckNhc2VPcGNv
ZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAg
ICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1
ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0
aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCAyKQorICAgICAgICBmbmgodDAsIFt0M10sIHQy
LCB0NSwgdDEpCisgICAgICAgIGFuZHEgMHhmZmZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kMTZU
bzY0CisgICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmZmZiwgLm9rIGVuZCkK
KyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21p
Y19ybXczMiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXczMiV1cHBlckNhc2VP
cGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQor
ICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV92
YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0
V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA0KQorICAgICAgICBmbmkodDAsIFt0M10s
IHQyLCB0NSwgdDEpCisgICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmZmZmZm
ZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBlbmQpCisgICAgd2Fz
bU9wKGk2NF9hdG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21JNjRBdG9taWNSbXcldXBw
ZXJDYXNlT3Bjb2RlJSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIs
IHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgbWxvYWRxKGN0
eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5n
T2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA4KQorICAgICAgICBmbnEodDAs
IFt0M10sIHQyLCB0NSwgdDEpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBlbmQpCitl
bmQKKworbWFjcm8gd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKGxvd2VyQ2FzZU9w
Y29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmksIGZucSkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1X
T3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLAorICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgaWYgWDg2XzY0CisgICAg
ICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKKyAgICAgICAgICAgICAgICBsb2FkYiBtZW0s
IHQwR1BSCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0
MkdQUgorICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAg
YmF0b21pY3dlYWtjYXNiIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAorICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9hZGxpbmthY3FiIG1lbSwg
dDFHUFIKKyAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAg
ICAgICAgICBzdG9yZWNvbmRyZWxiIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICAgICAg
YmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIK
KyAgICAgICAgICAgIGVuZAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBpZiBYODZfNjQKKyAgICAgICAgICAg
ICAgICBtb3ZlIHQwR1BSLCB0NUdQUgorICAgICAgICAgICAgICAgIGxvYWRoIG1lbSwgdDBHUFIK
KyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCisg
ICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBiYXRvbWlj
d2Vha2Nhc2ggdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2FkbGlua2FjcWggbWVtLCB0MUdQUgor
ICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAg
IHN0b3JlY29uZHJlbGggdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0
NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgorICAgICAg
ICAgICAgZW5kCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIGlmIFg4Nl82NAorICAgICAgICAgICAgICAgIG1v
dmUgdDBHUFIsIHQ1R1BSCisgICAgICAgICAgICAgICAgbG9hZGkgbWVtLCB0MEdQUgorICAgICAg
ICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKKyAgICAgICAg
ICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIGJhdG9taWN3ZWFrY2Fz
aSB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxaSBtZW0sIHQxR1BSCisgICAgICAg
ICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgc3RvcmVj
b25kcmVsaSB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAw
LCAubG9vcAorICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCisgICAgICAgICAgICBl
bmQKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIs
IHQxR1BSKQorICAgICAgICAgICAgaWYgWDg2XzY0CisgICAgICAgICAgICAgICAgbW92ZSB0MEdQ
UiwgdDVHUFIKKyAgICAgICAgICAgICAgICBsb2FkcSBtZW0sIHQwR1BSCisgICAgICAgICAgICAu
bG9vcDoKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgorICAgICAgICAgICAgICAg
IGZucSh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgYmF0b21pY3dlYWtjYXNxIHQwR1BS
LCB0MkdQUiwgbWVtLCAubG9vcAorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgLmxvb3A6
CisgICAgICAgICAgICAgICAgbG9hZGxpbmthY3FxIG1lbSwgdDFHUFIKKyAgICAgICAgICAgICAg
ICBmbnEodDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmRyZWxx
IHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29w
CisgICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgICAgIGVuZAorICAg
ICAgICBlbmQpCitlbmQKKworaWYgWDg2XzY0CisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhf
YWRkLCBBZGQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIp
IGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0gZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaCB0MEdQUiwgbWVtIGVuZCwKKyAg
ICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2Fk
ZGkgdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQ
UiwgdDFHUFIpIGF0b21pY3hjaGdhZGRxIHQwR1BSLCBtZW0gZW5kKQorICAgIHdhc21BdG9taWNC
aW5hcnlSTVdPcHMoX3N1YiwgU3ViLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwg
dDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3ViYiB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFj
cm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1YmggdDBHUFIs
IG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIp
IGF0b21pY3hjaGdzdWJpIHQwR1BSLCBtZW0gZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3VicSB0MEdQUiwgbWVtIGVuZCkKKyAg
ICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94Y2hnLCBYY2hnLAorICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYiB0MEdQUiwgbWVtIGVuZCwK
KyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNo
Z2ggdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQ
UiwgdDFHUFIpIGF0b21pY3hjaGdpIHQwR1BSLCBtZW0gZW5kLAorICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hncSB0MEdQUiwgbWVtIGVuZCkK
KyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FuZCwgQW5kLAorICAgICAg
ICBtYWNybyh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICBhbmRpIHQ1R1BSLCB0MkdQUgorICAg
ICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgIGFuZHEg
dDVHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0
aFdlYWtDQVMoX29yLCBPciwKKyAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQorICAgICAgICAg
ICAgb3JpIHQ1R1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQ1R1BSLCB0
MkdQUikKKyAgICAgICAgICAgIG9ycSB0NUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdh
c21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeG9yLCBYb3IsCisgICAgICAgIG1hY3Jv
KHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgIHhvcmkgdDVHUFIsIHQyR1BSCisgICAgICAgIGVu
ZCwKKyAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQorICAgICAgICAgICAgeG9ycSB0NUdQUiwg
dDJHUFIKKyAgICAgICAgZW5kKQorZWxzaWYgQVJNNjRFCisgICAgd2FzbUF0b21pY0JpbmFyeVJN
V09wcyhfYWRkLCBBZGQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwg
dDFHUFIpIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFj
cm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGggdDBHUFIs
IG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIs
IHQxR1BSKSBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRxIHQwR1BS
LCBtZW0sIHQwR1BSIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9zdWIsIFN1YiwK
KyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAg
ICAgIG5lZ3EgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0sIHQw
R1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikKKyAgICAgICAgICAgIG5lZ3EgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdh
ZGRoIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIs
IG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5lZ3EgdDBHUFIKKyAgICAg
ICAgICAgIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCwKKyAg
ICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAg
IG5lZ3EgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdhZGRxIHQwR1BSLCBtZW0sIHQwR1BS
CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9hbmQsIEFuZCwKKyAg
ICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAg
IG5vdHEgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcmIgdDBHUFIsIG1lbSwgdDBH
UFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIs
IHQxR1BSKQorICAgICAgICAgICAgbm90cSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2Ns
ZWFyaCB0MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBub3RxIHQwR1BSCisgICAg
ICAgICAgICBhdG9taWN4Y2hnY2xlYXJpIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCwK
KyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAg
ICAgIG5vdHEgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcnEgdDBHUFIsIG1lbSwg
dDBHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX29yLCBPciwK
KyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNo
Z29yYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcmggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAor
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
b3JpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJH
UFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29ycSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQpCisg
ICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfeG9yLCBYb3IsCisgICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JiIHQwR1BSLCBtZW0sIHQw
R1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikg
YXRvbWljeGNoZ3hvcmggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9yaSB0MEdQUiwgbWVtLCB0
MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIp
IGF0b21pY3hjaGd4b3JxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKKyAgICB3YXNtQXRvbWljQmlu
YXJ5Uk1XT3BzKF94Y2hnLCBYY2hnLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwg
dDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAg
IG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdoIHQwR1BS
LCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikgYXRvbWljeGNoZ2kgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNy
byh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hncSB0MEdQUiwgbWVt
LCB0MEdQUiBlbmQpCitlbHNpZiBBUk02NCBvciBSSVNDVjY0CisgICAgd2FzbUF0b21pY0JpbmFy
eVJNV09wc1dpdGhXZWFrQ0FTKF9hZGQsIEFkZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BS
LCB0MkdQUikKKyAgICAgICAgICAgIGFkZGkgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBl
bmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBhZGRx
IHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlS
TVdPcHNXaXRoV2Vha0NBUyhfc3ViLCBTdWIsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwg
dDJHUFIpCisgICAgICAgICAgICBzdWJpIHQxR1BSLCB0MEdQUiwgdDJHUFIKKyAgICAgICAgZW5k
LAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgc3VicSB0
MUdQUiwgdDBHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1X
T3BzV2l0aFdlYWtDQVMoX3hjaGcsIFhjaGcsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwg
dDJHUFIpCisgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0
MkdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FT
KF9hbmQsIEFuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAg
ICAgIGFuZGkgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3Jv
KHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBhbmRxIHQwR1BSLCB0MUdQUiwgdDJH
UFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhf
b3IsIE9yLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAg
b3JpIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQ
UiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgb3JxIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAg
ICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeG9yLCBY
b3IsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICB4b3Jp
IHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwg
dDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgeG9ycSB0MEdQUiwgdDFHUFIsIHQyR1BSCisgICAg
ICAgIGVuZCkKK2VuZAorCittYWNybyB3YXNtQXRvbWljQ29tcGFyZUV4Y2hhbmdlT3BzKGxvd2Vy
Q2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIsIGZuaCwgZm5pLCBmbnEpCisgICAgd2Fz
bU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4
JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9p
bnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBtbG9h
ZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIp
CisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KGN0eCwgdDMs
IHQxLCAxKQorICAgICAgICBmbmIodDAsIHQyLCBbdDNdLCB0NSwgdDEpCisgICAgICAgIGFuZHEg
MHhmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0CisgICAgICAgIGFzc2VydChtYWNybyhv
aykgYnFiZXEgdDAsIDB4ZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAg
ICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MTYlbG93ZXJDYXNlT3Bjb2RlJV91LCBX
YXNtSTY0QXRvbWljUm13MTYldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAg
bWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwg
dDEpCisgICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQorICAgICAgICBtbG9hZHEo
Y3R4LCBtX3ZhbHVlLCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRp
bmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDIpCisgICAgICAgIGZuaCh0
MCwgdDIsIFt0M10sIHQ1LCB0MSkKKyAgICAgICAgYW5kcSAweGZmZmYsIHQwICMgRklYTUU6IFpl
cm9FeHRlbmQxNlRvNjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZmZm
LCAub2sgZW5kKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorICAgIHdhc21P
cChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzMy
JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9p
bnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBtbG9h
ZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIp
CisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdu
bWVudENoZWNrKGN0eCwgdDMsIHQxLCA0KQorICAgICAgICBmbmkodDAsIHQyLCBbdDNdLCB0NSwg
dDEpCisgICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmZmZmZmZmYsIC5vayBl
bmQpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9h
dG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21JNjRBdG9taWNSbXcldXBwZXJDYXNlT3Bj
b2RlJSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAg
ICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBl
Y3RlZCwgdDApCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQorICAgICAgICBlbWl0
Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgs
IHQzLCB0MSwgOCkKKyAgICAgICAgZm5xKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQorICAgICAgICBy
ZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorZW5kCisKK2lmIFg4Nl82NCBvciBBUk02NEUgb3Ig
QVJNNjQgb3IgUklTQ1Y2NAorIyB0MEdQUiA9PiBleHBlY3RlZCwgdDJHUFIgPT4gdmFsdWUsIG1l
bSA9PiBtZW1vcnkgcmVmZXJlbmNlCit3YXNtQXRvbWljQ29tcGFyZUV4Y2hhbmdlT3BzKF9jbXB4
Y2hnLCBDbXB4Y2hnLAorICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIp
CisgICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKKyAgICAgICAgICAgIGJxYSB0MEdQUiAsIDB4
ZmYsIC5mYWlsCisgICAgICAgICAgICBhdG9taWN3ZWFrY2FzYiB0MEdQUiwgdDJHUFIsIG1lbQor
ICAgICAgICAgICAgam1wIC5kb25lCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgYXRvbWlj
bG9hZGIgbWVtLCB0MEdQUgorICAgICAgICAuZG9uZToKKyAgICAgICAgZWxzZQorICAgICAgICAu
bG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5rYWNxYiBtZW0sIHQxR1BSCisgICAgICAgICAgICBi
cW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmRyZWxiIHQ1R1BS
LCB0MkdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAgICAg
ICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgc3RvcmVjb25kcmVsYiB0
NUdQUiwgdDFHUFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAg
ICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIG1vdmUgdDFHUFIs
IHQwR1BSCisgICAgICAgIGVuZAorICAgIGVuZCwKKyAgICBtYWNybyh0MEdQUiwgdDJHUFIsIG1l
bSwgdDVHUFIsIHQxR1BSKQorICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRFCisgICAgICAgICAg
ICBicWEgdDBHUFIsIDB4ZmZmZiwgLmZhaWwKKyAgICAgICAgICAgIGF0b21pY3dlYWtjYXNoIHQw
R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICBqbXAgLmRvbmUKKyAgICAgICAgLmZhaWw6Cisg
ICAgICAgICAgICBhdG9taWNsb2FkaCBtZW0sIHQwR1BSCisgICAgICAgIC5kb25lOgorICAgICAg
ICBlbHNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmthY3FoIG1lbSwgdDFH
UFIKKyAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKKyAgICAgICAgICAgIHN0
b3JlY29uZHJlbGggdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAs
IC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAg
ICBzdG9yZWNvbmRyZWxoIHQ1R1BSLCB0MUdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BS
LCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAg
ICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgZW5kCisgICAgZW5kLAorICAgIG1hY3Jv
KHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCisgICAgICAgIGlmIFg4Nl82NCBvciBB
Uk02NEUKKyAgICAgICAgICAgIGJxYSB0MEdQUiwgMHhmZmZmZmZmZiwgLmZhaWwKKyAgICAgICAg
ICAgIGF0b21pY3dlYWtjYXNpIHQwR1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICBqbXAgLmRv
bmUKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBhdG9taWNsb2FkaSBtZW0sIHQwR1BSCisg
ICAgICAgIC5kb25lOgorICAgICAgICBlbHNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAg
bG9hZGxpbmthY3FpIG1lbSwgdDFHUFIKKyAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwg
LmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGkgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAg
ICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAg
ICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0MUdQUiwgbWVtCisg
ICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisg
ICAgICAgIC5kb25lOgorICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgZW5k
CisgICAgZW5kLAorICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCisg
ICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKKyAgICAgICAgICAgIGF0b21pY3dlYWtjYXNxIHQw
R1BSLCB0MkdQUiwgbWVtCisgICAgICAgIGVsc2UKKyAgICAgICAgLmxvb3A6CisgICAgICAgICAg
ICBsb2FkbGlua2FjcXEgbWVtLCB0MUdQUgorICAgICAgICAgICAgYnFuZXEgdDBHUFIsIHQxR1BS
LCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kcmVscSB0NUdQUiwgdDJHUFIsIG1lbQorICAg
ICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAg
ICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbHEgdDVHUFIsIHQxR1BSLCBtZW0K
KyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AK
KyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgorICAgICAgICBl
bmQKKyAgICBlbmQpCitlbmQKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vYXJtLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJi
CmluZGV4IGM4YThmZDA2YjYxOC4uYTZmMTgyMjliNTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vYXJtLnJiCkBAIC03MSw2ICs3MSwxMSBAQCBjbGFzcyBOb2RlCiAgICAgICAg
IHJhaXNlICJCb2d1cyByZWdpc3RlciBuYW1lICN7ZG91YmxlT3BlcmFuZH0iIHVubGVzcyBkb3Vi
bGVPcGVyYW5kID1+IC9eZC8KICAgICAgICAgInMiICsgKCR+LnBvc3RfbWF0Y2gudG9faSAqIDIp
LnRvX3MKICAgICBlbmQKKyAgICBkZWYgYXJtU2luZ2xlSGkKKyAgICAgICAgZG91YmxlT3BlcmFu
ZCA9IGFybU9wZXJhbmQKKyAgICAgICAgcmFpc2UgIkJvZ3VzIHJlZ2lzdGVyIG5hbWUgI3tkb3Vi
bGVPcGVyYW5kfSIgdW5sZXNzIGRvdWJsZU9wZXJhbmQgPX4gL15kLworICAgICAgICAicyIgKyAo
JH4ucG9zdF9tYXRjaC50b19pICogMiArIDEpLnRvX3MKKyAgICBlbmQKIGVuZAogCiBjbGFzcyBT
cGVjaWFsUmVnaXN0ZXIKQEAgLTEwNiwyMSArMTExLDIxIEBAIGVuZAogY2xhc3MgUmVnaXN0ZXJJ
RAogICAgIGRlZiBhcm1PcGVyYW5kCiAgICAgICAgIGNhc2UgbmFtZQotICAgICAgICB3aGVuICJ0
MCIsICJhMCIsICJyMCIKKyAgICAgICAgd2hlbiAidDAiLCAiYTAiLCAid2EwIiwgInIwIgogICAg
ICAgICAgICAgInIwIgotICAgICAgICB3aGVuICJ0MSIsICJhMSIsICJyMSIKKyAgICAgICAgd2hl
biAidDEiLCAiYTEiLCAid2ExIiwgInIxIgogICAgICAgICAgICAgInIxIgotICAgICAgICB3aGVu
ICJ0MiIsICJhMiIKKyAgICAgICAgd2hlbiAidDIiLCAiYTIiLCAid2EyIgogICAgICAgICAgICAg
InIyIgotICAgICAgICB3aGVuICJ0MyIsICJhMyIKKyAgICAgICAgd2hlbiAidDMiLCAiYTMiLCAi
d2EzIgogICAgICAgICAgICAgInIzIgogICAgICAgICB3aGVuICJ0NCIgIyBMTEludCBQQwogICAg
ICAgICAgICAgInI0IgotICAgICAgICB3aGVuICJ0NSIKKyAgICAgICAgd2hlbiAidDUiLCAid3Mw
IiAjIHdzMCBtdXN0IGJlIGEgbm9uLWFyZ3VtZW50L25vbi1yZXR1cm4gR1BSCiAgICAgICAgICAg
ICAicjUiCiAgICAgICAgIHdoZW4gImNmciIKICAgICAgICAgICAgICJyNyIKLSAgICAgICAgd2hl
biAidDYiCisgICAgICAgIHdoZW4gInQ2IiwgIndzMSIgIyB3czEgbXVzdCBiZSBhIG5vbi1hcmd1
bWVudC9ub24tcmV0dXJuIEdQUgogICAgICAgICAgICAgInI4IgogICAgICAgICB3aGVuICJ0NyIK
ICAgICAgICAgICAgICJyOSIgIyByOSBpcyBhbHNvIGEgc2NyYXRjaCByZWdpc3Rlciwgc28gdXNl
IGNhcmVmdWxseSEKQEAgLTE0MywyMSArMTQ4LDIxIEBAIGVuZAogY2xhc3MgRlBSZWdpc3RlcklE
CiAgICAgZGVmIGFybU9wZXJhbmQKICAgICAgICAgY2FzZSBuYW1lCi0gICAgICAgIHdoZW4gImZ0
MCIsICJmciIsICJmYTAiCisgICAgICAgIHdoZW4gImZ0MCIsICJmciIsICJmYTAiLCAid2ZhMCIK
ICAgICAgICAgICAgICJkMCIKLSAgICAgICAgd2hlbiAiZnQxIiwgImZhMSIKKyAgICAgICAgd2hl
biAiZnQxIiwgImZhMSIsICJ3ZmExIgogICAgICAgICAgICAgImQxIgotICAgICAgICB3aGVuICJm
dDIiCisgICAgICAgIHdoZW4gImZ0MiIsICJ3ZmEyIgogICAgICAgICAgICAgImQyIgotICAgICAg
ICB3aGVuICJmdDMiCisgICAgICAgIHdoZW4gImZ0MyIsICJ3ZmEzIgogICAgICAgICAgICAgImQz
IgotICAgICAgICB3aGVuICJmdDQiCisgICAgICAgIHdoZW4gImZ0NCIsICJ3ZmE0IgogICAgICAg
ICAgICAgImQ0IgotICAgICAgICB3aGVuICJmdDUiCisgICAgICAgIHdoZW4gImZ0NSIsICJ3ZmE1
IgogICAgICAgICAgICAgImQ1IgotICAgICAgICB3aGVuICJmdDYiCisgICAgICAgIHdoZW4gImZ0
NiIsICJ3ZmE2IgogICAgICAgICAgICAgImQ2IgotICAgICAgICB3aGVuICJmdDciCisgICAgICAg
IHdoZW4gImZ0NyIsICJ3ZmE3IgogICAgICAgICAgICAgImQ3IgogICAgICAgICB3aGVuICJjc2Zy
MCIKICAgICAgICAgICAgICJkOCIKQEAgLTE4OSw3ICsxOTQsMTEgQEAgZW5kCiBjbGFzcyBBZGRy
ZXNzCiAgICAgZGVmIGFybU9wZXJhbmQKICAgICAgICAgcmFpc2UgIkJhZCBvZmZzZXQgYXQgI3tj
b2RlT3JpZ2luU3RyaW5nfSIgaWYgb2Zmc2V0LnZhbHVlIDwgLTB4ZmYgb3Igb2Zmc2V0LnZhbHVl
ID4gMHhmZmYKLSAgICAgICAgIlsje2Jhc2UuYXJtT3BlcmFuZH0sIFwjI3tvZmZzZXQudmFsdWV9
XSIKKyAgICAgICAgaWYgb2Zmc2V0LnZhbHVlID09IDAKKyAgICAgICAgICAiWyN7YmFzZS5hcm1P
cGVyYW5kfV0iCisgICAgICAgIGVsc2UKKyAgICAgICAgICAiWyN7YmFzZS5hcm1PcGVyYW5kfSwg
XCMje29mZnNldC52YWx1ZX1dIgorICAgICAgICBlbmQKICAgICBlbmQKIGVuZAogCkBAIC0zMzIs
MTYgKzM0MSwyNSBAQCBjbGFzcyBTZXF1ZW5jZQogICAgICAgICByZXN1bHQgPSBhcm1Mb3dlckxh
YmVsUmVmZXJlbmNlcyhyZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1l
ZEFkZHJlc3NlcyhyZXN1bHQpIHsKICAgICAgICAgICAgIHwgbm9kZSwgYWRkcmVzcyB8Ci0gICAg
ICAgICAgICBpZiBhZGRyZXNzLmlzX2E/IEJhc2VJbmRleAotICAgICAgICAgICAgICAgIGFkZHJl
c3Mub2Zmc2V0LnZhbHVlID09IDAKLSAgICAgICAgICAgIGVsc2lmIGFkZHJlc3MuaXNfYT8gQWRk
cmVzcwotICAgICAgICAgICAgICAgICgtMHhmZi4uMHhmZmYpLmluY2x1ZGU/IGFkZHJlc3Mub2Zm
c2V0LnZhbHVlCisgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVu
ICJsb2FkMmlhIiwgInN0b3JlMmlhIgorICAgICAgICAgICAgICAgIGlmIGFkZHJlc3MuaXNfYT8g
QWRkcmVzcworICAgICAgICAgICAgICAgICAgICAoYWRkcmVzcy5vZmZzZXQudmFsdWUgJSA0ID09
IDApICYmICgoLTEwMjMuLjEwMjMpLmluY2x1ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVlKQorICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZmFsc2UKKyAgICAgICAgICAg
ICAgICBlbmQKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBmYWxzZQorICAgICAg
ICAgICAgICAgIGlmIGFkZHJlc3MuaXNfYT8gQmFzZUluZGV4CisgICAgICAgICAgICAgICAgICAg
IGFkZHJlc3Mub2Zmc2V0LnZhbHVlID09IDAgJiYgbm9kZS5vcGNvZGUKKyAgICAgICAgICAgICAg
ICBlbHNpZiBhZGRyZXNzLmlzX2E/IEFkZHJlc3MKKyAgICAgICAgICAgICAgICAgICAgKC0weGZm
Li4weGZmZikuaW5jbHVkZT8gYWRkcmVzcy5vZmZzZXQudmFsdWUKKyAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgIGZhbHNlCisgICAgICAgICAgICAgICAgZW5kCiAgICAg
ICAgICAgICBlbmQKICAgICAgICAgfQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNYWxmb3Jt
ZWRBZGRyZXNzZXNEb3VibGUocmVzdWx0KQotICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNw
bGFjZWRJbW1lZGlhdGVzKHJlc3VsdCwgWyJzdG9yZWIiLCAic3RvcmVoIiwgInN0b3JlaSIsICJz
dG9yZXAiLCAic3RvcmVxIl0pCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZElt
bWVkaWF0ZXMocmVzdWx0LCBbInN0b3JlYiIsICJzdG9yZWgiLCAic3RvcmVpIiwgInN0b3JlcCIs
ICJzdG9yZXEiLCAic3RvcmUyaWEiXSkKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9y
bWVkSW1tZWRpYXRlcyhyZXN1bHQsIDAuLjB4ZmYsIDAuLjB4MGZmKQogICAgICAgICByZXN1bHQg
PSByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXMocmVzdWx0KQogICAgICAgICByZXN1bHQgPSBy
aXNjTG93ZXJSZWdpc3RlclJldXNlKHJlc3VsdCkKQEAgLTM2MCw2ICszNzgsMTAgQEAgZGVmIGFy
bUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcykKICAgICBhcm1PcGVyYW5kcyhbb3BlcmFuZHNbLTFd
XSArIG9wZXJhbmRzWzAuLi0yXSkKIGVuZAogCitkZWYgYXJtRmxpcHBlZE9wZXJhbmRzUGFpcihv
cGVyYW5kcykKKyAgICBhcm1PcGVyYW5kcyhbb3BlcmFuZHNbLTJdLCBvcGVyYW5kc1stMV1dICsg
b3BlcmFuZHNbMC4uLTNdKQorZW5kCisKIGRlZiBlbWl0QXJtQ29tcGFjdChvcGNvZGUyLCBvcGNv
ZGUzLCBvcGVyYW5kcykKICAgICBpZiBvcGVyYW5kcy5zaXplID09IDMKICAgICAgICAgJGFzbS5w
dXRzICIje29wY29kZTN9ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCkBAIC0zODks
NiArNDExLDEyIEBAIGRlZiBlbWl0QXJtRG91YmxlQnJhbmNoKGJyYW5jaE9wY29kZSwgb3BlcmFu
ZHMpCiAgICAgJGFzbS5wdXRzICIje2JyYW5jaE9wY29kZX0gI3tvcGVyYW5kc1syXS5hc21MYWJl
bH0iCiBlbmQKIAorZGVmIGVtaXRBcm1TaW5nbGVCcmFuY2goYnJhbmNoT3Bjb2RlLCBvcGVyYW5k
cykKKyAgICAkYXNtLnB1dHMgInZjbXBlLmYzMiAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0sICN7
b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKKyAgICAkYXNtLnB1dHMgInZtcnMgYXBzcl9uemN2LCBm
cHNjciIKKyAgICAkYXNtLnB1dHMgIiN7YnJhbmNoT3Bjb2RlfSAje29wZXJhbmRzWzJdLmFzbUxh
YmVsfSIKK2VuZAorCiBkZWYgZW1pdEFybVRlc3Qob3BlcmFuZHMpCiAgICAgdmFsdWUgPSBvcGVy
YW5kc1swXQogICAgIGNhc2Ugb3BlcmFuZHMuc2l6ZQpAQCAtNDA5LDcgKzQzNywxNSBAQCBlbmQK
IAogZGVmIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCBjb2RlKQogICAgICRhc20ucHV0
cyAibW92ICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sIFwjMCIKLSAgICAkYXNtLnB1dHMgInZj
bXBlLmY2NCAje2FybU9wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0iCisgICAgJGFzbS5wdXRzICJ2
Y21wLmY2NCAje2FybU9wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0iCisgICAgJGFzbS5wdXRzICJ2
bXJzIEFQU1JfbnpjdiwgRlBTQ1IiCisgICAgJGFzbS5wdXRzICJpdCAje2NvZGV9IgorICAgICRh
c20ucHV0cyAibW92I3tjb2RlfSAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCBcIzEiCitlbmQK
KworZGVmIGVtaXRBcm1GbG9hdENvbXBhcmUob3BlcmFuZHMsIGNvZGUpCisgICAgJGFzbS5wdXRz
ICJtb3YgI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgXCMwIgorICAgICRhc20ucHV0cyAidmNt
cC5mMzIgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0i
CiAgICAgJGFzbS5wdXRzICJ2bXJzIEFQU1JfbnpjdiwgRlBTQ1IiCiAgICAgJGFzbS5wdXRzICJp
dCAje2NvZGV9IgogICAgICRhc20ucHV0cyAibW92I3tjb2RlfSAje29wZXJhbmRzWzJdLmFybU9w
ZXJhbmR9LCBcIzEiCkBAIC00MjksNiArNDY1LDE5IEBAIGRlZiBlbWl0QXJtVGVzdFNldChvcGVy
YW5kcywgY29kZSkKICAgICAkYXNtLnB1dHMgIm1vdiN7Y29kZX0gI3tvcGVyYW5kc1stMV0uYXJt
T3BlcmFuZH0sIFwjMSIKIGVuZAogCitkZWYgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgdGV4
dCkKKyAgICByZXR1cm4gSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJlbWl0IiwgW1N0cmlu
Z0xpdGVyYWwubmV3KGNvZGVPcmlnaW4sICJcIiN7dGV4dH1cIiIpXSkKK2VuZAorCitkZWYgZW1p
dEFybVRydW5jYXRlRmxvYXQoY29kZU9yaWdpbiwgdG8sIGZyb20sIG9wZXJhbmRzKQorICAgIHRt
cCA9IEFSTV9FWFRSQV9GUFJTWy0xXQorICAgIHNyYyA9IGZyb20gPT0gImYzMiIgPyBvcGVyYW5k
c1swXS5hcm1TaW5nbGUgOiBvcGVyYW5kc1swXS5hcm1PcGVyYW5kCisgICAgU2VxdWVuY2UubmV3
KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgInZjdnQu
I3t0b30uI3tmcm9tfSAje3RtcC5hcm1TaW5nbGV9LCAje3NyY30iKSwKKyAgICAgICAgcmF3SW5z
dHJ1Y3Rpb24oY29kZU9yaWdpbiwgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3t0
bXAuYXJtU2luZ2xlfSIpCisgICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCitlbmQKKwogY2xh
c3MgSW5zdHJ1Y3Rpb24KICAgICBkZWYgbG93ZXJBUk12NwogICAgICAgICByYWlzZSB1bmxlc3Mg
JGFjdGl2ZUJhY2tlbmQgPT0gIkFSTXY3IgpAQCAtNDY2LDYgKzUxNSwxMCBAQCBjbGFzcyBJbnN0
cnVjdGlvbgogICAgICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImFkZCN7c3VmZml4fSAje2Fy
bUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICAgICAgICAgIGVuZAogICAgICAg
ICAgICAgZW5kCisgICAgICAgIHdoZW4gImFkY2kiCisgICAgICAgICAgICBlbWl0QXJtKCJhZGMi
LCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYWJzZCIKKyAgICAgICAgICAkYXNtLnB1dHMgInZh
YnMuZjY0ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gImFu
ZGkiLCAiYW5kcCIKICAgICAgICAgICAgIGVtaXRBcm1Db21wYWN0KCJhbmRzIiwgImFuZCIsIG9w
ZXJhbmRzKQogICAgICAgICB3aGVuICJvcmkiLCAib3JwIiwgIm9yaCIKQEAgLTQ4NCwxNCArNTM3
LDM0IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBlbWl0QXJtKCJtdWwiLCBvcGVy
YW5kcykKICAgICAgICAgd2hlbiAic3ViaSIsICJzdWJwIiwgInN1YmlzIgogICAgICAgICAgICAg
ZW1pdEFybUNvbXBhY3QoInN1YnMiLCAic3VicyIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJz
YmNpIgorICAgICAgICAgICAgZW1pdEFybSgic2JjIiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4g
Im5lZ2kiLCAibmVncCIKICAgICAgICAgICAgICRhc20ucHV0cyAicnNicyAje29wZXJhbmRzWzBd
LmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCBcIzAiCiAgICAgICAgIHdo
ZW4gIm5vdGkiCiAgICAgICAgICAgICAkYXNtLnB1dHMgIm12bnMgI3tvcGVyYW5kc1swXS5hcm1P
cGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgd2hlbiAibHJvdGF0
ZWkiCisgICAgICAgICAgICB0bXAgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAg
ICAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAgICAgICAgICAgICAgIEluc3RydWN0
aW9uLm5ldyhjb2RlT3JpZ2luLCAibW92ZSIsIFtvcGVyYW5kc1swXSwgdG1wXSksCisgICAgICAg
ICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJuZWdpIiwgW3RtcF0pLAorICAg
ICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAicnJvdGF0ZWkiLCBbdG1w
LCBvcGVyYW5kc1sxXV0pLAorICAgICAgICAgICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCisg
ICAgICAgIHdoZW4gInJyb3RhdGVpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJyb3IgI3thcm1G
bGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAidHpjbnRpIgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJyYml0ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisg
ICAgICAgICAgICAkYXNtLnB1dHMgImNseiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje29w
ZXJhbmRzWzFdLmFybU9wZXJhbmR9IgorICAgICAgICB3aGVuICJsemNudGkiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgImNseiAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAg
ICB3aGVuICJsb2FkaSIsICJsb2FkaXMiLCAibG9hZHAiCiAgICAgICAgICAgICAkYXNtLnB1dHMg
ImxkciAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJzdG9y
ZWkiLCAic3RvcmVwIgogICAgICAgICAgICAgJGFzbS5wdXRzICJzdHIgI3thcm1PcGVyYW5kcyhv
cGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkMmlhIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJsZHJkICN7YXJtRmxpcHBlZE9wZXJhbmRzUGFpcihvcGVyYW5kcyl9IgorICAgICAgICB3aGVu
ICJzdG9yZTJpYSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RyZCAje2FybU9wZXJhbmRzKG9w
ZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gImxvYWRiIgogICAgICAgICAgICAgJGFzbS5wdXRzICJs
ZHJiICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gImxvYWRi
c2kiCkBAIC01MDQsMjAgKzU3NywxMTAgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAg
ICRhc20ucHV0cyAibGRyc2gudyAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAg
ICAgICB3aGVuICJzdG9yZWgiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInN0cmggI3thcm1PcGVy
YW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkbGlua2IiCisgICAgICAgICAgICAk
YXNtLnB1dHMgImxkcmV4YiAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAg
ICB3aGVuICJsb2FkbGlua2giCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmV4aCAje2FybUZs
aXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkbGlua2kiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgImxkcmV4ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0i
CisgICAgICAgIHdoZW4gImxvYWRsaW5rMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmV4
ZCAje2FybUZsaXBwZWRPcGVyYW5kc1BhaXIob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3Rv
cmVjb25kYiIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RyZXhiICN7YXJtT3BlcmFuZHMob3Bl
cmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVjb25kaCIKKyAgICAgICAgICAgICRhc20ucHV0
cyAic3RyZXhoICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVj
b25kaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RyZXggI3thcm1PcGVyYW5kcyhvcGVyYW5k
cyl9IgorICAgICAgICB3aGVuICJzdG9yZWNvbmQyaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
c3RyZXhkICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAibG9hZGQiCiAg
ICAgICAgICAgICAkYXNtLnB1dHMgInZsZHIuNjQgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFu
ZHMpfSIKICAgICAgICAgd2hlbiAic3RvcmVkIgogICAgICAgICAgICAgJGFzbS5wdXRzICJ2c3Ry
LjY0ICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGYiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgInZsZHIuMzIgI3tvcGVyYW5kc1stMV0uYXJtU2luZ2xlfSwgI3th
cm1PcGVyYW5kcyhvcGVyYW5kc1swLi4tMl0pfSIKKyAgICAgICAgd2hlbiAic3RvcmVmIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJ2c3RyLjMyICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSwgI3th
cm1PcGVyYW5kcyhvcGVyYW5kc1sxLi4tMV0pfSIKKyAgICAgICAgd2hlbiAiYWRkZiIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAidmFkZC5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29w
ZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAg
d2hlbiAic3ViZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidnN1Yi5mMzIgI3tvcGVyYW5kc1sx
XS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJt
U2luZ2xlfSIKKyAgICAgICAgd2hlbiAibXVsZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm11
bC5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0s
ICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAiZGl2ZiIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAidmRpdi5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJh
bmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hl
biAic3FydGYiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZzcXJ0LmYzMiAje29wZXJhbmRzWzFd
LmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAiYWJz
ZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmFicy5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5n
bGV9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gIm5lZ2YiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgInZuZWcuZjMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tv
cGVyYW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJiZmx0IgorICAgICAgICAgICAg
ZW1pdEFybVNpbmdsZUJyYW5jaCgiYm1pIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJmbHR1
biIKKyAgICAgICAgICAgIGVtaXRBcm1TaW5nbGVCcmFuY2goImJsdCIsIG9wZXJhbmRzKQorICAg
ICAgICB3aGVuICJiZmx0ZXF1biIKKyAgICAgICAgICAgIGVtaXRBcm1TaW5nbGVCcmFuY2goImJs
ZSIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZmVxIgorICAgICAgICAgICAgZW1pdEFybVNp
bmdsZUJyYW5jaCgiYmVxIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJmZ3QiCisgICAgICAg
ICAgICBlbWl0QXJtU2luZ2xlQnJhbmNoKCJiZ3QiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAi
YmZndGVxdW4iCisgICAgICAgICAgICBlbWl0QXJtU2luZ2xlQnJhbmNoKCJicGwiLCBvcGVyYW5k
cykKKyAgICAgICAgd2hlbiAiYmRsdHVuIgorICAgICAgICAgICAgZW1pdEFybURvdWJsZUJyYW5j
aCgiYmx0Iiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gImFkZGQiCiAgICAgICAgICAgICBlbWl0
QXJtKCJ2YWRkLmY2NCIsIG9wZXJhbmRzKQotICAgICAgICB3aGVuICJkaXZkIgotICAgICAgICAg
ICAgZW1pdEFybSgidmRpdi5mNjQiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAic3ViZCIKICAg
ICAgICAgICAgIGVtaXRBcm0oInZzdWIuZjY0Iiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gIm11
bGQiCiAgICAgICAgICAgICBlbWl0QXJtKCJ2bXVsLmY2NCIsIG9wZXJhbmRzKQorICAgICAgICB3
aGVuICJkaXZkIgorICAgICAgICAgICAgZW1pdEFybSgidmRpdi5mNjQiLCBvcGVyYW5kcykKICAg
ICAgICAgd2hlbiAic3FydGQiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZzcXJ0LmY2NCAje2Fy
bUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJuZWdkIgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJ2bmVnLmY2NCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9
IgorICAgICAgICB3aGVuICJvcmYiCisgICAgICAgICAgICAodG1wTGhzLCB0bXBSaHMpID0gQVJN
X0VYVFJBX0dQUlNbLTIuLi0xXQorICAgICAgICAgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4s
IFsKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1w
TGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAg
ICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9
LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24u
bmV3KGNvZGVPcmlnaW4sICJvcmkiLCBbdG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAg
cmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xl
fSwgI3t0bXBSaHMuYXJtT3BlcmFuZH0iKQorICAgICAgICAgICAgXSkubG93ZXIoJGFjdGl2ZUJh
Y2tlbmQpCisgICAgICAgIHdoZW4gImFuZGYiCisgICAgICAgICAgICAodG1wTGhzLCB0bXBSaHMp
ID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0xXQorICAgICAgICAgICAgU2VxdWVuY2UubmV3KGNvZGVP
cmlnaW4sIFsKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92
ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iKSwKKyAgICAg
ICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9w
ZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgSW5zdHJ1
Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJhbmRpIiwgW3RtcExocywgdG1wUmhzXSksCisgICAgICAg
ICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje29wZXJhbmRzWzFdLmFy
bVNpbmdsZX0sICN7dG1wUmhzLmFybU9wZXJhbmR9IikKKyAgICAgICAgICAgIF0pLmxvd2VyKCRh
Y3RpdmVCYWNrZW5kKQorICAgICAgICB3aGVuICJvcmQiCisgICAgICAgICAgICAodG1wTGhzLCB0
bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0xXQorICAgICAgICAgICAgU2VxdWVuY2UubmV3
KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwg
ICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iKSwK
KyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhz
LmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAg
SW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJvcmkiLCBbdG1wTGhzLCB0bXBSaHNdKSwKKyAg
ICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFuZHNb
MV0uYXJtU2luZ2xlfSwgI3t0bXBSaHMuYXJtT3BlcmFuZH0iKSwKKyAgICAgICAgICAgICAgcmF3
SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29w
ZXJhbmRzWzBdLmFybVNpbmdsZUhpfSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihj
b2RlT3JpZ2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJt
U2luZ2xlSGl9IiksCisgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAi
b3JpIiwgW3RtcExocywgdG1wUmhzXSksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNv
ZGVPcmlnaW4sICAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZUhpfSwgI3t0bXBSaHMuYXJt
T3BlcmFuZH0iKQorICAgICAgICAgICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCisgICAgICAg
IHdoZW4gImFuZGQiCisgICAgICAgICAgICAodG1wTGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQ
UlNbLTIuLi0xXQorICAgICAgICAgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAg
ICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9w
ZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5z
dHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJh
bmRzWzFdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVP
cmlnaW4sICJhbmRpIiwgW3RtcExocywgdG1wUmhzXSksCisgICAgICAgICAgICAgIHJhd0luc3Ry
dWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7dG1w
UmhzLmFybU9wZXJhbmR9IiksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmln
aW4sICAidm1vdiAje3RtcExocy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGVI
aX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7
dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZUhpfSIpLAorICAgICAg
ICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImFuZGkiLCBbdG1wTGhzLCB0bXBS
aHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7
b3BlcmFuZHNbMV0uYXJtU2luZ2xlSGl9LCAje3RtcFJocy5hcm1PcGVyYW5kfSIpCisgICAgICAg
ICAgICBdKS5sb3dlcigkYWN0aXZlQmFja2VuZCkKICAgICAgICAgd2hlbiAiY2kyZHMiCiAgICAg
ICAgICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJh
bmRzWzBdLmFybU9wZXJhbmR9IgogICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmY2NC5zMzIg
I3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IgpAQCAt
NTcwLDYgKzczMyw4IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgIHdoZW4gIm1vdmR6Igog
ICAgICAgICAgICAgIyBGSVhNRTogZWl0aGVyIHN1cHBvcnQgdGhpcyBvciByZW1vdmUgaXQuCiAg
ICAgICAgICAgICByYWlzZSAiQVJNIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcGNvZGUgeWV0LCAj
e2NvZGVPcmlnaW59IgorICAgICAgICB3aGVuICJtb3ZlZCIKKyAgICAgICAgICAgICRhc20ucHV0
cyAidm1vdi5mNjQgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hl
biAicG9wIgogICAgICAgICAgICAgb3BlcmFuZHMuZWFjaCB7CiAgICAgICAgICAgICAgICAgfCBv
cCB8CkBAIC01ODYsOSArNzUxLDE3IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3YgI3thcm1GbGlwcGVkT3BlcmFuZHMo
b3BlcmFuZHMpfSIKICAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJtb3ZlaWkiCisgICAg
ICAgICAgICByYWlzZSAiRmlyc3Qgb3BlcmFuZCBvZiBtb3ZlaWkgbXVzdCBiZSBhbiBpbW1lZGlh
dGUiIHVubGVzcyBvcGVyYW5kc1swXS5pbW1lZGlhdGU/CisgICAgICAgICAgICBhcm1Nb3ZlSW1t
ZWRpYXRlKG9wZXJhbmRzWzBdLnZhbHVlID4+IDMyLCBvcGVyYW5kc1sxXSkKKyAgICAgICAgICAg
IGFybU1vdmVJbW1lZGlhdGUob3BlcmFuZHNbMF0udmFsdWUgJiAweGZmZmZmZmZmLCBvcGVyYW5k
c1syXSkKICAgICAgICAgd2hlbiAibXZsYmwiCiAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJt
b3Z3ICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sIFwjOmxvd2VyMTY6I3tvcGVyYW5kc1swXS52
YWx1ZX0iCiAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3Z0ICN7b3BlcmFuZHNbMV0uYXJt
T3BlcmFuZH0sIFwjOnVwcGVyMTY6I3tvcGVyYW5kc1swXS52YWx1ZX0iCisgICAgICAgIHdoZW4g
InN4YjJpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzeHRiICN7YXJtRmxpcHBlZE9wZXJhbmRz
KG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN4aDJpIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJzeHRoICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gIm5v
cCIKICAgICAgICAgICAgICRhc20ucHV0cyAibm9wIgogICAgICAgICB3aGVuICJiaWVxIiwgImJw
ZXEiLCAiYmJlcSIKQEAgLTY4MiwxNCArODU1LDQ2IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAg
ICAgICAgICBlbWl0QXJtQ29tcGFyZShvcGVyYW5kcywgImx0IikKICAgICAgICAgd2hlbiAiY2ls
dGVxIiwgImNwbHRlcSIsICJjYmx0ZXEiCiAgICAgICAgICAgICBlbWl0QXJtQ29tcGFyZShvcGVy
YW5kcywgImxlIikKLSAgICAgICAgd2hlbiAiY2RndCIKLSAgICAgICAgICAgIGVtaXRBcm1Eb3Vi
bGVDb21wYXJlKG9wZXJhbmRzLCAiZ3QiKQotICAgICAgICB3aGVuICJjZGd0ZXEiCi0gICAgICAg
ICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywgImdlIikKKyAgICAgICAgd2hlbiAi
Y2ZlcSIKKyAgICAgICAgICAgIGVtaXRBcm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJlcSIpCisg
ICAgICAgIHdoZW4gImNmbmVxdW4iCisgICAgICAgICAgICBlbWl0QXJtRmxvYXRDb21wYXJlKG9w
ZXJhbmRzLCAibmUiKQorICAgICAgICB3aGVuICJjZmx0IgorICAgICAgICAgICAgZW1pdEFybUZs
b2F0Q29tcGFyZShvcGVyYW5kcywgIm1pIikKKyAgICAgICAgd2hlbiAiY2ZsdGVxIgorICAgICAg
ICAgICAgZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywgImxzIikKKyAgICAgICAgd2hlbiAi
Y2ZndCIKKyAgICAgICAgICAgIGVtaXRBcm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJndCIpCisg
ICAgICAgIHdoZW4gImNmZ3RlcSIKKyAgICAgICAgICAgIGVtaXRBcm1GbG9hdENvbXBhcmUob3Bl
cmFuZHMsICJnZSIpCisgICAgICAgIHdoZW4gImNkZXEiCisgICAgICAgICAgICBlbWl0QXJtRG91
YmxlQ29tcGFyZShvcGVyYW5kcywgImVxIikKKyAgICAgICAgd2hlbiAiY2RuZXF1biIKKyAgICAg
ICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAibmUiKQogICAgICAgICB3aGVu
ICJjZGx0IgogICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMsICJtaSIp
CiAgICAgICAgIHdoZW4gImNkbHRlcSIKICAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJl
KG9wZXJhbmRzLCAibHMiKQorICAgICAgICB3aGVuICJjZGd0IgorICAgICAgICAgICAgZW1pdEFy
bURvdWJsZUNvbXBhcmUob3BlcmFuZHMsICJndCIpCisgICAgICAgIHdoZW4gImNkZ3RlcSIKKyAg
ICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAiZ2UiKQorICAgICAgICB3
aGVuICJjZjJkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmY2NC5mMzIgI3tvcGVyYW5k
c1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVu
ICJjZDJmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmYzMi5mNjQgI3tvcGVyYW5kc1sx
XS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9IgorICAgICAgICB3aGVuICJj
aTJmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xl
fSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmN2
dC5mMzIudTMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5n
bGV9IgorICAgICAgICB3aGVuICJjaTJmcyIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAj
e29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAg
ICAgICAgICAkYXNtLnB1dHMgInZjdnQuZjMyLnMzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0s
ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAiY2kyZCIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNb
MF0uYXJtT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInZjdnQuZjY0LnUzMiAje29w
ZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iCisgICAgICAg
IHdoZW4gImNpMmRzIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNbMV0u
YXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20u
cHV0cyAidmN2dC5mNjQuczMyICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNb
MV0uYXJtU2luZ2xlfSIKICAgICAgICAgd2hlbiAidGlzIiwgInRicyIsICJ0cHMiCiAgICAgICAg
ICAgICBlbWl0QXJtVGVzdFNldChvcGVyYW5kcywgIm1pIikKICAgICAgICAgd2hlbiAidGl6Iiwg
InRieiIsICJ0cHoiCkBAIC03MDAsMTAgKzkwNSwyMiBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAg
ICAgICAgICAgJGFzbS5wdXRzICJsZHIgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgW3NwLCBc
IyN7b3BlcmFuZHNbMF0udmFsdWUgKiA0fV0iCiAgICAgICAgIHdoZW4gInBva2UiCiAgICAgICAg
ICAgICAkYXNtLnB1dHMgInN0ciAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCBbc3AsIFwjI3tv
cGVyYW5kc1swXS52YWx1ZSAqIDR9XSIKKyAgICAgICAgd2hlbiAiZmkyZiIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0u
YXJtT3BlcmFuZH0iCisgICAgICAgIHdoZW4gImZmMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMg
InZtb3YgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9
IgogICAgICAgICB3aGVuICJmaWkyZCIKICAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29w
ZXJhbmRzWzJdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJh
bmRzWzFdLmFybU9wZXJhbmR9IgogICAgICAgICB3aGVuICJmZDJpaSIKICAgICAgICAgICAgICRh
c20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzJdLmFy
bU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9IgorICAgICAgICB3aGVuICJ0cnVu
Y2F0ZWYyaSIKKyAgICAgICAgICAgIGVtaXRBcm1UcnVuY2F0ZUZsb2F0KGNvZGVPcmlnaW4sICJ1
MzIiLCAiZjMyIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInRydW5jYXRlZjJpcyIKKyAgICAg
ICAgICAgIGVtaXRBcm1UcnVuY2F0ZUZsb2F0KGNvZGVPcmlnaW4sICJzMzIiLCAiZjMyIiwgb3Bl
cmFuZHMpCisgICAgICAgIHdoZW4gInRydW5jYXRlZDJpIgorICAgICAgICAgICAgZW1pdEFybVRy
dW5jYXRlRmxvYXQoY29kZU9yaWdpbiwgInUzMiIsICJmNjQiLCBvcGVyYW5kcykKKyAgICAgICAg
d2hlbiAidHJ1bmNhdGVkMmlzIgorICAgICAgICAgICAgZW1pdEFybVRydW5jYXRlRmxvYXQoY29k
ZU9yaWdpbiwgInMzMiIsICJmNjQiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAiYm8iCiAgICAg
ICAgICAgICAkYXNtLnB1dHMgImJ2cyAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKICAgICAgICAg
d2hlbiAiYnMiCkBAIC03MTIsMTMgKzkyOSwxNyBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAg
ICAgICAgJGFzbS5wdXRzICJiZXEgI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCiAgICAgICAgIHdo
ZW4gImJueiIKICAgICAgICAgICAgICRhc20ucHV0cyAiYm5lICN7b3BlcmFuZHNbMF0uYXNtTGFi
ZWx9IgorICAgICAgICB3aGVuICJiY3MiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJjcyAje29w
ZXJhbmRzWzBdLmFzbUxhYmVsfSIKICAgICAgICAgd2hlbiAibGVhaSIsICJsZWFwIgogICAgICAg
ICAgICAgb3BlcmFuZHNbMF0uYXJtRW1pdExlYShvcGVyYW5kc1sxXSkKLSAgICAgICAgd2hlbiAi
c211bGxpIgorICAgICAgICB3aGVuICJzbXVsbGkiLCAidW11bGxpIgogICAgICAgICAgICAgcmFp
c2UgIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgdG8gc211bGwgaW4gI3tzZWxmLmluc3BlY3R9
IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBvcGVyYW5kcy5sZW5ndGggPT0gNAotICAg
ICAgICAgICAgJGFzbS5wdXRzICJzbXVsbCAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCAje29w
ZXJhbmRzWzNdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJh
bmRzWzFdLmFybU9wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZVswLi4t
Ml19ICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbM10uYXJtT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCiAg
ICAgICAgIHdoZW4gIm1lbWZlbmNlIgogICAgICAgICAgICAgJGFzbS5wdXRzICJkbWIgc3kiCisg
ICAgICAgIHdoZW4gImZlbmNlIgorICAgICAgICAgICAgJGFzbS5wdXRzICJkbWIgaXNoIgogICAg
ICAgICB3aGVuICJjbHJicCIKICAgICAgICAgICAgICRhc20ucHV0cyAiYmljICN7b3BlcmFuZHNb
Ml0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0u
YXJtT3BlcmFuZH0iCiAgICAgICAgIHdoZW4gImdsb2JhbGFkZHIiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKaW5kZXggNTRiMDI3ZjNkYTAx
Li43ZTI4MGI3Zjc4YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL2luc3RydWN0aW9ucy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFz
bS9pbnN0cnVjdGlvbnMucmIKQEAgLTU5LDYgKzU5LDcgQEAgTUFDUk9fSU5TVFJVQ1RJT05TID0K
ICAgICAgInJyb3RhdGVxIiwKICAgICAgInN1YmkiLAogICAgICAieG9yaSIsCisgICAgICJsb2Fk
MmlhIiwKICAgICAgImxvYWRpIiwKICAgICAgImxvYWRpcyIsCiAgICAgICJsb2FkYiIsCkBAIC02
Nyw2ICs2OCw3IEBAIE1BQ1JPX0lOU1RSVUNUSU9OUyA9CiAgICAgICJsb2FkaCIsCiAgICAgICJs
b2FkaHNpIiwKICAgICAgImxvYWRoc3EiLAorICAgICAic3RvcmUyaWEiLAogICAgICAic3RvcmVp
IiwKICAgICAgInN0b3JlaCIsCiAgICAgICJzdG9yZWIiLApAQCAtMzc3LDkgKzM3OSwyMSBAQCBY
ODZfSU5TVFJVQ1RJT05TID0KIAogQVJNX0lOU1RSVUNUSU9OUyA9CiAgICAgWworICAgICAiYWRj
aSIsCisgICAgICJiY3MiLAogICAgICAiY2xyYnAiLAogICAgICAibXZsYmwiLAotICAgICAiZ2xv
YmFsYWRkciIKKyAgICAgImdsb2JhbGFkZHIiLAorICAgICAic2JjaSIsCisgICAgICJtb3ZlaWki
LAorICAgICAibG9hZGxpbmtiIiwKKyAgICAgImxvYWRsaW5raCIsCisgICAgICJsb2FkbGlua2ki
LAorICAgICAibG9hZGxpbmsyaSIsCisgICAgICJzdG9yZWNvbmRiIiwKKyAgICAgInN0b3JlY29u
ZGgiLAorICAgICAic3RvcmVjb25kaSIsCisgICAgICJzdG9yZWNvbmQyaSIsCiAgICAgXQogCiBB
Uk02NF9JTlNUUlVDVElPTlMgPQpAQCAtNDMxLDYgKzQ0NSw3IEBAIEFSTTY0X0lOU1RSVUNUSU9O
UyA9CiBSSVNDX0lOU1RSVUNUSU9OUyA9CiAgICAgWwogICAgICAic211bGxpIiwgICMgTXVsdGlw
bHkgdHdvIDMyLWJpdCB3b3JkcyBhbmQgcHJvZHVjZSBhIDY0LWJpdCB3b3JkCisgICAgICJ1bXVs
bGkiLCAgIyBNdWx0aXBseSB0d28gMzItYml0IHdvcmRzIGFuZCBwcm9kdWNlIGEgNjQtYml0IHdv
cmQKICAgICAgImFkZGlzIiwgICAjIEFkZCBpbnRlZ2VycyBhbmQgc2V0IGEgZmxhZy4KICAgICAg
InN1YmlzIiwgICAjIFNhbWUsIGJ1dCBmb3Igc3VidHJhY3Rpb24uCiAgICAgICJvcmlzIiwgICAg
IyBTYW1lLCBidXQgZm9yIGJpdHdpc2Ugb3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9yZWdpc3RlcnMucmIKaW5kZXggMGRjNDRjMjNkZmIyLi42N2Y1MjcxYTUzNzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5yYgor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIKQEAgLTU4
LDcgKzU4LDggQEAgR1BSUyA9CiAgICAgICJjc3I3IiwKICAgICAgImNzcjgiLAogICAgICAiY3Ny
OSIsCi0gICAgICJjc3IxMCIKKyAgICAgImNzcjEwIiwKKyAgICAgImludmFsaWRHUFIiCiAgICAg
XQogCiBGUFJTID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNt
L3Jpc2MucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiCmluZGV4
IDBmMDcyZTlmZDExZS4uMzQ2NDU5NjJmNzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL3Jpc2MucmIKQEAgLTI1OSw4ICsyNTksMTIgQEAgZGVmIHJpc2NMb3dlck1hbGZvcm1l
ZEFkZHJlc3Nlc0RvdWJsZShsaXN0KQogICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQogICAg
ICAgICAgICAgd2hlbiAibG9hZGQiCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVj
dGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibG9hZGQiLCBbbm9kZS5vcGVyYW5kc1swXS5yaXNj
RG91YmxlQWRkcmVzcyhuZXdMaXN0KSwgbm9kZS5vcGVyYW5kc1sxXV0sIG5vZGUuYW5ub3RhdGlv
bikKKyAgICAgICAgICAgIHdoZW4gImxvYWRmIgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwg
SW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImxvYWRmIiwgW25vZGUub3BlcmFuZHNb
MF0ucmlzY0RvdWJsZUFkZHJlc3MobmV3TGlzdCksIG5vZGUub3BlcmFuZHNbMV1dLCBub2RlLmFu
bm90YXRpb24pCiAgICAgICAgICAgICB3aGVuICJzdG9yZWQiCiAgICAgICAgICAgICAgICAgbmV3
TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic3RvcmVkIiwgW25vZGUu
b3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV0ucmlzY0RvdWJsZUFkZHJlc3MobmV3TGlzdCld
LCBub2RlLmFubm90YXRpb24pCisgICAgICAgICAgICB3aGVuICJzdG9yZWYiCisgICAgICAgICAg
ICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic3RvcmVm
IiwgW25vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV0ucmlzY0RvdWJsZUFkZHJlc3Mo
bmV3TGlzdCldLCBub2RlLmFubm90YXRpb24pCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICAgbmV3TGlzdCA8PCBub2RlCiAgICAgICAgICAgICBlbmQKQEAgLTM2OSw3ICszNzMsNyBA
QCBkZWYgcmlzY0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRlcyhsaXN0LCB2YWxpZEltbWVkaWF0ZXMs
IHZhbGlkTG9naWNhbEltbWVkaWF0ZXMpCiAgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rp
b24KICAgICAgICAgICAgIGFubm90YXRpb24gPSBub2RlLmFubm90YXRpb24KICAgICAgICAgICAg
IGNhc2Ugbm9kZS5vcGNvZGUKLSAgICAgICAgICAgIHdoZW4gIm1vdmUiCisgICAgICAgICAgICB3
aGVuICJtb3ZlIiwgIm1vdmVpaSIKICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKICAg
ICAgICAgICAgIHdoZW4gImFkZGkiLCAiYWRkcCIsICJhZGRxIiwgImFkZGlzIiwgInN1YmkiLCAi
c3VicCIsICJzdWJxIiwgInN1YmlzIgogICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNb
MF0uaXNfYT8gSW1tZWRpYXRlIGFuZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDSlNWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
SlNWYWx1ZS5oCmluZGV4IDM5MWZkM2E2YTQxYy4uZmUyMTY0ODY3MzE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCkBAIC0xNjIsOCArMTYyLDkgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgTnVsbFRhZyA9ICAgICAgICAgMHhm
ZmZmZmZmZDsKICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IFVuZGVmaW5lZFRhZyA9ICAg
IDB4ZmZmZmZmZmM7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBDZWxsVGFnID0gICAg
ICAgICAweGZmZmZmZmZiOwotICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgRW1wdHlWYWx1
ZVRhZyA9ICAgMHhmZmZmZmZmYTsKLSAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IERlbGV0
ZWRWYWx1ZVRhZyA9IDB4ZmZmZmZmZjk7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBX
YXNtVGFnID0gICAgICAgICAweGZmZmZmZmZhOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMy
X3QgRW1wdHlWYWx1ZVRhZyA9ICAgMHhmZmZmZmZmOTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVp
bnQzMl90IERlbGV0ZWRWYWx1ZVRhZyA9IDB4ZmZmZmZmZjg7CiAKICAgICBzdGF0aWMgY29uc3Rl
eHByIHVpbnQzMl90IExvd2VzdFRhZyA9ICBEZWxldGVkVmFsdWVUYWc7CiAjZW5kaWYKQEAgLTE4
MCw2ICsxODEsOSBAQCBwdWJsaWM6CiAgICAgZW51bSBFbmNvZGVBc0JpZ0ludDMyVGFnIHsgRW5j
b2RlQXNCaWdJbnQzMiB9OwogI2VuZGlmCiAgICAgZW51bSBFbmNvZGVBc0RvdWJsZVRhZyB7IEVu
Y29kZUFzRG91YmxlIH07CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBVU0UoSlNWQUxVRTMy
XzY0KQorICAgIGVudW0gRW5jb2RlQXNVbmJveGVkRmxvYXRUYWcgeyBFbmNvZGVBc1VuYm94ZWRG
bG9hdCB9OworI2VuZGlmCiAKICAgICBKU1ZhbHVlKCk7CiAgICAgSlNWYWx1ZShKU051bGxUYWcp
OwpAQCAtMTkxLDYgKzE5NSw5IEBAIHB1YmxpYzoKICNpZiBVU0UoQklHSU5UMzIpCiAgICAgSlNW
YWx1ZShFbmNvZGVBc0JpZ0ludDMyVGFnLCBpbnQzMl90KTsKICNlbmRpZgorI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkgJiYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBKU1ZhbHVlKEVuY29kZUFzVW5i
b3hlZEZsb2F0VGFnLCBmbG9hdCk7CisjZW5kaWYKIAogICAgIC8vIE51bWJlcnMKICAgICBKU1Zh
bHVlKEVuY29kZUFzRG91YmxlVGFnLCBkb3VibGUpOwpAQCAtNTkzLDYgKzYwMCwxMyBAQCBBTFdB
WVNfSU5MSU5FIEpTVmFsdWUganNCaWdJbnQzMihpbnQzMl90IGludFZhbHVlKQogfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVFMzJfNjQpCitBTFdBWVNf
SU5MSU5FIEpTVmFsdWUgd2FzbVVuYm94ZWRGbG9hdChmbG9hdCBmKQoreworICAgIHJldHVybiBK
U1ZhbHVlKEpTVmFsdWU6OkVuY29kZUFzVW5ib3hlZEZsb2F0LCBmKTsKK30KKyNlbmRpZgorCiBB
TFdBWVNfSU5MSU5FIEpTVmFsdWUganNEb3VibGVOdW1iZXIoZG91YmxlIGQpCiB7CiAgICAgQVNT
RVJUKEpTVmFsdWUoSlNWYWx1ZTo6RW5jb2RlQXNEb3VibGUsIGQpLmlzTnVtYmVyKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKaW5k
ZXggYmEzZWIxMjZlNjg1Li41MWJiYTdlZWQzNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaApAQCAtNjIzLDYgKzYyMywxMyBAQCBp
bmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShFbmNvZGVBc0JpZ0ludDMyVGFnLCBpbnQzMl90IHZhbHVl
KQogfQogI2VuZGlmIC8vIFVTRShCSUdJTlQzMikKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkg
JiYgVVNFKEpTVkFMVUUzMl82NCkKK2lubGluZSBKU1ZhbHVlOjpKU1ZhbHVlKEVuY29kZUFzVW5i
b3hlZEZsb2F0VGFnLCBmbG9hdCB2YWx1ZSkKK3sKKyAgICB1LmFzQml0cy5wYXlsb2FkID0gYml0
d2lzZV9jYXN0PGludDMyX3Q+KHZhbHVlKTsKK30KKyNlbmRpZgorCiBpbmxpbmUgaW50NjRfdCB0
cnlDb252ZXJ0VG9JbnQ1Mihkb3VibGUgbnVtYmVyKQogewogICAgIGlmIChudW1iZXIgIT0gbnVt
YmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2Vu
ZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRv
ci5jcHAKaW5kZXggODljZWNiZDNiODI4Li41MjU1YjhkNzFlMjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcApAQCAtODQ3LDYgKzg0
NywxNSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdGlvbj4KICAgICB2
b2lkIGZvckVhY2hMaXZlVmFsdWUoRnVuY3Rpb24pOwogCisgICAgYm9vbCB1c2VTaWduYWxpbmdN
ZW1vcnkoKSBjb25zdAorICAgIHsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01F
TU9SWSkKKyAgICAgICAgcmV0dXJuIG1fbW9kZSA9PSBNZW1vcnlNb2RlOjpTaWduYWxpbmc7Cisj
ZWxzZQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAgICB9CisKICAgICBGdW5jdGlv
blBhcnNlcjxBaXJJUkdlbmVyYXRvcj4qIG1fcGFyc2VyIHsgbnVsbHB0ciB9OwogICAgIGNvbnN0
IE1vZHVsZUluZm9ybWF0aW9uJiBtX2luZm87CiAgICAgY29uc3QgTWVtb3J5TW9kZSBtX21vZGUg
eyBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZyB9OwpAQCAtOTY0LDcgKzk3Myw3IEBAIEFpcklS
R2VuZXJhdG9yOjpBaXJJUkdlbmVyYXRvcihjb25zdCBNb2R1bGVJbmZvcm1hdGlvbiYgaW5mbywg
QjM6OlByb2NlZHVyZSYgcHJvCiAgICAgaWYgKCFDb250ZXh0Ojp1c2VGYXN0VExTKCkpCiAgICAg
ICAgIG1fY29kZS5waW5SZWdpc3RlcihtX3dhc21Db250ZXh0SW5zdGFuY2VHUFIpOwogCi0gICAg
aWYgKG1vZGUgIT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nKSB7CisgICAgaWYgKG1vZGUgPT0gTWVt
b3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcpIHsKICAgICAgICAgbV9ib3VuZHNDaGVja2luZ1NpemVH
UFIgPSBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyOwogICAgICAgICBtX2Nv
ZGUucGluUmVnaXN0ZXIobV9ib3VuZHNDaGVja2luZ1NpemVHUFIpOwogICAgIH0KQEAgLTE4MDAs
NiArMTgwOSw3IEBAIGlubGluZSBBaXJJUkdlbmVyYXRvcjo6RXhwcmVzc2lvblR5cGUgQWlySVJH
ZW5lcmF0b3I6OmVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyCiAgICAgICAgIGJyZWFrOwogICAg
IH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIGNhc2Ug
TWVtb3J5TW9kZTo6U2lnbmFsaW5nOiB7CiAgICAgICAgIC8vIFdlJ3ZlIHZpcnR1YWxseSBtYXBw
ZWQgNEdpQityZWR6b25lIGZvciB0aGlzIG1lbW9yeS4gT25seSB0aGUgdXNlci1hbGxvY2F0ZWQg
cGFnZXMgYXJlIGFkZHJlc3NhYmxlLCBjb250aWd1b3VzbHkgaW4gcmFuZ2UgWzAsIGN1cnJlbnRd
LAogICAgICAgICAvLyBhbmQgZXZlcnl0aGluZyBhYm92ZSBpcyBtYXBwZWQgUFJPVF9OT05FLiBX
ZSBkb24ndCBuZWVkIHRvIHBlcmZvcm0gYW55IGV4cGxpY2l0IGJvdW5kcyBjaGVjayBpbiB0aGUg
NEdpQiByYW5nZSBiZWNhdXNlIFdlYkFzc2VtYmx5IHJlZ2lzdGVyCkBAIC0xODI2LDYgKzE4MzYs
NyBAQCBpbmxpbmUgQWlySVJHZW5lcmF0b3I6OkV4cHJlc3Npb25UeXBlIEFpcklSR2VuZXJhdG9y
OjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcgogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KKyNlbmRpZgogICAgIH0KIAogICAgIGFwcGVuZChBZGQ2NCwgVG1wKG1fbWVtb3J5QmFz
ZUdQUiksIHJlc3VsdCk7CkBAIC0zNzA5LDcgKzM3MjAsNyBAQCBhdXRvIEFpcklSR2VuZXJhdG9y
OjphZGRDYWxsKHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgsIGNvbnN0IFR5cGVEZWZpbml0aW9uJiBz
aWduYQogICAgICAgICBhdXRvKiBwYXRjaHBvaW50ID0gcGFpci5maXJzdDsKICAgICAgICAgYXV0
byBleGNlcHRpb25IYW5kbGUgPSBwYWlyLnNlY29uZDsKICAgICAgICAgLy8gV2UgbmVlZCB0byBj
bG9iYmVyIHRoZSBzaXplIHJlZ2lzdGVyIHNpbmNlIHRoZSBMTEludCBhbHdheXMgYm91bmRzIGNo
ZWNrcwotICAgICAgICBpZiAobV9tb2RlID09IE1lbW9yeU1vZGU6OlNpZ25hbGluZyB8fCBtX2lu
Zm8ubWVtb3J5LmlzU2hhcmVkKCkpCisgICAgICAgIGlmICh1c2VTaWduYWxpbmdNZW1vcnkoKSB8
fCBtX2luZm8ubWVtb3J5LmlzU2hhcmVkKCkpCiAgICAgICAgICAgICBwYXRjaHBvaW50LT5jbG9i
YmVyTGF0ZShSZWdpc3RlclNldCB7IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCkuYm91bmRzQ2hl
Y2tpbmdTaXplUmVnaXN0ZXIgfSk7CiAgICAgICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcihb
PSwgdGhpc10gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBCMzo6U3RhY2ttYXBHZW5lcmF0aW9u
UGFyYW1zJiBwYXJhbXMpIHsKICAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJV
c2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21CM0lSR2VuZXJhdG9yLmNwcAppbmRleCBkNTZlZmY3OGIwODYuLmNiMmI3MDlhYjNjMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNw
cApAQCAtNTI2LDYgKzUyNiwxNSBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gc2V0KGRzdCwg
Z2V0KHNyYykpOwogICAgIH0KIAorICAgIGJvb2wgdXNlU2lnbmFsaW5nTWVtb3J5KCkgY29uc3QK
KyAgICB7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCisgICAgICAg
IHJldHVybiBtX21vZGUgPT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nOworI2Vsc2UKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworI2VuZGlmCisgICAgfQorCiAgICAgRnVuY3Rpb25QYXJzZXI8QjNJUkdl
bmVyYXRvcj4qIG1fcGFyc2VyIHsgbnVsbHB0ciB9OwogICAgIGNvbnN0IE1vZHVsZUluZm9ybWF0
aW9uJiBtX2luZm87CiAgICAgY29uc3QgTWVtb3J5TW9kZSBtX21vZGUgeyBNZW1vcnlNb2RlOjpC
b3VuZHNDaGVja2luZyB9OwpAQCAtNjM5LDcgKzY0OCw3IEBAIEIzSVJHZW5lcmF0b3I6OkIzSVJH
ZW5lcmF0b3IoY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mIGluZm8sIFByb2NlZHVyZSYgcHJvY2Vk
dXJlCiAgICAgaWYgKCFDb250ZXh0Ojp1c2VGYXN0VExTKCkpCiAgICAgICAgIG1fcHJvYy5waW5S
ZWdpc3RlcihtX3dhc21Db250ZXh0SW5zdGFuY2VHUFIpOwogCi0gICAgaWYgKG1vZGUgIT0gTWVt
b3J5TW9kZTo6U2lnbmFsaW5nKSB7CisgICAgaWYgKG1vZGUgPT0gTWVtb3J5TW9kZTo6Qm91bmRz
Q2hlY2tpbmcpIHsKICAgICAgICAgbV9ib3VuZHNDaGVja2luZ1NpemVHUFIgPSBwaW5uZWRSZWdz
LmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyOwogICAgICAgICBtX3Byb2MucGluUmVnaXN0ZXIo
bV9ib3VuZHNDaGVja2luZ1NpemVHUFIpOwogICAgIH0KQEAgLTY1MSw5ICs2NjAsMTEgQEAgQjNJ
UkdlbmVyYXRvcjo6QjNJUkdlbmVyYXRvcihjb25zdCBNb2R1bGVJbmZvcm1hdGlvbiYgaW5mbywg
UHJvY2VkdXJlJiBwcm9jZWR1cmUKICAgICAgICAgICAgIGNhc2UgTWVtb3J5TW9kZTo6Qm91bmRz
Q2hlY2tpbmc6CiAgICAgICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChwaW5uZWRHUFIsIG1fYm91
bmRzQ2hlY2tpbmdTaXplR1BSID09IHBpbm5lZEdQUik7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgICAgICAgICBj
YXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzoKICAgICAgICAgICAgICAgICBBU1NFUlRfVU5VU0VE
KHBpbm5lZEdQUiwgSW52YWxpZEdQUlJlZyA9PSBwaW5uZWRHUFIpOwogICAgICAgICAgICAgICAg
IGJyZWFrOworI2VuZGlmCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB0aGlzLT5lbWl0RXhj
ZXB0aW9uQ2hlY2soaml0LCBFeGNlcHRpb25UeXBlOjpPdXRPZkJvdW5kc01lbW9yeUFjY2Vzcyk7
CiAgICAgICAgIH0pOwpAQCAtOTE1LDkgKzkyNiwxMyBAQCBhdXRvIEIzSVJHZW5lcmF0b3I6OmFk
ZEFyZ3VtZW50cyhjb25zdCBUeXBlRGVmaW5pdGlvbiYgc2lnbmF0dXJlKSAtPiBQYXJ0aWFsUmVz
dQogICAgICAgICBCMzo6VHlwZSB0eXBlID0gdG9CM1R5cGUoc2lnbmF0dXJlLmFzPEZ1bmN0aW9u
U2lnbmF0dXJlPigpLT5hcmd1bWVudFR5cGUoaSkpOwogICAgICAgICBCMzo6VmFsdWUqIGFyZ3Vt
ZW50OwogICAgICAgICBhdXRvIHJlcCA9IHdhc21DYWxsSW5mby5wYXJhbXNbaV07Ci0gICAgICAg
IGlmIChyZXAuaXNSZWcoKSkgewotICAgICAgICAgICAgYXJndW1lbnQgPSBtX2N1cnJlbnRCbG9j
ay0+YXBwZW5kTmV3PEIzOjpBcmd1bWVudFJlZ1ZhbHVlPihtX3Byb2MsIE9yaWdpbigpLCByZXAu
cmVnKCkpOwotICAgICAgICAgICAgaWYgKHR5cGUgPT0gQjM6OkludDMyIHx8IHR5cGUgPT0gQjM6
OkZsb2F0KQorICAgICAgICBpZiAocmVwLmlzR1BSKCkpIHsKKyAgICAgICAgICAgIGFyZ3VtZW50
ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6QXJndW1lbnRSZWdWYWx1ZT4obV9wcm9j
LCBPcmlnaW4oKSwgcmVwLmpzcigpLnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICBpZiAodHlw
ZSA9PSBCMzo6SW50MzIpCisgICAgICAgICAgICAgICAgYXJndW1lbnQgPSBtX2N1cnJlbnRCbG9j
ay0+YXBwZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6VHJ1bmMsIE9yaWdpbigpLCBhcmd1
bWVudCk7CisgICAgICAgIH0gZWxzZSBpZiAocmVwLmlzRlBSKCkpIHsKKyAgICAgICAgICAgIGFy
Z3VtZW50ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6QXJndW1lbnRSZWdWYWx1ZT4o
bV9wcm9jLCBPcmlnaW4oKSwgcmVwLmZwcigpKTsKKyAgICAgICAgICAgIGlmICh0eXBlID09IEIz
OjpGbG9hdCkKICAgICAgICAgICAgICAgICBhcmd1bWVudCA9IG1fY3VycmVudEJsb2NrLT5hcHBl
bmROZXc8QjM6OlZhbHVlPihtX3Byb2MsIEIzOjpUcnVuYywgT3JpZ2luKCksIGFyZ3VtZW50KTsK
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChyZXAuaXNTdGFjaygpKTsKQEAg
LTE0NDYsNiArMTQ2MSw3IEBAIGlubGluZSBWYWx1ZSogQjNJUkdlbmVyYXRvcjo6ZW1pdENoZWNr
QW5kUHJlcGFyZVBvaW50ZXIoVmFsdWUqIHBvaW50ZXIsIHVpbnQzMl90CiAgICAgICAgIGJyZWFr
OwogICAgIH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAg
IGNhc2UgTWVtb3J5TW9kZTo6U2lnbmFsaW5nOiB7CiAgICAgICAgIC8vIFdlJ3ZlIHZpcnR1YWxs
eSBtYXBwZWQgNEdpQityZWR6b25lIGZvciB0aGlzIG1lbW9yeS4gT25seSB0aGUgdXNlci1hbGxv
Y2F0ZWQgcGFnZXMgYXJlIGFkZHJlc3NhYmxlLCBjb250aWd1b3VzbHkgaW4gcmFuZ2UgWzAsIGN1
cnJlbnRdLAogICAgICAgICAvLyBhbmQgZXZlcnl0aGluZyBhYm92ZSBpcyBtYXBwZWQgUFJPVF9O
T05FLiBXZSBkb24ndCBuZWVkIHRvIHBlcmZvcm0gYW55IGV4cGxpY2l0IGJvdW5kcyBjaGVjayBp
biB0aGUgNEdpQiByYW5nZSBiZWNhdXNlIFdlYkFzc2VtYmx5IHJlZ2lzdGVyCkBAIC0xNDYzLDYg
KzE0NzksNyBAQCBpbmxpbmUgVmFsdWUqIEIzSVJHZW5lcmF0b3I6OmVtaXRDaGVja0FuZFByZXBh
cmVQb2ludGVyKFZhbHVlKiBwb2ludGVyLCB1aW50MzJfdAogICAgICAgICB9CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KKyNlbmRpZgogICAgIH0KIAogICAgIHBvaW50ZXIgPSBtX2N1cnJlbnRCbG9j
ay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIFpFeHQzMiwgb3JpZ2luKCksIHBvaW50ZXIpOwpA
QCAtMTQ5Niw3ICsxNTEzLDcgQEAgaW5saW5lIHVpbnQzMl90IHNpemVPZkxvYWRPcChMb2FkT3BU
eXBlIG9wKQogCiBpbmxpbmUgQjM6OktpbmQgQjNJUkdlbmVyYXRvcjo6bWVtb3J5S2luZChCMzo6
T3Bjb2RlIG1lbW9yeU9wKQogewotICAgIGlmIChtX21vZGUgPT0gTWVtb3J5TW9kZTo6U2lnbmFs
aW5nIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQoKSkKKyAgICBpZiAodXNlU2lnbmFsaW5nTWVt
b3J5KCkgfHwgbV9pbmZvLm1lbW9yeS5pc1NoYXJlZCgpKQogICAgICAgICByZXR1cm4gdHJhcHBp
bmcobWVtb3J5T3ApOwogICAgIHJldHVybiBtZW1vcnlPcDsKIH0KQEAgLTI5ODksNyArMzAwNiw3
IEBAIGF1dG8gQjNJUkdlbmVyYXRvcjo6YWRkQ2FsbCh1aW50MzJfdCBmdW5jdGlvbkluZGV4LCBj
b25zdCBUeXBlRGVmaW5pdGlvbiYgc2lnbmF0CiAgICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+
ZWZmZWN0cy5yZWFkc1Bpbm5lZCA9IHRydWU7CiAKICAgICAgICAgICAgICAgICAvLyBXZSBuZWVk
IHRvIGNsb2JiZXIgdGhlIHNpemUgcmVnaXN0ZXIgc2luY2UgdGhlIExMSW50IGFsd2F5cyBib3Vu
ZHMgY2hlY2tzCi0gICAgICAgICAgICAgICAgaWYgKG1fbW9kZSA9PSBNZW1vcnlNb2RlOjpTaWdu
YWxpbmcgfHwgbV9pbmZvLm1lbW9yeS5pc1NoYXJlZCgpKQorICAgICAgICAgICAgICAgIGlmICh1
c2VTaWduYWxpbmdNZW1vcnkoKSB8fCBtX2luZm8ubWVtb3J5LmlzU2hhcmVkKCkpCiAgICAgICAg
ICAgICAgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXJMYXRlKFJlZ2lzdGVyU2V0IHsgUGlubmVk
UmVnaXN0ZXJJbmZvOjpnZXQoKS5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlciB9KTsKICAgICAg
ICAgICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoW3RoaXMsIGhhbmRsZSwgdW5saW5r
ZWRXYXNtVG9XYXNtQ2FsbHMsIGZ1bmN0aW9uSW5kZXhdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29u
c3QgQjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7CiAgICAgICAgICAgICAg
ICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5kaW5nLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5kaW5nLmNwcAppbmRleCBlZGM3MGJl
YTA4YWYuLjMyNzI4OTk0OWFkZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUJpbmRpbmcuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21C
aW5kaW5nLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKIAog
I2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkRpc2FsbG93TWFjcm9TY3JhdGNo
UmVnaXN0ZXJVc2FnZS5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJXYXNt
Q2FsbGluZ0NvbnZlbnRpb24uaCIKICNpbmNsdWRlICJXYXNtSW5zdGFuY2UuaCIKQEAgLTQxLDE4
ICs0MiwyMSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFn
PiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub1dhc20odW5zaQogewogICAgIC8vIEZJWE1FOiBDb25z
aWRlciB1bmlxdWlmeSB0aGUgc3R1YnMgYmFzZWQgb24gc2lnbmF0dXJlICsgaW5kZXggdG8gc2Vl
IGlmIHRoaXMgc2F2ZXMgbWVtb3J5LgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODQxNTcKLQotICAgIGNvbnN0IFBpbm5lZFJlZ2lzdGVySW5mbyYgcGlu
bmVkUmVncyA9IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCk7CiAgICAgSklUIGppdDsKIAogICAg
IEdQUlJlZyBzY3JhdGNoID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNo
R1BSc1swXTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIEdQUlJlZyBiYXNlTWVtb3J5ID0g
d2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1sxXTsKKyAgICBHUFJS
ZWcgc2l6ZVJlZ0FzU2NyYXRjaCA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2Ny
YXRjaEdQUnNbMl07CisjZWxzZQorICAgIGNvbnN0IFBpbm5lZFJlZ2lzdGVySW5mbyYgcGlubmVk
UmVncyA9IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCk7CiAgICAgR1BSUmVnIGJhc2VNZW1vcnkg
PSBwaW5uZWRSZWdzLmJhc2VNZW1vcnlQb2ludGVyOwotICAgIEFTU0VSVChiYXNlTWVtb3J5ICE9
IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7Ci0gICAgQVNTRVJUKGJhc2VNZW1vcnkgIT0gc2NyYXRj
aCk7Ci0gICAgQVNTRVJUKHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIgIT0g
YmFzZU1lbW9yeSk7Ci0gICAgQVNTRVJUKHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVn
aXN0ZXIgIT0gc2NyYXRjaCk7CiAgICAgR1BSUmVnIHNpemVSZWdBc1NjcmF0Y2ggPSBwaW5uZWRS
ZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyOworI2VuZGlmCisgICAgQVNTRVJUKGJhc2VN
ZW1vcnkgIT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsKICAgICBBU1NFUlQoc2l6ZVJlZ0FzU2Ny
YXRjaCAhPSBHUFJSZWc6OkludmFsaWRHUFJSZWcpOworICAgIEFTU0VSVChzY3JhdGNoICE9IEdQ
UlJlZzo6SW52YWxpZEdQUlJlZyk7CisgICAgQVNTRVJUKG5vT3ZlcmxhcChzY3JhdGNoLCBiYXNl
TWVtb3J5LCBzaXplUmVnQXNTY3JhdGNoKSk7CiAKICAgICAvLyBCMydzIGNhbGwgY29kZWdlbiBl
bnN1cmVzIHRoYXQgdGhlIEpTQ2VsbCBpcyBhIFdlYkFzc2VtYmx5RnVuY3Rpb24uCiAgICAgaml0
LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHNpemVSZWdBc1NjcmF0Y2gpOyAvLyBPbGQgSW5zdGFu
Y2UqCkBAIC02NSw2ICs2OSw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNt
RW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvV2FzbSh1bnNpCiAgICAgaml0Lmxv
YWRQdHIoSklUOjpBZGRyZXNzKHNpemVSZWdBc1NjcmF0Y2gsIEluc3RhbmNlOjpvZmZzZXRPZkNh
Y2hlZFN0YWNrTGltaXQoKSksIHNpemVSZWdBc1NjcmF0Y2gpOwogICAgIGppdC5zdG9yZVB0cihz
aXplUmVnQXNTY3JhdGNoLCBKSVQ6OkFkZHJlc3MoYmFzZU1lbW9yeSwgSW5zdGFuY2U6Om9mZnNl
dE9mQ2FjaGVkU3RhY2tMaW1pdCgpKSk7CiAKKyNpZiAhQ1BVKEFSTSkgLy8gQVJNIGhhcyBubyBw
aW5uZWQgcmVnaXN0ZXJzIGZvciBXYXNtIE1lbW9yeSwgc28gbm8gbmVlZCB0byBzZXQgdGhlbSB1
cAogICAgIC8vIEZJWE1FIHRoZSBmb2xsb3dpbmcgY29kZSBhc3N1bWVzIHRoYXQgYWxsIFdhc206
Okluc3RhbmNlIGhhdmUgdGhlIHNhbWUgcGlubmVkIHJlZ2lzdGVycy4gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjk1MgogICAgIC8vIFNldCB1cCB0aGUgY2FsbGVl
J3MgYmFzZU1lbW9yeSByZWdpc3RlciBhcyB3ZWxsIGFzIHRoZSBtZW1vcnkgc2l6ZSByZWdpc3Rl
cnMuCiAgICAgewpAQCAtNzIsNiArNzcsNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVS
ZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub1dhc20odW5zaQogICAg
ICAgICBqaXQubG9hZFB0cihKSVQ6OkFkZHJlc3MoYmFzZU1lbW9yeSwgV2FzbTo6SW5zdGFuY2U6
Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNlTWVtb3J5KTsgLy8gV2FzbTo6TWVtb3J5OjpU
YWdnZWRBcnJheVN0b3JhZ2VQdHI8dm9pZD4gKHZvaWQqKS4KICAgICAgICAgaml0LmNhZ2VDb25k
aXRpb25hbGx5QW5kVW50YWcoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwgcGlubmVk
UmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3Rlciwgd2FzbUNhbGxpbmdDb252ZW50aW9uKCku
cHJvbG9ndWVTY3JhdGNoR1BSc1sxXSk7CiAgICAgfQorI2VuZGlmCiAKICAgICAvLyBUYWlsIGNh
bGwgaW50byB0aGUgY2FsbGVlIFdlYkFzc2VtYmx5IGZ1bmN0aW9uLgogICAgIGppdC5sb2FkUHRy
KEpJVDo6QWRkcmVzcyhzY3JhdGNoKSwgc2NyYXRjaCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21DYWxsZWUuY3BwCmluZGV4IGEzMjFjNTJmMTVlYy4uMzIwMmY1NDgwY2E0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcApAQCAtMTMxLDYgKzEzMSw4
IEBAIFJlZ2lzdGVyQXRPZmZzZXRMaXN0KiBMTEludENhbGxlZTo6Y2FsbGVlU2F2ZVJlZ2lzdGVy
cygpCiAgICAgICAgIHJlZ2lzdGVycy5zZXQoR1BSSW5mbzo6cmVnQ1MyKTsgLy8gUEIKICNlbGlm
IENQVShBUk02NCkgfHwgQ1BVKFJJU0NWNjQpCiAgICAgICAgIHJlZ2lzdGVycy5zZXQoR1BSSW5m
bzo6cmVnQ1M3KTsgLy8gUEIKKyNlbGlmIENQVShBUk0pCisgICAgICAgIHJlZ2lzdGVycy5zZXQo
R1BSSW5mbzo6cmVnQ1MxKTsgLy8gUEIKICNlbHNlCiAjZXJyb3IgVW5zdXBwb3J0ZWQgYXJjaGl0
ZWN0dXJlLgogI2VuZGlmCkBAIC0xNTgsNiArMTYwLDcgQEAgY29uc3QgV2FzbUluc3RydWN0aW9u
KiBMTEludENhbGxlZTo6b3V0T2ZMaW5lSnVtcFRhcmdldChjb25zdCBXYXNtSW5zdHJ1Y3Rpb24q
IHAKICAgICByZXR1cm4gbV9pbnN0cnVjdGlvbnMtPmF0KG9mZnNldCArIHRhcmdldCkucHRyKCk7
CiB9CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCiB2b2lkIE9wdGltaXppbmdKSVRD
YWxsZWU6OmxpbmtFeGNlcHRpb25IYW5kbGVycyhWZWN0b3I8VW5saW5rZWRIYW5kbGVySW5mbz4g
dW5saW5rZWRFeGNlcHRpb25IYW5kbGVycywgVmVjdG9yPENvZGVMb2NhdGlvbkxhYmVsPEV4Y2Vw
dGlvbkhhbmRsZXJQdHJUYWc+PiBleGNlcHRpb25IYW5kbGVyTG9jYXRpb25zKQogewogICAgIHNp
emVfdCBjb3VudCA9IHVubGlua2VkRXhjZXB0aW9uSGFuZGxlcnMuc2l6ZSgpOwpAQCAtMTg0LDcg
KzE4Nyw3IEBAIGNvbnN0IFN0YWNrTWFwJiBPcHRpbWl6aW5nSklUQ2FsbGVlOjpzdGFja21hcChD
YWxsU2l0ZUluZGV4IGNhbGxTaXRlSW5kZXgpIGNvbnN0CiAgICAgUkVMRUFTRV9BU1NFUlQoaXRl
ciAhPSBtX3N0YWNrbWFwcy5lbmQoKSk7CiAgICAgcmV0dXJuIGl0ZXItPnZhbHVlOwogfQotCisj
ZW5kaWYKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZUdyb3VwLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21DYWxsZWVHcm91cC5jcHAKaW5kZXggMWVhNDVjYTRhNmU5Li41MTlk
MjA5NmFkNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxs
ZWVHcm91cC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZUdy
b3VwLmNwcApAQCAtMTYwLDE3ICsxNjAsMjEgQEAgdm9pZCBDYWxsZWVHcm91cDo6Y29tcGlsZUFz
eW5jKENvbnRleHQqIGNvbnRleHQsIEFzeW5jQ29tcGlsYXRpb25DYWxsYmFjayYmIHRhc2sKIAog
Ym9vbCBDYWxsZWVHcm91cDo6aXNTYWZlVG9SdW4oTWVtb3J5TW9kZSBtZW1vcnlNb2RlKQogewor
ICAgIFVOVVNFRF9QQVJBTShtZW1vcnlNb2RlKTsKKwogICAgIGlmICghcnVubmFibGUoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgc3dpdGNoIChtX21vZGUpIHsKICAgICBjYXNlIFdh
c206Ok1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nOgogICAgICAgICByZXR1cm4gdHJ1ZTsKKyNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBjYXNlIFdhc206Ok1l
bW9yeU1vZGU6OlNpZ25hbGluZzoKICAgICAgICAgLy8gQ29kZSBiZWluZyBpbiBTaWduYWxpbmcg
bW9kZSBtZWFucyB0aGF0IGl0IHBlcmZvcm1zIG5vIGJvdW5kcyBjaGVja3MuCiAgICAgICAgIC8v
IEl0cyBtZW1vcnksIGV2ZW4gaWYgZW1wdHksIGFic29sdXRlbHkgbXVzdCBhbHNvIGJlIGluIFNp
Z25hbGluZyBtb2RlCiAgICAgICAgIC8vIGJlY2F1c2UgdGhlIHBhZ2UgcHJvdGVjdGlvbiBkZXRl
Y3RzIG91dC1vZi1ib3VuZHMgYWNjZXNzZXMuCiAgICAgICAgIHJldHVybiBtZW1vcnlNb2RlID09
IFdhc206Ok1lbW9yeU1vZGU6OlNpZ25hbGluZzsKKyNlbmRpZgogICAgIH0KICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwCmluZGV4IDIw
M2M4NDNhZThlNi4uZWIwOTA5NTgxODQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgY29u
c3QgSlNDYWxsaW5nQ29udmVudGlvbiYganNDYWxsaW5nQ29udmVudGlvbigpCiAgICAgICAgIFJl
Z2lzdGVyU2V0IGNhbGxlclNhdmVSZWdpc3RlcnMgPSBSZWdpc3RlclNldDo6YWxsUmVnaXN0ZXJz
KCk7CiAgICAgICAgIGNhbGxlclNhdmVSZWdpc3RlcnMuZXhjbHVkZShSZWdpc3RlclNldDo6Y2Fs
bGVlU2F2ZVJlZ2lzdGVycygpKTsKIAotICAgICAgICBzdGF0aWNKU0NhbGxpbmdDb252ZW50aW9u
LmNvbnN0cnVjdChWZWN0b3I8UmVnPigpLCBWZWN0b3I8UmVnPigpLCBSZWdpc3RlclNldDo6Y2Fs
bGVlU2F2ZVJlZ2lzdGVycygpLCBXVEZNb3ZlKGNhbGxlclNhdmVSZWdpc3RlcnMpKTsKKyAgICAg
ICAgc3RhdGljSlNDYWxsaW5nQ29udmVudGlvbi5jb25zdHJ1Y3QoVmVjdG9yPEpTVmFsdWVSZWdz
PigpLCBWZWN0b3I8RlBSUmVnPigpLCBSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygp
LCBXVEZNb3ZlKGNhbGxlclNhdmVSZWdpc3RlcnMpKTsKICAgICB9KTsKIAogICAgIHJldHVybiBz
dGF0aWNKU0NhbGxpbmdDb252ZW50aW9uOwpAQCAtNTEsMzEgKzUxLDUxIEBAIGNvbnN0IFdhc21D
YWxsaW5nQ29udmVudGlvbiYgd2FzbUNhbGxpbmdDb252ZW50aW9uKCkKICAgICBzdGF0aWMgTGF6
eU5ldmVyRGVzdHJveWVkPFdhc21DYWxsaW5nQ29udmVudGlvbj4gc3RhdGljV2FzbUNhbGxpbmdD
b252ZW50aW9uOwogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBzdGF0aWNXYXNtQ2FsbGluZ0Nv
bnZlbnRpb25GbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKHN0YXRpY1dhc21DYWxsaW5nQ29udmVu
dGlvbkZsYWcsIFtdICgpIHsKLSAgICAgICAgVmVjdG9yPFJlZz4gZ3ByQXJndW1lbnRSZWdpc3Rl
cnMoR1BSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyk7Ci0gICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBHUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzOyArK2kp
Ci0gICAgICAgICAgICBncHJBcmd1bWVudFJlZ2lzdGVyc1tpXSA9IEdQUkluZm86OnRvQXJndW1l
bnRSZWdpc3RlcihpKTsKKyNpZiBVU0UoSlNWQUxVRTY0KSAvLyBPbmUgdmFsdWUgcGVyIEdQUgor
ICAgICAgICBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudEpTUnMgPSBHUFJJbmZv
OjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkgLy8g
T25lIHZhbHVlIHBlciBjb25zZWN1dGl2ZSBHUFIgcGFpcgorICAgICAgICBjb25zdGV4cHIgdW5z
aWduZWQgbnVtYmVyT2ZBcmd1bWVudEpTUnMgPSBHUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVn
aXN0ZXJzIC8gMjsKKyNlbmRpZgorICAgICAgICBWZWN0b3I8SlNWYWx1ZVJlZ3M+IGpzckFyZ3Vt
ZW50UmVnaXN0ZXJzKG51bWJlck9mQXJndW1lbnRKU1JzKTsKKyAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG51bWJlck9mQXJndW1lbnRKU1JzOyArK2kpIHsKKyNpZiBVU0UoSlNWQUxV
RTY0KQorICAgICAgICAgICAganNyQXJndW1lbnRSZWdpc3RlcnNbaV0gPSBKU1ZhbHVlUmVncyB7
IEdQUkluZm86OnRvQXJndW1lbnRSZWdpc3RlcihpKSB9OworI2VsaWYgVVNFKEpTVkFMVUUzMl82
NCkKKyAgICAgICAgICAgIGpzckFyZ3VtZW50UmVnaXN0ZXJzW2ldID0gSlNWYWx1ZVJlZ3MgeyBH
UFJJbmZvOjp0b0FyZ3VtZW50UmVnaXN0ZXIoMiAqIGkgKyAxKSwgR1BSSW5mbzo6dG9Bcmd1bWVu
dFJlZ2lzdGVyKDIgKiBpKSB9OworI2VuZGlmCisgICAgICAgIH0KIAotICAgICAgICBWZWN0b3I8
UmVnPiBmcHJBcmd1bWVudFJlZ2lzdGVycyhGUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0
ZXJzKTsKKyAgICAgICAgVmVjdG9yPEZQUlJlZz4gZnByQXJndW1lbnRSZWdpc3RlcnMoRlBSSW5m
bzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBGUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzOyArK2kpCiAgICAgICAg
ICAgICBmcHJBcmd1bWVudFJlZ2lzdGVyc1tpXSA9IEZQUkluZm86OnRvQXJndW1lbnRSZWdpc3Rl
cihpKTsKIAogICAgICAgICBSZWdpc3RlclNldCBzY3JhdGNoID0gUmVnaXN0ZXJTZXQ6OmFsbEdQ
UnMoKTsKLSAgICAgICAgc2NyYXRjaC5leGNsdWRlKFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVn
aXN0ZXJzKCkpOworICAgICAgICBzY3JhdGNoLmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6OnZtQ2FsbGVl
U2F2ZVJlZ2lzdGVycygpKTsKICAgICAgICAgc2NyYXRjaC5leGNsdWRlKFJlZ2lzdGVyU2V0Ojpt
YWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7CiAgICAgICAgIHNjcmF0Y2guZXhjbHVkZShSZWdpc3Rl
clNldDo6cmVzZXJ2ZWRIYXJkd2FyZVJlZ2lzdGVycygpKTsKICAgICAgICAgc2NyYXRjaC5leGNs
dWRlKFJlZ2lzdGVyU2V0OjpzdGFja1JlZ2lzdGVycygpKTsKLSAgICAgICAgZm9yIChSZWcgcmVn
IDogZ3ByQXJndW1lbnRSZWdpc3RlcnMpCi0gICAgICAgICAgICBzY3JhdGNoLmNsZWFyKHJlZyk7
CisgICAgICAgIGZvciAoSlNWYWx1ZVJlZ3MganNyIDoganNyQXJndW1lbnRSZWdpc3RlcnMpIHsK
KyAgICAgICAgICAgIHNjcmF0Y2guY2xlYXIoanNyLnBheWxvYWRHUFIoKSk7CisjaWYgVVNFKEpT
VkFMVUUzMl82NCkKKyAgICAgICAgICAgIHNjcmF0Y2guY2xlYXIoanNyLnRhZ0dQUigpKTsKKyNl
bmRpZgorICAgICAgICB9CiAKICAgICAgICAgVmVjdG9yPEdQUlJlZz4gc2NyYXRjaEdQUnM7CiAg
ICAgICAgIGZvciAoUmVnIHJlZyA6IHNjcmF0Y2gpCiAgICAgICAgICAgICBzY3JhdGNoR1BScy5h
cHBlbmQocmVnLmdwcigpKTsKKworICAgICAgICAvLyBOZWVkIGF0IGxlYXN0IG9uZSBKU1ZhbHVl
IGFuZCBhbiBhZGRpdGlvbmFsIEdQUgorI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKHNjcmF0Y2hHUFJzLnNpemUoKSA+PSAyKTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKHNjcmF0Y2hHUFJzLnNpemUoKSA+PSAzKTsKKyNl
bmRpZgogCiAgICAgICAgIFJlZ2lzdGVyU2V0IGNhbGxlclNhdmVSZWdpc3RlcnMgPSBSZWdpc3Rl
clNldDo6YWxsUmVnaXN0ZXJzKCk7CiAgICAgICAgIGNhbGxlclNhdmVSZWdpc3RlcnMuZXhjbHVk
ZShSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpKTsKIAotICAgICAgICBzdGF0aWNX
YXNtQ2FsbGluZ0NvbnZlbnRpb24uY29uc3RydWN0KFdURk1vdmUoZ3ByQXJndW1lbnRSZWdpc3Rl
cnMpLCBXVEZNb3ZlKGZwckFyZ3VtZW50UmVnaXN0ZXJzKSwgV1RGTW92ZShzY3JhdGNoR1BScyks
IFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCksIFdURk1vdmUoY2FsbGVyU2F2ZVJl
Z2lzdGVycykpOworICAgICAgICBzdGF0aWNXYXNtQ2FsbGluZ0NvbnZlbnRpb24uY29uc3RydWN0
KFdURk1vdmUoanNyQXJndW1lbnRSZWdpc3RlcnMpLCBXVEZNb3ZlKGZwckFyZ3VtZW50UmVnaXN0
ZXJzKSwgV1RGTW92ZShzY3JhdGNoR1BScyksIFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0
ZXJzKCksIFdURk1vdmUoY2FsbGVyU2F2ZVJlZ2lzdGVycykpOwogICAgIH0pOwogCiAgICAgcmV0
dXJuIHN0YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKaW5kZXggN2YxZTYwOTkxMmY0Li4z
MTAyNTA4ZTBhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21D
YWxsaW5nQ29udmVudGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21D
YWxsaW5nQ29udmVudGlvbi5oCkBAIC01Nyw4ICs1NywxMyBAQCBzdHJ1Y3QgQ2FsbEluZm9ybWF0
aW9uIHsKICAgICB7CiAgICAgICAgIFJlZ2lzdGVyU2V0IHVzZWRSZXN1bHRSZWdpc3RlcnM7CiAg
ICAgICAgIGZvciAoVmFsdWVMb2NhdGlvbiBsb2MgOiByZXN1bHRzKSB7Ci0gICAgICAgICAgICBp
ZiAobG9jLmlzUmVnKCkpCi0gICAgICAgICAgICAgICAgdXNlZFJlc3VsdFJlZ2lzdGVycy5zZXQo
bG9jLnJlZygpKTsKKyAgICAgICAgICAgIGlmIChsb2MuaXNHUFIoKSkgeworICAgICAgICAgICAg
ICAgIHVzZWRSZXN1bHRSZWdpc3RlcnMuc2V0KGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpOworI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgdXNlZFJlc3VsdFJlZ2lzdGVycy5z
ZXQobG9jLmpzcigpLnRhZ0dQUigpKTsKKyNlbmRpZgorICAgICAgICAgICAgfSBlbHNlIGlmIChs
b2MuaXNGUFIoKSkKKyAgICAgICAgICAgICAgICB1c2VkUmVzdWx0UmVnaXN0ZXJzLnNldChsb2Mu
ZnByKCkpOwogICAgICAgICB9CiAKICAgICAgICAgUmVnaXN0ZXJBdE9mZnNldExpc3Qgc2F2ZWRS
ZWdzKHVzZWRSZXN1bHRSZWdpc3RlcnMsIFJlZ2lzdGVyQXRPZmZzZXRMaXN0OjpaZXJvQmFzZWQp
OwpAQCAtNzcsOCArODIsOCBAQCBjbGFzcyBXYXNtQ2FsbGluZ0NvbnZlbnRpb24gewogcHVibGlj
OgogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgaGVhZGVyU2l6ZUluQnl0ZXMgPSBDYWxs
RnJhbWU6OmhlYWRlclNpemVJblJlZ2lzdGVycyAqIHNpemVvZihSZWdpc3Rlcik7CiAKLSAgICBX
YXNtQ2FsbGluZ0NvbnZlbnRpb24oVmVjdG9yPFJlZz4mJiBncHJzLCBWZWN0b3I8UmVnPiYmIGZw
cnMsIFZlY3RvcjxHUFJSZWc+JiYgc2NyYXRjaGVzLCBSZWdpc3RlclNldCYmIGNhbGxlZVNhdmVz
LCBSZWdpc3RlclNldCYmIGNhbGxlclNhdmVzKQotICAgICAgICA6IGdwckFyZ3MoV1RGTW92ZShn
cHJzKSkKKyAgICBXYXNtQ2FsbGluZ0NvbnZlbnRpb24oVmVjdG9yPEpTVmFsdWVSZWdzPiYmIGpz
cnMsIFZlY3RvcjxGUFJSZWc+JiYgZnBycywgVmVjdG9yPEdQUlJlZz4mJiBzY3JhdGNoZXMsIFJl
Z2lzdGVyU2V0JiYgY2FsbGVlU2F2ZXMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVyU2F2ZXMpCisgICAg
ICAgIDoganNyQXJncyhXVEZNb3ZlKGpzcnMpKQogICAgICAgICAsIGZwckFyZ3MoV1RGTW92ZShm
cHJzKSkKICAgICAgICAgLCBwcm9sb2d1ZVNjcmF0Y2hHUFJzKFdURk1vdmUoc2NyYXRjaGVzKSkK
ICAgICAgICAgLCBjYWxsZWVTYXZlUmVnaXN0ZXJzKFdURk1vdmUoY2FsbGVlU2F2ZXMpKQpAQCAt
ODgsMTAgKzkzLDExIEBAIHB1YmxpYzoKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXYXNtQ2Fs
bGluZ0NvbnZlbnRpb24pOwogCiBwcml2YXRlOgotICAgIEFyZ3VtZW50TG9jYXRpb24gbWFyc2hh
bGxMb2NhdGlvbkltcGwoQ2FsbFJvbGUgcm9sZSwgY29uc3QgVmVjdG9yPFJlZz4mIHJlZ0FyZ3Ms
IHNpemVfdCYgY291bnQsIHNpemVfdCYgc3RhY2tPZmZzZXQpIGNvbnN0CisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgUmVnVHlwZT4KKyAgICBBcmd1bWVudExvY2F0aW9uIG1hcnNoYWxsTG9jYXRpb25J
bXBsKENhbGxSb2xlIHJvbGUsIGNvbnN0IFZlY3RvcjxSZWdUeXBlPiYgcmVnQXJncywgc2l6ZV90
JiBjb3VudCwgc2l6ZV90JiBzdGFja09mZnNldCkgY29uc3QKICAgICB7CiAgICAgICAgIGlmIChj
b3VudCA8IHJlZ0FyZ3Muc2l6ZSgpKQotICAgICAgICAgICAgcmV0dXJuIEFyZ3VtZW50TG9jYXRp
b246OnJlZyhyZWdBcmdzW2NvdW50KytdKTsKKyAgICAgICAgICAgIHJldHVybiBBcmd1bWVudExv
Y2F0aW9uIHsgcmVnQXJnc1tjb3VudCsrXSB9OwogCiAgICAgICAgIGNvdW50Kys7CiAgICAgICAg
IEFyZ3VtZW50TG9jYXRpb24gcmVzdWx0ID0gcm9sZSA9PSBDYWxsUm9sZTo6Q2FsbGVyID8gQXJn
dW1lbnRMb2NhdGlvbjo6c3RhY2tBcmd1bWVudChzdGFja09mZnNldCkgOiBBcmd1bWVudExvY2F0
aW9uOjpzdGFjayhzdGFja09mZnNldCk7CkBAIC0xMTAsNyArMTE2LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxs
OgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpSdHQ6Ci0gICAgICAgICAgICByZXR1cm4gbWFyc2hh
bGxMb2NhdGlvbkltcGwocm9sZSwgZ3ByQXJncywgZ3BBcmd1bWVudENvdW50LCBzdGFja09mZnNl
dCk7CisgICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwganNyQXJn
cywgZ3BBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6
OkYzMjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OgogICAgICAgICAgICAgcmV0dXJuIG1h
cnNoYWxsTG9jYXRpb25JbXBsKHJvbGUsIGZwckFyZ3MsIGZwQXJndW1lbnRDb3VudCwgc3RhY2tP
ZmZzZXQpOwpAQCAtMTU1LDggKzE2MSw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICB9CiAKLSAgICBjb25zdCBWZWN0b3I8UmVnPiBncHJBcmdzOwotICAgIGNvbnN0IFZl
Y3RvcjxSZWc+IGZwckFyZ3M7CisgICAgY29uc3QgVmVjdG9yPEpTVmFsdWVSZWdzPiBqc3JBcmdz
OworICAgIGNvbnN0IFZlY3RvcjxGUFJSZWc+IGZwckFyZ3M7CiAgICAgY29uc3QgVmVjdG9yPEdQ
UlJlZz4gcHJvbG9ndWVTY3JhdGNoR1BSczsKICAgICBjb25zdCBSZWdpc3RlclNldCBjYWxsZWVT
YXZlUmVnaXN0ZXJzOwogICAgIGNvbnN0IFJlZ2lzdGVyU2V0IGNhbGxlclNhdmVSZWdpc3RlcnM7
CkBAIC0xNzEsOCArMTc3LDggQEAgcHVibGljOgogICAgIC8vIFdhc206OkNvbnRleHQqJ3MgaW5z
dGFuY2UuCiAgICAgc3RhdGljIGNvbnN0ZXhwciBwdHJkaWZmX3QgaW5zdGFuY2VTdGFja09mZnNl
dCA9IENhbGxGcmFtZVNsb3Q6OnRoaXNBcmd1bWVudCAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7
CiAKLSAgICBKU0NhbGxpbmdDb252ZW50aW9uKFZlY3RvcjxSZWc+JiYgZ3BycywgVmVjdG9yPFJl
Zz4mJiBmcHJzLCBSZWdpc3RlclNldCYmIGNhbGxlZVNhdmVzLCBSZWdpc3RlclNldCYmIGNhbGxl
clNhdmVzKQotICAgICAgICA6IGdwckFyZ3MoV1RGTW92ZShncHJzKSkKKyAgICBKU0NhbGxpbmdD
b252ZW50aW9uKFZlY3RvcjxKU1ZhbHVlUmVncz4mJiBncHJzLCBWZWN0b3I8RlBSUmVnPiYmIGZw
cnMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVlU2F2ZXMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVyU2F2ZXMp
CisgICAgICAgIDoganNyQXJncyhXVEZNb3ZlKGdwcnMpKQogICAgICAgICAsIGZwckFyZ3MoV1RG
TW92ZShmcHJzKSkKICAgICAgICAgLCBjYWxsZWVTYXZlUmVnaXN0ZXJzKFdURk1vdmUoY2FsbGVl
U2F2ZXMpKQogICAgICAgICAsIGNhbGxlclNhdmVSZWdpc3RlcnMoV1RGTW92ZShjYWxsZXJTYXZl
cykpCkBAIC0xODAsMTAgKzE4NiwxMSBAQCBwdWJsaWM6CiAKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShKU0NhbGxpbmdDb252ZW50aW9uKTsKIHByaXZhdGU6Ci0gICAgQXJndW1lbnRMb2NhdGlv
biBtYXJzaGFsbExvY2F0aW9uSW1wbChDYWxsUm9sZSByb2xlLCBjb25zdCBWZWN0b3I8UmVnPiYg
cmVnQXJncywgc2l6ZV90JiBjb3VudCwgc2l6ZV90JiBzdGFja09mZnNldCkgY29uc3QKKyAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgUmVnVHlwZT4KKyAgICBBcmd1bWVudExvY2F0aW9uIG1hcnNoYWxs
TG9jYXRpb25JbXBsKENhbGxSb2xlIHJvbGUsIGNvbnN0IFZlY3RvcjxSZWdUeXBlPiYgcmVnQXJn
cywgc2l6ZV90JiBjb3VudCwgc2l6ZV90JiBzdGFja09mZnNldCkgY29uc3QKICAgICB7CiAgICAg
ICAgIGlmIChjb3VudCA8IHJlZ0FyZ3Muc2l6ZSgpKQotICAgICAgICAgICAgcmV0dXJuIEFyZ3Vt
ZW50TG9jYXRpb246OnJlZyhyZWdBcmdzW2NvdW50KytdKTsKKyAgICAgICAgICAgIHJldHVybiBB
cmd1bWVudExvY2F0aW9uIHsgcmVnQXJnc1tjb3VudCsrXSB9OwogCiAgICAgICAgIGNvdW50Kys7
CiAgICAgICAgIEFyZ3VtZW50TG9jYXRpb24gcmVzdWx0ID0gcm9sZSA9PSBDYWxsUm9sZTo6Q2Fs
bGVyID8gQXJndW1lbnRMb2NhdGlvbjo6c3RhY2tBcmd1bWVudChzdGFja09mZnNldCkgOiBBcmd1
bWVudExvY2F0aW9uOjpzdGFjayhzdGFja09mZnNldCk7CkBAIC0yMDEsNyArMjA4LDcgQEAgcHJp
dmF0ZToKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICBjYXNlIFR5
cGVLaW5kOjpSZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6Ci0gICAgICAgICAg
ICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwgZ3ByQXJncywgZ3BBcmd1bWVudENv
dW50LCBzdGFja09mZnNldCk7CisgICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbklt
cGwocm9sZSwganNyQXJncywgZ3BBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CiAgICAgICAg
IGNhc2UgVHlwZUtpbmQ6OkYzMjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OgogICAgICAg
ICAgICAgcmV0dXJuIG1hcnNoYWxsTG9jYXRpb25JbXBsKHJvbGUsIGZwckFyZ3MsIGZwQXJndW1l
bnRDb3VudCwgc3RhY2tPZmZzZXQpOwpAQCAtMjI0LDEyICsyMzEsMTIgQEAgcHVibGljOgogICAg
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpZ25hdHVyZS5hczxGdW5jdGlvblNpZ25hdHVy
ZT4oKS0+YXJndW1lbnRDb3VudCgpOyArK2kpCiAgICAgICAgICAgICBwYXJhbXMuYXBwZW5kKG1h
cnNoYWxsTG9jYXRpb24ocm9sZSwgc2lnbmF0dXJlLmFzPEZ1bmN0aW9uU2lnbmF0dXJlPigpLT5h
cmd1bWVudFR5cGUoaSksIGdwQXJndW1lbnRDb3VudCwgZnBBcmd1bWVudENvdW50LCBzdGFja09m
ZnNldCkpOwogCi0gICAgICAgIFZlY3RvcjxBcmd1bWVudExvY2F0aW9uLCAxPiByZXN1bHRzIHsg
QXJndW1lbnRMb2NhdGlvbjo6cmVnKEdQUkluZm86OnJldHVyblZhbHVlR1BSKSB9OworICAgICAg
ICBWZWN0b3I8QXJndW1lbnRMb2NhdGlvbiwgMT4gcmVzdWx0cyB7IEFyZ3VtZW50TG9jYXRpb24g
eyBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiB9IH07CiAgICAgICAgIHJldHVybiBDYWxsSW5mb3Jt
YXRpb24oV1RGTW92ZShwYXJhbXMpLCBXVEZNb3ZlKHJlc3VsdHMpLCBzdGFja09mZnNldCk7CiAg
ICAgfQogCi0gICAgY29uc3QgVmVjdG9yPFJlZz4gZ3ByQXJnczsKLSAgICBjb25zdCBWZWN0b3I8
UmVnPiBmcHJBcmdzOworICAgIGNvbnN0IFZlY3RvcjxKU1ZhbHVlUmVncz4ganNyQXJnczsKKyAg
ICBjb25zdCBWZWN0b3I8RlBSUmVnPiBmcHJBcmdzOwogICAgIGNvbnN0IFJlZ2lzdGVyU2V0IGNh
bGxlZVNhdmVSZWdpc3RlcnM7CiAgICAgY29uc3QgUmVnaXN0ZXJTZXQgY2FsbGVyU2F2ZVJlZ2lz
dGVyczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9y
bWF0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKaW5kZXggOWJl
YTQ0ODY0NzgwLi5hOGRhMTIwMDQxYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21Gb3JtYXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
Rm9ybWF0LmgKQEAgLTQ0Miw3ICs0NDIsOSBAQCBzdHJ1Y3QgRW50cnlwb2ludCB7CiBzdHJ1Y3Qg
SW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOwog
ICAgIFZlY3RvcjxDb2RlTG9jYXRpb25EYXRhTGFiZWxQdHI8V2FzbUVudHJ5UHRyVGFnPj4gY2Fs
bGVlTW92ZUxvY2F0aW9uczsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCiAgICAgU3Rh
Y2tNYXBzIHN0YWNrbWFwczsKKyNlbmRpZgogICAgIFZlY3RvcjxVbmxpbmtlZEhhbmRsZXJJbmZv
PiBleGNlcHRpb25IYW5kbGVyczsKICAgICBFbnRyeXBvaW50IGVudHJ5cG9pbnQ7CiAgICAgdW5z
aWduZWQgb3NyRW50cnlTY3JhdGNoQnVmZmVyU2l6ZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwCmluZGV4IDQxMjBhZTZhOTQ5NC4uZmIy
MWM5MmJmODFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5k
ZXhPck5hbWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9y
TmFtZS5jcHAKQEAgLTMwLDE2ICszMCwyMyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdh
c20gewogCiBJbmRleE9yTmFtZTo6SW5kZXhPck5hbWUoSW5kZXggaW5kZXgsIHN0ZDo6cGFpcjxj
b25zdCBOYW1lKiwgUmVmUHRyPE5hbWVTZWN0aW9uPj4mJiBuYW1lKQogeworI2lmIFVTRShKU1ZB
TFVFNjQpCiAgICAgc3RhdGljX2Fzc2VydChzaXplb2YobV9pbmRleE5hbWUuaW5kZXgpID09IHNp
emVvZihtX2luZGV4TmFtZS5uYW1lKSwgImJpdC10YWdnaW5nIGRlcGVuZHMgb24gc2l6ZXMgYmVp
bmcgZXF1YWwiKTsKLQotICAgIGlmICgoaW5kZXggJiBhbGxUYWdzKSB8fCAoYml0d2lzZV9jYXN0
PEluZGV4PihuYW1lLmZpcnN0KSAmIGFsbFRhZ3MpKQotICAgICAgICAqdGhpcyA9IEluZGV4T3JO
YW1lKCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGlmIChuYW1lLmZpcnN0KQotICAgICAgICAgICAg
bV9pbmRleE5hbWUubmFtZSA9IG5hbWUuZmlyc3Q7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IG1faW5kZXhOYW1lLmluZGV4ID0gaW5kZXhUYWcgfCBpbmRleDsKKyAgICBBU1NFUlQoIShpbmRl
eCAmIGFsbFRhZ3MpKTsKKyAgICBBU1NFUlQoIShiaXR3aXNlX2Nhc3Q8SW5kZXg+KG5hbWUuZmly
c3QpICYgYWxsVGFncykpOworICAgIGlmIChuYW1lLmZpcnN0KQorICAgICAgICBtX2luZGV4TmFt
ZS5uYW1lID0gbmFtZS5maXJzdDsKKyAgICBlbHNlCisgICAgICAgIG1faW5kZXhOYW1lLmluZGV4
ID0gaW5kZXhUYWcgfCBpbmRleDsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgaWYgKG5h
bWUuZmlyc3QpIHsKKyAgICAgICAgbV9pbmRleE5hbWUubmFtZSA9IG5hbWUuZmlyc3Q7CisgICAg
ICAgIG1fa2luZCA9IEtpbmQ6Ok5hbWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV9pbmRleE5h
bWUuaW5kZXggPSBpbmRleDsKKyAgICAgICAgbV9raW5kID0gS2luZDo6SW5kZXg7CiAgICAgfQor
I2VuZGlmCiAgICAgbV9uYW1lU2VjdGlvbiA9IFdURk1vdmUobmFtZS5zZWNvbmQpOwogfQogCkBA
IC00OSw4ICs1Niw4IEBAIFN0cmluZyBtYWtlU3RyaW5nKGNvbnN0IEluZGV4T3JOYW1lJiBpb24p
CiAgICAgICAgIHJldHVybiAid2FzbS1zdHViIl9zOwogICAgIGNvbnN0IFN0cmluZyBtb2R1bGVO
YW1lID0gaW9uLm5hbWVTZWN0aW9uKCktPm1vZHVsZU5hbWUuc2l6ZSgpID8gU3RyaW5nKGlvbi5u
YW1lU2VjdGlvbigpLT5tb2R1bGVOYW1lLmRhdGEoKSwgaW9uLm5hbWVTZWN0aW9uKCktPm1vZHVs
ZU5hbWUuc2l6ZSgpKSA6IFN0cmluZyhpb24ubmFtZVNlY3Rpb24oKS0+bW9kdWxlSGFzaC5kYXRh
KCksIGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1bGVIYXNoLnNpemUoKSk7CiAgICAgaWYgKGlvbi5p
c0luZGV4KCkpCi0gICAgICAgIHJldHVybiBtYWtlU3RyaW5nKG1vZHVsZU5hbWUsICIud2FzbS1m
dW5jdGlvblsiLCBTdHJpbmc6Om51bWJlcihpb24ubV9pbmRleE5hbWUuaW5kZXggJiB+SW5kZXhP
ck5hbWU6OmluZGV4VGFnKSwgJ10nKTsKLSAgICByZXR1cm4gbWFrZVN0cmluZyhtb2R1bGVOYW1l
LCAiLndhc20tZnVuY3Rpb25bIiwgU3RyaW5nKGlvbi5tX2luZGV4TmFtZS5uYW1lLT5kYXRhKCks
IGlvbi5tX2luZGV4TmFtZS5uYW1lLT5zaXplKCkpLCAnXScpOworICAgICAgICByZXR1cm4gbWFr
ZVN0cmluZyhtb2R1bGVOYW1lLCAiLndhc20tZnVuY3Rpb25bIiwgU3RyaW5nOjpudW1iZXIoaW9u
LmluZGV4KCkpLCAnXScpOworICAgIHJldHVybiBtYWtlU3RyaW5nKG1vZHVsZU5hbWUsICIud2Fz
bS1mdW5jdGlvblsiLCBTdHJpbmcoaW9uLm5hbWUoKS0+ZGF0YSgpLCBpb24ubmFtZSgpLT5zaXpl
KCkpLCAnXScpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaAppbmRleCA1ZWVlZmM4OGFmNzYuLjJk
OTAzMDExOGY4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUlu
ZGV4T3JOYW1lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JO
YW1lLmgKQEAgLTQwLDE0ICs0MCw2NyBAQCBzdHJ1Y3QgTmFtZVNlY3Rpb247CiBzdHJ1Y3QgSW5k
ZXhPck5hbWUgewogICAgIHR5cGVkZWYgc2l6ZV90IEluZGV4OwogCi0gICAgSW5kZXhPck5hbWUo
KSB7IG1faW5kZXhOYW1lLmluZGV4ID0gZW1wdHlUYWc7IH0KLSAgICBJbmRleE9yTmFtZShJbmRl
eCwgc3RkOjpwYWlyPGNvbnN0IE5hbWUqLCBSZWZQdHI8TmFtZVNlY3Rpb24+PiYmKTsKLSAgICBi
b29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8SW5kZXg+KG1faW5kZXhO
YW1lKSAmIGVtcHR5VGFnOyB9Ci0gICAgYm9vbCBpc0luZGV4KCkgY29uc3QgeyByZXR1cm4gYml0
d2lzZV9jYXN0PEluZGV4PihtX2luZGV4TmFtZSkgJiBpbmRleFRhZzsgfQotICAgIGJvb2wgaXNO
YW1lKCkgY29uc3QgeyByZXR1cm4gIShpc0VtcHR5KCkgfHwgaXNOYW1lKCkpOyB9Ci0gICAgTmFt
ZVNlY3Rpb24qIG5hbWVTZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lU2VjdGlvbi5nZXQo
KTsgfQorcHJpdmF0ZToKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGVudW0gY2xhc3MgS2lu
ZCA6IHVpbnQ4X3QgeworICAgICAgICBFbXB0eSwKKyAgICAgICAgSW5kZXgsCisgICAgICAgIE5h
bWUKKyAgICB9OworI2VuZGlmCitwdWJsaWM6CiAKLSAgICBmcmllbmQgU3RyaW5nIG1ha2VTdHJp
bmcoY29uc3QgSW5kZXhPck5hbWUmKTsKKyAgICBJbmRleE9yTmFtZSgpCisgICAgeworI2lmIFVT
RShKU1ZBTFVFNjQpCisgICAgICAgIG1faW5kZXhOYW1lLmluZGV4ID0gZW1wdHlUYWc7CisjZWxp
ZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBtX2tpbmQgPSBLaW5kOjpFbXB0eTsKKyNlbmRp
ZgorICAgIH0KKworICAgIEluZGV4T3JOYW1lKEluZGV4LCBzdGQ6OnBhaXI8Y29uc3QgTmFtZSos
IFJlZlB0cjxOYW1lU2VjdGlvbj4+JiYpOworCisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QKKyAg
ICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxJbmRl
eD4obV9pbmRleE5hbWUpICYgZW1wdHlUYWc7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAg
ICAgICByZXR1cm4gbV9raW5kID09IEtpbmQ6OkVtcHR5OworI2VuZGlmCisgICAgfQorCisgICAg
Ym9vbCBpc0luZGV4KCkgY29uc3QKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAg
cmV0dXJuIGJpdHdpc2VfY2FzdDxJbmRleD4obV9pbmRleE5hbWUpICYgaW5kZXhUYWc7CisjZWxp
ZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4gbV9raW5kID09IEtpbmQ6OkluZGV4
OworI2VuZGlmCisgICAgfQorCisgICAgYm9vbCBpc05hbWUoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuICEoaXNFbXB0eSgpIHx8IGlzSW5kZXgoKSk7CisgICAgfQorCisgICAgSW5kZXgg
aW5kZXgoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzSW5kZXgoKSk7CisjaWYgVVNF
KEpTVkFMVUU2NCkKKyAgICAgICAgcmV0dXJuIG1faW5kZXhOYW1lLmluZGV4ICYgfmluZGV4VGFn
OworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgcmV0dXJuIG1faW5kZXhOYW1lLmlu
ZGV4OworI2VuZGlmCisgICAgfQorCisgICAgY29uc3QgTmFtZSogbmFtZSgpIGNvbnN0CisgICAg
eworICAgICAgICBBU1NFUlQoaXNOYW1lKCkpOworICAgICAgICByZXR1cm4gbV9pbmRleE5hbWUu
bmFtZTsKKyAgICB9CisKKyAgICBOYW1lU2VjdGlvbiogbmFtZVNlY3Rpb24oKSBjb25zdCB7IHJl
dHVybiBtX25hbWVTZWN0aW9uLmdldCgpOyB9CiAKIHByaXZhdGU6CiAgICAgdW5pb24gewpAQCAt
NTYsMTAgKzEwOSwxNSBAQCBwcml2YXRlOgogICAgIH0gbV9pbmRleE5hbWU7CiAgICAgUmVmUHRy
PE5hbWVTZWN0aW9uPiBtX25hbWVTZWN0aW9uOwogCisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAv
LyBVc2UgdGhlIHRvcCBiaXRzIGFzIHRhZ3MuIE5laXRoZXIgcG9pbnRlcnMgbm9yIHRoZSBmdW5j
dGlvbiBpbmRleCBzcGFjZSBzaG91bGQgdXNlIHRoZW0uCiAgICAgc3RhdGljIGNvbnN0ZXhwciBJ
bmRleCBpbmRleFRhZyA9IDF1bGwgPDwgKENIQVJfQklUICogc2l6ZW9mKEluZGV4KSAtIDEpOwog
ICAgIHN0YXRpYyBjb25zdGV4cHIgSW5kZXggZW1wdHlUYWcgPSAxdWxsIDw8IChDSEFSX0JJVCAq
IHNpemVvZihJbmRleCkgLSAyKTsKICAgICBzdGF0aWMgY29uc3RleHByIEluZGV4IGFsbFRhZ3Mg
PSBpbmRleFRhZyB8IGVtcHR5VGFnOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAvLyBV
c2UgYW4gZXhwbGljaXQgdGFnIGFzIHBvaW50ZXJzIG1pZ2h0IGhhdmUgaGlnaCBiaXRzIHNldAor
ICAgIEtpbmQgbV9raW5kOworI2VuZGlmCiB9OwogCiBTdHJpbmcgbWFrZVN0cmluZyhjb25zdCBJ
bmRleE9yTmFtZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaApp
bmRleCBlNmRiM2EzYTA4YzQuLmM5NDQyY2ZmNzJkYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUluc3RhbmNlLmgKQEAgLTEwNiw4ICsxMDYsOSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCB1cGRhdGVDYWNoZWRNZW1vcnkoKQogICAgIHsKICAgICAgICAgaWYgKG1fbWVtb3J5ICE9IG51
bGxwdHIpIHsKLSAgICAgICAgICAgIG1fY2FjaGVkTWVtb3J5ID0gQ2FnZWRQdHI8R2lnYWNhZ2U6
OlByaW1pdGl2ZSwgdm9pZCwgdGFnQ2FnZWRQdHI+KG1lbW9yeSgpLT5tZW1vcnkoKSwgbWVtb3J5
KCktPmJvdW5kc0NoZWNraW5nU2l6ZSgpKTsKLSAgICAgICAgICAgIG1fY2FjaGVkQm91bmRzQ2hl
Y2tpbmdTaXplID0gbWVtb3J5KCktPmJvdW5kc0NoZWNraW5nU2l6ZSgpOworICAgICAgICAgICAg
bV9jYWNoZWRNZW1vcnkgPSBDYWdlZFB0cjxHaWdhY2FnZTo6UHJpbWl0aXZlLCB2b2lkLCB0YWdD
YWdlZFB0cj4obWVtb3J5KCktPm1lbW9yeSgpLCBtZW1vcnkoKS0+bWFwcGVkQ2FwYWNpdHkoKSk7
CisgICAgICAgICAgICAvLyBUaGlzIGlzIHVzZWQgYnkgdGhlIG5vbi1zaWduYWxpbmcgYmFzZWQg
Ym91bmQgY2hlY2tpbmcsIHNvIHVzZSB0aGUgYWN0dWFsIHNpemUgb2YgdGhlIG1lbW9yeS4KKyAg
ICAgICAgICAgIG1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplID0gbWVtb3J5KCktPnNpemUoKTsK
ICAgICAgICAgICAgIEFTU0VSVChtZW1vcnkoKS0+bWVtb3J5KCkgPT0gY2FjaGVkTWVtb3J5KCkp
OwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21MTEludEdlbmVyYXRvci5jcHAKaW5kZXggZDM3M2ZhZWU4MTY4Li41YzJiMDBlYTY0NjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNw
cApAQCAtMzQxLDcgKzM0MSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4gbV9ub3Jt
YWxpemVkQXJndW1lbnRzW2luZGV4XTsKIAogICAgICAgICBjb25zdCBhdXRvJiBjYWxsaW5nQ29u
dmVudGlvbiA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpOwotICAgICAgICBjb25zdCB1aW50MzJf
dCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgICAgICBj
b25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmpzckFyZ3Muc2l6ZSgp
OwogICAgICAgICBjb25zdCB1aW50MzJfdCBmcHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmZw
ckFyZ3Muc2l6ZSgpOwogICAgICAgICByZXR1cm4gdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoaW5k
ZXggLSBtX2NvZGVCbG9jay0+bV9udW1Bcmd1bWVudHMgKyBncHJDb3VudCArIGZwckNvdW50ICsg
bnVtYmVyT2ZMTEludENhbGxlZVNhdmVSZWdpc3RlcnMpOwogICAgIH0KQEAgLTU5NSw3ICs1OTUs
NyBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIoY29uc3Qg
RnVuY3Rpb25TaWduYXR1cmUmIHNpZ25hdHVyZQogICAgIGNvbnN0IGF1dG8gaW5pdGlhbFN0YWNr
U2l6ZSA9IG1fc3RhY2tTaXplOwogCiAgICAgY29uc3QgYXV0byYgY2FsbGluZ0NvbnZlbnRpb24g
PSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKTsKLSAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9
IGNhbGxpbmdDb252ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgIGNvbnN0IHVpbnQzMl90IGdw
ckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uanNyQXJncy5zaXplKCk7CiAgICAgY29uc3QgdWlu
dDMyX3QgZnByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5mcHJBcmdzLnNpemUoKTsKIAogICAg
IHVpbnQzMl90IHN0YWNrQ291bnQgPSAwOwpAQCAtNzQzLDcgKzc0Myw3IEBAIGF1dG8gTExJbnRH
ZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvckNhbGxlZShjb25zdCBGdW5jdGlvblNpZ25hdHVy
ZSYgc2lnbmF0dXJlCiAgICAgbV9yZXN1bHRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc2lnbmF0
dXJlLnJldHVybkNvdW50KCkpOwogCiAgICAgY29uc3QgYXV0byYgY2FsbGluZ0NvbnZlbnRpb24g
PSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKTsKLSAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9
IGNhbGxpbmdDb252ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgIGNvbnN0IHVpbnQzMl90IGdw
ckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uanNyQXJncy5zaXplKCk7CiAgICAgY29uc3QgdWlu
dDMyX3QgZnByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5mcHJBcmdzLnNpemUoKTsKIAogICAg
IHVpbnQzMl90IGdwckluZGV4ID0gMDsKQEAgLTc5MSw3ICs3OTEsNyBAQCBhdXRvIExMSW50R2Vu
ZXJhdG9yOjphZGRBcmd1bWVudHMoY29uc3QgVHlwZURlZmluaXRpb24mIHNpZ25hdHVyZSkgLT4g
UGFydGlhbFJlcwogICAgIG1fbm9ybWFsaXplZEFyZ3VtZW50cy5yZXNpemUobV9jb2RlQmxvY2st
Pm1fbnVtQXJndW1lbnRzKTsKIAogICAgIGNvbnN0IGF1dG8mIGNhbGxpbmdDb252ZW50aW9uID0g
d2FzbUNhbGxpbmdDb252ZW50aW9uKCk7Ci0gICAgY29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBj
YWxsaW5nQ29udmVudGlvbi5ncHJBcmdzLnNpemUoKTsKKyAgICBjb25zdCB1aW50MzJfdCBncHJD
b3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmpzckFyZ3Muc2l6ZSgpOwogICAgIGNvbnN0IHVpbnQz
Ml90IGZwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZnByQXJncy5zaXplKCk7CiAgICAgY29u
c3QgdWludDMyX3QgbWF4R1BSSW5kZXggPSBncHJDb3VudDsKICAgICBjb25zdCB1aW50MzJfdCBt
YXhGUFJJbmRleCA9IGdwckNvdW50ICsgZnByQ291bnQ7CkBAIC05NzQsNyArOTc0LDcgQEAgYXV0
byBMTEludEdlbmVyYXRvcjo6YWRkTG9vcChCbG9ja1NpZ25hdHVyZSBzaWduYXR1cmUsIFN0YWNr
JiBlbmNsb3NpbmdTdGFjaywgQ28KICAgICAgICAgb3NyRW50cnlEYXRhLmFwcGVuZChtX25vcm1h
bGl6ZWRBcmd1bWVudHNbaV0pOwogCiAgICAgY29uc3QgYXV0byYgY2FsbGluZ0NvbnZlbnRpb24g
PSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKTsKLSAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9
IGNhbGxpbmdDb252ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgIGNvbnN0IHVpbnQzMl90IGdw
ckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uanNyQXJncy5zaXplKCk7CiAgICAgY29uc3QgdWlu
dDMyX3QgZnByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5mcHJBcmdzLnNpemUoKTsKICAgICBm
b3IgKHVpbnQzMl90IGkgPSBncHJDb3VudCArIGZwckNvdW50ICsgbnVtYmVyT2ZMTEludENhbGxl
ZVNhdmVSZWdpc3RlcnM7IGkgPCBtX2NvZGVCbG9jay0+bV9udW1WYXJzOyBpKyspCiAgICAgICAg
IG9zckVudHJ5RGF0YS5hcHBlbmQodmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoaSkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcAppbmRleCA4YjQzNmQyZGNm
NTYuLmUzNGY0NGNhY2FkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUxMSW50UGxhbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxM
SW50UGxhbi5jcHAKQEAgLTExOSwxMiArMTE5LDE1IEBAIHZvaWQgTExJbnRQbGFuOjpkaWRDb21w
bGV0ZUNvbXBpbGF0aW9uKCkKICAgICAgICAgICAgIGVudHJ5cG9pbnRzW2ldID0gaml0LmxhYmVs
KCk7CiAjaWYgQ1BVKFg4Nl82NCkKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBj
YWxsZWVTbG90KENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIENhbGxGcmFtZVNs
b3Q6OmNhbGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgLSBzaXplb2Yo
Q1BVUmVnaXN0ZXIpKTsKLSNlbGlmIENQVShBUk02NCkgfHwgQ1BVKFJJU0NWNjQpCisjZWxpZiBD
UFUoQVJNNjQpIHx8IENQVShSSVNDVjY0KSB8fCBDUFUoQVJNKQogICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzIGNhbGxlZVNsb3QoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdp
c3RlciwgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVn
aXN0ZXIpKSAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSk7CiAjZWxzZQogI2Vycm9yIFVuc3Vw
cG9ydGVkIGFyY2hpdGVjdHVyZS4KICNlbmRpZgotICAgICAgICAgICAgaml0LnN0b3JlUHRyKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihDYWxsZWVCaXRzOjpib3hXYXNtKG1fY2FsbGVlc1Zl
Y3RvcltpXS5wdHIoKSkpLCBjYWxsZWVTbG90KTsKKyAgICAgICAgICAgIGppdC5zdG9yZVB0cihD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoQ2FsbGVlQml0czo6Ym94V2FzbShtX2NhbGxlZXNW
ZWN0b3JbaV0ucHRyKCkpKSwgY2FsbGVlU2xvdC53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsK
KyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6V2FzbVRhZyksIGNhbGxlZVNsb3Qud2l0aE9mZnNl
dChUYWdPZmZzZXQpKTsKKyNlbmRpZgogICAgICAgICAgICAganVtcHNbaV0gPSBqaXQuanVtcCgp
OwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21NZW1vcnkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5jcHAK
aW5kZXggNDQwNzU5NTJmMDA3Li5lM2U5YzBhMDY0ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21NZW1vcnkuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCiAjaW5jbHVkZSA8Y3N0cmluZz4KKyNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVk
ZSA8bXV0ZXg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CkBAIC05OCwxMSAr
OTksOSBAQCBjbGFzcyBNZW1vcnlNYW5hZ2VyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNZW1vcnlNYW5hZ2VyKTsKIHB1YmxpYzoKLSAg
ICBNZW1vcnlNYW5hZ2VyKCkKLSAgICAgICAgOiBtX21heEZhc3RNZW1vcnlDb3VudChPcHRpb25z
OjptYXhOdW1XZWJBc3NlbWJseUZhc3RNZW1vcmllcygpKQotICAgIHsKLSAgICB9Ci0gICAgCisg
ICAgTWVtb3J5TWFuYWdlcigpID0gZGVmYXVsdDsKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9T
SUdOQUxJTkdfTUVNT1JZKQogICAgIE1lbW9yeVJlc3VsdCB0cnlBbGxvY2F0ZUZhc3RNZW1vcnko
KQogICAgIHsKICAgICAgICAgTWVtb3J5UmVzdWx0IHJlc3VsdCA9IFsmXSB7CkBAIC0xMjUsNyAr
MTI0LDcgQEAgcHVibGljOgogICAgICAgICAKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9
Ci0gICAgCisKICAgICB2b2lkIGZyZWVGYXN0TWVtb3J5KHZvaWQqIGJhc2VQdHIpCiAgICAgewog
ICAgICAgICB7CkBAIC0xMzYsNiArMTM1LDcgQEAgcHVibGljOgogICAgICAgICAKICAgICAgICAg
ZGF0YUxvZ0xuSWYoT3B0aW9uczo6bG9nV2ViQXNzZW1ibHlNZW1vcnkoKSwgIkZyZWVkIHZpcnR1
YWw7IHN0YXRlOiAiLCAqdGhpcyk7CiAgICAgfQorI2VuZGlmCiAKICAgICBNZW1vcnlSZXN1bHQg
dHJ5QWxsb2NhdGVHcm93YWJsZUJvdW5kc0NoZWNraW5nTWVtb3J5KHNpemVfdCBtYXBwZWRDYXBh
Y2l0eSkKICAgICB7CkBAIC0xNzAsMTEgKzE3MCwxMyBAQCBwdWJsaWM6CiAgICAgewogICAgICAg
ICAvLyBOT1RFOiBUaGlzIGNhbiBiZSBjYWxsZWQgZnJvbSBhIHNpZ25hbCBoYW5kbGVyLCBidXQg
b25seSBhZnRlciB3ZSBwcm92ZWQgdGhhdCB3ZSdyZSBpbiBKSVQgY29kZSBvciBXYXNtTExJbnQg
Y29kZS4KICAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OworI2lmIEVOQUJMRShXRUJB
U1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgICAgICBmb3IgKHZvaWQqIG1lbW9yeSA6IG1f
ZmFzdE1lbW9yaWVzKSB7CiAgICAgICAgICAgICBjaGFyKiBzdGFydCA9IHN0YXRpY19jYXN0PGNo
YXIqPihtZW1vcnkpOwogICAgICAgICAgICAgaWYgKHN0YXJ0IDw9IGFkZHJlc3MgJiYgYWRkcmVz
cyA8PSBzdGFydCArIE1lbW9yeTo6ZmFzdE1hcHBlZEJ5dGVzKCkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICB1aW50cHRyX3QgYWRkcmVz
c1ZhbHVlID0gYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oYWRkcmVzcyk7CiAgICAgICAgIGF1dG8g
aXRlcmF0b3IgPSBzdGQ6OnVwcGVyX2JvdW5kKG1fZ3Jvd2FibGVCb3VuZHNDaGVja2luZ01lbW9y
aWVzLmJlZ2luKCksIG1fZ3Jvd2FibGVCb3VuZHNDaGVja2luZ01lbW9yaWVzLmVuZCgpLCBzdGQ6
Om1ha2VfcGFpcihhZGRyZXNzVmFsdWUsIDApLAogICAgICAgICAgICAgW10oc3RkOjpwYWlyPHVp
bnRwdHJfdCwgc2l6ZV90PiBhLCBzdGQ6OnBhaXI8dWludHB0cl90LCBzaXplX3Q+IGIpIHsKQEAg
LTE5MSw3ICsxOTMsMTIgQEAgcHVibGljOgogICAgIC8vIFdlIGFsbG93IHBlb3BsZSB0byAiY29t
bWl0IiBtb3JlIHdhc20gbWVtb3J5IHRoYW4gdGhlcmUgaXMgb24gdGhlIHN5c3RlbSBzaW5jZSBt
b3N0IG9mIHRoZSB0aW1lCiAgICAgLy8gcGVvcGxlIGRvbid0IGFjdHVhbGx5IHdyaXRlIHRvIG1v
c3Qgb2YgdGhhdCBtZW1vcnkuIFRoZXJlIGlzIHNvbWUgY2hhbmNlIHRoYXQgdGhpcyBnZXRzIHVz
CiAgICAgLy8gSmV0U2FtbWVkIGJ1dCB0aGF0J3MgcG9zc2libGUgYW55d2F5LgotICAgIGlubGlu
ZSBzaXplX3QgbWVtb3J5TGltaXQoKSBjb25zdCB7IHJldHVybiByYW1TaXplKCkgKiAzOyB9Cisg
ICAgaW5saW5lIHNpemVfdCBtZW1vcnlMaW1pdCgpIGNvbnN0CisgICAgeworICAgICAgICBpZiAo
cHJvZHVjdE92ZXJmbG93czxzaXplX3Q+KHJhbVNpemUoKSwgIDMpKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCk7CisgICAgICAgIHJldHVybiBy
YW1TaXplKCkgKiAzOworICAgIH0KIAogICAgIC8vIEZJWE1FOiBJZGVhbGx5LCBibWFsbG9jIHdv
dWxkIGhhdmUgdGhpcyBraW5kIG9mIG1lY2hhbmlzbS4gVGhlbiwgd2Ugd291bGQganVzdCBmb3J3
YXJkIHRvIHRoYXQKICAgICAvLyBtZWNoYW5pc20gaGVyZS4KQEAgLTIyNywxMyArMjM0LDE5IEBA
IHB1YmxpYzoKICAgICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAg
ICB7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgICAgIG91
dC5wcmludCgiZmFzdCBtZW1vcmllcyA9ICAiLCBtX2Zhc3RNZW1vcmllcy5zaXplKCksICIvIiwg
bV9tYXhGYXN0TWVtb3J5Q291bnQsICIsIGJ5dGVzID0gIiwgbV9waHlzaWNhbEJ5dGVzLCAiLyIs
IG1lbW9yeUxpbWl0KCkpOworI2Vsc2UKKyAgICAgICAgb3V0LnByaW50KCJmYXN0IG1lbW9yaWVz
ID0gTi5BLiwgYnl0ZXMgPSAiLCBtX3BoeXNpY2FsQnl0ZXMsICIvIiwgbWVtb3J5TGltaXQoKSk7
CisjZW5kaWYKICAgICB9CiAgICAgCiBwcml2YXRlOgogICAgIExvY2sgbV9sb2NrOwotICAgIHVu
c2lnbmVkIG1fbWF4RmFzdE1lbW9yeUNvdW50IHsgMCB9OworI2lmIEVOQUJMRShXRUJBU1NFTUJM
WV9TSUdOQUxJTkdfTUVNT1JZKQorICAgIHVuc2lnbmVkIG1fbWF4RmFzdE1lbW9yeUNvdW50IHsg
T3B0aW9uczo6bWF4TnVtV2ViQXNzZW1ibHlGYXN0TWVtb3JpZXMoKSB9OwogICAgIFZlY3Rvcjx2
b2lkKj4gbV9mYXN0TWVtb3JpZXM7CisjZW5kaWYKICAgICBTdGRTZXQ8c3RkOjpwYWlyPHVpbnRw
dHJfdCwgc2l6ZV90Pj4gbV9ncm93YWJsZUJvdW5kc0NoZWNraW5nTWVtb3JpZXM7CiAgICAgc2l6
ZV90IG1fcGh5c2ljYWxCeXRlcyB7IDAgfTsKIH07CkBAIC0zMDAsNiArMzEzLDcgQEAgTWVtb3J5
SGFuZGxlOjp+TWVtb3J5SGFuZGxlKCkKICAgICAgICAgdm9pZCogbWVtb3J5ID0gdGhpcy0+bWVt
b3J5KCk7CiAgICAgICAgIG1lbW9yeU1hbmFnZXIoKS5mcmVlUGh5c2ljYWxCeXRlcyhtX3NpemUp
OwogICAgICAgICBzd2l0Y2ggKG1fbW9kZSkgeworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdO
QUxJTkdfTUVNT1JZKQogICAgICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzoKICAgICAg
ICAgICAgIGlmIChtcHJvdGVjdChtZW1vcnksIE1lbW9yeTo6ZmFzdE1hcHBlZEJ5dGVzKCksIFBS
T1RfUkVBRCB8IFBST1RfV1JJVEUpKSB7CiAgICAgICAgICAgICAgICAgZGF0YUxvZygibXByb3Rl
Y3QgZmFpbGVkOiAiLCBzYWZlU3RyZXJyb3IoZXJybm8pLmRhdGEoKSwgIlxuIik7CkBAIC0zMDcs
NiArMzIxLDcgQEAgTWVtb3J5SGFuZGxlOjp+TWVtb3J5SGFuZGxlKCkKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIG1lbW9yeU1hbmFnZXIoKS5mcmVlRmFzdE1lbW9yeShtZW1vcnkpOwogICAg
ICAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICAgICAgY2FzZSBNZW1vcnlNb2RlOjpCb3VuZHND
aGVja2luZzogewogICAgICAgICAgICAgc3dpdGNoIChtX3NoYXJpbmdNb2RlKSB7CiAgICAgICAg
ICAgICBjYXNlIE1lbW9yeVNoYXJpbmdNb2RlOjpEZWZhdWx0OgpAQCAtMzk1LDYgKzQxMCw3IEBA
IFJlZlB0cjxNZW1vcnk+IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBpbml0aWFsLCBQYWdl
Q291bnQgbWF4aW11bSwgTWVtb3J5U2hhCiAgICAgaWYgKCFkb25lKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICAgICAgCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1P
UlkpCiAgICAgY2hhciogZmFzdE1lbW9yeSA9IG51bGxwdHI7CiAgICAgaWYgKE9wdGlvbnM6OnVz
ZVdlYkFzc2VtYmx5RmFzdE1lbW9yeSgpKSB7CiAgICAgICAgIHRyeUFsbG9jYXRlKApAQCAtNDEz
LDcgKzQyOSw4IEBAIFJlZlB0cjxNZW1vcnk+IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBp
bml0aWFsLCBQYWdlQ291bnQgbWF4aW11bSwgTWVtb3J5U2hhCiAKICAgICAgICAgcmV0dXJuIE1l
bW9yeTo6Y3JlYXRlKGFkb3B0UmVmKCpuZXcgTWVtb3J5SGFuZGxlKGZhc3RNZW1vcnksIGluaXRp
YWxCeXRlcywgTWVtb3J5OjpmYXN0TWFwcGVkQnl0ZXMoKSwgaW5pdGlhbCwgbWF4aW11bSwgc2hh
cmluZ01vZGUsIE1lbW9yeU1vZGU6OlNpZ25hbGluZykpLCBXVEZNb3ZlKG5vdGlmeU1lbW9yeVBy
ZXNzdXJlKSwgV1RGTW92ZShzeW5jVHJ5VG9SZWNsYWltTWVtb3J5KSwgV1RGTW92ZShncm93U3Vj
Y2Vzc0NhbGxiYWNrKSk7CiAgICAgfQotICAgIAorI2VuZGlmCisKICAgICBpZiAoVU5MSUtFTFko
T3B0aW9uczo6Y3Jhc2hJZldlYkFzc2VtYmx5Q2FudEZhc3RNZW1vcnkoKSkpCiAgICAgICAgIHdl
YkFzc2VtYmx5Q291bGRudEdldEZhc3RNZW1vcnkoKTsKIApAQCAtNDU2LDYgKzQ3Myw3IEBAIFJl
ZlB0cjxNZW1vcnk+IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBpbml0aWFsLCBQYWdlQ291
bnQgbWF4aW11bSwgTWVtb3J5U2hhCiAKIE1lbW9yeTo6fk1lbW9yeSgpID0gZGVmYXVsdDsKIAor
I2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogc2l6ZV90IE1lbW9yeTo6
ZmFzdE1hcHBlZFJlZHpvbmVCeXRlcygpCiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHNpemVf
dD4oUGFnZUNvdW50OjpwYWdlU2l6ZSkgKiBPcHRpb25zOjp3ZWJBc3NlbWJseUZhc3RNZW1vcnlS
ZWR6b25lUGFnZXMoKTsKQEAgLTQ2Niw2ICs0ODQsNyBAQCBzaXplX3QgTWVtb3J5OjpmYXN0TWFw
cGVkQnl0ZXMoKQogICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKHVpbnQ2NF90KSA9PSBzaXplb2Yo
c2l6ZV90KSwgIldlIHJlbHkgb24gYWxsb3dpbmcgdGhlIG1heGltdW0gc2l6ZSBvZiBNZW1vcnkg
d2UgbWFwIHRvIGJlIDJeMzIgKyByZWR6b25lIHdoaWNoIGlzIGxhcmdlciB0aGFuIGZpdHMgaW4g
YSAzMi1iaXQgaW50ZWdlciB0aGF0IHdlJ2QgcGFzcyB0byBtcHJvdGVjdCBpZiB0aGlzIGRpZG4n
dCBob2xkLiIpOwogICAgIHJldHVybiAoc3RhdGljX2Nhc3Q8c2l6ZV90PigxKSA8PCAzMikgKyBm
YXN0TWFwcGVkUmVkem9uZUJ5dGVzKCk7CiB9CisjZW5kaWYKIAogYm9vbCBNZW1vcnk6OmFkZHJl
c3NJc0luR3Jvd2FibGVPckZhc3RNZW1vcnkodm9pZCogYWRkcmVzcykKIHsKQEAgLTUyNCw4ICs1
NDMsMTQgQEAgRXhwZWN0ZWQ8UGFnZUNvdW50LCBNZW1vcnk6Okdyb3dGYWlsUmVhc29uPiBNZW1v
cnk6Omdyb3dTaGFyZWQoUGFnZUNvdW50IGRlbHRhKQogICAgICAgICBtX2hhbmRsZS0+Z3Jvd1Rv
U2l6ZShkZXNpcmVkU2l6ZSk7CiAgICAgICAgIHJldHVybiBvbGRQYWdlQ291bnQ7CiAgICAgfSgp
KTsKLSAgICBpZiAocmVzdWx0KQorICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgbV9ncm93U3Vj
Y2Vzc0NhbGxiYWNrKEdyb3dTdWNjZXNzVGFnLCBvbGRQYWdlQ291bnQsIG5ld1BhZ2VDb3VudCk7
CisgICAgICAgIC8vIFVwZGF0ZSBjYWNoZSBmb3IgaW5zdGFuY2UKKyAgICAgICAgZm9yIChhdXRv
JiBpbnN0YW5jZSA6IG1faW5zdGFuY2VzKSB7CisgICAgICAgICAgICBpZiAoaW5zdGFuY2UuZ2V0
KCkgIT0gbnVsbHB0cikKKyAgICAgICAgICAgICAgICBpbnN0YW5jZS5nZXQoKS0+dXBkYXRlQ2Fj
aGVkTWVtb3J5KCk7CisgICAgICAgIH0KKyAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApA
QCAtNTg4LDYgKzYxMyw3IEBAIEV4cGVjdGVkPFBhZ2VDb3VudCwgTWVtb3J5OjpHcm93RmFpbFJl
YXNvbj4gTWVtb3J5Ojpncm93KFBhZ2VDb3VudCBkZWx0YSkKICAgICAgICAgQVNTRVJUKG1lbW9y
eSgpID09IG5ld01lbW9yeSk7CiAgICAgICAgIHJldHVybiBzdWNjZXNzKCk7CiAgICAgfQorI2lm
IEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIGNhc2UgTWVtb3J5TW9k
ZTo6U2lnbmFsaW5nOiB7CiAgICAgICAgIHNpemVfdCBleHRyYUJ5dGVzID0gZGVzaXJlZFNpemUg
LSBzaXplKCk7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGV4dHJhQnl0ZXMpOwpAQCAtNjEzLDYg
KzYzOSw3IEBAIEV4cGVjdGVkPFBhZ2VDb3VudCwgTWVtb3J5OjpHcm93RmFpbFJlYXNvbj4gTWVt
b3J5Ojpncm93KFBhZ2VDb3VudCBkZWx0YSkKICAgICAgICAgbV9oYW5kbGUtPmdyb3dUb1NpemUo
ZGVzaXJlZFNpemUpOwogICAgICAgICByZXR1cm4gc3VjY2VzcygpOwogICAgIH0KKyNlbmRpZgog
ICAgIH0KIAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC02NDYsNyArNjcz
LDggQEAgYm9vbCBNZW1vcnk6OmNvcHkodWludDMyX3QgZHN0QWRkcmVzcywgdWludDMyX3Qgc3Jj
QWRkcmVzcywgdWludDMyX3QgY291bnQpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgdWlu
dDhfdCogYmFzZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KG1lbW9yeSgpKTsKLSAgICBt
ZW1jcHkoYmFzZSArIGRzdEFkZHJlc3MsIGJhc2UgKyBzcmNBZGRyZXNzLCBjb3VudCk7CisgICAg
Ly8gU291cmNlIGFuZCBkZXN0aW5hdGlvbiBhcmVhcyBtaWdodCBvdmVybGFwLCBzbyB1c2luZyBt
ZW1tb3ZlLgorICAgIG1lbW1vdmUoYmFzZSArIGRzdEFkZHJlc3MsIGJhc2UgKyBzcmNBZGRyZXNz
LCBjb3VudCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21NZW1vcnkuaAppbmRleCBmNWM1OGZjZjk2ZjIuLjkyNzk2M2I5MjRjNyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaApAQCAtNjEsNyArNjEsNiBAQCBwdWJsaWM6
CiAgICAgdm9pZCogbWVtb3J5KCkgY29uc3Q7CiAgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJl
dHVybiBtX3NpemU7IH0KICAgICBzaXplX3QgbWFwcGVkQ2FwYWNpdHkoKSBjb25zdCB7IHJldHVy
biBtX21hcHBlZENhcGFjaXR5OyB9Ci0gICAgc2l6ZV90IGJvdW5kc0NoZWNraW5nU2l6ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fbWFwcGVkQ2FwYWNpdHk7IH0KICAgICBQYWdlQ291bnQgaW5pdGlhbCgp
IGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbDsgfQogICAgIFBhZ2VDb3VudCBtYXhpbXVtKCkgY29u
c3QgeyByZXR1cm4gbV9tYXhpbXVtOyB9CiAgICAgTWVtb3J5U2hhcmluZ01vZGUgc2hhcmluZ01v
ZGUoKSBjb25zdCB7IHJldHVybiBtX3NoYXJpbmdNb2RlOyB9CkBAIC0xMDYsMTQgKzEwNSwxNiBA
QCBwdWJsaWM6CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB+TWVtb3J5KCk7CiAKKyNpZiBFTkFC
TEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBzdGF0aWMgc2l6ZV90IGZhc3RN
YXBwZWRSZWR6b25lQnl0ZXMoKTsKICAgICBzdGF0aWMgc2l6ZV90IGZhc3RNYXBwZWRCeXRlcygp
OyAvLyBJbmNsdWRlcyByZWR6b25lLgorI2VuZGlmCiAgICAgc3RhdGljIGJvb2wgYWRkcmVzc0lz
SW5Hcm93YWJsZU9yRmFzdE1lbW9yeSh2b2lkKik7CiAKICAgICB2b2lkKiBtZW1vcnkoKSBjb25z
dCB7IHJldHVybiBtX2hhbmRsZS0+bWVtb3J5KCk7IH0KICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIG1faGFuZGxlLT5zaXplKCk7IH0KICAgICBQYWdlQ291bnQgc2l6ZUluUGFnZXMo
KSBjb25zdCB7IHJldHVybiBQYWdlQ291bnQ6OmZyb21CeXRlcyhzaXplKCkpOyB9Ci0gICAgc2l6
ZV90IGJvdW5kc0NoZWNraW5nU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxlLT5ib3VuZHND
aGVja2luZ1NpemUoKTsgfQorICAgIHNpemVfdCBtYXBwZWRDYXBhY2l0eSgpIGNvbnN0IHsgcmV0
dXJuIG1faGFuZGxlLT5tYXBwZWRDYXBhY2l0eSgpOyB9CiAgICAgUGFnZUNvdW50IGluaXRpYWwo
KSBjb25zdCB7IHJldHVybiBtX2hhbmRsZS0+aW5pdGlhbCgpOyB9CiAgICAgUGFnZUNvdW50IG1h
eGltdW0oKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZS0+bWF4aW11bSgpOyB9CiAgICAgTWVtb3J5
SGFuZGxlJiBoYW5kbGUoKSB7IHJldHVybiBtX2hhbmRsZS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5jcHAKaW5kZXgg
MjY1MmRlNzJlZDU2Li42MGZhZDYzZWYwZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmNwcApAQCAtNDEsOCArNDEsMTUgQEAg
Y29uc3QgUGlubmVkUmVnaXN0ZXJJbmZvJiBQaW5uZWRSZWdpc3RlckluZm86OmdldCgpCiAgICAg
ICAgIHVuc2lnbmVkIG51bWJlck9mUGlubmVkUmVnaXN0ZXJzID0gMjsKICAgICAgICAgaWYgKCFD
b250ZXh0Ojp1c2VGYXN0VExTKCkpCiAgICAgICAgICAgICArK251bWJlck9mUGlubmVkUmVnaXN0
ZXJzOworI2lmIENQVShYODZfNjQpIHx8IENQVShBUk02NCkKICAgICAgICAgR1BSUmVnIGJhc2VN
ZW1vcnlQb2ludGVyID0gR1BSSW5mbzo6cmVnQ1MzOwogICAgICAgICBHUFJSZWcgYm91bmRzQ2hl
Y2tpbmdTaXplUmVnaXN0ZXIgPSBHUFJJbmZvOjpyZWdDUzQ7CisjZWxpZiBDUFUoQVJNKQorICAg
ICAgICAvLyBOb3QgZW5vdWdoIHJlZ2lzdGVycy4gcmVnQ1MwIGlzIHRoZSB3YXNtIGluc3RhbmNl
LCByZWdDUzEgaXMgTExJbnQgUEIKKyAgICAgICAgbnVtYmVyT2ZQaW5uZWRSZWdpc3RlcnMgLT0g
MjsKKyAgICAgICAgR1BSUmVnIGJhc2VNZW1vcnlQb2ludGVyID0gSW52YWxpZEdQUlJlZzsKKyAg
ICAgICAgR1BSUmVnIGJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyID0gSW52YWxpZEdQUlJlZzsK
KyNlbmRpZgogICAgICAgICBHUFJSZWcgd2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXIgPSBJbnZh
bGlkR1BSUmVnOwogICAgICAgICBpZiAoIUNvbnRleHQ6OnVzZUZhc3RUTFMoKSkKICAgICAgICAg
ICAgIHdhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyID0gR1BSSW5mbzo6cmVnQ1MwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uaAppbmRl
eCA4NTRmYmE1NGUzMzcuLjI5ZmNiZGI2ZDQ2MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmgKQEAgLTUyLDEwICs1MiwxMSBAQCBw
dWJsaWM6CiAgICAgUmVnaXN0ZXJTZXQgdG9TYXZlKE1lbW9yeU1vZGUgbW9kZSkgY29uc3QKICAg
ICB7CiAgICAgICAgIFJlZ2lzdGVyU2V0IHJlc3VsdDsKLSAgICAgICAgcmVzdWx0LnNldChiYXNl
TWVtb3J5UG9pbnRlcik7CisgICAgICAgIGlmIChiYXNlTWVtb3J5UG9pbnRlciAhPSBJbnZhbGlk
R1BSUmVnKQorICAgICAgICAgICAgcmVzdWx0LnNldChiYXNlTWVtb3J5UG9pbnRlcik7CiAgICAg
ICAgIGlmICh3YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlciAhPSBJbnZhbGlkR1BSUmVnKQogICAg
ICAgICAgICAgcmVzdWx0LnNldCh3YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlcik7Ci0gICAgICAg
IGlmIChtb2RlICE9IE1lbW9yeU1vZGU6OlNpZ25hbGluZykKKyAgICAgICAgaWYgKG1vZGUgPT0g
TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcgJiYgYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIg
IT0gSW52YWxpZEdQUlJlZykKICAgICAgICAgICAgIHJlc3VsdC5zZXQoYm91bmRzQ2hlY2tpbmdT
aXplUmVnaXN0ZXIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmNwcAppbmRleCA5YmUwNGQ3N2IwNmIu
LmYzM2IwNTI1MTk4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU1lbW9yeU1vZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1v
cnlNb2RlLmNwcApAQCAtMzcsNyArMzcsOSBAQCBjb25zdCBjaGFyKiBtYWtlU3RyaW5nKE1lbW9y
eU1vZGUgbW9kZSkKIHsKICAgICBzd2l0Y2ggKG1vZGUpIHsKICAgICBjYXNlIE1lbW9yeU1vZGU6
OkJvdW5kc0NoZWNraW5nOiByZXR1cm4gIkJvdW5kc0NoZWNraW5nIjsKKyNpZiBFTkFCTEUoV0VC
QVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGlu
ZzogcmV0dXJuICJTaWduYWxpbmciOworI2VuZGlmCiAgICAgfQogICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuICIiOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21NZW1vcnlNb2RlLmgKaW5kZXggMDJjZmNmZTQ5ZjQ3Li5kNzExYWZhZjMwMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuaApAQCAtMzQsNyAr
MzQsOSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogLy8gRklYTUU6IFdlIHNo
b3VsZCBzdXBwb3J0IG90aGVyIG1vZGVzLiBzZWU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjI2OTMKIGVudW0gY2xhc3MgTWVtb3J5TW9kZSA6IHVpbnQ4X3Qgewog
ICAgIEJvdW5kc0NoZWNraW5nLAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVN
T1JZKQogICAgIFNpZ25hbGluZworI2VuZGlmCiB9OwogCiBzdGF0aWMgY29uc3RleHByIHNpemVf
dCBOdW1iZXJPZk1lbW9yeU1vZGVzID0gMjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbU9wY29kZU9yaWdpbi5jcHAKaW5kZXggYjZjNWMyNzU1MzExLi45ZmM5MWI5ZDljNTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uY3Bw
CkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2FzbU9w
Y29kZU9yaWdpbi5oIgogCi0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorI2lmIEVOQUJMRShXRUJB
U1NFTUJMWV9CM0pJVCkKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIApAQCAt
MzcsNCArMzcsNCBAQCB2b2lkIE9wY29kZU9yaWdpbjo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBj
b25zdAogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQogCi0jZW5kaWYgLy8gRU5BQkxFKFdF
QkFTU0VNQkxZKQorI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWV9CM0pJVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uaAppbmRleCBhMGQ4ZGYzYWVm
MTkuLjVjNGI2NzZkNWM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU9wY29kZU9yaWdpbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21P
cGNvZGVPcmlnaW4uaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVO
QUJMRShXRUJBU1NFTUJMWSkKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCiAKICNpbmNs
dWRlICJCM09yaWdpbi5oIgogI2luY2x1ZGUgIldhc21Gb3JtYXQuaCIKQEAgLTYwLDQgKzYwLDQg
QEAgcHJpdmF0ZToKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KIAotI2VuZGlmIC8vIEVO
QUJMRShXRUJBU1NFTUJMWSkKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAKaW5kZXggZjJm
NjExYTZiZTZlLi42NDNjNDdjZGYzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtT3BlcmF0aW9ucy5jcHAKQEAgLTQ2OCw0MyArNDY4LDQzIEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25XYXNtVW53aW5kLCB2b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogICAgIEFTU0VSVCghIXZtLmNhbGxGcmFtZUZvckNhdGNoKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCwgaW50NjRfdCwgKENhbGxGcmFt
ZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbnZlcnRUb0k2NCwgaW50NjRfdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBFbmNvZGVk
SlNWYWx1ZSB2KSkKIHsKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2Vt
Ymx5SW5zdGFuY2UqIGluc3RlYWQuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMzIwNgogICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+ZGVwcmVjYXRlZFZN
KCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAg
ICByZXR1cm4gdi50b0JpZ0ludDY0KGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkp
OworICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUodikudG9CaWdJbnQ2NChjYWxsRnJhbWUtPmxl
eGljYWxHbG9iYWxPYmplY3Qodm0pKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNvbnZlcnRUb0Y2NCwgZG91YmxlLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFs
dWUgdikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjY0LCBk
b3VibGUsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUgdikpCiB7CiAgICAg
Ly8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0ZWFk
LgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMyMDYK
ICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAgIE5hdGl2ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgcmV0dXJuIHYudG9OdW1iZXIo
Y2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmRlY29kZSh2KS50b051bWJlcihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKTsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0kzMiwgaW50
MzJfdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0kzMiwgaW50MzJfdCwgKENhbGxGcmFtZSogY2Fs
bEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSB2KSkKIHsKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgcGFz
c2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RlYWQuCiAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIwNgogICAgIFZNJiB2bSA9IGNhbGxGcmFt
ZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
Y2FsbEZyYW1lKTsKLSAgICByZXR1cm4gdi50b0ludDMyKGNhbGxGcmFtZS0+bGV4aWNhbEdsb2Jh
bE9iamVjdCh2bSkpOworICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUodikudG9JbnQzMihjYWxs
RnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0YzMiwgZmxvYXQsIChDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgSlNWYWx1ZSB2KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0
VG9GMzIsIGZsb2F0LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVuY29kZWRKU1ZhbHVlIHYpKQog
ewogICAgIC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5nIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSog
aW5zdGVhZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAzMjA2CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsKICAgICBOYXRp
dmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxmbG9hdD4odi50b051bWJlcihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qo
dm0pKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihKU1ZhbHVlOjpkZWNvZGUodiku
dG9OdW1iZXIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSkpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50LCBFbmNvZGVkSlNW
YWx1ZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2UsIGludDY0X3Qg
dmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0lu
dCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSW5zdGFuY2UqIGluc3Rh
bmNlLCBFbmNvZGVkV2FzbVZhbHVlIHZhbHVlKSkKIHsKICAgICBKU1dlYkFzc2VtYmx5SW5zdGFu
Y2UqIGpzSW5zdGFuY2UgPSBpbnN0YW5jZS0+b3duZXI8SlNXZWJBc3NlbWJseUluc3RhbmNlPigp
OwogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0luc3RhbmNlLT5nbG9iYWxP
YmplY3QoKTsKQEAgLTUxNCw3ICs1MTQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29udmVydFRvQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKENhbGxGcmFtZSogYwogfQog
CiAvLyBodHRwczovL3dlYmFzc2VtYmx5LmdpdGh1Yi5pby9tdWx0aS12YWx1ZS9qcy1hcGkvaW5k
ZXguaHRtbCNydW4tYS1ob3N0LWZ1bmN0aW9uCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSW5zdGFu
Y2UqIGluc3RhbmNlLCBjb25zdCBUeXBlRGVmaW5pdGlvbiogdHlwZSwgSlNWYWx1ZSByZXN1bHQs
IHVpbnQ2NF90KiByZWdpc3RlclJlc3VsdHMsIHVpbnQ2NF90KiBjYWxsZWVGcmFtZVBvaW50ZXIp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lk
LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwgY29uc3QgVHlwZURl
ZmluaXRpb24qIHR5cGUsIEVuY29kZWRKU1ZhbHVlIGVuY1Jlc3VsdCwgdWludDY0X3QqIHJlZ2lz
dGVyUmVzdWx0cywgdWludDY0X3QqIGNhbGxlZUZyYW1lUG9pbnRlcikpCiB7CiAgICAgLy8gRklY
TUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0ZWFkLgogICAg
IC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMyMDYKQEAgLTUz
MSw2ICs1MzEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJl
c3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSQogCiAgICAgdW5zaWduZWQgaXRl
cmF0aW9uQ291bnQgPSAwOwogICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGJ1ZmZlcjsKKyAgICBK
U1ZhbHVlIHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShlbmNSZXN1bHQpOwogICAgIGZvckVhY2hJ
bkl0ZXJhYmxlKGdsb2JhbE9iamVjdCwgcmVzdWx0LCBbJl0gKFZNJiwgSlNHbG9iYWxPYmplY3Qq
LCBKU1ZhbHVlIHZhbHVlKSAtPiB2b2lkIHsKICAgICAgICAgaWYgKGJ1ZmZlci5zaXplKCkgPCBz
aWduYXR1cmUtPnJldHVybkNvdW50KCkpCiAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHZhbHVl
KTsKQEAgLTU4MCw4ICs1ODEsMTAgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEkKICAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIAogICAgICAgICBhdXRvIHJlcCA9
IHdhc21DYWxsSW5mby5yZXN1bHRzW2luZGV4XTsKLSAgICAgICAgaWYgKHJlcC5pc1JlZygpKQot
ICAgICAgICAgICAgcmVnaXN0ZXJSZXN1bHRzW3JlZ2lzdGVyUmVzdWx0T2Zmc2V0cy5maW5kKHJl
cC5yZWcoKSktPm9mZnNldCgpIC8gc2l6ZW9mKHVpbnQ2NF90KV0gPSB1bmJveGVkVmFsdWU7Cisg
ICAgICAgIGlmIChyZXAuaXNHUFIoKSkKKyAgICAgICAgICAgIHJlZ2lzdGVyUmVzdWx0c1tyZWdp
c3RlclJlc3VsdE9mZnNldHMuZmluZChyZXAuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkg
LyBzaXplb2YodWludDY0X3QpXSA9IHVuYm94ZWRWYWx1ZTsKKyAgICAgICAgZWxzZSBpZiAocmVw
LmlzRlBSKCkpCisgICAgICAgICAgICByZWdpc3RlclJlc3VsdHNbcmVnaXN0ZXJSZXN1bHRPZmZz
ZXRzLmZpbmQocmVwLmZwcigpKS0+b2Zmc2V0KCkgLyBzaXplb2YodWludDY0X3QpXSA9IHVuYm94
ZWRWYWx1ZTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgY2FsbGVlRnJhbWVQb2ludGVyW3Jl
cC5vZmZzZXRGcm9tRlAoKSAvIHNpemVvZih1aW50NjRfdCldID0gdW5ib3hlZFZhbHVlOwogICAg
IH0KQEAgLTYwNywxMiArNjEwLDE2IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25BbGxvY2F0ZVJlc3VsdHNBcnJheSwgSlNBcnJheSosIChDYWxsRnJhbWUqIGNhCiAgICAgYXV0
byB3YXNtQ2FsbEluZm8gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5jYWxsSW5mb3JtYXRpb25G
b3IoKnR5cGUpOwogICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IHJlZ2lzdGVyUmVzdWx0cyA9IHdh
c21DYWxsSW5mby5jb21wdXRlUmVzdWx0c09mZnNldExpc3QoKTsKIAotICAgIHN0YXRpY19hc3Nl
cnQoc2l6ZW9mKEpTVmFsdWUpID09IHNpemVvZihDUFVSZWdpc3RlciksICJUaGUgY29kZSBiZWxv
dyByZWxpZXMgb24gdGhpcy4iKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2lnbmF0
dXJlLT5yZXR1cm5Db3VudCgpOyArK2kpIHsKICAgICAgICAgVmFsdWVMb2NhdGlvbiBsb2MgPSB3
YXNtQ2FsbEluZm8ucmVzdWx0c1tpXTsKICAgICAgICAgSlNWYWx1ZSB2YWx1ZTsKLSAgICAgICAg
aWYgKGxvYy5pc1JlZygpKQotICAgICAgICAgICAgdmFsdWUgPSBzdGFja1BvaW50ZXJGcm9tQ2Fs
bGVlWyhyZWdpc3RlclJlc3VsdHMuZmluZChsb2MucmVnKCkpLT5vZmZzZXQoKSArIHdhc21DYWxs
SW5mby5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpIC8gc2l6ZW9mKEpTVmFsdWUp
XTsKKyAgICAgICAgaWYgKGxvYy5pc0dQUigpKSB7CisjaWYgVVNFKEpTVkFMRTMyXzY0KQorICAg
ICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyUmVzdWx0cy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BS
KCkpLT5vZmZzZXQoKSArIDQgPT0gcmVnaXN0ZXJSZXN1bHRzLmZpbmQobG9jLmpzcigpLnRhZ0dQ
UigpKS0+b2Zmc2V0KCkpOworI2VuZGlmCisgICAgICAgICAgICB2YWx1ZSA9IHN0YWNrUG9pbnRl
ckZyb21DYWxsZWVbKHJlZ2lzdGVyUmVzdWx0cy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkp
LT5vZmZzZXQoKSArIHdhc21DYWxsSW5mby5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0
ZXMpIC8gc2l6ZW9mKEpTVmFsdWUpXTsKKyAgICAgICAgfSBlbHNlIGlmIChsb2MuaXNGUFIoKSkK
KyAgICAgICAgICAgIHZhbHVlID0gc3RhY2tQb2ludGVyRnJvbUNhbGxlZVsocmVnaXN0ZXJSZXN1
bHRzLmZpbmQobG9jLmZwcigpKS0+b2Zmc2V0KCkgKyB3YXNtQ2FsbEluZm8uaGVhZGVyQW5kQXJn
dW1lbnRTdGFja1NpemVJbkJ5dGVzKSAvIHNpemVvZihKU1ZhbHVlKV07CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIHZhbHVlID0gc3RhY2tQb2ludGVyRnJvbUNhbGxlZVtsb2Mub2Zmc2V0RnJv
bVNQKCkgLyBzaXplb2YoSlNWYWx1ZSldOwogICAgICAgICByZXN1bHQtPmluaXRpYWxpemVJbmRl
eChpbml0aWFsaXphdGlvblNjb3BlLCBpLCB2YWx1ZSk7CkBAIC05NTMsNyArOTYwLDggQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UaHJvdywgdm9pZCosIChJbnN0YW5j
ZSogaW5zdGFuY2UsIENhbGxGcmEKICAgICAvLyB0byB0aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElm
IHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNrLgogICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAKICAgICB2bS5j
YWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgpOwotICAgIGJpdHdpc2VfY2Fz
dDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90Ojpj
YWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOwor
ICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJlZ2lzdGVyKj4oY2FsbEZy
YW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAgICAqY2Fs
bGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CiAg
ICAgcmV0dXJuIHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRocm93OwogfQogCkBAIC05NzksNyArOTg3
LDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZXRocm93LCB2b2lk
KiwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ2FsbEYKICAgICAvLyB0byB0aGUgZXhjZXB0aW9uIGhh
bmRsZXIuIElmIHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNr
LgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAK
ICAgICB2bS5jYWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgpOwotICAgIGJp
dHdpc2VfY2FzdDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJh
bWVTbG90OjpjYWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oanNJbnN0YW5jZS0+bW9k
dWxlKCkpOworICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJlZ2lzdGVy
Kj4oY2FsbEZyYW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsK
KyAgICAqY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihqc0luc3RhbmNlLT5tb2R1
bGUoKSk7CiAgICAgcmV0dXJuIHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRocm93OwogfQogCkBAIC0x
MDE0LDEyICsxMDIzLDE0IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNt
VG9KU0V4Y2VwdGlvbiwgdm9pZCosIChDYWxsRnJhbWUqIGNhbGxGcmFtCiAgICAgLy8gdG8gdGhl
IGV4Y2VwdGlvbiBoYW5kbGVyLiBJZiB3ZSBkaWQgdGhpcywgd2UgY291bGQgcmVtb3ZlIHRoaXMg
dGVycmlibGUgaGFjay4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcwNDQwCiAgICAgdm0uY2FsbGVlRm9yV2FzbUNhdGNoID0gY2FsbEZyYW1lLT5jYWxs
ZWUoKTsKLSAgICBiaXR3aXNlX2Nhc3Q8dWludDY0X3QqPihjYWxsRnJhbWUpW3N0YXRpY19jYXN0
PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0gPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KGlu
c3RhbmNlLT5tb2R1bGUoKSk7CisgICAgUmVnaXN0ZXIqIGNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nh
c3Q8UmVnaXN0ZXIqPihjYWxsRnJhbWUpICsgc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90
OjpjYWxsZWUpOworICAgICpjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PEpTQ2VsbCo+KGluc3Rh
bmNlLT5tb2R1bGUoKSk7CiAgICAgcmV0dXJuIHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRocm93Owog
fQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVJldHJpZXZlQW5kQ2xl
YXJFeGNlcHRpb25JZkNhdGNoYWJsZSwgUG9pbnRlclBhaXIsIChJbnN0YW5jZSogaW5zdGFuY2Up
KQogeworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBqc0lu
c3RhbmNlID0gaW5zdGFuY2UtPm93bmVyPEpTV2ViQXNzZW1ibHlJbnN0YW5jZT4oKTsKICAgICBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNJbnN0YW5jZS0+Z2xvYmFsT2JqZWN0KCk7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMTAzOSw2ICsxMDUwLDEzIEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtUmV0cmlldmVBbmRDbGVhckV4
Y2VwdGlvbklmQ2F0Y2hhYmxlLCBQb2luCiAgICAgaWYgKEpTV2ViQXNzZW1ibHlFeGNlcHRpb24q
IHdhc21FeGNlcHRpb24gPSBqc0R5bmFtaWNDYXN0PEpTV2ViQXNzZW1ibHlFeGNlcHRpb24qPih0
aHJvd25WYWx1ZSkpCiAgICAgICAgIHBheWxvYWQgPSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHdhc21F
eGNlcHRpb24tPnBheWxvYWQoKS5kYXRhKCkpOwogICAgIHJldHVybiBQb2ludGVyUGFpciB7IGJp
dHdpc2VfY2FzdDx2b2lkKj4oSlNWYWx1ZTo6ZW5jb2RlKHRocm93blZhbHVlKSksIHBheWxvYWQg
fTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgLy8gTm90ZTogVGhpcyBmdW5jdGlvbiBu
ZWVkcyB0byByZXR1cm4gYSBwb2ludGVyIGFuZCBhIEpTVmFsdWUsIHNvIHdpbGwgbmVlZCB0bwor
ICAgIC8vIGNoYW5nZSBzaWduYXR1cmUgb24gSlNWQUxFMzJfNjQsIG5ldmVydGhlbGVzcywgZm9y
IG5vdyBpdCdzIHVudXNlZC4KKyAgICBVTlJFQUNIQUJMRV9GT1JfUExBVEZPUk0oKTsKKyAgICBV
TlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIHJldHVybiB7IG51bGxwdHIsIG51bGxwdHIgfTsK
KyNlbmRpZgogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmgKaW5kZXggZTJjYjM1OTA0MTk2Li40Yzk3YzRk
NzFkYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRp
b25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaApA
QCAtNDcsMjIgKzQ3LDIzIEBAIG5hbWVzcGFjZSBXYXNtIHsKIGNsYXNzIEluc3RhbmNlOwogY2xh
c3MgVHlwZURlZmluaXRpb247CiAKLXZvaWQgbG9hZFZhbHVlc0ludG9CdWZmZXIoUHJvYmU6OkNv
bnRleHQmLCBjb25zdCBTdGFja01hcCYsIHVpbnQ2NF90KiBidWZmZXIpOwordHlwZWRlZiBpbnQ2
NF90IEVuY29kZWRXYXNtVmFsdWU7CiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCit2
b2lkIGxvYWRWYWx1ZXNJbnRvQnVmZmVyKFByb2JlOjpDb250ZXh0JiwgY29uc3QgU3RhY2tNYXAm
LCB1aW50NjRfdCogYnVmZmVyKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
V2FzbVRyaWdnZXJPU1JFbnRyeU5vdywgdm9pZCwgKFByb2JlOjpDb250ZXh0JikpOwogSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVHJpZ2dlclRpZXJVcE5vdywgdm9pZCwg
KEluc3RhbmNlKiwgdWludDMyX3QgZnVuY3Rpb25JbmRleCkpOwogI2VuZGlmCiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21VbndpbmQsIHZvaWQsIChDYWxsRnJhbWUqKSk7
CiAKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTY0LCBpbnQ2
NF90LCAoQ2FsbEZyYW1lKiwgSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db252ZXJ0VG9GNjQsIGRvdWJsZSwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTMyLCBpbnQzMl90LCAo
Q2FsbEZyYW1lKiwgSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db252ZXJ0VG9GMzIsIGZsb2F0LCAoQ2FsbEZyYW1lKiwgSlNWYWx1ZSkpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JNjQsIGludDY0X3QsIChDYWxsRnJh
bWUqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db252ZXJ0VG9GNjQsIGRvdWJsZSwgKENhbGxGcmFtZSosIEVuY29kZWRKU1ZhbHVlKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0kzMiwgaW50MzJfdCwg
KENhbGxGcmFtZSosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbnZlcnRUb0YzMiwgZmxvYXQsIChDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1
ZSkpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0lu
dCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqLCBJbnN0YW5jZSosIGludDY0X3QpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50LCBFbmNvZGVk
SlNWYWx1ZSwgKENhbGxGcmFtZSosIEluc3RhbmNlKiwgRW5jb2RlZFdhc21WYWx1ZSkpOwogCi1K
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAo
Q2FsbEZyYW1lKiwgSW5zdGFuY2UqLCBjb25zdCBUeXBlRGVmaW5pdGlvbiosIEpTVmFsdWUsIHVp
bnQ2NF90KiwgdWludDY0X3QqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1lKiwgSW5zdGFuY2UqLCBjb25zdCBUeXBl
RGVmaW5pdGlvbiosIEVuY29kZWRKU1ZhbHVlLCB1aW50NjRfdCosIHVpbnQ2NF90KikpOwogSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSwgSlNB
cnJheSosIChDYWxsRnJhbWUqLCBXYXNtOjpJbnN0YW5jZSosIGNvbnN0IFR5cGVEZWZpbml0aW9u
KiwgSW5kZXhpbmdUeXBlLCBKU1ZhbHVlKikpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbldhc21Xcml0ZUJhcnJpZXJTbG93UGF0aCwgdm9pZCwgKEpTQ2VsbCosIFZNKikp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhZ2VDb3VudC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhZ2VDb3VudC5oCmluZGV4IGI3ZDhj
OWZjZjcyYi4uM2M3NTUxMmY0NGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtUGFnZUNvdW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVBhZ2VDb3VudC5oCkBAIC05OCw3ICs5OCwxMiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29u
c3RleHByIHVpbnQzMl90IHBhZ2VTaXplID0gNjQgKiBLQjsKIHByaXZhdGU6Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciB1aW50MzJfdCBtYXhQYWdlQ291bnQgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4o
TUFYX0FSUkFZX0JVRkZFUl9TSVpFIC8gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHBhZ2VTaXplKSk7
CisgICAgLy8gVGhlIHNwZWMgcmVxdWlyZXMgd2UgYXJlIGFibGUgdG8gaW5zdGFudGlhdGUgYSBt
ZW1vcnkgd2l0aCBhICptYXhpbXVtKiBzaXplIG9mIDY0SyBwYWdlcy4KKyAgICAvLyBUaGlzIGRv
ZXMgbm90IG1lYW4gdGhlIG1lbW9yeSBjYW4gbmVjZXNzYXJpbHkgZ3JvdyB0aGF0IGJpZywgYW5k
IHdoZXJlIHRoZQorICAgIC8vIE1BWF9BUlJBWV9CVUZGRVJfU0laRSBpcyBzbWFsbGVyIChlLmcu
OiBvbiAzMi1iaXQgcGxhdGZvcm1zKSwgdHJ5aW5nIHRvIGdyb3cgdGhlIG1lbW9yeQorICAgIC8v
IHRoYXQgbGFyZ2Ugd2lsbCBmYWlsLCB3aGljaCBpcyBhY2NlcHRhYmxlIGFjY29yZGluZyB0byB0
aGUgc3BlYy4gTmV2ZXJ0aGVsZXNzLCB3ZSBzaG91bGQKKyAgICAvLyBiZSBhYmxlIHRvIHBhcnNl
IHN1Y2ggYSBtZW1vcnkgYW5kIGluc3RhbnRpYXRlIGl0IHdpdGggYSBzbWFsbGVyIGluaXRpYWwg
c2l6ZS4KKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG1heFBhZ2VDb3VudCA9IHN0ZDo6
bWF4PHVpbnQzMl90Pig2NCoxMDI0LCBNQVhfQVJSQVlfQlVGRkVSX1NJWkUgLyBzdGF0aWNfY2Fz
dDx1aW50NjRfdD4ocGFnZVNpemUpKTsKIAogICAgIHVpbnQzMl90IG1fcGFnZUNvdW50OwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaAppbmRleCA2YTY0OGYxMGI0MTku
LmMzODBiN2FhNDRlNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVBhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaApA
QCAtMjA4LDcgKzIwOCw3IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBQYXJzZXI8U3VjY2Vzc1R5cGU+
OjpwYXJzZVVJbnQzMih1aW50MzJfdCYgcmVzdWx0KQogewogICAgIGlmIChsZW5ndGgoKSA8IDQg
fHwgbV9vZmZzZXQgPiBsZW5ndGgoKSAtIDQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBy
ZXN1bHQgPSAqcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50MzJfdCo+KHNvdXJjZSgpICsgbV9v
ZmZzZXQpOworICAgIG1lbWNweSgmcmVzdWx0LCBzb3VyY2UoKSArIG1fb2Zmc2V0LCBzaXplb2Yo
dWludDMyX3QpKTsgLy8gc3JjIGNhbiBiZSB1bmFsaWduZWQKICAgICBtX29mZnNldCArPSA0Owog
ICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjE4LDcgKzIxOCw3IEBAIEFMV0FZU19JTkxJTkUgYm9v
bCBQYXJzZXI8U3VjY2Vzc1R5cGU+OjpwYXJzZVVJbnQ2NCh1aW50NjRfdCYgcmVzdWx0KQogewog
ICAgIGlmIChsZW5ndGgoKSA8IDggfHwgbV9vZmZzZXQgPiBsZW5ndGgoKSAtIDgpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICByZXN1bHQgPSAqcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50
NjRfdCo+KHNvdXJjZSgpICsgbV9vZmZzZXQpOworICAgIG1lbWNweSgmcmVzdWx0LCBzb3VyY2Uo
KSArIG1fb2Zmc2V0LCBzaXplb2YodWludDY0X3QpKTsgLy8gc3JjIGNhbiBiZSB1bmFsaWduZWQK
ICAgICBtX29mZnNldCArPSA4OwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmNwcAppbmRleCA2NDE3ZjgwYjM1YTcuLjZjYzdm
N2Y5NmM4NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQ
YXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5j
cHAKQEAgLTY0OCw3ICs2NDgsOCBAQCBXQVNNX1NMT1dfUEFUSF9ERUNMKHRocm93KQogICAgIC8v
IHRvIHRoZSBleGNlcHRpb24gaGFuZGxlci4gSWYgd2UgZGlkIHRoaXMsIHdlIGNvdWxkIHJlbW92
ZSB0aGlzIHRlcnJpYmxlIGhhY2suCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MDQ0MAogICAgIHZtLmNhbGxlZUZvcldhc21DYXRjaCA9IGNhbGxGcmFt
ZS0+Y2FsbGVlKCk7Ci0gICAgYml0d2lzZV9jYXN0PHVpbnQ2NF90Kj4oY2FsbEZyYW1lKVtzdGF0
aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSldID0gYml0d2lzZV9jYXN0PHVpbnQ2
NF90Pihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CisgICAgUmVnaXN0ZXIqIGNhbGxlZVNsb3QgPSBi
aXR3aXNlX2Nhc3Q8UmVnaXN0ZXIqPihjYWxsRnJhbWUpICsgc3RhdGljX2Nhc3Q8aW50PihDYWxs
RnJhbWVTbG90OjpjYWxsZWUpOworICAgICpjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PEpTQ2Vs
bCo+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsKICAgICBXQVNNX1JFVFVSTl9UV08odm0udGFyZ2V0
TWFjaGluZVBDRm9yVGhyb3csIG51bGxwdHIpOwogfQogCkBAIC02NzYsNyArNjc3LDggQEAgV0FT
TV9TTE9XX1BBVEhfREVDTChyZXRocm93KQogICAgIC8vIHRvIHRoZSBleGNlcHRpb24gaGFuZGxl
ci4gSWYgd2UgZGlkIHRoaXMsIHdlIGNvdWxkIHJlbW92ZSB0aGlzIHRlcnJpYmxlIGhhY2suCiAg
ICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDQ0MAogICAg
IHZtLmNhbGxlZUZvcldhc21DYXRjaCA9IGNhbGxGcmFtZS0+Y2FsbGVlKCk7Ci0gICAgYml0d2lz
ZV9jYXN0PHVpbnQ2NF90Kj4oY2FsbEZyYW1lKVtzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNs
b3Q6OmNhbGxlZSldID0gYml0d2lzZV9jYXN0PHVpbnQ2NF90Pihqc0luc3RhbmNlLT5tb2R1bGUo
KSk7CisgICAgUmVnaXN0ZXIqIGNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8UmVnaXN0ZXIqPihj
YWxsRnJhbWUpICsgc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpOworICAg
ICpjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PEpTQ2VsbCo+KGpzSW5zdGFuY2UtPm1vZHVsZSgp
KTsKICAgICBXQVNNX1JFVFVSTl9UV08odm0udGFyZ2V0TWFjaGluZVBDRm9yVGhyb3csIG51bGxw
dHIpOwogfQogCkBAIC03MjMsNiArNzI1LDIxNCBAQCBXQVNNX1NMT1dfUEFUSF9ERUNMKHJldHJp
ZXZlX2FuZF9jbGVhcl9leGNlcHRpb24pCiAgICAgV0FTTV9SRVRVUk5fVFdPKHBjLCBwYXlsb2Fk
KTsKIH0KIAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCitXQVNNX1NMT1dfUEFUSF9ERUNMKGYzMl9j
ZWlsKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlv
biA9IHBjLT5hczxXYXNtRjMyQ2VpbD4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0
cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFs
dWU6OmVuY29kZSh3YXNtVW5ib3hlZEZsb2F0KHN0ZDo6Y2VpbChvcGVyYW5kKSkpKTsKK30KKwor
V0FTTV9TTE9XX1BBVEhfREVDTChmMzJfZmxvb3IpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3Rh
bmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GMzJGbG9vcj4oKTsKKyAg
ICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRGbG9h
dCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZSh3YXNtVW5ib3hlZEZsb2F0KHN0
ZDo6Zmxvb3Iob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjMyX3RydW5j
KQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9
IHBjLT5hczxXYXNtRjMyVHJ1bmM+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1
Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVl
OjplbmNvZGUod2FzbVVuYm94ZWRGbG9hdChzdGQ6OnRydW5jKG9wZXJhbmQpKSkpOworfQorCitX
QVNNX1NMT1dfUEFUSF9ERUNMKGYzMl9uZWFyZXN0KQoreworICAgIHN0YXRpY19hc3NlcnQoc3Rk
OjpudW1lcmljX2xpbWl0czxmbG9hdD46OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91bmRfdG9fbmVh
cmVzdCk7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9u
ID0gcGMtPmFzPFdhc21GMzJOZWFyZXN0PigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGlu
c3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgV0FTTV9SRVRVUk4oSlNW
YWx1ZTo6ZW5jb2RlKHdhc21VbmJveGVkRmxvYXQoc3RkOjpuZWFyYnlpbnQob3BlcmFuZCkpKSk7
Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjY0X2NlaWwpCit7CisgICAgVU5VU0VEX1BBUkFN
KGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GNjRDZWlsPigp
OworICAgIGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94
ZWREb3VibGUoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1i
ZXIoc3RkOjpjZWlsKG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGY2NF9m
bG9vcikKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rp
b24gPSBwYy0+YXM8V2FzbUY2NEZsb29yPigpOworICAgIGRvdWJsZSBvcGVyYW5kID0gUkVBRChp
bnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUoKTsKKyAgICBXQVNNX1JFVFVSTihK
U1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoc3RkOjpmbG9vcihvcGVyYW5kKSkpKTsKK30K
KworV0FTTV9TTE9XX1BBVEhfREVDTChmNjRfdHJ1bmMpCit7CisgICAgVU5VU0VEX1BBUkFNKGlu
c3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GNjRUcnVuYz4oKTsK
KyAgICBkb3VibGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVk
RG91YmxlKCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVy
KHN0ZDo6dHJ1bmMob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjY0X25l
YXJlc3QpCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6
cm91bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90b19uZWFyZXN0KTsKKyAgICBVTlVTRURfUEFSQU0o
aW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NE5lYXJlc3Q+
KCk7CisgICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5i
b3hlZERvdWJsZSgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51
bWJlcihzdGQ6Om5lYXJieWludChvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVD
TChmMzJfY29udmVydF91X2k2NCkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19s
aW1pdHM8ZmxvYXQ+Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOworICAg
IFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxX
YXNtRjMyQ29udmVydFVJNjQ+KCk7CisgICAgdWludDY0X3Qgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1
Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkSW50NjQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVl
OjplbmNvZGUod2FzbVVuYm94ZWRGbG9hdChzdGF0aWNfY2FzdDxmbG9hdD4ob3BlcmFuZCkpKSk7
Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjMyX2NvbnZlcnRfc19pNjQpCit7CisgICAgc3Rh
dGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cm91bmRfc3R5bGUgPT0gc3Rk
Ojpyb3VuZF90b19uZWFyZXN0KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1
dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUYzMkNvbnZlcnRTSTY0PigpOworICAgIGludDY0
X3Qgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkSW50NjQoKTsK
KyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUod2FzbVVuYm94ZWRGbG9hdChzdGF0aWNf
Y2FzdDxmbG9hdD4ob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjY0X2Nv
bnZlcnRfdV9pNjQpCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPGZs
b2F0Pjo6cm91bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90b19uZWFyZXN0KTsKKyAgICBVTlVTRURf
UEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NENv
bnZlcnRVSTY0PigpOworICAgIHVpbnQ2NF90IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1f
b3BlcmFuZCkudW5ib3hlZEludDY0KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2Rl
KGpzRG91YmxlTnVtYmVyKHN0YXRpY19jYXN0PGRvdWJsZT4ob3BlcmFuZCkpKSk7Cit9CisKK1dB
U01fU0xPV19QQVRIX0RFQ0woZjY0X2NvbnZlcnRfc19pNjQpCit7CisgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cm91bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90
b19uZWFyZXN0KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1
Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NENvbnZlcnRTSTY0PigpOworICAgIGludDY0X3Qgb3BlcmFu
ZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkSW50NjQoKTsKKyAgICBXQVNN
X1JFVFVSTihKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoc3RhdGljX2Nhc3Q8ZG91Ymxl
PihvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfdV9mMzIp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0g
cGMtPmFzPFdhc21JNjRUcnVuY1VGMzI+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5z
dHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBpZiAoc3RkOjppc25hbihv
cGVyYW5kKSB8fCBvcGVyYW5kIDw9IC0xLjBmIHx8IG9wZXJhbmQgPj0gLTIuMGYgKiBzdGF0aWNf
Y2FzdDxmbG9hdD4oSU5UNjRfTUlOKSkKKyAgICAgICAgV0FTTV9USFJPVyhXYXNtOjpFeGNlcHRp
b25UeXBlOjpPdXRPZkJvdW5kc1RydW5jKTsKKyAgICBXQVNNX1JFVFVSTihzdGF0aWNfY2FzdDx1
aW50NjRfdD4ob3BlcmFuZCkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY19z
X2YzMikKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rp
b24gPSBwYy0+YXM8V2FzbUk2NFRydW5jU0YzMj4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0gUkVB
RChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIGlmIChzdGQ6Omlz
bmFuKG9wZXJhbmQpIHx8IG9wZXJhbmQgPCBzdGF0aWNfY2FzdDxmbG9hdD4oSU5UNjRfTUlOKSB8
fCBvcGVyYW5kID49IC1zdGF0aWNfY2FzdDxmbG9hdD4oSU5UNjRfTUlOKSkKKyAgICAgICAgV0FT
TV9USFJPVyhXYXNtOjpFeGNlcHRpb25UeXBlOjpPdXRPZkJvdW5kc1RydW5jKTsKKyAgICBXQVNN
X1JFVFVSTihzdGF0aWNfY2FzdDxpbnQ2NF90PihvcGVyYW5kKSk7Cit9CisKK1dBU01fU0xPV19Q
QVRIX0RFQ0woaTY0X3RydW5jX3VfZjY0KQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7
CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1bmNVRjY0PigpOworICAg
IGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3Vi
bGUoKTsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5kKSB8fCBvcGVyYW5kIDw9IC0xLjAgfHwg
b3BlcmFuZCA+PSAtMi4wICogc3RhdGljX2Nhc3Q8ZG91YmxlPihJTlQ2NF9NSU4pKQorICAgICAg
ICBXQVNNX1RIUk9XKFdhc206OkV4Y2VwdGlvblR5cGU6Ok91dE9mQm91bmRzVHJ1bmMpOworICAg
IFdBU01fUkVUVVJOKHN0YXRpY19jYXN0PHVpbnQ2NF90PihvcGVyYW5kKSk7Cit9CisKK1dBU01f
U0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3NfZjY0KQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0
YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1bmNTRjY0Pigp
OworICAgIGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94
ZWREb3VibGUoKTsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5kKSB8fCBvcGVyYW5kIDwgc3Rh
dGljX2Nhc3Q8ZG91YmxlPihJTlQ2NF9NSU4pIHx8IG9wZXJhbmQgPj0gLXN0YXRpY19jYXN0PGRv
dWJsZT4oSU5UNjRfTUlOKSkKKyAgICAgICAgV0FTTV9USFJPVyhXYXNtOjpFeGNlcHRpb25UeXBl
OjpPdXRPZkJvdW5kc1RydW5jKTsKKyAgICBXQVNNX1JFVFVSTihzdGF0aWNfY2FzdDxpbnQ2NF90
PihvcGVyYW5kKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3NhdF9mMzJf
dSkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24g
PSBwYy0+YXM8V2FzbUk2NFRydW5jU2F0RjMyVT4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0gUkVB
RChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIHVpbnQ2NF90IHJl
c3VsdDsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5kKSB8fCBvcGVyYW5kIDw9IC0xLjBmKQor
ICAgICAgICByZXN1bHQgPSAwOworICAgIGVsc2UgaWYgKG9wZXJhbmQgPj0gLTIuMGYgKiBzdGF0
aWNfY2FzdDxmbG9hdD4oSU5UNjRfTUlOKSkKKyAgICAgICAgcmVzdWx0ID0gVUlOVDY0X01BWDsK
KyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihvcGVyYW5k
KTsKKyAgICBXQVNNX1JFVFVSTihyZXN1bHQpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2
NF90cnVuY19zYXRfZjMyX3MpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBh
dXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1NhdEYzMlM+KCk7CisgICAgZmxv
YXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsK
KyAgICBpbnQ2NF90IHJlc3VsdDsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5kKSkKKyAgICAg
ICAgcmVzdWx0ID0gMDsKKyAgICBlbHNlIGlmIChvcGVyYW5kIDwgc3RhdGljX2Nhc3Q8ZmxvYXQ+
KElOVDY0X01JTikpCisgICAgICAgIHJlc3VsdCA9IElOVDY0X01JTjsKKyAgICBlbHNlIGlmIChv
cGVyYW5kID49IC1zdGF0aWNfY2FzdDxmbG9hdD4oSU5UNjRfTUlOKSkKKyAgICAgICAgcmVzdWx0
ID0gSU5UNjRfTUFYOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8aW50
NjRfdD4ob3BlcmFuZCk7CisgICAgV0FTTV9SRVRVUk4ocmVzdWx0KTsKK30KKworV0FTTV9TTE9X
X1BBVEhfREVDTChpNjRfdHJ1bmNfc2F0X2Y2NF91KQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0
YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1bmNTYXRGNjRV
PigpOworICAgIGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVu
Ym94ZWREb3VibGUoKTsKKyAgICB1aW50NjRfdCByZXN1bHQ7CisgICAgaWYgKHN0ZDo6aXNuYW4o
b3BlcmFuZCkgfHwgb3BlcmFuZCA8PSAtMS4wKQorICAgICAgICByZXN1bHQgPSAwOworICAgIGVs
c2UgaWYgKG9wZXJhbmQgPj0gLTIuMCAqIHN0YXRpY19jYXN0PGRvdWJsZT4oSU5UNjRfTUlOKSkK
KyAgICAgICAgcmVzdWx0ID0gVUlOVDY0X01BWDsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9
IHN0YXRpY19jYXN0PHVpbnQ2NF90PihvcGVyYW5kKTsKKyAgICBXQVNNX1JFVFVSTihyZXN1bHQp
OworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY19zYXRfZjY0X3MpCit7CisgICAg
VU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdh
c21JNjRUcnVuY1NhdEY2NFM+KCk7CisgICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0
aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgpOworICAgIGludDY0X3QgcmVzdWx0OworICAg
IGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpKQorICAgICAgICByZXN1bHQgPSAwOworICAgIGVsc2Ug
aWYgKG9wZXJhbmQgPCBzdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0X01JTikpCisgICAgICAgIHJl
c3VsdCA9IElOVDY0X01JTjsKKyAgICBlbHNlIGlmIChvcGVyYW5kID49IC1zdGF0aWNfY2FzdDxk
b3VibGU+KElOVDY0X01JTikpCisgICAgICAgIHJlc3VsdCA9IElOVDY0X01BWDsKKyAgICBlbHNl
CisgICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PGludDY0X3Q+KG9wZXJhbmQpOworICAgIFdB
U01fUkVUVVJOKHJlc3VsdCk7Cit9CisjZW5kaWYKKwogZXh0ZXJuICJDIiBTbG93UGF0aFJldHVy
blR5cGUgc2xvd19wYXRoX3dhc21fdGhyb3dfZXhjZXB0aW9uKENhbGxGcmFtZSogY2FsbEZyYW1l
LCBjb25zdCBXYXNtSW5zdHJ1Y3Rpb24qIHBjLCBXYXNtOjpJbnN0YW5jZSogaW5zdGFuY2UsIFdh
c206OkV4Y2VwdGlvblR5cGUgZXhjZXB0aW9uVHlwZSkKIHsKICAgICBVTlVTRURfUEFSQU0ocGMp
OwpAQCAtNzMxLDE2ICs5NDEsMjggQEAgZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgc2xv
d19wYXRoX3dhc21fdGhyb3dfZXhjZXB0aW9uKENhbGxGcmFtZSogY2FsbEZyYW0KIAogZXh0ZXJu
ICJDIiBTbG93UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fcG9wY291bnQoY29uc3QgV2Fz
bUluc3RydWN0aW9uKiBwYywgdWludDMyX3QgeCkKIHsKLSAgICB2b2lkKiByZXN1bHQgPSBiaXR3
aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PHVpbnQ2NF90PihfX2J1aWx0aW5fcG9wY291bnQo
eCkpKTsKKyAgICB2b2lkKiByZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0
PHNpemVfdD4oX19idWlsdGluX3BvcGNvdW50KHgpKSk7CiAgICAgV0FTTV9SRVRVUk5fVFdPKHBj
LCByZXN1bHQpOwogfQogCiBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBzbG93X3BhdGhf
d2FzbV9wb3Bjb3VudGxsKGNvbnN0IFdhc21JbnN0cnVjdGlvbiogcGMsIHVpbnQ2NF90IHgpCiB7
Ci0gICAgdm9pZCogcmVzdWx0ID0gYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDx1aW50
NjRfdD4oX19idWlsdGluX3BvcGNvdW50bGwoeCkpKTsKKyAgICB2b2lkKiByZXN1bHQgPSBiaXR3
aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PHNpemVfdD4oX19idWlsdGluX3BvcGNvdW50bGwo
eCkpKTsKICAgICBXQVNNX1JFVFVSTl9UV08ocGMsIHJlc3VsdCk7CiB9CiAKKyNpZiBVU0UoSlNW
QUxVRTMyXzY0KQorLy8gTm90ZTogQWxsIHRoZXNlIGRpdiBhbmQgcmVtIG9wcyBwZXJmb3JtIGV4
Y2VwdGlvbiBjaGVja3MgaW4gYXNtCitleHRlcm4gIkMiIGludDMyX3Qgc2xvd19wYXRoX3dhc21f
aTMyX2Rpdl9zKGludDMyX3QgYSwgaW50MzJfdCBiKSB7IHJldHVybiBhIC8gYjsgfQorZXh0ZXJu
ICJDIiB1aW50MzJfdCBzbG93X3BhdGhfd2FzbV9pMzJfZGl2X3UodWludDMyX3QgYSwgdWludDMy
X3QgYikgeyByZXR1cm4gYSAvIGI7IH0KK2V4dGVybiAiQyIgaW50MzJfdCBzbG93X3BhdGhfd2Fz
bV9pMzJfcmVtX3MoaW50MzJfdCBhLCBpbnQzMl90IGIpIHsgcmV0dXJuIGEgJSBiOyB9CitleHRl
cm4gIkMiIHVpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9yZW1fdSh1aW50MzJfdCBhLCB1aW50
MzJfdCBiKSB7IHJldHVybiBhICUgYjsgfQorZXh0ZXJuICJDIiBpbnQ2NF90IHNsb3dfcGF0aF93
YXNtX2k2NF9kaXZfcyhpbnQ2NF90IGEsIGludDY0X3QgYikgeyByZXR1cm4gYSAvIGI7IH0KK2V4
dGVybiAiQyIgdWludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X2Rpdl91KHVpbnQ2NF90IGEsIHVp
bnQ2NF90IGIpIHsgcmV0dXJuIGEgLyBiOyB9CitleHRlcm4gIkMiIGludDY0X3Qgc2xvd19wYXRo
X3dhc21faTY0X3JlbV9zKGludDY0X3QgYSwgaW50NjRfdCBiKSB7IHJldHVybiBhICUgYjsgfQor
ZXh0ZXJuICJDIiB1aW50NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRfcmVtX3UodWludDY0X3QgYSwg
dWludDY0X3QgYikgeyByZXR1cm4gYSAlIGI7IH0KKyNlbmRpZgorCiB9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6TExJbnQKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuaAppbmRleCA2NzhjMTcyODM3NjguLmU3MDBk
YWQ2OWFhNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQ
YXRocy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuaApA
QCAtOTUsNiArOTUsNDAgQEAgZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgc2xvd19wYXRo
X3dhc21fdGhyb3dfZXhjZXB0aW9uKENhbGxGcmFtZSosIGNvbnN0IFcKIGV4dGVybiAiQyIgU2xv
d1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3BvcGNvdW50KGNvbnN0IFdhc21JbnN0cnVj
dGlvbiogcGMsIHVpbnQzMl90KSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKIGV4
dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3BvcGNvdW50bGwoY29u
c3QgV2FzbUluc3RydWN0aW9uKiBwYywgdWludDY0X3QpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RG
X0lOVEVSTkFMOwogCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKK1dBU01fU0xPV19QQVRIX0hJRERF
Tl9ERUNMKGYzMl9jZWlsKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGYzMl9mbG9vcik7
CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmMzJfdHJ1bmMpOworV0FTTV9TTE9XX1BBVEhf
SElEREVOX0RFQ0woZjMyX25lYXJlc3QpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjY0
X2NlaWwpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjY0X2Zsb29yKTsKK1dBU01fU0xP
V19QQVRIX0hJRERFTl9ERUNMKGY2NF90cnVuYyk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVD
TChmNjRfbmVhcmVzdCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmMzJfY29udmVydF91
X2k2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmMzJfY29udmVydF9zX2k2NCk7CitX
QVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfY29udmVydF91X2k2NCk7CitXQVNNX1NMT1df
UEFUSF9ISURERU5fREVDTChmNjRfY29udmVydF9zX2k2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURE
RU5fREVDTChpNjRfdHJ1bmNfdV9mMzIpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0
X3RydW5jX3NfZjMyKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGk2NF90cnVuY191X2Y2
NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNfc19mNjQpOworV0FTTV9T
TE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3NhdF9mMzJfdSk7CitXQVNNX1NMT1dfUEFU
SF9ISURERU5fREVDTChpNjRfdHJ1bmNfc2F0X2YzMl9zKTsKK1dBU01fU0xPV19QQVRIX0hJRERF
Tl9ERUNMKGk2NF90cnVuY19zYXRfZjY0X3UpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0wo
aTY0X3RydW5jX3NhdF9mNjRfcyk7CisjZW5kaWYKKworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCitl
eHRlcm4gIkMiIGludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX2Rpdl9zKGludDMyX3QgYSwgaW50
MzJfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgdWlu
dDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX2Rpdl91KHVpbnQzMl90IGEsIHVpbnQzMl90IGIpIFJF
RkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJDIiBpbnQzMl90IHNsb3df
cGF0aF93YXNtX2kzMl9yZW1fcyhpbnQzMl90IGEsIGludDMyX3QgYikgUkVGRVJFTkNFRF9GUk9N
X0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMiIHVpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kz
Ml9yZW1fdSh1aW50MzJfdCBhLCB1aW50MzJfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9J
TlRFUk5BTDsKK2V4dGVybiAiQyIgaW50NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRfZGl2X3MoaW50
NjRfdCBhLCBpbnQ2NF90IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOworZXh0
ZXJuICJDIiB1aW50NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRfZGl2X3UodWludDY0X3QgYSwgdWlu
dDY0X3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMiIGlu
dDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X3JlbV9zKGludDY0X3QgYSwgaW50NjRfdCBiKSBSRUZF
UkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgdWludDY0X3Qgc2xvd19w
YXRoX3dhc21faTY0X3JlbV91KHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIpIFJFRkVSRU5DRURfRlJP
TV9BU00gV1RGX0lOVEVSTkFMOworI2VuZGlmCisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpMTElu
dAogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uY3BwCmluZGV4IDUyMjNmM2FiNGU0MC4uNjhj
Nzg4ODkwNmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFs
dWVMb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVl
TG9jYXRpb24uY3BwCkBAIC0zNSw4ICszNSwxMSBAQCB2b2lkIFZhbHVlTG9jYXRpb246OmR1bXAo
UHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBvdXQucHJpbnQobV9raW5kKTsKICAgICBz
d2l0Y2ggKG1fa2luZCkgewotICAgIGNhc2UgUmVnaXN0ZXI6Ci0gICAgICAgIG91dC5wcmludCgi
KCIsIHJlZygpLCAiKSIpOworICAgIGNhc2UgR1BSUmVnaXN0ZXI6CisgICAgICAgIG91dC5wcmlu
dCgiKCIsIGpzcigpLCAiKSIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBGUFJSZWdpc3Rl
cjoKKyAgICAgICAgb3V0LnByaW50KCIoIiwgZnByKCksICIpIik7CiAgICAgICAgIHJldHVybjsK
ICAgICBjYXNlIFN0YWNrOgogICAgICAgICBvdXQucHJpbnQoIigiLCBvZmZzZXRGcm9tRlAoKSwg
IikiKTsKQEAgLTU3LDggKzYwLDExIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M6Oldhc207CiB2b2lk
IHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgVmFsdWVMb2NhdGlvbjo6S2luZCBraW5k
KQogewogICAgIHN3aXRjaCAoa2luZCkgewotICAgIGNhc2UgVmFsdWVMb2NhdGlvbjo6UmVnaXN0
ZXI6Ci0gICAgICAgIG91dC5wcmludCgiUmVnaXN0ZXIiKTsKKyAgICBjYXNlIFZhbHVlTG9jYXRp
b246OkdQUlJlZ2lzdGVyOgorICAgICAgICBvdXQucHJpbnQoIkdQUlJlZ2lzdGVyIik7CisgICAg
ICAgIHJldHVybjsKKyAgICBjYXNlIFZhbHVlTG9jYXRpb246OkZQUlJlZ2lzdGVyOgorICAgICAg
ICBvdXQucHJpbnQoIkZQUlJlZ2lzdGVyIik7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIFZh
bHVlTG9jYXRpb246OlN0YWNrOgogICAgICAgICBvdXQucHJpbnQoIlN0YWNrIik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uaAppbmRleCBhNjFmYmE4
YmQwMWMuLjVjYjUxMGRiYmQwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbVZhbHVlTG9jYXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtVmFsdWVMb2NhdGlvbi5oCkBAIC00MSwyNSArNDEsMjcgQEAgY2xhc3MgVmFsdWVMb2NhdGlv
biB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZW51bSBLaW5k
IDogdWludDhfdCB7Ci0gICAgICAgIFJlZ2lzdGVyLAorICAgICAgICBHUFJSZWdpc3RlciwKKyAg
ICAgICAgRlBSUmVnaXN0ZXIsCiAgICAgICAgIFN0YWNrLAogICAgICAgICBTdGFja0FyZ3VtZW50
LAogICAgIH07CiAKICAgICBWYWx1ZUxvY2F0aW9uKCkKLSAgICAgICAgOiBtX2tpbmQoUmVnaXN0
ZXIpCisgICAgICAgIDogbV9raW5kKEdQUlJlZ2lzdGVyKQogICAgIHsKICAgICB9CiAKLSAgICBl
eHBsaWNpdCBWYWx1ZUxvY2F0aW9uKFJlZyByZWcpCi0gICAgICAgIDogbV9raW5kKFJlZ2lzdGVy
KQorICAgIGV4cGxpY2l0IFZhbHVlTG9jYXRpb24oSlNWYWx1ZVJlZ3MgcmVncykKKyAgICAgICAg
OiBtX2tpbmQoR1BSUmVnaXN0ZXIpCiAgICAgewotICAgICAgICB1LnJlZyA9IHJlZzsKKyAgICAg
ICAgdS5qc3IgPSByZWdzOwogICAgIH0KIAotICAgIHN0YXRpYyBWYWx1ZUxvY2F0aW9uIHJlZyhS
ZWcgcmVnKQorICAgIGV4cGxpY2l0IFZhbHVlTG9jYXRpb24oRlBSUmVnIHJlZykKKyAgICAgICAg
OiBtX2tpbmQoRlBSUmVnaXN0ZXIpCiAgICAgewotICAgICAgICByZXR1cm4gVmFsdWVMb2NhdGlv
bihyZWcpOworICAgICAgICB1LmZwciA9IHJlZzsKICAgICB9CiAKICAgICBzdGF0aWMgVmFsdWVM
b2NhdGlvbiBzdGFjayhpbnRwdHJfdCBvZmZzZXRGcm9tRlApCkBAIC04MCwyMSArODIsMjIgQEAg
cHVibGljOgogCiAgICAgS2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gbV9raW5kOyB9CiAKLSAg
ICBib29sIGlzUmVnKCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IFJlZ2lzdGVyOyB9CisgICAg
Ym9vbCBpc0dQUigpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBHUFJSZWdpc3RlcjsgfQorICAg
IGJvb2wgaXNGUFIoKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gRlBSUmVnaXN0ZXI7IH0KKyAg
ICBib29sIGlzU3RhY2soKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gU3RhY2s7IH0KKyAgICBi
b29sIGlzU3RhY2tBcmd1bWVudCgpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBTdGFja0FyZ3Vt
ZW50OyB9CiAKLSAgICBSZWcgcmVnKCkgY29uc3QKKyAgICBKU1ZhbHVlUmVncyBqc3IoKSBjb25z
dAogICAgIHsKLSAgICAgICAgQVNTRVJUKGlzUmVnKCkpOwotICAgICAgICByZXR1cm4gdS5yZWc7
CisgICAgICAgIEFTU0VSVChpc0dQUigpKTsKKyAgICAgICAgcmV0dXJuIHUuanNyOwogICAgIH0K
IAotICAgIGJvb2wgaXNHUFIoKSBjb25zdCB7IHJldHVybiBpc1JlZygpICYmIHJlZygpLmlzR1BS
KCk7IH0KLSAgICBib29sIGlzRlBSKCkgY29uc3QgeyByZXR1cm4gaXNSZWcoKSAmJiByZWcoKS5p
c0ZQUigpOyB9Ci0KLSAgICBHUFJSZWcgZ3ByKCkgY29uc3QgeyByZXR1cm4gcmVnKCkuZ3ByKCk7
IH0KLSAgICBGUFJSZWcgZnByKCkgY29uc3QgeyByZXR1cm4gcmVnKCkuZnByKCk7IH0KLQotICAg
IGJvb2wgaXNTdGFjaygpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBTdGFjazsgfQorICAgIEZQ
UlJlZyBmcHIoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzRlBSKCkpOworICAgICAg
ICByZXR1cm4gdS5mcHI7CisgICAgfQogCiAgICAgaW50cHRyX3Qgb2Zmc2V0RnJvbUZQKCkgY29u
c3QKICAgICB7CkBAIC0xMDIsOCArMTA1LDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gdS5v
ZmZzZXRGcm9tRlA7CiAgICAgfQogCi0gICAgYm9vbCBpc1N0YWNrQXJndW1lbnQoKSBjb25zdCB7
IHJldHVybiBraW5kKCkgPT0gU3RhY2tBcmd1bWVudDsgfQotCiAgICAgaW50cHRyX3Qgb2Zmc2V0
RnJvbVNQKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChpc1N0YWNrQXJndW1lbnQoKSk7
CkBAIC0xMTQsNyArMTE1LDggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHVuaW9uIFUgewot
ICAgICAgICBSZWcgcmVnOworICAgICAgICBKU1ZhbHVlUmVncyBqc3I7CisgICAgICAgIEZQUlJl
ZyBmcHI7CiAgICAgICAgIGludHB0cl90IG9mZnNldEZyb21GUDsKICAgICAgICAgaW50cHRyX3Qg
b2Zmc2V0RnJvbVNQOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9KU1RvV2FzbS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5j
cHAKaW5kZXggODk0MjBkODgxMzQ2Li4wZjYyNGUwYjYxZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJD
Q2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUg
IkpTV2ViQXNzZW1ibHlJbnN0YW5jZS5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xv
d1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiV2FzbUNhbGxpbmdDb252ZW50aW9uLmgiCiAjaW5jbHVk
ZSAiV2FzbUNvbnRleHRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiV2FzbU9wZXJhdGlvbnMuaCIKQEAg
LTQxLDEzICs0MiwxMyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogdm9pZCBt
YXJzaGFsbEpTUmVzdWx0KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBUeXBlRGVmaW5pdGlvbiYg
dHlwZURlZmluaXRpb24sIGNvbnN0IENhbGxJbmZvcm1hdGlvbiYgd2FzbUZyYW1lQ29udmVudGlv
biwgY29uc3QgUmVnaXN0ZXJBdE9mZnNldExpc3QmIHNhdmVkUmVzdWx0UmVnaXN0ZXJzKQogewog
ICAgIGNvbnN0IGF1dG8mIHNpZ25hdHVyZSA9ICp0eXBlRGVmaW5pdGlvbi5hczxGdW5jdGlvblNp
Z25hdHVyZT4oKTsKLSAgICBhdXRvIGJveFdhc21SZXN1bHQgPSBbXShDQ2FsbEhlbHBlcnMmIGpp
dCwgVHlwZSB0eXBlLCBSZWcgc3JjLCBKU1ZhbHVlUmVncyBkc3QpIHsKKyAgICBhdXRvIGJveFdh
c21SZXN1bHQgPSBbXShDQ2FsbEhlbHBlcnMmIGppdCwgVHlwZSB0eXBlLCBWYWx1ZUxvY2F0aW9u
IHNyYywgSlNWYWx1ZVJlZ3MgZHN0KSB7CiAgICAgICAgIHN3aXRjaCAodHlwZS5raW5kKSB7CiAg
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OlZvaWQ6CiAgICAgICAgICAgICBqaXQubW92ZVRydXN0ZWRW
YWx1ZShqc1VuZGVmaW5lZCgpLCBkc3QpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgVHlwZUtpbmQ6OkkzMjoKLSAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoc3Jj
LmdwcigpLCBkc3QucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJU
b1dvcmQoc3JjLmpzcigpLnBheWxvYWRHUFIoKSwgZHN0LnBheWxvYWRHUFIoKSk7CiAgICAgICAg
ICAgICBqaXQuYm94SW50MzIoZHN0LnBheWxvYWRHUFIoKSwgZHN0LCBEb05vdEhhdmVUYWdSZWdp
c3RlcnMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoK
QEAgLTU2LDEzICs1NywxNyBAQCB2b2lkIG1hcnNoYWxsSlNSZXN1bHQoQ0NhbGxIZWxwZXJzJiBq
aXQsIGNvbnN0IFR5cGVEZWZpbml0aW9uJiB0eXBlRGVmaW5pdGlvbiwgYwogICAgICAgICBjYXNl
IFR5cGVLaW5kOjpGNjQ6IHsKICAgICAgICAgICAgIGppdC5tb3ZlVHJ1c3RlZFZhbHVlKGpzTnVt
YmVyKHB1cmVOYU4oKSksIGRzdCk7CiAgICAgICAgICAgICBhdXRvIGlzTmFOID0gaml0LmJyYW5j
aElmTmFOKHNyYy5mcHIoKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgICAgIGppdC5i
b3hEb3VibGUoc3JjLmZwcigpLCBkc3QsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisjZWxzZQor
ICAgICAgICAgICAgaml0LmJveERvdWJsZShzcmMuZnByKCksIGRzdCk7CisjZW5kaWYKICAgICAg
ICAgICAgIGlzTmFOLmxpbmsoJmppdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBkZWZhdWx0OiB7CiAgICAgICAgICAgICBpZiAoaXNGdW5jcmVmKHR5cGUpIHx8IGlz
RXh0ZXJucmVmKHR5cGUpKQotICAgICAgICAgICAgICAgIGppdC5tb3ZlKHNyYy5ncHIoKSwgZHN0
LnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICAgICAgaml0Lm1vdmVWYWx1ZVJlZ3Moc3JjLmpz
cigpLCBkc3QpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGppdC5icmVha3Bv
aW50KCk7CiAgICAgICAgIH0KQEAgLTcwLDQ0ICs3NSw4NyBAQCB2b2lkIG1hcnNoYWxsSlNSZXN1
bHQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFR5cGVEZWZpbml0aW9uJiB0eXBlRGVmaW5pdGlv
biwgYwogICAgIH07CiAKICAgICBpZiAoc2lnbmF0dXJlLnJldHVybnNWb2lkKCkpCi0gICAgICAg
IGppdC5tb3ZlVHJ1c3RlZFZhbHVlKGpzVW5kZWZpbmVkKCksIEpTVmFsdWVSZWdzIHsgR1BSSW5m
bzo6cmV0dXJuVmFsdWVHUFIgfSk7CisgICAgICAgIGppdC5tb3ZlVHJ1c3RlZFZhbHVlKGpzVW5k
ZWZpbmVkKCksIEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsKICAgICBlbHNlIGlmIChzaWduYXR1
cmUucmV0dXJuQ291bnQoKSA9PSAxKSB7CiAgICAgICAgIGlmIChzaWduYXR1cmUucmV0dXJuVHlw
ZSgwKS5pc0k2NCgpKSB7Ci0gICAgICAgICAgICBHUFJSZWcgaW5wdXRHUFIgPSB3YXNtRnJhbWVD
b252ZW50aW9uLnJlc3VsdHNbMF0ucmVnKCkuZ3ByKCk7CisgICAgICAgICAgICBKU1ZhbHVlUmVn
cyBpbnB1dEpTUiA9IHdhc21GcmFtZUNvbnZlbnRpb24ucmVzdWx0c1swXS5qc3IoKTsKICAgICAg
ICAgICAgIEdQUlJlZyB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gUGlubmVkUmVnaXN0ZXJJbmZv
OjpnZXQoKS53YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlcjsKICAgICAgICAgICAgIGlmIChDb250
ZXh0Ojp1c2VGYXN0VExTKCkpIHsKLSAgICAgICAgICAgICAgICB3YXNtQ29udGV4dEluc3RhbmNl
R1BSID0gaW5wdXRHUFIgPT0gR1BSSW5mbzo6YXJndW1lbnRHUFIxID8gR1BSSW5mbzo6YXJndW1l
bnRHUFIwIDogR1BSSW5mbzo6YXJndW1lbnRHUFIxOwotICAgICAgICAgICAgICAgIHN0YXRpY19h
c3NlcnQoc3RkOjppc19zYW1lX3Y8V2FzbTo6SW5zdGFuY2UqLCB0eXBlbmFtZSBGdW5jdGlvblRy
YWl0czxkZWNsdHlwZShvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSk+OjpBcmd1bWVudFR5
cGU8MT4+KTsKKyAgICAgICAgICAgICAgICB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gaW5wdXRK
U1IucGF5bG9hZEdQUigpID09IEdQUkluZm86OmFyZ3VtZW50R1BSMSA/IEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCA6IEdQUkluZm86OmFyZ3VtZW50R1BSMTsKKyAgICAgICAgICAgICAgICBBU1NFUlQo
IWlucHV0SlNSLnVzZXMod2FzbUNvbnRleHRJbnN0YW5jZUdQUikpOworICAgICAgICAgICAgICAg
IHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lX3Y8V2FzbTo6SW5zdGFuY2UqLCB0eXBlbmFtZSBG
dW5jdGlvblRyYWl0czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPjo6QXJndW1l
bnRUeXBlPDE+Pik7CiAgICAgICAgICAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNl
KHdhc21Db250ZXh0SW5zdGFuY2VHUFIpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaml0
LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+KHdhc21D
b250ZXh0SW5zdGFuY2VHUFIsIGlucHV0R1BSKTsKKyAgICAgICAgICAgIGppdC5zZXR1cEFyZ3Vt
ZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPih3YXNtQ29udGV4dEluc3Rh
bmNlR1BSLCBpbnB1dEpTUik7CiAgICAgICAgICAgICBqaXQuY2FsbE9wZXJhdGlvbihGdW5jdGlv
blB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCkpOwogICAgICAg
ICB9IGVsc2UKLSAgICAgICAgICAgIGJveFdhc21SZXN1bHQoaml0LCBzaWduYXR1cmUucmV0dXJu
VHlwZSgwKSwgd2FzbUZyYW1lQ29udmVudGlvbi5yZXN1bHRzWzBdLnJlZygpLCBKU1ZhbHVlUmVn
cyB7IEdQUkluZm86OnJldHVyblZhbHVlR1BSIH0pOworICAgICAgICAgICAgYm94V2FzbVJlc3Vs
dChqaXQsIHNpZ25hdHVyZS5yZXR1cm5UeXBlKDApLCB3YXNtRnJhbWVDb252ZW50aW9uLnJlc3Vs
dHNbMF0sIEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsKICAgICB9IGVsc2UgewogICAgICAgICBJ
bmRleGluZ1R5cGUgaW5kZXhpbmdUeXBlID0gQXJyYXlXaXRoVW5kZWNpZGVkOwotICAgICAgICBK
U1ZhbHVlUmVncyBzY3JhdGNoID0gSlNWYWx1ZVJlZ3MgeyB3YXNtQ2FsbGluZ0NvbnZlbnRpb24o
KS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdIH07CisgICAgICAgIEpTVmFsdWVSZWdzIHNjcmF0Y2hK
U1IgPSBKU1ZhbHVlUmVncyB7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIHdh
c21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMl0sCisjZW5kaWYKKyAg
ICAgICAgICAgIHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMV0K
KyAgICAgICAgfTsKKworICAgICAgICBBU1NFUlQoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkgIT0g
R1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBB
U1NFUlQoc2NyYXRjaEpTUi50YWdHUFIoKSAhPSBHUFJSZWc6OkludmFsaWRHUFJSZWcpOworICAg
ICAgICBBU1NFUlQoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkgIT0gc2NyYXRjaEpTUi50YWdHUFIo
KSk7CisjZW5kaWYKKwogICAgICAgICAvLyBXZSBjYW4gdXNlIHRoZSBmaXJzdCBmbG9hdGluZyBw
b2ludCByZWdpc3RlciBhcyBhIHNjcmF0Y2ggc2luY2UgaXQgd2lsbCBhbHdheXMgYmUgbW92ZWQg
b250byB0aGUgc3RhY2sgYmVmb3JlIG90aGVyIHZhbHVlcy4KLSAgICAgICAgRlBSUmVnIGZwclNj
cmF0Y2ggPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5mcHJBcmdzWzBdLmZwcigpOworICAgICAg
ICBGUFJSZWcgZnByU2NyYXRjaCA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpLmZwckFyZ3NbMF07
CiAgICAgICAgIGJvb2wgaGFzSTY0ID0gZmFsc2U7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBzaWduYXR1cmUucmV0dXJuQ291bnQoKTsgKytpKSB7CiAgICAgICAgICAgICBWYWx1
ZUxvY2F0aW9uIGxvYyA9IHdhc21GcmFtZUNvbnZlbnRpb24ucmVzdWx0c1tpXTsKICAgICAgICAg
ICAgIFR5cGUgdHlwZSA9IHNpZ25hdHVyZS5yZXR1cm5UeXBlKGkpOwogCiAgICAgICAgICAgICBo
YXNJNjQgfD0gdHlwZS5pc0k2NCgpOwotICAgICAgICAgICAgaWYgKGxvYy5pc1JlZygpKSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKCF0eXBlLmlzSTY0KCkpIHsKLSAgICAgICAgICAgICAgICAgICAg
Ym94V2FzbVJlc3VsdChqaXQsIHNpZ25hdHVyZS5yZXR1cm5UeXBlKGkpLCBsb2MucmVnKCksIHNj
cmF0Y2gpOwotICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNoLCBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2
ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MucmVnKCkpLT5vZmZzZXQoKSArIHdhc21GcmFtZUNv
bnZlbnRpb24uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSk7Ci0gICAgICAgICAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTVmFsdWVS
ZWdzIHsgbG9jLnJlZygpLmdwcigpIH0sIENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBl
cnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5y
ZWcoKSktPm9mZnNldCgpICsgd2FzbUZyYW1lQ29udmVudGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0
YWNrU2l6ZUluQnl0ZXMpKTsKKyAgICAgICAgICAgIGlmIChsb2MuaXNHUFIoKSB8fCBsb2MuaXNG
UFIoKSkgeworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgQVNTRVJUKCFs
b2MuaXNHUFIoKSB8fCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS5wYXlsb2Fk
R1BSKCkpLT5vZmZzZXQoKSArIDQgPT0gc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNy
KCkudGFnR1BSKCkpLT5vZmZzZXQoKSk7CisjZW5kaWYKKyAgICAgICAgICAgICAgICBhdXRvIGFk
ZHJlc3MgPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJS
ZWdpc3Rlciwgd2FzbUZyYW1lQ29udmVudGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUlu
Qnl0ZXMpOworICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZS5raW5kKSB7CisgICAgICAgICAg
ICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgorICAgICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6
OkY2NDoKKyAgICAgICAgICAgICAgICAgICAgYm94V2FzbVJlc3VsdChqaXQsIHR5cGUsIGxvYywg
c2NyYXRjaEpTUik7CisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2hK
U1IsIGFkZHJlc3Mud2l0aE9mZnNldChzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5mcHIo
KSktPm9mZnNldCgpKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDoKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFs
dWUobG9jLmpzcigpLCBhZGRyZXNzLndpdGhPZmZzZXQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmlu
ZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkpKTsKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAg
Ym94V2FzbVJlc3VsdChqaXQsIHR5cGUsIGxvYywgc2NyYXRjaEpTUik7CisgICAgICAgICAgICAg
ICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2hKU1IsIGFkZHJlc3Mud2l0aE9mZnNldChzYXZl
ZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSkp
OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGlmICghdHlwZS5pc0k2NCgpKSB7CiAgICAg
ICAgICAgICAgICAgICAgIGF1dG8gbG9jYXRpb24gPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0Nh
bGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgbG9jLm9mZnNldEZyb21TUCgpKTsKLSAg
ICAgICAgICAgICAgICAgICAgUmVnIHRtcCA9ICh0eXBlLmlzRjMyKCkgfHwgdHlwZS5pc0Y2NCgp
KSA/IFJlZyhmcHJTY3JhdGNoKSA6IFJlZyhzY3JhdGNoLmdwcigpKTsKLSAgICAgICAgICAgICAg
ICAgICAgaml0LmxvYWQ2NFRvUmVnKGxvY2F0aW9uLCB0bXApOwotICAgICAgICAgICAgICAgICAg
ICBib3hXYXNtUmVzdWx0KGppdCwgc2lnbmF0dXJlLnJldHVyblR5cGUoaSksIHRtcCwgc2NyYXRj
aCk7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2gsIGxvY2F0aW9u
KTsKKyAgICAgICAgICAgICAgICAgICAgVmFsdWVMb2NhdGlvbiB0bXA7CisgICAgICAgICAgICAg
ICAgICAgIHN3aXRjaCAodHlwZS5raW5kKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OkYzMjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFZhbHVlTG9jYXRpb24g
eyBmcHJTY3JhdGNoIH07CisgICAgICAgICAgICAgICAgICAgICAgICBqaXQubG9hZEZsb2F0KGxv
Y2F0aW9uLCBmcHJTY3JhdGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6CisgICAgICAgICAgICAgICAgICAg
ICAgICB0bXAgPSBWYWx1ZUxvY2F0aW9uIHsgZnByU2NyYXRjaCB9OworICAgICAgICAgICAgICAg
ICAgICAgICAgaml0LmxvYWREb3VibGUobG9jYXRpb24sIGZwclNjcmF0Y2gpOworICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6
OkkzMjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFZhbHVlTG9jYXRpb24geyBzY3Jh
dGNoSlNSIH07CisgICAgICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDMyKGxvY2F0aW9uLCBz
Y3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHRt
cCA9IFZhbHVlTG9jYXRpb24geyBzY3JhdGNoSlNSIH07CisgICAgICAgICAgICAgICAgICAgICAg
ICBqaXQubG9hZFZhbHVlKGxvY2F0aW9uLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IGJveFdhc21SZXN1bHQoaml0LCB0eXBlLCB0bXAsIHNjcmF0Y2hKU1IpOworICAgICAgICAgICAg
ICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNoSlNSLCBsb2NhdGlvbik7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQogCkBAIC0xMzYsMzcgKzE4NCw0NyBAQCB2b2lkIG1hcnNo
YWxsSlNSZXN1bHQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFR5cGVEZWZpbml0aW9uJiB0eXBl
RGVmaW5pdGlvbiwgYwogCiAgICAgICAgICAgICAgICAgR1BSUmVnIHdhc21Db250ZXh0SW5zdGFu
Y2VHUFIgPSBQaW5uZWRSZWdpc3RlckluZm86OmdldCgpLndhc21Db250ZXh0SW5zdGFuY2VQb2lu
dGVyOwogICAgICAgICAgICAgICAgIGlmIChDb250ZXh0Ojp1c2VGYXN0VExTKCkpIHsKLSAgICAg
ICAgICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IEdQUkluZm86OmFyZ3VtZW50
R1BSMTsKLSAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWVfdjxX
YXNtOjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPGRlY2x0eXBlKG9wZXJhdGlv
bkFsbG9jYXRlUmVzdWx0c0FycmF5KT46OkFyZ3VtZW50VHlwZTwxPj4pOworICAgICAgICAgICAg
ICAgICAgICB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gcHJlZmVycmVkQXJndW1lbnRHUFI8ZGVj
bHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KSwgMT4oKTsKKyAgICAgICAgICAgICAgICAg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWVfdjxXYXNtOjpJbnN0YW5jZSosIHR5cGVuYW1l
IEZ1bmN0aW9uVHJhaXRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+OjpBcmd1
bWVudFR5cGU8MT4+KTsKICAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4dElu
c3RhbmNlKHdhc21Db250ZXh0SW5zdGFuY2VHUFIpOwogICAgICAgICAgICAgICAgIH0KIAotICAg
ICAgICAgICAgICAgIGlmIChsb2MuaXNSZWcoKSkKLSAgICAgICAgICAgICAgICAgICAgaml0Lmxv
YWQ2NChDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdp
c3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MucmVnKCkpLT5vZmZzZXQoKSArIHdh
c21GcmFtZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg
ICAgICAgICAgYXV0byBsb2NhdGlvbiA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBl
cnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBsb2Mub2Zmc2V0RnJvbVNQKCkpOwotICAgICAgICAg
ICAgICAgICAgICBqaXQubG9hZDY0VG9SZWcobG9jYXRpb24sIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50
czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPih3YXNtQ29udGV4dEluc3RhbmNl
R1BSLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAgICAgICAgICAgIGNvbnN0ZXhwciBK
U1ZhbHVlUmVncyB2YWx1ZUpTUiA9IHByZWZlcnJlZEFyZ3VtZW50SlNSPGRlY2x0eXBlKG9wZXJh
dGlvbkNvbnZlcnRUb0JpZ0ludCksIDI+KCk7CisKKyAgICAgICAgICAgICAgICBDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MgYWRkcmVzcyB7IENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIg
fTsKKyAgICAgICAgICAgICAgICBpZiAobG9jLmlzR1BSKCkgfHwgbG9jLmlzRlBSKCkpIHsKKyNp
ZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgICAgICBBU1NFUlQoc2F2ZWRSZXN1
bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkgKyA0ID09
IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnRhZ0dQUigpKS0+b2Zmc2V0KCkp
OworI2VuZGlmCisgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSBhZGRyZXNzLndpdGhPZmZz
ZXQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zm
c2V0KCkgKyB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5C
eXRlcyk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIGFkZHJl
c3MgPSBhZGRyZXNzLndpdGhPZmZzZXQobG9jLm9mZnNldEZyb21TUCgpKTsKKworICAgICAgICAg
ICAgICAgIGppdC5sb2FkVmFsdWUoYWRkcmVzcywgdmFsdWVKU1IpOworICAgICAgICAgICAgICAg
IGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPih3
YXNtQ29udGV4dEluc3RhbmNlR1BSLCB2YWx1ZUpTUik7CiAgICAgICAgICAgICAgICAgaml0LmNh
bGxPcGVyYXRpb24oRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25Db252ZXJ0
VG9CaWdJbnQpKTsKLSAgICAgICAgICAgICAgICBpZiAobG9jLmlzUmVnKCkpCi0gICAgICAgICAg
ICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIgfSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVy
UmVnaXN0ZXIsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLnJlZygpKS0+b2Zmc2V0KCkg
KyB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcykp
OwotICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICBhdXRvIGxvY2F0
aW9uID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVn
aXN0ZXIsIGxvYy5vZmZzZXRGcm9tU1AoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5zdG9y
ZVZhbHVlKEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIgfSwgbG9jYXRpb24p
OwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1JJ
bmZvOjpyZXR1cm5WYWx1ZUpTUiwgYWRkcmVzcyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
IAogICAgICAgICBHUFJSZWcgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IFBpbm5lZFJlZ2lzdGVy
SW5mbzo6Z2V0KCkud2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXI7CiAgICAgICAgIGlmIChDb250
ZXh0Ojp1c2VGYXN0VExTKCkpIHsKLSAgICAgICAgICAgIHdhc21Db250ZXh0SW5zdGFuY2VHUFIg
PSBHUFJJbmZvOjphcmd1bWVudEdQUjE7CisgICAgICAgICAgICB3YXNtQ29udGV4dEluc3RhbmNl
R1BSID0gcHJlZmVycmVkQXJndW1lbnRHUFI8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1
bHRzQXJyYXkpLCAxPigpOwogICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWVf
djxXYXNtOjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPGRlY2x0eXBlKG9wZXJh
dGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KT46OkFyZ3VtZW50VHlwZTwxPj4pOwogICAgICAgICAg
ICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHdhc21Db250ZXh0SW5zdGFuY2VHUFIpOwog
ICAgICAgICB9CiAKLSAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlv
bkFsbG9jYXRlUmVzdWx0c0FycmF5KT4od2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tUHRyKCZ0eXBlRGVmaW5pdGlvbiksIGluZGV4aW5nVHlwZSwgQ0NhbGxI
ZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIGNvbnN0ZXhwciBHUFJSZWcg
c2F2ZWRSZXN1bHRzR1BSID0gcHJlZmVycmVkQXJndW1lbnRHUFI8ZGVjbHR5cGUob3BlcmF0aW9u
QWxsb2NhdGVSZXN1bHRzQXJyYXkpLCA0PigpOworICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBl
cnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJlc3VsdHNHUFIpOworICAgICAgICBpZiBj
b25zdGV4cHIgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICAgICAgaml0
LnN1YlB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbCksIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBB
U1NFUlQod2FzbUNvbnRleHRJbnN0YW5jZUdQUiAhPSBzYXZlZFJlc3VsdHNHUFIpOworICAgICAg
ICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJy
YXkpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIo
JnR5cGVEZWZpbml0aW9uKSwgaW5kZXhpbmdUeXBlLCBzYXZlZFJlc3VsdHNHUFIpOwogICAgICAg
ICBqaXQuY2FsbE9wZXJhdGlvbihGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlv
bkFsbG9jYXRlUmVzdWx0c0FycmF5KSk7CisgICAgICAgIGlmIGNvbnN0ZXhwciAobWF4RnJhbWVF
eHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAgICBqaXQuYWRkUHRyKENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgQ0NhbGxIZWxw
ZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisKKyAgICAgICAgaml0LmJveENlbGwoR1BSSW5m
bzo6cmV0dXJuVmFsdWVHUFIsIEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsKICAgICB9CiB9CiAK
QEAgLTE3OCw3ICsyMzYsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+IGNy
ZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QKICAgICAvLyBGSVhN
RSBTdG9wIHVzaW5nIDAgYXMgY29kZUJsb2Nrcy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2NTMyMQogICAgIGppdC5lbWl0WmVyb1RvQ2FsbEZyYW1lSGVhZGVyKENh
bGxGcmFtZVNsb3Q6OmNvZGVCbG9jayk7CiAgICAgTWFjcm9Bc3NlbWJsZXI6OkRhdGFMYWJlbFB0
ciBjYWxsZWVNb3ZlTG9jYXRpb24gPSBqaXQubW92ZVdpdGhQYXRjaChNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbVB0cihudWxscHRyKSwgR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BS
KTsKLSAgICBqaXQuZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKEdQUkluZm86Om5vblByZXNlcnZl
ZE5vblJldHVybkdQUiwgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAgICBDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MgY2FsbGVlU2xvdCB7IEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJh
bWVTbG90OjpjYWxsZWUgKiBzaXplb2YoUmVnaXN0ZXIpIH07CisgICAgaml0LnN0b3JlUHRyKEdQ
UkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQUiwgY2FsbGVlU2xvdC53aXRoT2Zmc2V0KFBh
eWxvYWRPZmZzZXQpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGppdC5zdG9yZTMyKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6Oldhc21UYWcpLCBjYWxsZWVTbG90Lndp
dGhPZmZzZXQoVGFnT2Zmc2V0KSk7CisjZW5kaWYKICAgICBWZWN0b3I8Q29kZUxvY2F0aW9uRGF0
YUxhYmVsUHRyPFdhc21FbnRyeVB0clRhZz4+KiBsaW5rZWRDYWxsZWVNb3ZlID0gJnJlc3VsdC0+
Y2FsbGVlTW92ZUxvY2F0aW9uczsKICAgICBqaXQuYWRkTGlua1Rhc2soWz1dIChMaW5rQnVmZmVy
JiBsaW5rQnVmZmVyKSB7CiAgICAgICAgIGxpbmtlZENhbGxlZU1vdmUtPmFwcGVuZChsaW5rQnVm
ZmVyLmxvY2F0aW9uT2Y8V2FzbUVudHJ5UHRyVGFnPihjYWxsZWVNb3ZlTG9jYXRpb24pKTsKQEAg
LTIyMyw5ICsyODUsMTIgQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+IGNyZWF0
ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QKIAogICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MgY2FsbGVlRnJhbWUgPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoTWFj
cm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCAwKTsKIAotICAgICAgICAvLyBXZSdy
ZSBnb2luZyB0byBzZXQgdGhlIHBpbm5lZCByZWdpc3RlcnMgYWZ0ZXIgdGhpcy4gU28KLSAgICAg
ICAgLy8gd2UgY2FuIHVzZSB0aGlzIGFzIGEgc2NyYXRjaCBmb3Igbm93IHNpbmNlIHdlIHNhdmVk
IGl0IGFib3ZlLgotICAgICAgICBHUFJSZWcgc2NyYXRjaFJlZyA9IHBpbm5lZFJlZ3MuYmFzZU1l
bW9yeVBvaW50ZXI7CisgICAgICAgIEpTVmFsdWVSZWdzIHNjcmF0Y2hKU1IgeworI2lmIFVTRShK
U1ZBTFVFMzJfNjQpCisgICAgICAgICAgICB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1
ZVNjcmF0Y2hHUFJzWzJdLAorI2VuZGlmCisgICAgICAgICAgICB3YXNtQ2FsbGluZ0NvbnZlbnRp
b24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdCisgICAgICAgIH07CiAKICAgICAgICAgaWYgKCFD
b250ZXh0Ojp1c2VGYXN0VExTKCkpIHsKICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVs
cGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNDYWxsaW5nQ29udmVu
dGlvbjo6aW5zdGFuY2VTdGFja09mZnNldCksIHdhc21Db250ZXh0SW5zdGFuY2VHUFIpOwpAQCAt
MjM5LDIyICszMDQsMzQgQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+IGNyZWF0
ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QKICAgICAgICAgICAgIFR5
cGUgdHlwZSA9IHNpZ25hdHVyZS5hcmd1bWVudFR5cGUoaSk7CiAgICAgICAgICAgICBDQ2FsbEhl
bHBlcnM6OkFkZHJlc3MganNQYXJhbShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwganNGcmFt
ZUNvbnZlbnRpb24ucGFyYW1zW2ldLm9mZnNldEZyb21GUCgpKTsKICAgICAgICAgICAgIGlmICh3
YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5pc1N0YWNrQXJndW1lbnQoKSkgeworICAgICAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBhZGRyIHsgY2FsbGVlRnJhbWUud2l0aE9m
ZnNldCh3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkgfTsKICAg
ICAgICAgICAgICAgICBpZiAodHlwZS5pc0kzMigpIHx8IHR5cGUuaXNGMzIoKSkgewotICAgICAg
ICAgICAgICAgICAgICBqaXQubG9hZDMyKGpzUGFyYW0sIHNjcmF0Y2hSZWcpOwotICAgICAgICAg
ICAgICAgICAgICBqaXQuc3RvcmUzMihzY3JhdGNoUmVnLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0
KHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSk7CisgICAgICAg
ICAgICAgICAgICAgIGppdC5sb2FkMzIoanNQYXJhbSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkp
OworICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihzY3JhdGNoSlNSLnBheWxvYWRHUFIo
KSwgYWRkci53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0
KQorICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW0zMigwKSwgYWRkci53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworI2VuZGlmCiAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBz
Y3JhdGNoUmVnKTsKLSAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlNjQoc2NyYXRjaFJlZywg
Y2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5vZmZz
ZXRGcm9tU1AoKSkpOworICAgICAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpzUGFyYW0s
IHNjcmF0Y2hKU1IpOworICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNo
SlNSLCBhZGRyKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgIGlmICh0eXBlLmlzSTMyKCkgfHwgdHlwZS5pc0YzMigpKQotICAgICAgICAg
ICAgICAgICAgICBqaXQubG9hZDMyVG9SZWcoanNQYXJhbSwgd2FzbUZyYW1lQ29udmVudGlvbi5w
YXJhbXNbaV0ucmVnKCkpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAg
ICAgaml0LmxvYWQ2NFRvUmVnKGpzUGFyYW0sIHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ld
LnJlZygpKTsKKyAgICAgICAgICAgICAgICBpZiAodHlwZS5pc0YzMigpKQorICAgICAgICAgICAg
ICAgICAgICBqaXQubG9hZEZsb2F0KGpzUGFyYW0sIHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1z
W2ldLmZwcigpKTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlLmlzRjY0KCkpCisgICAg
ICAgICAgICAgICAgICAgIGppdC5sb2FkRG91YmxlKGpzUGFyYW0sIHdhc21GcmFtZUNvbnZlbnRp
b24ucGFyYW1zW2ldLmZwcigpKTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlLmlzSTMy
KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQzMihqc1BhcmFtLCB3YXNtRnJhbWVD
b252ZW50aW9uLnBhcmFtc1tpXS5qc3IoKS5wYXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVF
MzJfNjQpCisgICAgICAgICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbTMyKDApLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5qc3IoKS50YWdHUFIoKSk7
CisjZW5kaWYKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgaml0
LmxvYWRWYWx1ZShqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5qc3IoKSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKKyNpZiAhQ1BVKEFSTSkgLy8gQVJN
IGhhcyBubyBwaW5uZWQgcmVnaXN0ZXJzIGZvciBXYXNtIE1lbW9yeSwgc28gbm8gbmVlZCB0byBz
ZXQgdGhlbSB1cAogICAgIGlmICghIWluZm8ubWVtb3J5KSB7CiAgICAgICAgIEdQUlJlZyBiYXNl
TWVtb3J5ID0gcGlubmVkUmVncy5iYXNlTWVtb3J5UG9pbnRlcjsKICAgICAgICAgR1BSUmVnIHNp
emUgPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzBdOwpAQCAt
MjY1LDE3ICszNDIsMTggQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+IGNyZWF0
ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QKIAogICAgICAgICBHUFJS
ZWcgY3VycmVudEluc3RhbmNlR1BSID0gQ29udGV4dDo6dXNlRmFzdFRMUygpID8gYmFzZU1lbW9y
eSA6IHdhc21Db250ZXh0SW5zdGFuY2VHUFI7CiAgICAgICAgIGlmIChpc0FSTTY0RSgpKSB7Ci0g
ICAgICAgICAgICBpZiAobW9kZSAhPSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmcpCisgICAg
ICAgICAgICBpZiAobW9kZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykKICAg
ICAgICAgICAgICAgICBzaXplID0gcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3Rl
cjsKICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhjdXJyZW50
SW5zdGFuY2VHUFIsIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZEJvdW5kc0NoZWNraW5n
U2l6ZSgpKSwgc2l6ZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAobW9kZSAh
PSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmcpCisgICAgICAgICAgICBpZiAobW9kZSA9PSBX
YXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykKICAgICAgICAgICAgICAgICBqaXQubG9h
ZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoY3VycmVudEluc3RhbmNlR1BSLCBXYXNtOjpJbnN0
YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHNDaGVja2luZ1NpemUoKSksIHBpbm5lZFJlZ3MuYm91
bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIpOwogICAgICAgICB9CiAKICAgICAgICAgaml0LmxvYWRQ
dHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGN1cnJlbnRJbnN0YW5jZUdQUiwgV2FzbTo6SW5zdGFu
Y2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNlTWVtb3J5KTsKICAgICAgICAgaml0LmNh
Z2VDb25kaXRpb25hbGx5QW5kVW50YWcoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwg
c2l6ZSwgc2NyYXRjaCk7CiAgICAgfQorI2VuZGlmCiAKICAgICBDQ2FsbEhlbHBlcnM6OkNhbGwg
Y2FsbCA9IGppdC50aHJlYWRTYWZlUGF0Y2hhYmxlTmVhckNhbGwoKTsKICAgICB1bnNpZ25lZCBm
dW5jdGlvbkluZGV4U3BhY2UgPSBmdW5jdGlvbkluZGV4ICsgaW5mby5pbXBvcnRGdW5jdGlvbkNv
dW50KCk7CkBAIC0yODgsNyArMzY2LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rp
b24+IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QKIAogICAg
IGZvciAoY29uc3QgUmVnaXN0ZXJBdE9mZnNldCYgcmVnQXRPZmZzZXQgOiByZWdpc3RlcnNUb1Nw
aWxsKSB7CiAgICAgICAgIEdQUlJlZyByZWcgPSByZWdBdE9mZnNldC5yZWcoKS5ncHIoKTsKLSAg
ICAgICAgQVNTRVJUKHJlZyAhPSBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgIEFT
U0VSVCghSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IudXNlcyhyZWcpKTsKICAgICAgICAgcHRyZGlm
Zl90IG9mZnNldCA9IHJlZ0F0T2Zmc2V0Lm9mZnNldCgpOwogICAgICAgICBqaXQubG9hZFB0cihD
Q2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIG9mZnNldCks
IHJlZyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2FzbVRvSlMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2FzbVRvSlMuY3Bw
CmluZGV4IDY1OTQ1ZGMxNTdjZS4uZTg1ZWM5YTIyNjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2FzbVRvSlMuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ0Nh
bGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiSlNXZWJBc3NlbWJseUluc3RhbmNlLmgiCiAjaW5jbHVk
ZSAiTGlua0J1ZmZlci5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxs
LmgiCiAjaW5jbHVkZSAiVGh1bmtHZW5lcmF0b3JzLmgiCiAjaW5jbHVkZSAiV2FzbUNhbGxpbmdD
b252ZW50aW9uLmgiCiAjaW5jbHVkZSAiV2FzbUNvbnRleHRJbmxpbmVzLmgiCkBAIC02OSw3ICs3
MCw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBC
aW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgLy8gSWYgd2UgZXZlciBjaGFuZ2Ug
dGhpcywgd2Ugd2lsbCBhbHNvIG5lZWQgdG8gY2hhbmdlIFdhc21CM0lSR2VuZXJhdG9yLgogCiAg
ICAgLy8gQmVsb3csIHdlIGFzc3VtZSB0aGF0IHRoZSBKUyBjYWxsaW5nIGNvbnZlbnRpb24gaXMg
YWx3YXlzIG9uIHRoZSBzdGFjay4KLSAgICBBU1NFUlQoIWpzQ0MuZ3ByQXJncy5zaXplKCkpOwor
ICAgIEFTU0VSVCghanNDQy5qc3JBcmdzLnNpemUoKSk7CiAgICAgQVNTRVJUKCFqc0NDLmZwckFy
Z3Muc2l6ZSgpKTsKIAogICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwpAQCAtODYsMTQg
Kzg3LDIyIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+
LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgLy8gZm9yIHVzIGhlcmUuCiAK
ICAgICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlBhcmFtZXRlcnMgPSBhcmdDb3VudCArIDE7IC8v
IFRoZXJlIGlzIGEgInRoaXMiIGFyZ3VtZW50LgotICAgIGNvbnN0IHVuc2lnbmVkIG51bWJlck9m
UmVnc0ZvckNhbGwgPSBDYWxsRnJhbWU6OmhlYWRlclNpemVJblJlZ2lzdGVycyArIG51bWJlck9m
UGFyYW1ldGVyczsKKyAgICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlJlZ3NGb3JDYWxsID0gQ2Fs
bEZyYW1lOjpoZWFkZXJTaXplSW5SZWdpc3RlcnMgKyByb3VuZEFyZ3VtZW50Q291bnRUb0FsaWdu
RnJhbWUobnVtYmVyT2ZQYXJhbWV0ZXJzKTsKKyAgICBBU1NFUlQoIShudW1iZXJPZlJlZ3NGb3JD
YWxsICUgc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSkpOwogICAgIGNvbnN0IHVuc2lnbmVkIG51
bWJlck9mQnl0ZXNGb3JDYWxsID0gbnVtYmVyT2ZSZWdzRm9yQ2FsbCAqIHNpemVvZihSZWdpc3Rl
cikgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQyk7Ci0gICAgY29uc3QgdW5zaWduZWQgc3RhY2tP
ZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRCeXRlcygpLCBz
dGQ6Om1heDx1bnNpZ25lZD4obnVtYmVyT2ZCeXRlc0ZvckNhbGwsIHNhdmVkUmVzdWx0UmVnaXN0
ZXJzLnNpemVPZkFyZWFJbkJ5dGVzKCkpKTsKKyAgICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkJ5
dGVzRm9yU2F2ZWRSZXN1bHRzID0gc2F2ZWRSZXN1bHRSZWdpc3RlcnMuc2l6ZU9mQXJlYUluQnl0
ZXMoKTsKKyAgICBjb25zdCB1bnNpZ25lZCBzdGFja09mZnNldCA9IFdURjo6cm91bmRVcFRvTXVs
dGlwbGVPZihzdGFja0FsaWdubWVudEJ5dGVzKCksIHN0ZDo6bWF4KG51bWJlck9mQnl0ZXNGb3JD
YWxsLCBudW1iZXJPZkJ5dGVzRm9yU2F2ZWRSZXN1bHRzKSk7CiAgICAgaml0LnN1YlB0cihNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHN0YWNrT2Zmc2V0KSwgTWFjcm9Bc3NlbWJsZXI6OnN0
YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICBKSVQ6OkFkZHJlc3MgY2FsbGVlRnJhbWUgPSBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCAt
c3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKIAogICAg
IC8vIEZJWE1FIG1ha2UgdGhlc2UgbG9vcHMgd2hpY2ggc3dpdGNoIG9uIHNpZ25hdHVyZSBpZiB0
aGVyZSBhcmUgbWFueSBhcmd1bWVudHMgb24gdGhlIHN0YWNrLiBJdCdsbCBvdGhlcndpc2UgYmUg
aHVnZSBmb3IgaHVnZSB0eXBlIGRlZmluaXRpb25zLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY1NTQ3CiAKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIGNvbnN0ZXhw
ciBKU1ZhbHVlUmVncyBqc0FyZzEwIHsgR1BSSW5mbzo6YXJndW1lbnRHUFIwIH07CisjZWxpZiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgIGNvbnN0ZXhwciBKU1ZhbHVlUmVncyBqc0FyZzEwIHsgR1BS
SW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjphcmd1bWVudEdQUjAgfTsKKyNlbmRpZgorCiAg
ICAgLy8gRmlyc3QgZ28gdGhyb3VnaCB0aGUgaW50ZWdlciBwYXJhbWV0ZXJzLCBmcmVlaW5nIHVw
IHRoZWlyIHJlZ2lzdGVyIGZvciB1c2UgYWZ0ZXJ3YXJkcy4KICAgICB7CiAgICAgICAgIHVuc2ln
bmVkIG1hcnNoYWxsZWRHUFJzID0gMDsKQEAgLTExNCwyMSArMTIzLDIxIEBAIEV4cGVjdGVkPE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2Fz
bVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOgogICAgICAg
ICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0
OiB7Ci0gICAgICAgICAgICAgICAgR1BSUmVnIGdwclJlZzsKLSAgICAgICAgICAgICAgICBpZiAo
bWFyc2hhbGxlZEdQUnMgPCB3YXNtQ0MuZ3ByQXJncy5zaXplKCkpCi0gICAgICAgICAgICAgICAg
ICAgIGdwclJlZyA9IHdhc21DQy5ncHJBcmdzW21hcnNoYWxsZWRHUFJzXS5ncHIoKTsKKyAgICAg
ICAgICAgICAgICBKU1ZhbHVlUmVncyBhcmdSZWc7CisgICAgICAgICAgICAgICAgaWYgKG1hcnNo
YWxsZWRHUFJzIDwgd2FzbUNDLmpzckFyZ3Muc2l6ZSgpKQorICAgICAgICAgICAgICAgICAgICBh
cmdSZWcgPSB3YXNtQ0MuanNyQXJnc1ttYXJzaGFsbGVkR1BSc107CiAgICAgICAgICAgICAgICAg
ZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgc3BpbGxlZCBhbGwg
YXJndW1lbnRzLCB0aGVzZSByZWdpc3RlcnMgYXJlIGF2YWlsYWJsZSBhcyBzY3JhdGNoLgotICAg
ICAgICAgICAgICAgICAgICBncHJSZWcgPSBHUFJJbmZvOjphcmd1bWVudEdQUjA7Ci0gICAgICAg
ICAgICAgICAgICAgIGppdC5sb2FkNjQoSklUOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJl
Z2lzdGVyLCBmck9mZnNldCksIGdwclJlZyk7CisgICAgICAgICAgICAgICAgICAgIGFyZ1JlZyA9
IGpzQXJnMTA7CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoSklUOjpBZGRyZXNz
KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBmck9mZnNldCksIGFyZ1JlZyk7CiAgICAgICAg
ICAgICAgICAgICAgIGZyT2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICsrbWFyc2hhbGxlZEdQUnM7CiAgICAgICAgICAgICAgICAg
aWYgKGFyZ1R5cGUuaXNJMzIoKSkgewotICAgICAgICAgICAgICAgICAgICBqaXQuemVyb0V4dGVu
ZDMyVG9Xb3JkKGdwclJlZywgZ3ByUmVnKTsgLy8gQ2xlYXIgbm9uLWludDMyIGFuZCBub24tdGFn
IGJpdHMuCi0gICAgICAgICAgICAgICAgICAgIGppdC5ib3hJbnQzMihncHJSZWcsIEpTVmFsdWVS
ZWdzKGdwclJlZyksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAgICAgICAgICAg
IGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoYXJnUmVnLnBheWxvYWRHUFIoKSwgYXJnUmVnLnBheWxv
YWRHUFIoKSk7IC8vIENsZWFyIG5vbi1pbnQzMiBhbmQgbm9uLXRhZyBiaXRzLgorICAgICAgICAg
ICAgICAgICAgICBqaXQuYm94SW50MzIoYXJnUmVnLnBheWxvYWRHUFIoKSwgYXJnUmVnLCBEb05v
dEhhdmVUYWdSZWdpc3RlcnMpOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBq
aXQuc3RvcmU2NChncHJSZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZz
ZXQpKTsKKyAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShhcmdSZWcsIGNhbGxlZUZyYW1l
LndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsKICAgICAgICAgICAgICAgICBjYWxsZWVG
cmFtZU9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQpAQCAtMTQ1LDYgKzE1NCw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVy
Q29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZt
CiAgICAgfQogICAgIAogICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAvLyBJbnRl
Z2VyIHJlZ2lzdGVycyBoYXZlIGFscmVhZHkgYmVlbiBzcGlsbGVkLCB0aGVzZSBhcmUgbm93IGF2
YWlsYWJsZS4KICAgICAgICAgR1BSUmVnIGRvdWJsZUVuY29kZU9mZnNldEdQUlJlZyA9IEdQUklu
Zm86OmFyZ3VtZW50R1BSMDsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2ggPSBHUFJJbmZvOjphcmd1
bWVudEdQUjE7CkBAIC0xNjAsNiArMTcwLDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAg
ICAgICAgICAgICAgICBoYXNNYXRlcmlhbGl6ZWREb3VibGVFbmNvZGVPZmZzZXQgPSB0cnVlOwog
ICAgICAgICAgICAgfQogICAgICAgICB9OworI2VuZGlmCiAKICAgICAgICAgdW5zaWduZWQgbWFy
c2hhbGxlZEdQUnMgPSAwOwogICAgICAgICB1bnNpZ25lZCBtYXJzaGFsbGVkRlBScyA9IDA7CkBA
IC0xNjgsMTAgKzE3OSwxNCBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVu
dHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogCiAgICAgICAgIGF1
dG8gbWFyc2hhbGxGUFIgPSBbJl0gKEZQUlJlZyBmcHJSZWcpIHsKICAgICAgICAgICAgIGppdC5w
dXJpZnlOYU4oZnByUmVnKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgaml0Lm1v
dmVEb3VibGVUbzY0KGZwclJlZywgc2NyYXRjaCk7CiAgICAgICAgICAgICBtYXRlcmlhbGl6ZURv
dWJsZUVuY29kZU9mZnNldChkb3VibGVFbmNvZGVPZmZzZXRHUFJSZWcpOwogICAgICAgICAgICAg
aml0LmFkZDY0KGRvdWJsZUVuY29kZU9mZnNldEdQUlJlZywgc2NyYXRjaCk7CiAgICAgICAgICAg
ICBqaXQuc3RvcmU2NChzY3JhdGNoLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1l
T2Zmc2V0KSk7CisjZWxzZQorICAgICAgICAgICAgaml0LnN0b3JlRG91YmxlKGZwclJlZywgY2Fs
bGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCkpOworI2VuZGlmCiAgICAgICAg
ICAgICBjYWxsZWVGcmFtZU9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOwogICAgICAgICAgICAg
KyttYXJzaGFsbGVkRlBSczsKICAgICAgICAgfTsKQEAgLTE5MSw3ICsyMDYsNyBAQCBFeHBlY3Rl
ZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+
IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgogICAgICAg
ICAgICAgY2FzZSBUeXBlS2luZDo6STY0OiB7CiAgICAgICAgICAgICAgICAgLy8gU2tpcHBlZDog
aGFuZGxlZCBhYm92ZS4KLSAgICAgICAgICAgICAgICBpZiAobWFyc2hhbGxlZEdQUnMgPj0gd2Fz
bUNDLmdwckFyZ3Muc2l6ZSgpKQorICAgICAgICAgICAgICAgIGlmIChtYXJzaGFsbGVkR1BScyA+
PSB3YXNtQ0MuanNyQXJncy5zaXplKCkpCiAgICAgICAgICAgICAgICAgICAgIGZyT2Zmc2V0ICs9
IHNpemVvZihSZWdpc3Rlcik7CiAgICAgICAgICAgICAgICAgKyttYXJzaGFsbGVkR1BSczsKICAg
ICAgICAgICAgICAgICBjYWxsZWVGcmFtZU9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOwpAQCAt
MjAwLDcgKzIxNSw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQ
dHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBjYXNl
IFR5cGVLaW5kOjpGMzI6IHsKICAgICAgICAgICAgICAgICBGUFJSZWcgZnByUmVnOwogICAgICAg
ICAgICAgICAgIGlmIChtYXJzaGFsbGVkRlBScyA8IHdhc21DQy5mcHJBcmdzLnNpemUoKSkKLSAg
ICAgICAgICAgICAgICAgICAgZnByUmVnID0gd2FzbUNDLmZwckFyZ3NbbWFyc2hhbGxlZEZQUnNd
LmZwcigpOworICAgICAgICAgICAgICAgICAgICBmcHJSZWcgPSB3YXNtQ0MuZnByQXJnc1ttYXJz
aGFsbGVkRlBSc107CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAg
IC8vIFdlJ3ZlIGFscmVhZHkgc3BpbGxlZCBhbGwgYXJndW1lbnRzLCB0aGVzZSByZWdpc3RlcnMg
YXJlIGF2YWlsYWJsZSBhcyBzY3JhdGNoLgogICAgICAgICAgICAgICAgICAgICBmcHJSZWcgPSBG
UFJJbmZvOjphcmd1bWVudEZQUjA7CkBAIC0yMTQsNyArMjI5LDcgQEAgRXhwZWN0ZWQ8TWFjcm9B
c3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9K
UyhWTSYgdm0KICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2NDogewogICAgICAgICAgICAg
ICAgIEZQUlJlZyBmcHJSZWc7CiAgICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRGUFJzIDwg
d2FzbUNDLmZwckFyZ3Muc2l6ZSgpKQotICAgICAgICAgICAgICAgICAgICBmcHJSZWcgPSB3YXNt
Q0MuZnByQXJnc1ttYXJzaGFsbGVkRlBSc10uZnByKCk7CisgICAgICAgICAgICAgICAgICAgIGZw
clJlZyA9IHdhc21DQy5mcHJBcmdzW21hcnNoYWxsZWRGUFJzXTsKICAgICAgICAgICAgICAgICBl
bHNlIHsKICAgICAgICAgICAgICAgICAgICAgLy8gV2UndmUgYWxyZWFkeSBzcGlsbGVkIGFsbCBh
cmd1bWVudHMsIHRoZXNlIHJlZ2lzdGVycyBhcmUgYXZhaWxhYmxlIGFzIHNjcmF0Y2guCiAgICAg
ICAgICAgICAgICAgICAgIGZwclJlZyA9IEZQUkluZm86OmFyZ3VtZW50RlBSMDsKQEAgLTIzNiwx
MiArMjUxLDE1IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJU
YWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgIHVuc2lnbmVkIGNh
bGxlZUZyYW1lT2Zmc2V0ID0gQ2FsbEZyYW1lU2xvdDo6Zmlyc3RBcmd1bWVudCAqIHN0YXRpY19j
YXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSk7CiAgICAgICAgIGZvciAodW5zaWduZWQgYXJnTnVt
ID0gMDsgYXJnTnVtIDwgYXJnQ291bnQ7ICsrYXJnTnVtKSB7CiAgICAgICAgICAgICBpZiAoc2ln
bmF0dXJlLmFyZ3VtZW50VHlwZShhcmdOdW0pLmlzSTY0KCkpIHsKLSAgICAgICAgICAgICAgICBq
aXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2UoR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAg
ICAgICAgICAgICBqaXQubG9hZDY0KGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVP
ZmZzZXQpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAgICAgICAgICAgICAgIGppdC5zZXR1
cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPihHUFJJbmZvOjph
cmd1bWVudEdQUjAsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAgICAgICAgICAgdXNp
bmcgT3BlcmF0aW9uID0gZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KTsKKyAgICAg
ICAgICAgICAgICBjb25zdGV4cHIgR1BSUmVnIHdhc21JbnN0YW5jZUdQUiA9IHByZWZlcnJlZEFy
Z3VtZW50R1BSPE9wZXJhdGlvbiwgMT4oKTsKKyAgICAgICAgICAgICAgICBjb25zdGV4cHIgSlNW
YWx1ZVJlZ3MgdmFsdWVKU1IgPSBwcmVmZXJyZWRBcmd1bWVudEpTUjxPcGVyYXRpb24sIDI+KCk7
CisgICAgICAgICAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHdhc21JbnN0YW5j
ZUdQUik7CisgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShjYWxsZWVGcmFtZS53aXRoT2Zm
c2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSwgdmFsdWVKU1IpOworICAgICAgICAgICAgICAgIGppdC5z
ZXR1cEFyZ3VtZW50czxPcGVyYXRpb24+KHdhc21JbnN0YW5jZUdQUiwgdmFsdWVKU1IpOwogICAg
ICAgICAgICAgICAgIGF1dG8gY2FsbCA9IGppdC5jYWxsKE9wZXJhdGlvblB0clRhZyk7CiAgICAg
ICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1bXBJZkV4Y2VwdGlv
bih2bSkpOwotICAgICAgICAgICAgICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJldHVyblZhbHVl
R1BSLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSk7CisgICAgICAg
ICAgICAgICAgaml0LnN0b3JlVmFsdWUoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIGNhbGxlZUZy
YW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsKICAgICAgICAgICAgICAgICBqaXQu
YWRkTGlua1Rhc2soWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CiAgICAgICAgICAgICAg
ICAgICAgIGxpbmtCdWZmZXIubGluayhjYWxsLCBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+
KG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCkpOwogICAgICAgICAgICAgICAgIH0pOwpAQCAtMjUz
LDE2ICsyNzEsMjIgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0
clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICBqaXQubG9hZFdhc21D
b250ZXh0SW5zdGFuY2UoR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBqaXQubG9hZFB0cihD
Q2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBJbnN0YW5jZTo6b2Zm
c2V0T2ZPd25lcigpKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBqaXQubG9hZFB0cihD
Q2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBKU1dlYkFzc2VtYmx5
SW5zdGFuY2U6Om9mZnNldE9mTW9kdWxlKCkpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAg
IGppdC5lbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBDYWxs
RnJhbWVTbG90OjpjYWxsZWUpOwotCi0gICAgR1BSUmVnIGltcG9ydEpTQ2VsbEdQUlJlZyA9IEdQ
UkluZm86OnJlZ1QwOyAvLyBDYWxsZWUgbmVlZHMgdG8gYmUgaW4gcmVnVDAgZm9yIHNsb3cgcGF0
aCBiZWxvdy4KKyAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgY2FsbGVlU2xvdCB7IEdQUkluZm86
OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWVTbG90OjpjYWxsZWUgICogc2l6ZW9mKFJlZ2lz
dGVyKSB9OworICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjphcmd1bWVudEdQUjAsIGNhbGxlZVNs
b3QpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIGNhbGxlZVNsb3Qud2l0aE9mZnNldChU
YWdPZmZzZXQpKTsKKyNlbmRpZgogCisgICAgLy8ganNBcmcxMCBtaWdodCBvdmVybGFwIHdpdGgg
cmVnVDAsIHNvIHN0b3JlICd0aGlzJyBhcmd1bWVudCBmaXJzdAorICAgIGppdC5zdG9yZVZhbHVl
KGpzVW5kZWZpbmVkKCksIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoQ2FsbEZyYW1lU2xvdDo6dGhp
c0FyZ3VtZW50ICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSksIGpzQXJnMTAp
OworICAgIGNvbnN0ZXhwciBHUFJSZWcgaW1wb3J0SlNDZWxsR1BSUmVnID0gR1BSSW5mbzo6cmVn
VDA7IC8vIENhbGxlZSBuZWVkcyB0byBiZSBpbiByZWdUMCBmb3Igc2xvdyBwYXRoIGJlbG93Lgog
ICAgIEFTU0VSVCghd2FzbUNDLmNhbGxlZVNhdmVSZWdpc3RlcnMuZ2V0KGltcG9ydEpTQ2VsbEdQ
UlJlZykpOwogICAgIG1hdGVyaWFsaXplSW1wb3J0SlNDZWxsKGppdCwgaW1wb3J0SW5kZXgsIGlt
cG9ydEpTQ2VsbEdQUlJlZyk7Ci0KLSAgICBqaXQuc3RvcmU2NChpbXBvcnRKU0NlbGxHUFJSZWcs
IGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlICogc3RhdGljX2Nh
c3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOworICAgIGppdC5zdG9yZVB0cihpbXBvcnRKU0Nl
bGxHUFJSZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlICog
c3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOworI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6
Q2VsbFRhZyksIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlICog
c3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSArIFRhZ09mZnNldCkpOworI2VuZGlm
CiAgICAgaml0LnN0b3JlMzIoSklUOjpUcnVzdGVkSW1tMzIobnVtYmVyT2ZQYXJhbWV0ZXJzKSwg
Y2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90Ojphcmd1bWVudENvdW50SW5jbHVk
aW5nVGhpcyAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBQYXlsb2FkT2Zm
c2V0KSk7Ci0gICAgaml0LnN0b3JlNjQoSklUOjpUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6VmFsdWVV
bmRlZmluZWQpLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OnRoaXNBcmd1
bWVudCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKIAogICAgIC8vIEZJ
WE1FIFRhaWwgY2FsbCBpZiB0aGUgd2FzbSByZXR1cm4gdHlwZSBpcyB2b2lkIGFuZCBubyByZWdp
c3RlcnMgd2VyZSBzcGlsbGVkLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTY1NDg4CiAKQEAgLTI4NywxMSArMzExLDExIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVy
Q29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZt
CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDogewogICAgICAgICAgICAgLy8gRklYTUU6IE9w
dGltaXplIEk2NCBleHRyYWN0aW9uIGZyb20gQmlnSW50LgogICAgICAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDA1MwotICAgICAgICAgICAgR1BS
UmVnIGRlc3QgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5ncHIoKTsKLSAgICAgICAgICAgIGpp
dC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9JNjQpPihHUFJJbmZv
OjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgICAgICBKU1ZhbHVlUmVncyBkZXN0ID0gd2FzbUNh
bGxJbmZvLnJlc3VsdHNbMF0uanNyKCk7CisgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8
ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvSTY0KT4oSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1Ip
OwogICAgICAgICAgICAgYXV0byBjYWxsID0gaml0LmNhbGwoT3BlcmF0aW9uUHRyVGFnKTsKICAg
ICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRKdW1wSWZFeGNlcHRpb24o
dm0pKTsKLSAgICAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBkZXN0
KTsKKyAgICAgICAgICAgIGppdC5tb3ZlVmFsdWVSZWdzKEpTUkluZm86OnJldHVyblZhbHVlSlNS
LCBkZXN0KTsKIAogICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKFs9XSAoTGlua0J1ZmZlciYg
bGlua0J1ZmZlcikgewogICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubGluayhjYWxsLCBGdW5j
dGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkNvbnZlcnRUb0k2NCkpOwpAQCAtMzAx
LDE4ICszMjUsMjEgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0
clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgY2FzZSBUeXBl
S2luZDo6STMyOiB7CiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CiAg
ICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IHNsb3dQYXRoOwotICAgICAgICAgICAg
R1BSUmVnIGRlc3QgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5ncHIoKTsKKyAgICAgICAgICAg
IEpTVmFsdWVSZWdzIGRlc3RKU1IgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5qc3IoKTsKIAot
ICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihHUFJJbmZv
OjpyZXR1cm5WYWx1ZUdQUiwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKSk7Ci0gICAgICAgICAgICBz
bG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIoSlNWYWx1ZVJlZ3MoR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIpLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpKTsKLSAgICAgICAgICAgIGpp
dC56ZXJvRXh0ZW5kMzJUb1dvcmQoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOworICAg
ICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihKU1JJbmZvOjpy
ZXR1cm5WYWx1ZUpTUiwgaml0LnNjcmF0Y2hSZWdpc3RlcigpLCBEb05vdEhhdmVUYWdSZWdpc3Rl
cnMpKTsKKyAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMihK
U1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKSk7CisgICAgICAg
ICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKEpTUkluZm86OnJldHVyblZhbHVlSlNSLnBheWxv
YWRHUFIoKSwgZGVzdEpTUi5wYXlsb2FkR1BSKCkpOwogICAgICAgICAgICAgZG9uZS5hcHBlbmQo
aml0Lmp1bXAoKSk7CiAKICAgICAgICAgICAgIHNsb3dQYXRoLmxpbmsoJmppdCk7Ci0gICAgICAg
ICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvSTMyKT4o
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRz
PGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0kzMik+KEpTUkluZm86OnJldHVyblZhbHVlSlNS
KTsKICAgICAgICAgICAgIGF1dG8gY2FsbCA9IGppdC5jYWxsKE9wZXJhdGlvblB0clRhZyk7CiAg
ICAgICAgICAgICBleGNlcHRpb25DaGVja3MuYXBwZW5kKGppdC5lbWl0SnVtcElmRXhjZXB0aW9u
KHZtKSk7Ci0gICAgICAgICAgICBqaXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVz
dCk7CisgICAgICAgICAgICBqaXQubW92ZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUi5wYXlsb2Fk
R1BSKCksIGRlc3RKU1IucGF5bG9hZEdQUigpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAg
ICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMCksIGRlc3RKU1Iu
dGFnR1BSKCkpOworI2VuZGlmCiAKICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzayhbPV0gKExp
bmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKICAgICAgICAgICAgICAgICBsaW5rQnVmZmVyLmxpbmso
Y2FsbCwgRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25Db252ZXJ0VG9JMzIp
KTsKQEAgLTMyMiwyMyArMzQ5LDI2IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxX
YXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6IHsKLSAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZG9uZTsKICAgICAgICAgICAgIEZQUlJl
ZyBkZXN0ID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uZnByKCk7CiAKLSAgICAgICAgICAgIGF1
dG8gbm90QU51bWJlciA9IGppdC5icmFuY2hJZk5vdE51bWJlcihHUFJJbmZvOjpyZXR1cm5WYWx1
ZUdQUiwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKLSAgICAgICAgICAgIGF1dG8gaXNEb3VibGUg
PSBqaXQuYnJhbmNoSWZOb3RJbnQzMihKU1ZhbHVlUmVncyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQ
UiksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1
bXBMaXN0IGRvbmU7CisgICAgICAgICAgICBhdXRvIG5vdEFOdW1iZXIgPSBqaXQuYnJhbmNoSWZO
b3ROdW1iZXIoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIGppdC5zY3JhdGNoUmVnaXN0ZXIoKSwg
RG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgICAgIGF1dG8gaXNEb3VibGUgPSBqaXQu
YnJhbmNoSWZOb3RJbnQzMihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgRG9Ob3RIYXZlVGFnUmVn
aXN0ZXJzKTsKICAgICAgICAgICAgIC8vIFdlJ3JlIGFuIGludDMyCi0gICAgICAgICAgICBqaXQu
c2lnbkV4dGVuZDMyVG9QdHIoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJldHVy
blZhbHVlR1BSKTsKLSAgICAgICAgICAgIGppdC5jb252ZXJ0SW50NjRUb0Zsb2F0KEdQUkluZm86
OnJldHVyblZhbHVlR1BSLCBkZXN0KTsKKyAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0Zs
b2F0KEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBkZXN0KTsKICAgICAgICAgICAgIGRvbmUuYXBw
ZW5kKGppdC5qdW1wKCkpOwogCiAgICAgICAgICAgICBpc0RvdWJsZS5saW5rKCZqaXQpOworI2lm
IFVTRShKU1ZBTFVFNjQpCiAgICAgICAgICAgICBqaXQudW5ib3hEb3VibGVXaXRob3V0QXNzZXJ0
aW9ucyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIyLCBk
ZXN0LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworI2Vsc2UKKyAgICAgICAgICAgIGppdC51bmJv
eERvdWJsZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgZGVzdCk7CisjZW5kaWYKICAgICAgICAg
ICAgIGppdC5jb252ZXJ0RG91YmxlVG9GbG9hdChkZXN0LCBkZXN0KTsKICAgICAgICAgICAgIGRv
bmUuYXBwZW5kKGppdC5qdW1wKCkpOwogCiAgICAgICAgICAgICBub3RBTnVtYmVyLmxpbmsoJmpp
dCk7Ci0gICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29u
dmVydFRvRjMyKT4oR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICAgICAgaml0LnNl
dHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0YzMik+KEpTUkluZm86OnJl
dHVyblZhbHVlSlNSKTsKICAgICAgICAgICAgIGF1dG8gY2FsbCA9IGppdC5jYWxsKE9wZXJhdGlv
blB0clRhZyk7CiAgICAgICAgICAgICBleGNlcHRpb25DaGVja3MuYXBwZW5kKGppdC5lbWl0SnVt
cElmRXhjZXB0aW9uKHZtKSk7CiAgICAgICAgICAgICBqaXQubW92ZShGUFJJbmZvOjpyZXR1cm5W
YWx1ZUZQUiAsIGRlc3QpOwpAQCAtMzUxLDIyICszODEsMjUgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhW
TSYgdm0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgVHlwZUtp
bmQ6OkY2NDogewotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBkb25lOwogICAg
ICAgICAgICAgRlBSUmVnIGRlc3QgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5mcHIoKTsKKyAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZG9uZTsKIAotICAgICAgICAgICAgYXV0
byBub3RBTnVtYmVyID0gaml0LmJyYW5jaElmTm90TnVtYmVyKEdQUkluZm86OnJldHVyblZhbHVl
R1BSLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwotICAgICAgICAgICAgYXV0byBpc0RvdWJsZSA9
IGppdC5icmFuY2hJZk5vdEludDMyKEpTVmFsdWVSZWdzKEdQUkluZm86OnJldHVyblZhbHVlR1BS
KSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgICAgIGF1dG8gbm90QU51bWJlciA9
IGppdC5icmFuY2hJZk5vdE51bWJlcihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgaml0LnNjcmF0
Y2hSZWdpc3RlcigpLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworICAgICAgICAgICAgYXV0byBp
c0RvdWJsZSA9IGppdC5icmFuY2hJZk5vdEludDMyKEpTVmFsdWVSZWdzKEpTUkluZm86OnJldHVy
blZhbHVlSlNSKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKICAgICAgICAgICAgIC8vIFdlJ3Jl
IGFuIGludDMyCi0gICAgICAgICAgICBqaXQuc2lnbkV4dGVuZDMyVG9QdHIoR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIsIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKLSAgICAgICAgICAgIGppdC5j
b252ZXJ0SW50NjRUb0RvdWJsZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CisgICAg
ICAgICAgICBqaXQuY29udmVydEludDMyVG9Eb3VibGUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIs
IGRlc3QpOwogICAgICAgICAgICAgZG9uZS5hcHBlbmQoaml0Lmp1bXAoKSk7CiAKICAgICAgICAg
ICAgIGlzRG91YmxlLmxpbmsoJmppdCk7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgICAg
IGppdC51bmJveERvdWJsZVdpdGhvdXRBc3NlcnRpb25zKEdQUkluZm86OnJldHVyblZhbHVlR1BS
LCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUjIsIGRlc3QsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7
CisjZWxzZQorICAgICAgICAgICAgaml0LnVuYm94RG91YmxlKEpTUkluZm86OnJldHVyblZhbHVl
SlNSLCBkZXN0KTsKKyNlbmRpZgogICAgICAgICAgICAgZG9uZS5hcHBlbmQoaml0Lmp1bXAoKSk7
CiAKICAgICAgICAgICAgIG5vdEFOdW1iZXIubGluaygmaml0KTsKLSAgICAgICAgICAgIGppdC5z
ZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9GNjQpPihHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUik7CisgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUo
b3BlcmF0aW9uQ29udmVydFRvRjY0KT4oSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpOwogICAgICAg
ICAgICAgYXV0byBjYWxsID0gaml0LmNhbGwoT3BlcmF0aW9uUHRyVGFnKTsKICAgICAgICAgICAg
IGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRKdW1wSWZFeGNlcHRpb24odm0pKTsKICAg
ICAgICAgICAgIGppdC5tb3ZlKEZQUkluZm86OnJldHVyblZhbHVlRlBSLCBkZXN0KTsKQEAgLTM4
MCw3ICs0MTMsNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRy
VGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICB9CiAgICAgICAg
IGRlZmF1bHQ6ICB7CiAgICAgICAgICAgICBpZiAoV2FzbTo6aXNGdW5jcmVmKHJldHVyblR5cGUp
IHx8IFdhc206OmlzRXh0ZXJucmVmKHJldHVyblR5cGUpKQotICAgICAgICAgICAgICAgIGppdC5t
b3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5ncHIo
KSk7CisgICAgICAgICAgICAgICAgaml0Lm1vdmVWYWx1ZVJlZ3MoSlNSSW5mbzo6cmV0dXJuVmFs
dWVKU1IsIHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmpzcigpKTsKICAgICAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgICAgICAvLyBGb3IgdGhlIEphdmFTY3JpcHQgZW1iZWRkaW5nLCBpbXBvcnRz
IHdpdGggdGhlc2UgdHlwZXMgaW4gdGhlaXIgdHlwZSBkZWZpbml0aW9uIHJldHVybiBhcmUgYSBX
ZWJBc3NlbWJseS5Nb2R1bGUgdmFsaWRhdGlvbiBlcnJvci4KICAgICAgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzk0LDEyICs0MjcsMjkgQEAgRXhwZWN0ZWQ8
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3
YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZSh3
YXNtQ29udGV4dEluc3RhbmNlR1BSKTsKICAgICAgICAgfQogCi0gICAgICAgIGppdC5zZXR1cEFy
Z3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25JdGVyYXRlUmVzdWx0cyk+KHdhc21Db250ZXh0SW5z
dGFuY2VHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigmdHlwZURlZmluaXRpb24pLCBH
UFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rl
ciwgQ0NhbGxIZWxwZXJzOjpmcmFtZVBvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIGNvbnN0ZXhw
ciBHUFJSZWcgc2F2ZWRSZXN1bHRzR1BSID0gcHJlZmVycmVkQXJndW1lbnRHUFI8ZGVjbHR5cGUo
b3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMpLCA0PigpOworICAgICAgICBqaXQubW92ZShDQ2FsbEhl
bHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJlc3VsdHNHUFIpOworICAgICAgICBp
ZiBjb25zdGV4cHIgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICAgICAg
aml0LnN1YlB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZvclNs
b3dQYXRoQ2FsbCksIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAg
ICBzdGF0aWNfYXNzZXJ0KG5vT3ZlcmxhcChzYXZlZFJlc3VsdHNHUFIsIEpTUkluZm86OnJldHVy
blZhbHVlSlNSKSk7CisgICAgICAgIEFTU0VSVCh3YXNtQ29udGV4dEluc3RhbmNlR1BSICE9IHNh
dmVkUmVzdWx0c0dQUik7CisgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVy
YXRpb25JdGVyYXRlUmVzdWx0cyk+KHdhc21Db250ZXh0SW5zdGFuY2VHUFIsIENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbVB0cigmdHlwZURlZmluaXRpb24pLCBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpT
Uiwgc2F2ZWRSZXN1bHRzR1BSLCBDQ2FsbEhlbHBlcnM6OmZyYW1lUG9pbnRlclJlZ2lzdGVyKTsK
ICAgICAgICAgaml0LmNhbGxPcGVyYXRpb24oRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihv
cGVyYXRpb25JdGVyYXRlUmVzdWx0cykpOworICAgICAgICBpZiBjb25zdGV4cHIgKG1heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICAgICAgaml0LmFkZFB0cihDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIENDYWxsSGVs
cGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworCiAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5h
cHBlbmQoaml0LmVtaXRKdW1wSWZFeGNlcHRpb24odm0pKTsKIAotICAgICAgICBmb3IgKFJlZ2lz
dGVyQXRPZmZzZXQgbG9jYXRpb24gOiBzYXZlZFJlc3VsdFJlZ2lzdGVycykKLSAgICAgICAgICAg
IGppdC5sb2FkNjRUb1JlZyhDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFj
a1BvaW50ZXJSZWdpc3RlciwgbG9jYXRpb24ub2Zmc2V0KCkpLCBsb2NhdGlvbi5yZWcoKSk7Cisg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaWduYXR1cmUucmV0dXJuQ291bnQoKTsg
KytpKSB7CisgICAgICAgICAgICBWYWx1ZUxvY2F0aW9uIGxvYyA9IHdhc21DYWxsSW5mby5yZXN1
bHRzW2ldOworICAgICAgICAgICAgaWYgKGxvYy5pc0dQUigpKSB7CisjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICAgICAgICAgICAgICBBU1NFUlQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChs
b2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkgKyA0ID09IHNhdmVkUmVzdWx0UmVnaXN0
ZXJzLmZpbmQobG9jLmpzcigpLnRhZ0dQUigpKS0+b2Zmc2V0KCkpOworI2VuZGlmCisgICAgICAg
ICAgICAgICAgaml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJz
OjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNy
KCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkpLCBsb2MuanNyKCkpOworICAgICAgICAgICAgfSBl
bHNlIGlmIChsb2MuaXNGUFIoKSkKKyAgICAgICAgICAgICAgICBqaXQubG9hZERvdWJsZShDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2
ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuZnByKCkpLT5vZmZzZXQoKSksIGxvYy5mcHIoKSk7
CisgICAgICAgIH0KICAgICB9CiAKICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rp
b24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlv
bi5jcHAKaW5kZXggZWE3ODE5MGU1ODU1Li40MGZkMzcxYjAyNzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCkBAIC0x
NTcsNiArMTU3LDkgQEAgcHRyZGlmZl90IFdlYkFzc2VtYmx5RnVuY3Rpb246OnByZXZpb3VzSW5z
dGFuY2VPZmZzZXQoKSBjb25zdAogewogICAgIHB0cmRpZmZfdCByZXN1bHQgPSBjYWxsZWVTYXZl
cygpLm51bWJlck9mU2V0UmVnaXN0ZXJzKCkgKiBzaXplb2YoQ1BVUmVnaXN0ZXIpOwogICAgIHJl
c3VsdCA9IC1yZXN1bHQgLSBzaXplb2YoQ1BVUmVnaXN0ZXIpOworI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgQVNTRVJUKCFjYWxsZWVTYXZlcygpLm51bWJlck9mU2V0RlBScygpKTsgLy8gQmVj
YXVzZSBGUFJzIGFyZSB3aWRlciB0aGFuIHNpemVvZihDUFVSZWdpc3RlcikKKyNlbmRpZgogI2lm
IEFTU0VSVF9FTkFCTEVECiAgICAgcHRyZGlmZl90IG1pbk9mZnNldCA9IDE7CiAgICAgZm9yIChj
b25zdCBSZWdpc3RlckF0T2Zmc2V0JiByZWdBdE9mZnNldCA6IHVzZWRDYWxsZWVTYXZlUmVnaXN0
ZXJzKCkpIHsKQEAgLTE4Niw4ICsxODksNiBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRy
eVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAg
IGNvbnN0IGF1dG8mIHBpbm5lZFJlZ3MgPSBXYXNtOjpQaW5uZWRSZWdpc3RlckluZm86OmdldCgp
OwogICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IHJlZ2lzdGVyc1RvU3BpbGwgPSB1c2VkQ2FsbGVl
U2F2ZVJlZ2lzdGVycygpOwogCi0gICAgYXV0byYgbW9kdWxlSW5mb3JtYXRpb24gPSBpbnN0YW5j
ZSgpLT5pbnN0YW5jZSgpLm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCk7Ci0KICAgICBjb25z
dCBXYXNtOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb24mIHdhc21DQyA9IFdhc206Ondhc21DYWxsaW5n
Q29udmVudGlvbigpOwogICAgIFdhc206OkNhbGxJbmZvcm1hdGlvbiB3YXNtQ2FsbEluZm8gPSB3
YXNtQ0MuY2FsbEluZm9ybWF0aW9uRm9yKHR5cGVEZWZpbml0aW9uKTsKICAgICBXYXNtOjpDYWxs
SW5mb3JtYXRpb24ganNDYWxsSW5mbyA9IFdhc206OmpzQ2FsbGluZ0NvbnZlbnRpb24oKS5jYWxs
SW5mb3JtYXRpb25Gb3IodHlwZURlZmluaXRpb24sIFdhc206OkNhbGxSb2xlOjpDYWxsZWUpOwpA
QCAtMjE2LDkgKzIxNywxNCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4g
V2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgICAgICBqaXQu
c3RvcmVQdHIocmVnLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVn
aXN0ZXIsIG9mZnNldCkpOwogICAgIH0KIAotICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gV2FzbTo6
d2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1sxXTsKLSAgICBib29s
IHN0YWNrTGltaXRHUFJJc0Nsb2JiZXJlZCA9IGZhbHNlOworICAgIEpTVmFsdWVSZWdzIHNjcmF0
Y2hKU1IgeworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIFdhc206Ondhc21DYWxsaW5n
Q29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMl0sCisjZW5kaWYKKyAgICAgICAgV2Fz
bTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1sxXQorICAgIH07
CiAgICAgR1BSUmVnIHN0YWNrTGltaXRHUFIgPSBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24o
KS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzBdOworICAgIGJvb2wgc3RhY2tMaW1pdEdQUklzQ2xvYmJl
cmVkID0gZmFsc2U7CiAgICAgaml0LmxvYWRQdHIodm0uYWRkcmVzc09mU29mdFN0YWNrTGltaXQo
KSwgc3RhY2tMaW1pdEdQUik7CiAKICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IHNsb3dQYXRo
OwpAQCAtMjM3LDcgKzI0Myw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFn
PiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgIGpp
dC5lbWl0TWF0ZXJpYWxpemVUYWdDaGVja1JlZ2lzdGVycygpOwogCiAgICAgLy8gTG9vcCBiYWNr
d2FyZHMgc28gd2UgY2FuIHVzZSB0aGUgZmlyc3QgZmxvYXRpbmcgcG9pbnQgYXJndW1lbnQgYXMg
YSBzY3JhdGNoLgotICAgIEZQUlJlZyBzY3JhdGNoRlBSID0gV2FzbTo6d2FzbUNhbGxpbmdDb252
ZW50aW9uKCkuZnByQXJnc1swXS5mcHIoKTsKKyAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IFdhc206
Ondhc21DYWxsaW5nQ29udmVudGlvbigpLmZwckFyZ3NbMF07CiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gc2lnbmF0dXJlLmFyZ3VtZW50Q291bnQoKTsgaS0tOykgewogICAgICAgICBDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MgY2FsbGVlRnJhbWUgPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoTWFjcm9Bc3Nl
bWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCAwKTsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzIGpzUGFyYW0oR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGpzQ2FsbEluZm8ucGFy
YW1zW2ldLm9mZnNldEZyb21GUCgpKTsKQEAgLTI0NiwxMiArMjUyLDIwIEBAIE1hY3JvQXNzZW1i
bGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRy
eXBvaW50U2xvdygpCiAgICAgICAgIGF1dG8gdHlwZSA9IHNpZ25hdHVyZS5hcmd1bWVudFR5cGUo
aSk7CiAgICAgICAgIHN3aXRjaCAodHlwZS5raW5kKSB7CiAgICAgICAgIGNhc2UgV2FzbTo6VHlw
ZUtpbmQ6OkkzMjogewotICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BS
KTsKLSAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMihzY3Jh
dGNoR1BSKSk7Ci0gICAgICAgICAgICBpZiAoaXNTdGFjaykKLSAgICAgICAgICAgICAgICBqaXQu
c3RvcmUzMihzY3JhdGNoR1BSLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21DYWxsSW5mby5w
YXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKHNjcmF0Y2hHUFIsIHdhc21DYWxsSW5mby5wYXJh
bXNbaV0uZ3ByKCkpOworICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShqc1BhcmFtLCBzY3JhdGNo
SlNSKTsKKyAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMihz
Y3JhdGNoSlNSKSk7CisgICAgICAgICAgICBpZiAoaXNTdGFjaykgeworICAgICAgICAgICAgICAg
IENDYWxsSGVscGVyczo6QWRkcmVzcyBhZGRyIHsgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNt
Q2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSB9OworICAgICAgICAgICAgICAgIGpp
dC5zdG9yZTMyKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBhZGRyLndpdGhPZmZzZXQoUGF5bG9h
ZE9mZnNldCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgaml0LnN0
b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMCksIGFkZHIud2l0aE9mZnNldChUYWdP
ZmZzZXQpKTsKKyNlbmRpZgorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBq
aXQuemVyb0V4dGVuZDMyVG9Xb3JkKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCB3YXNtQ2FsbElu
Zm8ucGFyYW1zW2ldLmpzcigpLnBheWxvYWRHUFIoKSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkK
KyAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSwg
d2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5qc3IoKS50YWdHUFIoKSk7CisjZW5kaWYKKyAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgV2FzbTo6
VHlwZUtpbmQ6OlJlZjoKQEAgLTI2MCwyNyArMjc0LDI3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0
cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xv
dygpCiAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkV4dGVybnJlZjogewogICAgICAgICAg
ICAgaWYgKCFXYXNtOjppc0V4dGVybnJlZih0eXBlKSkgewogICAgICAgICAgICAgICAgIC8vIEVu
c3VyZSB3ZSBoYXZlIGEgV0FTTSBleHBvcnRlZCBmdW5jdGlvbi4KLSAgICAgICAgICAgICAgICBq
aXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOwotICAgICAgICAgICAgICAgIGF1dG8gaXNO
dWxsID0gaml0LmJyYW5jaElmTnVsbChzY3JhdGNoR1BSKTsKKyAgICAgICAgICAgICAgICBqaXQu
bG9hZFZhbHVlKGpzUGFyYW0sIHNjcmF0Y2hKU1IpOworICAgICAgICAgICAgICAgIGF1dG8gaXNO
dWxsID0gaml0LmJyYW5jaElmTnVsbChzY3JhdGNoSlNSKTsKICAgICAgICAgICAgICAgICBpZiAo
IXR5cGUuaXNOdWxsYWJsZSgpKQogICAgICAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQo
aXNOdWxsKTsKLSAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90
Q2VsbChzY3JhdGNoR1BSKSk7CisgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5i
cmFuY2hJZk5vdENlbGwoc2NyYXRjaEpTUikpOwogCiAgICAgICAgICAgICAgICAgc3RhY2tMaW1p
dEdQUklzQ2xvYmJlcmVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBqaXQuZW1pdExvYWRTdHJ1
Y3R1cmUodm0sIHNjcmF0Y2hHUFIsIHNjcmF0Y2hHUFIpOwotICAgICAgICAgICAgICAgIGppdC5s
b2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBTdHJ1Y3R1cmU6OmNsYXNz
SW5mb09mZnNldCgpKSwgc2NyYXRjaEdQUik7CisgICAgICAgICAgICAgICAgaml0LmVtaXRMb2Fk
U3RydWN0dXJlKHZtLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgc2NyYXRjaEpTUi5wYXlsb2Fk
R1BSKCkpOworICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVz
cyhzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgU3RydWN0dXJlOjpjbGFzc0luZm9PZmZzZXQoKSks
IHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKIAogICAgICAgICAgICAgICAgIHN0YXRpY19hc3Nl
cnQoc3RkOjppc19maW5hbDxXZWJBc3NlbWJseUZ1bmN0aW9uPjo6dmFsdWUsICJXZSBkbyBub3Qg
Y2hlY2sgZm9yIHN1YnR5cGVzIGJlbG93Iik7CiAgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6OmlzX2ZpbmFsPFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uPjo6dmFsdWUsICJXZSBk
byBub3QgY2hlY2sgZm9yIHN1YnR5cGVzIGJlbG93Iik7CiAKLSAgICAgICAgICAgICAgICBhdXRv
IGlzV2FzbUZ1bmN0aW9uID0gaml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6OkVxdWFsLCBzY3Jh
dGNoR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoV2ViQXNzZW1ibHlGdW5jdGlvbjo6
aW5mbygpKSk7Ci0gICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hQdHIo
Q0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tUHRyKFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uOjppbmZvKCkpKSk7CisgICAgICAgICAg
ICAgICAgYXV0byBpc1dhc21GdW5jdGlvbiA9IGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpF
cXVhbCwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0
cihXZWJBc3NlbWJseUZ1bmN0aW9uOjppbmZvKCkpKTsKKyAgICAgICAgICAgICAgICBzbG93UGF0
aC5hcHBlbmQoaml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNoSlNS
LnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKFdlYkFzc2VtYmx5V3Jh
cHBlckZ1bmN0aW9uOjppbmZvKCkpKSk7CiAKICAgICAgICAgICAgICAgICBpc1dhc21GdW5jdGlv
bi5saW5rKCZqaXQpOwogICAgICAgICAgICAgICAgIGlmIChXYXNtOjppc1JlZldpdGhUeXBlSW5k
ZXgodHlwZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3Jh
dGNoR1BSKTsKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKHNjcmF0Y2hHUFIsIFdlYkFzc2VtYmx5RnVuY3Rpb25CYXNlOjpvZmZzZXRPZlNpZ25h
dHVyZUluZGV4KCkpLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGgu
YXBwZW5kKGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEdQUiwg
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHR5cGUuaW5kZXgpKSk7CisgICAgICAgICAgICAg
ICAgICAgIGppdC5sb2FkUHRyKGpzUGFyYW0sIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAg
ICAgICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0
Y2hKU1IucGF5bG9hZEdQUigpLCBXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZTo6b2Zmc2V0T2ZTaWdu
YXR1cmVJbmRleCgpKSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgICAg
ICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFs
LCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHR5
cGUuaW5kZXgpKSk7CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgaWYgKHR5
cGUuaXNOdWxsYWJsZSgpKQpAQCAtMjg4LDE1ICszMDIsMTUgQEAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRT
bG93KCkKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKGlzU3RhY2spIHsKLSAgICAg
ICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOworICAgICAgICAgICAg
ICAgIGppdC5sb2FkVmFsdWUoanNQYXJhbSwgc2NyYXRjaEpTUik7CiAgICAgICAgICAgICAgICAg
aWYgKCF0eXBlLmlzTnVsbGFibGUoKSkKLSAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBw
ZW5kKGppdC5icmFuY2hJZk51bGwoc2NyYXRjaEdQUikpOwotICAgICAgICAgICAgICAgIGppdC5z
dG9yZTY0KHNjcmF0Y2hHUFIsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBh
cmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkpOworICAgICAgICAgICAgICAgICAgICBzbG93UGF0aC5h
cHBlbmQoaml0LmJyYW5jaElmTnVsbChzY3JhdGNoSlNSKSk7CisgICAgICAgICAgICAgICAgaml0
LnN0b3JlVmFsdWUoc2NyYXRjaEpTUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbElu
Zm8ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSk7CiAgICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgIGF1dG8gZXh0ZXJuR1BSID0gd2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5ncHIo
KTsKLSAgICAgICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIGV4dGVybkdQUik7CisgICAg
ICAgICAgICAgICAgYXV0byBleHRlcm5KU1IgPSB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmpzcigp
OworICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQYXJhbSwgZXh0ZXJuSlNSKTsKICAg
ICAgICAgICAgICAgICBpZiAoIXR5cGUuaXNOdWxsYWJsZSgpKQotICAgICAgICAgICAgICAgICAg
ICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTnVsbChleHRlcm5HUFIpKTsKKyAgICAgICAg
ICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk51bGwoZXh0ZXJuSlNSKSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMzA0LDM1
ICszMTgsNDEgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2Vt
Ymx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAgICAgY2FzZSBXYXNtOjpU
eXBlS2luZDo6RjY0OiB7CiAgICAgICAgICAgICBpZiAoIWlzU3RhY2spCiAgICAgICAgICAgICAg
ICAgc2NyYXRjaEZQUiA9IHdhc21DYWxsSW5mby5wYXJhbXNbaV0uZnByKCk7Ci0gICAgICAgICAg
ICBhdXRvIG1vdmVUb0Rlc3RpbmF0aW9uID0gWyZdICgpIHsKLSAgICAgICAgICAgICAgICBpZiAo
aXNTdGFjaykgewotICAgICAgICAgICAgICAgICAgICBpZiAoc2lnbmF0dXJlLmFyZ3VtZW50VHlw
ZShpKS5pc0YzMigpKQotICAgICAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlRmxvYXQoc2Ny
YXRjaEZQUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9m
ZnNldEZyb21TUCgpKSk7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGppdC5zdG9yZURvdWJsZShzY3JhdGNoRlBSLCBjYWxsZWVGcmFtZS53aXRoT2Zm
c2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB9OwogCi0gICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0s
IHNjcmF0Y2hHUFIpOwotICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5v
dE51bWJlcihzY3JhdGNoR1BSKSk7Ci0gICAgICAgICAgICBhdXRvIGlzSW50MzIgPSBqaXQuYnJh
bmNoSWZJbnQzMihzY3JhdGNoR1BSKTsKLQotICAgICAgICAgICAgaml0LnVuYm94RG91YmxlKHNj
cmF0Y2hHUFIsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOworICAgICAgICAgICAgaml0LmxvYWRW
YWx1ZShqc1BhcmFtLCBzY3JhdGNoSlNSKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAg
ICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihzY3JhdGNoSlNSLCBJbnZh
bGlkR1BSUmVnKSk7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgc3RhY2tM
aW1pdEdQUklzQ2xvYmJlcmVkID0gdHJ1ZTsKKyAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChq
aXQuYnJhbmNoSWZOb3ROdW1iZXIoc2NyYXRjaEpTUiwgc3RhY2tMaW1pdEdQUikpOworI2VuZGlm
CisgICAgICAgICAgICBhdXRvIGlzSW50MzIgPSBqaXQuYnJhbmNoSWZJbnQzMihzY3JhdGNoSlNS
KTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgaml0LnVuYm94RG91YmxlKHNjcmF0
Y2hKU1IucGF5bG9hZEdQUigpLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgc2NyYXRjaEZQUik7
CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgaml0LnVuYm94RG91YmxlKHNj
cmF0Y2hKU1IsIHNjcmF0Y2hGUFIpOworI2VuZGlmCiAgICAgICAgICAgICBpZiAoc2lnbmF0dXJl
LmFyZ3VtZW50VHlwZShpKS5pc0YzMigpKQogICAgICAgICAgICAgICAgIGppdC5jb252ZXJ0RG91
YmxlVG9GbG9hdChzY3JhdGNoRlBSLCBzY3JhdGNoRlBSKTsKLSAgICAgICAgICAgIG1vdmVUb0Rl
c3RpbmF0aW9uKCk7CiAgICAgICAgICAgICBhdXRvIGRvbmUgPSBqaXQuanVtcCgpOwogCiAgICAg
ICAgICAgICBpc0ludDMyLmxpbmsoJmppdCk7CiAgICAgICAgICAgICBpZiAoc2lnbmF0dXJlLmFy
Z3VtZW50VHlwZShpKS5pc0YzMigpKSB7Ci0gICAgICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQz
MlRvRmxvYXQoc2NyYXRjaEdQUiwgc2NyYXRjaEZQUik7Ci0gICAgICAgICAgICAgICAgbW92ZVRv
RGVzdGluYXRpb24oKTsKKyAgICAgICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9GbG9hdChz
Y3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgc2NyYXRjaEZQUik7CiAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShzY3JhdGNoR1BSLCBz
Y3JhdGNoRlBSKTsKLSAgICAgICAgICAgICAgICBtb3ZlVG9EZXN0aW5hdGlvbigpOworICAgICAg
ICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShzY3JhdGNoSlNSLnBheWxvYWRHUFIo
KSwgc2NyYXRjaEZQUik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBkb25lLmxpbmsoJmpp
dCk7Ci0KKyAgICAgICAgICAgIGlmIChpc1N0YWNrKSB7CisgICAgICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzIGFkZHIgeyBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21DYWxsSW5m
by5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpIH07CisgICAgICAgICAgICAgICAgaWYgKHNpZ25h
dHVyZS5hcmd1bWVudFR5cGUoaSkuaXNGMzIoKSkgeworICAgICAgICAgICAgICAgICAgICBqaXQu
c3RvcmVGbG9hdChzY3JhdGNoRlBSLCBhZGRyLndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOwor
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZTMyKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCBhZGRyLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7
CisjZW5kaWYKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgaml0
LnN0b3JlRG91YmxlKHNjcmF0Y2hGUFIsIGFkZHIpOworICAgICAgICAgICAgfQogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKQEAgLTM0Myw0MiArMzYzLDQ0
IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0
aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgLy8gQXQgdGhpcyBwb2ludCwgd2UncmUg
Y29tbWl0dGVkIHRvIGRvaW5nIGEgZmFzdCBjYWxsLgogCiAgICAgaWYgKFdhc206OkNvbnRleHQ6
OnVzZUZhc3RUTFMoKSkgCi0gICAgICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZShzY3Jh
dGNoR1BSKTsKKyAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHNjcmF0Y2hKU1Iu
cGF5bG9hZEdQUigpKTsKICAgICBlbHNlCi0gICAgICAgIGppdC5sb2FkUHRyKHZtLndhc21Db250
ZXh0LnBvaW50ZXJUb0luc3RhbmNlKCksIHNjcmF0Y2hHUFIpOworICAgICAgICBqaXQubG9hZFB0
cih2bS53YXNtQ29udGV4dC5wb2ludGVyVG9JbnN0YW5jZSgpLCBzY3JhdGNoSlNSLnBheWxvYWRH
UFIoKSk7CiAgICAgcHRyZGlmZl90IHByZXZpb3VzSW5zdGFuY2VPZmZzZXQgPSB0aGlzLT5wcmV2
aW91c0luc3RhbmNlT2Zmc2V0KCk7Ci0gICAgaml0LnN0b3JlUHRyKHNjcmF0Y2hHUFIsIENDYWxs
SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgcHJldmlvdXNJbnN0
YW5jZU9mZnNldCkpOworICAgIGppdC5zdG9yZVB0cihzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwg
Q0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBwcmV2aW91
c0luc3RhbmNlT2Zmc2V0KSk7CiAKLSAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW1QdHIoJmluc3RhbmNlKCktPmluc3RhbmNlKCkpLCBzY3JhdGNoR1BSKTsKKyAgICBqaXQubW92
ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoJmluc3RhbmNlKCktPmluc3RhbmNlKCkpLCBz
Y3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAgICAgaWYgKFdhc206OkNvbnRleHQ6OnVzZUZhc3RU
TFMoKSkgCi0gICAgICAgIGppdC5zdG9yZVdhc21Db250ZXh0SW5zdGFuY2Uoc2NyYXRjaEdQUik7
CisgICAgICAgIGppdC5zdG9yZVdhc21Db250ZXh0SW5zdGFuY2Uoc2NyYXRjaEpTUi5wYXlsb2Fk
R1BSKCkpOwogICAgIGVsc2UgewotICAgICAgICBqaXQubW92ZShzY3JhdGNoR1BSLCBwaW5uZWRS
ZWdzLndhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyKTsKLSAgICAgICAgaml0LnN0b3JlUHRyKHNj
cmF0Y2hHUFIsIHZtLndhc21Db250ZXh0LnBvaW50ZXJUb0luc3RhbmNlKCkpOworICAgICAgICBq
aXQubW92ZShzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgcGlubmVkUmVncy53YXNtQ29udGV4dElu
c3RhbmNlUG9pbnRlcik7CisgICAgICAgIGppdC5zdG9yZVB0cihzY3JhdGNoSlNSLnBheWxvYWRH
UFIoKSwgdm0ud2FzbUNvbnRleHQucG9pbnRlclRvSW5zdGFuY2UoKSk7CiAgICAgfQogICAgIGlm
IChzdGFja0xpbWl0R1BSSXNDbG9iYmVyZWQpCiAgICAgICAgIGppdC5sb2FkUHRyKHZtLmFkZHJl
c3NPZlNvZnRTdGFja0xpbWl0KCksIHN0YWNrTGltaXRHUFIpOwotICAgIGppdC5zdG9yZVB0cihz
dGFja0xpbWl0R1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgV2FzbTo6SW5z
dGFuY2U6Om9mZnNldE9mQ2FjaGVkU3RhY2tMaW1pdCgpKSk7CisgICAgaml0LnN0b3JlUHRyKHN0
YWNrTGltaXRHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoSlNSLnBheWxvYWRHUFIo
KSwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkU3RhY2tMaW1pdCgpKSk7CiAKLSAgICBp
ZiAoISFtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkpIHsKKyNpZiAhQ1BVKEFSTSkgLy8gQVJNIGhh
cyBubyBwaW5uZWQgcmVnaXN0ZXJzIGZvciBXYXNtIE1lbW9yeSwgc28gbm8gbmVlZCB0byBzZXQg
dGhlbSB1cAorICAgIGlmICghIWluc3RhbmNlKCktPmluc3RhbmNlKCkubW9kdWxlKCkubW9kdWxl
SW5mb3JtYXRpb24oKS5tZW1vcnkpIHsKICAgICAgICAgR1BSUmVnIGJhc2VNZW1vcnkgPSBwaW5u
ZWRSZWdzLmJhc2VNZW1vcnlQb2ludGVyOwogICAgICAgICBHUFJSZWcgc2NyYXRjaE9yQm91bmRz
Q2hlY2tpbmdTaXplID0gSW52YWxpZEdQUlJlZzsKICAgICAgICAgYXV0byBtb2RlID0gaW5zdGFu
Y2UoKS0+bWVtb3J5TW9kZSgpOwogCiAgICAgICAgIGlmIChpc0FSTTY0RSgpKSB7Ci0gICAgICAg
ICAgICBpZiAobW9kZSAhPSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmcpCisgICAgICAgICAg
ICBpZiAobW9kZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykKICAgICAgICAg
ICAgICAgICBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUgPSBwaW5uZWRSZWdzLmJvdW5kc0No
ZWNraW5nU2l6ZVJlZ2lzdGVyOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHNj
cmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSA9IHN0YWNrTGltaXRHUFI7Ci0gICAgICAgICAgICBq
aXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgV2FzbTo6SW5zdGFu
Y2U6Om9mZnNldE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKCkpLCBzY3JhdGNoT3JCb3VuZHND
aGVja2luZ1NpemUpOworICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNo
ZWRCb3VuZHNDaGVja2luZ1NpemUoKSksIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSk7CiAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAobW9kZSAhPSBXYXNtOjpNZW1vcnlNb2Rl
OjpTaWduYWxpbmcpCi0gICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKHNjcmF0Y2hHUFIsIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZEJvdW5kc0No
ZWNraW5nU2l6ZSgpKSwgcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3Rlcik7Cisg
ICAgICAgICAgICBpZiAobW9kZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykK
KyAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRj
aEpTUi5wYXlsb2FkR1BSKCksIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZEJvdW5kc0No
ZWNraW5nU2l6ZSgpKSwgcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3Rlcik7CiAg
ICAgICAgIH0KIAotICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2Ny
YXRjaEdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNlTWVt
b3J5KTsKLSAgICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5QW5kVW50YWcoR2lnYWNhZ2U6OlBy
aW1pdGl2ZSwgYmFzZU1lbW9yeSwgc2NyYXRjaE9yQm91bmRzQ2hlY2tpbmdTaXplLCBzY3JhdGNo
R1BSKTsKKyAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hK
U1IucGF5bG9hZEdQUigpLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnkoKSks
IGJhc2VNZW1vcnkpOworICAgICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHlBbmRVbnRhZyhHaWdh
Y2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5LCBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUs
IHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKICAgICB9CisjZW5kaWYKIAogICAgIC8vIFdlIHVz
ZSB0aGlzIGNhbGxlZSB0byBpbmRpY2F0ZSBob3cgdG8gdW53aW5kIHBhc3QgdGhlc2UgdHlwZXMg
b2YgZnJhbWVzOgogICAgIC8vIDEuIFdlIG5lZWQgdG8ga25vdyB3aGVyZSB0byBnZXQgY2FsbGVl
IHNhdmVzLgpAQCAtMzkwLDggKzQxMiw4IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5
UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAg
Ly8gRklYTUU6IEN1cnJlbnRseSB3ZSBqdXN0IGRvIGFuIGluZGlyZWN0IGp1bXAuIEJ1dCB3ZSBz
aG91bGQgdGVhY2ggdGhlIE1vZHVsZQogICAgIC8vIGhvdyB0byByZXBhdGNoIHVzOgogICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY1NzAKLSAgICBqaXQu
bG9hZFB0cihlbnRyeXBvaW50TG9hZExvY2F0aW9uKCksIHNjcmF0Y2hHUFIpOwotICAgIGppdC5j
YWxsKHNjcmF0Y2hHUFIsIFdhc21FbnRyeVB0clRhZyk7CisgICAgaml0LmxvYWRQdHIoZW50cnlw
b2ludExvYWRMb2NhdGlvbigpLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CisgICAgaml0LmNh
bGwoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIFdhc21FbnRyeVB0clRhZyk7CiAKICAgICBtYXJz
aGFsbEpTUmVzdWx0KGppdCwgdHlwZURlZmluaXRpb24sIHdhc21DYWxsSW5mbywgc2F2ZWRSZXN1
bHRSZWdpc3RlcnMpOwogCkBAIC00MjEsNyArNDQzLDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
PEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93
KCkKICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIodGhpcyksIEdQUklu
Zm86OnJlZ1QwKTsKICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICNpZiBDUFUoQVJN
NjRFKQotICAgIGppdC51bnRhZ1JldHVybkFkZHJlc3Moc2NyYXRjaEdQUik7CisgICAgaml0LnVu
dGFnUmV0dXJuQWRkcmVzcyhzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAjZW5kaWYKICAgICBh
dXRvIGp1bXBUb0hvc3RDYWxsVGh1bmsgPSBqaXQuanVtcCgpOwogCkBAIC00MjksNyArNDUxLDcg
QEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rp
b246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICBpZiAoVU5MSUtFTFkobGlua0J1ZmZlci5k
aWRGYWlsVG9BbGxvY2F0ZSgpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBsaW5r
QnVmZmVyLmxpbmsoanVtcFRvSG9zdENhbGxUaHVuaywgQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRy
eVB0clRhZz4oZXhlY3V0YWJsZSgpLT5lbnRyeXBvaW50Rm9yKENvZGVGb3JDYWxsLCBNdXN0Q2hl
Y2tBcml0eSkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOworICAgIGxpbmtCdWZmZXIubGluayhqdW1w
VG9Ib3N0Q2FsbFRodW5rLCBDb2RlTG9jYXRpb25MYWJlbDxKU0VudHJ5UHRyVGFnPihleGVjdXRh
YmxlKCktPmVudHJ5cG9pbnRGb3IoQ29kZUZvckNhbGwsIE11c3RDaGVja0FyaXR5KSkpOwogICAg
IG1fanNDYWxsRW50cnlwb2ludCA9IEZJTkFMSVpFX1dBU01fQ09ERShsaW5rQnVmZmVyLCBXYXNt
RW50cnlQdHJUYWcsICJKUy0+V2FzbSBJQyIpOwogICAgIHJldHVybiBtX2pzQ2FsbEVudHJ5cG9p
bnQuY29kZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbENvbnN0cnVjdG9yLmNwcAppbmRleCBhMjIxYjJlY2I3
MTMuLmNjN2NiZTNlNDc4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAKQEAgLTE1OCw3
ICsxNTgsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJs
eUdsb2JhbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIFJlZjxXYXNtOjpHbG9iYWw+
IHdhc21HbG9iYWwgPSBXYXNtOjpHbG9iYWw6OmNyZWF0ZSh0eXBlLCBtdXRhYmlsaXR5LCBpbml0
aWFsVmFsdWUpOwogICAgIEpTV2ViQXNzZW1ibHlHbG9iYWwqIGpzV2ViQXNzZW1ibHlHbG9iYWwg
PSBKU1dlYkFzc2VtYmx5R2xvYmFsOjp0cnlDcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgd2ViQXNz
ZW1ibHlHbG9iYWxTdHJ1Y3R1cmUsIFdURk1vdmUod2FzbUdsb2JhbCkpOwogICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04odGhyb3dTY29wZSwgeyB9KTsKLSAgICBlbnN1cmVTdGlsbEFsaXZlSGVyZShi
aXR3aXNlX2Nhc3Q8dm9pZCo+KGluaXRpYWxWYWx1ZSkpOyAvLyBFbnN1cmUgdGhpcyBpcyBrZXB0
IGFsaXZlIHdoaWxlIGNyZWF0aW5nIEpTV2ViQXNzZW1ibHlHbG9iYWwuCisgICAgZW5zdXJlU3Rp
bGxBbGl2ZUhlcmUoaW5pdGlhbFZhbHVlKTsgLy8gRW5zdXJlIHRoaXMgaXMga2VwdCBhbGl2ZSB3
aGlsZSBjcmVhdGluZyBKU1dlYkFzc2VtYmx5R2xvYmFsLgogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNXZWJBc3NlbWJseUdsb2JhbCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAppbmRleCBi
YzljYjA2OGQ4YTMuLjk3YzNlYzkyMzlkNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcApAQCAtNTU0LDcg
KzU1NCw3IEBAIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVFeHBvcnRz
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgICAgICAgICAgICAgSlNXZWJBc3Nl
bWJseUdsb2JhbCogZ2xvYmFsVmFsdWUgPSBKU1dlYkFzc2VtYmx5R2xvYmFsOjp0cnlDcmVhdGUo
Z2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseUdsb2JhbFN0cnVjdHVy
ZSgpLCBXVEZNb3ZlKGdsb2JhbFJlZikpOwogICAgICAgICAgICAgICAgIHNjb3BlLmFzc2VydE5v
RXhjZXB0aW9uKCk7CiAgICAgICAgICAgICAgICAgbV9pbnN0YW5jZS0+bGlua0dsb2JhbCh2bSwg
Z2xvYmFsSW5kZXgsIGdsb2JhbFZhbHVlKTsKLSAgICAgICAgICAgICAgICBlbnN1cmVTdGlsbEFs
aXZlSGVyZShiaXR3aXNlX2Nhc3Q8dm9pZCo+KGluaXRpYWxCaXRzKSk7IC8vIEVuc3VyZSB0aGlz
IGlzIGtlcHQgYWxpdmUgd2hpbGUgY3JlYXRpbmcgSlNXZWJBc3NlbWJseUdsb2JhbC4KKyAgICAg
ICAgICAgICAgICBlbnN1cmVTdGlsbEFsaXZlSGVyZShpbml0aWFsQml0cyk7IC8vIEVuc3VyZSB0
aGlzIGlzIGtlcHQgYWxpdmUgd2hpbGUgY3JlYXRpbmcgSlNXZWJBc3NlbWJseUdsb2JhbC4KICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmggYi9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybUVuYWJsZS5oCmluZGV4IDQ4NjdjN2VhOWQyZi4uNTExZGNiYWE3YWU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtRW5hYmxlLmgKQEAgLTU4OSwxMiArNTg5LDEyIEBACiAjZW5kaWYKIAogI2lmIFVT
RShKU1ZBTFVFMzJfNjQpCi0vKiBEaXNhYmxlIFdlYkFzc2VtYmx5IG9uIGFsbCAzMmJpdCBwbGF0
Zm9ybXMuIEl0cyBMTEludCB0aWVyIGNvdWxkCi0gKiB3b3JrIG9uIHRoZW0sIGJ1dCBzdGlsbCBu
ZWVkcyBzb21lIGZpbmFsIHRvdWNoZXMuICovCisjaWYgIUNQVShBUk0pCiAjdW5kZWYgRU5BQkxF
X1dFQkFTU0VNQkxZCiAjZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWSAwCiAjdW5kZWYgRU5BQkxF
X1dFQkFTU0VNQkxZX0IzSklUCiAjZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWV9CM0pJVCAwCisj
ZW5kaWYKICNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShNSVBTKSkgJiYgT1MoTElOVVgpCiAv
KiBPbiBBUk12NyBhbmQgTUlQUyBvbiBMaW51eCB0aGUgSklUIGlzIGVuYWJsZWQgdW5sZXNzIGV4
cGxpY2l0bHkgZGlzYWJsZWQuICovCiAjaWYgIWRlZmluZWQoRU5BQkxFX0pJVCkKQEAgLTcxMiw3
ICs3MTIsNyBAQAogI2RlZmluZSBFTkFCTEVfU0FNUExJTkdfUFJPRklMRVIgMQogI2VuZGlmCiAK
LSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIEhBVkUoTUFDSElORV9DT05URVhUKQorI2lmIEVO
QUJMRShXRUJBU1NFTUJMWSkgJiYgSEFWRShNQUNISU5FX0NPTlRFWFQpICYmIENQVShBRERSRVNT
NjQpCiAjZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZIDEKICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzIGIvVG9v
bHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwppbmRleCA0NzczYTFhZjcwYjMuLjBlOGZi
ZjM4NGRkMSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwor
KysgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCkBAIC01ODUsNiArNTg1LDgg
QEAgZW5kCiAkaG9zdE9TID0gZGV0ZXJtaW5lT1MgdW5sZXNzICRob3N0T1MKICRhcmNoaXRlY3R1
cmUgPSBkZXRlcm1pbmVBcmNoaXRlY3R1cmUgdW5sZXNzICRhcmNoaXRlY3R1cmUKICRpc0ZUTFBs
YXRmb3JtID0gISgkYXJjaGl0ZWN0dXJlID09ICJ4ODYiIHx8ICRhcmNoaXRlY3R1cmUgPT0gImFy
bSIgfHwgJGFyY2hpdGVjdHVyZSA9PSAibWlwcyIgfHwgJGFyY2hpdGVjdHVyZSA9PSAicmlzY3Y2
NCIgfHwgJGhvc3RPUyA9PSAid2luZG93cyIgfHwgJGhvc3RPUyA9PSAicGxheXN0YXRpb24iKQor
IyBTcGVjaWFsIGNhc2UgYXJtdjcsIHdlIHdhbnQgdG8gcnVuIHRoZSB3YXNtIHRlc3RzIHRlbXBv
cmFyaWx5IHdpdGhvdXQgQjMvQWlyIHN1cHBvcnQKKyRpc1dhc21QbGF0Zm9ybSA9ICRpc0ZUTFBs
YXRmb3JtIHx8ICRhcmNoaXRlY3R1cmUgPT0gImFybSIKIAogaWYgJGFyY2hpdGVjdHVyZSA9PSAi
eDg2IgogICAgICMgVGhlIEpJVCBpcyB0ZW1wb3JhcmlseSBkaXNhYmxlZCBvbiB0aGlzIHBsYXRm
b3JtIHNpbmNlCkBAIC0xNzI5LDcgKzE3MzEsNyBAQCBlbmQKIAogZGVmIHJ1bldlYkFzc2VtYmx5
CiAgICAgcmV0dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3Jt
CisgICAgcmV0dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KICAgICBydW4oImRlZmF1bHQtd2FzbSIs
ICItbSIsICpGVExfT1BUSU9OUykKICAgICBpZiAkbW9kZSAhPSAicXVpY2siCiAgICAgICAgIHJ1
bigid2FzbS1uby1jaml0LXllcy10bHMtY29udGV4dCIsICItbSIsICItLXVzZUZhc3RUTFNGb3JX
YXNtQ29udGV4dD10cnVlIiwgKihGVExfT1BUSU9OUyArIE5PX0NKSVRfT1BUSU9OUykpCkBAIC0x
NzM3LDE1ICsxNzM5LDE3IEBAIGRlZiBydW5XZWJBc3NlbWJseQogICAgICAgICBydW4oIndhc20t
ZWFnZXItamV0dGlzb24iLCAiLW0iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09s
ZEFnZT10cnVlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10
cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNt
LW5vLXRscy1jb250ZXh0IiwgIi1tIiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PWZhbHNl
IiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tc2xvdy1tZW1vcnkiLCAiLW0iLCAi
LS11c2VXZWJBc3NlbWJseUZhc3RNZW1vcnk9ZmFsc2UiLCAqRlRMX09QVElPTlMpCi0gICAgICAg
IHJ1bigid2FzbS1iMyIsICItbSIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFV
c2VzQWlyPWZhbHNlIiwgKkZUTF9PUFRJT05TKQotICAgICAgICBydW4oIndhc20tYWlyIiwgIi1t
IiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNs
YW5kQWxsb2NhdGlvbj10cnVlIiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tY29s
bGVjdC1jb250aW51b3VzbHkiLCAiLW0iLCAiLS1jb2xsZWN0Q29udGludW91c2x5PXRydWUiLCAi
LS12ZXJpZnlHQz10cnVlIiwgKkZUTF9PUFRJT05TKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91
c2x5PworICAgICAgICBpZiAkaXNGVExQbGF0Zm9ybQorICAgICAgICAgICAgcnVuKCJ3YXNtLWIz
IiwgIi1tIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2Ui
LCAqRlRMX09QVElPTlMpCisgICAgICAgICAgICBydW4oIndhc20tYWlyIiwgIi1tIiwgIi0tdXNl
V2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2Nh
dGlvbj10cnVlIiwgKkZUTF9PUFRJT05TKQorICAgICAgICBlbmQKICAgICBlbmQKIGVuZAogCiBk
ZWYgcnVuV2ViQXNzZW1ibHlKZXRTdHJlYW0yCiAgICAgcmV0dXJuIGlmICEkaml0VGVzdHMKLSAg
ICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0dXJuIGlmICEkaXNXYXNtUGxhdGZv
cm0KIAogICAgIGlmICRtZW1vcnlMaW1pdGVkCiAgICAgICAgIHNraXAKQEAgLTE3NjQsMTUgKzE3
NjgsMTcgQEAgZGVmIHJ1bldlYkFzc2VtYmx5SmV0U3RyZWFtMgogICAgICAgICBydW4oIndhc20t
ZWFnZXItamV0dGlzb24iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09sZEFnZT10
cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNt
LW5vLXRscy1jb250ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PWZhbHNlIiwgKkZU
TF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tc2xvdy1tZW1vcnkiLCAiLS11c2VXZWJBc3Nl
bWJseUZhc3RNZW1vcnk9ZmFsc2UiLCAqRlRMX09QVElPTlMpCi0gICAgICAgIHJ1bigid2FzbS1i
MyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKkZU
TF9PUFRJT05TKQotICAgICAgICBydW4oIndhc20tYWlyIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNl
IiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgKkZU
TF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tY29sbGVjdC1jb250aW51b3VzbHkiLCAiLS1j
b2xsZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKkZUTF9PUFRJT05T
KSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5PworICAgICAgICBpZiAkRlRMUGxhdGZvcm0K
KyAgICAgICAgICAgIHJ1bigid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdh
c21CQlFVc2VzQWlyPWZhbHNlIiwgKkZUTF9PUFRJT05TKQorICAgICAgICAgICAgcnVuKCJ3YXNt
LWFpciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJs
ZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICpGVExfT1BUSU9OUykKKyAgICAgICAgZW5kCiAgICAg
ZW5kCiBlbmQKIAogZGVmIHJ1bldlYkFzc2VtYmx5U3VpdGUoKm9wdGlvbmFsVGVzdFNwZWNpZmlj
T3B0aW9ucykKICAgICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRM
UGxhdGZvcm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQogICAgIG1vZHVsZXMgPSBE
aXJbV0FTTVRFU1RTX1BBVEggKyAiKi5qcyJdLm1hcCB7IHxmfCBGaWxlLmJhc2VuYW1lKGYpIH0K
ICAgICBwcmVwYXJlRXh0cmFBYnNvbHV0ZUZpbGVzKFdBU01URVNUU19QQVRILCBbIndhc20uanNv
biJdKQogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMobW9kdWxlcy5tYXAgeyB8ZnwgIi4u
LyIgKyBmIH0sICRjb2xsZWN0aW9uKQpAQCAtMTc4OCw5ICsxNzk0LDExIEBAIGRlZiBydW5XZWJB
c3NlbWJseVN1aXRlKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiAgICAgICAgIHJ1bigi
d2FzbS1lYWdlci1qZXR0aXNvbiIsICItLWZvcmNlQ29kZUJsb2NrVG9KZXR0aXNvbkR1ZVRvT2xk
QWdlPXRydWUiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRy
dWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNp
ZmljT3B0aW9ucykpCiAgICAgICAgIHJ1bigid2FzbS1uby10bHMtY29udGV4dCIsICItLXVzZUZh
c3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RT
cGVjaWZpY09wdGlvbnMpKQogICAgICAgICBydW4oIndhc20tc2xvdy1tZW1vcnkiLCAiLS11c2VX
ZWJBc3NlbWJseUZhc3RNZW1vcnk9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0
U3BlY2lmaWNPcHRpb25zKSkKLSAgICAgICAgcnVuKCJ3YXNtLWIzIiwgIi0tdXNlV2FzbUxMSW50
PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9u
YWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKLSAgICAgICAgcnVuKCJ3YXNtLWFpciIsICItLXVzZVdh
c21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRp
b249dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQog
ICAgICAgICBydW4oIndhc20tY29sbGVjdC1jb250aW51b3VzbHkiLCAiLS1jb2xsZWN0Q29udGlu
dW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFs
VGVzdFNwZWNpZmljT3B0aW9ucykpIGlmIHNob3VsZENvbGxlY3RDb250aW51b3VzbHk/CisgICAg
ICAgIGlmICRpc0ZUTFBsYXRmb3JtCisgICAgICAgICAgICBydW4oIndhc20tYjMiLCAiLS11c2VX
YXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICooRlRMX09QVElPTlMg
KyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQorICAgICAgICAgICAgcnVuKCJ3YXNtLWFp
ciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlz
bGFuZEFsbG9jYXRpb249dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZp
Y09wdGlvbnMpKQorICAgICAgICBlbmQKICAgICBlbmQKIGVuZAogCkBAIC0xODA2LDcgKzE4MTQs
OSBAQCBlbmQKIGRlZiBydW5XZWJBc3NlbWJseVdpdGhIYXJuZXNzKCpvcHRpb25hbFRlc3RTcGVj
aWZpY09wdGlvbnMpCiAgICAgcmFpc2UgdW5sZXNzICRiZW5jaG1hcmsudG9fcyA9fiAvaGFybmVz
c1wubT9qcy8KICAgICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRM
UGxhdGZvcm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQorICAgICMgU2tpcCB0aGlz
IGNvbXBsZXRlbHkgb24gYXJtdjcgZm9yIG5vdywgc2luY2UgbW9zdCBvZiB0aGUgdGVzdHMgYXJl
IHJlbGF0ZWQgdG8gT1NSIGFuZCBpdCdzIGEgYml0IGhhaXJ5IHRvIHNraXAgdGhlbSBtYW51YWxs
eQorICAgIHJldHVybiBpZiAkYXJjaGl0ZWN0dXJlID09ICJhcm0iCiAKICAgICB3YXNtRmlsZXMg
PSBhbGxXYXNtRmlsZXMoJGNvbGxlY3Rpb24pCiAgICAgcHJlcGFyZUV4dHJhUmVsYXRpdmVGaWxl
cyh3YXNtRmlsZXMubWFwIHsgfGZ8IGYuYmFzZW5hbWUgfSwgJGNvbGxlY3Rpb24pCkBAIC0xODE4
LDkgKzE4MjgsMTEgQEAgZGVmIHJ1bldlYkFzc2VtYmx5V2l0aEhhcm5lc3MoKm9wdGlvbmFsVGVz
dFNwZWNpZmljT3B0aW9ucykKICAgICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tZWFnZXItamV0
dGlzb24iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09sZEFnZT10cnVlIiwgIi0t
dXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgIi0tdmVyaWZ5
R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQog
ICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1uby10bHMtY29udGV4dCIsICItLXVzZUZhc3RU
TFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVj
aWZpY09wdGlvbnMpKQogICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1zbG93LW1lbW9yeSIs
ICItLXVzZVdlYkFzc2VtYmx5RmFzdE1lbW9yeT1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRp
b25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQotICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1i
MyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihG
VExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCi0gICAgICAgIHJ1bkhh
cm5lc3NUZXN0KCJ3YXNtLW5vLWFpciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJh
bmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICooRlRMX09QVElPTlMg
KyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgICBydW5IYXJuZXNzVGVzdCgi
d2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNseSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIs
ICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNP
cHRpb25zKSkgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8KKyAgICAgICAgaWYgJGlzRlRM
UGxhdGZvcm0KKyAgICAgICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLWIzIiwgIi0tdXNlV2Fz
bUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsg
b3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKKyAgICAgICAgICAgIHJ1bkhhcm5lc3NUZXN0
KCJ3YXNtLW5vLWFpciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5n
RXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25h
bFRlc3RTcGVjaWZpY09wdGlvbnMpKQorICAgICAgICBlbmQKICAgICBlbmQKIGVuZAogCkBAIC0x
ODMwLDcgKzE4NDIsNyBAQCBkZWYgcnVuV2ViQXNzZW1ibHlFbXNjcmlwdGVuKG1vZGUpCiAgICAg
ICAgIHJldHVybgogICAgIGVuZAogICAgIHJldHVybiBpZiAhJGppdFRlc3RzCi0gICAgcmV0dXJu
IGlmICEkaXNGVExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2FzbVBsYXRmb3JtCiAgICAg
d2FzbSA9ICRiZW5jaG1hcmsudG9fcy5zdWIhICcuanMnLCAnLndhc20nCiAgICAgcHJlcGFyZUV4
dHJhUmVsYXRpdmVGaWxlcyhbUGF0aG5hbWUoJy4uJykgKyB3YXNtXSwgJGNvbGxlY3Rpb24pCiAg
ICAgcnVuKCJkZWZhdWx0LXdhc20iLCAqRlRMX09QVElPTlMpCkBAIC0xODM4LDkgKzE4NTAsMTEg
QEAgZGVmIHJ1bldlYkFzc2VtYmx5RW1zY3JpcHRlbihtb2RlKQogICAgICAgICBydW4oIndhc20t
bm8tY2ppdC15ZXMtdGxzLWNvbnRleHQiLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9dHJ1
ZSIsICooRlRMX09QVElPTlMgKyBOT19DSklUX09QVElPTlMpKQogICAgICAgICBydW4oIndhc20t
ZWFnZXItamV0dGlzb24iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09sZEFnZT10
cnVlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwg
Ii0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLW5vLXRs
cy1jb250ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PWZhbHNlIiwgKkZUTF9PUFRJ
T05TKQotICAgICAgICBydW4oIndhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13
YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVuKCJ3YXNtLWFp
ciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlz
bGFuZEFsbG9jYXRpb249dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLWNv
bGxlY3QtY29udGludW91c2x5IiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0tdmVy
aWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8K
KyAgICAgICAgaWYgJGlzRlRMUGxhdGZvcm0KKyAgICAgICAgICAgIHJ1bigid2FzbS1iMyIsICIt
LXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKkZUTF9PUFRJ
T05TKQorICAgICAgICAgICAgcnVuKCJ3YXNtLWFpciIsICItLXVzZVdhc21MTEludD1mYWxzZSIs
ICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICpGVExf
T1BUSU9OUykKKyAgICAgICAgZW5kCiAgICAgZW5kCiBlbmQKIApAQCAtMTg1MCw3ICsxODY0LDcg
QEAgZGVmIHJ1bldlYkFzc2VtYmx5U3BlY1Rlc3RCYXNlKG1vZGUsIHNwZWNIYXJuZXNzUGF0aCwg
Km9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW8KICAgICAgICAgcmV0dXJuCiAgICAgZW5kCiAgICAg
cmV0dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAg
cmV0dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KICAgICBwcmVwYXJlRXh0cmFBYnNvbHV0ZUZpbGVz
KFdBU01URVNUU19QQVRILCBbIndhc20uanNvbiJdKQogCiAgICAgbW9kdWxlcyA9IERpcltXQVNN
VEVTVFNfUEFUSCArICIqLmpzIl0ubWFwIHsgfGZ8IEZpbGUuYmFzZW5hbWUoZikgfQpAQCAtMTg2
NSw5ICsxODc5LDExIEBAIGRlZiBydW5XZWJBc3NlbWJseVNwZWNUZXN0QmFzZShtb2RlLCBzcGVj
SGFybmVzc1BhdGgsICpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvCiAgICAgICBydW5XaXRoT3V0
cHV0SGFuZGxlcigid2FzbS1uby1jaml0LXllcy10bHMtY29udGV4dCIsIG5vaXN5T3V0cHV0SGFu
ZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9dHJ1
ZSIsICooRlRMX09QVElPTlMgKyBOT19DSklUX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZp
Y09wdGlvbnMpKQogICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20tZWFnZXItamV0dGlz
b24iLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAiLS1mb3JjZUNvZGVC
bG9ja1RvSmV0dGlzb25EdWVUb09sZEFnZT10cnVlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRh
YmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElP
TlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgcnVuV2l0aE91dHB1dEhh
bmRsZXIoIndhc20tbm8tdGxzLWNvbnRleHQiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJu
ZXNzSnNQYXRoLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9ZmFsc2UiLCAqKEZUTF9PUFRJ
T05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKLSAgICAgIHJ1bldpdGhPdXRwdXRI
YW5kbGVyKCJ3YXNtLWIzIiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwg
Ii0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqKEZUTF9P
UFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKLSAgICAgIHJ1bldpdGhPdXRw
dXRIYW5kbGVyKCJ3YXNtLWFpciIsIG5vaXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1Bh
dGgsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlz
bGFuZEFsbG9jYXRpb249dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZp
Y09wdGlvbnMpKQogICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20tY29sbGVjdC1jb250
aW51b3VzbHkiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAiLS1jb2xs
ZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKihGVExfT1BUSU9OUyAr
IG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpIGlmIHNob3VsZENvbGxlY3RDb250aW51b3Vz
bHk/CisgICAgICBpZiAkaXNGVExQbGF0Zm9ybQorICAgICAgICAgIHJ1bldpdGhPdXRwdXRIYW5k
bGVyKCJ3YXNtLWIzIiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0t
dXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqKEZUTF9PUFRJ
T05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKKyAgICAgICAgICBydW5XaXRoT3V0
cHV0SGFuZGxlcigid2FzbS1haXIiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQ
YXRoLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJ
c2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lm
aWNPcHRpb25zKSkKKyAgICAgIGVuZAogICAgIGVuZAogZW5kCiAKQEAgLTE4ODUsNyArMTkwMSw3
IEBAIGVuZAogCiBkZWYgcnVuV2ViQXNzZW1ibHlMb3dFeGVjdXRhYmxlTWVtb3J5KCpvcHRpb25h
bFRlc3RTcGVjaWZpY09wdGlvbnMpCiAgICAgcmV0dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1
cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KICAg
ICBtb2R1bGVzID0gRGlyW1dBU01URVNUU19QQVRIICsgIiouanMiXS5tYXAgeyB8ZnwgRmlsZS5i
YXNlbmFtZShmKSB9CiAgICAgcHJlcGFyZUV4dHJhQWJzb2x1dGVGaWxlcyhXQVNNVEVTVFNfUEFU
SCwgWyJ3YXNtLmpzb24iXSkKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZpbGVzKG1vZHVsZXMu
bWFwIHsgfGZ8ICIuLi8iICsgZiB9LCAkY29sbGVjdGlvbikKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
c3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzIGIvSlNUZXN0cy9z
dHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24uanMKaW5kZXggNWMyMjBm
ZDc2Y2RjLi4zNjg2YzYzOTcwNDAgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5n
LXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBs
aW5nLXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzCkBAIC0xLDMgKzEsOCBAQAorLy8gVGhp
cyB0ZXN0IGlzIHN0YXRpc3RpY2FsLCBhbmQgd2l0aG91dCBvcHRpbWl6aW5nIFdhc20gdGllcnMg
dGhlIGxpa2VsaWhvb2QKKy8vIG9mIGhpdHRpbmcgdGhlIGRlZXBlc3QgZXhwZWN0ZWQgc3RhY2sg
dHJhY2UgaXMgdmVyeSBsb3csIHNvIGRpc2FibGUuCisvLyBGSVhNRTogcmVtb3ZlIHdoZW4gMzIt
Yml0IHBsYXRmb3JtcyBzdXBwb3J0IG9wdGltaXppbmcgV2FzbSB0aWVycworLy9AIHNraXAgaWYg
WyJhcm0iLCAibWlwcyJdLmluY2x1ZGU/KCRhcmNoaXRlY3R1cmUpCisvLwogLy9AIHJ1bkRlZmF1
bHQKIAogLyoKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdh
c20uanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzCmluZGV4IDA2
ZGYwMTI0OTU5Ni4uNzI0MGMwMGRlMjdlIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zYW1w
bGluZy1wcm9maWxlci13YXNtLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2Zp
bGVyLXdhc20uanMKQEAgLTEsMyArMSw0IEBACisvL0Agc2tpcCBpZiAkYXJjaGl0ZWN0dXJlID09
ICJhcm0iCiAvL0AgcnVuRGVmYXVsdAogCiBpZiAocGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJv
ZmlsZXIoKSAmJiAkdm0uaXNXYXNtU3VwcG9ydGVkKCkpIHsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
d2FzbS9yZWdyZXNzL2xsaW50LWNhbGxlZS1zYXZlcy13aXRoLWZhc3QtbWVtb3J5LmpzIGIvSlNU
ZXN0cy93YXNtL3JlZ3Jlc3MvbGxpbnQtY2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnkuanMK
aW5kZXggZjlmMDljNDc1MTNhLi4xMWNmYjE2NGJiNjQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2Fz
bS9yZWdyZXNzL2xsaW50LWNhbGxlZS1zYXZlcy13aXRoLWZhc3QtbWVtb3J5LmpzCisrKyBiL0pT
VGVzdHMvd2FzbS9yZWdyZXNzL2xsaW50LWNhbGxlZS1zYXZlcy13aXRoLWZhc3QtbWVtb3J5Lmpz
CkBAIC0xLDMgKzEsNCBAQAorLy9AIHNraXAgaWYgJGFyY2hpdGVjdHVyZSA9PSAiYXJtIgogLy9A
IHJlcXVpcmVPcHRpb25zKCItLXVzZVdlYkFzc2VtYmx5RmFzdE1lbW9yeT10cnVlIikKIAogaW1w
b3J0ICogYXMgYXNzZXJ0IGZyb20gJy4uL2Fzc2VydC5qcyc7Ci0tIAoyLjMwLjIKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>460061</attachid>
            <date>2022-06-07 07:09:48 -0700</date>
            <delta_ts>2022-06-09 04:37:38 -0700</delta_ts>
            <desc>v13 - ARM64E fix</desc>
            <filename>bug-221260-20220607140946.patch</filename>
            <type>text/plain</type>
            <size>316800</size>
            <attacher name="Geza Lore">glore</attacher>
            
              <data encoding="base64">RnJvbSBkNzJlNzA3OWE4NGM1ZjEyYjBhMmEyN2JkNGY4MjM1ZTgyZjIyMTE4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHZXphIExvcmUgPGdsb3JlQGlnYWxpYS5jb20+CkRhdGU6IEZy
aSwgMjcgTWF5IDIwMjIgMDg6NDc6MjEgKzAwMDAKU3ViamVjdDogW1BBVENIXSBFbmFibGUgV2Fz
bUxMSW50IG9uIEFSTXY3Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp
bjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpQYXRjaCBi
eSBHZXphIExvcmUgPGdsb3JlQGlnYWxpYS5jb20+IG9uIDIwMjItMDUtMjcKaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTI2MAoKUmV2aWV3ZWQgYnkgU2FhbSBCYXJh
dGkuCgpQYXRjaCBieSBHZXphIExvcmUgYW5kIFhhbiBMw7NwZXouCgpJbXBsZW1lbnQgdGhlIExM
SW50IHRpZXIgb2YgV2ViQXNzZW1ibHkgZm9yIEFSTXY3LiBBIGxvdCBvZiB0aGUKd29yayB3aWxs
IGJlIHNoYXJlZCBieSBhbnkgMzJiaXQgcG9ydCwgYnV0IHRoZSBvZmZsaW5lYXNzZW1ibGVyCmhh
cyBvbmx5IGJlZW4gdXBkYXRlZCBmb3IgQVJNdjcgc28gZmFyLgoKTWFpbiBoaWdobGlnaHRzOgoK
V2UgaGF2ZSBzcGxpdCB0aGUgV2ViQXNzZW1ibHkuYXNtIGZpbGUgaW50byB0aHJlZSBjaHVua3Ms
CmZvbGxvd2luZyB3aGF0IExvd0xldmVsSW50ZXJwcmV0ZXIuYXNtIGRvZXMuIFRoZSBjb21tb24g
Y29kZQpyZW1haW5zIGluIFdlYkFzc2VtYmx5LmFzbSwgYW5kIDMyIGFuZCA2NGJpdCBzcGVjaWZp
YyBjb2RlIChtb3N0bHkKb3Bjb2RlIGltcGxlbWVudGF0aW9ucykgZ29lcyBpbnRvIFdlYkFzc2Vt
Ymx5MzJfNjQuYXNtIGFuZApXZWJBc3NlbWJseTY0LmFzbS4KCldlIGhhdmUgZGVjaWRlZCB0byB1
c2UgY29uc2VjdXRpdmUgZXZlbi9vZGQgcGFpcnMgb2YgR1BScyBmb3IgZXZlcnkKdHlwZSBvZiB3
YXNtIHZhbHVlcywgZXZlbiBpZiB0aGV5IGFyZSAzMmJpdCAoaTMyL2YzMiksIHdpdGggdGhlIG9k
ZAooaGlnaGVyKSBudW1iZXJlZCBHUFIgaG9sZGluZyB0aGUgbW9yZSBzaWduaWZpY2FudCBoYWxm
LiAzMmJpdCB2YWx1ZXMKYXJlIGhlbGQgaW4gdGhlIGV2ZW4gKGxvd2VyKSBudW1iZXJlZCByZWdp
c3Rlci4gVGhpcyBtYWtlcyB0aGUgY29kZQptdWNoIHNpbXBsZXIgYW5kIGFsbG93cyB1cyB0byBz
aGFyZSBtb3JlIGNvZGUgd2l0aCB0aGUgNjRiaXQgdmFyaWFudC4KVGhpcyBpcyBtb3N0bHkgcmVs
ZXZhbnQgZm9yIGFyZ3VtZW50IHBhc3NpbmcsIGFuZCBnaXZlbiB0aGF0IGV2ZXJ5CnZhbHVlIGVu
ZHMgdXAgaW4gdGhlIHN0YWNrIGFueXdheSB3ZSBkbyBub3QgdGhpbmsgaXQgaXMgc2lnbmlmaWNh
bnQKZnJvbSBhIHBlcmZvcm1hbmNlIFBPVi4KCldlIGFyZSByZXVzaW5nIEpTVmFsdWVSZWdzIHRv
IGhvbGQgV2FzbSB2YWx1ZXMgdG9vLiBPYnZpb3VzbHkgdGhleQphcmUgbm90IHJlYWxseSBKU1Zh
bHVlcywgc28gaXQgbWlnaHQgbWFrZSBzZW5zZSB0byBjcmVhdGUgYSBiYXNlCmNsYXNzIHRoYXQg
Y2FuIGJlIHVzZWQgZm9yIGJvdGggSlMgYW5kIFdhc20gdmFsdWVzLgoKV2UgZG8gbm90IGhhdmUg
ZW5vdWdoIHJlZ2lzdGVycyB0byBrZWVwIHRoaW5ncyBsaWtlIHRoZSBtZW1vcnkKYmFzZSBwb2lu
dGVyIGFuZCBzaXplIGluIHBpbm5lZCByZWdpc3RlcnMsIHNvIHdlIGFyZSBmb3JjZWQgdG8KbG9h
ZCB0aGVtIG9uIGVhY2ggdXNlLgoKV2UgZGlzYWJsZSB0aGUgJ1NpZ25hbGluZycgbWVtb3J5IG1v
ZGUsIHNpbmNlIHRoZSBjdXJyZW50CmltcGxlbWVudGF0aW9uIHJlbGllcyBvbiBiZWluZyBhYmxl
IHRvIG1wcm90ZWN0IGEgMl4zMiArIHJlZHpvbmUKcmVnaW9uIG9mIG1lbW9yeS4gVGhpcyBjYW4g
YmUgY2hhbmdlZCBpbiB0aGUgZnV0dXJlIGJ1dCBpdCdzIG5vdCBhCnByaW9yaXR5IGF0IHRoZSBt
b21lbnQuCgoqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5hbWUtc2VjdGlvbi5qczoK
KiBzdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qczoKKiB3YXNtL3JlZ3Jlc3MvbGxpbnQt
Y2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnkuanM6CiogQ01ha2VMaXN0cy50eHQ6CiogYXNz
ZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmg6CihKU0M6OkFSTXY3QXNzZW1ibGVyOjp2Y3Z0X3NpZ25l
ZFRvRmxvYXRpbmdQb2ludCk6CiogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaDoKKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6Y29udmVydEludDMyVG9GbG9hdCk6CihKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNdjc6OnRocmVhZFNhZmVQYXRjaGFibGVOZWFyQ2FsbCk6CihKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNdjc6OmNhbGxPcGVyYXRpb24pOgoqIGIzL0IzVmFsdWVSZXAuaDoKKEpTQzo6
QjM6OlZhbHVlUmVwOjpWYWx1ZVJlcCk6CiogYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwOgoo
SlNDOjpXYXNtOjpCeXRlY29kZUR1bXBlcjo6Zm9ybWF0Q29uc3RhbnQgY29uc3QpOgoqIGludGVy
cHJldGVyL0NhbGxGcmFtZS5oOiBhZGFwdCB0byBuZXcgY2FsbGVlIHRhZ2dpbmcgZm9ybWF0Lgoo
SlNDOjpDYWxsRnJhbWU6OmNhbGxlZSBjb25zdCk6CihKU0M6OkNhbGxGcmFtZTo6dW5zYWZlQ2Fs
bGVlIGNvbnN0KToKKiBpbnRlcnByZXRlci9DYWxsZWVCaXRzLmg6IGFkZCB3YXNtIHRhZ2dpbmcg
b2YgY2FsbGVlIHZhbHVlcyBmb3IKMzJiaXQuCihKU0M6OkNhbGxlZUJpdHM6OkNhbGxlZUJpdHMp
OgooSlNDOjpDYWxsZWVCaXRzOjpvcGVyYXRvcj0pOgooSlNDOjpDYWxsZWVCaXRzOjpib3hXYXNt
KToKKEpTQzo6Q2FsbGVlQml0czo6aXNXYXNtIGNvbnN0KToKKEpTQzo6Q2FsbGVlQml0czo6YXNX
YXNtQ2FsbGVlIGNvbnN0KToKKiBpbnRlcnByZXRlci9SZWdpc3Rlci5oOgooSlNDOjpSZWdpc3Rl
cjo6dW5ib3hlZEZsb2F0IGNvbnN0KToKKEpTQzo6UmVnaXN0ZXI6OmFzYW5VbnNhZmVVbmJveGVk
RmxvYXQgY29uc3QpOgoqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoKKEpTQzo6QXNzZW1ibHlIZWxw
ZXJzOjp1bmJveERvdWJsZSk6Ciogaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmNwcDoKKEpTQzo6
UmVnaXN0ZXJBdE9mZnNldExpc3Q6OlJlZ2lzdGVyQXRPZmZzZXRMaXN0KToKKiBqaXQvUmVnaXN0
ZXJBdE9mZnNldExpc3QuaDoKKEpTQzo6UmVnaXN0ZXJBdE9mZnNldExpc3Q6OnNpemVPZkFyZWFJ
bkJ5dGVzIGNvbnN0KToKKiBqaXQvUmVnaXN0ZXJTZXQuY3BwOgooSlNDOjpSZWdpc3RlclNldDo6
bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKToKKiBsbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaDoK
KiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgoqIGxsaW50L1dlYkFzc2VtYmx5
LmFzbToKKiBsbGludC9XZWJBc3NlbWJseTMyXzY0LmFzbTogQWRkZWQuCiogbGxpbnQvV2ViQXNz
ZW1ibHk2NC5hc206IEFkZGVkLgoqIG9mZmxpbmVhc20vYXJtLnJiOgoqIG9mZmxpbmVhc20vaW5z
dHJ1Y3Rpb25zLnJiOgoqIG9mZmxpbmVhc20vcmVnaXN0ZXJzLnJiOgoqIG9mZmxpbmVhc20vcmlz
Yy5yYjoKKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKEpTQzo6d2FzbVVuYm94ZWRGbG9hdCk6Ciog
cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oOgooSlNDOjpKU1ZhbHVlOjpKU1ZhbHVlKToKKiB3
YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHA6CihKU0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjp1
c2VTaWduYWxpbmdNZW1vcnkgY29uc3QpOgooSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6QWly
SVJHZW5lcmF0b3IpOgooSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6ZW1pdENoZWNrQW5kUHJl
cGFyZVBvaW50ZXIpOgooSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6YWRkQ2FsbCk6Ciogd2Fz
bS9XYXNtQjNJUkdlbmVyYXRvci5jcHA6CihKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OnVzZVNp
Z25hbGluZ01lbW9yeSBjb25zdCk6CihKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OkIzSVJHZW5l
cmF0b3IpOgooSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjphZGRBcmd1bWVudHMpOgooSlNDOjpX
YXNtOjpCM0lSR2VuZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcik6CihKU0M6Oldh
c206OkIzSVJHZW5lcmF0b3I6Om1lbW9yeUtpbmQpOgooSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9y
OjphZGRDYWxsKToKKiB3YXNtL1dhc21CaW5kaW5nLmNwcDoKKEpTQzo6V2FzbTo6d2FzbVRvV2Fz
bSk6Ciogd2FzbS9XYXNtQ2FsbGVlLmNwcDoKKEpTQzo6V2FzbTo6TExJbnRDYWxsZWU6OmNhbGxl
ZVNhdmVSZWdpc3RlcnMpOgoqIHdhc20vV2FzbUNhbGxlZUdyb3VwLmNwcDoKKEpTQzo6V2FzbTo6
Q2FsbGVlR3JvdXA6OmlzU2FmZVRvUnVuKToKKiB3YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5j
cHA6CihKU0M6Oldhc206OmpzQ2FsbGluZ0NvbnZlbnRpb24pOgooSlNDOjpXYXNtOjp3YXNtQ2Fs
bGluZ0NvbnZlbnRpb24pOgoqIHdhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmg6CihKU0M6Oldh
c206OkNhbGxJbmZvcm1hdGlvbjo6Y29tcHV0ZVJlc3VsdHNPZmZzZXRMaXN0KToKKEpTQzo6V2Fz
bTo6V2FzbUNhbGxpbmdDb252ZW50aW9uOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb24pOgooSlNDOjpX
YXNtOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxsTG9jYXRpb25JbXBsIGNvbnN0KToK
KEpTQzo6V2FzbTo6V2FzbUNhbGxpbmdDb252ZW50aW9uOjptYXJzaGFsbExvY2F0aW9uIGNvbnN0
KToKKEpTQzo6V2FzbTo6SlNDYWxsaW5nQ29udmVudGlvbjo6SlNDYWxsaW5nQ29udmVudGlvbik6
CihKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxsTG9jYXRpb25JbXBsIGNv
bnN0KToKKEpTQzo6V2FzbTo6SlNDYWxsaW5nQ29udmVudGlvbjo6bWFyc2hhbGxMb2NhdGlvbiBj
b25zdCk6CihKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246OmNhbGxJbmZvcm1hdGlvbkZv
ciBjb25zdCk6Ciogd2FzbS9XYXNtRm9ybWF0Lmg6Ciogd2FzbS9XYXNtSW5kZXhPck5hbWUuY3Bw
OgooSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6SW5kZXhPck5hbWUpOgooSlNDOjpXYXNtOjptYWtl
U3RyaW5nKToKKiB3YXNtL1dhc21JbmRleE9yTmFtZS5oOgooSlNDOjpXYXNtOjpJbmRleE9yTmFt
ZTo6SW5kZXhPck5hbWUpOgooSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6aXNFbXB0eSBjb25zdCk6
CihKU0M6Oldhc206OkluZGV4T3JOYW1lOjppc0luZGV4IGNvbnN0KToKKEpTQzo6V2FzbTo6SW5k
ZXhPck5hbWU6OmlzTmFtZSBjb25zdCk6CihKU0M6Oldhc206OkluZGV4T3JOYW1lOjppbmRleCBj
b25zdCk6CihKU0M6Oldhc206OkluZGV4T3JOYW1lOjpuYW1lIGNvbnN0KToKKEpTQzo6V2FzbTo6
SW5kZXhPck5hbWU6Om5hbWVTZWN0aW9uIGNvbnN0KToKKiB3YXNtL1dhc21JbnN0YW5jZS5oOgoo
SlNDOjpXYXNtOjpJbnN0YW5jZTo6dXBkYXRlQ2FjaGVkTWVtb3J5KToKKiB3YXNtL1dhc21MTElu
dEdlbmVyYXRvci5jcHA6CihKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjp2aXJ0dWFsUmVnaXN0
ZXJGb3JXYXNtTG9jYWwpOgooSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0
aW9uRm9yQ2FsbGVyKToKKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlv
bkZvckNhbGxlZSk6CihKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjphZGRBcmd1bWVudHMpOgoo
SlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6YWRkTG9vcCk6Ciogd2FzbS9XYXNtTExJbnRQbGFu
LmNwcDoKKEpTQzo6V2FzbTo6TExJbnRQbGFuOjpkaWRDb21wbGV0ZUNvbXBpbGF0aW9uKToKKiB3
YXNtL1dhc21NZW1vcnkuY3BwOgooSlNDOjpXYXNtOjpNZW1vcnlIYW5kbGU6On5NZW1vcnlIYW5k
bGUpOgooSlNDOjpXYXNtOjpNZW1vcnk6OnRyeUNyZWF0ZSk6CihKU0M6Oldhc206Ok1lbW9yeTo6
Z3Jvd1NoYXJlZCk6CihKU0M6Oldhc206Ok1lbW9yeTo6Z3Jvdyk6CihKU0M6Oldhc206Ok1lbW9y
eTo6Y29weSk6Ciogd2FzbS9XYXNtTWVtb3J5Lmg6Ciogd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRp
b24uY3BwOgooSlNDOjpXYXNtOjpQaW5uZWRSZWdpc3RlckluZm86OmdldCk6Ciogd2FzbS9XYXNt
TWVtb3J5SW5mb3JtYXRpb24uaDoKKEpTQzo6V2FzbTo6UGlubmVkUmVnaXN0ZXJJbmZvOjp0b1Nh
dmUgY29uc3QpOgoqIHdhc20vV2FzbU1lbW9yeU1vZGUuY3BwOgooSlNDOjpXYXNtOjptYWtlU3Ry
aW5nKToKKiB3YXNtL1dhc21NZW1vcnlNb2RlLmg6Ciogd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNw
cDoKKiB3YXNtL1dhc21PcGNvZGVPcmlnaW4uaDoKKiB3YXNtL1dhc21PcGVyYXRpb25zLmNwcDoK
KEpTQzo6V2FzbTo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKToKKiB3YXNtL1dhc21PcGVyYXRp
b25zLmg6Ciogd2FzbS9XYXNtUGFnZUNvdW50Lmg6Ciogd2FzbS9XYXNtUGFyc2VyLmg6CihKU0M6
Oldhc206OlBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVUludDMyKToKKEpTQzo6V2FzbTo6UGFy
c2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VVSW50NjQpOgoqIHdhc20vV2FzbVNsb3dQYXRocy5jcHA6
CihKU0M6OkxMSW50OjpXQVNNX1NMT1dfUEFUSF9ERUNMKToKKEpTQzo6TExJbnQ6OnNsb3dfcGF0
aF93YXNtX3BvcGNvdW50KToKKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX3BvcGNvdW50bGwp
OgooSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTMyX2Rpdl9zKToKKEpTQzo6TExJbnQ6OnNs
b3dfcGF0aF93YXNtX2kzMl9kaXZfdSk6CihKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pMzJf
cmVtX3MpOgooSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTMyX3JlbV91KToKKEpTQzo6TExJ
bnQ6OnNsb3dfcGF0aF93YXNtX2k2NF9kaXZfcyk6CihKU0M6OkxMSW50OjpzbG93X3BhdGhfd2Fz
bV9pNjRfZGl2X3UpOgooSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTY0X3JlbV9zKToKKEpT
Qzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2k2NF9yZW1fdSk6Ciogd2FzbS9XYXNtU2xvd1BhdGhz
Lmg6Ciogd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5jcHA6CihKU0M6Oldhc206OlZhbHVlTG9jYXRp
b246OmR1bXAgY29uc3QpOgooV1RGOjpwcmludEludGVybmFsKToKKiB3YXNtL1dhc21WYWx1ZUxv
Y2F0aW9uLmg6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OlZhbHVlTG9jYXRpb24pOgooSlND
OjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjppc0dQUiBjb25zdCk6CihKU0M6Oldhc206OlZhbHVlTG9j
YXRpb246OmlzRlBSIGNvbnN0KToKKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6aXNTdGFjayBj
b25zdCk6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzU3RhY2tBcmd1bWVudCBjb25zdCk6
CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmpzciBjb25zdCk6CihKU0M6Oldhc206OlZhbHVl
TG9jYXRpb246OmZwciBjb25zdCk6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OnJlZyk6IERl
bGV0ZWQuCihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzUmVnIGNvbnN0KTogRGVsZXRlZC4K
KEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6cmVnIGNvbnN0KTogRGVsZXRlZC4KKEpTQzo6V2Fz
bTo6VmFsdWVMb2NhdGlvbjo6Z3ByIGNvbnN0KTogRGVsZXRlZC4KKiB3YXNtL2pzL0pTVG9XYXNt
LmNwcDoKKEpTQzo6V2FzbTo6bWFyc2hhbGxKU1Jlc3VsdCk6CihKU0M6Oldhc206OmNyZWF0ZUpT
VG9XYXNtV3JhcHBlcik6Ciogd2FzbS9qcy9XYXNtVG9KUy5jcHA6CihKU0M6Oldhc206Ondhc21U
b0pTKToKKiB3YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwOgooSlNDOjpXZWJBc3NlbWJs
eUZ1bmN0aW9uOjpwcmV2aW91c0luc3RhbmNlT2Zmc2V0IGNvbnN0KToKKEpTQzo6V2ViQXNzZW1i
bHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3cpOgoqIHdhc20vanMvV2ViQXNzZW1ibHlH
bG9iYWxDb25zdHJ1Y3Rvci5jcHA6CihKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6Ciog
d2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHA6CihKU0M6OldlYkFzc2VtYmx5TW9k
dWxlUmVjb3JkOjppbml0aWFsaXplRXhwb3J0cyk6Ciogd3RmL1BsYXRmb3JtRW5hYmxlLmg6IGVu
YWJsZSBXZWJBc3NlbWJseSBvbiBBUk12Ny4KKiBTY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3Rz
OiBhbGxvdyB0byBydW4gdGhlIHdhc20gdGVzdHMgb24KYXJtdjcgZXZlbiB3aXRob3V0IGppdCBz
dXBwb3J0IChmb3Igbm93KS4KLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQgICAgICAgICAgfCAgICAyICsKIC4uLi9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdB
c3NlbWJsZXIuaCB8ICAgIDQgKy0KIC4uLi9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5o
ICAgICAgICAgICB8ICAgMjAgKwogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAu
aCAgICAgICAgIHwgICAgOCArLQogLi4uL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcCAgICAg
ICAgICAgICAgIHwgICAgMiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0Nh
bGxGcmFtZS5oIHwgICAgNCArLQogLi4uL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxl
ZUJpdHMuaCAgIHwgICAzNSArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1Jl
Z2lzdGVyLmggIHwgICAxNiArCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVs
cGVycy5oICAgfCAgICA1ICstCiAuLi4vbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmggICAg
ICAgICAgICAgfCAgICA2ICsKIC4uLi9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNt
ICAgICAgICB8ICAgMTYgKwogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5
LmFzbSAgIHwgMTUxOSArKystLS0tLS0tLS0tLS0tLQogLi4uL0phdmFTY3JpcHRDb3JlL2xsaW50
L1dlYkFzc2VtYmx5MzJfNjQuYXNtIHwgMTEyOSArKysrKysrKysrKysKIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9XZWJBc3NlbWJseTY0LmFzbSB8IDEyNTkgKysrKysrKysrKysrKysKIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybS5yYiAgICAgICB8ICAyODEgKystCiAu
Li4vSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIgfCAgIDE3ICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIgfCAgICAzICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiICAgICAgfCAgICA2ICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmggICAgfCAgIDE4ICstCiAu
Li4vcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oICAgICAgICAgICAgICAgfCAgICA3ICsKIC4u
Li93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAgICAgICAgICAgICAgICB8ICAgMTUgKy0KIC4u
Li9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcCB8ICAgMjkgKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5kaW5nLmNwcCAgICB8ICAgMTggKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuY3BwICAgICB8ICAgIDUgKy0KIC4u
Li9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWVHcm91cC5jcHAgICB8ICAgIDQgKwogLi4u
L3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmNwcCAgICAgICAgICAgIHwgICAzOCArLQogLi4u
L3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmggICAgICAgICAgICAgIHwgICA0MSArLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oICAgICAgIHwgICAgMiArCiAuLi4v
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwICAgfCAgIDI3ICstCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaCAgfCAgIDcyICstCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaCAgICAgfCAgICA1ICstCiAuLi4v
d2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwICAgICAgICAgICAgICAgfCAgIDEwICstCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcCAgfCAgICA3ICstCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcCAgICAgfCAgIDUwICstCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmggICAgICAgfCAgICA1ICstCiAuLi4v
d2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwICAgICAgICAgICAgfCAgICA3ICsKIC4uLi93
YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5oICAgICAgICAgICAgICB8ICAgIDUgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmNwcCB8ICAgIDIgKwogU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuaCAgIHwgICAgMiArCiAuLi4vSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcCAgfCAgICA0ICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmggfCAgICA0ICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAgfCAgIDU0ICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oICAgfCAgIDE1ICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFnZUNvdW50LmggICAgfCAgICA3ICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmggICAgICAgfCAgICA0ICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmNwcCAgfCAgMjMwICsrLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5oICAgIHwgICAzNCArCiAuLi4vSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5jcHAgfCAgIDE0ICstCiAuLi4vSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5oICAgfCAgIDQ0ICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAgICAgfCAgMTg0ICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAgICAgfCAgMTQ4ICstCiAuLi4vd2Fz
bS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcCAgICAgICAgICAgfCAgMTUyICstCiAuLi4vd2Fz
bS9qcy9XZWJBc3NlbWJseUdsb2JhbENvbnN0cnVjdG9yLmNwcCAgfCAgICAyICstCiAuLi4vd2Fz
bS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAgICAgICAgfCAgICAyICstCiBTb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oICAgICAgICAgICAgICAgfCAgICA2ICstCiBUb29scy9T
Y3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzICAgICAgICAgICAgfCAgIDU0ICstCiAuLi4vc2Ft
cGxpbmctcHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24uanMgICAgfCAgICA1ICsKIEpTVGVzdHMv
c3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanMgICAgICB8ICAgIDEgKwogLi4uL2xsaW50
LWNhbGxlZS1zYXZlcy13aXRoLWZhc3QtbWVtb3J5LmpzICAgIHwgICAgMSArCiA1OSBmaWxlcyBj
aGFuZ2VkLCAzOTk3IGluc2VydGlvbnMoKyksIDE2NjkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5MzJfNjQuYXNt
CiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2Vt
Ymx5NjQuYXNtCgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMu
dHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGJiNGFkMDFl
NDI2Mi4uMGFhNmJiYzI2M2RjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC0yMDAsNiArMjAwLDggQEAgc2V0KExMSU5UX0FTTQogICAgIGxsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIzMl82NC5hc20KICAgICBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCiAgICAg
bGxpbnQvV2ViQXNzZW1ibHkuYXNtCisgICAgbGxpbnQvV2ViQXNzZW1ibHkzMl82NC5hc20KKyAg
ICBsbGludC9XZWJBc3NlbWJseTY0LmFzbQogKQogCiBzZXQoT0ZGTElORV9BU00KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAppbmRleCA5Y2E2
YTRhNmM4NDEuLjZjNzZlNGVmNTIzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaApAQCAtMTk5MSwxMCArMTk5MSwxMCBAQCBwdWJsaWM6
CiAgICAgICAgIG1fZm9ybWF0dGVyLnZmcE9wKE9QX1ZDTVAsIE9QX1ZDTVBiLCB0cnVlLCBWRlBP
cGVyYW5kKDUpLCByZCwgVkZQT3BlcmFuZCgwKSk7CiAgICAgfQogCi0gICAgdm9pZCB2Y3Z0X3Np
Z25lZFRvRmxvYXRpbmdQb2ludChGUERvdWJsZVJlZ2lzdGVySUQgcmQsIEZQU2luZ2xlUmVnaXN0
ZXJJRCBybSkKKyAgICB2b2lkIHZjdnRfc2lnbmVkVG9GbG9hdGluZ1BvaW50KEZQRG91YmxlUmVn
aXN0ZXJJRCByZCwgRlBTaW5nbGVSZWdpc3RlcklEIHJtLCBib29sIHRvRG91YmxlID0gdHJ1ZSkK
ICAgICB7CiAgICAgICAgIC8vIGJvb2xlYW4gdmFsdWVzIGFyZSA2NGJpdCAodG9JbnQsIHVuc2ln
bmVkLCByb3VuZFplcm8pCi0gICAgICAgIG1fZm9ybWF0dGVyLnZmcE9wKE9QX1ZDVlRfRlBJVkZQ
LCBPUF9WQ1ZUX0ZQSVZGUGIsIHRydWUsIHZjdnRPcChmYWxzZSwgZmFsc2UsIGZhbHNlKSwgcmQs
IHJtKTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudmZwT3AoT1BfVkNWVF9GUElWRlAsIE9QX1ZDVlRf
RlBJVkZQYiwgdG9Eb3VibGUsIHZjdnRPcChmYWxzZSwgZmFsc2UsIGZhbHNlKSwgcmQsIHJtKTsK
ICAgICB9CiAKICAgICB2b2lkIHZjdnRfZmxvYXRpbmdQb2ludFRvU2lnbmVkKEZQU2luZ2xlUmVn
aXN0ZXJJRCByZCwgRlBEb3VibGVSZWdpc3RlcklEIHJtKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRleCA0MmI4YTQ4
Y2RkMjIuLjAwYjhlZDY4OTFlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKQEAgLTE0NjcsNiArMTQ2NywxMiBAQCBw
dWJsaWM6CiAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCisgICAgdm9pZCBjb252ZXJ0SW50MzJU
b0Zsb2F0KFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAg
IG1fYXNzZW1ibGVyLnZtb3YoZnBUZW1wUmVnaXN0ZXIsIHNyYywgc3JjKTsKKyAgICAgICAgbV9h
c3NlbWJsZXIudmN2dF9zaWduZWRUb0Zsb2F0aW5nUG9pbnQoZGVzdCwgZnBUZW1wUmVnaXN0ZXJB
c1NpbmdsZSgpLCAvKiB0b0RvdWJsZTogKi8gZmFsc2UpOworICAgIH0KKwogICAgIHZvaWQgY29u
dmVydEludDMyVG9Eb3VibGUoUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAg
IHsKICAgICAgICAgbV9hc3NlbWJsZXIudm1vdihmcFRlbXBSZWdpc3Rlciwgc3JjLCBzcmMpOwpA
QCAtMjI5OCw2ICsyMzA0LDE0IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIENhbGwobV9hc3Nl
bWJsZXIuYigpLCBDYWxsOjpMaW5rYWJsZU5lYXJUYWlsKTsKICAgICB9CiAKKyAgICAvLyBGSVhN
RTogd2h5IGlzIHRoaXMgdGhlIHNhbWUgdGhhbiBuZWFyQ2FsbCgpIGluIEFSTTY0PyBpcyBpdCBy
aWdodD8KKyAgICBBTFdBWVNfSU5MSU5FIENhbGwgdGhyZWFkU2FmZVBhdGNoYWJsZU5lYXJDYWxs
KCkKKyAgICB7CisgICAgICAgIGludmFsaWRhdGVBbGxUZW1wUmVnaXN0ZXJzKCk7CisgICAgICAg
IG1vdmVGaXhlZFdpZHRoRW5jb2RpbmcoVHJ1c3RlZEltbTMyKDApLCBkYXRhVGVtcFJlZ2lzdGVy
KTsKKyAgICAgICAgcmV0dXJuIENhbGwobV9hc3NlbWJsZXIuYmx4KGRhdGFUZW1wUmVnaXN0ZXIp
LCBDYWxsOjpMaW5rYWJsZU5lYXIpOworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUgQ2FsbCBj
YWxsKFB0clRhZykKICAgICB7CiAgICAgICAgIG1vdmVGaXhlZFdpZHRoRW5jb2RpbmcoVHJ1c3Rl
ZEltbTMyKDApLCBkYXRhVGVtcFJlZ2lzdGVyKTsKQEAgLTIzMjIsNiArMjMzNiwxMiBAQCBwdWJs
aWM6CiAgICAgQUxXQVlTX0lOTElORSBDYWxsIGNhbGwoUmVnaXN0ZXJJRCB0YXJnZXQsIFJlZ2lz
dGVySUQgY2FsbFRhZykgeyByZXR1cm4gVU5VU0VEX1BBUkFNKGNhbGxUYWcpLCBjYWxsKHRhcmdl
dCwgTm9QdHJUYWcpOyB9CiAgICAgQUxXQVlTX0lOTElORSBDYWxsIGNhbGwoQWRkcmVzcyBhZGRy
ZXNzLCBSZWdpc3RlcklEIGNhbGxUYWcpIHsgcmV0dXJuIFVOVVNFRF9QQVJBTShjYWxsVGFnKSwg
Y2FsbChhZGRyZXNzLCBOb1B0clRhZyk7IH0KIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBjYWxs
T3BlcmF0aW9uKGNvbnN0IEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4gb3BlcmF0aW9uKQor
ICAgIHsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKG9wZXJhdGlvbi5leGVjdXRhYmxlQWRk
cmVzcygpKSwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7CisgICAgICAgIGNhbGwoYWRkcmVzc1RlbXBS
ZWdpc3RlciwgT3BlcmF0aW9uUHRyVGFnKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZv
aWQgcmV0KCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmJ4KGxpbmtSZWdpc3Rlcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAuaAppbmRleCAxNTdiYzg4NjgyMzEuLjc2OTM4
YzZmZWNhYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oCkBAIC0xMjYsOSAr
MTI2LDEzIEBAIHB1YmxpYzoKICAgICBWYWx1ZVJlcChXYXNtOjpWYWx1ZUxvY2F0aW9uIGxvY2F0
aW9uKQogICAgIHsKICAgICAgICAgc3dpdGNoIChsb2NhdGlvbi5raW5kKCkpIHsKLSAgICAgICAg
Y2FzZSBXYXNtOjpWYWx1ZUxvY2F0aW9uOjpLaW5kOjpSZWdpc3RlcjoKKyAgICAgICAgY2FzZSBX
YXNtOjpWYWx1ZUxvY2F0aW9uOjpLaW5kOjpHUFJSZWdpc3RlcjoKICAgICAgICAgICAgIG1fa2lu
ZCA9IFJlZ2lzdGVyOwotICAgICAgICAgICAgdS5yZWcgPSBsb2NhdGlvbi5yZWcoKTsKKyAgICAg
ICAgICAgIHUucmVnID0gbG9jYXRpb24uanNyKCkucGF5bG9hZEdQUigpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgV2FzbTo6VmFsdWVMb2NhdGlvbjo6S2luZDo6RlBSUmVnaXN0
ZXI6CisgICAgICAgICAgICBtX2tpbmQgPSBSZWdpc3RlcjsKKyAgICAgICAgICAgIHUucmVnID0g
bG9jYXRpb24uZnByKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXYXNtOjpW
YWx1ZUxvY2F0aW9uOjpLaW5kOjpTdGFjazoKICAgICAgICAgICAgIG1fa2luZCA9IFN0YWNrOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVy
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAK
aW5kZXggZDU0Yzc0ZmM2M2M2Li43YjNmNWZjOWZiMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcApAQCAtNDEzLDcgKzQxMyw3IEBA
IENTdHJpbmcgQnl0ZWNvZGVEdW1wZXI6OmZvcm1hdENvbnN0YW50KFR5cGUgdHlwZSwgdWludDY0
X3QgY29uc3RhbnQpIGNvbnN0CiAgICAgICAgIGlmIChpc0Z1bmNyZWYodHlwZSkgfHwgaXNFeHRl
cm5yZWYodHlwZSkpIHsKICAgICAgICAgICAgIGlmIChKU1ZhbHVlOjpkZWNvZGUoY29uc3RhbnQp
ID09IGpzTnVsbCgpKQogICAgICAgICAgICAgICAgIHJldHVybiAibnVsbCI7Ci0gICAgICAgICAg
ICByZXR1cm4gdG9DU3RyaW5nKFJhd1BvaW50ZXIoYml0d2lzZV9jYXN0PHZvaWQqPihjb25zdGFu
dCkpKTsKKyAgICAgICAgICAgIHJldHVybiB0b0NTdHJpbmcoUmF3UG9pbnRlcihiaXR3aXNlX2Nh
c3Q8dm9pZCo+KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oY29uc3RhbnQpKSkpOwogICAgICAgICB9
CiAKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAppbmRleCA4ZjUzYzMzZTRiMWIuLjBl
NDBkZWRmODAwOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0NhbGxGcmFtZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxs
RnJhbWUuaApAQCAtMTY3LDggKzE2Nyw4IEBAIG5hbWVzcGFjZSBKU0MgIHsKICAgICAgICAgLy8g
dG8gc2VlIGlmIGl0J3MgYSBjZWxsLCBhbmQgaWYgaXQncyBub3QsIHdlIHRocm93IGFuIGV4Y2Vw
dGlvbi4KICAgICAgICAgaW5saW5lIEpTVmFsdWUgZ3VhcmFudGVlZEpTVmFsdWVDYWxsZWUoKSBj
b25zdDsKICAgICAgICAgaW5saW5lIEpTT2JqZWN0KiBqc0NhbGxlZSgpIGNvbnN0OwotICAgICAg
ICBDYWxsZWVCaXRzIGNhbGxlZSgpIGNvbnN0IHsgcmV0dXJuIENhbGxlZUJpdHModGhpc1tzdGF0
aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSldLnBvaW50ZXIoKSk7IH0KLSAgICAg
ICAgU1VQUFJFU1NfQVNBTiBDYWxsZWVCaXRzIHVuc2FmZUNhbGxlZSgpIGNvbnN0IHsgcmV0dXJu
IENhbGxlZUJpdHModGhpc1tzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSld
LmFzYW5VbnNhZmVQb2ludGVyKCkpOyB9CisgICAgICAgIENhbGxlZUJpdHMgY2FsbGVlKCkgY29u
c3QgeyByZXR1cm4gQ2FsbGVlQml0cyh0aGlzW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xv
dDo6Y2FsbGVlKV0udW5ib3hlZEludDY0KCkpOyB9CisgICAgICAgIFNVUFBSRVNTX0FTQU4gQ2Fs
bGVlQml0cyB1bnNhZmVDYWxsZWUoKSBjb25zdCB7IHJldHVybiBDYWxsZWVCaXRzKHRoaXNbc3Rh
dGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXS5hc2FuVW5zYWZlVW5ib3hlZElu
dDY0KCkpOyB9CiAgICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrKCkgY29uc3Q7CiAgICAgICAg
IENvZGVCbG9jayoqIGFkZHJlc3NPZkNvZGVCbG9jaygpIGNvbnN0IHsgcmV0dXJuIGJpdHdpc2Vf
Y2FzdDxDb2RlQmxvY2sqKj4odGhpcyArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6
Y29kZUJsb2NrKSk7IH0KICAgICAgICAgaW5saW5lIFNVUFBSRVNTX0FTQU4gQ29kZUJsb2NrKiB1
bnNhZmVDb2RlQmxvY2soKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvQ2FsbGVlQml0cy5oCmluZGV4IDE4YmI3ZWY3ZmE4Yy4uZGVhM2FlNTU4MTYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbGVlQml0cy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmgKQEAgLTM5
LDExICszOSwyMSBAQCBjbGFzcyBKU0NlbGw7CiBjbGFzcyBDYWxsZWVCaXRzIHsKIHB1YmxpYzoK
ICAgICBDYWxsZWVCaXRzKCkgPSBkZWZhdWx0OwotICAgIENhbGxlZUJpdHModm9pZCogcHRyKSA6
IG1fcHRyKHB0cikgeyB9IAorICAgIENhbGxlZUJpdHMoaW50NjRfdCB2YWx1ZSkKKyNpZiBVU0Uo
SlNWQUxVRTY0KQorICAgICAgICA6IG1fcHRyIHsgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odmFs
dWUpIH0KKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIDogbV9wdHIgeyByZWludGVy
cHJldF9jYXN0PHZvaWQqPihKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLnBheWxvYWQoKSkgfQorICAg
ICAgICAsIG1fdGFnIHsgSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKS50YWcoKSB9CisjZW5kaWYKKyAg
ICB7IH0KIAogICAgIENhbGxlZUJpdHMmIG9wZXJhdG9yPShKU0NlbGwqIGNlbGwpCiAgICAgewog
ICAgICAgICBtX3B0ciA9IGNlbGw7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgbV90
YWcgPSBKU1ZhbHVlOjpDZWxsVGFnOworI2VuZGlmCiAgICAgICAgIEFTU0VSVChpc0NlbGwoKSk7
CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CkBAIC01MSwxOCArNjEsMjQgQEAgcHVibGlj
OgogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICBzdGF0aWMgdm9pZCogYm94V2FzbShXYXNt
OjpDYWxsZWUqIGNhbGxlZSkKICAgICB7Ci0gICAgICAgIENhbGxlZUJpdHMgcmVzdWx0KHJlaW50
ZXJwcmV0X2Nhc3Q8dm9pZCo+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihjYWxsZWUpIHwg
SlNWYWx1ZTo6V2FzbVRhZykpOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIENhbGxlZUJp
dHMgcmVzdWx0IHsgcmVpbnRlcnByZXRfY2FzdDxpbnQ2NF90PihjYWxsZWUpIHwgSlNWYWx1ZTo6
V2FzbVRhZyB9OwogICAgICAgICBBU1NFUlQocmVzdWx0LmlzV2FzbSgpKTsKICAgICAgICAgcmV0
dXJuIHJlc3VsdC5yYXdQdHIoKTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJl
dHVybiBjYWxsZWU7IC8vIFRoZSBwb2ludGVyIGlzIGFzIGlzLCBidXQgdGhlIGNvcnJlc3BvbmRp
bmcgdGFnIGZpZWxkIG5lZWRzIHRvIGJlIHNldCB0byBXYXNtVGFnIHNlcGFyYXRlbHkuCisjZW5k
aWYKICAgICB9CiAjZW5kaWYKIAogICAgIGJvb2wgaXNXYXNtKCkgY29uc3QKICAgICB7Ci0jaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKQotICAgICAgICByZXR1cm4gKHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dHB0cl90PihtX3B0cikgJiBKU1ZhbHVlOjpXYXNtTWFzaykgPT0gSlNWYWx1ZTo6V2FzbVRhZzsK
LSNlbHNlCisjaWYgIUVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwor
I2VsaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgcmV0dXJuIChyZWludGVycHJldF9jYXN0PHVp
bnRwdHJfdD4obV9wdHIpICYgSlNWYWx1ZTo6V2FzbU1hc2spID09IEpTVmFsdWU6Oldhc21UYWc7
CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4gbV90YWcgPT0gSlNWYWx1
ZTo6V2FzbVRhZzsKICNlbmRpZgogICAgIH0KICAgICBib29sIGlzQ2VsbCgpIGNvbnN0IHsgcmV0
dXJuICFpc1dhc20oKTsgfQpAQCAtNzcsMTQgKzkzLDIxIEBAIHB1YmxpYzoKICAgICBXYXNtOjpD
YWxsZWUqIGFzV2FzbUNhbGxlZSgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQoaXNXYXNt
KCkpOworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0
PFdhc206OkNhbGxlZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtX3B0cikgJiB+SlNW
YWx1ZTo6V2FzbVRhZyk7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4g
cmVpbnRlcnByZXRfY2FzdDxXYXNtOjpDYWxsZWUqPihtX3B0cik7CisjZW5kaWYKICAgICB9CiAj
ZW5kaWYKIAogICAgIHZvaWQqIHJhd1B0cigpIGNvbnN0IHsgcmV0dXJuIG1fcHRyOyB9Ci0gICAg
CisKIHByaXZhdGU6CiAgICAgdm9pZCogbV9wdHIgeyBudWxscHRyIH07CisjaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICB1aW50MzJfdCBtX3RhZyB7IEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcgfTsK
KyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oCmluZGV4IGQ4NzljOTBiZTMxMS4uNDYxODEzYzQxZDMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0ZXIu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaApAQCAt
NzIsNiArNzIsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGludDY0X3QgdW5ib3hlZElu
dDY0KCkgY29uc3Q7CiAgICAgICAgIGludDY0X3QgYXNhblVuc2FmZVVuYm94ZWRJbnQ2NCgpIGNv
bnN0OwogICAgICAgICBib29sIHVuYm94ZWRCb29sZWFuKCkgY29uc3Q7CisjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZKSAmJiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBmbG9hdCB1bmJveGVkRmxv
YXQoKSBjb25zdDsKKyAgICAgICAgZmxvYXQgYXNhblVuc2FmZVVuYm94ZWRGbG9hdCgpIGNvbnN0
OworI2VuZGlmCiAgICAgICAgIGRvdWJsZSB1bmJveGVkRG91YmxlKCkgY29uc3Q7CiAgICAgICAg
IGRvdWJsZSBhc2FuVW5zYWZlVW5ib3hlZERvdWJsZSgpIGNvbnN0OwogICAgICAgICBKU0NlbGwq
IHVuYm94ZWRDZWxsKCkgY29uc3Q7CkBAIC0xODgsNiArMTkyLDE4IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICByZXR1cm4gISFwYXlsb2FkKCk7CiAgICAgfQogCisjaWYgRU5BQkxFKFdFQkFT
U0VNQkxZKSAmJiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIEFMV0FZU19JTkxJTkUgZmxvYXQgUmVn
aXN0ZXI6OnVuYm94ZWRGbG9hdCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gYml0d2lz
ZV9jYXN0PGZsb2F0PihwYXlsb2FkKCkpOworICAgIH0KKworICAgIFNVUFBSRVNTX0FTQU4gQUxX
QVlTX0lOTElORSBmbG9hdCBSZWdpc3Rlcjo6YXNhblVuc2FmZVVuYm94ZWRGbG9hdCgpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGZsb2F0PihwYXlsb2FkKCkpOwor
ICAgIH0KKyNlbmRpZgorCiAgICAgQUxXQVlTX0lOTElORSBkb3VibGUgUmVnaXN0ZXI6OnVuYm94
ZWREb3VibGUoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHUubnVtYmVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXggMTk3NmVkODBiM2Uy
Li5hNGI2NDhmYTBhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNz
ZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhl
bHBlcnMuaApAQCAtMTQwMyw3ICsxNDAzLDEwIEBAIHB1YmxpYzoKICAgICAgICAgaml0QXNzZXJ0
SXNKU0RvdWJsZShncHIpOwogICAgICAgICByZXR1cm4gdW5ib3hEb3VibGVXaXRob3V0QXNzZXJ0
aW9ucyhncHIsIHJlc3VsdEdQUiwgZnByLCBtb2RlKTsKICAgICB9Ci0gICAgCisgICAgdm9pZCB1
bmJveERvdWJsZShKU1ZhbHVlUmVncyByZWdzLCBGUFJSZWcgZnByKQorICAgIHsKKyAgICAgICAg
dW5ib3hEb3VibGUocmVncy50YWdHUFIoKSwgcmVncy5wYXlsb2FkR1BSKCksIGZwcik7CisgICAg
fQogICAgIHZvaWQgYm94RG91YmxlKEZQUlJlZyBmcHIsIEpTVmFsdWVSZWdzIHJlZ3MsIFRhZ1Jl
Z2lzdGVyc01vZGUgbW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCiAgICAgewogICAgICAgICBib3hE
b3VibGUoZnByLCByZWdzLmdwcigpLCBtb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaAppbmRleCAyYTYwN2RmOGM4ZTguLmM5
ZTBjMjk0NWQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
T2ZmbGluZUFzbUNvbmZpZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dE9mZmxpbmVBc21Db25maWcuaApAQCAtMTQ0LDYgKzE0NCwxMiBAQAogI2RlZmluZSBPRkZMSU5F
X0FTTV9KU1ZBTFVFNjQgMAogI2VuZGlmCiAKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorI2RlZmlu
ZSBPRkZMSU5FX0FTTV9KU1ZBTFVFMzJfNjQgMQorI2Vsc2UKKyNkZWZpbmUgT0ZGTElORV9BU01f
SlNWQUxVRTMyXzY0IDAKKyNlbmRpZgorCiAjaWYgVVNFKEJJR0lOVDMyKQogI2RlZmluZSBPRkZM
SU5FX0FTTV9CSUdJTlQzMiAxCiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRleCBhZDI1MDE3ZWYw
YjQuLjcwNDAxZTQ1YmU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTM4LDE4ICszOCwzNCBAQCBt
YWNybyBnZXR1T3BlcmFuZFdpZGUxNkpTKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCiAg
ICAgbG9hZGggY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogMiAr
IE9wY29kZUlEV2lkZTE2U2l6ZUpTW1BCLCBQQywgMV0sIGRzdAogZW5kCiAKK21hY3JvIGdldHVP
cGVyYW5kV2lkZTE2V2FzbShvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQorICAgIGxvYWRo
IGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRleCAqIDIgKyBPcGNvZGVJ
RFdpZGUxNlNpemVXYXNtW1BCLCBQQywgMV0sIGRzdAorZW5kCisKIG1hY3JvIGdldE9wZXJhbmRX
aWRlMTZKUyhvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQogICAgIGxvYWRoc2kgY29uc3Rl
eHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogMiArIE9wY29kZUlEV2lkZTE2
U2l6ZUpTW1BCLCBQQywgMV0sIGRzdAogZW5kCiAKK21hY3JvIGdldE9wZXJhbmRXaWRlMTZXYXNt
KG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCisgICAgbG9hZGhzaSBjb25zdGV4cHIgJW9w
Y29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiAyICsgT3Bjb2RlSURXaWRlMTZTaXplV2Fz
bVtQQiwgUEMsIDFdLCBkc3QKK2VuZAorCiBtYWNybyBnZXR1T3BlcmFuZFdpZGUzMkpTKG9wY29k
ZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCiAgICAgbG9hZGkgY29uc3RleHByICVvcGNvZGVTdHJ1
Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogNCArIE9wY29kZUlEV2lkZTMyU2l6ZUpTW1BCLCBQQywg
MV0sIGRzdAogZW5kCiAKK21hY3JvIGdldHVPcGVyYW5kV2lkZTMyV2FzbShvcGNvZGVTdHJ1Y3Qs
IGZpZWxkTmFtZSwgZHN0KQorICAgIGxvYWRpIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmll
bGROYW1lJV9pbmRleCAqIDQgKyBPcGNvZGVJRFdpZGUzMlNpemVXYXNtW1BCLCBQQywgMV0sIGRz
dAorZW5kCisKIG1hY3JvIGdldE9wZXJhbmRXaWRlMzJKUyhvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFt
ZSwgZHN0KQogICAgIGxvYWRpcyBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFtZSVf
aW5kZXggKiA0ICsgT3Bjb2RlSURXaWRlMzJTaXplSlNbUEIsIFBDLCAxXSwgZHN0CiBlbmQKIAor
bWFjcm8gZ2V0T3BlcmFuZFdpZGUzMldhc20ob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkK
KyAgICBsb2FkaXMgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICog
NCArIE9wY29kZUlEV2lkZTMyU2l6ZVdhc21bUEIsIFBDLCAxXSwgZHN0CitlbmQKKwogbWFjcm8g
bWFrZVJldHVybihnZXQsIGRpc3BhdGNoLCBmbikKICAgICBmbihtYWNybyh0YWcsIHBheWxvYWQp
CiAgICAgICAgIG1vdmUgdGFnLCB0NQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L1dlYkFzc2VtYmx5LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJB
c3NlbWJseS5hc20KaW5kZXggMjJlYmUyYTdlYjNkLi4xMjVmMGNiNzA5ODQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseS5hc20KKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5LmFzbQpAQCAtMzEsNTYgKzMxLDgwIEBA
IGlmIEhBVkVfRkFTVF9UTFMKIGVuZAogCiBpZiBYODZfNjQKLSAgICBjb25zdCBOdW1iZXJPZldh
c21Bcmd1bWVudEdQUnMgPSA2CisgICAgY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzID0g
NgogZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKLSAgICBjb25zdCBOdW1iZXJPZldh
c21Bcmd1bWVudEdQUnMgPSA4CisgICAgY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzID0g
OAorZWxzaWYgQVJNdjcKKyAgICBjb25zdCBOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgPSAyCiBl
bHNlCiAgICAgZXJyb3IKIGVuZAorCiBjb25zdCBOdW1iZXJPZldhc21Bcmd1bWVudEZQUnMgPSA4
Ci1jb25zdCBOdW1iZXJPZldhc21Bcmd1bWVudHMgPSBOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMg
KyBOdW1iZXJPZldhc21Bcmd1bWVudEZQUnMKKworY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1lbnRz
ID0gTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgTnVtYmVyT2ZXYXNtQXJndW1lbnRGUFJzCiAK
ICMgQWxsIGNhbGxlZSBzYXZlcyBtdXN0IG1hdGNoIHRoZSBkZWZpbml0aW9uIGluIFdhc21DYWxs
ZWUuY3BwCiAKICMgVGhlc2UgbXVzdCBtYXRjaCB0aGUgZGVmaW5pdGlvbiBpbiBXYXNtTWVtb3J5
SW5mb3JtYXRpb24uY3BwCi1jb25zdCB3YXNtSW5zdGFuY2UgPSBjc3IwCi1jb25zdCBtZW1vcnlC
YXNlID0gY3NyMwotY29uc3QgYm91bmRzQ2hlY2tpbmdTaXplID0gY3NyNAoraWYgWDg2XzY0IG9y
IEFSTTY0IG9yIEFSTTY0RQorICAgIGNvbnN0IHdhc21JbnN0YW5jZSA9IGNzcjAKKyAgICBjb25z
dCBtZW1vcnlCYXNlID0gY3NyMworICAgIGNvbnN0IGJvdW5kc0NoZWNraW5nU2l6ZSA9IGNzcjQK
K2Vsc2lmIEFSTXY3CisgICAgY29uc3Qgd2FzbUluc3RhbmNlID0gY3NyMAorICAgIGNvbnN0IG1l
bW9yeUJhc2UgPSBpbnZhbGlkR1BSCisgICAgY29uc3QgYm91bmRzQ2hlY2tpbmdTaXplID0gaW52
YWxpZEdQUgorZWxzZQorICAgIGVycm9yCitlbmQKIAogIyBUaGlzIG11c3QgbWF0Y2ggdGhlIGRl
ZmluaXRpb24gaW4gTG93TGV2ZWxJbnRlcnByZXRlci5hc20KIGlmIFg4Nl82NAogICAgIGNvbnN0
IFBCID0gY3NyMgogZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKICAgICBjb25zdCBQ
QiA9IGNzcjcKK2Vsc2lmIEFSTXY3CisgICAgY29uc3QgUEIgPSBjc3IxCiBlbHNlCiAgICAgZXJy
b3IKIGVuZAogCi1tYWNybyBmb3JFYWNoQXJndW1lbnRHUFIoZm4pCi0gICAgZm4oMCAqIDgsIHdh
MCkKLSAgICBmbigxICogOCwgd2ExKQotICAgIGZuKDIgKiA4LCB3YTIpCi0gICAgZm4oMyAqIDgs
IHdhMykKLSAgICBmbig0ICogOCwgd2E0KQotICAgIGZuKDUgKiA4LCB3YTUpCi0gICAgaWYgQVJN
NjQgb3IgQVJNNjRFCi0gICAgICAgIGZuKDYgKiA4LCB3YTYpCi0gICAgICAgIGZuKDcgKiA4LCB3
YTcpCisjIEhlbHBlciBtYWNyb3MKKworIyBPbiBKU1ZBTFVFNjQsIGVhY2ggNjQtYml0IGFyZ3Vt
ZW50IEdQUiBob2xkcyBvbmUgd2hvbGUgV2FzbSB2YWx1ZS4KKyMgT24gSlNWQUxVRTMyXzY0LCBh
IGNvbnNlY3V0aXZlIHBhaXIgb2YgZXZlbi9vZGQgbnVtYmVyZWQgR1BScyBob2xkIGEgc2luZ2xl
CisjIFdhc20gdmFsdWUgKGV2ZW4gaWYgdGhhdCB2YWx1ZSBpcyBpMzIvZjMyLCB0aGUgb2RkIG51
bWJlcmVkIEdQUiBob2xkcyB0aGUKKyMgbW9yZSBzaWduaWZpY2FudCB3b3JkKS4KK21hY3JvIGZv
ckVhY2hBcmd1bWVudEpTUihmbikKKyAgICBpZiBKU1ZBTFVFNjQKKyAgICAgICAgZm4oMCAqIDgs
IHdhMCkKKyAgICAgICAgZm4oMSAqIDgsIHdhMSkKKyAgICAgICAgZm4oMiAqIDgsIHdhMikKKyAg
ICAgICAgZm4oMyAqIDgsIHdhMykKKyAgICAgICAgZm4oNCAqIDgsIHdhNCkKKyAgICAgICAgZm4o
NSAqIDgsIHdhNSkKKyAgICAgICAgaWYgQVJNNjQgb3IgQVJNNjRFCisgICAgICAgICAgICBmbig2
ICogOCwgd2E2KQorICAgICAgICAgICAgZm4oNyAqIDgsIHdhNykKKyAgICAgICAgZW5kCisgICAg
ZWxzZQorICAgICAgICBmbigwICogOCwgd2ExLCB3YTApCisgICAgICAgIGZuKDEgKiA4LCB3YTMs
IHdhMikKICAgICBlbmQKIGVuZAogCiBtYWNybyBmb3JFYWNoQXJndW1lbnRGUFIoZm4pCi0gICAg
Zm4oKE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDApICogOCwgd2ZhMCkKLSAgICBmbigoTnVt
YmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgMSkgKiA4LCB3ZmExKQotICAgIGZuKChOdW1iZXJPZldh
c21Bcmd1bWVudEdQUnMgKyAyKSAqIDgsIHdmYTIpCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3Vt
ZW50R1BScyArIDMpICogOCwgd2ZhMykKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJz
ICsgNCkgKiA4LCB3ZmE0KQotICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyA1KSAq
IDgsIHdmYTUpCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDYpICogOCwgd2Zh
NikKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgNykgKiA4LCB3ZmE3KQorICAg
IGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyAwKSAqIDgsIHdmYTApCisgICAgZm4oKE51
bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIDEpICogOCwgd2ZhMSkKKyAgICBmbigoTnVtYmVyT2ZX
YXNtQXJndW1lbnRKU1JzICsgMikgKiA4LCB3ZmEyKQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1
bWVudEpTUnMgKyAzKSAqIDgsIHdmYTMpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNS
cyArIDQpICogOCwgd2ZhNCkKKyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgNSkg
KiA4LCB3ZmE1KQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyA2KSAqIDgsIHdm
YTYpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIDcpICogOCwgd2ZhNykKIGVu
ZAogCi0jIEhlbHBlciBtYWNyb3MKICMgRklYTUU6IEV2ZW50dWFsbHkgdGhpcyBzaG91bGQgYmUg
dW5pZmllZCB3aXRoIHRoZSBKUyB2ZXJzaW9ucwogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAzNjU2CiAKQEAgLTEzMCwxMCArMTU0LDE1IEBAIG1hY3JvIGNoZWNr
U3dpdGNoVG9KSVRGb3JQcm9sb2d1ZShjb2RlQmxvY2tSZWdpc3RlcikKICAgICAgICAgICAgIGJ0
cHogcjAsIC5yZWNvdmVyCiAgICAgICAgICAgICBtb3ZlIHIwLCB3czAKIAotICAgICAgICAgICAg
Zm9yRWFjaEFyZ3VtZW50R1BSKG1hY3JvIChvZmZzZXQsIGdwcikKK2lmIEpTVkFMVUU2NAorICAg
ICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwcikKICAgICAgICAg
ICAgICAgICBsb2FkcSAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lz
dGVycyAqIDhbY2ZyXSwgZ3ByCiAgICAgICAgICAgICBlbmQpCi0KK2Vsc2UKKyAgICAgICAgICAg
IGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHJNc3csIGdwTHN3KQorICAgICAg
ICAgICAgICAgIGxvYWQyaWEgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxS
ZWdpc3RlcnMgKiA4W2Nmcl0sIGdwTHN3LCBncHJNc3cKKyAgICAgICAgICAgIGVuZCkKK2VuZAog
ICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50RlBSKG1hY3JvIChvZmZzZXQsIGZwcikKICAgICAg
ICAgICAgICAgICBsb2FkZCAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJl
Z2lzdGVycyAqIDhbY2ZyXSwgZnByCiAgICAgICAgICAgICBlbmQpCkBAIC0yMDEsNiArMjMwLDkg
QEAgbWFjcm8gcHJlc2VydmVDYWxsZWVTYXZlc1VzZWRCeVdhc20oKQogICAgIGVsc2lmIFg4Nl82
NCBvciBSSVNDVjY0CiAgICAgICAgIHN0b3JlcCBQQiwgLTB4OFtjZnJdCiAgICAgICAgIHN0b3Jl
cCB3YXNtSW5zdGFuY2UsIC0weDEwW2Nmcl0KKyAgICBlbHNpZiBBUk12NworICAgICAgICBzdG9y
ZXAgUEIsIC00W2Nmcl0KKyAgICAgICAgc3RvcmVwIHdhc21JbnN0YW5jZSwgLThbY2ZyXQogICAg
IGVsc2UKICAgICAgICAgZXJyb3IKICAgICBlbmQKQEAgLTIxNSw2ICsyNDcsOSBAQCBtYWNybyBy
ZXN0b3JlQ2FsbGVlU2F2ZXNVc2VkQnlXYXNtKCkKICAgICBlbHNpZiBYODZfNjQgb3IgUklTQ1Y2
NAogICAgICAgICBsb2FkcCAtMHg4W2Nmcl0sIFBCCiAgICAgICAgIGxvYWRwIC0weDEwW2Nmcl0s
IHdhc21JbnN0YW5jZQorICAgIGVsc2lmIEFSTXY3CisgICAgICAgIGxvYWRwIC00W2Nmcl0sIFBC
CisgICAgICAgIGxvYWRwIC04W2Nmcl0sIHdhc21JbnN0YW5jZQogICAgIGVsc2UKICAgICAgICAg
ZXJyb3IKICAgICBlbmQKQEAgLTI0NSwxMCArMjgwLDEyIEBAIGVuZAogZW5kCiAKIG1hY3JvIHJl
bG9hZE1lbW9yeVJlZ2lzdGVyc0Zyb21JbnN0YW5jZShpbnN0YW5jZSwgc2NyYXRjaDEsIHNjcmF0
Y2gyKQoraWYgbm90IEFSTXY3CiAgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkTWVt
b3J5W2luc3RhbmNlXSwgbWVtb3J5QmFzZQogICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2Nh
Y2hlZEJvdW5kc0NoZWNraW5nU2l6ZVtpbnN0YW5jZV0sIGJvdW5kc0NoZWNraW5nU2l6ZQogICAg
IGNhZ2VkUHJpbWl0aXZlTWF5QmVOdWxsKG1lbW9yeUJhc2UsIGJvdW5kc0NoZWNraW5nU2l6ZSwg
c2NyYXRjaDEsIHNjcmF0Y2gyKSAjIElmIGJvdW5kc0NoZWNraW5nU2l6ZSBpcyAwLCBwb2ludGVy
IGNhbiBiZSBhIG51bGxwdHIuCiBlbmQKK2VuZAogCiBtYWNybyB0aHJvd0V4Y2VwdGlvbihleGNl
cHRpb24pCiAgICAgc3RvcmVpIGNvbnN0ZXhwciBXYXNtOjpFeGNlcHRpb25UeXBlOjolZXhjZXB0
aW9uJSwgQXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0KQEAg
LTI4MCw4ICszMTcsMTMgQEAgbWFjcm8gcmVzdG9yZVN0YWNrUG9pbnRlckFmdGVyQ2FsbCgpCiAg
ICAgbG9hZGkgV2FzbTo6TExJbnRDYWxsZWU6Om1fbnVtQ2FsbGVlTG9jYWxzW3dzMV0sIHdzMQog
ICAgIGxzaGlmdHAgMywgd3MxCiAgICAgYWRkcCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2Fs
bCwgd3MxCitpZiBBUk12NworICAgIHN1YnAgY2ZyLCB3czEsIHdzMQorICAgIG1vdmUgd3MxLCBz
cAorZWxzZQogICAgIHN1YnAgY2ZyLCB3czEsIHNwCiBlbmQKK2VuZAogCiBtYWNybyB3YXNtUHJv
bG9ndWUobG9hZFdhc21JbnN0YW5jZSkKICAgICAjIFNldCB1cCB0aGUgY2FsbCBmcmFtZSBhbmQg
Y2hlY2sgaWYgd2Ugc2hvdWxkIE9TUi4KQEAgLTI5Miw2ICszMzQsOSBAQCBtYWNybyB3YXNtUHJv
bG9ndWUobG9hZFdhc21JbnN0YW5jZSkKIAogICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX293
bmVyW3dhc21JbnN0YW5jZV0sIHdzMAogICAgIHN0b3JlcCB3czAsIFRoaXNBcmd1bWVudE9mZnNl
dFtjZnJdCitpZiBub3QgSlNWQUxVRTY0CisgICAgc3RvcmVpIENlbGxUYWcsIFRhZ09mZnNldCAr
IFRoaXNBcmd1bWVudE9mZnNldFtjZnJdCitlbmQKIAogICAgIGxvYWRwIENhbGxlZVtjZnJdLCB3
czAKICAgICBhbmRwIH4zLCB3czAKQEAgLTMwMyw2ICszNDgsMTAgQEAgbWFjcm8gd2FzbVByb2xv
Z3VlKGxvYWRXYXNtSW5zdGFuY2UpCiAgICAgYWRkcCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRo
Q2FsbCwgd3MxCiAgICAgc3VicCBjZnIsIHdzMSwgd3MxCiAKK2lmIG5vdCBKU1ZBTFVFNjQKKyAg
ICBzdWJwIDgsIHdzMSAjIGFsaWduIHN0YWNrIHBvaW50ZXIKK2VuZAorCiAgICAgYnBhIHdzMSwg
Y2ZyLCAuc3RhY2tPdmVyZmxvdwogICAgIGJwYmVxIFdhc206Okluc3RhbmNlOjptX2NhY2hlZFN0
YWNrTGltaXRbd2FzbUluc3RhbmNlXSwgd3MxLCAuc3RhY2tIZWlnaHRPSwogCkBAIC0zMTIsMTAg
KzM2MSwxNSBAQCBtYWNybyB3YXNtUHJvbG9ndWUobG9hZFdhc21JbnN0YW5jZSkKIC5zdGFja0hl
aWdodE9LOgogICAgIG1vdmUgd3MxLCBzcAogCi0gICAgZm9yRWFjaEFyZ3VtZW50R1BSKG1hY3Jv
IChvZmZzZXQsIGdwcikKK2lmIEpTVkFMVUU2NAorICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNy
byAob2Zmc2V0LCBncHIpCiAgICAgICAgIHN0b3JlcSBncHIsIC1vZmZzZXQgLSA4IC0gQ2FsbGVl
U2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdCiAgICAgZW5kKQotCitlbHNlCisg
ICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwck1zdywgZ3BMc3cpCisgICAg
ICAgIHN0b3JlMmlhIGdwTHN3LCBncHJNc3csIC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNl
QXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdCisgICAgZW5kKQorZW5kCiAgICAgZm9yRWFjaEFy
Z3VtZW50RlBSKG1hY3JvIChvZmZzZXQsIGZwcikKICAgICAgICAgc3RvcmVkIGZwciwgLW9mZnNl
dCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0KICAgICBl
bmQpCkBAIC0zMjksMTQgKzM4MywxNiBAQCBtYWNybyB3YXNtUHJvbG9ndWUobG9hZFdhc21JbnN0
YW5jZSkKICAgICBsb2FkaSBXYXNtOjpMTEludENhbGxlZTo6bV9udW1WYXJzW3dzMF0sIHdzMQog
ICAgIHN1YmkgTnVtYmVyT2ZXYXNtQXJndW1lbnRzICsgQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFs
UmVnaXN0ZXJzLCB3czEKICAgICBidGl6IHdzMSwgLnplcm9Jbml0aWFsaXplTG9jYWxzRG9uZQor
ICAgIGxzaGlmdGkgMywgd3MxCiAgICAgbmVnaSB3czEKK2lmIEpTVkFMVUU2NAogICAgIHN4aTJx
IHdzMSwgd3MxCitlbmQKICAgICBsZWFwIChOdW1iZXJPZldhc21Bcmd1bWVudHMgKyBDYWxsZWVT
YXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKyAxKSAqIC04W2Nmcl0sIHdzMAogLnplcm9Jbml0
aWFsaXplTG9jYWxzTG9vcDoKLSAgICBhZGRxIDEsIHdzMQotICAgIHN0b3JlcSAwLCBbd3MwLCB3
czEsIDhdCi0gICAgYnRxeiB3czEsIC56ZXJvSW5pdGlhbGl6ZUxvY2Fsc0RvbmUKLSAgICBqbXAg
Lnplcm9Jbml0aWFsaXplTG9jYWxzTG9vcAorICAgIGFkZHAgUHRyU2l6ZSwgd3MxCisgICAgc3Rv
cmVwIDAsIFt3czAsIHdzMV0KKyAgICBidHBueiB3czEsIC56ZXJvSW5pdGlhbGl6ZUxvY2Fsc0xv
b3AKIC56ZXJvSW5pdGlhbGl6ZUxvY2Fsc0RvbmU6CiBlbmQKIApAQCAtMzc1LDYgKzQzMSwyNCBA
QCBtYWNybyBzbG93V2FzbU9wKG9wY29kZU5hbWUpCiAgICAgdW5wcmVmaXhlZFNsb3dXYXNtT3Ao
d2FzbV8lb3Bjb2RlTmFtZSUpCiBlbmQKIAorIyBGbG9hdCB0byBmbG9hdCByb3VuZGluZyBvcHMK
K21hY3JvIHdhc21Sb3VuZGluZ09wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCitpZiBK
U1ZBTFVFNjQgIyBBbGwgY3VycmVudCA2NC1iaXQgcGxhdGZvcm1zIGhhdmUgaW5zdHJ1Y3Rpb25z
IGZvciB0aGVzZQorICAgIHdhc21PcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGZuKQorZWxz
ZQorICAgIHNsb3dXYXNtT3Aob3Bjb2RlTmFtZSkKK2VuZAorZW5kCisKKyMgaTY0IChzaWduZWQv
dW5zaWduZWQpIHRvIGYzMiBvciBmNjQKK21hY3JvIHdhc21JNjRUb0ZPcChvcGNvZGVOYW1lLCBv
cGNvZGVTdHJ1Y3QsIGZuKQoraWYgSlNWQUxVRTY0ICMgQWxsIGN1cnJlbnQgNjQtYml0IHBsYXRm
b3JtcyBoYXZlIGluc3RydWN0aW9ucyBmb3IgdGhlc2UKKyAgICB3YXNtT3Aob3Bjb2RlTmFtZSwg
b3Bjb2RlU3RydWN0LCBmbikKK2Vsc2UKKyAgICBzbG93V2FzbU9wKG9wY29kZU5hbWUpCitlbmQK
K2VuZAorCiAjIE1hY3JvIHZlcnNpb24gb2YgbG9hZCBvcGVyYXRpb25zOiBtbG9hZFtzdWZmaXhd
CiAjIGxvYWRzIGZpZWxkIGZyb20gdGhlIGluc3RydWN0aW9uIHN0cmVhbSBhbmQgcGVyZm9ybXMg
bG9hZFtzdWZmaXhdIHRvIGRzdAogbWFjcm8gZmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgoY3R4
LCBmbikKQEAgLTM5NywxMiArNDcxLDIxIEBAIG1hY3JvIGxvYWRDb25zdGFudE9yVmFyaWFibGUo
Y3R4LCBpbmRleCwgbG9hZGVyKQogICAgIGVuZCkKIGVuZAogCitpZiBKU1ZBTFVFNjQKIG1hY3Jv
IG1sb2FkcShjdHgsIGZpZWxkLCBkc3QpCiAgICAgd2dldHMoY3R4LCBmaWVsZCwgZHN0KQogICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUoY3R4LCBkc3QsIG1hY3JvIChmcm9tKQogICAgICAgICBs
b2FkcSBmcm9tLCBkc3QKICAgICBlbmQpCiBlbmQKK2Vsc2UKK21hY3JvIG1sb2FkMmkoY3R4LCBm
aWVsZCwgZHN0TXN3LCBkc3RMc3cpCisgICAgd2dldHMoY3R4LCBmaWVsZCwgZHN0THN3KQorICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUoY3R4LCBkc3RMc3csIG1hY3JvIChmcm9tKQorICAgICAg
ICBsb2FkMmlhIGZyb20sIGRzdExzdywgZHN0TXN3CisgICAgZW5kKQorZW5kCitlbmQKIAogbWFj
cm8gbWxvYWRpKGN0eCwgZmllbGQsIGRzdCkKICAgICB3Z2V0cyhjdHgsIGZpZWxkLCBkc3QpCkBA
IC00MzQsMTEgKzUxNywxOSBAQCBlbmQKIAogIyBUeXBlZCByZXR1cm5zCiAKK2lmIEpTVkFMVUU2
NAogbWFjcm8gcmV0dXJucShjdHgsIHZhbHVlKQogICAgIHdnZXRzKGN0eCwgbV9kc3QsIHQ1KQog
ICAgIHN0b3JlcSB2YWx1ZSwgW2NmciwgdDUsIDhdCiAgICAgZGlzcGF0Y2goY3R4KQogZW5kCitl
bHNlCittYWNybyByZXR1cm4yaShjdHgsIG1zdywgbHN3KQorICAgIHdnZXRzKGN0eCwgbV9kc3Qs
IHQ1KQorICAgIHN0b3JlMmlhIGxzdywgbXN3LCBbY2ZyLCB0NSwgOF0KKyAgICBkaXNwYXRjaChj
dHgpCitlbmQKK2VuZAogCiBtYWNybyByZXR1cm5pKGN0eCwgdmFsdWUpCiAgICAgd2dldHMoY3R4
LCBtX2RzdCwgdDUpCkBAIC01MTEsNyArNjAyLDcgQEAgbWFjcm8gd2FzbUNvZGVCbG9ja0dldHRl
cih0YXJnZXRSZWdpc3RlcikKIGVuZAogCiBvcCh3YXNtX2Z1bmN0aW9uX3Byb2xvZ3VlLCBtYWNy
byAoKQotICAgIGlmIG5vdCBXRUJBU1NFTUJMWSBvciBub3QgSlNWQUxVRTY0IG9yIENfTE9PUCBv
ciBDX0xPT1BfV0lOCisgICAgaWYgbm90IFdFQkFTU0VNQkxZIG9yIENfTE9PUCBvciBDX0xPT1Bf
V0lOCiAgICAgICAgIGVycm9yCiAgICAgZW5kCiAKQEAgLTUyMCw3ICs2MTEsNyBAQCBvcCh3YXNt
X2Z1bmN0aW9uX3Byb2xvZ3VlLCBtYWNybyAoKQogZW5kKQogCiBvcCh3YXNtX2Z1bmN0aW9uX3By
b2xvZ3VlX25vX3RscywgbWFjcm8gKCkKLSAgICBpZiBub3QgV0VCQVNTRU1CTFkgb3Igbm90IEpT
VkFMVUU2NCBvciBDX0xPT1Agb3IgQ19MT09QX1dJTgorICAgIGlmIG5vdCBXRUJBU1NFTUJMWSBv
ciBDX0xPT1Agb3IgQ19MT09QX1dJTgogICAgICAgICBlcnJvcgogICAgIGVuZAogCkBAIC02MjMs
MTYgKzcxNCwyMyBAQCBfd2FzbV9lbnRlcjoKICAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVu
dCh0MiwgMHhkZWFkMDBlMSkKICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDIgICAgICAgICAg
ICAgICAgLy8gdDI8Q29kZUJsb2NrPiA9IGNmci5Db2RlQmxvY2sKICAgICBsb2FkaSBXYXNtOjpM
TEludENhbGxlZTo6bV9udW1WYXJzW3QyXSwgdDIgICAgICAvLyB0MjxzaXplX3Q+ID0gdDI8Q29k
ZUJsb2NrPi5tX251bVZhcnMKLSAgICBzdWJxIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lz
dGVycyArIE51bWJlck9mV2FzbUFyZ3VtZW50cywgdDIKKyAgICBzdWJpIENhbGxlZVNhdmVTcGFj
ZUFzVmlydHVhbFJlZ2lzdGVycyArIE51bWJlck9mV2FzbUFyZ3VtZW50cywgdDIKICAgICBidGl6
IHQyLCAub3BFbnRlckRvbmUKLSAgICBtb3ZlIGNmciwgdDEKLSAgICBzdWJxIENhbGxlZVNhdmVT
cGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDggKyBOdW1iZXJPZldhc21Bcmd1bWVudHMgKiA4LCB0
MQorICAgIHN1YnAgY2ZyLCAoQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICsgTnVt
YmVyT2ZXYXNtQXJndW1lbnRzKSAqIFNsb3RTaXplLCB0MQorICAgIGxzaGlmdGkgMywgdDIKICAg
ICBuZWdpIHQyCitpZiBKU1ZBTFVFNjQKICAgICBzeGkycSB0MiwgdDIKK2VuZAorICAgIG1vdmUg
MCwgdDYKIC5vcEVudGVyTG9vcDoKLSAgICBzdG9yZXEgMCwgW3QxLCB0MiwgOF0KLSAgICBhZGRx
IDEsIHQyCi0gICAgYnRxbnogdDIsIC5vcEVudGVyTG9vcAoraWYgSlNWQUxVRTY0CisgICAgc3Rv
cmVxIHQ2LCBbdDEsIHQyXQorZWxzZQorICAgIHN0b3JlMmlhIHQ2LCB0NiwgW3QxLCB0Ml0KK2Vu
ZAorICAgIGFkZHAgOCwgdDIKKyAgICBidHBueiB0MiwgLm9wRW50ZXJMb29wCiAub3BFbnRlckRv
bmU6CiAgICAgd2FzbURpc3BhdGNoSW5kaXJlY3QoMSkKIApAQCAtNjQ1LDExICs3NDMsNiBAQCB3
YXNtT3AobG9vcF9oaW50LCBXYXNtTG9vcEhpbnQsIG1hY3JvKGN0eCkKICAgICBkaXNwYXRjaChj
dHgpCiBlbmQpCiAKLXdhc21PcChtb3YsIFdhc21Nb3YsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEo
Y3R4LCBtX3NyYywgdDApCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCiB3YXNtT3AoanRy
dWUsIFdhc21KdHJ1ZSwgbWFjcm8oY3R4KQogICAgIG1sb2FkaShjdHgsIG1fY29uZGl0aW9uLCB0
MCkKICAgICBidGl6IHQwLCAuY29udGludWUKQEAgLTcwMSw5ICs3OTQsMTUgQEAgZW5kKQogCiB1
bnByZWZpeGVkV2FzbU9wKHdhc21fcmV0LCBXYXNtUmV0LCBtYWNybyhjdHgpCiAgICAgY2hlY2tT
d2l0Y2hUb0pJVEZvckVwaWxvZ3VlKCkKLSAgICBmb3JFYWNoQXJndW1lbnRHUFIobWFjcm8gKG9m
ZnNldCwgZ3ByKQoraWYgSlNWQUxVRTY0CisgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChv
ZmZzZXQsIGdwcikKICAgICAgICAgbG9hZHEgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VB
c1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0sIGdwcgogICAgIGVuZCkKK2Vsc2UKKyAgICBmb3JF
YWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3LCBncExzdykKKyAgICAgICAgbG9h
ZDJpYSAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhb
Y2ZyXSwgZ3BMc3csIGdwck1zdworICAgIGVuZCkKK2VuZAogICAgIGZvckVhY2hBcmd1bWVudEZQ
UihtYWNybyAob2Zmc2V0LCBmcHIpCiAgICAgICAgIGxvYWRkIC1vZmZzZXQgLSA4IC0gQ2FsbGVl
U2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBmcHIKICAgICBlbmQpCkBAIC03
MjEsNDQgKzgyMCw2IEBAIHdhc21PcChyZXRfdm9pZCwgV2FzbVJldFZvaWQsIG1hY3JvKGN0eCkK
ICAgICBkb1JldHVybigpCiBlbmQpCiAKLXdhc21PcChyZWZfaXNfbnVsbCwgV2FzbVJlZklzTnVs
bCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcChjdHgsIG1fcmVmLCB0MCkKLSAgICBjcWVxIHQwLCBW
YWx1ZU51bGwsIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoZ2V0X2ds
b2JhbCwgV2FzbUdldEdsb2JhbCwgbWFjcm8oY3R4KQotICAgIGxvYWRwIFdhc206Okluc3RhbmNl
OjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKLSAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5k
ZXgsIHQxKQotICAgIGxvYWRxIFt0MCwgdDEsIDhdLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkK
LWVuZCkKLQotd2FzbU9wKHNldF9nbG9iYWwsIFdhc21TZXRHbG9iYWwsIG1hY3JvKGN0eCkKLSAg
ICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCi0gICAg
d2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKLSAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0
MikKLSAgICBzdG9yZXEgdDIsIFt0MCwgdDEsIDhdCi0gICAgZGlzcGF0Y2goY3R4KQotZW5kKQot
Ci13YXNtT3AoZ2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNtR2V0R2xvYmFsUG9ydGFi
bGVCaW5kaW5nLCBtYWNybyhjdHgpCi0gICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFs
c1t3YXNtSW5zdGFuY2VdLCB0MAotICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCi0g
ICAgbG9hZHEgW3QwLCB0MSwgOF0sIHQwCi0gICAgbG9hZHEgW3QwXSwgdDAKLSAgICByZXR1cm5x
KGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChzZXRfZ2xvYmFsX3BvcnRhYmxlX2JpbmRpbmcsIFdh
c21TZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkKLSAgICBsb2FkcCBXYXNtOjpJ
bnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCi0gICAgd2dldHUoY3R4LCBtX2ds
b2JhbEluZGV4LCB0MSkKLSAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICBsb2FkcSBb
dDAsIHQxLCA4XSwgdDAKLSAgICBzdG9yZXEgdDIsIFt0MF0KLSAgICBkaXNwYXRjaChjdHgpCi1l
bmQpCi0KIG1hY3JvIHNsb3dQYXRoRm9yV2FzbUNhbGwoY3R4LCBzbG93UGF0aCwgc3RvcmVXYXNt
SW5zdGFuY2UpCiAgICAgY2FsbFdhc21DYWxsU2xvd1BhdGgoCiAgICAgICAgIHNsb3dQYXRoLApA
QCAtNzczLDcgKzgzNCwxMiBAQCBtYWNybyBzbG93UGF0aEZvcldhc21DYWxsKGN0eCwgc2xvd1Bh
dGgsIHN0b3JlV2FzbUluc3RhbmNlKQogCiAgICAgICAgICAgICB3Z2V0dShjdHgsIG1fc3RhY2tP
ZmZzZXQsIHdzMSkKICAgICAgICAgICAgIGxzaGlmdGkgMywgd3MxCitpZiBBUk12NworICAgICAg
ICAgICAgc3VicCBjZnIsIHdzMSwgd3MxCisgICAgICAgICAgICBtb3ZlIHdzMSwgc3AKK2Vsc2UK
ICAgICAgICAgICAgIHN1YnAgY2ZyLCB3czEsIHNwCitlbmQKIAogICAgICAgICAgICAgd2dldHUo
Y3R4LCBtX251bWJlck9mU3RhY2tBcmdzLCB3czEpCiAKQEAgLTc4NCwxMCArODUwLDE1IEBAIG1h
Y3JvIHNsb3dQYXRoRm9yV2FzbUNhbGwoY3R4LCBzbG93UGF0aCwgc3RvcmVXYXNtSW5zdGFuY2Up
CiAgICAgICAgICAgICByZWxvYWRNZW1vcnlSZWdpc3RlcnNGcm9tSW5zdGFuY2UodGFyZ2V0V2Fz
bUluc3RhbmNlLCB3YTAsIHdhMSkKIAogICAgICAgICAgICAgIyBMb2FkIHJlZ2lzdGVycyBmcm9t
IHN0YWNrCi0gICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRHUFIobWFjcm8gKG9mZnNldCwgZ3By
KQoraWYgSlNWQUxVRTY0CisgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9m
ZnNldCwgZ3ByKQogICAgICAgICAgICAgICAgIGxvYWRxIENhbGxGcmFtZUhlYWRlclNpemUgKyA4
ICsgb2Zmc2V0W3NwLCB3czEsIDhdLCBncHIKICAgICAgICAgICAgIGVuZCkKLQorZWxzZQorICAg
ICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwck1zdywgZ3BMc3cp
CisgICAgICAgICAgICAgICAgbG9hZDJpYSBDYWxsRnJhbWVIZWFkZXJTaXplICsgOCArIG9mZnNl
dFtzcCwgd3MxLCA4XSwgZ3BMc3csIGdwck1zdworICAgICAgICAgICAgZW5kKQorZW5kCiAgICAg
ICAgICAgICBmb3JFYWNoQXJndW1lbnRGUFIobWFjcm8gKG9mZnNldCwgZnByKQogICAgICAgICAg
ICAgICAgIGxvYWRkIENhbGxGcmFtZUhlYWRlclNpemUgKyA4ICsgb2Zmc2V0W3NwLCB3czEsIDhd
LCBmcHIKICAgICAgICAgICAgIGVuZCkKQEAgLTgzMCw3ICs5MDEsMTEgQEAgbWFjcm8gc2xvd1Bh
dGhGb3JXYXNtQ2FsbChjdHgsIHNsb3dQYXRoLCBzdG9yZVdhc21JbnN0YW5jZSkKIAogICAgICAg
ICAgICAgIyBXZSBuZWVkIHRvIHNldCBQQyB0byBsb2FkIGluZm9ybWF0aW9uIGZyb20gdGhlIGlu
c3RydWN0aW9uIHN0cmVhbSwgYnV0IHdlCiAgICAgICAgICAgICAjIG5lZWQgdG8gcHJlc2VydmUg
aXRzIGN1cnJlbnQgdmFsdWUgc2luY2UgaXQgbWlnaHQgY29udGFpbiBhIHJldHVybiB2YWx1ZQor
aWYgQVJNdjcKKyAgICAgICAgICAgIHB1c2ggUEMKK2Vsc2UKICAgICAgICAgICAgIG1vdmUgUEMs
IG1lbW9yeUJhc2UKK2VuZAogICAgICAgICAgICAgbW92ZSBQQiwgd2FzbUluc3RhbmNlCiAgICAg
ICAgICAgICBsb2FkaSBBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyArIFRhZ09mZnNldFtjZnJd
LCBQQwogICAgICAgICAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIFBCCkBAIC04MzksMTcgKzkx
NCwyOCBAQCBtYWNybyBzbG93UGF0aEZvcldhc21DYWxsKGN0eCwgc2xvd1BhdGgsIHN0b3JlV2Fz
bUluc3RhbmNlKQogICAgICAgICAgICAgd2dldHUoY3R4LCBtX3N0YWNrT2Zmc2V0LCB3czEpCiAg
ICAgICAgICAgICBsc2hpZnRpIDMsIHdzMQogICAgICAgICAgICAgbmVnaSB3czEKK2lmIEpTVkFM
VUU2NAogICAgICAgICAgICAgc3hpMnEgd3MxLCB3czEKK2VuZAogICAgICAgICAgICAgYWRkcCBj
ZnIsIHdzMQogCiAgICAgICAgICAgICAjIEFyZ3VtZW50IHJlZ2lzdGVycyBhcmUgYWxzbyByZXR1
cm4gcmVnaXN0ZXJzLCBzbyB0aGV5IG11c3QgYmUgc3RvcmVkIHRvIHRoZSBzdGFjawogICAgICAg
ICAgICAgIyBpbiBjYXNlIHRoZXkgY29udGFpbiByZXR1cm4gdmFsdWVzLgogICAgICAgICAgICAg
d2dldHUoY3R4LCBtX251bWJlck9mU3RhY2tBcmdzLCB3czApCitpZiBBUk12NworICAgICAgICAg
ICAgcG9wIFBDCitlbHNlCiAgICAgICAgICAgICBtb3ZlIG1lbW9yeUJhc2UsIFBDCi0gICAgICAg
ICAgICBmb3JFYWNoQXJndW1lbnRHUFIobWFjcm8gKG9mZnNldCwgZ3ByKQorZW5kCitpZiBKU1ZB
TFVFNjQKKyAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHIp
CiAgICAgICAgICAgICAgICAgc3RvcmVxIGdwciwgQ2FsbEZyYW1lSGVhZGVyU2l6ZSArIDggKyBv
ZmZzZXRbd3MxLCB3czAsIDhdCiAgICAgICAgICAgICBlbmQpCi0KK2Vsc2UKKyAgICAgICAgICAg
IGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHJNc3csIGdwTHN3KQorICAgICAg
ICAgICAgICAgIHN0b3JlMmlhIGdwTHN3LCBncHJNc3csIENhbGxGcmFtZUhlYWRlclNpemUgKyA4
ICsgb2Zmc2V0W3dzMSwgd3MwLCA4XQorICAgICAgICAgICAgZW5kKQorZW5kCiAgICAgICAgICAg
ICBmb3JFYWNoQXJndW1lbnRGUFIobWFjcm8gKG9mZnNldCwgZnByKQogICAgICAgICAgICAgICAg
IHN0b3JlZCBmcHIsIENhbGxGcmFtZUhlYWRlclNpemUgKyA4ICsgb2Zmc2V0W3dzMSwgd3MwLCA4
XQogICAgICAgICAgICAgZW5kKQpAQCAtOTAwLDE5OSArOTg2LDM2IEBAIHdhc21PcChjdXJyZW50
X21lbW9yeSwgV2FzbUN1cnJlbnRNZW1vcnksIG1hY3JvKGN0eCkKICAgICBsb2FkcCBXYXNtOjpJ
bnN0YW5jZTo6bV9tZW1vcnlbd2FzbUluc3RhbmNlXSwgdDAKICAgICBsb2FkcCBXYXNtOjpNZW1v
cnk6Om1faGFuZGxlW3QwXSwgdDAKICAgICBsb2FkcCBXYXNtOjpNZW1vcnlIYW5kbGU6Om1fc2l6
ZVt0MF0sIHQwCi0gICAgdXJzaGlmdHEgMTYsIHQwCisgICAgdXJzaGlmdHAgMTYsIHQwCitpZiBK
U1ZBTFVFNjQKICAgICByZXR1cm5xKGN0eCwgdDApCitlbHNlCisgICAgcmV0dXJuMmkoY3R4LCAw
LCB0MCkKK2VuZAogZW5kKQogCiB3YXNtT3Aoc2VsZWN0LCBXYXNtU2VsZWN0LCBtYWNybyhjdHgp
CiAgICAgbWxvYWRpKGN0eCwgbV9jb25kaXRpb24sIHQwKQogICAgIGJ0aXogdDAsIC5pc1plcm8K
K2lmIEpTVkFMVUU2NAogICAgIG1sb2FkcShjdHgsIG1fbm9uWmVybywgdDApCiAgICAgcmV0dXJu
cShjdHgsIHQwKQogLmlzWmVybzoKICAgICBtbG9hZHEoY3R4LCBtX3plcm8sIHQwKQogICAgIHJl
dHVybnEoY3R4LCB0MCkKK2Vsc2UKKyAgICBtbG9hZDJpKGN0eCwgbV9ub25aZXJvLCB0MSwgdDAp
CisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCisuaXNaZXJvOgorICAgIG1sb2FkMmkoY3R4LCBt
X3plcm8sIHQxLCB0MCkKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZAogZW5kKQogCi0j
IHVzZXMgb2Zmc2V0IGFzIHNjcmF0Y2ggYW5kIHJldHVybnMgcmVzdWx0IG9uIHBvaW50ZXIKLW1h
Y3JvIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKGN0eCwgcG9pbnRlciwgb2Zmc2V0LCBzaXpl
KQotICAgIGxlYXAgc2l6ZSAtIDFbcG9pbnRlciwgb2Zmc2V0XSwgdDUKLSAgICBicGIgdDUsIGJv
dW5kc0NoZWNraW5nU2l6ZSwgLmNvbnRpbnVhdGlvbgotICAgIHRocm93RXhjZXB0aW9uKE91dE9m
Qm91bmRzTWVtb3J5QWNjZXNzKQotLmNvbnRpbnVhdGlvbjoKLSAgICBhZGRwIG1lbW9yeUJhc2Us
IHBvaW50ZXIKLWVuZAotCi1tYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09m
ZnNldChjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKLSAgICBsZWFwIHNpemUgLSAxW3BvaW50
ZXIsIG9mZnNldF0sIHQ1Ci0gICAgYnBiIHQ1LCBib3VuZHNDaGVja2luZ1NpemUsIC5jb250aW51
YXRpb24KLS50aHJvdzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2Vz
cykKLS5jb250aW51YXRpb246Ci0gICAgYWRkcCBtZW1vcnlCYXNlLCBwb2ludGVyCi0gICAgYWRk
cCBvZmZzZXQsIHBvaW50ZXIKLWVuZAotCi1tYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRl
ckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6
ZSkKLSAgICBsZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNldF0sIHQ1Ci0gICAgYnBiIHQ1LCBi
b3VuZHNDaGVja2luZ1NpemUsIC5jb250aW51YXRpb24KLS50aHJvdzoKLSAgICB0aHJvd0V4Y2Vw
dGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKLS5jb250aW51YXRpb246Ci0gICAgYWRkcCBt
ZW1vcnlCYXNlLCBwb2ludGVyCi0gICAgYWRkcCBvZmZzZXQsIHBvaW50ZXIKLSAgICBidHBueiBw
b2ludGVyLCAoc2l6ZSAtIDEpLCAudGhyb3cKLWVuZAotCi1tYWNybyB3YXNtTG9hZE9wKG5hbWUs
IHN0cnVjdCwgc2l6ZSwgZm4pCi0gICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQot
ICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQotICAgICAgICB3Z2V0dShjdHgsIG1f
b2Zmc2V0LCB0MSkKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4LCB0MCwg
dDEsIHNpemUpCi0gICAgICAgIGZuKFt0MCwgdDFdLCB0MikKLSAgICAgICAgcmV0dXJucShjdHgs
IHQyKQotICAgIGVuZCkKLWVuZAotCi13YXNtTG9hZE9wKGxvYWQ4X3UsIFdhc21Mb2FkOFUsIDEs
IG1hY3JvKG1lbSwgZHN0KSBsb2FkYiBtZW0sIGRzdCBlbmQpCi13YXNtTG9hZE9wKGxvYWQxNl91
LCBXYXNtTG9hZDE2VSwgMiwgbWFjcm8obWVtLCBkc3QpIGxvYWRoIG1lbSwgZHN0IGVuZCkKLXdh
c21Mb2FkT3AobG9hZDMyX3UsIFdhc21Mb2FkMzJVLCA0LCBtYWNybyhtZW0sIGRzdCkgbG9hZGkg
bWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChsb2FkNjRfdSwgV2FzbUxvYWQ2NFUsIDgsIG1hY3Jv
KG1lbSwgZHN0KSBsb2FkcSBtZW0sIGRzdCBlbmQpCi0KLXdhc21Mb2FkT3AoaTMyX2xvYWQ4X3Ms
IFdhc21JMzJMb2FkOFMsIDEsIG1hY3JvKG1lbSwgZHN0KSBsb2FkYnNpIG1lbSwgZHN0IGVuZCkK
LXdhc21Mb2FkT3AoaTY0X2xvYWQ4X3MsIFdhc21JNjRMb2FkOFMsIDEsIG1hY3JvKG1lbSwgZHN0
KSBsb2FkYnNxIG1lbSwgZHN0IGVuZCkKLXdhc21Mb2FkT3AoaTMyX2xvYWQxNl9zLCBXYXNtSTMy
TG9hZDE2UywgMiwgbWFjcm8obWVtLCBkc3QpIGxvYWRoc2kgbWVtLCBkc3QgZW5kKQotd2FzbUxv
YWRPcChpNjRfbG9hZDE2X3MsIFdhc21JNjRMb2FkMTZTLCAyLCBtYWNybyhtZW0sIGRzdCkgbG9h
ZGhzcSBtZW0sIGRzdCBlbmQpCi13YXNtTG9hZE9wKGk2NF9sb2FkMzJfcywgV2FzbUk2NExvYWQz
MlMsIDQsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaXMgbWVtLCBkc3QgZW5kKQotCi1tYWNybyB3YXNt
U3RvcmVPcChuYW1lLCBzdHJ1Y3QsIHNpemUsIGZuKQotICAgIHdhc21PcChuYW1lLCBzdHJ1Y3Qs
IG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MCkKLSAgICAgICAg
d2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2lu
dGVyKGN0eCwgdDAsIHQxLCBzaXplKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikK
LSAgICAgICAgZm4odDIsIFt0MCwgdDFdKQotICAgICAgICBkaXNwYXRjaChjdHgpCi0gICAgZW5k
KQotZW5kCi0KLXdhc21TdG9yZU9wKHN0b3JlOCwgV2FzbVN0b3JlOCwgMSwgbWFjcm8odmFsdWUs
IG1lbSkgc3RvcmViIHZhbHVlLCBtZW0gZW5kKQotd2FzbVN0b3JlT3Aoc3RvcmUxNiwgV2FzbVN0
b3JlMTYsIDIsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlaCB2YWx1ZSwgbWVtIGVuZCkKLXdhc21T
dG9yZU9wKHN0b3JlMzIsIFdhc21TdG9yZTMyLCA0LCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZWkg
dmFsdWUsIG1lbSBlbmQpCi13YXNtU3RvcmVPcChzdG9yZTY0LCBXYXNtU3RvcmU2NCwgOCwgbWFj
cm8odmFsdWUsIG1lbSkgc3RvcmVxIHZhbHVlLCBtZW0gZW5kKQotCiAjIE9wY29kZXMgdGhhdCBk
b24ndCBoYXZlIHRoZSBgYjNvcGAgZW50cnkgaW4gd2FzbS5qc29uLiBUaGlzIHNob3VsZCBiZSBr
ZXB0IGluIHN5bmMKIAotd2FzbU9wKGkzMl9kaXZfcywgV2FzbUkzMkRpdlMsIG1hY3JvIChjdHgp
Ci0gICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkK
LQotICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBiaW5lcSB0MSwgLTEs
IC5zYWZlCi0gICAgYmllcSB0MCwgY29uc3RleHByIElOVDMyX01JTiwgLnRocm93SW50ZWdlck92
ZXJmbG93Ci0KLS5zYWZlOgotICAgIGlmIFg4Nl82NAotICAgICAgICAjIEZJWE1FOiBBZGQgYSB3
YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0MiBpcyByZHgKLSAgICAgICAg
IyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCi0gICAgICAg
IGNkcWkKLSAgICAgICAgaWRpdmkgdDEKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklT
Q1Y2NAotICAgICAgICBkaXZpcyB0MSwgdDAKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAg
ZW5kCi0gICAgcmV0dXJuaShjdHgsIHQwKQotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0
aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLQotLnRocm93SW50ZWdlck92ZXJmbG93Ogot
ICAgIHRocm93RXhjZXB0aW9uKEludGVnZXJPdmVyZmxvdykKLWVuZCkKLQotd2FzbU9wKGkzMl9k
aXZfdSwgV2FzbUkzMkRpdlUsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRpKGN0eCwgbV9saHMsIHQw
KQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0aXogdDEsIC50aHJvd0Rpdmlz
aW9uQnlaZXJvCi0KLSAgICBpZiBYODZfNjQKLSAgICAgICAgeG9yaSB0MiwgdDIKLSAgICAgICAg
dWRpdmkgdDEKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAotICAgICAgICBk
aXZpIHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1cm5p
KGN0eCwgdDApCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERp
dmlzaW9uQnlaZXJvKQotZW5kKQotCi13YXNtT3AoaTMyX3JlbV9zLCBXYXNtSTMyUmVtUywgbWFj
cm8gKGN0eCkKLSAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9y
aHMsIHQxKQotCi0gICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAgIGJpbmVx
IHQxLCAtMSwgLnNhZmUKLSAgICBiaW5lcSB0MCwgY29uc3RleHByIElOVDMyX01JTiwgLnNhZmUK
LQotICAgIG1vdmUgMCwgdDIKLSAgICBqbXAgLnJldHVybgotCi0uc2FmZToKLSAgICBpZiBYODZf
NjQKLSAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlz
IHJheCBhbmQgdDIgaXMgcmR4Ci0gICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMzY5MgotICAgICAgICBjZHFpCi0gICAgICAgIGlkaXZpIHQxCi0gICAg
ZWxzaWYgQVJNNjQgb3IgQVJNNjRFCi0gICAgICAgIGRpdmlzIHQxLCB0MCwgdDIKLSAgICAgICAg
bXVsaSB0MSwgdDIKLSAgICAgICAgc3ViaSB0MCwgdDIsIHQyCi0gICAgZWxzaWYgUklTQ1Y2NAot
ICAgICAgICByZW1pcyB0MSwgdDAKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0K
LS5yZXR1cm46Ci0gICAgcmV0dXJuaShjdHgsIHQyKQotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoK
LSAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLWVuZCkKLQotd2FzbU9wKGkzMl9y
ZW1fdSwgV2FzbUkzMlJlbVUsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRpKGN0eCwgbV9saHMsIHQw
KQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0aXogdDEsIC50aHJvd0Rpdmlz
aW9uQnlaZXJvCi0KLSAgICBpZiBYODZfNjQKLSAgICAgICAgeG9yaSB0MiwgdDIKLSAgICAgICAg
dWRpdmkgdDEKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUKLSAgICAgICAgZGl2aSB0MSwgdDAs
IHQyCi0gICAgICAgIG11bGkgdDEsIHQyCi0gICAgICAgIHN1YmkgdDAsIHQyLCB0MgotICAgIGVs
c2lmIFJJU0NWNjQKLSAgICAgICAgcmVtaSB0MSwgdDAKLSAgICBlbHNlCi0gICAgICAgIGVycm9y
Ci0gICAgZW5kCi0gICAgcmV0dXJuaShjdHgsIHQyKQotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoK
LSAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLWVuZCkKLQogd2FzbU9wKGkzMl9j
dHosIFdhc21JMzJDdHosIG1hY3JvIChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0
MCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQogICAgIHR6Y250aSB0MCwgdDAKICAg
ICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCkBAIC0xMTA2LDE0OCArMTAyOSwyNSBAQCB3YXNtT3Ao
aTMyX3BvcGNudCwgV2FzbUkzMlBvcGNudCwgbWFjcm8gKGN0eCkKICAgICByZXR1cm5pKGN0eCwg
cjEpCiBlbmQpCiAKLXdhc21PcChpNjRfZGl2X3MsIFdhc21JNjREaXZTLCBtYWNybyAoY3R4KQot
ICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0K
LSAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwotCi0gICAgYnFuZXEgdDEsIC0xLCAu
c2FmZQotICAgIGJxZXEgdDAsIGNvbnN0ZXhwciBJTlQ2NF9NSU4sIC50aHJvd0ludGVnZXJPdmVy
ZmxvdwotCi0uc2FmZToKLSAgICBpZiBYODZfNjQKLSAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5
IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4Ci0gICAgICAgICMg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgotICAgICAgICBj
cW9xCi0gICAgICAgIGlkaXZxIHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NW
NjQKLSAgICAgICAgZGl2cXMgdDEsIHQwCi0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVu
ZAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLnRocm93RGl2aXNpb25CeVplcm86Ci0gICAgdGhy
b3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCi0KLS50aHJvd0ludGVnZXJPdmVyZmxvdzoKLSAg
ICB0aHJvd0V4Y2VwdGlvbihJbnRlZ2VyT3ZlcmZsb3cpCi1lbmQpCi0KLXdhc21PcChpNjRfZGl2
X3UsIFdhc21JNjREaXZVLCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkK
LSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0KLSAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lv
bkJ5WmVybwotCi0gICAgaWYgWDg2XzY0Ci0gICAgICAgIHhvcnEgdDIsIHQyCi0gICAgICAgIHVk
aXZxIHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKLSAgICAgICAgZGl2
cSB0MSwgdDAKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0gICAgcmV0dXJucShj
dHgsIHQwKQotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihEaXZp
c2lvbkJ5WmVybykKLWVuZCkKLQotd2FzbU9wKGk2NF9yZW1fcywgV2FzbUk2NFJlbVMsIG1hY3Jv
IChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhz
LCB0MSkKLQotICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBicW5lcSB0
MSwgLTEsIC5zYWZlCi0gICAgYnFuZXEgdDAsIGNvbnN0ZXhwciBJTlQ2NF9NSU4sIC5zYWZlCi0K
LSAgICBtb3ZlIDAsIHQyCi0gICAgam1wIC5yZXR1cm4KLQotLnNhZmU6Ci0gICAgaWYgWDg2XzY0
Ci0gICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyBy
YXggYW5kIHQyIGlzIHJkeAotICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDM2OTIKLSAgICAgICAgY3FvcQotICAgICAgICBpZGl2cSB0MQotICAgIGVs
c2lmIEFSTTY0IG9yIEFSTTY0RQotICAgICAgICBkaXZxcyB0MSwgdDAsIHQyCi0gICAgICAgIG11
bHEgdDEsIHQyCi0gICAgICAgIHN1YnEgdDAsIHQyLCB0MgotICAgIGVsc2lmIFJJU0NWNjQKLSAg
ICAgICAgcmVtcXMgdDEsIHQwCi0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVuZAotCi0u
cmV0dXJuOgotICAgIHJldHVybnEoY3R4LCB0MikgIyByZHggaGFzIHRoZSByZW1haW5kZXIKLQot
LnRocm93RGl2aXNpb25CeVplcm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8p
Ci1lbmQpCi0KLXdhc21PcChpNjRfcmVtX3UsIFdhc21JNjRSZW1VLCBtYWNybyAoY3R4KQotICAg
IG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0KLSAg
ICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwotCi0gICAgaWYgWDg2XzY0Ci0gICAgICAg
IHhvcnEgdDIsIHQyCi0gICAgICAgIHVkaXZxIHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRF
Ci0gICAgICAgIGRpdnEgdDEsIHQwLCB0MgotICAgICAgICBtdWxxIHQxLCB0MgotICAgICAgICBz
dWJxIHQwLCB0MiwgdDIKLSAgICBlbHNpZiBSSVNDVjY0Ci0gICAgICAgIHJlbXEgdDEsIHQwCi0g
ICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVuZAotICAgIHJldHVybnEoY3R4LCB0MikKLQot
LnRocm93RGl2aXNpb25CeVplcm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8p
Ci1lbmQpCi0KLXdhc21PcChpNjRfY3R6LCBXYXNtSTY0Q3R6LCBtYWNybyAoY3R4KQotICAgIG1s
b2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgdHpjbnRxIHQwLCB0MAotICAgIHJldHVybnEo
Y3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9wb3BjbnQsIFdhc21JNjRQb3BjbnQsIG1hY3Jv
IChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCBhMSkKLSAgICBwcmVwYXJlU3RhdGVG
b3JDQ2FsbCgpCi0gICAgbW92ZSBQQywgYTAKLSAgICBjQ2FsbDIoX3Nsb3dfcGF0aF93YXNtX3Bv
cGNvdW50bGwpCi0gICAgcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCi0gICAgcmV0dXJucShjdHgs
IHIxKQotZW5kKQotCi13YXNtT3AoZjMyX3RydW5jLCBXYXNtRjMyVHJ1bmMsIG1hY3JvIChjdHgp
Cit3YXNtUm91bmRpbmdPcChmMzJfdHJ1bmMsIFdhc21GMzJUcnVuYywgbWFjcm8gKGN0eCkKICAg
ICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICB0cnVuY2F0ZWYgZnQwLCBmdDAKICAg
ICByZXR1cm5mKGN0eCwgZnQwKQogZW5kKQogCi13YXNtT3AoZjMyX25lYXJlc3QsIFdhc21GMzJO
ZWFyZXN0LCBtYWNybyAoY3R4KQord2FzbVJvdW5kaW5nT3AoZjMyX25lYXJlc3QsIFdhc21GMzJO
ZWFyZXN0LCBtYWNybyAoY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAg
IHJvdW5kZiBmdDAsIGZ0MAogICAgIHJldHVybmYoY3R4LCBmdDApCiBlbmQpCiAKLXdhc21PcChm
NjRfdHJ1bmMsIFdhc21GNjRUcnVuYywgbWFjcm8gKGN0eCkKK3dhc21Sb3VuZGluZ09wKGY2NF90
cnVuYywgV2FzbUY2NFRydW5jLCBtYWNybyAoY3R4KQogICAgIG1sb2FkZChjdHgsIG1fb3BlcmFu
ZCwgZnQwKQogICAgIHRydW5jYXRlZCBmdDAsIGZ0MAogICAgIHJldHVybmQoY3R4LCBmdDApCiBl
bmQpCiAKLXdhc21PcChmNjRfbmVhcmVzdCwgV2FzbUY2NE5lYXJlc3QsIG1hY3JvIChjdHgpCit3
YXNtUm91bmRpbmdPcChmNjRfbmVhcmVzdCwgV2FzbUY2NE5lYXJlc3QsIG1hY3JvIChjdHgpCiAg
ICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgcm91bmRkIGZ0MCwgZnQwCiAgICAg
cmV0dXJuZChjdHgsIGZ0MCkKQEAgLTEyNzEsMjQgKzEwNzEsNiBAQCB3YXNtT3AoaTMyX3RydW5j
X3NfZjMyLCBXYXNtSTMyVHJ1bmNTRjMyLCBtYWNybyAoY3R4KQogICAgIHRocm93RXhjZXB0aW9u
KE91dE9mQm91bmRzVHJ1bmMpCiBlbmQpCiAKLXdhc21PcChpMzJfdHJ1bmNfc19mNjQsIFdhc21J
MzJUcnVuY1NGNjQsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDAp
Ci0KLSAgICBtb3ZlIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDAgIyBJTlQzMl9NSU4gLSAxLjAKLSAg
ICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMK
LQotICAgIG1vdmUgMHg0MWUwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQzMl9NSU4KLSAgICBmcTJk
IHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAg
IHRydW5jYXRlZDJpcyBmdDAsIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotCi0ub3V0T2ZCb3Vu
ZHNUcnVuYzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQotZW5kKQotCiB3
YXNtT3AoaTMyX3RydW5jX3VfZjMyLCBXYXNtSTMyVHJ1bmNVRjMyLCBtYWNybyAoY3R4KQogICAg
IG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogCkBAIC0xMzA3LDk2ICsxMDg5LDYgQEAgd2Fz
bU9wKGkzMl90cnVuY191X2YzMiwgV2FzbUkzMlRydW5jVUYzMiwgbWFjcm8gKGN0eCkKICAgICB0
aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQogZW5kKQogCi13YXNtT3AoaTMyX3RydW5j
X3VfZjY0LCBXYXNtSTMyVHJ1bmNVRjY0LCBtYWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1f
b3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGJmZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAot
ICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVu
YwotCi0gICAgbW92ZSAweDQxZjAwMDAwMDAwMDAwMDAsIHQwICMgSU5UMzJfTUlOICogLTIuMAot
ICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVu
YwotCi0gICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91
dE9mQm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKLWVu
ZCkKLQotd2FzbU9wKGk2NF90cnVuY19zX2YzMiwgV2FzbUk2NFRydW5jU0YzMiwgbWFjcm8gKGN0
eCkKLSAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhkZjAwMDAw
MCwgdDAgIyBJTlQ2NF9NSU4KLSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmx0dW4gZnQwLCBmdDEs
IC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICBtb3ZlIDB4NWYwMDAwMDAsIHQwICMgLUlOVDY0X01J
TgotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNU
cnVuYwotCi0gICAgdHJ1bmNhdGVmMnFzIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0K
LS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMp
Ci1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfc19mNjQsIFdhc21JNjRUcnVuY1NGNjQsIG1hY3Jv
IChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YzNl
MDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4KLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0
dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICBtb3ZlIDB4NDNlMDAwMDAwMDAw
MDAwMCwgdDAgIyAtSU5UNjRfTUlOCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICB0cnVuY2F0ZWQycXMgZnQwLCB0MAotICAg
IHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dFeGNlcHRp
b24oT3V0T2ZCb3VuZHNUcnVuYykKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY191X2YzMiwgV2Fz
bUk2NFRydW5jVUYzMiwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0
MCkKLQotICAgIG1vdmUgMHhiZjgwMDAwMCwgdDAgIyAtMS4wCi0gICAgZmkyZiB0MCwgZnQxCi0g
ICAgYmZsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICBtb3ZlIDB4NWY4
MDAwMDAsIHQwICMgSU5UNjRfTUlOICogLTIuMAotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmZ3Rl
cXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgdHJ1bmNhdGVmMnEgZnQwLCB0
MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dF
eGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY191X2Y2
NCwgV2FzbUk2NFRydW5jVUY2NCwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJh
bmQsIGZ0MCkKLQotICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKLSAgICBm
cTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQot
ICAgIG1vdmUgMHg0M2YwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDY0X01JTiAqIC0yLjAKLSAgICBm
cTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQot
ICAgIHRydW5jYXRlZDJxIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJv
dW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCi1lbmQpCi0K
IHdhc21PcChpMzJfdHJ1bmNfc2F0X2YzMl9zLCBXYXNtSTMyVHJ1bmNTYXRGMzJTLCBtYWNybyAo
Y3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogCkBAIC0xNDI1LDM0ICsxMTE3
LDYgQEAgd2FzbU9wKGkzMl90cnVuY19zYXRfZjMyX3MsIFdhc21JMzJUcnVuY1NhdEYzMlMsIG1h
Y3JvIChjdHgpCiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQogCi13YXNtT3AoaTMyX3RydW5j
X3NhdF9mNjRfcywgV2FzbUkzMlRydW5jU2F0RjY0UywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQo
Y3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhjMWUwMDAwMDAwMjAwMDAwLCB0MCAj
IElOVDMyX01JTiAtIDEuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVuIGZ0MCwgZnQx
LCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOCi0KLSAgICBtb3ZlIDB4NDFlMDAwMDAwMDAw
MDAwMCwgdDAgIyAtSU5UMzJfTUlOCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0
MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoK
LSAgICBiZGVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotICAgIG1vdmUgMCwg
dDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAg
IG1vdmUgKGNvbnN0ZXhwciBJTlQzMl9NQVgpLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQot
Lm91dE9mQm91bmRzVHJ1bmNTYXRNaW46Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDMyX01JTiks
IHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotZW5kKQotCiB3YXNtT3AoaTMyX3RydW5jX3NhdF9m
MzJfdSwgV2FzbUkzMlRydW5jU2F0RjMyVSwgbWFjcm8gKGN0eCkKICAgICBtbG9hZGYoY3R4LCBt
X29wZXJhbmQsIGZ0MCkKIApAQCAtMTQ3NiwxNTIgKzExNDAsMjIgQEAgd2FzbU9wKGkzMl90cnVu
Y19zYXRfZjMyX3UsIFdhc21JMzJUcnVuY1NhdEYzMlUsIG1hY3JvIChjdHgpCiAgICAgcmV0dXJu
aShjdHgsIHQwKQogZW5kKQogCi13YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfdSwgV2FzbUkzMlRy
dW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkK
LQotICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKLSAgICBmcTJkIHQwLCBm
dDEKLSAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KLQotICAg
IG1vdmUgMHg0MWYwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDMyX01JTiAqIC0yLjAKLSAgICBmcTJk
IHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgK
LQotICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS5vdXRP
ZkJvdW5kc1RydW5jU2F0TWluOgotICAgIG1vdmUgMCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDAp
Ci0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UMzJf
TUFYKSwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNf
c2F0X2YzMl9zLCBXYXNtSTY0VHJ1bmNTYXRGMzJTLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZihj
dHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGRmMDAwMDAwLCB0MCAjIElOVDY0X01J
TgotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1
bmNTYXRNaW5Pck5hTgotCi0gICAgbW92ZSAweDVmMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KLSAg
ICBmaTJmIHQwLCBmdDEKLSAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNT
YXRNYXgKLQotICAgIHRydW5jYXRlZjJxcyBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQot
Ci0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgotICAgIGJmZXEgZnQwLCBmdDAsIC5vdXRP
ZkJvdW5kc1RydW5jU2F0TWluCi0gICAgbW92ZSAwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkK
LQotLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDY0X01B
WCksIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoK
LSAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUlOKSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDAp
Ci1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTY0VHJ1bmNTYXRGNjRT
LCBtYWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92
ZSAweGMzZTAwMDAwMDAwMDAwMDAsIHQwICMgSU5UNjRfTUlOCi0gICAgZnEyZCB0MCwgZnQxCi0g
ICAgYmRsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOCi0KLSAgICBt
b3ZlIDB4NDNlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCi0gICAgZnEyZCB0MCwgZnQx
Ci0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4Ci0KLSAgICB0
cnVuY2F0ZWQycXMgZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRz
VHJ1bmNTYXRNaW5Pck5hTjoKLSAgICBiZGVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1pbgotICAgIG1vdmUgMCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5k
c1RydW5jU2F0TWF4OgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9NQVgpLCB0MAotICAgIHJl
dHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46Ci0gICAgbW92ZSAoY29u
c3RleHByIElOVDY0X01JTiksIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNt
T3AoaTY0X3RydW5jX3NhdF9mMzJfdSwgV2FzbUk2NFRydW5jU2F0RjMyVSwgbWFjcm8gKGN0eCkK
LSAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhiZjgwMDAwMCwg
dDAgIyAtMS4wCi0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZsdGVxdW4gZnQwLCBmdDEsIC5vdXRP
ZkJvdW5kc1RydW5jU2F0TWluCi0KLSAgICBtb3ZlIDB4NWY4MDAwMDAsIHQwICMgSU5UNjRfTUlO
ICogLTIuMAotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZC
b3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVmMnEgZnQwLCB0MAotICAgIHJldHVybnEo
Y3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46Ci0gICAgbW92ZSAwLCB0MAotICAg
IHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6Ci0gICAgbW92ZSAo
Y29uc3RleHByIFVJTlQ2NF9NQVgpLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQot
d2FzbU9wKGk2NF90cnVuY19zYXRfZjY0X3UsIFdhc21JNjRUcnVuY1NhdEY2NFUsIG1hY3JvIChj
dHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YmZmMDAw
MDAwMDAwMDAwMCwgdDAgIyAtMS4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCi0KLSAgICBtb3ZlIDB4NDNmMDAwMDAwMDAw
MDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVx
dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWQycSBm
dDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoK
LSAgICBtb3ZlIDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1heDoKLSAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDY0X01BWCksIHQwCi0gICAgcmV0dXJu
cShjdHgsIHQwKQotZW5kKQotCi0KLXdhc21PcChmMzJfY29udmVydF91X2k2NCwgV2FzbUYzMkNv
bnZlcnRVSTY0LCBtYWNybyAoY3R4KQord2FzbUk2NFRvRk9wKGYzMl9jb252ZXJ0X3VfaTY0LCBX
YXNtRjMyQ29udmVydFVJNjQsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5k
LCB0MCkKICAgICBpZiBYODZfNjQKICAgICAgICAgY3EyZiB0MCwgdDEsIGZ0MAotICAgIGVsc2lm
IEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgICAgIGNxMmYgdDAsIGZ0MAogICAgIGVs
c2UKLSAgICAgICAgZXJyb3IKKyAgICAgICAgY3EyZiB0MCwgZnQwCiAgICAgZW5kCiAgICAgcmV0
dXJuZihjdHgsIGZ0MCkKIGVuZCkKIAotd2FzbU9wKGY2NF9jb252ZXJ0X3VfaTY0LCBXYXNtRjY0
Q29udmVydFVJNjQsIG1hY3JvIChjdHgpCit3YXNtSTY0VG9GT3AoZjY0X2NvbnZlcnRfdV9pNjQs
IFdhc21GNjRDb252ZXJ0VUk2NCwgbWFjcm8gKGN0eCkKICAgICBtbG9hZHEoY3R4LCBtX29wZXJh
bmQsIHQwKQogICAgIGlmIFg4Nl82NAogICAgICAgICBjcTJkIHQwLCB0MSwgZnQwCi0gICAgZWxz
aWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKLSAgICAgICAgY3EyZCB0MCwgZnQwCiAgICAg
ZWxzZQotICAgICAgICBlcnJvcgorICAgICAgICBjcTJkIHQwLCBmdDAKICAgICBlbmQKICAgICBy
ZXR1cm5kKGN0eCwgZnQwKQogZW5kKQpAQCAtMTYzMiw0NyArMTE2Niw2IEBAIHdhc21PcChpMzJf
ZXF6LCBXYXNtSTMyRXF6LCBtYWNybyhjdHgpCiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQog
Ci13YXNtT3AoaTY0X3NobCwgV2FzbUk2NFNobCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgs
IG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCi0gICAgbHNoaWZ0cSB0MSwg
dDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfc2hyX3UsIFdhc21J
NjRTaHJVLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2Fk
aShjdHgsIG1fcmhzLCB0MSkKLSAgICB1cnNoaWZ0cSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwg
dDApCi1lbmQpCi0KLXdhc21PcChpNjRfc2hyX3MsIFdhc21JNjRTaHJTLCBtYWNybyhjdHgpCi0g
ICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKLSAg
ICByc2hpZnRxIHQxLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2
NF9yb3RyLCBXYXNtSTY0Um90ciwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0
MCkKLSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCi0gICAgcnJvdGF0ZXEgdDEsIHQwCi0gICAg
cmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3JvdGwsIFdhc21JNjRSb3RsLCBt
YWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1f
cmhzLCB0MSkKLSAgICBscm90YXRlcSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQp
Ci0KLXdhc21PcChpNjRfZXF6LCBXYXNtSTY0RXF6LCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0
eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBjcWVxIHQwLCAwLCB0MAotICAgIHJldHVybmkoY3R4LCB0
MCkKLWVuZCkKLQogd2FzbU9wKGYzMl9taW4sIFdhc21GMzJNaW4sIG1hY3JvKGN0eCkKICAgICBt
bG9hZGYoY3R4LCBtX2xocywgZnQwKQogICAgIG1sb2FkZihjdHgsIG1fcmhzLCBmdDEpCkBAIC0x
NzgyLDIzICsxMjc1LDYgQEAgd2FzbU9wKGY2NF9tYXgsIFdhc21GNjRNYXgsIG1hY3JvKGN0eCkK
ICAgICByZXR1cm5kKGN0eCwgZnQxKQogZW5kKQogCi13YXNtT3AoZjY0X2NvcHlzaWduLCBXYXNt
RjY0Q29weXNpZ24sIG1hY3JvKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX2xocywgZnQwKQotICAg
IG1sb2FkZChjdHgsIG1fcmhzLCBmdDEpCi0KLSAgICBmZDJxIGZ0MSwgdDEKLSAgICBtb3ZlIDB4
ODAwMDAwMDAwMDAwMDAwMCwgdDIKLSAgICBhbmRxIHQyLCB0MQotCi0gICAgZmQycSBmdDAsIHQw
Ci0gICAgbW92ZSAweDdmZmZmZmZmZmZmZmZmZmYsIHQyCi0gICAgYW5kcSB0MiwgdDAKLQotICAg
IG9ycSB0MSwgdDAKLSAgICBmcTJkIHQwLCBmdDAKLSAgICByZXR1cm5kKGN0eCwgZnQwKQotZW5k
KQotCiB3YXNtT3AoZjMyX2NvbnZlcnRfdV9pMzIsIFdhc21GMzJDb252ZXJ0VUkzMiwgbWFjcm8o
Y3R4KQogICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAgY2kyZiB0MCwgZnQwCkBA
IC0xOTc0LDEzNCArMTQ1MCw2IEBAIHdhc21PcChpMzJfY2x6LCBXYXNtSTMyQ2x6LCBtYWNybyhj
dHgpCiAgICAgcmV0dXJuaShjdHgsIHQxKQogZW5kKQogCi13YXNtT3AoaTY0X2FkZCwgV2FzbUk2
NEFkZCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEo
Y3R4LCBtX3JocywgdDEpCi0gICAgYWRkcSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1l
bmQpCi0KLXdhc21PcChpNjRfc3ViLCBXYXNtSTY0U3ViLCBtYWNybyhjdHgpCi0gICAgbWxvYWRx
KGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBzdWJxIHQx
LCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9tdWwsIFdhc21J
NjRNdWwsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRx
KGN0eCwgbV9yaHMsIHQxKQotICAgIG11bHEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQot
ZW5kKQotCi13YXNtT3AoaTY0X2FuZCwgV2FzbUk2NEFuZCwgbWFjcm8oY3R4KQotICAgIG1sb2Fk
cShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgYW5kcSB0
MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfb3IsIFdhc21J
NjRPciwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEo
Y3R4LCBtX3JocywgdDEpCi0gICAgb3JxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVu
ZCkKLQotd2FzbU9wKGk2NF94b3IsIFdhc21JNjRYb3IsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEo
Y3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIHhvcnEgdDAs
IHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X2VxLCBXYXNtSTY0
RXEsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0
eCwgbV9yaHMsIHQxKQotICAgIGNxZXEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICBy
ZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfbmUsIFdhc21JNjROZSwgbWFjcm8o
Y3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3Jocywg
dDEpCi0gICAgY3FuZXEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0
eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfbHRfcywgV2FzbUk2NEx0UywgbWFjcm8oY3R4KQot
ICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0g
ICAgY3FsdCB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikK
LWVuZCkKLQotd2FzbU9wKGk2NF9sZV9zLCBXYXNtSTY0TGVTLCBtYWNybyhjdHgpCi0gICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWx0
ZXEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQp
Ci0KLXdhc21PcChpNjRfbHRfdSwgV2FzbUk2NEx0VSwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShj
dHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FiIHQwLCB0
MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNt
T3AoaTY0X2xlX3UsIFdhc21JNjRMZVUsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xo
cywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxYmVxIHQwLCB0MSwgdDIK
LSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0
X2d0X3MsIFdhc21JNjRHdFMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDAp
Ci0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxZ3QgdDAsIHQxLCB0MgotICAgIGFu
ZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfZ2Vfcywg
V2FzbUk2NEdlUywgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBt
bG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FndGVxIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEs
IHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2d0X3UsIFdhc21J
NjRHdFUsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRx
KGN0eCwgbV9yaHMsIHQxKQotICAgIGNxYSB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAg
IHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9nZV91LCBXYXNtSTY0R2VVLCBt
YWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1f
cmhzLCB0MSkKLSAgICBjcWFlcSB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVy
bmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9jbHosIFdhc21JNjRDbHosIG1hY3JvKGN0
eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIGx6Y250cSB0MCwgdDEKLSAg
ICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KIHdhc21PcChmMzJfYWRkLCBXYXNtRjMyQWRkLCBt
YWNybyhjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9saHMsIGZ0MCkKICAgICBtbG9hZGYoY3R4LCBt
X3JocywgZnQxKQpAQCAtMjE0MiwxMyArMTQ5MCwxMyBAQCB3YXNtT3AoZjMyX25lZywgV2FzbUYz
Mk5lZywgbWFjcm8oY3R4KQogICAgIHJldHVybmYoY3R4LCBmdDEpCiBlbmQpCiAKLXdhc21PcChm
MzJfY2VpbCwgV2FzbUYzMkNlaWwsIG1hY3JvKGN0eCkKK3dhc21Sb3VuZGluZ09wKGYzMl9jZWls
LCBXYXNtRjMyQ2VpbCwgbWFjcm8oY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQw
KQogICAgIGNlaWxmIGZ0MCwgZnQxCiAgICAgcmV0dXJuZihjdHgsIGZ0MSkKIGVuZCkKIAotd2Fz
bU9wKGYzMl9mbG9vciwgV2FzbUYzMkZsb29yLCBtYWNybyhjdHgpCit3YXNtUm91bmRpbmdPcChm
MzJfZmxvb3IsIFdhc21GMzJGbG9vciwgbWFjcm8oY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3Bl
cmFuZCwgZnQwKQogICAgIGZsb29yZiBmdDAsIGZ0MQogICAgIHJldHVybmYoY3R4LCBmdDEpCkBA
IC0yMjQyLDEzICsxNTkwLDEzIEBAIHdhc21PcChmNjRfbmVnLCBXYXNtRjY0TmVnLCBtYWNybyhj
dHgpCiAgICAgcmV0dXJuZChjdHgsIGZ0MSkKIGVuZCkKIAotd2FzbU9wKGY2NF9jZWlsLCBXYXNt
RjY0Q2VpbCwgbWFjcm8oY3R4KQord2FzbVJvdW5kaW5nT3AoZjY0X2NlaWwsIFdhc21GNjRDZWls
LCBtYWNybyhjdHgpCiAgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgY2VpbGQg
ZnQwLCBmdDEKICAgICByZXR1cm5kKGN0eCwgZnQxKQogZW5kKQogCi13YXNtT3AoZjY0X2Zsb29y
LCBXYXNtRjY0Rmxvb3IsIG1hY3JvKGN0eCkKK3dhc21Sb3VuZGluZ09wKGY2NF9mbG9vciwgV2Fz
bUY2NEZsb29yLCBtYWNybyhjdHgpCiAgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAg
ICAgZmxvb3JkIGZ0MCwgZnQxCiAgICAgcmV0dXJuZChjdHgsIGZ0MSkKQEAgLTIzMDMsNTAgKzE2
NTEsMjAgQEAgd2FzbU9wKGY2NF9nZSwgV2FzbUY2NEdlLCBtYWNybyhjdHgpCiBlbmQpCiAKIHdh
c21PcChpMzJfd3JhcF9pNjQsIFdhc21JMzJXcmFwSTY0LCBtYWNybyhjdHgpCi0gICAgbWxvYWRx
KGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQogICAg
IHJldHVybmkoY3R4LCB0MCkKIGVuZCkKIAotd2FzbU9wKGk2NF9leHRlbmRfc19pMzIsIFdhc21J
NjRFeHRlbmRTSTMyLCBtYWNybyhjdHgpCi0gICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkK
LSAgICBzeGkycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChp
NjRfZXh0ZW5kX3VfaTMyLCBXYXNtSTY0RXh0ZW5kVUkzMiwgbWFjcm8oY3R4KQotICAgIG1sb2Fk
aShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgenhpMnEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgs
IHQxKQotZW5kKQotCiB3YXNtT3AoaTMyX2V4dGVuZDhfcywgV2FzbUkzMkV4dGVuZDhTLCBtYWNy
byhjdHgpCiAgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICBzeGIyaSB0MCwgdDEK
LSAgICByZXR1cm5xKGN0eCwgdDEpCisgICAgcmV0dXJuaShjdHgsIHQxKQogZW5kKQogCiB3YXNt
T3AoaTMyX2V4dGVuZDE2X3MsIFdhc21JMzJFeHRlbmQxNlMsIG1hY3JvKGN0eCkKICAgICBtbG9h
ZGkoY3R4LCBtX29wZXJhbmQsIHQwKQogICAgIHN4aDJpIHQwLCB0MQotICAgIHJldHVybnEoY3R4
LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9leHRlbmQ4X3MsIFdhc21JNjRFeHRlbmQ4UywgbWFj
cm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgc3hiMnEgdDAsIHQx
Ci0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X2V4dGVuZDE2X3MsIFdh
c21JNjRFeHRlbmQxNlMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQw
KQotICAgIHN4aDJxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9w
KGk2NF9leHRlbmQzMl9zLCBXYXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRx
KGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBzeGkycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwg
dDEpCisgICAgcmV0dXJuaShjdHgsIHQxKQogZW5kKQogCiB3YXNtT3AoZjMyX2NvbnZlcnRfc19p
MzIsIFdhc21GMzJDb252ZXJ0U0kzMiwgbWFjcm8oY3R4KQpAQCAtMjM1NSw3ICsxNjczLDcgQEAg
d2FzbU9wKGYzMl9jb252ZXJ0X3NfaTMyLCBXYXNtRjMyQ29udmVydFNJMzIsIG1hY3JvKGN0eCkK
ICAgICByZXR1cm5mKGN0eCwgZnQwKQogZW5kKQogCi13YXNtT3AoZjMyX2NvbnZlcnRfc19pNjQs
IFdhc21GMzJDb252ZXJ0U0k2NCwgbWFjcm8oY3R4KQord2FzbUk2NFRvRk9wKGYzMl9jb252ZXJ0
X3NfaTY0LCBXYXNtRjMyQ29udmVydFNJNjQsIG1hY3JvKGN0eCkKICAgICBtbG9hZHEoY3R4LCBt
X29wZXJhbmQsIHQwKQogICAgIGNxMmZzIHQwLCBmdDAKICAgICByZXR1cm5mKGN0eCwgZnQwKQpA
QCAtMjM3OSw3ICsxNjk3LDcgQEAgd2FzbU9wKGY2NF9jb252ZXJ0X3NfaTMyLCBXYXNtRjY0Q29u
dmVydFNJMzIsIG1hY3JvKGN0eCkKICAgICByZXR1cm5kKGN0eCwgZnQwKQogZW5kKQogCi13YXNt
T3AoZjY0X2NvbnZlcnRfc19pNjQsIFdhc21GNjRDb252ZXJ0U0k2NCwgbWFjcm8oY3R4KQord2Fz
bUk2NFRvRk9wKGY2NF9jb252ZXJ0X3NfaTY0LCBXYXNtRjY0Q29udmVydFNJNjQsIG1hY3JvKGN0
eCkKICAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQogICAgIGNxMmRzIHQwLCBmdDAKICAg
ICByZXR1cm5kKGN0eCwgZnQwKQpAQCAtMjM5MSwzNCArMTcwOSwyOSBAQCB3YXNtT3AoZjY0X3By
b21vdGVfZjMyLCBXYXNtRjY0UHJvbW90ZUYzMiwgbWFjcm8oY3R4KQogICAgIHJldHVybmQoY3R4
LCBmdDEpCiBlbmQpCiAKLXdhc21PcChmNjRfcmVpbnRlcnByZXRfaTY0LCBXYXNtRjY0UmVpbnRl
cnByZXRJNjQsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAg
IGZxMmQgdDAsIGZ0MAotICAgIHJldHVybmQoY3R4LCBmdDApCi1lbmQpCi0KIHdhc21PcChpMzJf
cmVpbnRlcnByZXRfZjMyLCBXYXNtSTMyUmVpbnRlcnByZXRGMzIsIG1hY3JvKGN0eCkKICAgICBt
bG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICBmZjJpIGZ0MCwgdDAKICAgICByZXR1cm5p
KGN0eCwgdDApCiBlbmQpCiAKLXdhc21PcChpNjRfcmVpbnRlcnByZXRfZjY0LCBXYXNtSTY0UmVp
bnRlcnByZXRGNjQsIG1hY3JvKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkK
LSAgICBmZDJxIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KIG1hY3JvIGRy
b3BLZWVwKHN0YXJ0T2Zmc2V0LCBkcm9wLCBrZWVwKQogICAgIGxzaGlmdGkgMywgc3RhcnRPZmZz
ZXQKICAgICBzdWJwIGNmciwgc3RhcnRPZmZzZXQsIHN0YXJ0T2Zmc2V0CiAgICAgbmVnaSBkcm9w
CitpZiBKU1ZBTFVFNjQKICAgICBzeGkycSBkcm9wLCBkcm9wCitlbmQKIAogLmNvcHlMb29wOgog
ICAgIGJ0aXoga2VlcCwgLmRvbmUKK2lmIEpTVkFMVUU2NAogICAgIGxvYWRxIFtzdGFydE9mZnNl
dCwgZHJvcCwgOF0sIHQ2CiAgICAgc3RvcmVxIHQ2LCBbc3RhcnRPZmZzZXRdCitlbHNlCisgICAg
bG9hZDJpYSBbc3RhcnRPZmZzZXQsIGRyb3AsIDhdLCB0NSwgdDYKKyAgICBzdG9yZTJpYSB0NSwg
dDYsIFtzdGFydE9mZnNldF0KK2VuZAogICAgIHN1YmkgMSwga2VlcAogICAgIHN1YnAgOCwgc3Rh
cnRPZmZzZXQKICAgICBqbXAgLmNvcHlMb29wCkBAIC0yNDM2LDM4OSArMTc0OSw2IEBAIHdhc21P
cChkcm9wX2tlZXAsIFdhc21Ecm9wS2VlcCwgbWFjcm8oY3R4KQogICAgIGRpc3BhdGNoKGN0eCkK
IGVuZCkKIAotbWFjcm8gd2FzbUF0b21pY0JpbmFyeVJNV09wcyhsb3dlckNhc2VPcGNvZGUsIHVw
cGVyQ2FzZU9wY29kZSwgZm5iLCBmbmgsIGZuaSwgZm5xKQotICAgIHdhc21PcChpNjRfYXRvbWlj
X3JtdzglbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13OCV1cHBlckNhc2VPcGNv
ZGUlVSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQotICAg
ICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1
ZSwgdDApCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KGN0
eCwgdDMsIHQxLCAxKQotICAgICAgICBmbmIodDAsIFt0M10sIHQyLCB0NSwgdDEpCi0gICAgICAg
IGFuZHEgMHhmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0Ci0gICAgICAgIGFzc2VydCht
YWNybyhvaykgYnFiZXEgdDAsIDB4ZmYsIC5vayBlbmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0
MCkKLSAgICBlbmQpCi0gICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MTYlbG93ZXJDYXNlT3Bjb2Rl
JV91LCBXYXNtSTY0QXRvbWljUm13MTYldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAg
ICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29m
ZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQwKQotICAgICAgICBlbWl0
Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgs
IHQzLCB0MSwgMikKLSAgICAgICAgZm5oKHQwLCBbdDNdLCB0MiwgdDUsIHQxKQotICAgICAgICBh
bmRxIDB4ZmZmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDE2VG82NAotICAgICAgICBhc3NlcnQo
bWFjcm8ob2spIGJxYmVxIHQwLCAweGZmZmYsIC5vayBlbmQpCi0gICAgICAgIHJldHVybnEoY3R4
LCB0MCkKLSAgICBlbmQpCi0gICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MzIlbG93ZXJDYXNlT3Bj
b2RlJV91LCBXYXNtSTY0QXRvbWljUm13MzIldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkK
LSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBt
X29mZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQwKQotICAgICAgICBl
bWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhj
dHgsIHQzLCB0MSwgNCkKLSAgICAgICAgZm5pKHQwLCBbdDNdLCB0MiwgdDUsIHQxKQotICAgICAg
ICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmZmZmZmZmLCAub2sgZW5kKQotICAgICAg
ICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdhc21PcChpNjRfYXRvbWljX3JtdyVs
b3dlckNhc2VPcGNvZGUlLCBXYXNtSTY0QXRvbWljUm13JXVwcGVyQ2FzZU9wY29kZSUsIG1hY3Jv
KGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dldHUo
Y3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQwKQotICAg
ICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRD
aGVjayhjdHgsIHQzLCB0MSwgOCkKLSAgICAgICAgZm5xKHQwLCBbdDNdLCB0MiwgdDUsIHQxKQot
ICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQotZW5kCi0KLW1hY3JvIHdhc21BdG9t
aWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29k
ZSwgZm5pLCBmbnEpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhsb3dlckNhc2VPcGNvZGUs
IHVwcGVyQ2FzZU9wY29kZSwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikKLSAgICAgICAgICAgIGlmIFg4Nl82NAotICAgICAgICAgICAgICAgIG1vdmUgdDBH
UFIsIHQ1R1BSCi0gICAgICAgICAgICAgICAgbG9hZGIgbWVtLCB0MEdQUgotICAgICAgICAgICAg
Lmxvb3A6Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKLSAgICAgICAgICAgICAg
ICBmbmkodDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgICAgIGJhdG9taWN3ZWFrY2FzYiB0MEdQ
UiwgdDJHUFIsIG1lbSwgLmxvb3AKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIC5sb29w
OgotICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxYiBtZW0sIHQxR1BSCi0gICAgICAgICAgICAg
ICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAgICAgc3RvcmVjb25kcmVs
YiB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9v
cAotICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0gICAgICAgICAgICBlbmQKLSAg
ICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KQotICAgICAgICAgICAgaWYgWDg2XzY0Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVH
UFIKLSAgICAgICAgICAgICAgICBsb2FkaCBtZW0sIHQwR1BSCi0gICAgICAgICAgICAubG9vcDoK
LSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgotICAgICAgICAgICAgICAgIGZuaSh0
NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAgICAgYmF0b21pY3dlYWtjYXNoIHQwR1BSLCB0MkdQ
UiwgbWVtLCAubG9vcAotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgLmxvb3A6Ci0gICAg
ICAgICAgICAgICAgbG9hZGxpbmthY3FoIG1lbSwgdDFHUFIKLSAgICAgICAgICAgICAgICBmbmko
dDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgICAgICBzdG9yZWNvbmRyZWxoIHQ1R1BS
LCB0MkdQUiwgbWVtCi0gICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCi0gICAg
ICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAgICAgICAgICAgIGVuZAotICAgICAgICBl
bmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAg
ICAgICAgICBpZiBYODZfNjQKLSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgotICAg
ICAgICAgICAgICAgIGxvYWRpIG1lbSwgdDBHUFIKLSAgICAgICAgICAgIC5sb29wOgotICAgICAg
ICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCi0gICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0
MkdQUikKLSAgICAgICAgICAgICAgICBiYXRvbWljd2Vha2Nhc2kgdDBHUFIsIHQyR1BSLCBtZW0s
IC5sb29wCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAg
ICAgICBsb2FkbGlua2FjcWkgbWVtLCB0MUdQUgotICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwg
dDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgICAgIHN0b3JlY29uZHJlbGkgdDVHUFIsIHQyR1BS
LCBtZW0KLSAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKLSAgICAgICAgICAg
ICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAgICAgICAgICAgZW5kCi0gICAgICAgIGVuZCwKLSAg
ICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAg
IGlmIFg4Nl82NAotICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCi0gICAgICAgICAg
ICAgICAgbG9hZHEgbWVtLCB0MEdQUgotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAg
ICAgbW92ZSB0MEdQUiwgdDJHUFIKLSAgICAgICAgICAgICAgICBmbnEodDVHUFIsIHQyR1BSKQot
ICAgICAgICAgICAgICAgIGJhdG9taWN3ZWFrY2FzcSB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AK
LSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIGxv
YWRsaW5rYWNxcSBtZW0sIHQxR1BSCi0gICAgICAgICAgICAgICAgZm5xKHQwR1BSLCB0MUdQUiwg
dDJHUFIpCi0gICAgICAgICAgICAgICAgc3RvcmVjb25kcmVscSB0NUdQUiwgdDJHUFIsIG1lbQot
ICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAotICAgICAgICAgICAgICAgIG1v
dmUgdDFHUFIsIHQwR1BSCi0gICAgICAgICAgICBlbmQKLSAgICAgICAgZW5kKQotZW5kCi0KLWlm
IFg4Nl82NAotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX2FkZCwgQWRkLAotICAgICAgICBt
YWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkYiB0MEdQ
UiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikgYXRvbWljeGNoZ2FkZGggdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0gZW5kLAot
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
YWRkcSB0MEdQUiwgbWVtIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9zdWIsIFN1
YiwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWlj
eGNoZ3N1YmIgdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BS
LCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJoIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBt
YWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3ViaSB0MEdQ
UiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikgYXRvbWljeGNoZ3N1YnEgdDBHUFIsIG1lbSBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJN
V09wcyhfeGNoZywgWGNoZywKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikgYXRvbWljeGNoZ2IgdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdoIHQwR1BSLCBtZW0gZW5kLAot
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
aSB0MEdQUiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikgYXRvbWljeGNoZ3EgdDBHUFIsIG1lbSBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFy
eVJNV09wc1dpdGhXZWFrQ0FTKF9hbmQsIEFuZCwKLSAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BS
KQotICAgICAgICAgICAgYW5kaSB0NUdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBt
YWNybyh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBhbmRxIHQ1R1BSLCB0MkdQUgotICAgICAg
ICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9vciwgT3IsCi0g
ICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgIG9yaSB0NUdQUiwgdDJHUFIK
LSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBv
cnEgdDVHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3Bz
V2l0aFdlYWtDQVMoX3hvciwgWG9yLAotICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCi0gICAg
ICAgICAgICB4b3JpIHQ1R1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQ1
R1BSLCB0MkdQUikKLSAgICAgICAgICAgIHhvcnEgdDVHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkK
LWVsc2lmIEFSTTY0RQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX2FkZCwgQWRkLAotICAg
ICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRk
YiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BS
LCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRoIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAg
ICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2Fk
ZGkgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQ
UiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkcSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQpCi0g
ICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfc3ViLCBTdWIsCi0gICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBuZWdxIHQwR1BSCi0gICAg
ICAgICAgICBhdG9taWN4Y2hnYWRkYiB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQsCi0g
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAg
ICBuZWdxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnYWRkaCB0MEdQUiwgbWVtLCB0MEdQ
UgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwg
dDFHUFIpCi0gICAgICAgICAgICBuZWdxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnYWRk
aSB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBuZWdxIHQwR1BSCi0gICAgICAg
ICAgICBhdG9taWN4Y2hnYWRkcSB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQpCi0gICAg
d2FzbUF0b21pY0JpbmFyeVJNV09wcyhfYW5kLCBBbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBub3RxIHQwR1BSCi0gICAgICAg
ICAgICBhdG9taWN4Y2hnY2xlYXJiIHQwR1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCwKLSAg
ICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAg
IG5vdHEgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcmggdDBHUFIsIG1lbSwgdDBH
UFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIs
IHQxR1BSKQotICAgICAgICAgICAgbm90cSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2Ns
ZWFyaSB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBub3RxIHQwR1BSCi0gICAg
ICAgICAgICBhdG9taWN4Y2hnY2xlYXJxIHQwR1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCkK
LSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9vciwgT3IsCi0gICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcmIgdDBHUFIsIG1lbSwgdDBH
UFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBh
dG9taWN4Y2hnb3JoIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIs
IG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29yaSB0MEdQUiwgbWVtLCB0MEdQ
UiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0
b21pY3hjaGdvcnEgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlS
TVdPcHMoX3hvciwgWG9yLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIs
IHQxR1BSKSBhdG9taWN4Y2hneG9yYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JoIHQwR1BS
LCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikgYXRvbWljeGNoZ3hvcmkgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBt
YWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9ycSB0MEdQ
UiwgbWVtLCB0MEdQUiBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfeGNoZywgWGNo
ZywKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWlj
eGNoZ2IgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0g
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdp
IHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3EgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQotZWxzZQot
ICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYWRkLCBBZGQsCi0gICAgICAg
IG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBhZGRpIHQwR1BSLCB0MUdQ
UiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BS
KQotICAgICAgICAgICAgYWRkcSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLSAg
ICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3N1YiwgU3ViLAotICAgICAgICBt
YWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgc3ViaSB0MUdQUiwgdDBHUFIs
IHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikK
LSAgICAgICAgICAgIHN1YnEgdDFHUFIsIHQwR1BSLCB0MkdQUgotICAgICAgICBlbmQpCi0gICAg
d2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94Y2hnLCBYY2hnLAotICAgICAgICBt
YWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIK
LSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAg
ICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5h
cnlSTVdPcHNXaXRoV2Vha0NBUyhfYW5kLCBBbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQ
UiwgdDJHUFIpCi0gICAgICAgICAgICBhbmRpIHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAg
ZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgYW5k
cSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5
Uk1XT3BzV2l0aFdlYWtDQVMoX29yLCBPciwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0
MkdQUikKLSAgICAgICAgICAgIG9yaSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwK
LSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIG9ycSB0MEdQ
UiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3Bz
V2l0aFdlYWtDQVMoX3hvciwgWG9yLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BS
KQotICAgICAgICAgICAgeG9yaSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAg
ICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIHhvcnEgdDBHUFIs
IHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQpCi1lbmQKLQotbWFjcm8gd2FzbUF0b21pY0NvbXBh
cmVFeGNoYW5nZU9wcyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5iLCBmbmgs
IGZuaSwgZm5xKQotICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzglbG93ZXJDYXNlT3Bjb2RlJV91
LCBXYXNtSTY0QXRvbWljUm13OCV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAg
ICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0
LCB0MSkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCi0gICAgICAgIG1sb2Fk
cShjdHgsIG1fdmFsdWUsIHQyKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFk
ZGluZ09mZnNldChjdHgsIHQzLCB0MSwgMSkKLSAgICAgICAgZm5iKHQwLCB0MiwgW3QzXSwgdDUs
IHQxKQotICAgICAgICBhbmRxIDB4ZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQ4VG82NAotICAg
ICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmLCAub2sgZW5kKQotICAgICAgICBy
ZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzE2JWxv
d2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBt
YWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdn
ZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0
MCkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAgICAgIGVtaXRDaGVja0Fu
ZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQx
LCAyKQotICAgICAgICBmbmgodDAsIHQyLCBbdDNdLCB0NSwgdDEpCi0gICAgICAgIGFuZHEgMHhm
ZmZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kMTZUbzY0Ci0gICAgICAgIGFzc2VydChtYWNybyhv
aykgYnFiZXEgdDAsIDB4ZmZmZiwgLm9rIGVuZCkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQot
ICAgIGVuZCkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19ybXczMiVsb3dlckNhc2VPcGNvZGUlX3Us
IFdhc21JNjRBdG9taWNSbXczMiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAg
ICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0
LCB0MSkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCi0gICAgICAgIG1sb2Fk
cShjdHgsIG1fdmFsdWUsIHQyKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFk
ZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgNCkKLSAgICAgICAgZm5p
KHQwLCB0MiwgW3QzXSwgdDUsIHQxKQotICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQw
LCAweGZmZmZmZmZmLCAub2sgZW5kKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5k
KQotICAgIHdhc21PcChpNjRfYXRvbWljX3JtdyVsb3dlckNhc2VPcGNvZGUlLCBXYXNtSTY0QXRv
bWljUm13JXVwcGVyQ2FzZU9wY29kZSUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwg
bV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAg
IG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVl
LCB0MikKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRo
QWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDgpCi0gICAgICAgIGZucSh0MCwgdDIsIFt0M10s
IHQ1LCB0MSkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLWVuZAotCi0jIHQw
R1BSID0+IGV4cGVjdGVkLCB0MkdQUiA9PiB2YWx1ZSwgbWVtID0+IG1lbW9yeSByZWZlcmVuY2UK
LXdhc21BdG9taWNDb21wYXJlRXhjaGFuZ2VPcHMoX2NtcHhjaGcsIENtcHhjaGcsCi0gICAgbWFj
cm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgaWYgWDg2XzY0IG9y
IEFSTTY0RQotICAgICAgICAgICAgYnFhIHQwR1BSICwgMHhmZiwgLmZhaWwKLSAgICAgICAgICAg
IGF0b21pY3dlYWtjYXNiIHQwR1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICBqbXAgLmRvbmUK
LSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAgICBhdG9taWNsb2FkYiBtZW0sIHQwR1BSCi0gICAg
ICAgIC5kb25lOgotICAgICAgICBlbHNlCi0gICAgICAgIC5sb29wOgotICAgICAgICAgICAgbG9h
ZGxpbmthY3FiIG1lbSwgdDFHUFIKLSAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZh
aWwKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbGIgdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAg
ICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBqbXAgLmxvb3AKLSAgICAgICAg
LmZhaWw6Ci0gICAgICAgICAgICBzdG9yZWNvbmRyZWxiIHQ1R1BSLCB0MUdQUiwgbWVtCi0gICAg
ICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAg
ICAgIC5kb25lOgotICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAgICAgICAgZW5kCi0g
ICAgZW5kLAotICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCi0gICAg
ICAgIGlmIFg4Nl82NCBvciBBUk02NEUKLSAgICAgICAgICAgIGJxYSB0MEdQUiwgMHhmZmZmLCAu
ZmFpbAotICAgICAgICAgICAgYXRvbWljd2Vha2Nhc2ggdDBHUFIsIHQyR1BSLCBtZW0KLSAgICAg
ICAgICAgIGptcCAuZG9uZQotICAgICAgICAuZmFpbDoKLSAgICAgICAgICAgIGF0b21pY2xvYWRo
IG1lbSwgdDBHUFIKLSAgICAgICAgLmRvbmU6Ci0gICAgICAgIGVsc2UKLSAgICAgICAgLmxvb3A6
Ci0gICAgICAgICAgICBsb2FkbGlua2FjcWggbWVtLCB0MUdQUgotICAgICAgICAgICAgYnFuZXEg
dDBHUFIsIHQxR1BSLCAuZmFpbAotICAgICAgICAgICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDJH
UFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGpt
cCAubG9vcAotICAgICAgICAuZmFpbDoKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIs
IHQxR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAg
ICBqbXAgLmxvb3AKLSAgICAgICAgLmRvbmU6Ci0gICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQ
UgotICAgICAgICBlbmQKLSAgICBlbmQsCi0gICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1
R1BSLCB0MUdQUikKLSAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQotICAgICAgICAgICAgYnFh
IHQwR1BSLCAweGZmZmZmZmZmLCAuZmFpbAotICAgICAgICAgICAgYXRvbWljd2Vha2Nhc2kgdDBH
UFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgIGptcCAuZG9uZQotICAgICAgICAuZmFpbDoKLSAg
ICAgICAgICAgIGF0b21pY2xvYWRpIG1lbSwgdDBHUFIKLSAgICAgICAgLmRvbmU6Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICBsb2FkbGlua2FjcWkgbWVtLCB0MUdQ
UgotICAgICAgICAgICAgYnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAotICAgICAgICAgICAgc3Rv
cmVjb25kcmVsaSB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwg
LmRvbmUKLSAgICAgICAgICAgIGptcCAubG9vcAotICAgICAgICAuZmFpbDoKLSAgICAgICAgICAg
IHN0b3JlY29uZHJlbGkgdDVHUFIsIHQxR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIs
IDAsIC5kb25lCi0gICAgICAgICAgICBqbXAgLmxvb3AKLSAgICAgICAgLmRvbmU6Ci0gICAgICAg
ICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAgICAgICBlbmQKLSAgICBlbmQsCi0gICAgbWFjcm8o
dDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgaWYgWDg2XzY0IG9yIEFS
TTY0RQotICAgICAgICAgICAgYXRvbWljd2Vha2Nhc3EgdDBHUFIsIHQyR1BSLCBtZW0KLSAgICAg
ICAgZWxzZQotICAgICAgICAubG9vcDoKLSAgICAgICAgICAgIGxvYWRsaW5rYWNxcSBtZW0sIHQx
R1BSCi0gICAgICAgICAgICBicW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCi0gICAgICAgICAgICBz
dG9yZWNvbmRyZWxxIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAw
LCAuZG9uZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAgICAgIC5mYWlsOgotICAgICAgICAg
ICAgc3RvcmVjb25kcmVscSB0NUdQUiwgdDFHUFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQ
UiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGptcCAubG9vcAotICAgICAgICAuZG9uZToKLSAgICAg
ICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0gICAgICAgIGVuZAotICAgIGVuZCkKLQogd2FzbU9w
KGF0b21pY19mZW5jZSwgV2FzbURyb3BLZWVwLCBtYWNybyhjdHgpCiAgICAgZmVuY2UKICAgICBk
aXNwYXRjaChjdHgpCkBAIC0yODQ3LDkgKzE3NzcsMTQgQEAgbWFjcm8gY29tbW9uQ2F0Y2hJbXBs
KGN0eCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAgICAgY29udmVydENhbGxlZVRvVk0odDMpCiAgICAg
cmVzdG9yZUNhbGxlZVNhdmVzRnJvbVZNRW50cnlGcmFtZUNhbGxlZVNhdmVzQnVmZmVyKHQzLCB0
MCkKIAotICAgIGxvYWRwIFZNOjpjYWxsZWVGb3JXYXNtQ2F0Y2hbdDNdLCB3czEKLSAgICBzdG9y
ZXAgMCwgVk06OmNhbGxlZUZvcldhc21DYXRjaFt0M10KLSAgICBzdG9yZXAgd3MxLCBDYWxsZWVb
Y2ZyXQorICAgIGxvYWRwIFZNOjpjYWxsZWVGb3JXYXNtQ2F0Y2ggKyBQYXlsb2FkT2Zmc2V0W3Qz
XSwgd3MxCisgICAgc3RvcmVwIDAsIFZNOjpjYWxsZWVGb3JXYXNtQ2F0Y2ggKyBQYXlsb2FkT2Zm
c2V0W3QzXQorICAgIHN0b3JlcCB3czEsIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXQoraWYg
bm90IEpTVkFMVUU2NAorICAgIGxvYWRpIFZNOjpjYWxsZWVGb3JXYXNtQ2F0Y2ggKyBUYWdPZmZz
ZXRbdDNdLCB3czEKKyAgICBzdG9yZWkgRW1wdHlWYWx1ZVRhZywgVk06OmNhbGxlZUZvcldhc21D
YXRjaCArIFRhZ09mZnNldFt0M10KKyAgICBzdG9yZWkgd3MxLCBDYWxsZWUgKyBUYWdPZmZzZXRb
Y2ZyXQorZW5kCiAKICAgICBsb2FkcCBWTTo6Y2FsbEZyYW1lRm9yQ2F0Y2hbdDNdLCBjZnIKICAg
ICBzdG9yZXAgMCwgVk06OmNhbGxGcmFtZUZvckNhdGNoW3QzXQpAQCAtMjg4OCw4ICsxODIzLDEz
IEBAIG1hY3JvIGNhdGNoSW1wbChjdHgsIHN0b3JlV2FzbUluc3RhbmNlKQogCiAuY29weUxvb3A6
CiAgICAgYnRpeiB0MywgLmRvbmUKK2lmIEpTVkFMVUU2NAogICAgIGxvYWRxIFt0MV0sIHQ2CiAg
ICAgc3RvcmVxIHQ2LCBbdDJdCitlbHNlCisgICAgbG9hZDJpYSBbdDFdLCB0NSwgdDYKKyAgICBz
dG9yZTJpYSB0NSwgdDYsIFt0Ml0KK2VuZAogICAgIHN1YmkgMSwgdDMKICAgICAjIEZJWE1FOiBV
c2UgYXJtIHN0b3JlLWFkZC9zdWIgaW5zdHJ1Y3Rpb25zIGluIHdhc20gTExJbnQgY2F0Y2gKICAg
ICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEyMTAKQEAgLTI5
MTcsMyArMTg1NywxMCBAQCBlbmQpCiBjb21tb25XYXNtT3Aod2FzbV9jYXRjaF9hbGxfbm9fdGxz
LCBXYXNtQ2F0Y2hBbGwsIG1hY3JvKCkgZW5kLCBtYWNybyhjdHgpCiAgICAgY2F0Y2hBbGxJbXBs
KGN0eCwgbWFjcm8oaW5zdGFuY2UpIGVuZCkKIGVuZCkKKworIyBWYWx1ZS1yZXByZXNlbnRhdGlv
bi1zcGVjaWZpYyBjb2RlLgoraWYgSlNWQUxVRTY0CisgICAgaW5jbHVkZSBXZWJBc3NlbWJseTY0
CitlbHNlCisgICAgaW5jbHVkZSBXZWJBc3NlbWJseTMyXzY0CitlbmQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseTMyXzY0LmFzbSBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseTMyXzY0LmFzbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmVjMTg5Zjk3NjNlNwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseTMyXzY0LmFzbQpAQCAtMCww
ICsxLDExMjkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDExLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMg
Q29uc3RhbnRzCisKK2NvbnN0IE1zd09mZnNldCA9IDQKK2NvbnN0IExzd09mZnNldCA9IDAKKwor
IyBPcGNvZGVzIHRoYXQgc2hvdWxkIGV2ZW50dWFsbHkgYmUgc2hhcmVkIHdpdGggSlMgbGxpbnQK
Kword2FzbU9wKG1vdiwgV2FzbU1vdiwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX3Ny
YywgdDEsIHQwKQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCisjIFdhc20gc3Bl
Y2lmaWMgYnl0ZWNvZGVzCisKK21hY3JvIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5n
T2Zmc2V0KHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKKyAgICAjIFRoaXMgbWFjcm8gdXBkYXRlcyAn
cG9pbnRlcicgdG8gdGFyZ2V0IGFkZHJlc3MsIGFuZCBtYXkgdGhyYXNoICdvZmZzZXQnCitpZiBB
Uk12NworICAgICMgTm90IGVub3VnaCByZWdpc3RlcnMgb24gYXJtIHRvIGtlZXAgdGhlIG1lbW9y
eSBiYXNlIGFuZCBzaXplIGluIHBpbm5lZAorICAgICMgcmVnaXN0ZXJzLCBzbyBsb2FkIHRoZW0g
b24gZWFjaCBhY2Nlc3MgaW5zdGVhZC4gRklYTUU6IGltcHJvdmUgdGhpcy4KKyAgICBhZGRwcyBv
ZmZzZXQsIHBvaW50ZXIKKyAgICBiY3MgLnRocm93CisgICAgYWRkcHMgc2l6ZSAtIDEsIHBvaW50
ZXIsIG9mZnNldCAjIFVzZSBvZmZzZXQgYXMgc2NyYXRjaCByZWdpc3RlcgorICAgIGJjcyAudGhy
b3cKKyAgICBicGIgb2Zmc2V0LCBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRCb3VuZHNDaGVja2lu
Z1NpemVbd2FzbUluc3RhbmNlXSwgLmNvbnRpbnVhdGlvbgorLnRocm93OgorICAgIHRocm93RXhj
ZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNjZXNzKQorLmNvbnRpbnVhdGlvbjoKKyAgICBhZGRw
IFdhc206Okluc3RhbmNlOjptX2NhY2hlZE1lbW9yeVt3YXNtSW5zdGFuY2VdLCBwb2ludGVyCitl
bHNlCisgICAgY3Jhc2goKQorZW5kCitlbmQKKworbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBv
aW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2socG9pbnRlciwgb2Zmc2V0LCBzaXpl
KQorICAgICMgVGhpcyBtYWNybyB1cGRhdGVzICdwb2ludGVyJyB0byB0YXJnZXQgYWRkcmVzcywg
YW5kIG1heSB0aHJhc2ggJ29mZnNldCcKK2lmIEFSTXY3CisgICAgIyBOb3QgZW5vdWdoIHJlZ2lz
dGVycyBvbiBhcm0gdG8ga2VlcCB0aGUgbWVtb3J5IGJhc2UgYW5kIHNpemUgaW4gcGlubmVkCisg
ICAgIyByZWdpc3RlcnMsIHNvIGxvYWQgdGhlbSBvbiBlYWNoIGFjY2VzcyBpbnN0ZWFkLiBGSVhN
RTogaW1wcm92ZSB0aGlzLgorICAgIGFkZHBzIG9mZnNldCwgcG9pbnRlcgorICAgIGJjcyAudGhy
b3cKKyAgICBhZGRwcyBzaXplIC0gMSwgcG9pbnRlciwgb2Zmc2V0ICMgVXNlIG9mZnNldCBhcyBz
Y3JhdGNoIHJlZ2lzdGVyCisgICAgYmNzIC50aHJvdworICAgIGJwYiBvZmZzZXQsIFdhc206Oklu
c3RhbmNlOjptX2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZVt3YXNtSW5zdGFuY2VdLCAuY29udGlu
dWF0aW9uCisudGhyb3c6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nl
c3MpCisuY29udGludWF0aW9uOgorICAgIGFkZHAgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkTWVt
b3J5W3dhc21JbnN0YW5jZV0sIHBvaW50ZXIKKyAgICBidHBueiBwb2ludGVyLCAoc2l6ZSAtIDEp
LCAudGhyb3cKK2Vsc2UKKyAgICBjcmFzaCgpCitlbmQKK2VuZAorCittYWNybyB3YXNtTG9hZE9w
KG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4pCisgICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8o
Y3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQorICAgICAgICB3Z2V0dShj
dHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRp
bmdPZmZzZXQodDAsIHQxLCBzaXplKQorICAgICAgICBmbih0MCwgdDMsIHQyKQorICAgICAgICBy
ZXR1cm4yaShjdHgsIHQzLCB0MikKKyAgICBlbmQpCitlbmQKKword2FzbUxvYWRPcChsb2FkOF91
LCBXYXNtTG9hZDhVLCAxLCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkYiBM
c3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAgIG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNtTG9h
ZE9wKGxvYWQxNl91LCBXYXNtTG9hZDE2VSwgMiwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cp
CisgICAgbG9hZGggTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdwor
ZW5kKQord2FzbUxvYWRPcChsb2FkMzJfdSwgV2FzbUxvYWQzMlUsIDQsIG1hY3JvKGFkZHIsIGRz
dE1zdywgZHN0THN3KQorICAgIGxvYWRpIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAgbW92
ZSAwLCBkc3RNc3cKK2VuZCkKK3dhc21Mb2FkT3AobG9hZDY0X3UsIFdhc21Mb2FkNjRVLCA4LCBt
YWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICAjIE1pZ2h0IGJlIHVuYWxpZ25lZCwgc28g
Y2FuJ3QgdXNlIGxvYWQyaWEKKyAgICBsb2FkaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAg
IGxvYWRpIE1zd09mZnNldFthZGRyXSwgZHN0TXN3CitlbmQpCisKK3dhc21Mb2FkT3AoaTMyX2xv
YWQ4X3MsIFdhc21JMzJMb2FkOFMsIDEsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAg
IGxvYWRic2kgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdworZW5k
KQord2FzbUxvYWRPcChpMzJfbG9hZDE2X3MsIFdhc21JMzJMb2FkMTZTLCAyLCBtYWNybyhhZGRy
LCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkaHNpIExzd09mZnNldFthZGRyXSwgZHN0THN3Cisg
ICAgbW92ZSAwLCBkc3RNc3cKK2VuZCkKK3dhc21Mb2FkT3AoaTY0X2xvYWQ4X3MsIFdhc21JNjRM
b2FkOFMsIDEsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRic2kgTHN3T2Zm
c2V0W2FkZHJdLCBkc3RMc3cKKyAgICByc2hpZnRpIGRzdExzdywgMzEsIGRzdE1zdworZW5kKQor
d2FzbUxvYWRPcChpNjRfbG9hZDE2X3MsIFdhc21JNjRMb2FkMTZTLCAyLCBtYWNybyhhZGRyLCBk
c3RNc3csIGRzdExzdykKKyAgICBsb2FkaHNpIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAg
cnNoaWZ0aSBkc3RMc3csIDMxLCBkc3RNc3cKK2VuZCkKK3dhc21Mb2FkT3AoaTY0X2xvYWQzMl9z
LCBXYXNtSTY0TG9hZDMyUywgNCwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9h
ZGkgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICByc2hpZnRpIGRzdExzdywgMzEsIGRzdE1z
dworZW5kKQorCittYWNybyB3YXNtU3RvcmVPcChuYW1lLCBzdHJ1Y3QsIHNpemUsIGZuKQorICAg
IHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9w
b2ludGVyLCB0MCkKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIGVt
aXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KHQwLCB0MSwgc2l6ZSkKKyAgICAg
ICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQzLCB0MikKKyAgICAgICAgZm4odDMsIHQyLCB0MCkK
KyAgICAgICAgZGlzcGF0Y2goY3R4KQorICAgIGVuZCkKK2VuZAorCit3YXNtU3RvcmVPcChzdG9y
ZTgsIFdhc21TdG9yZTgsIDEsIG1hY3JvKHNyY01zdywgc3JjTHN3LCBhZGRyKQorICAgIHN0b3Jl
YiBzcmNMc3csIExzd09mZnNldFthZGRyXQorZW5kKQord2FzbVN0b3JlT3Aoc3RvcmUxNiwgV2Fz
bVN0b3JlMTYsIDIsIG1hY3JvKHNyY01zdywgc3JjTHN3LCBhZGRyKQorICAgIHN0b3JlaCBzcmNM
c3csIExzd09mZnNldFthZGRyXQorZW5kKQord2FzbVN0b3JlT3Aoc3RvcmUzMiwgV2FzbVN0b3Jl
MzIsIDQsIG1hY3JvKHNyY01zdywgc3JjTHN3LCBhZGRyKQorICAgIHN0b3JlaSBzcmNMc3csIExz
d09mZnNldFthZGRyXQorZW5kKQord2FzbVN0b3JlT3Aoc3RvcmU2NCwgV2FzbVN0b3JlNjQsIDgs
IG1hY3JvKHNyY01zdywgc3JjTHN3LCBhZGRyKQorICAgICMgTWlnaHQgYmUgdW5hbGlnbmVkLCBz
byBjYW4ndCB1c2Ugc3RvcmUyaWEKKyAgICBzdG9yZWkgc3JjTHN3LCBMc3dPZmZzZXRbYWRkcl0K
KyAgICBzdG9yZWkgc3JjTXN3LCBNc3dPZmZzZXRbYWRkcl0KK2VuZCkKKword2FzbU9wKHJlZl9p
c19udWxsLCBXYXNtUmVmSXNOdWxsLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fcmVm
LCB0MSwgdDApICMgdDAgaXMgdW51c2VkCisgICAgY2llcSB0MSwgTnVsbFRhZywgdDAKKyAgICBy
ZXR1cm5pKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChnZXRfZ2xvYmFsLCBXYXNtR2V0R2xvYmFs
LCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5z
dGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbG9hZDJp
YSBbdDAsIHQxLCA4XSwgdDAsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisK
K3dhc21PcChzZXRfZ2xvYmFsLCBXYXNtU2V0R2xvYmFsLCBtYWNybyhjdHgpCisgICAgbG9hZHAg
V2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0
eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQzLCB0MikK
KyAgICBzdG9yZTJpYSB0MiwgdDMsIFt0MCwgdDEsIDhdCisgICAgZGlzcGF0Y2goY3R4KQorZW5k
KQorCit3YXNtT3AoZ2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNtR2V0R2xvYmFsUG9y
dGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xv
YmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEp
CisgICAgbG9hZHAgW3QwLCB0MSwgOF0sIHQwCisgICAgbG9hZDJpYSBbdDBdLCB0MCwgdDEKKyAg
ICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKHNldF9nbG9iYWxfcG9ydGFi
bGVfYmluZGluZywgV2FzbVNldEdsb2JhbFBvcnRhYmxlQmluZGluZywgbWFjcm8oY3R4KQorICAg
IGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3
Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQorICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVlLCB0
MywgdDIpCisgICAgbG9hZHAgW3QwLCB0MSwgOF0sIHQwCisgICAgc3RvcmUyaWEgdDIsIHQzLCBb
dDBdCisgICAgZGlzcGF0Y2goY3R4KQorZW5kKQorCisjIE9wY29kZXMgdGhhdCBkb24ndCBoYXZl
IHRoZSBgYjNvcGAgZW50cnkgaW4gd2FzbS5qc29uLiBUaGlzIHNob3VsZCBiZSBrZXB0IGluIHN5
bmMKKworbWFjcm8gY2FsbERpdlJlbShmbikKK2lmIEFSTXY3CisgICAgc3VicCBTdGFja0FsaWdu
bWVudCwgc3AKKyAgICBzdG9yZXAgUEMsIFtzcF0KKyAgICBjQ2FsbDQoZm4pCisgICAgbG9hZHAg
W3NwXSwgUEMKKyAgICBhZGRwIFN0YWNrQWxpZ25tZW50LCBzcAorZWxzZQorICAgIGVycm9yCitl
bmQKK2VuZAorCisjIGkzMiBiaW5hcnkgb3BzCisKK3dhc21PcChpMzJfZGl2X3MsIFdhc21JMzJE
aXZTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCBhMCkKKyAgICBtbG9hZGko
Y3R4LCBtX3JocywgYTEpCisKKyAgICBidGl6IGExLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisg
ICAgYmluZXEgYTEsIC0xLCAuc2FmZQorICAgIGJpZXEgYTAsIGNvbnN0ZXhwciBJTlQzMl9NSU4s
IC50aHJvd0ludGVnZXJPdmVyZmxvdworCisuc2FmZToKKyAgICBjYWxsRGl2UmVtKF9zbG93X3Bh
dGhfd2FzbV9pMzJfZGl2X3MpCisgICAgcmV0dXJuaShjdHgsIHIwKQorCisudGhyb3dEaXZpc2lv
bkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKKworLnRocm93SW50
ZWdlck92ZXJmbG93OgorICAgIHRocm93RXhjZXB0aW9uKEludGVnZXJPdmVyZmxvdykKK2VuZCkK
Kword2FzbU9wKGkzMl9kaXZfdSwgV2FzbUkzMkRpdlUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRp
KGN0eCwgbV9saHMsIGEwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCBhMSkKKworICAgIGJ0aXog
YTEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBjYWxsRGl2UmVtKF9zbG93X3BhdGhfd2Fz
bV9pMzJfZGl2X3UpCisgICAgcmV0dXJuaShjdHgsIHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVy
bzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGkz
Ml9yZW1fcywgV2FzbUkzMlJlbVMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9saHMs
IGEwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCBhMSkKKworICAgIGJ0aXogYTEsIC50aHJvd0Rp
dmlzaW9uQnlaZXJvCisKKyAgICBiaW5lcSBhMSwgLTEsIC5zYWZlCisgICAgYmluZXEgYTAsIGNv
bnN0ZXhwciBJTlQzMl9NSU4sIC5zYWZlCisKKyAgICBtb3ZlIDAsIHIwCisgICAgam1wIC5yZXR1
cm4KKworLnNhZmU6CisgICAgY2FsbERpdlJlbShfc2xvd19wYXRoX3dhc21faTMyX3JlbV9zKQor
CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCByMCkKKworLnRocm93RGl2aXNpb25CeVplcm86
CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpMzJf
cmVtX3UsIFdhc21JMzJSZW1VLCBtYWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCBh
MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgYTEpCisKKyAgICBidGl6IGExLCAudGhyb3dEaXZp
c2lvbkJ5WmVybworCisgICAgY2FsbERpdlJlbShfc2xvd19wYXRoX3dhc21faTMyX3JlbV91KQor
ICAgIHJldHVybmkoY3R4LCByMCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dF
eGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKKyMgaTY0IGJpbmFyeSBvcHMKKword2Fz
bU9wKGk2NF9hZGQsIFdhc21JNjRBZGQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9s
aHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBhZGRpcyB0
MiwgdDAKKyAgICBhZGNpICB0MywgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkK
Kword2FzbU9wKGk2NF9zdWIsIFdhc21JNjRTdWIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0
eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBz
dWJpcyB0MiwgdDAKKyAgICBzYmNpICB0MywgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkK
K2VuZCkKKword2FzbU9wKGk2NF9tdWwsIFdhc21JNjRNdWwsIG1hY3JvKGN0eCkKKyAgICBtbG9h
ZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikK
KyAgICBtdWxpIHQyLCB0MQorICAgIG11bGkgdDAsIHQzCisgICAgdW11bGxpIHQwLCB0MiwgdDAs
IHQyCisgICAgYWRkaSB0MSwgdDIKKyAgICBhZGRpIHQzLCB0MgorICAgIHJldHVybjJpKGN0eCwg
dDIsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X2Rpdl9zLCBXYXNtSTY0RGl2UywgbWFjcm8gKGN0
eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIGExLCBhMCkKKyAgICBtbG9hZDJpKGN0eCwgbV9y
aHMsIGEzLCBhMikKKworICAgIGJ0aW56IGEzLCAubm9uWmVyb0Rpdmlzb3IKKyAgICBidGl6IGEy
LCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisubm9uWmVyb0Rpdmlzb3I6CisgICAgYmluZXEgYTMs
IC0xLCAuc2FmZQorICAgIGJpbmVxIGEyLCAtMSwgLnNhZmUKKyAgICBiaW5lcSBhMSwgY29uc3Rl
eHByIElOVDMyX01JTiwgLnNhZmUKKyAgICBidGl6IGEwLCAudGhyb3dJbnRlZ2VyT3ZlcmZsb3cK
KworLnNhZmU6CisgICAgY2FsbERpdlJlbShfc2xvd19wYXRoX3dhc21faTY0X2Rpdl9zKQorICAg
IHJldHVybjJpKGN0eCwgcjEsIHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJv
d0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKKworLnRocm93SW50ZWdlck92ZXJmbG93OgorICAg
IHRocm93RXhjZXB0aW9uKEludGVnZXJPdmVyZmxvdykKK2VuZCkKKword2FzbU9wKGk2NF9kaXZf
dSwgV2FzbUk2NERpdlUsIG1hY3JvIChjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCBhMSwg
YTApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCBhMywgYTIpCisKKyAgICBidGlueiBhMywgLm5v
blplcm9EaXZpc29yCisgICAgYnRpeiBhMiwgLnRocm93RGl2aXNpb25CeVplcm8KKworLm5vblpl
cm9EaXZpc29yOgorICAgIGNhbGxEaXZSZW0oX3Nsb3dfcGF0aF93YXNtX2k2NF9kaXZfdSkKKyAg
ICByZXR1cm4yaShjdHgsIHIxLCByMCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhy
b3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpNjRfcmVtX3MsIFdh
c21JNjRSZW1TLCBtYWNybyAoY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgYTEsIGEwKQor
ICAgIG1sb2FkMmkoY3R4LCBtX3JocywgYTMsIGEyKQorCisgICAgYnRpbnogYTMsIC5ub25aZXJv
RGl2aXNvcgorICAgIGJ0aXogYTIsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKy5ub25aZXJvRGl2
aXNvcjoKKyAgICBiaW5lcSBhMywgLTEsIC5zYWZlCisgICAgYmluZXEgYTIsIC0xLCAuc2FmZQor
ICAgIGJpbmVxIGExLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAuc2FmZQorICAgIGJ0aW56IGEwLCAu
c2FmZQorCisgICAgbW92ZSAwLCByMQorICAgIG1vdmUgMCwgcjAKKyAgICBqbXAgLnJldHVybgor
Cisuc2FmZToKKyAgICBjYWxsRGl2UmVtKF9zbG93X3BhdGhfd2FzbV9pNjRfcmVtX3MpCisKKy5y
ZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCByMSwgcjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJv
OgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTY0
X3JlbV91LCBXYXNtSTY0UmVtVSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMs
IGExLCBhMCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIGEzLCBhMikKKworICAgIGJ0aW56IGEz
LCAubm9uWmVyb0Rpdmlzb3IKKyAgICBidGl6IGEyLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisu
bm9uWmVyb0Rpdmlzb3I6CisgICAgY2FsbERpdlJlbShfc2xvd19wYXRoX3dhc21faTY0X3JlbV91
KQorICAgIHJldHVybjJpKGN0eCwgcjEsIHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAg
ICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9hbmQs
IFdhc21JNjRBbmQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkK
KyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBhbmRpIHQyLCB0MAorICAgIGFu
ZGkgdDMsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRf
b3IsIFdhc21JNjRPciwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQw
KQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG9yaSB0MiwgdDAKKyAgICBv
cmkgdDMsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRf
eG9yLCBXYXNtSTY0WG9yLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwg
dDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgeG9yaSB0MiwgdDAKKyAg
ICB4b3JpIHQzLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3Ao
aTY0X3NobCwgV2FzbUk2NFNobCwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywg
dDEsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MikKKworICAgIGFuZGkgMHgzZiwgdDIK
KyAgICBidGl6IHQyLCAucmV0dXJuCisgICAgYmliIHQyLCAzMiwgLmxlc3NUaGFuMzIKKworICAg
IHN1YmkgMzIsIHQyCisgICAgbHNoaWZ0aSB0MCwgdDIsIHQxCisgICAgbW92ZSAwLCB0MAorICAg
IGptcCAucmV0dXJuCisKKy5sZXNzVGhhbjMyOgorICAgIGxzaGlmdGkgdDIsIHQxCisgICAgbW92
ZSAzMiwgdDMKKyAgICBzdWJpIHQyLCB0MworICAgIHVyc2hpZnRpIHQwLCB0MywgdDMKKyAgICBv
cmkgdDMsIHQxCisgICAgbHNoaWZ0aSB0MiwgdDAKKworLnJldHVybjoKKyAgICByZXR1cm4yaShj
dHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9zaHJfdSwgV2FzbUk2NFNoclUsIG1hY3Jv
KGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBt
X3JocywgdDIpCisKKyAgICBhbmRpIDB4M2YsIHQyCisgICAgYnRpeiB0MiwgLnJldHVybgorICAg
IGJpYiB0MiwgMzIsIC5sZXNzVGhhbjMyCisKKyAgICBzdWJpIDMyLCB0MgorICAgIHVyc2hpZnRp
IHQxLCB0MiwgdDAKKyAgICBtb3ZlIDAsIHQxCisgICAgam1wIC5yZXR1cm4KKworLmxlc3NUaGFu
MzI6CisgICAgdXJzaGlmdGkgdDIsIHQwCisgICAgbW92ZSAzMiwgdDMKKyAgICBzdWJpIHQyLCB0
MworICAgIGxzaGlmdGkgdDEsIHQzLCB0MworICAgIG9yaSB0MywgdDAKKyAgICB1cnNoaWZ0aSB0
MiwgdDEKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2Fz
bU9wKGk2NF9zaHJfcywgV2FzbUk2NFNoclMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwg
bV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDIpCisKKyAgICBhbmRpIDB4
M2YsIHQyCisgICAgYnRpeiB0MiwgLnJldHVybgorICAgIGJpYiB0MiwgMzIsIC5sZXNzVGhhbjMy
CisKKyAgICBzdWJpIDMyLCB0MgorICAgIHJzaGlmdGkgdDEsIHQyLCB0MAorICAgIHJzaGlmdGkg
MzEsIHQxCisgICAgam1wIC5yZXR1cm4KKworLmxlc3NUaGFuMzI6CisgICAgdXJzaGlmdGkgdDIs
IHQwCisgICAgbW92ZSAzMiwgdDMKKyAgICBzdWJpIHQyLCB0MworICAgIGxzaGlmdGkgdDEsIHQz
LCB0MworICAgIG9yaSB0MywgdDAKKyAgICByc2hpZnRpIHQyLCB0MQorCisucmV0dXJuOgorICAg
IHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3JvdHIsIFdhc21JNjRS
b3RyLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxv
YWRpKGN0eCwgbV9yaHMsIHQyKQorCisgICAgYW5kaSB0MiwgMHgyMCwgdDMKKyAgICBidGl6IHQz
LCAubm9Td2FwCisKKyAgICBtb3ZlIHQwLCB0MworICAgIG1vdmUgdDEsIHQwCisgICAgbW92ZSB0
MywgdDEKKworLm5vU3dhcDoKKyAgICBhbmRpIDB4MWYsIHQyCisgICAgYnRpeiB0MiwgLnJldHVy
bgorCisgICAgbW92ZSAzMiwgdDUKKyAgICBzdWJpIHQyLCB0NQorICAgIGxzaGlmdGkgdDAsIHQ1
LCB0MworICAgIGxzaGlmdGkgdDEsIHQ1LCB0NQorICAgIHVyc2hpZnRpIHQyLCB0MAorICAgIHVy
c2hpZnRpIHQyLCB0MQorICAgIG9yaSB0NSwgdDAKKyAgICBvcmkgdDMsIHQxCisKKy5yZXR1cm46
CisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfcm90bCwgV2Fz
bUk2NFJvdGwsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAg
ICBtbG9hZGkoY3R4LCBtX3JocywgdDIpCisKKyAgICBhbmRpIHQyLCAweDIwLCB0MworICAgIGJ0
aXogdDMsIC5ub1N3YXAKKworICAgIG1vdmUgdDAsIHQzCisgICAgbW92ZSB0MSwgdDAKKyAgICBt
b3ZlIHQzLCB0MQorCisubm9Td2FwOgorICAgIGFuZGkgMHgxZiwgdDIKKyAgICBidGl6IHQyLCAu
cmV0dXJuCisKKyAgICBtb3ZlIDMyLCB0NQorICAgIHN1YmkgdDIsIHQ1CisgICAgdXJzaGlmdGkg
dDAsIHQ1LCB0MworICAgIHVyc2hpZnRpIHQxLCB0NSwgdDUKKyAgICBsc2hpZnRpIHQyLCB0MAor
ICAgIGxzaGlmdGkgdDIsIHQxCisgICAgb3JpIHQ1LCB0MAorICAgIG9yaSB0MywgdDEKKworLnJl
dHVybjoKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9lcSwg
V2FzbUk2NEVxLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisg
ICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAwLCB0NgorICAgIGJpbmVx
IHQxLCB0MywgLnJldHVybgorICAgIGNpZXEgdDAsIHQyLCB0NgorLnJldHVybjoKKyAgICByZXR1
cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRfbmUsIFdhc21JNjROZSwgbWFjcm8oY3R4
KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3Jo
cywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYKKyAgICBiaW5lcSB0MSwgdDMsIC5yZXR1cm4KKyAg
ICBjaW5lcSB0MCwgdDIsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkK
Kword2FzbU9wKGk2NF9sdF9zLCBXYXNtSTY0THRTLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShj
dHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAg
bW92ZSAxLCB0NgorICAgIGJpbHQgdDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAg
IGJpZ3QgdDEsIHQzLCAucmV0dXJuCisgICAgY2liIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2
CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9sZV9z
LCBXYXNtSTY0TGVTLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDAp
CisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAgIGJp
bHQgdDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpZ3QgdDEsIHQzLCAucmV0
dXJuCisgICAgY2liZXEgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAg
cmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2x0X3UsIFdhc21JNjRMdFUsIG1h
Y3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0
eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmliIHQxLCB0MywgLnJldHVy
bgorICAgIG1vdmUgMCwgdDYKKyAgICBiaWEgdDEsIHQzLCAucmV0dXJuCisgICAgY2liIHQwLCB0
MiwgdDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2Vu
ZCkKKword2FzbU9wKGk2NF9sZV91LCBXYXNtSTY0TGVVLCBtYWNybyhjdHgpCisgICAgbWxvYWQy
aShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisg
ICAgbW92ZSAxLCB0NgorICAgIGJpYiB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2Cisg
ICAgYmlhIHQxLCB0MywgLnJldHVybgorICAgIGNpYmVxIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEs
IHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9n
dF9zLCBXYXNtSTY0R3RTLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwg
dDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAg
IGJpZ3QgdDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpbHQgdDEsIHQzLCAu
cmV0dXJuCisgICAgY2lhIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgorICAg
IHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9nZV9zLCBXYXNtSTY0R2VTLCBt
YWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShj
dHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAgIGJpZ3QgdDEsIHQzLCAucmV0
dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpbHQgdDEsIHQzLCAucmV0dXJuCisgICAgY2lhZXEg
dDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2
KQorZW5kKQorCit3YXNtT3AoaTY0X2d0X3UsIFdhc21JNjRHdFUsIG1hY3JvKGN0eCkKKyAgICBt
bG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0
MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlhIHQxLCB0MywgLnJldHVybgorICAgIG1vdmUgMCwg
dDYKKyAgICBiaWIgdDEsIHQzLCAucmV0dXJuCisgICAgY2lhIHQwLCB0MiwgdDYKKyAgICBhbmRp
IDEsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2
NF9nZV91LCBXYXNtSTY0R2VVLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0
MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAwLCB0Ngor
ICAgIGJpYiB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlhIHQxLCB0Mywg
LnJldHVybgorICAgIGNpYWVxIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgor
ICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKworIyBpNjQgdW5hcnkgb3BzCisKK3dhc21PcChp
NjRfY3R6LCBXYXNtSTY0Q3R6LCBtYWNybyAoY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJh
bmQsIHQxLCB0MCkKKyAgICBidGl6IHQwLCAudG9wCisKKyAgICB0emNudGkgdDAsIHQwCisgICAg
am1wIC5yZXR1cm4KKworLnRvcDoKKyAgICB0emNudGkgdDEsIHQwCisgICAgYWRkaSAzMiwgdDAK
KworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIDAsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0
X2NseiwgV2FzbUk2NENseiwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQs
IHQxLCB0MCkKKyAgICBidGl6IHQxLCAuYm90dG9tCisKKyAgICBsemNudGkgdDEsIHQwCisgICAg
am1wIC5yZXR1cm4KKworLmJvdHRvbToKKyAgICBsemNudGkgdDAsIHQwCisgICAgYWRkaSAzMiwg
dDAKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIDAsIHQwKQorZW5kKQorCit3YXNtT3Ao
aTY0X3BvcGNudCwgV2FzbUk2NFBvcGNudCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwg
bV9vcGVyYW5kLCBhMywgYTIpCisgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIG1vdmUg
UEMsIGEwCisgICAgY0NhbGwyKF9zbG93X3BhdGhfd2FzbV9wb3Bjb3VudGxsKQorICAgIHJlc3Rv
cmVTdGF0ZUFmdGVyQ0NhbGwoKQorICAgIHJldHVybjJpKGN0eCwgMCwgcjEpCitlbmQpCisKK3dh
c21PcChpNjRfZXF6LCBXYXNtSTY0RXF6LCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1f
b3BlcmFuZCwgdDEsIHQwKQorICAgIG1vdmUgMCwgdDIKKyAgICBidGlueiB0MSwgLnJldHVybgor
ICAgIGNpZXEgdDAsIDAsIHQyCisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkK
KworIyBmNjQgYmluYXJ5IG9wcworCit3YXNtT3AoZjY0X2NvcHlzaWduLCBXYXNtRjY0Q29weXNp
Z24sIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9h
ZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikgIyB0MiB1bnVzZWQKKworICAgIGFuZGkgMHg3ZmZmZmZm
ZiwgdDEKKyAgICBhbmRpIDB4ODAwMDAwMDAsIHQzCisgICAgb3JpIHQzLCB0MQorCisgICAgcmV0
dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKKyMgVHlwZSBjb252ZXJzaW9uIG9wcworCit3YXNt
T3AoaTY0X2V4dGVuZF9zX2kzMiwgV2FzbUk2NEV4dGVuZFNJMzIsIG1hY3JvKGN0eCkKKyAgICBt
bG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHJzaGlmdGkgdDAsIDMxLCB0MQorICAgIHJl
dHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X2V4dGVuZF91X2kzMiwgV2Fz
bUk2NEV4dGVuZFVJMzIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQw
KQorICAgIHJldHVybjJpKGN0eCwgMCwgdDApCitlbmQpCisKK3dhc21PcChmNjRfcmVpbnRlcnBy
ZXRfaTY0LCBXYXNtRjY0UmVpbnRlcnByZXRJNjQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0
eCwgbV9vcGVyYW5kLCB0MSwgdDApCisgICAgZmlpMmQgdDAsIHQxLCBmdDAKKyAgICByZXR1cm5k
KGN0eCwgZnQwKQorZW5kKQorCit3YXNtT3AoaTY0X3JlaW50ZXJwcmV0X2Y2NCwgV2FzbUk2NFJl
aW50ZXJwcmV0RjY0LCBtYWNybyhjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDAp
CisgICAgZmQyaWkgZnQwLCB0MCwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkK
Kword2FzbU9wKGkzMl90cnVuY19zX2Y2NCwgV2FzbUkzMlRydW5jU0Y2NCwgbWFjcm8gKGN0eCkK
KyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmVpaSAweGMxZTAwMDAw
MDAyMDAwMDAsIHQxLCB0MCAjIElOVDMyX01JTiAtIDEuMAorICAgIGZpaTJkIHQwLCB0MSwgZnQx
CisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlaWkg
MHg0MWUwMDAwMDAwMDAwMDAwLCB0MSwgdDAgIyAtSU5UMzJfTUlOCisgICAgZmlpMmQgdDAsIHQx
LCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRy
dW5jYXRlZDJpcyBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNU
cnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNt
T3AoaTMyX3RydW5jX3VfZjY0LCBXYXNtSTMyVHJ1bmNVRjY0LCBtYWNybyAoY3R4KQorICAgIG1s
b2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZWlpIDB4YmZmMDAwMDAwMDAwMDAw
MCwgdDEsIHQwICMgLTEuMAorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRsdGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlaWkgMHg0MWYwMDAwMDAwMDAwMDAw
LCB0MSwgdDAgIyBJTlQzMl9NSU4gKiAtMi4wCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBi
ZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZDJpIGZ0
MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRo
cm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3Nsb3dXYXNtT3AoaTY0X3Ry
dW5jX3NfZjMyKQorc2xvd1dhc21PcChpNjRfdHJ1bmNfdV9mMzIpCitzbG93V2FzbU9wKGk2NF90
cnVuY19zX2Y2NCkKK3Nsb3dXYXNtT3AoaTY0X3RydW5jX3VfZjY0KQorCit3YXNtT3AoaTMyX3Ry
dW5jX3NhdF9mNjRfcywgV2FzbUkzMlRydW5jU2F0RjY0UywgbWFjcm8gKGN0eCkKKyAgICBtbG9h
ZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmVpaSAweGMxZTAwMDAwMDAyMDAwMDAs
IHQxLCB0MCAjIElOVDMyX01JTiAtIDEuMAorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRs
dGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU4KKworICAgIG1vdmVp
aSAweDQxZTAwMDAwMDAwMDAwMDAsIHQxLCB0MCAjIC1JTlQzMl9NSU4KKyAgICBmaWkyZCB0MCwg
dDEsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAor
CisgICAgdHJ1bmNhdGVkMmlzIGZ0MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRP
ZkJvdW5kc1RydW5jU2F0TWluT3JOYU46CisgICAgYmRlcSBmdDAsIGZ0MCwgLm91dE9mQm91bmRz
VHJ1bmNTYXRNaW4KKyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0
T2ZCb3VuZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UMzJfTUFYKSwgdDAK
KyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1v
dmUgKGNvbnN0ZXhwciBJTlQzMl9NSU4pLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkK
Kword2FzbU9wKGkzMl90cnVuY19zYXRfZjY0X3UsIFdhc21JMzJUcnVuY1NhdEY2NFUsIG1hY3Jv
IChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlaWkgMHhi
ZmYwMDAwMDAwMDAwMDAwLCB0MSwgdDAgIyAtMS4wCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAg
ICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKworICAgIG1vdmVp
aSAweDQxZjAwMDAwMDAwMDAwMDAsIHQxLCB0MCAjIElOVDMyX01JTiAqIC0yLjAKKyAgICBmaWky
ZCB0MCwgdDEsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1heAorCisgICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKwor
Lm91dE9mQm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybmkoY3R4
LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIFVJ
TlQzMl9NQVgpLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKworc2xvd1dhc21PcChp
NjRfdHJ1bmNfc2F0X2YzMl9zKQorc2xvd1dhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl91KQorc2xv
d1dhc21PcChpNjRfdHJ1bmNfc2F0X2Y2NF9zKQorc2xvd1dhc21PcChpNjRfdHJ1bmNfc2F0X2Y2
NF91KQorCisjIEV4dGVuZCBvcHMKKword2FzbU9wKGk2NF9leHRlbmQ4X3MsIFdhc21JNjRFeHRl
bmQ4UywgbWFjcm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgc3hi
MmkgdDAsIHQwCisgICAgcnNoaWZ0aSB0MCwgMzEsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwg
dDApCitlbmQpCisKK3dhc21PcChpNjRfZXh0ZW5kMTZfcywgV2FzbUk2NEV4dGVuZDE2UywgbWFj
cm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgc3hoMmkgdDAsIHQw
CisgICAgcnNoaWZ0aSB0MCwgMzEsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQp
CisKK3dhc21PcChpNjRfZXh0ZW5kMzJfcywgV2FzbUk2NEV4dGVuZDE2UywgbWFjcm8oY3R4KQor
ICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgcnNoaWZ0aSB0MCwgMzEsIHQxCisg
ICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKKyMgQXRvbWljcworCittYWNybyB3YXNt
QXRvbWljQmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIs
IGZuaCwgZm5pLCBmbjJpKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzglbG93ZXJDYXNlT3Bj
b2RlJV91LCBXYXNtSTY0QXRvbWljUm13OCV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQor
ICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1f
b2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVt
aXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KHQzLCB0NSwgMSkKKyAgICAgICAg
Zm5iKHQwLCBbdDNdLCB0MiwgdDUsIHQ2KQorICAgICAgICBhbmRpIDB4ZmYsIHQ2ICMgRklYTUU6
IFplcm9FeHRlbmQ4VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJpYmVxIHQ2LCAweGZm
LCAub2sgZW5kKQorICAgICAgICByZXR1cm4yaShjdHgsIDAsIHQ2KQorICAgIGVuZCkKKyAgICB3
YXNtT3AoaTY0X2F0b21pY19ybXcxNiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNS
bXcxNiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBt
X3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAg
bWxvYWRpKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2lu
dGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKHQzLCB0NSwgMikKKyAgICAgICAgZm5o
KHQwLCBbdDNdLCB0MiwgdDUsIHQ2KQorICAgICAgICBhbmRpIDB4ZmZmZiwgdDYgIyBGSVhNRTog
WmVyb0V4dGVuZDE2VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJpYmVxIHQ2LCAweGZm
ZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybjJpKGN0eCwgMCwgdDYpCisgICAgZW5kKQorICAg
IHdhc21PcChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21p
Y1JtdzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgs
IG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAg
ICBtbG9hZGkoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBv
aW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2sodDMsIHQ1LCA0KQorICAgICAgICBm
bmkodDAsIFt0M10sIHQyLCB0NSwgdDYpCisgICAgICAgIHJldHVybjJpKGN0eCwgMCwgdDYpCisg
ICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdyVsb3dlckNhc2VPcGNvZGUlLCBXYXNt
STY0QXRvbWljUm13JXVwcGVyQ2FzZU9wY29kZSUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRp
KGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisg
ICAgICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVlLCB0MSwgdDApCisgICAgICAgIGVtaXRDaGVja0Fu
ZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKHQzLCB0NSwgOCkK
KyAgICAgICAgcHVzaCB0NCAjIFRoaXMgaXMgdGhlIFBCLCBzbyBuZWVkIHRvIGJlIHNhdmVkIGFu
ZCByZXN0b3JlZAorICAgICAgICBmbjJpKHQxLCB0MCwgW3QzXSwgdDQsIHQ1LCB0NywgdDIsIHQ2
KQorICAgICAgICBwb3AgdDQKKyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MiwgdDYpCisgICAgZW5k
KQorZW5kCisKK21hY3JvIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhsb3dlckNh
c2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5pLCBmbjJpKQorICAgIHdhc21BdG9taWNCaW5h
cnlSTVdPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsCisgICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDZHUFIpCisgICAgICAgICAgICAgICAgZmVuY2UK
KyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5rYiBtZW0sIHQ2R1BS
CisgICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0NkdQUiwgdDJHUFIpCisgICAgICAgICAgICAg
ICAgc3RvcmVjb25kYiB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ1
R1BSLCAwLCAubG9vcAorICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgIGVuZCwKKyAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0NkdQUikKKyAgICAgICAgICAgICAg
ICBmZW5jZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9hZGxpbmtoIG1l
bSwgdDZHUFIKKyAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQ2R1BSLCB0MkdQUikKKyAgICAg
ICAgICAgICAgICBzdG9yZWNvbmRoIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICAgICAg
YmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgZW5k
LAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQ2R1BSKQorICAgICAg
ICAgICAgICAgIGZlbmNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2Fk
bGlua2kgbWVtLCB0NkdQUgorICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDZHUFIsIHQyR1BS
KQorICAgICAgICAgICAgICAgIHN0b3JlY29uZGkgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAg
ICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBmZW5jZQorICAg
ICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQxR1BSLCB0MEdQUiwgbWVtLCB0NEdQUiwgdDVHUFIs
IHQ3R1BSLCB0MkdQUiwgdDZHUFIpCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAg
IC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5rMmkgbWVtLCB0NkdQUiwgdDJHUFIKKyAg
ICAgICAgICAgICAgICBmbjJpKHQxR1BSLCB0MEdQUiwgdDJHUFIsIHQ2R1BSLCB0NEdQUiwgdDVH
UFIpCisgICAgICAgICAgICAgICAgc3RvcmVjb25kMmkgdDdHUFIsIHQ1R1BSLCB0NEdQUiwgbWVt
CisgICAgICAgICAgICAgICAgYmluZXEgdDdHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAg
ZmVuY2UKKyAgICAgICAgZW5kKQorZW5kCisKK2lmIEFSTXY3CisgICAgd2FzbUF0b21pY0JpbmFy
eVJNV09wc1dpdGhXZWFrQ0FTKF9hZGQsIEFkZCwKKyAgICAgICAgbWFjcm8oc3JjMCwgc3JjMSwg
ZHN0KQorICAgICAgICAgICAgYWRkaSBzcmMwLCBzcmMxLCBkc3QKKyAgICAgICAgZW5kLAorICAg
ICAgICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3LCBzcmMxTXN3LCBzcmMxTHN3LCBkc3RNc3csIGRz
dExzdykKKyAgICAgICAgICAgIGFkZGlzIHNyYzBMc3csIHNyYzFMc3csIGRzdExzdworICAgICAg
ICAgICAgYWRjaSAgc3JjME1zdywgc3JjMU1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3
YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3N1YiwgU3ViLAorICAgICAgICBtYWNy
byhzcmMwLCBzcmMxLCBkc3QpCisgICAgICAgICAgICBzdWJpIHNyYzEsIHNyYzAsIGRzdAorICAg
ICAgICBlbmQsCisgICAgICAgIG1hY3JvKHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFM
c3csIGRzdE1zdywgZHN0THN3KQorICAgICAgICAgICAgc3ViaXMgc3JjMUxzdywgc3JjMExzdywg
ZHN0THN3CisgICAgICAgICAgICBzYmNpICBzcmMxTXN3LCBzcmMwTXN3LCBkc3RNc3cKKyAgICAg
ICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeGNoZywgWGNo
ZywKKyAgICAgICAgbWFjcm8oc3JjMCwgc3JjMSwgZHN0KQorICAgICAgICAgICAgbW92ZSBzcmMw
LCBkc3QKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3LCBzcmMx
TXN3LCBzcmMxTHN3LCBkc3RNc3csIGRzdExzdykKKyAgICAgICAgICAgIG1vdmUgc3JjMExzdywg
ZHN0THN3CisgICAgICAgICAgICBtb3ZlIHNyYzBNc3csIGRzdE1zdworICAgICAgICBlbmQpCisg
ICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9hbmQsIEFuZCwKKyAgICAgICAg
bWFjcm8oc3JjMCwgc3JjMSwgZHN0KQorICAgICAgICAgICAgYW5kaSBzcmMwLCBzcmMxLCBkc3QK
KyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3LCBzcmMxTXN3LCBz
cmMxTHN3LCBkc3RNc3csIGRzdExzdykKKyAgICAgICAgICAgIGFuZGkgc3JjMExzdywgc3JjMUxz
dywgZHN0THN3CisgICAgICAgICAgICBhbmRpIHNyYzBNc3csIHNyYzFNc3csIGRzdE1zdworICAg
ICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9vciwgT3Is
CisgICAgICAgIG1hY3JvKHNyYzAsIHNyYzEsIGRzdCkKKyAgICAgICAgICAgIG9yaSBzcmMwLCBz
cmMxLCBkc3QKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3LCBz
cmMxTXN3LCBzcmMxTHN3LCBkc3RNc3csIGRzdExzdykKKyAgICAgICAgICAgIG9yaSBzcmMwTHN3
LCBzcmMxTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIG9yaSBzcmMwTXN3LCBzcmMxTXN3LCBkc3RN
c3cKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhf
eG9yLCBYb3IsCisgICAgICAgIG1hY3JvKHNyYzAsIHNyYzEsIGRzdCkKKyAgICAgICAgICAgIHhv
cmkgc3JjMCwgc3JjMSwgZHN0CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8oc3JjME1zdywg
c3JjMExzdywgc3JjMU1zdywgc3JjMUxzdywgZHN0TXN3LCBkc3RMc3cpCisgICAgICAgICAgICB4
b3JpIHNyYzBMc3csIHNyYzFMc3csIGRzdExzdworICAgICAgICAgICAgeG9yaSBzcmMwTXN3LCBz
cmMxTXN3LCBkc3RNc3cKKyAgICAgICAgZW5kKQorZW5kCisKK21hY3JvIHdhc21BdG9taWNDb21w
YXJlRXhjaGFuZ2VPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5o
LCBmbmksIGZuMmkpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUl
X3UsIFdhc21JNjRBdG9taWNSbXc4JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAg
ICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZz
ZXQsIHQ1KQorICAgICAgICBtbG9hZDJpKGN0eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAg
ICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwgdDYsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVw
YXJlUG9pbnRlckFkZGluZ09mZnNldCh0MywgdDUsIDEpCisgICAgICAgIGZuYih0MSwgdDAsIHQ2
LCB0MiwgW3QzXSwgdDcsIHQ1KQorICAgICAgICBhbmRpIDB4ZmYsIHQwICMgRklYTUU6IFplcm9F
eHRlbmQ4VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJpYmVxIHQwLCAweGZmLCAub2sg
ZW5kKQorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJpZXEgdDEsIDAsIC5vayBlbmQpCisgICAg
ICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21p
Y19ybXcxNiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXcxNiV1cHBlckNhc2VP
cGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQor
ICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1f
ZXhwZWN0ZWQsIHQxLCB0MCkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQ2LCB0MikK
KyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25t
ZW50Q2hlY2sodDMsIHQ1LCAyKQorICAgICAgICBmbmgodDEsIHQwLCB0NiwgdDIsIFt0M10sIHQ3
LCB0NSkKKyAgICAgICAgYW5kaSAweGZmZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQxNlRvNjQK
KyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBiaWJlcSB0MCwgMHhmZmZmLCAub2sgZW5kKQorICAg
ICAgICBhc3NlcnQobWFjcm8ob2spIGJpZXEgdDEsIDAsIC5vayBlbmQpCisgICAgICAgIHJldHVy
bjJpKGN0eCwgdDEsIHQwKQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXczMiVs
b3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXczMiV1cHBlckNhc2VPcGNvZGUlVSwg
bWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3
Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fZXhwZWN0ZWQs
IHQxLCB0MCkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQ2LCB0MikKKyAgICAgICAg
ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2so
dDMsIHQ1LCA4KQorICAgICAgICBmbmkodDEsIHQwLCB0NiwgdDIsIFt0M10sIHQ3LCB0NSkKKyAg
ICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBiaWVxIHQxLCAwLCAub2sgZW5kKQorICAgICAgICByZXR1
cm4yaShjdHgsIHQxLCB0MCkKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13JWxv
d2VyQ2FzZU9wY29kZSUsIFdhc21JNjRBdG9taWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8o
Y3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShj
dHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fZXhwZWN0ZWQsIHQxLCB0
MCkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQ2LCB0MikKKyAgICAgICAgZW1pdENo
ZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2sodDMsIHQ1
LCA4KQorICAgICAgICBwdXNoIHQ0ICMgVGhpcyBpcyB0aGUgUEIsIHNvIG5lZWQgdG8gYmUgc2F2
ZWQgYW5kIHJlc3RvcmVkCisgICAgICAgIGZuMmkodDEsIHQwLCB0NiwgdDIsIFt0M10sIHQ3LCB0
NSwgdDQpCisgICAgICAgIHBvcCB0NAorICAgICAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKKyAg
ICBlbmQpCitlbmQKKworaWYgQVJNdjcKKy8vIGV4cDogImV4cGVjdGVkIiwgdmFsOiAidmFsdWUi
LCByZXM6ICJyZXN1bHQiCit3YXNtQXRvbWljQ29tcGFyZUV4Y2hhbmdlT3BzKF9jbXB4Y2hnLCBD
bXB4Y2hnLAorICAgIG1hY3JvKGV4cE1zdywgZXhwTHN3LCB2YWxNc3csIHZhbExzdywgbWVtLCBz
Y3JhdGNoLCByZXNMc3cpCisgICAgICAgICAgICBmZW5jZQorICAgICAgICAubG9vcDoKKyAgICAg
ICAgICAgIGxvYWRsaW5rYiBtZW0sIHJlc0xzdworICAgICAgICAgICAgYmluZXEgZXhwTHN3LCBy
ZXNMc3csIC5mYWlsCisgICAgICAgICAgICBiaW5lcSBleHBNc3csIDAsIC5mYWlsCisgICAgICAg
ICAgICBzdG9yZWNvbmRiIHNjcmF0Y2gsIHZhbExzdywgbWVtCisgICAgICAgICAgICBiaWVxIHNj
cmF0Y2gsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6Cisg
ICAgICAgICAgICBzdG9yZWNvbmRiIHNjcmF0Y2gsIHJlc0xzdywgbWVtCisgICAgICAgICAgICBi
aWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRv
bmU6CisgICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAgbW92ZSByZXNMc3csIGV4cExzdwor
ICAgICAgICAgICAgbW92ZSAwLCBleHBNc3cKKyAgICBlbmQsCisgICAgbWFjcm8oZXhwTXN3LCBl
eHBMc3csIHZhbE1zdywgdmFsTHN3LCBtZW0sIHNjcmF0Y2gsIHJlc0xzdykKKyAgICAgICAgICAg
IGZlbmNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmtoIG1lbSwgcmVzTHN3
CisgICAgICAgICAgICBiaW5lcSBleHBMc3csIHJlc0xzdywgLmZhaWwKKyAgICAgICAgICAgIGJp
bmVxIGV4cE1zdywgMCwgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZGggc2NyYXRjaCwgdmFs
THN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAgICAg
IGptcCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZGggc2NyYXRj
aCwgcmVzTHN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAg
ICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIGZlbmNlCisgICAg
ICAgICAgICBtb3ZlIHJlc0xzdywgZXhwTHN3CisgICAgICAgICAgICBtb3ZlIDAsIGV4cE1zdwor
ICAgIGVuZCwKKyAgICBtYWNybyhleHBNc3csIGV4cExzdywgdmFsTXN3LCB2YWxMc3csIG1lbSwg
c2NyYXRjaCwgcmVzTHN3KQorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgLmxvb3A6CisgICAg
ICAgICAgICBsb2FkbGlua2kgbWVtLCByZXNMc3cKKyAgICAgICAgICAgIGJpbmVxIGV4cExzdywg
cmVzTHN3LCAuZmFpbAorICAgICAgICAgICAgYmluZXEgZXhwTXN3LCAwLCAuZmFpbAorICAgICAg
ICAgICAgc3RvcmVjb25kaSBzY3JhdGNoLCB2YWxMc3csIG1lbQorICAgICAgICAgICAgYmllcSBz
Y3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgor
ICAgICAgICAgICAgc3RvcmVjb25kaSBzY3JhdGNoLCByZXNMc3csIG1lbQorICAgICAgICAgICAg
YmllcSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5k
b25lOgorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIG1vdmUgcmVzTHN3LCBleHBMc3cK
KyAgICAgICAgICAgIG1vdmUgMCwgZXhwTXN3CisgICAgZW5kLAorICAgIG1hY3JvKGV4cE1zdywg
ZXhwTHN3LCB2YWxNc3csIHZhbExzdywgbWVtLCBzY3JhdGNoLCByZXNNc3csIHJlc0xzdykKKyAg
ICAgICAgICAgIGZlbmNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmsyaSBt
ZW0sIHJlc0xzdywgcmVzTXN3CisgICAgICAgICAgICBiaW5lcSBleHBMc3csIHJlc0xzdywgLmZh
aWwKKyAgICAgICAgICAgIGJpbmVxIGV4cE1zdywgcmVzTXN3LCAuZmFpbAorICAgICAgICAgICAg
c3RvcmVjb25kMmkgc2NyYXRjaCwgdmFsTHN3LCB2YWxNc3csIG1lbQorICAgICAgICAgICAgYmll
cSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWls
OgorICAgICAgICAgICAgc3RvcmVjb25kMmkgc2NyYXRjaCwgcmVzTHN3LCByZXNNc3csIG1lbQor
ICAgICAgICAgICAgYmllcSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29w
CisgICAgICAgIC5kb25lOgorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIG1vdmUgcmVz
THN3LCBleHBMc3cKKyAgICAgICAgICAgIG1vdmUgcmVzTXN3LCBleHBNc3cKKyAgICBlbmQpCitl
bmQKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5
NjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5NjQuYXNtCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDZlOWVhNDg4NTI0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5NjQu
YXNtCkBAIC0wLDAgKzEsMTI1OSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEtMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisj
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworIyBPcGNvZGVzIHRoYXQgc2hvdWxkIGV2ZW50dWFsbHkgYmUgc2hhcmVkIHdpdGgg
SlMgbGxpbnQKKword2FzbU9wKG1vdiwgV2FzbU1vdiwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShj
dHgsIG1fc3JjLCB0MCkKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKKyMgV2FzbSBzcGVj
aWZpYyBieXRlY29kZXMKKworbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4LCBw
b2ludGVyLCBvZmZzZXQsIHNpemUpCisgICAgbGVhcCBzaXplIC0gMVtwb2ludGVyLCBvZmZzZXRd
LCB0NQorICAgIGJwYiB0NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29udGludWF0aW9uCisgICAg
dGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCisuY29udGludWF0aW9uOgor
ICAgIGFkZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgorZW5kCisKK21hY3JvIGVtaXRDaGVja0FuZFBy
ZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KGN0eCwgcG9pbnRlciwgb2Zmc2V0LCBzaXplKQorICAg
IGxlYXAgc2l6ZSAtIDFbcG9pbnRlciwgb2Zmc2V0XSwgdDUKKyAgICBicGIgdDUsIGJvdW5kc0No
ZWNraW5nU2l6ZSwgLmNvbnRpbnVhdGlvbgorLnRocm93OgorICAgIHRocm93RXhjZXB0aW9uKE91
dE9mQm91bmRzTWVtb3J5QWNjZXNzKQorLmNvbnRpbnVhdGlvbjoKKyAgICBhZGRwIG1lbW9yeUJh
c2UsIHBvaW50ZXIKKyAgICBhZGRwIG9mZnNldCwgcG9pbnRlcgorZW5kCisKK21hY3JvIGVtaXRD
aGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwg
cG9pbnRlciwgb2Zmc2V0LCBzaXplKQorICAgIGxlYXAgc2l6ZSAtIDFbcG9pbnRlciwgb2Zmc2V0
XSwgdDUKKyAgICBicGIgdDUsIGJvdW5kc0NoZWNraW5nU2l6ZSwgLmNvbnRpbnVhdGlvbgorLnRo
cm93OgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNjZXNzKQorLmNvbnRp
bnVhdGlvbjoKKyAgICBhZGRwIG1lbW9yeUJhc2UsIHBvaW50ZXIKKyAgICBhZGRwIG9mZnNldCwg
cG9pbnRlcgorICAgIGJ0cG56IHBvaW50ZXIsIChzaXplIC0gMSksIC50aHJvdworZW5kCisKKwor
bWFjcm8gd2FzbUxvYWRPcChuYW1lLCBzdHJ1Y3QsIHNpemUsIGZuKQorICAgIHdhc21PcChuYW1l
LCBzdHJ1Y3QsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MCkK
KyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIGVtaXRDaGVja0FuZFBy
ZXBhcmVQb2ludGVyKGN0eCwgdDAsIHQxLCBzaXplKQorICAgICAgICBmbihbdDAsIHQxXSwgdDIp
CisgICAgICAgIHJldHVybnEoY3R4LCB0MikKKyAgICBlbmQpCitlbmQKKword2FzbUxvYWRPcChs
b2FkOF91LCBXYXNtTG9hZDhVLCAxLCBtYWNybyhtZW0sIGRzdCkgbG9hZGIgbWVtLCBkc3QgZW5k
KQord2FzbUxvYWRPcChsb2FkMTZfdSwgV2FzbUxvYWQxNlUsIDIsIG1hY3JvKG1lbSwgZHN0KSBs
b2FkaCBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGxvYWQzMl91LCBXYXNtTG9hZDMyVSwgNCwg
bWFjcm8obWVtLCBkc3QpIGxvYWRpIG1lbSwgZHN0IGVuZCkKK3dhc21Mb2FkT3AobG9hZDY0X3Us
IFdhc21Mb2FkNjRVLCA4LCBtYWNybyhtZW0sIGRzdCkgbG9hZHEgbWVtLCBkc3QgZW5kKQorCit3
YXNtTG9hZE9wKGkzMl9sb2FkOF9zLCBXYXNtSTMyTG9hZDhTLCAxLCBtYWNybyhtZW0sIGRzdCkg
bG9hZGJzaSBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGk2NF9sb2FkOF9zLCBXYXNtSTY0TG9h
ZDhTLCAxLCBtYWNybyhtZW0sIGRzdCkgbG9hZGJzcSBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9w
KGkzMl9sb2FkMTZfcywgV2FzbUkzMkxvYWQxNlMsIDIsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaHNp
IG1lbSwgZHN0IGVuZCkKK3dhc21Mb2FkT3AoaTY0X2xvYWQxNl9zLCBXYXNtSTY0TG9hZDE2Uywg
MiwgbWFjcm8obWVtLCBkc3QpIGxvYWRoc3EgbWVtLCBkc3QgZW5kKQord2FzbUxvYWRPcChpNjRf
bG9hZDMyX3MsIFdhc21JNjRMb2FkMzJTLCA0LCBtYWNybyhtZW0sIGRzdCkgbG9hZGlzIG1lbSwg
ZHN0IGVuZCkKKworbWFjcm8gd2FzbVN0b3JlT3AobmFtZSwgc3RydWN0LCBzaXplLCBmbikKKyAg
ICB3YXNtT3AobmFtZSwgc3RydWN0LCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1f
cG9pbnRlciwgdDApCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBl
bWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihjdHgsIHQwLCB0MSwgc2l6ZSkKKyAgICAgICAgbWxv
YWRxKGN0eCwgbV92YWx1ZSwgdDIpCisgICAgICAgIGZuKHQyLCBbdDAsIHQxXSkKKyAgICAgICAg
ZGlzcGF0Y2goY3R4KQorICAgIGVuZCkKK2VuZAorCit3YXNtU3RvcmVPcChzdG9yZTgsIFdhc21T
dG9yZTgsIDEsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlYiB2YWx1ZSwgbWVtIGVuZCkKK3dhc21T
dG9yZU9wKHN0b3JlMTYsIFdhc21TdG9yZTE2LCAyLCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZWgg
dmFsdWUsIG1lbSBlbmQpCit3YXNtU3RvcmVPcChzdG9yZTMyLCBXYXNtU3RvcmUzMiwgNCwgbWFj
cm8odmFsdWUsIG1lbSkgc3RvcmVpIHZhbHVlLCBtZW0gZW5kKQord2FzbVN0b3JlT3Aoc3RvcmU2
NCwgV2FzbVN0b3JlNjQsIDgsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlcSB2YWx1ZSwgbWVtIGVu
ZCkKKword2FzbU9wKHJlZl9pc19udWxsLCBXYXNtUmVmSXNOdWxsLCBtYWNybyhjdHgpCisgICAg
bWxvYWRwKGN0eCwgbV9yZWYsIHQwKQorICAgIGNxZXEgdDAsIFZhbHVlTnVsbCwgdDAKKyAgICBy
ZXR1cm5pKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChnZXRfZ2xvYmFsLCBXYXNtR2V0R2xvYmFs
LCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5z
dGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbG9hZHEg
W3QwLCB0MSwgOF0sIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3Aoc2V0
X2dsb2JhbCwgV2FzbVNldEdsb2JhbCwgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206Okluc3Rh
bmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1fZ2xvYmFs
SW5kZXgsIHQxKQorICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQorICAgIHN0b3JlcSB0Miwg
W3QwLCB0MSwgOF0KKyAgICBkaXNwYXRjaChjdHgpCitlbmQpCisKK3dhc21PcChnZXRfZ2xvYmFs
X3BvcnRhYmxlX2JpbmRpbmcsIFdhc21HZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcsIG1hY3JvKGN0
eCkKKyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQw
CisgICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBsb2FkcSBbdDAsIHQxLCA4
XSwgdDAKKyAgICBsb2FkcSBbdDBdLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKwor
d2FzbU9wKHNldF9nbG9iYWxfcG9ydGFibGVfYmluZGluZywgV2FzbVNldEdsb2JhbFBvcnRhYmxl
QmluZGluZywgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNb
d2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQorICAg
IG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQorICAgIGxvYWRxIFt0MCwgdDEsIDhdLCB0MAorICAg
IHN0b3JlcSB0MiwgW3QwXQorICAgIGRpc3BhdGNoKGN0eCkKK2VuZCkKKworIyBPcGNvZGVzIHRo
YXQgZG9uJ3QgaGF2ZSB0aGUgYGIzb3BgIGVudHJ5IGluIHdhc20uanNvbi4gVGhpcyBzaG91bGQg
YmUga2VwdCBpbiBzeW5jCisKKyMgaTMyIGJpbmFyeSBvcHMKKword2FzbU9wKGkzMl9kaXZfcywg
V2FzbUkzMkRpdlMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQorICAg
IG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnla
ZXJvCisKKyAgICBiaW5lcSB0MSwgLTEsIC5zYWZlCisgICAgYmllcSB0MCwgY29uc3RleHByIElO
VDMyX01JTiwgLnRocm93SW50ZWdlck92ZXJmbG93CisKKy5zYWZlOgorICAgIGlmIFg4Nl82NAor
ICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4
IGFuZCB0MiBpcyByZHgKKyAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAzNjkyCisgICAgICAgIGNkcWkKKyAgICAgICAgaWRpdmkgdDEKKyAgICBlbHNp
ZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAorICAgICAgICBkaXZpcyB0MSwgdDAKKyAgICBl
bHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisudGhy
b3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKKwor
LnRocm93SW50ZWdlck92ZXJmbG93OgorICAgIHRocm93RXhjZXB0aW9uKEludGVnZXJPdmVyZmxv
dykKK2VuZCkKKword2FzbU9wKGkzMl9kaXZfdSwgV2FzbUkzMkRpdlUsIG1hY3JvIChjdHgpCisg
ICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKwor
ICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBpZiBYODZfNjQKKyAgICAg
ICAgeG9yaSB0MiwgdDIKKyAgICAgICAgdWRpdmkgdDEKKyAgICBlbHNpZiBBUk02NCBvciBBUk02
NEUgb3IgUklTQ1Y2NAorICAgICAgICBkaXZpIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJy
b3IKKyAgICBlbmQKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJv
OgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTMy
X3JlbV9zLCBXYXNtSTMyUmVtUywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywg
dDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRpeiB0MSwgLnRocm93RGl2
aXNpb25CeVplcm8KKworICAgIGJpbmVxIHQxLCAtMSwgLnNhZmUKKyAgICBiaW5lcSB0MCwgY29u
c3RleHByIElOVDMyX01JTiwgLnNhZmUKKworICAgIG1vdmUgMCwgdDIKKyAgICBqbXAgLnJldHVy
bgorCisuc2FmZToKKyAgICBpZiBYODZfNjQKKyAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRv
IHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4CisgICAgICAgICMgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgorICAgICAgICBjZHFp
CisgICAgICAgIGlkaXZpIHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCisgICAgICAgIGRp
dmlzIHQxLCB0MCwgdDIKKyAgICAgICAgbXVsaSB0MSwgdDIKKyAgICAgICAgc3ViaSB0MCwgdDIs
IHQyCisgICAgZWxzaWYgUklTQ1Y2NAorICAgICAgICByZW1pcyB0MSwgdDAKKyAgICBlbHNlCisg
ICAgICAgIGVycm9yCisgICAgZW5kCisKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQyKQor
CisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVy
bykKK2VuZCkKKword2FzbU9wKGkzMl9yZW1fdSwgV2FzbUkzMlJlbVUsIG1hY3JvIChjdHgpCisg
ICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKwor
ICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBpZiBYODZfNjQKKyAgICAg
ICAgeG9yaSB0MiwgdDIKKyAgICAgICAgdWRpdmkgdDEKKyAgICBlbHNpZiBBUk02NCBvciBBUk02
NEUKKyAgICAgICAgZGl2aSB0MSwgdDAsIHQyCisgICAgICAgIG11bGkgdDEsIHQyCisgICAgICAg
IHN1YmkgdDAsIHQyLCB0MgorICAgIGVsc2lmIFJJU0NWNjQKKyAgICAgICAgcmVtaSB0MSwgdDAK
KyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCisgICAgcmV0dXJuaShjdHgsIHQyKQor
CisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVy
bykKK2VuZCkKKworIyBpNjQgYmluYXJ5IG9wcworCit3YXNtT3AoaTY0X2FkZCwgV2FzbUk2NEFk
ZCwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4
LCBtX3JocywgdDEpCisgICAgYWRkcSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQp
CisKK3dhc21PcChpNjRfc3ViLCBXYXNtSTY0U3ViLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0
eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBzdWJxIHQxLCB0
MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9tdWwsIFdhc21JNjRN
dWwsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0
eCwgbV9yaHMsIHQxKQorICAgIG11bHEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5k
KQorCit3YXNtT3AoaTY0X2Rpdl9zLCBXYXNtSTY0RGl2UywgbWFjcm8gKGN0eCkKKyAgICBtbG9h
ZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRx
eiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGJxbmVxIHQxLCAtMSwgLnNhZmUKKyAg
ICBicWVxIHQwLCBjb25zdGV4cHIgSU5UNjRfTUlOLCAudGhyb3dJbnRlZ2VyT3ZlcmZsb3cKKwor
LnNhZmU6CisgICAgaWYgWDg2XzY0CisgICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBzdGF0
aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAorICAgICAgICAjIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKKyAgICAgICAgY3FvcQorICAg
ICAgICBpZGl2cSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0CisgICAg
ICAgIGRpdnFzIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKKyAgICBy
ZXR1cm5xKGN0eCwgdDApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0
aW9uKERpdmlzaW9uQnlaZXJvKQorCisudGhyb3dJbnRlZ2VyT3ZlcmZsb3c6CisgICAgdGhyb3dF
eGNlcHRpb24oSW50ZWdlck92ZXJmbG93KQorZW5kKQorCit3YXNtT3AoaTY0X2Rpdl91LCBXYXNt
STY0RGl2VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxv
YWRxKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRxeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8K
KworICAgIGlmIFg4Nl82NAorICAgICAgICB4b3JxIHQyLCB0MgorICAgICAgICB1ZGl2cSB0MQor
ICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0CisgICAgICAgIGRpdnEgdDEsIHQw
CisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorICAgIHJldHVybnEoY3R4LCB0MCkK
KworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVpl
cm8pCitlbmQpCisKK3dhc21PcChpNjRfcmVtX3MsIFdhc21JNjRSZW1TLCBtYWNybyAoY3R4KQor
ICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisK
KyAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgYnFuZXEgdDEsIC0xLCAu
c2FmZQorICAgIGJxbmVxIHQwLCBjb25zdGV4cHIgSU5UNjRfTUlOLCAuc2FmZQorCisgICAgbW92
ZSAwLCB0MgorICAgIGptcCAucmV0dXJuCisKKy5zYWZlOgorICAgIGlmIFg4Nl82NAorICAgICAg
ICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0
MiBpcyByZHgKKyAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAzNjkyCisgICAgICAgIGNxb3EKKyAgICAgICAgaWRpdnEgdDEKKyAgICBlbHNpZiBBUk02
NCBvciBBUk02NEUKKyAgICAgICAgZGl2cXMgdDEsIHQwLCB0MgorICAgICAgICBtdWxxIHQxLCB0
MgorICAgICAgICBzdWJxIHQwLCB0MiwgdDIKKyAgICBlbHNpZiBSSVNDVjY0CisgICAgICAgIHJl
bXFzIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKKworLnJldHVybjoK
KyAgICByZXR1cm5xKGN0eCwgdDIpICMgcmR4IGhhcyB0aGUgcmVtYWluZGVyCisKKy50aHJvd0Rp
dmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQor
Cit3YXNtT3AoaTY0X3JlbV91LCBXYXNtSTY0UmVtVSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZHEo
Y3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRxeiB0
MSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGlmIFg4Nl82NAorICAgICAgICB4b3JxIHQy
LCB0MgorICAgICAgICB1ZGl2cSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQorICAgICAg
ICBkaXZxIHQxLCB0MCwgdDIKKyAgICAgICAgbXVscSB0MSwgdDIKKyAgICAgICAgc3VicSB0MCwg
dDIsIHQyCisgICAgZWxzaWYgUklTQ1Y2NAorICAgICAgICByZW1xIHQxLCB0MAorICAgIGVsc2UK
KyAgICAgICAgZXJyb3IKKyAgICBlbmQKKyAgICByZXR1cm5xKGN0eCwgdDIpCisKKy50aHJvd0Rp
dmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQor
Cit3YXNtT3AoaTY0X2FuZCwgV2FzbUk2NEFuZCwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgs
IG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgYW5kcSB0MCwgdDEK
KyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfb3IsIFdhc21JNjRPciwg
bWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBt
X3JocywgdDEpCisgICAgb3JxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKwor
d2FzbU9wKGk2NF94b3IsIFdhc21JNjRYb3IsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBt
X2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIHhvcnEgdDAsIHQxCisg
ICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X3NobCwgV2FzbUk2NFNobCwg
bWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBt
X3JocywgdDEpCisgICAgbHNoaWZ0cSB0MSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQp
CisKK3dhc21PcChpNjRfc2hyX3UsIFdhc21JNjRTaHJVLCBtYWNybyhjdHgpCisgICAgbWxvYWRx
KGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKyAgICB1cnNoaWZ0
cSB0MSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfc2hyX3Ms
IFdhc21JNjRTaHJTLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAg
IG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKyAgICByc2hpZnRxIHQxLCB0MAorICAgIHJldHVybnEo
Y3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9yb3RyLCBXYXNtSTY0Um90ciwgbWFjcm8oY3R4
KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEp
CisgICAgcnJvdGF0ZXEgdDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNt
T3AoaTY0X3JvdGwsIFdhc21JNjRSb3RsLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9s
aHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKyAgICBscm90YXRlcSB0MSwgdDAK
KyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfZXEsIFdhc21JNjRFcSwg
bWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBt
X3JocywgdDEpCisgICAgY3FlcSB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVy
bmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9uZSwgV2FzbUk2NE5lLCBtYWNybyhjdHgp
CisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkK
KyAgICBjcW5lcSB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0
MikKK2VuZCkKKword2FzbU9wKGk2NF9sdF9zLCBXYXNtSTY0THRTLCBtYWNybyhjdHgpCisgICAg
bWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBj
cWx0IHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5k
KQorCit3YXNtT3AoaTY0X2xlX3MsIFdhc21JNjRMZVMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEo
Y3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxbHRlcSB0
MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKwor
d2FzbU9wKGk2NF9sdF91LCBXYXNtSTY0THRVLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwg
bV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWIgdDAsIHQxLCB0
MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChp
NjRfbGVfdSwgV2FzbUk2NExlVSwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0
MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FiZXEgdDAsIHQxLCB0MgorICAg
IGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfZ3Rf
cywgV2FzbUk2NEd0UywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAg
ICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FndCB0MCwgdDEsIHQyCisgICAgYW5kaSAx
LCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9nZV9zLCBXYXNt
STY0R2VTLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2Fk
cShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWd0ZXEgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIK
KyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfZ3RfdSwgV2FzbUk2NEd0
VSwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4
LCBtX3JocywgdDEpCisgICAgY3FhIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0
dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2dlX3UsIFdhc21JNjRHZVUsIG1hY3Jv
KGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMs
IHQxKQorICAgIGNxYWVxIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShj
dHgsIHQyKQorZW5kKQorCisjIGk2NCB1bmFyeSBvcHMKKword2FzbU9wKGk2NF9jdHosIFdhc21J
NjRDdHosIG1hY3JvIChjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICB0
emNudHEgdDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X2Ns
eiwgV2FzbUk2NENseiwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDAp
CisgICAgbHpjbnRxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9w
KGk2NF9wb3BjbnQsIFdhc21JNjRQb3BjbnQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRxKGN0eCwg
bV9vcGVyYW5kLCBhMSkKKyAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCisgICAgbW92ZSBQQywg
YTAKKyAgICBjQ2FsbDIoX3Nsb3dfcGF0aF93YXNtX3BvcGNvdW50bGwpCisgICAgcmVzdG9yZVN0
YXRlQWZ0ZXJDQ2FsbCgpCisgICAgcmV0dXJucShjdHgsIHIxKQorZW5kKQorCit3YXNtT3AoaTY0
X2VxeiwgV2FzbUk2NEVxeiwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwg
dDApCisgICAgY3FlcSB0MCwgMCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCitlbmQpCisKKyMg
ZjY0IGJpbmFyeSBvcHMKKword2FzbU9wKGY2NF9jb3B5c2lnbiwgV2FzbUY2NENvcHlzaWduLCBt
YWNybyhjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9saHMsIGZ0MCkKKyAgICBtbG9hZGQoY3R4LCBt
X3JocywgZnQxKQorCisgICAgZmQycSBmdDEsIHQxCisgICAgbW92ZSAweDgwMDAwMDAwMDAwMDAw
MDAsIHQyCisgICAgYW5kcSB0MiwgdDEKKworICAgIGZkMnEgZnQwLCB0MAorICAgIG1vdmUgMHg3
ZmZmZmZmZmZmZmZmZmZmLCB0MgorICAgIGFuZHEgdDIsIHQwCisKKyAgICBvcnEgdDEsIHQwCisg
ICAgZnEyZCB0MCwgZnQwCisgICAgcmV0dXJuZChjdHgsIGZ0MCkKK2VuZCkKKworIyBUeXBlIGNv
bnZlcnNpb24gb3BzCisKK3dhc21PcChpNjRfZXh0ZW5kX3NfaTMyLCBXYXNtSTY0RXh0ZW5kU0kz
MiwgbWFjcm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgc3hpMnEg
dDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X2V4dGVuZF91
X2kzMiwgV2FzbUk2NEV4dGVuZFVJMzIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX29w
ZXJhbmQsIHQwKQorICAgIHp4aTJxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkK
Kword2FzbU9wKGY2NF9yZWludGVycHJldF9pNjQsIFdhc21GNjRSZWludGVycHJldEk2NCwgbWFj
cm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgZnEyZCB0MCwgZnQw
CisgICAgcmV0dXJuZChjdHgsIGZ0MCkKK2VuZCkKKword2FzbU9wKGk2NF9yZWludGVycHJldF9m
NjQsIFdhc21JNjRSZWludGVycHJldEY2NCwgbWFjcm8oY3R4KQorICAgIG1sb2FkZChjdHgsIG1f
b3BlcmFuZCwgZnQwKQorICAgIGZkMnEgZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2Vu
ZCkKKword2FzbU9wKGkzMl90cnVuY19zX2Y2NCwgV2FzbUkzMlRydW5jU0Y2NCwgbWFjcm8gKGN0
eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhjMWUwMDAw
MDAwMjAwMDAwLCB0MCAjIElOVDMyX01JTiAtIDEuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJk
bHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZSAweDQxZTAwMDAw
MDAwMDAwMDAsIHQwICMgLUlOVDMyX01JTgorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVkMmlzIGZ0MCwgdDAK
KyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhj
ZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfdV9mNjQs
IFdhc21JMzJUcnVuY1VGNjQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5k
LCBmdDApCisKKyAgICBtb3ZlIDB4YmZmMDAwMDAwMDAwMDAwMCwgdDAgIyAtMS4wCisgICAgZnEy
ZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAg
ICBtb3ZlIDB4NDFmMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQzMl9NSU4gKiAtMi4wCisgICAgZnEy
ZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAg
ICB0cnVuY2F0ZWQyaSBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3Vu
ZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3
YXNtT3AoaTY0X3RydW5jX3NfZjMyLCBXYXNtSTY0VHJ1bmNTRjMyLCBtYWNybyAoY3R4KQorICAg
IG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGRmMDAwMDAwLCB0MCAj
IElOVDY0X01JTgorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmbHR1biBmdDAsIGZ0MSwgLm91dE9m
Qm91bmRzVHJ1bmMKKworICAgIG1vdmUgMHg1ZjAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCisgICAg
ZmkyZiB0MCwgZnQxCisgICAgYmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisK
KyAgICB0cnVuY2F0ZWYycXMgZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9m
Qm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKK2VuZCkK
Kword2FzbU9wKGk2NF90cnVuY191X2YzMiwgV2FzbUk2NFRydW5jVUYzMiwgbWFjcm8gKGN0eCkK
KyAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZjgwMDAwMCwg
dDAgIyAtMS4wCisgICAgZmkyZiB0MCwgZnQxCisgICAgYmZsdGVxdW4gZnQwLCBmdDEsIC5vdXRP
ZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlIDB4NWY4MDAwMDAsIHQwICMgSU5UNjRfTUlOICogLTIu
MAorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNU
cnVuYworCisgICAgdHJ1bmNhdGVmMnEgZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKwor
Lm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykK
K2VuZCkKKword2FzbU9wKGk2NF90cnVuY19zX2Y2NCwgV2FzbUk2NFRydW5jU0Y2NCwgbWFjcm8g
KGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhjM2Uw
MDAwMDAwMDAwMDAwLCB0MCAjIElOVDY0X01JTgorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkbHR1
biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmUgMHg0M2UwMDAwMDAwMDAw
MDAwLCB0MCAjIC1JTlQ2NF9NSU4KKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAs
IGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZDJxcyBmdDAsIHQwCisgICAg
cmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlv
bihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5jX3VfZjY0LCBXYXNt
STY0VHJ1bmNVRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQw
KQorCisgICAgbW92ZSAweGJmZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAorICAgIGZxMmQgdDAs
IGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92
ZSAweDQzZjAwMDAwMDAwMDAwMDAsIHQwICMgSU5UNjRfTUlOICogLTIuMAorICAgIGZxMmQgdDAs
IGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1
bmNhdGVkMnEgZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1
bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKK2VuZCkKKword2FzbU9w
KGkzMl90cnVuY19zYXRfZjY0X3MsIFdhc21JMzJUcnVuY1NhdEY2NFMsIG1hY3JvIChjdHgpCisg
ICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YzFlMDAwMDAwMDIw
MDAwMCwgdDAgIyBJTlQzMl9NSU4gLSAxLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1
biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTgorCisgICAgbW92ZSAweDQx
ZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDMyX01JTgorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJk
Z3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisgICAgdHJ1bmNhdGVk
MmlzIGZ0MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0
TWluT3JOYU46CisgICAgYmRlcSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKyAg
ICBtb3ZlIDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UMzJfTUFYKSwgdDAKKyAgICByZXR1cm5pKGN0
eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUgKGNvbnN0ZXhwciBJ
TlQzMl9NSU4pLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGkzMl90
cnVuY19zYXRfZjY0X3UsIFdhc21JMzJUcnVuY1NhdEY2NFUsIG1hY3JvIChjdHgpCisgICAgbWxv
YWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YmZmMDAwMDAwMDAwMDAwMCwg
dDAgIyAtMS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRP
ZkJvdW5kc1RydW5jU2F0TWluCisKKyAgICBtb3ZlIDB4NDFmMDAwMDAwMDAwMDAwMCwgdDAgIyBJ
TlQzMl9NSU4gKiAtMi4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEs
IC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQyaSBmdDAsIHQwCisgICAg
cmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAgICBtb3ZlIDAs
IHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKKyAg
ICBtb3ZlIChjb25zdGV4cHIgVUlOVDMyX01BWCksIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQor
ZW5kKQorCit3YXNtT3AoaTY0X3RydW5jX3NhdF9mMzJfcywgV2FzbUk2NFRydW5jU2F0RjMyUywg
bWFjcm8gKGN0eCkKKyAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUg
MHhkZjAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4KKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmx0dW4g
ZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU4KKworICAgIG1vdmUgMHg1ZjAw
MDAwMCwgdDAgIyAtSU5UNjRfTUlOCisgICAgZmkyZiB0MCwgZnQxCisgICAgYmZndGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWYycXMgZnQwLCB0
MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoK
KyAgICBiZmVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorICAgIG1vdmUgMCwg
dDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAg
IG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9NQVgpLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKwor
Lm91dE9mQm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAoY29uc3RleHByIElOVDY0X01JTiks
IHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5jX3NhdF9m
MzJfdSwgV2FzbUk2NFRydW5jU2F0RjMyVSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGYoY3R4LCBt
X29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZjgwMDAwMCwgdDAgIyAtMS4wCisgICAgZmky
ZiB0MCwgZnQxCisgICAgYmZsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWlu
CisKKyAgICBtb3ZlIDB4NWY4MDAwMDAsIHQwICMgSU5UNjRfTUlOICogLTIuMAorICAgIGZpMmYg
dDAsIGZ0MQorICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAor
CisgICAgdHJ1bmNhdGVmMnEgZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9m
Qm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkK
KworLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIFVJTlQ2NF9N
QVgpLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF90cnVuY19z
YXRfZjY0X3MsIFdhc21JNjRUcnVuY1NhdEY2NFMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0
eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YzNlMDAwMDAwMDAwMDAwMCwgdDAgIyBJ
TlQ2NF9NSU4KKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0dW4gZnQwLCBmdDEsIC5vdXRPZkJv
dW5kc1RydW5jU2F0TWluT3JOYU4KKworICAgIG1vdmUgMHg0M2UwMDAwMDAwMDAwMDAwLCB0MCAj
IC1JTlQ2NF9NSU4KKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91
dE9mQm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5jYXRlZDJxcyBmdDAsIHQwCisgICAgcmV0
dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgorICAgIGJkZXEg
ZnQwLCBmdDAsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCisgICAgbW92ZSAwLCB0MAorICAgIHJl
dHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29u
c3RleHByIElOVDY0X01BWCksIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3Vu
ZHNUcnVuY1NhdE1pbjoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUlOKSwgdDAKKyAgICBy
ZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc2F0X2Y2NF91LCBXYXNt
STY0VHJ1bmNTYXRGNjRVLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwg
ZnQwKQorCisgICAgbW92ZSAweGJmZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAorICAgIGZxMmQg
dDAsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgor
CisgICAgbW92ZSAweDQzZjAwMDAwMDAwMDAwMDAsIHQwICMgSU5UNjRfTUlOICogLTIuMAorICAg
IGZxMmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1heAorCisgICAgdHJ1bmNhdGVkMnEgZnQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKwor
Lm91dE9mQm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybnEoY3R4
LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIFVJ
TlQ2NF9NQVgpLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKworIyBFeHRlbmQgb3Bz
CisKK3dhc21PcChpNjRfZXh0ZW5kOF9zLCBXYXNtSTY0RXh0ZW5kOFMsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHN4YjJxIHQwLCB0MQorICAgIHJldHVy
bnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9leHRlbmQxNl9zLCBXYXNtSTY0RXh0ZW5k
MTZTLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBzeGgy
cSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfZXh0ZW5k
MzJfcywgV2FzbUk2NEV4dGVuZDE2UywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fb3Bl
cmFuZCwgdDApCisgICAgc3hpMnEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQor
CisjIEF0b21pY3MKKworbWFjcm8gd2FzbUF0b21pY0JpbmFyeVJNV09wcyhsb3dlckNhc2VPcGNv
ZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5iLCBmbmgsIGZuaSwgZm5xKQorICAgIHdhc21PcChpNjRf
YXRvbWljX3JtdzglbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13OCV1cHBlckNh
c2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQz
KQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgbWxvYWRxKGN0eCwg
bV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zm
c2V0KGN0eCwgdDMsIHQxLCAxKQorICAgICAgICBmbmIodDAsIFt0M10sIHQyLCB0NSwgdDEpCisg
ICAgICAgIGFuZHEgMHhmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0CisgICAgICAgIGFz
c2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybnEo
Y3R4LCB0MCkKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MTYlbG93ZXJDYXNl
T3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MTYldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0
eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4
LCBtX29mZnNldCwgdDEpCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQwKQorICAgICAg
ICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVj
ayhjdHgsIHQzLCB0MSwgMikKKyAgICAgICAgZm5oKHQwLCBbdDNdLCB0MiwgdDUsIHQxKQorICAg
ICAgICBhbmRxIDB4ZmZmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDE2VG82NAorICAgICAgICBh
c3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVy
bnEoY3R4LCB0MCkKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MzIlbG93ZXJD
YXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MzIldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3Jv
KGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUo
Y3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQwKQorICAg
ICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRD
aGVjayhjdHgsIHQzLCB0MSwgNCkKKyAgICAgICAgZm5pKHQwLCBbdDNdLCB0MiwgdDUsIHQxKQor
ICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmZmZmZmZmLCAub2sgZW5kKQor
ICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWlj
X3JtdyVsb3dlckNhc2VPcGNvZGUlLCBXYXNtSTY0QXRvbWljUm13JXVwcGVyQ2FzZU9wY29kZSUs
IG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAg
d2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQw
KQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGln
bm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgOCkKKyAgICAgICAgZm5xKHQwLCBbdDNdLCB0MiwgdDUs
IHQxKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorZW5kCisKK21hY3JvIHdh
c21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2Fz
ZU9wY29kZSwgZm5pLCBmbnEpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhsb3dlckNhc2VP
cGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIGlmIFg4Nl82NAorICAgICAgICAgICAgICAgIG1v
dmUgdDBHUFIsIHQ1R1BSCisgICAgICAgICAgICAgICAgbG9hZGIgbWVtLCB0MEdQUgorICAgICAg
ICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKKyAgICAgICAg
ICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIGJhdG9taWN3ZWFrY2Fz
YiB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxYiBtZW0sIHQxR1BSCisgICAgICAg
ICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgc3RvcmVj
b25kcmVsYiB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAw
LCAubG9vcAorICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCisgICAgICAgICAgICBl
bmQKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIs
IHQxR1BSKQorICAgICAgICAgICAgaWYgWDg2XzY0CisgICAgICAgICAgICAgICAgbW92ZSB0MEdQ
UiwgdDVHUFIKKyAgICAgICAgICAgICAgICBsb2FkaCBtZW0sIHQwR1BSCisgICAgICAgICAgICAu
bG9vcDoKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgorICAgICAgICAgICAgICAg
IGZuaSh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgYmF0b21pY3dlYWtjYXNoIHQwR1BS
LCB0MkdQUiwgbWVtLCAubG9vcAorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgLmxvb3A6
CisgICAgICAgICAgICAgICAgbG9hZGxpbmthY3FoIG1lbSwgdDFHUFIKKyAgICAgICAgICAgICAg
ICBmbmkodDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmRyZWxo
IHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29w
CisgICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgICAgIGVuZAorICAg
ICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIp
CisgICAgICAgICAgICBpZiBYODZfNjQKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQ
UgorICAgICAgICAgICAgICAgIGxvYWRpIG1lbSwgdDBHUFIKKyAgICAgICAgICAgIC5sb29wOgor
ICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCisgICAgICAgICAgICAgICAgZm5pKHQ1
R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBiYXRvbWljd2Vha2Nhc2kgdDBHUFIsIHQyR1BS
LCBtZW0sIC5sb29wCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAg
ICAgICAgICAgICBsb2FkbGlua2FjcWkgbWVtLCB0MUdQUgorICAgICAgICAgICAgICAgIGZuaSh0
MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29uZHJlbGkgdDVHUFIs
IHQyR1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAg
ICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgorICAgICAgICAgICAgZW5kCisgICAgICAgIGVu
ZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAg
ICAgICAgIGlmIFg4Nl82NAorICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCisgICAg
ICAgICAgICAgICAgbG9hZHEgbWVtLCB0MEdQUgorICAgICAgICAgICAgLmxvb3A6CisgICAgICAg
ICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKKyAgICAgICAgICAgICAgICBmbnEodDVHUFIsIHQy
R1BSKQorICAgICAgICAgICAgICAgIGJhdG9taWN3ZWFrY2FzcSB0MEdQUiwgdDJHUFIsIG1lbSwg
Lmxvb3AKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAg
ICAgIGxvYWRsaW5rYWNxcSBtZW0sIHQxR1BSCisgICAgICAgICAgICAgICAgZm5xKHQwR1BSLCB0
MUdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgc3RvcmVjb25kcmVscSB0NUdQUiwgdDJHUFIs
IG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAorICAgICAgICAgICAg
ICAgIG1vdmUgdDFHUFIsIHQwR1BSCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZW5kKQorZW5k
CisKK2lmIFg4Nl82NAorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX2FkZCwgQWRkLAorICAg
ICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRk
YiB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikgYXRvbWljeGNoZ2FkZGggdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQw
R1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0g
ZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9t
aWN4Y2hnYWRkcSB0MEdQUiwgbWVtIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9z
dWIsIFN1YiwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikg
YXRvbWljeGNoZ3N1YmIgdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJoIHQwR1BSLCBtZW0gZW5kLAorICAg
ICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3Vi
aSB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikgYXRvbWljeGNoZ3N1YnEgdDBHUFIsIG1lbSBlbmQpCisgICAgd2FzbUF0b21pY0Jp
bmFyeVJNV09wcyhfeGNoZywgWGNoZywKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2IgdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdoIHQwR1BSLCBtZW0g
ZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9t
aWN4Y2hnaSB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3EgdDBHUFIsIG1lbSBlbmQpCisgICAgd2FzbUF0b21p
Y0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9hbmQsIEFuZCwKKyAgICAgICAgbWFjcm8odDVHUFIs
IHQyR1BSKQorICAgICAgICAgICAgYW5kaSB0NUdQUiwgdDJHUFIKKyAgICAgICAgZW5kLAorICAg
ICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICBhbmRxIHQ1R1BSLCB0MkdQUgor
ICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9vciwg
T3IsCisgICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgIG9yaSB0NUdQUiwg
dDJHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCisgICAgICAg
ICAgICBvcnEgdDVHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5
Uk1XT3BzV2l0aFdlYWtDQVMoX3hvciwgWG9yLAorICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIp
CisgICAgICAgICAgICB4b3JpIHQ1R1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1h
Y3JvKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgIHhvcnEgdDVHUFIsIHQyR1BSCisgICAgICAg
IGVuZCkKK2Vsc2lmIEFSTTY0RQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX2FkZCwgQWRk
LAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4
Y2hnYWRkYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRoIHQwR1BSLCBtZW0sIHQwR1BSIGVu
ZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWlj
eGNoZ2FkZGkgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVt
LCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkcSB0MEdQUiwgbWVtLCB0MEdQUiBl
bmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfc3ViLCBTdWIsCisgICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBuZWdxIHQwR1BS
CisgICAgICAgICAgICBhdG9taWN4Y2hnYWRkYiB0MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBl
bmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAg
ICAgICAgICBuZWdxIHQwR1BSCisgICAgICAgICAgICBhdG9taWN4Y2hnYWRkaCB0MEdQUiwgbWVt
LCB0MEdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBuZWdxIHQwR1BSCisgICAgICAgICAgICBhdG9taWN4
Y2hnYWRkaSB0MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQw
R1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBuZWdxIHQwR1BSCisg
ICAgICAgICAgICBhdG9taWN4Y2hnYWRkcSB0MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBlbmQp
CisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfYW5kLCBBbmQsCisgICAgICAgIG1hY3JvKHQw
R1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBub3RxIHQwR1BSCisg
ICAgICAgICAgICBhdG9taWN4Y2hnY2xlYXJiIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVu
ZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAg
ICAgICAgIG5vdHEgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcmggdDBHUFIsIG1l
bSwgdDBHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwg
dDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgbm90cSB0MEdQUgorICAgICAgICAgICAgYXRvbWlj
eGNoZ2NsZWFyaSB0MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBub3RxIHQwR1BS
CisgICAgICAgICAgICBhdG9taWN4Y2hnY2xlYXJxIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAg
IGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9vciwgT3IsCisgICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcmIgdDBHUFIsIG1l
bSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKSBhdG9taWN4Y2hnb3JoIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29yaSB0MEdQUiwgbWVt
LCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFH
UFIpIGF0b21pY3hjaGdvcnEgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQorICAgIHdhc21BdG9taWNC
aW5hcnlSTVdPcHMoX3hvciwgWG9yLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwg
dDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9yYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAg
ICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3Jo
IHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIs
IHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmkgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAg
ICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9y
cSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfeGNo
ZywgWGNoZywKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikg
YXRvbWljeGNoZ2IgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnaCB0MEdQUiwgbWVtLCB0MEdQUiBl
bmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21p
Y3hjaGdpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwg
dDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3EgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQor
ZWxzaWYgQVJNNjQgb3IgUklTQ1Y2NAorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vh
a0NBUyhfYWRkLCBBZGQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAg
ICAgICAgICBhZGRpIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBt
YWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgYWRkcSB0MEdQUiwgdDFHUFIs
IHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtD
QVMoX3N1YiwgU3ViLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAg
ICAgICAgc3ViaSB0MUdQUiwgdDBHUFIsIHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFj
cm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIHN1YnEgdDFHUFIsIHQwR1BSLCB0
MkdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FT
KF94Y2hnLCBYY2hnLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAg
ICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQ
UiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKKyAgICAgICAg
ZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYW5kLCBBbmQsCisg
ICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBhbmRpIHQwR1BS
LCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIs
IHQyR1BSKQorICAgICAgICAgICAgYW5kcSB0MEdQUiwgdDFHUFIsIHQyR1BSCisgICAgICAgIGVu
ZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX29yLCBPciwKKyAgICAg
ICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIG9yaSB0MEdQUiwgdDFH
UFIsIHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQ
UikKKyAgICAgICAgICAgIG9ycSB0MEdQUiwgdDFHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKKyAg
ICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3hvciwgWG9yLAorICAgICAgICBt
YWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgeG9yaSB0MEdQUiwgdDFHUFIs
IHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikK
KyAgICAgICAgICAgIHhvcnEgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQpCitlbmQK
KworbWFjcm8gd2FzbUF0b21pY0NvbXBhcmVFeGNoYW5nZU9wcyhsb3dlckNhc2VPcGNvZGUsIHVw
cGVyQ2FzZU9wY29kZSwgZm5iLCBmbmgsIGZuaSwgZm5xKQorICAgIHdhc21PcChpNjRfYXRvbWlj
X3JtdzglbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13OCV1cHBlckNhc2VPcGNv
ZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAg
ICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBl
Y3RlZCwgdDApCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQorICAgICAgICBlbWl0
Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgsIHQzLCB0MSwgMSkKKyAgICAg
ICAgZm5iKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQorICAgICAgICBhbmRxIDB4ZmYsIHQwICMgRklY
TUU6IFplcm9FeHRlbmQ4VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAw
eGZmLCAub2sgZW5kKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorICAgIHdh
c21PcChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1Jt
dzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1f
cG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBt
bG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwg
dDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFs
aWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCAyKQorICAgICAgICBmbmgodDAsIHQyLCBbdDNdLCB0
NSwgdDEpCisgICAgICAgIGFuZHEgMHhmZmZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kMTZUbzY0
CisgICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmZmZiwgLm9rIGVuZCkKKyAg
ICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19y
bXczMiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXczMiV1cHBlckNhc2VPcGNv
ZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAg
ICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBl
Y3RlZCwgdDApCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQorICAgICAgICBlbWl0
Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgs
IHQzLCB0MSwgNCkKKyAgICAgICAgZm5pKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQorICAgICAgICBh
c3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmZmZmZmZmLCAub2sgZW5kKQorICAgICAgICBy
ZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdyVsb3dl
ckNhc2VPcGNvZGUlLCBXYXNtSTY0QXRvbWljUm13JXVwcGVyQ2FzZU9wY29kZSUsIG1hY3JvKGN0
eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4
LCBtX29mZnNldCwgdDEpCisgICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQorICAg
ICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFy
ZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDgpCisg
ICAgICAgIGZucSh0MCwgdDIsIFt0M10sIHQ1LCB0MSkKKyAgICAgICAgcmV0dXJucShjdHgsIHQw
KQorICAgIGVuZCkKK2VuZAorCitpZiBYODZfNjQgb3IgQVJNNjRFIG9yIEFSTTY0IG9yIFJJU0NW
NjQKKyMgdDBHUFIgPT4gZXhwZWN0ZWQsIHQyR1BSID0+IHZhbHVlLCBtZW0gPT4gbWVtb3J5IHJl
ZmVyZW5jZQord2FzbUF0b21pY0NvbXBhcmVFeGNoYW5nZU9wcyhfY21weGNoZywgQ21weGNoZywK
KyAgICBtYWNybyh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BSKQorICAgICAgICBpZiBY
ODZfNjQgb3IgQVJNNjRFCisgICAgICAgICAgICBicWEgdDBHUFIgLCAweGZmLCAuZmFpbAorICAg
ICAgICAgICAgYXRvbWljd2Vha2Nhc2IgdDBHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGpt
cCAuZG9uZQorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIGF0b21pY2xvYWRiIG1lbSwgdDBH
UFIKKyAgICAgICAgLmRvbmU6CisgICAgICAgIGVsc2UKKyAgICAgICAgLmxvb3A6CisgICAgICAg
ICAgICBsb2FkbGlua2FjcWIgbWVtLCB0MUdQUgorICAgICAgICAgICAgYnFuZXEgdDBHUFIsIHQx
R1BSLCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kcmVsYiB0NUdQUiwgdDJHUFIsIG1lbQor
ICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAor
ICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGIgdDVHUFIsIHQxR1BSLCBt
ZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxv
b3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgorICAgICAg
ICBlbmQKKyAgICBlbmQsCisgICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BSLCB0MUdQ
UikKKyAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQorICAgICAgICAgICAgYnFhIHQwR1BSLCAw
eGZmZmYsIC5mYWlsCisgICAgICAgICAgICBhdG9taWN3ZWFrY2FzaCB0MEdQUiwgdDJHUFIsIG1l
bQorICAgICAgICAgICAgam1wIC5kb25lCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgYXRv
bWljbG9hZGggbWVtLCB0MEdQUgorICAgICAgICAuZG9uZToKKyAgICAgICAgZWxzZQorICAgICAg
ICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5rYWNxaCBtZW0sIHQxR1BSCisgICAgICAgICAg
ICBicW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmRyZWxoIHQ1
R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAg
ICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAgICAgICAgICAgc3RvcmVjb25kcmVs
aCB0NUdQUiwgdDFHUFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAg
ICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIG1vdmUgdDFH
UFIsIHQwR1BSCisgICAgICAgIGVuZAorICAgIGVuZCwKKyAgICBtYWNybyh0MEdQUiwgdDJHUFIs
IG1lbSwgdDVHUFIsIHQxR1BSKQorICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRFCisgICAgICAg
ICAgICBicWEgdDBHUFIsIDB4ZmZmZmZmZmYsIC5mYWlsCisgICAgICAgICAgICBhdG9taWN3ZWFr
Y2FzaSB0MEdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgam1wIC5kb25lCisgICAgICAgIC5m
YWlsOgorICAgICAgICAgICAgYXRvbWljbG9hZGkgbWVtLCB0MEdQUgorICAgICAgICAuZG9uZToK
KyAgICAgICAgZWxzZQorICAgICAgICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5rYWNxaSBt
ZW0sIHQxR1BSCisgICAgICAgICAgICBicW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCisgICAgICAg
ICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1
R1BSLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAg
ICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwgdDFHUFIsIG1lbQorICAgICAgICAgICAgYmll
cSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToK
KyAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCisgICAgICAgIGVuZAorICAgIGVuZCwKKyAg
ICBtYWNybyh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BSKQorICAgICAgICBpZiBYODZf
NjQgb3IgQVJNNjRFCisgICAgICAgICAgICBhdG9taWN3ZWFrY2FzcSB0MEdQUiwgdDJHUFIsIG1l
bQorICAgICAgICBlbHNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmthY3Fx
IG1lbSwgdDFHUFIKKyAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKKyAgICAg
ICAgICAgIHN0b3JlY29uZHJlbHEgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEg
dDVHUFIsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6Cisg
ICAgICAgICAgICBzdG9yZWNvbmRyZWxxIHQ1R1BSLCB0MUdQUiwgbWVtCisgICAgICAgICAgICBi
aWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25l
OgorICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgZW5kCisgICAgZW5kKQor
ZW5kCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybS5y
YiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybS5yYgppbmRleCBjOGE4ZmQw
NmI2MTguLmE2ZjE4MjI5YjU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vYXJtLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2Fy
bS5yYgpAQCAtNzEsNiArNzEsMTEgQEAgY2xhc3MgTm9kZQogICAgICAgICByYWlzZSAiQm9ndXMg
cmVnaXN0ZXIgbmFtZSAje2RvdWJsZU9wZXJhbmR9IiB1bmxlc3MgZG91YmxlT3BlcmFuZCA9fiAv
XmQvCiAgICAgICAgICJzIiArICgkfi5wb3N0X21hdGNoLnRvX2kgKiAyKS50b19zCiAgICAgZW5k
CisgICAgZGVmIGFybVNpbmdsZUhpCisgICAgICAgIGRvdWJsZU9wZXJhbmQgPSBhcm1PcGVyYW5k
CisgICAgICAgIHJhaXNlICJCb2d1cyByZWdpc3RlciBuYW1lICN7ZG91YmxlT3BlcmFuZH0iIHVu
bGVzcyBkb3VibGVPcGVyYW5kID1+IC9eZC8KKyAgICAgICAgInMiICsgKCR+LnBvc3RfbWF0Y2gu
dG9faSAqIDIgKyAxKS50b19zCisgICAgZW5kCiBlbmQKIAogY2xhc3MgU3BlY2lhbFJlZ2lzdGVy
CkBAIC0xMDYsMjEgKzExMSwyMSBAQCBlbmQKIGNsYXNzIFJlZ2lzdGVySUQKICAgICBkZWYgYXJt
T3BlcmFuZAogICAgICAgICBjYXNlIG5hbWUKLSAgICAgICAgd2hlbiAidDAiLCAiYTAiLCAicjAi
CisgICAgICAgIHdoZW4gInQwIiwgImEwIiwgIndhMCIsICJyMCIKICAgICAgICAgICAgICJyMCIK
LSAgICAgICAgd2hlbiAidDEiLCAiYTEiLCAicjEiCisgICAgICAgIHdoZW4gInQxIiwgImExIiwg
IndhMSIsICJyMSIKICAgICAgICAgICAgICJyMSIKLSAgICAgICAgd2hlbiAidDIiLCAiYTIiCisg
ICAgICAgIHdoZW4gInQyIiwgImEyIiwgIndhMiIKICAgICAgICAgICAgICJyMiIKLSAgICAgICAg
d2hlbiAidDMiLCAiYTMiCisgICAgICAgIHdoZW4gInQzIiwgImEzIiwgIndhMyIKICAgICAgICAg
ICAgICJyMyIKICAgICAgICAgd2hlbiAidDQiICMgTExJbnQgUEMKICAgICAgICAgICAgICJyNCIK
LSAgICAgICAgd2hlbiAidDUiCisgICAgICAgIHdoZW4gInQ1IiwgIndzMCIgIyB3czAgbXVzdCBi
ZSBhIG5vbi1hcmd1bWVudC9ub24tcmV0dXJuIEdQUgogICAgICAgICAgICAgInI1IgogICAgICAg
ICB3aGVuICJjZnIiCiAgICAgICAgICAgICAicjciCi0gICAgICAgIHdoZW4gInQ2IgorICAgICAg
ICB3aGVuICJ0NiIsICJ3czEiICMgd3MxIG11c3QgYmUgYSBub24tYXJndW1lbnQvbm9uLXJldHVy
biBHUFIKICAgICAgICAgICAgICJyOCIKICAgICAgICAgd2hlbiAidDciCiAgICAgICAgICAgICAi
cjkiICMgcjkgaXMgYWxzbyBhIHNjcmF0Y2ggcmVnaXN0ZXIsIHNvIHVzZSBjYXJlZnVsbHkhCkBA
IC0xNDMsMjEgKzE0OCwyMSBAQCBlbmQKIGNsYXNzIEZQUmVnaXN0ZXJJRAogICAgIGRlZiBhcm1P
cGVyYW5kCiAgICAgICAgIGNhc2UgbmFtZQotICAgICAgICB3aGVuICJmdDAiLCAiZnIiLCAiZmEw
IgorICAgICAgICB3aGVuICJmdDAiLCAiZnIiLCAiZmEwIiwgIndmYTAiCiAgICAgICAgICAgICAi
ZDAiCi0gICAgICAgIHdoZW4gImZ0MSIsICJmYTEiCisgICAgICAgIHdoZW4gImZ0MSIsICJmYTEi
LCAid2ZhMSIKICAgICAgICAgICAgICJkMSIKLSAgICAgICAgd2hlbiAiZnQyIgorICAgICAgICB3
aGVuICJmdDIiLCAid2ZhMiIKICAgICAgICAgICAgICJkMiIKLSAgICAgICAgd2hlbiAiZnQzIgor
ICAgICAgICB3aGVuICJmdDMiLCAid2ZhMyIKICAgICAgICAgICAgICJkMyIKLSAgICAgICAgd2hl
biAiZnQ0IgorICAgICAgICB3aGVuICJmdDQiLCAid2ZhNCIKICAgICAgICAgICAgICJkNCIKLSAg
ICAgICAgd2hlbiAiZnQ1IgorICAgICAgICB3aGVuICJmdDUiLCAid2ZhNSIKICAgICAgICAgICAg
ICJkNSIKLSAgICAgICAgd2hlbiAiZnQ2IgorICAgICAgICB3aGVuICJmdDYiLCAid2ZhNiIKICAg
ICAgICAgICAgICJkNiIKLSAgICAgICAgd2hlbiAiZnQ3IgorICAgICAgICB3aGVuICJmdDciLCAi
d2ZhNyIKICAgICAgICAgICAgICJkNyIKICAgICAgICAgd2hlbiAiY3NmcjAiCiAgICAgICAgICAg
ICAiZDgiCkBAIC0xODksNyArMTk0LDExIEBAIGVuZAogY2xhc3MgQWRkcmVzcwogICAgIGRlZiBh
cm1PcGVyYW5kCiAgICAgICAgIHJhaXNlICJCYWQgb2Zmc2V0IGF0ICN7Y29kZU9yaWdpblN0cmlu
Z30iIGlmIG9mZnNldC52YWx1ZSA8IC0weGZmIG9yIG9mZnNldC52YWx1ZSA+IDB4ZmZmCi0gICAg
ICAgICJbI3tiYXNlLmFybU9wZXJhbmR9LCBcIyN7b2Zmc2V0LnZhbHVlfV0iCisgICAgICAgIGlm
IG9mZnNldC52YWx1ZSA9PSAwCisgICAgICAgICAgIlsje2Jhc2UuYXJtT3BlcmFuZH1dIgorICAg
ICAgICBlbHNlCisgICAgICAgICAgIlsje2Jhc2UuYXJtT3BlcmFuZH0sIFwjI3tvZmZzZXQudmFs
dWV9XSIKKyAgICAgICAgZW5kCiAgICAgZW5kCiBlbmQKIApAQCAtMzMyLDE2ICszNDEsMjUgQEAg
Y2xhc3MgU2VxdWVuY2UKICAgICAgICAgcmVzdWx0ID0gYXJtTG93ZXJMYWJlbFJlZmVyZW5jZXMo
cmVzdWx0KQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXMocmVz
dWx0KSB7CiAgICAgICAgICAgICB8IG5vZGUsIGFkZHJlc3MgfAotICAgICAgICAgICAgaWYgYWRk
cmVzcy5pc19hPyBCYXNlSW5kZXgKLSAgICAgICAgICAgICAgICBhZGRyZXNzLm9mZnNldC52YWx1
ZSA9PSAwCi0gICAgICAgICAgICBlbHNpZiBhZGRyZXNzLmlzX2E/IEFkZHJlc3MKLSAgICAgICAg
ICAgICAgICAoLTB4ZmYuLjB4ZmZmKS5pbmNsdWRlPyBhZGRyZXNzLm9mZnNldC52YWx1ZQorICAg
ICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAibG9hZDJpYSIsICJz
dG9yZTJpYSIKKyAgICAgICAgICAgICAgICBpZiBhZGRyZXNzLmlzX2E/IEFkZHJlc3MKKyAgICAg
ICAgICAgICAgICAgICAgKGFkZHJlc3Mub2Zmc2V0LnZhbHVlICUgNCA9PSAwKSAmJiAoKC0xMDIz
Li4xMDIzKS5pbmNsdWRlPyBhZGRyZXNzLm9mZnNldC52YWx1ZSkKKyAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgIGZhbHNlCisgICAgICAgICAgICAgICAgZW5kCiAgICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZmFsc2UKKyAgICAgICAgICAgICAgICBpZiBh
ZGRyZXNzLmlzX2E/IEJhc2VJbmRleAorICAgICAgICAgICAgICAgICAgICBhZGRyZXNzLm9mZnNl
dC52YWx1ZSA9PSAwICYmIG5vZGUub3Bjb2RlCisgICAgICAgICAgICAgICAgZWxzaWYgYWRkcmVz
cy5pc19hPyBBZGRyZXNzCisgICAgICAgICAgICAgICAgICAgICgtMHhmZi4uMHhmZmYpLmluY2x1
ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVlCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICBmYWxzZQorICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgZW5kCiAg
ICAgICAgIH0KICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzRG91
YmxlKHJlc3VsdCkKLSAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkSW1tZWRpYXRl
cyhyZXN1bHQsIFsic3RvcmViIiwgInN0b3JlaCIsICJzdG9yZWkiLCAic3RvcmVwIiwgInN0b3Jl
cSJdKQorICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKHJlc3Vs
dCwgWyJzdG9yZWIiLCAic3RvcmVoIiwgInN0b3JlaSIsICJzdG9yZXAiLCAic3RvcmVxIiwgInN0
b3JlMmlhIl0pCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEltbWVkaWF0ZXMo
cmVzdWx0LCAwLi4weGZmLCAwLi4weDBmZikKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlz
cGxhY2VkQWRkcmVzc2VzKHJlc3VsdCkKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyUmVnaXN0
ZXJSZXVzZShyZXN1bHQpCkBAIC0zNjAsNiArMzc4LDEwIEBAIGRlZiBhcm1GbGlwcGVkT3BlcmFu
ZHMob3BlcmFuZHMpCiAgICAgYXJtT3BlcmFuZHMoW29wZXJhbmRzWy0xXV0gKyBvcGVyYW5kc1sw
Li4tMl0pCiBlbmQKIAorZGVmIGFybUZsaXBwZWRPcGVyYW5kc1BhaXIob3BlcmFuZHMpCisgICAg
YXJtT3BlcmFuZHMoW29wZXJhbmRzWy0yXSwgb3BlcmFuZHNbLTFdXSArIG9wZXJhbmRzWzAuLi0z
XSkKK2VuZAorCiBkZWYgZW1pdEFybUNvbXBhY3Qob3Bjb2RlMiwgb3Bjb2RlMywgb3BlcmFuZHMp
CiAgICAgaWYgb3BlcmFuZHMuc2l6ZSA9PSAzCiAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGUz
fSAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgpAQCAtMzg5LDYgKzQxMSwxMiBAQCBk
ZWYgZW1pdEFybURvdWJsZUJyYW5jaChicmFuY2hPcGNvZGUsIG9wZXJhbmRzKQogICAgICRhc20u
cHV0cyAiI3ticmFuY2hPcGNvZGV9ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgogZW5kCiAKK2Rl
ZiBlbWl0QXJtU2luZ2xlQnJhbmNoKGJyYW5jaE9wY29kZSwgb3BlcmFuZHMpCisgICAgJGFzbS5w
dXRzICJ2Y21wZS5mMzIgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFy
bVNpbmdsZX0iCisgICAgJGFzbS5wdXRzICJ2bXJzIGFwc3JfbnpjdiwgZnBzY3IiCisgICAgJGFz
bS5wdXRzICIje2JyYW5jaE9wY29kZX0gI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCitlbmQKKwog
ZGVmIGVtaXRBcm1UZXN0KG9wZXJhbmRzKQogICAgIHZhbHVlID0gb3BlcmFuZHNbMF0KICAgICBj
YXNlIG9wZXJhbmRzLnNpemUKQEAgLTQwOSw3ICs0MzcsMTUgQEAgZW5kCiAKIGRlZiBlbWl0QXJt
RG91YmxlQ29tcGFyZShvcGVyYW5kcywgY29kZSkKICAgICAkYXNtLnB1dHMgIm1vdiAje29wZXJh
bmRzWzJdLmFybU9wZXJhbmR9LCBcIzAiCi0gICAgJGFzbS5wdXRzICJ2Y21wZS5mNjQgI3thcm1P
cGVyYW5kcyhvcGVyYW5kc1swLi4xXSl9IgorICAgICRhc20ucHV0cyAidmNtcC5mNjQgI3thcm1P
cGVyYW5kcyhvcGVyYW5kc1swLi4xXSl9IgorICAgICRhc20ucHV0cyAidm1ycyBBUFNSX256Y3Ys
IEZQU0NSIgorICAgICRhc20ucHV0cyAiaXQgI3tjb2RlfSIKKyAgICAkYXNtLnB1dHMgIm1vdiN7
Y29kZX0gI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgXCMxIgorZW5kCisKK2RlZiBlbWl0QXJt
RmxvYXRDb21wYXJlKG9wZXJhbmRzLCBjb2RlKQorICAgICRhc20ucHV0cyAibW92ICN7b3BlcmFu
ZHNbMl0uYXJtT3BlcmFuZH0sIFwjMCIKKyAgICAkYXNtLnB1dHMgInZjbXAuZjMyICN7b3BlcmFu
ZHNbMF0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IgogICAgICRhc20ucHV0
cyAidm1ycyBBUFNSX256Y3YsIEZQU0NSIgogICAgICRhc20ucHV0cyAiaXQgI3tjb2RlfSIKICAg
ICAkYXNtLnB1dHMgIm1vdiN7Y29kZX0gI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgXCMxIgpA
QCAtNDI5LDYgKzQ2NSwxOSBAQCBkZWYgZW1pdEFybVRlc3RTZXQob3BlcmFuZHMsIGNvZGUpCiAg
ICAgJGFzbS5wdXRzICJtb3Yje2NvZGV9ICN7b3BlcmFuZHNbLTFdLmFybU9wZXJhbmR9LCBcIzEi
CiBlbmQKIAorZGVmIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sIHRleHQpCisgICAgcmV0dXJu
IEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAiZW1pdCIsIFtTdHJpbmdMaXRlcmFsLm5ldyhj
b2RlT3JpZ2luLCAiXCIje3RleHR9XCIiKV0pCitlbmQKKworZGVmIGVtaXRBcm1UcnVuY2F0ZUZs
b2F0KGNvZGVPcmlnaW4sIHRvLCBmcm9tLCBvcGVyYW5kcykKKyAgICB0bXAgPSBBUk1fRVhUUkFf
RlBSU1stMV0KKyAgICBzcmMgPSBmcm9tID09ICJmMzIiID8gb3BlcmFuZHNbMF0uYXJtU2luZ2xl
IDogb3BlcmFuZHNbMF0uYXJtT3BlcmFuZAorICAgIFNlcXVlbmNlLm5ldyhjb2RlT3JpZ2luLCBb
CisgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICJ2Y3Z0LiN7dG99LiN7ZnJvbX0g
I3t0bXAuYXJtU2luZ2xlfSwgI3tzcmN9IiksCisgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVP
cmlnaW4sICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sICN7dG1wLmFybVNpbmdsZX0i
KQorICAgIF0pLmxvd2VyKCRhY3RpdmVCYWNrZW5kKQorZW5kCisKIGNsYXNzIEluc3RydWN0aW9u
CiAgICAgZGVmIGxvd2VyQVJNdjcKICAgICAgICAgcmFpc2UgdW5sZXNzICRhY3RpdmVCYWNrZW5k
ID09ICJBUk12NyIKQEAgLTQ2Niw2ICs1MTUsMTAgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAg
ICAgICAgICAgICAgICAgJGFzbS5wdXRzICJhZGQje3N1ZmZpeH0gI3thcm1GbGlwcGVkT3BlcmFu
ZHMob3BlcmFuZHMpfSIKICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGVuZAorICAg
ICAgICB3aGVuICJhZGNpIgorICAgICAgICAgICAgZW1pdEFybSgiYWRjIiwgb3BlcmFuZHMpCisg
ICAgICAgIHdoZW4gImFic2QiCisgICAgICAgICAgJGFzbS5wdXRzICJ2YWJzLmY2NCAje2FybUZs
aXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJhbmRpIiwgImFuZHAiCiAg
ICAgICAgICAgICBlbWl0QXJtQ29tcGFjdCgiYW5kcyIsICJhbmQiLCBvcGVyYW5kcykKICAgICAg
ICAgd2hlbiAib3JpIiwgIm9ycCIsICJvcmgiCkBAIC00ODQsMTQgKzUzNywzNCBAQCBjbGFzcyBJ
bnN0cnVjdGlvbgogICAgICAgICAgICAgZW1pdEFybSgibXVsIiwgb3BlcmFuZHMpCiAgICAgICAg
IHdoZW4gInN1YmkiLCAic3VicCIsICJzdWJpcyIKICAgICAgICAgICAgIGVtaXRBcm1Db21wYWN0
KCJzdWJzIiwgInN1YnMiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAic2JjaSIKKyAgICAgICAg
ICAgIGVtaXRBcm0oInNiYyIsIG9wZXJhbmRzKQogICAgICAgICB3aGVuICJuZWdpIiwgIm5lZ3Ai
CiAgICAgICAgICAgICAkYXNtLnB1dHMgInJzYnMgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSwg
I3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSwgXCMwIgogICAgICAgICB3aGVuICJub3RpIgogICAg
ICAgICAgICAgJGFzbS5wdXRzICJtdm5zICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7b3Bl
cmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAgIHdoZW4gImxyb3RhdGVpIgorICAgICAgICAg
ICAgdG1wID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgU2VxdWVuY2Uu
bmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9y
aWdpbiwgIm1vdmUiLCBbb3BlcmFuZHNbMF0sIHRtcF0pLAorICAgICAgICAgICAgICAgIEluc3Ry
dWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAibmVnaSIsIFt0bXBdKSwKKyAgICAgICAgICAgICAgICBJ
bnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgInJyb3RhdGVpIiwgW3RtcCwgb3BlcmFuZHNbMV1d
KSwKKyAgICAgICAgICAgIF0pLmxvd2VyKCRhY3RpdmVCYWNrZW5kKQorICAgICAgICB3aGVuICJy
cm90YXRlaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAicm9yICN7YXJtRmxpcHBlZE9wZXJhbmRz
KG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInR6Y250aSIKKyAgICAgICAgICAgICRhc20ucHV0
cyAicmJpdCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICAgICAgJGFz
bS5wdXRzICJjbHogI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1P
cGVyYW5kfSIKKyAgICAgICAgd2hlbiAibHpjbnRpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJj
bHogI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAibG9hZGki
LCAibG9hZGlzIiwgImxvYWRwIgogICAgICAgICAgICAgJGFzbS5wdXRzICJsZHIgI3thcm1GbGlw
cGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAic3RvcmVpIiwgInN0b3JlcCIK
ICAgICAgICAgICAgICRhc20ucHV0cyAic3RyICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAg
ICAgICAgd2hlbiAibG9hZDJpYSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRyZCAje2FybUZs
aXBwZWRPcGVyYW5kc1BhaXIob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmUyaWEiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgInN0cmQgI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgogICAg
ICAgICB3aGVuICJsb2FkYiIKICAgICAgICAgICAgICRhc20ucHV0cyAibGRyYiAje2FybUZsaXBw
ZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJsb2FkYnNpIgpAQCAtNTA0LDIw
ICs1NzcsMTEwIEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICAkYXNtLnB1dHMgImxk
cnNoLncgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAic3Rv
cmVoIgogICAgICAgICAgICAgJGFzbS5wdXRzICJzdHJoICN7YXJtT3BlcmFuZHMob3BlcmFuZHMp
fSIKKyAgICAgICAgd2hlbiAibG9hZGxpbmtiIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsZHJl
eGIgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGxp
bmtoIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsZHJleGggI3thcm1GbGlwcGVkT3BlcmFuZHMo
b3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGxpbmtpIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJsZHJleCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVu
ICJsb2FkbGluazJpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsZHJleGQgI3thcm1GbGlwcGVk
T3BlcmFuZHNQYWlyKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN0b3JlY29uZGIiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgInN0cmV4YiAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAg
ICAgIHdoZW4gInN0b3JlY29uZGgiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN0cmV4aCAje2Fy
bU9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN0b3JlY29uZGkiCisgICAgICAg
ICAgICAkYXNtLnB1dHMgInN0cmV4ICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAg
d2hlbiAic3RvcmVjb25kMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN0cmV4ZCAje2FybU9w
ZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gImxvYWRkIgogICAgICAgICAgICAgJGFz
bS5wdXRzICJ2bGRyLjY0ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAg
IHdoZW4gInN0b3JlZCIKICAgICAgICAgICAgICRhc20ucHV0cyAidnN0ci42NCAje2FybU9wZXJh
bmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRmIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJ2bGRyLjMyICN7b3BlcmFuZHNbLTFdLmFybVNpbmdsZX0sICN7YXJtT3BlcmFuZHMob3Bl
cmFuZHNbMC4uLTJdKX0iCisgICAgICAgIHdoZW4gInN0b3JlZiIKKyAgICAgICAgICAgICRhc20u
cHV0cyAidnN0ci4zMiAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0sICN7YXJtT3BlcmFuZHMob3Bl
cmFuZHNbMS4uLTFdKX0iCisgICAgICAgIHdoZW4gImFkZGYiCisgICAgICAgICAgICAkYXNtLnB1
dHMgInZhZGQuZjMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5hcm1T
aW5nbGV9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gInN1YmYiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgInZzdWIuZjMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwg
I3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCisgICAg
ICAgIHdoZW4gIm11bGYiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZtdWwuZjMyICN7b3BlcmFu
ZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBd
LmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gImRpdmYiCisgICAgICAgICAgICAkYXNtLnB1dHMg
InZkaXYuZjMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5n
bGV9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gInNxcnRmIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJ2c3FydC5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAj
e29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gImFic2YiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgInZhYnMuZjMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5k
c1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJuZWdmIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJ2bmVnLmYzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJt
U2luZ2xlfSIKKyAgICAgICAgd2hlbiAiYmZsdCIKKyAgICAgICAgICAgIGVtaXRBcm1TaW5nbGVC
cmFuY2goImJtaSIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZmx0dW4iCisgICAgICAgICAg
ICBlbWl0QXJtU2luZ2xlQnJhbmNoKCJibHQiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmZs
dGVxdW4iCisgICAgICAgICAgICBlbWl0QXJtU2luZ2xlQnJhbmNoKCJibGUiLCBvcGVyYW5kcykK
KyAgICAgICAgd2hlbiAiYmZlcSIKKyAgICAgICAgICAgIGVtaXRBcm1TaW5nbGVCcmFuY2goImJl
cSIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZmd0IgorICAgICAgICAgICAgZW1pdEFybVNp
bmdsZUJyYW5jaCgiYmd0Iiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJmZ3RlcXVuIgorICAg
ICAgICAgICAgZW1pdEFybVNpbmdsZUJyYW5jaCgiYnBsIiwgb3BlcmFuZHMpCisgICAgICAgIHdo
ZW4gImJkbHR1biIKKyAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVCcmFuY2goImJsdCIsIG9wZXJh
bmRzKQogICAgICAgICB3aGVuICJhZGRkIgogICAgICAgICAgICAgZW1pdEFybSgidmFkZC5mNjQi
LCBvcGVyYW5kcykKLSAgICAgICAgd2hlbiAiZGl2ZCIKLSAgICAgICAgICAgIGVtaXRBcm0oInZk
aXYuZjY0Iiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gInN1YmQiCiAgICAgICAgICAgICBlbWl0
QXJtKCJ2c3ViLmY2NCIsIG9wZXJhbmRzKQogICAgICAgICB3aGVuICJtdWxkIgogICAgICAgICAg
ICAgZW1pdEFybSgidm11bC5mNjQiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiZGl2ZCIKKyAg
ICAgICAgICAgIGVtaXRBcm0oInZkaXYuZjY0Iiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gInNx
cnRkIgogICAgICAgICAgICAgJGFzbS5wdXRzICJ2c3FydC5mNjQgI3thcm1GbGlwcGVkT3BlcmFu
ZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibmVnZCIKKyAgICAgICAgICAgICRhc20ucHV0
cyAidm5lZy5mNjQgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hl
biAib3JmIgorICAgICAgICAgICAgKHRtcExocywgdG1wUmhzKSA9IEFSTV9FWFRSQV9HUFJTWy0y
Li4tMV0KKyAgICAgICAgICAgIFNlcXVlbmNlLm5ldyhjb2RlT3JpZ2luLCBbCisgICAgICAgICAg
ICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcExocy5hcm1PcGVyYW5k
fSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IiksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0
aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcFJocy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sx
XS5hcm1TaW5nbGV9IiksCisgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2lu
LCAib3JpIiwgW3RtcExocywgdG1wUmhzXSksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9u
KGNvZGVPcmlnaW4sICAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7dG1wUmhzLmFy
bU9wZXJhbmR9IikKKyAgICAgICAgICAgIF0pLmxvd2VyKCRhY3RpdmVCYWNrZW5kKQorICAgICAg
ICB3aGVuICJhbmRmIgorICAgICAgICAgICAgKHRtcExocywgdG1wUmhzKSA9IEFSTV9FWFRSQV9H
UFJTWy0yLi4tMV0KKyAgICAgICAgICAgIFNlcXVlbmNlLm5ldyhjb2RlT3JpZ2luLCBbCisgICAg
ICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcExocy5hcm1P
cGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IiksCisgICAgICAgICAgICAgIHJhd0lu
c3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcFJocy5hcm1PcGVyYW5kfSwgI3tvcGVy
YW5kc1sxXS5hcm1TaW5nbGV9IiksCisgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2Rl
T3JpZ2luLCAiYW5kaSIsIFt0bXBMaHMsIHRtcFJoc10pLAorICAgICAgICAgICAgICByYXdJbnN0
cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje3Rt
cFJocy5hcm1PcGVyYW5kfSIpCisgICAgICAgICAgICBdKS5sb3dlcigkYWN0aXZlQmFja2VuZCkK
KyAgICAgICAgd2hlbiAib3JkIgorICAgICAgICAgICAgKHRtcExocywgdG1wUmhzKSA9IEFSTV9F
WFRSQV9HUFJTWy0yLi4tMV0KKyAgICAgICAgICAgIFNlcXVlbmNlLm5ldyhjb2RlT3JpZ2luLCBb
CisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcExo
cy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IiksCisgICAgICAgICAgICAg
IHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcFJocy5hcm1PcGVyYW5kfSwg
I3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IiksCisgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5l
dyhjb2RlT3JpZ2luLCAib3JpIiwgW3RtcExocywgdG1wUmhzXSksCisgICAgICAgICAgICAgIHJh
d0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0s
ICN7dG1wUmhzLmFybU9wZXJhbmR9IiksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNv
ZGVPcmlnaW4sICAidm1vdiAje3RtcExocy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1T
aW5nbGVIaX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2
bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZUhpfSIpLAor
ICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgIm9yaSIsIFt0bXBMaHMs
IHRtcFJoc10pLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZt
b3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGVIaX0sICN7dG1wUmhzLmFybU9wZXJhbmR9IikKKyAg
ICAgICAgICAgIF0pLmxvd2VyKCRhY3RpdmVCYWNrZW5kKQorICAgICAgICB3aGVuICJhbmRkIgor
ICAgICAgICAgICAgKHRtcExocywgdG1wUmhzKSA9IEFSTV9FWFRSQV9HUFJTWy0yLi4tMV0KKyAg
ICAgICAgICAgIFNlcXVlbmNlLm5ldyhjb2RlT3JpZ2luLCBbCisgICAgICAgICAgICAgIHJhd0lu
c3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcExocy5hcm1PcGVyYW5kfSwgI3tvcGVy
YW5kc1swXS5hcm1TaW5nbGV9IiksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVP
cmlnaW4sICAidm1vdiAje3RtcFJocy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5n
bGV9IiksCisgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAiYW5kaSIs
IFt0bXBMaHMsIHRtcFJoc10pLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3Jp
Z2luLCAgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje3RtcFJocy5hcm1PcGVyYW5k
fSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0
bXBMaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlSGl9IiksCisgICAgICAg
ICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcFJocy5hcm1PcGVy
YW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGVIaX0iKSwKKyAgICAgICAgICAgICAgSW5zdHJ1
Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJhbmRpIiwgW3RtcExocywgdG1wUmhzXSksCisgICAgICAg
ICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje29wZXJhbmRzWzFdLmFy
bVNpbmdsZUhpfSwgI3t0bXBSaHMuYXJtT3BlcmFuZH0iKQorICAgICAgICAgICAgXSkubG93ZXIo
JGFjdGl2ZUJhY2tlbmQpCiAgICAgICAgIHdoZW4gImNpMmRzIgogICAgICAgICAgICAgJGFzbS5w
dXRzICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVy
YW5kfSIKICAgICAgICAgICAgICRhc20ucHV0cyAidmN2dC5mNjQuczMyICN7b3BlcmFuZHNbMV0u
YXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKQEAgLTU3MCw2ICs3MzMsOCBA
QCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICB3aGVuICJtb3ZkeiIKICAgICAgICAgICAgICMg
RklYTUU6IGVpdGhlciBzdXBwb3J0IHRoaXMgb3IgcmVtb3ZlIGl0LgogICAgICAgICAgICAgcmFp
c2UgIkFSTSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgb3Bjb2RlIHlldCwgI3tjb2RlT3JpZ2lufSIK
KyAgICAgICAgd2hlbiAibW92ZWQiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3YuZjY0ICN7
YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gInBvcCIKICAgICAg
ICAgICAgIG9wZXJhbmRzLmVhY2ggewogICAgICAgICAgICAgICAgIHwgb3AgfApAQCAtNTg2LDkg
Kzc1MSwxNyBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgICAgICRhc20ucHV0cyAibW92ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAg
ICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAibW92ZWlpIgorICAgICAgICAgICAgcmFpc2Ug
IkZpcnN0IG9wZXJhbmQgb2YgbW92ZWlpIG11c3QgYmUgYW4gaW1tZWRpYXRlIiB1bmxlc3Mgb3Bl
cmFuZHNbMF0uaW1tZWRpYXRlPworICAgICAgICAgICAgYXJtTW92ZUltbWVkaWF0ZShvcGVyYW5k
c1swXS52YWx1ZSA+PiAzMiwgb3BlcmFuZHNbMV0pCisgICAgICAgICAgICBhcm1Nb3ZlSW1tZWRp
YXRlKG9wZXJhbmRzWzBdLnZhbHVlICYgMHhmZmZmZmZmZiwgb3BlcmFuZHNbMl0pCiAgICAgICAg
IHdoZW4gIm12bGJsIgogICAgICAgICAgICAgICAgICRhc20ucHV0cyAibW92dyAje29wZXJhbmRz
WzFdLmFybU9wZXJhbmR9LCBcIzpsb3dlcjE2OiN7b3BlcmFuZHNbMF0udmFsdWV9IgogICAgICAg
ICAgICAgICAgICRhc20ucHV0cyAibW92dCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCBcIzp1
cHBlcjE2OiN7b3BlcmFuZHNbMF0udmFsdWV9IgorICAgICAgICB3aGVuICJzeGIyaSIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAic3h0YiAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9Igor
ICAgICAgICB3aGVuICJzeGgyaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3h0aCAje2FybUZs
aXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJub3AiCiAgICAgICAgICAg
ICAkYXNtLnB1dHMgIm5vcCIKICAgICAgICAgd2hlbiAiYmllcSIsICJicGVxIiwgImJiZXEiCkBA
IC02ODIsMTQgKzg1NSw0NiBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgZW1pdEFy
bUNvbXBhcmUob3BlcmFuZHMsICJsdCIpCiAgICAgICAgIHdoZW4gImNpbHRlcSIsICJjcGx0ZXEi
LCAiY2JsdGVxIgogICAgICAgICAgICAgZW1pdEFybUNvbXBhcmUob3BlcmFuZHMsICJsZSIpCi0g
ICAgICAgIHdoZW4gImNkZ3QiCi0gICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVy
YW5kcywgImd0IikKLSAgICAgICAgd2hlbiAiY2RndGVxIgotICAgICAgICAgICAgZW1pdEFybURv
dWJsZUNvbXBhcmUob3BlcmFuZHMsICJnZSIpCisgICAgICAgIHdoZW4gImNmZXEiCisgICAgICAg
ICAgICBlbWl0QXJtRmxvYXRDb21wYXJlKG9wZXJhbmRzLCAiZXEiKQorICAgICAgICB3aGVuICJj
Zm5lcXVuIgorICAgICAgICAgICAgZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywgIm5lIikK
KyAgICAgICAgd2hlbiAiY2ZsdCIKKyAgICAgICAgICAgIGVtaXRBcm1GbG9hdENvbXBhcmUob3Bl
cmFuZHMsICJtaSIpCisgICAgICAgIHdoZW4gImNmbHRlcSIKKyAgICAgICAgICAgIGVtaXRBcm1G
bG9hdENvbXBhcmUob3BlcmFuZHMsICJscyIpCisgICAgICAgIHdoZW4gImNmZ3QiCisgICAgICAg
ICAgICBlbWl0QXJtRmxvYXRDb21wYXJlKG9wZXJhbmRzLCAiZ3QiKQorICAgICAgICB3aGVuICJj
Zmd0ZXEiCisgICAgICAgICAgICBlbWl0QXJtRmxvYXRDb21wYXJlKG9wZXJhbmRzLCAiZ2UiKQor
ICAgICAgICB3aGVuICJjZGVxIgorICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3Bl
cmFuZHMsICJlcSIpCisgICAgICAgIHdoZW4gImNkbmVxdW4iCisgICAgICAgICAgICBlbWl0QXJt
RG91YmxlQ29tcGFyZShvcGVyYW5kcywgIm5lIikKICAgICAgICAgd2hlbiAiY2RsdCIKICAgICAg
ICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAibWkiKQogICAgICAgICB3aGVu
ICJjZGx0ZXEiCiAgICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywgImxz
IikKKyAgICAgICAgd2hlbiAiY2RndCIKKyAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJl
KG9wZXJhbmRzLCAiZ3QiKQorICAgICAgICB3aGVuICJjZGd0ZXEiCisgICAgICAgICAgICBlbWl0
QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywgImdlIikKKyAgICAgICAgd2hlbiAiY2YyZCIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAidmN2dC5mNjQuZjMyICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAiY2QyZiIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAidmN2dC5mMzIuZjY0ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwg
I3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgd2hlbiAiY2kyZiIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNb
MF0uYXJtT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInZjdnQuZjMyLnUzMiAje29w
ZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKKyAgICAgICAg
d2hlbiAiY2kyZnMiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5h
cm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5w
dXRzICJ2Y3Z0LmYzMi5zMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFd
LmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gImNpMmQiCisgICAgICAgICAgICAkYXNtLnB1dHMg
InZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmY2NC51MzIgI3tvcGVyYW5kc1sxXS5hcm1P
cGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJjaTJkcyIK
KyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7
b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInZjdnQuZjY0
LnMzMiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0i
CiAgICAgICAgIHdoZW4gInRpcyIsICJ0YnMiLCAidHBzIgogICAgICAgICAgICAgZW1pdEFybVRl
c3RTZXQob3BlcmFuZHMsICJtaSIpCiAgICAgICAgIHdoZW4gInRpeiIsICJ0YnoiLCAidHB6IgpA
QCAtNzAwLDEwICs5MDUsMjIgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgICRhc20u
cHV0cyAibGRyICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sIFtzcCwgXCMje29wZXJhbmRzWzBd
LnZhbHVlICogNH1dIgogICAgICAgICB3aGVuICJwb2tlIgogICAgICAgICAgICAgJGFzbS5wdXRz
ICJzdHIgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgW3NwLCBcIyN7b3BlcmFuZHNbMF0udmFs
dWUgKiA0fV0iCisgICAgICAgIHdoZW4gImZpMmYiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZt
b3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9Igor
ICAgICAgICB3aGVuICJmZjJpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFu
ZHNbMV0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKICAgICAgICAgd2hl
biAiZmlpMmQiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1syXS5hcm1P
cGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVy
YW5kfSIKICAgICAgICAgd2hlbiAiZmQyaWkiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3Yg
I3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgI3tv
cGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgd2hlbiAidHJ1bmNhdGVmMmkiCisgICAg
ICAgICAgICBlbWl0QXJtVHJ1bmNhdGVGbG9hdChjb2RlT3JpZ2luLCAidTMyIiwgImYzMiIsIG9w
ZXJhbmRzKQorICAgICAgICB3aGVuICJ0cnVuY2F0ZWYyaXMiCisgICAgICAgICAgICBlbWl0QXJt
VHJ1bmNhdGVGbG9hdChjb2RlT3JpZ2luLCAiczMyIiwgImYzMiIsIG9wZXJhbmRzKQorICAgICAg
ICB3aGVuICJ0cnVuY2F0ZWQyaSIKKyAgICAgICAgICAgIGVtaXRBcm1UcnVuY2F0ZUZsb2F0KGNv
ZGVPcmlnaW4sICJ1MzIiLCAiZjY0Iiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInRydW5jYXRl
ZDJpcyIKKyAgICAgICAgICAgIGVtaXRBcm1UcnVuY2F0ZUZsb2F0KGNvZGVPcmlnaW4sICJzMzIi
LCAiZjY0Iiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gImJvIgogICAgICAgICAgICAgJGFzbS5w
dXRzICJidnMgI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCiAgICAgICAgIHdoZW4gImJzIgpAQCAt
NzEyLDEzICs5MjksMTcgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgICRhc20ucHV0
cyAiYmVxICN7b3BlcmFuZHNbMF0uYXNtTGFiZWx9IgogICAgICAgICB3aGVuICJibnoiCiAgICAg
ICAgICAgICAkYXNtLnB1dHMgImJuZSAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKKyAgICAgICAg
d2hlbiAiYmNzIgorICAgICAgICAgICAgJGFzbS5wdXRzICJiY3MgI3tvcGVyYW5kc1swXS5hc21M
YWJlbH0iCiAgICAgICAgIHdoZW4gImxlYWkiLCAibGVhcCIKICAgICAgICAgICAgIG9wZXJhbmRz
WzBdLmFybUVtaXRMZWEob3BlcmFuZHNbMV0pCi0gICAgICAgIHdoZW4gInNtdWxsaSIKKyAgICAg
ICAgd2hlbiAic211bGxpIiwgInVtdWxsaSIKICAgICAgICAgICAgIHJhaXNlICJXcm9uZyBudW1i
ZXIgb2YgYXJndW1lbnRzIHRvIHNtdWxsIGluICN7c2VsZi5pbnNwZWN0fSBhdCAje2NvZGVPcmln
aW5TdHJpbmd9IiB1bmxlc3Mgb3BlcmFuZHMubGVuZ3RoID09IDQKLSAgICAgICAgICAgICRhc20u
cHV0cyAic211bGwgI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1szXS5hcm1P
cGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVy
YW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGVbMC4uLTJdfSAje29wZXJhbmRz
WzJdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzNdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBd
LmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9IgogICAgICAgICB3aGVuICJt
ZW1mZW5jZSIKICAgICAgICAgICAgICRhc20ucHV0cyAiZG1iIHN5IgorICAgICAgICB3aGVuICJm
ZW5jZSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiZG1iIGlzaCIKICAgICAgICAgd2hlbiAiY2xy
YnAiCiAgICAgICAgICAgICAkYXNtLnB1dHMgImJpYyAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9
LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9Igog
ICAgICAgICB3aGVuICJnbG9iYWxhZGRyIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCmluZGV4IDU0YjAyN2YzZGEwMS4uN2UyODBiN2Y3OGI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlv
bnMucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25z
LnJiCkBAIC01OSw2ICs1OSw3IEBAIE1BQ1JPX0lOU1RSVUNUSU9OUyA9CiAgICAgICJycm90YXRl
cSIsCiAgICAgICJzdWJpIiwKICAgICAgInhvcmkiLAorICAgICAibG9hZDJpYSIsCiAgICAgICJs
b2FkaSIsCiAgICAgICJsb2FkaXMiLAogICAgICAibG9hZGIiLApAQCAtNjcsNiArNjgsNyBAQCBN
QUNST19JTlNUUlVDVElPTlMgPQogICAgICAibG9hZGgiLAogICAgICAibG9hZGhzaSIsCiAgICAg
ICJsb2FkaHNxIiwKKyAgICAgInN0b3JlMmlhIiwKICAgICAgInN0b3JlaSIsCiAgICAgICJzdG9y
ZWgiLAogICAgICAic3RvcmViIiwKQEAgLTM3Nyw5ICszNzksMjEgQEAgWDg2X0lOU1RSVUNUSU9O
UyA9CiAKIEFSTV9JTlNUUlVDVElPTlMgPQogICAgIFsKKyAgICAgImFkY2kiLAorICAgICAiYmNz
IiwKICAgICAgImNscmJwIiwKICAgICAgIm12bGJsIiwKLSAgICAgImdsb2JhbGFkZHIiCisgICAg
ICJnbG9iYWxhZGRyIiwKKyAgICAgInNiY2kiLAorICAgICAibW92ZWlpIiwKKyAgICAgImxvYWRs
aW5rYiIsCisgICAgICJsb2FkbGlua2giLAorICAgICAibG9hZGxpbmtpIiwKKyAgICAgImxvYWRs
aW5rMmkiLAorICAgICAic3RvcmVjb25kYiIsCisgICAgICJzdG9yZWNvbmRoIiwKKyAgICAgInN0
b3JlY29uZGkiLAorICAgICAic3RvcmVjb25kMmkiLAogICAgIF0KIAogQVJNNjRfSU5TVFJVQ1RJ
T05TID0KQEAgLTQzMSw2ICs0NDUsNyBAQCBBUk02NF9JTlNUUlVDVElPTlMgPQogUklTQ19JTlNU
UlVDVElPTlMgPQogICAgIFsKICAgICAgInNtdWxsaSIsICAjIE11bHRpcGx5IHR3byAzMi1iaXQg
d29yZHMgYW5kIHByb2R1Y2UgYSA2NC1iaXQgd29yZAorICAgICAidW11bGxpIiwgICMgTXVsdGlw
bHkgdHdvIDMyLWJpdCB3b3JkcyBhbmQgcHJvZHVjZSBhIDY0LWJpdCB3b3JkCiAgICAgICJhZGRp
cyIsICAgIyBBZGQgaW50ZWdlcnMgYW5kIHNldCBhIGZsYWcuCiAgICAgICJzdWJpcyIsICAgIyBT
YW1lLCBidXQgZm9yIHN1YnRyYWN0aW9uLgogICAgICAib3JpcyIsICAgICMgU2FtZSwgYnV0IGZv
ciBiaXR3aXNlIG9yLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20vcmVnaXN0ZXJzLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0
ZXJzLnJiCmluZGV4IDBkYzQ0YzIzZGZiMi4uNjdmNTI3MWE1Mzc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiCkBAIC01OCw3ICs1OCw4IEBAIEdQ
UlMgPQogICAgICAiY3NyNyIsCiAgICAgICJjc3I4IiwKICAgICAgImNzcjkiLAotICAgICAiY3Ny
MTAiCisgICAgICJjc3IxMCIsCisgICAgICJpbnZhbGlkR1BSIgogICAgIF0KIAogRlBSUyA9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYgppbmRleCAwZjA3MmU5ZmQxMWUu
LjM0NjQ1OTYyZjc0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20vcmlzYy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJi
CkBAIC0yNTksOCArMjU5LDEyIEBAIGRlZiByaXNjTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXNEb3Vi
bGUobGlzdCkKICAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKICAgICAgICAgICAgIHdoZW4g
ImxvYWRkIgogICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUu
Y29kZU9yaWdpbiwgImxvYWRkIiwgW25vZGUub3BlcmFuZHNbMF0ucmlzY0RvdWJsZUFkZHJlc3Mo
bmV3TGlzdCksIG5vZGUub3BlcmFuZHNbMV1dLCBub2RlLmFubm90YXRpb24pCisgICAgICAgICAg
ICB3aGVuICJsb2FkZiIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5l
dyhub2RlLmNvZGVPcmlnaW4sICJsb2FkZiIsIFtub2RlLm9wZXJhbmRzWzBdLnJpc2NEb3VibGVB
ZGRyZXNzKG5ld0xpc3QpLCBub2RlLm9wZXJhbmRzWzFdXSwgbm9kZS5hbm5vdGF0aW9uKQogICAg
ICAgICAgICAgd2hlbiAic3RvcmVkIgogICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInN0b3JlZCIsIFtub2RlLm9wZXJhbmRzWzBdLCBu
b2RlLm9wZXJhbmRzWzFdLnJpc2NEb3VibGVBZGRyZXNzKG5ld0xpc3QpXSwgbm9kZS5hbm5vdGF0
aW9uKQorICAgICAgICAgICAgd2hlbiAic3RvcmVmIgorICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInN0b3JlZiIsIFtub2RlLm9wZXJh
bmRzWzBdLCBub2RlLm9wZXJhbmRzWzFdLnJpc2NEb3VibGVBZGRyZXNzKG5ld0xpc3QpXSwgbm9k
ZS5hbm5vdGF0aW9uKQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgbm9kZQogICAgICAgICAgICAgZW5kCkBAIC0zNjksNyArMzczLDcgQEAgZGVmIHJpc2NMb3dl
ck1hbGZvcm1lZEltbWVkaWF0ZXMobGlzdCwgdmFsaWRJbW1lZGlhdGVzLCB2YWxpZExvZ2ljYWxJ
bW1lZGlhdGVzKQogICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCiAgICAgICAgICAg
ICBhbm5vdGF0aW9uID0gbm9kZS5hbm5vdGF0aW9uCiAgICAgICAgICAgICBjYXNlIG5vZGUub3Bj
b2RlCi0gICAgICAgICAgICB3aGVuICJtb3ZlIgorICAgICAgICAgICAgd2hlbiAibW92ZSIsICJt
b3ZlaWkiCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCiAgICAgICAgICAgICB3aGVu
ICJhZGRpIiwgImFkZHAiLCAiYWRkcSIsICJhZGRpcyIsICJzdWJpIiwgInN1YnAiLCAic3VicSIs
ICJzdWJpcyIKICAgICAgICAgICAgICAgICBpZiBub2RlLm9wZXJhbmRzWzBdLmlzX2E/IEltbWVk
aWF0ZSBhbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pT
VmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAppbmRl
eCAzOTFmZDNhNmE0MWMuLmZlMjE2NDg2NzMxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ0pTVmFsdWUuaApAQCAtMTYyLDggKzE2Miw5IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgY29uc3RleHByIHVpbnQzMl90IE51bGxUYWcgPSAgICAgICAgIDB4ZmZmZmZmZmQ7CiAgICAg
c3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBVbmRlZmluZWRUYWcgPSAgICAweGZmZmZmZmZjOwog
ICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgQ2VsbFRhZyA9ICAgICAgICAgMHhmZmZmZmZm
YjsKLSAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IEVtcHR5VmFsdWVUYWcgPSAgIDB4ZmZm
ZmZmZmE7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBEZWxldGVkVmFsdWVUYWcgPSAw
eGZmZmZmZmY5OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgV2FzbVRhZyA9ICAgICAg
ICAgMHhmZmZmZmZmYTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IEVtcHR5VmFsdWVU
YWcgPSAgIDB4ZmZmZmZmZjk7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBEZWxldGVk
VmFsdWVUYWcgPSAweGZmZmZmZmY4OwogCiAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBM
b3dlc3RUYWcgPSAgRGVsZXRlZFZhbHVlVGFnOwogI2VuZGlmCkBAIC0xODAsNiArMTgxLDkgQEAg
cHVibGljOgogICAgIGVudW0gRW5jb2RlQXNCaWdJbnQzMlRhZyB7IEVuY29kZUFzQmlnSW50MzIg
fTsKICNlbmRpZgogICAgIGVudW0gRW5jb2RlQXNEb3VibGVUYWcgeyBFbmNvZGVBc0RvdWJsZSB9
OworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBlbnVt
IEVuY29kZUFzVW5ib3hlZEZsb2F0VGFnIHsgRW5jb2RlQXNVbmJveGVkRmxvYXQgfTsKKyNlbmRp
ZgogCiAgICAgSlNWYWx1ZSgpOwogICAgIEpTVmFsdWUoSlNOdWxsVGFnKTsKQEAgLTE5MSw2ICsx
OTUsOSBAQCBwdWJsaWM6CiAjaWYgVVNFKEJJR0lOVDMyKQogICAgIEpTVmFsdWUoRW5jb2RlQXNC
aWdJbnQzMlRhZywgaW50MzJfdCk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYm
IFVTRShKU1ZBTFVFMzJfNjQpCisgICAgSlNWYWx1ZShFbmNvZGVBc1VuYm94ZWRGbG9hdFRhZywg
ZmxvYXQpOworI2VuZGlmCiAKICAgICAvLyBOdW1iZXJzCiAgICAgSlNWYWx1ZShFbmNvZGVBc0Rv
dWJsZVRhZywgZG91YmxlKTsKQEAgLTU5Myw2ICs2MDAsMTMgQEAgQUxXQVlTX0lOTElORSBKU1Zh
bHVlIGpzQmlnSW50MzIoaW50MzJfdCBpbnRWYWx1ZSkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKSAmJiBVU0UoSlNWQUxVRTMyXzY0KQorQUxXQVlTX0lOTElORSBKU1ZhbHVl
IHdhc21VbmJveGVkRmxvYXQoZmxvYXQgZikKK3sKKyAgICByZXR1cm4gSlNWYWx1ZShKU1ZhbHVl
OjpFbmNvZGVBc1VuYm94ZWRGbG9hdCwgZik7Cit9CisjZW5kaWYKKwogQUxXQVlTX0lOTElORSBK
U1ZhbHVlIGpzRG91YmxlTnVtYmVyKGRvdWJsZSBkKQogewogICAgIEFTU0VSVChKU1ZhbHVlKEpT
VmFsdWU6OkVuY29kZUFzRG91YmxlLCBkKS5pc051bWJlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCmluZGV4IGJhM2ViMTI2ZTY4
NS4uNTFiYmE3ZWVkMzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NKU1ZhbHVlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ0pTVmFsdWVJbmxpbmVzLmgKQEAgLTYyMyw2ICs2MjMsMTMgQEAgaW5saW5lIEpTVmFsdWU6
OkpTVmFsdWUoRW5jb2RlQXNCaWdJbnQzMlRhZywgaW50MzJfdCB2YWx1ZSkKIH0KICNlbmRpZiAv
LyBVU0UoQklHSU5UMzIpCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVF
MzJfNjQpCitpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShFbmNvZGVBc1VuYm94ZWRGbG9hdFRhZywg
ZmxvYXQgdmFsdWUpCit7CisgICAgdS5hc0JpdHMucGF5bG9hZCA9IGJpdHdpc2VfY2FzdDxpbnQz
Ml90Pih2YWx1ZSk7Cit9CisjZW5kaWYKKwogaW5saW5lIGludDY0X3QgdHJ5Q29udmVydFRvSW50
NTIoZG91YmxlIG51bWJlcikKIHsKICAgICBpZiAobnVtYmVyICE9IG51bWJlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCmluZGV4IDg5
Y2VjYmQzYjgyOC4uNTI1NWI4ZDcxZTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAKQEAgLTg0Nyw2ICs4NDcsMTUgQEAgcHJpdmF0
ZToKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuY3Rpb24+CiAgICAgdm9pZCBmb3JFYWNoTGl2
ZVZhbHVlKEZ1bmN0aW9uKTsKIAorICAgIGJvb2wgdXNlU2lnbmFsaW5nTWVtb3J5KCkgY29uc3QK
KyAgICB7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCisgICAgICAg
IHJldHVybiBtX21vZGUgPT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nOworI2Vsc2UKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworI2VuZGlmCisgICAgfQorCiAgICAgRnVuY3Rpb25QYXJzZXI8QWlySVJH
ZW5lcmF0b3I+KiBtX3BhcnNlciB7IG51bGxwdHIgfTsKICAgICBjb25zdCBNb2R1bGVJbmZvcm1h
dGlvbiYgbV9pbmZvOwogICAgIGNvbnN0IE1lbW9yeU1vZGUgbV9tb2RlIHsgTWVtb3J5TW9kZTo6
Qm91bmRzQ2hlY2tpbmcgfTsKQEAgLTk2NCw3ICs5NzMsNyBAQCBBaXJJUkdlbmVyYXRvcjo6QWly
SVJHZW5lcmF0b3IoY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mIGluZm8sIEIzOjpQcm9jZWR1cmUm
IHBybwogICAgIGlmICghQ29udGV4dDo6dXNlRmFzdFRMUygpKQogICAgICAgICBtX2NvZGUucGlu
UmVnaXN0ZXIobV93YXNtQ29udGV4dEluc3RhbmNlR1BSKTsKIAotICAgIGlmIChtb2RlICE9IE1l
bW9yeU1vZGU6OlNpZ25hbGluZykgeworICAgIGlmIChtb2RlID09IE1lbW9yeU1vZGU6OkJvdW5k
c0NoZWNraW5nKSB7CiAgICAgICAgIG1fYm91bmRzQ2hlY2tpbmdTaXplR1BSID0gcGlubmVkUmVn
cy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlcjsKICAgICAgICAgbV9jb2RlLnBpblJlZ2lzdGVy
KG1fYm91bmRzQ2hlY2tpbmdTaXplR1BSKTsKICAgICB9CkBAIC0xODAwLDYgKzE4MDksNyBAQCBp
bmxpbmUgQWlySVJHZW5lcmF0b3I6OkV4cHJlc3Npb25UeXBlIEFpcklSR2VuZXJhdG9yOjplbWl0
Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcgogICAgICAgICBicmVhazsKICAgICB9CiAKKyNpZiBFTkFC
TEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBjYXNlIE1lbW9yeU1vZGU6OlNp
Z25hbGluZzogewogICAgICAgICAvLyBXZSd2ZSB2aXJ0dWFsbHkgbWFwcGVkIDRHaUIrcmVkem9u
ZSBmb3IgdGhpcyBtZW1vcnkuIE9ubHkgdGhlIHVzZXItYWxsb2NhdGVkIHBhZ2VzIGFyZSBhZGRy
ZXNzYWJsZSwgY29udGlndW91c2x5IGluIHJhbmdlIFswLCBjdXJyZW50XSwKICAgICAgICAgLy8g
YW5kIGV2ZXJ5dGhpbmcgYWJvdmUgaXMgbWFwcGVkIFBST1RfTk9ORS4gV2UgZG9uJ3QgbmVlZCB0
byBwZXJmb3JtIGFueSBleHBsaWNpdCBib3VuZHMgY2hlY2sgaW4gdGhlIDRHaUIgcmFuZ2UgYmVj
YXVzZSBXZWJBc3NlbWJseSByZWdpc3RlcgpAQCAtMTgyNiw2ICsxODM2LDcgQEAgaW5saW5lIEFp
cklSR2VuZXJhdG9yOjpFeHByZXNzaW9uVHlwZSBBaXJJUkdlbmVyYXRvcjo6ZW1pdENoZWNrQW5k
UHJlcGFyZVBvaW50ZXIKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9CisjZW5kaWYK
ICAgICB9CiAKICAgICBhcHBlbmQoQWRkNjQsIFRtcChtX21lbW9yeUJhc2VHUFIpLCByZXN1bHQp
OwpAQCAtMzcwOSw3ICszNzIwLDcgQEAgYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRkQ2FsbCh1aW50
MzJfdCBmdW5jdGlvbkluZGV4LCBjb25zdCBUeXBlRGVmaW5pdGlvbiYgc2lnbmEKICAgICAgICAg
YXV0byogcGF0Y2hwb2ludCA9IHBhaXIuZmlyc3Q7CiAgICAgICAgIGF1dG8gZXhjZXB0aW9uSGFu
ZGxlID0gcGFpci5zZWNvbmQ7CiAgICAgICAgIC8vIFdlIG5lZWQgdG8gY2xvYmJlciB0aGUgc2l6
ZSByZWdpc3RlciBzaW5jZSB0aGUgTExJbnQgYWx3YXlzIGJvdW5kcyBjaGVja3MKLSAgICAgICAg
aWYgKG1fbW9kZSA9PSBNZW1vcnlNb2RlOjpTaWduYWxpbmcgfHwgbV9pbmZvLm1lbW9yeS5pc1No
YXJlZCgpKQorICAgICAgICBpZiAodXNlU2lnbmFsaW5nTWVtb3J5KCkgfHwgbV9pbmZvLm1lbW9y
eS5pc1NoYXJlZCgpKQogICAgICAgICAgICAgcGF0Y2hwb2ludC0+Y2xvYmJlckxhdGUoUmVnaXN0
ZXJTZXQgeyBQaW5uZWRSZWdpc3RlckluZm86OmdldCgpLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lz
dGVyIH0pOwogICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoWz0sIHRoaXNdIChDQ2Fs
bEhlbHBlcnMmIGppdCwgY29uc3QgQjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1z
KSB7CiAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3Jh
dGNoKGppdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJ
UkdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVy
YXRvci5jcHAKaW5kZXggZDU2ZWZmNzhiMDg2Li5jYjJiNzA5YWIzYzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKQEAgLTUyNiw2ICs1
MjYsMTUgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHNldChkc3QsIGdldChzcmMpKTsKICAg
ICB9CiAKKyAgICBib29sIHVzZVNpZ25hbGluZ01lbW9yeSgpIGNvbnN0CisgICAgeworI2lmIEVO
QUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQorICAgICAgICByZXR1cm4gbV9tb2Rl
ID09IE1lbW9yeU1vZGU6OlNpZ25hbGluZzsKKyNlbHNlCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyNlbmRpZgorICAgIH0KKwogICAgIEZ1bmN0aW9uUGFyc2VyPEIzSVJHZW5lcmF0b3I+KiBtX3Bh
cnNlciB7IG51bGxwdHIgfTsKICAgICBjb25zdCBNb2R1bGVJbmZvcm1hdGlvbiYgbV9pbmZvOwog
ICAgIGNvbnN0IE1lbW9yeU1vZGUgbV9tb2RlIHsgTWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcg
fTsKQEAgLTYzOSw3ICs2NDgsNyBAQCBCM0lSR2VuZXJhdG9yOjpCM0lSR2VuZXJhdG9yKGNvbnN0
IE1vZHVsZUluZm9ybWF0aW9uJiBpbmZvLCBQcm9jZWR1cmUmIHByb2NlZHVyZQogICAgIGlmICgh
Q29udGV4dDo6dXNlRmFzdFRMUygpKQogICAgICAgICBtX3Byb2MucGluUmVnaXN0ZXIobV93YXNt
Q29udGV4dEluc3RhbmNlR1BSKTsKIAotICAgIGlmIChtb2RlICE9IE1lbW9yeU1vZGU6OlNpZ25h
bGluZykgeworICAgIGlmIChtb2RlID09IE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nKSB7CiAg
ICAgICAgIG1fYm91bmRzQ2hlY2tpbmdTaXplR1BSID0gcGlubmVkUmVncy5ib3VuZHNDaGVja2lu
Z1NpemVSZWdpc3RlcjsKICAgICAgICAgbV9wcm9jLnBpblJlZ2lzdGVyKG1fYm91bmRzQ2hlY2tp
bmdTaXplR1BSKTsKICAgICB9CkBAIC02NTEsOSArNjYwLDExIEBAIEIzSVJHZW5lcmF0b3I6OkIz
SVJHZW5lcmF0b3IoY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mIGluZm8sIFByb2NlZHVyZSYgcHJv
Y2VkdXJlCiAgICAgICAgICAgICBjYXNlIE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nOgogICAg
ICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQocGlubmVkR1BSLCBtX2JvdW5kc0NoZWNraW5nU2l6
ZUdQUiA9PSBwaW5uZWRHUFIpOwogICAgICAgICAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShX
RUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgICAgICAgICAgY2FzZSBNZW1vcnlNb2Rl
OjpTaWduYWxpbmc6CiAgICAgICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChwaW5uZWRHUFIsIElu
dmFsaWRHUFJSZWcgPT0gcGlubmVkR1BSKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyNlbmRp
ZgogICAgICAgICAgICAgfQogICAgICAgICAgICAgdGhpcy0+ZW1pdEV4Y2VwdGlvbkNoZWNrKGpp
dCwgRXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpOwogICAgICAgICB9KTsK
QEAgLTkxNSw5ICs5MjYsMTMgQEAgYXV0byBCM0lSR2VuZXJhdG9yOjphZGRBcmd1bWVudHMoY29u
c3QgVHlwZURlZmluaXRpb24mIHNpZ25hdHVyZSkgLT4gUGFydGlhbFJlc3UKICAgICAgICAgQjM6
OlR5cGUgdHlwZSA9IHRvQjNUeXBlKHNpZ25hdHVyZS5hczxGdW5jdGlvblNpZ25hdHVyZT4oKS0+
YXJndW1lbnRUeXBlKGkpKTsKICAgICAgICAgQjM6OlZhbHVlKiBhcmd1bWVudDsKICAgICAgICAg
YXV0byByZXAgPSB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldOwotICAgICAgICBpZiAocmVwLmlzUmVn
KCkpIHsKLSAgICAgICAgICAgIGFyZ3VtZW50ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxC
Mzo6QXJndW1lbnRSZWdWYWx1ZT4obV9wcm9jLCBPcmlnaW4oKSwgcmVwLnJlZygpKTsKLSAgICAg
ICAgICAgIGlmICh0eXBlID09IEIzOjpJbnQzMiB8fCB0eXBlID09IEIzOjpGbG9hdCkKKyAgICAg
ICAgaWYgKHJlcC5pc0dQUigpKSB7CisgICAgICAgICAgICBhcmd1bWVudCA9IG1fY3VycmVudEJs
b2NrLT5hcHBlbmROZXc8QjM6OkFyZ3VtZW50UmVnVmFsdWU+KG1fcHJvYywgT3JpZ2luKCksIHJl
cC5qc3IoKS5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgaWYgKHR5cGUgPT0gQjM6OkludDMy
KQorICAgICAgICAgICAgICAgIGFyZ3VtZW50ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxC
Mzo6VmFsdWU+KG1fcHJvYywgQjM6OlRydW5jLCBPcmlnaW4oKSwgYXJndW1lbnQpOworICAgICAg
ICB9IGVsc2UgaWYgKHJlcC5pc0ZQUigpKSB7CisgICAgICAgICAgICBhcmd1bWVudCA9IG1fY3Vy
cmVudEJsb2NrLT5hcHBlbmROZXc8QjM6OkFyZ3VtZW50UmVnVmFsdWU+KG1fcHJvYywgT3JpZ2lu
KCksIHJlcC5mcHIoKSk7CisgICAgICAgICAgICBpZiAodHlwZSA9PSBCMzo6RmxvYXQpCiAgICAg
ICAgICAgICAgICAgYXJndW1lbnQgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PEIzOjpWYWx1
ZT4obV9wcm9jLCBCMzo6VHJ1bmMsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICBBU1NFUlQocmVwLmlzU3RhY2soKSk7CkBAIC0xNDQ2LDYgKzE0NjEs
NyBAQCBpbmxpbmUgVmFsdWUqIEIzSVJHZW5lcmF0b3I6OmVtaXRDaGVja0FuZFByZXBhcmVQb2lu
dGVyKFZhbHVlKiBwb2ludGVyLCB1aW50MzJfdAogICAgICAgICBicmVhazsKICAgICB9CiAKKyNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBjYXNlIE1lbW9yeU1v
ZGU6OlNpZ25hbGluZzogewogICAgICAgICAvLyBXZSd2ZSB2aXJ0dWFsbHkgbWFwcGVkIDRHaUIr
cmVkem9uZSBmb3IgdGhpcyBtZW1vcnkuIE9ubHkgdGhlIHVzZXItYWxsb2NhdGVkIHBhZ2VzIGFy
ZSBhZGRyZXNzYWJsZSwgY29udGlndW91c2x5IGluIHJhbmdlIFswLCBjdXJyZW50XSwKICAgICAg
ICAgLy8gYW5kIGV2ZXJ5dGhpbmcgYWJvdmUgaXMgbWFwcGVkIFBST1RfTk9ORS4gV2UgZG9uJ3Qg
bmVlZCB0byBwZXJmb3JtIGFueSBleHBsaWNpdCBib3VuZHMgY2hlY2sgaW4gdGhlIDRHaUIgcmFu
Z2UgYmVjYXVzZSBXZWJBc3NlbWJseSByZWdpc3RlcgpAQCAtMTQ2Myw2ICsxNDc5LDcgQEAgaW5s
aW5lIFZhbHVlKiBCM0lSR2VuZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihWYWx1
ZSogcG9pbnRlciwgdWludDMyX3QKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9Cisj
ZW5kaWYKICAgICB9CiAKICAgICBwb2ludGVyID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxW
YWx1ZT4obV9wcm9jLCBaRXh0MzIsIG9yaWdpbigpLCBwb2ludGVyKTsKQEAgLTE0OTYsNyArMTUx
Myw3IEBAIGlubGluZSB1aW50MzJfdCBzaXplT2ZMb2FkT3AoTG9hZE9wVHlwZSBvcCkKIAogaW5s
aW5lIEIzOjpLaW5kIEIzSVJHZW5lcmF0b3I6Om1lbW9yeUtpbmQoQjM6Ok9wY29kZSBtZW1vcnlP
cCkKIHsKLSAgICBpZiAobV9tb2RlID09IE1lbW9yeU1vZGU6OlNpZ25hbGluZyB8fCBtX2luZm8u
bWVtb3J5LmlzU2hhcmVkKCkpCisgICAgaWYgKHVzZVNpZ25hbGluZ01lbW9yeSgpIHx8IG1faW5m
by5tZW1vcnkuaXNTaGFyZWQoKSkKICAgICAgICAgcmV0dXJuIHRyYXBwaW5nKG1lbW9yeU9wKTsK
ICAgICByZXR1cm4gbWVtb3J5T3A7CiB9CkBAIC0yOTg5LDcgKzMwMDYsNyBAQCBhdXRvIEIzSVJH
ZW5lcmF0b3I6OmFkZENhbGwodWludDMyX3QgZnVuY3Rpb25JbmRleCwgY29uc3QgVHlwZURlZmlu
aXRpb24mIHNpZ25hdAogICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmVmZmVjdHMucmVhZHNQ
aW5uZWQgPSB0cnVlOwogCiAgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBjbG9iYmVyIHRo
ZSBzaXplIHJlZ2lzdGVyIHNpbmNlIHRoZSBMTEludCBhbHdheXMgYm91bmRzIGNoZWNrcwotICAg
ICAgICAgICAgICAgIGlmIChtX21vZGUgPT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nIHx8IG1faW5m
by5tZW1vcnkuaXNTaGFyZWQoKSkKKyAgICAgICAgICAgICAgICBpZiAodXNlU2lnbmFsaW5nTWVt
b3J5KCkgfHwgbV9pbmZvLm1lbW9yeS5pc1NoYXJlZCgpKQogICAgICAgICAgICAgICAgICAgICBw
YXRjaHBvaW50LT5jbG9iYmVyTGF0ZShSZWdpc3RlclNldCB7IFBpbm5lZFJlZ2lzdGVySW5mbzo6
Z2V0KCkuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIgfSk7CiAgICAgICAgICAgICAgICAgcGF0
Y2hwb2ludC0+c2V0R2VuZXJhdG9yKFt0aGlzLCBoYW5kbGUsIHVubGlua2VkV2FzbVRvV2FzbUNh
bGxzLCBmdW5jdGlvbkluZGV4XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IEIzOjpTdGFja21h
cEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgewogICAgICAgICAgICAgICAgICAgICBBbGxvd01h
Y3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQmluZGluZy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtQmluZGluZy5jcHAKaW5kZXggZWRjNzBiZWEwOGFmLi4zMjcyODk5
NDlhZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5kaW5n
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQmluZGluZy5jcHAKQEAg
LTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAKICNpbmNsdWRlICJDQ2Fs
bEhlbHBlcnMuaCIKKyNpbmNsdWRlICJEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2Uu
aCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2FzbUNhbGxpbmdDb252ZW50
aW9uLmgiCiAjaW5jbHVkZSAiV2FzbUluc3RhbmNlLmgiCkBAIC00MSwxOCArNDIsMjEgQEAgRXhw
ZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWls
dXJlPiB3YXNtVG9XYXNtKHVuc2kKIHsKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgdW5pcXVpZnkg
dGhlIHN0dWJzIGJhc2VkIG9uIHNpZ25hdHVyZSArIGluZGV4IHRvIHNlZSBpZiB0aGlzIHNhdmVz
IG1lbW9yeS4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTg0MTU3Ci0KLSAgICBjb25zdCBQaW5uZWRSZWdpc3RlckluZm8mIHBpbm5lZFJlZ3MgPSBQaW5u
ZWRSZWdpc3RlckluZm86OmdldCgpOwogICAgIEpJVCBqaXQ7CiAKICAgICBHUFJSZWcgc2NyYXRj
aCA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMF07CisjaWYg
VVNFKEpTVkFMVUUzMl82NCkKKyAgICBHUFJSZWcgYmFzZU1lbW9yeSA9IHdhc21DYWxsaW5nQ29u
dmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMV07CisgICAgR1BSUmVnIHNpemVSZWdBc1Nj
cmF0Y2ggPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzJdOwor
I2Vsc2UKKyAgICBjb25zdCBQaW5uZWRSZWdpc3RlckluZm8mIHBpbm5lZFJlZ3MgPSBQaW5uZWRS
ZWdpc3RlckluZm86OmdldCgpOwogICAgIEdQUlJlZyBiYXNlTWVtb3J5ID0gcGlubmVkUmVncy5i
YXNlTWVtb3J5UG9pbnRlcjsKLSAgICBBU1NFUlQoYmFzZU1lbW9yeSAhPSBHUFJSZWc6OkludmFs
aWRHUFJSZWcpOwotICAgIEFTU0VSVChiYXNlTWVtb3J5ICE9IHNjcmF0Y2gpOwotICAgIEFTU0VS
VChwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyICE9IGJhc2VNZW1vcnkpOwot
ICAgIEFTU0VSVChwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyICE9IHNjcmF0
Y2gpOwogICAgIEdQUlJlZyBzaXplUmVnQXNTY3JhdGNoID0gcGlubmVkUmVncy5ib3VuZHNDaGVj
a2luZ1NpemVSZWdpc3RlcjsKKyNlbmRpZgorICAgIEFTU0VSVChiYXNlTWVtb3J5ICE9IEdQUlJl
Zzo6SW52YWxpZEdQUlJlZyk7CiAgICAgQVNTRVJUKHNpemVSZWdBc1NjcmF0Y2ggIT0gR1BSUmVn
OjpJbnZhbGlkR1BSUmVnKTsKKyAgICBBU1NFUlQoc2NyYXRjaCAhPSBHUFJSZWc6OkludmFsaWRH
UFJSZWcpOworICAgIEFTU0VSVChub092ZXJsYXAoc2NyYXRjaCwgYmFzZU1lbW9yeSwgc2l6ZVJl
Z0FzU2NyYXRjaCkpOwogCiAgICAgLy8gQjMncyBjYWxsIGNvZGVnZW4gZW5zdXJlcyB0aGF0IHRo
ZSBKU0NlbGwgaXMgYSBXZWJBc3NlbWJseUZ1bmN0aW9uLgogICAgIGppdC5sb2FkV2FzbUNvbnRl
eHRJbnN0YW5jZShzaXplUmVnQXNTY3JhdGNoKTsgLy8gT2xkIEluc3RhbmNlKgpAQCAtNjUsNiAr
NjksNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwg
QmluZGluZ0ZhaWx1cmU+IHdhc21Ub1dhc20odW5zaQogICAgIGppdC5sb2FkUHRyKEpJVDo6QWRk
cmVzcyhzaXplUmVnQXNTY3JhdGNoLCBJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRTdGFja0xpbWl0
KCkpLCBzaXplUmVnQXNTY3JhdGNoKTsKICAgICBqaXQuc3RvcmVQdHIoc2l6ZVJlZ0FzU2NyYXRj
aCwgSklUOjpBZGRyZXNzKGJhc2VNZW1vcnksIEluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZFN0YWNr
TGltaXQoKSkpOwogCisjaWYgIUNQVShBUk0pIC8vIEFSTSBoYXMgbm8gcGlubmVkIHJlZ2lzdGVy
cyBmb3IgV2FzbSBNZW1vcnksIHNvIG5vIG5lZWQgdG8gc2V0IHRoZW0gdXAKICAgICAvLyBGSVhN
RSB0aGUgZm9sbG93aW5nIGNvZGUgYXNzdW1lcyB0aGF0IGFsbCBXYXNtOjpJbnN0YW5jZSBoYXZl
IHRoZSBzYW1lIHBpbm5lZCByZWdpc3RlcnMuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjI5NTIKICAgICAvLyBTZXQgdXAgdGhlIGNhbGxlZSdzIGJhc2VNZW1vcnkg
cmVnaXN0ZXIgYXMgd2VsbCBhcyB0aGUgbWVtb3J5IHNpemUgcmVnaXN0ZXJzLgogICAgIHsKQEAg
LTcyLDYgKzc3LDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0
clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9XYXNtKHVuc2kKICAgICAgICAgaml0LmxvYWRQ
dHIoSklUOjpBZGRyZXNzKGJhc2VNZW1vcnksIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hl
ZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7IC8vIFdhc206Ok1lbW9yeTo6VGFnZ2VkQXJyYXlTdG9y
YWdlUHRyPHZvaWQ+ICh2b2lkKikuCiAgICAgICAgIGppdC5jYWdlQ29uZGl0aW9uYWxseUFuZFVu
dGFnKEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJhc2VNZW1vcnksIHBpbm5lZFJlZ3MuYm91bmRzQ2hl
Y2tpbmdTaXplUmVnaXN0ZXIsIHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRj
aEdQUnNbMV0pOwogICAgIH0KKyNlbmRpZgogCiAgICAgLy8gVGFpbCBjYWxsIGludG8gdGhlIGNh
bGxlZSBXZWJBc3NlbWJseSBmdW5jdGlvbi4KICAgICBqaXQubG9hZFB0cihKSVQ6OkFkZHJlc3Mo
c2NyYXRjaCksIHNjcmF0Y2gpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUNhbGxlZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVl
LmNwcAppbmRleCBhMzIxYzUyZjE1ZWMuLjMyMDJmNTQ4MGNhNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUNhbGxlZS5jcHAKQEAgLTEzMSw2ICsxMzEsOCBAQCBSZWdpc3RlckF0
T2Zmc2V0TGlzdCogTExJbnRDYWxsZWU6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKQogICAgICAgICBy
ZWdpc3RlcnMuc2V0KEdQUkluZm86OnJlZ0NTMik7IC8vIFBCCiAjZWxpZiBDUFUoQVJNNjQpIHx8
IENQVShSSVNDVjY0KQogICAgICAgICByZWdpc3RlcnMuc2V0KEdQUkluZm86OnJlZ0NTNyk7IC8v
IFBCCisjZWxpZiBDUFUoQVJNKQorICAgICAgICByZWdpc3RlcnMuc2V0KEdQUkluZm86OnJlZ0NT
MSk7IC8vIFBCCiAjZWxzZQogI2Vycm9yIFVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZS4KICNlbmRp
ZgpAQCAtMTU4LDYgKzE2MCw3IEBAIGNvbnN0IFdhc21JbnN0cnVjdGlvbiogTExJbnRDYWxsZWU6
Om91dE9mTGluZUp1bXBUYXJnZXQoY29uc3QgV2FzbUluc3RydWN0aW9uKiBwCiAgICAgcmV0dXJu
IG1faW5zdHJ1Y3Rpb25zLT5hdChvZmZzZXQgKyB0YXJnZXQpLnB0cigpOwogfQogCisjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZX0IzSklUKQogdm9pZCBPcHRpbWl6aW5nSklUQ2FsbGVlOjpsaW5rRXhj
ZXB0aW9uSGFuZGxlcnMoVmVjdG9yPFVubGlua2VkSGFuZGxlckluZm8+IHVubGlua2VkRXhjZXB0
aW9uSGFuZGxlcnMsIFZlY3RvcjxDb2RlTG9jYXRpb25MYWJlbDxFeGNlcHRpb25IYW5kbGVyUHRy
VGFnPj4gZXhjZXB0aW9uSGFuZGxlckxvY2F0aW9ucykKIHsKICAgICBzaXplX3QgY291bnQgPSB1
bmxpbmtlZEV4Y2VwdGlvbkhhbmRsZXJzLnNpemUoKTsKQEAgLTE4NCw3ICsxODcsNyBAQCBjb25z
dCBTdGFja01hcCYgT3B0aW1pemluZ0pJVENhbGxlZTo6c3RhY2ttYXAoQ2FsbFNpdGVJbmRleCBj
YWxsU2l0ZUluZGV4KSBjb25zdAogICAgIFJFTEVBU0VfQVNTRVJUKGl0ZXIgIT0gbV9zdGFja21h
cHMuZW5kKCkpOwogICAgIHJldHVybiBpdGVyLT52YWx1ZTsKIH0KLQorI2VuZGlmCiAKIH0gfSAv
LyBuYW1lc3BhY2UgSlNDOjpXYXNtCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21DYWxsZWVHcm91cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtQ2FsbGVlR3JvdXAuY3BwCmluZGV4IDFlYTQ1Y2E0YTZlOS4uNTE5ZDIwOTZhZDYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlR3JvdXAuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWVHcm91cC5jcHAKQEAgLTE2
MCwxNyArMTYwLDIxIEBAIHZvaWQgQ2FsbGVlR3JvdXA6OmNvbXBpbGVBc3luYyhDb250ZXh0KiBj
b250ZXh0LCBBc3luY0NvbXBpbGF0aW9uQ2FsbGJhY2smJiB0YXNrCiAKIGJvb2wgQ2FsbGVlR3Jv
dXA6OmlzU2FmZVRvUnVuKE1lbW9yeU1vZGUgbWVtb3J5TW9kZSkKIHsKKyAgICBVTlVTRURfUEFS
QU0obWVtb3J5TW9kZSk7CisKICAgICBpZiAoIXJ1bm5hYmxlKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIHN3aXRjaCAobV9tb2RlKSB7CiAgICAgY2FzZSBXYXNtOjpNZW1vcnlNb2Rl
OjpCb3VuZHNDaGVja2luZzoKICAgICAgICAgcmV0dXJuIHRydWU7CisjaWYgRU5BQkxFKFdFQkFT
U0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgY2FzZSBXYXNtOjpNZW1vcnlNb2RlOjpTaWdu
YWxpbmc6CiAgICAgICAgIC8vIENvZGUgYmVpbmcgaW4gU2lnbmFsaW5nIG1vZGUgbWVhbnMgdGhh
dCBpdCBwZXJmb3JtcyBubyBib3VuZHMgY2hlY2tzLgogICAgICAgICAvLyBJdHMgbWVtb3J5LCBl
dmVuIGlmIGVtcHR5LCBhYnNvbHV0ZWx5IG11c3QgYWxzbyBiZSBpbiBTaWduYWxpbmcgbW9kZQog
ICAgICAgICAvLyBiZWNhdXNlIHRoZSBwYWdlIHByb3RlY3Rpb24gZGV0ZWN0cyBvdXQtb2YtYm91
bmRzIGFjY2Vzc2VzLgogICAgICAgICByZXR1cm4gbWVtb3J5TW9kZSA9PSBXYXNtOjpNZW1vcnlN
b2RlOjpTaWduYWxpbmc7CisjZW5kaWYKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmNwcAppbmRleCAyMDNjODQzYWU4ZTYuLmVi
MDkwOTU4MTg0MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNh
bGxpbmdDb252ZW50aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
Q2FsbGluZ0NvbnZlbnRpb24uY3BwCkBAIC00MCw3ICs0MCw3IEBAIGNvbnN0IEpTQ2FsbGluZ0Nv
bnZlbnRpb24mIGpzQ2FsbGluZ0NvbnZlbnRpb24oKQogICAgICAgICBSZWdpc3RlclNldCBjYWxs
ZXJTYXZlUmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQ6OmFsbFJlZ2lzdGVycygpOwogICAgICAgICBj
YWxsZXJTYXZlUmVnaXN0ZXJzLmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdpc3Rl
cnMoKSk7CiAKLSAgICAgICAgc3RhdGljSlNDYWxsaW5nQ29udmVudGlvbi5jb25zdHJ1Y3QoVmVj
dG9yPFJlZz4oKSwgVmVjdG9yPFJlZz4oKSwgUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdpc3Rl
cnMoKSwgV1RGTW92ZShjYWxsZXJTYXZlUmVnaXN0ZXJzKSk7CisgICAgICAgIHN0YXRpY0pTQ2Fs
bGluZ0NvbnZlbnRpb24uY29uc3RydWN0KFZlY3RvcjxKU1ZhbHVlUmVncz4oKSwgVmVjdG9yPEZQ
UlJlZz4oKSwgUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKSwgV1RGTW92ZShjYWxs
ZXJTYXZlUmVnaXN0ZXJzKSk7CiAgICAgfSk7CiAKICAgICByZXR1cm4gc3RhdGljSlNDYWxsaW5n
Q29udmVudGlvbjsKQEAgLTUxLDMxICs1MSw1MSBAQCBjb25zdCBXYXNtQ2FsbGluZ0NvbnZlbnRp
b24mIHdhc21DYWxsaW5nQ29udmVudGlvbigpCiAgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3ll
ZDxXYXNtQ2FsbGluZ0NvbnZlbnRpb24+IHN0YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbjsKICAg
ICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgc3RhdGljV2FzbUNhbGxpbmdDb252ZW50aW9uRmxhZzsK
ICAgICBzdGQ6OmNhbGxfb25jZShzdGF0aWNXYXNtQ2FsbGluZ0NvbnZlbnRpb25GbGFnLCBbXSAo
KSB7Ci0gICAgICAgIFZlY3RvcjxSZWc+IGdwckFyZ3VtZW50UmVnaXN0ZXJzKEdQUkluZm86Om51
bWJlck9mQXJndW1lbnRSZWdpc3RlcnMpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgR1BSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVyczsgKytpKQotICAgICAgICAgICAg
Z3ByQXJndW1lbnRSZWdpc3RlcnNbaV0gPSBHUFJJbmZvOjp0b0FyZ3VtZW50UmVnaXN0ZXIoaSk7
CisjaWYgVVNFKEpTVkFMVUU2NCkgLy8gT25lIHZhbHVlIHBlciBHUFIKKyAgICAgICAgY29uc3Rl
eHByIHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRKU1JzID0gR1BSSW5mbzo6bnVtYmVyT2ZBcmd1
bWVudFJlZ2lzdGVyczsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpIC8vIE9uZSB2YWx1ZSBwZXIg
Y29uc2VjdXRpdmUgR1BSIHBhaXIKKyAgICAgICAgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9m
QXJndW1lbnRKU1JzID0gR1BSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyAvIDI7Cisj
ZW5kaWYKKyAgICAgICAgVmVjdG9yPEpTVmFsdWVSZWdzPiBqc3JBcmd1bWVudFJlZ2lzdGVycyhu
dW1iZXJPZkFyZ3VtZW50SlNScyk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBu
dW1iZXJPZkFyZ3VtZW50SlNSczsgKytpKSB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAg
ICAgIGpzckFyZ3VtZW50UmVnaXN0ZXJzW2ldID0gSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjp0b0Fy
Z3VtZW50UmVnaXN0ZXIoaSkgfTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAg
ICBqc3JBcmd1bWVudFJlZ2lzdGVyc1tpXSA9IEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6dG9Bcmd1
bWVudFJlZ2lzdGVyKDIgKiBpICsgMSksIEdQUkluZm86OnRvQXJndW1lbnRSZWdpc3RlcigyICog
aSkgfTsKKyNlbmRpZgorICAgICAgICB9CiAKLSAgICAgICAgVmVjdG9yPFJlZz4gZnByQXJndW1l
bnRSZWdpc3RlcnMoRlBSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyk7CisgICAgICAg
IFZlY3RvcjxGUFJSZWc+IGZwckFyZ3VtZW50UmVnaXN0ZXJzKEZQUkluZm86Om51bWJlck9mQXJn
dW1lbnRSZWdpc3RlcnMpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgRlBSSW5m
bzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVyczsgKytpKQogICAgICAgICAgICAgZnByQXJndW1l
bnRSZWdpc3RlcnNbaV0gPSBGUFJJbmZvOjp0b0FyZ3VtZW50UmVnaXN0ZXIoaSk7CiAKICAgICAg
ICAgUmVnaXN0ZXJTZXQgc2NyYXRjaCA9IFJlZ2lzdGVyU2V0OjphbGxHUFJzKCk7Ci0gICAgICAg
IHNjcmF0Y2guZXhjbHVkZShSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpKTsKKyAg
ICAgICAgc2NyYXRjaC5leGNsdWRlKFJlZ2lzdGVyU2V0Ojp2bUNhbGxlZVNhdmVSZWdpc3RlcnMo
KSk7CiAgICAgICAgIHNjcmF0Y2guZXhjbHVkZShSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVn
aXN0ZXJzKCkpOwogICAgICAgICBzY3JhdGNoLmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6OnJlc2VydmVk
SGFyZHdhcmVSZWdpc3RlcnMoKSk7CiAgICAgICAgIHNjcmF0Y2guZXhjbHVkZShSZWdpc3RlclNl
dDo6c3RhY2tSZWdpc3RlcnMoKSk7Ci0gICAgICAgIGZvciAoUmVnIHJlZyA6IGdwckFyZ3VtZW50
UmVnaXN0ZXJzKQotICAgICAgICAgICAgc2NyYXRjaC5jbGVhcihyZWcpOworICAgICAgICBmb3Ig
KEpTVmFsdWVSZWdzIGpzciA6IGpzckFyZ3VtZW50UmVnaXN0ZXJzKSB7CisgICAgICAgICAgICBz
Y3JhdGNoLmNsZWFyKGpzci5wYXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisg
ICAgICAgICAgICBzY3JhdGNoLmNsZWFyKGpzci50YWdHUFIoKSk7CisjZW5kaWYKKyAgICAgICAg
fQogCiAgICAgICAgIFZlY3RvcjxHUFJSZWc+IHNjcmF0Y2hHUFJzOwogICAgICAgICBmb3IgKFJl
ZyByZWcgOiBzY3JhdGNoKQogICAgICAgICAgICAgc2NyYXRjaEdQUnMuYXBwZW5kKHJlZy5ncHIo
KSk7CisKKyAgICAgICAgLy8gTmVlZCBhdCBsZWFzdCBvbmUgSlNWYWx1ZSBhbmQgYW4gYWRkaXRp
b25hbCBHUFIKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBSRUxFQVNFX0FTU0VSVChzY3Jh
dGNoR1BScy5zaXplKCkgPj0gMik7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBS
RUxFQVNFX0FTU0VSVChzY3JhdGNoR1BScy5zaXplKCkgPj0gMyk7CisjZW5kaWYKIAogICAgICAg
ICBSZWdpc3RlclNldCBjYWxsZXJTYXZlUmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQ6OmFsbFJlZ2lz
dGVycygpOwogICAgICAgICBjYWxsZXJTYXZlUmVnaXN0ZXJzLmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6
OmNhbGxlZVNhdmVSZWdpc3RlcnMoKSk7CiAKLSAgICAgICAgc3RhdGljV2FzbUNhbGxpbmdDb252
ZW50aW9uLmNvbnN0cnVjdChXVEZNb3ZlKGdwckFyZ3VtZW50UmVnaXN0ZXJzKSwgV1RGTW92ZShm
cHJBcmd1bWVudFJlZ2lzdGVycyksIFdURk1vdmUoc2NyYXRjaEdQUnMpLCBSZWdpc3RlclNldDo6
Y2FsbGVlU2F2ZVJlZ2lzdGVycygpLCBXVEZNb3ZlKGNhbGxlclNhdmVSZWdpc3RlcnMpKTsKKyAg
ICAgICAgc3RhdGljV2FzbUNhbGxpbmdDb252ZW50aW9uLmNvbnN0cnVjdChXVEZNb3ZlKGpzckFy
Z3VtZW50UmVnaXN0ZXJzKSwgV1RGTW92ZShmcHJBcmd1bWVudFJlZ2lzdGVycyksIFdURk1vdmUo
c2NyYXRjaEdQUnMpLCBSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpLCBXVEZNb3Zl
KGNhbGxlclNhdmVSZWdpc3RlcnMpKTsKICAgICB9KTsKIAogICAgIHJldHVybiBzdGF0aWNXYXNt
Q2FsbGluZ0NvbnZlbnRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21DYWxsaW5nQ29udmVudGlvbi5oCmluZGV4IDdmMWU2MDk5MTJmNC4uMzEwMjUwOGUwYWE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRp
b24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRp
b24uaApAQCAtNTcsOCArNTcsMTMgQEAgc3RydWN0IENhbGxJbmZvcm1hdGlvbiB7CiAgICAgewog
ICAgICAgICBSZWdpc3RlclNldCB1c2VkUmVzdWx0UmVnaXN0ZXJzOwogICAgICAgICBmb3IgKFZh
bHVlTG9jYXRpb24gbG9jIDogcmVzdWx0cykgewotICAgICAgICAgICAgaWYgKGxvYy5pc1JlZygp
KQotICAgICAgICAgICAgICAgIHVzZWRSZXN1bHRSZWdpc3RlcnMuc2V0KGxvYy5yZWcoKSk7Cisg
ICAgICAgICAgICBpZiAobG9jLmlzR1BSKCkpIHsKKyAgICAgICAgICAgICAgICB1c2VkUmVzdWx0
UmVnaXN0ZXJzLnNldChsb2MuanNyKCkucGF5bG9hZEdQUigpKTsKKyNpZiBVU0UoSlNWQUxVRTMy
XzY0KQorICAgICAgICAgICAgICAgIHVzZWRSZXN1bHRSZWdpc3RlcnMuc2V0KGxvYy5qc3IoKS50
YWdHUFIoKSk7CisjZW5kaWYKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobG9jLmlzRlBSKCkpCisg
ICAgICAgICAgICAgICAgdXNlZFJlc3VsdFJlZ2lzdGVycy5zZXQobG9jLmZwcigpKTsKICAgICAg
ICAgfQogCiAgICAgICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IHNhdmVkUmVncyh1c2VkUmVzdWx0
UmVnaXN0ZXJzLCBSZWdpc3RlckF0T2Zmc2V0TGlzdDo6WmVyb0Jhc2VkKTsKQEAgLTc3LDggKzgy
LDggQEAgY2xhc3MgV2FzbUNhbGxpbmdDb252ZW50aW9uIHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIGhlYWRlclNpemVJbkJ5dGVzID0gQ2FsbEZyYW1lOjpoZWFkZXJT
aXplSW5SZWdpc3RlcnMgKiBzaXplb2YoUmVnaXN0ZXIpOwogCi0gICAgV2FzbUNhbGxpbmdDb252
ZW50aW9uKFZlY3RvcjxSZWc+JiYgZ3BycywgVmVjdG9yPFJlZz4mJiBmcHJzLCBWZWN0b3I8R1BS
UmVnPiYmIHNjcmF0Y2hlcywgUmVnaXN0ZXJTZXQmJiBjYWxsZWVTYXZlcywgUmVnaXN0ZXJTZXQm
JiBjYWxsZXJTYXZlcykKLSAgICAgICAgOiBncHJBcmdzKFdURk1vdmUoZ3BycykpCisgICAgV2Fz
bUNhbGxpbmdDb252ZW50aW9uKFZlY3RvcjxKU1ZhbHVlUmVncz4mJiBqc3JzLCBWZWN0b3I8RlBS
UmVnPiYmIGZwcnMsIFZlY3RvcjxHUFJSZWc+JiYgc2NyYXRjaGVzLCBSZWdpc3RlclNldCYmIGNh
bGxlZVNhdmVzLCBSZWdpc3RlclNldCYmIGNhbGxlclNhdmVzKQorICAgICAgICA6IGpzckFyZ3Mo
V1RGTW92ZShqc3JzKSkKICAgICAgICAgLCBmcHJBcmdzKFdURk1vdmUoZnBycykpCiAgICAgICAg
ICwgcHJvbG9ndWVTY3JhdGNoR1BScyhXVEZNb3ZlKHNjcmF0Y2hlcykpCiAgICAgICAgICwgY2Fs
bGVlU2F2ZVJlZ2lzdGVycyhXVEZNb3ZlKGNhbGxlZVNhdmVzKSkKQEAgLTg4LDEwICs5MywxMSBA
QCBwdWJsaWM6CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2FzbUNhbGxpbmdDb252ZW50aW9u
KTsKIAogcHJpdmF0ZToKLSAgICBBcmd1bWVudExvY2F0aW9uIG1hcnNoYWxsTG9jYXRpb25JbXBs
KENhbGxSb2xlIHJvbGUsIGNvbnN0IFZlY3RvcjxSZWc+JiByZWdBcmdzLCBzaXplX3QmIGNvdW50
LCBzaXplX3QmIHN0YWNrT2Zmc2V0KSBjb25zdAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFJlZ1R5
cGU+CisgICAgQXJndW1lbnRMb2NhdGlvbiBtYXJzaGFsbExvY2F0aW9uSW1wbChDYWxsUm9sZSBy
b2xlLCBjb25zdCBWZWN0b3I8UmVnVHlwZT4mIHJlZ0FyZ3MsIHNpemVfdCYgY291bnQsIHNpemVf
dCYgc3RhY2tPZmZzZXQpIGNvbnN0CiAgICAgewogICAgICAgICBpZiAoY291bnQgPCByZWdBcmdz
LnNpemUoKSkKLSAgICAgICAgICAgIHJldHVybiBBcmd1bWVudExvY2F0aW9uOjpyZWcocmVnQXJn
c1tjb3VudCsrXSk7CisgICAgICAgICAgICByZXR1cm4gQXJndW1lbnRMb2NhdGlvbiB7IHJlZ0Fy
Z3NbY291bnQrK10gfTsKIAogICAgICAgICBjb3VudCsrOwogICAgICAgICBBcmd1bWVudExvY2F0
aW9uIHJlc3VsdCA9IHJvbGUgPT0gQ2FsbFJvbGU6OkNhbGxlciA/IEFyZ3VtZW50TG9jYXRpb246
OnN0YWNrQXJndW1lbnQoc3RhY2tPZmZzZXQpIDogQXJndW1lbnRMb2NhdGlvbjo6c3RhY2soc3Rh
Y2tPZmZzZXQpOwpAQCAtMTEwLDcgKzExNiw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OlJlZjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKICAgICAgICAgY2Fz
ZSBUeXBlS2luZDo6UnR0OgotICAgICAgICAgICAgcmV0dXJuIG1hcnNoYWxsTG9jYXRpb25JbXBs
KHJvbGUsIGdwckFyZ3MsIGdwQXJndW1lbnRDb3VudCwgc3RhY2tPZmZzZXQpOworICAgICAgICAg
ICAgcmV0dXJuIG1hcnNoYWxsTG9jYXRpb25JbXBsKHJvbGUsIGpzckFyZ3MsIGdwQXJndW1lbnRD
b3VudCwgc3RhY2tPZmZzZXQpOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6CiAgICAgICAg
IGNhc2UgVHlwZUtpbmQ6OkY2NDoKICAgICAgICAgICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9u
SW1wbChyb2xlLCBmcHJBcmdzLCBmcEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KTsKQEAgLTE1
NSw4ICsxNjEsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0g
ICAgY29uc3QgVmVjdG9yPFJlZz4gZ3ByQXJnczsKLSAgICBjb25zdCBWZWN0b3I8UmVnPiBmcHJB
cmdzOworICAgIGNvbnN0IFZlY3RvcjxKU1ZhbHVlUmVncz4ganNyQXJnczsKKyAgICBjb25zdCBW
ZWN0b3I8RlBSUmVnPiBmcHJBcmdzOwogICAgIGNvbnN0IFZlY3RvcjxHUFJSZWc+IHByb2xvZ3Vl
U2NyYXRjaEdQUnM7CiAgICAgY29uc3QgUmVnaXN0ZXJTZXQgY2FsbGVlU2F2ZVJlZ2lzdGVyczsK
ICAgICBjb25zdCBSZWdpc3RlclNldCBjYWxsZXJTYXZlUmVnaXN0ZXJzOwpAQCAtMTcxLDggKzE3
Nyw4IEBAIHB1YmxpYzoKICAgICAvLyBXYXNtOjpDb250ZXh0KidzIGluc3RhbmNlLgogICAgIHN0
YXRpYyBjb25zdGV4cHIgcHRyZGlmZl90IGluc3RhbmNlU3RhY2tPZmZzZXQgPSBDYWxsRnJhbWVT
bG90Ojp0aGlzQXJndW1lbnQgKiBzaXplb2YoRW5jb2RlZEpTVmFsdWUpOwogCi0gICAgSlNDYWxs
aW5nQ29udmVudGlvbihWZWN0b3I8UmVnPiYmIGdwcnMsIFZlY3RvcjxSZWc+JiYgZnBycywgUmVn
aXN0ZXJTZXQmJiBjYWxsZWVTYXZlcywgUmVnaXN0ZXJTZXQmJiBjYWxsZXJTYXZlcykKLSAgICAg
ICAgOiBncHJBcmdzKFdURk1vdmUoZ3BycykpCisgICAgSlNDYWxsaW5nQ29udmVudGlvbihWZWN0
b3I8SlNWYWx1ZVJlZ3M+JiYgZ3BycywgVmVjdG9yPEZQUlJlZz4mJiBmcHJzLCBSZWdpc3RlclNl
dCYmIGNhbGxlZVNhdmVzLCBSZWdpc3RlclNldCYmIGNhbGxlclNhdmVzKQorICAgICAgICA6IGpz
ckFyZ3MoV1RGTW92ZShncHJzKSkKICAgICAgICAgLCBmcHJBcmdzKFdURk1vdmUoZnBycykpCiAg
ICAgICAgICwgY2FsbGVlU2F2ZVJlZ2lzdGVycyhXVEZNb3ZlKGNhbGxlZVNhdmVzKSkKICAgICAg
ICAgLCBjYWxsZXJTYXZlUmVnaXN0ZXJzKFdURk1vdmUoY2FsbGVyU2F2ZXMpKQpAQCAtMTgwLDEw
ICsxODYsMTEgQEAgcHVibGljOgogCiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSlNDYWxsaW5n
Q29udmVudGlvbik7CiBwcml2YXRlOgotICAgIEFyZ3VtZW50TG9jYXRpb24gbWFyc2hhbGxMb2Nh
dGlvbkltcGwoQ2FsbFJvbGUgcm9sZSwgY29uc3QgVmVjdG9yPFJlZz4mIHJlZ0FyZ3MsIHNpemVf
dCYgY291bnQsIHNpemVfdCYgc3RhY2tPZmZzZXQpIGNvbnN0CisgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIFJlZ1R5cGU+CisgICAgQXJndW1lbnRMb2NhdGlvbiBtYXJzaGFsbExvY2F0aW9uSW1wbChD
YWxsUm9sZSByb2xlLCBjb25zdCBWZWN0b3I8UmVnVHlwZT4mIHJlZ0FyZ3MsIHNpemVfdCYgY291
bnQsIHNpemVfdCYgc3RhY2tPZmZzZXQpIGNvbnN0CiAgICAgewogICAgICAgICBpZiAoY291bnQg
PCByZWdBcmdzLnNpemUoKSkKLSAgICAgICAgICAgIHJldHVybiBBcmd1bWVudExvY2F0aW9uOjpy
ZWcocmVnQXJnc1tjb3VudCsrXSk7CisgICAgICAgICAgICByZXR1cm4gQXJndW1lbnRMb2NhdGlv
biB7IHJlZ0FyZ3NbY291bnQrK10gfTsKIAogICAgICAgICBjb3VudCsrOwogICAgICAgICBBcmd1
bWVudExvY2F0aW9uIHJlc3VsdCA9IHJvbGUgPT0gQ2FsbFJvbGU6OkNhbGxlciA/IEFyZ3VtZW50
TG9jYXRpb246OnN0YWNrQXJndW1lbnQoc3RhY2tPZmZzZXQpIDogQXJndW1lbnRMb2NhdGlvbjo6
c3RhY2soc3RhY2tPZmZzZXQpOwpAQCAtMjAxLDcgKzIwOCw3IEBAIHByaXZhdGU6CiAgICAgICAg
IGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgog
ICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgotICAgICAgICAgICAgcmV0dXJuIG1hcnNo
YWxsTG9jYXRpb25JbXBsKHJvbGUsIGdwckFyZ3MsIGdwQXJndW1lbnRDb3VudCwgc3RhY2tPZmZz
ZXQpOworICAgICAgICAgICAgcmV0dXJuIG1hcnNoYWxsTG9jYXRpb25JbXBsKHJvbGUsIGpzckFy
Z3MsIGdwQXJndW1lbnRDb3VudCwgc3RhY2tPZmZzZXQpOwogICAgICAgICBjYXNlIFR5cGVLaW5k
OjpGMzI6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2NDoKICAgICAgICAgICAgIHJldHVybiBt
YXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBmcHJBcmdzLCBmcEFyZ3VtZW50Q291bnQsIHN0YWNr
T2Zmc2V0KTsKQEAgLTIyNCwxMiArMjMxLDEyIEBAIHB1YmxpYzoKICAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBzaWduYXR1cmUuYXM8RnVuY3Rpb25TaWduYXR1cmU+KCktPmFyZ3VtZW50
Q291bnQoKTsgKytpKQogICAgICAgICAgICAgcGFyYW1zLmFwcGVuZChtYXJzaGFsbExvY2F0aW9u
KHJvbGUsIHNpZ25hdHVyZS5hczxGdW5jdGlvblNpZ25hdHVyZT4oKS0+YXJndW1lbnRUeXBlKGkp
LCBncEFyZ3VtZW50Q291bnQsIGZwQXJndW1lbnRDb3VudCwgc3RhY2tPZmZzZXQpKTsKIAotICAg
ICAgICBWZWN0b3I8QXJndW1lbnRMb2NhdGlvbiwgMT4gcmVzdWx0cyB7IEFyZ3VtZW50TG9jYXRp
b246OnJlZyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUikgfTsKKyAgICAgICAgVmVjdG9yPEFyZ3Vt
ZW50TG9jYXRpb24sIDE+IHJlc3VsdHMgeyBBcmd1bWVudExvY2F0aW9uIHsgSlNSSW5mbzo6cmV0
dXJuVmFsdWVKU1IgfSB9OwogICAgICAgICByZXR1cm4gQ2FsbEluZm9ybWF0aW9uKFdURk1vdmUo
cGFyYW1zKSwgV1RGTW92ZShyZXN1bHRzKSwgc3RhY2tPZmZzZXQpOwogICAgIH0KIAotICAgIGNv
bnN0IFZlY3RvcjxSZWc+IGdwckFyZ3M7Ci0gICAgY29uc3QgVmVjdG9yPFJlZz4gZnByQXJnczsK
KyAgICBjb25zdCBWZWN0b3I8SlNWYWx1ZVJlZ3M+IGpzckFyZ3M7CisgICAgY29uc3QgVmVjdG9y
PEZQUlJlZz4gZnByQXJnczsKICAgICBjb25zdCBSZWdpc3RlclNldCBjYWxsZWVTYXZlUmVnaXN0
ZXJzOwogICAgIGNvbnN0IFJlZ2lzdGVyU2V0IGNhbGxlclNhdmVSZWdpc3RlcnM7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCmluZGV4IDliZWE0NDg2NDc4MC4uYThk
YTEyMDA0MWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9y
bWF0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCkBAIC00
NDIsNyArNDQyLDkgQEAgc3RydWN0IEVudHJ5cG9pbnQgewogc3RydWN0IEludGVybmFsRnVuY3Rp
b24gewogICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsKICAgICBWZWN0b3I8Q29k
ZUxvY2F0aW9uRGF0YUxhYmVsUHRyPFdhc21FbnRyeVB0clRhZz4+IGNhbGxlZU1vdmVMb2NhdGlv
bnM7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQogICAgIFN0YWNrTWFwcyBzdGFja21h
cHM7CisjZW5kaWYKICAgICBWZWN0b3I8VW5saW5rZWRIYW5kbGVySW5mbz4gZXhjZXB0aW9uSGFu
ZGxlcnM7CiAgICAgRW50cnlwb2ludCBlbnRyeXBvaW50OwogICAgIHVuc2lnbmVkIG9zckVudHJ5
U2NyYXRjaEJ1ZmZlclNpemUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUluZGV4T3JOYW1lLmNwcAppbmRleCA0MTIwYWU2YTk0OTQuLmZiMjFjOTJiZjgxZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwCkBAIC0z
MCwxNiArMzAsMjMgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIAogSW5kZXhP
ck5hbWU6OkluZGV4T3JOYW1lKEluZGV4IGluZGV4LCBzdGQ6OnBhaXI8Y29uc3QgTmFtZSosIFJl
ZlB0cjxOYW1lU2VjdGlvbj4+JiYgbmFtZSkKIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgIHN0
YXRpY19hc3NlcnQoc2l6ZW9mKG1faW5kZXhOYW1lLmluZGV4KSA9PSBzaXplb2YobV9pbmRleE5h
bWUubmFtZSksICJiaXQtdGFnZ2luZyBkZXBlbmRzIG9uIHNpemVzIGJlaW5nIGVxdWFsIik7Ci0K
LSAgICBpZiAoKGluZGV4ICYgYWxsVGFncykgfHwgKGJpdHdpc2VfY2FzdDxJbmRleD4obmFtZS5m
aXJzdCkgJiBhbGxUYWdzKSkKLSAgICAgICAgKnRoaXMgPSBJbmRleE9yTmFtZSgpOwotICAgIGVs
c2UgewotICAgICAgICBpZiAobmFtZS5maXJzdCkKLSAgICAgICAgICAgIG1faW5kZXhOYW1lLm5h
bWUgPSBuYW1lLmZpcnN0OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2luZGV4TmFtZS5p
bmRleCA9IGluZGV4VGFnIHwgaW5kZXg7CisgICAgQVNTRVJUKCEoaW5kZXggJiBhbGxUYWdzKSk7
CisgICAgQVNTRVJUKCEoYml0d2lzZV9jYXN0PEluZGV4PihuYW1lLmZpcnN0KSAmIGFsbFRhZ3Mp
KTsKKyAgICBpZiAobmFtZS5maXJzdCkKKyAgICAgICAgbV9pbmRleE5hbWUubmFtZSA9IG5hbWUu
Zmlyc3Q7CisgICAgZWxzZQorICAgICAgICBtX2luZGV4TmFtZS5pbmRleCA9IGluZGV4VGFnIHwg
aW5kZXg7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGlmIChuYW1lLmZpcnN0KSB7Cisg
ICAgICAgIG1faW5kZXhOYW1lLm5hbWUgPSBuYW1lLmZpcnN0OworICAgICAgICBtX2tpbmQgPSBL
aW5kOjpOYW1lOworICAgIH0gZWxzZSB7CisgICAgICAgIG1faW5kZXhOYW1lLmluZGV4ID0gaW5k
ZXg7CisgICAgICAgIG1fa2luZCA9IEtpbmQ6OkluZGV4OwogICAgIH0KKyNlbmRpZgogICAgIG1f
bmFtZVNlY3Rpb24gPSBXVEZNb3ZlKG5hbWUuc2Vjb25kKTsKIH0KIApAQCAtNDksOCArNTYsOCBA
QCBTdHJpbmcgbWFrZVN0cmluZyhjb25zdCBJbmRleE9yTmFtZSYgaW9uKQogICAgICAgICByZXR1
cm4gIndhc20tc3R1YiJfczsKICAgICBjb25zdCBTdHJpbmcgbW9kdWxlTmFtZSA9IGlvbi5uYW1l
U2VjdGlvbigpLT5tb2R1bGVOYW1lLnNpemUoKSA/IFN0cmluZyhpb24ubmFtZVNlY3Rpb24oKS0+
bW9kdWxlTmFtZS5kYXRhKCksIGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1bGVOYW1lLnNpemUoKSkg
OiBTdHJpbmcoaW9uLm5hbWVTZWN0aW9uKCktPm1vZHVsZUhhc2guZGF0YSgpLCBpb24ubmFtZVNl
Y3Rpb24oKS0+bW9kdWxlSGFzaC5zaXplKCkpOwogICAgIGlmIChpb24uaXNJbmRleCgpKQotICAg
ICAgICByZXR1cm4gbWFrZVN0cmluZyhtb2R1bGVOYW1lLCAiLndhc20tZnVuY3Rpb25bIiwgU3Ry
aW5nOjpudW1iZXIoaW9uLm1faW5kZXhOYW1lLmluZGV4ICYgfkluZGV4T3JOYW1lOjppbmRleFRh
ZyksICddJyk7Ci0gICAgcmV0dXJuIG1ha2VTdHJpbmcobW9kdWxlTmFtZSwgIi53YXNtLWZ1bmN0
aW9uWyIsIFN0cmluZyhpb24ubV9pbmRleE5hbWUubmFtZS0+ZGF0YSgpLCBpb24ubV9pbmRleE5h
bWUubmFtZS0+c2l6ZSgpKSwgJ10nKTsKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcobW9kdWxl
TmFtZSwgIi53YXNtLWZ1bmN0aW9uWyIsIFN0cmluZzo6bnVtYmVyKGlvbi5pbmRleCgpKSwgJ10n
KTsKKyAgICByZXR1cm4gbWFrZVN0cmluZyhtb2R1bGVOYW1lLCAiLndhc20tZnVuY3Rpb25bIiwg
U3RyaW5nKGlvbi5uYW1lKCktPmRhdGEoKSwgaW9uLm5hbWUoKS0+c2l6ZSgpKSwgJ10nKTsKIH0K
IAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUluZGV4T3JOYW1lLmgKaW5kZXggNWVlZWZjODhhZjc2Li4yZDkwMzAxMThmOGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5oCkBAIC00MCwx
NCArNDAsNjcgQEAgc3RydWN0IE5hbWVTZWN0aW9uOwogc3RydWN0IEluZGV4T3JOYW1lIHsKICAg
ICB0eXBlZGVmIHNpemVfdCBJbmRleDsKIAotICAgIEluZGV4T3JOYW1lKCkgeyBtX2luZGV4TmFt
ZS5pbmRleCA9IGVtcHR5VGFnOyB9Ci0gICAgSW5kZXhPck5hbWUoSW5kZXgsIHN0ZDo6cGFpcjxj
b25zdCBOYW1lKiwgUmVmUHRyPE5hbWVTZWN0aW9uPj4mJik7Ci0gICAgYm9vbCBpc0VtcHR5KCkg
Y29uc3QgeyByZXR1cm4gYml0d2lzZV9jYXN0PEluZGV4PihtX2luZGV4TmFtZSkgJiBlbXB0eVRh
ZzsgfQotICAgIGJvb2wgaXNJbmRleCgpIGNvbnN0IHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxJbmRl
eD4obV9pbmRleE5hbWUpICYgaW5kZXhUYWc7IH0KLSAgICBib29sIGlzTmFtZSgpIGNvbnN0IHsg
cmV0dXJuICEoaXNFbXB0eSgpIHx8IGlzTmFtZSgpKTsgfQotICAgIE5hbWVTZWN0aW9uKiBuYW1l
U2VjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZVNlY3Rpb24uZ2V0KCk7IH0KK3ByaXZhdGU6
CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBlbnVtIGNsYXNzIEtpbmQgOiB1aW50OF90IHsK
KyAgICAgICAgRW1wdHksCisgICAgICAgIEluZGV4LAorICAgICAgICBOYW1lCisgICAgfTsKKyNl
bmRpZgorcHVibGljOgogCi0gICAgZnJpZW5kIFN0cmluZyBtYWtlU3RyaW5nKGNvbnN0IEluZGV4
T3JOYW1lJik7CisgICAgSW5kZXhPck5hbWUoKQorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQor
ICAgICAgICBtX2luZGV4TmFtZS5pbmRleCA9IGVtcHR5VGFnOworI2VsaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICAgICAgbV9raW5kID0gS2luZDo6RW1wdHk7CisjZW5kaWYKKyAgICB9CisKKyAg
ICBJbmRleE9yTmFtZShJbmRleCwgc3RkOjpwYWlyPGNvbnN0IE5hbWUqLCBSZWZQdHI8TmFtZVNl
Y3Rpb24+PiYmKTsKKworICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0CisgICAgeworI2lmIFVTRShK
U1ZBTFVFNjQpCisgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8SW5kZXg+KG1faW5kZXhOYW1l
KSAmIGVtcHR5VGFnOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgcmV0dXJuIG1f
a2luZCA9PSBLaW5kOjpFbXB0eTsKKyNlbmRpZgorICAgIH0KKworICAgIGJvb2wgaXNJbmRleCgp
IGNvbnN0CisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHJldHVybiBiaXR3aXNl
X2Nhc3Q8SW5kZXg+KG1faW5kZXhOYW1lKSAmIGluZGV4VGFnOworI2VsaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICAgICAgcmV0dXJuIG1fa2luZCA9PSBLaW5kOjpJbmRleDsKKyNlbmRpZgorICAg
IH0KKworICAgIGJvb2wgaXNOYW1lKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiAhKGlz
RW1wdHkoKSB8fCBpc0luZGV4KCkpOworICAgIH0KKworICAgIEluZGV4IGluZGV4KCkgY29uc3QK
KyAgICB7CisgICAgICAgIEFTU0VSVChpc0luZGV4KCkpOworI2lmIFVTRShKU1ZBTFVFNjQpCisg
ICAgICAgIHJldHVybiBtX2luZGV4TmFtZS5pbmRleCAmIH5pbmRleFRhZzsKKyNlbGlmIFVTRShK
U1ZBTFVFMzJfNjQpCisgICAgICAgIHJldHVybiBtX2luZGV4TmFtZS5pbmRleDsKKyNlbmRpZgor
ICAgIH0KKworICAgIGNvbnN0IE5hbWUqIG5hbWUoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNT
RVJUKGlzTmFtZSgpKTsKKyAgICAgICAgcmV0dXJuIG1faW5kZXhOYW1lLm5hbWU7CisgICAgfQor
CisgICAgTmFtZVNlY3Rpb24qIG5hbWVTZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lU2Vj
dGlvbi5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIHVuaW9uIHsKQEAgLTU2LDEwICsxMDksMTUg
QEAgcHJpdmF0ZToKICAgICB9IG1faW5kZXhOYW1lOwogICAgIFJlZlB0cjxOYW1lU2VjdGlvbj4g
bV9uYW1lU2VjdGlvbjsKIAorI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgLy8gVXNlIHRoZSB0b3Ag
Yml0cyBhcyB0YWdzLiBOZWl0aGVyIHBvaW50ZXJzIG5vciB0aGUgZnVuY3Rpb24gaW5kZXggc3Bh
Y2Ugc2hvdWxkIHVzZSB0aGVtLgogICAgIHN0YXRpYyBjb25zdGV4cHIgSW5kZXggaW5kZXhUYWcg
PSAxdWxsIDw8IChDSEFSX0JJVCAqIHNpemVvZihJbmRleCkgLSAxKTsKICAgICBzdGF0aWMgY29u
c3RleHByIEluZGV4IGVtcHR5VGFnID0gMXVsbCA8PCAoQ0hBUl9CSVQgKiBzaXplb2YoSW5kZXgp
IC0gMik7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBJbmRleCBhbGxUYWdzID0gaW5kZXhUYWcgfCBl
bXB0eVRhZzsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgLy8gVXNlIGFuIGV4cGxpY2l0
IHRhZyBhcyBwb2ludGVycyBtaWdodCBoYXZlIGhpZ2ggYml0cyBzZXQKKyAgICBLaW5kIG1fa2lu
ZDsKKyNlbmRpZgogfTsKIAogU3RyaW5nIG1ha2VTdHJpbmcoY29uc3QgSW5kZXhPck5hbWUmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmgKaW5kZXggZTZkYjNhM2Ew
OGM0Li42ZWQwMWI5MzY4NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21JbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0
YW5jZS5oCkBAIC0xMDYsOCArMTA2LDkgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlQ2FjaGVk
TWVtb3J5KCkKICAgICB7CiAgICAgICAgIGlmIChtX21lbW9yeSAhPSBudWxscHRyKSB7Ci0gICAg
ICAgICAgICBtX2NhY2hlZE1lbW9yeSA9IENhZ2VkUHRyPEdpZ2FjYWdlOjpQcmltaXRpdmUsIHZv
aWQsIHRhZ0NhZ2VkUHRyPihtZW1vcnkoKS0+bWVtb3J5KCksIG1lbW9yeSgpLT5ib3VuZHNDaGVj
a2luZ1NpemUoKSk7Ci0gICAgICAgICAgICBtX2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSA9IG1l
bW9yeSgpLT5ib3VuZHNDaGVja2luZ1NpemUoKTsKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgdXNl
ZCBieSB0aGUgbm9uLXNpZ25hbGluZyBiYXNlZCBib3VuZCBjaGVja2luZywgc28gdXNlIHRoZSBh
Y3R1YWwgc2l6ZSBvZiB0aGUgbWVtb3J5LgorICAgICAgICAgICAgbV9jYWNoZWRCb3VuZHNDaGVj
a2luZ1NpemUgPSBtZW1vcnkoKS0+c2l6ZSgpOworICAgICAgICAgICAgbV9jYWNoZWRNZW1vcnkg
PSBDYWdlZFB0cjxHaWdhY2FnZTo6UHJpbWl0aXZlLCB2b2lkLCB0YWdDYWdlZFB0cj4obWVtb3J5
KCktPm1lbW9yeSgpLCBtX2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSk7CiAgICAgICAgICAgICBB
U1NFUlQobWVtb3J5KCktPm1lbW9yeSgpID09IGNhY2hlZE1lbW9yeSgpKTsKICAgICAgICAgfQog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdl
bmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0
b3IuY3BwCmluZGV4IGQzNzNmYWVlODE2OC4uNWMyYjAwZWE2NDY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKQEAgLTM0MSw3ICsz
NDEsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIG1fbm9ybWFsaXplZEFyZ3VtZW50
c1tpbmRleF07CiAKICAgICAgICAgY29uc3QgYXV0byYgY2FsbGluZ0NvbnZlbnRpb24gPSB3YXNt
Q2FsbGluZ0NvbnZlbnRpb24oKTsKLSAgICAgICAgY29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBj
YWxsaW5nQ29udmVudGlvbi5ncHJBcmdzLnNpemUoKTsKKyAgICAgICAgY29uc3QgdWludDMyX3Qg
Z3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5qc3JBcmdzLnNpemUoKTsKICAgICAgICAgY29u
c3QgdWludDMyX3QgZnByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5mcHJBcmdzLnNpemUoKTsK
ICAgICAgICAgcmV0dXJuIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGluZGV4IC0gbV9jb2RlQmxv
Y2stPm1fbnVtQXJndW1lbnRzICsgZ3ByQ291bnQgKyBmcHJDb3VudCArIG51bWJlck9mTExJbnRD
YWxsZWVTYXZlUmVnaXN0ZXJzKTsKICAgICB9CkBAIC01OTUsNyArNTk1LDcgQEAgYXV0byBMTElu
dEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVyKGNvbnN0IEZ1bmN0aW9uU2lnbmF0
dXJlJiBzaWduYXR1cmUKICAgICBjb25zdCBhdXRvIGluaXRpYWxTdGFja1NpemUgPSBtX3N0YWNr
U2l6ZTsKIAogICAgIGNvbnN0IGF1dG8mIGNhbGxpbmdDb252ZW50aW9uID0gd2FzbUNhbGxpbmdD
b252ZW50aW9uKCk7Ci0gICAgY29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVu
dGlvbi5ncHJBcmdzLnNpemUoKTsKKyAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxp
bmdDb252ZW50aW9uLmpzckFyZ3Muc2l6ZSgpOwogICAgIGNvbnN0IHVpbnQzMl90IGZwckNvdW50
ID0gY2FsbGluZ0NvbnZlbnRpb24uZnByQXJncy5zaXplKCk7CiAKICAgICB1aW50MzJfdCBzdGFj
a0NvdW50ID0gMDsKQEAgLTc0Myw3ICs3NDMsNyBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjpjYWxs
SW5mb3JtYXRpb25Gb3JDYWxsZWUoY29uc3QgRnVuY3Rpb25TaWduYXR1cmUmIHNpZ25hdHVyZQog
ICAgIG1fcmVzdWx0cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHNpZ25hdHVyZS5yZXR1cm5Db3Vu
dCgpKTsKIAogICAgIGNvbnN0IGF1dG8mIGNhbGxpbmdDb252ZW50aW9uID0gd2FzbUNhbGxpbmdD
b252ZW50aW9uKCk7Ci0gICAgY29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVu
dGlvbi5ncHJBcmdzLnNpemUoKTsKKyAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxp
bmdDb252ZW50aW9uLmpzckFyZ3Muc2l6ZSgpOwogICAgIGNvbnN0IHVpbnQzMl90IGZwckNvdW50
ID0gY2FsbGluZ0NvbnZlbnRpb24uZnByQXJncy5zaXplKCk7CiAKICAgICB1aW50MzJfdCBncHJJ
bmRleCA9IDA7CkBAIC03OTEsNyArNzkxLDcgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6YWRkQXJn
dW1lbnRzKGNvbnN0IFR5cGVEZWZpbml0aW9uJiBzaWduYXR1cmUpIC0+IFBhcnRpYWxSZXMKICAg
ICBtX25vcm1hbGl6ZWRBcmd1bWVudHMucmVzaXplKG1fY29kZUJsb2NrLT5tX251bUFyZ3VtZW50
cyk7CiAKICAgICBjb25zdCBhdXRvJiBjYWxsaW5nQ29udmVudGlvbiA9IHdhc21DYWxsaW5nQ29u
dmVudGlvbigpOwotICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRp
b24uZ3ByQXJncy5zaXplKCk7CisgICAgY29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5n
Q29udmVudGlvbi5qc3JBcmdzLnNpemUoKTsKICAgICBjb25zdCB1aW50MzJfdCBmcHJDb3VudCA9
IGNhbGxpbmdDb252ZW50aW9uLmZwckFyZ3Muc2l6ZSgpOwogICAgIGNvbnN0IHVpbnQzMl90IG1h
eEdQUkluZGV4ID0gZ3ByQ291bnQ7CiAgICAgY29uc3QgdWludDMyX3QgbWF4RlBSSW5kZXggPSBn
cHJDb3VudCArIGZwckNvdW50OwpAQCAtOTc0LDcgKzk3NCw3IEBAIGF1dG8gTExJbnRHZW5lcmF0
b3I6OmFkZExvb3AoQmxvY2tTaWduYXR1cmUgc2lnbmF0dXJlLCBTdGFjayYgZW5jbG9zaW5nU3Rh
Y2ssIENvCiAgICAgICAgIG9zckVudHJ5RGF0YS5hcHBlbmQobV9ub3JtYWxpemVkQXJndW1lbnRz
W2ldKTsKIAogICAgIGNvbnN0IGF1dG8mIGNhbGxpbmdDb252ZW50aW9uID0gd2FzbUNhbGxpbmdD
b252ZW50aW9uKCk7Ci0gICAgY29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVu
dGlvbi5ncHJBcmdzLnNpemUoKTsKKyAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxp
bmdDb252ZW50aW9uLmpzckFyZ3Muc2l6ZSgpOwogICAgIGNvbnN0IHVpbnQzMl90IGZwckNvdW50
ID0gY2FsbGluZ0NvbnZlbnRpb24uZnByQXJncy5zaXplKCk7CiAgICAgZm9yICh1aW50MzJfdCBp
ID0gZ3ByQ291bnQgKyBmcHJDb3VudCArIG51bWJlck9mTExJbnRDYWxsZWVTYXZlUmVnaXN0ZXJz
OyBpIDwgbV9jb2RlQmxvY2stPm1fbnVtVmFyczsgaSsrKQogICAgICAgICBvc3JFbnRyeURhdGEu
YXBwZW5kKHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUxMSW50UGxhbi5jcHAKaW5kZXggOGI0MzZkMmRjZjU2Li5lMzRmNDRjYWNh
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3BwCkBA
IC0xMTksMTIgKzExOSwxNSBAQCB2b2lkIExMSW50UGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlv
bigpCiAgICAgICAgICAgICBlbnRyeXBvaW50c1tpXSA9IGppdC5sYWJlbCgpOwogI2lmIENQVShY
ODZfNjQpCiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgY2FsbGVlU2xvdChDQ2Fs
bEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBDYWxsRnJhbWVTbG90OjpjYWxsZWUgKiBz
dGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpIC0gc2l6ZW9mKENQVVJlZ2lzdGVyKSk7
Ci0jZWxpZiBDUFUoQVJNNjQpIHx8IENQVShSSVNDVjY0KQorI2VsaWYgQ1BVKEFSTTY0KSB8fCBD
UFUoUklTQ1Y2NCkgfHwgQ1BVKEFSTSkKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVz
cyBjYWxsZWVTbG90KENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIENhbGxGcmFt
ZVNsb3Q6OmNhbGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgLSBzaXpl
b2YoQ2FsbGVyRnJhbWVBbmRQQykpOwogI2Vsc2UKICNlcnJvciBVbnN1cHBvcnRlZCBhcmNoaXRl
Y3R1cmUuCiAjZW5kaWYKLSAgICAgICAgICAgIGppdC5zdG9yZVB0cihDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW1QdHIoQ2FsbGVlQml0czo6Ym94V2FzbShtX2NhbGxlZXNWZWN0b3JbaV0ucHRyKCkp
KSwgY2FsbGVlU2xvdCk7CisgICAgICAgICAgICBqaXQuc3RvcmVQdHIoQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tUHRyKENhbGxlZUJpdHM6OmJveFdhc20obV9jYWxsZWVzVmVjdG9yW2ldLnB0cigp
KSksIGNhbGxlZVNsb3Qud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSk7CisjaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAgICAgICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bTMyKEpTVmFsdWU6Oldhc21UYWcpLCBjYWxsZWVTbG90LndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7
CisjZW5kaWYKICAgICAgICAgICAgIGp1bXBzW2ldID0gaml0Lmp1bXAoKTsKICAgICAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3BwCmluZGV4IDQ0MDc1OTUy
ZjAwNy4uZTNlOWMwYTA2NGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtTWVtb3J5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVt
b3J5LmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogI2lu
Y2x1ZGUgPGNzdHJpbmc+CisjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPG11dGV4PgogCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewpAQCAtOTgsMTEgKzk5LDkgQEAgY2xhc3Mg
TWVtb3J5TWFuYWdlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoTWVtb3J5TWFuYWdlcik7CiBwdWJsaWM6Ci0gICAgTWVtb3J5TWFuYWdl
cigpCi0gICAgICAgIDogbV9tYXhGYXN0TWVtb3J5Q291bnQoT3B0aW9uczo6bWF4TnVtV2ViQXNz
ZW1ibHlGYXN0TWVtb3JpZXMoKSkKLSAgICB7Ci0gICAgfQotICAgIAorICAgIE1lbW9yeU1hbmFn
ZXIoKSA9IGRlZmF1bHQ7CisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9S
WSkKICAgICBNZW1vcnlSZXN1bHQgdHJ5QWxsb2NhdGVGYXN0TWVtb3J5KCkKICAgICB7CiAgICAg
ICAgIE1lbW9yeVJlc3VsdCByZXN1bHQgPSBbJl0gewpAQCAtMTI1LDcgKzEyNCw3IEBAIHB1Ymxp
YzoKICAgICAgICAgCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQotICAgIAorCiAgICAg
dm9pZCBmcmVlRmFzdE1lbW9yeSh2b2lkKiBiYXNlUHRyKQogICAgIHsKICAgICAgICAgewpAQCAt
MTM2LDYgKzEzNSw3IEBAIHB1YmxpYzoKICAgICAgICAgCiAgICAgICAgIGRhdGFMb2dMbklmKE9w
dGlvbnM6OmxvZ1dlYkFzc2VtYmx5TWVtb3J5KCksICJGcmVlZCB2aXJ0dWFsOyBzdGF0ZTogIiwg
KnRoaXMpOwogICAgIH0KKyNlbmRpZgogCiAgICAgTWVtb3J5UmVzdWx0IHRyeUFsbG9jYXRlR3Jv
d2FibGVCb3VuZHNDaGVja2luZ01lbW9yeShzaXplX3QgbWFwcGVkQ2FwYWNpdHkpCiAgICAgewpA
QCAtMTcwLDExICsxNzAsMTMgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgLy8gTk9URTogVGhp
cyBjYW4gYmUgY2FsbGVkIGZyb20gYSBzaWduYWwgaGFuZGxlciwgYnV0IG9ubHkgYWZ0ZXIgd2Ug
cHJvdmVkIHRoYXQgd2UncmUgaW4gSklUIGNvZGUgb3IgV2FzbUxMSW50IGNvZGUuCiAgICAgICAg
IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFM
SU5HX01FTU9SWSkKICAgICAgICAgZm9yICh2b2lkKiBtZW1vcnkgOiBtX2Zhc3RNZW1vcmllcykg
ewogICAgICAgICAgICAgY2hhciogc3RhcnQgPSBzdGF0aWNfY2FzdDxjaGFyKj4obWVtb3J5KTsK
ICAgICAgICAgICAgIGlmIChzdGFydCA8PSBhZGRyZXNzICYmIGFkZHJlc3MgPD0gc3RhcnQgKyBN
ZW1vcnk6OmZhc3RNYXBwZWRCeXRlcygpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CisjZW5kaWYKICAgICAgICAgdWludHB0cl90IGFkZHJlc3NWYWx1ZSA9IGJpdHdp
c2VfY2FzdDx1aW50cHRyX3Q+KGFkZHJlc3MpOwogICAgICAgICBhdXRvIGl0ZXJhdG9yID0gc3Rk
Ojp1cHBlcl9ib3VuZChtX2dyb3dhYmxlQm91bmRzQ2hlY2tpbmdNZW1vcmllcy5iZWdpbigpLCBt
X2dyb3dhYmxlQm91bmRzQ2hlY2tpbmdNZW1vcmllcy5lbmQoKSwgc3RkOjptYWtlX3BhaXIoYWRk
cmVzc1ZhbHVlLCAwKSwKICAgICAgICAgICAgIFtdKHN0ZDo6cGFpcjx1aW50cHRyX3QsIHNpemVf
dD4gYSwgc3RkOjpwYWlyPHVpbnRwdHJfdCwgc2l6ZV90PiBiKSB7CkBAIC0xOTEsNyArMTkzLDEy
IEBAIHB1YmxpYzoKICAgICAvLyBXZSBhbGxvdyBwZW9wbGUgdG8gImNvbW1pdCIgbW9yZSB3YXNt
IG1lbW9yeSB0aGFuIHRoZXJlIGlzIG9uIHRoZSBzeXN0ZW0gc2luY2UgbW9zdCBvZiB0aGUgdGlt
ZQogICAgIC8vIHBlb3BsZSBkb24ndCBhY3R1YWxseSB3cml0ZSB0byBtb3N0IG9mIHRoYXQgbWVt
b3J5LiBUaGVyZSBpcyBzb21lIGNoYW5jZSB0aGF0IHRoaXMgZ2V0cyB1cwogICAgIC8vIEpldFNh
bW1lZCBidXQgdGhhdCdzIHBvc3NpYmxlIGFueXdheS4KLSAgICBpbmxpbmUgc2l6ZV90IG1lbW9y
eUxpbWl0KCkgY29uc3QgeyByZXR1cm4gcmFtU2l6ZSgpICogMzsgfQorICAgIGlubGluZSBzaXpl
X3QgbWVtb3J5TGltaXQoKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKHByb2R1Y3RPdmVyZmxv
d3M8c2l6ZV90PihyYW1TaXplKCksICAzKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bWVy
aWNfbGltaXRzPHNpemVfdD46Om1heCgpOworICAgICAgICByZXR1cm4gcmFtU2l6ZSgpICogMzsK
KyAgICB9CiAKICAgICAvLyBGSVhNRTogSWRlYWxseSwgYm1hbGxvYyB3b3VsZCBoYXZlIHRoaXMg
a2luZCBvZiBtZWNoYW5pc20uIFRoZW4sIHdlIHdvdWxkIGp1c3QgZm9yd2FyZCB0byB0aGF0CiAg
ICAgLy8gbWVjaGFuaXNtIGhlcmUuCkBAIC0yMjcsMTMgKzIzNCwxOSBAQCBwdWJsaWM6CiAgICAg
CiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgeworI2lmIEVOQUJM
RShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgICAgICBvdXQucHJpbnQoImZhc3Qg
bWVtb3JpZXMgPSAgIiwgbV9mYXN0TWVtb3JpZXMuc2l6ZSgpLCAiLyIsIG1fbWF4RmFzdE1lbW9y
eUNvdW50LCAiLCBieXRlcyA9ICIsIG1fcGh5c2ljYWxCeXRlcywgIi8iLCBtZW1vcnlMaW1pdCgp
KTsKKyNlbHNlCisgICAgICAgIG91dC5wcmludCgiZmFzdCBtZW1vcmllcyA9IE4uQS4sIGJ5dGVz
ID0gIiwgbV9waHlzaWNhbEJ5dGVzLCAiLyIsIG1lbW9yeUxpbWl0KCkpOworI2VuZGlmCiAgICAg
fQogICAgIAogcHJpdmF0ZToKICAgICBMb2NrIG1fbG9jazsKLSAgICB1bnNpZ25lZCBtX21heEZh
c3RNZW1vcnlDb3VudCB7IDAgfTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01F
TU9SWSkKKyAgICB1bnNpZ25lZCBtX21heEZhc3RNZW1vcnlDb3VudCB7IE9wdGlvbnM6Om1heE51
bVdlYkFzc2VtYmx5RmFzdE1lbW9yaWVzKCkgfTsKICAgICBWZWN0b3I8dm9pZCo+IG1fZmFzdE1l
bW9yaWVzOworI2VuZGlmCiAgICAgU3RkU2V0PHN0ZDo6cGFpcjx1aW50cHRyX3QsIHNpemVfdD4+
IG1fZ3Jvd2FibGVCb3VuZHNDaGVja2luZ01lbW9yaWVzOwogICAgIHNpemVfdCBtX3BoeXNpY2Fs
Qnl0ZXMgeyAwIH07CiB9OwpAQCAtMzAwLDYgKzMxMyw3IEBAIE1lbW9yeUhhbmRsZTo6fk1lbW9y
eUhhbmRsZSgpCiAgICAgICAgIHZvaWQqIG1lbW9yeSA9IHRoaXMtPm1lbW9yeSgpOwogICAgICAg
ICBtZW1vcnlNYW5hZ2VyKCkuZnJlZVBoeXNpY2FsQnl0ZXMobV9zaXplKTsKICAgICAgICAgc3dp
dGNoIChtX21vZGUpIHsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkK
ICAgICAgICAgY2FzZSBNZW1vcnlNb2RlOjpTaWduYWxpbmc6CiAgICAgICAgICAgICBpZiAobXBy
b3RlY3QobWVtb3J5LCBNZW1vcnk6OmZhc3RNYXBwZWRCeXRlcygpLCBQUk9UX1JFQUQgfCBQUk9U
X1dSSVRFKSkgewogICAgICAgICAgICAgICAgIGRhdGFMb2coIm1wcm90ZWN0IGZhaWxlZDogIiwg
c2FmZVN0cmVycm9yKGVycm5vKS5kYXRhKCksICJcbiIpOwpAQCAtMzA3LDYgKzMyMSw3IEBAIE1l
bW9yeUhhbmRsZTo6fk1lbW9yeUhhbmRsZSgpCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBt
ZW1vcnlNYW5hZ2VyKCkuZnJlZUZhc3RNZW1vcnkobWVtb3J5KTsKICAgICAgICAgICAgIGJyZWFr
OworI2VuZGlmCiAgICAgICAgIGNhc2UgTWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmc6IHsKICAg
ICAgICAgICAgIHN3aXRjaCAobV9zaGFyaW5nTW9kZSkgewogICAgICAgICAgICAgY2FzZSBNZW1v
cnlTaGFyaW5nTW9kZTo6RGVmYXVsdDoKQEAgLTM5NSw2ICs0MTAsNyBAQCBSZWZQdHI8TWVtb3J5
PiBNZW1vcnk6OnRyeUNyZWF0ZShQYWdlQ291bnQgaW5pdGlhbCwgUGFnZUNvdW50IG1heGltdW0s
IE1lbW9yeVNoYQogICAgIGlmICghZG9uZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
ICAgIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIGNoYXIq
IGZhc3RNZW1vcnkgPSBudWxscHRyOwogICAgIGlmIChPcHRpb25zOjp1c2VXZWJBc3NlbWJseUZh
c3RNZW1vcnkoKSkgewogICAgICAgICB0cnlBbGxvY2F0ZSgKQEAgLTQxMyw3ICs0MjksOCBAQCBS
ZWZQdHI8TWVtb3J5PiBNZW1vcnk6OnRyeUNyZWF0ZShQYWdlQ291bnQgaW5pdGlhbCwgUGFnZUNv
dW50IG1heGltdW0sIE1lbW9yeVNoYQogCiAgICAgICAgIHJldHVybiBNZW1vcnk6OmNyZWF0ZShh
ZG9wdFJlZigqbmV3IE1lbW9yeUhhbmRsZShmYXN0TWVtb3J5LCBpbml0aWFsQnl0ZXMsIE1lbW9y
eTo6ZmFzdE1hcHBlZEJ5dGVzKCksIGluaXRpYWwsIG1heGltdW0sIHNoYXJpbmdNb2RlLCBNZW1v
cnlNb2RlOjpTaWduYWxpbmcpKSwgV1RGTW92ZShub3RpZnlNZW1vcnlQcmVzc3VyZSksIFdURk1v
dmUoc3luY1RyeVRvUmVjbGFpbU1lbW9yeSksIFdURk1vdmUoZ3Jvd1N1Y2Nlc3NDYWxsYmFjaykp
OwogICAgIH0KLSAgICAKKyNlbmRpZgorCiAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OmNyYXNo
SWZXZWJBc3NlbWJseUNhbnRGYXN0TWVtb3J5KCkpKQogICAgICAgICB3ZWJBc3NlbWJseUNvdWxk
bnRHZXRGYXN0TWVtb3J5KCk7CiAKQEAgLTQ1Niw2ICs0NzMsNyBAQCBSZWZQdHI8TWVtb3J5PiBN
ZW1vcnk6OnRyeUNyZWF0ZShQYWdlQ291bnQgaW5pdGlhbCwgUGFnZUNvdW50IG1heGltdW0sIE1l
bW9yeVNoYQogCiBNZW1vcnk6On5NZW1vcnkoKSA9IGRlZmF1bHQ7CiAKKyNpZiBFTkFCTEUoV0VC
QVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKIHNpemVfdCBNZW1vcnk6OmZhc3RNYXBwZWRSZWR6
b25lQnl0ZXMoKQogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxzaXplX3Q+KFBhZ2VDb3VudDo6
cGFnZVNpemUpICogT3B0aW9uczo6d2ViQXNzZW1ibHlGYXN0TWVtb3J5UmVkem9uZVBhZ2VzKCk7
CkBAIC00NjYsNiArNDg0LDcgQEAgc2l6ZV90IE1lbW9yeTo6ZmFzdE1hcHBlZEJ5dGVzKCkKICAg
ICBzdGF0aWNfYXNzZXJ0KHNpemVvZih1aW50NjRfdCkgPT0gc2l6ZW9mKHNpemVfdCksICJXZSBy
ZWx5IG9uIGFsbG93aW5nIHRoZSBtYXhpbXVtIHNpemUgb2YgTWVtb3J5IHdlIG1hcCB0byBiZSAy
XjMyICsgcmVkem9uZSB3aGljaCBpcyBsYXJnZXIgdGhhbiBmaXRzIGluIGEgMzItYml0IGludGVn
ZXIgdGhhdCB3ZSdkIHBhc3MgdG8gbXByb3RlY3QgaWYgdGhpcyBkaWRuJ3QgaG9sZC4iKTsKICAg
ICByZXR1cm4gKHN0YXRpY19jYXN0PHNpemVfdD4oMSkgPDwgMzIpICsgZmFzdE1hcHBlZFJlZHpv
bmVCeXRlcygpOwogfQorI2VuZGlmCiAKIGJvb2wgTWVtb3J5OjphZGRyZXNzSXNJbkdyb3dhYmxl
T3JGYXN0TWVtb3J5KHZvaWQqIGFkZHJlc3MpCiB7CkBAIC01MjQsOCArNTQzLDE0IEBAIEV4cGVj
dGVkPFBhZ2VDb3VudCwgTWVtb3J5OjpHcm93RmFpbFJlYXNvbj4gTWVtb3J5Ojpncm93U2hhcmVk
KFBhZ2VDb3VudCBkZWx0YSkKICAgICAgICAgbV9oYW5kbGUtPmdyb3dUb1NpemUoZGVzaXJlZFNp
emUpOwogICAgICAgICByZXR1cm4gb2xkUGFnZUNvdW50OwogICAgIH0oKSk7Ci0gICAgaWYgKHJl
c3VsdCkKKyAgICBpZiAocmVzdWx0KSB7CiAgICAgICAgIG1fZ3Jvd1N1Y2Nlc3NDYWxsYmFjayhH
cm93U3VjY2Vzc1RhZywgb2xkUGFnZUNvdW50LCBuZXdQYWdlQ291bnQpOworICAgICAgICAvLyBV
cGRhdGUgY2FjaGUgZm9yIGluc3RhbmNlCisgICAgICAgIGZvciAoYXV0byYgaW5zdGFuY2UgOiBt
X2luc3RhbmNlcykgeworICAgICAgICAgICAgaWYgKGluc3RhbmNlLmdldCgpICE9IG51bGxwdHIp
CisgICAgICAgICAgICAgICAgaW5zdGFuY2UuZ2V0KCktPnVwZGF0ZUNhY2hlZE1lbW9yeSgpOwor
ICAgICAgICB9CisgICAgfQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTU4OCw2ICs2MTMs
NyBAQCBFeHBlY3RlZDxQYWdlQ291bnQsIE1lbW9yeTo6R3Jvd0ZhaWxSZWFzb24+IE1lbW9yeTo6
Z3JvdyhQYWdlQ291bnQgZGVsdGEpCiAgICAgICAgIEFTU0VSVChtZW1vcnkoKSA9PSBuZXdNZW1v
cnkpOwogICAgICAgICByZXR1cm4gc3VjY2VzcygpOwogICAgIH0KKyNpZiBFTkFCTEUoV0VCQVNT
RU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzog
ewogICAgICAgICBzaXplX3QgZXh0cmFCeXRlcyA9IGRlc2lyZWRTaXplIC0gc2l6ZSgpOwogICAg
ICAgICBSRUxFQVNFX0FTU0VSVChleHRyYUJ5dGVzKTsKQEAgLTYxMyw2ICs2MzksNyBAQCBFeHBl
Y3RlZDxQYWdlQ291bnQsIE1lbW9yeTo6R3Jvd0ZhaWxSZWFzb24+IE1lbW9yeTo6Z3JvdyhQYWdl
Q291bnQgZGVsdGEpCiAgICAgICAgIG1faGFuZGxlLT5ncm93VG9TaXplKGRlc2lyZWRTaXplKTsK
ICAgICAgICAgcmV0dXJuIHN1Y2Nlc3MoKTsKICAgICB9CisjZW5kaWYKICAgICB9CiAKICAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNjQ2LDcgKzY3Myw4IEBAIGJvb2wgTWVt
b3J5Ojpjb3B5KHVpbnQzMl90IGRzdEFkZHJlc3MsIHVpbnQzMl90IHNyY0FkZHJlc3MsIHVpbnQz
Ml90IGNvdW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHVpbnQ4X3QqIGJhc2UgPSBy
ZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihtZW1vcnkoKSk7Ci0gICAgbWVtY3B5KGJhc2UgKyBk
c3RBZGRyZXNzLCBiYXNlICsgc3JjQWRkcmVzcywgY291bnQpOworICAgIC8vIFNvdXJjZSBhbmQg
ZGVzdGluYXRpb24gYXJlYXMgbWlnaHQgb3ZlcmxhcCwgc28gdXNpbmcgbWVtbW92ZS4KKyAgICBt
ZW1tb3ZlKGJhc2UgKyBkc3RBZGRyZXNzLCBiYXNlICsgc3JjQWRkcmVzcywgY291bnQpOwogICAg
IHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtTWVtb3J5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmgK
aW5kZXggZjVjNThmY2Y5NmYyLi45Mjc5NjNiOTI0YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtTWVtb3J5LmgKQEAgLTYxLDcgKzYxLDYgQEAgcHVibGljOgogICAgIHZvaWQqIG1l
bW9yeSgpIGNvbnN0OwogICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9
CiAgICAgc2l6ZV90IG1hcHBlZENhcGFjaXR5KCkgY29uc3QgeyByZXR1cm4gbV9tYXBwZWRDYXBh
Y2l0eTsgfQotICAgIHNpemVfdCBib3VuZHNDaGVja2luZ1NpemUoKSBjb25zdCB7IHJldHVybiBt
X21hcHBlZENhcGFjaXR5OyB9CiAgICAgUGFnZUNvdW50IGluaXRpYWwoKSBjb25zdCB7IHJldHVy
biBtX2luaXRpYWw7IH0KICAgICBQYWdlQ291bnQgbWF4aW11bSgpIGNvbnN0IHsgcmV0dXJuIG1f
bWF4aW11bTsgfQogICAgIE1lbW9yeVNoYXJpbmdNb2RlIHNoYXJpbmdNb2RlKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaGFyaW5nTW9kZTsgfQpAQCAtMTA2LDE0ICsxMDUsMTYgQEAgcHVibGljOgogCiAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgfk1lbW9yeSgpOwogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
X1NJR05BTElOR19NRU1PUlkpCiAgICAgc3RhdGljIHNpemVfdCBmYXN0TWFwcGVkUmVkem9uZUJ5
dGVzKCk7CiAgICAgc3RhdGljIHNpemVfdCBmYXN0TWFwcGVkQnl0ZXMoKTsgLy8gSW5jbHVkZXMg
cmVkem9uZS4KKyNlbmRpZgogICAgIHN0YXRpYyBib29sIGFkZHJlc3NJc0luR3Jvd2FibGVPckZh
c3RNZW1vcnkodm9pZCopOwogCiAgICAgdm9pZCogbWVtb3J5KCkgY29uc3QgeyByZXR1cm4gbV9o
YW5kbGUtPm1lbW9yeSgpOyB9CiAgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX2hh
bmRsZS0+c2l6ZSgpOyB9CiAgICAgUGFnZUNvdW50IHNpemVJblBhZ2VzKCkgY29uc3QgeyByZXR1
cm4gUGFnZUNvdW50Ojpmcm9tQnl0ZXMoc2l6ZSgpKTsgfQotICAgIHNpemVfdCBib3VuZHNDaGVj
a2luZ1NpemUoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZS0+Ym91bmRzQ2hlY2tpbmdTaXplKCk7
IH0KKyAgICBzaXplX3QgbWFwcGVkQ2FwYWNpdHkoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZS0+
bWFwcGVkQ2FwYWNpdHkoKTsgfQogICAgIFBhZ2VDb3VudCBpbml0aWFsKCkgY29uc3QgeyByZXR1
cm4gbV9oYW5kbGUtPmluaXRpYWwoKTsgfQogICAgIFBhZ2VDb3VudCBtYXhpbXVtKCkgY29uc3Qg
eyByZXR1cm4gbV9oYW5kbGUtPm1heGltdW0oKTsgfQogICAgIE1lbW9yeUhhbmRsZSYgaGFuZGxl
KCkgeyByZXR1cm4gbV9oYW5kbGUuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwCmluZGV4IDI2NTJkZTcyZWQ1Ni4u
NjBmYWQ2M2VmMGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
TWVtb3J5SW5mb3JtYXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21NZW1vcnlJbmZvcm1hdGlvbi5jcHAKQEAgLTQxLDggKzQxLDE1IEBAIGNvbnN0IFBpbm5lZFJl
Z2lzdGVySW5mbyYgUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKQogICAgICAgICB1bnNpZ25lZCBu
dW1iZXJPZlBpbm5lZFJlZ2lzdGVycyA9IDI7CiAgICAgICAgIGlmICghQ29udGV4dDo6dXNlRmFz
dFRMUygpKQogICAgICAgICAgICAgKytudW1iZXJPZlBpbm5lZFJlZ2lzdGVyczsKKyNpZiBDUFUo
WDg2XzY0KSB8fCBDUFUoQVJNNjQpCiAgICAgICAgIEdQUlJlZyBiYXNlTWVtb3J5UG9pbnRlciA9
IEdQUkluZm86OnJlZ0NTMzsKICAgICAgICAgR1BSUmVnIGJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lz
dGVyID0gR1BSSW5mbzo6cmVnQ1M0OworI2VsaWYgQ1BVKEFSTSkKKyAgICAgICAgLy8gTm90IGVu
b3VnaCByZWdpc3RlcnMuIHJlZ0NTMCBpcyB0aGUgd2FzbSBpbnN0YW5jZSwgcmVnQ1MxIGlzIExM
SW50IFBCCisgICAgICAgIG51bWJlck9mUGlubmVkUmVnaXN0ZXJzIC09IDI7CisgICAgICAgIEdQ
UlJlZyBiYXNlTWVtb3J5UG9pbnRlciA9IEludmFsaWRHUFJSZWc7CisgICAgICAgIEdQUlJlZyBi
b3VuZHNDaGVja2luZ1NpemVSZWdpc3RlciA9IEludmFsaWRHUFJSZWc7CisjZW5kaWYKICAgICAg
ICAgR1BSUmVnIHdhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyID0gSW52YWxpZEdQUlJlZzsKICAg
ICAgICAgaWYgKCFDb250ZXh0Ojp1c2VGYXN0VExTKCkpCiAgICAgICAgICAgICB3YXNtQ29udGV4
dEluc3RhbmNlUG9pbnRlciA9IEdQUkluZm86OnJlZ0NTMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmgKaW5kZXggODU0ZmJhNTRlMzM3
Li4yOWZjYmRiNmQ0NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21NZW1vcnlJbmZvcm1hdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21NZW1vcnlJbmZvcm1hdGlvbi5oCkBAIC01MiwxMCArNTIsMTEgQEAgcHVibGljOgogICAgIFJl
Z2lzdGVyU2V0IHRvU2F2ZShNZW1vcnlNb2RlIG1vZGUpIGNvbnN0CiAgICAgewogICAgICAgICBS
ZWdpc3RlclNldCByZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC5zZXQoYmFzZU1lbW9yeVBvaW50ZXIp
OworICAgICAgICBpZiAoYmFzZU1lbW9yeVBvaW50ZXIgIT0gSW52YWxpZEdQUlJlZykKKyAgICAg
ICAgICAgIHJlc3VsdC5zZXQoYmFzZU1lbW9yeVBvaW50ZXIpOwogICAgICAgICBpZiAod2FzbUNv
bnRleHRJbnN0YW5jZVBvaW50ZXIgIT0gSW52YWxpZEdQUlJlZykKICAgICAgICAgICAgIHJlc3Vs
dC5zZXQod2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXIpOwotICAgICAgICBpZiAobW9kZSAhPSBN
ZW1vcnlNb2RlOjpTaWduYWxpbmcpCisgICAgICAgIGlmIChtb2RlID09IE1lbW9yeU1vZGU6OkJv
dW5kc0NoZWNraW5nICYmIGJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyICE9IEludmFsaWRHUFJS
ZWcpCiAgICAgICAgICAgICByZXN1bHQuc2V0KGJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyKTsK
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtTWVtb3J5TW9kZS5jcHAKaW5kZXggOWJlMDRkNzdiMDZiLi5mMzNiMDUyNTE5ODMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5jcHAKQEAg
LTM3LDcgKzM3LDkgQEAgY29uc3QgY2hhciogbWFrZVN0cmluZyhNZW1vcnlNb2RlIG1vZGUpCiB7
CiAgICAgc3dpdGNoIChtb2RlKSB7CiAgICAgY2FzZSBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2lu
ZzogcmV0dXJuICJCb3VuZHNDaGVja2luZyI7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05B
TElOR19NRU1PUlkpCiAgICAgY2FzZSBNZW1vcnlNb2RlOjpTaWduYWxpbmc6IHJldHVybiAiU2ln
bmFsaW5nIjsKKyNlbmRpZgogICAgIH0KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIHJldHVybiAiIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21NZW1vcnlNb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5
TW9kZS5oCmluZGV4IDAyY2ZjZmU0OWY0Ny4uZDcxMWFmYWYzMDMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmgKQEAgLTM0LDcgKzM0LDkgQEAgbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIC8vIEZJWE1FOiBXZSBzaG91bGQgc3VwcG9ydCBv
dGhlciBtb2Rlcy4gc2VlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTYyNjkzCiBlbnVtIGNsYXNzIE1lbW9yeU1vZGUgOiB1aW50OF90IHsKICAgICBCb3VuZHNDaGVj
a2luZywKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBTaWdu
YWxpbmcKKyNlbmRpZgogfTsKIAogc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgTnVtYmVyT2ZNZW1v
cnlNb2RlcyA9IDI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
T3Bjb2RlT3JpZ2luLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVP
cmlnaW4uY3BwCmluZGV4IGI2YzVjMjc1NTMxMS4uOWZjOTFiOWQ5YzU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcApAQCAtMjYsNyArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldhc21PcGNvZGVPcmlnaW4uaCIK
IAotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQp
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKQEAgLTM3LDQgKzM3LDQgQEAg
dm9pZCBPcGNvZGVPcmlnaW46OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIAogfSB9IC8v
IG5hbWVzcGFjZSBKU0M6Oldhc20KIAotI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmgKaW5kZXggYTBkOGRmM2FlZjE5Li41YzRiNjc2ZDVj
NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmln
aW4uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmgK
QEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoV0VCQVNTRU1C
TFkpCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQogCiAjaW5jbHVkZSAiQjNPcmlnaW4u
aCIKICNpbmNsdWRlICJXYXNtRm9ybWF0LmgiCkBAIC02MCw0ICs2MCw0IEBAIHByaXZhdGU6CiAK
IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCiAKLSNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1C
TFkpCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCmluZGV4IGYyZjYxMWE2YmU2ZS4uNjQz
YzQ3Y2RmMzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bl
cmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlv
bnMuY3BwCkBAIC00NjgsNDMgKzQ2OCw0MyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uV2FzbVVud2luZCwgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lKSkKICAgICBBU1NF
UlQoISF2bS5jYWxsRnJhbWVGb3JDYXRjaCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Db252ZXJ0VG9JNjQsIGludDY0X3QsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
SlNWYWx1ZSB2KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9J
NjQsIGludDY0X3QsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUgdikpCiB7
CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBp
bnN0ZWFkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDMyMDYKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAgIE5hdGl2
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgcmV0dXJuIHYudG9C
aWdJbnQ2NChjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKTsKKyAgICByZXR1cm4g
SlNWYWx1ZTo6ZGVjb2RlKHYpLnRvQmlnSW50NjQoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KHZtKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0
VG9GNjQsIGRvdWJsZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0Y2NCwgZG91YmxlLCAoQ2FsbEZy
YW1lKiBjYWxsRnJhbWUsIEVuY29kZWRKU1ZhbHVlIHYpKQogewogICAgIC8vIEZJWE1FOiBDb25z
aWRlciBwYXNzaW5nIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGVhZC4KICAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjA2CiAgICAgVk0mIHZtID0g
Y2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIHJldHVybiB2LnRvTnVtYmVyKGNhbGxGcmFtZS0+bGV4
aWNhbEdsb2JhbE9iamVjdCh2bSkpOworICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUodikudG9O
dW1iZXIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSk7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIGludDMyX3QsIChDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db252ZXJ0VG9JMzIsIGludDMyX3QsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRW5jb2Rl
ZEpTVmFsdWUgdikpCiB7CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3Nl
bWJseUluc3RhbmNlKiBpbnN0ZWFkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDMyMDYKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRW
TSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0g
ICAgcmV0dXJuIHYudG9JbnQzMihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKHYpLnRvSW50MzIoY2FsbEZyYW1lLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KHZtKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db252ZXJ0VG9GMzIsIGZsb2F0LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdikp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjMyLCBmbG9hdCwg
KENhbGxGcmFtZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSB2KSkKIHsKICAgICAvLyBGSVhN
RTogQ29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RlYWQuCiAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIwNgogICAgIFZN
JiB2bSA9IGNhbGxGcmFtZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+
KHYudG9OdW1iZXIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSkpOworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxmbG9hdD4oSlNWYWx1ZTo6ZGVjb2RlKHYpLnRvTnVtYmVyKGNhbGxG
cmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBpbnQ2NF90IHZhbHVlKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRKU1Zh
bHVlLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwgRW5jb2RlZFdh
c21WYWx1ZSB2YWx1ZSkpCiB7CiAgICAgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBqc0luc3RhbmNl
ID0gaW5zdGFuY2UtPm93bmVyPEpTV2ViQXNzZW1ibHlJbnN0YW5jZT4oKTsKICAgICBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNJbnN0YW5jZS0+Z2xvYmFsT2JqZWN0KCk7CkBAIC01
MTQsNyArNTE0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRU
b0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqIGMKIH0KIAogLy8gaHR0cHM6Ly93
ZWJhc3NlbWJseS5naXRodWIuaW8vbXVsdGktdmFsdWUvanMtYXBpL2luZGV4Lmh0bWwjcnVuLWEt
aG9zdC1mdW5jdGlvbgotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVS
ZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwg
Y29uc3QgVHlwZURlZmluaXRpb24qIHR5cGUsIEpTVmFsdWUgcmVzdWx0LCB1aW50NjRfdCogcmVn
aXN0ZXJSZXN1bHRzLCB1aW50NjRfdCogY2FsbGVlRnJhbWVQb2ludGVyKSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSog
Y2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2UsIGNvbnN0IFR5cGVEZWZpbml0aW9uKiB0eXBl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNSZXN1bHQsIHVpbnQ2NF90KiByZWdpc3RlclJlc3VsdHMsIHVp
bnQ2NF90KiBjYWxsZWVGcmFtZVBvaW50ZXIpKQogewogICAgIC8vIEZJWE1FOiBDb25zaWRlciBw
YXNzaW5nIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGVhZC4KICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjA2CkBAIC01MzEsNiArNTMxLDcgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAo
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIEkKIAogICAgIHVuc2lnbmVkIGl0ZXJhdGlvbkNvdW50ID0g
MDsKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBidWZmZXI7CisgICAgSlNWYWx1ZSByZXN1bHQg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jUmVzdWx0KTsKICAgICBmb3JFYWNoSW5JdGVyYWJsZShnbG9i
YWxPYmplY3QsIHJlc3VsdCwgWyZdIChWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSB2YWx1
ZSkgLT4gdm9pZCB7CiAgICAgICAgIGlmIChidWZmZXIuc2l6ZSgpIDwgc2lnbmF0dXJlLT5yZXR1
cm5Db3VudCgpKQogICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCh2YWx1ZSk7CkBAIC01ODAsOCAr
NTgxLDEwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0
cywgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJCiAgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHZvaWQoKSk7CiAKICAgICAgICAgYXV0byByZXAgPSB3YXNtQ2FsbEluZm8u
cmVzdWx0c1tpbmRleF07Ci0gICAgICAgIGlmIChyZXAuaXNSZWcoKSkKLSAgICAgICAgICAgIHJl
Z2lzdGVyUmVzdWx0c1tyZWdpc3RlclJlc3VsdE9mZnNldHMuZmluZChyZXAucmVnKCkpLT5vZmZz
ZXQoKSAvIHNpemVvZih1aW50NjRfdCldID0gdW5ib3hlZFZhbHVlOworICAgICAgICBpZiAocmVw
LmlzR1BSKCkpCisgICAgICAgICAgICByZWdpc3RlclJlc3VsdHNbcmVnaXN0ZXJSZXN1bHRPZmZz
ZXRzLmZpbmQocmVwLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpIC8gc2l6ZW9mKHVpbnQ2
NF90KV0gPSB1bmJveGVkVmFsdWU7CisgICAgICAgIGVsc2UgaWYgKHJlcC5pc0ZQUigpKQorICAg
ICAgICAgICAgcmVnaXN0ZXJSZXN1bHRzW3JlZ2lzdGVyUmVzdWx0T2Zmc2V0cy5maW5kKHJlcC5m
cHIoKSktPm9mZnNldCgpIC8gc2l6ZW9mKHVpbnQ2NF90KV0gPSB1bmJveGVkVmFsdWU7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIGNhbGxlZUZyYW1lUG9pbnRlcltyZXAub2Zmc2V0RnJvbUZQ
KCkgLyBzaXplb2YodWludDY0X3QpXSA9IHVuYm94ZWRWYWx1ZTsKICAgICB9CkBAIC02MDcsMTIg
KzYxMCwxNiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVSZXN1
bHRzQXJyYXksIEpTQXJyYXkqLCAoQ2FsbEZyYW1lKiBjYQogICAgIGF1dG8gd2FzbUNhbGxJbmZv
ID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkuY2FsbEluZm9ybWF0aW9uRm9yKCp0eXBlKTsKICAg
ICBSZWdpc3RlckF0T2Zmc2V0TGlzdCByZWdpc3RlclJlc3VsdHMgPSB3YXNtQ2FsbEluZm8uY29t
cHV0ZVJlc3VsdHNPZmZzZXRMaXN0KCk7CiAKLSAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihKU1Zh
bHVlKSA9PSBzaXplb2YoQ1BVUmVnaXN0ZXIpLCAiVGhlIGNvZGUgYmVsb3cgcmVsaWVzIG9uIHRo
aXMuIik7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpZ25hdHVyZS0+cmV0dXJuQ291
bnQoKTsgKytpKSB7CiAgICAgICAgIFZhbHVlTG9jYXRpb24gbG9jID0gd2FzbUNhbGxJbmZvLnJl
c3VsdHNbaV07CiAgICAgICAgIEpTVmFsdWUgdmFsdWU7Ci0gICAgICAgIGlmIChsb2MuaXNSZWco
KSkKLSAgICAgICAgICAgIHZhbHVlID0gc3RhY2tQb2ludGVyRnJvbUNhbGxlZVsocmVnaXN0ZXJS
ZXN1bHRzLmZpbmQobG9jLnJlZygpKS0+b2Zmc2V0KCkgKyB3YXNtQ2FsbEluZm8uaGVhZGVyQW5k
QXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSAvIHNpemVvZihKU1ZhbHVlKV07CisgICAgICAgIGlm
IChsb2MuaXNHUFIoKSkgeworI2lmIFVTRShKU1ZBTEUzMl82NCkKKyAgICAgICAgICAgIEFTU0VS
VChyZWdpc3RlclJlc3VsdHMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkg
KyA0ID09IHJlZ2lzdGVyUmVzdWx0cy5maW5kKGxvYy5qc3IoKS50YWdHUFIoKSktPm9mZnNldCgp
KTsKKyNlbmRpZgorICAgICAgICAgICAgdmFsdWUgPSBzdGFja1BvaW50ZXJGcm9tQ2FsbGVlWyhy
ZWdpc3RlclJlc3VsdHMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkgKyB3
YXNtQ2FsbEluZm8uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSAvIHNpemVvZihK
U1ZhbHVlKV07CisgICAgICAgIH0gZWxzZSBpZiAobG9jLmlzRlBSKCkpCisgICAgICAgICAgICB2
YWx1ZSA9IHN0YWNrUG9pbnRlckZyb21DYWxsZWVbKHJlZ2lzdGVyUmVzdWx0cy5maW5kKGxvYy5m
cHIoKSktPm9mZnNldCgpICsgd2FzbUNhbGxJbmZvLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXpl
SW5CeXRlcykgLyBzaXplb2YoSlNWYWx1ZSldOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB2
YWx1ZSA9IHN0YWNrUG9pbnRlckZyb21DYWxsZWVbbG9jLm9mZnNldEZyb21TUCgpIC8gc2l6ZW9m
KEpTVmFsdWUpXTsKICAgICAgICAgcmVzdWx0LT5pbml0aWFsaXplSW5kZXgoaW5pdGlhbGl6YXRp
b25TY29wZSwgaSwgdmFsdWUpOwpAQCAtOTUzLDcgKzk2MCw4IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25XYXNtVGhyb3csIHZvaWQqLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBD
YWxsRnJhCiAgICAgLy8gdG8gdGhlIGV4Y2VwdGlvbiBoYW5kbGVyLiBJZiB3ZSBkaWQgdGhpcywg
d2UgY291bGQgcmVtb3ZlIHRoaXMgdGVycmlibGUgaGFjay4KICAgICAvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDQwCiAgICAgdm0uY2FsbGVlRm9yV2FzbUNh
dGNoID0gY2FsbEZyYW1lLT5jYWxsZWUoKTsKLSAgICBiaXR3aXNlX2Nhc3Q8dWludDY0X3QqPihj
YWxsRnJhbWUpW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0gPSBiaXR3
aXNlX2Nhc3Q8dWludDY0X3Q+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsKKyAgICBSZWdpc3Rlciog
Y2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxSZWdpc3Rlcio+KGNhbGxGcmFtZSkgKyBzdGF0aWNf
Y2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7CisgICAgKmNhbGxlZVNsb3QgPSBiaXR3
aXNlX2Nhc3Q8SlNDZWxsKj4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOwogICAgIHJldHVybiB2bS50
YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKIH0KIApAQCAtOTc5LDcgKzk4Nyw4IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtUmV0aHJvdywgdm9pZCosIChJbnN0YW5jZSog
aW5zdGFuY2UsIENhbGxGCiAgICAgLy8gdG8gdGhlIGV4Y2VwdGlvbiBoYW5kbGVyLiBJZiB3ZSBk
aWQgdGhpcywgd2UgY291bGQgcmVtb3ZlIHRoaXMgdGVycmlibGUgaGFjay4KICAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDQwCiAgICAgdm0uY2FsbGVl
Rm9yV2FzbUNhdGNoID0gY2FsbEZyYW1lLT5jYWxsZWUoKTsKLSAgICBiaXR3aXNlX2Nhc3Q8dWlu
dDY0X3QqPihjYWxsRnJhbWUpW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVl
KV0gPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsKKyAgICBS
ZWdpc3RlciogY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxSZWdpc3Rlcio+KGNhbGxGcmFtZSkg
KyBzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7CisgICAgKmNhbGxlZVNs
b3QgPSBiaXR3aXNlX2Nhc3Q8SlNDZWxsKj4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOwogICAgIHJl
dHVybiB2bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKIH0KIApAQCAtMTAxNCwxMiArMTAyMywx
NCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRvSlNFeGNlcHRpb24s
IHZvaWQqLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbQogICAgIC8vIHRvIHRoZSBleGNlcHRpb24gaGFu
ZGxlci4gSWYgd2UgZGlkIHRoaXMsIHdlIGNvdWxkIHJlbW92ZSB0aGlzIHRlcnJpYmxlIGhhY2su
CiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDQ0MAog
ICAgIHZtLmNhbGxlZUZvcldhc21DYXRjaCA9IGNhbGxGcmFtZS0+Y2FsbGVlKCk7Ci0gICAgYml0
d2lzZV9jYXN0PHVpbnQ2NF90Kj4oY2FsbEZyYW1lKVtzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFt
ZVNsb3Q6OmNhbGxlZSldID0gYml0d2lzZV9jYXN0PHVpbnQ2NF90PihpbnN0YW5jZS0+bW9kdWxl
KCkpOworICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJlZ2lzdGVyKj4o
Y2FsbEZyYW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAg
ICAqY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihpbnN0YW5jZS0+bW9kdWxlKCkp
OwogICAgIHJldHVybiB2bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdzsKIH0KIAogSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZXRyaWV2ZUFuZENsZWFyRXhjZXB0aW9uSWZD
YXRjaGFibGUsIFBvaW50ZXJQYWlyLCAoSW5zdGFuY2UqIGluc3RhbmNlKSkKIHsKKyNpZiBVU0Uo
SlNWQUxVRTY0KQogICAgIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSoganNJbnN0YW5jZSA9IGluc3Rh
bmNlLT5vd25lcjxKU1dlYkFzc2VtYmx5SW5zdGFuY2U+KCk7CiAgICAgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCA9IGpzSW5zdGFuY2UtPmdsb2JhbE9iamVjdCgpOwogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTEwMzksNiArMTA1MCwxMyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVJldHJpZXZlQW5kQ2xlYXJFeGNlcHRpb25JZkNhdGNo
YWJsZSwgUG9pbgogICAgIGlmIChKU1dlYkFzc2VtYmx5RXhjZXB0aW9uKiB3YXNtRXhjZXB0aW9u
ID0ganNEeW5hbWljQ2FzdDxKU1dlYkFzc2VtYmx5RXhjZXB0aW9uKj4odGhyb3duVmFsdWUpKQog
ICAgICAgICBwYXlsb2FkID0gYml0d2lzZV9jYXN0PHZvaWQqPih3YXNtRXhjZXB0aW9uLT5wYXls
b2FkKCkuZGF0YSgpKTsKICAgICByZXR1cm4gUG9pbnRlclBhaXIgeyBiaXR3aXNlX2Nhc3Q8dm9p
ZCo+KEpTVmFsdWU6OmVuY29kZSh0aHJvd25WYWx1ZSkpLCBwYXlsb2FkIH07CisjZWxpZiBVU0Uo
SlNWQUxVRTMyXzY0KQorICAgIC8vIE5vdGU6IFRoaXMgZnVuY3Rpb24gbmVlZHMgdG8gcmV0dXJu
IGEgcG9pbnRlciBhbmQgYSBKU1ZhbHVlLCBzbyB3aWxsIG5lZWQgdG8KKyAgICAvLyBjaGFuZ2Ug
c2lnbmF0dXJlIG9uIEpTVkFMRTMyXzY0LCBuZXZlcnRoZWxlc3MsIGZvciBub3cgaXQncyB1bnVz
ZWQuCisgICAgVU5SRUFDSEFCTEVfRk9SX1BMQVRGT1JNKCk7CisgICAgVU5VU0VEX1BBUkFNKGlu
c3RhbmNlKTsKKyAgICByZXR1cm4geyBudWxscHRyLCBudWxscHRyIH07CisjZW5kaWYKIH0KIAog
fSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtT3BlcmF0aW9ucy5oCmluZGV4IGUyY2IzNTkwNDE5Ni4uNGM5N2M0ZDcxZGI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmgKQEAgLTQ3LDIyICs0Nywy
MyBAQCBuYW1lc3BhY2UgV2FzbSB7CiBjbGFzcyBJbnN0YW5jZTsKIGNsYXNzIFR5cGVEZWZpbml0
aW9uOwogCi12b2lkIGxvYWRWYWx1ZXNJbnRvQnVmZmVyKFByb2JlOjpDb250ZXh0JiwgY29uc3Qg
U3RhY2tNYXAmLCB1aW50NjRfdCogYnVmZmVyKTsKK3R5cGVkZWYgaW50NjRfdCBFbmNvZGVkV2Fz
bVZhbHVlOwogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQordm9pZCBsb2FkVmFsdWVz
SW50b0J1ZmZlcihQcm9iZTo6Q29udGV4dCYsIGNvbnN0IFN0YWNrTWFwJiwgdWludDY0X3QqIGJ1
ZmZlcik7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2VyT1NS
RW50cnlOb3csIHZvaWQsIChQcm9iZTo6Q29udGV4dCYpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJUaWVyVXBOb3csIHZvaWQsIChJbnN0YW5jZSosIHVp
bnQzMl90IGZ1bmN0aW9uSW5kZXgpKTsKICNlbmRpZgogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25XYXNtVW53aW5kLCB2b2lkLCAoQ2FsbEZyYW1lKikpOwogCi1KU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCwgaW50NjRfdCwgKENhbGxGcmFt
ZSosIEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVy
dFRvRjY0LCBkb3VibGUsIChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0kzMiwgaW50MzJfdCwgKENhbGxGcmFtZSosIEpT
VmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjMy
LCBmbG9hdCwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29udmVydFRvSTY0LCBpbnQ2NF90LCAoQ2FsbEZyYW1lKiwgRW5jb2RlZEpT
VmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjY0
LCBkb3VibGUsIChDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIGludDMyX3QsIChDYWxsRnJhbWUqLCBF
bmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252
ZXJ0VG9GMzIsIGZsb2F0LCAoQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUpKTsKIAotSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRKU1Zh
bHVlLCAoQ2FsbEZyYW1lKiwgSW5zdGFuY2UqLCBpbnQ2NF90KSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChDYWxs
RnJhbWUqLCBJbnN0YW5jZSosIEVuY29kZWRXYXNtVmFsdWUpKTsKIAotSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSosIElu
c3RhbmNlKiwgY29uc3QgVHlwZURlZmluaXRpb24qLCBKU1ZhbHVlLCB1aW50NjRfdCosIHVpbnQ2
NF90KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0
cywgdm9pZCwgKENhbGxGcmFtZSosIEluc3RhbmNlKiwgY29uc3QgVHlwZURlZmluaXRpb24qLCBF
bmNvZGVkSlNWYWx1ZSwgdWludDY0X3QqLCB1aW50NjRfdCopKTsKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXksIEpTQXJyYXkqLCAoQ2FsbEZy
YW1lKiwgV2FzbTo6SW5zdGFuY2UqLCBjb25zdCBUeXBlRGVmaW5pdGlvbiosIEluZGV4aW5nVHlw
ZSwgSlNWYWx1ZSopKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNt
V3JpdGVCYXJyaWVyU2xvd1BhdGgsIHZvaWQsIChKU0NlbGwqLCBWTSopKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYWdlQ291bnQuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21QYWdlQ291bnQuaAppbmRleCBiN2Q4YzlmY2Y3MmIuLjNjNzU1
MTJmNDRhOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhZ2VD
b3VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYWdlQ291bnQuaApA
QCAtOTgsNyArOTgsMTIgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJf
dCBwYWdlU2l6ZSA9IDY0ICogS0I7CiBwcml2YXRlOgotICAgIHN0YXRpYyBjb25zdGV4cHIgdWlu
dDMyX3QgbWF4UGFnZUNvdW50ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE1BWF9BUlJBWV9CVUZG
RVJfU0laRSAvIHN0YXRpY19jYXN0PHVpbnQ2NF90PihwYWdlU2l6ZSkpOworICAgIC8vIFRoZSBz
cGVjIHJlcXVpcmVzIHdlIGFyZSBhYmxlIHRvIGluc3RhbnRpYXRlIGEgbWVtb3J5IHdpdGggYSAq
bWF4aW11bSogc2l6ZSBvZiA2NEsgcGFnZXMuCisgICAgLy8gVGhpcyBkb2VzIG5vdCBtZWFuIHRo
ZSBtZW1vcnkgY2FuIG5lY2Vzc2FyaWx5IGdyb3cgdGhhdCBiaWcsIGFuZCB3aGVyZSB0aGUKKyAg
ICAvLyBNQVhfQVJSQVlfQlVGRkVSX1NJWkUgaXMgc21hbGxlciAoZS5nLjogb24gMzItYml0IHBs
YXRmb3JtcyksIHRyeWluZyB0byBncm93IHRoZSBtZW1vcnkKKyAgICAvLyB0aGF0IGxhcmdlIHdp
bGwgZmFpbCwgd2hpY2ggaXMgYWNjZXB0YWJsZSBhY2NvcmRpbmcgdG8gdGhlIHNwZWMuIE5ldmVy
dGhlbGVzcywgd2Ugc2hvdWxkCisgICAgLy8gYmUgYWJsZSB0byBwYXJzZSBzdWNoIGEgbWVtb3J5
IGFuZCBpbnN0YW50aWF0ZSBpdCB3aXRoIGEgc21hbGxlciBpbml0aWFsIHNpemUuCisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXhQYWdlQ291bnQgPSBzdGQ6Om1heDx1aW50MzJfdD4o
NjQqMTAyNCwgTUFYX0FSUkFZX0JVRkZFUl9TSVpFIC8gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHBh
Z2VTaXplKSk7CiAKICAgICB1aW50MzJfdCBtX3BhZ2VDb3VudDsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtUGFyc2VyLmgKaW5kZXggNmE2NDhmMTBiNDE5Li5jMzgwYjdhYTQ0ZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmgKQEAgLTIwOCw3ICsyMDgs
NyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgUGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VVSW50MzIo
dWludDMyX3QmIHJlc3VsdCkKIHsKICAgICBpZiAobGVuZ3RoKCkgPCA0IHx8IG1fb2Zmc2V0ID4g
bGVuZ3RoKCkgLSA0KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmVzdWx0ID0gKnJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDMyX3QqPihzb3VyY2UoKSArIG1fb2Zmc2V0KTsKKyAgICBt
ZW1jcHkoJnJlc3VsdCwgc291cmNlKCkgKyBtX29mZnNldCwgc2l6ZW9mKHVpbnQzMl90KSk7IC8v
IHNyYyBjYW4gYmUgdW5hbGlnbmVkCiAgICAgbV9vZmZzZXQgKz0gNDsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KQEAgLTIxOCw3ICsyMTgsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgUGFyc2VyPFN1Y2Nl
c3NUeXBlPjo6cGFyc2VVSW50NjQodWludDY0X3QmIHJlc3VsdCkKIHsKICAgICBpZiAobGVuZ3Ro
KCkgPCA4IHx8IG1fb2Zmc2V0ID4gbGVuZ3RoKCkgLSA4KQogICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgcmVzdWx0ID0gKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDY0X3QqPihzb3VyY2Uo
KSArIG1fb2Zmc2V0KTsKKyAgICBtZW1jcHkoJnJlc3VsdCwgc291cmNlKCkgKyBtX29mZnNldCwg
c2l6ZW9mKHVpbnQ2NF90KSk7IC8vIHNyYyBjYW4gYmUgdW5hbGlnbmVkCiAgICAgbV9vZmZzZXQg
Kz0gODsKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbVNsb3dQYXRocy5jcHAKaW5kZXggNjQxN2Y4MGIzNWE3Li42Y2M3ZjdmOTZjODUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3BwCkBAIC02NDgsNyAr
NjQ4LDggQEAgV0FTTV9TTE9XX1BBVEhfREVDTCh0aHJvdykKICAgICAvLyB0byB0aGUgZXhjZXB0
aW9uIGhhbmRsZXIuIElmIHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJyaWJs
ZSBoYWNrLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzA0NDAKICAgICB2bS5jYWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgpOwot
ICAgIGJpdHdpc2VfY2FzdDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50PihD
YWxsRnJhbWVTbG90OjpjYWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oanNJbnN0YW5j
ZS0+bW9kdWxlKCkpOworICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJl
Z2lzdGVyKj4oY2FsbEZyYW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2Fs
bGVlKTsKKyAgICAqY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihqc0luc3RhbmNl
LT5tb2R1bGUoKSk7CiAgICAgV0FTTV9SRVRVUk5fVFdPKHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRo
cm93LCBudWxscHRyKTsKIH0KIApAQCAtNjc2LDcgKzY3Nyw4IEBAIFdBU01fU0xPV19QQVRIX0RF
Q0wocmV0aHJvdykKICAgICAvLyB0byB0aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElmIHdlIGRpZCB0
aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNrLgogICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAKICAgICB2bS5jYWxsZWVGb3JX
YXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgpOwotICAgIGJpdHdpc2VfY2FzdDx1aW50NjRf
dCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXSA9
IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOworICAgIFJlZ2lz
dGVyKiBjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PFJlZ2lzdGVyKj4oY2FsbEZyYW1lKSArIHN0
YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAgICAqY2FsbGVlU2xvdCA9
IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CiAgICAgV0FTTV9S
RVRVUk5fVFdPKHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRocm93LCBudWxscHRyKTsKIH0KIApAQCAt
NzIzLDYgKzcyNSwyMTQgQEAgV0FTTV9TTE9XX1BBVEhfREVDTChyZXRyaWV2ZV9hbmRfY2xlYXJf
ZXhjZXB0aW9uKQogICAgIFdBU01fUkVUVVJOX1RXTyhwYywgcGF5bG9hZCk7CiB9CiAKKyNpZiBV
U0UoSlNWQUxVRTMyXzY0KQorV0FTTV9TTE9XX1BBVEhfREVDTChmMzJfY2VpbCkKK3sKKyAgICBV
TlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2Fz
bUYzMkNlaWw+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVy
YW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUod2Fz
bVVuYm94ZWRGbG9hdChzdGQ6OmNlaWwob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRI
X0RFQ0woZjMyX2Zsb29yKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0
byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjMyRmxvb3I+KCk7CisgICAgZmxvYXQgb3BlcmFu
ZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBXQVNN
X1JFVFVSTihKU1ZhbHVlOjplbmNvZGUod2FzbVVuYm94ZWRGbG9hdChzdGQ6OmZsb29yKG9wZXJh
bmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGYzMl90cnVuYykKK3sKKyAgICBVTlVT
RURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUYz
MlRydW5jPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFu
ZCkudW5ib3hlZEZsb2F0KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKHdhc21V
bmJveGVkRmxvYXQoc3RkOjp0cnVuYyhvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhf
REVDTChmMzJfbmVhcmVzdCkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1p
dHM8ZmxvYXQ+Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOworICAgIFVO
VVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNt
RjMyTmVhcmVzdD4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29w
ZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZSh3
YXNtVW5ib3hlZEZsb2F0KHN0ZDo6bmVhcmJ5aW50KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NM
T1dfUEFUSF9ERUNMKGY2NF9jZWlsKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7Cisg
ICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjY0Q2VpbD4oKTsKKyAgICBkb3VibGUg
b3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7Cisg
ICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHN0ZDo6Y2VpbChv
cGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmNjRfZmxvb3IpCit7CisgICAg
VU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdh
c21GNjRGbG9vcj4oKTsKKyAgICBkb3VibGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9v
cGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2Rl
KGpzRG91YmxlTnVtYmVyKHN0ZDo6Zmxvb3Iob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19Q
QVRIX0RFQ0woZjY0X3RydW5jKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAg
YXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjY0VHJ1bmM+KCk7CisgICAgZG91YmxlIG9w
ZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgpOworICAg
IFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGQ6OnRydW5jKG9w
ZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGY2NF9uZWFyZXN0KQoreworICAg
IHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnJvdW5kX3N0eWxlID09
IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAg
ICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GNjROZWFyZXN0PigpOworICAgIGRvdWJs
ZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUoKTsK
KyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoc3RkOjpuZWFy
YnlpbnQob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjMyX2NvbnZlcnRf
dV9pNjQpCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6
cm91bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90b19uZWFyZXN0KTsKKyAgICBVTlVTRURfUEFSQU0o
aW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUYzMkNvbnZlcnRV
STY0PigpOworICAgIHVpbnQ2NF90IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFu
ZCkudW5ib3hlZEludDY0KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKHdhc21V
bmJveGVkRmxvYXQoc3RhdGljX2Nhc3Q8ZmxvYXQ+KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NM
T1dfUEFUSF9ERUNMKGYzMl9jb252ZXJ0X3NfaTY0KQoreworICAgIHN0YXRpY19hc3NlcnQoc3Rk
OjpudW1lcmljX2xpbWl0czxmbG9hdD46OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91bmRfdG9fbmVh
cmVzdCk7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9u
ID0gcGMtPmFzPFdhc21GMzJDb252ZXJ0U0k2ND4oKTsKKyAgICBpbnQ2NF90IG9wZXJhbmQgPSBS
RUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEludDY0KCk7CisgICAgV0FTTV9SRVRV
Uk4oSlNWYWx1ZTo6ZW5jb2RlKHdhc21VbmJveGVkRmxvYXQoc3RhdGljX2Nhc3Q8ZmxvYXQ+KG9w
ZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGY2NF9jb252ZXJ0X3VfaTY0KQor
eworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnJvdW5kX3N0
eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNl
KTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GNjRDb252ZXJ0VUk2ND4oKTsK
KyAgICB1aW50NjRfdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94
ZWRJbnQ2NCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJl
cihzdGF0aWNfY2FzdDxkb3VibGU+KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9E
RUNMKGY2NF9jb252ZXJ0X3NfaTY0KQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmlj
X2xpbWl0czxmbG9hdD46OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7Cisg
ICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFz
PFdhc21GNjRDb252ZXJ0U0k2ND4oKTsKKyAgICBpbnQ2NF90IG9wZXJhbmQgPSBSRUFEKGluc3Ry
dWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEludDY0KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1
ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHN0YXRpY19jYXN0PGRvdWJsZT4ob3BlcmFuZCkpKSk7
Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3VfZjMyKQoreworICAgIFVOVVNF
RF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0
VHJ1bmNVRjMyPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3Bl
cmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkgfHwgb3Bl
cmFuZCA8PSAtMS4wZiB8fCBvcGVyYW5kID49IC0yLjBmICogc3RhdGljX2Nhc3Q8ZmxvYXQ+KElO
VDY0X01JTikpCisgICAgICAgIFdBU01fVEhST1coV2FzbTo6RXhjZXB0aW9uVHlwZTo6T3V0T2ZC
b3VuZHNUcnVuYyk7CisgICAgV0FTTV9SRVRVUk4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG9wZXJh
bmQpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc19mMzIpCit7CisgICAg
VU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdh
c21JNjRUcnVuY1NGMzI+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24u
bV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5kKSB8
fCBvcGVyYW5kIDwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikgfHwgb3BlcmFuZCA+PSAt
c3RhdGljX2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikpCisgICAgICAgIFdBU01fVEhST1coV2FzbTo6
RXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNUcnVuYyk7CisgICAgV0FTTV9SRVRVUk4oc3RhdGlj
X2Nhc3Q8aW50NjRfdD4ob3BlcmFuZCkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90
cnVuY191X2Y2NCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5z
dHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jVUY2ND4oKTsKKyAgICBkb3VibGUgb3BlcmFu
ZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAgaWYg
KHN0ZDo6aXNuYW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8PSAtMS4wIHx8IG9wZXJhbmQgPj0gLTIu
MCAqIHN0YXRpY19jYXN0PGRvdWJsZT4oSU5UNjRfTUlOKSkKKyAgICAgICAgV0FTTV9USFJPVyhX
YXNtOjpFeGNlcHRpb25UeXBlOjpPdXRPZkJvdW5kc1RydW5jKTsKKyAgICBXQVNNX1JFVFVSTihz
dGF0aWNfY2FzdDx1aW50NjRfdD4ob3BlcmFuZCkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNM
KGk2NF90cnVuY19zX2Y2NCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1
dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jU0Y2ND4oKTsKKyAgICBkb3VibGUg
b3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7Cisg
ICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8IHN0YXRpY19jYXN0PGRvdWJs
ZT4oSU5UNjRfTUlOKSB8fCBvcGVyYW5kID49IC1zdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0X01J
TikpCisgICAgICAgIFdBU01fVEhST1coV2FzbTo6RXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNU
cnVuYyk7CisgICAgV0FTTV9SRVRVUk4oc3RhdGljX2Nhc3Q8aW50NjRfdD4ob3BlcmFuZCkpOwor
fQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY19zYXRfZjMyX3UpCit7CisgICAgVU5V
U0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21J
NjRUcnVuY1NhdEYzMlU+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24u
bV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICB1aW50NjRfdCByZXN1bHQ7CisgICAgaWYg
KHN0ZDo6aXNuYW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8PSAtMS4wZikKKyAgICAgICAgcmVzdWx0
ID0gMDsKKyAgICBlbHNlIGlmIChvcGVyYW5kID49IC0yLjBmICogc3RhdGljX2Nhc3Q8ZmxvYXQ+
KElOVDY0X01JTikpCisgICAgICAgIHJlc3VsdCA9IFVJTlQ2NF9NQVg7CisgICAgZWxzZQorICAg
ICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4ob3BlcmFuZCk7CisgICAgV0FTTV9S
RVRVUk4ocmVzdWx0KTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc2F0X2Yz
Ml9zKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlv
biA9IHBjLT5hczxXYXNtSTY0VHJ1bmNTYXRGMzJTPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBS
RUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgaW50NjRfdCBy
ZXN1bHQ7CisgICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkpCisgICAgICAgIHJlc3VsdCA9IDA7
CisgICAgZWxzZSBpZiAob3BlcmFuZCA8IHN0YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4pKQor
ICAgICAgICByZXN1bHQgPSBJTlQ2NF9NSU47CisgICAgZWxzZSBpZiAob3BlcmFuZCA+PSAtc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikpCisgICAgICAgIHJlc3VsdCA9IElOVDY0X01BWDsK
KyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PGludDY0X3Q+KG9wZXJhbmQp
OworICAgIFdBU01fUkVUVVJOKHJlc3VsdCk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0
X3RydW5jX3NhdF9mNjRfdSkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1
dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jU2F0RjY0VT4oKTsKKyAgICBkb3Vi
bGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7
CisgICAgdWludDY0X3QgcmVzdWx0OworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9w
ZXJhbmQgPD0gLTEuMCkKKyAgICAgICAgcmVzdWx0ID0gMDsKKyAgICBlbHNlIGlmIChvcGVyYW5k
ID49IC0yLjAgKiBzdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0X01JTikpCisgICAgICAgIHJlc3Vs
dCA9IFVJTlQ2NF9NQVg7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDx1
aW50NjRfdD4ob3BlcmFuZCk7CisgICAgV0FTTV9SRVRVUk4ocmVzdWx0KTsKK30KKworV0FTTV9T
TE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc2F0X2Y2NF9zKQoreworICAgIFVOVVNFRF9QQVJBTShp
bnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtSTY0VHJ1bmNTYXRG
NjRTPigpOworICAgIGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQp
LnVuYm94ZWREb3VibGUoKTsKKyAgICBpbnQ2NF90IHJlc3VsdDsKKyAgICBpZiAoc3RkOjppc25h
bihvcGVyYW5kKSkKKyAgICAgICAgcmVzdWx0ID0gMDsKKyAgICBlbHNlIGlmIChvcGVyYW5kIDwg
c3RhdGljX2Nhc3Q8ZG91YmxlPihJTlQ2NF9NSU4pKQorICAgICAgICByZXN1bHQgPSBJTlQ2NF9N
SU47CisgICAgZWxzZSBpZiAob3BlcmFuZCA+PSAtc3RhdGljX2Nhc3Q8ZG91YmxlPihJTlQ2NF9N
SU4pKQorICAgICAgICByZXN1bHQgPSBJTlQ2NF9NQVg7CisgICAgZWxzZQorICAgICAgICByZXN1
bHQgPSBzdGF0aWNfY2FzdDxpbnQ2NF90PihvcGVyYW5kKTsKKyAgICBXQVNNX1JFVFVSTihyZXN1
bHQpOworfQorI2VuZGlmCisKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0
aF93YXNtX3Rocm93X2V4Y2VwdGlvbihDYWxsRnJhbWUqIGNhbGxGcmFtZSwgY29uc3QgV2FzbUlu
c3RydWN0aW9uKiBwYywgV2FzbTo6SW5zdGFuY2UqIGluc3RhbmNlLCBXYXNtOjpFeGNlcHRpb25U
eXBlIGV4Y2VwdGlvblR5cGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHBjKTsKQEAgLTczMSwxNiAr
OTQxLDI4IEBAIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3Ro
cm93X2V4Y2VwdGlvbihDYWxsRnJhbWUqIGNhbGxGcmFtCiAKIGV4dGVybiAiQyIgU2xvd1BhdGhS
ZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3BvcGNvdW50KGNvbnN0IFdhc21JbnN0cnVjdGlvbiog
cGMsIHVpbnQzMl90IHgpCiB7Ci0gICAgdm9pZCogcmVzdWx0ID0gYml0d2lzZV9jYXN0PHZvaWQq
PihzdGF0aWNfY2FzdDx1aW50NjRfdD4oX19idWlsdGluX3BvcGNvdW50KHgpKSk7CisgICAgdm9p
ZCogcmVzdWx0ID0gYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDxzaXplX3Q+KF9fYnVp
bHRpbl9wb3Bjb3VudCh4KSkpOwogICAgIFdBU01fUkVUVVJOX1RXTyhwYywgcmVzdWx0KTsKIH0K
IAogZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fcG9wY291bnRs
bChjb25zdCBXYXNtSW5zdHJ1Y3Rpb24qIHBjLCB1aW50NjRfdCB4KQogewotICAgIHZvaWQqIHJl
c3VsdCA9IGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KF9fYnVpbHRp
bl9wb3Bjb3VudGxsKHgpKSk7CisgICAgdm9pZCogcmVzdWx0ID0gYml0d2lzZV9jYXN0PHZvaWQq
PihzdGF0aWNfY2FzdDxzaXplX3Q+KF9fYnVpbHRpbl9wb3Bjb3VudGxsKHgpKSk7CiAgICAgV0FT
TV9SRVRVUk5fVFdPKHBjLCByZXN1bHQpOwogfQogCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKy8v
IE5vdGU6IEFsbCB0aGVzZSBkaXYgYW5kIHJlbSBvcHMgcGVyZm9ybSBleGNlcHRpb24gY2hlY2tz
IGluIGFzbQorZXh0ZXJuICJDIiBpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9kaXZfcyhpbnQz
Ml90IGEsIGludDMyX3QgYikgeyByZXR1cm4gYSAvIGI7IH0KK2V4dGVybiAiQyIgdWludDMyX3Qg
c2xvd19wYXRoX3dhc21faTMyX2Rpdl91KHVpbnQzMl90IGEsIHVpbnQzMl90IGIpIHsgcmV0dXJu
IGEgLyBiOyB9CitleHRlcm4gIkMiIGludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX3JlbV9zKGlu
dDMyX3QgYSwgaW50MzJfdCBiKSB7IHJldHVybiBhICUgYjsgfQorZXh0ZXJuICJDIiB1aW50MzJf
dCBzbG93X3BhdGhfd2FzbV9pMzJfcmVtX3UodWludDMyX3QgYSwgdWludDMyX3QgYikgeyByZXR1
cm4gYSAlIGI7IH0KK2V4dGVybiAiQyIgaW50NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRfZGl2X3Mo
aW50NjRfdCBhLCBpbnQ2NF90IGIpIHsgcmV0dXJuIGEgLyBiOyB9CitleHRlcm4gIkMiIHVpbnQ2
NF90IHNsb3dfcGF0aF93YXNtX2k2NF9kaXZfdSh1aW50NjRfdCBhLCB1aW50NjRfdCBiKSB7IHJl
dHVybiBhIC8gYjsgfQorZXh0ZXJuICJDIiBpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9yZW1f
cyhpbnQ2NF90IGEsIGludDY0X3QgYikgeyByZXR1cm4gYSAlIGI7IH0KK2V4dGVybiAiQyIgdWlu
dDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X3JlbV91KHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIpIHsg
cmV0dXJuIGEgJSBiOyB9CisjZW5kaWYKKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50CiAK
ICNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtU2xvd1BhdGhzLmgKaW5kZXggNjc4YzE3MjgzNzY4Li5lNzAwZGFkNjlhYTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmgKQEAgLTk1LDYgKzk1LDQw
IEBAIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3Rocm93X2V4
Y2VwdGlvbihDYWxsRnJhbWUqLCBjb25zdCBXCiBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlw
ZSBzbG93X3BhdGhfd2FzbV9wb3Bjb3VudChjb25zdCBXYXNtSW5zdHJ1Y3Rpb24qIHBjLCB1aW50
MzJfdCkgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CiBleHRlcm4gIkMiIFNsb3dQ
YXRoUmV0dXJuVHlwZSBzbG93X3BhdGhfd2FzbV9wb3Bjb3VudGxsKGNvbnN0IFdhc21JbnN0cnVj
dGlvbiogcGMsIHVpbnQ2NF90KSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKIAor
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmMzJfY2Vp
bCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmMzJfZmxvb3IpOworV0FTTV9TTE9XX1BB
VEhfSElEREVOX0RFQ0woZjMyX3RydW5jKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGYz
Ml9uZWFyZXN0KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGY2NF9jZWlsKTsKK1dBU01f
U0xPV19QQVRIX0hJRERFTl9ERUNMKGY2NF9mbG9vcik7CitXQVNNX1NMT1dfUEFUSF9ISURERU5f
REVDTChmNjRfdHJ1bmMpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjY0X25lYXJlc3Qp
OworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjMyX2NvbnZlcnRfdV9pNjQpOworV0FTTV9T
TE9XX1BBVEhfSElEREVOX0RFQ0woZjMyX2NvbnZlcnRfc19pNjQpOworV0FTTV9TTE9XX1BBVEhf
SElEREVOX0RFQ0woZjY0X2NvbnZlcnRfdV9pNjQpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RF
Q0woZjY0X2NvbnZlcnRfc19pNjQpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3Ry
dW5jX3VfZjMyKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGk2NF90cnVuY19zX2YzMik7
CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNfdV9mNjQpOworV0FTTV9TTE9X
X1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3NfZjY0KTsKK1dBU01fU0xPV19QQVRIX0hJRERF
Tl9ERUNMKGk2NF90cnVuY19zYXRfZjMyX3UpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0wo
aTY0X3RydW5jX3NhdF9mMzJfcyk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1
bmNfc2F0X2Y2NF91KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGk2NF90cnVuY19zYXRf
ZjY0X3MpOworI2VuZGlmCisKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorZXh0ZXJuICJDIiBpbnQz
Ml90IHNsb3dfcGF0aF93YXNtX2kzMl9kaXZfcyhpbnQzMl90IGEsIGludDMyX3QgYikgUkVGRVJF
TkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMiIHVpbnQzMl90IHNsb3dfcGF0
aF93YXNtX2kzMl9kaXZfdSh1aW50MzJfdCBhLCB1aW50MzJfdCBiKSBSRUZFUkVOQ0VEX0ZST01f
QVNNIFdURl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgaW50MzJfdCBzbG93X3BhdGhfd2FzbV9pMzJf
cmVtX3MoaW50MzJfdCBhLCBpbnQzMl90IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVS
TkFMOworZXh0ZXJuICJDIiB1aW50MzJfdCBzbG93X3BhdGhfd2FzbV9pMzJfcmVtX3UodWludDMy
X3QgYSwgdWludDMyX3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CitleHRl
cm4gIkMiIGludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X2Rpdl9zKGludDY0X3QgYSwgaW50NjRf
dCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgdWludDY0
X3Qgc2xvd19wYXRoX3dhc21faTY0X2Rpdl91KHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIpIFJFRkVS
RU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJDIiBpbnQ2NF90IHNsb3dfcGF0
aF93YXNtX2k2NF9yZW1fcyhpbnQ2NF90IGEsIGludDY0X3QgYikgUkVGRVJFTkNFRF9GUk9NX0FT
TSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMiIHVpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9y
ZW1fdSh1aW50NjRfdCBhLCB1aW50NjRfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRF
Uk5BTDsKKyNlbmRpZgorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6TExJbnQKIAogI2VuZGlmIC8v
IEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21WYWx1ZUxvY2F0aW9uLmNwcAppbmRleCA1MjIzZjNhYjRlNDAuLjY4Yzc4ODg5MDZkYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmNwcApA
QCAtMzUsOCArMzUsMTEgQEAgdm9pZCBWYWx1ZUxvY2F0aW9uOjpkdW1wKFByaW50U3RyZWFtJiBv
dXQpIGNvbnN0CiB7CiAgICAgb3V0LnByaW50KG1fa2luZCk7CiAgICAgc3dpdGNoIChtX2tpbmQp
IHsKLSAgICBjYXNlIFJlZ2lzdGVyOgotICAgICAgICBvdXQucHJpbnQoIigiLCByZWcoKSwgIiki
KTsKKyAgICBjYXNlIEdQUlJlZ2lzdGVyOgorICAgICAgICBvdXQucHJpbnQoIigiLCBqc3IoKSwg
IikiKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgRlBSUmVnaXN0ZXI6CisgICAgICAgIG91
dC5wcmludCgiKCIsIGZwcigpLCAiKSIpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTdGFj
azoKICAgICAgICAgb3V0LnByaW50KCIoIiwgb2Zmc2V0RnJvbUZQKCksICIpIik7CkBAIC01Nyw4
ICs2MCwxMSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOjpXYXNtOwogdm9pZCBwcmludEludGVybmFs
KFByaW50U3RyZWFtJiBvdXQsIFZhbHVlTG9jYXRpb246OktpbmQga2luZCkKIHsKICAgICBzd2l0
Y2ggKGtpbmQpIHsKLSAgICBjYXNlIFZhbHVlTG9jYXRpb246OlJlZ2lzdGVyOgotICAgICAgICBv
dXQucHJpbnQoIlJlZ2lzdGVyIik7CisgICAgY2FzZSBWYWx1ZUxvY2F0aW9uOjpHUFJSZWdpc3Rl
cjoKKyAgICAgICAgb3V0LnByaW50KCJHUFJSZWdpc3RlciIpOworICAgICAgICByZXR1cm47Cisg
ICAgY2FzZSBWYWx1ZUxvY2F0aW9uOjpGUFJSZWdpc3RlcjoKKyAgICAgICAgb3V0LnByaW50KCJG
UFJSZWdpc3RlciIpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBWYWx1ZUxvY2F0aW9uOjpT
dGFjazoKICAgICAgICAgb3V0LnByaW50KCJTdGFjayIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmgKaW5kZXggYTYxZmJhOGJkMDFjLi41Y2I1MTBk
YmJkMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxv
Y2F0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRp
b24uaApAQCAtNDEsMjUgKzQxLDI3IEBAIGNsYXNzIFZhbHVlTG9jYXRpb24gewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGVudW0gS2luZCA6IHVpbnQ4X3Qgewot
ICAgICAgICBSZWdpc3RlciwKKyAgICAgICAgR1BSUmVnaXN0ZXIsCisgICAgICAgIEZQUlJlZ2lz
dGVyLAogICAgICAgICBTdGFjaywKICAgICAgICAgU3RhY2tBcmd1bWVudCwKICAgICB9OwogCiAg
ICAgVmFsdWVMb2NhdGlvbigpCi0gICAgICAgIDogbV9raW5kKFJlZ2lzdGVyKQorICAgICAgICA6
IG1fa2luZChHUFJSZWdpc3RlcikKICAgICB7CiAgICAgfQogCi0gICAgZXhwbGljaXQgVmFsdWVM
b2NhdGlvbihSZWcgcmVnKQotICAgICAgICA6IG1fa2luZChSZWdpc3RlcikKKyAgICBleHBsaWNp
dCBWYWx1ZUxvY2F0aW9uKEpTVmFsdWVSZWdzIHJlZ3MpCisgICAgICAgIDogbV9raW5kKEdQUlJl
Z2lzdGVyKQogICAgIHsKLSAgICAgICAgdS5yZWcgPSByZWc7CisgICAgICAgIHUuanNyID0gcmVn
czsKICAgICB9CiAKLSAgICBzdGF0aWMgVmFsdWVMb2NhdGlvbiByZWcoUmVnIHJlZykKKyAgICBl
eHBsaWNpdCBWYWx1ZUxvY2F0aW9uKEZQUlJlZyByZWcpCisgICAgICAgIDogbV9raW5kKEZQUlJl
Z2lzdGVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFZhbHVlTG9jYXRpb24ocmVnKTsKKyAgICAg
ICAgdS5mcHIgPSByZWc7CiAgICAgfQogCiAgICAgc3RhdGljIFZhbHVlTG9jYXRpb24gc3RhY2so
aW50cHRyX3Qgb2Zmc2V0RnJvbUZQKQpAQCAtODAsMjEgKzgyLDIyIEBAIHB1YmxpYzoKIAogICAg
IEtpbmQga2luZCgpIGNvbnN0IHsgcmV0dXJuIG1fa2luZDsgfQogCi0gICAgYm9vbCBpc1JlZygp
IGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBSZWdpc3RlcjsgfQorICAgIGJvb2wgaXNHUFIoKSBj
b25zdCB7IHJldHVybiBraW5kKCkgPT0gR1BSUmVnaXN0ZXI7IH0KKyAgICBib29sIGlzRlBSKCkg
Y29uc3QgeyByZXR1cm4ga2luZCgpID09IEZQUlJlZ2lzdGVyOyB9CisgICAgYm9vbCBpc1N0YWNr
KCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IFN0YWNrOyB9CisgICAgYm9vbCBpc1N0YWNrQXJn
dW1lbnQoKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gU3RhY2tBcmd1bWVudDsgfQogCi0gICAg
UmVnIHJlZygpIGNvbnN0CisgICAgSlNWYWx1ZVJlZ3MganNyKCkgY29uc3QKICAgICB7Ci0gICAg
ICAgIEFTU0VSVChpc1JlZygpKTsKLSAgICAgICAgcmV0dXJuIHUucmVnOworICAgICAgICBBU1NF
UlQoaXNHUFIoKSk7CisgICAgICAgIHJldHVybiB1LmpzcjsKICAgICB9CiAKLSAgICBib29sIGlz
R1BSKCkgY29uc3QgeyByZXR1cm4gaXNSZWcoKSAmJiByZWcoKS5pc0dQUigpOyB9Ci0gICAgYm9v
bCBpc0ZQUigpIGNvbnN0IHsgcmV0dXJuIGlzUmVnKCkgJiYgcmVnKCkuaXNGUFIoKTsgfQotCi0g
ICAgR1BSUmVnIGdwcigpIGNvbnN0IHsgcmV0dXJuIHJlZygpLmdwcigpOyB9Ci0gICAgRlBSUmVn
IGZwcigpIGNvbnN0IHsgcmV0dXJuIHJlZygpLmZwcigpOyB9Ci0KLSAgICBib29sIGlzU3RhY2so
KSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gU3RhY2s7IH0KKyAgICBGUFJSZWcgZnByKCkgY29u
c3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpc0ZQUigpKTsKKyAgICAgICAgcmV0dXJuIHUuZnBy
OworICAgIH0KIAogICAgIGludHB0cl90IG9mZnNldEZyb21GUCgpIGNvbnN0CiAgICAgewpAQCAt
MTAyLDggKzEwNSw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHUub2Zmc2V0RnJvbUZQOwog
ICAgIH0KIAotICAgIGJvb2wgaXNTdGFja0FyZ3VtZW50KCkgY29uc3QgeyByZXR1cm4ga2luZCgp
ID09IFN0YWNrQXJndW1lbnQ7IH0KLQogICAgIGludHB0cl90IG9mZnNldEZyb21TUCgpIGNvbnN0
CiAgICAgewogICAgICAgICBBU1NFUlQoaXNTdGFja0FyZ3VtZW50KCkpOwpAQCAtMTE0LDcgKzEx
NSw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB1bmlvbiBVIHsKLSAgICAgICAgUmVnIHJl
ZzsKKyAgICAgICAgSlNWYWx1ZVJlZ3MganNyOworICAgICAgICBGUFJSZWcgZnByOwogICAgICAg
ICBpbnRwdHJfdCBvZmZzZXRGcm9tRlA7CiAgICAgICAgIGludHB0cl90IG9mZnNldEZyb21TUDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3BwCmluZGV4IDg5NDIw
ZDg4MTM0Ni4uMGY2MjRlMGI2MWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9KU1RvV2FzbS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
SlNUb1dhc20uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgi
CiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5
SW5zdGFuY2UuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgog
I2luY2x1ZGUgIldhc21DYWxsaW5nQ29udmVudGlvbi5oIgogI2luY2x1ZGUgIldhc21Db250ZXh0
SW5saW5lcy5oIgogI2luY2x1ZGUgIldhc21PcGVyYXRpb25zLmgiCkBAIC00MSwxMyArNDIsMTMg
QEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIHZvaWQgbWFyc2hhbGxKU1Jlc3Vs
dChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgVHlwZURlZmluaXRpb24mIHR5cGVEZWZpbml0aW9u
LCBjb25zdCBDYWxsSW5mb3JtYXRpb24mIHdhc21GcmFtZUNvbnZlbnRpb24sIGNvbnN0IFJlZ2lz
dGVyQXRPZmZzZXRMaXN0JiBzYXZlZFJlc3VsdFJlZ2lzdGVycykKIHsKICAgICBjb25zdCBhdXRv
JiBzaWduYXR1cmUgPSAqdHlwZURlZmluaXRpb24uYXM8RnVuY3Rpb25TaWduYXR1cmU+KCk7Ci0g
ICAgYXV0byBib3hXYXNtUmVzdWx0ID0gW10oQ0NhbGxIZWxwZXJzJiBqaXQsIFR5cGUgdHlwZSwg
UmVnIHNyYywgSlNWYWx1ZVJlZ3MgZHN0KSB7CisgICAgYXV0byBib3hXYXNtUmVzdWx0ID0gW10o
Q0NhbGxIZWxwZXJzJiBqaXQsIFR5cGUgdHlwZSwgVmFsdWVMb2NhdGlvbiBzcmMsIEpTVmFsdWVS
ZWdzIGRzdCkgewogICAgICAgICBzd2l0Y2ggKHR5cGUua2luZCkgewogICAgICAgICBjYXNlIFR5
cGVLaW5kOjpWb2lkOgogICAgICAgICAgICAgaml0Lm1vdmVUcnVzdGVkVmFsdWUoanNVbmRlZmlu
ZWQoKSwgZHN0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJ
MzI6Ci0gICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKHNyYy5ncHIoKSwgZHN0LnBh
eWxvYWRHUFIoKSk7CisgICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKHNyYy5qc3Io
KS5wYXlsb2FkR1BSKCksIGRzdC5wYXlsb2FkR1BSKCkpOwogICAgICAgICAgICAgaml0LmJveElu
dDMyKGRzdC5wYXlsb2FkR1BSKCksIGRzdCwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6CkBAIC01NiwxMyArNTcs
MTcgQEAgdm9pZCBtYXJzaGFsbEpTUmVzdWx0KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBUeXBl
RGVmaW5pdGlvbiYgdHlwZURlZmluaXRpb24sIGMKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0
OiB7CiAgICAgICAgICAgICBqaXQubW92ZVRydXN0ZWRWYWx1ZShqc051bWJlcihwdXJlTmFOKCkp
LCBkc3QpOwogICAgICAgICAgICAgYXV0byBpc05hTiA9IGppdC5icmFuY2hJZk5hTihzcmMuZnBy
KCkpOworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgICAgICBqaXQuYm94RG91YmxlKHNyYy5m
cHIoKSwgZHN0LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworI2Vsc2UKKyAgICAgICAgICAgIGpp
dC5ib3hEb3VibGUoc3JjLmZwcigpLCBkc3QpOworI2VuZGlmCiAgICAgICAgICAgICBpc05hTi5s
aW5rKCZqaXQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVs
dDogewogICAgICAgICAgICAgaWYgKGlzRnVuY3JlZih0eXBlKSB8fCBpc0V4dGVybnJlZih0eXBl
KSkKLSAgICAgICAgICAgICAgICBqaXQubW92ZShzcmMuZ3ByKCksIGRzdC5wYXlsb2FkR1BSKCkp
OworICAgICAgICAgICAgICAgIGppdC5tb3ZlVmFsdWVSZWdzKHNyYy5qc3IoKSwgZHN0KTsKICAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBqaXQuYnJlYWtwb2ludCgpOwogICAgICAg
ICB9CkBAIC03MCw0NCArNzUsODcgQEAgdm9pZCBtYXJzaGFsbEpTUmVzdWx0KENDYWxsSGVscGVy
cyYgaml0LCBjb25zdCBUeXBlRGVmaW5pdGlvbiYgdHlwZURlZmluaXRpb24sIGMKICAgICB9Owog
CiAgICAgaWYgKHNpZ25hdHVyZS5yZXR1cm5zVm9pZCgpKQotICAgICAgICBqaXQubW92ZVRydXN0
ZWRWYWx1ZShqc1VuZGVmaW5lZCgpLCBKU1ZhbHVlUmVncyB7IEdQUkluZm86OnJldHVyblZhbHVl
R1BSIH0pOworICAgICAgICBqaXQubW92ZVRydXN0ZWRWYWx1ZShqc1VuZGVmaW5lZCgpLCBKU1JJ
bmZvOjpyZXR1cm5WYWx1ZUpTUik7CiAgICAgZWxzZSBpZiAoc2lnbmF0dXJlLnJldHVybkNvdW50
KCkgPT0gMSkgewogICAgICAgICBpZiAoc2lnbmF0dXJlLnJldHVyblR5cGUoMCkuaXNJNjQoKSkg
ewotICAgICAgICAgICAgR1BSUmVnIGlucHV0R1BSID0gd2FzbUZyYW1lQ29udmVudGlvbi5yZXN1
bHRzWzBdLnJlZygpLmdwcigpOworICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgaW5wdXRKU1IgPSB3
YXNtRnJhbWVDb252ZW50aW9uLnJlc3VsdHNbMF0uanNyKCk7CiAgICAgICAgICAgICBHUFJSZWcg
d2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCkud2FzbUNv
bnRleHRJbnN0YW5jZVBvaW50ZXI7CiAgICAgICAgICAgICBpZiAoQ29udGV4dDo6dXNlRmFzdFRM
UygpKSB7Ci0gICAgICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IGlucHV0R1BS
ID09IEdQUkluZm86OmFyZ3VtZW50R1BSMSA/IEdQUkluZm86OmFyZ3VtZW50R1BSMCA6IEdQUklu
Zm86OmFyZ3VtZW50R1BSMTsKLSAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNf
c2FtZV92PFdhc206Okluc3RhbmNlKiwgdHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8ZGVjbHR5cGUo
b3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXkpPjo6QXJndW1lbnRUeXBlPDE+Pik7CisgICAg
ICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IGlucHV0SlNSLnBheWxvYWRHUFIo
KSA9PSBHUFJJbmZvOjphcmd1bWVudEdQUjEgPyBHUFJJbmZvOjphcmd1bWVudEdQUjAgOiBHUFJJ
bmZvOjphcmd1bWVudEdQUjE7CisgICAgICAgICAgICAgICAgQVNTRVJUKCFpbnB1dEpTUi51c2Vz
KHdhc21Db250ZXh0SW5zdGFuY2VHUFIpKTsKKyAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0
KHN0ZDo6aXNfc2FtZV92PFdhc206Okluc3RhbmNlKiwgdHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8
ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KT46OkFyZ3VtZW50VHlwZTwxPj4pOwog
ICAgICAgICAgICAgICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZSh3YXNtQ29udGV4dElu
c3RhbmNlR1BSKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50
czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPih3YXNtQ29udGV4dEluc3RhbmNl
R1BSLCBpbnB1dEdQUik7CisgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUo
b3BlcmF0aW9uQ29udmVydFRvQmlnSW50KT4od2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgaW5wdXRK
U1IpOwogICAgICAgICAgICAgaml0LmNhbGxPcGVyYXRpb24oRnVuY3Rpb25QdHI8T3BlcmF0aW9u
UHRyVGFnPihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpKTsKICAgICAgICAgfSBlbHNlCi0gICAg
ICAgICAgICBib3hXYXNtUmVzdWx0KGppdCwgc2lnbmF0dXJlLnJldHVyblR5cGUoMCksIHdhc21G
cmFtZUNvbnZlbnRpb24ucmVzdWx0c1swXS5yZWcoKSwgSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUiB9KTsKKyAgICAgICAgICAgIGJveFdhc21SZXN1bHQoaml0LCBzaWduYXR1
cmUucmV0dXJuVHlwZSgwKSwgd2FzbUZyYW1lQ29udmVudGlvbi5yZXN1bHRzWzBdLCBKU1JJbmZv
OjpyZXR1cm5WYWx1ZUpTUik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgSW5kZXhpbmdUeXBlIGlu
ZGV4aW5nVHlwZSA9IEFycmF5V2l0aFVuZGVjaWRlZDsKLSAgICAgICAgSlNWYWx1ZVJlZ3Mgc2Ny
YXRjaCA9IEpTVmFsdWVSZWdzIHsgd2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3Jh
dGNoR1BSc1sxXSB9OworICAgICAgICBKU1ZhbHVlUmVncyBzY3JhdGNoSlNSID0gSlNWYWx1ZVJl
Z3MgeworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICB3YXNtQ2FsbGluZ0NvbnZl
bnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzJdLAorI2VuZGlmCisgICAgICAgICAgICB3YXNt
Q2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdCisgICAgICAgIH07CisK
KyAgICAgICAgQVNTRVJUKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpICE9IEdQUlJlZzo6SW52YWxp
ZEdQUlJlZyk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgQVNTRVJUKHNjcmF0Y2hK
U1IudGFnR1BSKCkgIT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsKKyAgICAgICAgQVNTRVJUKHNj
cmF0Y2hKU1IucGF5bG9hZEdQUigpICE9IHNjcmF0Y2hKU1IudGFnR1BSKCkpOworI2VuZGlmCisK
ICAgICAgICAgLy8gV2UgY2FuIHVzZSB0aGUgZmlyc3QgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXIg
YXMgYSBzY3JhdGNoIHNpbmNlIGl0IHdpbGwgYWx3YXlzIGJlIG1vdmVkIG9udG8gdGhlIHN0YWNr
IGJlZm9yZSBvdGhlciB2YWx1ZXMuCi0gICAgICAgIEZQUlJlZyBmcHJTY3JhdGNoID0gd2FzbUNh
bGxpbmdDb252ZW50aW9uKCkuZnByQXJnc1swXS5mcHIoKTsKKyAgICAgICAgRlBSUmVnIGZwclNj
cmF0Y2ggPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5mcHJBcmdzWzBdOwogICAgICAgICBib29s
IGhhc0k2NCA9IGZhbHNlOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2lnbmF0
dXJlLnJldHVybkNvdW50KCk7ICsraSkgewogICAgICAgICAgICAgVmFsdWVMb2NhdGlvbiBsb2Mg
PSB3YXNtRnJhbWVDb252ZW50aW9uLnJlc3VsdHNbaV07CiAgICAgICAgICAgICBUeXBlIHR5cGUg
PSBzaWduYXR1cmUucmV0dXJuVHlwZShpKTsKIAogICAgICAgICAgICAgaGFzSTY0IHw9IHR5cGUu
aXNJNjQoKTsKLSAgICAgICAgICAgIGlmIChsb2MuaXNSZWcoKSkgewotICAgICAgICAgICAgICAg
IGlmICghdHlwZS5pc0k2NCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJveFdhc21SZXN1bHQo
aml0LCBzaWduYXR1cmUucmV0dXJuVHlwZShpKSwgbG9jLnJlZygpLCBzY3JhdGNoKTsKLSAgICAg
ICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoc2NyYXRjaCwgQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0UmVnaXN0
ZXJzLmZpbmQobG9jLnJlZygpKS0+b2Zmc2V0KCkgKyB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRl
ckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcykpOwotICAgICAgICAgICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1ZhbHVlUmVncyB7IGxvYy5yZWco
KS5ncHIoKSB9LCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50
ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MucmVnKCkpLT5vZmZzZXQo
KSArIHdhc21GcmFtZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVz
KSk7CisgICAgICAgICAgICBpZiAobG9jLmlzR1BSKCkgfHwgbG9jLmlzRlBSKCkpIHsKKyNpZiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgIEFTU0VSVCghbG9jLmlzR1BSKCkgfHwg
c2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0
KCkgKyA0ID09IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnRhZ0dQUigpKS0+
b2Zmc2V0KCkpOworI2VuZGlmCisgICAgICAgICAgICAgICAgYXV0byBhZGRyZXNzID0gQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHdhc21G
cmFtZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKTsKKyAgICAg
ICAgICAgICAgICBzd2l0Y2ggKHR5cGUua2luZCkgeworICAgICAgICAgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OkYzMjoKKyAgICAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6CisgICAgICAg
ICAgICAgICAgICAgIGJveFdhc21SZXN1bHQoaml0LCB0eXBlLCBsb2MsIHNjcmF0Y2hKU1IpOwor
ICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNoSlNSLCBhZGRyZXNzLndp
dGhPZmZzZXQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuZnByKCkpLT5vZmZzZXQoKSkp
OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFR5cGVL
aW5kOjpJNjQ6CisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKGxvYy5qc3IoKSwg
YWRkcmVzcy53aXRoT2Zmc2V0KHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnBh
eWxvYWRHUFIoKSktPm9mZnNldCgpKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGJveFdhc21SZXN1bHQo
aml0LCB0eXBlLCBsb2MsIHNjcmF0Y2hKU1IpOworICAgICAgICAgICAgICAgICAgICBqaXQuc3Rv
cmVWYWx1ZShzY3JhdGNoSlNSLCBhZGRyZXNzLndpdGhPZmZzZXQoc2F2ZWRSZXN1bHRSZWdpc3Rl
cnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgICAgICBpZiAoIXR5cGUuaXNJNjQoKSkgewogICAgICAgICAgICAgICAgICAg
ICBhdXRvIGxvY2F0aW9uID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3Rh
Y2tQb2ludGVyUmVnaXN0ZXIsIGxvYy5vZmZzZXRGcm9tU1AoKSk7Ci0gICAgICAgICAgICAgICAg
ICAgIFJlZyB0bXAgPSAodHlwZS5pc0YzMigpIHx8IHR5cGUuaXNGNjQoKSkgPyBSZWcoZnByU2Ny
YXRjaCkgOiBSZWcoc2NyYXRjaC5ncHIoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2Fk
NjRUb1JlZyhsb2NhdGlvbiwgdG1wKTsKLSAgICAgICAgICAgICAgICAgICAgYm94V2FzbVJlc3Vs
dChqaXQsIHNpZ25hdHVyZS5yZXR1cm5UeXBlKGkpLCB0bXAsIHNjcmF0Y2gpOwotICAgICAgICAg
ICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNoLCBsb2NhdGlvbik7CisgICAgICAgICAg
ICAgICAgICAgIFZhbHVlTG9jYXRpb24gdG1wOworICAgICAgICAgICAgICAgICAgICBzd2l0Y2gg
KHR5cGUua2luZCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6Cisg
ICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBWYWx1ZUxvY2F0aW9uIHsgZnByU2NyYXRjaCB9
OworICAgICAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRGbG9hdChsb2NhdGlvbiwgZnByU2Ny
YXRjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAg
ICAgY2FzZSBUeXBlS2luZDo6RjY0OgorICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gVmFs
dWVMb2NhdGlvbiB7IGZwclNjcmF0Y2ggfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGppdC5s
b2FkRG91YmxlKGxvY2F0aW9uLCBmcHJTY3JhdGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpJMzI6CisgICAgICAg
ICAgICAgICAgICAgICAgICB0bXAgPSBWYWx1ZUxvY2F0aW9uIHsgc2NyYXRjaEpTUiB9OworICAg
ICAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQzMihsb2NhdGlvbiwgc2NyYXRjaEpTUi5wYXls
b2FkR1BSKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBWYWx1ZUxvY2F0
aW9uIHsgc2NyYXRjaEpTUiB9OworICAgICAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1
ZShsb2NhdGlvbiwgc2NyYXRjaEpTUik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBib3hXYXNtUmVzdWx0
KGppdCwgdHlwZSwgdG1wLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0
b3JlVmFsdWUoc2NyYXRjaEpTUiwgbG9jYXRpb24pOwogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0KIApAQCAtMTM2LDM3ICsxODQsNDcgQEAgdm9pZCBtYXJzaGFsbEpTUmVzdWx0KEND
YWxsSGVscGVycyYgaml0LCBjb25zdCBUeXBlRGVmaW5pdGlvbiYgdHlwZURlZmluaXRpb24sIGMK
IAogICAgICAgICAgICAgICAgIEdQUlJlZyB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gUGlubmVk
UmVnaXN0ZXJJbmZvOjpnZXQoKS53YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlcjsKICAgICAgICAg
ICAgICAgICBpZiAoQ29udGV4dDo6dXNlRmFzdFRMUygpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBHUFJJbmZvOjphcmd1bWVudEdQUjE7Ci0gICAgICAg
ICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lX3Y8V2FzbTo6SW5zdGFuY2Uq
LCB0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxkZWNsdHlwZShvcGVyYXRpb25BbGxvY2F0ZVJlc3Vs
dHNBcnJheSk+OjpBcmd1bWVudFR5cGU8MT4+KTsKKyAgICAgICAgICAgICAgICAgICAgd2FzbUNv
bnRleHRJbnN0YW5jZUdQUiA9IHByZWZlcnJlZEFyZ3VtZW50R1BSPGRlY2x0eXBlKG9wZXJhdGlv
bkNvbnZlcnRUb0JpZ0ludCksIDE+KCk7CisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19hc3Nl
cnQoc3RkOjppc19zYW1lX3Y8V2FzbTo6SW5zdGFuY2UqLCB0eXBlbmFtZSBGdW5jdGlvblRyYWl0
czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpPjo6QXJndW1lbnRUeXBlPDE+Pik7
CiAgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZSh3YXNtQ29u
dGV4dEluc3RhbmNlR1BSKTsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBp
ZiAobG9jLmlzUmVnKCkpCi0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVz
dWx0UmVnaXN0ZXJzLmZpbmQobG9jLnJlZygpKS0+b2Zmc2V0KCkgKyB3YXNtRnJhbWVDb252ZW50
aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcyksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7Ci0gICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8g
bG9jYXRpb24gPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50
ZXJSZWdpc3RlciwgbG9jLm9mZnNldEZyb21TUCgpKTsKLSAgICAgICAgICAgICAgICAgICAgaml0
LmxvYWQ2NFRvUmVnKGxvY2F0aW9uLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3Bl
cmF0aW9uQ29udmVydFRvQmlnSW50KT4od2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKKyAgICAgICAgICAgICAgICBjb25zdGV4cHIgSlNWYWx1ZVJlZ3MgdmFs
dWVKU1IgPSBwcmVmZXJyZWRBcmd1bWVudEpTUjxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9C
aWdJbnQpLCAyPigpOworCisgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGFk
ZHJlc3MgeyBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyIH07CisgICAgICAgICAg
ICAgICAgaWYgKGxvYy5pc0dQUigpIHx8IGxvYy5pc0ZQUigpKSB7CisjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZp
bmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpICsgNCA9PSBzYXZlZFJlc3VsdFJl
Z2lzdGVycy5maW5kKGxvYy5qc3IoKS50YWdHUFIoKSktPm9mZnNldCgpKTsKKyNlbmRpZgorICAg
ICAgICAgICAgICAgICAgICBhZGRyZXNzID0gYWRkcmVzcy53aXRoT2Zmc2V0KHNhdmVkUmVzdWx0
UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpICsgd2FzbUZy
YW1lQ29udmVudGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpOworICAgICAg
ICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gYWRkcmVzcy53
aXRoT2Zmc2V0KGxvYy5vZmZzZXRGcm9tU1AoKSk7CisKKyAgICAgICAgICAgICAgICBqaXQubG9h
ZFZhbHVlKGFkZHJlc3MsIHZhbHVlSlNSKTsKKyAgICAgICAgICAgICAgICBqaXQuc2V0dXBBcmd1
bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KT4od2FzbUNvbnRleHRJbnN0
YW5jZUdQUiwgdmFsdWVKU1IpOwogICAgICAgICAgICAgICAgIGppdC5jYWxsT3BlcmF0aW9uKEZ1
bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KSk7Ci0g
ICAgICAgICAgICAgICAgaWYgKGxvYy5pc1JlZygpKQotICAgICAgICAgICAgICAgICAgICBqaXQu
c3RvcmVWYWx1ZShKU1ZhbHVlUmVncyB7IEdQUkluZm86OnJldHVyblZhbHVlR1BSIH0sIENDYWxs
SGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZl
ZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5yZWcoKSktPm9mZnNldCgpICsgd2FzbUZyYW1lQ29u
dmVudGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpKTsKLSAgICAgICAgICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBsb2NhdGlvbiA9IENDYWxsSGVs
cGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBsb2Mub2Zm
c2V0RnJvbVNQKCkpOwotICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1ZhbHVl
UmVncyB7IEdQUkluZm86OnJldHVyblZhbHVlR1BSIH0sIGxvY2F0aW9uKTsKLSAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoSlNSSW5mbzo6cmV0dXJuVmFs
dWVKU1IsIGFkZHJlc3MpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgR1BS
UmVnIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBQaW5uZWRSZWdpc3RlckluZm86OmdldCgpLndh
c21Db250ZXh0SW5zdGFuY2VQb2ludGVyOwogICAgICAgICBpZiAoQ29udGV4dDo6dXNlRmFzdFRM
UygpKSB7Ci0gICAgICAgICAgICB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gR1BSSW5mbzo6YXJn
dW1lbnRHUFIxOworICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IHByZWZlcnJl
ZEFyZ3VtZW50R1BSPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KSwgMT4o
KTsKICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lX3Y8V2FzbTo6SW5zdGFu
Y2UqLCB0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxkZWNsdHlwZShvcGVyYXRpb25BbGxvY2F0ZVJl
c3VsdHNBcnJheSk+OjpBcmd1bWVudFR5cGU8MT4+KTsKICAgICAgICAgICAgIGppdC5sb2FkV2Fz
bUNvbnRleHRJbnN0YW5jZSh3YXNtQ29udGV4dEluc3RhbmNlR1BSKTsKICAgICAgICAgfQogCi0g
ICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25BbGxvY2F0ZVJlc3Vs
dHNBcnJheSk+KHdhc21Db250ZXh0SW5zdGFuY2VHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bVB0cigmdHlwZURlZmluaXRpb24pLCBpbmRleGluZ1R5cGUsIENDYWxsSGVscGVyczo6c3RhY2tQ
b2ludGVyUmVnaXN0ZXIpOworICAgICAgICBjb25zdGV4cHIgR1BSUmVnIHNhdmVkUmVzdWx0c0dQ
UiA9IHByZWZlcnJlZEFyZ3VtZW50R1BSPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0
c0FycmF5KSwgND4oKTsKKyAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50
ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRzR1BSKTsKKyAgICAgICAgaWYgY29uc3RleHByIChtYXhG
cmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGppdC5zdWJQdHIoQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBDQ2Fs
bEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgQVNTRVJUKHdhc21Db250
ZXh0SW5zdGFuY2VHUFIgIT0gc2F2ZWRSZXN1bHRzR1BSKTsKKyAgICAgICAgaml0LnNldHVwQXJn
dW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KT4od2FzbUNvbnRl
eHRJbnN0YW5jZUdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZ0eXBlRGVmaW5pdGlv
biksIGluZGV4aW5nVHlwZSwgc2F2ZWRSZXN1bHRzR1BSKTsKICAgICAgICAgaml0LmNhbGxPcGVy
YXRpb24oRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25BbGxvY2F0ZVJlc3Vs
dHNBcnJheSkpOworICAgICAgICBpZiBjb25zdGV4cHIgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsKQorICAgICAgICAgICAgaml0LmFkZFB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
MihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIENDYWxsSGVscGVyczo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOworCisgICAgICAgIGppdC5ib3hDZWxsKEdQUkluZm86OnJldHVyblZhbHVl
R1BSLCBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUik7CiAgICAgfQogfQogCkBAIC0xNzgsNyArMjM2
LDExIEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVhdGVKU1RvV2FzbVdy
YXBwZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAgICAgLy8gRklYTUUgU3RvcCB1c2luZyAw
IGFzIGNvZGVCbG9ja3MuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjUzMjEKICAgICBqaXQuZW1pdFplcm9Ub0NhbGxGcmFtZUhlYWRlcihDYWxsRnJhbWVTbG90Ojpj
b2RlQmxvY2spOwogICAgIE1hY3JvQXNzZW1ibGVyOjpEYXRhTGFiZWxQdHIgY2FsbGVlTW92ZUxv
Y2F0aW9uID0gaml0Lm1vdmVXaXRoUGF0Y2goTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIo
bnVsbHB0ciksIEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQUik7Ci0gICAgaml0LmVt
aXRQdXRUb0NhbGxGcmFtZUhlYWRlcihHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIs
IENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7CisgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGNhbGxl
ZVNsb3QgeyBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVl
ICogc2l6ZW9mKFJlZ2lzdGVyKSB9OworICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpub25QcmVz
ZXJ2ZWROb25SZXR1cm5HUFIsIGNhbGxlZVNsb3Qud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSk7
CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihKU1ZhbHVlOjpXYXNtVGFnKSwgY2FsbGVlU2xvdC53aXRoT2Zmc2V0KFRhZ09m
ZnNldCkpOworI2VuZGlmCiAgICAgVmVjdG9yPENvZGVMb2NhdGlvbkRhdGFMYWJlbFB0cjxXYXNt
RW50cnlQdHJUYWc+PiogbGlua2VkQ2FsbGVlTW92ZSA9ICZyZXN1bHQtPmNhbGxlZU1vdmVMb2Nh
dGlvbnM7CiAgICAgaml0LmFkZExpbmtUYXNrKFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikg
ewogICAgICAgICBsaW5rZWRDYWxsZWVNb3ZlLT5hcHBlbmQobGlua0J1ZmZlci5sb2NhdGlvbk9m
PFdhc21FbnRyeVB0clRhZz4oY2FsbGVlTW92ZUxvY2F0aW9uKSk7CkBAIC0yMjMsOSArMjg1LDEy
IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVhdGVKU1RvV2FzbVdyYXBw
ZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzIGNhbGxlZUZyYW1lID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpz
dGFja1BvaW50ZXJSZWdpc3RlciwgMCk7CiAKLSAgICAgICAgLy8gV2UncmUgZ29pbmcgdG8gc2V0
IHRoZSBwaW5uZWQgcmVnaXN0ZXJzIGFmdGVyIHRoaXMuIFNvCi0gICAgICAgIC8vIHdlIGNhbiB1
c2UgdGhpcyBhcyBhIHNjcmF0Y2ggZm9yIG5vdyBzaW5jZSB3ZSBzYXZlZCBpdCBhYm92ZS4KLSAg
ICAgICAgR1BSUmVnIHNjcmF0Y2hSZWcgPSBwaW5uZWRSZWdzLmJhc2VNZW1vcnlQb2ludGVyOwor
ICAgICAgICBKU1ZhbHVlUmVncyBzY3JhdGNoSlNSIHsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQor
ICAgICAgICAgICAgd2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1sy
XSwKKyNlbmRpZgorICAgICAgICAgICAgd2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVT
Y3JhdGNoR1BSc1sxXQorICAgICAgICB9OwogCiAgICAgICAgIGlmICghQ29udGV4dDo6dXNlRmFz
dFRMUygpKSB7CiAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Mo
R1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTQ2FsbGluZ0NvbnZlbnRpb246Omluc3RhbmNl
U3RhY2tPZmZzZXQpLCB3YXNtQ29udGV4dEluc3RhbmNlR1BSKTsKQEAgLTIzOSwyMiArMzA0LDM0
IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVhdGVKU1RvV2FzbVdyYXBw
ZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAgICAgICAgICAgICBUeXBlIHR5cGUgPSBzaWdu
YXR1cmUuYXJndW1lbnRUeXBlKGkpOwogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
IGpzUGFyYW0oR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGpzRnJhbWVDb252ZW50aW9uLnBh
cmFtc1tpXS5vZmZzZXRGcm9tRlAoKSk7CiAgICAgICAgICAgICBpZiAod2FzbUZyYW1lQ29udmVu
dGlvbi5wYXJhbXNbaV0uaXNTdGFja0FyZ3VtZW50KCkpIHsKKyAgICAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MgYWRkciB7IGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUZyYW1l
Q29udmVudGlvbi5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpIH07CiAgICAgICAgICAgICAgICAg
aWYgKHR5cGUuaXNJMzIoKSB8fCB0eXBlLmlzRjMyKCkpIHsKLSAgICAgICAgICAgICAgICAgICAg
aml0LmxvYWQzMihqc1BhcmFtLCBzY3JhdGNoUmVnKTsKLSAgICAgICAgICAgICAgICAgICAgaml0
LnN0b3JlMzIoc2NyYXRjaFJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtRnJhbWVDb252
ZW50aW9uLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkpOworICAgICAgICAgICAgICAgICAgICBq
aXQubG9hZDMyKGpzUGFyYW0sIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAg
ICAgICAgICAgaml0LnN0b3JlMzIoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIGFkZHIud2l0aE9m
ZnNldChQYXlsb2FkT2Zmc2V0KSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAg
ICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMCksIGFkZHIu
d2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgogICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaFJlZyk7Ci0g
ICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZTY0KHNjcmF0Y2hSZWcsIGNhbGxlZUZyYW1lLndp
dGhPZmZzZXQod2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsK
KyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShqc1BhcmFtLCBzY3JhdGNoSlNSKTsK
KyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoc2NyYXRjaEpTUiwgYWRkcik7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBp
ZiAodHlwZS5pc0kzMigpIHx8IHR5cGUuaXNGMzIoKSkKLSAgICAgICAgICAgICAgICAgICAgaml0
LmxvYWQzMlRvUmVnKGpzUGFyYW0sIHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLnJlZygp
KTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjRU
b1JlZyhqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5yZWcoKSk7CisgICAg
ICAgICAgICAgICAgaWYgKHR5cGUuaXNGMzIoKSkKKyAgICAgICAgICAgICAgICAgICAgaml0Lmxv
YWRGbG9hdChqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5mcHIoKSk7Cisg
ICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZS5pc0Y2NCgpKQorICAgICAgICAgICAgICAgICAg
ICBqaXQubG9hZERvdWJsZShqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5m
cHIoKSk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZS5pc0kzMigpKSB7CisgICAgICAg
ICAgICAgICAgICAgIGppdC5sb2FkMzIoanNQYXJhbSwgd2FzbUZyYW1lQ29udmVudGlvbi5wYXJh
bXNbaV0uanNyKCkucGF5bG9hZEdQUigpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAg
ICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSwgd2Fz
bUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0uanNyKCkudGFnR1BSKCkpOworI2VuZGlmCisgICAg
ICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQ
YXJhbSwgd2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0uanNyKCkpOwogICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgfQogCisjaWYgIUNQVShBUk0pIC8vIEFSTSBoYXMgbm8gcGlubmVk
IHJlZ2lzdGVycyBmb3IgV2FzbSBNZW1vcnksIHNvIG5vIG5lZWQgdG8gc2V0IHRoZW0gdXAKICAg
ICBpZiAoISFpbmZvLm1lbW9yeSkgewogICAgICAgICBHUFJSZWcgYmFzZU1lbW9yeSA9IHBpbm5l
ZFJlZ3MuYmFzZU1lbW9yeVBvaW50ZXI7CiAgICAgICAgIEdQUlJlZyBzaXplID0gd2FzbUNhbGxp
bmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1swXTsKQEAgLTI2NSwxNyArMzQyLDE4
IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVhdGVKU1RvV2FzbVdyYXBw
ZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAKICAgICAgICAgR1BSUmVnIGN1cnJlbnRJbnN0
YW5jZUdQUiA9IENvbnRleHQ6OnVzZUZhc3RUTFMoKSA/IGJhc2VNZW1vcnkgOiB3YXNtQ29udGV4
dEluc3RhbmNlR1BSOwogICAgICAgICBpZiAoaXNBUk02NEUoKSkgewotICAgICAgICAgICAgaWYg
KG1vZGUgIT0gV2FzbTo6TWVtb3J5TW9kZTo6U2lnbmFsaW5nKQorICAgICAgICAgICAgaWYgKG1v
ZGUgPT0gV2FzbTo6TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcpCiAgICAgICAgICAgICAgICAg
c2l6ZSA9IHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXI7CiAgICAgICAgICAg
ICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoY3VycmVudEluc3RhbmNlR1BSLCBX
YXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHNDaGVja2luZ1NpemUoKSksIHNpemUp
OwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG1vZGUgIT0gV2FzbTo6TWVtb3J5
TW9kZTo6U2lnbmFsaW5nKQorICAgICAgICAgICAgaWYgKG1vZGUgPT0gV2FzbTo6TWVtb3J5TW9k
ZTo6Qm91bmRzQ2hlY2tpbmcpCiAgICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKGN1cnJlbnRJbnN0YW5jZUdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9m
Q2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKCkpLCBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6
ZVJlZ2lzdGVyKTsKICAgICAgICAgfQogCiAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVy
czo6QWRkcmVzcyhjdXJyZW50SW5zdGFuY2VHUFIsIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNh
Y2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7CiAgICAgICAgIGppdC5jYWdlQ29uZGl0aW9uYWxs
eUFuZFVudGFnKEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJhc2VNZW1vcnksIHNpemUsIHNjcmF0Y2gp
OwogICAgIH0KKyNlbmRpZgogCiAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIGNhbGwgPSBqaXQudGhy
ZWFkU2FmZVBhdGNoYWJsZU5lYXJDYWxsKCk7CiAgICAgdW5zaWduZWQgZnVuY3Rpb25JbmRleFNw
YWNlID0gZnVuY3Rpb25JbmRleCArIGluZm8uaW1wb3J0RnVuY3Rpb25Db3VudCgpOwpAQCAtMjg4
LDcgKzM2Niw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVhdGVKU1Rv
V2FzbVdyYXBwZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0CiAKICAgICBmb3IgKGNvbnN0IFJl
Z2lzdGVyQXRPZmZzZXQmIHJlZ0F0T2Zmc2V0IDogcmVnaXN0ZXJzVG9TcGlsbCkgewogICAgICAg
ICBHUFJSZWcgcmVnID0gcmVnQXRPZmZzZXQucmVnKCkuZ3ByKCk7Ci0gICAgICAgIEFTU0VSVChy
ZWcgIT0gR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICBBU1NFUlQoIUpTUkluZm86
OnJldHVyblZhbHVlSlNSLnVzZXMocmVnKSk7CiAgICAgICAgIHB0cmRpZmZfdCBvZmZzZXQgPSBy
ZWdBdE9mZnNldC5vZmZzZXQoKTsKICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBvZmZzZXQpLCByZWcpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcAppbmRleCA2NTk0NWRj
MTU3Y2UuLmU4NWVjOWEyMjY0OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2FzbVRvSlMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dh
c21Ub0pTLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgog
I2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlJbnN0YW5jZS5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIu
aCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUg
IlRodW5rR2VuZXJhdG9ycy5oIgogI2luY2x1ZGUgIldhc21DYWxsaW5nQ29udmVudGlvbi5oIgog
I2luY2x1ZGUgIldhc21Db250ZXh0SW5saW5lcy5oIgpAQCAtNjksNyArNzAsNyBAQCBFeHBlY3Rl
ZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+
IHdhc21Ub0pTKFZNJiB2bQogICAgIC8vIElmIHdlIGV2ZXIgY2hhbmdlIHRoaXMsIHdlIHdpbGwg
YWxzbyBuZWVkIHRvIGNoYW5nZSBXYXNtQjNJUkdlbmVyYXRvci4KIAogICAgIC8vIEJlbG93LCB3
ZSBhc3N1bWUgdGhhdCB0aGUgSlMgY2FsbGluZyBjb252ZW50aW9uIGlzIGFsd2F5cyBvbiB0aGUg
c3RhY2suCi0gICAgQVNTRVJUKCFqc0NDLmdwckFyZ3Muc2l6ZSgpKTsKKyAgICBBU1NFUlQoIWpz
Q0MuanNyQXJncy5zaXplKCkpOwogICAgIEFTU0VSVCghanNDQy5mcHJBcmdzLnNpemUoKSk7CiAK
ICAgICBqaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKQEAgLTg2LDE0ICs4NywyMiBAQCBFeHBl
Y3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1
cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgIC8vIGZvciB1cyBoZXJlLgogCiAgICAgY29uc3QgdW5z
aWduZWQgbnVtYmVyT2ZQYXJhbWV0ZXJzID0gYXJnQ291bnQgKyAxOyAvLyBUaGVyZSBpcyBhICJ0
aGlzIiBhcmd1bWVudC4KLSAgICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlJlZ3NGb3JDYWxsID0g
Q2FsbEZyYW1lOjpoZWFkZXJTaXplSW5SZWdpc3RlcnMgKyBudW1iZXJPZlBhcmFtZXRlcnM7Cisg
ICAgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZSZWdzRm9yQ2FsbCA9IENhbGxGcmFtZTo6aGVhZGVy
U2l6ZUluUmVnaXN0ZXJzICsgcm91bmRBcmd1bWVudENvdW50VG9BbGlnbkZyYW1lKG51bWJlck9m
UGFyYW1ldGVycyk7CisgICAgQVNTRVJUKCEobnVtYmVyT2ZSZWdzRm9yQ2FsbCAlIHN0YWNrQWxp
Z25tZW50UmVnaXN0ZXJzKCkpKTsKICAgICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkJ5dGVzRm9y
Q2FsbCA9IG51bWJlck9mUmVnc0ZvckNhbGwgKiBzaXplb2YoUmVnaXN0ZXIpIC0gc2l6ZW9mKENh
bGxlckZyYW1lQW5kUEMpOwotICAgIGNvbnN0IHVuc2lnbmVkIHN0YWNrT2Zmc2V0ID0gV1RGOjpy
b3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50Qnl0ZXMoKSwgc3RkOjptYXg8dW5zaWdu
ZWQ+KG51bWJlck9mQnl0ZXNGb3JDYWxsLCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5zaXplT2ZBcmVh
SW5CeXRlcygpKSk7CisgICAgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZCeXRlc0ZvclNhdmVkUmVz
dWx0cyA9IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLnNpemVPZkFyZWFJbkJ5dGVzKCk7CisgICAgY29u
c3QgdW5zaWduZWQgc3RhY2tPZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tB
bGlnbm1lbnRCeXRlcygpLCBzdGQ6Om1heChudW1iZXJPZkJ5dGVzRm9yQ2FsbCwgbnVtYmVyT2ZC
eXRlc0ZvclNhdmVkUmVzdWx0cykpOwogICAgIGppdC5zdWJQdHIoTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW0zMihzdGFja09mZnNldCksIE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdp
c3Rlcik7CiAgICAgSklUOjpBZGRyZXNzIGNhbGxlZUZyYW1lID0gQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgLXN0YXRpY19jYXN0PHB0
cmRpZmZfdD4oc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7CiAKICAgICAvLyBGSVhNRSBtYWtl
IHRoZXNlIGxvb3BzIHdoaWNoIHN3aXRjaCBvbiBzaWduYXR1cmUgaWYgdGhlcmUgYXJlIG1hbnkg
YXJndW1lbnRzIG9uIHRoZSBzdGFjay4gSXQnbGwgb3RoZXJ3aXNlIGJlIGh1Z2UgZm9yIGh1Z2Ug
dHlwZSBkZWZpbml0aW9ucy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NTU0NwogCisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBjb25zdGV4cHIgSlNWYWx1ZVJlZ3Mg
anNBcmcxMCB7IEdQUkluZm86OmFyZ3VtZW50R1BSMCB9OworI2VsaWYgVVNFKEpTVkFMVUUzMl82
NCkKKyAgICBjb25zdGV4cHIgSlNWYWx1ZVJlZ3MganNBcmcxMCB7IEdQUkluZm86OmFyZ3VtZW50
R1BSMSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwIH07CisjZW5kaWYKKwogICAgIC8vIEZpcnN0IGdv
IHRocm91Z2ggdGhlIGludGVnZXIgcGFyYW1ldGVycywgZnJlZWluZyB1cCB0aGVpciByZWdpc3Rl
ciBmb3IgdXNlIGFmdGVyd2FyZHMuCiAgICAgewogICAgICAgICB1bnNpZ25lZCBtYXJzaGFsbGVk
R1BScyA9IDA7CkBAIC0xMTQsMjEgKzEyMywyMSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNv
ZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQog
ICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKICAgICAgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OkkzMjoKICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDogewotICAgICAgICAg
ICAgICAgIEdQUlJlZyBncHJSZWc7Ci0gICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRHUFJz
IDwgd2FzbUNDLmdwckFyZ3Muc2l6ZSgpKQotICAgICAgICAgICAgICAgICAgICBncHJSZWcgPSB3
YXNtQ0MuZ3ByQXJnc1ttYXJzaGFsbGVkR1BSc10uZ3ByKCk7CisgICAgICAgICAgICAgICAgSlNW
YWx1ZVJlZ3MgYXJnUmVnOworICAgICAgICAgICAgICAgIGlmIChtYXJzaGFsbGVkR1BScyA8IHdh
c21DQy5qc3JBcmdzLnNpemUoKSkKKyAgICAgICAgICAgICAgICAgICAgYXJnUmVnID0gd2FzbUND
LmpzckFyZ3NbbWFyc2hhbGxlZEdQUnNdOwogICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAg
ICAgICAgICAgICAgICAvLyBXZSd2ZSBhbHJlYWR5IHNwaWxsZWQgYWxsIGFyZ3VtZW50cywgdGhl
c2UgcmVnaXN0ZXJzIGFyZSBhdmFpbGFibGUgYXMgc2NyYXRjaC4KLSAgICAgICAgICAgICAgICAg
ICAgZ3ByUmVnID0gR1BSSW5mbzo6YXJndW1lbnRHUFIwOwotICAgICAgICAgICAgICAgICAgICBq
aXQubG9hZDY0KEpJVDo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgZnJPZmZz
ZXQpLCBncHJSZWcpOworICAgICAgICAgICAgICAgICAgICBhcmdSZWcgPSBqc0FyZzEwOworICAg
ICAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKEpJVDo6QWRkcmVzcyhHUFJJbmZvOjpjYWxs
RnJhbWVSZWdpc3RlciwgZnJPZmZzZXQpLCBhcmdSZWcpOwogICAgICAgICAgICAgICAgICAgICBm
ck9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICArK21hcnNoYWxsZWRHUFJzOwogICAgICAgICAgICAgICAgIGlmIChhcmdUeXBlLmlz
STMyKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChncHJS
ZWcsIGdwclJlZyk7IC8vIENsZWFyIG5vbi1pbnQzMiBhbmQgbm9uLXRhZyBiaXRzLgotICAgICAg
ICAgICAgICAgICAgICBqaXQuYm94SW50MzIoZ3ByUmVnLCBKU1ZhbHVlUmVncyhncHJSZWcpLCBE
b05vdEhhdmVUYWdSZWdpc3RlcnMpOworICAgICAgICAgICAgICAgICAgICBqaXQuemVyb0V4dGVu
ZDMyVG9Xb3JkKGFyZ1JlZy5wYXlsb2FkR1BSKCksIGFyZ1JlZy5wYXlsb2FkR1BSKCkpOyAvLyBD
bGVhciBub24taW50MzIgYW5kIG5vbi10YWcgYml0cy4KKyAgICAgICAgICAgICAgICAgICAgaml0
LmJveEludDMyKGFyZ1JlZy5wYXlsb2FkR1BSKCksIGFyZ1JlZywgRG9Ob3RIYXZlVGFnUmVnaXN0
ZXJzKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaml0LnN0b3JlNjQoZ3By
UmVnLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSk7CisgICAgICAg
ICAgICAgICAgaml0LnN0b3JlVmFsdWUoYXJnUmVnLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNh
bGxlZUZyYW1lT2Zmc2V0KSk7CiAgICAgICAgICAgICAgICAgY2FsbGVlRnJhbWVPZmZzZXQgKz0g
c2l6ZW9mKFJlZ2lzdGVyKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0K
QEAgLTE0NSw2ICsxNTQsNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVu
dHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgIH0KICAgICAK
ICAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgLy8gSW50ZWdlciByZWdpc3RlcnMg
aGF2ZSBhbHJlYWR5IGJlZW4gc3BpbGxlZCwgdGhlc2UgYXJlIG5vdyBhdmFpbGFibGUuCiAgICAg
ICAgIEdQUlJlZyBkb3VibGVFbmNvZGVPZmZzZXRHUFJSZWcgPSBHUFJJbmZvOjphcmd1bWVudEdQ
UjA7CiAgICAgICAgIEdQUlJlZyBzY3JhdGNoID0gR1BSSW5mbzo6YXJndW1lbnRHUFIxOwpAQCAt
MTYwLDYgKzE3MCw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQ
dHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgICAgICAgICAg
aGFzTWF0ZXJpYWxpemVkRG91YmxlRW5jb2RlT2Zmc2V0ID0gdHJ1ZTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfTsKKyNlbmRpZgogCiAgICAgICAgIHVuc2lnbmVkIG1hcnNoYWxsZWRHUFJzID0g
MDsKICAgICAgICAgdW5zaWduZWQgbWFyc2hhbGxlZEZQUnMgPSAwOwpAQCAtMTY4LDEwICsxNzks
MTQgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJp
bmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KIAogICAgICAgICBhdXRvIG1hcnNoYWxsRlBS
ID0gWyZdIChGUFJSZWcgZnByUmVnKSB7CiAgICAgICAgICAgICBqaXQucHVyaWZ5TmFOKGZwclJl
Zyk7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgICAgIGppdC5tb3ZlRG91YmxlVG82NChm
cHJSZWcsIHNjcmF0Y2gpOwogICAgICAgICAgICAgbWF0ZXJpYWxpemVEb3VibGVFbmNvZGVPZmZz
ZXQoZG91YmxlRW5jb2RlT2Zmc2V0R1BSUmVnKTsKICAgICAgICAgICAgIGppdC5hZGQ2NChkb3Vi
bGVFbmNvZGVPZmZzZXRHUFJSZWcsIHNjcmF0Y2gpOwogICAgICAgICAgICAgaml0LnN0b3JlNjQo
c2NyYXRjaCwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCkpOworI2Vs
c2UKKyAgICAgICAgICAgIGppdC5zdG9yZURvdWJsZShmcHJSZWcsIGNhbGxlZUZyYW1lLndpdGhP
ZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsKKyNlbmRpZgogICAgICAgICAgICAgY2FsbGVlRnJh
bWVPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKICAgICAgICAgICAgICsrbWFyc2hhbGxlZEZQ
UnM7CiAgICAgICAgIH07CkBAIC0xOTEsNyArMjA2LDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYg
dm0KICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkkzMjoKICAgICAgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6Okk2NDogewogICAgICAgICAgICAgICAgIC8vIFNraXBwZWQ6IGhhbmRsZWQgYWJvdmUu
Ci0gICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRHUFJzID49IHdhc21DQy5ncHJBcmdzLnNp
emUoKSkKKyAgICAgICAgICAgICAgICBpZiAobWFyc2hhbGxlZEdQUnMgPj0gd2FzbUNDLmpzckFy
Z3Muc2l6ZSgpKQogICAgICAgICAgICAgICAgICAgICBmck9mZnNldCArPSBzaXplb2YoUmVnaXN0
ZXIpOwogICAgICAgICAgICAgICAgICsrbWFyc2hhbGxlZEdQUnM7CiAgICAgICAgICAgICAgICAg
Y2FsbGVlRnJhbWVPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKQEAgLTIwMCw3ICsyMTUsNyBA
QCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGlu
Z0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMy
OiB7CiAgICAgICAgICAgICAgICAgRlBSUmVnIGZwclJlZzsKICAgICAgICAgICAgICAgICBpZiAo
bWFyc2hhbGxlZEZQUnMgPCB3YXNtQ0MuZnByQXJncy5zaXplKCkpCi0gICAgICAgICAgICAgICAg
ICAgIGZwclJlZyA9IHdhc21DQy5mcHJBcmdzW21hcnNoYWxsZWRGUFJzXS5mcHIoKTsKKyAgICAg
ICAgICAgICAgICAgICAgZnByUmVnID0gd2FzbUNDLmZwckFyZ3NbbWFyc2hhbGxlZEZQUnNdOwog
ICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBhbHJl
YWR5IHNwaWxsZWQgYWxsIGFyZ3VtZW50cywgdGhlc2UgcmVnaXN0ZXJzIGFyZSBhdmFpbGFibGUg
YXMgc2NyYXRjaC4KICAgICAgICAgICAgICAgICAgICAgZnByUmVnID0gRlBSSW5mbzo6YXJndW1l
bnRGUFIwOwpAQCAtMjE0LDcgKzIyOSw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAg
ICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6IHsKICAgICAgICAgICAgICAgICBGUFJSZWcgZnBy
UmVnOwogICAgICAgICAgICAgICAgIGlmIChtYXJzaGFsbGVkRlBScyA8IHdhc21DQy5mcHJBcmdz
LnNpemUoKSkKLSAgICAgICAgICAgICAgICAgICAgZnByUmVnID0gd2FzbUNDLmZwckFyZ3NbbWFy
c2hhbGxlZEZQUnNdLmZwcigpOworICAgICAgICAgICAgICAgICAgICBmcHJSZWcgPSB3YXNtQ0Mu
ZnByQXJnc1ttYXJzaGFsbGVkRlBSc107CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAg
ICAgICAgICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgc3BpbGxlZCBhbGwgYXJndW1lbnRzLCB0aGVz
ZSByZWdpc3RlcnMgYXJlIGF2YWlsYWJsZSBhcyBzY3JhdGNoLgogICAgICAgICAgICAgICAgICAg
ICBmcHJSZWcgPSBGUFJJbmZvOjphcmd1bWVudEZQUjA7CkBAIC0yMzYsMTIgKzI1MSwxNSBAQCBF
eHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0Zh
aWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICB1bnNpZ25lZCBjYWxsZWVGcmFtZU9mZnNl
dCA9IENhbGxGcmFtZVNsb3Q6OmZpcnN0QXJndW1lbnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVv
ZihSZWdpc3RlcikpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGFyZ051bSA9IDA7IGFyZ051bSA8
IGFyZ0NvdW50OyArK2FyZ051bSkgewogICAgICAgICAgICAgaWYgKHNpZ25hdHVyZS5hcmd1bWVu
dFR5cGUoYXJnTnVtKS5pc0k2NCgpKSB7Ci0gICAgICAgICAgICAgICAgaml0LmxvYWRXYXNtQ29u
dGV4dEluc3RhbmNlKEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAgICAgICAgICAgaml0
LmxvYWQ2NChjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIxKTsKLSAgICAgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVj
bHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KT4oR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBH
UFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICAgICAgICAgIHVzaW5nIE9wZXJhdGlvbiA9
IGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk7CisgICAgICAgICAgICAgICAgY29u
c3RleHByIEdQUlJlZyB3YXNtSW5zdGFuY2VHUFIgPSBwcmVmZXJyZWRBcmd1bWVudEdQUjxPcGVy
YXRpb24sIDE+KCk7CisgICAgICAgICAgICAgICAgY29uc3RleHByIEpTVmFsdWVSZWdzIHZhbHVl
SlNSID0gcHJlZmVycmVkQXJndW1lbnRKU1I8T3BlcmF0aW9uLCAyPigpOworICAgICAgICAgICAg
ICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZSh3YXNtSW5zdGFuY2VHUFIpOworICAgICAg
ICAgICAgICAgIGppdC5sb2FkVmFsdWUoY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFt
ZU9mZnNldCksIHZhbHVlSlNSKTsKKyAgICAgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8
T3BlcmF0aW9uPih3YXNtSW5zdGFuY2VHUFIsIHZhbHVlSlNSKTsKICAgICAgICAgICAgICAgICBh
dXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25QdHJUYWcpOwogICAgICAgICAgICAgICAgIGV4
Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRKdW1wSWZFeGNlcHRpb24odm0pKTsKLSAgICAg
ICAgICAgICAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgY2FsbGVlRnJh
bWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCkpOworICAgICAgICAgICAgICAgIGppdC5z
dG9yZVZhbHVlKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0
KGNhbGxlZUZyYW1lT2Zmc2V0KSk7CiAgICAgICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKFs9
XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewogICAgICAgICAgICAgICAgICAgICBsaW5rQnVm
ZmVyLmxpbmsoY2FsbCwgRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25Db252
ZXJ0VG9CaWdJbnQpKTsKICAgICAgICAgICAgICAgICB9KTsKQEAgLTI1MywxNiArMjcxLDIyIEBA
IEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5n
RmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNl
KEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgSW5zdGFuY2U6Om9mZnNldE9mT3duZXIoKSks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgSlNXZWJBc3NlbWJseUluc3RhbmNlOjpvZmZz
ZXRPZk1vZHVsZSgpKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICBqaXQuZW1pdFB1dFRv
Q2FsbEZyYW1lSGVhZGVyKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgQ2FsbEZyYW1lU2xvdDo6Y2Fs
bGVlKTsKLQotICAgIEdQUlJlZyBpbXBvcnRKU0NlbGxHUFJSZWcgPSBHUFJJbmZvOjpyZWdUMDsg
Ly8gQ2FsbGVlIG5lZWRzIHRvIGJlIGluIHJlZ1QwIGZvciBzbG93IHBhdGggYmVsb3cuCisgICAg
Q0NhbGxIZWxwZXJzOjpBZGRyZXNzIGNhbGxlZVNsb3QgeyBHUFJJbmZvOjpjYWxsRnJhbWVSZWdp
c3RlciwgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlICAqIHNpemVvZihSZWdpc3RlcikgfTsKKyAgICBq
aXQuc3RvcmVQdHIoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBjYWxsZWVTbG90KTsKKyNpZiBVU0Uo
SlNWQUxVRTMyXzY0KQorICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMy
KEpTVmFsdWU6OkNlbGxUYWcpLCBjYWxsZWVTbG90LndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7Cisj
ZW5kaWYKIAorICAgIC8vIGpzQXJnMTAgbWlnaHQgb3ZlcmxhcCB3aXRoIHJlZ1QwLCBzbyBzdG9y
ZSAndGhpcycgYXJndW1lbnQgZmlyc3QKKyAgICBqaXQuc3RvcmVWYWx1ZShqc1VuZGVmaW5lZCgp
LCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OnRoaXNBcmd1bWVudCAqIHN0
YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkpLCBqc0FyZzEwKTsKKyAgICBjb25zdGV4
cHIgR1BSUmVnIGltcG9ydEpTQ2VsbEdQUlJlZyA9IEdQUkluZm86OnJlZ1QwOyAvLyBDYWxsZWUg
bmVlZHMgdG8gYmUgaW4gcmVnVDAgZm9yIHNsb3cgcGF0aCBiZWxvdy4KICAgICBBU1NFUlQoIXdh
c21DQy5jYWxsZWVTYXZlUmVnaXN0ZXJzLmdldChpbXBvcnRKU0NlbGxHUFJSZWcpKTsKICAgICBt
YXRlcmlhbGl6ZUltcG9ydEpTQ2VsbChqaXQsIGltcG9ydEluZGV4LCBpbXBvcnRKU0NlbGxHUFJS
ZWcpOwotCi0gICAgaml0LnN0b3JlNjQoaW1wb3J0SlNDZWxsR1BSUmVnLCBjYWxsZWVGcmFtZS53
aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9m
KFJlZ2lzdGVyKSkpKTsKKyAgICBqaXQuc3RvcmVQdHIoaW1wb3J0SlNDZWxsR1BSUmVnLCBjYWxs
ZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAqIHN0YXRpY19jYXN0PGlu
dD4oc2l6ZW9mKFJlZ2lzdGVyKSkpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGppdC5z
dG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBjYWxs
ZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAqIHN0YXRpY19jYXN0PGlu
dD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBUYWdPZmZzZXQpKTsKKyNlbmRpZgogICAgIGppdC5zdG9y
ZTMyKEpJVDo6VHJ1c3RlZEltbTMyKG51bWJlck9mUGFyYW1ldGVycyksIGNhbGxlZUZyYW1lLndp
dGhPZmZzZXQoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgKiBzdGF0
aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgUGF5bG9hZE9mZnNldCkpOwotICAgIGpp
dC5zdG9yZTY0KEpJVDo6VHJ1c3RlZEltbTY0KEpTVmFsdWU6OlZhbHVlVW5kZWZpbmVkKSwgY2Fs
bGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90Ojp0aGlzQXJndW1lbnQgKiBzdGF0aWNf
Y2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CiAKICAgICAvLyBGSVhNRSBUYWlsIGNhbGwg
aWYgdGhlIHdhc20gcmV0dXJuIHR5cGUgaXMgdm9pZCBhbmQgbm8gcmVnaXN0ZXJzIHdlcmUgc3Bp
bGxlZC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTQ4OAogCkBA
IC0yODcsMTEgKzMxMSwxMSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVu
dHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICBjYXNl
IFR5cGVLaW5kOjpJNjQ6IHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBPcHRpbWl6ZSBJNjQgZXh0
cmFjdGlvbiBmcm9tIEJpZ0ludC4KICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAwNTMKLSAgICAgICAgICAgIEdQUlJlZyBkZXN0ID0gd2Fz
bUNhbGxJbmZvLnJlc3VsdHNbMF0uZ3ByKCk7Ci0gICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVu
dHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvSTY0KT4oR1BSSW5mbzo6cmV0dXJuVmFsdWVH
UFIpOworICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgZGVzdCA9IHdhc21DYWxsSW5mby5yZXN1bHRz
WzBdLmpzcigpOworICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJh
dGlvbkNvbnZlcnRUb0k2NCk+KEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsKICAgICAgICAgICAg
IGF1dG8gY2FsbCA9IGppdC5jYWxsKE9wZXJhdGlvblB0clRhZyk7CiAgICAgICAgICAgICBleGNl
cHRpb25DaGVja3MuYXBwZW5kKGppdC5lbWl0SnVtcElmRXhjZXB0aW9uKHZtKSk7Ci0gICAgICAg
ICAgICBqaXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CisgICAgICAgICAg
ICBqaXQubW92ZVZhbHVlUmVncyhKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgZGVzdCk7CiAKICAg
ICAgICAgICAgIGppdC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsK
ICAgICAgICAgICAgICAgICBsaW5rQnVmZmVyLmxpbmsoY2FsbCwgRnVuY3Rpb25QdHI8T3BlcmF0
aW9uUHRyVGFnPihvcGVyYXRpb25Db252ZXJ0VG9JNjQpKTsKQEAgLTMwMSwxOCArMzI1LDIxIEBA
IEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5n
RmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkkzMjogewog
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBkb25lOwogICAgICAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wTGlzdCBzbG93UGF0aDsKLSAgICAgICAgICAgIEdQUlJlZyBkZXN0ID0g
d2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uZ3ByKCk7CisgICAgICAgICAgICBKU1ZhbHVlUmVncyBk
ZXN0SlNSID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uanNyKCk7CiAKLSAgICAgICAgICAgIHNs
b3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIoR1BSSW5mbzo6cmV0dXJuVmFsdWVH
UFIsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycykpOwotICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5k
KGppdC5icmFuY2hJZk5vdEludDMyKEpTVmFsdWVSZWdzKEdQUkluZm86OnJldHVyblZhbHVlR1BS
KSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKSk7Ci0gICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMy
VG9Xb3JkKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBkZXN0KTsKKyAgICAgICAgICAgIHNsb3dQ
YXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1Is
IGppdC5zY3JhdGNoUmVnaXN0ZXIoKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKSk7CisgICAgICAg
ICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIoSlNSSW5mbzo6cmV0dXJu
VmFsdWVKU1IsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycykpOworICAgICAgICAgICAgaml0Lnplcm9F
eHRlbmQzMlRvV29yZChKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUi5wYXlsb2FkR1BSKCksIGRlc3RK
U1IucGF5bG9hZEdQUigpKTsKICAgICAgICAgICAgIGRvbmUuYXBwZW5kKGppdC5qdW1wKCkpOwog
CiAgICAgICAgICAgICBzbG93UGF0aC5saW5rKCZqaXQpOwotICAgICAgICAgICAgaml0LnNldHVw
QXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0kzMik+KEdQUkluZm86OnJldHVy
blZhbHVlR1BSKTsKKyAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVy
YXRpb25Db252ZXJ0VG9JMzIpPihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUik7CiAgICAgICAgICAg
ICBhdXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25QdHJUYWcpOwogICAgICAgICAgICAgZXhj
ZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1bXBJZkV4Y2VwdGlvbih2bSkpOwotICAgICAg
ICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOworICAgICAgICAg
ICAgaml0Lm1vdmUoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IucGF5bG9hZEdQUigpLCBkZXN0SlNS
LnBheWxvYWRHUFIoKSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIGppdC5t
b3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCBkZXN0SlNSLnRhZ0dQUigpKTsKKyNl
bmRpZgogCiAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soWz1dIChMaW5rQnVmZmVyJiBsaW5r
QnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKGNhbGwsIEZ1bmN0aW9u
UHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQ29udmVydFRvSTMyKSk7CkBAIC0zMjIsMjMg
KzM0OSwyNiBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFn
PiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOiB7Ci0gICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CiAgICAgICAgICAgICBGUFJSZWcgZGVzdCA9IHdhc21D
YWxsSW5mby5yZXN1bHRzWzBdLmZwcigpOwogCi0gICAgICAgICAgICBhdXRvIG5vdEFOdW1iZXIg
PSBqaXQuYnJhbmNoSWZOb3ROdW1iZXIoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIERvTm90SGF2
ZVRhZ1JlZ2lzdGVycyk7Ci0gICAgICAgICAgICBhdXRvIGlzRG91YmxlID0gaml0LmJyYW5jaElm
Tm90SW50MzIoSlNWYWx1ZVJlZ3MoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpLCBEb05vdEhhdmVU
YWdSZWdpc3RlcnMpOworICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBkb25lOwor
ICAgICAgICAgICAgYXV0byBub3RBTnVtYmVyID0gaml0LmJyYW5jaElmTm90TnVtYmVyKEpTUklu
Zm86OnJldHVyblZhbHVlSlNSLCBqaXQuc2NyYXRjaFJlZ2lzdGVyKCksIERvTm90SGF2ZVRhZ1Jl
Z2lzdGVycyk7CisgICAgICAgICAgICBhdXRvIGlzRG91YmxlID0gaml0LmJyYW5jaElmTm90SW50
MzIoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CiAgICAg
ICAgICAgICAvLyBXZSdyZSBhbiBpbnQzMgotICAgICAgICAgICAgaml0LnNpZ25FeHRlbmQzMlRv
UHRyKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7Ci0g
ICAgICAgICAgICBqaXQuY29udmVydEludDY0VG9GbG9hdChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQ
UiwgZGVzdCk7CisgICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9GbG9hdChHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CiAgICAgICAgICAgICBkb25lLmFwcGVuZChqaXQuanVtcCgp
KTsKIAogICAgICAgICAgICAgaXNEb3VibGUubGluaygmaml0KTsKKyNpZiBVU0UoSlNWQUxVRTY0
KQogICAgICAgICAgICAgaml0LnVuYm94RG91YmxlV2l0aG91dEFzc2VydGlvbnMoR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJldHVyblZhbHVlR1BSMiwgZGVzdCwgRG9Ob3RIYXZl
VGFnUmVnaXN0ZXJzKTsKKyNlbHNlCisgICAgICAgICAgICBqaXQudW5ib3hEb3VibGUoSlNSSW5m
bzo6cmV0dXJuVmFsdWVKU1IsIGRlc3QpOworI2VuZGlmCiAgICAgICAgICAgICBqaXQuY29udmVy
dERvdWJsZVRvRmxvYXQoZGVzdCwgZGVzdCk7CiAgICAgICAgICAgICBkb25lLmFwcGVuZChqaXQu
anVtcCgpKTsKIAogICAgICAgICAgICAgbm90QU51bWJlci5saW5rKCZqaXQpOwotICAgICAgICAg
ICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0YzMik+KEdQ
UkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxk
ZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9GMzIpPihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUik7
CiAgICAgICAgICAgICBhdXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25QdHJUYWcpOwogICAg
ICAgICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1bXBJZkV4Y2VwdGlvbih2
bSkpOwogICAgICAgICAgICAgaml0Lm1vdmUoRlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIgLCBkZXN0
KTsKQEAgLTM1MSwyMiArMzgxLDI1IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxX
YXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6IHsKLSAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZG9uZTsKICAgICAgICAgICAgIEZQUlJl
ZyBkZXN0ID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uZnByKCk7CisgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CiAKLSAgICAgICAgICAgIGF1dG8gbm90QU51bWJlciA9
IGppdC5icmFuY2hJZk5vdE51bWJlcihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgRG9Ob3RIYXZl
VGFnUmVnaXN0ZXJzKTsKLSAgICAgICAgICAgIGF1dG8gaXNEb3VibGUgPSBqaXQuYnJhbmNoSWZO
b3RJbnQzMihKU1ZhbHVlUmVncyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiksIERvTm90SGF2ZVRh
Z1JlZ2lzdGVycyk7CisgICAgICAgICAgICBhdXRvIG5vdEFOdW1iZXIgPSBqaXQuYnJhbmNoSWZO
b3ROdW1iZXIoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIGppdC5zY3JhdGNoUmVnaXN0ZXIoKSwg
RG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgICAgIGF1dG8gaXNEb3VibGUgPSBqaXQu
YnJhbmNoSWZOb3RJbnQzMihKU1ZhbHVlUmVncyhKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiksIERv
Tm90SGF2ZVRhZ1JlZ2lzdGVycyk7CiAgICAgICAgICAgICAvLyBXZSdyZSBhbiBpbnQzMgotICAg
ICAgICAgICAgaml0LnNpZ25FeHRlbmQzMlRvUHRyKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBH
UFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7Ci0gICAgICAgICAgICBqaXQuY29udmVydEludDY0VG9E
b3VibGUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOworICAgICAgICAgICAgaml0LmNv
bnZlcnRJbnQzMlRvRG91YmxlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBkZXN0KTsKICAgICAg
ICAgICAgIGRvbmUuYXBwZW5kKGppdC5qdW1wKCkpOwogCiAgICAgICAgICAgICBpc0RvdWJsZS5s
aW5rKCZqaXQpOworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgICAgICBqaXQudW5ib3hEb3Vi
bGVXaXRob3V0QXNzZXJ0aW9ucyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIyLCBkZXN0LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworI2Vsc2UKKyAgICAg
ICAgICAgIGppdC51bmJveERvdWJsZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgZGVzdCk7Cisj
ZW5kaWYKICAgICAgICAgICAgIGRvbmUuYXBwZW5kKGppdC5qdW1wKCkpOwogCiAgICAgICAgICAg
ICBub3RBTnVtYmVyLmxpbmsoJmppdCk7Ci0gICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8
ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvRjY0KT4oR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIp
OworICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZl
cnRUb0Y2NCk+KEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsKICAgICAgICAgICAgIGF1dG8gY2Fs
bCA9IGppdC5jYWxsKE9wZXJhdGlvblB0clRhZyk7CiAgICAgICAgICAgICBleGNlcHRpb25DaGVj
a3MuYXBwZW5kKGppdC5lbWl0SnVtcElmRXhjZXB0aW9uKHZtKSk7CiAgICAgICAgICAgICBqaXQu
bW92ZShGUFJJbmZvOjpyZXR1cm5WYWx1ZUZQUiwgZGVzdCk7CkBAIC0zODAsNyArNDEzLDcgQEAg
RXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdG
YWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OiAgewog
ICAgICAgICAgICAgaWYgKFdhc206OmlzRnVuY3JlZihyZXR1cm5UeXBlKSB8fCBXYXNtOjppc0V4
dGVybnJlZihyZXR1cm5UeXBlKSkKLSAgICAgICAgICAgICAgICBqaXQubW92ZShHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUiwgd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uZ3ByKCkpOworICAgICAgICAg
ICAgICAgIGppdC5tb3ZlVmFsdWVSZWdzKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCB3YXNtQ2Fs
bEluZm8ucmVzdWx0c1swXS5qc3IoKSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg
ICAgLy8gRm9yIHRoZSBKYXZhU2NyaXB0IGVtYmVkZGluZywgaW1wb3J0cyB3aXRoIHRoZXNlIHR5
cGVzIGluIHRoZWlyIHR5cGUgZGVmaW5pdGlvbiByZXR1cm4gYXJlIGEgV2ViQXNzZW1ibHkuTW9k
dWxlIHZhbGlkYXRpb24gZXJyb3IuCiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKQEAgLTM5NCwxMiArNDI3LDI5IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVy
Q29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZt
CiAgICAgICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uod2FzbUNvbnRleHRJbnN0
YW5jZUdQUik7CiAgICAgICAgIH0KIAotICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5
cGUob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCBDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoJnR5cGVEZWZpbml0aW9uKSwgR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIsIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIENDYWxsSGVscGVy
czo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBjb25zdGV4cHIgR1BSUmVnIHNhdmVk
UmVzdWx0c0dQUiA9IHByZWZlcnJlZEFyZ3VtZW50R1BSPGRlY2x0eXBlKG9wZXJhdGlvbkl0ZXJh
dGVSZXN1bHRzKSwgND4oKTsKKyAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpzdGFja1Bv
aW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRzR1BSKTsKKyAgICAgICAgaWYgY29uc3RleHByICht
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGppdC5zdWJQdHIoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBD
Q2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgc3RhdGljX2Fzc2Vy
dChub092ZXJsYXAoc2F2ZWRSZXN1bHRzR1BSLCBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUikpOwor
ICAgICAgICBBU1NFUlQod2FzbUNvbnRleHRJbnN0YW5jZUdQUiAhPSBzYXZlZFJlc3VsdHNHUFIp
OworICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uSXRlcmF0ZVJl
c3VsdHMpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1Q
dHIoJnR5cGVEZWZpbml0aW9uKSwgSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIHNhdmVkUmVzdWx0
c0dQUiwgQ0NhbGxIZWxwZXJzOjpmcmFtZVBvaW50ZXJSZWdpc3Rlcik7CiAgICAgICAgIGppdC5j
YWxsT3BlcmF0aW9uKEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uSXRlcmF0
ZVJlc3VsdHMpKTsKKyAgICAgICAgaWYgY29uc3RleHByIChtYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbCkKKyAgICAgICAgICAgIGppdC5hZGRQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
MzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyKTsKKwogICAgICAgICBleGNlcHRpb25DaGVja3MuYXBwZW5kKGppdC5lbWl0
SnVtcElmRXhjZXB0aW9uKHZtKSk7CiAKLSAgICAgICAgZm9yIChSZWdpc3RlckF0T2Zmc2V0IGxv
Y2F0aW9uIDogc2F2ZWRSZXN1bHRSZWdpc3RlcnMpCi0gICAgICAgICAgICBqaXQubG9hZDY0VG9S
ZWcoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0
ZXIsIGxvY2F0aW9uLm9mZnNldCgpKSwgbG9jYXRpb24ucmVnKCkpOworICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgc2lnbmF0dXJlLnJldHVybkNvdW50KCk7ICsraSkgeworICAgICAg
ICAgICAgVmFsdWVMb2NhdGlvbiBsb2MgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1tpXTsKKyAgICAg
ICAgICAgIGlmIChsb2MuaXNHUFIoKSkgeworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAg
ICAgICAgICAgQVNTRVJUKHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnBheWxv
YWRHUFIoKSktPm9mZnNldCgpICsgNCA9PSBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5q
c3IoKS50YWdHUFIoKSktPm9mZnNldCgpKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIGppdC5s
b2FkVmFsdWUoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVy
UmVnaXN0ZXIsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIo
KSktPm9mZnNldCgpKSwgbG9jLmpzcigpKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobG9jLmlz
RlBSKCkpCisgICAgICAgICAgICAgICAgaml0LmxvYWREb3VibGUoQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0UmVnaXN0
ZXJzLmZpbmQobG9jLmZwcigpKS0+b2Zmc2V0KCkpLCBsb2MuZnByKCkpOworICAgICAgICB9CiAg
ICAgfQogCiAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCmluZGV4IDI4
YzUzZTE5ODdjZC4uNTUyMTU2NzlkNDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcApAQCAtMTU3LDYgKzE1Nyw5IEBA
IHB0cmRpZmZfdCBXZWJBc3NlbWJseUZ1bmN0aW9uOjpwcmV2aW91c0luc3RhbmNlT2Zmc2V0KCkg
Y29uc3QKIHsKICAgICBwdHJkaWZmX3QgcmVzdWx0ID0gY2FsbGVlU2F2ZXMoKS5udW1iZXJPZlNl
dFJlZ2lzdGVycygpICogc2l6ZW9mKENQVVJlZ2lzdGVyKTsKICAgICByZXN1bHQgPSAtcmVzdWx0
IC0gc2l6ZW9mKENQVVJlZ2lzdGVyKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIEFTU0VS
VCghY2FsbGVlU2F2ZXMoKS5udW1iZXJPZlNldEZQUnMoKSk7IC8vIEJlY2F1c2UgRlBScyBhcmUg
d2lkZXIgdGhhbiBzaXplb2YoQ1BVUmVnaXN0ZXIpCisjZW5kaWYKICNpZiBBU1NFUlRfRU5BQkxF
RAogICAgIHB0cmRpZmZfdCBtaW5PZmZzZXQgPSAxOwogICAgIGZvciAoY29uc3QgUmVnaXN0ZXJB
dE9mZnNldCYgcmVnQXRPZmZzZXQgOiB1c2VkQ2FsbGVlU2F2ZVJlZ2lzdGVycygpKSB7CkBAIC0x
ODYsOCArMTg5LDYgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFz
c2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICBjb25zdCBhdXRvJiBw
aW5uZWRSZWdzID0gV2FzbTo6UGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKTsKICAgICBSZWdpc3Rl
ckF0T2Zmc2V0TGlzdCByZWdpc3RlcnNUb1NwaWxsID0gdXNlZENhbGxlZVNhdmVSZWdpc3RlcnMo
KTsKIAotICAgIGF1dG8mIG1vZHVsZUluZm9ybWF0aW9uID0gaW5zdGFuY2UoKS0+aW5zdGFuY2Uo
KS5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpOwotCiAgICAgY29uc3QgV2FzbTo6V2FzbUNh
bGxpbmdDb252ZW50aW9uJiB3YXNtQ0MgPSBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKTsK
ICAgICBXYXNtOjpDYWxsSW5mb3JtYXRpb24gd2FzbUNhbGxJbmZvID0gd2FzbUNDLmNhbGxJbmZv
cm1hdGlvbkZvcih0eXBlRGVmaW5pdGlvbik7CiAgICAgV2FzbTo6Q2FsbEluZm9ybWF0aW9uIGpz
Q2FsbEluZm8gPSBXYXNtOjpqc0NhbGxpbmdDb252ZW50aW9uKCkuY2FsbEluZm9ybWF0aW9uRm9y
KHR5cGVEZWZpbml0aW9uLCBXYXNtOjpDYWxsUm9sZTo6Q2FsbGVlKTsKQEAgLTIxNiw5ICsyMTcs
MTQgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVu
Y3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAgICAgaml0LnN0b3JlUHRyKHJlZywg
Q0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBvZmZzZXQp
KTsKICAgICB9CiAKLSAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IFdhc206Ondhc21DYWxsaW5nQ29u
dmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMV07Ci0gICAgYm9vbCBzdGFja0xpbWl0R1BS
SXNDbG9iYmVyZWQgPSBmYWxzZTsKKyAgICBKU1ZhbHVlUmVncyBzY3JhdGNoSlNSIHsKKyNpZiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5w
cm9sb2d1ZVNjcmF0Y2hHUFJzWzJdLAorI2VuZGlmCisgICAgICAgIFdhc206Ondhc21DYWxsaW5n
Q29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMV0KKyAgICB9OwogICAgIEdQUlJlZyBz
dGFja0xpbWl0R1BSID0gV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3Jh
dGNoR1BSc1swXTsKKyAgICBib29sIHN0YWNrTGltaXRHUFJJc0Nsb2JiZXJlZCA9IGZhbHNlOwog
ICAgIGppdC5sb2FkUHRyKHZtLmFkZHJlc3NPZlNvZnRTdGFja0xpbWl0KCksIHN0YWNrTGltaXRH
UFIpOwogCiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBzbG93UGF0aDsKQEAgLTIzNyw3ICsy
NDMsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlG
dW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgICAgICBqaXQuZW1pdE1hdGVyaWFs
aXplVGFnQ2hlY2tSZWdpc3RlcnMoKTsKIAogICAgIC8vIExvb3AgYmFja3dhcmRzIHNvIHdlIGNh
biB1c2UgdGhlIGZpcnN0IGZsb2F0aW5nIHBvaW50IGFyZ3VtZW50IGFzIGEgc2NyYXRjaC4KLSAg
ICBGUFJSZWcgc2NyYXRjaEZQUiA9IFdhc206Ondhc21DYWxsaW5nQ29udmVudGlvbigpLmZwckFy
Z3NbMF0uZnByKCk7CisgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBXYXNtOjp3YXNtQ2FsbGluZ0Nv
bnZlbnRpb24oKS5mcHJBcmdzWzBdOwogICAgIGZvciAodW5zaWduZWQgaSA9IHNpZ25hdHVyZS5h
cmd1bWVudENvdW50KCk7IGktLTspIHsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGNh
bGxlZUZyYW1lID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1Bv
aW50ZXJSZWdpc3RlciwgMCk7CiAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBqc1BhcmFt
KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBqc0NhbGxJbmZvLnBhcmFtc1tpXS5vZmZzZXRG
cm9tRlAoKSk7CkBAIC0yNDYsMTIgKzI1MiwyMCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNF
bnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQog
ICAgICAgICBhdXRvIHR5cGUgPSBzaWduYXR1cmUuYXJndW1lbnRUeXBlKGkpOwogICAgICAgICBz
d2l0Y2ggKHR5cGUua2luZCkgewogICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpJMzI6IHsK
LSAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAg
ICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIoc2NyYXRjaEdQUikpOwotICAg
ICAgICAgICAgaWYgKGlzU3RhY2spCi0gICAgICAgICAgICAgICAgaml0LnN0b3JlMzIoc2NyYXRj
aEdQUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNl
dEZyb21TUCgpKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgaml0Lnplcm9F
eHRlbmQzMlRvV29yZChzY3JhdGNoR1BSLCB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmdwcigpKTsK
KyAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQYXJhbSwgc2NyYXRjaEpTUik7CisgICAgICAg
ICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIoc2NyYXRjaEpTUikpOwor
ICAgICAgICAgICAgaWYgKGlzU3RhY2spIHsKKyAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MgYWRkciB7IGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBhcmFt
c1tpXS5vZmZzZXRGcm9tU1AoKSkgfTsKKyAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihzY3Jh
dGNoSlNSLnBheWxvYWRHUFIoKSwgYWRkci53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyNp
ZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgIGppdC5zdG9yZTMyKENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTMyKDApLCBhZGRyLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7CisjZW5k
aWYKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQz
MlRvV29yZChzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgd2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5q
c3IoKS5wYXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAg
ICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMCksIHdhc21DYWxsSW5mby5w
YXJhbXNbaV0uanNyKCkudGFnR1BSKCkpOworI2VuZGlmCisgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpSZWY6
CkBAIC0yNjAsMjcgKzI3NCwyNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRh
Zz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgICAgICBj
YXNlIFdhc206OlR5cGVLaW5kOjpFeHRlcm5yZWY6IHsKICAgICAgICAgICAgIGlmICghV2FzbTo6
aXNFeHRlcm5yZWYodHlwZSkpIHsKICAgICAgICAgICAgICAgICAvLyBFbnN1cmUgd2UgaGF2ZSBh
IFdBU00gZXhwb3J0ZWQgZnVuY3Rpb24uCi0gICAgICAgICAgICAgICAgaml0LmxvYWQ2NChqc1Bh
cmFtLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAgICBhdXRvIGlzTnVsbCA9IGppdC5icmFu
Y2hJZk51bGwoc2NyYXRjaEdQUik7CisgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShqc1Bh
cmFtLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAgICAgICBhdXRvIGlzTnVsbCA9IGppdC5icmFu
Y2hJZk51bGwoc2NyYXRjaEpTUik7CiAgICAgICAgICAgICAgICAgaWYgKCF0eXBlLmlzTnVsbGFi
bGUoKSkKICAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGlzTnVsbCk7Ci0gICAg
ICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdENlbGwoc2NyYXRjaEdQ
UikpOworICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RDZWxs
KHNjcmF0Y2hKU1IpKTsKIAogICAgICAgICAgICAgICAgIHN0YWNrTGltaXRHUFJJc0Nsb2JiZXJl
ZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgaml0LmVtaXRMb2FkU3RydWN0dXJlKHZtLCBzY3Jh
dGNoR1BSLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAgICBqaXQubG9hZENvbXBhY3RQdHIo
Q0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zm
c2V0KCkpLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgICAgICAgICBqaXQuZW1pdExvYWRTdHJ1Y3R1
cmUodm0sIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7
CisgICAgICAgICAgICAgICAgaml0LmxvYWRDb21wYWN0UHRyKENDYWxsSGVscGVyczo6QWRkcmVz
cyhzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgU3RydWN0dXJlOjpjbGFzc0luZm9PZmZzZXQoKSks
IHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKIAogICAgICAgICAgICAgICAgIHN0YXRpY19hc3Nl
cnQoc3RkOjppc19maW5hbDxXZWJBc3NlbWJseUZ1bmN0aW9uPjo6dmFsdWUsICJXZSBkbyBub3Qg
Y2hlY2sgZm9yIHN1YnR5cGVzIGJlbG93Iik7CiAgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6OmlzX2ZpbmFsPFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uPjo6dmFsdWUsICJXZSBk
byBub3QgY2hlY2sgZm9yIHN1YnR5cGVzIGJlbG93Iik7CiAKLSAgICAgICAgICAgICAgICBhdXRv
IGlzV2FzbUZ1bmN0aW9uID0gaml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6OkVxdWFsLCBzY3Jh
dGNoR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoV2ViQXNzZW1ibHlGdW5jdGlvbjo6
aW5mbygpKSk7Ci0gICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hQdHIo
Q0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tUHRyKFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uOjppbmZvKCkpKSk7CisgICAgICAgICAg
ICAgICAgYXV0byBpc1dhc21GdW5jdGlvbiA9IGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpF
cXVhbCwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0
cihXZWJBc3NlbWJseUZ1bmN0aW9uOjppbmZvKCkpKTsKKyAgICAgICAgICAgICAgICBzbG93UGF0
aC5hcHBlbmQoaml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNoSlNS
LnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKFdlYkFzc2VtYmx5V3Jh
cHBlckZ1bmN0aW9uOjppbmZvKCkpKSk7CiAKICAgICAgICAgICAgICAgICBpc1dhc21GdW5jdGlv
bi5saW5rKCZqaXQpOwogICAgICAgICAgICAgICAgIGlmIChXYXNtOjppc1JlZldpdGhUeXBlSW5k
ZXgodHlwZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3Jh
dGNoR1BSKTsKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKHNjcmF0Y2hHUFIsIFdlYkFzc2VtYmx5RnVuY3Rpb25CYXNlOjpvZmZzZXRPZlNpZ25h
dHVyZUluZGV4KCkpLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGgu
YXBwZW5kKGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEdQUiwg
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHR5cGUuaW5kZXgpKSk7CisgICAgICAgICAgICAg
ICAgICAgIGppdC5sb2FkUHRyKGpzUGFyYW0sIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAg
ICAgICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0
Y2hKU1IucGF5bG9hZEdQUigpLCBXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZTo6b2Zmc2V0T2ZTaWdu
YXR1cmVJbmRleCgpKSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgICAg
ICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFs
LCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHR5
cGUuaW5kZXgpKSk7CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgaWYgKHR5
cGUuaXNOdWxsYWJsZSgpKQpAQCAtMjg4LDE1ICszMDIsMTUgQEAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRT
bG93KCkKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKGlzU3RhY2spIHsKLSAgICAg
ICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOworICAgICAgICAgICAg
ICAgIGppdC5sb2FkVmFsdWUoanNQYXJhbSwgc2NyYXRjaEpTUik7CiAgICAgICAgICAgICAgICAg
aWYgKCF0eXBlLmlzTnVsbGFibGUoKSkKLSAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGguYXBw
ZW5kKGppdC5icmFuY2hJZk51bGwoc2NyYXRjaEdQUikpOwotICAgICAgICAgICAgICAgIGppdC5z
dG9yZTY0KHNjcmF0Y2hHUFIsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBh
cmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkpOworICAgICAgICAgICAgICAgICAgICBzbG93UGF0aC5h
cHBlbmQoaml0LmJyYW5jaElmTnVsbChzY3JhdGNoSlNSKSk7CisgICAgICAgICAgICAgICAgaml0
LnN0b3JlVmFsdWUoc2NyYXRjaEpTUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbElu
Zm8ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSk7CiAgICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgIGF1dG8gZXh0ZXJuR1BSID0gd2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5ncHIo
KTsKLSAgICAgICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIGV4dGVybkdQUik7CisgICAg
ICAgICAgICAgICAgYXV0byBleHRlcm5KU1IgPSB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmpzcigp
OworICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQYXJhbSwgZXh0ZXJuSlNSKTsKICAg
ICAgICAgICAgICAgICBpZiAoIXR5cGUuaXNOdWxsYWJsZSgpKQotICAgICAgICAgICAgICAgICAg
ICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTnVsbChleHRlcm5HUFIpKTsKKyAgICAgICAg
ICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk51bGwoZXh0ZXJuSlNSKSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMzA0LDM1
ICszMTgsNDEgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2Vt
Ymx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAgICAgY2FzZSBXYXNtOjpU
eXBlS2luZDo6RjY0OiB7CiAgICAgICAgICAgICBpZiAoIWlzU3RhY2spCiAgICAgICAgICAgICAg
ICAgc2NyYXRjaEZQUiA9IHdhc21DYWxsSW5mby5wYXJhbXNbaV0uZnByKCk7Ci0gICAgICAgICAg
ICBhdXRvIG1vdmVUb0Rlc3RpbmF0aW9uID0gWyZdICgpIHsKLSAgICAgICAgICAgICAgICBpZiAo
aXNTdGFjaykgewotICAgICAgICAgICAgICAgICAgICBpZiAoc2lnbmF0dXJlLmFyZ3VtZW50VHlw
ZShpKS5pc0YzMigpKQotICAgICAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlRmxvYXQoc2Ny
YXRjaEZQUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9m
ZnNldEZyb21TUCgpKSk7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGppdC5zdG9yZURvdWJsZShzY3JhdGNoRlBSLCBjYWxsZWVGcmFtZS53aXRoT2Zm
c2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB9OwogCi0gICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0s
IHNjcmF0Y2hHUFIpOwotICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5v
dE51bWJlcihzY3JhdGNoR1BSKSk7Ci0gICAgICAgICAgICBhdXRvIGlzSW50MzIgPSBqaXQuYnJh
bmNoSWZJbnQzMihzY3JhdGNoR1BSKTsKLQotICAgICAgICAgICAgaml0LnVuYm94RG91YmxlKHNj
cmF0Y2hHUFIsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOworICAgICAgICAgICAgaml0LmxvYWRW
YWx1ZShqc1BhcmFtLCBzY3JhdGNoSlNSKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAg
ICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihzY3JhdGNoSlNSLCBJbnZh
bGlkR1BSUmVnKSk7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgc3RhY2tM
aW1pdEdQUklzQ2xvYmJlcmVkID0gdHJ1ZTsKKyAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChq
aXQuYnJhbmNoSWZOb3ROdW1iZXIoc2NyYXRjaEpTUiwgc3RhY2tMaW1pdEdQUikpOworI2VuZGlm
CisgICAgICAgICAgICBhdXRvIGlzSW50MzIgPSBqaXQuYnJhbmNoSWZJbnQzMihzY3JhdGNoSlNS
KTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgaml0LnVuYm94RG91YmxlKHNjcmF0
Y2hKU1IucGF5bG9hZEdQUigpLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgc2NyYXRjaEZQUik7
CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgaml0LnVuYm94RG91YmxlKHNj
cmF0Y2hKU1IsIHNjcmF0Y2hGUFIpOworI2VuZGlmCiAgICAgICAgICAgICBpZiAoc2lnbmF0dXJl
LmFyZ3VtZW50VHlwZShpKS5pc0YzMigpKQogICAgICAgICAgICAgICAgIGppdC5jb252ZXJ0RG91
YmxlVG9GbG9hdChzY3JhdGNoRlBSLCBzY3JhdGNoRlBSKTsKLSAgICAgICAgICAgIG1vdmVUb0Rl
c3RpbmF0aW9uKCk7CiAgICAgICAgICAgICBhdXRvIGRvbmUgPSBqaXQuanVtcCgpOwogCiAgICAg
ICAgICAgICBpc0ludDMyLmxpbmsoJmppdCk7CiAgICAgICAgICAgICBpZiAoc2lnbmF0dXJlLmFy
Z3VtZW50VHlwZShpKS5pc0YzMigpKSB7Ci0gICAgICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQz
MlRvRmxvYXQoc2NyYXRjaEdQUiwgc2NyYXRjaEZQUik7Ci0gICAgICAgICAgICAgICAgbW92ZVRv
RGVzdGluYXRpb24oKTsKKyAgICAgICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9GbG9hdChz
Y3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgc2NyYXRjaEZQUik7CiAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShzY3JhdGNoR1BSLCBz
Y3JhdGNoRlBSKTsKLSAgICAgICAgICAgICAgICBtb3ZlVG9EZXN0aW5hdGlvbigpOworICAgICAg
ICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShzY3JhdGNoSlNSLnBheWxvYWRHUFIo
KSwgc2NyYXRjaEZQUik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBkb25lLmxpbmsoJmpp
dCk7Ci0KKyAgICAgICAgICAgIGlmIChpc1N0YWNrKSB7CisgICAgICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzIGFkZHIgeyBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21DYWxsSW5m
by5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpIH07CisgICAgICAgICAgICAgICAgaWYgKHNpZ25h
dHVyZS5hcmd1bWVudFR5cGUoaSkuaXNGMzIoKSkgeworICAgICAgICAgICAgICAgICAgICBqaXQu
c3RvcmVGbG9hdChzY3JhdGNoRlBSLCBhZGRyLndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOwor
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZTMyKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCBhZGRyLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7
CisjZW5kaWYKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgaml0
LnN0b3JlRG91YmxlKHNjcmF0Y2hGUFIsIGFkZHIpOworICAgICAgICAgICAgfQogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKQEAgLTM0Myw0MiArMzYzLDQ0
IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0
aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgLy8gQXQgdGhpcyBwb2ludCwgd2UncmUg
Y29tbWl0dGVkIHRvIGRvaW5nIGEgZmFzdCBjYWxsLgogCiAgICAgaWYgKFdhc206OkNvbnRleHQ6
OnVzZUZhc3RUTFMoKSkgCi0gICAgICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZShzY3Jh
dGNoR1BSKTsKKyAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHNjcmF0Y2hKU1Iu
cGF5bG9hZEdQUigpKTsKICAgICBlbHNlCi0gICAgICAgIGppdC5sb2FkUHRyKHZtLndhc21Db250
ZXh0LnBvaW50ZXJUb0luc3RhbmNlKCksIHNjcmF0Y2hHUFIpOworICAgICAgICBqaXQubG9hZFB0
cih2bS53YXNtQ29udGV4dC5wb2ludGVyVG9JbnN0YW5jZSgpLCBzY3JhdGNoSlNSLnBheWxvYWRH
UFIoKSk7CiAgICAgcHRyZGlmZl90IHByZXZpb3VzSW5zdGFuY2VPZmZzZXQgPSB0aGlzLT5wcmV2
aW91c0luc3RhbmNlT2Zmc2V0KCk7Ci0gICAgaml0LnN0b3JlUHRyKHNjcmF0Y2hHUFIsIENDYWxs
SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgcHJldmlvdXNJbnN0
YW5jZU9mZnNldCkpOworICAgIGppdC5zdG9yZVB0cihzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwg
Q0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBwcmV2aW91
c0luc3RhbmNlT2Zmc2V0KSk7CiAKLSAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW1QdHIoJmluc3RhbmNlKCktPmluc3RhbmNlKCkpLCBzY3JhdGNoR1BSKTsKKyAgICBqaXQubW92
ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoJmluc3RhbmNlKCktPmluc3RhbmNlKCkpLCBz
Y3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAgICAgaWYgKFdhc206OkNvbnRleHQ6OnVzZUZhc3RU
TFMoKSkgCi0gICAgICAgIGppdC5zdG9yZVdhc21Db250ZXh0SW5zdGFuY2Uoc2NyYXRjaEdQUik7
CisgICAgICAgIGppdC5zdG9yZVdhc21Db250ZXh0SW5zdGFuY2Uoc2NyYXRjaEpTUi5wYXlsb2Fk
R1BSKCkpOwogICAgIGVsc2UgewotICAgICAgICBqaXQubW92ZShzY3JhdGNoR1BSLCBwaW5uZWRS
ZWdzLndhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyKTsKLSAgICAgICAgaml0LnN0b3JlUHRyKHNj
cmF0Y2hHUFIsIHZtLndhc21Db250ZXh0LnBvaW50ZXJUb0luc3RhbmNlKCkpOworICAgICAgICBq
aXQubW92ZShzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgcGlubmVkUmVncy53YXNtQ29udGV4dElu
c3RhbmNlUG9pbnRlcik7CisgICAgICAgIGppdC5zdG9yZVB0cihzY3JhdGNoSlNSLnBheWxvYWRH
UFIoKSwgdm0ud2FzbUNvbnRleHQucG9pbnRlclRvSW5zdGFuY2UoKSk7CiAgICAgfQogICAgIGlm
IChzdGFja0xpbWl0R1BSSXNDbG9iYmVyZWQpCiAgICAgICAgIGppdC5sb2FkUHRyKHZtLmFkZHJl
c3NPZlNvZnRTdGFja0xpbWl0KCksIHN0YWNrTGltaXRHUFIpOwotICAgIGppdC5zdG9yZVB0cihz
dGFja0xpbWl0R1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgV2FzbTo6SW5z
dGFuY2U6Om9mZnNldE9mQ2FjaGVkU3RhY2tMaW1pdCgpKSk7CisgICAgaml0LnN0b3JlUHRyKHN0
YWNrTGltaXRHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoSlNSLnBheWxvYWRHUFIo
KSwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkU3RhY2tMaW1pdCgpKSk7CiAKLSAgICBp
ZiAoISFtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkpIHsKKyNpZiAhQ1BVKEFSTSkgLy8gQVJNIGhh
cyBubyBwaW5uZWQgcmVnaXN0ZXJzIGZvciBXYXNtIE1lbW9yeSwgc28gbm8gbmVlZCB0byBzZXQg
dGhlbSB1cAorICAgIGlmICghIWluc3RhbmNlKCktPmluc3RhbmNlKCkubW9kdWxlKCkubW9kdWxl
SW5mb3JtYXRpb24oKS5tZW1vcnkpIHsKICAgICAgICAgR1BSUmVnIGJhc2VNZW1vcnkgPSBwaW5u
ZWRSZWdzLmJhc2VNZW1vcnlQb2ludGVyOwogICAgICAgICBHUFJSZWcgc2NyYXRjaE9yQm91bmRz
Q2hlY2tpbmdTaXplID0gSW52YWxpZEdQUlJlZzsKICAgICAgICAgYXV0byBtb2RlID0gaW5zdGFu
Y2UoKS0+bWVtb3J5TW9kZSgpOwogCiAgICAgICAgIGlmIChpc0FSTTY0RSgpKSB7Ci0gICAgICAg
ICAgICBpZiAobW9kZSAhPSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmcpCisgICAgICAgICAg
ICBpZiAobW9kZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykKICAgICAgICAg
ICAgICAgICBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUgPSBwaW5uZWRSZWdzLmJvdW5kc0No
ZWNraW5nU2l6ZVJlZ2lzdGVyOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHNj
cmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSA9IHN0YWNrTGltaXRHUFI7Ci0gICAgICAgICAgICBq
aXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgV2FzbTo6SW5zdGFu
Y2U6Om9mZnNldE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKCkpLCBzY3JhdGNoT3JCb3VuZHND
aGVja2luZ1NpemUpOworICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNo
ZWRCb3VuZHNDaGVja2luZ1NpemUoKSksIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSk7CiAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAobW9kZSAhPSBXYXNtOjpNZW1vcnlNb2Rl
OjpTaWduYWxpbmcpCi0gICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKHNjcmF0Y2hHUFIsIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZEJvdW5kc0No
ZWNraW5nU2l6ZSgpKSwgcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3Rlcik7Cisg
ICAgICAgICAgICBpZiAobW9kZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykK
KyAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRj
aEpTUi5wYXlsb2FkR1BSKCksIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZEJvdW5kc0No
ZWNraW5nU2l6ZSgpKSwgcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3Rlcik7CiAg
ICAgICAgIH0KIAotICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2Ny
YXRjaEdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNlTWVt
b3J5KTsKLSAgICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5QW5kVW50YWcoR2lnYWNhZ2U6OlBy
aW1pdGl2ZSwgYmFzZU1lbW9yeSwgc2NyYXRjaE9yQm91bmRzQ2hlY2tpbmdTaXplLCBzY3JhdGNo
R1BSKTsKKyAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hK
U1IucGF5bG9hZEdQUigpLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnkoKSks
IGJhc2VNZW1vcnkpOworICAgICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHlBbmRVbnRhZyhHaWdh
Y2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5LCBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUs
IHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKICAgICB9CisjZW5kaWYKIAogICAgIC8vIFdlIHVz
ZSB0aGlzIGNhbGxlZSB0byBpbmRpY2F0ZSBob3cgdG8gdW53aW5kIHBhc3QgdGhlc2UgdHlwZXMg
b2YgZnJhbWVzOgogICAgIC8vIDEuIFdlIG5lZWQgdG8ga25vdyB3aGVyZSB0byBnZXQgY2FsbGVl
IHNhdmVzLgpAQCAtMzkwLDggKzQxMiw4IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5
UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAg
Ly8gRklYTUU6IEN1cnJlbnRseSB3ZSBqdXN0IGRvIGFuIGluZGlyZWN0IGp1bXAuIEJ1dCB3ZSBz
aG91bGQgdGVhY2ggdGhlIE1vZHVsZQogICAgIC8vIGhvdyB0byByZXBhdGNoIHVzOgogICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY1NzAKLSAgICBqaXQu
bG9hZFB0cihlbnRyeXBvaW50TG9hZExvY2F0aW9uKCksIHNjcmF0Y2hHUFIpOwotICAgIGppdC5j
YWxsKHNjcmF0Y2hHUFIsIFdhc21FbnRyeVB0clRhZyk7CisgICAgaml0LmxvYWRQdHIoZW50cnlw
b2ludExvYWRMb2NhdGlvbigpLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CisgICAgaml0LmNh
bGwoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIFdhc21FbnRyeVB0clRhZyk7CiAKICAgICBtYXJz
aGFsbEpTUmVzdWx0KGppdCwgdHlwZURlZmluaXRpb24sIHdhc21DYWxsSW5mbywgc2F2ZWRSZXN1
bHRSZWdpc3RlcnMpOwogCkBAIC00MjEsNyArNDQzLDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
PEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93
KCkKICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIodGhpcyksIEdQUklu
Zm86OnJlZ1QwKTsKICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICNpZiBDUFUoQVJN
NjRFKQotICAgIGppdC51bnRhZ1JldHVybkFkZHJlc3Moc2NyYXRjaEdQUik7CisgICAgaml0LnVu
dGFnUmV0dXJuQWRkcmVzcyhzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAjZW5kaWYKICAgICBh
dXRvIGp1bXBUb0hvc3RDYWxsVGh1bmsgPSBqaXQuanVtcCgpOwogCkBAIC00MjksNyArNDUxLDcg
QEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rp
b246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICBpZiAoVU5MSUtFTFkobGlua0J1ZmZlci5k
aWRGYWlsVG9BbGxvY2F0ZSgpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBsaW5r
QnVmZmVyLmxpbmsoanVtcFRvSG9zdENhbGxUaHVuaywgQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRy
eVB0clRhZz4oZXhlY3V0YWJsZSgpLT5lbnRyeXBvaW50Rm9yKENvZGVGb3JDYWxsLCBNdXN0Q2hl
Y2tBcml0eSkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOworICAgIGxpbmtCdWZmZXIubGluayhqdW1w
VG9Ib3N0Q2FsbFRodW5rLCBDb2RlTG9jYXRpb25MYWJlbDxKU0VudHJ5UHRyVGFnPihleGVjdXRh
YmxlKCktPmVudHJ5cG9pbnRGb3IoQ29kZUZvckNhbGwsIE11c3RDaGVja0FyaXR5KSkpOwogICAg
IG1fanNDYWxsRW50cnlwb2ludCA9IEZJTkFMSVpFX1dBU01fQ09ERShsaW5rQnVmZmVyLCBXYXNt
RW50cnlQdHJUYWcsICJKUy0+V2FzbSBJQyIpOwogICAgIHJldHVybiBtX2pzQ2FsbEVudHJ5cG9p
bnQuY29kZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbENvbnN0cnVjdG9yLmNwcAppbmRleCBhMjIxYjJlY2I3
MTMuLmNjN2NiZTNlNDc4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAKQEAgLTE1OCw3
ICsxNTgsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJs
eUdsb2JhbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIFJlZjxXYXNtOjpHbG9iYWw+
IHdhc21HbG9iYWwgPSBXYXNtOjpHbG9iYWw6OmNyZWF0ZSh0eXBlLCBtdXRhYmlsaXR5LCBpbml0
aWFsVmFsdWUpOwogICAgIEpTV2ViQXNzZW1ibHlHbG9iYWwqIGpzV2ViQXNzZW1ibHlHbG9iYWwg
PSBKU1dlYkFzc2VtYmx5R2xvYmFsOjp0cnlDcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgd2ViQXNz
ZW1ibHlHbG9iYWxTdHJ1Y3R1cmUsIFdURk1vdmUod2FzbUdsb2JhbCkpOwogICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04odGhyb3dTY29wZSwgeyB9KTsKLSAgICBlbnN1cmVTdGlsbEFsaXZlSGVyZShi
aXR3aXNlX2Nhc3Q8dm9pZCo+KGluaXRpYWxWYWx1ZSkpOyAvLyBFbnN1cmUgdGhpcyBpcyBrZXB0
IGFsaXZlIHdoaWxlIGNyZWF0aW5nIEpTV2ViQXNzZW1ibHlHbG9iYWwuCisgICAgZW5zdXJlU3Rp
bGxBbGl2ZUhlcmUoaW5pdGlhbFZhbHVlKTsgLy8gRW5zdXJlIHRoaXMgaXMga2VwdCBhbGl2ZSB3
aGlsZSBjcmVhdGluZyBKU1dlYkFzc2VtYmx5R2xvYmFsLgogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNXZWJBc3NlbWJseUdsb2JhbCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAppbmRleCBi
YzljYjA2OGQ4YTMuLjk3YzNlYzkyMzlkNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcApAQCAtNTU0LDcg
KzU1NCw3IEBAIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVFeHBvcnRz
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgICAgICAgICAgICAgSlNXZWJBc3Nl
bWJseUdsb2JhbCogZ2xvYmFsVmFsdWUgPSBKU1dlYkFzc2VtYmx5R2xvYmFsOjp0cnlDcmVhdGUo
Z2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseUdsb2JhbFN0cnVjdHVy
ZSgpLCBXVEZNb3ZlKGdsb2JhbFJlZikpOwogICAgICAgICAgICAgICAgIHNjb3BlLmFzc2VydE5v
RXhjZXB0aW9uKCk7CiAgICAgICAgICAgICAgICAgbV9pbnN0YW5jZS0+bGlua0dsb2JhbCh2bSwg
Z2xvYmFsSW5kZXgsIGdsb2JhbFZhbHVlKTsKLSAgICAgICAgICAgICAgICBlbnN1cmVTdGlsbEFs
aXZlSGVyZShiaXR3aXNlX2Nhc3Q8dm9pZCo+KGluaXRpYWxCaXRzKSk7IC8vIEVuc3VyZSB0aGlz
IGlzIGtlcHQgYWxpdmUgd2hpbGUgY3JlYXRpbmcgSlNXZWJBc3NlbWJseUdsb2JhbC4KKyAgICAg
ICAgICAgICAgICBlbnN1cmVTdGlsbEFsaXZlSGVyZShpbml0aWFsQml0cyk7IC8vIEVuc3VyZSB0
aGlzIGlzIGtlcHQgYWxpdmUgd2hpbGUgY3JlYXRpbmcgSlNXZWJBc3NlbWJseUdsb2JhbC4KICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmggYi9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybUVuYWJsZS5oCmluZGV4IGNiZTdjYzE2NWQ2YS4uN2JkMzU0NjkyNTMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtRW5hYmxlLmgKQEAgLTU4NSwxMiArNTg1LDEyIEBACiAjZW5kaWYKIAogI2lmIFVT
RShKU1ZBTFVFMzJfNjQpCi0vKiBEaXNhYmxlIFdlYkFzc2VtYmx5IG9uIGFsbCAzMmJpdCBwbGF0
Zm9ybXMuIEl0cyBMTEludCB0aWVyIGNvdWxkCi0gKiB3b3JrIG9uIHRoZW0sIGJ1dCBzdGlsbCBu
ZWVkcyBzb21lIGZpbmFsIHRvdWNoZXMuICovCisjaWYgIUNQVShBUk0pCiAjdW5kZWYgRU5BQkxF
X1dFQkFTU0VNQkxZCiAjZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWSAwCiAjdW5kZWYgRU5BQkxF
X1dFQkFTU0VNQkxZX0IzSklUCiAjZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWV9CM0pJVCAwCisj
ZW5kaWYKICNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShNSVBTKSkgJiYgT1MoTElOVVgpCiAv
KiBPbiBBUk12NyBhbmQgTUlQUyBvbiBMaW51eCB0aGUgSklUIGlzIGVuYWJsZWQgdW5sZXNzIGV4
cGxpY2l0bHkgZGlzYWJsZWQuICovCiAjaWYgIWRlZmluZWQoRU5BQkxFX0pJVCkKQEAgLTcwOCw3
ICs3MDgsNyBAQAogI2RlZmluZSBFTkFCTEVfU0FNUExJTkdfUFJPRklMRVIgMQogI2VuZGlmCiAK
LSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIEhBVkUoTUFDSElORV9DT05URVhUKQorI2lmIEVO
QUJMRShXRUJBU1NFTUJMWSkgJiYgSEFWRShNQUNISU5FX0NPTlRFWFQpICYmIENQVShBRERSRVNT
NjQpCiAjZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZIDEKICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzIGIvVG9v
bHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwppbmRleCBmOTA0OWIzY2M2NDcuLmQzYmYx
MTIwODQ4OSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwor
KysgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCkBAIC01ODUsNiArNTg1LDgg
QEAgZW5kCiAkaG9zdE9TID0gZGV0ZXJtaW5lT1MgdW5sZXNzICRob3N0T1MKICRhcmNoaXRlY3R1
cmUgPSBkZXRlcm1pbmVBcmNoaXRlY3R1cmUgdW5sZXNzICRhcmNoaXRlY3R1cmUKICRpc0ZUTFBs
YXRmb3JtID0gISgkYXJjaGl0ZWN0dXJlID09ICJ4ODYiIHx8ICRhcmNoaXRlY3R1cmUgPT0gImFy
bSIgfHwgJGFyY2hpdGVjdHVyZSA9PSAibWlwcyIgfHwgJGFyY2hpdGVjdHVyZSA9PSAicmlzY3Y2
NCIgfHwgJGhvc3RPUyA9PSAid2luZG93cyIgfHwgJGhvc3RPUyA9PSAicGxheXN0YXRpb24iKQor
IyBTcGVjaWFsIGNhc2UgYXJtdjcsIHdlIHdhbnQgdG8gcnVuIHRoZSB3YXNtIHRlc3RzIHRlbXBv
cmFyaWx5IHdpdGhvdXQgQjMvQWlyIHN1cHBvcnQKKyRpc1dhc21QbGF0Zm9ybSA9ICRpc0ZUTFBs
YXRmb3JtIHx8ICRhcmNoaXRlY3R1cmUgPT0gImFybSIKIAogaWYgJGFyY2hpdGVjdHVyZSA9PSAi
eDg2IgogICAgICMgVGhlIEpJVCBpcyB0ZW1wb3JhcmlseSBkaXNhYmxlZCBvbiB0aGlzIHBsYXRm
b3JtIHNpbmNlCkBAIC0xNzI5LDcgKzE3MzEsNyBAQCBlbmQKIAogZGVmIHJ1bldlYkFzc2VtYmx5
CiAgICAgcmV0dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3Jt
CisgICAgcmV0dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KICAgICBydW4oImRlZmF1bHQtd2FzbSIs
ICItbSIsICpGVExfT1BUSU9OUykKICAgICBpZiAkbW9kZSAhPSAicXVpY2siCiAgICAgICAgIHJ1
bigid2FzbS1uby1jaml0LXllcy10bHMtY29udGV4dCIsICItbSIsICItLXVzZUZhc3RUTFNGb3JX
YXNtQ29udGV4dD10cnVlIiwgKihGVExfT1BUSU9OUyArIE5PX0NKSVRfT1BUSU9OUykpCkBAIC0x
NzM3LDE1ICsxNzM5LDE3IEBAIGRlZiBydW5XZWJBc3NlbWJseQogICAgICAgICBydW4oIndhc20t
ZWFnZXItamV0dGlzb24iLCAiLW0iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09s
ZEFnZT10cnVlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10
cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNt
LW5vLXRscy1jb250ZXh0IiwgIi1tIiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PWZhbHNl
IiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tc2xvdy1tZW1vcnkiLCAiLW0iLCAi
LS11c2VXZWJBc3NlbWJseUZhc3RNZW1vcnk9ZmFsc2UiLCAqRlRMX09QVElPTlMpCi0gICAgICAg
IHJ1bigid2FzbS1iMyIsICItbSIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFV
c2VzQWlyPWZhbHNlIiwgKkZUTF9PUFRJT05TKQotICAgICAgICBydW4oIndhc20tYWlyIiwgIi1t
IiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNs
YW5kQWxsb2NhdGlvbj10cnVlIiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tY29s
bGVjdC1jb250aW51b3VzbHkiLCAiLW0iLCAiLS1jb2xsZWN0Q29udGludW91c2x5PXRydWUiLCAi
LS12ZXJpZnlHQz10cnVlIiwgKkZUTF9PUFRJT05TKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91
c2x5PworICAgICAgICBpZiAkaXNGVExQbGF0Zm9ybQorICAgICAgICAgICAgcnVuKCJ3YXNtLWIz
IiwgIi1tIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2Ui
LCAqRlRMX09QVElPTlMpCisgICAgICAgICAgICBydW4oIndhc20tYWlyIiwgIi1tIiwgIi0tdXNl
V2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2Nh
dGlvbj10cnVlIiwgKkZUTF9PUFRJT05TKQorICAgICAgICBlbmQKICAgICBlbmQKIGVuZAogCiBk
ZWYgcnVuV2ViQXNzZW1ibHlKZXRTdHJlYW0yCiAgICAgcmV0dXJuIGlmICEkaml0VGVzdHMKLSAg
ICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0dXJuIGlmICEkaXNXYXNtUGxhdGZv
cm0KIAogICAgIGlmICRtZW1vcnlMaW1pdGVkCiAgICAgICAgIHNraXAKQEAgLTE3NjQsMTUgKzE3
NjgsMTcgQEAgZGVmIHJ1bldlYkFzc2VtYmx5SmV0U3RyZWFtMgogICAgICAgICBydW4oIndhc20t
ZWFnZXItamV0dGlzb24iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09sZEFnZT10
cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNt
LW5vLXRscy1jb250ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PWZhbHNlIiwgKkZU
TF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tc2xvdy1tZW1vcnkiLCAiLS11c2VXZWJBc3Nl
bWJseUZhc3RNZW1vcnk9ZmFsc2UiLCAqRlRMX09QVElPTlMpCi0gICAgICAgIHJ1bigid2FzbS1i
MyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKkZU
TF9PUFRJT05TKQotICAgICAgICBydW4oIndhc20tYWlyIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNl
IiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgKkZU
TF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tY29sbGVjdC1jb250aW51b3VzbHkiLCAiLS1j
b2xsZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKkZUTF9PUFRJT05T
KSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5PworICAgICAgICBpZiAkaXNGVExQbGF0Zm9y
bQorICAgICAgICAgICAgcnVuKCJ3YXNtLWIzIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0t
d2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqRlRMX09QVElPTlMpCisgICAgICAgICAgICBydW4oIndh
c20tYWlyIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRh
YmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgKkZUTF9PUFRJT05TKQorICAgICAgICBlbmQKICAg
ICBlbmQKIGVuZAogCiBkZWYgcnVuV2ViQXNzZW1ibHlTdWl0ZSgqb3B0aW9uYWxUZXN0U3BlY2lm
aWNPcHRpb25zKQogICAgIHJldHVybiBpZiAhJGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNG
VExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2FzbVBsYXRmb3JtCiAgICAgbW9kdWxlcyA9
IERpcltXQVNNVEVTVFNfUEFUSCArICIqLmpzIl0ubWFwIHsgfGZ8IEZpbGUuYmFzZW5hbWUoZikg
fQogICAgIHByZXBhcmVFeHRyYUFic29sdXRlRmlsZXMoV0FTTVRFU1RTX1BBVEgsIFsid2FzbS5q
c29uIl0pCiAgICAgcHJlcGFyZUV4dHJhUmVsYXRpdmVGaWxlcyhtb2R1bGVzLm1hcCB7IHxmfCAi
Li4vIiArIGYgfSwgJGNvbGxlY3Rpb24pCkBAIC0xNzg4LDkgKzE3OTQsMTEgQEAgZGVmIHJ1bldl
YkFzc2VtYmx5U3VpdGUoKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKICAgICAgICAgcnVu
KCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9P
bGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249
dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3Bl
Y2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuKCJ3YXNtLW5vLXRscy1jb250ZXh0IiwgIi0tdXNl
RmFzdFRMU0Zvcldhc21Db250ZXh0PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVz
dFNwZWNpZmljT3B0aW9ucykpCiAgICAgICAgIHJ1bigid2FzbS1zbG93LW1lbW9yeSIsICItLXVz
ZVdlYkFzc2VtYmx5RmFzdE1lbW9yeT1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRl
c3RTcGVjaWZpY09wdGlvbnMpKQotICAgICAgICBydW4oIndhc20tYjMiLCAiLS11c2VXYXNtTExJ
bnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRp
b25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQotICAgICAgICBydW4oIndhc20tYWlyIiwgIi0tdXNl
V2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2Nh
dGlvbj10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykp
CiAgICAgICAgIHJ1bigid2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNseSIsICItLWNvbGxlY3RDb250
aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9u
YWxUZXN0U3BlY2lmaWNPcHRpb25zKSkgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8KKyAg
ICAgICAgaWYgJGlzRlRMUGxhdGZvcm0KKyAgICAgICAgICAgIHJ1bigid2FzbS1iMyIsICItLXVz
ZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9O
UyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCisgICAgICAgICAgICBydW4oIndhc20t
YWlyIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxl
SXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNp
ZmljT3B0aW9ucykpCisgICAgICAgIGVuZAogICAgIGVuZAogZW5kCiAKQEAgLTE4MDYsNyArMTgx
NCw5IEBAIGVuZAogZGVmIHJ1bldlYkFzc2VtYmx5V2l0aEhhcm5lc3MoKm9wdGlvbmFsVGVzdFNw
ZWNpZmljT3B0aW9ucykKICAgICByYWlzZSB1bmxlc3MgJGJlbmNobWFyay50b19zID1+IC9oYXJu
ZXNzXC5tP2pzLwogICAgIHJldHVybiBpZiAhJGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNG
VExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2FzbVBsYXRmb3JtCisgICAgIyBTa2lwIHRo
aXMgY29tcGxldGVseSBvbiBhcm12NyBmb3Igbm93LCBzaW5jZSBtb3N0IG9mIHRoZSB0ZXN0cyBh
cmUgcmVsYXRlZCB0byBPU1IgYW5kIGl0J3MgYSBiaXQgaGFpcnkgdG8gc2tpcCB0aGVtIG1hbnVh
bGx5CisgICAgcmV0dXJuIGlmICRhcmNoaXRlY3R1cmUgPT0gImFybSIKIAogICAgIHdhc21GaWxl
cyA9IGFsbFdhc21GaWxlcygkY29sbGVjdGlvbikKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZp
bGVzKHdhc21GaWxlcy5tYXAgeyB8ZnwgZi5iYXNlbmFtZSB9LCAkY29sbGVjdGlvbikKQEAgLTE4
MTgsOSArMTgyOCwxMSBAQCBkZWYgcnVuV2ViQXNzZW1ibHlXaXRoSGFybmVzcygqb3B0aW9uYWxU
ZXN0U3BlY2lmaWNPcHRpb25zKQogICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1lYWdlci1q
ZXR0aXNvbiIsICItLWZvcmNlQ29kZUJsb2NrVG9KZXR0aXNvbkR1ZVRvT2xkQWdlPXRydWUiLCAi
LS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAiLS12ZXJp
ZnlHQz10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykp
CiAgICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLW5vLXRscy1jb250ZXh0IiwgIi0tdXNlRmFz
dFRMU0Zvcldhc21Db250ZXh0PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNw
ZWNpZmljT3B0aW9ucykpCiAgICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLXNsb3ctbWVtb3J5
IiwgIi0tdXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9w
dGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCi0gICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNt
LWIzIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAq
KEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKLSAgICAgICAgcnVu
SGFybmVzc1Rlc3QoIndhc20tbm8tYWlyIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0tdXNl
UmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgKihGVExfT1BUSU9O
UyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCiAgICAgICAgIHJ1bkhhcm5lc3NUZXN0
KCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5IiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVl
IiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZp
Y09wdGlvbnMpKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5PworICAgICAgICBpZiAkaXNG
VExQbGF0Zm9ybQorICAgICAgICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tYjMiLCAiLS11c2VX
YXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICooRlRMX09QVElPTlMg
KyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQorICAgICAgICAgICAgcnVuSGFybmVzc1Rl
c3QoIndhc20tbm8tYWlyIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXpp
bmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlv
bmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCisgICAgICAgIGVuZAogICAgIGVuZAogZW5kCiAKQEAg
LTE4MzAsNyArMTg0Miw3IEBAIGRlZiBydW5XZWJBc3NlbWJseUVtc2NyaXB0ZW4obW9kZSkKICAg
ICAgICAgcmV0dXJuCiAgICAgZW5kCiAgICAgcmV0dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1
cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KICAg
ICB3YXNtID0gJGJlbmNobWFyay50b19zLnN1YiEgJy5qcycsICcud2FzbScKICAgICBwcmVwYXJl
RXh0cmFSZWxhdGl2ZUZpbGVzKFtQYXRobmFtZSgnLi4nKSArIHdhc21dLCAkY29sbGVjdGlvbikK
ICAgICBydW4oImRlZmF1bHQtd2FzbSIsICpGVExfT1BUSU9OUykKQEAgLTE4MzgsOSArMTg1MCwx
MSBAQCBkZWYgcnVuV2ViQXNzZW1ibHlFbXNjcmlwdGVuKG1vZGUpCiAgICAgICAgIHJ1bigid2Fz
bS1uby1jaml0LXllcy10bHMtY29udGV4dCIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD10
cnVlIiwgKihGVExfT1BUSU9OUyArIE5PX0NKSVRfT1BUSU9OUykpCiAgICAgICAgIHJ1bigid2Fz
bS1lYWdlci1qZXR0aXNvbiIsICItLWZvcmNlQ29kZUJsb2NrVG9KZXR0aXNvbkR1ZVRvT2xkQWdl
PXRydWUiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUi
LCAiLS12ZXJpZnlHQz10cnVlIiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tbm8t
dGxzLWNvbnRleHQiLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9ZmFsc2UiLCAqRlRMX09Q
VElPTlMpCi0gICAgICAgIHJ1bigid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICIt
LXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKkZUTF9PUFRJT05TKQotICAgICAgICBydW4oIndhc20t
YWlyIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxl
SXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20t
Y29sbGVjdC1jb250aW51b3VzbHkiLCAiLS1jb2xsZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12
ZXJpZnlHQz10cnVlIiwgKkZUTF9PUFRJT05TKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5
PworICAgICAgICBpZiAkaXNGVExQbGF0Zm9ybQorICAgICAgICAgICAgcnVuKCJ3YXNtLWIzIiwg
Ii0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqRlRMX09Q
VElPTlMpCisgICAgICAgICAgICBydW4oIndhc20tYWlyIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNl
IiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgKkZU
TF9PUFRJT05TKQorICAgICAgICBlbmQKICAgICBlbmQKIGVuZAogCkBAIC0xODUwLDcgKzE4NjQs
NyBAQCBkZWYgcnVuV2ViQXNzZW1ibHlTcGVjVGVzdEJhc2UobW9kZSwgc3BlY0hhcm5lc3NQYXRo
LCAqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpbwogICAgICAgICByZXR1cm4KICAgICBlbmQKICAg
ICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRMUGxhdGZvcm0KKyAg
ICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQogICAgIHByZXBhcmVFeHRyYUFic29sdXRlRmls
ZXMoV0FTTVRFU1RTX1BBVEgsIFsid2FzbS5qc29uIl0pCiAKICAgICBtb2R1bGVzID0gRGlyW1dB
U01URVNUU19QQVRIICsgIiouanMiXS5tYXAgeyB8ZnwgRmlsZS5iYXNlbmFtZShmKSB9CkBAIC0x
ODY1LDkgKzE4NzksMTEgQEAgZGVmIHJ1bldlYkFzc2VtYmx5U3BlY1Rlc3RCYXNlKG1vZGUsIHNw
ZWNIYXJuZXNzUGF0aCwgKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW8KICAgICAgIHJ1bldpdGhP
dXRwdXRIYW5kbGVyKCJ3YXNtLW5vLWNqaXQteWVzLXRscy1jb250ZXh0Iiwgbm9pc3lPdXRwdXRI
YW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD10
cnVlIiwgKihGVExfT1BUSU9OUyArIE5PX0NKSVRfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNp
ZmljT3B0aW9ucykpCiAgICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1lYWdlci1qZXR0
aXNvbiIsIG5vaXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICItLWZvcmNlQ29k
ZUJsb2NrVG9KZXR0aXNvbkR1ZVRvT2xkQWdlPXRydWUiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1
dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKihGVExfT1BU
SU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCiAgICAgICBydW5XaXRoT3V0cHV0
SGFuZGxlcigid2FzbS1uby10bHMtY29udGV4dCIsIG5vaXN5T3V0cHV0SGFuZGxlciwgc3BlY0hh
cm5lc3NKc1BhdGgsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICooRlRMX09Q
VElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQotICAgICAgcnVuV2l0aE91dHB1
dEhhbmRsZXIoIndhc20tYjMiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRo
LCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICooRlRM
X09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQotICAgICAgcnVuV2l0aE91
dHB1dEhhbmRsZXIoIndhc20tYWlyIiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pz
UGF0aCwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxl
SXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNp
ZmljT3B0aW9ucykpCiAgICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1jb2xsZWN0LWNv
bnRpbnVvdXNseSIsIG5vaXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICItLWNv
bGxlY3RDb250aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJT05T
ICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVv
dXNseT8KKyAgICAgIGlmICRpc0ZUTFBsYXRmb3JtCisgICAgICAgICAgcnVuV2l0aE91dHB1dEhh
bmRsZXIoIndhc20tYjMiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAi
LS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICooRlRMX09Q
VElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQorICAgICAgICAgIHJ1bldpdGhP
dXRwdXRIYW5kbGVyKCJ3YXNtLWFpciIsIG5vaXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NK
c1BhdGgsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJs
ZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVj
aWZpY09wdGlvbnMpKQorICAgICAgZW5kCiAgICAgZW5kCiBlbmQKIApAQCAtMTg4NSw3ICsxOTAx
LDcgQEAgZW5kCiAKIGRlZiBydW5XZWJBc3NlbWJseUxvd0V4ZWN1dGFibGVNZW1vcnkoKm9wdGlv
bmFsVGVzdFNwZWNpZmljT3B0aW9ucykKICAgICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJl
dHVybiBpZiAhJGlzRlRMUGxhdGZvcm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQog
ICAgIG1vZHVsZXMgPSBEaXJbV0FTTVRFU1RTX1BBVEggKyAiKi5qcyJdLm1hcCB7IHxmfCBGaWxl
LmJhc2VuYW1lKGYpIH0KICAgICBwcmVwYXJlRXh0cmFBYnNvbHV0ZUZpbGVzKFdBU01URVNUU19Q
QVRILCBbIndhc20uanNvbiJdKQogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMobW9kdWxl
cy5tYXAgeyB8ZnwgIi4uLyIgKyBmIH0sICRjb2xsZWN0aW9uKQpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24uanMgYi9KU1Rlc3Rz
L3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5hbWUtc2VjdGlvbi5qcwppbmRleCA1YzIy
MGZkNzZjZGMuLjM2ODZjNjM5NzA0MCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxp
bmctcHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24uanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2Ft
cGxpbmctcHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24uanMKQEAgLTEsMyArMSw4IEBACisvLyBU
aGlzIHRlc3QgaXMgc3RhdGlzdGljYWwsIGFuZCB3aXRob3V0IG9wdGltaXppbmcgV2FzbSB0aWVy
cyB0aGUgbGlrZWxpaG9vZAorLy8gb2YgaGl0dGluZyB0aGUgZGVlcGVzdCBleHBlY3RlZCBzdGFj
ayB0cmFjZSBpcyB2ZXJ5IGxvdywgc28gZGlzYWJsZS4KKy8vIEZJWE1FOiByZW1vdmUgd2hlbiAz
Mi1iaXQgcGxhdGZvcm1zIHN1cHBvcnQgb3B0aW1pemluZyBXYXNtIHRpZXJzCisvL0Agc2tpcCBp
ZiBbImFybSIsICJtaXBzIl0uaW5jbHVkZT8oJGFyY2hpdGVjdHVyZSkKKy8vCiAvL0AgcnVuRGVm
YXVsdAogCiAvKgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXIt
d2FzbS5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanMKaW5kZXgg
MDZkZjAxMjQ5NTk2Li43MjQwYzAwZGUyN2UgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3Nh
bXBsaW5nLXByb2ZpbGVyLXdhc20uanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJv
ZmlsZXItd2FzbS5qcwpAQCAtMSwzICsxLDQgQEAKKy8vQCBza2lwIGlmICRhcmNoaXRlY3R1cmUg
PT0gImFybSIKIC8vQCBydW5EZWZhdWx0CiAKIGlmIChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQ
cm9maWxlcigpICYmICR2bS5pc1dhc21TdXBwb3J0ZWQoKSkgewpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy93YXNtL3JlZ3Jlc3MvbGxpbnQtY2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnkuanMgYi9K
U1Rlc3RzL3dhc20vcmVncmVzcy9sbGludC1jYWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5q
cwppbmRleCBmOWYwOWM0NzUxM2EuLjExY2ZiMTY0YmI2NCAxMDA2NDQKLS0tIGEvSlNUZXN0cy93
YXNtL3JlZ3Jlc3MvbGxpbnQtY2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnkuanMKKysrIGIv
SlNUZXN0cy93YXNtL3JlZ3Jlc3MvbGxpbnQtY2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnku
anMKQEAgLTEsMyArMSw0IEBACisvL0Agc2tpcCBpZiAkYXJjaGl0ZWN0dXJlID09ICJhcm0iCiAv
L0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5PXRydWUiKQogCiBp
bXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnLi4vYXNzZXJ0LmpzJzsKLS0gCjIuMzAuMgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>460125</attachid>
            <date>2022-06-09 04:37:46 -0700</date>
            <delta_ts>2022-06-09 04:40:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221260-20220609113744.patch</filename>
            <type>text/plain</type>
            <size>322222</size>
            <attacher name="Geza Lore">glore</attacher>
            
              <data encoding="base64">RnJvbSBmN2M0MGI2OTU4MGFkYjFiN2Q5OGE3ZDMwZDFjOTQ2OTA3ZTczMDg0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHZXphIExvcmUgPGdsb3JlQGlnYWxpYS5jb20+CkRhdGU6IEZy
aSwgMjcgTWF5IDIwMjIgMDg6NDc6MjEgKzAwMDAKU3ViamVjdDogW1BBVENIXSBFbmFibGUgV2Fz
bUxMSW50IG9uIEFSTXY3Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp
bjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpQYXRjaCBi
eSBHZXphIExvcmUgPGdsb3JlQGlnYWxpYS5jb20+IG9uIDIwMjItMDUtMjcKaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTI2MAoKUmV2aWV3ZWQgYnkgU2FhbSBCYXJh
dGkuCgpQYXRjaCBieSBHZXphIExvcmUgYW5kIFhhbiBMw7NwZXouCgpJbXBsZW1lbnQgdGhlIExM
SW50IHRpZXIgb2YgV2ViQXNzZW1ibHkgZm9yIEFSTXY3LiBBIGxvdCBvZiB0aGUKd29yayB3aWxs
IGJlIHNoYXJlZCBieSBhbnkgMzJiaXQgcG9ydCwgYnV0IHRoZSBvZmZsaW5lYXNzZW1ibGVyCmhh
cyBvbmx5IGJlZW4gdXBkYXRlZCBmb3IgQVJNdjcgc28gZmFyLgoKTWFpbiBoaWdobGlnaHRzOgoK
V2UgaGF2ZSBzcGxpdCB0aGUgV2ViQXNzZW1ibHkuYXNtIGZpbGUgaW50byB0aHJlZSBjaHVua3Ms
CmZvbGxvd2luZyB3aGF0IExvd0xldmVsSW50ZXJwcmV0ZXIuYXNtIGRvZXMuIFRoZSBjb21tb24g
Y29kZQpyZW1haW5zIGluIFdlYkFzc2VtYmx5LmFzbSwgYW5kIDMyIGFuZCA2NGJpdCBzcGVjaWZp
YyBjb2RlIChtb3N0bHkKb3Bjb2RlIGltcGxlbWVudGF0aW9ucykgZ29lcyBpbnRvIFdlYkFzc2Vt
Ymx5MzJfNjQuYXNtIGFuZApXZWJBc3NlbWJseTY0LmFzbS4KCldlIGhhdmUgZGVjaWRlZCB0byB1
c2UgY29uc2VjdXRpdmUgZXZlbi9vZGQgcGFpcnMgb2YgR1BScyBmb3IgZXZlcnkKdHlwZSBvZiB3
YXNtIHZhbHVlcywgZXZlbiBpZiB0aGV5IGFyZSAzMmJpdCAoaTMyL2YzMiksIHdpdGggdGhlIG9k
ZAooaGlnaGVyKSBudW1iZXJlZCBHUFIgaG9sZGluZyB0aGUgbW9yZSBzaWduaWZpY2FudCBoYWxm
LiAzMmJpdCB2YWx1ZXMKYXJlIGhlbGQgaW4gdGhlIGV2ZW4gKGxvd2VyKSBudW1iZXJlZCByZWdp
c3Rlci4gVGhpcyBtYWtlcyB0aGUgY29kZQptdWNoIHNpbXBsZXIgYW5kIGFsbG93cyB1cyB0byBz
aGFyZSBtb3JlIGNvZGUgd2l0aCB0aGUgNjRiaXQgdmFyaWFudC4KVGhpcyBpcyBtb3N0bHkgcmVs
ZXZhbnQgZm9yIGFyZ3VtZW50IHBhc3NpbmcsIGFuZCBnaXZlbiB0aGF0IGV2ZXJ5CnZhbHVlIGVu
ZHMgdXAgaW4gdGhlIHN0YWNrIGFueXdheSB3ZSBkbyBub3QgdGhpbmsgaXQgaXMgc2lnbmlmaWNh
bnQKZnJvbSBhIHBlcmZvcm1hbmNlIFBPVi4KCldlIGFyZSByZXVzaW5nIEpTVmFsdWVSZWdzIHRv
IGhvbGQgV2FzbSB2YWx1ZXMgdG9vLiBPYnZpb3VzbHkgdGhleQphcmUgbm90IHJlYWxseSBKU1Zh
bHVlcywgc28gaXQgbWlnaHQgbWFrZSBzZW5zZSB0byBjcmVhdGUgYSBiYXNlCmNsYXNzIHRoYXQg
Y2FuIGJlIHVzZWQgZm9yIGJvdGggSlMgYW5kIFdhc20gdmFsdWVzLgoKV2UgZG8gbm90IGhhdmUg
ZW5vdWdoIHJlZ2lzdGVycyB0byBrZWVwIHRoaW5ncyBsaWtlIHRoZSBtZW1vcnkKYmFzZSBwb2lu
dGVyIGFuZCBzaXplIGluIHBpbm5lZCByZWdpc3RlcnMsIHNvIHdlIGFyZSBmb3JjZWQgdG8KbG9h
ZCB0aGVtIG9uIGVhY2ggdXNlLgoKV2UgZGlzYWJsZSB0aGUgJ1NpZ25hbGluZycgbWVtb3J5IG1v
ZGUsIHNpbmNlIHRoZSBjdXJyZW50CmltcGxlbWVudGF0aW9uIHJlbGllcyBvbiBiZWluZyBhYmxl
IHRvIG1wcm90ZWN0IGEgMl4zMiArIHJlZHpvbmUKcmVnaW9uIG9mIG1lbW9yeS4gVGhpcyBjYW4g
YmUgY2hhbmdlZCBpbiB0aGUgZnV0dXJlIGJ1dCBpdCdzIG5vdCBhCnByaW9yaXR5IGF0IHRoZSBt
b21lbnQuCgoqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5hbWUtc2VjdGlvbi5qczoK
KiBzdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qczoKKiB3YXNtL3JlZ3Jlc3MvbGxpbnQt
Y2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnkuanM6CiogQ01ha2VMaXN0cy50eHQ6CiogYXNz
ZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmg6CihKU0M6OkFSTXY3QXNzZW1ibGVyOjp2Y3Z0X3NpZ25l
ZFRvRmxvYXRpbmdQb2ludCk6CiogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaDoKKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6Y29udmVydEludDMyVG9GbG9hdCk6CihKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNdjc6OnRocmVhZFNhZmVQYXRjaGFibGVOZWFyQ2FsbCk6CihKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNdjc6OmNhbGxPcGVyYXRpb24pOgoqIGIzL0IzVmFsdWVSZXAuaDoKKEpTQzo6
QjM6OlZhbHVlUmVwOjpWYWx1ZVJlcCk6CiogYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwOgoo
SlNDOjpXYXNtOjpCeXRlY29kZUR1bXBlcjo6Zm9ybWF0Q29uc3RhbnQgY29uc3QpOgoqIGludGVy
cHJldGVyL0NhbGxGcmFtZS5oOiBhZGFwdCB0byBuZXcgY2FsbGVlIHRhZ2dpbmcgZm9ybWF0Lgoo
SlNDOjpDYWxsRnJhbWU6OmNhbGxlZSBjb25zdCk6CihKU0M6OkNhbGxGcmFtZTo6dW5zYWZlQ2Fs
bGVlIGNvbnN0KToKKiBpbnRlcnByZXRlci9DYWxsZWVCaXRzLmg6IGFkZCB3YXNtIHRhZ2dpbmcg
b2YgY2FsbGVlIHZhbHVlcyBmb3IKMzJiaXQuCihKU0M6OkNhbGxlZUJpdHM6OkNhbGxlZUJpdHMp
OgooSlNDOjpDYWxsZWVCaXRzOjpvcGVyYXRvcj0pOgooSlNDOjpDYWxsZWVCaXRzOjpib3hXYXNt
KToKKEpTQzo6Q2FsbGVlQml0czo6aXNXYXNtIGNvbnN0KToKKEpTQzo6Q2FsbGVlQml0czo6YXNX
YXNtQ2FsbGVlIGNvbnN0KToKKiBpbnRlcnByZXRlci9SZWdpc3Rlci5oOgooSlNDOjpSZWdpc3Rl
cjo6dW5ib3hlZEZsb2F0IGNvbnN0KToKKEpTQzo6UmVnaXN0ZXI6OmFzYW5VbnNhZmVVbmJveGVk
RmxvYXQgY29uc3QpOgoqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoKKEpTQzo6QXNzZW1ibHlIZWxw
ZXJzOjp1bmJveERvdWJsZSk6Ciogaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmNwcDoKKEpTQzo6
UmVnaXN0ZXJBdE9mZnNldExpc3Q6OlJlZ2lzdGVyQXRPZmZzZXRMaXN0KToKKiBqaXQvUmVnaXN0
ZXJBdE9mZnNldExpc3QuaDoKKEpTQzo6UmVnaXN0ZXJBdE9mZnNldExpc3Q6OnNpemVPZkFyZWFJ
bkJ5dGVzIGNvbnN0KToKKiBqaXQvUmVnaXN0ZXJTZXQuY3BwOgooSlNDOjpSZWdpc3RlclNldDo6
bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKToKKiBsbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaDoK
KiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgoqIGxsaW50L1dlYkFzc2VtYmx5
LmFzbToKKiBsbGludC9XZWJBc3NlbWJseTMyXzY0LmFzbTogQWRkZWQuCiogbGxpbnQvV2ViQXNz
ZW1ibHk2NC5hc206IEFkZGVkLgoqIG9mZmxpbmVhc20vYXJtLnJiOgoqIG9mZmxpbmVhc20vaW5z
dHJ1Y3Rpb25zLnJiOgoqIG9mZmxpbmVhc20vcmVnaXN0ZXJzLnJiOgoqIG9mZmxpbmVhc20vcmlz
Yy5yYjoKKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKEpTQzo6d2FzbVVuYm94ZWRGbG9hdCk6Ciog
cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oOgooSlNDOjpKU1ZhbHVlOjpKU1ZhbHVlKToKKiB3
YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHA6CihKU0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjp1
c2VTaWduYWxpbmdNZW1vcnkgY29uc3QpOgooSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6QWly
SVJHZW5lcmF0b3IpOgooSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6ZW1pdENoZWNrQW5kUHJl
cGFyZVBvaW50ZXIpOgooSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6YWRkQ2FsbCk6Ciogd2Fz
bS9XYXNtQjNJUkdlbmVyYXRvci5jcHA6CihKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OnVzZVNp
Z25hbGluZ01lbW9yeSBjb25zdCk6CihKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OkIzSVJHZW5l
cmF0b3IpOgooSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjphZGRBcmd1bWVudHMpOgooSlNDOjpX
YXNtOjpCM0lSR2VuZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcik6CihKU0M6Oldh
c206OkIzSVJHZW5lcmF0b3I6Om1lbW9yeUtpbmQpOgooSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9y
OjphZGRDYWxsKToKKiB3YXNtL1dhc21CaW5kaW5nLmNwcDoKKEpTQzo6V2FzbTo6d2FzbVRvV2Fz
bSk6Ciogd2FzbS9XYXNtQ2FsbGVlLmNwcDoKKEpTQzo6V2FzbTo6TExJbnRDYWxsZWU6OmNhbGxl
ZVNhdmVSZWdpc3RlcnMpOgoqIHdhc20vV2FzbUNhbGxlZUdyb3VwLmNwcDoKKEpTQzo6V2FzbTo6
Q2FsbGVlR3JvdXA6OmlzU2FmZVRvUnVuKToKKiB3YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5j
cHA6CihKU0M6Oldhc206OmpzQ2FsbGluZ0NvbnZlbnRpb24pOgooSlNDOjpXYXNtOjp3YXNtQ2Fs
bGluZ0NvbnZlbnRpb24pOgoqIHdhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmg6CihKU0M6Oldh
c206OkNhbGxJbmZvcm1hdGlvbjo6Y29tcHV0ZVJlc3VsdHNPZmZzZXRMaXN0KToKKEpTQzo6V2Fz
bTo6V2FzbUNhbGxpbmdDb252ZW50aW9uOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb24pOgooSlNDOjpX
YXNtOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxsTG9jYXRpb25JbXBsIGNvbnN0KToK
KEpTQzo6V2FzbTo6V2FzbUNhbGxpbmdDb252ZW50aW9uOjptYXJzaGFsbExvY2F0aW9uIGNvbnN0
KToKKEpTQzo6V2FzbTo6SlNDYWxsaW5nQ29udmVudGlvbjo6SlNDYWxsaW5nQ29udmVudGlvbik6
CihKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxsTG9jYXRpb25JbXBsIGNv
bnN0KToKKEpTQzo6V2FzbTo6SlNDYWxsaW5nQ29udmVudGlvbjo6bWFyc2hhbGxMb2NhdGlvbiBj
b25zdCk6CihKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246OmNhbGxJbmZvcm1hdGlvbkZv
ciBjb25zdCk6Ciogd2FzbS9XYXNtRm9ybWF0Lmg6Ciogd2FzbS9XYXNtSW5kZXhPck5hbWUuY3Bw
OgooSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6SW5kZXhPck5hbWUpOgooSlNDOjpXYXNtOjptYWtl
U3RyaW5nKToKKiB3YXNtL1dhc21JbmRleE9yTmFtZS5oOgooSlNDOjpXYXNtOjpJbmRleE9yTmFt
ZTo6SW5kZXhPck5hbWUpOgooSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6aXNFbXB0eSBjb25zdCk6
CihKU0M6Oldhc206OkluZGV4T3JOYW1lOjppc0luZGV4IGNvbnN0KToKKEpTQzo6V2FzbTo6SW5k
ZXhPck5hbWU6OmlzTmFtZSBjb25zdCk6CihKU0M6Oldhc206OkluZGV4T3JOYW1lOjppbmRleCBj
b25zdCk6CihKU0M6Oldhc206OkluZGV4T3JOYW1lOjpuYW1lIGNvbnN0KToKKEpTQzo6V2FzbTo6
SW5kZXhPck5hbWU6Om5hbWVTZWN0aW9uIGNvbnN0KToKKiB3YXNtL1dhc21JbnN0YW5jZS5oOgoo
SlNDOjpXYXNtOjpJbnN0YW5jZTo6dXBkYXRlQ2FjaGVkTWVtb3J5KToKKiB3YXNtL1dhc21MTElu
dEdlbmVyYXRvci5jcHA6CihKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjp2aXJ0dWFsUmVnaXN0
ZXJGb3JXYXNtTG9jYWwpOgooSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0
aW9uRm9yQ2FsbGVyKToKKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlv
bkZvckNhbGxlZSk6CihKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjphZGRBcmd1bWVudHMpOgoo
SlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6YWRkTG9vcCk6Ciogd2FzbS9XYXNtTExJbnRQbGFu
LmNwcDoKKEpTQzo6V2FzbTo6TExJbnRQbGFuOjpkaWRDb21wbGV0ZUNvbXBpbGF0aW9uKToKKiB3
YXNtL1dhc21NZW1vcnkuY3BwOgooSlNDOjpXYXNtOjpNZW1vcnlIYW5kbGU6On5NZW1vcnlIYW5k
bGUpOgooSlNDOjpXYXNtOjpNZW1vcnk6OnRyeUNyZWF0ZSk6CihKU0M6Oldhc206Ok1lbW9yeTo6
Z3Jvd1NoYXJlZCk6CihKU0M6Oldhc206Ok1lbW9yeTo6Z3Jvdyk6CihKU0M6Oldhc206Ok1lbW9y
eTo6Y29weSk6Ciogd2FzbS9XYXNtTWVtb3J5Lmg6Ciogd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRp
b24uY3BwOgooSlNDOjpXYXNtOjpQaW5uZWRSZWdpc3RlckluZm86OmdldCk6Ciogd2FzbS9XYXNt
TWVtb3J5SW5mb3JtYXRpb24uaDoKKEpTQzo6V2FzbTo6UGlubmVkUmVnaXN0ZXJJbmZvOjp0b1Nh
dmUgY29uc3QpOgoqIHdhc20vV2FzbU1lbW9yeU1vZGUuY3BwOgooSlNDOjpXYXNtOjptYWtlU3Ry
aW5nKToKKiB3YXNtL1dhc21NZW1vcnlNb2RlLmg6Ciogd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNw
cDoKKiB3YXNtL1dhc21PcGNvZGVPcmlnaW4uaDoKKiB3YXNtL1dhc21PcGVyYXRpb25zLmNwcDoK
KEpTQzo6V2FzbTo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKToKKiB3YXNtL1dhc21PcGVyYXRp
b25zLmg6Ciogd2FzbS9XYXNtUGFnZUNvdW50Lmg6Ciogd2FzbS9XYXNtUGFyc2VyLmg6CihKU0M6
Oldhc206OlBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVUludDMyKToKKEpTQzo6V2FzbTo6UGFy
c2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VVSW50NjQpOgoqIHdhc20vV2FzbVNsb3dQYXRocy5jcHA6
CihKU0M6OkxMSW50OjpXQVNNX1NMT1dfUEFUSF9ERUNMKToKKEpTQzo6TExJbnQ6OnNsb3dfcGF0
aF93YXNtX3BvcGNvdW50KToKKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX3BvcGNvdW50bGwp
OgooSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTMyX2Rpdl9zKToKKEpTQzo6TExJbnQ6OnNs
b3dfcGF0aF93YXNtX2kzMl9kaXZfdSk6CihKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pMzJf
cmVtX3MpOgooSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTMyX3JlbV91KToKKEpTQzo6TExJ
bnQ6OnNsb3dfcGF0aF93YXNtX2k2NF9kaXZfcyk6CihKU0M6OkxMSW50OjpzbG93X3BhdGhfd2Fz
bV9pNjRfZGl2X3UpOgooSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTY0X3JlbV9zKToKKEpT
Qzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2k2NF9yZW1fdSk6Ciogd2FzbS9XYXNtU2xvd1BhdGhz
Lmg6Ciogd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5jcHA6CihKU0M6Oldhc206OlZhbHVlTG9jYXRp
b246OmR1bXAgY29uc3QpOgooV1RGOjpwcmludEludGVybmFsKToKKiB3YXNtL1dhc21WYWx1ZUxv
Y2F0aW9uLmg6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OlZhbHVlTG9jYXRpb24pOgooSlND
OjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjppc0dQUiBjb25zdCk6CihKU0M6Oldhc206OlZhbHVlTG9j
YXRpb246OmlzRlBSIGNvbnN0KToKKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6aXNTdGFjayBj
b25zdCk6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzU3RhY2tBcmd1bWVudCBjb25zdCk6
CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmpzciBjb25zdCk6CihKU0M6Oldhc206OlZhbHVl
TG9jYXRpb246OmZwciBjb25zdCk6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OnJlZyk6IERl
bGV0ZWQuCihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzUmVnIGNvbnN0KTogRGVsZXRlZC4K
KEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6cmVnIGNvbnN0KTogRGVsZXRlZC4KKEpTQzo6V2Fz
bTo6VmFsdWVMb2NhdGlvbjo6Z3ByIGNvbnN0KTogRGVsZXRlZC4KKiB3YXNtL2pzL0pTVG9XYXNt
LmNwcDoKKEpTQzo6V2FzbTo6bWFyc2hhbGxKU1Jlc3VsdCk6CihKU0M6Oldhc206OmNyZWF0ZUpT
VG9XYXNtV3JhcHBlcik6Ciogd2FzbS9qcy9XYXNtVG9KUy5jcHA6CihKU0M6Oldhc206Ondhc21U
b0pTKToKKiB3YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwOgooSlNDOjpXZWJBc3NlbWJs
eUZ1bmN0aW9uOjpwcmV2aW91c0luc3RhbmNlT2Zmc2V0IGNvbnN0KToKKEpTQzo6V2ViQXNzZW1i
bHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3cpOgoqIHdhc20vanMvV2ViQXNzZW1ibHlH
bG9iYWxDb25zdHJ1Y3Rvci5jcHA6CihKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6Ciog
d2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHA6CihKU0M6OldlYkFzc2VtYmx5TW9k
dWxlUmVjb3JkOjppbml0aWFsaXplRXhwb3J0cyk6Ciogd3RmL1BsYXRmb3JtRW5hYmxlLmg6IGVu
YWJsZSBXZWJBc3NlbWJseSBvbiBBUk12Ny4KKiBTY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3Rz
OiBhbGxvdyB0byBydW4gdGhlIHdhc20gdGVzdHMgb24KYXJtdjcgZXZlbiB3aXRob3V0IGppdCBz
dXBwb3J0IChmb3Igbm93KS4KLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQgICAgICAgICAgfCAgICAyICsKIC4uLi9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qICB8ICAgIDQgKwogLi4uL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fz
c2VtYmxlci5oIHwgICAgNCArLQogLi4uL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmgg
ICAgICAgICAgIHwgICAyMCArCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5o
ICAgICAgICAgfCAgICA4ICstCiAuLi4vYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwICAgICAg
ICAgICAgICAgfCAgICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2Fs
bEZyYW1lLmggfCAgICA0ICstCiAuLi4vSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbGVl
Qml0cy5oICAgfCAgIDM1ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVn
aXN0ZXIuaCAgfCAgIDE2ICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxw
ZXJzLmggICB8ICAgIDUgKy0KIC4uLi9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaCAgICAg
ICAgICAgICB8ICAgIDYgKwogLi4uL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20g
ICAgICAgIHwgICAxNiArCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHku
YXNtICAgfCAxNTE5ICsrKy0tLS0tLS0tLS0tLS0tCiAuLi4vSmF2YVNjcmlwdENvcmUvbGxpbnQv
V2ViQXNzZW1ibHkzMl82NC5hc20gfCAxMTI5ICsrKysrKysrKysrKwogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5NjQuYXNtIHwgMTI1OSArKysrKysrKysrKysrKwogU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiICAgICAgIHwgIDI4MSArKy0KIC4u
Li9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYiB8ICAgMTcgKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5yYiB8ICAgIDMgKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIgICAgICB8ICAgIDYgKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaCAgICB8ICAgMTggKy0KIC4u
Li9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmggICAgICAgICAgICAgICB8ICAgIDcgKwogLi4u
L3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcCAgICAgICAgICAgICAgIHwgICAxNSArLQogLi4u
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwIHwgICAyOSArLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwICAgIHwgICAxOCArLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5jcHAgICAgIHwgICAgNSArLQogLi4u
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZUdyb3VwLmNwcCAgIHwgICAgNCArCiAuLi4v
d2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwICAgICAgICAgICAgfCAgIDM4ICstCiAuLi4v
d2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uaCAgICAgICAgICAgICAgfCAgIDQxICstCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmggICAgICAgfCAgICAyICsKIC4uLi9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5jcHAgICB8ICAgMjcgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5oICB8ICAgNzIgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5oICAgICB8ICAgMTggKy0KIC4uLi93
YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAgICAgICAgICAgICAgICB8ICAgMTAgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3BwICB8ICAgIDcgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3BwICAgICB8ICAgNTggKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaCAgICAgICB8ICAgIDUgKy0KIC4uLi93
YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5jcHAgICAgICAgICAgICB8ICAgIDcgKwogLi4uL3dh
c20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmggICAgICAgICAgICAgIHwgICAgNSArLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuY3BwIHwgICAgMiArCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5oICAgfCAgICAyICsKIC4uLi9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uY3BwICB8ICAgIDQgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uaCB8ICAgIDQgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcCB8ICAgNTQgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmggICB8ICAgMTUgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYWdlQ291bnQuaCAgICB8ICAgIDcgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaCAgICAgICB8ICAgIDQgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3BwICB8ICAyMzAgKystCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmggICAgfCAgIDM0ICsKIC4uLi9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmNwcCB8ICAgMTQgKy0KIC4uLi9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmggICB8ICAgNDQgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNwcCAgICB8ICAxODQgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcCAgICB8ICAxNDggKy0KIC4uLi93YXNt
L2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwICAgICAgICAgICB8ICAxNTIgKy0KIC4uLi93YXNt
L2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwICB8ICAgIDIgKy0KIC4uLi93YXNt
L2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcCAgICAgICB8ICAgIDIgKy0KIFNvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtRW5hYmxlLmggICAgICAgICAgICAgICB8ICAgIDYgKy0KIFRvb2xzL1Nj
cmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgICAgICAgICAgICB8ICAgNTQgKy0KIC4uLi9zYW1w
bGluZy1wcm9maWxlci13YXNtLW5hbWUtc2VjdGlvbi5qcyAgICB8ICAgIDUgKwogSlNUZXN0cy9z
dHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qcyAgICAgIHwgICAgMSArCiAuLi4vc2hhcmVk
LXdhc20tbWVtb3J5LXdpdGgtemVyby1ieXRlLmpzICAgICAgfCAgICAyICsKIC4uLi9sbGludC1j
YWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5qcyAgICB8ICAgIDEgKwogSlNUZXN0cy93YXNt
L3N0cmVzcy9zaGFyZWQtbWVtb3J5LWVycm9ycy5qcyAgIHwgICAgMiArCiAuLi4vd2FzbS9zdHJl
c3Mvc2hhcmVkLXdhc20tbWVtb3J5LWJ1ZmZlci5qcyAgfCAgICAyICsKIDYzIGZpbGVzIGNoYW5n
ZWQsIDQwMjggaW5zZXJ0aW9ucygrKSwgMTY2OSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHkzMl82NC5hc20KIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHk2
NC5hc20KCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYmI0YWQwMWU0MjYy
Li4wYWE2YmJjMjYzZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIw
MCw2ICsyMDAsOCBAQCBzZXQoTExJTlRfQVNNCiAgICAgbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
cjMyXzY0LmFzbQogICAgIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KICAgICBsbGlu
dC9XZWJBc3NlbWJseS5hc20KKyAgICBsbGludC9XZWJBc3NlbWJseTMyXzY0LmFzbQorICAgIGxs
aW50L1dlYkFzc2VtYmx5NjQuYXNtCiApCiAKIHNldChPRkZMSU5FX0FTTQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBiMzUzOTNjMDliNzQuLjg1NWVkMzkyNDM5NyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU3MzIsNiArNTczMiw4IEBACiAJCUZFOUZBN0M0Mjcz
QzhCMjYwMDVEOUU3MCAvKiBEZWZlckdDSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEZWZlckdDSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGRUEwODYxRTE4MkI3QTA0MDBGNkQ4NTEgLyogQnJlYWtwb2ludC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBCcmVha3BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUZFQTA4NjFGMTgyQjdBMDQwMEY2RDg1MSAvKiBEZWJ1Z2dlclByaW1pdGl2ZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVidWdnZXJQcmltaXRpdmVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZFQTIxNjg4Mjg1MDA3NjIwMDJCMzY2MiAvKiBX
ZWJBc3NlbWJseTY0LmFzbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYXNtLmFzbTsgbmFtZSA9IFdlYkFzc2VtYmx5NjQuYXNtOyBw
YXRoID0gbGxpbnQvV2ViQXNzZW1ibHk2NC5hc207IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUZFQTIxNjg5Mjg1MDA3RTMwMDJCMzY2MiAvKiBXZWJBc3NlbWJseTMyXzY0LmFzbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
YXNtLmFzbTsgbmFtZSA9IFdlYkFzc2VtYmx5MzJfNjQuYXNtOyBwYXRoID0gbGxpbnQvV2ViQXNz
ZW1ibHkzMl82NC5hc207IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFQTNCQkE3MjEy
QjY1NTgwMEU5M0FEMSAvKiBDYWxsRnJhbWVJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENhbGxGcmFtZUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRkVBM0JCQUIyMTJDOTdDQjAwRTkzQUQxIC8qIERGR0NGRy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBERkdDRkcuaDsgcGF0aCA9IGRmZy9ERkdDRkcuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVCMTM3NTYxQkIxMUVFRTAwQ0Q1MTAwIC8qIE1hY3Jv
QXNzZW1ibGVyQVJNNjQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TWFjcm9Bc3NlbWJsZXJBUk02NC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02
MDI3LDYgKzYwMjksOCBAQAogCQkJCTg2QTA1NDQ3MTU1NjQ1MUIwMDQ0NTE1NyAvKiBMb3dMZXZl
bEludGVycHJldGVyMzJfNjQuYXNtICovLAogCQkJCTg2QTA1NDQ4MTU1NjQ1MUIwMDQ0NTE1NyAv
KiBMb3dMZXZlbEludGVycHJldGVyNjQuYXNtICovLAogCQkJCUZFMDAyNjIyMjNGM0FGMzMwMDNB
MzU4RiAvKiBXZWJBc3NlbWJseS5hc20gKi8sCisJCQkJRkVBMjE2ODgyODUwMDc2MjAwMkIzNjYy
IC8qIFdlYkFzc2VtYmx5NjQuYXNtICovLAorCQkJCUZFQTIxNjg5Mjg1MDA3RTMwMDJCMzY2MiAv
KiBXZWJBc3NlbWJseTMyXzY0LmFzbSAqLywKIAkJCSk7CiAJCQluYW1lID0gbGxpbnQ7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9BUk12N0Fzc2VtYmxlci5oCmluZGV4IDljYTZhNGE2Yzg0MS4uNmM3NmU0ZWY1MjMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVy
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5o
CkBAIC0xOTkxLDEwICsxOTkxLDEwIEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIudmZw
T3AoT1BfVkNNUCwgT1BfVkNNUGIsIHRydWUsIFZGUE9wZXJhbmQoNSksIHJkLCBWRlBPcGVyYW5k
KDApKTsKICAgICB9CiAKLSAgICB2b2lkIHZjdnRfc2lnbmVkVG9GbG9hdGluZ1BvaW50KEZQRG91
YmxlUmVnaXN0ZXJJRCByZCwgRlBTaW5nbGVSZWdpc3RlcklEIHJtKQorICAgIHZvaWQgdmN2dF9z
aWduZWRUb0Zsb2F0aW5nUG9pbnQoRlBEb3VibGVSZWdpc3RlcklEIHJkLCBGUFNpbmdsZVJlZ2lz
dGVySUQgcm0sIGJvb2wgdG9Eb3VibGUgPSB0cnVlKQogICAgIHsKICAgICAgICAgLy8gYm9vbGVh
biB2YWx1ZXMgYXJlIDY0Yml0ICh0b0ludCwgdW5zaWduZWQsIHJvdW5kWmVybykKLSAgICAgICAg
bV9mb3JtYXR0ZXIudmZwT3AoT1BfVkNWVF9GUElWRlAsIE9QX1ZDVlRfRlBJVkZQYiwgdHJ1ZSwg
dmN2dE9wKGZhbHNlLCBmYWxzZSwgZmFsc2UpLCByZCwgcm0pOworICAgICAgICBtX2Zvcm1hdHRl
ci52ZnBPcChPUF9WQ1ZUX0ZQSVZGUCwgT1BfVkNWVF9GUElWRlBiLCB0b0RvdWJsZSwgdmN2dE9w
KGZhbHNlLCBmYWxzZSwgZmFsc2UpLCByZCwgcm0pOwogICAgIH0KIAogICAgIHZvaWQgdmN2dF9m
bG9hdGluZ1BvaW50VG9TaWduZWQoRlBTaW5nbGVSZWdpc3RlcklEIHJkLCBGUERvdWJsZVJlZ2lz
dGVySUQgcm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk12Ny5oCmluZGV4IDQyYjhhNDhjZGQyMi4uMDBiOGVkNjg5MWU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
djcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNdjcuaApAQCAtMTQ2Nyw2ICsxNDY3LDEyIEBAIHB1YmxpYzoKICAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiAKKyAgICB2b2lkIGNvbnZlcnRJbnQzMlRvRmxvYXQoUmVnaXN0ZXJJRCBzcmMsIEZQ
UmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIudm1vdihmcFRlbXBS
ZWdpc3Rlciwgc3JjLCBzcmMpOworICAgICAgICBtX2Fzc2VtYmxlci52Y3Z0X3NpZ25lZFRvRmxv
YXRpbmdQb2ludChkZXN0LCBmcFRlbXBSZWdpc3RlckFzU2luZ2xlKCksIC8qIHRvRG91YmxlOiAq
LyBmYWxzZSk7CisgICAgfQorCiAgICAgdm9pZCBjb252ZXJ0SW50MzJUb0RvdWJsZShSZWdpc3Rl
cklEIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci52
bW92KGZwVGVtcFJlZ2lzdGVyLCBzcmMsIHNyYyk7CkBAIC0yMjk4LDYgKzIzMDQsMTQgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gQ2FsbChtX2Fzc2VtYmxlci5iKCksIENhbGw6OkxpbmthYmxl
TmVhclRhaWwpOwogICAgIH0KIAorICAgIC8vIEZJWE1FOiB3aHkgaXMgdGhpcyB0aGUgc2FtZSB0
aGFuIG5lYXJDYWxsKCkgaW4gQVJNNjQ/IGlzIGl0IHJpZ2h0PworICAgIEFMV0FZU19JTkxJTkUg
Q2FsbCB0aHJlYWRTYWZlUGF0Y2hhYmxlTmVhckNhbGwoKQorICAgIHsKKyAgICAgICAgaW52YWxp
ZGF0ZUFsbFRlbXBSZWdpc3RlcnMoKTsKKyAgICAgICAgbW92ZUZpeGVkV2lkdGhFbmNvZGluZyhU
cnVzdGVkSW1tMzIoMCksIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICByZXR1cm4gQ2FsbCht
X2Fzc2VtYmxlci5ibHgoZGF0YVRlbXBSZWdpc3RlciksIENhbGw6OkxpbmthYmxlTmVhcik7Cisg
ICAgfQorCiAgICAgQUxXQVlTX0lOTElORSBDYWxsIGNhbGwoUHRyVGFnKQogICAgIHsKICAgICAg
ICAgbW92ZUZpeGVkV2lkdGhFbmNvZGluZyhUcnVzdGVkSW1tMzIoMCksIGRhdGFUZW1wUmVnaXN0
ZXIpOwpAQCAtMjMyMiw2ICsyMzM2LDEyIEBAIHB1YmxpYzoKICAgICBBTFdBWVNfSU5MSU5FIENh
bGwgY2FsbChSZWdpc3RlcklEIHRhcmdldCwgUmVnaXN0ZXJJRCBjYWxsVGFnKSB7IHJldHVybiBV
TlVTRURfUEFSQU0oY2FsbFRhZyksIGNhbGwodGFyZ2V0LCBOb1B0clRhZyk7IH0KICAgICBBTFdB
WVNfSU5MSU5FIENhbGwgY2FsbChBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgY2FsbFRhZykg
eyByZXR1cm4gVU5VU0VEX1BBUkFNKGNhbGxUYWcpLCBjYWxsKGFkZHJlc3MsIE5vUHRyVGFnKTsg
fQogCisgICAgQUxXQVlTX0lOTElORSB2b2lkIGNhbGxPcGVyYXRpb24oY29uc3QgRnVuY3Rpb25Q
dHI8T3BlcmF0aW9uUHRyVGFnPiBvcGVyYXRpb24pCisgICAgeworICAgICAgICBtb3ZlKFRydXN0
ZWRJbW1QdHIob3BlcmF0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkpLCBhZGRyZXNzVGVtcFJlZ2lz
dGVyKTsKKyAgICAgICAgY2FsbChhZGRyZXNzVGVtcFJlZ2lzdGVyLCBPcGVyYXRpb25QdHJUYWcp
OworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCByZXQoKQogICAgIHsKICAgICAgICAg
bV9hc3NlbWJsZXIuYngobGlua1JlZ2lzdGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1ZhbHVlUmVwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1
ZVJlcC5oCmluZGV4IDE1N2JjODg2ODIzMS4uNzY5MzhjNmZlY2FiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1ZhbHVlUmVwLmgKQEAgLTEyNiw5ICsxMjYsMTMgQEAgcHVibGljOgogICAgIFZh
bHVlUmVwKFdhc206OlZhbHVlTG9jYXRpb24gbG9jYXRpb24pCiAgICAgewogICAgICAgICBzd2l0
Y2ggKGxvY2F0aW9uLmtpbmQoKSkgewotICAgICAgICBjYXNlIFdhc206OlZhbHVlTG9jYXRpb246
OktpbmQ6OlJlZ2lzdGVyOgorICAgICAgICBjYXNlIFdhc206OlZhbHVlTG9jYXRpb246OktpbmQ6
OkdQUlJlZ2lzdGVyOgogICAgICAgICAgICAgbV9raW5kID0gUmVnaXN0ZXI7Ci0gICAgICAgICAg
ICB1LnJlZyA9IGxvY2F0aW9uLnJlZygpOworICAgICAgICAgICAgdS5yZWcgPSBsb2NhdGlvbi5q
c3IoKS5wYXlsb2FkR1BSKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXYXNt
OjpWYWx1ZUxvY2F0aW9uOjpLaW5kOjpGUFJSZWdpc3RlcjoKKyAgICAgICAgICAgIG1fa2luZCA9
IFJlZ2lzdGVyOworICAgICAgICAgICAgdS5yZWcgPSBsb2NhdGlvbi5mcHIoKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdhc206OlZhbHVlTG9jYXRpb246OktpbmQ6OlN0YWNr
OgogICAgICAgICAgICAgbV9raW5kID0gU3RhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcAppbmRleCBkNTRjNzRmYzYzYzYuLjdiM2Y1
ZmM5ZmIyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVj
b2RlRHVtcGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNv
ZGVEdW1wZXIuY3BwCkBAIC00MTMsNyArNDEzLDcgQEAgQ1N0cmluZyBCeXRlY29kZUR1bXBlcjo6
Zm9ybWF0Q29uc3RhbnQoVHlwZSB0eXBlLCB1aW50NjRfdCBjb25zdGFudCkgY29uc3QKICAgICAg
ICAgaWYgKGlzRnVuY3JlZih0eXBlKSB8fCBpc0V4dGVybnJlZih0eXBlKSkgewogICAgICAgICAg
ICAgaWYgKEpTVmFsdWU6OmRlY29kZShjb25zdGFudCkgPT0ganNOdWxsKCkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuICJudWxsIjsKLSAgICAgICAgICAgIHJldHVybiB0b0NTdHJpbmcoUmF3UG9p
bnRlcihiaXR3aXNlX2Nhc3Q8dm9pZCo+KGNvbnN0YW50KSkpOworICAgICAgICAgICAgcmV0dXJu
IHRvQ1N0cmluZyhSYXdQb2ludGVyKGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWlu
dHB0cl90Pihjb25zdGFudCkpKSk7CiAgICAgICAgIH0KIAogICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0NhbGxGcmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0Nh
bGxGcmFtZS5oCmluZGV4IDhmNTNjMzNlNGIxYi4uMGU0MGRlZGY4MDA5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCkBAIC0xNjcsOCArMTY3LDgg
QEAgbmFtZXNwYWNlIEpTQyAgewogICAgICAgICAvLyB0byBzZWUgaWYgaXQncyBhIGNlbGwsIGFu
ZCBpZiBpdCdzIG5vdCwgd2UgdGhyb3cgYW4gZXhjZXB0aW9uLgogICAgICAgICBpbmxpbmUgSlNW
YWx1ZSBndWFyYW50ZWVkSlNWYWx1ZUNhbGxlZSgpIGNvbnN0OwogICAgICAgICBpbmxpbmUgSlNP
YmplY3QqIGpzQ2FsbGVlKCkgY29uc3Q7Ci0gICAgICAgIENhbGxlZUJpdHMgY2FsbGVlKCkgY29u
c3QgeyByZXR1cm4gQ2FsbGVlQml0cyh0aGlzW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xv
dDo6Y2FsbGVlKV0ucG9pbnRlcigpKTsgfQotICAgICAgICBTVVBQUkVTU19BU0FOIENhbGxlZUJp
dHMgdW5zYWZlQ2FsbGVlKCkgY29uc3QgeyByZXR1cm4gQ2FsbGVlQml0cyh0aGlzW3N0YXRpY19j
YXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0uYXNhblVuc2FmZVBvaW50ZXIoKSk7IH0K
KyAgICAgICAgQ2FsbGVlQml0cyBjYWxsZWUoKSBjb25zdCB7IHJldHVybiBDYWxsZWVCaXRzKHRo
aXNbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXS51bmJveGVkSW50NjQo
KSk7IH0KKyAgICAgICAgU1VQUFJFU1NfQVNBTiBDYWxsZWVCaXRzIHVuc2FmZUNhbGxlZSgpIGNv
bnN0IHsgcmV0dXJuIENhbGxlZUJpdHModGhpc1tzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNs
b3Q6OmNhbGxlZSldLmFzYW5VbnNhZmVVbmJveGVkSW50NjQoKSk7IH0KICAgICAgICAgQ29kZUJs
b2NrKiBjb2RlQmxvY2soKSBjb25zdDsKICAgICAgICAgQ29kZUJsb2NrKiogYWRkcmVzc09mQ29k
ZUJsb2NrKCkgY29uc3QgeyByZXR1cm4gYml0d2lzZV9jYXN0PENvZGVCbG9jayoqPih0aGlzICsg
c3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90Ojpjb2RlQmxvY2spKTsgfQogICAgICAgICBp
bmxpbmUgU1VQUFJFU1NfQVNBTiBDb2RlQmxvY2sqIHVuc2FmZUNvZGVCbG9jaygpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxlZUJpdHMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmgKaW5kZXgg
MThiYjdlZjdmYThjLi5kZWEzYWU1NTgxNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0NhbGxlZUJpdHMuaApAQCAtMzksMTEgKzM5LDIxIEBAIGNsYXNzIEpTQ2Vs
bDsKIGNsYXNzIENhbGxlZUJpdHMgewogcHVibGljOgogICAgIENhbGxlZUJpdHMoKSA9IGRlZmF1
bHQ7Ci0gICAgQ2FsbGVlQml0cyh2b2lkKiBwdHIpIDogbV9wdHIocHRyKSB7IH0gCisgICAgQ2Fs
bGVlQml0cyhpbnQ2NF90IHZhbHVlKQorI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIDogbV9w
dHIgeyByZWludGVycHJldF9jYXN0PHZvaWQqPih2YWx1ZSkgfQorI2VsaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICAgICAgOiBtX3B0ciB7IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KEpTVmFsdWU6
OmRlY29kZSh2YWx1ZSkucGF5bG9hZCgpKSB9CisgICAgICAgICwgbV90YWcgeyBKU1ZhbHVlOjpk
ZWNvZGUodmFsdWUpLnRhZygpIH0KKyNlbmRpZgorICAgIHsgfQogCiAgICAgQ2FsbGVlQml0cyYg
b3BlcmF0b3I9KEpTQ2VsbCogY2VsbCkKICAgICB7CiAgICAgICAgIG1fcHRyID0gY2VsbDsKKyNp
ZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBtX3RhZyA9IEpTVmFsdWU6OkNlbGxUYWc7Cisj
ZW5kaWYKICAgICAgICAgQVNTRVJUKGlzQ2VsbCgpKTsKICAgICAgICAgcmV0dXJuICp0aGlzOwog
ICAgIH0KQEAgLTUxLDE4ICs2MSwyNCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
KQogICAgIHN0YXRpYyB2b2lkKiBib3hXYXNtKFdhc206OkNhbGxlZSogY2FsbGVlKQogICAgIHsK
LSAgICAgICAgQ2FsbGVlQml0cyByZXN1bHQocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocmVpbnRl
cnByZXRfY2FzdDx1aW50cHRyX3Q+KGNhbGxlZSkgfCBKU1ZhbHVlOjpXYXNtVGFnKSk7CisjaWYg
VVNFKEpTVkFMVUU2NCkKKyAgICAgICAgQ2FsbGVlQml0cyByZXN1bHQgeyByZWludGVycHJldF9j
YXN0PGludDY0X3Q+KGNhbGxlZSkgfCBKU1ZhbHVlOjpXYXNtVGFnIH07CiAgICAgICAgIEFTU0VS
VChyZXN1bHQuaXNXYXNtKCkpOwogICAgICAgICByZXR1cm4gcmVzdWx0LnJhd1B0cigpOworI2Vs
aWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgcmV0dXJuIGNhbGxlZTsgLy8gVGhlIHBvaW50
ZXIgaXMgYXMgaXMsIGJ1dCB0aGUgY29ycmVzcG9uZGluZyB0YWcgZmllbGQgbmVlZHMgdG8gYmUg
c2V0IHRvIFdhc21UYWcgc2VwYXJhdGVseS4KKyNlbmRpZgogICAgIH0KICNlbmRpZgogCiAgICAg
Ym9vbCBpc1dhc20oKSBjb25zdAogICAgIHsKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAg
ICAgIHJldHVybiAocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG1fcHRyKSAmIEpTVmFsdWU6
Oldhc21NYXNrKSA9PSBKU1ZhbHVlOjpXYXNtVGFnOwotI2Vsc2UKKyNpZiAhRU5BQkxFKFdFQkFT
U0VNQkxZKQogICAgICAgICByZXR1cm4gZmFsc2U7CisjZWxpZiBVU0UoSlNWQUxVRTY0KQorICAg
ICAgICByZXR1cm4gKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtX3B0cikgJiBKU1ZhbHVl
OjpXYXNtTWFzaykgPT0gSlNWYWx1ZTo6V2FzbVRhZzsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQp
CisgICAgICAgIHJldHVybiBtX3RhZyA9PSBKU1ZhbHVlOjpXYXNtVGFnOwogI2VuZGlmCiAgICAg
fQogICAgIGJvb2wgaXNDZWxsKCkgY29uc3QgeyByZXR1cm4gIWlzV2FzbSgpOyB9CkBAIC03Nywx
NCArOTMsMjEgQEAgcHVibGljOgogICAgIFdhc206OkNhbGxlZSogYXNXYXNtQ2FsbGVlKCkgY29u
c3QKICAgICB7CiAgICAgICAgIEFTU0VSVChpc1dhc20oKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkK
ICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2FzbTo6Q2FsbGVlKj4ocmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KG1fcHRyKSAmIH5KU1ZhbHVlOjpXYXNtVGFnKTsKKyNlbGlmIFVT
RShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFdhc206OkNh
bGxlZSo+KG1fcHRyKTsKKyNlbmRpZgogICAgIH0KICNlbmRpZgogCiAgICAgdm9pZCogcmF3UHRy
KCkgY29uc3QgeyByZXR1cm4gbV9wdHI7IH0KLSAgICAKKwogcHJpdmF0ZToKICAgICB2b2lkKiBt
X3B0ciB7IG51bGxwdHIgfTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIHVpbnQzMl90IG1f
dGFnIHsgSlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZyB9OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9S
ZWdpc3Rlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmgK
aW5kZXggZDg3OWM5MGJlMzExLi40NjE4MTNjNDFkMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oCkBAIC03Miw2ICs3MiwxMCBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgaW50NjRfdCB1bmJveGVkSW50NjQoKSBjb25zdDsKICAgICAgICAgaW50
NjRfdCBhc2FuVW5zYWZlVW5ib3hlZEludDY0KCkgY29uc3Q7CiAgICAgICAgIGJvb2wgdW5ib3hl
ZEJvb2xlYW4oKSBjb25zdDsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVF
MzJfNjQpCisgICAgICAgIGZsb2F0IHVuYm94ZWRGbG9hdCgpIGNvbnN0OworICAgICAgICBmbG9h
dCBhc2FuVW5zYWZlVW5ib3hlZEZsb2F0KCkgY29uc3Q7CisjZW5kaWYKICAgICAgICAgZG91Ymxl
IHVuYm94ZWREb3VibGUoKSBjb25zdDsKICAgICAgICAgZG91YmxlIGFzYW5VbnNhZmVVbmJveGVk
RG91YmxlKCkgY29uc3Q7CiAgICAgICAgIEpTQ2VsbCogdW5ib3hlZENlbGwoKSBjb25zdDsKQEAg
LTE4OCw2ICsxOTIsMTggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiAhIXBheWxv
YWQoKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgQUxXQVlTX0lOTElORSBmbG9hdCBSZWdpc3Rlcjo6dW5ib3hlZEZsb2F0KCkgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8ZmxvYXQ+KHBheWxvYWQoKSk7
CisgICAgfQorCisgICAgU1VQUFJFU1NfQVNBTiBBTFdBWVNfSU5MSU5FIGZsb2F0IFJlZ2lzdGVy
Ojphc2FuVW5zYWZlVW5ib3hlZEZsb2F0KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBi
aXR3aXNlX2Nhc3Q8ZmxvYXQ+KHBheWxvYWQoKSk7CisgICAgfQorI2VuZGlmCisKICAgICBBTFdB
WVNfSU5MSU5FIGRvdWJsZSBSZWdpc3Rlcjo6dW5ib3hlZERvdWJsZSgpIGNvbnN0CiAgICAgewog
ICAgICAgICByZXR1cm4gdS5udW1iZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3Nl
bWJseUhlbHBlcnMuaAppbmRleCAxOTc2ZWQ4MGIzZTIuLmE0YjY0OGZhMGExMyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCkBAIC0xNDAzLDcgKzE0MDMs
MTAgQEAgcHVibGljOgogICAgICAgICBqaXRBc3NlcnRJc0pTRG91YmxlKGdwcik7CiAgICAgICAg
IHJldHVybiB1bmJveERvdWJsZVdpdGhvdXRBc3NlcnRpb25zKGdwciwgcmVzdWx0R1BSLCBmcHIs
IG1vZGUpOwogICAgIH0KLSAgICAKKyAgICB2b2lkIHVuYm94RG91YmxlKEpTVmFsdWVSZWdzIHJl
Z3MsIEZQUlJlZyBmcHIpCisgICAgeworICAgICAgICB1bmJveERvdWJsZShyZWdzLnRhZ0dQUigp
LCByZWdzLnBheWxvYWRHUFIoKSwgZnByKTsKKyAgICB9CiAgICAgdm9pZCBib3hEb3VibGUoRlBS
UmVnIGZwciwgSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlID0gSGF2ZVRh
Z1JlZ2lzdGVycykKICAgICB7CiAgICAgICAgIGJveERvdWJsZShmcHIsIHJlZ3MuZ3ByKCksIG1v
ZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGlu
ZUFzbUNvbmZpZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFz
bUNvbmZpZy5oCmluZGV4IDJhNjA3ZGY4YzhlOC4uYzllMGMyOTQ1ZDczIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCkBAIC0x
NDQsNiArMTQ0LDEyIEBACiAjZGVmaW5lIE9GRkxJTkVfQVNNX0pTVkFMVUU2NCAwCiAjZW5kaWYK
IAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisjZGVmaW5lIE9GRkxJTkVfQVNNX0pTVkFMVUUzMl82
NCAxCisjZWxzZQorI2RlZmluZSBPRkZMSU5FX0FTTV9KU1ZBTFVFMzJfNjQgMAorI2VuZGlmCisK
ICNpZiBVU0UoQklHSU5UMzIpCiAjZGVmaW5lIE9GRkxJTkVfQVNNX0JJR0lOVDMyIDEKICNlbHNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjMyXzY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyMzJfNjQuYXNtCmluZGV4IGFkMjUwMTdlZjBiNC4uNzA0MDFlNDViZTZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0
LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
cjMyXzY0LmFzbQpAQCAtMzgsMTggKzM4LDM0IEBAIG1hY3JvIGdldHVPcGVyYW5kV2lkZTE2SlMo
b3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkKICAgICBsb2FkaCBjb25zdGV4cHIgJW9wY29k
ZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiAyICsgT3Bjb2RlSURXaWRlMTZTaXplSlNbUEIs
IFBDLCAxXSwgZHN0CiBlbmQKIAorbWFjcm8gZ2V0dU9wZXJhbmRXaWRlMTZXYXNtKG9wY29kZVN0
cnVjdCwgZmllbGROYW1lLCBkc3QpCisgICAgbG9hZGggY29uc3RleHByICVvcGNvZGVTdHJ1Y3Ql
XyVmaWVsZE5hbWUlX2luZGV4ICogMiArIE9wY29kZUlEV2lkZTE2U2l6ZVdhc21bUEIsIFBDLCAx
XSwgZHN0CitlbmQKKwogbWFjcm8gZ2V0T3BlcmFuZFdpZGUxNkpTKG9wY29kZVN0cnVjdCwgZmll
bGROYW1lLCBkc3QpCiAgICAgbG9hZGhzaSBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxk
TmFtZSVfaW5kZXggKiAyICsgT3Bjb2RlSURXaWRlMTZTaXplSlNbUEIsIFBDLCAxXSwgZHN0CiBl
bmQKIAorbWFjcm8gZ2V0T3BlcmFuZFdpZGUxNldhc20ob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUs
IGRzdCkKKyAgICBsb2FkaHNpIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9p
bmRleCAqIDIgKyBPcGNvZGVJRFdpZGUxNlNpemVXYXNtW1BCLCBQQywgMV0sIGRzdAorZW5kCisK
IG1hY3JvIGdldHVPcGVyYW5kV2lkZTMySlMob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkK
ICAgICBsb2FkaSBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiA0
ICsgT3Bjb2RlSURXaWRlMzJTaXplSlNbUEIsIFBDLCAxXSwgZHN0CiBlbmQKIAorbWFjcm8gZ2V0
dU9wZXJhbmRXaWRlMzJXYXNtKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCisgICAgbG9h
ZGkgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogNCArIE9wY29k
ZUlEV2lkZTMyU2l6ZVdhc21bUEIsIFBDLCAxXSwgZHN0CitlbmQKKwogbWFjcm8gZ2V0T3BlcmFu
ZFdpZGUzMkpTKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCiAgICAgbG9hZGlzIGNvbnN0
ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRleCAqIDQgKyBPcGNvZGVJRFdpZGUz
MlNpemVKU1tQQiwgUEMsIDFdLCBkc3QKIGVuZAogCittYWNybyBnZXRPcGVyYW5kV2lkZTMyV2Fz
bShvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQorICAgIGxvYWRpcyBjb25zdGV4cHIgJW9w
Y29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiA0ICsgT3Bjb2RlSURXaWRlMzJTaXplV2Fz
bVtQQiwgUEMsIDFdLCBkc3QKK2VuZAorCiBtYWNybyBtYWtlUmV0dXJuKGdldCwgZGlzcGF0Y2gs
IGZuKQogICAgIGZuKG1hY3JvKHRhZywgcGF5bG9hZCkKICAgICAgICAgbW92ZSB0YWcsIHQ1CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHkuYXNtIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5LmFzbQppbmRleCAyMmViZTJh
N2ViM2QuLjEyNWYwY2I3MDk4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L1dlYkFzc2VtYmx5LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2Vi
QXNzZW1ibHkuYXNtCkBAIC0zMSw1NiArMzEsODAgQEAgaWYgSEFWRV9GQVNUX1RMUwogZW5kCiAK
IGlmIFg4Nl82NAotICAgIGNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyA9IDYKKyAgICBj
b25zdCBOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgPSA2CiBlbHNpZiBBUk02NCBvciBBUk02NEUg
b3IgUklTQ1Y2NAotICAgIGNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyA9IDgKKyAgICBj
b25zdCBOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgPSA4CitlbHNpZiBBUk12NworICAgIGNvbnN0
IE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyA9IDIKIGVsc2UKICAgICBlcnJvcgogZW5kCisKIGNv
bnN0IE51bWJlck9mV2FzbUFyZ3VtZW50RlBScyA9IDgKLWNvbnN0IE51bWJlck9mV2FzbUFyZ3Vt
ZW50cyA9IE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIE51bWJlck9mV2FzbUFyZ3VtZW50RlBS
cworCitjb25zdCBOdW1iZXJPZldhc21Bcmd1bWVudHMgPSBOdW1iZXJPZldhc21Bcmd1bWVudEpT
UnMgKyBOdW1iZXJPZldhc21Bcmd1bWVudEZQUnMKIAogIyBBbGwgY2FsbGVlIHNhdmVzIG11c3Qg
bWF0Y2ggdGhlIGRlZmluaXRpb24gaW4gV2FzbUNhbGxlZS5jcHAKIAogIyBUaGVzZSBtdXN0IG1h
dGNoIHRoZSBkZWZpbml0aW9uIGluIFdhc21NZW1vcnlJbmZvcm1hdGlvbi5jcHAKLWNvbnN0IHdh
c21JbnN0YW5jZSA9IGNzcjAKLWNvbnN0IG1lbW9yeUJhc2UgPSBjc3IzCi1jb25zdCBib3VuZHND
aGVja2luZ1NpemUgPSBjc3I0CitpZiBYODZfNjQgb3IgQVJNNjQgb3IgQVJNNjRFCisgICAgY29u
c3Qgd2FzbUluc3RhbmNlID0gY3NyMAorICAgIGNvbnN0IG1lbW9yeUJhc2UgPSBjc3IzCisgICAg
Y29uc3QgYm91bmRzQ2hlY2tpbmdTaXplID0gY3NyNAorZWxzaWYgQVJNdjcKKyAgICBjb25zdCB3
YXNtSW5zdGFuY2UgPSBjc3IwCisgICAgY29uc3QgbWVtb3J5QmFzZSA9IGludmFsaWRHUFIKKyAg
ICBjb25zdCBib3VuZHNDaGVja2luZ1NpemUgPSBpbnZhbGlkR1BSCitlbHNlCisgICAgZXJyb3IK
K2VuZAogCiAjIFRoaXMgbXVzdCBtYXRjaCB0aGUgZGVmaW5pdGlvbiBpbiBMb3dMZXZlbEludGVy
cHJldGVyLmFzbQogaWYgWDg2XzY0CiAgICAgY29uc3QgUEIgPSBjc3IyCiBlbHNpZiBBUk02NCBv
ciBBUk02NEUgb3IgUklTQ1Y2NAogICAgIGNvbnN0IFBCID0gY3NyNworZWxzaWYgQVJNdjcKKyAg
ICBjb25zdCBQQiA9IGNzcjEKIGVsc2UKICAgICBlcnJvcgogZW5kCiAKLW1hY3JvIGZvckVhY2hB
cmd1bWVudEdQUihmbikKLSAgICBmbigwICogOCwgd2EwKQotICAgIGZuKDEgKiA4LCB3YTEpCi0g
ICAgZm4oMiAqIDgsIHdhMikKLSAgICBmbigzICogOCwgd2EzKQotICAgIGZuKDQgKiA4LCB3YTQp
Ci0gICAgZm4oNSAqIDgsIHdhNSkKLSAgICBpZiBBUk02NCBvciBBUk02NEUKLSAgICAgICAgZm4o
NiAqIDgsIHdhNikKLSAgICAgICAgZm4oNyAqIDgsIHdhNykKKyMgSGVscGVyIG1hY3JvcworCisj
IE9uIEpTVkFMVUU2NCwgZWFjaCA2NC1iaXQgYXJndW1lbnQgR1BSIGhvbGRzIG9uZSB3aG9sZSBX
YXNtIHZhbHVlLgorIyBPbiBKU1ZBTFVFMzJfNjQsIGEgY29uc2VjdXRpdmUgcGFpciBvZiBldmVu
L29kZCBudW1iZXJlZCBHUFJzIGhvbGQgYSBzaW5nbGUKKyMgV2FzbSB2YWx1ZSAoZXZlbiBpZiB0
aGF0IHZhbHVlIGlzIGkzMi9mMzIsIHRoZSBvZGQgbnVtYmVyZWQgR1BSIGhvbGRzIHRoZQorIyBt
b3JlIHNpZ25pZmljYW50IHdvcmQpLgorbWFjcm8gZm9yRWFjaEFyZ3VtZW50SlNSKGZuKQorICAg
IGlmIEpTVkFMVUU2NAorICAgICAgICBmbigwICogOCwgd2EwKQorICAgICAgICBmbigxICogOCwg
d2ExKQorICAgICAgICBmbigyICogOCwgd2EyKQorICAgICAgICBmbigzICogOCwgd2EzKQorICAg
ICAgICBmbig0ICogOCwgd2E0KQorICAgICAgICBmbig1ICogOCwgd2E1KQorICAgICAgICBpZiBB
Uk02NCBvciBBUk02NEUKKyAgICAgICAgICAgIGZuKDYgKiA4LCB3YTYpCisgICAgICAgICAgICBm
big3ICogOCwgd2E3KQorICAgICAgICBlbmQKKyAgICBlbHNlCisgICAgICAgIGZuKDAgKiA4LCB3
YTEsIHdhMCkKKyAgICAgICAgZm4oMSAqIDgsIHdhMywgd2EyKQogICAgIGVuZAogZW5kCiAKIG1h
Y3JvIGZvckVhY2hBcmd1bWVudEZQUihmbikKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRH
UFJzICsgMCkgKiA4LCB3ZmEwKQotICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyAx
KSAqIDgsIHdmYTEpCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDIpICogOCwg
d2ZhMikKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgMykgKiA4LCB3ZmEzKQot
ICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyA0KSAqIDgsIHdmYTQpCi0gICAgZm4o
KE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDUpICogOCwgd2ZhNSkKLSAgICBmbigoTnVtYmVy
T2ZXYXNtQXJndW1lbnRHUFJzICsgNikgKiA4LCB3ZmE2KQotICAgIGZuKChOdW1iZXJPZldhc21B
cmd1bWVudEdQUnMgKyA3KSAqIDgsIHdmYTcpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50
SlNScyArIDApICogOCwgd2ZhMCkKKyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsg
MSkgKiA4LCB3ZmExKQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyAyKSAqIDgs
IHdmYTIpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIDMpICogOCwgd2ZhMykK
KyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgNCkgKiA4LCB3ZmE0KQorICAgIGZu
KChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyA1KSAqIDgsIHdmYTUpCisgICAgZm4oKE51bWJl
ck9mV2FzbUFyZ3VtZW50SlNScyArIDYpICogOCwgd2ZhNikKKyAgICBmbigoTnVtYmVyT2ZXYXNt
QXJndW1lbnRKU1JzICsgNykgKiA4LCB3ZmE3KQogZW5kCiAKLSMgSGVscGVyIG1hY3JvcwogIyBG
SVhNRTogRXZlbnR1YWxseSB0aGlzIHNob3VsZCBiZSB1bmlmaWVkIHdpdGggdGhlIEpTIHZlcnNp
b25zCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2NTYKIApA
QCAtMTMwLDEwICsxNTQsMTUgQEAgbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvclByb2xvZ3VlKGNv
ZGVCbG9ja1JlZ2lzdGVyKQogICAgICAgICAgICAgYnRweiByMCwgLnJlY292ZXIKICAgICAgICAg
ICAgIG1vdmUgcjAsIHdzMAogCi0gICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRHUFIobWFjcm8g
KG9mZnNldCwgZ3ByKQoraWYgSlNWQUxVRTY0CisgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRK
U1IobWFjcm8gKG9mZnNldCwgZ3ByKQogICAgICAgICAgICAgICAgIGxvYWRxIC1vZmZzZXQgLSA4
IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBncHIKICAgICAg
ICAgICAgIGVuZCkKLQorZWxzZQorICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3Jv
IChvZmZzZXQsIGdwck1zdywgZ3BMc3cpCisgICAgICAgICAgICAgICAgbG9hZDJpYSAtb2Zmc2V0
IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXSwgZ3BMc3cs
IGdwck1zdworICAgICAgICAgICAgZW5kKQorZW5kCiAgICAgICAgICAgICBmb3JFYWNoQXJndW1l
bnRGUFIobWFjcm8gKG9mZnNldCwgZnByKQogICAgICAgICAgICAgICAgIGxvYWRkIC1vZmZzZXQg
LSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBmcHIKICAg
ICAgICAgICAgIGVuZCkKQEAgLTIwMSw2ICsyMzAsOSBAQCBtYWNybyBwcmVzZXJ2ZUNhbGxlZVNh
dmVzVXNlZEJ5V2FzbSgpCiAgICAgZWxzaWYgWDg2XzY0IG9yIFJJU0NWNjQKICAgICAgICAgc3Rv
cmVwIFBCLCAtMHg4W2Nmcl0KICAgICAgICAgc3RvcmVwIHdhc21JbnN0YW5jZSwgLTB4MTBbY2Zy
XQorICAgIGVsc2lmIEFSTXY3CisgICAgICAgIHN0b3JlcCBQQiwgLTRbY2ZyXQorICAgICAgICBz
dG9yZXAgd2FzbUluc3RhbmNlLCAtOFtjZnJdCiAgICAgZWxzZQogICAgICAgICBlcnJvcgogICAg
IGVuZApAQCAtMjE1LDYgKzI0Nyw5IEBAIG1hY3JvIHJlc3RvcmVDYWxsZWVTYXZlc1VzZWRCeVdh
c20oKQogICAgIGVsc2lmIFg4Nl82NCBvciBSSVNDVjY0CiAgICAgICAgIGxvYWRwIC0weDhbY2Zy
XSwgUEIKICAgICAgICAgbG9hZHAgLTB4MTBbY2ZyXSwgd2FzbUluc3RhbmNlCisgICAgZWxzaWYg
QVJNdjcKKyAgICAgICAgbG9hZHAgLTRbY2ZyXSwgUEIKKyAgICAgICAgbG9hZHAgLThbY2ZyXSwg
d2FzbUluc3RhbmNlCiAgICAgZWxzZQogICAgICAgICBlcnJvcgogICAgIGVuZApAQCAtMjQ1LDEw
ICsyODAsMTIgQEAgZW5kCiBlbmQKIAogbWFjcm8gcmVsb2FkTWVtb3J5UmVnaXN0ZXJzRnJvbUlu
c3RhbmNlKGluc3RhbmNlLCBzY3JhdGNoMSwgc2NyYXRjaDIpCitpZiBub3QgQVJNdjcKICAgICBs
b2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRNZW1vcnlbaW5zdGFuY2VdLCBtZW1vcnlCYXNl
CiAgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplW2lu
c3RhbmNlXSwgYm91bmRzQ2hlY2tpbmdTaXplCiAgICAgY2FnZWRQcmltaXRpdmVNYXlCZU51bGwo
bWVtb3J5QmFzZSwgYm91bmRzQ2hlY2tpbmdTaXplLCBzY3JhdGNoMSwgc2NyYXRjaDIpICMgSWYg
Ym91bmRzQ2hlY2tpbmdTaXplIGlzIDAsIHBvaW50ZXIgY2FuIGJlIGEgbnVsbHB0ci4KIGVuZAor
ZW5kCiAKIG1hY3JvIHRocm93RXhjZXB0aW9uKGV4Y2VwdGlvbikKICAgICBzdG9yZWkgY29uc3Rl
eHByIFdhc206OkV4Y2VwdGlvblR5cGU6OiVleGNlcHRpb24lLCBBcmd1bWVudENvdW50SW5jbHVk
aW5nVGhpcyArIFBheWxvYWRPZmZzZXRbY2ZyXQpAQCAtMjgwLDggKzMxNywxMyBAQCBtYWNybyBy
ZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxsKCkKICAgICBsb2FkaSBXYXNtOjpMTEludENhbGxl
ZTo6bV9udW1DYWxsZWVMb2NhbHNbd3MxXSwgd3MxCiAgICAgbHNoaWZ0cCAzLCB3czEKICAgICBh
ZGRwIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLCB3czEKK2lmIEFSTXY3CisgICAgc3Vi
cCBjZnIsIHdzMSwgd3MxCisgICAgbW92ZSB3czEsIHNwCitlbHNlCiAgICAgc3VicCBjZnIsIHdz
MSwgc3AKIGVuZAorZW5kCiAKIG1hY3JvIHdhc21Qcm9sb2d1ZShsb2FkV2FzbUluc3RhbmNlKQog
ICAgICMgU2V0IHVwIHRoZSBjYWxsIGZyYW1lIGFuZCBjaGVjayBpZiB3ZSBzaG91bGQgT1NSLgpA
QCAtMjkyLDYgKzMzNCw5IEBAIG1hY3JvIHdhc21Qcm9sb2d1ZShsb2FkV2FzbUluc3RhbmNlKQog
CiAgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fb3duZXJbd2FzbUluc3RhbmNlXSwgd3MwCiAg
ICAgc3RvcmVwIHdzMCwgVGhpc0FyZ3VtZW50T2Zmc2V0W2Nmcl0KK2lmIG5vdCBKU1ZBTFVFNjQK
KyAgICBzdG9yZWkgQ2VsbFRhZywgVGFnT2Zmc2V0ICsgVGhpc0FyZ3VtZW50T2Zmc2V0W2Nmcl0K
K2VuZAogCiAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHdzMAogICAgIGFuZHAgfjMsIHdzMApAQCAt
MzAzLDYgKzM0OCwxMCBAQCBtYWNybyB3YXNtUHJvbG9ndWUobG9hZFdhc21JbnN0YW5jZSkKICAg
ICBhZGRwIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLCB3czEKICAgICBzdWJwIGNmciwg
d3MxLCB3czEKIAoraWYgbm90IEpTVkFMVUU2NAorICAgIHN1YnAgOCwgd3MxICMgYWxpZ24gc3Rh
Y2sgcG9pbnRlcgorZW5kCisKICAgICBicGEgd3MxLCBjZnIsIC5zdGFja092ZXJmbG93CiAgICAg
YnBiZXEgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkU3RhY2tMaW1pdFt3YXNtSW5zdGFuY2VdLCB3
czEsIC5zdGFja0hlaWdodE9LCiAKQEAgLTMxMiwxMCArMzYxLDE1IEBAIG1hY3JvIHdhc21Qcm9s
b2d1ZShsb2FkV2FzbUluc3RhbmNlKQogLnN0YWNrSGVpZ2h0T0s6CiAgICAgbW92ZSB3czEsIHNw
CiAKLSAgICBmb3JFYWNoQXJndW1lbnRHUFIobWFjcm8gKG9mZnNldCwgZ3ByKQoraWYgSlNWQUxV
RTY0CisgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwcikKICAgICAgICAg
c3RvcmVxIGdwciwgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3Rl
cnMgKiA4W2Nmcl0KICAgICBlbmQpCi0KK2Vsc2UKKyAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFj
cm8gKG9mZnNldCwgZ3ByTXN3LCBncExzdykKKyAgICAgICAgc3RvcmUyaWEgZ3BMc3csIGdwck1z
dywgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nm
cl0KKyAgICBlbmQpCitlbmQKICAgICBmb3JFYWNoQXJndW1lbnRGUFIobWFjcm8gKG9mZnNldCwg
ZnByKQogICAgICAgICBzdG9yZWQgZnByLCAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFz
VmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXQogICAgIGVuZCkKQEAgLTMyOSwxNCArMzgzLDE2IEBA
IG1hY3JvIHdhc21Qcm9sb2d1ZShsb2FkV2FzbUluc3RhbmNlKQogICAgIGxvYWRpIFdhc206OkxM
SW50Q2FsbGVlOjptX251bVZhcnNbd3MwXSwgd3MxCiAgICAgc3ViaSBOdW1iZXJPZldhc21Bcmd1
bWVudHMgKyBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMsIHdzMQogICAgIGJ0aXog
d3MxLCAuemVyb0luaXRpYWxpemVMb2NhbHNEb25lCisgICAgbHNoaWZ0aSAzLCB3czEKICAgICBu
ZWdpIHdzMQoraWYgSlNWQUxVRTY0CiAgICAgc3hpMnEgd3MxLCB3czEKK2VuZAogICAgIGxlYXAg
KE51bWJlck9mV2FzbUFyZ3VtZW50cyArIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVy
cyArIDEpICogLThbY2ZyXSwgd3MwCiAuemVyb0luaXRpYWxpemVMb2NhbHNMb29wOgotICAgIGFk
ZHEgMSwgd3MxCi0gICAgc3RvcmVxIDAsIFt3czAsIHdzMSwgOF0KLSAgICBidHF6IHdzMSwgLnpl
cm9Jbml0aWFsaXplTG9jYWxzRG9uZQotICAgIGptcCAuemVyb0luaXRpYWxpemVMb2NhbHNMb29w
CisgICAgYWRkcCBQdHJTaXplLCB3czEKKyAgICBzdG9yZXAgMCwgW3dzMCwgd3MxXQorICAgIGJ0
cG56IHdzMSwgLnplcm9Jbml0aWFsaXplTG9jYWxzTG9vcAogLnplcm9Jbml0aWFsaXplTG9jYWxz
RG9uZToKIGVuZAogCkBAIC0zNzUsNiArNDMxLDI0IEBAIG1hY3JvIHNsb3dXYXNtT3Aob3Bjb2Rl
TmFtZSkKICAgICB1bnByZWZpeGVkU2xvd1dhc21PcCh3YXNtXyVvcGNvZGVOYW1lJSkKIGVuZAog
CisjIEZsb2F0IHRvIGZsb2F0IHJvdW5kaW5nIG9wcworbWFjcm8gd2FzbVJvdW5kaW5nT3Aob3Bj
b2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBmbikKK2lmIEpTVkFMVUU2NCAjIEFsbCBjdXJyZW50IDY0
LWJpdCBwbGF0Zm9ybXMgaGF2ZSBpbnN0cnVjdGlvbnMgZm9yIHRoZXNlCisgICAgd2FzbU9wKG9w
Y29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCitlbHNlCisgICAgc2xvd1dhc21PcChvcGNvZGVO
YW1lKQorZW5kCitlbmQKKworIyBpNjQgKHNpZ25lZC91bnNpZ25lZCkgdG8gZjMyIG9yIGY2NAor
bWFjcm8gd2FzbUk2NFRvRk9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCitpZiBKU1ZB
TFVFNjQgIyBBbGwgY3VycmVudCA2NC1iaXQgcGxhdGZvcm1zIGhhdmUgaW5zdHJ1Y3Rpb25zIGZv
ciB0aGVzZQorICAgIHdhc21PcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGZuKQorZWxzZQor
ICAgIHNsb3dXYXNtT3Aob3Bjb2RlTmFtZSkKK2VuZAorZW5kCisKICMgTWFjcm8gdmVyc2lvbiBv
ZiBsb2FkIG9wZXJhdGlvbnM6IG1sb2FkW3N1ZmZpeF0KICMgbG9hZHMgZmllbGQgZnJvbSB0aGUg
aW5zdHJ1Y3Rpb24gc3RyZWFtIGFuZCBwZXJmb3JtcyBsb2FkW3N1ZmZpeF0gdG8gZHN0CiBtYWNy
byBmaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleChjdHgsIGZuKQpAQCAtMzk3LDEyICs0NzEsMjEg
QEAgbWFjcm8gbG9hZENvbnN0YW50T3JWYXJpYWJsZShjdHgsIGluZGV4LCBsb2FkZXIpCiAgICAg
ZW5kKQogZW5kCiAKK2lmIEpTVkFMVUU2NAogbWFjcm8gbWxvYWRxKGN0eCwgZmllbGQsIGRzdCkK
ICAgICB3Z2V0cyhjdHgsIGZpZWxkLCBkc3QpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShj
dHgsIGRzdCwgbWFjcm8gKGZyb20pCiAgICAgICAgIGxvYWRxIGZyb20sIGRzdAogICAgIGVuZCkK
IGVuZAorZWxzZQorbWFjcm8gbWxvYWQyaShjdHgsIGZpZWxkLCBkc3RNc3csIGRzdExzdykKKyAg
ICB3Z2V0cyhjdHgsIGZpZWxkLCBkc3RMc3cpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShj
dHgsIGRzdExzdywgbWFjcm8gKGZyb20pCisgICAgICAgIGxvYWQyaWEgZnJvbSwgZHN0THN3LCBk
c3RNc3cKKyAgICBlbmQpCitlbmQKK2VuZAogCiBtYWNybyBtbG9hZGkoY3R4LCBmaWVsZCwgZHN0
KQogICAgIHdnZXRzKGN0eCwgZmllbGQsIGRzdCkKQEAgLTQzNCwxMSArNTE3LDE5IEBAIGVuZAog
CiAjIFR5cGVkIHJldHVybnMKIAoraWYgSlNWQUxVRTY0CiBtYWNybyByZXR1cm5xKGN0eCwgdmFs
dWUpCiAgICAgd2dldHMoY3R4LCBtX2RzdCwgdDUpCiAgICAgc3RvcmVxIHZhbHVlLCBbY2ZyLCB0
NSwgOF0KICAgICBkaXNwYXRjaChjdHgpCiBlbmQKK2Vsc2UKK21hY3JvIHJldHVybjJpKGN0eCwg
bXN3LCBsc3cpCisgICAgd2dldHMoY3R4LCBtX2RzdCwgdDUpCisgICAgc3RvcmUyaWEgbHN3LCBt
c3csIFtjZnIsIHQ1LCA4XQorICAgIGRpc3BhdGNoKGN0eCkKK2VuZAorZW5kCiAKIG1hY3JvIHJl
dHVybmkoY3R4LCB2YWx1ZSkKICAgICB3Z2V0cyhjdHgsIG1fZHN0LCB0NSkKQEAgLTUxMSw3ICs2
MDIsNyBAQCBtYWNybyB3YXNtQ29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVyKQogZW5kCiAK
IG9wKHdhc21fZnVuY3Rpb25fcHJvbG9ndWUsIG1hY3JvICgpCi0gICAgaWYgbm90IFdFQkFTU0VN
QkxZIG9yIG5vdCBKU1ZBTFVFNjQgb3IgQ19MT09QIG9yIENfTE9PUF9XSU4KKyAgICBpZiBub3Qg
V0VCQVNTRU1CTFkgb3IgQ19MT09QIG9yIENfTE9PUF9XSU4KICAgICAgICAgZXJyb3IKICAgICBl
bmQKIApAQCAtNTIwLDcgKzYxMSw3IEBAIG9wKHdhc21fZnVuY3Rpb25fcHJvbG9ndWUsIG1hY3Jv
ICgpCiBlbmQpCiAKIG9wKHdhc21fZnVuY3Rpb25fcHJvbG9ndWVfbm9fdGxzLCBtYWNybyAoKQot
ICAgIGlmIG5vdCBXRUJBU1NFTUJMWSBvciBub3QgSlNWQUxVRTY0IG9yIENfTE9PUCBvciBDX0xP
T1BfV0lOCisgICAgaWYgbm90IFdFQkFTU0VNQkxZIG9yIENfTE9PUCBvciBDX0xPT1BfV0lOCiAg
ICAgICAgIGVycm9yCiAgICAgZW5kCiAKQEAgLTYyMywxNiArNzE0LDIzIEBAIF93YXNtX2VudGVy
OgogICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQyLCAweGRlYWQwMGUxKQogICAgIGxv
YWRwIENvZGVCbG9ja1tjZnJdLCB0MiAgICAgICAgICAgICAgICAvLyB0MjxDb2RlQmxvY2s+ID0g
Y2ZyLkNvZGVCbG9jawogICAgIGxvYWRpIFdhc206OkxMSW50Q2FsbGVlOjptX251bVZhcnNbdDJd
LCB0MiAgICAgIC8vIHQyPHNpemVfdD4gPSB0MjxDb2RlQmxvY2s+Lm1fbnVtVmFycwotICAgIHN1
YnEgQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICsgTnVtYmVyT2ZXYXNtQXJndW1l
bnRzLCB0MgorICAgIHN1YmkgQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICsgTnVt
YmVyT2ZXYXNtQXJndW1lbnRzLCB0MgogICAgIGJ0aXogdDIsIC5vcEVudGVyRG9uZQotICAgIG1v
dmUgY2ZyLCB0MQotICAgIHN1YnEgQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICog
OCArIE51bWJlck9mV2FzbUFyZ3VtZW50cyAqIDgsIHQxCisgICAgc3VicCBjZnIsIChDYWxsZWVT
YXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKyBOdW1iZXJPZldhc21Bcmd1bWVudHMpICogU2xv
dFNpemUsIHQxCisgICAgbHNoaWZ0aSAzLCB0MgogICAgIG5lZ2kgdDIKK2lmIEpTVkFMVUU2NAog
ICAgIHN4aTJxIHQyLCB0MgorZW5kCisgICAgbW92ZSAwLCB0NgogLm9wRW50ZXJMb29wOgotICAg
IHN0b3JlcSAwLCBbdDEsIHQyLCA4XQotICAgIGFkZHEgMSwgdDIKLSAgICBidHFueiB0MiwgLm9w
RW50ZXJMb29wCitpZiBKU1ZBTFVFNjQKKyAgICBzdG9yZXEgdDYsIFt0MSwgdDJdCitlbHNlCisg
ICAgc3RvcmUyaWEgdDYsIHQ2LCBbdDEsIHQyXQorZW5kCisgICAgYWRkcCA4LCB0MgorICAgIGJ0
cG56IHQyLCAub3BFbnRlckxvb3AKIC5vcEVudGVyRG9uZToKICAgICB3YXNtRGlzcGF0Y2hJbmRp
cmVjdCgxKQogCkBAIC02NDUsMTEgKzc0Myw2IEBAIHdhc21PcChsb29wX2hpbnQsIFdhc21Mb29w
SGludCwgbWFjcm8oY3R4KQogICAgIGRpc3BhdGNoKGN0eCkKIGVuZCkKIAotd2FzbU9wKG1vdiwg
V2FzbU1vdiwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fc3JjLCB0MCkKLSAgICByZXR1
cm5xKGN0eCwgdDApCi1lbmQpCi0KIHdhc21PcChqdHJ1ZSwgV2FzbUp0cnVlLCBtYWNybyhjdHgp
CiAgICAgbWxvYWRpKGN0eCwgbV9jb25kaXRpb24sIHQwKQogICAgIGJ0aXogdDAsIC5jb250aW51
ZQpAQCAtNzAxLDkgKzc5NCwxNSBAQCBlbmQpCiAKIHVucHJlZml4ZWRXYXNtT3Aod2FzbV9yZXQs
IFdhc21SZXQsIG1hY3JvKGN0eCkKICAgICBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQot
ICAgIGZvckVhY2hBcmd1bWVudEdQUihtYWNybyAob2Zmc2V0LCBncHIpCitpZiBKU1ZBTFVFNjQK
KyAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByKQogICAgICAgICBsb2Fk
cSAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2Zy
XSwgZ3ByCiAgICAgZW5kKQorZWxzZQorICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zm
c2V0LCBncHJNc3csIGdwTHN3KQorICAgICAgICBsb2FkMmlhIC1vZmZzZXQgLSA4IC0gQ2FsbGVl
U2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBncExzdywgZ3ByTXN3CisgICAg
ZW5kKQorZW5kCiAgICAgZm9yRWFjaEFyZ3VtZW50RlBSKG1hY3JvIChvZmZzZXQsIGZwcikKICAg
ICAgICAgbG9hZGQgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3Rl
cnMgKiA4W2Nmcl0sIGZwcgogICAgIGVuZCkKQEAgLTcyMSw0NCArODIwLDYgQEAgd2FzbU9wKHJl
dF92b2lkLCBXYXNtUmV0Vm9pZCwgbWFjcm8oY3R4KQogICAgIGRvUmV0dXJuKCkKIGVuZCkKIAot
d2FzbU9wKHJlZl9pc19udWxsLCBXYXNtUmVmSXNOdWxsLCBtYWNybyhjdHgpCi0gICAgbWxvYWRw
KGN0eCwgbV9yZWYsIHQwKQotICAgIGNxZXEgdDAsIFZhbHVlTnVsbCwgdDAKLSAgICByZXR1cm5p
KGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChnZXRfZ2xvYmFsLCBXYXNtR2V0R2xvYmFsLCBtYWNy
byhjdHgpCi0gICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2Vd
LCB0MAotICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCi0gICAgbG9hZHEgW3QwLCB0
MSwgOF0sIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3Aoc2V0X2dsb2Jh
bCwgV2FzbVNldEdsb2JhbCwgbWFjcm8oY3R4KQotICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjpt
X2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKLSAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgs
IHQxKQotICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQotICAgIHN0b3JlcSB0MiwgW3QwLCB0
MSwgOF0KLSAgICBkaXNwYXRjaChjdHgpCi1lbmQpCi0KLXdhc21PcChnZXRfZ2xvYmFsX3BvcnRh
YmxlX2JpbmRpbmcsIFdhc21HZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkKLSAg
ICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCi0gICAg
d2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKLSAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAK
LSAgICBsb2FkcSBbdDBdLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9w
KHNldF9nbG9iYWxfcG9ydGFibGVfYmluZGluZywgV2FzbVNldEdsb2JhbFBvcnRhYmxlQmluZGlu
ZywgbWFjcm8oY3R4KQotICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUlu
c3RhbmNlXSwgdDAKLSAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQotICAgIG1sb2Fk
cShjdHgsIG1fdmFsdWUsIHQyKQotICAgIGxvYWRxIFt0MCwgdDEsIDhdLCB0MAotICAgIHN0b3Jl
cSB0MiwgW3QwXQotICAgIGRpc3BhdGNoKGN0eCkKLWVuZCkKLQogbWFjcm8gc2xvd1BhdGhGb3JX
YXNtQ2FsbChjdHgsIHNsb3dQYXRoLCBzdG9yZVdhc21JbnN0YW5jZSkKICAgICBjYWxsV2FzbUNh
bGxTbG93UGF0aCgKICAgICAgICAgc2xvd1BhdGgsCkBAIC03NzMsNyArODM0LDEyIEBAIG1hY3Jv
IHNsb3dQYXRoRm9yV2FzbUNhbGwoY3R4LCBzbG93UGF0aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAK
ICAgICAgICAgICAgIHdnZXR1KGN0eCwgbV9zdGFja09mZnNldCwgd3MxKQogICAgICAgICAgICAg
bHNoaWZ0aSAzLCB3czEKK2lmIEFSTXY3CisgICAgICAgICAgICBzdWJwIGNmciwgd3MxLCB3czEK
KyAgICAgICAgICAgIG1vdmUgd3MxLCBzcAorZWxzZQogICAgICAgICAgICAgc3VicCBjZnIsIHdz
MSwgc3AKK2VuZAogCiAgICAgICAgICAgICB3Z2V0dShjdHgsIG1fbnVtYmVyT2ZTdGFja0FyZ3Ms
IHdzMSkKIApAQCAtNzg0LDEwICs4NTAsMTUgQEAgbWFjcm8gc2xvd1BhdGhGb3JXYXNtQ2FsbChj
dHgsIHNsb3dQYXRoLCBzdG9yZVdhc21JbnN0YW5jZSkKICAgICAgICAgICAgIHJlbG9hZE1lbW9y
eVJlZ2lzdGVyc0Zyb21JbnN0YW5jZSh0YXJnZXRXYXNtSW5zdGFuY2UsIHdhMCwgd2ExKQogCiAg
ICAgICAgICAgICAjIExvYWQgcmVnaXN0ZXJzIGZyb20gc3RhY2sKLSAgICAgICAgICAgIGZvckVh
Y2hBcmd1bWVudEdQUihtYWNybyAob2Zmc2V0LCBncHIpCitpZiBKU1ZBTFVFNjQKKyAgICAgICAg
ICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHIpCiAgICAgICAgICAgICAg
ICAgbG9hZHEgQ2FsbEZyYW1lSGVhZGVyU2l6ZSArIDggKyBvZmZzZXRbc3AsIHdzMSwgOF0sIGdw
cgogICAgICAgICAgICAgZW5kKQotCitlbHNlCisgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRK
U1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3LCBncExzdykKKyAgICAgICAgICAgICAgICBsb2FkMmlh
IENhbGxGcmFtZUhlYWRlclNpemUgKyA4ICsgb2Zmc2V0W3NwLCB3czEsIDhdLCBncExzdywgZ3By
TXN3CisgICAgICAgICAgICBlbmQpCitlbmQKICAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEZQ
UihtYWNybyAob2Zmc2V0LCBmcHIpCiAgICAgICAgICAgICAgICAgbG9hZGQgQ2FsbEZyYW1lSGVh
ZGVyU2l6ZSArIDggKyBvZmZzZXRbc3AsIHdzMSwgOF0sIGZwcgogICAgICAgICAgICAgZW5kKQpA
QCAtODMwLDcgKzkwMSwxMSBAQCBtYWNybyBzbG93UGF0aEZvcldhc21DYWxsKGN0eCwgc2xvd1Bh
dGgsIHN0b3JlV2FzbUluc3RhbmNlKQogCiAgICAgICAgICAgICAjIFdlIG5lZWQgdG8gc2V0IFBD
IHRvIGxvYWQgaW5mb3JtYXRpb24gZnJvbSB0aGUgaW5zdHJ1Y3Rpb24gc3RyZWFtLCBidXQgd2UK
ICAgICAgICAgICAgICMgbmVlZCB0byBwcmVzZXJ2ZSBpdHMgY3VycmVudCB2YWx1ZSBzaW5jZSBp
dCBtaWdodCBjb250YWluIGEgcmV0dXJuIHZhbHVlCitpZiBBUk12NworICAgICAgICAgICAgcHVz
aCBQQworZWxzZQogICAgICAgICAgICAgbW92ZSBQQywgbWVtb3J5QmFzZQorZW5kCiAgICAgICAg
ICAgICBtb3ZlIFBCLCB3YXNtSW5zdGFuY2UKICAgICAgICAgICAgIGxvYWRpIEFyZ3VtZW50Q291
bnRJbmNsdWRpbmdUaGlzICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCiAgICAgICAgICAgICBsb2FkcCBD
b2RlQmxvY2tbY2ZyXSwgUEIKQEAgLTgzOSwxNyArOTE0LDI4IEBAIG1hY3JvIHNsb3dQYXRoRm9y
V2FzbUNhbGwoY3R4LCBzbG93UGF0aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAgICAgICAgICAgICB3
Z2V0dShjdHgsIG1fc3RhY2tPZmZzZXQsIHdzMSkKICAgICAgICAgICAgIGxzaGlmdGkgMywgd3Mx
CiAgICAgICAgICAgICBuZWdpIHdzMQoraWYgSlNWQUxVRTY0CiAgICAgICAgICAgICBzeGkycSB3
czEsIHdzMQorZW5kCiAgICAgICAgICAgICBhZGRwIGNmciwgd3MxCiAKICAgICAgICAgICAgICMg
QXJndW1lbnQgcmVnaXN0ZXJzIGFyZSBhbHNvIHJldHVybiByZWdpc3RlcnMsIHNvIHRoZXkgbXVz
dCBiZSBzdG9yZWQgdG8gdGhlIHN0YWNrCiAgICAgICAgICAgICAjIGluIGNhc2UgdGhleSBjb250
YWluIHJldHVybiB2YWx1ZXMuCiAgICAgICAgICAgICB3Z2V0dShjdHgsIG1fbnVtYmVyT2ZTdGFj
a0FyZ3MsIHdzMCkKK2lmIEFSTXY3CisgICAgICAgICAgICBwb3AgUEMKK2Vsc2UKICAgICAgICAg
ICAgIG1vdmUgbWVtb3J5QmFzZSwgUEMKLSAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEdQUiht
YWNybyAob2Zmc2V0LCBncHIpCitlbmQKK2lmIEpTVkFMVUU2NAorICAgICAgICAgICAgZm9yRWFj
aEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwcikKICAgICAgICAgICAgICAgICBzdG9yZXEg
Z3ByLCBDYWxsRnJhbWVIZWFkZXJTaXplICsgOCArIG9mZnNldFt3czEsIHdzMCwgOF0KICAgICAg
ICAgICAgIGVuZCkKLQorZWxzZQorICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3Jv
IChvZmZzZXQsIGdwck1zdywgZ3BMc3cpCisgICAgICAgICAgICAgICAgc3RvcmUyaWEgZ3BMc3cs
IGdwck1zdywgQ2FsbEZyYW1lSGVhZGVyU2l6ZSArIDggKyBvZmZzZXRbd3MxLCB3czAsIDhdCisg
ICAgICAgICAgICBlbmQpCitlbmQKICAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEZQUihtYWNy
byAob2Zmc2V0LCBmcHIpCiAgICAgICAgICAgICAgICAgc3RvcmVkIGZwciwgQ2FsbEZyYW1lSGVh
ZGVyU2l6ZSArIDggKyBvZmZzZXRbd3MxLCB3czAsIDhdCiAgICAgICAgICAgICBlbmQpCkBAIC05
MDAsMTk5ICs5ODYsMzYgQEAgd2FzbU9wKGN1cnJlbnRfbWVtb3J5LCBXYXNtQ3VycmVudE1lbW9y
eSwgbWFjcm8oY3R4KQogICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX21lbW9yeVt3YXNtSW5z
dGFuY2VdLCB0MAogICAgIGxvYWRwIFdhc206Ok1lbW9yeTo6bV9oYW5kbGVbdDBdLCB0MAogICAg
IGxvYWRwIFdhc206Ok1lbW9yeUhhbmRsZTo6bV9zaXplW3QwXSwgdDAKLSAgICB1cnNoaWZ0cSAx
NiwgdDAKKyAgICB1cnNoaWZ0cCAxNiwgdDAKK2lmIEpTVkFMVUU2NAogICAgIHJldHVybnEoY3R4
LCB0MCkKK2Vsc2UKKyAgICByZXR1cm4yaShjdHgsIDAsIHQwKQorZW5kCiBlbmQpCiAKIHdhc21P
cChzZWxlY3QsIFdhc21TZWxlY3QsIG1hY3JvKGN0eCkKICAgICBtbG9hZGkoY3R4LCBtX2NvbmRp
dGlvbiwgdDApCiAgICAgYnRpeiB0MCwgLmlzWmVybworaWYgSlNWQUxVRTY0CiAgICAgbWxvYWRx
KGN0eCwgbV9ub25aZXJvLCB0MCkKICAgICByZXR1cm5xKGN0eCwgdDApCiAuaXNaZXJvOgogICAg
IG1sb2FkcShjdHgsIG1femVybywgdDApCiAgICAgcmV0dXJucShjdHgsIHQwKQorZWxzZQorICAg
IG1sb2FkMmkoY3R4LCBtX25vblplcm8sIHQxLCB0MCkKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0
MCkKKy5pc1plcm86CisgICAgbWxvYWQyaShjdHgsIG1femVybywgdDEsIHQwKQorICAgIHJldHVy
bjJpKGN0eCwgdDEsIHQwKQorZW5kCiBlbmQpCiAKLSMgdXNlcyBvZmZzZXQgYXMgc2NyYXRjaCBh
bmQgcmV0dXJucyByZXN1bHQgb24gcG9pbnRlcgotbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBv
aW50ZXIoY3R4LCBwb2ludGVyLCBvZmZzZXQsIHNpemUpCi0gICAgbGVhcCBzaXplIC0gMVtwb2lu
dGVyLCBvZmZzZXRdLCB0NQotICAgIGJwYiB0NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29udGlu
dWF0aW9uCi0gICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCi0uY29u
dGludWF0aW9uOgotICAgIGFkZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgotZW5kCi0KLW1hY3JvIGVt
aXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KGN0eCwgcG9pbnRlciwgb2Zmc2V0
LCBzaXplKQotICAgIGxlYXAgc2l6ZSAtIDFbcG9pbnRlciwgb2Zmc2V0XSwgdDUKLSAgICBicGIg
dDUsIGJvdW5kc0NoZWNraW5nU2l6ZSwgLmNvbnRpbnVhdGlvbgotLnRocm93OgotICAgIHRocm93
RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNjZXNzKQotLmNvbnRpbnVhdGlvbjoKLSAgICBh
ZGRwIG1lbW9yeUJhc2UsIHBvaW50ZXIKLSAgICBhZGRwIG9mZnNldCwgcG9pbnRlcgotZW5kCi0K
LW1hY3JvIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVu
dENoZWNrKGN0eCwgcG9pbnRlciwgb2Zmc2V0LCBzaXplKQotICAgIGxlYXAgc2l6ZSAtIDFbcG9p
bnRlciwgb2Zmc2V0XSwgdDUKLSAgICBicGIgdDUsIGJvdW5kc0NoZWNraW5nU2l6ZSwgLmNvbnRp
bnVhdGlvbgotLnRocm93OgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNj
ZXNzKQotLmNvbnRpbnVhdGlvbjoKLSAgICBhZGRwIG1lbW9yeUJhc2UsIHBvaW50ZXIKLSAgICBh
ZGRwIG9mZnNldCwgcG9pbnRlcgotICAgIGJ0cG56IHBvaW50ZXIsIChzaXplIC0gMSksIC50aHJv
dwotZW5kCi0KLW1hY3JvIHdhc21Mb2FkT3AobmFtZSwgc3RydWN0LCBzaXplLCBmbikKLSAgICB3
YXNtT3AobmFtZSwgc3RydWN0LCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9p
bnRlciwgdDApCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBlbWl0
Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihjdHgsIHQwLCB0MSwgc2l6ZSkKLSAgICAgICAgZm4oW3Qw
LCB0MV0sIHQyKQotICAgICAgICByZXR1cm5xKGN0eCwgdDIpCi0gICAgZW5kKQotZW5kCi0KLXdh
c21Mb2FkT3AobG9hZDhfdSwgV2FzbUxvYWQ4VSwgMSwgbWFjcm8obWVtLCBkc3QpIGxvYWRiIG1l
bSwgZHN0IGVuZCkKLXdhc21Mb2FkT3AobG9hZDE2X3UsIFdhc21Mb2FkMTZVLCAyLCBtYWNybyht
ZW0sIGRzdCkgbG9hZGggbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChsb2FkMzJfdSwgV2FzbUxv
YWQzMlUsIDQsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaSBtZW0sIGRzdCBlbmQpCi13YXNtTG9hZE9w
KGxvYWQ2NF91LCBXYXNtTG9hZDY0VSwgOCwgbWFjcm8obWVtLCBkc3QpIGxvYWRxIG1lbSwgZHN0
IGVuZCkKLQotd2FzbUxvYWRPcChpMzJfbG9hZDhfcywgV2FzbUkzMkxvYWQ4UywgMSwgbWFjcm8o
bWVtLCBkc3QpIGxvYWRic2kgbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChpNjRfbG9hZDhfcywg
V2FzbUk2NExvYWQ4UywgMSwgbWFjcm8obWVtLCBkc3QpIGxvYWRic3EgbWVtLCBkc3QgZW5kKQot
d2FzbUxvYWRPcChpMzJfbG9hZDE2X3MsIFdhc21JMzJMb2FkMTZTLCAyLCBtYWNybyhtZW0sIGRz
dCkgbG9hZGhzaSBtZW0sIGRzdCBlbmQpCi13YXNtTG9hZE9wKGk2NF9sb2FkMTZfcywgV2FzbUk2
NExvYWQxNlMsIDIsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaHNxIG1lbSwgZHN0IGVuZCkKLXdhc21M
b2FkT3AoaTY0X2xvYWQzMl9zLCBXYXNtSTY0TG9hZDMyUywgNCwgbWFjcm8obWVtLCBkc3QpIGxv
YWRpcyBtZW0sIGRzdCBlbmQpCi0KLW1hY3JvIHdhc21TdG9yZU9wKG5hbWUsIHN0cnVjdCwgc2l6
ZSwgZm4pCi0gICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQotICAgICAgICBtbG9h
ZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkK
LSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4LCB0MCwgdDEsIHNpemUpCi0g
ICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQotICAgICAgICBmbih0MiwgW3QwLCB0MV0p
Ci0gICAgICAgIGRpc3BhdGNoKGN0eCkKLSAgICBlbmQpCi1lbmQKLQotd2FzbVN0b3JlT3Aoc3Rv
cmU4LCBXYXNtU3RvcmU4LCAxLCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZWIgdmFsdWUsIG1lbSBl
bmQpCi13YXNtU3RvcmVPcChzdG9yZTE2LCBXYXNtU3RvcmUxNiwgMiwgbWFjcm8odmFsdWUsIG1l
bSkgc3RvcmVoIHZhbHVlLCBtZW0gZW5kKQotd2FzbVN0b3JlT3Aoc3RvcmUzMiwgV2FzbVN0b3Jl
MzIsIDQsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlaSB2YWx1ZSwgbWVtIGVuZCkKLXdhc21TdG9y
ZU9wKHN0b3JlNjQsIFdhc21TdG9yZTY0LCA4LCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZXEgdmFs
dWUsIG1lbSBlbmQpCi0KICMgT3Bjb2RlcyB0aGF0IGRvbid0IGhhdmUgdGhlIGBiM29wYCBlbnRy
eSBpbiB3YXNtLmpzb24uIFRoaXMgc2hvdWxkIGJlIGtlcHQgaW4gc3luYwogCi13YXNtT3AoaTMy
X2Rpdl9zLCBXYXNtSTMyRGl2UywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGkoY3R4LCBtX2xocywg
dDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRpeiB0MSwgLnRocm93RGl2
aXNpb25CeVplcm8KLQotICAgIGJpbmVxIHQxLCAtMSwgLnNhZmUKLSAgICBiaWVxIHQwLCBjb25z
dGV4cHIgSU5UMzJfTUlOLCAudGhyb3dJbnRlZ2VyT3ZlcmZsb3cKLQotLnNhZmU6Ci0gICAgaWYg
WDg2XzY0Ci0gICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0
MCBpcyByYXggYW5kIHQyIGlzIHJkeAotICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKLSAgICAgICAgY2RxaQotICAgICAgICBpZGl2aSB0MQot
ICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgICAgIGRpdmlzIHQxLCB0
MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1cm5pKGN0eCwgdDAp
Ci0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnla
ZXJvKQotCi0udGhyb3dJbnRlZ2VyT3ZlcmZsb3c6Ci0gICAgdGhyb3dFeGNlcHRpb24oSW50ZWdl
ck92ZXJmbG93KQotZW5kKQotCi13YXNtT3AoaTMyX2Rpdl91LCBXYXNtSTMyRGl2VSwgbWFjcm8g
KGN0eCkKLSAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMs
IHQxKQotCi0gICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAgIGlmIFg4Nl82
NAotICAgICAgICB4b3JpIHQyLCB0MgotICAgICAgICB1ZGl2aSB0MQotICAgIGVsc2lmIEFSTTY0
IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgICAgIGRpdmkgdDEsIHQwCi0gICAgZWxzZQotICAg
ICAgICBlcnJvcgotICAgIGVuZAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLnRocm93RGl2aXNp
b25CeVplcm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCi1lbmQpCi0KLXdh
c21PcChpMzJfcmVtX3MsIFdhc21JMzJSZW1TLCBtYWNybyAoY3R4KQotICAgIG1sb2FkaShjdHgs
IG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCi0KLSAgICBidGl6IHQxLCAu
dGhyb3dEaXZpc2lvbkJ5WmVybwotCi0gICAgYmluZXEgdDEsIC0xLCAuc2FmZQotICAgIGJpbmVx
IHQwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAuc2FmZQotCi0gICAgbW92ZSAwLCB0MgotICAgIGpt
cCAucmV0dXJuCi0KLS5zYWZlOgotICAgIGlmIFg4Nl82NAotICAgICAgICAjIEZJWE1FOiBBZGQg
YSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0MiBpcyByZHgKLSAgICAg
ICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCi0gICAg
ICAgIGNkcWkKLSAgICAgICAgaWRpdmkgdDEKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUKLSAg
ICAgICAgZGl2aXMgdDEsIHQwLCB0MgotICAgICAgICBtdWxpIHQxLCB0MgotICAgICAgICBzdWJp
IHQwLCB0MiwgdDIKLSAgICBlbHNpZiBSSVNDVjY0Ci0gICAgICAgIHJlbWlzIHQxLCB0MAotICAg
IGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLQotLnJldHVybjoKLSAgICByZXR1cm5pKGN0
eCwgdDIpCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlz
aW9uQnlaZXJvKQotZW5kKQotCi13YXNtT3AoaTMyX3JlbV91LCBXYXNtSTMyUmVtVSwgbWFjcm8g
KGN0eCkKLSAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMs
IHQxKQotCi0gICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAgIGlmIFg4Nl82
NAotICAgICAgICB4b3JpIHQyLCB0MgotICAgICAgICB1ZGl2aSB0MQotICAgIGVsc2lmIEFSTTY0
IG9yIEFSTTY0RQotICAgICAgICBkaXZpIHQxLCB0MCwgdDIKLSAgICAgICAgbXVsaSB0MSwgdDIK
LSAgICAgICAgc3ViaSB0MCwgdDIsIHQyCi0gICAgZWxzaWYgUklTQ1Y2NAotICAgICAgICByZW1p
IHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1cm5pKGN0
eCwgdDIpCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlz
aW9uQnlaZXJvKQotZW5kKQotCiB3YXNtT3AoaTMyX2N0eiwgV2FzbUkzMkN0eiwgbWFjcm8gKGN0
eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fb3Bl
cmFuZCwgdDApCiAgICAgdHpjbnRpIHQwLCB0MAogICAgIHJldHVybmkoY3R4LCB0MCkKIGVuZCkK
QEAgLTExMDYsMTQ4ICsxMDI5LDI1IEBAIHdhc21PcChpMzJfcG9wY250LCBXYXNtSTMyUG9wY250
LCBtYWNybyAoY3R4KQogICAgIHJldHVybmkoY3R4LCByMSkKIGVuZCkKIAotd2FzbU9wKGk2NF9k
aXZfcywgV2FzbUk2NERpdlMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQw
KQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0cXogdDEsIC50aHJvd0Rpdmlz
aW9uQnlaZXJvCi0KLSAgICBicW5lcSB0MSwgLTEsIC5zYWZlCi0gICAgYnFlcSB0MCwgY29uc3Rl
eHByIElOVDY0X01JTiwgLnRocm93SW50ZWdlck92ZXJmbG93Ci0KLS5zYWZlOgotICAgIGlmIFg4
Nl82NAotICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAg
aXMgcmF4IGFuZCB0MiBpcyByZHgKLSAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCi0gICAgICAgIGNxb3EKLSAgICAgICAgaWRpdnEgdDEKLSAg
ICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAotICAgICAgICBkaXZxcyB0MSwgdDAK
LSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0gICAgcmV0dXJucShjdHgsIHQwKQot
Ci0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVy
bykKLQotLnRocm93SW50ZWdlck92ZXJmbG93OgotICAgIHRocm93RXhjZXB0aW9uKEludGVnZXJP
dmVyZmxvdykKLWVuZCkKLQotd2FzbU9wKGk2NF9kaXZfdSwgV2FzbUk2NERpdlUsIG1hY3JvIChj
dHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0
MSkKLQotICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBpZiBYODZfNjQK
LSAgICAgICAgeG9ycSB0MiwgdDIKLSAgICAgICAgdWRpdnEgdDEKLSAgICBlbHNpZiBBUk02NCBv
ciBBUk02NEUgb3IgUklTQ1Y2NAotICAgICAgICBkaXZxIHQxLCB0MAotICAgIGVsc2UKLSAgICAg
ICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS50aHJvd0RpdmlzaW9u
QnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotZW5kKQotCi13YXNt
T3AoaTY0X3JlbV9zLCBXYXNtSTY0UmVtUywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBt
X2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRxeiB0MSwgLnRo
cm93RGl2aXNpb25CeVplcm8KLQotICAgIGJxbmVxIHQxLCAtMSwgLnNhZmUKLSAgICBicW5lcSB0
MCwgY29uc3RleHByIElOVDY0X01JTiwgLnNhZmUKLQotICAgIG1vdmUgMCwgdDIKLSAgICBqbXAg
LnJldHVybgotCi0uc2FmZToKLSAgICBpZiBYODZfNjQKLSAgICAgICAgIyBGSVhNRTogQWRkIGEg
d2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4Ci0gICAgICAg
ICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgotICAgICAg
ICBjcW9xCi0gICAgICAgIGlkaXZxIHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCi0gICAg
ICAgIGRpdnFzIHQxLCB0MCwgdDIKLSAgICAgICAgbXVscSB0MSwgdDIKLSAgICAgICAgc3VicSB0
MCwgdDIsIHQyCi0gICAgZWxzaWYgUklTQ1Y2NAotICAgICAgICByZW1xcyB0MSwgdDAKLSAgICBl
bHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0KLS5yZXR1cm46Ci0gICAgcmV0dXJucShjdHgs
IHQyKSAjIHJkeCBoYXMgdGhlIHJlbWFpbmRlcgotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAg
ICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLWVuZCkKLQotd2FzbU9wKGk2NF9yZW1f
dSwgV2FzbUk2NFJlbVUsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQot
ICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9u
QnlaZXJvCi0KLSAgICBpZiBYODZfNjQKLSAgICAgICAgeG9ycSB0MiwgdDIKLSAgICAgICAgdWRp
dnEgdDEKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUKLSAgICAgICAgZGl2cSB0MSwgdDAsIHQy
Ci0gICAgICAgIG11bHEgdDEsIHQyCi0gICAgICAgIHN1YnEgdDAsIHQyLCB0MgotICAgIGVsc2lm
IFJJU0NWNjQKLSAgICAgICAgcmVtcSB0MSwgdDAKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0g
ICAgZW5kCi0gICAgcmV0dXJucShjdHgsIHQyKQotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAg
ICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLWVuZCkKLQotd2FzbU9wKGk2NF9jdHos
IFdhc21JNjRDdHosIG1hY3JvIChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkK
LSAgICB0emNudHEgdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3Ao
aTY0X3BvcGNudCwgV2FzbUk2NFBvcGNudCwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBt
X29wZXJhbmQsIGExKQotICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKLSAgICBtb3ZlIFBDLCBh
MAotICAgIGNDYWxsMihfc2xvd19wYXRoX3dhc21fcG9wY291bnRsbCkKLSAgICByZXN0b3JlU3Rh
dGVBZnRlckNDYWxsKCkKLSAgICByZXR1cm5xKGN0eCwgcjEpCi1lbmQpCi0KLXdhc21PcChmMzJf
dHJ1bmMsIFdhc21GMzJUcnVuYywgbWFjcm8gKGN0eCkKK3dhc21Sb3VuZGluZ09wKGYzMl90cnVu
YywgV2FzbUYzMlRydW5jLCBtYWNybyAoY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwg
ZnQwKQogICAgIHRydW5jYXRlZiBmdDAsIGZ0MAogICAgIHJldHVybmYoY3R4LCBmdDApCiBlbmQp
CiAKLXdhc21PcChmMzJfbmVhcmVzdCwgV2FzbUYzMk5lYXJlc3QsIG1hY3JvIChjdHgpCit3YXNt
Um91bmRpbmdPcChmMzJfbmVhcmVzdCwgV2FzbUYzMk5lYXJlc3QsIG1hY3JvIChjdHgpCiAgICAg
bWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgcm91bmRmIGZ0MCwgZnQwCiAgICAgcmV0
dXJuZihjdHgsIGZ0MCkKIGVuZCkKIAotd2FzbU9wKGY2NF90cnVuYywgV2FzbUY2NFRydW5jLCBt
YWNybyAoY3R4KQord2FzbVJvdW5kaW5nT3AoZjY0X3RydW5jLCBXYXNtRjY0VHJ1bmMsIG1hY3Jv
IChjdHgpCiAgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgdHJ1bmNhdGVkIGZ0
MCwgZnQwCiAgICAgcmV0dXJuZChjdHgsIGZ0MCkKIGVuZCkKIAotd2FzbU9wKGY2NF9uZWFyZXN0
LCBXYXNtRjY0TmVhcmVzdCwgbWFjcm8gKGN0eCkKK3dhc21Sb3VuZGluZ09wKGY2NF9uZWFyZXN0
LCBXYXNtRjY0TmVhcmVzdCwgbWFjcm8gKGN0eCkKICAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQs
IGZ0MCkKICAgICByb3VuZGQgZnQwLCBmdDAKICAgICByZXR1cm5kKGN0eCwgZnQwKQpAQCAtMTI3
MSwyNCArMTA3MSw2IEBAIHdhc21PcChpMzJfdHJ1bmNfc19mMzIsIFdhc21JMzJUcnVuY1NGMzIs
IG1hY3JvIChjdHgpCiAgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKIGVuZCkK
IAotd2FzbU9wKGkzMl90cnVuY19zX2Y2NCwgV2FzbUkzMlRydW5jU0Y2NCwgbWFjcm8gKGN0eCkK
LSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhjMWUwMDAwMDAw
MjAwMDAwLCB0MCAjIElOVDMyX01JTiAtIDEuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRl
cXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgbW92ZSAweDQxZTAwMDAwMDAw
MDAwMDAsIHQwICMgLUlOVDMyX01JTgotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0
MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgdHJ1bmNhdGVkMmlzIGZ0MCwgdDAKLSAg
ICByZXR1cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0
aW9uKE91dE9mQm91bmRzVHJ1bmMpCi1lbmQpCi0KIHdhc21PcChpMzJfdHJ1bmNfdV9mMzIsIFdh
c21JMzJUcnVuY1VGMzIsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBm
dDApCiAKQEAgLTEzMDcsOTYgKzEwODksNiBAQCB3YXNtT3AoaTMyX3RydW5jX3VfZjMyLCBXYXNt
STMyVHJ1bmNVRjMyLCBtYWNybyAoY3R4KQogICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRz
VHJ1bmMpCiBlbmQpCiAKLXdhc21PcChpMzJfdHJ1bmNfdV9mNjQsIFdhc21JMzJUcnVuY1VGNjQs
IG1hY3JvIChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3Zl
IDB4YmZmMDAwMDAwMDAwMDAwMCwgdDAgIyAtMS4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRs
dGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICBtb3ZlIDB4NDFmMDAwMDAw
MDAwMDAwMCwgdDAgIyBJTlQzMl9NSU4gKiAtMi4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRn
dGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICB0cnVuY2F0ZWQyaSBmdDAs
IHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJv
d0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3Nf
ZjMyLCBXYXNtSTY0VHJ1bmNTRjMyLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZihjdHgsIG1fb3Bl
cmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGRmMDAwMDAwLCB0MCAjIElOVDY0X01JTgotICAgIGZp
MmYgdDAsIGZ0MQotICAgIGJmbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAg
IG1vdmUgMHg1ZjAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCi0gICAgZmkyZiB0MCwgZnQxCi0gICAg
YmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICB0cnVuY2F0ZWYycXMg
ZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmM6Ci0gICAg
dGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVu
Y19zX2Y2NCwgV2FzbUk2NFRydW5jU0Y2NCwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBt
X29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhjM2UwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDY0
X01JTgotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmMKLQotICAgIG1vdmUgMHg0M2UwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KLSAg
ICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMK
LQotICAgIHRydW5jYXRlZDJxcyBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0
T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQotZW5k
KQotCi13YXNtT3AoaTY0X3RydW5jX3VfZjMyLCBXYXNtSTY0VHJ1bmNVRjMyLCBtYWNybyAoY3R4
KQotICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGJmODAwMDAw
LCB0MCAjIC0xLjAKLSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmx0ZXF1biBmdDAsIGZ0MSwgLm91
dE9mQm91bmRzVHJ1bmMKLQotICAgIG1vdmUgMHg1ZjgwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAt
Mi4wCi0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5k
c1RydW5jCi0KLSAgICB0cnVuY2F0ZWYycSBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQot
Ci0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5j
KQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3VfZjY0LCBXYXNtSTY0VHJ1bmNVRjY0LCBtYWNy
byAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGJm
ZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgbW92ZSAweDQzZjAwMDAwMDAwMDAw
MDAsIHQwICMgSU5UNjRfTUlOICogLTIuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgdHJ1bmNhdGVkMnEgZnQwLCB0MAot
ICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dFeGNl
cHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKLWVuZCkKLQogd2FzbU9wKGkzMl90cnVuY19zYXRfZjMy
X3MsIFdhc21JMzJUcnVuY1NhdEYzMlMsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9v
cGVyYW5kLCBmdDApCiAKQEAgLTE0MjUsMzQgKzExMTcsNiBAQCB3YXNtT3AoaTMyX3RydW5jX3Nh
dF9mMzJfcywgV2FzbUkzMlRydW5jU2F0RjMyUywgbWFjcm8gKGN0eCkKICAgICByZXR1cm5pKGN0
eCwgdDApCiBlbmQpCiAKLXdhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTMyVHJ1bmNT
YXRGNjRTLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0g
ICAgbW92ZSAweGMxZTAwMDAwMDAyMDAwMDAsIHQwICMgSU5UMzJfTUlOIC0gMS4wCi0gICAgZnEy
ZCB0MCwgZnQxCi0gICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWlu
T3JOYU4KLQotICAgIG1vdmUgMHg0MWUwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQzMl9NSU4KLSAg
ICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNT
YXRNYXgKLQotICAgIHRydW5jYXRlZDJpcyBmdDAsIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQot
Ci0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgotICAgIGJkZXEgZnQwLCBmdDAsIC5vdXRP
ZkJvdW5kc1RydW5jU2F0TWluCi0gICAgbW92ZSAwLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkK
LQotLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDMyX01B
WCksIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoK
LSAgICBtb3ZlIChjb25zdGV4cHIgSU5UMzJfTUlOKSwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDAp
Ci1lbmQpCi0KIHdhc21PcChpMzJfdHJ1bmNfc2F0X2YzMl91LCBXYXNtSTMyVHJ1bmNTYXRGMzJV
LCBtYWNybyAoY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogCkBAIC0xNDc2
LDE1MiArMTE0MCwyMiBAQCB3YXNtT3AoaTMyX3RydW5jX3NhdF9mMzJfdSwgV2FzbUkzMlRydW5j
U2F0RjMyVSwgbWFjcm8gKGN0eCkKICAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCiAKLXdhc21P
cChpMzJfdHJ1bmNfc2F0X2Y2NF91LCBXYXNtSTMyVHJ1bmNTYXRGNjRVLCBtYWNybyAoY3R4KQot
ICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGJmZjAwMDAwMDAw
MDAwMDAsIHQwICMgLTEuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVuIGZ0MCwgZnQx
LCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotCi0gICAgbW92ZSAweDQxZjAwMDAwMDAwMDAwMDAs
IHQwICMgSU5UMzJfTUlOICogLTIuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0
MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVkMmkgZnQwLCB0
MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46Ci0gICAg
bW92ZSAwLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRN
YXg6Ci0gICAgbW92ZSAoY29uc3RleHByIFVJTlQzMl9NQVgpLCB0MAotICAgIHJldHVybmkoY3R4
LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3MsIFdhc21JNjRUcnVuY1Nh
dEYzMlMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAg
ICBtb3ZlIDB4ZGYwMDAwMDAsIHQwICMgSU5UNjRfTUlOCi0gICAgZmkyZiB0MCwgZnQxCi0gICAg
YmZsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOCi0KLSAgICBtb3Zl
IDB4NWYwMDAwMDAsIHQwICMgLUlOVDY0X01JTgotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmZ3Rl
cXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVmMnFz
IGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWlu
T3JOYU46Ci0gICAgYmZlcSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KLSAgICBt
b3ZlIDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1h
eDoKLSAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUFYKSwgdDAKLSAgICByZXR1cm5xKGN0eCwg
dDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQ2
NF9NSU4pLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVu
Y19zYXRfZjY0X3MsIFdhc21JNjRUcnVuY1NhdEY2NFMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRk
KGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YzNlMDAwMDAwMDAwMDAwMCwgdDAg
IyBJTlQ2NF9NSU4KLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0dW4gZnQwLCBmdDEsIC5vdXRP
ZkJvdW5kc1RydW5jU2F0TWluT3JOYU4KLQotICAgIG1vdmUgMHg0M2UwMDAwMDAwMDAwMDAwLCB0
MCAjIC1JTlQ2NF9NSU4KLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwg
Lm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQotICAgIHRydW5jYXRlZDJxcyBmdDAsIHQwCi0gICAg
cmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgotICAgIGJk
ZXEgZnQwLCBmdDAsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCi0gICAgbW92ZSAwLCB0MAotICAg
IHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6Ci0gICAgbW92ZSAo
Y29uc3RleHByIElOVDY0X01BWCksIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZC
b3VuZHNUcnVuY1NhdE1pbjoKLSAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUlOKSwgdDAKLSAg
ICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl91LCBX
YXNtSTY0VHJ1bmNTYXRGMzJVLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZihjdHgsIG1fb3BlcmFu
ZCwgZnQwKQotCi0gICAgbW92ZSAweGJmODAwMDAwLCB0MCAjIC0xLjAKLSAgICBmaTJmIHQwLCBm
dDEKLSAgICBiZmx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KLQotICAg
IG1vdmUgMHg1ZjgwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCi0gICAgZmkyZiB0MCwgZnQx
Ci0gICAgYmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4Ci0KLSAgICB0
cnVuY2F0ZWYycSBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNU
cnVuY1NhdE1pbjoKLSAgICBtb3ZlIDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0
T2ZCb3VuZHNUcnVuY1NhdE1heDoKLSAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDY0X01BWCksIHQw
Ci0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3NhdF9mNjRf
dSwgV2FzbUk2NFRydW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29w
ZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKLSAg
ICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNT
YXRNaW4KLQotICAgIG1vdmUgMHg0M2YwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDY0X01JTiAqIC0y
LjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmNTYXRNYXgKLQotICAgIHRydW5jYXRlZDJxIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwg
dDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgotICAgIG1vdmUgMCwgdDAKLSAgICByZXR1
cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1vdmUgKGNvbnN0
ZXhwciBVSU5UNjRfTUFYKSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLQotd2Fz
bU9wKGYzMl9jb252ZXJ0X3VfaTY0LCBXYXNtRjMyQ29udmVydFVJNjQsIG1hY3JvIChjdHgpCit3
YXNtSTY0VG9GT3AoZjMyX2NvbnZlcnRfdV9pNjQsIFdhc21GMzJDb252ZXJ0VUk2NCwgbWFjcm8g
KGN0eCkKICAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQogICAgIGlmIFg4Nl82NAogICAg
ICAgICBjcTJmIHQwLCB0MSwgZnQwCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NW
NjQKLSAgICAgICAgY3EyZiB0MCwgZnQwCiAgICAgZWxzZQotICAgICAgICBlcnJvcgorICAgICAg
ICBjcTJmIHQwLCBmdDAKICAgICBlbmQKICAgICByZXR1cm5mKGN0eCwgZnQwKQogZW5kKQogCi13
YXNtT3AoZjY0X2NvbnZlcnRfdV9pNjQsIFdhc21GNjRDb252ZXJ0VUk2NCwgbWFjcm8gKGN0eCkK
K3dhc21JNjRUb0ZPcChmNjRfY29udmVydF91X2k2NCwgV2FzbUY2NENvbnZlcnRVSTY0LCBtYWNy
byAoY3R4KQogICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAgaWYgWDg2XzY0CiAg
ICAgICAgIGNxMmQgdDAsIHQxLCBmdDAKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklT
Q1Y2NAotICAgICAgICBjcTJkIHQwLCBmdDAKICAgICBlbHNlCi0gICAgICAgIGVycm9yCisgICAg
ICAgIGNxMmQgdDAsIGZ0MAogICAgIGVuZAogICAgIHJldHVybmQoY3R4LCBmdDApCiBlbmQpCkBA
IC0xNjMyLDQ3ICsxMTY2LDYgQEAgd2FzbU9wKGkzMl9lcXosIFdhc21JMzJFcXosIG1hY3JvKGN0
eCkKICAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCiAKLXdhc21PcChpNjRfc2hsLCBXYXNtSTY0
U2hsLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShj
dHgsIG1fcmhzLCB0MSkKLSAgICBsc2hpZnRxIHQxLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkK
LWVuZCkKLQotd2FzbU9wKGk2NF9zaHJfdSwgV2FzbUk2NFNoclUsIG1hY3JvKGN0eCkKLSAgICBt
bG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotICAgIHVy
c2hpZnRxIHQxLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9z
aHJfcywgV2FzbUk2NFNoclMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDAp
Ci0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotICAgIHJzaGlmdHEgdDEsIHQwCi0gICAgcmV0
dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3JvdHIsIFdhc21JNjRSb3RyLCBtYWNy
byhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhz
LCB0MSkKLSAgICBycm90YXRlcSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0K
LXdhc21PcChpNjRfcm90bCwgV2FzbUk2NFJvdGwsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4
LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotICAgIGxyb3RhdGVxIHQx
LCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9lcXosIFdhc21J
NjRFcXosIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIGNx
ZXEgdDAsIDAsIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotZW5kKQotCiB3YXNtT3AoZjMyX21p
biwgV2FzbUYzMk1pbiwgbWFjcm8oY3R4KQogICAgIG1sb2FkZihjdHgsIG1fbGhzLCBmdDApCiAg
ICAgbWxvYWRmKGN0eCwgbV9yaHMsIGZ0MSkKQEAgLTE3ODIsMjMgKzEyNzUsNiBAQCB3YXNtT3Ao
ZjY0X21heCwgV2FzbUY2NE1heCwgbWFjcm8oY3R4KQogICAgIHJldHVybmQoY3R4LCBmdDEpCiBl
bmQpCiAKLXdhc21PcChmNjRfY29weXNpZ24sIFdhc21GNjRDb3B5c2lnbiwgbWFjcm8oY3R4KQot
ICAgIG1sb2FkZChjdHgsIG1fbGhzLCBmdDApCi0gICAgbWxvYWRkKGN0eCwgbV9yaHMsIGZ0MSkK
LQotICAgIGZkMnEgZnQxLCB0MQotICAgIG1vdmUgMHg4MDAwMDAwMDAwMDAwMDAwLCB0MgotICAg
IGFuZHEgdDIsIHQxCi0KLSAgICBmZDJxIGZ0MCwgdDAKLSAgICBtb3ZlIDB4N2ZmZmZmZmZmZmZm
ZmZmZiwgdDIKLSAgICBhbmRxIHQyLCB0MAotCi0gICAgb3JxIHQxLCB0MAotICAgIGZxMmQgdDAs
IGZ0MAotICAgIHJldHVybmQoY3R4LCBmdDApCi1lbmQpCi0KIHdhc21PcChmMzJfY29udmVydF91
X2kzMiwgV2FzbUYzMkNvbnZlcnRVSTMyLCBtYWNybyhjdHgpCiAgICAgbWxvYWRpKGN0eCwgbV9v
cGVyYW5kLCB0MCkKICAgICBjaTJmIHQwLCBmdDAKQEAgLTE5NzQsMTM0ICsxNDUwLDYgQEAgd2Fz
bU9wKGkzMl9jbHosIFdhc21JMzJDbHosIG1hY3JvKGN0eCkKICAgICByZXR1cm5pKGN0eCwgdDEp
CiBlbmQpCiAKLXdhc21PcChpNjRfYWRkLCBXYXNtSTY0QWRkLCBtYWNybyhjdHgpCi0gICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBhZGRx
IHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9zdWIsIFdh
c21JNjRTdWIsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxv
YWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIHN1YnEgdDEsIHQwCi0gICAgcmV0dXJucShjdHgsIHQw
KQotZW5kKQotCi13YXNtT3AoaTY0X211bCwgV2FzbUk2NE11bCwgbWFjcm8oY3R4KQotICAgIG1s
b2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgbXVs
cSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfYW5kLCBX
YXNtSTY0QW5kLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1s
b2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBhbmRxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0
MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9vciwgV2FzbUk2NE9yLCBtYWNybyhjdHgpCi0gICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBvcnEg
dDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X3hvciwgV2Fz
bUk2NFhvciwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9h
ZHEoY3R4LCBtX3JocywgdDEpCi0gICAgeG9ycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEp
Ci1lbmQpCi0KLXdhc21PcChpNjRfZXEsIFdhc21JNjRFcSwgbWFjcm8oY3R4KQotICAgIG1sb2Fk
cShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FlcSB0
MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQot
d2FzbU9wKGk2NF9uZSwgV2FzbUk2NE5lLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9s
aHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcW5lcSB0MCwgdDEsIHQy
Ci0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2
NF9sdF9zLCBXYXNtSTY0THRTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQw
KQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWx0IHQwLCB0MSwgdDIKLSAgICBh
bmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2xlX3Ms
IFdhc21JNjRMZVMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAg
bWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxbHRlcSB0MCwgdDEsIHQyCi0gICAgYW5kaSAx
LCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9sdF91LCBXYXNt
STY0THRVLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2Fk
cShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWIgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAg
ICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfbGVfdSwgV2FzbUk2NExlVSwg
bWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBt
X3JocywgdDEpCi0gICAgY3FiZXEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1
cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfZ3RfcywgV2FzbUk2NEd0UywgbWFjcm8o
Y3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3Jocywg
dDEpCi0gICAgY3FndCB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4
LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9nZV9zLCBXYXNtSTY0R2VTLCBtYWNybyhjdHgpCi0g
ICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAg
ICBjcWd0ZXEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIp
Ci1lbmQpCi0KLXdhc21PcChpNjRfZ3RfdSwgV2FzbUk2NEd0VSwgbWFjcm8oY3R4KQotICAgIG1s
b2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3Fh
IHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQot
Ci13YXNtT3AoaTY0X2dlX3UsIFdhc21JNjRHZVUsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4
LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxYWVxIHQwLCB0
MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNt
T3AoaTY0X2NseiwgV2FzbUk2NENseiwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3Bl
cmFuZCwgdDApCi0gICAgbHpjbnRxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkK
LQogd2FzbU9wKGYzMl9hZGQsIFdhc21GMzJBZGQsIG1hY3JvKGN0eCkKICAgICBtbG9hZGYoY3R4
LCBtX2xocywgZnQwKQogICAgIG1sb2FkZihjdHgsIG1fcmhzLCBmdDEpCkBAIC0yMTQyLDEzICsx
NDkwLDEzIEBAIHdhc21PcChmMzJfbmVnLCBXYXNtRjMyTmVnLCBtYWNybyhjdHgpCiAgICAgcmV0
dXJuZihjdHgsIGZ0MSkKIGVuZCkKIAotd2FzbU9wKGYzMl9jZWlsLCBXYXNtRjMyQ2VpbCwgbWFj
cm8oY3R4KQord2FzbVJvdW5kaW5nT3AoZjMyX2NlaWwsIFdhc21GMzJDZWlsLCBtYWNybyhjdHgp
CiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgY2VpbGYgZnQwLCBmdDEKICAg
ICByZXR1cm5mKGN0eCwgZnQxKQogZW5kKQogCi13YXNtT3AoZjMyX2Zsb29yLCBXYXNtRjMyRmxv
b3IsIG1hY3JvKGN0eCkKK3dhc21Sb3VuZGluZ09wKGYzMl9mbG9vciwgV2FzbUYzMkZsb29yLCBt
YWNybyhjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgZmxvb3JmIGZ0
MCwgZnQxCiAgICAgcmV0dXJuZihjdHgsIGZ0MSkKQEAgLTIyNDIsMTMgKzE1OTAsMTMgQEAgd2Fz
bU9wKGY2NF9uZWcsIFdhc21GNjROZWcsIG1hY3JvKGN0eCkKICAgICByZXR1cm5kKGN0eCwgZnQx
KQogZW5kKQogCi13YXNtT3AoZjY0X2NlaWwsIFdhc21GNjRDZWlsLCBtYWNybyhjdHgpCit3YXNt
Um91bmRpbmdPcChmNjRfY2VpbCwgV2FzbUY2NENlaWwsIG1hY3JvKGN0eCkKICAgICBtbG9hZGQo
Y3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICBjZWlsZCBmdDAsIGZ0MQogICAgIHJldHVybmQoY3R4
LCBmdDEpCiBlbmQpCiAKLXdhc21PcChmNjRfZmxvb3IsIFdhc21GNjRGbG9vciwgbWFjcm8oY3R4
KQord2FzbVJvdW5kaW5nT3AoZjY0X2Zsb29yLCBXYXNtRjY0Rmxvb3IsIG1hY3JvKGN0eCkKICAg
ICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICBmbG9vcmQgZnQwLCBmdDEKICAgICBy
ZXR1cm5kKGN0eCwgZnQxKQpAQCAtMjMwMyw1MCArMTY1MSwyMCBAQCB3YXNtT3AoZjY0X2dlLCBX
YXNtRjY0R2UsIG1hY3JvKGN0eCkKIGVuZCkKIAogd2FzbU9wKGkzMl93cmFwX2k2NCwgV2FzbUkz
MldyYXBJNjQsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAg
IG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQog
Ci13YXNtT3AoaTY0X2V4dGVuZF9zX2kzMiwgV2FzbUk2NEV4dGVuZFNJMzIsIG1hY3JvKGN0eCkK
LSAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIHN4aTJxIHQwLCB0MQotICAgIHJl
dHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9leHRlbmRfdV9pMzIsIFdhc21JNjRF
eHRlbmRVSTMyLCBtYWNybyhjdHgpCi0gICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAg
ICB6eGkycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KIHdhc21PcChpMzJf
ZXh0ZW5kOF9zLCBXYXNtSTMyRXh0ZW5kOFMsIG1hY3JvKGN0eCkKICAgICBtbG9hZGkoY3R4LCBt
X29wZXJhbmQsIHQwKQogICAgIHN4YjJpIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKKyAg
ICByZXR1cm5pKGN0eCwgdDEpCiBlbmQpCiAKIHdhc21PcChpMzJfZXh0ZW5kMTZfcywgV2FzbUkz
MkV4dGVuZDE2UywgbWFjcm8oY3R4KQogICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCiAg
ICAgc3hoMmkgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0
X2V4dGVuZDhfcywgV2FzbUk2NEV4dGVuZDhTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwg
bV9vcGVyYW5kLCB0MCkKLSAgICBzeGIycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1l
bmQpCi0KLXdhc21PcChpNjRfZXh0ZW5kMTZfcywgV2FzbUk2NEV4dGVuZDE2UywgbWFjcm8oY3R4
KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgc3hoMnEgdDAsIHQxCi0gICAg
cmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X2V4dGVuZDMyX3MsIFdhc21JNjRF
eHRlbmQxNlMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAg
IHN4aTJxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKKyAgICByZXR1cm5pKGN0eCwgdDEp
CiBlbmQpCiAKIHdhc21PcChmMzJfY29udmVydF9zX2kzMiwgV2FzbUYzMkNvbnZlcnRTSTMyLCBt
YWNybyhjdHgpCkBAIC0yMzU1LDcgKzE2NzMsNyBAQCB3YXNtT3AoZjMyX2NvbnZlcnRfc19pMzIs
IFdhc21GMzJDb252ZXJ0U0kzMiwgbWFjcm8oY3R4KQogICAgIHJldHVybmYoY3R4LCBmdDApCiBl
bmQpCiAKLXdhc21PcChmMzJfY29udmVydF9zX2k2NCwgV2FzbUYzMkNvbnZlcnRTSTY0LCBtYWNy
byhjdHgpCit3YXNtSTY0VG9GT3AoZjMyX2NvbnZlcnRfc19pNjQsIFdhc21GMzJDb252ZXJ0U0k2
NCwgbWFjcm8oY3R4KQogICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAgY3EyZnMg
dDAsIGZ0MAogICAgIHJldHVybmYoY3R4LCBmdDApCkBAIC0yMzc5LDcgKzE2OTcsNyBAQCB3YXNt
T3AoZjY0X2NvbnZlcnRfc19pMzIsIFdhc21GNjRDb252ZXJ0U0kzMiwgbWFjcm8oY3R4KQogICAg
IHJldHVybmQoY3R4LCBmdDApCiBlbmQpCiAKLXdhc21PcChmNjRfY29udmVydF9zX2k2NCwgV2Fz
bUY2NENvbnZlcnRTSTY0LCBtYWNybyhjdHgpCit3YXNtSTY0VG9GT3AoZjY0X2NvbnZlcnRfc19p
NjQsIFdhc21GNjRDb252ZXJ0U0k2NCwgbWFjcm8oY3R4KQogICAgIG1sb2FkcShjdHgsIG1fb3Bl
cmFuZCwgdDApCiAgICAgY3EyZHMgdDAsIGZ0MAogICAgIHJldHVybmQoY3R4LCBmdDApCkBAIC0y
MzkxLDM0ICsxNzA5LDI5IEBAIHdhc21PcChmNjRfcHJvbW90ZV9mMzIsIFdhc21GNjRQcm9tb3Rl
RjMyLCBtYWNybyhjdHgpCiAgICAgcmV0dXJuZChjdHgsIGZ0MSkKIGVuZCkKIAotd2FzbU9wKGY2
NF9yZWludGVycHJldF9pNjQsIFdhc21GNjRSZWludGVycHJldEk2NCwgbWFjcm8oY3R4KQotICAg
IG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgZnEyZCB0MCwgZnQwCi0gICAgcmV0dXJu
ZChjdHgsIGZ0MCkKLWVuZCkKLQogd2FzbU9wKGkzMl9yZWludGVycHJldF9mMzIsIFdhc21JMzJS
ZWludGVycHJldEYzMiwgbWFjcm8oY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQw
KQogICAgIGZmMmkgZnQwLCB0MAogICAgIHJldHVybmkoY3R4LCB0MCkKIGVuZCkKIAotd2FzbU9w
KGk2NF9yZWludGVycHJldF9mNjQsIFdhc21JNjRSZWludGVycHJldEY2NCwgbWFjcm8oY3R4KQot
ICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotICAgIGZkMnEgZnQwLCB0MAotICAgIHJl
dHVybnEoY3R4LCB0MCkKLWVuZCkKLQogbWFjcm8gZHJvcEtlZXAoc3RhcnRPZmZzZXQsIGRyb3As
IGtlZXApCiAgICAgbHNoaWZ0aSAzLCBzdGFydE9mZnNldAogICAgIHN1YnAgY2ZyLCBzdGFydE9m
ZnNldCwgc3RhcnRPZmZzZXQKICAgICBuZWdpIGRyb3AKK2lmIEpTVkFMVUU2NAogICAgIHN4aTJx
IGRyb3AsIGRyb3AKK2VuZAogCiAuY29weUxvb3A6CiAgICAgYnRpeiBrZWVwLCAuZG9uZQoraWYg
SlNWQUxVRTY0CiAgICAgbG9hZHEgW3N0YXJ0T2Zmc2V0LCBkcm9wLCA4XSwgdDYKICAgICBzdG9y
ZXEgdDYsIFtzdGFydE9mZnNldF0KK2Vsc2UKKyAgICBsb2FkMmlhIFtzdGFydE9mZnNldCwgZHJv
cCwgOF0sIHQ1LCB0NgorICAgIHN0b3JlMmlhIHQ1LCB0NiwgW3N0YXJ0T2Zmc2V0XQorZW5kCiAg
ICAgc3ViaSAxLCBrZWVwCiAgICAgc3VicCA4LCBzdGFydE9mZnNldAogICAgIGptcCAuY29weUxv
b3AKQEAgLTI0MzYsMzg5ICsxNzQ5LDYgQEAgd2FzbU9wKGRyb3Bfa2VlcCwgV2FzbURyb3BLZWVw
LCBtYWNybyhjdHgpCiAgICAgZGlzcGF0Y2goY3R4KQogZW5kKQogCi1tYWNybyB3YXNtQXRvbWlj
QmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIsIGZuaCwg
Zm5pLCBmbnEpCi0gICAgd2FzbU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3Us
IFdhc21JNjRBdG9taWNSbXc4JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0gICAgICAg
IG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQs
IHQxKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKLSAgICAgICAgZW1pdENoZWNr
QW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQoY3R4LCB0MywgdDEsIDEpCi0gICAgICAgIGZu
Yih0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKLSAgICAgICAgYW5kcSAweGZmLCB0MCAjIEZJWE1FOiBa
ZXJvRXh0ZW5kOFRvNjQKLSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZiwg
Lm9rIGVuZCkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAgICB3YXNtT3Ao
aTY0X2F0b21pY19ybXcxNiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXcxNiV1
cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50
ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxvYWRx
KGN0eCwgbV92YWx1ZSwgdDApCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRk
aW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCAyKQotICAgICAgICBmbmgo
dDAsIFt0M10sIHQyLCB0NSwgdDEpCi0gICAgICAgIGFuZHEgMHhmZmZmLCB0MCAjIEZJWE1FOiBa
ZXJvRXh0ZW5kMTZUbzY0Ci0gICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmZm
ZiwgLm9rIGVuZCkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAgICB3YXNt
T3AoaTY0X2F0b21pY19ybXczMiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXcz
MiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3Bv
aW50ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxv
YWRxKGN0eCwgbV92YWx1ZSwgdDApCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVy
QWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA0KQotICAgICAgICBm
bmkodDAsIFt0M10sIHQyLCB0NSwgdDEpCi0gICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEg
dDAsIDB4ZmZmZmZmZmYsIC5vayBlbmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBl
bmQpCi0gICAgd2FzbU9wKGk2NF9hdG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21JNjRB
dG9taWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4
LCBtX3BvaW50ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAg
ICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQ
b2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA4KQotICAg
ICAgICBmbnEodDAsIFt0M10sIHQyLCB0NSwgdDEpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkK
LSAgICBlbmQpCi1lbmQKLQotbWFjcm8gd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FT
KGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmksIGZucSkKLSAgICB3YXNtQXRv
bWljQmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLAotICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgaWYg
WDg2XzY0Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKLSAgICAgICAgICAgICAg
ICBsb2FkYiBtZW0sIHQwR1BSCi0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBt
b3ZlIHQwR1BSLCB0MkdQUgotICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIpCi0gICAg
ICAgICAgICAgICAgYmF0b21pY3dlYWtjYXNiIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAotICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbG9hZGxp
bmthY3FiIG1lbSwgdDFHUFIKLSAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BSLCB0MkdQ
UikKLSAgICAgICAgICAgICAgICBzdG9yZWNvbmRyZWxiIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAg
ICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCi0gICAgICAgICAgICAgICAgbW92ZSB0
MUdQUiwgdDBHUFIKLSAgICAgICAgICAgIGVuZAotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBpZiBYODZfNjQK
LSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgotICAgICAgICAgICAgICAgIGxvYWRo
IG1lbSwgdDBHUFIKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIG1vdmUgdDBH
UFIsIHQyR1BSCi0gICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAg
ICAgICBiYXRvbWljd2Vha2Nhc2ggdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCi0gICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBsb2FkbGlua2FjcWgg
bWVtLCB0MUdQUgotICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAg
ICAgICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAg
ICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKLSAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0
MEdQUgotICAgICAgICAgICAgZW5kCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIs
IG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIGlmIFg4Nl82NAotICAgICAg
ICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCi0gICAgICAgICAgICAgICAgbG9hZGkgbWVtLCB0
MEdQUgotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJH
UFIKLSAgICAgICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgICAgIGJh
dG9taWN3ZWFrY2FzaSB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxaSBtZW0sIHQx
R1BSCi0gICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAg
ICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgICAgIGJp
bmVxIHQ1R1BSLCAwLCAubG9vcAotICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0g
ICAgICAgICAgICBlbmQKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgaWYgWDg2XzY0Ci0gICAgICAgICAgICAg
ICAgbW92ZSB0MEdQUiwgdDVHUFIKLSAgICAgICAgICAgICAgICBsb2FkcSBtZW0sIHQwR1BSCi0g
ICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgotICAg
ICAgICAgICAgICAgIGZucSh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAgICAgYmF0b21pY3dl
YWtjYXNxIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAotICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbG9hZGxpbmthY3FxIG1lbSwgdDFHUFIKLSAg
ICAgICAgICAgICAgICBmbnEodDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgICAgICBz
dG9yZWNvbmRyZWxxIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICAgICAgYmluZXEgdDVH
UFIsIDAsIC5sb29wCi0gICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAgICAgICAg
ICAgIGVuZAotICAgICAgICBlbmQpCi1lbmQKLQotaWYgWDg2XzY0Ci0gICAgd2FzbUF0b21pY0Jp
bmFyeVJNV09wcyhfYWRkLCBBZGQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNy
byh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaCB0MEdQUiwg
bWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikg
YXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRxIHQwR1BSLCBtZW0gZW5kKQotICAg
IHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3N1YiwgU3ViLAotICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3ViYiB0MEdQUiwgbWVtIGVuZCwK
LSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNo
Z3N1YmggdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJpIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNy
byh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3VicSB0MEdQUiwg
bWVtIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94Y2hnLCBYY2hnLAotICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYiB0MEdQ
UiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikgYXRvbWljeGNoZ2ggdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdpIHQwR1BSLCBtZW0gZW5kLAotICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hncSB0MEdQ
UiwgbWVtIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FuZCwg
QW5kLAotICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBhbmRpIHQ1R1BS
LCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKLSAgICAg
ICAgICAgIGFuZHEgdDVHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmlu
YXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX29yLCBPciwKLSAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BS
KQotICAgICAgICAgICAgb3JpIHQ1R1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1h
Y3JvKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgIG9ycSB0NUdQUiwgdDJHUFIKLSAgICAgICAg
ZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeG9yLCBYb3IsCi0g
ICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgIHhvcmkgdDVHUFIsIHQyR1BS
Ci0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAgICAgICAg
eG9ycSB0NUdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQotZWxzaWYgQVJNNjRFCi0gICAgd2FzbUF0
b21pY0JpbmFyeVJNV09wcyhfYWRkLCBBZGQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwK
LSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNo
Z2FkZGggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQs
Ci0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hj
aGdhZGRxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3Bz
KF9zdWIsIFN1YiwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikKLSAgICAgICAgICAgIG5lZ3EgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdhZGRiIHQw
R1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwg
dDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIG5lZ3EgdDBHUFIKLSAgICAgICAgICAg
IGF0b21pY3hjaGdhZGRoIHQwR1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAg
bWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIG5lZ3Eg
dDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0sIHQwR1BSCi0gICAg
ICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikK
LSAgICAgICAgICAgIG5lZ3EgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdhZGRxIHQwR1BS
LCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9h
bmQsIEFuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikK
LSAgICAgICAgICAgIG5vdHEgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcmIgdDBH
UFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgbm90cSB0MEdQUgotICAgICAgICAgICAg
YXRvbWljeGNoZ2NsZWFyaCB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQsCi0gICAgICAg
IG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBub3Rx
IHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnY2xlYXJpIHQwR1BSLCBtZW0sIHQwR1BSCi0g
ICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikKLSAgICAgICAgICAgIG5vdHEgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcnEg
dDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdP
cHMoX29yLCBPciwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikgYXRvbWljeGNoZ29yYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQw
R1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcmggdDBHUFIsIG1lbSwg
dDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KSBhdG9taWN4Y2hnb3JpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBH
UFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29ycSB0MEdQUiwgbWVtLCB0
MEdQUiBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfeG9yLCBYb3IsCi0gICAgICAg
IG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JiIHQw
R1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1
R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9yaSB0
MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKLSAgICB3
YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94Y2hnLCBYY2hnLAotICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYiB0MEdQUiwgbWVtLCB0MEdQUiBl
bmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21p
Y3hjaGdoIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwg
dDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2kgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAot
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
cSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQpCi1lbHNlCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09w
c1dpdGhXZWFrQ0FTKF9hZGQsIEFkZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQ
UikKLSAgICAgICAgICAgIGFkZGkgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0g
ICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBhZGRxIHQwR1BS
LCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNX
aXRoV2Vha0NBUyhfc3ViLCBTdWIsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIp
Ci0gICAgICAgICAgICBzdWJpIHQxR1BSLCB0MEdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAg
ICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgc3VicSB0MUdQUiwg
dDBHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0
aFdlYWtDQVMoX3hjaGcsIFhjaGcsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIp
Ci0gICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1h
Y3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgot
ICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9hbmQs
IEFuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIGFu
ZGkgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BS
LCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBhbmRxIHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAg
ICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfb3IsIE9y
LAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgb3JpIHQw
R1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFH
UFIsIHQyR1BSKQotICAgICAgICAgICAgb3JxIHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAg
ZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeG9yLCBYb3IsCi0g
ICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICB4b3JpIHQwR1BS
LCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIs
IHQyR1BSKQotICAgICAgICAgICAgeG9ycSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVu
ZCkKLWVuZAotCi1tYWNybyB3YXNtQXRvbWljQ29tcGFyZUV4Y2hhbmdlT3BzKGxvd2VyQ2FzZU9w
Y29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIsIGZuaCwgZm5pLCBmbnEpCi0gICAgd2FzbU9wKGk2
NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4JXVwcGVy
Q2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwg
dDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEoY3R4
LCBtX2V4cGVjdGVkLCB0MCkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAg
ICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KGN0eCwgdDMsIHQxLCAx
KQotICAgICAgICBmbmIodDAsIHQyLCBbdDNdLCB0NSwgdDEpCi0gICAgICAgIGFuZHEgMHhmZiwg
dDAgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0Ci0gICAgICAgIGFzc2VydChtYWNybyhvaykgYnFi
ZXEgdDAsIDB4ZmYsIC5vayBlbmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQp
Ci0gICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MTYlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0
QXRvbWljUm13MTYldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRp
KGN0eCwgbV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0g
ICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQotICAgICAgICBtbG9hZHEoY3R4LCBt
X3ZhbHVlLCB0MikKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZz
ZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDIpCi0gICAgICAgIGZuaCh0MCwgdDIs
IFt0M10sIHQ1LCB0MSkKLSAgICAgICAgYW5kcSAweGZmZmYsIHQwICMgRklYTUU6IFplcm9FeHRl
bmQxNlRvNjQKLSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZmZmLCAub2sg
ZW5kKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdhc21PcChpNjRf
YXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzMyJXVwcGVy
Q2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwg
dDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEoY3R4
LCBtX2V4cGVjdGVkLCB0MCkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAg
ICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENo
ZWNrKGN0eCwgdDMsIHQxLCA0KQotICAgICAgICBmbmkodDAsIHQyLCBbdDNdLCB0NSwgdDEpCi0g
ICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmZmZmZmZmYsIC5vayBlbmQpCi0g
ICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi0gICAgd2FzbU9wKGk2NF9hdG9taWNf
cm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21JNjRBdG9taWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwg
bWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQotICAgICAgICB3
Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBlY3RlZCwg
dDApCi0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQotICAgICAgICBlbWl0Q2hlY2tB
bmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0
MSwgOCkKLSAgICAgICAgZm5xKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQotICAgICAgICByZXR1cm5x
KGN0eCwgdDApCi0gICAgZW5kKQotZW5kCi0KLSMgdDBHUFIgPT4gZXhwZWN0ZWQsIHQyR1BSID0+
IHZhbHVlLCBtZW0gPT4gbWVtb3J5IHJlZmVyZW5jZQotd2FzbUF0b21pY0NvbXBhcmVFeGNoYW5n
ZU9wcyhfY21weGNoZywgQ21weGNoZywKLSAgICBtYWNybyh0MEdQUiwgdDJHUFIsIG1lbSwgdDVH
UFIsIHQxR1BSKQotICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRFCi0gICAgICAgICAgICBicWEg
dDBHUFIgLCAweGZmLCAuZmFpbAotICAgICAgICAgICAgYXRvbWljd2Vha2Nhc2IgdDBHUFIsIHQy
R1BSLCBtZW0KLSAgICAgICAgICAgIGptcCAuZG9uZQotICAgICAgICAuZmFpbDoKLSAgICAgICAg
ICAgIGF0b21pY2xvYWRiIG1lbSwgdDBHUFIKLSAgICAgICAgLmRvbmU6Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICBsb2FkbGlua2FjcWIgbWVtLCB0MUdQUgotICAg
ICAgICAgICAgYnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAotICAgICAgICAgICAgc3RvcmVjb25k
cmVsYiB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUK
LSAgICAgICAgICAgIGptcCAubG9vcAotICAgICAgICAuZmFpbDoKLSAgICAgICAgICAgIHN0b3Jl
Y29uZHJlbGIgdDVHUFIsIHQxR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5k
b25lCi0gICAgICAgICAgICBqbXAgLmxvb3AKLSAgICAgICAgLmRvbmU6Ci0gICAgICAgICAgICBt
b3ZlIHQxR1BSLCB0MEdQUgotICAgICAgICBlbmQKLSAgICBlbmQsCi0gICAgbWFjcm8odDBHUFIs
IHQyR1BSLCBtZW0sIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQot
ICAgICAgICAgICAgYnFhIHQwR1BSLCAweGZmZmYsIC5mYWlsCi0gICAgICAgICAgICBhdG9taWN3
ZWFrY2FzaCB0MEdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgam1wIC5kb25lCi0gICAgICAg
IC5mYWlsOgotICAgICAgICAgICAgYXRvbWljbG9hZGggbWVtLCB0MEdQUgotICAgICAgICAuZG9u
ZToKLSAgICAgICAgZWxzZQotICAgICAgICAubG9vcDoKLSAgICAgICAgICAgIGxvYWRsaW5rYWNx
aCBtZW0sIHQxR1BSCi0gICAgICAgICAgICBicW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCi0gICAg
ICAgICAgICBzdG9yZWNvbmRyZWxoIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICBiaWVx
IHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAgICAgIC5mYWlsOgot
ICAgICAgICAgICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDFHUFIsIG1lbQotICAgICAgICAgICAg
YmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGptcCAubG9vcAotICAgICAgICAuZG9u
ZToKLSAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0gICAgICAgIGVuZAotICAgIGVuZCwK
LSAgICBtYWNybyh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BSKQotICAgICAgICBpZiBY
ODZfNjQgb3IgQVJNNjRFCi0gICAgICAgICAgICBicWEgdDBHUFIsIDB4ZmZmZmZmZmYsIC5mYWls
Ci0gICAgICAgICAgICBhdG9taWN3ZWFrY2FzaSB0MEdQUiwgdDJHUFIsIG1lbQotICAgICAgICAg
ICAgam1wIC5kb25lCi0gICAgICAgIC5mYWlsOgotICAgICAgICAgICAgYXRvbWljbG9hZGkgbWVt
LCB0MEdQUgotICAgICAgICAuZG9uZToKLSAgICAgICAgZWxzZQotICAgICAgICAubG9vcDoKLSAg
ICAgICAgICAgIGxvYWRsaW5rYWNxaSBtZW0sIHQxR1BSCi0gICAgICAgICAgICBicW5lcSB0MEdQ
UiwgdDFHUFIsIC5mYWlsCi0gICAgICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0MkdQUiwg
bWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5s
b29wCi0gICAgICAgIC5mYWlsOgotICAgICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwgdDFH
UFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGpt
cCAubG9vcAotICAgICAgICAuZG9uZToKLSAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0g
ICAgICAgIGVuZAotICAgIGVuZCwKLSAgICBtYWNybyh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIs
IHQxR1BSKQotICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRFCi0gICAgICAgICAgICBhdG9taWN3
ZWFrY2FzcSB0MEdQUiwgdDJHUFIsIG1lbQotICAgICAgICBlbHNlCi0gICAgICAgIC5sb29wOgot
ICAgICAgICAgICAgbG9hZGxpbmthY3FxIG1lbSwgdDFHUFIKLSAgICAgICAgICAgIGJxbmVxIHQw
R1BSLCB0MUdQUiwgLmZhaWwKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbHEgdDVHUFIsIHQyR1BS
LCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBqbXAg
Lmxvb3AKLSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAgICBzdG9yZWNvbmRyZWxxIHQ1R1BSLCB0
MUdQUiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAg
am1wIC5sb29wCi0gICAgICAgIC5kb25lOgotICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIK
LSAgICAgICAgZW5kCi0gICAgZW5kKQotCiB3YXNtT3AoYXRvbWljX2ZlbmNlLCBXYXNtRHJvcEtl
ZXAsIG1hY3JvKGN0eCkKICAgICBmZW5jZQogICAgIGRpc3BhdGNoKGN0eCkKQEAgLTI4NDcsOSAr
MTc3NywxNCBAQCBtYWNybyBjb21tb25DYXRjaEltcGwoY3R4LCBzdG9yZVdhc21JbnN0YW5jZSkK
ICAgICBjb252ZXJ0Q2FsbGVlVG9WTSh0MykKICAgICByZXN0b3JlQ2FsbGVlU2F2ZXNGcm9tVk1F
bnRyeUZyYW1lQ2FsbGVlU2F2ZXNCdWZmZXIodDMsIHQwKQogCi0gICAgbG9hZHAgVk06OmNhbGxl
ZUZvcldhc21DYXRjaFt0M10sIHdzMQotICAgIHN0b3JlcCAwLCBWTTo6Y2FsbGVlRm9yV2FzbUNh
dGNoW3QzXQotICAgIHN0b3JlcCB3czEsIENhbGxlZVtjZnJdCisgICAgbG9hZHAgVk06OmNhbGxl
ZUZvcldhc21DYXRjaCArIFBheWxvYWRPZmZzZXRbdDNdLCB3czEKKyAgICBzdG9yZXAgMCwgVk06
OmNhbGxlZUZvcldhc21DYXRjaCArIFBheWxvYWRPZmZzZXRbdDNdCisgICAgc3RvcmVwIHdzMSwg
Q2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdCitpZiBub3QgSlNWQUxVRTY0CisgICAgbG9hZGkg
Vk06OmNhbGxlZUZvcldhc21DYXRjaCArIFRhZ09mZnNldFt0M10sIHdzMQorICAgIHN0b3JlaSBF
bXB0eVZhbHVlVGFnLCBWTTo6Y2FsbGVlRm9yV2FzbUNhdGNoICsgVGFnT2Zmc2V0W3QzXQorICAg
IHN0b3JlaSB3czEsIENhbGxlZSArIFRhZ09mZnNldFtjZnJdCitlbmQKIAogICAgIGxvYWRwIFZN
OjpjYWxsRnJhbWVGb3JDYXRjaFt0M10sIGNmcgogICAgIHN0b3JlcCAwLCBWTTo6Y2FsbEZyYW1l
Rm9yQ2F0Y2hbdDNdCkBAIC0yODg4LDggKzE4MjMsMTMgQEAgbWFjcm8gY2F0Y2hJbXBsKGN0eCwg
c3RvcmVXYXNtSW5zdGFuY2UpCiAKIC5jb3B5TG9vcDoKICAgICBidGl6IHQzLCAuZG9uZQoraWYg
SlNWQUxVRTY0CiAgICAgbG9hZHEgW3QxXSwgdDYKICAgICBzdG9yZXEgdDYsIFt0Ml0KK2Vsc2UK
KyAgICBsb2FkMmlhIFt0MV0sIHQ1LCB0NgorICAgIHN0b3JlMmlhIHQ1LCB0NiwgW3QyXQorZW5k
CiAgICAgc3ViaSAxLCB0MwogICAgICMgRklYTUU6IFVzZSBhcm0gc3RvcmUtYWRkL3N1YiBpbnN0
cnVjdGlvbnMgaW4gd2FzbSBMTEludCBjYXRjaAogICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMTIxMApAQCAtMjkxNywzICsxODU3LDEwIEBAIGVuZCkKIGNv
bW1vbldhc21PcCh3YXNtX2NhdGNoX2FsbF9ub190bHMsIFdhc21DYXRjaEFsbCwgbWFjcm8oKSBl
bmQsIG1hY3JvKGN0eCkKICAgICBjYXRjaEFsbEltcGwoY3R4LCBtYWNybyhpbnN0YW5jZSkgZW5k
KQogZW5kKQorCisjIFZhbHVlLXJlcHJlc2VudGF0aW9uLXNwZWNpZmljIGNvZGUuCitpZiBKU1ZB
TFVFNjQKKyAgICBpbmNsdWRlIFdlYkFzc2VtYmx5NjQKK2Vsc2UKKyAgICBpbmNsdWRlIFdlYkFz
c2VtYmx5MzJfNjQKK2VuZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L1dlYkFzc2VtYmx5MzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFz
c2VtYmx5MzJfNjQuYXNtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u
ZWMxODlmOTc2M2U3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L1dlYkFzc2VtYmx5MzJfNjQuYXNtCkBAIC0wLDAgKzEsMTEyOSBAQAorIyBDb3B5cmlnaHQg
KEMpIDIwMTEtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdo
dCAoQykgMjAyMSBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBDb25zdGFudHMKKworY29uc3QgTXN3T2Zm
c2V0ID0gNAorY29uc3QgTHN3T2Zmc2V0ID0gMAorCisjIE9wY29kZXMgdGhhdCBzaG91bGQgZXZl
bnR1YWxseSBiZSBzaGFyZWQgd2l0aCBKUyBsbGludAorCit3YXNtT3AobW92LCBXYXNtTW92LCBt
YWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fc3JjLCB0MSwgdDApCisgICAgcmV0dXJuMmko
Y3R4LCB0MSwgdDApCitlbmQpCisKKyMgV2FzbSBzcGVjaWZpYyBieXRlY29kZXMKKworbWFjcm8g
ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQocG9pbnRlciwgb2Zmc2V0LCBz
aXplKQorICAgICMgVGhpcyBtYWNybyB1cGRhdGVzICdwb2ludGVyJyB0byB0YXJnZXQgYWRkcmVz
cywgYW5kIG1heSB0aHJhc2ggJ29mZnNldCcKK2lmIEFSTXY3CisgICAgIyBOb3QgZW5vdWdoIHJl
Z2lzdGVycyBvbiBhcm0gdG8ga2VlcCB0aGUgbWVtb3J5IGJhc2UgYW5kIHNpemUgaW4gcGlubmVk
CisgICAgIyByZWdpc3RlcnMsIHNvIGxvYWQgdGhlbSBvbiBlYWNoIGFjY2VzcyBpbnN0ZWFkLiBG
SVhNRTogaW1wcm92ZSB0aGlzLgorICAgIGFkZHBzIG9mZnNldCwgcG9pbnRlcgorICAgIGJjcyAu
dGhyb3cKKyAgICBhZGRwcyBzaXplIC0gMSwgcG9pbnRlciwgb2Zmc2V0ICMgVXNlIG9mZnNldCBh
cyBzY3JhdGNoIHJlZ2lzdGVyCisgICAgYmNzIC50aHJvdworICAgIGJwYiBvZmZzZXQsIFdhc206
Okluc3RhbmNlOjptX2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZVt3YXNtSW5zdGFuY2VdLCAuY29u
dGludWF0aW9uCisudGhyb3c6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlB
Y2Nlc3MpCisuY29udGludWF0aW9uOgorICAgIGFkZHAgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVk
TWVtb3J5W3dhc21JbnN0YW5jZV0sIHBvaW50ZXIKK2Vsc2UKKyAgICBjcmFzaCgpCitlbmQKK2Vu
ZAorCittYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGln
bm1lbnRDaGVjayhwb2ludGVyLCBvZmZzZXQsIHNpemUpCisgICAgIyBUaGlzIG1hY3JvIHVwZGF0
ZXMgJ3BvaW50ZXInIHRvIHRhcmdldCBhZGRyZXNzLCBhbmQgbWF5IHRocmFzaCAnb2Zmc2V0Jwor
aWYgQVJNdjcKKyAgICAjIE5vdCBlbm91Z2ggcmVnaXN0ZXJzIG9uIGFybSB0byBrZWVwIHRoZSBt
ZW1vcnkgYmFzZSBhbmQgc2l6ZSBpbiBwaW5uZWQKKyAgICAjIHJlZ2lzdGVycywgc28gbG9hZCB0
aGVtIG9uIGVhY2ggYWNjZXNzIGluc3RlYWQuIEZJWE1FOiBpbXByb3ZlIHRoaXMuCisgICAgYWRk
cHMgb2Zmc2V0LCBwb2ludGVyCisgICAgYmNzIC50aHJvdworICAgIGFkZHBzIHNpemUgLSAxLCBw
b2ludGVyLCBvZmZzZXQgIyBVc2Ugb2Zmc2V0IGFzIHNjcmF0Y2ggcmVnaXN0ZXIKKyAgICBiY3Mg
LnRocm93CisgICAgYnBiIG9mZnNldCwgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkQm91bmRzQ2hl
Y2tpbmdTaXplW3dhc21JbnN0YW5jZV0sIC5jb250aW51YXRpb24KKy50aHJvdzoKKyAgICB0aHJv
d0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKKy5jb250aW51YXRpb246CisgICAg
YWRkcCBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRNZW1vcnlbd2FzbUluc3RhbmNlXSwgcG9pbnRl
cgorICAgIGJ0cG56IHBvaW50ZXIsIChzaXplIC0gMSksIC50aHJvdworZWxzZQorICAgIGNyYXNo
KCkKK2VuZAorZW5kCisKK21hY3JvIHdhc21Mb2FkT3AobmFtZSwgc3RydWN0LCBzaXplLCBmbikK
KyAgICB3YXNtT3AobmFtZSwgc3RydWN0LCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgs
IG1fcG9pbnRlciwgdDApCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAg
ICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldCh0MCwgdDEsIHNpemUpCisg
ICAgICAgIGZuKHQwLCB0MywgdDIpCisgICAgICAgIHJldHVybjJpKGN0eCwgdDMsIHQyKQorICAg
IGVuZCkKK2VuZAorCit3YXNtTG9hZE9wKGxvYWQ4X3UsIFdhc21Mb2FkOFUsIDEsIG1hY3JvKGFk
ZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRiIExzd09mZnNldFthZGRyXSwgZHN0THN3Cisg
ICAgbW92ZSAwLCBkc3RNc3cKK2VuZCkKK3dhc21Mb2FkT3AobG9hZDE2X3UsIFdhc21Mb2FkMTZV
LCAyLCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkaCBMc3dPZmZzZXRbYWRk
cl0sIGRzdExzdworICAgIG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGxvYWQzMl91
LCBXYXNtTG9hZDMyVSwgNCwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGkg
THN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdworZW5kKQord2FzbUxv
YWRPcChsb2FkNjRfdSwgV2FzbUxvYWQ2NFUsIDgsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3
KQorICAgICMgTWlnaHQgYmUgdW5hbGlnbmVkLCBzbyBjYW4ndCB1c2UgbG9hZDJpYQorICAgIGxv
YWRpIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAgbG9hZGkgTXN3T2Zmc2V0W2FkZHJdLCBk
c3RNc3cKK2VuZCkKKword2FzbUxvYWRPcChpMzJfbG9hZDhfcywgV2FzbUkzMkxvYWQ4UywgMSwg
bWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGJzaSBMc3dPZmZzZXRbYWRkcl0s
IGRzdExzdworICAgIG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGkzMl9sb2FkMTZf
cywgV2FzbUkzMkxvYWQxNlMsIDIsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxv
YWRoc2kgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdworZW5kKQor
d2FzbUxvYWRPcChpNjRfbG9hZDhfcywgV2FzbUk2NExvYWQ4UywgMSwgbWFjcm8oYWRkciwgZHN0
TXN3LCBkc3RMc3cpCisgICAgbG9hZGJzaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAgIHJz
aGlmdGkgZHN0THN3LCAzMSwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGk2NF9sb2FkMTZfcywg
V2FzbUk2NExvYWQxNlMsIDIsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRo
c2kgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICByc2hpZnRpIGRzdExzdywgMzEsIGRzdE1z
dworZW5kKQord2FzbUxvYWRPcChpNjRfbG9hZDMyX3MsIFdhc21JNjRMb2FkMzJTLCA0LCBtYWNy
byhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExz
dworICAgIHJzaGlmdGkgZHN0THN3LCAzMSwgZHN0TXN3CitlbmQpCisKK21hY3JvIHdhc21TdG9y
ZU9wKG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4pCisgICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFj
cm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQorICAgICAgICB3Z2V0
dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJB
ZGRpbmdPZmZzZXQodDAsIHQxLCBzaXplKQorICAgICAgICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwg
dDMsIHQyKQorICAgICAgICBmbih0MywgdDIsIHQwKQorICAgICAgICBkaXNwYXRjaChjdHgpCisg
ICAgZW5kKQorZW5kCisKK3dhc21TdG9yZU9wKHN0b3JlOCwgV2FzbVN0b3JlOCwgMSwgbWFjcm8o
c3JjTXN3LCBzcmNMc3csIGFkZHIpCisgICAgc3RvcmViIHNyY0xzdywgTHN3T2Zmc2V0W2FkZHJd
CitlbmQpCit3YXNtU3RvcmVPcChzdG9yZTE2LCBXYXNtU3RvcmUxNiwgMiwgbWFjcm8oc3JjTXN3
LCBzcmNMc3csIGFkZHIpCisgICAgc3RvcmVoIHNyY0xzdywgTHN3T2Zmc2V0W2FkZHJdCitlbmQp
Cit3YXNtU3RvcmVPcChzdG9yZTMyLCBXYXNtU3RvcmUzMiwgNCwgbWFjcm8oc3JjTXN3LCBzcmNM
c3csIGFkZHIpCisgICAgc3RvcmVpIHNyY0xzdywgTHN3T2Zmc2V0W2FkZHJdCitlbmQpCit3YXNt
U3RvcmVPcChzdG9yZTY0LCBXYXNtU3RvcmU2NCwgOCwgbWFjcm8oc3JjTXN3LCBzcmNMc3csIGFk
ZHIpCisgICAgIyBNaWdodCBiZSB1bmFsaWduZWQsIHNvIGNhbid0IHVzZSBzdG9yZTJpYQorICAg
IHN0b3JlaSBzcmNMc3csIExzd09mZnNldFthZGRyXQorICAgIHN0b3JlaSBzcmNNc3csIE1zd09m
ZnNldFthZGRyXQorZW5kKQorCit3YXNtT3AocmVmX2lzX251bGwsIFdhc21SZWZJc051bGwsIG1h
Y3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yZWYsIHQxLCB0MCkgIyB0MCBpcyB1bnVzZWQK
KyAgICBjaWVxIHQxLCBOdWxsVGFnLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKwor
d2FzbU9wKGdldF9nbG9iYWwsIFdhc21HZXRHbG9iYWwsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBX
YXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4
LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBsb2FkMmlhIFt0MCwgdDEsIDhdLCB0MCwgdDEKKyAg
ICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKHNldF9nbG9iYWwsIFdhc21T
ZXRHbG9iYWwsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxz
W3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAg
ICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwgdDMsIHQyKQorICAgIHN0b3JlMmlhIHQyLCB0MywgW3Qw
LCB0MSwgOF0KKyAgICBkaXNwYXRjaChjdHgpCitlbmQpCisKK3dhc21PcChnZXRfZ2xvYmFsX3Bv
cnRhYmxlX2JpbmRpbmcsIFdhc21HZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkK
KyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisg
ICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBsb2FkcCBbdDAsIHQxLCA4XSwg
dDAKKyAgICBsb2FkMmlhIFt0MF0sIHQwLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQor
ZW5kKQorCit3YXNtT3Aoc2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNtU2V0R2xvYmFs
UG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1f
Z2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwg
dDEpCisgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQzLCB0MikKKyAgICBsb2FkcCBbdDAsIHQx
LCA4XSwgdDAKKyAgICBzdG9yZTJpYSB0MiwgdDMsIFt0MF0KKyAgICBkaXNwYXRjaChjdHgpCitl
bmQpCisKKyMgT3Bjb2RlcyB0aGF0IGRvbid0IGhhdmUgdGhlIGBiM29wYCBlbnRyeSBpbiB3YXNt
Lmpzb24uIFRoaXMgc2hvdWxkIGJlIGtlcHQgaW4gc3luYworCittYWNybyBjYWxsRGl2UmVtKGZu
KQoraWYgQVJNdjcKKyAgICBzdWJwIFN0YWNrQWxpZ25tZW50LCBzcAorICAgIHN0b3JlcCBQQywg
W3NwXQorICAgIGNDYWxsNChmbikKKyAgICBsb2FkcCBbc3BdLCBQQworICAgIGFkZHAgU3RhY2tB
bGlnbm1lbnQsIHNwCitlbHNlCisgICAgZXJyb3IKK2VuZAorZW5kCisKKyMgaTMyIGJpbmFyeSBv
cHMKKword2FzbU9wKGkzMl9kaXZfcywgV2FzbUkzMkRpdlMsIG1hY3JvIChjdHgpCisgICAgbWxv
YWRpKGN0eCwgbV9saHMsIGEwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCBhMSkKKworICAgIGJ0
aXogYTEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBiaW5lcSBhMSwgLTEsIC5zYWZlCisg
ICAgYmllcSBhMCwgY29uc3RleHByIElOVDMyX01JTiwgLnRocm93SW50ZWdlck92ZXJmbG93CisK
Ky5zYWZlOgorICAgIGNhbGxEaXZSZW0oX3Nsb3dfcGF0aF93YXNtX2kzMl9kaXZfcykKKyAgICBy
ZXR1cm5pKGN0eCwgcjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0
aW9uKERpdmlzaW9uQnlaZXJvKQorCisudGhyb3dJbnRlZ2VyT3ZlcmZsb3c6CisgICAgdGhyb3dF
eGNlcHRpb24oSW50ZWdlck92ZXJmbG93KQorZW5kKQorCit3YXNtT3AoaTMyX2Rpdl91LCBXYXNt
STMyRGl2VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgYTApCisgICAgbWxv
YWRpKGN0eCwgbV9yaHMsIGExKQorCisgICAgYnRpeiBhMSwgLnRocm93RGl2aXNpb25CeVplcm8K
KworICAgIGNhbGxEaXZSZW0oX3Nsb3dfcGF0aF93YXNtX2kzMl9kaXZfdSkKKyAgICByZXR1cm5p
KGN0eCwgcjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERp
dmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTMyX3JlbV9zLCBXYXNtSTMyUmVtUywgbWFj
cm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgYTApCisgICAgbWxvYWRpKGN0eCwgbV9y
aHMsIGExKQorCisgICAgYnRpeiBhMSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGJpbmVx
IGExLCAtMSwgLnNhZmUKKyAgICBiaW5lcSBhMCwgY29uc3RleHByIElOVDMyX01JTiwgLnNhZmUK
KworICAgIG1vdmUgMCwgcjAKKyAgICBqbXAgLnJldHVybgorCisuc2FmZToKKyAgICBjYWxsRGl2
UmVtKF9zbG93X3BhdGhfd2FzbV9pMzJfcmVtX3MpCisKKy5yZXR1cm46CisgICAgcmV0dXJuaShj
dHgsIHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZp
c2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGkzMl9yZW1fdSwgV2FzbUkzMlJlbVUsIG1hY3Jv
IChjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9saHMsIGEwKQorICAgIG1sb2FkaShjdHgsIG1fcmhz
LCBhMSkKKworICAgIGJ0aXogYTEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBjYWxsRGl2
UmVtKF9zbG93X3BhdGhfd2FzbV9pMzJfcmVtX3UpCisgICAgcmV0dXJuaShjdHgsIHIwKQorCisu
dGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykK
K2VuZCkKKworIyBpNjQgYmluYXJ5IG9wcworCit3YXNtT3AoaTY0X2FkZCwgV2FzbUk2NEFkZCwg
bWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmko
Y3R4LCBtX3JocywgdDMsIHQyKQorICAgIGFkZGlzIHQyLCB0MAorICAgIGFkY2kgIHQzLCB0MQor
ICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3N1YiwgV2FzbUk2
NFN1YiwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1s
b2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIHN1YmlzIHQyLCB0MAorICAgIHNiY2kgIHQz
LCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X211bCwg
V2FzbUk2NE11bCwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQor
ICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG11bGkgdDIsIHQxCisgICAgbXVs
aSB0MCwgdDMKKyAgICB1bXVsbGkgdDAsIHQyLCB0MCwgdDIKKyAgICBhZGRpIHQxLCB0MgorICAg
IGFkZGkgdDMsIHQyCisgICAgcmV0dXJuMmkoY3R4LCB0MiwgdDApCitlbmQpCisKK3dhc21PcChp
NjRfZGl2X3MsIFdhc21JNjREaXZTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xo
cywgYTEsIGEwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgYTMsIGEyKQorCisgICAgYnRpbnog
YTMsIC5ub25aZXJvRGl2aXNvcgorICAgIGJ0aXogYTIsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisK
Ky5ub25aZXJvRGl2aXNvcjoKKyAgICBiaW5lcSBhMywgLTEsIC5zYWZlCisgICAgYmluZXEgYTIs
IC0xLCAuc2FmZQorICAgIGJpbmVxIGExLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAuc2FmZQorICAg
IGJ0aXogYTAsIC50aHJvd0ludGVnZXJPdmVyZmxvdworCisuc2FmZToKKyAgICBjYWxsRGl2UmVt
KF9zbG93X3BhdGhfd2FzbV9pNjRfZGl2X3MpCisgICAgcmV0dXJuMmkoY3R4LCByMSwgcjApCisK
Ky50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJv
KQorCisudGhyb3dJbnRlZ2VyT3ZlcmZsb3c6CisgICAgdGhyb3dFeGNlcHRpb24oSW50ZWdlck92
ZXJmbG93KQorZW5kKQorCit3YXNtT3AoaTY0X2Rpdl91LCBXYXNtSTY0RGl2VSwgbWFjcm8gKGN0
eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIGExLCBhMCkKKyAgICBtbG9hZDJpKGN0eCwgbV9y
aHMsIGEzLCBhMikKKworICAgIGJ0aW56IGEzLCAubm9uWmVyb0Rpdmlzb3IKKyAgICBidGl6IGEy
LCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisubm9uWmVyb0Rpdmlzb3I6CisgICAgY2FsbERpdlJl
bShfc2xvd19wYXRoX3dhc21faTY0X2Rpdl91KQorICAgIHJldHVybjJpKGN0eCwgcjEsIHIwKQor
CisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVy
bykKK2VuZCkKKword2FzbU9wKGk2NF9yZW1fcywgV2FzbUk2NFJlbVMsIG1hY3JvIChjdHgpCisg
ICAgbWxvYWQyaShjdHgsIG1fbGhzLCBhMSwgYTApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCBh
MywgYTIpCisKKyAgICBidGlueiBhMywgLm5vblplcm9EaXZpc29yCisgICAgYnRpeiBhMiwgLnRo
cm93RGl2aXNpb25CeVplcm8KKworLm5vblplcm9EaXZpc29yOgorICAgIGJpbmVxIGEzLCAtMSwg
LnNhZmUKKyAgICBiaW5lcSBhMiwgLTEsIC5zYWZlCisgICAgYmluZXEgYTEsIGNvbnN0ZXhwciBJ
TlQzMl9NSU4sIC5zYWZlCisgICAgYnRpbnogYTAsIC5zYWZlCisKKyAgICBtb3ZlIDAsIHIxCisg
ICAgbW92ZSAwLCByMAorICAgIGptcCAucmV0dXJuCisKKy5zYWZlOgorICAgIGNhbGxEaXZSZW0o
X3Nsb3dfcGF0aF93YXNtX2k2NF9yZW1fcykKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgs
IHIxLCByMCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2
aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpNjRfcmVtX3UsIFdhc21JNjRSZW1VLCBtYWNy
byAoY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgYTEsIGEwKQorICAgIG1sb2FkMmkoY3R4
LCBtX3JocywgYTMsIGEyKQorCisgICAgYnRpbnogYTMsIC5ub25aZXJvRGl2aXNvcgorICAgIGJ0
aXogYTIsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKy5ub25aZXJvRGl2aXNvcjoKKyAgICBjYWxs
RGl2UmVtKF9zbG93X3BhdGhfd2FzbV9pNjRfcmVtX3UpCisgICAgcmV0dXJuMmkoY3R4LCByMSwg
cjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9u
QnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTY0X2FuZCwgV2FzbUk2NEFuZCwgbWFjcm8oY3R4KQor
ICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3Jocywg
dDMsIHQyKQorICAgIGFuZGkgdDIsIHQwCisgICAgYW5kaSB0MywgdDEKKyAgICByZXR1cm4yaShj
dHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9vciwgV2FzbUk2NE9yLCBtYWNybyhjdHgp
CisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhz
LCB0MywgdDIpCisgICAgb3JpIHQyLCB0MAorICAgIG9yaSB0MywgdDEKKyAgICByZXR1cm4yaShj
dHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF94b3IsIFdhc21JNjRYb3IsIG1hY3JvKGN0
eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9y
aHMsIHQzLCB0MikKKyAgICB4b3JpIHQyLCB0MAorICAgIHhvcmkgdDMsIHQxCisgICAgcmV0dXJu
MmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfc2hsLCBXYXNtSTY0U2hsLCBtYWNy
byhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWRpKGN0eCwg
bV9yaHMsIHQyKQorCisgICAgYW5kaSAweDNmLCB0MgorICAgIGJ0aXogdDIsIC5yZXR1cm4KKyAg
ICBiaWIgdDIsIDMyLCAubGVzc1RoYW4zMgorCisgICAgc3ViaSAzMiwgdDIKKyAgICBsc2hpZnRp
IHQwLCB0MiwgdDEKKyAgICBtb3ZlIDAsIHQwCisgICAgam1wIC5yZXR1cm4KKworLmxlc3NUaGFu
MzI6CisgICAgbHNoaWZ0aSB0MiwgdDEKKyAgICBtb3ZlIDMyLCB0MworICAgIHN1YmkgdDIsIHQz
CisgICAgdXJzaGlmdGkgdDAsIHQzLCB0MworICAgIG9yaSB0MywgdDEKKyAgICBsc2hpZnRpIHQy
LCB0MAorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNt
T3AoaTY0X3Nocl91LCBXYXNtSTY0U2hyVSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBt
X2xocywgdDEsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MikKKworICAgIGFuZGkgMHgz
ZiwgdDIKKyAgICBidGl6IHQyLCAucmV0dXJuCisgICAgYmliIHQyLCAzMiwgLmxlc3NUaGFuMzIK
KworICAgIHN1YmkgMzIsIHQyCisgICAgdXJzaGlmdGkgdDEsIHQyLCB0MAorICAgIG1vdmUgMCwg
dDEKKyAgICBqbXAgLnJldHVybgorCisubGVzc1RoYW4zMjoKKyAgICB1cnNoaWZ0aSB0MiwgdDAK
KyAgICBtb3ZlIDMyLCB0MworICAgIHN1YmkgdDIsIHQzCisgICAgbHNoaWZ0aSB0MSwgdDMsIHQz
CisgICAgb3JpIHQzLCB0MAorICAgIHVyc2hpZnRpIHQyLCB0MQorCisucmV0dXJuOgorICAgIHJl
dHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3Nocl9zLCBXYXNtSTY0U2hy
UywgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2Fk
aShjdHgsIG1fcmhzLCB0MikKKworICAgIGFuZGkgMHgzZiwgdDIKKyAgICBidGl6IHQyLCAucmV0
dXJuCisgICAgYmliIHQyLCAzMiwgLmxlc3NUaGFuMzIKKworICAgIHN1YmkgMzIsIHQyCisgICAg
cnNoaWZ0aSB0MSwgdDIsIHQwCisgICAgcnNoaWZ0aSAzMSwgdDEKKyAgICBqbXAgLnJldHVybgor
CisubGVzc1RoYW4zMjoKKyAgICB1cnNoaWZ0aSB0MiwgdDAKKyAgICBtb3ZlIDMyLCB0MworICAg
IHN1YmkgdDIsIHQzCisgICAgbHNoaWZ0aSB0MSwgdDMsIHQzCisgICAgb3JpIHQzLCB0MAorICAg
IHJzaGlmdGkgdDIsIHQxCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitl
bmQpCisKK3dhc21PcChpNjRfcm90ciwgV2FzbUk2NFJvdHIsIG1hY3JvKGN0eCkKKyAgICBtbG9h
ZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDIpCisKKyAg
ICBhbmRpIHQyLCAweDIwLCB0MworICAgIGJ0aXogdDMsIC5ub1N3YXAKKworICAgIG1vdmUgdDAs
IHQzCisgICAgbW92ZSB0MSwgdDAKKyAgICBtb3ZlIHQzLCB0MQorCisubm9Td2FwOgorICAgIGFu
ZGkgMHgxZiwgdDIKKyAgICBidGl6IHQyLCAucmV0dXJuCisKKyAgICBtb3ZlIDMyLCB0NQorICAg
IHN1YmkgdDIsIHQ1CisgICAgbHNoaWZ0aSB0MCwgdDUsIHQzCisgICAgbHNoaWZ0aSB0MSwgdDUs
IHQ1CisgICAgdXJzaGlmdGkgdDIsIHQwCisgICAgdXJzaGlmdGkgdDIsIHQxCisgICAgb3JpIHQ1
LCB0MAorICAgIG9yaSB0MywgdDEKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0
MCkKK2VuZCkKKword2FzbU9wKGk2NF9yb3RsLCBXYXNtSTY0Um90bCwgbWFjcm8oY3R4KQorICAg
IG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MikK
KworICAgIGFuZGkgdDIsIDB4MjAsIHQzCisgICAgYnRpeiB0MywgLm5vU3dhcAorCisgICAgbW92
ZSB0MCwgdDMKKyAgICBtb3ZlIHQxLCB0MAorICAgIG1vdmUgdDMsIHQxCisKKy5ub1N3YXA6Cisg
ICAgYW5kaSAweDFmLCB0MgorICAgIGJ0aXogdDIsIC5yZXR1cm4KKworICAgIG1vdmUgMzIsIHQ1
CisgICAgc3ViaSB0MiwgdDUKKyAgICB1cnNoaWZ0aSB0MCwgdDUsIHQzCisgICAgdXJzaGlmdGkg
dDEsIHQ1LCB0NQorICAgIGxzaGlmdGkgdDIsIHQwCisgICAgbHNoaWZ0aSB0MiwgdDEKKyAgICBv
cmkgdDUsIHQwCisgICAgb3JpIHQzLCB0MQorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwg
dDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X2VxLCBXYXNtSTY0RXEsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQz
LCB0MikKKyAgICBtb3ZlIDAsIHQ2CisgICAgYmluZXEgdDEsIHQzLCAucmV0dXJuCisgICAgY2ll
cSB0MCwgdDIsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2Fz
bU9wKGk2NF9uZSwgV2FzbUk2NE5lLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhz
LCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0
NgorICAgIGJpbmVxIHQxLCB0MywgLnJldHVybgorICAgIGNpbmVxIHQwLCB0MiwgdDYKKy5yZXR1
cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2x0X3MsIFdhc21J
NjRMdFMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBt
bG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlsdCB0MSwg
dDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAg
ICBjaWIgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShj
dHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2xlX3MsIFdhc21JNjRMZVMsIG1hY3JvKGN0eCkK
KyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMs
IHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlsdCB0MSwgdDMsIC5yZXR1cm4KKyAgICBt
b3ZlIDAsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWJlcSB0MCwgdDIsIHQ2
CisgICAgYW5kaSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisK
K3dhc21PcChpNjRfbHRfdSwgV2FzbUk2NEx0VSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4
LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1v
dmUgMSwgdDYKKyAgICBiaWIgdDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJp
YSB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWIgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5y
ZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2xlX3UsIFdh
c21JNjRMZVUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAg
ICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmliIHQx
LCB0MywgLnJldHVybgorICAgIG1vdmUgMCwgdDYKKyAgICBiaWEgdDEsIHQzLCAucmV0dXJuCisg
ICAgY2liZXEgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJu
aShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2d0X3MsIFdhc21JNjRHdFMsIG1hY3JvKGN0
eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9y
aHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAg
ICBtb3ZlIDAsIHQ2CisgICAgYmlsdCB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWEgdDAsIHQyLCB0
NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQor
Cit3YXNtT3AoaTY0X2dlX3MsIFdhc21JNjRHZVMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0
eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBt
b3ZlIDEsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAg
YmlsdCB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWFlcSB0MCwgdDIsIHQ2CisgICAgYW5kaSAxLCB0
NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRfZ3Rf
dSwgV2FzbUk2NEd0VSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQw
KQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYKKyAgICBi
aWEgdDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpYiB0MSwgdDMsIC5yZXR1
cm4KKyAgICBjaWEgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0
dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2dlX3UsIFdhc21JNjRHZVUsIG1hY3Jv
KGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwg
bV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDAsIHQ2CisgICAgYmliIHQxLCB0MywgLnJldHVybgor
ICAgIG1vdmUgMSwgdDYKKyAgICBiaWEgdDEsIHQzLCAucmV0dXJuCisgICAgY2lhZXEgdDAsIHQy
LCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5k
KQorCisjIGk2NCB1bmFyeSBvcHMKKword2FzbU9wKGk2NF9jdHosIFdhc21JNjRDdHosIG1hY3Jv
IChjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fb3BlcmFuZCwgdDEsIHQwKQorICAgIGJ0aXogdDAs
IC50b3AKKworICAgIHR6Y250aSB0MCwgdDAKKyAgICBqbXAgLnJldHVybgorCisudG9wOgorICAg
IHR6Y250aSB0MSwgdDAKKyAgICBhZGRpIDMyLCB0MAorCisucmV0dXJuOgorICAgIHJldHVybjJp
KGN0eCwgMCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfY2x6LCBXYXNtSTY0Q2x6LCBtYWNybyhj
dHgpCisgICAgbWxvYWQyaShjdHgsIG1fb3BlcmFuZCwgdDEsIHQwKQorICAgIGJ0aXogdDEsIC5i
b3R0b20KKworICAgIGx6Y250aSB0MSwgdDAKKyAgICBqbXAgLnJldHVybgorCisuYm90dG9tOgor
ICAgIGx6Y250aSB0MCwgdDAKKyAgICBhZGRpIDMyLCB0MAorCisucmV0dXJuOgorICAgIHJldHVy
bjJpKGN0eCwgMCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfcG9wY250LCBXYXNtSTY0UG9wY250
LCBtYWNybyAoY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIGEzLCBhMikKKyAgICBw
cmVwYXJlU3RhdGVGb3JDQ2FsbCgpCisgICAgbW92ZSBQQywgYTAKKyAgICBjQ2FsbDIoX3Nsb3df
cGF0aF93YXNtX3BvcGNvdW50bGwpCisgICAgcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCisgICAg
cmV0dXJuMmkoY3R4LCAwLCByMSkKK2VuZCkKKword2FzbU9wKGk2NF9lcXosIFdhc21JNjRFcXos
IG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9vcGVyYW5kLCB0MSwgdDApCisgICAgbW92
ZSAwLCB0MgorICAgIGJ0aW56IHQxLCAucmV0dXJuCisgICAgY2llcSB0MCwgMCwgdDIKKy5yZXR1
cm46CisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCisjIGY2NCBiaW5hcnkgb3BzCisKK3dh
c21PcChmNjRfY29weXNpZ24sIFdhc21GNjRDb3B5c2lnbiwgbWFjcm8oY3R4KQorICAgIG1sb2Fk
MmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKSAj
IHQyIHVudXNlZAorCisgICAgYW5kaSAweDdmZmZmZmZmLCB0MQorICAgIGFuZGkgMHg4MDAwMDAw
MCwgdDMKKyAgICBvcmkgdDMsIHQxCisKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkK
KworIyBUeXBlIGNvbnZlcnNpb24gb3BzCisKK3dhc21PcChpNjRfZXh0ZW5kX3NfaTMyLCBXYXNt
STY0RXh0ZW5kU0kzMiwgbWFjcm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDAp
CisgICAgcnNoaWZ0aSB0MCwgMzEsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQp
CisKK3dhc21PcChpNjRfZXh0ZW5kX3VfaTMyLCBXYXNtSTY0RXh0ZW5kVUkzMiwgbWFjcm8oY3R4
KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgcmV0dXJuMmkoY3R4LCAwLCB0
MCkKK2VuZCkKKword2FzbU9wKGY2NF9yZWludGVycHJldF9pNjQsIFdhc21GNjRSZWludGVycHJl
dEk2NCwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIHQxLCB0MCkKKyAg
ICBmaWkyZCB0MCwgdDEsIGZ0MAorICAgIHJldHVybmQoY3R4LCBmdDApCitlbmQpCisKK3dhc21P
cChpNjRfcmVpbnRlcnByZXRfZjY0LCBXYXNtSTY0UmVpbnRlcnByZXRGNjQsIG1hY3JvKGN0eCkK
KyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKyAgICBmZDJpaSBmdDAsIHQwLCB0MQor
ICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NfZjY0
LCBXYXNtSTMyVHJ1bmNTRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFu
ZCwgZnQwKQorCisgICAgbW92ZWlpIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDEsIHQwICMgSU5UMzJf
TUlOIC0gMS4wCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwg
Lm91dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmVpaSAweDQxZTAwMDAwMDAwMDAwMDAsIHQxLCB0
MCAjIC1JTlQzMl9NSU4KKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwg
ZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVkMmlzIGZ0MCwgdDAKKyAgICBy
ZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9u
KE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfdV9mNjQsIFdhc21J
MzJUcnVuY1VGNjQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDAp
CisKKyAgICBtb3ZlaWkgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MSwgdDAgIyAtMS4wCisgICAgZmlp
MmQgdDAsIHQxLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMK
KworICAgIG1vdmVpaSAweDQxZjAwMDAwMDAwMDAwMDAsIHQxLCB0MCAjIElOVDMyX01JTiAqIC0y
LjAKKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZC
b3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0
MCkKKworLm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNU
cnVuYykKK2VuZCkKKworc2xvd1dhc21PcChpNjRfdHJ1bmNfc19mMzIpCitzbG93V2FzbU9wKGk2
NF90cnVuY191X2YzMikKK3Nsb3dXYXNtT3AoaTY0X3RydW5jX3NfZjY0KQorc2xvd1dhc21PcChp
NjRfdHJ1bmNfdV9mNjQpCisKK3dhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTMyVHJ1
bmNTYXRGNjRTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQor
CisgICAgbW92ZWlpIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDEsIHQwICMgSU5UMzJfTUlOIC0gMS4w
CisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91
bmRzVHJ1bmNTYXRNaW5Pck5hTgorCisgICAgbW92ZWlpIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDEs
IHQwICMgLUlOVDMyX01JTgorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRndGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0
MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoK
KyAgICBiZGVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorICAgIG1vdmUgMCwg
dDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAg
IG1vdmUgKGNvbnN0ZXhwciBJTlQzMl9NQVgpLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKwor
Lm91dE9mQm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAoY29uc3RleHByIElOVDMyX01JTiks
IHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NhdF9m
NjRfdSwgV2FzbUkzMlRydW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBt
X29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmVpaSAweGJmZjAwMDAwMDAwMDAwMDAsIHQxLCB0MCAj
IC0xLjAKKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0
T2ZCb3VuZHNUcnVuY1NhdE1pbgorCisgICAgbW92ZWlpIDB4NDFmMDAwMDAwMDAwMDAwMCwgdDEs
IHQwICMgSU5UMzJfTUlOICogLTIuMAorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRndGVx
dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQyaSBm
dDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoK
KyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDMyX01BWCksIHQwCisgICAgcmV0dXJu
aShjdHgsIHQwKQorZW5kKQorCitzbG93V2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3MpCitzbG93
V2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3UpCitzbG93V2FzbU9wKGk2NF90cnVuY19zYXRfZjY0
X3MpCitzbG93V2FzbU9wKGk2NF90cnVuY19zYXRfZjY0X3UpCisKKyMgRXh0ZW5kIG9wcworCit3
YXNtT3AoaTY0X2V4dGVuZDhfcywgV2FzbUk2NEV4dGVuZDhTLCBtYWNybyhjdHgpCisgICAgbWxv
YWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBzeGIyaSB0MCwgdDAKKyAgICByc2hpZnRpIHQw
LCAzMSwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9l
eHRlbmQxNl9zLCBXYXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwg
bV9vcGVyYW5kLCB0MCkKKyAgICBzeGgyaSB0MCwgdDAKKyAgICByc2hpZnRpIHQwLCAzMSwgdDEK
KyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9leHRlbmQzMl9z
LCBXYXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5k
LCB0MCkKKyAgICByc2hpZnRpIHQwLCAzMSwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkK
K2VuZCkKKworIyBBdG9taWNzCisKK21hY3JvIHdhc21BdG9taWNCaW5hcnlSTVdPcHMobG93ZXJD
YXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmksIGZuMmkpCisgICAgd2Fz
bU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4
JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9p
bnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9h
ZGkoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJB
ZGRpbmdPZmZzZXQodDMsIHQ1LCAxKQorICAgICAgICBmbmIodDAsIFt0M10sIHQyLCB0NSwgdDYp
CisgICAgICAgIGFuZGkgMHhmZiwgdDYgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0CisgICAgICAg
IGFzc2VydChtYWNybyhvaykgYmliZXEgdDYsIDB4ZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVy
bjJpKGN0eCwgMCwgdDYpCisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzE2JWxv
d2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBt
YWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdn
ZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3ZhbHVlLCB0MCkK
KyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25t
ZW50Q2hlY2sodDMsIHQ1LCAyKQorICAgICAgICBmbmgodDAsIFt0M10sIHQyLCB0NSwgdDYpCisg
ICAgICAgIGFuZGkgMHhmZmZmLCB0NiAjIEZJWE1FOiBaZXJvRXh0ZW5kMTZUbzY0CisgICAgICAg
IGFzc2VydChtYWNybyhvaykgYmliZXEgdDYsIDB4ZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0
dXJuMmkoY3R4LCAwLCB0NikKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MzIl
bG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MzIldXBwZXJDYXNlT3Bjb2RlJVUs
IG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAg
d2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkaShjdHgsIG1fdmFsdWUsIHQw
KQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGln
bm1lbnRDaGVjayh0MywgdDUsIDQpCisgICAgICAgIGZuaSh0MCwgW3QzXSwgdDIsIHQ1LCB0NikK
KyAgICAgICAgcmV0dXJuMmkoY3R4LCAwLCB0NikKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9h
dG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21JNjRBdG9taWNSbXcldXBwZXJDYXNlT3Bj
b2RlJSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAg
ICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fdmFs
dWUsIHQxLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZz
ZXRXaXRoQWxpZ25tZW50Q2hlY2sodDMsIHQ1LCA4KQorICAgICAgICBwdXNoIHQ0ICMgVGhpcyBp
cyB0aGUgUEIsIHNvIG5lZWQgdG8gYmUgc2F2ZWQgYW5kIHJlc3RvcmVkCisgICAgICAgIGZuMmko
dDEsIHQwLCBbdDNdLCB0NCwgdDUsIHQ3LCB0MiwgdDYpCisgICAgICAgIHBvcCB0NAorICAgICAg
ICByZXR1cm4yaShjdHgsIHQyLCB0NikKKyAgICBlbmQpCitlbmQKKworbWFjcm8gd2FzbUF0b21p
Y0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2Rl
LCBmbmksIGZuMmkpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhsb3dlckNhc2VPcGNvZGUs
IHVwcGVyQ2FzZU9wY29kZSwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0NkdQUikKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAgLmxvb3A6CisgICAg
ICAgICAgICAgICAgbG9hZGxpbmtiIG1lbSwgdDZHUFIKKyAgICAgICAgICAgICAgICBmbmkodDBH
UFIsIHQ2R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmRiIHQ1R1BSLCB0MkdQ
UiwgbWVtCisgICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAg
ICAgICAgZmVuY2UKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQ
UiwgdDVHUFIsIHQ2R1BSKQorICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgICAgICAubG9v
cDoKKyAgICAgICAgICAgICAgICBsb2FkbGlua2ggbWVtLCB0NkdQUgorICAgICAgICAgICAgICAg
IGZuaSh0MEdQUiwgdDZHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29uZGggdDVH
UFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAg
ICAgICAgICAgICAgICBmZW5jZQorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDZHUFIpCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAg
ICAgIC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5raSBtZW0sIHQ2R1BSCisgICAgICAg
ICAgICAgICAgZm5pKHQwR1BSLCB0NkdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgc3RvcmVj
b25kaSB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAu
bG9vcAorICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8o
dDFHUFIsIHQwR1BSLCBtZW0sIHQ0R1BSLCB0NUdQUiwgdDdHUFIsIHQyR1BSLCB0NkdQUikKKyAg
ICAgICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAg
bG9hZGxpbmsyaSBtZW0sIHQ2R1BSLCB0MkdQUgorICAgICAgICAgICAgICAgIGZuMmkodDFHUFIs
IHQwR1BSLCB0MkdQUiwgdDZHUFIsIHQ0R1BSLCB0NUdQUikKKyAgICAgICAgICAgICAgICBzdG9y
ZWNvbmQyaSB0N0dQUiwgdDVHUFIsIHQ0R1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0
N0dQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAgICBlbmQpCitlbmQK
KworaWYgQVJNdjcKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FkZCwg
QWRkLAorICAgICAgICBtYWNybyhzcmMwLCBzcmMxLCBkc3QpCisgICAgICAgICAgICBhZGRpIHNy
YzAsIHNyYzEsIGRzdAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHNyYzBNc3csIHNyYzBM
c3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0THN3KQorICAgICAgICAgICAgYWRkaXMg
c3JjMExzdywgc3JjMUxzdywgZHN0THN3CisgICAgICAgICAgICBhZGNpICBzcmMwTXN3LCBzcmMx
TXN3LCBkc3RNc3cKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRo
V2Vha0NBUyhfc3ViLCBTdWIsCisgICAgICAgIG1hY3JvKHNyYzAsIHNyYzEsIGRzdCkKKyAgICAg
ICAgICAgIHN1Ymkgc3JjMSwgc3JjMCwgZHN0CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8o
c3JjME1zdywgc3JjMExzdywgc3JjMU1zdywgc3JjMUxzdywgZHN0TXN3LCBkc3RMc3cpCisgICAg
ICAgICAgICBzdWJpcyBzcmMxTHN3LCBzcmMwTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIHNiY2kg
IHNyYzFNc3csIHNyYzBNc3csIGRzdE1zdworICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0Jp
bmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94Y2hnLCBYY2hnLAorICAgICAgICBtYWNybyhzcmMwLCBz
cmMxLCBkc3QpCisgICAgICAgICAgICBtb3ZlIHNyYzAsIGRzdAorICAgICAgICBlbmQsCisgICAg
ICAgIG1hY3JvKHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0
THN3KQorICAgICAgICAgICAgbW92ZSBzcmMwTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIG1vdmUg
c3JjME1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3Bz
V2l0aFdlYWtDQVMoX2FuZCwgQW5kLAorICAgICAgICBtYWNybyhzcmMwLCBzcmMxLCBkc3QpCisg
ICAgICAgICAgICBhbmRpIHNyYzAsIHNyYzEsIGRzdAorICAgICAgICBlbmQsCisgICAgICAgIG1h
Y3JvKHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0THN3KQor
ICAgICAgICAgICAgYW5kaSBzcmMwTHN3LCBzcmMxTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIGFu
ZGkgc3JjME1zdywgc3JjMU1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWlj
QmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX29yLCBPciwKKyAgICAgICAgbWFjcm8oc3JjMCwgc3Jj
MSwgZHN0KQorICAgICAgICAgICAgb3JpIHNyYzAsIHNyYzEsIGRzdAorICAgICAgICBlbmQsCisg
ICAgICAgIG1hY3JvKHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywg
ZHN0THN3KQorICAgICAgICAgICAgb3JpIHNyYzBMc3csIHNyYzFMc3csIGRzdExzdworICAgICAg
ICAgICAgb3JpIHNyYzBNc3csIHNyYzFNc3csIGRzdE1zdworICAgICAgICBlbmQpCisgICAgd2Fz
bUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwKKyAgICAgICAgbWFjcm8o
c3JjMCwgc3JjMSwgZHN0KQorICAgICAgICAgICAgeG9yaSBzcmMwLCBzcmMxLCBkc3QKKyAgICAg
ICAgZW5kLAorICAgICAgICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3LCBzcmMxTXN3LCBzcmMxTHN3
LCBkc3RNc3csIGRzdExzdykKKyAgICAgICAgICAgIHhvcmkgc3JjMExzdywgc3JjMUxzdywgZHN0
THN3CisgICAgICAgICAgICB4b3JpIHNyYzBNc3csIHNyYzFNc3csIGRzdE1zdworICAgICAgICBl
bmQpCitlbmQKKworbWFjcm8gd2FzbUF0b21pY0NvbXBhcmVFeGNoYW5nZU9wcyhsb3dlckNhc2VP
cGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5iLCBmbmgsIGZuaSwgZm4yaSkKKyAgICB3YXNtT3Ao
aTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzgldXBw
ZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVy
LCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkMmko
Y3R4LCBtX2V4cGVjdGVkLCB0MSwgdDApCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVlLCB0
NiwgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KHQz
LCB0NSwgMSkKKyAgICAgICAgZm5iKHQxLCB0MCwgdDYsIHQyLCBbdDNdLCB0NywgdDUpCisgICAg
ICAgIGFuZGkgMHhmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0CisgICAgICAgIGFzc2Vy
dChtYWNybyhvaykgYmliZXEgdDAsIDB4ZmYsIC5vayBlbmQpCisgICAgICAgIGFzc2VydChtYWNy
byhvaykgYmllcSB0MSwgMCwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDAp
CisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9wY29kZSVf
dSwgV2FzbUk2NEF0b21pY1JtdzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAg
ICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZz
ZXQsIHQ1KQorICAgICAgICBtbG9hZDJpKGN0eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAg
ICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwgdDYsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVw
YXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0MywgdDUsIDIpCisgICAg
ICAgIGZuaCh0MSwgdDAsIHQ2LCB0MiwgW3QzXSwgdDcsIHQ1KQorICAgICAgICBhbmRpIDB4ZmZm
ZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDE2VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2sp
IGJpYmVxIHQwLCAweGZmZmYsIC5vayBlbmQpCisgICAgICAgIGFzc2VydChtYWNybyhvaykgYmll
cSB0MSwgMCwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCisgICAgZW5k
KQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2
NEF0b21pY1JtdzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2Fk
aShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQor
ICAgICAgICBtbG9hZDJpKGN0eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAgICBtbG9hZDJp
KGN0eCwgbV92YWx1ZSwgdDYsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRl
ckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0MywgdDUsIDgpCisgICAgICAgIGZuaSh0
MSwgdDAsIHQ2LCB0MiwgW3QzXSwgdDcsIHQ1KQorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJp
ZXEgdDEsIDAsIC5vayBlbmQpCisgICAgICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorICAgIGVu
ZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0
b21pY1JtdyV1cHBlckNhc2VPcGNvZGUlLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgs
IG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAg
ICBtbG9hZDJpKGN0eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAgICBtbG9hZDJpKGN0eCwg
bV92YWx1ZSwgdDYsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGlu
Z09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0MywgdDUsIDgpCisgICAgICAgIHB1c2ggdDQgIyBU
aGlzIGlzIHRoZSBQQiwgc28gbmVlZCB0byBiZSBzYXZlZCBhbmQgcmVzdG9yZWQKKyAgICAgICAg
Zm4yaSh0MSwgdDAsIHQ2LCB0MiwgW3QzXSwgdDcsIHQ1LCB0NCkKKyAgICAgICAgcG9wIHQ0Cisg
ICAgICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorICAgIGVuZCkKK2VuZAorCitpZiBBUk12Nwor
Ly8gZXhwOiAiZXhwZWN0ZWQiLCB2YWw6ICJ2YWx1ZSIsIHJlczogInJlc3VsdCIKK3dhc21BdG9t
aWNDb21wYXJlRXhjaGFuZ2VPcHMoX2NtcHhjaGcsIENtcHhjaGcsCisgICAgbWFjcm8oZXhwTXN3
LCBleHBMc3csIHZhbE1zdywgdmFsTHN3LCBtZW0sIHNjcmF0Y2gsIHJlc0xzdykKKyAgICAgICAg
ICAgIGZlbmNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmtiIG1lbSwgcmVz
THN3CisgICAgICAgICAgICBiaW5lcSBleHBMc3csIHJlc0xzdywgLmZhaWwKKyAgICAgICAgICAg
IGJpbmVxIGV4cE1zdywgMCwgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZGIgc2NyYXRjaCwg
dmFsTHN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAg
ICAgIGptcCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZGIgc2Ny
YXRjaCwgcmVzTHN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAg
ICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIGZlbmNlCisg
ICAgICAgICAgICBtb3ZlIHJlc0xzdywgZXhwTHN3CisgICAgICAgICAgICBtb3ZlIDAsIGV4cE1z
dworICAgIGVuZCwKKyAgICBtYWNybyhleHBNc3csIGV4cExzdywgdmFsTXN3LCB2YWxMc3csIG1l
bSwgc2NyYXRjaCwgcmVzTHN3KQorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgLmxvb3A6Cisg
ICAgICAgICAgICBsb2FkbGlua2ggbWVtLCByZXNMc3cKKyAgICAgICAgICAgIGJpbmVxIGV4cExz
dywgcmVzTHN3LCAuZmFpbAorICAgICAgICAgICAgYmluZXEgZXhwTXN3LCAwLCAuZmFpbAorICAg
ICAgICAgICAgc3RvcmVjb25kaCBzY3JhdGNoLCB2YWxMc3csIG1lbQorICAgICAgICAgICAgYmll
cSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWls
OgorICAgICAgICAgICAgc3RvcmVjb25kaCBzY3JhdGNoLCByZXNMc3csIG1lbQorICAgICAgICAg
ICAgYmllcSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAg
IC5kb25lOgorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIG1vdmUgcmVzTHN3LCBleHBM
c3cKKyAgICAgICAgICAgIG1vdmUgMCwgZXhwTXN3CisgICAgZW5kLAorICAgIG1hY3JvKGV4cE1z
dywgZXhwTHN3LCB2YWxNc3csIHZhbExzdywgbWVtLCBzY3JhdGNoLCByZXNMc3cpCisgICAgICAg
ICAgICBmZW5jZQorICAgICAgICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5raSBtZW0sIHJl
c0xzdworICAgICAgICAgICAgYmluZXEgZXhwTHN3LCByZXNMc3csIC5mYWlsCisgICAgICAgICAg
ICBiaW5lcSBleHBNc3csIDAsIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmRpIHNjcmF0Y2gs
IHZhbExzdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAgICAg
ICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRpIHNj
cmF0Y2gsIHJlc0xzdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisg
ICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBmZW5jZQor
ICAgICAgICAgICAgbW92ZSByZXNMc3csIGV4cExzdworICAgICAgICAgICAgbW92ZSAwLCBleHBN
c3cKKyAgICBlbmQsCisgICAgbWFjcm8oZXhwTXN3LCBleHBMc3csIHZhbE1zdywgdmFsTHN3LCBt
ZW0sIHNjcmF0Y2gsIHJlc01zdywgcmVzTHN3KQorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAg
Lmxvb3A6CisgICAgICAgICAgICBsb2FkbGluazJpIG1lbSwgcmVzTHN3LCByZXNNc3cKKyAgICAg
ICAgICAgIGJpbmVxIGV4cExzdywgcmVzTHN3LCAuZmFpbAorICAgICAgICAgICAgYmluZXEgZXhw
TXN3LCByZXNNc3csIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmQyaSBzY3JhdGNoLCB2YWxM
c3csIHZhbE1zdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAg
ICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmQy
aSBzY3JhdGNoLCByZXNMc3csIHJlc01zdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gs
IDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAg
ICAgICBmZW5jZQorICAgICAgICAgICAgbW92ZSByZXNMc3csIGV4cExzdworICAgICAgICAgICAg
bW92ZSByZXNNc3csIGV4cE1zdworICAgIGVuZCkKK2VuZAorCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHk2NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvV2ViQXNzZW1ibHk2NC5hc20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwLi40NmU5ZWE0ODg1MjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHk2NC5hc20KQEAgLTAsMCArMSwxMjU5IEBACisj
IENvcHlyaWdodCAoQykgMjAxMS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMgQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIE9wY29kZXMgdGhhdCBz
aG91bGQgZXZlbnR1YWxseSBiZSBzaGFyZWQgd2l0aCBKUyBsbGludAorCit3YXNtT3AobW92LCBX
YXNtTW92LCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9zcmMsIHQwKQorICAgIHJldHVy
bnEoY3R4LCB0MCkKK2VuZCkKKworIyBXYXNtIHNwZWNpZmljIGJ5dGVjb2RlcworCittYWNybyBl
bWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKKyAg
ICBsZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNldF0sIHQ1CisgICAgYnBiIHQ1LCBib3VuZHND
aGVja2luZ1NpemUsIC5jb250aW51YXRpb24KKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5k
c01lbW9yeUFjY2VzcykKKy5jb250aW51YXRpb246CisgICAgYWRkcCBtZW1vcnlCYXNlLCBwb2lu
dGVyCitlbmQKKworbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQo
Y3R4LCBwb2ludGVyLCBvZmZzZXQsIHNpemUpCisgICAgbGVhcCBzaXplIC0gMVtwb2ludGVyLCBv
ZmZzZXRdLCB0NQorICAgIGJwYiB0NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29udGludWF0aW9u
CisudGhyb3c6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCisu
Y29udGludWF0aW9uOgorICAgIGFkZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgorICAgIGFkZHAgb2Zm
c2V0LCBwb2ludGVyCitlbmQKKworbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRp
bmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCBwb2ludGVyLCBvZmZzZXQsIHNpemUpCisg
ICAgbGVhcCBzaXplIC0gMVtwb2ludGVyLCBvZmZzZXRdLCB0NQorICAgIGJwYiB0NSwgYm91bmRz
Q2hlY2tpbmdTaXplLCAuY29udGludWF0aW9uCisudGhyb3c6CisgICAgdGhyb3dFeGNlcHRpb24o
T3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCisuY29udGludWF0aW9uOgorICAgIGFkZHAgbWVtb3J5
QmFzZSwgcG9pbnRlcgorICAgIGFkZHAgb2Zmc2V0LCBwb2ludGVyCisgICAgYnRwbnogcG9pbnRl
ciwgKHNpemUgLSAxKSwgLnRocm93CitlbmQKKworCittYWNybyB3YXNtTG9hZE9wKG5hbWUsIHN0
cnVjdCwgc2l6ZSwgZm4pCisgICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQorICAg
ICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zm
c2V0LCB0MSkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4LCB0MCwgdDEs
IHNpemUpCisgICAgICAgIGZuKFt0MCwgdDFdLCB0MikKKyAgICAgICAgcmV0dXJucShjdHgsIHQy
KQorICAgIGVuZCkKK2VuZAorCit3YXNtTG9hZE9wKGxvYWQ4X3UsIFdhc21Mb2FkOFUsIDEsIG1h
Y3JvKG1lbSwgZHN0KSBsb2FkYiBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGxvYWQxNl91LCBX
YXNtTG9hZDE2VSwgMiwgbWFjcm8obWVtLCBkc3QpIGxvYWRoIG1lbSwgZHN0IGVuZCkKK3dhc21M
b2FkT3AobG9hZDMyX3UsIFdhc21Mb2FkMzJVLCA0LCBtYWNybyhtZW0sIGRzdCkgbG9hZGkgbWVt
LCBkc3QgZW5kKQord2FzbUxvYWRPcChsb2FkNjRfdSwgV2FzbUxvYWQ2NFUsIDgsIG1hY3JvKG1l
bSwgZHN0KSBsb2FkcSBtZW0sIGRzdCBlbmQpCisKK3dhc21Mb2FkT3AoaTMyX2xvYWQ4X3MsIFdh
c21JMzJMb2FkOFMsIDEsIG1hY3JvKG1lbSwgZHN0KSBsb2FkYnNpIG1lbSwgZHN0IGVuZCkKK3dh
c21Mb2FkT3AoaTY0X2xvYWQ4X3MsIFdhc21JNjRMb2FkOFMsIDEsIG1hY3JvKG1lbSwgZHN0KSBs
b2FkYnNxIG1lbSwgZHN0IGVuZCkKK3dhc21Mb2FkT3AoaTMyX2xvYWQxNl9zLCBXYXNtSTMyTG9h
ZDE2UywgMiwgbWFjcm8obWVtLCBkc3QpIGxvYWRoc2kgbWVtLCBkc3QgZW5kKQord2FzbUxvYWRP
cChpNjRfbG9hZDE2X3MsIFdhc21JNjRMb2FkMTZTLCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGhz
cSBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGk2NF9sb2FkMzJfcywgV2FzbUk2NExvYWQzMlMs
IDQsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaXMgbWVtLCBkc3QgZW5kKQorCittYWNybyB3YXNtU3Rv
cmVPcChuYW1lLCBzdHJ1Y3QsIHNpemUsIGZuKQorICAgIHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1h
Y3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MCkKKyAgICAgICAgd2dl
dHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVy
KGN0eCwgdDAsIHQxLCBzaXplKQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAg
ICAgICAgZm4odDIsIFt0MCwgdDFdKQorICAgICAgICBkaXNwYXRjaChjdHgpCisgICAgZW5kKQor
ZW5kCisKK3dhc21TdG9yZU9wKHN0b3JlOCwgV2FzbVN0b3JlOCwgMSwgbWFjcm8odmFsdWUsIG1l
bSkgc3RvcmViIHZhbHVlLCBtZW0gZW5kKQord2FzbVN0b3JlT3Aoc3RvcmUxNiwgV2FzbVN0b3Jl
MTYsIDIsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlaCB2YWx1ZSwgbWVtIGVuZCkKK3dhc21TdG9y
ZU9wKHN0b3JlMzIsIFdhc21TdG9yZTMyLCA0LCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZWkgdmFs
dWUsIG1lbSBlbmQpCit3YXNtU3RvcmVPcChzdG9yZTY0LCBXYXNtU3RvcmU2NCwgOCwgbWFjcm8o
dmFsdWUsIG1lbSkgc3RvcmVxIHZhbHVlLCBtZW0gZW5kKQorCit3YXNtT3AocmVmX2lzX251bGws
IFdhc21SZWZJc051bGwsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHAoY3R4LCBtX3JlZiwgdDApCisg
ICAgY3FlcSB0MCwgVmFsdWVOdWxsLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKwor
d2FzbU9wKGdldF9nbG9iYWwsIFdhc21HZXRHbG9iYWwsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBX
YXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4
LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKKyAgICByZXR1
cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChzZXRfZ2xvYmFsLCBXYXNtU2V0R2xvYmFsLCBt
YWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFu
Y2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbWxvYWRxKGN0
eCwgbV92YWx1ZSwgdDIpCisgICAgc3RvcmVxIHQyLCBbdDAsIHQxLCA4XQorICAgIGRpc3BhdGNo
KGN0eCkKK2VuZCkKKword2FzbU9wKGdldF9nbG9iYWxfcG9ydGFibGVfYmluZGluZywgV2FzbUdl
dEdsb2JhbFBvcnRhYmxlQmluZGluZywgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206Okluc3Rh
bmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1fZ2xvYmFs
SW5kZXgsIHQxKQorICAgIGxvYWRxIFt0MCwgdDEsIDhdLCB0MAorICAgIGxvYWRxIFt0MF0sIHQw
CisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3Aoc2V0X2dsb2JhbF9wb3J0YWJs
ZV9iaW5kaW5nLCBXYXNtU2V0R2xvYmFsUG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCisgICAg
bG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdn
ZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIp
CisgICAgbG9hZHEgW3QwLCB0MSwgOF0sIHQwCisgICAgc3RvcmVxIHQyLCBbdDBdCisgICAgZGlz
cGF0Y2goY3R4KQorZW5kKQorCisjIE9wY29kZXMgdGhhdCBkb24ndCBoYXZlIHRoZSBgYjNvcGAg
ZW50cnkgaW4gd2FzbS5qc29uLiBUaGlzIHNob3VsZCBiZSBrZXB0IGluIHN5bmMKKworIyBpMzIg
YmluYXJ5IG9wcworCit3YXNtT3AoaTMyX2Rpdl9zLCBXYXNtSTMyRGl2UywgbWFjcm8gKGN0eCkK
KyAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQor
CisgICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGJpbmVxIHQxLCAtMSwg
LnNhZmUKKyAgICBiaWVxIHQwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAudGhyb3dJbnRlZ2VyT3Zl
cmZsb3cKKworLnNhZmU6CisgICAgaWYgWDg2XzY0CisgICAgICAgICMgRklYTUU6IEFkZCBhIHdh
eSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAorICAgICAgICAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKKyAgICAgICAg
Y2RxaQorICAgICAgICBpZGl2aSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVND
VjY0CisgICAgICAgIGRpdmlzIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBl
bmQKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRo
cm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorCisudGhyb3dJbnRlZ2VyT3ZlcmZsb3c6Cisg
ICAgdGhyb3dFeGNlcHRpb24oSW50ZWdlck92ZXJmbG93KQorZW5kKQorCit3YXNtT3AoaTMyX2Rp
dl91LCBXYXNtSTMyRGl2VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgdDAp
CisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRpeiB0MSwgLnRocm93RGl2aXNp
b25CeVplcm8KKworICAgIGlmIFg4Nl82NAorICAgICAgICB4b3JpIHQyLCB0MgorICAgICAgICB1
ZGl2aSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0CisgICAgICAgIGRp
dmkgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorICAgIHJldHVybmko
Y3R4LCB0MCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2
aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpMzJfcmVtX3MsIFdhc21JMzJSZW1TLCBtYWNy
byAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3Jo
cywgdDEpCisKKyAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgYmluZXEg
dDEsIC0xLCAuc2FmZQorICAgIGJpbmVxIHQwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAuc2FmZQor
CisgICAgbW92ZSAwLCB0MgorICAgIGptcCAucmV0dXJuCisKKy5zYWZlOgorICAgIGlmIFg4Nl82
NAorICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMg
cmF4IGFuZCB0MiBpcyByZHgKKyAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAzNjkyCisgICAgICAgIGNkcWkKKyAgICAgICAgaWRpdmkgdDEKKyAgICBl
bHNpZiBBUk02NCBvciBBUk02NEUKKyAgICAgICAgZGl2aXMgdDEsIHQwLCB0MgorICAgICAgICBt
dWxpIHQxLCB0MgorICAgICAgICBzdWJpIHQwLCB0MiwgdDIKKyAgICBlbHNpZiBSSVNDVjY0Cisg
ICAgICAgIHJlbWlzIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKKwor
LnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDIpCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgor
ICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTMyX3Jl
bV91LCBXYXNtSTMyUmVtVSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgdDAp
CisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRpeiB0MSwgLnRocm93RGl2aXNp
b25CeVplcm8KKworICAgIGlmIFg4Nl82NAorICAgICAgICB4b3JpIHQyLCB0MgorICAgICAgICB1
ZGl2aSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQorICAgICAgICBkaXZpIHQxLCB0MCwg
dDIKKyAgICAgICAgbXVsaSB0MSwgdDIKKyAgICAgICAgc3ViaSB0MCwgdDIsIHQyCisgICAgZWxz
aWYgUklTQ1Y2NAorICAgICAgICByZW1pIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IK
KyAgICBlbmQKKyAgICByZXR1cm5pKGN0eCwgdDIpCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgor
ICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCisjIGk2NCBiaW5hcnkg
b3BzCisKK3dhc21PcChpNjRfYWRkLCBXYXNtSTY0QWRkLCBtYWNybyhjdHgpCisgICAgbWxvYWRx
KGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBhZGRxIHQw
LCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9zdWIsIFdhc21J
NjRTdWIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRx
KGN0eCwgbV9yaHMsIHQxKQorICAgIHN1YnEgdDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQor
ZW5kKQorCit3YXNtT3AoaTY0X211bCwgV2FzbUk2NE11bCwgbWFjcm8oY3R4KQorICAgIG1sb2Fk
cShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgbXVscSB0
MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfZGl2X3MsIFdh
c21JNjREaXZTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBt
bG9hZHEoY3R4LCBtX3JocywgdDEpCisKKyAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVy
bworCisgICAgYnFuZXEgdDEsIC0xLCAuc2FmZQorICAgIGJxZXEgdDAsIGNvbnN0ZXhwciBJTlQ2
NF9NSU4sIC50aHJvd0ludGVnZXJPdmVyZmxvdworCisuc2FmZToKKyAgICBpZiBYODZfNjQKKyAg
ICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBh
bmQgdDIgaXMgcmR4CisgICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMzY5MgorICAgICAgICBjcW9xCisgICAgICAgIGlkaXZxIHQxCisgICAgZWxzaWYg
QVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKKyAgICAgICAgZGl2cXMgdDEsIHQwCisgICAgZWxz
ZQorICAgICAgICBlcnJvcgorICAgIGVuZAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLnRocm93
RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCisKKy50
aHJvd0ludGVnZXJPdmVyZmxvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihJbnRlZ2VyT3ZlcmZsb3cp
CitlbmQpCisKK3dhc21PcChpNjRfZGl2X3UsIFdhc21JNjREaXZVLCBtYWNybyAoY3R4KQorICAg
IG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisKKyAg
ICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgaWYgWDg2XzY0CisgICAgICAg
IHhvcnEgdDIsIHQyCisgICAgICAgIHVkaXZxIHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRF
IG9yIFJJU0NWNjQKKyAgICAgICAgZGl2cSB0MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVycm9y
CisgICAgZW5kCisgICAgcmV0dXJucShjdHgsIHQwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoK
KyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9y
ZW1fcywgV2FzbUk2NFJlbVMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQw
KQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0cXogdDEsIC50aHJvd0Rpdmlz
aW9uQnlaZXJvCisKKyAgICBicW5lcSB0MSwgLTEsIC5zYWZlCisgICAgYnFuZXEgdDAsIGNvbnN0
ZXhwciBJTlQ2NF9NSU4sIC5zYWZlCisKKyAgICBtb3ZlIDAsIHQyCisgICAgam1wIC5yZXR1cm4K
KworLnNhZmU6CisgICAgaWYgWDg2XzY0CisgICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBz
dGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAorICAgICAgICAjIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKKyAgICAgICAgY3FvcQor
ICAgICAgICBpZGl2cSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQorICAgICAgICBkaXZx
cyB0MSwgdDAsIHQyCisgICAgICAgIG11bHEgdDEsIHQyCisgICAgICAgIHN1YnEgdDAsIHQyLCB0
MgorICAgIGVsc2lmIFJJU0NWNjQKKyAgICAgICAgcmVtcXMgdDEsIHQwCisgICAgZWxzZQorICAg
ICAgICBlcnJvcgorICAgIGVuZAorCisucmV0dXJuOgorICAgIHJldHVybnEoY3R4LCB0MikgIyBy
ZHggaGFzIHRoZSByZW1haW5kZXIKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dF
eGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpNjRfcmVtX3UsIFdhc21J
NjRSZW1VLCBtYWNybyAoY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9h
ZHEoY3R4LCBtX3JocywgdDEpCisKKyAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwor
CisgICAgaWYgWDg2XzY0CisgICAgICAgIHhvcnEgdDIsIHQyCisgICAgICAgIHVkaXZxIHQxCisg
ICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCisgICAgICAgIGRpdnEgdDEsIHQwLCB0MgorICAgICAg
ICBtdWxxIHQxLCB0MgorICAgICAgICBzdWJxIHQwLCB0MiwgdDIKKyAgICBlbHNpZiBSSVNDVjY0
CisgICAgICAgIHJlbXEgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAor
ICAgIHJldHVybnEoY3R4LCB0MikKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dF
eGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpNjRfYW5kLCBXYXNtSTY0
QW5kLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShj
dHgsIG1fcmhzLCB0MSkKKyAgICBhbmRxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2Vu
ZCkKKword2FzbU9wKGk2NF9vciwgV2FzbUk2NE9yLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0
eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBvcnEgdDAsIHQx
CisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X3hvciwgV2FzbUk2NFhv
ciwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4
LCBtX3JocywgdDEpCisgICAgeG9ycSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQp
CisKK3dhc21PcChpNjRfc2hsLCBXYXNtSTY0U2hsLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0
eCwgbV9saHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKyAgICBsc2hpZnRxIHQx
LCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9zaHJfdSwgV2Fz
bUk2NFNoclUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxv
YWRpKGN0eCwgbV9yaHMsIHQxKQorICAgIHVyc2hpZnRxIHQxLCB0MAorICAgIHJldHVybnEoY3R4
LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9zaHJfcywgV2FzbUk2NFNoclMsIG1hY3JvKGN0eCkK
KyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQor
ICAgIHJzaGlmdHEgdDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3Ao
aTY0X3JvdHIsIFdhc21JNjRSb3RyLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMs
IHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKyAgICBycm90YXRlcSB0MSwgdDAKKyAg
ICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfcm90bCwgV2FzbUk2NFJvdGws
IG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwg
bV9yaHMsIHQxKQorICAgIGxyb3RhdGVxIHQxLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2Vu
ZCkKKword2FzbU9wKGk2NF9lcSwgV2FzbUk2NEVxLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0
eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWVxIHQwLCB0
MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNt
T3AoaTY0X25lLCBXYXNtSTY0TmUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywg
dDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxbmVxIHQwLCB0MSwgdDIKKyAg
ICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2x0
X3MsIFdhc21JNjRMdFMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisg
ICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxbHQgdDAsIHQxLCB0MgorICAgIGFuZGkg
MSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfbGVfcywgV2Fz
bUk2NExlUywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9h
ZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FsdGVxIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQy
CisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2x0X3UsIFdhc21JNjRM
dFUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0
eCwgbV9yaHMsIHQxKQorICAgIGNxYiB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJl
dHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9sZV91LCBXYXNtSTY0TGVVLCBtYWNy
byhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhz
LCB0MSkKKyAgICBjcWJlcSB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmko
Y3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9ndF9zLCBXYXNtSTY0R3RTLCBtYWNybyhjdHgp
CisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkK
KyAgICBjcWd0IHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQy
KQorZW5kKQorCit3YXNtT3AoaTY0X2dlX3MsIFdhc21JNjRHZVMsIG1hY3JvKGN0eCkKKyAgICBt
bG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNx
Z3RlcSB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2Vu
ZCkKKword2FzbU9wKGk2NF9ndF91LCBXYXNtSTY0R3RVLCBtYWNybyhjdHgpCisgICAgbWxvYWRx
KGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWEgdDAs
IHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dh
c21PcChpNjRfZ2VfdSwgV2FzbUk2NEdlVSwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1f
bGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FhZXEgdDAsIHQxLCB0
MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKKyMgaTY0IHVu
YXJ5IG9wcworCit3YXNtT3AoaTY0X2N0eiwgV2FzbUk2NEN0eiwgbWFjcm8gKGN0eCkKKyAgICBt
bG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHR6Y250cSB0MCwgdDAKKyAgICByZXR1cm5x
KGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfY2x6LCBXYXNtSTY0Q2x6LCBtYWNybyhjdHgp
CisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBsemNudHEgdDAsIHQxCisgICAg
cmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X3BvcGNudCwgV2FzbUk2NFBvcGNu
dCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIGExKQorICAgIHByZXBh
cmVTdGF0ZUZvckNDYWxsKCkKKyAgICBtb3ZlIFBDLCBhMAorICAgIGNDYWxsMihfc2xvd19wYXRo
X3dhc21fcG9wY291bnRsbCkKKyAgICByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkKKyAgICByZXR1
cm5xKGN0eCwgcjEpCitlbmQpCisKK3dhc21PcChpNjRfZXF6LCBXYXNtSTY0RXF6LCBtYWNybyhj
dHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBjcWVxIHQwLCAwLCB0MAor
ICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKworIyBmNjQgYmluYXJ5IG9wcworCit3YXNtT3Ao
ZjY0X2NvcHlzaWduLCBXYXNtRjY0Q29weXNpZ24sIG1hY3JvKGN0eCkKKyAgICBtbG9hZGQoY3R4
LCBtX2xocywgZnQwKQorICAgIG1sb2FkZChjdHgsIG1fcmhzLCBmdDEpCisKKyAgICBmZDJxIGZ0
MSwgdDEKKyAgICBtb3ZlIDB4ODAwMDAwMDAwMDAwMDAwMCwgdDIKKyAgICBhbmRxIHQyLCB0MQor
CisgICAgZmQycSBmdDAsIHQwCisgICAgbW92ZSAweDdmZmZmZmZmZmZmZmZmZmYsIHQyCisgICAg
YW5kcSB0MiwgdDAKKworICAgIG9ycSB0MSwgdDAKKyAgICBmcTJkIHQwLCBmdDAKKyAgICByZXR1
cm5kKGN0eCwgZnQwKQorZW5kKQorCisjIFR5cGUgY29udmVyc2lvbiBvcHMKKword2FzbU9wKGk2
NF9leHRlbmRfc19pMzIsIFdhc21JNjRFeHRlbmRTSTMyLCBtYWNybyhjdHgpCisgICAgbWxvYWRp
KGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBzeGkycSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwg
dDEpCitlbmQpCisKK3dhc21PcChpNjRfZXh0ZW5kX3VfaTMyLCBXYXNtSTY0RXh0ZW5kVUkzMiwg
bWFjcm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgenhpMnEgdDAs
IHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoZjY0X3JlaW50ZXJwcmV0
X2k2NCwgV2FzbUY2NFJlaW50ZXJwcmV0STY0LCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwg
bV9vcGVyYW5kLCB0MCkKKyAgICBmcTJkIHQwLCBmdDAKKyAgICByZXR1cm5kKGN0eCwgZnQwKQor
ZW5kKQorCit3YXNtT3AoaTY0X3JlaW50ZXJwcmV0X2Y2NCwgV2FzbUk2NFJlaW50ZXJwcmV0RjY0
LCBtYWNybyhjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisgICAgZmQycSBm
dDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3Nf
ZjY0LCBXYXNtSTMyVHJ1bmNTRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3Bl
cmFuZCwgZnQwKQorCisgICAgbW92ZSAweGMxZTAwMDAwMDAyMDAwMDAsIHQwICMgSU5UMzJfTUlO
IC0gMS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJv
dW5kc1RydW5jCisKKyAgICBtb3ZlIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UMzJfTUlO
CisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1Ry
dW5jCisKKyAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKwor
Lm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykK
K2VuZCkKKword2FzbU9wKGkzMl90cnVuY191X2Y2NCwgV2FzbUkzMlRydW5jVUY2NCwgbWFjcm8g
KGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZmYw
MDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmUgMHg0MWYwMDAwMDAwMDAwMDAw
LCB0MCAjIElOVDMyX01JTiAqIC0yLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAKKyAg
ICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0
aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc19mMzIsIFdh
c21JNjRUcnVuY1NGMzIsIG1hY3JvIChjdHgpCisgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBm
dDApCisKKyAgICBtb3ZlIDB4ZGYwMDAwMDAsIHQwICMgSU5UNjRfTUlOCisgICAgZmkyZiB0MCwg
ZnQxCisgICAgYmZsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZSAw
eDVmMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmd0ZXF1
biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZjJxcyBmdDAsIHQw
CisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4
Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5jX3VfZjMy
LCBXYXNtSTY0VHJ1bmNVRjMyLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZihjdHgsIG1fb3BlcmFu
ZCwgZnQwKQorCisgICAgbW92ZSAweGJmODAwMDAwLCB0MCAjIC0xLjAKKyAgICBmaTJmIHQwLCBm
dDEKKyAgICBiZmx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmUg
MHg1ZjgwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCisgICAgZmkyZiB0MCwgZnQxCisgICAg
YmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0ZWYycSBm
dDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0
aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5j
X3NfZjY0LCBXYXNtSTY0VHJ1bmNTRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1f
b3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGMzZTAwMDAwMDAwMDAwMDAsIHQwICMgSU5UNjRf
TUlOCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNU
cnVuYworCisgICAgbW92ZSAweDQzZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDY0X01JTgorICAg
IGZxMmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwor
CisgICAgdHJ1bmNhdGVkMnFzIGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRP
ZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQp
CisKK3dhc21PcChpNjRfdHJ1bmNfdV9mNjQsIFdhc21JNjRUcnVuY1VGNjQsIG1hY3JvIChjdHgp
CisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YmZmMDAwMDAw
MDAwMDAwMCwgdDAgIyAtMS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBm
dDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlIDB4NDNmMDAwMDAwMDAwMDAwMCwgdDAg
IyBJTlQ2NF9NSU4gKiAtMi4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBm
dDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0ZWQycSBmdDAsIHQwCisgICAgcmV0
dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihP
dXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfcywgV2Fz
bUkzMlRydW5jU2F0RjY0UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQs
IGZ0MCkKKworICAgIG1vdmUgMHhjMWUwMDAwMDAwMjAwMDAwLCB0MCAjIElOVDMyX01JTiAtIDEu
MAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNU
cnVuY1NhdE1pbk9yTmFOCisKKyAgICBtb3ZlIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5U
MzJfTUlOCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJv
dW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAorICAgIHJldHVybmko
Y3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKKyAgICBiZGVxIGZ0MCwg
ZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5p
KGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhw
ciBJTlQzMl9NQVgpLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1
bmNTYXRNaW46CisgICAgbW92ZSAoY29uc3RleHByIElOVDMyX01JTiksIHQwCisgICAgcmV0dXJu
aShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfdSwgV2FzbUkzMlRy
dW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkK
KworICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKKyAgICBmcTJkIHQwLCBm
dDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKworICAg
IG1vdmUgMHg0MWYwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDMyX01JTiAqIC0yLjAKKyAgICBmcTJk
IHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgK
KworICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRP
ZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDAp
CisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UMzJf
TUFYKSwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNf
c2F0X2YzMl9zLCBXYXNtSTY0VHJ1bmNTYXRGMzJTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZihj
dHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGRmMDAwMDAwLCB0MCAjIElOVDY0X01J
TgorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1
bmNTYXRNaW5Pck5hTgorCisgICAgbW92ZSAweDVmMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KKyAg
ICBmaTJmIHQwLCBmdDEKKyAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNT
YXRNYXgKKworICAgIHRydW5jYXRlZjJxcyBmdDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQor
Cisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgorICAgIGJmZXEgZnQwLCBmdDAsIC5vdXRP
ZkJvdW5kc1RydW5jU2F0TWluCisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkK
KworLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIElOVDY0X01B
WCksIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoK
KyAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUlOKSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDAp
CitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl91LCBXYXNtSTY0VHJ1bmNTYXRGMzJV
LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92
ZSAweGJmODAwMDAwLCB0MCAjIC0xLjAKKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmx0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKworICAgIG1vdmUgMHg1ZjgwMDAwMCwg
dDAgIyBJTlQ2NF9NSU4gKiAtMi4wCisgICAgZmkyZiB0MCwgZnQxCisgICAgYmZndGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWYycSBmdDAsIHQw
CisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAgICBt
b3ZlIDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1h
eDoKKyAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDY0X01BWCksIHQwCisgICAgcmV0dXJucShjdHgs
IHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5jX3NhdF9mNjRfcywgV2FzbUk2NFRydW5jU2F0
RjY0UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAg
IG1vdmUgMHhjM2UwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDY0X01JTgorICAgIGZxMmQgdDAsIGZ0
MQorICAgIGJkbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTgorCisg
ICAgbW92ZSAweDQzZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDY0X01JTgorICAgIGZxMmQgdDAs
IGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisg
ICAgdHJ1bmNhdGVkMnFzIGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJv
dW5kc1RydW5jU2F0TWluT3JOYU46CisgICAgYmRlcSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1
bmNTYXRNaW4KKyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZC
b3VuZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUFYKSwgdDAKKyAg
ICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUg
KGNvbnN0ZXhwciBJTlQ2NF9NSU4pLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKwor
d2FzbU9wKGk2NF90cnVuY19zYXRfZjY0X3UsIFdhc21JNjRUcnVuY1NhdEY2NFUsIG1hY3JvIChj
dHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YmZmMDAw
MDAwMDAwMDAwMCwgdDAgIyAtMS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCisKKyAgICBtb3ZlIDB4NDNmMDAwMDAwMDAw
MDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVx
dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQycSBm
dDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoK
KyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDY0X01BWCksIHQwCisgICAgcmV0dXJu
cShjdHgsIHQwKQorZW5kKQorCisjIEV4dGVuZCBvcHMKKword2FzbU9wKGk2NF9leHRlbmQ4X3Ms
IFdhc21JNjRFeHRlbmQ4UywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwg
dDApCisgICAgc3hiMnEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNt
T3AoaTY0X2V4dGVuZDE2X3MsIFdhc21JNjRFeHRlbmQxNlMsIG1hY3JvKGN0eCkKKyAgICBtbG9h
ZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHN4aDJxIHQwLCB0MQorICAgIHJldHVybnEoY3R4
LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9leHRlbmQzMl9zLCBXYXNtSTY0RXh0ZW5kMTZTLCBt
YWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBzeGkycSB0MCwg
dDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKKyMgQXRvbWljcworCittYWNybyB3YXNt
QXRvbWljQmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIs
IGZuaCwgZm5pLCBmbnEpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNv
ZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisg
ICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9v
ZmZzZXQsIHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1p
dENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQoY3R4LCB0MywgdDEsIDEpCisgICAg
ICAgIGZuYih0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKKyAgICAgICAgYW5kcSAweGZmLCB0MCAjIEZJ
WE1FOiBaZXJvRXh0ZW5kOFRvNjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwg
MHhmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKKyAgICB3
YXNtT3AoaTY0X2F0b21pY19ybXcxNiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNS
bXcxNiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBt
X3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAg
bWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2lu
dGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCAyKQorICAgICAg
ICBmbmgodDAsIFt0M10sIHQyLCB0NSwgdDEpCisgICAgICAgIGFuZHEgMHhmZmZmLCB0MCAjIEZJ
WE1FOiBaZXJvRXh0ZW5kMTZUbzY0CisgICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAs
IDB4ZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKKyAg
ICB3YXNtT3AoaTY0X2F0b21pY19ybXczMiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9t
aWNSbXczMiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4
LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAg
ICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQ
b2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA0KQorICAg
ICAgICBmbmkodDAsIFt0M10sIHQyLCB0NSwgdDEpCisgICAgICAgIGFzc2VydChtYWNybyhvaykg
YnFiZXEgdDAsIDB4ZmZmZmZmZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkK
KyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdh
c21JNjRBdG9taWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9h
ZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkK
KyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFBy
ZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA4
KQorICAgICAgICBmbnEodDAsIFt0M10sIHQyLCB0NSwgdDEpCisgICAgICAgIHJldHVybnEoY3R4
LCB0MCkKKyAgICBlbmQpCitlbmQKKworbWFjcm8gd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhX
ZWFrQ0FTKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmksIGZucSkKKyAgICB3
YXNtQXRvbWljQmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLAor
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAg
ICAgaWYgWDg2XzY0CisgICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKKyAgICAgICAg
ICAgICAgICBsb2FkYiBtZW0sIHQwR1BSCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAg
ICAgICBtb3ZlIHQwR1BSLCB0MkdQUgorICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIp
CisgICAgICAgICAgICAgICAgYmF0b21pY3dlYWtjYXNiIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9v
cAorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAg
bG9hZGxpbmthY3FiIG1lbSwgdDFHUFIKKyAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BS
LCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmRyZWxiIHQ1R1BSLCB0MkdQUiwgbWVt
CisgICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAg
bW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbmQsCisgICAgICAg
IG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBpZiBY
ODZfNjQKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgorICAgICAgICAgICAgICAg
IGxvYWRoIG1lbSwgdDBHUFIKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIG1v
dmUgdDBHUFIsIHQyR1BSCisgICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKKyAgICAg
ICAgICAgICAgICBiYXRvbWljd2Vha2Nhc2ggdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2FkbGlu
a2FjcWggbWVtLCB0MUdQUgorICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BS
KQorICAgICAgICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAg
ICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBtb3ZlIHQx
R1BSLCB0MEdQUgorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIGlmIFg4Nl82NAor
ICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCisgICAgICAgICAgICAgICAgbG9hZGkg
bWVtLCB0MEdQUgorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbW92ZSB0MEdQ
UiwgdDJHUFIKKyAgICAgICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQorICAgICAgICAgICAg
ICAgIGJhdG9taWN3ZWFrY2FzaSB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxaSBt
ZW0sIHQxR1BSCisgICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAg
ICAgICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAg
ICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAorICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQw
R1BSCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgaWYgWDg2XzY0CisgICAgICAg
ICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKKyAgICAgICAgICAgICAgICBsb2FkcSBtZW0sIHQw
R1BSCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQ
UgorICAgICAgICAgICAgICAgIGZucSh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgYmF0
b21pY3dlYWtjYXNxIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAorICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9hZGxpbmthY3FxIG1lbSwgdDFH
UFIKKyAgICAgICAgICAgICAgICBmbnEodDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAg
ICAgICBzdG9yZWNvbmRyZWxxIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICAgICAgYmlu
ZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAg
ICAgICAgICAgIGVuZAorICAgICAgICBlbmQpCitlbmQKKworaWYgWDg2XzY0CisgICAgd2FzbUF0
b21pY0JpbmFyeVJNV09wcyhfYWRkLCBBZGQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0gZW5kLAorICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaCB0
MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
MUdQUikgYXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRxIHQwR1BSLCBtZW0gZW5k
KQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3N1YiwgU3ViLAorICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3ViYiB0MEdQUiwgbWVt
IGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRv
bWljeGNoZ3N1YmggdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJpIHQwR1BSLCBtZW0gZW5kLAorICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3VicSB0
MEdQUiwgbWVtIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94Y2hnLCBYY2hnLAor
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
YiB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikgYXRvbWljeGNoZ2ggdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdpIHQwR1BSLCBtZW0gZW5kLAor
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
cSB0MEdQUiwgbWVtIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMo
X2FuZCwgQW5kLAorICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICBhbmRp
IHQ1R1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikK
KyAgICAgICAgICAgIGFuZHEgdDVHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRv
bWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX29yLCBPciwKKyAgICAgICAgbWFjcm8odDVHUFIs
IHQyR1BSKQorICAgICAgICAgICAgb3JpIHQ1R1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAg
ICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgIG9ycSB0NUdQUiwgdDJHUFIKKyAg
ICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeG9yLCBY
b3IsCisgICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgIHhvcmkgdDVHUFIs
IHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQorICAgICAg
ICAgICAgeG9ycSB0NUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorZWxzaWYgQVJNNjRFCisgICAg
d2FzbUF0b21pY0JpbmFyeVJNV09wcyhfYWRkLCBBZGQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0sIHQwR1BS
IGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRv
bWljeGNoZ2FkZGggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtLCB0MEdQ
UiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0
b21pY3hjaGdhZGRxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5
Uk1XT3BzKF9zdWIsIFN1YiwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikKKyAgICAgICAgICAgIG5lZ3EgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdh
ZGRiIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIs
IG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5lZ3EgdDBHUFIKKyAgICAg
ICAgICAgIGF0b21pY3hjaGdhZGRoIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCwKKyAg
ICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAg
IG5lZ3EgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0sIHQwR1BS
CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
MUdQUikKKyAgICAgICAgICAgIG5lZ3EgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdhZGRx
IHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1X
T3BzKF9hbmQsIEFuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
MUdQUikKKyAgICAgICAgICAgIG5vdHEgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdjbGVh
cmIgdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgbm90cSB0MEdQUgorICAgICAg
ICAgICAgYXRvbWljeGNoZ2NsZWFyaCB0MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBlbmQsCisg
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAg
ICBub3RxIHQwR1BSCisgICAgICAgICAgICBhdG9taWN4Y2hnY2xlYXJpIHQwR1BSLCBtZW0sIHQw
R1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikKKyAgICAgICAgICAgIG5vdHEgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdj
bGVhcnEgdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5h
cnlSTVdPcHMoX29yLCBPciwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikgYXRvbWljeGNoZ29yYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcmggdDBHUFIs
IG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIs
IHQxR1BSKSBhdG9taWN4Y2hnb3JpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFj
cm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29ycSB0MEdQUiwg
bWVtLCB0MEdQUiBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfeG9yLCBYb3IsCisg
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4
b3JiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJH
UFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAor
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
eG9yaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkK
KyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94Y2hnLCBYY2hnLAorICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYiB0MEdQUiwgbWVtLCB0
MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIp
IGF0b21pY3hjaGdoIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIs
IG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2kgdDBHUFIsIG1lbSwgdDBHUFIg
ZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9t
aWN4Y2hncSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQpCitlbHNpZiBBUk02NCBvciBSSVNDVjY0Cisg
ICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9hZGQsIEFkZCwKKyAgICAgICAg
bWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIGFkZGkgdDBHUFIsIHQxR1BS
LCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIp
CisgICAgICAgICAgICBhZGRxIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAg
IHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfc3ViLCBTdWIsCisgICAgICAgIG1h
Y3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBzdWJpIHQxR1BSLCB0MEdQUiwg
dDJHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQor
ICAgICAgICAgICAgc3VicSB0MUdQUiwgdDBHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3
YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3hjaGcsIFhjaGcsCisgICAgICAgIG1h
Y3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgor
ICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAg
ICAgICBtb3ZlIHQwR1BSLCB0MkdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFy
eVJNV09wc1dpdGhXZWFrQ0FTKF9hbmQsIEFuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BS
LCB0MkdQUikKKyAgICAgICAgICAgIGFuZGkgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBl
bmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBhbmRx
IHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlS
TVdPcHNXaXRoV2Vha0NBUyhfb3IsIE9yLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQy
R1BSKQorICAgICAgICAgICAgb3JpIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kLAor
ICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgb3JxIHQwR1BS
LCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNX
aXRoV2Vha0NBUyhfeG9yLCBYb3IsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIp
CisgICAgICAgICAgICB4b3JpIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kLAorICAg
ICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgeG9ycSB0MEdQUiwg
dDFHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKK2VuZAorCittYWNybyB3YXNtQXRvbWljQ29tcGFy
ZUV4Y2hhbmdlT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIsIGZuaCwg
Zm5pLCBmbnEpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3Us
IFdhc21JNjRBdG9taWNSbXc4JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAg
IG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQs
IHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKKyAgICAgICAgbWxvYWRx
KGN0eCwgbV92YWx1ZSwgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRk
aW5nT2Zmc2V0KGN0eCwgdDMsIHQxLCAxKQorICAgICAgICBmbmIodDAsIHQyLCBbdDNdLCB0NSwg
dDEpCisgICAgICAgIGFuZHEgMHhmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0CisgICAg
ICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmYsIC5vayBlbmQpCisgICAgICAgIHJl
dHVybnEoY3R4LCB0MCkKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MTYlbG93
ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MTYldXBwZXJDYXNlT3Bjb2RlJVUsIG1h
Y3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dl
dHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQw
KQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5k
UHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEs
IDIpCisgICAgICAgIGZuaCh0MCwgdDIsIFt0M10sIHQ1LCB0MSkKKyAgICAgICAgYW5kcSAweGZm
ZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQxNlRvNjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9r
KSBicWJlcSB0MCwgMHhmZmZmLCAub2sgZW5kKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisg
ICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwg
V2FzbUk2NEF0b21pY1JtdzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAg
IG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQs
IHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKKyAgICAgICAgbWxvYWRx
KGN0eCwgbV92YWx1ZSwgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRk
aW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA0KQorICAgICAgICBmbmko
dDAsIHQyLCBbdDNdLCB0NSwgdDEpCisgICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAs
IDB4ZmZmZmZmZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBlbmQp
CisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21JNjRBdG9t
aWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBt
X3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAg
bWxvYWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUs
IHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhB
bGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgOCkKKyAgICAgICAgZm5xKHQwLCB0MiwgW3QzXSwg
dDUsIHQxKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorZW5kCisKK2lmIFg4
Nl82NCBvciBBUk02NEUgb3IgQVJNNjQgb3IgUklTQ1Y2NAorIyB0MEdQUiA9PiBleHBlY3RlZCwg
dDJHUFIgPT4gdmFsdWUsIG1lbSA9PiBtZW1vcnkgcmVmZXJlbmNlCit3YXNtQXRvbWljQ29tcGFy
ZUV4Y2hhbmdlT3BzKF9jbXB4Y2hnLCBDbXB4Y2hnLAorICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwg
bWVtLCB0NUdQUiwgdDFHUFIpCisgICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKKyAgICAgICAg
ICAgIGJxYSB0MEdQUiAsIDB4ZmYsIC5mYWlsCisgICAgICAgICAgICBhdG9taWN3ZWFrY2FzYiB0
MEdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgam1wIC5kb25lCisgICAgICAgIC5mYWlsOgor
ICAgICAgICAgICAgYXRvbWljbG9hZGIgbWVtLCB0MEdQUgorICAgICAgICAuZG9uZToKKyAgICAg
ICAgZWxzZQorICAgICAgICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5rYWNxYiBtZW0sIHQx
R1BSCisgICAgICAgICAgICBicW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCisgICAgICAgICAgICBz
dG9yZWNvbmRyZWxiIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAw
LCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAgICAgICAg
ICAgc3RvcmVjb25kcmVsYiB0NUdQUiwgdDFHUFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQ
UiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAg
ICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCisgICAgICAgIGVuZAorICAgIGVuZCwKKyAgICBtYWNy
byh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BSKQorICAgICAgICBpZiBYODZfNjQgb3Ig
QVJNNjRFCisgICAgICAgICAgICBicWEgdDBHUFIsIDB4ZmZmZiwgLmZhaWwKKyAgICAgICAgICAg
IGF0b21pY3dlYWtjYXNoIHQwR1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICBqbXAgLmRvbmUK
KyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBhdG9taWNsb2FkaCBtZW0sIHQwR1BSCisgICAg
ICAgIC5kb25lOgorICAgICAgICBlbHNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9h
ZGxpbmthY3FoIG1lbSwgdDFHUFIKKyAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZh
aWwKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAg
ICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAg
LmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRyZWxoIHQ1R1BSLCB0MUdQUiwgbWVtCisgICAg
ICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAg
ICAgIC5kb25lOgorICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgZW5kCisg
ICAgZW5kLAorICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCisgICAg
ICAgIGlmIFg4Nl82NCBvciBBUk02NEUKKyAgICAgICAgICAgIGJxYSB0MEdQUiwgMHhmZmZmZmZm
ZiwgLmZhaWwKKyAgICAgICAgICAgIGF0b21pY3dlYWtjYXNpIHQwR1BSLCB0MkdQUiwgbWVtCisg
ICAgICAgICAgICBqbXAgLmRvbmUKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBhdG9taWNs
b2FkaSBtZW0sIHQwR1BSCisgICAgICAgIC5kb25lOgorICAgICAgICBlbHNlCisgICAgICAgIC5s
b29wOgorICAgICAgICAgICAgbG9hZGxpbmthY3FpIG1lbSwgdDFHUFIKKyAgICAgICAgICAgIGJx
bmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGkgdDVHUFIs
IHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAg
ICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1
R1BSLCB0MUdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAg
ICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAgICAgICAgbW92ZSB0MUdQUiwg
dDBHUFIKKyAgICAgICAgZW5kCisgICAgZW5kLAorICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVt
LCB0NUdQUiwgdDFHUFIpCisgICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKKyAgICAgICAgICAg
IGF0b21pY3dlYWtjYXNxIHQwR1BSLCB0MkdQUiwgbWVtCisgICAgICAgIGVsc2UKKyAgICAgICAg
Lmxvb3A6CisgICAgICAgICAgICBsb2FkbGlua2FjcXEgbWVtLCB0MUdQUgorICAgICAgICAgICAg
YnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kcmVscSB0NUdQ
UiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAg
ICAgIGptcCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbHEg
dDVHUFIsIHQxR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAg
ICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBtb3ZlIHQxR1BS
LCB0MEdQUgorICAgICAgICBlbmQKKyAgICBlbmQpCitlbmQKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vYXJtLnJiCmluZGV4IGM4YThmZDA2YjYxOC4uYTZmMTgyMjliNTRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiCkBAIC03MSw2ICs3MSwxMSBAQCBj
bGFzcyBOb2RlCiAgICAgICAgIHJhaXNlICJCb2d1cyByZWdpc3RlciBuYW1lICN7ZG91YmxlT3Bl
cmFuZH0iIHVubGVzcyBkb3VibGVPcGVyYW5kID1+IC9eZC8KICAgICAgICAgInMiICsgKCR+LnBv
c3RfbWF0Y2gudG9faSAqIDIpLnRvX3MKICAgICBlbmQKKyAgICBkZWYgYXJtU2luZ2xlSGkKKyAg
ICAgICAgZG91YmxlT3BlcmFuZCA9IGFybU9wZXJhbmQKKyAgICAgICAgcmFpc2UgIkJvZ3VzIHJl
Z2lzdGVyIG5hbWUgI3tkb3VibGVPcGVyYW5kfSIgdW5sZXNzIGRvdWJsZU9wZXJhbmQgPX4gL15k
LworICAgICAgICAicyIgKyAoJH4ucG9zdF9tYXRjaC50b19pICogMiArIDEpLnRvX3MKKyAgICBl
bmQKIGVuZAogCiBjbGFzcyBTcGVjaWFsUmVnaXN0ZXIKQEAgLTEwNiwyMSArMTExLDIxIEBAIGVu
ZAogY2xhc3MgUmVnaXN0ZXJJRAogICAgIGRlZiBhcm1PcGVyYW5kCiAgICAgICAgIGNhc2UgbmFt
ZQotICAgICAgICB3aGVuICJ0MCIsICJhMCIsICJyMCIKKyAgICAgICAgd2hlbiAidDAiLCAiYTAi
LCAid2EwIiwgInIwIgogICAgICAgICAgICAgInIwIgotICAgICAgICB3aGVuICJ0MSIsICJhMSIs
ICJyMSIKKyAgICAgICAgd2hlbiAidDEiLCAiYTEiLCAid2ExIiwgInIxIgogICAgICAgICAgICAg
InIxIgotICAgICAgICB3aGVuICJ0MiIsICJhMiIKKyAgICAgICAgd2hlbiAidDIiLCAiYTIiLCAi
d2EyIgogICAgICAgICAgICAgInIyIgotICAgICAgICB3aGVuICJ0MyIsICJhMyIKKyAgICAgICAg
d2hlbiAidDMiLCAiYTMiLCAid2EzIgogICAgICAgICAgICAgInIzIgogICAgICAgICB3aGVuICJ0
NCIgIyBMTEludCBQQwogICAgICAgICAgICAgInI0IgotICAgICAgICB3aGVuICJ0NSIKKyAgICAg
ICAgd2hlbiAidDUiLCAid3MwIiAjIHdzMCBtdXN0IGJlIGEgbm9uLWFyZ3VtZW50L25vbi1yZXR1
cm4gR1BSCiAgICAgICAgICAgICAicjUiCiAgICAgICAgIHdoZW4gImNmciIKICAgICAgICAgICAg
ICJyNyIKLSAgICAgICAgd2hlbiAidDYiCisgICAgICAgIHdoZW4gInQ2IiwgIndzMSIgIyB3czEg
bXVzdCBiZSBhIG5vbi1hcmd1bWVudC9ub24tcmV0dXJuIEdQUgogICAgICAgICAgICAgInI4Igog
ICAgICAgICB3aGVuICJ0NyIKICAgICAgICAgICAgICJyOSIgIyByOSBpcyBhbHNvIGEgc2NyYXRj
aCByZWdpc3Rlciwgc28gdXNlIGNhcmVmdWxseSEKQEAgLTE0MywyMSArMTQ4LDIxIEBAIGVuZAog
Y2xhc3MgRlBSZWdpc3RlcklECiAgICAgZGVmIGFybU9wZXJhbmQKICAgICAgICAgY2FzZSBuYW1l
Ci0gICAgICAgIHdoZW4gImZ0MCIsICJmciIsICJmYTAiCisgICAgICAgIHdoZW4gImZ0MCIsICJm
ciIsICJmYTAiLCAid2ZhMCIKICAgICAgICAgICAgICJkMCIKLSAgICAgICAgd2hlbiAiZnQxIiwg
ImZhMSIKKyAgICAgICAgd2hlbiAiZnQxIiwgImZhMSIsICJ3ZmExIgogICAgICAgICAgICAgImQx
IgotICAgICAgICB3aGVuICJmdDIiCisgICAgICAgIHdoZW4gImZ0MiIsICJ3ZmEyIgogICAgICAg
ICAgICAgImQyIgotICAgICAgICB3aGVuICJmdDMiCisgICAgICAgIHdoZW4gImZ0MyIsICJ3ZmEz
IgogICAgICAgICAgICAgImQzIgotICAgICAgICB3aGVuICJmdDQiCisgICAgICAgIHdoZW4gImZ0
NCIsICJ3ZmE0IgogICAgICAgICAgICAgImQ0IgotICAgICAgICB3aGVuICJmdDUiCisgICAgICAg
IHdoZW4gImZ0NSIsICJ3ZmE1IgogICAgICAgICAgICAgImQ1IgotICAgICAgICB3aGVuICJmdDYi
CisgICAgICAgIHdoZW4gImZ0NiIsICJ3ZmE2IgogICAgICAgICAgICAgImQ2IgotICAgICAgICB3
aGVuICJmdDciCisgICAgICAgIHdoZW4gImZ0NyIsICJ3ZmE3IgogICAgICAgICAgICAgImQ3Igog
ICAgICAgICB3aGVuICJjc2ZyMCIKICAgICAgICAgICAgICJkOCIKQEAgLTE4OSw3ICsxOTQsMTEg
QEAgZW5kCiBjbGFzcyBBZGRyZXNzCiAgICAgZGVmIGFybU9wZXJhbmQKICAgICAgICAgcmFpc2Ug
IkJhZCBvZmZzZXQgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgaWYgb2Zmc2V0LnZhbHVlIDwgLTB4
ZmYgb3Igb2Zmc2V0LnZhbHVlID4gMHhmZmYKLSAgICAgICAgIlsje2Jhc2UuYXJtT3BlcmFuZH0s
IFwjI3tvZmZzZXQudmFsdWV9XSIKKyAgICAgICAgaWYgb2Zmc2V0LnZhbHVlID09IDAKKyAgICAg
ICAgICAiWyN7YmFzZS5hcm1PcGVyYW5kfV0iCisgICAgICAgIGVsc2UKKyAgICAgICAgICAiWyN7
YmFzZS5hcm1PcGVyYW5kfSwgXCMje29mZnNldC52YWx1ZX1dIgorICAgICAgICBlbmQKICAgICBl
bmQKIGVuZAogCkBAIC0zMzIsMTYgKzM0MSwyNSBAQCBjbGFzcyBTZXF1ZW5jZQogICAgICAgICBy
ZXN1bHQgPSBhcm1Mb3dlckxhYmVsUmVmZXJlbmNlcyhyZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9
IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3NlcyhyZXN1bHQpIHsKICAgICAgICAgICAgIHwgbm9k
ZSwgYWRkcmVzcyB8Ci0gICAgICAgICAgICBpZiBhZGRyZXNzLmlzX2E/IEJhc2VJbmRleAotICAg
ICAgICAgICAgICAgIGFkZHJlc3Mub2Zmc2V0LnZhbHVlID09IDAKLSAgICAgICAgICAgIGVsc2lm
IGFkZHJlc3MuaXNfYT8gQWRkcmVzcwotICAgICAgICAgICAgICAgICgtMHhmZi4uMHhmZmYpLmlu
Y2x1ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVlCisgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2Rl
CisgICAgICAgICAgICB3aGVuICJsb2FkMmlhIiwgInN0b3JlMmlhIgorICAgICAgICAgICAgICAg
IGlmIGFkZHJlc3MuaXNfYT8gQWRkcmVzcworICAgICAgICAgICAgICAgICAgICAoYWRkcmVzcy5v
ZmZzZXQudmFsdWUgJSA0ID09IDApICYmICgoLTEwMjMuLjEwMjMpLmluY2x1ZGU/IGFkZHJlc3Mu
b2Zmc2V0LnZhbHVlKQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
ZmFsc2UKKyAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBmYWxzZQorICAgICAgICAgICAgICAgIGlmIGFkZHJlc3MuaXNfYT8gQmFzZUluZGV4Cisg
ICAgICAgICAgICAgICAgICAgIGFkZHJlc3Mub2Zmc2V0LnZhbHVlID09IDAgJiYgbm9kZS5vcGNv
ZGUKKyAgICAgICAgICAgICAgICBlbHNpZiBhZGRyZXNzLmlzX2E/IEFkZHJlc3MKKyAgICAgICAg
ICAgICAgICAgICAgKC0weGZmLi4weGZmZikuaW5jbHVkZT8gYWRkcmVzcy5vZmZzZXQudmFsdWUK
KyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGZhbHNlCisgICAgICAg
ICAgICAgICAgZW5kCiAgICAgICAgICAgICBlbmQKICAgICAgICAgfQogICAgICAgICByZXN1bHQg
PSByaXNjTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXNEb3VibGUocmVzdWx0KQotICAgICAgICByZXN1
bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKHJlc3VsdCwgWyJzdG9yZWIiLCAic3Rv
cmVoIiwgInN0b3JlaSIsICJzdG9yZXAiLCAic3RvcmVxIl0pCisgICAgICAgIHJlc3VsdCA9IHJp
c2NMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMocmVzdWx0LCBbInN0b3JlYiIsICJzdG9yZWgiLCAi
c3RvcmVpIiwgInN0b3JlcCIsICJzdG9yZXEiLCAic3RvcmUyaWEiXSkKICAgICAgICAgcmVzdWx0
ID0gcmlzY0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRlcyhyZXN1bHQsIDAuLjB4ZmYsIDAuLjB4MGZm
KQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXMocmVzdWx0KQog
ICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJSZWdpc3RlclJldXNlKHJlc3VsdCkKQEAgLTM2MCw2
ICszNzgsMTAgQEAgZGVmIGFybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcykKICAgICBhcm1PcGVy
YW5kcyhbb3BlcmFuZHNbLTFdXSArIG9wZXJhbmRzWzAuLi0yXSkKIGVuZAogCitkZWYgYXJtRmxp
cHBlZE9wZXJhbmRzUGFpcihvcGVyYW5kcykKKyAgICBhcm1PcGVyYW5kcyhbb3BlcmFuZHNbLTJd
LCBvcGVyYW5kc1stMV1dICsgb3BlcmFuZHNbMC4uLTNdKQorZW5kCisKIGRlZiBlbWl0QXJtQ29t
cGFjdChvcGNvZGUyLCBvcGNvZGUzLCBvcGVyYW5kcykKICAgICBpZiBvcGVyYW5kcy5zaXplID09
IDMKICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZTN9ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9w
ZXJhbmRzKX0iCkBAIC0zODksNiArNDExLDEyIEBAIGRlZiBlbWl0QXJtRG91YmxlQnJhbmNoKGJy
YW5jaE9wY29kZSwgb3BlcmFuZHMpCiAgICAgJGFzbS5wdXRzICIje2JyYW5jaE9wY29kZX0gI3tv
cGVyYW5kc1syXS5hc21MYWJlbH0iCiBlbmQKIAorZGVmIGVtaXRBcm1TaW5nbGVCcmFuY2goYnJh
bmNoT3Bjb2RlLCBvcGVyYW5kcykKKyAgICAkYXNtLnB1dHMgInZjbXBlLmYzMiAje29wZXJhbmRz
WzBdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKKyAgICAkYXNtLnB1dHMg
InZtcnMgYXBzcl9uemN2LCBmcHNjciIKKyAgICAkYXNtLnB1dHMgIiN7YnJhbmNoT3Bjb2RlfSAj
e29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKK2VuZAorCiBkZWYgZW1pdEFybVRlc3Qob3BlcmFuZHMp
CiAgICAgdmFsdWUgPSBvcGVyYW5kc1swXQogICAgIGNhc2Ugb3BlcmFuZHMuc2l6ZQpAQCAtNDA5
LDcgKzQzNywxNSBAQCBlbmQKIAogZGVmIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCBj
b2RlKQogICAgICRhc20ucHV0cyAibW92ICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sIFwjMCIK
LSAgICAkYXNtLnB1dHMgInZjbXBlLmY2NCAje2FybU9wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0i
CisgICAgJGFzbS5wdXRzICJ2Y21wLmY2NCAje2FybU9wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0i
CisgICAgJGFzbS5wdXRzICJ2bXJzIEFQU1JfbnpjdiwgRlBTQ1IiCisgICAgJGFzbS5wdXRzICJp
dCAje2NvZGV9IgorICAgICRhc20ucHV0cyAibW92I3tjb2RlfSAje29wZXJhbmRzWzJdLmFybU9w
ZXJhbmR9LCBcIzEiCitlbmQKKworZGVmIGVtaXRBcm1GbG9hdENvbXBhcmUob3BlcmFuZHMsIGNv
ZGUpCisgICAgJGFzbS5wdXRzICJtb3YgI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgXCMwIgor
ICAgICRhc20ucHV0cyAidmNtcC5mMzIgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9LCAje29wZXJh
bmRzWzFdLmFybVNpbmdsZX0iCiAgICAgJGFzbS5wdXRzICJ2bXJzIEFQU1JfbnpjdiwgRlBTQ1Ii
CiAgICAgJGFzbS5wdXRzICJpdCAje2NvZGV9IgogICAgICRhc20ucHV0cyAibW92I3tjb2RlfSAj
e29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCBcIzEiCkBAIC00MjksNiArNDY1LDE5IEBAIGRlZiBl
bWl0QXJtVGVzdFNldChvcGVyYW5kcywgY29kZSkKICAgICAkYXNtLnB1dHMgIm1vdiN7Y29kZX0g
I3tvcGVyYW5kc1stMV0uYXJtT3BlcmFuZH0sIFwjMSIKIGVuZAogCitkZWYgcmF3SW5zdHJ1Y3Rp
b24oY29kZU9yaWdpbiwgdGV4dCkKKyAgICByZXR1cm4gSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmln
aW4sICJlbWl0IiwgW1N0cmluZ0xpdGVyYWwubmV3KGNvZGVPcmlnaW4sICJcIiN7dGV4dH1cIiIp
XSkKK2VuZAorCitkZWYgZW1pdEFybVRydW5jYXRlRmxvYXQoY29kZU9yaWdpbiwgdG8sIGZyb20s
IG9wZXJhbmRzKQorICAgIHRtcCA9IEFSTV9FWFRSQV9GUFJTWy0xXQorICAgIHNyYyA9IGZyb20g
PT0gImYzMiIgPyBvcGVyYW5kc1swXS5hcm1TaW5nbGUgOiBvcGVyYW5kc1swXS5hcm1PcGVyYW5k
CisgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgcmF3SW5zdHJ1Y3Rpb24o
Y29kZU9yaWdpbiwgInZjdnQuI3t0b30uI3tmcm9tfSAje3RtcC5hcm1TaW5nbGV9LCAje3NyY30i
KSwKKyAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgInZtb3YgI3tvcGVyYW5kc1sx
XS5hcm1PcGVyYW5kfSwgI3t0bXAuYXJtU2luZ2xlfSIpCisgICAgXSkubG93ZXIoJGFjdGl2ZUJh
Y2tlbmQpCitlbmQKKwogY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICBkZWYgbG93ZXJBUk12NwogICAg
ICAgICByYWlzZSB1bmxlc3MgJGFjdGl2ZUJhY2tlbmQgPT0gIkFSTXY3IgpAQCAtNDY2LDYgKzUx
NSwxMCBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgICAgICAgICAkYXNtLnB1dHMg
ImFkZCN7c3VmZml4fSAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICAg
ICAgICAgIGVuZAogICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImFkY2kiCisgICAgICAg
ICAgICBlbWl0QXJtKCJhZGMiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYWJzZCIKKyAgICAg
ICAgICAkYXNtLnB1dHMgInZhYnMuZjY0ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0i
CiAgICAgICAgIHdoZW4gImFuZGkiLCAiYW5kcCIKICAgICAgICAgICAgIGVtaXRBcm1Db21wYWN0
KCJhbmRzIiwgImFuZCIsIG9wZXJhbmRzKQogICAgICAgICB3aGVuICJvcmkiLCAib3JwIiwgIm9y
aCIKQEAgLTQ4NCwxNCArNTM3LDM0IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBl
bWl0QXJtKCJtdWwiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAic3ViaSIsICJzdWJwIiwgInN1
YmlzIgogICAgICAgICAgICAgZW1pdEFybUNvbXBhY3QoInN1YnMiLCAic3VicyIsIG9wZXJhbmRz
KQorICAgICAgICB3aGVuICJzYmNpIgorICAgICAgICAgICAgZW1pdEFybSgic2JjIiwgb3BlcmFu
ZHMpCiAgICAgICAgIHdoZW4gIm5lZ2kiLCAibmVncCIKICAgICAgICAgICAgICRhc20ucHV0cyAi
cnNicyAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9
LCBcIzAiCiAgICAgICAgIHdoZW4gIm5vdGkiCiAgICAgICAgICAgICAkYXNtLnB1dHMgIm12bnMg
I3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAg
ICAgICAgd2hlbiAibHJvdGF0ZWkiCisgICAgICAgICAgICB0bXAgPSBUbXAubmV3KGNvZGVPcmln
aW4sIDpncHIpCisgICAgICAgICAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAgICAg
ICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAibW92ZSIsIFtvcGVyYW5kc1sw
XSwgdG1wXSksCisgICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJu
ZWdpIiwgW3RtcF0pLAorICAgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2lu
LCAicnJvdGF0ZWkiLCBbdG1wLCBvcGVyYW5kc1sxXV0pLAorICAgICAgICAgICAgXSkubG93ZXIo
JGFjdGl2ZUJhY2tlbmQpCisgICAgICAgIHdoZW4gInJyb3RhdGVpIgorICAgICAgICAgICAgJGFz
bS5wdXRzICJyb3IgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hl
biAidHpjbnRpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJyYml0ICN7YXJtRmxpcHBlZE9wZXJh
bmRzKG9wZXJhbmRzKX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImNseiAje29wZXJhbmRzWzFd
LmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9IgorICAgICAgICB3aGVuICJs
emNudGkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImNseiAje2FybUZsaXBwZWRPcGVyYW5kcyhv
cGVyYW5kcyl9IgogICAgICAgICB3aGVuICJsb2FkaSIsICJsb2FkaXMiLCAibG9hZHAiCiAgICAg
ICAgICAgICAkYXNtLnB1dHMgImxkciAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9Igog
ICAgICAgICB3aGVuICJzdG9yZWkiLCAic3RvcmVwIgogICAgICAgICAgICAgJGFzbS5wdXRzICJz
dHIgI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkMmlhIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJsZHJkICN7YXJtRmxpcHBlZE9wZXJhbmRzUGFpcihvcGVyYW5k
cyl9IgorICAgICAgICB3aGVuICJzdG9yZTJpYSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3Ry
ZCAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gImxvYWRiIgogICAgICAg
ICAgICAgJGFzbS5wdXRzICJsZHJiICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAg
ICAgICAgIHdoZW4gImxvYWRic2kiCkBAIC01MDQsMjAgKzU3NywxMTAgQEAgY2xhc3MgSW5zdHJ1
Y3Rpb24KICAgICAgICAgICAgICRhc20ucHV0cyAibGRyc2gudyAje2FybUZsaXBwZWRPcGVyYW5k
cyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJzdG9yZWgiCiAgICAgICAgICAgICAkYXNtLnB1
dHMgInN0cmggI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkbGlu
a2IiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmV4YiAje2FybUZsaXBwZWRPcGVyYW5kcyhv
cGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkbGlua2giCisgICAgICAgICAgICAkYXNtLnB1
dHMgImxkcmV4aCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVu
ICJsb2FkbGlua2kiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmV4ICN7YXJtRmxpcHBlZE9w
ZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRsaW5rMmkiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgImxkcmV4ZCAje2FybUZsaXBwZWRPcGVyYW5kc1BhaXIob3BlcmFuZHMpfSIK
KyAgICAgICAgd2hlbiAic3RvcmVjb25kYiIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RyZXhi
ICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVjb25kaCIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAic3RyZXhoICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAg
ICAgICAgd2hlbiAic3RvcmVjb25kaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RyZXggI3th
cm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9yZWNvbmQyaSIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAic3RyZXhkICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAg
ICAgd2hlbiAibG9hZGQiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZsZHIuNjQgI3thcm1GbGlw
cGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAic3RvcmVkIgogICAgICAgICAg
ICAgJGFzbS5wdXRzICJ2c3RyLjY0ICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAg
d2hlbiAibG9hZGYiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZsZHIuMzIgI3tvcGVyYW5kc1st
MV0uYXJtU2luZ2xlfSwgI3thcm1PcGVyYW5kcyhvcGVyYW5kc1swLi4tMl0pfSIKKyAgICAgICAg
d2hlbiAic3RvcmVmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2c3RyLjMyICN7b3BlcmFuZHNb
MF0uYXJtU2luZ2xlfSwgI3thcm1PcGVyYW5kcyhvcGVyYW5kc1sxLi4tMV0pfSIKKyAgICAgICAg
d2hlbiAiYWRkZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmFkZC5mMzIgI3tvcGVyYW5kc1sx
XS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJt
U2luZ2xlfSIKKyAgICAgICAgd2hlbiAic3ViZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidnN1
Yi5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0s
ICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAibXVsZiIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAidm11bC5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJh
bmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hl
biAiZGl2ZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmRpdi5mMzIgI3tvcGVyYW5kc1sxXS5h
cm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2lu
Z2xlfSIKKyAgICAgICAgd2hlbiAic3FydGYiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZzcXJ0
LmYzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIK
KyAgICAgICAgd2hlbiAiYWJzZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmFicy5mMzIgI3tv
cGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCisgICAgICAg
IHdoZW4gIm5lZ2YiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZuZWcuZjMyICN7b3BlcmFuZHNb
MV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJi
Zmx0IgorICAgICAgICAgICAgZW1pdEFybVNpbmdsZUJyYW5jaCgiYm1pIiwgb3BlcmFuZHMpCisg
ICAgICAgIHdoZW4gImJmbHR1biIKKyAgICAgICAgICAgIGVtaXRBcm1TaW5nbGVCcmFuY2goImJs
dCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZmx0ZXF1biIKKyAgICAgICAgICAgIGVtaXRB
cm1TaW5nbGVCcmFuY2goImJsZSIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZmVxIgorICAg
ICAgICAgICAgZW1pdEFybVNpbmdsZUJyYW5jaCgiYmVxIiwgb3BlcmFuZHMpCisgICAgICAgIHdo
ZW4gImJmZ3QiCisgICAgICAgICAgICBlbWl0QXJtU2luZ2xlQnJhbmNoKCJiZ3QiLCBvcGVyYW5k
cykKKyAgICAgICAgd2hlbiAiYmZndGVxdW4iCisgICAgICAgICAgICBlbWl0QXJtU2luZ2xlQnJh
bmNoKCJicGwiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRsdHVuIgorICAgICAgICAgICAg
ZW1pdEFybURvdWJsZUJyYW5jaCgiYmx0Iiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gImFkZGQi
CiAgICAgICAgICAgICBlbWl0QXJtKCJ2YWRkLmY2NCIsIG9wZXJhbmRzKQotICAgICAgICB3aGVu
ICJkaXZkIgotICAgICAgICAgICAgZW1pdEFybSgidmRpdi5mNjQiLCBvcGVyYW5kcykKICAgICAg
ICAgd2hlbiAic3ViZCIKICAgICAgICAgICAgIGVtaXRBcm0oInZzdWIuZjY0Iiwgb3BlcmFuZHMp
CiAgICAgICAgIHdoZW4gIm11bGQiCiAgICAgICAgICAgICBlbWl0QXJtKCJ2bXVsLmY2NCIsIG9w
ZXJhbmRzKQorICAgICAgICB3aGVuICJkaXZkIgorICAgICAgICAgICAgZW1pdEFybSgidmRpdi5m
NjQiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAic3FydGQiCiAgICAgICAgICAgICAkYXNtLnB1
dHMgInZzcXJ0LmY2NCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3
aGVuICJuZWdkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bmVnLmY2NCAje2FybUZsaXBwZWRP
cGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJvcmYiCisgICAgICAgICAgICAodG1w
TGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0xXQorICAgICAgICAgICAgU2VxdWVu
Y2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9y
aWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmds
ZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7
dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iKSwKKyAgICAgICAg
ICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJvcmkiLCBbdG1wTGhzLCB0bXBSaHNd
KSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7b3Bl
cmFuZHNbMV0uYXJtU2luZ2xlfSwgI3t0bXBSaHMuYXJtT3BlcmFuZH0iKQorICAgICAgICAgICAg
XSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCisgICAgICAgIHdoZW4gImFuZGYiCisgICAgICAgICAg
ICAodG1wTGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0xXQorICAgICAgICAgICAg
U2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24o
Y29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFy
bVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2
bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iKSwKKyAg
ICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJhbmRpIiwgW3RtcExocywg
dG1wUmhzXSksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1v
diAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7dG1wUmhzLmFybU9wZXJhbmR9IikKKyAgICAg
ICAgICAgIF0pLmxvd2VyKCRhY3RpdmVCYWNrZW5kKQorICAgICAgICB3aGVuICJvcmQiCisgICAg
ICAgICAgICAodG1wTGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0xXQorICAgICAg
ICAgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1
Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRz
WzBdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdp
biwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0i
KSwKKyAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJvcmkiLCBbdG1w
TGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwg
ICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3t0bXBSaHMuYXJtT3BlcmFuZH0iKSwK
KyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhz
LmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZUhpfSIpLAorICAgICAgICAgICAg
ICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlSGl9IiksCisgICAgICAgICAgICAgIEluc3RydWN0aW9u
Lm5ldyhjb2RlT3JpZ2luLCAib3JpIiwgW3RtcExocywgdG1wUmhzXSksCisgICAgICAgICAgICAg
IHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmds
ZUhpfSwgI3t0bXBSaHMuYXJtT3BlcmFuZH0iKQorICAgICAgICAgICAgXSkubG93ZXIoJGFjdGl2
ZUJhY2tlbmQpCisgICAgICAgIHdoZW4gImFuZGQiCisgICAgICAgICAgICAodG1wTGhzLCB0bXBS
aHMpID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0xXQorICAgICAgICAgICAgU2VxdWVuY2UubmV3KGNv
ZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2
bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iKSwKKyAg
ICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFy
bU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgSW5z
dHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJhbmRpIiwgW3RtcExocywgdG1wUmhzXSksCisgICAg
ICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje29wZXJhbmRzWzFd
LmFybVNpbmdsZX0sICN7dG1wUmhzLmFybU9wZXJhbmR9IiksCisgICAgICAgICAgICAgIHJhd0lu
c3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcExocy5hcm1PcGVyYW5kfSwgI3tvcGVy
YW5kc1swXS5hcm1TaW5nbGVIaX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29k
ZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNp
bmdsZUhpfSIpLAorICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImFu
ZGkiLCBbdG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29k
ZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlSGl9LCAje3RtcFJocy5hcm1P
cGVyYW5kfSIpCisgICAgICAgICAgICBdKS5sb3dlcigkYWN0aXZlQmFja2VuZCkKICAgICAgICAg
d2hlbiAiY2kyZHMiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5h
cm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9IgogICAgICAgICAgICAgJGFzbS5w
dXRzICJ2Y3Z0LmY2NC5zMzIgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sx
XS5hcm1TaW5nbGV9IgpAQCAtNTcwLDYgKzczMyw4IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAg
ICAgIHdoZW4gIm1vdmR6IgogICAgICAgICAgICAgIyBGSVhNRTogZWl0aGVyIHN1cHBvcnQgdGhp
cyBvciByZW1vdmUgaXQuCiAgICAgICAgICAgICByYWlzZSAiQVJNIGRvZXMgbm90IHN1cHBvcnQg
dGhpcyBvcGNvZGUgeWV0LCAje2NvZGVPcmlnaW59IgorICAgICAgICB3aGVuICJtb3ZlZCIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAidm1vdi5mNjQgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFu
ZHMpfSIKICAgICAgICAgd2hlbiAicG9wIgogICAgICAgICAgICAgb3BlcmFuZHMuZWFjaCB7CiAg
ICAgICAgICAgICAgICAgfCBvcCB8CkBAIC01ODYsOSArNzUxLDE3IEBAIGNsYXNzIEluc3RydWN0
aW9uCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3YgI3th
cm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgICAgIGVuZAorICAgICAgICB3
aGVuICJtb3ZlaWkiCisgICAgICAgICAgICByYWlzZSAiRmlyc3Qgb3BlcmFuZCBvZiBtb3ZlaWkg
bXVzdCBiZSBhbiBpbW1lZGlhdGUiIHVubGVzcyBvcGVyYW5kc1swXS5pbW1lZGlhdGU/CisgICAg
ICAgICAgICBhcm1Nb3ZlSW1tZWRpYXRlKG9wZXJhbmRzWzBdLnZhbHVlID4+IDMyLCBvcGVyYW5k
c1sxXSkKKyAgICAgICAgICAgIGFybU1vdmVJbW1lZGlhdGUob3BlcmFuZHNbMF0udmFsdWUgJiAw
eGZmZmZmZmZmLCBvcGVyYW5kc1syXSkKICAgICAgICAgd2hlbiAibXZsYmwiCiAgICAgICAgICAg
ICAgICAgJGFzbS5wdXRzICJtb3Z3ICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sIFwjOmxvd2Vy
MTY6I3tvcGVyYW5kc1swXS52YWx1ZX0iCiAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3Z0
ICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sIFwjOnVwcGVyMTY6I3tvcGVyYW5kc1swXS52YWx1
ZX0iCisgICAgICAgIHdoZW4gInN4YjJpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzeHRiICN7
YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN4aDJpIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJzeHRoICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0i
CiAgICAgICAgIHdoZW4gIm5vcCIKICAgICAgICAgICAgICRhc20ucHV0cyAibm9wIgogICAgICAg
ICB3aGVuICJiaWVxIiwgImJwZXEiLCAiYmJlcSIKQEAgLTY4MiwxNCArODU1LDQ2IEBAIGNsYXNz
IEluc3RydWN0aW9uCiAgICAgICAgICAgICBlbWl0QXJtQ29tcGFyZShvcGVyYW5kcywgImx0IikK
ICAgICAgICAgd2hlbiAiY2lsdGVxIiwgImNwbHRlcSIsICJjYmx0ZXEiCiAgICAgICAgICAgICBl
bWl0QXJtQ29tcGFyZShvcGVyYW5kcywgImxlIikKLSAgICAgICAgd2hlbiAiY2RndCIKLSAgICAg
ICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAiZ3QiKQotICAgICAgICB3aGVu
ICJjZGd0ZXEiCi0gICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywgImdl
IikKKyAgICAgICAgd2hlbiAiY2ZlcSIKKyAgICAgICAgICAgIGVtaXRBcm1GbG9hdENvbXBhcmUo
b3BlcmFuZHMsICJlcSIpCisgICAgICAgIHdoZW4gImNmbmVxdW4iCisgICAgICAgICAgICBlbWl0
QXJtRmxvYXRDb21wYXJlKG9wZXJhbmRzLCAibmUiKQorICAgICAgICB3aGVuICJjZmx0IgorICAg
ICAgICAgICAgZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywgIm1pIikKKyAgICAgICAgd2hl
biAiY2ZsdGVxIgorICAgICAgICAgICAgZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywgImxz
IikKKyAgICAgICAgd2hlbiAiY2ZndCIKKyAgICAgICAgICAgIGVtaXRBcm1GbG9hdENvbXBhcmUo
b3BlcmFuZHMsICJndCIpCisgICAgICAgIHdoZW4gImNmZ3RlcSIKKyAgICAgICAgICAgIGVtaXRB
cm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJnZSIpCisgICAgICAgIHdoZW4gImNkZXEiCisgICAg
ICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywgImVxIikKKyAgICAgICAgd2hl
biAiY2RuZXF1biIKKyAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAi
bmUiKQogICAgICAgICB3aGVuICJjZGx0IgogICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBh
cmUob3BlcmFuZHMsICJtaSIpCiAgICAgICAgIHdoZW4gImNkbHRlcSIKICAgICAgICAgICAgIGVt
aXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAibHMiKQorICAgICAgICB3aGVuICJjZGd0Igor
ICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMsICJndCIpCisgICAgICAg
IHdoZW4gImNkZ3RlcSIKKyAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRz
LCAiZ2UiKQorICAgICAgICB3aGVuICJjZjJkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0
LmY2NC5mMzIgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5n
bGV9IgorICAgICAgICB3aGVuICJjZDJmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmYz
Mi5mNjQgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9
IgorICAgICAgICB3aGVuICJjaTJmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3Bl
cmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAidmN2dC5mMzIudTMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tv
cGVyYW5kc1sxXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJjaTJmcyIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0u
YXJtT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInZjdnQuZjMyLnMzMiAje29wZXJh
bmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hl
biAiY2kyZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybVNp
bmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMg
InZjdnQuZjY0LnUzMiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFy
bVNpbmdsZX0iCisgICAgICAgIHdoZW4gImNpMmRzIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2
bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAidmN2dC5mNjQuczMyICN7b3BlcmFuZHNbMV0uYXJtT3Bl
cmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKICAgICAgICAgd2hlbiAidGlzIiwgInRi
cyIsICJ0cHMiCiAgICAgICAgICAgICBlbWl0QXJtVGVzdFNldChvcGVyYW5kcywgIm1pIikKICAg
ICAgICAgd2hlbiAidGl6IiwgInRieiIsICJ0cHoiCkBAIC03MDAsMTAgKzkwNSwyMiBAQCBjbGFz
cyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgJGFzbS5wdXRzICJsZHIgI3tvcGVyYW5kc1sxXS5h
cm1PcGVyYW5kfSwgW3NwLCBcIyN7b3BlcmFuZHNbMF0udmFsdWUgKiA0fV0iCiAgICAgICAgIHdo
ZW4gInBva2UiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInN0ciAje29wZXJhbmRzWzFdLmFybU9w
ZXJhbmR9LCBbc3AsIFwjI3tvcGVyYW5kc1swXS52YWx1ZSAqIDR9XSIKKyAgICAgICAgd2hlbiAi
ZmkyZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmds
ZX0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAgIHdoZW4gImZmMmkiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVy
YW5kc1swXS5hcm1TaW5nbGV9IgogICAgICAgICB3aGVuICJmaWkyZCIKICAgICAgICAgICAgICRh
c20ucHV0cyAidm1vdiAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFy
bU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9IgogICAgICAgICB3aGVuICJmZDJp
aSIKICAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9
LCAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9Igor
ICAgICAgICB3aGVuICJ0cnVuY2F0ZWYyaSIKKyAgICAgICAgICAgIGVtaXRBcm1UcnVuY2F0ZUZs
b2F0KGNvZGVPcmlnaW4sICJ1MzIiLCAiZjMyIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInRy
dW5jYXRlZjJpcyIKKyAgICAgICAgICAgIGVtaXRBcm1UcnVuY2F0ZUZsb2F0KGNvZGVPcmlnaW4s
ICJzMzIiLCAiZjMyIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInRydW5jYXRlZDJpIgorICAg
ICAgICAgICAgZW1pdEFybVRydW5jYXRlRmxvYXQoY29kZU9yaWdpbiwgInUzMiIsICJmNjQiLCBv
cGVyYW5kcykKKyAgICAgICAgd2hlbiAidHJ1bmNhdGVkMmlzIgorICAgICAgICAgICAgZW1pdEFy
bVRydW5jYXRlRmxvYXQoY29kZU9yaWdpbiwgInMzMiIsICJmNjQiLCBvcGVyYW5kcykKICAgICAg
ICAgd2hlbiAiYm8iCiAgICAgICAgICAgICAkYXNtLnB1dHMgImJ2cyAje29wZXJhbmRzWzBdLmFz
bUxhYmVsfSIKICAgICAgICAgd2hlbiAiYnMiCkBAIC03MTIsMTMgKzkyOSwxNyBAQCBjbGFzcyBJ
bnN0cnVjdGlvbgogICAgICAgICAgICAgJGFzbS5wdXRzICJiZXEgI3tvcGVyYW5kc1swXS5hc21M
YWJlbH0iCiAgICAgICAgIHdoZW4gImJueiIKICAgICAgICAgICAgICRhc20ucHV0cyAiYm5lICN7
b3BlcmFuZHNbMF0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJiY3MiCisgICAgICAgICAgICAk
YXNtLnB1dHMgImJjcyAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKICAgICAgICAgd2hlbiAibGVh
aSIsICJsZWFwIgogICAgICAgICAgICAgb3BlcmFuZHNbMF0uYXJtRW1pdExlYShvcGVyYW5kc1sx
XSkKLSAgICAgICAgd2hlbiAic211bGxpIgorICAgICAgICB3aGVuICJzbXVsbGkiLCAidW11bGxp
IgogICAgICAgICAgICAgcmFpc2UgIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgdG8gc211bGwg
aW4gI3tzZWxmLmluc3BlY3R9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBvcGVyYW5k
cy5sZW5ndGggPT0gNAotICAgICAgICAgICAgJGFzbS5wdXRzICJzbXVsbCAje29wZXJhbmRzWzJd
LmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzNdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFy
bU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5w
dXRzICIje29wY29kZVswLi4tMl19ICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFu
ZHNbM10uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNb
MV0uYXJtT3BlcmFuZH0iCiAgICAgICAgIHdoZW4gIm1lbWZlbmNlIgogICAgICAgICAgICAgJGFz
bS5wdXRzICJkbWIgc3kiCisgICAgICAgIHdoZW4gImZlbmNlIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJkbWIgaXNoIgogICAgICAgICB3aGVuICJjbHJicCIKICAgICAgICAgICAgICRhc20ucHV0
cyAiYmljICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCiAgICAgICAgIHdoZW4gImdsb2JhbGFkZHIi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlv
bnMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIK
aW5kZXggNTRiMDI3ZjNkYTAxLi43ZTI4MGI3Zjc4YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKQEAgLTU5LDYgKzU5LDcgQEAgTUFD
Uk9fSU5TVFJVQ1RJT05TID0KICAgICAgInJyb3RhdGVxIiwKICAgICAgInN1YmkiLAogICAgICAi
eG9yaSIsCisgICAgICJsb2FkMmlhIiwKICAgICAgImxvYWRpIiwKICAgICAgImxvYWRpcyIsCiAg
ICAgICJsb2FkYiIsCkBAIC02Nyw2ICs2OCw3IEBAIE1BQ1JPX0lOU1RSVUNUSU9OUyA9CiAgICAg
ICJsb2FkaCIsCiAgICAgICJsb2FkaHNpIiwKICAgICAgImxvYWRoc3EiLAorICAgICAic3RvcmUy
aWEiLAogICAgICAic3RvcmVpIiwKICAgICAgInN0b3JlaCIsCiAgICAgICJzdG9yZWIiLApAQCAt
Mzc3LDkgKzM3OSwyMSBAQCBYODZfSU5TVFJVQ1RJT05TID0KIAogQVJNX0lOU1RSVUNUSU9OUyA9
CiAgICAgWworICAgICAiYWRjaSIsCisgICAgICJiY3MiLAogICAgICAiY2xyYnAiLAogICAgICAi
bXZsYmwiLAotICAgICAiZ2xvYmFsYWRkciIKKyAgICAgImdsb2JhbGFkZHIiLAorICAgICAic2Jj
aSIsCisgICAgICJtb3ZlaWkiLAorICAgICAibG9hZGxpbmtiIiwKKyAgICAgImxvYWRsaW5raCIs
CisgICAgICJsb2FkbGlua2kiLAorICAgICAibG9hZGxpbmsyaSIsCisgICAgICJzdG9yZWNvbmRi
IiwKKyAgICAgInN0b3JlY29uZGgiLAorICAgICAic3RvcmVjb25kaSIsCisgICAgICJzdG9yZWNv
bmQyaSIsCiAgICAgXQogCiBBUk02NF9JTlNUUlVDVElPTlMgPQpAQCAtNDMxLDYgKzQ0NSw3IEBA
IEFSTTY0X0lOU1RSVUNUSU9OUyA9CiBSSVNDX0lOU1RSVUNUSU9OUyA9CiAgICAgWwogICAgICAi
c211bGxpIiwgICMgTXVsdGlwbHkgdHdvIDMyLWJpdCB3b3JkcyBhbmQgcHJvZHVjZSBhIDY0LWJp
dCB3b3JkCisgICAgICJ1bXVsbGkiLCAgIyBNdWx0aXBseSB0d28gMzItYml0IHdvcmRzIGFuZCBw
cm9kdWNlIGEgNjQtYml0IHdvcmQKICAgICAgImFkZGlzIiwgICAjIEFkZCBpbnRlZ2VycyBhbmQg
c2V0IGEgZmxhZy4KICAgICAgInN1YmlzIiwgICAjIFNhbWUsIGJ1dCBmb3Igc3VidHJhY3Rpb24u
CiAgICAgICJvcmlzIiwgICAgIyBTYW1lLCBidXQgZm9yIGJpdHdpc2Ugb3IuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIKaW5kZXggMGRjNDRjMjNkZmIy
Li42N2Y1MjcxYTUzNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL3JlZ2lzdGVycy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9y
ZWdpc3RlcnMucmIKQEAgLTU4LDcgKzU4LDggQEAgR1BSUyA9CiAgICAgICJjc3I3IiwKICAgICAg
ImNzcjgiLAogICAgICAiY3NyOSIsCi0gICAgICJjc3IxMCIKKyAgICAgImNzcjEwIiwKKyAgICAg
ImludmFsaWRHUFIiCiAgICAgXQogCiBGUFJTID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9yaXNjLnJiCmluZGV4IDBmMDcyZTlmZDExZS4uMzQ2NDU5NjJmNzQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIKQEAgLTI1OSw4ICsyNTksMTIgQEAgZGVm
IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc0RvdWJsZShsaXN0KQogICAgICAgICAgICAgY2Fz
ZSBub2RlLm9wY29kZQogICAgICAgICAgICAgd2hlbiAibG9hZGQiCiAgICAgICAgICAgICAgICAg
bmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibG9hZGQiLCBbbm9k
ZS5vcGVyYW5kc1swXS5yaXNjRG91YmxlQWRkcmVzcyhuZXdMaXN0KSwgbm9kZS5vcGVyYW5kc1sx
XV0sIG5vZGUuYW5ub3RhdGlvbikKKyAgICAgICAgICAgIHdoZW4gImxvYWRmIgorICAgICAgICAg
ICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImxvYWRm
IiwgW25vZGUub3BlcmFuZHNbMF0ucmlzY0RvdWJsZUFkZHJlc3MobmV3TGlzdCksIG5vZGUub3Bl
cmFuZHNbMV1dLCBub2RlLmFubm90YXRpb24pCiAgICAgICAgICAgICB3aGVuICJzdG9yZWQiCiAg
ICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2lu
LCAic3RvcmVkIiwgW25vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV0ucmlzY0RvdWJs
ZUFkZHJlc3MobmV3TGlzdCldLCBub2RlLmFubm90YXRpb24pCisgICAgICAgICAgICB3aGVuICJz
dG9yZWYiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5j
b2RlT3JpZ2luLCAic3RvcmVmIiwgW25vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV0u
cmlzY0RvdWJsZUFkZHJlc3MobmV3TGlzdCldLCBub2RlLmFubm90YXRpb24pCiAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCiAgICAgICAgICAgICBlbmQK
QEAgLTM2OSw3ICszNzMsNyBAQCBkZWYgcmlzY0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRlcyhsaXN0
LCB2YWxpZEltbWVkaWF0ZXMsIHZhbGlkTG9naWNhbEltbWVkaWF0ZXMpCiAgICAgICAgIGlmIG5v
ZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGFubm90YXRpb24gPSBub2RlLmFubm90
YXRpb24KICAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKLSAgICAgICAgICAgIHdoZW4gIm1v
dmUiCisgICAgICAgICAgICB3aGVuICJtb3ZlIiwgIm1vdmVpaSIKICAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IG5vZGUKICAgICAgICAgICAgIHdoZW4gImFkZGkiLCAiYWRkcCIsICJhZGRxIiwg
ImFkZGlzIiwgInN1YmkiLCAic3VicCIsICJzdWJxIiwgInN1YmlzIgogICAgICAgICAgICAgICAg
IGlmIG5vZGUub3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlIGFuZApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCmluZGV4IDM5MWZkM2E2YTQxYy4uZmUyMTY0ODY3
MzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCkBAIC0x
NjIsOCArMTYyLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgTnVs
bFRhZyA9ICAgICAgICAgMHhmZmZmZmZmZDsKICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90
IFVuZGVmaW5lZFRhZyA9ICAgIDB4ZmZmZmZmZmM7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50
MzJfdCBDZWxsVGFnID0gICAgICAgICAweGZmZmZmZmZiOwotICAgIHN0YXRpYyBjb25zdGV4cHIg
dWludDMyX3QgRW1wdHlWYWx1ZVRhZyA9ICAgMHhmZmZmZmZmYTsKLSAgICBzdGF0aWMgY29uc3Rl
eHByIHVpbnQzMl90IERlbGV0ZWRWYWx1ZVRhZyA9IDB4ZmZmZmZmZjk7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1aW50MzJfdCBXYXNtVGFnID0gICAgICAgICAweGZmZmZmZmZhOworICAgIHN0YXRp
YyBjb25zdGV4cHIgdWludDMyX3QgRW1wdHlWYWx1ZVRhZyA9ICAgMHhmZmZmZmZmOTsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVpbnQzMl90IERlbGV0ZWRWYWx1ZVRhZyA9IDB4ZmZmZmZmZjg7CiAK
ICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IExvd2VzdFRhZyA9ICBEZWxldGVkVmFsdWVU
YWc7CiAjZW5kaWYKQEAgLTE4MCw2ICsxODEsOSBAQCBwdWJsaWM6CiAgICAgZW51bSBFbmNvZGVB
c0JpZ0ludDMyVGFnIHsgRW5jb2RlQXNCaWdJbnQzMiB9OwogI2VuZGlmCiAgICAgZW51bSBFbmNv
ZGVBc0RvdWJsZVRhZyB7IEVuY29kZUFzRG91YmxlIH07CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
KSAmJiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGVudW0gRW5jb2RlQXNVbmJveGVkRmxvYXRUYWcg
eyBFbmNvZGVBc1VuYm94ZWRGbG9hdCB9OworI2VuZGlmCiAKICAgICBKU1ZhbHVlKCk7CiAgICAg
SlNWYWx1ZShKU051bGxUYWcpOwpAQCAtMTkxLDYgKzE5NSw5IEBAIHB1YmxpYzoKICNpZiBVU0Uo
QklHSU5UMzIpCiAgICAgSlNWYWx1ZShFbmNvZGVBc0JpZ0ludDMyVGFnLCBpbnQzMl90KTsKICNl
bmRpZgorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBK
U1ZhbHVlKEVuY29kZUFzVW5ib3hlZEZsb2F0VGFnLCBmbG9hdCk7CisjZW5kaWYKIAogICAgIC8v
IE51bWJlcnMKICAgICBKU1ZhbHVlKEVuY29kZUFzRG91YmxlVGFnLCBkb3VibGUpOwpAQCAtNTkz
LDYgKzYwMCwxMyBAQCBBTFdBWVNfSU5MSU5FIEpTVmFsdWUganNCaWdJbnQzMihpbnQzMl90IGlu
dFZhbHVlKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZB
TFVFMzJfNjQpCitBTFdBWVNfSU5MSU5FIEpTVmFsdWUgd2FzbVVuYm94ZWRGbG9hdChmbG9hdCBm
KQoreworICAgIHJldHVybiBKU1ZhbHVlKEpTVmFsdWU6OkVuY29kZUFzVW5ib3hlZEZsb2F0LCBm
KTsKK30KKyNlbmRpZgorCiBBTFdBWVNfSU5MSU5FIEpTVmFsdWUganNEb3VibGVOdW1iZXIoZG91
YmxlIGQpCiB7CiAgICAgQVNTRVJUKEpTVmFsdWUoSlNWYWx1ZTo6RW5jb2RlQXNEb3VibGUsIGQp
LmlzTnVtYmVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDSlNWYWx1ZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pT
VmFsdWVJbmxpbmVzLmgKaW5kZXggYmEzZWIxMjZlNjg1Li41MWJiYTdlZWQzNjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaApAQCAt
NjIzLDYgKzYyMywxMyBAQCBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShFbmNvZGVBc0JpZ0ludDMy
VGFnLCBpbnQzMl90IHZhbHVlKQogfQogI2VuZGlmIC8vIFVTRShCSUdJTlQzMikKIAorI2lmIEVO
QUJMRShXRUJBU1NFTUJMWSkgJiYgVVNFKEpTVkFMVUUzMl82NCkKK2lubGluZSBKU1ZhbHVlOjpK
U1ZhbHVlKEVuY29kZUFzVW5ib3hlZEZsb2F0VGFnLCBmbG9hdCB2YWx1ZSkKK3sKKyAgICB1LmFz
Qml0cy5wYXlsb2FkID0gYml0d2lzZV9jYXN0PGludDMyX3Q+KHZhbHVlKTsKK30KKyNlbmRpZgor
CiBpbmxpbmUgaW50NjRfdCB0cnlDb252ZXJ0VG9JbnQ1Mihkb3VibGUgbnVtYmVyKQogewogICAg
IGlmIChudW1iZXIgIT0gbnVtYmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21BaXJJUkdlbmVyYXRvci5jcHAKaW5kZXggODljZWNiZDNiODI4Li41MjU1YjhkNzFlMjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9y
LmNwcApAQCAtODQ3LDYgKzg0NywxNSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBGdW5jdGlvbj4KICAgICB2b2lkIGZvckVhY2hMaXZlVmFsdWUoRnVuY3Rpb24pOwogCisgICAg
Ym9vbCB1c2VTaWduYWxpbmdNZW1vcnkoKSBjb25zdAorICAgIHsKKyNpZiBFTkFCTEUoV0VCQVNT
RU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKKyAgICAgICAgcmV0dXJuIG1fbW9kZSA9PSBNZW1vcnlN
b2RlOjpTaWduYWxpbmc7CisjZWxzZQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAg
ICB9CisKICAgICBGdW5jdGlvblBhcnNlcjxBaXJJUkdlbmVyYXRvcj4qIG1fcGFyc2VyIHsgbnVs
bHB0ciB9OwogICAgIGNvbnN0IE1vZHVsZUluZm9ybWF0aW9uJiBtX2luZm87CiAgICAgY29uc3Qg
TWVtb3J5TW9kZSBtX21vZGUgeyBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZyB9OwpAQCAtOTY0
LDcgKzk3Myw3IEBAIEFpcklSR2VuZXJhdG9yOjpBaXJJUkdlbmVyYXRvcihjb25zdCBNb2R1bGVJ
bmZvcm1hdGlvbiYgaW5mbywgQjM6OlByb2NlZHVyZSYgcHJvCiAgICAgaWYgKCFDb250ZXh0Ojp1
c2VGYXN0VExTKCkpCiAgICAgICAgIG1fY29kZS5waW5SZWdpc3RlcihtX3dhc21Db250ZXh0SW5z
dGFuY2VHUFIpOwogCi0gICAgaWYgKG1vZGUgIT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nKSB7Cisg
ICAgaWYgKG1vZGUgPT0gTWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcpIHsKICAgICAgICAgbV9i
b3VuZHNDaGVja2luZ1NpemVHUFIgPSBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lz
dGVyOwogICAgICAgICBtX2NvZGUucGluUmVnaXN0ZXIobV9ib3VuZHNDaGVja2luZ1NpemVHUFIp
OwogICAgIH0KQEAgLTE4MDAsNiArMTgwOSw3IEBAIGlubGluZSBBaXJJUkdlbmVyYXRvcjo6RXhw
cmVzc2lvblR5cGUgQWlySVJHZW5lcmF0b3I6OmVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyCiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdf
TUVNT1JZKQogICAgIGNhc2UgTWVtb3J5TW9kZTo6U2lnbmFsaW5nOiB7CiAgICAgICAgIC8vIFdl
J3ZlIHZpcnR1YWxseSBtYXBwZWQgNEdpQityZWR6b25lIGZvciB0aGlzIG1lbW9yeS4gT25seSB0
aGUgdXNlci1hbGxvY2F0ZWQgcGFnZXMgYXJlIGFkZHJlc3NhYmxlLCBjb250aWd1b3VzbHkgaW4g
cmFuZ2UgWzAsIGN1cnJlbnRdLAogICAgICAgICAvLyBhbmQgZXZlcnl0aGluZyBhYm92ZSBpcyBt
YXBwZWQgUFJPVF9OT05FLiBXZSBkb24ndCBuZWVkIHRvIHBlcmZvcm0gYW55IGV4cGxpY2l0IGJv
dW5kcyBjaGVjayBpbiB0aGUgNEdpQiByYW5nZSBiZWNhdXNlIFdlYkFzc2VtYmx5IHJlZ2lzdGVy
CkBAIC0xODI2LDYgKzE4MzYsNyBAQCBpbmxpbmUgQWlySVJHZW5lcmF0b3I6OkV4cHJlc3Npb25U
eXBlIEFpcklSR2VuZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcgogICAgICAgICB9
CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyNlbmRpZgogICAgIH0KIAogICAgIGFwcGVuZChBZGQ2
NCwgVG1wKG1fbWVtb3J5QmFzZUdQUiksIHJlc3VsdCk7CkBAIC0zNzA5LDcgKzM3MjAsNyBAQCBh
dXRvIEFpcklSR2VuZXJhdG9yOjphZGRDYWxsKHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgsIGNvbnN0
IFR5cGVEZWZpbml0aW9uJiBzaWduYQogICAgICAgICBhdXRvKiBwYXRjaHBvaW50ID0gcGFpci5m
aXJzdDsKICAgICAgICAgYXV0byBleGNlcHRpb25IYW5kbGUgPSBwYWlyLnNlY29uZDsKICAgICAg
ICAgLy8gV2UgbmVlZCB0byBjbG9iYmVyIHRoZSBzaXplIHJlZ2lzdGVyIHNpbmNlIHRoZSBMTElu
dCBhbHdheXMgYm91bmRzIGNoZWNrcwotICAgICAgICBpZiAobV9tb2RlID09IE1lbW9yeU1vZGU6
OlNpZ25hbGluZyB8fCBtX2luZm8ubWVtb3J5LmlzU2hhcmVkKCkpCisgICAgICAgIGlmICh1c2VT
aWduYWxpbmdNZW1vcnkoKSB8fCBtX2luZm8ubWVtb3J5LmlzU2hhcmVkKCkpCiAgICAgICAgICAg
ICBwYXRjaHBvaW50LT5jbG9iYmVyTGF0ZShSZWdpc3RlclNldCB7IFBpbm5lZFJlZ2lzdGVySW5m
bzo6Z2V0KCkuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIgfSk7CiAgICAgICAgIHBhdGNocG9p
bnQtPnNldEdlbmVyYXRvcihbPSwgdGhpc10gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBCMzo6
U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKICAgICAgICAgICAgIEFsbG93TWFj
cm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcAppbmRleCBkNTZlZmY3OGIw
ODYuLmNiMmI3MDlhYjNjMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUIzSVJHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21CM0lSR2VuZXJhdG9yLmNwcApAQCAtNTI2LDYgKzUyNiwxNSBAQCBwcml2YXRlOgogICAgICAg
ICByZXR1cm4gc2V0KGRzdCwgZ2V0KHNyYykpOwogICAgIH0KIAorICAgIGJvb2wgdXNlU2lnbmFs
aW5nTWVtb3J5KCkgY29uc3QKKyAgICB7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElO
R19NRU1PUlkpCisgICAgICAgIHJldHVybiBtX21vZGUgPT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5n
OworI2Vsc2UKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisgICAgfQorCiAgICAgRnVu
Y3Rpb25QYXJzZXI8QjNJUkdlbmVyYXRvcj4qIG1fcGFyc2VyIHsgbnVsbHB0ciB9OwogICAgIGNv
bnN0IE1vZHVsZUluZm9ybWF0aW9uJiBtX2luZm87CiAgICAgY29uc3QgTWVtb3J5TW9kZSBtX21v
ZGUgeyBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZyB9OwpAQCAtNjM5LDcgKzY0OCw3IEBAIEIz
SVJHZW5lcmF0b3I6OkIzSVJHZW5lcmF0b3IoY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mIGluZm8s
IFByb2NlZHVyZSYgcHJvY2VkdXJlCiAgICAgaWYgKCFDb250ZXh0Ojp1c2VGYXN0VExTKCkpCiAg
ICAgICAgIG1fcHJvYy5waW5SZWdpc3RlcihtX3dhc21Db250ZXh0SW5zdGFuY2VHUFIpOwogCi0g
ICAgaWYgKG1vZGUgIT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nKSB7CisgICAgaWYgKG1vZGUgPT0g
TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcpIHsKICAgICAgICAgbV9ib3VuZHNDaGVja2luZ1Np
emVHUFIgPSBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyOwogICAgICAgICBt
X3Byb2MucGluUmVnaXN0ZXIobV9ib3VuZHNDaGVja2luZ1NpemVHUFIpOwogICAgIH0KQEAgLTY1
MSw5ICs2NjAsMTEgQEAgQjNJUkdlbmVyYXRvcjo6QjNJUkdlbmVyYXRvcihjb25zdCBNb2R1bGVJ
bmZvcm1hdGlvbiYgaW5mbywgUHJvY2VkdXJlJiBwcm9jZWR1cmUKICAgICAgICAgICAgIGNhc2Ug
TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmc6CiAgICAgICAgICAgICAgICAgQVNTRVJUX1VOVVNF
RChwaW5uZWRHUFIsIG1fYm91bmRzQ2hlY2tpbmdTaXplR1BSID09IHBpbm5lZEdQUik7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1P
UlkpCiAgICAgICAgICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzoKICAgICAgICAgICAg
ICAgICBBU1NFUlRfVU5VU0VEKHBpbm5lZEdQUiwgSW52YWxpZEdQUlJlZyA9PSBwaW5uZWRHUFIp
OwogICAgICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB0aGlzLT5lbWl0RXhjZXB0aW9uQ2hlY2soaml0LCBFeGNlcHRpb25UeXBlOjpPdXRPZkJv
dW5kc01lbW9yeUFjY2Vzcyk7CiAgICAgICAgIH0pOwpAQCAtOTE1LDkgKzkyNiwxMyBAQCBhdXRv
IEIzSVJHZW5lcmF0b3I6OmFkZEFyZ3VtZW50cyhjb25zdCBUeXBlRGVmaW5pdGlvbiYgc2lnbmF0
dXJlKSAtPiBQYXJ0aWFsUmVzdQogICAgICAgICBCMzo6VHlwZSB0eXBlID0gdG9CM1R5cGUoc2ln
bmF0dXJlLmFzPEZ1bmN0aW9uU2lnbmF0dXJlPigpLT5hcmd1bWVudFR5cGUoaSkpOwogICAgICAg
ICBCMzo6VmFsdWUqIGFyZ3VtZW50OwogICAgICAgICBhdXRvIHJlcCA9IHdhc21DYWxsSW5mby5w
YXJhbXNbaV07Ci0gICAgICAgIGlmIChyZXAuaXNSZWcoKSkgewotICAgICAgICAgICAgYXJndW1l
bnQgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PEIzOjpBcmd1bWVudFJlZ1ZhbHVlPihtX3By
b2MsIE9yaWdpbigpLCByZXAucmVnKCkpOwotICAgICAgICAgICAgaWYgKHR5cGUgPT0gQjM6Oklu
dDMyIHx8IHR5cGUgPT0gQjM6OkZsb2F0KQorICAgICAgICBpZiAocmVwLmlzR1BSKCkpIHsKKyAg
ICAgICAgICAgIGFyZ3VtZW50ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6QXJndW1l
bnRSZWdWYWx1ZT4obV9wcm9jLCBPcmlnaW4oKSwgcmVwLmpzcigpLnBheWxvYWRHUFIoKSk7Cisg
ICAgICAgICAgICBpZiAodHlwZSA9PSBCMzo6SW50MzIpCisgICAgICAgICAgICAgICAgYXJndW1l
bnQgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6VHJ1
bmMsIE9yaWdpbigpLCBhcmd1bWVudCk7CisgICAgICAgIH0gZWxzZSBpZiAocmVwLmlzRlBSKCkp
IHsKKyAgICAgICAgICAgIGFyZ3VtZW50ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6
QXJndW1lbnRSZWdWYWx1ZT4obV9wcm9jLCBPcmlnaW4oKSwgcmVwLmZwcigpKTsKKyAgICAgICAg
ICAgIGlmICh0eXBlID09IEIzOjpGbG9hdCkKICAgICAgICAgICAgICAgICBhcmd1bWVudCA9IG1f
Y3VycmVudEJsb2NrLT5hcHBlbmROZXc8QjM6OlZhbHVlPihtX3Byb2MsIEIzOjpUcnVuYywgT3Jp
Z2luKCksIGFyZ3VtZW50KTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChy
ZXAuaXNTdGFjaygpKTsKQEAgLTE0NDYsNiArMTQ2MSw3IEBAIGlubGluZSBWYWx1ZSogQjNJUkdl
bmVyYXRvcjo6ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoVmFsdWUqIHBvaW50ZXIsIHVpbnQz
Ml90CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdO
QUxJTkdfTUVNT1JZKQogICAgIGNhc2UgTWVtb3J5TW9kZTo6U2lnbmFsaW5nOiB7CiAgICAgICAg
IC8vIFdlJ3ZlIHZpcnR1YWxseSBtYXBwZWQgNEdpQityZWR6b25lIGZvciB0aGlzIG1lbW9yeS4g
T25seSB0aGUgdXNlci1hbGxvY2F0ZWQgcGFnZXMgYXJlIGFkZHJlc3NhYmxlLCBjb250aWd1b3Vz
bHkgaW4gcmFuZ2UgWzAsIGN1cnJlbnRdLAogICAgICAgICAvLyBhbmQgZXZlcnl0aGluZyBhYm92
ZSBpcyBtYXBwZWQgUFJPVF9OT05FLiBXZSBkb24ndCBuZWVkIHRvIHBlcmZvcm0gYW55IGV4cGxp
Y2l0IGJvdW5kcyBjaGVjayBpbiB0aGUgNEdpQiByYW5nZSBiZWNhdXNlIFdlYkFzc2VtYmx5IHJl
Z2lzdGVyCkBAIC0xNDYzLDYgKzE0NzksNyBAQCBpbmxpbmUgVmFsdWUqIEIzSVJHZW5lcmF0b3I6
OmVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKFZhbHVlKiBwb2ludGVyLCB1aW50MzJfdAogICAg
ICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyNlbmRpZgogICAgIH0KIAogICAgIHBvaW50
ZXIgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIFpFeHQzMiwgb3Jp
Z2luKCksIHBvaW50ZXIpOwpAQCAtMTQ5Niw3ICsxNTEzLDcgQEAgaW5saW5lIHVpbnQzMl90IHNp
emVPZkxvYWRPcChMb2FkT3BUeXBlIG9wKQogCiBpbmxpbmUgQjM6OktpbmQgQjNJUkdlbmVyYXRv
cjo6bWVtb3J5S2luZChCMzo6T3Bjb2RlIG1lbW9yeU9wKQogewotICAgIGlmIChtX21vZGUgPT0g
TWVtb3J5TW9kZTo6U2lnbmFsaW5nIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQoKSkKKyAgICBp
ZiAodXNlU2lnbmFsaW5nTWVtb3J5KCkgfHwgbV9pbmZvLm1lbW9yeS5pc1NoYXJlZCgpKQogICAg
ICAgICByZXR1cm4gdHJhcHBpbmcobWVtb3J5T3ApOwogICAgIHJldHVybiBtZW1vcnlPcDsKIH0K
QEAgLTI5ODksNyArMzAwNiw3IEBAIGF1dG8gQjNJUkdlbmVyYXRvcjo6YWRkQ2FsbCh1aW50MzJf
dCBmdW5jdGlvbkluZGV4LCBjb25zdCBUeXBlRGVmaW5pdGlvbiYgc2lnbmF0CiAgICAgICAgICAg
ICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cy5yZWFkc1Bpbm5lZCA9IHRydWU7CiAKICAgICAgICAg
ICAgICAgICAvLyBXZSBuZWVkIHRvIGNsb2JiZXIgdGhlIHNpemUgcmVnaXN0ZXIgc2luY2UgdGhl
IExMSW50IGFsd2F5cyBib3VuZHMgY2hlY2tzCi0gICAgICAgICAgICAgICAgaWYgKG1fbW9kZSA9
PSBNZW1vcnlNb2RlOjpTaWduYWxpbmcgfHwgbV9pbmZvLm1lbW9yeS5pc1NoYXJlZCgpKQorICAg
ICAgICAgICAgICAgIGlmICh1c2VTaWduYWxpbmdNZW1vcnkoKSB8fCBtX2luZm8ubWVtb3J5Lmlz
U2hhcmVkKCkpCiAgICAgICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXJMYXRlKFJl
Z2lzdGVyU2V0IHsgUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKS5ib3VuZHNDaGVja2luZ1NpemVS
ZWdpc3RlciB9KTsKICAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoW3Ro
aXMsIGhhbmRsZSwgdW5saW5rZWRXYXNtVG9XYXNtQ2FsbHMsIGZ1bmN0aW9uSW5kZXhdIChDQ2Fs
bEhlbHBlcnMmIGppdCwgY29uc3QgQjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1z
KSB7CiAgICAgICAgICAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBh
bGxvd1NjcmF0Y2goaml0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21CaW5kaW5nLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5kaW5n
LmNwcAppbmRleCBlZGM3MGJlYTA4YWYuLjMyNzI4OTk0OWFkZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21CaW5kaW5nLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJM
RShXRUJBU1NFTUJMWSkKIAogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkRp
c2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIu
aCIKICNpbmNsdWRlICJXYXNtQ2FsbGluZ0NvbnZlbnRpb24uaCIKICNpbmNsdWRlICJXYXNtSW5z
dGFuY2UuaCIKQEAgLTQxLDE4ICs0MiwyMSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVS
ZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub1dhc20odW5zaQogewog
ICAgIC8vIEZJWE1FOiBDb25zaWRlciB1bmlxdWlmeSB0aGUgc3R1YnMgYmFzZWQgb24gc2lnbmF0
dXJlICsgaW5kZXggdG8gc2VlIGlmIHRoaXMgc2F2ZXMgbWVtb3J5LgogICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQxNTcKLQotICAgIGNvbnN0IFBpbm5l
ZFJlZ2lzdGVySW5mbyYgcGlubmVkUmVncyA9IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCk7CiAg
ICAgSklUIGppdDsKIAogICAgIEdQUlJlZyBzY3JhdGNoID0gd2FzbUNhbGxpbmdDb252ZW50aW9u
KCkucHJvbG9ndWVTY3JhdGNoR1BSc1swXTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIEdQ
UlJlZyBiYXNlTWVtb3J5ID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNo
R1BSc1sxXTsKKyAgICBHUFJSZWcgc2l6ZVJlZ0FzU2NyYXRjaCA9IHdhc21DYWxsaW5nQ29udmVu
dGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMl07CisjZWxzZQorICAgIGNvbnN0IFBpbm5lZFJl
Z2lzdGVySW5mbyYgcGlubmVkUmVncyA9IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCk7CiAgICAg
R1BSUmVnIGJhc2VNZW1vcnkgPSBwaW5uZWRSZWdzLmJhc2VNZW1vcnlQb2ludGVyOwotICAgIEFT
U0VSVChiYXNlTWVtb3J5ICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7Ci0gICAgQVNTRVJUKGJh
c2VNZW1vcnkgIT0gc2NyYXRjaCk7Ci0gICAgQVNTRVJUKHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tp
bmdTaXplUmVnaXN0ZXIgIT0gYmFzZU1lbW9yeSk7Ci0gICAgQVNTRVJUKHBpbm5lZFJlZ3MuYm91
bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIgIT0gc2NyYXRjaCk7CiAgICAgR1BSUmVnIHNpemVSZWdB
c1NjcmF0Y2ggPSBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyOworI2VuZGlm
CisgICAgQVNTRVJUKGJhc2VNZW1vcnkgIT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsKICAgICBB
U1NFUlQoc2l6ZVJlZ0FzU2NyYXRjaCAhPSBHUFJSZWc6OkludmFsaWRHUFJSZWcpOworICAgIEFT
U0VSVChzY3JhdGNoICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7CisgICAgQVNTRVJUKG5vT3Zl
cmxhcChzY3JhdGNoLCBiYXNlTWVtb3J5LCBzaXplUmVnQXNTY3JhdGNoKSk7CiAKICAgICAvLyBC
MydzIGNhbGwgY29kZWdlbiBlbnN1cmVzIHRoYXQgdGhlIEpTQ2VsbCBpcyBhIFdlYkFzc2VtYmx5
RnVuY3Rpb24uCiAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHNpemVSZWdBc1NjcmF0
Y2gpOyAvLyBPbGQgSW5zdGFuY2UqCkBAIC02NSw2ICs2OSw3IEBAIEV4cGVjdGVkPE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvV2Fz
bSh1bnNpCiAgICAgaml0LmxvYWRQdHIoSklUOjpBZGRyZXNzKHNpemVSZWdBc1NjcmF0Y2gsIElu
c3RhbmNlOjpvZmZzZXRPZkNhY2hlZFN0YWNrTGltaXQoKSksIHNpemVSZWdBc1NjcmF0Y2gpOwog
ICAgIGppdC5zdG9yZVB0cihzaXplUmVnQXNTY3JhdGNoLCBKSVQ6OkFkZHJlc3MoYmFzZU1lbW9y
eSwgSW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkU3RhY2tMaW1pdCgpKSk7CiAKKyNpZiAhQ1BVKEFS
TSkgLy8gQVJNIGhhcyBubyBwaW5uZWQgcmVnaXN0ZXJzIGZvciBXYXNtIE1lbW9yeSwgc28gbm8g
bmVlZCB0byBzZXQgdGhlbSB1cAogICAgIC8vIEZJWE1FIHRoZSBmb2xsb3dpbmcgY29kZSBhc3N1
bWVzIHRoYXQgYWxsIFdhc206Okluc3RhbmNlIGhhdmUgdGhlIHNhbWUgcGlubmVkIHJlZ2lzdGVy
cy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjk1MgogICAgIC8v
IFNldCB1cCB0aGUgY2FsbGVlJ3MgYmFzZU1lbW9yeSByZWdpc3RlciBhcyB3ZWxsIGFzIHRoZSBt
ZW1vcnkgc2l6ZSByZWdpc3RlcnMuCiAgICAgewpAQCAtNzIsNiArNzcsNyBAQCBFeHBlY3RlZDxN
YWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdh
c21Ub1dhc20odW5zaQogICAgICAgICBqaXQubG9hZFB0cihKSVQ6OkFkZHJlc3MoYmFzZU1lbW9y
eSwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNlTWVtb3J5KTsg
Ly8gV2FzbTo6TWVtb3J5OjpUYWdnZWRBcnJheVN0b3JhZ2VQdHI8dm9pZD4gKHZvaWQqKS4KICAg
ICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5QW5kVW50YWcoR2lnYWNhZ2U6OlByaW1pdGl2ZSwg
YmFzZU1lbW9yeSwgcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3Rlciwgd2FzbUNh
bGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1sxXSk7CiAgICAgfQorI2VuZGlm
CiAKICAgICAvLyBUYWlsIGNhbGwgaW50byB0aGUgY2FsbGVlIFdlYkFzc2VtYmx5IGZ1bmN0aW9u
LgogICAgIGppdC5sb2FkUHRyKEpJVDo6QWRkcmVzcyhzY3JhdGNoKSwgc2NyYXRjaCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuY3BwCmluZGV4IGEzMjFjNTJmMTVlYy4u
MzIwMmY1NDgwY2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
Q2FsbGVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNw
cApAQCAtMTMxLDYgKzEzMSw4IEBAIFJlZ2lzdGVyQXRPZmZzZXRMaXN0KiBMTEludENhbGxlZTo6
Y2FsbGVlU2F2ZVJlZ2lzdGVycygpCiAgICAgICAgIHJlZ2lzdGVycy5zZXQoR1BSSW5mbzo6cmVn
Q1MyKTsgLy8gUEIKICNlbGlmIENQVShBUk02NCkgfHwgQ1BVKFJJU0NWNjQpCiAgICAgICAgIHJl
Z2lzdGVycy5zZXQoR1BSSW5mbzo6cmVnQ1M3KTsgLy8gUEIKKyNlbGlmIENQVShBUk0pCisgICAg
ICAgIHJlZ2lzdGVycy5zZXQoR1BSSW5mbzo6cmVnQ1MxKTsgLy8gUEIKICNlbHNlCiAjZXJyb3Ig
VW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlLgogI2VuZGlmCkBAIC0xNTgsNiArMTYwLDcgQEAgY29u
c3QgV2FzbUluc3RydWN0aW9uKiBMTEludENhbGxlZTo6b3V0T2ZMaW5lSnVtcFRhcmdldChjb25z
dCBXYXNtSW5zdHJ1Y3Rpb24qIHAKICAgICByZXR1cm4gbV9pbnN0cnVjdGlvbnMtPmF0KG9mZnNl
dCArIHRhcmdldCkucHRyKCk7CiB9CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCiB2
b2lkIE9wdGltaXppbmdKSVRDYWxsZWU6OmxpbmtFeGNlcHRpb25IYW5kbGVycyhWZWN0b3I8VW5s
aW5rZWRIYW5kbGVySW5mbz4gdW5saW5rZWRFeGNlcHRpb25IYW5kbGVycywgVmVjdG9yPENvZGVM
b2NhdGlvbkxhYmVsPEV4Y2VwdGlvbkhhbmRsZXJQdHJUYWc+PiBleGNlcHRpb25IYW5kbGVyTG9j
YXRpb25zKQogewogICAgIHNpemVfdCBjb3VudCA9IHVubGlua2VkRXhjZXB0aW9uSGFuZGxlcnMu
c2l6ZSgpOwpAQCAtMTg0LDcgKzE4Nyw3IEBAIGNvbnN0IFN0YWNrTWFwJiBPcHRpbWl6aW5nSklU
Q2FsbGVlOjpzdGFja21hcChDYWxsU2l0ZUluZGV4IGNhbGxTaXRlSW5kZXgpIGNvbnN0CiAgICAg
UkVMRUFTRV9BU1NFUlQoaXRlciAhPSBtX3N0YWNrbWFwcy5lbmQoKSk7CiAgICAgcmV0dXJuIGl0
ZXItPnZhbHVlOwogfQotCisjZW5kaWYKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZUdyb3VwLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWVHcm91cC5jcHAKaW5kZXgg
MWVhNDVjYTRhNmU5Li41MTlkMjA5NmFkNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21DYWxsZWVHcm91cC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUNhbGxlZUdyb3VwLmNwcApAQCAtMTYwLDE3ICsxNjAsMjEgQEAgdm9pZCBDYWxs
ZWVHcm91cDo6Y29tcGlsZUFzeW5jKENvbnRleHQqIGNvbnRleHQsIEFzeW5jQ29tcGlsYXRpb25D
YWxsYmFjayYmIHRhc2sKIAogYm9vbCBDYWxsZWVHcm91cDo6aXNTYWZlVG9SdW4oTWVtb3J5TW9k
ZSBtZW1vcnlNb2RlKQogeworICAgIFVOVVNFRF9QQVJBTShtZW1vcnlNb2RlKTsKKwogICAgIGlm
ICghcnVubmFibGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgc3dpdGNoIChtX21v
ZGUpIHsKICAgICBjYXNlIFdhc206Ok1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nOgogICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkK
ICAgICBjYXNlIFdhc206Ok1lbW9yeU1vZGU6OlNpZ25hbGluZzoKICAgICAgICAgLy8gQ29kZSBi
ZWluZyBpbiBTaWduYWxpbmcgbW9kZSBtZWFucyB0aGF0IGl0IHBlcmZvcm1zIG5vIGJvdW5kcyBj
aGVja3MuCiAgICAgICAgIC8vIEl0cyBtZW1vcnksIGV2ZW4gaWYgZW1wdHksIGFic29sdXRlbHkg
bXVzdCBhbHNvIGJlIGluIFNpZ25hbGluZyBtb2RlCiAgICAgICAgIC8vIGJlY2F1c2UgdGhlIHBh
Z2UgcHJvdGVjdGlvbiBkZXRlY3RzIG91dC1vZi1ib3VuZHMgYWNjZXNzZXMuCiAgICAgICAgIHJl
dHVybiBtZW1vcnlNb2RlID09IFdhc206Ok1lbW9yeU1vZGU6OlNpZ25hbGluZzsKKyNlbmRpZgog
ICAgIH0KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29u
dmVudGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZl
bnRpb24uY3BwCmluZGV4IDIwM2M4NDNhZThlNi4uZWIwOTA5NTgxODQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5jcHAKQEAg
LTQwLDcgKzQwLDcgQEAgY29uc3QgSlNDYWxsaW5nQ29udmVudGlvbiYganNDYWxsaW5nQ29udmVu
dGlvbigpCiAgICAgICAgIFJlZ2lzdGVyU2V0IGNhbGxlclNhdmVSZWdpc3RlcnMgPSBSZWdpc3Rl
clNldDo6YWxsUmVnaXN0ZXJzKCk7CiAgICAgICAgIGNhbGxlclNhdmVSZWdpc3RlcnMuZXhjbHVk
ZShSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpKTsKIAotICAgICAgICBzdGF0aWNK
U0NhbGxpbmdDb252ZW50aW9uLmNvbnN0cnVjdChWZWN0b3I8UmVnPigpLCBWZWN0b3I8UmVnPigp
LCBSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpLCBXVEZNb3ZlKGNhbGxlclNhdmVS
ZWdpc3RlcnMpKTsKKyAgICAgICAgc3RhdGljSlNDYWxsaW5nQ29udmVudGlvbi5jb25zdHJ1Y3Qo
VmVjdG9yPEpTVmFsdWVSZWdzPigpLCBWZWN0b3I8RlBSUmVnPigpLCBSZWdpc3RlclNldDo6Y2Fs
bGVlU2F2ZVJlZ2lzdGVycygpLCBXVEZNb3ZlKGNhbGxlclNhdmVSZWdpc3RlcnMpKTsKICAgICB9
KTsKIAogICAgIHJldHVybiBzdGF0aWNKU0NhbGxpbmdDb252ZW50aW9uOwpAQCAtNTEsMzEgKzUx
LDUxIEBAIGNvbnN0IFdhc21DYWxsaW5nQ29udmVudGlvbiYgd2FzbUNhbGxpbmdDb252ZW50aW9u
KCkKICAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPFdhc21DYWxsaW5nQ29udmVudGlvbj4g
c3RhdGljV2FzbUNhbGxpbmdDb252ZW50aW9uOwogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBz
dGF0aWNXYXNtQ2FsbGluZ0NvbnZlbnRpb25GbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKHN0YXRp
Y1dhc21DYWxsaW5nQ29udmVudGlvbkZsYWcsIFtdICgpIHsKLSAgICAgICAgVmVjdG9yPFJlZz4g
Z3ByQXJndW1lbnRSZWdpc3RlcnMoR1BSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyk7
Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHUFJJbmZvOjpudW1iZXJPZkFyZ3Vt
ZW50UmVnaXN0ZXJzOyArK2kpCi0gICAgICAgICAgICBncHJBcmd1bWVudFJlZ2lzdGVyc1tpXSA9
IEdQUkluZm86OnRvQXJndW1lbnRSZWdpc3RlcihpKTsKKyNpZiBVU0UoSlNWQUxVRTY0KSAvLyBP
bmUgdmFsdWUgcGVyIEdQUgorICAgICAgICBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1
bWVudEpTUnMgPSBHUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzOworI2VsaWYgVVNF
KEpTVkFMVUUzMl82NCkgLy8gT25lIHZhbHVlIHBlciBjb25zZWN1dGl2ZSBHUFIgcGFpcgorICAg
ICAgICBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudEpTUnMgPSBHUFJJbmZvOjpu
dW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzIC8gMjsKKyNlbmRpZgorICAgICAgICBWZWN0b3I8SlNW
YWx1ZVJlZ3M+IGpzckFyZ3VtZW50UmVnaXN0ZXJzKG51bWJlck9mQXJndW1lbnRKU1JzKTsKKyAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mQXJndW1lbnRKU1JzOyArK2kp
IHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAganNyQXJndW1lbnRSZWdpc3RlcnNb
aV0gPSBKU1ZhbHVlUmVncyB7IEdQUkluZm86OnRvQXJndW1lbnRSZWdpc3RlcihpKSB9OworI2Vs
aWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIGpzckFyZ3VtZW50UmVnaXN0ZXJzW2ld
ID0gSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjp0b0FyZ3VtZW50UmVnaXN0ZXIoMiAqIGkgKyAxKSwg
R1BSSW5mbzo6dG9Bcmd1bWVudFJlZ2lzdGVyKDIgKiBpKSB9OworI2VuZGlmCisgICAgICAgIH0K
IAotICAgICAgICBWZWN0b3I8UmVnPiBmcHJBcmd1bWVudFJlZ2lzdGVycyhGUFJJbmZvOjpudW1i
ZXJPZkFyZ3VtZW50UmVnaXN0ZXJzKTsKKyAgICAgICAgVmVjdG9yPEZQUlJlZz4gZnByQXJndW1l
bnRSZWdpc3RlcnMoRlBSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyk7CiAgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBGUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0
ZXJzOyArK2kpCiAgICAgICAgICAgICBmcHJBcmd1bWVudFJlZ2lzdGVyc1tpXSA9IEZQUkluZm86
OnRvQXJndW1lbnRSZWdpc3RlcihpKTsKIAogICAgICAgICBSZWdpc3RlclNldCBzY3JhdGNoID0g
UmVnaXN0ZXJTZXQ6OmFsbEdQUnMoKTsKLSAgICAgICAgc2NyYXRjaC5leGNsdWRlKFJlZ2lzdGVy
U2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCkpOworICAgICAgICBzY3JhdGNoLmV4Y2x1ZGUoUmVn
aXN0ZXJTZXQ6OnZtQ2FsbGVlU2F2ZVJlZ2lzdGVycygpKTsKICAgICAgICAgc2NyYXRjaC5leGNs
dWRlKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7CiAgICAgICAgIHNjcmF0
Y2guZXhjbHVkZShSZWdpc3RlclNldDo6cmVzZXJ2ZWRIYXJkd2FyZVJlZ2lzdGVycygpKTsKICAg
ICAgICAgc2NyYXRjaC5leGNsdWRlKFJlZ2lzdGVyU2V0OjpzdGFja1JlZ2lzdGVycygpKTsKLSAg
ICAgICAgZm9yIChSZWcgcmVnIDogZ3ByQXJndW1lbnRSZWdpc3RlcnMpCi0gICAgICAgICAgICBz
Y3JhdGNoLmNsZWFyKHJlZyk7CisgICAgICAgIGZvciAoSlNWYWx1ZVJlZ3MganNyIDoganNyQXJn
dW1lbnRSZWdpc3RlcnMpIHsKKyAgICAgICAgICAgIHNjcmF0Y2guY2xlYXIoanNyLnBheWxvYWRH
UFIoKSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIHNjcmF0Y2guY2xlYXIo
anNyLnRhZ0dQUigpKTsKKyNlbmRpZgorICAgICAgICB9CiAKICAgICAgICAgVmVjdG9yPEdQUlJl
Zz4gc2NyYXRjaEdQUnM7CiAgICAgICAgIGZvciAoUmVnIHJlZyA6IHNjcmF0Y2gpCiAgICAgICAg
ICAgICBzY3JhdGNoR1BScy5hcHBlbmQocmVnLmdwcigpKTsKKworICAgICAgICAvLyBOZWVkIGF0
IGxlYXN0IG9uZSBKU1ZhbHVlIGFuZCBhbiBhZGRpdGlvbmFsIEdQUgorI2lmIFVTRShKU1ZBTFVF
NjQpCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHNjcmF0Y2hHUFJzLnNpemUoKSA+PSAyKTsKKyNl
bGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKHNjcmF0Y2hHUFJz
LnNpemUoKSA+PSAzKTsKKyNlbmRpZgogCiAgICAgICAgIFJlZ2lzdGVyU2V0IGNhbGxlclNhdmVS
ZWdpc3RlcnMgPSBSZWdpc3RlclNldDo6YWxsUmVnaXN0ZXJzKCk7CiAgICAgICAgIGNhbGxlclNh
dmVSZWdpc3RlcnMuZXhjbHVkZShSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpKTsK
IAotICAgICAgICBzdGF0aWNXYXNtQ2FsbGluZ0NvbnZlbnRpb24uY29uc3RydWN0KFdURk1vdmUo
Z3ByQXJndW1lbnRSZWdpc3RlcnMpLCBXVEZNb3ZlKGZwckFyZ3VtZW50UmVnaXN0ZXJzKSwgV1RG
TW92ZShzY3JhdGNoR1BScyksIFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCksIFdU
Rk1vdmUoY2FsbGVyU2F2ZVJlZ2lzdGVycykpOworICAgICAgICBzdGF0aWNXYXNtQ2FsbGluZ0Nv
bnZlbnRpb24uY29uc3RydWN0KFdURk1vdmUoanNyQXJndW1lbnRSZWdpc3RlcnMpLCBXVEZNb3Zl
KGZwckFyZ3VtZW50UmVnaXN0ZXJzKSwgV1RGTW92ZShzY3JhdGNoR1BScyksIFJlZ2lzdGVyU2V0
OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCksIFdURk1vdmUoY2FsbGVyU2F2ZVJlZ2lzdGVycykpOwog
ICAgIH0pOwogCiAgICAgcmV0dXJuIHN0YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKaW5k
ZXggN2YxZTYwOTkxMmY0Li4zMTAyNTA4ZTBhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oCkBAIC01Nyw4ICs1NywxMyBAQCBz
dHJ1Y3QgQ2FsbEluZm9ybWF0aW9uIHsKICAgICB7CiAgICAgICAgIFJlZ2lzdGVyU2V0IHVzZWRS
ZXN1bHRSZWdpc3RlcnM7CiAgICAgICAgIGZvciAoVmFsdWVMb2NhdGlvbiBsb2MgOiByZXN1bHRz
KSB7Ci0gICAgICAgICAgICBpZiAobG9jLmlzUmVnKCkpCi0gICAgICAgICAgICAgICAgdXNlZFJl
c3VsdFJlZ2lzdGVycy5zZXQobG9jLnJlZygpKTsKKyAgICAgICAgICAgIGlmIChsb2MuaXNHUFIo
KSkgeworICAgICAgICAgICAgICAgIHVzZWRSZXN1bHRSZWdpc3RlcnMuc2V0KGxvYy5qc3IoKS5w
YXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgdXNl
ZFJlc3VsdFJlZ2lzdGVycy5zZXQobG9jLmpzcigpLnRhZ0dQUigpKTsKKyNlbmRpZgorICAgICAg
ICAgICAgfSBlbHNlIGlmIChsb2MuaXNGUFIoKSkKKyAgICAgICAgICAgICAgICB1c2VkUmVzdWx0
UmVnaXN0ZXJzLnNldChsb2MuZnByKCkpOwogICAgICAgICB9CiAKICAgICAgICAgUmVnaXN0ZXJB
dE9mZnNldExpc3Qgc2F2ZWRSZWdzKHVzZWRSZXN1bHRSZWdpc3RlcnMsIFJlZ2lzdGVyQXRPZmZz
ZXRMaXN0OjpaZXJvQmFzZWQpOwpAQCAtNzcsOCArODIsOCBAQCBjbGFzcyBXYXNtQ2FsbGluZ0Nv
bnZlbnRpb24gewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgaGVhZGVy
U2l6ZUluQnl0ZXMgPSBDYWxsRnJhbWU6OmhlYWRlclNpemVJblJlZ2lzdGVycyAqIHNpemVvZihS
ZWdpc3Rlcik7CiAKLSAgICBXYXNtQ2FsbGluZ0NvbnZlbnRpb24oVmVjdG9yPFJlZz4mJiBncHJz
LCBWZWN0b3I8UmVnPiYmIGZwcnMsIFZlY3RvcjxHUFJSZWc+JiYgc2NyYXRjaGVzLCBSZWdpc3Rl
clNldCYmIGNhbGxlZVNhdmVzLCBSZWdpc3RlclNldCYmIGNhbGxlclNhdmVzKQotICAgICAgICA6
IGdwckFyZ3MoV1RGTW92ZShncHJzKSkKKyAgICBXYXNtQ2FsbGluZ0NvbnZlbnRpb24oVmVjdG9y
PEpTVmFsdWVSZWdzPiYmIGpzcnMsIFZlY3RvcjxGUFJSZWc+JiYgZnBycywgVmVjdG9yPEdQUlJl
Zz4mJiBzY3JhdGNoZXMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVlU2F2ZXMsIFJlZ2lzdGVyU2V0JiYg
Y2FsbGVyU2F2ZXMpCisgICAgICAgIDoganNyQXJncyhXVEZNb3ZlKGpzcnMpKQogICAgICAgICAs
IGZwckFyZ3MoV1RGTW92ZShmcHJzKSkKICAgICAgICAgLCBwcm9sb2d1ZVNjcmF0Y2hHUFJzKFdU
Rk1vdmUoc2NyYXRjaGVzKSkKICAgICAgICAgLCBjYWxsZWVTYXZlUmVnaXN0ZXJzKFdURk1vdmUo
Y2FsbGVlU2F2ZXMpKQpAQCAtODgsMTAgKzkzLDExIEBAIHB1YmxpYzoKICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShXYXNtQ2FsbGluZ0NvbnZlbnRpb24pOwogCiBwcml2YXRlOgotICAgIEFyZ3Vt
ZW50TG9jYXRpb24gbWFyc2hhbGxMb2NhdGlvbkltcGwoQ2FsbFJvbGUgcm9sZSwgY29uc3QgVmVj
dG9yPFJlZz4mIHJlZ0FyZ3MsIHNpemVfdCYgY291bnQsIHNpemVfdCYgc3RhY2tPZmZzZXQpIGNv
bnN0CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUmVnVHlwZT4KKyAgICBBcmd1bWVudExvY2F0aW9u
IG1hcnNoYWxsTG9jYXRpb25JbXBsKENhbGxSb2xlIHJvbGUsIGNvbnN0IFZlY3RvcjxSZWdUeXBl
PiYgcmVnQXJncywgc2l6ZV90JiBjb3VudCwgc2l6ZV90JiBzdGFja09mZnNldCkgY29uc3QKICAg
ICB7CiAgICAgICAgIGlmIChjb3VudCA8IHJlZ0FyZ3Muc2l6ZSgpKQotICAgICAgICAgICAgcmV0
dXJuIEFyZ3VtZW50TG9jYXRpb246OnJlZyhyZWdBcmdzW2NvdW50KytdKTsKKyAgICAgICAgICAg
IHJldHVybiBBcmd1bWVudExvY2F0aW9uIHsgcmVnQXJnc1tjb3VudCsrXSB9OwogCiAgICAgICAg
IGNvdW50Kys7CiAgICAgICAgIEFyZ3VtZW50TG9jYXRpb24gcmVzdWx0ID0gcm9sZSA9PSBDYWxs
Um9sZTo6Q2FsbGVyID8gQXJndW1lbnRMb2NhdGlvbjo6c3RhY2tBcmd1bWVudChzdGFja09mZnNl
dCkgOiBBcmd1bWVudExvY2F0aW9uOjpzdGFjayhzdGFja09mZnNldCk7CkBAIC0xMTAsNyArMTE2
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgogICAgICAgICBjYXNl
IFR5cGVLaW5kOjpSZWZOdWxsOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpSdHQ6Ci0gICAgICAg
ICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwgZ3ByQXJncywgZ3BBcmd1bWVu
dENvdW50LCBzdGFja09mZnNldCk7CisgICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlv
bkltcGwocm9sZSwganNyQXJncywgZ3BBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CiAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OgogICAg
ICAgICAgICAgcmV0dXJuIG1hcnNoYWxsTG9jYXRpb25JbXBsKHJvbGUsIGZwckFyZ3MsIGZwQXJn
dW1lbnRDb3VudCwgc3RhY2tPZmZzZXQpOwpAQCAtMTU1LDggKzE2MSw4IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICBjb25zdCBWZWN0b3I8UmVnPiBncHJB
cmdzOwotICAgIGNvbnN0IFZlY3RvcjxSZWc+IGZwckFyZ3M7CisgICAgY29uc3QgVmVjdG9yPEpT
VmFsdWVSZWdzPiBqc3JBcmdzOworICAgIGNvbnN0IFZlY3RvcjxGUFJSZWc+IGZwckFyZ3M7CiAg
ICAgY29uc3QgVmVjdG9yPEdQUlJlZz4gcHJvbG9ndWVTY3JhdGNoR1BSczsKICAgICBjb25zdCBS
ZWdpc3RlclNldCBjYWxsZWVTYXZlUmVnaXN0ZXJzOwogICAgIGNvbnN0IFJlZ2lzdGVyU2V0IGNh
bGxlclNhdmVSZWdpc3RlcnM7CkBAIC0xNzEsOCArMTc3LDggQEAgcHVibGljOgogICAgIC8vIFdh
c206OkNvbnRleHQqJ3MgaW5zdGFuY2UuCiAgICAgc3RhdGljIGNvbnN0ZXhwciBwdHJkaWZmX3Qg
aW5zdGFuY2VTdGFja09mZnNldCA9IENhbGxGcmFtZVNsb3Q6OnRoaXNBcmd1bWVudCAqIHNpemVv
ZihFbmNvZGVkSlNWYWx1ZSk7CiAKLSAgICBKU0NhbGxpbmdDb252ZW50aW9uKFZlY3RvcjxSZWc+
JiYgZ3BycywgVmVjdG9yPFJlZz4mJiBmcHJzLCBSZWdpc3RlclNldCYmIGNhbGxlZVNhdmVzLCBS
ZWdpc3RlclNldCYmIGNhbGxlclNhdmVzKQotICAgICAgICA6IGdwckFyZ3MoV1RGTW92ZShncHJz
KSkKKyAgICBKU0NhbGxpbmdDb252ZW50aW9uKFZlY3RvcjxKU1ZhbHVlUmVncz4mJiBncHJzLCBW
ZWN0b3I8RlBSUmVnPiYmIGZwcnMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVlU2F2ZXMsIFJlZ2lzdGVy
U2V0JiYgY2FsbGVyU2F2ZXMpCisgICAgICAgIDoganNyQXJncyhXVEZNb3ZlKGdwcnMpKQogICAg
ICAgICAsIGZwckFyZ3MoV1RGTW92ZShmcHJzKSkKICAgICAgICAgLCBjYWxsZWVTYXZlUmVnaXN0
ZXJzKFdURk1vdmUoY2FsbGVlU2F2ZXMpKQogICAgICAgICAsIGNhbGxlclNhdmVSZWdpc3RlcnMo
V1RGTW92ZShjYWxsZXJTYXZlcykpCkBAIC0xODAsMTAgKzE4NiwxMSBAQCBwdWJsaWM6CiAKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShKU0NhbGxpbmdDb252ZW50aW9uKTsKIHByaXZhdGU6Ci0g
ICAgQXJndW1lbnRMb2NhdGlvbiBtYXJzaGFsbExvY2F0aW9uSW1wbChDYWxsUm9sZSByb2xlLCBj
b25zdCBWZWN0b3I8UmVnPiYgcmVnQXJncywgc2l6ZV90JiBjb3VudCwgc2l6ZV90JiBzdGFja09m
ZnNldCkgY29uc3QKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgUmVnVHlwZT4KKyAgICBBcmd1bWVu
dExvY2F0aW9uIG1hcnNoYWxsTG9jYXRpb25JbXBsKENhbGxSb2xlIHJvbGUsIGNvbnN0IFZlY3Rv
cjxSZWdUeXBlPiYgcmVnQXJncywgc2l6ZV90JiBjb3VudCwgc2l6ZV90JiBzdGFja09mZnNldCkg
Y29uc3QKICAgICB7CiAgICAgICAgIGlmIChjb3VudCA8IHJlZ0FyZ3Muc2l6ZSgpKQotICAgICAg
ICAgICAgcmV0dXJuIEFyZ3VtZW50TG9jYXRpb246OnJlZyhyZWdBcmdzW2NvdW50KytdKTsKKyAg
ICAgICAgICAgIHJldHVybiBBcmd1bWVudExvY2F0aW9uIHsgcmVnQXJnc1tjb3VudCsrXSB9Owog
CiAgICAgICAgIGNvdW50Kys7CiAgICAgICAgIEFyZ3VtZW50TG9jYXRpb24gcmVzdWx0ID0gcm9s
ZSA9PSBDYWxsUm9sZTo6Q2FsbGVyID8gQXJndW1lbnRMb2NhdGlvbjo6c3RhY2tBcmd1bWVudChz
dGFja09mZnNldCkgOiBBcmd1bWVudExvY2F0aW9uOjpzdGFjayhzdGFja09mZnNldCk7CkBAIC0y
MDEsNyArMjA4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVm
OgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJl
Zk51bGw6Ci0gICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwgZ3By
QXJncywgZ3BBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CisgICAgICAgICAgICByZXR1cm4g
bWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwganNyQXJncywgZ3BBcmd1bWVudENvdW50LCBzdGFj
a09mZnNldCk7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKICAgICAgICAgY2FzZSBUeXBl
S2luZDo6RjY0OgogICAgICAgICAgICAgcmV0dXJuIG1hcnNoYWxsTG9jYXRpb25JbXBsKHJvbGUs
IGZwckFyZ3MsIGZwQXJndW1lbnRDb3VudCwgc3RhY2tPZmZzZXQpOwpAQCAtMjI0LDEyICsyMzEs
MTIgQEAgcHVibGljOgogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpZ25hdHVyZS5h
czxGdW5jdGlvblNpZ25hdHVyZT4oKS0+YXJndW1lbnRDb3VudCgpOyArK2kpCiAgICAgICAgICAg
ICBwYXJhbXMuYXBwZW5kKG1hcnNoYWxsTG9jYXRpb24ocm9sZSwgc2lnbmF0dXJlLmFzPEZ1bmN0
aW9uU2lnbmF0dXJlPigpLT5hcmd1bWVudFR5cGUoaSksIGdwQXJndW1lbnRDb3VudCwgZnBBcmd1
bWVudENvdW50LCBzdGFja09mZnNldCkpOwogCi0gICAgICAgIFZlY3RvcjxBcmd1bWVudExvY2F0
aW9uLCAxPiByZXN1bHRzIHsgQXJndW1lbnRMb2NhdGlvbjo6cmVnKEdQUkluZm86OnJldHVyblZh
bHVlR1BSKSB9OworICAgICAgICBWZWN0b3I8QXJndW1lbnRMb2NhdGlvbiwgMT4gcmVzdWx0cyB7
IEFyZ3VtZW50TG9jYXRpb24geyBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiB9IH07CiAgICAgICAg
IHJldHVybiBDYWxsSW5mb3JtYXRpb24oV1RGTW92ZShwYXJhbXMpLCBXVEZNb3ZlKHJlc3VsdHMp
LCBzdGFja09mZnNldCk7CiAgICAgfQogCi0gICAgY29uc3QgVmVjdG9yPFJlZz4gZ3ByQXJnczsK
LSAgICBjb25zdCBWZWN0b3I8UmVnPiBmcHJBcmdzOworICAgIGNvbnN0IFZlY3RvcjxKU1ZhbHVl
UmVncz4ganNyQXJnczsKKyAgICBjb25zdCBWZWN0b3I8RlBSUmVnPiBmcHJBcmdzOwogICAgIGNv
bnN0IFJlZ2lzdGVyU2V0IGNhbGxlZVNhdmVSZWdpc3RlcnM7CiAgICAgY29uc3QgUmVnaXN0ZXJT
ZXQgY2FsbGVyU2F2ZVJlZ2lzdGVyczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtRm9ybWF0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
Rm9ybWF0LmgKaW5kZXggOWJlYTQ0ODY0NzgwLi5hOGRhMTIwMDQxYWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKQEAgLTQ0Miw3ICs0NDIsOSBAQCBzdHJ1Y3QgRW50
cnlwb2ludCB7CiBzdHJ1Y3QgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgV1RGX01BS0VfU1RSVUNU
X0ZBU1RfQUxMT0NBVEVEOwogICAgIFZlY3RvcjxDb2RlTG9jYXRpb25EYXRhTGFiZWxQdHI8V2Fz
bUVudHJ5UHRyVGFnPj4gY2FsbGVlTW92ZUxvY2F0aW9uczsKKyNpZiBFTkFCTEUoV0VCQVNTRU1C
TFlfQjNKSVQpCiAgICAgU3RhY2tNYXBzIHN0YWNrbWFwczsKKyNlbmRpZgogICAgIFZlY3RvcjxV
bmxpbmtlZEhhbmRsZXJJbmZvPiBleGNlcHRpb25IYW5kbGVyczsKICAgICBFbnRyeXBvaW50IGVu
dHJ5cG9pbnQ7CiAgICAgdW5zaWduZWQgb3NyRW50cnlTY3JhdGNoQnVmZmVyU2l6ZSB7IDAgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwCmluZGV4
IDQxMjBhZTZhOTQ5NC4uZmIyMWM5MmJmODFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21JbmRleE9yTmFtZS5jcHAKQEAgLTMwLDE2ICszMCwyMyBAQCBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIFdhc20gewogCiBJbmRleE9yTmFtZTo6SW5kZXhPck5hbWUoSW5kZXgg
aW5kZXgsIHN0ZDo6cGFpcjxjb25zdCBOYW1lKiwgUmVmUHRyPE5hbWVTZWN0aW9uPj4mJiBuYW1l
KQogeworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgc3RhdGljX2Fzc2VydChzaXplb2YobV9pbmRl
eE5hbWUuaW5kZXgpID09IHNpemVvZihtX2luZGV4TmFtZS5uYW1lKSwgImJpdC10YWdnaW5nIGRl
cGVuZHMgb24gc2l6ZXMgYmVpbmcgZXF1YWwiKTsKLQotICAgIGlmICgoaW5kZXggJiBhbGxUYWdz
KSB8fCAoYml0d2lzZV9jYXN0PEluZGV4PihuYW1lLmZpcnN0KSAmIGFsbFRhZ3MpKQotICAgICAg
ICAqdGhpcyA9IEluZGV4T3JOYW1lKCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGlmIChuYW1lLmZp
cnN0KQotICAgICAgICAgICAgbV9pbmRleE5hbWUubmFtZSA9IG5hbWUuZmlyc3Q7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIG1faW5kZXhOYW1lLmluZGV4ID0gaW5kZXhUYWcgfCBpbmRleDsK
KyAgICBBU1NFUlQoIShpbmRleCAmIGFsbFRhZ3MpKTsKKyAgICBBU1NFUlQoIShiaXR3aXNlX2Nh
c3Q8SW5kZXg+KG5hbWUuZmlyc3QpICYgYWxsVGFncykpOworICAgIGlmIChuYW1lLmZpcnN0KQor
ICAgICAgICBtX2luZGV4TmFtZS5uYW1lID0gbmFtZS5maXJzdDsKKyAgICBlbHNlCisgICAgICAg
IG1faW5kZXhOYW1lLmluZGV4ID0gaW5kZXhUYWcgfCBpbmRleDsKKyNlbGlmIFVTRShKU1ZBTFVF
MzJfNjQpCisgICAgaWYgKG5hbWUuZmlyc3QpIHsKKyAgICAgICAgbV9pbmRleE5hbWUubmFtZSA9
IG5hbWUuZmlyc3Q7CisgICAgICAgIG1fa2luZCA9IEtpbmQ6Ok5hbWU7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgbV9pbmRleE5hbWUuaW5kZXggPSBpbmRleDsKKyAgICAgICAgbV9raW5kID0gS2lu
ZDo6SW5kZXg7CiAgICAgfQorI2VuZGlmCiAgICAgbV9uYW1lU2VjdGlvbiA9IFdURk1vdmUobmFt
ZS5zZWNvbmQpOwogfQogCkBAIC00OSw4ICs1Niw4IEBAIFN0cmluZyBtYWtlU3RyaW5nKGNvbnN0
IEluZGV4T3JOYW1lJiBpb24pCiAgICAgICAgIHJldHVybiAid2FzbS1zdHViIl9zOwogICAgIGNv
bnN0IFN0cmluZyBtb2R1bGVOYW1lID0gaW9uLm5hbWVTZWN0aW9uKCktPm1vZHVsZU5hbWUuc2l6
ZSgpID8gU3RyaW5nKGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1bGVOYW1lLmRhdGEoKSwgaW9uLm5h
bWVTZWN0aW9uKCktPm1vZHVsZU5hbWUuc2l6ZSgpKSA6IFN0cmluZyhpb24ubmFtZVNlY3Rpb24o
KS0+bW9kdWxlSGFzaC5kYXRhKCksIGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1bGVIYXNoLnNpemUo
KSk7CiAgICAgaWYgKGlvbi5pc0luZGV4KCkpCi0gICAgICAgIHJldHVybiBtYWtlU3RyaW5nKG1v
ZHVsZU5hbWUsICIud2FzbS1mdW5jdGlvblsiLCBTdHJpbmc6Om51bWJlcihpb24ubV9pbmRleE5h
bWUuaW5kZXggJiB+SW5kZXhPck5hbWU6OmluZGV4VGFnKSwgJ10nKTsKLSAgICByZXR1cm4gbWFr
ZVN0cmluZyhtb2R1bGVOYW1lLCAiLndhc20tZnVuY3Rpb25bIiwgU3RyaW5nKGlvbi5tX2luZGV4
TmFtZS5uYW1lLT5kYXRhKCksIGlvbi5tX2luZGV4TmFtZS5uYW1lLT5zaXplKCkpLCAnXScpOwor
ICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhtb2R1bGVOYW1lLCAiLndhc20tZnVuY3Rpb25bIiwg
U3RyaW5nOjpudW1iZXIoaW9uLmluZGV4KCkpLCAnXScpOworICAgIHJldHVybiBtYWtlU3RyaW5n
KG1vZHVsZU5hbWUsICIud2FzbS1mdW5jdGlvblsiLCBTdHJpbmcoaW9uLm5hbWUoKS0+ZGF0YSgp
LCBpb24ubmFtZSgpLT5zaXplKCkpLCAnXScpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JO
YW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaAppbmRl
eCA1ZWVlZmM4OGFmNzYuLjJkOTAzMDExOGY4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUluZGV4T3JOYW1lLmgKQEAgLTQwLDE0ICs0MCw2NyBAQCBzdHJ1Y3QgTmFtZVNl
Y3Rpb247CiBzdHJ1Y3QgSW5kZXhPck5hbWUgewogICAgIHR5cGVkZWYgc2l6ZV90IEluZGV4Owog
Ci0gICAgSW5kZXhPck5hbWUoKSB7IG1faW5kZXhOYW1lLmluZGV4ID0gZW1wdHlUYWc7IH0KLSAg
ICBJbmRleE9yTmFtZShJbmRleCwgc3RkOjpwYWlyPGNvbnN0IE5hbWUqLCBSZWZQdHI8TmFtZVNl
Y3Rpb24+PiYmKTsKLSAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBiaXR3aXNlX2Nh
c3Q8SW5kZXg+KG1faW5kZXhOYW1lKSAmIGVtcHR5VGFnOyB9Ci0gICAgYm9vbCBpc0luZGV4KCkg
Y29uc3QgeyByZXR1cm4gYml0d2lzZV9jYXN0PEluZGV4PihtX2luZGV4TmFtZSkgJiBpbmRleFRh
ZzsgfQotICAgIGJvb2wgaXNOYW1lKCkgY29uc3QgeyByZXR1cm4gIShpc0VtcHR5KCkgfHwgaXNO
YW1lKCkpOyB9Ci0gICAgTmFtZVNlY3Rpb24qIG5hbWVTZWN0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9uYW1lU2VjdGlvbi5nZXQoKTsgfQorcHJpdmF0ZToKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQor
ICAgIGVudW0gY2xhc3MgS2luZCA6IHVpbnQ4X3QgeworICAgICAgICBFbXB0eSwKKyAgICAgICAg
SW5kZXgsCisgICAgICAgIE5hbWUKKyAgICB9OworI2VuZGlmCitwdWJsaWM6CiAKLSAgICBmcmll
bmQgU3RyaW5nIG1ha2VTdHJpbmcoY29uc3QgSW5kZXhPck5hbWUmKTsKKyAgICBJbmRleE9yTmFt
ZSgpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIG1faW5kZXhOYW1lLmluZGV4
ID0gZW1wdHlUYWc7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBtX2tpbmQgPSBL
aW5kOjpFbXB0eTsKKyNlbmRpZgorICAgIH0KKworICAgIEluZGV4T3JOYW1lKEluZGV4LCBzdGQ6
OnBhaXI8Y29uc3QgTmFtZSosIFJlZlB0cjxOYW1lU2VjdGlvbj4+JiYpOworCisgICAgYm9vbCBp
c0VtcHR5KCkgY29uc3QKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgcmV0dXJu
IGJpdHdpc2VfY2FzdDxJbmRleD4obV9pbmRleE5hbWUpICYgZW1wdHlUYWc7CisjZWxpZiBVU0Uo
SlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4gbV9raW5kID09IEtpbmQ6OkVtcHR5OworI2Vu
ZGlmCisgICAgfQorCisgICAgYm9vbCBpc0luZGV4KCkgY29uc3QKKyAgICB7CisjaWYgVVNFKEpT
VkFMVUU2NCkKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxJbmRleD4obV9pbmRleE5hbWUp
ICYgaW5kZXhUYWc7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4gbV9r
aW5kID09IEtpbmQ6OkluZGV4OworI2VuZGlmCisgICAgfQorCisgICAgYm9vbCBpc05hbWUoKSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuICEoaXNFbXB0eSgpIHx8IGlzSW5kZXgoKSk7Cisg
ICAgfQorCisgICAgSW5kZXggaW5kZXgoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlz
SW5kZXgoKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgcmV0dXJuIG1faW5kZXhOYW1l
LmluZGV4ICYgfmluZGV4VGFnOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgcmV0
dXJuIG1faW5kZXhOYW1lLmluZGV4OworI2VuZGlmCisgICAgfQorCisgICAgY29uc3QgTmFtZSog
bmFtZSgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNOYW1lKCkpOworICAgICAgICBy
ZXR1cm4gbV9pbmRleE5hbWUubmFtZTsKKyAgICB9CisKKyAgICBOYW1lU2VjdGlvbiogbmFtZVNl
Y3Rpb24oKSBjb25zdCB7IHJldHVybiBtX25hbWVTZWN0aW9uLmdldCgpOyB9CiAKIHByaXZhdGU6
CiAgICAgdW5pb24gewpAQCAtNTYsMTAgKzEwOSwxNSBAQCBwcml2YXRlOgogICAgIH0gbV9pbmRl
eE5hbWU7CiAgICAgUmVmUHRyPE5hbWVTZWN0aW9uPiBtX25hbWVTZWN0aW9uOwogCisjaWYgVVNF
KEpTVkFMVUU2NCkKICAgICAvLyBVc2UgdGhlIHRvcCBiaXRzIGFzIHRhZ3MuIE5laXRoZXIgcG9p
bnRlcnMgbm9yIHRoZSBmdW5jdGlvbiBpbmRleCBzcGFjZSBzaG91bGQgdXNlIHRoZW0uCiAgICAg
c3RhdGljIGNvbnN0ZXhwciBJbmRleCBpbmRleFRhZyA9IDF1bGwgPDwgKENIQVJfQklUICogc2l6
ZW9mKEluZGV4KSAtIDEpOwogICAgIHN0YXRpYyBjb25zdGV4cHIgSW5kZXggZW1wdHlUYWcgPSAx
dWxsIDw8IChDSEFSX0JJVCAqIHNpemVvZihJbmRleCkgLSAyKTsKICAgICBzdGF0aWMgY29uc3Rl
eHByIEluZGV4IGFsbFRhZ3MgPSBpbmRleFRhZyB8IGVtcHR5VGFnOworI2VsaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAvLyBVc2UgYW4gZXhwbGljaXQgdGFnIGFzIHBvaW50ZXJzIG1pZ2h0IGhh
dmUgaGlnaCBiaXRzIHNldAorICAgIEtpbmQgbV9raW5kOworI2VuZGlmCiB9OwogCiBTdHJpbmcg
bWFrZVN0cmluZyhjb25zdCBJbmRleE9yTmFtZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtSW5zdGFuY2UuaAppbmRleCBlNmRiM2EzYTA4YzQuLmJhZjI4Yzk3ZmUyMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmgKQEAgLTEwNiw4ICsxMDYsMjIg
QEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlQ2FjaGVkTWVtb3J5KCkKICAgICB7CiAgICAgICAg
IGlmIChtX21lbW9yeSAhPSBudWxscHRyKSB7Ci0gICAgICAgICAgICBtX2NhY2hlZE1lbW9yeSA9
IENhZ2VkUHRyPEdpZ2FjYWdlOjpQcmltaXRpdmUsIHZvaWQsIHRhZ0NhZ2VkUHRyPihtZW1vcnko
KS0+bWVtb3J5KCksIG1lbW9yeSgpLT5ib3VuZHNDaGVja2luZ1NpemUoKSk7Ci0gICAgICAgICAg
ICBtX2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSA9IG1lbW9yeSgpLT5ib3VuZHNDaGVja2luZ1Np
emUoKTsKKyAgICAgICAgICAgIC8vIE5vdGU6IEluIE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5n
LCBtYXBwZWRDYXBhY2l0eSgpID09IHNpemUoKS4KKyAgICAgICAgICAgIC8vIFdlIGFzc2VydCB0
aGlzIGluIHRoZSBjb25zdHJ1Y3RvciBvZiBNZW1vcnlIYW5kbGUuCisjaWYgQ1BVKEFSTSkKKyAg
ICAgICAgICAgIC8vIFNoYXJlZCBtZW1vcnkgcmVxdWlyZXMgc2lnbmFsaW5nIG1lbW9yeSB3aGlj
aCBpcyBub3QgYXZhaWxhYmxlCisgICAgICAgICAgICAvLyBvbiBBUk12NyB5ZXQuIEluIG9yZGVy
IHRvIGdldCBtb3JlIG9mIHRoZSB0ZXN0IHN1aXRlIHRvIHJ1biwgd2UKKyAgICAgICAgICAgIC8v
IGNhbiBzdGlsbCB1c2UgYSBzaGFyZWQgbWVtb3J5IGJ5IHVzaW5nIGJvdW5kcyBjaGVja2luZywg
YnkgdXNpbmcKKyAgICAgICAgICAgIC8vIHRoZSBhY3R1YWwgc2l6ZSBoZXJlLCBidXQgdGhpcyBt
ZWFucyB3ZSBjYW5ub3QgZ3JvdyB0aGUgc2hhcmVkCisgICAgICAgICAgICAvLyBtZW1vcnkgc2Fm
ZWx5IGluIGNhc2UgaXQncyB1c2VkIGJ5IG11bHRpcGxlIHRocmVhZHMuIE9uY2UgdGhlCisgICAg
ICAgICAgICAvLyBzaWduYWwgaGFuZGxlciBhcmUgYXZhaWxhYmxlLCBtX2NhY2hlZEJvdW5kc0No
ZWNraW5nU2l6ZSBzaG91bGQKKyAgICAgICAgICAgIC8vIGJlIHNldCB0byB1c2UgbWVtb3J5KCkt
Pm1hcHBlZENhcGFjaXR5KCkgbGlrZSBvdGhlciBwbGF0Zm9ybXMsCisgICAgICAgICAgICAvLyBh
bmQgYXQgdGhhdCBwb2ludCBncm93aW5nIHRoZSBzaGFyZWQgbWVtb3J5IHdpbGwgYmUgc2FmZS4K
KyAgICAgICAgICAgIG1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplID0gbWVtb3J5KCktPnNpemUo
KTsKKyNlbHNlCisgICAgICAgICAgICBtX2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSA9IG1lbW9y
eSgpLT5tYXBwZWRDYXBhY2l0eSgpOworI2VuZGlmCisgICAgICAgICAgICBtX2NhY2hlZE1lbW9y
eSA9IENhZ2VkUHRyPEdpZ2FjYWdlOjpQcmltaXRpdmUsIHZvaWQsIHRhZ0NhZ2VkUHRyPihtZW1v
cnkoKS0+bWVtb3J5KCksIG1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKTsKICAgICAgICAgICAg
IEFTU0VSVChtZW1vcnkoKS0+bWVtb3J5KCkgPT0gY2FjaGVkTWVtb3J5KCkpOwogICAgICAgICB9
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50
R2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVy
YXRvci5jcHAKaW5kZXggZDM3M2ZhZWU4MTY4Li41YzJiMDBlYTY0NjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcApAQCAtMzQxLDcg
KzM0MSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4gbV9ub3JtYWxpemVkQXJndW1l
bnRzW2luZGV4XTsKIAogICAgICAgICBjb25zdCBhdXRvJiBjYWxsaW5nQ29udmVudGlvbiA9IHdh
c21DYWxsaW5nQ29udmVudGlvbigpOwotICAgICAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9
IGNhbGxpbmdDb252ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgICAgICBjb25zdCB1aW50MzJf
dCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmpzckFyZ3Muc2l6ZSgpOwogICAgICAgICBj
b25zdCB1aW50MzJfdCBmcHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmZwckFyZ3Muc2l6ZSgp
OwogICAgICAgICByZXR1cm4gdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoaW5kZXggLSBtX2NvZGVC
bG9jay0+bV9udW1Bcmd1bWVudHMgKyBncHJDb3VudCArIGZwckNvdW50ICsgbnVtYmVyT2ZMTElu
dENhbGxlZVNhdmVSZWdpc3RlcnMpOwogICAgIH0KQEAgLTU5NSw3ICs1OTUsNyBAQCBhdXRvIExM
SW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIoY29uc3QgRnVuY3Rpb25TaWdu
YXR1cmUmIHNpZ25hdHVyZQogICAgIGNvbnN0IGF1dG8gaW5pdGlhbFN0YWNrU2l6ZSA9IG1fc3Rh
Y2tTaXplOwogCiAgICAgY29uc3QgYXV0byYgY2FsbGluZ0NvbnZlbnRpb24gPSB3YXNtQ2FsbGlu
Z0NvbnZlbnRpb24oKTsKLSAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252
ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2Fs
bGluZ0NvbnZlbnRpb24uanNyQXJncy5zaXplKCk7CiAgICAgY29uc3QgdWludDMyX3QgZnByQ291
bnQgPSBjYWxsaW5nQ29udmVudGlvbi5mcHJBcmdzLnNpemUoKTsKIAogICAgIHVpbnQzMl90IHN0
YWNrQ291bnQgPSAwOwpAQCAtNzQzLDcgKzc0Myw3IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmNh
bGxJbmZvcm1hdGlvbkZvckNhbGxlZShjb25zdCBGdW5jdGlvblNpZ25hdHVyZSYgc2lnbmF0dXJl
CiAgICAgbV9yZXN1bHRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc2lnbmF0dXJlLnJldHVybkNv
dW50KCkpOwogCiAgICAgY29uc3QgYXV0byYgY2FsbGluZ0NvbnZlbnRpb24gPSB3YXNtQ2FsbGlu
Z0NvbnZlbnRpb24oKTsKLSAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252
ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2Fs
bGluZ0NvbnZlbnRpb24uanNyQXJncy5zaXplKCk7CiAgICAgY29uc3QgdWludDMyX3QgZnByQ291
bnQgPSBjYWxsaW5nQ29udmVudGlvbi5mcHJBcmdzLnNpemUoKTsKIAogICAgIHVpbnQzMl90IGdw
ckluZGV4ID0gMDsKQEAgLTc5MSw3ICs3OTEsNyBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjphZGRB
cmd1bWVudHMoY29uc3QgVHlwZURlZmluaXRpb24mIHNpZ25hdHVyZSkgLT4gUGFydGlhbFJlcwog
ICAgIG1fbm9ybWFsaXplZEFyZ3VtZW50cy5yZXNpemUobV9jb2RlQmxvY2stPm1fbnVtQXJndW1l
bnRzKTsKIAogICAgIGNvbnN0IGF1dG8mIGNhbGxpbmdDb252ZW50aW9uID0gd2FzbUNhbGxpbmdD
b252ZW50aW9uKCk7Ci0gICAgY29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVu
dGlvbi5ncHJBcmdzLnNpemUoKTsKKyAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxp
bmdDb252ZW50aW9uLmpzckFyZ3Muc2l6ZSgpOwogICAgIGNvbnN0IHVpbnQzMl90IGZwckNvdW50
ID0gY2FsbGluZ0NvbnZlbnRpb24uZnByQXJncy5zaXplKCk7CiAgICAgY29uc3QgdWludDMyX3Qg
bWF4R1BSSW5kZXggPSBncHJDb3VudDsKICAgICBjb25zdCB1aW50MzJfdCBtYXhGUFJJbmRleCA9
IGdwckNvdW50ICsgZnByQ291bnQ7CkBAIC05NzQsNyArOTc0LDcgQEAgYXV0byBMTEludEdlbmVy
YXRvcjo6YWRkTG9vcChCbG9ja1NpZ25hdHVyZSBzaWduYXR1cmUsIFN0YWNrJiBlbmNsb3NpbmdT
dGFjaywgQ28KICAgICAgICAgb3NyRW50cnlEYXRhLmFwcGVuZChtX25vcm1hbGl6ZWRBcmd1bWVu
dHNbaV0pOwogCiAgICAgY29uc3QgYXV0byYgY2FsbGluZ0NvbnZlbnRpb24gPSB3YXNtQ2FsbGlu
Z0NvbnZlbnRpb24oKTsKLSAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252
ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2Fs
bGluZ0NvbnZlbnRpb24uanNyQXJncy5zaXplKCk7CiAgICAgY29uc3QgdWludDMyX3QgZnByQ291
bnQgPSBjYWxsaW5nQ29udmVudGlvbi5mcHJBcmdzLnNpemUoKTsKICAgICBmb3IgKHVpbnQzMl90
IGkgPSBncHJDb3VudCArIGZwckNvdW50ICsgbnVtYmVyT2ZMTEludENhbGxlZVNhdmVSZWdpc3Rl
cnM7IGkgPCBtX2NvZGVCbG9jay0+bV9udW1WYXJzOyBpKyspCiAgICAgICAgIG9zckVudHJ5RGF0
YS5hcHBlbmQodmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoaSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcAppbmRleCA4YjQzNmQyZGNmNTYuLmUzNGY0NGNh
Y2FkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxh
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5jcHAK
QEAgLTExOSwxMiArMTE5LDE1IEBAIHZvaWQgTExJbnRQbGFuOjpkaWRDb21wbGV0ZUNvbXBpbGF0
aW9uKCkKICAgICAgICAgICAgIGVudHJ5cG9pbnRzW2ldID0gaml0LmxhYmVsKCk7CiAjaWYgQ1BV
KFg4Nl82NCkKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBjYWxsZWVTbG90KEND
YWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAq
IHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgLSBzaXplb2YoQ1BVUmVnaXN0ZXIp
KTsKLSNlbGlmIENQVShBUk02NCkgfHwgQ1BVKFJJU0NWNjQpCisjZWxpZiBDUFUoQVJNNjQpIHx8
IENQVShSSVNDVjY0KSB8fCBDUFUoQVJNKQogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzIGNhbGxlZVNsb3QoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgQ2FsbEZy
YW1lU2xvdDo6Y2FsbGVlICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSAtIHNp
emVvZihDYWxsZXJGcmFtZUFuZFBDKSk7CiAjZWxzZQogI2Vycm9yIFVuc3VwcG9ydGVkIGFyY2hp
dGVjdHVyZS4KICNlbmRpZgotICAgICAgICAgICAgaml0LnN0b3JlUHRyKENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbVB0cihDYWxsZWVCaXRzOjpib3hXYXNtKG1fY2FsbGVlc1ZlY3RvcltpXS5wdHIo
KSkpLCBjYWxsZWVTbG90KTsKKyAgICAgICAgICAgIGppdC5zdG9yZVB0cihDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW1QdHIoQ2FsbGVlQml0czo6Ym94V2FzbShtX2NhbGxlZXNWZWN0b3JbaV0ucHRy
KCkpKSwgY2FsbGVlU2xvdC53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyNpZiBVU0UoSlNW
QUxVRTMyXzY0KQorICAgICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tMzIoSlNWYWx1ZTo6V2FzbVRhZyksIGNhbGxlZVNsb3Qud2l0aE9mZnNldChUYWdPZmZzZXQp
KTsKKyNlbmRpZgogICAgICAgICAgICAganVtcHNbaV0gPSBqaXQuanVtcCgpOwogICAgICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5jcHAKaW5kZXggNDQwNzU5
NTJmMDA3Li4yNTUyZWZmMWQ5MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21NZW1vcnkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21N
ZW1vcnkuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAj
aW5jbHVkZSA8Y3N0cmluZz4KKyNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8bXV0ZXg+CiAK
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CkBAIC05OCwxMSArOTksOSBAQCBjbGFz
cyBNZW1vcnlNYW5hZ2VyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShNZW1vcnlNYW5hZ2VyKTsKIHB1YmxpYzoKLSAgICBNZW1vcnlNYW5h
Z2VyKCkKLSAgICAgICAgOiBtX21heEZhc3RNZW1vcnlDb3VudChPcHRpb25zOjptYXhOdW1XZWJB
c3NlbWJseUZhc3RNZW1vcmllcygpKQotICAgIHsKLSAgICB9Ci0gICAgCisgICAgTWVtb3J5TWFu
YWdlcigpID0gZGVmYXVsdDsKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVN
T1JZKQogICAgIE1lbW9yeVJlc3VsdCB0cnlBbGxvY2F0ZUZhc3RNZW1vcnkoKQogICAgIHsKICAg
ICAgICAgTWVtb3J5UmVzdWx0IHJlc3VsdCA9IFsmXSB7CkBAIC0xMjUsNyArMTI0LDcgQEAgcHVi
bGljOgogICAgICAgICAKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9Ci0gICAgCisKICAg
ICB2b2lkIGZyZWVGYXN0TWVtb3J5KHZvaWQqIGJhc2VQdHIpCiAgICAgewogICAgICAgICB7CkBA
IC0xMzYsNiArMTM1LDcgQEAgcHVibGljOgogICAgICAgICAKICAgICAgICAgZGF0YUxvZ0xuSWYo
T3B0aW9uczo6bG9nV2ViQXNzZW1ibHlNZW1vcnkoKSwgIkZyZWVkIHZpcnR1YWw7IHN0YXRlOiAi
LCAqdGhpcyk7CiAgICAgfQorI2VuZGlmCiAKICAgICBNZW1vcnlSZXN1bHQgdHJ5QWxsb2NhdGVH
cm93YWJsZUJvdW5kc0NoZWNraW5nTWVtb3J5KHNpemVfdCBtYXBwZWRDYXBhY2l0eSkKICAgICB7
CkBAIC0xNzAsMTEgKzE3MCwxMyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICAvLyBOT1RFOiBU
aGlzIGNhbiBiZSBjYWxsZWQgZnJvbSBhIHNpZ25hbCBoYW5kbGVyLCBidXQgb25seSBhZnRlciB3
ZSBwcm92ZWQgdGhhdCB3ZSdyZSBpbiBKSVQgY29kZSBvciBXYXNtTExJbnQgY29kZS4KICAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdO
QUxJTkdfTUVNT1JZKQogICAgICAgICBmb3IgKHZvaWQqIG1lbW9yeSA6IG1fZmFzdE1lbW9yaWVz
KSB7CiAgICAgICAgICAgICBjaGFyKiBzdGFydCA9IHN0YXRpY19jYXN0PGNoYXIqPihtZW1vcnkp
OwogICAgICAgICAgICAgaWYgKHN0YXJ0IDw9IGFkZHJlc3MgJiYgYWRkcmVzcyA8PSBzdGFydCAr
IE1lbW9yeTo6ZmFzdE1hcHBlZEJ5dGVzKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICB1aW50cHRyX3QgYWRkcmVzc1ZhbHVlID0gYml0
d2lzZV9jYXN0PHVpbnRwdHJfdD4oYWRkcmVzcyk7CiAgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBz
dGQ6OnVwcGVyX2JvdW5kKG1fZ3Jvd2FibGVCb3VuZHNDaGVja2luZ01lbW9yaWVzLmJlZ2luKCks
IG1fZ3Jvd2FibGVCb3VuZHNDaGVja2luZ01lbW9yaWVzLmVuZCgpLCBzdGQ6Om1ha2VfcGFpcihh
ZGRyZXNzVmFsdWUsIDApLAogICAgICAgICAgICAgW10oc3RkOjpwYWlyPHVpbnRwdHJfdCwgc2l6
ZV90PiBhLCBzdGQ6OnBhaXI8dWludHB0cl90LCBzaXplX3Q+IGIpIHsKQEAgLTE5MSw3ICsxOTMs
MTIgQEAgcHVibGljOgogICAgIC8vIFdlIGFsbG93IHBlb3BsZSB0byAiY29tbWl0IiBtb3JlIHdh
c20gbWVtb3J5IHRoYW4gdGhlcmUgaXMgb24gdGhlIHN5c3RlbSBzaW5jZSBtb3N0IG9mIHRoZSB0
aW1lCiAgICAgLy8gcGVvcGxlIGRvbid0IGFjdHVhbGx5IHdyaXRlIHRvIG1vc3Qgb2YgdGhhdCBt
ZW1vcnkuIFRoZXJlIGlzIHNvbWUgY2hhbmNlIHRoYXQgdGhpcyBnZXRzIHVzCiAgICAgLy8gSmV0
U2FtbWVkIGJ1dCB0aGF0J3MgcG9zc2libGUgYW55d2F5LgotICAgIGlubGluZSBzaXplX3QgbWVt
b3J5TGltaXQoKSBjb25zdCB7IHJldHVybiByYW1TaXplKCkgKiAzOyB9CisgICAgaW5saW5lIHNp
emVfdCBtZW1vcnlMaW1pdCgpIGNvbnN0CisgICAgeworICAgICAgICBpZiAocHJvZHVjdE92ZXJm
bG93czxzaXplX3Q+KHJhbVNpemUoKSwgIDMpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVt
ZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCk7CisgICAgICAgIHJldHVybiByYW1TaXplKCkgKiAz
OworICAgIH0KIAogICAgIC8vIEZJWE1FOiBJZGVhbGx5LCBibWFsbG9jIHdvdWxkIGhhdmUgdGhp
cyBraW5kIG9mIG1lY2hhbmlzbS4gVGhlbiwgd2Ugd291bGQganVzdCBmb3J3YXJkIHRvIHRoYXQK
ICAgICAvLyBtZWNoYW5pc20gaGVyZS4KQEAgLTIyNywxMyArMjM0LDE5IEBAIHB1YmxpYzoKICAg
ICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICB7CisjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgICAgIG91dC5wcmludCgiZmFz
dCBtZW1vcmllcyA9ICAiLCBtX2Zhc3RNZW1vcmllcy5zaXplKCksICIvIiwgbV9tYXhGYXN0TWVt
b3J5Q291bnQsICIsIGJ5dGVzID0gIiwgbV9waHlzaWNhbEJ5dGVzLCAiLyIsIG1lbW9yeUxpbWl0
KCkpOworI2Vsc2UKKyAgICAgICAgb3V0LnByaW50KCJmYXN0IG1lbW9yaWVzID0gTi5BLiwgYnl0
ZXMgPSAiLCBtX3BoeXNpY2FsQnl0ZXMsICIvIiwgbWVtb3J5TGltaXQoKSk7CisjZW5kaWYKICAg
ICB9CiAgICAgCiBwcml2YXRlOgogICAgIExvY2sgbV9sb2NrOwotICAgIHVuc2lnbmVkIG1fbWF4
RmFzdE1lbW9yeUNvdW50IHsgMCB9OworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdf
TUVNT1JZKQorICAgIHVuc2lnbmVkIG1fbWF4RmFzdE1lbW9yeUNvdW50IHsgT3B0aW9uczo6bWF4
TnVtV2ViQXNzZW1ibHlGYXN0TWVtb3JpZXMoKSB9OwogICAgIFZlY3Rvcjx2b2lkKj4gbV9mYXN0
TWVtb3JpZXM7CisjZW5kaWYKICAgICBTdGRTZXQ8c3RkOjpwYWlyPHVpbnRwdHJfdCwgc2l6ZV90
Pj4gbV9ncm93YWJsZUJvdW5kc0NoZWNraW5nTWVtb3JpZXM7CiAgICAgc2l6ZV90IG1fcGh5c2lj
YWxCeXRlcyB7IDAgfTsKIH07CkBAIC0zMDAsNiArMzEzLDcgQEAgTWVtb3J5SGFuZGxlOjp+TWVt
b3J5SGFuZGxlKCkKICAgICAgICAgdm9pZCogbWVtb3J5ID0gdGhpcy0+bWVtb3J5KCk7CiAgICAg
ICAgIG1lbW9yeU1hbmFnZXIoKS5mcmVlUGh5c2ljYWxCeXRlcyhtX3NpemUpOwogICAgICAgICBz
d2l0Y2ggKG1fbW9kZSkgeworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZ
KQogICAgICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzoKICAgICAgICAgICAgIGlmICht
cHJvdGVjdChtZW1vcnksIE1lbW9yeTo6ZmFzdE1hcHBlZEJ5dGVzKCksIFBST1RfUkVBRCB8IFBS
T1RfV1JJVEUpKSB7CiAgICAgICAgICAgICAgICAgZGF0YUxvZygibXByb3RlY3QgZmFpbGVkOiAi
LCBzYWZlU3RyZXJyb3IoZXJybm8pLmRhdGEoKSwgIlxuIik7CkBAIC0zMDcsNiArMzIxLDcgQEAg
TWVtb3J5SGFuZGxlOjp+TWVtb3J5SGFuZGxlKCkKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IG1lbW9yeU1hbmFnZXIoKS5mcmVlRmFzdE1lbW9yeShtZW1vcnkpOwogICAgICAgICAgICAgYnJl
YWs7CisjZW5kaWYKICAgICAgICAgY2FzZSBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZzogewog
ICAgICAgICAgICAgc3dpdGNoIChtX3NoYXJpbmdNb2RlKSB7CiAgICAgICAgICAgICBjYXNlIE1l
bW9yeVNoYXJpbmdNb2RlOjpEZWZhdWx0OgpAQCAtMzk1LDYgKzQxMCw3IEBAIFJlZlB0cjxNZW1v
cnk+IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBpbml0aWFsLCBQYWdlQ291bnQgbWF4aW11
bSwgTWVtb3J5U2hhCiAgICAgaWYgKCFkb25lKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICAgICAgCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgY2hh
ciogZmFzdE1lbW9yeSA9IG51bGxwdHI7CiAgICAgaWYgKE9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5
RmFzdE1lbW9yeSgpKSB7CiAgICAgICAgIHRyeUFsbG9jYXRlKApAQCAtNDEzLDcgKzQyOSw4IEBA
IFJlZlB0cjxNZW1vcnk+IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBpbml0aWFsLCBQYWdl
Q291bnQgbWF4aW11bSwgTWVtb3J5U2hhCiAKICAgICAgICAgcmV0dXJuIE1lbW9yeTo6Y3JlYXRl
KGFkb3B0UmVmKCpuZXcgTWVtb3J5SGFuZGxlKGZhc3RNZW1vcnksIGluaXRpYWxCeXRlcywgTWVt
b3J5OjpmYXN0TWFwcGVkQnl0ZXMoKSwgaW5pdGlhbCwgbWF4aW11bSwgc2hhcmluZ01vZGUsIE1l
bW9yeU1vZGU6OlNpZ25hbGluZykpLCBXVEZNb3ZlKG5vdGlmeU1lbW9yeVByZXNzdXJlKSwgV1RG
TW92ZShzeW5jVHJ5VG9SZWNsYWltTWVtb3J5KSwgV1RGTW92ZShncm93U3VjY2Vzc0NhbGxiYWNr
KSk7CiAgICAgfQotICAgIAorI2VuZGlmCisKICAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6Y3Jh
c2hJZldlYkFzc2VtYmx5Q2FudEZhc3RNZW1vcnkoKSkpCiAgICAgICAgIHdlYkFzc2VtYmx5Q291
bGRudEdldEZhc3RNZW1vcnkoKTsKIApAQCAtNDU2LDYgKzQ3Myw3IEBAIFJlZlB0cjxNZW1vcnk+
IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBpbml0aWFsLCBQYWdlQ291bnQgbWF4aW11bSwg
TWVtb3J5U2hhCiAKIE1lbW9yeTo6fk1lbW9yeSgpID0gZGVmYXVsdDsKIAorI2lmIEVOQUJMRShX
RUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogc2l6ZV90IE1lbW9yeTo6ZmFzdE1hcHBlZFJl
ZHpvbmVCeXRlcygpCiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHNpemVfdD4oUGFnZUNvdW50
OjpwYWdlU2l6ZSkgKiBPcHRpb25zOjp3ZWJBc3NlbWJseUZhc3RNZW1vcnlSZWR6b25lUGFnZXMo
KTsKQEAgLTQ2Niw2ICs0ODQsNyBAQCBzaXplX3QgTWVtb3J5OjpmYXN0TWFwcGVkQnl0ZXMoKQog
ICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKHVpbnQ2NF90KSA9PSBzaXplb2Yoc2l6ZV90KSwgIldl
IHJlbHkgb24gYWxsb3dpbmcgdGhlIG1heGltdW0gc2l6ZSBvZiBNZW1vcnkgd2UgbWFwIHRvIGJl
IDJeMzIgKyByZWR6b25lIHdoaWNoIGlzIGxhcmdlciB0aGFuIGZpdHMgaW4gYSAzMi1iaXQgaW50
ZWdlciB0aGF0IHdlJ2QgcGFzcyB0byBtcHJvdGVjdCBpZiB0aGlzIGRpZG4ndCBob2xkLiIpOwog
ICAgIHJldHVybiAoc3RhdGljX2Nhc3Q8c2l6ZV90PigxKSA8PCAzMikgKyBmYXN0TWFwcGVkUmVk
em9uZUJ5dGVzKCk7CiB9CisjZW5kaWYKIAogYm9vbCBNZW1vcnk6OmFkZHJlc3NJc0luR3Jvd2Fi
bGVPckZhc3RNZW1vcnkodm9pZCogYWRkcmVzcykKIHsKQEAgLTQ3NCw2ICs0OTMsMTQgQEAgYm9v
bCBNZW1vcnk6OmFkZHJlc3NJc0luR3Jvd2FibGVPckZhc3RNZW1vcnkodm9pZCogYWRkcmVzcykK
IAogRXhwZWN0ZWQ8UGFnZUNvdW50LCBNZW1vcnk6Okdyb3dGYWlsUmVhc29uPiBNZW1vcnk6Omdy
b3dTaGFyZWQoUGFnZUNvdW50IGRlbHRhKQogeworI2lmIENQVShBUk0pCisgICAgLy8gU2hhcmVk
IG1lbW9yeSByZXF1aXJlcyBzaWduYWxpbmcgbWVtb3J5IHdoaWNoIGlzIG5vdCBhdmFpbGFibGUg
b24gQVJNdjcKKyAgICAvLyB5ZXQuIEluIG9yZGVyIHRvIGdldCBtb3JlIG9mIHRoZSB0ZXN0IHN1
aXRlIHRvIHJ1biwgd2UgY2FuIHN0aWxsIHVzZQorICAgIC8vIGEgc2hhcmVkIG1tZW9yeSBieSB1
c2luZyBib3VuZHMgY2hlY2tpbmcsIGJ1dCB3ZSBjYW5ub3QgZ3JvdyBpdCBzYWZlbHkKKyAgICAv
LyBpbiBjYXNlIGl0J3MgdXNlZCBieSBtdWx0aXBsZSB0aHJlYWRzLiBPbmNlIHRoZSBzaWduYWwg
aGFuZGxlciBhcmUKKyAgICAvLyBhdmFpbGFibGUsIHRoaXMgY2FuIGJlIHJlbGF4ZWQuCisgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgogICAgIFdhc206OlBhZ2VDb3Vu
dCBvbGRQYWdlQ291bnQ7CiAgICAgV2FzbTo6UGFnZUNvdW50IG5ld1BhZ2VDb3VudDsKICAgICBh
dXRvIHJlc3VsdCA9IChbJl0oKSAtPiBFeHBlY3RlZDxQYWdlQ291bnQsIE1lbW9yeTo6R3Jvd0Zh
aWxSZWFzb24+IHsKQEAgLTUyNCw4ICs1NTEsMTQgQEAgRXhwZWN0ZWQ8UGFnZUNvdW50LCBNZW1v
cnk6Okdyb3dGYWlsUmVhc29uPiBNZW1vcnk6Omdyb3dTaGFyZWQoUGFnZUNvdW50IGRlbHRhKQog
ICAgICAgICBtX2hhbmRsZS0+Z3Jvd1RvU2l6ZShkZXNpcmVkU2l6ZSk7CiAgICAgICAgIHJldHVy
biBvbGRQYWdlQ291bnQ7CiAgICAgfSgpKTsKLSAgICBpZiAocmVzdWx0KQorICAgIGlmIChyZXN1
bHQpIHsKICAgICAgICAgbV9ncm93U3VjY2Vzc0NhbGxiYWNrKEdyb3dTdWNjZXNzVGFnLCBvbGRQ
YWdlQ291bnQsIG5ld1BhZ2VDb3VudCk7CisgICAgICAgIC8vIFVwZGF0ZSBjYWNoZSBmb3IgaW5z
dGFuY2UKKyAgICAgICAgZm9yIChhdXRvJiBpbnN0YW5jZSA6IG1faW5zdGFuY2VzKSB7CisgICAg
ICAgICAgICBpZiAoaW5zdGFuY2UuZ2V0KCkgIT0gbnVsbHB0cikKKyAgICAgICAgICAgICAgICBp
bnN0YW5jZS5nZXQoKS0+dXBkYXRlQ2FjaGVkTWVtb3J5KCk7CisgICAgICAgIH0KKyAgICB9CiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtNTg4LDYgKzYyMSw3IEBAIEV4cGVjdGVkPFBhZ2VD
b3VudCwgTWVtb3J5OjpHcm93RmFpbFJlYXNvbj4gTWVtb3J5Ojpncm93KFBhZ2VDb3VudCBkZWx0
YSkKICAgICAgICAgQVNTRVJUKG1lbW9yeSgpID09IG5ld01lbW9yeSk7CiAgICAgICAgIHJldHVy
biBzdWNjZXNzKCk7CiAgICAgfQorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVN
T1JZKQogICAgIGNhc2UgTWVtb3J5TW9kZTo6U2lnbmFsaW5nOiB7CiAgICAgICAgIHNpemVfdCBl
eHRyYUJ5dGVzID0gZGVzaXJlZFNpemUgLSBzaXplKCk7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KGV4dHJhQnl0ZXMpOwpAQCAtNjEzLDYgKzY0Nyw3IEBAIEV4cGVjdGVkPFBhZ2VDb3VudCwgTWVt
b3J5OjpHcm93RmFpbFJlYXNvbj4gTWVtb3J5Ojpncm93KFBhZ2VDb3VudCBkZWx0YSkKICAgICAg
ICAgbV9oYW5kbGUtPmdyb3dUb1NpemUoZGVzaXJlZFNpemUpOwogICAgICAgICByZXR1cm4gc3Vj
Y2VzcygpOwogICAgIH0KKyNlbmRpZgogICAgIH0KIAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CkBAIC02NDYsNyArNjgxLDggQEAgYm9vbCBNZW1vcnk6OmNvcHkodWludDMyX3Qg
ZHN0QWRkcmVzcywgdWludDMyX3Qgc3JjQWRkcmVzcywgdWludDMyX3QgY291bnQpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCiAgICAgdWludDhfdCogYmFzZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dDhfdCo+KG1lbW9yeSgpKTsKLSAgICBtZW1jcHkoYmFzZSArIGRzdEFkZHJlc3MsIGJhc2UgKyBz
cmNBZGRyZXNzLCBjb3VudCk7CisgICAgLy8gU291cmNlIGFuZCBkZXN0aW5hdGlvbiBhcmVhcyBt
aWdodCBvdmVybGFwLCBzbyB1c2luZyBtZW1tb3ZlLgorICAgIG1lbW1vdmUoYmFzZSArIGRzdEFk
ZHJlc3MsIGJhc2UgKyBzcmNBZGRyZXNzLCBjb3VudCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaAppbmRleCBmNWM1OGZjZjk2ZjIu
LjkyNzk2M2I5MjRjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU1lbW9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaApA
QCAtNjEsNyArNjEsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCogbWVtb3J5KCkgY29uc3Q7CiAgICAg
c2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KICAgICBzaXplX3QgbWFwcGVk
Q2FwYWNpdHkoKSBjb25zdCB7IHJldHVybiBtX21hcHBlZENhcGFjaXR5OyB9Ci0gICAgc2l6ZV90
IGJvdW5kc0NoZWNraW5nU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWFwcGVkQ2FwYWNpdHk7IH0K
ICAgICBQYWdlQ291bnQgaW5pdGlhbCgpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbDsgfQogICAg
IFBhZ2VDb3VudCBtYXhpbXVtKCkgY29uc3QgeyByZXR1cm4gbV9tYXhpbXVtOyB9CiAgICAgTWVt
b3J5U2hhcmluZ01vZGUgc2hhcmluZ01vZGUoKSBjb25zdCB7IHJldHVybiBtX3NoYXJpbmdNb2Rl
OyB9CkBAIC0xMDYsMTQgKzEwNSwxNiBAQCBwdWJsaWM6CiAKICAgICBKU19FWFBPUlRfUFJJVkFU
RSB+TWVtb3J5KCk7CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkK
ICAgICBzdGF0aWMgc2l6ZV90IGZhc3RNYXBwZWRSZWR6b25lQnl0ZXMoKTsKICAgICBzdGF0aWMg
c2l6ZV90IGZhc3RNYXBwZWRCeXRlcygpOyAvLyBJbmNsdWRlcyByZWR6b25lLgorI2VuZGlmCiAg
ICAgc3RhdGljIGJvb2wgYWRkcmVzc0lzSW5Hcm93YWJsZU9yRmFzdE1lbW9yeSh2b2lkKik7CiAK
ICAgICB2b2lkKiBtZW1vcnkoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZS0+bWVtb3J5KCk7IH0K
ICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxlLT5zaXplKCk7IH0KICAg
ICBQYWdlQ291bnQgc2l6ZUluUGFnZXMoKSBjb25zdCB7IHJldHVybiBQYWdlQ291bnQ6OmZyb21C
eXRlcyhzaXplKCkpOyB9Ci0gICAgc2l6ZV90IGJvdW5kc0NoZWNraW5nU2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIG1faGFuZGxlLT5ib3VuZHNDaGVja2luZ1NpemUoKTsgfQorICAgIHNpemVfdCBtYXBw
ZWRDYXBhY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxlLT5tYXBwZWRDYXBhY2l0eSgpOyB9
CiAgICAgUGFnZUNvdW50IGluaXRpYWwoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZS0+aW5pdGlh
bCgpOyB9CiAgICAgUGFnZUNvdW50IG1heGltdW0oKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZS0+
bWF4aW11bSgpOyB9CiAgICAgTWVtb3J5SGFuZGxlJiBoYW5kbGUoKSB7IHJldHVybiBtX2hhbmRs
ZS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1l
bW9yeUluZm9ybWF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1v
cnlJbmZvcm1hdGlvbi5jcHAKaW5kZXggMjY1MmRlNzJlZDU2Li42MGZhZDYzZWYwZTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9u
LmNwcApAQCAtNDEsOCArNDEsMTUgQEAgY29uc3QgUGlubmVkUmVnaXN0ZXJJbmZvJiBQaW5uZWRS
ZWdpc3RlckluZm86OmdldCgpCiAgICAgICAgIHVuc2lnbmVkIG51bWJlck9mUGlubmVkUmVnaXN0
ZXJzID0gMjsKICAgICAgICAgaWYgKCFDb250ZXh0Ojp1c2VGYXN0VExTKCkpCiAgICAgICAgICAg
ICArK251bWJlck9mUGlubmVkUmVnaXN0ZXJzOworI2lmIENQVShYODZfNjQpIHx8IENQVShBUk02
NCkKICAgICAgICAgR1BSUmVnIGJhc2VNZW1vcnlQb2ludGVyID0gR1BSSW5mbzo6cmVnQ1MzOwog
ICAgICAgICBHUFJSZWcgYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIgPSBHUFJJbmZvOjpyZWdD
UzQ7CisjZWxpZiBDUFUoQVJNKQorICAgICAgICAvLyBOb3QgZW5vdWdoIHJlZ2lzdGVycy4gcmVn
Q1MwIGlzIHRoZSB3YXNtIGluc3RhbmNlLCByZWdDUzEgaXMgTExJbnQgUEIKKyAgICAgICAgbnVt
YmVyT2ZQaW5uZWRSZWdpc3RlcnMgLT0gMjsKKyAgICAgICAgR1BSUmVnIGJhc2VNZW1vcnlQb2lu
dGVyID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgR1BSUmVnIGJvdW5kc0NoZWNraW5nU2l6ZVJl
Z2lzdGVyID0gSW52YWxpZEdQUlJlZzsKKyNlbmRpZgogICAgICAgICBHUFJSZWcgd2FzbUNvbnRl
eHRJbnN0YW5jZVBvaW50ZXIgPSBJbnZhbGlkR1BSUmVnOwogICAgICAgICBpZiAoIUNvbnRleHQ6
OnVzZUZhc3RUTFMoKSkKICAgICAgICAgICAgIHdhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyID0g
R1BSSW5mbzo6cmVnQ1MwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU1lbW9yeUluZm9ybWF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
TWVtb3J5SW5mb3JtYXRpb24uaAppbmRleCA4NTRmYmE1NGUzMzcuLjI5ZmNiZGI2ZDQ2MyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9u
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9u
LmgKQEAgLTUyLDEwICs1MiwxMSBAQCBwdWJsaWM6CiAgICAgUmVnaXN0ZXJTZXQgdG9TYXZlKE1l
bW9yeU1vZGUgbW9kZSkgY29uc3QKICAgICB7CiAgICAgICAgIFJlZ2lzdGVyU2V0IHJlc3VsdDsK
LSAgICAgICAgcmVzdWx0LnNldChiYXNlTWVtb3J5UG9pbnRlcik7CisgICAgICAgIGlmIChiYXNl
TWVtb3J5UG9pbnRlciAhPSBJbnZhbGlkR1BSUmVnKQorICAgICAgICAgICAgcmVzdWx0LnNldChi
YXNlTWVtb3J5UG9pbnRlcik7CiAgICAgICAgIGlmICh3YXNtQ29udGV4dEluc3RhbmNlUG9pbnRl
ciAhPSBJbnZhbGlkR1BSUmVnKQogICAgICAgICAgICAgcmVzdWx0LnNldCh3YXNtQ29udGV4dElu
c3RhbmNlUG9pbnRlcik7Ci0gICAgICAgIGlmIChtb2RlICE9IE1lbW9yeU1vZGU6OlNpZ25hbGlu
ZykKKyAgICAgICAgaWYgKG1vZGUgPT0gTWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcgJiYgYm91
bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIgIT0gSW52YWxpZEdQUlJlZykKICAgICAgICAgICAgIHJl
c3VsdC5zZXQoYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIpOwogICAgICAgICByZXR1cm4gcmVz
dWx0OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21N
ZW1vcnlNb2RlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2Rl
LmNwcAppbmRleCA5YmUwNGQ3N2IwNmIuLmYzM2IwNTI1MTk4MyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmNwcApAQCAtMzcsNyArMzcsOSBAQCBjb25z
dCBjaGFyKiBtYWtlU3RyaW5nKE1lbW9yeU1vZGUgbW9kZSkKIHsKICAgICBzd2l0Y2ggKG1vZGUp
IHsKICAgICBjYXNlIE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nOiByZXR1cm4gIkJvdW5kc0No
ZWNraW5nIjsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBj
YXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzogcmV0dXJuICJTaWduYWxpbmciOworI2VuZGlmCiAg
ICAgfQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuICIiOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmgKaW5kZXggMDJjZmNm
ZTQ5ZjQ3Li5kNzExYWZhZjMwMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21NZW1vcnlNb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU1lbW9yeU1vZGUuaApAQCAtMzQsNyArMzQsOSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IFdhc20gewogLy8gRklYTUU6IFdlIHNob3VsZCBzdXBwb3J0IG90aGVyIG1vZGVzLiBzZWU6IGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI2OTMKIGVudW0gY2xhc3Mg
TWVtb3J5TW9kZSA6IHVpbnQ4X3QgewogICAgIEJvdW5kc0NoZWNraW5nLAorI2lmIEVOQUJMRShX
RUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIFNpZ25hbGluZworI2VuZGlmCiB9Owog
CiBzdGF0aWMgY29uc3RleHByIHNpemVfdCBOdW1iZXJPZk1lbW9yeU1vZGVzID0gMjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5jcHAKaW5kZXggYjZj
NWMyNzU1MzExLi45ZmM5MWI5ZDljNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21PcGNvZGVPcmlnaW4uY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiV2FzbU9wY29kZU9yaWdpbi5oIgogCi0jaWYgRU5BQkxFKFdFQkFT
U0VNQkxZKQorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9CM0pJVCkKIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBXYXNtIHsKIApAQCAtMzcsNCArMzcsNCBAQCB2b2lkIE9wY29kZU9yaWdpbjo6
ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2Fz
bQogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQorI2VuZGlmIC8vIEVOQUJMRShXRUJB
U1NFTUJMWV9CM0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21PcGNvZGVPcmlnaW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVP
cmlnaW4uaAppbmRleCBhMGQ4ZGYzYWVmMTkuLjVjNGI2NzZkNWM2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uaApAQCAtMjUsNyArMjUsNyBAQAog
CiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyNpZiBFTkFCTEUoV0VC
QVNTRU1CTFlfQjNKSVQpCiAKICNpbmNsdWRlICJCM09yaWdpbi5oIgogI2luY2x1ZGUgIldhc21G
b3JtYXQuaCIKQEAgLTYwLDQgKzYwLDQgQEAgcHJpdmF0ZToKIAogfSB9IC8vIG5hbWVzcGFjZSBK
U0M6Oldhc20KIAotI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCQVNTRU1CTFlfQjNKSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
T3BlcmF0aW9ucy5jcHAKaW5kZXggZjJmNjExYTZiZTZlLi42NDNjNDdjZGYzMDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAKQEAgLTQ2OCw0MyAr
NDY4LDQzIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVW53aW5kLCB2
b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogICAgIEFTU0VSVCghIXZtLmNhbGxGcmFtZUZv
ckNhdGNoKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRU
b0k2NCwgaW50NjRfdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCwgaW50NjRfdCwgKENhbGxG
cmFtZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSB2KSkKIHsKICAgICAvLyBGSVhNRTogQ29u
c2lkZXIgcGFzc2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RlYWQuCiAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIwNgogICAgIFZNJiB2bSA9
IGNhbGxGcmFtZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICByZXR1cm4gdi50b0JpZ0ludDY0KGNhbGxGcmFtZS0+
bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpOworICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUodiku
dG9CaWdJbnQ2NChjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKTsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0Y2NCwgZG91YmxlLCAoQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ29udmVydFRvRjY0LCBkb3VibGUsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRW5j
b2RlZEpTVmFsdWUgdikpCiB7CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJB
c3NlbWJseUluc3RhbmNlKiBpbnN0ZWFkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDMyMDYKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0
ZWRWTSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7
Ci0gICAgcmV0dXJuIHYudG9OdW1iZXIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZt
KSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh2KS50b051bWJlcihjYWxsRnJhbWUtPmxl
eGljYWxHbG9iYWxPYmplY3Qodm0pKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNvbnZlcnRUb0kzMiwgaW50MzJfdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1Zh
bHVlIHYpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0kzMiwg
aW50MzJfdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSB2KSkKIHsKICAg
ICAvLyBGSVhNRTogQ29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3Rl
YWQuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIw
NgogICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAgTmF0aXZlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICByZXR1cm4gdi50b0ludDMy
KGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpOworICAgIHJldHVybiBKU1ZhbHVl
OjpkZWNvZGUodikudG9JbnQzMihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKTsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0YzMiwgZmxv
YXQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9GMzIsIGZsb2F0LCAoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUsIEVuY29kZWRKU1ZhbHVlIHYpKQogewogICAgIC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5n
IEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGVhZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjA2CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5k
ZXByZWNhdGVkVk0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
RnJhbWUpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4odi50b051bWJlcihjYWxsRnJh
bWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZs
b2F0PihKU1ZhbHVlOjpkZWNvZGUodikudG9OdW1iZXIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KHZtKSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29u
dmVydFRvQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJbnN0
YW5jZSogaW5zdGFuY2UsIGludDY0X3QgdmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBFbmNvZGVkV2FzbVZhbHVlIHZhbHVlKSkKIHsK
ICAgICBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGpzSW5zdGFuY2UgPSBpbnN0YW5jZS0+b3duZXI8
SlNXZWJBc3NlbWJseUluc3RhbmNlPigpOwogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QgPSBqc0luc3RhbmNlLT5nbG9iYWxPYmplY3QoKTsKQEAgLTUxNCw3ICs1MTQsNyBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50LCBFbmNvZGVkSlNW
YWx1ZSwgKENhbGxGcmFtZSogYwogfQogCiAvLyBodHRwczovL3dlYmFzc2VtYmx5LmdpdGh1Yi5p
by9tdWx0aS12YWx1ZS9qcy1hcGkvaW5kZXguaHRtbCNydW4tYS1ob3N0LWZ1bmN0aW9uCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBjb25zdCBUeXBlRGVmaW5pdGlv
biogdHlwZSwgSlNWYWx1ZSByZXN1bHQsIHVpbnQ2NF90KiByZWdpc3RlclJlc3VsdHMsIHVpbnQ2
NF90KiBjYWxsZWVGcmFtZVBvaW50ZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNl
KiBpbnN0YW5jZSwgY29uc3QgVHlwZURlZmluaXRpb24qIHR5cGUsIEVuY29kZWRKU1ZhbHVlIGVu
Y1Jlc3VsdCwgdWludDY0X3QqIHJlZ2lzdGVyUmVzdWx0cywgdWludDY0X3QqIGNhbGxlZUZyYW1l
UG9pbnRlcikpCiB7CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJs
eUluc3RhbmNlKiBpbnN0ZWFkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDMyMDYKQEAgLTUzMSw2ICs1MzEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgSQogCiAgICAgdW5zaWduZWQgaXRlcmF0aW9uQ291bnQgPSAwOwogICAgIE1hcmtlZEFyZ3Vt
ZW50QnVmZmVyIGJ1ZmZlcjsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShl
bmNSZXN1bHQpOwogICAgIGZvckVhY2hJbkl0ZXJhYmxlKGdsb2JhbE9iamVjdCwgcmVzdWx0LCBb
Jl0gKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHZhbHVlKSAtPiB2b2lkIHsKICAgICAg
ICAgaWYgKGJ1ZmZlci5zaXplKCkgPCBzaWduYXR1cmUtPnJldHVybkNvdW50KCkpCiAgICAgICAg
ICAgICBidWZmZXIuYXBwZW5kKHZhbHVlKTsKQEAgLTU4MCw4ICs1ODEsMTAgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1l
KiBjYWxsRnJhbWUsIEkKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgp
KTsKIAogICAgICAgICBhdXRvIHJlcCA9IHdhc21DYWxsSW5mby5yZXN1bHRzW2luZGV4XTsKLSAg
ICAgICAgaWYgKHJlcC5pc1JlZygpKQotICAgICAgICAgICAgcmVnaXN0ZXJSZXN1bHRzW3JlZ2lz
dGVyUmVzdWx0T2Zmc2V0cy5maW5kKHJlcC5yZWcoKSktPm9mZnNldCgpIC8gc2l6ZW9mKHVpbnQ2
NF90KV0gPSB1bmJveGVkVmFsdWU7CisgICAgICAgIGlmIChyZXAuaXNHUFIoKSkKKyAgICAgICAg
ICAgIHJlZ2lzdGVyUmVzdWx0c1tyZWdpc3RlclJlc3VsdE9mZnNldHMuZmluZChyZXAuanNyKCku
cGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkgLyBzaXplb2YodWludDY0X3QpXSA9IHVuYm94ZWRWYWx1
ZTsKKyAgICAgICAgZWxzZSBpZiAocmVwLmlzRlBSKCkpCisgICAgICAgICAgICByZWdpc3RlclJl
c3VsdHNbcmVnaXN0ZXJSZXN1bHRPZmZzZXRzLmZpbmQocmVwLmZwcigpKS0+b2Zmc2V0KCkgLyBz
aXplb2YodWludDY0X3QpXSA9IHVuYm94ZWRWYWx1ZTsKICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgY2FsbGVlRnJhbWVQb2ludGVyW3JlcC5vZmZzZXRGcm9tRlAoKSAvIHNpemVvZih1aW50NjRf
dCldID0gdW5ib3hlZFZhbHVlOwogICAgIH0KQEAgLTYwNywxMiArNjEwLDE2IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSwgSlNBcnJheSos
IChDYWxsRnJhbWUqIGNhCiAgICAgYXV0byB3YXNtQ2FsbEluZm8gPSB3YXNtQ2FsbGluZ0NvbnZl
bnRpb24oKS5jYWxsSW5mb3JtYXRpb25Gb3IoKnR5cGUpOwogICAgIFJlZ2lzdGVyQXRPZmZzZXRM
aXN0IHJlZ2lzdGVyUmVzdWx0cyA9IHdhc21DYWxsSW5mby5jb21wdXRlUmVzdWx0c09mZnNldExp
c3QoKTsKIAotICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEpTVmFsdWUpID09IHNpemVvZihDUFVS
ZWdpc3RlciksICJUaGUgY29kZSBiZWxvdyByZWxpZXMgb24gdGhpcy4iKTsKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgc2lnbmF0dXJlLT5yZXR1cm5Db3VudCgpOyArK2kpIHsKICAgICAg
ICAgVmFsdWVMb2NhdGlvbiBsb2MgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1tpXTsKICAgICAgICAg
SlNWYWx1ZSB2YWx1ZTsKLSAgICAgICAgaWYgKGxvYy5pc1JlZygpKQotICAgICAgICAgICAgdmFs
dWUgPSBzdGFja1BvaW50ZXJGcm9tQ2FsbGVlWyhyZWdpc3RlclJlc3VsdHMuZmluZChsb2MucmVn
KCkpLT5vZmZzZXQoKSArIHdhc21DYWxsSW5mby5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUlu
Qnl0ZXMpIC8gc2l6ZW9mKEpTVmFsdWUpXTsKKyAgICAgICAgaWYgKGxvYy5pc0dQUigpKSB7Cisj
aWYgVVNFKEpTVkFMRTMyXzY0KQorICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyUmVzdWx0cy5m
aW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSArIDQgPT0gcmVnaXN0ZXJSZXN1
bHRzLmZpbmQobG9jLmpzcigpLnRhZ0dQUigpKS0+b2Zmc2V0KCkpOworI2VuZGlmCisgICAgICAg
ICAgICB2YWx1ZSA9IHN0YWNrUG9pbnRlckZyb21DYWxsZWVbKHJlZ2lzdGVyUmVzdWx0cy5maW5k
KGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSArIHdhc21DYWxsSW5mby5oZWFkZXJB
bmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpIC8gc2l6ZW9mKEpTVmFsdWUpXTsKKyAgICAgICAg
fSBlbHNlIGlmIChsb2MuaXNGUFIoKSkKKyAgICAgICAgICAgIHZhbHVlID0gc3RhY2tQb2ludGVy
RnJvbUNhbGxlZVsocmVnaXN0ZXJSZXN1bHRzLmZpbmQobG9jLmZwcigpKS0+b2Zmc2V0KCkgKyB3
YXNtQ2FsbEluZm8uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSAvIHNpemVvZihK
U1ZhbHVlKV07CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHZhbHVlID0gc3RhY2tQb2ludGVy
RnJvbUNhbGxlZVtsb2Mub2Zmc2V0RnJvbVNQKCkgLyBzaXplb2YoSlNWYWx1ZSldOwogICAgICAg
ICByZXN1bHQtPmluaXRpYWxpemVJbmRleChpbml0aWFsaXphdGlvblNjb3BlLCBpLCB2YWx1ZSk7
CkBAIC05NTMsNyArOTYwLDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldh
c21UaHJvdywgdm9pZCosIChJbnN0YW5jZSogaW5zdGFuY2UsIENhbGxGcmEKICAgICAvLyB0byB0
aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElmIHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhp
cyB0ZXJyaWJsZSBoYWNrLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzA0NDAKICAgICB2bS5jYWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNh
bGxlZSgpOwotICAgIGJpdHdpc2VfY2FzdDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nh
c3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4o
anNJbnN0YW5jZS0+bW9kdWxlKCkpOworICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lz
ZV9jYXN0PFJlZ2lzdGVyKj4oY2FsbEZyYW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1l
U2xvdDo6Y2FsbGVlKTsKKyAgICAqY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihq
c0luc3RhbmNlLT5tb2R1bGUoKSk7CiAgICAgcmV0dXJuIHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRo
cm93OwogfQogCkBAIC05NzksNyArOTg3LDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbldhc21SZXRocm93LCB2b2lkKiwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ2FsbEYKICAg
ICAvLyB0byB0aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElmIHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCBy
ZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNrLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAKICAgICB2bS5jYWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxs
RnJhbWUtPmNhbGxlZSgpOwotICAgIGJpdHdpc2VfY2FzdDx1aW50NjRfdCo+KGNhbGxGcmFtZSlb
c3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1
aW50NjRfdD4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOworICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90
ID0gYml0d2lzZV9jYXN0PFJlZ2lzdGVyKj4oY2FsbEZyYW1lKSArIHN0YXRpY19jYXN0PGludD4o
Q2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAgICAqY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxK
U0NlbGwqPihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CiAgICAgcmV0dXJuIHZtLnRhcmdldE1hY2hp
bmVQQ0ZvclRocm93OwogfQogCkBAIC0xMDE0LDEyICsxMDIzLDE0IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25XYXNtVG9KU0V4Y2VwdGlvbiwgdm9pZCosIChDYWxsRnJhbWUq
IGNhbGxGcmFtCiAgICAgLy8gdG8gdGhlIGV4Y2VwdGlvbiBoYW5kbGVyLiBJZiB3ZSBkaWQgdGhp
cywgd2UgY291bGQgcmVtb3ZlIHRoaXMgdGVycmlibGUgaGFjay4KICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDQwCiAgICAgdm0uY2FsbGVlRm9yV2Fz
bUNhdGNoID0gY2FsbEZyYW1lLT5jYWxsZWUoKTsKLSAgICBiaXR3aXNlX2Nhc3Q8dWludDY0X3Qq
PihjYWxsRnJhbWUpW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0gPSBi
aXR3aXNlX2Nhc3Q8dWludDY0X3Q+KGluc3RhbmNlLT5tb2R1bGUoKSk7CisgICAgUmVnaXN0ZXIq
IGNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8UmVnaXN0ZXIqPihjYWxsRnJhbWUpICsgc3RhdGlj
X2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpOworICAgICpjYWxsZWVTbG90ID0gYml0
d2lzZV9jYXN0PEpTQ2VsbCo+KGluc3RhbmNlLT5tb2R1bGUoKSk7CiAgICAgcmV0dXJuIHZtLnRh
cmdldE1hY2hpbmVQQ0ZvclRocm93OwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uV2FzbVJldHJpZXZlQW5kQ2xlYXJFeGNlcHRpb25JZkNhdGNoYWJsZSwgUG9pbnRlclBh
aXIsIChJbnN0YW5jZSogaW5zdGFuY2UpKQogeworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgSlNX
ZWJBc3NlbWJseUluc3RhbmNlKiBqc0luc3RhbmNlID0gaW5zdGFuY2UtPm93bmVyPEpTV2ViQXNz
ZW1ibHlJbnN0YW5jZT4oKTsKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNJ
bnN0YW5jZS0+Z2xvYmFsT2JqZWN0KCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwpAQCAtMTAzOSw2ICsxMDUwLDEzIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25XYXNtUmV0cmlldmVBbmRDbGVhckV4Y2VwdGlvbklmQ2F0Y2hhYmxlLCBQb2luCiAgICAgaWYg
KEpTV2ViQXNzZW1ibHlFeGNlcHRpb24qIHdhc21FeGNlcHRpb24gPSBqc0R5bmFtaWNDYXN0PEpT
V2ViQXNzZW1ibHlFeGNlcHRpb24qPih0aHJvd25WYWx1ZSkpCiAgICAgICAgIHBheWxvYWQgPSBi
aXR3aXNlX2Nhc3Q8dm9pZCo+KHdhc21FeGNlcHRpb24tPnBheWxvYWQoKS5kYXRhKCkpOwogICAg
IHJldHVybiBQb2ludGVyUGFpciB7IGJpdHdpc2VfY2FzdDx2b2lkKj4oSlNWYWx1ZTo6ZW5jb2Rl
KHRocm93blZhbHVlKSksIHBheWxvYWQgfTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
Ly8gTm90ZTogVGhpcyBmdW5jdGlvbiBuZWVkcyB0byByZXR1cm4gYSBwb2ludGVyIGFuZCBhIEpT
VmFsdWUsIHNvIHdpbGwgbmVlZCB0bworICAgIC8vIGNoYW5nZSBzaWduYXR1cmUgb24gSlNWQUxF
MzJfNjQsIG5ldmVydGhlbGVzcywgZm9yIG5vdyBpdCdzIHVudXNlZC4KKyAgICBVTlJFQUNIQUJM
RV9GT1JfUExBVEZPUk0oKTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIHJldHVy
biB7IG51bGxwdHIsIG51bGxwdHIgfTsKKyNlbmRpZgogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpT
Qzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJh
dGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmgKaW5k
ZXggZTJjYjM1OTA0MTk2Li40Yzk3YzRkNzFkYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU9wZXJhdGlvbnMuaApAQCAtNDcsMjIgKzQ3LDIzIEBAIG5hbWVzcGFjZSBXYXNt
IHsKIGNsYXNzIEluc3RhbmNlOwogY2xhc3MgVHlwZURlZmluaXRpb247CiAKLXZvaWQgbG9hZFZh
bHVlc0ludG9CdWZmZXIoUHJvYmU6OkNvbnRleHQmLCBjb25zdCBTdGFja01hcCYsIHVpbnQ2NF90
KiBidWZmZXIpOwordHlwZWRlZiBpbnQ2NF90IEVuY29kZWRXYXNtVmFsdWU7CiAKICNpZiBFTkFC
TEUoV0VCQVNTRU1CTFlfQjNKSVQpCit2b2lkIGxvYWRWYWx1ZXNJbnRvQnVmZmVyKFByb2JlOjpD
b250ZXh0JiwgY29uc3QgU3RhY2tNYXAmLCB1aW50NjRfdCogYnVmZmVyKTsKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJPU1JFbnRyeU5vdywgdm9pZCwgKFBy
b2JlOjpDb250ZXh0JikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNt
VHJpZ2dlclRpZXJVcE5vdywgdm9pZCwgKEluc3RhbmNlKiwgdWludDMyX3QgZnVuY3Rpb25JbmRl
eCkpOwogI2VuZGlmCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21Vbndp
bmQsIHZvaWQsIChDYWxsRnJhbWUqKSk7CiAKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29udmVydFRvSTY0LCBpbnQ2NF90LCAoQ2FsbEZyYW1lKiwgSlNWYWx1ZSkpOwotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9GNjQsIGRvdWJsZSwgKENh
bGxGcmFtZSosIEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29udmVydFRvSTMyLCBpbnQzMl90LCAoQ2FsbEZyYW1lKiwgSlNWYWx1ZSkpOwotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9GMzIsIGZsb2F0LCAoQ2FsbEZyYW1l
KiwgSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0
VG9JNjQsIGludDY0X3QsIChDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9GNjQsIGRvdWJsZSwgKENhbGxGcmFt
ZSosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbnZlcnRUb0kzMiwgaW50MzJfdCwgKENhbGxGcmFtZSosIEVuY29kZWRKU1ZhbHVlKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0YzMiwgZmxvYXQsIChD
YWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSkpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqLCBJ
bnN0YW5jZSosIGludDY0X3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29udmVydFRvQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKENhbGxGcmFtZSosIEluc3RhbmNlKiwg
RW5jb2RlZFdhc21WYWx1ZSkpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1lKiwgSW5zdGFuY2UqLCBjb25zdCBUeXBl
RGVmaW5pdGlvbiosIEpTVmFsdWUsIHVpbnQ2NF90KiwgdWludDY0X3QqKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1l
KiwgSW5zdGFuY2UqLCBjb25zdCBUeXBlRGVmaW5pdGlvbiosIEVuY29kZWRKU1ZhbHVlLCB1aW50
NjRfdCosIHVpbnQ2NF90KikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25B
bGxvY2F0ZVJlc3VsdHNBcnJheSwgSlNBcnJheSosIChDYWxsRnJhbWUqLCBXYXNtOjpJbnN0YW5j
ZSosIGNvbnN0IFR5cGVEZWZpbml0aW9uKiwgSW5kZXhpbmdUeXBlLCBKU1ZhbHVlKikpOwogCiBK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21Xcml0ZUJhcnJpZXJTbG93UGF0
aCwgdm9pZCwgKEpTQ2VsbCosIFZNKikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbVBhZ2VDb3VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVBhZ2VDb3VudC5oCmluZGV4IGI3ZDhjOWZjZjcyYi4uM2M3NTUxMmY0NGE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFnZUNvdW50LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhZ2VDb3VudC5oCkBAIC05OCw3ICs5OCwxMiBAQCBw
dWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHBhZ2VTaXplID0gNjQgKiBL
QjsKIHByaXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXhQYWdlQ291bnQg
PSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oTUFYX0FSUkFZX0JVRkZFUl9TSVpFIC8gc3RhdGljX2Nh
c3Q8dWludDY0X3Q+KHBhZ2VTaXplKSk7CisgICAgLy8gVGhlIHNwZWMgcmVxdWlyZXMgd2UgYXJl
IGFibGUgdG8gaW5zdGFudGlhdGUgYSBtZW1vcnkgd2l0aCBhICptYXhpbXVtKiBzaXplIG9mIDY0
SyBwYWdlcy4KKyAgICAvLyBUaGlzIGRvZXMgbm90IG1lYW4gdGhlIG1lbW9yeSBjYW4gbmVjZXNz
YXJpbHkgZ3JvdyB0aGF0IGJpZywgYW5kIHdoZXJlIHRoZQorICAgIC8vIE1BWF9BUlJBWV9CVUZG
RVJfU0laRSBpcyBzbWFsbGVyIChlLmcuOiBvbiAzMi1iaXQgcGxhdGZvcm1zKSwgdHJ5aW5nIHRv
IGdyb3cgdGhlIG1lbW9yeQorICAgIC8vIHRoYXQgbGFyZ2Ugd2lsbCBmYWlsLCB3aGljaCBpcyBh
Y2NlcHRhYmxlIGFjY29yZGluZyB0byB0aGUgc3BlYy4gTmV2ZXJ0aGVsZXNzLCB3ZSBzaG91bGQK
KyAgICAvLyBiZSBhYmxlIHRvIHBhcnNlIHN1Y2ggYSBtZW1vcnkgYW5kIGluc3RhbnRpYXRlIGl0
IHdpdGggYSBzbWFsbGVyIGluaXRpYWwgc2l6ZS4KKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQz
Ml90IG1heFBhZ2VDb3VudCA9IHN0ZDo6bWF4PHVpbnQzMl90Pig2NCoxMDI0LCBNQVhfQVJSQVlf
QlVGRkVSX1NJWkUgLyBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocGFnZVNpemUpKTsKIAogICAgIHVp
bnQzMl90IG1fcGFnZUNvdW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJz
ZXIuaAppbmRleCA2YTY0OGYxMGI0MTkuLmMzODBiN2FhNDRlNyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21QYXJzZXIuaApAQCAtMjA4LDcgKzIwOCw3IEBAIEFMV0FZU19JTkxJTkUg
Ym9vbCBQYXJzZXI8U3VjY2Vzc1R5cGU+OjpwYXJzZVVJbnQzMih1aW50MzJfdCYgcmVzdWx0KQog
ewogICAgIGlmIChsZW5ndGgoKSA8IDQgfHwgbV9vZmZzZXQgPiBsZW5ndGgoKSAtIDQpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICByZXN1bHQgPSAqcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1
aW50MzJfdCo+KHNvdXJjZSgpICsgbV9vZmZzZXQpOworICAgIG1lbWNweSgmcmVzdWx0LCBzb3Vy
Y2UoKSArIG1fb2Zmc2V0LCBzaXplb2YodWludDMyX3QpKTsgLy8gc3JjIGNhbiBiZSB1bmFsaWdu
ZWQKICAgICBtX29mZnNldCArPSA0OwogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjE4LDcgKzIx
OCw3IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBQYXJzZXI8U3VjY2Vzc1R5cGU+OjpwYXJzZVVJbnQ2
NCh1aW50NjRfdCYgcmVzdWx0KQogewogICAgIGlmIChsZW5ndGgoKSA8IDggfHwgbV9vZmZzZXQg
PiBsZW5ndGgoKSAtIDgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXN1bHQgPSAqcmVp
bnRlcnByZXRfY2FzdDxjb25zdCB1aW50NjRfdCo+KHNvdXJjZSgpICsgbV9vZmZzZXQpOworICAg
IG1lbWNweSgmcmVzdWx0LCBzb3VyY2UoKSArIG1fb2Zmc2V0LCBzaXplb2YodWludDY0X3QpKTsg
Ly8gc3JjIGNhbiBiZSB1bmFsaWduZWQKICAgICBtX29mZnNldCArPSA4OwogICAgIHJldHVybiB0
cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQ
YXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmNwcApp
bmRleCA2NDE3ZjgwYjM1YTcuLjZjYzdmN2Y5NmM4NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbVNsb3dQYXRocy5jcHAKQEAgLTY0OCw3ICs2NDgsOCBAQCBXQVNNX1NMT1df
UEFUSF9ERUNMKHRocm93KQogICAgIC8vIHRvIHRoZSBleGNlcHRpb24gaGFuZGxlci4gSWYgd2Ug
ZGlkIHRoaXMsIHdlIGNvdWxkIHJlbW92ZSB0aGlzIHRlcnJpYmxlIGhhY2suCiAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDQ0MAogICAgIHZtLmNhbGxl
ZUZvcldhc21DYXRjaCA9IGNhbGxGcmFtZS0+Y2FsbGVlKCk7Ci0gICAgYml0d2lzZV9jYXN0PHVp
bnQ2NF90Kj4oY2FsbEZyYW1lKVtzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxl
ZSldID0gYml0d2lzZV9jYXN0PHVpbnQ2NF90Pihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CisgICAg
UmVnaXN0ZXIqIGNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8UmVnaXN0ZXIqPihjYWxsRnJhbWUp
ICsgc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpOworICAgICpjYWxsZWVT
bG90ID0gYml0d2lzZV9jYXN0PEpTQ2VsbCo+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsKICAgICBX
QVNNX1JFVFVSTl9UV08odm0udGFyZ2V0TWFjaGluZVBDRm9yVGhyb3csIG51bGxwdHIpOwogfQog
CkBAIC02NzYsNyArNjc3LDggQEAgV0FTTV9TTE9XX1BBVEhfREVDTChyZXRocm93KQogICAgIC8v
IHRvIHRoZSBleGNlcHRpb24gaGFuZGxlci4gSWYgd2UgZGlkIHRoaXMsIHdlIGNvdWxkIHJlbW92
ZSB0aGlzIHRlcnJpYmxlIGhhY2suCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MDQ0MAogICAgIHZtLmNhbGxlZUZvcldhc21DYXRjaCA9IGNhbGxGcmFt
ZS0+Y2FsbGVlKCk7Ci0gICAgYml0d2lzZV9jYXN0PHVpbnQ2NF90Kj4oY2FsbEZyYW1lKVtzdGF0
aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSldID0gYml0d2lzZV9jYXN0PHVpbnQ2
NF90Pihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CisgICAgUmVnaXN0ZXIqIGNhbGxlZVNsb3QgPSBi
aXR3aXNlX2Nhc3Q8UmVnaXN0ZXIqPihjYWxsRnJhbWUpICsgc3RhdGljX2Nhc3Q8aW50PihDYWxs
RnJhbWVTbG90OjpjYWxsZWUpOworICAgICpjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PEpTQ2Vs
bCo+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsKICAgICBXQVNNX1JFVFVSTl9UV08odm0udGFyZ2V0
TWFjaGluZVBDRm9yVGhyb3csIG51bGxwdHIpOwogfQogCkBAIC03MjMsNiArNzI1LDIxNCBAQCBX
QVNNX1NMT1dfUEFUSF9ERUNMKHJldHJpZXZlX2FuZF9jbGVhcl9leGNlcHRpb24pCiAgICAgV0FT
TV9SRVRVUk5fVFdPKHBjLCBwYXlsb2FkKTsKIH0KIAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCitX
QVNNX1NMT1dfUEFUSF9ERUNMKGYzMl9jZWlsKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5j
ZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjMyQ2VpbD4oKTsKKyAgICBm
bG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRGbG9hdCgp
OworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZSh3YXNtVW5ib3hlZEZsb2F0KHN0ZDo6
Y2VpbChvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmMzJfZmxvb3IpCit7
CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMt
PmFzPFdhc21GMzJGbG9vcj4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlv
bi5tX29wZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVu
Y29kZSh3YXNtVW5ib3hlZEZsb2F0KHN0ZDo6Zmxvb3Iob3BlcmFuZCkpKSk7Cit9CisKK1dBU01f
U0xPV19QQVRIX0RFQ0woZjMyX3RydW5jKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7
CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjMyVHJ1bmM+KCk7CisgICAgZmxv
YXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsK
KyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUod2FzbVVuYm94ZWRGbG9hdChzdGQ6OnRy
dW5jKG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGYzMl9uZWFyZXN0KQor
eworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnJvdW5kX3N0
eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNl
KTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GMzJOZWFyZXN0PigpOworICAg
IGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0
KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKHdhc21VbmJveGVkRmxvYXQoc3Rk
OjpuZWFyYnlpbnQob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjY0X2Nl
aWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9u
ID0gcGMtPmFzPFdhc21GNjRDZWlsPigpOworICAgIGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0
cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUoKTsKKyAgICBXQVNNX1JFVFVSTihKU1Zh
bHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoc3RkOjpjZWlsKG9wZXJhbmQpKSkpOworfQorCitX
QVNNX1NMT1dfUEFUSF9ERUNMKGY2NF9mbG9vcikKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFu
Y2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NEZsb29yPigpOworICAg
IGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3Vi
bGUoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoc3Rk
OjpmbG9vcihvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmNjRfdHJ1bmMp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0g
cGMtPmFzPFdhc21GNjRUcnVuYz4oKTsKKyAgICBkb3VibGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1
Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1
ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHN0ZDo6dHJ1bmMob3BlcmFuZCkpKSk7Cit9CisKK1dB
U01fU0xPV19QQVRIX0RFQ0woZjY0X25lYXJlc3QpCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6
Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cm91bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90b19uZWFy
ZXN0KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24g
PSBwYy0+YXM8V2FzbUY2NE5lYXJlc3Q+KCk7CisgICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGlu
c3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgpOworICAgIFdBU01fUkVUVVJOKEpT
VmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGQ6Om5lYXJieWludChvcGVyYW5kKSkpKTsK
K30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmMzJfY29udmVydF91X2k2NCkKK3sKKyAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6
OnJvdW5kX3RvX25lYXJlc3QpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0
byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjMyQ29udmVydFVJNjQ+KCk7CisgICAgdWludDY0
X3Qgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkSW50NjQoKTsK
KyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUod2FzbVVuYm94ZWRGbG9hdChzdGF0aWNf
Y2FzdDxmbG9hdD4ob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjMyX2Nv
bnZlcnRfc19pNjQpCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPGZs
b2F0Pjo6cm91bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90b19uZWFyZXN0KTsKKyAgICBVTlVTRURf
UEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUYzMkNv
bnZlcnRTSTY0PigpOworICAgIGludDY0X3Qgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9v
cGVyYW5kKS51bmJveGVkSW50NjQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUo
d2FzbVVuYm94ZWRGbG9hdChzdGF0aWNfY2FzdDxmbG9hdD4ob3BlcmFuZCkpKSk7Cit9CisKK1dB
U01fU0xPV19QQVRIX0RFQ0woZjY0X2NvbnZlcnRfdV9pNjQpCit7CisgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cm91bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90
b19uZWFyZXN0KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1
Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NENvbnZlcnRVSTY0PigpOworICAgIHVpbnQ2NF90IG9wZXJh
bmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEludDY0KCk7CisgICAgV0FT
TV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHN0YXRpY19jYXN0PGRvdWJs
ZT4ob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjY0X2NvbnZlcnRfc19p
NjQpCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cm91
bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90b19uZWFyZXN0KTsKKyAgICBVTlVTRURfUEFSQU0oaW5z
dGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NENvbnZlcnRTSTY0
PigpOworICAgIGludDY0X3Qgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51
bmJveGVkSW50NjQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVO
dW1iZXIoc3RhdGljX2Nhc3Q8ZG91YmxlPihvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BB
VEhfREVDTChpNjRfdHJ1bmNfdV9mMzIpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsK
KyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1VGMzI+KCk7CisgICAg
ZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQo
KTsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5kKSB8fCBvcGVyYW5kIDw9IC0xLjBmIHx8IG9w
ZXJhbmQgPj0gLTIuMGYgKiBzdGF0aWNfY2FzdDxmbG9hdD4oSU5UNjRfTUlOKSkKKyAgICAgICAg
V0FTTV9USFJPVyhXYXNtOjpFeGNlcHRpb25UeXBlOjpPdXRPZkJvdW5kc1RydW5jKTsKKyAgICBX
QVNNX1JFVFVSTihzdGF0aWNfY2FzdDx1aW50NjRfdD4ob3BlcmFuZCkpOworfQorCitXQVNNX1NM
T1dfUEFUSF9ERUNMKGk2NF90cnVuY19zX2YzMikKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFu
Y2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jU0YzMj4oKTsK
KyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRG
bG9hdCgpOworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9wZXJhbmQgPCBzdGF0aWNf
Y2FzdDxmbG9hdD4oSU5UNjRfTUlOKSB8fCBvcGVyYW5kID49IC1zdGF0aWNfY2FzdDxmbG9hdD4o
SU5UNjRfTUlOKSkKKyAgICAgICAgV0FTTV9USFJPVyhXYXNtOjpFeGNlcHRpb25UeXBlOjpPdXRP
ZkJvdW5kc1RydW5jKTsKKyAgICBXQVNNX1JFVFVSTihzdGF0aWNfY2FzdDxpbnQ2NF90PihvcGVy
YW5kKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3VfZjY0KQoreworICAg
IFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxX
YXNtSTY0VHJ1bmNVRjY0PigpOworICAgIGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlv
bi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUoKTsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5k
KSB8fCBvcGVyYW5kIDw9IC0xLjAgfHwgb3BlcmFuZCA+PSAtMi4wICogc3RhdGljX2Nhc3Q8ZG91
YmxlPihJTlQ2NF9NSU4pKQorICAgICAgICBXQVNNX1RIUk9XKFdhc206OkV4Y2VwdGlvblR5cGU6
Ok91dE9mQm91bmRzVHJ1bmMpOworICAgIFdBU01fUkVUVVJOKHN0YXRpY19jYXN0PHVpbnQ2NF90
PihvcGVyYW5kKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3NfZjY0KQor
eworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBj
LT5hczxXYXNtSTY0VHJ1bmNTRjY0PigpOworICAgIGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0
cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUoKTsKKyAgICBpZiAoc3RkOjppc25hbihv
cGVyYW5kKSB8fCBvcGVyYW5kIDwgc3RhdGljX2Nhc3Q8ZG91YmxlPihJTlQ2NF9NSU4pIHx8IG9w
ZXJhbmQgPj0gLXN0YXRpY19jYXN0PGRvdWJsZT4oSU5UNjRfTUlOKSkKKyAgICAgICAgV0FTTV9U
SFJPVyhXYXNtOjpFeGNlcHRpb25UeXBlOjpPdXRPZkJvdW5kc1RydW5jKTsKKyAgICBXQVNNX1JF
VFVSTihzdGF0aWNfY2FzdDxpbnQ2NF90PihvcGVyYW5kKSk7Cit9CisKK1dBU01fU0xPV19QQVRI
X0RFQ0woaTY0X3RydW5jX3NhdF9mMzJfdSkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2Up
OworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jU2F0RjMyVT4oKTsK
KyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRG
bG9hdCgpOworICAgIHVpbnQ2NF90IHJlc3VsdDsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5k
KSB8fCBvcGVyYW5kIDw9IC0xLjBmKQorICAgICAgICByZXN1bHQgPSAwOworICAgIGVsc2UgaWYg
KG9wZXJhbmQgPj0gLTIuMGYgKiBzdGF0aWNfY2FzdDxmbG9hdD4oSU5UNjRfTUlOKSkKKyAgICAg
ICAgcmVzdWx0ID0gVUlOVDY0X01BWDsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IHN0YXRp
Y19jYXN0PHVpbnQ2NF90PihvcGVyYW5kKTsKKyAgICBXQVNNX1JFVFVSTihyZXN1bHQpOworfQor
CitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY19zYXRfZjMyX3MpCit7CisgICAgVU5VU0VE
X1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRU
cnVuY1NhdEYzMlM+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9v
cGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBpbnQ2NF90IHJlc3VsdDsKKyAgICBpZiAoc3Rk
Ojppc25hbihvcGVyYW5kKSkKKyAgICAgICAgcmVzdWx0ID0gMDsKKyAgICBlbHNlIGlmIChvcGVy
YW5kIDwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikpCisgICAgICAgIHJlc3VsdCA9IElO
VDY0X01JTjsKKyAgICBlbHNlIGlmIChvcGVyYW5kID49IC1zdGF0aWNfY2FzdDxmbG9hdD4oSU5U
NjRfTUlOKSkKKyAgICAgICAgcmVzdWx0ID0gSU5UNjRfTUFYOworICAgIGVsc2UKKyAgICAgICAg
cmVzdWx0ID0gc3RhdGljX2Nhc3Q8aW50NjRfdD4ob3BlcmFuZCk7CisgICAgV0FTTV9SRVRVUk4o
cmVzdWx0KTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc2F0X2Y2NF91KQor
eworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBj
LT5hczxXYXNtSTY0VHJ1bmNTYXRGNjRVPigpOworICAgIGRvdWJsZSBvcGVyYW5kID0gUkVBRChp
bnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUoKTsKKyAgICB1aW50NjRfdCByZXN1
bHQ7CisgICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8PSAtMS4wKQorICAg
ICAgICByZXN1bHQgPSAwOworICAgIGVsc2UgaWYgKG9wZXJhbmQgPj0gLTIuMCAqIHN0YXRpY19j
YXN0PGRvdWJsZT4oSU5UNjRfTUlOKSkKKyAgICAgICAgcmVzdWx0ID0gVUlOVDY0X01BWDsKKyAg
ICBlbHNlCisgICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihvcGVyYW5kKTsK
KyAgICBXQVNNX1JFVFVSTihyZXN1bHQpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90
cnVuY19zYXRfZjY0X3MpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRv
IGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1NhdEY2NFM+KCk7CisgICAgZG91Ymxl
IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgpOwor
ICAgIGludDY0X3QgcmVzdWx0OworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpKQorICAgICAg
ICByZXN1bHQgPSAwOworICAgIGVsc2UgaWYgKG9wZXJhbmQgPCBzdGF0aWNfY2FzdDxkb3VibGU+
KElOVDY0X01JTikpCisgICAgICAgIHJlc3VsdCA9IElOVDY0X01JTjsKKyAgICBlbHNlIGlmIChv
cGVyYW5kID49IC1zdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0X01JTikpCisgICAgICAgIHJlc3Vs
dCA9IElOVDY0X01BWDsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PGlu
dDY0X3Q+KG9wZXJhbmQpOworICAgIFdBU01fUkVUVVJOKHJlc3VsdCk7Cit9CisjZW5kaWYKKwog
ZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fdGhyb3dfZXhjZXB0
aW9uKENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBXYXNtSW5zdHJ1Y3Rpb24qIHBjLCBXYXNt
OjpJbnN0YW5jZSogaW5zdGFuY2UsIFdhc206OkV4Y2VwdGlvblR5cGUgZXhjZXB0aW9uVHlwZSkK
IHsKICAgICBVTlVTRURfUEFSQU0ocGMpOwpAQCAtNzMxLDE2ICs5NDEsMjggQEAgZXh0ZXJuICJD
IiBTbG93UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fdGhyb3dfZXhjZXB0aW9uKENhbGxG
cmFtZSogY2FsbEZyYW0KIAogZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgc2xvd19wYXRo
X3dhc21fcG9wY291bnQoY29uc3QgV2FzbUluc3RydWN0aW9uKiBwYywgdWludDMyX3QgeCkKIHsK
LSAgICB2b2lkKiByZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PHVpbnQ2
NF90PihfX2J1aWx0aW5fcG9wY291bnQoeCkpKTsKKyAgICB2b2lkKiByZXN1bHQgPSBiaXR3aXNl
X2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PHNpemVfdD4oX19idWlsdGluX3BvcGNvdW50KHgpKSk7
CiAgICAgV0FTTV9SRVRVUk5fVFdPKHBjLCByZXN1bHQpOwogfQogCiBleHRlcm4gIkMiIFNsb3dQ
YXRoUmV0dXJuVHlwZSBzbG93X3BhdGhfd2FzbV9wb3Bjb3VudGxsKGNvbnN0IFdhc21JbnN0cnVj
dGlvbiogcGMsIHVpbnQ2NF90IHgpCiB7Ci0gICAgdm9pZCogcmVzdWx0ID0gYml0d2lzZV9jYXN0
PHZvaWQqPihzdGF0aWNfY2FzdDx1aW50NjRfdD4oX19idWlsdGluX3BvcGNvdW50bGwoeCkpKTsK
KyAgICB2b2lkKiByZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PHNpemVf
dD4oX19idWlsdGluX3BvcGNvdW50bGwoeCkpKTsKICAgICBXQVNNX1JFVFVSTl9UV08ocGMsIHJl
c3VsdCk7CiB9CiAKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorLy8gTm90ZTogQWxsIHRoZXNlIGRp
diBhbmQgcmVtIG9wcyBwZXJmb3JtIGV4Y2VwdGlvbiBjaGVja3MgaW4gYXNtCitleHRlcm4gIkMi
IGludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX2Rpdl9zKGludDMyX3QgYSwgaW50MzJfdCBiKSB7
IHJldHVybiBhIC8gYjsgfQorZXh0ZXJuICJDIiB1aW50MzJfdCBzbG93X3BhdGhfd2FzbV9pMzJf
ZGl2X3UodWludDMyX3QgYSwgdWludDMyX3QgYikgeyByZXR1cm4gYSAvIGI7IH0KK2V4dGVybiAi
QyIgaW50MzJfdCBzbG93X3BhdGhfd2FzbV9pMzJfcmVtX3MoaW50MzJfdCBhLCBpbnQzMl90IGIp
IHsgcmV0dXJuIGEgJSBiOyB9CitleHRlcm4gIkMiIHVpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kz
Ml9yZW1fdSh1aW50MzJfdCBhLCB1aW50MzJfdCBiKSB7IHJldHVybiBhICUgYjsgfQorZXh0ZXJu
ICJDIiBpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9kaXZfcyhpbnQ2NF90IGEsIGludDY0X3Qg
YikgeyByZXR1cm4gYSAvIGI7IH0KK2V4dGVybiAiQyIgdWludDY0X3Qgc2xvd19wYXRoX3dhc21f
aTY0X2Rpdl91KHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIpIHsgcmV0dXJuIGEgLyBiOyB9CitleHRl
cm4gIkMiIGludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X3JlbV9zKGludDY0X3QgYSwgaW50NjRf
dCBiKSB7IHJldHVybiBhICUgYjsgfQorZXh0ZXJuICJDIiB1aW50NjRfdCBzbG93X3BhdGhfd2Fz
bV9pNjRfcmVtX3UodWludDY0X3QgYSwgdWludDY0X3QgYikgeyByZXR1cm4gYSAlIGI7IH0KKyNl
bmRpZgorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6TExJbnQKIAogI2VuZGlmIC8vIEVOQUJMRShX
RUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21T
bG93UGF0aHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuaApp
bmRleCA2NzhjMTcyODM3NjguLmU3MDBkYWQ2OWFhNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21TbG93UGF0aHMuaApAQCAtOTUsNiArOTUsNDAgQEAgZXh0ZXJuICJDIiBTbG93
UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fdGhyb3dfZXhjZXB0aW9uKENhbGxGcmFtZSos
IGNvbnN0IFcKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3Bv
cGNvdW50KGNvbnN0IFdhc21JbnN0cnVjdGlvbiogcGMsIHVpbnQzMl90KSBSRUZFUkVOQ0VEX0ZS
T01fQVNNIFdURl9JTlRFUk5BTDsKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3df
cGF0aF93YXNtX3BvcGNvdW50bGwoY29uc3QgV2FzbUluc3RydWN0aW9uKiBwYywgdWludDY0X3Qp
IFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOwogCisjaWYgVVNFKEpTVkFMVUUzMl82
NCkKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGYzMl9jZWlsKTsKK1dBU01fU0xPV19QQVRI
X0hJRERFTl9ERUNMKGYzMl9mbG9vcik7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmMzJf
dHJ1bmMpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjMyX25lYXJlc3QpOworV0FTTV9T
TE9XX1BBVEhfSElEREVOX0RFQ0woZjY0X2NlaWwpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RF
Q0woZjY0X2Zsb29yKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGY2NF90cnVuYyk7CitX
QVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfbmVhcmVzdCk7CitXQVNNX1NMT1dfUEFUSF9I
SURERU5fREVDTChmMzJfY29udmVydF91X2k2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVD
TChmMzJfY29udmVydF9zX2k2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfY29u
dmVydF91X2k2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfY29udmVydF9zX2k2
NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNfdV9mMzIpOworV0FTTV9T
TE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3NfZjMyKTsKK1dBU01fU0xPV19QQVRIX0hJ
RERFTl9ERUNMKGk2NF90cnVuY191X2Y2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChp
NjRfdHJ1bmNfc19mNjQpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3Nh
dF9mMzJfdSk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNfc2F0X2YzMl9z
KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGk2NF90cnVuY19zYXRfZjY0X3UpOworV0FT
TV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3NhdF9mNjRfcyk7CisjZW5kaWYKKwor
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCitleHRlcm4gIkMiIGludDMyX3Qgc2xvd19wYXRoX3dhc21f
aTMyX2Rpdl9zKGludDMyX3QgYSwgaW50MzJfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9J
TlRFUk5BTDsKK2V4dGVybiAiQyIgdWludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX2Rpdl91KHVp
bnQzMl90IGEsIHVpbnQzMl90IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOwor
ZXh0ZXJuICJDIiBpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9yZW1fcyhpbnQzMl90IGEsIGlu
dDMyX3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMiIHVp
bnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9yZW1fdSh1aW50MzJfdCBhLCB1aW50MzJfdCBiKSBS
RUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgaW50NjRfdCBzbG93
X3BhdGhfd2FzbV9pNjRfZGl2X3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpIFJFRkVSRU5DRURfRlJP
TV9BU00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJDIiB1aW50NjRfdCBzbG93X3BhdGhfd2FzbV9p
NjRfZGl2X3UodWludDY0X3QgYSwgdWludDY0X3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZf
SU5URVJOQUw7CitleHRlcm4gIkMiIGludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X3JlbV9zKGlu
dDY0X3QgYSwgaW50NjRfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK2V4
dGVybiAiQyIgdWludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X3JlbV91KHVpbnQ2NF90IGEsIHVp
bnQ2NF90IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOworI2VuZGlmCisKIH0g
fSAvLyBuYW1lc3BhY2UgSlNDOjpMTEludAogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRp
b24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uY3Bw
CmluZGV4IDUyMjNmM2FiNGU0MC4uNjhjNzg4ODkwNmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uY3BwCkBAIC0zNSw4ICszNSwxMSBAQCB2
b2lkIFZhbHVlTG9jYXRpb246OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBv
dXQucHJpbnQobV9raW5kKTsKICAgICBzd2l0Y2ggKG1fa2luZCkgewotICAgIGNhc2UgUmVnaXN0
ZXI6Ci0gICAgICAgIG91dC5wcmludCgiKCIsIHJlZygpLCAiKSIpOworICAgIGNhc2UgR1BSUmVn
aXN0ZXI6CisgICAgICAgIG91dC5wcmludCgiKCIsIGpzcigpLCAiKSIpOworICAgICAgICByZXR1
cm47CisgICAgY2FzZSBGUFJSZWdpc3RlcjoKKyAgICAgICAgb3V0LnByaW50KCIoIiwgZnByKCks
ICIpIik7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIFN0YWNrOgogICAgICAgICBvdXQucHJp
bnQoIigiLCBvZmZzZXRGcm9tRlAoKSwgIikiKTsKQEAgLTU3LDggKzYwLDExIEBAIHVzaW5nIG5h
bWVzcGFjZSBKU0M6Oldhc207CiB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwg
VmFsdWVMb2NhdGlvbjo6S2luZCBraW5kKQogewogICAgIHN3aXRjaCAoa2luZCkgewotICAgIGNh
c2UgVmFsdWVMb2NhdGlvbjo6UmVnaXN0ZXI6Ci0gICAgICAgIG91dC5wcmludCgiUmVnaXN0ZXIi
KTsKKyAgICBjYXNlIFZhbHVlTG9jYXRpb246OkdQUlJlZ2lzdGVyOgorICAgICAgICBvdXQucHJp
bnQoIkdQUlJlZ2lzdGVyIik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFZhbHVlTG9jYXRp
b246OkZQUlJlZ2lzdGVyOgorICAgICAgICBvdXQucHJpbnQoIkZQUlJlZ2lzdGVyIik7CiAgICAg
ICAgIHJldHVybjsKICAgICBjYXNlIFZhbHVlTG9jYXRpb246OlN0YWNrOgogICAgICAgICBvdXQu
cHJpbnQoIlN0YWNrIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtVmFsdWVMb2NhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVl
TG9jYXRpb24uaAppbmRleCBhNjFmYmE4YmQwMWMuLjVjYjUxMGRiYmQwYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5oCkBAIC00MSwyNSArNDEs
MjcgQEAgY2xhc3MgVmFsdWVMb2NhdGlvbiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6CiAgICAgZW51bSBLaW5kIDogdWludDhfdCB7Ci0gICAgICAgIFJlZ2lzdGVyLAor
ICAgICAgICBHUFJSZWdpc3RlciwKKyAgICAgICAgRlBSUmVnaXN0ZXIsCiAgICAgICAgIFN0YWNr
LAogICAgICAgICBTdGFja0FyZ3VtZW50LAogICAgIH07CiAKICAgICBWYWx1ZUxvY2F0aW9uKCkK
LSAgICAgICAgOiBtX2tpbmQoUmVnaXN0ZXIpCisgICAgICAgIDogbV9raW5kKEdQUlJlZ2lzdGVy
KQogICAgIHsKICAgICB9CiAKLSAgICBleHBsaWNpdCBWYWx1ZUxvY2F0aW9uKFJlZyByZWcpCi0g
ICAgICAgIDogbV9raW5kKFJlZ2lzdGVyKQorICAgIGV4cGxpY2l0IFZhbHVlTG9jYXRpb24oSlNW
YWx1ZVJlZ3MgcmVncykKKyAgICAgICAgOiBtX2tpbmQoR1BSUmVnaXN0ZXIpCiAgICAgewotICAg
ICAgICB1LnJlZyA9IHJlZzsKKyAgICAgICAgdS5qc3IgPSByZWdzOwogICAgIH0KIAotICAgIHN0
YXRpYyBWYWx1ZUxvY2F0aW9uIHJlZyhSZWcgcmVnKQorICAgIGV4cGxpY2l0IFZhbHVlTG9jYXRp
b24oRlBSUmVnIHJlZykKKyAgICAgICAgOiBtX2tpbmQoRlBSUmVnaXN0ZXIpCiAgICAgewotICAg
ICAgICByZXR1cm4gVmFsdWVMb2NhdGlvbihyZWcpOworICAgICAgICB1LmZwciA9IHJlZzsKICAg
ICB9CiAKICAgICBzdGF0aWMgVmFsdWVMb2NhdGlvbiBzdGFjayhpbnRwdHJfdCBvZmZzZXRGcm9t
RlApCkBAIC04MCwyMSArODIsMjIgQEAgcHVibGljOgogCiAgICAgS2luZCBraW5kKCkgY29uc3Qg
eyByZXR1cm4gbV9raW5kOyB9CiAKLSAgICBib29sIGlzUmVnKCkgY29uc3QgeyByZXR1cm4ga2lu
ZCgpID09IFJlZ2lzdGVyOyB9CisgICAgYm9vbCBpc0dQUigpIGNvbnN0IHsgcmV0dXJuIGtpbmQo
KSA9PSBHUFJSZWdpc3RlcjsgfQorICAgIGJvb2wgaXNGUFIoKSBjb25zdCB7IHJldHVybiBraW5k
KCkgPT0gRlBSUmVnaXN0ZXI7IH0KKyAgICBib29sIGlzU3RhY2soKSBjb25zdCB7IHJldHVybiBr
aW5kKCkgPT0gU3RhY2s7IH0KKyAgICBib29sIGlzU3RhY2tBcmd1bWVudCgpIGNvbnN0IHsgcmV0
dXJuIGtpbmQoKSA9PSBTdGFja0FyZ3VtZW50OyB9CiAKLSAgICBSZWcgcmVnKCkgY29uc3QKKyAg
ICBKU1ZhbHVlUmVncyBqc3IoKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJUKGlzUmVnKCkp
OwotICAgICAgICByZXR1cm4gdS5yZWc7CisgICAgICAgIEFTU0VSVChpc0dQUigpKTsKKyAgICAg
ICAgcmV0dXJuIHUuanNyOwogICAgIH0KIAotICAgIGJvb2wgaXNHUFIoKSBjb25zdCB7IHJldHVy
biBpc1JlZygpICYmIHJlZygpLmlzR1BSKCk7IH0KLSAgICBib29sIGlzRlBSKCkgY29uc3QgeyBy
ZXR1cm4gaXNSZWcoKSAmJiByZWcoKS5pc0ZQUigpOyB9Ci0KLSAgICBHUFJSZWcgZ3ByKCkgY29u
c3QgeyByZXR1cm4gcmVnKCkuZ3ByKCk7IH0KLSAgICBGUFJSZWcgZnByKCkgY29uc3QgeyByZXR1
cm4gcmVnKCkuZnByKCk7IH0KLQotICAgIGJvb2wgaXNTdGFjaygpIGNvbnN0IHsgcmV0dXJuIGtp
bmQoKSA9PSBTdGFjazsgfQorICAgIEZQUlJlZyBmcHIoKSBjb25zdAorICAgIHsKKyAgICAgICAg
QVNTRVJUKGlzRlBSKCkpOworICAgICAgICByZXR1cm4gdS5mcHI7CisgICAgfQogCiAgICAgaW50
cHRyX3Qgb2Zmc2V0RnJvbUZQKCkgY29uc3QKICAgICB7CkBAIC0xMDIsOCArMTA1LDYgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gdS5vZmZzZXRGcm9tRlA7CiAgICAgfQogCi0gICAgYm9vbCBp
c1N0YWNrQXJndW1lbnQoKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gU3RhY2tBcmd1bWVudDsg
fQotCiAgICAgaW50cHRyX3Qgb2Zmc2V0RnJvbVNQKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFT
U0VSVChpc1N0YWNrQXJndW1lbnQoKSk7CkBAIC0xMTQsNyArMTE1LDggQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIHVuaW9uIFUgewotICAgICAgICBSZWcgcmVnOworICAgICAgICBKU1ZhbHVl
UmVncyBqc3I7CisgICAgICAgIEZQUlJlZyBmcHI7CiAgICAgICAgIGludHB0cl90IG9mZnNldEZy
b21GUDsKICAgICAgICAgaW50cHRyX3Qgb2Zmc2V0RnJvbVNQOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAKaW5kZXggODk0MjBkODgxMzQ2Li4wZjYyNGUwYjYx
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAKQEAgLTMx
LDYgKzMxLDcgQEAKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJKU0NKU1Zh
bHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlJbnN0YW5jZS5oIgorI2luY2x1
ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiV2FzbUNhbGxp
bmdDb252ZW50aW9uLmgiCiAjaW5jbHVkZSAiV2FzbUNvbnRleHRJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiV2FzbU9wZXJhdGlvbnMuaCIKQEAgLTQxLDEzICs0MiwxMyBAQCBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIFdhc20gewogdm9pZCBtYXJzaGFsbEpTUmVzdWx0KENDYWxsSGVscGVycyYgaml0
LCBjb25zdCBUeXBlRGVmaW5pdGlvbiYgdHlwZURlZmluaXRpb24sIGNvbnN0IENhbGxJbmZvcm1h
dGlvbiYgd2FzbUZyYW1lQ29udmVudGlvbiwgY29uc3QgUmVnaXN0ZXJBdE9mZnNldExpc3QmIHNh
dmVkUmVzdWx0UmVnaXN0ZXJzKQogewogICAgIGNvbnN0IGF1dG8mIHNpZ25hdHVyZSA9ICp0eXBl
RGVmaW5pdGlvbi5hczxGdW5jdGlvblNpZ25hdHVyZT4oKTsKLSAgICBhdXRvIGJveFdhc21SZXN1
bHQgPSBbXShDQ2FsbEhlbHBlcnMmIGppdCwgVHlwZSB0eXBlLCBSZWcgc3JjLCBKU1ZhbHVlUmVn
cyBkc3QpIHsKKyAgICBhdXRvIGJveFdhc21SZXN1bHQgPSBbXShDQ2FsbEhlbHBlcnMmIGppdCwg
VHlwZSB0eXBlLCBWYWx1ZUxvY2F0aW9uIHNyYywgSlNWYWx1ZVJlZ3MgZHN0KSB7CiAgICAgICAg
IHN3aXRjaCAodHlwZS5raW5kKSB7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlZvaWQ6CiAgICAg
ICAgICAgICBqaXQubW92ZVRydXN0ZWRWYWx1ZShqc1VuZGVmaW5lZCgpLCBkc3QpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkkzMjoKLSAgICAgICAgICAgIGpp
dC56ZXJvRXh0ZW5kMzJUb1dvcmQoc3JjLmdwcigpLCBkc3QucGF5bG9hZEdQUigpKTsKKyAgICAg
ICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoc3JjLmpzcigpLnBheWxvYWRHUFIoKSwgZHN0
LnBheWxvYWRHUFIoKSk7CiAgICAgICAgICAgICBqaXQuYm94SW50MzIoZHN0LnBheWxvYWRHUFIo
KSwgZHN0LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKQEAgLTU2LDEzICs1NywxNyBAQCB2b2lkIG1hcnNoYWxs
SlNSZXN1bHQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFR5cGVEZWZpbml0aW9uJiB0eXBlRGVm
aW5pdGlvbiwgYwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6IHsKICAgICAgICAgICAgIGpp
dC5tb3ZlVHJ1c3RlZFZhbHVlKGpzTnVtYmVyKHB1cmVOYU4oKSksIGRzdCk7CiAgICAgICAgICAg
ICBhdXRvIGlzTmFOID0gaml0LmJyYW5jaElmTmFOKHNyYy5mcHIoKSk7CisjaWYgVVNFKEpTVkFM
VUU2NCkKICAgICAgICAgICAgIGppdC5ib3hEb3VibGUoc3JjLmZwcigpLCBkc3QsIERvTm90SGF2
ZVRhZ1JlZ2lzdGVycyk7CisjZWxzZQorICAgICAgICAgICAgaml0LmJveERvdWJsZShzcmMuZnBy
KCksIGRzdCk7CisjZW5kaWYKICAgICAgICAgICAgIGlzTmFOLmxpbmsoJmppdCk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OiB7CiAgICAgICAgICAgICBp
ZiAoaXNGdW5jcmVmKHR5cGUpIHx8IGlzRXh0ZXJucmVmKHR5cGUpKQotICAgICAgICAgICAgICAg
IGppdC5tb3ZlKHNyYy5ncHIoKSwgZHN0LnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICAgICAg
aml0Lm1vdmVWYWx1ZVJlZ3Moc3JjLmpzcigpLCBkc3QpOwogICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgIGppdC5icmVha3BvaW50KCk7CiAgICAgICAgIH0KQEAgLTcwLDQ0ICs3NSw4
NyBAQCB2b2lkIG1hcnNoYWxsSlNSZXN1bHQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFR5cGVE
ZWZpbml0aW9uJiB0eXBlRGVmaW5pdGlvbiwgYwogICAgIH07CiAKICAgICBpZiAoc2lnbmF0dXJl
LnJldHVybnNWb2lkKCkpCi0gICAgICAgIGppdC5tb3ZlVHJ1c3RlZFZhbHVlKGpzVW5kZWZpbmVk
KCksIEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIgfSk7CisgICAgICAgIGpp
dC5tb3ZlVHJ1c3RlZFZhbHVlKGpzVW5kZWZpbmVkKCksIEpTUkluZm86OnJldHVyblZhbHVlSlNS
KTsKICAgICBlbHNlIGlmIChzaWduYXR1cmUucmV0dXJuQ291bnQoKSA9PSAxKSB7CiAgICAgICAg
IGlmIChzaWduYXR1cmUucmV0dXJuVHlwZSgwKS5pc0k2NCgpKSB7Ci0gICAgICAgICAgICBHUFJS
ZWcgaW5wdXRHUFIgPSB3YXNtRnJhbWVDb252ZW50aW9uLnJlc3VsdHNbMF0ucmVnKCkuZ3ByKCk7
CisgICAgICAgICAgICBKU1ZhbHVlUmVncyBpbnB1dEpTUiA9IHdhc21GcmFtZUNvbnZlbnRpb24u
cmVzdWx0c1swXS5qc3IoKTsKICAgICAgICAgICAgIEdQUlJlZyB3YXNtQ29udGV4dEluc3RhbmNl
R1BSID0gUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKS53YXNtQ29udGV4dEluc3RhbmNlUG9pbnRl
cjsKICAgICAgICAgICAgIGlmIChDb250ZXh0Ojp1c2VGYXN0VExTKCkpIHsKLSAgICAgICAgICAg
ICAgICB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gaW5wdXRHUFIgPT0gR1BSSW5mbzo6YXJndW1l
bnRHUFIxID8gR1BSSW5mbzo6YXJndW1lbnRHUFIwIDogR1BSSW5mbzo6YXJndW1lbnRHUFIxOwot
ICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lX3Y8V2FzbTo6SW5zdGFu
Y2UqLCB0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxkZWNsdHlwZShvcGVyYXRpb25BbGxvY2F0ZVJl
c3VsdHNBcnJheSk+OjpBcmd1bWVudFR5cGU8MT4+KTsKKyAgICAgICAgICAgICAgICB3YXNtQ29u
dGV4dEluc3RhbmNlR1BSID0gaW5wdXRKU1IucGF5bG9hZEdQUigpID09IEdQUkluZm86OmFyZ3Vt
ZW50R1BSMSA/IEdQUkluZm86OmFyZ3VtZW50R1BSMCA6IEdQUkluZm86OmFyZ3VtZW50R1BSMTsK
KyAgICAgICAgICAgICAgICBBU1NFUlQoIWlucHV0SlNSLnVzZXMod2FzbUNvbnRleHRJbnN0YW5j
ZUdQUikpOworICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lX3Y8V2Fz
bTo6SW5zdGFuY2UqLCB0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxkZWNsdHlwZShvcGVyYXRpb25D
b252ZXJ0VG9CaWdJbnQpPjo6QXJndW1lbnRUeXBlPDE+Pik7CiAgICAgICAgICAgICAgICAgaml0
LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHdhc21Db250ZXh0SW5zdGFuY2VHUFIpOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlv
bkNvbnZlcnRUb0JpZ0ludCk+KHdhc21Db250ZXh0SW5zdGFuY2VHUFIsIGlucHV0R1BSKTsKKyAg
ICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9C
aWdJbnQpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCBpbnB1dEpTUik7CiAgICAgICAgICAgICBq
aXQuY2FsbE9wZXJhdGlvbihGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkNv
bnZlcnRUb0JpZ0ludCkpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGJveFdhc21SZXN1
bHQoaml0LCBzaWduYXR1cmUucmV0dXJuVHlwZSgwKSwgd2FzbUZyYW1lQ29udmVudGlvbi5yZXN1
bHRzWzBdLnJlZygpLCBKU1ZhbHVlUmVncyB7IEdQUkluZm86OnJldHVyblZhbHVlR1BSIH0pOwor
ICAgICAgICAgICAgYm94V2FzbVJlc3VsdChqaXQsIHNpZ25hdHVyZS5yZXR1cm5UeXBlKDApLCB3
YXNtRnJhbWVDb252ZW50aW9uLnJlc3VsdHNbMF0sIEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsK
ICAgICB9IGVsc2UgewogICAgICAgICBJbmRleGluZ1R5cGUgaW5kZXhpbmdUeXBlID0gQXJyYXlX
aXRoVW5kZWNpZGVkOwotICAgICAgICBKU1ZhbHVlUmVncyBzY3JhdGNoID0gSlNWYWx1ZVJlZ3Mg
eyB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdIH07CisgICAg
ICAgIEpTVmFsdWVSZWdzIHNjcmF0Y2hKU1IgPSBKU1ZhbHVlUmVncyB7CisjaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAgICAgICAgIHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2Ny
YXRjaEdQUnNbMl0sCisjZW5kaWYKKyAgICAgICAgICAgIHdhc21DYWxsaW5nQ29udmVudGlvbigp
LnByb2xvZ3VlU2NyYXRjaEdQUnNbMV0KKyAgICAgICAgfTsKKworICAgICAgICBBU1NFUlQoc2Ny
YXRjaEpTUi5wYXlsb2FkR1BSKCkgIT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsKKyNpZiBVU0Uo
SlNWQUxVRTMyXzY0KQorICAgICAgICBBU1NFUlQoc2NyYXRjaEpTUi50YWdHUFIoKSAhPSBHUFJS
ZWc6OkludmFsaWRHUFJSZWcpOworICAgICAgICBBU1NFUlQoc2NyYXRjaEpTUi5wYXlsb2FkR1BS
KCkgIT0gc2NyYXRjaEpTUi50YWdHUFIoKSk7CisjZW5kaWYKKwogICAgICAgICAvLyBXZSBjYW4g
dXNlIHRoZSBmaXJzdCBmbG9hdGluZyBwb2ludCByZWdpc3RlciBhcyBhIHNjcmF0Y2ggc2luY2Ug
aXQgd2lsbCBhbHdheXMgYmUgbW92ZWQgb250byB0aGUgc3RhY2sgYmVmb3JlIG90aGVyIHZhbHVl
cy4KLSAgICAgICAgRlBSUmVnIGZwclNjcmF0Y2ggPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5m
cHJBcmdzWzBdLmZwcigpOworICAgICAgICBGUFJSZWcgZnByU2NyYXRjaCA9IHdhc21DYWxsaW5n
Q29udmVudGlvbigpLmZwckFyZ3NbMF07CiAgICAgICAgIGJvb2wgaGFzSTY0ID0gZmFsc2U7CiAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaWduYXR1cmUucmV0dXJuQ291bnQoKTsg
KytpKSB7CiAgICAgICAgICAgICBWYWx1ZUxvY2F0aW9uIGxvYyA9IHdhc21GcmFtZUNvbnZlbnRp
b24ucmVzdWx0c1tpXTsKICAgICAgICAgICAgIFR5cGUgdHlwZSA9IHNpZ25hdHVyZS5yZXR1cm5U
eXBlKGkpOwogCiAgICAgICAgICAgICBoYXNJNjQgfD0gdHlwZS5pc0k2NCgpOwotICAgICAgICAg
ICAgaWYgKGxvYy5pc1JlZygpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCF0eXBlLmlzSTY0KCkp
IHsKLSAgICAgICAgICAgICAgICAgICAgYm94V2FzbVJlc3VsdChqaXQsIHNpZ25hdHVyZS5yZXR1
cm5UeXBlKGkpLCBsb2MucmVnKCksIHNjcmF0Y2gpOwotICAgICAgICAgICAgICAgICAgICBqaXQu
c3RvcmVWYWx1ZShzY3JhdGNoLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpz
dGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MucmVnKCkp
LT5vZmZzZXQoKSArIHdhc21GcmFtZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1lbnRTdGFja1Np
emVJbkJ5dGVzKSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAg
IGppdC5zdG9yZVZhbHVlKEpTVmFsdWVSZWdzIHsgbG9jLnJlZygpLmdwcigpIH0sIENDYWxsSGVs
cGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJl
c3VsdFJlZ2lzdGVycy5maW5kKGxvYy5yZWcoKSktPm9mZnNldCgpICsgd2FzbUZyYW1lQ29udmVu
dGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpKTsKKyAgICAgICAgICAgIGlm
IChsb2MuaXNHUFIoKSB8fCBsb2MuaXNGUFIoKSkgeworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisg
ICAgICAgICAgICAgICAgQVNTRVJUKCFsb2MuaXNHUFIoKSB8fCBzYXZlZFJlc3VsdFJlZ2lzdGVy
cy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSArIDQgPT0gc2F2ZWRSZXN1
bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkudGFnR1BSKCkpLT5vZmZzZXQoKSk7CisjZW5kaWYK
KyAgICAgICAgICAgICAgICBhdXRvIGFkZHJlc3MgPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0Nh
bGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgd2FzbUZyYW1lQ29udmVudGlvbi5oZWFk
ZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpOworICAgICAgICAgICAgICAgIHN3aXRjaCAo
dHlwZS5raW5kKSB7CisgICAgICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgorICAgICAg
ICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2NDoKKyAgICAgICAgICAgICAgICAgICAgYm94V2Fz
bVJlc3VsdChqaXQsIHR5cGUsIGxvYywgc2NyYXRjaEpTUik7CisgICAgICAgICAgICAgICAgICAg
IGppdC5zdG9yZVZhbHVlKHNjcmF0Y2hKU1IsIGFkZHJlc3Mud2l0aE9mZnNldChzYXZlZFJlc3Vs
dFJlZ2lzdGVycy5maW5kKGxvYy5mcHIoKSktPm9mZnNldCgpKSk7CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDoKKyAgICAgICAg
ICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUobG9jLmpzcigpLCBhZGRyZXNzLndpdGhPZmZzZXQo
c2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0
KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgICAgICAgICAgYm94V2FzbVJlc3VsdChqaXQsIHR5cGUsIGxvYywgc2Ny
YXRjaEpTUik7CisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2hKU1Is
IGFkZHJlc3Mud2l0aE9mZnNldChzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS5w
YXlsb2FkR1BSKCkpLT5vZmZzZXQoKSkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGlm
ICghdHlwZS5pc0k2NCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gbG9jYXRpb24gPSBD
Q2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwg
bG9jLm9mZnNldEZyb21TUCgpKTsKLSAgICAgICAgICAgICAgICAgICAgUmVnIHRtcCA9ICh0eXBl
LmlzRjMyKCkgfHwgdHlwZS5pc0Y2NCgpKSA/IFJlZyhmcHJTY3JhdGNoKSA6IFJlZyhzY3JhdGNo
LmdwcigpKTsKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NFRvUmVnKGxvY2F0aW9uLCB0
bXApOwotICAgICAgICAgICAgICAgICAgICBib3hXYXNtUmVzdWx0KGppdCwgc2lnbmF0dXJlLnJl
dHVyblR5cGUoaSksIHRtcCwgc2NyYXRjaCk7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5zdG9y
ZVZhbHVlKHNjcmF0Y2gsIGxvY2F0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgVmFsdWVMb2Nh
dGlvbiB0bXA7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZS5raW5kKSB7CisgICAg
ICAgICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRtcCA9IFZhbHVlTG9jYXRpb24geyBmcHJTY3JhdGNoIH07CisgICAgICAgICAgICAgICAg
ICAgICAgICBqaXQubG9hZEZsb2F0KGxvY2F0aW9uLCBmcHJTY3JhdGNoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpG
NjQ6CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBWYWx1ZUxvY2F0aW9uIHsgZnByU2Ny
YXRjaCB9OworICAgICAgICAgICAgICAgICAgICAgICAgaml0LmxvYWREb3VibGUobG9jYXRpb24s
IGZwclNjcmF0Y2gpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkkzMjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHRt
cCA9IFZhbHVlTG9jYXRpb24geyBzY3JhdGNoSlNSIH07CisgICAgICAgICAgICAgICAgICAgICAg
ICBqaXQubG9hZDMyKGxvY2F0aW9uLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFZhbHVlTG9jYXRpb24geyBzY3JhdGNoSlNSIH07
CisgICAgICAgICAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGxvY2F0aW9uLCBzY3JhdGNo
SlNSKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIGJveFdhc21SZXN1bHQoaml0LCB0eXBlLCB0bXAsIHNj
cmF0Y2hKU1IpOworICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNoSlNS
LCBsb2NhdGlvbik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCkBAIC0xMzYs
MzcgKzE4NCw0NyBAQCB2b2lkIG1hcnNoYWxsSlNSZXN1bHQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNv
bnN0IFR5cGVEZWZpbml0aW9uJiB0eXBlRGVmaW5pdGlvbiwgYwogCiAgICAgICAgICAgICAgICAg
R1BSUmVnIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBQaW5uZWRSZWdpc3RlckluZm86OmdldCgp
Lndhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyOwogICAgICAgICAgICAgICAgIGlmIChDb250ZXh0
Ojp1c2VGYXN0VExTKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5j
ZUdQUiA9IEdQUkluZm86OmFyZ3VtZW50R1BSMTsKLSAgICAgICAgICAgICAgICAgICAgc3RhdGlj
X2Fzc2VydChzdGQ6OmlzX3NhbWVfdjxXYXNtOjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0aW9u
VHJhaXRzPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KT46OkFyZ3VtZW50
VHlwZTwxPj4pOworICAgICAgICAgICAgICAgICAgICB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0g
cHJlZmVycmVkQXJndW1lbnRHUFI8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KSwg
MT4oKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWVfdjxX
YXNtOjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPGRlY2x0eXBlKG9wZXJhdGlv
bkNvbnZlcnRUb0JpZ0ludCk+OjpBcmd1bWVudFR5cGU8MT4+KTsKICAgICAgICAgICAgICAgICAg
ICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHdhc21Db250ZXh0SW5zdGFuY2VHUFIpOwog
ICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGlmIChsb2MuaXNSZWcoKSkKLSAg
ICAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NChDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxI
ZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChs
b2MucmVnKCkpLT5vZmZzZXQoKSArIHdhc21GcmFtZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1l
bnRTdGFja1NpemVJbkJ5dGVzKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBsb2NhdGlvbiA9IENDYWxsSGVs
cGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBsb2Mub2Zm
c2V0RnJvbVNQKCkpOwotICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDY0VG9SZWcobG9jYXRp
b24sIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJ
bnQpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAg
ICAgICAgICAgICAgIGNvbnN0ZXhwciBKU1ZhbHVlUmVncyB2YWx1ZUpTUiA9IHByZWZlcnJlZEFy
Z3VtZW50SlNSPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCksIDI+KCk7CisKKyAg
ICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgYWRkcmVzcyB7IENDYWxsSGVscGVy
czo6c3RhY2tQb2ludGVyUmVnaXN0ZXIgfTsKKyAgICAgICAgICAgICAgICBpZiAobG9jLmlzR1BS
KCkgfHwgbG9jLmlzRlBSKCkpIHsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAg
ICAgICAgICBBU1NFUlQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9h
ZEdQUigpKS0+b2Zmc2V0KCkgKyA0ID09IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpz
cigpLnRhZ0dQUigpKS0+b2Zmc2V0KCkpOworI2VuZGlmCisgICAgICAgICAgICAgICAgICAgIGFk
ZHJlc3MgPSBhZGRyZXNzLndpdGhPZmZzZXQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2Mu
anNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkgKyB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRl
ckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcyk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSBhZGRyZXNzLndpdGhPZmZzZXQobG9jLm9mZnNl
dEZyb21TUCgpKTsKKworICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoYWRkcmVzcywgdmFs
dWVKU1IpOworICAgICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVy
YXRpb25Db252ZXJ0VG9CaWdJbnQpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCB2YWx1ZUpTUik7
CiAgICAgICAgICAgICAgICAgaml0LmNhbGxPcGVyYXRpb24oRnVuY3Rpb25QdHI8T3BlcmF0aW9u
UHRyVGFnPihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpKTsKLSAgICAgICAgICAgICAgICBpZiAo
bG9jLmlzUmVnKCkpCi0gICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTVmFsdWVS
ZWdzIHsgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIgfSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEND
YWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZp
bmQobG9jLnJlZygpKS0+b2Zmc2V0KCkgKyB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFy
Z3VtZW50U3RhY2tTaXplSW5CeXRlcykpOwotICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAg
ICAgICAgICAgICAgICBhdXRvIGxvY2F0aW9uID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxs
SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIGxvYy5vZmZzZXRGcm9tU1AoKSk7Ci0gICAg
ICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIgfSwgbG9jYXRpb24pOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBqaXQuc3RvcmVWYWx1ZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgYWRkcmVzcyk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBHUFJSZWcgd2FzbUNvbnRleHRJbnN0
YW5jZUdQUiA9IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCkud2FzbUNvbnRleHRJbnN0YW5jZVBv
aW50ZXI7CiAgICAgICAgIGlmIChDb250ZXh0Ojp1c2VGYXN0VExTKCkpIHsKLSAgICAgICAgICAg
IHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBHUFJJbmZvOjphcmd1bWVudEdQUjE7CisgICAgICAg
ICAgICB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gcHJlZmVycmVkQXJndW1lbnRHUFI8ZGVjbHR5
cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXkpLCAxPigpOwogICAgICAgICAgICAgc3Rh
dGljX2Fzc2VydChzdGQ6OmlzX3NhbWVfdjxXYXNtOjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0
aW9uVHJhaXRzPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KT46OkFyZ3Vt
ZW50VHlwZTwxPj4pOwogICAgICAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHdh
c21Db250ZXh0SW5zdGFuY2VHUFIpOwogICAgICAgICB9CiAKLSAgICAgICAgaml0LnNldHVwQXJn
dW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KT4od2FzbUNvbnRl
eHRJbnN0YW5jZUdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZ0eXBlRGVmaW5pdGlv
biksIGluZGV4aW5nVHlwZSwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7Cisg
ICAgICAgIGNvbnN0ZXhwciBHUFJSZWcgc2F2ZWRSZXN1bHRzR1BSID0gcHJlZmVycmVkQXJndW1l
bnRHUFI8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXkpLCA0PigpOworICAg
ICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJl
c3VsdHNHUFIpOworICAgICAgICBpZiBjb25zdGV4cHIgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsKQorICAgICAgICAgICAgaml0LnN1YlB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
MihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIENDYWxsSGVscGVyczo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOworICAgICAgICBBU1NFUlQod2FzbUNvbnRleHRJbnN0YW5jZUdQUiAhPSBz
YXZlZFJlc3VsdHNHUFIpOworICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3Bl
cmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXkpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCBDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoJnR5cGVEZWZpbml0aW9uKSwgaW5kZXhpbmdUeXBlLCBz
YXZlZFJlc3VsdHNHUFIpOwogICAgICAgICBqaXQuY2FsbE9wZXJhdGlvbihGdW5jdGlvblB0cjxP
cGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KSk7CisgICAgICAg
IGlmIGNvbnN0ZXhwciAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAg
ICBqaXQuYWRkUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50Rm9y
U2xvd1BhdGhDYWxsKSwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisKKyAg
ICAgICAgaml0LmJveENlbGwoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEpTUkluZm86OnJldHVy
blZhbHVlSlNSKTsKICAgICB9CiB9CiAKQEAgLTE3OCw3ICsyMzYsMTEgQEAgc3RkOjp1bmlxdWVf
cHRyPEludGVybmFsRnVuY3Rpb24+IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMm
IGppdCwgY29uc3QKICAgICAvLyBGSVhNRSBTdG9wIHVzaW5nIDAgYXMgY29kZUJsb2Nrcy4gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTMyMQogICAgIGppdC5lbWl0
WmVyb1RvQ2FsbEZyYW1lSGVhZGVyKENhbGxGcmFtZVNsb3Q6OmNvZGVCbG9jayk7CiAgICAgTWFj
cm9Bc3NlbWJsZXI6OkRhdGFMYWJlbFB0ciBjYWxsZWVNb3ZlTG9jYXRpb24gPSBqaXQubW92ZVdp
dGhQYXRjaChNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihudWxscHRyKSwgR1BSSW5mbzo6
bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSKTsKLSAgICBqaXQuZW1pdFB1dFRvQ2FsbEZyYW1lSGVh
ZGVyKEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQUiwgQ2FsbEZyYW1lU2xvdDo6Y2Fs
bGVlKTsKKyAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgY2FsbGVlU2xvdCB7IEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWVTbG90OjpjYWxsZWUgKiBzaXplb2YoUmVnaXN0ZXIp
IH07CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQUiwg
Y2FsbGVlU2xvdC53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyNpZiBVU0UoSlNWQUxVRTMy
XzY0KQorICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6
Oldhc21UYWcpLCBjYWxsZWVTbG90LndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7CisjZW5kaWYKICAg
ICBWZWN0b3I8Q29kZUxvY2F0aW9uRGF0YUxhYmVsUHRyPFdhc21FbnRyeVB0clRhZz4+KiBsaW5r
ZWRDYWxsZWVNb3ZlID0gJnJlc3VsdC0+Y2FsbGVlTW92ZUxvY2F0aW9uczsKICAgICBqaXQuYWRk
TGlua1Rhc2soWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CiAgICAgICAgIGxpbmtlZENh
bGxlZU1vdmUtPmFwcGVuZChsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8V2FzbUVudHJ5UHRyVGFnPihj
YWxsZWVNb3ZlTG9jYXRpb24pKTsKQEAgLTIyMyw5ICsyODUsMTIgQEAgc3RkOjp1bmlxdWVfcHRy
PEludGVybmFsRnVuY3Rpb24+IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGpp
dCwgY29uc3QKIAogICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgY2FsbGVlRnJhbWUgPSBD
Q2FsbEhlbHBlcnM6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
LCAwKTsKIAotICAgICAgICAvLyBXZSdyZSBnb2luZyB0byBzZXQgdGhlIHBpbm5lZCByZWdpc3Rl
cnMgYWZ0ZXIgdGhpcy4gU28KLSAgICAgICAgLy8gd2UgY2FuIHVzZSB0aGlzIGFzIGEgc2NyYXRj
aCBmb3Igbm93IHNpbmNlIHdlIHNhdmVkIGl0IGFib3ZlLgotICAgICAgICBHUFJSZWcgc2NyYXRj
aFJlZyA9IHBpbm5lZFJlZ3MuYmFzZU1lbW9yeVBvaW50ZXI7CisgICAgICAgIEpTVmFsdWVSZWdz
IHNjcmF0Y2hKU1IgeworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICB3YXNtQ2Fs
bGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzJdLAorI2VuZGlmCisgICAgICAg
ICAgICB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdCisgICAg
ICAgIH07CiAKICAgICAgICAgaWYgKCFDb250ZXh0Ojp1c2VGYXN0VExTKCkpIHsKICAgICAgICAg
ICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3RlciwgSlNDYWxsaW5nQ29udmVudGlvbjo6aW5zdGFuY2VTdGFja09mZnNldCksIHdhc21D
b250ZXh0SW5zdGFuY2VHUFIpOwpAQCAtMjM5LDIyICszMDQsMzQgQEAgc3RkOjp1bmlxdWVfcHRy
PEludGVybmFsRnVuY3Rpb24+IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGpp
dCwgY29uc3QKICAgICAgICAgICAgIFR5cGUgdHlwZSA9IHNpZ25hdHVyZS5hcmd1bWVudFR5cGUo
aSk7CiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MganNQYXJhbShHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3RlciwganNGcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLm9mZnNldEZyb21G
UCgpKTsKICAgICAgICAgICAgIGlmICh3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5pc1N0
YWNrQXJndW1lbnQoKSkgeworICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBh
ZGRyIHsgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tp
XS5vZmZzZXRGcm9tU1AoKSkgfTsKICAgICAgICAgICAgICAgICBpZiAodHlwZS5pc0kzMigpIHx8
IHR5cGUuaXNGMzIoKSkgewotICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDMyKGpzUGFyYW0s
IHNjcmF0Y2hSZWcpOwotICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihzY3JhdGNoUmVn
LCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLm9m
ZnNldEZyb21TUCgpKSk7CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkMzIoanNQYXJhbSwg
c2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmUz
MihzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgYWRkci53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQp
KTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmUz
MihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSwgYWRkci53aXRoT2Zmc2V0KFRhZ09mZnNl
dCkpOworI2VuZGlmCiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNoUmVnKTsKLSAgICAgICAgICAgICAgICAgICAg
aml0LnN0b3JlNjQoc2NyYXRjaFJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtRnJhbWVD
b252ZW50aW9uLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkpOworICAgICAgICAgICAgICAgICAg
ICBqaXQubG9hZFZhbHVlKGpzUGFyYW0sIHNjcmF0Y2hKU1IpOworICAgICAgICAgICAgICAgICAg
ICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNoSlNSLCBhZGRyKTsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGlmICh0eXBlLmlzSTMyKCkgfHwg
dHlwZS5pc0YzMigpKQotICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDMyVG9SZWcoanNQYXJh
bSwgd2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0ucmVnKCkpOwotICAgICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NFRvUmVnKGpzUGFyYW0sIHdhc21G
cmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLnJlZygpKTsKKyAgICAgICAgICAgICAgICBpZiAodHlw
ZS5pc0YzMigpKQorICAgICAgICAgICAgICAgICAgICBqaXQubG9hZEZsb2F0KGpzUGFyYW0sIHdh
c21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLmZwcigpKTsKKyAgICAgICAgICAgICAgICBlbHNl
IGlmICh0eXBlLmlzRjY0KCkpCisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkRG91YmxlKGpz
UGFyYW0sIHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLmZwcigpKTsKKyAgICAgICAgICAg
ICAgICBlbHNlIGlmICh0eXBlLmlzSTMyKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaml0Lmxv
YWQzMihqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5qc3IoKS5wYXlsb2Fk
R1BSKCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgICAgIGppdC5t
b3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCB3YXNtRnJhbWVDb252ZW50aW9uLnBh
cmFtc1tpXS5qc3IoKS50YWdHUFIoKSk7CisjZW5kaWYKKyAgICAgICAgICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShqc1BhcmFtLCB3YXNtRnJhbWVDb252
ZW50aW9uLnBhcmFtc1tpXS5qc3IoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9
CiAKKyNpZiAhQ1BVKEFSTSkgLy8gQVJNIGhhcyBubyBwaW5uZWQgcmVnaXN0ZXJzIGZvciBXYXNt
IE1lbW9yeSwgc28gbm8gbmVlZCB0byBzZXQgdGhlbSB1cAogICAgIGlmICghIWluZm8ubWVtb3J5
KSB7CiAgICAgICAgIEdQUlJlZyBiYXNlTWVtb3J5ID0gcGlubmVkUmVncy5iYXNlTWVtb3J5UG9p
bnRlcjsKICAgICAgICAgR1BSUmVnIHNpemUgPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9s
b2d1ZVNjcmF0Y2hHUFJzWzBdOwpAQCAtMjY1LDE3ICszNDIsMTggQEAgc3RkOjp1bmlxdWVfcHRy
PEludGVybmFsRnVuY3Rpb24+IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGpp
dCwgY29uc3QKIAogICAgICAgICBHUFJSZWcgY3VycmVudEluc3RhbmNlR1BSID0gQ29udGV4dDo6
dXNlRmFzdFRMUygpID8gYmFzZU1lbW9yeSA6IHdhc21Db250ZXh0SW5zdGFuY2VHUFI7CiAgICAg
ICAgIGlmIChpc0FSTTY0RSgpKSB7Ci0gICAgICAgICAgICBpZiAobW9kZSAhPSBXYXNtOjpNZW1v
cnlNb2RlOjpTaWduYWxpbmcpCisgICAgICAgICAgICBpZiAobW9kZSA9PSBXYXNtOjpNZW1vcnlN
b2RlOjpCb3VuZHNDaGVja2luZykKICAgICAgICAgICAgICAgICBzaXplID0gcGlubmVkUmVncy5i
b3VuZHNDaGVja2luZ1NpemVSZWdpc3RlcjsKICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxs
SGVscGVyczo6QWRkcmVzcyhjdXJyZW50SW5zdGFuY2VHUFIsIFdhc206Okluc3RhbmNlOjpvZmZz
ZXRPZkNhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSgpKSwgc2l6ZSk7CiAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICBpZiAobW9kZSAhPSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmcpCisg
ICAgICAgICAgICBpZiAobW9kZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykK
ICAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoY3VycmVu
dEluc3RhbmNlR1BSLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHNDaGVja2lu
Z1NpemUoKSksIHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIpOwogICAgICAg
ICB9CiAKICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGN1cnJlbnRJ
bnN0YW5jZUdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNl
TWVtb3J5KTsKICAgICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5QW5kVW50YWcoR2lnYWNhZ2U6
OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwgc2l6ZSwgc2NyYXRjaCk7CiAgICAgfQorI2VuZGlmCiAK
ICAgICBDQ2FsbEhlbHBlcnM6OkNhbGwgY2FsbCA9IGppdC50aHJlYWRTYWZlUGF0Y2hhYmxlTmVh
ckNhbGwoKTsKICAgICB1bnNpZ25lZCBmdW5jdGlvbkluZGV4U3BhY2UgPSBmdW5jdGlvbkluZGV4
ICsgaW5mby5pbXBvcnRGdW5jdGlvbkNvdW50KCk7CkBAIC0yODgsNyArMzY2LDcgQEAgc3RkOjp1
bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhl
bHBlcnMmIGppdCwgY29uc3QKIAogICAgIGZvciAoY29uc3QgUmVnaXN0ZXJBdE9mZnNldCYgcmVn
QXRPZmZzZXQgOiByZWdpc3RlcnNUb1NwaWxsKSB7CiAgICAgICAgIEdQUlJlZyByZWcgPSByZWdB
dE9mZnNldC5yZWcoKS5ncHIoKTsKLSAgICAgICAgQVNTRVJUKHJlZyAhPSBHUFJJbmZvOjpyZXR1
cm5WYWx1ZUdQUik7CisgICAgICAgIEFTU0VSVCghSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IudXNl
cyhyZWcpKTsKICAgICAgICAgcHRyZGlmZl90IG9mZnNldCA9IHJlZ0F0T2Zmc2V0Lm9mZnNldCgp
OwogICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6Y2Fs
bEZyYW1lUmVnaXN0ZXIsIG9mZnNldCksIHJlZyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2FzbVRvSlMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2FzbVRvSlMuY3BwCmluZGV4IDY1OTQ1ZGMxNTdjZS4uZTg1ZWM5YTIyNjQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2FzbVRvSlMuY3BwCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiSlNXZWJBc3Nl
bWJseUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorI2luY2x1ZGUgIk1heEZy
YW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiVGh1bmtHZW5lcmF0b3JzLmgi
CiAjaW5jbHVkZSAiV2FzbUNhbGxpbmdDb252ZW50aW9uLmgiCiAjaW5jbHVkZSAiV2FzbUNvbnRl
eHRJbmxpbmVzLmgiCkBAIC02OSw3ICs3MCw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAg
ICAgLy8gSWYgd2UgZXZlciBjaGFuZ2UgdGhpcywgd2Ugd2lsbCBhbHNvIG5lZWQgdG8gY2hhbmdl
IFdhc21CM0lSR2VuZXJhdG9yLgogCiAgICAgLy8gQmVsb3csIHdlIGFzc3VtZSB0aGF0IHRoZSBK
UyBjYWxsaW5nIGNvbnZlbnRpb24gaXMgYWx3YXlzIG9uIHRoZSBzdGFjay4KLSAgICBBU1NFUlQo
IWpzQ0MuZ3ByQXJncy5zaXplKCkpOworICAgIEFTU0VSVCghanNDQy5qc3JBcmdzLnNpemUoKSk7
CiAgICAgQVNTRVJUKCFqc0NDLmZwckFyZ3Muc2l6ZSgpKTsKIAogICAgIGppdC5lbWl0RnVuY3Rp
b25Qcm9sb2d1ZSgpOwpAQCAtODYsMTQgKzg3LDIyIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVy
Q29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZt
CiAgICAgLy8gZm9yIHVzIGhlcmUuCiAKICAgICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlBhcmFt
ZXRlcnMgPSBhcmdDb3VudCArIDE7IC8vIFRoZXJlIGlzIGEgInRoaXMiIGFyZ3VtZW50LgotICAg
IGNvbnN0IHVuc2lnbmVkIG51bWJlck9mUmVnc0ZvckNhbGwgPSBDYWxsRnJhbWU6OmhlYWRlclNp
emVJblJlZ2lzdGVycyArIG51bWJlck9mUGFyYW1ldGVyczsKKyAgICBjb25zdCB1bnNpZ25lZCBu
dW1iZXJPZlJlZ3NGb3JDYWxsID0gQ2FsbEZyYW1lOjpoZWFkZXJTaXplSW5SZWdpc3RlcnMgKyBy
b3VuZEFyZ3VtZW50Q291bnRUb0FsaWduRnJhbWUobnVtYmVyT2ZQYXJhbWV0ZXJzKTsKKyAgICBB
U1NFUlQoIShudW1iZXJPZlJlZ3NGb3JDYWxsICUgc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSkp
OwogICAgIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQnl0ZXNGb3JDYWxsID0gbnVtYmVyT2ZSZWdz
Rm9yQ2FsbCAqIHNpemVvZihSZWdpc3RlcikgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQyk7Ci0g
ICAgY29uc3QgdW5zaWduZWQgc3RhY2tPZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yo
c3RhY2tBbGlnbm1lbnRCeXRlcygpLCBzdGQ6Om1heDx1bnNpZ25lZD4obnVtYmVyT2ZCeXRlc0Zv
ckNhbGwsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLnNpemVPZkFyZWFJbkJ5dGVzKCkpKTsKKyAgICBj
b25zdCB1bnNpZ25lZCBudW1iZXJPZkJ5dGVzRm9yU2F2ZWRSZXN1bHRzID0gc2F2ZWRSZXN1bHRS
ZWdpc3RlcnMuc2l6ZU9mQXJlYUluQnl0ZXMoKTsKKyAgICBjb25zdCB1bnNpZ25lZCBzdGFja09m
ZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudEJ5dGVzKCksIHN0
ZDo6bWF4KG51bWJlck9mQnl0ZXNGb3JDYWxsLCBudW1iZXJPZkJ5dGVzRm9yU2F2ZWRSZXN1bHRz
KSk7CiAgICAgaml0LnN1YlB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHN0YWNrT2Zm
c2V0KSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICBKSVQ6OkFk
ZHJlc3MgY2FsbGVlRnJhbWUgPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6
OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCAtc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoQ2Fs
bGVyRnJhbWVBbmRQQykpKTsKIAogICAgIC8vIEZJWE1FIG1ha2UgdGhlc2UgbG9vcHMgd2hpY2gg
c3dpdGNoIG9uIHNpZ25hdHVyZSBpZiB0aGVyZSBhcmUgbWFueSBhcmd1bWVudHMgb24gdGhlIHN0
YWNrLiBJdCdsbCBvdGhlcndpc2UgYmUgaHVnZSBmb3IgaHVnZSB0eXBlIGRlZmluaXRpb25zLiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1NTQ3CiAKKyNpZiBVU0Uo
SlNWQUxVRTY0KQorICAgIGNvbnN0ZXhwciBKU1ZhbHVlUmVncyBqc0FyZzEwIHsgR1BSSW5mbzo6
YXJndW1lbnRHUFIwIH07CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGNvbnN0ZXhwciBK
U1ZhbHVlUmVncyBqc0FyZzEwIHsgR1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjphcmd1
bWVudEdQUjAgfTsKKyNlbmRpZgorCiAgICAgLy8gRmlyc3QgZ28gdGhyb3VnaCB0aGUgaW50ZWdl
ciBwYXJhbWV0ZXJzLCBmcmVlaW5nIHVwIHRoZWlyIHJlZ2lzdGVyIGZvciB1c2UgYWZ0ZXJ3YXJk
cy4KICAgICB7CiAgICAgICAgIHVuc2lnbmVkIG1hcnNoYWxsZWRHUFJzID0gMDsKQEAgLTExNCwy
MSArMTIzLDIxIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJU
YWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBjYXNlIFR5
cGVLaW5kOjpGdW5jcmVmOgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgogICAgICAg
ICAgICAgY2FzZSBUeXBlS2luZDo6STY0OiB7Ci0gICAgICAgICAgICAgICAgR1BSUmVnIGdwclJl
ZzsKLSAgICAgICAgICAgICAgICBpZiAobWFyc2hhbGxlZEdQUnMgPCB3YXNtQ0MuZ3ByQXJncy5z
aXplKCkpCi0gICAgICAgICAgICAgICAgICAgIGdwclJlZyA9IHdhc21DQy5ncHJBcmdzW21hcnNo
YWxsZWRHUFJzXS5ncHIoKTsKKyAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyBhcmdSZWc7Cisg
ICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRHUFJzIDwgd2FzbUNDLmpzckFyZ3Muc2l6ZSgp
KQorICAgICAgICAgICAgICAgICAgICBhcmdSZWcgPSB3YXNtQ0MuanNyQXJnc1ttYXJzaGFsbGVk
R1BSc107CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFdl
J3ZlIGFscmVhZHkgc3BpbGxlZCBhbGwgYXJndW1lbnRzLCB0aGVzZSByZWdpc3RlcnMgYXJlIGF2
YWlsYWJsZSBhcyBzY3JhdGNoLgotICAgICAgICAgICAgICAgICAgICBncHJSZWcgPSBHUFJJbmZv
Ojphcmd1bWVudEdQUjA7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoSklUOjpBZGRy
ZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBmck9mZnNldCksIGdwclJlZyk7CisgICAg
ICAgICAgICAgICAgICAgIGFyZ1JlZyA9IGpzQXJnMTA7CisgICAgICAgICAgICAgICAgICAgIGpp
dC5sb2FkVmFsdWUoSklUOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBmck9m
ZnNldCksIGFyZ1JlZyk7CiAgICAgICAgICAgICAgICAgICAgIGZyT2Zmc2V0ICs9IHNpemVvZihS
ZWdpc3Rlcik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICsrbWFyc2hhbGxl
ZEdQUnM7CiAgICAgICAgICAgICAgICAgaWYgKGFyZ1R5cGUuaXNJMzIoKSkgewotICAgICAgICAg
ICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKGdwclJlZywgZ3ByUmVnKTsgLy8gQ2xl
YXIgbm9uLWludDMyIGFuZCBub24tdGFnIGJpdHMuCi0gICAgICAgICAgICAgICAgICAgIGppdC5i
b3hJbnQzMihncHJSZWcsIEpTVmFsdWVSZWdzKGdwclJlZyksIERvTm90SGF2ZVRhZ1JlZ2lzdGVy
cyk7CisgICAgICAgICAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoYXJnUmVnLnBh
eWxvYWRHUFIoKSwgYXJnUmVnLnBheWxvYWRHUFIoKSk7IC8vIENsZWFyIG5vbi1pbnQzMiBhbmQg
bm9uLXRhZyBiaXRzLgorICAgICAgICAgICAgICAgICAgICBqaXQuYm94SW50MzIoYXJnUmVnLnBh
eWxvYWRHUFIoKSwgYXJnUmVnLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwogICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICBqaXQuc3RvcmU2NChncHJSZWcsIGNhbGxlZUZyYW1lLndp
dGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsKKyAgICAgICAgICAgICAgICBqaXQuc3RvcmVW
YWx1ZShhcmdSZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsK
ICAgICAgICAgICAgICAgICBjYWxsZWVGcmFtZU9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOwog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMTQ1LDYgKzE1NCw3IEBA
IEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5n
RmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgfQogICAgIAogICAgIHsKKyNpZiBVU0UoSlNW
QUxVRTY0KQogICAgICAgICAvLyBJbnRlZ2VyIHJlZ2lzdGVycyBoYXZlIGFscmVhZHkgYmVlbiBz
cGlsbGVkLCB0aGVzZSBhcmUgbm93IGF2YWlsYWJsZS4KICAgICAgICAgR1BSUmVnIGRvdWJsZUVu
Y29kZU9mZnNldEdQUlJlZyA9IEdQUkluZm86OmFyZ3VtZW50R1BSMDsKICAgICAgICAgR1BSUmVn
IHNjcmF0Y2ggPSBHUFJJbmZvOjphcmd1bWVudEdQUjE7CkBAIC0xNjAsNiArMTcwLDcgQEAgRXhw
ZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWls
dXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgICAgICBoYXNNYXRlcmlhbGl6ZWREb3Vi
bGVFbmNvZGVPZmZzZXQgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9OworI2VuZGlm
CiAKICAgICAgICAgdW5zaWduZWQgbWFyc2hhbGxlZEdQUnMgPSAwOwogICAgICAgICB1bnNpZ25l
ZCBtYXJzaGFsbGVkRlBScyA9IDA7CkBAIC0xNjgsMTAgKzE3OSwxNCBAQCBFeHBlY3RlZDxNYWNy
b0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21U
b0pTKFZNJiB2bQogCiAgICAgICAgIGF1dG8gbWFyc2hhbGxGUFIgPSBbJl0gKEZQUlJlZyBmcHJS
ZWcpIHsKICAgICAgICAgICAgIGppdC5wdXJpZnlOYU4oZnByUmVnKTsKKyNpZiBVU0UoSlNWQUxV
RTY0KQogICAgICAgICAgICAgaml0Lm1vdmVEb3VibGVUbzY0KGZwclJlZywgc2NyYXRjaCk7CiAg
ICAgICAgICAgICBtYXRlcmlhbGl6ZURvdWJsZUVuY29kZU9mZnNldChkb3VibGVFbmNvZGVPZmZz
ZXRHUFJSZWcpOwogICAgICAgICAgICAgaml0LmFkZDY0KGRvdWJsZUVuY29kZU9mZnNldEdQUlJl
Zywgc2NyYXRjaCk7CiAgICAgICAgICAgICBqaXQuc3RvcmU2NChzY3JhdGNoLCBjYWxsZWVGcmFt
ZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSk7CisjZWxzZQorICAgICAgICAgICAgaml0
LnN0b3JlRG91YmxlKGZwclJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9m
ZnNldCkpOworI2VuZGlmCiAgICAgICAgICAgICBjYWxsZWVGcmFtZU9mZnNldCArPSBzaXplb2Yo
UmVnaXN0ZXIpOwogICAgICAgICAgICAgKyttYXJzaGFsbGVkRlBSczsKICAgICAgICAgfTsKQEAg
LTE5MSw3ICsyMDYsNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5
UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgY2Fz
ZSBUeXBlS2luZDo6STMyOgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OiB7CiAgICAg
ICAgICAgICAgICAgLy8gU2tpcHBlZDogaGFuZGxlZCBhYm92ZS4KLSAgICAgICAgICAgICAgICBp
ZiAobWFyc2hhbGxlZEdQUnMgPj0gd2FzbUNDLmdwckFyZ3Muc2l6ZSgpKQorICAgICAgICAgICAg
ICAgIGlmIChtYXJzaGFsbGVkR1BScyA+PSB3YXNtQ0MuanNyQXJncy5zaXplKCkpCiAgICAgICAg
ICAgICAgICAgICAgIGZyT2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CiAgICAgICAgICAgICAg
ICAgKyttYXJzaGFsbGVkR1BSczsKICAgICAgICAgICAgICAgICBjYWxsZWVGcmFtZU9mZnNldCAr
PSBzaXplb2YoUmVnaXN0ZXIpOwpAQCAtMjAwLDcgKzIxNSw3IEBAIEV4cGVjdGVkPE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMo
Vk0mIHZtCiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6IHsKICAgICAgICAgICAgICAg
ICBGUFJSZWcgZnByUmVnOwogICAgICAgICAgICAgICAgIGlmIChtYXJzaGFsbGVkRlBScyA8IHdh
c21DQy5mcHJBcmdzLnNpemUoKSkKLSAgICAgICAgICAgICAgICAgICAgZnByUmVnID0gd2FzbUND
LmZwckFyZ3NbbWFyc2hhbGxlZEZQUnNdLmZwcigpOworICAgICAgICAgICAgICAgICAgICBmcHJS
ZWcgPSB3YXNtQ0MuZnByQXJnc1ttYXJzaGFsbGVkRlBSc107CiAgICAgICAgICAgICAgICAgZWxz
ZSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgc3BpbGxlZCBhbGwgYXJn
dW1lbnRzLCB0aGVzZSByZWdpc3RlcnMgYXJlIGF2YWlsYWJsZSBhcyBzY3JhdGNoLgogICAgICAg
ICAgICAgICAgICAgICBmcHJSZWcgPSBGUFJJbmZvOjphcmd1bWVudEZQUjA7CkBAIC0yMTQsNyAr
MjI5LDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4s
IEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIGNhc2UgVHlwZUtp
bmQ6OkY2NDogewogICAgICAgICAgICAgICAgIEZQUlJlZyBmcHJSZWc7CiAgICAgICAgICAgICAg
ICAgaWYgKG1hcnNoYWxsZWRGUFJzIDwgd2FzbUNDLmZwckFyZ3Muc2l6ZSgpKQotICAgICAgICAg
ICAgICAgICAgICBmcHJSZWcgPSB3YXNtQ0MuZnByQXJnc1ttYXJzaGFsbGVkRlBSc10uZnByKCk7
CisgICAgICAgICAgICAgICAgICAgIGZwclJlZyA9IHdhc21DQy5mcHJBcmdzW21hcnNoYWxsZWRG
UFJzXTsKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgLy8gV2Un
dmUgYWxyZWFkeSBzcGlsbGVkIGFsbCBhcmd1bWVudHMsIHRoZXNlIHJlZ2lzdGVycyBhcmUgYXZh
aWxhYmxlIGFzIHNjcmF0Y2guCiAgICAgICAgICAgICAgICAgICAgIGZwclJlZyA9IEZQUkluZm86
OmFyZ3VtZW50RlBSMDsKQEAgLTIzNiwxMiArMjUxLDE1IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1i
bGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0m
IHZtCiAgICAgICAgIHVuc2lnbmVkIGNhbGxlZUZyYW1lT2Zmc2V0ID0gQ2FsbEZyYW1lU2xvdDo6
Zmlyc3RBcmd1bWVudCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSk7CiAgICAg
ICAgIGZvciAodW5zaWduZWQgYXJnTnVtID0gMDsgYXJnTnVtIDwgYXJnQ291bnQ7ICsrYXJnTnVt
KSB7CiAgICAgICAgICAgICBpZiAoc2lnbmF0dXJlLmFyZ3VtZW50VHlwZShhcmdOdW0pLmlzSTY0
KCkpIHsKLSAgICAgICAgICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2UoR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgICAgICAgICBqaXQubG9hZDY0KGNhbGxlZUZyYW1l
LndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwot
ICAgICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252
ZXJ0VG9CaWdJbnQpPihHUFJJbmZvOjphcmd1bWVudEdQUjAsIEdQUkluZm86OmFyZ3VtZW50R1BS
MSk7CisgICAgICAgICAgICAgICAgdXNpbmcgT3BlcmF0aW9uID0gZGVjbHR5cGUob3BlcmF0aW9u
Q29udmVydFRvQmlnSW50KTsKKyAgICAgICAgICAgICAgICBjb25zdGV4cHIgR1BSUmVnIHdhc21J
bnN0YW5jZUdQUiA9IHByZWZlcnJlZEFyZ3VtZW50R1BSPE9wZXJhdGlvbiwgMT4oKTsKKyAgICAg
ICAgICAgICAgICBjb25zdGV4cHIgSlNWYWx1ZVJlZ3MgdmFsdWVKU1IgPSBwcmVmZXJyZWRBcmd1
bWVudEpTUjxPcGVyYXRpb24sIDI+KCk7CisgICAgICAgICAgICAgICAgaml0LmxvYWRXYXNtQ29u
dGV4dEluc3RhbmNlKHdhc21JbnN0YW5jZUdQUik7CisgICAgICAgICAgICAgICAgaml0LmxvYWRW
YWx1ZShjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSwgdmFsdWVKU1Ip
OworICAgICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxPcGVyYXRpb24+KHdhc21JbnN0
YW5jZUdQUiwgdmFsdWVKU1IpOwogICAgICAgICAgICAgICAgIGF1dG8gY2FsbCA9IGppdC5jYWxs
KE9wZXJhdGlvblB0clRhZyk7CiAgICAgICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVu
ZChqaXQuZW1pdEp1bXBJZkV4Y2VwdGlvbih2bSkpOwotICAgICAgICAgICAgICAgIGppdC5zdG9y
ZTY0KEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxl
ZUZyYW1lT2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoSlNSSW5mbzo6
cmV0dXJuVmFsdWVKU1IsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQp
KTsKICAgICAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soWz1dIChMaW5rQnVmZmVyJiBsaW5r
QnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubGluayhjYWxsLCBGdW5j
dGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCkpOwogICAg
ICAgICAgICAgICAgIH0pOwpAQCAtMjUzLDE2ICsyNzEsMjIgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhW
TSYgdm0KICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2UoR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6YXJn
dW1lbnRHUFIwLCBJbnN0YW5jZTo6b2Zmc2V0T2ZPd25lcigpKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6YXJn
dW1lbnRHUFIwLCBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6Om9mZnNldE9mTW9kdWxlKCkpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOwotICAgIGppdC5lbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIoR1BS
SW5mbzo6YXJndW1lbnRHUFIwLCBDYWxsRnJhbWVTbG90OjpjYWxsZWUpOwotCi0gICAgR1BSUmVn
IGltcG9ydEpTQ2VsbEdQUlJlZyA9IEdQUkluZm86OnJlZ1QwOyAvLyBDYWxsZWUgbmVlZHMgdG8g
YmUgaW4gcmVnVDAgZm9yIHNsb3cgcGF0aCBiZWxvdy4KKyAgICBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MgY2FsbGVlU2xvdCB7IEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWVTbG90
OjpjYWxsZWUgICogc2l6ZW9mKFJlZ2lzdGVyKSB9OworICAgIGppdC5zdG9yZVB0cihHUFJJbmZv
Ojphcmd1bWVudEdQUjAsIGNhbGxlZVNsb3QpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
aml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyks
IGNhbGxlZVNsb3Qud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgogCisgICAgLy8ganNB
cmcxMCBtaWdodCBvdmVybGFwIHdpdGggcmVnVDAsIHNvIHN0b3JlICd0aGlzJyBhcmd1bWVudCBm
aXJzdAorICAgIGppdC5zdG9yZVZhbHVlKGpzVW5kZWZpbmVkKCksIGNhbGxlZUZyYW1lLndpdGhP
ZmZzZXQoQ2FsbEZyYW1lU2xvdDo6dGhpc0FyZ3VtZW50ICogc3RhdGljX2Nhc3Q8aW50PihzaXpl
b2YoUmVnaXN0ZXIpKSksIGpzQXJnMTApOworICAgIGNvbnN0ZXhwciBHUFJSZWcgaW1wb3J0SlND
ZWxsR1BSUmVnID0gR1BSSW5mbzo6cmVnVDA7IC8vIENhbGxlZSBuZWVkcyB0byBiZSBpbiByZWdU
MCBmb3Igc2xvdyBwYXRoIGJlbG93LgogICAgIEFTU0VSVCghd2FzbUNDLmNhbGxlZVNhdmVSZWdp
c3RlcnMuZ2V0KGltcG9ydEpTQ2VsbEdQUlJlZykpOwogICAgIG1hdGVyaWFsaXplSW1wb3J0SlND
ZWxsKGppdCwgaW1wb3J0SW5kZXgsIGltcG9ydEpTQ2VsbEdQUlJlZyk7Ci0KLSAgICBqaXQuc3Rv
cmU2NChpbXBvcnRKU0NlbGxHUFJSZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoQ2FsbEZyYW1l
U2xvdDo6Y2FsbGVlICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOworICAg
IGppdC5zdG9yZVB0cihpbXBvcnRKU0NlbGxHUFJSZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQo
Q2FsbEZyYW1lU2xvdDo6Y2FsbGVlICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIp
KSkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQo
Q2FsbEZyYW1lU2xvdDo6Y2FsbGVlICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIp
KSArIFRhZ09mZnNldCkpOworI2VuZGlmCiAgICAgaml0LnN0b3JlMzIoSklUOjpUcnVzdGVkSW1t
MzIobnVtYmVyT2ZQYXJhbWV0ZXJzKSwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVT
bG90Ojphcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9m
KFJlZ2lzdGVyKSkgKyBQYXlsb2FkT2Zmc2V0KSk7Ci0gICAgaml0LnN0b3JlNjQoSklUOjpUcnVz
dGVkSW1tNjQoSlNWYWx1ZTo6VmFsdWVVbmRlZmluZWQpLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0
KENhbGxGcmFtZVNsb3Q6OnRoaXNBcmd1bWVudCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJl
Z2lzdGVyKSkpKTsKIAogICAgIC8vIEZJWE1FIFRhaWwgY2FsbCBpZiB0aGUgd2FzbSByZXR1cm4g
dHlwZSBpcyB2b2lkIGFuZCBubyByZWdpc3RlcnMgd2VyZSBzcGlsbGVkLiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1NDg4CiAKQEAgLTI4NywxMSArMzExLDExIEBA
IEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5n
RmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDogewog
ICAgICAgICAgICAgLy8gRklYTUU6IE9wdGltaXplIEk2NCBleHRyYWN0aW9uIGZyb20gQmlnSW50
LgogICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMDA1MwotICAgICAgICAgICAgR1BSUmVnIGRlc3QgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1sw
XS5ncHIoKTsKLSAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRp
b25Db252ZXJ0VG9JNjQpPihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgICAgICBK
U1ZhbHVlUmVncyBkZXN0ID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uanNyKCk7CisgICAgICAg
ICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvSTY0KT4o
SlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpOwogICAgICAgICAgICAgYXV0byBjYWxsID0gaml0LmNh
bGwoT3BlcmF0aW9uUHRyVGFnKTsKICAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQo
aml0LmVtaXRKdW1wSWZFeGNlcHRpb24odm0pKTsKLSAgICAgICAgICAgIGppdC5tb3ZlKEdQUklu
Zm86OnJldHVyblZhbHVlR1BSLCBkZXN0KTsKKyAgICAgICAgICAgIGppdC5tb3ZlVmFsdWVSZWdz
KEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBkZXN0KTsKIAogICAgICAgICAgICAgaml0LmFkZExp
bmtUYXNrKFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewogICAgICAgICAgICAgICAgIGxp
bmtCdWZmZXIubGluayhjYWxsLCBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlv
bkNvbnZlcnRUb0k2NCkpOwpAQCAtMzAxLDE4ICszMjUsMjEgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhW
TSYgdm0KICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOiB7CiAgICAgICAgICAgICBDQ2FsbEhl
bHBlcnM6Okp1bXBMaXN0IGRvbmU7CiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0
IHNsb3dQYXRoOwotICAgICAgICAgICAgR1BSUmVnIGRlc3QgPSB3YXNtQ2FsbEluZm8ucmVzdWx0
c1swXS5ncHIoKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIGRlc3RKU1IgPSB3YXNtQ2FsbElu
Zm8ucmVzdWx0c1swXS5qc3IoKTsKIAotICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5i
cmFuY2hJZk5vdE51bWJlcihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgRG9Ob3RIYXZlVGFnUmVn
aXN0ZXJzKSk7Ci0gICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50
MzIoSlNWYWx1ZVJlZ3MoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpLCBEb05vdEhhdmVUYWdSZWdp
c3RlcnMpKTsKLSAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIsIGRlc3QpOworICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFu
Y2hJZk5vdE51bWJlcihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgaml0LnNjcmF0Y2hSZWdpc3Rl
cigpLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpKTsKKyAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVu
ZChqaXQuYnJhbmNoSWZOb3RJbnQzMihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgRG9Ob3RIYXZl
VGFnUmVnaXN0ZXJzKSk7CisgICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKEpTUklu
Zm86OnJldHVyblZhbHVlSlNSLnBheWxvYWRHUFIoKSwgZGVzdEpTUi5wYXlsb2FkR1BSKCkpOwog
ICAgICAgICAgICAgZG9uZS5hcHBlbmQoaml0Lmp1bXAoKSk7CiAKICAgICAgICAgICAgIHNsb3dQ
YXRoLmxpbmsoJmppdCk7Ci0gICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUo
b3BlcmF0aW9uQ29udmVydFRvSTMyKT4oR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAg
ICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0kzMik+
KEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsKICAgICAgICAgICAgIGF1dG8gY2FsbCA9IGppdC5j
YWxsKE9wZXJhdGlvblB0clRhZyk7CiAgICAgICAgICAgICBleGNlcHRpb25DaGVja3MuYXBwZW5k
KGppdC5lbWl0SnVtcElmRXhjZXB0aW9uKHZtKSk7Ci0gICAgICAgICAgICBqaXQubW92ZShHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CisgICAgICAgICAgICBqaXQubW92ZShKU1JJbmZv
OjpyZXR1cm5WYWx1ZUpTUi5wYXlsb2FkR1BSKCksIGRlc3RKU1IucGF5bG9hZEdQUigpKTsKKyNp
ZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoMCksIGRlc3RKU1IudGFnR1BSKCkpOworI2VuZGlmCiAKICAgICAgICAgICAg
IGppdC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKICAgICAgICAg
ICAgICAgICBsaW5rQnVmZmVyLmxpbmsoY2FsbCwgRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFn
PihvcGVyYXRpb25Db252ZXJ0VG9JMzIpKTsKQEAgLTMyMiwyMyArMzQ5LDI2IEBAIEV4cGVjdGVk
PE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4g
d2FzbVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpGMzI6IHsKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3Qg
ZG9uZTsKICAgICAgICAgICAgIEZQUlJlZyBkZXN0ID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0u
ZnByKCk7CiAKLSAgICAgICAgICAgIGF1dG8gbm90QU51bWJlciA9IGppdC5icmFuY2hJZk5vdE51
bWJlcihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKLSAg
ICAgICAgICAgIGF1dG8gaXNEb3VibGUgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihKU1ZhbHVlUmVn
cyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAg
ICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CisgICAgICAgICAgICBhdXRvIG5v
dEFOdW1iZXIgPSBqaXQuYnJhbmNoSWZOb3ROdW1iZXIoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1Is
IGppdC5zY3JhdGNoUmVnaXN0ZXIoKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAg
ICAgIGF1dG8gaXNEb3VibGUgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihKU1JJbmZvOjpyZXR1cm5W
YWx1ZUpTUiwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKICAgICAgICAgICAgIC8vIFdlJ3JlIGFu
IGludDMyCi0gICAgICAgICAgICBqaXQuc2lnbkV4dGVuZDMyVG9QdHIoR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIsIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKLSAgICAgICAgICAgIGppdC5jb252
ZXJ0SW50NjRUb0Zsb2F0KEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBkZXN0KTsKKyAgICAgICAg
ICAgIGppdC5jb252ZXJ0SW50MzJUb0Zsb2F0KEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBkZXN0
KTsKICAgICAgICAgICAgIGRvbmUuYXBwZW5kKGppdC5qdW1wKCkpOwogCiAgICAgICAgICAgICBp
c0RvdWJsZS5saW5rKCZqaXQpOworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgICAgICBqaXQu
dW5ib3hEb3VibGVXaXRob3V0QXNzZXJ0aW9ucyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BS
SW5mbzo6cmV0dXJuVmFsdWVHUFIyLCBkZXN0LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworI2Vs
c2UKKyAgICAgICAgICAgIGppdC51bmJveERvdWJsZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwg
ZGVzdCk7CisjZW5kaWYKICAgICAgICAgICAgIGppdC5jb252ZXJ0RG91YmxlVG9GbG9hdChkZXN0
LCBkZXN0KTsKICAgICAgICAgICAgIGRvbmUuYXBwZW5kKGppdC5qdW1wKCkpOwogCiAgICAgICAg
ICAgICBub3RBTnVtYmVyLmxpbmsoJmppdCk7Ci0gICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVu
dHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvRjMyKT4oR1BSSW5mbzo6cmV0dXJuVmFsdWVH
UFIpOworICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNv
bnZlcnRUb0YzMik+KEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsKICAgICAgICAgICAgIGF1dG8g
Y2FsbCA9IGppdC5jYWxsKE9wZXJhdGlvblB0clRhZyk7CiAgICAgICAgICAgICBleGNlcHRpb25D
aGVja3MuYXBwZW5kKGppdC5lbWl0SnVtcElmRXhjZXB0aW9uKHZtKSk7CiAgICAgICAgICAgICBq
aXQubW92ZShGUFJJbmZvOjpyZXR1cm5WYWx1ZUZQUiAsIGRlc3QpOwpAQCAtMzUxLDIyICszODEs
MjUgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJp
bmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2NDogewotICAgICAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpKdW1wTGlzdCBkb25lOwogICAgICAgICAgICAgRlBSUmVnIGRlc3QgPSB3YXNtQ2FsbElu
Zm8ucmVzdWx0c1swXS5mcHIoKTsKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3Qg
ZG9uZTsKIAotICAgICAgICAgICAgYXV0byBub3RBTnVtYmVyID0gaml0LmJyYW5jaElmTm90TnVt
YmVyKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwotICAg
ICAgICAgICAgYXV0byBpc0RvdWJsZSA9IGppdC5icmFuY2hJZk5vdEludDMyKEpTVmFsdWVSZWdz
KEdQUkluZm86OnJldHVyblZhbHVlR1BSKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAg
ICAgICAgIGF1dG8gbm90QU51bWJlciA9IGppdC5icmFuY2hJZk5vdE51bWJlcihKU1JJbmZvOjpy
ZXR1cm5WYWx1ZUpTUiwgaml0LnNjcmF0Y2hSZWdpc3RlcigpLCBEb05vdEhhdmVUYWdSZWdpc3Rl
cnMpOworICAgICAgICAgICAgYXV0byBpc0RvdWJsZSA9IGppdC5icmFuY2hJZk5vdEludDMyKEpT
VmFsdWVSZWdzKEpTUkluZm86OnJldHVyblZhbHVlSlNSKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJz
KTsKICAgICAgICAgICAgIC8vIFdlJ3JlIGFuIGludDMyCi0gICAgICAgICAgICBqaXQuc2lnbkV4
dGVuZDMyVG9QdHIoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJldHVyblZhbHVl
R1BSKTsKLSAgICAgICAgICAgIGppdC5jb252ZXJ0SW50NjRUb0RvdWJsZShHUFJJbmZvOjpyZXR1
cm5WYWx1ZUdQUiwgZGVzdCk7CisgICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9Eb3VibGUo
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOwogICAgICAgICAgICAgZG9uZS5hcHBlbmQo
aml0Lmp1bXAoKSk7CiAKICAgICAgICAgICAgIGlzRG91YmxlLmxpbmsoJmppdCk7CisjaWYgVVNF
KEpTVkFMVUU2NCkKICAgICAgICAgICAgIGppdC51bmJveERvdWJsZVdpdGhvdXRBc3NlcnRpb25z
KEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUjIsIGRlc3Qs
IERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisjZWxzZQorICAgICAgICAgICAgaml0LnVuYm94RG91
YmxlKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBkZXN0KTsKKyNlbmRpZgogICAgICAgICAgICAg
ZG9uZS5hcHBlbmQoaml0Lmp1bXAoKSk7CiAKICAgICAgICAgICAgIG5vdEFOdW1iZXIubGluaygm
aml0KTsKLSAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25D
b252ZXJ0VG9GNjQpPihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgICAgICBqaXQu
c2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvRjY0KT4oSlNSSW5mbzo6
cmV0dXJuVmFsdWVKU1IpOwogICAgICAgICAgICAgYXV0byBjYWxsID0gaml0LmNhbGwoT3BlcmF0
aW9uUHRyVGFnKTsKICAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRK
dW1wSWZFeGNlcHRpb24odm0pKTsKICAgICAgICAgICAgIGppdC5tb3ZlKEZQUkluZm86OnJldHVy
blZhbHVlRlBSLCBkZXN0KTsKQEAgLTM4MCw3ICs0MTMsNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2Vt
YmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZN
JiB2bQogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6ICB7CiAgICAgICAgICAgICBpZiAoV2Fz
bTo6aXNGdW5jcmVmKHJldHVyblR5cGUpIHx8IFdhc206OmlzRXh0ZXJucmVmKHJldHVyblR5cGUp
KQotICAgICAgICAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCB3YXNt
Q2FsbEluZm8ucmVzdWx0c1swXS5ncHIoKSk7CisgICAgICAgICAgICAgICAgaml0Lm1vdmVWYWx1
ZVJlZ3MoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmpz
cigpKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAvLyBGb3IgdGhlIEphdmFT
Y3JpcHQgZW1iZWRkaW5nLCBpbXBvcnRzIHdpdGggdGhlc2UgdHlwZXMgaW4gdGhlaXIgdHlwZSBk
ZWZpbml0aW9uIHJldHVybiBhcmUgYSBXZWJBc3NlbWJseS5Nb2R1bGUgdmFsaWRhdGlvbiBlcnJv
ci4KICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzk0
LDEyICs0MjcsMjkgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0
clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIGppdC5s
b2FkV2FzbUNvbnRleHRJbnN0YW5jZSh3YXNtQ29udGV4dEluc3RhbmNlR1BSKTsKICAgICAgICAg
fQogCi0gICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25JdGVyYXRl
UmVzdWx0cyk+KHdhc21Db250ZXh0SW5zdGFuY2VHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bVB0cigmdHlwZURlZmluaXRpb24pLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgQ0NhbGxIZWxw
ZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgQ0NhbGxIZWxwZXJzOjpmcmFtZVBvaW50ZXJSZWdp
c3Rlcik7CisgICAgICAgIGNvbnN0ZXhwciBHUFJSZWcgc2F2ZWRSZXN1bHRzR1BSID0gcHJlZmVy
cmVkQXJndW1lbnRHUFI8ZGVjbHR5cGUob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMpLCA0PigpOwor
ICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZl
ZFJlc3VsdHNHUFIpOworICAgICAgICBpZiBjb25zdGV4cHIgKG1heEZyYW1lRXh0ZW50Rm9yU2xv
d1BhdGhDYWxsKQorICAgICAgICAgICAgaml0LnN1YlB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW0zMihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIENDYWxsSGVscGVyczo6c3RhY2tQ
b2ludGVyUmVnaXN0ZXIpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KG5vT3ZlcmxhcChzYXZlZFJl
c3VsdHNHUFIsIEpTUkluZm86OnJldHVyblZhbHVlSlNSKSk7CisgICAgICAgIEFTU0VSVCh3YXNt
Q29udGV4dEluc3RhbmNlR1BSICE9IHNhdmVkUmVzdWx0c0dQUik7CisgICAgICAgIGppdC5zZXR1
cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25JdGVyYXRlUmVzdWx0cyk+KHdhc21Db250ZXh0
SW5zdGFuY2VHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigmdHlwZURlZmluaXRpb24p
LCBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgc2F2ZWRSZXN1bHRzR1BSLCBDQ2FsbEhlbHBlcnM6
OmZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKICAgICAgICAgaml0LmNhbGxPcGVyYXRpb24oRnVuY3Rp
b25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25JdGVyYXRlUmVzdWx0cykpOworICAgICAg
ICBpZiBjb25zdGV4cHIgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICAg
ICAgaml0LmFkZFB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZv
clNsb3dQYXRoQ2FsbCksIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworCiAg
ICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRKdW1wSWZFeGNlcHRpb24odm0p
KTsKIAotICAgICAgICBmb3IgKFJlZ2lzdGVyQXRPZmZzZXQgbG9jYXRpb24gOiBzYXZlZFJlc3Vs
dFJlZ2lzdGVycykKLSAgICAgICAgICAgIGppdC5sb2FkNjRUb1JlZyhDQ2FsbEhlbHBlcnM6OkFk
ZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgbG9jYXRpb24ub2Zmc2V0
KCkpLCBsb2NhdGlvbi5yZWcoKSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBz
aWduYXR1cmUucmV0dXJuQ291bnQoKTsgKytpKSB7CisgICAgICAgICAgICBWYWx1ZUxvY2F0aW9u
IGxvYyA9IHdhc21DYWxsSW5mby5yZXN1bHRzW2ldOworICAgICAgICAgICAgaWYgKGxvYy5pc0dQ
UigpKSB7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICBBU1NFUlQoc2F2
ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkg
KyA0ID09IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnRhZ0dQUigpKS0+b2Zm
c2V0KCkpOworI2VuZGlmCisgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1
bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkpLCBsb2Mu
anNyKCkpOworICAgICAgICAgICAgfSBlbHNlIGlmIChsb2MuaXNGUFIoKSkKKyAgICAgICAgICAg
ICAgICBqaXQubG9hZERvdWJsZShDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpz
dGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuZnByKCkp
LT5vZmZzZXQoKSksIGxvYy5mcHIoKSk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBqaXQuZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKaW5kZXggMjhjNTNlMTk4N2NkLi41NTIxNTY3
OWQ0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5RnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5RnVuY3Rpb24uY3BwCkBAIC0xNTcsNiArMTU3LDkgQEAgcHRyZGlmZl90IFdlYkFzc2Vt
Ymx5RnVuY3Rpb246OnByZXZpb3VzSW5zdGFuY2VPZmZzZXQoKSBjb25zdAogewogICAgIHB0cmRp
ZmZfdCByZXN1bHQgPSBjYWxsZWVTYXZlcygpLm51bWJlck9mU2V0UmVnaXN0ZXJzKCkgKiBzaXpl
b2YoQ1BVUmVnaXN0ZXIpOwogICAgIHJlc3VsdCA9IC1yZXN1bHQgLSBzaXplb2YoQ1BVUmVnaXN0
ZXIpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgQVNTRVJUKCFjYWxsZWVTYXZlcygpLm51
bWJlck9mU2V0RlBScygpKTsgLy8gQmVjYXVzZSBGUFJzIGFyZSB3aWRlciB0aGFuIHNpemVvZihD
UFVSZWdpc3RlcikKKyNlbmRpZgogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgcHRyZGlmZl90IG1p
bk9mZnNldCA9IDE7CiAgICAgZm9yIChjb25zdCBSZWdpc3RlckF0T2Zmc2V0JiByZWdBdE9mZnNl
dCA6IHVzZWRDYWxsZWVTYXZlUmVnaXN0ZXJzKCkpIHsKQEAgLTE4Niw4ICsxODksNiBAQCBNYWNy
b0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anND
YWxsRW50cnlwb2ludFNsb3coKQogICAgIGNvbnN0IGF1dG8mIHBpbm5lZFJlZ3MgPSBXYXNtOjpQ
aW5uZWRSZWdpc3RlckluZm86OmdldCgpOwogICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IHJlZ2lz
dGVyc1RvU3BpbGwgPSB1c2VkQ2FsbGVlU2F2ZVJlZ2lzdGVycygpOwogCi0gICAgYXV0byYgbW9k
dWxlSW5mb3JtYXRpb24gPSBpbnN0YW5jZSgpLT5pbnN0YW5jZSgpLm1vZHVsZSgpLm1vZHVsZUlu
Zm9ybWF0aW9uKCk7Ci0KICAgICBjb25zdCBXYXNtOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb24mIHdh
c21DQyA9IFdhc206Ondhc21DYWxsaW5nQ29udmVudGlvbigpOwogICAgIFdhc206OkNhbGxJbmZv
cm1hdGlvbiB3YXNtQ2FsbEluZm8gPSB3YXNtQ0MuY2FsbEluZm9ybWF0aW9uRm9yKHR5cGVEZWZp
bml0aW9uKTsKICAgICBXYXNtOjpDYWxsSW5mb3JtYXRpb24ganNDYWxsSW5mbyA9IFdhc206Ompz
Q2FsbGluZ0NvbnZlbnRpb24oKS5jYWxsSW5mb3JtYXRpb25Gb3IodHlwZURlZmluaXRpb24sIFdh
c206OkNhbGxSb2xlOjpDYWxsZWUpOwpAQCAtMjE2LDkgKzIxNywxNCBAQCBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlw
b2ludFNsb3coKQogICAgICAgICBqaXQuc3RvcmVQdHIocmVnLCBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIG9mZnNldCkpOwogICAgIH0KIAotICAgIEdQ
UlJlZyBzY3JhdGNoR1BSID0gV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVT
Y3JhdGNoR1BSc1sxXTsKLSAgICBib29sIHN0YWNrTGltaXRHUFJJc0Nsb2JiZXJlZCA9IGZhbHNl
OworICAgIEpTVmFsdWVSZWdzIHNjcmF0Y2hKU1IgeworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisg
ICAgICAgIFdhc206Ondhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNb
Ml0sCisjZW5kaWYKKyAgICAgICAgV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9n
dWVTY3JhdGNoR1BSc1sxXQorICAgIH07CiAgICAgR1BSUmVnIHN0YWNrTGltaXRHUFIgPSBXYXNt
Ojp3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzBdOworICAgIGJv
b2wgc3RhY2tMaW1pdEdQUklzQ2xvYmJlcmVkID0gZmFsc2U7CiAgICAgaml0LmxvYWRQdHIodm0u
YWRkcmVzc09mU29mdFN0YWNrTGltaXQoKSwgc3RhY2tMaW1pdEdQUik7CiAKICAgICBDQ2FsbEhl
bHBlcnM6Okp1bXBMaXN0IHNsb3dQYXRoOwpAQCAtMjM3LDcgKzI0Myw3IEBAIE1hY3JvQXNzZW1i
bGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRy
eXBvaW50U2xvdygpCiAgICAgICAgIGppdC5lbWl0TWF0ZXJpYWxpemVUYWdDaGVja1JlZ2lzdGVy
cygpOwogCiAgICAgLy8gTG9vcCBiYWNrd2FyZHMgc28gd2UgY2FuIHVzZSB0aGUgZmlyc3QgZmxv
YXRpbmcgcG9pbnQgYXJndW1lbnQgYXMgYSBzY3JhdGNoLgotICAgIEZQUlJlZyBzY3JhdGNoRlBS
ID0gV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKCkuZnByQXJnc1swXS5mcHIoKTsKKyAgICBG
UFJSZWcgc2NyYXRjaEZQUiA9IFdhc206Ondhc21DYWxsaW5nQ29udmVudGlvbigpLmZwckFyZ3Nb
MF07CiAgICAgZm9yICh1bnNpZ25lZCBpID0gc2lnbmF0dXJlLmFyZ3VtZW50Q291bnQoKTsgaS0t
OykgewogICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgY2FsbGVlRnJhbWUgPSBDQ2FsbEhl
bHBlcnM6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCAwKTsK
ICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGpzUGFyYW0oR1BSSW5mbzo6Y2FsbEZyYW1l
UmVnaXN0ZXIsIGpzQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21GUCgpKTsKQEAgLTI0Niwx
MiArMjUyLDIwIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3Nl
bWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgIGF1dG8gdHlwZSA9
IHNpZ25hdHVyZS5hcmd1bWVudFR5cGUoaSk7CiAgICAgICAgIHN3aXRjaCAodHlwZS5raW5kKSB7
CiAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkkzMjogewotICAgICAgICAgICAgaml0Lmxv
YWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChq
aXQuYnJhbmNoSWZOb3RJbnQzMihzY3JhdGNoR1BSKSk7Ci0gICAgICAgICAgICBpZiAoaXNTdGFj
aykKLSAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihzY3JhdGNoR1BSLCBjYWxsZWVGcmFtZS53
aXRoT2Zmc2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKLSAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKHNjcmF0
Y2hHUFIsIHdhc21DYWxsSW5mby5wYXJhbXNbaV0uZ3ByKCkpOworICAgICAgICAgICAgaml0Lmxv
YWRWYWx1ZShqc1BhcmFtLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVu
ZChqaXQuYnJhbmNoSWZOb3RJbnQzMihzY3JhdGNoSlNSKSk7CisgICAgICAgICAgICBpZiAoaXNT
dGFjaykgeworICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBhZGRyIHsgY2Fs
bGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgp
KSB9OworICAgICAgICAgICAgICAgIGppdC5zdG9yZTMyKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigp
LCBhZGRyLndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQp
CisgICAgICAgICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
MCksIGFkZHIud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgorICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKHNjcmF0Y2hKU1Iu
cGF5bG9hZEdQUigpLCB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmpzcigpLnBheWxvYWRHUFIoKSk7
CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW0zMigwKSwgd2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5qc3IoKS50YWdH
UFIoKSk7CisjZW5kaWYKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OlJlZjoKQEAgLTI2MCwyNyArMjc0LDI3
IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0
aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6
OkV4dGVybnJlZjogewogICAgICAgICAgICAgaWYgKCFXYXNtOjppc0V4dGVybnJlZih0eXBlKSkg
ewogICAgICAgICAgICAgICAgIC8vIEVuc3VyZSB3ZSBoYXZlIGEgV0FTTSBleHBvcnRlZCBmdW5j
dGlvbi4KLSAgICAgICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOwot
ICAgICAgICAgICAgICAgIGF1dG8gaXNOdWxsID0gaml0LmJyYW5jaElmTnVsbChzY3JhdGNoR1BS
KTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpzUGFyYW0sIHNjcmF0Y2hKU1IpOwor
ICAgICAgICAgICAgICAgIGF1dG8gaXNOdWxsID0gaml0LmJyYW5jaElmTnVsbChzY3JhdGNoSlNS
KTsKICAgICAgICAgICAgICAgICBpZiAoIXR5cGUuaXNOdWxsYWJsZSgpKQogICAgICAgICAgICAg
ICAgICAgICBzbG93UGF0aC5hcHBlbmQoaXNOdWxsKTsKLSAgICAgICAgICAgICAgICBzbG93UGF0
aC5hcHBlbmQoaml0LmJyYW5jaElmTm90Q2VsbChzY3JhdGNoR1BSKSk7CisgICAgICAgICAgICAg
ICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdENlbGwoc2NyYXRjaEpTUikpOwogCiAg
ICAgICAgICAgICAgICAgc3RhY2tMaW1pdEdQUklzQ2xvYmJlcmVkID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICBqaXQuZW1pdExvYWRTdHJ1Y3R1cmUodm0sIHNjcmF0Y2hHUFIsIHNjcmF0Y2hHUFIp
OwotICAgICAgICAgICAgICAgIGppdC5sb2FkQ29tcGFjdFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJl
c3Moc2NyYXRjaEdQUiwgU3RydWN0dXJlOjpjbGFzc0luZm9PZmZzZXQoKSksIHNjcmF0Y2hHUFIp
OworICAgICAgICAgICAgICAgIGppdC5lbWl0TG9hZFN0cnVjdHVyZSh2bSwgc2NyYXRjaEpTUi5w
YXlsb2FkR1BSKCksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAgICBq
aXQubG9hZENvbXBhY3RQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hKU1IucGF5bG9h
ZEdQUigpLCBTdHJ1Y3R1cmU6OmNsYXNzSW5mb09mZnNldCgpKSwgc2NyYXRjaEpTUi5wYXlsb2Fk
R1BSKCkpOwogCiAgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPFdl
YkFzc2VtYmx5RnVuY3Rpb24+Ojp2YWx1ZSwgIldlIGRvIG5vdCBjaGVjayBmb3Igc3VidHlwZXMg
YmVsb3ciKTsKICAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8V2Vi
QXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24+Ojp2YWx1ZSwgIldlIGRvIG5vdCBjaGVjayBmb3Igc3Vi
dHlwZXMgYmVsb3ciKTsKIAotICAgICAgICAgICAgICAgIGF1dG8gaXNXYXNtRnVuY3Rpb24gPSBq
aXQuYnJhbmNoUHRyKENDYWxsSGVscGVyczo6RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbVB0cihXZWJBc3NlbWJseUZ1bmN0aW9uOjppbmZvKCkpKTsKLSAgICAgICAg
ICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVx
dWFsLCBzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoV2ViQXNzZW1ibHlX
cmFwcGVyRnVuY3Rpb246OmluZm8oKSkpKTsKKyAgICAgICAgICAgICAgICBhdXRvIGlzV2FzbUZ1
bmN0aW9uID0gaml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6OkVxdWFsLCBzY3JhdGNoSlNSLnBh
eWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKFdlYkFzc2VtYmx5RnVuY3Rp
b246OmluZm8oKSkpOworICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNo
UHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb246OmluZm8o
KSkpKTsKIAogICAgICAgICAgICAgICAgIGlzV2FzbUZ1bmN0aW9uLmxpbmsoJmppdCk7CiAgICAg
ICAgICAgICAgICAgaWYgKFdhc206OmlzUmVmV2l0aFR5cGVJbmRleCh0eXBlKSkgewotICAgICAg
ICAgICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOwotICAgICAgICAg
ICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwg
V2ViQXNzZW1ibHlGdW5jdGlvbkJhc2U6Om9mZnNldE9mU2lnbmF0dXJlSW5kZXgoKSksIHNjcmF0
Y2hHUFIpOwotICAgICAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaFB0
cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW1QdHIodHlwZS5pbmRleCkpKTsKKyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRQdHIo
anNQYXJhbSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgICAgICAgICBq
aXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCks
IFdlYkFzc2VtYmx5RnVuY3Rpb25CYXNlOjpvZmZzZXRPZlNpZ25hdHVyZUluZGV4KCkpLCBzY3Jh
dGNoSlNSLnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVu
ZChqaXQuYnJhbmNoUHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hKU1IucGF5bG9h
ZEdQUigpLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIodHlwZS5pbmRleCkpKTsKICAgICAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBpZiAodHlwZS5pc051bGxhYmxlKCkpCkBA
IC0yODgsMTUgKzMwMiwxNSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4g
V2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICBpZiAoaXNTdGFjaykgewotICAgICAgICAgICAgICAgIGppdC5sb2Fk
NjQoanNQYXJhbSwgc2NyYXRjaEdQUik7CisgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShq
c1BhcmFtLCBzY3JhdGNoSlNSKTsKICAgICAgICAgICAgICAgICBpZiAoIXR5cGUuaXNOdWxsYWJs
ZSgpKQotICAgICAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTnVs
bChzY3JhdGNoR1BSKSk7Ci0gICAgICAgICAgICAgICAgaml0LnN0b3JlNjQoc2NyYXRjaEdQUiwg
Y2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21T
UCgpKSk7CisgICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZO
dWxsKHNjcmF0Y2hKU1IpKTsKKyAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNo
SlNSLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0
RnJvbVNQKCkpKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYXV0byBl
eHRlcm5HUFIgPSB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmdwcigpOwotICAgICAgICAgICAgICAg
IGppdC5sb2FkNjQoanNQYXJhbSwgZXh0ZXJuR1BSKTsKKyAgICAgICAgICAgICAgICBhdXRvIGV4
dGVybkpTUiA9IHdhc21DYWxsSW5mby5wYXJhbXNbaV0uanNyKCk7CisgICAgICAgICAgICAgICAg
aml0LmxvYWRWYWx1ZShqc1BhcmFtLCBleHRlcm5KU1IpOwogICAgICAgICAgICAgICAgIGlmICgh
dHlwZS5pc051bGxhYmxlKCkpCi0gICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChq
aXQuYnJhbmNoSWZOdWxsKGV4dGVybkdQUikpOworICAgICAgICAgICAgICAgICAgICBzbG93UGF0
aC5hcHBlbmQoaml0LmJyYW5jaElmTnVsbChleHRlcm5KU1IpKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0zMDQsMzUgKzMxOCw0MSBAQCBNYWNyb0Fz
c2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxs
RW50cnlwb2ludFNsb3coKQogICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpGNjQ6IHsKICAg
ICAgICAgICAgIGlmICghaXNTdGFjaykKICAgICAgICAgICAgICAgICBzY3JhdGNoRlBSID0gd2Fz
bUNhbGxJbmZvLnBhcmFtc1tpXS5mcHIoKTsKLSAgICAgICAgICAgIGF1dG8gbW92ZVRvRGVzdGlu
YXRpb24gPSBbJl0gKCkgewotICAgICAgICAgICAgICAgIGlmIChpc1N0YWNrKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChzaWduYXR1cmUuYXJndW1lbnRUeXBlKGkpLmlzRjMyKCkpCi0gICAg
ICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVGbG9hdChzY3JhdGNoRlBSLCBjYWxsZWVGcmFt
ZS53aXRoT2Zmc2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKLSAg
ICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgaml0LnN0b3Jl
RG91YmxlKHNjcmF0Y2hGUFIsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBh
cmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IH07CiAKLSAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQUik7Ci0gICAg
ICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKHNjcmF0Y2hHUFIp
KTsKLSAgICAgICAgICAgIGF1dG8gaXNJbnQzMiA9IGppdC5icmFuY2hJZkludDMyKHNjcmF0Y2hH
UFIpOwotCi0gICAgICAgICAgICBqaXQudW5ib3hEb3VibGUoc2NyYXRjaEdQUiwgc2NyYXRjaEdQ
Uiwgc2NyYXRjaEZQUik7CisgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpzUGFyYW0sIHNjcmF0
Y2hKU1IpOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQo
aml0LmJyYW5jaElmTm90TnVtYmVyKHNjcmF0Y2hKU1IsIEludmFsaWRHUFJSZWcpKTsKKyNlbGlm
IFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICBzdGFja0xpbWl0R1BSSXNDbG9iYmVyZWQg
PSB0cnVlOworICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJl
cihzY3JhdGNoSlNSLCBzdGFja0xpbWl0R1BSKSk7CisjZW5kaWYKKyAgICAgICAgICAgIGF1dG8g
aXNJbnQzMiA9IGppdC5icmFuY2hJZkludDMyKHNjcmF0Y2hKU1IpOworI2lmIFVTRShKU1ZBTFVF
NjQpCisgICAgICAgICAgICBqaXQudW5ib3hEb3VibGUoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCks
IHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBzY3JhdGNoRlBSKTsKKyNlbGlmIFVTRShKU1ZBTFVF
MzJfNjQpCisgICAgICAgICAgICBqaXQudW5ib3hEb3VibGUoc2NyYXRjaEpTUiwgc2NyYXRjaEZQ
Uik7CisjZW5kaWYKICAgICAgICAgICAgIGlmIChzaWduYXR1cmUuYXJndW1lbnRUeXBlKGkpLmlz
RjMyKCkpCiAgICAgICAgICAgICAgICAgaml0LmNvbnZlcnREb3VibGVUb0Zsb2F0KHNjcmF0Y2hG
UFIsIHNjcmF0Y2hGUFIpOwotICAgICAgICAgICAgbW92ZVRvRGVzdGluYXRpb24oKTsKICAgICAg
ICAgICAgIGF1dG8gZG9uZSA9IGppdC5qdW1wKCk7CiAKICAgICAgICAgICAgIGlzSW50MzIubGlu
aygmaml0KTsKICAgICAgICAgICAgIGlmIChzaWduYXR1cmUuYXJndW1lbnRUeXBlKGkpLmlzRjMy
KCkpIHsKLSAgICAgICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9GbG9hdChzY3JhdGNoR1BS
LCBzY3JhdGNoRlBSKTsKLSAgICAgICAgICAgICAgICBtb3ZlVG9EZXN0aW5hdGlvbigpOworICAg
ICAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0Zsb2F0KHNjcmF0Y2hKU1IucGF5bG9hZEdQ
UigpLCBzY3JhdGNoRlBSKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
aml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOwotICAgICAg
ICAgICAgICAgIG1vdmVUb0Rlc3RpbmF0aW9uKCk7CisgICAgICAgICAgICAgICAgaml0LmNvbnZl
cnRJbnQzMlRvRG91YmxlKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBzY3JhdGNoRlBSKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGRvbmUubGluaygmaml0KTsKLQorICAgICAgICAgICAg
aWYgKGlzU3RhY2spIHsKKyAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgYWRk
ciB7IGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5vZmZzZXRG
cm9tU1AoKSkgfTsKKyAgICAgICAgICAgICAgICBpZiAoc2lnbmF0dXJlLmFyZ3VtZW50VHlwZShp
KS5pc0YzMigpKSB7CisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZUZsb2F0KHNjcmF0Y2hG
UFIsIGFkZHIud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSk7CisjaWYgVVNFKEpTVkFMVUUzMl82
NCkKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tMzIoMCksIGFkZHIud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgorICAgICAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVEb3VibGUoc2NyYXRj
aEZQUiwgYWRkcik7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICBkZWZhdWx0OgpAQCAtMzQzLDQyICszNjMsNDQgQEAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9p
bnRTbG93KCkKICAgICAvLyBBdCB0aGlzIHBvaW50LCB3ZSdyZSBjb21taXR0ZWQgdG8gZG9pbmcg
YSBmYXN0IGNhbGwuCiAKICAgICBpZiAoV2FzbTo6Q29udGV4dDo6dXNlRmFzdFRMUygpKSAKLSAg
ICAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHNjcmF0Y2hHUFIpOworICAgICAgICBq
aXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOwogICAg
IGVsc2UKLSAgICAgICAgaml0LmxvYWRQdHIodm0ud2FzbUNvbnRleHQucG9pbnRlclRvSW5zdGFu
Y2UoKSwgc2NyYXRjaEdQUik7CisgICAgICAgIGppdC5sb2FkUHRyKHZtLndhc21Db250ZXh0LnBv
aW50ZXJUb0luc3RhbmNlKCksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKICAgICBwdHJkaWZm
X3QgcHJldmlvdXNJbnN0YW5jZU9mZnNldCA9IHRoaXMtPnByZXZpb3VzSW5zdGFuY2VPZmZzZXQo
KTsKLSAgICBqaXQuc3RvcmVQdHIoc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQ
UkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBwcmV2aW91c0luc3RhbmNlT2Zmc2V0KSk7CisgICAg
aml0LnN0b3JlUHRyKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHByZXZpb3VzSW5zdGFuY2VPZmZzZXQpKTsK
IAotICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigmaW5zdGFuY2UoKS0+
aW5zdGFuY2UoKSksIHNjcmF0Y2hHUFIpOworICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbVB0cigmaW5zdGFuY2UoKS0+aW5zdGFuY2UoKSksIHNjcmF0Y2hKU1IucGF5bG9hZEdQ
UigpKTsKICAgICBpZiAoV2FzbTo6Q29udGV4dDo6dXNlRmFzdFRMUygpKSAKLSAgICAgICAgaml0
LnN0b3JlV2FzbUNvbnRleHRJbnN0YW5jZShzY3JhdGNoR1BSKTsKKyAgICAgICAgaml0LnN0b3Jl
V2FzbUNvbnRleHRJbnN0YW5jZShzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAgICAgZWxzZSB7
Ci0gICAgICAgIGppdC5tb3ZlKHNjcmF0Y2hHUFIsIHBpbm5lZFJlZ3Mud2FzbUNvbnRleHRJbnN0
YW5jZVBvaW50ZXIpOwotICAgICAgICBqaXQuc3RvcmVQdHIoc2NyYXRjaEdQUiwgdm0ud2FzbUNv
bnRleHQucG9pbnRlclRvSW5zdGFuY2UoKSk7CisgICAgICAgIGppdC5tb3ZlKHNjcmF0Y2hKU1Iu
cGF5bG9hZEdQUigpLCBwaW5uZWRSZWdzLndhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyKTsKKyAg
ICAgICAgaml0LnN0b3JlUHRyKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCB2bS53YXNtQ29udGV4
dC5wb2ludGVyVG9JbnN0YW5jZSgpKTsKICAgICB9CiAgICAgaWYgKHN0YWNrTGltaXRHUFJJc0Ns
b2JiZXJlZCkKICAgICAgICAgaml0LmxvYWRQdHIodm0uYWRkcmVzc09mU29mdFN0YWNrTGltaXQo
KSwgc3RhY2tMaW1pdEdQUik7Ci0gICAgaml0LnN0b3JlUHRyKHN0YWNrTGltaXRHUFIsIENDYWxs
SGVscGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNo
ZWRTdGFja0xpbWl0KCkpKTsKKyAgICBqaXQuc3RvcmVQdHIoc3RhY2tMaW1pdEdQUiwgQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBXYXNtOjpJbnN0YW5jZTo6
b2Zmc2V0T2ZDYWNoZWRTdGFja0xpbWl0KCkpKTsKIAotICAgIGlmICghIW1vZHVsZUluZm9ybWF0
aW9uLm1lbW9yeSkgeworI2lmICFDUFUoQVJNKSAvLyBBUk0gaGFzIG5vIHBpbm5lZCByZWdpc3Rl
cnMgZm9yIFdhc20gTWVtb3J5LCBzbyBubyBuZWVkIHRvIHNldCB0aGVtIHVwCisgICAgaWYgKCEh
aW5zdGFuY2UoKS0+aW5zdGFuY2UoKS5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpLm1lbW9y
eSkgewogICAgICAgICBHUFJSZWcgYmFzZU1lbW9yeSA9IHBpbm5lZFJlZ3MuYmFzZU1lbW9yeVBv
aW50ZXI7CiAgICAgICAgIEdQUlJlZyBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUgPSBJbnZh
bGlkR1BSUmVnOwogICAgICAgICBhdXRvIG1vZGUgPSBpbnN0YW5jZSgpLT5tZW1vcnlNb2RlKCk7
CiAKICAgICAgICAgaWYgKGlzQVJNNjRFKCkpIHsKLSAgICAgICAgICAgIGlmIChtb2RlICE9IFdh
c206Ok1lbW9yeU1vZGU6OlNpZ25hbGluZykKKyAgICAgICAgICAgIGlmIChtb2RlID09IFdhc206
Ok1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nKQogICAgICAgICAgICAgICAgIHNjcmF0Y2hPckJv
dW5kc0NoZWNraW5nU2l6ZSA9IHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXI7
CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgc2NyYXRjaE9yQm91bmRzQ2hlY2tp
bmdTaXplID0gc3RhY2tMaW1pdEdQUjsKLSAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVs
cGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRC
b3VuZHNDaGVja2luZ1NpemUoKSksIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSk7CisgICAg
ICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXls
b2FkR1BSKCksIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZEJvdW5kc0NoZWNraW5nU2l6
ZSgpKSwgc2NyYXRjaE9yQm91bmRzQ2hlY2tpbmdTaXplKTsKICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIGlmIChtb2RlICE9IFdhc206Ok1lbW9yeU1vZGU6OlNpZ25hbGluZykKLSAgICAg
ICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwg
V2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKCkpLCBwaW5u
ZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGlmIChtb2Rl
ID09IFdhc206Ok1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nKQorICAgICAgICAgICAgICAgIGpp
dC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwg
V2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKCkpLCBwaW5u
ZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyKTsKICAgICAgICAgfQogCi0gICAgICAg
IGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBXYXNtOjpJbnN0
YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnkoKSksIGJhc2VNZW1vcnkpOwotICAgICAgICBqaXQu
Y2FnZUNvbmRpdGlvbmFsbHlBbmRVbnRhZyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5
LCBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUsIHNjcmF0Y2hHUFIpOworICAgICAgICBqaXQu
bG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIFdh
c206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7CisgICAg
ICAgIGppdC5jYWdlQ29uZGl0aW9uYWxseUFuZFVudGFnKEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJh
c2VNZW1vcnksIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSwgc2NyYXRjaEpTUi5wYXlsb2Fk
R1BSKCkpOwogICAgIH0KKyNlbmRpZgogCiAgICAgLy8gV2UgdXNlIHRoaXMgY2FsbGVlIHRvIGlu
ZGljYXRlIGhvdyB0byB1bndpbmQgcGFzdCB0aGVzZSB0eXBlcyBvZiBmcmFtZXM6CiAgICAgLy8g
MS4gV2UgbmVlZCB0byBrbm93IHdoZXJlIHRvIGdldCBjYWxsZWUgc2F2ZXMuCkBAIC0zOTAsOCAr
NDEyLDggQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5
RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAvLyBGSVhNRTogQ3VycmVudGx5
IHdlIGp1c3QgZG8gYW4gaW5kaXJlY3QganVtcC4gQnV0IHdlIHNob3VsZCB0ZWFjaCB0aGUgTW9k
dWxlCiAgICAgLy8gaG93IHRvIHJlcGF0Y2ggdXM6CiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjU3MAotICAgIGppdC5sb2FkUHRyKGVudHJ5cG9pbnRM
b2FkTG9jYXRpb24oKSwgc2NyYXRjaEdQUik7Ci0gICAgaml0LmNhbGwoc2NyYXRjaEdQUiwgV2Fz
bUVudHJ5UHRyVGFnKTsKKyAgICBqaXQubG9hZFB0cihlbnRyeXBvaW50TG9hZExvY2F0aW9uKCks
IHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICBqaXQuY2FsbChzY3JhdGNoSlNSLnBheWxv
YWRHUFIoKSwgV2FzbUVudHJ5UHRyVGFnKTsKIAogICAgIG1hcnNoYWxsSlNSZXN1bHQoaml0LCB0
eXBlRGVmaW5pdGlvbiwgd2FzbUNhbGxJbmZvLCBzYXZlZFJlc3VsdFJlZ2lzdGVycyk7CiAKQEAg
LTQyMSw3ICs0NDMsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2Vi
QXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgIGppdC5tb3ZlKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih0aGlzKSwgR1BSSW5mbzo6cmVnVDApOwogICAgIGpp
dC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogI2lmIENQVShBUk02NEUpCi0gICAgaml0LnVudGFn
UmV0dXJuQWRkcmVzcyhzY3JhdGNoR1BSKTsKKyAgICBqaXQudW50YWdSZXR1cm5BZGRyZXNzKHNj
cmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKICNlbmRpZgogICAgIGF1dG8ganVtcFRvSG9zdENhbGxU
aHVuayA9IGppdC5qdW1wKCk7CiAKQEAgLTQyOSw3ICs0NTEsNyBAQCBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2lu
dFNsb3coKQogICAgIGlmIChVTkxJS0VMWShsaW5rQnVmZmVyLmRpZEZhaWxUb0FsbG9jYXRlKCkp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGxpbmtCdWZmZXIubGluayhqdW1wVG9I
b3N0Q2FsbFRodW5rLCBDb2RlTG9jYXRpb25MYWJlbDxKU0VudHJ5UHRyVGFnPihleGVjdXRhYmxl
KCktPmVudHJ5cG9pbnRGb3IoQ29kZUZvckNhbGwsIE11c3RDaGVja0FyaXR5KS5leGVjdXRhYmxl
QWRkcmVzcygpKSk7CisgICAgbGlua0J1ZmZlci5saW5rKGp1bXBUb0hvc3RDYWxsVGh1bmssIENv
ZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+KGV4ZWN1dGFibGUoKS0+ZW50cnlwb2ludEZv
cihDb2RlRm9yQ2FsbCwgTXVzdENoZWNrQXJpdHkpKSk7CiAgICAgbV9qc0NhbGxFbnRyeXBvaW50
ID0gRklOQUxJWkVfV0FTTV9DT0RFKGxpbmtCdWZmZXIsIFdhc21FbnRyeVB0clRhZywgIkpTLT5X
YXNtIElDIik7CiAgICAgcmV0dXJuIG1fanNDYWxsRW50cnlwb2ludC5jb2RlKCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbENv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
R2xvYmFsQ29uc3RydWN0b3IuY3BwCmluZGV4IGEyMjFiMmVjYjcxMy4uY2M3Y2JlM2U0Nzg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2Jh
bENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseUdsb2JhbENvbnN0cnVjdG9yLmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIEpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5R2xvYmFsLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iCiAgICAgUmVmPFdhc206Okdsb2JhbD4gd2FzbUdsb2JhbCA9IFdhc206
Okdsb2JhbDo6Y3JlYXRlKHR5cGUsIG11dGFiaWxpdHksIGluaXRpYWxWYWx1ZSk7CiAgICAgSlNX
ZWJBc3NlbWJseUdsb2JhbCoganNXZWJBc3NlbWJseUdsb2JhbCA9IEpTV2ViQXNzZW1ibHlHbG9i
YWw6OnRyeUNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCB3ZWJBc3NlbWJseUdsb2JhbFN0cnVjdHVy
ZSwgV1RGTW92ZSh3YXNtR2xvYmFsKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Nj
b3BlLCB7IH0pOwotICAgIGVuc3VyZVN0aWxsQWxpdmVIZXJlKGJpdHdpc2VfY2FzdDx2b2lkKj4o
aW5pdGlhbFZhbHVlKSk7IC8vIEVuc3VyZSB0aGlzIGlzIGtlcHQgYWxpdmUgd2hpbGUgY3JlYXRp
bmcgSlNXZWJBc3NlbWJseUdsb2JhbC4KKyAgICBlbnN1cmVTdGlsbEFsaXZlSGVyZShpbml0aWFs
VmFsdWUpOyAvLyBFbnN1cmUgdGhpcyBpcyBrZXB0IGFsaXZlIHdoaWxlIGNyZWF0aW5nIEpTV2Vi
QXNzZW1ibHlHbG9iYWwuCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1dlYkFzc2VtYmx5
R2xvYmFsKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCmluZGV4IGJjOWNiMDY4ZDhhMy4uOTdjM2Vj
OTIzOWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseU1vZHVsZVJlY29yZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCkBAIC01NTQsNyArNTU0LDcgQEAgdm9pZCBXZWJB
c3NlbWJseU1vZHVsZVJlY29yZDo6aW5pdGlhbGl6ZUV4cG9ydHMoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKICAgICAgICAgICAgICAgICBKU1dlYkFzc2VtYmx5R2xvYmFsKiBnbG9iYWxW
YWx1ZSA9IEpTV2ViQXNzZW1ibHlHbG9iYWw6OnRyeUNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBn
bG9iYWxPYmplY3QtPndlYkFzc2VtYmx5R2xvYmFsU3RydWN0dXJlKCksIFdURk1vdmUoZ2xvYmFs
UmVmKSk7CiAgICAgICAgICAgICAgICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKICAgICAg
ICAgICAgICAgICBtX2luc3RhbmNlLT5saW5rR2xvYmFsKHZtLCBnbG9iYWxJbmRleCwgZ2xvYmFs
VmFsdWUpOwotICAgICAgICAgICAgICAgIGVuc3VyZVN0aWxsQWxpdmVIZXJlKGJpdHdpc2VfY2Fz
dDx2b2lkKj4oaW5pdGlhbEJpdHMpKTsgLy8gRW5zdXJlIHRoaXMgaXMga2VwdCBhbGl2ZSB3aGls
ZSBjcmVhdGluZyBKU1dlYkFzc2VtYmx5R2xvYmFsLgorICAgICAgICAgICAgICAgIGVuc3VyZVN0
aWxsQWxpdmVIZXJlKGluaXRpYWxCaXRzKTsgLy8gRW5zdXJlIHRoaXMgaXMga2VwdCBhbGl2ZSB3
aGlsZSBjcmVhdGluZyBKU1dlYkFzc2VtYmx5R2xvYmFsLgogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm1FbmFibGUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKaW5k
ZXggYzE1NWFjMjgwNGIwLi4zNzVjNjkxMWQ5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtRW5hYmxlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaApA
QCAtNTg1LDEyICs1ODUsMTIgQEAKICNlbmRpZgogCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLS8q
IERpc2FibGUgV2ViQXNzZW1ibHkgb24gYWxsIDMyYml0IHBsYXRmb3Jtcy4gSXRzIExMSW50IHRp
ZXIgY291bGQKLSAqIHdvcmsgb24gdGhlbSwgYnV0IHN0aWxsIG5lZWRzIHNvbWUgZmluYWwgdG91
Y2hlcy4gKi8KKyNpZiAhQ1BVKEFSTSkKICN1bmRlZiBFTkFCTEVfV0VCQVNTRU1CTFkKICNkZWZp
bmUgRU5BQkxFX1dFQkFTU0VNQkxZIDAKICN1bmRlZiBFTkFCTEVfV0VCQVNTRU1CTFlfQjNKSVQK
ICNkZWZpbmUgRU5BQkxFX1dFQkFTU0VNQkxZX0IzSklUIDAKKyNlbmRpZgogI2lmIChDUFUoQVJN
X1RIVU1CMikgfHwgQ1BVKE1JUFMpKSAmJiBPUyhMSU5VWCkKIC8qIE9uIEFSTXY3IGFuZCBNSVBT
IG9uIExpbnV4IHRoZSBKSVQgaXMgZW5hYmxlZCB1bmxlc3MgZXhwbGljaXRseSBkaXNhYmxlZC4g
Ki8KICNpZiAhZGVmaW5lZChFTkFCTEVfSklUKQpAQCAtNzA4LDcgKzcwOCw3IEBACiAjZGVmaW5l
IEVOQUJMRV9TQU1QTElOR19QUk9GSUxFUiAxCiAjZW5kaWYKIAotI2lmIEVOQUJMRShXRUJBU1NF
TUJMWSkgJiYgSEFWRShNQUNISU5FX0NPTlRFWFQpCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAm
JiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkgJiYgQ1BVKEFERFJFU1M2NCkKICNkZWZpbmUgRU5BQkxF
X1dFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkgMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mt
c3RyZXNzLXRlc3RzCmluZGV4IGY5MDQ5YjNjYzY0Ny4uZDNiZjExMjA4NDg5IDEwMDc1NQotLS0g
YS9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMv
cnVuLWpzYy1zdHJlc3MtdGVzdHMKQEAgLTU4NSw2ICs1ODUsOCBAQCBlbmQKICRob3N0T1MgPSBk
ZXRlcm1pbmVPUyB1bmxlc3MgJGhvc3RPUwogJGFyY2hpdGVjdHVyZSA9IGRldGVybWluZUFyY2hp
dGVjdHVyZSB1bmxlc3MgJGFyY2hpdGVjdHVyZQogJGlzRlRMUGxhdGZvcm0gPSAhKCRhcmNoaXRl
Y3R1cmUgPT0gIng4NiIgfHwgJGFyY2hpdGVjdHVyZSA9PSAiYXJtIiB8fCAkYXJjaGl0ZWN0dXJl
ID09ICJtaXBzIiB8fCAkYXJjaGl0ZWN0dXJlID09ICJyaXNjdjY0IiB8fCAkaG9zdE9TID09ICJ3
aW5kb3dzIiB8fCAkaG9zdE9TID09ICJwbGF5c3RhdGlvbiIpCisjIFNwZWNpYWwgY2FzZSBhcm12
Nywgd2Ugd2FudCB0byBydW4gdGhlIHdhc20gdGVzdHMgdGVtcG9yYXJpbHkgd2l0aG91dCBCMy9B
aXIgc3VwcG9ydAorJGlzV2FzbVBsYXRmb3JtID0gJGlzRlRMUGxhdGZvcm0gfHwgJGFyY2hpdGVj
dHVyZSA9PSAiYXJtIgogCiBpZiAkYXJjaGl0ZWN0dXJlID09ICJ4ODYiCiAgICAgIyBUaGUgSklU
IGlzIHRlbXBvcmFyaWx5IGRpc2FibGVkIG9uIHRoaXMgcGxhdGZvcm0gc2luY2UKQEAgLTE3Mjks
NyArMTczMSw3IEBAIGVuZAogCiBkZWYgcnVuV2ViQXNzZW1ibHkKICAgICByZXR1cm4gaWYgISRq
aXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRMUGxhdGZvcm0KKyAgICByZXR1cm4gaWYgISRp
c1dhc21QbGF0Zm9ybQogICAgIHJ1bigiZGVmYXVsdC13YXNtIiwgIi1tIiwgKkZUTF9PUFRJT05T
KQogICAgIGlmICRtb2RlICE9ICJxdWljayIKICAgICAgICAgcnVuKCJ3YXNtLW5vLWNqaXQteWVz
LXRscy1jb250ZXh0IiwgIi1tIiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PXRydWUiLCAq
KEZUTF9PUFRJT05TICsgTk9fQ0pJVF9PUFRJT05TKSkKQEAgLTE3MzcsMTUgKzE3MzksMTcgQEAg
ZGVmIHJ1bldlYkFzc2VtYmx5CiAgICAgICAgIHJ1bigid2FzbS1lYWdlci1qZXR0aXNvbiIsICIt
bSIsICItLWZvcmNlQ29kZUJsb2NrVG9KZXR0aXNvbkR1ZVRvT2xkQWdlPXRydWUiLCAiLS11c2VS
YW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAiLS12ZXJpZnlHQz10
cnVlIiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tbm8tdGxzLWNvbnRleHQiLCAi
LW0iLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9ZmFsc2UiLCAqRlRMX09QVElPTlMpCiAg
ICAgICAgIHJ1bigid2FzbS1zbG93LW1lbW9yeSIsICItbSIsICItLXVzZVdlYkFzc2VtYmx5RmFz
dE1lbW9yeT1mYWxzZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVuKCJ3YXNtLWIzIiwgIi1t
IiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqRlRM
X09QVElPTlMpCi0gICAgICAgIHJ1bigid2FzbS1haXIiLCAiLW0iLCAiLS11c2VXYXNtTExJbnQ9
ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUi
LCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNseSIs
ICItbSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAq
RlRMX09QVElPTlMpIGlmIHNob3VsZENvbGxlY3RDb250aW51b3VzbHk/CisgICAgICAgIGlmICRp
c0ZUTFBsYXRmb3JtCisgICAgICAgICAgICBydW4oIndhc20tYjMiLCAiLW0iLCAiLS11c2VXYXNt
TExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICpGVExfT1BUSU9OUykKKyAg
ICAgICAgICAgIHJ1bigid2FzbS1haXIiLCAiLW0iLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAi
LS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqRlRMX09Q
VElPTlMpCisgICAgICAgIGVuZAogICAgIGVuZAogZW5kCiAKIGRlZiBydW5XZWJBc3NlbWJseUpl
dFN0cmVhbTIKICAgICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRM
UGxhdGZvcm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQogCiAgICAgaWYgJG1lbW9y
eUxpbWl0ZWQKICAgICAgICAgc2tpcApAQCAtMTc2NCwxNSArMTc2OCwxNyBAQCBkZWYgcnVuV2Vi
QXNzZW1ibHlKZXRTdHJlYW0yCiAgICAgICAgIHJ1bigid2FzbS1lYWdlci1qZXR0aXNvbiIsICIt
LWZvcmNlQ29kZUJsb2NrVG9KZXR0aXNvbkR1ZVRvT2xkQWdlPXRydWUiLCAiLS12ZXJpZnlHQz10
cnVlIiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tbm8tdGxzLWNvbnRleHQiLCAi
LS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9ZmFsc2UiLCAqRlRMX09QVElPTlMpCiAgICAgICAg
IHJ1bigid2FzbS1zbG93LW1lbW9yeSIsICItLXVzZVdlYkFzc2VtYmx5RmFzdE1lbW9yeT1mYWxz
ZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVuKCJ3YXNtLWIzIiwgIi0tdXNlV2FzbUxMSW50
PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqRlRMX09QVElPTlMpCi0gICAgICAg
IHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemlu
Z0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAg
IHJ1bigid2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNseSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9
dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqRlRMX09QVElPTlMpIGlmIHNob3VsZENvbGxlY3RD
b250aW51b3VzbHk/CisgICAgICAgIGlmICRpc0ZUTFBsYXRmb3JtCisgICAgICAgICAgICBydW4o
Indhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxz
ZSIsICpGVExfT1BUSU9OUykKKyAgICAgICAgICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNt
TExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9u
PXRydWUiLCAqRlRMX09QVElPTlMpCisgICAgICAgIGVuZAogICAgIGVuZAogZW5kCiAKIGRlZiBy
dW5XZWJBc3NlbWJseVN1aXRlKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiAgICAgcmV0
dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0
dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KICAgICBtb2R1bGVzID0gRGlyW1dBU01URVNUU19QQVRI
ICsgIiouanMiXS5tYXAgeyB8ZnwgRmlsZS5iYXNlbmFtZShmKSB9CiAgICAgcHJlcGFyZUV4dHJh
QWJzb2x1dGVGaWxlcyhXQVNNVEVTVFNfUEFUSCwgWyJ3YXNtLmpzb24iXSkKICAgICBwcmVwYXJl
RXh0cmFSZWxhdGl2ZUZpbGVzKG1vZHVsZXMubWFwIHsgfGZ8ICIuLi8iICsgZiB9LCAkY29sbGVj
dGlvbikKQEAgLTE3ODgsOSArMTc5NCwxMSBAQCBkZWYgcnVuV2ViQXNzZW1ibHlTdWl0ZSgqb3B0
aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQogICAgICAgICBydW4oIndhc20tZWFnZXItamV0dGlz
b24iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09sZEFnZT10cnVlIiwgIi0tdXNl
UmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgIi0tdmVyaWZ5R0M9
dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAg
ICAgICBydW4oIndhc20tbm8tdGxzLWNvbnRleHQiLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRl
eHQ9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkK
ICAgICAgICAgcnVuKCJ3YXNtLXNsb3ctbWVtb3J5IiwgIi0tdXNlV2ViQXNzZW1ibHlGYXN0TWVt
b3J5PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykp
Ci0gICAgICAgIHJ1bigid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21C
QlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0
aW9ucykpCi0gICAgICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAi
LS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqKEZUTF9P
UFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuKCJ3YXNt
LWNvbGxlY3QtY29udGludW91c2x5IiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0t
dmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlv
bnMpKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5PworICAgICAgICBpZiAkaXNGVExQbGF0
Zm9ybQorICAgICAgICAgICAgcnVuKCJ3YXNtLWIzIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwg
Ii0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3Bl
Y2lmaWNPcHRpb25zKSkKKyAgICAgICAgICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJ
bnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRy
dWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKKyAgICAg
ICAgZW5kCiAgICAgZW5kCiBlbmQKIApAQCAtMTgwNiw3ICsxODE0LDkgQEAgZW5kCiBkZWYgcnVu
V2ViQXNzZW1ibHlXaXRoSGFybmVzcygqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQogICAg
IHJhaXNlIHVubGVzcyAkYmVuY2htYXJrLnRvX3MgPX4gL2hhcm5lc3NcLm0/anMvCiAgICAgcmV0
dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0
dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KKyAgICAjIFNraXAgdGhpcyBjb21wbGV0ZWx5IG9uIGFy
bXY3IGZvciBub3csIHNpbmNlIG1vc3Qgb2YgdGhlIHRlc3RzIGFyZSByZWxhdGVkIHRvIE9TUiBh
bmQgaXQncyBhIGJpdCBoYWlyeSB0byBza2lwIHRoZW0gbWFudWFsbHkKKyAgICByZXR1cm4gaWYg
JGFyY2hpdGVjdHVyZSA9PSAiYXJtIgogCiAgICAgd2FzbUZpbGVzID0gYWxsV2FzbUZpbGVzKCRj
b2xsZWN0aW9uKQogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMod2FzbUZpbGVzLm1hcCB7
IHxmfCBmLmJhc2VuYW1lIH0sICRjb2xsZWN0aW9uKQpAQCAtMTgxOCw5ICsxODI4LDExIEBAIGRl
ZiBydW5XZWJBc3NlbWJseVdpdGhIYXJuZXNzKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMp
CiAgICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgIi0tZm9yY2VD
b2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhl
Y3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9P
UFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuSGFybmVz
c1Rlc3QoIndhc20tbm8tdGxzLWNvbnRleHQiLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9
ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAg
ICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tc2xvdy1tZW1vcnkiLCAiLS11c2VXZWJBc3NlbWJs
eUZhc3RNZW1vcnk9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNP
cHRpb25zKSkKLSAgICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tYjMiLCAiLS11c2VXYXNtTExJ
bnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRp
b25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQotICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1u
by1haXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFi
bGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3Bl
Y2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tY29sbGVjdC1jb250
aW51b3VzbHkiLCAiLS1jb2xsZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVl
IiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpIGlmIHNob3Vs
ZENvbGxlY3RDb250aW51b3VzbHk/CisgICAgICAgIGlmICRpc0ZUTFBsYXRmb3JtCisgICAgICAg
ICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICIt
LXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNp
ZmljT3B0aW9ucykpCisgICAgICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1uby1haXIiLCAi
LS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRB
bGxvY2F0aW9uPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRp
b25zKSkKKyAgICAgICAgZW5kCiAgICAgZW5kCiBlbmQKIApAQCAtMTgzMCw3ICsxODQyLDcgQEAg
ZGVmIHJ1bldlYkFzc2VtYmx5RW1zY3JpcHRlbihtb2RlKQogICAgICAgICByZXR1cm4KICAgICBl
bmQKICAgICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRMUGxhdGZv
cm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQogICAgIHdhc20gPSAkYmVuY2htYXJr
LnRvX3Muc3ViISAnLmpzJywgJy53YXNtJwogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMo
W1BhdGhuYW1lKCcuLicpICsgd2FzbV0sICRjb2xsZWN0aW9uKQogICAgIHJ1bigiZGVmYXVsdC13
YXNtIiwgKkZUTF9PUFRJT05TKQpAQCAtMTgzOCw5ICsxODUwLDExIEBAIGRlZiBydW5XZWJBc3Nl
bWJseUVtc2NyaXB0ZW4obW9kZSkKICAgICAgICAgcnVuKCJ3YXNtLW5vLWNqaXQteWVzLXRscy1j
b250ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PXRydWUiLCAqKEZUTF9PUFRJT05T
ICsgTk9fQ0pJVF9PUFRJT05TKSkKICAgICAgICAgcnVuKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwg
Ii0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRv
bWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUi
LCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1uby10bHMtY29udGV4dCIsICItLXVz
ZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVu
KCJ3YXNtLWIzIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFs
c2UiLCAqRlRMX09QVElPTlMpCi0gICAgICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJ
bnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRy
dWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNs
eSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqRlRM
X09QVElPTlMpIGlmIHNob3VsZENvbGxlY3RDb250aW51b3VzbHk/CisgICAgICAgIGlmICRpc0ZU
TFBsYXRmb3JtCisgICAgICAgICAgICBydW4oIndhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFs
c2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICpGVExfT1BUSU9OUykKKyAgICAgICAgICAg
IHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemlu
Z0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqRlRMX09QVElPTlMpCisgICAgICAg
IGVuZAogICAgIGVuZAogZW5kCiAKQEAgLTE4NTAsNyArMTg2NCw3IEBAIGRlZiBydW5XZWJBc3Nl
bWJseVNwZWNUZXN0QmFzZShtb2RlLCBzcGVjSGFybmVzc1BhdGgsICpvcHRpb25hbFRlc3RTcGVj
aWZpY09wdGlvCiAgICAgICAgIHJldHVybgogICAgIGVuZAogICAgIHJldHVybiBpZiAhJGppdFRl
c3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2Fz
bVBsYXRmb3JtCiAgICAgcHJlcGFyZUV4dHJhQWJzb2x1dGVGaWxlcyhXQVNNVEVTVFNfUEFUSCwg
WyJ3YXNtLmpzb24iXSkKIAogICAgIG1vZHVsZXMgPSBEaXJbV0FTTVRFU1RTX1BBVEggKyAiKi5q
cyJdLm1hcCB7IHxmfCBGaWxlLmJhc2VuYW1lKGYpIH0KQEAgLTE4NjUsOSArMTg3OSwxMSBAQCBk
ZWYgcnVuV2ViQXNzZW1ibHlTcGVjVGVzdEJhc2UobW9kZSwgc3BlY0hhcm5lc3NQYXRoLCAqb3B0
aW9uYWxUZXN0U3BlY2lmaWNPcHRpbwogICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20t
bm8tY2ppdC15ZXMtdGxzLWNvbnRleHQiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNz
SnNQYXRoLCAgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PXRydWUiLCAqKEZUTF9PUFRJT05T
ICsgTk9fQ0pJVF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAg
IHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgbm9pc3lPdXRwdXRI
YW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVl
VG9PbGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRp
b249dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0
U3BlY2lmaWNPcHRpb25zKSkKICAgICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLW5vLXRs
cy1jb250ZXh0Iiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tdXNl
RmFzdFRMU0Zvcldhc21Db250ZXh0PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVz
dFNwZWNpZmljT3B0aW9ucykpCi0gICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1iMyIs
IG5vaXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICItLXVzZVdhc21MTEludD1m
YWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFs
VGVzdFNwZWNpZmljT3B0aW9ucykpCi0gICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1h
aXIiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAiLS11c2VXYXNtTExJ
bnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRy
dWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAg
IHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5Iiwgbm9pc3lP
dXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10
cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVj
aWZpY09wdGlvbnMpKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5PworICAgICAgaWYgJGlz
RlRMUGxhdGZvcm0KKyAgICAgICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1iMyIsIG5v
aXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICItLXVzZVdhc21MTEludD1mYWxz
ZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVz
dFNwZWNpZmljT3B0aW9ucykpCisgICAgICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20t
YWlyIiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tdXNlV2FzbUxM
SW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10
cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCisgICAg
ICBlbmQKICAgICBlbmQKIGVuZAogCkBAIC0xODg1LDcgKzE5MDEsNyBAQCBlbmQKIAogZGVmIHJ1
bldlYkFzc2VtYmx5TG93RXhlY3V0YWJsZU1lbW9yeSgqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRp
b25zKQogICAgIHJldHVybiBpZiAhJGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0
Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2FzbVBsYXRmb3JtCiAgICAgbW9kdWxlcyA9IERpcltX
QVNNVEVTVFNfUEFUSCArICIqLmpzIl0ubWFwIHsgfGZ8IEZpbGUuYmFzZW5hbWUoZikgfQogICAg
IHByZXBhcmVFeHRyYUFic29sdXRlRmlsZXMoV0FTTVRFU1RTX1BBVEgsIFsid2FzbS5qc29uIl0p
CiAgICAgcHJlcGFyZUV4dHJhUmVsYXRpdmVGaWxlcyhtb2R1bGVzLm1hcCB7IHxmfCAiLi4vIiAr
IGYgfSwgJGNvbGxlY3Rpb24pCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1w
cm9maWxlci13YXNtLW5hbWUtc2VjdGlvbi5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXBy
b2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzCmluZGV4IDVjMjIwZmQ3NmNkYy4uMzY4NmM2Mzk3
MDQwIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5h
bWUtc2VjdGlvbi5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNt
LW5hbWUtc2VjdGlvbi5qcwpAQCAtMSwzICsxLDggQEAKKy8vIFRoaXMgdGVzdCBpcyBzdGF0aXN0
aWNhbCwgYW5kIHdpdGhvdXQgb3B0aW1pemluZyBXYXNtIHRpZXJzIHRoZSBsaWtlbGlob29kCisv
LyBvZiBoaXR0aW5nIHRoZSBkZWVwZXN0IGV4cGVjdGVkIHN0YWNrIHRyYWNlIGlzIHZlcnkgbG93
LCBzbyBkaXNhYmxlLgorLy8gRklYTUU6IHJlbW92ZSB3aGVuIDMyLWJpdCBwbGF0Zm9ybXMgc3Vw
cG9ydCBvcHRpbWl6aW5nIFdhc20gdGllcnMKKy8vQCBza2lwIGlmIFsiYXJtIiwgIm1pcHMiXS5p
bmNsdWRlPygkYXJjaGl0ZWN0dXJlKQorLy8KIC8vQCBydW5EZWZhdWx0CiAKIC8qCmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzIGIvSlNUZXN0cy9z
dHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qcwppbmRleCAwNmRmMDEyNDk1OTYuLjcyNDBj
MDBkZTI3ZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2Fz
bS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzCkBAIC0x
LDMgKzEsNCBAQAorLy9AIHNraXAgaWYgJGFyY2hpdGVjdHVyZSA9PSAiYXJtIgogLy9AIHJ1bkRl
ZmF1bHQKIAogaWYgKHBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKCkgJiYgJHZtLmlz
V2FzbVN1cHBvcnRlZCgpKSB7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zaGFyZWQtd2Fz
bS1tZW1vcnktd2l0aC16ZXJvLWJ5dGUuanMgYi9KU1Rlc3RzL3N0cmVzcy9zaGFyZWQtd2FzbS1t
ZW1vcnktd2l0aC16ZXJvLWJ5dGUuanMKaW5kZXggMjlkYTc3NTUxY2EwLi4zZmJhNjljNDRkYzMg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NoYXJlZC13YXNtLW1lbW9yeS13aXRoLXplcm8t
Ynl0ZS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zaGFyZWQtd2FzbS1tZW1vcnktd2l0aC16ZXJv
LWJ5dGUuanMKQEAgLTEsMiArMSw0IEBACisvL0dyb3dpbmcgYSBzaGFyZWQgbWVtb3J5IHJlcXVp
cmVzIHNpZ25hbCBoYW5kbGVycywgd2hpY2ggYXJlIG5vdCB5ZXQgcG9ydGVkIHRvIEFSTXY3Cisv
L0Agc2tpcCBpZiAkYXJjaGl0ZWN0dXJlID09ICJhcm0iCiBpZiAodHlwZW9mIFdlYkFzc2VtYmx5
ICE9PSAndW5kZWZpbmVkJykKICAgICAobmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7aW5pdGlhbDog
MCwgbWF4aW11bTogMSwgc2hhcmVkOiB0cnVlfSkpLmdyb3coMSkKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvd2FzbS9yZWdyZXNzL2xsaW50LWNhbGxlZS1zYXZlcy13aXRoLWZhc3QtbWVtb3J5LmpzIGIv
SlNUZXN0cy93YXNtL3JlZ3Jlc3MvbGxpbnQtY2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnku
anMKaW5kZXggZjlmMDljNDc1MTNhLi4xMWNmYjE2NGJiNjQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
d2FzbS9yZWdyZXNzL2xsaW50LWNhbGxlZS1zYXZlcy13aXRoLWZhc3QtbWVtb3J5LmpzCisrKyBi
L0pTVGVzdHMvd2FzbS9yZWdyZXNzL2xsaW50LWNhbGxlZS1zYXZlcy13aXRoLWZhc3QtbWVtb3J5
LmpzCkBAIC0xLDMgKzEsNCBAQAorLy9AIHNraXAgaWYgJGFyY2hpdGVjdHVyZSA9PSAiYXJtIgog
Ly9AIHJlcXVpcmVPcHRpb25zKCItLXVzZVdlYkFzc2VtYmx5RmFzdE1lbW9yeT10cnVlIikKIAog
aW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJy4uL2Fzc2VydC5qcyc7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3dhc20vc3RyZXNzL3NoYXJlZC1tZW1vcnktZXJyb3JzLmpzIGIvSlNUZXN0cy93YXNtL3N0
cmVzcy9zaGFyZWQtbWVtb3J5LWVycm9ycy5qcwppbmRleCAxNjRiZmZiNzNlYTkuLjE0ZTBhODc5
MWUxOSAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL3N0cmVzcy9zaGFyZWQtbWVtb3J5LWVycm9y
cy5qcworKysgYi9KU1Rlc3RzL3dhc20vc3RyZXNzL3NoYXJlZC1tZW1vcnktZXJyb3JzLmpzCkBA
IC0xLDMgKzEsNSBAQAorLy9Hcm93aW5nIGEgc2hhcmVkIG1lbW9yeSByZXF1aXJlcyBzaWduYWwg
aGFuZGxlcnMsIHdoaWNoIGFyZSBub3QgeWV0IHBvcnRlZCB0byBBUk12NworLy9AIHNraXAgaWYg
JGFyY2hpdGVjdHVyZSA9PSAiYXJtIgogaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJy4uL2Fzc2Vy
dC5qcyc7CiAKIGFzc2VydC50aHJvd3MoKCkgPT4gewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNt
L3N0cmVzcy9zaGFyZWQtd2FzbS1tZW1vcnktYnVmZmVyLmpzIGIvSlNUZXN0cy93YXNtL3N0cmVz
cy9zaGFyZWQtd2FzbS1tZW1vcnktYnVmZmVyLmpzCmluZGV4IGQ4OTYxM2M5MDkyNS4uNjVmNDUx
N2FiZDIzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vc3RyZXNzL3NoYXJlZC13YXNtLW1lbW9y
eS1idWZmZXIuanMKKysrIGIvSlNUZXN0cy93YXNtL3N0cmVzcy9zaGFyZWQtd2FzbS1tZW1vcnkt
YnVmZmVyLmpzCkBAIC0xLDMgKzEsNSBAQAorLy9Hcm93aW5nIGEgc2hhcmVkIG1lbW9yeSByZXF1
aXJlcyBzaWduYWwgaGFuZGxlcnMsIHdoaWNoIGFyZSBub3QgeWV0IHBvcnRlZCB0byBBUk12Nwor
Ly9AIHNraXAgaWYgJGFyY2hpdGVjdHVyZSA9PSAiYXJtIgogaW1wb3J0ICogYXMgYXNzZXJ0IGZy
b20gJy4uL2Fzc2VydC5qcycKIAogbGV0IHBhZ2VTaXplID0gNjQgPDwgMTA7Ci0tIAoyLjMwLjIK
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>460126</attachid>
            <date>2022-06-09 04:40:09 -0700</date>
            <delta_ts>2022-06-09 12:59:02 -0700</delta_ts>
            <desc>v14 - fix wasm shared memory</desc>
            <filename>bug-221260-20220609114007.patch</filename>
            <type>text/plain</type>
            <size>322222</size>
            <attacher name="Geza Lore">glore</attacher>
            
              <data encoding="base64">RnJvbSBmN2M0MGI2OTU4MGFkYjFiN2Q5OGE3ZDMwZDFjOTQ2OTA3ZTczMDg0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHZXphIExvcmUgPGdsb3JlQGlnYWxpYS5jb20+CkRhdGU6IEZy
aSwgMjcgTWF5IDIwMjIgMDg6NDc6MjEgKzAwMDAKU3ViamVjdDogW1BBVENIXSBFbmFibGUgV2Fz
bUxMSW50IG9uIEFSTXY3Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp
bjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpQYXRjaCBi
eSBHZXphIExvcmUgPGdsb3JlQGlnYWxpYS5jb20+IG9uIDIwMjItMDUtMjcKaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTI2MAoKUmV2aWV3ZWQgYnkgU2FhbSBCYXJh
dGkuCgpQYXRjaCBieSBHZXphIExvcmUgYW5kIFhhbiBMw7NwZXouCgpJbXBsZW1lbnQgdGhlIExM
SW50IHRpZXIgb2YgV2ViQXNzZW1ibHkgZm9yIEFSTXY3LiBBIGxvdCBvZiB0aGUKd29yayB3aWxs
IGJlIHNoYXJlZCBieSBhbnkgMzJiaXQgcG9ydCwgYnV0IHRoZSBvZmZsaW5lYXNzZW1ibGVyCmhh
cyBvbmx5IGJlZW4gdXBkYXRlZCBmb3IgQVJNdjcgc28gZmFyLgoKTWFpbiBoaWdobGlnaHRzOgoK
V2UgaGF2ZSBzcGxpdCB0aGUgV2ViQXNzZW1ibHkuYXNtIGZpbGUgaW50byB0aHJlZSBjaHVua3Ms
CmZvbGxvd2luZyB3aGF0IExvd0xldmVsSW50ZXJwcmV0ZXIuYXNtIGRvZXMuIFRoZSBjb21tb24g
Y29kZQpyZW1haW5zIGluIFdlYkFzc2VtYmx5LmFzbSwgYW5kIDMyIGFuZCA2NGJpdCBzcGVjaWZp
YyBjb2RlIChtb3N0bHkKb3Bjb2RlIGltcGxlbWVudGF0aW9ucykgZ29lcyBpbnRvIFdlYkFzc2Vt
Ymx5MzJfNjQuYXNtIGFuZApXZWJBc3NlbWJseTY0LmFzbS4KCldlIGhhdmUgZGVjaWRlZCB0byB1
c2UgY29uc2VjdXRpdmUgZXZlbi9vZGQgcGFpcnMgb2YgR1BScyBmb3IgZXZlcnkKdHlwZSBvZiB3
YXNtIHZhbHVlcywgZXZlbiBpZiB0aGV5IGFyZSAzMmJpdCAoaTMyL2YzMiksIHdpdGggdGhlIG9k
ZAooaGlnaGVyKSBudW1iZXJlZCBHUFIgaG9sZGluZyB0aGUgbW9yZSBzaWduaWZpY2FudCBoYWxm
LiAzMmJpdCB2YWx1ZXMKYXJlIGhlbGQgaW4gdGhlIGV2ZW4gKGxvd2VyKSBudW1iZXJlZCByZWdp
c3Rlci4gVGhpcyBtYWtlcyB0aGUgY29kZQptdWNoIHNpbXBsZXIgYW5kIGFsbG93cyB1cyB0byBz
aGFyZSBtb3JlIGNvZGUgd2l0aCB0aGUgNjRiaXQgdmFyaWFudC4KVGhpcyBpcyBtb3N0bHkgcmVs
ZXZhbnQgZm9yIGFyZ3VtZW50IHBhc3NpbmcsIGFuZCBnaXZlbiB0aGF0IGV2ZXJ5CnZhbHVlIGVu
ZHMgdXAgaW4gdGhlIHN0YWNrIGFueXdheSB3ZSBkbyBub3QgdGhpbmsgaXQgaXMgc2lnbmlmaWNh
bnQKZnJvbSBhIHBlcmZvcm1hbmNlIFBPVi4KCldlIGFyZSByZXVzaW5nIEpTVmFsdWVSZWdzIHRv
IGhvbGQgV2FzbSB2YWx1ZXMgdG9vLiBPYnZpb3VzbHkgdGhleQphcmUgbm90IHJlYWxseSBKU1Zh
bHVlcywgc28gaXQgbWlnaHQgbWFrZSBzZW5zZSB0byBjcmVhdGUgYSBiYXNlCmNsYXNzIHRoYXQg
Y2FuIGJlIHVzZWQgZm9yIGJvdGggSlMgYW5kIFdhc20gdmFsdWVzLgoKV2UgZG8gbm90IGhhdmUg
ZW5vdWdoIHJlZ2lzdGVycyB0byBrZWVwIHRoaW5ncyBsaWtlIHRoZSBtZW1vcnkKYmFzZSBwb2lu
dGVyIGFuZCBzaXplIGluIHBpbm5lZCByZWdpc3RlcnMsIHNvIHdlIGFyZSBmb3JjZWQgdG8KbG9h
ZCB0aGVtIG9uIGVhY2ggdXNlLgoKV2UgZGlzYWJsZSB0aGUgJ1NpZ25hbGluZycgbWVtb3J5IG1v
ZGUsIHNpbmNlIHRoZSBjdXJyZW50CmltcGxlbWVudGF0aW9uIHJlbGllcyBvbiBiZWluZyBhYmxl
IHRvIG1wcm90ZWN0IGEgMl4zMiArIHJlZHpvbmUKcmVnaW9uIG9mIG1lbW9yeS4gVGhpcyBjYW4g
YmUgY2hhbmdlZCBpbiB0aGUgZnV0dXJlIGJ1dCBpdCdzIG5vdCBhCnByaW9yaXR5IGF0IHRoZSBt
b21lbnQuCgoqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5hbWUtc2VjdGlvbi5qczoK
KiBzdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qczoKKiB3YXNtL3JlZ3Jlc3MvbGxpbnQt
Y2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnkuanM6CiogQ01ha2VMaXN0cy50eHQ6CiogYXNz
ZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmg6CihKU0M6OkFSTXY3QXNzZW1ibGVyOjp2Y3Z0X3NpZ25l
ZFRvRmxvYXRpbmdQb2ludCk6CiogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaDoKKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6Y29udmVydEludDMyVG9GbG9hdCk6CihKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNdjc6OnRocmVhZFNhZmVQYXRjaGFibGVOZWFyQ2FsbCk6CihKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNdjc6OmNhbGxPcGVyYXRpb24pOgoqIGIzL0IzVmFsdWVSZXAuaDoKKEpTQzo6
QjM6OlZhbHVlUmVwOjpWYWx1ZVJlcCk6CiogYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwOgoo
SlNDOjpXYXNtOjpCeXRlY29kZUR1bXBlcjo6Zm9ybWF0Q29uc3RhbnQgY29uc3QpOgoqIGludGVy
cHJldGVyL0NhbGxGcmFtZS5oOiBhZGFwdCB0byBuZXcgY2FsbGVlIHRhZ2dpbmcgZm9ybWF0Lgoo
SlNDOjpDYWxsRnJhbWU6OmNhbGxlZSBjb25zdCk6CihKU0M6OkNhbGxGcmFtZTo6dW5zYWZlQ2Fs
bGVlIGNvbnN0KToKKiBpbnRlcnByZXRlci9DYWxsZWVCaXRzLmg6IGFkZCB3YXNtIHRhZ2dpbmcg
b2YgY2FsbGVlIHZhbHVlcyBmb3IKMzJiaXQuCihKU0M6OkNhbGxlZUJpdHM6OkNhbGxlZUJpdHMp
OgooSlNDOjpDYWxsZWVCaXRzOjpvcGVyYXRvcj0pOgooSlNDOjpDYWxsZWVCaXRzOjpib3hXYXNt
KToKKEpTQzo6Q2FsbGVlQml0czo6aXNXYXNtIGNvbnN0KToKKEpTQzo6Q2FsbGVlQml0czo6YXNX
YXNtQ2FsbGVlIGNvbnN0KToKKiBpbnRlcnByZXRlci9SZWdpc3Rlci5oOgooSlNDOjpSZWdpc3Rl
cjo6dW5ib3hlZEZsb2F0IGNvbnN0KToKKEpTQzo6UmVnaXN0ZXI6OmFzYW5VbnNhZmVVbmJveGVk
RmxvYXQgY29uc3QpOgoqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoKKEpTQzo6QXNzZW1ibHlIZWxw
ZXJzOjp1bmJveERvdWJsZSk6Ciogaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmNwcDoKKEpTQzo6
UmVnaXN0ZXJBdE9mZnNldExpc3Q6OlJlZ2lzdGVyQXRPZmZzZXRMaXN0KToKKiBqaXQvUmVnaXN0
ZXJBdE9mZnNldExpc3QuaDoKKEpTQzo6UmVnaXN0ZXJBdE9mZnNldExpc3Q6OnNpemVPZkFyZWFJ
bkJ5dGVzIGNvbnN0KToKKiBqaXQvUmVnaXN0ZXJTZXQuY3BwOgooSlNDOjpSZWdpc3RlclNldDo6
bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKToKKiBsbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaDoK
KiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgoqIGxsaW50L1dlYkFzc2VtYmx5
LmFzbToKKiBsbGludC9XZWJBc3NlbWJseTMyXzY0LmFzbTogQWRkZWQuCiogbGxpbnQvV2ViQXNz
ZW1ibHk2NC5hc206IEFkZGVkLgoqIG9mZmxpbmVhc20vYXJtLnJiOgoqIG9mZmxpbmVhc20vaW5z
dHJ1Y3Rpb25zLnJiOgoqIG9mZmxpbmVhc20vcmVnaXN0ZXJzLnJiOgoqIG9mZmxpbmVhc20vcmlz
Yy5yYjoKKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKEpTQzo6d2FzbVVuYm94ZWRGbG9hdCk6Ciog
cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oOgooSlNDOjpKU1ZhbHVlOjpKU1ZhbHVlKToKKiB3
YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHA6CihKU0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjp1
c2VTaWduYWxpbmdNZW1vcnkgY29uc3QpOgooSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6QWly
SVJHZW5lcmF0b3IpOgooSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6ZW1pdENoZWNrQW5kUHJl
cGFyZVBvaW50ZXIpOgooSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6YWRkQ2FsbCk6Ciogd2Fz
bS9XYXNtQjNJUkdlbmVyYXRvci5jcHA6CihKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OnVzZVNp
Z25hbGluZ01lbW9yeSBjb25zdCk6CihKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OkIzSVJHZW5l
cmF0b3IpOgooSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjphZGRBcmd1bWVudHMpOgooSlNDOjpX
YXNtOjpCM0lSR2VuZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcik6CihKU0M6Oldh
c206OkIzSVJHZW5lcmF0b3I6Om1lbW9yeUtpbmQpOgooSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9y
OjphZGRDYWxsKToKKiB3YXNtL1dhc21CaW5kaW5nLmNwcDoKKEpTQzo6V2FzbTo6d2FzbVRvV2Fz
bSk6Ciogd2FzbS9XYXNtQ2FsbGVlLmNwcDoKKEpTQzo6V2FzbTo6TExJbnRDYWxsZWU6OmNhbGxl
ZVNhdmVSZWdpc3RlcnMpOgoqIHdhc20vV2FzbUNhbGxlZUdyb3VwLmNwcDoKKEpTQzo6V2FzbTo6
Q2FsbGVlR3JvdXA6OmlzU2FmZVRvUnVuKToKKiB3YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5j
cHA6CihKU0M6Oldhc206OmpzQ2FsbGluZ0NvbnZlbnRpb24pOgooSlNDOjpXYXNtOjp3YXNtQ2Fs
bGluZ0NvbnZlbnRpb24pOgoqIHdhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmg6CihKU0M6Oldh
c206OkNhbGxJbmZvcm1hdGlvbjo6Y29tcHV0ZVJlc3VsdHNPZmZzZXRMaXN0KToKKEpTQzo6V2Fz
bTo6V2FzbUNhbGxpbmdDb252ZW50aW9uOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb24pOgooSlNDOjpX
YXNtOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxsTG9jYXRpb25JbXBsIGNvbnN0KToK
KEpTQzo6V2FzbTo6V2FzbUNhbGxpbmdDb252ZW50aW9uOjptYXJzaGFsbExvY2F0aW9uIGNvbnN0
KToKKEpTQzo6V2FzbTo6SlNDYWxsaW5nQ29udmVudGlvbjo6SlNDYWxsaW5nQ29udmVudGlvbik6
CihKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxsTG9jYXRpb25JbXBsIGNv
bnN0KToKKEpTQzo6V2FzbTo6SlNDYWxsaW5nQ29udmVudGlvbjo6bWFyc2hhbGxMb2NhdGlvbiBj
b25zdCk6CihKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246OmNhbGxJbmZvcm1hdGlvbkZv
ciBjb25zdCk6Ciogd2FzbS9XYXNtRm9ybWF0Lmg6Ciogd2FzbS9XYXNtSW5kZXhPck5hbWUuY3Bw
OgooSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6SW5kZXhPck5hbWUpOgooSlNDOjpXYXNtOjptYWtl
U3RyaW5nKToKKiB3YXNtL1dhc21JbmRleE9yTmFtZS5oOgooSlNDOjpXYXNtOjpJbmRleE9yTmFt
ZTo6SW5kZXhPck5hbWUpOgooSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6aXNFbXB0eSBjb25zdCk6
CihKU0M6Oldhc206OkluZGV4T3JOYW1lOjppc0luZGV4IGNvbnN0KToKKEpTQzo6V2FzbTo6SW5k
ZXhPck5hbWU6OmlzTmFtZSBjb25zdCk6CihKU0M6Oldhc206OkluZGV4T3JOYW1lOjppbmRleCBj
b25zdCk6CihKU0M6Oldhc206OkluZGV4T3JOYW1lOjpuYW1lIGNvbnN0KToKKEpTQzo6V2FzbTo6
SW5kZXhPck5hbWU6Om5hbWVTZWN0aW9uIGNvbnN0KToKKiB3YXNtL1dhc21JbnN0YW5jZS5oOgoo
SlNDOjpXYXNtOjpJbnN0YW5jZTo6dXBkYXRlQ2FjaGVkTWVtb3J5KToKKiB3YXNtL1dhc21MTElu
dEdlbmVyYXRvci5jcHA6CihKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjp2aXJ0dWFsUmVnaXN0
ZXJGb3JXYXNtTG9jYWwpOgooSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0
aW9uRm9yQ2FsbGVyKToKKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlv
bkZvckNhbGxlZSk6CihKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjphZGRBcmd1bWVudHMpOgoo
SlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6YWRkTG9vcCk6Ciogd2FzbS9XYXNtTExJbnRQbGFu
LmNwcDoKKEpTQzo6V2FzbTo6TExJbnRQbGFuOjpkaWRDb21wbGV0ZUNvbXBpbGF0aW9uKToKKiB3
YXNtL1dhc21NZW1vcnkuY3BwOgooSlNDOjpXYXNtOjpNZW1vcnlIYW5kbGU6On5NZW1vcnlIYW5k
bGUpOgooSlNDOjpXYXNtOjpNZW1vcnk6OnRyeUNyZWF0ZSk6CihKU0M6Oldhc206Ok1lbW9yeTo6
Z3Jvd1NoYXJlZCk6CihKU0M6Oldhc206Ok1lbW9yeTo6Z3Jvdyk6CihKU0M6Oldhc206Ok1lbW9y
eTo6Y29weSk6Ciogd2FzbS9XYXNtTWVtb3J5Lmg6Ciogd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRp
b24uY3BwOgooSlNDOjpXYXNtOjpQaW5uZWRSZWdpc3RlckluZm86OmdldCk6Ciogd2FzbS9XYXNt
TWVtb3J5SW5mb3JtYXRpb24uaDoKKEpTQzo6V2FzbTo6UGlubmVkUmVnaXN0ZXJJbmZvOjp0b1Nh
dmUgY29uc3QpOgoqIHdhc20vV2FzbU1lbW9yeU1vZGUuY3BwOgooSlNDOjpXYXNtOjptYWtlU3Ry
aW5nKToKKiB3YXNtL1dhc21NZW1vcnlNb2RlLmg6Ciogd2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNw
cDoKKiB3YXNtL1dhc21PcGNvZGVPcmlnaW4uaDoKKiB3YXNtL1dhc21PcGVyYXRpb25zLmNwcDoK
KEpTQzo6V2FzbTo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKToKKiB3YXNtL1dhc21PcGVyYXRp
b25zLmg6Ciogd2FzbS9XYXNtUGFnZUNvdW50Lmg6Ciogd2FzbS9XYXNtUGFyc2VyLmg6CihKU0M6
Oldhc206OlBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVUludDMyKToKKEpTQzo6V2FzbTo6UGFy
c2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VVSW50NjQpOgoqIHdhc20vV2FzbVNsb3dQYXRocy5jcHA6
CihKU0M6OkxMSW50OjpXQVNNX1NMT1dfUEFUSF9ERUNMKToKKEpTQzo6TExJbnQ6OnNsb3dfcGF0
aF93YXNtX3BvcGNvdW50KToKKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX3BvcGNvdW50bGwp
OgooSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTMyX2Rpdl9zKToKKEpTQzo6TExJbnQ6OnNs
b3dfcGF0aF93YXNtX2kzMl9kaXZfdSk6CihKU0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pMzJf
cmVtX3MpOgooSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTMyX3JlbV91KToKKEpTQzo6TExJ
bnQ6OnNsb3dfcGF0aF93YXNtX2k2NF9kaXZfcyk6CihKU0M6OkxMSW50OjpzbG93X3BhdGhfd2Fz
bV9pNjRfZGl2X3UpOgooSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTY0X3JlbV9zKToKKEpT
Qzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2k2NF9yZW1fdSk6Ciogd2FzbS9XYXNtU2xvd1BhdGhz
Lmg6Ciogd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5jcHA6CihKU0M6Oldhc206OlZhbHVlTG9jYXRp
b246OmR1bXAgY29uc3QpOgooV1RGOjpwcmludEludGVybmFsKToKKiB3YXNtL1dhc21WYWx1ZUxv
Y2F0aW9uLmg6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OlZhbHVlTG9jYXRpb24pOgooSlND
OjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjppc0dQUiBjb25zdCk6CihKU0M6Oldhc206OlZhbHVlTG9j
YXRpb246OmlzRlBSIGNvbnN0KToKKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6aXNTdGFjayBj
b25zdCk6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzU3RhY2tBcmd1bWVudCBjb25zdCk6
CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmpzciBjb25zdCk6CihKU0M6Oldhc206OlZhbHVl
TG9jYXRpb246OmZwciBjb25zdCk6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OnJlZyk6IERl
bGV0ZWQuCihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzUmVnIGNvbnN0KTogRGVsZXRlZC4K
KEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6cmVnIGNvbnN0KTogRGVsZXRlZC4KKEpTQzo6V2Fz
bTo6VmFsdWVMb2NhdGlvbjo6Z3ByIGNvbnN0KTogRGVsZXRlZC4KKiB3YXNtL2pzL0pTVG9XYXNt
LmNwcDoKKEpTQzo6V2FzbTo6bWFyc2hhbGxKU1Jlc3VsdCk6CihKU0M6Oldhc206OmNyZWF0ZUpT
VG9XYXNtV3JhcHBlcik6Ciogd2FzbS9qcy9XYXNtVG9KUy5jcHA6CihKU0M6Oldhc206Ondhc21U
b0pTKToKKiB3YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwOgooSlNDOjpXZWJBc3NlbWJs
eUZ1bmN0aW9uOjpwcmV2aW91c0luc3RhbmNlT2Zmc2V0IGNvbnN0KToKKEpTQzo6V2ViQXNzZW1i
bHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3cpOgoqIHdhc20vanMvV2ViQXNzZW1ibHlH
bG9iYWxDb25zdHJ1Y3Rvci5jcHA6CihKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6Ciog
d2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHA6CihKU0M6OldlYkFzc2VtYmx5TW9k
dWxlUmVjb3JkOjppbml0aWFsaXplRXhwb3J0cyk6Ciogd3RmL1BsYXRmb3JtRW5hYmxlLmg6IGVu
YWJsZSBXZWJBc3NlbWJseSBvbiBBUk12Ny4KKiBTY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3Rz
OiBhbGxvdyB0byBydW4gdGhlIHdhc20gdGVzdHMgb24KYXJtdjcgZXZlbiB3aXRob3V0IGppdCBz
dXBwb3J0IChmb3Igbm93KS4KLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQgICAgICAgICAgfCAgICAyICsKIC4uLi9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qICB8ICAgIDQgKwogLi4uL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fz
c2VtYmxlci5oIHwgICAgNCArLQogLi4uL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmgg
ICAgICAgICAgIHwgICAyMCArCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5o
ICAgICAgICAgfCAgICA4ICstCiAuLi4vYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwICAgICAg
ICAgICAgICAgfCAgICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2Fs
bEZyYW1lLmggfCAgICA0ICstCiAuLi4vSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbGVl
Qml0cy5oICAgfCAgIDM1ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVn
aXN0ZXIuaCAgfCAgIDE2ICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxw
ZXJzLmggICB8ICAgIDUgKy0KIC4uLi9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaCAgICAg
ICAgICAgICB8ICAgIDYgKwogLi4uL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20g
ICAgICAgIHwgICAxNiArCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHku
YXNtICAgfCAxNTE5ICsrKy0tLS0tLS0tLS0tLS0tCiAuLi4vSmF2YVNjcmlwdENvcmUvbGxpbnQv
V2ViQXNzZW1ibHkzMl82NC5hc20gfCAxMTI5ICsrKysrKysrKysrKwogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5NjQuYXNtIHwgMTI1OSArKysrKysrKysrKysrKwogU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiICAgICAgIHwgIDI4MSArKy0KIC4u
Li9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYiB8ICAgMTcgKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5yYiB8ICAgIDMgKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIgICAgICB8ICAgIDYgKy0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaCAgICB8ICAgMTggKy0KIC4u
Li9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmggICAgICAgICAgICAgICB8ICAgIDcgKwogLi4u
L3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcCAgICAgICAgICAgICAgIHwgICAxNSArLQogLi4u
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwIHwgICAyOSArLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwICAgIHwgICAxOCArLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5jcHAgICAgIHwgICAgNSArLQogLi4u
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZUdyb3VwLmNwcCAgIHwgICAgNCArCiAuLi4v
d2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwICAgICAgICAgICAgfCAgIDM4ICstCiAuLi4v
d2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uaCAgICAgICAgICAgICAgfCAgIDQxICstCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmggICAgICAgfCAgICAyICsKIC4uLi9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5jcHAgICB8ICAgMjcgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5oICB8ICAgNzIgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5oICAgICB8ICAgMTggKy0KIC4uLi93
YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAgICAgICAgICAgICAgICB8ICAgMTAgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3BwICB8ICAgIDcgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3BwICAgICB8ICAgNTggKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaCAgICAgICB8ICAgIDUgKy0KIC4uLi93
YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5jcHAgICAgICAgICAgICB8ICAgIDcgKwogLi4uL3dh
c20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmggICAgICAgICAgICAgIHwgICAgNSArLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuY3BwIHwgICAgMiArCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5oICAgfCAgICAyICsKIC4uLi9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uY3BwICB8ICAgIDQgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uaCB8ICAgIDQgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcCB8ICAgNTQgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmggICB8ICAgMTUgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYWdlQ291bnQuaCAgICB8ICAgIDcgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaCAgICAgICB8ICAgIDQgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3BwICB8ICAyMzAgKystCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmggICAgfCAgIDM0ICsKIC4uLi9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmNwcCB8ICAgMTQgKy0KIC4uLi9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmggICB8ICAgNDQgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNwcCAgICB8ICAxODQgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcCAgICB8ICAxNDggKy0KIC4uLi93YXNt
L2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwICAgICAgICAgICB8ICAxNTIgKy0KIC4uLi93YXNt
L2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwICB8ICAgIDIgKy0KIC4uLi93YXNt
L2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcCAgICAgICB8ICAgIDIgKy0KIFNvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtRW5hYmxlLmggICAgICAgICAgICAgICB8ICAgIDYgKy0KIFRvb2xzL1Nj
cmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgICAgICAgICAgICB8ICAgNTQgKy0KIC4uLi9zYW1w
bGluZy1wcm9maWxlci13YXNtLW5hbWUtc2VjdGlvbi5qcyAgICB8ICAgIDUgKwogSlNUZXN0cy9z
dHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qcyAgICAgIHwgICAgMSArCiAuLi4vc2hhcmVk
LXdhc20tbWVtb3J5LXdpdGgtemVyby1ieXRlLmpzICAgICAgfCAgICAyICsKIC4uLi9sbGludC1j
YWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5qcyAgICB8ICAgIDEgKwogSlNUZXN0cy93YXNt
L3N0cmVzcy9zaGFyZWQtbWVtb3J5LWVycm9ycy5qcyAgIHwgICAgMiArCiAuLi4vd2FzbS9zdHJl
c3Mvc2hhcmVkLXdhc20tbWVtb3J5LWJ1ZmZlci5qcyAgfCAgICAyICsKIDYzIGZpbGVzIGNoYW5n
ZWQsIDQwMjggaW5zZXJ0aW9ucygrKSwgMTY2OSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHkzMl82NC5hc20KIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHk2
NC5hc20KCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYmI0YWQwMWU0MjYy
Li4wYWE2YmJjMjYzZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIw
MCw2ICsyMDAsOCBAQCBzZXQoTExJTlRfQVNNCiAgICAgbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
cjMyXzY0LmFzbQogICAgIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KICAgICBsbGlu
dC9XZWJBc3NlbWJseS5hc20KKyAgICBsbGludC9XZWJBc3NlbWJseTMyXzY0LmFzbQorICAgIGxs
aW50L1dlYkFzc2VtYmx5NjQuYXNtCiApCiAKIHNldChPRkZMSU5FX0FTTQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBiMzUzOTNjMDliNzQuLjg1NWVkMzkyNDM5NyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU3MzIsNiArNTczMiw4IEBACiAJCUZFOUZBN0M0Mjcz
QzhCMjYwMDVEOUU3MCAvKiBEZWZlckdDSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEZWZlckdDSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGRUEwODYxRTE4MkI3QTA0MDBGNkQ4NTEgLyogQnJlYWtwb2ludC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBCcmVha3BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUZFQTA4NjFGMTgyQjdBMDQwMEY2RDg1MSAvKiBEZWJ1Z2dlclByaW1pdGl2ZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVidWdnZXJQcmltaXRpdmVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZFQTIxNjg4Mjg1MDA3NjIwMDJCMzY2MiAvKiBX
ZWJBc3NlbWJseTY0LmFzbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYXNtLmFzbTsgbmFtZSA9IFdlYkFzc2VtYmx5NjQuYXNtOyBw
YXRoID0gbGxpbnQvV2ViQXNzZW1ibHk2NC5hc207IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUZFQTIxNjg5Mjg1MDA3RTMwMDJCMzY2MiAvKiBXZWJBc3NlbWJseTMyXzY0LmFzbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
YXNtLmFzbTsgbmFtZSA9IFdlYkFzc2VtYmx5MzJfNjQuYXNtOyBwYXRoID0gbGxpbnQvV2ViQXNz
ZW1ibHkzMl82NC5hc207IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFQTNCQkE3MjEy
QjY1NTgwMEU5M0FEMSAvKiBDYWxsRnJhbWVJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENhbGxGcmFtZUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRkVBM0JCQUIyMTJDOTdDQjAwRTkzQUQxIC8qIERGR0NGRy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBERkdDRkcuaDsgcGF0aCA9IGRmZy9ERkdDRkcuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVCMTM3NTYxQkIxMUVFRTAwQ0Q1MTAwIC8qIE1hY3Jv
QXNzZW1ibGVyQVJNNjQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TWFjcm9Bc3NlbWJsZXJBUk02NC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02
MDI3LDYgKzYwMjksOCBAQAogCQkJCTg2QTA1NDQ3MTU1NjQ1MUIwMDQ0NTE1NyAvKiBMb3dMZXZl
bEludGVycHJldGVyMzJfNjQuYXNtICovLAogCQkJCTg2QTA1NDQ4MTU1NjQ1MUIwMDQ0NTE1NyAv
KiBMb3dMZXZlbEludGVycHJldGVyNjQuYXNtICovLAogCQkJCUZFMDAyNjIyMjNGM0FGMzMwMDNB
MzU4RiAvKiBXZWJBc3NlbWJseS5hc20gKi8sCisJCQkJRkVBMjE2ODgyODUwMDc2MjAwMkIzNjYy
IC8qIFdlYkFzc2VtYmx5NjQuYXNtICovLAorCQkJCUZFQTIxNjg5Mjg1MDA3RTMwMDJCMzY2MiAv
KiBXZWJBc3NlbWJseTMyXzY0LmFzbSAqLywKIAkJCSk7CiAJCQluYW1lID0gbGxpbnQ7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9BUk12N0Fzc2VtYmxlci5oCmluZGV4IDljYTZhNGE2Yzg0MS4uNmM3NmU0ZWY1MjMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVy
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5o
CkBAIC0xOTkxLDEwICsxOTkxLDEwIEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIudmZw
T3AoT1BfVkNNUCwgT1BfVkNNUGIsIHRydWUsIFZGUE9wZXJhbmQoNSksIHJkLCBWRlBPcGVyYW5k
KDApKTsKICAgICB9CiAKLSAgICB2b2lkIHZjdnRfc2lnbmVkVG9GbG9hdGluZ1BvaW50KEZQRG91
YmxlUmVnaXN0ZXJJRCByZCwgRlBTaW5nbGVSZWdpc3RlcklEIHJtKQorICAgIHZvaWQgdmN2dF9z
aWduZWRUb0Zsb2F0aW5nUG9pbnQoRlBEb3VibGVSZWdpc3RlcklEIHJkLCBGUFNpbmdsZVJlZ2lz
dGVySUQgcm0sIGJvb2wgdG9Eb3VibGUgPSB0cnVlKQogICAgIHsKICAgICAgICAgLy8gYm9vbGVh
biB2YWx1ZXMgYXJlIDY0Yml0ICh0b0ludCwgdW5zaWduZWQsIHJvdW5kWmVybykKLSAgICAgICAg
bV9mb3JtYXR0ZXIudmZwT3AoT1BfVkNWVF9GUElWRlAsIE9QX1ZDVlRfRlBJVkZQYiwgdHJ1ZSwg
dmN2dE9wKGZhbHNlLCBmYWxzZSwgZmFsc2UpLCByZCwgcm0pOworICAgICAgICBtX2Zvcm1hdHRl
ci52ZnBPcChPUF9WQ1ZUX0ZQSVZGUCwgT1BfVkNWVF9GUElWRlBiLCB0b0RvdWJsZSwgdmN2dE9w
KGZhbHNlLCBmYWxzZSwgZmFsc2UpLCByZCwgcm0pOwogICAgIH0KIAogICAgIHZvaWQgdmN2dF9m
bG9hdGluZ1BvaW50VG9TaWduZWQoRlBTaW5nbGVSZWdpc3RlcklEIHJkLCBGUERvdWJsZVJlZ2lz
dGVySUQgcm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk12Ny5oCmluZGV4IDQyYjhhNDhjZGQyMi4uMDBiOGVkNjg5MWU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
djcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNdjcuaApAQCAtMTQ2Nyw2ICsxNDY3LDEyIEBAIHB1YmxpYzoKICAgICAgICAgQ1JBU0goKTsK
ICAgICB9CiAKKyAgICB2b2lkIGNvbnZlcnRJbnQzMlRvRmxvYXQoUmVnaXN0ZXJJRCBzcmMsIEZQ
UmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIudm1vdihmcFRlbXBS
ZWdpc3Rlciwgc3JjLCBzcmMpOworICAgICAgICBtX2Fzc2VtYmxlci52Y3Z0X3NpZ25lZFRvRmxv
YXRpbmdQb2ludChkZXN0LCBmcFRlbXBSZWdpc3RlckFzU2luZ2xlKCksIC8qIHRvRG91YmxlOiAq
LyBmYWxzZSk7CisgICAgfQorCiAgICAgdm9pZCBjb252ZXJ0SW50MzJUb0RvdWJsZShSZWdpc3Rl
cklEIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci52
bW92KGZwVGVtcFJlZ2lzdGVyLCBzcmMsIHNyYyk7CkBAIC0yMjk4LDYgKzIzMDQsMTQgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gQ2FsbChtX2Fzc2VtYmxlci5iKCksIENhbGw6OkxpbmthYmxl
TmVhclRhaWwpOwogICAgIH0KIAorICAgIC8vIEZJWE1FOiB3aHkgaXMgdGhpcyB0aGUgc2FtZSB0
aGFuIG5lYXJDYWxsKCkgaW4gQVJNNjQ/IGlzIGl0IHJpZ2h0PworICAgIEFMV0FZU19JTkxJTkUg
Q2FsbCB0aHJlYWRTYWZlUGF0Y2hhYmxlTmVhckNhbGwoKQorICAgIHsKKyAgICAgICAgaW52YWxp
ZGF0ZUFsbFRlbXBSZWdpc3RlcnMoKTsKKyAgICAgICAgbW92ZUZpeGVkV2lkdGhFbmNvZGluZyhU
cnVzdGVkSW1tMzIoMCksIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICByZXR1cm4gQ2FsbCht
X2Fzc2VtYmxlci5ibHgoZGF0YVRlbXBSZWdpc3RlciksIENhbGw6OkxpbmthYmxlTmVhcik7Cisg
ICAgfQorCiAgICAgQUxXQVlTX0lOTElORSBDYWxsIGNhbGwoUHRyVGFnKQogICAgIHsKICAgICAg
ICAgbW92ZUZpeGVkV2lkdGhFbmNvZGluZyhUcnVzdGVkSW1tMzIoMCksIGRhdGFUZW1wUmVnaXN0
ZXIpOwpAQCAtMjMyMiw2ICsyMzM2LDEyIEBAIHB1YmxpYzoKICAgICBBTFdBWVNfSU5MSU5FIENh
bGwgY2FsbChSZWdpc3RlcklEIHRhcmdldCwgUmVnaXN0ZXJJRCBjYWxsVGFnKSB7IHJldHVybiBV
TlVTRURfUEFSQU0oY2FsbFRhZyksIGNhbGwodGFyZ2V0LCBOb1B0clRhZyk7IH0KICAgICBBTFdB
WVNfSU5MSU5FIENhbGwgY2FsbChBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgY2FsbFRhZykg
eyByZXR1cm4gVU5VU0VEX1BBUkFNKGNhbGxUYWcpLCBjYWxsKGFkZHJlc3MsIE5vUHRyVGFnKTsg
fQogCisgICAgQUxXQVlTX0lOTElORSB2b2lkIGNhbGxPcGVyYXRpb24oY29uc3QgRnVuY3Rpb25Q
dHI8T3BlcmF0aW9uUHRyVGFnPiBvcGVyYXRpb24pCisgICAgeworICAgICAgICBtb3ZlKFRydXN0
ZWRJbW1QdHIob3BlcmF0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkpLCBhZGRyZXNzVGVtcFJlZ2lz
dGVyKTsKKyAgICAgICAgY2FsbChhZGRyZXNzVGVtcFJlZ2lzdGVyLCBPcGVyYXRpb25QdHJUYWcp
OworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCByZXQoKQogICAgIHsKICAgICAgICAg
bV9hc3NlbWJsZXIuYngobGlua1JlZ2lzdGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1ZhbHVlUmVwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1
ZVJlcC5oCmluZGV4IDE1N2JjODg2ODIzMS4uNzY5MzhjNmZlY2FiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1ZhbHVlUmVwLmgKQEAgLTEyNiw5ICsxMjYsMTMgQEAgcHVibGljOgogICAgIFZh
bHVlUmVwKFdhc206OlZhbHVlTG9jYXRpb24gbG9jYXRpb24pCiAgICAgewogICAgICAgICBzd2l0
Y2ggKGxvY2F0aW9uLmtpbmQoKSkgewotICAgICAgICBjYXNlIFdhc206OlZhbHVlTG9jYXRpb246
OktpbmQ6OlJlZ2lzdGVyOgorICAgICAgICBjYXNlIFdhc206OlZhbHVlTG9jYXRpb246OktpbmQ6
OkdQUlJlZ2lzdGVyOgogICAgICAgICAgICAgbV9raW5kID0gUmVnaXN0ZXI7Ci0gICAgICAgICAg
ICB1LnJlZyA9IGxvY2F0aW9uLnJlZygpOworICAgICAgICAgICAgdS5yZWcgPSBsb2NhdGlvbi5q
c3IoKS5wYXlsb2FkR1BSKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXYXNt
OjpWYWx1ZUxvY2F0aW9uOjpLaW5kOjpGUFJSZWdpc3RlcjoKKyAgICAgICAgICAgIG1fa2luZCA9
IFJlZ2lzdGVyOworICAgICAgICAgICAgdS5yZWcgPSBsb2NhdGlvbi5mcHIoKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdhc206OlZhbHVlTG9jYXRpb246OktpbmQ6OlN0YWNr
OgogICAgICAgICAgICAgbV9raW5kID0gU3RhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcAppbmRleCBkNTRjNzRmYzYzYzYuLjdiM2Y1
ZmM5ZmIyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVj
b2RlRHVtcGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNv
ZGVEdW1wZXIuY3BwCkBAIC00MTMsNyArNDEzLDcgQEAgQ1N0cmluZyBCeXRlY29kZUR1bXBlcjo6
Zm9ybWF0Q29uc3RhbnQoVHlwZSB0eXBlLCB1aW50NjRfdCBjb25zdGFudCkgY29uc3QKICAgICAg
ICAgaWYgKGlzRnVuY3JlZih0eXBlKSB8fCBpc0V4dGVybnJlZih0eXBlKSkgewogICAgICAgICAg
ICAgaWYgKEpTVmFsdWU6OmRlY29kZShjb25zdGFudCkgPT0ganNOdWxsKCkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuICJudWxsIjsKLSAgICAgICAgICAgIHJldHVybiB0b0NTdHJpbmcoUmF3UG9p
bnRlcihiaXR3aXNlX2Nhc3Q8dm9pZCo+KGNvbnN0YW50KSkpOworICAgICAgICAgICAgcmV0dXJu
IHRvQ1N0cmluZyhSYXdQb2ludGVyKGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWlu
dHB0cl90Pihjb25zdGFudCkpKSk7CiAgICAgICAgIH0KIAogICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0NhbGxGcmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0Nh
bGxGcmFtZS5oCmluZGV4IDhmNTNjMzNlNGIxYi4uMGU0MGRlZGY4MDA5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCkBAIC0xNjcsOCArMTY3LDgg
QEAgbmFtZXNwYWNlIEpTQyAgewogICAgICAgICAvLyB0byBzZWUgaWYgaXQncyBhIGNlbGwsIGFu
ZCBpZiBpdCdzIG5vdCwgd2UgdGhyb3cgYW4gZXhjZXB0aW9uLgogICAgICAgICBpbmxpbmUgSlNW
YWx1ZSBndWFyYW50ZWVkSlNWYWx1ZUNhbGxlZSgpIGNvbnN0OwogICAgICAgICBpbmxpbmUgSlNP
YmplY3QqIGpzQ2FsbGVlKCkgY29uc3Q7Ci0gICAgICAgIENhbGxlZUJpdHMgY2FsbGVlKCkgY29u
c3QgeyByZXR1cm4gQ2FsbGVlQml0cyh0aGlzW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xv
dDo6Y2FsbGVlKV0ucG9pbnRlcigpKTsgfQotICAgICAgICBTVVBQUkVTU19BU0FOIENhbGxlZUJp
dHMgdW5zYWZlQ2FsbGVlKCkgY29uc3QgeyByZXR1cm4gQ2FsbGVlQml0cyh0aGlzW3N0YXRpY19j
YXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0uYXNhblVuc2FmZVBvaW50ZXIoKSk7IH0K
KyAgICAgICAgQ2FsbGVlQml0cyBjYWxsZWUoKSBjb25zdCB7IHJldHVybiBDYWxsZWVCaXRzKHRo
aXNbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXS51bmJveGVkSW50NjQo
KSk7IH0KKyAgICAgICAgU1VQUFJFU1NfQVNBTiBDYWxsZWVCaXRzIHVuc2FmZUNhbGxlZSgpIGNv
bnN0IHsgcmV0dXJuIENhbGxlZUJpdHModGhpc1tzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNs
b3Q6OmNhbGxlZSldLmFzYW5VbnNhZmVVbmJveGVkSW50NjQoKSk7IH0KICAgICAgICAgQ29kZUJs
b2NrKiBjb2RlQmxvY2soKSBjb25zdDsKICAgICAgICAgQ29kZUJsb2NrKiogYWRkcmVzc09mQ29k
ZUJsb2NrKCkgY29uc3QgeyByZXR1cm4gYml0d2lzZV9jYXN0PENvZGVCbG9jayoqPih0aGlzICsg
c3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90Ojpjb2RlQmxvY2spKTsgfQogICAgICAgICBp
bmxpbmUgU1VQUFJFU1NfQVNBTiBDb2RlQmxvY2sqIHVuc2FmZUNvZGVCbG9jaygpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxlZUJpdHMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmgKaW5kZXgg
MThiYjdlZjdmYThjLi5kZWEzYWU1NTgxNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0NhbGxlZUJpdHMuaApAQCAtMzksMTEgKzM5LDIxIEBAIGNsYXNzIEpTQ2Vs
bDsKIGNsYXNzIENhbGxlZUJpdHMgewogcHVibGljOgogICAgIENhbGxlZUJpdHMoKSA9IGRlZmF1
bHQ7Ci0gICAgQ2FsbGVlQml0cyh2b2lkKiBwdHIpIDogbV9wdHIocHRyKSB7IH0gCisgICAgQ2Fs
bGVlQml0cyhpbnQ2NF90IHZhbHVlKQorI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIDogbV9w
dHIgeyByZWludGVycHJldF9jYXN0PHZvaWQqPih2YWx1ZSkgfQorI2VsaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICAgICAgOiBtX3B0ciB7IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KEpTVmFsdWU6
OmRlY29kZSh2YWx1ZSkucGF5bG9hZCgpKSB9CisgICAgICAgICwgbV90YWcgeyBKU1ZhbHVlOjpk
ZWNvZGUodmFsdWUpLnRhZygpIH0KKyNlbmRpZgorICAgIHsgfQogCiAgICAgQ2FsbGVlQml0cyYg
b3BlcmF0b3I9KEpTQ2VsbCogY2VsbCkKICAgICB7CiAgICAgICAgIG1fcHRyID0gY2VsbDsKKyNp
ZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBtX3RhZyA9IEpTVmFsdWU6OkNlbGxUYWc7Cisj
ZW5kaWYKICAgICAgICAgQVNTRVJUKGlzQ2VsbCgpKTsKICAgICAgICAgcmV0dXJuICp0aGlzOwog
ICAgIH0KQEAgLTUxLDE4ICs2MSwyNCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
KQogICAgIHN0YXRpYyB2b2lkKiBib3hXYXNtKFdhc206OkNhbGxlZSogY2FsbGVlKQogICAgIHsK
LSAgICAgICAgQ2FsbGVlQml0cyByZXN1bHQocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocmVpbnRl
cnByZXRfY2FzdDx1aW50cHRyX3Q+KGNhbGxlZSkgfCBKU1ZhbHVlOjpXYXNtVGFnKSk7CisjaWYg
VVNFKEpTVkFMVUU2NCkKKyAgICAgICAgQ2FsbGVlQml0cyByZXN1bHQgeyByZWludGVycHJldF9j
YXN0PGludDY0X3Q+KGNhbGxlZSkgfCBKU1ZhbHVlOjpXYXNtVGFnIH07CiAgICAgICAgIEFTU0VS
VChyZXN1bHQuaXNXYXNtKCkpOwogICAgICAgICByZXR1cm4gcmVzdWx0LnJhd1B0cigpOworI2Vs
aWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgcmV0dXJuIGNhbGxlZTsgLy8gVGhlIHBvaW50
ZXIgaXMgYXMgaXMsIGJ1dCB0aGUgY29ycmVzcG9uZGluZyB0YWcgZmllbGQgbmVlZHMgdG8gYmUg
c2V0IHRvIFdhc21UYWcgc2VwYXJhdGVseS4KKyNlbmRpZgogICAgIH0KICNlbmRpZgogCiAgICAg
Ym9vbCBpc1dhc20oKSBjb25zdAogICAgIHsKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAg
ICAgIHJldHVybiAocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG1fcHRyKSAmIEpTVmFsdWU6
Oldhc21NYXNrKSA9PSBKU1ZhbHVlOjpXYXNtVGFnOwotI2Vsc2UKKyNpZiAhRU5BQkxFKFdFQkFT
U0VNQkxZKQogICAgICAgICByZXR1cm4gZmFsc2U7CisjZWxpZiBVU0UoSlNWQUxVRTY0KQorICAg
ICAgICByZXR1cm4gKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtX3B0cikgJiBKU1ZhbHVl
OjpXYXNtTWFzaykgPT0gSlNWYWx1ZTo6V2FzbVRhZzsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQp
CisgICAgICAgIHJldHVybiBtX3RhZyA9PSBKU1ZhbHVlOjpXYXNtVGFnOwogI2VuZGlmCiAgICAg
fQogICAgIGJvb2wgaXNDZWxsKCkgY29uc3QgeyByZXR1cm4gIWlzV2FzbSgpOyB9CkBAIC03Nywx
NCArOTMsMjEgQEAgcHVibGljOgogICAgIFdhc206OkNhbGxlZSogYXNXYXNtQ2FsbGVlKCkgY29u
c3QKICAgICB7CiAgICAgICAgIEFTU0VSVChpc1dhc20oKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkK
ICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2FzbTo6Q2FsbGVlKj4ocmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KG1fcHRyKSAmIH5KU1ZhbHVlOjpXYXNtVGFnKTsKKyNlbGlmIFVT
RShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFdhc206OkNh
bGxlZSo+KG1fcHRyKTsKKyNlbmRpZgogICAgIH0KICNlbmRpZgogCiAgICAgdm9pZCogcmF3UHRy
KCkgY29uc3QgeyByZXR1cm4gbV9wdHI7IH0KLSAgICAKKwogcHJpdmF0ZToKICAgICB2b2lkKiBt
X3B0ciB7IG51bGxwdHIgfTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIHVpbnQzMl90IG1f
dGFnIHsgSlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZyB9OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9S
ZWdpc3Rlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmgK
aW5kZXggZDg3OWM5MGJlMzExLi40NjE4MTNjNDFkMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oCkBAIC03Miw2ICs3MiwxMCBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgaW50NjRfdCB1bmJveGVkSW50NjQoKSBjb25zdDsKICAgICAgICAgaW50
NjRfdCBhc2FuVW5zYWZlVW5ib3hlZEludDY0KCkgY29uc3Q7CiAgICAgICAgIGJvb2wgdW5ib3hl
ZEJvb2xlYW4oKSBjb25zdDsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVF
MzJfNjQpCisgICAgICAgIGZsb2F0IHVuYm94ZWRGbG9hdCgpIGNvbnN0OworICAgICAgICBmbG9h
dCBhc2FuVW5zYWZlVW5ib3hlZEZsb2F0KCkgY29uc3Q7CisjZW5kaWYKICAgICAgICAgZG91Ymxl
IHVuYm94ZWREb3VibGUoKSBjb25zdDsKICAgICAgICAgZG91YmxlIGFzYW5VbnNhZmVVbmJveGVk
RG91YmxlKCkgY29uc3Q7CiAgICAgICAgIEpTQ2VsbCogdW5ib3hlZENlbGwoKSBjb25zdDsKQEAg
LTE4OCw2ICsxOTIsMTggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiAhIXBheWxv
YWQoKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgQUxXQVlTX0lOTElORSBmbG9hdCBSZWdpc3Rlcjo6dW5ib3hlZEZsb2F0KCkgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8ZmxvYXQ+KHBheWxvYWQoKSk7
CisgICAgfQorCisgICAgU1VQUFJFU1NfQVNBTiBBTFdBWVNfSU5MSU5FIGZsb2F0IFJlZ2lzdGVy
Ojphc2FuVW5zYWZlVW5ib3hlZEZsb2F0KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBi
aXR3aXNlX2Nhc3Q8ZmxvYXQ+KHBheWxvYWQoKSk7CisgICAgfQorI2VuZGlmCisKICAgICBBTFdB
WVNfSU5MSU5FIGRvdWJsZSBSZWdpc3Rlcjo6dW5ib3hlZERvdWJsZSgpIGNvbnN0CiAgICAgewog
ICAgICAgICByZXR1cm4gdS5udW1iZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3Nl
bWJseUhlbHBlcnMuaAppbmRleCAxOTc2ZWQ4MGIzZTIuLmE0YjY0OGZhMGExMyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCkBAIC0xNDAzLDcgKzE0MDMs
MTAgQEAgcHVibGljOgogICAgICAgICBqaXRBc3NlcnRJc0pTRG91YmxlKGdwcik7CiAgICAgICAg
IHJldHVybiB1bmJveERvdWJsZVdpdGhvdXRBc3NlcnRpb25zKGdwciwgcmVzdWx0R1BSLCBmcHIs
IG1vZGUpOwogICAgIH0KLSAgICAKKyAgICB2b2lkIHVuYm94RG91YmxlKEpTVmFsdWVSZWdzIHJl
Z3MsIEZQUlJlZyBmcHIpCisgICAgeworICAgICAgICB1bmJveERvdWJsZShyZWdzLnRhZ0dQUigp
LCByZWdzLnBheWxvYWRHUFIoKSwgZnByKTsKKyAgICB9CiAgICAgdm9pZCBib3hEb3VibGUoRlBS
UmVnIGZwciwgSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlID0gSGF2ZVRh
Z1JlZ2lzdGVycykKICAgICB7CiAgICAgICAgIGJveERvdWJsZShmcHIsIHJlZ3MuZ3ByKCksIG1v
ZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGlu
ZUFzbUNvbmZpZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFz
bUNvbmZpZy5oCmluZGV4IDJhNjA3ZGY4YzhlOC4uYzllMGMyOTQ1ZDczIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCkBAIC0x
NDQsNiArMTQ0LDEyIEBACiAjZGVmaW5lIE9GRkxJTkVfQVNNX0pTVkFMVUU2NCAwCiAjZW5kaWYK
IAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisjZGVmaW5lIE9GRkxJTkVfQVNNX0pTVkFMVUUzMl82
NCAxCisjZWxzZQorI2RlZmluZSBPRkZMSU5FX0FTTV9KU1ZBTFVFMzJfNjQgMAorI2VuZGlmCisK
ICNpZiBVU0UoQklHSU5UMzIpCiAjZGVmaW5lIE9GRkxJTkVfQVNNX0JJR0lOVDMyIDEKICNlbHNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjMyXzY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyMzJfNjQuYXNtCmluZGV4IGFkMjUwMTdlZjBiNC4uNzA0MDFlNDViZTZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0
LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
cjMyXzY0LmFzbQpAQCAtMzgsMTggKzM4LDM0IEBAIG1hY3JvIGdldHVPcGVyYW5kV2lkZTE2SlMo
b3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkKICAgICBsb2FkaCBjb25zdGV4cHIgJW9wY29k
ZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiAyICsgT3Bjb2RlSURXaWRlMTZTaXplSlNbUEIs
IFBDLCAxXSwgZHN0CiBlbmQKIAorbWFjcm8gZ2V0dU9wZXJhbmRXaWRlMTZXYXNtKG9wY29kZVN0
cnVjdCwgZmllbGROYW1lLCBkc3QpCisgICAgbG9hZGggY29uc3RleHByICVvcGNvZGVTdHJ1Y3Ql
XyVmaWVsZE5hbWUlX2luZGV4ICogMiArIE9wY29kZUlEV2lkZTE2U2l6ZVdhc21bUEIsIFBDLCAx
XSwgZHN0CitlbmQKKwogbWFjcm8gZ2V0T3BlcmFuZFdpZGUxNkpTKG9wY29kZVN0cnVjdCwgZmll
bGROYW1lLCBkc3QpCiAgICAgbG9hZGhzaSBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxk
TmFtZSVfaW5kZXggKiAyICsgT3Bjb2RlSURXaWRlMTZTaXplSlNbUEIsIFBDLCAxXSwgZHN0CiBl
bmQKIAorbWFjcm8gZ2V0T3BlcmFuZFdpZGUxNldhc20ob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUs
IGRzdCkKKyAgICBsb2FkaHNpIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9p
bmRleCAqIDIgKyBPcGNvZGVJRFdpZGUxNlNpemVXYXNtW1BCLCBQQywgMV0sIGRzdAorZW5kCisK
IG1hY3JvIGdldHVPcGVyYW5kV2lkZTMySlMob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkK
ICAgICBsb2FkaSBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiA0
ICsgT3Bjb2RlSURXaWRlMzJTaXplSlNbUEIsIFBDLCAxXSwgZHN0CiBlbmQKIAorbWFjcm8gZ2V0
dU9wZXJhbmRXaWRlMzJXYXNtKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCisgICAgbG9h
ZGkgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogNCArIE9wY29k
ZUlEV2lkZTMyU2l6ZVdhc21bUEIsIFBDLCAxXSwgZHN0CitlbmQKKwogbWFjcm8gZ2V0T3BlcmFu
ZFdpZGUzMkpTKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCiAgICAgbG9hZGlzIGNvbnN0
ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRleCAqIDQgKyBPcGNvZGVJRFdpZGUz
MlNpemVKU1tQQiwgUEMsIDFdLCBkc3QKIGVuZAogCittYWNybyBnZXRPcGVyYW5kV2lkZTMyV2Fz
bShvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQorICAgIGxvYWRpcyBjb25zdGV4cHIgJW9w
Y29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiA0ICsgT3Bjb2RlSURXaWRlMzJTaXplV2Fz
bVtQQiwgUEMsIDFdLCBkc3QKK2VuZAorCiBtYWNybyBtYWtlUmV0dXJuKGdldCwgZGlzcGF0Y2gs
IGZuKQogICAgIGZuKG1hY3JvKHRhZywgcGF5bG9hZCkKICAgICAgICAgbW92ZSB0YWcsIHQ1CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHkuYXNtIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5LmFzbQppbmRleCAyMmViZTJh
N2ViM2QuLjEyNWYwY2I3MDk4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L1dlYkFzc2VtYmx5LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2Vi
QXNzZW1ibHkuYXNtCkBAIC0zMSw1NiArMzEsODAgQEAgaWYgSEFWRV9GQVNUX1RMUwogZW5kCiAK
IGlmIFg4Nl82NAotICAgIGNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyA9IDYKKyAgICBj
b25zdCBOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgPSA2CiBlbHNpZiBBUk02NCBvciBBUk02NEUg
b3IgUklTQ1Y2NAotICAgIGNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyA9IDgKKyAgICBj
b25zdCBOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgPSA4CitlbHNpZiBBUk12NworICAgIGNvbnN0
IE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyA9IDIKIGVsc2UKICAgICBlcnJvcgogZW5kCisKIGNv
bnN0IE51bWJlck9mV2FzbUFyZ3VtZW50RlBScyA9IDgKLWNvbnN0IE51bWJlck9mV2FzbUFyZ3Vt
ZW50cyA9IE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIE51bWJlck9mV2FzbUFyZ3VtZW50RlBS
cworCitjb25zdCBOdW1iZXJPZldhc21Bcmd1bWVudHMgPSBOdW1iZXJPZldhc21Bcmd1bWVudEpT
UnMgKyBOdW1iZXJPZldhc21Bcmd1bWVudEZQUnMKIAogIyBBbGwgY2FsbGVlIHNhdmVzIG11c3Qg
bWF0Y2ggdGhlIGRlZmluaXRpb24gaW4gV2FzbUNhbGxlZS5jcHAKIAogIyBUaGVzZSBtdXN0IG1h
dGNoIHRoZSBkZWZpbml0aW9uIGluIFdhc21NZW1vcnlJbmZvcm1hdGlvbi5jcHAKLWNvbnN0IHdh
c21JbnN0YW5jZSA9IGNzcjAKLWNvbnN0IG1lbW9yeUJhc2UgPSBjc3IzCi1jb25zdCBib3VuZHND
aGVja2luZ1NpemUgPSBjc3I0CitpZiBYODZfNjQgb3IgQVJNNjQgb3IgQVJNNjRFCisgICAgY29u
c3Qgd2FzbUluc3RhbmNlID0gY3NyMAorICAgIGNvbnN0IG1lbW9yeUJhc2UgPSBjc3IzCisgICAg
Y29uc3QgYm91bmRzQ2hlY2tpbmdTaXplID0gY3NyNAorZWxzaWYgQVJNdjcKKyAgICBjb25zdCB3
YXNtSW5zdGFuY2UgPSBjc3IwCisgICAgY29uc3QgbWVtb3J5QmFzZSA9IGludmFsaWRHUFIKKyAg
ICBjb25zdCBib3VuZHNDaGVja2luZ1NpemUgPSBpbnZhbGlkR1BSCitlbHNlCisgICAgZXJyb3IK
K2VuZAogCiAjIFRoaXMgbXVzdCBtYXRjaCB0aGUgZGVmaW5pdGlvbiBpbiBMb3dMZXZlbEludGVy
cHJldGVyLmFzbQogaWYgWDg2XzY0CiAgICAgY29uc3QgUEIgPSBjc3IyCiBlbHNpZiBBUk02NCBv
ciBBUk02NEUgb3IgUklTQ1Y2NAogICAgIGNvbnN0IFBCID0gY3NyNworZWxzaWYgQVJNdjcKKyAg
ICBjb25zdCBQQiA9IGNzcjEKIGVsc2UKICAgICBlcnJvcgogZW5kCiAKLW1hY3JvIGZvckVhY2hB
cmd1bWVudEdQUihmbikKLSAgICBmbigwICogOCwgd2EwKQotICAgIGZuKDEgKiA4LCB3YTEpCi0g
ICAgZm4oMiAqIDgsIHdhMikKLSAgICBmbigzICogOCwgd2EzKQotICAgIGZuKDQgKiA4LCB3YTQp
Ci0gICAgZm4oNSAqIDgsIHdhNSkKLSAgICBpZiBBUk02NCBvciBBUk02NEUKLSAgICAgICAgZm4o
NiAqIDgsIHdhNikKLSAgICAgICAgZm4oNyAqIDgsIHdhNykKKyMgSGVscGVyIG1hY3JvcworCisj
IE9uIEpTVkFMVUU2NCwgZWFjaCA2NC1iaXQgYXJndW1lbnQgR1BSIGhvbGRzIG9uZSB3aG9sZSBX
YXNtIHZhbHVlLgorIyBPbiBKU1ZBTFVFMzJfNjQsIGEgY29uc2VjdXRpdmUgcGFpciBvZiBldmVu
L29kZCBudW1iZXJlZCBHUFJzIGhvbGQgYSBzaW5nbGUKKyMgV2FzbSB2YWx1ZSAoZXZlbiBpZiB0
aGF0IHZhbHVlIGlzIGkzMi9mMzIsIHRoZSBvZGQgbnVtYmVyZWQgR1BSIGhvbGRzIHRoZQorIyBt
b3JlIHNpZ25pZmljYW50IHdvcmQpLgorbWFjcm8gZm9yRWFjaEFyZ3VtZW50SlNSKGZuKQorICAg
IGlmIEpTVkFMVUU2NAorICAgICAgICBmbigwICogOCwgd2EwKQorICAgICAgICBmbigxICogOCwg
d2ExKQorICAgICAgICBmbigyICogOCwgd2EyKQorICAgICAgICBmbigzICogOCwgd2EzKQorICAg
ICAgICBmbig0ICogOCwgd2E0KQorICAgICAgICBmbig1ICogOCwgd2E1KQorICAgICAgICBpZiBB
Uk02NCBvciBBUk02NEUKKyAgICAgICAgICAgIGZuKDYgKiA4LCB3YTYpCisgICAgICAgICAgICBm
big3ICogOCwgd2E3KQorICAgICAgICBlbmQKKyAgICBlbHNlCisgICAgICAgIGZuKDAgKiA4LCB3
YTEsIHdhMCkKKyAgICAgICAgZm4oMSAqIDgsIHdhMywgd2EyKQogICAgIGVuZAogZW5kCiAKIG1h
Y3JvIGZvckVhY2hBcmd1bWVudEZQUihmbikKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRH
UFJzICsgMCkgKiA4LCB3ZmEwKQotICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyAx
KSAqIDgsIHdmYTEpCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDIpICogOCwg
d2ZhMikKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsgMykgKiA4LCB3ZmEzKQot
ICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyA0KSAqIDgsIHdmYTQpCi0gICAgZm4o
KE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDUpICogOCwgd2ZhNSkKLSAgICBmbigoTnVtYmVy
T2ZXYXNtQXJndW1lbnRHUFJzICsgNikgKiA4LCB3ZmE2KQotICAgIGZuKChOdW1iZXJPZldhc21B
cmd1bWVudEdQUnMgKyA3KSAqIDgsIHdmYTcpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50
SlNScyArIDApICogOCwgd2ZhMCkKKyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsg
MSkgKiA4LCB3ZmExKQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyAyKSAqIDgs
IHdmYTIpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIDMpICogOCwgd2ZhMykK
KyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgNCkgKiA4LCB3ZmE0KQorICAgIGZu
KChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyA1KSAqIDgsIHdmYTUpCisgICAgZm4oKE51bWJl
ck9mV2FzbUFyZ3VtZW50SlNScyArIDYpICogOCwgd2ZhNikKKyAgICBmbigoTnVtYmVyT2ZXYXNt
QXJndW1lbnRKU1JzICsgNykgKiA4LCB3ZmE3KQogZW5kCiAKLSMgSGVscGVyIG1hY3JvcwogIyBG
SVhNRTogRXZlbnR1YWxseSB0aGlzIHNob3VsZCBiZSB1bmlmaWVkIHdpdGggdGhlIEpTIHZlcnNp
b25zCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2NTYKIApA
QCAtMTMwLDEwICsxNTQsMTUgQEAgbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvclByb2xvZ3VlKGNv
ZGVCbG9ja1JlZ2lzdGVyKQogICAgICAgICAgICAgYnRweiByMCwgLnJlY292ZXIKICAgICAgICAg
ICAgIG1vdmUgcjAsIHdzMAogCi0gICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRHUFIobWFjcm8g
KG9mZnNldCwgZ3ByKQoraWYgSlNWQUxVRTY0CisgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRK
U1IobWFjcm8gKG9mZnNldCwgZ3ByKQogICAgICAgICAgICAgICAgIGxvYWRxIC1vZmZzZXQgLSA4
IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBncHIKICAgICAg
ICAgICAgIGVuZCkKLQorZWxzZQorICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3Jv
IChvZmZzZXQsIGdwck1zdywgZ3BMc3cpCisgICAgICAgICAgICAgICAgbG9hZDJpYSAtb2Zmc2V0
IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXSwgZ3BMc3cs
IGdwck1zdworICAgICAgICAgICAgZW5kKQorZW5kCiAgICAgICAgICAgICBmb3JFYWNoQXJndW1l
bnRGUFIobWFjcm8gKG9mZnNldCwgZnByKQogICAgICAgICAgICAgICAgIGxvYWRkIC1vZmZzZXQg
LSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBmcHIKICAg
ICAgICAgICAgIGVuZCkKQEAgLTIwMSw2ICsyMzAsOSBAQCBtYWNybyBwcmVzZXJ2ZUNhbGxlZVNh
dmVzVXNlZEJ5V2FzbSgpCiAgICAgZWxzaWYgWDg2XzY0IG9yIFJJU0NWNjQKICAgICAgICAgc3Rv
cmVwIFBCLCAtMHg4W2Nmcl0KICAgICAgICAgc3RvcmVwIHdhc21JbnN0YW5jZSwgLTB4MTBbY2Zy
XQorICAgIGVsc2lmIEFSTXY3CisgICAgICAgIHN0b3JlcCBQQiwgLTRbY2ZyXQorICAgICAgICBz
dG9yZXAgd2FzbUluc3RhbmNlLCAtOFtjZnJdCiAgICAgZWxzZQogICAgICAgICBlcnJvcgogICAg
IGVuZApAQCAtMjE1LDYgKzI0Nyw5IEBAIG1hY3JvIHJlc3RvcmVDYWxsZWVTYXZlc1VzZWRCeVdh
c20oKQogICAgIGVsc2lmIFg4Nl82NCBvciBSSVNDVjY0CiAgICAgICAgIGxvYWRwIC0weDhbY2Zy
XSwgUEIKICAgICAgICAgbG9hZHAgLTB4MTBbY2ZyXSwgd2FzbUluc3RhbmNlCisgICAgZWxzaWYg
QVJNdjcKKyAgICAgICAgbG9hZHAgLTRbY2ZyXSwgUEIKKyAgICAgICAgbG9hZHAgLThbY2ZyXSwg
d2FzbUluc3RhbmNlCiAgICAgZWxzZQogICAgICAgICBlcnJvcgogICAgIGVuZApAQCAtMjQ1LDEw
ICsyODAsMTIgQEAgZW5kCiBlbmQKIAogbWFjcm8gcmVsb2FkTWVtb3J5UmVnaXN0ZXJzRnJvbUlu
c3RhbmNlKGluc3RhbmNlLCBzY3JhdGNoMSwgc2NyYXRjaDIpCitpZiBub3QgQVJNdjcKICAgICBs
b2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRNZW1vcnlbaW5zdGFuY2VdLCBtZW1vcnlCYXNl
CiAgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplW2lu
c3RhbmNlXSwgYm91bmRzQ2hlY2tpbmdTaXplCiAgICAgY2FnZWRQcmltaXRpdmVNYXlCZU51bGwo
bWVtb3J5QmFzZSwgYm91bmRzQ2hlY2tpbmdTaXplLCBzY3JhdGNoMSwgc2NyYXRjaDIpICMgSWYg
Ym91bmRzQ2hlY2tpbmdTaXplIGlzIDAsIHBvaW50ZXIgY2FuIGJlIGEgbnVsbHB0ci4KIGVuZAor
ZW5kCiAKIG1hY3JvIHRocm93RXhjZXB0aW9uKGV4Y2VwdGlvbikKICAgICBzdG9yZWkgY29uc3Rl
eHByIFdhc206OkV4Y2VwdGlvblR5cGU6OiVleGNlcHRpb24lLCBBcmd1bWVudENvdW50SW5jbHVk
aW5nVGhpcyArIFBheWxvYWRPZmZzZXRbY2ZyXQpAQCAtMjgwLDggKzMxNywxMyBAQCBtYWNybyBy
ZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxsKCkKICAgICBsb2FkaSBXYXNtOjpMTEludENhbGxl
ZTo6bV9udW1DYWxsZWVMb2NhbHNbd3MxXSwgd3MxCiAgICAgbHNoaWZ0cCAzLCB3czEKICAgICBh
ZGRwIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLCB3czEKK2lmIEFSTXY3CisgICAgc3Vi
cCBjZnIsIHdzMSwgd3MxCisgICAgbW92ZSB3czEsIHNwCitlbHNlCiAgICAgc3VicCBjZnIsIHdz
MSwgc3AKIGVuZAorZW5kCiAKIG1hY3JvIHdhc21Qcm9sb2d1ZShsb2FkV2FzbUluc3RhbmNlKQog
ICAgICMgU2V0IHVwIHRoZSBjYWxsIGZyYW1lIGFuZCBjaGVjayBpZiB3ZSBzaG91bGQgT1NSLgpA
QCAtMjkyLDYgKzMzNCw5IEBAIG1hY3JvIHdhc21Qcm9sb2d1ZShsb2FkV2FzbUluc3RhbmNlKQog
CiAgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fb3duZXJbd2FzbUluc3RhbmNlXSwgd3MwCiAg
ICAgc3RvcmVwIHdzMCwgVGhpc0FyZ3VtZW50T2Zmc2V0W2Nmcl0KK2lmIG5vdCBKU1ZBTFVFNjQK
KyAgICBzdG9yZWkgQ2VsbFRhZywgVGFnT2Zmc2V0ICsgVGhpc0FyZ3VtZW50T2Zmc2V0W2Nmcl0K
K2VuZAogCiAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHdzMAogICAgIGFuZHAgfjMsIHdzMApAQCAt
MzAzLDYgKzM0OCwxMCBAQCBtYWNybyB3YXNtUHJvbG9ndWUobG9hZFdhc21JbnN0YW5jZSkKICAg
ICBhZGRwIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLCB3czEKICAgICBzdWJwIGNmciwg
d3MxLCB3czEKIAoraWYgbm90IEpTVkFMVUU2NAorICAgIHN1YnAgOCwgd3MxICMgYWxpZ24gc3Rh
Y2sgcG9pbnRlcgorZW5kCisKICAgICBicGEgd3MxLCBjZnIsIC5zdGFja092ZXJmbG93CiAgICAg
YnBiZXEgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkU3RhY2tMaW1pdFt3YXNtSW5zdGFuY2VdLCB3
czEsIC5zdGFja0hlaWdodE9LCiAKQEAgLTMxMiwxMCArMzYxLDE1IEBAIG1hY3JvIHdhc21Qcm9s
b2d1ZShsb2FkV2FzbUluc3RhbmNlKQogLnN0YWNrSGVpZ2h0T0s6CiAgICAgbW92ZSB3czEsIHNw
CiAKLSAgICBmb3JFYWNoQXJndW1lbnRHUFIobWFjcm8gKG9mZnNldCwgZ3ByKQoraWYgSlNWQUxV
RTY0CisgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwcikKICAgICAgICAg
c3RvcmVxIGdwciwgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3Rl
cnMgKiA4W2Nmcl0KICAgICBlbmQpCi0KK2Vsc2UKKyAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFj
cm8gKG9mZnNldCwgZ3ByTXN3LCBncExzdykKKyAgICAgICAgc3RvcmUyaWEgZ3BMc3csIGdwck1z
dywgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nm
cl0KKyAgICBlbmQpCitlbmQKICAgICBmb3JFYWNoQXJndW1lbnRGUFIobWFjcm8gKG9mZnNldCwg
ZnByKQogICAgICAgICBzdG9yZWQgZnByLCAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFz
VmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXQogICAgIGVuZCkKQEAgLTMyOSwxNCArMzgzLDE2IEBA
IG1hY3JvIHdhc21Qcm9sb2d1ZShsb2FkV2FzbUluc3RhbmNlKQogICAgIGxvYWRpIFdhc206OkxM
SW50Q2FsbGVlOjptX251bVZhcnNbd3MwXSwgd3MxCiAgICAgc3ViaSBOdW1iZXJPZldhc21Bcmd1
bWVudHMgKyBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMsIHdzMQogICAgIGJ0aXog
d3MxLCAuemVyb0luaXRpYWxpemVMb2NhbHNEb25lCisgICAgbHNoaWZ0aSAzLCB3czEKICAgICBu
ZWdpIHdzMQoraWYgSlNWQUxVRTY0CiAgICAgc3hpMnEgd3MxLCB3czEKK2VuZAogICAgIGxlYXAg
KE51bWJlck9mV2FzbUFyZ3VtZW50cyArIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVy
cyArIDEpICogLThbY2ZyXSwgd3MwCiAuemVyb0luaXRpYWxpemVMb2NhbHNMb29wOgotICAgIGFk
ZHEgMSwgd3MxCi0gICAgc3RvcmVxIDAsIFt3czAsIHdzMSwgOF0KLSAgICBidHF6IHdzMSwgLnpl
cm9Jbml0aWFsaXplTG9jYWxzRG9uZQotICAgIGptcCAuemVyb0luaXRpYWxpemVMb2NhbHNMb29w
CisgICAgYWRkcCBQdHJTaXplLCB3czEKKyAgICBzdG9yZXAgMCwgW3dzMCwgd3MxXQorICAgIGJ0
cG56IHdzMSwgLnplcm9Jbml0aWFsaXplTG9jYWxzTG9vcAogLnplcm9Jbml0aWFsaXplTG9jYWxz
RG9uZToKIGVuZAogCkBAIC0zNzUsNiArNDMxLDI0IEBAIG1hY3JvIHNsb3dXYXNtT3Aob3Bjb2Rl
TmFtZSkKICAgICB1bnByZWZpeGVkU2xvd1dhc21PcCh3YXNtXyVvcGNvZGVOYW1lJSkKIGVuZAog
CisjIEZsb2F0IHRvIGZsb2F0IHJvdW5kaW5nIG9wcworbWFjcm8gd2FzbVJvdW5kaW5nT3Aob3Bj
b2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBmbikKK2lmIEpTVkFMVUU2NCAjIEFsbCBjdXJyZW50IDY0
LWJpdCBwbGF0Zm9ybXMgaGF2ZSBpbnN0cnVjdGlvbnMgZm9yIHRoZXNlCisgICAgd2FzbU9wKG9w
Y29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCitlbHNlCisgICAgc2xvd1dhc21PcChvcGNvZGVO
YW1lKQorZW5kCitlbmQKKworIyBpNjQgKHNpZ25lZC91bnNpZ25lZCkgdG8gZjMyIG9yIGY2NAor
bWFjcm8gd2FzbUk2NFRvRk9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCitpZiBKU1ZB
TFVFNjQgIyBBbGwgY3VycmVudCA2NC1iaXQgcGxhdGZvcm1zIGhhdmUgaW5zdHJ1Y3Rpb25zIGZv
ciB0aGVzZQorICAgIHdhc21PcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGZuKQorZWxzZQor
ICAgIHNsb3dXYXNtT3Aob3Bjb2RlTmFtZSkKK2VuZAorZW5kCisKICMgTWFjcm8gdmVyc2lvbiBv
ZiBsb2FkIG9wZXJhdGlvbnM6IG1sb2FkW3N1ZmZpeF0KICMgbG9hZHMgZmllbGQgZnJvbSB0aGUg
aW5zdHJ1Y3Rpb24gc3RyZWFtIGFuZCBwZXJmb3JtcyBsb2FkW3N1ZmZpeF0gdG8gZHN0CiBtYWNy
byBmaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleChjdHgsIGZuKQpAQCAtMzk3LDEyICs0NzEsMjEg
QEAgbWFjcm8gbG9hZENvbnN0YW50T3JWYXJpYWJsZShjdHgsIGluZGV4LCBsb2FkZXIpCiAgICAg
ZW5kKQogZW5kCiAKK2lmIEpTVkFMVUU2NAogbWFjcm8gbWxvYWRxKGN0eCwgZmllbGQsIGRzdCkK
ICAgICB3Z2V0cyhjdHgsIGZpZWxkLCBkc3QpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShj
dHgsIGRzdCwgbWFjcm8gKGZyb20pCiAgICAgICAgIGxvYWRxIGZyb20sIGRzdAogICAgIGVuZCkK
IGVuZAorZWxzZQorbWFjcm8gbWxvYWQyaShjdHgsIGZpZWxkLCBkc3RNc3csIGRzdExzdykKKyAg
ICB3Z2V0cyhjdHgsIGZpZWxkLCBkc3RMc3cpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShj
dHgsIGRzdExzdywgbWFjcm8gKGZyb20pCisgICAgICAgIGxvYWQyaWEgZnJvbSwgZHN0THN3LCBk
c3RNc3cKKyAgICBlbmQpCitlbmQKK2VuZAogCiBtYWNybyBtbG9hZGkoY3R4LCBmaWVsZCwgZHN0
KQogICAgIHdnZXRzKGN0eCwgZmllbGQsIGRzdCkKQEAgLTQzNCwxMSArNTE3LDE5IEBAIGVuZAog
CiAjIFR5cGVkIHJldHVybnMKIAoraWYgSlNWQUxVRTY0CiBtYWNybyByZXR1cm5xKGN0eCwgdmFs
dWUpCiAgICAgd2dldHMoY3R4LCBtX2RzdCwgdDUpCiAgICAgc3RvcmVxIHZhbHVlLCBbY2ZyLCB0
NSwgOF0KICAgICBkaXNwYXRjaChjdHgpCiBlbmQKK2Vsc2UKK21hY3JvIHJldHVybjJpKGN0eCwg
bXN3LCBsc3cpCisgICAgd2dldHMoY3R4LCBtX2RzdCwgdDUpCisgICAgc3RvcmUyaWEgbHN3LCBt
c3csIFtjZnIsIHQ1LCA4XQorICAgIGRpc3BhdGNoKGN0eCkKK2VuZAorZW5kCiAKIG1hY3JvIHJl
dHVybmkoY3R4LCB2YWx1ZSkKICAgICB3Z2V0cyhjdHgsIG1fZHN0LCB0NSkKQEAgLTUxMSw3ICs2
MDIsNyBAQCBtYWNybyB3YXNtQ29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVyKQogZW5kCiAK
IG9wKHdhc21fZnVuY3Rpb25fcHJvbG9ndWUsIG1hY3JvICgpCi0gICAgaWYgbm90IFdFQkFTU0VN
QkxZIG9yIG5vdCBKU1ZBTFVFNjQgb3IgQ19MT09QIG9yIENfTE9PUF9XSU4KKyAgICBpZiBub3Qg
V0VCQVNTRU1CTFkgb3IgQ19MT09QIG9yIENfTE9PUF9XSU4KICAgICAgICAgZXJyb3IKICAgICBl
bmQKIApAQCAtNTIwLDcgKzYxMSw3IEBAIG9wKHdhc21fZnVuY3Rpb25fcHJvbG9ndWUsIG1hY3Jv
ICgpCiBlbmQpCiAKIG9wKHdhc21fZnVuY3Rpb25fcHJvbG9ndWVfbm9fdGxzLCBtYWNybyAoKQot
ICAgIGlmIG5vdCBXRUJBU1NFTUJMWSBvciBub3QgSlNWQUxVRTY0IG9yIENfTE9PUCBvciBDX0xP
T1BfV0lOCisgICAgaWYgbm90IFdFQkFTU0VNQkxZIG9yIENfTE9PUCBvciBDX0xPT1BfV0lOCiAg
ICAgICAgIGVycm9yCiAgICAgZW5kCiAKQEAgLTYyMywxNiArNzE0LDIzIEBAIF93YXNtX2VudGVy
OgogICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQyLCAweGRlYWQwMGUxKQogICAgIGxv
YWRwIENvZGVCbG9ja1tjZnJdLCB0MiAgICAgICAgICAgICAgICAvLyB0MjxDb2RlQmxvY2s+ID0g
Y2ZyLkNvZGVCbG9jawogICAgIGxvYWRpIFdhc206OkxMSW50Q2FsbGVlOjptX251bVZhcnNbdDJd
LCB0MiAgICAgIC8vIHQyPHNpemVfdD4gPSB0MjxDb2RlQmxvY2s+Lm1fbnVtVmFycwotICAgIHN1
YnEgQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICsgTnVtYmVyT2ZXYXNtQXJndW1l
bnRzLCB0MgorICAgIHN1YmkgQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICsgTnVt
YmVyT2ZXYXNtQXJndW1lbnRzLCB0MgogICAgIGJ0aXogdDIsIC5vcEVudGVyRG9uZQotICAgIG1v
dmUgY2ZyLCB0MQotICAgIHN1YnEgQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICog
OCArIE51bWJlck9mV2FzbUFyZ3VtZW50cyAqIDgsIHQxCisgICAgc3VicCBjZnIsIChDYWxsZWVT
YXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKyBOdW1iZXJPZldhc21Bcmd1bWVudHMpICogU2xv
dFNpemUsIHQxCisgICAgbHNoaWZ0aSAzLCB0MgogICAgIG5lZ2kgdDIKK2lmIEpTVkFMVUU2NAog
ICAgIHN4aTJxIHQyLCB0MgorZW5kCisgICAgbW92ZSAwLCB0NgogLm9wRW50ZXJMb29wOgotICAg
IHN0b3JlcSAwLCBbdDEsIHQyLCA4XQotICAgIGFkZHEgMSwgdDIKLSAgICBidHFueiB0MiwgLm9w
RW50ZXJMb29wCitpZiBKU1ZBTFVFNjQKKyAgICBzdG9yZXEgdDYsIFt0MSwgdDJdCitlbHNlCisg
ICAgc3RvcmUyaWEgdDYsIHQ2LCBbdDEsIHQyXQorZW5kCisgICAgYWRkcCA4LCB0MgorICAgIGJ0
cG56IHQyLCAub3BFbnRlckxvb3AKIC5vcEVudGVyRG9uZToKICAgICB3YXNtRGlzcGF0Y2hJbmRp
cmVjdCgxKQogCkBAIC02NDUsMTEgKzc0Myw2IEBAIHdhc21PcChsb29wX2hpbnQsIFdhc21Mb29w
SGludCwgbWFjcm8oY3R4KQogICAgIGRpc3BhdGNoKGN0eCkKIGVuZCkKIAotd2FzbU9wKG1vdiwg
V2FzbU1vdiwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fc3JjLCB0MCkKLSAgICByZXR1
cm5xKGN0eCwgdDApCi1lbmQpCi0KIHdhc21PcChqdHJ1ZSwgV2FzbUp0cnVlLCBtYWNybyhjdHgp
CiAgICAgbWxvYWRpKGN0eCwgbV9jb25kaXRpb24sIHQwKQogICAgIGJ0aXogdDAsIC5jb250aW51
ZQpAQCAtNzAxLDkgKzc5NCwxNSBAQCBlbmQpCiAKIHVucHJlZml4ZWRXYXNtT3Aod2FzbV9yZXQs
IFdhc21SZXQsIG1hY3JvKGN0eCkKICAgICBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQot
ICAgIGZvckVhY2hBcmd1bWVudEdQUihtYWNybyAob2Zmc2V0LCBncHIpCitpZiBKU1ZBTFVFNjQK
KyAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByKQogICAgICAgICBsb2Fk
cSAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2Zy
XSwgZ3ByCiAgICAgZW5kKQorZWxzZQorICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zm
c2V0LCBncHJNc3csIGdwTHN3KQorICAgICAgICBsb2FkMmlhIC1vZmZzZXQgLSA4IC0gQ2FsbGVl
U2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBncExzdywgZ3ByTXN3CisgICAg
ZW5kKQorZW5kCiAgICAgZm9yRWFjaEFyZ3VtZW50RlBSKG1hY3JvIChvZmZzZXQsIGZwcikKICAg
ICAgICAgbG9hZGQgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3Rl
cnMgKiA4W2Nmcl0sIGZwcgogICAgIGVuZCkKQEAgLTcyMSw0NCArODIwLDYgQEAgd2FzbU9wKHJl
dF92b2lkLCBXYXNtUmV0Vm9pZCwgbWFjcm8oY3R4KQogICAgIGRvUmV0dXJuKCkKIGVuZCkKIAot
d2FzbU9wKHJlZl9pc19udWxsLCBXYXNtUmVmSXNOdWxsLCBtYWNybyhjdHgpCi0gICAgbWxvYWRw
KGN0eCwgbV9yZWYsIHQwKQotICAgIGNxZXEgdDAsIFZhbHVlTnVsbCwgdDAKLSAgICByZXR1cm5p
KGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChnZXRfZ2xvYmFsLCBXYXNtR2V0R2xvYmFsLCBtYWNy
byhjdHgpCi0gICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2Vd
LCB0MAotICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCi0gICAgbG9hZHEgW3QwLCB0
MSwgOF0sIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3Aoc2V0X2dsb2Jh
bCwgV2FzbVNldEdsb2JhbCwgbWFjcm8oY3R4KQotICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjpt
X2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKLSAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgs
IHQxKQotICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQotICAgIHN0b3JlcSB0MiwgW3QwLCB0
MSwgOF0KLSAgICBkaXNwYXRjaChjdHgpCi1lbmQpCi0KLXdhc21PcChnZXRfZ2xvYmFsX3BvcnRh
YmxlX2JpbmRpbmcsIFdhc21HZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkKLSAg
ICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCi0gICAg
d2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKLSAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAK
LSAgICBsb2FkcSBbdDBdLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9w
KHNldF9nbG9iYWxfcG9ydGFibGVfYmluZGluZywgV2FzbVNldEdsb2JhbFBvcnRhYmxlQmluZGlu
ZywgbWFjcm8oY3R4KQotICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUlu
c3RhbmNlXSwgdDAKLSAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQotICAgIG1sb2Fk
cShjdHgsIG1fdmFsdWUsIHQyKQotICAgIGxvYWRxIFt0MCwgdDEsIDhdLCB0MAotICAgIHN0b3Jl
cSB0MiwgW3QwXQotICAgIGRpc3BhdGNoKGN0eCkKLWVuZCkKLQogbWFjcm8gc2xvd1BhdGhGb3JX
YXNtQ2FsbChjdHgsIHNsb3dQYXRoLCBzdG9yZVdhc21JbnN0YW5jZSkKICAgICBjYWxsV2FzbUNh
bGxTbG93UGF0aCgKICAgICAgICAgc2xvd1BhdGgsCkBAIC03NzMsNyArODM0LDEyIEBAIG1hY3Jv
IHNsb3dQYXRoRm9yV2FzbUNhbGwoY3R4LCBzbG93UGF0aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAK
ICAgICAgICAgICAgIHdnZXR1KGN0eCwgbV9zdGFja09mZnNldCwgd3MxKQogICAgICAgICAgICAg
bHNoaWZ0aSAzLCB3czEKK2lmIEFSTXY3CisgICAgICAgICAgICBzdWJwIGNmciwgd3MxLCB3czEK
KyAgICAgICAgICAgIG1vdmUgd3MxLCBzcAorZWxzZQogICAgICAgICAgICAgc3VicCBjZnIsIHdz
MSwgc3AKK2VuZAogCiAgICAgICAgICAgICB3Z2V0dShjdHgsIG1fbnVtYmVyT2ZTdGFja0FyZ3Ms
IHdzMSkKIApAQCAtNzg0LDEwICs4NTAsMTUgQEAgbWFjcm8gc2xvd1BhdGhGb3JXYXNtQ2FsbChj
dHgsIHNsb3dQYXRoLCBzdG9yZVdhc21JbnN0YW5jZSkKICAgICAgICAgICAgIHJlbG9hZE1lbW9y
eVJlZ2lzdGVyc0Zyb21JbnN0YW5jZSh0YXJnZXRXYXNtSW5zdGFuY2UsIHdhMCwgd2ExKQogCiAg
ICAgICAgICAgICAjIExvYWQgcmVnaXN0ZXJzIGZyb20gc3RhY2sKLSAgICAgICAgICAgIGZvckVh
Y2hBcmd1bWVudEdQUihtYWNybyAob2Zmc2V0LCBncHIpCitpZiBKU1ZBTFVFNjQKKyAgICAgICAg
ICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHIpCiAgICAgICAgICAgICAg
ICAgbG9hZHEgQ2FsbEZyYW1lSGVhZGVyU2l6ZSArIDggKyBvZmZzZXRbc3AsIHdzMSwgOF0sIGdw
cgogICAgICAgICAgICAgZW5kKQotCitlbHNlCisgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRK
U1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3LCBncExzdykKKyAgICAgICAgICAgICAgICBsb2FkMmlh
IENhbGxGcmFtZUhlYWRlclNpemUgKyA4ICsgb2Zmc2V0W3NwLCB3czEsIDhdLCBncExzdywgZ3By
TXN3CisgICAgICAgICAgICBlbmQpCitlbmQKICAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEZQ
UihtYWNybyAob2Zmc2V0LCBmcHIpCiAgICAgICAgICAgICAgICAgbG9hZGQgQ2FsbEZyYW1lSGVh
ZGVyU2l6ZSArIDggKyBvZmZzZXRbc3AsIHdzMSwgOF0sIGZwcgogICAgICAgICAgICAgZW5kKQpA
QCAtODMwLDcgKzkwMSwxMSBAQCBtYWNybyBzbG93UGF0aEZvcldhc21DYWxsKGN0eCwgc2xvd1Bh
dGgsIHN0b3JlV2FzbUluc3RhbmNlKQogCiAgICAgICAgICAgICAjIFdlIG5lZWQgdG8gc2V0IFBD
IHRvIGxvYWQgaW5mb3JtYXRpb24gZnJvbSB0aGUgaW5zdHJ1Y3Rpb24gc3RyZWFtLCBidXQgd2UK
ICAgICAgICAgICAgICMgbmVlZCB0byBwcmVzZXJ2ZSBpdHMgY3VycmVudCB2YWx1ZSBzaW5jZSBp
dCBtaWdodCBjb250YWluIGEgcmV0dXJuIHZhbHVlCitpZiBBUk12NworICAgICAgICAgICAgcHVz
aCBQQworZWxzZQogICAgICAgICAgICAgbW92ZSBQQywgbWVtb3J5QmFzZQorZW5kCiAgICAgICAg
ICAgICBtb3ZlIFBCLCB3YXNtSW5zdGFuY2UKICAgICAgICAgICAgIGxvYWRpIEFyZ3VtZW50Q291
bnRJbmNsdWRpbmdUaGlzICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCiAgICAgICAgICAgICBsb2FkcCBD
b2RlQmxvY2tbY2ZyXSwgUEIKQEAgLTgzOSwxNyArOTE0LDI4IEBAIG1hY3JvIHNsb3dQYXRoRm9y
V2FzbUNhbGwoY3R4LCBzbG93UGF0aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAgICAgICAgICAgICB3
Z2V0dShjdHgsIG1fc3RhY2tPZmZzZXQsIHdzMSkKICAgICAgICAgICAgIGxzaGlmdGkgMywgd3Mx
CiAgICAgICAgICAgICBuZWdpIHdzMQoraWYgSlNWQUxVRTY0CiAgICAgICAgICAgICBzeGkycSB3
czEsIHdzMQorZW5kCiAgICAgICAgICAgICBhZGRwIGNmciwgd3MxCiAKICAgICAgICAgICAgICMg
QXJndW1lbnQgcmVnaXN0ZXJzIGFyZSBhbHNvIHJldHVybiByZWdpc3RlcnMsIHNvIHRoZXkgbXVz
dCBiZSBzdG9yZWQgdG8gdGhlIHN0YWNrCiAgICAgICAgICAgICAjIGluIGNhc2UgdGhleSBjb250
YWluIHJldHVybiB2YWx1ZXMuCiAgICAgICAgICAgICB3Z2V0dShjdHgsIG1fbnVtYmVyT2ZTdGFj
a0FyZ3MsIHdzMCkKK2lmIEFSTXY3CisgICAgICAgICAgICBwb3AgUEMKK2Vsc2UKICAgICAgICAg
ICAgIG1vdmUgbWVtb3J5QmFzZSwgUEMKLSAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEdQUiht
YWNybyAob2Zmc2V0LCBncHIpCitlbmQKK2lmIEpTVkFMVUU2NAorICAgICAgICAgICAgZm9yRWFj
aEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwcikKICAgICAgICAgICAgICAgICBzdG9yZXEg
Z3ByLCBDYWxsRnJhbWVIZWFkZXJTaXplICsgOCArIG9mZnNldFt3czEsIHdzMCwgOF0KICAgICAg
ICAgICAgIGVuZCkKLQorZWxzZQorICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3Jv
IChvZmZzZXQsIGdwck1zdywgZ3BMc3cpCisgICAgICAgICAgICAgICAgc3RvcmUyaWEgZ3BMc3cs
IGdwck1zdywgQ2FsbEZyYW1lSGVhZGVyU2l6ZSArIDggKyBvZmZzZXRbd3MxLCB3czAsIDhdCisg
ICAgICAgICAgICBlbmQpCitlbmQKICAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEZQUihtYWNy
byAob2Zmc2V0LCBmcHIpCiAgICAgICAgICAgICAgICAgc3RvcmVkIGZwciwgQ2FsbEZyYW1lSGVh
ZGVyU2l6ZSArIDggKyBvZmZzZXRbd3MxLCB3czAsIDhdCiAgICAgICAgICAgICBlbmQpCkBAIC05
MDAsMTk5ICs5ODYsMzYgQEAgd2FzbU9wKGN1cnJlbnRfbWVtb3J5LCBXYXNtQ3VycmVudE1lbW9y
eSwgbWFjcm8oY3R4KQogICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX21lbW9yeVt3YXNtSW5z
dGFuY2VdLCB0MAogICAgIGxvYWRwIFdhc206Ok1lbW9yeTo6bV9oYW5kbGVbdDBdLCB0MAogICAg
IGxvYWRwIFdhc206Ok1lbW9yeUhhbmRsZTo6bV9zaXplW3QwXSwgdDAKLSAgICB1cnNoaWZ0cSAx
NiwgdDAKKyAgICB1cnNoaWZ0cCAxNiwgdDAKK2lmIEpTVkFMVUU2NAogICAgIHJldHVybnEoY3R4
LCB0MCkKK2Vsc2UKKyAgICByZXR1cm4yaShjdHgsIDAsIHQwKQorZW5kCiBlbmQpCiAKIHdhc21P
cChzZWxlY3QsIFdhc21TZWxlY3QsIG1hY3JvKGN0eCkKICAgICBtbG9hZGkoY3R4LCBtX2NvbmRp
dGlvbiwgdDApCiAgICAgYnRpeiB0MCwgLmlzWmVybworaWYgSlNWQUxVRTY0CiAgICAgbWxvYWRx
KGN0eCwgbV9ub25aZXJvLCB0MCkKICAgICByZXR1cm5xKGN0eCwgdDApCiAuaXNaZXJvOgogICAg
IG1sb2FkcShjdHgsIG1femVybywgdDApCiAgICAgcmV0dXJucShjdHgsIHQwKQorZWxzZQorICAg
IG1sb2FkMmkoY3R4LCBtX25vblplcm8sIHQxLCB0MCkKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0
MCkKKy5pc1plcm86CisgICAgbWxvYWQyaShjdHgsIG1femVybywgdDEsIHQwKQorICAgIHJldHVy
bjJpKGN0eCwgdDEsIHQwKQorZW5kCiBlbmQpCiAKLSMgdXNlcyBvZmZzZXQgYXMgc2NyYXRjaCBh
bmQgcmV0dXJucyByZXN1bHQgb24gcG9pbnRlcgotbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBv
aW50ZXIoY3R4LCBwb2ludGVyLCBvZmZzZXQsIHNpemUpCi0gICAgbGVhcCBzaXplIC0gMVtwb2lu
dGVyLCBvZmZzZXRdLCB0NQotICAgIGJwYiB0NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29udGlu
dWF0aW9uCi0gICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCi0uY29u
dGludWF0aW9uOgotICAgIGFkZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgotZW5kCi0KLW1hY3JvIGVt
aXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KGN0eCwgcG9pbnRlciwgb2Zmc2V0
LCBzaXplKQotICAgIGxlYXAgc2l6ZSAtIDFbcG9pbnRlciwgb2Zmc2V0XSwgdDUKLSAgICBicGIg
dDUsIGJvdW5kc0NoZWNraW5nU2l6ZSwgLmNvbnRpbnVhdGlvbgotLnRocm93OgotICAgIHRocm93
RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNjZXNzKQotLmNvbnRpbnVhdGlvbjoKLSAgICBh
ZGRwIG1lbW9yeUJhc2UsIHBvaW50ZXIKLSAgICBhZGRwIG9mZnNldCwgcG9pbnRlcgotZW5kCi0K
LW1hY3JvIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVu
dENoZWNrKGN0eCwgcG9pbnRlciwgb2Zmc2V0LCBzaXplKQotICAgIGxlYXAgc2l6ZSAtIDFbcG9p
bnRlciwgb2Zmc2V0XSwgdDUKLSAgICBicGIgdDUsIGJvdW5kc0NoZWNraW5nU2l6ZSwgLmNvbnRp
bnVhdGlvbgotLnRocm93OgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNj
ZXNzKQotLmNvbnRpbnVhdGlvbjoKLSAgICBhZGRwIG1lbW9yeUJhc2UsIHBvaW50ZXIKLSAgICBh
ZGRwIG9mZnNldCwgcG9pbnRlcgotICAgIGJ0cG56IHBvaW50ZXIsIChzaXplIC0gMSksIC50aHJv
dwotZW5kCi0KLW1hY3JvIHdhc21Mb2FkT3AobmFtZSwgc3RydWN0LCBzaXplLCBmbikKLSAgICB3
YXNtT3AobmFtZSwgc3RydWN0LCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9p
bnRlciwgdDApCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBlbWl0
Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihjdHgsIHQwLCB0MSwgc2l6ZSkKLSAgICAgICAgZm4oW3Qw
LCB0MV0sIHQyKQotICAgICAgICByZXR1cm5xKGN0eCwgdDIpCi0gICAgZW5kKQotZW5kCi0KLXdh
c21Mb2FkT3AobG9hZDhfdSwgV2FzbUxvYWQ4VSwgMSwgbWFjcm8obWVtLCBkc3QpIGxvYWRiIG1l
bSwgZHN0IGVuZCkKLXdhc21Mb2FkT3AobG9hZDE2X3UsIFdhc21Mb2FkMTZVLCAyLCBtYWNybyht
ZW0sIGRzdCkgbG9hZGggbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChsb2FkMzJfdSwgV2FzbUxv
YWQzMlUsIDQsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaSBtZW0sIGRzdCBlbmQpCi13YXNtTG9hZE9w
KGxvYWQ2NF91LCBXYXNtTG9hZDY0VSwgOCwgbWFjcm8obWVtLCBkc3QpIGxvYWRxIG1lbSwgZHN0
IGVuZCkKLQotd2FzbUxvYWRPcChpMzJfbG9hZDhfcywgV2FzbUkzMkxvYWQ4UywgMSwgbWFjcm8o
bWVtLCBkc3QpIGxvYWRic2kgbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChpNjRfbG9hZDhfcywg
V2FzbUk2NExvYWQ4UywgMSwgbWFjcm8obWVtLCBkc3QpIGxvYWRic3EgbWVtLCBkc3QgZW5kKQot
d2FzbUxvYWRPcChpMzJfbG9hZDE2X3MsIFdhc21JMzJMb2FkMTZTLCAyLCBtYWNybyhtZW0sIGRz
dCkgbG9hZGhzaSBtZW0sIGRzdCBlbmQpCi13YXNtTG9hZE9wKGk2NF9sb2FkMTZfcywgV2FzbUk2
NExvYWQxNlMsIDIsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaHNxIG1lbSwgZHN0IGVuZCkKLXdhc21M
b2FkT3AoaTY0X2xvYWQzMl9zLCBXYXNtSTY0TG9hZDMyUywgNCwgbWFjcm8obWVtLCBkc3QpIGxv
YWRpcyBtZW0sIGRzdCBlbmQpCi0KLW1hY3JvIHdhc21TdG9yZU9wKG5hbWUsIHN0cnVjdCwgc2l6
ZSwgZm4pCi0gICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQotICAgICAgICBtbG9h
ZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkK
LSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4LCB0MCwgdDEsIHNpemUpCi0g
ICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQotICAgICAgICBmbih0MiwgW3QwLCB0MV0p
Ci0gICAgICAgIGRpc3BhdGNoKGN0eCkKLSAgICBlbmQpCi1lbmQKLQotd2FzbVN0b3JlT3Aoc3Rv
cmU4LCBXYXNtU3RvcmU4LCAxLCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZWIgdmFsdWUsIG1lbSBl
bmQpCi13YXNtU3RvcmVPcChzdG9yZTE2LCBXYXNtU3RvcmUxNiwgMiwgbWFjcm8odmFsdWUsIG1l
bSkgc3RvcmVoIHZhbHVlLCBtZW0gZW5kKQotd2FzbVN0b3JlT3Aoc3RvcmUzMiwgV2FzbVN0b3Jl
MzIsIDQsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlaSB2YWx1ZSwgbWVtIGVuZCkKLXdhc21TdG9y
ZU9wKHN0b3JlNjQsIFdhc21TdG9yZTY0LCA4LCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZXEgdmFs
dWUsIG1lbSBlbmQpCi0KICMgT3Bjb2RlcyB0aGF0IGRvbid0IGhhdmUgdGhlIGBiM29wYCBlbnRy
eSBpbiB3YXNtLmpzb24uIFRoaXMgc2hvdWxkIGJlIGtlcHQgaW4gc3luYwogCi13YXNtT3AoaTMy
X2Rpdl9zLCBXYXNtSTMyRGl2UywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGkoY3R4LCBtX2xocywg
dDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRpeiB0MSwgLnRocm93RGl2
aXNpb25CeVplcm8KLQotICAgIGJpbmVxIHQxLCAtMSwgLnNhZmUKLSAgICBiaWVxIHQwLCBjb25z
dGV4cHIgSU5UMzJfTUlOLCAudGhyb3dJbnRlZ2VyT3ZlcmZsb3cKLQotLnNhZmU6Ci0gICAgaWYg
WDg2XzY0Ci0gICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0
MCBpcyByYXggYW5kIHQyIGlzIHJkeAotICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKLSAgICAgICAgY2RxaQotICAgICAgICBpZGl2aSB0MQot
ICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgICAgIGRpdmlzIHQxLCB0
MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1cm5pKGN0eCwgdDAp
Ci0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnla
ZXJvKQotCi0udGhyb3dJbnRlZ2VyT3ZlcmZsb3c6Ci0gICAgdGhyb3dFeGNlcHRpb24oSW50ZWdl
ck92ZXJmbG93KQotZW5kKQotCi13YXNtT3AoaTMyX2Rpdl91LCBXYXNtSTMyRGl2VSwgbWFjcm8g
KGN0eCkKLSAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMs
IHQxKQotCi0gICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAgIGlmIFg4Nl82
NAotICAgICAgICB4b3JpIHQyLCB0MgotICAgICAgICB1ZGl2aSB0MQotICAgIGVsc2lmIEFSTTY0
IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgICAgIGRpdmkgdDEsIHQwCi0gICAgZWxzZQotICAg
ICAgICBlcnJvcgotICAgIGVuZAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLnRocm93RGl2aXNp
b25CeVplcm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCi1lbmQpCi0KLXdh
c21PcChpMzJfcmVtX3MsIFdhc21JMzJSZW1TLCBtYWNybyAoY3R4KQotICAgIG1sb2FkaShjdHgs
IG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCi0KLSAgICBidGl6IHQxLCAu
dGhyb3dEaXZpc2lvbkJ5WmVybwotCi0gICAgYmluZXEgdDEsIC0xLCAuc2FmZQotICAgIGJpbmVx
IHQwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAuc2FmZQotCi0gICAgbW92ZSAwLCB0MgotICAgIGpt
cCAucmV0dXJuCi0KLS5zYWZlOgotICAgIGlmIFg4Nl82NAotICAgICAgICAjIEZJWE1FOiBBZGQg
YSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0MiBpcyByZHgKLSAgICAg
ICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCi0gICAg
ICAgIGNkcWkKLSAgICAgICAgaWRpdmkgdDEKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUKLSAg
ICAgICAgZGl2aXMgdDEsIHQwLCB0MgotICAgICAgICBtdWxpIHQxLCB0MgotICAgICAgICBzdWJp
IHQwLCB0MiwgdDIKLSAgICBlbHNpZiBSSVNDVjY0Ci0gICAgICAgIHJlbWlzIHQxLCB0MAotICAg
IGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLQotLnJldHVybjoKLSAgICByZXR1cm5pKGN0
eCwgdDIpCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlz
aW9uQnlaZXJvKQotZW5kKQotCi13YXNtT3AoaTMyX3JlbV91LCBXYXNtSTMyUmVtVSwgbWFjcm8g
KGN0eCkKLSAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMs
IHQxKQotCi0gICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAgIGlmIFg4Nl82
NAotICAgICAgICB4b3JpIHQyLCB0MgotICAgICAgICB1ZGl2aSB0MQotICAgIGVsc2lmIEFSTTY0
IG9yIEFSTTY0RQotICAgICAgICBkaXZpIHQxLCB0MCwgdDIKLSAgICAgICAgbXVsaSB0MSwgdDIK
LSAgICAgICAgc3ViaSB0MCwgdDIsIHQyCi0gICAgZWxzaWYgUklTQ1Y2NAotICAgICAgICByZW1p
IHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1cm5pKGN0
eCwgdDIpCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlz
aW9uQnlaZXJvKQotZW5kKQotCiB3YXNtT3AoaTMyX2N0eiwgV2FzbUkzMkN0eiwgbWFjcm8gKGN0
eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fb3Bl
cmFuZCwgdDApCiAgICAgdHpjbnRpIHQwLCB0MAogICAgIHJldHVybmkoY3R4LCB0MCkKIGVuZCkK
QEAgLTExMDYsMTQ4ICsxMDI5LDI1IEBAIHdhc21PcChpMzJfcG9wY250LCBXYXNtSTMyUG9wY250
LCBtYWNybyAoY3R4KQogICAgIHJldHVybmkoY3R4LCByMSkKIGVuZCkKIAotd2FzbU9wKGk2NF9k
aXZfcywgV2FzbUk2NERpdlMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQw
KQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0cXogdDEsIC50aHJvd0Rpdmlz
aW9uQnlaZXJvCi0KLSAgICBicW5lcSB0MSwgLTEsIC5zYWZlCi0gICAgYnFlcSB0MCwgY29uc3Rl
eHByIElOVDY0X01JTiwgLnRocm93SW50ZWdlck92ZXJmbG93Ci0KLS5zYWZlOgotICAgIGlmIFg4
Nl82NAotICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAg
aXMgcmF4IGFuZCB0MiBpcyByZHgKLSAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCi0gICAgICAgIGNxb3EKLSAgICAgICAgaWRpdnEgdDEKLSAg
ICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAotICAgICAgICBkaXZxcyB0MSwgdDAK
LSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0gICAgcmV0dXJucShjdHgsIHQwKQot
Ci0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVy
bykKLQotLnRocm93SW50ZWdlck92ZXJmbG93OgotICAgIHRocm93RXhjZXB0aW9uKEludGVnZXJP
dmVyZmxvdykKLWVuZCkKLQotd2FzbU9wKGk2NF9kaXZfdSwgV2FzbUk2NERpdlUsIG1hY3JvIChj
dHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0
MSkKLQotICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBpZiBYODZfNjQK
LSAgICAgICAgeG9ycSB0MiwgdDIKLSAgICAgICAgdWRpdnEgdDEKLSAgICBlbHNpZiBBUk02NCBv
ciBBUk02NEUgb3IgUklTQ1Y2NAotICAgICAgICBkaXZxIHQxLCB0MAotICAgIGVsc2UKLSAgICAg
ICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS50aHJvd0RpdmlzaW9u
QnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotZW5kKQotCi13YXNt
T3AoaTY0X3JlbV9zLCBXYXNtSTY0UmVtUywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBt
X2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRxeiB0MSwgLnRo
cm93RGl2aXNpb25CeVplcm8KLQotICAgIGJxbmVxIHQxLCAtMSwgLnNhZmUKLSAgICBicW5lcSB0
MCwgY29uc3RleHByIElOVDY0X01JTiwgLnNhZmUKLQotICAgIG1vdmUgMCwgdDIKLSAgICBqbXAg
LnJldHVybgotCi0uc2FmZToKLSAgICBpZiBYODZfNjQKLSAgICAgICAgIyBGSVhNRTogQWRkIGEg
d2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4Ci0gICAgICAg
ICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgotICAgICAg
ICBjcW9xCi0gICAgICAgIGlkaXZxIHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCi0gICAg
ICAgIGRpdnFzIHQxLCB0MCwgdDIKLSAgICAgICAgbXVscSB0MSwgdDIKLSAgICAgICAgc3VicSB0
MCwgdDIsIHQyCi0gICAgZWxzaWYgUklTQ1Y2NAotICAgICAgICByZW1xcyB0MSwgdDAKLSAgICBl
bHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0KLS5yZXR1cm46Ci0gICAgcmV0dXJucShjdHgs
IHQyKSAjIHJkeCBoYXMgdGhlIHJlbWFpbmRlcgotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAg
ICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLWVuZCkKLQotd2FzbU9wKGk2NF9yZW1f
dSwgV2FzbUk2NFJlbVUsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQot
ICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLQotICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9u
QnlaZXJvCi0KLSAgICBpZiBYODZfNjQKLSAgICAgICAgeG9ycSB0MiwgdDIKLSAgICAgICAgdWRp
dnEgdDEKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUKLSAgICAgICAgZGl2cSB0MSwgdDAsIHQy
Ci0gICAgICAgIG11bHEgdDEsIHQyCi0gICAgICAgIHN1YnEgdDAsIHQyLCB0MgotICAgIGVsc2lm
IFJJU0NWNjQKLSAgICAgICAgcmVtcSB0MSwgdDAKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0g
ICAgZW5kCi0gICAgcmV0dXJucShjdHgsIHQyKQotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAg
ICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKLWVuZCkKLQotd2FzbU9wKGk2NF9jdHos
IFdhc21JNjRDdHosIG1hY3JvIChjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkK
LSAgICB0emNudHEgdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3Ao
aTY0X3BvcGNudCwgV2FzbUk2NFBvcGNudCwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBt
X29wZXJhbmQsIGExKQotICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKLSAgICBtb3ZlIFBDLCBh
MAotICAgIGNDYWxsMihfc2xvd19wYXRoX3dhc21fcG9wY291bnRsbCkKLSAgICByZXN0b3JlU3Rh
dGVBZnRlckNDYWxsKCkKLSAgICByZXR1cm5xKGN0eCwgcjEpCi1lbmQpCi0KLXdhc21PcChmMzJf
dHJ1bmMsIFdhc21GMzJUcnVuYywgbWFjcm8gKGN0eCkKK3dhc21Sb3VuZGluZ09wKGYzMl90cnVu
YywgV2FzbUYzMlRydW5jLCBtYWNybyAoY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwg
ZnQwKQogICAgIHRydW5jYXRlZiBmdDAsIGZ0MAogICAgIHJldHVybmYoY3R4LCBmdDApCiBlbmQp
CiAKLXdhc21PcChmMzJfbmVhcmVzdCwgV2FzbUYzMk5lYXJlc3QsIG1hY3JvIChjdHgpCit3YXNt
Um91bmRpbmdPcChmMzJfbmVhcmVzdCwgV2FzbUYzMk5lYXJlc3QsIG1hY3JvIChjdHgpCiAgICAg
bWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgcm91bmRmIGZ0MCwgZnQwCiAgICAgcmV0
dXJuZihjdHgsIGZ0MCkKIGVuZCkKIAotd2FzbU9wKGY2NF90cnVuYywgV2FzbUY2NFRydW5jLCBt
YWNybyAoY3R4KQord2FzbVJvdW5kaW5nT3AoZjY0X3RydW5jLCBXYXNtRjY0VHJ1bmMsIG1hY3Jv
IChjdHgpCiAgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgdHJ1bmNhdGVkIGZ0
MCwgZnQwCiAgICAgcmV0dXJuZChjdHgsIGZ0MCkKIGVuZCkKIAotd2FzbU9wKGY2NF9uZWFyZXN0
LCBXYXNtRjY0TmVhcmVzdCwgbWFjcm8gKGN0eCkKK3dhc21Sb3VuZGluZ09wKGY2NF9uZWFyZXN0
LCBXYXNtRjY0TmVhcmVzdCwgbWFjcm8gKGN0eCkKICAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQs
IGZ0MCkKICAgICByb3VuZGQgZnQwLCBmdDAKICAgICByZXR1cm5kKGN0eCwgZnQwKQpAQCAtMTI3
MSwyNCArMTA3MSw2IEBAIHdhc21PcChpMzJfdHJ1bmNfc19mMzIsIFdhc21JMzJUcnVuY1NGMzIs
IG1hY3JvIChjdHgpCiAgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKIGVuZCkK
IAotd2FzbU9wKGkzMl90cnVuY19zX2Y2NCwgV2FzbUkzMlRydW5jU0Y2NCwgbWFjcm8gKGN0eCkK
LSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhjMWUwMDAwMDAw
MjAwMDAwLCB0MCAjIElOVDMyX01JTiAtIDEuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRl
cXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgbW92ZSAweDQxZTAwMDAwMDAw
MDAwMDAsIHQwICMgLUlOVDMyX01JTgotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0
MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgdHJ1bmNhdGVkMmlzIGZ0MCwgdDAKLSAg
ICByZXR1cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0
aW9uKE91dE9mQm91bmRzVHJ1bmMpCi1lbmQpCi0KIHdhc21PcChpMzJfdHJ1bmNfdV9mMzIsIFdh
c21JMzJUcnVuY1VGMzIsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBm
dDApCiAKQEAgLTEzMDcsOTYgKzEwODksNiBAQCB3YXNtT3AoaTMyX3RydW5jX3VfZjMyLCBXYXNt
STMyVHJ1bmNVRjMyLCBtYWNybyAoY3R4KQogICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRz
VHJ1bmMpCiBlbmQpCiAKLXdhc21PcChpMzJfdHJ1bmNfdV9mNjQsIFdhc21JMzJUcnVuY1VGNjQs
IG1hY3JvIChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3Zl
IDB4YmZmMDAwMDAwMDAwMDAwMCwgdDAgIyAtMS4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRs
dGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICBtb3ZlIDB4NDFmMDAwMDAw
MDAwMDAwMCwgdDAgIyBJTlQzMl9NSU4gKiAtMi4wCi0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRn
dGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICB0cnVuY2F0ZWQyaSBmdDAs
IHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJv
d0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3Nf
ZjMyLCBXYXNtSTY0VHJ1bmNTRjMyLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZihjdHgsIG1fb3Bl
cmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGRmMDAwMDAwLCB0MCAjIElOVDY0X01JTgotICAgIGZp
MmYgdDAsIGZ0MQotICAgIGJmbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAg
IG1vdmUgMHg1ZjAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCi0gICAgZmkyZiB0MCwgZnQxCi0gICAg
YmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0KLSAgICB0cnVuY2F0ZWYycXMg
ZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmM6Ci0gICAg
dGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVu
Y19zX2Y2NCwgV2FzbUk2NFRydW5jU0Y2NCwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBt
X29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhjM2UwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDY0
X01JTgotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmMKLQotICAgIG1vdmUgMHg0M2UwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KLSAg
ICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMK
LQotICAgIHRydW5jYXRlZDJxcyBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0
T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQotZW5k
KQotCi13YXNtT3AoaTY0X3RydW5jX3VfZjMyLCBXYXNtSTY0VHJ1bmNVRjMyLCBtYWNybyAoY3R4
KQotICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGJmODAwMDAw
LCB0MCAjIC0xLjAKLSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmx0ZXF1biBmdDAsIGZ0MSwgLm91
dE9mQm91bmRzVHJ1bmMKLQotICAgIG1vdmUgMHg1ZjgwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAt
Mi4wCi0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5k
c1RydW5jCi0KLSAgICB0cnVuY2F0ZWYycSBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQot
Ci0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5j
KQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3VfZjY0LCBXYXNtSTY0VHJ1bmNVRjY0LCBtYWNy
byAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGJm
ZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgbW92ZSAweDQzZjAwMDAwMDAwMDAw
MDAsIHQwICMgSU5UNjRfTUlOICogLTIuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgdHJ1bmNhdGVkMnEgZnQwLCB0MAot
ICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dFeGNl
cHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKLWVuZCkKLQogd2FzbU9wKGkzMl90cnVuY19zYXRfZjMy
X3MsIFdhc21JMzJUcnVuY1NhdEYzMlMsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9v
cGVyYW5kLCBmdDApCiAKQEAgLTE0MjUsMzQgKzExMTcsNiBAQCB3YXNtT3AoaTMyX3RydW5jX3Nh
dF9mMzJfcywgV2FzbUkzMlRydW5jU2F0RjMyUywgbWFjcm8gKGN0eCkKICAgICByZXR1cm5pKGN0
eCwgdDApCiBlbmQpCiAKLXdhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTMyVHJ1bmNT
YXRGNjRTLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0g
ICAgbW92ZSAweGMxZTAwMDAwMDAyMDAwMDAsIHQwICMgSU5UMzJfTUlOIC0gMS4wCi0gICAgZnEy
ZCB0MCwgZnQxCi0gICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWlu
T3JOYU4KLQotICAgIG1vdmUgMHg0MWUwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQzMl9NSU4KLSAg
ICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNT
YXRNYXgKLQotICAgIHRydW5jYXRlZDJpcyBmdDAsIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQot
Ci0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgotICAgIGJkZXEgZnQwLCBmdDAsIC5vdXRP
ZkJvdW5kc1RydW5jU2F0TWluCi0gICAgbW92ZSAwLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkK
LQotLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDMyX01B
WCksIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoK
LSAgICBtb3ZlIChjb25zdGV4cHIgSU5UMzJfTUlOKSwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDAp
Ci1lbmQpCi0KIHdhc21PcChpMzJfdHJ1bmNfc2F0X2YzMl91LCBXYXNtSTMyVHJ1bmNTYXRGMzJV
LCBtYWNybyAoY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQogCkBAIC0xNDc2
LDE1MiArMTE0MCwyMiBAQCB3YXNtT3AoaTMyX3RydW5jX3NhdF9mMzJfdSwgV2FzbUkzMlRydW5j
U2F0RjMyVSwgbWFjcm8gKGN0eCkKICAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCiAKLXdhc21P
cChpMzJfdHJ1bmNfc2F0X2Y2NF91LCBXYXNtSTMyVHJ1bmNTYXRGNjRVLCBtYWNybyAoY3R4KQot
ICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGJmZjAwMDAwMDAw
MDAwMDAsIHQwICMgLTEuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVuIGZ0MCwgZnQx
LCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotCi0gICAgbW92ZSAweDQxZjAwMDAwMDAwMDAwMDAs
IHQwICMgSU5UMzJfTUlOICogLTIuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVuIGZ0
MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVkMmkgZnQwLCB0
MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46Ci0gICAg
bW92ZSAwLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRN
YXg6Ci0gICAgbW92ZSAoY29uc3RleHByIFVJTlQzMl9NQVgpLCB0MAotICAgIHJldHVybmkoY3R4
LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3MsIFdhc21JNjRUcnVuY1Nh
dEYzMlMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAg
ICBtb3ZlIDB4ZGYwMDAwMDAsIHQwICMgSU5UNjRfTUlOCi0gICAgZmkyZiB0MCwgZnQxCi0gICAg
YmZsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOCi0KLSAgICBtb3Zl
IDB4NWYwMDAwMDAsIHQwICMgLUlOVDY0X01JTgotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmZ3Rl
cXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVmMnFz
IGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWlu
T3JOYU46Ci0gICAgYmZlcSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KLSAgICBt
b3ZlIDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1h
eDoKLSAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUFYKSwgdDAKLSAgICByZXR1cm5xKGN0eCwg
dDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQ2
NF9NSU4pLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF90cnVu
Y19zYXRfZjY0X3MsIFdhc21JNjRUcnVuY1NhdEY2NFMsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRk
KGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YzNlMDAwMDAwMDAwMDAwMCwgdDAg
IyBJTlQ2NF9NSU4KLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0dW4gZnQwLCBmdDEsIC5vdXRP
ZkJvdW5kc1RydW5jU2F0TWluT3JOYU4KLQotICAgIG1vdmUgMHg0M2UwMDAwMDAwMDAwMDAwLCB0
MCAjIC1JTlQ2NF9NSU4KLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwg
Lm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQotICAgIHRydW5jYXRlZDJxcyBmdDAsIHQwCi0gICAg
cmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgotICAgIGJk
ZXEgZnQwLCBmdDAsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCi0gICAgbW92ZSAwLCB0MAotICAg
IHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6Ci0gICAgbW92ZSAo
Y29uc3RleHByIElOVDY0X01BWCksIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZC
b3VuZHNUcnVuY1NhdE1pbjoKLSAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUlOKSwgdDAKLSAg
ICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl91LCBX
YXNtSTY0VHJ1bmNTYXRGMzJVLCBtYWNybyAoY3R4KQotICAgIG1sb2FkZihjdHgsIG1fb3BlcmFu
ZCwgZnQwKQotCi0gICAgbW92ZSAweGJmODAwMDAwLCB0MCAjIC0xLjAKLSAgICBmaTJmIHQwLCBm
dDEKLSAgICBiZmx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KLQotICAg
IG1vdmUgMHg1ZjgwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCi0gICAgZmkyZiB0MCwgZnQx
Ci0gICAgYmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4Ci0KLSAgICB0
cnVuY2F0ZWYycSBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNU
cnVuY1NhdE1pbjoKLSAgICBtb3ZlIDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0
T2ZCb3VuZHNUcnVuY1NhdE1heDoKLSAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDY0X01BWCksIHQw
Ci0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3NhdF9mNjRf
dSwgV2FzbUk2NFRydW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29w
ZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKLSAg
ICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNT
YXRNaW4KLQotICAgIG1vdmUgMHg0M2YwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDY0X01JTiAqIC0y
LjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmNTYXRNYXgKLQotICAgIHRydW5jYXRlZDJxIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwg
dDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgotICAgIG1vdmUgMCwgdDAKLSAgICByZXR1
cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1vdmUgKGNvbnN0
ZXhwciBVSU5UNjRfTUFYKSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLQotd2Fz
bU9wKGYzMl9jb252ZXJ0X3VfaTY0LCBXYXNtRjMyQ29udmVydFVJNjQsIG1hY3JvIChjdHgpCit3
YXNtSTY0VG9GT3AoZjMyX2NvbnZlcnRfdV9pNjQsIFdhc21GMzJDb252ZXJ0VUk2NCwgbWFjcm8g
KGN0eCkKICAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQogICAgIGlmIFg4Nl82NAogICAg
ICAgICBjcTJmIHQwLCB0MSwgZnQwCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NW
NjQKLSAgICAgICAgY3EyZiB0MCwgZnQwCiAgICAgZWxzZQotICAgICAgICBlcnJvcgorICAgICAg
ICBjcTJmIHQwLCBmdDAKICAgICBlbmQKICAgICByZXR1cm5mKGN0eCwgZnQwKQogZW5kKQogCi13
YXNtT3AoZjY0X2NvbnZlcnRfdV9pNjQsIFdhc21GNjRDb252ZXJ0VUk2NCwgbWFjcm8gKGN0eCkK
K3dhc21JNjRUb0ZPcChmNjRfY29udmVydF91X2k2NCwgV2FzbUY2NENvbnZlcnRVSTY0LCBtYWNy
byAoY3R4KQogICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAgaWYgWDg2XzY0CiAg
ICAgICAgIGNxMmQgdDAsIHQxLCBmdDAKLSAgICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklT
Q1Y2NAotICAgICAgICBjcTJkIHQwLCBmdDAKICAgICBlbHNlCi0gICAgICAgIGVycm9yCisgICAg
ICAgIGNxMmQgdDAsIGZ0MAogICAgIGVuZAogICAgIHJldHVybmQoY3R4LCBmdDApCiBlbmQpCkBA
IC0xNjMyLDQ3ICsxMTY2LDYgQEAgd2FzbU9wKGkzMl9lcXosIFdhc21JMzJFcXosIG1hY3JvKGN0
eCkKICAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCiAKLXdhc21PcChpNjRfc2hsLCBXYXNtSTY0
U2hsLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShj
dHgsIG1fcmhzLCB0MSkKLSAgICBsc2hpZnRxIHQxLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkK
LWVuZCkKLQotd2FzbU9wKGk2NF9zaHJfdSwgV2FzbUk2NFNoclUsIG1hY3JvKGN0eCkKLSAgICBt
bG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotICAgIHVy
c2hpZnRxIHQxLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9z
aHJfcywgV2FzbUk2NFNoclMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDAp
Ci0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotICAgIHJzaGlmdHEgdDEsIHQwCi0gICAgcmV0
dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3JvdHIsIFdhc21JNjRSb3RyLCBtYWNy
byhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgsIG1fcmhz
LCB0MSkKLSAgICBycm90YXRlcSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0K
LXdhc21PcChpNjRfcm90bCwgV2FzbUk2NFJvdGwsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4
LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotICAgIGxyb3RhdGVxIHQx
LCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9lcXosIFdhc21J
NjRFcXosIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIGNx
ZXEgdDAsIDAsIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotZW5kKQotCiB3YXNtT3AoZjMyX21p
biwgV2FzbUYzMk1pbiwgbWFjcm8oY3R4KQogICAgIG1sb2FkZihjdHgsIG1fbGhzLCBmdDApCiAg
ICAgbWxvYWRmKGN0eCwgbV9yaHMsIGZ0MSkKQEAgLTE3ODIsMjMgKzEyNzUsNiBAQCB3YXNtT3Ao
ZjY0X21heCwgV2FzbUY2NE1heCwgbWFjcm8oY3R4KQogICAgIHJldHVybmQoY3R4LCBmdDEpCiBl
bmQpCiAKLXdhc21PcChmNjRfY29weXNpZ24sIFdhc21GNjRDb3B5c2lnbiwgbWFjcm8oY3R4KQot
ICAgIG1sb2FkZChjdHgsIG1fbGhzLCBmdDApCi0gICAgbWxvYWRkKGN0eCwgbV9yaHMsIGZ0MSkK
LQotICAgIGZkMnEgZnQxLCB0MQotICAgIG1vdmUgMHg4MDAwMDAwMDAwMDAwMDAwLCB0MgotICAg
IGFuZHEgdDIsIHQxCi0KLSAgICBmZDJxIGZ0MCwgdDAKLSAgICBtb3ZlIDB4N2ZmZmZmZmZmZmZm
ZmZmZiwgdDIKLSAgICBhbmRxIHQyLCB0MAotCi0gICAgb3JxIHQxLCB0MAotICAgIGZxMmQgdDAs
IGZ0MAotICAgIHJldHVybmQoY3R4LCBmdDApCi1lbmQpCi0KIHdhc21PcChmMzJfY29udmVydF91
X2kzMiwgV2FzbUYzMkNvbnZlcnRVSTMyLCBtYWNybyhjdHgpCiAgICAgbWxvYWRpKGN0eCwgbV9v
cGVyYW5kLCB0MCkKICAgICBjaTJmIHQwLCBmdDAKQEAgLTE5NzQsMTM0ICsxNDUwLDYgQEAgd2Fz
bU9wKGkzMl9jbHosIFdhc21JMzJDbHosIG1hY3JvKGN0eCkKICAgICByZXR1cm5pKGN0eCwgdDEp
CiBlbmQpCiAKLXdhc21PcChpNjRfYWRkLCBXYXNtSTY0QWRkLCBtYWNybyhjdHgpCi0gICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBhZGRx
IHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9zdWIsIFdh
c21JNjRTdWIsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxv
YWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIHN1YnEgdDEsIHQwCi0gICAgcmV0dXJucShjdHgsIHQw
KQotZW5kKQotCi13YXNtT3AoaTY0X211bCwgV2FzbUk2NE11bCwgbWFjcm8oY3R4KQotICAgIG1s
b2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgbXVs
cSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfYW5kLCBX
YXNtSTY0QW5kLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1s
b2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBhbmRxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0
MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9vciwgV2FzbUk2NE9yLCBtYWNybyhjdHgpCi0gICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBvcnEg
dDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X3hvciwgV2Fz
bUk2NFhvciwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9h
ZHEoY3R4LCBtX3JocywgdDEpCi0gICAgeG9ycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEp
Ci1lbmQpCi0KLXdhc21PcChpNjRfZXEsIFdhc21JNjRFcSwgbWFjcm8oY3R4KQotICAgIG1sb2Fk
cShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3FlcSB0
MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQot
d2FzbU9wKGk2NF9uZSwgV2FzbUk2NE5lLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9s
aHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcW5lcSB0MCwgdDEsIHQy
Ci0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2
NF9sdF9zLCBXYXNtSTY0THRTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQw
KQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWx0IHQwLCB0MSwgdDIKLSAgICBh
bmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2xlX3Ms
IFdhc21JNjRMZVMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAg
bWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxbHRlcSB0MCwgdDEsIHQyCi0gICAgYW5kaSAx
LCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9sdF91LCBXYXNt
STY0THRVLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2Fk
cShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWIgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAg
ICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfbGVfdSwgV2FzbUk2NExlVSwg
bWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBt
X3JocywgdDEpCi0gICAgY3FiZXEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1
cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfZ3RfcywgV2FzbUk2NEd0UywgbWFjcm8o
Y3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3Jocywg
dDEpCi0gICAgY3FndCB0MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4
LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9nZV9zLCBXYXNtSTY0R2VTLCBtYWNybyhjdHgpCi0g
ICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAg
ICBjcWd0ZXEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwgdDIp
Ci1lbmQpCi0KLXdhc21PcChpNjRfZ3RfdSwgV2FzbUk2NEd0VSwgbWFjcm8oY3R4KQotICAgIG1s
b2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgY3Fh
IHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQot
Ci13YXNtT3AoaTY0X2dlX3UsIFdhc21JNjRHZVUsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4
LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxYWVxIHQwLCB0
MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNt
T3AoaTY0X2NseiwgV2FzbUk2NENseiwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3Bl
cmFuZCwgdDApCi0gICAgbHpjbnRxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkK
LQogd2FzbU9wKGYzMl9hZGQsIFdhc21GMzJBZGQsIG1hY3JvKGN0eCkKICAgICBtbG9hZGYoY3R4
LCBtX2xocywgZnQwKQogICAgIG1sb2FkZihjdHgsIG1fcmhzLCBmdDEpCkBAIC0yMTQyLDEzICsx
NDkwLDEzIEBAIHdhc21PcChmMzJfbmVnLCBXYXNtRjMyTmVnLCBtYWNybyhjdHgpCiAgICAgcmV0
dXJuZihjdHgsIGZ0MSkKIGVuZCkKIAotd2FzbU9wKGYzMl9jZWlsLCBXYXNtRjMyQ2VpbCwgbWFj
cm8oY3R4KQord2FzbVJvdW5kaW5nT3AoZjMyX2NlaWwsIFdhc21GMzJDZWlsLCBtYWNybyhjdHgp
CiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgY2VpbGYgZnQwLCBmdDEKICAg
ICByZXR1cm5mKGN0eCwgZnQxKQogZW5kKQogCi13YXNtT3AoZjMyX2Zsb29yLCBXYXNtRjMyRmxv
b3IsIG1hY3JvKGN0eCkKK3dhc21Sb3VuZGluZ09wKGYzMl9mbG9vciwgV2FzbUYzMkZsb29yLCBt
YWNybyhjdHgpCiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgZmxvb3JmIGZ0
MCwgZnQxCiAgICAgcmV0dXJuZihjdHgsIGZ0MSkKQEAgLTIyNDIsMTMgKzE1OTAsMTMgQEAgd2Fz
bU9wKGY2NF9uZWcsIFdhc21GNjROZWcsIG1hY3JvKGN0eCkKICAgICByZXR1cm5kKGN0eCwgZnQx
KQogZW5kKQogCi13YXNtT3AoZjY0X2NlaWwsIFdhc21GNjRDZWlsLCBtYWNybyhjdHgpCit3YXNt
Um91bmRpbmdPcChmNjRfY2VpbCwgV2FzbUY2NENlaWwsIG1hY3JvKGN0eCkKICAgICBtbG9hZGQo
Y3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICBjZWlsZCBmdDAsIGZ0MQogICAgIHJldHVybmQoY3R4
LCBmdDEpCiBlbmQpCiAKLXdhc21PcChmNjRfZmxvb3IsIFdhc21GNjRGbG9vciwgbWFjcm8oY3R4
KQord2FzbVJvdW5kaW5nT3AoZjY0X2Zsb29yLCBXYXNtRjY0Rmxvb3IsIG1hY3JvKGN0eCkKICAg
ICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKICAgICBmbG9vcmQgZnQwLCBmdDEKICAgICBy
ZXR1cm5kKGN0eCwgZnQxKQpAQCAtMjMwMyw1MCArMTY1MSwyMCBAQCB3YXNtT3AoZjY0X2dlLCBX
YXNtRjY0R2UsIG1hY3JvKGN0eCkKIGVuZCkKIAogd2FzbU9wKGkzMl93cmFwX2k2NCwgV2FzbUkz
MldyYXBJNjQsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAg
IG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQog
Ci13YXNtT3AoaTY0X2V4dGVuZF9zX2kzMiwgV2FzbUk2NEV4dGVuZFNJMzIsIG1hY3JvKGN0eCkK
LSAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIHN4aTJxIHQwLCB0MQotICAgIHJl
dHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9leHRlbmRfdV9pMzIsIFdhc21JNjRF
eHRlbmRVSTMyLCBtYWNybyhjdHgpCi0gICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAg
ICB6eGkycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KIHdhc21PcChpMzJf
ZXh0ZW5kOF9zLCBXYXNtSTMyRXh0ZW5kOFMsIG1hY3JvKGN0eCkKICAgICBtbG9hZGkoY3R4LCBt
X29wZXJhbmQsIHQwKQogICAgIHN4YjJpIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKKyAg
ICByZXR1cm5pKGN0eCwgdDEpCiBlbmQpCiAKIHdhc21PcChpMzJfZXh0ZW5kMTZfcywgV2FzbUkz
MkV4dGVuZDE2UywgbWFjcm8oY3R4KQogICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCiAg
ICAgc3hoMmkgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0
X2V4dGVuZDhfcywgV2FzbUk2NEV4dGVuZDhTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwg
bV9vcGVyYW5kLCB0MCkKLSAgICBzeGIycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1l
bmQpCi0KLXdhc21PcChpNjRfZXh0ZW5kMTZfcywgV2FzbUk2NEV4dGVuZDE2UywgbWFjcm8oY3R4
KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgc3hoMnEgdDAsIHQxCi0gICAg
cmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X2V4dGVuZDMyX3MsIFdhc21JNjRF
eHRlbmQxNlMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAg
IHN4aTJxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKKyAgICByZXR1cm5pKGN0eCwgdDEp
CiBlbmQpCiAKIHdhc21PcChmMzJfY29udmVydF9zX2kzMiwgV2FzbUYzMkNvbnZlcnRTSTMyLCBt
YWNybyhjdHgpCkBAIC0yMzU1LDcgKzE2NzMsNyBAQCB3YXNtT3AoZjMyX2NvbnZlcnRfc19pMzIs
IFdhc21GMzJDb252ZXJ0U0kzMiwgbWFjcm8oY3R4KQogICAgIHJldHVybmYoY3R4LCBmdDApCiBl
bmQpCiAKLXdhc21PcChmMzJfY29udmVydF9zX2k2NCwgV2FzbUYzMkNvbnZlcnRTSTY0LCBtYWNy
byhjdHgpCit3YXNtSTY0VG9GT3AoZjMyX2NvbnZlcnRfc19pNjQsIFdhc21GMzJDb252ZXJ0U0k2
NCwgbWFjcm8oY3R4KQogICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAgY3EyZnMg
dDAsIGZ0MAogICAgIHJldHVybmYoY3R4LCBmdDApCkBAIC0yMzc5LDcgKzE2OTcsNyBAQCB3YXNt
T3AoZjY0X2NvbnZlcnRfc19pMzIsIFdhc21GNjRDb252ZXJ0U0kzMiwgbWFjcm8oY3R4KQogICAg
IHJldHVybmQoY3R4LCBmdDApCiBlbmQpCiAKLXdhc21PcChmNjRfY29udmVydF9zX2k2NCwgV2Fz
bUY2NENvbnZlcnRTSTY0LCBtYWNybyhjdHgpCit3YXNtSTY0VG9GT3AoZjY0X2NvbnZlcnRfc19p
NjQsIFdhc21GNjRDb252ZXJ0U0k2NCwgbWFjcm8oY3R4KQogICAgIG1sb2FkcShjdHgsIG1fb3Bl
cmFuZCwgdDApCiAgICAgY3EyZHMgdDAsIGZ0MAogICAgIHJldHVybmQoY3R4LCBmdDApCkBAIC0y
MzkxLDM0ICsxNzA5LDI5IEBAIHdhc21PcChmNjRfcHJvbW90ZV9mMzIsIFdhc21GNjRQcm9tb3Rl
RjMyLCBtYWNybyhjdHgpCiAgICAgcmV0dXJuZChjdHgsIGZ0MSkKIGVuZCkKIAotd2FzbU9wKGY2
NF9yZWludGVycHJldF9pNjQsIFdhc21GNjRSZWludGVycHJldEk2NCwgbWFjcm8oY3R4KQotICAg
IG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgZnEyZCB0MCwgZnQwCi0gICAgcmV0dXJu
ZChjdHgsIGZ0MCkKLWVuZCkKLQogd2FzbU9wKGkzMl9yZWludGVycHJldF9mMzIsIFdhc21JMzJS
ZWludGVycHJldEYzMiwgbWFjcm8oY3R4KQogICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQw
KQogICAgIGZmMmkgZnQwLCB0MAogICAgIHJldHVybmkoY3R4LCB0MCkKIGVuZCkKIAotd2FzbU9w
KGk2NF9yZWludGVycHJldF9mNjQsIFdhc21JNjRSZWludGVycHJldEY2NCwgbWFjcm8oY3R4KQot
ICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotICAgIGZkMnEgZnQwLCB0MAotICAgIHJl
dHVybnEoY3R4LCB0MCkKLWVuZCkKLQogbWFjcm8gZHJvcEtlZXAoc3RhcnRPZmZzZXQsIGRyb3As
IGtlZXApCiAgICAgbHNoaWZ0aSAzLCBzdGFydE9mZnNldAogICAgIHN1YnAgY2ZyLCBzdGFydE9m
ZnNldCwgc3RhcnRPZmZzZXQKICAgICBuZWdpIGRyb3AKK2lmIEpTVkFMVUU2NAogICAgIHN4aTJx
IGRyb3AsIGRyb3AKK2VuZAogCiAuY29weUxvb3A6CiAgICAgYnRpeiBrZWVwLCAuZG9uZQoraWYg
SlNWQUxVRTY0CiAgICAgbG9hZHEgW3N0YXJ0T2Zmc2V0LCBkcm9wLCA4XSwgdDYKICAgICBzdG9y
ZXEgdDYsIFtzdGFydE9mZnNldF0KK2Vsc2UKKyAgICBsb2FkMmlhIFtzdGFydE9mZnNldCwgZHJv
cCwgOF0sIHQ1LCB0NgorICAgIHN0b3JlMmlhIHQ1LCB0NiwgW3N0YXJ0T2Zmc2V0XQorZW5kCiAg
ICAgc3ViaSAxLCBrZWVwCiAgICAgc3VicCA4LCBzdGFydE9mZnNldAogICAgIGptcCAuY29weUxv
b3AKQEAgLTI0MzYsMzg5ICsxNzQ5LDYgQEAgd2FzbU9wKGRyb3Bfa2VlcCwgV2FzbURyb3BLZWVw
LCBtYWNybyhjdHgpCiAgICAgZGlzcGF0Y2goY3R4KQogZW5kKQogCi1tYWNybyB3YXNtQXRvbWlj
QmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIsIGZuaCwg
Zm5pLCBmbnEpCi0gICAgd2FzbU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3Us
IFdhc21JNjRBdG9taWNSbXc4JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0gICAgICAg
IG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQs
IHQxKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKLSAgICAgICAgZW1pdENoZWNr
QW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQoY3R4LCB0MywgdDEsIDEpCi0gICAgICAgIGZu
Yih0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKLSAgICAgICAgYW5kcSAweGZmLCB0MCAjIEZJWE1FOiBa
ZXJvRXh0ZW5kOFRvNjQKLSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZiwg
Lm9rIGVuZCkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAgICB3YXNtT3Ao
aTY0X2F0b21pY19ybXcxNiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXcxNiV1
cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50
ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxvYWRx
KGN0eCwgbV92YWx1ZSwgdDApCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRk
aW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCAyKQotICAgICAgICBmbmgo
dDAsIFt0M10sIHQyLCB0NSwgdDEpCi0gICAgICAgIGFuZHEgMHhmZmZmLCB0MCAjIEZJWE1FOiBa
ZXJvRXh0ZW5kMTZUbzY0Ci0gICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmZm
ZiwgLm9rIGVuZCkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAgICB3YXNt
T3AoaTY0X2F0b21pY19ybXczMiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXcz
MiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3Bv
aW50ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxv
YWRxKGN0eCwgbV92YWx1ZSwgdDApCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVy
QWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA0KQotICAgICAgICBm
bmkodDAsIFt0M10sIHQyLCB0NSwgdDEpCi0gICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEg
dDAsIDB4ZmZmZmZmZmYsIC5vayBlbmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBl
bmQpCi0gICAgd2FzbU9wKGk2NF9hdG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21JNjRB
dG9taWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4
LCBtX3BvaW50ZXIsIHQzKQotICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAg
ICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQ
b2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA4KQotICAg
ICAgICBmbnEodDAsIFt0M10sIHQyLCB0NSwgdDEpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkK
LSAgICBlbmQpCi1lbmQKLQotbWFjcm8gd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FT
KGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmksIGZucSkKLSAgICB3YXNtQXRv
bWljQmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLAotICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgaWYg
WDg2XzY0Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKLSAgICAgICAgICAgICAg
ICBsb2FkYiBtZW0sIHQwR1BSCi0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBt
b3ZlIHQwR1BSLCB0MkdQUgotICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIpCi0gICAg
ICAgICAgICAgICAgYmF0b21pY3dlYWtjYXNiIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAotICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbG9hZGxp
bmthY3FiIG1lbSwgdDFHUFIKLSAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BSLCB0MkdQ
UikKLSAgICAgICAgICAgICAgICBzdG9yZWNvbmRyZWxiIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAg
ICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCi0gICAgICAgICAgICAgICAgbW92ZSB0
MUdQUiwgdDBHUFIKLSAgICAgICAgICAgIGVuZAotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3Jv
KHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBpZiBYODZfNjQK
LSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgotICAgICAgICAgICAgICAgIGxvYWRo
IG1lbSwgdDBHUFIKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIG1vdmUgdDBH
UFIsIHQyR1BSCi0gICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAg
ICAgICBiYXRvbWljd2Vha2Nhc2ggdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCi0gICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBsb2FkbGlua2FjcWgg
bWVtLCB0MUdQUgotICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAg
ICAgICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAg
ICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKLSAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0
MEdQUgotICAgICAgICAgICAgZW5kCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIs
IG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIGlmIFg4Nl82NAotICAgICAg
ICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCi0gICAgICAgICAgICAgICAgbG9hZGkgbWVtLCB0
MEdQUgotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJH
UFIKLSAgICAgICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgICAgIGJh
dG9taWN3ZWFrY2FzaSB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxaSBtZW0sIHQx
R1BSCi0gICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAg
ICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgICAgIGJp
bmVxIHQ1R1BSLCAwLCAubG9vcAotICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0g
ICAgICAgICAgICBlbmQKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgaWYgWDg2XzY0Ci0gICAgICAgICAgICAg
ICAgbW92ZSB0MEdQUiwgdDVHUFIKLSAgICAgICAgICAgICAgICBsb2FkcSBtZW0sIHQwR1BSCi0g
ICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgotICAg
ICAgICAgICAgICAgIGZucSh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAgICAgYmF0b21pY3dl
YWtjYXNxIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAotICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgLmxvb3A6Ci0gICAgICAgICAgICAgICAgbG9hZGxpbmthY3FxIG1lbSwgdDFHUFIKLSAg
ICAgICAgICAgICAgICBmbnEodDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgICAgICBz
dG9yZWNvbmRyZWxxIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICAgICAgYmluZXEgdDVH
UFIsIDAsIC5sb29wCi0gICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAgICAgICAg
ICAgIGVuZAotICAgICAgICBlbmQpCi1lbmQKLQotaWYgWDg2XzY0Ci0gICAgd2FzbUF0b21pY0Jp
bmFyeVJNV09wcyhfYWRkLCBBZGQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNy
byh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaCB0MEdQUiwg
bWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikg
YXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRxIHQwR1BSLCBtZW0gZW5kKQotICAg
IHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3N1YiwgU3ViLAotICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3ViYiB0MEdQUiwgbWVtIGVuZCwK
LSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNo
Z3N1YmggdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJpIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNy
byh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3VicSB0MEdQUiwg
bWVtIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94Y2hnLCBYY2hnLAotICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYiB0MEdQ
UiwgbWVtIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikgYXRvbWljeGNoZ2ggdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0s
IHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdpIHQwR1BSLCBtZW0gZW5kLAotICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hncSB0MEdQ
UiwgbWVtIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FuZCwg
QW5kLAotICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBhbmRpIHQ1R1BS
LCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKLSAgICAg
ICAgICAgIGFuZHEgdDVHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmlu
YXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX29yLCBPciwKLSAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BS
KQotICAgICAgICAgICAgb3JpIHQ1R1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1h
Y3JvKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgIG9ycSB0NUdQUiwgdDJHUFIKLSAgICAgICAg
ZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeG9yLCBYb3IsCi0g
ICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgIHhvcmkgdDVHUFIsIHQyR1BS
Ci0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAgICAgICAg
eG9ycSB0NUdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQotZWxzaWYgQVJNNjRFCi0gICAgd2FzbUF0
b21pY0JpbmFyeVJNV09wcyhfYWRkLCBBZGQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwK
LSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNo
Z2FkZGggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQs
Ci0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hj
aGdhZGRxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3Bz
KF9zdWIsIFN1YiwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikKLSAgICAgICAgICAgIG5lZ3EgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdhZGRiIHQw
R1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwg
dDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIG5lZ3EgdDBHUFIKLSAgICAgICAgICAg
IGF0b21pY3hjaGdhZGRoIHQwR1BSLCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAg
bWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgICAgIG5lZ3Eg
dDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0sIHQwR1BSCi0gICAg
ICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikK
LSAgICAgICAgICAgIG5lZ3EgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdhZGRxIHQwR1BS
LCBtZW0sIHQwR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9h
bmQsIEFuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikK
LSAgICAgICAgICAgIG5vdHEgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcmIgdDBH
UFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgbm90cSB0MEdQUgotICAgICAgICAgICAg
YXRvbWljeGNoZ2NsZWFyaCB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQsCi0gICAgICAg
IG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBub3Rx
IHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnY2xlYXJpIHQwR1BSLCBtZW0sIHQwR1BSCi0g
ICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikKLSAgICAgICAgICAgIG5vdHEgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hjaGdjbGVhcnEg
dDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdP
cHMoX29yLCBPciwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikgYXRvbWljeGNoZ29yYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQw
R1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcmggdDBHUFIsIG1lbSwg
dDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KSBhdG9taWN4Y2hnb3JpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBH
UFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29ycSB0MEdQUiwgbWVtLCB0
MEdQUiBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfeG9yLCBYb3IsCi0gICAgICAg
IG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JiIHQw
R1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1
R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9yaSB0
MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKLSAgICB3
YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94Y2hnLCBYY2hnLAotICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYiB0MEdQUiwgbWVtLCB0MEdQUiBl
bmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21p
Y3hjaGdoIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwg
dDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2kgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAot
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
cSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQpCi1lbHNlCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09w
c1dpdGhXZWFrQ0FTKF9hZGQsIEFkZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQ
UikKLSAgICAgICAgICAgIGFkZGkgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0g
ICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBhZGRxIHQwR1BS
LCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNX
aXRoV2Vha0NBUyhfc3ViLCBTdWIsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIp
Ci0gICAgICAgICAgICBzdWJpIHQxR1BSLCB0MEdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAg
ICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgc3VicSB0MUdQUiwg
dDBHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0
aFdlYWtDQVMoX3hjaGcsIFhjaGcsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIp
Ci0gICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1h
Y3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgot
ICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9hbmQs
IEFuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIGFu
ZGkgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BS
LCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBhbmRxIHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAg
ICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfb3IsIE9y
LAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgb3JpIHQw
R1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFH
UFIsIHQyR1BSKQotICAgICAgICAgICAgb3JxIHQwR1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAg
ZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeG9yLCBYb3IsCi0g
ICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICB4b3JpIHQwR1BS
LCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIs
IHQyR1BSKQotICAgICAgICAgICAgeG9ycSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAgICAgIGVu
ZCkKLWVuZAotCi1tYWNybyB3YXNtQXRvbWljQ29tcGFyZUV4Y2hhbmdlT3BzKGxvd2VyQ2FzZU9w
Y29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIsIGZuaCwgZm5pLCBmbnEpCi0gICAgd2FzbU9wKGk2
NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4JXVwcGVy
Q2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwg
dDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEoY3R4
LCBtX2V4cGVjdGVkLCB0MCkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAg
ICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KGN0eCwgdDMsIHQxLCAx
KQotICAgICAgICBmbmIodDAsIHQyLCBbdDNdLCB0NSwgdDEpCi0gICAgICAgIGFuZHEgMHhmZiwg
dDAgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0Ci0gICAgICAgIGFzc2VydChtYWNybyhvaykgYnFi
ZXEgdDAsIDB4ZmYsIC5vayBlbmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQp
Ci0gICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MTYlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0
QXRvbWljUm13MTYldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRp
KGN0eCwgbV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0g
ICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQotICAgICAgICBtbG9hZHEoY3R4LCBt
X3ZhbHVlLCB0MikKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZz
ZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDIpCi0gICAgICAgIGZuaCh0MCwgdDIs
IFt0M10sIHQ1LCB0MSkKLSAgICAgICAgYW5kcSAweGZmZmYsIHQwICMgRklYTUU6IFplcm9FeHRl
bmQxNlRvNjQKLSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZmZmLCAub2sg
ZW5kKQotICAgICAgICByZXR1cm5xKGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdhc21PcChpNjRf
YXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzMyJXVwcGVy
Q2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwg
dDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEoY3R4
LCBtX2V4cGVjdGVkLCB0MCkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAg
ICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENo
ZWNrKGN0eCwgdDMsIHQxLCA0KQotICAgICAgICBmbmkodDAsIHQyLCBbdDNdLCB0NSwgdDEpCi0g
ICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmZmZmZmZmYsIC5vayBlbmQpCi0g
ICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi0gICAgd2FzbU9wKGk2NF9hdG9taWNf
cm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21JNjRBdG9taWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwg
bWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQotICAgICAgICB3
Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBlY3RlZCwg
dDApCi0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQotICAgICAgICBlbWl0Q2hlY2tB
bmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0
MSwgOCkKLSAgICAgICAgZm5xKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQotICAgICAgICByZXR1cm5x
KGN0eCwgdDApCi0gICAgZW5kKQotZW5kCi0KLSMgdDBHUFIgPT4gZXhwZWN0ZWQsIHQyR1BSID0+
IHZhbHVlLCBtZW0gPT4gbWVtb3J5IHJlZmVyZW5jZQotd2FzbUF0b21pY0NvbXBhcmVFeGNoYW5n
ZU9wcyhfY21weGNoZywgQ21weGNoZywKLSAgICBtYWNybyh0MEdQUiwgdDJHUFIsIG1lbSwgdDVH
UFIsIHQxR1BSKQotICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRFCi0gICAgICAgICAgICBicWEg
dDBHUFIgLCAweGZmLCAuZmFpbAotICAgICAgICAgICAgYXRvbWljd2Vha2Nhc2IgdDBHUFIsIHQy
R1BSLCBtZW0KLSAgICAgICAgICAgIGptcCAuZG9uZQotICAgICAgICAuZmFpbDoKLSAgICAgICAg
ICAgIGF0b21pY2xvYWRiIG1lbSwgdDBHUFIKLSAgICAgICAgLmRvbmU6Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICBsb2FkbGlua2FjcWIgbWVtLCB0MUdQUgotICAg
ICAgICAgICAgYnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAotICAgICAgICAgICAgc3RvcmVjb25k
cmVsYiB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUK
LSAgICAgICAgICAgIGptcCAubG9vcAotICAgICAgICAuZmFpbDoKLSAgICAgICAgICAgIHN0b3Jl
Y29uZHJlbGIgdDVHUFIsIHQxR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5k
b25lCi0gICAgICAgICAgICBqbXAgLmxvb3AKLSAgICAgICAgLmRvbmU6Ci0gICAgICAgICAgICBt
b3ZlIHQxR1BSLCB0MEdQUgotICAgICAgICBlbmQKLSAgICBlbmQsCi0gICAgbWFjcm8odDBHUFIs
IHQyR1BSLCBtZW0sIHQ1R1BSLCB0MUdQUikKLSAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQot
ICAgICAgICAgICAgYnFhIHQwR1BSLCAweGZmZmYsIC5mYWlsCi0gICAgICAgICAgICBhdG9taWN3
ZWFrY2FzaCB0MEdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgam1wIC5kb25lCi0gICAgICAg
IC5mYWlsOgotICAgICAgICAgICAgYXRvbWljbG9hZGggbWVtLCB0MEdQUgotICAgICAgICAuZG9u
ZToKLSAgICAgICAgZWxzZQotICAgICAgICAubG9vcDoKLSAgICAgICAgICAgIGxvYWRsaW5rYWNx
aCBtZW0sIHQxR1BSCi0gICAgICAgICAgICBicW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCi0gICAg
ICAgICAgICBzdG9yZWNvbmRyZWxoIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICBiaWVx
IHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAgICAgIC5mYWlsOgot
ICAgICAgICAgICAgc3RvcmVjb25kcmVsaCB0NUdQUiwgdDFHUFIsIG1lbQotICAgICAgICAgICAg
YmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGptcCAubG9vcAotICAgICAgICAuZG9u
ZToKLSAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0gICAgICAgIGVuZAotICAgIGVuZCwK
LSAgICBtYWNybyh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BSKQotICAgICAgICBpZiBY
ODZfNjQgb3IgQVJNNjRFCi0gICAgICAgICAgICBicWEgdDBHUFIsIDB4ZmZmZmZmZmYsIC5mYWls
Ci0gICAgICAgICAgICBhdG9taWN3ZWFrY2FzaSB0MEdQUiwgdDJHUFIsIG1lbQotICAgICAgICAg
ICAgam1wIC5kb25lCi0gICAgICAgIC5mYWlsOgotICAgICAgICAgICAgYXRvbWljbG9hZGkgbWVt
LCB0MEdQUgotICAgICAgICAuZG9uZToKLSAgICAgICAgZWxzZQotICAgICAgICAubG9vcDoKLSAg
ICAgICAgICAgIGxvYWRsaW5rYWNxaSBtZW0sIHQxR1BSCi0gICAgICAgICAgICBicW5lcSB0MEdQ
UiwgdDFHUFIsIC5mYWlsCi0gICAgICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0MkdQUiwg
bWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5s
b29wCi0gICAgICAgIC5mYWlsOgotICAgICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwgdDFH
UFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGpt
cCAubG9vcAotICAgICAgICAuZG9uZToKLSAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0g
ICAgICAgIGVuZAotICAgIGVuZCwKLSAgICBtYWNybyh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIs
IHQxR1BSKQotICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRFCi0gICAgICAgICAgICBhdG9taWN3
ZWFrY2FzcSB0MEdQUiwgdDJHUFIsIG1lbQotICAgICAgICBlbHNlCi0gICAgICAgIC5sb29wOgot
ICAgICAgICAgICAgbG9hZGxpbmthY3FxIG1lbSwgdDFHUFIKLSAgICAgICAgICAgIGJxbmVxIHQw
R1BSLCB0MUdQUiwgLmZhaWwKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbHEgdDVHUFIsIHQyR1BS
LCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBqbXAg
Lmxvb3AKLSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAgICBzdG9yZWNvbmRyZWxxIHQ1R1BSLCB0
MUdQUiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAg
am1wIC5sb29wCi0gICAgICAgIC5kb25lOgotICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIK
LSAgICAgICAgZW5kCi0gICAgZW5kKQotCiB3YXNtT3AoYXRvbWljX2ZlbmNlLCBXYXNtRHJvcEtl
ZXAsIG1hY3JvKGN0eCkKICAgICBmZW5jZQogICAgIGRpc3BhdGNoKGN0eCkKQEAgLTI4NDcsOSAr
MTc3NywxNCBAQCBtYWNybyBjb21tb25DYXRjaEltcGwoY3R4LCBzdG9yZVdhc21JbnN0YW5jZSkK
ICAgICBjb252ZXJ0Q2FsbGVlVG9WTSh0MykKICAgICByZXN0b3JlQ2FsbGVlU2F2ZXNGcm9tVk1F
bnRyeUZyYW1lQ2FsbGVlU2F2ZXNCdWZmZXIodDMsIHQwKQogCi0gICAgbG9hZHAgVk06OmNhbGxl
ZUZvcldhc21DYXRjaFt0M10sIHdzMQotICAgIHN0b3JlcCAwLCBWTTo6Y2FsbGVlRm9yV2FzbUNh
dGNoW3QzXQotICAgIHN0b3JlcCB3czEsIENhbGxlZVtjZnJdCisgICAgbG9hZHAgVk06OmNhbGxl
ZUZvcldhc21DYXRjaCArIFBheWxvYWRPZmZzZXRbdDNdLCB3czEKKyAgICBzdG9yZXAgMCwgVk06
OmNhbGxlZUZvcldhc21DYXRjaCArIFBheWxvYWRPZmZzZXRbdDNdCisgICAgc3RvcmVwIHdzMSwg
Q2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdCitpZiBub3QgSlNWQUxVRTY0CisgICAgbG9hZGkg
Vk06OmNhbGxlZUZvcldhc21DYXRjaCArIFRhZ09mZnNldFt0M10sIHdzMQorICAgIHN0b3JlaSBF
bXB0eVZhbHVlVGFnLCBWTTo6Y2FsbGVlRm9yV2FzbUNhdGNoICsgVGFnT2Zmc2V0W3QzXQorICAg
IHN0b3JlaSB3czEsIENhbGxlZSArIFRhZ09mZnNldFtjZnJdCitlbmQKIAogICAgIGxvYWRwIFZN
OjpjYWxsRnJhbWVGb3JDYXRjaFt0M10sIGNmcgogICAgIHN0b3JlcCAwLCBWTTo6Y2FsbEZyYW1l
Rm9yQ2F0Y2hbdDNdCkBAIC0yODg4LDggKzE4MjMsMTMgQEAgbWFjcm8gY2F0Y2hJbXBsKGN0eCwg
c3RvcmVXYXNtSW5zdGFuY2UpCiAKIC5jb3B5TG9vcDoKICAgICBidGl6IHQzLCAuZG9uZQoraWYg
SlNWQUxVRTY0CiAgICAgbG9hZHEgW3QxXSwgdDYKICAgICBzdG9yZXEgdDYsIFt0Ml0KK2Vsc2UK
KyAgICBsb2FkMmlhIFt0MV0sIHQ1LCB0NgorICAgIHN0b3JlMmlhIHQ1LCB0NiwgW3QyXQorZW5k
CiAgICAgc3ViaSAxLCB0MwogICAgICMgRklYTUU6IFVzZSBhcm0gc3RvcmUtYWRkL3N1YiBpbnN0
cnVjdGlvbnMgaW4gd2FzbSBMTEludCBjYXRjaAogICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMTIxMApAQCAtMjkxNywzICsxODU3LDEwIEBAIGVuZCkKIGNv
bW1vbldhc21PcCh3YXNtX2NhdGNoX2FsbF9ub190bHMsIFdhc21DYXRjaEFsbCwgbWFjcm8oKSBl
bmQsIG1hY3JvKGN0eCkKICAgICBjYXRjaEFsbEltcGwoY3R4LCBtYWNybyhpbnN0YW5jZSkgZW5k
KQogZW5kKQorCisjIFZhbHVlLXJlcHJlc2VudGF0aW9uLXNwZWNpZmljIGNvZGUuCitpZiBKU1ZB
TFVFNjQKKyAgICBpbmNsdWRlIFdlYkFzc2VtYmx5NjQKK2Vsc2UKKyAgICBpbmNsdWRlIFdlYkFz
c2VtYmx5MzJfNjQKK2VuZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L1dlYkFzc2VtYmx5MzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFz
c2VtYmx5MzJfNjQuYXNtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u
ZWMxODlmOTc2M2U3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L1dlYkFzc2VtYmx5MzJfNjQuYXNtCkBAIC0wLDAgKzEsMTEyOSBAQAorIyBDb3B5cmlnaHQg
KEMpIDIwMTEtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdo
dCAoQykgMjAyMSBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBDb25zdGFudHMKKworY29uc3QgTXN3T2Zm
c2V0ID0gNAorY29uc3QgTHN3T2Zmc2V0ID0gMAorCisjIE9wY29kZXMgdGhhdCBzaG91bGQgZXZl
bnR1YWxseSBiZSBzaGFyZWQgd2l0aCBKUyBsbGludAorCit3YXNtT3AobW92LCBXYXNtTW92LCBt
YWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fc3JjLCB0MSwgdDApCisgICAgcmV0dXJuMmko
Y3R4LCB0MSwgdDApCitlbmQpCisKKyMgV2FzbSBzcGVjaWZpYyBieXRlY29kZXMKKworbWFjcm8g
ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQocG9pbnRlciwgb2Zmc2V0LCBz
aXplKQorICAgICMgVGhpcyBtYWNybyB1cGRhdGVzICdwb2ludGVyJyB0byB0YXJnZXQgYWRkcmVz
cywgYW5kIG1heSB0aHJhc2ggJ29mZnNldCcKK2lmIEFSTXY3CisgICAgIyBOb3QgZW5vdWdoIHJl
Z2lzdGVycyBvbiBhcm0gdG8ga2VlcCB0aGUgbWVtb3J5IGJhc2UgYW5kIHNpemUgaW4gcGlubmVk
CisgICAgIyByZWdpc3RlcnMsIHNvIGxvYWQgdGhlbSBvbiBlYWNoIGFjY2VzcyBpbnN0ZWFkLiBG
SVhNRTogaW1wcm92ZSB0aGlzLgorICAgIGFkZHBzIG9mZnNldCwgcG9pbnRlcgorICAgIGJjcyAu
dGhyb3cKKyAgICBhZGRwcyBzaXplIC0gMSwgcG9pbnRlciwgb2Zmc2V0ICMgVXNlIG9mZnNldCBh
cyBzY3JhdGNoIHJlZ2lzdGVyCisgICAgYmNzIC50aHJvdworICAgIGJwYiBvZmZzZXQsIFdhc206
Okluc3RhbmNlOjptX2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZVt3YXNtSW5zdGFuY2VdLCAuY29u
dGludWF0aW9uCisudGhyb3c6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlB
Y2Nlc3MpCisuY29udGludWF0aW9uOgorICAgIGFkZHAgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVk
TWVtb3J5W3dhc21JbnN0YW5jZV0sIHBvaW50ZXIKK2Vsc2UKKyAgICBjcmFzaCgpCitlbmQKK2Vu
ZAorCittYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGln
bm1lbnRDaGVjayhwb2ludGVyLCBvZmZzZXQsIHNpemUpCisgICAgIyBUaGlzIG1hY3JvIHVwZGF0
ZXMgJ3BvaW50ZXInIHRvIHRhcmdldCBhZGRyZXNzLCBhbmQgbWF5IHRocmFzaCAnb2Zmc2V0Jwor
aWYgQVJNdjcKKyAgICAjIE5vdCBlbm91Z2ggcmVnaXN0ZXJzIG9uIGFybSB0byBrZWVwIHRoZSBt
ZW1vcnkgYmFzZSBhbmQgc2l6ZSBpbiBwaW5uZWQKKyAgICAjIHJlZ2lzdGVycywgc28gbG9hZCB0
aGVtIG9uIGVhY2ggYWNjZXNzIGluc3RlYWQuIEZJWE1FOiBpbXByb3ZlIHRoaXMuCisgICAgYWRk
cHMgb2Zmc2V0LCBwb2ludGVyCisgICAgYmNzIC50aHJvdworICAgIGFkZHBzIHNpemUgLSAxLCBw
b2ludGVyLCBvZmZzZXQgIyBVc2Ugb2Zmc2V0IGFzIHNjcmF0Y2ggcmVnaXN0ZXIKKyAgICBiY3Mg
LnRocm93CisgICAgYnBiIG9mZnNldCwgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkQm91bmRzQ2hl
Y2tpbmdTaXplW3dhc21JbnN0YW5jZV0sIC5jb250aW51YXRpb24KKy50aHJvdzoKKyAgICB0aHJv
d0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKKy5jb250aW51YXRpb246CisgICAg
YWRkcCBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRNZW1vcnlbd2FzbUluc3RhbmNlXSwgcG9pbnRl
cgorICAgIGJ0cG56IHBvaW50ZXIsIChzaXplIC0gMSksIC50aHJvdworZWxzZQorICAgIGNyYXNo
KCkKK2VuZAorZW5kCisKK21hY3JvIHdhc21Mb2FkT3AobmFtZSwgc3RydWN0LCBzaXplLCBmbikK
KyAgICB3YXNtT3AobmFtZSwgc3RydWN0LCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgs
IG1fcG9pbnRlciwgdDApCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAg
ICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldCh0MCwgdDEsIHNpemUpCisg
ICAgICAgIGZuKHQwLCB0MywgdDIpCisgICAgICAgIHJldHVybjJpKGN0eCwgdDMsIHQyKQorICAg
IGVuZCkKK2VuZAorCit3YXNtTG9hZE9wKGxvYWQ4X3UsIFdhc21Mb2FkOFUsIDEsIG1hY3JvKGFk
ZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRiIExzd09mZnNldFthZGRyXSwgZHN0THN3Cisg
ICAgbW92ZSAwLCBkc3RNc3cKK2VuZCkKK3dhc21Mb2FkT3AobG9hZDE2X3UsIFdhc21Mb2FkMTZV
LCAyLCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkaCBMc3dPZmZzZXRbYWRk
cl0sIGRzdExzdworICAgIG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGxvYWQzMl91
LCBXYXNtTG9hZDMyVSwgNCwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGkg
THN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdworZW5kKQord2FzbUxv
YWRPcChsb2FkNjRfdSwgV2FzbUxvYWQ2NFUsIDgsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3
KQorICAgICMgTWlnaHQgYmUgdW5hbGlnbmVkLCBzbyBjYW4ndCB1c2UgbG9hZDJpYQorICAgIGxv
YWRpIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAgbG9hZGkgTXN3T2Zmc2V0W2FkZHJdLCBk
c3RNc3cKK2VuZCkKKword2FzbUxvYWRPcChpMzJfbG9hZDhfcywgV2FzbUkzMkxvYWQ4UywgMSwg
bWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGJzaSBMc3dPZmZzZXRbYWRkcl0s
IGRzdExzdworICAgIG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGkzMl9sb2FkMTZf
cywgV2FzbUkzMkxvYWQxNlMsIDIsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxv
YWRoc2kgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdworZW5kKQor
d2FzbUxvYWRPcChpNjRfbG9hZDhfcywgV2FzbUk2NExvYWQ4UywgMSwgbWFjcm8oYWRkciwgZHN0
TXN3LCBkc3RMc3cpCisgICAgbG9hZGJzaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAgIHJz
aGlmdGkgZHN0THN3LCAzMSwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGk2NF9sb2FkMTZfcywg
V2FzbUk2NExvYWQxNlMsIDIsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAgIGxvYWRo
c2kgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICByc2hpZnRpIGRzdExzdywgMzEsIGRzdE1z
dworZW5kKQord2FzbUxvYWRPcChpNjRfbG9hZDMyX3MsIFdhc21JNjRMb2FkMzJTLCA0LCBtYWNy
byhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExz
dworICAgIHJzaGlmdGkgZHN0THN3LCAzMSwgZHN0TXN3CitlbmQpCisKK21hY3JvIHdhc21TdG9y
ZU9wKG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4pCisgICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFj
cm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQorICAgICAgICB3Z2V0
dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJB
ZGRpbmdPZmZzZXQodDAsIHQxLCBzaXplKQorICAgICAgICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwg
dDMsIHQyKQorICAgICAgICBmbih0MywgdDIsIHQwKQorICAgICAgICBkaXNwYXRjaChjdHgpCisg
ICAgZW5kKQorZW5kCisKK3dhc21TdG9yZU9wKHN0b3JlOCwgV2FzbVN0b3JlOCwgMSwgbWFjcm8o
c3JjTXN3LCBzcmNMc3csIGFkZHIpCisgICAgc3RvcmViIHNyY0xzdywgTHN3T2Zmc2V0W2FkZHJd
CitlbmQpCit3YXNtU3RvcmVPcChzdG9yZTE2LCBXYXNtU3RvcmUxNiwgMiwgbWFjcm8oc3JjTXN3
LCBzcmNMc3csIGFkZHIpCisgICAgc3RvcmVoIHNyY0xzdywgTHN3T2Zmc2V0W2FkZHJdCitlbmQp
Cit3YXNtU3RvcmVPcChzdG9yZTMyLCBXYXNtU3RvcmUzMiwgNCwgbWFjcm8oc3JjTXN3LCBzcmNM
c3csIGFkZHIpCisgICAgc3RvcmVpIHNyY0xzdywgTHN3T2Zmc2V0W2FkZHJdCitlbmQpCit3YXNt
U3RvcmVPcChzdG9yZTY0LCBXYXNtU3RvcmU2NCwgOCwgbWFjcm8oc3JjTXN3LCBzcmNMc3csIGFk
ZHIpCisgICAgIyBNaWdodCBiZSB1bmFsaWduZWQsIHNvIGNhbid0IHVzZSBzdG9yZTJpYQorICAg
IHN0b3JlaSBzcmNMc3csIExzd09mZnNldFthZGRyXQorICAgIHN0b3JlaSBzcmNNc3csIE1zd09m
ZnNldFthZGRyXQorZW5kKQorCit3YXNtT3AocmVmX2lzX251bGwsIFdhc21SZWZJc051bGwsIG1h
Y3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yZWYsIHQxLCB0MCkgIyB0MCBpcyB1bnVzZWQK
KyAgICBjaWVxIHQxLCBOdWxsVGFnLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKwor
d2FzbU9wKGdldF9nbG9iYWwsIFdhc21HZXRHbG9iYWwsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBX
YXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4
LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBsb2FkMmlhIFt0MCwgdDEsIDhdLCB0MCwgdDEKKyAg
ICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKHNldF9nbG9iYWwsIFdhc21T
ZXRHbG9iYWwsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxz
W3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAg
ICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwgdDMsIHQyKQorICAgIHN0b3JlMmlhIHQyLCB0MywgW3Qw
LCB0MSwgOF0KKyAgICBkaXNwYXRjaChjdHgpCitlbmQpCisKK3dhc21PcChnZXRfZ2xvYmFsX3Bv
cnRhYmxlX2JpbmRpbmcsIFdhc21HZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkK
KyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisg
ICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBsb2FkcCBbdDAsIHQxLCA4XSwg
dDAKKyAgICBsb2FkMmlhIFt0MF0sIHQwLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQor
ZW5kKQorCit3YXNtT3Aoc2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNtU2V0R2xvYmFs
UG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1f
Z2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwg
dDEpCisgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQzLCB0MikKKyAgICBsb2FkcCBbdDAsIHQx
LCA4XSwgdDAKKyAgICBzdG9yZTJpYSB0MiwgdDMsIFt0MF0KKyAgICBkaXNwYXRjaChjdHgpCitl
bmQpCisKKyMgT3Bjb2RlcyB0aGF0IGRvbid0IGhhdmUgdGhlIGBiM29wYCBlbnRyeSBpbiB3YXNt
Lmpzb24uIFRoaXMgc2hvdWxkIGJlIGtlcHQgaW4gc3luYworCittYWNybyBjYWxsRGl2UmVtKGZu
KQoraWYgQVJNdjcKKyAgICBzdWJwIFN0YWNrQWxpZ25tZW50LCBzcAorICAgIHN0b3JlcCBQQywg
W3NwXQorICAgIGNDYWxsNChmbikKKyAgICBsb2FkcCBbc3BdLCBQQworICAgIGFkZHAgU3RhY2tB
bGlnbm1lbnQsIHNwCitlbHNlCisgICAgZXJyb3IKK2VuZAorZW5kCisKKyMgaTMyIGJpbmFyeSBv
cHMKKword2FzbU9wKGkzMl9kaXZfcywgV2FzbUkzMkRpdlMsIG1hY3JvIChjdHgpCisgICAgbWxv
YWRpKGN0eCwgbV9saHMsIGEwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCBhMSkKKworICAgIGJ0
aXogYTEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBiaW5lcSBhMSwgLTEsIC5zYWZlCisg
ICAgYmllcSBhMCwgY29uc3RleHByIElOVDMyX01JTiwgLnRocm93SW50ZWdlck92ZXJmbG93CisK
Ky5zYWZlOgorICAgIGNhbGxEaXZSZW0oX3Nsb3dfcGF0aF93YXNtX2kzMl9kaXZfcykKKyAgICBy
ZXR1cm5pKGN0eCwgcjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0
aW9uKERpdmlzaW9uQnlaZXJvKQorCisudGhyb3dJbnRlZ2VyT3ZlcmZsb3c6CisgICAgdGhyb3dF
eGNlcHRpb24oSW50ZWdlck92ZXJmbG93KQorZW5kKQorCit3YXNtT3AoaTMyX2Rpdl91LCBXYXNt
STMyRGl2VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgYTApCisgICAgbWxv
YWRpKGN0eCwgbV9yaHMsIGExKQorCisgICAgYnRpeiBhMSwgLnRocm93RGl2aXNpb25CeVplcm8K
KworICAgIGNhbGxEaXZSZW0oX3Nsb3dfcGF0aF93YXNtX2kzMl9kaXZfdSkKKyAgICByZXR1cm5p
KGN0eCwgcjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERp
dmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTMyX3JlbV9zLCBXYXNtSTMyUmVtUywgbWFj
cm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgYTApCisgICAgbWxvYWRpKGN0eCwgbV9y
aHMsIGExKQorCisgICAgYnRpeiBhMSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGJpbmVx
IGExLCAtMSwgLnNhZmUKKyAgICBiaW5lcSBhMCwgY29uc3RleHByIElOVDMyX01JTiwgLnNhZmUK
KworICAgIG1vdmUgMCwgcjAKKyAgICBqbXAgLnJldHVybgorCisuc2FmZToKKyAgICBjYWxsRGl2
UmVtKF9zbG93X3BhdGhfd2FzbV9pMzJfcmVtX3MpCisKKy5yZXR1cm46CisgICAgcmV0dXJuaShj
dHgsIHIwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZp
c2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGkzMl9yZW1fdSwgV2FzbUkzMlJlbVUsIG1hY3Jv
IChjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9saHMsIGEwKQorICAgIG1sb2FkaShjdHgsIG1fcmhz
LCBhMSkKKworICAgIGJ0aXogYTEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBjYWxsRGl2
UmVtKF9zbG93X3BhdGhfd2FzbV9pMzJfcmVtX3UpCisgICAgcmV0dXJuaShjdHgsIHIwKQorCisu
dGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykK
K2VuZCkKKworIyBpNjQgYmluYXJ5IG9wcworCit3YXNtT3AoaTY0X2FkZCwgV2FzbUk2NEFkZCwg
bWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmko
Y3R4LCBtX3JocywgdDMsIHQyKQorICAgIGFkZGlzIHQyLCB0MAorICAgIGFkY2kgIHQzLCB0MQor
ICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3N1YiwgV2FzbUk2
NFN1YiwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1s
b2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIHN1YmlzIHQyLCB0MAorICAgIHNiY2kgIHQz
LCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X211bCwg
V2FzbUk2NE11bCwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQor
ICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG11bGkgdDIsIHQxCisgICAgbXVs
aSB0MCwgdDMKKyAgICB1bXVsbGkgdDAsIHQyLCB0MCwgdDIKKyAgICBhZGRpIHQxLCB0MgorICAg
IGFkZGkgdDMsIHQyCisgICAgcmV0dXJuMmkoY3R4LCB0MiwgdDApCitlbmQpCisKK3dhc21PcChp
NjRfZGl2X3MsIFdhc21JNjREaXZTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xo
cywgYTEsIGEwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgYTMsIGEyKQorCisgICAgYnRpbnog
YTMsIC5ub25aZXJvRGl2aXNvcgorICAgIGJ0aXogYTIsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisK
Ky5ub25aZXJvRGl2aXNvcjoKKyAgICBiaW5lcSBhMywgLTEsIC5zYWZlCisgICAgYmluZXEgYTIs
IC0xLCAuc2FmZQorICAgIGJpbmVxIGExLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAuc2FmZQorICAg
IGJ0aXogYTAsIC50aHJvd0ludGVnZXJPdmVyZmxvdworCisuc2FmZToKKyAgICBjYWxsRGl2UmVt
KF9zbG93X3BhdGhfd2FzbV9pNjRfZGl2X3MpCisgICAgcmV0dXJuMmkoY3R4LCByMSwgcjApCisK
Ky50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJv
KQorCisudGhyb3dJbnRlZ2VyT3ZlcmZsb3c6CisgICAgdGhyb3dFeGNlcHRpb24oSW50ZWdlck92
ZXJmbG93KQorZW5kKQorCit3YXNtT3AoaTY0X2Rpdl91LCBXYXNtSTY0RGl2VSwgbWFjcm8gKGN0
eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIGExLCBhMCkKKyAgICBtbG9hZDJpKGN0eCwgbV9y
aHMsIGEzLCBhMikKKworICAgIGJ0aW56IGEzLCAubm9uWmVyb0Rpdmlzb3IKKyAgICBidGl6IGEy
LCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisubm9uWmVyb0Rpdmlzb3I6CisgICAgY2FsbERpdlJl
bShfc2xvd19wYXRoX3dhc21faTY0X2Rpdl91KQorICAgIHJldHVybjJpKGN0eCwgcjEsIHIwKQor
CisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVy
bykKK2VuZCkKKword2FzbU9wKGk2NF9yZW1fcywgV2FzbUk2NFJlbVMsIG1hY3JvIChjdHgpCisg
ICAgbWxvYWQyaShjdHgsIG1fbGhzLCBhMSwgYTApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCBh
MywgYTIpCisKKyAgICBidGlueiBhMywgLm5vblplcm9EaXZpc29yCisgICAgYnRpeiBhMiwgLnRo
cm93RGl2aXNpb25CeVplcm8KKworLm5vblplcm9EaXZpc29yOgorICAgIGJpbmVxIGEzLCAtMSwg
LnNhZmUKKyAgICBiaW5lcSBhMiwgLTEsIC5zYWZlCisgICAgYmluZXEgYTEsIGNvbnN0ZXhwciBJ
TlQzMl9NSU4sIC5zYWZlCisgICAgYnRpbnogYTAsIC5zYWZlCisKKyAgICBtb3ZlIDAsIHIxCisg
ICAgbW92ZSAwLCByMAorICAgIGptcCAucmV0dXJuCisKKy5zYWZlOgorICAgIGNhbGxEaXZSZW0o
X3Nsb3dfcGF0aF93YXNtX2k2NF9yZW1fcykKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgs
IHIxLCByMCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2
aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpNjRfcmVtX3UsIFdhc21JNjRSZW1VLCBtYWNy
byAoY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgYTEsIGEwKQorICAgIG1sb2FkMmkoY3R4
LCBtX3JocywgYTMsIGEyKQorCisgICAgYnRpbnogYTMsIC5ub25aZXJvRGl2aXNvcgorICAgIGJ0
aXogYTIsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKy5ub25aZXJvRGl2aXNvcjoKKyAgICBjYWxs
RGl2UmVtKF9zbG93X3BhdGhfd2FzbV9pNjRfcmVtX3UpCisgICAgcmV0dXJuMmkoY3R4LCByMSwg
cjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9u
QnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTY0X2FuZCwgV2FzbUk2NEFuZCwgbWFjcm8oY3R4KQor
ICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3Jocywg
dDMsIHQyKQorICAgIGFuZGkgdDIsIHQwCisgICAgYW5kaSB0MywgdDEKKyAgICByZXR1cm4yaShj
dHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9vciwgV2FzbUk2NE9yLCBtYWNybyhjdHgp
CisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhz
LCB0MywgdDIpCisgICAgb3JpIHQyLCB0MAorICAgIG9yaSB0MywgdDEKKyAgICByZXR1cm4yaShj
dHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF94b3IsIFdhc21JNjRYb3IsIG1hY3JvKGN0
eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9y
aHMsIHQzLCB0MikKKyAgICB4b3JpIHQyLCB0MAorICAgIHhvcmkgdDMsIHQxCisgICAgcmV0dXJu
MmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfc2hsLCBXYXNtSTY0U2hsLCBtYWNy
byhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWRpKGN0eCwg
bV9yaHMsIHQyKQorCisgICAgYW5kaSAweDNmLCB0MgorICAgIGJ0aXogdDIsIC5yZXR1cm4KKyAg
ICBiaWIgdDIsIDMyLCAubGVzc1RoYW4zMgorCisgICAgc3ViaSAzMiwgdDIKKyAgICBsc2hpZnRp
IHQwLCB0MiwgdDEKKyAgICBtb3ZlIDAsIHQwCisgICAgam1wIC5yZXR1cm4KKworLmxlc3NUaGFu
MzI6CisgICAgbHNoaWZ0aSB0MiwgdDEKKyAgICBtb3ZlIDMyLCB0MworICAgIHN1YmkgdDIsIHQz
CisgICAgdXJzaGlmdGkgdDAsIHQzLCB0MworICAgIG9yaSB0MywgdDEKKyAgICBsc2hpZnRpIHQy
LCB0MAorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNt
T3AoaTY0X3Nocl91LCBXYXNtSTY0U2hyVSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBt
X2xocywgdDEsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MikKKworICAgIGFuZGkgMHgz
ZiwgdDIKKyAgICBidGl6IHQyLCAucmV0dXJuCisgICAgYmliIHQyLCAzMiwgLmxlc3NUaGFuMzIK
KworICAgIHN1YmkgMzIsIHQyCisgICAgdXJzaGlmdGkgdDEsIHQyLCB0MAorICAgIG1vdmUgMCwg
dDEKKyAgICBqbXAgLnJldHVybgorCisubGVzc1RoYW4zMjoKKyAgICB1cnNoaWZ0aSB0MiwgdDAK
KyAgICBtb3ZlIDMyLCB0MworICAgIHN1YmkgdDIsIHQzCisgICAgbHNoaWZ0aSB0MSwgdDMsIHQz
CisgICAgb3JpIHQzLCB0MAorICAgIHVyc2hpZnRpIHQyLCB0MQorCisucmV0dXJuOgorICAgIHJl
dHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3Nocl9zLCBXYXNtSTY0U2hy
UywgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2Fk
aShjdHgsIG1fcmhzLCB0MikKKworICAgIGFuZGkgMHgzZiwgdDIKKyAgICBidGl6IHQyLCAucmV0
dXJuCisgICAgYmliIHQyLCAzMiwgLmxlc3NUaGFuMzIKKworICAgIHN1YmkgMzIsIHQyCisgICAg
cnNoaWZ0aSB0MSwgdDIsIHQwCisgICAgcnNoaWZ0aSAzMSwgdDEKKyAgICBqbXAgLnJldHVybgor
CisubGVzc1RoYW4zMjoKKyAgICB1cnNoaWZ0aSB0MiwgdDAKKyAgICBtb3ZlIDMyLCB0MworICAg
IHN1YmkgdDIsIHQzCisgICAgbHNoaWZ0aSB0MSwgdDMsIHQzCisgICAgb3JpIHQzLCB0MAorICAg
IHJzaGlmdGkgdDIsIHQxCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitl
bmQpCisKK3dhc21PcChpNjRfcm90ciwgV2FzbUk2NFJvdHIsIG1hY3JvKGN0eCkKKyAgICBtbG9h
ZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDIpCisKKyAg
ICBhbmRpIHQyLCAweDIwLCB0MworICAgIGJ0aXogdDMsIC5ub1N3YXAKKworICAgIG1vdmUgdDAs
IHQzCisgICAgbW92ZSB0MSwgdDAKKyAgICBtb3ZlIHQzLCB0MQorCisubm9Td2FwOgorICAgIGFu
ZGkgMHgxZiwgdDIKKyAgICBidGl6IHQyLCAucmV0dXJuCisKKyAgICBtb3ZlIDMyLCB0NQorICAg
IHN1YmkgdDIsIHQ1CisgICAgbHNoaWZ0aSB0MCwgdDUsIHQzCisgICAgbHNoaWZ0aSB0MSwgdDUs
IHQ1CisgICAgdXJzaGlmdGkgdDIsIHQwCisgICAgdXJzaGlmdGkgdDIsIHQxCisgICAgb3JpIHQ1
LCB0MAorICAgIG9yaSB0MywgdDEKKworLnJldHVybjoKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0
MCkKK2VuZCkKKword2FzbU9wKGk2NF9yb3RsLCBXYXNtSTY0Um90bCwgbWFjcm8oY3R4KQorICAg
IG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MikK
KworICAgIGFuZGkgdDIsIDB4MjAsIHQzCisgICAgYnRpeiB0MywgLm5vU3dhcAorCisgICAgbW92
ZSB0MCwgdDMKKyAgICBtb3ZlIHQxLCB0MAorICAgIG1vdmUgdDMsIHQxCisKKy5ub1N3YXA6Cisg
ICAgYW5kaSAweDFmLCB0MgorICAgIGJ0aXogdDIsIC5yZXR1cm4KKworICAgIG1vdmUgMzIsIHQ1
CisgICAgc3ViaSB0MiwgdDUKKyAgICB1cnNoaWZ0aSB0MCwgdDUsIHQzCisgICAgdXJzaGlmdGkg
dDEsIHQ1LCB0NQorICAgIGxzaGlmdGkgdDIsIHQwCisgICAgbHNoaWZ0aSB0MiwgdDEKKyAgICBv
cmkgdDUsIHQwCisgICAgb3JpIHQzLCB0MQorCisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwg
dDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X2VxLCBXYXNtSTY0RXEsIG1hY3JvKGN0eCkKKyAg
ICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQz
LCB0MikKKyAgICBtb3ZlIDAsIHQ2CisgICAgYmluZXEgdDEsIHQzLCAucmV0dXJuCisgICAgY2ll
cSB0MCwgdDIsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2Fz
bU9wKGk2NF9uZSwgV2FzbUk2NE5lLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhz
LCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0
NgorICAgIGJpbmVxIHQxLCB0MywgLnJldHVybgorICAgIGNpbmVxIHQwLCB0MiwgdDYKKy5yZXR1
cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2x0X3MsIFdhc21J
NjRMdFMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBt
bG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlsdCB0MSwg
dDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAg
ICBjaWIgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShj
dHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2xlX3MsIFdhc21JNjRMZVMsIG1hY3JvKGN0eCkK
KyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMs
IHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlsdCB0MSwgdDMsIC5yZXR1cm4KKyAgICBt
b3ZlIDAsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWJlcSB0MCwgdDIsIHQ2
CisgICAgYW5kaSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisK
K3dhc21PcChpNjRfbHRfdSwgV2FzbUk2NEx0VSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4
LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1v
dmUgMSwgdDYKKyAgICBiaWIgdDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJp
YSB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWIgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5y
ZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2xlX3UsIFdh
c21JNjRMZVUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAg
ICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmliIHQx
LCB0MywgLnJldHVybgorICAgIG1vdmUgMCwgdDYKKyAgICBiaWEgdDEsIHQzLCAucmV0dXJuCisg
ICAgY2liZXEgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJu
aShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2d0X3MsIFdhc21JNjRHdFMsIG1hY3JvKGN0
eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9y
aHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAg
ICBtb3ZlIDAsIHQ2CisgICAgYmlsdCB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWEgdDAsIHQyLCB0
NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5kKQor
Cit3YXNtT3AoaTY0X2dlX3MsIFdhc21JNjRHZVMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0
eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBt
b3ZlIDEsIHQ2CisgICAgYmlndCB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAg
YmlsdCB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWFlcSB0MCwgdDIsIHQ2CisgICAgYW5kaSAxLCB0
NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRfZ3Rf
dSwgV2FzbUk2NEd0VSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQw
KQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYKKyAgICBi
aWEgdDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0NgorICAgIGJpYiB0MSwgdDMsIC5yZXR1
cm4KKyAgICBjaWEgdDAsIHQyLCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0
dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X2dlX3UsIFdhc21JNjRHZVUsIG1hY3Jv
KGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwg
bV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDAsIHQ2CisgICAgYmliIHQxLCB0MywgLnJldHVybgor
ICAgIG1vdmUgMSwgdDYKKyAgICBiaWEgdDEsIHQzLCAucmV0dXJuCisgICAgY2lhZXEgdDAsIHQy
LCB0NgorICAgIGFuZGkgMSwgdDYKKy5yZXR1cm46CisgICAgcmV0dXJuaShjdHgsIHQ2KQorZW5k
KQorCisjIGk2NCB1bmFyeSBvcHMKKword2FzbU9wKGk2NF9jdHosIFdhc21JNjRDdHosIG1hY3Jv
IChjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fb3BlcmFuZCwgdDEsIHQwKQorICAgIGJ0aXogdDAs
IC50b3AKKworICAgIHR6Y250aSB0MCwgdDAKKyAgICBqbXAgLnJldHVybgorCisudG9wOgorICAg
IHR6Y250aSB0MSwgdDAKKyAgICBhZGRpIDMyLCB0MAorCisucmV0dXJuOgorICAgIHJldHVybjJp
KGN0eCwgMCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfY2x6LCBXYXNtSTY0Q2x6LCBtYWNybyhj
dHgpCisgICAgbWxvYWQyaShjdHgsIG1fb3BlcmFuZCwgdDEsIHQwKQorICAgIGJ0aXogdDEsIC5i
b3R0b20KKworICAgIGx6Y250aSB0MSwgdDAKKyAgICBqbXAgLnJldHVybgorCisuYm90dG9tOgor
ICAgIGx6Y250aSB0MCwgdDAKKyAgICBhZGRpIDMyLCB0MAorCisucmV0dXJuOgorICAgIHJldHVy
bjJpKGN0eCwgMCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfcG9wY250LCBXYXNtSTY0UG9wY250
LCBtYWNybyAoY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIGEzLCBhMikKKyAgICBw
cmVwYXJlU3RhdGVGb3JDQ2FsbCgpCisgICAgbW92ZSBQQywgYTAKKyAgICBjQ2FsbDIoX3Nsb3df
cGF0aF93YXNtX3BvcGNvdW50bGwpCisgICAgcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCisgICAg
cmV0dXJuMmkoY3R4LCAwLCByMSkKK2VuZCkKKword2FzbU9wKGk2NF9lcXosIFdhc21JNjRFcXos
IG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9vcGVyYW5kLCB0MSwgdDApCisgICAgbW92
ZSAwLCB0MgorICAgIGJ0aW56IHQxLCAucmV0dXJuCisgICAgY2llcSB0MCwgMCwgdDIKKy5yZXR1
cm46CisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCisjIGY2NCBiaW5hcnkgb3BzCisKK3dh
c21PcChmNjRfY29weXNpZ24sIFdhc21GNjRDb3B5c2lnbiwgbWFjcm8oY3R4KQorICAgIG1sb2Fk
MmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKSAj
IHQyIHVudXNlZAorCisgICAgYW5kaSAweDdmZmZmZmZmLCB0MQorICAgIGFuZGkgMHg4MDAwMDAw
MCwgdDMKKyAgICBvcmkgdDMsIHQxCisKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkK
KworIyBUeXBlIGNvbnZlcnNpb24gb3BzCisKK3dhc21PcChpNjRfZXh0ZW5kX3NfaTMyLCBXYXNt
STY0RXh0ZW5kU0kzMiwgbWFjcm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDAp
CisgICAgcnNoaWZ0aSB0MCwgMzEsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQp
CisKK3dhc21PcChpNjRfZXh0ZW5kX3VfaTMyLCBXYXNtSTY0RXh0ZW5kVUkzMiwgbWFjcm8oY3R4
KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgcmV0dXJuMmkoY3R4LCAwLCB0
MCkKK2VuZCkKKword2FzbU9wKGY2NF9yZWludGVycHJldF9pNjQsIFdhc21GNjRSZWludGVycHJl
dEk2NCwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX29wZXJhbmQsIHQxLCB0MCkKKyAg
ICBmaWkyZCB0MCwgdDEsIGZ0MAorICAgIHJldHVybmQoY3R4LCBmdDApCitlbmQpCisKK3dhc21P
cChpNjRfcmVpbnRlcnByZXRfZjY0LCBXYXNtSTY0UmVpbnRlcnByZXRGNjQsIG1hY3JvKGN0eCkK
KyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKyAgICBmZDJpaSBmdDAsIHQwLCB0MQor
ICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NfZjY0
LCBXYXNtSTMyVHJ1bmNTRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFu
ZCwgZnQwKQorCisgICAgbW92ZWlpIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDEsIHQwICMgSU5UMzJf
TUlOIC0gMS4wCisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwg
Lm91dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmVpaSAweDQxZTAwMDAwMDAwMDAwMDAsIHQxLCB0
MCAjIC1JTlQzMl9NSU4KKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwg
ZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVkMmlzIGZ0MCwgdDAKKyAgICBy
ZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9u
KE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfdV9mNjQsIFdhc21J
MzJUcnVuY1VGNjQsIG1hY3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDAp
CisKKyAgICBtb3ZlaWkgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MSwgdDAgIyAtMS4wCisgICAgZmlp
MmQgdDAsIHQxLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMK
KworICAgIG1vdmVpaSAweDQxZjAwMDAwMDAwMDAwMDAsIHQxLCB0MCAjIElOVDMyX01JTiAqIC0y
LjAKKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZC
b3VuZHNUcnVuYworCisgICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0
MCkKKworLm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNU
cnVuYykKK2VuZCkKKworc2xvd1dhc21PcChpNjRfdHJ1bmNfc19mMzIpCitzbG93V2FzbU9wKGk2
NF90cnVuY191X2YzMikKK3Nsb3dXYXNtT3AoaTY0X3RydW5jX3NfZjY0KQorc2xvd1dhc21PcChp
NjRfdHJ1bmNfdV9mNjQpCisKK3dhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTMyVHJ1
bmNTYXRGNjRTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQor
CisgICAgbW92ZWlpIDB4YzFlMDAwMDAwMDIwMDAwMCwgdDEsIHQwICMgSU5UMzJfTUlOIC0gMS4w
CisgICAgZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91
bmRzVHJ1bmNTYXRNaW5Pck5hTgorCisgICAgbW92ZWlpIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDEs
IHQwICMgLUlOVDMyX01JTgorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRndGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0
MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoK
KyAgICBiZGVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorICAgIG1vdmUgMCwg
dDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAg
IG1vdmUgKGNvbnN0ZXhwciBJTlQzMl9NQVgpLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKwor
Lm91dE9mQm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAoY29uc3RleHByIElOVDMyX01JTiks
IHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NhdF9m
NjRfdSwgV2FzbUkzMlRydW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBt
X29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmVpaSAweGJmZjAwMDAwMDAwMDAwMDAsIHQxLCB0MCAj
IC0xLjAKKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0
T2ZCb3VuZHNUcnVuY1NhdE1pbgorCisgICAgbW92ZWlpIDB4NDFmMDAwMDAwMDAwMDAwMCwgdDEs
IHQwICMgSU5UMzJfTUlOICogLTIuMAorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisgICAgYmRndGVx
dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQyaSBm
dDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoK
KyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDMyX01BWCksIHQwCisgICAgcmV0dXJu
aShjdHgsIHQwKQorZW5kKQorCitzbG93V2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3MpCitzbG93
V2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3UpCitzbG93V2FzbU9wKGk2NF90cnVuY19zYXRfZjY0
X3MpCitzbG93V2FzbU9wKGk2NF90cnVuY19zYXRfZjY0X3UpCisKKyMgRXh0ZW5kIG9wcworCit3
YXNtT3AoaTY0X2V4dGVuZDhfcywgV2FzbUk2NEV4dGVuZDhTLCBtYWNybyhjdHgpCisgICAgbWxv
YWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBzeGIyaSB0MCwgdDAKKyAgICByc2hpZnRpIHQw
LCAzMSwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9l
eHRlbmQxNl9zLCBXYXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwg
bV9vcGVyYW5kLCB0MCkKKyAgICBzeGgyaSB0MCwgdDAKKyAgICByc2hpZnRpIHQwLCAzMSwgdDEK
KyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9leHRlbmQzMl9z
LCBXYXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5k
LCB0MCkKKyAgICByc2hpZnRpIHQwLCAzMSwgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkK
K2VuZCkKKworIyBBdG9taWNzCisKK21hY3JvIHdhc21BdG9taWNCaW5hcnlSTVdPcHMobG93ZXJD
YXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmksIGZuMmkpCisgICAgd2Fz
bU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4
JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9p
bnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9h
ZGkoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJB
ZGRpbmdPZmZzZXQodDMsIHQ1LCAxKQorICAgICAgICBmbmIodDAsIFt0M10sIHQyLCB0NSwgdDYp
CisgICAgICAgIGFuZGkgMHhmZiwgdDYgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0CisgICAgICAg
IGFzc2VydChtYWNybyhvaykgYmliZXEgdDYsIDB4ZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVy
bjJpKGN0eCwgMCwgdDYpCisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzE2JWxv
d2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBt
YWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdn
ZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3ZhbHVlLCB0MCkK
KyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25t
ZW50Q2hlY2sodDMsIHQ1LCAyKQorICAgICAgICBmbmgodDAsIFt0M10sIHQyLCB0NSwgdDYpCisg
ICAgICAgIGFuZGkgMHhmZmZmLCB0NiAjIEZJWE1FOiBaZXJvRXh0ZW5kMTZUbzY0CisgICAgICAg
IGFzc2VydChtYWNybyhvaykgYmliZXEgdDYsIDB4ZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0
dXJuMmkoY3R4LCAwLCB0NikKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MzIl
bG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MzIldXBwZXJDYXNlT3Bjb2RlJVUs
IG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAg
d2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkaShjdHgsIG1fdmFsdWUsIHQw
KQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGln
bm1lbnRDaGVjayh0MywgdDUsIDQpCisgICAgICAgIGZuaSh0MCwgW3QzXSwgdDIsIHQ1LCB0NikK
KyAgICAgICAgcmV0dXJuMmkoY3R4LCAwLCB0NikKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9h
dG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21JNjRBdG9taWNSbXcldXBwZXJDYXNlT3Bj
b2RlJSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAg
ICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fdmFs
dWUsIHQxLCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZz
ZXRXaXRoQWxpZ25tZW50Q2hlY2sodDMsIHQ1LCA4KQorICAgICAgICBwdXNoIHQ0ICMgVGhpcyBp
cyB0aGUgUEIsIHNvIG5lZWQgdG8gYmUgc2F2ZWQgYW5kIHJlc3RvcmVkCisgICAgICAgIGZuMmko
dDEsIHQwLCBbdDNdLCB0NCwgdDUsIHQ3LCB0MiwgdDYpCisgICAgICAgIHBvcCB0NAorICAgICAg
ICByZXR1cm4yaShjdHgsIHQyLCB0NikKKyAgICBlbmQpCitlbmQKKworbWFjcm8gd2FzbUF0b21p
Y0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2Rl
LCBmbmksIGZuMmkpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhsb3dlckNhc2VPcGNvZGUs
IHVwcGVyQ2FzZU9wY29kZSwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0NkdQUikKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAgLmxvb3A6CisgICAg
ICAgICAgICAgICAgbG9hZGxpbmtiIG1lbSwgdDZHUFIKKyAgICAgICAgICAgICAgICBmbmkodDBH
UFIsIHQ2R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmRiIHQ1R1BSLCB0MkdQ
UiwgbWVtCisgICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAg
ICAgICAgZmVuY2UKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQ
UiwgdDVHUFIsIHQ2R1BSKQorICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgICAgICAubG9v
cDoKKyAgICAgICAgICAgICAgICBsb2FkbGlua2ggbWVtLCB0NkdQUgorICAgICAgICAgICAgICAg
IGZuaSh0MEdQUiwgdDZHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29uZGggdDVH
UFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAg
ICAgICAgICAgICAgICBmZW5jZQorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDZHUFIpCisgICAgICAgICAgICAgICAgZmVuY2UKKyAgICAgICAg
ICAgIC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5raSBtZW0sIHQ2R1BSCisgICAgICAg
ICAgICAgICAgZm5pKHQwR1BSLCB0NkdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgc3RvcmVj
b25kaSB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAu
bG9vcAorICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8o
dDFHUFIsIHQwR1BSLCBtZW0sIHQ0R1BSLCB0NUdQUiwgdDdHUFIsIHQyR1BSLCB0NkdQUikKKyAg
ICAgICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAg
bG9hZGxpbmsyaSBtZW0sIHQ2R1BSLCB0MkdQUgorICAgICAgICAgICAgICAgIGZuMmkodDFHUFIs
IHQwR1BSLCB0MkdQUiwgdDZHUFIsIHQ0R1BSLCB0NUdQUikKKyAgICAgICAgICAgICAgICBzdG9y
ZWNvbmQyaSB0N0dQUiwgdDVHUFIsIHQ0R1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0
N0dQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAgICBlbmQpCitlbmQK
KworaWYgQVJNdjcKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FkZCwg
QWRkLAorICAgICAgICBtYWNybyhzcmMwLCBzcmMxLCBkc3QpCisgICAgICAgICAgICBhZGRpIHNy
YzAsIHNyYzEsIGRzdAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHNyYzBNc3csIHNyYzBM
c3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0THN3KQorICAgICAgICAgICAgYWRkaXMg
c3JjMExzdywgc3JjMUxzdywgZHN0THN3CisgICAgICAgICAgICBhZGNpICBzcmMwTXN3LCBzcmMx
TXN3LCBkc3RNc3cKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRo
V2Vha0NBUyhfc3ViLCBTdWIsCisgICAgICAgIG1hY3JvKHNyYzAsIHNyYzEsIGRzdCkKKyAgICAg
ICAgICAgIHN1Ymkgc3JjMSwgc3JjMCwgZHN0CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8o
c3JjME1zdywgc3JjMExzdywgc3JjMU1zdywgc3JjMUxzdywgZHN0TXN3LCBkc3RMc3cpCisgICAg
ICAgICAgICBzdWJpcyBzcmMxTHN3LCBzcmMwTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIHNiY2kg
IHNyYzFNc3csIHNyYzBNc3csIGRzdE1zdworICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0Jp
bmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94Y2hnLCBYY2hnLAorICAgICAgICBtYWNybyhzcmMwLCBz
cmMxLCBkc3QpCisgICAgICAgICAgICBtb3ZlIHNyYzAsIGRzdAorICAgICAgICBlbmQsCisgICAg
ICAgIG1hY3JvKHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0
THN3KQorICAgICAgICAgICAgbW92ZSBzcmMwTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIG1vdmUg
c3JjME1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3Bz
V2l0aFdlYWtDQVMoX2FuZCwgQW5kLAorICAgICAgICBtYWNybyhzcmMwLCBzcmMxLCBkc3QpCisg
ICAgICAgICAgICBhbmRpIHNyYzAsIHNyYzEsIGRzdAorICAgICAgICBlbmQsCisgICAgICAgIG1h
Y3JvKHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0THN3KQor
ICAgICAgICAgICAgYW5kaSBzcmMwTHN3LCBzcmMxTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIGFu
ZGkgc3JjME1zdywgc3JjMU1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWlj
QmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX29yLCBPciwKKyAgICAgICAgbWFjcm8oc3JjMCwgc3Jj
MSwgZHN0KQorICAgICAgICAgICAgb3JpIHNyYzAsIHNyYzEsIGRzdAorICAgICAgICBlbmQsCisg
ICAgICAgIG1hY3JvKHNyYzBNc3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywg
ZHN0THN3KQorICAgICAgICAgICAgb3JpIHNyYzBMc3csIHNyYzFMc3csIGRzdExzdworICAgICAg
ICAgICAgb3JpIHNyYzBNc3csIHNyYzFNc3csIGRzdE1zdworICAgICAgICBlbmQpCisgICAgd2Fz
bUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwKKyAgICAgICAgbWFjcm8o
c3JjMCwgc3JjMSwgZHN0KQorICAgICAgICAgICAgeG9yaSBzcmMwLCBzcmMxLCBkc3QKKyAgICAg
ICAgZW5kLAorICAgICAgICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3LCBzcmMxTXN3LCBzcmMxTHN3
LCBkc3RNc3csIGRzdExzdykKKyAgICAgICAgICAgIHhvcmkgc3JjMExzdywgc3JjMUxzdywgZHN0
THN3CisgICAgICAgICAgICB4b3JpIHNyYzBNc3csIHNyYzFNc3csIGRzdE1zdworICAgICAgICBl
bmQpCitlbmQKKworbWFjcm8gd2FzbUF0b21pY0NvbXBhcmVFeGNoYW5nZU9wcyhsb3dlckNhc2VP
cGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwgZm5iLCBmbmgsIGZuaSwgZm4yaSkKKyAgICB3YXNtT3Ao
aTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzgldXBw
ZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVy
LCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkMmko
Y3R4LCBtX2V4cGVjdGVkLCB0MSwgdDApCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVlLCB0
NiwgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0KHQz
LCB0NSwgMSkKKyAgICAgICAgZm5iKHQxLCB0MCwgdDYsIHQyLCBbdDNdLCB0NywgdDUpCisgICAg
ICAgIGFuZGkgMHhmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0CisgICAgICAgIGFzc2Vy
dChtYWNybyhvaykgYmliZXEgdDAsIDB4ZmYsIC5vayBlbmQpCisgICAgICAgIGFzc2VydChtYWNy
byhvaykgYmllcSB0MSwgMCwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDAp
CisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9wY29kZSVf
dSwgV2FzbUk2NEF0b21pY1JtdzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAg
ICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZz
ZXQsIHQ1KQorICAgICAgICBtbG9hZDJpKGN0eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAg
ICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwgdDYsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVw
YXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0MywgdDUsIDIpCisgICAg
ICAgIGZuaCh0MSwgdDAsIHQ2LCB0MiwgW3QzXSwgdDcsIHQ1KQorICAgICAgICBhbmRpIDB4ZmZm
ZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDE2VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2sp
IGJpYmVxIHQwLCAweGZmZmYsIC5vayBlbmQpCisgICAgICAgIGFzc2VydChtYWNybyhvaykgYmll
cSB0MSwgMCwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCisgICAgZW5k
KQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2
NEF0b21pY1JtdzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2Fk
aShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQor
ICAgICAgICBtbG9hZDJpKGN0eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAgICBtbG9hZDJp
KGN0eCwgbV92YWx1ZSwgdDYsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRl
ckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0MywgdDUsIDgpCisgICAgICAgIGZuaSh0
MSwgdDAsIHQ2LCB0MiwgW3QzXSwgdDcsIHQ1KQorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJp
ZXEgdDEsIDAsIC5vayBlbmQpCisgICAgICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorICAgIGVu
ZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0
b21pY1JtdyV1cHBlckNhc2VPcGNvZGUlLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgs
IG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1KQorICAgICAg
ICBtbG9hZDJpKGN0eCwgbV9leHBlY3RlZCwgdDEsIHQwKQorICAgICAgICBtbG9hZDJpKGN0eCwg
bV92YWx1ZSwgdDYsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGlu
Z09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0MywgdDUsIDgpCisgICAgICAgIHB1c2ggdDQgIyBU
aGlzIGlzIHRoZSBQQiwgc28gbmVlZCB0byBiZSBzYXZlZCBhbmQgcmVzdG9yZWQKKyAgICAgICAg
Zm4yaSh0MSwgdDAsIHQ2LCB0MiwgW3QzXSwgdDcsIHQ1LCB0NCkKKyAgICAgICAgcG9wIHQ0Cisg
ICAgICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorICAgIGVuZCkKK2VuZAorCitpZiBBUk12Nwor
Ly8gZXhwOiAiZXhwZWN0ZWQiLCB2YWw6ICJ2YWx1ZSIsIHJlczogInJlc3VsdCIKK3dhc21BdG9t
aWNDb21wYXJlRXhjaGFuZ2VPcHMoX2NtcHhjaGcsIENtcHhjaGcsCisgICAgbWFjcm8oZXhwTXN3
LCBleHBMc3csIHZhbE1zdywgdmFsTHN3LCBtZW0sIHNjcmF0Y2gsIHJlc0xzdykKKyAgICAgICAg
ICAgIGZlbmNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZGxpbmtiIG1lbSwgcmVz
THN3CisgICAgICAgICAgICBiaW5lcSBleHBMc3csIHJlc0xzdywgLmZhaWwKKyAgICAgICAgICAg
IGJpbmVxIGV4cE1zdywgMCwgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZGIgc2NyYXRjaCwg
dmFsTHN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAg
ICAgIGptcCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZGIgc2Ny
YXRjaCwgcmVzTHN3LCBtZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAg
ICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIGZlbmNlCisg
ICAgICAgICAgICBtb3ZlIHJlc0xzdywgZXhwTHN3CisgICAgICAgICAgICBtb3ZlIDAsIGV4cE1z
dworICAgIGVuZCwKKyAgICBtYWNybyhleHBNc3csIGV4cExzdywgdmFsTXN3LCB2YWxMc3csIG1l
bSwgc2NyYXRjaCwgcmVzTHN3KQorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgLmxvb3A6Cisg
ICAgICAgICAgICBsb2FkbGlua2ggbWVtLCByZXNMc3cKKyAgICAgICAgICAgIGJpbmVxIGV4cExz
dywgcmVzTHN3LCAuZmFpbAorICAgICAgICAgICAgYmluZXEgZXhwTXN3LCAwLCAuZmFpbAorICAg
ICAgICAgICAgc3RvcmVjb25kaCBzY3JhdGNoLCB2YWxMc3csIG1lbQorICAgICAgICAgICAgYmll
cSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWls
OgorICAgICAgICAgICAgc3RvcmVjb25kaCBzY3JhdGNoLCByZXNMc3csIG1lbQorICAgICAgICAg
ICAgYmllcSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAg
IC5kb25lOgorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIG1vdmUgcmVzTHN3LCBleHBM
c3cKKyAgICAgICAgICAgIG1vdmUgMCwgZXhwTXN3CisgICAgZW5kLAorICAgIG1hY3JvKGV4cE1z
dywgZXhwTHN3LCB2YWxNc3csIHZhbExzdywgbWVtLCBzY3JhdGNoLCByZXNMc3cpCisgICAgICAg
ICAgICBmZW5jZQorICAgICAgICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5raSBtZW0sIHJl
c0xzdworICAgICAgICAgICAgYmluZXEgZXhwTHN3LCByZXNMc3csIC5mYWlsCisgICAgICAgICAg
ICBiaW5lcSBleHBNc3csIDAsIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmRpIHNjcmF0Y2gs
IHZhbExzdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAgICAg
ICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRpIHNj
cmF0Y2gsIHJlc0xzdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisg
ICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBmZW5jZQor
ICAgICAgICAgICAgbW92ZSByZXNMc3csIGV4cExzdworICAgICAgICAgICAgbW92ZSAwLCBleHBN
c3cKKyAgICBlbmQsCisgICAgbWFjcm8oZXhwTXN3LCBleHBMc3csIHZhbE1zdywgdmFsTHN3LCBt
ZW0sIHNjcmF0Y2gsIHJlc01zdywgcmVzTHN3KQorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAg
Lmxvb3A6CisgICAgICAgICAgICBsb2FkbGluazJpIG1lbSwgcmVzTHN3LCByZXNNc3cKKyAgICAg
ICAgICAgIGJpbmVxIGV4cExzdywgcmVzTHN3LCAuZmFpbAorICAgICAgICAgICAgYmluZXEgZXhw
TXN3LCByZXNNc3csIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmQyaSBzY3JhdGNoLCB2YWxM
c3csIHZhbE1zdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAg
ICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmQy
aSBzY3JhdGNoLCByZXNMc3csIHJlc01zdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gs
IDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAg
ICAgICBmZW5jZQorICAgICAgICAgICAgbW92ZSByZXNMc3csIGV4cExzdworICAgICAgICAgICAg
bW92ZSByZXNNc3csIGV4cE1zdworICAgIGVuZCkKK2VuZAorCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHk2NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvV2ViQXNzZW1ibHk2NC5hc20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwLi40NmU5ZWE0ODg1MjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHk2NC5hc20KQEAgLTAsMCArMSwxMjU5IEBACisj
IENvcHlyaWdodCAoQykgMjAxMS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMgQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIE9wY29kZXMgdGhhdCBz
aG91bGQgZXZlbnR1YWxseSBiZSBzaGFyZWQgd2l0aCBKUyBsbGludAorCit3YXNtT3AobW92LCBX
YXNtTW92LCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9zcmMsIHQwKQorICAgIHJldHVy
bnEoY3R4LCB0MCkKK2VuZCkKKworIyBXYXNtIHNwZWNpZmljIGJ5dGVjb2RlcworCittYWNybyBl
bWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKKyAg
ICBsZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNldF0sIHQ1CisgICAgYnBiIHQ1LCBib3VuZHND
aGVja2luZ1NpemUsIC5jb250aW51YXRpb24KKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5k
c01lbW9yeUFjY2VzcykKKy5jb250aW51YXRpb246CisgICAgYWRkcCBtZW1vcnlCYXNlLCBwb2lu
dGVyCitlbmQKKworbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQo
Y3R4LCBwb2ludGVyLCBvZmZzZXQsIHNpemUpCisgICAgbGVhcCBzaXplIC0gMVtwb2ludGVyLCBv
ZmZzZXRdLCB0NQorICAgIGJwYiB0NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29udGludWF0aW9u
CisudGhyb3c6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCisu
Y29udGludWF0aW9uOgorICAgIGFkZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgorICAgIGFkZHAgb2Zm
c2V0LCBwb2ludGVyCitlbmQKKworbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRp
bmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCBwb2ludGVyLCBvZmZzZXQsIHNpemUpCisg
ICAgbGVhcCBzaXplIC0gMVtwb2ludGVyLCBvZmZzZXRdLCB0NQorICAgIGJwYiB0NSwgYm91bmRz
Q2hlY2tpbmdTaXplLCAuY29udGludWF0aW9uCisudGhyb3c6CisgICAgdGhyb3dFeGNlcHRpb24o
T3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCisuY29udGludWF0aW9uOgorICAgIGFkZHAgbWVtb3J5
QmFzZSwgcG9pbnRlcgorICAgIGFkZHAgb2Zmc2V0LCBwb2ludGVyCisgICAgYnRwbnogcG9pbnRl
ciwgKHNpemUgLSAxKSwgLnRocm93CitlbmQKKworCittYWNybyB3YXNtTG9hZE9wKG5hbWUsIHN0
cnVjdCwgc2l6ZSwgZm4pCisgICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQorICAg
ICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQwKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zm
c2V0LCB0MSkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4LCB0MCwgdDEs
IHNpemUpCisgICAgICAgIGZuKFt0MCwgdDFdLCB0MikKKyAgICAgICAgcmV0dXJucShjdHgsIHQy
KQorICAgIGVuZCkKK2VuZAorCit3YXNtTG9hZE9wKGxvYWQ4X3UsIFdhc21Mb2FkOFUsIDEsIG1h
Y3JvKG1lbSwgZHN0KSBsb2FkYiBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGxvYWQxNl91LCBX
YXNtTG9hZDE2VSwgMiwgbWFjcm8obWVtLCBkc3QpIGxvYWRoIG1lbSwgZHN0IGVuZCkKK3dhc21M
b2FkT3AobG9hZDMyX3UsIFdhc21Mb2FkMzJVLCA0LCBtYWNybyhtZW0sIGRzdCkgbG9hZGkgbWVt
LCBkc3QgZW5kKQord2FzbUxvYWRPcChsb2FkNjRfdSwgV2FzbUxvYWQ2NFUsIDgsIG1hY3JvKG1l
bSwgZHN0KSBsb2FkcSBtZW0sIGRzdCBlbmQpCisKK3dhc21Mb2FkT3AoaTMyX2xvYWQ4X3MsIFdh
c21JMzJMb2FkOFMsIDEsIG1hY3JvKG1lbSwgZHN0KSBsb2FkYnNpIG1lbSwgZHN0IGVuZCkKK3dh
c21Mb2FkT3AoaTY0X2xvYWQ4X3MsIFdhc21JNjRMb2FkOFMsIDEsIG1hY3JvKG1lbSwgZHN0KSBs
b2FkYnNxIG1lbSwgZHN0IGVuZCkKK3dhc21Mb2FkT3AoaTMyX2xvYWQxNl9zLCBXYXNtSTMyTG9h
ZDE2UywgMiwgbWFjcm8obWVtLCBkc3QpIGxvYWRoc2kgbWVtLCBkc3QgZW5kKQord2FzbUxvYWRP
cChpNjRfbG9hZDE2X3MsIFdhc21JNjRMb2FkMTZTLCAyLCBtYWNybyhtZW0sIGRzdCkgbG9hZGhz
cSBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGk2NF9sb2FkMzJfcywgV2FzbUk2NExvYWQzMlMs
IDQsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaXMgbWVtLCBkc3QgZW5kKQorCittYWNybyB3YXNtU3Rv
cmVPcChuYW1lLCBzdHJ1Y3QsIHNpemUsIGZuKQorICAgIHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1h
Y3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MCkKKyAgICAgICAgd2dl
dHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVy
KGN0eCwgdDAsIHQxLCBzaXplKQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAg
ICAgICAgZm4odDIsIFt0MCwgdDFdKQorICAgICAgICBkaXNwYXRjaChjdHgpCisgICAgZW5kKQor
ZW5kCisKK3dhc21TdG9yZU9wKHN0b3JlOCwgV2FzbVN0b3JlOCwgMSwgbWFjcm8odmFsdWUsIG1l
bSkgc3RvcmViIHZhbHVlLCBtZW0gZW5kKQord2FzbVN0b3JlT3Aoc3RvcmUxNiwgV2FzbVN0b3Jl
MTYsIDIsIG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlaCB2YWx1ZSwgbWVtIGVuZCkKK3dhc21TdG9y
ZU9wKHN0b3JlMzIsIFdhc21TdG9yZTMyLCA0LCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZWkgdmFs
dWUsIG1lbSBlbmQpCit3YXNtU3RvcmVPcChzdG9yZTY0LCBXYXNtU3RvcmU2NCwgOCwgbWFjcm8o
dmFsdWUsIG1lbSkgc3RvcmVxIHZhbHVlLCBtZW0gZW5kKQorCit3YXNtT3AocmVmX2lzX251bGws
IFdhc21SZWZJc051bGwsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHAoY3R4LCBtX3JlZiwgdDApCisg
ICAgY3FlcSB0MCwgVmFsdWVOdWxsLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKwor
d2FzbU9wKGdldF9nbG9iYWwsIFdhc21HZXRHbG9iYWwsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBX
YXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4
LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKKyAgICByZXR1
cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChzZXRfZ2xvYmFsLCBXYXNtU2V0R2xvYmFsLCBt
YWNybyhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFu
Y2VdLCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbWxvYWRxKGN0
eCwgbV92YWx1ZSwgdDIpCisgICAgc3RvcmVxIHQyLCBbdDAsIHQxLCA4XQorICAgIGRpc3BhdGNo
KGN0eCkKK2VuZCkKKword2FzbU9wKGdldF9nbG9iYWxfcG9ydGFibGVfYmluZGluZywgV2FzbUdl
dEdsb2JhbFBvcnRhYmxlQmluZGluZywgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206Okluc3Rh
bmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1fZ2xvYmFs
SW5kZXgsIHQxKQorICAgIGxvYWRxIFt0MCwgdDEsIDhdLCB0MAorICAgIGxvYWRxIFt0MF0sIHQw
CisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3Aoc2V0X2dsb2JhbF9wb3J0YWJs
ZV9iaW5kaW5nLCBXYXNtU2V0R2xvYmFsUG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCisgICAg
bG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAorICAgIHdn
ZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIp
CisgICAgbG9hZHEgW3QwLCB0MSwgOF0sIHQwCisgICAgc3RvcmVxIHQyLCBbdDBdCisgICAgZGlz
cGF0Y2goY3R4KQorZW5kKQorCisjIE9wY29kZXMgdGhhdCBkb24ndCBoYXZlIHRoZSBgYjNvcGAg
ZW50cnkgaW4gd2FzbS5qc29uLiBUaGlzIHNob3VsZCBiZSBrZXB0IGluIHN5bmMKKworIyBpMzIg
YmluYXJ5IG9wcworCit3YXNtT3AoaTMyX2Rpdl9zLCBXYXNtSTMyRGl2UywgbWFjcm8gKGN0eCkK
KyAgICBtbG9hZGkoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQor
CisgICAgYnRpeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGJpbmVxIHQxLCAtMSwg
LnNhZmUKKyAgICBiaWVxIHQwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAudGhyb3dJbnRlZ2VyT3Zl
cmZsb3cKKworLnNhZmU6CisgICAgaWYgWDg2XzY0CisgICAgICAgICMgRklYTUU6IEFkZCBhIHdh
eSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAorICAgICAgICAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKKyAgICAgICAg
Y2RxaQorICAgICAgICBpZGl2aSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVND
VjY0CisgICAgICAgIGRpdmlzIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBl
bmQKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRo
cm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorCisudGhyb3dJbnRlZ2VyT3ZlcmZsb3c6Cisg
ICAgdGhyb3dFeGNlcHRpb24oSW50ZWdlck92ZXJmbG93KQorZW5kKQorCit3YXNtT3AoaTMyX2Rp
dl91LCBXYXNtSTMyRGl2VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgdDAp
CisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRpeiB0MSwgLnRocm93RGl2aXNp
b25CeVplcm8KKworICAgIGlmIFg4Nl82NAorICAgICAgICB4b3JpIHQyLCB0MgorICAgICAgICB1
ZGl2aSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0CisgICAgICAgIGRp
dmkgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorICAgIHJldHVybmko
Y3R4LCB0MCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2
aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpMzJfcmVtX3MsIFdhc21JMzJSZW1TLCBtYWNy
byAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3Jo
cywgdDEpCisKKyAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgYmluZXEg
dDEsIC0xLCAuc2FmZQorICAgIGJpbmVxIHQwLCBjb25zdGV4cHIgSU5UMzJfTUlOLCAuc2FmZQor
CisgICAgbW92ZSAwLCB0MgorICAgIGptcCAucmV0dXJuCisKKy5zYWZlOgorICAgIGlmIFg4Nl82
NAorICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMg
cmF4IGFuZCB0MiBpcyByZHgKKyAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAzNjkyCisgICAgICAgIGNkcWkKKyAgICAgICAgaWRpdmkgdDEKKyAgICBl
bHNpZiBBUk02NCBvciBBUk02NEUKKyAgICAgICAgZGl2aXMgdDEsIHQwLCB0MgorICAgICAgICBt
dWxpIHQxLCB0MgorICAgICAgICBzdWJpIHQwLCB0MiwgdDIKKyAgICBlbHNpZiBSSVNDVjY0Cisg
ICAgICAgIHJlbWlzIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKKwor
LnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDIpCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgor
ICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTMyX3Jl
bV91LCBXYXNtSTMyUmVtVSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgdDAp
CisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQorCisgICAgYnRpeiB0MSwgLnRocm93RGl2aXNp
b25CeVplcm8KKworICAgIGlmIFg4Nl82NAorICAgICAgICB4b3JpIHQyLCB0MgorICAgICAgICB1
ZGl2aSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQorICAgICAgICBkaXZpIHQxLCB0MCwg
dDIKKyAgICAgICAgbXVsaSB0MSwgdDIKKyAgICAgICAgc3ViaSB0MCwgdDIsIHQyCisgICAgZWxz
aWYgUklTQ1Y2NAorICAgICAgICByZW1pIHQxLCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IK
KyAgICBlbmQKKyAgICByZXR1cm5pKGN0eCwgdDIpCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgor
ICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCisjIGk2NCBiaW5hcnkg
b3BzCisKK3dhc21PcChpNjRfYWRkLCBXYXNtSTY0QWRkLCBtYWNybyhjdHgpCisgICAgbWxvYWRx
KGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBhZGRxIHQw
LCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9zdWIsIFdhc21J
NjRTdWIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRx
KGN0eCwgbV9yaHMsIHQxKQorICAgIHN1YnEgdDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQor
ZW5kKQorCit3YXNtT3AoaTY0X211bCwgV2FzbUk2NE11bCwgbWFjcm8oY3R4KQorICAgIG1sb2Fk
cShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgbXVscSB0
MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfZGl2X3MsIFdh
c21JNjREaXZTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBt
bG9hZHEoY3R4LCBtX3JocywgdDEpCisKKyAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVy
bworCisgICAgYnFuZXEgdDEsIC0xLCAuc2FmZQorICAgIGJxZXEgdDAsIGNvbnN0ZXhwciBJTlQ2
NF9NSU4sIC50aHJvd0ludGVnZXJPdmVyZmxvdworCisuc2FmZToKKyAgICBpZiBYODZfNjQKKyAg
ICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBh
bmQgdDIgaXMgcmR4CisgICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMzY5MgorICAgICAgICBjcW9xCisgICAgICAgIGlkaXZxIHQxCisgICAgZWxzaWYg
QVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKKyAgICAgICAgZGl2cXMgdDEsIHQwCisgICAgZWxz
ZQorICAgICAgICBlcnJvcgorICAgIGVuZAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLnRocm93
RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCisKKy50
aHJvd0ludGVnZXJPdmVyZmxvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihJbnRlZ2VyT3ZlcmZsb3cp
CitlbmQpCisKK3dhc21PcChpNjRfZGl2X3UsIFdhc21JNjREaXZVLCBtYWNybyAoY3R4KQorICAg
IG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisKKyAg
ICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgaWYgWDg2XzY0CisgICAgICAg
IHhvcnEgdDIsIHQyCisgICAgICAgIHVkaXZxIHQxCisgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRF
IG9yIFJJU0NWNjQKKyAgICAgICAgZGl2cSB0MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVycm9y
CisgICAgZW5kCisgICAgcmV0dXJucShjdHgsIHQwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoK
KyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9wKGk2NF9y
ZW1fcywgV2FzbUk2NFJlbVMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQw
KQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0cXogdDEsIC50aHJvd0Rpdmlz
aW9uQnlaZXJvCisKKyAgICBicW5lcSB0MSwgLTEsIC5zYWZlCisgICAgYnFuZXEgdDAsIGNvbnN0
ZXhwciBJTlQ2NF9NSU4sIC5zYWZlCisKKyAgICBtb3ZlIDAsIHQyCisgICAgam1wIC5yZXR1cm4K
KworLnNhZmU6CisgICAgaWYgWDg2XzY0CisgICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBz
dGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAorICAgICAgICAjIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKKyAgICAgICAgY3FvcQor
ICAgICAgICBpZGl2cSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQorICAgICAgICBkaXZx
cyB0MSwgdDAsIHQyCisgICAgICAgIG11bHEgdDEsIHQyCisgICAgICAgIHN1YnEgdDAsIHQyLCB0
MgorICAgIGVsc2lmIFJJU0NWNjQKKyAgICAgICAgcmVtcXMgdDEsIHQwCisgICAgZWxzZQorICAg
ICAgICBlcnJvcgorICAgIGVuZAorCisucmV0dXJuOgorICAgIHJldHVybnEoY3R4LCB0MikgIyBy
ZHggaGFzIHRoZSByZW1haW5kZXIKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dF
eGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpNjRfcmVtX3UsIFdhc21J
NjRSZW1VLCBtYWNybyAoY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9h
ZHEoY3R4LCBtX3JocywgdDEpCisKKyAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwor
CisgICAgaWYgWDg2XzY0CisgICAgICAgIHhvcnEgdDIsIHQyCisgICAgICAgIHVkaXZxIHQxCisg
ICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCisgICAgICAgIGRpdnEgdDEsIHQwLCB0MgorICAgICAg
ICBtdWxxIHQxLCB0MgorICAgICAgICBzdWJxIHQwLCB0MiwgdDIKKyAgICBlbHNpZiBSSVNDVjY0
CisgICAgICAgIHJlbXEgdDEsIHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAor
ICAgIHJldHVybnEoY3R4LCB0MikKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dF
eGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpNjRfYW5kLCBXYXNtSTY0
QW5kLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShj
dHgsIG1fcmhzLCB0MSkKKyAgICBhbmRxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2Vu
ZCkKKword2FzbU9wKGk2NF9vciwgV2FzbUk2NE9yLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0
eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBvcnEgdDAsIHQx
CisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X3hvciwgV2FzbUk2NFhv
ciwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4
LCBtX3JocywgdDEpCisgICAgeG9ycSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQp
CisKK3dhc21PcChpNjRfc2hsLCBXYXNtSTY0U2hsLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0
eCwgbV9saHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKyAgICBsc2hpZnRxIHQx
LCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9zaHJfdSwgV2Fz
bUk2NFNoclUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxv
YWRpKGN0eCwgbV9yaHMsIHQxKQorICAgIHVyc2hpZnRxIHQxLCB0MAorICAgIHJldHVybnEoY3R4
LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9zaHJfcywgV2FzbUk2NFNoclMsIG1hY3JvKGN0eCkK
KyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQor
ICAgIHJzaGlmdHEgdDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3Ao
aTY0X3JvdHIsIFdhc21JNjRSb3RyLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMs
IHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKyAgICBycm90YXRlcSB0MSwgdDAKKyAg
ICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfcm90bCwgV2FzbUk2NFJvdGws
IG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwg
bV9yaHMsIHQxKQorICAgIGxyb3RhdGVxIHQxLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2Vu
ZCkKKword2FzbU9wKGk2NF9lcSwgV2FzbUk2NEVxLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0
eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWVxIHQwLCB0
MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNt
T3AoaTY0X25lLCBXYXNtSTY0TmUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywg
dDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxbmVxIHQwLCB0MSwgdDIKKyAg
ICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2x0
X3MsIFdhc21JNjRMdFMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisg
ICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxbHQgdDAsIHQxLCB0MgorICAgIGFuZGkg
MSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfbGVfcywgV2Fz
bUk2NExlUywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9h
ZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FsdGVxIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQy
CisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2x0X3UsIFdhc21JNjRM
dFUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0
eCwgbV9yaHMsIHQxKQorICAgIGNxYiB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJl
dHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9sZV91LCBXYXNtSTY0TGVVLCBtYWNy
byhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhz
LCB0MSkKKyAgICBjcWJlcSB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmko
Y3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9ndF9zLCBXYXNtSTY0R3RTLCBtYWNybyhjdHgp
CisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkK
KyAgICBjcWd0IHQwLCB0MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQy
KQorZW5kKQorCit3YXNtT3AoaTY0X2dlX3MsIFdhc21JNjRHZVMsIG1hY3JvKGN0eCkKKyAgICBt
bG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNx
Z3RlcSB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikKK2Vu
ZCkKKword2FzbU9wKGk2NF9ndF91LCBXYXNtSTY0R3RVLCBtYWNybyhjdHgpCisgICAgbWxvYWRx
KGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWEgdDAs
IHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dh
c21PcChpNjRfZ2VfdSwgV2FzbUk2NEdlVSwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1f
bGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FhZXEgdDAsIHQxLCB0
MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKKyMgaTY0IHVu
YXJ5IG9wcworCit3YXNtT3AoaTY0X2N0eiwgV2FzbUk2NEN0eiwgbWFjcm8gKGN0eCkKKyAgICBt
bG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHR6Y250cSB0MCwgdDAKKyAgICByZXR1cm5x
KGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfY2x6LCBXYXNtSTY0Q2x6LCBtYWNybyhjdHgp
CisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBsemNudHEgdDAsIHQxCisgICAg
cmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X3BvcGNudCwgV2FzbUk2NFBvcGNu
dCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIGExKQorICAgIHByZXBh
cmVTdGF0ZUZvckNDYWxsKCkKKyAgICBtb3ZlIFBDLCBhMAorICAgIGNDYWxsMihfc2xvd19wYXRo
X3dhc21fcG9wY291bnRsbCkKKyAgICByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkKKyAgICByZXR1
cm5xKGN0eCwgcjEpCitlbmQpCisKK3dhc21PcChpNjRfZXF6LCBXYXNtSTY0RXF6LCBtYWNybyhj
dHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBjcWVxIHQwLCAwLCB0MAor
ICAgIHJldHVybmkoY3R4LCB0MCkKK2VuZCkKKworIyBmNjQgYmluYXJ5IG9wcworCit3YXNtT3Ao
ZjY0X2NvcHlzaWduLCBXYXNtRjY0Q29weXNpZ24sIG1hY3JvKGN0eCkKKyAgICBtbG9hZGQoY3R4
LCBtX2xocywgZnQwKQorICAgIG1sb2FkZChjdHgsIG1fcmhzLCBmdDEpCisKKyAgICBmZDJxIGZ0
MSwgdDEKKyAgICBtb3ZlIDB4ODAwMDAwMDAwMDAwMDAwMCwgdDIKKyAgICBhbmRxIHQyLCB0MQor
CisgICAgZmQycSBmdDAsIHQwCisgICAgbW92ZSAweDdmZmZmZmZmZmZmZmZmZmYsIHQyCisgICAg
YW5kcSB0MiwgdDAKKworICAgIG9ycSB0MSwgdDAKKyAgICBmcTJkIHQwLCBmdDAKKyAgICByZXR1
cm5kKGN0eCwgZnQwKQorZW5kKQorCisjIFR5cGUgY29udmVyc2lvbiBvcHMKKword2FzbU9wKGk2
NF9leHRlbmRfc19pMzIsIFdhc21JNjRFeHRlbmRTSTMyLCBtYWNybyhjdHgpCisgICAgbWxvYWRp
KGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBzeGkycSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwg
dDEpCitlbmQpCisKK3dhc21PcChpNjRfZXh0ZW5kX3VfaTMyLCBXYXNtSTY0RXh0ZW5kVUkzMiwg
bWFjcm8oY3R4KQorICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgenhpMnEgdDAs
IHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoZjY0X3JlaW50ZXJwcmV0
X2k2NCwgV2FzbUY2NFJlaW50ZXJwcmV0STY0LCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwg
bV9vcGVyYW5kLCB0MCkKKyAgICBmcTJkIHQwLCBmdDAKKyAgICByZXR1cm5kKGN0eCwgZnQwKQor
ZW5kKQorCit3YXNtT3AoaTY0X3JlaW50ZXJwcmV0X2Y2NCwgV2FzbUk2NFJlaW50ZXJwcmV0RjY0
LCBtYWNybyhjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisgICAgZmQycSBm
dDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3Nf
ZjY0LCBXYXNtSTMyVHJ1bmNTRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3Bl
cmFuZCwgZnQwKQorCisgICAgbW92ZSAweGMxZTAwMDAwMDAyMDAwMDAsIHQwICMgSU5UMzJfTUlO
IC0gMS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJv
dW5kc1RydW5jCisKKyAgICBtb3ZlIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UMzJfTUlO
CisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1Ry
dW5jCisKKyAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKwor
Lm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykK
K2VuZCkKKword2FzbU9wKGkzMl90cnVuY191X2Y2NCwgV2FzbUkzMlRydW5jVUY2NCwgbWFjcm8g
KGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZmYw
MDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmUgMHg0MWYwMDAwMDAwMDAwMDAw
LCB0MCAjIElOVDMyX01JTiAqIC0yLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAKKyAg
ICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0
aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc19mMzIsIFdh
c21JNjRUcnVuY1NGMzIsIG1hY3JvIChjdHgpCisgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBm
dDApCisKKyAgICBtb3ZlIDB4ZGYwMDAwMDAsIHQwICMgSU5UNjRfTUlOCisgICAgZmkyZiB0MCwg
ZnQxCisgICAgYmZsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZSAw
eDVmMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmd0ZXF1
biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZjJxcyBmdDAsIHQw
CisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4
Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5jX3VfZjMy
LCBXYXNtSTY0VHJ1bmNVRjMyLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZihjdHgsIG1fb3BlcmFu
ZCwgZnQwKQorCisgICAgbW92ZSAweGJmODAwMDAwLCB0MCAjIC0xLjAKKyAgICBmaTJmIHQwLCBm
dDEKKyAgICBiZmx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmUg
MHg1ZjgwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCisgICAgZmkyZiB0MCwgZnQxCisgICAg
YmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0ZWYycSBm
dDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0
aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5j
X3NfZjY0LCBXYXNtSTY0VHJ1bmNTRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1f
b3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGMzZTAwMDAwMDAwMDAwMDAsIHQwICMgSU5UNjRf
TUlOCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNU
cnVuYworCisgICAgbW92ZSAweDQzZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDY0X01JTgorICAg
IGZxMmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwor
CisgICAgdHJ1bmNhdGVkMnFzIGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRP
ZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQp
CisKK3dhc21PcChpNjRfdHJ1bmNfdV9mNjQsIFdhc21JNjRUcnVuY1VGNjQsIG1hY3JvIChjdHgp
CisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YmZmMDAwMDAw
MDAwMDAwMCwgdDAgIyAtMS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQwLCBm
dDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlIDB4NDNmMDAwMDAwMDAwMDAwMCwgdDAg
IyBJTlQ2NF9NSU4gKiAtMi4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBm
dDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0ZWQycSBmdDAsIHQwCisgICAgcmV0
dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJvd0V4Y2VwdGlvbihP
dXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfcywgV2Fz
bUkzMlRydW5jU2F0RjY0UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQs
IGZ0MCkKKworICAgIG1vdmUgMHhjMWUwMDAwMDAwMjAwMDAwLCB0MCAjIElOVDMyX01JTiAtIDEu
MAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNU
cnVuY1NhdE1pbk9yTmFOCisKKyAgICBtb3ZlIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5U
MzJfTUlOCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJv
dW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAorICAgIHJldHVybmko
Y3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKKyAgICBiZGVxIGZ0MCwg
ZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5p
KGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhw
ciBJTlQzMl9NQVgpLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1
bmNTYXRNaW46CisgICAgbW92ZSAoY29uc3RleHByIElOVDMyX01JTiksIHQwCisgICAgcmV0dXJu
aShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3NhdF9mNjRfdSwgV2FzbUkzMlRy
dW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkK
KworICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKKyAgICBmcTJkIHQwLCBm
dDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKworICAg
IG1vdmUgMHg0MWYwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDMyX01JTiAqIC0yLjAKKyAgICBmcTJk
IHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgK
KworICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCisKKy5vdXRP
ZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDAp
CisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5UMzJf
TUFYKSwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNf
c2F0X2YzMl9zLCBXYXNtSTY0VHJ1bmNTYXRGMzJTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkZihj
dHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGRmMDAwMDAwLCB0MCAjIElOVDY0X01J
TgorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1
bmNTYXRNaW5Pck5hTgorCisgICAgbW92ZSAweDVmMDAwMDAwLCB0MCAjIC1JTlQ2NF9NSU4KKyAg
ICBmaTJmIHQwLCBmdDEKKyAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNT
YXRNYXgKKworICAgIHRydW5jYXRlZjJxcyBmdDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQor
Cisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgorICAgIGJmZXEgZnQwLCBmdDAsIC5vdXRP
ZkJvdW5kc1RydW5jU2F0TWluCisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkK
KworLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIElOVDY0X01B
WCksIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoK
KyAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUlOKSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDAp
CitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc2F0X2YzMl91LCBXYXNtSTY0VHJ1bmNTYXRGMzJV
LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZihjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92
ZSAweGJmODAwMDAwLCB0MCAjIC0xLjAKKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmx0ZXF1biBm
dDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKworICAgIG1vdmUgMHg1ZjgwMDAwMCwg
dDAgIyBJTlQ2NF9NSU4gKiAtMi4wCisgICAgZmkyZiB0MCwgZnQxCisgICAgYmZndGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWYycSBmdDAsIHQw
CisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAgICBt
b3ZlIDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1h
eDoKKyAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDY0X01BWCksIHQwCisgICAgcmV0dXJucShjdHgs
IHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5jX3NhdF9mNjRfcywgV2FzbUk2NFRydW5jU2F0
RjY0UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAg
IG1vdmUgMHhjM2UwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDY0X01JTgorICAgIGZxMmQgdDAsIGZ0
MQorICAgIGJkbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTgorCisg
ICAgbW92ZSAweDQzZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDY0X01JTgorICAgIGZxMmQgdDAs
IGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisg
ICAgdHJ1bmNhdGVkMnFzIGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJv
dW5kc1RydW5jU2F0TWluT3JOYU46CisgICAgYmRlcSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1
bmNTYXRNaW4KKyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZC
b3VuZHNUcnVuY1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUFYKSwgdDAKKyAg
ICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUg
KGNvbnN0ZXhwciBJTlQ2NF9NSU4pLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKwor
d2FzbU9wKGk2NF90cnVuY19zYXRfZjY0X3UsIFdhc21JNjRUcnVuY1NhdEY2NFUsIG1hY3JvIChj
dHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YmZmMDAw
MDAwMDAwMDAwMCwgdDAgIyAtMS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdGVxdW4gZnQw
LCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCisKKyAgICBtb3ZlIDB4NDNmMDAwMDAwMDAw
MDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVx
dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQycSBm
dDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoK
KyAgICBtb3ZlIDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1heDoKKyAgICBtb3ZlIChjb25zdGV4cHIgVUlOVDY0X01BWCksIHQwCisgICAgcmV0dXJu
cShjdHgsIHQwKQorZW5kKQorCisjIEV4dGVuZCBvcHMKKword2FzbU9wKGk2NF9leHRlbmQ4X3Ms
IFdhc21JNjRFeHRlbmQ4UywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwg
dDApCisgICAgc3hiMnEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNt
T3AoaTY0X2V4dGVuZDE2X3MsIFdhc21JNjRFeHRlbmQxNlMsIG1hY3JvKGN0eCkKKyAgICBtbG9h
ZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHN4aDJxIHQwLCB0MQorICAgIHJldHVybnEoY3R4
LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9leHRlbmQzMl9zLCBXYXNtSTY0RXh0ZW5kMTZTLCBt
YWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBzeGkycSB0MCwg
dDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKKyMgQXRvbWljcworCittYWNybyB3YXNt
QXRvbWljQmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIs
IGZuaCwgZm5pLCBmbnEpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNv
ZGUlX3UsIFdhc21JNjRBdG9taWNSbXc4JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisg
ICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9v
ZmZzZXQsIHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKKyAgICAgICAgZW1p
dENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQoY3R4LCB0MywgdDEsIDEpCisgICAg
ICAgIGZuYih0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKKyAgICAgICAgYW5kcSAweGZmLCB0MCAjIEZJ
WE1FOiBaZXJvRXh0ZW5kOFRvNjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwg
MHhmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKKyAgICB3
YXNtT3AoaTY0X2F0b21pY19ybXcxNiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNS
bXcxNiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBt
X3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAg
bWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2lu
dGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCAyKQorICAgICAg
ICBmbmgodDAsIFt0M10sIHQyLCB0NSwgdDEpCisgICAgICAgIGFuZHEgMHhmZmZmLCB0MCAjIEZJ
WE1FOiBaZXJvRXh0ZW5kMTZUbzY0CisgICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAs
IDB4ZmZmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKKyAg
ICB3YXNtT3AoaTY0X2F0b21pY19ybXczMiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9t
aWNSbXczMiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4
LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAg
ICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQ
b2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA0KQorICAg
ICAgICBmbmkodDAsIFt0M10sIHQyLCB0NSwgdDEpCisgICAgICAgIGFzc2VydChtYWNybyhvaykg
YnFiZXEgdDAsIDB4ZmZmZmZmZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkK
KyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdh
c21JNjRBdG9taWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9h
ZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkK
KyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFBy
ZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA4
KQorICAgICAgICBmbnEodDAsIFt0M10sIHQyLCB0NSwgdDEpCisgICAgICAgIHJldHVybnEoY3R4
LCB0MCkKKyAgICBlbmQpCitlbmQKKworbWFjcm8gd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhX
ZWFrQ0FTKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmksIGZucSkKKyAgICB3
YXNtQXRvbWljQmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLAor
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAg
ICAgaWYgWDg2XzY0CisgICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKKyAgICAgICAg
ICAgICAgICBsb2FkYiBtZW0sIHQwR1BSCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAg
ICAgICBtb3ZlIHQwR1BSLCB0MkdQUgorICAgICAgICAgICAgICAgIGZuaSh0NUdQUiwgdDJHUFIp
CisgICAgICAgICAgICAgICAgYmF0b21pY3dlYWtjYXNiIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9v
cAorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAg
bG9hZGxpbmthY3FiIG1lbSwgdDFHUFIKKyAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQxR1BS
LCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmRyZWxiIHQ1R1BSLCB0MkdQUiwgbWVt
CisgICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAg
bW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbmQsCisgICAgICAg
IG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBpZiBY
ODZfNjQKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgorICAgICAgICAgICAgICAg
IGxvYWRoIG1lbSwgdDBHUFIKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIG1v
dmUgdDBHUFIsIHQyR1BSCisgICAgICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKKyAgICAg
ICAgICAgICAgICBiYXRvbWljd2Vha2Nhc2ggdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2FkbGlu
a2FjcWggbWVtLCB0MUdQUgorICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BS
KQorICAgICAgICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAg
ICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBtb3ZlIHQx
R1BSLCB0MEdQUgorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIGlmIFg4Nl82NAor
ICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQ1R1BSCisgICAgICAgICAgICAgICAgbG9hZGkg
bWVtLCB0MEdQUgorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbW92ZSB0MEdQ
UiwgdDJHUFIKKyAgICAgICAgICAgICAgICBmbmkodDVHUFIsIHQyR1BSKQorICAgICAgICAgICAg
ICAgIGJhdG9taWN3ZWFrY2FzaSB0MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxaSBt
ZW0sIHQxR1BSCisgICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAg
ICAgICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAg
ICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAorICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQw
R1BSCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgaWYgWDg2XzY0CisgICAgICAg
ICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIKKyAgICAgICAgICAgICAgICBsb2FkcSBtZW0sIHQw
R1BSCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQ
UgorICAgICAgICAgICAgICAgIGZucSh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgYmF0
b21pY3dlYWtjYXNxIHQwR1BSLCB0MkdQUiwgbWVtLCAubG9vcAorICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbG9hZGxpbmthY3FxIG1lbSwgdDFH
UFIKKyAgICAgICAgICAgICAgICBmbnEodDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAg
ICAgICBzdG9yZWNvbmRyZWxxIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICAgICAgYmlu
ZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAg
ICAgICAgICAgIGVuZAorICAgICAgICBlbmQpCitlbmQKKworaWYgWDg2XzY0CisgICAgd2FzbUF0
b21pY0JpbmFyeVJNV09wcyhfYWRkLCBBZGQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0gZW5kLAorICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaCB0
MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
MUdQUikgYXRvbWljeGNoZ2FkZGkgdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRxIHQwR1BSLCBtZW0gZW5k
KQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3N1YiwgU3ViLAorICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3ViYiB0MEdQUiwgbWVt
IGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRv
bWljeGNoZ3N1YmggdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJpIHQwR1BSLCBtZW0gZW5kLAorICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3VicSB0
MEdQUiwgbWVtIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94Y2hnLCBYY2hnLAor
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
YiB0MEdQUiwgbWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikgYXRvbWljeGNoZ2ggdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BS
LCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdpIHQwR1BSLCBtZW0gZW5kLAor
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
cSB0MEdQUiwgbWVtIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMo
X2FuZCwgQW5kLAorICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICBhbmRp
IHQ1R1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikK
KyAgICAgICAgICAgIGFuZHEgdDVHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRv
bWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX29yLCBPciwKKyAgICAgICAgbWFjcm8odDVHUFIs
IHQyR1BSKQorICAgICAgICAgICAgb3JpIHQ1R1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAg
ICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgIG9ycSB0NUdQUiwgdDJHUFIKKyAg
ICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeG9yLCBY
b3IsCisgICAgICAgIG1hY3JvKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgIHhvcmkgdDVHUFIs
IHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQorICAgICAg
ICAgICAgeG9ycSB0NUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorZWxzaWYgQVJNNjRFCisgICAg
d2FzbUF0b21pY0JpbmFyeVJNV09wcyhfYWRkLCBBZGQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRiIHQwR1BSLCBtZW0sIHQwR1BS
IGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRv
bWljeGNoZ2FkZGggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtLCB0MEdQ
UiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0
b21pY3hjaGdhZGRxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5
Uk1XT3BzKF9zdWIsIFN1YiwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikKKyAgICAgICAgICAgIG5lZ3EgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdh
ZGRiIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIs
IG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5lZ3EgdDBHUFIKKyAgICAg
ICAgICAgIGF0b21pY3hjaGdhZGRoIHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCwKKyAg
ICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAg
IG5lZ3EgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0sIHQwR1BS
CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
MUdQUikKKyAgICAgICAgICAgIG5lZ3EgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdhZGRx
IHQwR1BSLCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1X
T3BzKF9hbmQsIEFuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
MUdQUikKKyAgICAgICAgICAgIG5vdHEgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdjbGVh
cmIgdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgbm90cSB0MEdQUgorICAgICAg
ICAgICAgYXRvbWljeGNoZ2NsZWFyaCB0MEdQUiwgbWVtLCB0MEdQUgorICAgICAgICBlbmQsCisg
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAg
ICBub3RxIHQwR1BSCisgICAgICAgICAgICBhdG9taWN4Y2hnY2xlYXJpIHQwR1BSLCBtZW0sIHQw
R1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikKKyAgICAgICAgICAgIG5vdHEgdDBHUFIKKyAgICAgICAgICAgIGF0b21pY3hjaGdj
bGVhcnEgdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5h
cnlSTVdPcHMoX29yLCBPciwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikgYXRvbWljeGNoZ29yYiB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcmggdDBHUFIs
IG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIs
IHQxR1BSKSBhdG9taWN4Y2hnb3JpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFj
cm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ29ycSB0MEdQUiwg
bWVtLCB0MEdQUiBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfeG9yLCBYb3IsCisg
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4
b3JiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJH
UFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmggdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAor
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
eG9yaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkK
KyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF94Y2hnLCBYY2hnLAorICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYiB0MEdQUiwgbWVtLCB0
MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIp
IGF0b21pY3hjaGdoIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIs
IG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2kgdDBHUFIsIG1lbSwgdDBHUFIg
ZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9t
aWN4Y2hncSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQpCitlbHNpZiBBUk02NCBvciBSSVNDVjY0Cisg
ICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9hZGQsIEFkZCwKKyAgICAgICAg
bWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIGFkZGkgdDBHUFIsIHQxR1BS
LCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIp
CisgICAgICAgICAgICBhZGRxIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAg
IHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfc3ViLCBTdWIsCisgICAgICAgIG1h
Y3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBzdWJpIHQxR1BSLCB0MEdQUiwg
dDJHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQor
ICAgICAgICAgICAgc3VicSB0MUdQUiwgdDBHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKKyAgICB3
YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3hjaGcsIFhjaGcsCisgICAgICAgIG1h
Y3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgor
ICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAg
ICAgICBtb3ZlIHQwR1BSLCB0MkdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFy
eVJNV09wc1dpdGhXZWFrQ0FTKF9hbmQsIEFuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BS
LCB0MkdQUikKKyAgICAgICAgICAgIGFuZGkgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBl
bmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBhbmRx
IHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlS
TVdPcHNXaXRoV2Vha0NBUyhfb3IsIE9yLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQy
R1BSKQorICAgICAgICAgICAgb3JpIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kLAor
ICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgb3JxIHQwR1BS
LCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNX
aXRoV2Vha0NBUyhfeG9yLCBYb3IsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIp
CisgICAgICAgICAgICB4b3JpIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kLAorICAg
ICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgeG9ycSB0MEdQUiwg
dDFHUFIsIHQyR1BSCisgICAgICAgIGVuZCkKK2VuZAorCittYWNybyB3YXNtQXRvbWljQ29tcGFy
ZUV4Y2hhbmdlT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIsIGZuaCwg
Zm5pLCBmbnEpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13OCVsb3dlckNhc2VPcGNvZGUlX3Us
IFdhc21JNjRBdG9taWNSbXc4JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAg
IG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQs
IHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKKyAgICAgICAgbWxvYWRx
KGN0eCwgbV92YWx1ZSwgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRk
aW5nT2Zmc2V0KGN0eCwgdDMsIHQxLCAxKQorICAgICAgICBmbmIodDAsIHQyLCBbdDNdLCB0NSwg
dDEpCisgICAgICAgIGFuZHEgMHhmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDhUbzY0CisgICAg
ICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAsIDB4ZmYsIC5vayBlbmQpCisgICAgICAgIHJl
dHVybnEoY3R4LCB0MCkKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MTYlbG93
ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MTYldXBwZXJDYXNlT3Bjb2RlJVUsIG1h
Y3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dl
dHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQw
KQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5k
UHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEs
IDIpCisgICAgICAgIGZuaCh0MCwgdDIsIFt0M10sIHQ1LCB0MSkKKyAgICAgICAgYW5kcSAweGZm
ZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQxNlRvNjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9r
KSBicWJlcSB0MCwgMHhmZmZmLCAub2sgZW5kKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisg
ICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2FzZU9wY29kZSVfdSwg
V2FzbUk2NEF0b21pY1JtdzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgpCisgICAgICAg
IG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQs
IHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKKyAgICAgICAgbWxvYWRx
KGN0eCwgbV92YWx1ZSwgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRk
aW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA0KQorICAgICAgICBmbmko
dDAsIHQyLCBbdDNdLCB0NSwgdDEpCisgICAgICAgIGFzc2VydChtYWNybyhvaykgYnFiZXEgdDAs
IDB4ZmZmZmZmZmYsIC5vayBlbmQpCisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBlbmQp
CisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13JWxvd2VyQ2FzZU9wY29kZSUsIFdhc21JNjRBdG9t
aWNSbXcldXBwZXJDYXNlT3Bjb2RlJSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4LCBt
X3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAgICAg
bWxvYWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUs
IHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhB
bGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgOCkKKyAgICAgICAgZm5xKHQwLCB0MiwgW3QzXSwg
dDUsIHQxKQorICAgICAgICByZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorZW5kCisKK2lmIFg4
Nl82NCBvciBBUk02NEUgb3IgQVJNNjQgb3IgUklTQ1Y2NAorIyB0MEdQUiA9PiBleHBlY3RlZCwg
dDJHUFIgPT4gdmFsdWUsIG1lbSA9PiBtZW1vcnkgcmVmZXJlbmNlCit3YXNtQXRvbWljQ29tcGFy
ZUV4Y2hhbmdlT3BzKF9jbXB4Y2hnLCBDbXB4Y2hnLAorICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwg
bWVtLCB0NUdQUiwgdDFHUFIpCisgICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKKyAgICAgICAg
ICAgIGJxYSB0MEdQUiAsIDB4ZmYsIC5mYWlsCisgICAgICAgICAgICBhdG9taWN3ZWFrY2FzYiB0
MEdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgam1wIC5kb25lCisgICAgICAgIC5mYWlsOgor
ICAgICAgICAgICAgYXRvbWljbG9hZGIgbWVtLCB0MEdQUgorICAgICAgICAuZG9uZToKKyAgICAg
ICAgZWxzZQorICAgICAgICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5rYWNxYiBtZW0sIHQx
R1BSCisgICAgICAgICAgICBicW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCisgICAgICAgICAgICBz
dG9yZWNvbmRyZWxiIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAw
LCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWlsOgorICAgICAgICAg
ICAgc3RvcmVjb25kcmVsYiB0NUdQUiwgdDFHUFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQ
UiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAg
ICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCisgICAgICAgIGVuZAorICAgIGVuZCwKKyAgICBtYWNy
byh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BSKQorICAgICAgICBpZiBYODZfNjQgb3Ig
QVJNNjRFCisgICAgICAgICAgICBicWEgdDBHUFIsIDB4ZmZmZiwgLmZhaWwKKyAgICAgICAgICAg
IGF0b21pY3dlYWtjYXNoIHQwR1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICBqbXAgLmRvbmUK
KyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBhdG9taWNsb2FkaCBtZW0sIHQwR1BSCisgICAg
ICAgIC5kb25lOgorICAgICAgICBlbHNlCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9h
ZGxpbmthY3FoIG1lbSwgdDFHUFIKKyAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZh
aWwKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAg
ICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAg
LmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRyZWxoIHQ1R1BSLCB0MUdQUiwgbWVtCisgICAg
ICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAg
ICAgIC5kb25lOgorICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgZW5kCisg
ICAgZW5kLAorICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCisgICAg
ICAgIGlmIFg4Nl82NCBvciBBUk02NEUKKyAgICAgICAgICAgIGJxYSB0MEdQUiwgMHhmZmZmZmZm
ZiwgLmZhaWwKKyAgICAgICAgICAgIGF0b21pY3dlYWtjYXNpIHQwR1BSLCB0MkdQUiwgbWVtCisg
ICAgICAgICAgICBqbXAgLmRvbmUKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBhdG9taWNs
b2FkaSBtZW0sIHQwR1BSCisgICAgICAgIC5kb25lOgorICAgICAgICBlbHNlCisgICAgICAgIC5s
b29wOgorICAgICAgICAgICAgbG9hZGxpbmthY3FpIG1lbSwgdDFHUFIKKyAgICAgICAgICAgIGJx
bmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGkgdDVHUFIs
IHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAg
ICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1
R1BSLCB0MUdQUiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAg
ICAgICAgam1wIC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAgICAgICAgbW92ZSB0MUdQUiwg
dDBHUFIKKyAgICAgICAgZW5kCisgICAgZW5kLAorICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVt
LCB0NUdQUiwgdDFHUFIpCisgICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKKyAgICAgICAgICAg
IGF0b21pY3dlYWtjYXNxIHQwR1BSLCB0MkdQUiwgbWVtCisgICAgICAgIGVsc2UKKyAgICAgICAg
Lmxvb3A6CisgICAgICAgICAgICBsb2FkbGlua2FjcXEgbWVtLCB0MUdQUgorICAgICAgICAgICAg
YnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kcmVscSB0NUdQ
UiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAg
ICAgIGptcCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbHEg
dDVHUFIsIHQxR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAg
ICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBtb3ZlIHQxR1BS
LCB0MEdQUgorICAgICAgICBlbmQKKyAgICBlbmQpCitlbmQKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vYXJtLnJiCmluZGV4IGM4YThmZDA2YjYxOC4uYTZmMTgyMjliNTRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiCkBAIC03MSw2ICs3MSwxMSBAQCBj
bGFzcyBOb2RlCiAgICAgICAgIHJhaXNlICJCb2d1cyByZWdpc3RlciBuYW1lICN7ZG91YmxlT3Bl
cmFuZH0iIHVubGVzcyBkb3VibGVPcGVyYW5kID1+IC9eZC8KICAgICAgICAgInMiICsgKCR+LnBv
c3RfbWF0Y2gudG9faSAqIDIpLnRvX3MKICAgICBlbmQKKyAgICBkZWYgYXJtU2luZ2xlSGkKKyAg
ICAgICAgZG91YmxlT3BlcmFuZCA9IGFybU9wZXJhbmQKKyAgICAgICAgcmFpc2UgIkJvZ3VzIHJl
Z2lzdGVyIG5hbWUgI3tkb3VibGVPcGVyYW5kfSIgdW5sZXNzIGRvdWJsZU9wZXJhbmQgPX4gL15k
LworICAgICAgICAicyIgKyAoJH4ucG9zdF9tYXRjaC50b19pICogMiArIDEpLnRvX3MKKyAgICBl
bmQKIGVuZAogCiBjbGFzcyBTcGVjaWFsUmVnaXN0ZXIKQEAgLTEwNiwyMSArMTExLDIxIEBAIGVu
ZAogY2xhc3MgUmVnaXN0ZXJJRAogICAgIGRlZiBhcm1PcGVyYW5kCiAgICAgICAgIGNhc2UgbmFt
ZQotICAgICAgICB3aGVuICJ0MCIsICJhMCIsICJyMCIKKyAgICAgICAgd2hlbiAidDAiLCAiYTAi
LCAid2EwIiwgInIwIgogICAgICAgICAgICAgInIwIgotICAgICAgICB3aGVuICJ0MSIsICJhMSIs
ICJyMSIKKyAgICAgICAgd2hlbiAidDEiLCAiYTEiLCAid2ExIiwgInIxIgogICAgICAgICAgICAg
InIxIgotICAgICAgICB3aGVuICJ0MiIsICJhMiIKKyAgICAgICAgd2hlbiAidDIiLCAiYTIiLCAi
d2EyIgogICAgICAgICAgICAgInIyIgotICAgICAgICB3aGVuICJ0MyIsICJhMyIKKyAgICAgICAg
d2hlbiAidDMiLCAiYTMiLCAid2EzIgogICAgICAgICAgICAgInIzIgogICAgICAgICB3aGVuICJ0
NCIgIyBMTEludCBQQwogICAgICAgICAgICAgInI0IgotICAgICAgICB3aGVuICJ0NSIKKyAgICAg
ICAgd2hlbiAidDUiLCAid3MwIiAjIHdzMCBtdXN0IGJlIGEgbm9uLWFyZ3VtZW50L25vbi1yZXR1
cm4gR1BSCiAgICAgICAgICAgICAicjUiCiAgICAgICAgIHdoZW4gImNmciIKICAgICAgICAgICAg
ICJyNyIKLSAgICAgICAgd2hlbiAidDYiCisgICAgICAgIHdoZW4gInQ2IiwgIndzMSIgIyB3czEg
bXVzdCBiZSBhIG5vbi1hcmd1bWVudC9ub24tcmV0dXJuIEdQUgogICAgICAgICAgICAgInI4Igog
ICAgICAgICB3aGVuICJ0NyIKICAgICAgICAgICAgICJyOSIgIyByOSBpcyBhbHNvIGEgc2NyYXRj
aCByZWdpc3Rlciwgc28gdXNlIGNhcmVmdWxseSEKQEAgLTE0MywyMSArMTQ4LDIxIEBAIGVuZAog
Y2xhc3MgRlBSZWdpc3RlcklECiAgICAgZGVmIGFybU9wZXJhbmQKICAgICAgICAgY2FzZSBuYW1l
Ci0gICAgICAgIHdoZW4gImZ0MCIsICJmciIsICJmYTAiCisgICAgICAgIHdoZW4gImZ0MCIsICJm
ciIsICJmYTAiLCAid2ZhMCIKICAgICAgICAgICAgICJkMCIKLSAgICAgICAgd2hlbiAiZnQxIiwg
ImZhMSIKKyAgICAgICAgd2hlbiAiZnQxIiwgImZhMSIsICJ3ZmExIgogICAgICAgICAgICAgImQx
IgotICAgICAgICB3aGVuICJmdDIiCisgICAgICAgIHdoZW4gImZ0MiIsICJ3ZmEyIgogICAgICAg
ICAgICAgImQyIgotICAgICAgICB3aGVuICJmdDMiCisgICAgICAgIHdoZW4gImZ0MyIsICJ3ZmEz
IgogICAgICAgICAgICAgImQzIgotICAgICAgICB3aGVuICJmdDQiCisgICAgICAgIHdoZW4gImZ0
NCIsICJ3ZmE0IgogICAgICAgICAgICAgImQ0IgotICAgICAgICB3aGVuICJmdDUiCisgICAgICAg
IHdoZW4gImZ0NSIsICJ3ZmE1IgogICAgICAgICAgICAgImQ1IgotICAgICAgICB3aGVuICJmdDYi
CisgICAgICAgIHdoZW4gImZ0NiIsICJ3ZmE2IgogICAgICAgICAgICAgImQ2IgotICAgICAgICB3
aGVuICJmdDciCisgICAgICAgIHdoZW4gImZ0NyIsICJ3ZmE3IgogICAgICAgICAgICAgImQ3Igog
ICAgICAgICB3aGVuICJjc2ZyMCIKICAgICAgICAgICAgICJkOCIKQEAgLTE4OSw3ICsxOTQsMTEg
QEAgZW5kCiBjbGFzcyBBZGRyZXNzCiAgICAgZGVmIGFybU9wZXJhbmQKICAgICAgICAgcmFpc2Ug
IkJhZCBvZmZzZXQgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgaWYgb2Zmc2V0LnZhbHVlIDwgLTB4
ZmYgb3Igb2Zmc2V0LnZhbHVlID4gMHhmZmYKLSAgICAgICAgIlsje2Jhc2UuYXJtT3BlcmFuZH0s
IFwjI3tvZmZzZXQudmFsdWV9XSIKKyAgICAgICAgaWYgb2Zmc2V0LnZhbHVlID09IDAKKyAgICAg
ICAgICAiWyN7YmFzZS5hcm1PcGVyYW5kfV0iCisgICAgICAgIGVsc2UKKyAgICAgICAgICAiWyN7
YmFzZS5hcm1PcGVyYW5kfSwgXCMje29mZnNldC52YWx1ZX1dIgorICAgICAgICBlbmQKICAgICBl
bmQKIGVuZAogCkBAIC0zMzIsMTYgKzM0MSwyNSBAQCBjbGFzcyBTZXF1ZW5jZQogICAgICAgICBy
ZXN1bHQgPSBhcm1Mb3dlckxhYmVsUmVmZXJlbmNlcyhyZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9
IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3NlcyhyZXN1bHQpIHsKICAgICAgICAgICAgIHwgbm9k
ZSwgYWRkcmVzcyB8Ci0gICAgICAgICAgICBpZiBhZGRyZXNzLmlzX2E/IEJhc2VJbmRleAotICAg
ICAgICAgICAgICAgIGFkZHJlc3Mub2Zmc2V0LnZhbHVlID09IDAKLSAgICAgICAgICAgIGVsc2lm
IGFkZHJlc3MuaXNfYT8gQWRkcmVzcwotICAgICAgICAgICAgICAgICgtMHhmZi4uMHhmZmYpLmlu
Y2x1ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVlCisgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2Rl
CisgICAgICAgICAgICB3aGVuICJsb2FkMmlhIiwgInN0b3JlMmlhIgorICAgICAgICAgICAgICAg
IGlmIGFkZHJlc3MuaXNfYT8gQWRkcmVzcworICAgICAgICAgICAgICAgICAgICAoYWRkcmVzcy5v
ZmZzZXQudmFsdWUgJSA0ID09IDApICYmICgoLTEwMjMuLjEwMjMpLmluY2x1ZGU/IGFkZHJlc3Mu
b2Zmc2V0LnZhbHVlKQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
ZmFsc2UKKyAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBmYWxzZQorICAgICAgICAgICAgICAgIGlmIGFkZHJlc3MuaXNfYT8gQmFzZUluZGV4Cisg
ICAgICAgICAgICAgICAgICAgIGFkZHJlc3Mub2Zmc2V0LnZhbHVlID09IDAgJiYgbm9kZS5vcGNv
ZGUKKyAgICAgICAgICAgICAgICBlbHNpZiBhZGRyZXNzLmlzX2E/IEFkZHJlc3MKKyAgICAgICAg
ICAgICAgICAgICAgKC0weGZmLi4weGZmZikuaW5jbHVkZT8gYWRkcmVzcy5vZmZzZXQudmFsdWUK
KyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGZhbHNlCisgICAgICAg
ICAgICAgICAgZW5kCiAgICAgICAgICAgICBlbmQKICAgICAgICAgfQogICAgICAgICByZXN1bHQg
PSByaXNjTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXNEb3VibGUocmVzdWx0KQotICAgICAgICByZXN1
bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKHJlc3VsdCwgWyJzdG9yZWIiLCAic3Rv
cmVoIiwgInN0b3JlaSIsICJzdG9yZXAiLCAic3RvcmVxIl0pCisgICAgICAgIHJlc3VsdCA9IHJp
c2NMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMocmVzdWx0LCBbInN0b3JlYiIsICJzdG9yZWgiLCAi
c3RvcmVpIiwgInN0b3JlcCIsICJzdG9yZXEiLCAic3RvcmUyaWEiXSkKICAgICAgICAgcmVzdWx0
ID0gcmlzY0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRlcyhyZXN1bHQsIDAuLjB4ZmYsIDAuLjB4MGZm
KQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXMocmVzdWx0KQog
ICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJSZWdpc3RlclJldXNlKHJlc3VsdCkKQEAgLTM2MCw2
ICszNzgsMTAgQEAgZGVmIGFybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcykKICAgICBhcm1PcGVy
YW5kcyhbb3BlcmFuZHNbLTFdXSArIG9wZXJhbmRzWzAuLi0yXSkKIGVuZAogCitkZWYgYXJtRmxp
cHBlZE9wZXJhbmRzUGFpcihvcGVyYW5kcykKKyAgICBhcm1PcGVyYW5kcyhbb3BlcmFuZHNbLTJd
LCBvcGVyYW5kc1stMV1dICsgb3BlcmFuZHNbMC4uLTNdKQorZW5kCisKIGRlZiBlbWl0QXJtQ29t
cGFjdChvcGNvZGUyLCBvcGNvZGUzLCBvcGVyYW5kcykKICAgICBpZiBvcGVyYW5kcy5zaXplID09
IDMKICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZTN9ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9w
ZXJhbmRzKX0iCkBAIC0zODksNiArNDExLDEyIEBAIGRlZiBlbWl0QXJtRG91YmxlQnJhbmNoKGJy
YW5jaE9wY29kZSwgb3BlcmFuZHMpCiAgICAgJGFzbS5wdXRzICIje2JyYW5jaE9wY29kZX0gI3tv
cGVyYW5kc1syXS5hc21MYWJlbH0iCiBlbmQKIAorZGVmIGVtaXRBcm1TaW5nbGVCcmFuY2goYnJh
bmNoT3Bjb2RlLCBvcGVyYW5kcykKKyAgICAkYXNtLnB1dHMgInZjbXBlLmYzMiAje29wZXJhbmRz
WzBdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKKyAgICAkYXNtLnB1dHMg
InZtcnMgYXBzcl9uemN2LCBmcHNjciIKKyAgICAkYXNtLnB1dHMgIiN7YnJhbmNoT3Bjb2RlfSAj
e29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKK2VuZAorCiBkZWYgZW1pdEFybVRlc3Qob3BlcmFuZHMp
CiAgICAgdmFsdWUgPSBvcGVyYW5kc1swXQogICAgIGNhc2Ugb3BlcmFuZHMuc2l6ZQpAQCAtNDA5
LDcgKzQzNywxNSBAQCBlbmQKIAogZGVmIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCBj
b2RlKQogICAgICRhc20ucHV0cyAibW92ICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sIFwjMCIK
LSAgICAkYXNtLnB1dHMgInZjbXBlLmY2NCAje2FybU9wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0i
CisgICAgJGFzbS5wdXRzICJ2Y21wLmY2NCAje2FybU9wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0i
CisgICAgJGFzbS5wdXRzICJ2bXJzIEFQU1JfbnpjdiwgRlBTQ1IiCisgICAgJGFzbS5wdXRzICJp
dCAje2NvZGV9IgorICAgICRhc20ucHV0cyAibW92I3tjb2RlfSAje29wZXJhbmRzWzJdLmFybU9w
ZXJhbmR9LCBcIzEiCitlbmQKKworZGVmIGVtaXRBcm1GbG9hdENvbXBhcmUob3BlcmFuZHMsIGNv
ZGUpCisgICAgJGFzbS5wdXRzICJtb3YgI3tvcGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgXCMwIgor
ICAgICRhc20ucHV0cyAidmNtcC5mMzIgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9LCAje29wZXJh
bmRzWzFdLmFybVNpbmdsZX0iCiAgICAgJGFzbS5wdXRzICJ2bXJzIEFQU1JfbnpjdiwgRlBTQ1Ii
CiAgICAgJGFzbS5wdXRzICJpdCAje2NvZGV9IgogICAgICRhc20ucHV0cyAibW92I3tjb2RlfSAj
e29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCBcIzEiCkBAIC00MjksNiArNDY1LDE5IEBAIGRlZiBl
bWl0QXJtVGVzdFNldChvcGVyYW5kcywgY29kZSkKICAgICAkYXNtLnB1dHMgIm1vdiN7Y29kZX0g
I3tvcGVyYW5kc1stMV0uYXJtT3BlcmFuZH0sIFwjMSIKIGVuZAogCitkZWYgcmF3SW5zdHJ1Y3Rp
b24oY29kZU9yaWdpbiwgdGV4dCkKKyAgICByZXR1cm4gSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmln
aW4sICJlbWl0IiwgW1N0cmluZ0xpdGVyYWwubmV3KGNvZGVPcmlnaW4sICJcIiN7dGV4dH1cIiIp
XSkKK2VuZAorCitkZWYgZW1pdEFybVRydW5jYXRlRmxvYXQoY29kZU9yaWdpbiwgdG8sIGZyb20s
IG9wZXJhbmRzKQorICAgIHRtcCA9IEFSTV9FWFRSQV9GUFJTWy0xXQorICAgIHNyYyA9IGZyb20g
PT0gImYzMiIgPyBvcGVyYW5kc1swXS5hcm1TaW5nbGUgOiBvcGVyYW5kc1swXS5hcm1PcGVyYW5k
CisgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgcmF3SW5zdHJ1Y3Rpb24o
Y29kZU9yaWdpbiwgInZjdnQuI3t0b30uI3tmcm9tfSAje3RtcC5hcm1TaW5nbGV9LCAje3NyY30i
KSwKKyAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgInZtb3YgI3tvcGVyYW5kc1sx
XS5hcm1PcGVyYW5kfSwgI3t0bXAuYXJtU2luZ2xlfSIpCisgICAgXSkubG93ZXIoJGFjdGl2ZUJh
Y2tlbmQpCitlbmQKKwogY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICBkZWYgbG93ZXJBUk12NwogICAg
ICAgICByYWlzZSB1bmxlc3MgJGFjdGl2ZUJhY2tlbmQgPT0gIkFSTXY3IgpAQCAtNDY2LDYgKzUx
NSwxMCBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgICAgICAgICAkYXNtLnB1dHMg
ImFkZCN7c3VmZml4fSAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICAg
ICAgICAgIGVuZAogICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImFkY2kiCisgICAgICAg
ICAgICBlbWl0QXJtKCJhZGMiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYWJzZCIKKyAgICAg
ICAgICAkYXNtLnB1dHMgInZhYnMuZjY0ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0i
CiAgICAgICAgIHdoZW4gImFuZGkiLCAiYW5kcCIKICAgICAgICAgICAgIGVtaXRBcm1Db21wYWN0
KCJhbmRzIiwgImFuZCIsIG9wZXJhbmRzKQogICAgICAgICB3aGVuICJvcmkiLCAib3JwIiwgIm9y
aCIKQEAgLTQ4NCwxNCArNTM3LDM0IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBl
bWl0QXJtKCJtdWwiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAic3ViaSIsICJzdWJwIiwgInN1
YmlzIgogICAgICAgICAgICAgZW1pdEFybUNvbXBhY3QoInN1YnMiLCAic3VicyIsIG9wZXJhbmRz
KQorICAgICAgICB3aGVuICJzYmNpIgorICAgICAgICAgICAgZW1pdEFybSgic2JjIiwgb3BlcmFu
ZHMpCiAgICAgICAgIHdoZW4gIm5lZ2kiLCAibmVncCIKICAgICAgICAgICAgICRhc20ucHV0cyAi
cnNicyAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9
LCBcIzAiCiAgICAgICAgIHdoZW4gIm5vdGkiCiAgICAgICAgICAgICAkYXNtLnB1dHMgIm12bnMg
I3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAg
ICAgICAgd2hlbiAibHJvdGF0ZWkiCisgICAgICAgICAgICB0bXAgPSBUbXAubmV3KGNvZGVPcmln
aW4sIDpncHIpCisgICAgICAgICAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAgICAg
ICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAibW92ZSIsIFtvcGVyYW5kc1sw
XSwgdG1wXSksCisgICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJu
ZWdpIiwgW3RtcF0pLAorICAgICAgICAgICAgICAgIEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2lu
LCAicnJvdGF0ZWkiLCBbdG1wLCBvcGVyYW5kc1sxXV0pLAorICAgICAgICAgICAgXSkubG93ZXIo
JGFjdGl2ZUJhY2tlbmQpCisgICAgICAgIHdoZW4gInJyb3RhdGVpIgorICAgICAgICAgICAgJGFz
bS5wdXRzICJyb3IgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hl
biAidHpjbnRpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJyYml0ICN7YXJtRmxpcHBlZE9wZXJh
bmRzKG9wZXJhbmRzKX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImNseiAje29wZXJhbmRzWzFd
LmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9IgorICAgICAgICB3aGVuICJs
emNudGkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImNseiAje2FybUZsaXBwZWRPcGVyYW5kcyhv
cGVyYW5kcyl9IgogICAgICAgICB3aGVuICJsb2FkaSIsICJsb2FkaXMiLCAibG9hZHAiCiAgICAg
ICAgICAgICAkYXNtLnB1dHMgImxkciAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9Igog
ICAgICAgICB3aGVuICJzdG9yZWkiLCAic3RvcmVwIgogICAgICAgICAgICAgJGFzbS5wdXRzICJz
dHIgI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkMmlhIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJsZHJkICN7YXJtRmxpcHBlZE9wZXJhbmRzUGFpcihvcGVyYW5k
cyl9IgorICAgICAgICB3aGVuICJzdG9yZTJpYSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3Ry
ZCAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gImxvYWRiIgogICAgICAg
ICAgICAgJGFzbS5wdXRzICJsZHJiICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAg
ICAgICAgIHdoZW4gImxvYWRic2kiCkBAIC01MDQsMjAgKzU3NywxMTAgQEAgY2xhc3MgSW5zdHJ1
Y3Rpb24KICAgICAgICAgICAgICRhc20ucHV0cyAibGRyc2gudyAje2FybUZsaXBwZWRPcGVyYW5k
cyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJzdG9yZWgiCiAgICAgICAgICAgICAkYXNtLnB1
dHMgInN0cmggI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkbGlu
a2IiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmV4YiAje2FybUZsaXBwZWRPcGVyYW5kcyhv
cGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkbGlua2giCisgICAgICAgICAgICAkYXNtLnB1
dHMgImxkcmV4aCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVu
ICJsb2FkbGlua2kiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmV4ICN7YXJtRmxpcHBlZE9w
ZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRsaW5rMmkiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgImxkcmV4ZCAje2FybUZsaXBwZWRPcGVyYW5kc1BhaXIob3BlcmFuZHMpfSIK
KyAgICAgICAgd2hlbiAic3RvcmVjb25kYiIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RyZXhi
ICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVjb25kaCIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAic3RyZXhoICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAg
ICAgICAgd2hlbiAic3RvcmVjb25kaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RyZXggI3th
cm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9yZWNvbmQyaSIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAic3RyZXhkICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAg
ICAgd2hlbiAibG9hZGQiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZsZHIuNjQgI3thcm1GbGlw
cGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAic3RvcmVkIgogICAgICAgICAg
ICAgJGFzbS5wdXRzICJ2c3RyLjY0ICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAg
d2hlbiAibG9hZGYiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZsZHIuMzIgI3tvcGVyYW5kc1st
MV0uYXJtU2luZ2xlfSwgI3thcm1PcGVyYW5kcyhvcGVyYW5kc1swLi4tMl0pfSIKKyAgICAgICAg
d2hlbiAic3RvcmVmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2c3RyLjMyICN7b3BlcmFuZHNb
MF0uYXJtU2luZ2xlfSwgI3thcm1PcGVyYW5kcyhvcGVyYW5kc1sxLi4tMV0pfSIKKyAgICAgICAg
d2hlbiAiYWRkZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmFkZC5mMzIgI3tvcGVyYW5kc1sx
XS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJt
U2luZ2xlfSIKKyAgICAgICAgd2hlbiAic3ViZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidnN1
Yi5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0s
ICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAibXVsZiIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAidm11bC5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJh
bmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hl
biAiZGl2ZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmRpdi5mMzIgI3tvcGVyYW5kc1sxXS5h
cm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2lu
Z2xlfSIKKyAgICAgICAgd2hlbiAic3FydGYiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZzcXJ0
LmYzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIK
KyAgICAgICAgd2hlbiAiYWJzZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmFicy5mMzIgI3tv
cGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCisgICAgICAg
IHdoZW4gIm5lZ2YiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZuZWcuZjMyICN7b3BlcmFuZHNb
MV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJi
Zmx0IgorICAgICAgICAgICAgZW1pdEFybVNpbmdsZUJyYW5jaCgiYm1pIiwgb3BlcmFuZHMpCisg
ICAgICAgIHdoZW4gImJmbHR1biIKKyAgICAgICAgICAgIGVtaXRBcm1TaW5nbGVCcmFuY2goImJs
dCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZmx0ZXF1biIKKyAgICAgICAgICAgIGVtaXRB
cm1TaW5nbGVCcmFuY2goImJsZSIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZmVxIgorICAg
ICAgICAgICAgZW1pdEFybVNpbmdsZUJyYW5jaCgiYmVxIiwgb3BlcmFuZHMpCisgICAgICAgIHdo
ZW4gImJmZ3QiCisgICAgICAgICAgICBlbWl0QXJtU2luZ2xlQnJhbmNoKCJiZ3QiLCBvcGVyYW5k
cykKKyAgICAgICAgd2hlbiAiYmZndGVxdW4iCisgICAgICAgICAgICBlbWl0QXJtU2luZ2xlQnJh
bmNoKCJicGwiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRsdHVuIgorICAgICAgICAgICAg
ZW1pdEFybURvdWJsZUJyYW5jaCgiYmx0Iiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gImFkZGQi
CiAgICAgICAgICAgICBlbWl0QXJtKCJ2YWRkLmY2NCIsIG9wZXJhbmRzKQotICAgICAgICB3aGVu
ICJkaXZkIgotICAgICAgICAgICAgZW1pdEFybSgidmRpdi5mNjQiLCBvcGVyYW5kcykKICAgICAg
ICAgd2hlbiAic3ViZCIKICAgICAgICAgICAgIGVtaXRBcm0oInZzdWIuZjY0Iiwgb3BlcmFuZHMp
CiAgICAgICAgIHdoZW4gIm11bGQiCiAgICAgICAgICAgICBlbWl0QXJtKCJ2bXVsLmY2NCIsIG9w
ZXJhbmRzKQorICAgICAgICB3aGVuICJkaXZkIgorICAgICAgICAgICAgZW1pdEFybSgidmRpdi5m
NjQiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAic3FydGQiCiAgICAgICAgICAgICAkYXNtLnB1
dHMgInZzcXJ0LmY2NCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3
aGVuICJuZWdkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bmVnLmY2NCAje2FybUZsaXBwZWRP
cGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJvcmYiCisgICAgICAgICAgICAodG1w
TGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0xXQorICAgICAgICAgICAgU2VxdWVu
Y2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9y
aWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmds
ZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7
dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iKSwKKyAgICAgICAg
ICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJvcmkiLCBbdG1wTGhzLCB0bXBSaHNd
KSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7b3Bl
cmFuZHNbMV0uYXJtU2luZ2xlfSwgI3t0bXBSaHMuYXJtT3BlcmFuZH0iKQorICAgICAgICAgICAg
XSkubG93ZXIoJGFjdGl2ZUJhY2tlbmQpCisgICAgICAgIHdoZW4gImFuZGYiCisgICAgICAgICAg
ICAodG1wTGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0xXQorICAgICAgICAgICAg
U2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24o
Y29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFy
bVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2
bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iKSwKKyAg
ICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJhbmRpIiwgW3RtcExocywg
dG1wUmhzXSksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1v
diAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7dG1wUmhzLmFybU9wZXJhbmR9IikKKyAgICAg
ICAgICAgIF0pLmxvd2VyKCRhY3RpdmVCYWNrZW5kKQorICAgICAgICB3aGVuICJvcmQiCisgICAg
ICAgICAgICAodG1wTGhzLCB0bXBSaHMpID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0xXQorICAgICAg
ICAgICAgU2VxdWVuY2UubmV3KGNvZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1
Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRz
WzBdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdp
biwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0i
KSwKKyAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJvcmkiLCBbdG1w
TGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwg
ICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3t0bXBSaHMuYXJtT3BlcmFuZH0iKSwK
KyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wTGhz
LmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZUhpfSIpLAorICAgICAgICAgICAg
ICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlSGl9IiksCisgICAgICAgICAgICAgIEluc3RydWN0aW9u
Lm5ldyhjb2RlT3JpZ2luLCAib3JpIiwgW3RtcExocywgdG1wUmhzXSksCisgICAgICAgICAgICAg
IHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmds
ZUhpfSwgI3t0bXBSaHMuYXJtT3BlcmFuZH0iKQorICAgICAgICAgICAgXSkubG93ZXIoJGFjdGl2
ZUJhY2tlbmQpCisgICAgICAgIHdoZW4gImFuZGQiCisgICAgICAgICAgICAodG1wTGhzLCB0bXBS
aHMpID0gQVJNX0VYVFJBX0dQUlNbLTIuLi0xXQorICAgICAgICAgICAgU2VxdWVuY2UubmV3KGNv
ZGVPcmlnaW4sIFsKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2
bW92ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iKSwKKyAg
ICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFy
bU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iKSwKKyAgICAgICAgICAgICAgSW5z
dHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJhbmRpIiwgW3RtcExocywgdG1wUmhzXSksCisgICAg
ICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje29wZXJhbmRzWzFd
LmFybVNpbmdsZX0sICN7dG1wUmhzLmFybU9wZXJhbmR9IiksCisgICAgICAgICAgICAgIHJhd0lu
c3RydWN0aW9uKGNvZGVPcmlnaW4sICAidm1vdiAje3RtcExocy5hcm1PcGVyYW5kfSwgI3tvcGVy
YW5kc1swXS5hcm1TaW5nbGVIaX0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29k
ZU9yaWdpbiwgICJ2bW92ICN7dG1wUmhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNp
bmdsZUhpfSIpLAorICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImFu
ZGkiLCBbdG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29k
ZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlSGl9LCAje3RtcFJocy5hcm1P
cGVyYW5kfSIpCisgICAgICAgICAgICBdKS5sb3dlcigkYWN0aXZlQmFja2VuZCkKICAgICAgICAg
d2hlbiAiY2kyZHMiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5h
cm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9IgogICAgICAgICAgICAgJGFzbS5w
dXRzICJ2Y3Z0LmY2NC5zMzIgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sx
XS5hcm1TaW5nbGV9IgpAQCAtNTcwLDYgKzczMyw4IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAg
ICAgIHdoZW4gIm1vdmR6IgogICAgICAgICAgICAgIyBGSVhNRTogZWl0aGVyIHN1cHBvcnQgdGhp
cyBvciByZW1vdmUgaXQuCiAgICAgICAgICAgICByYWlzZSAiQVJNIGRvZXMgbm90IHN1cHBvcnQg
dGhpcyBvcGNvZGUgeWV0LCAje2NvZGVPcmlnaW59IgorICAgICAgICB3aGVuICJtb3ZlZCIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAidm1vdi5mNjQgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFu
ZHMpfSIKICAgICAgICAgd2hlbiAicG9wIgogICAgICAgICAgICAgb3BlcmFuZHMuZWFjaCB7CiAg
ICAgICAgICAgICAgICAgfCBvcCB8CkBAIC01ODYsOSArNzUxLDE3IEBAIGNsYXNzIEluc3RydWN0
aW9uCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3YgI3th
cm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgICAgIGVuZAorICAgICAgICB3
aGVuICJtb3ZlaWkiCisgICAgICAgICAgICByYWlzZSAiRmlyc3Qgb3BlcmFuZCBvZiBtb3ZlaWkg
bXVzdCBiZSBhbiBpbW1lZGlhdGUiIHVubGVzcyBvcGVyYW5kc1swXS5pbW1lZGlhdGU/CisgICAg
ICAgICAgICBhcm1Nb3ZlSW1tZWRpYXRlKG9wZXJhbmRzWzBdLnZhbHVlID4+IDMyLCBvcGVyYW5k
c1sxXSkKKyAgICAgICAgICAgIGFybU1vdmVJbW1lZGlhdGUob3BlcmFuZHNbMF0udmFsdWUgJiAw
eGZmZmZmZmZmLCBvcGVyYW5kc1syXSkKICAgICAgICAgd2hlbiAibXZsYmwiCiAgICAgICAgICAg
ICAgICAgJGFzbS5wdXRzICJtb3Z3ICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sIFwjOmxvd2Vy
MTY6I3tvcGVyYW5kc1swXS52YWx1ZX0iCiAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3Z0
ICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sIFwjOnVwcGVyMTY6I3tvcGVyYW5kc1swXS52YWx1
ZX0iCisgICAgICAgIHdoZW4gInN4YjJpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzeHRiICN7
YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN4aDJpIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJzeHRoICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0i
CiAgICAgICAgIHdoZW4gIm5vcCIKICAgICAgICAgICAgICRhc20ucHV0cyAibm9wIgogICAgICAg
ICB3aGVuICJiaWVxIiwgImJwZXEiLCAiYmJlcSIKQEAgLTY4MiwxNCArODU1LDQ2IEBAIGNsYXNz
IEluc3RydWN0aW9uCiAgICAgICAgICAgICBlbWl0QXJtQ29tcGFyZShvcGVyYW5kcywgImx0IikK
ICAgICAgICAgd2hlbiAiY2lsdGVxIiwgImNwbHRlcSIsICJjYmx0ZXEiCiAgICAgICAgICAgICBl
bWl0QXJtQ29tcGFyZShvcGVyYW5kcywgImxlIikKLSAgICAgICAgd2hlbiAiY2RndCIKLSAgICAg
ICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAiZ3QiKQotICAgICAgICB3aGVu
ICJjZGd0ZXEiCi0gICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywgImdl
IikKKyAgICAgICAgd2hlbiAiY2ZlcSIKKyAgICAgICAgICAgIGVtaXRBcm1GbG9hdENvbXBhcmUo
b3BlcmFuZHMsICJlcSIpCisgICAgICAgIHdoZW4gImNmbmVxdW4iCisgICAgICAgICAgICBlbWl0
QXJtRmxvYXRDb21wYXJlKG9wZXJhbmRzLCAibmUiKQorICAgICAgICB3aGVuICJjZmx0IgorICAg
ICAgICAgICAgZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywgIm1pIikKKyAgICAgICAgd2hl
biAiY2ZsdGVxIgorICAgICAgICAgICAgZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywgImxz
IikKKyAgICAgICAgd2hlbiAiY2ZndCIKKyAgICAgICAgICAgIGVtaXRBcm1GbG9hdENvbXBhcmUo
b3BlcmFuZHMsICJndCIpCisgICAgICAgIHdoZW4gImNmZ3RlcSIKKyAgICAgICAgICAgIGVtaXRB
cm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJnZSIpCisgICAgICAgIHdoZW4gImNkZXEiCisgICAg
ICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywgImVxIikKKyAgICAgICAgd2hl
biAiY2RuZXF1biIKKyAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAi
bmUiKQogICAgICAgICB3aGVuICJjZGx0IgogICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBh
cmUob3BlcmFuZHMsICJtaSIpCiAgICAgICAgIHdoZW4gImNkbHRlcSIKICAgICAgICAgICAgIGVt
aXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAibHMiKQorICAgICAgICB3aGVuICJjZGd0Igor
ICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMsICJndCIpCisgICAgICAg
IHdoZW4gImNkZ3RlcSIKKyAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJlKG9wZXJhbmRz
LCAiZ2UiKQorICAgICAgICB3aGVuICJjZjJkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0
LmY2NC5mMzIgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5n
bGV9IgorICAgICAgICB3aGVuICJjZDJmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmYz
Mi5mNjQgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9
IgorICAgICAgICB3aGVuICJjaTJmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3Bl
cmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAidmN2dC5mMzIudTMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tv
cGVyYW5kc1sxXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJjaTJmcyIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0u
YXJtT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInZjdnQuZjMyLnMzMiAje29wZXJh
bmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hl
biAiY2kyZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybVNp
bmdsZX0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMg
InZjdnQuZjY0LnUzMiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFy
bVNpbmdsZX0iCisgICAgICAgIHdoZW4gImNpMmRzIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2
bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAidmN2dC5mNjQuczMyICN7b3BlcmFuZHNbMV0uYXJtT3Bl
cmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKICAgICAgICAgd2hlbiAidGlzIiwgInRi
cyIsICJ0cHMiCiAgICAgICAgICAgICBlbWl0QXJtVGVzdFNldChvcGVyYW5kcywgIm1pIikKICAg
ICAgICAgd2hlbiAidGl6IiwgInRieiIsICJ0cHoiCkBAIC03MDAsMTAgKzkwNSwyMiBAQCBjbGFz
cyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgJGFzbS5wdXRzICJsZHIgI3tvcGVyYW5kc1sxXS5h
cm1PcGVyYW5kfSwgW3NwLCBcIyN7b3BlcmFuZHNbMF0udmFsdWUgKiA0fV0iCiAgICAgICAgIHdo
ZW4gInBva2UiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInN0ciAje29wZXJhbmRzWzFdLmFybU9w
ZXJhbmR9LCBbc3AsIFwjI3tvcGVyYW5kc1swXS52YWx1ZSAqIDR9XSIKKyAgICAgICAgd2hlbiAi
ZmkyZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmds
ZX0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAgIHdoZW4gImZmMmkiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVy
YW5kc1swXS5hcm1TaW5nbGV9IgogICAgICAgICB3aGVuICJmaWkyZCIKICAgICAgICAgICAgICRh
c20ucHV0cyAidm1vdiAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFy
bU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9IgogICAgICAgICB3aGVuICJmZDJp
aSIKICAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9
LCAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9Igor
ICAgICAgICB3aGVuICJ0cnVuY2F0ZWYyaSIKKyAgICAgICAgICAgIGVtaXRBcm1UcnVuY2F0ZUZs
b2F0KGNvZGVPcmlnaW4sICJ1MzIiLCAiZjMyIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInRy
dW5jYXRlZjJpcyIKKyAgICAgICAgICAgIGVtaXRBcm1UcnVuY2F0ZUZsb2F0KGNvZGVPcmlnaW4s
ICJzMzIiLCAiZjMyIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInRydW5jYXRlZDJpIgorICAg
ICAgICAgICAgZW1pdEFybVRydW5jYXRlRmxvYXQoY29kZU9yaWdpbiwgInUzMiIsICJmNjQiLCBv
cGVyYW5kcykKKyAgICAgICAgd2hlbiAidHJ1bmNhdGVkMmlzIgorICAgICAgICAgICAgZW1pdEFy
bVRydW5jYXRlRmxvYXQoY29kZU9yaWdpbiwgInMzMiIsICJmNjQiLCBvcGVyYW5kcykKICAgICAg
ICAgd2hlbiAiYm8iCiAgICAgICAgICAgICAkYXNtLnB1dHMgImJ2cyAje29wZXJhbmRzWzBdLmFz
bUxhYmVsfSIKICAgICAgICAgd2hlbiAiYnMiCkBAIC03MTIsMTMgKzkyOSwxNyBAQCBjbGFzcyBJ
bnN0cnVjdGlvbgogICAgICAgICAgICAgJGFzbS5wdXRzICJiZXEgI3tvcGVyYW5kc1swXS5hc21M
YWJlbH0iCiAgICAgICAgIHdoZW4gImJueiIKICAgICAgICAgICAgICRhc20ucHV0cyAiYm5lICN7
b3BlcmFuZHNbMF0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJiY3MiCisgICAgICAgICAgICAk
YXNtLnB1dHMgImJjcyAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKICAgICAgICAgd2hlbiAibGVh
aSIsICJsZWFwIgogICAgICAgICAgICAgb3BlcmFuZHNbMF0uYXJtRW1pdExlYShvcGVyYW5kc1sx
XSkKLSAgICAgICAgd2hlbiAic211bGxpIgorICAgICAgICB3aGVuICJzbXVsbGkiLCAidW11bGxp
IgogICAgICAgICAgICAgcmFpc2UgIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgdG8gc211bGwg
aW4gI3tzZWxmLmluc3BlY3R9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBvcGVyYW5k
cy5sZW5ndGggPT0gNAotICAgICAgICAgICAgJGFzbS5wdXRzICJzbXVsbCAje29wZXJhbmRzWzJd
LmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzNdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFy
bU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5w
dXRzICIje29wY29kZVswLi4tMl19ICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFu
ZHNbM10uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNb
MV0uYXJtT3BlcmFuZH0iCiAgICAgICAgIHdoZW4gIm1lbWZlbmNlIgogICAgICAgICAgICAgJGFz
bS5wdXRzICJkbWIgc3kiCisgICAgICAgIHdoZW4gImZlbmNlIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJkbWIgaXNoIgogICAgICAgICB3aGVuICJjbHJicCIKICAgICAgICAgICAgICRhc20ucHV0
cyAiYmljICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCiAgICAgICAgIHdoZW4gImdsb2JhbGFkZHIi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlv
bnMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIK
aW5kZXggNTRiMDI3ZjNkYTAxLi43ZTI4MGI3Zjc4YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKQEAgLTU5LDYgKzU5LDcgQEAgTUFD
Uk9fSU5TVFJVQ1RJT05TID0KICAgICAgInJyb3RhdGVxIiwKICAgICAgInN1YmkiLAogICAgICAi
eG9yaSIsCisgICAgICJsb2FkMmlhIiwKICAgICAgImxvYWRpIiwKICAgICAgImxvYWRpcyIsCiAg
ICAgICJsb2FkYiIsCkBAIC02Nyw2ICs2OCw3IEBAIE1BQ1JPX0lOU1RSVUNUSU9OUyA9CiAgICAg
ICJsb2FkaCIsCiAgICAgICJsb2FkaHNpIiwKICAgICAgImxvYWRoc3EiLAorICAgICAic3RvcmUy
aWEiLAogICAgICAic3RvcmVpIiwKICAgICAgInN0b3JlaCIsCiAgICAgICJzdG9yZWIiLApAQCAt
Mzc3LDkgKzM3OSwyMSBAQCBYODZfSU5TVFJVQ1RJT05TID0KIAogQVJNX0lOU1RSVUNUSU9OUyA9
CiAgICAgWworICAgICAiYWRjaSIsCisgICAgICJiY3MiLAogICAgICAiY2xyYnAiLAogICAgICAi
bXZsYmwiLAotICAgICAiZ2xvYmFsYWRkciIKKyAgICAgImdsb2JhbGFkZHIiLAorICAgICAic2Jj
aSIsCisgICAgICJtb3ZlaWkiLAorICAgICAibG9hZGxpbmtiIiwKKyAgICAgImxvYWRsaW5raCIs
CisgICAgICJsb2FkbGlua2kiLAorICAgICAibG9hZGxpbmsyaSIsCisgICAgICJzdG9yZWNvbmRi
IiwKKyAgICAgInN0b3JlY29uZGgiLAorICAgICAic3RvcmVjb25kaSIsCisgICAgICJzdG9yZWNv
bmQyaSIsCiAgICAgXQogCiBBUk02NF9JTlNUUlVDVElPTlMgPQpAQCAtNDMxLDYgKzQ0NSw3IEBA
IEFSTTY0X0lOU1RSVUNUSU9OUyA9CiBSSVNDX0lOU1RSVUNUSU9OUyA9CiAgICAgWwogICAgICAi
c211bGxpIiwgICMgTXVsdGlwbHkgdHdvIDMyLWJpdCB3b3JkcyBhbmQgcHJvZHVjZSBhIDY0LWJp
dCB3b3JkCisgICAgICJ1bXVsbGkiLCAgIyBNdWx0aXBseSB0d28gMzItYml0IHdvcmRzIGFuZCBw
cm9kdWNlIGEgNjQtYml0IHdvcmQKICAgICAgImFkZGlzIiwgICAjIEFkZCBpbnRlZ2VycyBhbmQg
c2V0IGEgZmxhZy4KICAgICAgInN1YmlzIiwgICAjIFNhbWUsIGJ1dCBmb3Igc3VidHJhY3Rpb24u
CiAgICAgICJvcmlzIiwgICAgIyBTYW1lLCBidXQgZm9yIGJpdHdpc2Ugb3IuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIKaW5kZXggMGRjNDRjMjNkZmIy
Li42N2Y1MjcxYTUzNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL3JlZ2lzdGVycy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9y
ZWdpc3RlcnMucmIKQEAgLTU4LDcgKzU4LDggQEAgR1BSUyA9CiAgICAgICJjc3I3IiwKICAgICAg
ImNzcjgiLAogICAgICAiY3NyOSIsCi0gICAgICJjc3IxMCIKKyAgICAgImNzcjEwIiwKKyAgICAg
ImludmFsaWRHUFIiCiAgICAgXQogCiBGUFJTID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9yaXNjLnJiCmluZGV4IDBmMDcyZTlmZDExZS4uMzQ2NDU5NjJmNzQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIKQEAgLTI1OSw4ICsyNTksMTIgQEAgZGVm
IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc0RvdWJsZShsaXN0KQogICAgICAgICAgICAgY2Fz
ZSBub2RlLm9wY29kZQogICAgICAgICAgICAgd2hlbiAibG9hZGQiCiAgICAgICAgICAgICAgICAg
bmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibG9hZGQiLCBbbm9k
ZS5vcGVyYW5kc1swXS5yaXNjRG91YmxlQWRkcmVzcyhuZXdMaXN0KSwgbm9kZS5vcGVyYW5kc1sx
XV0sIG5vZGUuYW5ub3RhdGlvbikKKyAgICAgICAgICAgIHdoZW4gImxvYWRmIgorICAgICAgICAg
ICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImxvYWRm
IiwgW25vZGUub3BlcmFuZHNbMF0ucmlzY0RvdWJsZUFkZHJlc3MobmV3TGlzdCksIG5vZGUub3Bl
cmFuZHNbMV1dLCBub2RlLmFubm90YXRpb24pCiAgICAgICAgICAgICB3aGVuICJzdG9yZWQiCiAg
ICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2lu
LCAic3RvcmVkIiwgW25vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV0ucmlzY0RvdWJs
ZUFkZHJlc3MobmV3TGlzdCldLCBub2RlLmFubm90YXRpb24pCisgICAgICAgICAgICB3aGVuICJz
dG9yZWYiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5j
b2RlT3JpZ2luLCAic3RvcmVmIiwgW25vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV0u
cmlzY0RvdWJsZUFkZHJlc3MobmV3TGlzdCldLCBub2RlLmFubm90YXRpb24pCiAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCiAgICAgICAgICAgICBlbmQK
QEAgLTM2OSw3ICszNzMsNyBAQCBkZWYgcmlzY0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRlcyhsaXN0
LCB2YWxpZEltbWVkaWF0ZXMsIHZhbGlkTG9naWNhbEltbWVkaWF0ZXMpCiAgICAgICAgIGlmIG5v
ZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGFubm90YXRpb24gPSBub2RlLmFubm90
YXRpb24KICAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKLSAgICAgICAgICAgIHdoZW4gIm1v
dmUiCisgICAgICAgICAgICB3aGVuICJtb3ZlIiwgIm1vdmVpaSIKICAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IG5vZGUKICAgICAgICAgICAgIHdoZW4gImFkZGkiLCAiYWRkcCIsICJhZGRxIiwg
ImFkZGlzIiwgInN1YmkiLCAic3VicCIsICJzdWJxIiwgInN1YmlzIgogICAgICAgICAgICAgICAg
IGlmIG5vZGUub3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlIGFuZApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCmluZGV4IDM5MWZkM2E2YTQxYy4uZmUyMTY0ODY3
MzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCkBAIC0x
NjIsOCArMTYyLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgTnVs
bFRhZyA9ICAgICAgICAgMHhmZmZmZmZmZDsKICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90
IFVuZGVmaW5lZFRhZyA9ICAgIDB4ZmZmZmZmZmM7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50
MzJfdCBDZWxsVGFnID0gICAgICAgICAweGZmZmZmZmZiOwotICAgIHN0YXRpYyBjb25zdGV4cHIg
dWludDMyX3QgRW1wdHlWYWx1ZVRhZyA9ICAgMHhmZmZmZmZmYTsKLSAgICBzdGF0aWMgY29uc3Rl
eHByIHVpbnQzMl90IERlbGV0ZWRWYWx1ZVRhZyA9IDB4ZmZmZmZmZjk7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1aW50MzJfdCBXYXNtVGFnID0gICAgICAgICAweGZmZmZmZmZhOworICAgIHN0YXRp
YyBjb25zdGV4cHIgdWludDMyX3QgRW1wdHlWYWx1ZVRhZyA9ICAgMHhmZmZmZmZmOTsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVpbnQzMl90IERlbGV0ZWRWYWx1ZVRhZyA9IDB4ZmZmZmZmZjg7CiAK
ICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IExvd2VzdFRhZyA9ICBEZWxldGVkVmFsdWVU
YWc7CiAjZW5kaWYKQEAgLTE4MCw2ICsxODEsOSBAQCBwdWJsaWM6CiAgICAgZW51bSBFbmNvZGVB
c0JpZ0ludDMyVGFnIHsgRW5jb2RlQXNCaWdJbnQzMiB9OwogI2VuZGlmCiAgICAgZW51bSBFbmNv
ZGVBc0RvdWJsZVRhZyB7IEVuY29kZUFzRG91YmxlIH07CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
KSAmJiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGVudW0gRW5jb2RlQXNVbmJveGVkRmxvYXRUYWcg
eyBFbmNvZGVBc1VuYm94ZWRGbG9hdCB9OworI2VuZGlmCiAKICAgICBKU1ZhbHVlKCk7CiAgICAg
SlNWYWx1ZShKU051bGxUYWcpOwpAQCAtMTkxLDYgKzE5NSw5IEBAIHB1YmxpYzoKICNpZiBVU0Uo
QklHSU5UMzIpCiAgICAgSlNWYWx1ZShFbmNvZGVBc0JpZ0ludDMyVGFnLCBpbnQzMl90KTsKICNl
bmRpZgorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkgJiYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBK
U1ZhbHVlKEVuY29kZUFzVW5ib3hlZEZsb2F0VGFnLCBmbG9hdCk7CisjZW5kaWYKIAogICAgIC8v
IE51bWJlcnMKICAgICBKU1ZhbHVlKEVuY29kZUFzRG91YmxlVGFnLCBkb3VibGUpOwpAQCAtNTkz
LDYgKzYwMCwxMyBAQCBBTFdBWVNfSU5MSU5FIEpTVmFsdWUganNCaWdJbnQzMihpbnQzMl90IGlu
dFZhbHVlKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZB
TFVFMzJfNjQpCitBTFdBWVNfSU5MSU5FIEpTVmFsdWUgd2FzbVVuYm94ZWRGbG9hdChmbG9hdCBm
KQoreworICAgIHJldHVybiBKU1ZhbHVlKEpTVmFsdWU6OkVuY29kZUFzVW5ib3hlZEZsb2F0LCBm
KTsKK30KKyNlbmRpZgorCiBBTFdBWVNfSU5MSU5FIEpTVmFsdWUganNEb3VibGVOdW1iZXIoZG91
YmxlIGQpCiB7CiAgICAgQVNTRVJUKEpTVmFsdWUoSlNWYWx1ZTo6RW5jb2RlQXNEb3VibGUsIGQp
LmlzTnVtYmVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDSlNWYWx1ZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pT
VmFsdWVJbmxpbmVzLmgKaW5kZXggYmEzZWIxMjZlNjg1Li41MWJiYTdlZWQzNjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaApAQCAt
NjIzLDYgKzYyMywxMyBAQCBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZShFbmNvZGVBc0JpZ0ludDMy
VGFnLCBpbnQzMl90IHZhbHVlKQogfQogI2VuZGlmIC8vIFVTRShCSUdJTlQzMikKIAorI2lmIEVO
QUJMRShXRUJBU1NFTUJMWSkgJiYgVVNFKEpTVkFMVUUzMl82NCkKK2lubGluZSBKU1ZhbHVlOjpK
U1ZhbHVlKEVuY29kZUFzVW5ib3hlZEZsb2F0VGFnLCBmbG9hdCB2YWx1ZSkKK3sKKyAgICB1LmFz
Qml0cy5wYXlsb2FkID0gYml0d2lzZV9jYXN0PGludDMyX3Q+KHZhbHVlKTsKK30KKyNlbmRpZgor
CiBpbmxpbmUgaW50NjRfdCB0cnlDb252ZXJ0VG9JbnQ1Mihkb3VibGUgbnVtYmVyKQogewogICAg
IGlmIChudW1iZXIgIT0gbnVtYmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21BaXJJUkdlbmVyYXRvci5jcHAKaW5kZXggODljZWNiZDNiODI4Li41MjU1YjhkNzFlMjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9y
LmNwcApAQCAtODQ3LDYgKzg0NywxNSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBGdW5jdGlvbj4KICAgICB2b2lkIGZvckVhY2hMaXZlVmFsdWUoRnVuY3Rpb24pOwogCisgICAg
Ym9vbCB1c2VTaWduYWxpbmdNZW1vcnkoKSBjb25zdAorICAgIHsKKyNpZiBFTkFCTEUoV0VCQVNT
RU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKKyAgICAgICAgcmV0dXJuIG1fbW9kZSA9PSBNZW1vcnlN
b2RlOjpTaWduYWxpbmc7CisjZWxzZQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAg
ICB9CisKICAgICBGdW5jdGlvblBhcnNlcjxBaXJJUkdlbmVyYXRvcj4qIG1fcGFyc2VyIHsgbnVs
bHB0ciB9OwogICAgIGNvbnN0IE1vZHVsZUluZm9ybWF0aW9uJiBtX2luZm87CiAgICAgY29uc3Qg
TWVtb3J5TW9kZSBtX21vZGUgeyBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZyB9OwpAQCAtOTY0
LDcgKzk3Myw3IEBAIEFpcklSR2VuZXJhdG9yOjpBaXJJUkdlbmVyYXRvcihjb25zdCBNb2R1bGVJ
bmZvcm1hdGlvbiYgaW5mbywgQjM6OlByb2NlZHVyZSYgcHJvCiAgICAgaWYgKCFDb250ZXh0Ojp1
c2VGYXN0VExTKCkpCiAgICAgICAgIG1fY29kZS5waW5SZWdpc3RlcihtX3dhc21Db250ZXh0SW5z
dGFuY2VHUFIpOwogCi0gICAgaWYgKG1vZGUgIT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nKSB7Cisg
ICAgaWYgKG1vZGUgPT0gTWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcpIHsKICAgICAgICAgbV9i
b3VuZHNDaGVja2luZ1NpemVHUFIgPSBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lz
dGVyOwogICAgICAgICBtX2NvZGUucGluUmVnaXN0ZXIobV9ib3VuZHNDaGVja2luZ1NpemVHUFIp
OwogICAgIH0KQEAgLTE4MDAsNiArMTgwOSw3IEBAIGlubGluZSBBaXJJUkdlbmVyYXRvcjo6RXhw
cmVzc2lvblR5cGUgQWlySVJHZW5lcmF0b3I6OmVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyCiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdf
TUVNT1JZKQogICAgIGNhc2UgTWVtb3J5TW9kZTo6U2lnbmFsaW5nOiB7CiAgICAgICAgIC8vIFdl
J3ZlIHZpcnR1YWxseSBtYXBwZWQgNEdpQityZWR6b25lIGZvciB0aGlzIG1lbW9yeS4gT25seSB0
aGUgdXNlci1hbGxvY2F0ZWQgcGFnZXMgYXJlIGFkZHJlc3NhYmxlLCBjb250aWd1b3VzbHkgaW4g
cmFuZ2UgWzAsIGN1cnJlbnRdLAogICAgICAgICAvLyBhbmQgZXZlcnl0aGluZyBhYm92ZSBpcyBt
YXBwZWQgUFJPVF9OT05FLiBXZSBkb24ndCBuZWVkIHRvIHBlcmZvcm0gYW55IGV4cGxpY2l0IGJv
dW5kcyBjaGVjayBpbiB0aGUgNEdpQiByYW5nZSBiZWNhdXNlIFdlYkFzc2VtYmx5IHJlZ2lzdGVy
CkBAIC0xODI2LDYgKzE4MzYsNyBAQCBpbmxpbmUgQWlySVJHZW5lcmF0b3I6OkV4cHJlc3Npb25U
eXBlIEFpcklSR2VuZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcgogICAgICAgICB9
CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyNlbmRpZgogICAgIH0KIAogICAgIGFwcGVuZChBZGQ2
NCwgVG1wKG1fbWVtb3J5QmFzZUdQUiksIHJlc3VsdCk7CkBAIC0zNzA5LDcgKzM3MjAsNyBAQCBh
dXRvIEFpcklSR2VuZXJhdG9yOjphZGRDYWxsKHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgsIGNvbnN0
IFR5cGVEZWZpbml0aW9uJiBzaWduYQogICAgICAgICBhdXRvKiBwYXRjaHBvaW50ID0gcGFpci5m
aXJzdDsKICAgICAgICAgYXV0byBleGNlcHRpb25IYW5kbGUgPSBwYWlyLnNlY29uZDsKICAgICAg
ICAgLy8gV2UgbmVlZCB0byBjbG9iYmVyIHRoZSBzaXplIHJlZ2lzdGVyIHNpbmNlIHRoZSBMTElu
dCBhbHdheXMgYm91bmRzIGNoZWNrcwotICAgICAgICBpZiAobV9tb2RlID09IE1lbW9yeU1vZGU6
OlNpZ25hbGluZyB8fCBtX2luZm8ubWVtb3J5LmlzU2hhcmVkKCkpCisgICAgICAgIGlmICh1c2VT
aWduYWxpbmdNZW1vcnkoKSB8fCBtX2luZm8ubWVtb3J5LmlzU2hhcmVkKCkpCiAgICAgICAgICAg
ICBwYXRjaHBvaW50LT5jbG9iYmVyTGF0ZShSZWdpc3RlclNldCB7IFBpbm5lZFJlZ2lzdGVySW5m
bzo6Z2V0KCkuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIgfSk7CiAgICAgICAgIHBhdGNocG9p
bnQtPnNldEdlbmVyYXRvcihbPSwgdGhpc10gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBCMzo6
U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKICAgICAgICAgICAgIEFsbG93TWFj
cm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcAppbmRleCBkNTZlZmY3OGIw
ODYuLmNiMmI3MDlhYjNjMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUIzSVJHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21CM0lSR2VuZXJhdG9yLmNwcApAQCAtNTI2LDYgKzUyNiwxNSBAQCBwcml2YXRlOgogICAgICAg
ICByZXR1cm4gc2V0KGRzdCwgZ2V0KHNyYykpOwogICAgIH0KIAorICAgIGJvb2wgdXNlU2lnbmFs
aW5nTWVtb3J5KCkgY29uc3QKKyAgICB7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElO
R19NRU1PUlkpCisgICAgICAgIHJldHVybiBtX21vZGUgPT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5n
OworI2Vsc2UKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisgICAgfQorCiAgICAgRnVu
Y3Rpb25QYXJzZXI8QjNJUkdlbmVyYXRvcj4qIG1fcGFyc2VyIHsgbnVsbHB0ciB9OwogICAgIGNv
bnN0IE1vZHVsZUluZm9ybWF0aW9uJiBtX2luZm87CiAgICAgY29uc3QgTWVtb3J5TW9kZSBtX21v
ZGUgeyBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZyB9OwpAQCAtNjM5LDcgKzY0OCw3IEBAIEIz
SVJHZW5lcmF0b3I6OkIzSVJHZW5lcmF0b3IoY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mIGluZm8s
IFByb2NlZHVyZSYgcHJvY2VkdXJlCiAgICAgaWYgKCFDb250ZXh0Ojp1c2VGYXN0VExTKCkpCiAg
ICAgICAgIG1fcHJvYy5waW5SZWdpc3RlcihtX3dhc21Db250ZXh0SW5zdGFuY2VHUFIpOwogCi0g
ICAgaWYgKG1vZGUgIT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nKSB7CisgICAgaWYgKG1vZGUgPT0g
TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcpIHsKICAgICAgICAgbV9ib3VuZHNDaGVja2luZ1Np
emVHUFIgPSBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyOwogICAgICAgICBt
X3Byb2MucGluUmVnaXN0ZXIobV9ib3VuZHNDaGVja2luZ1NpemVHUFIpOwogICAgIH0KQEAgLTY1
MSw5ICs2NjAsMTEgQEAgQjNJUkdlbmVyYXRvcjo6QjNJUkdlbmVyYXRvcihjb25zdCBNb2R1bGVJ
bmZvcm1hdGlvbiYgaW5mbywgUHJvY2VkdXJlJiBwcm9jZWR1cmUKICAgICAgICAgICAgIGNhc2Ug
TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmc6CiAgICAgICAgICAgICAgICAgQVNTRVJUX1VOVVNF
RChwaW5uZWRHUFIsIG1fYm91bmRzQ2hlY2tpbmdTaXplR1BSID09IHBpbm5lZEdQUik7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1P
UlkpCiAgICAgICAgICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzoKICAgICAgICAgICAg
ICAgICBBU1NFUlRfVU5VU0VEKHBpbm5lZEdQUiwgSW52YWxpZEdQUlJlZyA9PSBwaW5uZWRHUFIp
OwogICAgICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB0aGlzLT5lbWl0RXhjZXB0aW9uQ2hlY2soaml0LCBFeGNlcHRpb25UeXBlOjpPdXRPZkJv
dW5kc01lbW9yeUFjY2Vzcyk7CiAgICAgICAgIH0pOwpAQCAtOTE1LDkgKzkyNiwxMyBAQCBhdXRv
IEIzSVJHZW5lcmF0b3I6OmFkZEFyZ3VtZW50cyhjb25zdCBUeXBlRGVmaW5pdGlvbiYgc2lnbmF0
dXJlKSAtPiBQYXJ0aWFsUmVzdQogICAgICAgICBCMzo6VHlwZSB0eXBlID0gdG9CM1R5cGUoc2ln
bmF0dXJlLmFzPEZ1bmN0aW9uU2lnbmF0dXJlPigpLT5hcmd1bWVudFR5cGUoaSkpOwogICAgICAg
ICBCMzo6VmFsdWUqIGFyZ3VtZW50OwogICAgICAgICBhdXRvIHJlcCA9IHdhc21DYWxsSW5mby5w
YXJhbXNbaV07Ci0gICAgICAgIGlmIChyZXAuaXNSZWcoKSkgewotICAgICAgICAgICAgYXJndW1l
bnQgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PEIzOjpBcmd1bWVudFJlZ1ZhbHVlPihtX3By
b2MsIE9yaWdpbigpLCByZXAucmVnKCkpOwotICAgICAgICAgICAgaWYgKHR5cGUgPT0gQjM6Oklu
dDMyIHx8IHR5cGUgPT0gQjM6OkZsb2F0KQorICAgICAgICBpZiAocmVwLmlzR1BSKCkpIHsKKyAg
ICAgICAgICAgIGFyZ3VtZW50ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6QXJndW1l
bnRSZWdWYWx1ZT4obV9wcm9jLCBPcmlnaW4oKSwgcmVwLmpzcigpLnBheWxvYWRHUFIoKSk7Cisg
ICAgICAgICAgICBpZiAodHlwZSA9PSBCMzo6SW50MzIpCisgICAgICAgICAgICAgICAgYXJndW1l
bnQgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6VHJ1
bmMsIE9yaWdpbigpLCBhcmd1bWVudCk7CisgICAgICAgIH0gZWxzZSBpZiAocmVwLmlzRlBSKCkp
IHsKKyAgICAgICAgICAgIGFyZ3VtZW50ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6
QXJndW1lbnRSZWdWYWx1ZT4obV9wcm9jLCBPcmlnaW4oKSwgcmVwLmZwcigpKTsKKyAgICAgICAg
ICAgIGlmICh0eXBlID09IEIzOjpGbG9hdCkKICAgICAgICAgICAgICAgICBhcmd1bWVudCA9IG1f
Y3VycmVudEJsb2NrLT5hcHBlbmROZXc8QjM6OlZhbHVlPihtX3Byb2MsIEIzOjpUcnVuYywgT3Jp
Z2luKCksIGFyZ3VtZW50KTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChy
ZXAuaXNTdGFjaygpKTsKQEAgLTE0NDYsNiArMTQ2MSw3IEBAIGlubGluZSBWYWx1ZSogQjNJUkdl
bmVyYXRvcjo6ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoVmFsdWUqIHBvaW50ZXIsIHVpbnQz
Ml90CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdO
QUxJTkdfTUVNT1JZKQogICAgIGNhc2UgTWVtb3J5TW9kZTo6U2lnbmFsaW5nOiB7CiAgICAgICAg
IC8vIFdlJ3ZlIHZpcnR1YWxseSBtYXBwZWQgNEdpQityZWR6b25lIGZvciB0aGlzIG1lbW9yeS4g
T25seSB0aGUgdXNlci1hbGxvY2F0ZWQgcGFnZXMgYXJlIGFkZHJlc3NhYmxlLCBjb250aWd1b3Vz
bHkgaW4gcmFuZ2UgWzAsIGN1cnJlbnRdLAogICAgICAgICAvLyBhbmQgZXZlcnl0aGluZyBhYm92
ZSBpcyBtYXBwZWQgUFJPVF9OT05FLiBXZSBkb24ndCBuZWVkIHRvIHBlcmZvcm0gYW55IGV4cGxp
Y2l0IGJvdW5kcyBjaGVjayBpbiB0aGUgNEdpQiByYW5nZSBiZWNhdXNlIFdlYkFzc2VtYmx5IHJl
Z2lzdGVyCkBAIC0xNDYzLDYgKzE0NzksNyBAQCBpbmxpbmUgVmFsdWUqIEIzSVJHZW5lcmF0b3I6
OmVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKFZhbHVlKiBwb2ludGVyLCB1aW50MzJfdAogICAg
ICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyNlbmRpZgogICAgIH0KIAogICAgIHBvaW50
ZXIgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIFpFeHQzMiwgb3Jp
Z2luKCksIHBvaW50ZXIpOwpAQCAtMTQ5Niw3ICsxNTEzLDcgQEAgaW5saW5lIHVpbnQzMl90IHNp
emVPZkxvYWRPcChMb2FkT3BUeXBlIG9wKQogCiBpbmxpbmUgQjM6OktpbmQgQjNJUkdlbmVyYXRv
cjo6bWVtb3J5S2luZChCMzo6T3Bjb2RlIG1lbW9yeU9wKQogewotICAgIGlmIChtX21vZGUgPT0g
TWVtb3J5TW9kZTo6U2lnbmFsaW5nIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQoKSkKKyAgICBp
ZiAodXNlU2lnbmFsaW5nTWVtb3J5KCkgfHwgbV9pbmZvLm1lbW9yeS5pc1NoYXJlZCgpKQogICAg
ICAgICByZXR1cm4gdHJhcHBpbmcobWVtb3J5T3ApOwogICAgIHJldHVybiBtZW1vcnlPcDsKIH0K
QEAgLTI5ODksNyArMzAwNiw3IEBAIGF1dG8gQjNJUkdlbmVyYXRvcjo6YWRkQ2FsbCh1aW50MzJf
dCBmdW5jdGlvbkluZGV4LCBjb25zdCBUeXBlRGVmaW5pdGlvbiYgc2lnbmF0CiAgICAgICAgICAg
ICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cy5yZWFkc1Bpbm5lZCA9IHRydWU7CiAKICAgICAgICAg
ICAgICAgICAvLyBXZSBuZWVkIHRvIGNsb2JiZXIgdGhlIHNpemUgcmVnaXN0ZXIgc2luY2UgdGhl
IExMSW50IGFsd2F5cyBib3VuZHMgY2hlY2tzCi0gICAgICAgICAgICAgICAgaWYgKG1fbW9kZSA9
PSBNZW1vcnlNb2RlOjpTaWduYWxpbmcgfHwgbV9pbmZvLm1lbW9yeS5pc1NoYXJlZCgpKQorICAg
ICAgICAgICAgICAgIGlmICh1c2VTaWduYWxpbmdNZW1vcnkoKSB8fCBtX2luZm8ubWVtb3J5Lmlz
U2hhcmVkKCkpCiAgICAgICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXJMYXRlKFJl
Z2lzdGVyU2V0IHsgUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKS5ib3VuZHNDaGVja2luZ1NpemVS
ZWdpc3RlciB9KTsKICAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoW3Ro
aXMsIGhhbmRsZSwgdW5saW5rZWRXYXNtVG9XYXNtQ2FsbHMsIGZ1bmN0aW9uSW5kZXhdIChDQ2Fs
bEhlbHBlcnMmIGppdCwgY29uc3QgQjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1z
KSB7CiAgICAgICAgICAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBh
bGxvd1NjcmF0Y2goaml0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21CaW5kaW5nLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5kaW5n
LmNwcAppbmRleCBlZGM3MGJlYTA4YWYuLjMyNzI4OTk0OWFkZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21CaW5kaW5nLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJM
RShXRUJBU1NFTUJMWSkKIAogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkRp
c2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIu
aCIKICNpbmNsdWRlICJXYXNtQ2FsbGluZ0NvbnZlbnRpb24uaCIKICNpbmNsdWRlICJXYXNtSW5z
dGFuY2UuaCIKQEAgLTQxLDE4ICs0MiwyMSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVS
ZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub1dhc20odW5zaQogewog
ICAgIC8vIEZJWE1FOiBDb25zaWRlciB1bmlxdWlmeSB0aGUgc3R1YnMgYmFzZWQgb24gc2lnbmF0
dXJlICsgaW5kZXggdG8gc2VlIGlmIHRoaXMgc2F2ZXMgbWVtb3J5LgogICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQxNTcKLQotICAgIGNvbnN0IFBpbm5l
ZFJlZ2lzdGVySW5mbyYgcGlubmVkUmVncyA9IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCk7CiAg
ICAgSklUIGppdDsKIAogICAgIEdQUlJlZyBzY3JhdGNoID0gd2FzbUNhbGxpbmdDb252ZW50aW9u
KCkucHJvbG9ndWVTY3JhdGNoR1BSc1swXTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIEdQ
UlJlZyBiYXNlTWVtb3J5ID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNo
R1BSc1sxXTsKKyAgICBHUFJSZWcgc2l6ZVJlZ0FzU2NyYXRjaCA9IHdhc21DYWxsaW5nQ29udmVu
dGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMl07CisjZWxzZQorICAgIGNvbnN0IFBpbm5lZFJl
Z2lzdGVySW5mbyYgcGlubmVkUmVncyA9IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCk7CiAgICAg
R1BSUmVnIGJhc2VNZW1vcnkgPSBwaW5uZWRSZWdzLmJhc2VNZW1vcnlQb2ludGVyOwotICAgIEFT
U0VSVChiYXNlTWVtb3J5ICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7Ci0gICAgQVNTRVJUKGJh
c2VNZW1vcnkgIT0gc2NyYXRjaCk7Ci0gICAgQVNTRVJUKHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tp
bmdTaXplUmVnaXN0ZXIgIT0gYmFzZU1lbW9yeSk7Ci0gICAgQVNTRVJUKHBpbm5lZFJlZ3MuYm91
bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIgIT0gc2NyYXRjaCk7CiAgICAgR1BSUmVnIHNpemVSZWdB
c1NjcmF0Y2ggPSBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyOworI2VuZGlm
CisgICAgQVNTRVJUKGJhc2VNZW1vcnkgIT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsKICAgICBB
U1NFUlQoc2l6ZVJlZ0FzU2NyYXRjaCAhPSBHUFJSZWc6OkludmFsaWRHUFJSZWcpOworICAgIEFT
U0VSVChzY3JhdGNoICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7CisgICAgQVNTRVJUKG5vT3Zl
cmxhcChzY3JhdGNoLCBiYXNlTWVtb3J5LCBzaXplUmVnQXNTY3JhdGNoKSk7CiAKICAgICAvLyBC
MydzIGNhbGwgY29kZWdlbiBlbnN1cmVzIHRoYXQgdGhlIEpTQ2VsbCBpcyBhIFdlYkFzc2VtYmx5
RnVuY3Rpb24uCiAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHNpemVSZWdBc1NjcmF0
Y2gpOyAvLyBPbGQgSW5zdGFuY2UqCkBAIC02NSw2ICs2OSw3IEBAIEV4cGVjdGVkPE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvV2Fz
bSh1bnNpCiAgICAgaml0LmxvYWRQdHIoSklUOjpBZGRyZXNzKHNpemVSZWdBc1NjcmF0Y2gsIElu
c3RhbmNlOjpvZmZzZXRPZkNhY2hlZFN0YWNrTGltaXQoKSksIHNpemVSZWdBc1NjcmF0Y2gpOwog
ICAgIGppdC5zdG9yZVB0cihzaXplUmVnQXNTY3JhdGNoLCBKSVQ6OkFkZHJlc3MoYmFzZU1lbW9y
eSwgSW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkU3RhY2tMaW1pdCgpKSk7CiAKKyNpZiAhQ1BVKEFS
TSkgLy8gQVJNIGhhcyBubyBwaW5uZWQgcmVnaXN0ZXJzIGZvciBXYXNtIE1lbW9yeSwgc28gbm8g
bmVlZCB0byBzZXQgdGhlbSB1cAogICAgIC8vIEZJWE1FIHRoZSBmb2xsb3dpbmcgY29kZSBhc3N1
bWVzIHRoYXQgYWxsIFdhc206Okluc3RhbmNlIGhhdmUgdGhlIHNhbWUgcGlubmVkIHJlZ2lzdGVy
cy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjk1MgogICAgIC8v
IFNldCB1cCB0aGUgY2FsbGVlJ3MgYmFzZU1lbW9yeSByZWdpc3RlciBhcyB3ZWxsIGFzIHRoZSBt
ZW1vcnkgc2l6ZSByZWdpc3RlcnMuCiAgICAgewpAQCAtNzIsNiArNzcsNyBAQCBFeHBlY3RlZDxN
YWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdh
c21Ub1dhc20odW5zaQogICAgICAgICBqaXQubG9hZFB0cihKSVQ6OkFkZHJlc3MoYmFzZU1lbW9y
eSwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNlTWVtb3J5KTsg
Ly8gV2FzbTo6TWVtb3J5OjpUYWdnZWRBcnJheVN0b3JhZ2VQdHI8dm9pZD4gKHZvaWQqKS4KICAg
ICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5QW5kVW50YWcoR2lnYWNhZ2U6OlByaW1pdGl2ZSwg
YmFzZU1lbW9yeSwgcGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3Rlciwgd2FzbUNh
bGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1sxXSk7CiAgICAgfQorI2VuZGlm
CiAKICAgICAvLyBUYWlsIGNhbGwgaW50byB0aGUgY2FsbGVlIFdlYkFzc2VtYmx5IGZ1bmN0aW9u
LgogICAgIGppdC5sb2FkUHRyKEpJVDo6QWRkcmVzcyhzY3JhdGNoKSwgc2NyYXRjaCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuY3BwCmluZGV4IGEzMjFjNTJmMTVlYy4u
MzIwMmY1NDgwY2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
Q2FsbGVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNw
cApAQCAtMTMxLDYgKzEzMSw4IEBAIFJlZ2lzdGVyQXRPZmZzZXRMaXN0KiBMTEludENhbGxlZTo6
Y2FsbGVlU2F2ZVJlZ2lzdGVycygpCiAgICAgICAgIHJlZ2lzdGVycy5zZXQoR1BSSW5mbzo6cmVn
Q1MyKTsgLy8gUEIKICNlbGlmIENQVShBUk02NCkgfHwgQ1BVKFJJU0NWNjQpCiAgICAgICAgIHJl
Z2lzdGVycy5zZXQoR1BSSW5mbzo6cmVnQ1M3KTsgLy8gUEIKKyNlbGlmIENQVShBUk0pCisgICAg
ICAgIHJlZ2lzdGVycy5zZXQoR1BSSW5mbzo6cmVnQ1MxKTsgLy8gUEIKICNlbHNlCiAjZXJyb3Ig
VW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlLgogI2VuZGlmCkBAIC0xNTgsNiArMTYwLDcgQEAgY29u
c3QgV2FzbUluc3RydWN0aW9uKiBMTEludENhbGxlZTo6b3V0T2ZMaW5lSnVtcFRhcmdldChjb25z
dCBXYXNtSW5zdHJ1Y3Rpb24qIHAKICAgICByZXR1cm4gbV9pbnN0cnVjdGlvbnMtPmF0KG9mZnNl
dCArIHRhcmdldCkucHRyKCk7CiB9CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCiB2
b2lkIE9wdGltaXppbmdKSVRDYWxsZWU6OmxpbmtFeGNlcHRpb25IYW5kbGVycyhWZWN0b3I8VW5s
aW5rZWRIYW5kbGVySW5mbz4gdW5saW5rZWRFeGNlcHRpb25IYW5kbGVycywgVmVjdG9yPENvZGVM
b2NhdGlvbkxhYmVsPEV4Y2VwdGlvbkhhbmRsZXJQdHJUYWc+PiBleGNlcHRpb25IYW5kbGVyTG9j
YXRpb25zKQogewogICAgIHNpemVfdCBjb3VudCA9IHVubGlua2VkRXhjZXB0aW9uSGFuZGxlcnMu
c2l6ZSgpOwpAQCAtMTg0LDcgKzE4Nyw3IEBAIGNvbnN0IFN0YWNrTWFwJiBPcHRpbWl6aW5nSklU
Q2FsbGVlOjpzdGFja21hcChDYWxsU2l0ZUluZGV4IGNhbGxTaXRlSW5kZXgpIGNvbnN0CiAgICAg
UkVMRUFTRV9BU1NFUlQoaXRlciAhPSBtX3N0YWNrbWFwcy5lbmQoKSk7CiAgICAgcmV0dXJuIGl0
ZXItPnZhbHVlOwogfQotCisjZW5kaWYKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZUdyb3VwLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWVHcm91cC5jcHAKaW5kZXgg
MWVhNDVjYTRhNmU5Li41MTlkMjA5NmFkNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21DYWxsZWVHcm91cC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUNhbGxlZUdyb3VwLmNwcApAQCAtMTYwLDE3ICsxNjAsMjEgQEAgdm9pZCBDYWxs
ZWVHcm91cDo6Y29tcGlsZUFzeW5jKENvbnRleHQqIGNvbnRleHQsIEFzeW5jQ29tcGlsYXRpb25D
YWxsYmFjayYmIHRhc2sKIAogYm9vbCBDYWxsZWVHcm91cDo6aXNTYWZlVG9SdW4oTWVtb3J5TW9k
ZSBtZW1vcnlNb2RlKQogeworICAgIFVOVVNFRF9QQVJBTShtZW1vcnlNb2RlKTsKKwogICAgIGlm
ICghcnVubmFibGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgc3dpdGNoIChtX21v
ZGUpIHsKICAgICBjYXNlIFdhc206Ok1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nOgogICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkK
ICAgICBjYXNlIFdhc206Ok1lbW9yeU1vZGU6OlNpZ25hbGluZzoKICAgICAgICAgLy8gQ29kZSBi
ZWluZyBpbiBTaWduYWxpbmcgbW9kZSBtZWFucyB0aGF0IGl0IHBlcmZvcm1zIG5vIGJvdW5kcyBj
aGVja3MuCiAgICAgICAgIC8vIEl0cyBtZW1vcnksIGV2ZW4gaWYgZW1wdHksIGFic29sdXRlbHkg
bXVzdCBhbHNvIGJlIGluIFNpZ25hbGluZyBtb2RlCiAgICAgICAgIC8vIGJlY2F1c2UgdGhlIHBh
Z2UgcHJvdGVjdGlvbiBkZXRlY3RzIG91dC1vZi1ib3VuZHMgYWNjZXNzZXMuCiAgICAgICAgIHJl
dHVybiBtZW1vcnlNb2RlID09IFdhc206Ok1lbW9yeU1vZGU6OlNpZ25hbGluZzsKKyNlbmRpZgog
ICAgIH0KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29u
dmVudGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZl
bnRpb24uY3BwCmluZGV4IDIwM2M4NDNhZThlNi4uZWIwOTA5NTgxODQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5jcHAKQEAg
LTQwLDcgKzQwLDcgQEAgY29uc3QgSlNDYWxsaW5nQ29udmVudGlvbiYganNDYWxsaW5nQ29udmVu
dGlvbigpCiAgICAgICAgIFJlZ2lzdGVyU2V0IGNhbGxlclNhdmVSZWdpc3RlcnMgPSBSZWdpc3Rl
clNldDo6YWxsUmVnaXN0ZXJzKCk7CiAgICAgICAgIGNhbGxlclNhdmVSZWdpc3RlcnMuZXhjbHVk
ZShSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpKTsKIAotICAgICAgICBzdGF0aWNK
U0NhbGxpbmdDb252ZW50aW9uLmNvbnN0cnVjdChWZWN0b3I8UmVnPigpLCBWZWN0b3I8UmVnPigp
LCBSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpLCBXVEZNb3ZlKGNhbGxlclNhdmVS
ZWdpc3RlcnMpKTsKKyAgICAgICAgc3RhdGljSlNDYWxsaW5nQ29udmVudGlvbi5jb25zdHJ1Y3Qo
VmVjdG9yPEpTVmFsdWVSZWdzPigpLCBWZWN0b3I8RlBSUmVnPigpLCBSZWdpc3RlclNldDo6Y2Fs
bGVlU2F2ZVJlZ2lzdGVycygpLCBXVEZNb3ZlKGNhbGxlclNhdmVSZWdpc3RlcnMpKTsKICAgICB9
KTsKIAogICAgIHJldHVybiBzdGF0aWNKU0NhbGxpbmdDb252ZW50aW9uOwpAQCAtNTEsMzEgKzUx
LDUxIEBAIGNvbnN0IFdhc21DYWxsaW5nQ29udmVudGlvbiYgd2FzbUNhbGxpbmdDb252ZW50aW9u
KCkKICAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPFdhc21DYWxsaW5nQ29udmVudGlvbj4g
c3RhdGljV2FzbUNhbGxpbmdDb252ZW50aW9uOwogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBz
dGF0aWNXYXNtQ2FsbGluZ0NvbnZlbnRpb25GbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKHN0YXRp
Y1dhc21DYWxsaW5nQ29udmVudGlvbkZsYWcsIFtdICgpIHsKLSAgICAgICAgVmVjdG9yPFJlZz4g
Z3ByQXJndW1lbnRSZWdpc3RlcnMoR1BSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyk7
Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHUFJJbmZvOjpudW1iZXJPZkFyZ3Vt
ZW50UmVnaXN0ZXJzOyArK2kpCi0gICAgICAgICAgICBncHJBcmd1bWVudFJlZ2lzdGVyc1tpXSA9
IEdQUkluZm86OnRvQXJndW1lbnRSZWdpc3RlcihpKTsKKyNpZiBVU0UoSlNWQUxVRTY0KSAvLyBP
bmUgdmFsdWUgcGVyIEdQUgorICAgICAgICBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1
bWVudEpTUnMgPSBHUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzOworI2VsaWYgVVNF
KEpTVkFMVUUzMl82NCkgLy8gT25lIHZhbHVlIHBlciBjb25zZWN1dGl2ZSBHUFIgcGFpcgorICAg
ICAgICBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudEpTUnMgPSBHUFJJbmZvOjpu
dW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzIC8gMjsKKyNlbmRpZgorICAgICAgICBWZWN0b3I8SlNW
YWx1ZVJlZ3M+IGpzckFyZ3VtZW50UmVnaXN0ZXJzKG51bWJlck9mQXJndW1lbnRKU1JzKTsKKyAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mQXJndW1lbnRKU1JzOyArK2kp
IHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAganNyQXJndW1lbnRSZWdpc3RlcnNb
aV0gPSBKU1ZhbHVlUmVncyB7IEdQUkluZm86OnRvQXJndW1lbnRSZWdpc3RlcihpKSB9OworI2Vs
aWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIGpzckFyZ3VtZW50UmVnaXN0ZXJzW2ld
ID0gSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjp0b0FyZ3VtZW50UmVnaXN0ZXIoMiAqIGkgKyAxKSwg
R1BSSW5mbzo6dG9Bcmd1bWVudFJlZ2lzdGVyKDIgKiBpKSB9OworI2VuZGlmCisgICAgICAgIH0K
IAotICAgICAgICBWZWN0b3I8UmVnPiBmcHJBcmd1bWVudFJlZ2lzdGVycyhGUFJJbmZvOjpudW1i
ZXJPZkFyZ3VtZW50UmVnaXN0ZXJzKTsKKyAgICAgICAgVmVjdG9yPEZQUlJlZz4gZnByQXJndW1l
bnRSZWdpc3RlcnMoRlBSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyk7CiAgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBGUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0
ZXJzOyArK2kpCiAgICAgICAgICAgICBmcHJBcmd1bWVudFJlZ2lzdGVyc1tpXSA9IEZQUkluZm86
OnRvQXJndW1lbnRSZWdpc3RlcihpKTsKIAogICAgICAgICBSZWdpc3RlclNldCBzY3JhdGNoID0g
UmVnaXN0ZXJTZXQ6OmFsbEdQUnMoKTsKLSAgICAgICAgc2NyYXRjaC5leGNsdWRlKFJlZ2lzdGVy
U2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCkpOworICAgICAgICBzY3JhdGNoLmV4Y2x1ZGUoUmVn
aXN0ZXJTZXQ6OnZtQ2FsbGVlU2F2ZVJlZ2lzdGVycygpKTsKICAgICAgICAgc2NyYXRjaC5leGNs
dWRlKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7CiAgICAgICAgIHNjcmF0
Y2guZXhjbHVkZShSZWdpc3RlclNldDo6cmVzZXJ2ZWRIYXJkd2FyZVJlZ2lzdGVycygpKTsKICAg
ICAgICAgc2NyYXRjaC5leGNsdWRlKFJlZ2lzdGVyU2V0OjpzdGFja1JlZ2lzdGVycygpKTsKLSAg
ICAgICAgZm9yIChSZWcgcmVnIDogZ3ByQXJndW1lbnRSZWdpc3RlcnMpCi0gICAgICAgICAgICBz
Y3JhdGNoLmNsZWFyKHJlZyk7CisgICAgICAgIGZvciAoSlNWYWx1ZVJlZ3MganNyIDoganNyQXJn
dW1lbnRSZWdpc3RlcnMpIHsKKyAgICAgICAgICAgIHNjcmF0Y2guY2xlYXIoanNyLnBheWxvYWRH
UFIoKSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIHNjcmF0Y2guY2xlYXIo
anNyLnRhZ0dQUigpKTsKKyNlbmRpZgorICAgICAgICB9CiAKICAgICAgICAgVmVjdG9yPEdQUlJl
Zz4gc2NyYXRjaEdQUnM7CiAgICAgICAgIGZvciAoUmVnIHJlZyA6IHNjcmF0Y2gpCiAgICAgICAg
ICAgICBzY3JhdGNoR1BScy5hcHBlbmQocmVnLmdwcigpKTsKKworICAgICAgICAvLyBOZWVkIGF0
IGxlYXN0IG9uZSBKU1ZhbHVlIGFuZCBhbiBhZGRpdGlvbmFsIEdQUgorI2lmIFVTRShKU1ZBTFVF
NjQpCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHNjcmF0Y2hHUFJzLnNpemUoKSA+PSAyKTsKKyNl
bGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKHNjcmF0Y2hHUFJz
LnNpemUoKSA+PSAzKTsKKyNlbmRpZgogCiAgICAgICAgIFJlZ2lzdGVyU2V0IGNhbGxlclNhdmVS
ZWdpc3RlcnMgPSBSZWdpc3RlclNldDo6YWxsUmVnaXN0ZXJzKCk7CiAgICAgICAgIGNhbGxlclNh
dmVSZWdpc3RlcnMuZXhjbHVkZShSZWdpc3RlclNldDo6Y2FsbGVlU2F2ZVJlZ2lzdGVycygpKTsK
IAotICAgICAgICBzdGF0aWNXYXNtQ2FsbGluZ0NvbnZlbnRpb24uY29uc3RydWN0KFdURk1vdmUo
Z3ByQXJndW1lbnRSZWdpc3RlcnMpLCBXVEZNb3ZlKGZwckFyZ3VtZW50UmVnaXN0ZXJzKSwgV1RG
TW92ZShzY3JhdGNoR1BScyksIFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCksIFdU
Rk1vdmUoY2FsbGVyU2F2ZVJlZ2lzdGVycykpOworICAgICAgICBzdGF0aWNXYXNtQ2FsbGluZ0Nv
bnZlbnRpb24uY29uc3RydWN0KFdURk1vdmUoanNyQXJndW1lbnRSZWdpc3RlcnMpLCBXVEZNb3Zl
KGZwckFyZ3VtZW50UmVnaXN0ZXJzKSwgV1RGTW92ZShzY3JhdGNoR1BScyksIFJlZ2lzdGVyU2V0
OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCksIFdURk1vdmUoY2FsbGVyU2F2ZVJlZ2lzdGVycykpOwog
ICAgIH0pOwogCiAgICAgcmV0dXJuIHN0YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKaW5k
ZXggN2YxZTYwOTkxMmY0Li4zMTAyNTA4ZTBhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oCkBAIC01Nyw4ICs1NywxMyBAQCBz
dHJ1Y3QgQ2FsbEluZm9ybWF0aW9uIHsKICAgICB7CiAgICAgICAgIFJlZ2lzdGVyU2V0IHVzZWRS
ZXN1bHRSZWdpc3RlcnM7CiAgICAgICAgIGZvciAoVmFsdWVMb2NhdGlvbiBsb2MgOiByZXN1bHRz
KSB7Ci0gICAgICAgICAgICBpZiAobG9jLmlzUmVnKCkpCi0gICAgICAgICAgICAgICAgdXNlZFJl
c3VsdFJlZ2lzdGVycy5zZXQobG9jLnJlZygpKTsKKyAgICAgICAgICAgIGlmIChsb2MuaXNHUFIo
KSkgeworICAgICAgICAgICAgICAgIHVzZWRSZXN1bHRSZWdpc3RlcnMuc2V0KGxvYy5qc3IoKS5w
YXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgdXNl
ZFJlc3VsdFJlZ2lzdGVycy5zZXQobG9jLmpzcigpLnRhZ0dQUigpKTsKKyNlbmRpZgorICAgICAg
ICAgICAgfSBlbHNlIGlmIChsb2MuaXNGUFIoKSkKKyAgICAgICAgICAgICAgICB1c2VkUmVzdWx0
UmVnaXN0ZXJzLnNldChsb2MuZnByKCkpOwogICAgICAgICB9CiAKICAgICAgICAgUmVnaXN0ZXJB
dE9mZnNldExpc3Qgc2F2ZWRSZWdzKHVzZWRSZXN1bHRSZWdpc3RlcnMsIFJlZ2lzdGVyQXRPZmZz
ZXRMaXN0OjpaZXJvQmFzZWQpOwpAQCAtNzcsOCArODIsOCBAQCBjbGFzcyBXYXNtQ2FsbGluZ0Nv
bnZlbnRpb24gewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgaGVhZGVy
U2l6ZUluQnl0ZXMgPSBDYWxsRnJhbWU6OmhlYWRlclNpemVJblJlZ2lzdGVycyAqIHNpemVvZihS
ZWdpc3Rlcik7CiAKLSAgICBXYXNtQ2FsbGluZ0NvbnZlbnRpb24oVmVjdG9yPFJlZz4mJiBncHJz
LCBWZWN0b3I8UmVnPiYmIGZwcnMsIFZlY3RvcjxHUFJSZWc+JiYgc2NyYXRjaGVzLCBSZWdpc3Rl
clNldCYmIGNhbGxlZVNhdmVzLCBSZWdpc3RlclNldCYmIGNhbGxlclNhdmVzKQotICAgICAgICA6
IGdwckFyZ3MoV1RGTW92ZShncHJzKSkKKyAgICBXYXNtQ2FsbGluZ0NvbnZlbnRpb24oVmVjdG9y
PEpTVmFsdWVSZWdzPiYmIGpzcnMsIFZlY3RvcjxGUFJSZWc+JiYgZnBycywgVmVjdG9yPEdQUlJl
Zz4mJiBzY3JhdGNoZXMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVlU2F2ZXMsIFJlZ2lzdGVyU2V0JiYg
Y2FsbGVyU2F2ZXMpCisgICAgICAgIDoganNyQXJncyhXVEZNb3ZlKGpzcnMpKQogICAgICAgICAs
IGZwckFyZ3MoV1RGTW92ZShmcHJzKSkKICAgICAgICAgLCBwcm9sb2d1ZVNjcmF0Y2hHUFJzKFdU
Rk1vdmUoc2NyYXRjaGVzKSkKICAgICAgICAgLCBjYWxsZWVTYXZlUmVnaXN0ZXJzKFdURk1vdmUo
Y2FsbGVlU2F2ZXMpKQpAQCAtODgsMTAgKzkzLDExIEBAIHB1YmxpYzoKICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShXYXNtQ2FsbGluZ0NvbnZlbnRpb24pOwogCiBwcml2YXRlOgotICAgIEFyZ3Vt
ZW50TG9jYXRpb24gbWFyc2hhbGxMb2NhdGlvbkltcGwoQ2FsbFJvbGUgcm9sZSwgY29uc3QgVmVj
dG9yPFJlZz4mIHJlZ0FyZ3MsIHNpemVfdCYgY291bnQsIHNpemVfdCYgc3RhY2tPZmZzZXQpIGNv
bnN0CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUmVnVHlwZT4KKyAgICBBcmd1bWVudExvY2F0aW9u
IG1hcnNoYWxsTG9jYXRpb25JbXBsKENhbGxSb2xlIHJvbGUsIGNvbnN0IFZlY3RvcjxSZWdUeXBl
PiYgcmVnQXJncywgc2l6ZV90JiBjb3VudCwgc2l6ZV90JiBzdGFja09mZnNldCkgY29uc3QKICAg
ICB7CiAgICAgICAgIGlmIChjb3VudCA8IHJlZ0FyZ3Muc2l6ZSgpKQotICAgICAgICAgICAgcmV0
dXJuIEFyZ3VtZW50TG9jYXRpb246OnJlZyhyZWdBcmdzW2NvdW50KytdKTsKKyAgICAgICAgICAg
IHJldHVybiBBcmd1bWVudExvY2F0aW9uIHsgcmVnQXJnc1tjb3VudCsrXSB9OwogCiAgICAgICAg
IGNvdW50Kys7CiAgICAgICAgIEFyZ3VtZW50TG9jYXRpb24gcmVzdWx0ID0gcm9sZSA9PSBDYWxs
Um9sZTo6Q2FsbGVyID8gQXJndW1lbnRMb2NhdGlvbjo6c3RhY2tBcmd1bWVudChzdGFja09mZnNl
dCkgOiBBcmd1bWVudExvY2F0aW9uOjpzdGFjayhzdGFja09mZnNldCk7CkBAIC0xMTAsNyArMTE2
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgogICAgICAgICBjYXNl
IFR5cGVLaW5kOjpSZWZOdWxsOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpSdHQ6Ci0gICAgICAg
ICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwgZ3ByQXJncywgZ3BBcmd1bWVu
dENvdW50LCBzdGFja09mZnNldCk7CisgICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlv
bkltcGwocm9sZSwganNyQXJncywgZ3BBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CiAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OgogICAg
ICAgICAgICAgcmV0dXJuIG1hcnNoYWxsTG9jYXRpb25JbXBsKHJvbGUsIGZwckFyZ3MsIGZwQXJn
dW1lbnRDb3VudCwgc3RhY2tPZmZzZXQpOwpAQCAtMTU1LDggKzE2MSw4IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICBjb25zdCBWZWN0b3I8UmVnPiBncHJB
cmdzOwotICAgIGNvbnN0IFZlY3RvcjxSZWc+IGZwckFyZ3M7CisgICAgY29uc3QgVmVjdG9yPEpT
VmFsdWVSZWdzPiBqc3JBcmdzOworICAgIGNvbnN0IFZlY3RvcjxGUFJSZWc+IGZwckFyZ3M7CiAg
ICAgY29uc3QgVmVjdG9yPEdQUlJlZz4gcHJvbG9ndWVTY3JhdGNoR1BSczsKICAgICBjb25zdCBS
ZWdpc3RlclNldCBjYWxsZWVTYXZlUmVnaXN0ZXJzOwogICAgIGNvbnN0IFJlZ2lzdGVyU2V0IGNh
bGxlclNhdmVSZWdpc3RlcnM7CkBAIC0xNzEsOCArMTc3LDggQEAgcHVibGljOgogICAgIC8vIFdh
c206OkNvbnRleHQqJ3MgaW5zdGFuY2UuCiAgICAgc3RhdGljIGNvbnN0ZXhwciBwdHJkaWZmX3Qg
aW5zdGFuY2VTdGFja09mZnNldCA9IENhbGxGcmFtZVNsb3Q6OnRoaXNBcmd1bWVudCAqIHNpemVv
ZihFbmNvZGVkSlNWYWx1ZSk7CiAKLSAgICBKU0NhbGxpbmdDb252ZW50aW9uKFZlY3RvcjxSZWc+
JiYgZ3BycywgVmVjdG9yPFJlZz4mJiBmcHJzLCBSZWdpc3RlclNldCYmIGNhbGxlZVNhdmVzLCBS
ZWdpc3RlclNldCYmIGNhbGxlclNhdmVzKQotICAgICAgICA6IGdwckFyZ3MoV1RGTW92ZShncHJz
KSkKKyAgICBKU0NhbGxpbmdDb252ZW50aW9uKFZlY3RvcjxKU1ZhbHVlUmVncz4mJiBncHJzLCBW
ZWN0b3I8RlBSUmVnPiYmIGZwcnMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVlU2F2ZXMsIFJlZ2lzdGVy
U2V0JiYgY2FsbGVyU2F2ZXMpCisgICAgICAgIDoganNyQXJncyhXVEZNb3ZlKGdwcnMpKQogICAg
ICAgICAsIGZwckFyZ3MoV1RGTW92ZShmcHJzKSkKICAgICAgICAgLCBjYWxsZWVTYXZlUmVnaXN0
ZXJzKFdURk1vdmUoY2FsbGVlU2F2ZXMpKQogICAgICAgICAsIGNhbGxlclNhdmVSZWdpc3RlcnMo
V1RGTW92ZShjYWxsZXJTYXZlcykpCkBAIC0xODAsMTAgKzE4NiwxMSBAQCBwdWJsaWM6CiAKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShKU0NhbGxpbmdDb252ZW50aW9uKTsKIHByaXZhdGU6Ci0g
ICAgQXJndW1lbnRMb2NhdGlvbiBtYXJzaGFsbExvY2F0aW9uSW1wbChDYWxsUm9sZSByb2xlLCBj
b25zdCBWZWN0b3I8UmVnPiYgcmVnQXJncywgc2l6ZV90JiBjb3VudCwgc2l6ZV90JiBzdGFja09m
ZnNldCkgY29uc3QKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgUmVnVHlwZT4KKyAgICBBcmd1bWVu
dExvY2F0aW9uIG1hcnNoYWxsTG9jYXRpb25JbXBsKENhbGxSb2xlIHJvbGUsIGNvbnN0IFZlY3Rv
cjxSZWdUeXBlPiYgcmVnQXJncywgc2l6ZV90JiBjb3VudCwgc2l6ZV90JiBzdGFja09mZnNldCkg
Y29uc3QKICAgICB7CiAgICAgICAgIGlmIChjb3VudCA8IHJlZ0FyZ3Muc2l6ZSgpKQotICAgICAg
ICAgICAgcmV0dXJuIEFyZ3VtZW50TG9jYXRpb246OnJlZyhyZWdBcmdzW2NvdW50KytdKTsKKyAg
ICAgICAgICAgIHJldHVybiBBcmd1bWVudExvY2F0aW9uIHsgcmVnQXJnc1tjb3VudCsrXSB9Owog
CiAgICAgICAgIGNvdW50Kys7CiAgICAgICAgIEFyZ3VtZW50TG9jYXRpb24gcmVzdWx0ID0gcm9s
ZSA9PSBDYWxsUm9sZTo6Q2FsbGVyID8gQXJndW1lbnRMb2NhdGlvbjo6c3RhY2tBcmd1bWVudChz
dGFja09mZnNldCkgOiBBcmd1bWVudExvY2F0aW9uOjpzdGFjayhzdGFja09mZnNldCk7CkBAIC0y
MDEsNyArMjA4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVm
OgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJl
Zk51bGw6Ci0gICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwgZ3By
QXJncywgZ3BBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CisgICAgICAgICAgICByZXR1cm4g
bWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwganNyQXJncywgZ3BBcmd1bWVudENvdW50LCBzdGFj
a09mZnNldCk7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKICAgICAgICAgY2FzZSBUeXBl
S2luZDo6RjY0OgogICAgICAgICAgICAgcmV0dXJuIG1hcnNoYWxsTG9jYXRpb25JbXBsKHJvbGUs
IGZwckFyZ3MsIGZwQXJndW1lbnRDb3VudCwgc3RhY2tPZmZzZXQpOwpAQCAtMjI0LDEyICsyMzEs
MTIgQEAgcHVibGljOgogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpZ25hdHVyZS5h
czxGdW5jdGlvblNpZ25hdHVyZT4oKS0+YXJndW1lbnRDb3VudCgpOyArK2kpCiAgICAgICAgICAg
ICBwYXJhbXMuYXBwZW5kKG1hcnNoYWxsTG9jYXRpb24ocm9sZSwgc2lnbmF0dXJlLmFzPEZ1bmN0
aW9uU2lnbmF0dXJlPigpLT5hcmd1bWVudFR5cGUoaSksIGdwQXJndW1lbnRDb3VudCwgZnBBcmd1
bWVudENvdW50LCBzdGFja09mZnNldCkpOwogCi0gICAgICAgIFZlY3RvcjxBcmd1bWVudExvY2F0
aW9uLCAxPiByZXN1bHRzIHsgQXJndW1lbnRMb2NhdGlvbjo6cmVnKEdQUkluZm86OnJldHVyblZh
bHVlR1BSKSB9OworICAgICAgICBWZWN0b3I8QXJndW1lbnRMb2NhdGlvbiwgMT4gcmVzdWx0cyB7
IEFyZ3VtZW50TG9jYXRpb24geyBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiB9IH07CiAgICAgICAg
IHJldHVybiBDYWxsSW5mb3JtYXRpb24oV1RGTW92ZShwYXJhbXMpLCBXVEZNb3ZlKHJlc3VsdHMp
LCBzdGFja09mZnNldCk7CiAgICAgfQogCi0gICAgY29uc3QgVmVjdG9yPFJlZz4gZ3ByQXJnczsK
LSAgICBjb25zdCBWZWN0b3I8UmVnPiBmcHJBcmdzOworICAgIGNvbnN0IFZlY3RvcjxKU1ZhbHVl
UmVncz4ganNyQXJnczsKKyAgICBjb25zdCBWZWN0b3I8RlBSUmVnPiBmcHJBcmdzOwogICAgIGNv
bnN0IFJlZ2lzdGVyU2V0IGNhbGxlZVNhdmVSZWdpc3RlcnM7CiAgICAgY29uc3QgUmVnaXN0ZXJT
ZXQgY2FsbGVyU2F2ZVJlZ2lzdGVyczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtRm9ybWF0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
Rm9ybWF0LmgKaW5kZXggOWJlYTQ0ODY0NzgwLi5hOGRhMTIwMDQxYWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKQEAgLTQ0Miw3ICs0NDIsOSBAQCBzdHJ1Y3QgRW50
cnlwb2ludCB7CiBzdHJ1Y3QgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgV1RGX01BS0VfU1RSVUNU
X0ZBU1RfQUxMT0NBVEVEOwogICAgIFZlY3RvcjxDb2RlTG9jYXRpb25EYXRhTGFiZWxQdHI8V2Fz
bUVudHJ5UHRyVGFnPj4gY2FsbGVlTW92ZUxvY2F0aW9uczsKKyNpZiBFTkFCTEUoV0VCQVNTRU1C
TFlfQjNKSVQpCiAgICAgU3RhY2tNYXBzIHN0YWNrbWFwczsKKyNlbmRpZgogICAgIFZlY3RvcjxV
bmxpbmtlZEhhbmRsZXJJbmZvPiBleGNlcHRpb25IYW5kbGVyczsKICAgICBFbnRyeXBvaW50IGVu
dHJ5cG9pbnQ7CiAgICAgdW5zaWduZWQgb3NyRW50cnlTY3JhdGNoQnVmZmVyU2l6ZSB7IDAgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwCmluZGV4
IDQxMjBhZTZhOTQ5NC4uZmIyMWM5MmJmODFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21JbmRleE9yTmFtZS5jcHAKQEAgLTMwLDE2ICszMCwyMyBAQCBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIFdhc20gewogCiBJbmRleE9yTmFtZTo6SW5kZXhPck5hbWUoSW5kZXgg
aW5kZXgsIHN0ZDo6cGFpcjxjb25zdCBOYW1lKiwgUmVmUHRyPE5hbWVTZWN0aW9uPj4mJiBuYW1l
KQogeworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgc3RhdGljX2Fzc2VydChzaXplb2YobV9pbmRl
eE5hbWUuaW5kZXgpID09IHNpemVvZihtX2luZGV4TmFtZS5uYW1lKSwgImJpdC10YWdnaW5nIGRl
cGVuZHMgb24gc2l6ZXMgYmVpbmcgZXF1YWwiKTsKLQotICAgIGlmICgoaW5kZXggJiBhbGxUYWdz
KSB8fCAoYml0d2lzZV9jYXN0PEluZGV4PihuYW1lLmZpcnN0KSAmIGFsbFRhZ3MpKQotICAgICAg
ICAqdGhpcyA9IEluZGV4T3JOYW1lKCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGlmIChuYW1lLmZp
cnN0KQotICAgICAgICAgICAgbV9pbmRleE5hbWUubmFtZSA9IG5hbWUuZmlyc3Q7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIG1faW5kZXhOYW1lLmluZGV4ID0gaW5kZXhUYWcgfCBpbmRleDsK
KyAgICBBU1NFUlQoIShpbmRleCAmIGFsbFRhZ3MpKTsKKyAgICBBU1NFUlQoIShiaXR3aXNlX2Nh
c3Q8SW5kZXg+KG5hbWUuZmlyc3QpICYgYWxsVGFncykpOworICAgIGlmIChuYW1lLmZpcnN0KQor
ICAgICAgICBtX2luZGV4TmFtZS5uYW1lID0gbmFtZS5maXJzdDsKKyAgICBlbHNlCisgICAgICAg
IG1faW5kZXhOYW1lLmluZGV4ID0gaW5kZXhUYWcgfCBpbmRleDsKKyNlbGlmIFVTRShKU1ZBTFVF
MzJfNjQpCisgICAgaWYgKG5hbWUuZmlyc3QpIHsKKyAgICAgICAgbV9pbmRleE5hbWUubmFtZSA9
IG5hbWUuZmlyc3Q7CisgICAgICAgIG1fa2luZCA9IEtpbmQ6Ok5hbWU7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgbV9pbmRleE5hbWUuaW5kZXggPSBpbmRleDsKKyAgICAgICAgbV9raW5kID0gS2lu
ZDo6SW5kZXg7CiAgICAgfQorI2VuZGlmCiAgICAgbV9uYW1lU2VjdGlvbiA9IFdURk1vdmUobmFt
ZS5zZWNvbmQpOwogfQogCkBAIC00OSw4ICs1Niw4IEBAIFN0cmluZyBtYWtlU3RyaW5nKGNvbnN0
IEluZGV4T3JOYW1lJiBpb24pCiAgICAgICAgIHJldHVybiAid2FzbS1zdHViIl9zOwogICAgIGNv
bnN0IFN0cmluZyBtb2R1bGVOYW1lID0gaW9uLm5hbWVTZWN0aW9uKCktPm1vZHVsZU5hbWUuc2l6
ZSgpID8gU3RyaW5nKGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1bGVOYW1lLmRhdGEoKSwgaW9uLm5h
bWVTZWN0aW9uKCktPm1vZHVsZU5hbWUuc2l6ZSgpKSA6IFN0cmluZyhpb24ubmFtZVNlY3Rpb24o
KS0+bW9kdWxlSGFzaC5kYXRhKCksIGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1bGVIYXNoLnNpemUo
KSk7CiAgICAgaWYgKGlvbi5pc0luZGV4KCkpCi0gICAgICAgIHJldHVybiBtYWtlU3RyaW5nKG1v
ZHVsZU5hbWUsICIud2FzbS1mdW5jdGlvblsiLCBTdHJpbmc6Om51bWJlcihpb24ubV9pbmRleE5h
bWUuaW5kZXggJiB+SW5kZXhPck5hbWU6OmluZGV4VGFnKSwgJ10nKTsKLSAgICByZXR1cm4gbWFr
ZVN0cmluZyhtb2R1bGVOYW1lLCAiLndhc20tZnVuY3Rpb25bIiwgU3RyaW5nKGlvbi5tX2luZGV4
TmFtZS5uYW1lLT5kYXRhKCksIGlvbi5tX2luZGV4TmFtZS5uYW1lLT5zaXplKCkpLCAnXScpOwor
ICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhtb2R1bGVOYW1lLCAiLndhc20tZnVuY3Rpb25bIiwg
U3RyaW5nOjpudW1iZXIoaW9uLmluZGV4KCkpLCAnXScpOworICAgIHJldHVybiBtYWtlU3RyaW5n
KG1vZHVsZU5hbWUsICIud2FzbS1mdW5jdGlvblsiLCBTdHJpbmcoaW9uLm5hbWUoKS0+ZGF0YSgp
LCBpb24ubmFtZSgpLT5zaXplKCkpLCAnXScpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JO
YW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaAppbmRl
eCA1ZWVlZmM4OGFmNzYuLjJkOTAzMDExOGY4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUluZGV4T3JOYW1lLmgKQEAgLTQwLDE0ICs0MCw2NyBAQCBzdHJ1Y3QgTmFtZVNl
Y3Rpb247CiBzdHJ1Y3QgSW5kZXhPck5hbWUgewogICAgIHR5cGVkZWYgc2l6ZV90IEluZGV4Owog
Ci0gICAgSW5kZXhPck5hbWUoKSB7IG1faW5kZXhOYW1lLmluZGV4ID0gZW1wdHlUYWc7IH0KLSAg
ICBJbmRleE9yTmFtZShJbmRleCwgc3RkOjpwYWlyPGNvbnN0IE5hbWUqLCBSZWZQdHI8TmFtZVNl
Y3Rpb24+PiYmKTsKLSAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBiaXR3aXNlX2Nh
c3Q8SW5kZXg+KG1faW5kZXhOYW1lKSAmIGVtcHR5VGFnOyB9Ci0gICAgYm9vbCBpc0luZGV4KCkg
Y29uc3QgeyByZXR1cm4gYml0d2lzZV9jYXN0PEluZGV4PihtX2luZGV4TmFtZSkgJiBpbmRleFRh
ZzsgfQotICAgIGJvb2wgaXNOYW1lKCkgY29uc3QgeyByZXR1cm4gIShpc0VtcHR5KCkgfHwgaXNO
YW1lKCkpOyB9Ci0gICAgTmFtZVNlY3Rpb24qIG5hbWVTZWN0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9uYW1lU2VjdGlvbi5nZXQoKTsgfQorcHJpdmF0ZToKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQor
ICAgIGVudW0gY2xhc3MgS2luZCA6IHVpbnQ4X3QgeworICAgICAgICBFbXB0eSwKKyAgICAgICAg
SW5kZXgsCisgICAgICAgIE5hbWUKKyAgICB9OworI2VuZGlmCitwdWJsaWM6CiAKLSAgICBmcmll
bmQgU3RyaW5nIG1ha2VTdHJpbmcoY29uc3QgSW5kZXhPck5hbWUmKTsKKyAgICBJbmRleE9yTmFt
ZSgpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIG1faW5kZXhOYW1lLmluZGV4
ID0gZW1wdHlUYWc7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBtX2tpbmQgPSBL
aW5kOjpFbXB0eTsKKyNlbmRpZgorICAgIH0KKworICAgIEluZGV4T3JOYW1lKEluZGV4LCBzdGQ6
OnBhaXI8Y29uc3QgTmFtZSosIFJlZlB0cjxOYW1lU2VjdGlvbj4+JiYpOworCisgICAgYm9vbCBp
c0VtcHR5KCkgY29uc3QKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgcmV0dXJu
IGJpdHdpc2VfY2FzdDxJbmRleD4obV9pbmRleE5hbWUpICYgZW1wdHlUYWc7CisjZWxpZiBVU0Uo
SlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4gbV9raW5kID09IEtpbmQ6OkVtcHR5OworI2Vu
ZGlmCisgICAgfQorCisgICAgYm9vbCBpc0luZGV4KCkgY29uc3QKKyAgICB7CisjaWYgVVNFKEpT
VkFMVUU2NCkKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxJbmRleD4obV9pbmRleE5hbWUp
ICYgaW5kZXhUYWc7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4gbV9r
aW5kID09IEtpbmQ6OkluZGV4OworI2VuZGlmCisgICAgfQorCisgICAgYm9vbCBpc05hbWUoKSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuICEoaXNFbXB0eSgpIHx8IGlzSW5kZXgoKSk7Cisg
ICAgfQorCisgICAgSW5kZXggaW5kZXgoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlz
SW5kZXgoKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgcmV0dXJuIG1faW5kZXhOYW1l
LmluZGV4ICYgfmluZGV4VGFnOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgcmV0
dXJuIG1faW5kZXhOYW1lLmluZGV4OworI2VuZGlmCisgICAgfQorCisgICAgY29uc3QgTmFtZSog
bmFtZSgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNOYW1lKCkpOworICAgICAgICBy
ZXR1cm4gbV9pbmRleE5hbWUubmFtZTsKKyAgICB9CisKKyAgICBOYW1lU2VjdGlvbiogbmFtZVNl
Y3Rpb24oKSBjb25zdCB7IHJldHVybiBtX25hbWVTZWN0aW9uLmdldCgpOyB9CiAKIHByaXZhdGU6
CiAgICAgdW5pb24gewpAQCAtNTYsMTAgKzEwOSwxNSBAQCBwcml2YXRlOgogICAgIH0gbV9pbmRl
eE5hbWU7CiAgICAgUmVmUHRyPE5hbWVTZWN0aW9uPiBtX25hbWVTZWN0aW9uOwogCisjaWYgVVNF
KEpTVkFMVUU2NCkKICAgICAvLyBVc2UgdGhlIHRvcCBiaXRzIGFzIHRhZ3MuIE5laXRoZXIgcG9p
bnRlcnMgbm9yIHRoZSBmdW5jdGlvbiBpbmRleCBzcGFjZSBzaG91bGQgdXNlIHRoZW0uCiAgICAg
c3RhdGljIGNvbnN0ZXhwciBJbmRleCBpbmRleFRhZyA9IDF1bGwgPDwgKENIQVJfQklUICogc2l6
ZW9mKEluZGV4KSAtIDEpOwogICAgIHN0YXRpYyBjb25zdGV4cHIgSW5kZXggZW1wdHlUYWcgPSAx
dWxsIDw8IChDSEFSX0JJVCAqIHNpemVvZihJbmRleCkgLSAyKTsKICAgICBzdGF0aWMgY29uc3Rl
eHByIEluZGV4IGFsbFRhZ3MgPSBpbmRleFRhZyB8IGVtcHR5VGFnOworI2VsaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAvLyBVc2UgYW4gZXhwbGljaXQgdGFnIGFzIHBvaW50ZXJzIG1pZ2h0IGhh
dmUgaGlnaCBiaXRzIHNldAorICAgIEtpbmQgbV9raW5kOworI2VuZGlmCiB9OwogCiBTdHJpbmcg
bWFrZVN0cmluZyhjb25zdCBJbmRleE9yTmFtZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtSW5zdGFuY2UuaAppbmRleCBlNmRiM2EzYTA4YzQuLmJhZjI4Yzk3ZmUyMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmgKQEAgLTEwNiw4ICsxMDYsMjIg
QEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlQ2FjaGVkTWVtb3J5KCkKICAgICB7CiAgICAgICAg
IGlmIChtX21lbW9yeSAhPSBudWxscHRyKSB7Ci0gICAgICAgICAgICBtX2NhY2hlZE1lbW9yeSA9
IENhZ2VkUHRyPEdpZ2FjYWdlOjpQcmltaXRpdmUsIHZvaWQsIHRhZ0NhZ2VkUHRyPihtZW1vcnko
KS0+bWVtb3J5KCksIG1lbW9yeSgpLT5ib3VuZHNDaGVja2luZ1NpemUoKSk7Ci0gICAgICAgICAg
ICBtX2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSA9IG1lbW9yeSgpLT5ib3VuZHNDaGVja2luZ1Np
emUoKTsKKyAgICAgICAgICAgIC8vIE5vdGU6IEluIE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5n
LCBtYXBwZWRDYXBhY2l0eSgpID09IHNpemUoKS4KKyAgICAgICAgICAgIC8vIFdlIGFzc2VydCB0
aGlzIGluIHRoZSBjb25zdHJ1Y3RvciBvZiBNZW1vcnlIYW5kbGUuCisjaWYgQ1BVKEFSTSkKKyAg
ICAgICAgICAgIC8vIFNoYXJlZCBtZW1vcnkgcmVxdWlyZXMgc2lnbmFsaW5nIG1lbW9yeSB3aGlj
aCBpcyBub3QgYXZhaWxhYmxlCisgICAgICAgICAgICAvLyBvbiBBUk12NyB5ZXQuIEluIG9yZGVy
IHRvIGdldCBtb3JlIG9mIHRoZSB0ZXN0IHN1aXRlIHRvIHJ1biwgd2UKKyAgICAgICAgICAgIC8v
IGNhbiBzdGlsbCB1c2UgYSBzaGFyZWQgbWVtb3J5IGJ5IHVzaW5nIGJvdW5kcyBjaGVja2luZywg
YnkgdXNpbmcKKyAgICAgICAgICAgIC8vIHRoZSBhY3R1YWwgc2l6ZSBoZXJlLCBidXQgdGhpcyBt
ZWFucyB3ZSBjYW5ub3QgZ3JvdyB0aGUgc2hhcmVkCisgICAgICAgICAgICAvLyBtZW1vcnkgc2Fm
ZWx5IGluIGNhc2UgaXQncyB1c2VkIGJ5IG11bHRpcGxlIHRocmVhZHMuIE9uY2UgdGhlCisgICAg
ICAgICAgICAvLyBzaWduYWwgaGFuZGxlciBhcmUgYXZhaWxhYmxlLCBtX2NhY2hlZEJvdW5kc0No
ZWNraW5nU2l6ZSBzaG91bGQKKyAgICAgICAgICAgIC8vIGJlIHNldCB0byB1c2UgbWVtb3J5KCkt
Pm1hcHBlZENhcGFjaXR5KCkgbGlrZSBvdGhlciBwbGF0Zm9ybXMsCisgICAgICAgICAgICAvLyBh
bmQgYXQgdGhhdCBwb2ludCBncm93aW5nIHRoZSBzaGFyZWQgbWVtb3J5IHdpbGwgYmUgc2FmZS4K
KyAgICAgICAgICAgIG1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplID0gbWVtb3J5KCktPnNpemUo
KTsKKyNlbHNlCisgICAgICAgICAgICBtX2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSA9IG1lbW9y
eSgpLT5tYXBwZWRDYXBhY2l0eSgpOworI2VuZGlmCisgICAgICAgICAgICBtX2NhY2hlZE1lbW9y
eSA9IENhZ2VkUHRyPEdpZ2FjYWdlOjpQcmltaXRpdmUsIHZvaWQsIHRhZ0NhZ2VkUHRyPihtZW1v
cnkoKS0+bWVtb3J5KCksIG1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKTsKICAgICAgICAgICAg
IEFTU0VSVChtZW1vcnkoKS0+bWVtb3J5KCkgPT0gY2FjaGVkTWVtb3J5KCkpOwogICAgICAgICB9
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50
R2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVy
YXRvci5jcHAKaW5kZXggZDM3M2ZhZWU4MTY4Li41YzJiMDBlYTY0NjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcApAQCAtMzQxLDcg
KzM0MSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4gbV9ub3JtYWxpemVkQXJndW1l
bnRzW2luZGV4XTsKIAogICAgICAgICBjb25zdCBhdXRvJiBjYWxsaW5nQ29udmVudGlvbiA9IHdh
c21DYWxsaW5nQ29udmVudGlvbigpOwotICAgICAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9
IGNhbGxpbmdDb252ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgICAgICBjb25zdCB1aW50MzJf
dCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmpzckFyZ3Muc2l6ZSgpOwogICAgICAgICBj
b25zdCB1aW50MzJfdCBmcHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmZwckFyZ3Muc2l6ZSgp
OwogICAgICAgICByZXR1cm4gdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoaW5kZXggLSBtX2NvZGVC
bG9jay0+bV9udW1Bcmd1bWVudHMgKyBncHJDb3VudCArIGZwckNvdW50ICsgbnVtYmVyT2ZMTElu
dENhbGxlZVNhdmVSZWdpc3RlcnMpOwogICAgIH0KQEAgLTU5NSw3ICs1OTUsNyBAQCBhdXRvIExM
SW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIoY29uc3QgRnVuY3Rpb25TaWdu
YXR1cmUmIHNpZ25hdHVyZQogICAgIGNvbnN0IGF1dG8gaW5pdGlhbFN0YWNrU2l6ZSA9IG1fc3Rh
Y2tTaXplOwogCiAgICAgY29uc3QgYXV0byYgY2FsbGluZ0NvbnZlbnRpb24gPSB3YXNtQ2FsbGlu
Z0NvbnZlbnRpb24oKTsKLSAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252
ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2Fs
bGluZ0NvbnZlbnRpb24uanNyQXJncy5zaXplKCk7CiAgICAgY29uc3QgdWludDMyX3QgZnByQ291
bnQgPSBjYWxsaW5nQ29udmVudGlvbi5mcHJBcmdzLnNpemUoKTsKIAogICAgIHVpbnQzMl90IHN0
YWNrQ291bnQgPSAwOwpAQCAtNzQzLDcgKzc0Myw3IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmNh
bGxJbmZvcm1hdGlvbkZvckNhbGxlZShjb25zdCBGdW5jdGlvblNpZ25hdHVyZSYgc2lnbmF0dXJl
CiAgICAgbV9yZXN1bHRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc2lnbmF0dXJlLnJldHVybkNv
dW50KCkpOwogCiAgICAgY29uc3QgYXV0byYgY2FsbGluZ0NvbnZlbnRpb24gPSB3YXNtQ2FsbGlu
Z0NvbnZlbnRpb24oKTsKLSAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252
ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2Fs
bGluZ0NvbnZlbnRpb24uanNyQXJncy5zaXplKCk7CiAgICAgY29uc3QgdWludDMyX3QgZnByQ291
bnQgPSBjYWxsaW5nQ29udmVudGlvbi5mcHJBcmdzLnNpemUoKTsKIAogICAgIHVpbnQzMl90IGdw
ckluZGV4ID0gMDsKQEAgLTc5MSw3ICs3OTEsNyBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjphZGRB
cmd1bWVudHMoY29uc3QgVHlwZURlZmluaXRpb24mIHNpZ25hdHVyZSkgLT4gUGFydGlhbFJlcwog
ICAgIG1fbm9ybWFsaXplZEFyZ3VtZW50cy5yZXNpemUobV9jb2RlQmxvY2stPm1fbnVtQXJndW1l
bnRzKTsKIAogICAgIGNvbnN0IGF1dG8mIGNhbGxpbmdDb252ZW50aW9uID0gd2FzbUNhbGxpbmdD
b252ZW50aW9uKCk7Ci0gICAgY29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVu
dGlvbi5ncHJBcmdzLnNpemUoKTsKKyAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxp
bmdDb252ZW50aW9uLmpzckFyZ3Muc2l6ZSgpOwogICAgIGNvbnN0IHVpbnQzMl90IGZwckNvdW50
ID0gY2FsbGluZ0NvbnZlbnRpb24uZnByQXJncy5zaXplKCk7CiAgICAgY29uc3QgdWludDMyX3Qg
bWF4R1BSSW5kZXggPSBncHJDb3VudDsKICAgICBjb25zdCB1aW50MzJfdCBtYXhGUFJJbmRleCA9
IGdwckNvdW50ICsgZnByQ291bnQ7CkBAIC05NzQsNyArOTc0LDcgQEAgYXV0byBMTEludEdlbmVy
YXRvcjo6YWRkTG9vcChCbG9ja1NpZ25hdHVyZSBzaWduYXR1cmUsIFN0YWNrJiBlbmNsb3NpbmdT
dGFjaywgQ28KICAgICAgICAgb3NyRW50cnlEYXRhLmFwcGVuZChtX25vcm1hbGl6ZWRBcmd1bWVu
dHNbaV0pOwogCiAgICAgY29uc3QgYXV0byYgY2FsbGluZ0NvbnZlbnRpb24gPSB3YXNtQ2FsbGlu
Z0NvbnZlbnRpb24oKTsKLSAgICBjb25zdCB1aW50MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252
ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2Fs
bGluZ0NvbnZlbnRpb24uanNyQXJncy5zaXplKCk7CiAgICAgY29uc3QgdWludDMyX3QgZnByQ291
bnQgPSBjYWxsaW5nQ29udmVudGlvbi5mcHJBcmdzLnNpemUoKTsKICAgICBmb3IgKHVpbnQzMl90
IGkgPSBncHJDb3VudCArIGZwckNvdW50ICsgbnVtYmVyT2ZMTEludENhbGxlZVNhdmVSZWdpc3Rl
cnM7IGkgPCBtX2NvZGVCbG9jay0+bV9udW1WYXJzOyBpKyspCiAgICAgICAgIG9zckVudHJ5RGF0
YS5hcHBlbmQodmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoaSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcAppbmRleCA4YjQzNmQyZGNmNTYuLmUzNGY0NGNh
Y2FkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxh
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5jcHAK
QEAgLTExOSwxMiArMTE5LDE1IEBAIHZvaWQgTExJbnRQbGFuOjpkaWRDb21wbGV0ZUNvbXBpbGF0
aW9uKCkKICAgICAgICAgICAgIGVudHJ5cG9pbnRzW2ldID0gaml0LmxhYmVsKCk7CiAjaWYgQ1BV
KFg4Nl82NCkKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBjYWxsZWVTbG90KEND
YWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAq
IHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgLSBzaXplb2YoQ1BVUmVnaXN0ZXIp
KTsKLSNlbGlmIENQVShBUk02NCkgfHwgQ1BVKFJJU0NWNjQpCisjZWxpZiBDUFUoQVJNNjQpIHx8
IENQVShSSVNDVjY0KSB8fCBDUFUoQVJNKQogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzIGNhbGxlZVNsb3QoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgQ2FsbEZy
YW1lU2xvdDo6Y2FsbGVlICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSAtIHNp
emVvZihDYWxsZXJGcmFtZUFuZFBDKSk7CiAjZWxzZQogI2Vycm9yIFVuc3VwcG9ydGVkIGFyY2hp
dGVjdHVyZS4KICNlbmRpZgotICAgICAgICAgICAgaml0LnN0b3JlUHRyKENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbVB0cihDYWxsZWVCaXRzOjpib3hXYXNtKG1fY2FsbGVlc1ZlY3RvcltpXS5wdHIo
KSkpLCBjYWxsZWVTbG90KTsKKyAgICAgICAgICAgIGppdC5zdG9yZVB0cihDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW1QdHIoQ2FsbGVlQml0czo6Ym94V2FzbShtX2NhbGxlZXNWZWN0b3JbaV0ucHRy
KCkpKSwgY2FsbGVlU2xvdC53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyNpZiBVU0UoSlNW
QUxVRTMyXzY0KQorICAgICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tMzIoSlNWYWx1ZTo6V2FzbVRhZyksIGNhbGxlZVNsb3Qud2l0aE9mZnNldChUYWdPZmZzZXQp
KTsKKyNlbmRpZgogICAgICAgICAgICAganVtcHNbaV0gPSBqaXQuanVtcCgpOwogICAgICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5jcHAKaW5kZXggNDQwNzU5
NTJmMDA3Li4yNTUyZWZmMWQ5MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21NZW1vcnkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21N
ZW1vcnkuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAj
aW5jbHVkZSA8Y3N0cmluZz4KKyNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8bXV0ZXg+CiAK
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CkBAIC05OCwxMSArOTksOSBAQCBjbGFz
cyBNZW1vcnlNYW5hZ2VyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShNZW1vcnlNYW5hZ2VyKTsKIHB1YmxpYzoKLSAgICBNZW1vcnlNYW5h
Z2VyKCkKLSAgICAgICAgOiBtX21heEZhc3RNZW1vcnlDb3VudChPcHRpb25zOjptYXhOdW1XZWJB
c3NlbWJseUZhc3RNZW1vcmllcygpKQotICAgIHsKLSAgICB9Ci0gICAgCisgICAgTWVtb3J5TWFu
YWdlcigpID0gZGVmYXVsdDsKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVN
T1JZKQogICAgIE1lbW9yeVJlc3VsdCB0cnlBbGxvY2F0ZUZhc3RNZW1vcnkoKQogICAgIHsKICAg
ICAgICAgTWVtb3J5UmVzdWx0IHJlc3VsdCA9IFsmXSB7CkBAIC0xMjUsNyArMTI0LDcgQEAgcHVi
bGljOgogICAgICAgICAKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9Ci0gICAgCisKICAg
ICB2b2lkIGZyZWVGYXN0TWVtb3J5KHZvaWQqIGJhc2VQdHIpCiAgICAgewogICAgICAgICB7CkBA
IC0xMzYsNiArMTM1LDcgQEAgcHVibGljOgogICAgICAgICAKICAgICAgICAgZGF0YUxvZ0xuSWYo
T3B0aW9uczo6bG9nV2ViQXNzZW1ibHlNZW1vcnkoKSwgIkZyZWVkIHZpcnR1YWw7IHN0YXRlOiAi
LCAqdGhpcyk7CiAgICAgfQorI2VuZGlmCiAKICAgICBNZW1vcnlSZXN1bHQgdHJ5QWxsb2NhdGVH
cm93YWJsZUJvdW5kc0NoZWNraW5nTWVtb3J5KHNpemVfdCBtYXBwZWRDYXBhY2l0eSkKICAgICB7
CkBAIC0xNzAsMTEgKzE3MCwxMyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICAvLyBOT1RFOiBU
aGlzIGNhbiBiZSBjYWxsZWQgZnJvbSBhIHNpZ25hbCBoYW5kbGVyLCBidXQgb25seSBhZnRlciB3
ZSBwcm92ZWQgdGhhdCB3ZSdyZSBpbiBKSVQgY29kZSBvciBXYXNtTExJbnQgY29kZS4KICAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdO
QUxJTkdfTUVNT1JZKQogICAgICAgICBmb3IgKHZvaWQqIG1lbW9yeSA6IG1fZmFzdE1lbW9yaWVz
KSB7CiAgICAgICAgICAgICBjaGFyKiBzdGFydCA9IHN0YXRpY19jYXN0PGNoYXIqPihtZW1vcnkp
OwogICAgICAgICAgICAgaWYgKHN0YXJ0IDw9IGFkZHJlc3MgJiYgYWRkcmVzcyA8PSBzdGFydCAr
IE1lbW9yeTo6ZmFzdE1hcHBlZEJ5dGVzKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICB1aW50cHRyX3QgYWRkcmVzc1ZhbHVlID0gYml0
d2lzZV9jYXN0PHVpbnRwdHJfdD4oYWRkcmVzcyk7CiAgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBz
dGQ6OnVwcGVyX2JvdW5kKG1fZ3Jvd2FibGVCb3VuZHNDaGVja2luZ01lbW9yaWVzLmJlZ2luKCks
IG1fZ3Jvd2FibGVCb3VuZHNDaGVja2luZ01lbW9yaWVzLmVuZCgpLCBzdGQ6Om1ha2VfcGFpcihh
ZGRyZXNzVmFsdWUsIDApLAogICAgICAgICAgICAgW10oc3RkOjpwYWlyPHVpbnRwdHJfdCwgc2l6
ZV90PiBhLCBzdGQ6OnBhaXI8dWludHB0cl90LCBzaXplX3Q+IGIpIHsKQEAgLTE5MSw3ICsxOTMs
MTIgQEAgcHVibGljOgogICAgIC8vIFdlIGFsbG93IHBlb3BsZSB0byAiY29tbWl0IiBtb3JlIHdh
c20gbWVtb3J5IHRoYW4gdGhlcmUgaXMgb24gdGhlIHN5c3RlbSBzaW5jZSBtb3N0IG9mIHRoZSB0
aW1lCiAgICAgLy8gcGVvcGxlIGRvbid0IGFjdHVhbGx5IHdyaXRlIHRvIG1vc3Qgb2YgdGhhdCBt
ZW1vcnkuIFRoZXJlIGlzIHNvbWUgY2hhbmNlIHRoYXQgdGhpcyBnZXRzIHVzCiAgICAgLy8gSmV0
U2FtbWVkIGJ1dCB0aGF0J3MgcG9zc2libGUgYW55d2F5LgotICAgIGlubGluZSBzaXplX3QgbWVt
b3J5TGltaXQoKSBjb25zdCB7IHJldHVybiByYW1TaXplKCkgKiAzOyB9CisgICAgaW5saW5lIHNp
emVfdCBtZW1vcnlMaW1pdCgpIGNvbnN0CisgICAgeworICAgICAgICBpZiAocHJvZHVjdE92ZXJm
bG93czxzaXplX3Q+KHJhbVNpemUoKSwgIDMpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVt
ZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCk7CisgICAgICAgIHJldHVybiByYW1TaXplKCkgKiAz
OworICAgIH0KIAogICAgIC8vIEZJWE1FOiBJZGVhbGx5LCBibWFsbG9jIHdvdWxkIGhhdmUgdGhp
cyBraW5kIG9mIG1lY2hhbmlzbS4gVGhlbiwgd2Ugd291bGQganVzdCBmb3J3YXJkIHRvIHRoYXQK
ICAgICAvLyBtZWNoYW5pc20gaGVyZS4KQEAgLTIyNywxMyArMjM0LDE5IEBAIHB1YmxpYzoKICAg
ICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICB7CisjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgICAgIG91dC5wcmludCgiZmFz
dCBtZW1vcmllcyA9ICAiLCBtX2Zhc3RNZW1vcmllcy5zaXplKCksICIvIiwgbV9tYXhGYXN0TWVt
b3J5Q291bnQsICIsIGJ5dGVzID0gIiwgbV9waHlzaWNhbEJ5dGVzLCAiLyIsIG1lbW9yeUxpbWl0
KCkpOworI2Vsc2UKKyAgICAgICAgb3V0LnByaW50KCJmYXN0IG1lbW9yaWVzID0gTi5BLiwgYnl0
ZXMgPSAiLCBtX3BoeXNpY2FsQnl0ZXMsICIvIiwgbWVtb3J5TGltaXQoKSk7CisjZW5kaWYKICAg
ICB9CiAgICAgCiBwcml2YXRlOgogICAgIExvY2sgbV9sb2NrOwotICAgIHVuc2lnbmVkIG1fbWF4
RmFzdE1lbW9yeUNvdW50IHsgMCB9OworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdf
TUVNT1JZKQorICAgIHVuc2lnbmVkIG1fbWF4RmFzdE1lbW9yeUNvdW50IHsgT3B0aW9uczo6bWF4
TnVtV2ViQXNzZW1ibHlGYXN0TWVtb3JpZXMoKSB9OwogICAgIFZlY3Rvcjx2b2lkKj4gbV9mYXN0
TWVtb3JpZXM7CisjZW5kaWYKICAgICBTdGRTZXQ8c3RkOjpwYWlyPHVpbnRwdHJfdCwgc2l6ZV90
Pj4gbV9ncm93YWJsZUJvdW5kc0NoZWNraW5nTWVtb3JpZXM7CiAgICAgc2l6ZV90IG1fcGh5c2lj
YWxCeXRlcyB7IDAgfTsKIH07CkBAIC0zMDAsNiArMzEzLDcgQEAgTWVtb3J5SGFuZGxlOjp+TWVt
b3J5SGFuZGxlKCkKICAgICAgICAgdm9pZCogbWVtb3J5ID0gdGhpcy0+bWVtb3J5KCk7CiAgICAg
ICAgIG1lbW9yeU1hbmFnZXIoKS5mcmVlUGh5c2ljYWxCeXRlcyhtX3NpemUpOwogICAgICAgICBz
d2l0Y2ggKG1fbW9kZSkgeworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZ
KQogICAgICAgICBjYXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzoKICAgICAgICAgICAgIGlmICht
cHJvdGVjdChtZW1vcnksIE1lbW9yeTo6ZmFzdE1hcHBlZEJ5dGVzKCksIFBST1RfUkVBRCB8IFBS
T1RfV1JJVEUpKSB7CiAgICAgICAgICAgICAgICAgZGF0YUxvZygibXByb3RlY3QgZmFpbGVkOiAi
LCBzYWZlU3RyZXJyb3IoZXJybm8pLmRhdGEoKSwgIlxuIik7CkBAIC0zMDcsNiArMzIxLDcgQEAg
TWVtb3J5SGFuZGxlOjp+TWVtb3J5SGFuZGxlKCkKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IG1lbW9yeU1hbmFnZXIoKS5mcmVlRmFzdE1lbW9yeShtZW1vcnkpOwogICAgICAgICAgICAgYnJl
YWs7CisjZW5kaWYKICAgICAgICAgY2FzZSBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZzogewog
ICAgICAgICAgICAgc3dpdGNoIChtX3NoYXJpbmdNb2RlKSB7CiAgICAgICAgICAgICBjYXNlIE1l
bW9yeVNoYXJpbmdNb2RlOjpEZWZhdWx0OgpAQCAtMzk1LDYgKzQxMCw3IEBAIFJlZlB0cjxNZW1v
cnk+IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBpbml0aWFsLCBQYWdlQ291bnQgbWF4aW11
bSwgTWVtb3J5U2hhCiAgICAgaWYgKCFkb25lKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICAgICAgCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgY2hh
ciogZmFzdE1lbW9yeSA9IG51bGxwdHI7CiAgICAgaWYgKE9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5
RmFzdE1lbW9yeSgpKSB7CiAgICAgICAgIHRyeUFsbG9jYXRlKApAQCAtNDEzLDcgKzQyOSw4IEBA
IFJlZlB0cjxNZW1vcnk+IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBpbml0aWFsLCBQYWdl
Q291bnQgbWF4aW11bSwgTWVtb3J5U2hhCiAKICAgICAgICAgcmV0dXJuIE1lbW9yeTo6Y3JlYXRl
KGFkb3B0UmVmKCpuZXcgTWVtb3J5SGFuZGxlKGZhc3RNZW1vcnksIGluaXRpYWxCeXRlcywgTWVt
b3J5OjpmYXN0TWFwcGVkQnl0ZXMoKSwgaW5pdGlhbCwgbWF4aW11bSwgc2hhcmluZ01vZGUsIE1l
bW9yeU1vZGU6OlNpZ25hbGluZykpLCBXVEZNb3ZlKG5vdGlmeU1lbW9yeVByZXNzdXJlKSwgV1RG
TW92ZShzeW5jVHJ5VG9SZWNsYWltTWVtb3J5KSwgV1RGTW92ZShncm93U3VjY2Vzc0NhbGxiYWNr
KSk7CiAgICAgfQotICAgIAorI2VuZGlmCisKICAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6Y3Jh
c2hJZldlYkFzc2VtYmx5Q2FudEZhc3RNZW1vcnkoKSkpCiAgICAgICAgIHdlYkFzc2VtYmx5Q291
bGRudEdldEZhc3RNZW1vcnkoKTsKIApAQCAtNDU2LDYgKzQ3Myw3IEBAIFJlZlB0cjxNZW1vcnk+
IE1lbW9yeTo6dHJ5Q3JlYXRlKFBhZ2VDb3VudCBpbml0aWFsLCBQYWdlQ291bnQgbWF4aW11bSwg
TWVtb3J5U2hhCiAKIE1lbW9yeTo6fk1lbW9yeSgpID0gZGVmYXVsdDsKIAorI2lmIEVOQUJMRShX
RUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogc2l6ZV90IE1lbW9yeTo6ZmFzdE1hcHBlZFJl
ZHpvbmVCeXRlcygpCiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHNpemVfdD4oUGFnZUNvdW50
OjpwYWdlU2l6ZSkgKiBPcHRpb25zOjp3ZWJBc3NlbWJseUZhc3RNZW1vcnlSZWR6b25lUGFnZXMo
KTsKQEAgLTQ2Niw2ICs0ODQsNyBAQCBzaXplX3QgTWVtb3J5OjpmYXN0TWFwcGVkQnl0ZXMoKQog
ICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKHVpbnQ2NF90KSA9PSBzaXplb2Yoc2l6ZV90KSwgIldl
IHJlbHkgb24gYWxsb3dpbmcgdGhlIG1heGltdW0gc2l6ZSBvZiBNZW1vcnkgd2UgbWFwIHRvIGJl
IDJeMzIgKyByZWR6b25lIHdoaWNoIGlzIGxhcmdlciB0aGFuIGZpdHMgaW4gYSAzMi1iaXQgaW50
ZWdlciB0aGF0IHdlJ2QgcGFzcyB0byBtcHJvdGVjdCBpZiB0aGlzIGRpZG4ndCBob2xkLiIpOwog
ICAgIHJldHVybiAoc3RhdGljX2Nhc3Q8c2l6ZV90PigxKSA8PCAzMikgKyBmYXN0TWFwcGVkUmVk
em9uZUJ5dGVzKCk7CiB9CisjZW5kaWYKIAogYm9vbCBNZW1vcnk6OmFkZHJlc3NJc0luR3Jvd2Fi
bGVPckZhc3RNZW1vcnkodm9pZCogYWRkcmVzcykKIHsKQEAgLTQ3NCw2ICs0OTMsMTQgQEAgYm9v
bCBNZW1vcnk6OmFkZHJlc3NJc0luR3Jvd2FibGVPckZhc3RNZW1vcnkodm9pZCogYWRkcmVzcykK
IAogRXhwZWN0ZWQ8UGFnZUNvdW50LCBNZW1vcnk6Okdyb3dGYWlsUmVhc29uPiBNZW1vcnk6Omdy
b3dTaGFyZWQoUGFnZUNvdW50IGRlbHRhKQogeworI2lmIENQVShBUk0pCisgICAgLy8gU2hhcmVk
IG1lbW9yeSByZXF1aXJlcyBzaWduYWxpbmcgbWVtb3J5IHdoaWNoIGlzIG5vdCBhdmFpbGFibGUg
b24gQVJNdjcKKyAgICAvLyB5ZXQuIEluIG9yZGVyIHRvIGdldCBtb3JlIG9mIHRoZSB0ZXN0IHN1
aXRlIHRvIHJ1biwgd2UgY2FuIHN0aWxsIHVzZQorICAgIC8vIGEgc2hhcmVkIG1tZW9yeSBieSB1
c2luZyBib3VuZHMgY2hlY2tpbmcsIGJ1dCB3ZSBjYW5ub3QgZ3JvdyBpdCBzYWZlbHkKKyAgICAv
LyBpbiBjYXNlIGl0J3MgdXNlZCBieSBtdWx0aXBsZSB0aHJlYWRzLiBPbmNlIHRoZSBzaWduYWwg
aGFuZGxlciBhcmUKKyAgICAvLyBhdmFpbGFibGUsIHRoaXMgY2FuIGJlIHJlbGF4ZWQuCisgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgogICAgIFdhc206OlBhZ2VDb3Vu
dCBvbGRQYWdlQ291bnQ7CiAgICAgV2FzbTo6UGFnZUNvdW50IG5ld1BhZ2VDb3VudDsKICAgICBh
dXRvIHJlc3VsdCA9IChbJl0oKSAtPiBFeHBlY3RlZDxQYWdlQ291bnQsIE1lbW9yeTo6R3Jvd0Zh
aWxSZWFzb24+IHsKQEAgLTUyNCw4ICs1NTEsMTQgQEAgRXhwZWN0ZWQ8UGFnZUNvdW50LCBNZW1v
cnk6Okdyb3dGYWlsUmVhc29uPiBNZW1vcnk6Omdyb3dTaGFyZWQoUGFnZUNvdW50IGRlbHRhKQog
ICAgICAgICBtX2hhbmRsZS0+Z3Jvd1RvU2l6ZShkZXNpcmVkU2l6ZSk7CiAgICAgICAgIHJldHVy
biBvbGRQYWdlQ291bnQ7CiAgICAgfSgpKTsKLSAgICBpZiAocmVzdWx0KQorICAgIGlmIChyZXN1
bHQpIHsKICAgICAgICAgbV9ncm93U3VjY2Vzc0NhbGxiYWNrKEdyb3dTdWNjZXNzVGFnLCBvbGRQ
YWdlQ291bnQsIG5ld1BhZ2VDb3VudCk7CisgICAgICAgIC8vIFVwZGF0ZSBjYWNoZSBmb3IgaW5z
dGFuY2UKKyAgICAgICAgZm9yIChhdXRvJiBpbnN0YW5jZSA6IG1faW5zdGFuY2VzKSB7CisgICAg
ICAgICAgICBpZiAoaW5zdGFuY2UuZ2V0KCkgIT0gbnVsbHB0cikKKyAgICAgICAgICAgICAgICBp
bnN0YW5jZS5nZXQoKS0+dXBkYXRlQ2FjaGVkTWVtb3J5KCk7CisgICAgICAgIH0KKyAgICB9CiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtNTg4LDYgKzYyMSw3IEBAIEV4cGVjdGVkPFBhZ2VD
b3VudCwgTWVtb3J5OjpHcm93RmFpbFJlYXNvbj4gTWVtb3J5Ojpncm93KFBhZ2VDb3VudCBkZWx0
YSkKICAgICAgICAgQVNTRVJUKG1lbW9yeSgpID09IG5ld01lbW9yeSk7CiAgICAgICAgIHJldHVy
biBzdWNjZXNzKCk7CiAgICAgfQorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVN
T1JZKQogICAgIGNhc2UgTWVtb3J5TW9kZTo6U2lnbmFsaW5nOiB7CiAgICAgICAgIHNpemVfdCBl
eHRyYUJ5dGVzID0gZGVzaXJlZFNpemUgLSBzaXplKCk7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KGV4dHJhQnl0ZXMpOwpAQCAtNjEzLDYgKzY0Nyw3IEBAIEV4cGVjdGVkPFBhZ2VDb3VudCwgTWVt
b3J5OjpHcm93RmFpbFJlYXNvbj4gTWVtb3J5Ojpncm93KFBhZ2VDb3VudCBkZWx0YSkKICAgICAg
ICAgbV9oYW5kbGUtPmdyb3dUb1NpemUoZGVzaXJlZFNpemUpOwogICAgICAgICByZXR1cm4gc3Vj
Y2VzcygpOwogICAgIH0KKyNlbmRpZgogICAgIH0KIAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CkBAIC02NDYsNyArNjgxLDggQEAgYm9vbCBNZW1vcnk6OmNvcHkodWludDMyX3Qg
ZHN0QWRkcmVzcywgdWludDMyX3Qgc3JjQWRkcmVzcywgdWludDMyX3QgY291bnQpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCiAgICAgdWludDhfdCogYmFzZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dDhfdCo+KG1lbW9yeSgpKTsKLSAgICBtZW1jcHkoYmFzZSArIGRzdEFkZHJlc3MsIGJhc2UgKyBz
cmNBZGRyZXNzLCBjb3VudCk7CisgICAgLy8gU291cmNlIGFuZCBkZXN0aW5hdGlvbiBhcmVhcyBt
aWdodCBvdmVybGFwLCBzbyB1c2luZyBtZW1tb3ZlLgorICAgIG1lbW1vdmUoYmFzZSArIGRzdEFk
ZHJlc3MsIGJhc2UgKyBzcmNBZGRyZXNzLCBjb3VudCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaAppbmRleCBmNWM1OGZjZjk2ZjIu
LjkyNzk2M2I5MjRjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU1lbW9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaApA
QCAtNjEsNyArNjEsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCogbWVtb3J5KCkgY29uc3Q7CiAgICAg
c2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KICAgICBzaXplX3QgbWFwcGVk
Q2FwYWNpdHkoKSBjb25zdCB7IHJldHVybiBtX21hcHBlZENhcGFjaXR5OyB9Ci0gICAgc2l6ZV90
IGJvdW5kc0NoZWNraW5nU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWFwcGVkQ2FwYWNpdHk7IH0K
ICAgICBQYWdlQ291bnQgaW5pdGlhbCgpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbDsgfQogICAg
IFBhZ2VDb3VudCBtYXhpbXVtKCkgY29uc3QgeyByZXR1cm4gbV9tYXhpbXVtOyB9CiAgICAgTWVt
b3J5U2hhcmluZ01vZGUgc2hhcmluZ01vZGUoKSBjb25zdCB7IHJldHVybiBtX3NoYXJpbmdNb2Rl
OyB9CkBAIC0xMDYsMTQgKzEwNSwxNiBAQCBwdWJsaWM6CiAKICAgICBKU19FWFBPUlRfUFJJVkFU
RSB+TWVtb3J5KCk7CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkK
ICAgICBzdGF0aWMgc2l6ZV90IGZhc3RNYXBwZWRSZWR6b25lQnl0ZXMoKTsKICAgICBzdGF0aWMg
c2l6ZV90IGZhc3RNYXBwZWRCeXRlcygpOyAvLyBJbmNsdWRlcyByZWR6b25lLgorI2VuZGlmCiAg
ICAgc3RhdGljIGJvb2wgYWRkcmVzc0lzSW5Hcm93YWJsZU9yRmFzdE1lbW9yeSh2b2lkKik7CiAK
ICAgICB2b2lkKiBtZW1vcnkoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZS0+bWVtb3J5KCk7IH0K
ICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxlLT5zaXplKCk7IH0KICAg
ICBQYWdlQ291bnQgc2l6ZUluUGFnZXMoKSBjb25zdCB7IHJldHVybiBQYWdlQ291bnQ6OmZyb21C
eXRlcyhzaXplKCkpOyB9Ci0gICAgc2l6ZV90IGJvdW5kc0NoZWNraW5nU2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIG1faGFuZGxlLT5ib3VuZHNDaGVja2luZ1NpemUoKTsgfQorICAgIHNpemVfdCBtYXBw
ZWRDYXBhY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxlLT5tYXBwZWRDYXBhY2l0eSgpOyB9
CiAgICAgUGFnZUNvdW50IGluaXRpYWwoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZS0+aW5pdGlh
bCgpOyB9CiAgICAgUGFnZUNvdW50IG1heGltdW0oKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZS0+
bWF4aW11bSgpOyB9CiAgICAgTWVtb3J5SGFuZGxlJiBoYW5kbGUoKSB7IHJldHVybiBtX2hhbmRs
ZS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1l
bW9yeUluZm9ybWF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1v
cnlJbmZvcm1hdGlvbi5jcHAKaW5kZXggMjY1MmRlNzJlZDU2Li42MGZhZDYzZWYwZTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9u
LmNwcApAQCAtNDEsOCArNDEsMTUgQEAgY29uc3QgUGlubmVkUmVnaXN0ZXJJbmZvJiBQaW5uZWRS
ZWdpc3RlckluZm86OmdldCgpCiAgICAgICAgIHVuc2lnbmVkIG51bWJlck9mUGlubmVkUmVnaXN0
ZXJzID0gMjsKICAgICAgICAgaWYgKCFDb250ZXh0Ojp1c2VGYXN0VExTKCkpCiAgICAgICAgICAg
ICArK251bWJlck9mUGlubmVkUmVnaXN0ZXJzOworI2lmIENQVShYODZfNjQpIHx8IENQVShBUk02
NCkKICAgICAgICAgR1BSUmVnIGJhc2VNZW1vcnlQb2ludGVyID0gR1BSSW5mbzo6cmVnQ1MzOwog
ICAgICAgICBHUFJSZWcgYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIgPSBHUFJJbmZvOjpyZWdD
UzQ7CisjZWxpZiBDUFUoQVJNKQorICAgICAgICAvLyBOb3QgZW5vdWdoIHJlZ2lzdGVycy4gcmVn
Q1MwIGlzIHRoZSB3YXNtIGluc3RhbmNlLCByZWdDUzEgaXMgTExJbnQgUEIKKyAgICAgICAgbnVt
YmVyT2ZQaW5uZWRSZWdpc3RlcnMgLT0gMjsKKyAgICAgICAgR1BSUmVnIGJhc2VNZW1vcnlQb2lu
dGVyID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgR1BSUmVnIGJvdW5kc0NoZWNraW5nU2l6ZVJl
Z2lzdGVyID0gSW52YWxpZEdQUlJlZzsKKyNlbmRpZgogICAgICAgICBHUFJSZWcgd2FzbUNvbnRl
eHRJbnN0YW5jZVBvaW50ZXIgPSBJbnZhbGlkR1BSUmVnOwogICAgICAgICBpZiAoIUNvbnRleHQ6
OnVzZUZhc3RUTFMoKSkKICAgICAgICAgICAgIHdhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyID0g
R1BSSW5mbzo6cmVnQ1MwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU1lbW9yeUluZm9ybWF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
TWVtb3J5SW5mb3JtYXRpb24uaAppbmRleCA4NTRmYmE1NGUzMzcuLjI5ZmNiZGI2ZDQ2MyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9u
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9u
LmgKQEAgLTUyLDEwICs1MiwxMSBAQCBwdWJsaWM6CiAgICAgUmVnaXN0ZXJTZXQgdG9TYXZlKE1l
bW9yeU1vZGUgbW9kZSkgY29uc3QKICAgICB7CiAgICAgICAgIFJlZ2lzdGVyU2V0IHJlc3VsdDsK
LSAgICAgICAgcmVzdWx0LnNldChiYXNlTWVtb3J5UG9pbnRlcik7CisgICAgICAgIGlmIChiYXNl
TWVtb3J5UG9pbnRlciAhPSBJbnZhbGlkR1BSUmVnKQorICAgICAgICAgICAgcmVzdWx0LnNldChi
YXNlTWVtb3J5UG9pbnRlcik7CiAgICAgICAgIGlmICh3YXNtQ29udGV4dEluc3RhbmNlUG9pbnRl
ciAhPSBJbnZhbGlkR1BSUmVnKQogICAgICAgICAgICAgcmVzdWx0LnNldCh3YXNtQ29udGV4dElu
c3RhbmNlUG9pbnRlcik7Ci0gICAgICAgIGlmIChtb2RlICE9IE1lbW9yeU1vZGU6OlNpZ25hbGlu
ZykKKyAgICAgICAgaWYgKG1vZGUgPT0gTWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcgJiYgYm91
bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIgIT0gSW52YWxpZEdQUlJlZykKICAgICAgICAgICAgIHJl
c3VsdC5zZXQoYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIpOwogICAgICAgICByZXR1cm4gcmVz
dWx0OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21N
ZW1vcnlNb2RlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2Rl
LmNwcAppbmRleCA5YmUwNGQ3N2IwNmIuLmYzM2IwNTI1MTk4MyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmNwcApAQCAtMzcsNyArMzcsOSBAQCBjb25z
dCBjaGFyKiBtYWtlU3RyaW5nKE1lbW9yeU1vZGUgbW9kZSkKIHsKICAgICBzd2l0Y2ggKG1vZGUp
IHsKICAgICBjYXNlIE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nOiByZXR1cm4gIkJvdW5kc0No
ZWNraW5nIjsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBj
YXNlIE1lbW9yeU1vZGU6OlNpZ25hbGluZzogcmV0dXJuICJTaWduYWxpbmciOworI2VuZGlmCiAg
ICAgfQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuICIiOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlNb2RlLmgKaW5kZXggMDJjZmNm
ZTQ5ZjQ3Li5kNzExYWZhZjMwMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21NZW1vcnlNb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU1lbW9yeU1vZGUuaApAQCAtMzQsNyArMzQsOSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IFdhc20gewogLy8gRklYTUU6IFdlIHNob3VsZCBzdXBwb3J0IG90aGVyIG1vZGVzLiBzZWU6IGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI2OTMKIGVudW0gY2xhc3Mg
TWVtb3J5TW9kZSA6IHVpbnQ4X3QgewogICAgIEJvdW5kc0NoZWNraW5nLAorI2lmIEVOQUJMRShX
RUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIFNpZ25hbGluZworI2VuZGlmCiB9Owog
CiBzdGF0aWMgY29uc3RleHByIHNpemVfdCBOdW1iZXJPZk1lbW9yeU1vZGVzID0gMjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5jcHAKaW5kZXggYjZj
NWMyNzU1MzExLi45ZmM5MWI5ZDljNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21PcGNvZGVPcmlnaW4uY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiV2FzbU9wY29kZU9yaWdpbi5oIgogCi0jaWYgRU5BQkxFKFdFQkFT
U0VNQkxZKQorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9CM0pJVCkKIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBXYXNtIHsKIApAQCAtMzcsNCArMzcsNCBAQCB2b2lkIE9wY29kZU9yaWdpbjo6
ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2Fz
bQogCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQorI2VuZGlmIC8vIEVOQUJMRShXRUJB
U1NFTUJMWV9CM0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21PcGNvZGVPcmlnaW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVP
cmlnaW4uaAppbmRleCBhMGQ4ZGYzYWVmMTkuLjVjNGI2NzZkNWM2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGNvZGVPcmlnaW4uaApAQCAtMjUsNyArMjUsNyBAQAog
CiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyNpZiBFTkFCTEUoV0VC
QVNTRU1CTFlfQjNKSVQpCiAKICNpbmNsdWRlICJCM09yaWdpbi5oIgogI2luY2x1ZGUgIldhc21G
b3JtYXQuaCIKQEAgLTYwLDQgKzYwLDQgQEAgcHJpdmF0ZToKIAogfSB9IC8vIG5hbWVzcGFjZSBK
U0M6Oldhc20KIAotI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCQVNTRU1CTFlfQjNKSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
T3BlcmF0aW9ucy5jcHAKaW5kZXggZjJmNjExYTZiZTZlLi42NDNjNDdjZGYzMDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAKQEAgLTQ2OCw0MyAr
NDY4LDQzIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVW53aW5kLCB2
b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogICAgIEFTU0VSVCghIXZtLmNhbGxGcmFtZUZv
ckNhdGNoKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRU
b0k2NCwgaW50NjRfdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCwgaW50NjRfdCwgKENhbGxG
cmFtZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSB2KSkKIHsKICAgICAvLyBGSVhNRTogQ29u
c2lkZXIgcGFzc2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RlYWQuCiAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIwNgogICAgIFZNJiB2bSA9
IGNhbGxGcmFtZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICByZXR1cm4gdi50b0JpZ0ludDY0KGNhbGxGcmFtZS0+
bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpOworICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUodiku
dG9CaWdJbnQ2NChjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKTsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0Y2NCwgZG91YmxlLCAoQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ29udmVydFRvRjY0LCBkb3VibGUsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRW5j
b2RlZEpTVmFsdWUgdikpCiB7CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJB
c3NlbWJseUluc3RhbmNlKiBpbnN0ZWFkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDMyMDYKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0
ZWRWTSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7
Ci0gICAgcmV0dXJuIHYudG9OdW1iZXIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZt
KSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh2KS50b051bWJlcihjYWxsRnJhbWUtPmxl
eGljYWxHbG9iYWxPYmplY3Qodm0pKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNvbnZlcnRUb0kzMiwgaW50MzJfdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1Zh
bHVlIHYpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0kzMiwg
aW50MzJfdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSB2KSkKIHsKICAg
ICAvLyBGSVhNRTogQ29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3Rl
YWQuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIw
NgogICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAgTmF0aXZlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICByZXR1cm4gdi50b0ludDMy
KGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpOworICAgIHJldHVybiBKU1ZhbHVl
OjpkZWNvZGUodikudG9JbnQzMihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKTsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0YzMiwgZmxv
YXQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9GMzIsIGZsb2F0LCAoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUsIEVuY29kZWRKU1ZhbHVlIHYpKQogewogICAgIC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5n
IEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGVhZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjA2CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5k
ZXByZWNhdGVkVk0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
RnJhbWUpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4odi50b051bWJlcihjYWxsRnJh
bWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZs
b2F0PihKU1ZhbHVlOjpkZWNvZGUodikudG9OdW1iZXIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KHZtKSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29u
dmVydFRvQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJbnN0
YW5jZSogaW5zdGFuY2UsIGludDY0X3QgdmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBFbmNvZGVkV2FzbVZhbHVlIHZhbHVlKSkKIHsK
ICAgICBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGpzSW5zdGFuY2UgPSBpbnN0YW5jZS0+b3duZXI8
SlNXZWJBc3NlbWJseUluc3RhbmNlPigpOwogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QgPSBqc0luc3RhbmNlLT5nbG9iYWxPYmplY3QoKTsKQEAgLTUxNCw3ICs1MTQsNyBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50LCBFbmNvZGVkSlNW
YWx1ZSwgKENhbGxGcmFtZSogYwogfQogCiAvLyBodHRwczovL3dlYmFzc2VtYmx5LmdpdGh1Yi5p
by9tdWx0aS12YWx1ZS9qcy1hcGkvaW5kZXguaHRtbCNydW4tYS1ob3N0LWZ1bmN0aW9uCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBjb25zdCBUeXBlRGVmaW5pdGlv
biogdHlwZSwgSlNWYWx1ZSByZXN1bHQsIHVpbnQ2NF90KiByZWdpc3RlclJlc3VsdHMsIHVpbnQ2
NF90KiBjYWxsZWVGcmFtZVBvaW50ZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNl
KiBpbnN0YW5jZSwgY29uc3QgVHlwZURlZmluaXRpb24qIHR5cGUsIEVuY29kZWRKU1ZhbHVlIGVu
Y1Jlc3VsdCwgdWludDY0X3QqIHJlZ2lzdGVyUmVzdWx0cywgdWludDY0X3QqIGNhbGxlZUZyYW1l
UG9pbnRlcikpCiB7CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJs
eUluc3RhbmNlKiBpbnN0ZWFkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDMyMDYKQEAgLTUzMSw2ICs1MzEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgSQogCiAgICAgdW5zaWduZWQgaXRlcmF0aW9uQ291bnQgPSAwOwogICAgIE1hcmtlZEFyZ3Vt
ZW50QnVmZmVyIGJ1ZmZlcjsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShl
bmNSZXN1bHQpOwogICAgIGZvckVhY2hJbkl0ZXJhYmxlKGdsb2JhbE9iamVjdCwgcmVzdWx0LCBb
Jl0gKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHZhbHVlKSAtPiB2b2lkIHsKICAgICAg
ICAgaWYgKGJ1ZmZlci5zaXplKCkgPCBzaWduYXR1cmUtPnJldHVybkNvdW50KCkpCiAgICAgICAg
ICAgICBidWZmZXIuYXBwZW5kKHZhbHVlKTsKQEAgLTU4MCw4ICs1ODEsMTAgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1l
KiBjYWxsRnJhbWUsIEkKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgp
KTsKIAogICAgICAgICBhdXRvIHJlcCA9IHdhc21DYWxsSW5mby5yZXN1bHRzW2luZGV4XTsKLSAg
ICAgICAgaWYgKHJlcC5pc1JlZygpKQotICAgICAgICAgICAgcmVnaXN0ZXJSZXN1bHRzW3JlZ2lz
dGVyUmVzdWx0T2Zmc2V0cy5maW5kKHJlcC5yZWcoKSktPm9mZnNldCgpIC8gc2l6ZW9mKHVpbnQ2
NF90KV0gPSB1bmJveGVkVmFsdWU7CisgICAgICAgIGlmIChyZXAuaXNHUFIoKSkKKyAgICAgICAg
ICAgIHJlZ2lzdGVyUmVzdWx0c1tyZWdpc3RlclJlc3VsdE9mZnNldHMuZmluZChyZXAuanNyKCku
cGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkgLyBzaXplb2YodWludDY0X3QpXSA9IHVuYm94ZWRWYWx1
ZTsKKyAgICAgICAgZWxzZSBpZiAocmVwLmlzRlBSKCkpCisgICAgICAgICAgICByZWdpc3RlclJl
c3VsdHNbcmVnaXN0ZXJSZXN1bHRPZmZzZXRzLmZpbmQocmVwLmZwcigpKS0+b2Zmc2V0KCkgLyBz
aXplb2YodWludDY0X3QpXSA9IHVuYm94ZWRWYWx1ZTsKICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgY2FsbGVlRnJhbWVQb2ludGVyW3JlcC5vZmZzZXRGcm9tRlAoKSAvIHNpemVvZih1aW50NjRf
dCldID0gdW5ib3hlZFZhbHVlOwogICAgIH0KQEAgLTYwNywxMiArNjEwLDE2IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSwgSlNBcnJheSos
IChDYWxsRnJhbWUqIGNhCiAgICAgYXV0byB3YXNtQ2FsbEluZm8gPSB3YXNtQ2FsbGluZ0NvbnZl
bnRpb24oKS5jYWxsSW5mb3JtYXRpb25Gb3IoKnR5cGUpOwogICAgIFJlZ2lzdGVyQXRPZmZzZXRM
aXN0IHJlZ2lzdGVyUmVzdWx0cyA9IHdhc21DYWxsSW5mby5jb21wdXRlUmVzdWx0c09mZnNldExp
c3QoKTsKIAotICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEpTVmFsdWUpID09IHNpemVvZihDUFVS
ZWdpc3RlciksICJUaGUgY29kZSBiZWxvdyByZWxpZXMgb24gdGhpcy4iKTsKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgc2lnbmF0dXJlLT5yZXR1cm5Db3VudCgpOyArK2kpIHsKICAgICAg
ICAgVmFsdWVMb2NhdGlvbiBsb2MgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1tpXTsKICAgICAgICAg
SlNWYWx1ZSB2YWx1ZTsKLSAgICAgICAgaWYgKGxvYy5pc1JlZygpKQotICAgICAgICAgICAgdmFs
dWUgPSBzdGFja1BvaW50ZXJGcm9tQ2FsbGVlWyhyZWdpc3RlclJlc3VsdHMuZmluZChsb2MucmVn
KCkpLT5vZmZzZXQoKSArIHdhc21DYWxsSW5mby5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUlu
Qnl0ZXMpIC8gc2l6ZW9mKEpTVmFsdWUpXTsKKyAgICAgICAgaWYgKGxvYy5pc0dQUigpKSB7Cisj
aWYgVVNFKEpTVkFMRTMyXzY0KQorICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyUmVzdWx0cy5m
aW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSArIDQgPT0gcmVnaXN0ZXJSZXN1
bHRzLmZpbmQobG9jLmpzcigpLnRhZ0dQUigpKS0+b2Zmc2V0KCkpOworI2VuZGlmCisgICAgICAg
ICAgICB2YWx1ZSA9IHN0YWNrUG9pbnRlckZyb21DYWxsZWVbKHJlZ2lzdGVyUmVzdWx0cy5maW5k
KGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSArIHdhc21DYWxsSW5mby5oZWFkZXJB
bmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpIC8gc2l6ZW9mKEpTVmFsdWUpXTsKKyAgICAgICAg
fSBlbHNlIGlmIChsb2MuaXNGUFIoKSkKKyAgICAgICAgICAgIHZhbHVlID0gc3RhY2tQb2ludGVy
RnJvbUNhbGxlZVsocmVnaXN0ZXJSZXN1bHRzLmZpbmQobG9jLmZwcigpKS0+b2Zmc2V0KCkgKyB3
YXNtQ2FsbEluZm8uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSAvIHNpemVvZihK
U1ZhbHVlKV07CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHZhbHVlID0gc3RhY2tQb2ludGVy
RnJvbUNhbGxlZVtsb2Mub2Zmc2V0RnJvbVNQKCkgLyBzaXplb2YoSlNWYWx1ZSldOwogICAgICAg
ICByZXN1bHQtPmluaXRpYWxpemVJbmRleChpbml0aWFsaXphdGlvblNjb3BlLCBpLCB2YWx1ZSk7
CkBAIC05NTMsNyArOTYwLDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldh
c21UaHJvdywgdm9pZCosIChJbnN0YW5jZSogaW5zdGFuY2UsIENhbGxGcmEKICAgICAvLyB0byB0
aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElmIHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhp
cyB0ZXJyaWJsZSBoYWNrLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzA0NDAKICAgICB2bS5jYWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNh
bGxlZSgpOwotICAgIGJpdHdpc2VfY2FzdDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nh
c3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4o
anNJbnN0YW5jZS0+bW9kdWxlKCkpOworICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90ID0gYml0d2lz
ZV9jYXN0PFJlZ2lzdGVyKj4oY2FsbEZyYW1lKSArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1l
U2xvdDo6Y2FsbGVlKTsKKyAgICAqY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxKU0NlbGwqPihq
c0luc3RhbmNlLT5tb2R1bGUoKSk7CiAgICAgcmV0dXJuIHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRo
cm93OwogfQogCkBAIC05NzksNyArOTg3LDggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbldhc21SZXRocm93LCB2b2lkKiwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ2FsbEYKICAg
ICAvLyB0byB0aGUgZXhjZXB0aW9uIGhhbmRsZXIuIElmIHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCBy
ZW1vdmUgdGhpcyB0ZXJyaWJsZSBoYWNrLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzA0NDAKICAgICB2bS5jYWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxs
RnJhbWUtPmNhbGxlZSgpOwotICAgIGJpdHdpc2VfY2FzdDx1aW50NjRfdCo+KGNhbGxGcmFtZSlb
c3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1
aW50NjRfdD4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOworICAgIFJlZ2lzdGVyKiBjYWxsZWVTbG90
ID0gYml0d2lzZV9jYXN0PFJlZ2lzdGVyKj4oY2FsbEZyYW1lKSArIHN0YXRpY19jYXN0PGludD4o
Q2FsbEZyYW1lU2xvdDo6Y2FsbGVlKTsKKyAgICAqY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxK
U0NlbGwqPihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CiAgICAgcmV0dXJuIHZtLnRhcmdldE1hY2hp
bmVQQ0ZvclRocm93OwogfQogCkBAIC0xMDE0LDEyICsxMDIzLDE0IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25XYXNtVG9KU0V4Y2VwdGlvbiwgdm9pZCosIChDYWxsRnJhbWUq
IGNhbGxGcmFtCiAgICAgLy8gdG8gdGhlIGV4Y2VwdGlvbiBoYW5kbGVyLiBJZiB3ZSBkaWQgdGhp
cywgd2UgY291bGQgcmVtb3ZlIHRoaXMgdGVycmlibGUgaGFjay4KICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDQwCiAgICAgdm0uY2FsbGVlRm9yV2Fz
bUNhdGNoID0gY2FsbEZyYW1lLT5jYWxsZWUoKTsKLSAgICBiaXR3aXNlX2Nhc3Q8dWludDY0X3Qq
PihjYWxsRnJhbWUpW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0gPSBi
aXR3aXNlX2Nhc3Q8dWludDY0X3Q+KGluc3RhbmNlLT5tb2R1bGUoKSk7CisgICAgUmVnaXN0ZXIq
IGNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8UmVnaXN0ZXIqPihjYWxsRnJhbWUpICsgc3RhdGlj
X2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpOworICAgICpjYWxsZWVTbG90ID0gYml0
d2lzZV9jYXN0PEpTQ2VsbCo+KGluc3RhbmNlLT5tb2R1bGUoKSk7CiAgICAgcmV0dXJuIHZtLnRh
cmdldE1hY2hpbmVQQ0ZvclRocm93OwogfQogCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uV2FzbVJldHJpZXZlQW5kQ2xlYXJFeGNlcHRpb25JZkNhdGNoYWJsZSwgUG9pbnRlclBh
aXIsIChJbnN0YW5jZSogaW5zdGFuY2UpKQogeworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgSlNX
ZWJBc3NlbWJseUluc3RhbmNlKiBqc0luc3RhbmNlID0gaW5zdGFuY2UtPm93bmVyPEpTV2ViQXNz
ZW1ibHlJbnN0YW5jZT4oKTsKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNJ
bnN0YW5jZS0+Z2xvYmFsT2JqZWN0KCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwpAQCAtMTAzOSw2ICsxMDUwLDEzIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25XYXNtUmV0cmlldmVBbmRDbGVhckV4Y2VwdGlvbklmQ2F0Y2hhYmxlLCBQb2luCiAgICAgaWYg
KEpTV2ViQXNzZW1ibHlFeGNlcHRpb24qIHdhc21FeGNlcHRpb24gPSBqc0R5bmFtaWNDYXN0PEpT
V2ViQXNzZW1ibHlFeGNlcHRpb24qPih0aHJvd25WYWx1ZSkpCiAgICAgICAgIHBheWxvYWQgPSBi
aXR3aXNlX2Nhc3Q8dm9pZCo+KHdhc21FeGNlcHRpb24tPnBheWxvYWQoKS5kYXRhKCkpOwogICAg
IHJldHVybiBQb2ludGVyUGFpciB7IGJpdHdpc2VfY2FzdDx2b2lkKj4oSlNWYWx1ZTo6ZW5jb2Rl
KHRocm93blZhbHVlKSksIHBheWxvYWQgfTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
Ly8gTm90ZTogVGhpcyBmdW5jdGlvbiBuZWVkcyB0byByZXR1cm4gYSBwb2ludGVyIGFuZCBhIEpT
VmFsdWUsIHNvIHdpbGwgbmVlZCB0bworICAgIC8vIGNoYW5nZSBzaWduYXR1cmUgb24gSlNWQUxF
MzJfNjQsIG5ldmVydGhlbGVzcywgZm9yIG5vdyBpdCdzIHVudXNlZC4KKyAgICBVTlJFQUNIQUJM
RV9GT1JfUExBVEZPUk0oKTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIHJldHVy
biB7IG51bGxwdHIsIG51bGxwdHIgfTsKKyNlbmRpZgogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpT
Qzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJh
dGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmgKaW5k
ZXggZTJjYjM1OTA0MTk2Li40Yzk3YzRkNzFkYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU9wZXJhdGlvbnMuaApAQCAtNDcsMjIgKzQ3LDIzIEBAIG5hbWVzcGFjZSBXYXNt
IHsKIGNsYXNzIEluc3RhbmNlOwogY2xhc3MgVHlwZURlZmluaXRpb247CiAKLXZvaWQgbG9hZFZh
bHVlc0ludG9CdWZmZXIoUHJvYmU6OkNvbnRleHQmLCBjb25zdCBTdGFja01hcCYsIHVpbnQ2NF90
KiBidWZmZXIpOwordHlwZWRlZiBpbnQ2NF90IEVuY29kZWRXYXNtVmFsdWU7CiAKICNpZiBFTkFC
TEUoV0VCQVNTRU1CTFlfQjNKSVQpCit2b2lkIGxvYWRWYWx1ZXNJbnRvQnVmZmVyKFByb2JlOjpD
b250ZXh0JiwgY29uc3QgU3RhY2tNYXAmLCB1aW50NjRfdCogYnVmZmVyKTsKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJPU1JFbnRyeU5vdywgdm9pZCwgKFBy
b2JlOjpDb250ZXh0JikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNt
VHJpZ2dlclRpZXJVcE5vdywgdm9pZCwgKEluc3RhbmNlKiwgdWludDMyX3QgZnVuY3Rpb25JbmRl
eCkpOwogI2VuZGlmCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21Vbndp
bmQsIHZvaWQsIChDYWxsRnJhbWUqKSk7CiAKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29udmVydFRvSTY0LCBpbnQ2NF90LCAoQ2FsbEZyYW1lKiwgSlNWYWx1ZSkpOwotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9GNjQsIGRvdWJsZSwgKENh
bGxGcmFtZSosIEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29udmVydFRvSTMyLCBpbnQzMl90LCAoQ2FsbEZyYW1lKiwgSlNWYWx1ZSkpOwotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9GMzIsIGZsb2F0LCAoQ2FsbEZyYW1l
KiwgSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0
VG9JNjQsIGludDY0X3QsIChDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9GNjQsIGRvdWJsZSwgKENhbGxGcmFt
ZSosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbnZlcnRUb0kzMiwgaW50MzJfdCwgKENhbGxGcmFtZSosIEVuY29kZWRKU1ZhbHVlKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0YzMiwgZmxvYXQsIChD
YWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSkpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqLCBJ
bnN0YW5jZSosIGludDY0X3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29udmVydFRvQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKENhbGxGcmFtZSosIEluc3RhbmNlKiwg
RW5jb2RlZFdhc21WYWx1ZSkpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1lKiwgSW5zdGFuY2UqLCBjb25zdCBUeXBl
RGVmaW5pdGlvbiosIEpTVmFsdWUsIHVpbnQ2NF90KiwgdWludDY0X3QqKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1l
KiwgSW5zdGFuY2UqLCBjb25zdCBUeXBlRGVmaW5pdGlvbiosIEVuY29kZWRKU1ZhbHVlLCB1aW50
NjRfdCosIHVpbnQ2NF90KikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25B
bGxvY2F0ZVJlc3VsdHNBcnJheSwgSlNBcnJheSosIChDYWxsRnJhbWUqLCBXYXNtOjpJbnN0YW5j
ZSosIGNvbnN0IFR5cGVEZWZpbml0aW9uKiwgSW5kZXhpbmdUeXBlLCBKU1ZhbHVlKikpOwogCiBK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21Xcml0ZUJhcnJpZXJTbG93UGF0
aCwgdm9pZCwgKEpTQ2VsbCosIFZNKikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbVBhZ2VDb3VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVBhZ2VDb3VudC5oCmluZGV4IGI3ZDhjOWZjZjcyYi4uM2M3NTUxMmY0NGE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFnZUNvdW50LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhZ2VDb3VudC5oCkBAIC05OCw3ICs5OCwxMiBAQCBw
dWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHBhZ2VTaXplID0gNjQgKiBL
QjsKIHByaXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXhQYWdlQ291bnQg
PSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oTUFYX0FSUkFZX0JVRkZFUl9TSVpFIC8gc3RhdGljX2Nh
c3Q8dWludDY0X3Q+KHBhZ2VTaXplKSk7CisgICAgLy8gVGhlIHNwZWMgcmVxdWlyZXMgd2UgYXJl
IGFibGUgdG8gaW5zdGFudGlhdGUgYSBtZW1vcnkgd2l0aCBhICptYXhpbXVtKiBzaXplIG9mIDY0
SyBwYWdlcy4KKyAgICAvLyBUaGlzIGRvZXMgbm90IG1lYW4gdGhlIG1lbW9yeSBjYW4gbmVjZXNz
YXJpbHkgZ3JvdyB0aGF0IGJpZywgYW5kIHdoZXJlIHRoZQorICAgIC8vIE1BWF9BUlJBWV9CVUZG
RVJfU0laRSBpcyBzbWFsbGVyIChlLmcuOiBvbiAzMi1iaXQgcGxhdGZvcm1zKSwgdHJ5aW5nIHRv
IGdyb3cgdGhlIG1lbW9yeQorICAgIC8vIHRoYXQgbGFyZ2Ugd2lsbCBmYWlsLCB3aGljaCBpcyBh
Y2NlcHRhYmxlIGFjY29yZGluZyB0byB0aGUgc3BlYy4gTmV2ZXJ0aGVsZXNzLCB3ZSBzaG91bGQK
KyAgICAvLyBiZSBhYmxlIHRvIHBhcnNlIHN1Y2ggYSBtZW1vcnkgYW5kIGluc3RhbnRpYXRlIGl0
IHdpdGggYSBzbWFsbGVyIGluaXRpYWwgc2l6ZS4KKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQz
Ml90IG1heFBhZ2VDb3VudCA9IHN0ZDo6bWF4PHVpbnQzMl90Pig2NCoxMDI0LCBNQVhfQVJSQVlf
QlVGRkVSX1NJWkUgLyBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocGFnZVNpemUpKTsKIAogICAgIHVp
bnQzMl90IG1fcGFnZUNvdW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJz
ZXIuaAppbmRleCA2YTY0OGYxMGI0MTkuLmMzODBiN2FhNDRlNyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21QYXJzZXIuaApAQCAtMjA4LDcgKzIwOCw3IEBAIEFMV0FZU19JTkxJTkUg
Ym9vbCBQYXJzZXI8U3VjY2Vzc1R5cGU+OjpwYXJzZVVJbnQzMih1aW50MzJfdCYgcmVzdWx0KQog
ewogICAgIGlmIChsZW5ndGgoKSA8IDQgfHwgbV9vZmZzZXQgPiBsZW5ndGgoKSAtIDQpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICByZXN1bHQgPSAqcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1
aW50MzJfdCo+KHNvdXJjZSgpICsgbV9vZmZzZXQpOworICAgIG1lbWNweSgmcmVzdWx0LCBzb3Vy
Y2UoKSArIG1fb2Zmc2V0LCBzaXplb2YodWludDMyX3QpKTsgLy8gc3JjIGNhbiBiZSB1bmFsaWdu
ZWQKICAgICBtX29mZnNldCArPSA0OwogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjE4LDcgKzIx
OCw3IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBQYXJzZXI8U3VjY2Vzc1R5cGU+OjpwYXJzZVVJbnQ2
NCh1aW50NjRfdCYgcmVzdWx0KQogewogICAgIGlmIChsZW5ndGgoKSA8IDggfHwgbV9vZmZzZXQg
PiBsZW5ndGgoKSAtIDgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXN1bHQgPSAqcmVp
bnRlcnByZXRfY2FzdDxjb25zdCB1aW50NjRfdCo+KHNvdXJjZSgpICsgbV9vZmZzZXQpOworICAg
IG1lbWNweSgmcmVzdWx0LCBzb3VyY2UoKSArIG1fb2Zmc2V0LCBzaXplb2YodWludDY0X3QpKTsg
Ly8gc3JjIGNhbiBiZSB1bmFsaWduZWQKICAgICBtX29mZnNldCArPSA4OwogICAgIHJldHVybiB0
cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQ
YXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmNwcApp
bmRleCA2NDE3ZjgwYjM1YTcuLjZjYzdmN2Y5NmM4NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbVNsb3dQYXRocy5jcHAKQEAgLTY0OCw3ICs2NDgsOCBAQCBXQVNNX1NMT1df
UEFUSF9ERUNMKHRocm93KQogICAgIC8vIHRvIHRoZSBleGNlcHRpb24gaGFuZGxlci4gSWYgd2Ug
ZGlkIHRoaXMsIHdlIGNvdWxkIHJlbW92ZSB0aGlzIHRlcnJpYmxlIGhhY2suCiAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDQ0MAogICAgIHZtLmNhbGxl
ZUZvcldhc21DYXRjaCA9IGNhbGxGcmFtZS0+Y2FsbGVlKCk7Ci0gICAgYml0d2lzZV9jYXN0PHVp
bnQ2NF90Kj4oY2FsbEZyYW1lKVtzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxl
ZSldID0gYml0d2lzZV9jYXN0PHVpbnQ2NF90Pihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CisgICAg
UmVnaXN0ZXIqIGNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8UmVnaXN0ZXIqPihjYWxsRnJhbWUp
ICsgc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpOworICAgICpjYWxsZWVT
bG90ID0gYml0d2lzZV9jYXN0PEpTQ2VsbCo+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsKICAgICBX
QVNNX1JFVFVSTl9UV08odm0udGFyZ2V0TWFjaGluZVBDRm9yVGhyb3csIG51bGxwdHIpOwogfQog
CkBAIC02NzYsNyArNjc3LDggQEAgV0FTTV9TTE9XX1BBVEhfREVDTChyZXRocm93KQogICAgIC8v
IHRvIHRoZSBleGNlcHRpb24gaGFuZGxlci4gSWYgd2UgZGlkIHRoaXMsIHdlIGNvdWxkIHJlbW92
ZSB0aGlzIHRlcnJpYmxlIGhhY2suCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MDQ0MAogICAgIHZtLmNhbGxlZUZvcldhc21DYXRjaCA9IGNhbGxGcmFt
ZS0+Y2FsbGVlKCk7Ci0gICAgYml0d2lzZV9jYXN0PHVpbnQ2NF90Kj4oY2FsbEZyYW1lKVtzdGF0
aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSldID0gYml0d2lzZV9jYXN0PHVpbnQ2
NF90Pihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CisgICAgUmVnaXN0ZXIqIGNhbGxlZVNsb3QgPSBi
aXR3aXNlX2Nhc3Q8UmVnaXN0ZXIqPihjYWxsRnJhbWUpICsgc3RhdGljX2Nhc3Q8aW50PihDYWxs
RnJhbWVTbG90OjpjYWxsZWUpOworICAgICpjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PEpTQ2Vs
bCo+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsKICAgICBXQVNNX1JFVFVSTl9UV08odm0udGFyZ2V0
TWFjaGluZVBDRm9yVGhyb3csIG51bGxwdHIpOwogfQogCkBAIC03MjMsNiArNzI1LDIxNCBAQCBX
QVNNX1NMT1dfUEFUSF9ERUNMKHJldHJpZXZlX2FuZF9jbGVhcl9leGNlcHRpb24pCiAgICAgV0FT
TV9SRVRVUk5fVFdPKHBjLCBwYXlsb2FkKTsKIH0KIAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCitX
QVNNX1NMT1dfUEFUSF9ERUNMKGYzMl9jZWlsKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5j
ZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjMyQ2VpbD4oKTsKKyAgICBm
bG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRGbG9hdCgp
OworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZSh3YXNtVW5ib3hlZEZsb2F0KHN0ZDo6
Y2VpbChvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmMzJfZmxvb3IpCit7
CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMt
PmFzPFdhc21GMzJGbG9vcj4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlv
bi5tX29wZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVu
Y29kZSh3YXNtVW5ib3hlZEZsb2F0KHN0ZDo6Zmxvb3Iob3BlcmFuZCkpKSk7Cit9CisKK1dBU01f
U0xPV19QQVRIX0RFQ0woZjMyX3RydW5jKQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7
CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjMyVHJ1bmM+KCk7CisgICAgZmxv
YXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsK
KyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUod2FzbVVuYm94ZWRGbG9hdChzdGQ6OnRy
dW5jKG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGYzMl9uZWFyZXN0KQor
eworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnJvdW5kX3N0
eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNl
KTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21GMzJOZWFyZXN0PigpOworICAg
IGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0
KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKHdhc21VbmJveGVkRmxvYXQoc3Rk
OjpuZWFyYnlpbnQob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjY0X2Nl
aWwpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9u
ID0gcGMtPmFzPFdhc21GNjRDZWlsPigpOworICAgIGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0
cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUoKTsKKyAgICBXQVNNX1JFVFVSTihKU1Zh
bHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoc3RkOjpjZWlsKG9wZXJhbmQpKSkpOworfQorCitX
QVNNX1NMT1dfUEFUSF9ERUNMKGY2NF9mbG9vcikKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFu
Y2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NEZsb29yPigpOworICAg
IGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3Vi
bGUoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoc3Rk
OjpmbG9vcihvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmNjRfdHJ1bmMp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0g
cGMtPmFzPFdhc21GNjRUcnVuYz4oKTsKKyAgICBkb3VibGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1
Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1
ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHN0ZDo6dHJ1bmMob3BlcmFuZCkpKSk7Cit9CisKK1dB
U01fU0xPV19QQVRIX0RFQ0woZjY0X25lYXJlc3QpCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6
Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cm91bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90b19uZWFy
ZXN0KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24g
PSBwYy0+YXM8V2FzbUY2NE5lYXJlc3Q+KCk7CisgICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGlu
c3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgpOworICAgIFdBU01fUkVUVVJOKEpT
VmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGQ6Om5lYXJieWludChvcGVyYW5kKSkpKTsK
K30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmMzJfY29udmVydF91X2k2NCkKK3sKKyAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6
OnJvdW5kX3RvX25lYXJlc3QpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0
byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjMyQ29udmVydFVJNjQ+KCk7CisgICAgdWludDY0
X3Qgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkSW50NjQoKTsK
KyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUod2FzbVVuYm94ZWRGbG9hdChzdGF0aWNf
Y2FzdDxmbG9hdD4ob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjMyX2Nv
bnZlcnRfc19pNjQpCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPGZs
b2F0Pjo6cm91bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90b19uZWFyZXN0KTsKKyAgICBVTlVTRURf
UEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUYzMkNv
bnZlcnRTSTY0PigpOworICAgIGludDY0X3Qgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9v
cGVyYW5kKS51bmJveGVkSW50NjQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUo
d2FzbVVuYm94ZWRGbG9hdChzdGF0aWNfY2FzdDxmbG9hdD4ob3BlcmFuZCkpKSk7Cit9CisKK1dB
U01fU0xPV19QQVRIX0RFQ0woZjY0X2NvbnZlcnRfdV9pNjQpCit7CisgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cm91bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90
b19uZWFyZXN0KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1
Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NENvbnZlcnRVSTY0PigpOworICAgIHVpbnQ2NF90IG9wZXJh
bmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEludDY0KCk7CisgICAgV0FT
TV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHN0YXRpY19jYXN0PGRvdWJs
ZT4ob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjY0X2NvbnZlcnRfc19p
NjQpCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cm91
bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90b19uZWFyZXN0KTsKKyAgICBVTlVTRURfUEFSQU0oaW5z
dGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NENvbnZlcnRTSTY0
PigpOworICAgIGludDY0X3Qgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51
bmJveGVkSW50NjQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVO
dW1iZXIoc3RhdGljX2Nhc3Q8ZG91YmxlPihvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BB
VEhfREVDTChpNjRfdHJ1bmNfdV9mMzIpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsK
KyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1VGMzI+KCk7CisgICAg
ZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQo
KTsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5kKSB8fCBvcGVyYW5kIDw9IC0xLjBmIHx8IG9w
ZXJhbmQgPj0gLTIuMGYgKiBzdGF0aWNfY2FzdDxmbG9hdD4oSU5UNjRfTUlOKSkKKyAgICAgICAg
V0FTTV9USFJPVyhXYXNtOjpFeGNlcHRpb25UeXBlOjpPdXRPZkJvdW5kc1RydW5jKTsKKyAgICBX
QVNNX1JFVFVSTihzdGF0aWNfY2FzdDx1aW50NjRfdD4ob3BlcmFuZCkpOworfQorCitXQVNNX1NM
T1dfUEFUSF9ERUNMKGk2NF90cnVuY19zX2YzMikKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFu
Y2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jU0YzMj4oKTsK
KyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRG
bG9hdCgpOworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9wZXJhbmQgPCBzdGF0aWNf
Y2FzdDxmbG9hdD4oSU5UNjRfTUlOKSB8fCBvcGVyYW5kID49IC1zdGF0aWNfY2FzdDxmbG9hdD4o
SU5UNjRfTUlOKSkKKyAgICAgICAgV0FTTV9USFJPVyhXYXNtOjpFeGNlcHRpb25UeXBlOjpPdXRP
ZkJvdW5kc1RydW5jKTsKKyAgICBXQVNNX1JFVFVSTihzdGF0aWNfY2FzdDxpbnQ2NF90PihvcGVy
YW5kKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3VfZjY0KQoreworICAg
IFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxX
YXNtSTY0VHJ1bmNVRjY0PigpOworICAgIGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlv
bi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUoKTsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5k
KSB8fCBvcGVyYW5kIDw9IC0xLjAgfHwgb3BlcmFuZCA+PSAtMi4wICogc3RhdGljX2Nhc3Q8ZG91
YmxlPihJTlQ2NF9NSU4pKQorICAgICAgICBXQVNNX1RIUk9XKFdhc206OkV4Y2VwdGlvblR5cGU6
Ok91dE9mQm91bmRzVHJ1bmMpOworICAgIFdBU01fUkVUVVJOKHN0YXRpY19jYXN0PHVpbnQ2NF90
PihvcGVyYW5kKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3NfZjY0KQor
eworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBj
LT5hczxXYXNtSTY0VHJ1bmNTRjY0PigpOworICAgIGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0
cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUoKTsKKyAgICBpZiAoc3RkOjppc25hbihv
cGVyYW5kKSB8fCBvcGVyYW5kIDwgc3RhdGljX2Nhc3Q8ZG91YmxlPihJTlQ2NF9NSU4pIHx8IG9w
ZXJhbmQgPj0gLXN0YXRpY19jYXN0PGRvdWJsZT4oSU5UNjRfTUlOKSkKKyAgICAgICAgV0FTTV9U
SFJPVyhXYXNtOjpFeGNlcHRpb25UeXBlOjpPdXRPZkJvdW5kc1RydW5jKTsKKyAgICBXQVNNX1JF
VFVSTihzdGF0aWNfY2FzdDxpbnQ2NF90PihvcGVyYW5kKSk7Cit9CisKK1dBU01fU0xPV19QQVRI
X0RFQ0woaTY0X3RydW5jX3NhdF9mMzJfdSkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2Up
OworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jU2F0RjMyVT4oKTsK
KyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRG
bG9hdCgpOworICAgIHVpbnQ2NF90IHJlc3VsdDsKKyAgICBpZiAoc3RkOjppc25hbihvcGVyYW5k
KSB8fCBvcGVyYW5kIDw9IC0xLjBmKQorICAgICAgICByZXN1bHQgPSAwOworICAgIGVsc2UgaWYg
KG9wZXJhbmQgPj0gLTIuMGYgKiBzdGF0aWNfY2FzdDxmbG9hdD4oSU5UNjRfTUlOKSkKKyAgICAg
ICAgcmVzdWx0ID0gVUlOVDY0X01BWDsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IHN0YXRp
Y19jYXN0PHVpbnQ2NF90PihvcGVyYW5kKTsKKyAgICBXQVNNX1JFVFVSTihyZXN1bHQpOworfQor
CitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY19zYXRfZjMyX3MpCit7CisgICAgVU5VU0VE
X1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRU
cnVuY1NhdEYzMlM+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9v
cGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBpbnQ2NF90IHJlc3VsdDsKKyAgICBpZiAoc3Rk
Ojppc25hbihvcGVyYW5kKSkKKyAgICAgICAgcmVzdWx0ID0gMDsKKyAgICBlbHNlIGlmIChvcGVy
YW5kIDwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KElOVDY0X01JTikpCisgICAgICAgIHJlc3VsdCA9IElO
VDY0X01JTjsKKyAgICBlbHNlIGlmIChvcGVyYW5kID49IC1zdGF0aWNfY2FzdDxmbG9hdD4oSU5U
NjRfTUlOKSkKKyAgICAgICAgcmVzdWx0ID0gSU5UNjRfTUFYOworICAgIGVsc2UKKyAgICAgICAg
cmVzdWx0ID0gc3RhdGljX2Nhc3Q8aW50NjRfdD4ob3BlcmFuZCk7CisgICAgV0FTTV9SRVRVUk4o
cmVzdWx0KTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc2F0X2Y2NF91KQor
eworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBj
LT5hczxXYXNtSTY0VHJ1bmNTYXRGNjRVPigpOworICAgIGRvdWJsZSBvcGVyYW5kID0gUkVBRChp
bnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3VibGUoKTsKKyAgICB1aW50NjRfdCByZXN1
bHQ7CisgICAgaWYgKHN0ZDo6aXNuYW4ob3BlcmFuZCkgfHwgb3BlcmFuZCA8PSAtMS4wKQorICAg
ICAgICByZXN1bHQgPSAwOworICAgIGVsc2UgaWYgKG9wZXJhbmQgPj0gLTIuMCAqIHN0YXRpY19j
YXN0PGRvdWJsZT4oSU5UNjRfTUlOKSkKKyAgICAgICAgcmVzdWx0ID0gVUlOVDY0X01BWDsKKyAg
ICBlbHNlCisgICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihvcGVyYW5kKTsK
KyAgICBXQVNNX1JFVFVSTihyZXN1bHQpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90
cnVuY19zYXRfZjY0X3MpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRv
IGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1NhdEY2NFM+KCk7CisgICAgZG91Ymxl
IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgpOwor
ICAgIGludDY0X3QgcmVzdWx0OworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpKQorICAgICAg
ICByZXN1bHQgPSAwOworICAgIGVsc2UgaWYgKG9wZXJhbmQgPCBzdGF0aWNfY2FzdDxkb3VibGU+
KElOVDY0X01JTikpCisgICAgICAgIHJlc3VsdCA9IElOVDY0X01JTjsKKyAgICBlbHNlIGlmIChv
cGVyYW5kID49IC1zdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0X01JTikpCisgICAgICAgIHJlc3Vs
dCA9IElOVDY0X01BWDsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PGlu
dDY0X3Q+KG9wZXJhbmQpOworICAgIFdBU01fUkVUVVJOKHJlc3VsdCk7Cit9CisjZW5kaWYKKwog
ZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fdGhyb3dfZXhjZXB0
aW9uKENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBXYXNtSW5zdHJ1Y3Rpb24qIHBjLCBXYXNt
OjpJbnN0YW5jZSogaW5zdGFuY2UsIFdhc206OkV4Y2VwdGlvblR5cGUgZXhjZXB0aW9uVHlwZSkK
IHsKICAgICBVTlVTRURfUEFSQU0ocGMpOwpAQCAtNzMxLDE2ICs5NDEsMjggQEAgZXh0ZXJuICJD
IiBTbG93UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fdGhyb3dfZXhjZXB0aW9uKENhbGxG
cmFtZSogY2FsbEZyYW0KIAogZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgc2xvd19wYXRo
X3dhc21fcG9wY291bnQoY29uc3QgV2FzbUluc3RydWN0aW9uKiBwYywgdWludDMyX3QgeCkKIHsK
LSAgICB2b2lkKiByZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PHVpbnQ2
NF90PihfX2J1aWx0aW5fcG9wY291bnQoeCkpKTsKKyAgICB2b2lkKiByZXN1bHQgPSBiaXR3aXNl
X2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PHNpemVfdD4oX19idWlsdGluX3BvcGNvdW50KHgpKSk7
CiAgICAgV0FTTV9SRVRVUk5fVFdPKHBjLCByZXN1bHQpOwogfQogCiBleHRlcm4gIkMiIFNsb3dQ
YXRoUmV0dXJuVHlwZSBzbG93X3BhdGhfd2FzbV9wb3Bjb3VudGxsKGNvbnN0IFdhc21JbnN0cnVj
dGlvbiogcGMsIHVpbnQ2NF90IHgpCiB7Ci0gICAgdm9pZCogcmVzdWx0ID0gYml0d2lzZV9jYXN0
PHZvaWQqPihzdGF0aWNfY2FzdDx1aW50NjRfdD4oX19idWlsdGluX3BvcGNvdW50bGwoeCkpKTsK
KyAgICB2b2lkKiByZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PHNpemVf
dD4oX19idWlsdGluX3BvcGNvdW50bGwoeCkpKTsKICAgICBXQVNNX1JFVFVSTl9UV08ocGMsIHJl
c3VsdCk7CiB9CiAKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorLy8gTm90ZTogQWxsIHRoZXNlIGRp
diBhbmQgcmVtIG9wcyBwZXJmb3JtIGV4Y2VwdGlvbiBjaGVja3MgaW4gYXNtCitleHRlcm4gIkMi
IGludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX2Rpdl9zKGludDMyX3QgYSwgaW50MzJfdCBiKSB7
IHJldHVybiBhIC8gYjsgfQorZXh0ZXJuICJDIiB1aW50MzJfdCBzbG93X3BhdGhfd2FzbV9pMzJf
ZGl2X3UodWludDMyX3QgYSwgdWludDMyX3QgYikgeyByZXR1cm4gYSAvIGI7IH0KK2V4dGVybiAi
QyIgaW50MzJfdCBzbG93X3BhdGhfd2FzbV9pMzJfcmVtX3MoaW50MzJfdCBhLCBpbnQzMl90IGIp
IHsgcmV0dXJuIGEgJSBiOyB9CitleHRlcm4gIkMiIHVpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kz
Ml9yZW1fdSh1aW50MzJfdCBhLCB1aW50MzJfdCBiKSB7IHJldHVybiBhICUgYjsgfQorZXh0ZXJu
ICJDIiBpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9kaXZfcyhpbnQ2NF90IGEsIGludDY0X3Qg
YikgeyByZXR1cm4gYSAvIGI7IH0KK2V4dGVybiAiQyIgdWludDY0X3Qgc2xvd19wYXRoX3dhc21f
aTY0X2Rpdl91KHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIpIHsgcmV0dXJuIGEgLyBiOyB9CitleHRl
cm4gIkMiIGludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X3JlbV9zKGludDY0X3QgYSwgaW50NjRf
dCBiKSB7IHJldHVybiBhICUgYjsgfQorZXh0ZXJuICJDIiB1aW50NjRfdCBzbG93X3BhdGhfd2Fz
bV9pNjRfcmVtX3UodWludDY0X3QgYSwgdWludDY0X3QgYikgeyByZXR1cm4gYSAlIGI7IH0KKyNl
bmRpZgorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6TExJbnQKIAogI2VuZGlmIC8vIEVOQUJMRShX
RUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21T
bG93UGF0aHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuaApp
bmRleCA2NzhjMTcyODM3NjguLmU3MDBkYWQ2OWFhNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21TbG93UGF0aHMuaApAQCAtOTUsNiArOTUsNDAgQEAgZXh0ZXJuICJDIiBTbG93
UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fdGhyb3dfZXhjZXB0aW9uKENhbGxGcmFtZSos
IGNvbnN0IFcKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNtX3Bv
cGNvdW50KGNvbnN0IFdhc21JbnN0cnVjdGlvbiogcGMsIHVpbnQzMl90KSBSRUZFUkVOQ0VEX0ZS
T01fQVNNIFdURl9JTlRFUk5BTDsKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3df
cGF0aF93YXNtX3BvcGNvdW50bGwoY29uc3QgV2FzbUluc3RydWN0aW9uKiBwYywgdWludDY0X3Qp
IFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOwogCisjaWYgVVNFKEpTVkFMVUUzMl82
NCkKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGYzMl9jZWlsKTsKK1dBU01fU0xPV19QQVRI
X0hJRERFTl9ERUNMKGYzMl9mbG9vcik7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmMzJf
dHJ1bmMpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjMyX25lYXJlc3QpOworV0FTTV9T
TE9XX1BBVEhfSElEREVOX0RFQ0woZjY0X2NlaWwpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RF
Q0woZjY0X2Zsb29yKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGY2NF90cnVuYyk7CitX
QVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfbmVhcmVzdCk7CitXQVNNX1NMT1dfUEFUSF9I
SURERU5fREVDTChmMzJfY29udmVydF91X2k2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVD
TChmMzJfY29udmVydF9zX2k2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfY29u
dmVydF91X2k2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfY29udmVydF9zX2k2
NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNfdV9mMzIpOworV0FTTV9T
TE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3NfZjMyKTsKK1dBU01fU0xPV19QQVRIX0hJ
RERFTl9ERUNMKGk2NF90cnVuY191X2Y2NCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChp
NjRfdHJ1bmNfc19mNjQpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3Nh
dF9mMzJfdSk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNfc2F0X2YzMl9z
KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGk2NF90cnVuY19zYXRfZjY0X3UpOworV0FT
TV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3NhdF9mNjRfcyk7CisjZW5kaWYKKwor
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCitleHRlcm4gIkMiIGludDMyX3Qgc2xvd19wYXRoX3dhc21f
aTMyX2Rpdl9zKGludDMyX3QgYSwgaW50MzJfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9J
TlRFUk5BTDsKK2V4dGVybiAiQyIgdWludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX2Rpdl91KHVp
bnQzMl90IGEsIHVpbnQzMl90IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOwor
ZXh0ZXJuICJDIiBpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9yZW1fcyhpbnQzMl90IGEsIGlu
dDMyX3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMiIHVp
bnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9yZW1fdSh1aW50MzJfdCBhLCB1aW50MzJfdCBiKSBS
RUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgaW50NjRfdCBzbG93
X3BhdGhfd2FzbV9pNjRfZGl2X3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpIFJFRkVSRU5DRURfRlJP
TV9BU00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJDIiB1aW50NjRfdCBzbG93X3BhdGhfd2FzbV9p
NjRfZGl2X3UodWludDY0X3QgYSwgdWludDY0X3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZf
SU5URVJOQUw7CitleHRlcm4gIkMiIGludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X3JlbV9zKGlu
dDY0X3QgYSwgaW50NjRfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK2V4
dGVybiAiQyIgdWludDY0X3Qgc2xvd19wYXRoX3dhc21faTY0X3JlbV91KHVpbnQ2NF90IGEsIHVp
bnQ2NF90IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOworI2VuZGlmCisKIH0g
fSAvLyBuYW1lc3BhY2UgSlNDOjpMTEludAogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRp
b24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uY3Bw
CmluZGV4IDUyMjNmM2FiNGU0MC4uNjhjNzg4ODkwNmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uY3BwCkBAIC0zNSw4ICszNSwxMSBAQCB2
b2lkIFZhbHVlTG9jYXRpb246OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBv
dXQucHJpbnQobV9raW5kKTsKICAgICBzd2l0Y2ggKG1fa2luZCkgewotICAgIGNhc2UgUmVnaXN0
ZXI6Ci0gICAgICAgIG91dC5wcmludCgiKCIsIHJlZygpLCAiKSIpOworICAgIGNhc2UgR1BSUmVn
aXN0ZXI6CisgICAgICAgIG91dC5wcmludCgiKCIsIGpzcigpLCAiKSIpOworICAgICAgICByZXR1
cm47CisgICAgY2FzZSBGUFJSZWdpc3RlcjoKKyAgICAgICAgb3V0LnByaW50KCIoIiwgZnByKCks
ICIpIik7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIFN0YWNrOgogICAgICAgICBvdXQucHJp
bnQoIigiLCBvZmZzZXRGcm9tRlAoKSwgIikiKTsKQEAgLTU3LDggKzYwLDExIEBAIHVzaW5nIG5h
bWVzcGFjZSBKU0M6Oldhc207CiB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwg
VmFsdWVMb2NhdGlvbjo6S2luZCBraW5kKQogewogICAgIHN3aXRjaCAoa2luZCkgewotICAgIGNh
c2UgVmFsdWVMb2NhdGlvbjo6UmVnaXN0ZXI6Ci0gICAgICAgIG91dC5wcmludCgiUmVnaXN0ZXIi
KTsKKyAgICBjYXNlIFZhbHVlTG9jYXRpb246OkdQUlJlZ2lzdGVyOgorICAgICAgICBvdXQucHJp
bnQoIkdQUlJlZ2lzdGVyIik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFZhbHVlTG9jYXRp
b246OkZQUlJlZ2lzdGVyOgorICAgICAgICBvdXQucHJpbnQoIkZQUlJlZ2lzdGVyIik7CiAgICAg
ICAgIHJldHVybjsKICAgICBjYXNlIFZhbHVlTG9jYXRpb246OlN0YWNrOgogICAgICAgICBvdXQu
cHJpbnQoIlN0YWNrIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtVmFsdWVMb2NhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVl
TG9jYXRpb24uaAppbmRleCBhNjFmYmE4YmQwMWMuLjVjYjUxMGRiYmQwYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbHVlTG9jYXRpb24uaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5oCkBAIC00MSwyNSArNDEs
MjcgQEAgY2xhc3MgVmFsdWVMb2NhdGlvbiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6CiAgICAgZW51bSBLaW5kIDogdWludDhfdCB7Ci0gICAgICAgIFJlZ2lzdGVyLAor
ICAgICAgICBHUFJSZWdpc3RlciwKKyAgICAgICAgRlBSUmVnaXN0ZXIsCiAgICAgICAgIFN0YWNr
LAogICAgICAgICBTdGFja0FyZ3VtZW50LAogICAgIH07CiAKICAgICBWYWx1ZUxvY2F0aW9uKCkK
LSAgICAgICAgOiBtX2tpbmQoUmVnaXN0ZXIpCisgICAgICAgIDogbV9raW5kKEdQUlJlZ2lzdGVy
KQogICAgIHsKICAgICB9CiAKLSAgICBleHBsaWNpdCBWYWx1ZUxvY2F0aW9uKFJlZyByZWcpCi0g
ICAgICAgIDogbV9raW5kKFJlZ2lzdGVyKQorICAgIGV4cGxpY2l0IFZhbHVlTG9jYXRpb24oSlNW
YWx1ZVJlZ3MgcmVncykKKyAgICAgICAgOiBtX2tpbmQoR1BSUmVnaXN0ZXIpCiAgICAgewotICAg
ICAgICB1LnJlZyA9IHJlZzsKKyAgICAgICAgdS5qc3IgPSByZWdzOwogICAgIH0KIAotICAgIHN0
YXRpYyBWYWx1ZUxvY2F0aW9uIHJlZyhSZWcgcmVnKQorICAgIGV4cGxpY2l0IFZhbHVlTG9jYXRp
b24oRlBSUmVnIHJlZykKKyAgICAgICAgOiBtX2tpbmQoRlBSUmVnaXN0ZXIpCiAgICAgewotICAg
ICAgICByZXR1cm4gVmFsdWVMb2NhdGlvbihyZWcpOworICAgICAgICB1LmZwciA9IHJlZzsKICAg
ICB9CiAKICAgICBzdGF0aWMgVmFsdWVMb2NhdGlvbiBzdGFjayhpbnRwdHJfdCBvZmZzZXRGcm9t
RlApCkBAIC04MCwyMSArODIsMjIgQEAgcHVibGljOgogCiAgICAgS2luZCBraW5kKCkgY29uc3Qg
eyByZXR1cm4gbV9raW5kOyB9CiAKLSAgICBib29sIGlzUmVnKCkgY29uc3QgeyByZXR1cm4ga2lu
ZCgpID09IFJlZ2lzdGVyOyB9CisgICAgYm9vbCBpc0dQUigpIGNvbnN0IHsgcmV0dXJuIGtpbmQo
KSA9PSBHUFJSZWdpc3RlcjsgfQorICAgIGJvb2wgaXNGUFIoKSBjb25zdCB7IHJldHVybiBraW5k
KCkgPT0gRlBSUmVnaXN0ZXI7IH0KKyAgICBib29sIGlzU3RhY2soKSBjb25zdCB7IHJldHVybiBr
aW5kKCkgPT0gU3RhY2s7IH0KKyAgICBib29sIGlzU3RhY2tBcmd1bWVudCgpIGNvbnN0IHsgcmV0
dXJuIGtpbmQoKSA9PSBTdGFja0FyZ3VtZW50OyB9CiAKLSAgICBSZWcgcmVnKCkgY29uc3QKKyAg
ICBKU1ZhbHVlUmVncyBqc3IoKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJUKGlzUmVnKCkp
OwotICAgICAgICByZXR1cm4gdS5yZWc7CisgICAgICAgIEFTU0VSVChpc0dQUigpKTsKKyAgICAg
ICAgcmV0dXJuIHUuanNyOwogICAgIH0KIAotICAgIGJvb2wgaXNHUFIoKSBjb25zdCB7IHJldHVy
biBpc1JlZygpICYmIHJlZygpLmlzR1BSKCk7IH0KLSAgICBib29sIGlzRlBSKCkgY29uc3QgeyBy
ZXR1cm4gaXNSZWcoKSAmJiByZWcoKS5pc0ZQUigpOyB9Ci0KLSAgICBHUFJSZWcgZ3ByKCkgY29u
c3QgeyByZXR1cm4gcmVnKCkuZ3ByKCk7IH0KLSAgICBGUFJSZWcgZnByKCkgY29uc3QgeyByZXR1
cm4gcmVnKCkuZnByKCk7IH0KLQotICAgIGJvb2wgaXNTdGFjaygpIGNvbnN0IHsgcmV0dXJuIGtp
bmQoKSA9PSBTdGFjazsgfQorICAgIEZQUlJlZyBmcHIoKSBjb25zdAorICAgIHsKKyAgICAgICAg
QVNTRVJUKGlzRlBSKCkpOworICAgICAgICByZXR1cm4gdS5mcHI7CisgICAgfQogCiAgICAgaW50
cHRyX3Qgb2Zmc2V0RnJvbUZQKCkgY29uc3QKICAgICB7CkBAIC0xMDIsOCArMTA1LDYgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gdS5vZmZzZXRGcm9tRlA7CiAgICAgfQogCi0gICAgYm9vbCBp
c1N0YWNrQXJndW1lbnQoKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gU3RhY2tBcmd1bWVudDsg
fQotCiAgICAgaW50cHRyX3Qgb2Zmc2V0RnJvbVNQKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFT
U0VSVChpc1N0YWNrQXJndW1lbnQoKSk7CkBAIC0xMTQsNyArMTE1LDggQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIHVuaW9uIFUgewotICAgICAgICBSZWcgcmVnOworICAgICAgICBKU1ZhbHVl
UmVncyBqc3I7CisgICAgICAgIEZQUlJlZyBmcHI7CiAgICAgICAgIGludHB0cl90IG9mZnNldEZy
b21GUDsKICAgICAgICAgaW50cHRyX3Qgb2Zmc2V0RnJvbVNQOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAKaW5kZXggODk0MjBkODgxMzQ2Li4wZjYyNGUwYjYx
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAKQEAgLTMx
LDYgKzMxLDcgQEAKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJKU0NKU1Zh
bHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlJbnN0YW5jZS5oIgorI2luY2x1
ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiV2FzbUNhbGxp
bmdDb252ZW50aW9uLmgiCiAjaW5jbHVkZSAiV2FzbUNvbnRleHRJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiV2FzbU9wZXJhdGlvbnMuaCIKQEAgLTQxLDEzICs0MiwxMyBAQCBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIFdhc20gewogdm9pZCBtYXJzaGFsbEpTUmVzdWx0KENDYWxsSGVscGVycyYgaml0
LCBjb25zdCBUeXBlRGVmaW5pdGlvbiYgdHlwZURlZmluaXRpb24sIGNvbnN0IENhbGxJbmZvcm1h
dGlvbiYgd2FzbUZyYW1lQ29udmVudGlvbiwgY29uc3QgUmVnaXN0ZXJBdE9mZnNldExpc3QmIHNh
dmVkUmVzdWx0UmVnaXN0ZXJzKQogewogICAgIGNvbnN0IGF1dG8mIHNpZ25hdHVyZSA9ICp0eXBl
RGVmaW5pdGlvbi5hczxGdW5jdGlvblNpZ25hdHVyZT4oKTsKLSAgICBhdXRvIGJveFdhc21SZXN1
bHQgPSBbXShDQ2FsbEhlbHBlcnMmIGppdCwgVHlwZSB0eXBlLCBSZWcgc3JjLCBKU1ZhbHVlUmVn
cyBkc3QpIHsKKyAgICBhdXRvIGJveFdhc21SZXN1bHQgPSBbXShDQ2FsbEhlbHBlcnMmIGppdCwg
VHlwZSB0eXBlLCBWYWx1ZUxvY2F0aW9uIHNyYywgSlNWYWx1ZVJlZ3MgZHN0KSB7CiAgICAgICAg
IHN3aXRjaCAodHlwZS5raW5kKSB7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlZvaWQ6CiAgICAg
ICAgICAgICBqaXQubW92ZVRydXN0ZWRWYWx1ZShqc1VuZGVmaW5lZCgpLCBkc3QpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkkzMjoKLSAgICAgICAgICAgIGpp
dC56ZXJvRXh0ZW5kMzJUb1dvcmQoc3JjLmdwcigpLCBkc3QucGF5bG9hZEdQUigpKTsKKyAgICAg
ICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoc3JjLmpzcigpLnBheWxvYWRHUFIoKSwgZHN0
LnBheWxvYWRHUFIoKSk7CiAgICAgICAgICAgICBqaXQuYm94SW50MzIoZHN0LnBheWxvYWRHUFIo
KSwgZHN0LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKQEAgLTU2LDEzICs1NywxNyBAQCB2b2lkIG1hcnNoYWxs
SlNSZXN1bHQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFR5cGVEZWZpbml0aW9uJiB0eXBlRGVm
aW5pdGlvbiwgYwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6IHsKICAgICAgICAgICAgIGpp
dC5tb3ZlVHJ1c3RlZFZhbHVlKGpzTnVtYmVyKHB1cmVOYU4oKSksIGRzdCk7CiAgICAgICAgICAg
ICBhdXRvIGlzTmFOID0gaml0LmJyYW5jaElmTmFOKHNyYy5mcHIoKSk7CisjaWYgVVNFKEpTVkFM
VUU2NCkKICAgICAgICAgICAgIGppdC5ib3hEb3VibGUoc3JjLmZwcigpLCBkc3QsIERvTm90SGF2
ZVRhZ1JlZ2lzdGVycyk7CisjZWxzZQorICAgICAgICAgICAgaml0LmJveERvdWJsZShzcmMuZnBy
KCksIGRzdCk7CisjZW5kaWYKICAgICAgICAgICAgIGlzTmFOLmxpbmsoJmppdCk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OiB7CiAgICAgICAgICAgICBp
ZiAoaXNGdW5jcmVmKHR5cGUpIHx8IGlzRXh0ZXJucmVmKHR5cGUpKQotICAgICAgICAgICAgICAg
IGppdC5tb3ZlKHNyYy5ncHIoKSwgZHN0LnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICAgICAg
aml0Lm1vdmVWYWx1ZVJlZ3Moc3JjLmpzcigpLCBkc3QpOwogICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgIGppdC5icmVha3BvaW50KCk7CiAgICAgICAgIH0KQEAgLTcwLDQ0ICs3NSw4
NyBAQCB2b2lkIG1hcnNoYWxsSlNSZXN1bHQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFR5cGVE
ZWZpbml0aW9uJiB0eXBlRGVmaW5pdGlvbiwgYwogICAgIH07CiAKICAgICBpZiAoc2lnbmF0dXJl
LnJldHVybnNWb2lkKCkpCi0gICAgICAgIGppdC5tb3ZlVHJ1c3RlZFZhbHVlKGpzVW5kZWZpbmVk
KCksIEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIgfSk7CisgICAgICAgIGpp
dC5tb3ZlVHJ1c3RlZFZhbHVlKGpzVW5kZWZpbmVkKCksIEpTUkluZm86OnJldHVyblZhbHVlSlNS
KTsKICAgICBlbHNlIGlmIChzaWduYXR1cmUucmV0dXJuQ291bnQoKSA9PSAxKSB7CiAgICAgICAg
IGlmIChzaWduYXR1cmUucmV0dXJuVHlwZSgwKS5pc0k2NCgpKSB7Ci0gICAgICAgICAgICBHUFJS
ZWcgaW5wdXRHUFIgPSB3YXNtRnJhbWVDb252ZW50aW9uLnJlc3VsdHNbMF0ucmVnKCkuZ3ByKCk7
CisgICAgICAgICAgICBKU1ZhbHVlUmVncyBpbnB1dEpTUiA9IHdhc21GcmFtZUNvbnZlbnRpb24u
cmVzdWx0c1swXS5qc3IoKTsKICAgICAgICAgICAgIEdQUlJlZyB3YXNtQ29udGV4dEluc3RhbmNl
R1BSID0gUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKS53YXNtQ29udGV4dEluc3RhbmNlUG9pbnRl
cjsKICAgICAgICAgICAgIGlmIChDb250ZXh0Ojp1c2VGYXN0VExTKCkpIHsKLSAgICAgICAgICAg
ICAgICB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gaW5wdXRHUFIgPT0gR1BSSW5mbzo6YXJndW1l
bnRHUFIxID8gR1BSSW5mbzo6YXJndW1lbnRHUFIwIDogR1BSSW5mbzo6YXJndW1lbnRHUFIxOwot
ICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lX3Y8V2FzbTo6SW5zdGFu
Y2UqLCB0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxkZWNsdHlwZShvcGVyYXRpb25BbGxvY2F0ZVJl
c3VsdHNBcnJheSk+OjpBcmd1bWVudFR5cGU8MT4+KTsKKyAgICAgICAgICAgICAgICB3YXNtQ29u
dGV4dEluc3RhbmNlR1BSID0gaW5wdXRKU1IucGF5bG9hZEdQUigpID09IEdQUkluZm86OmFyZ3Vt
ZW50R1BSMSA/IEdQUkluZm86OmFyZ3VtZW50R1BSMCA6IEdQUkluZm86OmFyZ3VtZW50R1BSMTsK
KyAgICAgICAgICAgICAgICBBU1NFUlQoIWlucHV0SlNSLnVzZXMod2FzbUNvbnRleHRJbnN0YW5j
ZUdQUikpOworICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lX3Y8V2Fz
bTo6SW5zdGFuY2UqLCB0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxkZWNsdHlwZShvcGVyYXRpb25D
b252ZXJ0VG9CaWdJbnQpPjo6QXJndW1lbnRUeXBlPDE+Pik7CiAgICAgICAgICAgICAgICAgaml0
LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHdhc21Db250ZXh0SW5zdGFuY2VHUFIpOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlv
bkNvbnZlcnRUb0JpZ0ludCk+KHdhc21Db250ZXh0SW5zdGFuY2VHUFIsIGlucHV0R1BSKTsKKyAg
ICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9C
aWdJbnQpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCBpbnB1dEpTUik7CiAgICAgICAgICAgICBq
aXQuY2FsbE9wZXJhdGlvbihGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkNv
bnZlcnRUb0JpZ0ludCkpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGJveFdhc21SZXN1
bHQoaml0LCBzaWduYXR1cmUucmV0dXJuVHlwZSgwKSwgd2FzbUZyYW1lQ29udmVudGlvbi5yZXN1
bHRzWzBdLnJlZygpLCBKU1ZhbHVlUmVncyB7IEdQUkluZm86OnJldHVyblZhbHVlR1BSIH0pOwor
ICAgICAgICAgICAgYm94V2FzbVJlc3VsdChqaXQsIHNpZ25hdHVyZS5yZXR1cm5UeXBlKDApLCB3
YXNtRnJhbWVDb252ZW50aW9uLnJlc3VsdHNbMF0sIEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsK
ICAgICB9IGVsc2UgewogICAgICAgICBJbmRleGluZ1R5cGUgaW5kZXhpbmdUeXBlID0gQXJyYXlX
aXRoVW5kZWNpZGVkOwotICAgICAgICBKU1ZhbHVlUmVncyBzY3JhdGNoID0gSlNWYWx1ZVJlZ3Mg
eyB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdIH07CisgICAg
ICAgIEpTVmFsdWVSZWdzIHNjcmF0Y2hKU1IgPSBKU1ZhbHVlUmVncyB7CisjaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAgICAgICAgIHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2Ny
YXRjaEdQUnNbMl0sCisjZW5kaWYKKyAgICAgICAgICAgIHdhc21DYWxsaW5nQ29udmVudGlvbigp
LnByb2xvZ3VlU2NyYXRjaEdQUnNbMV0KKyAgICAgICAgfTsKKworICAgICAgICBBU1NFUlQoc2Ny
YXRjaEpTUi5wYXlsb2FkR1BSKCkgIT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKTsKKyNpZiBVU0Uo
SlNWQUxVRTMyXzY0KQorICAgICAgICBBU1NFUlQoc2NyYXRjaEpTUi50YWdHUFIoKSAhPSBHUFJS
ZWc6OkludmFsaWRHUFJSZWcpOworICAgICAgICBBU1NFUlQoc2NyYXRjaEpTUi5wYXlsb2FkR1BS
KCkgIT0gc2NyYXRjaEpTUi50YWdHUFIoKSk7CisjZW5kaWYKKwogICAgICAgICAvLyBXZSBjYW4g
dXNlIHRoZSBmaXJzdCBmbG9hdGluZyBwb2ludCByZWdpc3RlciBhcyBhIHNjcmF0Y2ggc2luY2Ug
aXQgd2lsbCBhbHdheXMgYmUgbW92ZWQgb250byB0aGUgc3RhY2sgYmVmb3JlIG90aGVyIHZhbHVl
cy4KLSAgICAgICAgRlBSUmVnIGZwclNjcmF0Y2ggPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5m
cHJBcmdzWzBdLmZwcigpOworICAgICAgICBGUFJSZWcgZnByU2NyYXRjaCA9IHdhc21DYWxsaW5n
Q29udmVudGlvbigpLmZwckFyZ3NbMF07CiAgICAgICAgIGJvb2wgaGFzSTY0ID0gZmFsc2U7CiAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaWduYXR1cmUucmV0dXJuQ291bnQoKTsg
KytpKSB7CiAgICAgICAgICAgICBWYWx1ZUxvY2F0aW9uIGxvYyA9IHdhc21GcmFtZUNvbnZlbnRp
b24ucmVzdWx0c1tpXTsKICAgICAgICAgICAgIFR5cGUgdHlwZSA9IHNpZ25hdHVyZS5yZXR1cm5U
eXBlKGkpOwogCiAgICAgICAgICAgICBoYXNJNjQgfD0gdHlwZS5pc0k2NCgpOwotICAgICAgICAg
ICAgaWYgKGxvYy5pc1JlZygpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCF0eXBlLmlzSTY0KCkp
IHsKLSAgICAgICAgICAgICAgICAgICAgYm94V2FzbVJlc3VsdChqaXQsIHNpZ25hdHVyZS5yZXR1
cm5UeXBlKGkpLCBsb2MucmVnKCksIHNjcmF0Y2gpOwotICAgICAgICAgICAgICAgICAgICBqaXQu
c3RvcmVWYWx1ZShzY3JhdGNoLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpz
dGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MucmVnKCkp
LT5vZmZzZXQoKSArIHdhc21GcmFtZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1lbnRTdGFja1Np
emVJbkJ5dGVzKSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAg
IGppdC5zdG9yZVZhbHVlKEpTVmFsdWVSZWdzIHsgbG9jLnJlZygpLmdwcigpIH0sIENDYWxsSGVs
cGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJl
c3VsdFJlZ2lzdGVycy5maW5kKGxvYy5yZWcoKSktPm9mZnNldCgpICsgd2FzbUZyYW1lQ29udmVu
dGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpKTsKKyAgICAgICAgICAgIGlm
IChsb2MuaXNHUFIoKSB8fCBsb2MuaXNGUFIoKSkgeworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisg
ICAgICAgICAgICAgICAgQVNTRVJUKCFsb2MuaXNHUFIoKSB8fCBzYXZlZFJlc3VsdFJlZ2lzdGVy
cy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSArIDQgPT0gc2F2ZWRSZXN1
bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkudGFnR1BSKCkpLT5vZmZzZXQoKSk7CisjZW5kaWYK
KyAgICAgICAgICAgICAgICBhdXRvIGFkZHJlc3MgPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0Nh
bGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgd2FzbUZyYW1lQ29udmVudGlvbi5oZWFk
ZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpOworICAgICAgICAgICAgICAgIHN3aXRjaCAo
dHlwZS5raW5kKSB7CisgICAgICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgorICAgICAg
ICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2NDoKKyAgICAgICAgICAgICAgICAgICAgYm94V2Fz
bVJlc3VsdChqaXQsIHR5cGUsIGxvYywgc2NyYXRjaEpTUik7CisgICAgICAgICAgICAgICAgICAg
IGppdC5zdG9yZVZhbHVlKHNjcmF0Y2hKU1IsIGFkZHJlc3Mud2l0aE9mZnNldChzYXZlZFJlc3Vs
dFJlZ2lzdGVycy5maW5kKGxvYy5mcHIoKSktPm9mZnNldCgpKSk7CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDoKKyAgICAgICAg
ICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUobG9jLmpzcigpLCBhZGRyZXNzLndpdGhPZmZzZXQo
c2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0
KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgICAgICAgICAgYm94V2FzbVJlc3VsdChqaXQsIHR5cGUsIGxvYywgc2Ny
YXRjaEpTUik7CisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2hKU1Is
IGFkZHJlc3Mud2l0aE9mZnNldChzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS5w
YXlsb2FkR1BSKCkpLT5vZmZzZXQoKSkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGlm
ICghdHlwZS5pc0k2NCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gbG9jYXRpb24gPSBD
Q2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwg
bG9jLm9mZnNldEZyb21TUCgpKTsKLSAgICAgICAgICAgICAgICAgICAgUmVnIHRtcCA9ICh0eXBl
LmlzRjMyKCkgfHwgdHlwZS5pc0Y2NCgpKSA/IFJlZyhmcHJTY3JhdGNoKSA6IFJlZyhzY3JhdGNo
LmdwcigpKTsKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NFRvUmVnKGxvY2F0aW9uLCB0
bXApOwotICAgICAgICAgICAgICAgICAgICBib3hXYXNtUmVzdWx0KGppdCwgc2lnbmF0dXJlLnJl
dHVyblR5cGUoaSksIHRtcCwgc2NyYXRjaCk7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5zdG9y
ZVZhbHVlKHNjcmF0Y2gsIGxvY2F0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgVmFsdWVMb2Nh
dGlvbiB0bXA7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZS5raW5kKSB7CisgICAg
ICAgICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRtcCA9IFZhbHVlTG9jYXRpb24geyBmcHJTY3JhdGNoIH07CisgICAgICAgICAgICAgICAg
ICAgICAgICBqaXQubG9hZEZsb2F0KGxvY2F0aW9uLCBmcHJTY3JhdGNoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpG
NjQ6CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBWYWx1ZUxvY2F0aW9uIHsgZnByU2Ny
YXRjaCB9OworICAgICAgICAgICAgICAgICAgICAgICAgaml0LmxvYWREb3VibGUobG9jYXRpb24s
IGZwclNjcmF0Y2gpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkkzMjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHRt
cCA9IFZhbHVlTG9jYXRpb24geyBzY3JhdGNoSlNSIH07CisgICAgICAgICAgICAgICAgICAgICAg
ICBqaXQubG9hZDMyKGxvY2F0aW9uLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFZhbHVlTG9jYXRpb24geyBzY3JhdGNoSlNSIH07
CisgICAgICAgICAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGxvY2F0aW9uLCBzY3JhdGNo
SlNSKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIGJveFdhc21SZXN1bHQoaml0LCB0eXBlLCB0bXAsIHNj
cmF0Y2hKU1IpOworICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNoSlNS
LCBsb2NhdGlvbik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCkBAIC0xMzYs
MzcgKzE4NCw0NyBAQCB2b2lkIG1hcnNoYWxsSlNSZXN1bHQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNv
bnN0IFR5cGVEZWZpbml0aW9uJiB0eXBlRGVmaW5pdGlvbiwgYwogCiAgICAgICAgICAgICAgICAg
R1BSUmVnIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBQaW5uZWRSZWdpc3RlckluZm86OmdldCgp
Lndhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyOwogICAgICAgICAgICAgICAgIGlmIChDb250ZXh0
Ojp1c2VGYXN0VExTKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5j
ZUdQUiA9IEdQUkluZm86OmFyZ3VtZW50R1BSMTsKLSAgICAgICAgICAgICAgICAgICAgc3RhdGlj
X2Fzc2VydChzdGQ6OmlzX3NhbWVfdjxXYXNtOjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0aW9u
VHJhaXRzPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KT46OkFyZ3VtZW50
VHlwZTwxPj4pOworICAgICAgICAgICAgICAgICAgICB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0g
cHJlZmVycmVkQXJndW1lbnRHUFI8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KSwg
MT4oKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWVfdjxX
YXNtOjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPGRlY2x0eXBlKG9wZXJhdGlv
bkNvbnZlcnRUb0JpZ0ludCk+OjpBcmd1bWVudFR5cGU8MT4+KTsKICAgICAgICAgICAgICAgICAg
ICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHdhc21Db250ZXh0SW5zdGFuY2VHUFIpOwog
ICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGlmIChsb2MuaXNSZWcoKSkKLSAg
ICAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NChDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxI
ZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChs
b2MucmVnKCkpLT5vZmZzZXQoKSArIHdhc21GcmFtZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1l
bnRTdGFja1NpemVJbkJ5dGVzKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBsb2NhdGlvbiA9IENDYWxsSGVs
cGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBsb2Mub2Zm
c2V0RnJvbVNQKCkpOwotICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDY0VG9SZWcobG9jYXRp
b24sIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJ
bnQpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAg
ICAgICAgICAgICAgIGNvbnN0ZXhwciBKU1ZhbHVlUmVncyB2YWx1ZUpTUiA9IHByZWZlcnJlZEFy
Z3VtZW50SlNSPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCksIDI+KCk7CisKKyAg
ICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgYWRkcmVzcyB7IENDYWxsSGVscGVy
czo6c3RhY2tQb2ludGVyUmVnaXN0ZXIgfTsKKyAgICAgICAgICAgICAgICBpZiAobG9jLmlzR1BS
KCkgfHwgbG9jLmlzRlBSKCkpIHsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAg
ICAgICAgICBBU1NFUlQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9h
ZEdQUigpKS0+b2Zmc2V0KCkgKyA0ID09IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpz
cigpLnRhZ0dQUigpKS0+b2Zmc2V0KCkpOworI2VuZGlmCisgICAgICAgICAgICAgICAgICAgIGFk
ZHJlc3MgPSBhZGRyZXNzLndpdGhPZmZzZXQoc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2Mu
anNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkgKyB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRl
ckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcyk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgPSBhZGRyZXNzLndpdGhPZmZzZXQobG9jLm9mZnNl
dEZyb21TUCgpKTsKKworICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoYWRkcmVzcywgdmFs
dWVKU1IpOworICAgICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVy
YXRpb25Db252ZXJ0VG9CaWdJbnQpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCB2YWx1ZUpTUik7
CiAgICAgICAgICAgICAgICAgaml0LmNhbGxPcGVyYXRpb24oRnVuY3Rpb25QdHI8T3BlcmF0aW9u
UHRyVGFnPihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpKTsKLSAgICAgICAgICAgICAgICBpZiAo
bG9jLmlzUmVnKCkpCi0gICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTVmFsdWVS
ZWdzIHsgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIgfSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEND
YWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZp
bmQobG9jLnJlZygpKS0+b2Zmc2V0KCkgKyB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFy
Z3VtZW50U3RhY2tTaXplSW5CeXRlcykpOwotICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAg
ICAgICAgICAgICAgICBhdXRvIGxvY2F0aW9uID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxs
SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIGxvYy5vZmZzZXRGcm9tU1AoKSk7Ci0gICAg
ICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIgfSwgbG9jYXRpb24pOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBqaXQuc3RvcmVWYWx1ZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgYWRkcmVzcyk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBHUFJSZWcgd2FzbUNvbnRleHRJbnN0
YW5jZUdQUiA9IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCkud2FzbUNvbnRleHRJbnN0YW5jZVBv
aW50ZXI7CiAgICAgICAgIGlmIChDb250ZXh0Ojp1c2VGYXN0VExTKCkpIHsKLSAgICAgICAgICAg
IHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBHUFJJbmZvOjphcmd1bWVudEdQUjE7CisgICAgICAg
ICAgICB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gcHJlZmVycmVkQXJndW1lbnRHUFI8ZGVjbHR5
cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXkpLCAxPigpOwogICAgICAgICAgICAgc3Rh
dGljX2Fzc2VydChzdGQ6OmlzX3NhbWVfdjxXYXNtOjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0
aW9uVHJhaXRzPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KT46OkFyZ3Vt
ZW50VHlwZTwxPj4pOwogICAgICAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHdh
c21Db250ZXh0SW5zdGFuY2VHUFIpOwogICAgICAgICB9CiAKLSAgICAgICAgaml0LnNldHVwQXJn
dW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KT4od2FzbUNvbnRl
eHRJbnN0YW5jZUdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZ0eXBlRGVmaW5pdGlv
biksIGluZGV4aW5nVHlwZSwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7Cisg
ICAgICAgIGNvbnN0ZXhwciBHUFJSZWcgc2F2ZWRSZXN1bHRzR1BSID0gcHJlZmVycmVkQXJndW1l
bnRHUFI8ZGVjbHR5cGUob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXkpLCA0PigpOworICAg
ICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJl
c3VsdHNHUFIpOworICAgICAgICBpZiBjb25zdGV4cHIgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsKQorICAgICAgICAgICAgaml0LnN1YlB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
MihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIENDYWxsSGVscGVyczo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOworICAgICAgICBBU1NFUlQod2FzbUNvbnRleHRJbnN0YW5jZUdQUiAhPSBz
YXZlZFJlc3VsdHNHUFIpOworICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3Bl
cmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXkpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCBDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoJnR5cGVEZWZpbml0aW9uKSwgaW5kZXhpbmdUeXBlLCBz
YXZlZFJlc3VsdHNHUFIpOwogICAgICAgICBqaXQuY2FsbE9wZXJhdGlvbihGdW5jdGlvblB0cjxP
cGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KSk7CisgICAgICAg
IGlmIGNvbnN0ZXhwciAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAg
ICBqaXQuYWRkUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50Rm9y
U2xvd1BhdGhDYWxsKSwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisKKyAg
ICAgICAgaml0LmJveENlbGwoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEpTUkluZm86OnJldHVy
blZhbHVlSlNSKTsKICAgICB9CiB9CiAKQEAgLTE3OCw3ICsyMzYsMTEgQEAgc3RkOjp1bmlxdWVf
cHRyPEludGVybmFsRnVuY3Rpb24+IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMm
IGppdCwgY29uc3QKICAgICAvLyBGSVhNRSBTdG9wIHVzaW5nIDAgYXMgY29kZUJsb2Nrcy4gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTMyMQogICAgIGppdC5lbWl0
WmVyb1RvQ2FsbEZyYW1lSGVhZGVyKENhbGxGcmFtZVNsb3Q6OmNvZGVCbG9jayk7CiAgICAgTWFj
cm9Bc3NlbWJsZXI6OkRhdGFMYWJlbFB0ciBjYWxsZWVNb3ZlTG9jYXRpb24gPSBqaXQubW92ZVdp
dGhQYXRjaChNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihudWxscHRyKSwgR1BSSW5mbzo6
bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSKTsKLSAgICBqaXQuZW1pdFB1dFRvQ2FsbEZyYW1lSGVh
ZGVyKEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQUiwgQ2FsbEZyYW1lU2xvdDo6Y2Fs
bGVlKTsKKyAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgY2FsbGVlU2xvdCB7IEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWVTbG90OjpjYWxsZWUgKiBzaXplb2YoUmVnaXN0ZXIp
IH07CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQUiwg
Y2FsbGVlU2xvdC53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyNpZiBVU0UoSlNWQUxVRTMy
XzY0KQorICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6
Oldhc21UYWcpLCBjYWxsZWVTbG90LndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7CisjZW5kaWYKICAg
ICBWZWN0b3I8Q29kZUxvY2F0aW9uRGF0YUxhYmVsUHRyPFdhc21FbnRyeVB0clRhZz4+KiBsaW5r
ZWRDYWxsZWVNb3ZlID0gJnJlc3VsdC0+Y2FsbGVlTW92ZUxvY2F0aW9uczsKICAgICBqaXQuYWRk
TGlua1Rhc2soWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CiAgICAgICAgIGxpbmtlZENh
bGxlZU1vdmUtPmFwcGVuZChsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8V2FzbUVudHJ5UHRyVGFnPihj
YWxsZWVNb3ZlTG9jYXRpb24pKTsKQEAgLTIyMyw5ICsyODUsMTIgQEAgc3RkOjp1bmlxdWVfcHRy
PEludGVybmFsRnVuY3Rpb24+IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGpp
dCwgY29uc3QKIAogICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgY2FsbGVlRnJhbWUgPSBD
Q2FsbEhlbHBlcnM6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
LCAwKTsKIAotICAgICAgICAvLyBXZSdyZSBnb2luZyB0byBzZXQgdGhlIHBpbm5lZCByZWdpc3Rl
cnMgYWZ0ZXIgdGhpcy4gU28KLSAgICAgICAgLy8gd2UgY2FuIHVzZSB0aGlzIGFzIGEgc2NyYXRj
aCBmb3Igbm93IHNpbmNlIHdlIHNhdmVkIGl0IGFib3ZlLgotICAgICAgICBHUFJSZWcgc2NyYXRj
aFJlZyA9IHBpbm5lZFJlZ3MuYmFzZU1lbW9yeVBvaW50ZXI7CisgICAgICAgIEpTVmFsdWVSZWdz
IHNjcmF0Y2hKU1IgeworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICB3YXNtQ2Fs
bGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzJdLAorI2VuZGlmCisgICAgICAg
ICAgICB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdCisgICAg
ICAgIH07CiAKICAgICAgICAgaWYgKCFDb250ZXh0Ojp1c2VGYXN0VExTKCkpIHsKICAgICAgICAg
ICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3RlciwgSlNDYWxsaW5nQ29udmVudGlvbjo6aW5zdGFuY2VTdGFja09mZnNldCksIHdhc21D
b250ZXh0SW5zdGFuY2VHUFIpOwpAQCAtMjM5LDIyICszMDQsMzQgQEAgc3RkOjp1bmlxdWVfcHRy
PEludGVybmFsRnVuY3Rpb24+IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGpp
dCwgY29uc3QKICAgICAgICAgICAgIFR5cGUgdHlwZSA9IHNpZ25hdHVyZS5hcmd1bWVudFR5cGUo
aSk7CiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MganNQYXJhbShHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3RlciwganNGcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLm9mZnNldEZyb21G
UCgpKTsKICAgICAgICAgICAgIGlmICh3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5pc1N0
YWNrQXJndW1lbnQoKSkgeworICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBh
ZGRyIHsgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tp
XS5vZmZzZXRGcm9tU1AoKSkgfTsKICAgICAgICAgICAgICAgICBpZiAodHlwZS5pc0kzMigpIHx8
IHR5cGUuaXNGMzIoKSkgewotICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDMyKGpzUGFyYW0s
IHNjcmF0Y2hSZWcpOwotICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihzY3JhdGNoUmVn
LCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLm9m
ZnNldEZyb21TUCgpKSk7CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkMzIoanNQYXJhbSwg
c2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmUz
MihzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgYWRkci53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQp
KTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmUz
MihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSwgYWRkci53aXRoT2Zmc2V0KFRhZ09mZnNl
dCkpOworI2VuZGlmCiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNoUmVnKTsKLSAgICAgICAgICAgICAgICAgICAg
aml0LnN0b3JlNjQoc2NyYXRjaFJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtRnJhbWVD
b252ZW50aW9uLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkpOworICAgICAgICAgICAgICAgICAg
ICBqaXQubG9hZFZhbHVlKGpzUGFyYW0sIHNjcmF0Y2hKU1IpOworICAgICAgICAgICAgICAgICAg
ICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNoSlNSLCBhZGRyKTsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGlmICh0eXBlLmlzSTMyKCkgfHwg
dHlwZS5pc0YzMigpKQotICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDMyVG9SZWcoanNQYXJh
bSwgd2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0ucmVnKCkpOwotICAgICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NFRvUmVnKGpzUGFyYW0sIHdhc21G
cmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLnJlZygpKTsKKyAgICAgICAgICAgICAgICBpZiAodHlw
ZS5pc0YzMigpKQorICAgICAgICAgICAgICAgICAgICBqaXQubG9hZEZsb2F0KGpzUGFyYW0sIHdh
c21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLmZwcigpKTsKKyAgICAgICAgICAgICAgICBlbHNl
IGlmICh0eXBlLmlzRjY0KCkpCisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkRG91YmxlKGpz
UGFyYW0sIHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLmZwcigpKTsKKyAgICAgICAgICAg
ICAgICBlbHNlIGlmICh0eXBlLmlzSTMyKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaml0Lmxv
YWQzMihqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5qc3IoKS5wYXlsb2Fk
R1BSKCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgICAgIGppdC5t
b3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCB3YXNtRnJhbWVDb252ZW50aW9uLnBh
cmFtc1tpXS5qc3IoKS50YWdHUFIoKSk7CisjZW5kaWYKKyAgICAgICAgICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShqc1BhcmFtLCB3YXNtRnJhbWVDb252
ZW50aW9uLnBhcmFtc1tpXS5qc3IoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9
CiAKKyNpZiAhQ1BVKEFSTSkgLy8gQVJNIGhhcyBubyBwaW5uZWQgcmVnaXN0ZXJzIGZvciBXYXNt
IE1lbW9yeSwgc28gbm8gbmVlZCB0byBzZXQgdGhlbSB1cAogICAgIGlmICghIWluZm8ubWVtb3J5
KSB7CiAgICAgICAgIEdQUlJlZyBiYXNlTWVtb3J5ID0gcGlubmVkUmVncy5iYXNlTWVtb3J5UG9p
bnRlcjsKICAgICAgICAgR1BSUmVnIHNpemUgPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9s
b2d1ZVNjcmF0Y2hHUFJzWzBdOwpAQCAtMjY1LDE3ICszNDIsMTggQEAgc3RkOjp1bmlxdWVfcHRy
PEludGVybmFsRnVuY3Rpb24+IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGpp
dCwgY29uc3QKIAogICAgICAgICBHUFJSZWcgY3VycmVudEluc3RhbmNlR1BSID0gQ29udGV4dDo6
dXNlRmFzdFRMUygpID8gYmFzZU1lbW9yeSA6IHdhc21Db250ZXh0SW5zdGFuY2VHUFI7CiAgICAg
ICAgIGlmIChpc0FSTTY0RSgpKSB7Ci0gICAgICAgICAgICBpZiAobW9kZSAhPSBXYXNtOjpNZW1v
cnlNb2RlOjpTaWduYWxpbmcpCisgICAgICAgICAgICBpZiAobW9kZSA9PSBXYXNtOjpNZW1vcnlN
b2RlOjpCb3VuZHNDaGVja2luZykKICAgICAgICAgICAgICAgICBzaXplID0gcGlubmVkUmVncy5i
b3VuZHNDaGVja2luZ1NpemVSZWdpc3RlcjsKICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxs
SGVscGVyczo6QWRkcmVzcyhjdXJyZW50SW5zdGFuY2VHUFIsIFdhc206Okluc3RhbmNlOjpvZmZz
ZXRPZkNhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSgpKSwgc2l6ZSk7CiAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICBpZiAobW9kZSAhPSBXYXNtOjpNZW1vcnlNb2RlOjpTaWduYWxpbmcpCisg
ICAgICAgICAgICBpZiAobW9kZSA9PSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykK
ICAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoY3VycmVu
dEluc3RhbmNlR1BSLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRCb3VuZHNDaGVja2lu
Z1NpemUoKSksIHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIpOwogICAgICAg
ICB9CiAKICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGN1cnJlbnRJ
bnN0YW5jZUdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkTWVtb3J5KCkpLCBiYXNl
TWVtb3J5KTsKICAgICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5QW5kVW50YWcoR2lnYWNhZ2U6
OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwgc2l6ZSwgc2NyYXRjaCk7CiAgICAgfQorI2VuZGlmCiAK
ICAgICBDQ2FsbEhlbHBlcnM6OkNhbGwgY2FsbCA9IGppdC50aHJlYWRTYWZlUGF0Y2hhYmxlTmVh
ckNhbGwoKTsKICAgICB1bnNpZ25lZCBmdW5jdGlvbkluZGV4U3BhY2UgPSBmdW5jdGlvbkluZGV4
ICsgaW5mby5pbXBvcnRGdW5jdGlvbkNvdW50KCk7CkBAIC0yODgsNyArMzY2LDcgQEAgc3RkOjp1
bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDQ2FsbEhl
bHBlcnMmIGppdCwgY29uc3QKIAogICAgIGZvciAoY29uc3QgUmVnaXN0ZXJBdE9mZnNldCYgcmVn
QXRPZmZzZXQgOiByZWdpc3RlcnNUb1NwaWxsKSB7CiAgICAgICAgIEdQUlJlZyByZWcgPSByZWdB
dE9mZnNldC5yZWcoKS5ncHIoKTsKLSAgICAgICAgQVNTRVJUKHJlZyAhPSBHUFJJbmZvOjpyZXR1
cm5WYWx1ZUdQUik7CisgICAgICAgIEFTU0VSVCghSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IudXNl
cyhyZWcpKTsKICAgICAgICAgcHRyZGlmZl90IG9mZnNldCA9IHJlZ0F0T2Zmc2V0Lm9mZnNldCgp
OwogICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6Y2Fs
bEZyYW1lUmVnaXN0ZXIsIG9mZnNldCksIHJlZyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2FzbVRvSlMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2FzbVRvSlMuY3BwCmluZGV4IDY1OTQ1ZGMxNTdjZS4uZTg1ZWM5YTIyNjQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2FzbVRvSlMuY3BwCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiSlNXZWJBc3Nl
bWJseUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorI2luY2x1ZGUgIk1heEZy
YW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiVGh1bmtHZW5lcmF0b3JzLmgi
CiAjaW5jbHVkZSAiV2FzbUNhbGxpbmdDb252ZW50aW9uLmgiCiAjaW5jbHVkZSAiV2FzbUNvbnRl
eHRJbmxpbmVzLmgiCkBAIC02OSw3ICs3MCw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAg
ICAgLy8gSWYgd2UgZXZlciBjaGFuZ2UgdGhpcywgd2Ugd2lsbCBhbHNvIG5lZWQgdG8gY2hhbmdl
IFdhc21CM0lSR2VuZXJhdG9yLgogCiAgICAgLy8gQmVsb3csIHdlIGFzc3VtZSB0aGF0IHRoZSBK
UyBjYWxsaW5nIGNvbnZlbnRpb24gaXMgYWx3YXlzIG9uIHRoZSBzdGFjay4KLSAgICBBU1NFUlQo
IWpzQ0MuZ3ByQXJncy5zaXplKCkpOworICAgIEFTU0VSVCghanNDQy5qc3JBcmdzLnNpemUoKSk7
CiAgICAgQVNTRVJUKCFqc0NDLmZwckFyZ3Muc2l6ZSgpKTsKIAogICAgIGppdC5lbWl0RnVuY3Rp
b25Qcm9sb2d1ZSgpOwpAQCAtODYsMTQgKzg3LDIyIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVy
Q29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZt
CiAgICAgLy8gZm9yIHVzIGhlcmUuCiAKICAgICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlBhcmFt
ZXRlcnMgPSBhcmdDb3VudCArIDE7IC8vIFRoZXJlIGlzIGEgInRoaXMiIGFyZ3VtZW50LgotICAg
IGNvbnN0IHVuc2lnbmVkIG51bWJlck9mUmVnc0ZvckNhbGwgPSBDYWxsRnJhbWU6OmhlYWRlclNp
emVJblJlZ2lzdGVycyArIG51bWJlck9mUGFyYW1ldGVyczsKKyAgICBjb25zdCB1bnNpZ25lZCBu
dW1iZXJPZlJlZ3NGb3JDYWxsID0gQ2FsbEZyYW1lOjpoZWFkZXJTaXplSW5SZWdpc3RlcnMgKyBy
b3VuZEFyZ3VtZW50Q291bnRUb0FsaWduRnJhbWUobnVtYmVyT2ZQYXJhbWV0ZXJzKTsKKyAgICBB
U1NFUlQoIShudW1iZXJPZlJlZ3NGb3JDYWxsICUgc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSkp
OwogICAgIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQnl0ZXNGb3JDYWxsID0gbnVtYmVyT2ZSZWdz
Rm9yQ2FsbCAqIHNpemVvZihSZWdpc3RlcikgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQyk7Ci0g
ICAgY29uc3QgdW5zaWduZWQgc3RhY2tPZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yo
c3RhY2tBbGlnbm1lbnRCeXRlcygpLCBzdGQ6Om1heDx1bnNpZ25lZD4obnVtYmVyT2ZCeXRlc0Zv
ckNhbGwsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLnNpemVPZkFyZWFJbkJ5dGVzKCkpKTsKKyAgICBj
b25zdCB1bnNpZ25lZCBudW1iZXJPZkJ5dGVzRm9yU2F2ZWRSZXN1bHRzID0gc2F2ZWRSZXN1bHRS
ZWdpc3RlcnMuc2l6ZU9mQXJlYUluQnl0ZXMoKTsKKyAgICBjb25zdCB1bnNpZ25lZCBzdGFja09m
ZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudEJ5dGVzKCksIHN0
ZDo6bWF4KG51bWJlck9mQnl0ZXNGb3JDYWxsLCBudW1iZXJPZkJ5dGVzRm9yU2F2ZWRSZXN1bHRz
KSk7CiAgICAgaml0LnN1YlB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHN0YWNrT2Zm
c2V0KSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICBKSVQ6OkFk
ZHJlc3MgY2FsbGVlRnJhbWUgPSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6
OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCAtc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoQ2Fs
bGVyRnJhbWVBbmRQQykpKTsKIAogICAgIC8vIEZJWE1FIG1ha2UgdGhlc2UgbG9vcHMgd2hpY2gg
c3dpdGNoIG9uIHNpZ25hdHVyZSBpZiB0aGVyZSBhcmUgbWFueSBhcmd1bWVudHMgb24gdGhlIHN0
YWNrLiBJdCdsbCBvdGhlcndpc2UgYmUgaHVnZSBmb3IgaHVnZSB0eXBlIGRlZmluaXRpb25zLiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1NTQ3CiAKKyNpZiBVU0Uo
SlNWQUxVRTY0KQorICAgIGNvbnN0ZXhwciBKU1ZhbHVlUmVncyBqc0FyZzEwIHsgR1BSSW5mbzo6
YXJndW1lbnRHUFIwIH07CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGNvbnN0ZXhwciBK
U1ZhbHVlUmVncyBqc0FyZzEwIHsgR1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjphcmd1
bWVudEdQUjAgfTsKKyNlbmRpZgorCiAgICAgLy8gRmlyc3QgZ28gdGhyb3VnaCB0aGUgaW50ZWdl
ciBwYXJhbWV0ZXJzLCBmcmVlaW5nIHVwIHRoZWlyIHJlZ2lzdGVyIGZvciB1c2UgYWZ0ZXJ3YXJk
cy4KICAgICB7CiAgICAgICAgIHVuc2lnbmVkIG1hcnNoYWxsZWRHUFJzID0gMDsKQEAgLTExNCwy
MSArMTIzLDIxIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJU
YWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBjYXNlIFR5
cGVLaW5kOjpGdW5jcmVmOgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgogICAgICAg
ICAgICAgY2FzZSBUeXBlS2luZDo6STY0OiB7Ci0gICAgICAgICAgICAgICAgR1BSUmVnIGdwclJl
ZzsKLSAgICAgICAgICAgICAgICBpZiAobWFyc2hhbGxlZEdQUnMgPCB3YXNtQ0MuZ3ByQXJncy5z
aXplKCkpCi0gICAgICAgICAgICAgICAgICAgIGdwclJlZyA9IHdhc21DQy5ncHJBcmdzW21hcnNo
YWxsZWRHUFJzXS5ncHIoKTsKKyAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyBhcmdSZWc7Cisg
ICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRHUFJzIDwgd2FzbUNDLmpzckFyZ3Muc2l6ZSgp
KQorICAgICAgICAgICAgICAgICAgICBhcmdSZWcgPSB3YXNtQ0MuanNyQXJnc1ttYXJzaGFsbGVk
R1BSc107CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFdl
J3ZlIGFscmVhZHkgc3BpbGxlZCBhbGwgYXJndW1lbnRzLCB0aGVzZSByZWdpc3RlcnMgYXJlIGF2
YWlsYWJsZSBhcyBzY3JhdGNoLgotICAgICAgICAgICAgICAgICAgICBncHJSZWcgPSBHUFJJbmZv
Ojphcmd1bWVudEdQUjA7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoSklUOjpBZGRy
ZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBmck9mZnNldCksIGdwclJlZyk7CisgICAg
ICAgICAgICAgICAgICAgIGFyZ1JlZyA9IGpzQXJnMTA7CisgICAgICAgICAgICAgICAgICAgIGpp
dC5sb2FkVmFsdWUoSklUOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBmck9m
ZnNldCksIGFyZ1JlZyk7CiAgICAgICAgICAgICAgICAgICAgIGZyT2Zmc2V0ICs9IHNpemVvZihS
ZWdpc3Rlcik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICsrbWFyc2hhbGxl
ZEdQUnM7CiAgICAgICAgICAgICAgICAgaWYgKGFyZ1R5cGUuaXNJMzIoKSkgewotICAgICAgICAg
ICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKGdwclJlZywgZ3ByUmVnKTsgLy8gQ2xl
YXIgbm9uLWludDMyIGFuZCBub24tdGFnIGJpdHMuCi0gICAgICAgICAgICAgICAgICAgIGppdC5i
b3hJbnQzMihncHJSZWcsIEpTVmFsdWVSZWdzKGdwclJlZyksIERvTm90SGF2ZVRhZ1JlZ2lzdGVy
cyk7CisgICAgICAgICAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoYXJnUmVnLnBh
eWxvYWRHUFIoKSwgYXJnUmVnLnBheWxvYWRHUFIoKSk7IC8vIENsZWFyIG5vbi1pbnQzMiBhbmQg
bm9uLXRhZyBiaXRzLgorICAgICAgICAgICAgICAgICAgICBqaXQuYm94SW50MzIoYXJnUmVnLnBh
eWxvYWRHUFIoKSwgYXJnUmVnLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwogICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICBqaXQuc3RvcmU2NChncHJSZWcsIGNhbGxlZUZyYW1lLndp
dGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsKKyAgICAgICAgICAgICAgICBqaXQuc3RvcmVW
YWx1ZShhcmdSZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsK
ICAgICAgICAgICAgICAgICBjYWxsZWVGcmFtZU9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOwog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMTQ1LDYgKzE1NCw3IEBA
IEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5n
RmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgfQogICAgIAogICAgIHsKKyNpZiBVU0UoSlNW
QUxVRTY0KQogICAgICAgICAvLyBJbnRlZ2VyIHJlZ2lzdGVycyBoYXZlIGFscmVhZHkgYmVlbiBz
cGlsbGVkLCB0aGVzZSBhcmUgbm93IGF2YWlsYWJsZS4KICAgICAgICAgR1BSUmVnIGRvdWJsZUVu
Y29kZU9mZnNldEdQUlJlZyA9IEdQUkluZm86OmFyZ3VtZW50R1BSMDsKICAgICAgICAgR1BSUmVn
IHNjcmF0Y2ggPSBHUFJJbmZvOjphcmd1bWVudEdQUjE7CkBAIC0xNjAsNiArMTcwLDcgQEAgRXhw
ZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWls
dXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgICAgICBoYXNNYXRlcmlhbGl6ZWREb3Vi
bGVFbmNvZGVPZmZzZXQgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9OworI2VuZGlm
CiAKICAgICAgICAgdW5zaWduZWQgbWFyc2hhbGxlZEdQUnMgPSAwOwogICAgICAgICB1bnNpZ25l
ZCBtYXJzaGFsbGVkRlBScyA9IDA7CkBAIC0xNjgsMTAgKzE3OSwxNCBAQCBFeHBlY3RlZDxNYWNy
b0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21U
b0pTKFZNJiB2bQogCiAgICAgICAgIGF1dG8gbWFyc2hhbGxGUFIgPSBbJl0gKEZQUlJlZyBmcHJS
ZWcpIHsKICAgICAgICAgICAgIGppdC5wdXJpZnlOYU4oZnByUmVnKTsKKyNpZiBVU0UoSlNWQUxV
RTY0KQogICAgICAgICAgICAgaml0Lm1vdmVEb3VibGVUbzY0KGZwclJlZywgc2NyYXRjaCk7CiAg
ICAgICAgICAgICBtYXRlcmlhbGl6ZURvdWJsZUVuY29kZU9mZnNldChkb3VibGVFbmNvZGVPZmZz
ZXRHUFJSZWcpOwogICAgICAgICAgICAgaml0LmFkZDY0KGRvdWJsZUVuY29kZU9mZnNldEdQUlJl
Zywgc2NyYXRjaCk7CiAgICAgICAgICAgICBqaXQuc3RvcmU2NChzY3JhdGNoLCBjYWxsZWVGcmFt
ZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSk7CisjZWxzZQorICAgICAgICAgICAgaml0
LnN0b3JlRG91YmxlKGZwclJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9m
ZnNldCkpOworI2VuZGlmCiAgICAgICAgICAgICBjYWxsZWVGcmFtZU9mZnNldCArPSBzaXplb2Yo
UmVnaXN0ZXIpOwogICAgICAgICAgICAgKyttYXJzaGFsbGVkRlBSczsKICAgICAgICAgfTsKQEAg
LTE5MSw3ICsyMDYsNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5
UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgY2Fz
ZSBUeXBlS2luZDo6STMyOgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OiB7CiAgICAg
ICAgICAgICAgICAgLy8gU2tpcHBlZDogaGFuZGxlZCBhYm92ZS4KLSAgICAgICAgICAgICAgICBp
ZiAobWFyc2hhbGxlZEdQUnMgPj0gd2FzbUNDLmdwckFyZ3Muc2l6ZSgpKQorICAgICAgICAgICAg
ICAgIGlmIChtYXJzaGFsbGVkR1BScyA+PSB3YXNtQ0MuanNyQXJncy5zaXplKCkpCiAgICAgICAg
ICAgICAgICAgICAgIGZyT2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CiAgICAgICAgICAgICAg
ICAgKyttYXJzaGFsbGVkR1BSczsKICAgICAgICAgICAgICAgICBjYWxsZWVGcmFtZU9mZnNldCAr
PSBzaXplb2YoUmVnaXN0ZXIpOwpAQCAtMjAwLDcgKzIxNSw3IEBAIEV4cGVjdGVkPE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMo
Vk0mIHZtCiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6IHsKICAgICAgICAgICAgICAg
ICBGUFJSZWcgZnByUmVnOwogICAgICAgICAgICAgICAgIGlmIChtYXJzaGFsbGVkRlBScyA8IHdh
c21DQy5mcHJBcmdzLnNpemUoKSkKLSAgICAgICAgICAgICAgICAgICAgZnByUmVnID0gd2FzbUND
LmZwckFyZ3NbbWFyc2hhbGxlZEZQUnNdLmZwcigpOworICAgICAgICAgICAgICAgICAgICBmcHJS
ZWcgPSB3YXNtQ0MuZnByQXJnc1ttYXJzaGFsbGVkRlBSc107CiAgICAgICAgICAgICAgICAgZWxz
ZSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgc3BpbGxlZCBhbGwgYXJn
dW1lbnRzLCB0aGVzZSByZWdpc3RlcnMgYXJlIGF2YWlsYWJsZSBhcyBzY3JhdGNoLgogICAgICAg
ICAgICAgICAgICAgICBmcHJSZWcgPSBGUFJJbmZvOjphcmd1bWVudEZQUjA7CkBAIC0yMTQsNyAr
MjI5LDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4s
IEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIGNhc2UgVHlwZUtp
bmQ6OkY2NDogewogICAgICAgICAgICAgICAgIEZQUlJlZyBmcHJSZWc7CiAgICAgICAgICAgICAg
ICAgaWYgKG1hcnNoYWxsZWRGUFJzIDwgd2FzbUNDLmZwckFyZ3Muc2l6ZSgpKQotICAgICAgICAg
ICAgICAgICAgICBmcHJSZWcgPSB3YXNtQ0MuZnByQXJnc1ttYXJzaGFsbGVkRlBSc10uZnByKCk7
CisgICAgICAgICAgICAgICAgICAgIGZwclJlZyA9IHdhc21DQy5mcHJBcmdzW21hcnNoYWxsZWRG
UFJzXTsKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgLy8gV2Un
dmUgYWxyZWFkeSBzcGlsbGVkIGFsbCBhcmd1bWVudHMsIHRoZXNlIHJlZ2lzdGVycyBhcmUgYXZh
aWxhYmxlIGFzIHNjcmF0Y2guCiAgICAgICAgICAgICAgICAgICAgIGZwclJlZyA9IEZQUkluZm86
OmFyZ3VtZW50RlBSMDsKQEAgLTIzNiwxMiArMjUxLDE1IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1i
bGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0m
IHZtCiAgICAgICAgIHVuc2lnbmVkIGNhbGxlZUZyYW1lT2Zmc2V0ID0gQ2FsbEZyYW1lU2xvdDo6
Zmlyc3RBcmd1bWVudCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSk7CiAgICAg
ICAgIGZvciAodW5zaWduZWQgYXJnTnVtID0gMDsgYXJnTnVtIDwgYXJnQ291bnQ7ICsrYXJnTnVt
KSB7CiAgICAgICAgICAgICBpZiAoc2lnbmF0dXJlLmFyZ3VtZW50VHlwZShhcmdOdW0pLmlzSTY0
KCkpIHsKLSAgICAgICAgICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2UoR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgICAgICAgICBqaXQubG9hZDY0KGNhbGxlZUZyYW1l
LndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwot
ICAgICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252
ZXJ0VG9CaWdJbnQpPihHUFJJbmZvOjphcmd1bWVudEdQUjAsIEdQUkluZm86OmFyZ3VtZW50R1BS
MSk7CisgICAgICAgICAgICAgICAgdXNpbmcgT3BlcmF0aW9uID0gZGVjbHR5cGUob3BlcmF0aW9u
Q29udmVydFRvQmlnSW50KTsKKyAgICAgICAgICAgICAgICBjb25zdGV4cHIgR1BSUmVnIHdhc21J
bnN0YW5jZUdQUiA9IHByZWZlcnJlZEFyZ3VtZW50R1BSPE9wZXJhdGlvbiwgMT4oKTsKKyAgICAg
ICAgICAgICAgICBjb25zdGV4cHIgSlNWYWx1ZVJlZ3MgdmFsdWVKU1IgPSBwcmVmZXJyZWRBcmd1
bWVudEpTUjxPcGVyYXRpb24sIDI+KCk7CisgICAgICAgICAgICAgICAgaml0LmxvYWRXYXNtQ29u
dGV4dEluc3RhbmNlKHdhc21JbnN0YW5jZUdQUik7CisgICAgICAgICAgICAgICAgaml0LmxvYWRW
YWx1ZShjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSwgdmFsdWVKU1Ip
OworICAgICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxPcGVyYXRpb24+KHdhc21JbnN0
YW5jZUdQUiwgdmFsdWVKU1IpOwogICAgICAgICAgICAgICAgIGF1dG8gY2FsbCA9IGppdC5jYWxs
KE9wZXJhdGlvblB0clRhZyk7CiAgICAgICAgICAgICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVu
ZChqaXQuZW1pdEp1bXBJZkV4Y2VwdGlvbih2bSkpOwotICAgICAgICAgICAgICAgIGppdC5zdG9y
ZTY0KEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxl
ZUZyYW1lT2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoSlNSSW5mbzo6
cmV0dXJuVmFsdWVKU1IsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQp
KTsKICAgICAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soWz1dIChMaW5rQnVmZmVyJiBsaW5r
QnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubGluayhjYWxsLCBGdW5j
dGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCkpOwogICAg
ICAgICAgICAgICAgIH0pOwpAQCAtMjUzLDE2ICsyNzEsMjIgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhW
TSYgdm0KICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2UoR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6YXJn
dW1lbnRHUFIwLCBJbnN0YW5jZTo6b2Zmc2V0T2ZPd25lcigpKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6YXJn
dW1lbnRHUFIwLCBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6Om9mZnNldE9mTW9kdWxlKCkpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOwotICAgIGppdC5lbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIoR1BS
SW5mbzo6YXJndW1lbnRHUFIwLCBDYWxsRnJhbWVTbG90OjpjYWxsZWUpOwotCi0gICAgR1BSUmVn
IGltcG9ydEpTQ2VsbEdQUlJlZyA9IEdQUkluZm86OnJlZ1QwOyAvLyBDYWxsZWUgbmVlZHMgdG8g
YmUgaW4gcmVnVDAgZm9yIHNsb3cgcGF0aCBiZWxvdy4KKyAgICBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MgY2FsbGVlU2xvdCB7IEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWVTbG90
OjpjYWxsZWUgICogc2l6ZW9mKFJlZ2lzdGVyKSB9OworICAgIGppdC5zdG9yZVB0cihHUFJJbmZv
Ojphcmd1bWVudEdQUjAsIGNhbGxlZVNsb3QpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
aml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyks
IGNhbGxlZVNsb3Qud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgogCisgICAgLy8ganNB
cmcxMCBtaWdodCBvdmVybGFwIHdpdGggcmVnVDAsIHNvIHN0b3JlICd0aGlzJyBhcmd1bWVudCBm
aXJzdAorICAgIGppdC5zdG9yZVZhbHVlKGpzVW5kZWZpbmVkKCksIGNhbGxlZUZyYW1lLndpdGhP
ZmZzZXQoQ2FsbEZyYW1lU2xvdDo6dGhpc0FyZ3VtZW50ICogc3RhdGljX2Nhc3Q8aW50PihzaXpl
b2YoUmVnaXN0ZXIpKSksIGpzQXJnMTApOworICAgIGNvbnN0ZXhwciBHUFJSZWcgaW1wb3J0SlND
ZWxsR1BSUmVnID0gR1BSSW5mbzo6cmVnVDA7IC8vIENhbGxlZSBuZWVkcyB0byBiZSBpbiByZWdU
MCBmb3Igc2xvdyBwYXRoIGJlbG93LgogICAgIEFTU0VSVCghd2FzbUNDLmNhbGxlZVNhdmVSZWdp
c3RlcnMuZ2V0KGltcG9ydEpTQ2VsbEdQUlJlZykpOwogICAgIG1hdGVyaWFsaXplSW1wb3J0SlND
ZWxsKGppdCwgaW1wb3J0SW5kZXgsIGltcG9ydEpTQ2VsbEdQUlJlZyk7Ci0KLSAgICBqaXQuc3Rv
cmU2NChpbXBvcnRKU0NlbGxHUFJSZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoQ2FsbEZyYW1l
U2xvdDo6Y2FsbGVlICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOworICAg
IGppdC5zdG9yZVB0cihpbXBvcnRKU0NlbGxHUFJSZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQo
Q2FsbEZyYW1lU2xvdDo6Y2FsbGVlICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIp
KSkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQo
Q2FsbEZyYW1lU2xvdDo6Y2FsbGVlICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIp
KSArIFRhZ09mZnNldCkpOworI2VuZGlmCiAgICAgaml0LnN0b3JlMzIoSklUOjpUcnVzdGVkSW1t
MzIobnVtYmVyT2ZQYXJhbWV0ZXJzKSwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVT
bG90Ojphcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9m
KFJlZ2lzdGVyKSkgKyBQYXlsb2FkT2Zmc2V0KSk7Ci0gICAgaml0LnN0b3JlNjQoSklUOjpUcnVz
dGVkSW1tNjQoSlNWYWx1ZTo6VmFsdWVVbmRlZmluZWQpLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0
KENhbGxGcmFtZVNsb3Q6OnRoaXNBcmd1bWVudCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJl
Z2lzdGVyKSkpKTsKIAogICAgIC8vIEZJWE1FIFRhaWwgY2FsbCBpZiB0aGUgd2FzbSByZXR1cm4g
dHlwZSBpcyB2b2lkIGFuZCBubyByZWdpc3RlcnMgd2VyZSBzcGlsbGVkLiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1NDg4CiAKQEAgLTI4NywxMSArMzExLDExIEBA
IEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5n
RmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDogewog
ICAgICAgICAgICAgLy8gRklYTUU6IE9wdGltaXplIEk2NCBleHRyYWN0aW9uIGZyb20gQmlnSW50
LgogICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMDA1MwotICAgICAgICAgICAgR1BSUmVnIGRlc3QgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1sw
XS5ncHIoKTsKLSAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRp
b25Db252ZXJ0VG9JNjQpPihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgICAgICBK
U1ZhbHVlUmVncyBkZXN0ID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uanNyKCk7CisgICAgICAg
ICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvSTY0KT4o
SlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpOwogICAgICAgICAgICAgYXV0byBjYWxsID0gaml0LmNh
bGwoT3BlcmF0aW9uUHRyVGFnKTsKICAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQo
aml0LmVtaXRKdW1wSWZFeGNlcHRpb24odm0pKTsKLSAgICAgICAgICAgIGppdC5tb3ZlKEdQUklu
Zm86OnJldHVyblZhbHVlR1BSLCBkZXN0KTsKKyAgICAgICAgICAgIGppdC5tb3ZlVmFsdWVSZWdz
KEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBkZXN0KTsKIAogICAgICAgICAgICAgaml0LmFkZExp
bmtUYXNrKFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewogICAgICAgICAgICAgICAgIGxp
bmtCdWZmZXIubGluayhjYWxsLCBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlv
bkNvbnZlcnRUb0k2NCkpOwpAQCAtMzAxLDE4ICszMjUsMjEgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhW
TSYgdm0KICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOiB7CiAgICAgICAgICAgICBDQ2FsbEhl
bHBlcnM6Okp1bXBMaXN0IGRvbmU7CiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0
IHNsb3dQYXRoOwotICAgICAgICAgICAgR1BSUmVnIGRlc3QgPSB3YXNtQ2FsbEluZm8ucmVzdWx0
c1swXS5ncHIoKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIGRlc3RKU1IgPSB3YXNtQ2FsbElu
Zm8ucmVzdWx0c1swXS5qc3IoKTsKIAotICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5i
cmFuY2hJZk5vdE51bWJlcihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgRG9Ob3RIYXZlVGFnUmVn
aXN0ZXJzKSk7Ci0gICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50
MzIoSlNWYWx1ZVJlZ3MoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpLCBEb05vdEhhdmVUYWdSZWdp
c3RlcnMpKTsKLSAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIsIGRlc3QpOworICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFu
Y2hJZk5vdE51bWJlcihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgaml0LnNjcmF0Y2hSZWdpc3Rl
cigpLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpKTsKKyAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVu
ZChqaXQuYnJhbmNoSWZOb3RJbnQzMihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgRG9Ob3RIYXZl
VGFnUmVnaXN0ZXJzKSk7CisgICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKEpTUklu
Zm86OnJldHVyblZhbHVlSlNSLnBheWxvYWRHUFIoKSwgZGVzdEpTUi5wYXlsb2FkR1BSKCkpOwog
ICAgICAgICAgICAgZG9uZS5hcHBlbmQoaml0Lmp1bXAoKSk7CiAKICAgICAgICAgICAgIHNsb3dQ
YXRoLmxpbmsoJmppdCk7Ci0gICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUo
b3BlcmF0aW9uQ29udmVydFRvSTMyKT4oR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAg
ICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0kzMik+
KEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsKICAgICAgICAgICAgIGF1dG8gY2FsbCA9IGppdC5j
YWxsKE9wZXJhdGlvblB0clRhZyk7CiAgICAgICAgICAgICBleGNlcHRpb25DaGVja3MuYXBwZW5k
KGppdC5lbWl0SnVtcElmRXhjZXB0aW9uKHZtKSk7Ci0gICAgICAgICAgICBqaXQubW92ZShHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CisgICAgICAgICAgICBqaXQubW92ZShKU1JJbmZv
OjpyZXR1cm5WYWx1ZUpTUi5wYXlsb2FkR1BSKCksIGRlc3RKU1IucGF5bG9hZEdQUigpKTsKKyNp
ZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoMCksIGRlc3RKU1IudGFnR1BSKCkpOworI2VuZGlmCiAKICAgICAgICAgICAg
IGppdC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKICAgICAgICAg
ICAgICAgICBsaW5rQnVmZmVyLmxpbmsoY2FsbCwgRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFn
PihvcGVyYXRpb25Db252ZXJ0VG9JMzIpKTsKQEAgLTMyMiwyMyArMzQ5LDI2IEBAIEV4cGVjdGVk
PE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4g
d2FzbVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpGMzI6IHsKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3Qg
ZG9uZTsKICAgICAgICAgICAgIEZQUlJlZyBkZXN0ID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0u
ZnByKCk7CiAKLSAgICAgICAgICAgIGF1dG8gbm90QU51bWJlciA9IGppdC5icmFuY2hJZk5vdE51
bWJlcihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKLSAg
ICAgICAgICAgIGF1dG8gaXNEb3VibGUgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihKU1ZhbHVlUmVn
cyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAg
ICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CisgICAgICAgICAgICBhdXRvIG5v
dEFOdW1iZXIgPSBqaXQuYnJhbmNoSWZOb3ROdW1iZXIoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1Is
IGppdC5zY3JhdGNoUmVnaXN0ZXIoKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAg
ICAgIGF1dG8gaXNEb3VibGUgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihKU1JJbmZvOjpyZXR1cm5W
YWx1ZUpTUiwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKICAgICAgICAgICAgIC8vIFdlJ3JlIGFu
IGludDMyCi0gICAgICAgICAgICBqaXQuc2lnbkV4dGVuZDMyVG9QdHIoR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIsIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKLSAgICAgICAgICAgIGppdC5jb252
ZXJ0SW50NjRUb0Zsb2F0KEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBkZXN0KTsKKyAgICAgICAg
ICAgIGppdC5jb252ZXJ0SW50MzJUb0Zsb2F0KEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBkZXN0
KTsKICAgICAgICAgICAgIGRvbmUuYXBwZW5kKGppdC5qdW1wKCkpOwogCiAgICAgICAgICAgICBp
c0RvdWJsZS5saW5rKCZqaXQpOworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgICAgICBqaXQu
dW5ib3hEb3VibGVXaXRob3V0QXNzZXJ0aW9ucyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BS
SW5mbzo6cmV0dXJuVmFsdWVHUFIyLCBkZXN0LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworI2Vs
c2UKKyAgICAgICAgICAgIGppdC51bmJveERvdWJsZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwg
ZGVzdCk7CisjZW5kaWYKICAgICAgICAgICAgIGppdC5jb252ZXJ0RG91YmxlVG9GbG9hdChkZXN0
LCBkZXN0KTsKICAgICAgICAgICAgIGRvbmUuYXBwZW5kKGppdC5qdW1wKCkpOwogCiAgICAgICAg
ICAgICBub3RBTnVtYmVyLmxpbmsoJmppdCk7Ci0gICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVu
dHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvRjMyKT4oR1BSSW5mbzo6cmV0dXJuVmFsdWVH
UFIpOworICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNv
bnZlcnRUb0YzMik+KEpTUkluZm86OnJldHVyblZhbHVlSlNSKTsKICAgICAgICAgICAgIGF1dG8g
Y2FsbCA9IGppdC5jYWxsKE9wZXJhdGlvblB0clRhZyk7CiAgICAgICAgICAgICBleGNlcHRpb25D
aGVja3MuYXBwZW5kKGppdC5lbWl0SnVtcElmRXhjZXB0aW9uKHZtKSk7CiAgICAgICAgICAgICBq
aXQubW92ZShGUFJJbmZvOjpyZXR1cm5WYWx1ZUZQUiAsIGRlc3QpOwpAQCAtMzUxLDIyICszODEs
MjUgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJp
bmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2NDogewotICAgICAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpKdW1wTGlzdCBkb25lOwogICAgICAgICAgICAgRlBSUmVnIGRlc3QgPSB3YXNtQ2FsbElu
Zm8ucmVzdWx0c1swXS5mcHIoKTsKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3Qg
ZG9uZTsKIAotICAgICAgICAgICAgYXV0byBub3RBTnVtYmVyID0gaml0LmJyYW5jaElmTm90TnVt
YmVyKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwotICAg
ICAgICAgICAgYXV0byBpc0RvdWJsZSA9IGppdC5icmFuY2hJZk5vdEludDMyKEpTVmFsdWVSZWdz
KEdQUkluZm86OnJldHVyblZhbHVlR1BSKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAg
ICAgICAgIGF1dG8gbm90QU51bWJlciA9IGppdC5icmFuY2hJZk5vdE51bWJlcihKU1JJbmZvOjpy
ZXR1cm5WYWx1ZUpTUiwgaml0LnNjcmF0Y2hSZWdpc3RlcigpLCBEb05vdEhhdmVUYWdSZWdpc3Rl
cnMpOworICAgICAgICAgICAgYXV0byBpc0RvdWJsZSA9IGppdC5icmFuY2hJZk5vdEludDMyKEpT
VmFsdWVSZWdzKEpTUkluZm86OnJldHVyblZhbHVlSlNSKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJz
KTsKICAgICAgICAgICAgIC8vIFdlJ3JlIGFuIGludDMyCi0gICAgICAgICAgICBqaXQuc2lnbkV4
dGVuZDMyVG9QdHIoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJldHVyblZhbHVl
R1BSKTsKLSAgICAgICAgICAgIGppdC5jb252ZXJ0SW50NjRUb0RvdWJsZShHUFJJbmZvOjpyZXR1
cm5WYWx1ZUdQUiwgZGVzdCk7CisgICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9Eb3VibGUo
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOwogICAgICAgICAgICAgZG9uZS5hcHBlbmQo
aml0Lmp1bXAoKSk7CiAKICAgICAgICAgICAgIGlzRG91YmxlLmxpbmsoJmppdCk7CisjaWYgVVNF
KEpTVkFMVUU2NCkKICAgICAgICAgICAgIGppdC51bmJveERvdWJsZVdpdGhvdXRBc3NlcnRpb25z
KEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUjIsIGRlc3Qs
IERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisjZWxzZQorICAgICAgICAgICAgaml0LnVuYm94RG91
YmxlKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBkZXN0KTsKKyNlbmRpZgogICAgICAgICAgICAg
ZG9uZS5hcHBlbmQoaml0Lmp1bXAoKSk7CiAKICAgICAgICAgICAgIG5vdEFOdW1iZXIubGluaygm
aml0KTsKLSAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25D
b252ZXJ0VG9GNjQpPihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgICAgICBqaXQu
c2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvRjY0KT4oSlNSSW5mbzo6
cmV0dXJuVmFsdWVKU1IpOwogICAgICAgICAgICAgYXV0byBjYWxsID0gaml0LmNhbGwoT3BlcmF0
aW9uUHRyVGFnKTsKICAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRK
dW1wSWZFeGNlcHRpb24odm0pKTsKICAgICAgICAgICAgIGppdC5tb3ZlKEZQUkluZm86OnJldHVy
blZhbHVlRlBSLCBkZXN0KTsKQEAgLTM4MCw3ICs0MTMsNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2Vt
YmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZN
JiB2bQogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6ICB7CiAgICAgICAgICAgICBpZiAoV2Fz
bTo6aXNGdW5jcmVmKHJldHVyblR5cGUpIHx8IFdhc206OmlzRXh0ZXJucmVmKHJldHVyblR5cGUp
KQotICAgICAgICAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCB3YXNt
Q2FsbEluZm8ucmVzdWx0c1swXS5ncHIoKSk7CisgICAgICAgICAgICAgICAgaml0Lm1vdmVWYWx1
ZVJlZ3MoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmpz
cigpKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAvLyBGb3IgdGhlIEphdmFT
Y3JpcHQgZW1iZWRkaW5nLCBpbXBvcnRzIHdpdGggdGhlc2UgdHlwZXMgaW4gdGhlaXIgdHlwZSBk
ZWZpbml0aW9uIHJldHVybiBhcmUgYSBXZWJBc3NlbWJseS5Nb2R1bGUgdmFsaWRhdGlvbiBlcnJv
ci4KICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzk0
LDEyICs0MjcsMjkgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0
clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIGppdC5s
b2FkV2FzbUNvbnRleHRJbnN0YW5jZSh3YXNtQ29udGV4dEluc3RhbmNlR1BSKTsKICAgICAgICAg
fQogCi0gICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25JdGVyYXRl
UmVzdWx0cyk+KHdhc21Db250ZXh0SW5zdGFuY2VHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bVB0cigmdHlwZURlZmluaXRpb24pLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgQ0NhbGxIZWxw
ZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgQ0NhbGxIZWxwZXJzOjpmcmFtZVBvaW50ZXJSZWdp
c3Rlcik7CisgICAgICAgIGNvbnN0ZXhwciBHUFJSZWcgc2F2ZWRSZXN1bHRzR1BSID0gcHJlZmVy
cmVkQXJndW1lbnRHUFI8ZGVjbHR5cGUob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMpLCA0PigpOwor
ICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZl
ZFJlc3VsdHNHUFIpOworICAgICAgICBpZiBjb25zdGV4cHIgKG1heEZyYW1lRXh0ZW50Rm9yU2xv
d1BhdGhDYWxsKQorICAgICAgICAgICAgaml0LnN1YlB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW0zMihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIENDYWxsSGVscGVyczo6c3RhY2tQ
b2ludGVyUmVnaXN0ZXIpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KG5vT3ZlcmxhcChzYXZlZFJl
c3VsdHNHUFIsIEpTUkluZm86OnJldHVyblZhbHVlSlNSKSk7CisgICAgICAgIEFTU0VSVCh3YXNt
Q29udGV4dEluc3RhbmNlR1BSICE9IHNhdmVkUmVzdWx0c0dQUik7CisgICAgICAgIGppdC5zZXR1
cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25JdGVyYXRlUmVzdWx0cyk+KHdhc21Db250ZXh0
SW5zdGFuY2VHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigmdHlwZURlZmluaXRpb24p
LCBKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgc2F2ZWRSZXN1bHRzR1BSLCBDQ2FsbEhlbHBlcnM6
OmZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKICAgICAgICAgaml0LmNhbGxPcGVyYXRpb24oRnVuY3Rp
b25QdHI8T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25JdGVyYXRlUmVzdWx0cykpOworICAgICAg
ICBpZiBjb25zdGV4cHIgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICAg
ICAgaml0LmFkZFB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZv
clNsb3dQYXRoQ2FsbCksIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworCiAg
ICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRKdW1wSWZFeGNlcHRpb24odm0p
KTsKIAotICAgICAgICBmb3IgKFJlZ2lzdGVyQXRPZmZzZXQgbG9jYXRpb24gOiBzYXZlZFJlc3Vs
dFJlZ2lzdGVycykKLSAgICAgICAgICAgIGppdC5sb2FkNjRUb1JlZyhDQ2FsbEhlbHBlcnM6OkFk
ZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgbG9jYXRpb24ub2Zmc2V0
KCkpLCBsb2NhdGlvbi5yZWcoKSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBz
aWduYXR1cmUucmV0dXJuQ291bnQoKTsgKytpKSB7CisgICAgICAgICAgICBWYWx1ZUxvY2F0aW9u
IGxvYyA9IHdhc21DYWxsSW5mby5yZXN1bHRzW2ldOworICAgICAgICAgICAgaWYgKGxvYy5pc0dQ
UigpKSB7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICBBU1NFUlQoc2F2
ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkg
KyA0ID09IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnRhZ0dQUigpKS0+b2Zm
c2V0KCkpOworI2VuZGlmCisgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1
bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkucGF5bG9hZEdQUigpKS0+b2Zmc2V0KCkpLCBsb2Mu
anNyKCkpOworICAgICAgICAgICAgfSBlbHNlIGlmIChsb2MuaXNGUFIoKSkKKyAgICAgICAgICAg
ICAgICBqaXQubG9hZERvdWJsZShDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpz
dGFja1BvaW50ZXJSZWdpc3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuZnByKCkp
LT5vZmZzZXQoKSksIGxvYy5mcHIoKSk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBqaXQuZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKaW5kZXggMjhjNTNlMTk4N2NkLi41NTIxNTY3
OWQ0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5RnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5RnVuY3Rpb24uY3BwCkBAIC0xNTcsNiArMTU3LDkgQEAgcHRyZGlmZl90IFdlYkFzc2Vt
Ymx5RnVuY3Rpb246OnByZXZpb3VzSW5zdGFuY2VPZmZzZXQoKSBjb25zdAogewogICAgIHB0cmRp
ZmZfdCByZXN1bHQgPSBjYWxsZWVTYXZlcygpLm51bWJlck9mU2V0UmVnaXN0ZXJzKCkgKiBzaXpl
b2YoQ1BVUmVnaXN0ZXIpOwogICAgIHJlc3VsdCA9IC1yZXN1bHQgLSBzaXplb2YoQ1BVUmVnaXN0
ZXIpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgQVNTRVJUKCFjYWxsZWVTYXZlcygpLm51
bWJlck9mU2V0RlBScygpKTsgLy8gQmVjYXVzZSBGUFJzIGFyZSB3aWRlciB0aGFuIHNpemVvZihD
UFVSZWdpc3RlcikKKyNlbmRpZgogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgcHRyZGlmZl90IG1p
bk9mZnNldCA9IDE7CiAgICAgZm9yIChjb25zdCBSZWdpc3RlckF0T2Zmc2V0JiByZWdBdE9mZnNl
dCA6IHVzZWRDYWxsZWVTYXZlUmVnaXN0ZXJzKCkpIHsKQEAgLTE4Niw4ICsxODksNiBAQCBNYWNy
b0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anND
YWxsRW50cnlwb2ludFNsb3coKQogICAgIGNvbnN0IGF1dG8mIHBpbm5lZFJlZ3MgPSBXYXNtOjpQ
aW5uZWRSZWdpc3RlckluZm86OmdldCgpOwogICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IHJlZ2lz
dGVyc1RvU3BpbGwgPSB1c2VkQ2FsbGVlU2F2ZVJlZ2lzdGVycygpOwogCi0gICAgYXV0byYgbW9k
dWxlSW5mb3JtYXRpb24gPSBpbnN0YW5jZSgpLT5pbnN0YW5jZSgpLm1vZHVsZSgpLm1vZHVsZUlu
Zm9ybWF0aW9uKCk7Ci0KICAgICBjb25zdCBXYXNtOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb24mIHdh
c21DQyA9IFdhc206Ondhc21DYWxsaW5nQ29udmVudGlvbigpOwogICAgIFdhc206OkNhbGxJbmZv
cm1hdGlvbiB3YXNtQ2FsbEluZm8gPSB3YXNtQ0MuY2FsbEluZm9ybWF0aW9uRm9yKHR5cGVEZWZp
bml0aW9uKTsKICAgICBXYXNtOjpDYWxsSW5mb3JtYXRpb24ganNDYWxsSW5mbyA9IFdhc206Ompz
Q2FsbGluZ0NvbnZlbnRpb24oKS5jYWxsSW5mb3JtYXRpb25Gb3IodHlwZURlZmluaXRpb24sIFdh
c206OkNhbGxSb2xlOjpDYWxsZWUpOwpAQCAtMjE2LDkgKzIxNywxNCBAQCBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlw
b2ludFNsb3coKQogICAgICAgICBqaXQuc3RvcmVQdHIocmVnLCBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIG9mZnNldCkpOwogICAgIH0KIAotICAgIEdQ
UlJlZyBzY3JhdGNoR1BSID0gV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVT
Y3JhdGNoR1BSc1sxXTsKLSAgICBib29sIHN0YWNrTGltaXRHUFJJc0Nsb2JiZXJlZCA9IGZhbHNl
OworICAgIEpTVmFsdWVSZWdzIHNjcmF0Y2hKU1IgeworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisg
ICAgICAgIFdhc206Ondhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNb
Ml0sCisjZW5kaWYKKyAgICAgICAgV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9n
dWVTY3JhdGNoR1BSc1sxXQorICAgIH07CiAgICAgR1BSUmVnIHN0YWNrTGltaXRHUFIgPSBXYXNt
Ojp3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzBdOworICAgIGJv
b2wgc3RhY2tMaW1pdEdQUklzQ2xvYmJlcmVkID0gZmFsc2U7CiAgICAgaml0LmxvYWRQdHIodm0u
YWRkcmVzc09mU29mdFN0YWNrTGltaXQoKSwgc3RhY2tMaW1pdEdQUik7CiAKICAgICBDQ2FsbEhl
bHBlcnM6Okp1bXBMaXN0IHNsb3dQYXRoOwpAQCAtMjM3LDcgKzI0Myw3IEBAIE1hY3JvQXNzZW1i
bGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRy
eXBvaW50U2xvdygpCiAgICAgICAgIGppdC5lbWl0TWF0ZXJpYWxpemVUYWdDaGVja1JlZ2lzdGVy
cygpOwogCiAgICAgLy8gTG9vcCBiYWNrd2FyZHMgc28gd2UgY2FuIHVzZSB0aGUgZmlyc3QgZmxv
YXRpbmcgcG9pbnQgYXJndW1lbnQgYXMgYSBzY3JhdGNoLgotICAgIEZQUlJlZyBzY3JhdGNoRlBS
ID0gV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9uKCkuZnByQXJnc1swXS5mcHIoKTsKKyAgICBG
UFJSZWcgc2NyYXRjaEZQUiA9IFdhc206Ondhc21DYWxsaW5nQ29udmVudGlvbigpLmZwckFyZ3Nb
MF07CiAgICAgZm9yICh1bnNpZ25lZCBpID0gc2lnbmF0dXJlLmFyZ3VtZW50Q291bnQoKTsgaS0t
OykgewogICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgY2FsbGVlRnJhbWUgPSBDQ2FsbEhl
bHBlcnM6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCAwKTsK
ICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGpzUGFyYW0oR1BSSW5mbzo6Y2FsbEZyYW1l
UmVnaXN0ZXIsIGpzQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21GUCgpKTsKQEAgLTI0Niwx
MiArMjUyLDIwIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3Nl
bWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgIGF1dG8gdHlwZSA9
IHNpZ25hdHVyZS5hcmd1bWVudFR5cGUoaSk7CiAgICAgICAgIHN3aXRjaCAodHlwZS5raW5kKSB7
CiAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkkzMjogewotICAgICAgICAgICAgaml0Lmxv
YWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChq
aXQuYnJhbmNoSWZOb3RJbnQzMihzY3JhdGNoR1BSKSk7Ci0gICAgICAgICAgICBpZiAoaXNTdGFj
aykKLSAgICAgICAgICAgICAgICBqaXQuc3RvcmUzMihzY3JhdGNoR1BSLCBjYWxsZWVGcmFtZS53
aXRoT2Zmc2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKLSAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKHNjcmF0
Y2hHUFIsIHdhc21DYWxsSW5mby5wYXJhbXNbaV0uZ3ByKCkpOworICAgICAgICAgICAgaml0Lmxv
YWRWYWx1ZShqc1BhcmFtLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVu
ZChqaXQuYnJhbmNoSWZOb3RJbnQzMihzY3JhdGNoSlNSKSk7CisgICAgICAgICAgICBpZiAoaXNT
dGFjaykgeworICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBhZGRyIHsgY2Fs
bGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgp
KSB9OworICAgICAgICAgICAgICAgIGppdC5zdG9yZTMyKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigp
LCBhZGRyLndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQp
CisgICAgICAgICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
MCksIGFkZHIud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgorICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKHNjcmF0Y2hKU1Iu
cGF5bG9hZEdQUigpLCB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmpzcigpLnBheWxvYWRHUFIoKSk7
CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW0zMigwKSwgd2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5qc3IoKS50YWdH
UFIoKSk7CisjZW5kaWYKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OlJlZjoKQEAgLTI2MCwyNyArMjc0LDI3
IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0
aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6
OkV4dGVybnJlZjogewogICAgICAgICAgICAgaWYgKCFXYXNtOjppc0V4dGVybnJlZih0eXBlKSkg
ewogICAgICAgICAgICAgICAgIC8vIEVuc3VyZSB3ZSBoYXZlIGEgV0FTTSBleHBvcnRlZCBmdW5j
dGlvbi4KLSAgICAgICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOwot
ICAgICAgICAgICAgICAgIGF1dG8gaXNOdWxsID0gaml0LmJyYW5jaElmTnVsbChzY3JhdGNoR1BS
KTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpzUGFyYW0sIHNjcmF0Y2hKU1IpOwor
ICAgICAgICAgICAgICAgIGF1dG8gaXNOdWxsID0gaml0LmJyYW5jaElmTnVsbChzY3JhdGNoSlNS
KTsKICAgICAgICAgICAgICAgICBpZiAoIXR5cGUuaXNOdWxsYWJsZSgpKQogICAgICAgICAgICAg
ICAgICAgICBzbG93UGF0aC5hcHBlbmQoaXNOdWxsKTsKLSAgICAgICAgICAgICAgICBzbG93UGF0
aC5hcHBlbmQoaml0LmJyYW5jaElmTm90Q2VsbChzY3JhdGNoR1BSKSk7CisgICAgICAgICAgICAg
ICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdENlbGwoc2NyYXRjaEpTUikpOwogCiAg
ICAgICAgICAgICAgICAgc3RhY2tMaW1pdEdQUklzQ2xvYmJlcmVkID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICBqaXQuZW1pdExvYWRTdHJ1Y3R1cmUodm0sIHNjcmF0Y2hHUFIsIHNjcmF0Y2hHUFIp
OwotICAgICAgICAgICAgICAgIGppdC5sb2FkQ29tcGFjdFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJl
c3Moc2NyYXRjaEdQUiwgU3RydWN0dXJlOjpjbGFzc0luZm9PZmZzZXQoKSksIHNjcmF0Y2hHUFIp
OworICAgICAgICAgICAgICAgIGppdC5lbWl0TG9hZFN0cnVjdHVyZSh2bSwgc2NyYXRjaEpTUi5w
YXlsb2FkR1BSKCksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAgICBq
aXQubG9hZENvbXBhY3RQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hKU1IucGF5bG9h
ZEdQUigpLCBTdHJ1Y3R1cmU6OmNsYXNzSW5mb09mZnNldCgpKSwgc2NyYXRjaEpTUi5wYXlsb2Fk
R1BSKCkpOwogCiAgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPFdl
YkFzc2VtYmx5RnVuY3Rpb24+Ojp2YWx1ZSwgIldlIGRvIG5vdCBjaGVjayBmb3Igc3VidHlwZXMg
YmVsb3ciKTsKICAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8V2Vi
QXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24+Ojp2YWx1ZSwgIldlIGRvIG5vdCBjaGVjayBmb3Igc3Vi
dHlwZXMgYmVsb3ciKTsKIAotICAgICAgICAgICAgICAgIGF1dG8gaXNXYXNtRnVuY3Rpb24gPSBq
aXQuYnJhbmNoUHRyKENDYWxsSGVscGVyczo6RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbVB0cihXZWJBc3NlbWJseUZ1bmN0aW9uOjppbmZvKCkpKTsKLSAgICAgICAg
ICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVx
dWFsLCBzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoV2ViQXNzZW1ibHlX
cmFwcGVyRnVuY3Rpb246OmluZm8oKSkpKTsKKyAgICAgICAgICAgICAgICBhdXRvIGlzV2FzbUZ1
bmN0aW9uID0gaml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6OkVxdWFsLCBzY3JhdGNoSlNSLnBh
eWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKFdlYkFzc2VtYmx5RnVuY3Rp
b246OmluZm8oKSkpOworICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNo
UHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb246OmluZm8o
KSkpKTsKIAogICAgICAgICAgICAgICAgIGlzV2FzbUZ1bmN0aW9uLmxpbmsoJmppdCk7CiAgICAg
ICAgICAgICAgICAgaWYgKFdhc206OmlzUmVmV2l0aFR5cGVJbmRleCh0eXBlKSkgewotICAgICAg
ICAgICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOwotICAgICAgICAg
ICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwg
V2ViQXNzZW1ibHlGdW5jdGlvbkJhc2U6Om9mZnNldE9mU2lnbmF0dXJlSW5kZXgoKSksIHNjcmF0
Y2hHUFIpOwotICAgICAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaFB0
cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW1QdHIodHlwZS5pbmRleCkpKTsKKyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRQdHIo
anNQYXJhbSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgICAgICAgICBq
aXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCks
IFdlYkFzc2VtYmx5RnVuY3Rpb25CYXNlOjpvZmZzZXRPZlNpZ25hdHVyZUluZGV4KCkpLCBzY3Jh
dGNoSlNSLnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVu
ZChqaXQuYnJhbmNoUHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hKU1IucGF5bG9h
ZEdQUigpLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIodHlwZS5pbmRleCkpKTsKICAgICAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBpZiAodHlwZS5pc051bGxhYmxlKCkpCkBA
IC0yODgsMTUgKzMwMiwxNSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4g
V2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICBpZiAoaXNTdGFjaykgewotICAgICAgICAgICAgICAgIGppdC5sb2Fk
NjQoanNQYXJhbSwgc2NyYXRjaEdQUik7CisgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShq
c1BhcmFtLCBzY3JhdGNoSlNSKTsKICAgICAgICAgICAgICAgICBpZiAoIXR5cGUuaXNOdWxsYWJs
ZSgpKQotICAgICAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTnVs
bChzY3JhdGNoR1BSKSk7Ci0gICAgICAgICAgICAgICAgaml0LnN0b3JlNjQoc2NyYXRjaEdQUiwg
Y2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21T
UCgpKSk7CisgICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZO
dWxsKHNjcmF0Y2hKU1IpKTsKKyAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShzY3JhdGNo
SlNSLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0
RnJvbVNQKCkpKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYXV0byBl
eHRlcm5HUFIgPSB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmdwcigpOwotICAgICAgICAgICAgICAg
IGppdC5sb2FkNjQoanNQYXJhbSwgZXh0ZXJuR1BSKTsKKyAgICAgICAgICAgICAgICBhdXRvIGV4
dGVybkpTUiA9IHdhc21DYWxsSW5mby5wYXJhbXNbaV0uanNyKCk7CisgICAgICAgICAgICAgICAg
aml0LmxvYWRWYWx1ZShqc1BhcmFtLCBleHRlcm5KU1IpOwogICAgICAgICAgICAgICAgIGlmICgh
dHlwZS5pc051bGxhYmxlKCkpCi0gICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChq
aXQuYnJhbmNoSWZOdWxsKGV4dGVybkdQUikpOworICAgICAgICAgICAgICAgICAgICBzbG93UGF0
aC5hcHBlbmQoaml0LmJyYW5jaElmTnVsbChleHRlcm5KU1IpKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0zMDQsMzUgKzMxOCw0MSBAQCBNYWNyb0Fz
c2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxs
RW50cnlwb2ludFNsb3coKQogICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpGNjQ6IHsKICAg
ICAgICAgICAgIGlmICghaXNTdGFjaykKICAgICAgICAgICAgICAgICBzY3JhdGNoRlBSID0gd2Fz
bUNhbGxJbmZvLnBhcmFtc1tpXS5mcHIoKTsKLSAgICAgICAgICAgIGF1dG8gbW92ZVRvRGVzdGlu
YXRpb24gPSBbJl0gKCkgewotICAgICAgICAgICAgICAgIGlmIChpc1N0YWNrKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChzaWduYXR1cmUuYXJndW1lbnRUeXBlKGkpLmlzRjMyKCkpCi0gICAg
ICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVGbG9hdChzY3JhdGNoRlBSLCBjYWxsZWVGcmFt
ZS53aXRoT2Zmc2V0KHdhc21DYWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKLSAg
ICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgaml0LnN0b3Jl
RG91YmxlKHNjcmF0Y2hGUFIsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBh
cmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IH07CiAKLSAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQUik7Ci0gICAg
ICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKHNjcmF0Y2hHUFIp
KTsKLSAgICAgICAgICAgIGF1dG8gaXNJbnQzMiA9IGppdC5icmFuY2hJZkludDMyKHNjcmF0Y2hH
UFIpOwotCi0gICAgICAgICAgICBqaXQudW5ib3hEb3VibGUoc2NyYXRjaEdQUiwgc2NyYXRjaEdQ
Uiwgc2NyYXRjaEZQUik7CisgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpzUGFyYW0sIHNjcmF0
Y2hKU1IpOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQo
aml0LmJyYW5jaElmTm90TnVtYmVyKHNjcmF0Y2hKU1IsIEludmFsaWRHUFJSZWcpKTsKKyNlbGlm
IFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICBzdGFja0xpbWl0R1BSSXNDbG9iYmVyZWQg
PSB0cnVlOworICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJl
cihzY3JhdGNoSlNSLCBzdGFja0xpbWl0R1BSKSk7CisjZW5kaWYKKyAgICAgICAgICAgIGF1dG8g
aXNJbnQzMiA9IGppdC5icmFuY2hJZkludDMyKHNjcmF0Y2hKU1IpOworI2lmIFVTRShKU1ZBTFVF
NjQpCisgICAgICAgICAgICBqaXQudW5ib3hEb3VibGUoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCks
IHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBzY3JhdGNoRlBSKTsKKyNlbGlmIFVTRShKU1ZBTFVF
MzJfNjQpCisgICAgICAgICAgICBqaXQudW5ib3hEb3VibGUoc2NyYXRjaEpTUiwgc2NyYXRjaEZQ
Uik7CisjZW5kaWYKICAgICAgICAgICAgIGlmIChzaWduYXR1cmUuYXJndW1lbnRUeXBlKGkpLmlz
RjMyKCkpCiAgICAgICAgICAgICAgICAgaml0LmNvbnZlcnREb3VibGVUb0Zsb2F0KHNjcmF0Y2hG
UFIsIHNjcmF0Y2hGUFIpOwotICAgICAgICAgICAgbW92ZVRvRGVzdGluYXRpb24oKTsKICAgICAg
ICAgICAgIGF1dG8gZG9uZSA9IGppdC5qdW1wKCk7CiAKICAgICAgICAgICAgIGlzSW50MzIubGlu
aygmaml0KTsKICAgICAgICAgICAgIGlmIChzaWduYXR1cmUuYXJndW1lbnRUeXBlKGkpLmlzRjMy
KCkpIHsKLSAgICAgICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9GbG9hdChzY3JhdGNoR1BS
LCBzY3JhdGNoRlBSKTsKLSAgICAgICAgICAgICAgICBtb3ZlVG9EZXN0aW5hdGlvbigpOworICAg
ICAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0Zsb2F0KHNjcmF0Y2hKU1IucGF5bG9hZEdQ
UigpLCBzY3JhdGNoRlBSKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
aml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOwotICAgICAg
ICAgICAgICAgIG1vdmVUb0Rlc3RpbmF0aW9uKCk7CisgICAgICAgICAgICAgICAgaml0LmNvbnZl
cnRJbnQzMlRvRG91YmxlKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBzY3JhdGNoRlBSKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGRvbmUubGluaygmaml0KTsKLQorICAgICAgICAgICAg
aWYgKGlzU3RhY2spIHsKKyAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgYWRk
ciB7IGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5vZmZzZXRG
cm9tU1AoKSkgfTsKKyAgICAgICAgICAgICAgICBpZiAoc2lnbmF0dXJlLmFyZ3VtZW50VHlwZShp
KS5pc0YzMigpKSB7CisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZUZsb2F0KHNjcmF0Y2hG
UFIsIGFkZHIud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSk7CisjaWYgVVNFKEpTVkFMVUUzMl82
NCkKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tMzIoMCksIGFkZHIud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgorICAgICAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVEb3VibGUoc2NyYXRj
aEZQUiwgYWRkcik7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICBkZWZhdWx0OgpAQCAtMzQzLDQyICszNjMsNDQgQEAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9p
bnRTbG93KCkKICAgICAvLyBBdCB0aGlzIHBvaW50LCB3ZSdyZSBjb21taXR0ZWQgdG8gZG9pbmcg
YSBmYXN0IGNhbGwuCiAKICAgICBpZiAoV2FzbTo6Q29udGV4dDo6dXNlRmFzdFRMUygpKSAKLSAg
ICAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHNjcmF0Y2hHUFIpOworICAgICAgICBq
aXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOwogICAg
IGVsc2UKLSAgICAgICAgaml0LmxvYWRQdHIodm0ud2FzbUNvbnRleHQucG9pbnRlclRvSW5zdGFu
Y2UoKSwgc2NyYXRjaEdQUik7CisgICAgICAgIGppdC5sb2FkUHRyKHZtLndhc21Db250ZXh0LnBv
aW50ZXJUb0luc3RhbmNlKCksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKICAgICBwdHJkaWZm
X3QgcHJldmlvdXNJbnN0YW5jZU9mZnNldCA9IHRoaXMtPnByZXZpb3VzSW5zdGFuY2VPZmZzZXQo
KTsKLSAgICBqaXQuc3RvcmVQdHIoc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQ
UkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBwcmV2aW91c0luc3RhbmNlT2Zmc2V0KSk7CisgICAg
aml0LnN0b3JlUHRyKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHByZXZpb3VzSW5zdGFuY2VPZmZzZXQpKTsK
IAotICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigmaW5zdGFuY2UoKS0+
aW5zdGFuY2UoKSksIHNjcmF0Y2hHUFIpOworICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbVB0cigmaW5zdGFuY2UoKS0+aW5zdGFuY2UoKSksIHNjcmF0Y2hKU1IucGF5bG9hZEdQ
UigpKTsKICAgICBpZiAoV2FzbTo6Q29udGV4dDo6dXNlRmFzdFRMUygpKSAKLSAgICAgICAgaml0
LnN0b3JlV2FzbUNvbnRleHRJbnN0YW5jZShzY3JhdGNoR1BSKTsKKyAgICAgICAgaml0LnN0b3Jl
V2FzbUNvbnRleHRJbnN0YW5jZShzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAgICAgZWxzZSB7
Ci0gICAgICAgIGppdC5tb3ZlKHNjcmF0Y2hHUFIsIHBpbm5lZFJlZ3Mud2FzbUNvbnRleHRJbnN0
YW5jZVBvaW50ZXIpOwotICAgICAgICBqaXQuc3RvcmVQdHIoc2NyYXRjaEdQUiwgdm0ud2FzbUNv
bnRleHQucG9pbnRlclRvSW5zdGFuY2UoKSk7CisgICAgICAgIGppdC5tb3ZlKHNjcmF0Y2hKU1Iu
cGF5bG9hZEdQUigpLCBwaW5uZWRSZWdzLndhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyKTsKKyAg
ICAgICAgaml0LnN0b3JlUHRyKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCB2bS53YXNtQ29udGV4
dC5wb2ludGVyVG9JbnN0YW5jZSgpKTsKICAgICB9CiAgICAgaWYgKHN0YWNrTGltaXRHUFJJc0Ns
b2JiZXJlZCkKICAgICAgICAgaml0LmxvYWRQdHIodm0uYWRkcmVzc09mU29mdFN0YWNrTGltaXQo
KSwgc3RhY2tMaW1pdEdQUik7Ci0gICAgaml0LnN0b3JlUHRyKHN0YWNrTGltaXRHUFIsIENDYWxs
SGVscGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNo
ZWRTdGFja0xpbWl0KCkpKTsKKyAgICBqaXQuc3RvcmVQdHIoc3RhY2tMaW1pdEdQUiwgQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBXYXNtOjpJbnN0YW5jZTo6
b2Zmc2V0T2ZDYWNoZWRTdGFja0xpbWl0KCkpKTsKIAotICAgIGlmICghIW1vZHVsZUluZm9ybWF0
aW9uLm1lbW9yeSkgeworI2lmICFDUFUoQVJNKSAvLyBBUk0gaGFzIG5vIHBpbm5lZCByZWdpc3Rl
cnMgZm9yIFdhc20gTWVtb3J5LCBzbyBubyBuZWVkIHRvIHNldCB0aGVtIHVwCisgICAgaWYgKCEh
aW5zdGFuY2UoKS0+aW5zdGFuY2UoKS5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpLm1lbW9y
eSkgewogICAgICAgICBHUFJSZWcgYmFzZU1lbW9yeSA9IHBpbm5lZFJlZ3MuYmFzZU1lbW9yeVBv
aW50ZXI7CiAgICAgICAgIEdQUlJlZyBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUgPSBJbnZh
bGlkR1BSUmVnOwogICAgICAgICBhdXRvIG1vZGUgPSBpbnN0YW5jZSgpLT5tZW1vcnlNb2RlKCk7
CiAKICAgICAgICAgaWYgKGlzQVJNNjRFKCkpIHsKLSAgICAgICAgICAgIGlmIChtb2RlICE9IFdh
c206Ok1lbW9yeU1vZGU6OlNpZ25hbGluZykKKyAgICAgICAgICAgIGlmIChtb2RlID09IFdhc206
Ok1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nKQogICAgICAgICAgICAgICAgIHNjcmF0Y2hPckJv
dW5kc0NoZWNraW5nU2l6ZSA9IHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXI7
CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgc2NyYXRjaE9yQm91bmRzQ2hlY2tp
bmdTaXplID0gc3RhY2tMaW1pdEdQUjsKLSAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVs
cGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRC
b3VuZHNDaGVja2luZ1NpemUoKSksIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSk7CisgICAg
ICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXls
b2FkR1BSKCksIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZEJvdW5kc0NoZWNraW5nU2l6
ZSgpKSwgc2NyYXRjaE9yQm91bmRzQ2hlY2tpbmdTaXplKTsKICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIGlmIChtb2RlICE9IFdhc206Ok1lbW9yeU1vZGU6OlNpZ25hbGluZykKLSAgICAg
ICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwg
V2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKCkpLCBwaW5u
ZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGlmIChtb2Rl
ID09IFdhc206Ok1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nKQorICAgICAgICAgICAgICAgIGpp
dC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwg
V2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKCkpLCBwaW5u
ZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyKTsKICAgICAgICAgfQogCi0gICAgICAg
IGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBXYXNtOjpJbnN0
YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnkoKSksIGJhc2VNZW1vcnkpOwotICAgICAgICBqaXQu
Y2FnZUNvbmRpdGlvbmFsbHlBbmRVbnRhZyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5
LCBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUsIHNjcmF0Y2hHUFIpOworICAgICAgICBqaXQu
bG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIFdh
c206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZE1lbW9yeSgpKSwgYmFzZU1lbW9yeSk7CisgICAg
ICAgIGppdC5jYWdlQ29uZGl0aW9uYWxseUFuZFVudGFnKEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJh
c2VNZW1vcnksIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSwgc2NyYXRjaEpTUi5wYXlsb2Fk
R1BSKCkpOwogICAgIH0KKyNlbmRpZgogCiAgICAgLy8gV2UgdXNlIHRoaXMgY2FsbGVlIHRvIGlu
ZGljYXRlIGhvdyB0byB1bndpbmQgcGFzdCB0aGVzZSB0eXBlcyBvZiBmcmFtZXM6CiAgICAgLy8g
MS4gV2UgbmVlZCB0byBrbm93IHdoZXJlIHRvIGdldCBjYWxsZWUgc2F2ZXMuCkBAIC0zOTAsOCAr
NDEyLDggQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5
RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAvLyBGSVhNRTogQ3VycmVudGx5
IHdlIGp1c3QgZG8gYW4gaW5kaXJlY3QganVtcC4gQnV0IHdlIHNob3VsZCB0ZWFjaCB0aGUgTW9k
dWxlCiAgICAgLy8gaG93IHRvIHJlcGF0Y2ggdXM6CiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjU3MAotICAgIGppdC5sb2FkUHRyKGVudHJ5cG9pbnRM
b2FkTG9jYXRpb24oKSwgc2NyYXRjaEdQUik7Ci0gICAgaml0LmNhbGwoc2NyYXRjaEdQUiwgV2Fz
bUVudHJ5UHRyVGFnKTsKKyAgICBqaXQubG9hZFB0cihlbnRyeXBvaW50TG9hZExvY2F0aW9uKCks
IHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICBqaXQuY2FsbChzY3JhdGNoSlNSLnBheWxv
YWRHUFIoKSwgV2FzbUVudHJ5UHRyVGFnKTsKIAogICAgIG1hcnNoYWxsSlNSZXN1bHQoaml0LCB0
eXBlRGVmaW5pdGlvbiwgd2FzbUNhbGxJbmZvLCBzYXZlZFJlc3VsdFJlZ2lzdGVycyk7CiAKQEAg
LTQyMSw3ICs0NDMsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2Vi
QXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgIGppdC5tb3ZlKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih0aGlzKSwgR1BSSW5mbzo6cmVnVDApOwogICAgIGpp
dC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogI2lmIENQVShBUk02NEUpCi0gICAgaml0LnVudGFn
UmV0dXJuQWRkcmVzcyhzY3JhdGNoR1BSKTsKKyAgICBqaXQudW50YWdSZXR1cm5BZGRyZXNzKHNj
cmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKICNlbmRpZgogICAgIGF1dG8ganVtcFRvSG9zdENhbGxU
aHVuayA9IGppdC5qdW1wKCk7CiAKQEAgLTQyOSw3ICs0NTEsNyBAQCBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2lu
dFNsb3coKQogICAgIGlmIChVTkxJS0VMWShsaW5rQnVmZmVyLmRpZEZhaWxUb0FsbG9jYXRlKCkp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGxpbmtCdWZmZXIubGluayhqdW1wVG9I
b3N0Q2FsbFRodW5rLCBDb2RlTG9jYXRpb25MYWJlbDxKU0VudHJ5UHRyVGFnPihleGVjdXRhYmxl
KCktPmVudHJ5cG9pbnRGb3IoQ29kZUZvckNhbGwsIE11c3RDaGVja0FyaXR5KS5leGVjdXRhYmxl
QWRkcmVzcygpKSk7CisgICAgbGlua0J1ZmZlci5saW5rKGp1bXBUb0hvc3RDYWxsVGh1bmssIENv
ZGVMb2NhdGlvbkxhYmVsPEpTRW50cnlQdHJUYWc+KGV4ZWN1dGFibGUoKS0+ZW50cnlwb2ludEZv
cihDb2RlRm9yQ2FsbCwgTXVzdENoZWNrQXJpdHkpKSk7CiAgICAgbV9qc0NhbGxFbnRyeXBvaW50
ID0gRklOQUxJWkVfV0FTTV9DT0RFKGxpbmtCdWZmZXIsIFdhc21FbnRyeVB0clRhZywgIkpTLT5X
YXNtIElDIik7CiAgICAgcmV0dXJuIG1fanNDYWxsRW50cnlwb2ludC5jb2RlKCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbENv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
R2xvYmFsQ29uc3RydWN0b3IuY3BwCmluZGV4IGEyMjFiMmVjYjcxMy4uY2M3Y2JlM2U0Nzg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2Jh
bENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseUdsb2JhbENvbnN0cnVjdG9yLmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIEpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5R2xvYmFsLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iCiAgICAgUmVmPFdhc206Okdsb2JhbD4gd2FzbUdsb2JhbCA9IFdhc206
Okdsb2JhbDo6Y3JlYXRlKHR5cGUsIG11dGFiaWxpdHksIGluaXRpYWxWYWx1ZSk7CiAgICAgSlNX
ZWJBc3NlbWJseUdsb2JhbCoganNXZWJBc3NlbWJseUdsb2JhbCA9IEpTV2ViQXNzZW1ibHlHbG9i
YWw6OnRyeUNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCB3ZWJBc3NlbWJseUdsb2JhbFN0cnVjdHVy
ZSwgV1RGTW92ZSh3YXNtR2xvYmFsKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Nj
b3BlLCB7IH0pOwotICAgIGVuc3VyZVN0aWxsQWxpdmVIZXJlKGJpdHdpc2VfY2FzdDx2b2lkKj4o
aW5pdGlhbFZhbHVlKSk7IC8vIEVuc3VyZSB0aGlzIGlzIGtlcHQgYWxpdmUgd2hpbGUgY3JlYXRp
bmcgSlNXZWJBc3NlbWJseUdsb2JhbC4KKyAgICBlbnN1cmVTdGlsbEFsaXZlSGVyZShpbml0aWFs
VmFsdWUpOyAvLyBFbnN1cmUgdGhpcyBpcyBrZXB0IGFsaXZlIHdoaWxlIGNyZWF0aW5nIEpTV2Vi
QXNzZW1ibHlHbG9iYWwuCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1dlYkFzc2VtYmx5
R2xvYmFsKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCmluZGV4IGJjOWNiMDY4ZDhhMy4uOTdjM2Vj
OTIzOWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseU1vZHVsZVJlY29yZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCkBAIC01NTQsNyArNTU0LDcgQEAgdm9pZCBXZWJB
c3NlbWJseU1vZHVsZVJlY29yZDo6aW5pdGlhbGl6ZUV4cG9ydHMoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKICAgICAgICAgICAgICAgICBKU1dlYkFzc2VtYmx5R2xvYmFsKiBnbG9iYWxW
YWx1ZSA9IEpTV2ViQXNzZW1ibHlHbG9iYWw6OnRyeUNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBn
bG9iYWxPYmplY3QtPndlYkFzc2VtYmx5R2xvYmFsU3RydWN0dXJlKCksIFdURk1vdmUoZ2xvYmFs
UmVmKSk7CiAgICAgICAgICAgICAgICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKICAgICAg
ICAgICAgICAgICBtX2luc3RhbmNlLT5saW5rR2xvYmFsKHZtLCBnbG9iYWxJbmRleCwgZ2xvYmFs
VmFsdWUpOwotICAgICAgICAgICAgICAgIGVuc3VyZVN0aWxsQWxpdmVIZXJlKGJpdHdpc2VfY2Fz
dDx2b2lkKj4oaW5pdGlhbEJpdHMpKTsgLy8gRW5zdXJlIHRoaXMgaXMga2VwdCBhbGl2ZSB3aGls
ZSBjcmVhdGluZyBKU1dlYkFzc2VtYmx5R2xvYmFsLgorICAgICAgICAgICAgICAgIGVuc3VyZVN0
aWxsQWxpdmVIZXJlKGluaXRpYWxCaXRzKTsgLy8gRW5zdXJlIHRoaXMgaXMga2VwdCBhbGl2ZSB3
aGlsZSBjcmVhdGluZyBKU1dlYkFzc2VtYmx5R2xvYmFsLgogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm1FbmFibGUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKaW5k
ZXggYzE1NWFjMjgwNGIwLi4zNzVjNjkxMWQ5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtRW5hYmxlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaApA
QCAtNTg1LDEyICs1ODUsMTIgQEAKICNlbmRpZgogCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLS8q
IERpc2FibGUgV2ViQXNzZW1ibHkgb24gYWxsIDMyYml0IHBsYXRmb3Jtcy4gSXRzIExMSW50IHRp
ZXIgY291bGQKLSAqIHdvcmsgb24gdGhlbSwgYnV0IHN0aWxsIG5lZWRzIHNvbWUgZmluYWwgdG91
Y2hlcy4gKi8KKyNpZiAhQ1BVKEFSTSkKICN1bmRlZiBFTkFCTEVfV0VCQVNTRU1CTFkKICNkZWZp
bmUgRU5BQkxFX1dFQkFTU0VNQkxZIDAKICN1bmRlZiBFTkFCTEVfV0VCQVNTRU1CTFlfQjNKSVQK
ICNkZWZpbmUgRU5BQkxFX1dFQkFTU0VNQkxZX0IzSklUIDAKKyNlbmRpZgogI2lmIChDUFUoQVJN
X1RIVU1CMikgfHwgQ1BVKE1JUFMpKSAmJiBPUyhMSU5VWCkKIC8qIE9uIEFSTXY3IGFuZCBNSVBT
IG9uIExpbnV4IHRoZSBKSVQgaXMgZW5hYmxlZCB1bmxlc3MgZXhwbGljaXRseSBkaXNhYmxlZC4g
Ki8KICNpZiAhZGVmaW5lZChFTkFCTEVfSklUKQpAQCAtNzA4LDcgKzcwOCw3IEBACiAjZGVmaW5l
IEVOQUJMRV9TQU1QTElOR19QUk9GSUxFUiAxCiAjZW5kaWYKIAotI2lmIEVOQUJMRShXRUJBU1NF
TUJMWSkgJiYgSEFWRShNQUNISU5FX0NPTlRFWFQpCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAm
JiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkgJiYgQ1BVKEFERFJFU1M2NCkKICNkZWZpbmUgRU5BQkxF
X1dFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkgMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mt
c3RyZXNzLXRlc3RzCmluZGV4IGY5MDQ5YjNjYzY0Ny4uZDNiZjExMjA4NDg5IDEwMDc1NQotLS0g
YS9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMv
cnVuLWpzYy1zdHJlc3MtdGVzdHMKQEAgLTU4NSw2ICs1ODUsOCBAQCBlbmQKICRob3N0T1MgPSBk
ZXRlcm1pbmVPUyB1bmxlc3MgJGhvc3RPUwogJGFyY2hpdGVjdHVyZSA9IGRldGVybWluZUFyY2hp
dGVjdHVyZSB1bmxlc3MgJGFyY2hpdGVjdHVyZQogJGlzRlRMUGxhdGZvcm0gPSAhKCRhcmNoaXRl
Y3R1cmUgPT0gIng4NiIgfHwgJGFyY2hpdGVjdHVyZSA9PSAiYXJtIiB8fCAkYXJjaGl0ZWN0dXJl
ID09ICJtaXBzIiB8fCAkYXJjaGl0ZWN0dXJlID09ICJyaXNjdjY0IiB8fCAkaG9zdE9TID09ICJ3
aW5kb3dzIiB8fCAkaG9zdE9TID09ICJwbGF5c3RhdGlvbiIpCisjIFNwZWNpYWwgY2FzZSBhcm12
Nywgd2Ugd2FudCB0byBydW4gdGhlIHdhc20gdGVzdHMgdGVtcG9yYXJpbHkgd2l0aG91dCBCMy9B
aXIgc3VwcG9ydAorJGlzV2FzbVBsYXRmb3JtID0gJGlzRlRMUGxhdGZvcm0gfHwgJGFyY2hpdGVj
dHVyZSA9PSAiYXJtIgogCiBpZiAkYXJjaGl0ZWN0dXJlID09ICJ4ODYiCiAgICAgIyBUaGUgSklU
IGlzIHRlbXBvcmFyaWx5IGRpc2FibGVkIG9uIHRoaXMgcGxhdGZvcm0gc2luY2UKQEAgLTE3Mjks
NyArMTczMSw3IEBAIGVuZAogCiBkZWYgcnVuV2ViQXNzZW1ibHkKICAgICByZXR1cm4gaWYgISRq
aXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRMUGxhdGZvcm0KKyAgICByZXR1cm4gaWYgISRp
c1dhc21QbGF0Zm9ybQogICAgIHJ1bigiZGVmYXVsdC13YXNtIiwgIi1tIiwgKkZUTF9PUFRJT05T
KQogICAgIGlmICRtb2RlICE9ICJxdWljayIKICAgICAgICAgcnVuKCJ3YXNtLW5vLWNqaXQteWVz
LXRscy1jb250ZXh0IiwgIi1tIiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PXRydWUiLCAq
KEZUTF9PUFRJT05TICsgTk9fQ0pJVF9PUFRJT05TKSkKQEAgLTE3MzcsMTUgKzE3MzksMTcgQEAg
ZGVmIHJ1bldlYkFzc2VtYmx5CiAgICAgICAgIHJ1bigid2FzbS1lYWdlci1qZXR0aXNvbiIsICIt
bSIsICItLWZvcmNlQ29kZUJsb2NrVG9KZXR0aXNvbkR1ZVRvT2xkQWdlPXRydWUiLCAiLS11c2VS
YW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAiLS12ZXJpZnlHQz10
cnVlIiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tbm8tdGxzLWNvbnRleHQiLCAi
LW0iLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9ZmFsc2UiLCAqRlRMX09QVElPTlMpCiAg
ICAgICAgIHJ1bigid2FzbS1zbG93LW1lbW9yeSIsICItbSIsICItLXVzZVdlYkFzc2VtYmx5RmFz
dE1lbW9yeT1mYWxzZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVuKCJ3YXNtLWIzIiwgIi1t
IiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqRlRM
X09QVElPTlMpCi0gICAgICAgIHJ1bigid2FzbS1haXIiLCAiLW0iLCAiLS11c2VXYXNtTExJbnQ9
ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUi
LCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNseSIs
ICItbSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAq
RlRMX09QVElPTlMpIGlmIHNob3VsZENvbGxlY3RDb250aW51b3VzbHk/CisgICAgICAgIGlmICRp
c0ZUTFBsYXRmb3JtCisgICAgICAgICAgICBydW4oIndhc20tYjMiLCAiLW0iLCAiLS11c2VXYXNt
TExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICpGVExfT1BUSU9OUykKKyAg
ICAgICAgICAgIHJ1bigid2FzbS1haXIiLCAiLW0iLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAi
LS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqRlRMX09Q
VElPTlMpCisgICAgICAgIGVuZAogICAgIGVuZAogZW5kCiAKIGRlZiBydW5XZWJBc3NlbWJseUpl
dFN0cmVhbTIKICAgICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRM
UGxhdGZvcm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQogCiAgICAgaWYgJG1lbW9y
eUxpbWl0ZWQKICAgICAgICAgc2tpcApAQCAtMTc2NCwxNSArMTc2OCwxNyBAQCBkZWYgcnVuV2Vi
QXNzZW1ibHlKZXRTdHJlYW0yCiAgICAgICAgIHJ1bigid2FzbS1lYWdlci1qZXR0aXNvbiIsICIt
LWZvcmNlQ29kZUJsb2NrVG9KZXR0aXNvbkR1ZVRvT2xkQWdlPXRydWUiLCAiLS12ZXJpZnlHQz10
cnVlIiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tbm8tdGxzLWNvbnRleHQiLCAi
LS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9ZmFsc2UiLCAqRlRMX09QVElPTlMpCiAgICAgICAg
IHJ1bigid2FzbS1zbG93LW1lbW9yeSIsICItLXVzZVdlYkFzc2VtYmx5RmFzdE1lbW9yeT1mYWxz
ZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVuKCJ3YXNtLWIzIiwgIi0tdXNlV2FzbUxMSW50
PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqRlRMX09QVElPTlMpCi0gICAgICAg
IHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemlu
Z0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAg
IHJ1bigid2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNseSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9
dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqRlRMX09QVElPTlMpIGlmIHNob3VsZENvbGxlY3RD
b250aW51b3VzbHk/CisgICAgICAgIGlmICRpc0ZUTFBsYXRmb3JtCisgICAgICAgICAgICBydW4o
Indhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxz
ZSIsICpGVExfT1BUSU9OUykKKyAgICAgICAgICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNt
TExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9u
PXRydWUiLCAqRlRMX09QVElPTlMpCisgICAgICAgIGVuZAogICAgIGVuZAogZW5kCiAKIGRlZiBy
dW5XZWJBc3NlbWJseVN1aXRlKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiAgICAgcmV0
dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0
dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KICAgICBtb2R1bGVzID0gRGlyW1dBU01URVNUU19QQVRI
ICsgIiouanMiXS5tYXAgeyB8ZnwgRmlsZS5iYXNlbmFtZShmKSB9CiAgICAgcHJlcGFyZUV4dHJh
QWJzb2x1dGVGaWxlcyhXQVNNVEVTVFNfUEFUSCwgWyJ3YXNtLmpzb24iXSkKICAgICBwcmVwYXJl
RXh0cmFSZWxhdGl2ZUZpbGVzKG1vZHVsZXMubWFwIHsgfGZ8ICIuLi8iICsgZiB9LCAkY29sbGVj
dGlvbikKQEAgLTE3ODgsOSArMTc5NCwxMSBAQCBkZWYgcnVuV2ViQXNzZW1ibHlTdWl0ZSgqb3B0
aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQogICAgICAgICBydW4oIndhc20tZWFnZXItamV0dGlz
b24iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09sZEFnZT10cnVlIiwgIi0tdXNl
UmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgIi0tdmVyaWZ5R0M9
dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAg
ICAgICBydW4oIndhc20tbm8tdGxzLWNvbnRleHQiLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRl
eHQ9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkK
ICAgICAgICAgcnVuKCJ3YXNtLXNsb3ctbWVtb3J5IiwgIi0tdXNlV2ViQXNzZW1ibHlGYXN0TWVt
b3J5PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykp
Ci0gICAgICAgIHJ1bigid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21C
QlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0
aW9ucykpCi0gICAgICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAi
LS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqKEZUTF9P
UFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuKCJ3YXNt
LWNvbGxlY3QtY29udGludW91c2x5IiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0t
dmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlv
bnMpKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5PworICAgICAgICBpZiAkaXNGVExQbGF0
Zm9ybQorICAgICAgICAgICAgcnVuKCJ3YXNtLWIzIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwg
Ii0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3Bl
Y2lmaWNPcHRpb25zKSkKKyAgICAgICAgICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJ
bnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRy
dWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKKyAgICAg
ICAgZW5kCiAgICAgZW5kCiBlbmQKIApAQCAtMTgwNiw3ICsxODE0LDkgQEAgZW5kCiBkZWYgcnVu
V2ViQXNzZW1ibHlXaXRoSGFybmVzcygqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQogICAg
IHJhaXNlIHVubGVzcyAkYmVuY2htYXJrLnRvX3MgPX4gL2hhcm5lc3NcLm0/anMvCiAgICAgcmV0
dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0
dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KKyAgICAjIFNraXAgdGhpcyBjb21wbGV0ZWx5IG9uIGFy
bXY3IGZvciBub3csIHNpbmNlIG1vc3Qgb2YgdGhlIHRlc3RzIGFyZSByZWxhdGVkIHRvIE9TUiBh
bmQgaXQncyBhIGJpdCBoYWlyeSB0byBza2lwIHRoZW0gbWFudWFsbHkKKyAgICByZXR1cm4gaWYg
JGFyY2hpdGVjdHVyZSA9PSAiYXJtIgogCiAgICAgd2FzbUZpbGVzID0gYWxsV2FzbUZpbGVzKCRj
b2xsZWN0aW9uKQogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMod2FzbUZpbGVzLm1hcCB7
IHxmfCBmLmJhc2VuYW1lIH0sICRjb2xsZWN0aW9uKQpAQCAtMTgxOCw5ICsxODI4LDExIEBAIGRl
ZiBydW5XZWJBc3NlbWJseVdpdGhIYXJuZXNzKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMp
CiAgICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgIi0tZm9yY2VD
b2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhl
Y3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9P
UFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuSGFybmVz
c1Rlc3QoIndhc20tbm8tdGxzLWNvbnRleHQiLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9
ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAg
ICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tc2xvdy1tZW1vcnkiLCAiLS11c2VXZWJBc3NlbWJs
eUZhc3RNZW1vcnk9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNP
cHRpb25zKSkKLSAgICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tYjMiLCAiLS11c2VXYXNtTExJ
bnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRp
b25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQotICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1u
by1haXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFi
bGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3Bl
Y2lmaWNPcHRpb25zKSkKICAgICAgICAgcnVuSGFybmVzc1Rlc3QoIndhc20tY29sbGVjdC1jb250
aW51b3VzbHkiLCAiLS1jb2xsZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVl
IiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpIGlmIHNob3Vs
ZENvbGxlY3RDb250aW51b3VzbHk/CisgICAgICAgIGlmICRpc0ZUTFBsYXRmb3JtCisgICAgICAg
ICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICIt
LXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNp
ZmljT3B0aW9ucykpCisgICAgICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1uby1haXIiLCAi
LS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRB
bGxvY2F0aW9uPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRp
b25zKSkKKyAgICAgICAgZW5kCiAgICAgZW5kCiBlbmQKIApAQCAtMTgzMCw3ICsxODQyLDcgQEAg
ZGVmIHJ1bldlYkFzc2VtYmx5RW1zY3JpcHRlbihtb2RlKQogICAgICAgICByZXR1cm4KICAgICBl
bmQKICAgICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVybiBpZiAhJGlzRlRMUGxhdGZv
cm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQogICAgIHdhc20gPSAkYmVuY2htYXJr
LnRvX3Muc3ViISAnLmpzJywgJy53YXNtJwogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMo
W1BhdGhuYW1lKCcuLicpICsgd2FzbV0sICRjb2xsZWN0aW9uKQogICAgIHJ1bigiZGVmYXVsdC13
YXNtIiwgKkZUTF9PUFRJT05TKQpAQCAtMTgzOCw5ICsxODUwLDExIEBAIGRlZiBydW5XZWJBc3Nl
bWJseUVtc2NyaXB0ZW4obW9kZSkKICAgICAgICAgcnVuKCJ3YXNtLW5vLWNqaXQteWVzLXRscy1j
b250ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PXRydWUiLCAqKEZUTF9PUFRJT05T
ICsgTk9fQ0pJVF9PUFRJT05TKSkKICAgICAgICAgcnVuKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwg
Ii0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRv
bWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUi
LCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1uby10bHMtY29udGV4dCIsICItLXVz
ZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVu
KCJ3YXNtLWIzIiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFs
c2UiLCAqRlRMX09QVElPTlMpCi0gICAgICAgIHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJ
bnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRy
dWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNs
eSIsICItLWNvbGxlY3RDb250aW51b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqRlRM
X09QVElPTlMpIGlmIHNob3VsZENvbGxlY3RDb250aW51b3VzbHk/CisgICAgICAgIGlmICRpc0ZU
TFBsYXRmb3JtCisgICAgICAgICAgICBydW4oIndhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFs
c2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICpGVExfT1BUSU9OUykKKyAgICAgICAgICAg
IHJ1bigid2FzbS1haXIiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemlu
Z0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqRlRMX09QVElPTlMpCisgICAgICAg
IGVuZAogICAgIGVuZAogZW5kCiAKQEAgLTE4NTAsNyArMTg2NCw3IEBAIGRlZiBydW5XZWJBc3Nl
bWJseVNwZWNUZXN0QmFzZShtb2RlLCBzcGVjSGFybmVzc1BhdGgsICpvcHRpb25hbFRlc3RTcGVj
aWZpY09wdGlvCiAgICAgICAgIHJldHVybgogICAgIGVuZAogICAgIHJldHVybiBpZiAhJGppdFRl
c3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2Fz
bVBsYXRmb3JtCiAgICAgcHJlcGFyZUV4dHJhQWJzb2x1dGVGaWxlcyhXQVNNVEVTVFNfUEFUSCwg
WyJ3YXNtLmpzb24iXSkKIAogICAgIG1vZHVsZXMgPSBEaXJbV0FTTVRFU1RTX1BBVEggKyAiKi5q
cyJdLm1hcCB7IHxmfCBGaWxlLmJhc2VuYW1lKGYpIH0KQEAgLTE4NjUsOSArMTg3OSwxMSBAQCBk
ZWYgcnVuV2ViQXNzZW1ibHlTcGVjVGVzdEJhc2UobW9kZSwgc3BlY0hhcm5lc3NQYXRoLCAqb3B0
aW9uYWxUZXN0U3BlY2lmaWNPcHRpbwogICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20t
bm8tY2ppdC15ZXMtdGxzLWNvbnRleHQiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNz
SnNQYXRoLCAgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PXRydWUiLCAqKEZUTF9PUFRJT05T
ICsgTk9fQ0pJVF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAg
IHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgbm9pc3lPdXRwdXRI
YW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVl
VG9PbGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRp
b249dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0
U3BlY2lmaWNPcHRpb25zKSkKICAgICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLW5vLXRs
cy1jb250ZXh0Iiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tdXNl
RmFzdFRMU0Zvcldhc21Db250ZXh0PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVz
dFNwZWNpZmljT3B0aW9ucykpCi0gICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1iMyIs
IG5vaXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICItLXVzZVdhc21MTEludD1m
YWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFs
VGVzdFNwZWNpZmljT3B0aW9ucykpCi0gICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1h
aXIiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAiLS11c2VXYXNtTExJ
bnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRy
dWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKICAgICAg
IHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5Iiwgbm9pc3lP
dXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10
cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVj
aWZpY09wdGlvbnMpKSBpZiBzaG91bGRDb2xsZWN0Q29udGludW91c2x5PworICAgICAgaWYgJGlz
RlRMUGxhdGZvcm0KKyAgICAgICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1iMyIsIG5v
aXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICItLXVzZVdhc21MTEludD1mYWxz
ZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVz
dFNwZWNpZmljT3B0aW9ucykpCisgICAgICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20t
YWlyIiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVzc0pzUGF0aCwgIi0tdXNlV2FzbUxM
SW50PWZhbHNlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10
cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCisgICAg
ICBlbmQKICAgICBlbmQKIGVuZAogCkBAIC0xODg1LDcgKzE5MDEsNyBAQCBlbmQKIAogZGVmIHJ1
bldlYkFzc2VtYmx5TG93RXhlY3V0YWJsZU1lbW9yeSgqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRp
b25zKQogICAgIHJldHVybiBpZiAhJGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0
Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2FzbVBsYXRmb3JtCiAgICAgbW9kdWxlcyA9IERpcltX
QVNNVEVTVFNfUEFUSCArICIqLmpzIl0ubWFwIHsgfGZ8IEZpbGUuYmFzZW5hbWUoZikgfQogICAg
IHByZXBhcmVFeHRyYUFic29sdXRlRmlsZXMoV0FTTVRFU1RTX1BBVEgsIFsid2FzbS5qc29uIl0p
CiAgICAgcHJlcGFyZUV4dHJhUmVsYXRpdmVGaWxlcyhtb2R1bGVzLm1hcCB7IHxmfCAiLi4vIiAr
IGYgfSwgJGNvbGxlY3Rpb24pCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1w
cm9maWxlci13YXNtLW5hbWUtc2VjdGlvbi5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXBy
b2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzCmluZGV4IDVjMjIwZmQ3NmNkYy4uMzY4NmM2Mzk3
MDQwIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5h
bWUtc2VjdGlvbi5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNt
LW5hbWUtc2VjdGlvbi5qcwpAQCAtMSwzICsxLDggQEAKKy8vIFRoaXMgdGVzdCBpcyBzdGF0aXN0
aWNhbCwgYW5kIHdpdGhvdXQgb3B0aW1pemluZyBXYXNtIHRpZXJzIHRoZSBsaWtlbGlob29kCisv
LyBvZiBoaXR0aW5nIHRoZSBkZWVwZXN0IGV4cGVjdGVkIHN0YWNrIHRyYWNlIGlzIHZlcnkgbG93
LCBzbyBkaXNhYmxlLgorLy8gRklYTUU6IHJlbW92ZSB3aGVuIDMyLWJpdCBwbGF0Zm9ybXMgc3Vw
cG9ydCBvcHRpbWl6aW5nIFdhc20gdGllcnMKKy8vQCBza2lwIGlmIFsiYXJtIiwgIm1pcHMiXS5p
bmNsdWRlPygkYXJjaGl0ZWN0dXJlKQorLy8KIC8vQCBydW5EZWZhdWx0CiAKIC8qCmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzIGIvSlNUZXN0cy9z
dHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qcwppbmRleCAwNmRmMDEyNDk1OTYuLjcyNDBj
MDBkZTI3ZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2Fz
bS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzCkBAIC0x
LDMgKzEsNCBAQAorLy9AIHNraXAgaWYgJGFyY2hpdGVjdHVyZSA9PSAiYXJtIgogLy9AIHJ1bkRl
ZmF1bHQKIAogaWYgKHBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKCkgJiYgJHZtLmlz
V2FzbVN1cHBvcnRlZCgpKSB7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zaGFyZWQtd2Fz
bS1tZW1vcnktd2l0aC16ZXJvLWJ5dGUuanMgYi9KU1Rlc3RzL3N0cmVzcy9zaGFyZWQtd2FzbS1t
ZW1vcnktd2l0aC16ZXJvLWJ5dGUuanMKaW5kZXggMjlkYTc3NTUxY2EwLi4zZmJhNjljNDRkYzMg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NoYXJlZC13YXNtLW1lbW9yeS13aXRoLXplcm8t
Ynl0ZS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zaGFyZWQtd2FzbS1tZW1vcnktd2l0aC16ZXJv
LWJ5dGUuanMKQEAgLTEsMiArMSw0IEBACisvL0dyb3dpbmcgYSBzaGFyZWQgbWVtb3J5IHJlcXVp
cmVzIHNpZ25hbCBoYW5kbGVycywgd2hpY2ggYXJlIG5vdCB5ZXQgcG9ydGVkIHRvIEFSTXY3Cisv
L0Agc2tpcCBpZiAkYXJjaGl0ZWN0dXJlID09ICJhcm0iCiBpZiAodHlwZW9mIFdlYkFzc2VtYmx5
ICE9PSAndW5kZWZpbmVkJykKICAgICAobmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7aW5pdGlhbDog
MCwgbWF4aW11bTogMSwgc2hhcmVkOiB0cnVlfSkpLmdyb3coMSkKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvd2FzbS9yZWdyZXNzL2xsaW50LWNhbGxlZS1zYXZlcy13aXRoLWZhc3QtbWVtb3J5LmpzIGIv
SlNUZXN0cy93YXNtL3JlZ3Jlc3MvbGxpbnQtY2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnku
anMKaW5kZXggZjlmMDljNDc1MTNhLi4xMWNmYjE2NGJiNjQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
d2FzbS9yZWdyZXNzL2xsaW50LWNhbGxlZS1zYXZlcy13aXRoLWZhc3QtbWVtb3J5LmpzCisrKyBi
L0pTVGVzdHMvd2FzbS9yZWdyZXNzL2xsaW50LWNhbGxlZS1zYXZlcy13aXRoLWZhc3QtbWVtb3J5
LmpzCkBAIC0xLDMgKzEsNCBAQAorLy9AIHNraXAgaWYgJGFyY2hpdGVjdHVyZSA9PSAiYXJtIgog
Ly9AIHJlcXVpcmVPcHRpb25zKCItLXVzZVdlYkFzc2VtYmx5RmFzdE1lbW9yeT10cnVlIikKIAog
aW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJy4uL2Fzc2VydC5qcyc7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3dhc20vc3RyZXNzL3NoYXJlZC1tZW1vcnktZXJyb3JzLmpzIGIvSlNUZXN0cy93YXNtL3N0
cmVzcy9zaGFyZWQtbWVtb3J5LWVycm9ycy5qcwppbmRleCAxNjRiZmZiNzNlYTkuLjE0ZTBhODc5
MWUxOSAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL3N0cmVzcy9zaGFyZWQtbWVtb3J5LWVycm9y
cy5qcworKysgYi9KU1Rlc3RzL3dhc20vc3RyZXNzL3NoYXJlZC1tZW1vcnktZXJyb3JzLmpzCkBA
IC0xLDMgKzEsNSBAQAorLy9Hcm93aW5nIGEgc2hhcmVkIG1lbW9yeSByZXF1aXJlcyBzaWduYWwg
aGFuZGxlcnMsIHdoaWNoIGFyZSBub3QgeWV0IHBvcnRlZCB0byBBUk12NworLy9AIHNraXAgaWYg
JGFyY2hpdGVjdHVyZSA9PSAiYXJtIgogaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJy4uL2Fzc2Vy
dC5qcyc7CiAKIGFzc2VydC50aHJvd3MoKCkgPT4gewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNt
L3N0cmVzcy9zaGFyZWQtd2FzbS1tZW1vcnktYnVmZmVyLmpzIGIvSlNUZXN0cy93YXNtL3N0cmVz
cy9zaGFyZWQtd2FzbS1tZW1vcnktYnVmZmVyLmpzCmluZGV4IGQ4OTYxM2M5MDkyNS4uNjVmNDUx
N2FiZDIzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vc3RyZXNzL3NoYXJlZC13YXNtLW1lbW9y
eS1idWZmZXIuanMKKysrIGIvSlNUZXN0cy93YXNtL3N0cmVzcy9zaGFyZWQtd2FzbS1tZW1vcnkt
YnVmZmVyLmpzCkBAIC0xLDMgKzEsNSBAQAorLy9Hcm93aW5nIGEgc2hhcmVkIG1lbW9yeSByZXF1
aXJlcyBzaWduYWwgaGFuZGxlcnMsIHdoaWNoIGFyZSBub3QgeWV0IHBvcnRlZCB0byBBUk12Nwor
Ly9AIHNraXAgaWYgJGFyY2hpdGVjdHVyZSA9PSAiYXJtIgogaW1wb3J0ICogYXMgYXNzZXJ0IGZy
b20gJy4uL2Fzc2VydC5qcycKIAogbGV0IHBhZ2VTaXplID0gNjQgPDwgMTA7Ci0tIAoyLjMwLjIK
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>460127</attachid>
            <date>2022-06-09 04:45:35 -0700</date>
            <delta_ts>2022-06-09 04:45:35 -0700</delta_ts>
            <desc>Diff from v13 to v14</desc>
            <filename>v13-v14-diff.txt</filename>
            <type>text/plain</type>
            <size>6248</size>
            <attacher name="Geza Lore">glore</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NoYXJlZC13YXNtLW1lbW9yeS13aXRoLXplcm8t
Ynl0ZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3NoYXJlZC13YXNtLW1lbW9yeS13aXRoLXplcm8tYnl0
ZS5qcwppbmRleCAyOWRhNzc1NTFjYTAuLjNmYmE2OWM0NGRjMyAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9zdHJlc3Mvc2hhcmVkLXdhc20tbWVtb3J5LXdpdGgtemVyby1ieXRlLmpzCisrKyBiL0pTVGVz
dHMvc3RyZXNzL3NoYXJlZC13YXNtLW1lbW9yeS13aXRoLXplcm8tYnl0ZS5qcwpAQCAtMSwyICsx
LDQgQEAKKy8vR3Jvd2luZyBhIHNoYXJlZCBtZW1vcnkgcmVxdWlyZXMgc2lnbmFsIGhhbmRsZXJz
LCB3aGljaCBhcmUgbm90IHlldCBwb3J0ZWQgdG8gQVJNdjcKKy8vQCBza2lwIGlmICRhcmNoaXRl
Y3R1cmUgPT0gImFybSIKIGlmICh0eXBlb2YgV2ViQXNzZW1ibHkgIT09ICd1bmRlZmluZWQnKQog
ICAgIChuZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHtpbml0aWFsOiAwLCBtYXhpbXVtOiAxLCBzaGFy
ZWQ6IHRydWV9KSkuZ3JvdygxKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL3N0cmVzcy9zaGFy
ZWQtbWVtb3J5LWVycm9ycy5qcyBiL0pTVGVzdHMvd2FzbS9zdHJlc3Mvc2hhcmVkLW1lbW9yeS1l
cnJvcnMuanMKaW5kZXggMTY0YmZmYjczZWE5Li4xNGUwYTg3OTFlMTkgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvd2FzbS9zdHJlc3Mvc2hhcmVkLW1lbW9yeS1lcnJvcnMuanMKKysrIGIvSlNUZXN0cy93
YXNtL3N0cmVzcy9zaGFyZWQtbWVtb3J5LWVycm9ycy5qcwpAQCAtMSwzICsxLDUgQEAKKy8vR3Jv
d2luZyBhIHNoYXJlZCBtZW1vcnkgcmVxdWlyZXMgc2lnbmFsIGhhbmRsZXJzLCB3aGljaCBhcmUg
bm90IHlldCBwb3J0ZWQgdG8gQVJNdjcKKy8vQCBza2lwIGlmICRhcmNoaXRlY3R1cmUgPT0gImFy
bSIKIGltcG9ydCAqIGFzIGFzc2VydCBmcm9tICcuLi9hc3NlcnQuanMnOwogCiBhc3NlcnQudGhy
b3dzKCgpID0+IHsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9zdHJlc3Mvc2hhcmVkLXdhc20t
bWVtb3J5LWJ1ZmZlci5qcyBiL0pTVGVzdHMvd2FzbS9zdHJlc3Mvc2hhcmVkLXdhc20tbWVtb3J5
LWJ1ZmZlci5qcwppbmRleCBkODk2MTNjOTA5MjUuLjY1ZjQ1MTdhYmQyMyAxMDA2NDQKLS0tIGEv
SlNUZXN0cy93YXNtL3N0cmVzcy9zaGFyZWQtd2FzbS1tZW1vcnktYnVmZmVyLmpzCisrKyBiL0pT
VGVzdHMvd2FzbS9zdHJlc3Mvc2hhcmVkLXdhc20tbWVtb3J5LWJ1ZmZlci5qcwpAQCAtMSwzICsx
LDUgQEAKKy8vR3Jvd2luZyBhIHNoYXJlZCBtZW1vcnkgcmVxdWlyZXMgc2lnbmFsIGhhbmRsZXJz
LCB3aGljaCBhcmUgbm90IHlldCBwb3J0ZWQgdG8gQVJNdjcKKy8vQCBza2lwIGlmICRhcmNoaXRl
Y3R1cmUgPT0gImFybSIKIGltcG9ydCAqIGFzIGFzc2VydCBmcm9tICcuLi9hc3NlcnQuanMnCiAK
IGxldCBwYWdlU2l6ZSA9IDY0IDw8IDEwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBiMzUzOTNjMDliNzQuLjg1NWVkMzkyNDM5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTU3MzIsNiArNTczMiw4IEBACiAJCUZFOUZBN0M0MjczQzhCMjYwMDVEOUU3MCAvKiBE
ZWZlckdDSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZWZlckdD
SW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUEwODYxRTE4MkI3QTA0
MDBGNkQ4NTEgLyogQnJlYWtwb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBCcmVha3BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFQTA4NjFGMTgy
QjdBMDQwMEY2RDg1MSAvKiBEZWJ1Z2dlclByaW1pdGl2ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRGVidWdnZXJQcmltaXRpdmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUZFQTIxNjg4Mjg1MDA3NjIwMDJCMzY2MiAvKiBXZWJBc3NlbWJseTY0LmFzbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYXNtLmFzbTsgbmFtZSA9IFdlYkFzc2VtYmx5NjQuYXNtOyBwYXRoID0gbGxpbnQvV2ViQXNz
ZW1ibHk2NC5hc207IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZFQTIxNjg5Mjg1MDA3
RTMwMDJCMzY2MiAvKiBXZWJBc3NlbWJseTMyXzY0LmFzbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYXNtLmFzbTsgbmFtZSA9IFdl
YkFzc2VtYmx5MzJfNjQuYXNtOyBwYXRoID0gbGxpbnQvV2ViQXNzZW1ibHkzMl82NC5hc207IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFQTNCQkE3MjEyQjY1NTgwMEU5M0FEMSAvKiBD
YWxsRnJhbWVJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhbGxG
cmFtZUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVBM0JCQUIyMTJD
OTdDQjAwRTkzQUQxIC8qIERGR0NGRy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBERkdDRkcuaDsgcGF0aCA9IGRmZy9ERkdDRkcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRkVCMTM3NTYxQkIxMUVFRTAwQ0Q1MTAwIC8qIE1hY3JvQXNzZW1ibGVyQVJNNjQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWFjcm9Bc3NlbWJsZXJBUk02
NC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MDI3LDYgKzYwMjksOCBAQAog
CQkJCTg2QTA1NDQ3MTU1NjQ1MUIwMDQ0NTE1NyAvKiBMb3dMZXZlbEludGVycHJldGVyMzJfNjQu
YXNtICovLAogCQkJCTg2QTA1NDQ4MTU1NjQ1MUIwMDQ0NTE1NyAvKiBMb3dMZXZlbEludGVycHJl
dGVyNjQuYXNtICovLAogCQkJCUZFMDAyNjIyMjNGM0FGMzMwMDNBMzU4RiAvKiBXZWJBc3NlbWJs
eS5hc20gKi8sCisJCQkJRkVBMjE2ODgyODUwMDc2MjAwMkIzNjYyIC8qIFdlYkFzc2VtYmx5NjQu
YXNtICovLAorCQkJCUZFQTIxNjg5Mjg1MDA3RTMwMDJCMzY2MiAvKiBXZWJBc3NlbWJseTMyXzY0
LmFzbSAqLywKIAkJCSk7CiAJCQluYW1lID0gbGxpbnQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuaAppbmRleCA2ZWQw
MWI5MzY4NmUuLmJhZjI4Yzk3ZmUyMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUluc3RhbmNlLmgKQEAgLTEwNiw4ICsxMDYsMjEgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRl
Q2FjaGVkTWVtb3J5KCkKICAgICB7CiAgICAgICAgIGlmIChtX21lbW9yeSAhPSBudWxscHRyKSB7
Ci0gICAgICAgICAgICAvLyBUaGlzIGlzIHVzZWQgYnkgdGhlIG5vbi1zaWduYWxpbmcgYmFzZWQg
Ym91bmQgY2hlY2tpbmcsIHNvIHVzZSB0aGUgYWN0dWFsIHNpemUgb2YgdGhlIG1lbW9yeS4KKyAg
ICAgICAgICAgIC8vIE5vdGU6IEluIE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nLCBtYXBwZWRD
YXBhY2l0eSgpID09IHNpemUoKS4KKyAgICAgICAgICAgIC8vIFdlIGFzc2VydCB0aGlzIGluIHRo
ZSBjb25zdHJ1Y3RvciBvZiBNZW1vcnlIYW5kbGUuCisjaWYgQ1BVKEFSTSkKKyAgICAgICAgICAg
IC8vIFNoYXJlZCBtZW1vcnkgcmVxdWlyZXMgc2lnbmFsaW5nIG1lbW9yeSB3aGljaCBpcyBub3Qg
YXZhaWxhYmxlCisgICAgICAgICAgICAvLyBvbiBBUk12NyB5ZXQuIEluIG9yZGVyIHRvIGdldCBt
b3JlIG9mIHRoZSB0ZXN0IHN1aXRlIHRvIHJ1biwgd2UKKyAgICAgICAgICAgIC8vIGNhbiBzdGls
bCB1c2UgYSBzaGFyZWQgbWVtb3J5IGJ5IHVzaW5nIGJvdW5kcyBjaGVja2luZywgYnkgdXNpbmcK
KyAgICAgICAgICAgIC8vIHRoZSBhY3R1YWwgc2l6ZSBoZXJlLCBidXQgdGhpcyBtZWFucyB3ZSBj
YW5ub3QgZ3JvdyB0aGUgc2hhcmVkCisgICAgICAgICAgICAvLyBtZW1vcnkgc2FmZWx5IGluIGNh
c2UgaXQncyB1c2VkIGJ5IG11bHRpcGxlIHRocmVhZHMuIE9uY2UgdGhlCisgICAgICAgICAgICAv
LyBzaWduYWwgaGFuZGxlciBhcmUgYXZhaWxhYmxlLCBtX2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6
ZSBzaG91bGQKKyAgICAgICAgICAgIC8vIGJlIHNldCB0byB1c2UgbWVtb3J5KCktPm1hcHBlZENh
cGFjaXR5KCkgbGlrZSBvdGhlciBwbGF0Zm9ybXMsCisgICAgICAgICAgICAvLyBhbmQgYXQgdGhh
dCBwb2ludCBncm93aW5nIHRoZSBzaGFyZWQgbWVtb3J5IHdpbGwgYmUgc2FmZS4KICAgICAgICAg
ICAgIG1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplID0gbWVtb3J5KCktPnNpemUoKTsKKyNlbHNl
CisgICAgICAgICAgICBtX2NhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSA9IG1lbW9yeSgpLT5tYXBw
ZWRDYXBhY2l0eSgpOworI2VuZGlmCiAgICAgICAgICAgICBtX2NhY2hlZE1lbW9yeSA9IENhZ2Vk
UHRyPEdpZ2FjYWdlOjpQcmltaXRpdmUsIHZvaWQsIHRhZ0NhZ2VkUHRyPihtZW1vcnkoKS0+bWVt
b3J5KCksIG1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKTsKICAgICAgICAgICAgIEFTU0VSVCht
ZW1vcnkoKS0+bWVtb3J5KCkgPT0gY2FjaGVkTWVtb3J5KCkpOwogICAgICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3BwCmluZGV4IGUzZTljMGEwNjRlOS4uMjU1
MmVmZjFkOTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVt
b3J5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcApA
QCAtNDkzLDYgKzQ5MywxNCBAQCBib29sIE1lbW9yeTo6YWRkcmVzc0lzSW5Hcm93YWJsZU9yRmFz
dE1lbW9yeSh2b2lkKiBhZGRyZXNzKQogCiBFeHBlY3RlZDxQYWdlQ291bnQsIE1lbW9yeTo6R3Jv
d0ZhaWxSZWFzb24+IE1lbW9yeTo6Z3Jvd1NoYXJlZChQYWdlQ291bnQgZGVsdGEpCiB7CisjaWYg
Q1BVKEFSTSkKKyAgICAvLyBTaGFyZWQgbWVtb3J5IHJlcXVpcmVzIHNpZ25hbGluZyBtZW1vcnkg
d2hpY2ggaXMgbm90IGF2YWlsYWJsZSBvbiBBUk12NworICAgIC8vIHlldC4gSW4gb3JkZXIgdG8g
Z2V0IG1vcmUgb2YgdGhlIHRlc3Qgc3VpdGUgdG8gcnVuLCB3ZSBjYW4gc3RpbGwgdXNlCisgICAg
Ly8gYSBzaGFyZWQgbW1lb3J5IGJ5IHVzaW5nIGJvdW5kcyBjaGVja2luZywgYnV0IHdlIGNhbm5v
dCBncm93IGl0IHNhZmVseQorICAgIC8vIGluIGNhc2UgaXQncyB1c2VkIGJ5IG11bHRpcGxlIHRo
cmVhZHMuIE9uY2UgdGhlIHNpZ25hbCBoYW5kbGVyIGFyZQorICAgIC8vIGF2YWlsYWJsZSwgdGhp
cyBjYW4gYmUgcmVsYXhlZC4KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2Vu
ZGlmCiAgICAgV2FzbTo6UGFnZUNvdW50IG9sZFBhZ2VDb3VudDsKICAgICBXYXNtOjpQYWdlQ291
bnQgbmV3UGFnZUNvdW50OwogICAgIGF1dG8gcmVzdWx0ID0gKFsmXSgpIC0+IEV4cGVjdGVkPFBh
Z2VDb3VudCwgTWVtb3J5OjpHcm93RmFpbFJlYXNvbj4gewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>460142</attachid>
            <date>2022-06-09 12:59:11 -0700</date>
            <delta_ts>2022-06-10 02:37:45 -0700</delta_ts>
            <desc>v15 - revert unneded change in LLIntOfflineAsmConfig.h</desc>
            <filename>bug-221260-20220609195909.patch</filename>
            <type>text/plain</type>
            <size>321624</size>
            <attacher name="Geza Lore">glore</attacher>
            
              <data encoding="base64">RnJvbSAzNjgyZTU3NTlmMzMyNzQ1OTMwNTA0YWI0YWE5NDY0ODFkOTU2YWMxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHZXphIExvcmUgPGdsb3JlQGlnYWxpYS5jb20+CkRhdGU6IEZy
aSwgMjcgTWF5IDIwMjIgMDg6NDc6MjEgKzAwMDAKU3ViamVjdDogW1BBVENIXSBFbmFibGUgV2Fz
bUxMSW50IG9uIEFSTXY3Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp
bjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpQYXRjaCBi
eSBHZXphIExvcmUgPGdsb3JlQGlnYWxpYS5jb20+IG9uIDIwMjItMDUtMjcKaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTI2MAoKUmV2aWV3ZWQgYnkgU2FhbSBCYXJh
dGkuCgpQYXRjaCBieSBHZXphIExvcmUgYW5kIFhhbiBMw7NwZXouCgpJbXBsZW1lbnQgdGhlIExM
SW50IHRpZXIgb2YgV2ViQXNzZW1ibHkgZm9yIEFSTXY3LiBBIGxvdCBvZiB0aGUKd29yayB3aWxs
IGJlIHNoYXJlZCBieSBhbnkgMzJiaXQgcG9ydCwgYnV0IHRoZSBvZmZsaW5lYXNzZW1ibGVyCmhh
cyBvbmx5IGJlZW4gdXBkYXRlZCBmb3IgQVJNdjcgc28gZmFyLgoKTWFpbiBoaWdobGlnaHRzOgoK
V2UgaGF2ZSBzcGxpdCB0aGUgV2ViQXNzZW1ibHkuYXNtIGZpbGUgaW50byB0aHJlZSBjaHVua3Ms
CmZvbGxvd2luZyB3aGF0IExvd0xldmVsSW50ZXJwcmV0ZXIuYXNtIGRvZXMuIFRoZSBjb21tb24g
Y29kZQpyZW1haW5zIGluIFdlYkFzc2VtYmx5LmFzbSwgYW5kIDMyIGFuZCA2NGJpdCBzcGVjaWZp
YyBjb2RlIChtb3N0bHkKb3Bjb2RlIGltcGxlbWVudGF0aW9ucykgZ29lcyBpbnRvIFdlYkFzc2Vt
Ymx5MzJfNjQuYXNtIGFuZApXZWJBc3NlbWJseTY0LmFzbS4KCldlIGhhdmUgZGVjaWRlZCB0byB1
c2UgY29uc2VjdXRpdmUgZXZlbi9vZGQgcGFpcnMgb2YgR1BScyBmb3IgZXZlcnkKdHlwZSBvZiB3
YXNtIHZhbHVlcywgZXZlbiBpZiB0aGV5IGFyZSAzMmJpdCAoaTMyL2YzMiksIHdpdGggdGhlIG9k
ZAooaGlnaGVyKSBudW1iZXJlZCBHUFIgaG9sZGluZyB0aGUgbW9yZSBzaWduaWZpY2FudCBoYWxm
LiAzMmJpdCB2YWx1ZXMKYXJlIGhlbGQgaW4gdGhlIGV2ZW4gKGxvd2VyKSBudW1iZXJlZCByZWdp
c3Rlci4gVGhpcyBtYWtlcyB0aGUgY29kZQptdWNoIHNpbXBsZXIgYW5kIGFsbG93cyB1cyB0byBz
aGFyZSBtb3JlIGNvZGUgd2l0aCB0aGUgNjRiaXQgdmFyaWFudC4KVGhpcyBpcyBtb3N0bHkgcmVs
ZXZhbnQgZm9yIGFyZ3VtZW50IHBhc3NpbmcsIGFuZCBnaXZlbiB0aGF0IGV2ZXJ5CnZhbHVlIGVu
ZHMgdXAgaW4gdGhlIHN0YWNrIGFueXdheSB3ZSBkbyBub3QgdGhpbmsgaXQgaXMgc2lnbmlmaWNh
bnQKZnJvbSBhIHBlcmZvcm1hbmNlIFBPVi4KCldlIGFyZSByZXVzaW5nIEpTVmFsdWVSZWdzIHRv
IGhvbGQgV2FzbSB2YWx1ZXMgdG9vLiBPYnZpb3VzbHkgdGhleQphcmUgbm90IHJlYWxseSBKU1Zh
bHVlcywgc28gaXQgbWlnaHQgbWFrZSBzZW5zZSB0byBjcmVhdGUgYSBiYXNlCmNsYXNzIHRoYXQg
Y2FuIGJlIHVzZWQgZm9yIGJvdGggSlMgYW5kIFdhc20gdmFsdWVzLgoKV2UgZG8gbm90IGhhdmUg
ZW5vdWdoIHJlZ2lzdGVycyB0byBrZWVwIHRoaW5ncyBsaWtlIHRoZSBtZW1vcnkKYmFzZSBwb2lu
dGVyIGFuZCBzaXplIGluIHBpbm5lZCByZWdpc3RlcnMsIHNvIHdlIGFyZSBmb3JjZWQgdG8KbG9h
ZCB0aGVtIG9uIGVhY2ggdXNlLgoKV2UgZGlzYWJsZSB0aGUgJ1NpZ25hbGluZycgbWVtb3J5IG1v
ZGUsIHNpbmNlIHRoZSBjdXJyZW50CmltcGxlbWVudGF0aW9uIHJlbGllcyBvbiBiZWluZyBhYmxl
IHRvIG1wcm90ZWN0IGEgMl4zMiArIHJlZHpvbmUKcmVnaW9uIG9mIG1lbW9yeS4gVGhpcyBjYW4g
YmUgY2hhbmdlZCBpbiB0aGUgZnV0dXJlIGJ1dCBpdCdzIG5vdCBhCnByaW9yaXR5IGF0IHRoZSBt
b21lbnQuCgoqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5hbWUtc2VjdGlvbi5qczoK
KiBzdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qczoKKiB3YXNtL3JlZ3Jlc3MvbGxpbnQt
Y2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnkuanM6CiogQ01ha2VMaXN0cy50eHQ6CiogYXNz
ZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmg6CihKU0M6OkFSTXY3QXNzZW1ibGVyOjp2Y3Z0X3NpZ25l
ZFRvRmxvYXRpbmdQb2ludCk6CiogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaDoKKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6Y29udmVydEludDMyVG9GbG9hdCk6CihKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNdjc6OnRocmVhZFNhZmVQYXRjaGFibGVOZWFyQ2FsbCk6CihKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNdjc6OmNhbGxPcGVyYXRpb24pOgoqIGIzL0IzVmFsdWVSZXAuaDoKKEpTQzo6
QjM6OlZhbHVlUmVwOjpWYWx1ZVJlcCk6CiogYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwOgoo
SlNDOjpXYXNtOjpCeXRlY29kZUR1bXBlcjo6Zm9ybWF0Q29uc3RhbnQgY29uc3QpOgoqIGludGVy
cHJldGVyL0NhbGxGcmFtZS5oOiBhZGFwdCB0byBuZXcgY2FsbGVlIHRhZ2dpbmcgZm9ybWF0Lgoo
SlNDOjpDYWxsRnJhbWU6OmNhbGxlZSBjb25zdCk6CihKU0M6OkNhbGxGcmFtZTo6dW5zYWZlQ2Fs
bGVlIGNvbnN0KToKKiBpbnRlcnByZXRlci9DYWxsZWVCaXRzLmg6IGFkZCB3YXNtIHRhZ2dpbmcg
b2YgY2FsbGVlIHZhbHVlcyBmb3IKMzJiaXQuCihKU0M6OkNhbGxlZUJpdHM6OkNhbGxlZUJpdHMp
OgooSlNDOjpDYWxsZWVCaXRzOjpvcGVyYXRvcj0pOgooSlNDOjpDYWxsZWVCaXRzOjpib3hXYXNt
KToKKEpTQzo6Q2FsbGVlQml0czo6aXNXYXNtIGNvbnN0KToKKEpTQzo6Q2FsbGVlQml0czo6YXNX
YXNtQ2FsbGVlIGNvbnN0KToKKiBpbnRlcnByZXRlci9SZWdpc3Rlci5oOgooSlNDOjpSZWdpc3Rl
cjo6dW5ib3hlZEZsb2F0IGNvbnN0KToKKEpTQzo6UmVnaXN0ZXI6OmFzYW5VbnNhZmVVbmJveGVk
RmxvYXQgY29uc3QpOgoqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoKKEpTQzo6QXNzZW1ibHlIZWxw
ZXJzOjp1bmJveERvdWJsZSk6Ciogaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmNwcDoKKEpTQzo6
UmVnaXN0ZXJBdE9mZnNldExpc3Q6OlJlZ2lzdGVyQXRPZmZzZXRMaXN0KToKKiBqaXQvUmVnaXN0
ZXJBdE9mZnNldExpc3QuaDoKKEpTQzo6UmVnaXN0ZXJBdE9mZnNldExpc3Q6OnNpemVPZkFyZWFJ
bkJ5dGVzIGNvbnN0KToKKiBqaXQvUmVnaXN0ZXJTZXQuY3BwOgooSlNDOjpSZWdpc3RlclNldDo6
bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKToKKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQu
YXNtOgoqIGxsaW50L1dlYkFzc2VtYmx5LmFzbToKKiBsbGludC9XZWJBc3NlbWJseTMyXzY0LmFz
bTogQWRkZWQuCiogbGxpbnQvV2ViQXNzZW1ibHk2NC5hc206IEFkZGVkLgoqIG9mZmxpbmVhc20v
YXJtLnJiOgoqIG9mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiOgoqIG9mZmxpbmVhc20vcmVnaXN0
ZXJzLnJiOgoqIG9mZmxpbmVhc20vcmlzYy5yYjoKKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKEpT
Qzo6d2FzbVVuYm94ZWRGbG9hdCk6CiogcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oOgooSlND
OjpKU1ZhbHVlOjpKU1ZhbHVlKToKKiB3YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHA6CihKU0M6
Oldhc206OkFpcklSR2VuZXJhdG9yOjp1c2VTaWduYWxpbmdNZW1vcnkgY29uc3QpOgooSlNDOjpX
YXNtOjpBaXJJUkdlbmVyYXRvcjo6QWlySVJHZW5lcmF0b3IpOgooSlNDOjpXYXNtOjpBaXJJUkdl
bmVyYXRvcjo6ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIpOgooSlNDOjpXYXNtOjpBaXJJUkdl
bmVyYXRvcjo6YWRkQ2FsbCk6Ciogd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHA6CihKU0M6Oldh
c206OkIzSVJHZW5lcmF0b3I6OnVzZVNpZ25hbGluZ01lbW9yeSBjb25zdCk6CihKU0M6Oldhc206
OkIzSVJHZW5lcmF0b3I6OkIzSVJHZW5lcmF0b3IpOgooSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9y
OjphZGRBcmd1bWVudHMpOgooSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjplbWl0Q2hlY2tBbmRQ
cmVwYXJlUG9pbnRlcik6CihKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6Om1lbW9yeUtpbmQpOgoo
SlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjphZGRDYWxsKToKKiB3YXNtL1dhc21CaW5kaW5nLmNw
cDoKKEpTQzo6V2FzbTo6d2FzbVRvV2FzbSk6Ciogd2FzbS9XYXNtQ2FsbGVlLmNwcDoKKEpTQzo6
V2FzbTo6TExJbnRDYWxsZWU6OmNhbGxlZVNhdmVSZWdpc3RlcnMpOgoqIHdhc20vV2FzbUNhbGxl
ZUdyb3VwLmNwcDoKKEpTQzo6V2FzbTo6Q2FsbGVlR3JvdXA6OmlzU2FmZVRvUnVuKToKKiB3YXNt
L1dhc21DYWxsaW5nQ29udmVudGlvbi5jcHA6CihKU0M6Oldhc206OmpzQ2FsbGluZ0NvbnZlbnRp
b24pOgooSlNDOjpXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24pOgoqIHdhc20vV2FzbUNhbGxp
bmdDb252ZW50aW9uLmg6CihKU0M6Oldhc206OkNhbGxJbmZvcm1hdGlvbjo6Y29tcHV0ZVJlc3Vs
dHNPZmZzZXRMaXN0KToKKEpTQzo6V2FzbTo6V2FzbUNhbGxpbmdDb252ZW50aW9uOjpXYXNtQ2Fs
bGluZ0NvbnZlbnRpb24pOgooSlNDOjpXYXNtOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNo
YWxsTG9jYXRpb25JbXBsIGNvbnN0KToKKEpTQzo6V2FzbTo6V2FzbUNhbGxpbmdDb252ZW50aW9u
OjptYXJzaGFsbExvY2F0aW9uIGNvbnN0KToKKEpTQzo6V2FzbTo6SlNDYWxsaW5nQ29udmVudGlv
bjo6SlNDYWxsaW5nQ29udmVudGlvbik6CihKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246
Om1hcnNoYWxsTG9jYXRpb25JbXBsIGNvbnN0KToKKEpTQzo6V2FzbTo6SlNDYWxsaW5nQ29udmVu
dGlvbjo6bWFyc2hhbGxMb2NhdGlvbiBjb25zdCk6CihKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZl
bnRpb246OmNhbGxJbmZvcm1hdGlvbkZvciBjb25zdCk6Ciogd2FzbS9XYXNtRm9ybWF0Lmg6Ciog
d2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwOgooSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6SW5kZXhP
ck5hbWUpOgooSlNDOjpXYXNtOjptYWtlU3RyaW5nKToKKiB3YXNtL1dhc21JbmRleE9yTmFtZS5o
OgooSlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6SW5kZXhPck5hbWUpOgooSlNDOjpXYXNtOjpJbmRl
eE9yTmFtZTo6aXNFbXB0eSBjb25zdCk6CihKU0M6Oldhc206OkluZGV4T3JOYW1lOjppc0luZGV4
IGNvbnN0KToKKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OmlzTmFtZSBjb25zdCk6CihKU0M6Oldh
c206OkluZGV4T3JOYW1lOjppbmRleCBjb25zdCk6CihKU0M6Oldhc206OkluZGV4T3JOYW1lOjpu
YW1lIGNvbnN0KToKKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6Om5hbWVTZWN0aW9uIGNvbnN0KToK
KiB3YXNtL1dhc21JbnN0YW5jZS5oOgooSlNDOjpXYXNtOjpJbnN0YW5jZTo6dXBkYXRlQ2FjaGVk
TWVtb3J5KToKKiB3YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHA6CihKU0M6Oldhc206OkxMSW50
R2VuZXJhdG9yOjp2aXJ0dWFsUmVnaXN0ZXJGb3JXYXNtTG9jYWwpOgooSlNDOjpXYXNtOjpMTElu
dEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVyKToKKEpTQzo6V2FzbTo6TExJbnRH
ZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvckNhbGxlZSk6CihKU0M6Oldhc206OkxMSW50R2Vu
ZXJhdG9yOjphZGRBcmd1bWVudHMpOgooSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6YWRkTG9v
cCk6Ciogd2FzbS9XYXNtTExJbnRQbGFuLmNwcDoKKEpTQzo6V2FzbTo6TExJbnRQbGFuOjpkaWRD
b21wbGV0ZUNvbXBpbGF0aW9uKToKKiB3YXNtL1dhc21NZW1vcnkuY3BwOgooSlNDOjpXYXNtOjpN
ZW1vcnlIYW5kbGU6On5NZW1vcnlIYW5kbGUpOgooSlNDOjpXYXNtOjpNZW1vcnk6OnRyeUNyZWF0
ZSk6CihKU0M6Oldhc206Ok1lbW9yeTo6Z3Jvd1NoYXJlZCk6CihKU0M6Oldhc206Ok1lbW9yeTo6
Z3Jvdyk6CihKU0M6Oldhc206Ok1lbW9yeTo6Y29weSk6Ciogd2FzbS9XYXNtTWVtb3J5Lmg6Ciog
d2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwOgooSlNDOjpXYXNtOjpQaW5uZWRSZWdpc3Rl
ckluZm86OmdldCk6Ciogd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uaDoKKEpTQzo6V2FzbTo6
UGlubmVkUmVnaXN0ZXJJbmZvOjp0b1NhdmUgY29uc3QpOgoqIHdhc20vV2FzbU1lbW9yeU1vZGUu
Y3BwOgooSlNDOjpXYXNtOjptYWtlU3RyaW5nKToKKiB3YXNtL1dhc21NZW1vcnlNb2RlLmg6Ciog
d2FzbS9XYXNtT3Bjb2RlT3JpZ2luLmNwcDoKKiB3YXNtL1dhc21PcGNvZGVPcmlnaW4uaDoKKiB3
YXNtL1dhc21PcGVyYXRpb25zLmNwcDoKKEpTQzo6V2FzbTo6SlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKToKKiB3YXNtL1dhc21PcGVyYXRpb25zLmg6Ciogd2FzbS9XYXNtUGFnZUNvdW50Lmg6Ciog
d2FzbS9XYXNtUGFyc2VyLmg6CihKU0M6Oldhc206OlBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNl
VUludDMyKToKKEpTQzo6V2FzbTo6UGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VVSW50NjQpOgoq
IHdhc20vV2FzbVNsb3dQYXRocy5jcHA6CihKU0M6OkxMSW50OjpXQVNNX1NMT1dfUEFUSF9ERUNM
KToKKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX3BvcGNvdW50KToKKEpTQzo6TExJbnQ6OnNs
b3dfcGF0aF93YXNtX3BvcGNvdW50bGwpOgooSlNDOjpMTEludDo6c2xvd19wYXRoX3dhc21faTMy
X2Rpdl9zKToKKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2kzMl9kaXZfdSk6CihKU0M6OkxM
SW50OjpzbG93X3BhdGhfd2FzbV9pMzJfcmVtX3MpOgooSlNDOjpMTEludDo6c2xvd19wYXRoX3dh
c21faTMyX3JlbV91KToKKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2k2NF9kaXZfcyk6CihK
U0M6OkxMSW50OjpzbG93X3BhdGhfd2FzbV9pNjRfZGl2X3UpOgooSlNDOjpMTEludDo6c2xvd19w
YXRoX3dhc21faTY0X3JlbV9zKToKKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF93YXNtX2k2NF9yZW1f
dSk6Ciogd2FzbS9XYXNtU2xvd1BhdGhzLmg6Ciogd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5jcHA6
CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmR1bXAgY29uc3QpOgooV1RGOjpwcmludEludGVy
bmFsKToKKiB3YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmg6CihKU0M6Oldhc206OlZhbHVlTG9jYXRp
b246OlZhbHVlTG9jYXRpb24pOgooSlNDOjpXYXNtOjpWYWx1ZUxvY2F0aW9uOjppc0dQUiBjb25z
dCk6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmlzRlBSIGNvbnN0KToKKEpTQzo6V2FzbTo6
VmFsdWVMb2NhdGlvbjo6aXNTdGFjayBjb25zdCk6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246
OmlzU3RhY2tBcmd1bWVudCBjb25zdCk6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmpzciBj
b25zdCk6CihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246OmZwciBjb25zdCk6CihKU0M6Oldhc206
OlZhbHVlTG9jYXRpb246OnJlZyk6IERlbGV0ZWQuCihKU0M6Oldhc206OlZhbHVlTG9jYXRpb246
OmlzUmVnIGNvbnN0KTogRGVsZXRlZC4KKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6cmVnIGNv
bnN0KTogRGVsZXRlZC4KKEpTQzo6V2FzbTo6VmFsdWVMb2NhdGlvbjo6Z3ByIGNvbnN0KTogRGVs
ZXRlZC4KKiB3YXNtL2pzL0pTVG9XYXNtLmNwcDoKKEpTQzo6V2FzbTo6bWFyc2hhbGxKU1Jlc3Vs
dCk6CihKU0M6Oldhc206OmNyZWF0ZUpTVG9XYXNtV3JhcHBlcik6Ciogd2FzbS9qcy9XYXNtVG9K
Uy5jcHA6CihKU0M6Oldhc206Ondhc21Ub0pTKToKKiB3YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rp
b24uY3BwOgooSlNDOjpXZWJBc3NlbWJseUZ1bmN0aW9uOjpwcmV2aW91c0luc3RhbmNlT2Zmc2V0
IGNvbnN0KToKKEpTQzo6V2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3cp
OgoqIHdhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHA6CihKU0M6OkpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTik6Ciogd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5j
cHA6CihKU0M6OldlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjppbml0aWFsaXplRXhwb3J0cyk6Ciog
d3RmL1BsYXRmb3JtRW5hYmxlLmg6IGVuYWJsZSBXZWJBc3NlbWJseSBvbiBBUk12Ny4KKiBTY3Jp
cHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzOiBhbGxvdyB0byBydW4gdGhlIHdhc20gdGVzdHMgb24K
YXJtdjcgZXZlbiB3aXRob3V0IGppdCBzdXBwb3J0IChmb3Igbm93KS4KLS0tCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgICAgICAgICAgfCAgICAyICsKIC4uLi9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICB8ICAgIDQgKwogLi4uL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oIHwgICAgNCArLQogLi4uL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggICAgICAgICAgIHwgICAyMCArCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oICAgICAgICAgfCAgICA4ICstCiAuLi4vYnl0ZWNvZGUv
Qnl0ZWNvZGVEdW1wZXIuY3BwICAgICAgICAgICAgICAgfCAgICAyICstCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmggfCAgICA0ICstCiAuLi4vSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvQ2FsbGVlQml0cy5oICAgfCAgIDM1ICstCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaCAgfCAgIDE2ICsKIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggICB8ICAgIDUgKy0KIC4uLi9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyMzJfNjQuYXNtICAgICAgICB8ICAgMTYgKwogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5LmFzbSAgIHwgMTUxOSArKystLS0tLS0tLS0tLS0tLQog
Li4uL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5MzJfNjQuYXNtIHwgMTEyOSArKysr
KysrKysrKysKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseTY0LmFzbSB8
IDEyNTkgKysrKysrKysrKysrKysKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2Fy
bS5yYiAgICAgICB8ICAyODEgKystCiAuLi4vSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0
cnVjdGlvbnMucmIgfCAgIDE3ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9y
ZWdpc3RlcnMucmIgfCAgICAzICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9y
aXNjLnJiICAgICAgfCAgICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NK
U1ZhbHVlLmggICAgfCAgIDE4ICstCiAuLi4vcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oICAg
ICAgICAgICAgICAgfCAgICA3ICsKIC4uLi93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAgICAg
ICAgICAgICAgICB8ICAgMTUgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2Vu
ZXJhdG9yLmNwcCB8ICAgMjkgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5k
aW5nLmNwcCAgICB8ICAgMTggKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxs
ZWUuY3BwICAgICB8ICAgIDUgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWVH
cm91cC5jcHAgICB8ICAgIDQgKwogLi4uL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmNwcCAg
ICAgICAgICAgIHwgICAzOCArLQogLi4uL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmggICAg
ICAgICAgICAgIHwgICA0MSArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1h
dC5oICAgICAgIHwgICAgMiArCiAuLi4vSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5h
bWUuY3BwICAgfCAgIDI3ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhP
ck5hbWUuaCAgfCAgIDcyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFu
Y2UuaCAgICAgfCAgIDE4ICstCiAuLi4vd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwICAgICAg
ICAgICAgICAgfCAgIDEwICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQ
bGFuLmNwcCAgfCAgICA3ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5
LmNwcCAgICAgfCAgIDU4ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5
LmggICAgICAgfCAgICA1ICstCiAuLi4vd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwICAg
ICAgICAgICAgfCAgICA3ICsKIC4uLi93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5oICAgICAg
ICAgICAgICB8ICAgIDUgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlN
b2RlLmNwcCB8ICAgIDIgKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1v
ZGUuaCAgIHwgICAgMiArCiAuLi4vSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3JpZ2lu
LmNwcCAgfCAgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bjb2RlT3Jp
Z2luLmggfCAgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9u
cy5jcHAgfCAgIDU0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9u
cy5oICAgfCAgIDE1ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFnZUNvdW50
LmggICAgfCAgICA3ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmgg
ICAgICAgfCAgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhz
LmNwcCAgfCAgMjMwICsrLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRo
cy5oICAgIHwgICAzNCArCiAuLi4vSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlv
bi5jcHAgfCAgIDE0ICstCiAuLi4vSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlv
bi5oICAgfCAgIDQ0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5j
cHAgICAgfCAgMTg0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5j
cHAgICAgfCAgMTQ4ICstCiAuLi4vd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcCAgICAg
ICAgICAgfCAgMTUyICstCiAuLi4vd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbENvbnN0cnVjdG9y
LmNwcCAgfCAgICAyICstCiAuLi4vd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAg
ICAgICAgfCAgICAyICstCiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oICAgICAgICAg
ICAgICAgfCAgICA2ICstCiBUb29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzICAgICAg
ICAgICAgfCAgIDU0ICstCiAuLi4vc2FtcGxpbmctcHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24u
anMgICAgfCAgICA1ICsKIEpTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanMg
ICAgICB8ICAgIDEgKwogLi4uL3NoYXJlZC13YXNtLW1lbW9yeS13aXRoLXplcm8tYnl0ZS5qcyAg
ICAgIHwgICAgMiArCiAuLi4vbGxpbnQtY2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnkuanMg
ICAgfCAgICAxICsKIEpTVGVzdHMvd2FzbS9zdHJlc3Mvc2hhcmVkLW1lbW9yeS1lcnJvcnMuanMg
ICB8ICAgIDIgKwogLi4uL3dhc20vc3RyZXNzL3NoYXJlZC13YXNtLW1lbW9yeS1idWZmZXIuanMg
IHwgICAgMiArCiA2MiBmaWxlcyBjaGFuZ2VkLCA0MDIyIGluc2VydGlvbnMoKyksIDE2NjkgZGVs
ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L1dlYkFzc2VtYmx5MzJfNjQuYXNtCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5NjQuYXNtCgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IGJiNGFkMDFlNDI2Mi4uMGFhNmJiYzI2M2RjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMDAsNiArMjAwLDggQEAgc2V0KExMSU5UX0FTTQogICAg
IGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KICAgICBsbGludC9Mb3dMZXZlbElu
dGVycHJldGVyNjQuYXNtCiAgICAgbGxpbnQvV2ViQXNzZW1ibHkuYXNtCisgICAgbGxpbnQvV2Vi
QXNzZW1ibHkzMl82NC5hc20KKyAgICBsbGludC9XZWJBc3NlbWJseTY0LmFzbQogKQogCiBzZXQo
T0ZGTElORV9BU00KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjM1MzkzYzA5Yjc0
Li44NTVlZDM5MjQzOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NzMyLDYg
KzU3MzIsOCBAQAogCQlGRTlGQTdDNDI3M0M4QjI2MDA1RDlFNzAgLyogRGVmZXJHQ0lubGluZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVmZXJHQ0lubGluZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVBMDg2MUUxODJCN0EwNDAwRjZEODUxIC8qIEJy
ZWFrcG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQnJlYWtwb2ludC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUEwODYxRjE4MkI3QTA0MDBGNkQ4NTEg
LyogRGVidWdnZXJQcmltaXRpdmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERlYnVnZ2VyUHJpbWl0aXZlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRUEy
MTY4ODI4NTAwNzYyMDAyQjM2NjIgLyogV2ViQXNzZW1ibHk2NC5hc20gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmFzbS5hc207IG5h
bWUgPSBXZWJBc3NlbWJseTY0LmFzbTsgcGF0aCA9IGxsaW50L1dlYkFzc2VtYmx5NjQuYXNtOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRUEyMTY4OTI4NTAwN0UzMDAyQjM2NjIgLyog
V2ViQXNzZW1ibHkzMl82NC5hc20gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmFzbS5hc207IG5hbWUgPSBXZWJBc3NlbWJseTMyXzY0
LmFzbTsgcGF0aCA9IGxsaW50L1dlYkFzc2VtYmx5MzJfNjQuYXNtOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGRUEzQkJBNzIxMkI2NTU4MDBFOTNBRDEgLyogQ2FsbEZyYW1lSW5saW5l
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWxsRnJhbWVJbmxpbmVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFQTNCQkFCMjEyQzk3Q0IwMEU5M0FEMSAv
KiBERkdDRkcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHQ0ZHLmg7IHBh
dGggPSBkZmcvREZHQ0ZHLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFQjEzNzU2
MUJCMTFFRUUwMENENTEwMCAvKiBNYWNyb0Fzc2VtYmxlckFSTTY0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hY3JvQXNzZW1ibGVyQVJNNjQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjAyNyw2ICs2MDI5LDggQEAKIAkJCQk4NkEwNTQ0NzE1
NTY0NTFCMDA0NDUxNTcgLyogTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbSAqLywKIAkJCQk4
NkEwNTQ0ODE1NTY0NTFCMDA0NDUxNTcgLyogTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSAqLywK
IAkJCQlGRTAwMjYyMjIzRjNBRjMzMDAzQTM1OEYgLyogV2ViQXNzZW1ibHkuYXNtICovLAorCQkJ
CUZFQTIxNjg4Mjg1MDA3NjIwMDJCMzY2MiAvKiBXZWJBc3NlbWJseTY0LmFzbSAqLywKKwkJCQlG
RUEyMTY4OTI4NTAwN0UzMDAyQjM2NjIgLyogV2ViQXNzZW1ibHkzMl82NC5hc20gKi8sCiAJCQkp
OwogCQkJbmFtZSA9IGxsaW50OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAppbmRleCA5Y2E2
YTRhNmM4NDEuLjZjNzZlNGVmNTIzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaApAQCAtMTk5MSwxMCArMTk5MSwxMCBAQCBwdWJsaWM6
CiAgICAgICAgIG1fZm9ybWF0dGVyLnZmcE9wKE9QX1ZDTVAsIE9QX1ZDTVBiLCB0cnVlLCBWRlBP
cGVyYW5kKDUpLCByZCwgVkZQT3BlcmFuZCgwKSk7CiAgICAgfQogCi0gICAgdm9pZCB2Y3Z0X3Np
Z25lZFRvRmxvYXRpbmdQb2ludChGUERvdWJsZVJlZ2lzdGVySUQgcmQsIEZQU2luZ2xlUmVnaXN0
ZXJJRCBybSkKKyAgICB2b2lkIHZjdnRfc2lnbmVkVG9GbG9hdGluZ1BvaW50KEZQRG91YmxlUmVn
aXN0ZXJJRCByZCwgRlBTaW5nbGVSZWdpc3RlcklEIHJtLCBib29sIHRvRG91YmxlID0gdHJ1ZSkK
ICAgICB7CiAgICAgICAgIC8vIGJvb2xlYW4gdmFsdWVzIGFyZSA2NGJpdCAodG9JbnQsIHVuc2ln
bmVkLCByb3VuZFplcm8pCi0gICAgICAgIG1fZm9ybWF0dGVyLnZmcE9wKE9QX1ZDVlRfRlBJVkZQ
LCBPUF9WQ1ZUX0ZQSVZGUGIsIHRydWUsIHZjdnRPcChmYWxzZSwgZmFsc2UsIGZhbHNlKSwgcmQs
IHJtKTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudmZwT3AoT1BfVkNWVF9GUElWRlAsIE9QX1ZDVlRf
RlBJVkZQYiwgdG9Eb3VibGUsIHZjdnRPcChmYWxzZSwgZmFsc2UsIGZhbHNlKSwgcmQsIHJtKTsK
ICAgICB9CiAKICAgICB2b2lkIHZjdnRfZmxvYXRpbmdQb2ludFRvU2lnbmVkKEZQU2luZ2xlUmVn
aXN0ZXJJRCByZCwgRlBEb3VibGVSZWdpc3RlcklEIHJtKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRleCA0MmI4YTQ4
Y2RkMjIuLjAwYjhlZDY4OTFlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKQEAgLTE0NjcsNiArMTQ2NywxMiBAQCBw
dWJsaWM6CiAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCisgICAgdm9pZCBjb252ZXJ0SW50MzJU
b0Zsb2F0KFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAg
IG1fYXNzZW1ibGVyLnZtb3YoZnBUZW1wUmVnaXN0ZXIsIHNyYywgc3JjKTsKKyAgICAgICAgbV9h
c3NlbWJsZXIudmN2dF9zaWduZWRUb0Zsb2F0aW5nUG9pbnQoZGVzdCwgZnBUZW1wUmVnaXN0ZXJB
c1NpbmdsZSgpLCAvKiB0b0RvdWJsZTogKi8gZmFsc2UpOworICAgIH0KKwogICAgIHZvaWQgY29u
dmVydEludDMyVG9Eb3VibGUoUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAg
IHsKICAgICAgICAgbV9hc3NlbWJsZXIudm1vdihmcFRlbXBSZWdpc3Rlciwgc3JjLCBzcmMpOwpA
QCAtMjI5OCw2ICsyMzA0LDE0IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIENhbGwobV9hc3Nl
bWJsZXIuYigpLCBDYWxsOjpMaW5rYWJsZU5lYXJUYWlsKTsKICAgICB9CiAKKyAgICAvLyBGSVhN
RTogd2h5IGlzIHRoaXMgdGhlIHNhbWUgdGhhbiBuZWFyQ2FsbCgpIGluIEFSTTY0PyBpcyBpdCBy
aWdodD8KKyAgICBBTFdBWVNfSU5MSU5FIENhbGwgdGhyZWFkU2FmZVBhdGNoYWJsZU5lYXJDYWxs
KCkKKyAgICB7CisgICAgICAgIGludmFsaWRhdGVBbGxUZW1wUmVnaXN0ZXJzKCk7CisgICAgICAg
IG1vdmVGaXhlZFdpZHRoRW5jb2RpbmcoVHJ1c3RlZEltbTMyKDApLCBkYXRhVGVtcFJlZ2lzdGVy
KTsKKyAgICAgICAgcmV0dXJuIENhbGwobV9hc3NlbWJsZXIuYmx4KGRhdGFUZW1wUmVnaXN0ZXIp
LCBDYWxsOjpMaW5rYWJsZU5lYXIpOworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUgQ2FsbCBj
YWxsKFB0clRhZykKICAgICB7CiAgICAgICAgIG1vdmVGaXhlZFdpZHRoRW5jb2RpbmcoVHJ1c3Rl
ZEltbTMyKDApLCBkYXRhVGVtcFJlZ2lzdGVyKTsKQEAgLTIzMjIsNiArMjMzNiwxMiBAQCBwdWJs
aWM6CiAgICAgQUxXQVlTX0lOTElORSBDYWxsIGNhbGwoUmVnaXN0ZXJJRCB0YXJnZXQsIFJlZ2lz
dGVySUQgY2FsbFRhZykgeyByZXR1cm4gVU5VU0VEX1BBUkFNKGNhbGxUYWcpLCBjYWxsKHRhcmdl
dCwgTm9QdHJUYWcpOyB9CiAgICAgQUxXQVlTX0lOTElORSBDYWxsIGNhbGwoQWRkcmVzcyBhZGRy
ZXNzLCBSZWdpc3RlcklEIGNhbGxUYWcpIHsgcmV0dXJuIFVOVVNFRF9QQVJBTShjYWxsVGFnKSwg
Y2FsbChhZGRyZXNzLCBOb1B0clRhZyk7IH0KIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBjYWxs
T3BlcmF0aW9uKGNvbnN0IEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4gb3BlcmF0aW9uKQor
ICAgIHsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKG9wZXJhdGlvbi5leGVjdXRhYmxlQWRk
cmVzcygpKSwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7CisgICAgICAgIGNhbGwoYWRkcmVzc1RlbXBS
ZWdpc3RlciwgT3BlcmF0aW9uUHRyVGFnKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZv
aWQgcmV0KCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmJ4KGxpbmtSZWdpc3Rlcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAuaAppbmRleCAxNTdiYzg4NjgyMzEuLjc2OTM4
YzZmZWNhYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oCkBAIC0xMjYsOSAr
MTI2LDEzIEBAIHB1YmxpYzoKICAgICBWYWx1ZVJlcChXYXNtOjpWYWx1ZUxvY2F0aW9uIGxvY2F0
aW9uKQogICAgIHsKICAgICAgICAgc3dpdGNoIChsb2NhdGlvbi5raW5kKCkpIHsKLSAgICAgICAg
Y2FzZSBXYXNtOjpWYWx1ZUxvY2F0aW9uOjpLaW5kOjpSZWdpc3RlcjoKKyAgICAgICAgY2FzZSBX
YXNtOjpWYWx1ZUxvY2F0aW9uOjpLaW5kOjpHUFJSZWdpc3RlcjoKICAgICAgICAgICAgIG1fa2lu
ZCA9IFJlZ2lzdGVyOwotICAgICAgICAgICAgdS5yZWcgPSBsb2NhdGlvbi5yZWcoKTsKKyAgICAg
ICAgICAgIHUucmVnID0gbG9jYXRpb24uanNyKCkucGF5bG9hZEdQUigpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgV2FzbTo6VmFsdWVMb2NhdGlvbjo6S2luZDo6RlBSUmVnaXN0
ZXI6CisgICAgICAgICAgICBtX2tpbmQgPSBSZWdpc3RlcjsKKyAgICAgICAgICAgIHUucmVnID0g
bG9jYXRpb24uZnByKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXYXNtOjpW
YWx1ZUxvY2F0aW9uOjpLaW5kOjpTdGFjazoKICAgICAgICAgICAgIG1fa2luZCA9IFN0YWNrOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVy
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAK
aW5kZXggZDU0Yzc0ZmM2M2M2Li43YjNmNWZjOWZiMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcApAQCAtNDEzLDcgKzQxMyw3IEBA
IENTdHJpbmcgQnl0ZWNvZGVEdW1wZXI6OmZvcm1hdENvbnN0YW50KFR5cGUgdHlwZSwgdWludDY0
X3QgY29uc3RhbnQpIGNvbnN0CiAgICAgICAgIGlmIChpc0Z1bmNyZWYodHlwZSkgfHwgaXNFeHRl
cm5yZWYodHlwZSkpIHsKICAgICAgICAgICAgIGlmIChKU1ZhbHVlOjpkZWNvZGUoY29uc3RhbnQp
ID09IGpzTnVsbCgpKQogICAgICAgICAgICAgICAgIHJldHVybiAibnVsbCI7Ci0gICAgICAgICAg
ICByZXR1cm4gdG9DU3RyaW5nKFJhd1BvaW50ZXIoYml0d2lzZV9jYXN0PHZvaWQqPihjb25zdGFu
dCkpKTsKKyAgICAgICAgICAgIHJldHVybiB0b0NTdHJpbmcoUmF3UG9pbnRlcihiaXR3aXNlX2Nh
c3Q8dm9pZCo+KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oY29uc3RhbnQpKSkpOwogICAgICAgICB9
CiAKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAppbmRleCA4ZjUzYzMzZTRiMWIuLjBl
NDBkZWRmODAwOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0NhbGxGcmFtZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxs
RnJhbWUuaApAQCAtMTY3LDggKzE2Nyw4IEBAIG5hbWVzcGFjZSBKU0MgIHsKICAgICAgICAgLy8g
dG8gc2VlIGlmIGl0J3MgYSBjZWxsLCBhbmQgaWYgaXQncyBub3QsIHdlIHRocm93IGFuIGV4Y2Vw
dGlvbi4KICAgICAgICAgaW5saW5lIEpTVmFsdWUgZ3VhcmFudGVlZEpTVmFsdWVDYWxsZWUoKSBj
b25zdDsKICAgICAgICAgaW5saW5lIEpTT2JqZWN0KiBqc0NhbGxlZSgpIGNvbnN0OwotICAgICAg
ICBDYWxsZWVCaXRzIGNhbGxlZSgpIGNvbnN0IHsgcmV0dXJuIENhbGxlZUJpdHModGhpc1tzdGF0
aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSldLnBvaW50ZXIoKSk7IH0KLSAgICAg
ICAgU1VQUFJFU1NfQVNBTiBDYWxsZWVCaXRzIHVuc2FmZUNhbGxlZSgpIGNvbnN0IHsgcmV0dXJu
IENhbGxlZUJpdHModGhpc1tzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSld
LmFzYW5VbnNhZmVQb2ludGVyKCkpOyB9CisgICAgICAgIENhbGxlZUJpdHMgY2FsbGVlKCkgY29u
c3QgeyByZXR1cm4gQ2FsbGVlQml0cyh0aGlzW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xv
dDo6Y2FsbGVlKV0udW5ib3hlZEludDY0KCkpOyB9CisgICAgICAgIFNVUFBSRVNTX0FTQU4gQ2Fs
bGVlQml0cyB1bnNhZmVDYWxsZWUoKSBjb25zdCB7IHJldHVybiBDYWxsZWVCaXRzKHRoaXNbc3Rh
dGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXS5hc2FuVW5zYWZlVW5ib3hlZElu
dDY0KCkpOyB9CiAgICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrKCkgY29uc3Q7CiAgICAgICAg
IENvZGVCbG9jayoqIGFkZHJlc3NPZkNvZGVCbG9jaygpIGNvbnN0IHsgcmV0dXJuIGJpdHdpc2Vf
Y2FzdDxDb2RlQmxvY2sqKj4odGhpcyArIHN0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6
Y29kZUJsb2NrKSk7IH0KICAgICAgICAgaW5saW5lIFNVUFBSRVNTX0FTQU4gQ29kZUJsb2NrKiB1
bnNhZmVDb2RlQmxvY2soKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvQ2FsbGVlQml0cy5oCmluZGV4IDE4YmI3ZWY3ZmE4Yy4uZGVhM2FlNTU4MTYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbGVlQml0cy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmgKQEAgLTM5
LDExICszOSwyMSBAQCBjbGFzcyBKU0NlbGw7CiBjbGFzcyBDYWxsZWVCaXRzIHsKIHB1YmxpYzoK
ICAgICBDYWxsZWVCaXRzKCkgPSBkZWZhdWx0OwotICAgIENhbGxlZUJpdHModm9pZCogcHRyKSA6
IG1fcHRyKHB0cikgeyB9IAorICAgIENhbGxlZUJpdHMoaW50NjRfdCB2YWx1ZSkKKyNpZiBVU0Uo
SlNWQUxVRTY0KQorICAgICAgICA6IG1fcHRyIHsgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odmFs
dWUpIH0KKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIDogbV9wdHIgeyByZWludGVy
cHJldF9jYXN0PHZvaWQqPihKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLnBheWxvYWQoKSkgfQorICAg
ICAgICAsIG1fdGFnIHsgSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKS50YWcoKSB9CisjZW5kaWYKKyAg
ICB7IH0KIAogICAgIENhbGxlZUJpdHMmIG9wZXJhdG9yPShKU0NlbGwqIGNlbGwpCiAgICAgewog
ICAgICAgICBtX3B0ciA9IGNlbGw7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgbV90
YWcgPSBKU1ZhbHVlOjpDZWxsVGFnOworI2VuZGlmCiAgICAgICAgIEFTU0VSVChpc0NlbGwoKSk7
CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CkBAIC01MSwxOCArNjEsMjQgQEAgcHVibGlj
OgogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICBzdGF0aWMgdm9pZCogYm94V2FzbShXYXNt
OjpDYWxsZWUqIGNhbGxlZSkKICAgICB7Ci0gICAgICAgIENhbGxlZUJpdHMgcmVzdWx0KHJlaW50
ZXJwcmV0X2Nhc3Q8dm9pZCo+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihjYWxsZWUpIHwg
SlNWYWx1ZTo6V2FzbVRhZykpOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIENhbGxlZUJp
dHMgcmVzdWx0IHsgcmVpbnRlcnByZXRfY2FzdDxpbnQ2NF90PihjYWxsZWUpIHwgSlNWYWx1ZTo6
V2FzbVRhZyB9OwogICAgICAgICBBU1NFUlQocmVzdWx0LmlzV2FzbSgpKTsKICAgICAgICAgcmV0
dXJuIHJlc3VsdC5yYXdQdHIoKTsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJl
dHVybiBjYWxsZWU7IC8vIFRoZSBwb2ludGVyIGlzIGFzIGlzLCBidXQgdGhlIGNvcnJlc3BvbmRp
bmcgdGFnIGZpZWxkIG5lZWRzIHRvIGJlIHNldCB0byBXYXNtVGFnIHNlcGFyYXRlbHkuCisjZW5k
aWYKICAgICB9CiAjZW5kaWYKIAogICAgIGJvb2wgaXNXYXNtKCkgY29uc3QKICAgICB7Ci0jaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKQotICAgICAgICByZXR1cm4gKHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dHB0cl90PihtX3B0cikgJiBKU1ZhbHVlOjpXYXNtTWFzaykgPT0gSlNWYWx1ZTo6V2FzbVRhZzsK
LSNlbHNlCisjaWYgIUVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwor
I2VsaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgcmV0dXJuIChyZWludGVycHJldF9jYXN0PHVp
bnRwdHJfdD4obV9wdHIpICYgSlNWYWx1ZTo6V2FzbU1hc2spID09IEpTVmFsdWU6Oldhc21UYWc7
CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4gbV90YWcgPT0gSlNWYWx1
ZTo6V2FzbVRhZzsKICNlbmRpZgogICAgIH0KICAgICBib29sIGlzQ2VsbCgpIGNvbnN0IHsgcmV0
dXJuICFpc1dhc20oKTsgfQpAQCAtNzcsMTQgKzkzLDIxIEBAIHB1YmxpYzoKICAgICBXYXNtOjpD
YWxsZWUqIGFzV2FzbUNhbGxlZSgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQoaXNXYXNt
KCkpOworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0
PFdhc206OkNhbGxlZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtX3B0cikgJiB+SlNW
YWx1ZTo6V2FzbVRhZyk7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4g
cmVpbnRlcnByZXRfY2FzdDxXYXNtOjpDYWxsZWUqPihtX3B0cik7CisjZW5kaWYKICAgICB9CiAj
ZW5kaWYKIAogICAgIHZvaWQqIHJhd1B0cigpIGNvbnN0IHsgcmV0dXJuIG1fcHRyOyB9Ci0gICAg
CisKIHByaXZhdGU6CiAgICAgdm9pZCogbV9wdHIgeyBudWxscHRyIH07CisjaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICB1aW50MzJfdCBtX3RhZyB7IEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcgfTsK
KyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oCmluZGV4IGQ4NzljOTBiZTMxMS4uNDYxODEzYzQxZDMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0ZXIu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaApAQCAt
NzIsNiArNzIsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGludDY0X3QgdW5ib3hlZElu
dDY0KCkgY29uc3Q7CiAgICAgICAgIGludDY0X3QgYXNhblVuc2FmZVVuYm94ZWRJbnQ2NCgpIGNv
bnN0OwogICAgICAgICBib29sIHVuYm94ZWRCb29sZWFuKCkgY29uc3Q7CisjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZKSAmJiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICBmbG9hdCB1bmJveGVkRmxv
YXQoKSBjb25zdDsKKyAgICAgICAgZmxvYXQgYXNhblVuc2FmZVVuYm94ZWRGbG9hdCgpIGNvbnN0
OworI2VuZGlmCiAgICAgICAgIGRvdWJsZSB1bmJveGVkRG91YmxlKCkgY29uc3Q7CiAgICAgICAg
IGRvdWJsZSBhc2FuVW5zYWZlVW5ib3hlZERvdWJsZSgpIGNvbnN0OwogICAgICAgICBKU0NlbGwq
IHVuYm94ZWRDZWxsKCkgY29uc3Q7CkBAIC0xODgsNiArMTkyLDE4IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICByZXR1cm4gISFwYXlsb2FkKCk7CiAgICAgfQogCisjaWYgRU5BQkxFKFdFQkFT
U0VNQkxZKSAmJiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIEFMV0FZU19JTkxJTkUgZmxvYXQgUmVn
aXN0ZXI6OnVuYm94ZWRGbG9hdCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gYml0d2lz
ZV9jYXN0PGZsb2F0PihwYXlsb2FkKCkpOworICAgIH0KKworICAgIFNVUFBSRVNTX0FTQU4gQUxX
QVlTX0lOTElORSBmbG9hdCBSZWdpc3Rlcjo6YXNhblVuc2FmZVVuYm94ZWRGbG9hdCgpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGZsb2F0PihwYXlsb2FkKCkpOwor
ICAgIH0KKyNlbmRpZgorCiAgICAgQUxXQVlTX0lOTElORSBkb3VibGUgUmVnaXN0ZXI6OnVuYm94
ZWREb3VibGUoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHUubnVtYmVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXggMTk3NmVkODBiM2Uy
Li5hNGI2NDhmYTBhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNz
ZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhl
bHBlcnMuaApAQCAtMTQwMyw3ICsxNDAzLDEwIEBAIHB1YmxpYzoKICAgICAgICAgaml0QXNzZXJ0
SXNKU0RvdWJsZShncHIpOwogICAgICAgICByZXR1cm4gdW5ib3hEb3VibGVXaXRob3V0QXNzZXJ0
aW9ucyhncHIsIHJlc3VsdEdQUiwgZnByLCBtb2RlKTsKICAgICB9Ci0gICAgCisgICAgdm9pZCB1
bmJveERvdWJsZShKU1ZhbHVlUmVncyByZWdzLCBGUFJSZWcgZnByKQorICAgIHsKKyAgICAgICAg
dW5ib3hEb3VibGUocmVncy50YWdHUFIoKSwgcmVncy5wYXlsb2FkR1BSKCksIGZwcik7CisgICAg
fQogICAgIHZvaWQgYm94RG91YmxlKEZQUlJlZyBmcHIsIEpTVmFsdWVSZWdzIHJlZ3MsIFRhZ1Jl
Z2lzdGVyc01vZGUgbW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCiAgICAgewogICAgICAgICBib3hE
b3VibGUoZnByLCByZWdzLmdwcigpLCBtb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggYWQyNTAx
N2VmMGI0Li43MDQwMWU0NWJlNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCkBAIC0zOCwxOCArMzgsMzQg
QEAgbWFjcm8gZ2V0dU9wZXJhbmRXaWRlMTZKUyhvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0
KQogICAgIGxvYWRoIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRleCAq
IDIgKyBPcGNvZGVJRFdpZGUxNlNpemVKU1tQQiwgUEMsIDFdLCBkc3QKIGVuZAogCittYWNybyBn
ZXR1T3BlcmFuZFdpZGUxNldhc20ob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkKKyAgICBs
b2FkaCBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiAyICsgT3Bj
b2RlSURXaWRlMTZTaXplV2FzbVtQQiwgUEMsIDFdLCBkc3QKK2VuZAorCiBtYWNybyBnZXRPcGVy
YW5kV2lkZTE2SlMob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkKICAgICBsb2FkaHNpIGNv
bnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRleCAqIDIgKyBPcGNvZGVJRFdp
ZGUxNlNpemVKU1tQQiwgUEMsIDFdLCBkc3QKIGVuZAogCittYWNybyBnZXRPcGVyYW5kV2lkZTE2
V2FzbShvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQorICAgIGxvYWRoc2kgY29uc3RleHBy
ICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogMiArIE9wY29kZUlEV2lkZTE2U2l6
ZVdhc21bUEIsIFBDLCAxXSwgZHN0CitlbmQKKwogbWFjcm8gZ2V0dU9wZXJhbmRXaWRlMzJKUyhv
cGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQogICAgIGxvYWRpIGNvbnN0ZXhwciAlb3Bjb2Rl
U3RydWN0JV8lZmllbGROYW1lJV9pbmRleCAqIDQgKyBPcGNvZGVJRFdpZGUzMlNpemVKU1tQQiwg
UEMsIDFdLCBkc3QKIGVuZAogCittYWNybyBnZXR1T3BlcmFuZFdpZGUzMldhc20ob3Bjb2RlU3Ry
dWN0LCBmaWVsZE5hbWUsIGRzdCkKKyAgICBsb2FkaSBjb25zdGV4cHIgJW9wY29kZVN0cnVjdCVf
JWZpZWxkTmFtZSVfaW5kZXggKiA0ICsgT3Bjb2RlSURXaWRlMzJTaXplV2FzbVtQQiwgUEMsIDFd
LCBkc3QKK2VuZAorCiBtYWNybyBnZXRPcGVyYW5kV2lkZTMySlMob3Bjb2RlU3RydWN0LCBmaWVs
ZE5hbWUsIGRzdCkKICAgICBsb2FkaXMgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5h
bWUlX2luZGV4ICogNCArIE9wY29kZUlEV2lkZTMyU2l6ZUpTW1BCLCBQQywgMV0sIGRzdAogZW5k
CiAKK21hY3JvIGdldE9wZXJhbmRXaWRlMzJXYXNtKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBk
c3QpCisgICAgbG9hZGlzIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRl
eCAqIDQgKyBPcGNvZGVJRFdpZGUzMlNpemVXYXNtW1BCLCBQQywgMV0sIGRzdAorZW5kCisKIG1h
Y3JvIG1ha2VSZXR1cm4oZ2V0LCBkaXNwYXRjaCwgZm4pCiAgICAgZm4obWFjcm8odGFnLCBwYXls
b2FkKQogICAgICAgICBtb3ZlIHRhZywgdDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9XZWJBc3NlbWJseS5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
V2ViQXNzZW1ibHkuYXNtCmluZGV4IDIyZWJlMmE3ZWIzZC4uMTI1ZjBjYjcwOTg0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHkuYXNtCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseS5hc20KQEAgLTMxLDU2ICszMSw4
MCBAQCBpZiBIQVZFX0ZBU1RfVExTCiBlbmQKIAogaWYgWDg2XzY0Ci0gICAgY29uc3QgTnVtYmVy
T2ZXYXNtQXJndW1lbnRHUFJzID0gNgorICAgIGNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50SlNS
cyA9IDYKIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgY29uc3QgTnVtYmVy
T2ZXYXNtQXJndW1lbnRHUFJzID0gOAorICAgIGNvbnN0IE51bWJlck9mV2FzbUFyZ3VtZW50SlNS
cyA9IDgKK2Vsc2lmIEFSTXY3CisgICAgY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzID0g
MgogZWxzZQogICAgIGVycm9yCiBlbmQKKwogY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1lbnRGUFJz
ID0gOAotY29uc3QgTnVtYmVyT2ZXYXNtQXJndW1lbnRzID0gTnVtYmVyT2ZXYXNtQXJndW1lbnRH
UFJzICsgTnVtYmVyT2ZXYXNtQXJndW1lbnRGUFJzCisKK2NvbnN0IE51bWJlck9mV2FzbUFyZ3Vt
ZW50cyA9IE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyArIE51bWJlck9mV2FzbUFyZ3VtZW50RlBS
cwogCiAjIEFsbCBjYWxsZWUgc2F2ZXMgbXVzdCBtYXRjaCB0aGUgZGVmaW5pdGlvbiBpbiBXYXNt
Q2FsbGVlLmNwcAogCiAjIFRoZXNlIG11c3QgbWF0Y2ggdGhlIGRlZmluaXRpb24gaW4gV2FzbU1l
bW9yeUluZm9ybWF0aW9uLmNwcAotY29uc3Qgd2FzbUluc3RhbmNlID0gY3NyMAotY29uc3QgbWVt
b3J5QmFzZSA9IGNzcjMKLWNvbnN0IGJvdW5kc0NoZWNraW5nU2l6ZSA9IGNzcjQKK2lmIFg4Nl82
NCBvciBBUk02NCBvciBBUk02NEUKKyAgICBjb25zdCB3YXNtSW5zdGFuY2UgPSBjc3IwCisgICAg
Y29uc3QgbWVtb3J5QmFzZSA9IGNzcjMKKyAgICBjb25zdCBib3VuZHNDaGVja2luZ1NpemUgPSBj
c3I0CitlbHNpZiBBUk12NworICAgIGNvbnN0IHdhc21JbnN0YW5jZSA9IGNzcjAKKyAgICBjb25z
dCBtZW1vcnlCYXNlID0gaW52YWxpZEdQUgorICAgIGNvbnN0IGJvdW5kc0NoZWNraW5nU2l6ZSA9
IGludmFsaWRHUFIKK2Vsc2UKKyAgICBlcnJvcgorZW5kCiAKICMgVGhpcyBtdXN0IG1hdGNoIHRo
ZSBkZWZpbml0aW9uIGluIExvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCiBpZiBYODZfNjQKICAgICBj
b25zdCBQQiA9IGNzcjIKIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0CiAgICAgY29u
c3QgUEIgPSBjc3I3CitlbHNpZiBBUk12NworICAgIGNvbnN0IFBCID0gY3NyMQogZWxzZQogICAg
IGVycm9yCiBlbmQKIAotbWFjcm8gZm9yRWFjaEFyZ3VtZW50R1BSKGZuKQotICAgIGZuKDAgKiA4
LCB3YTApCi0gICAgZm4oMSAqIDgsIHdhMSkKLSAgICBmbigyICogOCwgd2EyKQotICAgIGZuKDMg
KiA4LCB3YTMpCi0gICAgZm4oNCAqIDgsIHdhNCkKLSAgICBmbig1ICogOCwgd2E1KQotICAgIGlm
IEFSTTY0IG9yIEFSTTY0RQotICAgICAgICBmbig2ICogOCwgd2E2KQotICAgICAgICBmbig3ICog
OCwgd2E3KQorIyBIZWxwZXIgbWFjcm9zCisKKyMgT24gSlNWQUxVRTY0LCBlYWNoIDY0LWJpdCBh
cmd1bWVudCBHUFIgaG9sZHMgb25lIHdob2xlIFdhc20gdmFsdWUuCisjIE9uIEpTVkFMVUUzMl82
NCwgYSBjb25zZWN1dGl2ZSBwYWlyIG9mIGV2ZW4vb2RkIG51bWJlcmVkIEdQUnMgaG9sZCBhIHNp
bmdsZQorIyBXYXNtIHZhbHVlIChldmVuIGlmIHRoYXQgdmFsdWUgaXMgaTMyL2YzMiwgdGhlIG9k
ZCBudW1iZXJlZCBHUFIgaG9sZHMgdGhlCisjIG1vcmUgc2lnbmlmaWNhbnQgd29yZCkuCittYWNy
byBmb3JFYWNoQXJndW1lbnRKU1IoZm4pCisgICAgaWYgSlNWQUxVRTY0CisgICAgICAgIGZuKDAg
KiA4LCB3YTApCisgICAgICAgIGZuKDEgKiA4LCB3YTEpCisgICAgICAgIGZuKDIgKiA4LCB3YTIp
CisgICAgICAgIGZuKDMgKiA4LCB3YTMpCisgICAgICAgIGZuKDQgKiA4LCB3YTQpCisgICAgICAg
IGZuKDUgKiA4LCB3YTUpCisgICAgICAgIGlmIEFSTTY0IG9yIEFSTTY0RQorICAgICAgICAgICAg
Zm4oNiAqIDgsIHdhNikKKyAgICAgICAgICAgIGZuKDcgKiA4LCB3YTcpCisgICAgICAgIGVuZAor
ICAgIGVsc2UKKyAgICAgICAgZm4oMCAqIDgsIHdhMSwgd2EwKQorICAgICAgICBmbigxICogOCwg
d2EzLCB3YTIpCiAgICAgZW5kCiBlbmQKIAogbWFjcm8gZm9yRWFjaEFyZ3VtZW50RlBSKGZuKQot
ICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyAwKSAqIDgsIHdmYTApCi0gICAgZm4o
KE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDEpICogOCwgd2ZhMSkKLSAgICBmbigoTnVtYmVy
T2ZXYXNtQXJndW1lbnRHUFJzICsgMikgKiA4LCB3ZmEyKQotICAgIGZuKChOdW1iZXJPZldhc21B
cmd1bWVudEdQUnMgKyAzKSAqIDgsIHdmYTMpCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50
R1BScyArIDQpICogOCwgd2ZhNCkKLSAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRHUFJzICsg
NSkgKiA4LCB3ZmE1KQotICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEdQUnMgKyA2KSAqIDgs
IHdmYTYpCi0gICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50R1BScyArIDcpICogOCwgd2ZhNykK
KyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgMCkgKiA4LCB3ZmEwKQorICAgIGZu
KChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyAxKSAqIDgsIHdmYTEpCisgICAgZm4oKE51bWJl
ck9mV2FzbUFyZ3VtZW50SlNScyArIDIpICogOCwgd2ZhMikKKyAgICBmbigoTnVtYmVyT2ZXYXNt
QXJndW1lbnRKU1JzICsgMykgKiA4LCB3ZmEzKQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVu
dEpTUnMgKyA0KSAqIDgsIHdmYTQpCisgICAgZm4oKE51bWJlck9mV2FzbUFyZ3VtZW50SlNScyAr
IDUpICogOCwgd2ZhNSkKKyAgICBmbigoTnVtYmVyT2ZXYXNtQXJndW1lbnRKU1JzICsgNikgKiA4
LCB3ZmE2KQorICAgIGZuKChOdW1iZXJPZldhc21Bcmd1bWVudEpTUnMgKyA3KSAqIDgsIHdmYTcp
CiBlbmQKIAotIyBIZWxwZXIgbWFjcm9zCiAjIEZJWE1FOiBFdmVudHVhbGx5IHRoaXMgc2hvdWxk
IGJlIHVuaWZpZWQgd2l0aCB0aGUgSlMgdmVyc2lvbnMKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwMzY1NgogCkBAIC0xMzAsMTAgKzE1NCwxNSBAQCBtYWNybyBj
aGVja1N3aXRjaFRvSklURm9yUHJvbG9ndWUoY29kZUJsb2NrUmVnaXN0ZXIpCiAgICAgICAgICAg
ICBidHB6IHIwLCAucmVjb3ZlcgogICAgICAgICAgICAgbW92ZSByMCwgd3MwCiAKLSAgICAgICAg
ICAgIGZvckVhY2hBcmd1bWVudEdQUihtYWNybyAob2Zmc2V0LCBncHIpCitpZiBKU1ZBTFVFNjQK
KyAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHIpCiAgICAg
ICAgICAgICAgICAgbG9hZHEgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxS
ZWdpc3RlcnMgKiA4W2Nmcl0sIGdwcgogICAgICAgICAgICAgZW5kKQotCitlbHNlCisgICAgICAg
ICAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3LCBncExzdykKKyAg
ICAgICAgICAgICAgICBsb2FkMmlhIC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0
dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBncExzdywgZ3ByTXN3CisgICAgICAgICAgICBlbmQpCitl
bmQKICAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEZQUihtYWNybyAob2Zmc2V0LCBmcHIpCiAg
ICAgICAgICAgICAgICAgbG9hZGQgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1
YWxSZWdpc3RlcnMgKiA4W2Nmcl0sIGZwcgogICAgICAgICAgICAgZW5kKQpAQCAtMjAxLDYgKzIz
MCw5IEBAIG1hY3JvIHByZXNlcnZlQ2FsbGVlU2F2ZXNVc2VkQnlXYXNtKCkKICAgICBlbHNpZiBY
ODZfNjQgb3IgUklTQ1Y2NAogICAgICAgICBzdG9yZXAgUEIsIC0weDhbY2ZyXQogICAgICAgICBz
dG9yZXAgd2FzbUluc3RhbmNlLCAtMHgxMFtjZnJdCisgICAgZWxzaWYgQVJNdjcKKyAgICAgICAg
c3RvcmVwIFBCLCAtNFtjZnJdCisgICAgICAgIHN0b3JlcCB3YXNtSW5zdGFuY2UsIC04W2Nmcl0K
ICAgICBlbHNlCiAgICAgICAgIGVycm9yCiAgICAgZW5kCkBAIC0yMTUsNiArMjQ3LDkgQEAgbWFj
cm8gcmVzdG9yZUNhbGxlZVNhdmVzVXNlZEJ5V2FzbSgpCiAgICAgZWxzaWYgWDg2XzY0IG9yIFJJ
U0NWNjQKICAgICAgICAgbG9hZHAgLTB4OFtjZnJdLCBQQgogICAgICAgICBsb2FkcCAtMHgxMFtj
ZnJdLCB3YXNtSW5zdGFuY2UKKyAgICBlbHNpZiBBUk12NworICAgICAgICBsb2FkcCAtNFtjZnJd
LCBQQgorICAgICAgICBsb2FkcCAtOFtjZnJdLCB3YXNtSW5zdGFuY2UKICAgICBlbHNlCiAgICAg
ICAgIGVycm9yCiAgICAgZW5kCkBAIC0yNDUsMTAgKzI4MCwxMiBAQCBlbmQKIGVuZAogCiBtYWNy
byByZWxvYWRNZW1vcnlSZWdpc3RlcnNGcm9tSW5zdGFuY2UoaW5zdGFuY2UsIHNjcmF0Y2gxLCBz
Y3JhdGNoMikKK2lmIG5vdCBBUk12NwogICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2NhY2hl
ZE1lbW9yeVtpbnN0YW5jZV0sIG1lbW9yeUJhc2UKICAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6
bV9jYWNoZWRCb3VuZHNDaGVja2luZ1NpemVbaW5zdGFuY2VdLCBib3VuZHNDaGVja2luZ1NpemUK
ICAgICBjYWdlZFByaW1pdGl2ZU1heUJlTnVsbChtZW1vcnlCYXNlLCBib3VuZHNDaGVja2luZ1Np
emUsIHNjcmF0Y2gxLCBzY3JhdGNoMikgIyBJZiBib3VuZHNDaGVja2luZ1NpemUgaXMgMCwgcG9p
bnRlciBjYW4gYmUgYSBudWxscHRyLgogZW5kCitlbmQKIAogbWFjcm8gdGhyb3dFeGNlcHRpb24o
ZXhjZXB0aW9uKQogICAgIHN0b3JlaSBjb25zdGV4cHIgV2FzbTo6RXhjZXB0aW9uVHlwZTo6JWV4
Y2VwdGlvbiUsIEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzICsgUGF5bG9hZE9mZnNldFtjZnJd
CkBAIC0yODAsOCArMzE3LDEzIEBAIG1hY3JvIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwo
KQogICAgIGxvYWRpIFdhc206OkxMSW50Q2FsbGVlOjptX251bUNhbGxlZUxvY2Fsc1t3czFdLCB3
czEKICAgICBsc2hpZnRwIDMsIHdzMQogICAgIGFkZHAgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0
aENhbGwsIHdzMQoraWYgQVJNdjcKKyAgICBzdWJwIGNmciwgd3MxLCB3czEKKyAgICBtb3ZlIHdz
MSwgc3AKK2Vsc2UKICAgICBzdWJwIGNmciwgd3MxLCBzcAogZW5kCitlbmQKIAogbWFjcm8gd2Fz
bVByb2xvZ3VlKGxvYWRXYXNtSW5zdGFuY2UpCiAgICAgIyBTZXQgdXAgdGhlIGNhbGwgZnJhbWUg
YW5kIGNoZWNrIGlmIHdlIHNob3VsZCBPU1IuCkBAIC0yOTIsNiArMzM0LDkgQEAgbWFjcm8gd2Fz
bVByb2xvZ3VlKGxvYWRXYXNtSW5zdGFuY2UpCiAKICAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6
bV9vd25lclt3YXNtSW5zdGFuY2VdLCB3czAKICAgICBzdG9yZXAgd3MwLCBUaGlzQXJndW1lbnRP
ZmZzZXRbY2ZyXQoraWYgbm90IEpTVkFMVUU2NAorICAgIHN0b3JlaSBDZWxsVGFnLCBUYWdPZmZz
ZXQgKyBUaGlzQXJndW1lbnRPZmZzZXRbY2ZyXQorZW5kCiAKICAgICBsb2FkcCBDYWxsZWVbY2Zy
XSwgd3MwCiAgICAgYW5kcCB+Mywgd3MwCkBAIC0zMDMsNiArMzQ4LDEwIEBAIG1hY3JvIHdhc21Q
cm9sb2d1ZShsb2FkV2FzbUluc3RhbmNlKQogICAgIGFkZHAgbWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwsIHdzMQogICAgIHN1YnAgY2ZyLCB3czEsIHdzMQogCitpZiBub3QgSlNWQUxVRTY0
CisgICAgc3VicCA4LCB3czEgIyBhbGlnbiBzdGFjayBwb2ludGVyCitlbmQKKwogICAgIGJwYSB3
czEsIGNmciwgLnN0YWNrT3ZlcmZsb3cKICAgICBicGJlcSBXYXNtOjpJbnN0YW5jZTo6bV9jYWNo
ZWRTdGFja0xpbWl0W3dhc21JbnN0YW5jZV0sIHdzMSwgLnN0YWNrSGVpZ2h0T0sKIApAQCAtMzEy
LDEwICszNjEsMTUgQEAgbWFjcm8gd2FzbVByb2xvZ3VlKGxvYWRXYXNtSW5zdGFuY2UpCiAuc3Rh
Y2tIZWlnaHRPSzoKICAgICBtb3ZlIHdzMSwgc3AKIAotICAgIGZvckVhY2hBcmd1bWVudEdQUiht
YWNybyAob2Zmc2V0LCBncHIpCitpZiBKU1ZBTFVFNjQKKyAgICBmb3JFYWNoQXJndW1lbnRKU1Io
bWFjcm8gKG9mZnNldCwgZ3ByKQogICAgICAgICBzdG9yZXEgZ3ByLCAtb2Zmc2V0IC0gOCAtIENh
bGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXQogICAgIGVuZCkKLQorZWxz
ZQorICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHJNc3csIGdwTHN3KQor
ICAgICAgICBzdG9yZTJpYSBncExzdywgZ3ByTXN3LCAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVT
cGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXQorICAgIGVuZCkKK2VuZAogICAgIGZvckVh
Y2hBcmd1bWVudEZQUihtYWNybyAob2Zmc2V0LCBmcHIpCiAgICAgICAgIHN0b3JlZCBmcHIsIC1v
ZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdCiAg
ICAgZW5kKQpAQCAtMzI5LDE0ICszODMsMTYgQEAgbWFjcm8gd2FzbVByb2xvZ3VlKGxvYWRXYXNt
SW5zdGFuY2UpCiAgICAgbG9hZGkgV2FzbTo6TExJbnRDYWxsZWU6Om1fbnVtVmFyc1t3czBdLCB3
czEKICAgICBzdWJpIE51bWJlck9mV2FzbUFyZ3VtZW50cyArIENhbGxlZVNhdmVTcGFjZUFzVmly
dHVhbFJlZ2lzdGVycywgd3MxCiAgICAgYnRpeiB3czEsIC56ZXJvSW5pdGlhbGl6ZUxvY2Fsc0Rv
bmUKKyAgICBsc2hpZnRpIDMsIHdzMQogICAgIG5lZ2kgd3MxCitpZiBKU1ZBTFVFNjQKICAgICBz
eGkycSB3czEsIHdzMQorZW5kCiAgICAgbGVhcCAoTnVtYmVyT2ZXYXNtQXJndW1lbnRzICsgQ2Fs
bGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICsgMSkgKiAtOFtjZnJdLCB3czAKIC56ZXJv
SW5pdGlhbGl6ZUxvY2Fsc0xvb3A6Ci0gICAgYWRkcSAxLCB3czEKLSAgICBzdG9yZXEgMCwgW3dz
MCwgd3MxLCA4XQotICAgIGJ0cXogd3MxLCAuemVyb0luaXRpYWxpemVMb2NhbHNEb25lCi0gICAg
am1wIC56ZXJvSW5pdGlhbGl6ZUxvY2Fsc0xvb3AKKyAgICBhZGRwIFB0clNpemUsIHdzMQorICAg
IHN0b3JlcCAwLCBbd3MwLCB3czFdCisgICAgYnRwbnogd3MxLCAuemVyb0luaXRpYWxpemVMb2Nh
bHNMb29wCiAuemVyb0luaXRpYWxpemVMb2NhbHNEb25lOgogZW5kCiAKQEAgLTM3NSw2ICs0MzEs
MjQgQEAgbWFjcm8gc2xvd1dhc21PcChvcGNvZGVOYW1lKQogICAgIHVucHJlZml4ZWRTbG93V2Fz
bU9wKHdhc21fJW9wY29kZU5hbWUlKQogZW5kCiAKKyMgRmxvYXQgdG8gZmxvYXQgcm91bmRpbmcg
b3BzCittYWNybyB3YXNtUm91bmRpbmdPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGZuKQor
aWYgSlNWQUxVRTY0ICMgQWxsIGN1cnJlbnQgNjQtYml0IHBsYXRmb3JtcyBoYXZlIGluc3RydWN0
aW9ucyBmb3IgdGhlc2UKKyAgICB3YXNtT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBmbikK
K2Vsc2UKKyAgICBzbG93V2FzbU9wKG9wY29kZU5hbWUpCitlbmQKK2VuZAorCisjIGk2NCAoc2ln
bmVkL3Vuc2lnbmVkKSB0byBmMzIgb3IgZjY0CittYWNybyB3YXNtSTY0VG9GT3Aob3Bjb2RlTmFt
ZSwgb3Bjb2RlU3RydWN0LCBmbikKK2lmIEpTVkFMVUU2NCAjIEFsbCBjdXJyZW50IDY0LWJpdCBw
bGF0Zm9ybXMgaGF2ZSBpbnN0cnVjdGlvbnMgZm9yIHRoZXNlCisgICAgd2FzbU9wKG9wY29kZU5h
bWUsIG9wY29kZVN0cnVjdCwgZm4pCitlbHNlCisgICAgc2xvd1dhc21PcChvcGNvZGVOYW1lKQor
ZW5kCitlbmQKKwogIyBNYWNybyB2ZXJzaW9uIG9mIGxvYWQgb3BlcmF0aW9uczogbWxvYWRbc3Vm
Zml4XQogIyBsb2FkcyBmaWVsZCBmcm9tIHRoZSBpbnN0cnVjdGlvbiBzdHJlYW0gYW5kIHBlcmZv
cm1zIGxvYWRbc3VmZml4XSB0byBkc3QKIG1hY3JvIGZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4
KGN0eCwgZm4pCkBAIC0zOTcsMTIgKzQ3MSwyMSBAQCBtYWNybyBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlKGN0eCwgaW5kZXgsIGxvYWRlcikKICAgICBlbmQpCiBlbmQKIAoraWYgSlNWQUxVRTY0CiBt
YWNybyBtbG9hZHEoY3R4LCBmaWVsZCwgZHN0KQogICAgIHdnZXRzKGN0eCwgZmllbGQsIGRzdCkK
ICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKGN0eCwgZHN0LCBtYWNybyAoZnJvbSkKICAgICAg
ICAgbG9hZHEgZnJvbSwgZHN0CiAgICAgZW5kKQogZW5kCitlbHNlCittYWNybyBtbG9hZDJpKGN0
eCwgZmllbGQsIGRzdE1zdywgZHN0THN3KQorICAgIHdnZXRzKGN0eCwgZmllbGQsIGRzdExzdykK
KyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKGN0eCwgZHN0THN3LCBtYWNybyAoZnJvbSkKKyAg
ICAgICAgbG9hZDJpYSBmcm9tLCBkc3RMc3csIGRzdE1zdworICAgIGVuZCkKK2VuZAorZW5kCiAK
IG1hY3JvIG1sb2FkaShjdHgsIGZpZWxkLCBkc3QpCiAgICAgd2dldHMoY3R4LCBmaWVsZCwgZHN0
KQpAQCAtNDM0LDExICs1MTcsMTkgQEAgZW5kCiAKICMgVHlwZWQgcmV0dXJucwogCitpZiBKU1ZB
TFVFNjQKIG1hY3JvIHJldHVybnEoY3R4LCB2YWx1ZSkKICAgICB3Z2V0cyhjdHgsIG1fZHN0LCB0
NSkKICAgICBzdG9yZXEgdmFsdWUsIFtjZnIsIHQ1LCA4XQogICAgIGRpc3BhdGNoKGN0eCkKIGVu
ZAorZWxzZQorbWFjcm8gcmV0dXJuMmkoY3R4LCBtc3csIGxzdykKKyAgICB3Z2V0cyhjdHgsIG1f
ZHN0LCB0NSkKKyAgICBzdG9yZTJpYSBsc3csIG1zdywgW2NmciwgdDUsIDhdCisgICAgZGlzcGF0
Y2goY3R4KQorZW5kCitlbmQKIAogbWFjcm8gcmV0dXJuaShjdHgsIHZhbHVlKQogICAgIHdnZXRz
KGN0eCwgbV9kc3QsIHQ1KQpAQCAtNTExLDcgKzYwMiw3IEBAIG1hY3JvIHdhc21Db2RlQmxvY2tH
ZXR0ZXIodGFyZ2V0UmVnaXN0ZXIpCiBlbmQKIAogb3Aod2FzbV9mdW5jdGlvbl9wcm9sb2d1ZSwg
bWFjcm8gKCkKLSAgICBpZiBub3QgV0VCQVNTRU1CTFkgb3Igbm90IEpTVkFMVUU2NCBvciBDX0xP
T1Agb3IgQ19MT09QX1dJTgorICAgIGlmIG5vdCBXRUJBU1NFTUJMWSBvciBDX0xPT1Agb3IgQ19M
T09QX1dJTgogICAgICAgICBlcnJvcgogICAgIGVuZAogCkBAIC01MjAsNyArNjExLDcgQEAgb3Ao
d2FzbV9mdW5jdGlvbl9wcm9sb2d1ZSwgbWFjcm8gKCkKIGVuZCkKIAogb3Aod2FzbV9mdW5jdGlv
bl9wcm9sb2d1ZV9ub190bHMsIG1hY3JvICgpCi0gICAgaWYgbm90IFdFQkFTU0VNQkxZIG9yIG5v
dCBKU1ZBTFVFNjQgb3IgQ19MT09QIG9yIENfTE9PUF9XSU4KKyAgICBpZiBub3QgV0VCQVNTRU1C
TFkgb3IgQ19MT09QIG9yIENfTE9PUF9XSU4KICAgICAgICAgZXJyb3IKICAgICBlbmQKIApAQCAt
NjIzLDE2ICs3MTQsMjMgQEAgX3dhc21fZW50ZXI6CiAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGln
bm1lbnQodDIsIDB4ZGVhZDAwZTEpCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQyICAgICAg
ICAgICAgICAgIC8vIHQyPENvZGVCbG9jaz4gPSBjZnIuQ29kZUJsb2NrCiAgICAgbG9hZGkgV2Fz
bTo6TExJbnRDYWxsZWU6Om1fbnVtVmFyc1t0Ml0sIHQyICAgICAgLy8gdDI8c2l6ZV90PiA9IHQy
PENvZGVCbG9jaz4ubV9udW1WYXJzCi0gICAgc3VicSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxS
ZWdpc3RlcnMgKyBOdW1iZXJPZldhc21Bcmd1bWVudHMsIHQyCisgICAgc3ViaSBDYWxsZWVTYXZl
U3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKyBOdW1iZXJPZldhc21Bcmd1bWVudHMsIHQyCiAgICAg
YnRpeiB0MiwgLm9wRW50ZXJEb25lCi0gICAgbW92ZSBjZnIsIHQxCi0gICAgc3VicSBDYWxsZWVT
YXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4ICsgTnVtYmVyT2ZXYXNtQXJndW1lbnRzICog
OCwgdDEKKyAgICBzdWJwIGNmciwgKENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAr
IE51bWJlck9mV2FzbUFyZ3VtZW50cykgKiBTbG90U2l6ZSwgdDEKKyAgICBsc2hpZnRpIDMsIHQy
CiAgICAgbmVnaSB0MgoraWYgSlNWQUxVRTY0CiAgICAgc3hpMnEgdDIsIHQyCitlbmQKKyAgICBt
b3ZlIDAsIHQ2CiAub3BFbnRlckxvb3A6Ci0gICAgc3RvcmVxIDAsIFt0MSwgdDIsIDhdCi0gICAg
YWRkcSAxLCB0MgotICAgIGJ0cW56IHQyLCAub3BFbnRlckxvb3AKK2lmIEpTVkFMVUU2NAorICAg
IHN0b3JlcSB0NiwgW3QxLCB0Ml0KK2Vsc2UKKyAgICBzdG9yZTJpYSB0NiwgdDYsIFt0MSwgdDJd
CitlbmQKKyAgICBhZGRwIDgsIHQyCisgICAgYnRwbnogdDIsIC5vcEVudGVyTG9vcAogLm9wRW50
ZXJEb25lOgogICAgIHdhc21EaXNwYXRjaEluZGlyZWN0KDEpCiAKQEAgLTY0NSwxMSArNzQzLDYg
QEAgd2FzbU9wKGxvb3BfaGludCwgV2FzbUxvb3BIaW50LCBtYWNybyhjdHgpCiAgICAgZGlzcGF0
Y2goY3R4KQogZW5kKQogCi13YXNtT3AobW92LCBXYXNtTW92LCBtYWNybyhjdHgpCi0gICAgbWxv
YWRxKGN0eCwgbV9zcmMsIHQwKQotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQogd2FzbU9w
KGp0cnVlLCBXYXNtSnRydWUsIG1hY3JvKGN0eCkKICAgICBtbG9hZGkoY3R4LCBtX2NvbmRpdGlv
biwgdDApCiAgICAgYnRpeiB0MCwgLmNvbnRpbnVlCkBAIC03MDEsOSArNzk0LDE1IEBAIGVuZCkK
IAogdW5wcmVmaXhlZFdhc21PcCh3YXNtX3JldCwgV2FzbVJldCwgbWFjcm8oY3R4KQogICAgIGNo
ZWNrU3dpdGNoVG9KSVRGb3JFcGlsb2d1ZSgpCi0gICAgZm9yRWFjaEFyZ3VtZW50R1BSKG1hY3Jv
IChvZmZzZXQsIGdwcikKK2lmIEpTVkFMVUU2NAorICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNy
byAob2Zmc2V0LCBncHIpCiAgICAgICAgIGxvYWRxIC1vZmZzZXQgLSA4IC0gQ2FsbGVlU2F2ZVNw
YWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBncHIKICAgICBlbmQpCitlbHNlCisgICAg
Zm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwck1zdywgZ3BMc3cpCisgICAgICAg
IGxvYWQyaWEgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMg
KiA4W2Nmcl0sIGdwTHN3LCBncHJNc3cKKyAgICBlbmQpCitlbmQKICAgICBmb3JFYWNoQXJndW1l
bnRGUFIobWFjcm8gKG9mZnNldCwgZnByKQogICAgICAgICBsb2FkZCAtb2Zmc2V0IC0gOCAtIENh
bGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDhbY2ZyXSwgZnByCiAgICAgZW5kKQpA
QCAtNzIxLDQ0ICs4MjAsNiBAQCB3YXNtT3AocmV0X3ZvaWQsIFdhc21SZXRWb2lkLCBtYWNybyhj
dHgpCiAgICAgZG9SZXR1cm4oKQogZW5kKQogCi13YXNtT3AocmVmX2lzX251bGwsIFdhc21SZWZJ
c051bGwsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHAoY3R4LCBtX3JlZiwgdDApCi0gICAgY3FlcSB0
MCwgVmFsdWVOdWxsLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGdl
dF9nbG9iYWwsIFdhc21HZXRHbG9iYWwsIG1hY3JvKGN0eCkKLSAgICBsb2FkcCBXYXNtOjpJbnN0
YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCi0gICAgd2dldHUoY3R4LCBtX2dsb2Jh
bEluZGV4LCB0MSkKLSAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAKLSAgICByZXR1cm5xKGN0eCwg
dDApCi1lbmQpCi0KLXdhc21PcChzZXRfZ2xvYmFsLCBXYXNtU2V0R2xvYmFsLCBtYWNybyhjdHgp
Ci0gICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAot
ICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCi0gICAgbWxvYWRxKGN0eCwgbV92YWx1
ZSwgdDIpCi0gICAgc3RvcmVxIHQyLCBbdDAsIHQxLCA4XQotICAgIGRpc3BhdGNoKGN0eCkKLWVu
ZCkKLQotd2FzbU9wKGdldF9nbG9iYWxfcG9ydGFibGVfYmluZGluZywgV2FzbUdldEdsb2JhbFBv
cnRhYmxlQmluZGluZywgbWFjcm8oY3R4KQotICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2ds
b2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKLSAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQx
KQotICAgIGxvYWRxIFt0MCwgdDEsIDhdLCB0MAotICAgIGxvYWRxIFt0MF0sIHQwCi0gICAgcmV0
dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3Aoc2V0X2dsb2JhbF9wb3J0YWJsZV9iaW5kaW5n
LCBXYXNtU2V0R2xvYmFsUG9ydGFibGVCaW5kaW5nLCBtYWNybyhjdHgpCi0gICAgbG9hZHAgV2Fz
bTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2VdLCB0MAotICAgIHdnZXR1KGN0eCwg
bV9nbG9iYWxJbmRleCwgdDEpCi0gICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCi0gICAgbG9h
ZHEgW3QwLCB0MSwgOF0sIHQwCi0gICAgc3RvcmVxIHQyLCBbdDBdCi0gICAgZGlzcGF0Y2goY3R4
KQotZW5kKQotCiBtYWNybyBzbG93UGF0aEZvcldhc21DYWxsKGN0eCwgc2xvd1BhdGgsIHN0b3Jl
V2FzbUluc3RhbmNlKQogICAgIGNhbGxXYXNtQ2FsbFNsb3dQYXRoKAogICAgICAgICBzbG93UGF0
aCwKQEAgLTc3Myw3ICs4MzQsMTIgQEAgbWFjcm8gc2xvd1BhdGhGb3JXYXNtQ2FsbChjdHgsIHNs
b3dQYXRoLCBzdG9yZVdhc21JbnN0YW5jZSkKIAogICAgICAgICAgICAgd2dldHUoY3R4LCBtX3N0
YWNrT2Zmc2V0LCB3czEpCiAgICAgICAgICAgICBsc2hpZnRpIDMsIHdzMQoraWYgQVJNdjcKKyAg
ICAgICAgICAgIHN1YnAgY2ZyLCB3czEsIHdzMQorICAgICAgICAgICAgbW92ZSB3czEsIHNwCitl
bHNlCiAgICAgICAgICAgICBzdWJwIGNmciwgd3MxLCBzcAorZW5kCiAKICAgICAgICAgICAgIHdn
ZXR1KGN0eCwgbV9udW1iZXJPZlN0YWNrQXJncywgd3MxKQogCkBAIC03ODQsMTAgKzg1MCwxNSBA
QCBtYWNybyBzbG93UGF0aEZvcldhc21DYWxsKGN0eCwgc2xvd1BhdGgsIHN0b3JlV2FzbUluc3Rh
bmNlKQogICAgICAgICAgICAgcmVsb2FkTWVtb3J5UmVnaXN0ZXJzRnJvbUluc3RhbmNlKHRhcmdl
dFdhc21JbnN0YW5jZSwgd2EwLCB3YTEpCiAKICAgICAgICAgICAgICMgTG9hZCByZWdpc3RlcnMg
ZnJvbSBzdGFjawotICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50R1BSKG1hY3JvIChvZmZzZXQs
IGdwcikKK2lmIEpTVkFMVUU2NAorICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3Jv
IChvZmZzZXQsIGdwcikKICAgICAgICAgICAgICAgICBsb2FkcSBDYWxsRnJhbWVIZWFkZXJTaXpl
ICsgOCArIG9mZnNldFtzcCwgd3MxLCA4XSwgZ3ByCiAgICAgICAgICAgICBlbmQpCi0KK2Vsc2UK
KyAgICAgICAgICAgIGZvckVhY2hBcmd1bWVudEpTUihtYWNybyAob2Zmc2V0LCBncHJNc3csIGdw
THN3KQorICAgICAgICAgICAgICAgIGxvYWQyaWEgQ2FsbEZyYW1lSGVhZGVyU2l6ZSArIDggKyBv
ZmZzZXRbc3AsIHdzMSwgOF0sIGdwTHN3LCBncHJNc3cKKyAgICAgICAgICAgIGVuZCkKK2VuZAog
ICAgICAgICAgICAgZm9yRWFjaEFyZ3VtZW50RlBSKG1hY3JvIChvZmZzZXQsIGZwcikKICAgICAg
ICAgICAgICAgICBsb2FkZCBDYWxsRnJhbWVIZWFkZXJTaXplICsgOCArIG9mZnNldFtzcCwgd3Mx
LCA4XSwgZnByCiAgICAgICAgICAgICBlbmQpCkBAIC04MzAsNyArOTAxLDExIEBAIG1hY3JvIHNs
b3dQYXRoRm9yV2FzbUNhbGwoY3R4LCBzbG93UGF0aCwgc3RvcmVXYXNtSW5zdGFuY2UpCiAKICAg
ICAgICAgICAgICMgV2UgbmVlZCB0byBzZXQgUEMgdG8gbG9hZCBpbmZvcm1hdGlvbiBmcm9tIHRo
ZSBpbnN0cnVjdGlvbiBzdHJlYW0sIGJ1dCB3ZQogICAgICAgICAgICAgIyBuZWVkIHRvIHByZXNl
cnZlIGl0cyBjdXJyZW50IHZhbHVlIHNpbmNlIGl0IG1pZ2h0IGNvbnRhaW4gYSByZXR1cm4gdmFs
dWUKK2lmIEFSTXY3CisgICAgICAgICAgICBwdXNoIFBDCitlbHNlCiAgICAgICAgICAgICBtb3Zl
IFBDLCBtZW1vcnlCYXNlCitlbmQKICAgICAgICAgICAgIG1vdmUgUEIsIHdhc21JbnN0YW5jZQog
ICAgICAgICAgICAgbG9hZGkgQXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgKyBUYWdPZmZzZXRb
Y2ZyXSwgUEMKICAgICAgICAgICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCBQQgpAQCAtODM5LDE3
ICs5MTQsMjggQEAgbWFjcm8gc2xvd1BhdGhGb3JXYXNtQ2FsbChjdHgsIHNsb3dQYXRoLCBzdG9y
ZVdhc21JbnN0YW5jZSkKICAgICAgICAgICAgIHdnZXR1KGN0eCwgbV9zdGFja09mZnNldCwgd3Mx
KQogICAgICAgICAgICAgbHNoaWZ0aSAzLCB3czEKICAgICAgICAgICAgIG5lZ2kgd3MxCitpZiBK
U1ZBTFVFNjQKICAgICAgICAgICAgIHN4aTJxIHdzMSwgd3MxCitlbmQKICAgICAgICAgICAgIGFk
ZHAgY2ZyLCB3czEKIAogICAgICAgICAgICAgIyBBcmd1bWVudCByZWdpc3RlcnMgYXJlIGFsc28g
cmV0dXJuIHJlZ2lzdGVycywgc28gdGhleSBtdXN0IGJlIHN0b3JlZCB0byB0aGUgc3RhY2sKICAg
ICAgICAgICAgICMgaW4gY2FzZSB0aGV5IGNvbnRhaW4gcmV0dXJuIHZhbHVlcy4KICAgICAgICAg
ICAgIHdnZXR1KGN0eCwgbV9udW1iZXJPZlN0YWNrQXJncywgd3MwKQoraWYgQVJNdjcKKyAgICAg
ICAgICAgIHBvcCBQQworZWxzZQogICAgICAgICAgICAgbW92ZSBtZW1vcnlCYXNlLCBQQwotICAg
ICAgICAgICAgZm9yRWFjaEFyZ3VtZW50R1BSKG1hY3JvIChvZmZzZXQsIGdwcikKK2VuZAoraWYg
SlNWQUxVRTY0CisgICAgICAgICAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwg
Z3ByKQogICAgICAgICAgICAgICAgIHN0b3JlcSBncHIsIENhbGxGcmFtZUhlYWRlclNpemUgKyA4
ICsgb2Zmc2V0W3dzMSwgd3MwLCA4XQogICAgICAgICAgICAgZW5kKQotCitlbHNlCisgICAgICAg
ICAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3LCBncExzdykKKyAg
ICAgICAgICAgICAgICBzdG9yZTJpYSBncExzdywgZ3ByTXN3LCBDYWxsRnJhbWVIZWFkZXJTaXpl
ICsgOCArIG9mZnNldFt3czEsIHdzMCwgOF0KKyAgICAgICAgICAgIGVuZCkKK2VuZAogICAgICAg
ICAgICAgZm9yRWFjaEFyZ3VtZW50RlBSKG1hY3JvIChvZmZzZXQsIGZwcikKICAgICAgICAgICAg
ICAgICBzdG9yZWQgZnByLCBDYWxsRnJhbWVIZWFkZXJTaXplICsgOCArIG9mZnNldFt3czEsIHdz
MCwgOF0KICAgICAgICAgICAgIGVuZCkKQEAgLTkwMCwxOTkgKzk4NiwzNiBAQCB3YXNtT3AoY3Vy
cmVudF9tZW1vcnksIFdhc21DdXJyZW50TWVtb3J5LCBtYWNybyhjdHgpCiAgICAgbG9hZHAgV2Fz
bTo6SW5zdGFuY2U6Om1fbWVtb3J5W3dhc21JbnN0YW5jZV0sIHQwCiAgICAgbG9hZHAgV2FzbTo6
TWVtb3J5OjptX2hhbmRsZVt0MF0sIHQwCiAgICAgbG9hZHAgV2FzbTo6TWVtb3J5SGFuZGxlOjpt
X3NpemVbdDBdLCB0MAotICAgIHVyc2hpZnRxIDE2LCB0MAorICAgIHVyc2hpZnRwIDE2LCB0MAor
aWYgSlNWQUxVRTY0CiAgICAgcmV0dXJucShjdHgsIHQwKQorZWxzZQorICAgIHJldHVybjJpKGN0
eCwgMCwgdDApCitlbmQKIGVuZCkKIAogd2FzbU9wKHNlbGVjdCwgV2FzbVNlbGVjdCwgbWFjcm8o
Y3R4KQogICAgIG1sb2FkaShjdHgsIG1fY29uZGl0aW9uLCB0MCkKICAgICBidGl6IHQwLCAuaXNa
ZXJvCitpZiBKU1ZBTFVFNjQKICAgICBtbG9hZHEoY3R4LCBtX25vblplcm8sIHQwKQogICAgIHJl
dHVybnEoY3R4LCB0MCkKIC5pc1plcm86CiAgICAgbWxvYWRxKGN0eCwgbV96ZXJvLCB0MCkKICAg
ICByZXR1cm5xKGN0eCwgdDApCitlbHNlCisgICAgbWxvYWQyaShjdHgsIG1fbm9uWmVybywgdDEs
IHQwKQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorLmlzWmVybzoKKyAgICBtbG9hZDJpKGN0
eCwgbV96ZXJvLCB0MSwgdDApCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQKIGVuZCkK
IAotIyB1c2VzIG9mZnNldCBhcyBzY3JhdGNoIGFuZCByZXR1cm5zIHJlc3VsdCBvbiBwb2ludGVy
Ci1tYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlcihjdHgsIHBvaW50ZXIsIG9mZnNldCwg
c2l6ZSkKLSAgICBsZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNldF0sIHQ1Ci0gICAgYnBiIHQ1
LCBib3VuZHNDaGVja2luZ1NpemUsIC5jb250aW51YXRpb24KLSAgICB0aHJvd0V4Y2VwdGlvbihP
dXRPZkJvdW5kc01lbW9yeUFjY2VzcykKLS5jb250aW51YXRpb246Ci0gICAgYWRkcCBtZW1vcnlC
YXNlLCBwb2ludGVyCi1lbmQKLQotbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRp
bmdPZmZzZXQoY3R4LCBwb2ludGVyLCBvZmZzZXQsIHNpemUpCi0gICAgbGVhcCBzaXplIC0gMVtw
b2ludGVyLCBvZmZzZXRdLCB0NQotICAgIGJwYiB0NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29u
dGludWF0aW9uCi0udGhyb3c6Ci0gICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlB
Y2Nlc3MpCi0uY29udGludWF0aW9uOgotICAgIGFkZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgotICAg
IGFkZHAgb2Zmc2V0LCBwb2ludGVyCi1lbmQKLQotbWFjcm8gZW1pdENoZWNrQW5kUHJlcGFyZVBv
aW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCBwb2ludGVyLCBvZmZzZXQs
IHNpemUpCi0gICAgbGVhcCBzaXplIC0gMVtwb2ludGVyLCBvZmZzZXRdLCB0NQotICAgIGJwYiB0
NSwgYm91bmRzQ2hlY2tpbmdTaXplLCAuY29udGludWF0aW9uCi0udGhyb3c6Ci0gICAgdGhyb3dF
eGNlcHRpb24oT3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MpCi0uY29udGludWF0aW9uOgotICAgIGFk
ZHAgbWVtb3J5QmFzZSwgcG9pbnRlcgotICAgIGFkZHAgb2Zmc2V0LCBwb2ludGVyCi0gICAgYnRw
bnogcG9pbnRlciwgKHNpemUgLSAxKSwgLnRocm93Ci1lbmQKLQotbWFjcm8gd2FzbUxvYWRPcChu
YW1lLCBzdHJ1Y3QsIHNpemUsIGZuKQotICAgIHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1hY3JvKGN0
eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MCkKLSAgICAgICAgd2dldHUoY3R4
LCBtX29mZnNldCwgdDEpCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKGN0eCwg
dDAsIHQxLCBzaXplKQotICAgICAgICBmbihbdDAsIHQxXSwgdDIpCi0gICAgICAgIHJldHVybnEo
Y3R4LCB0MikKLSAgICBlbmQpCi1lbmQKLQotd2FzbUxvYWRPcChsb2FkOF91LCBXYXNtTG9hZDhV
LCAxLCBtYWNybyhtZW0sIGRzdCkgbG9hZGIgbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChsb2Fk
MTZfdSwgV2FzbUxvYWQxNlUsIDIsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaCBtZW0sIGRzdCBlbmQp
Ci13YXNtTG9hZE9wKGxvYWQzMl91LCBXYXNtTG9hZDMyVSwgNCwgbWFjcm8obWVtLCBkc3QpIGxv
YWRpIG1lbSwgZHN0IGVuZCkKLXdhc21Mb2FkT3AobG9hZDY0X3UsIFdhc21Mb2FkNjRVLCA4LCBt
YWNybyhtZW0sIGRzdCkgbG9hZHEgbWVtLCBkc3QgZW5kKQotCi13YXNtTG9hZE9wKGkzMl9sb2Fk
OF9zLCBXYXNtSTMyTG9hZDhTLCAxLCBtYWNybyhtZW0sIGRzdCkgbG9hZGJzaSBtZW0sIGRzdCBl
bmQpCi13YXNtTG9hZE9wKGk2NF9sb2FkOF9zLCBXYXNtSTY0TG9hZDhTLCAxLCBtYWNybyhtZW0s
IGRzdCkgbG9hZGJzcSBtZW0sIGRzdCBlbmQpCi13YXNtTG9hZE9wKGkzMl9sb2FkMTZfcywgV2Fz
bUkzMkxvYWQxNlMsIDIsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaHNpIG1lbSwgZHN0IGVuZCkKLXdh
c21Mb2FkT3AoaTY0X2xvYWQxNl9zLCBXYXNtSTY0TG9hZDE2UywgMiwgbWFjcm8obWVtLCBkc3Qp
IGxvYWRoc3EgbWVtLCBkc3QgZW5kKQotd2FzbUxvYWRPcChpNjRfbG9hZDMyX3MsIFdhc21JNjRM
b2FkMzJTLCA0LCBtYWNybyhtZW0sIGRzdCkgbG9hZGlzIG1lbSwgZHN0IGVuZCkKLQotbWFjcm8g
d2FzbVN0b3JlT3AobmFtZSwgc3RydWN0LCBzaXplLCBmbikKLSAgICB3YXNtT3AobmFtZSwgc3Ry
dWN0LCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDApCi0gICAg
ICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJl
UG9pbnRlcihjdHgsIHQwLCB0MSwgc2l6ZSkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwg
dDIpCi0gICAgICAgIGZuKHQyLCBbdDAsIHQxXSkKLSAgICAgICAgZGlzcGF0Y2goY3R4KQotICAg
IGVuZCkKLWVuZAotCi13YXNtU3RvcmVPcChzdG9yZTgsIFdhc21TdG9yZTgsIDEsIG1hY3JvKHZh
bHVlLCBtZW0pIHN0b3JlYiB2YWx1ZSwgbWVtIGVuZCkKLXdhc21TdG9yZU9wKHN0b3JlMTYsIFdh
c21TdG9yZTE2LCAyLCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZWggdmFsdWUsIG1lbSBlbmQpCi13
YXNtU3RvcmVPcChzdG9yZTMyLCBXYXNtU3RvcmUzMiwgNCwgbWFjcm8odmFsdWUsIG1lbSkgc3Rv
cmVpIHZhbHVlLCBtZW0gZW5kKQotd2FzbVN0b3JlT3Aoc3RvcmU2NCwgV2FzbVN0b3JlNjQsIDgs
IG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlcSB2YWx1ZSwgbWVtIGVuZCkKLQogIyBPcGNvZGVzIHRo
YXQgZG9uJ3QgaGF2ZSB0aGUgYGIzb3BgIGVudHJ5IGluIHdhc20uanNvbi4gVGhpcyBzaG91bGQg
YmUga2VwdCBpbiBzeW5jCiAKLXdhc21PcChpMzJfZGl2X3MsIFdhc21JMzJEaXZTLCBtYWNybyAo
Y3R4KQotICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3Jocywg
dDEpCi0KLSAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwotCi0gICAgYmluZXEgdDEs
IC0xLCAuc2FmZQotICAgIGJpZXEgdDAsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC50aHJvd0ludGVn
ZXJPdmVyZmxvdwotCi0uc2FmZToKLSAgICBpZiBYODZfNjQKLSAgICAgICAgIyBGSVhNRTogQWRk
IGEgd2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBhbmQgdDIgaXMgcmR4Ci0gICAg
ICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzY5MgotICAg
ICAgICBjZHFpCi0gICAgICAgIGlkaXZpIHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9y
IFJJU0NWNjQKLSAgICAgICAgZGl2aXMgdDEsIHQwCi0gICAgZWxzZQotICAgICAgICBlcnJvcgot
ICAgIGVuZAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLnRocm93RGl2aXNpb25CeVplcm86Ci0g
ICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCi0KLS50aHJvd0ludGVnZXJPdmVyZmxv
dzoKLSAgICB0aHJvd0V4Y2VwdGlvbihJbnRlZ2VyT3ZlcmZsb3cpCi1lbmQpCi0KLXdhc21PcChp
MzJfZGl2X3UsIFdhc21JMzJEaXZVLCBtYWNybyAoY3R4KQotICAgIG1sb2FkaShjdHgsIG1fbGhz
LCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCi0KLSAgICBidGl6IHQxLCAudGhyb3dE
aXZpc2lvbkJ5WmVybwotCi0gICAgaWYgWDg2XzY0Ci0gICAgICAgIHhvcmkgdDIsIHQyCi0gICAg
ICAgIHVkaXZpIHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKLSAgICAg
ICAgZGl2aSB0MSwgdDAKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0gICAgcmV0
dXJuaShjdHgsIHQwKQotCi0udGhyb3dEaXZpc2lvbkJ5WmVybzoKLSAgICB0aHJvd0V4Y2VwdGlv
bihEaXZpc2lvbkJ5WmVybykKLWVuZCkKLQotd2FzbU9wKGkzMl9yZW1fcywgV2FzbUkzMlJlbVMs
IG1hY3JvIChjdHgpCi0gICAgbWxvYWRpKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkaShjdHgs
IG1fcmhzLCB0MSkKLQotICAgIGJ0aXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCi0KLSAgICBi
aW5lcSB0MSwgLTEsIC5zYWZlCi0gICAgYmluZXEgdDAsIGNvbnN0ZXhwciBJTlQzMl9NSU4sIC5z
YWZlCi0KLSAgICBtb3ZlIDAsIHQyCi0gICAgam1wIC5yZXR1cm4KLQotLnNhZmU6Ci0gICAgaWYg
WDg2XzY0Ci0gICAgICAgICMgRklYTUU6IEFkZCBhIHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0
MCBpcyByYXggYW5kIHQyIGlzIHJkeAotICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKLSAgICAgICAgY2RxaQotICAgICAgICBpZGl2aSB0MQot
ICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQotICAgICAgICBkaXZpcyB0MSwgdDAsIHQyCi0gICAg
ICAgIG11bGkgdDEsIHQyCi0gICAgICAgIHN1YmkgdDAsIHQyLCB0MgotICAgIGVsc2lmIFJJU0NW
NjQKLSAgICAgICAgcmVtaXMgdDEsIHQwCi0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVu
ZAotCi0ucmV0dXJuOgotICAgIHJldHVybmkoY3R4LCB0MikKLQotLnRocm93RGl2aXNpb25CeVpl
cm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCi1lbmQpCi0KLXdhc21PcChp
MzJfcmVtX3UsIFdhc21JMzJSZW1VLCBtYWNybyAoY3R4KQotICAgIG1sb2FkaShjdHgsIG1fbGhz
LCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCi0KLSAgICBidGl6IHQxLCAudGhyb3dE
aXZpc2lvbkJ5WmVybwotCi0gICAgaWYgWDg2XzY0Ci0gICAgICAgIHhvcmkgdDIsIHQyCi0gICAg
ICAgIHVkaXZpIHQxCi0gICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCi0gICAgICAgIGRpdmkgdDEs
IHQwLCB0MgotICAgICAgICBtdWxpIHQxLCB0MgotICAgICAgICBzdWJpIHQwLCB0MiwgdDIKLSAg
ICBlbHNpZiBSSVNDVjY0Ci0gICAgICAgIHJlbWkgdDEsIHQwCi0gICAgZWxzZQotICAgICAgICBl
cnJvcgotICAgIGVuZAotICAgIHJldHVybmkoY3R4LCB0MikKLQotLnRocm93RGl2aXNpb25CeVpl
cm86Ci0gICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCi1lbmQpCi0KIHdhc21PcChp
MzJfY3R6LCBXYXNtSTMyQ3R6LCBtYWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFu
ZCwgdDApCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICB0emNudGkgdDAsIHQw
CiAgICAgcmV0dXJuaShjdHgsIHQwKQogZW5kKQpAQCAtMTEwNiwxNDggKzEwMjksMjUgQEAgd2Fz
bU9wKGkzMl9wb3BjbnQsIFdhc21JMzJQb3BjbnQsIG1hY3JvIChjdHgpCiAgICAgcmV0dXJuaShj
dHgsIHIxKQogZW5kKQogCi13YXNtT3AoaTY0X2Rpdl9zLCBXYXNtSTY0RGl2UywgbWFjcm8gKGN0
eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQx
KQotCi0gICAgYnRxeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAgIGJxbmVxIHQxLCAt
MSwgLnNhZmUKLSAgICBicWVxIHQwLCBjb25zdGV4cHIgSU5UNjRfTUlOLCAudGhyb3dJbnRlZ2Vy
T3ZlcmZsb3cKLQotLnNhZmU6Ci0gICAgaWYgWDg2XzY0Ci0gICAgICAgICMgRklYTUU6IEFkZCBh
IHdheSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAotICAgICAg
ICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKLSAgICAg
ICAgY3FvcQotICAgICAgICBpZGl2cSB0MQotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBS
SVNDVjY0Ci0gICAgICAgIGRpdnFzIHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAg
ICBlbmQKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAg
IHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQotCi0udGhyb3dJbnRlZ2VyT3ZlcmZsb3c6
Ci0gICAgdGhyb3dFeGNlcHRpb24oSW50ZWdlck92ZXJmbG93KQotZW5kKQotCi13YXNtT3AoaTY0
X2Rpdl91LCBXYXNtSTY0RGl2VSwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywg
dDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotCi0gICAgYnRxeiB0MSwgLnRocm93RGl2
aXNpb25CeVplcm8KLQotICAgIGlmIFg4Nl82NAotICAgICAgICB4b3JxIHQyLCB0MgotICAgICAg
ICB1ZGl2cSB0MQotICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgICAg
IGRpdnEgdDEsIHQwCi0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVuZAotICAgIHJldHVy
bnEoY3R4LCB0MCkKLQotLnRocm93RGl2aXNpb25CeVplcm86Ci0gICAgdGhyb3dFeGNlcHRpb24o
RGl2aXNpb25CeVplcm8pCi1lbmQpCi0KLXdhc21PcChpNjRfcmVtX3MsIFdhc21JNjRSZW1TLCBt
YWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBt
X3JocywgdDEpCi0KLSAgICBidHF6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybwotCi0gICAgYnFu
ZXEgdDEsIC0xLCAuc2FmZQotICAgIGJxbmVxIHQwLCBjb25zdGV4cHIgSU5UNjRfTUlOLCAuc2Fm
ZQotCi0gICAgbW92ZSAwLCB0MgotICAgIGptcCAucmV0dXJuCi0KLS5zYWZlOgotICAgIGlmIFg4
Nl82NAotICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8gc3RhdGljX2Fzc2V0IHRoYXQgdDAg
aXMgcmF4IGFuZCB0MiBpcyByZHgKLSAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCi0gICAgICAgIGNxb3EKLSAgICAgICAgaWRpdnEgdDEKLSAg
ICBlbHNpZiBBUk02NCBvciBBUk02NEUKLSAgICAgICAgZGl2cXMgdDEsIHQwLCB0MgotICAgICAg
ICBtdWxxIHQxLCB0MgotICAgICAgICBzdWJxIHQwLCB0MiwgdDIKLSAgICBlbHNpZiBSSVNDVjY0
Ci0gICAgICAgIHJlbXFzIHQxLCB0MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQK
LQotLnJldHVybjoKLSAgICByZXR1cm5xKGN0eCwgdDIpICMgcmR4IGhhcyB0aGUgcmVtYWluZGVy
Ci0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnla
ZXJvKQotZW5kKQotCi13YXNtT3AoaTY0X3JlbV91LCBXYXNtSTY0UmVtVSwgbWFjcm8gKGN0eCkK
LSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQot
Ci0gICAgYnRxeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KLQotICAgIGlmIFg4Nl82NAotICAg
ICAgICB4b3JxIHQyLCB0MgotICAgICAgICB1ZGl2cSB0MQotICAgIGVsc2lmIEFSTTY0IG9yIEFS
TTY0RQotICAgICAgICBkaXZxIHQxLCB0MCwgdDIKLSAgICAgICAgbXVscSB0MSwgdDIKLSAgICAg
ICAgc3VicSB0MCwgdDIsIHQyCi0gICAgZWxzaWYgUklTQ1Y2NAotICAgICAgICByZW1xIHQxLCB0
MAotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLSAgICByZXR1cm5xKGN0eCwgdDIp
Ci0KLS50aHJvd0RpdmlzaW9uQnlaZXJvOgotICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnla
ZXJvKQotZW5kKQotCi13YXNtT3AoaTY0X2N0eiwgV2FzbUk2NEN0eiwgbWFjcm8gKGN0eCkKLSAg
ICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIHR6Y250cSB0MCwgdDAKLSAgICByZXR1
cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfcG9wY250LCBXYXNtSTY0UG9wY250LCBt
YWNybyAoY3R4KQotICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgYTEpCi0gICAgcHJlcGFyZVN0
YXRlRm9yQ0NhbGwoKQotICAgIG1vdmUgUEMsIGEwCi0gICAgY0NhbGwyKF9zbG93X3BhdGhfd2Fz
bV9wb3Bjb3VudGxsKQotICAgIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQotICAgIHJldHVybnEo
Y3R4LCByMSkKLWVuZCkKLQotd2FzbU9wKGYzMl90cnVuYywgV2FzbUYzMlRydW5jLCBtYWNybyAo
Y3R4KQord2FzbVJvdW5kaW5nT3AoZjMyX3RydW5jLCBXYXNtRjMyVHJ1bmMsIG1hY3JvIChjdHgp
CiAgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgdHJ1bmNhdGVmIGZ0MCwgZnQw
CiAgICAgcmV0dXJuZihjdHgsIGZ0MCkKIGVuZCkKIAotd2FzbU9wKGYzMl9uZWFyZXN0LCBXYXNt
RjMyTmVhcmVzdCwgbWFjcm8gKGN0eCkKK3dhc21Sb3VuZGluZ09wKGYzMl9uZWFyZXN0LCBXYXNt
RjMyTmVhcmVzdCwgbWFjcm8gKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkK
ICAgICByb3VuZGYgZnQwLCBmdDAKICAgICByZXR1cm5mKGN0eCwgZnQwKQogZW5kKQogCi13YXNt
T3AoZjY0X3RydW5jLCBXYXNtRjY0VHJ1bmMsIG1hY3JvIChjdHgpCit3YXNtUm91bmRpbmdPcChm
NjRfdHJ1bmMsIFdhc21GNjRUcnVuYywgbWFjcm8gKGN0eCkKICAgICBtbG9hZGQoY3R4LCBtX29w
ZXJhbmQsIGZ0MCkKICAgICB0cnVuY2F0ZWQgZnQwLCBmdDAKICAgICByZXR1cm5kKGN0eCwgZnQw
KQogZW5kKQogCi13YXNtT3AoZjY0X25lYXJlc3QsIFdhc21GNjROZWFyZXN0LCBtYWNybyAoY3R4
KQord2FzbVJvdW5kaW5nT3AoZjY0X25lYXJlc3QsIFdhc21GNjROZWFyZXN0LCBtYWNybyAoY3R4
KQogICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIHJvdW5kZCBmdDAsIGZ0MAog
ICAgIHJldHVybmQoY3R4LCBmdDApCkBAIC0xMjcxLDI0ICsxMDcxLDYgQEAgd2FzbU9wKGkzMl90
cnVuY19zX2YzMiwgV2FzbUkzMlRydW5jU0YzMiwgbWFjcm8gKGN0eCkKICAgICB0aHJvd0V4Y2Vw
dGlvbihPdXRPZkJvdW5kc1RydW5jKQogZW5kKQogCi13YXNtT3AoaTMyX3RydW5jX3NfZjY0LCBX
YXNtSTMyVHJ1bmNTRjY0LCBtYWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwg
ZnQwKQotCi0gICAgbW92ZSAweGMxZTAwMDAwMDAyMDAwMDAsIHQwICMgSU5UMzJfTUlOIC0gMS4w
Ci0gICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1Ry
dW5jCi0KLSAgICBtb3ZlIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDAgIyAtSU5UMzJfTUlOCi0gICAg
ZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCi0K
LSAgICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLQotLm91dE9m
Qm91bmRzVHJ1bmM6Ci0gICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKLWVuZCkK
LQogd2FzbU9wKGkzMl90cnVuY191X2YzMiwgV2FzbUkzMlRydW5jVUYzMiwgbWFjcm8gKGN0eCkK
ICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKIApAQCAtMTMwNyw5NiArMTA4OSw2IEBA
IHdhc21PcChpMzJfdHJ1bmNfdV9mMzIsIFdhc21JMzJUcnVuY1VGMzIsIG1hY3JvIChjdHgpCiAg
ICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKIGVuZCkKIAotd2FzbU9wKGkzMl90
cnVuY191X2Y2NCwgV2FzbUkzMlRydW5jVUY2NCwgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4
LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAjIC0x
LjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmMKLQotICAgIG1vdmUgMHg0MWYwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDMyX01JTiAqIC0y
LjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRz
VHJ1bmMKLQotICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0K
LS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMp
Ci1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfc19mMzIsIFdhc21JNjRUcnVuY1NGMzIsIG1hY3Jv
IChjdHgpCi0gICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4ZGYw
MDAwMDAsIHQwICMgSU5UNjRfTUlOCi0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZsdHVuIGZ0MCwg
ZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgbW92ZSAweDVmMDAwMDAwLCB0MCAjIC1JTlQ2
NF9NSU4KLSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91
bmRzVHJ1bmMKLQotICAgIHRydW5jYXRlZjJxcyBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQw
KQotCi0ub3V0T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1Ry
dW5jKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3NfZjY0LCBXYXNtSTY0VHJ1bmNTRjY0LCBt
YWNybyAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAw
eGMzZTAwMDAwMDAwMDAwMDAsIHQwICMgSU5UNjRfTUlOCi0gICAgZnEyZCB0MCwgZnQxCi0gICAg
YmRsdHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgbW92ZSAweDQzZTAwMDAw
MDAwMDAwMDAsIHQwICMgLUlOVDY0X01JTgotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgdHJ1bmNhdGVkMnFzIGZ0MCwgdDAK
LSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRocm93RXhj
ZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNfdV9mMzIs
IFdhc21JNjRUcnVuY1VGMzIsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5k
LCBmdDApCi0KLSAgICBtb3ZlIDB4YmY4MDAwMDAsIHQwICMgLTEuMAotICAgIGZpMmYgdDAsIGZ0
MQotICAgIGJmbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwotCi0gICAgbW92ZSAw
eDVmODAwMDAwLCB0MCAjIElOVDY0X01JTiAqIC0yLjAKLSAgICBmaTJmIHQwLCBmdDEKLSAgICBi
Zmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKLQotICAgIHRydW5jYXRlZjJxIGZ0
MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jOgotICAgIHRo
cm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCi1lbmQpCi0KLXdhc21PcChpNjRfdHJ1bmNf
dV9mNjQsIFdhc21JNjRUcnVuY1VGNjQsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9v
cGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YmZmMDAwMDAwMDAwMDAwMCwgdDAgIyAtMS4wCi0g
ICAgZnEyZCB0MCwgZnQxCi0gICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5j
Ci0KLSAgICBtb3ZlIDB4NDNmMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4gKiAtMi4wCi0g
ICAgZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5j
Ci0KLSAgICB0cnVuY2F0ZWQycSBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0
T2ZCb3VuZHNUcnVuYzoKLSAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQotZW5k
KQotCiB3YXNtT3AoaTMyX3RydW5jX3NhdF9mMzJfcywgV2FzbUkzMlRydW5jU2F0RjMyUywgbWFj
cm8gKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKIApAQCAtMTQyNSwzNCAr
MTExNyw2IEBAIHdhc21PcChpMzJfdHJ1bmNfc2F0X2YzMl9zLCBXYXNtSTMyVHJ1bmNTYXRGMzJT
LCBtYWNybyAoY3R4KQogICAgIHJldHVybmkoY3R4LCB0MCkKIGVuZCkKIAotd2FzbU9wKGkzMl90
cnVuY19zYXRfZjY0X3MsIFdhc21JMzJUcnVuY1NhdEY2NFMsIG1hY3JvIChjdHgpCi0gICAgbWxv
YWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YzFlMDAwMDAwMDIwMDAwMCwg
dDAgIyBJTlQzMl9NSU4gLSAxLjAKLSAgICBmcTJkIHQwLCBmdDEKLSAgICBiZGx0ZXF1biBmdDAs
IGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTgotCi0gICAgbW92ZSAweDQxZTAwMDAw
MDAwMDAwMDAsIHQwICMgLUlOVDMyX01JTgotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkZ3RlcXVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVkMmlzIGZ0
MCwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JO
YU46Ci0gICAgYmRlcSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KLSAgICBtb3Zl
IDAsIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoK
LSAgICBtb3ZlIChjb25zdGV4cHIgSU5UMzJfTUFYKSwgdDAKLSAgICByZXR1cm5pKGN0eCwgdDAp
Ci0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQzMl9N
SU4pLCB0MAotICAgIHJldHVybmkoY3R4LCB0MCkKLWVuZCkKLQogd2FzbU9wKGkzMl90cnVuY19z
YXRfZjMyX3UsIFdhc21JMzJUcnVuY1NhdEYzMlUsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRmKGN0
eCwgbV9vcGVyYW5kLCBmdDApCiAKQEAgLTE0NzYsMTUyICsxMTQwLDIyIEBAIHdhc21PcChpMzJf
dHJ1bmNfc2F0X2YzMl91LCBXYXNtSTMyVHJ1bmNTYXRGMzJVLCBtYWNybyAoY3R4KQogICAgIHJl
dHVybmkoY3R4LCB0MCkKIGVuZCkKIAotd2FzbU9wKGkzMl90cnVuY19zYXRfZjY0X3UsIFdhc21J
MzJUcnVuY1NhdEY2NFUsIG1hY3JvIChjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBm
dDApCi0KLSAgICBtb3ZlIDB4YmZmMDAwMDAwMDAwMDAwMCwgdDAgIyAtMS4wCi0gICAgZnEyZCB0
MCwgZnQxCi0gICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCi0K
LSAgICBtb3ZlIDB4NDFmMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQzMl9NSU4gKiAtMi4wCi0gICAg
ZnEyZCB0MCwgZnQxCi0gICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0
TWF4Ci0KLSAgICB0cnVuY2F0ZWQyaSBmdDAsIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotCi0u
b3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKLSAgICBtb3ZlIDAsIHQwCi0gICAgcmV0dXJuaShjdHgs
IHQwKQotCi0ub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoKLSAgICBtb3ZlIChjb25zdGV4cHIgVUlO
VDMyX01BWCksIHQwCi0gICAgcmV0dXJuaShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3Ry
dW5jX3NhdF9mMzJfcywgV2FzbUk2NFRydW5jU2F0RjMyUywgbWFjcm8gKGN0eCkKLSAgICBtbG9h
ZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAgIG1vdmUgMHhkZjAwMDAwMCwgdDAgIyBJTlQ2
NF9NSU4KLSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5k
c1RydW5jU2F0TWluT3JOYU4KLQotICAgIG1vdmUgMHg1ZjAwMDAwMCwgdDAgIyAtSU5UNjRfTUlO
Ci0gICAgZmkyZiB0MCwgZnQxCi0gICAgYmZndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1Ry
dW5jU2F0TWF4Ci0KLSAgICB0cnVuY2F0ZWYycXMgZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0
MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKLSAgICBiZmVxIGZ0MCwgZnQwLCAu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotICAgIG1vdmUgMCwgdDAKLSAgICByZXR1cm5xKGN0eCwg
dDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQ2
NF9NQVgpLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRN
aW46Ci0gICAgbW92ZSAoY29uc3RleHByIElOVDY0X01JTiksIHQwCi0gICAgcmV0dXJucShjdHgs
IHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3RydW5jX3NhdF9mNjRfcywgV2FzbUk2NFRydW5jU2F0
RjY0UywgbWFjcm8gKGN0eCkKLSAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKLQotICAg
IG1vdmUgMHhjM2UwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDY0X01JTgotICAgIGZxMmQgdDAsIGZ0
MQotICAgIGJkbHR1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTgotCi0g
ICAgbW92ZSAweDQzZTAwMDAwMDAwMDAwMDAsIHQwICMgLUlOVDY0X01JTgotICAgIGZxMmQgdDAs
IGZ0MQotICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0g
ICAgdHJ1bmNhdGVkMnFzIGZ0MCwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJv
dW5kc1RydW5jU2F0TWluT3JOYU46Ci0gICAgYmRlcSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1
bmNTYXRNaW4KLSAgICBtb3ZlIDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotCi0ub3V0T2ZC
b3VuZHNUcnVuY1NhdE1heDoKLSAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUFYKSwgdDAKLSAg
ICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgotICAgIG1vdmUg
KGNvbnN0ZXhwciBJTlQ2NF9NSU4pLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQot
d2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3UsIFdhc21JNjRUcnVuY1NhdEYzMlUsIG1hY3JvIChj
dHgpCi0gICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCi0KLSAgICBtb3ZlIDB4YmY4MDAw
MDAsIHQwICMgLTEuMAotICAgIGZpMmYgdDAsIGZ0MQotICAgIGJmbHRlcXVuIGZ0MCwgZnQxLCAu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotCi0gICAgbW92ZSAweDVmODAwMDAwLCB0MCAjIElOVDY0
X01JTiAqIC0yLjAKLSAgICBmaTJmIHQwLCBmdDEKLSAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91
dE9mQm91bmRzVHJ1bmNTYXRNYXgKLQotICAgIHRydW5jYXRlZjJxIGZ0MCwgdDAKLSAgICByZXR1
cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgotICAgIG1vdmUgMCwgdDAK
LSAgICByZXR1cm5xKGN0eCwgdDApCi0KLS5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgotICAgIG1v
dmUgKGNvbnN0ZXhwciBVSU5UNjRfTUFYKSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQp
Ci0KLXdhc21PcChpNjRfdHJ1bmNfc2F0X2Y2NF91LCBXYXNtSTY0VHJ1bmNTYXRGNjRVLCBtYWNy
byAoY3R4KQotICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQotCi0gICAgbW92ZSAweGJm
ZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJkbHRlcXVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgotCi0gICAgbW92ZSAweDQzZjAwMDAw
MDAwMDAwMDAsIHQwICMgSU5UNjRfTUlOICogLTIuMAotICAgIGZxMmQgdDAsIGZ0MQotICAgIGJk
Z3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAotCi0gICAgdHJ1bmNhdGVk
MnEgZnQwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRzVHJ1bmNTYXRN
aW46Ci0gICAgbW92ZSAwLCB0MAotICAgIHJldHVybnEoY3R4LCB0MCkKLQotLm91dE9mQm91bmRz
VHJ1bmNTYXRNYXg6Ci0gICAgbW92ZSAoY29uc3RleHByIFVJTlQ2NF9NQVgpLCB0MAotICAgIHJl
dHVybnEoY3R4LCB0MCkKLWVuZCkKLQotCi13YXNtT3AoZjMyX2NvbnZlcnRfdV9pNjQsIFdhc21G
MzJDb252ZXJ0VUk2NCwgbWFjcm8gKGN0eCkKK3dhc21JNjRUb0ZPcChmMzJfY29udmVydF91X2k2
NCwgV2FzbUYzMkNvbnZlcnRVSTY0LCBtYWNybyAoY3R4KQogICAgIG1sb2FkcShjdHgsIG1fb3Bl
cmFuZCwgdDApCiAgICAgaWYgWDg2XzY0CiAgICAgICAgIGNxMmYgdDAsIHQxLCBmdDAKLSAgICBl
bHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAotICAgICAgICBjcTJmIHQwLCBmdDAKICAg
ICBlbHNlCi0gICAgICAgIGVycm9yCisgICAgICAgIGNxMmYgdDAsIGZ0MAogICAgIGVuZAogICAg
IHJldHVybmYoY3R4LCBmdDApCiBlbmQpCiAKLXdhc21PcChmNjRfY29udmVydF91X2k2NCwgV2Fz
bUY2NENvbnZlcnRVSTY0LCBtYWNybyAoY3R4KQord2FzbUk2NFRvRk9wKGY2NF9jb252ZXJ0X3Vf
aTY0LCBXYXNtRjY0Q29udmVydFVJNjQsIG1hY3JvIChjdHgpCiAgICAgbWxvYWRxKGN0eCwgbV9v
cGVyYW5kLCB0MCkKICAgICBpZiBYODZfNjQKICAgICAgICAgY3EyZCB0MCwgdDEsIGZ0MAotICAg
IGVsc2lmIEFSTTY0IG9yIEFSTTY0RSBvciBSSVNDVjY0Ci0gICAgICAgIGNxMmQgdDAsIGZ0MAog
ICAgIGVsc2UKLSAgICAgICAgZXJyb3IKKyAgICAgICAgY3EyZCB0MCwgZnQwCiAgICAgZW5kCiAg
ICAgcmV0dXJuZChjdHgsIGZ0MCkKIGVuZCkKQEAgLTE2MzIsNDcgKzExNjYsNiBAQCB3YXNtT3Ao
aTMyX2VxeiwgV2FzbUkzMkVxeiwgbWFjcm8oY3R4KQogICAgIHJldHVybmkoY3R4LCB0MCkKIGVu
ZCkKIAotd2FzbU9wKGk2NF9zaGwsIFdhc21JNjRTaGwsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEo
Y3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotICAgIGxzaGlmdHEg
dDEsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3Nocl91LCBX
YXNtSTY0U2hyVSwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBt
bG9hZGkoY3R4LCBtX3JocywgdDEpCi0gICAgdXJzaGlmdHEgdDEsIHQwCi0gICAgcmV0dXJucShj
dHgsIHQwKQotZW5kKQotCi13YXNtT3AoaTY0X3Nocl9zLCBXYXNtSTY0U2hyUywgbWFjcm8oY3R4
KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEp
Ci0gICAgcnNoaWZ0cSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21P
cChpNjRfcm90ciwgV2FzbUk2NFJvdHIsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xo
cywgdDApCi0gICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQxKQotICAgIHJyb3RhdGVxIHQxLCB0MAot
ICAgIHJldHVybnEoY3R4LCB0MCkKLWVuZCkKLQotd2FzbU9wKGk2NF9yb3RsLCBXYXNtSTY0Um90
bCwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZGkoY3R4
LCBtX3JocywgdDEpCi0gICAgbHJvdGF0ZXEgdDEsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQot
ZW5kKQotCi13YXNtT3AoaTY0X2VxeiwgV2FzbUk2NEVxeiwgbWFjcm8oY3R4KQotICAgIG1sb2Fk
cShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgY3FlcSB0MCwgMCwgdDAKLSAgICByZXR1cm5pKGN0
eCwgdDApCi1lbmQpCi0KIHdhc21PcChmMzJfbWluLCBXYXNtRjMyTWluLCBtYWNybyhjdHgpCiAg
ICAgbWxvYWRmKGN0eCwgbV9saHMsIGZ0MCkKICAgICBtbG9hZGYoY3R4LCBtX3JocywgZnQxKQpA
QCAtMTc4MiwyMyArMTI3NSw2IEBAIHdhc21PcChmNjRfbWF4LCBXYXNtRjY0TWF4LCBtYWNybyhj
dHgpCiAgICAgcmV0dXJuZChjdHgsIGZ0MSkKIGVuZCkKIAotd2FzbU9wKGY2NF9jb3B5c2lnbiwg
V2FzbUY2NENvcHlzaWduLCBtYWNybyhjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9saHMsIGZ0MCkK
LSAgICBtbG9hZGQoY3R4LCBtX3JocywgZnQxKQotCi0gICAgZmQycSBmdDEsIHQxCi0gICAgbW92
ZSAweDgwMDAwMDAwMDAwMDAwMDAsIHQyCi0gICAgYW5kcSB0MiwgdDEKLQotICAgIGZkMnEgZnQw
LCB0MAotICAgIG1vdmUgMHg3ZmZmZmZmZmZmZmZmZmZmLCB0MgotICAgIGFuZHEgdDIsIHQwCi0K
LSAgICBvcnEgdDEsIHQwCi0gICAgZnEyZCB0MCwgZnQwCi0gICAgcmV0dXJuZChjdHgsIGZ0MCkK
LWVuZCkKLQogd2FzbU9wKGYzMl9jb252ZXJ0X3VfaTMyLCBXYXNtRjMyQ29udmVydFVJMzIsIG1h
Y3JvKGN0eCkKICAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQogICAgIGNpMmYgdDAsIGZ0
MApAQCAtMTk3NCwxMzQgKzE0NTAsNiBAQCB3YXNtT3AoaTMyX2NseiwgV2FzbUkzMkNseiwgbWFj
cm8oY3R4KQogICAgIHJldHVybmkoY3R4LCB0MSkKIGVuZCkKIAotd2FzbU9wKGk2NF9hZGQsIFdh
c21JNjRBZGQsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxv
YWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGFkZHEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQx
KQotZW5kKQotCi13YXNtT3AoaTY0X3N1YiwgV2FzbUk2NFN1YiwgbWFjcm8oY3R4KQotICAgIG1s
b2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAgc3Vi
cSB0MSwgdDAKLSAgICByZXR1cm5xKGN0eCwgdDApCi1lbmQpCi0KLXdhc21PcChpNjRfbXVsLCBX
YXNtSTY0TXVsLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1s
b2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBtdWxxIHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0
MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9hbmQsIFdhc21JNjRBbmQsIG1hY3JvKGN0eCkKLSAgICBt
bG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGFu
ZHEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNtT3AoaTY0X29yLCBX
YXNtSTY0T3IsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxv
YWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIG9ycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEp
Ci1lbmQpCi0KLXdhc21PcChpNjRfeG9yLCBXYXNtSTY0WG9yLCBtYWNybyhjdHgpCi0gICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICB4b3Jx
IHQwLCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9lcSwgV2Fz
bUk2NEVxLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1sb2Fk
cShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWVxIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0g
ICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X25lLCBXYXNtSTY0TmUsIG1h
Y3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9y
aHMsIHQxKQotICAgIGNxbmVxIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJu
aShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2x0X3MsIFdhc21JNjRMdFMsIG1hY3JvKGN0
eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQx
KQotICAgIGNxbHQgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICByZXR1cm5pKGN0eCwg
dDIpCi1lbmQpCi0KLXdhc21PcChpNjRfbGVfcywgV2FzbUk2NExlUywgbWFjcm8oY3R4KQotICAg
IG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCi0gICAg
Y3FsdGVxIHQwLCB0MSwgdDIKLSAgICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQot
ZW5kKQotCi13YXNtT3AoaTY0X2x0X3UsIFdhc21JNjRMdFUsIG1hY3JvKGN0eCkKLSAgICBtbG9h
ZHEoY3R4LCBtX2xocywgdDApCi0gICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxYiB0
MCwgdDEsIHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQot
d2FzbU9wKGk2NF9sZV91LCBXYXNtSTY0TGVVLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwg
bV9saHMsIHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWJlcSB0MCwgdDEs
IHQyCi0gICAgYW5kaSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9w
KGk2NF9ndF9zLCBXYXNtSTY0R3RTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMs
IHQwKQotICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWd0IHQwLCB0MSwgdDIKLSAg
ICBhbmRpIDEsIHQyCi0gICAgcmV0dXJuaShjdHgsIHQyKQotZW5kKQotCi13YXNtT3AoaTY0X2dl
X3MsIFdhc21JNjRHZVMsIG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCi0g
ICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQotICAgIGNxZ3RlcSB0MCwgdDEsIHQyCi0gICAgYW5k
aSAxLCB0MgotICAgIHJldHVybmkoY3R4LCB0MikKLWVuZCkKLQotd2FzbU9wKGk2NF9ndF91LCBX
YXNtSTY0R3RVLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQotICAgIG1s
b2FkcShjdHgsIG1fcmhzLCB0MSkKLSAgICBjcWEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIK
LSAgICByZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfZ2VfdSwgV2FzbUk2NEdl
VSwgbWFjcm8oY3R4KQotICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKLSAgICBtbG9hZHEoY3R4
LCBtX3JocywgdDEpCi0gICAgY3FhZXEgdDAsIHQxLCB0MgotICAgIGFuZGkgMSwgdDIKLSAgICBy
ZXR1cm5pKGN0eCwgdDIpCi1lbmQpCi0KLXdhc21PcChpNjRfY2x6LCBXYXNtSTY0Q2x6LCBtYWNy
byhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKLSAgICBsemNudHEgdDAsIHQx
Ci0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCiB3YXNtT3AoZjMyX2FkZCwgV2FzbUYzMkFk
ZCwgbWFjcm8oY3R4KQogICAgIG1sb2FkZihjdHgsIG1fbGhzLCBmdDApCiAgICAgbWxvYWRmKGN0
eCwgbV9yaHMsIGZ0MSkKQEAgLTIxNDIsMTMgKzE0OTAsMTMgQEAgd2FzbU9wKGYzMl9uZWcsIFdh
c21GMzJOZWcsIG1hY3JvKGN0eCkKICAgICByZXR1cm5mKGN0eCwgZnQxKQogZW5kKQogCi13YXNt
T3AoZjMyX2NlaWwsIFdhc21GMzJDZWlsLCBtYWNybyhjdHgpCit3YXNtUm91bmRpbmdPcChmMzJf
Y2VpbCwgV2FzbUYzMkNlaWwsIG1hY3JvKGN0eCkKICAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQs
IGZ0MCkKICAgICBjZWlsZiBmdDAsIGZ0MQogICAgIHJldHVybmYoY3R4LCBmdDEpCiBlbmQpCiAK
LXdhc21PcChmMzJfZmxvb3IsIFdhc21GMzJGbG9vciwgbWFjcm8oY3R4KQord2FzbVJvdW5kaW5n
T3AoZjMyX2Zsb29yLCBXYXNtRjMyRmxvb3IsIG1hY3JvKGN0eCkKICAgICBtbG9hZGYoY3R4LCBt
X29wZXJhbmQsIGZ0MCkKICAgICBmbG9vcmYgZnQwLCBmdDEKICAgICByZXR1cm5mKGN0eCwgZnQx
KQpAQCAtMjI0MiwxMyArMTU5MCwxMyBAQCB3YXNtT3AoZjY0X25lZywgV2FzbUY2NE5lZywgbWFj
cm8oY3R4KQogICAgIHJldHVybmQoY3R4LCBmdDEpCiBlbmQpCiAKLXdhc21PcChmNjRfY2VpbCwg
V2FzbUY2NENlaWwsIG1hY3JvKGN0eCkKK3dhc21Sb3VuZGluZ09wKGY2NF9jZWlsLCBXYXNtRjY0
Q2VpbCwgbWFjcm8oY3R4KQogICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQogICAgIGNl
aWxkIGZ0MCwgZnQxCiAgICAgcmV0dXJuZChjdHgsIGZ0MSkKIGVuZCkKIAotd2FzbU9wKGY2NF9m
bG9vciwgV2FzbUY2NEZsb29yLCBtYWNybyhjdHgpCit3YXNtUm91bmRpbmdPcChmNjRfZmxvb3Is
IFdhc21GNjRGbG9vciwgbWFjcm8oY3R4KQogICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQw
KQogICAgIGZsb29yZCBmdDAsIGZ0MQogICAgIHJldHVybmQoY3R4LCBmdDEpCkBAIC0yMzAzLDUw
ICsxNjUxLDIwIEBAIHdhc21PcChmNjRfZ2UsIFdhc21GNjRHZSwgbWFjcm8oY3R4KQogZW5kKQog
CiB3YXNtT3AoaTMyX3dyYXBfaTY0LCBXYXNtSTMyV3JhcEk2NCwgbWFjcm8oY3R4KQotICAgIG1s
b2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkK
ICAgICByZXR1cm5pKGN0eCwgdDApCiBlbmQpCiAKLXdhc21PcChpNjRfZXh0ZW5kX3NfaTMyLCBX
YXNtSTY0RXh0ZW5kU0kzMiwgbWFjcm8oY3R4KQotICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwg
dDApCi0gICAgc3hpMnEgdDAsIHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQotZW5kKQotCi13YXNt
T3AoaTY0X2V4dGVuZF91X2kzMiwgV2FzbUk2NEV4dGVuZFVJMzIsIG1hY3JvKGN0eCkKLSAgICBt
bG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIHp4aTJxIHQwLCB0MQotICAgIHJldHVybnEo
Y3R4LCB0MSkKLWVuZCkKLQogd2FzbU9wKGkzMl9leHRlbmQ4X3MsIFdhc21JMzJFeHRlbmQ4Uywg
bWFjcm8oY3R4KQogICAgIG1sb2FkaShjdHgsIG1fb3BlcmFuZCwgdDApCiAgICAgc3hiMmkgdDAs
IHQxCi0gICAgcmV0dXJucShjdHgsIHQxKQorICAgIHJldHVybmkoY3R4LCB0MSkKIGVuZCkKIAog
d2FzbU9wKGkzMl9leHRlbmQxNl9zLCBXYXNtSTMyRXh0ZW5kMTZTLCBtYWNybyhjdHgpCiAgICAg
bWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICBzeGgyaSB0MCwgdDEKLSAgICByZXR1cm5x
KGN0eCwgdDEpCi1lbmQpCi0KLXdhc21PcChpNjRfZXh0ZW5kOF9zLCBXYXNtSTY0RXh0ZW5kOFMs
IG1hY3JvKGN0eCkKLSAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQotICAgIHN4YjJxIHQw
LCB0MQotICAgIHJldHVybnEoY3R4LCB0MSkKLWVuZCkKLQotd2FzbU9wKGk2NF9leHRlbmQxNl9z
LCBXYXNtSTY0RXh0ZW5kMTZTLCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5k
LCB0MCkKLSAgICBzeGgycSB0MCwgdDEKLSAgICByZXR1cm5xKGN0eCwgdDEpCi1lbmQpCi0KLXdh
c21PcChpNjRfZXh0ZW5kMzJfcywgV2FzbUk2NEV4dGVuZDE2UywgbWFjcm8oY3R4KQotICAgIG1s
b2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCi0gICAgc3hpMnEgdDAsIHQxCi0gICAgcmV0dXJucShj
dHgsIHQxKQorICAgIHJldHVybmkoY3R4LCB0MSkKIGVuZCkKIAogd2FzbU9wKGYzMl9jb252ZXJ0
X3NfaTMyLCBXYXNtRjMyQ29udmVydFNJMzIsIG1hY3JvKGN0eCkKQEAgLTIzNTUsNyArMTY3Myw3
IEBAIHdhc21PcChmMzJfY29udmVydF9zX2kzMiwgV2FzbUYzMkNvbnZlcnRTSTMyLCBtYWNybyhj
dHgpCiAgICAgcmV0dXJuZihjdHgsIGZ0MCkKIGVuZCkKIAotd2FzbU9wKGYzMl9jb252ZXJ0X3Nf
aTY0LCBXYXNtRjMyQ29udmVydFNJNjQsIG1hY3JvKGN0eCkKK3dhc21JNjRUb0ZPcChmMzJfY29u
dmVydF9zX2k2NCwgV2FzbUYzMkNvbnZlcnRTSTY0LCBtYWNybyhjdHgpCiAgICAgbWxvYWRxKGN0
eCwgbV9vcGVyYW5kLCB0MCkKICAgICBjcTJmcyB0MCwgZnQwCiAgICAgcmV0dXJuZihjdHgsIGZ0
MCkKQEAgLTIzNzksNyArMTY5Nyw3IEBAIHdhc21PcChmNjRfY29udmVydF9zX2kzMiwgV2FzbUY2
NENvbnZlcnRTSTMyLCBtYWNybyhjdHgpCiAgICAgcmV0dXJuZChjdHgsIGZ0MCkKIGVuZCkKIAot
d2FzbU9wKGY2NF9jb252ZXJ0X3NfaTY0LCBXYXNtRjY0Q29udmVydFNJNjQsIG1hY3JvKGN0eCkK
K3dhc21JNjRUb0ZPcChmNjRfY29udmVydF9zX2k2NCwgV2FzbUY2NENvbnZlcnRTSTY0LCBtYWNy
byhjdHgpCiAgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKICAgICBjcTJkcyB0MCwgZnQw
CiAgICAgcmV0dXJuZChjdHgsIGZ0MCkKQEAgLTIzOTEsMzQgKzE3MDksMjkgQEAgd2FzbU9wKGY2
NF9wcm9tb3RlX2YzMiwgV2FzbUY2NFByb21vdGVGMzIsIG1hY3JvKGN0eCkKICAgICByZXR1cm5k
KGN0eCwgZnQxKQogZW5kKQogCi13YXNtT3AoZjY0X3JlaW50ZXJwcmV0X2k2NCwgV2FzbUY2NFJl
aW50ZXJwcmV0STY0LCBtYWNybyhjdHgpCi0gICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkK
LSAgICBmcTJkIHQwLCBmdDAKLSAgICByZXR1cm5kKGN0eCwgZnQwKQotZW5kKQotCiB3YXNtT3Ao
aTMyX3JlaW50ZXJwcmV0X2YzMiwgV2FzbUkzMlJlaW50ZXJwcmV0RjMyLCBtYWNybyhjdHgpCiAg
ICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCiAgICAgZmYyaSBmdDAsIHQwCiAgICAgcmV0
dXJuaShjdHgsIHQwKQogZW5kKQogCi13YXNtT3AoaTY0X3JlaW50ZXJwcmV0X2Y2NCwgV2FzbUk2
NFJlaW50ZXJwcmV0RjY0LCBtYWNybyhjdHgpCi0gICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBm
dDApCi0gICAgZmQycSBmdDAsIHQwCi0gICAgcmV0dXJucShjdHgsIHQwKQotZW5kKQotCiBtYWNy
byBkcm9wS2VlcChzdGFydE9mZnNldCwgZHJvcCwga2VlcCkKICAgICBsc2hpZnRpIDMsIHN0YXJ0
T2Zmc2V0CiAgICAgc3VicCBjZnIsIHN0YXJ0T2Zmc2V0LCBzdGFydE9mZnNldAogICAgIG5lZ2kg
ZHJvcAoraWYgSlNWQUxVRTY0CiAgICAgc3hpMnEgZHJvcCwgZHJvcAorZW5kCiAKIC5jb3B5TG9v
cDoKICAgICBidGl6IGtlZXAsIC5kb25lCitpZiBKU1ZBTFVFNjQKICAgICBsb2FkcSBbc3RhcnRP
ZmZzZXQsIGRyb3AsIDhdLCB0NgogICAgIHN0b3JlcSB0NiwgW3N0YXJ0T2Zmc2V0XQorZWxzZQor
ICAgIGxvYWQyaWEgW3N0YXJ0T2Zmc2V0LCBkcm9wLCA4XSwgdDUsIHQ2CisgICAgc3RvcmUyaWEg
dDUsIHQ2LCBbc3RhcnRPZmZzZXRdCitlbmQKICAgICBzdWJpIDEsIGtlZXAKICAgICBzdWJwIDgs
IHN0YXJ0T2Zmc2V0CiAgICAgam1wIC5jb3B5TG9vcApAQCAtMjQzNiwzODkgKzE3NDksNiBAQCB3
YXNtT3AoZHJvcF9rZWVwLCBXYXNtRHJvcEtlZXAsIG1hY3JvKGN0eCkKICAgICBkaXNwYXRjaChj
dHgpCiBlbmQpCiAKLW1hY3JvIHdhc21BdG9taWNCaW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bjb2Rl
LCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmksIGZucSkKLSAgICB3YXNtT3AoaTY0X2F0
b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzgldXBwZXJDYXNl
T3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykK
LSAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShjdHgsIG1f
dmFsdWUsIHQwKQotICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNl
dChjdHgsIHQzLCB0MSwgMSkKLSAgICAgICAgZm5iKHQwLCBbdDNdLCB0MiwgdDUsIHQxKQotICAg
ICAgICBhbmRxIDB4ZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQ4VG82NAotICAgICAgICBhc3Nl
cnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmLCAub2sgZW5kKQotICAgICAgICByZXR1cm5xKGN0
eCwgdDApCi0gICAgZW5kKQotICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzE2JWxvd2VyQ2FzZU9w
Y29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhjdHgp
Ci0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwg
bV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKLSAgICAgICAg
ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2so
Y3R4LCB0MywgdDEsIDIpCi0gICAgICAgIGZuaCh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKLSAgICAg
ICAgYW5kcSAweGZmZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQxNlRvNjQKLSAgICAgICAgYXNz
ZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZmZmLCAub2sgZW5kKQotICAgICAgICByZXR1cm5x
KGN0eCwgdDApCi0gICAgZW5kKQotICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzMyJWxvd2VyQ2Fz
ZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNybyhj
dHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0
eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKLSAgICAg
ICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hl
Y2soY3R4LCB0MywgdDEsIDQpCi0gICAgICAgIGZuaSh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkKLSAg
ICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZmZmZmZmZiwgLm9rIGVuZCkKLSAg
ICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19y
bXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0b21pY1JtdyV1cHBlckNhc2VPcGNvZGUlLCBt
YWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdn
ZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkK
LSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25t
ZW50Q2hlY2soY3R4LCB0MywgdDEsIDgpCi0gICAgICAgIGZucSh0MCwgW3QzXSwgdDIsIHQ1LCB0
MSkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLWVuZAotCi1tYWNybyB3YXNt
QXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VP
cGNvZGUsIGZuaSwgZm5xKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMobG93ZXJDYXNlT3Bj
b2RlLCB1cHBlckNhc2VPcGNvZGUsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpCi0gICAgICAgICAgICBpZiBYODZfNjQKLSAgICAgICAgICAgICAgICBtb3Zl
IHQwR1BSLCB0NUdQUgotICAgICAgICAgICAgICAgIGxvYWRiIG1lbSwgdDBHUFIKLSAgICAgICAg
ICAgIC5sb29wOgotICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCi0gICAgICAgICAg
ICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKLSAgICAgICAgICAgICAgICBiYXRvbWljd2Vha2Nhc2Ig
dDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAu
bG9vcDoKLSAgICAgICAgICAgICAgICBsb2FkbGlua2FjcWIgbWVtLCB0MUdQUgotICAgICAgICAg
ICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgICAgIHN0b3JlY29u
ZHJlbGIgdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwg
Lmxvb3AKLSAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAgICAgICAgICAgZW5k
Ci0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0
MUdQUikKLSAgICAgICAgICAgIGlmIFg4Nl82NAotICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIs
IHQ1R1BSCi0gICAgICAgICAgICAgICAgbG9hZGggbWVtLCB0MEdQUgotICAgICAgICAgICAgLmxv
b3A6Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKLSAgICAgICAgICAgICAgICBm
bmkodDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgICAgIGJhdG9taWN3ZWFrY2FzaCB0MEdQUiwg
dDJHUFIsIG1lbSwgLmxvb3AKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIC5sb29wOgot
ICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxaCBtZW0sIHQxR1BSCi0gICAgICAgICAgICAgICAg
Zm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICAgICAgc3RvcmVjb25kcmVsaCB0
NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAot
ICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0gICAgICAgICAgICBlbmQKLSAgICAg
ICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQot
ICAgICAgICAgICAgaWYgWDg2XzY0Ci0gICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDVHUFIK
LSAgICAgICAgICAgICAgICBsb2FkaSBtZW0sIHQwR1BSCi0gICAgICAgICAgICAubG9vcDoKLSAg
ICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgotICAgICAgICAgICAgICAgIGZuaSh0NUdQ
UiwgdDJHUFIpCi0gICAgICAgICAgICAgICAgYmF0b21pY3dlYWtjYXNpIHQwR1BSLCB0MkdQUiwg
bWVtLCAubG9vcAotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgLmxvb3A6Ci0gICAgICAg
ICAgICAgICAgbG9hZGxpbmthY3FpIG1lbSwgdDFHUFIKLSAgICAgICAgICAgICAgICBmbmkodDBH
UFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0
MkdQUiwgbWVtCi0gICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCi0gICAgICAg
ICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAgICAgICAgICAgIGVuZAotICAgICAgICBlbmQs
Ci0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAg
ICAgICBpZiBYODZfNjQKLSAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgotICAgICAg
ICAgICAgICAgIGxvYWRxIG1lbSwgdDBHUFIKLSAgICAgICAgICAgIC5sb29wOgotICAgICAgICAg
ICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCi0gICAgICAgICAgICAgICAgZm5xKHQ1R1BSLCB0MkdQ
UikKLSAgICAgICAgICAgICAgICBiYXRvbWljd2Vha2Nhc3EgdDBHUFIsIHQyR1BSLCBtZW0sIC5s
b29wCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAubG9vcDoKLSAgICAgICAgICAgICAg
ICBsb2FkbGlua2FjcXEgbWVtLCB0MUdQUgotICAgICAgICAgICAgICAgIGZucSh0MEdQUiwgdDFH
UFIsIHQyR1BSKQotICAgICAgICAgICAgICAgIHN0b3JlY29uZHJlbHEgdDVHUFIsIHQyR1BSLCBt
ZW0KLSAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKLSAgICAgICAgICAgICAg
ICBtb3ZlIHQxR1BSLCB0MEdQUgotICAgICAgICAgICAgZW5kCi0gICAgICAgIGVuZCkKLWVuZAot
Ci1pZiBYODZfNjQKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9hZGQsIEFkZCwKLSAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZGIg
dDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwg
dDFHUFIpIGF0b21pY3hjaGdhZGRoIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaSB0MEdQUiwgbWVtIGVu
ZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWlj
eGNoZ2FkZHEgdDBHUFIsIG1lbSBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfc3Vi
LCBTdWIsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0
b21pY3hjaGdzdWJiIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3ViaCB0MEdQUiwgbWVtIGVuZCwKLSAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3N1Ymkg
dDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwg
dDFHUFIpIGF0b21pY3hjaGdzdWJxIHQwR1BSLCBtZW0gZW5kKQotICAgIHdhc21BdG9taWNCaW5h
cnlSTVdPcHMoX3hjaGcsIFhjaGcsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdiIHQwR1BSLCBtZW0gZW5kLAotICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnaCB0MEdQUiwgbWVtIGVu
ZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWlj
eGNoZ2kgdDBHUFIsIG1lbSBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdxIHQwR1BSLCBtZW0gZW5kKQotICAgIHdhc21BdG9taWNC
aW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYW5kLCBBbmQsCi0gICAgICAgIG1hY3JvKHQ1R1BSLCB0
MkdQUikKLSAgICAgICAgICAgIGFuZGkgdDVHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAg
ICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAgICAgICAgYW5kcSB0NUdQUiwgdDJHUFIKLSAg
ICAgICAgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfb3IsIE9y
LAotICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBvcmkgdDVHUFIsIHQy
R1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQotICAgICAgICAg
ICAgb3JxIHQ1R1BSLCB0MkdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJN
V09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwKLSAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQot
ICAgICAgICAgICAgeG9yaSB0NUdQUiwgdDJHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNy
byh0NUdQUiwgdDJHUFIpCi0gICAgICAgICAgICB4b3JxIHQ1R1BSLCB0MkdQUgotICAgICAgICBl
bmQpCi1lbHNpZiBBUk02NEUKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9hZGQsIEFkZCwK
LSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNo
Z2FkZGIgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0
MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQs
Ci0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hj
aGdhZGRpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwg
dDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZHEgdDBHUFIsIG1lbSwgdDBHUFIgZW5k
KQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3N1YiwgU3ViLAotICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgbmVncSB0MEdQUgot
ICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGIgdDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5k
LAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAg
ICAgICAgbmVncSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGggdDBHUFIsIG1lbSwg
dDBHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVH
UFIsIHQxR1BSKQotICAgICAgICAgICAgbmVncSB0MEdQUgotICAgICAgICAgICAgYXRvbWljeGNo
Z2FkZGkgdDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgbmVncSB0MEdQUgotICAg
ICAgICAgICAgYXRvbWljeGNoZ2FkZHEgdDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kKQot
ICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX2FuZCwgQW5kLAotICAgICAgICBtYWNybyh0MEdQ
UiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgbm90cSB0MEdQUgotICAg
ICAgICAgICAgYXRvbWljeGNoZ2NsZWFyYiB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBlbmQs
Ci0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCi0gICAgICAg
ICAgICBub3RxIHQwR1BSCi0gICAgICAgICAgICBhdG9taWN4Y2hnY2xlYXJoIHQwR1BSLCBtZW0s
IHQwR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1
R1BSLCB0MUdQUikKLSAgICAgICAgICAgIG5vdHEgdDBHUFIKLSAgICAgICAgICAgIGF0b21pY3hj
aGdjbGVhcmkgdDBHUFIsIG1lbSwgdDBHUFIKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQotICAgICAgICAgICAgbm90cSB0MEdQUgot
ICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFycSB0MEdQUiwgbWVtLCB0MEdQUgotICAgICAgICBl
bmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfb3IsIE9yLAotICAgICAgICBtYWNybyh0
MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnb3JiIHQwR1BSLCBtZW0s
IHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQ
UikgYXRvbWljeGNoZ29yaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQw
R1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcmkgdDBHUFIsIG1lbSwg
dDBHUFIgZW5kLAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BS
KSBhdG9taWN4Y2hnb3JxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKLSAgICB3YXNtQXRvbWljQmlu
YXJ5Uk1XT3BzKF94b3IsIFhvciwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1
R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmIgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAotICAgICAg
ICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hneG9yaCB0
MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAg
ICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcnEg
dDBHUFIsIG1lbSwgdDBHUFIgZW5kKQotICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3hjaGcs
IFhjaGcsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0
b21pY3hjaGdiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIG1l
bSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2ggdDBHUFIsIG1lbSwgdDBHUFIgZW5k
LAotICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4
Y2hnaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKLWVs
c2UKLSAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FkZCwgQWRkLAotICAg
ICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgYWRkaSB0MEdQUiwg
dDFHUFIsIHQyR1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0
MkdQUikKLSAgICAgICAgICAgIGFkZHEgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQp
Ci0gICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9zdWIsIFN1YiwKLSAgICAg
ICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIHN1YmkgdDFHUFIsIHQw
R1BSLCB0MkdQUgotICAgICAgICBlbmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJH
UFIpCi0gICAgICAgICAgICBzdWJxIHQxR1BSLCB0MEdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQot
ICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfeGNoZywgWGNoZywKLSAgICAg
ICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQy
R1BSCi0gICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAg
ICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCi0gICAgICAgIGVuZCkKLSAgICB3YXNtQXRvbWlj
QmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FuZCwgQW5kLAotICAgICAgICBtYWNybyh0MEdQUiwg
dDFHUFIsIHQyR1BSKQotICAgICAgICAgICAgYW5kaSB0MEdQUiwgdDFHUFIsIHQyR1BSCi0gICAg
ICAgIGVuZCwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKLSAgICAgICAgICAg
IGFuZHEgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0Jp
bmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9vciwgT3IsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQ
UiwgdDJHUFIpCi0gICAgICAgICAgICBvcmkgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBl
bmQsCi0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICBvcnEg
dDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQpCi0gICAgd2FzbUF0b21pY0JpbmFyeVJN
V09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwKLSAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0
MkdQUikKLSAgICAgICAgICAgIHhvcmkgdDBHUFIsIHQxR1BSLCB0MkdQUgotICAgICAgICBlbmQs
Ci0gICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCi0gICAgICAgICAgICB4b3JxIHQw
R1BSLCB0MUdQUiwgdDJHUFIKLSAgICAgICAgZW5kKQotZW5kCi0KLW1hY3JvIHdhc21BdG9taWND
b21wYXJlRXhjaGFuZ2VPcHMobG93ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwg
Zm5oLCBmbmksIGZucSkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29k
ZSVfdSwgV2FzbUk2NEF0b21pY1JtdzgldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAg
ICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29m
ZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQotICAgICAgICBt
bG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50
ZXJBZGRpbmdPZmZzZXQoY3R4LCB0MywgdDEsIDEpCi0gICAgICAgIGZuYih0MCwgdDIsIFt0M10s
IHQ1LCB0MSkKLSAgICAgICAgYW5kcSAweGZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kOFRvNjQK
LSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZiwgLm9rIGVuZCkKLSAgICAg
ICAgcmV0dXJucShjdHgsIHQwKQotICAgIGVuZCkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcx
NiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9taWNSbXcxNiV1cHBlckNhc2VPcGNvZGUl
VSwgbWFjcm8oY3R4KQotICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQotICAgICAg
ICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV9leHBlY3Rl
ZCwgdDApCi0gICAgICAgIG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQotICAgICAgICBlbWl0Q2hl
Y2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhjdHgsIHQz
LCB0MSwgMikKLSAgICAgICAgZm5oKHQwLCB0MiwgW3QzXSwgdDUsIHQxKQotICAgICAgICBhbmRx
IDB4ZmZmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDE2VG82NAotICAgICAgICBhc3NlcnQobWFj
cm8ob2spIGJxYmVxIHQwLCAweGZmZmYsIC5vayBlbmQpCi0gICAgICAgIHJldHVybnEoY3R4LCB0
MCkKLSAgICBlbmQpCi0gICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MzIlbG93ZXJDYXNlT3Bjb2Rl
JV91LCBXYXNtSTY0QXRvbWljUm13MzIldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKLSAg
ICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKLSAgICAgICAgd2dldHUoY3R4LCBtX29m
ZnNldCwgdDEpCi0gICAgICAgIG1sb2FkcShjdHgsIG1fZXhwZWN0ZWQsIHQwKQotICAgICAgICBt
bG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKLSAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50
ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDQpCi0gICAgICAg
IGZuaSh0MCwgdDIsIFt0M10sIHQ1LCB0MSkKLSAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJl
cSB0MCwgMHhmZmZmZmZmZiwgLm9rIGVuZCkKLSAgICAgICAgcmV0dXJucShjdHgsIHQwKQotICAg
IGVuZCkKLSAgICB3YXNtT3AoaTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2
NEF0b21pY1JtdyV1cHBlckNhc2VPcGNvZGUlLCBtYWNybyhjdHgpCi0gICAgICAgIG1sb2FkaShj
dHgsIG1fcG9pbnRlciwgdDMpCi0gICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQotICAg
ICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkKLSAgICAgICAgbWxvYWRxKGN0eCwgbV92
YWx1ZSwgdDIpCi0gICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0
V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA4KQotICAgICAgICBmbnEodDAsIHQyLCBb
dDNdLCB0NSwgdDEpCi0gICAgICAgIHJldHVybnEoY3R4LCB0MCkKLSAgICBlbmQpCi1lbmQKLQot
IyB0MEdQUiA9PiBleHBlY3RlZCwgdDJHUFIgPT4gdmFsdWUsIG1lbSA9PiBtZW1vcnkgcmVmZXJl
bmNlCi13YXNtQXRvbWljQ29tcGFyZUV4Y2hhbmdlT3BzKF9jbXB4Y2hnLCBDbXB4Y2hnLAotICAg
IG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgIGlmIFg4Nl82
NCBvciBBUk02NEUKLSAgICAgICAgICAgIGJxYSB0MEdQUiAsIDB4ZmYsIC5mYWlsCi0gICAgICAg
ICAgICBhdG9taWN3ZWFrY2FzYiB0MEdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgam1wIC5k
b25lCi0gICAgICAgIC5mYWlsOgotICAgICAgICAgICAgYXRvbWljbG9hZGIgbWVtLCB0MEdQUgot
ICAgICAgICAuZG9uZToKLSAgICAgICAgZWxzZQotICAgICAgICAubG9vcDoKLSAgICAgICAgICAg
IGxvYWRsaW5rYWNxYiBtZW0sIHQxR1BSCi0gICAgICAgICAgICBicW5lcSB0MEdQUiwgdDFHUFIs
IC5mYWlsCi0gICAgICAgICAgICBzdG9yZWNvbmRyZWxiIHQ1R1BSLCB0MkdQUiwgbWVtCi0gICAg
ICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAg
ICAgIC5mYWlsOgotICAgICAgICAgICAgc3RvcmVjb25kcmVsYiB0NUdQUiwgdDFHUFIsIG1lbQot
ICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGptcCAubG9vcAot
ICAgICAgICAuZG9uZToKLSAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCi0gICAgICAgIGVu
ZAotICAgIGVuZCwKLSAgICBtYWNybyh0MEdQUiwgdDJHUFIsIG1lbSwgdDVHUFIsIHQxR1BSKQot
ICAgICAgICBpZiBYODZfNjQgb3IgQVJNNjRFCi0gICAgICAgICAgICBicWEgdDBHUFIsIDB4ZmZm
ZiwgLmZhaWwKLSAgICAgICAgICAgIGF0b21pY3dlYWtjYXNoIHQwR1BSLCB0MkdQUiwgbWVtCi0g
ICAgICAgICAgICBqbXAgLmRvbmUKLSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAgICBhdG9taWNs
b2FkaCBtZW0sIHQwR1BSCi0gICAgICAgIC5kb25lOgotICAgICAgICBlbHNlCi0gICAgICAgIC5s
b29wOgotICAgICAgICAgICAgbG9hZGxpbmthY3FoIG1lbSwgdDFHUFIKLSAgICAgICAgICAgIGJx
bmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKLSAgICAgICAgICAgIHN0b3JlY29uZHJlbGggdDVHUFIs
IHQyR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAg
ICBqbXAgLmxvb3AKLSAgICAgICAgLmZhaWw6Ci0gICAgICAgICAgICBzdG9yZWNvbmRyZWxoIHQ1
R1BSLCB0MUdQUiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQotICAgICAg
ICAgICAgam1wIC5sb29wCi0gICAgICAgIC5kb25lOgotICAgICAgICAgICAgbW92ZSB0MUdQUiwg
dDBHUFIKLSAgICAgICAgZW5kCi0gICAgZW5kLAotICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVt
LCB0NUdQUiwgdDFHUFIpCi0gICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKLSAgICAgICAgICAg
IGJxYSB0MEdQUiwgMHhmZmZmZmZmZiwgLmZhaWwKLSAgICAgICAgICAgIGF0b21pY3dlYWtjYXNp
IHQwR1BSLCB0MkdQUiwgbWVtCi0gICAgICAgICAgICBqbXAgLmRvbmUKLSAgICAgICAgLmZhaWw6
Ci0gICAgICAgICAgICBhdG9taWNsb2FkaSBtZW0sIHQwR1BSCi0gICAgICAgIC5kb25lOgotICAg
ICAgICBlbHNlCi0gICAgICAgIC5sb29wOgotICAgICAgICAgICAgbG9hZGxpbmthY3FpIG1lbSwg
dDFHUFIKLSAgICAgICAgICAgIGJxbmVxIHQwR1BSLCB0MUdQUiwgLmZhaWwKLSAgICAgICAgICAg
IHN0b3JlY29uZHJlbGkgdDVHUFIsIHQyR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEgdDVHUFIs
IDAsIC5kb25lCi0gICAgICAgICAgICBqbXAgLmxvb3AKLSAgICAgICAgLmZhaWw6Ci0gICAgICAg
ICAgICBzdG9yZWNvbmRyZWxpIHQ1R1BSLCB0MUdQUiwgbWVtCi0gICAgICAgICAgICBiaWVxIHQ1
R1BSLCAwLCAuZG9uZQotICAgICAgICAgICAgam1wIC5sb29wCi0gICAgICAgIC5kb25lOgotICAg
ICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKLSAgICAgICAgZW5kCi0gICAgZW5kLAotICAgIG1h
Y3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwgdDFHUFIpCi0gICAgICAgIGlmIFg4Nl82NCBv
ciBBUk02NEUKLSAgICAgICAgICAgIGF0b21pY3dlYWtjYXNxIHQwR1BSLCB0MkdQUiwgbWVtCi0g
ICAgICAgIGVsc2UKLSAgICAgICAgLmxvb3A6Ci0gICAgICAgICAgICBsb2FkbGlua2FjcXEgbWVt
LCB0MUdQUgotICAgICAgICAgICAgYnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAotICAgICAgICAg
ICAgc3RvcmVjb25kcmVscSB0NUdQUiwgdDJHUFIsIG1lbQotICAgICAgICAgICAgYmllcSB0NUdQ
UiwgMCwgLmRvbmUKLSAgICAgICAgICAgIGptcCAubG9vcAotICAgICAgICAuZmFpbDoKLSAgICAg
ICAgICAgIHN0b3JlY29uZHJlbHEgdDVHUFIsIHQxR1BSLCBtZW0KLSAgICAgICAgICAgIGJpZXEg
dDVHUFIsIDAsIC5kb25lCi0gICAgICAgICAgICBqbXAgLmxvb3AKLSAgICAgICAgLmRvbmU6Ci0g
ICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgotICAgICAgICBlbmQKLSAgICBlbmQpCi0KIHdh
c21PcChhdG9taWNfZmVuY2UsIFdhc21Ecm9wS2VlcCwgbWFjcm8oY3R4KQogICAgIGZlbmNlCiAg
ICAgZGlzcGF0Y2goY3R4KQpAQCAtMjg0Nyw5ICsxNzc3LDE0IEBAIG1hY3JvIGNvbW1vbkNhdGNo
SW1wbChjdHgsIHN0b3JlV2FzbUluc3RhbmNlKQogICAgIGNvbnZlcnRDYWxsZWVUb1ZNKHQzKQog
ICAgIHJlc3RvcmVDYWxsZWVTYXZlc0Zyb21WTUVudHJ5RnJhbWVDYWxsZWVTYXZlc0J1ZmZlcih0
MywgdDApCiAKLSAgICBsb2FkcCBWTTo6Y2FsbGVlRm9yV2FzbUNhdGNoW3QzXSwgd3MxCi0gICAg
c3RvcmVwIDAsIFZNOjpjYWxsZWVGb3JXYXNtQ2F0Y2hbdDNdCi0gICAgc3RvcmVwIHdzMSwgQ2Fs
bGVlW2Nmcl0KKyAgICBsb2FkcCBWTTo6Y2FsbGVlRm9yV2FzbUNhdGNoICsgUGF5bG9hZE9mZnNl
dFt0M10sIHdzMQorICAgIHN0b3JlcCAwLCBWTTo6Y2FsbGVlRm9yV2FzbUNhdGNoICsgUGF5bG9h
ZE9mZnNldFt0M10KKyAgICBzdG9yZXAgd3MxLCBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0K
K2lmIG5vdCBKU1ZBTFVFNjQKKyAgICBsb2FkaSBWTTo6Y2FsbGVlRm9yV2FzbUNhdGNoICsgVGFn
T2Zmc2V0W3QzXSwgd3MxCisgICAgc3RvcmVpIEVtcHR5VmFsdWVUYWcsIFZNOjpjYWxsZWVGb3JX
YXNtQ2F0Y2ggKyBUYWdPZmZzZXRbdDNdCisgICAgc3RvcmVpIHdzMSwgQ2FsbGVlICsgVGFnT2Zm
c2V0W2Nmcl0KK2VuZAogCiAgICAgbG9hZHAgVk06OmNhbGxGcmFtZUZvckNhdGNoW3QzXSwgY2Zy
CiAgICAgc3RvcmVwIDAsIFZNOjpjYWxsRnJhbWVGb3JDYXRjaFt0M10KQEAgLTI4ODgsOCArMTgy
MywxMyBAQCBtYWNybyBjYXRjaEltcGwoY3R4LCBzdG9yZVdhc21JbnN0YW5jZSkKIAogLmNvcHlM
b29wOgogICAgIGJ0aXogdDMsIC5kb25lCitpZiBKU1ZBTFVFNjQKICAgICBsb2FkcSBbdDFdLCB0
NgogICAgIHN0b3JlcSB0NiwgW3QyXQorZWxzZQorICAgIGxvYWQyaWEgW3QxXSwgdDUsIHQ2Cisg
ICAgc3RvcmUyaWEgdDUsIHQ2LCBbdDJdCitlbmQKICAgICBzdWJpIDEsIHQzCiAgICAgIyBGSVhN
RTogVXNlIGFybSBzdG9yZS1hZGQvc3ViIGluc3RydWN0aW9ucyBpbiB3YXNtIExMSW50IGNhdGNo
CiAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjEwCkBA
IC0yOTE3LDMgKzE4NTcsMTAgQEAgZW5kKQogY29tbW9uV2FzbU9wKHdhc21fY2F0Y2hfYWxsX25v
X3RscywgV2FzbUNhdGNoQWxsLCBtYWNybygpIGVuZCwgbWFjcm8oY3R4KQogICAgIGNhdGNoQWxs
SW1wbChjdHgsIG1hY3JvKGluc3RhbmNlKSBlbmQpCiBlbmQpCisKKyMgVmFsdWUtcmVwcmVzZW50
YXRpb24tc3BlY2lmaWMgY29kZS4KK2lmIEpTVkFMVUU2NAorICAgIGluY2x1ZGUgV2ViQXNzZW1i
bHk2NAorZWxzZQorICAgIGluY2x1ZGUgV2ViQXNzZW1ibHkzMl82NAorZW5kCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHkzMl82NC5hc20gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHkzMl82NC5hc20KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lYzE4OWY5NzYzZTcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHkzMl82NC5hc20KQEAg
LTAsMCArMSwxMTI5IEBACisjIENvcHlyaWdodCAoQykgMjAxMS0yMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoK
KyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisj
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CisjIENvbnN0YW50cworCitjb25zdCBNc3dPZmZzZXQgPSA0Citjb25zdCBMc3dPZmZzZXQgPSAw
CisKKyMgT3Bjb2RlcyB0aGF0IHNob3VsZCBldmVudHVhbGx5IGJlIHNoYXJlZCB3aXRoIEpTIGxs
aW50CisKK3dhc21PcChtb3YsIFdhc21Nb3YsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwg
bV9zcmMsIHQxLCB0MCkKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKworIyBXYXNt
IHNwZWNpZmljIGJ5dGVjb2RlcworCittYWNybyBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFk
ZGluZ09mZnNldChwb2ludGVyLCBvZmZzZXQsIHNpemUpCisgICAgIyBUaGlzIG1hY3JvIHVwZGF0
ZXMgJ3BvaW50ZXInIHRvIHRhcmdldCBhZGRyZXNzLCBhbmQgbWF5IHRocmFzaCAnb2Zmc2V0Jwor
aWYgQVJNdjcKKyAgICAjIE5vdCBlbm91Z2ggcmVnaXN0ZXJzIG9uIGFybSB0byBrZWVwIHRoZSBt
ZW1vcnkgYmFzZSBhbmQgc2l6ZSBpbiBwaW5uZWQKKyAgICAjIHJlZ2lzdGVycywgc28gbG9hZCB0
aGVtIG9uIGVhY2ggYWNjZXNzIGluc3RlYWQuIEZJWE1FOiBpbXByb3ZlIHRoaXMuCisgICAgYWRk
cHMgb2Zmc2V0LCBwb2ludGVyCisgICAgYmNzIC50aHJvdworICAgIGFkZHBzIHNpemUgLSAxLCBw
b2ludGVyLCBvZmZzZXQgIyBVc2Ugb2Zmc2V0IGFzIHNjcmF0Y2ggcmVnaXN0ZXIKKyAgICBiY3Mg
LnRocm93CisgICAgYnBiIG9mZnNldCwgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkQm91bmRzQ2hl
Y2tpbmdTaXplW3dhc21JbnN0YW5jZV0sIC5jb250aW51YXRpb24KKy50aHJvdzoKKyAgICB0aHJv
d0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKKy5jb250aW51YXRpb246CisgICAg
YWRkcCBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRNZW1vcnlbd2FzbUluc3RhbmNlXSwgcG9pbnRl
cgorZWxzZQorICAgIGNyYXNoKCkKK2VuZAorZW5kCisKK21hY3JvIGVtaXRDaGVja0FuZFByZXBh
cmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKHBvaW50ZXIsIG9mZnNldCwg
c2l6ZSkKKyAgICAjIFRoaXMgbWFjcm8gdXBkYXRlcyAncG9pbnRlcicgdG8gdGFyZ2V0IGFkZHJl
c3MsIGFuZCBtYXkgdGhyYXNoICdvZmZzZXQnCitpZiBBUk12NworICAgICMgTm90IGVub3VnaCBy
ZWdpc3RlcnMgb24gYXJtIHRvIGtlZXAgdGhlIG1lbW9yeSBiYXNlIGFuZCBzaXplIGluIHBpbm5l
ZAorICAgICMgcmVnaXN0ZXJzLCBzbyBsb2FkIHRoZW0gb24gZWFjaCBhY2Nlc3MgaW5zdGVhZC4g
RklYTUU6IGltcHJvdmUgdGhpcy4KKyAgICBhZGRwcyBvZmZzZXQsIHBvaW50ZXIKKyAgICBiY3Mg
LnRocm93CisgICAgYWRkcHMgc2l6ZSAtIDEsIHBvaW50ZXIsIG9mZnNldCAjIFVzZSBvZmZzZXQg
YXMgc2NyYXRjaCByZWdpc3RlcgorICAgIGJjcyAudGhyb3cKKyAgICBicGIgb2Zmc2V0LCBXYXNt
OjpJbnN0YW5jZTo6bV9jYWNoZWRCb3VuZHNDaGVja2luZ1NpemVbd2FzbUluc3RhbmNlXSwgLmNv
bnRpbnVhdGlvbgorLnRocm93OgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5
QWNjZXNzKQorLmNvbnRpbnVhdGlvbjoKKyAgICBhZGRwIFdhc206Okluc3RhbmNlOjptX2NhY2hl
ZE1lbW9yeVt3YXNtSW5zdGFuY2VdLCBwb2ludGVyCisgICAgYnRwbnogcG9pbnRlciwgKHNpemUg
LSAxKSwgLnRocm93CitlbHNlCisgICAgY3Jhc2goKQorZW5kCitlbmQKKworbWFjcm8gd2FzbUxv
YWRPcChuYW1lLCBzdHJ1Y3QsIHNpemUsIGZuKQorICAgIHdhc21PcChuYW1lLCBzdHJ1Y3QsIG1h
Y3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MCkKKyAgICAgICAgd2dl
dHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVy
QWRkaW5nT2Zmc2V0KHQwLCB0MSwgc2l6ZSkKKyAgICAgICAgZm4odDAsIHQzLCB0MikKKyAgICAg
ICAgcmV0dXJuMmkoY3R4LCB0MywgdDIpCisgICAgZW5kKQorZW5kCisKK3dhc21Mb2FkT3AobG9h
ZDhfdSwgV2FzbUxvYWQ4VSwgMSwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9h
ZGIgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cKKyAgICBtb3ZlIDAsIGRzdE1zdworZW5kKQord2Fz
bUxvYWRPcChsb2FkMTZfdSwgV2FzbUxvYWQxNlUsIDIsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0
THN3KQorICAgIGxvYWRoIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAgbW92ZSAwLCBkc3RN
c3cKK2VuZCkKK3dhc21Mb2FkT3AobG9hZDMyX3UsIFdhc21Mb2FkMzJVLCA0LCBtYWNybyhhZGRy
LCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdworICAg
IG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGxvYWQ2NF91LCBXYXNtTG9hZDY0VSwg
OCwgbWFjcm8oYWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgIyBNaWdodCBiZSB1bmFsaWduZWQs
IHNvIGNhbid0IHVzZSBsb2FkMmlhCisgICAgbG9hZGkgTHN3T2Zmc2V0W2FkZHJdLCBkc3RMc3cK
KyAgICBsb2FkaSBNc3dPZmZzZXRbYWRkcl0sIGRzdE1zdworZW5kKQorCit3YXNtTG9hZE9wKGkz
Ml9sb2FkOF9zLCBXYXNtSTMyTG9hZDhTLCAxLCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykK
KyAgICBsb2FkYnNpIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAgbW92ZSAwLCBkc3RNc3cK
K2VuZCkKK3dhc21Mb2FkT3AoaTMyX2xvYWQxNl9zLCBXYXNtSTMyTG9hZDE2UywgMiwgbWFjcm8o
YWRkciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGhzaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExz
dworICAgIG1vdmUgMCwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGk2NF9sb2FkOF9zLCBXYXNt
STY0TG9hZDhTLCAxLCBtYWNybyhhZGRyLCBkc3RNc3csIGRzdExzdykKKyAgICBsb2FkYnNpIExz
d09mZnNldFthZGRyXSwgZHN0THN3CisgICAgcnNoaWZ0aSBkc3RMc3csIDMxLCBkc3RNc3cKK2Vu
ZCkKK3dhc21Mb2FkT3AoaTY0X2xvYWQxNl9zLCBXYXNtSTY0TG9hZDE2UywgMiwgbWFjcm8oYWRk
ciwgZHN0TXN3LCBkc3RMc3cpCisgICAgbG9hZGhzaSBMc3dPZmZzZXRbYWRkcl0sIGRzdExzdwor
ICAgIHJzaGlmdGkgZHN0THN3LCAzMSwgZHN0TXN3CitlbmQpCit3YXNtTG9hZE9wKGk2NF9sb2Fk
MzJfcywgV2FzbUk2NExvYWQzMlMsIDQsIG1hY3JvKGFkZHIsIGRzdE1zdywgZHN0THN3KQorICAg
IGxvYWRpIExzd09mZnNldFthZGRyXSwgZHN0THN3CisgICAgcnNoaWZ0aSBkc3RMc3csIDMxLCBk
c3RNc3cKK2VuZCkKKworbWFjcm8gd2FzbVN0b3JlT3AobmFtZSwgc3RydWN0LCBzaXplLCBmbikK
KyAgICB3YXNtT3AobmFtZSwgc3RydWN0LCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgs
IG1fcG9pbnRlciwgdDApCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAg
ICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldCh0MCwgdDEsIHNpemUpCisg
ICAgICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVlLCB0MywgdDIpCisgICAgICAgIGZuKHQzLCB0Miwg
dDApCisgICAgICAgIGRpc3BhdGNoKGN0eCkKKyAgICBlbmQpCitlbmQKKword2FzbVN0b3JlT3Ao
c3RvcmU4LCBXYXNtU3RvcmU4LCAxLCBtYWNybyhzcmNNc3csIHNyY0xzdywgYWRkcikKKyAgICBz
dG9yZWIgc3JjTHN3LCBMc3dPZmZzZXRbYWRkcl0KK2VuZCkKK3dhc21TdG9yZU9wKHN0b3JlMTYs
IFdhc21TdG9yZTE2LCAyLCBtYWNybyhzcmNNc3csIHNyY0xzdywgYWRkcikKKyAgICBzdG9yZWgg
c3JjTHN3LCBMc3dPZmZzZXRbYWRkcl0KK2VuZCkKK3dhc21TdG9yZU9wKHN0b3JlMzIsIFdhc21T
dG9yZTMyLCA0LCBtYWNybyhzcmNNc3csIHNyY0xzdywgYWRkcikKKyAgICBzdG9yZWkgc3JjTHN3
LCBMc3dPZmZzZXRbYWRkcl0KK2VuZCkKK3dhc21TdG9yZU9wKHN0b3JlNjQsIFdhc21TdG9yZTY0
LCA4LCBtYWNybyhzcmNNc3csIHNyY0xzdywgYWRkcikKKyAgICAjIE1pZ2h0IGJlIHVuYWxpZ25l
ZCwgc28gY2FuJ3QgdXNlIHN0b3JlMmlhCisgICAgc3RvcmVpIHNyY0xzdywgTHN3T2Zmc2V0W2Fk
ZHJdCisgICAgc3RvcmVpIHNyY01zdywgTXN3T2Zmc2V0W2FkZHJdCitlbmQpCisKK3dhc21PcChy
ZWZfaXNfbnVsbCwgV2FzbVJlZklzTnVsbCwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBt
X3JlZiwgdDEsIHQwKSAjIHQwIGlzIHVudXNlZAorICAgIGNpZXEgdDEsIE51bGxUYWcsIHQwCisg
ICAgcmV0dXJuaShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoZ2V0X2dsb2JhbCwgV2FzbUdldEds
b2JhbCwgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2Fz
bUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQorICAgIGxv
YWQyaWEgW3QwLCB0MSwgOF0sIHQwLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5k
KQorCit3YXNtT3Aoc2V0X2dsb2JhbCwgV2FzbVNldEdsb2JhbCwgbWFjcm8oY3R4KQorICAgIGxv
YWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0
dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQorICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVlLCB0Mywg
dDIpCisgICAgc3RvcmUyaWEgdDIsIHQzLCBbdDAsIHQxLCA4XQorICAgIGRpc3BhdGNoKGN0eCkK
K2VuZCkKKword2FzbU9wKGdldF9nbG9iYWxfcG9ydGFibGVfYmluZGluZywgV2FzbUdldEdsb2Jh
bFBvcnRhYmxlQmluZGluZywgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjpt
X2dsb2JhbHNbd2FzbUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgs
IHQxKQorICAgIGxvYWRwIFt0MCwgdDEsIDhdLCB0MAorICAgIGxvYWQyaWEgW3QwXSwgdDAsIHQx
CisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChzZXRfZ2xvYmFsX3Bv
cnRhYmxlX2JpbmRpbmcsIFdhc21TZXRHbG9iYWxQb3J0YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkK
KyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisg
ICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkKKyAgICBtbG9hZDJpKGN0eCwgbV92YWx1
ZSwgdDMsIHQyKQorICAgIGxvYWRwIFt0MCwgdDEsIDhdLCB0MAorICAgIHN0b3JlMmlhIHQyLCB0
MywgW3QwXQorICAgIGRpc3BhdGNoKGN0eCkKK2VuZCkKKworIyBPcGNvZGVzIHRoYXQgZG9uJ3Qg
aGF2ZSB0aGUgYGIzb3BgIGVudHJ5IGluIHdhc20uanNvbi4gVGhpcyBzaG91bGQgYmUga2VwdCBp
biBzeW5jCisKK21hY3JvIGNhbGxEaXZSZW0oZm4pCitpZiBBUk12NworICAgIHN1YnAgU3RhY2tB
bGlnbm1lbnQsIHNwCisgICAgc3RvcmVwIFBDLCBbc3BdCisgICAgY0NhbGw0KGZuKQorICAgIGxv
YWRwIFtzcF0sIFBDCisgICAgYWRkcCBTdGFja0FsaWdubWVudCwgc3AKK2Vsc2UKKyAgICBlcnJv
cgorZW5kCitlbmQKKworIyBpMzIgYmluYXJ5IG9wcworCit3YXNtT3AoaTMyX2Rpdl9zLCBXYXNt
STMyRGl2UywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xocywgYTApCisgICAgbWxv
YWRpKGN0eCwgbV9yaHMsIGExKQorCisgICAgYnRpeiBhMSwgLnRocm93RGl2aXNpb25CeVplcm8K
KworICAgIGJpbmVxIGExLCAtMSwgLnNhZmUKKyAgICBiaWVxIGEwLCBjb25zdGV4cHIgSU5UMzJf
TUlOLCAudGhyb3dJbnRlZ2VyT3ZlcmZsb3cKKworLnNhZmU6CisgICAgY2FsbERpdlJlbShfc2xv
d19wYXRoX3dhc21faTMyX2Rpdl9zKQorICAgIHJldHVybmkoY3R4LCByMCkKKworLnRocm93RGl2
aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCisKKy50aHJv
d0ludGVnZXJPdmVyZmxvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihJbnRlZ2VyT3ZlcmZsb3cpCitl
bmQpCisKK3dhc21PcChpMzJfZGl2X3UsIFdhc21JMzJEaXZVLCBtYWNybyAoY3R4KQorICAgIG1s
b2FkaShjdHgsIG1fbGhzLCBhMCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgYTEpCisKKyAgICBi
dGl6IGExLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgY2FsbERpdlJlbShfc2xvd19wYXRo
X3dhc21faTMyX2Rpdl91KQorICAgIHJldHVybmkoY3R4LCByMCkKKworLnRocm93RGl2aXNpb25C
eVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21P
cChpMzJfcmVtX3MsIFdhc21JMzJSZW1TLCBtYWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1f
bGhzLCBhMCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgYTEpCisKKyAgICBidGl6IGExLCAudGhy
b3dEaXZpc2lvbkJ5WmVybworCisgICAgYmluZXEgYTEsIC0xLCAuc2FmZQorICAgIGJpbmVxIGEw
LCBjb25zdGV4cHIgSU5UMzJfTUlOLCAuc2FmZQorCisgICAgbW92ZSAwLCByMAorICAgIGptcCAu
cmV0dXJuCisKKy5zYWZlOgorICAgIGNhbGxEaXZSZW0oX3Nsb3dfcGF0aF93YXNtX2kzMl9yZW1f
cykKKworLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgcjApCisKKy50aHJvd0RpdmlzaW9uQnla
ZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3Ao
aTMyX3JlbV91LCBXYXNtSTMyUmVtVSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX2xo
cywgYTApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIGExKQorCisgICAgYnRpeiBhMSwgLnRocm93
RGl2aXNpb25CeVplcm8KKworICAgIGNhbGxEaXZSZW0oX3Nsb3dfcGF0aF93YXNtX2kzMl9yZW1f
dSkKKyAgICByZXR1cm5pKGN0eCwgcjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRo
cm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCisjIGk2NCBiaW5hcnkgb3BzCisK
K3dhc21PcChpNjRfYWRkLCBXYXNtSTY0QWRkLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgs
IG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgYWRk
aXMgdDIsIHQwCisgICAgYWRjaSAgdDMsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitl
bmQpCisKK3dhc21PcChpNjRfc3ViLCBXYXNtSTY0U3ViLCBtYWNybyhjdHgpCisgICAgbWxvYWQy
aShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisg
ICAgc3ViaXMgdDIsIHQwCisgICAgc2JjaSAgdDMsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwg
dDApCitlbmQpCisKK3dhc21PcChpNjRfbXVsLCBXYXNtSTY0TXVsLCBtYWNybyhjdHgpCisgICAg
bWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0Mywg
dDIpCisgICAgbXVsaSB0MiwgdDEKKyAgICBtdWxpIHQwLCB0MworICAgIHVtdWxsaSB0MCwgdDIs
IHQwLCB0MgorICAgIGFkZGkgdDEsIHQyCisgICAgYWRkaSB0MywgdDIKKyAgICByZXR1cm4yaShj
dHgsIHQyLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9kaXZfcywgV2FzbUk2NERpdlMsIG1hY3Jv
IChjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCBhMSwgYTApCisgICAgbWxvYWQyaShjdHgs
IG1fcmhzLCBhMywgYTIpCisKKyAgICBidGlueiBhMywgLm5vblplcm9EaXZpc29yCisgICAgYnRp
eiBhMiwgLnRocm93RGl2aXNpb25CeVplcm8KKworLm5vblplcm9EaXZpc29yOgorICAgIGJpbmVx
IGEzLCAtMSwgLnNhZmUKKyAgICBiaW5lcSBhMiwgLTEsIC5zYWZlCisgICAgYmluZXEgYTEsIGNv
bnN0ZXhwciBJTlQzMl9NSU4sIC5zYWZlCisgICAgYnRpeiBhMCwgLnRocm93SW50ZWdlck92ZXJm
bG93CisKKy5zYWZlOgorICAgIGNhbGxEaXZSZW0oX3Nsb3dfcGF0aF93YXNtX2k2NF9kaXZfcykK
KyAgICByZXR1cm4yaShjdHgsIHIxLCByMCkKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAg
dGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCisKKy50aHJvd0ludGVnZXJPdmVyZmxvdzoK
KyAgICB0aHJvd0V4Y2VwdGlvbihJbnRlZ2VyT3ZlcmZsb3cpCitlbmQpCisKK3dhc21PcChpNjRf
ZGl2X3UsIFdhc21JNjREaXZVLCBtYWNybyAoY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywg
YTEsIGEwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgYTMsIGEyKQorCisgICAgYnRpbnogYTMs
IC5ub25aZXJvRGl2aXNvcgorICAgIGJ0aXogYTIsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKy5u
b25aZXJvRGl2aXNvcjoKKyAgICBjYWxsRGl2UmVtKF9zbG93X3BhdGhfd2FzbV9pNjRfZGl2X3Up
CisgICAgcmV0dXJuMmkoY3R4LCByMSwgcjApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAg
IHRocm93RXhjZXB0aW9uKERpdmlzaW9uQnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTY0X3JlbV9z
LCBXYXNtSTY0UmVtUywgbWFjcm8gKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIGExLCBh
MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIGEzLCBhMikKKworICAgIGJ0aW56IGEzLCAubm9u
WmVyb0Rpdmlzb3IKKyAgICBidGl6IGEyLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisubm9uWmVy
b0Rpdmlzb3I6CisgICAgYmluZXEgYTMsIC0xLCAuc2FmZQorICAgIGJpbmVxIGEyLCAtMSwgLnNh
ZmUKKyAgICBiaW5lcSBhMSwgY29uc3RleHByIElOVDMyX01JTiwgLnNhZmUKKyAgICBidGlueiBh
MCwgLnNhZmUKKworICAgIG1vdmUgMCwgcjEKKyAgICBtb3ZlIDAsIHIwCisgICAgam1wIC5yZXR1
cm4KKworLnNhZmU6CisgICAgY2FsbERpdlJlbShfc2xvd19wYXRoX3dhc21faTY0X3JlbV9zKQor
CisucmV0dXJuOgorICAgIHJldHVybjJpKGN0eCwgcjEsIHIwKQorCisudGhyb3dEaXZpc2lvbkJ5
WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9w
KGk2NF9yZW1fdSwgV2FzbUk2NFJlbVUsIG1hY3JvIChjdHgpCisgICAgbWxvYWQyaShjdHgsIG1f
bGhzLCBhMSwgYTApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCBhMywgYTIpCisKKyAgICBidGlu
eiBhMywgLm5vblplcm9EaXZpc29yCisgICAgYnRpeiBhMiwgLnRocm93RGl2aXNpb25CeVplcm8K
KworLm5vblplcm9EaXZpc29yOgorICAgIGNhbGxEaXZSZW0oX3Nsb3dfcGF0aF93YXNtX2k2NF9y
ZW1fdSkKKyAgICByZXR1cm4yaShjdHgsIHIxLCByMCkKKworLnRocm93RGl2aXNpb25CeVplcm86
CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8pCitlbmQpCisKK3dhc21PcChpNjRf
YW5kLCBXYXNtSTY0QW5kLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwg
dDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgYW5kaSB0MiwgdDAKKyAg
ICBhbmRpIHQzLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3Ao
aTY0X29yLCBXYXNtSTY0T3IsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQx
LCB0MCkKKyAgICBtbG9hZDJpKGN0eCwgbV9yaHMsIHQzLCB0MikKKyAgICBvcmkgdDIsIHQwCisg
ICAgb3JpIHQzLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3Ao
aTY0X3hvciwgV2FzbUk2NFhvciwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywg
dDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIHhvcmkgdDIsIHQw
CisgICAgeG9yaSB0MywgdDEKKyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2Fz
bU9wKGk2NF9zaGwsIFdhc21JNjRTaGwsIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9s
aHMsIHQxLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDIpCisKKyAgICBhbmRpIDB4M2Ys
IHQyCisgICAgYnRpeiB0MiwgLnJldHVybgorICAgIGJpYiB0MiwgMzIsIC5sZXNzVGhhbjMyCisK
KyAgICBzdWJpIDMyLCB0MgorICAgIGxzaGlmdGkgdDAsIHQyLCB0MQorICAgIG1vdmUgMCwgdDAK
KyAgICBqbXAgLnJldHVybgorCisubGVzc1RoYW4zMjoKKyAgICBsc2hpZnRpIHQyLCB0MQorICAg
IG1vdmUgMzIsIHQzCisgICAgc3ViaSB0MiwgdDMKKyAgICB1cnNoaWZ0aSB0MCwgdDMsIHQzCisg
ICAgb3JpIHQzLCB0MQorICAgIGxzaGlmdGkgdDIsIHQwCisKKy5yZXR1cm46CisgICAgcmV0dXJu
MmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRfc2hyX3UsIFdhc21JNjRTaHJVLCBt
YWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWRpKGN0
eCwgbV9yaHMsIHQyKQorCisgICAgYW5kaSAweDNmLCB0MgorICAgIGJ0aXogdDIsIC5yZXR1cm4K
KyAgICBiaWIgdDIsIDMyLCAubGVzc1RoYW4zMgorCisgICAgc3ViaSAzMiwgdDIKKyAgICB1cnNo
aWZ0aSB0MSwgdDIsIHQwCisgICAgbW92ZSAwLCB0MQorICAgIGptcCAucmV0dXJuCisKKy5sZXNz
VGhhbjMyOgorICAgIHVyc2hpZnRpIHQyLCB0MAorICAgIG1vdmUgMzIsIHQzCisgICAgc3ViaSB0
MiwgdDMKKyAgICBsc2hpZnRpIHQxLCB0MywgdDMKKyAgICBvcmkgdDMsIHQwCisgICAgdXJzaGlm
dGkgdDIsIHQxCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisK
K3dhc21PcChpNjRfc2hyX3MsIFdhc21JNjRTaHJTLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShj
dHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQyKQorCisgICAgYW5k
aSAweDNmLCB0MgorICAgIGJ0aXogdDIsIC5yZXR1cm4KKyAgICBiaWIgdDIsIDMyLCAubGVzc1Ro
YW4zMgorCisgICAgc3ViaSAzMiwgdDIKKyAgICByc2hpZnRpIHQxLCB0MiwgdDAKKyAgICByc2hp
ZnRpIDMxLCB0MQorICAgIGptcCAucmV0dXJuCisKKy5sZXNzVGhhbjMyOgorICAgIHVyc2hpZnRp
IHQyLCB0MAorICAgIG1vdmUgMzIsIHQzCisgICAgc3ViaSB0MiwgdDMKKyAgICBsc2hpZnRpIHQx
LCB0MywgdDMKKyAgICBvcmkgdDMsIHQwCisgICAgcnNoaWZ0aSB0MiwgdDEKKworLnJldHVybjoK
KyAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9yb3RyLCBXYXNt
STY0Um90ciwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAg
IG1sb2FkaShjdHgsIG1fcmhzLCB0MikKKworICAgIGFuZGkgdDIsIDB4MjAsIHQzCisgICAgYnRp
eiB0MywgLm5vU3dhcAorCisgICAgbW92ZSB0MCwgdDMKKyAgICBtb3ZlIHQxLCB0MAorICAgIG1v
dmUgdDMsIHQxCisKKy5ub1N3YXA6CisgICAgYW5kaSAweDFmLCB0MgorICAgIGJ0aXogdDIsIC5y
ZXR1cm4KKworICAgIG1vdmUgMzIsIHQ1CisgICAgc3ViaSB0MiwgdDUKKyAgICBsc2hpZnRpIHQw
LCB0NSwgdDMKKyAgICBsc2hpZnRpIHQxLCB0NSwgdDUKKyAgICB1cnNoaWZ0aSB0MiwgdDAKKyAg
ICB1cnNoaWZ0aSB0MiwgdDEKKyAgICBvcmkgdDUsIHQwCisgICAgb3JpIHQzLCB0MQorCisucmV0
dXJuOgorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3JvdGws
IFdhc21JNjRSb3RsLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDAp
CisgICAgbWxvYWRpKGN0eCwgbV9yaHMsIHQyKQorCisgICAgYW5kaSB0MiwgMHgyMCwgdDMKKyAg
ICBidGl6IHQzLCAubm9Td2FwCisKKyAgICBtb3ZlIHQwLCB0MworICAgIG1vdmUgdDEsIHQwCisg
ICAgbW92ZSB0MywgdDEKKworLm5vU3dhcDoKKyAgICBhbmRpIDB4MWYsIHQyCisgICAgYnRpeiB0
MiwgLnJldHVybgorCisgICAgbW92ZSAzMiwgdDUKKyAgICBzdWJpIHQyLCB0NQorICAgIHVyc2hp
ZnRpIHQwLCB0NSwgdDMKKyAgICB1cnNoaWZ0aSB0MSwgdDUsIHQ1CisgICAgbHNoaWZ0aSB0Miwg
dDAKKyAgICBsc2hpZnRpIHQyLCB0MQorICAgIG9yaSB0NSwgdDAKKyAgICBvcmkgdDMsIHQxCisK
Ky5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitlbmQpCisKK3dhc21PcChpNjRf
ZXEsIFdhc21JNjRFcSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQw
KQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMCwgdDYKKyAgICBi
aW5lcSB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWVxIHQwLCB0MiwgdDYKKy5yZXR1cm46CisgICAg
cmV0dXJuaShjdHgsIHQ2KQorZW5kKQorCit3YXNtT3AoaTY0X25lLCBXYXNtSTY0TmUsIG1hY3Jv
KGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9saHMsIHQxLCB0MCkKKyAgICBtbG9hZDJpKGN0eCwg
bV9yaHMsIHQzLCB0MikKKyAgICBtb3ZlIDEsIHQ2CisgICAgYmluZXEgdDEsIHQzLCAucmV0dXJu
CisgICAgY2luZXEgdDAsIHQyLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitl
bmQpCisKK3dhc21PcChpNjRfbHRfcywgV2FzbUk2NEx0UywgbWFjcm8oY3R4KQorICAgIG1sb2Fk
MmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQor
ICAgIG1vdmUgMSwgdDYKKyAgICBiaWx0IHQxLCB0MywgLnJldHVybgorICAgIG1vdmUgMCwgdDYK
KyAgICBiaWd0IHQxLCB0MywgLnJldHVybgorICAgIGNpYiB0MCwgdDIsIHQ2CisgICAgYW5kaSAx
LCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRf
bGVfcywgV2FzbUk2NExlUywgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEs
IHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYKKyAg
ICBiaWx0IHQxLCB0MywgLnJldHVybgorICAgIG1vdmUgMCwgdDYKKyAgICBiaWd0IHQxLCB0Mywg
LnJldHVybgorICAgIGNpYmVxIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgor
ICAgIHJldHVybmkoY3R4LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9sdF91LCBXYXNtSTY0THRV
LCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQy
aShjdHgsIG1fcmhzLCB0MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAgIGJpYiB0MSwgdDMsIC5y
ZXR1cm4KKyAgICBtb3ZlIDAsIHQ2CisgICAgYmlhIHQxLCB0MywgLnJldHVybgorICAgIGNpYiB0
MCwgdDIsIHQ2CisgICAgYW5kaSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYp
CitlbmQpCisKK3dhc21PcChpNjRfbGVfdSwgV2FzbUk2NExlVSwgbWFjcm8oY3R4KQorICAgIG1s
b2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQy
KQorICAgIG1vdmUgMSwgdDYKKyAgICBiaWIgdDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAwLCB0
NgorICAgIGJpYSB0MSwgdDMsIC5yZXR1cm4KKyAgICBjaWJlcSB0MCwgdDIsIHQ2CisgICAgYW5k
aSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChp
NjRfZ3RfcywgV2FzbUk2NEd0UywgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywg
dDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYK
KyAgICBiaWd0IHQxLCB0MywgLnJldHVybgorICAgIG1vdmUgMCwgdDYKKyAgICBiaWx0IHQxLCB0
MywgLnJldHVybgorICAgIGNpYSB0MCwgdDIsIHQ2CisgICAgYW5kaSAxLCB0NgorLnJldHVybjoK
KyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21PcChpNjRfZ2VfcywgV2FzbUk2NEdl
UywgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xocywgdDEsIHQwKQorICAgIG1sb2Fk
MmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMSwgdDYKKyAgICBiaWd0IHQxLCB0Mywg
LnJldHVybgorICAgIG1vdmUgMCwgdDYKKyAgICBiaWx0IHQxLCB0MywgLnJldHVybgorICAgIGNp
YWVxIHQwLCB0MiwgdDYKKyAgICBhbmRpIDEsIHQ2CisucmV0dXJuOgorICAgIHJldHVybmkoY3R4
LCB0NikKK2VuZCkKKword2FzbU9wKGk2NF9ndF91LCBXYXNtSTY0R3RVLCBtYWNybyhjdHgpCisg
ICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAgbWxvYWQyaShjdHgsIG1fcmhzLCB0
MywgdDIpCisgICAgbW92ZSAxLCB0NgorICAgIGJpYSB0MSwgdDMsIC5yZXR1cm4KKyAgICBtb3Zl
IDAsIHQ2CisgICAgYmliIHQxLCB0MywgLnJldHVybgorICAgIGNpYSB0MCwgdDIsIHQ2CisgICAg
YW5kaSAxLCB0NgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKK3dhc21P
cChpNjRfZ2VfdSwgV2FzbUk2NEdlVSwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4LCBtX2xo
cywgdDEsIHQwKQorICAgIG1sb2FkMmkoY3R4LCBtX3JocywgdDMsIHQyKQorICAgIG1vdmUgMCwg
dDYKKyAgICBiaWIgdDEsIHQzLCAucmV0dXJuCisgICAgbW92ZSAxLCB0NgorICAgIGJpYSB0MSwg
dDMsIC5yZXR1cm4KKyAgICBjaWFlcSB0MCwgdDIsIHQ2CisgICAgYW5kaSAxLCB0NgorLnJldHVy
bjoKKyAgICByZXR1cm5pKGN0eCwgdDYpCitlbmQpCisKKyMgaTY0IHVuYXJ5IG9wcworCit3YXNt
T3AoaTY0X2N0eiwgV2FzbUk2NEN0eiwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9v
cGVyYW5kLCB0MSwgdDApCisgICAgYnRpeiB0MCwgLnRvcAorCisgICAgdHpjbnRpIHQwLCB0MAor
ICAgIGptcCAucmV0dXJuCisKKy50b3A6CisgICAgdHpjbnRpIHQxLCB0MAorICAgIGFkZGkgMzIs
IHQwCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCAwLCB0MCkKK2VuZCkKKword2FzbU9w
KGk2NF9jbHosIFdhc21JNjRDbHosIG1hY3JvKGN0eCkKKyAgICBtbG9hZDJpKGN0eCwgbV9vcGVy
YW5kLCB0MSwgdDApCisgICAgYnRpeiB0MSwgLmJvdHRvbQorCisgICAgbHpjbnRpIHQxLCB0MAor
ICAgIGptcCAucmV0dXJuCisKKy5ib3R0b206CisgICAgbHpjbnRpIHQwLCB0MAorICAgIGFkZGkg
MzIsIHQwCisKKy5yZXR1cm46CisgICAgcmV0dXJuMmkoY3R4LCAwLCB0MCkKK2VuZCkKKword2Fz
bU9wKGk2NF9wb3BjbnQsIFdhc21JNjRQb3BjbnQsIG1hY3JvIChjdHgpCisgICAgbWxvYWQyaShj
dHgsIG1fb3BlcmFuZCwgYTMsIGEyKQorICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBt
b3ZlIFBDLCBhMAorICAgIGNDYWxsMihfc2xvd19wYXRoX3dhc21fcG9wY291bnRsbCkKKyAgICBy
ZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkKKyAgICByZXR1cm4yaShjdHgsIDAsIHIxKQorZW5kKQor
Cit3YXNtT3AoaTY0X2VxeiwgV2FzbUk2NEVxeiwgbWFjcm8oY3R4KQorICAgIG1sb2FkMmkoY3R4
LCBtX29wZXJhbmQsIHQxLCB0MCkKKyAgICBtb3ZlIDAsIHQyCisgICAgYnRpbnogdDEsIC5yZXR1
cm4KKyAgICBjaWVxIHQwLCAwLCB0MgorLnJldHVybjoKKyAgICByZXR1cm5pKGN0eCwgdDIpCitl
bmQpCisKKyMgZjY0IGJpbmFyeSBvcHMKKword2FzbU9wKGY2NF9jb3B5c2lnbiwgV2FzbUY2NENv
cHlzaWduLCBtYWNybyhjdHgpCisgICAgbWxvYWQyaShjdHgsIG1fbGhzLCB0MSwgdDApCisgICAg
bWxvYWQyaShjdHgsIG1fcmhzLCB0MywgdDIpICMgdDIgdW51c2VkCisKKyAgICBhbmRpIDB4N2Zm
ZmZmZmYsIHQxCisgICAgYW5kaSAweDgwMDAwMDAwLCB0MworICAgIG9yaSB0MywgdDEKKworICAg
IHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCisjIFR5cGUgY29udmVyc2lvbiBvcHMKKwor
d2FzbU9wKGk2NF9leHRlbmRfc19pMzIsIFdhc21JNjRFeHRlbmRTSTMyLCBtYWNybyhjdHgpCisg
ICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICByc2hpZnRpIHQwLCAzMSwgdDEKKyAg
ICByZXR1cm4yaShjdHgsIHQxLCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF9leHRlbmRfdV9pMzIs
IFdhc21JNjRFeHRlbmRVSTMyLCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9vcGVyYW5k
LCB0MCkKKyAgICByZXR1cm4yaShjdHgsIDAsIHQwKQorZW5kKQorCit3YXNtT3AoZjY0X3JlaW50
ZXJwcmV0X2k2NCwgV2FzbUY2NFJlaW50ZXJwcmV0STY0LCBtYWNybyhjdHgpCisgICAgbWxvYWQy
aShjdHgsIG1fb3BlcmFuZCwgdDEsIHQwKQorICAgIGZpaTJkIHQwLCB0MSwgZnQwCisgICAgcmV0
dXJuZChjdHgsIGZ0MCkKK2VuZCkKKword2FzbU9wKGk2NF9yZWludGVycHJldF9mNjQsIFdhc21J
NjRSZWludGVycHJldEY2NCwgbWFjcm8oY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwg
ZnQwKQorICAgIGZkMmlpIGZ0MCwgdDAsIHQxCisgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDApCitl
bmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc19mNjQsIFdhc21JMzJUcnVuY1NGNjQsIG1hY3JvIChj
dHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlaWkgMHhjMWUw
MDAwMDAwMjAwMDAwLCB0MSwgdDAgIyBJTlQzMl9NSU4gLSAxLjAKKyAgICBmaWkyZCB0MCwgdDEs
IGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92
ZWlpIDB4NDFlMDAwMDAwMDAwMDAwMCwgdDEsIHQwICMgLUlOVDMyX01JTgorICAgIGZpaTJkIHQw
LCB0MSwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAg
ICB0cnVuY2F0ZWQyaXMgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91
bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKK2VuZCkKKwor
d2FzbU9wKGkzMl90cnVuY191X2Y2NCwgV2FzbUkzMlRydW5jVUY2NCwgbWFjcm8gKGN0eCkKKyAg
ICBtbG9hZGQoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmVpaSAweGJmZjAwMDAwMDAw
MDAwMDAsIHQxLCB0MCAjIC0xLjAKKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAgIGJkbHRlcXVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZWlpIDB4NDFmMDAwMDAwMDAw
MDAwMCwgdDEsIHQwICMgSU5UMzJfTUlOICogLTIuMAorICAgIGZpaTJkIHQwLCB0MSwgZnQxCisg
ICAgYmRndGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0ZWQy
aSBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAg
ICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCitzbG93V2FzbU9wKGk2
NF90cnVuY19zX2YzMikKK3Nsb3dXYXNtT3AoaTY0X3RydW5jX3VfZjMyKQorc2xvd1dhc21PcChp
NjRfdHJ1bmNfc19mNjQpCitzbG93V2FzbU9wKGk2NF90cnVuY191X2Y2NCkKKword2FzbU9wKGkz
Ml90cnVuY19zYXRfZjY0X3MsIFdhc21JMzJUcnVuY1NhdEY2NFMsIG1hY3JvIChjdHgpCisgICAg
bWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlaWkgMHhjMWUwMDAwMDAwMjAw
MDAwLCB0MSwgdDAgIyBJTlQzMl9NSU4gLSAxLjAKKyAgICBmaWkyZCB0MCwgdDEsIGZ0MQorICAg
IGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOCisKKyAgICBt
b3ZlaWkgMHg0MWUwMDAwMDAwMDAwMDAwLCB0MSwgdDAgIyAtSU5UMzJfTUlOCisgICAgZmlpMmQg
dDAsIHQxLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRN
YXgKKworICAgIHRydW5jYXRlZDJpcyBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOOgorICAgIGJkZXEgZnQwLCBmdDAsIC5vdXRPZkJv
dW5kc1RydW5jU2F0TWluCisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKwor
Lm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIElOVDMyX01BWCks
IHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAg
ICBtb3ZlIChjb25zdGV4cHIgSU5UMzJfTUlOKSwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCitl
bmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc2F0X2Y2NF91LCBXYXNtSTMyVHJ1bmNTYXRGNjRVLCBt
YWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZWlp
IDB4YmZmMDAwMDAwMDAwMDAwMCwgdDEsIHQwICMgLTEuMAorICAgIGZpaTJkIHQwLCB0MSwgZnQx
CisgICAgYmRsdGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluCisKKyAgICBt
b3ZlaWkgMHg0MWYwMDAwMDAwMDAwMDAwLCB0MSwgdDAgIyBJTlQzMl9NSU4gKiAtMi4wCisgICAg
ZmlpMmQgdDAsIHQxLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1
bmNTYXRNYXgKKworICAgIHRydW5jYXRlZDJpIGZ0MCwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDAp
CisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5p
KGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhw
ciBVSU5UMzJfTUFYKSwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCitlbmQpCisKK3Nsb3dXYXNt
T3AoaTY0X3RydW5jX3NhdF9mMzJfcykKK3Nsb3dXYXNtT3AoaTY0X3RydW5jX3NhdF9mMzJfdSkK
K3Nsb3dXYXNtT3AoaTY0X3RydW5jX3NhdF9mNjRfcykKK3Nsb3dXYXNtT3AoaTY0X3RydW5jX3Nh
dF9mNjRfdSkKKworIyBFeHRlbmQgb3BzCisKK3dhc21PcChpNjRfZXh0ZW5kOF9zLCBXYXNtSTY0
RXh0ZW5kOFMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQorICAg
IHN4YjJpIHQwLCB0MAorICAgIHJzaGlmdGkgdDAsIDMxLCB0MQorICAgIHJldHVybjJpKGN0eCwg
dDEsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X2V4dGVuZDE2X3MsIFdhc21JNjRFeHRlbmQxNlMs
IG1hY3JvKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHN4aDJpIHQw
LCB0MAorICAgIHJzaGlmdGkgdDAsIDMxLCB0MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQor
ZW5kKQorCit3YXNtT3AoaTY0X2V4dGVuZDMyX3MsIFdhc21JNjRFeHRlbmQxNlMsIG1hY3JvKGN0
eCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHJzaGlmdGkgdDAsIDMxLCB0
MQorICAgIHJldHVybjJpKGN0eCwgdDEsIHQwKQorZW5kKQorCisjIEF0b21pY3MKKworbWFjcm8g
d2FzbUF0b21pY0JpbmFyeVJNV09wcyhsb3dlckNhc2VPcGNvZGUsIHVwcGVyQ2FzZU9wY29kZSwg
Zm5iLCBmbmgsIGZuaSwgZm4yaSkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXc4JWxvd2VyQ2Fz
ZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzgldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0
eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4
LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkaShjdHgsIG1fdmFsdWUsIHQwKQorICAgICAg
ICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldCh0MywgdDUsIDEpCisgICAg
ICAgIGZuYih0MCwgW3QzXSwgdDIsIHQ1LCB0NikKKyAgICAgICAgYW5kaSAweGZmLCB0NiAjIEZJ
WE1FOiBaZXJvRXh0ZW5kOFRvNjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBiaWJlcSB0Niwg
MHhmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJuMmkoY3R4LCAwLCB0NikKKyAgICBlbmQpCisg
ICAgd2FzbU9wKGk2NF9hdG9taWNfcm13MTYlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRv
bWljUm13MTYldXBwZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0
eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAg
ICAgIG1sb2FkaShjdHgsIG1fdmFsdWUsIHQwKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJl
UG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0MywgdDUsIDIpCisgICAgICAg
IGZuaCh0MCwgW3QzXSwgdDIsIHQ1LCB0NikKKyAgICAgICAgYW5kaSAweGZmZmYsIHQ2ICMgRklY
TUU6IFplcm9FeHRlbmQxNlRvNjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBiaWJlcSB0Niwg
MHhmZmZmLCAub2sgZW5kKQorICAgICAgICByZXR1cm4yaShjdHgsIDAsIHQ2KQorICAgIGVuZCkK
KyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXczMiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRB
dG9taWNSbXczMiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGko
Y3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0NSkKKyAg
ICAgICAgbWxvYWRpKGN0eCwgbV92YWx1ZSwgdDApCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBh
cmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKHQzLCB0NSwgNCkKKyAgICAg
ICAgZm5pKHQwLCBbdDNdLCB0MiwgdDUsIHQ2KQorICAgICAgICByZXR1cm4yaShjdHgsIDAsIHQ2
KQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwg
V2FzbUk2NEF0b21pY1JtdyV1cHBlckNhc2VPcGNvZGUlLCBtYWNybyhjdHgpCisgICAgICAgIG1s
b2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQ1
KQorICAgICAgICBtbG9hZDJpKGN0eCwgbV92YWx1ZSwgdDEsIHQwKQorICAgICAgICBlbWl0Q2hl
Y2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayh0MywgdDUs
IDgpCisgICAgICAgIHB1c2ggdDQgIyBUaGlzIGlzIHRoZSBQQiwgc28gbmVlZCB0byBiZSBzYXZl
ZCBhbmQgcmVzdG9yZWQKKyAgICAgICAgZm4yaSh0MSwgdDAsIFt0M10sIHQ0LCB0NSwgdDcsIHQy
LCB0NikKKyAgICAgICAgcG9wIHQ0CisgICAgICAgIHJldHVybjJpKGN0eCwgdDIsIHQ2KQorICAg
IGVuZCkKK2VuZAorCittYWNybyB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMobG93
ZXJDYXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuaSwgZm4yaSkKKyAgICB3YXNtQXRvbWlj
QmluYXJ5Uk1XT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLAorICAgICAgICBt
YWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQ2R1BSKQorICAgICAgICAgICAgICAgIGZl
bmNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2FkbGlua2IgbWVtLCB0
NkdQUgorICAgICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDZHUFIsIHQyR1BSKQorICAgICAgICAg
ICAgICAgIHN0b3JlY29uZGIgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5l
cSB0NUdQUiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBmZW5jZQorICAgICAgICBlbmQsCisg
ICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDZHUFIpCisgICAgICAgICAg
ICAgICAgZmVuY2UKKyAgICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5r
aCBtZW0sIHQ2R1BSCisgICAgICAgICAgICAgICAgZm5pKHQwR1BSLCB0NkdQUiwgdDJHUFIpCisg
ICAgICAgICAgICAgICAgc3RvcmVjb25kaCB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAg
ICAgIGJpbmVxIHQ1R1BSLCAwLCAubG9vcAorICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAg
IGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0NkdQUikKKyAg
ICAgICAgICAgICAgICBmZW5jZQorICAgICAgICAgICAgLmxvb3A6CisgICAgICAgICAgICAgICAg
bG9hZGxpbmtpIG1lbSwgdDZHUFIKKyAgICAgICAgICAgICAgICBmbmkodDBHUFIsIHQ2R1BSLCB0
MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmRpIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAg
ICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisgICAgICAgICAgICAgICAgZmVuY2UK
KyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MUdQUiwgdDBHUFIsIG1lbSwgdDRHUFIsIHQ1
R1BSLCB0N0dQUiwgdDJHUFIsIHQ2R1BSKQorICAgICAgICAgICAgICAgIGZlbmNlCisgICAgICAg
ICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2FkbGluazJpIG1lbSwgdDZHUFIsIHQyR1BS
CisgICAgICAgICAgICAgICAgZm4yaSh0MUdQUiwgdDBHUFIsIHQyR1BSLCB0NkdQUiwgdDRHUFIs
IHQ1R1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29uZDJpIHQ3R1BSLCB0NUdQUiwgdDRHUFIs
IG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ3R1BSLCAwLCAubG9vcAorICAgICAgICAgICAg
ICAgIGZlbmNlCisgICAgICAgIGVuZCkKK2VuZAorCitpZiBBUk12NworICAgIHdhc21BdG9taWNC
aW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYWRkLCBBZGQsCisgICAgICAgIG1hY3JvKHNyYzAsIHNy
YzEsIGRzdCkKKyAgICAgICAgICAgIGFkZGkgc3JjMCwgc3JjMSwgZHN0CisgICAgICAgIGVuZCwK
KyAgICAgICAgbWFjcm8oc3JjME1zdywgc3JjMExzdywgc3JjMU1zdywgc3JjMUxzdywgZHN0TXN3
LCBkc3RMc3cpCisgICAgICAgICAgICBhZGRpcyBzcmMwTHN3LCBzcmMxTHN3LCBkc3RMc3cKKyAg
ICAgICAgICAgIGFkY2kgIHNyYzBNc3csIHNyYzFNc3csIGRzdE1zdworICAgICAgICBlbmQpCisg
ICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9zdWIsIFN1YiwKKyAgICAgICAg
bWFjcm8oc3JjMCwgc3JjMSwgZHN0KQorICAgICAgICAgICAgc3ViaSBzcmMxLCBzcmMwLCBkc3QK
KyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyhzcmMwTXN3LCBzcmMwTHN3LCBzcmMxTXN3LCBz
cmMxTHN3LCBkc3RNc3csIGRzdExzdykKKyAgICAgICAgICAgIHN1YmlzIHNyYzFMc3csIHNyYzBM
c3csIGRzdExzdworICAgICAgICAgICAgc2JjaSAgc3JjMU1zdywgc3JjME1zdywgZHN0TXN3Cisg
ICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX3hjaGcs
IFhjaGcsCisgICAgICAgIG1hY3JvKHNyYzAsIHNyYzEsIGRzdCkKKyAgICAgICAgICAgIG1vdmUg
c3JjMCwgZHN0CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8oc3JjME1zdywgc3JjMExzdywg
c3JjMU1zdywgc3JjMUxzdywgZHN0TXN3LCBkc3RMc3cpCisgICAgICAgICAgICBtb3ZlIHNyYzBM
c3csIGRzdExzdworICAgICAgICAgICAgbW92ZSBzcmMwTXN3LCBkc3RNc3cKKyAgICAgICAgZW5k
KQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYW5kLCBBbmQsCisgICAg
ICAgIG1hY3JvKHNyYzAsIHNyYzEsIGRzdCkKKyAgICAgICAgICAgIGFuZGkgc3JjMCwgc3JjMSwg
ZHN0CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8oc3JjME1zdywgc3JjMExzdywgc3JjMU1z
dywgc3JjMUxzdywgZHN0TXN3LCBkc3RMc3cpCisgICAgICAgICAgICBhbmRpIHNyYzBMc3csIHNy
YzFMc3csIGRzdExzdworICAgICAgICAgICAgYW5kaSBzcmMwTXN3LCBzcmMxTXN3LCBkc3RNc3cK
KyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfb3Is
IE9yLAorICAgICAgICBtYWNybyhzcmMwLCBzcmMxLCBkc3QpCisgICAgICAgICAgICBvcmkgc3Jj
MCwgc3JjMSwgZHN0CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8oc3JjME1zdywgc3JjMExz
dywgc3JjMU1zdywgc3JjMUxzdywgZHN0TXN3LCBkc3RMc3cpCisgICAgICAgICAgICBvcmkgc3Jj
MExzdywgc3JjMUxzdywgZHN0THN3CisgICAgICAgICAgICBvcmkgc3JjME1zdywgc3JjMU1zdywg
ZHN0TXN3CisgICAgICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtD
QVMoX3hvciwgWG9yLAorICAgICAgICBtYWNybyhzcmMwLCBzcmMxLCBkc3QpCisgICAgICAgICAg
ICB4b3JpIHNyYzAsIHNyYzEsIGRzdAorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHNyYzBN
c3csIHNyYzBMc3csIHNyYzFNc3csIHNyYzFMc3csIGRzdE1zdywgZHN0THN3KQorICAgICAgICAg
ICAgeG9yaSBzcmMwTHN3LCBzcmMxTHN3LCBkc3RMc3cKKyAgICAgICAgICAgIHhvcmkgc3JjME1z
dywgc3JjMU1zdywgZHN0TXN3CisgICAgICAgIGVuZCkKK2VuZAorCittYWNybyB3YXNtQXRvbWlj
Q29tcGFyZUV4Y2hhbmdlT3BzKGxvd2VyQ2FzZU9wY29kZSwgdXBwZXJDYXNlT3Bjb2RlLCBmbmIs
IGZuaCwgZm5pLCBmbjJpKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzglbG93ZXJDYXNlT3Bj
b2RlJV91LCBXYXNtSTY0QXRvbWljUm13OCV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQor
ICAgICAgICBtbG9hZGkoY3R4LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1f
b2Zmc2V0LCB0NSkKKyAgICAgICAgbWxvYWQyaShjdHgsIG1fZXhwZWN0ZWQsIHQxLCB0MCkKKyAg
ICAgICAgbWxvYWQyaShjdHgsIG1fdmFsdWUsIHQ2LCB0MikKKyAgICAgICAgZW1pdENoZWNrQW5k
UHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQodDMsIHQ1LCAxKQorICAgICAgICBmbmIodDEsIHQw
LCB0NiwgdDIsIFt0M10sIHQ3LCB0NSkKKyAgICAgICAgYW5kaSAweGZmLCB0MCAjIEZJWE1FOiBa
ZXJvRXh0ZW5kOFRvNjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBiaWJlcSB0MCwgMHhmZiwg
Lm9rIGVuZCkKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBiaWVxIHQxLCAwLCAub2sgZW5kKQor
ICAgICAgICByZXR1cm4yaShjdHgsIHQxLCB0MCkKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9h
dG9taWNfcm13MTYlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MTYldXBwZXJD
YXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0
MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkMmkoY3R4
LCBtX2V4cGVjdGVkLCB0MSwgdDApCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVlLCB0Niwg
dDIpCisgICAgICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFs
aWdubWVudENoZWNrKHQzLCB0NSwgMikKKyAgICAgICAgZm5oKHQxLCB0MCwgdDYsIHQyLCBbdDNd
LCB0NywgdDUpCisgICAgICAgIGFuZGkgMHhmZmZmLCB0MCAjIEZJWE1FOiBaZXJvRXh0ZW5kMTZU
bzY0CisgICAgICAgIGFzc2VydChtYWNybyhvaykgYmliZXEgdDAsIDB4ZmZmZiwgLm9rIGVuZCkK
KyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBiaWVxIHQxLCAwLCAub2sgZW5kKQorICAgICAgICBy
ZXR1cm4yaShjdHgsIHQxLCB0MCkKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9taWNfcm13
MzIlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MzIldXBwZXJDYXNlT3Bjb2Rl
JVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAg
ICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX2V4cGVj
dGVkLCB0MSwgdDApCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVlLCB0NiwgdDIpCisgICAg
ICAgIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENo
ZWNrKHQzLCB0NSwgOCkKKyAgICAgICAgZm5pKHQxLCB0MCwgdDYsIHQyLCBbdDNdLCB0NywgdDUp
CisgICAgICAgIGFzc2VydChtYWNybyhvaykgYmllcSB0MSwgMCwgLm9rIGVuZCkKKyAgICAgICAg
cmV0dXJuMmkoY3R4LCB0MSwgdDApCisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3Jt
dyVsb3dlckNhc2VPcGNvZGUlLCBXYXNtSTY0QXRvbWljUm13JXVwcGVyQ2FzZU9wY29kZSUsIG1h
Y3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykKKyAgICAgICAgd2dl
dHUoY3R4LCBtX29mZnNldCwgdDUpCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX2V4cGVjdGVkLCB0
MSwgdDApCisgICAgICAgIG1sb2FkMmkoY3R4LCBtX3ZhbHVlLCB0NiwgdDIpCisgICAgICAgIGVt
aXRDaGVja0FuZFByZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKHQz
LCB0NSwgOCkKKyAgICAgICAgcHVzaCB0NCAjIFRoaXMgaXMgdGhlIFBCLCBzbyBuZWVkIHRvIGJl
IHNhdmVkIGFuZCByZXN0b3JlZAorICAgICAgICBmbjJpKHQxLCB0MCwgdDYsIHQyLCBbdDNdLCB0
NywgdDUsIHQ0KQorICAgICAgICBwb3AgdDQKKyAgICAgICAgcmV0dXJuMmkoY3R4LCB0MSwgdDAp
CisgICAgZW5kKQorZW5kCisKK2lmIEFSTXY3CisvLyBleHA6ICJleHBlY3RlZCIsIHZhbDogInZh
bHVlIiwgcmVzOiAicmVzdWx0Igord2FzbUF0b21pY0NvbXBhcmVFeGNoYW5nZU9wcyhfY21weGNo
ZywgQ21weGNoZywKKyAgICBtYWNybyhleHBNc3csIGV4cExzdywgdmFsTXN3LCB2YWxMc3csIG1l
bSwgc2NyYXRjaCwgcmVzTHN3KQorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgLmxvb3A6Cisg
ICAgICAgICAgICBsb2FkbGlua2IgbWVtLCByZXNMc3cKKyAgICAgICAgICAgIGJpbmVxIGV4cExz
dywgcmVzTHN3LCAuZmFpbAorICAgICAgICAgICAgYmluZXEgZXhwTXN3LCAwLCAuZmFpbAorICAg
ICAgICAgICAgc3RvcmVjb25kYiBzY3JhdGNoLCB2YWxMc3csIG1lbQorICAgICAgICAgICAgYmll
cSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWls
OgorICAgICAgICAgICAgc3RvcmVjb25kYiBzY3JhdGNoLCByZXNMc3csIG1lbQorICAgICAgICAg
ICAgYmllcSBzY3JhdGNoLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAg
IC5kb25lOgorICAgICAgICAgICAgZmVuY2UKKyAgICAgICAgICAgIG1vdmUgcmVzTHN3LCBleHBM
c3cKKyAgICAgICAgICAgIG1vdmUgMCwgZXhwTXN3CisgICAgZW5kLAorICAgIG1hY3JvKGV4cE1z
dywgZXhwTHN3LCB2YWxNc3csIHZhbExzdywgbWVtLCBzY3JhdGNoLCByZXNMc3cpCisgICAgICAg
ICAgICBmZW5jZQorICAgICAgICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5raCBtZW0sIHJl
c0xzdworICAgICAgICAgICAgYmluZXEgZXhwTHN3LCByZXNMc3csIC5mYWlsCisgICAgICAgICAg
ICBiaW5lcSBleHBNc3csIDAsIC5mYWlsCisgICAgICAgICAgICBzdG9yZWNvbmRoIHNjcmF0Y2gs
IHZhbExzdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisgICAgICAg
ICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRoIHNj
cmF0Y2gsIHJlc0xzdywgbWVtCisgICAgICAgICAgICBiaWVxIHNjcmF0Y2gsIDAsIC5kb25lCisg
ICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBmZW5jZQor
ICAgICAgICAgICAgbW92ZSByZXNMc3csIGV4cExzdworICAgICAgICAgICAgbW92ZSAwLCBleHBN
c3cKKyAgICBlbmQsCisgICAgbWFjcm8oZXhwTXN3LCBleHBMc3csIHZhbE1zdywgdmFsTHN3LCBt
ZW0sIHNjcmF0Y2gsIHJlc0xzdykKKyAgICAgICAgICAgIGZlbmNlCisgICAgICAgIC5sb29wOgor
ICAgICAgICAgICAgbG9hZGxpbmtpIG1lbSwgcmVzTHN3CisgICAgICAgICAgICBiaW5lcSBleHBM
c3csIHJlc0xzdywgLmZhaWwKKyAgICAgICAgICAgIGJpbmVxIGV4cE1zdywgMCwgLmZhaWwKKyAg
ICAgICAgICAgIHN0b3JlY29uZGkgc2NyYXRjaCwgdmFsTHN3LCBtZW0KKyAgICAgICAgICAgIGJp
ZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZmFp
bDoKKyAgICAgICAgICAgIHN0b3JlY29uZGkgc2NyYXRjaCwgcmVzTHN3LCBtZW0KKyAgICAgICAg
ICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAg
ICAuZG9uZToKKyAgICAgICAgICAgIGZlbmNlCisgICAgICAgICAgICBtb3ZlIHJlc0xzdywgZXhw
THN3CisgICAgICAgICAgICBtb3ZlIDAsIGV4cE1zdworICAgIGVuZCwKKyAgICBtYWNybyhleHBN
c3csIGV4cExzdywgdmFsTXN3LCB2YWxMc3csIG1lbSwgc2NyYXRjaCwgcmVzTXN3LCByZXNMc3cp
CisgICAgICAgICAgICBmZW5jZQorICAgICAgICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5r
MmkgbWVtLCByZXNMc3csIHJlc01zdworICAgICAgICAgICAgYmluZXEgZXhwTHN3LCByZXNMc3cs
IC5mYWlsCisgICAgICAgICAgICBiaW5lcSBleHBNc3csIHJlc01zdywgLmZhaWwKKyAgICAgICAg
ICAgIHN0b3JlY29uZDJpIHNjcmF0Y2gsIHZhbExzdywgdmFsTXN3LCBtZW0KKyAgICAgICAgICAg
IGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAu
ZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29uZDJpIHNjcmF0Y2gsIHJlc0xzdywgcmVzTXN3LCBt
ZW0KKyAgICAgICAgICAgIGJpZXEgc2NyYXRjaCwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAu
bG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIGZlbmNlCisgICAgICAgICAgICBtb3Zl
IHJlc0xzdywgZXhwTHN3CisgICAgICAgICAgICBtb3ZlIHJlc01zdywgZXhwTXN3CisgICAgZW5k
KQorZW5kCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3Nl
bWJseTY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseTY0LmFz
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ2ZTllYTQ4ODUyNAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJs
eTY0LmFzbQpAQCAtMCwwICsxLDEyNTkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDExLTIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMg
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKKyMgT3Bjb2RlcyB0aGF0IHNob3VsZCBldmVudHVhbGx5IGJlIHNoYXJlZCB3
aXRoIEpTIGxsaW50CisKK3dhc21PcChtb3YsIFdhc21Nb3YsIG1hY3JvKGN0eCkKKyAgICBtbG9h
ZHEoY3R4LCBtX3NyYywgdDApCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCisjIFdhc20g
c3BlY2lmaWMgYnl0ZWNvZGVzCisKK21hY3JvIGVtaXRDaGVja0FuZFByZXBhcmVQb2ludGVyKGN0
eCwgcG9pbnRlciwgb2Zmc2V0LCBzaXplKQorICAgIGxlYXAgc2l6ZSAtIDFbcG9pbnRlciwgb2Zm
c2V0XSwgdDUKKyAgICBicGIgdDUsIGJvdW5kc0NoZWNraW5nU2l6ZSwgLmNvbnRpbnVhdGlvbgor
ICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzTWVtb3J5QWNjZXNzKQorLmNvbnRpbnVhdGlv
bjoKKyAgICBhZGRwIG1lbW9yeUJhc2UsIHBvaW50ZXIKK2VuZAorCittYWNybyBlbWl0Q2hlY2tB
bmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldChjdHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkK
KyAgICBsZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9mZnNldF0sIHQ1CisgICAgYnBiIHQ1LCBib3Vu
ZHNDaGVja2luZ1NpemUsIC5jb250aW51YXRpb24KKy50aHJvdzoKKyAgICB0aHJvd0V4Y2VwdGlv
bihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKKy5jb250aW51YXRpb246CisgICAgYWRkcCBtZW1v
cnlCYXNlLCBwb2ludGVyCisgICAgYWRkcCBvZmZzZXQsIHBvaW50ZXIKK2VuZAorCittYWNybyBl
bWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdpdGhBbGlnbm1lbnRDaGVjayhj
dHgsIHBvaW50ZXIsIG9mZnNldCwgc2l6ZSkKKyAgICBsZWFwIHNpemUgLSAxW3BvaW50ZXIsIG9m
ZnNldF0sIHQ1CisgICAgYnBiIHQ1LCBib3VuZHNDaGVja2luZ1NpemUsIC5jb250aW51YXRpb24K
Ky50aHJvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihPdXRPZkJvdW5kc01lbW9yeUFjY2VzcykKKy5j
b250aW51YXRpb246CisgICAgYWRkcCBtZW1vcnlCYXNlLCBwb2ludGVyCisgICAgYWRkcCBvZmZz
ZXQsIHBvaW50ZXIKKyAgICBidHBueiBwb2ludGVyLCAoc2l6ZSAtIDEpLCAudGhyb3cKK2VuZAor
CisKK21hY3JvIHdhc21Mb2FkT3AobmFtZSwgc3RydWN0LCBzaXplLCBmbikKKyAgICB3YXNtT3Ao
bmFtZSwgc3RydWN0LCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwg
dDApCisgICAgICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBlbWl0Q2hlY2tB
bmRQcmVwYXJlUG9pbnRlcihjdHgsIHQwLCB0MSwgc2l6ZSkKKyAgICAgICAgZm4oW3QwLCB0MV0s
IHQyKQorICAgICAgICByZXR1cm5xKGN0eCwgdDIpCisgICAgZW5kKQorZW5kCisKK3dhc21Mb2Fk
T3AobG9hZDhfdSwgV2FzbUxvYWQ4VSwgMSwgbWFjcm8obWVtLCBkc3QpIGxvYWRiIG1lbSwgZHN0
IGVuZCkKK3dhc21Mb2FkT3AobG9hZDE2X3UsIFdhc21Mb2FkMTZVLCAyLCBtYWNybyhtZW0sIGRz
dCkgbG9hZGggbWVtLCBkc3QgZW5kKQord2FzbUxvYWRPcChsb2FkMzJfdSwgV2FzbUxvYWQzMlUs
IDQsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaSBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGxvYWQ2
NF91LCBXYXNtTG9hZDY0VSwgOCwgbWFjcm8obWVtLCBkc3QpIGxvYWRxIG1lbSwgZHN0IGVuZCkK
Kword2FzbUxvYWRPcChpMzJfbG9hZDhfcywgV2FzbUkzMkxvYWQ4UywgMSwgbWFjcm8obWVtLCBk
c3QpIGxvYWRic2kgbWVtLCBkc3QgZW5kKQord2FzbUxvYWRPcChpNjRfbG9hZDhfcywgV2FzbUk2
NExvYWQ4UywgMSwgbWFjcm8obWVtLCBkc3QpIGxvYWRic3EgbWVtLCBkc3QgZW5kKQord2FzbUxv
YWRPcChpMzJfbG9hZDE2X3MsIFdhc21JMzJMb2FkMTZTLCAyLCBtYWNybyhtZW0sIGRzdCkgbG9h
ZGhzaSBtZW0sIGRzdCBlbmQpCit3YXNtTG9hZE9wKGk2NF9sb2FkMTZfcywgV2FzbUk2NExvYWQx
NlMsIDIsIG1hY3JvKG1lbSwgZHN0KSBsb2FkaHNxIG1lbSwgZHN0IGVuZCkKK3dhc21Mb2FkT3Ao
aTY0X2xvYWQzMl9zLCBXYXNtSTY0TG9hZDMyUywgNCwgbWFjcm8obWVtLCBkc3QpIGxvYWRpcyBt
ZW0sIGRzdCBlbmQpCisKK21hY3JvIHdhc21TdG9yZU9wKG5hbWUsIHN0cnVjdCwgc2l6ZSwgZm4p
CisgICAgd2FzbU9wKG5hbWUsIHN0cnVjdCwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4
LCBtX3BvaW50ZXIsIHQwKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAg
ICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoY3R4LCB0MCwgdDEsIHNpemUpCisgICAgICAg
IG1sb2FkcShjdHgsIG1fdmFsdWUsIHQyKQorICAgICAgICBmbih0MiwgW3QwLCB0MV0pCisgICAg
ICAgIGRpc3BhdGNoKGN0eCkKKyAgICBlbmQpCitlbmQKKword2FzbVN0b3JlT3Aoc3RvcmU4LCBX
YXNtU3RvcmU4LCAxLCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZWIgdmFsdWUsIG1lbSBlbmQpCit3
YXNtU3RvcmVPcChzdG9yZTE2LCBXYXNtU3RvcmUxNiwgMiwgbWFjcm8odmFsdWUsIG1lbSkgc3Rv
cmVoIHZhbHVlLCBtZW0gZW5kKQord2FzbVN0b3JlT3Aoc3RvcmUzMiwgV2FzbVN0b3JlMzIsIDQs
IG1hY3JvKHZhbHVlLCBtZW0pIHN0b3JlaSB2YWx1ZSwgbWVtIGVuZCkKK3dhc21TdG9yZU9wKHN0
b3JlNjQsIFdhc21TdG9yZTY0LCA4LCBtYWNybyh2YWx1ZSwgbWVtKSBzdG9yZXEgdmFsdWUsIG1l
bSBlbmQpCisKK3dhc21PcChyZWZfaXNfbnVsbCwgV2FzbVJlZklzTnVsbCwgbWFjcm8oY3R4KQor
ICAgIG1sb2FkcChjdHgsIG1fcmVmLCB0MCkKKyAgICBjcWVxIHQwLCBWYWx1ZU51bGwsIHQwCisg
ICAgcmV0dXJuaShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoZ2V0X2dsb2JhbCwgV2FzbUdldEds
b2JhbCwgbWFjcm8oY3R4KQorICAgIGxvYWRwIFdhc206Okluc3RhbmNlOjptX2dsb2JhbHNbd2Fz
bUluc3RhbmNlXSwgdDAKKyAgICB3Z2V0dShjdHgsIG1fZ2xvYmFsSW5kZXgsIHQxKQorICAgIGxv
YWRxIFt0MCwgdDEsIDhdLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9w
KHNldF9nbG9iYWwsIFdhc21TZXRHbG9iYWwsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJ
bnN0YW5jZTo6bV9nbG9iYWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4LCBtX2ds
b2JhbEluZGV4LCB0MSkKKyAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAgICBzdG9yZXEg
dDIsIFt0MCwgdDEsIDhdCisgICAgZGlzcGF0Y2goY3R4KQorZW5kKQorCit3YXNtT3AoZ2V0X2ds
b2JhbF9wb3J0YWJsZV9iaW5kaW5nLCBXYXNtR2V0R2xvYmFsUG9ydGFibGVCaW5kaW5nLCBtYWNy
byhjdHgpCisgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fZ2xvYmFsc1t3YXNtSW5zdGFuY2Vd
LCB0MAorICAgIHdnZXR1KGN0eCwgbV9nbG9iYWxJbmRleCwgdDEpCisgICAgbG9hZHEgW3QwLCB0
MSwgOF0sIHQwCisgICAgbG9hZHEgW3QwXSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQp
CisKK3dhc21PcChzZXRfZ2xvYmFsX3BvcnRhYmxlX2JpbmRpbmcsIFdhc21TZXRHbG9iYWxQb3J0
YWJsZUJpbmRpbmcsIG1hY3JvKGN0eCkKKyAgICBsb2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9nbG9i
YWxzW3dhc21JbnN0YW5jZV0sIHQwCisgICAgd2dldHUoY3R4LCBtX2dsb2JhbEluZGV4LCB0MSkK
KyAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAgICBsb2FkcSBbdDAsIHQxLCA4XSwgdDAK
KyAgICBzdG9yZXEgdDIsIFt0MF0KKyAgICBkaXNwYXRjaChjdHgpCitlbmQpCisKKyMgT3Bjb2Rl
cyB0aGF0IGRvbid0IGhhdmUgdGhlIGBiM29wYCBlbnRyeSBpbiB3YXNtLmpzb24uIFRoaXMgc2hv
dWxkIGJlIGtlcHQgaW4gc3luYworCisjIGkzMiBiaW5hcnkgb3BzCisKK3dhc21PcChpMzJfZGl2
X3MsIFdhc21JMzJEaXZTLCBtYWNybyAoY3R4KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkK
KyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisKKyAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lv
bkJ5WmVybworCisgICAgYmluZXEgdDEsIC0xLCAuc2FmZQorICAgIGJpZXEgdDAsIGNvbnN0ZXhw
ciBJTlQzMl9NSU4sIC50aHJvd0ludGVnZXJPdmVyZmxvdworCisuc2FmZToKKyAgICBpZiBYODZf
NjQKKyAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlz
IHJheCBhbmQgdDIgaXMgcmR4CisgICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMzY5MgorICAgICAgICBjZHFpCisgICAgICAgIGlkaXZpIHQxCisgICAg
ZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKKyAgICAgICAgZGl2aXMgdDEsIHQwCisg
ICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorICAgIHJldHVybmkoY3R4LCB0MCkKKwor
LnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25CeVplcm8p
CisKKy50aHJvd0ludGVnZXJPdmVyZmxvdzoKKyAgICB0aHJvd0V4Y2VwdGlvbihJbnRlZ2VyT3Zl
cmZsb3cpCitlbmQpCisKK3dhc21PcChpMzJfZGl2X3UsIFdhc21JMzJEaXZVLCBtYWNybyAoY3R4
KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEp
CisKKyAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgaWYgWDg2XzY0Cisg
ICAgICAgIHhvcmkgdDIsIHQyCisgICAgICAgIHVkaXZpIHQxCisgICAgZWxzaWYgQVJNNjQgb3Ig
QVJNNjRFIG9yIFJJU0NWNjQKKyAgICAgICAgZGl2aSB0MSwgdDAKKyAgICBlbHNlCisgICAgICAg
IGVycm9yCisgICAgZW5kCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisudGhyb3dEaXZpc2lvbkJ5
WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2VuZCkKKword2FzbU9w
KGkzMl9yZW1fcywgV2FzbUkzMlJlbVMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRpKGN0eCwgbV9s
aHMsIHQwKQorICAgIG1sb2FkaShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0aXogdDEsIC50aHJv
d0RpdmlzaW9uQnlaZXJvCisKKyAgICBiaW5lcSB0MSwgLTEsIC5zYWZlCisgICAgYmluZXEgdDAs
IGNvbnN0ZXhwciBJTlQzMl9NSU4sIC5zYWZlCisKKyAgICBtb3ZlIDAsIHQyCisgICAgam1wIC5y
ZXR1cm4KKworLnNhZmU6CisgICAgaWYgWDg2XzY0CisgICAgICAgICMgRklYTUU6IEFkZCBhIHdh
eSB0byBzdGF0aWNfYXNzZXQgdGhhdCB0MCBpcyByYXggYW5kIHQyIGlzIHJkeAorICAgICAgICAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM2OTIKKyAgICAgICAg
Y2RxaQorICAgICAgICBpZGl2aSB0MQorICAgIGVsc2lmIEFSTTY0IG9yIEFSTTY0RQorICAgICAg
ICBkaXZpcyB0MSwgdDAsIHQyCisgICAgICAgIG11bGkgdDEsIHQyCisgICAgICAgIHN1YmkgdDAs
IHQyLCB0MgorICAgIGVsc2lmIFJJU0NWNjQKKyAgICAgICAgcmVtaXMgdDEsIHQwCisgICAgZWxz
ZQorICAgICAgICBlcnJvcgorICAgIGVuZAorCisucmV0dXJuOgorICAgIHJldHVybmkoY3R4LCB0
MikKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25C
eVplcm8pCitlbmQpCisKK3dhc21PcChpMzJfcmVtX3UsIFdhc21JMzJSZW1VLCBtYWNybyAoY3R4
KQorICAgIG1sb2FkaShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEp
CisKKyAgICBidGl6IHQxLCAudGhyb3dEaXZpc2lvbkJ5WmVybworCisgICAgaWYgWDg2XzY0Cisg
ICAgICAgIHhvcmkgdDIsIHQyCisgICAgICAgIHVkaXZpIHQxCisgICAgZWxzaWYgQVJNNjQgb3Ig
QVJNNjRFCisgICAgICAgIGRpdmkgdDEsIHQwLCB0MgorICAgICAgICBtdWxpIHQxLCB0MgorICAg
ICAgICBzdWJpIHQwLCB0MiwgdDIKKyAgICBlbHNpZiBSSVNDVjY0CisgICAgICAgIHJlbWkgdDEs
IHQwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorICAgIHJldHVybmkoY3R4LCB0
MikKKworLnRocm93RGl2aXNpb25CeVplcm86CisgICAgdGhyb3dFeGNlcHRpb24oRGl2aXNpb25C
eVplcm8pCitlbmQpCisKKyMgaTY0IGJpbmFyeSBvcHMKKword2FzbU9wKGk2NF9hZGQsIFdhc21J
NjRBZGQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRx
KGN0eCwgbV9yaHMsIHQxKQorICAgIGFkZHEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQor
ZW5kKQorCit3YXNtT3AoaTY0X3N1YiwgV2FzbUk2NFN1YiwgbWFjcm8oY3R4KQorICAgIG1sb2Fk
cShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgc3VicSB0
MSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfbXVsLCBXYXNt
STY0TXVsLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2Fk
cShjdHgsIG1fcmhzLCB0MSkKKyAgICBtdWxxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkK
K2VuZCkKKword2FzbU9wKGk2NF9kaXZfcywgV2FzbUk2NERpdlMsIG1hY3JvIChjdHgpCisgICAg
bWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKworICAg
IGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBicW5lcSB0MSwgLTEsIC5zYWZl
CisgICAgYnFlcSB0MCwgY29uc3RleHByIElOVDY0X01JTiwgLnRocm93SW50ZWdlck92ZXJmbG93
CisKKy5zYWZlOgorICAgIGlmIFg4Nl82NAorICAgICAgICAjIEZJWE1FOiBBZGQgYSB3YXkgdG8g
c3RhdGljX2Fzc2V0IHRoYXQgdDAgaXMgcmF4IGFuZCB0MiBpcyByZHgKKyAgICAgICAgIyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNjkyCisgICAgICAgIGNxb3EK
KyAgICAgICAgaWRpdnEgdDEKKyAgICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAor
ICAgICAgICBkaXZxcyB0MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCisg
ICAgcmV0dXJucShjdHgsIHQwKQorCisudGhyb3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4
Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKKworLnRocm93SW50ZWdlck92ZXJmbG93OgorICAgIHRo
cm93RXhjZXB0aW9uKEludGVnZXJPdmVyZmxvdykKK2VuZCkKKword2FzbU9wKGk2NF9kaXZfdSwg
V2FzbUk2NERpdlUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAg
IG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0cXogdDEsIC50aHJvd0RpdmlzaW9uQnla
ZXJvCisKKyAgICBpZiBYODZfNjQKKyAgICAgICAgeG9ycSB0MiwgdDIKKyAgICAgICAgdWRpdnEg
dDEKKyAgICBlbHNpZiBBUk02NCBvciBBUk02NEUgb3IgUklTQ1Y2NAorICAgICAgICBkaXZxIHQx
LCB0MAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKKyAgICByZXR1cm5xKGN0eCwg
dDApCisKKy50aHJvd0RpdmlzaW9uQnlaZXJvOgorICAgIHRocm93RXhjZXB0aW9uKERpdmlzaW9u
QnlaZXJvKQorZW5kKQorCit3YXNtT3AoaTY0X3JlbV9zLCBXYXNtSTY0UmVtUywgbWFjcm8gKGN0
eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQx
KQorCisgICAgYnRxeiB0MSwgLnRocm93RGl2aXNpb25CeVplcm8KKworICAgIGJxbmVxIHQxLCAt
MSwgLnNhZmUKKyAgICBicW5lcSB0MCwgY29uc3RleHByIElOVDY0X01JTiwgLnNhZmUKKworICAg
IG1vdmUgMCwgdDIKKyAgICBqbXAgLnJldHVybgorCisuc2FmZToKKyAgICBpZiBYODZfNjQKKyAg
ICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHN0YXRpY19hc3NldCB0aGF0IHQwIGlzIHJheCBh
bmQgdDIgaXMgcmR4CisgICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMzY5MgorICAgICAgICBjcW9xCisgICAgICAgIGlkaXZxIHQxCisgICAgZWxzaWYg
QVJNNjQgb3IgQVJNNjRFCisgICAgICAgIGRpdnFzIHQxLCB0MCwgdDIKKyAgICAgICAgbXVscSB0
MSwgdDIKKyAgICAgICAgc3VicSB0MCwgdDIsIHQyCisgICAgZWxzaWYgUklTQ1Y2NAorICAgICAg
ICByZW1xcyB0MSwgdDAKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCisKKy5yZXR1
cm46CisgICAgcmV0dXJucShjdHgsIHQyKSAjIHJkeCBoYXMgdGhlIHJlbWFpbmRlcgorCisudGhy
b3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2Vu
ZCkKKword2FzbU9wKGk2NF9yZW1fdSwgV2FzbUk2NFJlbVUsIG1hY3JvIChjdHgpCisgICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKworICAgIGJ0
cXogdDEsIC50aHJvd0RpdmlzaW9uQnlaZXJvCisKKyAgICBpZiBYODZfNjQKKyAgICAgICAgeG9y
cSB0MiwgdDIKKyAgICAgICAgdWRpdnEgdDEKKyAgICBlbHNpZiBBUk02NCBvciBBUk02NEUKKyAg
ICAgICAgZGl2cSB0MSwgdDAsIHQyCisgICAgICAgIG11bHEgdDEsIHQyCisgICAgICAgIHN1YnEg
dDAsIHQyLCB0MgorICAgIGVsc2lmIFJJU0NWNjQKKyAgICAgICAgcmVtcSB0MSwgdDAKKyAgICBl
bHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCisgICAgcmV0dXJucShjdHgsIHQyKQorCisudGhy
b3dEaXZpc2lvbkJ5WmVybzoKKyAgICB0aHJvd0V4Y2VwdGlvbihEaXZpc2lvbkJ5WmVybykKK2Vu
ZCkKKword2FzbU9wKGk2NF9hbmQsIFdhc21JNjRBbmQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEo
Y3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGFuZHEgdDAs
IHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X29yLCBXYXNtSTY0
T3IsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0
eCwgbV9yaHMsIHQxKQorICAgIG9ycSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQp
CisKK3dhc21PcChpNjRfeG9yLCBXYXNtSTY0WG9yLCBtYWNybyhjdHgpCisgICAgbWxvYWRxKGN0
eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICB4b3JxIHQwLCB0
MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9zaGwsIFdhc21JNjRT
aGwsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0
eCwgbV9yaHMsIHQxKQorICAgIGxzaGlmdHEgdDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQor
ZW5kKQorCit3YXNtT3AoaTY0X3Nocl91LCBXYXNtSTY0U2hyVSwgbWFjcm8oY3R4KQorICAgIG1s
b2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisgICAgdXJz
aGlmdHEgdDEsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3No
cl9zLCBXYXNtSTY0U2hyUywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkK
KyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisgICAgcnNoaWZ0cSB0MSwgdDAKKyAgICByZXR1
cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfcm90ciwgV2FzbUk2NFJvdHIsIG1hY3Jv
KGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRpKGN0eCwgbV9yaHMs
IHQxKQorICAgIHJyb3RhdGVxIHQxLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKwor
d2FzbU9wKGk2NF9yb3RsLCBXYXNtSTY0Um90bCwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgs
IG1fbGhzLCB0MCkKKyAgICBtbG9hZGkoY3R4LCBtX3JocywgdDEpCisgICAgbHJvdGF0ZXEgdDEs
IHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X2VxLCBXYXNtSTY0
RXEsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRxKGN0
eCwgbV9yaHMsIHQxKQorICAgIGNxZXEgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICBy
ZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfbmUsIFdhc21JNjROZSwgbWFjcm8o
Y3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3Jocywg
dDEpCisgICAgY3FuZXEgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0
eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfbHRfcywgV2FzbUk2NEx0UywgbWFjcm8oY3R4KQor
ICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisg
ICAgY3FsdCB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVybmkoY3R4LCB0MikK
K2VuZCkKKword2FzbU9wKGk2NF9sZV9zLCBXYXNtSTY0TGVTLCBtYWNybyhjdHgpCisgICAgbWxv
YWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1fcmhzLCB0MSkKKyAgICBjcWx0
ZXEgdDAsIHQxLCB0MgorICAgIGFuZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQp
CisKK3dhc21PcChpNjRfbHRfdSwgV2FzbUk2NEx0VSwgbWFjcm8oY3R4KQorICAgIG1sb2FkcShj
dHgsIG1fbGhzLCB0MCkKKyAgICBtbG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FiIHQwLCB0
MSwgdDIKKyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNt
T3AoaTY0X2xlX3UsIFdhc21JNjRMZVUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xo
cywgdDApCisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxYmVxIHQwLCB0MSwgdDIK
KyAgICBhbmRpIDEsIHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0
X2d0X3MsIFdhc21JNjRHdFMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDAp
CisgICAgbWxvYWRxKGN0eCwgbV9yaHMsIHQxKQorICAgIGNxZ3QgdDAsIHQxLCB0MgorICAgIGFu
ZGkgMSwgdDIKKyAgICByZXR1cm5pKGN0eCwgdDIpCitlbmQpCisKK3dhc21PcChpNjRfZ2Vfcywg
V2FzbUk2NEdlUywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fbGhzLCB0MCkKKyAgICBt
bG9hZHEoY3R4LCBtX3JocywgdDEpCisgICAgY3FndGVxIHQwLCB0MSwgdDIKKyAgICBhbmRpIDEs
IHQyCisgICAgcmV0dXJuaShjdHgsIHQyKQorZW5kKQorCit3YXNtT3AoaTY0X2d0X3UsIFdhc21J
NjRHdFUsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX2xocywgdDApCisgICAgbWxvYWRx
KGN0eCwgbV9yaHMsIHQxKQorICAgIGNxYSB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAg
IHJldHVybmkoY3R4LCB0MikKK2VuZCkKKword2FzbU9wKGk2NF9nZV91LCBXYXNtSTY0R2VVLCBt
YWNybyhjdHgpCisgICAgbWxvYWRxKGN0eCwgbV9saHMsIHQwKQorICAgIG1sb2FkcShjdHgsIG1f
cmhzLCB0MSkKKyAgICBjcWFlcSB0MCwgdDEsIHQyCisgICAgYW5kaSAxLCB0MgorICAgIHJldHVy
bmkoY3R4LCB0MikKK2VuZCkKKworIyBpNjQgdW5hcnkgb3BzCisKK3dhc21PcChpNjRfY3R6LCBX
YXNtSTY0Q3R6LCBtYWNybyAoY3R4KQorICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCisg
ICAgdHpjbnRxIHQwLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2
NF9jbHosIFdhc21JNjRDbHosIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQs
IHQwKQorICAgIGx6Y250cSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dh
c21PcChpNjRfcG9wY250LCBXYXNtSTY0UG9wY250LCBtYWNybyAoY3R4KQorICAgIG1sb2FkcShj
dHgsIG1fb3BlcmFuZCwgYTEpCisgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIG1vdmUg
UEMsIGEwCisgICAgY0NhbGwyKF9zbG93X3BhdGhfd2FzbV9wb3Bjb3VudGxsKQorICAgIHJlc3Rv
cmVTdGF0ZUFmdGVyQ0NhbGwoKQorICAgIHJldHVybnEoY3R4LCByMSkKK2VuZCkKKword2FzbU9w
KGk2NF9lcXosIFdhc21JNjRFcXosIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29wZXJh
bmQsIHQwKQorICAgIGNxZXEgdDAsIDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorZW5kKQor
CisjIGY2NCBiaW5hcnkgb3BzCisKK3dhc21PcChmNjRfY29weXNpZ24sIFdhc21GNjRDb3B5c2ln
biwgbWFjcm8oY3R4KQorICAgIG1sb2FkZChjdHgsIG1fbGhzLCBmdDApCisgICAgbWxvYWRkKGN0
eCwgbV9yaHMsIGZ0MSkKKworICAgIGZkMnEgZnQxLCB0MQorICAgIG1vdmUgMHg4MDAwMDAwMDAw
MDAwMDAwLCB0MgorICAgIGFuZHEgdDIsIHQxCisKKyAgICBmZDJxIGZ0MCwgdDAKKyAgICBtb3Zl
IDB4N2ZmZmZmZmZmZmZmZmZmZiwgdDIKKyAgICBhbmRxIHQyLCB0MAorCisgICAgb3JxIHQxLCB0
MAorICAgIGZxMmQgdDAsIGZ0MAorICAgIHJldHVybmQoY3R4LCBmdDApCitlbmQpCisKKyMgVHlw
ZSBjb252ZXJzaW9uIG9wcworCit3YXNtT3AoaTY0X2V4dGVuZF9zX2kzMiwgV2FzbUk2NEV4dGVu
ZFNJMzIsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGkoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIHN4
aTJxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2VuZCkKKword2FzbU9wKGk2NF9leHRl
bmRfdV9pMzIsIFdhc21JNjRFeHRlbmRVSTMyLCBtYWNybyhjdHgpCisgICAgbWxvYWRpKGN0eCwg
bV9vcGVyYW5kLCB0MCkKKyAgICB6eGkycSB0MCwgdDEKKyAgICByZXR1cm5xKGN0eCwgdDEpCitl
bmQpCisKK3dhc21PcChmNjRfcmVpbnRlcnByZXRfaTY0LCBXYXNtRjY0UmVpbnRlcnByZXRJNjQs
IG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBtX29wZXJhbmQsIHQwKQorICAgIGZxMmQgdDAs
IGZ0MAorICAgIHJldHVybmQoY3R4LCBmdDApCitlbmQpCisKK3dhc21PcChpNjRfcmVpbnRlcnBy
ZXRfZjY0LCBXYXNtSTY0UmVpbnRlcnByZXRGNjQsIG1hY3JvKGN0eCkKKyAgICBtbG9hZGQoY3R4
LCBtX29wZXJhbmQsIGZ0MCkKKyAgICBmZDJxIGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDAp
CitlbmQpCisKK3dhc21PcChpMzJfdHJ1bmNfc19mNjQsIFdhc21JMzJUcnVuY1NGNjQsIG1hY3Jv
IChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YzFl
MDAwMDAwMDIwMDAwMCwgdDAgIyBJTlQzMl9NSU4gLSAxLjAKKyAgICBmcTJkIHQwLCBmdDEKKyAg
ICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIG1vdmUgMHg0MWUw
MDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQzMl9NSU4KKyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0
ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZDJpcyBmdDAs
IHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuYzoKKyAgICB0aHJv
d0V4Y2VwdGlvbihPdXRPZkJvdW5kc1RydW5jKQorZW5kKQorCit3YXNtT3AoaTMyX3RydW5jX3Vf
ZjY0LCBXYXNtSTMyVHJ1bmNVRjY0LCBtYWNybyAoY3R4KQorICAgIG1sb2FkZChjdHgsIG1fb3Bl
cmFuZCwgZnQwKQorCisgICAgbW92ZSAweGJmZjAwMDAwMDAwMDAwMDAsIHQwICMgLTEuMAorICAg
IGZxMmQgdDAsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwor
CisgICAgbW92ZSAweDQxZjAwMDAwMDAwMDAwMDAsIHQwICMgSU5UMzJfTUlOICogLTIuMAorICAg
IGZxMmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuYwor
CisgICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9m
Qm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNlcHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKK2VuZCkK
Kword2FzbU9wKGk2NF90cnVuY19zX2YzMiwgV2FzbUk2NFRydW5jU0YzMiwgbWFjcm8gKGN0eCkK
KyAgICBtbG9hZGYoY3R4LCBtX29wZXJhbmQsIGZ0MCkKKworICAgIG1vdmUgMHhkZjAwMDAwMCwg
dDAgIyBJTlQ2NF9NSU4KKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmx0dW4gZnQwLCBmdDEsIC5v
dXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlIDB4NWYwMDAwMDAsIHQwICMgLUlOVDY0X01JTgor
ICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmZ3RlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVu
YworCisgICAgdHJ1bmNhdGVmMnFzIGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5v
dXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCitl
bmQpCisKK3dhc21PcChpNjRfdHJ1bmNfdV9mMzIsIFdhc21JNjRUcnVuY1VGMzIsIG1hY3JvIChj
dHgpCisgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YmY4MDAw
MDAsIHQwICMgLTEuMAorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmbHRlcXVuIGZ0MCwgZnQxLCAu
b3V0T2ZCb3VuZHNUcnVuYworCisgICAgbW92ZSAweDVmODAwMDAwLCB0MCAjIElOVDY0X01JTiAq
IC0yLjAKKyAgICBmaTJmIHQwLCBmdDEKKyAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91
bmRzVHJ1bmMKKworICAgIHRydW5jYXRlZjJxIGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDAp
CisKKy5vdXRPZkJvdW5kc1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1
bmMpCitlbmQpCisKK3dhc21PcChpNjRfdHJ1bmNfc19mNjQsIFdhc21JNjRUcnVuY1NGNjQsIG1h
Y3JvIChjdHgpCisgICAgbWxvYWRkKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4
YzNlMDAwMDAwMDAwMDAwMCwgdDAgIyBJTlQ2NF9NSU4KKyAgICBmcTJkIHQwLCBmdDEKKyAgICBi
ZGx0dW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICBtb3ZlIDB4NDNlMDAwMDAw
MDAwMDAwMCwgdDAgIyAtSU5UNjRfTUlOCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4g
ZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jCisKKyAgICB0cnVuY2F0ZWQycXMgZnQwLCB0MAor
ICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmM6CisgICAgdGhyb3dFeGNl
cHRpb24oT3V0T2ZCb3VuZHNUcnVuYykKK2VuZCkKKword2FzbU9wKGk2NF90cnVuY191X2Y2NCwg
V2FzbUk2NFRydW5jVUY2NCwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJhbmQs
IGZ0MCkKKworICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKKyAgICBmcTJk
IHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAg
IG1vdmUgMHg0M2YwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDY0X01JTiAqIC0yLjAKKyAgICBmcTJk
IHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmMKKworICAg
IHRydW5jYXRlZDJxIGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5k
c1RydW5jOgorICAgIHRocm93RXhjZXB0aW9uKE91dE9mQm91bmRzVHJ1bmMpCitlbmQpCisKK3dh
c21PcChpMzJfdHJ1bmNfc2F0X2Y2NF9zLCBXYXNtSTMyVHJ1bmNTYXRGNjRTLCBtYWNybyAoY3R4
KQorICAgIG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGMxZTAwMDAw
MDAyMDAwMDAsIHQwICMgSU5UMzJfTUlOIC0gMS4wCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRs
dGVxdW4gZnQwLCBmdDEsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JOYU4KKworICAgIG1vdmUg
MHg0MWUwMDAwMDAwMDAwMDAwLCB0MCAjIC1JTlQzMl9NSU4KKyAgICBmcTJkIHQwLCBmdDEKKyAg
ICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRNYXgKKworICAgIHRydW5j
YXRlZDJpcyBmdDAsIHQwCisgICAgcmV0dXJuaShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVu
Y1NhdE1pbk9yTmFOOgorICAgIGJkZXEgZnQwLCBmdDAsIC5vdXRPZkJvdW5kc1RydW5jU2F0TWlu
CisgICAgbW92ZSAwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1
bmNTYXRNYXg6CisgICAgbW92ZSAoY29uc3RleHByIElOVDMyX01BWCksIHQwCisgICAgcmV0dXJu
aShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbjoKKyAgICBtb3ZlIChjb25zdGV4
cHIgSU5UMzJfTUlOKSwgdDAKKyAgICByZXR1cm5pKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChp
MzJfdHJ1bmNfc2F0X2Y2NF91LCBXYXNtSTMyVHJ1bmNTYXRGNjRVLCBtYWNybyAoY3R4KQorICAg
IG1sb2FkZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGJmZjAwMDAwMDAwMDAw
MDAsIHQwICMgLTEuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkbHRlcXVuIGZ0MCwgZnQxLCAu
b3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorCisgICAgbW92ZSAweDQxZjAwMDAwMDAwMDAwMDAsIHQw
ICMgSU5UMzJfTUlOICogLTIuMAorICAgIGZxMmQgdDAsIGZ0MQorICAgIGJkZ3RlcXVuIGZ0MCwg
ZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisgICAgdHJ1bmNhdGVkMmkgZnQwLCB0MAor
ICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92
ZSAwLCB0MAorICAgIHJldHVybmkoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNYXg6
CisgICAgbW92ZSAoY29uc3RleHByIFVJTlQzMl9NQVgpLCB0MAorICAgIHJldHVybmkoY3R4LCB0
MCkKK2VuZCkKKword2FzbU9wKGk2NF90cnVuY19zYXRfZjMyX3MsIFdhc21JNjRUcnVuY1NhdEYz
MlMsIG1hY3JvIChjdHgpCisgICAgbWxvYWRmKGN0eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBt
b3ZlIDB4ZGYwMDAwMDAsIHQwICMgSU5UNjRfTUlOCisgICAgZmkyZiB0MCwgZnQxCisgICAgYmZs
dHVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOCisKKyAgICBtb3ZlIDB4
NWYwMDAwMDAsIHQwICMgLUlOVDY0X01JTgorICAgIGZpMmYgdDAsIGZ0MQorICAgIGJmZ3RlcXVu
IGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1heAorCisgICAgdHJ1bmNhdGVmMnFzIGZ0
MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluT3JO
YU46CisgICAgYmZlcSBmdDAsIGZ0MCwgLm91dE9mQm91bmRzVHJ1bmNTYXRNaW4KKyAgICBtb3Zl
IDAsIHQwCisgICAgcmV0dXJucShjdHgsIHQwKQorCisub3V0T2ZCb3VuZHNUcnVuY1NhdE1heDoK
KyAgICBtb3ZlIChjb25zdGV4cHIgSU5UNjRfTUFYKSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDAp
CisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUgKGNvbnN0ZXhwciBJTlQ2NF9N
SU4pLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKK2VuZCkKKword2FzbU9wKGk2NF90cnVuY19z
YXRfZjMyX3UsIFdhc21JNjRUcnVuY1NhdEYzMlUsIG1hY3JvIChjdHgpCisgICAgbWxvYWRmKGN0
eCwgbV9vcGVyYW5kLCBmdDApCisKKyAgICBtb3ZlIDB4YmY4MDAwMDAsIHQwICMgLTEuMAorICAg
IGZpMmYgdDAsIGZ0MQorICAgIGJmbHRlcXVuIGZ0MCwgZnQxLCAub3V0T2ZCb3VuZHNUcnVuY1Nh
dE1pbgorCisgICAgbW92ZSAweDVmODAwMDAwLCB0MCAjIElOVDY0X01JTiAqIC0yLjAKKyAgICBm
aTJmIHQwLCBmdDEKKyAgICBiZmd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRN
YXgKKworICAgIHRydW5jYXRlZjJxIGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCisKKy5v
dXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5xKGN0eCwg
dDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhwciBVSU5U
NjRfTUFYKSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKK3dhc21PcChpNjRfdHJ1
bmNfc2F0X2Y2NF9zLCBXYXNtSTY0VHJ1bmNTYXRGNjRTLCBtYWNybyAoY3R4KQorICAgIG1sb2Fk
ZChjdHgsIG1fb3BlcmFuZCwgZnQwKQorCisgICAgbW92ZSAweGMzZTAwMDAwMDAwMDAwMDAsIHQw
ICMgSU5UNjRfTUlOCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRsdHVuIGZ0MCwgZnQxLCAub3V0
T2ZCb3VuZHNUcnVuY1NhdE1pbk9yTmFOCisKKyAgICBtb3ZlIDB4NDNlMDAwMDAwMDAwMDAwMCwg
dDAgIyAtSU5UNjRfTUlOCisgICAgZnEyZCB0MCwgZnQxCisgICAgYmRndGVxdW4gZnQwLCBmdDEs
IC5vdXRPZkJvdW5kc1RydW5jU2F0TWF4CisKKyAgICB0cnVuY2F0ZWQycXMgZnQwLCB0MAorICAg
IHJldHVybnEoY3R4LCB0MCkKKworLm91dE9mQm91bmRzVHJ1bmNTYXRNaW5Pck5hTjoKKyAgICBi
ZGVxIGZ0MCwgZnQwLCAub3V0T2ZCb3VuZHNUcnVuY1NhdE1pbgorICAgIG1vdmUgMCwgdDAKKyAg
ICByZXR1cm5xKGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAgIG1vdmUg
KGNvbnN0ZXhwciBJTlQ2NF9NQVgpLCB0MAorICAgIHJldHVybnEoY3R4LCB0MCkKKworLm91dE9m
Qm91bmRzVHJ1bmNTYXRNaW46CisgICAgbW92ZSAoY29uc3RleHByIElOVDY0X01JTiksIHQwCisg
ICAgcmV0dXJucShjdHgsIHQwKQorZW5kKQorCit3YXNtT3AoaTY0X3RydW5jX3NhdF9mNjRfdSwg
V2FzbUk2NFRydW5jU2F0RjY0VSwgbWFjcm8gKGN0eCkKKyAgICBtbG9hZGQoY3R4LCBtX29wZXJh
bmQsIGZ0MCkKKworICAgIG1vdmUgMHhiZmYwMDAwMDAwMDAwMDAwLCB0MCAjIC0xLjAKKyAgICBm
cTJkIHQwLCBmdDEKKyAgICBiZGx0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1bmNTYXRN
aW4KKworICAgIG1vdmUgMHg0M2YwMDAwMDAwMDAwMDAwLCB0MCAjIElOVDY0X01JTiAqIC0yLjAK
KyAgICBmcTJkIHQwLCBmdDEKKyAgICBiZGd0ZXF1biBmdDAsIGZ0MSwgLm91dE9mQm91bmRzVHJ1
bmNTYXRNYXgKKworICAgIHRydW5jYXRlZDJxIGZ0MCwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDAp
CisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWluOgorICAgIG1vdmUgMCwgdDAKKyAgICByZXR1cm5x
KGN0eCwgdDApCisKKy5vdXRPZkJvdW5kc1RydW5jU2F0TWF4OgorICAgIG1vdmUgKGNvbnN0ZXhw
ciBVSU5UNjRfTUFYKSwgdDAKKyAgICByZXR1cm5xKGN0eCwgdDApCitlbmQpCisKKyMgRXh0ZW5k
IG9wcworCit3YXNtT3AoaTY0X2V4dGVuZDhfcywgV2FzbUk2NEV4dGVuZDhTLCBtYWNybyhjdHgp
CisgICAgbWxvYWRxKGN0eCwgbV9vcGVyYW5kLCB0MCkKKyAgICBzeGIycSB0MCwgdDEKKyAgICBy
ZXR1cm5xKGN0eCwgdDEpCitlbmQpCisKK3dhc21PcChpNjRfZXh0ZW5kMTZfcywgV2FzbUk2NEV4
dGVuZDE2UywgbWFjcm8oY3R4KQorICAgIG1sb2FkcShjdHgsIG1fb3BlcmFuZCwgdDApCisgICAg
c3hoMnEgdDAsIHQxCisgICAgcmV0dXJucShjdHgsIHQxKQorZW5kKQorCit3YXNtT3AoaTY0X2V4
dGVuZDMyX3MsIFdhc21JNjRFeHRlbmQxNlMsIG1hY3JvKGN0eCkKKyAgICBtbG9hZHEoY3R4LCBt
X29wZXJhbmQsIHQwKQorICAgIHN4aTJxIHQwLCB0MQorICAgIHJldHVybnEoY3R4LCB0MSkKK2Vu
ZCkKKworIyBBdG9taWNzCisKK21hY3JvIHdhc21BdG9taWNCaW5hcnlSTVdPcHMobG93ZXJDYXNl
T3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmksIGZucSkKKyAgICB3YXNtT3Ao
aTY0X2F0b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzgldXBw
ZXJDYXNlT3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVy
LCB0MykKKyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIG1sb2FkcShj
dHgsIG1fdmFsdWUsIHQwKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGlu
Z09mZnNldChjdHgsIHQzLCB0MSwgMSkKKyAgICAgICAgZm5iKHQwLCBbdDNdLCB0MiwgdDUsIHQx
KQorICAgICAgICBhbmRxIDB4ZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQ4VG82NAorICAgICAg
ICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmLCAub2sgZW5kKQorICAgICAgICByZXR1
cm5xKGN0eCwgdDApCisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzE2JWxvd2Vy
Q2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzE2JXVwcGVyQ2FzZU9wY29kZSVVLCBtYWNy
byhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1
KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkKKyAg
ICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50
Q2hlY2soY3R4LCB0MywgdDEsIDIpCisgICAgICAgIGZuaCh0MCwgW3QzXSwgdDIsIHQ1LCB0MSkK
KyAgICAgICAgYW5kcSAweGZmZmYsIHQwICMgRklYTUU6IFplcm9FeHRlbmQxNlRvNjQKKyAgICAg
ICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZmZmLCAub2sgZW5kKQorICAgICAgICBy
ZXR1cm5xKGN0eCwgdDApCisgICAgZW5kKQorICAgIHdhc21PcChpNjRfYXRvbWljX3JtdzMyJWxv
d2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzMyJXVwcGVyQ2FzZU9wY29kZSVVLCBt
YWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdn
ZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MCkK
KyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25t
ZW50Q2hlY2soY3R4LCB0MywgdDEsIDQpCisgICAgICAgIGZuaSh0MCwgW3QzXSwgdDIsIHQ1LCB0
MSkKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZmZmZmZmZiwgLm9rIGVu
ZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0
b21pY19ybXclbG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0b21pY1JtdyV1cHBlckNhc2VPcGNv
ZGUlLCBtYWNybyhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAg
ICAgIHdnZXR1KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVl
LCB0MCkKKyAgICAgICAgZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRo
QWxpZ25tZW50Q2hlY2soY3R4LCB0MywgdDEsIDgpCisgICAgICAgIGZucSh0MCwgW3QzXSwgdDIs
IHQ1LCB0MSkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKK2VuZAorCittYWNy
byB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMobG93ZXJDYXNlT3Bjb2RlLCB1cHBl
ckNhc2VPcGNvZGUsIGZuaSwgZm5xKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMobG93ZXJD
YXNlT3Bjb2RlLCB1cHBlckNhc2VPcGNvZGUsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpCisgICAgICAgICAgICBpZiBYODZfNjQKKyAgICAgICAgICAgICAg
ICBtb3ZlIHQwR1BSLCB0NUdQUgorICAgICAgICAgICAgICAgIGxvYWRiIG1lbSwgdDBHUFIKKyAg
ICAgICAgICAgIC5sb29wOgorICAgICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCisgICAg
ICAgICAgICAgICAgZm5pKHQ1R1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBiYXRvbWljd2Vh
a2Nhc2IgdDBHUFIsIHQyR1BSLCBtZW0sIC5sb29wCisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAubG9vcDoKKyAgICAgICAgICAgICAgICBsb2FkbGlua2FjcWIgbWVtLCB0MUdQUgorICAg
ICAgICAgICAgICAgIGZuaSh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIHN0
b3JlY29uZHJlbGIgdDVHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0NUdQ
UiwgMCwgLmxvb3AKKyAgICAgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgorICAgICAgICAg
ICAgZW5kCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1
R1BSLCB0MUdQUikKKyAgICAgICAgICAgIGlmIFg4Nl82NAorICAgICAgICAgICAgICAgIG1vdmUg
dDBHUFIsIHQ1R1BSCisgICAgICAgICAgICAgICAgbG9hZGggbWVtLCB0MEdQUgorICAgICAgICAg
ICAgLmxvb3A6CisgICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwgdDJHUFIKKyAgICAgICAgICAg
ICAgICBmbmkodDVHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIGJhdG9taWN3ZWFrY2FzaCB0
MEdQUiwgdDJHUFIsIG1lbSwgLmxvb3AKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIC5s
b29wOgorICAgICAgICAgICAgICAgIGxvYWRsaW5rYWNxaCBtZW0sIHQxR1BSCisgICAgICAgICAg
ICAgICAgZm5pKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgc3RvcmVjb25k
cmVsaCB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgICAgIGJpbmVxIHQ1R1BSLCAwLCAu
bG9vcAorICAgICAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCisgICAgICAgICAgICBlbmQK
KyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQx
R1BSKQorICAgICAgICAgICAgaWYgWDg2XzY0CisgICAgICAgICAgICAgICAgbW92ZSB0MEdQUiwg
dDVHUFIKKyAgICAgICAgICAgICAgICBsb2FkaSBtZW0sIHQwR1BSCisgICAgICAgICAgICAubG9v
cDoKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0MkdQUgorICAgICAgICAgICAgICAgIGZu
aSh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICAgICAgYmF0b21pY3dlYWtjYXNpIHQwR1BSLCB0
MkdQUiwgbWVtLCAubG9vcAorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgLmxvb3A6Cisg
ICAgICAgICAgICAgICAgbG9hZGxpbmthY3FpIG1lbSwgdDFHUFIKKyAgICAgICAgICAgICAgICBm
bmkodDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgICAgICBzdG9yZWNvbmRyZWxpIHQ1
R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICAgICAgYmluZXEgdDVHUFIsIDAsIC5sb29wCisg
ICAgICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAgICAgICAgICAgIGVuZAorICAgICAg
ICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisg
ICAgICAgICAgICBpZiBYODZfNjQKKyAgICAgICAgICAgICAgICBtb3ZlIHQwR1BSLCB0NUdQUgor
ICAgICAgICAgICAgICAgIGxvYWRxIG1lbSwgdDBHUFIKKyAgICAgICAgICAgIC5sb29wOgorICAg
ICAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCisgICAgICAgICAgICAgICAgZm5xKHQ1R1BS
LCB0MkdQUikKKyAgICAgICAgICAgICAgICBiYXRvbWljd2Vha2Nhc3EgdDBHUFIsIHQyR1BSLCBt
ZW0sIC5sb29wCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAubG9vcDoKKyAgICAgICAg
ICAgICAgICBsb2FkbGlua2FjcXEgbWVtLCB0MUdQUgorICAgICAgICAgICAgICAgIGZucSh0MEdQ
UiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgICAgIHN0b3JlY29uZHJlbHEgdDVHUFIsIHQy
R1BSLCBtZW0KKyAgICAgICAgICAgICAgICBiaW5lcSB0NUdQUiwgMCwgLmxvb3AKKyAgICAgICAg
ICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZCkK
K2VuZAorCitpZiBYODZfNjQKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9hZGQsIEFkZCwK
KyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNo
Z2FkZGIgdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdhZGRoIHQwR1BSLCBtZW0gZW5kLAorICAgICAgICBtYWNy
byh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaSB0MEdQUiwg
bWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikg
YXRvbWljeGNoZ2FkZHEgdDBHUFIsIG1lbSBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09w
cyhfc3ViLCBTdWIsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFH
UFIpIGF0b21pY3hjaGdzdWJiIHQwR1BSLCBtZW0gZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnc3ViaCB0MEdQUiwgbWVtIGVuZCwK
KyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNo
Z3N1YmkgdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0
NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdzdWJxIHQwR1BSLCBtZW0gZW5kKQorICAgIHdhc21BdG9t
aWNCaW5hcnlSTVdPcHMoX3hjaGcsIFhjaGcsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdiIHQwR1BSLCBtZW0gZW5kLAorICAgICAgICBt
YWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnaCB0MEdQUiwg
bWVtIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikg
YXRvbWljeGNoZ2kgdDBHUFIsIG1lbSBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdxIHQwR1BSLCBtZW0gZW5kKQorICAgIHdhc21B
dG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhfYW5kLCBBbmQsCisgICAgICAgIG1hY3JvKHQ1
R1BSLCB0MkdQUikKKyAgICAgICAgICAgIGFuZGkgdDVHUFIsIHQyR1BSCisgICAgICAgIGVuZCwK
KyAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQorICAgICAgICAgICAgYW5kcSB0NUdQUiwgdDJH
UFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vha0NBUyhf
b3IsIE9yLAorICAgICAgICBtYWNybyh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICBvcmkgdDVH
UFIsIHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDVHUFIsIHQyR1BSKQorICAg
ICAgICAgICAgb3JxIHQ1R1BSLCB0MkdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0Jp
bmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwKKyAgICAgICAgbWFjcm8odDVHUFIsIHQy
R1BSKQorICAgICAgICAgICAgeG9yaSB0NUdQUiwgdDJHUFIKKyAgICAgICAgZW5kLAorICAgICAg
ICBtYWNybyh0NUdQUiwgdDJHUFIpCisgICAgICAgICAgICB4b3JxIHQ1R1BSLCB0MkdQUgorICAg
ICAgICBlbmQpCitlbHNpZiBBUk02NEUKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzKF9hZGQs
IEFkZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRv
bWljeGNoZ2FkZGIgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwg
bWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnYWRkaCB0MEdQUiwgbWVtLCB0MEdQ
UiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0
b21pY3hjaGdhZGRpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIs
IG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2FkZHEgdDBHUFIsIG1lbSwgdDBH
UFIgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX3N1YiwgU3ViLAorICAgICAgICBt
YWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgbmVncSB0
MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGIgdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAg
ICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQor
ICAgICAgICAgICAgbmVncSB0MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2FkZGggdDBHUFIs
IG1lbSwgdDBHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQ
UiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgbmVncSB0MEdQUgorICAgICAgICAgICAgYXRv
bWljeGNoZ2FkZGkgdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBtYWNy
byh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgbmVncSB0MEdQ
UgorICAgICAgICAgICAgYXRvbWljeGNoZ2FkZHEgdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAg
ZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMoX2FuZCwgQW5kLAorICAgICAgICBtYWNy
byh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgbm90cSB0MEdQ
UgorICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFyYiB0MEdQUiwgbWVtLCB0MEdQUgorICAgICAg
ICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpCisg
ICAgICAgICAgICBub3RxIHQwR1BSCisgICAgICAgICAgICBhdG9taWN4Y2hnY2xlYXJoIHQwR1BS
LCBtZW0sIHQwR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJH
UFIsIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgICAgIG5vdHEgdDBHUFIKKyAgICAgICAgICAgIGF0
b21pY3hjaGdjbGVhcmkgdDBHUFIsIG1lbSwgdDBHUFIKKyAgICAgICAgZW5kLAorICAgICAgICBt
YWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKQorICAgICAgICAgICAgbm90cSB0
MEdQUgorICAgICAgICAgICAgYXRvbWljeGNoZ2NsZWFycSB0MEdQUiwgbWVtLCB0MEdQUgorICAg
ICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wcyhfb3IsIE9yLAorICAgICAgICBt
YWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hnb3JiIHQwR1BS
LCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BS
LCB0MUdQUikgYXRvbWljeGNoZ29yaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1h
Y3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdvcmkgdDBHUFIs
IG1lbSwgdDBHUFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIs
IHQxR1BSKSBhdG9taWN4Y2hnb3JxIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCkKKyAgICB3YXNtQXRv
bWljQmluYXJ5Uk1XT3BzKF94b3IsIFhvciwKKyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJH
UFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ3hvcmIgdDBHUFIsIG1lbSwgdDBHUFIgZW5kLAor
ICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBhdG9taWN4Y2hn
eG9yaCB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQy
R1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGd4b3JpIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwK
KyAgICAgICAgbWFjcm8odDBHUFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNo
Z3hvcnEgdDBHUFIsIG1lbSwgdDBHUFIgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHMo
X3hjaGcsIFhjaGcsCisgICAgICAgIG1hY3JvKHQwR1BSLCBtZW0sIHQyR1BSLCB0NUdQUiwgdDFH
UFIpIGF0b21pY3hjaGdiIHQwR1BSLCBtZW0sIHQwR1BSIGVuZCwKKyAgICAgICAgbWFjcm8odDBH
UFIsIG1lbSwgdDJHUFIsIHQ1R1BSLCB0MUdQUikgYXRvbWljeGNoZ2ggdDBHUFIsIG1lbSwgdDBH
UFIgZW5kLAorICAgICAgICBtYWNybyh0MEdQUiwgbWVtLCB0MkdQUiwgdDVHUFIsIHQxR1BSKSBh
dG9taWN4Y2hnaSB0MEdQUiwgbWVtLCB0MEdQUiBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCBt
ZW0sIHQyR1BSLCB0NUdQUiwgdDFHUFIpIGF0b21pY3hjaGdxIHQwR1BSLCBtZW0sIHQwR1BSIGVu
ZCkKK2Vsc2lmIEFSTTY0IG9yIFJJU0NWNjQKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0
aFdlYWtDQVMoX2FkZCwgQWRkLAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQor
ICAgICAgICAgICAgYWRkaSB0MEdQUiwgdDFHUFIsIHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAg
ICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIGFkZHEgdDBHUFIsIHQx
R1BSLCB0MkdQUgorICAgICAgICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhX
ZWFrQ0FTKF9zdWIsIFN1YiwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAg
ICAgICAgICAgIHN1YmkgdDFHUFIsIHQwR1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAg
IG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBzdWJxIHQxR1BSLCB0MEdQ
UiwgdDJHUFIKKyAgICAgICAgZW5kKQorICAgIHdhc21BdG9taWNCaW5hcnlSTVdPcHNXaXRoV2Vh
a0NBUyhfeGNoZywgWGNoZywKKyAgICAgICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAg
ICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8o
dDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIG1vdmUgdDBHUFIsIHQyR1BSCisgICAg
ICAgIGVuZCkKKyAgICB3YXNtQXRvbWljQmluYXJ5Uk1XT3BzV2l0aFdlYWtDQVMoX2FuZCwgQW5k
LAorICAgICAgICBtYWNybyh0MEdQUiwgdDFHUFIsIHQyR1BSKQorICAgICAgICAgICAgYW5kaSB0
MEdQUiwgdDFHUFIsIHQyR1BSCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8odDBHUFIsIHQx
R1BSLCB0MkdQUikKKyAgICAgICAgICAgIGFuZHEgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAg
ICBlbmQpCisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF9vciwgT3IsCisg
ICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJHUFIpCisgICAgICAgICAgICBvcmkgdDBHUFIs
IHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwg
dDJHUFIpCisgICAgICAgICAgICBvcnEgdDBHUFIsIHQxR1BSLCB0MkdQUgorICAgICAgICBlbmQp
CisgICAgd2FzbUF0b21pY0JpbmFyeVJNV09wc1dpdGhXZWFrQ0FTKF94b3IsIFhvciwKKyAgICAg
ICAgbWFjcm8odDBHUFIsIHQxR1BSLCB0MkdQUikKKyAgICAgICAgICAgIHhvcmkgdDBHUFIsIHQx
R1BSLCB0MkdQUgorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvKHQwR1BSLCB0MUdQUiwgdDJH
UFIpCisgICAgICAgICAgICB4b3JxIHQwR1BSLCB0MUdQUiwgdDJHUFIKKyAgICAgICAgZW5kKQor
ZW5kCisKK21hY3JvIHdhc21BdG9taWNDb21wYXJlRXhjaGFuZ2VPcHMobG93ZXJDYXNlT3Bjb2Rl
LCB1cHBlckNhc2VPcGNvZGUsIGZuYiwgZm5oLCBmbmksIGZucSkKKyAgICB3YXNtT3AoaTY0X2F0
b21pY19ybXc4JWxvd2VyQ2FzZU9wY29kZSVfdSwgV2FzbUk2NEF0b21pY1JtdzgldXBwZXJDYXNl
T3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykK
KyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIG1sb2FkcShjdHgsIG1f
ZXhwZWN0ZWQsIHQwKQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAgICAgICAg
ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXQoY3R4LCB0MywgdDEsIDEpCisg
ICAgICAgIGZuYih0MCwgdDIsIFt0M10sIHQ1LCB0MSkKKyAgICAgICAgYW5kcSAweGZmLCB0MCAj
IEZJWE1FOiBaZXJvRXh0ZW5kOFRvNjQKKyAgICAgICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0
MCwgMHhmZiwgLm9rIGVuZCkKKyAgICAgICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKKyAg
ICB3YXNtT3AoaTY0X2F0b21pY19ybXcxNiVsb3dlckNhc2VPcGNvZGUlX3UsIFdhc21JNjRBdG9t
aWNSbXcxNiV1cHBlckNhc2VPcGNvZGUlVSwgbWFjcm8oY3R4KQorICAgICAgICBtbG9hZGkoY3R4
LCBtX3BvaW50ZXIsIHQzKQorICAgICAgICB3Z2V0dShjdHgsIG1fb2Zmc2V0LCB0MSkKKyAgICAg
ICAgbWxvYWRxKGN0eCwgbV9leHBlY3RlZCwgdDApCisgICAgICAgIG1sb2FkcShjdHgsIG1fdmFs
dWUsIHQyKQorICAgICAgICBlbWl0Q2hlY2tBbmRQcmVwYXJlUG9pbnRlckFkZGluZ09mZnNldFdp
dGhBbGlnbm1lbnRDaGVjayhjdHgsIHQzLCB0MSwgMikKKyAgICAgICAgZm5oKHQwLCB0MiwgW3Qz
XSwgdDUsIHQxKQorICAgICAgICBhbmRxIDB4ZmZmZiwgdDAgIyBGSVhNRTogWmVyb0V4dGVuZDE2
VG82NAorICAgICAgICBhc3NlcnQobWFjcm8ob2spIGJxYmVxIHQwLCAweGZmZmYsIC5vayBlbmQp
CisgICAgICAgIHJldHVybnEoY3R4LCB0MCkKKyAgICBlbmQpCisgICAgd2FzbU9wKGk2NF9hdG9t
aWNfcm13MzIlbG93ZXJDYXNlT3Bjb2RlJV91LCBXYXNtSTY0QXRvbWljUm13MzIldXBwZXJDYXNl
T3Bjb2RlJVUsIG1hY3JvKGN0eCkKKyAgICAgICAgbWxvYWRpKGN0eCwgbV9wb2ludGVyLCB0MykK
KyAgICAgICAgd2dldHUoY3R4LCBtX29mZnNldCwgdDEpCisgICAgICAgIG1sb2FkcShjdHgsIG1f
ZXhwZWN0ZWQsIHQwKQorICAgICAgICBtbG9hZHEoY3R4LCBtX3ZhbHVlLCB0MikKKyAgICAgICAg
ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXJBZGRpbmdPZmZzZXRXaXRoQWxpZ25tZW50Q2hlY2so
Y3R4LCB0MywgdDEsIDQpCisgICAgICAgIGZuaSh0MCwgdDIsIFt0M10sIHQ1LCB0MSkKKyAgICAg
ICAgYXNzZXJ0KG1hY3JvKG9rKSBicWJlcSB0MCwgMHhmZmZmZmZmZiwgLm9rIGVuZCkKKyAgICAg
ICAgcmV0dXJucShjdHgsIHQwKQorICAgIGVuZCkKKyAgICB3YXNtT3AoaTY0X2F0b21pY19ybXcl
bG93ZXJDYXNlT3Bjb2RlJSwgV2FzbUk2NEF0b21pY1JtdyV1cHBlckNhc2VPcGNvZGUlLCBtYWNy
byhjdHgpCisgICAgICAgIG1sb2FkaShjdHgsIG1fcG9pbnRlciwgdDMpCisgICAgICAgIHdnZXR1
KGN0eCwgbV9vZmZzZXQsIHQxKQorICAgICAgICBtbG9hZHEoY3R4LCBtX2V4cGVjdGVkLCB0MCkK
KyAgICAgICAgbWxvYWRxKGN0eCwgbV92YWx1ZSwgdDIpCisgICAgICAgIGVtaXRDaGVja0FuZFBy
ZXBhcmVQb2ludGVyQWRkaW5nT2Zmc2V0V2l0aEFsaWdubWVudENoZWNrKGN0eCwgdDMsIHQxLCA4
KQorICAgICAgICBmbnEodDAsIHQyLCBbdDNdLCB0NSwgdDEpCisgICAgICAgIHJldHVybnEoY3R4
LCB0MCkKKyAgICBlbmQpCitlbmQKKworaWYgWDg2XzY0IG9yIEFSTTY0RSBvciBBUk02NCBvciBS
SVNDVjY0CisjIHQwR1BSID0+IGV4cGVjdGVkLCB0MkdQUiA9PiB2YWx1ZSwgbWVtID0+IG1lbW9y
eSByZWZlcmVuY2UKK3dhc21BdG9taWNDb21wYXJlRXhjaGFuZ2VPcHMoX2NtcHhjaGcsIENtcHhj
aGcsCisgICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BSLCB0MUdQUikKKyAgICAgICAg
aWYgWDg2XzY0IG9yIEFSTTY0RQorICAgICAgICAgICAgYnFhIHQwR1BSICwgMHhmZiwgLmZhaWwK
KyAgICAgICAgICAgIGF0b21pY3dlYWtjYXNiIHQwR1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAg
ICBqbXAgLmRvbmUKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBhdG9taWNsb2FkYiBtZW0s
IHQwR1BSCisgICAgICAgIC5kb25lOgorICAgICAgICBlbHNlCisgICAgICAgIC5sb29wOgorICAg
ICAgICAgICAgbG9hZGxpbmthY3FiIG1lbSwgdDFHUFIKKyAgICAgICAgICAgIGJxbmVxIHQwR1BS
LCB0MUdQUiwgLmZhaWwKKyAgICAgICAgICAgIHN0b3JlY29uZHJlbGIgdDVHUFIsIHQyR1BSLCBt
ZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxv
b3AKKyAgICAgICAgLmZhaWw6CisgICAgICAgICAgICBzdG9yZWNvbmRyZWxiIHQ1R1BSLCB0MUdQ
UiwgbWVtCisgICAgICAgICAgICBiaWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAgICAgICAgam1w
IC5sb29wCisgICAgICAgIC5kb25lOgorICAgICAgICAgICAgbW92ZSB0MUdQUiwgdDBHUFIKKyAg
ICAgICAgZW5kCisgICAgZW5kLAorICAgIG1hY3JvKHQwR1BSLCB0MkdQUiwgbWVtLCB0NUdQUiwg
dDFHUFIpCisgICAgICAgIGlmIFg4Nl82NCBvciBBUk02NEUKKyAgICAgICAgICAgIGJxYSB0MEdQ
UiwgMHhmZmZmLCAuZmFpbAorICAgICAgICAgICAgYXRvbWljd2Vha2Nhc2ggdDBHUFIsIHQyR1BS
LCBtZW0KKyAgICAgICAgICAgIGptcCAuZG9uZQorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAg
IGF0b21pY2xvYWRoIG1lbSwgdDBHUFIKKyAgICAgICAgLmRvbmU6CisgICAgICAgIGVsc2UKKyAg
ICAgICAgLmxvb3A6CisgICAgICAgICAgICBsb2FkbGlua2FjcWggbWVtLCB0MUdQUgorICAgICAg
ICAgICAgYnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAorICAgICAgICAgICAgc3RvcmVjb25kcmVs
aCB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAg
ICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZmFpbDoKKyAgICAgICAgICAgIHN0b3JlY29u
ZHJlbGggdDVHUFIsIHQxR1BSLCBtZW0KKyAgICAgICAgICAgIGJpZXEgdDVHUFIsIDAsIC5kb25l
CisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBtb3Zl
IHQxR1BSLCB0MEdQUgorICAgICAgICBlbmQKKyAgICBlbmQsCisgICAgbWFjcm8odDBHUFIsIHQy
R1BSLCBtZW0sIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgaWYgWDg2XzY0IG9yIEFSTTY0RQorICAg
ICAgICAgICAgYnFhIHQwR1BSLCAweGZmZmZmZmZmLCAuZmFpbAorICAgICAgICAgICAgYXRvbWlj
d2Vha2Nhc2kgdDBHUFIsIHQyR1BSLCBtZW0KKyAgICAgICAgICAgIGptcCAuZG9uZQorICAgICAg
ICAuZmFpbDoKKyAgICAgICAgICAgIGF0b21pY2xvYWRpIG1lbSwgdDBHUFIKKyAgICAgICAgLmRv
bmU6CisgICAgICAgIGVsc2UKKyAgICAgICAgLmxvb3A6CisgICAgICAgICAgICBsb2FkbGlua2Fj
cWkgbWVtLCB0MUdQUgorICAgICAgICAgICAgYnFuZXEgdDBHUFIsIHQxR1BSLCAuZmFpbAorICAg
ICAgICAgICAgc3RvcmVjb25kcmVsaSB0NUdQUiwgdDJHUFIsIG1lbQorICAgICAgICAgICAgYmll
cSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAuZmFpbDoK
KyAgICAgICAgICAgIHN0b3JlY29uZHJlbGkgdDVHUFIsIHQxR1BSLCBtZW0KKyAgICAgICAgICAg
IGJpZXEgdDVHUFIsIDAsIC5kb25lCisgICAgICAgICAgICBqbXAgLmxvb3AKKyAgICAgICAgLmRv
bmU6CisgICAgICAgICAgICBtb3ZlIHQxR1BSLCB0MEdQUgorICAgICAgICBlbmQKKyAgICBlbmQs
CisgICAgbWFjcm8odDBHUFIsIHQyR1BSLCBtZW0sIHQ1R1BSLCB0MUdQUikKKyAgICAgICAgaWYg
WDg2XzY0IG9yIEFSTTY0RQorICAgICAgICAgICAgYXRvbWljd2Vha2Nhc3EgdDBHUFIsIHQyR1BS
LCBtZW0KKyAgICAgICAgZWxzZQorICAgICAgICAubG9vcDoKKyAgICAgICAgICAgIGxvYWRsaW5r
YWNxcSBtZW0sIHQxR1BSCisgICAgICAgICAgICBicW5lcSB0MEdQUiwgdDFHUFIsIC5mYWlsCisg
ICAgICAgICAgICBzdG9yZWNvbmRyZWxxIHQ1R1BSLCB0MkdQUiwgbWVtCisgICAgICAgICAgICBi
aWVxIHQ1R1BSLCAwLCAuZG9uZQorICAgICAgICAgICAgam1wIC5sb29wCisgICAgICAgIC5mYWls
OgorICAgICAgICAgICAgc3RvcmVjb25kcmVscSB0NUdQUiwgdDFHUFIsIG1lbQorICAgICAgICAg
ICAgYmllcSB0NUdQUiwgMCwgLmRvbmUKKyAgICAgICAgICAgIGptcCAubG9vcAorICAgICAgICAu
ZG9uZToKKyAgICAgICAgICAgIG1vdmUgdDFHUFIsIHQwR1BSCisgICAgICAgIGVuZAorICAgIGVu
ZCkKK2VuZAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9h
cm0ucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIKaW5kZXggYzhh
OGZkMDZiNjE4Li5hNmYxODIyOWI1NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL2FybS5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFz
bS9hcm0ucmIKQEAgLTcxLDYgKzcxLDExIEBAIGNsYXNzIE5vZGUKICAgICAgICAgcmFpc2UgIkJv
Z3VzIHJlZ2lzdGVyIG5hbWUgI3tkb3VibGVPcGVyYW5kfSIgdW5sZXNzIGRvdWJsZU9wZXJhbmQg
PX4gL15kLwogICAgICAgICAicyIgKyAoJH4ucG9zdF9tYXRjaC50b19pICogMikudG9fcwogICAg
IGVuZAorICAgIGRlZiBhcm1TaW5nbGVIaQorICAgICAgICBkb3VibGVPcGVyYW5kID0gYXJtT3Bl
cmFuZAorICAgICAgICByYWlzZSAiQm9ndXMgcmVnaXN0ZXIgbmFtZSAje2RvdWJsZU9wZXJhbmR9
IiB1bmxlc3MgZG91YmxlT3BlcmFuZCA9fiAvXmQvCisgICAgICAgICJzIiArICgkfi5wb3N0X21h
dGNoLnRvX2kgKiAyICsgMSkudG9fcworICAgIGVuZAogZW5kCiAKIGNsYXNzIFNwZWNpYWxSZWdp
c3RlcgpAQCAtMTA2LDIxICsxMTEsMjEgQEAgZW5kCiBjbGFzcyBSZWdpc3RlcklECiAgICAgZGVm
IGFybU9wZXJhbmQKICAgICAgICAgY2FzZSBuYW1lCi0gICAgICAgIHdoZW4gInQwIiwgImEwIiwg
InIwIgorICAgICAgICB3aGVuICJ0MCIsICJhMCIsICJ3YTAiLCAicjAiCiAgICAgICAgICAgICAi
cjAiCi0gICAgICAgIHdoZW4gInQxIiwgImExIiwgInIxIgorICAgICAgICB3aGVuICJ0MSIsICJh
MSIsICJ3YTEiLCAicjEiCiAgICAgICAgICAgICAicjEiCi0gICAgICAgIHdoZW4gInQyIiwgImEy
IgorICAgICAgICB3aGVuICJ0MiIsICJhMiIsICJ3YTIiCiAgICAgICAgICAgICAicjIiCi0gICAg
ICAgIHdoZW4gInQzIiwgImEzIgorICAgICAgICB3aGVuICJ0MyIsICJhMyIsICJ3YTMiCiAgICAg
ICAgICAgICAicjMiCiAgICAgICAgIHdoZW4gInQ0IiAjIExMSW50IFBDCiAgICAgICAgICAgICAi
cjQiCi0gICAgICAgIHdoZW4gInQ1IgorICAgICAgICB3aGVuICJ0NSIsICJ3czAiICMgd3MwIG11
c3QgYmUgYSBub24tYXJndW1lbnQvbm9uLXJldHVybiBHUFIKICAgICAgICAgICAgICJyNSIKICAg
ICAgICAgd2hlbiAiY2ZyIgogICAgICAgICAgICAgInI3IgotICAgICAgICB3aGVuICJ0NiIKKyAg
ICAgICAgd2hlbiAidDYiLCAid3MxIiAjIHdzMSBtdXN0IGJlIGEgbm9uLWFyZ3VtZW50L25vbi1y
ZXR1cm4gR1BSCiAgICAgICAgICAgICAicjgiCiAgICAgICAgIHdoZW4gInQ3IgogICAgICAgICAg
ICAgInI5IiAjIHI5IGlzIGFsc28gYSBzY3JhdGNoIHJlZ2lzdGVyLCBzbyB1c2UgY2FyZWZ1bGx5
IQpAQCAtMTQzLDIxICsxNDgsMjEgQEAgZW5kCiBjbGFzcyBGUFJlZ2lzdGVySUQKICAgICBkZWYg
YXJtT3BlcmFuZAogICAgICAgICBjYXNlIG5hbWUKLSAgICAgICAgd2hlbiAiZnQwIiwgImZyIiwg
ImZhMCIKKyAgICAgICAgd2hlbiAiZnQwIiwgImZyIiwgImZhMCIsICJ3ZmEwIgogICAgICAgICAg
ICAgImQwIgotICAgICAgICB3aGVuICJmdDEiLCAiZmExIgorICAgICAgICB3aGVuICJmdDEiLCAi
ZmExIiwgIndmYTEiCiAgICAgICAgICAgICAiZDEiCi0gICAgICAgIHdoZW4gImZ0MiIKKyAgICAg
ICAgd2hlbiAiZnQyIiwgIndmYTIiCiAgICAgICAgICAgICAiZDIiCi0gICAgICAgIHdoZW4gImZ0
MyIKKyAgICAgICAgd2hlbiAiZnQzIiwgIndmYTMiCiAgICAgICAgICAgICAiZDMiCi0gICAgICAg
IHdoZW4gImZ0NCIKKyAgICAgICAgd2hlbiAiZnQ0IiwgIndmYTQiCiAgICAgICAgICAgICAiZDQi
Ci0gICAgICAgIHdoZW4gImZ0NSIKKyAgICAgICAgd2hlbiAiZnQ1IiwgIndmYTUiCiAgICAgICAg
ICAgICAiZDUiCi0gICAgICAgIHdoZW4gImZ0NiIKKyAgICAgICAgd2hlbiAiZnQ2IiwgIndmYTYi
CiAgICAgICAgICAgICAiZDYiCi0gICAgICAgIHdoZW4gImZ0NyIKKyAgICAgICAgd2hlbiAiZnQ3
IiwgIndmYTciCiAgICAgICAgICAgICAiZDciCiAgICAgICAgIHdoZW4gImNzZnIwIgogICAgICAg
ICAgICAgImQ4IgpAQCAtMTg5LDcgKzE5NCwxMSBAQCBlbmQKIGNsYXNzIEFkZHJlc3MKICAgICBk
ZWYgYXJtT3BlcmFuZAogICAgICAgICByYWlzZSAiQmFkIG9mZnNldCBhdCAje2NvZGVPcmlnaW5T
dHJpbmd9IiBpZiBvZmZzZXQudmFsdWUgPCAtMHhmZiBvciBvZmZzZXQudmFsdWUgPiAweGZmZgot
ICAgICAgICAiWyN7YmFzZS5hcm1PcGVyYW5kfSwgXCMje29mZnNldC52YWx1ZX1dIgorICAgICAg
ICBpZiBvZmZzZXQudmFsdWUgPT0gMAorICAgICAgICAgICJbI3tiYXNlLmFybU9wZXJhbmR9XSIK
KyAgICAgICAgZWxzZQorICAgICAgICAgICJbI3tiYXNlLmFybU9wZXJhbmR9LCBcIyN7b2Zmc2V0
LnZhbHVlfV0iCisgICAgICAgIGVuZAogICAgIGVuZAogZW5kCiAKQEAgLTMzMiwxNiArMzQxLDI1
IEBAIGNsYXNzIFNlcXVlbmNlCiAgICAgICAgIHJlc3VsdCA9IGFybUxvd2VyTGFiZWxSZWZlcmVu
Y2VzKHJlc3VsdCkKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkQWRkcmVzc2Vz
KHJlc3VsdCkgewogICAgICAgICAgICAgfCBub2RlLCBhZGRyZXNzIHwKLSAgICAgICAgICAgIGlm
IGFkZHJlc3MuaXNfYT8gQmFzZUluZGV4Ci0gICAgICAgICAgICAgICAgYWRkcmVzcy5vZmZzZXQu
dmFsdWUgPT0gMAotICAgICAgICAgICAgZWxzaWYgYWRkcmVzcy5pc19hPyBBZGRyZXNzCi0gICAg
ICAgICAgICAgICAgKC0weGZmLi4weGZmZikuaW5jbHVkZT8gYWRkcmVzcy5vZmZzZXQudmFsdWUK
KyAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKKyAgICAgICAgICAgIHdoZW4gImxvYWQyaWEi
LCAic3RvcmUyaWEiCisgICAgICAgICAgICAgICAgaWYgYWRkcmVzcy5pc19hPyBBZGRyZXNzCisg
ICAgICAgICAgICAgICAgICAgIChhZGRyZXNzLm9mZnNldC52YWx1ZSAlIDQgPT0gMCkgJiYgKCgt
MTAyMy4uMTAyMykuaW5jbHVkZT8gYWRkcmVzcy5vZmZzZXQudmFsdWUpCisgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBmYWxzZQorICAgICAgICAgICAgICAgIGVuZAog
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGZhbHNlCisgICAgICAgICAgICAgICAg
aWYgYWRkcmVzcy5pc19hPyBCYXNlSW5kZXgKKyAgICAgICAgICAgICAgICAgICAgYWRkcmVzcy5v
ZmZzZXQudmFsdWUgPT0gMCAmJiBub2RlLm9wY29kZQorICAgICAgICAgICAgICAgIGVsc2lmIGFk
ZHJlc3MuaXNfYT8gQWRkcmVzcworICAgICAgICAgICAgICAgICAgICAoLTB4ZmYuLjB4ZmZmKS5p
bmNsdWRlPyBhZGRyZXNzLm9mZnNldC52YWx1ZQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgZmFsc2UKKyAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGVu
ZAogICAgICAgICB9CiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nl
c0RvdWJsZShyZXN1bHQpCi0gICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEltbWVk
aWF0ZXMocmVzdWx0LCBbInN0b3JlYiIsICJzdG9yZWgiLCAic3RvcmVpIiwgInN0b3JlcCIsICJz
dG9yZXEiXSkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkSW1tZWRpYXRlcyhy
ZXN1bHQsIFsic3RvcmViIiwgInN0b3JlaCIsICJzdG9yZWkiLCAic3RvcmVwIiwgInN0b3JlcSIs
ICJzdG9yZTJpYSJdKQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRJbW1lZGlh
dGVzKHJlc3VsdCwgMC4uMHhmZiwgMC4uMHgwZmYpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dl
ck1pc3BsYWNlZEFkZHJlc3NlcyhyZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlclJl
Z2lzdGVyUmV1c2UocmVzdWx0KQpAQCAtMzYwLDYgKzM3OCwxMCBAQCBkZWYgYXJtRmxpcHBlZE9w
ZXJhbmRzKG9wZXJhbmRzKQogICAgIGFybU9wZXJhbmRzKFtvcGVyYW5kc1stMV1dICsgb3BlcmFu
ZHNbMC4uLTJdKQogZW5kCiAKK2RlZiBhcm1GbGlwcGVkT3BlcmFuZHNQYWlyKG9wZXJhbmRzKQor
ICAgIGFybU9wZXJhbmRzKFtvcGVyYW5kc1stMl0sIG9wZXJhbmRzWy0xXV0gKyBvcGVyYW5kc1sw
Li4tM10pCitlbmQKKwogZGVmIGVtaXRBcm1Db21wYWN0KG9wY29kZTIsIG9wY29kZTMsIG9wZXJh
bmRzKQogICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMwogICAgICAgICAkYXNtLnB1dHMgIiN7b3Bj
b2RlM30gI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKQEAgLTM4OSw2ICs0MTEsMTIg
QEAgZGVmIGVtaXRBcm1Eb3VibGVCcmFuY2goYnJhbmNoT3Bjb2RlLCBvcGVyYW5kcykKICAgICAk
YXNtLnB1dHMgIiN7YnJhbmNoT3Bjb2RlfSAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKIGVuZAog
CitkZWYgZW1pdEFybVNpbmdsZUJyYW5jaChicmFuY2hPcGNvZGUsIG9wZXJhbmRzKQorICAgICRh
c20ucHV0cyAidmNtcGUuZjMyICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1sx
XS5hcm1TaW5nbGV9IgorICAgICRhc20ucHV0cyAidm1ycyBhcHNyX256Y3YsIGZwc2NyIgorICAg
ICRhc20ucHV0cyAiI3ticmFuY2hPcGNvZGV9ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorZW5k
CisKIGRlZiBlbWl0QXJtVGVzdChvcGVyYW5kcykKICAgICB2YWx1ZSA9IG9wZXJhbmRzWzBdCiAg
ICAgY2FzZSBvcGVyYW5kcy5zaXplCkBAIC00MDksNyArNDM3LDE1IEBAIGVuZAogCiBkZWYgZW1p
dEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMsIGNvZGUpCiAgICAgJGFzbS5wdXRzICJtb3YgI3tv
cGVyYW5kc1syXS5hcm1PcGVyYW5kfSwgXCMwIgotICAgICRhc20ucHV0cyAidmNtcGUuZjY0ICN7
YXJtT3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSIKKyAgICAkYXNtLnB1dHMgInZjbXAuZjY0ICN7
YXJtT3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSIKKyAgICAkYXNtLnB1dHMgInZtcnMgQVBTUl9u
emN2LCBGUFNDUiIKKyAgICAkYXNtLnB1dHMgIml0ICN7Y29kZX0iCisgICAgJGFzbS5wdXRzICJt
b3Yje2NvZGV9ICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sIFwjMSIKK2VuZAorCitkZWYgZW1p
dEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywgY29kZSkKKyAgICAkYXNtLnB1dHMgIm1vdiAje29w
ZXJhbmRzWzJdLmFybU9wZXJhbmR9LCBcIzAiCisgICAgJGFzbS5wdXRzICJ2Y21wLmYzMiAje29w
ZXJhbmRzWzBdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKICAgICAkYXNt
LnB1dHMgInZtcnMgQVBTUl9uemN2LCBGUFNDUiIKICAgICAkYXNtLnB1dHMgIml0ICN7Y29kZX0i
CiAgICAgJGFzbS5wdXRzICJtb3Yje2NvZGV9ICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sIFwj
MSIKQEAgLTQyOSw2ICs0NjUsMTkgQEAgZGVmIGVtaXRBcm1UZXN0U2V0KG9wZXJhbmRzLCBjb2Rl
KQogICAgICRhc20ucHV0cyAibW92I3tjb2RlfSAje29wZXJhbmRzWy0xXS5hcm1PcGVyYW5kfSwg
XCMxIgogZW5kCiAKK2RlZiByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCB0ZXh0KQorICAgIHJl
dHVybiBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImVtaXQiLCBbU3RyaW5nTGl0ZXJhbC5u
ZXcoY29kZU9yaWdpbiwgIlwiI3t0ZXh0fVwiIildKQorZW5kCisKK2RlZiBlbWl0QXJtVHJ1bmNh
dGVGbG9hdChjb2RlT3JpZ2luLCB0bywgZnJvbSwgb3BlcmFuZHMpCisgICAgdG1wID0gQVJNX0VY
VFJBX0ZQUlNbLTFdCisgICAgc3JjID0gZnJvbSA9PSAiZjMyIiA/IG9wZXJhbmRzWzBdLmFybVNp
bmdsZSA6IG9wZXJhbmRzWzBdLmFybU9wZXJhbmQKKyAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdp
biwgWworICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAidmN2dC4je3RvfS4je2Zy
b219ICN7dG1wLmFybVNpbmdsZX0sICN7c3JjfSIpLAorICAgICAgICByYXdJbnN0cnVjdGlvbihj
b2RlT3JpZ2luLCAidm1vdiAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje3RtcC5hcm1TaW5n
bGV9IikKKyAgICBdKS5sb3dlcigkYWN0aXZlQmFja2VuZCkKK2VuZAorCiBjbGFzcyBJbnN0cnVj
dGlvbgogICAgIGRlZiBsb3dlckFSTXY3CiAgICAgICAgIHJhaXNlIHVubGVzcyAkYWN0aXZlQmFj
a2VuZCA9PSAiQVJNdjciCkBAIC00NjYsNiArNTE1LDEwIEBAIGNsYXNzIEluc3RydWN0aW9uCiAg
ICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkI3tzdWZmaXh9ICN7YXJtRmxpcHBlZE9w
ZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICBlbmQK
KyAgICAgICAgd2hlbiAiYWRjaSIKKyAgICAgICAgICAgIGVtaXRBcm0oImFkYyIsIG9wZXJhbmRz
KQorICAgICAgICB3aGVuICJhYnNkIgorICAgICAgICAgICRhc20ucHV0cyAidmFicy5mNjQgI3th
cm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAiYW5kaSIsICJhbmRw
IgogICAgICAgICAgICAgZW1pdEFybUNvbXBhY3QoImFuZHMiLCAiYW5kIiwgb3BlcmFuZHMpCiAg
ICAgICAgIHdoZW4gIm9yaSIsICJvcnAiLCAib3JoIgpAQCAtNDg0LDE0ICs1MzcsMzQgQEAgY2xh
c3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGVtaXRBcm0oIm11bCIsIG9wZXJhbmRzKQogICAg
ICAgICB3aGVuICJzdWJpIiwgInN1YnAiLCAic3ViaXMiCiAgICAgICAgICAgICBlbWl0QXJtQ29t
cGFjdCgic3VicyIsICJzdWJzIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInNiY2kiCisgICAg
ICAgICAgICBlbWl0QXJtKCJzYmMiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAibmVnaSIsICJu
ZWdwIgogICAgICAgICAgICAgJGFzbS5wdXRzICJyc2JzICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sIFwjMCIKICAgICAgICAgd2hlbiAibm90aSIK
ICAgICAgICAgICAgICRhc20ucHV0cyAibXZucyAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAj
e29wZXJhbmRzWzBdLmFybU9wZXJhbmR9IgorICAgICAgICB3aGVuICJscm90YXRlaSIKKyAgICAg
ICAgICAgIHRtcCA9IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgIFNlcXVl
bmNlLm5ldyhjb2RlT3JpZ2luLCBbCisgICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNv
ZGVPcmlnaW4sICJtb3ZlIiwgW29wZXJhbmRzWzBdLCB0bXBdKSwKKyAgICAgICAgICAgICAgICBJ
bnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgIm5lZ2kiLCBbdG1wXSksCisgICAgICAgICAgICAg
ICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJycm90YXRlaSIsIFt0bXAsIG9wZXJhbmRz
WzFdXSksCisgICAgICAgICAgICBdKS5sb3dlcigkYWN0aXZlQmFja2VuZCkKKyAgICAgICAgd2hl
biAicnJvdGF0ZWkiCisgICAgICAgICAgICAkYXNtLnB1dHMgInJvciAje2FybUZsaXBwZWRPcGVy
YW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJ0emNudGkiCisgICAgICAgICAgICAkYXNt
LnB1dHMgInJiaXQgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAiY2x6ICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0u
YXJtT3BlcmFuZH0iCisgICAgICAgIHdoZW4gImx6Y250aSIKKyAgICAgICAgICAgICRhc20ucHV0
cyAiY2x6ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gImxv
YWRpIiwgImxvYWRpcyIsICJsb2FkcCIKICAgICAgICAgICAgICRhc20ucHV0cyAibGRyICN7YXJt
RmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gInN0b3JlaSIsICJzdG9y
ZXAiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInN0ciAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0i
CisgICAgICAgIHdoZW4gImxvYWQyaWEiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmQgI3th
cm1GbGlwcGVkT3BlcmFuZHNQYWlyKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN0b3JlMmlh
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJzdHJkICN7YXJtT3BlcmFuZHMob3BlcmFuZHMpfSIK
ICAgICAgICAgd2hlbiAibG9hZGIiCiAgICAgICAgICAgICAkYXNtLnB1dHMgImxkcmIgI3thcm1G
bGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAibG9hZGJzaSIKQEAgLTUw
NCwyMCArNTc3LDExMCBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgJGFzbS5wdXRz
ICJsZHJzaC53ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4g
InN0b3JlaCIKICAgICAgICAgICAgICRhc20ucHV0cyAic3RyaCAje2FybU9wZXJhbmRzKG9wZXJh
bmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRsaW5rYiIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
bGRyZXhiICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxv
YWRsaW5raCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRyZXhoICN7YXJtRmxpcHBlZE9wZXJh
bmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRsaW5raSIKKyAgICAgICAgICAgICRh
c20ucHV0cyAibGRyZXggI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAg
d2hlbiAibG9hZGxpbmsyaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRyZXhkICN7YXJtRmxp
cHBlZE9wZXJhbmRzUGFpcihvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9yZWNvbmRiIgor
ICAgICAgICAgICAgJGFzbS5wdXRzICJzdHJleGIgI3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9Igor
ICAgICAgICB3aGVuICJzdG9yZWNvbmRoIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzdHJleGgg
I3thcm1PcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9yZWNvbmRpIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJzdHJleCAje2FybU9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAg
ICAgIHdoZW4gInN0b3JlY29uZDJpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzdHJleGQgI3th
cm1PcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJsb2FkZCIKICAgICAgICAgICAg
ICRhc20ucHV0cyAidmxkci42NCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAg
ICAgICB3aGVuICJzdG9yZWQiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZzdHIuNjQgI3thcm1P
cGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkZiIKKyAgICAgICAgICAgICRh
c20ucHV0cyAidmxkci4zMiAje29wZXJhbmRzWy0xXS5hcm1TaW5nbGV9LCAje2FybU9wZXJhbmRz
KG9wZXJhbmRzWzAuLi0yXSl9IgorICAgICAgICB3aGVuICJzdG9yZWYiCisgICAgICAgICAgICAk
YXNtLnB1dHMgInZzdHIuMzIgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9LCAje2FybU9wZXJhbmRz
KG9wZXJhbmRzWzEuLi0xXSl9IgorICAgICAgICB3aGVuICJhZGRmIgorICAgICAgICAgICAgJGFz
bS5wdXRzICJ2YWRkLmYzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0u
YXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJzdWJm
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2c3ViLmYzMiAje29wZXJhbmRzWzFdLmFybVNpbmds
ZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9Igor
ICAgICAgICB3aGVuICJtdWxmIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bXVsLmYzMiAje29w
ZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5k
c1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJkaXZmIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJ2ZGl2LmYzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMV0uYXJt
U2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJzcXJ0ZiIK
KyAgICAgICAgICAgICRhc20ucHV0cyAidnNxcnQuZjMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xl
fSwgI3tvcGVyYW5kc1swXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJhYnNmIgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJ2YWJzLmYzMiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3Bl
cmFuZHNbMF0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAibmVnZiIKKyAgICAgICAgICAgICRh
c20ucHV0cyAidm5lZy5mMzIgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzBd
LmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gImJmbHQiCisgICAgICAgICAgICBlbWl0QXJtU2lu
Z2xlQnJhbmNoKCJibWkiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmZsdHVuIgorICAgICAg
ICAgICAgZW1pdEFybVNpbmdsZUJyYW5jaCgiYmx0Iiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4g
ImJmbHRlcXVuIgorICAgICAgICAgICAgZW1pdEFybVNpbmdsZUJyYW5jaCgiYmxlIiwgb3BlcmFu
ZHMpCisgICAgICAgIHdoZW4gImJmZXEiCisgICAgICAgICAgICBlbWl0QXJtU2luZ2xlQnJhbmNo
KCJiZXEiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmZndCIKKyAgICAgICAgICAgIGVtaXRB
cm1TaW5nbGVCcmFuY2goImJndCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZmd0ZXF1biIK
KyAgICAgICAgICAgIGVtaXRBcm1TaW5nbGVCcmFuY2goImJwbCIsIG9wZXJhbmRzKQorICAgICAg
ICB3aGVuICJiZGx0dW4iCisgICAgICAgICAgICBlbWl0QXJtRG91YmxlQnJhbmNoKCJibHQiLCBv
cGVyYW5kcykKICAgICAgICAgd2hlbiAiYWRkZCIKICAgICAgICAgICAgIGVtaXRBcm0oInZhZGQu
ZjY0Iiwgb3BlcmFuZHMpCi0gICAgICAgIHdoZW4gImRpdmQiCi0gICAgICAgICAgICBlbWl0QXJt
KCJ2ZGl2LmY2NCIsIG9wZXJhbmRzKQogICAgICAgICB3aGVuICJzdWJkIgogICAgICAgICAgICAg
ZW1pdEFybSgidnN1Yi5mNjQiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAibXVsZCIKICAgICAg
ICAgICAgIGVtaXRBcm0oInZtdWwuZjY0Iiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImRpdmQi
CisgICAgICAgICAgICBlbWl0QXJtKCJ2ZGl2LmY2NCIsIG9wZXJhbmRzKQogICAgICAgICB3aGVu
ICJzcXJ0ZCIKICAgICAgICAgICAgICRhc20ucHV0cyAidnNxcnQuZjY0ICN7YXJtRmxpcHBlZE9w
ZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gIm5lZ2QiCisgICAgICAgICAgICAkYXNt
LnB1dHMgInZuZWcuZjY0ICN7YXJtRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAg
IHdoZW4gIm9yZiIKKyAgICAgICAgICAgICh0bXBMaHMsIHRtcFJocykgPSBBUk1fRVhUUkFfR1BS
U1stMi4uLTFdCisgICAgICAgICAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAgICAg
ICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBMaHMuYXJtT3Bl
cmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAgICByYXdJbnN0
cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFu
ZHNbMV0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9y
aWdpbiwgIm9yaSIsIFt0bXBMaHMsIHRtcFJoc10pLAorICAgICAgICAgICAgICByYXdJbnN0cnVj
dGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje3RtcFJo
cy5hcm1PcGVyYW5kfSIpCisgICAgICAgICAgICBdKS5sb3dlcigkYWN0aXZlQmFja2VuZCkKKyAg
ICAgICAgd2hlbiAiYW5kZiIKKyAgICAgICAgICAgICh0bXBMaHMsIHRtcFJocykgPSBBUk1fRVhU
UkFfR1BSU1stMi4uLTFdCisgICAgICAgICAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWwor
ICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBMaHMu
YXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAgICBy
YXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7
b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXco
Y29kZU9yaWdpbiwgImFuZGkiLCBbdG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3
SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwg
I3t0bXBSaHMuYXJtT3BlcmFuZH0iKQorICAgICAgICAgICAgXSkubG93ZXIoJGFjdGl2ZUJhY2tl
bmQpCisgICAgICAgIHdoZW4gIm9yZCIKKyAgICAgICAgICAgICh0bXBMaHMsIHRtcFJocykgPSBB
Uk1fRVhUUkFfR1BSU1stMi4uLTFdCisgICAgICAgICAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdp
biwgWworICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0
bXBMaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIpLAorICAgICAgICAg
ICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAgICBJbnN0cnVjdGlv
bi5uZXcoY29kZU9yaWdpbiwgIm9yaSIsIFt0bXBMaHMsIHRtcFJoc10pLAorICAgICAgICAgICAg
ICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5n
bGV9LCAje3RtcFJocy5hcm1PcGVyYW5kfSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlv
bihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBMaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0u
YXJtU2luZ2xlSGl9IiksCisgICAgICAgICAgICAgIHJhd0luc3RydWN0aW9uKGNvZGVPcmlnaW4s
ICAidm1vdiAje3RtcFJocy5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGVIaX0i
KSwKKyAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJvcmkiLCBbdG1w
TGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwg
ICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlSGl9LCAje3RtcFJocy5hcm1PcGVyYW5kfSIp
CisgICAgICAgICAgICBdKS5sb3dlcigkYWN0aXZlQmFja2VuZCkKKyAgICAgICAgd2hlbiAiYW5k
ZCIKKyAgICAgICAgICAgICh0bXBMaHMsIHRtcFJocykgPSBBUk1fRVhUUkFfR1BSU1stMi4uLTFd
CisgICAgICAgICAgICBTZXF1ZW5jZS5uZXcoY29kZU9yaWdpbiwgWworICAgICAgICAgICAgICBy
YXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBMaHMuYXJtT3BlcmFuZH0sICN7
b3BlcmFuZHNbMF0uYXJtU2luZ2xlfSIpLAorICAgICAgICAgICAgICByYXdJbnN0cnVjdGlvbihj
b2RlT3JpZ2luLCAgInZtb3YgI3t0bXBSaHMuYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJt
U2luZ2xlfSIpLAorICAgICAgICAgICAgICBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImFu
ZGkiLCBbdG1wTGhzLCB0bXBSaHNdKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29k
ZU9yaWdpbiwgICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3t0bXBSaHMuYXJtT3Bl
cmFuZH0iKSwKKyAgICAgICAgICAgICAgcmF3SW5zdHJ1Y3Rpb24oY29kZU9yaWdpbiwgICJ2bW92
ICN7dG1wTGhzLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZUhpfSIpLAorICAg
ICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3t0bXBSaHMuYXJt
T3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlSGl9IiksCisgICAgICAgICAgICAgIElu
c3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAiYW5kaSIsIFt0bXBMaHMsIHRtcFJoc10pLAorICAg
ICAgICAgICAgICByYXdJbnN0cnVjdGlvbihjb2RlT3JpZ2luLCAgInZtb3YgI3tvcGVyYW5kc1sx
XS5hcm1TaW5nbGVIaX0sICN7dG1wUmhzLmFybU9wZXJhbmR9IikKKyAgICAgICAgICAgIF0pLmxv
d2VyKCRhY3RpdmVCYWNrZW5kKQogICAgICAgICB3aGVuICJjaTJkcyIKICAgICAgICAgICAgICRh
c20ucHV0cyAidm1vdiAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0sICN7b3BlcmFuZHNbMF0uYXJt
T3BlcmFuZH0iCiAgICAgICAgICAgICAkYXNtLnB1dHMgInZjdnQuZjY0LnMzMiAje29wZXJhbmRz
WzFdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iCkBAIC01NzAsNiArNzMz
LDggQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgd2hlbiAibW92ZHoiCiAgICAgICAgICAg
ICAjIEZJWE1FOiBlaXRoZXIgc3VwcG9ydCB0aGlzIG9yIHJlbW92ZSBpdC4KICAgICAgICAgICAg
IHJhaXNlICJBUk0gZG9lcyBub3Qgc3VwcG9ydCB0aGlzIG9wY29kZSB5ZXQsICN7Y29kZU9yaWdp
bn0iCisgICAgICAgIHdoZW4gIm1vdmVkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92LmY2
NCAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJwb3AiCiAg
ICAgICAgICAgICBvcGVyYW5kcy5lYWNoIHsKICAgICAgICAgICAgICAgICB8IG9wIHwKQEAgLTU4
Niw5ICs3NTEsMTcgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgICAgICAkYXNtLnB1dHMgIm1vdiAje2FybUZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9
IgogICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gIm1vdmVpaSIKKyAgICAgICAgICAgIHJh
aXNlICJGaXJzdCBvcGVyYW5kIG9mIG1vdmVpaSBtdXN0IGJlIGFuIGltbWVkaWF0ZSIgdW5sZXNz
IG9wZXJhbmRzWzBdLmltbWVkaWF0ZT8KKyAgICAgICAgICAgIGFybU1vdmVJbW1lZGlhdGUob3Bl
cmFuZHNbMF0udmFsdWUgPj4gMzIsIG9wZXJhbmRzWzFdKQorICAgICAgICAgICAgYXJtTW92ZUlt
bWVkaWF0ZShvcGVyYW5kc1swXS52YWx1ZSAmIDB4ZmZmZmZmZmYsIG9wZXJhbmRzWzJdKQogICAg
ICAgICB3aGVuICJtdmxibCIKICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdncgI3tvcGVy
YW5kc1sxXS5hcm1PcGVyYW5kfSwgXCM6bG93ZXIxNjoje29wZXJhbmRzWzBdLnZhbHVlfSIKICAg
ICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdnQgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwg
XCM6dXBwZXIxNjoje29wZXJhbmRzWzBdLnZhbHVlfSIKKyAgICAgICAgd2hlbiAic3hiMmkiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgInN4dGIgI3thcm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMp
fSIKKyAgICAgICAgd2hlbiAic3hoMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN4dGggI3th
cm1GbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKICAgICAgICAgd2hlbiAibm9wIgogICAgICAg
ICAgICAgJGFzbS5wdXRzICJub3AiCiAgICAgICAgIHdoZW4gImJpZXEiLCAiYnBlcSIsICJiYmVx
IgpAQCAtNjgyLDE0ICs4NTUsNDYgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGVt
aXRBcm1Db21wYXJlKG9wZXJhbmRzLCAibHQiKQogICAgICAgICB3aGVuICJjaWx0ZXEiLCAiY3Bs
dGVxIiwgImNibHRlcSIKICAgICAgICAgICAgIGVtaXRBcm1Db21wYXJlKG9wZXJhbmRzLCAibGUi
KQotICAgICAgICB3aGVuICJjZGd0IgotICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUo
b3BlcmFuZHMsICJndCIpCi0gICAgICAgIHdoZW4gImNkZ3RlcSIKLSAgICAgICAgICAgIGVtaXRB
cm1Eb3VibGVDb21wYXJlKG9wZXJhbmRzLCAiZ2UiKQorICAgICAgICB3aGVuICJjZmVxIgorICAg
ICAgICAgICAgZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywgImVxIikKKyAgICAgICAgd2hl
biAiY2ZuZXF1biIKKyAgICAgICAgICAgIGVtaXRBcm1GbG9hdENvbXBhcmUob3BlcmFuZHMsICJu
ZSIpCisgICAgICAgIHdoZW4gImNmbHQiCisgICAgICAgICAgICBlbWl0QXJtRmxvYXRDb21wYXJl
KG9wZXJhbmRzLCAibWkiKQorICAgICAgICB3aGVuICJjZmx0ZXEiCisgICAgICAgICAgICBlbWl0
QXJtRmxvYXRDb21wYXJlKG9wZXJhbmRzLCAibHMiKQorICAgICAgICB3aGVuICJjZmd0IgorICAg
ICAgICAgICAgZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywgImd0IikKKyAgICAgICAgd2hl
biAiY2ZndGVxIgorICAgICAgICAgICAgZW1pdEFybUZsb2F0Q29tcGFyZShvcGVyYW5kcywgImdl
IikKKyAgICAgICAgd2hlbiAiY2RlcSIKKyAgICAgICAgICAgIGVtaXRBcm1Eb3VibGVDb21wYXJl
KG9wZXJhbmRzLCAiZXEiKQorICAgICAgICB3aGVuICJjZG5lcXVuIgorICAgICAgICAgICAgZW1p
dEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMsICJuZSIpCiAgICAgICAgIHdoZW4gImNkbHQiCiAg
ICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29tcGFyZShvcGVyYW5kcywgIm1pIikKICAgICAgICAg
d2hlbiAiY2RsdGVxIgogICAgICAgICAgICAgZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMs
ICJscyIpCisgICAgICAgIHdoZW4gImNkZ3QiCisgICAgICAgICAgICBlbWl0QXJtRG91YmxlQ29t
cGFyZShvcGVyYW5kcywgImd0IikKKyAgICAgICAgd2hlbiAiY2RndGVxIgorICAgICAgICAgICAg
ZW1pdEFybURvdWJsZUNvbXBhcmUob3BlcmFuZHMsICJnZSIpCisgICAgICAgIHdoZW4gImNmMmQi
CisgICAgICAgICAgICAkYXNtLnB1dHMgInZjdnQuZjY0LmYzMiAje29wZXJhbmRzWzFdLmFybU9w
ZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCisgICAgICAgIHdoZW4gImNkMmYiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgInZjdnQuZjMyLmY2NCAje29wZXJhbmRzWzFdLmFybVNpbmds
ZX0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAgIHdoZW4gImNpMmYiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJh
bmRzWzBdLmFybU9wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0LmYzMi51MzIg
I3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9LCAje29wZXJhbmRzWzFdLmFybVNpbmdsZX0iCisgICAg
ICAgIHdoZW4gImNpMmZzIgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNb
MV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSIKKyAgICAgICAgICAgICRh
c20ucHV0cyAidmN2dC5mMzIuczMyICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5k
c1sxXS5hcm1TaW5nbGV9IgorICAgICAgICB3aGVuICJjaTJkIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVy
YW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAidmN2dC5mNjQudTMyICN7b3BlcmFuZHNbMV0u
YXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSIKKyAgICAgICAgd2hlbiAiY2ky
ZHMiCisgICAgICAgICAgICAkYXNtLnB1dHMgInZtb3YgI3tvcGVyYW5kc1sxXS5hcm1TaW5nbGV9
LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ2Y3Z0
LmY2NC5zMzIgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1TaW5n
bGV9IgogICAgICAgICB3aGVuICJ0aXMiLCAidGJzIiwgInRwcyIKICAgICAgICAgICAgIGVtaXRB
cm1UZXN0U2V0KG9wZXJhbmRzLCAibWkiKQogICAgICAgICB3aGVuICJ0aXoiLCAidGJ6IiwgInRw
eiIKQEAgLTcwMCwxMCArOTA1LDIyIEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICAk
YXNtLnB1dHMgImxkciAje29wZXJhbmRzWzFdLmFybU9wZXJhbmR9LCBbc3AsIFwjI3tvcGVyYW5k
c1swXS52YWx1ZSAqIDR9XSIKICAgICAgICAgd2hlbiAicG9rZSIKICAgICAgICAgICAgICRhc20u
cHV0cyAic3RyICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sIFtzcCwgXCMje29wZXJhbmRzWzBd
LnZhbHVlICogNH1dIgorICAgICAgICB3aGVuICJmaTJmIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJ2bW92ICN7b3BlcmFuZHNbMV0uYXJtU2luZ2xlfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5k
fSIKKyAgICAgICAgd2hlbiAiZmYyaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAidm1vdiAje29w
ZXJhbmRzWzFdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVNpbmdsZX0iCiAgICAgICAg
IHdoZW4gImZpaTJkIgogICAgICAgICAgICAgJGFzbS5wdXRzICJ2bW92ICN7b3BlcmFuZHNbMl0u
YXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJt
T3BlcmFuZH0iCiAgICAgICAgIHdoZW4gImZkMmlpIgogICAgICAgICAgICAgJGFzbS5wdXRzICJ2
bW92ICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0iCisgICAgICAgIHdoZW4gInRydW5jYXRlZjJpIgor
ICAgICAgICAgICAgZW1pdEFybVRydW5jYXRlRmxvYXQoY29kZU9yaWdpbiwgInUzMiIsICJmMzIi
LCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAidHJ1bmNhdGVmMmlzIgorICAgICAgICAgICAgZW1p
dEFybVRydW5jYXRlRmxvYXQoY29kZU9yaWdpbiwgInMzMiIsICJmMzIiLCBvcGVyYW5kcykKKyAg
ICAgICAgd2hlbiAidHJ1bmNhdGVkMmkiCisgICAgICAgICAgICBlbWl0QXJtVHJ1bmNhdGVGbG9h
dChjb2RlT3JpZ2luLCAidTMyIiwgImY2NCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJ0cnVu
Y2F0ZWQyaXMiCisgICAgICAgICAgICBlbWl0QXJtVHJ1bmNhdGVGbG9hdChjb2RlT3JpZ2luLCAi
czMyIiwgImY2NCIsIG9wZXJhbmRzKQogICAgICAgICB3aGVuICJibyIKICAgICAgICAgICAgICRh
c20ucHV0cyAiYnZzICN7b3BlcmFuZHNbMF0uYXNtTGFiZWx9IgogICAgICAgICB3aGVuICJicyIK
QEAgLTcxMiwxMyArOTI5LDE3IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICAkYXNt
LnB1dHMgImJlcSAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKICAgICAgICAgd2hlbiAiYm56Igog
ICAgICAgICAgICAgJGFzbS5wdXRzICJibmUgI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCisgICAg
ICAgIHdoZW4gImJjcyIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmNzICN7b3BlcmFuZHNbMF0u
YXNtTGFiZWx9IgogICAgICAgICB3aGVuICJsZWFpIiwgImxlYXAiCiAgICAgICAgICAgICBvcGVy
YW5kc1swXS5hcm1FbWl0TGVhKG9wZXJhbmRzWzFdKQotICAgICAgICB3aGVuICJzbXVsbGkiCisg
ICAgICAgIHdoZW4gInNtdWxsaSIsICJ1bXVsbGkiCiAgICAgICAgICAgICByYWlzZSAiV3Jvbmcg
bnVtYmVyIG9mIGFyZ3VtZW50cyB0byBzbXVsbCBpbiAje3NlbGYuaW5zcGVjdH0gYXQgI3tjb2Rl
T3JpZ2luU3RyaW5nfSIgdW5sZXNzIG9wZXJhbmRzLmxlbmd0aCA9PSA0Ci0gICAgICAgICAgICAk
YXNtLnB1dHMgInNtdWxsICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbM10u
YXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJt
T3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlWzAuLi0yXX0gI3tvcGVy
YW5kc1syXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1szXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5k
c1swXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5kfSIKICAgICAgICAgd2hl
biAibWVtZmVuY2UiCiAgICAgICAgICAgICAkYXNtLnB1dHMgImRtYiBzeSIKKyAgICAgICAgd2hl
biAiZmVuY2UiCisgICAgICAgICAgICAkYXNtLnB1dHMgImRtYiBpc2giCiAgICAgICAgIHdoZW4g
ImNscmJwIgogICAgICAgICAgICAgJGFzbS5wdXRzICJiaWMgI3tvcGVyYW5kc1syXS5hcm1PcGVy
YW5kfSwgI3tvcGVyYW5kc1swXS5hcm1PcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5hcm1PcGVyYW5k
fSIKICAgICAgICAgd2hlbiAiZ2xvYmFsYWRkciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgppbmRleCA1NGIwMjdmM2RhMDEuLjdlMjgwYjdm
NzhiNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1
Y3Rpb25zLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0
aW9ucy5yYgpAQCAtNTksNiArNTksNyBAQCBNQUNST19JTlNUUlVDVElPTlMgPQogICAgICAicnJv
dGF0ZXEiLAogICAgICAic3ViaSIsCiAgICAgICJ4b3JpIiwKKyAgICAgImxvYWQyaWEiLAogICAg
ICAibG9hZGkiLAogICAgICAibG9hZGlzIiwKICAgICAgImxvYWRiIiwKQEAgLTY3LDYgKzY4LDcg
QEAgTUFDUk9fSU5TVFJVQ1RJT05TID0KICAgICAgImxvYWRoIiwKICAgICAgImxvYWRoc2kiLAog
ICAgICAibG9hZGhzcSIsCisgICAgICJzdG9yZTJpYSIsCiAgICAgICJzdG9yZWkiLAogICAgICAi
c3RvcmVoIiwKICAgICAgInN0b3JlYiIsCkBAIC0zNzcsOSArMzc5LDIxIEBAIFg4Nl9JTlNUUlVD
VElPTlMgPQogCiBBUk1fSU5TVFJVQ1RJT05TID0KICAgICBbCisgICAgICJhZGNpIiwKKyAgICAg
ImJjcyIsCiAgICAgICJjbHJicCIsCiAgICAgICJtdmxibCIsCi0gICAgICJnbG9iYWxhZGRyIgor
ICAgICAiZ2xvYmFsYWRkciIsCisgICAgICJzYmNpIiwKKyAgICAgIm1vdmVpaSIsCisgICAgICJs
b2FkbGlua2IiLAorICAgICAibG9hZGxpbmtoIiwKKyAgICAgImxvYWRsaW5raSIsCisgICAgICJs
b2FkbGluazJpIiwKKyAgICAgInN0b3JlY29uZGIiLAorICAgICAic3RvcmVjb25kaCIsCisgICAg
ICJzdG9yZWNvbmRpIiwKKyAgICAgInN0b3JlY29uZDJpIiwKICAgICBdCiAKIEFSTTY0X0lOU1RS
VUNUSU9OUyA9CkBAIC00MzEsNiArNDQ1LDcgQEAgQVJNNjRfSU5TVFJVQ1RJT05TID0KIFJJU0Nf
SU5TVFJVQ1RJT05TID0KICAgICBbCiAgICAgICJzbXVsbGkiLCAgIyBNdWx0aXBseSB0d28gMzIt
Yml0IHdvcmRzIGFuZCBwcm9kdWNlIGEgNjQtYml0IHdvcmQKKyAgICAgInVtdWxsaSIsICAjIE11
bHRpcGx5IHR3byAzMi1iaXQgd29yZHMgYW5kIHByb2R1Y2UgYSA2NC1iaXQgd29yZAogICAgICAi
YWRkaXMiLCAgICMgQWRkIGludGVnZXJzIGFuZCBzZXQgYSBmbGFnLgogICAgICAic3ViaXMiLCAg
ICMgU2FtZSwgYnV0IGZvciBzdWJ0cmFjdGlvbi4KICAgICAgIm9yaXMiLCAgICAjIFNhbWUsIGJ1
dCBmb3IgYml0d2lzZSBvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL3JlZ2lzdGVycy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jl
Z2lzdGVycy5yYgppbmRleCAwZGM0NGMyM2RmYjIuLjY3ZjUyNzFhNTM3NSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5yYgpAQCAtNTgsNyArNTgsOCBA
QCBHUFJTID0KICAgICAgImNzcjciLAogICAgICAiY3NyOCIsCiAgICAgICJjc3I5IiwKLSAgICAg
ImNzcjEwIgorICAgICAiY3NyMTAiLAorICAgICAiaW52YWxpZEdQUiIKICAgICBdCiAKIEZQUlMg
PQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYiBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIKaW5kZXggMGYwNzJlOWZk
MTFlLi4zNDY0NTk2MmY3NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL3Jpc2MucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlz
Yy5yYgpAQCAtMjU5LDggKzI1OSwxMiBAQCBkZWYgcmlzY0xvd2VyTWFsZm9ybWVkQWRkcmVzc2Vz
RG91YmxlKGxpc3QpCiAgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCiAgICAgICAgICAgICB3
aGVuICJsb2FkZCIKICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhu
b2RlLmNvZGVPcmlnaW4sICJsb2FkZCIsIFtub2RlLm9wZXJhbmRzWzBdLnJpc2NEb3VibGVBZGRy
ZXNzKG5ld0xpc3QpLCBub2RlLm9wZXJhbmRzWzFdXSwgbm9kZS5hbm5vdGF0aW9uKQorICAgICAg
ICAgICAgd2hlbiAibG9hZGYiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlv
bi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibG9hZGYiLCBbbm9kZS5vcGVyYW5kc1swXS5yaXNjRG91
YmxlQWRkcmVzcyhuZXdMaXN0KSwgbm9kZS5vcGVyYW5kc1sxXV0sIG5vZGUuYW5ub3RhdGlvbikK
ICAgICAgICAgICAgIHdoZW4gInN0b3JlZCIKICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJzdG9yZWQiLCBbbm9kZS5vcGVyYW5kc1sw
XSwgbm9kZS5vcGVyYW5kc1sxXS5yaXNjRG91YmxlQWRkcmVzcyhuZXdMaXN0KV0sIG5vZGUuYW5u
b3RhdGlvbikKKyAgICAgICAgICAgIHdoZW4gInN0b3JlZiIKKyAgICAgICAgICAgICAgICBuZXdM
aXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJzdG9yZWYiLCBbbm9kZS5v
cGVyYW5kc1swXSwgbm9kZS5vcGVyYW5kc1sxXS5yaXNjRG91YmxlQWRkcmVzcyhuZXdMaXN0KV0s
IG5vZGUuYW5ub3RhdGlvbikKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBuZXdM
aXN0IDw8IG5vZGUKICAgICAgICAgICAgIGVuZApAQCAtMzY5LDcgKzM3Myw3IEBAIGRlZiByaXNj
TG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVzKGxpc3QsIHZhbGlkSW1tZWRpYXRlcywgdmFsaWRMb2dp
Y2FsSW1tZWRpYXRlcykKICAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgogICAgICAg
ICAgICAgYW5ub3RhdGlvbiA9IG5vZGUuYW5ub3RhdGlvbgogICAgICAgICAgICAgY2FzZSBub2Rl
Lm9wY29kZQotICAgICAgICAgICAgd2hlbiAibW92ZSIKKyAgICAgICAgICAgIHdoZW4gIm1vdmUi
LCAibW92ZWlpIgogICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQogICAgICAgICAgICAg
d2hlbiAiYWRkaSIsICJhZGRwIiwgImFkZHEiLCAiYWRkaXMiLCAic3ViaSIsICJzdWJwIiwgInN1
YnEiLCAic3ViaXMiCiAgICAgICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1swXS5pc19hPyBJ
bW1lZGlhdGUgYW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NKU1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgK
aW5kZXggMzkxZmQzYTZhNDFjLi5mZTIxNjQ4NjczMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKQEAgLTE2Miw4ICsxNjIsOSBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBOdWxsVGFnID0gICAgICAgICAweGZmZmZmZmZkOwog
ICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgVW5kZWZpbmVkVGFnID0gICAgMHhmZmZmZmZm
YzsKICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IENlbGxUYWcgPSAgICAgICAgIDB4ZmZm
ZmZmZmI7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBFbXB0eVZhbHVlVGFnID0gICAw
eGZmZmZmZmZhOwotICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgRGVsZXRlZFZhbHVlVGFn
ID0gMHhmZmZmZmZmOTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IFdhc21UYWcgPSAg
ICAgICAgIDB4ZmZmZmZmZmE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBFbXB0eVZh
bHVlVGFnID0gICAweGZmZmZmZmY5OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgRGVs
ZXRlZFZhbHVlVGFnID0gMHhmZmZmZmZmODsKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMy
X3QgTG93ZXN0VGFnID0gIERlbGV0ZWRWYWx1ZVRhZzsKICNlbmRpZgpAQCAtMTgwLDYgKzE4MSw5
IEBAIHB1YmxpYzoKICAgICBlbnVtIEVuY29kZUFzQmlnSW50MzJUYWcgeyBFbmNvZGVBc0JpZ0lu
dDMyIH07CiAjZW5kaWYKICAgICBlbnVtIEVuY29kZUFzRG91YmxlVGFnIHsgRW5jb2RlQXNEb3Vi
bGUgfTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
ZW51bSBFbmNvZGVBc1VuYm94ZWRGbG9hdFRhZyB7IEVuY29kZUFzVW5ib3hlZEZsb2F0IH07Cisj
ZW5kaWYKIAogICAgIEpTVmFsdWUoKTsKICAgICBKU1ZhbHVlKEpTTnVsbFRhZyk7CkBAIC0xOTEs
NiArMTk1LDkgQEAgcHVibGljOgogI2lmIFVTRShCSUdJTlQzMikKICAgICBKU1ZhbHVlKEVuY29k
ZUFzQmlnSW50MzJUYWcsIGludDMyX3QpOwogI2VuZGlmCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
KSAmJiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIEpTVmFsdWUoRW5jb2RlQXNVbmJveGVkRmxvYXRU
YWcsIGZsb2F0KTsKKyNlbmRpZgogCiAgICAgLy8gTnVtYmVycwogICAgIEpTVmFsdWUoRW5jb2Rl
QXNEb3VibGVUYWcsIGRvdWJsZSk7CkBAIC01OTMsNiArNjAwLDEzIEBAIEFMV0FZU19JTkxJTkUg
SlNWYWx1ZSBqc0JpZ0ludDMyKGludDMyX3QgaW50VmFsdWUpCiB9CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShXRUJBU1NFTUJMWSkgJiYgVVNFKEpTVkFMVUUzMl82NCkKK0FMV0FZU19JTkxJTkUgSlNW
YWx1ZSB3YXNtVW5ib3hlZEZsb2F0KGZsb2F0IGYpCit7CisgICAgcmV0dXJuIEpTVmFsdWUoSlNW
YWx1ZTo6RW5jb2RlQXNVbmJveGVkRmxvYXQsIGYpOworfQorI2VuZGlmCisKIEFMV0FZU19JTkxJ
TkUgSlNWYWx1ZSBqc0RvdWJsZU51bWJlcihkb3VibGUgZCkKIHsKICAgICBBU1NFUlQoSlNWYWx1
ZShKU1ZhbHVlOjpFbmNvZGVBc0RvdWJsZSwgZCkuaXNOdW1iZXIoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAppbmRleCBiYTNlYjEy
NmU2ODUuLjUxYmJhN2VlZDM2MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCkBAIC02MjMsNiArNjIzLDEzIEBAIGlubGluZSBKU1Zh
bHVlOjpKU1ZhbHVlKEVuY29kZUFzQmlnSW50MzJUYWcsIGludDMyX3QgdmFsdWUpCiB9CiAjZW5k
aWYgLy8gVVNFKEJJR0lOVDMyKQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBVU0UoSlNW
QUxVRTMyXzY0KQoraW5saW5lIEpTVmFsdWU6OkpTVmFsdWUoRW5jb2RlQXNVbmJveGVkRmxvYXRU
YWcsIGZsb2F0IHZhbHVlKQoreworICAgIHUuYXNCaXRzLnBheWxvYWQgPSBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4odmFsdWUpOworfQorI2VuZGlmCisKIGlubGluZSBpbnQ2NF90IHRyeUNvbnZlcnRU
b0ludDUyKGRvdWJsZSBudW1iZXIpCiB7CiAgICAgaWYgKG51bWJlciAhPSBudW1iZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcAppbmRl
eCA4OWNlY2JkM2I4MjguLjUyNTViOGQ3MWUyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCkBAIC04NDcsNiArODQ3LDE1IEBAIHBy
aXZhdGU6CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0aW9uPgogICAgIHZvaWQgZm9yRWFj
aExpdmVWYWx1ZShGdW5jdGlvbik7CiAKKyAgICBib29sIHVzZVNpZ25hbGluZ01lbW9yeSgpIGNv
bnN0CisgICAgeworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQorICAg
ICAgICByZXR1cm4gbV9tb2RlID09IE1lbW9yeU1vZGU6OlNpZ25hbGluZzsKKyNlbHNlCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgIH0KKwogICAgIEZ1bmN0aW9uUGFyc2VyPEFp
cklSR2VuZXJhdG9yPiogbV9wYXJzZXIgeyBudWxscHRyIH07CiAgICAgY29uc3QgTW9kdWxlSW5m
b3JtYXRpb24mIG1faW5mbzsKICAgICBjb25zdCBNZW1vcnlNb2RlIG1fbW9kZSB7IE1lbW9yeU1v
ZGU6OkJvdW5kc0NoZWNraW5nIH07CkBAIC05NjQsNyArOTczLDcgQEAgQWlySVJHZW5lcmF0b3I6
OkFpcklSR2VuZXJhdG9yKGNvbnN0IE1vZHVsZUluZm9ybWF0aW9uJiBpbmZvLCBCMzo6UHJvY2Vk
dXJlJiBwcm8KICAgICBpZiAoIUNvbnRleHQ6OnVzZUZhc3RUTFMoKSkKICAgICAgICAgbV9jb2Rl
LnBpblJlZ2lzdGVyKG1fd2FzbUNvbnRleHRJbnN0YW5jZUdQUik7CiAKLSAgICBpZiAobW9kZSAh
PSBNZW1vcnlNb2RlOjpTaWduYWxpbmcpIHsKKyAgICBpZiAobW9kZSA9PSBNZW1vcnlNb2RlOjpC
b3VuZHNDaGVja2luZykgewogICAgICAgICBtX2JvdW5kc0NoZWNraW5nU2l6ZUdQUiA9IHBpbm5l
ZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXI7CiAgICAgICAgIG1fY29kZS5waW5SZWdp
c3RlcihtX2JvdW5kc0NoZWNraW5nU2l6ZUdQUik7CiAgICAgfQpAQCAtMTgwMCw2ICsxODA5LDcg
QEAgaW5saW5lIEFpcklSR2VuZXJhdG9yOjpFeHByZXNzaW9uVHlwZSBBaXJJUkdlbmVyYXRvcjo6
ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgY2FzZSBNZW1vcnlNb2Rl
OjpTaWduYWxpbmc6IHsKICAgICAgICAgLy8gV2UndmUgdmlydHVhbGx5IG1hcHBlZCA0R2lCK3Jl
ZHpvbmUgZm9yIHRoaXMgbWVtb3J5LiBPbmx5IHRoZSB1c2VyLWFsbG9jYXRlZCBwYWdlcyBhcmUg
YWRkcmVzc2FibGUsIGNvbnRpZ3VvdXNseSBpbiByYW5nZSBbMCwgY3VycmVudF0sCiAgICAgICAg
IC8vIGFuZCBldmVyeXRoaW5nIGFib3ZlIGlzIG1hcHBlZCBQUk9UX05PTkUuIFdlIGRvbid0IG5l
ZWQgdG8gcGVyZm9ybSBhbnkgZXhwbGljaXQgYm91bmRzIGNoZWNrIGluIHRoZSA0R2lCIHJhbmdl
IGJlY2F1c2UgV2ViQXNzZW1ibHkgcmVnaXN0ZXIKQEAgLTE4MjYsNiArMTgzNiw3IEBAIGlubGlu
ZSBBaXJJUkdlbmVyYXRvcjo6RXhwcmVzc2lvblR5cGUgQWlySVJHZW5lcmF0b3I6OmVtaXRDaGVj
a0FuZFByZXBhcmVQb2ludGVyCiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQorI2Vu
ZGlmCiAgICAgfQogCiAgICAgYXBwZW5kKEFkZDY0LCBUbXAobV9tZW1vcnlCYXNlR1BSKSwgcmVz
dWx0KTsKQEAgLTM3MDksNyArMzcyMCw3IEBAIGF1dG8gQWlySVJHZW5lcmF0b3I6OmFkZENhbGwo
dWludDMyX3QgZnVuY3Rpb25JbmRleCwgY29uc3QgVHlwZURlZmluaXRpb24mIHNpZ25hCiAgICAg
ICAgIGF1dG8qIHBhdGNocG9pbnQgPSBwYWlyLmZpcnN0OwogICAgICAgICBhdXRvIGV4Y2VwdGlv
bkhhbmRsZSA9IHBhaXIuc2Vjb25kOwogICAgICAgICAvLyBXZSBuZWVkIHRvIGNsb2JiZXIgdGhl
IHNpemUgcmVnaXN0ZXIgc2luY2UgdGhlIExMSW50IGFsd2F5cyBib3VuZHMgY2hlY2tzCi0gICAg
ICAgIGlmIChtX21vZGUgPT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nIHx8IG1faW5mby5tZW1vcnku
aXNTaGFyZWQoKSkKKyAgICAgICAgaWYgKHVzZVNpZ25hbGluZ01lbW9yeSgpIHx8IG1faW5mby5t
ZW1vcnkuaXNTaGFyZWQoKSkKICAgICAgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXJMYXRlKFJl
Z2lzdGVyU2V0IHsgUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKS5ib3VuZHNDaGVja2luZ1NpemVS
ZWdpc3RlciB9KTsKICAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKFs9LCB0aGlzXSAo
Q0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IEIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBh
cmFtcykgewogICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93
U2NyYXRjaChqaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUIzSVJHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJH
ZW5lcmF0b3IuY3BwCmluZGV4IGQ1NmVmZjc4YjA4Ni4uY2IyYjcwOWFiM2MyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCkBAIC01MjYs
NiArNTI2LDE1IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBzZXQoZHN0LCBnZXQoc3JjKSk7
CiAgICAgfQogCisgICAgYm9vbCB1c2VTaWduYWxpbmdNZW1vcnkoKSBjb25zdAorICAgIHsKKyNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKKyAgICAgICAgcmV0dXJuIG1f
bW9kZSA9PSBNZW1vcnlNb2RlOjpTaWduYWxpbmc7CisjZWxzZQorICAgICAgICByZXR1cm4gZmFs
c2U7CisjZW5kaWYKKyAgICB9CisKICAgICBGdW5jdGlvblBhcnNlcjxCM0lSR2VuZXJhdG9yPiog
bV9wYXJzZXIgeyBudWxscHRyIH07CiAgICAgY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mIG1faW5m
bzsKICAgICBjb25zdCBNZW1vcnlNb2RlIG1fbW9kZSB7IE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNr
aW5nIH07CkBAIC02MzksNyArNjQ4LDcgQEAgQjNJUkdlbmVyYXRvcjo6QjNJUkdlbmVyYXRvcihj
b25zdCBNb2R1bGVJbmZvcm1hdGlvbiYgaW5mbywgUHJvY2VkdXJlJiBwcm9jZWR1cmUKICAgICBp
ZiAoIUNvbnRleHQ6OnVzZUZhc3RUTFMoKSkKICAgICAgICAgbV9wcm9jLnBpblJlZ2lzdGVyKG1f
d2FzbUNvbnRleHRJbnN0YW5jZUdQUik7CiAKLSAgICBpZiAobW9kZSAhPSBNZW1vcnlNb2RlOjpT
aWduYWxpbmcpIHsKKyAgICBpZiAobW9kZSA9PSBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZykg
ewogICAgICAgICBtX2JvdW5kc0NoZWNraW5nU2l6ZUdQUiA9IHBpbm5lZFJlZ3MuYm91bmRzQ2hl
Y2tpbmdTaXplUmVnaXN0ZXI7CiAgICAgICAgIG1fcHJvYy5waW5SZWdpc3RlcihtX2JvdW5kc0No
ZWNraW5nU2l6ZUdQUik7CiAgICAgfQpAQCAtNjUxLDkgKzY2MCwxMSBAQCBCM0lSR2VuZXJhdG9y
OjpCM0lSR2VuZXJhdG9yKGNvbnN0IE1vZHVsZUluZm9ybWF0aW9uJiBpbmZvLCBQcm9jZWR1cmUm
IHByb2NlZHVyZQogICAgICAgICAgICAgY2FzZSBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZzoK
ICAgICAgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKHBpbm5lZEdQUiwgbV9ib3VuZHNDaGVja2lu
Z1NpemVHUFIgPT0gcGlubmVkR1BSKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyNpZiBFTkFC
TEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICAgICAgICAgIGNhc2UgTWVtb3J5
TW9kZTo6U2lnbmFsaW5nOgogICAgICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQocGlubmVkR1BS
LCBJbnZhbGlkR1BSUmVnID09IHBpbm5lZEdQUik7CiAgICAgICAgICAgICAgICAgYnJlYWs7Cisj
ZW5kaWYKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHRoaXMtPmVtaXRFeGNlcHRpb25DaGVj
ayhqaXQsIEV4Y2VwdGlvblR5cGU6Ok91dE9mQm91bmRzTWVtb3J5QWNjZXNzKTsKICAgICAgICAg
fSk7CkBAIC05MTUsOSArOTI2LDEzIEBAIGF1dG8gQjNJUkdlbmVyYXRvcjo6YWRkQXJndW1lbnRz
KGNvbnN0IFR5cGVEZWZpbml0aW9uJiBzaWduYXR1cmUpIC0+IFBhcnRpYWxSZXN1CiAgICAgICAg
IEIzOjpUeXBlIHR5cGUgPSB0b0IzVHlwZShzaWduYXR1cmUuYXM8RnVuY3Rpb25TaWduYXR1cmU+
KCktPmFyZ3VtZW50VHlwZShpKSk7CiAgICAgICAgIEIzOjpWYWx1ZSogYXJndW1lbnQ7CiAgICAg
ICAgIGF1dG8gcmVwID0gd2FzbUNhbGxJbmZvLnBhcmFtc1tpXTsKLSAgICAgICAgaWYgKHJlcC5p
c1JlZygpKSB7Ci0gICAgICAgICAgICBhcmd1bWVudCA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmRO
ZXc8QjM6OkFyZ3VtZW50UmVnVmFsdWU+KG1fcHJvYywgT3JpZ2luKCksIHJlcC5yZWcoKSk7Ci0g
ICAgICAgICAgICBpZiAodHlwZSA9PSBCMzo6SW50MzIgfHwgdHlwZSA9PSBCMzo6RmxvYXQpCisg
ICAgICAgIGlmIChyZXAuaXNHUFIoKSkgeworICAgICAgICAgICAgYXJndW1lbnQgPSBtX2N1cnJl
bnRCbG9jay0+YXBwZW5kTmV3PEIzOjpBcmd1bWVudFJlZ1ZhbHVlPihtX3Byb2MsIE9yaWdpbigp
LCByZXAuanNyKCkucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgIGlmICh0eXBlID09IEIzOjpJ
bnQzMikKKyAgICAgICAgICAgICAgICBhcmd1bWVudCA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmRO
ZXc8QjM6OlZhbHVlPihtX3Byb2MsIEIzOjpUcnVuYywgT3JpZ2luKCksIGFyZ3VtZW50KTsKKyAg
ICAgICAgfSBlbHNlIGlmIChyZXAuaXNGUFIoKSkgeworICAgICAgICAgICAgYXJndW1lbnQgPSBt
X2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PEIzOjpBcmd1bWVudFJlZ1ZhbHVlPihtX3Byb2MsIE9y
aWdpbigpLCByZXAuZnByKCkpOworICAgICAgICAgICAgaWYgKHR5cGUgPT0gQjM6OkZsb2F0KQog
ICAgICAgICAgICAgICAgIGFyZ3VtZW50ID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxCMzo6
VmFsdWU+KG1fcHJvYywgQjM6OlRydW5jLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgQVNTRVJUKHJlcC5pc1N0YWNrKCkpOwpAQCAtMTQ0Niw2ICsx
NDYxLDcgQEAgaW5saW5lIFZhbHVlKiBCM0lSR2VuZXJhdG9yOjplbWl0Q2hlY2tBbmRQcmVwYXJl
UG9pbnRlcihWYWx1ZSogcG9pbnRlciwgdWludDMyX3QKICAgICAgICAgYnJlYWs7CiAgICAgfQog
CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgY2FzZSBNZW1v
cnlNb2RlOjpTaWduYWxpbmc6IHsKICAgICAgICAgLy8gV2UndmUgdmlydHVhbGx5IG1hcHBlZCA0
R2lCK3JlZHpvbmUgZm9yIHRoaXMgbWVtb3J5LiBPbmx5IHRoZSB1c2VyLWFsbG9jYXRlZCBwYWdl
cyBhcmUgYWRkcmVzc2FibGUsIGNvbnRpZ3VvdXNseSBpbiByYW5nZSBbMCwgY3VycmVudF0sCiAg
ICAgICAgIC8vIGFuZCBldmVyeXRoaW5nIGFib3ZlIGlzIG1hcHBlZCBQUk9UX05PTkUuIFdlIGRv
bid0IG5lZWQgdG8gcGVyZm9ybSBhbnkgZXhwbGljaXQgYm91bmRzIGNoZWNrIGluIHRoZSA0R2lC
IHJhbmdlIGJlY2F1c2UgV2ViQXNzZW1ibHkgcmVnaXN0ZXIKQEAgLTE0NjMsNiArMTQ3OSw3IEBA
IGlubGluZSBWYWx1ZSogQjNJUkdlbmVyYXRvcjo6ZW1pdENoZWNrQW5kUHJlcGFyZVBvaW50ZXIo
VmFsdWUqIHBvaW50ZXIsIHVpbnQzMl90CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAg
fQorI2VuZGlmCiAgICAgfQogCiAgICAgcG9pbnRlciA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmRO
ZXc8VmFsdWU+KG1fcHJvYywgWkV4dDMyLCBvcmlnaW4oKSwgcG9pbnRlcik7CkBAIC0xNDk2LDcg
KzE1MTMsNyBAQCBpbmxpbmUgdWludDMyX3Qgc2l6ZU9mTG9hZE9wKExvYWRPcFR5cGUgb3ApCiAK
IGlubGluZSBCMzo6S2luZCBCM0lSR2VuZXJhdG9yOjptZW1vcnlLaW5kKEIzOjpPcGNvZGUgbWVt
b3J5T3ApCiB7Ci0gICAgaWYgKG1fbW9kZSA9PSBNZW1vcnlNb2RlOjpTaWduYWxpbmcgfHwgbV9p
bmZvLm1lbW9yeS5pc1NoYXJlZCgpKQorICAgIGlmICh1c2VTaWduYWxpbmdNZW1vcnkoKSB8fCBt
X2luZm8ubWVtb3J5LmlzU2hhcmVkKCkpCiAgICAgICAgIHJldHVybiB0cmFwcGluZyhtZW1vcnlP
cCk7CiAgICAgcmV0dXJuIG1lbW9yeU9wOwogfQpAQCAtMjk4OSw3ICszMDA2LDcgQEAgYXV0byBC
M0lSR2VuZXJhdG9yOjphZGRDYWxsKHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgsIGNvbnN0IFR5cGVE
ZWZpbml0aW9uJiBzaWduYXQKICAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5lZmZlY3RzLnJl
YWRzUGlubmVkID0gdHJ1ZTsKIAogICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gY2xvYmJl
ciB0aGUgc2l6ZSByZWdpc3RlciBzaW5jZSB0aGUgTExJbnQgYWx3YXlzIGJvdW5kcyBjaGVja3MK
LSAgICAgICAgICAgICAgICBpZiAobV9tb2RlID09IE1lbW9yeU1vZGU6OlNpZ25hbGluZyB8fCBt
X2luZm8ubWVtb3J5LmlzU2hhcmVkKCkpCisgICAgICAgICAgICAgICAgaWYgKHVzZVNpZ25hbGlu
Z01lbW9yeSgpIHx8IG1faW5mby5tZW1vcnkuaXNTaGFyZWQoKSkKICAgICAgICAgICAgICAgICAg
ICAgcGF0Y2hwb2ludC0+Y2xvYmJlckxhdGUoUmVnaXN0ZXJTZXQgeyBQaW5uZWRSZWdpc3Rlcklu
Zm86OmdldCgpLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyIH0pOwogICAgICAgICAgICAgICAg
IHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcihbdGhpcywgaGFuZGxlLCB1bmxpbmtlZFdhc21Ub1dh
c21DYWxscywgZnVuY3Rpb25JbmRleF0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBCMzo6U3Rh
Y2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKICAgICAgICAgICAgICAgICAgICAgQWxs
b3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwCmluZGV4IGVkYzcwYmVhMDhhZi4uMzI3
Mjg5OTQ5YWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQmlu
ZGluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3Bw
CkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCiAjaW5jbHVkZSAi
Q0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVz
YWdlLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogI2luY2x1ZGUgIldhc21DYWxsaW5nQ29u
dmVudGlvbi5oIgogI2luY2x1ZGUgIldhc21JbnN0YW5jZS5oIgpAQCAtNDEsMTggKzQyLDIxIEBA
IEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5n
RmFpbHVyZT4gd2FzbVRvV2FzbSh1bnNpCiB7CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHVuaXF1
aWZ5IHRoZSBzdHVicyBiYXNlZCBvbiBzaWduYXR1cmUgKyBpbmRleCB0byBzZWUgaWYgdGhpcyBz
YXZlcyBtZW1vcnkuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4NDE1NwotCi0gICAgY29uc3QgUGlubmVkUmVnaXN0ZXJJbmZvJiBwaW5uZWRSZWdzID0g
UGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKTsKICAgICBKSVQgaml0OwogCiAgICAgR1BSUmVnIHNj
cmF0Y2ggPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzBdOwor
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgR1BSUmVnIGJhc2VNZW1vcnkgPSB3YXNtQ2FsbGlu
Z0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdOworICAgIEdQUlJlZyBzaXplUmVn
QXNTY3JhdGNoID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1sy
XTsKKyNlbHNlCisgICAgY29uc3QgUGlubmVkUmVnaXN0ZXJJbmZvJiBwaW5uZWRSZWdzID0gUGlu
bmVkUmVnaXN0ZXJJbmZvOjpnZXQoKTsKICAgICBHUFJSZWcgYmFzZU1lbW9yeSA9IHBpbm5lZFJl
Z3MuYmFzZU1lbW9yeVBvaW50ZXI7Ci0gICAgQVNTRVJUKGJhc2VNZW1vcnkgIT0gR1BSUmVnOjpJ
bnZhbGlkR1BSUmVnKTsKLSAgICBBU1NFUlQoYmFzZU1lbW9yeSAhPSBzY3JhdGNoKTsKLSAgICBB
U1NFUlQocGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlciAhPSBiYXNlTWVtb3J5
KTsKLSAgICBBU1NFUlQocGlubmVkUmVncy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlciAhPSBz
Y3JhdGNoKTsKICAgICBHUFJSZWcgc2l6ZVJlZ0FzU2NyYXRjaCA9IHBpbm5lZFJlZ3MuYm91bmRz
Q2hlY2tpbmdTaXplUmVnaXN0ZXI7CisjZW5kaWYKKyAgICBBU1NFUlQoYmFzZU1lbW9yeSAhPSBH
UFJSZWc6OkludmFsaWRHUFJSZWcpOwogICAgIEFTU0VSVChzaXplUmVnQXNTY3JhdGNoICE9IEdQ
UlJlZzo6SW52YWxpZEdQUlJlZyk7CisgICAgQVNTRVJUKHNjcmF0Y2ggIT0gR1BSUmVnOjpJbnZh
bGlkR1BSUmVnKTsKKyAgICBBU1NFUlQobm9PdmVybGFwKHNjcmF0Y2gsIGJhc2VNZW1vcnksIHNp
emVSZWdBc1NjcmF0Y2gpKTsKIAogICAgIC8vIEIzJ3MgY2FsbCBjb2RlZ2VuIGVuc3VyZXMgdGhh
dCB0aGUgSlNDZWxsIGlzIGEgV2ViQXNzZW1ibHlGdW5jdGlvbi4KICAgICBqaXQubG9hZFdhc21D
b250ZXh0SW5zdGFuY2Uoc2l6ZVJlZ0FzU2NyYXRjaCk7IC8vIE9sZCBJbnN0YW5jZSoKQEAgLTY1
LDYgKzY5LDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRh
Zz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9XYXNtKHVuc2kKICAgICBqaXQubG9hZFB0cihKSVQ6
OkFkZHJlc3Moc2l6ZVJlZ0FzU2NyYXRjaCwgSW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkU3RhY2tM
aW1pdCgpKSwgc2l6ZVJlZ0FzU2NyYXRjaCk7CiAgICAgaml0LnN0b3JlUHRyKHNpemVSZWdBc1Nj
cmF0Y2gsIEpJVDo6QWRkcmVzcyhiYXNlTWVtb3J5LCBJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRT
dGFja0xpbWl0KCkpKTsKIAorI2lmICFDUFUoQVJNKSAvLyBBUk0gaGFzIG5vIHBpbm5lZCByZWdp
c3RlcnMgZm9yIFdhc20gTWVtb3J5LCBzbyBubyBuZWVkIHRvIHNldCB0aGVtIHVwCiAgICAgLy8g
RklYTUUgdGhlIGZvbGxvd2luZyBjb2RlIGFzc3VtZXMgdGhhdCBhbGwgV2FzbTo6SW5zdGFuY2Ug
aGF2ZSB0aGUgc2FtZSBwaW5uZWQgcmVnaXN0ZXJzLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTYyOTUyCiAgICAgLy8gU2V0IHVwIHRoZSBjYWxsZWUncyBiYXNlTWVt
b3J5IHJlZ2lzdGVyIGFzIHdlbGwgYXMgdGhlIG1lbW9yeSBzaXplIHJlZ2lzdGVycy4KICAgICB7
CkBAIC03Miw2ICs3Nyw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50
cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvV2FzbSh1bnNpCiAgICAgICAgIGppdC5s
b2FkUHRyKEpJVDo6QWRkcmVzcyhiYXNlTWVtb3J5LCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZD
YWNoZWRNZW1vcnkoKSksIGJhc2VNZW1vcnkpOyAvLyBXYXNtOjpNZW1vcnk6OlRhZ2dlZEFycmF5
U3RvcmFnZVB0cjx2b2lkPiAodm9pZCopLgogICAgICAgICBqaXQuY2FnZUNvbmRpdGlvbmFsbHlB
bmRVbnRhZyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5LCBwaW5uZWRSZWdzLmJvdW5k
c0NoZWNraW5nU2l6ZVJlZ2lzdGVyLCB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNj
cmF0Y2hHUFJzWzFdKTsKICAgICB9CisjZW5kaWYKIAogICAgIC8vIFRhaWwgY2FsbCBpbnRvIHRo
ZSBjYWxsZWUgV2ViQXNzZW1ibHkgZnVuY3Rpb24uCiAgICAgaml0LmxvYWRQdHIoSklUOjpBZGRy
ZXNzKHNjcmF0Y2gpLCBzY3JhdGNoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21DYWxsZWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNh
bGxlZS5jcHAKaW5kZXggYTMyMWM1MmYxNWVjLi4zMjAyZjU0ODBjYTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuY3BwCkBAIC0xMzEsNiArMTMxLDggQEAgUmVnaXN0
ZXJBdE9mZnNldExpc3QqIExMSW50Q2FsbGVlOjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCkKICAgICAg
ICAgcmVnaXN0ZXJzLnNldChHUFJJbmZvOjpyZWdDUzIpOyAvLyBQQgogI2VsaWYgQ1BVKEFSTTY0
KSB8fCBDUFUoUklTQ1Y2NCkKICAgICAgICAgcmVnaXN0ZXJzLnNldChHUFJJbmZvOjpyZWdDUzcp
OyAvLyBQQgorI2VsaWYgQ1BVKEFSTSkKKyAgICAgICAgcmVnaXN0ZXJzLnNldChHUFJJbmZvOjpy
ZWdDUzEpOyAvLyBQQgogI2Vsc2UKICNlcnJvciBVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUuCiAj
ZW5kaWYKQEAgLTE1OCw2ICsxNjAsNyBAQCBjb25zdCBXYXNtSW5zdHJ1Y3Rpb24qIExMSW50Q2Fs
bGVlOjpvdXRPZkxpbmVKdW1wVGFyZ2V0KGNvbnN0IFdhc21JbnN0cnVjdGlvbiogcAogICAgIHJl
dHVybiBtX2luc3RydWN0aW9ucy0+YXQob2Zmc2V0ICsgdGFyZ2V0KS5wdHIoKTsKIH0KIAorI2lm
IEVOQUJMRShXRUJBU1NFTUJMWV9CM0pJVCkKIHZvaWQgT3B0aW1pemluZ0pJVENhbGxlZTo6bGlu
a0V4Y2VwdGlvbkhhbmRsZXJzKFZlY3RvcjxVbmxpbmtlZEhhbmRsZXJJbmZvPiB1bmxpbmtlZEV4
Y2VwdGlvbkhhbmRsZXJzLCBWZWN0b3I8Q29kZUxvY2F0aW9uTGFiZWw8RXhjZXB0aW9uSGFuZGxl
clB0clRhZz4+IGV4Y2VwdGlvbkhhbmRsZXJMb2NhdGlvbnMpCiB7CiAgICAgc2l6ZV90IGNvdW50
ID0gdW5saW5rZWRFeGNlcHRpb25IYW5kbGVycy5zaXplKCk7CkBAIC0xODQsNyArMTg3LDcgQEAg
Y29uc3QgU3RhY2tNYXAmIE9wdGltaXppbmdKSVRDYWxsZWU6OnN0YWNrbWFwKENhbGxTaXRlSW5k
ZXggY2FsbFNpdGVJbmRleCkgY29uc3QKICAgICBSRUxFQVNFX0FTU0VSVChpdGVyICE9IG1fc3Rh
Y2ttYXBzLmVuZCgpKTsKICAgICByZXR1cm4gaXRlci0+dmFsdWU7CiB9Ci0KKyNlbmRpZgogCiB9
IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtQ2FsbGVlR3JvdXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUNhbGxlZUdyb3VwLmNwcAppbmRleCAxZWE0NWNhNGE2ZTkuLjUxOWQyMDk2YWQ2MiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZUdyb3VwLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlR3JvdXAuY3BwCkBA
IC0xNjAsMTcgKzE2MCwyMSBAQCB2b2lkIENhbGxlZUdyb3VwOjpjb21waWxlQXN5bmMoQ29udGV4
dCogY29udGV4dCwgQXN5bmNDb21waWxhdGlvbkNhbGxiYWNrJiYgdGFzawogCiBib29sIENhbGxl
ZUdyb3VwOjppc1NhZmVUb1J1bihNZW1vcnlNb2RlIG1lbW9yeU1vZGUpCiB7CisgICAgVU5VU0VE
X1BBUkFNKG1lbW9yeU1vZGUpOworCiAgICAgaWYgKCFydW5uYWJsZSgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBzd2l0Y2ggKG1fbW9kZSkgewogICAgIGNhc2UgV2FzbTo6TWVtb3J5
TW9kZTo6Qm91bmRzQ2hlY2tpbmc6CiAgICAgICAgIHJldHVybiB0cnVlOworI2lmIEVOQUJMRShX
RUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIGNhc2UgV2FzbTo6TWVtb3J5TW9kZTo6
U2lnbmFsaW5nOgogICAgICAgICAvLyBDb2RlIGJlaW5nIGluIFNpZ25hbGluZyBtb2RlIG1lYW5z
IHRoYXQgaXQgcGVyZm9ybXMgbm8gYm91bmRzIGNoZWNrcy4KICAgICAgICAgLy8gSXRzIG1lbW9y
eSwgZXZlbiBpZiBlbXB0eSwgYWJzb2x1dGVseSBtdXN0IGFsc28gYmUgaW4gU2lnbmFsaW5nIG1v
ZGUKICAgICAgICAgLy8gYmVjYXVzZSB0aGUgcGFnZSBwcm90ZWN0aW9uIGRldGVjdHMgb3V0LW9m
LWJvdW5kcyBhY2Nlc3Nlcy4KICAgICAgICAgcmV0dXJuIG1lbW9yeU1vZGUgPT0gV2FzbTo6TWVt
b3J5TW9kZTo6U2lnbmFsaW5nOworI2VuZGlmCiAgICAgfQogICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5jcHAKaW5kZXggMjAzYzg0M2FlOGU2
Li5lYjA5MDk1ODE4NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21DYWxsaW5nQ29udmVudGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUNhbGxpbmdDb252ZW50aW9uLmNwcApAQCAtNDAsNyArNDAsNyBAQCBjb25zdCBKU0NhbGxp
bmdDb252ZW50aW9uJiBqc0NhbGxpbmdDb252ZW50aW9uKCkKICAgICAgICAgUmVnaXN0ZXJTZXQg
Y2FsbGVyU2F2ZVJlZ2lzdGVycyA9IFJlZ2lzdGVyU2V0OjphbGxSZWdpc3RlcnMoKTsKICAgICAg
ICAgY2FsbGVyU2F2ZVJlZ2lzdGVycy5leGNsdWRlKFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVn
aXN0ZXJzKCkpOwogCi0gICAgICAgIHN0YXRpY0pTQ2FsbGluZ0NvbnZlbnRpb24uY29uc3RydWN0
KFZlY3RvcjxSZWc+KCksIFZlY3RvcjxSZWc+KCksIFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVn
aXN0ZXJzKCksIFdURk1vdmUoY2FsbGVyU2F2ZVJlZ2lzdGVycykpOworICAgICAgICBzdGF0aWNK
U0NhbGxpbmdDb252ZW50aW9uLmNvbnN0cnVjdChWZWN0b3I8SlNWYWx1ZVJlZ3M+KCksIFZlY3Rv
cjxGUFJSZWc+KCksIFJlZ2lzdGVyU2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCksIFdURk1vdmUo
Y2FsbGVyU2F2ZVJlZ2lzdGVycykpOwogICAgIH0pOwogCiAgICAgcmV0dXJuIHN0YXRpY0pTQ2Fs
bGluZ0NvbnZlbnRpb247CkBAIC01MSwzMSArNTEsNTEgQEAgY29uc3QgV2FzbUNhbGxpbmdDb252
ZW50aW9uJiB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKQogICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0
cm95ZWQ8V2FzbUNhbGxpbmdDb252ZW50aW9uPiBzdGF0aWNXYXNtQ2FsbGluZ0NvbnZlbnRpb247
CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIHN0YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbkZs
YWc7CiAgICAgc3RkOjpjYWxsX29uY2Uoc3RhdGljV2FzbUNhbGxpbmdDb252ZW50aW9uRmxhZywg
W10gKCkgewotICAgICAgICBWZWN0b3I8UmVnPiBncHJBcmd1bWVudFJlZ2lzdGVycyhHUFJJbmZv
OjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzKTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IEdQUkluZm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnM7ICsraSkKLSAgICAgICAg
ICAgIGdwckFyZ3VtZW50UmVnaXN0ZXJzW2ldID0gR1BSSW5mbzo6dG9Bcmd1bWVudFJlZ2lzdGVy
KGkpOworI2lmIFVTRShKU1ZBTFVFNjQpIC8vIE9uZSB2YWx1ZSBwZXIgR1BSCisgICAgICAgIGNv
bnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50SlNScyA9IEdQUkluZm86Om51bWJlck9m
QXJndW1lbnRSZWdpc3RlcnM7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KSAvLyBPbmUgdmFsdWUg
cGVyIGNvbnNlY3V0aXZlIEdQUiBwYWlyCisgICAgICAgIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1i
ZXJPZkFyZ3VtZW50SlNScyA9IEdQUkluZm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgLyAy
OworI2VuZGlmCisgICAgICAgIFZlY3RvcjxKU1ZhbHVlUmVncz4ganNyQXJndW1lbnRSZWdpc3Rl
cnMobnVtYmVyT2ZBcmd1bWVudEpTUnMpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbnVtYmVyT2ZBcmd1bWVudEpTUnM7ICsraSkgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAg
ICAgICAgICBqc3JBcmd1bWVudFJlZ2lzdGVyc1tpXSA9IEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6
dG9Bcmd1bWVudFJlZ2lzdGVyKGkpIH07CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAg
ICAgICAganNyQXJndW1lbnRSZWdpc3RlcnNbaV0gPSBKU1ZhbHVlUmVncyB7IEdQUkluZm86OnRv
QXJndW1lbnRSZWdpc3RlcigyICogaSArIDEpLCBHUFJJbmZvOjp0b0FyZ3VtZW50UmVnaXN0ZXIo
MiAqIGkpIH07CisjZW5kaWYKKyAgICAgICAgfQogCi0gICAgICAgIFZlY3RvcjxSZWc+IGZwckFy
Z3VtZW50UmVnaXN0ZXJzKEZQUkluZm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMpOworICAg
ICAgICBWZWN0b3I8RlBSUmVnPiBmcHJBcmd1bWVudFJlZ2lzdGVycyhGUFJJbmZvOjpudW1iZXJP
ZkFyZ3VtZW50UmVnaXN0ZXJzKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEZQ
UkluZm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnM7ICsraSkKICAgICAgICAgICAgIGZwckFy
Z3VtZW50UmVnaXN0ZXJzW2ldID0gRlBSSW5mbzo6dG9Bcmd1bWVudFJlZ2lzdGVyKGkpOwogCiAg
ICAgICAgIFJlZ2lzdGVyU2V0IHNjcmF0Y2ggPSBSZWdpc3RlclNldDo6YWxsR1BScygpOwotICAg
ICAgICBzY3JhdGNoLmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKSk7
CisgICAgICAgIHNjcmF0Y2guZXhjbHVkZShSZWdpc3RlclNldDo6dm1DYWxsZWVTYXZlUmVnaXN0
ZXJzKCkpOwogICAgICAgICBzY3JhdGNoLmV4Y2x1ZGUoUmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRj
aFJlZ2lzdGVycygpKTsKICAgICAgICAgc2NyYXRjaC5leGNsdWRlKFJlZ2lzdGVyU2V0OjpyZXNl
cnZlZEhhcmR3YXJlUmVnaXN0ZXJzKCkpOwogICAgICAgICBzY3JhdGNoLmV4Y2x1ZGUoUmVnaXN0
ZXJTZXQ6OnN0YWNrUmVnaXN0ZXJzKCkpOwotICAgICAgICBmb3IgKFJlZyByZWcgOiBncHJBcmd1
bWVudFJlZ2lzdGVycykKLSAgICAgICAgICAgIHNjcmF0Y2guY2xlYXIocmVnKTsKKyAgICAgICAg
Zm9yIChKU1ZhbHVlUmVncyBqc3IgOiBqc3JBcmd1bWVudFJlZ2lzdGVycykgeworICAgICAgICAg
ICAgc2NyYXRjaC5jbGVhcihqc3IucGF5bG9hZEdQUigpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0
KQorICAgICAgICAgICAgc2NyYXRjaC5jbGVhcihqc3IudGFnR1BSKCkpOworI2VuZGlmCisgICAg
ICAgIH0KIAogICAgICAgICBWZWN0b3I8R1BSUmVnPiBzY3JhdGNoR1BSczsKICAgICAgICAgZm9y
IChSZWcgcmVnIDogc2NyYXRjaCkKICAgICAgICAgICAgIHNjcmF0Y2hHUFJzLmFwcGVuZChyZWcu
Z3ByKCkpOworCisgICAgICAgIC8vIE5lZWQgYXQgbGVhc3Qgb25lIEpTVmFsdWUgYW5kIGFuIGFk
ZGl0aW9uYWwgR1BSCisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgUkVMRUFTRV9BU1NFUlQo
c2NyYXRjaEdQUnMuc2l6ZSgpID49IDIpOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoc2NyYXRjaEdQUnMuc2l6ZSgpID49IDMpOworI2VuZGlmCiAKICAg
ICAgICAgUmVnaXN0ZXJTZXQgY2FsbGVyU2F2ZVJlZ2lzdGVycyA9IFJlZ2lzdGVyU2V0OjphbGxS
ZWdpc3RlcnMoKTsKICAgICAgICAgY2FsbGVyU2F2ZVJlZ2lzdGVycy5leGNsdWRlKFJlZ2lzdGVy
U2V0OjpjYWxsZWVTYXZlUmVnaXN0ZXJzKCkpOwogCi0gICAgICAgIHN0YXRpY1dhc21DYWxsaW5n
Q29udmVudGlvbi5jb25zdHJ1Y3QoV1RGTW92ZShncHJBcmd1bWVudFJlZ2lzdGVycyksIFdURk1v
dmUoZnByQXJndW1lbnRSZWdpc3RlcnMpLCBXVEZNb3ZlKHNjcmF0Y2hHUFJzKSwgUmVnaXN0ZXJT
ZXQ6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKSwgV1RGTW92ZShjYWxsZXJTYXZlUmVnaXN0ZXJzKSk7
CisgICAgICAgIHN0YXRpY1dhc21DYWxsaW5nQ29udmVudGlvbi5jb25zdHJ1Y3QoV1RGTW92ZShq
c3JBcmd1bWVudFJlZ2lzdGVycyksIFdURk1vdmUoZnByQXJndW1lbnRSZWdpc3RlcnMpLCBXVEZN
b3ZlKHNjcmF0Y2hHUFJzKSwgUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKSwgV1RG
TW92ZShjYWxsZXJTYXZlUmVnaXN0ZXJzKSk7CiAgICAgfSk7CiAKICAgICByZXR1cm4gc3RhdGlj
V2FzbUNhbGxpbmdDb252ZW50aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uaAppbmRleCA3ZjFlNjA5OTEyZjQuLjMxMDI1MDhlMGFh
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252
ZW50aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252
ZW50aW9uLmgKQEAgLTU3LDggKzU3LDEzIEBAIHN0cnVjdCBDYWxsSW5mb3JtYXRpb24gewogICAg
IHsKICAgICAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlc3VsdFJlZ2lzdGVyczsKICAgICAgICAgZm9y
IChWYWx1ZUxvY2F0aW9uIGxvYyA6IHJlc3VsdHMpIHsKLSAgICAgICAgICAgIGlmIChsb2MuaXNS
ZWcoKSkKLSAgICAgICAgICAgICAgICB1c2VkUmVzdWx0UmVnaXN0ZXJzLnNldChsb2MucmVnKCkp
OworICAgICAgICAgICAgaWYgKGxvYy5pc0dQUigpKSB7CisgICAgICAgICAgICAgICAgdXNlZFJl
c3VsdFJlZ2lzdGVycy5zZXQobG9jLmpzcigpLnBheWxvYWRHUFIoKSk7CisjaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAgICAgICAgICAgICB1c2VkUmVzdWx0UmVnaXN0ZXJzLnNldChsb2MuanNy
KCkudGFnR1BSKCkpOworI2VuZGlmCisgICAgICAgICAgICB9IGVsc2UgaWYgKGxvYy5pc0ZQUigp
KQorICAgICAgICAgICAgICAgIHVzZWRSZXN1bHRSZWdpc3RlcnMuc2V0KGxvYy5mcHIoKSk7CiAg
ICAgICAgIH0KIAogICAgICAgICBSZWdpc3RlckF0T2Zmc2V0TGlzdCBzYXZlZFJlZ3ModXNlZFJl
c3VsdFJlZ2lzdGVycywgUmVnaXN0ZXJBdE9mZnNldExpc3Q6Olplcm9CYXNlZCk7CkBAIC03Nyw4
ICs4Miw4IEBAIGNsYXNzIFdhc21DYWxsaW5nQ29udmVudGlvbiB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBoZWFkZXJTaXplSW5CeXRlcyA9IENhbGxGcmFtZTo6aGVh
ZGVyU2l6ZUluUmVnaXN0ZXJzICogc2l6ZW9mKFJlZ2lzdGVyKTsKIAotICAgIFdhc21DYWxsaW5n
Q29udmVudGlvbihWZWN0b3I8UmVnPiYmIGdwcnMsIFZlY3RvcjxSZWc+JiYgZnBycywgVmVjdG9y
PEdQUlJlZz4mJiBzY3JhdGNoZXMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVlU2F2ZXMsIFJlZ2lzdGVy
U2V0JiYgY2FsbGVyU2F2ZXMpCi0gICAgICAgIDogZ3ByQXJncyhXVEZNb3ZlKGdwcnMpKQorICAg
IFdhc21DYWxsaW5nQ29udmVudGlvbihWZWN0b3I8SlNWYWx1ZVJlZ3M+JiYganNycywgVmVjdG9y
PEZQUlJlZz4mJiBmcHJzLCBWZWN0b3I8R1BSUmVnPiYmIHNjcmF0Y2hlcywgUmVnaXN0ZXJTZXQm
JiBjYWxsZWVTYXZlcywgUmVnaXN0ZXJTZXQmJiBjYWxsZXJTYXZlcykKKyAgICAgICAgOiBqc3JB
cmdzKFdURk1vdmUoanNycykpCiAgICAgICAgICwgZnByQXJncyhXVEZNb3ZlKGZwcnMpKQogICAg
ICAgICAsIHByb2xvZ3VlU2NyYXRjaEdQUnMoV1RGTW92ZShzY3JhdGNoZXMpKQogICAgICAgICAs
IGNhbGxlZVNhdmVSZWdpc3RlcnMoV1RGTW92ZShjYWxsZWVTYXZlcykpCkBAIC04OCwxMCArOTMs
MTEgQEAgcHVibGljOgogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdhc21DYWxsaW5nQ29udmVu
dGlvbik7CiAKIHByaXZhdGU6Ci0gICAgQXJndW1lbnRMb2NhdGlvbiBtYXJzaGFsbExvY2F0aW9u
SW1wbChDYWxsUm9sZSByb2xlLCBjb25zdCBWZWN0b3I8UmVnPiYgcmVnQXJncywgc2l6ZV90JiBj
b3VudCwgc2l6ZV90JiBzdGFja09mZnNldCkgY29uc3QKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBS
ZWdUeXBlPgorICAgIEFyZ3VtZW50TG9jYXRpb24gbWFyc2hhbGxMb2NhdGlvbkltcGwoQ2FsbFJv
bGUgcm9sZSwgY29uc3QgVmVjdG9yPFJlZ1R5cGU+JiByZWdBcmdzLCBzaXplX3QmIGNvdW50LCBz
aXplX3QmIHN0YWNrT2Zmc2V0KSBjb25zdAogICAgIHsKICAgICAgICAgaWYgKGNvdW50IDwgcmVn
QXJncy5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm4gQXJndW1lbnRMb2NhdGlvbjo6cmVnKHJl
Z0FyZ3NbY291bnQrK10pOworICAgICAgICAgICAgcmV0dXJuIEFyZ3VtZW50TG9jYXRpb24geyBy
ZWdBcmdzW2NvdW50KytdIH07CiAKICAgICAgICAgY291bnQrKzsKICAgICAgICAgQXJndW1lbnRM
b2NhdGlvbiByZXN1bHQgPSByb2xlID09IENhbGxSb2xlOjpDYWxsZXIgPyBBcmd1bWVudExvY2F0
aW9uOjpzdGFja0FyZ3VtZW50KHN0YWNrT2Zmc2V0KSA6IEFyZ3VtZW50TG9jYXRpb246OnN0YWNr
KHN0YWNrT2Zmc2V0KTsKQEAgLTExMCw3ICsxMTYsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNl
IFR5cGVLaW5kOjpSZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAg
IGNhc2UgVHlwZUtpbmQ6OlJ0dDoKLSAgICAgICAgICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9u
SW1wbChyb2xlLCBncHJBcmdzLCBncEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KTsKKyAgICAg
ICAgICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBqc3JBcmdzLCBncEFyZ3Vt
ZW50Q291bnQsIHN0YWNrT2Zmc2V0KTsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgogICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6CiAgICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2Nh
dGlvbkltcGwocm9sZSwgZnByQXJncywgZnBBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CkBA
IC0xNTUsOCArMTYxLDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0K
IAotICAgIGNvbnN0IFZlY3RvcjxSZWc+IGdwckFyZ3M7Ci0gICAgY29uc3QgVmVjdG9yPFJlZz4g
ZnByQXJnczsKKyAgICBjb25zdCBWZWN0b3I8SlNWYWx1ZVJlZ3M+IGpzckFyZ3M7CisgICAgY29u
c3QgVmVjdG9yPEZQUlJlZz4gZnByQXJnczsKICAgICBjb25zdCBWZWN0b3I8R1BSUmVnPiBwcm9s
b2d1ZVNjcmF0Y2hHUFJzOwogICAgIGNvbnN0IFJlZ2lzdGVyU2V0IGNhbGxlZVNhdmVSZWdpc3Rl
cnM7CiAgICAgY29uc3QgUmVnaXN0ZXJTZXQgY2FsbGVyU2F2ZVJlZ2lzdGVyczsKQEAgLTE3MSw4
ICsxNzcsOCBAQCBwdWJsaWM6CiAgICAgLy8gV2FzbTo6Q29udGV4dConcyBpbnN0YW5jZS4KICAg
ICBzdGF0aWMgY29uc3RleHByIHB0cmRpZmZfdCBpbnN0YW5jZVN0YWNrT2Zmc2V0ID0gQ2FsbEZy
YW1lU2xvdDo6dGhpc0FyZ3VtZW50ICogc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKTsKIAotICAgIEpT
Q2FsbGluZ0NvbnZlbnRpb24oVmVjdG9yPFJlZz4mJiBncHJzLCBWZWN0b3I8UmVnPiYmIGZwcnMs
IFJlZ2lzdGVyU2V0JiYgY2FsbGVlU2F2ZXMsIFJlZ2lzdGVyU2V0JiYgY2FsbGVyU2F2ZXMpCi0g
ICAgICAgIDogZ3ByQXJncyhXVEZNb3ZlKGdwcnMpKQorICAgIEpTQ2FsbGluZ0NvbnZlbnRpb24o
VmVjdG9yPEpTVmFsdWVSZWdzPiYmIGdwcnMsIFZlY3RvcjxGUFJSZWc+JiYgZnBycywgUmVnaXN0
ZXJTZXQmJiBjYWxsZWVTYXZlcywgUmVnaXN0ZXJTZXQmJiBjYWxsZXJTYXZlcykKKyAgICAgICAg
OiBqc3JBcmdzKFdURk1vdmUoZ3BycykpCiAgICAgICAgICwgZnByQXJncyhXVEZNb3ZlKGZwcnMp
KQogICAgICAgICAsIGNhbGxlZVNhdmVSZWdpc3RlcnMoV1RGTW92ZShjYWxsZWVTYXZlcykpCiAg
ICAgICAgICwgY2FsbGVyU2F2ZVJlZ2lzdGVycyhXVEZNb3ZlKGNhbGxlclNhdmVzKSkKQEAgLTE4
MCwxMCArMTg2LDExIEBAIHB1YmxpYzoKIAogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEpTQ2Fs
bGluZ0NvbnZlbnRpb24pOwogcHJpdmF0ZToKLSAgICBBcmd1bWVudExvY2F0aW9uIG1hcnNoYWxs
TG9jYXRpb25JbXBsKENhbGxSb2xlIHJvbGUsIGNvbnN0IFZlY3RvcjxSZWc+JiByZWdBcmdzLCBz
aXplX3QmIGNvdW50LCBzaXplX3QmIHN0YWNrT2Zmc2V0KSBjb25zdAorICAgIHRlbXBsYXRlIDx0
eXBlbmFtZSBSZWdUeXBlPgorICAgIEFyZ3VtZW50TG9jYXRpb24gbWFyc2hhbGxMb2NhdGlvbklt
cGwoQ2FsbFJvbGUgcm9sZSwgY29uc3QgVmVjdG9yPFJlZ1R5cGU+JiByZWdBcmdzLCBzaXplX3Qm
IGNvdW50LCBzaXplX3QmIHN0YWNrT2Zmc2V0KSBjb25zdAogICAgIHsKICAgICAgICAgaWYgKGNv
dW50IDwgcmVnQXJncy5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm4gQXJndW1lbnRMb2NhdGlv
bjo6cmVnKHJlZ0FyZ3NbY291bnQrK10pOworICAgICAgICAgICAgcmV0dXJuIEFyZ3VtZW50TG9j
YXRpb24geyByZWdBcmdzW2NvdW50KytdIH07CiAKICAgICAgICAgY291bnQrKzsKICAgICAgICAg
QXJndW1lbnRMb2NhdGlvbiByZXN1bHQgPSByb2xlID09IENhbGxSb2xlOjpDYWxsZXIgPyBBcmd1
bWVudExvY2F0aW9uOjpzdGFja0FyZ3VtZW50KHN0YWNrT2Zmc2V0KSA6IEFyZ3VtZW50TG9jYXRp
b246OnN0YWNrKHN0YWNrT2Zmc2V0KTsKQEAgLTIwMSw3ICsyMDgsNyBAQCBwcml2YXRlOgogICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJl
ZjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKLSAgICAgICAgICAgIHJldHVybiBt
YXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBncHJBcmdzLCBncEFyZ3VtZW50Q291bnQsIHN0YWNr
T2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBq
c3JBcmdzLCBncEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KTsKICAgICAgICAgY2FzZSBUeXBl
S2luZDo6RjMyOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6CiAgICAgICAgICAgICByZXR1
cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwgZnByQXJncywgZnBBcmd1bWVudENvdW50LCBz
dGFja09mZnNldCk7CkBAIC0yMjQsMTIgKzIzMSwxMiBAQCBwdWJsaWM6CiAgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgc2lnbmF0dXJlLmFzPEZ1bmN0aW9uU2lnbmF0dXJlPigpLT5hcmd1
bWVudENvdW50KCk7ICsraSkKICAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQobWFyc2hhbGxMb2Nh
dGlvbihyb2xlLCBzaWduYXR1cmUuYXM8RnVuY3Rpb25TaWduYXR1cmU+KCktPmFyZ3VtZW50VHlw
ZShpKSwgZ3BBcmd1bWVudENvdW50LCBmcEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KSk7CiAK
LSAgICAgICAgVmVjdG9yPEFyZ3VtZW50TG9jYXRpb24sIDE+IHJlc3VsdHMgeyBBcmd1bWVudExv
Y2F0aW9uOjpyZWcoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpIH07CisgICAgICAgIFZlY3RvcjxB
cmd1bWVudExvY2F0aW9uLCAxPiByZXN1bHRzIHsgQXJndW1lbnRMb2NhdGlvbiB7IEpTUkluZm86
OnJldHVyblZhbHVlSlNSIH0gfTsKICAgICAgICAgcmV0dXJuIENhbGxJbmZvcm1hdGlvbihXVEZN
b3ZlKHBhcmFtcyksIFdURk1vdmUocmVzdWx0cyksIHN0YWNrT2Zmc2V0KTsKICAgICB9CiAKLSAg
ICBjb25zdCBWZWN0b3I8UmVnPiBncHJBcmdzOwotICAgIGNvbnN0IFZlY3RvcjxSZWc+IGZwckFy
Z3M7CisgICAgY29uc3QgVmVjdG9yPEpTVmFsdWVSZWdzPiBqc3JBcmdzOworICAgIGNvbnN0IFZl
Y3RvcjxGUFJSZWc+IGZwckFyZ3M7CiAgICAgY29uc3QgUmVnaXN0ZXJTZXQgY2FsbGVlU2F2ZVJl
Z2lzdGVyczsKICAgICBjb25zdCBSZWdpc3RlclNldCBjYWxsZXJTYXZlUmVnaXN0ZXJzOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaAppbmRleCA5YmVhNDQ4NjQ3ODAu
LmE4ZGExMjAwNDFhZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUZvcm1hdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaApA
QCAtNDQyLDcgKzQ0Miw5IEBAIHN0cnVjdCBFbnRyeXBvaW50IHsKIHN0cnVjdCBJbnRlcm5hbEZ1
bmN0aW9uIHsKICAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CiAgICAgVmVjdG9y
PENvZGVMb2NhdGlvbkRhdGFMYWJlbFB0cjxXYXNtRW50cnlQdHJUYWc+PiBjYWxsZWVNb3ZlTG9j
YXRpb25zOworI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9CM0pJVCkKICAgICBTdGFja01hcHMgc3Rh
Y2ttYXBzOworI2VuZGlmCiAgICAgVmVjdG9yPFVubGlua2VkSGFuZGxlckluZm8+IGV4Y2VwdGlv
bkhhbmRsZXJzOwogICAgIEVudHJ5cG9pbnQgZW50cnlwb2ludDsKICAgICB1bnNpZ25lZCBvc3JF
bnRyeVNjcmF0Y2hCdWZmZXJTaXplIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21JbmRleE9yTmFtZS5jcHAKaW5kZXggNDEyMGFlNmE5NDk0Li5mYjIxYzkyYmY4MWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFtZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcApA
QCAtMzAsMTYgKzMwLDIzIEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKIElu
ZGV4T3JOYW1lOjpJbmRleE9yTmFtZShJbmRleCBpbmRleCwgc3RkOjpwYWlyPGNvbnN0IE5hbWUq
LCBSZWZQdHI8TmFtZVNlY3Rpb24+PiYmIG5hbWUpCiB7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAg
ICBzdGF0aWNfYXNzZXJ0KHNpemVvZihtX2luZGV4TmFtZS5pbmRleCkgPT0gc2l6ZW9mKG1faW5k
ZXhOYW1lLm5hbWUpLCAiYml0LXRhZ2dpbmcgZGVwZW5kcyBvbiBzaXplcyBiZWluZyBlcXVhbCIp
OwotCi0gICAgaWYgKChpbmRleCAmIGFsbFRhZ3MpIHx8IChiaXR3aXNlX2Nhc3Q8SW5kZXg+KG5h
bWUuZmlyc3QpICYgYWxsVGFncykpCi0gICAgICAgICp0aGlzID0gSW5kZXhPck5hbWUoKTsKLSAg
ICBlbHNlIHsKLSAgICAgICAgaWYgKG5hbWUuZmlyc3QpCi0gICAgICAgICAgICBtX2luZGV4TmFt
ZS5uYW1lID0gbmFtZS5maXJzdDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9pbmRleE5h
bWUuaW5kZXggPSBpbmRleFRhZyB8IGluZGV4OworICAgIEFTU0VSVCghKGluZGV4ICYgYWxsVGFn
cykpOworICAgIEFTU0VSVCghKGJpdHdpc2VfY2FzdDxJbmRleD4obmFtZS5maXJzdCkgJiBhbGxU
YWdzKSk7CisgICAgaWYgKG5hbWUuZmlyc3QpCisgICAgICAgIG1faW5kZXhOYW1lLm5hbWUgPSBu
YW1lLmZpcnN0OworICAgIGVsc2UKKyAgICAgICAgbV9pbmRleE5hbWUuaW5kZXggPSBpbmRleFRh
ZyB8IGluZGV4OworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBpZiAobmFtZS5maXJzdCkg
eworICAgICAgICBtX2luZGV4TmFtZS5uYW1lID0gbmFtZS5maXJzdDsKKyAgICAgICAgbV9raW5k
ID0gS2luZDo6TmFtZTsKKyAgICB9IGVsc2UgeworICAgICAgICBtX2luZGV4TmFtZS5pbmRleCA9
IGluZGV4OworICAgICAgICBtX2tpbmQgPSBLaW5kOjpJbmRleDsKICAgICB9CisjZW5kaWYKICAg
ICBtX25hbWVTZWN0aW9uID0gV1RGTW92ZShuYW1lLnNlY29uZCk7CiB9CiAKQEAgLTQ5LDggKzU2
LDggQEAgU3RyaW5nIG1ha2VTdHJpbmcoY29uc3QgSW5kZXhPck5hbWUmIGlvbikKICAgICAgICAg
cmV0dXJuICJ3YXNtLXN0dWIiX3M7CiAgICAgY29uc3QgU3RyaW5nIG1vZHVsZU5hbWUgPSBpb24u
bmFtZVNlY3Rpb24oKS0+bW9kdWxlTmFtZS5zaXplKCkgPyBTdHJpbmcoaW9uLm5hbWVTZWN0aW9u
KCktPm1vZHVsZU5hbWUuZGF0YSgpLCBpb24ubmFtZVNlY3Rpb24oKS0+bW9kdWxlTmFtZS5zaXpl
KCkpIDogU3RyaW5nKGlvbi5uYW1lU2VjdGlvbigpLT5tb2R1bGVIYXNoLmRhdGEoKSwgaW9uLm5h
bWVTZWN0aW9uKCktPm1vZHVsZUhhc2guc2l6ZSgpKTsKICAgICBpZiAoaW9uLmlzSW5kZXgoKSkK
LSAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcobW9kdWxlTmFtZSwgIi53YXNtLWZ1bmN0aW9uWyIs
IFN0cmluZzo6bnVtYmVyKGlvbi5tX2luZGV4TmFtZS5pbmRleCAmIH5JbmRleE9yTmFtZTo6aW5k
ZXhUYWcpLCAnXScpOwotICAgIHJldHVybiBtYWtlU3RyaW5nKG1vZHVsZU5hbWUsICIud2FzbS1m
dW5jdGlvblsiLCBTdHJpbmcoaW9uLm1faW5kZXhOYW1lLm5hbWUtPmRhdGEoKSwgaW9uLm1faW5k
ZXhOYW1lLm5hbWUtPnNpemUoKSksICddJyk7CisgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKG1v
ZHVsZU5hbWUsICIud2FzbS1mdW5jdGlvblsiLCBTdHJpbmc6Om51bWJlcihpb24uaW5kZXgoKSks
ICddJyk7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcobW9kdWxlTmFtZSwgIi53YXNtLWZ1bmN0aW9u
WyIsIFN0cmluZyhpb24ubmFtZSgpLT5kYXRhKCksIGlvbi5uYW1lKCktPnNpemUoKSksICddJyk7
CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21JbmRleE9yTmFtZS5oCmluZGV4IDVlZWVmYzg4YWY3Ni4uMmQ5MDMwMTE4Zjhj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaApAQCAt
NDAsMTQgKzQwLDY3IEBAIHN0cnVjdCBOYW1lU2VjdGlvbjsKIHN0cnVjdCBJbmRleE9yTmFtZSB7
CiAgICAgdHlwZWRlZiBzaXplX3QgSW5kZXg7CiAKLSAgICBJbmRleE9yTmFtZSgpIHsgbV9pbmRl
eE5hbWUuaW5kZXggPSBlbXB0eVRhZzsgfQotICAgIEluZGV4T3JOYW1lKEluZGV4LCBzdGQ6OnBh
aXI8Y29uc3QgTmFtZSosIFJlZlB0cjxOYW1lU2VjdGlvbj4+JiYpOwotICAgIGJvb2wgaXNFbXB0
eSgpIGNvbnN0IHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxJbmRleD4obV9pbmRleE5hbWUpICYgZW1w
dHlUYWc7IH0KLSAgICBib29sIGlzSW5kZXgoKSBjb25zdCB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8
SW5kZXg+KG1faW5kZXhOYW1lKSAmIGluZGV4VGFnOyB9Ci0gICAgYm9vbCBpc05hbWUoKSBjb25z
dCB7IHJldHVybiAhKGlzRW1wdHkoKSB8fCBpc05hbWUoKSk7IH0KLSAgICBOYW1lU2VjdGlvbiog
bmFtZVNlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX25hbWVTZWN0aW9uLmdldCgpOyB9Citwcml2
YXRlOgorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgZW51bSBjbGFzcyBLaW5kIDogdWludDhf
dCB7CisgICAgICAgIEVtcHR5LAorICAgICAgICBJbmRleCwKKyAgICAgICAgTmFtZQorICAgIH07
CisjZW5kaWYKK3B1YmxpYzoKIAotICAgIGZyaWVuZCBTdHJpbmcgbWFrZVN0cmluZyhjb25zdCBJ
bmRleE9yTmFtZSYpOworICAgIEluZGV4T3JOYW1lKCkKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2
NCkKKyAgICAgICAgbV9pbmRleE5hbWUuaW5kZXggPSBlbXB0eVRhZzsKKyNlbGlmIFVTRShKU1ZB
TFVFMzJfNjQpCisgICAgICAgIG1fa2luZCA9IEtpbmQ6OkVtcHR5OworI2VuZGlmCisgICAgfQor
CisgICAgSW5kZXhPck5hbWUoSW5kZXgsIHN0ZDo6cGFpcjxjb25zdCBOYW1lKiwgUmVmUHRyPE5h
bWVTZWN0aW9uPj4mJik7CisKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdAorICAgIHsKKyNpZiBV
U0UoSlNWQUxVRTY0KQorICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PEluZGV4PihtX2luZGV4
TmFtZSkgJiBlbXB0eVRhZzsKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHJldHVy
biBtX2tpbmQgPT0gS2luZDo6RW1wdHk7CisjZW5kaWYKKyAgICB9CisKKyAgICBib29sIGlzSW5k
ZXgoKSBjb25zdAorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICByZXR1cm4gYml0
d2lzZV9jYXN0PEluZGV4PihtX2luZGV4TmFtZSkgJiBpbmRleFRhZzsKKyNlbGlmIFVTRShKU1ZB
TFVFMzJfNjQpCisgICAgICAgIHJldHVybiBtX2tpbmQgPT0gS2luZDo6SW5kZXg7CisjZW5kaWYK
KyAgICB9CisKKyAgICBib29sIGlzTmFtZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4g
IShpc0VtcHR5KCkgfHwgaXNJbmRleCgpKTsKKyAgICB9CisKKyAgICBJbmRleCBpbmRleCgpIGNv
bnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNJbmRleCgpKTsKKyNpZiBVU0UoSlNWQUxVRTY0
KQorICAgICAgICByZXR1cm4gbV9pbmRleE5hbWUuaW5kZXggJiB+aW5kZXhUYWc7CisjZWxpZiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgICAgICByZXR1cm4gbV9pbmRleE5hbWUuaW5kZXg7CisjZW5k
aWYKKyAgICB9CisKKyAgICBjb25zdCBOYW1lKiBuYW1lKCkgY29uc3QKKyAgICB7CisgICAgICAg
IEFTU0VSVChpc05hbWUoKSk7CisgICAgICAgIHJldHVybiBtX2luZGV4TmFtZS5uYW1lOworICAg
IH0KKworICAgIE5hbWVTZWN0aW9uKiBuYW1lU2VjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbmFt
ZVNlY3Rpb24uZ2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICB1bmlvbiB7CkBAIC01NiwxMCArMTA5
LDE1IEBAIHByaXZhdGU6CiAgICAgfSBtX2luZGV4TmFtZTsKICAgICBSZWZQdHI8TmFtZVNlY3Rp
b24+IG1fbmFtZVNlY3Rpb247CiAKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgIC8vIFVzZSB0aGUg
dG9wIGJpdHMgYXMgdGFncy4gTmVpdGhlciBwb2ludGVycyBub3IgdGhlIGZ1bmN0aW9uIGluZGV4
IHNwYWNlIHNob3VsZCB1c2UgdGhlbS4KICAgICBzdGF0aWMgY29uc3RleHByIEluZGV4IGluZGV4
VGFnID0gMXVsbCA8PCAoQ0hBUl9CSVQgKiBzaXplb2YoSW5kZXgpIC0gMSk7CiAgICAgc3RhdGlj
IGNvbnN0ZXhwciBJbmRleCBlbXB0eVRhZyA9IDF1bGwgPDwgKENIQVJfQklUICogc2l6ZW9mKElu
ZGV4KSAtIDIpOwogICAgIHN0YXRpYyBjb25zdGV4cHIgSW5kZXggYWxsVGFncyA9IGluZGV4VGFn
IHwgZW1wdHlUYWc7CisjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIC8vIFVzZSBhbiBleHBs
aWNpdCB0YWcgYXMgcG9pbnRlcnMgbWlnaHQgaGF2ZSBoaWdoIGJpdHMgc2V0CisgICAgS2luZCBt
X2tpbmQ7CisjZW5kaWYKIH07CiAKIFN0cmluZyBtYWtlU3RyaW5nKGNvbnN0IEluZGV4T3JOYW1l
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2Uu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5oCmluZGV4IGU2ZGIz
YTNhMDhjNC4uYmFmMjhjOTdmZTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtSW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
SW5zdGFuY2UuaApAQCAtMTA2LDggKzEwNiwyMiBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVD
YWNoZWRNZW1vcnkoKQogICAgIHsKICAgICAgICAgaWYgKG1fbWVtb3J5ICE9IG51bGxwdHIpIHsK
LSAgICAgICAgICAgIG1fY2FjaGVkTWVtb3J5ID0gQ2FnZWRQdHI8R2lnYWNhZ2U6OlByaW1pdGl2
ZSwgdm9pZCwgdGFnQ2FnZWRQdHI+KG1lbW9yeSgpLT5tZW1vcnkoKSwgbWVtb3J5KCktPmJvdW5k
c0NoZWNraW5nU2l6ZSgpKTsKLSAgICAgICAgICAgIG1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXpl
ID0gbWVtb3J5KCktPmJvdW5kc0NoZWNraW5nU2l6ZSgpOworICAgICAgICAgICAgLy8gTm90ZTog
SW4gTWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcsIG1hcHBlZENhcGFjaXR5KCkgPT0gc2l6ZSgp
LgorICAgICAgICAgICAgLy8gV2UgYXNzZXJ0IHRoaXMgaW4gdGhlIGNvbnN0cnVjdG9yIG9mIE1l
bW9yeUhhbmRsZS4KKyNpZiBDUFUoQVJNKQorICAgICAgICAgICAgLy8gU2hhcmVkIG1lbW9yeSBy
ZXF1aXJlcyBzaWduYWxpbmcgbWVtb3J5IHdoaWNoIGlzIG5vdCBhdmFpbGFibGUKKyAgICAgICAg
ICAgIC8vIG9uIEFSTXY3IHlldC4gSW4gb3JkZXIgdG8gZ2V0IG1vcmUgb2YgdGhlIHRlc3Qgc3Vp
dGUgdG8gcnVuLCB3ZQorICAgICAgICAgICAgLy8gY2FuIHN0aWxsIHVzZSBhIHNoYXJlZCBtZW1v
cnkgYnkgdXNpbmcgYm91bmRzIGNoZWNraW5nLCBieSB1c2luZworICAgICAgICAgICAgLy8gdGhl
IGFjdHVhbCBzaXplIGhlcmUsIGJ1dCB0aGlzIG1lYW5zIHdlIGNhbm5vdCBncm93IHRoZSBzaGFy
ZWQKKyAgICAgICAgICAgIC8vIG1lbW9yeSBzYWZlbHkgaW4gY2FzZSBpdCdzIHVzZWQgYnkgbXVs
dGlwbGUgdGhyZWFkcy4gT25jZSB0aGUKKyAgICAgICAgICAgIC8vIHNpZ25hbCBoYW5kbGVyIGFy
ZSBhdmFpbGFibGUsIG1fY2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplIHNob3VsZAorICAgICAgICAg
ICAgLy8gYmUgc2V0IHRvIHVzZSBtZW1vcnkoKS0+bWFwcGVkQ2FwYWNpdHkoKSBsaWtlIG90aGVy
IHBsYXRmb3JtcywKKyAgICAgICAgICAgIC8vIGFuZCBhdCB0aGF0IHBvaW50IGdyb3dpbmcgdGhl
IHNoYXJlZCBtZW1vcnkgd2lsbCBiZSBzYWZlLgorICAgICAgICAgICAgbV9jYWNoZWRCb3VuZHND
aGVja2luZ1NpemUgPSBtZW1vcnkoKS0+c2l6ZSgpOworI2Vsc2UKKyAgICAgICAgICAgIG1fY2Fj
aGVkQm91bmRzQ2hlY2tpbmdTaXplID0gbWVtb3J5KCktPm1hcHBlZENhcGFjaXR5KCk7CisjZW5k
aWYKKyAgICAgICAgICAgIG1fY2FjaGVkTWVtb3J5ID0gQ2FnZWRQdHI8R2lnYWNhZ2U6OlByaW1p
dGl2ZSwgdm9pZCwgdGFnQ2FnZWRQdHI+KG1lbW9yeSgpLT5tZW1vcnkoKSwgbV9jYWNoZWRCb3Vu
ZHNDaGVja2luZ1NpemUpOwogICAgICAgICAgICAgQVNTRVJUKG1lbW9yeSgpLT5tZW1vcnkoKSA9
PSBjYWNoZWRNZW1vcnkoKSk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcAppbmRleCBkMzczZmFlZTgxNjgu
LjVjMmIwMGVhNjQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUxMSW50R2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
TExJbnRHZW5lcmF0b3IuY3BwCkBAIC0zNDEsNyArMzQxLDcgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIHJldHVybiBtX25vcm1hbGl6ZWRBcmd1bWVudHNbaW5kZXhdOwogCiAgICAgICAgIGNvbnN0
IGF1dG8mIGNhbGxpbmdDb252ZW50aW9uID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCk7Ci0gICAg
ICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZ3ByQXJncy5z
aXplKCk7CisgICAgICAgIGNvbnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRp
b24uanNyQXJncy5zaXplKCk7CiAgICAgICAgIGNvbnN0IHVpbnQzMl90IGZwckNvdW50ID0gY2Fs
bGluZ0NvbnZlbnRpb24uZnByQXJncy5zaXplKCk7CiAgICAgICAgIHJldHVybiB2aXJ0dWFsUmVn
aXN0ZXJGb3JMb2NhbChpbmRleCAtIG1fY29kZUJsb2NrLT5tX251bUFyZ3VtZW50cyArIGdwckNv
dW50ICsgZnByQ291bnQgKyBudW1iZXJPZkxMSW50Q2FsbGVlU2F2ZVJlZ2lzdGVycyk7CiAgICAg
fQpAQCAtNTk1LDcgKzU5NSw3IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlv
bkZvckNhbGxlcihjb25zdCBGdW5jdGlvblNpZ25hdHVyZSYgc2lnbmF0dXJlCiAgICAgY29uc3Qg
YXV0byBpbml0aWFsU3RhY2tTaXplID0gbV9zdGFja1NpemU7CiAKICAgICBjb25zdCBhdXRvJiBj
YWxsaW5nQ29udmVudGlvbiA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpOwotICAgIGNvbnN0IHVp
bnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZ3ByQXJncy5zaXplKCk7CisgICAg
Y29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5qc3JBcmdzLnNpemUo
KTsKICAgICBjb25zdCB1aW50MzJfdCBmcHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmZwckFy
Z3Muc2l6ZSgpOwogCiAgICAgdWludDMyX3Qgc3RhY2tDb3VudCA9IDA7CkBAIC03NDMsNyArNzQz
LDcgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVlKGNvbnN0
IEZ1bmN0aW9uU2lnbmF0dXJlJiBzaWduYXR1cmUKICAgICBtX3Jlc3VsdHMucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShzaWduYXR1cmUucmV0dXJuQ291bnQoKSk7CiAKICAgICBjb25zdCBhdXRvJiBj
YWxsaW5nQ29udmVudGlvbiA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpOwotICAgIGNvbnN0IHVp
bnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZ3ByQXJncy5zaXplKCk7CisgICAg
Y29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5qc3JBcmdzLnNpemUo
KTsKICAgICBjb25zdCB1aW50MzJfdCBmcHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmZwckFy
Z3Muc2l6ZSgpOwogCiAgICAgdWludDMyX3QgZ3BySW5kZXggPSAwOwpAQCAtNzkxLDcgKzc5MSw3
IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmFkZEFyZ3VtZW50cyhjb25zdCBUeXBlRGVmaW5pdGlv
biYgc2lnbmF0dXJlKSAtPiBQYXJ0aWFsUmVzCiAgICAgbV9ub3JtYWxpemVkQXJndW1lbnRzLnJl
c2l6ZShtX2NvZGVCbG9jay0+bV9udW1Bcmd1bWVudHMpOwogCiAgICAgY29uc3QgYXV0byYgY2Fs
bGluZ0NvbnZlbnRpb24gPSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKTsKLSAgICBjb25zdCB1aW50
MzJfdCBncHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmdwckFyZ3Muc2l6ZSgpOworICAgIGNv
bnN0IHVpbnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uanNyQXJncy5zaXplKCk7
CiAgICAgY29uc3QgdWludDMyX3QgZnByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5mcHJBcmdz
LnNpemUoKTsKICAgICBjb25zdCB1aW50MzJfdCBtYXhHUFJJbmRleCA9IGdwckNvdW50OwogICAg
IGNvbnN0IHVpbnQzMl90IG1heEZQUkluZGV4ID0gZ3ByQ291bnQgKyBmcHJDb3VudDsKQEAgLTk3
NCw3ICs5NzQsNyBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjphZGRMb29wKEJsb2NrU2lnbmF0dXJl
IHNpZ25hdHVyZSwgU3RhY2smIGVuY2xvc2luZ1N0YWNrLCBDbwogICAgICAgICBvc3JFbnRyeURh
dGEuYXBwZW5kKG1fbm9ybWFsaXplZEFyZ3VtZW50c1tpXSk7CiAKICAgICBjb25zdCBhdXRvJiBj
YWxsaW5nQ29udmVudGlvbiA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpOwotICAgIGNvbnN0IHVp
bnQzMl90IGdwckNvdW50ID0gY2FsbGluZ0NvbnZlbnRpb24uZ3ByQXJncy5zaXplKCk7CisgICAg
Y29uc3QgdWludDMyX3QgZ3ByQ291bnQgPSBjYWxsaW5nQ29udmVudGlvbi5qc3JBcmdzLnNpemUo
KTsKICAgICBjb25zdCB1aW50MzJfdCBmcHJDb3VudCA9IGNhbGxpbmdDb252ZW50aW9uLmZwckFy
Z3Muc2l6ZSgpOwogICAgIGZvciAodWludDMyX3QgaSA9IGdwckNvdW50ICsgZnByQ291bnQgKyBu
dW1iZXJPZkxMSW50Q2FsbGVlU2F2ZVJlZ2lzdGVyczsgaSA8IG1fY29kZUJsb2NrLT5tX251bVZh
cnM7IGkrKykKICAgICAgICAgb3NyRW50cnlEYXRhLmFwcGVuZCh2aXJ0dWFsUmVnaXN0ZXJGb3JM
b2NhbChpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJ
bnRQbGFuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3Bw
CmluZGV4IDhiNDM2ZDJkY2Y1Ni4uZTM0ZjQ0Y2FjYWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcApAQCAtMTE5LDEyICsxMTksMTUgQEAgdm9pZCBM
TEludFBsYW46OmRpZENvbXBsZXRlQ29tcGlsYXRpb24oKQogICAgICAgICAgICAgZW50cnlwb2lu
dHNbaV0gPSBqaXQubGFiZWwoKTsKICNpZiBDUFUoWDg2XzY0KQogICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzIGNhbGxlZVNsb3QoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdp
c3RlciwgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVn
aXN0ZXIpKSAtIHNpemVvZihDUFVSZWdpc3RlcikpOwotI2VsaWYgQ1BVKEFSTTY0KSB8fCBDUFUo
UklTQ1Y2NCkKKyNlbGlmIENQVShBUk02NCkgfHwgQ1BVKFJJU0NWNjQpIHx8IENQVShBUk0pCiAg
ICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MgY2FsbGVlU2xvdChDQ2FsbEhlbHBlcnM6
OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBDYWxsRnJhbWVTbG90OjpjYWxsZWUgKiBzdGF0aWNfY2Fz
dDxpbnQ+KHNpemVvZihSZWdpc3RlcikpIC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKTsKICNl
bHNlCiAjZXJyb3IgVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlLgogI2VuZGlmCi0gICAgICAgICAg
ICBqaXQuc3RvcmVQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKENhbGxlZUJpdHM6OmJv
eFdhc20obV9jYWxsZWVzVmVjdG9yW2ldLnB0cigpKSksIGNhbGxlZVNsb3QpOworICAgICAgICAg
ICAgaml0LnN0b3JlUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihDYWxsZWVCaXRzOjpi
b3hXYXNtKG1fY2FsbGVlc1ZlY3RvcltpXS5wdHIoKSkpLCBjYWxsZWVTbG90LndpdGhPZmZzZXQo
UGF5bG9hZE9mZnNldCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICBqaXQu
c3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpXYXNtVGFnKSwgY2Fs
bGVlU2xvdC53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworI2VuZGlmCiAgICAgICAgICAgICBqdW1w
c1tpXSA9IGppdC5qdW1wKCk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtTWVtb3J5LmNwcAppbmRleCA0NDA3NTk1MmYwMDcuLjI1NTJlZmYxZDkxYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5jcHAKQEAgLTQyLDYgKzQyLDcgQEAK
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKICNpbmNsdWRlIDxjc3RyaW5nPgorI2luY2x1ZGUg
PGxpbWl0cz4KICNpbmNsdWRlIDxtdXRleD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBX
YXNtIHsKQEAgLTk4LDExICs5OSw5IEBAIGNsYXNzIE1lbW9yeU1hbmFnZXIgewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1lbW9yeU1hbmFn
ZXIpOwogcHVibGljOgotICAgIE1lbW9yeU1hbmFnZXIoKQotICAgICAgICA6IG1fbWF4RmFzdE1l
bW9yeUNvdW50KE9wdGlvbnM6Om1heE51bVdlYkFzc2VtYmx5RmFzdE1lbW9yaWVzKCkpCi0gICAg
ewotICAgIH0KLSAgICAKKyAgICBNZW1vcnlNYW5hZ2VyKCkgPSBkZWZhdWx0OworCisjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgTWVtb3J5UmVzdWx0IHRyeUFs
bG9jYXRlRmFzdE1lbW9yeSgpCiAgICAgewogICAgICAgICBNZW1vcnlSZXN1bHQgcmVzdWx0ID0g
WyZdIHsKQEAgLTEyNSw3ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIAogICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgIH0KLSAgICAKKwogICAgIHZvaWQgZnJlZUZhc3RNZW1vcnkodm9pZCog
YmFzZVB0cikKICAgICB7CiAgICAgICAgIHsKQEAgLTEzNiw2ICsxMzUsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIAogICAgICAgICBkYXRhTG9nTG5JZihPcHRpb25zOjpsb2dXZWJBc3NlbWJseU1lbW9y
eSgpLCAiRnJlZWQgdmlydHVhbDsgc3RhdGU6ICIsICp0aGlzKTsKICAgICB9CisjZW5kaWYKIAog
ICAgIE1lbW9yeVJlc3VsdCB0cnlBbGxvY2F0ZUdyb3dhYmxlQm91bmRzQ2hlY2tpbmdNZW1vcnko
c2l6ZV90IG1hcHBlZENhcGFjaXR5KQogICAgIHsKQEAgLTE3MCwxMSArMTcwLDEzIEBAIHB1Ymxp
YzoKICAgICB7CiAgICAgICAgIC8vIE5PVEU6IFRoaXMgY2FuIGJlIGNhbGxlZCBmcm9tIGEgc2ln
bmFsIGhhbmRsZXIsIGJ1dCBvbmx5IGFmdGVyIHdlIHByb3ZlZCB0aGF0IHdlJ3JlIGluIEpJVCBj
b2RlIG9yIFdhc21MTEludCBjb2RlLgogICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07
CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgICAgIGZvciAo
dm9pZCogbWVtb3J5IDogbV9mYXN0TWVtb3JpZXMpIHsKICAgICAgICAgICAgIGNoYXIqIHN0YXJ0
ID0gc3RhdGljX2Nhc3Q8Y2hhcio+KG1lbW9yeSk7CiAgICAgICAgICAgICBpZiAoc3RhcnQgPD0g
YWRkcmVzcyAmJiBhZGRyZXNzIDw9IHN0YXJ0ICsgTWVtb3J5OjpmYXN0TWFwcGVkQnl0ZXMoKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQorI2VuZGlmCiAgICAgICAg
IHVpbnRwdHJfdCBhZGRyZXNzVmFsdWUgPSBiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihhZGRyZXNz
KTsKICAgICAgICAgYXV0byBpdGVyYXRvciA9IHN0ZDo6dXBwZXJfYm91bmQobV9ncm93YWJsZUJv
dW5kc0NoZWNraW5nTWVtb3JpZXMuYmVnaW4oKSwgbV9ncm93YWJsZUJvdW5kc0NoZWNraW5nTWVt
b3JpZXMuZW5kKCksIHN0ZDo6bWFrZV9wYWlyKGFkZHJlc3NWYWx1ZSwgMCksCiAgICAgICAgICAg
ICBbXShzdGQ6OnBhaXI8dWludHB0cl90LCBzaXplX3Q+IGEsIHN0ZDo6cGFpcjx1aW50cHRyX3Qs
IHNpemVfdD4gYikgewpAQCAtMTkxLDcgKzE5MywxMiBAQCBwdWJsaWM6CiAgICAgLy8gV2UgYWxs
b3cgcGVvcGxlIHRvICJjb21taXQiIG1vcmUgd2FzbSBtZW1vcnkgdGhhbiB0aGVyZSBpcyBvbiB0
aGUgc3lzdGVtIHNpbmNlIG1vc3Qgb2YgdGhlIHRpbWUKICAgICAvLyBwZW9wbGUgZG9uJ3QgYWN0
dWFsbHkgd3JpdGUgdG8gbW9zdCBvZiB0aGF0IG1lbW9yeS4gVGhlcmUgaXMgc29tZSBjaGFuY2Ug
dGhhdCB0aGlzIGdldHMgdXMKICAgICAvLyBKZXRTYW1tZWQgYnV0IHRoYXQncyBwb3NzaWJsZSBh
bnl3YXkuCi0gICAgaW5saW5lIHNpemVfdCBtZW1vcnlMaW1pdCgpIGNvbnN0IHsgcmV0dXJuIHJh
bVNpemUoKSAqIDM7IH0KKyAgICBpbmxpbmUgc2l6ZV90IG1lbW9yeUxpbWl0KCkgY29uc3QKKyAg
ICB7CisgICAgICAgIGlmIChwcm9kdWN0T3ZlcmZsb3dzPHNpemVfdD4ocmFtU2l6ZSgpLCAgMykp
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKTsK
KyAgICAgICAgcmV0dXJuIHJhbVNpemUoKSAqIDM7CisgICAgfQogCiAgICAgLy8gRklYTUU6IElk
ZWFsbHksIGJtYWxsb2Mgd291bGQgaGF2ZSB0aGlzIGtpbmQgb2YgbWVjaGFuaXNtLiBUaGVuLCB3
ZSB3b3VsZCBqdXN0IGZvcndhcmQgdG8gdGhhdAogICAgIC8vIG1lY2hhbmlzbSBoZXJlLgpAQCAt
MjI3LDEzICsyMzQsMTkgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVh
bSYgb3V0KSBjb25zdAogICAgIHsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01F
TU9SWSkKICAgICAgICAgb3V0LnByaW50KCJmYXN0IG1lbW9yaWVzID0gICIsIG1fZmFzdE1lbW9y
aWVzLnNpemUoKSwgIi8iLCBtX21heEZhc3RNZW1vcnlDb3VudCwgIiwgYnl0ZXMgPSAiLCBtX3Bo
eXNpY2FsQnl0ZXMsICIvIiwgbWVtb3J5TGltaXQoKSk7CisjZWxzZQorICAgICAgICBvdXQucHJp
bnQoImZhc3QgbWVtb3JpZXMgPSBOLkEuLCBieXRlcyA9ICIsIG1fcGh5c2ljYWxCeXRlcywgIi8i
LCBtZW1vcnlMaW1pdCgpKTsKKyNlbmRpZgogICAgIH0KICAgICAKIHByaXZhdGU6CiAgICAgTG9j
ayBtX2xvY2s7Ci0gICAgdW5zaWduZWQgbV9tYXhGYXN0TWVtb3J5Q291bnQgeyAwIH07CisjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCisgICAgdW5zaWduZWQgbV9tYXhG
YXN0TWVtb3J5Q291bnQgeyBPcHRpb25zOjptYXhOdW1XZWJBc3NlbWJseUZhc3RNZW1vcmllcygp
IH07CiAgICAgVmVjdG9yPHZvaWQqPiBtX2Zhc3RNZW1vcmllczsKKyNlbmRpZgogICAgIFN0ZFNl
dDxzdGQ6OnBhaXI8dWludHB0cl90LCBzaXplX3Q+PiBtX2dyb3dhYmxlQm91bmRzQ2hlY2tpbmdN
ZW1vcmllczsKICAgICBzaXplX3QgbV9waHlzaWNhbEJ5dGVzIHsgMCB9OwogfTsKQEAgLTMwMCw2
ICszMTMsNyBAQCBNZW1vcnlIYW5kbGU6On5NZW1vcnlIYW5kbGUoKQogICAgICAgICB2b2lkKiBt
ZW1vcnkgPSB0aGlzLT5tZW1vcnkoKTsKICAgICAgICAgbWVtb3J5TWFuYWdlcigpLmZyZWVQaHlz
aWNhbEJ5dGVzKG1fc2l6ZSk7CiAgICAgICAgIHN3aXRjaCAobV9tb2RlKSB7CisjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgICAgIGNhc2UgTWVtb3J5TW9kZTo6
U2lnbmFsaW5nOgogICAgICAgICAgICAgaWYgKG1wcm90ZWN0KG1lbW9yeSwgTWVtb3J5OjpmYXN0
TWFwcGVkQnl0ZXMoKSwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSkpIHsKICAgICAgICAgICAgICAg
ICBkYXRhTG9nKCJtcHJvdGVjdCBmYWlsZWQ6ICIsIHNhZmVTdHJlcnJvcihlcnJubykuZGF0YSgp
LCAiXG4iKTsKQEAgLTMwNyw2ICszMjEsNyBAQCBNZW1vcnlIYW5kbGU6On5NZW1vcnlIYW5kbGUo
KQogICAgICAgICAgICAgfQogICAgICAgICAgICAgbWVtb3J5TWFuYWdlcigpLmZyZWVGYXN0TWVt
b3J5KG1lbW9yeSk7CiAgICAgICAgICAgICBicmVhazsKKyNlbmRpZgogICAgICAgICBjYXNlIE1l
bW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nOiB7CiAgICAgICAgICAgICBzd2l0Y2ggKG1fc2hhcmlu
Z01vZGUpIHsKICAgICAgICAgICAgIGNhc2UgTWVtb3J5U2hhcmluZ01vZGU6OkRlZmF1bHQ6CkBA
IC0zOTUsNiArNDEwLDcgQEAgUmVmUHRyPE1lbW9yeT4gTWVtb3J5Ojp0cnlDcmVhdGUoUGFnZUNv
dW50IGluaXRpYWwsIFBhZ2VDb3VudCBtYXhpbXVtLCBNZW1vcnlTaGEKICAgICBpZiAoIWRvbmUp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAKKyNpZiBFTkFCTEUoV0VCQVNTRU1C
TFlfU0lHTkFMSU5HX01FTU9SWSkKICAgICBjaGFyKiBmYXN0TWVtb3J5ID0gbnVsbHB0cjsKICAg
ICBpZiAoT3B0aW9uczo6dXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5KCkpIHsKICAgICAgICAgdHJ5
QWxsb2NhdGUoCkBAIC00MTMsNyArNDI5LDggQEAgUmVmUHRyPE1lbW9yeT4gTWVtb3J5Ojp0cnlD
cmVhdGUoUGFnZUNvdW50IGluaXRpYWwsIFBhZ2VDb3VudCBtYXhpbXVtLCBNZW1vcnlTaGEKIAog
ICAgICAgICByZXR1cm4gTWVtb3J5OjpjcmVhdGUoYWRvcHRSZWYoKm5ldyBNZW1vcnlIYW5kbGUo
ZmFzdE1lbW9yeSwgaW5pdGlhbEJ5dGVzLCBNZW1vcnk6OmZhc3RNYXBwZWRCeXRlcygpLCBpbml0
aWFsLCBtYXhpbXVtLCBzaGFyaW5nTW9kZSwgTWVtb3J5TW9kZTo6U2lnbmFsaW5nKSksIFdURk1v
dmUobm90aWZ5TWVtb3J5UHJlc3N1cmUpLCBXVEZNb3ZlKHN5bmNUcnlUb1JlY2xhaW1NZW1vcnkp
LCBXVEZNb3ZlKGdyb3dTdWNjZXNzQ2FsbGJhY2spKTsKICAgICB9Ci0gICAgCisjZW5kaWYKKwog
ICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjpjcmFzaElmV2ViQXNzZW1ibHlDYW50RmFzdE1lbW9y
eSgpKSkKICAgICAgICAgd2ViQXNzZW1ibHlDb3VsZG50R2V0RmFzdE1lbW9yeSgpOwogCkBAIC00
NTYsNiArNDczLDcgQEAgUmVmUHRyPE1lbW9yeT4gTWVtb3J5Ojp0cnlDcmVhdGUoUGFnZUNvdW50
IGluaXRpYWwsIFBhZ2VDb3VudCBtYXhpbXVtLCBNZW1vcnlTaGEKIAogTWVtb3J5Ojp+TWVtb3J5
KCkgPSBkZWZhdWx0OwogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkp
CiBzaXplX3QgTWVtb3J5OjpmYXN0TWFwcGVkUmVkem9uZUJ5dGVzKCkKIHsKICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8c2l6ZV90PihQYWdlQ291bnQ6OnBhZ2VTaXplKSAqIE9wdGlvbnM6OndlYkFz
c2VtYmx5RmFzdE1lbW9yeVJlZHpvbmVQYWdlcygpOwpAQCAtNDY2LDYgKzQ4NCw3IEBAIHNpemVf
dCBNZW1vcnk6OmZhc3RNYXBwZWRCeXRlcygpCiAgICAgc3RhdGljX2Fzc2VydChzaXplb2YodWlu
dDY0X3QpID09IHNpemVvZihzaXplX3QpLCAiV2UgcmVseSBvbiBhbGxvd2luZyB0aGUgbWF4aW11
bSBzaXplIG9mIE1lbW9yeSB3ZSBtYXAgdG8gYmUgMl4zMiArIHJlZHpvbmUgd2hpY2ggaXMgbGFy
Z2VyIHRoYW4gZml0cyBpbiBhIDMyLWJpdCBpbnRlZ2VyIHRoYXQgd2UnZCBwYXNzIHRvIG1wcm90
ZWN0IGlmIHRoaXMgZGlkbid0IGhvbGQuIik7CiAgICAgcmV0dXJuIChzdGF0aWNfY2FzdDxzaXpl
X3Q+KDEpIDw8IDMyKSArIGZhc3RNYXBwZWRSZWR6b25lQnl0ZXMoKTsKIH0KKyNlbmRpZgogCiBi
b29sIE1lbW9yeTo6YWRkcmVzc0lzSW5Hcm93YWJsZU9yRmFzdE1lbW9yeSh2b2lkKiBhZGRyZXNz
KQogewpAQCAtNDc0LDYgKzQ5MywxNCBAQCBib29sIE1lbW9yeTo6YWRkcmVzc0lzSW5Hcm93YWJs
ZU9yRmFzdE1lbW9yeSh2b2lkKiBhZGRyZXNzKQogCiBFeHBlY3RlZDxQYWdlQ291bnQsIE1lbW9y
eTo6R3Jvd0ZhaWxSZWFzb24+IE1lbW9yeTo6Z3Jvd1NoYXJlZChQYWdlQ291bnQgZGVsdGEpCiB7
CisjaWYgQ1BVKEFSTSkKKyAgICAvLyBTaGFyZWQgbWVtb3J5IHJlcXVpcmVzIHNpZ25hbGluZyBt
ZW1vcnkgd2hpY2ggaXMgbm90IGF2YWlsYWJsZSBvbiBBUk12NworICAgIC8vIHlldC4gSW4gb3Jk
ZXIgdG8gZ2V0IG1vcmUgb2YgdGhlIHRlc3Qgc3VpdGUgdG8gcnVuLCB3ZSBjYW4gc3RpbGwgdXNl
CisgICAgLy8gYSBzaGFyZWQgbW1lb3J5IGJ5IHVzaW5nIGJvdW5kcyBjaGVja2luZywgYnV0IHdl
IGNhbm5vdCBncm93IGl0IHNhZmVseQorICAgIC8vIGluIGNhc2UgaXQncyB1c2VkIGJ5IG11bHRp
cGxlIHRocmVhZHMuIE9uY2UgdGhlIHNpZ25hbCBoYW5kbGVyIGFyZQorICAgIC8vIGF2YWlsYWJs
ZSwgdGhpcyBjYW4gYmUgcmVsYXhlZC4KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OworI2VuZGlmCiAgICAgV2FzbTo6UGFnZUNvdW50IG9sZFBhZ2VDb3VudDsKICAgICBXYXNtOjpQ
YWdlQ291bnQgbmV3UGFnZUNvdW50OwogICAgIGF1dG8gcmVzdWx0ID0gKFsmXSgpIC0+IEV4cGVj
dGVkPFBhZ2VDb3VudCwgTWVtb3J5OjpHcm93RmFpbFJlYXNvbj4gewpAQCAtNTI0LDggKzU1MSwx
NCBAQCBFeHBlY3RlZDxQYWdlQ291bnQsIE1lbW9yeTo6R3Jvd0ZhaWxSZWFzb24+IE1lbW9yeTo6
Z3Jvd1NoYXJlZChQYWdlQ291bnQgZGVsdGEpCiAgICAgICAgIG1faGFuZGxlLT5ncm93VG9TaXpl
KGRlc2lyZWRTaXplKTsKICAgICAgICAgcmV0dXJuIG9sZFBhZ2VDb3VudDsKICAgICB9KCkpOwot
ICAgIGlmIChyZXN1bHQpCisgICAgaWYgKHJlc3VsdCkgewogICAgICAgICBtX2dyb3dTdWNjZXNz
Q2FsbGJhY2soR3Jvd1N1Y2Nlc3NUYWcsIG9sZFBhZ2VDb3VudCwgbmV3UGFnZUNvdW50KTsKKyAg
ICAgICAgLy8gVXBkYXRlIGNhY2hlIGZvciBpbnN0YW5jZQorICAgICAgICBmb3IgKGF1dG8mIGlu
c3RhbmNlIDogbV9pbnN0YW5jZXMpIHsKKyAgICAgICAgICAgIGlmIChpbnN0YW5jZS5nZXQoKSAh
PSBudWxscHRyKQorICAgICAgICAgICAgICAgIGluc3RhbmNlLmdldCgpLT51cGRhdGVDYWNoZWRN
ZW1vcnkoKTsKKyAgICAgICAgfQorICAgIH0KICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC01
ODgsNiArNjIxLDcgQEAgRXhwZWN0ZWQ8UGFnZUNvdW50LCBNZW1vcnk6Okdyb3dGYWlsUmVhc29u
PiBNZW1vcnk6Omdyb3coUGFnZUNvdW50IGRlbHRhKQogICAgICAgICBBU1NFUlQobWVtb3J5KCkg
PT0gbmV3TWVtb3J5KTsKICAgICAgICAgcmV0dXJuIHN1Y2Nlc3MoKTsKICAgICB9CisjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkpCiAgICAgY2FzZSBNZW1vcnlNb2RlOjpT
aWduYWxpbmc6IHsKICAgICAgICAgc2l6ZV90IGV4dHJhQnl0ZXMgPSBkZXNpcmVkU2l6ZSAtIHNp
emUoKTsKICAgICAgICAgUkVMRUFTRV9BU1NFUlQoZXh0cmFCeXRlcyk7CkBAIC02MTMsNiArNjQ3
LDcgQEAgRXhwZWN0ZWQ8UGFnZUNvdW50LCBNZW1vcnk6Okdyb3dGYWlsUmVhc29uPiBNZW1vcnk6
Omdyb3coUGFnZUNvdW50IGRlbHRhKQogICAgICAgICBtX2hhbmRsZS0+Z3Jvd1RvU2l6ZShkZXNp
cmVkU2l6ZSk7CiAgICAgICAgIHJldHVybiBzdWNjZXNzKCk7CiAgICAgfQorI2VuZGlmCiAgICAg
fQogCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTY0Niw3ICs2ODEsOCBA
QCBib29sIE1lbW9yeTo6Y29weSh1aW50MzJfdCBkc3RBZGRyZXNzLCB1aW50MzJfdCBzcmNBZGRy
ZXNzLCB1aW50MzJfdCBjb3VudCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICB1aW50OF90
KiBiYXNlID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4obWVtb3J5KCkpOwotICAgIG1lbWNw
eShiYXNlICsgZHN0QWRkcmVzcywgYmFzZSArIHNyY0FkZHJlc3MsIGNvdW50KTsKKyAgICAvLyBT
b3VyY2UgYW5kIGRlc3RpbmF0aW9uIGFyZWFzIG1pZ2h0IG92ZXJsYXAsIHNvIHVzaW5nIG1lbW1v
dmUuCisgICAgbWVtbW92ZShiYXNlICsgZHN0QWRkcmVzcywgYmFzZSArIHNyY0FkZHJlc3MsIGNv
dW50KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbU1lbW9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU1lbW9yeS5oCmluZGV4IGY1YzU4ZmNmOTZmMi4uOTI3OTYzYjkyNGM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5oCkBAIC02MSw3ICs2MSw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkKiBtZW1vcnkoKSBjb25zdDsKICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc2l6ZTsgfQogICAgIHNpemVfdCBtYXBwZWRDYXBhY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1f
bWFwcGVkQ2FwYWNpdHk7IH0KLSAgICBzaXplX3QgYm91bmRzQ2hlY2tpbmdTaXplKCkgY29uc3Qg
eyByZXR1cm4gbV9tYXBwZWRDYXBhY2l0eTsgfQogICAgIFBhZ2VDb3VudCBpbml0aWFsKCkgY29u
c3QgeyByZXR1cm4gbV9pbml0aWFsOyB9CiAgICAgUGFnZUNvdW50IG1heGltdW0oKSBjb25zdCB7
IHJldHVybiBtX21heGltdW07IH0KICAgICBNZW1vcnlTaGFyaW5nTW9kZSBzaGFyaW5nTW9kZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc2hhcmluZ01vZGU7IH0KQEAgLTEwNiwxNCArMTA1LDE2IEBAIHB1
YmxpYzoKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIH5NZW1vcnkoKTsKIAorI2lmIEVOQUJMRShX
RUJBU1NFTUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIHN0YXRpYyBzaXplX3QgZmFzdE1hcHBl
ZFJlZHpvbmVCeXRlcygpOwogICAgIHN0YXRpYyBzaXplX3QgZmFzdE1hcHBlZEJ5dGVzKCk7IC8v
IEluY2x1ZGVzIHJlZHpvbmUuCisjZW5kaWYKICAgICBzdGF0aWMgYm9vbCBhZGRyZXNzSXNJbkdy
b3dhYmxlT3JGYXN0TWVtb3J5KHZvaWQqKTsKIAogICAgIHZvaWQqIG1lbW9yeSgpIGNvbnN0IHsg
cmV0dXJuIG1faGFuZGxlLT5tZW1vcnkoKTsgfQogICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV9oYW5kbGUtPnNpemUoKTsgfQogICAgIFBhZ2VDb3VudCBzaXplSW5QYWdlcygpIGNv
bnN0IHsgcmV0dXJuIFBhZ2VDb3VudDo6ZnJvbUJ5dGVzKHNpemUoKSk7IH0KLSAgICBzaXplX3Qg
Ym91bmRzQ2hlY2tpbmdTaXplKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGUtPmJvdW5kc0NoZWNr
aW5nU2l6ZSgpOyB9CisgICAgc2l6ZV90IG1hcHBlZENhcGFjaXR5KCkgY29uc3QgeyByZXR1cm4g
bV9oYW5kbGUtPm1hcHBlZENhcGFjaXR5KCk7IH0KICAgICBQYWdlQ291bnQgaW5pdGlhbCgpIGNv
bnN0IHsgcmV0dXJuIG1faGFuZGxlLT5pbml0aWFsKCk7IH0KICAgICBQYWdlQ291bnQgbWF4aW11
bSgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxlLT5tYXhpbXVtKCk7IH0KICAgICBNZW1vcnlIYW5k
bGUmIGhhbmRsZSgpIHsgcmV0dXJuIG1faGFuZGxlLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmNwcAppbmRleCAyNjUy
ZGU3MmVkNTYuLjYwZmFkNjNlZjBlMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU1lbW9yeUluZm9ybWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwCkBAIC00MSw4ICs0MSwxNSBAQCBjb25z
dCBQaW5uZWRSZWdpc3RlckluZm8mIFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCkKICAgICAgICAg
dW5zaWduZWQgbnVtYmVyT2ZQaW5uZWRSZWdpc3RlcnMgPSAyOwogICAgICAgICBpZiAoIUNvbnRl
eHQ6OnVzZUZhc3RUTFMoKSkKICAgICAgICAgICAgICsrbnVtYmVyT2ZQaW5uZWRSZWdpc3RlcnM7
CisjaWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQogICAgICAgICBHUFJSZWcgYmFzZU1lbW9y
eVBvaW50ZXIgPSBHUFJJbmZvOjpyZWdDUzM7CiAgICAgICAgIEdQUlJlZyBib3VuZHNDaGVja2lu
Z1NpemVSZWdpc3RlciA9IEdQUkluZm86OnJlZ0NTNDsKKyNlbGlmIENQVShBUk0pCisgICAgICAg
IC8vIE5vdCBlbm91Z2ggcmVnaXN0ZXJzLiByZWdDUzAgaXMgdGhlIHdhc20gaW5zdGFuY2UsIHJl
Z0NTMSBpcyBMTEludCBQQgorICAgICAgICBudW1iZXJPZlBpbm5lZFJlZ2lzdGVycyAtPSAyOwor
ICAgICAgICBHUFJSZWcgYmFzZU1lbW9yeVBvaW50ZXIgPSBJbnZhbGlkR1BSUmVnOworICAgICAg
ICBHUFJSZWcgYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIgPSBJbnZhbGlkR1BSUmVnOworI2Vu
ZGlmCiAgICAgICAgIEdQUlJlZyB3YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlciA9IEludmFsaWRH
UFJSZWc7CiAgICAgICAgIGlmICghQ29udGV4dDo6dXNlRmFzdFRMUygpKQogICAgICAgICAgICAg
d2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXIgPSBHUFJJbmZvOjpyZWdDUzA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnlJbmZvcm1hdGlvbi5oCmluZGV4IDg1
NGZiYTU0ZTMzNy4uMjlmY2JkYjZkNDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtTWVtb3J5SW5mb3JtYXRpb24uaApAQCAtNTIsMTAgKzUyLDExIEBAIHB1Ymxp
YzoKICAgICBSZWdpc3RlclNldCB0b1NhdmUoTWVtb3J5TW9kZSBtb2RlKSBjb25zdAogICAgIHsK
ICAgICAgICAgUmVnaXN0ZXJTZXQgcmVzdWx0OwotICAgICAgICByZXN1bHQuc2V0KGJhc2VNZW1v
cnlQb2ludGVyKTsKKyAgICAgICAgaWYgKGJhc2VNZW1vcnlQb2ludGVyICE9IEludmFsaWRHUFJS
ZWcpCisgICAgICAgICAgICByZXN1bHQuc2V0KGJhc2VNZW1vcnlQb2ludGVyKTsKICAgICAgICAg
aWYgKHdhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyICE9IEludmFsaWRHUFJSZWcpCiAgICAgICAg
ICAgICByZXN1bHQuc2V0KHdhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyKTsKLSAgICAgICAgaWYg
KG1vZGUgIT0gTWVtb3J5TW9kZTo6U2lnbmFsaW5nKQorICAgICAgICBpZiAobW9kZSA9PSBNZW1v
cnlNb2RlOjpCb3VuZHNDaGVja2luZyAmJiBib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlciAhPSBJ
bnZhbGlkR1BSUmVnKQogICAgICAgICAgICAgcmVzdWx0LnNldChib3VuZHNDaGVja2luZ1NpemVS
ZWdpc3Rlcik7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuY3BwCmluZGV4IDliZTA0ZDc3YjA2Yi4uZjMz
YjA1MjUxOTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVt
b3J5TW9kZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1v
ZGUuY3BwCkBAIC0zNyw3ICszNyw5IEBAIGNvbnN0IGNoYXIqIG1ha2VTdHJpbmcoTWVtb3J5TW9k
ZSBtb2RlKQogewogICAgIHN3aXRjaCAobW9kZSkgewogICAgIGNhc2UgTWVtb3J5TW9kZTo6Qm91
bmRzQ2hlY2tpbmc6IHJldHVybiAiQm91bmRzQ2hlY2tpbmciOworI2lmIEVOQUJMRShXRUJBU1NF
TUJMWV9TSUdOQUxJTkdfTUVNT1JZKQogICAgIGNhc2UgTWVtb3J5TW9kZTo6U2lnbmFsaW5nOiBy
ZXR1cm4gIlNpZ25hbGluZyI7CisjZW5kaWYKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICByZXR1cm4gIiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU1lbW9yeU1vZGUuaAppbmRleCAwMmNmY2ZlNDlmNDcuLmQ3MTFhZmFmMzAzMyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeU1vZGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5TW9kZS5oCkBAIC0zNCw3ICszNCw5
IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAvLyBGSVhNRTogV2Ugc2hvdWxk
IHN1cHBvcnQgb3RoZXIgbW9kZXMuIHNlZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2MjY5MwogZW51bSBjbGFzcyBNZW1vcnlNb2RlIDogdWludDhfdCB7CiAgICAg
Qm91bmRzQ2hlY2tpbmcsCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX1NJR05BTElOR19NRU1PUlkp
CiAgICAgU2lnbmFsaW5nCisjZW5kaWYKIH07CiAKIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IE51
bWJlck9mTWVtb3J5TW9kZXMgPSAyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU9wY29kZU9yaWdpbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtT3Bjb2RlT3JpZ2luLmNwcAppbmRleCBiNmM1YzI3NTUzMTEuLjlmYzkxYjlkOWM1NCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5jcHAKQEAg
LTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXYXNtT3Bjb2Rl
T3JpZ2luLmgiCiAKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisjaWYgRU5BQkxFKFdFQkFTU0VN
QkxZX0IzSklUKQogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCkBAIC0zNyw0
ICszNyw0IEBAIHZvaWQgT3Bjb2RlT3JpZ2luOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0
CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCiAKLSNlbmRpZiAvLyBFTkFCTEUoV0VCQVNT
RU1CTFkpCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29kZU9yaWdpbi5oCmluZGV4IGEwZDhkZjNhZWYxOS4u
NWM0YjY3NmQ1YzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
T3Bjb2RlT3JpZ2luLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wY29k
ZU9yaWdpbi5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQorI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9CM0pJVCkKIAogI2luY2x1ZGUg
IkIzT3JpZ2luLmgiCiAjaW5jbHVkZSAiV2FzbUZvcm1hdC5oIgpAQCAtNjAsNCArNjAsNCBAQCBw
cml2YXRlOgogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQogCi0jZW5kaWYgLy8gRU5BQkxF
KFdFQkFTU0VNQkxZKQorI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWV9CM0pJVCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcAppbmRleCBmMmY2MTFh
NmJlNmUuLjY0M2M0N2NkZjMwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbU9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21PcGVyYXRpb25zLmNwcApAQCAtNDY4LDQzICs0NjgsNDMgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbldhc21VbndpbmQsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiAgICAgQVNTRVJUKCEhdm0uY2FsbEZyYW1lRm9yQ2F0Y2gpOwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTY0LCBpbnQ2NF90LCAoQ2FsbEZyYW1lKiBj
YWxsRnJhbWUsIEpTVmFsdWUgdikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29udmVydFRvSTY0LCBpbnQ2NF90LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVuY29kZWRKU1Zh
bHVlIHYpKQogewogICAgIC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5nIEpTV2ViQXNzZW1ibHlJ
bnN0YW5jZSogaW5zdGVhZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAzMjA2CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsK
ICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIHJl
dHVybiB2LnRvQmlnSW50NjQoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh2KS50b0JpZ0ludDY0KGNhbGxGcmFtZS0+bGV4aWNh
bEdsb2JhbE9iamVjdCh2bSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29udmVydFRvRjY0LCBkb3VibGUsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9GNjQsIGRvdWJs
ZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSB2KSkKIHsKICAgICAvLyBG
SVhNRTogQ29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RlYWQuCiAg
ICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIwNgogICAg
IFZNJiB2bSA9IGNhbGxGcmFtZS0+ZGVwcmVjYXRlZFZNKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICByZXR1cm4gdi50b051bWJlcihjYWxs
RnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZGVj
b2RlKHYpLnRvTnVtYmVyKGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpOwogfQog
Ci1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTMyLCBpbnQzMl90
LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdikpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTMyLCBpbnQzMl90LCAoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUsIEVuY29kZWRKU1ZhbHVlIHYpKQogewogICAgIC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5n
IEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGVhZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjA2CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5k
ZXByZWNhdGVkVk0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
RnJhbWUpOwotICAgIHJldHVybiB2LnRvSW50MzIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KHZtKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh2KS50b0ludDMyKGNhbGxGcmFt
ZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29udmVydFRvRjMyLCBmbG9hdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBK
U1ZhbHVlIHYpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0Yz
MiwgZmxvYXQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUgdikpCiB7CiAg
ICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0
ZWFkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMy
MDYKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAgIE5hdGl2ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PGZsb2F0Pih2LnRvTnVtYmVyKGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkp
KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KEpTVmFsdWU6OmRlY29kZSh2KS50b051
bWJlcihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKSk7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRKU1ZhbHVl
LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwgaW50NjRfdCB2YWx1
ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50LCBF
bmNvZGVkSlNWYWx1ZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2Us
IEVuY29kZWRXYXNtVmFsdWUgdmFsdWUpKQogewogICAgIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSog
anNJbnN0YW5jZSA9IGluc3RhbmNlLT5vd25lcjxKU1dlYkFzc2VtYmx5SW5zdGFuY2U+KCk7CiAg
ICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGpzSW5zdGFuY2UtPmdsb2JhbE9iamVj
dCgpOwpAQCAtNTE0LDcgKzUxNCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoQ2FsbEZyYW1lKiBjCiB9CiAKIC8v
IGh0dHBzOi8vd2ViYXNzZW1ibHkuZ2l0aHViLmlvL211bHRpLXZhbHVlL2pzLWFwaS9pbmRleC5o
dG1sI3J1bi1hLWhvc3QtZnVuY3Rpb24KLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25JdGVyYXRlUmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJbnN0YW5jZSog
aW5zdGFuY2UsIGNvbnN0IFR5cGVEZWZpbml0aW9uKiB0eXBlLCBKU1ZhbHVlIHJlc3VsdCwgdWlu
dDY0X3QqIHJlZ2lzdGVyUmVzdWx0cywgdWludDY0X3QqIGNhbGxlZUZyYW1lUG9pbnRlcikpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBjb25zdCBUeXBlRGVmaW5p
dGlvbiogdHlwZSwgRW5jb2RlZEpTVmFsdWUgZW5jUmVzdWx0LCB1aW50NjRfdCogcmVnaXN0ZXJS
ZXN1bHRzLCB1aW50NjRfdCogY2FsbGVlRnJhbWVQb2ludGVyKSkKIHsKICAgICAvLyBGSVhNRTog
Q29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RlYWQuCiAgICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIwNgpAQCAtNTMxLDYg
KzUzMSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0
cywgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJCiAKICAgICB1bnNpZ25lZCBpdGVyYXRp
b25Db3VudCA9IDA7CiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYnVmZmVyOworICAgIEpTVmFs
dWUgcmVzdWx0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY1Jlc3VsdCk7CiAgICAgZm9yRWFjaEluSXRl
cmFibGUoZ2xvYmFsT2JqZWN0LCByZXN1bHQsIFsmXSAoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpT
VmFsdWUgdmFsdWUpIC0+IHZvaWQgewogICAgICAgICBpZiAoYnVmZmVyLnNpemUoKSA8IHNpZ25h
dHVyZS0+cmV0dXJuQ291bnQoKSkKICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQodmFsdWUpOwpA
QCAtNTgwLDggKzU4MSwxMCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRl
cmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSQogICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogCiAgICAgICAgIGF1dG8gcmVwID0gd2Fz
bUNhbGxJbmZvLnJlc3VsdHNbaW5kZXhdOwotICAgICAgICBpZiAocmVwLmlzUmVnKCkpCi0gICAg
ICAgICAgICByZWdpc3RlclJlc3VsdHNbcmVnaXN0ZXJSZXN1bHRPZmZzZXRzLmZpbmQocmVwLnJl
ZygpKS0+b2Zmc2V0KCkgLyBzaXplb2YodWludDY0X3QpXSA9IHVuYm94ZWRWYWx1ZTsKKyAgICAg
ICAgaWYgKHJlcC5pc0dQUigpKQorICAgICAgICAgICAgcmVnaXN0ZXJSZXN1bHRzW3JlZ2lzdGVy
UmVzdWx0T2Zmc2V0cy5maW5kKHJlcC5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSAvIHNp
emVvZih1aW50NjRfdCldID0gdW5ib3hlZFZhbHVlOworICAgICAgICBlbHNlIGlmIChyZXAuaXNG
UFIoKSkKKyAgICAgICAgICAgIHJlZ2lzdGVyUmVzdWx0c1tyZWdpc3RlclJlc3VsdE9mZnNldHMu
ZmluZChyZXAuZnByKCkpLT5vZmZzZXQoKSAvIHNpemVvZih1aW50NjRfdCldID0gdW5ib3hlZFZh
bHVlOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjYWxsZWVGcmFtZVBvaW50ZXJbcmVwLm9m
ZnNldEZyb21GUCgpIC8gc2l6ZW9mKHVpbnQ2NF90KV0gPSB1bmJveGVkVmFsdWU7CiAgICAgfQpA
QCAtNjA3LDEyICs2MTAsMTYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFs
bG9jYXRlUmVzdWx0c0FycmF5LCBKU0FycmF5KiwgKENhbGxGcmFtZSogY2EKICAgICBhdXRvIHdh
c21DYWxsSW5mbyA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpLmNhbGxJbmZvcm1hdGlvbkZvcigq
dHlwZSk7CiAgICAgUmVnaXN0ZXJBdE9mZnNldExpc3QgcmVnaXN0ZXJSZXN1bHRzID0gd2FzbUNh
bGxJbmZvLmNvbXB1dGVSZXN1bHRzT2Zmc2V0TGlzdCgpOwogCi0gICAgc3RhdGljX2Fzc2VydChz
aXplb2YoSlNWYWx1ZSkgPT0gc2l6ZW9mKENQVVJlZ2lzdGVyKSwgIlRoZSBjb2RlIGJlbG93IHJl
bGllcyBvbiB0aGlzLiIpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaWduYXR1cmUt
PnJldHVybkNvdW50KCk7ICsraSkgewogICAgICAgICBWYWx1ZUxvY2F0aW9uIGxvYyA9IHdhc21D
YWxsSW5mby5yZXN1bHRzW2ldOwogICAgICAgICBKU1ZhbHVlIHZhbHVlOwotICAgICAgICBpZiAo
bG9jLmlzUmVnKCkpCi0gICAgICAgICAgICB2YWx1ZSA9IHN0YWNrUG9pbnRlckZyb21DYWxsZWVb
KHJlZ2lzdGVyUmVzdWx0cy5maW5kKGxvYy5yZWcoKSktPm9mZnNldCgpICsgd2FzbUNhbGxJbmZv
LmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcykgLyBzaXplb2YoSlNWYWx1ZSldOwor
ICAgICAgICBpZiAobG9jLmlzR1BSKCkpIHsKKyNpZiBVU0UoSlNWQUxFMzJfNjQpCisgICAgICAg
ICAgICBBU1NFUlQocmVnaXN0ZXJSZXN1bHRzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSkt
Pm9mZnNldCgpICsgNCA9PSByZWdpc3RlclJlc3VsdHMuZmluZChsb2MuanNyKCkudGFnR1BSKCkp
LT5vZmZzZXQoKSk7CisjZW5kaWYKKyAgICAgICAgICAgIHZhbHVlID0gc3RhY2tQb2ludGVyRnJv
bUNhbGxlZVsocmVnaXN0ZXJSZXN1bHRzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9m
ZnNldCgpICsgd2FzbUNhbGxJbmZvLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRlcykg
LyBzaXplb2YoSlNWYWx1ZSldOworICAgICAgICB9IGVsc2UgaWYgKGxvYy5pc0ZQUigpKQorICAg
ICAgICAgICAgdmFsdWUgPSBzdGFja1BvaW50ZXJGcm9tQ2FsbGVlWyhyZWdpc3RlclJlc3VsdHMu
ZmluZChsb2MuZnByKCkpLT5vZmZzZXQoKSArIHdhc21DYWxsSW5mby5oZWFkZXJBbmRBcmd1bWVu
dFN0YWNrU2l6ZUluQnl0ZXMpIC8gc2l6ZW9mKEpTVmFsdWUpXTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgdmFsdWUgPSBzdGFja1BvaW50ZXJGcm9tQ2FsbGVlW2xvYy5vZmZzZXRGcm9tU1Ao
KSAvIHNpemVvZihKU1ZhbHVlKV07CiAgICAgICAgIHJlc3VsdC0+aW5pdGlhbGl6ZUluZGV4KGlu
aXRpYWxpemF0aW9uU2NvcGUsIGksIHZhbHVlKTsKQEAgLTk1Myw3ICs5NjAsOCBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRocm93LCB2b2lkKiwgKEluc3RhbmNlKiBp
bnN0YW5jZSwgQ2FsbEZyYQogICAgIC8vIHRvIHRoZSBleGNlcHRpb24gaGFuZGxlci4gSWYgd2Ug
ZGlkIHRoaXMsIHdlIGNvdWxkIHJlbW92ZSB0aGlzIHRlcnJpYmxlIGhhY2suCiAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDQ0MAogICAgIHZtLmNhbGxl
ZUZvcldhc21DYXRjaCA9IGNhbGxGcmFtZS0+Y2FsbGVlKCk7Ci0gICAgYml0d2lzZV9jYXN0PHVp
bnQ2NF90Kj4oY2FsbEZyYW1lKVtzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxl
ZSldID0gYml0d2lzZV9jYXN0PHVpbnQ2NF90Pihqc0luc3RhbmNlLT5tb2R1bGUoKSk7CisgICAg
UmVnaXN0ZXIqIGNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8UmVnaXN0ZXIqPihjYWxsRnJhbWUp
ICsgc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpOworICAgICpjYWxsZWVT
bG90ID0gYml0d2lzZV9jYXN0PEpTQ2VsbCo+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsKICAgICBy
ZXR1cm4gdm0udGFyZ2V0TWFjaGluZVBDRm9yVGhyb3c7CiB9CiAKQEAgLTk3OSw3ICs5ODcsOCBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVJldGhyb3csIHZvaWQqLCAo
SW5zdGFuY2UqIGluc3RhbmNlLCBDYWxsRgogICAgIC8vIHRvIHRoZSBleGNlcHRpb24gaGFuZGxl
ci4gSWYgd2UgZGlkIHRoaXMsIHdlIGNvdWxkIHJlbW92ZSB0aGlzIHRlcnJpYmxlIGhhY2suCiAg
ICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDQ0MAogICAg
IHZtLmNhbGxlZUZvcldhc21DYXRjaCA9IGNhbGxGcmFtZS0+Y2FsbGVlKCk7Ci0gICAgYml0d2lz
ZV9jYXN0PHVpbnQ2NF90Kj4oY2FsbEZyYW1lKVtzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNs
b3Q6OmNhbGxlZSldID0gYml0d2lzZV9jYXN0PHVpbnQ2NF90Pihqc0luc3RhbmNlLT5tb2R1bGUo
KSk7CisgICAgUmVnaXN0ZXIqIGNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8UmVnaXN0ZXIqPihj
YWxsRnJhbWUpICsgc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpOworICAg
ICpjYWxsZWVTbG90ID0gYml0d2lzZV9jYXN0PEpTQ2VsbCo+KGpzSW5zdGFuY2UtPm1vZHVsZSgp
KTsKICAgICByZXR1cm4gdm0udGFyZ2V0TWFjaGluZVBDRm9yVGhyb3c7CiB9CiAKQEAgLTEwMTQs
MTIgKzEwMjMsMTQgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21Ub0pT
RXhjZXB0aW9uLCB2b2lkKiwgKENhbGxGcmFtZSogY2FsbEZyYW0KICAgICAvLyB0byB0aGUgZXhj
ZXB0aW9uIGhhbmRsZXIuIElmIHdlIGRpZCB0aGlzLCB3ZSBjb3VsZCByZW1vdmUgdGhpcyB0ZXJy
aWJsZSBoYWNrLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzA0NDAKICAgICB2bS5jYWxsZWVGb3JXYXNtQ2F0Y2ggPSBjYWxsRnJhbWUtPmNhbGxlZSgp
OwotICAgIGJpdHdpc2VfY2FzdDx1aW50NjRfdCo+KGNhbGxGcmFtZSlbc3RhdGljX2Nhc3Q8aW50
PihDYWxsRnJhbWVTbG90OjpjYWxsZWUpXSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oaW5zdGFu
Y2UtPm1vZHVsZSgpKTsKKyAgICBSZWdpc3RlciogY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxS
ZWdpc3Rlcio+KGNhbGxGcmFtZSkgKyBzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNh
bGxlZSk7CisgICAgKmNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8SlNDZWxsKj4oaW5zdGFuY2Ut
Pm1vZHVsZSgpKTsKICAgICByZXR1cm4gdm0udGFyZ2V0TWFjaGluZVBDRm9yVGhyb3c7CiB9CiAK
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtUmV0cmlldmVBbmRDbGVhckV4
Y2VwdGlvbklmQ2F0Y2hhYmxlLCBQb2ludGVyUGFpciwgKEluc3RhbmNlKiBpbnN0YW5jZSkpCiB7
CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGpzSW5zdGFu
Y2UgPSBpbnN0YW5jZS0+b3duZXI8SlNXZWJBc3NlbWJseUluc3RhbmNlPigpOwogICAgIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0luc3RhbmNlLT5nbG9iYWxPYmplY3QoKTsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0xMDM5LDYgKzEwNTAsMTMgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZXRyaWV2ZUFuZENsZWFyRXhjZXB0
aW9uSWZDYXRjaGFibGUsIFBvaW4KICAgICBpZiAoSlNXZWJBc3NlbWJseUV4Y2VwdGlvbiogd2Fz
bUV4Y2VwdGlvbiA9IGpzRHluYW1pY0Nhc3Q8SlNXZWJBc3NlbWJseUV4Y2VwdGlvbio+KHRocm93
blZhbHVlKSkKICAgICAgICAgcGF5bG9hZCA9IGJpdHdpc2VfY2FzdDx2b2lkKj4od2FzbUV4Y2Vw
dGlvbi0+cGF5bG9hZCgpLmRhdGEoKSk7CiAgICAgcmV0dXJuIFBvaW50ZXJQYWlyIHsgYml0d2lz
ZV9jYXN0PHZvaWQqPihKU1ZhbHVlOjplbmNvZGUodGhyb3duVmFsdWUpKSwgcGF5bG9hZCB9Owor
I2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAvLyBOb3RlOiBUaGlzIGZ1bmN0aW9uIG5lZWRz
IHRvIHJldHVybiBhIHBvaW50ZXIgYW5kIGEgSlNWYWx1ZSwgc28gd2lsbCBuZWVkIHRvCisgICAg
Ly8gY2hhbmdlIHNpZ25hdHVyZSBvbiBKU1ZBTEUzMl82NCwgbmV2ZXJ0aGVsZXNzLCBmb3Igbm93
IGl0J3MgdW51c2VkLgorICAgIFVOUkVBQ0hBQkxFX0ZPUl9QTEFURk9STSgpOworICAgIFVOVVNF
RF9QQVJBTShpbnN0YW5jZSk7CisgICAgcmV0dXJuIHsgbnVsbHB0ciwgbnVsbHB0ciB9OworI2Vu
ZGlmCiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaAppbmRleCBlMmNiMzU5MDQxOTYuLjRjOTdjNGQ3MWRi
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oCkBAIC00
NywyMiArNDcsMjMgQEAgbmFtZXNwYWNlIFdhc20gewogY2xhc3MgSW5zdGFuY2U7CiBjbGFzcyBU
eXBlRGVmaW5pdGlvbjsKIAotdm9pZCBsb2FkVmFsdWVzSW50b0J1ZmZlcihQcm9iZTo6Q29udGV4
dCYsIGNvbnN0IFN0YWNrTWFwJiwgdWludDY0X3QqIGJ1ZmZlcik7Cit0eXBlZGVmIGludDY0X3Qg
RW5jb2RlZFdhc21WYWx1ZTsKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9CM0pJVCkKK3ZvaWQg
bG9hZFZhbHVlc0ludG9CdWZmZXIoUHJvYmU6OkNvbnRleHQmLCBjb25zdCBTdGFja01hcCYsIHVp
bnQ2NF90KiBidWZmZXIpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNt
VHJpZ2dlck9TUkVudHJ5Tm93LCB2b2lkLCAoUHJvYmU6OkNvbnRleHQmKSk7CiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2VyVGllclVwTm93LCB2b2lkLCAoSW5z
dGFuY2UqLCB1aW50MzJfdCBmdW5jdGlvbkluZGV4KSk7CiAjZW5kaWYKIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVVud2luZCwgdm9pZCwgKENhbGxGcmFtZSopKTsKIAot
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JNjQsIGludDY0X3Qs
IChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbnZlcnRUb0Y2NCwgZG91YmxlLCAoQ2FsbEZyYW1lKiwgSlNWYWx1ZSkpOwotSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIGludDMyX3QsIChDYWxs
RnJhbWUqLCBKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNv
bnZlcnRUb0YzMiwgZmxvYXQsIChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCwgaW50NjRfdCwgKENhbGxGcmFtZSos
IEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNv
bnZlcnRUb0Y2NCwgZG91YmxlLCAoQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTMyLCBpbnQzMl90LCAoQ2Fs
bEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29udmVydFRvRjMyLCBmbG9hdCwgKENhbGxGcmFtZSosIEVuY29kZWRKU1ZhbHVlKSk7
CiAKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50LCBF
bmNvZGVkSlNWYWx1ZSwgKENhbGxGcmFtZSosIEluc3RhbmNlKiwgaW50NjRfdCkpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRKU1Zh
bHVlLCAoQ2FsbEZyYW1lKiwgSW5zdGFuY2UqLCBFbmNvZGVkV2FzbVZhbHVlKSk7CiAKLUpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxs
RnJhbWUqLCBJbnN0YW5jZSosIGNvbnN0IFR5cGVEZWZpbml0aW9uKiwgSlNWYWx1ZSwgdWludDY0
X3QqLCB1aW50NjRfdCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRl
cmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqLCBJbnN0YW5jZSosIGNvbnN0IFR5cGVEZWZp
bml0aW9uKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnQ2NF90KiwgdWludDY0X3QqKSk7CiBKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5LCBKU0FycmF5
KiwgKENhbGxGcmFtZSosIFdhc206Okluc3RhbmNlKiwgY29uc3QgVHlwZURlZmluaXRpb24qLCBJ
bmRleGluZ1R5cGUsIEpTVmFsdWUqKSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uV2FzbVdyaXRlQmFycmllclNsb3dQYXRoLCB2b2lkLCAoSlNDZWxsKiwgVk0qKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFnZUNvdW50LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFnZUNvdW50LmgKaW5kZXggYjdkOGM5ZmNm
NzJiLi4zYzc1NTEyZjQ0YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21QYWdlQ291bnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFn
ZUNvdW50LmgKQEAgLTk4LDcgKzk4LDEyIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdGV4
cHIgdWludDMyX3QgcGFnZVNpemUgPSA2NCAqIEtCOwogcHJpdmF0ZToKLSAgICBzdGF0aWMgY29u
c3RleHByIHVpbnQzMl90IG1heFBhZ2VDb3VudCA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihNQVhf
QVJSQVlfQlVGRkVSX1NJWkUgLyBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocGFnZVNpemUpKTsKKyAg
ICAvLyBUaGUgc3BlYyByZXF1aXJlcyB3ZSBhcmUgYWJsZSB0byBpbnN0YW50aWF0ZSBhIG1lbW9y
eSB3aXRoIGEgKm1heGltdW0qIHNpemUgb2YgNjRLIHBhZ2VzLgorICAgIC8vIFRoaXMgZG9lcyBu
b3QgbWVhbiB0aGUgbWVtb3J5IGNhbiBuZWNlc3NhcmlseSBncm93IHRoYXQgYmlnLCBhbmQgd2hl
cmUgdGhlCisgICAgLy8gTUFYX0FSUkFZX0JVRkZFUl9TSVpFIGlzIHNtYWxsZXIgKGUuZy46IG9u
IDMyLWJpdCBwbGF0Zm9ybXMpLCB0cnlpbmcgdG8gZ3JvdyB0aGUgbWVtb3J5CisgICAgLy8gdGhh
dCBsYXJnZSB3aWxsIGZhaWwsIHdoaWNoIGlzIGFjY2VwdGFibGUgYWNjb3JkaW5nIHRvIHRoZSBz
cGVjLiBOZXZlcnRoZWxlc3MsIHdlIHNob3VsZAorICAgIC8vIGJlIGFibGUgdG8gcGFyc2Ugc3Vj
aCBhIG1lbW9yeSBhbmQgaW5zdGFudGlhdGUgaXQgd2l0aCBhIHNtYWxsZXIgaW5pdGlhbCBzaXpl
LgorICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWF4UGFnZUNvdW50ID0gc3RkOjptYXg8
dWludDMyX3Q+KDY0KjEwMjQsIE1BWF9BUlJBWV9CVUZGRVJfU0laRSAvIHN0YXRpY19jYXN0PHVp
bnQ2NF90PihwYWdlU2l6ZSkpOwogCiAgICAgdWludDMyX3QgbV9wYWdlQ291bnQ7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5oCmluZGV4IDZhNjQ4ZjEwYjQxOS4uYzM4
MGI3YWE0NGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFy
c2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5oCkBAIC0y
MDgsNyArMjA4LDcgQEAgQUxXQVlTX0lOTElORSBib29sIFBhcnNlcjxTdWNjZXNzVHlwZT46OnBh
cnNlVUludDMyKHVpbnQzMl90JiByZXN1bHQpCiB7CiAgICAgaWYgKGxlbmd0aCgpIDwgNCB8fCBt
X29mZnNldCA+IGxlbmd0aCgpIC0gNCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJlc3Vs
dCA9ICpyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oc291cmNlKCkgKyBtX29mZnNl
dCk7CisgICAgbWVtY3B5KCZyZXN1bHQsIHNvdXJjZSgpICsgbV9vZmZzZXQsIHNpemVvZih1aW50
MzJfdCkpOyAvLyBzcmMgY2FuIGJlIHVuYWxpZ25lZAogICAgIG1fb2Zmc2V0ICs9IDQ7CiAgICAg
cmV0dXJuIHRydWU7CiB9CkBAIC0yMTgsNyArMjE4LDcgQEAgQUxXQVlTX0lOTElORSBib29sIFBh
cnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVUludDY0KHVpbnQ2NF90JiByZXN1bHQpCiB7CiAgICAg
aWYgKGxlbmd0aCgpIDwgOCB8fCBtX29mZnNldCA+IGxlbmd0aCgpIC0gOCkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIHJlc3VsdCA9ICpyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ2NF90
Kj4oc291cmNlKCkgKyBtX29mZnNldCk7CisgICAgbWVtY3B5KCZyZXN1bHQsIHNvdXJjZSgpICsg
bV9vZmZzZXQsIHNpemVvZih1aW50NjRfdCkpOyAvLyBzcmMgY2FuIGJlIHVuYWxpZ25lZAogICAg
IG1fb2Zmc2V0ICs9IDg7CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3BwCmluZGV4IDY0MTdmODBiMzVhNy4uNmNjN2Y3Zjk2
Yzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmNwcApA
QCAtNjQ4LDcgKzY0OCw4IEBAIFdBU01fU0xPV19QQVRIX0RFQ0wodGhyb3cpCiAgICAgLy8gdG8g
dGhlIGV4Y2VwdGlvbiBoYW5kbGVyLiBJZiB3ZSBkaWQgdGhpcywgd2UgY291bGQgcmVtb3ZlIHRo
aXMgdGVycmlibGUgaGFjay4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTcwNDQwCiAgICAgdm0uY2FsbGVlRm9yV2FzbUNhdGNoID0gY2FsbEZyYW1lLT5j
YWxsZWUoKTsKLSAgICBiaXR3aXNlX2Nhc3Q8dWludDY0X3QqPihjYWxsRnJhbWUpW3N0YXRpY19j
YXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKV0gPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+
KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsKKyAgICBSZWdpc3RlciogY2FsbGVlU2xvdCA9IGJpdHdp
c2VfY2FzdDxSZWdpc3Rlcio+KGNhbGxGcmFtZSkgKyBzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFt
ZVNsb3Q6OmNhbGxlZSk7CisgICAgKmNhbGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8SlNDZWxsKj4o
anNJbnN0YW5jZS0+bW9kdWxlKCkpOwogICAgIFdBU01fUkVUVVJOX1RXTyh2bS50YXJnZXRNYWNo
aW5lUENGb3JUaHJvdywgbnVsbHB0cik7CiB9CiAKQEAgLTY3Niw3ICs2NzcsOCBAQCBXQVNNX1NM
T1dfUEFUSF9ERUNMKHJldGhyb3cpCiAgICAgLy8gdG8gdGhlIGV4Y2VwdGlvbiBoYW5kbGVyLiBJ
ZiB3ZSBkaWQgdGhpcywgd2UgY291bGQgcmVtb3ZlIHRoaXMgdGVycmlibGUgaGFjay4KICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDQwCiAgICAgdm0u
Y2FsbGVlRm9yV2FzbUNhdGNoID0gY2FsbEZyYW1lLT5jYWxsZWUoKTsKLSAgICBiaXR3aXNlX2Nh
c3Q8dWludDY0X3QqPihjYWxsRnJhbWUpW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6
Y2FsbGVlKV0gPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KGpzSW5zdGFuY2UtPm1vZHVsZSgpKTsK
KyAgICBSZWdpc3RlciogY2FsbGVlU2xvdCA9IGJpdHdpc2VfY2FzdDxSZWdpc3Rlcio+KGNhbGxG
cmFtZSkgKyBzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7CisgICAgKmNh
bGxlZVNsb3QgPSBiaXR3aXNlX2Nhc3Q8SlNDZWxsKj4oanNJbnN0YW5jZS0+bW9kdWxlKCkpOwog
ICAgIFdBU01fUkVUVVJOX1RXTyh2bS50YXJnZXRNYWNoaW5lUENGb3JUaHJvdywgbnVsbHB0cik7
CiB9CiAKQEAgLTcyMyw2ICs3MjUsMjE0IEBAIFdBU01fU0xPV19QQVRIX0RFQ0wocmV0cmlldmVf
YW5kX2NsZWFyX2V4Y2VwdGlvbikKICAgICBXQVNNX1JFVFVSTl9UV08ocGMsIHBheWxvYWQpOwog
fQogCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKK1dBU01fU0xPV19QQVRIX0RFQ0woZjMyX2NlaWwp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0g
cGMtPmFzPFdhc21GMzJDZWlsPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0
aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6
ZW5jb2RlKHdhc21VbmJveGVkRmxvYXQoc3RkOjpjZWlsKG9wZXJhbmQpKSkpOworfQorCitXQVNN
X1NMT1dfUEFUSF9ERUNMKGYzMl9mbG9vcikKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2Up
OworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUYzMkZsb29yPigpOworICAgIGZs
b2F0IG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7
CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKHdhc21VbmJveGVkRmxvYXQoc3RkOjpm
bG9vcihvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmMzJfdHJ1bmMpCit7
CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMt
PmFzPFdhc21GMzJUcnVuYz4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlv
bi5tX29wZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVu
Y29kZSh3YXNtVW5ib3hlZEZsb2F0KHN0ZDo6dHJ1bmMob3BlcmFuZCkpKSk7Cit9CisKK1dBU01f
U0xPV19QQVRIX0RFQ0woZjMyX25lYXJlc3QpCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Om51
bWVyaWNfbGltaXRzPGZsb2F0Pjo6cm91bmRfc3R5bGUgPT0gc3RkOjpyb3VuZF90b19uZWFyZXN0
KTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBw
Yy0+YXM8V2FzbUYzMk5lYXJlc3Q+KCk7CisgICAgZmxvYXQgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1
Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVkRmxvYXQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVl
OjplbmNvZGUod2FzbVVuYm94ZWRGbG9hdChzdGQ6Om5lYXJieWludChvcGVyYW5kKSkpKTsKK30K
KworV0FTTV9TTE9XX1BBVEhfREVDTChmNjRfY2VpbCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5z
dGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NENlaWw+KCk7Cisg
ICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERv
dWJsZSgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihz
dGQ6OmNlaWwob3BlcmFuZCkpKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woZjY0X2Zsb29y
KQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9
IHBjLT5hczxXYXNtRjY0Rmxvb3I+KCk7CisgICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGluc3Ry
dWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgpOworICAgIFdBU01fUkVUVVJOKEpTVmFs
dWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGQ6OmZsb29yKG9wZXJhbmQpKSkpOworfQorCitX
QVNNX1NMT1dfUEFUSF9ERUNMKGY2NF90cnVuYykKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFu
Y2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUY2NFRydW5jPigpOworICAg
IGRvdWJsZSBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWREb3Vi
bGUoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoc3Rk
Ojp0cnVuYyhvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmNjRfbmVhcmVz
dCkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpyb3Vu
ZF9zdHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOworICAgIFVOVVNFRF9QQVJBTShpbnN0
YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjY0TmVhcmVzdD4oKTsK
KyAgICBkb3VibGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVyYW5kKS51bmJveGVk
RG91YmxlKCk7CisgICAgV0FTTV9SRVRVUk4oSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVy
KHN0ZDo6bmVhcmJ5aW50KG9wZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGYz
Ml9jb252ZXJ0X3VfaTY0KQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0
czxmbG9hdD46OnJvdW5kX3N0eWxlID09IHN0ZDo6cm91bmRfdG9fbmVhcmVzdCk7CisgICAgVU5V
U0VEX1BBUkFNKGluc3RhbmNlKTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21G
MzJDb252ZXJ0VUk2ND4oKTsKKyAgICB1aW50NjRfdCBvcGVyYW5kID0gUkVBRChpbnN0cnVjdGlv
bi5tX29wZXJhbmQpLnVuYm94ZWRJbnQ2NCgpOworICAgIFdBU01fUkVUVVJOKEpTVmFsdWU6OmVu
Y29kZSh3YXNtVW5ib3hlZEZsb2F0KHN0YXRpY19jYXN0PGZsb2F0PihvcGVyYW5kKSkpKTsKK30K
KworV0FTTV9TTE9XX1BBVEhfREVDTChmMzJfY29udmVydF9zX2k2NCkKK3sKKyAgICBzdGF0aWNf
YXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6OnJv
dW5kX3RvX25lYXJlc3QpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBp
bnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjMyQ29udmVydFNJNjQ+KCk7CisgICAgaW50NjRfdCBv
cGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRJbnQ2NCgpOworICAg
IFdBU01fUkVUVVJOKEpTVmFsdWU6OmVuY29kZSh3YXNtVW5ib3hlZEZsb2F0KHN0YXRpY19jYXN0
PGZsb2F0PihvcGVyYW5kKSkpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChmNjRfY29udmVy
dF91X2k2NCkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+
Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25lYXJlc3QpOworICAgIFVOVVNFRF9QQVJB
TShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBjLT5hczxXYXNtRjY0Q29udmVy
dFVJNjQ+KCk7CisgICAgdWludDY0X3Qgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24ubV9vcGVy
YW5kKS51bmJveGVkSW50NjQoKTsKKyAgICBXQVNNX1JFVFVSTihKU1ZhbHVlOjplbmNvZGUoanNE
b3VibGVOdW1iZXIoc3RhdGljX2Nhc3Q8ZG91YmxlPihvcGVyYW5kKSkpKTsKK30KKworV0FTTV9T
TE9XX1BBVEhfREVDTChmNjRfY29udmVydF9zX2k2NCkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0
ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpyb3VuZF9zdHlsZSA9PSBzdGQ6OnJvdW5kX3RvX25l
YXJlc3QpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlv
biA9IHBjLT5hczxXYXNtRjY0Q29udmVydFNJNjQ+KCk7CisgICAgaW50NjRfdCBvcGVyYW5kID0g
UkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRJbnQ2NCgpOworICAgIFdBU01fUkVU
VVJOKEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihzdGF0aWNfY2FzdDxkb3VibGU+KG9w
ZXJhbmQpKSkpOworfQorCitXQVNNX1NMT1dfUEFUSF9ERUNMKGk2NF90cnVuY191X2YzMikKK3sK
KyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+
YXM8V2FzbUk2NFRydW5jVUYzMj4oKTsKKyAgICBmbG9hdCBvcGVyYW5kID0gUkVBRChpbnN0cnVj
dGlvbi5tX29wZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJh
bmQpIHx8IG9wZXJhbmQgPD0gLTEuMGYgfHwgb3BlcmFuZCA+PSAtMi4wZiAqIHN0YXRpY19jYXN0
PGZsb2F0PihJTlQ2NF9NSU4pKQorICAgICAgICBXQVNNX1RIUk9XKFdhc206OkV4Y2VwdGlvblR5
cGU6Ok91dE9mQm91bmRzVHJ1bmMpOworICAgIFdBU01fUkVUVVJOKHN0YXRpY19jYXN0PHVpbnQ2
NF90PihvcGVyYW5kKSk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3NfZjMy
KQoreworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9
IHBjLT5hczxXYXNtSTY0VHJ1bmNTRjMyPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGlu
c3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgaWYgKHN0ZDo6aXNuYW4o
b3BlcmFuZCkgfHwgb3BlcmFuZCA8IHN0YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4pIHx8IG9w
ZXJhbmQgPj0gLXN0YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4pKQorICAgICAgICBXQVNNX1RI
Uk9XKFdhc206OkV4Y2VwdGlvblR5cGU6Ok91dE9mQm91bmRzVHJ1bmMpOworICAgIFdBU01fUkVU
VVJOKHN0YXRpY19jYXN0PGludDY0X3Q+KG9wZXJhbmQpKTsKK30KKworV0FTTV9TTE9XX1BBVEhf
REVDTChpNjRfdHJ1bmNfdV9mNjQpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKKyAg
ICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1VGNjQ+KCk7CisgICAgZG91
YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERvdWJsZSgp
OworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9wZXJhbmQgPD0gLTEuMCB8fCBvcGVy
YW5kID49IC0yLjAgKiBzdGF0aWNfY2FzdDxkb3VibGU+KElOVDY0X01JTikpCisgICAgICAgIFdB
U01fVEhST1coV2FzbTo6RXhjZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNUcnVuYyk7CisgICAgV0FT
TV9SRVRVUk4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG9wZXJhbmQpKTsKK30KKworV0FTTV9TTE9X
X1BBVEhfREVDTChpNjRfdHJ1bmNfc19mNjQpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNl
KTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1NGNjQ+KCk7Cisg
ICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZERv
dWJsZSgpOworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9wZXJhbmQgPCBzdGF0aWNf
Y2FzdDxkb3VibGU+KElOVDY0X01JTikgfHwgb3BlcmFuZCA+PSAtc3RhdGljX2Nhc3Q8ZG91Ymxl
PihJTlQ2NF9NSU4pKQorICAgICAgICBXQVNNX1RIUk9XKFdhc206OkV4Y2VwdGlvblR5cGU6Ok91
dE9mQm91bmRzVHJ1bmMpOworICAgIFdBU01fUkVUVVJOKHN0YXRpY19jYXN0PGludDY0X3Q+KG9w
ZXJhbmQpKTsKK30KKworV0FTTV9TTE9XX1BBVEhfREVDTChpNjRfdHJ1bmNfc2F0X2YzMl91KQor
eworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisgICAgYXV0byBpbnN0cnVjdGlvbiA9IHBj
LT5hczxXYXNtSTY0VHJ1bmNTYXRGMzJVPigpOworICAgIGZsb2F0IG9wZXJhbmQgPSBSRUFEKGlu
c3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hlZEZsb2F0KCk7CisgICAgdWludDY0X3QgcmVzdWx0
OworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpIHx8IG9wZXJhbmQgPD0gLTEuMGYpCisgICAg
ICAgIHJlc3VsdCA9IDA7CisgICAgZWxzZSBpZiAob3BlcmFuZCA+PSAtMi4wZiAqIHN0YXRpY19j
YXN0PGZsb2F0PihJTlQ2NF9NSU4pKQorICAgICAgICByZXN1bHQgPSBVSU5UNjRfTUFYOworICAg
IGVsc2UKKyAgICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG9wZXJhbmQpOwor
ICAgIFdBU01fUkVUVVJOKHJlc3VsdCk7Cit9CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3Ry
dW5jX3NhdF9mMzJfcykKK3sKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8g
aW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2NFRydW5jU2F0RjMyUz4oKTsKKyAgICBmbG9hdCBv
cGVyYW5kID0gUkVBRChpbnN0cnVjdGlvbi5tX29wZXJhbmQpLnVuYm94ZWRGbG9hdCgpOworICAg
IGludDY0X3QgcmVzdWx0OworICAgIGlmIChzdGQ6OmlzbmFuKG9wZXJhbmQpKQorICAgICAgICBy
ZXN1bHQgPSAwOworICAgIGVsc2UgaWYgKG9wZXJhbmQgPCBzdGF0aWNfY2FzdDxmbG9hdD4oSU5U
NjRfTUlOKSkKKyAgICAgICAgcmVzdWx0ID0gSU5UNjRfTUlOOworICAgIGVsc2UgaWYgKG9wZXJh
bmQgPj0gLXN0YXRpY19jYXN0PGZsb2F0PihJTlQ2NF9NSU4pKQorICAgICAgICByZXN1bHQgPSBJ
TlQ2NF9NQVg7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxpbnQ2NF90
PihvcGVyYW5kKTsKKyAgICBXQVNNX1JFVFVSTihyZXN1bHQpOworfQorCitXQVNNX1NMT1dfUEFU
SF9ERUNMKGk2NF90cnVuY19zYXRfZjY0X3UpCit7CisgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNl
KTsKKyAgICBhdXRvIGluc3RydWN0aW9uID0gcGMtPmFzPFdhc21JNjRUcnVuY1NhdEY2NFU+KCk7
CisgICAgZG91YmxlIG9wZXJhbmQgPSBSRUFEKGluc3RydWN0aW9uLm1fb3BlcmFuZCkudW5ib3hl
ZERvdWJsZSgpOworICAgIHVpbnQ2NF90IHJlc3VsdDsKKyAgICBpZiAoc3RkOjppc25hbihvcGVy
YW5kKSB8fCBvcGVyYW5kIDw9IC0xLjApCisgICAgICAgIHJlc3VsdCA9IDA7CisgICAgZWxzZSBp
ZiAob3BlcmFuZCA+PSAtMi4wICogc3RhdGljX2Nhc3Q8ZG91YmxlPihJTlQ2NF9NSU4pKQorICAg
ICAgICByZXN1bHQgPSBVSU5UNjRfTUFYOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KG9wZXJhbmQpOworICAgIFdBU01fUkVUVVJOKHJlc3VsdCk7Cit9
CisKK1dBU01fU0xPV19QQVRIX0RFQ0woaTY0X3RydW5jX3NhdF9mNjRfcykKK3sKKyAgICBVTlVT
RURfUEFSQU0oaW5zdGFuY2UpOworICAgIGF1dG8gaW5zdHJ1Y3Rpb24gPSBwYy0+YXM8V2FzbUk2
NFRydW5jU2F0RjY0Uz4oKTsKKyAgICBkb3VibGUgb3BlcmFuZCA9IFJFQUQoaW5zdHJ1Y3Rpb24u
bV9vcGVyYW5kKS51bmJveGVkRG91YmxlKCk7CisgICAgaW50NjRfdCByZXN1bHQ7CisgICAgaWYg
KHN0ZDo6aXNuYW4ob3BlcmFuZCkpCisgICAgICAgIHJlc3VsdCA9IDA7CisgICAgZWxzZSBpZiAo
b3BlcmFuZCA8IHN0YXRpY19jYXN0PGRvdWJsZT4oSU5UNjRfTUlOKSkKKyAgICAgICAgcmVzdWx0
ID0gSU5UNjRfTUlOOworICAgIGVsc2UgaWYgKG9wZXJhbmQgPj0gLXN0YXRpY19jYXN0PGRvdWJs
ZT4oSU5UNjRfTUlOKSkKKyAgICAgICAgcmVzdWx0ID0gSU5UNjRfTUFYOworICAgIGVsc2UKKyAg
ICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8aW50NjRfdD4ob3BlcmFuZCk7CisgICAgV0FTTV9S
RVRVUk4ocmVzdWx0KTsKK30KKyNlbmRpZgorCiBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlw
ZSBzbG93X3BhdGhfd2FzbV90aHJvd19leGNlcHRpb24oQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIGNv
bnN0IFdhc21JbnN0cnVjdGlvbiogcGMsIFdhc206Okluc3RhbmNlKiBpbnN0YW5jZSwgV2FzbTo6
RXhjZXB0aW9uVHlwZSBleGNlcHRpb25UeXBlKQogewogICAgIFVOVVNFRF9QQVJBTShwYyk7CkBA
IC03MzEsMTYgKzk0MSwyOCBAQCBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBzbG93X3Bh
dGhfd2FzbV90aHJvd19leGNlcHRpb24oQ2FsbEZyYW1lKiBjYWxsRnJhbQogCiBleHRlcm4gIkMi
IFNsb3dQYXRoUmV0dXJuVHlwZSBzbG93X3BhdGhfd2FzbV9wb3Bjb3VudChjb25zdCBXYXNtSW5z
dHJ1Y3Rpb24qIHBjLCB1aW50MzJfdCB4KQogewotICAgIHZvaWQqIHJlc3VsdCA9IGJpdHdpc2Vf
Y2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KF9fYnVpbHRpbl9wb3Bjb3VudCh4KSkp
OworICAgIHZvaWQqIHJlc3VsdCA9IGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8c2l6
ZV90PihfX2J1aWx0aW5fcG9wY291bnQoeCkpKTsKICAgICBXQVNNX1JFVFVSTl9UV08ocGMsIHJl
c3VsdCk7CiB9CiAKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIHNsb3dfcGF0aF93YXNt
X3BvcGNvdW50bGwoY29uc3QgV2FzbUluc3RydWN0aW9uKiBwYywgdWludDY0X3QgeCkKIHsKLSAg
ICB2b2lkKiByZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PHVpbnQ2NF90
PihfX2J1aWx0aW5fcG9wY291bnRsbCh4KSkpOworICAgIHZvaWQqIHJlc3VsdCA9IGJpdHdpc2Vf
Y2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8c2l6ZV90PihfX2J1aWx0aW5fcG9wY291bnRsbCh4KSkp
OwogICAgIFdBU01fUkVUVVJOX1RXTyhwYywgcmVzdWx0KTsKIH0KIAorI2lmIFVTRShKU1ZBTFVF
MzJfNjQpCisvLyBOb3RlOiBBbGwgdGhlc2UgZGl2IGFuZCByZW0gb3BzIHBlcmZvcm0gZXhjZXB0
aW9uIGNoZWNrcyBpbiBhc20KK2V4dGVybiAiQyIgaW50MzJfdCBzbG93X3BhdGhfd2FzbV9pMzJf
ZGl2X3MoaW50MzJfdCBhLCBpbnQzMl90IGIpIHsgcmV0dXJuIGEgLyBiOyB9CitleHRlcm4gIkMi
IHVpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kzMl9kaXZfdSh1aW50MzJfdCBhLCB1aW50MzJfdCBi
KSB7IHJldHVybiBhIC8gYjsgfQorZXh0ZXJuICJDIiBpbnQzMl90IHNsb3dfcGF0aF93YXNtX2kz
Ml9yZW1fcyhpbnQzMl90IGEsIGludDMyX3QgYikgeyByZXR1cm4gYSAlIGI7IH0KK2V4dGVybiAi
QyIgdWludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX3JlbV91KHVpbnQzMl90IGEsIHVpbnQzMl90
IGIpIHsgcmV0dXJuIGEgJSBiOyB9CitleHRlcm4gIkMiIGludDY0X3Qgc2xvd19wYXRoX3dhc21f
aTY0X2Rpdl9zKGludDY0X3QgYSwgaW50NjRfdCBiKSB7IHJldHVybiBhIC8gYjsgfQorZXh0ZXJu
ICJDIiB1aW50NjRfdCBzbG93X3BhdGhfd2FzbV9pNjRfZGl2X3UodWludDY0X3QgYSwgdWludDY0
X3QgYikgeyByZXR1cm4gYSAvIGI7IH0KK2V4dGVybiAiQyIgaW50NjRfdCBzbG93X3BhdGhfd2Fz
bV9pNjRfcmVtX3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpIHsgcmV0dXJuIGEgJSBiOyB9CitleHRl
cm4gIkMiIHVpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9yZW1fdSh1aW50NjRfdCBhLCB1aW50
NjRfdCBiKSB7IHJldHVybiBhICUgYjsgfQorI2VuZGlmCisKIH0gfSAvLyBuYW1lc3BhY2UgSlND
OjpMTEludAogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5oCmluZGV4IDY3OGMxNzI4Mzc2OC4uZTcwMGRhZDY5
YWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5oCkBAIC05
NSw2ICs5NSw0MCBAQCBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBzbG93X3BhdGhfd2Fz
bV90aHJvd19leGNlcHRpb24oQ2FsbEZyYW1lKiwgY29uc3QgVwogZXh0ZXJuICJDIiBTbG93UGF0
aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fcG9wY291bnQoY29uc3QgV2FzbUluc3RydWN0aW9u
KiBwYywgdWludDMyX3QpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOwogZXh0ZXJu
ICJDIiBTbG93UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX3dhc21fcG9wY291bnRsbChjb25zdCBX
YXNtSW5zdHJ1Y3Rpb24qIHBjLCB1aW50NjRfdCkgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5U
RVJOQUw7CiAKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorV0FTTV9TTE9XX1BBVEhfSElEREVOX0RF
Q0woZjMyX2NlaWwpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woZjMyX2Zsb29yKTsKK1dB
U01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGYzMl90cnVuYyk7CitXQVNNX1NMT1dfUEFUSF9ISURE
RU5fREVDTChmMzJfbmVhcmVzdCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfY2Vp
bCk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChmNjRfZmxvb3IpOworV0FTTV9TTE9XX1BB
VEhfSElEREVOX0RFQ0woZjY0X3RydW5jKTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGY2
NF9uZWFyZXN0KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGYzMl9jb252ZXJ0X3VfaTY0
KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGYzMl9jb252ZXJ0X3NfaTY0KTsKK1dBU01f
U0xPV19QQVRIX0hJRERFTl9ERUNMKGY2NF9jb252ZXJ0X3VfaTY0KTsKK1dBU01fU0xPV19QQVRI
X0hJRERFTl9ERUNMKGY2NF9jb252ZXJ0X3NfaTY0KTsKK1dBU01fU0xPV19QQVRIX0hJRERFTl9E
RUNMKGk2NF90cnVuY191X2YzMik7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRfdHJ1
bmNfc19mMzIpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RFQ0woaTY0X3RydW5jX3VfZjY0KTsK
K1dBU01fU0xPV19QQVRIX0hJRERFTl9ERUNMKGk2NF90cnVuY19zX2Y2NCk7CitXQVNNX1NMT1df
UEFUSF9ISURERU5fREVDTChpNjRfdHJ1bmNfc2F0X2YzMl91KTsKK1dBU01fU0xPV19QQVRIX0hJ
RERFTl9ERUNMKGk2NF90cnVuY19zYXRfZjMyX3MpOworV0FTTV9TTE9XX1BBVEhfSElEREVOX0RF
Q0woaTY0X3RydW5jX3NhdF9mNjRfdSk7CitXQVNNX1NMT1dfUEFUSF9ISURERU5fREVDTChpNjRf
dHJ1bmNfc2F0X2Y2NF9zKTsKKyNlbmRpZgorCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKK2V4dGVy
biAiQyIgaW50MzJfdCBzbG93X3BhdGhfd2FzbV9pMzJfZGl2X3MoaW50MzJfdCBhLCBpbnQzMl90
IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJDIiB1aW50MzJf
dCBzbG93X3BhdGhfd2FzbV9pMzJfZGl2X3UodWludDMyX3QgYSwgdWludDMyX3QgYikgUkVGRVJF
TkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4gIkMiIGludDMyX3Qgc2xvd19wYXRo
X3dhc21faTMyX3JlbV9zKGludDMyX3QgYSwgaW50MzJfdCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNN
IFdURl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgdWludDMyX3Qgc2xvd19wYXRoX3dhc21faTMyX3Jl
bV91KHVpbnQzMl90IGEsIHVpbnQzMl90IGIpIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVS
TkFMOworZXh0ZXJuICJDIiBpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9kaXZfcyhpbnQ2NF90
IGEsIGludDY0X3QgYikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7CitleHRlcm4g
IkMiIHVpbnQ2NF90IHNsb3dfcGF0aF93YXNtX2k2NF9kaXZfdSh1aW50NjRfdCBhLCB1aW50NjRf
dCBiKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsKK2V4dGVybiAiQyIgaW50NjRf
dCBzbG93X3BhdGhfd2FzbV9pNjRfcmVtX3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpIFJFRkVSRU5D
RURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOworZXh0ZXJuICJDIiB1aW50NjRfdCBzbG93X3BhdGhf
d2FzbV9pNjRfcmVtX3UodWludDY0X3QgYSwgdWludDY0X3QgYikgUkVGRVJFTkNFRF9GUk9NX0FT
TSBXVEZfSU5URVJOQUw7CisjZW5kaWYKKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50CiAK
ICNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5jcHAKaW5kZXggNTIyM2YzYWI0ZTQwLi42OGM3ODg4
OTA2ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxv
Y2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2Nh
dGlvbi5jcHAKQEAgLTM1LDggKzM1LDExIEBAIHZvaWQgVmFsdWVMb2NhdGlvbjo6ZHVtcChQcmlu
dFN0cmVhbSYgb3V0KSBjb25zdAogewogICAgIG91dC5wcmludChtX2tpbmQpOwogICAgIHN3aXRj
aCAobV9raW5kKSB7Ci0gICAgY2FzZSBSZWdpc3RlcjoKLSAgICAgICAgb3V0LnByaW50KCIoIiwg
cmVnKCksICIpIik7CisgICAgY2FzZSBHUFJSZWdpc3RlcjoKKyAgICAgICAgb3V0LnByaW50KCIo
IiwganNyKCksICIpIik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEZQUlJlZ2lzdGVyOgor
ICAgICAgICBvdXQucHJpbnQoIigiLCBmcHIoKSwgIikiKTsKICAgICAgICAgcmV0dXJuOwogICAg
IGNhc2UgU3RhY2s6CiAgICAgICAgIG91dC5wcmludCgiKCIsIG9mZnNldEZyb21GUCgpLCAiKSIp
OwpAQCAtNTcsOCArNjAsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzo6V2FzbTsKIHZvaWQgcHJp
bnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBWYWx1ZUxvY2F0aW9uOjpLaW5kIGtpbmQpCiB7
CiAgICAgc3dpdGNoIChraW5kKSB7Ci0gICAgY2FzZSBWYWx1ZUxvY2F0aW9uOjpSZWdpc3RlcjoK
LSAgICAgICAgb3V0LnByaW50KCJSZWdpc3RlciIpOworICAgIGNhc2UgVmFsdWVMb2NhdGlvbjo6
R1BSUmVnaXN0ZXI6CisgICAgICAgIG91dC5wcmludCgiR1BSUmVnaXN0ZXIiKTsKKyAgICAgICAg
cmV0dXJuOworICAgIGNhc2UgVmFsdWVMb2NhdGlvbjo6RlBSUmVnaXN0ZXI6CisgICAgICAgIG91
dC5wcmludCgiRlBSUmVnaXN0ZXIiKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgVmFsdWVM
b2NhdGlvbjo6U3RhY2s6CiAgICAgICAgIG91dC5wcmludCgiU3RhY2siKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWx1ZUxvY2F0aW9uLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsdWVMb2NhdGlvbi5oCmluZGV4IGE2MWZiYThiZDAx
Yy4uNWNiNTEwZGJiZDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtVmFsdWVMb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21W
YWx1ZUxvY2F0aW9uLmgKQEAgLTQxLDI1ICs0MSwyNyBAQCBjbGFzcyBWYWx1ZUxvY2F0aW9uIHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBlbnVtIEtpbmQgOiB1
aW50OF90IHsKLSAgICAgICAgUmVnaXN0ZXIsCisgICAgICAgIEdQUlJlZ2lzdGVyLAorICAgICAg
ICBGUFJSZWdpc3RlciwKICAgICAgICAgU3RhY2ssCiAgICAgICAgIFN0YWNrQXJndW1lbnQsCiAg
ICAgfTsKIAogICAgIFZhbHVlTG9jYXRpb24oKQotICAgICAgICA6IG1fa2luZChSZWdpc3RlcikK
KyAgICAgICAgOiBtX2tpbmQoR1BSUmVnaXN0ZXIpCiAgICAgewogICAgIH0KIAotICAgIGV4cGxp
Y2l0IFZhbHVlTG9jYXRpb24oUmVnIHJlZykKLSAgICAgICAgOiBtX2tpbmQoUmVnaXN0ZXIpCisg
ICAgZXhwbGljaXQgVmFsdWVMb2NhdGlvbihKU1ZhbHVlUmVncyByZWdzKQorICAgICAgICA6IG1f
a2luZChHUFJSZWdpc3RlcikKICAgICB7Ci0gICAgICAgIHUucmVnID0gcmVnOworICAgICAgICB1
LmpzciA9IHJlZ3M7CiAgICAgfQogCi0gICAgc3RhdGljIFZhbHVlTG9jYXRpb24gcmVnKFJlZyBy
ZWcpCisgICAgZXhwbGljaXQgVmFsdWVMb2NhdGlvbihGUFJSZWcgcmVnKQorICAgICAgICA6IG1f
a2luZChGUFJSZWdpc3RlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBWYWx1ZUxvY2F0aW9uKHJl
Zyk7CisgICAgICAgIHUuZnByID0gcmVnOwogICAgIH0KIAogICAgIHN0YXRpYyBWYWx1ZUxvY2F0
aW9uIHN0YWNrKGludHB0cl90IG9mZnNldEZyb21GUCkKQEAgLTgwLDIxICs4MiwyMiBAQCBwdWJs
aWM6CiAKICAgICBLaW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBtX2tpbmQ7IH0KIAotICAgIGJv
b2wgaXNSZWcoKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gUmVnaXN0ZXI7IH0KKyAgICBib29s
IGlzR1BSKCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IEdQUlJlZ2lzdGVyOyB9CisgICAgYm9v
bCBpc0ZQUigpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBGUFJSZWdpc3RlcjsgfQorICAgIGJv
b2wgaXNTdGFjaygpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBTdGFjazsgfQorICAgIGJvb2wg
aXNTdGFja0FyZ3VtZW50KCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IFN0YWNrQXJndW1lbnQ7
IH0KIAotICAgIFJlZyByZWcoKSBjb25zdAorICAgIEpTVmFsdWVSZWdzIGpzcigpIGNvbnN0CiAg
ICAgewotICAgICAgICBBU1NFUlQoaXNSZWcoKSk7Ci0gICAgICAgIHJldHVybiB1LnJlZzsKKyAg
ICAgICAgQVNTRVJUKGlzR1BSKCkpOworICAgICAgICByZXR1cm4gdS5qc3I7CiAgICAgfQogCi0g
ICAgYm9vbCBpc0dQUigpIGNvbnN0IHsgcmV0dXJuIGlzUmVnKCkgJiYgcmVnKCkuaXNHUFIoKTsg
fQotICAgIGJvb2wgaXNGUFIoKSBjb25zdCB7IHJldHVybiBpc1JlZygpICYmIHJlZygpLmlzRlBS
KCk7IH0KLQotICAgIEdQUlJlZyBncHIoKSBjb25zdCB7IHJldHVybiByZWcoKS5ncHIoKTsgfQot
ICAgIEZQUlJlZyBmcHIoKSBjb25zdCB7IHJldHVybiByZWcoKS5mcHIoKTsgfQotCi0gICAgYm9v
bCBpc1N0YWNrKCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IFN0YWNrOyB9CisgICAgRlBSUmVn
IGZwcigpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNGUFIoKSk7CisgICAgICAgIHJl
dHVybiB1LmZwcjsKKyAgICB9CiAKICAgICBpbnRwdHJfdCBvZmZzZXRGcm9tRlAoKSBjb25zdAog
ICAgIHsKQEAgLTEwMiw4ICsxMDUsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB1Lm9mZnNl
dEZyb21GUDsKICAgICB9CiAKLSAgICBib29sIGlzU3RhY2tBcmd1bWVudCgpIGNvbnN0IHsgcmV0
dXJuIGtpbmQoKSA9PSBTdGFja0FyZ3VtZW50OyB9Ci0KICAgICBpbnRwdHJfdCBvZmZzZXRGcm9t
U1AoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKGlzU3RhY2tBcmd1bWVudCgpKTsKQEAg
LTExNCw3ICsxMTUsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdW5pb24gVSB7Ci0gICAg
ICAgIFJlZyByZWc7CisgICAgICAgIEpTVmFsdWVSZWdzIGpzcjsKKyAgICAgICAgRlBSUmVnIGZw
cjsKICAgICAgICAgaW50cHRyX3Qgb2Zmc2V0RnJvbUZQOwogICAgICAgICBpbnRwdHJfdCBvZmZz
ZXRGcm9tU1A7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pT
VG9XYXNtLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNwcApp
bmRleCA4OTQyMGQ4ODEzNDYuLjBmNjI0ZTBiNjFkYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL0pTVG9XYXNtLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNDYWxs
SGVscGVycy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNX
ZWJBc3NlbWJseUluc3RhbmNlLmgiCisjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0
aENhbGwuaCIKICNpbmNsdWRlICJXYXNtQ2FsbGluZ0NvbnZlbnRpb24uaCIKICNpbmNsdWRlICJX
YXNtQ29udGV4dElubGluZXMuaCIKICNpbmNsdWRlICJXYXNtT3BlcmF0aW9ucy5oIgpAQCAtNDEs
MTMgKzQyLDEzIEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiB2b2lkIG1hcnNo
YWxsSlNSZXN1bHQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFR5cGVEZWZpbml0aW9uJiB0eXBl
RGVmaW5pdGlvbiwgY29uc3QgQ2FsbEluZm9ybWF0aW9uJiB3YXNtRnJhbWVDb252ZW50aW9uLCBj
b25zdCBSZWdpc3RlckF0T2Zmc2V0TGlzdCYgc2F2ZWRSZXN1bHRSZWdpc3RlcnMpCiB7CiAgICAg
Y29uc3QgYXV0byYgc2lnbmF0dXJlID0gKnR5cGVEZWZpbml0aW9uLmFzPEZ1bmN0aW9uU2lnbmF0
dXJlPigpOwotICAgIGF1dG8gYm94V2FzbVJlc3VsdCA9IFtdKENDYWxsSGVscGVycyYgaml0LCBU
eXBlIHR5cGUsIFJlZyBzcmMsIEpTVmFsdWVSZWdzIGRzdCkgeworICAgIGF1dG8gYm94V2FzbVJl
c3VsdCA9IFtdKENDYWxsSGVscGVycyYgaml0LCBUeXBlIHR5cGUsIFZhbHVlTG9jYXRpb24gc3Jj
LCBKU1ZhbHVlUmVncyBkc3QpIHsKICAgICAgICAgc3dpdGNoICh0eXBlLmtpbmQpIHsKICAgICAg
ICAgY2FzZSBUeXBlS2luZDo6Vm9pZDoKICAgICAgICAgICAgIGppdC5tb3ZlVHJ1c3RlZFZhbHVl
KGpzVW5kZWZpbmVkKCksIGRzdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBU
eXBlS2luZDo6STMyOgotICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChzcmMuZ3By
KCksIGRzdC5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29y
ZChzcmMuanNyKCkucGF5bG9hZEdQUigpLCBkc3QucGF5bG9hZEdQUigpKTsKICAgICAgICAgICAg
IGppdC5ib3hJbnQzMihkc3QucGF5bG9hZEdQUigpLCBkc3QsIERvTm90SGF2ZVRhZ1JlZ2lzdGVy
cyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgpAQCAt
NTYsMTMgKzU3LDE3IEBAIHZvaWQgbWFyc2hhbGxKU1Jlc3VsdChDQ2FsbEhlbHBlcnMmIGppdCwg
Y29uc3QgVHlwZURlZmluaXRpb24mIHR5cGVEZWZpbml0aW9uLCBjCiAgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OkY2NDogewogICAgICAgICAgICAgaml0Lm1vdmVUcnVzdGVkVmFsdWUoanNOdW1iZXIo
cHVyZU5hTigpKSwgZHN0KTsKICAgICAgICAgICAgIGF1dG8gaXNOYU4gPSBqaXQuYnJhbmNoSWZO
YU4oc3JjLmZwcigpKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgaml0LmJveERv
dWJsZShzcmMuZnByKCksIGRzdCwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyNlbHNlCisgICAg
ICAgICAgICBqaXQuYm94RG91YmxlKHNyYy5mcHIoKSwgZHN0KTsKKyNlbmRpZgogICAgICAgICAg
ICAgaXNOYU4ubGluaygmaml0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIGRlZmF1bHQ6IHsKICAgICAgICAgICAgIGlmIChpc0Z1bmNyZWYodHlwZSkgfHwgaXNFeHRl
cm5yZWYodHlwZSkpCi0gICAgICAgICAgICAgICAgaml0Lm1vdmUoc3JjLmdwcigpLCBkc3QucGF5
bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAgICBqaXQubW92ZVZhbHVlUmVncyhzcmMuanNyKCks
IGRzdCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgaml0LmJyZWFrcG9pbnQo
KTsKICAgICAgICAgfQpAQCAtNzAsNDQgKzc1LDg3IEBAIHZvaWQgbWFyc2hhbGxKU1Jlc3VsdChD
Q2FsbEhlbHBlcnMmIGppdCwgY29uc3QgVHlwZURlZmluaXRpb24mIHR5cGVEZWZpbml0aW9uLCBj
CiAgICAgfTsKIAogICAgIGlmIChzaWduYXR1cmUucmV0dXJuc1ZvaWQoKSkKLSAgICAgICAgaml0
Lm1vdmVUcnVzdGVkVmFsdWUoanNVbmRlZmluZWQoKSwgSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUiB9KTsKKyAgICAgICAgaml0Lm1vdmVUcnVzdGVkVmFsdWUoanNVbmRlZmlu
ZWQoKSwgSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpOwogICAgIGVsc2UgaWYgKHNpZ25hdHVyZS5y
ZXR1cm5Db3VudCgpID09IDEpIHsKICAgICAgICAgaWYgKHNpZ25hdHVyZS5yZXR1cm5UeXBlKDAp
LmlzSTY0KCkpIHsKLSAgICAgICAgICAgIEdQUlJlZyBpbnB1dEdQUiA9IHdhc21GcmFtZUNvbnZl
bnRpb24ucmVzdWx0c1swXS5yZWcoKS5ncHIoKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIGlu
cHV0SlNSID0gd2FzbUZyYW1lQ29udmVudGlvbi5yZXN1bHRzWzBdLmpzcigpOwogICAgICAgICAg
ICAgR1BSUmVnIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBQaW5uZWRSZWdpc3RlckluZm86Omdl
dCgpLndhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyOwogICAgICAgICAgICAgaWYgKENvbnRleHQ6
OnVzZUZhc3RUTFMoKSkgewotICAgICAgICAgICAgICAgIHdhc21Db250ZXh0SW5zdGFuY2VHUFIg
PSBpbnB1dEdQUiA9PSBHUFJJbmZvOjphcmd1bWVudEdQUjEgPyBHUFJJbmZvOjphcmd1bWVudEdQ
UjAgOiBHUFJJbmZvOjphcmd1bWVudEdQUjE7Ci0gICAgICAgICAgICAgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6OmlzX3NhbWVfdjxXYXNtOjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRz
PGRlY2x0eXBlKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5KT46OkFyZ3VtZW50VHlwZTwx
Pj4pOworICAgICAgICAgICAgICAgIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBpbnB1dEpTUi5w
YXlsb2FkR1BSKCkgPT0gR1BSSW5mbzo6YXJndW1lbnRHUFIxID8gR1BSSW5mbzo6YXJndW1lbnRH
UFIwIDogR1BSSW5mbzo6YXJndW1lbnRHUFIxOworICAgICAgICAgICAgICAgIEFTU0VSVCghaW5w
dXRKU1IudXNlcyh3YXNtQ29udGV4dEluc3RhbmNlR1BSKSk7CisgICAgICAgICAgICAgICAgc3Rh
dGljX2Fzc2VydChzdGQ6OmlzX3NhbWVfdjxXYXNtOjpJbnN0YW5jZSosIHR5cGVuYW1lIEZ1bmN0
aW9uVHJhaXRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+OjpBcmd1bWVudFR5
cGU8MT4+KTsKICAgICAgICAgICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uod2Fz
bUNvbnRleHRJbnN0YW5jZUdQUik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBqaXQuc2V0
dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KT4od2FzbUNvbnRl
eHRJbnN0YW5jZUdQUiwgaW5wdXRHUFIpOworICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRz
PGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+KHdhc21Db250ZXh0SW5zdGFuY2VH
UFIsIGlucHV0SlNSKTsKICAgICAgICAgICAgIGppdC5jYWxsT3BlcmF0aW9uKEZ1bmN0aW9uUHRy
PE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KSk7CiAgICAgICAgIH0g
ZWxzZQotICAgICAgICAgICAgYm94V2FzbVJlc3VsdChqaXQsIHNpZ25hdHVyZS5yZXR1cm5UeXBl
KDApLCB3YXNtRnJhbWVDb252ZW50aW9uLnJlc3VsdHNbMF0ucmVnKCksIEpTVmFsdWVSZWdzIHsg
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIgfSk7CisgICAgICAgICAgICBib3hXYXNtUmVzdWx0KGpp
dCwgc2lnbmF0dXJlLnJldHVyblR5cGUoMCksIHdhc21GcmFtZUNvbnZlbnRpb24ucmVzdWx0c1sw
XSwgSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEluZGV4
aW5nVHlwZSBpbmRleGluZ1R5cGUgPSBBcnJheVdpdGhVbmRlY2lkZWQ7Ci0gICAgICAgIEpTVmFs
dWVSZWdzIHNjcmF0Y2ggPSBKU1ZhbHVlUmVncyB7IHdhc21DYWxsaW5nQ29udmVudGlvbigpLnBy
b2xvZ3VlU2NyYXRjaEdQUnNbMV0gfTsKKyAgICAgICAgSlNWYWx1ZVJlZ3Mgc2NyYXRjaEpTUiA9
IEpTVmFsdWVSZWdzIHsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgd2FzbUNh
bGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1syXSwKKyNlbmRpZgorICAgICAg
ICAgICAgd2FzbUNhbGxpbmdDb252ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1sxXQorICAg
ICAgICB9OworCisgICAgICAgIEFTU0VSVChzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSAhPSBHUFJS
ZWc6OkludmFsaWRHUFJSZWcpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIEFTU0VS
VChzY3JhdGNoSlNSLnRhZ0dQUigpICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZyk7CisgICAgICAg
IEFTU0VSVChzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSAhPSBzY3JhdGNoSlNSLnRhZ0dQUigpKTsK
KyNlbmRpZgorCiAgICAgICAgIC8vIFdlIGNhbiB1c2UgdGhlIGZpcnN0IGZsb2F0aW5nIHBvaW50
IHJlZ2lzdGVyIGFzIGEgc2NyYXRjaCBzaW5jZSBpdCB3aWxsIGFsd2F5cyBiZSBtb3ZlZCBvbnRv
IHRoZSBzdGFjayBiZWZvcmUgb3RoZXIgdmFsdWVzLgotICAgICAgICBGUFJSZWcgZnByU2NyYXRj
aCA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpLmZwckFyZ3NbMF0uZnByKCk7CisgICAgICAgIEZQ
UlJlZyBmcHJTY3JhdGNoID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkuZnByQXJnc1swXTsKICAg
ICAgICAgYm9vbCBoYXNJNjQgPSBmYWxzZTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHNpZ25hdHVyZS5yZXR1cm5Db3VudCgpOyArK2kpIHsKICAgICAgICAgICAgIFZhbHVlTG9j
YXRpb24gbG9jID0gd2FzbUZyYW1lQ29udmVudGlvbi5yZXN1bHRzW2ldOwogICAgICAgICAgICAg
VHlwZSB0eXBlID0gc2lnbmF0dXJlLnJldHVyblR5cGUoaSk7CiAKICAgICAgICAgICAgIGhhc0k2
NCB8PSB0eXBlLmlzSTY0KCk7Ci0gICAgICAgICAgICBpZiAobG9jLmlzUmVnKCkpIHsKLSAgICAg
ICAgICAgICAgICBpZiAoIXR5cGUuaXNJNjQoKSkgewotICAgICAgICAgICAgICAgICAgICBib3hX
YXNtUmVzdWx0KGppdCwgc2lnbmF0dXJlLnJldHVyblR5cGUoaSksIGxvYy5yZWcoKSwgc2NyYXRj
aCk7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2gsIENDYWxsSGVs
cGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJl
c3VsdFJlZ2lzdGVycy5maW5kKGxvYy5yZWcoKSktPm9mZnNldCgpICsgd2FzbUZyYW1lQ29udmVu
dGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpKTsKLSAgICAgICAgICAgICAg
ICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoSlNWYWx1ZVJlZ3Mg
eyBsb2MucmVnKCkuZ3ByKCkgfSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLnJlZygp
KS0+b2Zmc2V0KCkgKyB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tT
aXplSW5CeXRlcykpOworICAgICAgICAgICAgaWYgKGxvYy5pc0dQUigpIHx8IGxvYy5pc0ZQUigp
KSB7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICBBU1NFUlQoIWxvYy5p
c0dQUigpIHx8IHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIo
KSktPm9mZnNldCgpICsgNCA9PSBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS50
YWdHUFIoKSktPm9mZnNldCgpKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIGF1dG8gYWRkcmVz
cyA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lz
dGVyLCB3YXNtRnJhbWVDb252ZW50aW9uLmhlYWRlckFuZEFyZ3VtZW50U3RhY2tTaXplSW5CeXRl
cyk7CisgICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlLmtpbmQpIHsKKyAgICAgICAgICAgICAg
ICBjYXNlIFR5cGVLaW5kOjpGMzI6CisgICAgICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0
OgorICAgICAgICAgICAgICAgICAgICBib3hXYXNtUmVzdWx0KGppdCwgdHlwZSwgbG9jLCBzY3Jh
dGNoSlNSKTsKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoc2NyYXRjaEpTUiwg
YWRkcmVzcy53aXRoT2Zmc2V0KHNhdmVkUmVzdWx0UmVnaXN0ZXJzLmZpbmQobG9jLmZwcigpKS0+
b2Zmc2V0KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
Y2FzZSBUeXBlS2luZDo6STY0OgorICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShs
b2MuanNyKCksIGFkZHJlc3Mud2l0aE9mZnNldChzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxv
Yy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSkpOworICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBib3hX
YXNtUmVzdWx0KGppdCwgdHlwZSwgbG9jLCBzY3JhdGNoSlNSKTsKKyAgICAgICAgICAgICAgICAg
ICAgaml0LnN0b3JlVmFsdWUoc2NyYXRjaEpTUiwgYWRkcmVzcy53aXRoT2Zmc2V0KHNhdmVkUmVz
dWx0UmVnaXN0ZXJzLmZpbmQobG9jLmpzcigpLnBheWxvYWRHUFIoKSktPm9mZnNldCgpKSk7Cisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgaWYgKCF0eXBlLmlzSTY0KCkpIHsKICAgICAgICAg
ICAgICAgICAgICAgYXV0byBsb2NhdGlvbiA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhl
bHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBsb2Mub2Zmc2V0RnJvbVNQKCkpOwotICAgICAg
ICAgICAgICAgICAgICBSZWcgdG1wID0gKHR5cGUuaXNGMzIoKSB8fCB0eXBlLmlzRjY0KCkpID8g
UmVnKGZwclNjcmF0Y2gpIDogUmVnKHNjcmF0Y2guZ3ByKCkpOwotICAgICAgICAgICAgICAgICAg
ICBqaXQubG9hZDY0VG9SZWcobG9jYXRpb24sIHRtcCk7Ci0gICAgICAgICAgICAgICAgICAgIGJv
eFdhc21SZXN1bHQoaml0LCBzaWduYXR1cmUucmV0dXJuVHlwZShpKSwgdG1wLCBzY3JhdGNoKTsK
LSAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoc2NyYXRjaCwgbG9jYXRpb24pOwor
ICAgICAgICAgICAgICAgICAgICBWYWx1ZUxvY2F0aW9uIHRtcDsKKyAgICAgICAgICAgICAgICAg
ICAgc3dpdGNoICh0eXBlLmtpbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBUeXBlS2lu
ZDo6RjMyOgorICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gVmFsdWVMb2NhdGlvbiB7IGZw
clNjcmF0Y2ggfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkRmxvYXQobG9jYXRp
b24sIGZwclNjcmF0Y2gpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2NDoKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRtcCA9IFZhbHVlTG9jYXRpb24geyBmcHJTY3JhdGNoIH07CisgICAgICAgICAgICAgICAgICAg
ICAgICBqaXQubG9hZERvdWJsZShsb2NhdGlvbiwgZnByU2NyYXRjaCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMy
OgorICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gVmFsdWVMb2NhdGlvbiB7IHNjcmF0Y2hK
U1IgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkMzIobG9jYXRpb24sIHNjcmF0
Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0g
VmFsdWVMb2NhdGlvbiB7IHNjcmF0Y2hKU1IgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGpp
dC5sb2FkVmFsdWUobG9jYXRpb24sIHNjcmF0Y2hKU1IpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYm94
V2FzbVJlc3VsdChqaXQsIHR5cGUsIHRtcCwgc2NyYXRjaEpTUik7CisgICAgICAgICAgICAgICAg
ICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2hKU1IsIGxvY2F0aW9uKTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9CiAKQEAgLTEzNiwzNyArMTg0LDQ3IEBAIHZvaWQgbWFyc2hhbGxK
U1Jlc3VsdChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgVHlwZURlZmluaXRpb24mIHR5cGVEZWZp
bml0aW9uLCBjCiAKICAgICAgICAgICAgICAgICBHUFJSZWcgd2FzbUNvbnRleHRJbnN0YW5jZUdQ
UiA9IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCkud2FzbUNvbnRleHRJbnN0YW5jZVBvaW50ZXI7
CiAgICAgICAgICAgICAgICAgaWYgKENvbnRleHQ6OnVzZUZhc3RUTFMoKSkgewotICAgICAgICAg
ICAgICAgICAgICB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gR1BSSW5mbzo6YXJndW1lbnRHUFIx
OwotICAgICAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZV92PFdhc206
Okluc3RhbmNlKiwgdHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8ZGVjbHR5cGUob3BlcmF0aW9uQWxs
b2NhdGVSZXN1bHRzQXJyYXkpPjo6QXJndW1lbnRUeXBlPDE+Pik7CisgICAgICAgICAgICAgICAg
ICAgIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBwcmVmZXJyZWRBcmd1bWVudEdQUjxkZWNsdHlw
ZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpLCAxPigpOworICAgICAgICAgICAgICAgICAgICBz
dGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZV92PFdhc206Okluc3RhbmNlKiwgdHlwZW5hbWUgRnVu
Y3Rpb25UcmFpdHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvQmlnSW50KT46OkFyZ3VtZW50
VHlwZTwxPj4pOwogICAgICAgICAgICAgICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFu
Y2Uod2FzbUNvbnRleHRJbnN0YW5jZUdQUik7CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAg
ICAgICAgICAgaWYgKGxvYy5pc1JlZygpKQotICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDY0
KENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
LCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5yZWcoKSktPm9mZnNldCgpICsgd2FzbUZy
YW1lQ29udmVudGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXMpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApOwotICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAg
ICAgICBhdXRvIGxvY2F0aW9uID0gQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIsIGxvYy5vZmZzZXRGcm9tU1AoKSk7Ci0gICAgICAgICAgICAg
ICAgICAgIGppdC5sb2FkNjRUb1JlZyhsb2NhdGlvbiwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRl
Y2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+KHdhc21Db250ZXh0SW5zdGFuY2VHUFIs
IEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgICAgICAgICAgICAgY29uc3RleHByIEpTVmFs
dWVSZWdzIHZhbHVlSlNSID0gcHJlZmVycmVkQXJndW1lbnRKU1I8ZGVjbHR5cGUob3BlcmF0aW9u
Q29udmVydFRvQmlnSW50KSwgMj4oKTsKKworICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6
QWRkcmVzcyBhZGRyZXNzIHsgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciB9Owor
ICAgICAgICAgICAgICAgIGlmIChsb2MuaXNHUFIoKSB8fCBsb2MuaXNGUFIoKSkgeworI2lmIFVT
RShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgICAgIEFTU0VSVChzYXZlZFJlc3VsdFJl
Z2lzdGVycy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSArIDQgPT0gc2F2
ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MuanNyKCkudGFnR1BSKCkpLT5vZmZzZXQoKSk7Cisj
ZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9IGFkZHJlc3Mud2l0aE9mZnNldChz
YXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQo
KSArIHdhc21GcmFtZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVz
KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9
IGFkZHJlc3Mud2l0aE9mZnNldChsb2Mub2Zmc2V0RnJvbVNQKCkpOworCisgICAgICAgICAgICAg
ICAgaml0LmxvYWRWYWx1ZShhZGRyZXNzLCB2YWx1ZUpTUik7CisgICAgICAgICAgICAgICAgaml0
LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+KHdhc21D
b250ZXh0SW5zdGFuY2VHUFIsIHZhbHVlSlNSKTsKICAgICAgICAgICAgICAgICBqaXQuY2FsbE9w
ZXJhdGlvbihGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkNvbnZlcnRUb0Jp
Z0ludCkpOwotICAgICAgICAgICAgICAgIGlmIChsb2MuaXNSZWcoKSkKLSAgICAgICAgICAgICAg
ICAgICAgaml0LnN0b3JlVmFsdWUoSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQ
UiB9LCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdp
c3Rlciwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMuZmluZChsb2MucmVnKCkpLT5vZmZzZXQoKSArIHdh
c21GcmFtZUNvbnZlbnRpb24uaGVhZGVyQW5kQXJndW1lbnRTdGFja1NpemVJbkJ5dGVzKSk7Ci0g
ICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gbG9jYXRpb24g
PSBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rl
ciwgbG9jLm9mZnNldEZyb21TUCgpKTsKLSAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlVmFs
dWUoSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiB9LCBsb2NhdGlvbik7Ci0g
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTUkluZm86
OnJldHVyblZhbHVlSlNSLCBhZGRyZXNzKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAg
ICAgICAgIEdQUlJlZyB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gUGlubmVkUmVnaXN0ZXJJbmZv
OjpnZXQoKS53YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlcjsKICAgICAgICAgaWYgKENvbnRleHQ6
OnVzZUZhc3RUTFMoKSkgewotICAgICAgICAgICAgd2FzbUNvbnRleHRJbnN0YW5jZUdQUiA9IEdQ
UkluZm86OmFyZ3VtZW50R1BSMTsKKyAgICAgICAgICAgIHdhc21Db250ZXh0SW5zdGFuY2VHUFIg
PSBwcmVmZXJyZWRBcmd1bWVudEdQUjxkZWNsdHlwZShvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNB
cnJheSksIDE+KCk7CiAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZV92PFdh
c206Okluc3RhbmNlKiwgdHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8ZGVjbHR5cGUob3BlcmF0aW9u
QWxsb2NhdGVSZXN1bHRzQXJyYXkpPjo6QXJndW1lbnRUeXBlPDE+Pik7CiAgICAgICAgICAgICBq
aXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uod2FzbUNvbnRleHRJbnN0YW5jZUdQUik7CiAgICAg
ICAgIH0KIAotICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQWxs
b2NhdGVSZXN1bHRzQXJyYXkpPih3YXNtQ29udGV4dEluc3RhbmNlR1BSLCBDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW1QdHIoJnR5cGVEZWZpbml0aW9uKSwgaW5kZXhpbmdUeXBlLCBDQ2FsbEhlbHBl
cnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgY29uc3RleHByIEdQUlJlZyBzYXZl
ZFJlc3VsdHNHUFIgPSBwcmVmZXJyZWRBcmd1bWVudEdQUjxkZWNsdHlwZShvcGVyYXRpb25BbGxv
Y2F0ZVJlc3VsdHNBcnJheSksIDQ+KCk7CisgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0c0dQUik7CisgICAgICAgIGlmIGNvbnN0
ZXhwciAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAgICBqaXQuc3Vi
UHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhD
YWxsKSwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIEFTU0VS
VCh3YXNtQ29udGV4dEluc3RhbmNlR1BSICE9IHNhdmVkUmVzdWx0c0dQUik7CisgICAgICAgIGpp
dC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSk+
KHdhc21Db250ZXh0SW5zdGFuY2VHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigmdHlw
ZURlZmluaXRpb24pLCBpbmRleGluZ1R5cGUsIHNhdmVkUmVzdWx0c0dQUik7CiAgICAgICAgIGpp
dC5jYWxsT3BlcmF0aW9uKEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQWxs
b2NhdGVSZXN1bHRzQXJyYXkpKTsKKyAgICAgICAgaWYgY29uc3RleHByIChtYXhGcmFtZUV4dGVu
dEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGppdC5hZGRQdHIoQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBDQ2FsbEhlbHBlcnM6
OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKworICAgICAgICBqaXQuYm94Q2VsbChHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUiwgSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpOwogICAgIH0KIH0KIApAQCAt
MTc4LDcgKzIzNiwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4gY3JlYXRl
SlNUb1dhc21XcmFwcGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogICAgIC8vIEZJWE1FIFN0
b3AgdXNpbmcgMCBhcyBjb2RlQmxvY2tzLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY1MzIxCiAgICAgaml0LmVtaXRaZXJvVG9DYWxsRnJhbWVIZWFkZXIoQ2FsbEZy
YW1lU2xvdDo6Y29kZUJsb2NrKTsKICAgICBNYWNyb0Fzc2VtYmxlcjo6RGF0YUxhYmVsUHRyIGNh
bGxlZU1vdmVMb2NhdGlvbiA9IGppdC5tb3ZlV2l0aFBhdGNoKE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tUHRyKG51bGxwdHIpLCBHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIpOwot
ICAgIGppdC5lbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIoR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9u
UmV0dXJuR1BSLCBDYWxsRnJhbWVTbG90OjpjYWxsZWUpOworICAgIENDYWxsSGVscGVyczo6QWRk
cmVzcyBjYWxsZWVTbG90IHsgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZVNs
b3Q6OmNhbGxlZSAqIHNpemVvZihSZWdpc3RlcikgfTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5m
bzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSLCBjYWxsZWVTbG90LndpdGhPZmZzZXQoUGF5bG9h
ZE9mZnNldCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgaml0LnN0b3JlMzIoQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6V2FzbVRhZyksIGNhbGxlZVNsb3Qud2l0aE9m
ZnNldChUYWdPZmZzZXQpKTsKKyNlbmRpZgogICAgIFZlY3RvcjxDb2RlTG9jYXRpb25EYXRhTGFi
ZWxQdHI8V2FzbUVudHJ5UHRyVGFnPj4qIGxpbmtlZENhbGxlZU1vdmUgPSAmcmVzdWx0LT5jYWxs
ZWVNb3ZlTG9jYXRpb25zOwogICAgIGppdC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxp
bmtCdWZmZXIpIHsKICAgICAgICAgbGlua2VkQ2FsbGVlTW92ZS0+YXBwZW5kKGxpbmtCdWZmZXIu
bG9jYXRpb25PZjxXYXNtRW50cnlQdHJUYWc+KGNhbGxlZU1vdmVMb2NhdGlvbikpOwpAQCAtMjIz
LDkgKzI4NSwxMiBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4gY3JlYXRlSlNU
b1dhc21XcmFwcGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogCiAgICAgICAgIENDYWxsSGVs
cGVyczo6QWRkcmVzcyBjYWxsZWVGcmFtZSA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhNYWNyb0Fz
c2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIDApOwogCi0gICAgICAgIC8vIFdlJ3JlIGdv
aW5nIHRvIHNldCB0aGUgcGlubmVkIHJlZ2lzdGVycyBhZnRlciB0aGlzLiBTbwotICAgICAgICAv
LyB3ZSBjYW4gdXNlIHRoaXMgYXMgYSBzY3JhdGNoIGZvciBub3cgc2luY2Ugd2Ugc2F2ZWQgaXQg
YWJvdmUuCi0gICAgICAgIEdQUlJlZyBzY3JhdGNoUmVnID0gcGlubmVkUmVncy5iYXNlTWVtb3J5
UG9pbnRlcjsKKyAgICAgICAgSlNWYWx1ZVJlZ3Mgc2NyYXRjaEpTUiB7CisjaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAgICAgICAgIHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2Ny
YXRjaEdQUnNbMl0sCisjZW5kaWYKKyAgICAgICAgICAgIHdhc21DYWxsaW5nQ29udmVudGlvbigp
LnByb2xvZ3VlU2NyYXRjaEdQUnNbMV0KKyAgICAgICAgfTsKIAogICAgICAgICBpZiAoIUNvbnRl
eHQ6OnVzZUZhc3RUTFMoKSkgewogICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU0NhbGxpbmdDb252ZW50aW9u
OjppbnN0YW5jZVN0YWNrT2Zmc2V0KSwgd2FzbUNvbnRleHRJbnN0YW5jZUdQUik7CkBAIC0yMzks
MjIgKzMwNCwzNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4gY3JlYXRlSlNU
b1dhc21XcmFwcGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogICAgICAgICAgICAgVHlwZSB0
eXBlID0gc2lnbmF0dXJlLmFyZ3VtZW50VHlwZShpKTsKICAgICAgICAgICAgIENDYWxsSGVscGVy
czo6QWRkcmVzcyBqc1BhcmFtKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBqc0ZyYW1lQ29u
dmVudGlvbi5wYXJhbXNbaV0ub2Zmc2V0RnJvbUZQKCkpOwogICAgICAgICAgICAgaWYgKHdhc21G
cmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLmlzU3RhY2tBcmd1bWVudCgpKSB7CisgICAgICAgICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzIGFkZHIgeyBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0
KHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSB9OwogICAgICAg
ICAgICAgICAgIGlmICh0eXBlLmlzSTMyKCkgfHwgdHlwZS5pc0YzMigpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGppdC5sb2FkMzIoanNQYXJhbSwgc2NyYXRjaFJlZyk7Ci0gICAgICAgICAgICAg
ICAgICAgIGppdC5zdG9yZTMyKHNjcmF0Y2hSZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2Fz
bUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgaml0LmxvYWQzMihqc1BhcmFtLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7Cisg
ICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZTMyKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBh
ZGRyLndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisg
ICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMy
KDApLCBhZGRyLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7CisjZW5kaWYKICAgICAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0
Y2hSZWcpOwotICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmU2NChzY3JhdGNoUmVnLCBjYWxs
ZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLm9mZnNldEZy
b21TUCgpKSk7CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoanNQYXJhbSwgc2Ny
YXRjaEpTUik7CisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2hKU1Is
IGFkZHIpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKHR5cGUuaXNJMzIoKSB8fCB0eXBlLmlzRjMyKCkpCi0gICAgICAgICAgICAg
ICAgICAgIGppdC5sb2FkMzJUb1JlZyhqc1BhcmFtLCB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFt
c1tpXS5yZWcoKSk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBq
aXQubG9hZDY0VG9SZWcoanNQYXJhbSwgd2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0ucmVn
KCkpOworICAgICAgICAgICAgICAgIGlmICh0eXBlLmlzRjMyKCkpCisgICAgICAgICAgICAgICAg
ICAgIGppdC5sb2FkRmxvYXQoanNQYXJhbSwgd2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0u
ZnByKCkpOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUuaXNGNjQoKSkKKyAgICAgICAg
ICAgICAgICAgICAgaml0LmxvYWREb3VibGUoanNQYXJhbSwgd2FzbUZyYW1lQ29udmVudGlvbi5w
YXJhbXNbaV0uZnByKCkpOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUuaXNJMzIoKSkg
eworICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDMyKGpzUGFyYW0sIHdhc21GcmFtZUNvbnZl
bnRpb24ucGFyYW1zW2ldLmpzcigpLnBheWxvYWRHUFIoKSk7CisjaWYgVVNFKEpTVkFMVUUzMl82
NCkKKyAgICAgICAgICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
MzIoMCksIHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLmpzcigpLnRhZ0dQUigpKTsKKyNl
bmRpZgorICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBqaXQubG9h
ZFZhbHVlKGpzUGFyYW0sIHdhc21GcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLmpzcigpKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAorI2lmICFDUFUoQVJNKSAvLyBBUk0gaGFz
IG5vIHBpbm5lZCByZWdpc3RlcnMgZm9yIFdhc20gTWVtb3J5LCBzbyBubyBuZWVkIHRvIHNldCB0
aGVtIHVwCiAgICAgaWYgKCEhaW5mby5tZW1vcnkpIHsKICAgICAgICAgR1BSUmVnIGJhc2VNZW1v
cnkgPSBwaW5uZWRSZWdzLmJhc2VNZW1vcnlQb2ludGVyOwogICAgICAgICBHUFJSZWcgc2l6ZSA9
IHdhc21DYWxsaW5nQ29udmVudGlvbigpLnByb2xvZ3VlU2NyYXRjaEdQUnNbMF07CkBAIC0yNjUs
MTcgKzM0MiwxOCBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4gY3JlYXRlSlNU
b1dhc21XcmFwcGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogCiAgICAgICAgIEdQUlJlZyBj
dXJyZW50SW5zdGFuY2VHUFIgPSBDb250ZXh0Ojp1c2VGYXN0VExTKCkgPyBiYXNlTWVtb3J5IDog
d2FzbUNvbnRleHRJbnN0YW5jZUdQUjsKICAgICAgICAgaWYgKGlzQVJNNjRFKCkpIHsKLSAgICAg
ICAgICAgIGlmIChtb2RlICE9IFdhc206Ok1lbW9yeU1vZGU6OlNpZ25hbGluZykKKyAgICAgICAg
ICAgIGlmIChtb2RlID09IFdhc206Ok1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nKQogICAgICAg
ICAgICAgICAgIHNpemUgPSBwaW5uZWRSZWdzLmJvdW5kc0NoZWNraW5nU2l6ZVJlZ2lzdGVyOwog
ICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGN1cnJlbnRJbnN0
YW5jZUdQUiwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdTaXpl
KCkpLCBzaXplKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChtb2RlICE9IFdh
c206Ok1lbW9yeU1vZGU6OlNpZ25hbGluZykKKyAgICAgICAgICAgIGlmIChtb2RlID09IFdhc206
Ok1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nKQogICAgICAgICAgICAgICAgIGppdC5sb2FkUHRy
KENDYWxsSGVscGVyczo6QWRkcmVzcyhjdXJyZW50SW5zdGFuY2VHUFIsIFdhc206Okluc3RhbmNl
OjpvZmZzZXRPZkNhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSgpKSwgcGlubmVkUmVncy5ib3VuZHND
aGVja2luZ1NpemVSZWdpc3Rlcik7CiAgICAgICAgIH0KIAogICAgICAgICBqaXQubG9hZFB0cihD
Q2FsbEhlbHBlcnM6OkFkZHJlc3MoY3VycmVudEluc3RhbmNlR1BSLCBXYXNtOjpJbnN0YW5jZTo6
b2Zmc2V0T2ZDYWNoZWRNZW1vcnkoKSksIGJhc2VNZW1vcnkpOwogICAgICAgICBqaXQuY2FnZUNv
bmRpdGlvbmFsbHlBbmRVbnRhZyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBiYXNlTWVtb3J5LCBzaXpl
LCBzY3JhdGNoKTsKICAgICB9CisjZW5kaWYKIAogICAgIENDYWxsSGVscGVyczo6Q2FsbCBjYWxs
ID0gaml0LnRocmVhZFNhZmVQYXRjaGFibGVOZWFyQ2FsbCgpOwogICAgIHVuc2lnbmVkIGZ1bmN0
aW9uSW5kZXhTcGFjZSA9IGZ1bmN0aW9uSW5kZXggKyBpbmZvLmltcG9ydEZ1bmN0aW9uQ291bnQo
KTsKQEAgLTI4OCw3ICszNjYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4g
Y3JlYXRlSlNUb1dhc21XcmFwcGVyKENDYWxsSGVscGVycyYgaml0LCBjb25zdAogCiAgICAgZm9y
IChjb25zdCBSZWdpc3RlckF0T2Zmc2V0JiByZWdBdE9mZnNldCA6IHJlZ2lzdGVyc1RvU3BpbGwp
IHsKICAgICAgICAgR1BSUmVnIHJlZyA9IHJlZ0F0T2Zmc2V0LnJlZygpLmdwcigpOwotICAgICAg
ICBBU1NFUlQocmVnICE9IEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgQVNTRVJU
KCFKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUi51c2VzKHJlZykpOwogICAgICAgICBwdHJkaWZmX3Qg
b2Zmc2V0ID0gcmVnQXRPZmZzZXQub2Zmc2V0KCk7CiAgICAgICAgIGppdC5sb2FkUHRyKENDYWxs
SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwgb2Zmc2V0KSwgcmVn
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNt
VG9KUy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAKaW5k
ZXggNjU5NDVkYzE1N2NlLi5lODVlYzlhMjI2NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XYXNtVG9KUy5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDQ2FsbEhl
bHBlcnMuaCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5SW5zdGFuY2UuaCIKICNpbmNsdWRlICJM
aW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIK
ICNpbmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKICNpbmNsdWRlICJXYXNtQ2FsbGluZ0NvbnZl
bnRpb24uaCIKICNpbmNsdWRlICJXYXNtQ29udGV4dElubGluZXMuaCIKQEAgLTY5LDcgKzcwLDcg
QEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRp
bmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAvLyBJZiB3ZSBldmVyIGNoYW5nZSB0aGlz
LCB3ZSB3aWxsIGFsc28gbmVlZCB0byBjaGFuZ2UgV2FzbUIzSVJHZW5lcmF0b3IuCiAKICAgICAv
LyBCZWxvdywgd2UgYXNzdW1lIHRoYXQgdGhlIEpTIGNhbGxpbmcgY29udmVudGlvbiBpcyBhbHdh
eXMgb24gdGhlIHN0YWNrLgotICAgIEFTU0VSVCghanNDQy5ncHJBcmdzLnNpemUoKSk7CisgICAg
QVNTRVJUKCFqc0NDLmpzckFyZ3Muc2l6ZSgpKTsKICAgICBBU1NFUlQoIWpzQ0MuZnByQXJncy5z
aXplKCkpOwogCiAgICAgaml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CkBAIC04NiwxNCArODcs
MjIgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJp
bmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAvLyBmb3IgdXMgaGVyZS4KIAogICAg
IGNvbnN0IHVuc2lnbmVkIG51bWJlck9mUGFyYW1ldGVycyA9IGFyZ0NvdW50ICsgMTsgLy8gVGhl
cmUgaXMgYSAidGhpcyIgYXJndW1lbnQuCi0gICAgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZSZWdz
Rm9yQ2FsbCA9IENhbGxGcmFtZTo6aGVhZGVyU2l6ZUluUmVnaXN0ZXJzICsgbnVtYmVyT2ZQYXJh
bWV0ZXJzOworICAgIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mUmVnc0ZvckNhbGwgPSBDYWxsRnJh
bWU6OmhlYWRlclNpemVJblJlZ2lzdGVycyArIHJvdW5kQXJndW1lbnRDb3VudFRvQWxpZ25GcmFt
ZShudW1iZXJPZlBhcmFtZXRlcnMpOworICAgIEFTU0VSVCghKG51bWJlck9mUmVnc0ZvckNhbGwg
JSBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpKSk7CiAgICAgY29uc3QgdW5zaWduZWQgbnVtYmVy
T2ZCeXRlc0ZvckNhbGwgPSBudW1iZXJPZlJlZ3NGb3JDYWxsICogc2l6ZW9mKFJlZ2lzdGVyKSAt
IHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKTsKLSAgICBjb25zdCB1bnNpZ25lZCBzdGFja09mZnNl
dCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudEJ5dGVzKCksIHN0ZDo6
bWF4PHVuc2lnbmVkPihudW1iZXJPZkJ5dGVzRm9yQ2FsbCwgc2F2ZWRSZXN1bHRSZWdpc3RlcnMu
c2l6ZU9mQXJlYUluQnl0ZXMoKSkpOworICAgIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQnl0ZXNG
b3JTYXZlZFJlc3VsdHMgPSBzYXZlZFJlc3VsdFJlZ2lzdGVycy5zaXplT2ZBcmVhSW5CeXRlcygp
OworICAgIGNvbnN0IHVuc2lnbmVkIHN0YWNrT2Zmc2V0ID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBs
ZU9mKHN0YWNrQWxpZ25tZW50Qnl0ZXMoKSwgc3RkOjptYXgobnVtYmVyT2ZCeXRlc0ZvckNhbGws
IG51bWJlck9mQnl0ZXNGb3JTYXZlZFJlc3VsdHMpKTsKICAgICBqaXQuc3ViUHRyKE1hY3JvQXNz
ZW1ibGVyOjpUcnVzdGVkSW1tMzIoc3RhY2tPZmZzZXQpLCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQ
b2ludGVyUmVnaXN0ZXIpOwogICAgIEpJVDo6QWRkcmVzcyBjYWxsZWVGcmFtZSA9IENDYWxsSGVs
cGVyczo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIC1zdGF0
aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkpOwogCiAgICAgLy8g
RklYTUUgbWFrZSB0aGVzZSBsb29wcyB3aGljaCBzd2l0Y2ggb24gc2lnbmF0dXJlIGlmIHRoZXJl
IGFyZSBtYW55IGFyZ3VtZW50cyBvbiB0aGUgc3RhY2suIEl0J2xsIG90aGVyd2lzZSBiZSBodWdl
IGZvciBodWdlIHR5cGUgZGVmaW5pdGlvbnMuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjU1NDcKIAorI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY29uc3RleHByIEpT
VmFsdWVSZWdzIGpzQXJnMTAgeyBHUFJJbmZvOjphcmd1bWVudEdQUjAgfTsKKyNlbGlmIFVTRShK
U1ZBTFVFMzJfNjQpCisgICAgY29uc3RleHByIEpTVmFsdWVSZWdzIGpzQXJnMTAgeyBHUFJJbmZv
Ojphcmd1bWVudEdQUjEsIEdQUkluZm86OmFyZ3VtZW50R1BSMCB9OworI2VuZGlmCisKICAgICAv
LyBGaXJzdCBnbyB0aHJvdWdoIHRoZSBpbnRlZ2VyIHBhcmFtZXRlcnMsIGZyZWVpbmcgdXAgdGhl
aXIgcmVnaXN0ZXIgZm9yIHVzZSBhZnRlcndhcmRzLgogICAgIHsKICAgICAgICAgdW5zaWduZWQg
bWFyc2hhbGxlZEdQUnMgPSAwOwpAQCAtMTE0LDIxICsxMjMsMjEgQEAgRXhwZWN0ZWQ8TWFjcm9B
c3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9K
UyhWTSYgdm0KICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6CiAgICAgICAgICAg
ICBjYXNlIFR5cGVLaW5kOjpJMzI6CiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6IHsK
LSAgICAgICAgICAgICAgICBHUFJSZWcgZ3ByUmVnOwotICAgICAgICAgICAgICAgIGlmIChtYXJz
aGFsbGVkR1BScyA8IHdhc21DQy5ncHJBcmdzLnNpemUoKSkKLSAgICAgICAgICAgICAgICAgICAg
Z3ByUmVnID0gd2FzbUNDLmdwckFyZ3NbbWFyc2hhbGxlZEdQUnNdLmdwcigpOworICAgICAgICAg
ICAgICAgIEpTVmFsdWVSZWdzIGFyZ1JlZzsKKyAgICAgICAgICAgICAgICBpZiAobWFyc2hhbGxl
ZEdQUnMgPCB3YXNtQ0MuanNyQXJncy5zaXplKCkpCisgICAgICAgICAgICAgICAgICAgIGFyZ1Jl
ZyA9IHdhc21DQy5qc3JBcmdzW21hcnNoYWxsZWRHUFJzXTsKICAgICAgICAgICAgICAgICBlbHNl
IHsKICAgICAgICAgICAgICAgICAgICAgLy8gV2UndmUgYWxyZWFkeSBzcGlsbGVkIGFsbCBhcmd1
bWVudHMsIHRoZXNlIHJlZ2lzdGVycyBhcmUgYXZhaWxhYmxlIGFzIHNjcmF0Y2guCi0gICAgICAg
ICAgICAgICAgICAgIGdwclJlZyA9IEdQUkluZm86OmFyZ3VtZW50R1BSMDsKLSAgICAgICAgICAg
ICAgICAgICAgaml0LmxvYWQ2NChKSVQ6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIGZyT2Zmc2V0KSwgZ3ByUmVnKTsKKyAgICAgICAgICAgICAgICAgICAgYXJnUmVnID0ganNB
cmcxMDsKKyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShKSVQ6OkFkZHJlc3MoR1BS
SW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGZyT2Zmc2V0KSwgYXJnUmVnKTsKICAgICAgICAgICAg
ICAgICAgICAgZnJPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgKyttYXJzaGFsbGVkR1BSczsKICAgICAgICAgICAgICAgICBpZiAo
YXJnVHlwZS5pc0kzMigpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJU
b1dvcmQoZ3ByUmVnLCBncHJSZWcpOyAvLyBDbGVhciBub24taW50MzIgYW5kIG5vbi10YWcgYml0
cy4KLSAgICAgICAgICAgICAgICAgICAgaml0LmJveEludDMyKGdwclJlZywgSlNWYWx1ZVJlZ3Mo
Z3ByUmVnKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgICAgICAgICAgICAgaml0
Lnplcm9FeHRlbmQzMlRvV29yZChhcmdSZWcucGF5bG9hZEdQUigpLCBhcmdSZWcucGF5bG9hZEdQ
UigpKTsgLy8gQ2xlYXIgbm9uLWludDMyIGFuZCBub24tdGFnIGJpdHMuCisgICAgICAgICAgICAg
ICAgICAgIGppdC5ib3hJbnQzMihhcmdSZWcucGF5bG9hZEdQUigpLCBhcmdSZWcsIERvTm90SGF2
ZVRhZ1JlZ2lzdGVycyk7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGppdC5z
dG9yZTY0KGdwclJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCkp
OworICAgICAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKGFyZ1JlZywgY2FsbGVlRnJhbWUud2l0
aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCkpOwogICAgICAgICAgICAgICAgIGNhbGxlZUZyYW1l
T2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICB9CkBAIC0xNDUsNiArMTU0LDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAg
ICB9CiAgICAgCiAgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIC8vIEludGVnZXIg
cmVnaXN0ZXJzIGhhdmUgYWxyZWFkeSBiZWVuIHNwaWxsZWQsIHRoZXNlIGFyZSBub3cgYXZhaWxh
YmxlLgogICAgICAgICBHUFJSZWcgZG91YmxlRW5jb2RlT2Zmc2V0R1BSUmVnID0gR1BSSW5mbzo6
YXJndW1lbnRHUFIwOwogICAgICAgICBHUFJSZWcgc2NyYXRjaCA9IEdQUkluZm86OmFyZ3VtZW50
R1BSMTsKQEAgLTE2MCw2ICsxNzAsNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8
V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAg
ICAgICAgICAgIGhhc01hdGVyaWFsaXplZERvdWJsZUVuY29kZU9mZnNldCA9IHRydWU7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH07CisjZW5kaWYKIAogICAgICAgICB1bnNpZ25lZCBtYXJzaGFs
bGVkR1BScyA9IDA7CiAgICAgICAgIHVuc2lnbmVkIG1hcnNoYWxsZWRGUFJzID0gMDsKQEAgLTE2
OCwxMCArMTc5LDE0IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQ
dHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAKICAgICAgICAgYXV0byBt
YXJzaGFsbEZQUiA9IFsmXSAoRlBSUmVnIGZwclJlZykgewogICAgICAgICAgICAgaml0LnB1cmlm
eU5hTihmcHJSZWcpOworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgICAgICBqaXQubW92ZURv
dWJsZVRvNjQoZnByUmVnLCBzY3JhdGNoKTsKICAgICAgICAgICAgIG1hdGVyaWFsaXplRG91Ymxl
RW5jb2RlT2Zmc2V0KGRvdWJsZUVuY29kZU9mZnNldEdQUlJlZyk7CiAgICAgICAgICAgICBqaXQu
YWRkNjQoZG91YmxlRW5jb2RlT2Zmc2V0R1BSUmVnLCBzY3JhdGNoKTsKICAgICAgICAgICAgIGpp
dC5zdG9yZTY0KHNjcmF0Y2gsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZz
ZXQpKTsKKyNlbHNlCisgICAgICAgICAgICBqaXQuc3RvcmVEb3VibGUoZnByUmVnLCBjYWxsZWVG
cmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSk7CisjZW5kaWYKICAgICAgICAgICAg
IGNhbGxlZUZyYW1lT2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CiAgICAgICAgICAgICArK21h
cnNoYWxsZWRGUFJzOwogICAgICAgICB9OwpAQCAtMTkxLDcgKzIwNiw3IEBAIEV4cGVjdGVkPE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2Fz
bVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpJMzI6CiAgICAgICAgICAg
ICBjYXNlIFR5cGVLaW5kOjpJNjQ6IHsKICAgICAgICAgICAgICAgICAvLyBTa2lwcGVkOiBoYW5k
bGVkIGFib3ZlLgotICAgICAgICAgICAgICAgIGlmIChtYXJzaGFsbGVkR1BScyA+PSB3YXNtQ0Mu
Z3ByQXJncy5zaXplKCkpCisgICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRHUFJzID49IHdh
c21DQy5qc3JBcmdzLnNpemUoKSkKICAgICAgICAgICAgICAgICAgICAgZnJPZmZzZXQgKz0gc2l6
ZW9mKFJlZ2lzdGVyKTsKICAgICAgICAgICAgICAgICArK21hcnNoYWxsZWRHUFJzOwogICAgICAg
ICAgICAgICAgIGNhbGxlZUZyYW1lT2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CkBAIC0yMDAs
NyArMjE1LDcgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRh
Zz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OkYzMjogewogICAgICAgICAgICAgICAgIEZQUlJlZyBmcHJSZWc7CiAgICAgICAgICAg
ICAgICAgaWYgKG1hcnNoYWxsZWRGUFJzIDwgd2FzbUNDLmZwckFyZ3Muc2l6ZSgpKQotICAgICAg
ICAgICAgICAgICAgICBmcHJSZWcgPSB3YXNtQ0MuZnByQXJnc1ttYXJzaGFsbGVkRlBSc10uZnBy
KCk7CisgICAgICAgICAgICAgICAgICAgIGZwclJlZyA9IHdhc21DQy5mcHJBcmdzW21hcnNoYWxs
ZWRGUFJzXTsKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgLy8g
V2UndmUgYWxyZWFkeSBzcGlsbGVkIGFsbCBhcmd1bWVudHMsIHRoZXNlIHJlZ2lzdGVycyBhcmUg
YXZhaWxhYmxlIGFzIHNjcmF0Y2guCiAgICAgICAgICAgICAgICAgICAgIGZwclJlZyA9IEZQUklu
Zm86OmFyZ3VtZW50RlBSMDsKQEAgLTIxNCw3ICsyMjksNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2Vt
YmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZN
JiB2bQogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OiB7CiAgICAgICAgICAgICAgICAg
RlBSUmVnIGZwclJlZzsKICAgICAgICAgICAgICAgICBpZiAobWFyc2hhbGxlZEZQUnMgPCB3YXNt
Q0MuZnByQXJncy5zaXplKCkpCi0gICAgICAgICAgICAgICAgICAgIGZwclJlZyA9IHdhc21DQy5m
cHJBcmdzW21hcnNoYWxsZWRGUFJzXS5mcHIoKTsKKyAgICAgICAgICAgICAgICAgICAgZnByUmVn
ID0gd2FzbUNDLmZwckFyZ3NbbWFyc2hhbGxlZEZQUnNdOwogICAgICAgICAgICAgICAgIGVsc2Ug
ewogICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBhbHJlYWR5IHNwaWxsZWQgYWxsIGFyZ3Vt
ZW50cywgdGhlc2UgcmVnaXN0ZXJzIGFyZSBhdmFpbGFibGUgYXMgc2NyYXRjaC4KICAgICAgICAg
ICAgICAgICAgICAgZnByUmVnID0gRlBSSW5mbzo6YXJndW1lbnRGUFIwOwpAQCAtMjM2LDEyICsy
NTEsMTUgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4s
IEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgdW5zaWduZWQgY2FsbGVl
RnJhbWVPZmZzZXQgPSBDYWxsRnJhbWVTbG90OjpmaXJzdEFyZ3VtZW50ICogc3RhdGljX2Nhc3Q8
aW50PihzaXplb2YoUmVnaXN0ZXIpKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBhcmdOdW0gPSAw
OyBhcmdOdW0gPCBhcmdDb3VudDsgKythcmdOdW0pIHsKICAgICAgICAgICAgIGlmIChzaWduYXR1
cmUuYXJndW1lbnRUeXBlKGFyZ051bSkuaXNJNjQoKSkgewotICAgICAgICAgICAgICAgIGppdC5s
b2FkV2FzbUNvbnRleHRJbnN0YW5jZShHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgICAgICAg
ICAgICAgIGppdC5sb2FkNjQoY2FsbGVlRnJhbWUud2l0aE9mZnNldChjYWxsZWVGcmFtZU9mZnNl
dCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Ci0gICAgICAgICAgICAgICAgaml0LnNldHVwQXJn
dW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCk+KEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgICAgICAgICB1c2luZyBP
cGVyYXRpb24gPSBkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQpOworICAgICAgICAg
ICAgICAgIGNvbnN0ZXhwciBHUFJSZWcgd2FzbUluc3RhbmNlR1BSID0gcHJlZmVycmVkQXJndW1l
bnRHUFI8T3BlcmF0aW9uLCAxPigpOworICAgICAgICAgICAgICAgIGNvbnN0ZXhwciBKU1ZhbHVl
UmVncyB2YWx1ZUpTUiA9IHByZWZlcnJlZEFyZ3VtZW50SlNSPE9wZXJhdGlvbiwgMj4oKTsKKyAg
ICAgICAgICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5zdGFuY2Uod2FzbUluc3RhbmNlR1BS
KTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGNhbGxlZUZyYW1lLndpdGhPZmZzZXQo
Y2FsbGVlRnJhbWVPZmZzZXQpLCB2YWx1ZUpTUik7CisgICAgICAgICAgICAgICAgaml0LnNldHVw
QXJndW1lbnRzPE9wZXJhdGlvbj4od2FzbUluc3RhbmNlR1BSLCB2YWx1ZUpTUik7CiAgICAgICAg
ICAgICAgICAgYXV0byBjYWxsID0gaml0LmNhbGwoT3BlcmF0aW9uUHRyVGFnKTsKICAgICAgICAg
ICAgICAgICBleGNlcHRpb25DaGVja3MuYXBwZW5kKGppdC5lbWl0SnVtcElmRXhjZXB0aW9uKHZt
KSk7Ci0gICAgICAgICAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIs
IGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsKKyAgICAgICAgICAg
ICAgICBqaXQuc3RvcmVWYWx1ZShKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgY2FsbGVlRnJhbWUu
d2l0aE9mZnNldChjYWxsZWVGcmFtZU9mZnNldCkpOwogICAgICAgICAgICAgICAgIGppdC5hZGRM
aW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKICAgICAgICAgICAgICAgICAg
ICAgbGlua0J1ZmZlci5saW5rKGNhbGwsIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3Bl
cmF0aW9uQ29udmVydFRvQmlnSW50KSk7CiAgICAgICAgICAgICAgICAgfSk7CkBAIC0yNTMsMTYg
KzI3MSwyMiBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFn
PiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgIGppdC5sb2FkV2FzbUNvbnRl
eHRJbnN0YW5jZShHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIGppdC5sb2FkUHRyKENDYWxs
SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjphcmd1bWVudEdQUjAsIEluc3RhbmNlOjpvZmZzZXRP
Zk93bmVyKCkpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIGppdC5sb2FkUHRyKENDYWxs
SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjphcmd1bWVudEdQUjAsIEpTV2ViQXNzZW1ibHlJbnN0
YW5jZTo6b2Zmc2V0T2ZNb2R1bGUoKSksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgaml0
LmVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihHUFJJbmZvOjphcmd1bWVudEdQUjAsIENhbGxGcmFt
ZVNsb3Q6OmNhbGxlZSk7Ci0KLSAgICBHUFJSZWcgaW1wb3J0SlNDZWxsR1BSUmVnID0gR1BSSW5m
bzo6cmVnVDA7IC8vIENhbGxlZSBuZWVkcyB0byBiZSBpbiByZWdUMCBmb3Igc2xvdyBwYXRoIGJl
bG93LgorICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBjYWxsZWVTbG90IHsgR1BSSW5mbzo6Y2Fs
bEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAgKiBzaXplb2YoUmVnaXN0ZXIp
IH07CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgY2FsbGVlU2xvdCk7
CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgY2FsbGVlU2xvdC53aXRoT2Zmc2V0KFRhZ09m
ZnNldCkpOworI2VuZGlmCiAKKyAgICAvLyBqc0FyZzEwIG1pZ2h0IG92ZXJsYXAgd2l0aCByZWdU
MCwgc28gc3RvcmUgJ3RoaXMnIGFyZ3VtZW50IGZpcnN0CisgICAgaml0LnN0b3JlVmFsdWUoanNV
bmRlZmluZWQoKSwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90Ojp0aGlzQXJn
dW1lbnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSwganNBcmcxMCk7Cisg
ICAgY29uc3RleHByIEdQUlJlZyBpbXBvcnRKU0NlbGxHUFJSZWcgPSBHUFJJbmZvOjpyZWdUMDsg
Ly8gQ2FsbGVlIG5lZWRzIHRvIGJlIGluIHJlZ1QwIGZvciBzbG93IHBhdGggYmVsb3cuCiAgICAg
QVNTRVJUKCF3YXNtQ0MuY2FsbGVlU2F2ZVJlZ2lzdGVycy5nZXQoaW1wb3J0SlNDZWxsR1BSUmVn
KSk7CiAgICAgbWF0ZXJpYWxpemVJbXBvcnRKU0NlbGwoaml0LCBpbXBvcnRJbmRleCwgaW1wb3J0
SlNDZWxsR1BSUmVnKTsKLQotICAgIGppdC5zdG9yZTY0KGltcG9ydEpTQ2VsbEdQUlJlZywgY2Fs
bGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90OjpjYWxsZWUgKiBzdGF0aWNfY2FzdDxp
bnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CisgICAgaml0LnN0b3JlUHRyKGltcG9ydEpTQ2VsbEdQ
UlJlZywgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90OjpjYWxsZWUgKiBzdGF0
aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkK
KyAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxs
VGFnKSwgY2FsbGVlRnJhbWUud2l0aE9mZnNldChDYWxsRnJhbWVTbG90OjpjYWxsZWUgKiBzdGF0
aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgVGFnT2Zmc2V0KSk7CisjZW5kaWYKICAg
ICBqaXQuc3RvcmUzMihKSVQ6OlRydXN0ZWRJbW0zMihudW1iZXJPZlBhcmFtZXRlcnMpLCBjYWxs
ZWVGcmFtZS53aXRoT2Zmc2V0KENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnRJbmNsdWRpbmdU
aGlzICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSArIFBheWxvYWRPZmZzZXQp
KTsKLSAgICBqaXQuc3RvcmU2NChKSVQ6OlRydXN0ZWRJbW02NChKU1ZhbHVlOjpWYWx1ZVVuZGVm
aW5lZCksIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoQ2FsbEZyYW1lU2xvdDo6dGhpc0FyZ3VtZW50
ICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSkpOwogCiAgICAgLy8gRklYTUUg
VGFpbCBjYWxsIGlmIHRoZSB3YXNtIHJldHVybiB0eXBlIGlzIHZvaWQgYW5kIG5vIHJlZ2lzdGVy
cyB3ZXJlIHNwaWxsZWQuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjU0ODgKIApAQCAtMjg3LDExICszMTEsMTEgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAg
ICAgICAgY2FzZSBUeXBlS2luZDo6STY0OiB7CiAgICAgICAgICAgICAvLyBGSVhNRTogT3B0aW1p
emUgSTY0IGV4dHJhY3Rpb24gZnJvbSBCaWdJbnQuCiAgICAgICAgICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMDUzCi0gICAgICAgICAgICBHUFJSZWcg
ZGVzdCA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmdwcigpOwotICAgICAgICAgICAgaml0LnNl
dHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCk+KEdQUkluZm86OnJl
dHVyblZhbHVlR1BSKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIGRlc3QgPSB3YXNtQ2FsbElu
Zm8ucmVzdWx0c1swXS5qc3IoKTsKKyAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNs
dHlwZShvcGVyYXRpb25Db252ZXJ0VG9JNjQpPihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUik7CiAg
ICAgICAgICAgICBhdXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25QdHJUYWcpOwogICAgICAg
ICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1bXBJZkV4Y2VwdGlvbih2bSkp
OwotICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOwor
ICAgICAgICAgICAgaml0Lm1vdmVWYWx1ZVJlZ3MoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IsIGRl
c3QpOwogCiAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soWz1dIChMaW5rQnVmZmVyJiBsaW5r
QnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKGNhbGwsIEZ1bmN0aW9u
UHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uQ29udmVydFRvSTY0KSk7CkBAIC0zMDEsMTgg
KzMyNSwyMSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFn
PiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICBjYXNlIFR5cGVLaW5k
OjpJMzI6IHsKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZG9uZTsKICAgICAg
ICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3Qgc2xvd1BhdGg7Ci0gICAgICAgICAgICBHUFJS
ZWcgZGVzdCA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmdwcigpOworICAgICAgICAgICAgSlNW
YWx1ZVJlZ3MgZGVzdEpTUiA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmpzcigpOwogCi0gICAg
ICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKEdQUkluZm86OnJl
dHVyblZhbHVlR1BSLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpKTsKLSAgICAgICAgICAgIHNsb3dQ
YXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMihKU1ZhbHVlUmVncyhHUFJJbmZvOjpyZXR1
cm5WYWx1ZUdQUiksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycykpOwotICAgICAgICAgICAgaml0Lnpl
cm9FeHRlbmQzMlRvV29yZChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVzdCk7CisgICAgICAg
ICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKEpTUkluZm86OnJldHVy
blZhbHVlSlNSLCBqaXQuc2NyYXRjaFJlZ2lzdGVyKCksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycykp
OworICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdEludDMyKEpTUklu
Zm86OnJldHVyblZhbHVlSlNSLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpKTsKKyAgICAgICAgICAg
IGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IucGF5bG9hZEdQ
UigpLCBkZXN0SlNSLnBheWxvYWRHUFIoKSk7CiAgICAgICAgICAgICBkb25lLmFwcGVuZChqaXQu
anVtcCgpKTsKIAogICAgICAgICAgICAgc2xvd1BhdGgubGluaygmaml0KTsKLSAgICAgICAgICAg
IGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0VG9JMzIpPihHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVj
bHR5cGUob3BlcmF0aW9uQ29udmVydFRvSTMyKT4oSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1IpOwog
ICAgICAgICAgICAgYXV0byBjYWxsID0gaml0LmNhbGwoT3BlcmF0aW9uUHRyVGFnKTsKICAgICAg
ICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRKdW1wSWZFeGNlcHRpb24odm0p
KTsKLSAgICAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBkZXN0KTsK
KyAgICAgICAgICAgIGppdC5tb3ZlKEpTUkluZm86OnJldHVyblZhbHVlSlNSLnBheWxvYWRHUFIo
KSwgZGVzdEpTUi5wYXlsb2FkR1BSKCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAg
ICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSwgZGVzdEpTUi50YWdH
UFIoKSk7CisjZW5kaWYKIAogICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKFs9XSAoTGlua0J1
ZmZlciYgbGlua0J1ZmZlcikgewogICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubGluayhjYWxs
LCBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkNvbnZlcnRUb0kzMikpOwpA
QCAtMzIyLDIzICszNDksMjYgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21F
bnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjogewotICAgICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBkb25lOwogICAgICAgICAgICAgRlBSUmVnIGRl
c3QgPSB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5mcHIoKTsKIAotICAgICAgICAgICAgYXV0byBu
b3RBTnVtYmVyID0gaml0LmJyYW5jaElmTm90TnVtYmVyKEdQUkluZm86OnJldHVyblZhbHVlR1BS
LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwotICAgICAgICAgICAgYXV0byBpc0RvdWJsZSA9IGpp
dC5icmFuY2hJZk5vdEludDMyKEpTVmFsdWVSZWdzKEdQUkluZm86OnJldHVyblZhbHVlR1BSKSwg
RG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExp
c3QgZG9uZTsKKyAgICAgICAgICAgIGF1dG8gbm90QU51bWJlciA9IGppdC5icmFuY2hJZk5vdE51
bWJlcihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUiwgaml0LnNjcmF0Y2hSZWdpc3RlcigpLCBEb05v
dEhhdmVUYWdSZWdpc3RlcnMpOworICAgICAgICAgICAgYXV0byBpc0RvdWJsZSA9IGppdC5icmFu
Y2hJZk5vdEludDMyKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBEb05vdEhhdmVUYWdSZWdpc3Rl
cnMpOwogICAgICAgICAgICAgLy8gV2UncmUgYW4gaW50MzIKLSAgICAgICAgICAgIGppdC5zaWdu
RXh0ZW5kMzJUb1B0cihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIpOwotICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQ2NFRvRmxvYXQoR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIsIGRlc3QpOworICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRmxvYXQo
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRlc3QpOwogICAgICAgICAgICAgZG9uZS5hcHBlbmQo
aml0Lmp1bXAoKSk7CiAKICAgICAgICAgICAgIGlzRG91YmxlLmxpbmsoJmppdCk7CisjaWYgVVNF
KEpTVkFMVUU2NCkKICAgICAgICAgICAgIGppdC51bmJveERvdWJsZVdpdGhvdXRBc3NlcnRpb25z
KEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUjIsIGRlc3Qs
IERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisjZWxzZQorICAgICAgICAgICAgaml0LnVuYm94RG91
YmxlKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBkZXN0KTsKKyNlbmRpZgogICAgICAgICAgICAg
aml0LmNvbnZlcnREb3VibGVUb0Zsb2F0KGRlc3QsIGRlc3QpOwogICAgICAgICAgICAgZG9uZS5h
cHBlbmQoaml0Lmp1bXAoKSk7CiAKICAgICAgICAgICAgIG5vdEFOdW1iZXIubGluaygmaml0KTsK
LSAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Db252ZXJ0
VG9GMzIpPihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgICAgICBqaXQuc2V0dXBB
cmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uQ29udmVydFRvRjMyKT4oSlNSSW5mbzo6cmV0dXJu
VmFsdWVKU1IpOwogICAgICAgICAgICAgYXV0byBjYWxsID0gaml0LmNhbGwoT3BlcmF0aW9uUHRy
VGFnKTsKICAgICAgICAgICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRKdW1wSWZF
eGNlcHRpb24odm0pKTsKICAgICAgICAgICAgIGppdC5tb3ZlKEZQUkluZm86OnJldHVyblZhbHVl
RlBSICwgZGVzdCk7CkBAIC0zNTEsMjIgKzM4MSwyNSBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxl
ckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2
bQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBUeXBlS2luZDo6
RjY0OiB7Ci0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CiAgICAgICAg
ICAgICBGUFJSZWcgZGVzdCA9IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmZwcigpOworICAgICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBkb25lOwogCi0gICAgICAgICAgICBhdXRvIG5v
dEFOdW1iZXIgPSBqaXQuYnJhbmNoSWZOb3ROdW1iZXIoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIs
IERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7Ci0gICAgICAgICAgICBhdXRvIGlzRG91YmxlID0gaml0
LmJyYW5jaElmTm90SW50MzIoSlNWYWx1ZVJlZ3MoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpLCBE
b05vdEhhdmVUYWdSZWdpc3RlcnMpOworICAgICAgICAgICAgYXV0byBub3RBTnVtYmVyID0gaml0
LmJyYW5jaElmTm90TnVtYmVyKEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBqaXQuc2NyYXRjaFJl
Z2lzdGVyKCksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgICAgICBhdXRvIGlzRG91
YmxlID0gaml0LmJyYW5jaElmTm90SW50MzIoSlNWYWx1ZVJlZ3MoSlNSSW5mbzo6cmV0dXJuVmFs
dWVKU1IpLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwogICAgICAgICAgICAgLy8gV2UncmUgYW4g
aW50MzIKLSAgICAgICAgICAgIGppdC5zaWduRXh0ZW5kMzJUb1B0cihHUFJJbmZvOjpyZXR1cm5W
YWx1ZUdQUiwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwotICAgICAgICAgICAgaml0LmNvbnZl
cnRJbnQ2NFRvRG91YmxlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBkZXN0KTsKKyAgICAgICAg
ICAgIGppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZGVz
dCk7CiAgICAgICAgICAgICBkb25lLmFwcGVuZChqaXQuanVtcCgpKTsKIAogICAgICAgICAgICAg
aXNEb3VibGUubGluaygmaml0KTsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgaml0
LnVuYm94RG91YmxlV2l0aG91dEFzc2VydGlvbnMoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQ
UkluZm86OnJldHVyblZhbHVlR1BSMiwgZGVzdCwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyNl
bHNlCisgICAgICAgICAgICBqaXQudW5ib3hEb3VibGUoSlNSSW5mbzo6cmV0dXJuVmFsdWVKU1Is
IGRlc3QpOworI2VuZGlmCiAgICAgICAgICAgICBkb25lLmFwcGVuZChqaXQuanVtcCgpKTsKIAog
ICAgICAgICAgICAgbm90QU51bWJlci5saW5rKCZqaXQpOwotICAgICAgICAgICAgaml0LnNldHVw
QXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbnZlcnRUb0Y2NCk+KEdQUkluZm86OnJldHVy
blZhbHVlR1BSKTsKKyAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVy
YXRpb25Db252ZXJ0VG9GNjQpPihKU1JJbmZvOjpyZXR1cm5WYWx1ZUpTUik7CiAgICAgICAgICAg
ICBhdXRvIGNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25QdHJUYWcpOwogICAgICAgICAgICAgZXhj
ZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1bXBJZkV4Y2VwdGlvbih2bSkpOwogICAgICAg
ICAgICAgaml0Lm1vdmUoRlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIsIGRlc3QpOwpAQCAtMzgwLDcg
KzQxMyw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+
LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgIH0KICAgICAgICAgZGVm
YXVsdDogIHsKICAgICAgICAgICAgIGlmIChXYXNtOjppc0Z1bmNyZWYocmV0dXJuVHlwZSkgfHwg
V2FzbTo6aXNFeHRlcm5yZWYocmV0dXJuVHlwZSkpCi0gICAgICAgICAgICAgICAgaml0Lm1vdmUo
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmdwcigpKTsK
KyAgICAgICAgICAgICAgICBqaXQubW92ZVZhbHVlUmVncyhKU1JJbmZvOjpyZXR1cm5WYWx1ZUpT
Uiwgd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uanNyKCkpOwogICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgIC8vIEZvciB0aGUgSmF2YVNjcmlwdCBlbWJlZGRpbmcsIGltcG9ydHMgd2l0
aCB0aGVzZSB0eXBlcyBpbiB0aGVpciB0eXBlIGRlZmluaXRpb24gcmV0dXJuIGFyZSBhIFdlYkFz
c2VtYmx5Lk1vZHVsZSB2YWxpZGF0aW9uIGVycm9yLgogICAgICAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zOTQsMTIgKzQyNywyOSBAQCBFeHBlY3RlZDxNYWNy
b0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21U
b0pTKFZNJiB2bQogICAgICAgICAgICAgaml0LmxvYWRXYXNtQ29udGV4dEluc3RhbmNlKHdhc21D
b250ZXh0SW5zdGFuY2VHUFIpOwogICAgICAgICB9CiAKLSAgICAgICAgaml0LnNldHVwQXJndW1l
bnRzPGRlY2x0eXBlKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzKT4od2FzbUNvbnRleHRJbnN0YW5j
ZUdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZ0eXBlRGVmaW5pdGlvbiksIEdQUklu
Zm86OnJldHVyblZhbHVlR1BSLCBDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBD
Q2FsbEhlbHBlcnM6OmZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgY29uc3RleHByIEdQ
UlJlZyBzYXZlZFJlc3VsdHNHUFIgPSBwcmVmZXJyZWRBcmd1bWVudEdQUjxkZWNsdHlwZShvcGVy
YXRpb25JdGVyYXRlUmVzdWx0cyksIDQ+KCk7CisgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVy
czo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNhdmVkUmVzdWx0c0dQUik7CisgICAgICAgIGlmIGNv
bnN0ZXhwciAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAgICBqaXQu
c3ViUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsKSwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIHN0
YXRpY19hc3NlcnQobm9PdmVybGFwKHNhdmVkUmVzdWx0c0dQUiwgSlNSSW5mbzo6cmV0dXJuVmFs
dWVKU1IpKTsKKyAgICAgICAgQVNTRVJUKHdhc21Db250ZXh0SW5zdGFuY2VHUFIgIT0gc2F2ZWRS
ZXN1bHRzR1BSKTsKKyAgICAgICAgaml0LnNldHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlv
bkl0ZXJhdGVSZXN1bHRzKT4od2FzbUNvbnRleHRJbnN0YW5jZUdQUiwgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tUHRyKCZ0eXBlRGVmaW5pdGlvbiksIEpTUkluZm86OnJldHVyblZhbHVlSlNSLCBz
YXZlZFJlc3VsdHNHUFIsIENDYWxsSGVscGVyczo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIpOwogICAg
ICAgICBqaXQuY2FsbE9wZXJhdGlvbihGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJh
dGlvbkl0ZXJhdGVSZXN1bHRzKSk7CisgICAgICAgIGlmIGNvbnN0ZXhwciAobWF4RnJhbWVFeHRl
bnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAgICBqaXQuYWRkUHRyKENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgQ0NhbGxIZWxwZXJz
OjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisKICAgICAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVu
ZChqaXQuZW1pdEp1bXBJZkV4Y2VwdGlvbih2bSkpOwogCi0gICAgICAgIGZvciAoUmVnaXN0ZXJB
dE9mZnNldCBsb2NhdGlvbiA6IHNhdmVkUmVzdWx0UmVnaXN0ZXJzKQotICAgICAgICAgICAgaml0
LmxvYWQ2NFRvUmVnKENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyLCBsb2NhdGlvbi5vZmZzZXQoKSksIGxvY2F0aW9uLnJlZygpKTsKKyAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpZ25hdHVyZS5yZXR1cm5Db3VudCgpOyArK2kp
IHsKKyAgICAgICAgICAgIFZhbHVlTG9jYXRpb24gbG9jID0gd2FzbUNhbGxJbmZvLnJlc3VsdHNb
aV07CisgICAgICAgICAgICBpZiAobG9jLmlzR1BSKCkpIHsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0
KQorICAgICAgICAgICAgICAgIEFTU0VSVChzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5q
c3IoKS5wYXlsb2FkR1BSKCkpLT5vZmZzZXQoKSArIDQgPT0gc2F2ZWRSZXN1bHRSZWdpc3RlcnMu
ZmluZChsb2MuanNyKCkudGFnR1BSKCkpLT5vZmZzZXQoKSk7CisjZW5kaWYKKyAgICAgICAgICAg
ICAgICBqaXQubG9hZFZhbHVlKENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0
YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJlc3VsdFJlZ2lzdGVycy5maW5kKGxvYy5qc3IoKS5w
YXlsb2FkR1BSKCkpLT5vZmZzZXQoKSksIGxvYy5qc3IoKSk7CisgICAgICAgICAgICB9IGVsc2Ug
aWYgKGxvYy5pc0ZQUigpKQorICAgICAgICAgICAgICAgIGppdC5sb2FkRG91YmxlKENDYWxsSGVs
cGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzYXZlZFJl
c3VsdFJlZ2lzdGVycy5maW5kKGxvYy5mcHIoKSktPm9mZnNldCgpKSwgbG9jLmZwcigpKTsKKyAg
ICAgICAgfQogICAgIH0KIAogICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNw
cAppbmRleCAyOGM1M2UxOTg3Y2QuLjU1MjE1Njc5ZDQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKQEAgLTE1Nyw2
ICsxNTcsOSBAQCBwdHJkaWZmX3QgV2ViQXNzZW1ibHlGdW5jdGlvbjo6cHJldmlvdXNJbnN0YW5j
ZU9mZnNldCgpIGNvbnN0CiB7CiAgICAgcHRyZGlmZl90IHJlc3VsdCA9IGNhbGxlZVNhdmVzKCku
bnVtYmVyT2ZTZXRSZWdpc3RlcnMoKSAqIHNpemVvZihDUFVSZWdpc3Rlcik7CiAgICAgcmVzdWx0
ID0gLXJlc3VsdCAtIHNpemVvZihDUFVSZWdpc3Rlcik7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkK
KyAgICBBU1NFUlQoIWNhbGxlZVNhdmVzKCkubnVtYmVyT2ZTZXRGUFJzKCkpOyAvLyBCZWNhdXNl
IEZQUnMgYXJlIHdpZGVyIHRoYW4gc2l6ZW9mKENQVVJlZ2lzdGVyKQorI2VuZGlmCiAjaWYgQVNT
RVJUX0VOQUJMRUQKICAgICBwdHJkaWZmX3QgbWluT2Zmc2V0ID0gMTsKICAgICBmb3IgKGNvbnN0
IFJlZ2lzdGVyQXRPZmZzZXQmIHJlZ0F0T2Zmc2V0IDogdXNlZENhbGxlZVNhdmVSZWdpc3RlcnMo
KSkgewpAQCAtMTg2LDggKzE4OSw2IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRy
VGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgY29u
c3QgYXV0byYgcGlubmVkUmVncyA9IFdhc206OlBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCk7CiAg
ICAgUmVnaXN0ZXJBdE9mZnNldExpc3QgcmVnaXN0ZXJzVG9TcGlsbCA9IHVzZWRDYWxsZWVTYXZl
UmVnaXN0ZXJzKCk7CiAKLSAgICBhdXRvJiBtb2R1bGVJbmZvcm1hdGlvbiA9IGluc3RhbmNlKCkt
Pmluc3RhbmNlKCkubW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKTsKLQogICAgIGNvbnN0IFdh
c206Oldhc21DYWxsaW5nQ29udmVudGlvbiYgd2FzbUNDID0gV2FzbTo6d2FzbUNhbGxpbmdDb252
ZW50aW9uKCk7CiAgICAgV2FzbTo6Q2FsbEluZm9ybWF0aW9uIHdhc21DYWxsSW5mbyA9IHdhc21D
Qy5jYWxsSW5mb3JtYXRpb25Gb3IodHlwZURlZmluaXRpb24pOwogICAgIFdhc206OkNhbGxJbmZv
cm1hdGlvbiBqc0NhbGxJbmZvID0gV2FzbTo6anNDYWxsaW5nQ29udmVudGlvbigpLmNhbGxJbmZv
cm1hdGlvbkZvcih0eXBlRGVmaW5pdGlvbiwgV2FzbTo6Q2FsbFJvbGU6OkNhbGxlZSk7CkBAIC0y
MTYsOSArMjE3LDE0IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJB
c3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgIGppdC5zdG9y
ZVB0cihyZWcsIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rl
ciwgb2Zmc2V0KSk7CiAgICAgfQogCi0gICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBXYXNtOjp3YXNt
Q2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdOwotICAgIGJvb2wgc3Rh
Y2tMaW1pdEdQUklzQ2xvYmJlcmVkID0gZmFsc2U7CisgICAgSlNWYWx1ZVJlZ3Mgc2NyYXRjaEpT
UiB7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgV2FzbTo6d2FzbUNhbGxpbmdDb252
ZW50aW9uKCkucHJvbG9ndWVTY3JhdGNoR1BSc1syXSwKKyNlbmRpZgorICAgICAgICBXYXNtOjp3
YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9sb2d1ZVNjcmF0Y2hHUFJzWzFdCisgICAgfTsKICAg
ICBHUFJSZWcgc3RhY2tMaW1pdEdQUiA9IFdhc206Ondhc21DYWxsaW5nQ29udmVudGlvbigpLnBy
b2xvZ3VlU2NyYXRjaEdQUnNbMF07CisgICAgYm9vbCBzdGFja0xpbWl0R1BSSXNDbG9iYmVyZWQg
PSBmYWxzZTsKICAgICBqaXQubG9hZFB0cih2bS5hZGRyZXNzT2ZTb2Z0U3RhY2tMaW1pdCgpLCBz
dGFja0xpbWl0R1BSKTsKIAogICAgIENDYWxsSGVscGVyczo6SnVtcExpc3Qgc2xvd1BhdGg7CkBA
IC0yMzcsNyArMjQzLDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdl
YkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAgICAgaml0LmVt
aXRNYXRlcmlhbGl6ZVRhZ0NoZWNrUmVnaXN0ZXJzKCk7CiAKICAgICAvLyBMb29wIGJhY2t3YXJk
cyBzbyB3ZSBjYW4gdXNlIHRoZSBmaXJzdCBmbG9hdGluZyBwb2ludCBhcmd1bWVudCBhcyBhIHNj
cmF0Y2guCi0gICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRp
b24oKS5mcHJBcmdzWzBdLmZwcigpOworICAgIEZQUlJlZyBzY3JhdGNoRlBSID0gV2FzbTo6d2Fz
bUNhbGxpbmdDb252ZW50aW9uKCkuZnByQXJnc1swXTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBz
aWduYXR1cmUuYXJndW1lbnRDb3VudCgpOyBpLS07KSB7CiAgICAgICAgIENDYWxsSGVscGVyczo6
QWRkcmVzcyBjYWxsZWVGcmFtZSA9IENDYWxsSGVscGVyczo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxl
cjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIDApOwogICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MganNQYXJhbShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwganNDYWxsSW5mby5wYXJhbXNb
aV0ub2Zmc2V0RnJvbUZQKCkpOwpAQCAtMjQ2LDEyICsyNTIsMjAgQEAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9p
bnRTbG93KCkKICAgICAgICAgYXV0byB0eXBlID0gc2lnbmF0dXJlLmFyZ3VtZW50VHlwZShpKTsK
ICAgICAgICAgc3dpdGNoICh0eXBlLmtpbmQpIHsKICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2lu
ZDo6STMyOiB7Ci0gICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOwot
ICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdEludDMyKHNjcmF0Y2hH
UFIpKTsKLSAgICAgICAgICAgIGlmIChpc1N0YWNrKQotICAgICAgICAgICAgICAgIGppdC5zdG9y
ZTMyKHNjcmF0Y2hHUFIsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBhcmFt
c1tpXS5vZmZzZXRGcm9tU1AoKSkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
IGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoc2NyYXRjaEdQUiwgd2FzbUNhbGxJbmZvLnBhcmFtc1tp
XS5ncHIoKSk7CisgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpzUGFyYW0sIHNjcmF0Y2hKU1Ip
OworICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdEludDMyKHNjcmF0
Y2hKU1IpKTsKKyAgICAgICAgICAgIGlmIChpc1N0YWNrKSB7CisgICAgICAgICAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzIGFkZHIgeyBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21DYWxs
SW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpIH07CisgICAgICAgICAgICAgICAgaml0LnN0
b3JlMzIoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIGFkZHIud2l0aE9mZnNldChQYXlsb2FkT2Zm
c2V0KSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICBqaXQuc3RvcmUz
MihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSwgYWRkci53aXRoT2Zmc2V0KFRhZ09mZnNl
dCkpOworI2VuZGlmCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGppdC56
ZXJvRXh0ZW5kMzJUb1dvcmQoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHdhc21DYWxsSW5mby5w
YXJhbXNbaV0uanNyKCkucGF5bG9hZEdQUigpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAg
ICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApLCB3YXNt
Q2FsbEluZm8ucGFyYW1zW2ldLmpzcigpLnRhZ0dQUigpKTsKKyNlbmRpZgorICAgICAgICAgICAg
fQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBXYXNtOjpUeXBl
S2luZDo6UmVmOgpAQCAtMjYwLDI3ICsyNzQsMjcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpT
RW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkK
ICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RXh0ZXJucmVmOiB7CiAgICAgICAgICAgICBp
ZiAoIVdhc206OmlzRXh0ZXJucmVmKHR5cGUpKSB7CiAgICAgICAgICAgICAgICAgLy8gRW5zdXJl
IHdlIGhhdmUgYSBXQVNNIGV4cG9ydGVkIGZ1bmN0aW9uLgotICAgICAgICAgICAgICAgIGppdC5s
b2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAgICAgICAgYXV0byBpc051bGwg
PSBqaXQuYnJhbmNoSWZOdWxsKHNjcmF0Y2hHUFIpOworICAgICAgICAgICAgICAgIGppdC5sb2Fk
VmFsdWUoanNQYXJhbSwgc2NyYXRjaEpTUik7CisgICAgICAgICAgICAgICAgYXV0byBpc051bGwg
PSBqaXQuYnJhbmNoSWZOdWxsKHNjcmF0Y2hKU1IpOwogICAgICAgICAgICAgICAgIGlmICghdHlw
ZS5pc051bGxhYmxlKCkpCiAgICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChpc051
bGwpOwotICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RDZWxs
KHNjcmF0Y2hHUFIpKTsKKyAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5j
aElmTm90Q2VsbChzY3JhdGNoSlNSKSk7CiAKICAgICAgICAgICAgICAgICBzdGFja0xpbWl0R1BS
SXNDbG9iYmVyZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgIGppdC5lbWl0TG9hZFN0cnVjdHVy
ZSh2bSwgc2NyYXRjaEdQUiwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAgICAgICAgaml0LmxvYWRD
b21wYWN0UHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBTdHJ1Y3R1cmU6OmNs
YXNzSW5mb09mZnNldCgpKSwgc2NyYXRjaEdQUik7CisgICAgICAgICAgICAgICAgaml0LmVtaXRM
b2FkU3RydWN0dXJlKHZtLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgc2NyYXRjaEpTUi5wYXls
b2FkR1BSKCkpOworICAgICAgICAgICAgICAgIGppdC5sb2FkQ29tcGFjdFB0cihDQ2FsbEhlbHBl
cnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIFN0cnVjdHVyZTo6Y2xhc3NJbmZv
T2Zmc2V0KCkpLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAKICAgICAgICAgICAgICAgICBz
dGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8V2ViQXNzZW1ibHlGdW5jdGlvbj46OnZhbHVlLCAi
V2UgZG8gbm90IGNoZWNrIGZvciBzdWJ0eXBlcyBiZWxvdyIpOwogICAgICAgICAgICAgICAgIHN0
YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbj46OnZh
bHVlLCAiV2UgZG8gbm90IGNoZWNrIGZvciBzdWJ0eXBlcyBiZWxvdyIpOwogCi0gICAgICAgICAg
ICAgICAgYXV0byBpc1dhc21GdW5jdGlvbiA9IGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpF
cXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKFdlYkFzc2VtYmx5
RnVuY3Rpb246OmluZm8oKSkpOwotICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQu
YnJhbmNoUHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbVB0cihXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6aW5mbygpKSkpOwor
ICAgICAgICAgICAgICAgIGF1dG8gaXNXYXNtRnVuY3Rpb24gPSBqaXQuYnJhbmNoUHRyKENDYWxs
SGVscGVyczo6RXF1YWwsIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW1QdHIoV2ViQXNzZW1ibHlGdW5jdGlvbjo6aW5mbygpKSk7CisgICAgICAgICAgICAg
ICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwg
c2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihXZWJB
c3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6aW5mbygpKSkpOwogCiAgICAgICAgICAgICAgICAgaXNX
YXNtRnVuY3Rpb24ubGluaygmaml0KTsKICAgICAgICAgICAgICAgICBpZiAoV2FzbTo6aXNSZWZX
aXRoVHlwZUluZGV4KHR5cGUpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoanNQ
YXJhbSwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxs
SGVscGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZTo6b2Zm
c2V0T2ZTaWduYXR1cmVJbmRleCgpKSwgc2NyYXRjaEdQUik7Ci0gICAgICAgICAgICAgICAgICAg
IHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoUHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNj
cmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih0eXBlLmluZGV4KSkpOworICAg
ICAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihqc1BhcmFtLCBzY3JhdGNoSlNSLnBheWxvYWRH
UFIoKSk7CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRk
cmVzcyhzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2U6Om9m
ZnNldE9mU2lnbmF0dXJlSW5kZXgoKSksIHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJz
OjpOb3RFcXVhbCwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbVB0cih0eXBlLmluZGV4KSkpOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
ICAgIGlmICh0eXBlLmlzTnVsbGFibGUoKSkKQEAgLTI4OCwxNSArMzAyLDE1IEBAIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxF
bnRyeXBvaW50U2xvdygpCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChpc1N0YWNr
KSB7Ci0gICAgICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKKyAg
ICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpzUGFyYW0sIHNjcmF0Y2hKU1IpOwogICAgICAg
ICAgICAgICAgIGlmICghdHlwZS5pc051bGxhYmxlKCkpCi0gICAgICAgICAgICAgICAgICAgIHNs
b3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOdWxsKHNjcmF0Y2hHUFIpKTsKLSAgICAgICAgICAg
ICAgICBqaXQuc3RvcmU2NChzY3JhdGNoR1BSLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KHdhc21D
YWxsSW5mby5wYXJhbXNbaV0ub2Zmc2V0RnJvbVNQKCkpKTsKKyAgICAgICAgICAgICAgICAgICAg
c2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk51bGwoc2NyYXRjaEpTUikpOworICAgICAgICAg
ICAgICAgIGppdC5zdG9yZVZhbHVlKHNjcmF0Y2hKU1IsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQo
d2FzbUNhbGxJbmZvLnBhcmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkpOwogICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICBhdXRvIGV4dGVybkdQUiA9IHdhc21DYWxsSW5mby5wYXJh
bXNbaV0uZ3ByKCk7Ci0gICAgICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBleHRlcm5H
UFIpOworICAgICAgICAgICAgICAgIGF1dG8gZXh0ZXJuSlNSID0gd2FzbUNhbGxJbmZvLnBhcmFt
c1tpXS5qc3IoKTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKGpzUGFyYW0sIGV4dGVy
bkpTUik7CiAgICAgICAgICAgICAgICAgaWYgKCF0eXBlLmlzTnVsbGFibGUoKSkKLSAgICAgICAg
ICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk51bGwoZXh0ZXJuR1BSKSk7
CisgICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOdWxsKGV4
dGVybkpTUikpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
QEAgLTMwNCwzNSArMzE4LDQxIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFn
PiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgIGNh
c2UgV2FzbTo6VHlwZUtpbmQ6OkY2NDogewogICAgICAgICAgICAgaWYgKCFpc1N0YWNrKQogICAg
ICAgICAgICAgICAgIHNjcmF0Y2hGUFIgPSB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmZwcigpOwot
ICAgICAgICAgICAgYXV0byBtb3ZlVG9EZXN0aW5hdGlvbiA9IFsmXSAoKSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKGlzU3RhY2spIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHNpZ25hdHVyZS5h
cmd1bWVudFR5cGUoaSkuaXNGMzIoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGppdC5zdG9y
ZUZsb2F0KHNjcmF0Y2hGUFIsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQod2FzbUNhbGxJbmZvLnBh
cmFtc1tpXS5vZmZzZXRGcm9tU1AoKSkpOwotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgICAgICAgICBqaXQuc3RvcmVEb3VibGUoc2NyYXRjaEZQUiwgY2FsbGVlRnJh
bWUud2l0aE9mZnNldCh3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSk7Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfTsKIAotICAgICAgICAgICAgaml0LmxvYWQ2
NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQu
YnJhbmNoSWZOb3ROdW1iZXIoc2NyYXRjaEdQUikpOwotICAgICAgICAgICAgYXV0byBpc0ludDMy
ID0gaml0LmJyYW5jaElmSW50MzIoc2NyYXRjaEdQUik7Ci0KLSAgICAgICAgICAgIGppdC51bmJv
eERvdWJsZShzY3JhdGNoR1BSLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSKTsKKyAgICAgICAgICAg
IGppdC5sb2FkVmFsdWUoanNQYXJhbSwgc2NyYXRjaEpTUik7CisjaWYgVVNFKEpTVkFMVUU2NCkK
KyAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIoc2NyYXRj
aEpTUiwgSW52YWxpZEdQUlJlZykpOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAg
ICAgIHN0YWNrTGltaXRHUFJJc0Nsb2JiZXJlZCA9IHRydWU7CisgICAgICAgICAgICBzbG93UGF0
aC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKHNjcmF0Y2hKU1IsIHN0YWNrTGltaXRHUFIp
KTsKKyNlbmRpZgorICAgICAgICAgICAgYXV0byBpc0ludDMyID0gaml0LmJyYW5jaElmSW50MzIo
c2NyYXRjaEpTUik7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgICAgIGppdC51bmJveERv
dWJsZShzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHNj
cmF0Y2hGUFIpOworI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIGppdC51bmJv
eERvdWJsZShzY3JhdGNoSlNSLCBzY3JhdGNoRlBSKTsKKyNlbmRpZgogICAgICAgICAgICAgaWYg
KHNpZ25hdHVyZS5hcmd1bWVudFR5cGUoaSkuaXNGMzIoKSkKICAgICAgICAgICAgICAgICBqaXQu
Y29udmVydERvdWJsZVRvRmxvYXQoc2NyYXRjaEZQUiwgc2NyYXRjaEZQUik7Ci0gICAgICAgICAg
ICBtb3ZlVG9EZXN0aW5hdGlvbigpOwogICAgICAgICAgICAgYXV0byBkb25lID0gaml0Lmp1bXAo
KTsKIAogICAgICAgICAgICAgaXNJbnQzMi5saW5rKCZqaXQpOwogICAgICAgICAgICAgaWYgKHNp
Z25hdHVyZS5hcmd1bWVudFR5cGUoaSkuaXNGMzIoKSkgewotICAgICAgICAgICAgICAgIGppdC5j
b252ZXJ0SW50MzJUb0Zsb2F0KHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOwotICAgICAgICAgICAg
ICAgIG1vdmVUb0Rlc3RpbmF0aW9uKCk7CisgICAgICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQz
MlRvRmxvYXQoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hGUFIpOwogICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9Eb3VibGUoc2Ny
YXRjaEdQUiwgc2NyYXRjaEZQUik7Ci0gICAgICAgICAgICAgICAgbW92ZVRvRGVzdGluYXRpb24o
KTsKKyAgICAgICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9Eb3VibGUoc2NyYXRjaEpTUi5w
YXlsb2FkR1BSKCksIHNjcmF0Y2hGUFIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZG9u
ZS5saW5rKCZqaXQpOwotCisgICAgICAgICAgICBpZiAoaXNTdGFjaykgeworICAgICAgICAgICAg
ICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBhZGRyIHsgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3
YXNtQ2FsbEluZm8ucGFyYW1zW2ldLm9mZnNldEZyb21TUCgpKSB9OworICAgICAgICAgICAgICAg
IGlmIChzaWduYXR1cmUuYXJndW1lbnRUeXBlKGkpLmlzRjMyKCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaml0LnN0b3JlRmxvYXQoc2NyYXRjaEZQUiwgYWRkci53aXRoT2Zmc2V0KFBheWxvYWRP
ZmZzZXQpKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgICAgICBqaXQu
c3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSwgYWRkci53aXRoT2Zmc2V0KFRh
Z09mZnNldCkpOworI2VuZGlmCisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIGppdC5zdG9yZURvdWJsZShzY3JhdGNoRlBSLCBhZGRyKTsKKyAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CkBAIC0zNDMs
NDIgKzM2Myw0NCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNz
ZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgIC8vIEF0IHRoaXMgcG9p
bnQsIHdlJ3JlIGNvbW1pdHRlZCB0byBkb2luZyBhIGZhc3QgY2FsbC4KIAogICAgIGlmIChXYXNt
OjpDb250ZXh0Ojp1c2VGYXN0VExTKCkpIAotICAgICAgICBqaXQubG9hZFdhc21Db250ZXh0SW5z
dGFuY2Uoc2NyYXRjaEdQUik7CisgICAgICAgIGppdC5sb2FkV2FzbUNvbnRleHRJbnN0YW5jZShz
Y3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAgICAgZWxzZQotICAgICAgICBqaXQubG9hZFB0cih2
bS53YXNtQ29udGV4dC5wb2ludGVyVG9JbnN0YW5jZSgpLCBzY3JhdGNoR1BSKTsKKyAgICAgICAg
aml0LmxvYWRQdHIodm0ud2FzbUNvbnRleHQucG9pbnRlclRvSW5zdGFuY2UoKSwgc2NyYXRjaEpT
Ui5wYXlsb2FkR1BSKCkpOwogICAgIHB0cmRpZmZfdCBwcmV2aW91c0luc3RhbmNlT2Zmc2V0ID0g
dGhpcy0+cHJldmlvdXNJbnN0YW5jZU9mZnNldCgpOwotICAgIGppdC5zdG9yZVB0cihzY3JhdGNo
R1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHBy
ZXZpb3VzSW5zdGFuY2VPZmZzZXQpKTsKKyAgICBqaXQuc3RvcmVQdHIoc2NyYXRjaEpTUi5wYXls
b2FkR1BSKCksIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rl
ciwgcHJldmlvdXNJbnN0YW5jZU9mZnNldCkpOwogCi0gICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tUHRyKCZpbnN0YW5jZSgpLT5pbnN0YW5jZSgpKSwgc2NyYXRjaEdQUik7Cisg
ICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZpbnN0YW5jZSgpLT5pbnN0
YW5jZSgpKSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOwogICAgIGlmIChXYXNtOjpDb250ZXh0
Ojp1c2VGYXN0VExTKCkpIAotICAgICAgICBqaXQuc3RvcmVXYXNtQ29udGV4dEluc3RhbmNlKHNj
cmF0Y2hHUFIpOworICAgICAgICBqaXQuc3RvcmVXYXNtQ29udGV4dEluc3RhbmNlKHNjcmF0Y2hK
U1IucGF5bG9hZEdQUigpKTsKICAgICBlbHNlIHsKLSAgICAgICAgaml0Lm1vdmUoc2NyYXRjaEdQ
UiwgcGlubmVkUmVncy53YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlcik7Ci0gICAgICAgIGppdC5z
dG9yZVB0cihzY3JhdGNoR1BSLCB2bS53YXNtQ29udGV4dC5wb2ludGVyVG9JbnN0YW5jZSgpKTsK
KyAgICAgICAgaml0Lm1vdmUoc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCksIHBpbm5lZFJlZ3Mud2Fz
bUNvbnRleHRJbnN0YW5jZVBvaW50ZXIpOworICAgICAgICBqaXQuc3RvcmVQdHIoc2NyYXRjaEpT
Ui5wYXlsb2FkR1BSKCksIHZtLndhc21Db250ZXh0LnBvaW50ZXJUb0luc3RhbmNlKCkpOwogICAg
IH0KICAgICBpZiAoc3RhY2tMaW1pdEdQUklzQ2xvYmJlcmVkKQogICAgICAgICBqaXQubG9hZFB0
cih2bS5hZGRyZXNzT2ZTb2Z0U3RhY2tMaW1pdCgpLCBzdGFja0xpbWl0R1BSKTsKLSAgICBqaXQu
c3RvcmVQdHIoc3RhY2tMaW1pdEdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIs
IFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZFN0YWNrTGltaXQoKSkpOworICAgIGppdC5z
dG9yZVB0cihzdGFja0xpbWl0R1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEpTUi5w
YXlsb2FkR1BSKCksIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZFN0YWNrTGltaXQoKSkp
OwogCi0gICAgaWYgKCEhbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5KSB7CisjaWYgIUNQVShBUk0p
IC8vIEFSTSBoYXMgbm8gcGlubmVkIHJlZ2lzdGVycyBmb3IgV2FzbSBNZW1vcnksIHNvIG5vIG5l
ZWQgdG8gc2V0IHRoZW0gdXAKKyAgICBpZiAoISFpbnN0YW5jZSgpLT5pbnN0YW5jZSgpLm1vZHVs
ZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkubWVtb3J5KSB7CiAgICAgICAgIEdQUlJlZyBiYXNlTWVt
b3J5ID0gcGlubmVkUmVncy5iYXNlTWVtb3J5UG9pbnRlcjsKICAgICAgICAgR1BSUmVnIHNjcmF0
Y2hPckJvdW5kc0NoZWNraW5nU2l6ZSA9IEludmFsaWRHUFJSZWc7CiAgICAgICAgIGF1dG8gbW9k
ZSA9IGluc3RhbmNlKCktPm1lbW9yeU1vZGUoKTsKIAogICAgICAgICBpZiAoaXNBUk02NEUoKSkg
ewotICAgICAgICAgICAgaWYgKG1vZGUgIT0gV2FzbTo6TWVtb3J5TW9kZTo6U2lnbmFsaW5nKQor
ICAgICAgICAgICAgaWYgKG1vZGUgPT0gV2FzbTo6TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmcp
CiAgICAgICAgICAgICAgICAgc2NyYXRjaE9yQm91bmRzQ2hlY2tpbmdTaXplID0gcGlubmVkUmVn
cy5ib3VuZHNDaGVja2luZ1NpemVSZWdpc3RlcjsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICBzY3JhdGNoT3JCb3VuZHNDaGVja2luZ1NpemUgPSBzdGFja0xpbWl0R1BSOwotICAg
ICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFdh
c206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZEJvdW5kc0NoZWNraW5nU2l6ZSgpKSwgc2NyYXRj
aE9yQm91bmRzQ2hlY2tpbmdTaXplKTsKKyAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVs
cGVyczo6QWRkcmVzcyhzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgV2FzbTo6SW5zdGFuY2U6Om9m
ZnNldE9mQ2FjaGVkQm91bmRzQ2hlY2tpbmdTaXplKCkpLCBzY3JhdGNoT3JCb3VuZHNDaGVja2lu
Z1NpemUpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG1vZGUgIT0gV2FzbTo6
TWVtb3J5TW9kZTo6U2lnbmFsaW5nKQotICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxs
SGVscGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNo
ZWRCb3VuZHNDaGVja2luZ1NpemUoKSksIHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVn
aXN0ZXIpOworICAgICAgICAgICAgaWYgKG1vZGUgPT0gV2FzbTo6TWVtb3J5TW9kZTo6Qm91bmRz
Q2hlY2tpbmcpCisgICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBXYXNtOjpJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNo
ZWRCb3VuZHNDaGVja2luZ1NpemUoKSksIHBpbm5lZFJlZ3MuYm91bmRzQ2hlY2tpbmdTaXplUmVn
aXN0ZXIpOwogICAgICAgICB9CiAKLSAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKHNjcmF0Y2hHUFIsIFdhc206Okluc3RhbmNlOjpvZmZzZXRPZkNhY2hlZE1lbW9yeSgp
KSwgYmFzZU1lbW9yeSk7Ci0gICAgICAgIGppdC5jYWdlQ29uZGl0aW9uYWxseUFuZFVudGFnKEdp
Z2FjYWdlOjpQcmltaXRpdmUsIGJhc2VNZW1vcnksIHNjcmF0Y2hPckJvdW5kc0NoZWNraW5nU2l6
ZSwgc2NyYXRjaEdQUik7CisgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVz
cyhzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSwgV2FzbTo6SW5zdGFuY2U6Om9mZnNldE9mQ2FjaGVk
TWVtb3J5KCkpLCBiYXNlTWVtb3J5KTsKKyAgICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5QW5k
VW50YWcoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgYmFzZU1lbW9yeSwgc2NyYXRjaE9yQm91bmRzQ2hl
Y2tpbmdTaXplLCBzY3JhdGNoSlNSLnBheWxvYWRHUFIoKSk7CiAgICAgfQorI2VuZGlmCiAKICAg
ICAvLyBXZSB1c2UgdGhpcyBjYWxsZWUgdG8gaW5kaWNhdGUgaG93IHRvIHVud2luZCBwYXN0IHRo
ZXNlIHR5cGVzIG9mIGZyYW1lczoKICAgICAvLyAxLiBXZSBuZWVkIHRvIGtub3cgd2hlcmUgdG8g
Z2V0IGNhbGxlZSBzYXZlcy4KQEAgLTM5MCw4ICs0MTIsOCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNs
b3coKQogICAgIC8vIEZJWE1FOiBDdXJyZW50bHkgd2UganVzdCBkbyBhbiBpbmRpcmVjdCBqdW1w
LiBCdXQgd2Ugc2hvdWxkIHRlYWNoIHRoZSBNb2R1bGUKICAgICAvLyBob3cgdG8gcmVwYXRjaCB1
czoKICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NTcw
Ci0gICAgaml0LmxvYWRQdHIoZW50cnlwb2ludExvYWRMb2NhdGlvbigpLCBzY3JhdGNoR1BSKTsK
LSAgICBqaXQuY2FsbChzY3JhdGNoR1BSLCBXYXNtRW50cnlQdHJUYWcpOworICAgIGppdC5sb2Fk
UHRyKGVudHJ5cG9pbnRMb2FkTG9jYXRpb24oKSwgc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOwor
ICAgIGppdC5jYWxsKHNjcmF0Y2hKU1IucGF5bG9hZEdQUigpLCBXYXNtRW50cnlQdHJUYWcpOwog
CiAgICAgbWFyc2hhbGxKU1Jlc3VsdChqaXQsIHR5cGVEZWZpbml0aW9uLCB3YXNtQ2FsbEluZm8s
IHNhdmVkUmVzdWx0UmVnaXN0ZXJzKTsKIApAQCAtNDIxLDcgKzQ0Myw3IEBAIE1hY3JvQXNzZW1i
bGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRy
eXBvaW50U2xvdygpCiAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHRo
aXMpLCBHUFJJbmZvOjpyZWdUMCk7CiAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAj
aWYgQ1BVKEFSTTY0RSkKLSAgICBqaXQudW50YWdSZXR1cm5BZGRyZXNzKHNjcmF0Y2hHUFIpOwor
ICAgIGppdC51bnRhZ1JldHVybkFkZHJlc3Moc2NyYXRjaEpTUi5wYXlsb2FkR1BSKCkpOwogI2Vu
ZGlmCiAgICAgYXV0byBqdW1wVG9Ib3N0Q2FsbFRodW5rID0gaml0Lmp1bXAoKTsKIApAQCAtNDI5
LDcgKzQ1MSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3Nl
bWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgaWYgKFVOTElLRUxZKGxp
bmtCdWZmZXIuZGlkRmFpbFRvQWxsb2NhdGUoKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgbGlua0J1ZmZlci5saW5rKGp1bXBUb0hvc3RDYWxsVGh1bmssIENvZGVMb2NhdGlvbkxh
YmVsPEpTRW50cnlQdHJUYWc+KGV4ZWN1dGFibGUoKS0+ZW50cnlwb2ludEZvcihDb2RlRm9yQ2Fs
bCwgTXVzdENoZWNrQXJpdHkpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyAgICBsaW5rQnVmZmVy
LmxpbmsoanVtcFRvSG9zdENhbGxUaHVuaywgQ29kZUxvY2F0aW9uTGFiZWw8SlNFbnRyeVB0clRh
Zz4oZXhlY3V0YWJsZSgpLT5lbnRyeXBvaW50Rm9yKENvZGVGb3JDYWxsLCBNdXN0Q2hlY2tBcml0
eSkpKTsKICAgICBtX2pzQ2FsbEVudHJ5cG9pbnQgPSBGSU5BTElaRV9XQVNNX0NPREUobGlua0J1
ZmZlciwgV2FzbUVudHJ5UHRyVGFnLCAiSlMtPldhc20gSUMiKTsKICAgICByZXR1cm4gbV9qc0Nh
bGxFbnRyeXBvaW50LmNvZGUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAKaW5kZXgg
YTIyMWIyZWNiNzEzLi5jYzdjYmUzZTQ3ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3Bw
CkBAIC0xNTgsNyArMTU4LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpT
V2ViQXNzZW1ibHlHbG9iYWwsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICBSZWY8V2Fz
bTo6R2xvYmFsPiB3YXNtR2xvYmFsID0gV2FzbTo6R2xvYmFsOjpjcmVhdGUodHlwZSwgbXV0YWJp
bGl0eSwgaW5pdGlhbFZhbHVlKTsKICAgICBKU1dlYkFzc2VtYmx5R2xvYmFsKiBqc1dlYkFzc2Vt
Ymx5R2xvYmFsID0gSlNXZWJBc3NlbWJseUdsb2JhbDo6dHJ5Q3JlYXRlKGdsb2JhbE9iamVjdCwg
dm0sIHdlYkFzc2VtYmx5R2xvYmFsU3RydWN0dXJlLCBXVEZNb3ZlKHdhc21HbG9iYWwpKTsKICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7Ci0gICAgZW5zdXJlU3RpbGxB
bGl2ZUhlcmUoYml0d2lzZV9jYXN0PHZvaWQqPihpbml0aWFsVmFsdWUpKTsgLy8gRW5zdXJlIHRo
aXMgaXMga2VwdCBhbGl2ZSB3aGlsZSBjcmVhdGluZyBKU1dlYkFzc2VtYmx5R2xvYmFsLgorICAg
IGVuc3VyZVN0aWxsQWxpdmVIZXJlKGluaXRpYWxWYWx1ZSk7IC8vIEVuc3VyZSB0aGlzIGlzIGtl
cHQgYWxpdmUgd2hpbGUgY3JlYXRpbmcgSlNXZWJBc3NlbWJseUdsb2JhbC4KICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzV2ViQXNzZW1ibHlHbG9iYWwpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5j
cHAKaW5kZXggYmM5Y2IwNjhkOGEzLi45N2MzZWM5MjM5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAK
QEAgLTU1NCw3ICs1NTQsNyBAQCB2b2lkIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjppbml0aWFs
aXplRXhwb3J0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgICAgICAgICAgICAg
IEpTV2ViQXNzZW1ibHlHbG9iYWwqIGdsb2JhbFZhbHVlID0gSlNXZWJBc3NlbWJseUdsb2JhbDo6
dHJ5Q3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlHbG9i
YWxTdHJ1Y3R1cmUoKSwgV1RGTW92ZShnbG9iYWxSZWYpKTsKICAgICAgICAgICAgICAgICBzY29w
ZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogICAgICAgICAgICAgICAgIG1faW5zdGFuY2UtPmxpbmtH
bG9iYWwodm0sIGdsb2JhbEluZGV4LCBnbG9iYWxWYWx1ZSk7Ci0gICAgICAgICAgICAgICAgZW5z
dXJlU3RpbGxBbGl2ZUhlcmUoYml0d2lzZV9jYXN0PHZvaWQqPihpbml0aWFsQml0cykpOyAvLyBF
bnN1cmUgdGhpcyBpcyBrZXB0IGFsaXZlIHdoaWxlIGNyZWF0aW5nIEpTV2ViQXNzZW1ibHlHbG9i
YWwuCisgICAgICAgICAgICAgICAgZW5zdXJlU3RpbGxBbGl2ZUhlcmUoaW5pdGlhbEJpdHMpOyAv
LyBFbnN1cmUgdGhpcyBpcyBrZXB0IGFsaXZlIHdoaWxlIGNyZWF0aW5nIEpTV2ViQXNzZW1ibHlH
bG9iYWwuCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAppbmRleCBjMTU1YWMyODA0YjAuLjM3NWM2OTExZDk5
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCkBAIC01ODUsMTIgKzU4NSwxMiBAQAogI2VuZGlm
CiAKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQotLyogRGlzYWJsZSBXZWJBc3NlbWJseSBvbiBhbGwg
MzJiaXQgcGxhdGZvcm1zLiBJdHMgTExJbnQgdGllciBjb3VsZAotICogd29yayBvbiB0aGVtLCBi
dXQgc3RpbGwgbmVlZHMgc29tZSBmaW5hbCB0b3VjaGVzLiAqLworI2lmICFDUFUoQVJNKQogI3Vu
ZGVmIEVOQUJMRV9XRUJBU1NFTUJMWQogI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFkgMAogI3Vu
ZGVmIEVOQUJMRV9XRUJBU1NFTUJMWV9CM0pJVAogI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFlf
QjNKSVQgMAorI2VuZGlmCiAjaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykpICYmIE9T
KExJTlVYKQogLyogT24gQVJNdjcgYW5kIE1JUFMgb24gTGludXggdGhlIEpJVCBpcyBlbmFibGVk
IHVubGVzcyBleHBsaWNpdGx5IGRpc2FibGVkLiAqLwogI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQp
CkBAIC03MDgsNyArNzA4LDcgQEAKICNkZWZpbmUgRU5BQkxFX1NBTVBMSU5HX1BST0ZJTEVSIDEK
ICNlbmRpZgogCi0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBIQVZFKE1BQ0hJTkVfQ09OVEVY
VCkKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIEhBVkUoTUFDSElORV9DT05URVhUKSAmJiBD
UFUoQUREUkVTUzY0KQogI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFlfU0lHTkFMSU5HX01FTU9S
WSAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10
ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKaW5kZXggZjkwNDliM2Nj
NjQ3Li5kM2JmMTEyMDg0ODkgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJl
c3MtdGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwpAQCAtNTg1
LDYgKzU4NSw4IEBAIGVuZAogJGhvc3RPUyA9IGRldGVybWluZU9TIHVubGVzcyAkaG9zdE9TCiAk
YXJjaGl0ZWN0dXJlID0gZGV0ZXJtaW5lQXJjaGl0ZWN0dXJlIHVubGVzcyAkYXJjaGl0ZWN0dXJl
CiAkaXNGVExQbGF0Zm9ybSA9ICEoJGFyY2hpdGVjdHVyZSA9PSAieDg2IiB8fCAkYXJjaGl0ZWN0
dXJlID09ICJhcm0iIHx8ICRhcmNoaXRlY3R1cmUgPT0gIm1pcHMiIHx8ICRhcmNoaXRlY3R1cmUg
PT0gInJpc2N2NjQiIHx8ICRob3N0T1MgPT0gIndpbmRvd3MiIHx8ICRob3N0T1MgPT0gInBsYXlz
dGF0aW9uIikKKyMgU3BlY2lhbCBjYXNlIGFybXY3LCB3ZSB3YW50IHRvIHJ1biB0aGUgd2FzbSB0
ZXN0cyB0ZW1wb3JhcmlseSB3aXRob3V0IEIzL0FpciBzdXBwb3J0CiskaXNXYXNtUGxhdGZvcm0g
PSAkaXNGVExQbGF0Zm9ybSB8fCAkYXJjaGl0ZWN0dXJlID09ICJhcm0iCiAKIGlmICRhcmNoaXRl
Y3R1cmUgPT0gIng4NiIKICAgICAjIFRoZSBKSVQgaXMgdGVtcG9yYXJpbHkgZGlzYWJsZWQgb24g
dGhpcyBwbGF0Zm9ybSBzaW5jZQpAQCAtMTcyOSw3ICsxNzMxLDcgQEAgZW5kCiAKIGRlZiBydW5X
ZWJBc3NlbWJseQogICAgIHJldHVybiBpZiAhJGppdFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNG
VExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2FzbVBsYXRmb3JtCiAgICAgcnVuKCJkZWZh
dWx0LXdhc20iLCAiLW0iLCAqRlRMX09QVElPTlMpCiAgICAgaWYgJG1vZGUgIT0gInF1aWNrIgog
ICAgICAgICBydW4oIndhc20tbm8tY2ppdC15ZXMtdGxzLWNvbnRleHQiLCAiLW0iLCAiLS11c2VG
YXN0VExTRm9yV2FzbUNvbnRleHQ9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBOT19DSklUX09QVElP
TlMpKQpAQCAtMTczNywxNSArMTczOSwxNyBAQCBkZWYgcnVuV2ViQXNzZW1ibHkKICAgICAgICAg
cnVuKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgIi1tIiwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRp
c29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFs
bG9jYXRpb249dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAg
IHJ1bigid2FzbS1uby10bHMtY29udGV4dCIsICItbSIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29u
dGV4dD1mYWxzZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLXNsb3ctbWVtb3J5
IiwgIi1tIiwgIi0tdXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5PWZhbHNlIiwgKkZUTF9PUFRJT05T
KQotICAgICAgICBydW4oIndhc20tYjMiLCAiLW0iLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAi
LS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVuKCJ3YXNt
LWFpciIsICItbSIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhl
Y3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVu
KCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5IiwgIi1tIiwgIi0tY29sbGVjdENvbnRpbnVvdXNs
eT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykgaWYgc2hvdWxkQ29sbGVj
dENvbnRpbnVvdXNseT8KKyAgICAgICAgaWYgJGlzRlRMUGxhdGZvcm0KKyAgICAgICAgICAgIHJ1
bigid2FzbS1iMyIsICItbSIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFVc2Vz
QWlyPWZhbHNlIiwgKkZUTF9PUFRJT05TKQorICAgICAgICAgICAgcnVuKCJ3YXNtLWFpciIsICIt
bSIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlz
bGFuZEFsbG9jYXRpb249dHJ1ZSIsICpGVExfT1BUSU9OUykKKyAgICAgICAgZW5kCiAgICAgZW5k
CiBlbmQKIAogZGVmIHJ1bldlYkFzc2VtYmx5SmV0U3RyZWFtMgogICAgIHJldHVybiBpZiAhJGpp
dFRlc3RzCi0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlz
V2FzbVBsYXRmb3JtCiAKICAgICBpZiAkbWVtb3J5TGltaXRlZAogICAgICAgICBza2lwCkBAIC0x
NzY0LDE1ICsxNzY4LDE3IEBAIGRlZiBydW5XZWJBc3NlbWJseUpldFN0cmVhbTIKICAgICAgICAg
cnVuKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVl
VG9PbGRBZ2U9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqRlRMX09QVElPTlMpCiAgICAgICAg
IHJ1bigid2FzbS1uby10bHMtY29udGV4dCIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1m
YWxzZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLXNsb3ctbWVtb3J5IiwgIi0t
dXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5PWZhbHNlIiwgKkZUTF9PUFRJT05TKQotICAgICAgICBy
dW4oIndhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1m
YWxzZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVuKCJ3YXNtLWFpciIsICItLXVzZVdhc21M
TEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249
dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLWNvbGxlY3QtY29udGludW91
c2x5IiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpG
VExfT1BUSU9OUykgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8KKyAgICAgICAgaWYgJGlz
RlRMUGxhdGZvcm0KKyAgICAgICAgICAgIHJ1bigid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1m
YWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKkZUTF9PUFRJT05TKQorICAgICAgICAg
ICAgcnVuKCJ3YXNtLWFpciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6
aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICpGVExfT1BUSU9OUykKKyAgICAg
ICAgZW5kCiAgICAgZW5kCiBlbmQKIAogZGVmIHJ1bldlYkFzc2VtYmx5U3VpdGUoKm9wdGlvbmFs
VGVzdFNwZWNpZmljT3B0aW9ucykKICAgICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVy
biBpZiAhJGlzRlRMUGxhdGZvcm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQogICAg
IG1vZHVsZXMgPSBEaXJbV0FTTVRFU1RTX1BBVEggKyAiKi5qcyJdLm1hcCB7IHxmfCBGaWxlLmJh
c2VuYW1lKGYpIH0KICAgICBwcmVwYXJlRXh0cmFBYnNvbHV0ZUZpbGVzKFdBU01URVNUU19QQVRI
LCBbIndhc20uanNvbiJdKQogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMobW9kdWxlcy5t
YXAgeyB8ZnwgIi4uLyIgKyBmIH0sICRjb2xsZWN0aW9uKQpAQCAtMTc4OCw5ICsxNzk0LDExIEBA
IGRlZiBydW5XZWJBc3NlbWJseVN1aXRlKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiAg
ICAgICAgIHJ1bigid2FzbS1lYWdlci1qZXR0aXNvbiIsICItLWZvcmNlQ29kZUJsb2NrVG9KZXR0
aXNvbkR1ZVRvT2xkQWdlPXRydWUiLCAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRB
bGxvY2F0aW9uPXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKihGVExfT1BUSU9OUyArIG9wdGlv
bmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCiAgICAgICAgIHJ1bigid2FzbS1uby10bHMtY29udGV4
dCIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICooRlRMX09QVElPTlMgKyBv
cHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgICBydW4oIndhc20tc2xvdy1tZW1v
cnkiLCAiLS11c2VXZWJBc3NlbWJseUZhc3RNZW1vcnk9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsg
b3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKLSAgICAgICAgcnVuKCJ3YXNtLWIzIiwgIi0t
dXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqKEZUTF9PUFRJ
T05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKLSAgICAgICAgcnVuKCJ3YXNtLWFp
ciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlz
bGFuZEFsbG9jYXRpb249dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZp
Y09wdGlvbnMpKQogICAgICAgICBydW4oIndhc20tY29sbGVjdC1jb250aW51b3VzbHkiLCAiLS1j
b2xsZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKihGVExfT1BUSU9O
UyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpIGlmIHNob3VsZENvbGxlY3RDb250aW51
b3VzbHk/CisgICAgICAgIGlmICRpc0ZUTFBsYXRmb3JtCisgICAgICAgICAgICBydW4oIndhc20t
YjMiLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICoo
RlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQorICAgICAgICAgICAg
cnVuKCJ3YXNtLWFpciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5n
RXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25h
bFRlc3RTcGVjaWZpY09wdGlvbnMpKQorICAgICAgICBlbmQKICAgICBlbmQKIGVuZAogCkBAIC0x
ODA2LDcgKzE4MTQsOSBAQCBlbmQKIGRlZiBydW5XZWJBc3NlbWJseVdpdGhIYXJuZXNzKCpvcHRp
b25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiAgICAgcmFpc2UgdW5sZXNzICRiZW5jaG1hcmsudG9f
cyA9fiAvaGFybmVzc1wubT9qcy8KICAgICByZXR1cm4gaWYgISRqaXRUZXN0cwotICAgIHJldHVy
biBpZiAhJGlzRlRMUGxhdGZvcm0KKyAgICByZXR1cm4gaWYgISRpc1dhc21QbGF0Zm9ybQorICAg
ICMgU2tpcCB0aGlzIGNvbXBsZXRlbHkgb24gYXJtdjcgZm9yIG5vdywgc2luY2UgbW9zdCBvZiB0
aGUgdGVzdHMgYXJlIHJlbGF0ZWQgdG8gT1NSIGFuZCBpdCdzIGEgYml0IGhhaXJ5IHRvIHNraXAg
dGhlbSBtYW51YWxseQorICAgIHJldHVybiBpZiAkYXJjaGl0ZWN0dXJlID09ICJhcm0iCiAKICAg
ICB3YXNtRmlsZXMgPSBhbGxXYXNtRmlsZXMoJGNvbGxlY3Rpb24pCiAgICAgcHJlcGFyZUV4dHJh
UmVsYXRpdmVGaWxlcyh3YXNtRmlsZXMubWFwIHsgfGZ8IGYuYmFzZW5hbWUgfSwgJGNvbGxlY3Rp
b24pCkBAIC0xODE4LDkgKzE4MjgsMTEgQEAgZGVmIHJ1bldlYkFzc2VtYmx5V2l0aEhhcm5lc3Mo
Km9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKICAgICAgICAgcnVuSGFybmVzc1Rlc3QoIndh
c20tZWFnZXItamV0dGlzb24iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09sZEFn
ZT10cnVlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVl
IiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZp
Y09wdGlvbnMpKQogICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1uby10bHMtY29udGV4dCIs
ICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICooRlRMX09QVElPTlMgKyBvcHRp
b25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgICBydW5IYXJuZXNzVGVzdCgid2FzbS1z
bG93LW1lbW9yeSIsICItLXVzZVdlYkFzc2VtYmx5RmFzdE1lbW9yeT1mYWxzZSIsICooRlRMX09Q
VElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQotICAgICAgICBydW5IYXJuZXNz
VGVzdCgid2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWly
PWZhbHNlIiwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCi0g
ICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLW5vLWFpciIsICItLXVzZVdhc21MTEludD1mYWxz
ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICoo
RlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgICBydW5I
YXJuZXNzVGVzdCgid2FzbS1jb2xsZWN0LWNvbnRpbnVvdXNseSIsICItLWNvbGxlY3RDb250aW51
b3VzbHk9dHJ1ZSIsICItLXZlcmlmeUdDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxU
ZXN0U3BlY2lmaWNPcHRpb25zKSkgaWYgc2hvdWxkQ29sbGVjdENvbnRpbnVvdXNseT8KKyAgICAg
ICAgaWYgJGlzRlRMUGxhdGZvcm0KKyAgICAgICAgICAgIHJ1bkhhcm5lc3NUZXN0KCJ3YXNtLWIz
IiwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqKEZU
TF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKKyAgICAgICAgICAgIHJ1
bkhhcm5lc3NUZXN0KCJ3YXNtLW5vLWFpciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVz
ZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICooRlRMX09QVElP
TlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQorICAgICAgICBlbmQKICAgICBlbmQK
IGVuZAogCkBAIC0xODMwLDcgKzE4NDIsNyBAQCBkZWYgcnVuV2ViQXNzZW1ibHlFbXNjcmlwdGVu
KG1vZGUpCiAgICAgICAgIHJldHVybgogICAgIGVuZAogICAgIHJldHVybiBpZiAhJGppdFRlc3Rz
Ci0gICAgcmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQorICAgIHJldHVybiBpZiAhJGlzV2FzbVBs
YXRmb3JtCiAgICAgd2FzbSA9ICRiZW5jaG1hcmsudG9fcy5zdWIhICcuanMnLCAnLndhc20nCiAg
ICAgcHJlcGFyZUV4dHJhUmVsYXRpdmVGaWxlcyhbUGF0aG5hbWUoJy4uJykgKyB3YXNtXSwgJGNv
bGxlY3Rpb24pCiAgICAgcnVuKCJkZWZhdWx0LXdhc20iLCAqRlRMX09QVElPTlMpCkBAIC0xODM4
LDkgKzE4NTAsMTEgQEAgZGVmIHJ1bldlYkFzc2VtYmx5RW1zY3JpcHRlbihtb2RlKQogICAgICAg
ICBydW4oIndhc20tbm8tY2ppdC15ZXMtdGxzLWNvbnRleHQiLCAiLS11c2VGYXN0VExTRm9yV2Fz
bUNvbnRleHQ9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBOT19DSklUX09QVElPTlMpKQogICAgICAg
ICBydW4oIndhc20tZWFnZXItamV0dGlzb24iLCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25E
dWVUb09sZEFnZT10cnVlIiwgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2Nh
dGlvbj10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVu
KCJ3YXNtLW5vLXRscy1jb250ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PWZhbHNl
IiwgKkZUTF9PUFRJT05TKQotICAgICAgICBydW4oIndhc20tYjMiLCAiLS11c2VXYXNtTExJbnQ9
ZmFsc2UiLCAiLS13YXNtQkJRVXNlc0Fpcj1mYWxzZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAg
cnVuKCJ3YXNtLWFpciIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5n
RXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICpGVExfT1BUSU9OUykKICAgICAgICAg
cnVuKCJ3YXNtLWNvbGxlY3QtY29udGludW91c2x5IiwgIi0tY29sbGVjdENvbnRpbnVvdXNseT10
cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIsICpGVExfT1BUSU9OUykgaWYgc2hvdWxkQ29sbGVjdENv
bnRpbnVvdXNseT8KKyAgICAgICAgaWYgJGlzRlRMUGxhdGZvcm0KKyAgICAgICAgICAgIHJ1bigi
d2FzbS1iMyIsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNl
IiwgKkZUTF9PUFRJT05TKQorICAgICAgICAgICAgcnVuKCJ3YXNtLWFpciIsICItLXVzZVdhc21M
TEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249
dHJ1ZSIsICpGVExfT1BUSU9OUykKKyAgICAgICAgZW5kCiAgICAgZW5kCiBlbmQKIApAQCAtMTg1
MCw3ICsxODY0LDcgQEAgZGVmIHJ1bldlYkFzc2VtYmx5U3BlY1Rlc3RCYXNlKG1vZGUsIHNwZWNI
YXJuZXNzUGF0aCwgKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW8KICAgICAgICAgcmV0dXJuCiAg
ICAgZW5kCiAgICAgcmV0dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBs
YXRmb3JtCisgICAgcmV0dXJuIGlmICEkaXNXYXNtUGxhdGZvcm0KICAgICBwcmVwYXJlRXh0cmFB
YnNvbHV0ZUZpbGVzKFdBU01URVNUU19QQVRILCBbIndhc20uanNvbiJdKQogCiAgICAgbW9kdWxl
cyA9IERpcltXQVNNVEVTVFNfUEFUSCArICIqLmpzIl0ubWFwIHsgfGZ8IEZpbGUuYmFzZW5hbWUo
ZikgfQpAQCAtMTg2NSw5ICsxODc5LDExIEBAIGRlZiBydW5XZWJBc3NlbWJseVNwZWNUZXN0QmFz
ZShtb2RlLCBzcGVjSGFybmVzc1BhdGgsICpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvCiAgICAg
ICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1uby1jaml0LXllcy10bHMtY29udGV4dCIsIG5v
aXN5T3V0cHV0SGFuZGxlciwgc3BlY0hhcm5lc3NKc1BhdGgsICAiLS11c2VGYXN0VExTRm9yV2Fz
bUNvbnRleHQ9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBOT19DSklUX09QVElPTlMgKyBvcHRpb25h
bFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20t
ZWFnZXItamV0dGlzb24iLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAi
LS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09sZEFnZT10cnVlIiwgIi0tdXNlUmFuZG9t
aXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgIi0tdmVyaWZ5R0M9dHJ1ZSIs
ICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgcnVu
V2l0aE91dHB1dEhhbmRsZXIoIndhc20tbm8tdGxzLWNvbnRleHQiLCBub2lzeU91dHB1dEhhbmRs
ZXIsIHNwZWNIYXJuZXNzSnNQYXRoLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9ZmFsc2Ui
LCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKLSAgICAgIHJ1
bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWIzIiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFy
bmVzc0pzUGF0aCwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFs
c2UiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKLSAgICAg
IHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWFpciIsIG5vaXN5T3V0cHV0SGFuZGxlciwgc3Bl
Y0hhcm5lc3NKc1BhdGgsICItLXVzZVdhc21MTEludD1mYWxzZSIsICItLXVzZVJhbmRvbWl6aW5n
RXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249dHJ1ZSIsICooRlRMX09QVElPTlMgKyBvcHRpb25h
bFRlc3RTcGVjaWZpY09wdGlvbnMpKQogICAgICAgcnVuV2l0aE91dHB1dEhhbmRsZXIoIndhc20t
Y29sbGVjdC1jb250aW51b3VzbHkiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNwZWNIYXJuZXNzSnNQ
YXRoLCAiLS1jb2xsZWN0Q29udGludW91c2x5PXRydWUiLCAiLS12ZXJpZnlHQz10cnVlIiwgKihG
VExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpIGlmIHNob3VsZENvbGxl
Y3RDb250aW51b3VzbHk/CisgICAgICBpZiAkaXNGVExQbGF0Zm9ybQorICAgICAgICAgIHJ1bldp
dGhPdXRwdXRIYW5kbGVyKCJ3YXNtLWIzIiwgbm9pc3lPdXRwdXRIYW5kbGVyLCBzcGVjSGFybmVz
c0pzUGF0aCwgIi0tdXNlV2FzbUxMSW50PWZhbHNlIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2Ui
LCAqKEZUTF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKKyAgICAgICAg
ICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1haXIiLCBub2lzeU91dHB1dEhhbmRsZXIsIHNw
ZWNIYXJuZXNzSnNQYXRoLCAiLS11c2VXYXNtTExJbnQ9ZmFsc2UiLCAiLS11c2VSYW5kb21pemlu
Z0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLCAqKEZUTF9PUFRJT05TICsgb3B0aW9u
YWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKKyAgICAgIGVuZAogICAgIGVuZAogZW5kCiAKQEAgLTE4
ODUsNyArMTkwMSw3IEBAIGVuZAogCiBkZWYgcnVuV2ViQXNzZW1ibHlMb3dFeGVjdXRhYmxlTWVt
b3J5KCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiAgICAgcmV0dXJuIGlmICEkaml0VGVz
dHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCisgICAgcmV0dXJuIGlmICEkaXNXYXNt
UGxhdGZvcm0KICAgICBtb2R1bGVzID0gRGlyW1dBU01URVNUU19QQVRIICsgIiouanMiXS5tYXAg
eyB8ZnwgRmlsZS5iYXNlbmFtZShmKSB9CiAgICAgcHJlcGFyZUV4dHJhQWJzb2x1dGVGaWxlcyhX
QVNNVEVTVFNfUEFUSCwgWyJ3YXNtLmpzb24iXSkKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZp
bGVzKG1vZHVsZXMubWFwIHsgfGZ8ICIuLi8iICsgZiB9LCAkY29sbGVjdGlvbikKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpz
IGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24uanMK
aW5kZXggNWMyMjBmZDc2Y2RjLi4zNjg2YzYzOTcwNDAgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3Ry
ZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzCisrKyBiL0pTVGVzdHMv
c3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzCkBAIC0xLDMgKzEs
OCBAQAorLy8gVGhpcyB0ZXN0IGlzIHN0YXRpc3RpY2FsLCBhbmQgd2l0aG91dCBvcHRpbWl6aW5n
IFdhc20gdGllcnMgdGhlIGxpa2VsaWhvb2QKKy8vIG9mIGhpdHRpbmcgdGhlIGRlZXBlc3QgZXhw
ZWN0ZWQgc3RhY2sgdHJhY2UgaXMgdmVyeSBsb3csIHNvIGRpc2FibGUuCisvLyBGSVhNRTogcmVt
b3ZlIHdoZW4gMzItYml0IHBsYXRmb3JtcyBzdXBwb3J0IG9wdGltaXppbmcgV2FzbSB0aWVycwor
Ly9AIHNraXAgaWYgWyJhcm0iLCAibWlwcyJdLmluY2x1ZGU/KCRhcmNoaXRlY3R1cmUpCisvLwog
Ly9AIHJ1bkRlZmF1bHQKIAogLyoKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5n
LXByb2ZpbGVyLXdhc20uanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNt
LmpzCmluZGV4IDA2ZGYwMTI0OTU5Ni4uNzI0MGMwMGRlMjdlIDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3Nh
bXBsaW5nLXByb2ZpbGVyLXdhc20uanMKQEAgLTEsMyArMSw0IEBACisvL0Agc2tpcCBpZiAkYXJj
aGl0ZWN0dXJlID09ICJhcm0iCiAvL0AgcnVuRGVmYXVsdAogCiBpZiAocGxhdGZvcm1TdXBwb3J0
c1NhbXBsaW5nUHJvZmlsZXIoKSAmJiAkdm0uaXNXYXNtU3VwcG9ydGVkKCkpIHsKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL3NoYXJlZC13YXNtLW1lbW9yeS13aXRoLXplcm8tYnl0ZS5qcyBi
L0pTVGVzdHMvc3RyZXNzL3NoYXJlZC13YXNtLW1lbW9yeS13aXRoLXplcm8tYnl0ZS5qcwppbmRl
eCAyOWRhNzc1NTFjYTAuLjNmYmE2OWM0NGRjMyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mv
c2hhcmVkLXdhc20tbWVtb3J5LXdpdGgtemVyby1ieXRlLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L3NoYXJlZC13YXNtLW1lbW9yeS13aXRoLXplcm8tYnl0ZS5qcwpAQCAtMSwyICsxLDQgQEAKKy8v
R3Jvd2luZyBhIHNoYXJlZCBtZW1vcnkgcmVxdWlyZXMgc2lnbmFsIGhhbmRsZXJzLCB3aGljaCBh
cmUgbm90IHlldCBwb3J0ZWQgdG8gQVJNdjcKKy8vQCBza2lwIGlmICRhcmNoaXRlY3R1cmUgPT0g
ImFybSIKIGlmICh0eXBlb2YgV2ViQXNzZW1ibHkgIT09ICd1bmRlZmluZWQnKQogICAgIChuZXcg
V2ViQXNzZW1ibHkuTWVtb3J5KHtpbml0aWFsOiAwLCBtYXhpbXVtOiAxLCBzaGFyZWQ6IHRydWV9
KSkuZ3JvdygxKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL3JlZ3Jlc3MvbGxpbnQtY2FsbGVl
LXNhdmVzLXdpdGgtZmFzdC1tZW1vcnkuanMgYi9KU1Rlc3RzL3dhc20vcmVncmVzcy9sbGludC1j
YWxsZWUtc2F2ZXMtd2l0aC1mYXN0LW1lbW9yeS5qcwppbmRleCBmOWYwOWM0NzUxM2EuLjExY2Zi
MTY0YmI2NCAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL3JlZ3Jlc3MvbGxpbnQtY2FsbGVlLXNh
dmVzLXdpdGgtZmFzdC1tZW1vcnkuanMKKysrIGIvSlNUZXN0cy93YXNtL3JlZ3Jlc3MvbGxpbnQt
Y2FsbGVlLXNhdmVzLXdpdGgtZmFzdC1tZW1vcnkuanMKQEAgLTEsMyArMSw0IEBACisvL0Agc2tp
cCBpZiAkYXJjaGl0ZWN0dXJlID09ICJhcm0iCiAvL0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlV2Vi
QXNzZW1ibHlGYXN0TWVtb3J5PXRydWUiKQogCiBpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnLi4v
YXNzZXJ0LmpzJzsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9zdHJlc3Mvc2hhcmVkLW1lbW9y
eS1lcnJvcnMuanMgYi9KU1Rlc3RzL3dhc20vc3RyZXNzL3NoYXJlZC1tZW1vcnktZXJyb3JzLmpz
CmluZGV4IDE2NGJmZmI3M2VhOS4uMTRlMGE4NzkxZTE5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dh
c20vc3RyZXNzL3NoYXJlZC1tZW1vcnktZXJyb3JzLmpzCisrKyBiL0pTVGVzdHMvd2FzbS9zdHJl
c3Mvc2hhcmVkLW1lbW9yeS1lcnJvcnMuanMKQEAgLTEsMyArMSw1IEBACisvL0dyb3dpbmcgYSBz
aGFyZWQgbWVtb3J5IHJlcXVpcmVzIHNpZ25hbCBoYW5kbGVycywgd2hpY2ggYXJlIG5vdCB5ZXQg
cG9ydGVkIHRvIEFSTXY3CisvL0Agc2tpcCBpZiAkYXJjaGl0ZWN0dXJlID09ICJhcm0iCiBpbXBv
cnQgKiBhcyBhc3NlcnQgZnJvbSAnLi4vYXNzZXJ0LmpzJzsKIAogYXNzZXJ0LnRocm93cygoKSA9
PiB7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vc3RyZXNzL3NoYXJlZC13YXNtLW1lbW9yeS1i
dWZmZXIuanMgYi9KU1Rlc3RzL3dhc20vc3RyZXNzL3NoYXJlZC13YXNtLW1lbW9yeS1idWZmZXIu
anMKaW5kZXggZDg5NjEzYzkwOTI1Li42NWY0NTE3YWJkMjMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
d2FzbS9zdHJlc3Mvc2hhcmVkLXdhc20tbWVtb3J5LWJ1ZmZlci5qcworKysgYi9KU1Rlc3RzL3dh
c20vc3RyZXNzL3NoYXJlZC13YXNtLW1lbW9yeS1idWZmZXIuanMKQEAgLTEsMyArMSw1IEBACisv
L0dyb3dpbmcgYSBzaGFyZWQgbWVtb3J5IHJlcXVpcmVzIHNpZ25hbCBoYW5kbGVycywgd2hpY2gg
YXJlIG5vdCB5ZXQgcG9ydGVkIHRvIEFSTXY3CisvL0Agc2tpcCBpZiAkYXJjaGl0ZWN0dXJlID09
ICJhcm0iCiBpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnLi4vYXNzZXJ0LmpzJwogCiBsZXQgcGFn
ZVNpemUgPSA2NCA8PCAxMDsKLS0gCjIuMzAuMgoK
</data>

          </attachment>
      

    </bug>

</bugzilla>